This commit was manufactured by cvs2svn to create tag 'I20090825-0800'.

Sprout from master 2009-08-25 04:57:27 UTC Matthew Hall <mhall> 'FIXED - bug 286121: [DataBinding] API error in ObservableTracker'
Cherrypick from master 2009-08-25 06:26:58 UTC Francis Upton IV <fuptoniv> 'Build submission for I20090825-0800':
    bundles/org.eclipse.ui/buildnotes_workbench.html
Delete:
    bundles/org.eclipse.core.commands/.classpath
    bundles/org.eclipse.core.commands/.cvsignore
    bundles/org.eclipse.core.commands/.project
    bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.core.commands/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.core.commands/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.commands/about.html
    bundles/org.eclipse.core.commands/build.properties
    bundles/org.eclipse.core.commands/plugin.properties
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html
    bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java
    bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java
    bundles/org.eclipse.core.databinding.beans/.classpath
    bundles/org.eclipse.core.databinding.beans/.cvsignore
    bundles/org.eclipse.core.databinding.beans/.project
    bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF
    bundles/org.eclipse.core.databinding.beans/about.html
    bundles/org.eclipse.core.databinding.beans/build.properties
    bundles/org.eclipse.core.databinding.beans/plugin.properties
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeanProperties.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanListProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanMapProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanSetProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanValueProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoProperties.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanListProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanMapProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanSetProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanValueProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoListProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoMapProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoSetProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoValueProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListPropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapPropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyHelper.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListener.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListenerSupport.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetPropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValueProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValuePropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListPropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapPropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetPropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValueProperty.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValuePropertyDecorator.java
    bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Util.java
    bundles/org.eclipse.jface/.classpath
    bundles/org.eclipse.jface/.cvsignore
    bundles/org.eclipse.jface/.options
    bundles/org.eclipse.jface/.project
    bundles/org.eclipse.jface/.settings/.api_filters
    bundles/org.eclipse.jface/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.jface/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.jface/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.jface/META-INF/MANIFEST.MF
    bundles/org.eclipse.jface/about.html
    bundles/org.eclipse.jface/build.properties
    bundles/org.eclipse.jface/icons/full/help.gif
    bundles/org.eclipse.jface/icons/full/message_error.gif
    bundles/org.eclipse.jface/icons/full/message_info.gif
    bundles/org.eclipse.jface/icons/full/message_warning.gif
    bundles/org.eclipse.jface/icons/full/page.gif
    bundles/org.eclipse.jface/icons/full/pref_dialog_title.gif
    bundles/org.eclipse.jface/icons/full/title_banner.png
    bundles/org.eclipse.jface/plugin.properties
    bundles/org.eclipse.jface/scripts/exportplugin.xml
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractAction.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractGroupMarker.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/Action.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionItem.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ControlContribution.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/CoolBarManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/GroupMarker.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IAction.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionItem.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManagerOverrides.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ICoolBarManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuCreator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IStatusLineManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/IToolBarManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/LegacyActionTools.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/MenuManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/Separator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineContributionItem.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineLayoutData.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionItem.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubCoolBarManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubMenuManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubStatusLineManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubToolBarManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarContributionItem.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/images/stop.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/action/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Binding.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManagerEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/CachedBindingSet.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/IBindingManagerListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/ISchemeListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Scheme.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/SchemeEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Trigger.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/TriggerSequence.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/IKeyLookup.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyBinding.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyLookupFactory.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequence.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequenceText.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyStroke.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/ParseException.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeyLookup.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeySupport.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/FormalKeyFormatter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/IKeyFormatter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/KeyFormatterFactory.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ActionHandler.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/commands/PersistentState.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/commands/RadioState.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ToggleState.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/commands/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/IContextIds.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/AnimatorFactory.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlAnimator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlEnableState.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogMessageArea.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogPage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogTray.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorSupportProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogBlockedHandler.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogConstants.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogPage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogSettings.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IInputValidator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IMessageProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangeProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangedListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangingListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IconAndMessageDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ImageAndMessageArea.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/InputDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialogWithToggle.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangedEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangingEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressIndicator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/StatusDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TitleAreaDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TrayDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/help.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_error.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_info.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_warning.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu_disabled.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/title_banner.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/AutoCompleteField.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboContentAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/DecoratedField.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldAssistColors.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecoration.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecorationRegistry.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposal.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlCreator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/SimpleContentProposalProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextContentAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextControlCreator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/contassist_ovr.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_ovr.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/errorqf_ovr.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/info_ovr.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/required_field_cue.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/warn_ovr.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/images/dots_button.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/InternalPolicy.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/JFaceActivator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/CoolBarManager2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ICoolBarManager2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarContributionItem.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarManager2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarContributionItem2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarManager2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/AbstractColumnLayout.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridDataFactory.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridLayoutFactory.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutConstants.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutGenerator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/PixelConverter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowDataFactory.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowLayoutFactory.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TableColumnLayout.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnLayout.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/layout/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/menus/AbstractTrimWidget.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IMenuStateIds.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IWidget.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/menus/TextState.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/menus/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/operation/AccumulatingProgressMonitor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableContext.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableWithProgress.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IThreadListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/operation/ModalContext.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/operation/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanPropertyAction.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorSelector.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ComboFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/DirectoryFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditorPreferencePage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FileFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FontFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPersistentPreferenceStore.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceNode.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePageContainer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IntegerFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/JFacePreferences.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ListEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PathEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceConverter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceNode.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferencePage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/RadioGroupFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScaleFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringButtonFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringFieldEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/images/pref_dialog_title.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/preference/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/AbstractResourceManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ArrayFontDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorRegistry.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DataFormatException.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DerivedImageDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceException.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontRegistry.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDataImageDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageRegistry.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceColors.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/LocalResourceManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/RGBColorDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceRegistry.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/StringConverter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_aix.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_hp-ux.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux_gtk.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_macosx.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_qnx.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_sunos.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows2000.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows98.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsnt.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsxp.properties
    bundles/org.eclipse.jface/src/org/eclipse/jface/resource/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/Assert.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDragAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDropAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/Geometry.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/ILogger.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/IOpenEventListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/IPropertyChangeListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/ISafeRunnableRunner.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/ListenerList.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/LocalSelectionTransfer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/OpenStrategy.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/Policy.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/PropertyChangeEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnable.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnableDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/StatusHandler.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDragSourceListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDropTargetListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/Util.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/util/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractComboBoxCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AcceptAllFilter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ArrayContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/BaseLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellNavigationStrategy.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckStateChangedEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTableViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTreeViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColorCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLayoutData.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnPixelData.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationStrategy.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorDeactivationEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerToolTipSupport.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnWeightData.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxViewerCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CustomHashtable.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingStyledCellLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationContext.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationOverlayIcon.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DialogCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DoubleClickEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/EditingSupport.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellHighlighter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellOwnerDrawHighlighter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBaseLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBasicPropertyConstants.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorValidator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellModifier.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckable.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorDecorator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecoration.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecorationContext.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDelayedLabelDecorator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDoubleClickListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IElementComparer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFilter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontDecorator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IIndexableLazyContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputSelectionProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelDecorator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProviderListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreeContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreePathContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILightweightLabelDecorator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IOpenListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IPostSelectionProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelection.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionChangedListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredSelection.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableColorProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableFontProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeSelection.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeViewerListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IViewerLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelDecorator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProviderChangedEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ListViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/NamedHandleObjectLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OpenEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OwnerDrawLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SWTFocusCellManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SelectionChangedEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredSelection.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewerInternals.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledCellLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledString.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableLayout.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableTreeViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerColumn.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerFocusCellManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerRow.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TextCellEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeColumnViewerLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeExpansionEvent.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNode.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNodeContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePath.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePathViewerSorter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeSelection.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerColumn.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerEditor.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerFocusCellManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerRow.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/Viewer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerCell.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerColumn.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerComparator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerDropAdapter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerFilter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerLabel.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerRow.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerSorter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractConcurrentModel.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractVirtualTable.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/BackgroundContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ChangeQueue.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ConcurrentTableUpdator.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/DeferredContentProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/FastProgressReporter.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModel.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModelListener.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IntHashMap.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/LazySortedCollection.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/SetModel.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/ApplicationWindow.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/DefaultToolTip.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/IShellProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/SameShellProvider.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/ToolTip.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/Window.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/WindowManager.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/window/package.html
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizard.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer2.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardNode.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardPage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/ProgressMonitorPart.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/Wizard.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardPage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardSelectionPage.java
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/images/page.gif
    bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/package.html
    bundles/org.eclipse.ui.browser/.classpath
    bundles/org.eclipse.ui.browser/.cvsignore
    bundles/org.eclipse.ui.browser/.options
    bundles/org.eclipse.ui.browser/.project
    bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.browser/about.html
    bundles/org.eclipse.ui.browser/build.properties
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif
    bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif
    bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif
    bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif
    bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif
    bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif
    bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif
    bundles/org.eclipse.ui.browser/plugin.properties
    bundles/org.eclipse.ui.browser/plugin.xml
    bundles/org.eclipse.ui.browser/schema/browsers.exsd
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/browser/BrowserFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorDialog.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorWorkingCopy.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserExt.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserLauncher.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserManager.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserText.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/FallbackScrolledComposite.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptorWorkingCopy.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserExt.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserViewerContainer.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResource.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserEditorInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorInput.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreference.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreferencePage.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserView.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserViewDropAdapter.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/BrowserLog.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowserFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/NullBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/StreamConsumer.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java
    bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java
    bundles/org.eclipse.ui.carbon/.classpath
    bundles/org.eclipse.ui.carbon/.cvsignore
    bundles/org.eclipse.ui.carbon/.project
    bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.carbon/.template
    bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.carbon/about.html
    bundles/org.eclipse.ui.carbon/build.properties
    bundles/org.eclipse.ui.carbon/fragment-carbon.properties
    bundles/org.eclipse.ui.carbon/fragment.xml
    bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml
    bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java
    bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties
    bundles/org.eclipse.ui.cocoa/.classpath
    bundles/org.eclipse.ui.cocoa/.project
    bundles/org.eclipse.ui.cocoa/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.cocoa/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.cocoa/about.html
    bundles/org.eclipse.ui.cocoa/build.properties
    bundles/org.eclipse.ui.cocoa/fragment-cocoa.properties
    bundles/org.eclipse.ui.cocoa/fragment.xml
    bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/CocoaUIEnhancer.java
    bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/Messages.properties
    bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/SWTCocoaEnhancerDelegate.java
    bundles/org.eclipse.ui.forms/.classpath
    bundles/org.eclipse.ui.forms/.cvsignore
    bundles/org.eclipse.ui.forms/.options
    bundles/org.eclipse.ui.forms/.project
    bundles/org.eclipse.ui.forms/.settings/.api_filters
    bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.forms/about.html
    bundles/org.eclipse.ui.forms/build.properties
    bundles/org.eclipse.ui.forms/icons/progress/ani/1.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/2.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/3.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/4.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/5.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/6.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/7.png
    bundles/org.eclipse.ui.forms/icons/progress/ani/8.png
    bundles/org.eclipse.ui.forms/plugin.properties
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormColors.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/MasterDetailsBlock.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormPage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/IFormPage.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutCache.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SizeCache.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/package.html
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/FormsPlugin.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/IMessageToolTipManager.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BulletParagraph.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormTextModel.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ParagraphSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SWTUtil.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SelectionData.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TitleRegion.java
    bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
    bundles/org.eclipse.ui.ide.application/.classpath
    bundles/org.eclipse.ui.ide.application/.project
    bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.ide.application/about.html
    bundles/org.eclipse.ui.ide.application/build.properties
    bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif
    bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif
    bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif
    bundles/org.eclipse.ui.ide.application/plugin.properties
    bundles/org.eclipse.ui.ide.application/plugin.xml
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/RecentWorkspacesPreferencePage.java
    bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/package.html
    bundles/org.eclipse.ui.navigator.resources/.classpath
    bundles/org.eclipse.ui.navigator.resources/.cvsignore
    bundles/org.eclipse.ui.navigator.resources/.project
    bundles/org.eclipse.ui.navigator.resources/.settings/.api_filters
    bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.core.resources.prefs
    bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.api.tools.prefs
    bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.navigator.resources/about.html
    bundles/org.eclipse.ui.navigator.resources/build.properties
    bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/collapseall.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/synced.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/filenav_nav.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/collapseall.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/filter_ps.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/synced.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/eview16/resource_persp.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/obj16/workingsets.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/error_co.gif
    bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/warning_co.gif
    bundles/org.eclipse.ui.navigator.resources/plugin.properties
    bundles/org.eclipse.ui.navigator.resources/plugin.xml
    bundles/org.eclipse.ui.navigator.resources/prepareforpii.xml
    bundles/org.eclipse.ui.navigator.resources/scripts/src.jardesc
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/ResourceToItemsMapper.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/CopyAction.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionGroup.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceAction.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceDialog.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/NewActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/OpenActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PropertiesActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionGroup.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceSelectionUtil.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/TextActionHandler.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/UndoRedoActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkManagementActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetRootModeActionGroup.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorMessages.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorPlugin.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/messages.properties
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionContentProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionLabelProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionSorter.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceLinkHelper.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetAdapterFactory.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetProjectExplorerContributor.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetTitleProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetSorter.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsContentProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/GoIntoActionProvider.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ProjectExplorer.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDragAdapterAssistant.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java
    bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/package.html
    bundles/org.eclipse.ui.navigator.resources/test.txt
    bundles/org.eclipse.ui.presentations.r21/.classpath
    bundles/org.eclipse.ui.presentations.r21/.cvsignore
    bundles/org.eclipse.ui.presentations.r21/.project
    bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.presentations.r21/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.presentations.r21/README.TXT
    bundles/org.eclipse.ui.presentations.r21/about.html
    bundles/org.eclipse.ui.presentations.r21/build.properties
    bundles/org.eclipse.ui.presentations.r21/plugin.properties
    bundles/org.eclipse.ui.presentations.r21/plugin.xml
    bundles/org.eclipse.ui.presentations.r21/r21presentation.ini
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21EditorStackPresentation.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21PresentationFactory.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationMessages.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/messages.properties
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolder.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java
    bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/ViewForm.java
    bundles/org.eclipse.ui.tutorials.rcp.part1/.classpath
    bundles/org.eclipse.ui.tutorials.rcp.part1/.cvsignore
    bundles/org.eclipse.ui.tutorials.rcp.part1/.project
    bundles/org.eclipse.ui.tutorials.rcp.part1/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.tutorials.rcp.part1/build.properties
    bundles/org.eclipse.ui.tutorials.rcp.part1/part1.product
    bundles/org.eclipse.ui.tutorials.rcp.part1/plugin.xml
    bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Application.java
    bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationActionBarAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchWindowAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Part1Plugin.java
    bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Perspective.java
    bundles/org.eclipse.ui.tutorials.rcp.part2/.classpath
    bundles/org.eclipse.ui.tutorials.rcp.part2/.cvsignore
    bundles/org.eclipse.ui.tutorials.rcp.part2/.project
    bundles/org.eclipse.ui.tutorials.rcp.part2/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.tutorials.rcp.part2/build.properties
    bundles/org.eclipse.ui.tutorials.rcp.part2/part2.product
    bundles/org.eclipse.ui.tutorials.rcp.part2/plugin.xml
    bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Application.java
    bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationActionBarAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchWindowAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Part2Plugin.java
    bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Perspective.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/.classpath
    bundles/org.eclipse.ui.tutorials.rcp.part3/.cvsignore
    bundles/org.eclipse.ui.tutorials.rcp.part3/.project
    bundles/org.eclipse.ui.tutorials.rcp.part3/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.tutorials.rcp.part3/build.properties
    bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.gif
    bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.icns
    bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample2.gif
    bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample3.gif
    bundles/org.eclipse.ui.tutorials.rcp.part3/part3.product
    bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.properties
    bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.xml
    bundles/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif
    bundles/org.eclipse.ui.tutorials.rcp.part3/splash.bmp
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Application.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationActionBarAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchWindowAdvisor.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ICommandIds.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/MessagePopupAction.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/NavigationView.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/OpenViewAction.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Part3Plugin.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Perspective.java
    bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/View.java
    bundles/org.eclipse.ui.views.properties.tabbed/.classpath
    bundles/org.eclipse.ui.views.properties.tabbed/.cvsignore
    bundles/org.eclipse.ui.views.properties.tabbed/.project
    bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.views.properties.tabbed/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.views.properties.tabbed/about.html
    bundles/org.eclipse.ui.views.properties.tabbed/build.properties
    bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties
    bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml
    bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd
    bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd
    bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewPlugin.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewStatusCodes.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java
    bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html
    bundles/org.eclipse.ui.views/.classpath
    bundles/org.eclipse.ui.views/.cvsignore
    bundles/org.eclipse.ui.views/.project
    bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.views/about.html
    bundles/org.eclipse.ui.views/build.properties
    bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif
    bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif
    bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif
    bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif
    bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif
    bundles/org.eclipse.ui.views/icons/full/elcl16/new.gif
    bundles/org.eclipse.ui.views/icons/full/elcl16/tree_mode.gif
    bundles/org.eclipse.ui.views/icons/full/eview16/outline_co.gif
    bundles/org.eclipse.ui.views/icons/full/eview16/prop_ps.gif
    bundles/org.eclipse.ui.views/plugin.properties
    bundles/org.eclipse.ui.views/plugin.xml
    bundles/org.eclipse.ui.views/scripts/exportplugin.xml
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/ViewsPlugin.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/messages.properties
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/package.html
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/messages.properties
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/package.html
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CategoriesAction.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CopyPropertyAction.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/DefaultsAction.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/FilterAction.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertyDescriptor.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource2.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySourceProvider.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/NewPropertySheetHandler.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PinPropertySheetAction.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyColumnLabelProvider.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetAction.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetViewer.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyShowInContext.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java
    bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/package.html
    bundles/org.eclipse.ui.win32/.classpath
    bundles/org.eclipse.ui.win32/.cvsignore
    bundles/org.eclipse.ui.win32/.project
    bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.win32/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.win32/about.html
    bundles/org.eclipse.ui.win32/build.properties
    bundles/org.eclipse.ui.win32/fragment-win32.properties
    bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java
    bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleMessages.java
    bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/messages.properties
    bundles/org.eclipse.ui.workbench.compatibility/.classpath
    bundles/org.eclipse.ui.workbench.compatibility/.cvsignore
    bundles/org.eclipse.ui.workbench.compatibility/.project
    bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs
    bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.ui.prefs
    bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.pde.prefs
    bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF
    bundles/org.eclipse.ui.workbench.compatibility/about.html
    bundles/org.eclipse.ui.workbench.compatibility/build.properties
    bundles/org.eclipse.ui.workbench.compatibility/fragment-compatibility.properties
    bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java
    bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java
    examples/org.eclipse.jface.snippets/.classpath
    examples/org.eclipse.jface.snippets/.project
    examples/org.eclipse.jface.snippets/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet012DialogWithImageButtons.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet058CellNavigationIn34.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet059CellNavigationIn33.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet060TextCellEditorWithContentProposal.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet061FakedNativeCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet62TextAndDialogCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TextAndDialogCellEditor.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif
    examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java
    examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
    examples/org.eclipse.jface.snippets/build.properties
    examples/org.eclipse.ui.examples.contributions/.classpath
    examples/org.eclipse.ui.examples.contributions/.project
    examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.contributions/about.html
    examples/org.eclipse.ui.examples.contributions/build.properties
    examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif
    examples/org.eclipse.ui.examples.contributions/icons/editor.gif
    examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif
    examples/org.eclipse.ui.examples.contributions/icons/perspective.gif
    examples/org.eclipse.ui.examples.contributions/icons/sample.gif
    examples/org.eclipse.ui.examples.contributions/icons/sample2.gif
    examples/org.eclipse.ui.examples.contributions/info.product
    examples/org.eclipse.ui.examples.contributions/plugin.properties
    examples/org.eclipse.ui.examples.contributions/plugin.xml
    examples/org.eclipse.ui.examples.contributions/plugin_customization.ini
    examples/org.eclipse.ui.examples.contributions/product_lg.gif
    examples/org.eclipse.ui.examples.contributions/splash.bmp
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java
    examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java
    examples/org.eclipse.ui.examples.fieldassist/.classpath
    examples/org.eclipse.ui.examples.fieldassist/.cvsignore
    examples/org.eclipse.ui.examples.fieldassist/.project
    examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java
    examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java
    examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.fieldassist/about.html
    examples/org.eclipse.ui.examples.fieldassist/build.properties
    examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html
    examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif
    examples/org.eclipse.ui.examples.fieldassist/plugin.properties
    examples/org.eclipse.ui.examples.fieldassist/plugin.xml
    examples/org.eclipse.ui.examples.job/.classpath
    examples/org.eclipse.ui.examples.job/.cvsignore
    examples/org.eclipse.ui.examples.job/.project
    examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.job/README.TXT
    examples/org.eclipse.ui.examples.job/about.html
    examples/org.eclipse.ui.examples.job/build.properties
    examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt
    examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc
    examples/org.eclipse.ui.examples.job/doc/responsive_ui.html
    examples/org.eclipse.ui.examples.job/doc/usecases.txt
    examples/org.eclipse.ui.examples.job/doc/workspace-lock.html
    examples/org.eclipse.ui.examples.job/icons/job_view.gif
    examples/org.eclipse.ui.examples.job/icons/sample.gif
    examples/org.eclipse.ui.examples.job/icons/suspend.gif
    examples/org.eclipse.ui.examples.job/icons/tree_view.gif
    examples/org.eclipse.ui.examples.job/plugin.xml
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/BusyShowWhileDialog.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/ProgressExamplesPlugin.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java
    examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.java
    examples/org.eclipse.ui.examples.multipageeditor/.classpath
    examples/org.eclipse.ui.examples.multipageeditor/.cvsignore
    examples/org.eclipse.ui.examples.multipageeditor/.project
    examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java
    examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties
    examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.multipageeditor/about.html
    examples/org.eclipse.ui.examples.multipageeditor/build.properties
    examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html
    examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif
    examples/org.eclipse.ui.examples.multipageeditor/plugin.properties
    examples/org.eclipse.ui.examples.multipageeditor/plugin.xml
    examples/org.eclipse.ui.examples.navigator/.classpath
    examples/org.eclipse.ui.examples.navigator/.project
    examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.navigator/about.html
    examples/org.eclipse.ui.examples.navigator/build.properties
    examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif
    examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif
    examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif
    examples/org.eclipse.ui.examples.navigator/plugin.properties
    examples/org.eclipse.ui.examples.navigator/plugin.xml
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java
    examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java
    examples/org.eclipse.ui.examples.presentation/.classpath
    examples/org.eclipse.ui.examples.presentation/.cvsignore
    examples/org.eclipse.ui.examples.presentation/.project
    examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini
    examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini
    examples/org.eclipse.ui.examples.presentation/about.html
    examples/org.eclipse.ui.examples.presentation/build.properties
    examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt
    examples/org.eclipse.ui.examples.presentation/icons/close_view.gif
    examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF
    examples/org.eclipse.ui.examples.presentation/icons/max_view.gif
    examples/org.eclipse.ui.examples.presentation/icons/min_view.gif
    examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF
    examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF
    examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF
    examples/org.eclipse.ui.examples.presentation/plugin.xml
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java
    examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.java
    examples/org.eclipse.ui.examples.propertysheet/.classpath
    examples/org.eclipse.ui.examples.propertysheet/.cvsignore
    examples/org.eclipse.ui.examples.propertysheet/.project
    examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java
    examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties
    examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml
    examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.propertysheet/about.html
    examples/org.eclipse.ui.examples.propertysheet/build.properties
    examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html
    examples/org.eclipse.ui.examples.propertysheet/doc.zip
    examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif
    examples/org.eclipse.ui.examples.propertysheet/plugin.properties
    examples/org.eclipse.ui.examples.propertysheet/plugin.xml
    examples/org.eclipse.ui.examples.rcp.browser/.classpath
    examples/org.eclipse.ui.examples.rcp.browser/.cvsignore
    examples/org.eclipse.ui.examples.rcp.browser/.project
    examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.rcp.browser/Browser.product
    examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.rcp.browser/about.html
    examples/org.eclipse.ui.examples.rcp.browser/build.properties
    examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif
    examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif
    examples/org.eclipse.ui.examples.rcp.browser/plugin.properties
    examples/org.eclipse.ui.examples.rcp.browser/plugin.xml
    examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini
    examples/org.eclipse.ui.examples.rcp.browser/readme.html
    examples/org.eclipse.ui.examples.rcp.browser/splash.bmp
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserWindowAdvisor.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/HistoryView.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/IBrowserConstants.java
    examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java
    examples/org.eclipse.ui.examples.readmetool/.classpath
    examples/org.eclipse.ui.examples.readmetool/.cvsignore
    examples/org.eclipse.ui.examples.readmetool/.project
    examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java
    examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties
    examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml
    examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.readmetool/about.html
    examples/org.eclipse.ui.examples.readmetool/build.properties
    examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm
    examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html
    examples/org.eclipse.ui.examples.readmetool/doc.zip
    examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm
    examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html
    examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif
    examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif
    examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif
    examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif
    examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif
    examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif
    examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif
    examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif
    examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif
    examples/org.eclipse.ui.examples.readmetool/plugin.properties
    examples/org.eclipse.ui.examples.readmetool/plugin.xml
    examples/org.eclipse.ui.examples.undo/.classpath
    examples/org.eclipse.ui.examples.undo/.cvsignore
    examples/org.eclipse.ui.examples.undo/.project
    examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java
    examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java
    examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.undo/about.html
    examples/org.eclipse.ui.examples.undo/build.properties
    examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html
    examples/org.eclipse.ui.examples.undo/icons/sample.gif
    examples/org.eclipse.ui.examples.undo/plugin.properties
    examples/org.eclipse.ui.examples.undo/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.classpath
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/about.html
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/build.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/icons/sample.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/Activator.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElement.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElementProperties.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/CheckBoxPropertyDescriptor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontDialogCellEditor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontPropertyDescriptor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/LabelSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SampleView.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizePropertySource.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizeSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.classpath
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.cvsignore
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.project
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/about.html
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/build.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateDefence_playerStats_PlayerStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateForward_playerStats_PlayerStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateGoalie_goalieStats_GoalieStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateLeague_teams_Team.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_arena_Arena.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_defencemen_Defence.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_forwards_Forward.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_goalies_Goalie.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Arena.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Defence.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Forward.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Goalie.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/GoalieStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Height.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueModelFile.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueObject.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/League.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Player.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/PlayerStats.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Team.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Weight.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/wizban/NewHockeyleague.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/hockeyleague.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.ecore
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.genmodel
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Arena.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Defence.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/DefencePositionKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Forward.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ForwardPositionKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Goalie.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/GoalieStats.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HeightKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueFactory.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueObject.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePackage.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePlugin.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/League.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Player.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/PlayerStats.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ShotKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Team.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/WeightKind.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ArenaImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/DefenceImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ForwardImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieStatsImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueFactoryImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueObjectImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleaguePackageImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/LeagueImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerStatsImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/TeamImpl.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ArenaItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/DefenceItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ForwardItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieStatsItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueItemProviderAdapterFactory.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueObjectItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/LeagueItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerStatsItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/TeamItemProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/actions/HockeyleagueCreateChildAction.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/dialogs/HockeyleagueSetDefaultsDialog.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueActionBarContributor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueEditor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleagueLabelProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleaguePropertySheetPage.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/TextChangeHelper.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractEnumerationPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractHockeyleaguePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractIntegerPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractMeasurementPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractPlayersPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractStringPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTablePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTextPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AddressPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AdvancedPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthDatePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthPlacePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/CapacityPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencePositionPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencemenPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardPositionPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardsPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/GoaliesPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeadOfficePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeightPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NamePropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NumberPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/PlayerStatsPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ShotPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/TeamsPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/WeightPropertySection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizard.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizardPage.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueProjectWizard.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueAdapterFactory.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueSwitch.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.classpath
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.cvsignore
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.project
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/META-INF/MANIFEST.MF
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/about.html
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/build.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logic.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logicbanner.gif
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.properties
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.xml
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/Activator.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicCreationWizard.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicWizardPage1.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/TabbedPropertiesLogicEditor.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/AbstractSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LocationSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementLabelProvider.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementSizeFilter.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementTypeMapper.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/NameSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/SizeSection.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/TextChangeHelper.java
    examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/ValueSection.java
    examples/org.eclipse.ui.forms.examples/.classpath
    examples/org.eclipse.ui.forms.examples/.cvsignore
    examples/org.eclipse.ui.forms.examples/.project
    examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs
    examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs
    examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs
    examples/org.eclipse.ui.forms.examples/about.html
    examples/org.eclipse.ui.forms.examples/build.properties
    examples/org.eclipse.ui.forms.examples/icons/clear.gif
    examples/org.eclipse.ui.forms.examples/icons/close_view.gif
    examples/org.eclipse.ui.forms.examples/icons/container_obj.gif
    examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif
    examples/org.eclipse.ui.forms.examples/icons/file_obj.gif
    examples/org.eclipse.ui.forms.examples/icons/form_banner.gif
    examples/org.eclipse.ui.forms.examples/icons/help.gif
    examples/org.eclipse.ui.forms.examples/icons/help_topic.gif
    examples/org.eclipse.ui.forms.examples/icons/large_image.gif
    examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif
    examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif
    examples/org.eclipse.ui.forms.examples/icons/nw.gif
    examples/org.eclipse.ui.forms.examples/icons/progress.gif
    examples/org.eclipse.ui.forms.examples/icons/sample.gif
    examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif
    examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif
    examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif
    examples/org.eclipse.ui.forms.examples/icons/toc_open.gif
    examples/org.eclipse.ui.forms.examples/icons/topic_small.gif
    examples/org.eclipse.ui.forms.examples/plugin.properties
    examples/org.eclipse.ui.forms.examples/plugin.xml
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java
    examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java
    tests/org.eclipse.jface.tests.databinding.conformance/.classpath
    tests/org.eclipse.jface.tests.databinding.conformance/.project
    tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF
    tests/org.eclipse.jface.tests.databinding.conformance/about.html
    tests/org.eclipse.jface.tests.databinding.conformance/build.properties
    tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DisposeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/StaleEventTracker.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java
    tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.java
    tests/org.eclipse.ui.tests.browser/.classpath
    tests/org.eclipse.ui.tests.browser/.cvsignore
    tests/org.eclipse.ui.tests.browser/.options
    tests/org.eclipse.ui.tests.browser/.project
    tests/org.eclipse.ui.tests.browser/about.html
    tests/org.eclipse.ui.tests.browser/build.properties
    tests/org.eclipse.ui.tests.browser/plugin.xml
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/AllTests.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/DialogsTestCase.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExistenceTestCase.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExternalBrowserTestCase.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserEditorTestCase.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/OrderedTestSuite.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/PreferencesTestCase.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ToolbarBrowserTestCase.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/UITestHelper.java
    tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/WebBrowserTestsPlugin.java
    tests/org.eclipse.ui.tests.browser/test.xml
    tests/org.eclipse.ui.tests.forms/.classpath
    tests/org.eclipse.ui.tests.forms/.project
    tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.forms/about.html
    tests/org.eclipse.ui.tests.forms/build.properties
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormColorsTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java
    tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormToolkitTest.java
    tests/org.eclipse.ui.tests.forms/test.xml
    tests/org.eclipse.ui.tests.harness/.classpath
    tests/org.eclipse.ui.tests.harness/.cvsignore
    tests/org.eclipse.ui.tests.harness/.project
    tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.harness/about.html
    tests/org.eclipse.ui.tests.harness/build.properties
    tests/org.eclipse.ui.tests.harness/icons/anything.gif
    tests/org.eclipse.ui.tests.harness/plugin.xml
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayHelper.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayWaiter.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EditorTestHelper.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/RCPTestWorkbenchAdvisor.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/SWTEventHelper.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/TweakletCheckTest.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/AccessibilityTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FailureDialog.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FocusTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/IDialogTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/SizingTestPass.java
    tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/VerifyDialog.java
    tests/org.eclipse.ui.tests.performance/.classpath
    tests/org.eclipse.ui.tests.performance/.cvsignore
    tests/org.eclipse.ui.tests.performance/.project
    tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.ui.tests.performance/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.performance/about.html
    tests/org.eclipse.ui.tests.performance/build.properties
    tests/org.eclipse.ui.tests.performance/data/testContentType.zip
    tests/org.eclipse.ui.tests.performance/icons/anything.gif
    tests/org.eclipse.ui.tests.performance/icons/binary_co.gif
    tests/org.eclipse.ui.tests.performance/icons/dynamic.gif
    tests/org.eclipse.ui.tests.performance/icons/editor.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/anything.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/binary_co.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/dynamic.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/editor.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif
    tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif
    tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif
    tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif
    tests/org.eclipse.ui.tests.performance/icons/view.gif
    tests/org.eclipse.ui.tests.performance/plugin.xml
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/CollatorPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ViewerTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ActivitiesPerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/BasicPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/CommandsPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ContentDescriberForTestsOnly.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorPerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/FilteredTestSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTestSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionClasses.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionsPerformance.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseEditorTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenClosePerspectiveTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseWindowTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenNavigatorFolderTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective1.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective2.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTestRunner.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTester.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ProblemsViewPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/TestRunnable.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformancePlugin.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSetup.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/WorkbenchPerformanceSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ComputeSizeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ConstantAreaLayout.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/EditorWidgetFactory.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/LayoutTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PerspectiveWidgetFactory.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PresentationWidgetFactory.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/RecursiveTrimLayoutWidgetFactory.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ResizeTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/TestWidgetFactory.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ViewWidgetFactory.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/marked.txt
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceEditorPart.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceProblemsView.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceViewPart.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivateTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivePartPropertyTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationCreateTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationInactivePartPropertyTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTestSuite.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationSelectTest.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective2.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.java
    tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/test_ideas.txt
    tests/org.eclipse.ui.tests.performance/test.xml
    tests/org.eclipse.ui.tests.rcp/.classpath
    tests/org.eclipse.ui.tests.rcp/.cvsignore
    tests/org.eclipse.ui.tests.rcp/.project
    tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/ActionBarConfigurerTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/IWorkbenchPageTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchAdvisorTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchConfigurerTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchListenerTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchSaveRestoreStateTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/EmptyWorkbenchPerfTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/PlatformUIPerfTest.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSetup.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSuite.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyPerspective.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyView.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/OpenWorkbenchIntervalMonitor.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RestoreWorkbenchIntervalMonitor.java
    tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/WorkbenchAdvisorObserver.java
    tests/org.eclipse.ui.tests.rcp/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.rcp/RCP Test Suite.launch
    tests/org.eclipse.ui.tests.rcp/about.html
    tests/org.eclipse.ui.tests.rcp/build.properties
    tests/org.eclipse.ui.tests.rcp/icons/sample.gif
    tests/org.eclipse.ui.tests.rcp/plugin.xml
    tests/org.eclipse.ui.tests.rcp/test.xml
    tests/org.eclipse.ui.tests.views.properties.tabbed/.classpath
    tests/org.eclipse.ui.tests.views.properties.tabbed/.cvsignore
    tests/org.eclipse.ui.tests.views.properties.tabbed/.project
    tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests.views.properties.tabbed/Tabbed Properties View-All Tests.launch
    tests/org.eclipse.ui.tests.views.properties.tabbed/about.html
    tests/org.eclipse.ui.tests.views.properties.tabbed/build.properties
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/black_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif
    tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties
    tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/AllTests.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageDynamicTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageOverrideTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTextTest.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlackSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlueSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsCircleSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsElementSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsGreenSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsRedSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsSquareSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsStarSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsTriangleSectionFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsColor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsElement.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsShape.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsAdvancedSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlackSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlueSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsCircleSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsElementSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsGreenSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsRedSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSectionDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSquareSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsStarSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsTriangleSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsAbstractLabelSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlackSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlueSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsCircleSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsElementSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsGreenSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsRedSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsSquareSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsStarSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsTriangleSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsAdvancedTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsBlackTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsColorTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsElementTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsShapeTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsTabDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTitleBarLabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTreeNode.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTypeMapper.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsViewContentProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Element.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsContentProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsLabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelectionProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AbstractTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AdvancedTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/BasicTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/EmptyTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabFolder.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabItemSelectionListener.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPage.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPageContentManager.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/EmptyItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/ErrorItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FileItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FolderItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/IOverrideTestsItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/InformationItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/WarningItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AbstractTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AdvancedTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/BasicTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/EmptyTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/IOverrideTestsTabList.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabItem.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabListsContentsManager.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/InformationTwoSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelSection.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor2.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptor.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptorProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/InformationTwoFilter.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsPerspective.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsView.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsViewContentProvider.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java
    tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml
    tests/org.eclipse.ui.tests/.classpath
    tests/org.eclipse.ui.tests/.cvsignore
    tests/org.eclipse.ui.tests/.project
    tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.ui.prefs
    tests/org.eclipse.ui.tests/.settings/org.eclipse.pde.prefs
    tests/org.eclipse.ui.tests/Benchmark Tests/org/eclipse/ui/tests/benchmarks/OpenCloseTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/AllTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/AllTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/ContributionItemTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyContributionManager.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/JFaceActionTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/MenuManagerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/AllTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogSettingsTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/InputDialogTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/ProgressIndicatorStyleTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/SafeRunnableErrorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/TitleAreaDialogTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/AllTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/FileImageDescriptorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ImageRegistryTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ResourceManagerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/anything.gif
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontLabelProviderTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontViewerLabelProviderTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTableTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreePathTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreeTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingStyledCellLabelProviderTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/IDecorationContextTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/TestColorAndFontLabelProvider.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AbstractColumnLayoutTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AllTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/GeometryTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/AllTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/BooleanFieldEditorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/IntegerFieldEditorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/SamplePreferencePage.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/StringFieldEditorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AbstractTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AllTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug138608Test.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200337TableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200558Test.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug205700TreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug256889TableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CComboViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckStateProviderTestsUtil.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerMissingTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerComparerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComparatorModelChange.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/IComparatorModelListener.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ITestModelListener.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/LazySortedCollectionTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerComparatorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerRefreshTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/MultipleEqualElementsTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleVirtualLazyTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredItemViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredSelectionTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StyledStringBuilderTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableColorProviderTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableFontProviderTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerComparatorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestComparator.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestElement.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLabelProvider.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLazyModelContentProvider.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModel.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelChange.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelContentProvider.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelLazyTreeContentProvider.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeManagerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeSelectionTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerComparatorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerComparatorTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerTestCase.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTreeViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/images/java.gif
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddChildAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddElementAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddFilterAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddSiblingAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeChildLabelAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeInputLabelAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeLabelAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ClearSelectionAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ConcurrentTableTestView.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/CreateModelAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteChildrenAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteSiblingsAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ExpandAllAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Filter.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/FlushInputAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyDeferredVirtualTableView.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyVirtualTableView.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetFilterAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetSorterAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetLabelProviderAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetSorterAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Sorter.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/StyledCellLabelProviderTests.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestApplicationWindow.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowser.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowserAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestCheckboxTree.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestLazyVirtualTree.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestList.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestSelectionAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTable.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTree.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTreeLabelProvider.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTree.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestVirtualTree.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/VirtualTableView.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/WorldChangedAction.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/ButtonAlignmentTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizard.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardDialog.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardPage.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTest.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/RCPSessionApplication.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/propertyPages/TestPropertyPage.java
    tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/session/NonRestorableView.java
    tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/EditorsReferencesTest.java
    tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/PartsReferencesTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/ViewsReferencesTest.java
    tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsTestUtil.java
    tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchAdvisor.java
    tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchWindowAdvisor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/PerspectiveState.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/SelectionProviderView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/TestPlugin.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/UiTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivitiesTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivityPreferenceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicModelActivityRegistry.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ImagesTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/MenusTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PatternUtilTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PersistanceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/StaticTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/UtilTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableDecoratorTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableResourceWrapper.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptedResourceNavigator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/MarkerImageProviderTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/NullLabelDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/ResourceAction.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/SelectionAdapterTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableContentProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableWorkbenchAdapter.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestMarkerImageProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestNavigatorActionGroup.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/BadElementFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug42616Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug75118Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DeprecatedSessionRestoreTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyService.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyServiceFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/EditorIconTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/GenericCommandActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionBarsTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionDelegateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionFilterTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IAggregateWorkingSetTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IConstants.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IDeprecatedWorkbenchPageTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionBarContributorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionDelegateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorDescriptorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorLauncherTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorMatchingStrategyTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorPartTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorRegistryTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorSiteTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IFileEditorMappingTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageLayoutTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageListenerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageServiceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPartServiceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveDescriptorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveListenerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveRegistryTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ISelectionServiceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewActionDelegateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewPartTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewSiteTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPageTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartSiteTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTestableTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowActionDelegateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetElementAdapterTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetManagerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListContentProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElement.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementActionFilter.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementPropertyTester.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockAction.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionBarContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorMatchingStrategy.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorWithState.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPartListener.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPropertyListener.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockReusableEditorPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockSelectionProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPartMult.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchWindowActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetPage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug120934.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug88345.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithFastView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersAtTopLevel.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInFolder.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PlatformUITest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SaveableMockViewPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionCreateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionEditorPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionPerspective.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionRestoreTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupClass.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StickyViewTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimLayoutTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimList.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UIJobTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableMockViewPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableSharedViewPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewPerspective.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewUtils.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/XMLMementoTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ArbitraryPropertyTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/CustomTitleView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/DynamicItem.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithCreateControlsException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithDisposeException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitRuntimeException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInputException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EmptyView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/HeavyResourceView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleViewTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/MenuContributionHarness.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPartTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TextWidget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewPartTitleTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithCreateControlsException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithDisposeException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitRuntimeException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AbstractTestLogger.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestLogger.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestWrapper.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResult.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResultFilter.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResults.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/UITestCaseWithResult.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/XmlUtil.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActionDelegateProxyTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveActionSetExpression.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveContextExpression.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug125792Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug66182Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug70503Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug73756Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74982Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74990Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug87856Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandActionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandCallbackTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandEnablementTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandManagerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandParameterTypeTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandSerializationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandsTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/EditorActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ExceptionThrowingHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HandlerActivationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HelpContextIdTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/IntegerConverter.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SimplyGoActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/StateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SubtractIntegerHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ViewActionDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferences.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferencesAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ConcurrencyTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ModalContextCrashTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/NestedSyncExecDeadlockTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/SyncExecWhileUIThreadWaitsForLock.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug105491.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug108162.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug138695.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug98621.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TransferRuleTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug74990Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug84763Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextPage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextsTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ExtensionTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockPageView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockViewPart5.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/PartContextTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/DataTransferTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportArchiveFileOperationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportFileSystemOperationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestExportWizard.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestImportWizard.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/tests.ini
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BackgroundColorDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecoratorTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorAdaptableTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorCacheTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorEnablementTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorViewerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorsTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ExceptionDecoratorTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/FontDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ForegroundColorDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullImageDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullTextDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/LightweightDecoratorTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/NullImageDecorator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TableElement.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestAdaptableDecoratorContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestDecoratorContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestElement.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLabelProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorMultipleQuadrantContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceDecoratorContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceMappingDecoratorContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTableContentProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTreeContentProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestUnadaptableDecoratorContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TreeElement.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DataTransferTestStub.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogs.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogsAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferences.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferencesAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizards.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizardsAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/EnableTestPreferencePage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/FontFieldEditorTestPreferencePage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/NavigatorTestStub.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PreferenceDialogWrapper.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PropertyDialogWrapper.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/SearchPatternAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TaskListTestStub.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextEditorTestStub.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogs.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogsAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAbstractFilteredResourcesSelectionDialog.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAutomatedSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogs.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogsAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIEditWorkingSetWizardAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIErrorDialogs.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialog.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialogAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIInteractiveSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogs.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogsAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UINewWorkingSetWizardAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferences.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferencesAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizards.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizardsAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWorkingSetWizardsAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/Bug87211Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedWindowDragTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragOperations.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorAreaDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDragSource.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTabDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTitleDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ExistingWindowProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/FastViewBarDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/IWorkbenchWindowProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/StandaloneViewPerspective.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/TestDragSource.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDragSource.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTabDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTitleDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WindowDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WorkbenchWindowDropTarget.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorConfigurationsExtensionDynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorScopesExtensionDynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionDefinitionsExtensionDynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActivitySupportTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BindingsExtensionDynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BrowserTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/CommandsExtensionDynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ContextsExtensionDynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DecoratorTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicContributionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicInvalidContributionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicPluginsTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicSupportTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestType.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicUtils.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EditorTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EncodingTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HandlersExtensionDynamicTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HelpSupportTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/IntroTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/MarkerSupportTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/NewWizardTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ObjectContributionTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PreferencePageTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PropertyPageTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StartupTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StatusHandlerTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/TestInstallUtil.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ViewTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/WorkingSetTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistAPITest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/filteredtree/FilteredTreeTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionExpressionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionSetExpressionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/AnimationEngineTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug41931Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug78470Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug99858Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/EditorActionBarsTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedSourceViewer.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelection.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelectionActionFilter.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ForcedException.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/InternalTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PerspectiveSwitcherTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PopupMenuExpressionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ReopenMenuTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TestMemento.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextControlView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextHandlerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextSelectionActionExpressionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/UtilTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/WorkbenchWindowSubordinateSourcesTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroPartTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest2.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/MockIntroPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/NoIntroPartTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingInteractionsTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingManagerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingPersistenceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug189167Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36537Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug40023Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42024Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42035Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42627Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43168Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43538Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43610Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug44460Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug53489Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysCsvTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysPreferenceModelTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/TestBinding.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/layout/constraints/LayoutConstraintsView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/ContextEditorPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/BrokenUpdatePreferencePage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ExplicitlyBusyView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/SaveablesView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/TestBackgroundSaveEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/UIPreferencesManual.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ViewWithSaveables.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/Bug75909Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterActivityTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterDeclarationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/FIXMEParameters.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSortUtilTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSupportRegistryTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerTesterTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerViewTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersViewColumnSizeTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingTestView.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResolutionGenerator.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResourceMapping.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/old_dialog_settings.xml
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/AddMarkersAction.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/BrokenWorkbenchWindowPulldownDelegate.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug231304Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug264804Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ChangeEnablementHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ContextIdValues.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DeclaredProgrammaticFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicContributionItemPopup.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicMenuTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloDHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloEHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloUpdateHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBaseTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBuilder.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuPopulationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuVisibilityTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenusTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionClasses.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/RemoveMarkersAction.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ShowViewMenuTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ToggleContextHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestActionBarContributor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TiledEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/ContextTextEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageKeyBindingTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/PartPageListener.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestKeyBindingMultiPageEditorPart.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestMultiPageEditor.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/AbstractNavigatorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/DuplicateMenuItemTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/ResourceNavigatorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/AdvancedTestOperation.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/MultiThreadedOperationsTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsAPITest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/TestOperation.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/UnredoableTestOperation.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationHistoryTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationStressTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/DeprecatedFontPreferenceTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/FontPreferenceTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ListenerRemovalTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesDialogTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/TestPreferenceInitializer.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/WorkingCopyPreferencesTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/Bug48589Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/PresentationsTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/DummyJob.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressContantsTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/PropertyPageEnablementTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TableResizePropertyPage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TreeResizePropertyPage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/AbstractPropertySheetTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ComboBoxPropertyDescriptorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/NewPropertySheetHandlerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetAuto.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertyShowInContextTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ShowInPropertySheetTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestNewPropertySheetHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestPropertySheetPage.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/CamelUtilTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessDialogTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ActiveUserSourceProvider.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ContributedServiceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EditorSourceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EvaluationServiceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ILevelService.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/LevelServiceFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ServicesTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/StaticVarPropertyTester.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/WorkbenchSiteProgressServiceTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesEditorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesViewTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug108033Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug95357Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug98800Test.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/EditorWithStateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/HandlerStateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/IntroSessionTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/LocaleTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorablePropertySheetTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorableViewTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/RestoreSessionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/SessionTests.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ThemeStateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ViewWithState.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FaultyExportWizard.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FreeStatusHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogManagerTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogUtil.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlerConfigurationSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingConfigurationTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/TestStatusHandler.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/WizardsStatusHandlingTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/systeminplaceeditor/OpenSystemInPlaceEditorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/JFaceThemeTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/TestColorFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeAPITest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemePropertyListener.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemesTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ActivateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/CloseTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/OpenEditorTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ShowViewTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestSuite.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorActivateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorCloseTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewActivateTest.java
    tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewCloseTest.java
    tests/org.eclipse.ui.tests/JFace-All Tests.launch
    tests/org.eclipse.ui.tests/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests/Manual Component Tests/CommonNavigator.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/Component Tests.html
    tests/org.eclipse.ui.tests/Manual Component Tests/Export.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/FieldAssist.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/FilteredResourcesSelectionDialog.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/Import.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/Navigator.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/Outline.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/Preferences.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesDialog.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesView.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/StatusHandling.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/Tasks.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/TextEditor.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/A.java
    tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/B.java
    tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/C.java
    tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/D.java
    tests/org.eclipse.ui.tests/Manual Component Tests/Undo.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/WelcomeEditor.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchAction.txt
    tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchLayout.txt
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Bookmarks View.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Common Navigator Resource View.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Export.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Import.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Navigator View.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/New File Wizard.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/New Folder Wizard.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/New Project Wizard.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Outline View.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Persistence.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Preferences.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Problems View.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties Dialog.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties View.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Tasks View.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Test Scenarios.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Text Editor
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Welcome Editor.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Actions.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Layout.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Export.html
    tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Import.html
    tests/org.eclipse.ui.tests/UI Test Suite.launch
    tests/org.eclipse.ui.tests/UI-Parts References Test Suite.launch
    tests/org.eclipse.ui.tests/UI-Session Tests.launch
    tests/org.eclipse.ui.tests/about.html
    tests/org.eclipse.ui.tests/build.properties
    tests/org.eclipse.ui.tests/data/PerspectiveSwitchSourceCode.txt
    tests/org.eclipse.ui.tests/data/dragtests.xml
    tests/org.eclipse.ui.tests/data/dynamic_classes.txt
    tests/org.eclipse.ui.tests/data/dynamic_classes.zip
    tests/org.eclipse.ui.tests/data/dynamic_classes/.classpath
    tests/org.eclipse.ui.tests/data/dynamic_classes/.cvsignore
    tests/org.eclipse.ui.tests/data/dynamic_classes/.externalToolBuilders/Jar Builder.launch
    tests/org.eclipse.ui.tests/data/dynamic_classes/.project
    tests/org.eclipse.ui.tests/data/dynamic_classes/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests/data/dynamic_classes/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests/data/dynamic_classes/browser/org/eclipse/ui/dynamic/DynamicBrowserSupport.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/build.properties
    tests/org.eclipse.ui.tests/data/dynamic_classes/build.xml
    tests/org.eclipse.ui.tests/data/dynamic_classes/commands/org/eclipse/ui/dynamic/commands/DynamicHandler.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLabelDecorator.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLightweightLabelDecorator.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/editor/org/eclipse/ui/dynamic/DynamicEditor.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/handlers/org/eclipse/ui/dynamic/handlers/DynamicHandler.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/help/org/eclipse/ui/dynamic/DynamicHelpSupport.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/intro/org/eclipse/ui/dynamic/DynamicIntro.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/markerSupport/org/eclipse/ui/dynamic/markerSupport/DynamicTestsSubCategoryProvider.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/menus/org/eclipse/ui/dynamic/menus/NonInterestingContributionItem.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/newWizard/org/eclipse/ui/dynamic/DynamicWizard.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockObjectActionDelegate.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockViewActionDelegate.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/perspective/org/eclipse/ui/dynamic/DynamicPerspective.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/preferencePage/org/eclipse/ui/dynamic/DynamicPreferencePage.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/propertyPage/org/eclipse/ui/dynamic/DynamicPropertyPage.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/startup/org/eclipse/ui/dynamic/DynamicStartup.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/statusHandler/org/eclipse/ui/dynamic/DynamicStatusHandler.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/view/org/eclipse/ui/dynamic/DynamicView.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetElementAdapter.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetPage.java
    tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetUpdater.java
    tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorConfigurationsExtensionDynamicTest/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorScopesExtensionDynamicTest/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.actionDefinitionsExtensionDynamicTest/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.bindingsExtensionDynamicTest/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/commands.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.contextsExtensionDynamicTest/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.tar
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.zip
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.tar
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.zip
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.tar
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.zip
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ProjectsArchive.zip
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.tar
    tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.zip
    tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/handlers.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/WhatDoesItDo.txt
    tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/browser.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/decorator.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.classpath
    tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.project
    tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/build.properties
    tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/menus.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/editor.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newEncoding1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/help.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/intro.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.classpath
    tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.project
    tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.settings/org.eclipse.jdt.core.prefs
    tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/META-INF/MANIFEST.MF
    tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/build.properties
    tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newKeyword1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/markerSupport.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/build.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test01.txt
    tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test02.txt
    tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test03.etest
    tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test04.properties
    tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/newWizard.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/oc.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/perspective.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/preferencePage.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/propertyPage.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/startup.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/statusHandler.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newView1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newView1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newView1/view.jar
    tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/anything.gif
    tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/plugin.xml
    tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/workingSet.jar
    tests/org.eclipse.ui.tests/data/workspaces/editorSessionTests.zip
    tests/org.eclipse.ui.tests/data/workspaces/importExistingFromDirTest.zip
    tests/org.eclipse.ui.tests/data/workspaces/introSessionTests.zip
    tests/org.eclipse.ui.tests/data/workspaces/themeSessionTests.zip
    tests/org.eclipse.ui.tests/doc/Introduction.html
    tests/org.eclipse.ui.tests/doc/JUnitPractices.html
    tests/org.eclipse.ui.tests/icons/anything.gif
    tests/org.eclipse.ui.tests/icons/binary_co.gif
    tests/org.eclipse.ui.tests/icons/dynamic.gif
    tests/org.eclipse.ui.tests/icons/editor.gif
    tests/org.eclipse.ui.tests/icons/imagetests/anything.gif
    tests/org.eclipse.ui.tests/icons/imagetests/binary_co.gif
    tests/org.eclipse.ui.tests/icons/imagetests/dynamic.gif
    tests/org.eclipse.ui.tests/icons/imagetests/editor.gif
    tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart1.gif
    tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart2.gif
    tests/org.eclipse.ui.tests/icons/imagetests/view.gif
    tests/org.eclipse.ui.tests/icons/mockeditorpart1.gif
    tests/org.eclipse.ui.tests/icons/mockeditorpart2.gif
    tests/org.eclipse.ui.tests/icons/pack_empty_co.gif
    tests/org.eclipse.ui.tests/icons/view.gif
    tests/org.eclipse.ui.tests/plugin.xml
    tests/org.eclipse.ui.tests/schema/sample.exsd
    tests/org.eclipse.ui.tests/test.xml
    tests/org.eclipse.ui.tests/uiSniff
    tests/org.eclipse.ui.tests/uiSniff.bat
diff --git a/bundles/org.eclipse.core.commands/.classpath b/bundles/org.eclipse.core.commands/.classpath
deleted file mode 100644
index ce0c7a5..0000000
--- a/bundles/org.eclipse.core.commands/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.core.commands/.cvsignore b/bundles/org.eclipse.core.commands/.cvsignore
deleted file mode 100644
index fe99505..0000000
--- a/bundles/org.eclipse.core.commands/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-
diff --git a/bundles/org.eclipse.core.commands/.project b/bundles/org.eclipse.core.commands/.project
deleted file mode 100644
index d16fcce..0000000
--- a/bundles/org.eclipse.core.commands/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.commands</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 72e8a1b..0000000
--- a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Tue Sep 11 09:41:20 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 3f5ce1c..0000000
--- a/bundles/org.eclipse.core.commands/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Fri Oct 31 10:29:44 EDT 2008
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.5\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/bundles/org.eclipse.core.commands/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.core.commands/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 3b2510f..0000000
--- a/bundles/org.eclipse.core.commands/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:10:21 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.core.commands/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.commands/META-INF/MANIFEST.MF
deleted file mode 100644
index 10327a9..0000000
--- a/bundles/org.eclipse.core.commands/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.core.commands
-Bundle-Version: 3.5.0.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.core.commands,
- org.eclipse.core.commands.common,
- org.eclipse.core.commands.contexts,
- org.eclipse.core.commands.operations,
- org.eclipse.core.commands.util,
- org.eclipse.core.internal.commands.operations;x-internal:=true,
- org.eclipse.core.internal.commands.util;x-internal:=true
-Require-Bundle: org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
diff --git a/bundles/org.eclipse.core.commands/about.html b/bundles/org.eclipse.core.commands/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.core.commands/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.commands/build.properties b/bundles/org.eclipse.core.commands/build.properties
deleted file mode 100644
index f926fc5..0000000
--- a/bundles/org.eclipse.core.commands/build.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-source.. = src/
-output.. = bin/
-src.includes = about.html
-bin.includes = about.html,\
-               plugin.properties,\
-               .,\
-               META-INF/
diff --git a/bundles/org.eclipse.core.commands/plugin.properties b/bundles/org.eclipse.core.commands/plugin.properties
deleted file mode 100644
index 45b6297..0000000
--- a/bundles/org.eclipse.core.commands/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName = Commands
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java
deleted file mode 100644
index b703732..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandler.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.EventManager;
-
-/**
- * <p>
- * This class is a partial implementation of <code>IHandler</code>. This
- * abstract implementation provides support for handler listeners. You should
- * subclass from this method unless you want to implement your own listener
- * support. Subclasses should call
- * {@link AbstractHandler#fireHandlerChanged(HandlerEvent)}when the handler
- * changes. Subclasses can also override {@link AbstractHandler#isEnabled()} and
- * {@link AbstractHandler#isHandled()}.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class AbstractHandler extends EventManager implements IHandler2 {
-
-	/**
-	 * Track this base class enabled state.
-	 * 
-	 * @since 3.4
-	 */
-	private boolean baseEnabled = true;
-
-	/**
-	 * @see IHandler#addHandlerListener(IHandlerListener)
-	 */
-	public void addHandlerListener(final IHandlerListener handlerListener) {
-		addListenerObject(handlerListener);
-	}
-
-	/**
-	 * The default implementation does nothing. Subclasses who attach listeners
-	 * to other objects are encouraged to detach them in this method.
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#dispose()
-	 */
-	public void dispose() {
-		// Do nothing.
-	}
-
-	/**
-	 * Fires an event to all registered listeners describing changes to this
-	 * instance.
-	 * <p>
-	 * Subclasses may extend the definition of this method (i.e., if a different
-	 * type of listener can be attached to a subclass). This is used primarily
-	 * for support of <code>AbstractHandler</code> in
-	 * <code>org.eclipse.ui.workbench</code>, and clients should be wary of
-	 * overriding this behaviour. If this method is overridden, then the first
-	 * line of the method should be "<code>super.fireHandlerChanged(handlerEvent);</code>".
-	 * </p>
-	 * 
-	 * @param handlerEvent
-	 *            the event describing changes to this instance. Must not be
-	 *            <code>null</code>.
-	 */
-	protected void fireHandlerChanged(final HandlerEvent handlerEvent) {
-		if (handlerEvent == null) {
-			throw new NullPointerException();
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IHandlerListener listener = (IHandlerListener) listeners[i];
-			listener.handlerChanged(handlerEvent);
-		}
-	}
-
-	/**
-	 * Whether this handler is capable of executing at this time. Subclasses may
-	 * override this method. If clients override this method they should also
-	 * consider overriding {@link #setEnabled(Object)} so they can be notified
-	 * about framework execution contexts.
-	 * 
-	 * @return <code>true</code>
-	 * @see #setEnabled(Object)
-	 * @see #setBaseEnabled(boolean)
-	 */
-	public boolean isEnabled() {
-		return baseEnabled;
-	}
-
-	/**
-	 * Allow the default {@link #isEnabled()} to answer our enabled state. It
-	 * will fire a HandlerEvent if necessary. If clients use this method they
-	 * should also consider overriding {@link #setEnabled(Object)} so they can
-	 * be notified about framework execution contexts.
-	 * 
-	 * @param state
-	 *            the enabled state
-	 * @since 3.4
-	 */
-	protected void setBaseEnabled(boolean state) {
-		if (baseEnabled == state) {
-			return;
-		}
-		baseEnabled = state;
-		fireHandlerChanged(new HandlerEvent(this, true, false));
-	}
-
-	/**
-	 * Called by the framework to allow the handler to update its enabled state
-	 * by extracting the same information available at execution time. Clients
-	 * may override if they need to extract information from the application
-	 * context.
-	 * 
-	 * @param evaluationContext
-	 *            the application context. May be <code>null</code>
-	 * @since 3.4
-	 * @see #setBaseEnabled(boolean)
-	 */
-	public void setEnabled(Object evaluationContext) {
-	}
-
-	/**
-	 * Whether this handler is capable of handling delegated responsibilities at
-	 * this time. Subclasses may override this method.
-	 * 
-	 * @return <code>true</code>
-	 */
-	public boolean isHandled() {
-		return true;
-	}
-
-	/**
-	 * <p>
-	 * Returns true iff there is one or more IHandlerListeners attached to this
-	 * AbstractHandler.
-	 * </p>
-	 * <p>
-	 * Subclasses may extend the definition of this method (i.e., if a different
-	 * type of listener can be attached to a subclass). This is used primarily
-	 * for support of <code>AbstractHandler</code> in
-	 * <code>org.eclipse.ui.workbench</code>, and clients should be wary of
-	 * overriding this behaviour. If this method is overridden, then the return
-	 * value should include "<code>super.hasListeners() ||</code>".
-	 * </p>
-	 * 
-	 * @return true iff there is one or more IHandlerListeners attached to this
-	 *         AbstractHandler
-	 */
-	protected boolean hasListeners() {
-		return isListenerAttached();
-	}
-
-	/**
-	 * @see IHandler#removeHandlerListener(IHandlerListener)
-	 */
-	public void removeHandlerListener(final IHandlerListener handlerListener) {
-		removeListenerObject(handlerListener);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java
deleted file mode 100644
index 219c938..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractHandlerWithState.java
+++ /dev/null
@@ -1,119 +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.core.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * <p>
- * An abstract implementation of {@link IObjectWithState}. This provides basic
- * handling for adding and remove state. When state is added, the handler
- * attaches itself as a listener and fire a handleStateChange event to notify
- * this handler. When state is removed, the handler removes itself as a
- * listener.
- * </p>
- * <p>
- * Clients may extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class AbstractHandlerWithState extends AbstractHandler
-		implements IObjectWithState, IStateListener {
-
-	/**
-	 * The map of states currently held by this handler. If this handler has no
-	 * state (generally, when inactive), then this will be <code>null</code>.
-	 */
-	private Map states = null;
-
-	/**
-	 * <p>
-	 * Adds a state to this handler. This will add this handler as a listener to
-	 * the state, and then fire a handleStateChange so that the handler can
-	 * respond to the incoming state.
-	 * </p>
-	 * <p>
-	 * Clients may extend this method, but they should call this super method
-	 * first before doing anything else.
-	 * </p>
-	 * 
-	 * @param stateId
-	 *            The identifier indicating the type of state being added; must
-	 *            not be <code>null</code>.
-	 * @param state
-	 *            The state to add; must not be <code>null</code>.
-	 */
-	public void addState(final String stateId, final State state) {
-		if (state == null) {
-			throw new NullPointerException("Cannot add a null state"); //$NON-NLS-1$
-		}
-
-		if (states == null) {
-			states = new HashMap(3);
-		}
-		states.put(stateId, state);
-		state.addListener(this);
-		handleStateChange(state, null);
-	}
-
-	public final State getState(final String stateId) {
-		if ((states == null) || (states.isEmpty())) {
-			return null;
-		}
-
-		return (State) states.get(stateId);
-	}
-
-	public final String[] getStateIds() {
-		if ((states == null) || (states.isEmpty())) {
-			return null;
-		}
-
-		final Set stateIds = states.keySet();
-		return (String[]) stateIds.toArray(new String[stateIds.size()]);
-	}
-
-	/**
-	 * <p>
-	 * Removes a state from this handler. This will remove this handler as a
-	 * listener to the state. No event is fired to notify the handler of this
-	 * change.
-	 * </p>
-	 * <p>
-	 * Clients may extend this method, but they should call this super method
-	 * first before doing anything else.
-	 * </p>
-	 * 
-	 * @param stateId
-	 *            The identifier of the state to remove; must not be
-	 *            <code>null</code>.
-	 */
-	public void removeState(final String stateId) {
-		if (stateId == null) {
-			throw new NullPointerException("Cannot remove a null state"); //$NON-NLS-1$
-		}
-
-		final State state = (State) states.get(stateId);
-		if (state != null) {
-			state.removeListener(this);
-			if (states != null) {
-				states.remove(state);
-				if (states.isEmpty()) {
-					states = null;
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java
deleted file mode 100644
index bf79a3f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/AbstractParameterValueConverter.java
+++ /dev/null
@@ -1,74 +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.core.commands;
-
-/**
- * <p>
- * Supports conversion between objects and strings for command parameter values.
- * Extenders must produce strings that identify objects (of a specific command
- * parameter type) as well as consume the strings to locate and return the
- * objects they identify.
- * </p>
- * <p>
- * This class offers multiple handlers of a command a consistent way of
- * converting string parameter values into the objects that the handlers would
- * prefer to deal with. This class also gives clients a way to serialize
- * object parameters as strings so that entire parameterized commands can be
- * serialized, stored and later deserialized and executed.
- * </p>
- * <p>
- * This class will typically be extended so the subclass can be referenced from
- * the <code>converter</code> attribute of the
- * <code>commandParameterType</code> elemement of the
- * <code>org.eclipse.ui.commands</code> extension-point. Objects implementing
- * this interface may also be passed directly to
- * {@link ParameterType#define(String, AbstractParameterValueConverter)} by
- * clients.
- * </p>
- * 
- * @see ParameterType#define(String, AbstractParameterValueConverter)
- * @see ParameterizedCommand#serialize()
- * @since 3.2
- */
-public abstract class AbstractParameterValueConverter {
-
-	/**
-	 * Converts a string encoded command parameter value into the parameter
-	 * value object.
-	 * 
-	 * @param parameterValue
-	 *            a command parameter value string describing an object; may be
-	 *            <code>null</code>
-	 * @return the object described by the command parameter value string; may
-	 *         be <code>null</code>
-	 * @throws ParameterValueConversionException
-	 *             if an object cannot be produced from the
-	 *             <code>parameterValue</code> string
-	 */
-	public abstract Object convertToObject(final String parameterValue)
-			throws ParameterValueConversionException;
-
-	/**
-	 * Converts a command parameter value object into a string that encodes a
-	 * reference to the object or serialization of the object.
-	 * 
-	 * @param parameterValue
-	 *            an object to convert into an identifying string; may be
-	 *            <code>null</code>
-	 * @return a string describing the provided object; may be <code>null</code>
-	 * @throws ParameterValueConversionException
-	 *             if a string reference or serialization cannot be provided for
-	 *             the <code>parameterValue</code>
-	 */
-	public abstract String convertToString(final Object parameterValue)
-			throws ParameterValueConversionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java
deleted file mode 100644
index e8c968f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Category.java
+++ /dev/null
@@ -1,188 +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.core.commands;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A logical group for a set of commands. A command belongs to exactly one
- * category. The category has no functional effect, but may be used in graphical
- * tools that want to group the set of commands somehow.
- * </p>
- * 
- * @since 3.1
- */
-public final class Category extends NamedHandleObject {
-
-	/**
-	 * A collection of objects listening to changes to this category. This
-	 * collection is <code>null</code> if there are no listeners.
-	 */
-	private Collection categoryListeners;
-
-	/**
-	 * Constructs a new instance of <code>Category</code> based on the given
-	 * identifier. When a category is first constructed, it is undefined.
-	 * Category should only be constructed by the <code>CommandManager</code>
-	 * to ensure that identifier remain unique.
-	 * 
-	 * @param id
-	 *            The identifier for the category. This value must not be
-	 *            <code>null</code>, and must be unique amongst all
-	 *            categories.
-	 */
-	Category(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Adds a listener to this category that will be notified when this
-	 * category's state changes.
-	 * 
-	 * @param categoryListener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addCategoryListener(
-			final ICategoryListener categoryListener) {
-		if (categoryListener == null) {
-			throw new NullPointerException();
-		}
-		if (categoryListeners == null) {
-			categoryListeners = new ArrayList();
-		}
-		if (!categoryListeners.contains(categoryListener)) {
-			categoryListeners.add(categoryListener);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Defines this category by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 */
-	public final void define(final String name, final String description) {
-		if (name == null) {
-			throw new NullPointerException(
-					"The name of a command cannot be null"); //$NON-NLS-1$
-		}
-
-		final boolean definedChanged = !this.defined;
-		this.defined = true;
-
-		final boolean nameChanged = !Util.equals(this.name, name);
-		this.name = name;
-
-		final boolean descriptionChanged = !Util.equals(this.description,
-				description);
-		this.description = description;
-
-		fireCategoryChanged(new CategoryEvent(this, definedChanged,
-				descriptionChanged, nameChanged));
-	}
-
-	/**
-	 * Notifies the listeners for this category that it has changed in some way.
-	 * 
-	 * @param categoryEvent
-	 *            The event to send to all of the listener; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireCategoryChanged(final CategoryEvent categoryEvent) {
-		if (categoryEvent == null) {
-			throw new NullPointerException();
-		}
-		if (categoryListeners != null) {
-			final Iterator listenerItr = categoryListeners.iterator();
-			while (listenerItr.hasNext()) {
-				final ICategoryListener listener = (ICategoryListener) listenerItr
-						.next();
-				listener.categoryChanged(categoryEvent);
-			}
-		}
-	}
-
-	/**
-	 * Removes a listener from this category.
-	 * 
-	 * @param categoryListener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 * 
-	 */
-	public final void removeCategoryListener(
-			final ICategoryListener categoryListener) {
-		if (categoryListener == null) {
-			throw new NullPointerException();
-		}
-
-		if (categoryListeners != null) {
-			categoryListeners.remove(categoryListener);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.common.HandleObject#toString()
-	 */
-	public String toString() {
-		if (string == null) {
-			final StringBuffer stringBuffer = new StringBuffer();
-			stringBuffer.append("Category("); //$NON-NLS-1$
-            stringBuffer.append(id);
-            stringBuffer.append(',');
-            stringBuffer.append(name);
-            stringBuffer.append(',');
-            stringBuffer.append(description);
-            stringBuffer.append(',');
-			stringBuffer.append(defined);
-            stringBuffer.append(')');
-			string = stringBuffer.toString();
-		}
-		return string;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.common.HandleObject#undefine()
-	 */
-	public void undefine() {
-		string = null;
-
-		final boolean definedChanged = defined;
-		defined = false;
-
-		final boolean nameChanged = name != null;
-		name = null;
-
-		final boolean descriptionChanged = description != null;
-		description = null;
-
-		fireCategoryChanged(new CategoryEvent(this, definedChanged,
-				descriptionChanged, nameChanged));
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java
deleted file mode 100644
index 9675802..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CategoryEvent.java
+++ /dev/null
@@ -1,63 +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.core.commands;
-
-import org.eclipse.core.commands.common.AbstractNamedHandleEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>Category</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ICategoryListener#categoryChanged(CategoryEvent)
- */
-public final class CategoryEvent extends AbstractNamedHandleEvent {
-
-	/**
-	 * The category that has changed; this value is never <code>null</code>.
-	 */
-	private final Category category;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param category
-	 *            the instance of the interface that changed.
-	 * @param definedChanged
-	 *            true, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            true, iff the description property changed.
-	 * @param nameChanged
-	 *            true, iff the name property changed.
-	 */
-	public CategoryEvent(final Category category, final boolean definedChanged,
-			final boolean descriptionChanged, final boolean nameChanged) {
-		super(definedChanged, descriptionChanged, nameChanged);
-
-		if (category == null) {
-			throw new NullPointerException();
-		}
-		this.category = category;
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final Category getCategory() {
-		return category;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
deleted file mode 100644
index f3f25a4..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Command.java
+++ /dev/null
@@ -1,1118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.StringWriter;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.util.Tracing;
-import org.eclipse.core.internal.commands.util.Util;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-
-/**
- * <p>
- * A command is an abstract representation for some semantic behaviour. It is
- * not the actual implementation of this behaviour, nor is it the visual
- * appearance of this behaviour in the user interface. Instead, it is a bridge
- * between the two.
- * </p>
- * <p>
- * The concept of a command is based on the command design pattern. The notable
- * difference is how the command delegates responsibility for execution. Rather
- * than allowing concrete subclasses, it uses a handler mechanism (see the
- * <code>handlers</code> extension point). This provides another level of
- * indirection.
- * </p>
- * <p>
- * A command will exist in two states: defined and undefined. A command is
- * defined if it is declared in the XML of a resolved plug-in. If the plug-in is
- * unloaded or the command is simply not declared, then it is undefined. Trying
- * to reference an undefined command will succeed, but trying to access any of
- * its functionality will fail with a <code>NotDefinedException</code>. If
- * you need to know when a command changes from defined to undefined (or vice
- * versa), then attach a command listener.
- * </p>
- * <p>
- * Commands are mutable and will change as their definition changes.
- * </p>
- * 
- * @since 3.1
- */
-public final class Command extends NamedHandleObjectWithState implements
-		Comparable {
-
-	/**
-	 * This flag can be set to <code>true</code> if commands should print
-	 * information to <code>System.out</code> when executing.
-	 */
-	public static boolean DEBUG_COMMAND_EXECUTION = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if commands should print
-	 * information to <code>System.out</code> when changing handlers.
-	 */
-	public static boolean DEBUG_HANDLERS = false;
-
-	/**
-	 * This flag can be set to a particular command identifier if only that
-	 * command should print information to <code>System.out</code> when
-	 * changing handlers.
-	 */
-	public static String DEBUG_HANDLERS_COMMAND_ID = null;
-
-	/**
-	 * The category to which this command belongs. This value should not be
-	 * <code>null</code> unless the command is undefined.
-	 */
-	private Category category = null;
-
-	/**
-	 * A collection of objects listening to the execution of this command. This
-	 * collection is <code>null</code> if there are no listeners.
-	 */
-	private transient ListenerList executionListeners = null;
-
-	/**
-	 * The handler currently associated with this command. This value may be
-	 * <code>null</code> if there is no handler currently.
-	 */
-	private transient IHandler handler = null;
-
-	/**
-	 * The help context identifier for this command. This can be
-	 * <code>null</code> if there is no help currently associated with the
-	 * command.
-	 * 
-	 * @since 3.2
-	 */
-	private String helpContextId;
-
-	/**
-	 * The ordered array of parameters understood by this command. This value
-	 * may be <code>null</code> if there are no parameters, or if the command
-	 * is undefined. It may also be empty.
-	 */
-	private IParameter[] parameters = null;
-
-	/**
-	 * The type of the return value of this command. This value may be
-	 * <code>null</code> if the command does not declare a return type.
-	 * 
-	 * @since 3.2
-	 */
-	private ParameterType returnType = null;
-
-	/**
-	 * Our command will listen to the active handler for enablement changes so
-	 * that they can be fired from the command itself.
-	 * 
-	 * @since 3.3
-	 */
-	private IHandlerListener handlerListener;
-
-	/**
-	 * Constructs a new instance of <code>Command</code> based on the given
-	 * identifier. When a command is first constructed, it is undefined.
-	 * Commands should only be constructed by the <code>CommandManager</code>
-	 * to ensure that the identifier remains unique.
-	 * 
-	 * @param id
-	 *            The identifier for the command. This value must not be
-	 *            <code>null</code>, and must be unique amongst all commands.
-	 */
-	Command(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Adds a listener to this command that will be notified when this command's
-	 * state changes.
-	 * 
-	 * @param commandListener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addCommandListener(final ICommandListener commandListener) {
-		if (commandListener == null) {
-			throw new NullPointerException("Cannot add a null command listener"); //$NON-NLS-1$
-		}
-		addListenerObject(commandListener);
-	}
-
-	/**
-	 * Adds a listener to this command that will be notified when this command
-	 * is about to execute.
-	 * 
-	 * @param executionListener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addExecutionListener(
-			final IExecutionListener executionListener) {
-		if (executionListener == null) {
-			throw new NullPointerException(
-					"Cannot add a null execution listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners == null) {
-			executionListeners = new ListenerList(ListenerList.IDENTITY);
-		}
-
-		executionListeners.add(executionListener);
-	}
-
-	/**
-	 * <p>
-	 * Adds a state to this command. This will add this state to the active
-	 * handler, if the active handler is an instance of {@link IObjectWithState}.
-	 * </p>
-	 * <p>
-	 * A single instance of {@link State} cannot be registered with multiple
-	 * commands. Each command requires its own unique instance.
-	 * </p>
-	 * 
-	 * @param id
-	 *            The identifier of the state to add; must not be
-	 *            <code>null</code>.
-	 * @param state
-	 *            The state to add; must not be <code>null</code>.
-	 * @since 3.2
-	 */
-	public void addState(final String id, final State state) {
-		super.addState(id, state);
-		state.setId(id);
-		if (handler instanceof IObjectWithState) {
-			((IObjectWithState) handler).addState(id, state);
-		}
-	}
-
-	/**
-	 * Compares this command with another command by comparing each of its
-	 * non-transient attributes.
-	 * 
-	 * @param object
-	 *            The object with which to compare; must be an instance of
-	 *            <code>Command</code>.
-	 * @return A negative integer, zero or a postivie integer, if the object is
-	 *         greater than, equal to or less than this command.
-	 */
-	public final int compareTo(final Object object) {
-		final Command castedObject = (Command) object;
-		int compareTo = Util.compare(category, castedObject.category);
-		if (compareTo == 0) {
-			compareTo = Util.compare(defined, castedObject.defined);
-			if (compareTo == 0) {
-				compareTo = Util.compare(description, castedObject.description);
-				if (compareTo == 0) {
-					compareTo = Util.compare(handler, castedObject.handler);
-					if (compareTo == 0) {
-						compareTo = Util.compare(id, castedObject.id);
-						if (compareTo == 0) {
-							compareTo = Util.compare(name, castedObject.name);
-							if (compareTo == 0) {
-								compareTo = Util.compare(parameters,
-										castedObject.parameters);
-							}
-						}
-					}
-				}
-			}
-		}
-		return compareTo;
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @since 3.2
-	 */
-	public final void define(final String name, final String description,
-			final Category category) {
-		define(name, description, category, null);
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @param parameters
-	 *            The parameters understood by this command. This value may be
-	 *            either <code>null</code> or empty if the command does not
-	 *            accept parameters.
-	 */
-	public final void define(final String name, final String description,
-			final Category category, final IParameter[] parameters) {
-		define(name, description, category, parameters, null);
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @param parameters
-	 *            The parameters understood by this command. This value may be
-	 *            either <code>null</code> or empty if the command does not
-	 *            accept parameters.
-	 * @param returnType
-	 *            The type of value returned by this command. This value may be
-	 *            <code>null</code> if the command does not declare a return
-	 *            type.
-	 * @since 3.2
-	 */
-	public final void define(final String name, final String description,
-			final Category category, final IParameter[] parameters,
-			ParameterType returnType) {
-		define(name, description, category, parameters, returnType, null);
-	}
-
-	/**
-	 * <p>
-	 * Defines this command by giving it a name, and possibly a description as
-	 * well. The defined property automatically becomes <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param name
-	 *            The name of this command; must not be <code>null</code>.
-	 * @param description
-	 *            The description for this command; may be <code>null</code>.
-	 * @param category
-	 *            The category for this command; must not be <code>null</code>.
-	 * @param parameters
-	 *            The parameters understood by this command. This value may be
-	 *            either <code>null</code> or empty if the command does not
-	 *            accept parameters.
-	 * @param returnType
-	 *            The type of value returned by this command. This value may be
-	 *            <code>null</code> if the command does not declare a return
-	 *            type.
-	 * @param helpContextId
-	 *            The identifier of the help context to associate with this
-	 *            command; may be <code>null</code> if this command does not
-	 *            have any help associated with it.
-	 * @since 3.2
-	 */
-	public final void define(final String name, final String description,
-			final Category category, final IParameter[] parameters,
-			ParameterType returnType, final String helpContextId) {
-		if (name == null) {
-			throw new NullPointerException(
-					"The name of a command cannot be null"); //$NON-NLS-1$
-		}
-
-		if (category == null) {
-			throw new NullPointerException(
-					"The category of a command cannot be null"); //$NON-NLS-1$
-		}
-
-		final boolean definedChanged = !this.defined;
-		this.defined = true;
-
-		final boolean nameChanged = !Util.equals(this.name, name);
-		this.name = name;
-
-		final boolean descriptionChanged = !Util.equals(this.description,
-				description);
-		this.description = description;
-
-		final boolean categoryChanged = !Util.equals(this.category, category);
-		this.category = category;
-
-		final boolean parametersChanged = !Util.equals(this.parameters,
-				parameters);
-		this.parameters = parameters;
-
-		final boolean returnTypeChanged = !Util.equals(this.returnType,
-				returnType);
-		this.returnType = returnType;
-
-		final boolean helpContextIdChanged = !Util.equals(this.helpContextId,
-				helpContextId);
-		this.helpContextId = helpContextId;
-
-		fireCommandChanged(new CommandEvent(this, categoryChanged,
-				definedChanged, descriptionChanged, false, nameChanged,
-				parametersChanged, returnTypeChanged, helpContextIdChanged));
-	}
-
-	/**
-	 * Executes this command by delegating to the current handler, if any. If
-	 * the debugging flag is set, then this method prints information about
-	 * which handler is selected for performing this command. This method will
-	 * succeed regardless of whether the command is enabled or defined. It is
-	 * generally preferred to call {@link #executeWithChecks(ExecutionEvent)}.
-	 * 
-	 * @param event
-	 *            An event containing all the information about the current
-	 *            state of the application; must not be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>. This
-	 *         result will be available to the client executing the command, and
-	 *         execution listeners.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @deprecated Please use {@link #executeWithChecks(ExecutionEvent)}
-	 *             instead.
-	 */
-	public final Object execute(final ExecutionEvent event)
-			throws ExecutionException, NotHandledException {
-		firePreExecute(event);
-		final IHandler handler = this.handler;
-
-		// Perform the execution, if there is a handler.
-		if ((handler != null) && (handler.isHandled())) {
-			try {
-				final Object returnValue = handler.execute(event);
-				firePostExecuteSuccess(returnValue);
-				return returnValue;
-			} catch (final ExecutionException e) {
-				firePostExecuteFailure(e);
-				throw e;
-			}
-		}
-
-		final NotHandledException e = new NotHandledException(
-				"There is no handler to execute. " + getId()); //$NON-NLS-1$
-		fireNotHandled(e);
-		throw e;
-	}
-
-	/**
-	 * Executes this command by delegating to the current handler, if any. If
-	 * the debugging flag is set, then this method prints information about
-	 * which handler is selected for performing this command. This does checks
-	 * to see if the command is enabled and defined. If it is not both enabled
-	 * and defined, then the execution listeners will be notified and an
-	 * exception thrown.
-	 * 
-	 * @param event
-	 *            An event containing all the information about the current
-	 *            state of the application; must not be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>. This
-	 *         result will be available to the client executing the command, and
-	 *         execution listeners.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotDefinedException
-	 *             If the command you are trying to execute is not defined.
-	 * @throws NotEnabledException
-	 *             If the command you are trying to execute is not enabled.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @since 3.2
-	 */
-	public final Object executeWithChecks(final ExecutionEvent event)
-			throws ExecutionException, NotDefinedException,
-			NotEnabledException, NotHandledException {
-		firePreExecute(event);
-		final IHandler handler = this.handler;
-
-		if (!isDefined()) {
-			final NotDefinedException exception = new NotDefinedException(
-					"Trying to execute a command that is not defined. " //$NON-NLS-1$
-							+ getId());
-			fireNotDefined(exception);
-			throw exception;
-		}
-
-		// Perform the execution, if there is a handler.
-		if ((handler != null) && (handler.isHandled())) {
-			setEnabled(event.getApplicationContext());
-			if (!isEnabled()) {
-				final NotEnabledException exception = new NotEnabledException(
-						"Trying to execute the disabled command " + getId()); //$NON-NLS-1$
-				fireNotEnabled(exception);
-				throw exception;
-			}
-
-			try {
-				final Object returnValue = handler.execute(event);
-				firePostExecuteSuccess(returnValue);
-				return returnValue;
-			} catch (final ExecutionException e) {
-				firePostExecuteFailure(e);
-				throw e;
-			}
-		}
-
-		final NotHandledException e = new NotHandledException(
-				"There is no handler to execute for command " + getId()); //$NON-NLS-1$
-		fireNotHandled(e);
-		throw e;
-	}
-
-	/**
-	 * Notifies the listeners for this command that it has changed in some way.
-	 * 
-	 * @param commandEvent
-	 *            The event to send to all of the listener; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireCommandChanged(final CommandEvent commandEvent) {
-		if (commandEvent == null) {
-			throw new NullPointerException("Cannot fire a null event"); //$NON-NLS-1$
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final ICommandListener listener = (ICommandListener) listeners[i];
-			SafeRunner.run(new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-				}
-
-				public void run() throws Exception {
-					listener.commandChanged(commandEvent);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed because the command is not defined.
-	 * 
-	 * @param e
-	 *            The exception that is about to be thrown; never
-	 *            <code>null</code>.
-	 * @since 3.2
-	 */
-	private final void fireNotDefined(final NotDefinedException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "not defined: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final Object object = listeners[i];
-				if (object instanceof IExecutionListenerWithChecks) {
-					final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-					listener.notDefined(getId(), e);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed because there is no handler.
-	 * 
-	 * @param e
-	 *            The exception that is about to be thrown; never
-	 *            <code>null</code>.
-	 * @since 3.2
-	 */
-	private final void fireNotEnabled(final NotEnabledException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "not enabled: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final Object object = listeners[i];
-				if (object instanceof IExecutionListenerWithChecks) {
-					final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-					listener.notEnabled(getId(), e);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed because there is no handler.
-	 * 
-	 * @param e
-	 *            The exception that is about to be thrown; never
-	 *            <code>null</code>.
-	 */
-	private final void fireNotHandled(final NotHandledException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "not handled: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.notHandled(getId(), e);
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute has failed during the execution.
-	 * 
-	 * @param e
-	 *            The exception that has been thrown; never <code>null</code>.
-	 *            After this method completes, the exception will be thrown
-	 *            again.
-	 */
-	private final void firePostExecuteFailure(final ExecutionException e) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "failure: id=" + getId() + "; exception=" + e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.postExecuteFailure(getId(), e);
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an execution has
-	 * completed successfully.
-	 * 
-	 * @param returnValue
-	 *            The return value from the command; may be <code>null</code>.
-	 */
-	private final void firePostExecuteSuccess(final Object returnValue) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "success: id=" + getId() + "; returnValue=" //$NON-NLS-1$ //$NON-NLS-2$
-					+ returnValue);
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.postExecuteSuccess(getId(), returnValue);
-			}
-		}
-	}
-
-	/**
-	 * Notifies the execution listeners for this command that an attempt to
-	 * execute is about to start.
-	 * 
-	 * @param event
-	 *            The execution event that will be used; never <code>null</code>.
-	 */
-	private final void firePreExecute(final ExecutionEvent event) {
-		// Debugging output
-		if (DEBUG_COMMAND_EXECUTION) {
-			Tracing.printTrace("COMMANDS", "execute" + Tracing.SEPARATOR //$NON-NLS-1$ //$NON-NLS-2$
-					+ "starting: id=" + getId() + "; event=" + event); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		if (executionListeners != null) {
-			final Object[] listeners = executionListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				final IExecutionListener listener = (IExecutionListener) listeners[i];
-				listener.preExecute(getId(), event);
-			}
-		}
-	}
-
-	/**
-	 * Returns the category for this command.
-	 * 
-	 * @return The category for this command; never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public final Category getCategory() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the category from an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		return category;
-	}
-
-	/**
-	 * Returns the current handler for this command. This is used by the command
-	 * manager for determining the appropriate help context identifiers and by
-	 * the command service to allow handlers to update elements.
-	 * <p>
-	 * This value can change at any time and should never be cached.
-	 * </p>
-	 * 
-	 * @return The current handler for this command; may be <code>null</code>.
-	 * @since 3.3
-	 */
-	public final IHandler getHandler() {
-		return handler;
-	}
-
-	/**
-	 * Returns the help context identifier associated with this command. This
-	 * method should not be called by clients. Clients should use
-	 * {@link CommandManager#getHelpContextId(Command)} instead.
-	 * 
-	 * @return The help context identifier for this command; may be
-	 *         <code>null</code> if there is none.
-	 * @since 3.2
-	 */
-	final String getHelpContextId() {
-		return helpContextId;
-	}
-
-	/**
-	 * Returns the parameter with the provided id or <code>null</code> if this
-	 * command does not have a parameter with the id.
-	 * 
-	 * @param parameterId
-	 *            The id of the parameter to retrieve.
-	 * @return The parameter with the provided id or <code>null</code> if this
-	 *         command does not have a parameter with the id.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 * @since 3.2
-	 */
-	public final IParameter getParameter(final String parameterId)
-			throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get a parameter from an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		if (parameters == null) {
-			return null;
-		}
-
-		for (int i = 0; i < parameters.length; i++) {
-			final IParameter parameter = parameters[i];
-			if (parameter.getId().equals(parameterId)) {
-				return parameter;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns the parameters for this command. This call triggers provides a
-	 * copy of the array, so excessive calls to this method should be avoided.
-	 * 
-	 * @return The parameters for this command. This value might be
-	 *         <code>null</code>, if the command has no parameters.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public final IParameter[] getParameters() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the parameters from an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		if ((parameters == null) || (parameters.length == 0)) {
-			return null;
-		}
-
-		final IParameter[] returnValue = new IParameter[parameters.length];
-		System.arraycopy(parameters, 0, returnValue, 0, parameters.length);
-		return returnValue;
-	}
-
-	/**
-	 * Returns the {@link ParameterType} for the parameter with the provided id
-	 * or <code>null</code> if this command does not have a parameter type
-	 * with the id.
-	 * 
-	 * @param parameterId
-	 *            The id of the parameter to retrieve the {@link ParameterType}
-	 *            of.
-	 * @return The {@link ParameterType} for the parameter with the provided id
-	 *         or <code>null</code> if this command does not have a parameter
-	 *         type with the provided id.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 * @since 3.2
-	 */
-	public final ParameterType getParameterType(final String parameterId)
-			throws NotDefinedException {
-		final IParameter parameter = getParameter(parameterId);
-		if (parameter instanceof ITypedParameter) {
-			final ITypedParameter parameterWithType = (ITypedParameter) parameter;
-			return parameterWithType.getParameterType();
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the {@link ParameterType} for the return value of this command or
-	 * <code>null</code> if this command does not declare a return value
-	 * parameter type.
-	 * 
-	 * @return The {@link ParameterType} for the return value of this command or
-	 *         <code>null</code> if this command does not declare a return
-	 *         value parameter type.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 * @since 3.2
-	 */
-	public final ParameterType getReturnType() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the return type of an undefined command. " //$NON-NLS-1$
-							+ id);
-		}
-
-		return returnType;
-	}
-
-	/**
-	 * Returns whether this command has a handler, and whether this handler is
-	 * also handled and enabled.
-	 * 
-	 * @return <code>true</code> if the command is handled; <code>false</code>
-	 *         otherwise.
-	 */
-	public final boolean isEnabled() {
-		if (handler == null) {
-			return false;
-		}
-
-		try {
-			return handler.isEnabled();
-		} catch (Exception e) {
-			if (DEBUG_HANDLERS) {
-				// since this has the ability to generate megs of logs, only
-				// provide information if tracing
-				Tracing.printTrace("HANDLERS", "Handler " + handler  + " for "  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-						+ id + " threw unexpected exception"); //$NON-NLS-1$ 
-				e.printStackTrace(System.out);
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * Called be the framework to allow the handler to update its enabled state.
-	 * 
-	 * @param evaluationContext
-	 *            the state to evaluate against. May be <code>null</code>
-	 *            which indicates that the handler can query whatever model that
-	 *            is necessary.  This context must not be cached.
-	 * @since 3.4
-	 */
-	public void setEnabled(Object evaluationContext) {
-		if (handler instanceof IHandler2) {
-			((IHandler2) handler).setEnabled(evaluationContext);
-		}
-	}
-
-	/**
-	 * Returns whether this command has a handler, and whether this handler is
-	 * also handled.
-	 * 
-	 * @return <code>true</code> if the command is handled; <code>false</code>
-	 *         otherwise.
-	 */
-	public final boolean isHandled() {
-		if (handler == null) {
-			return false;
-		}
-
-		return handler.isHandled();
-	}
-
-	/**
-	 * Removes a listener from this command.
-	 * 
-	 * @param commandListener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 * 
-	 */
-	public final void removeCommandListener(
-			final ICommandListener commandListener) {
-		if (commandListener == null) {
-			throw new NullPointerException(
-					"Cannot remove a null command listener"); //$NON-NLS-1$
-		}
-
-		removeListenerObject(commandListener);
-	}
-
-	/**
-	 * Removes a listener from this command.
-	 * 
-	 * @param executionListener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 * 
-	 */
-	public final void removeExecutionListener(
-			final IExecutionListener executionListener) {
-		if (executionListener == null) {
-			throw new NullPointerException(
-					"Cannot remove a null execution listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners != null) {
-			executionListeners.remove(executionListener);
-			if (executionListeners.isEmpty()) {
-				executionListeners = null;
-			}
-		}
-	}
-
-	/**
-	 * <p>
-	 * Removes a state from this command. This will remove the state from the
-	 * active handler, if the active handler is an instance of
-	 * {@link IObjectWithState}.
-	 * </p>
-	 * 
-	 * @param stateId
-	 *            The identifier of the state to remove; must not be
-	 *            <code>null</code>.
-	 * @since 3.2
-	 */
-	public void removeState(final String stateId) {
-		if (handler instanceof IObjectWithState) {
-			((IObjectWithState) handler).removeState(stateId);
-		}
-		super.removeState(stateId);
-	}
-
-	/**
-	 * Changes the handler for this command. This will remove all the state from
-	 * the currently active handler (if any), and add it to <code>handler</code>.
-	 * If debugging is turned on, then this will also print information about
-	 * the change to <code>System.out</code>.
-	 * 
-	 * @param handler
-	 *            The new handler; may be <code>null</code> if none.
-	 * @return <code>true</code> if the handler changed; <code>false</code>
-	 *         otherwise.
-	 */
-	public final boolean setHandler(final IHandler handler) {
-		if (Util.equals(handler, this.handler)) {
-			return false;
-		}
-
-		// Swap the state around.
-		final String[] stateIds = getStateIds();
-		if (stateIds != null) {
-			for (int i = 0; i < stateIds.length; i++) {
-				final String stateId = stateIds[i];
-				if (this.handler instanceof IObjectWithState) {
-					((IObjectWithState) this.handler).removeState(stateId);
-				}
-				if (handler instanceof IObjectWithState) {
-					final State stateToAdd = getState(stateId);
-					((IObjectWithState) handler).addState(stateId, stateToAdd);
-				}
-			}
-		}
-
-		boolean enabled = isEnabled();
-		if (this.handler != null) {
-			this.handler.removeHandlerListener(getHandlerListener());
-		}
-
-		// Update the handler, and flush the string representation.
-		this.handler = handler;
-		if (this.handler != null) {
-			this.handler.addHandlerListener(getHandlerListener());
-		}
-		string = null;
-
-		// Debugging output
-		if ((DEBUG_HANDLERS)
-				&& ((DEBUG_HANDLERS_COMMAND_ID == null) || (DEBUG_HANDLERS_COMMAND_ID
-						.equals(id)))) {
-			final StringBuffer buffer = new StringBuffer("Command('"); //$NON-NLS-1$
-			buffer.append(id);
-			buffer.append("') has changed to "); //$NON-NLS-1$
-			if (handler == null) {
-				buffer.append("no handler"); //$NON-NLS-1$
-			} else {
-				buffer.append('\'');
-				buffer.append(handler);
-				buffer.append("' as its handler"); //$NON-NLS-1$
-			}
-			Tracing.printTrace("HANDLERS", buffer.toString()); //$NON-NLS-1$
-		}
-
-		// Send notification
-		fireCommandChanged(new CommandEvent(this, false, false, false, true,
-				false, false, false, false, enabled != isEnabled()));
-
-		return true;
-	}
-
-	/**
-	 * @return the handler listener
-	 */
-	private IHandlerListener getHandlerListener() {
-		if (handlerListener == null) {
-			handlerListener = new IHandlerListener() {
-				public void handlerChanged(HandlerEvent handlerEvent) {
-					boolean enabledChanged = handlerEvent.isEnabledChanged();
-					boolean handledChanged = handlerEvent.isHandledChanged();
-					fireCommandChanged(new CommandEvent(Command.this, false,
-							false, false, handledChanged, false, false, false,
-							false, enabledChanged));
-				}
-			};
-		}
-		return handlerListener;
-	}
-
-	/**
-	 * The string representation of this command -- for debugging purposes only.
-	 * This string should not be shown to an end user.
-	 * 
-	 * @return The string representation; never <code>null</code>.
-	 */
-	public final String toString() {
-		if (string == null) {
-			final StringWriter sw = new StringWriter();
-			final BufferedWriter buffer = new BufferedWriter(sw);
-			try {
-				buffer.write("Command("); //$NON-NLS-1$
-				buffer.write(id);
-				buffer.write(',');
-				buffer.write(name==null?"":name); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(description==null?"":description); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(category==null?"":category.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(handler==null?"":handler.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.newLine();
-				buffer.write("\t\t"); //$NON-NLS-1$
-				buffer.write(parameters==null?"":parameters.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.write(returnType==null?"":returnType.toString()); //$NON-NLS-1$
-				buffer.write(',');
-				buffer.write(""+defined); //$NON-NLS-1$
-				buffer.write(')');
-				buffer.flush();
-			} catch (IOException e) {
-				// should never get this exception
-			}
-			string = sw.toString();
-		}
-		return string;
-	}
-
-	/**
-	 * Makes this command become undefined. This has the side effect of changing
-	 * the name and description to <code>null</code>. This also removes all
-	 * state and disposes of it. Notification is sent to all listeners.
-	 */
-	public final void undefine() {
-		boolean enabledChanged = isEnabled();
-
-		string = null;
-
-		final boolean definedChanged = defined;
-		defined = false;
-
-		final boolean nameChanged = name != null;
-		name = null;
-
-		final boolean descriptionChanged = description != null;
-		description = null;
-
-		final boolean categoryChanged = category != null;
-		category = null;
-
-		final boolean parametersChanged = parameters != null;
-		parameters = null;
-
-		final boolean returnTypeChanged = returnType != null;
-		returnType = null;
-
-		final String[] stateIds = getStateIds();
-		if (stateIds != null) {
-			if (handler instanceof IObjectWithState) {
-				final IObjectWithState handlerWithState = (IObjectWithState) handler;
-				for (int i = 0; i < stateIds.length; i++) {
-					final String stateId = stateIds[i];
-					handlerWithState.removeState(stateId);
-
-					final State state = getState(stateId);
-					removeState(stateId);
-					state.dispose();
-				}
-			} else {
-				for (int i = 0; i < stateIds.length; i++) {
-					final String stateId = stateIds[i];
-					final State state = getState(stateId);
-					removeState(stateId);
-					state.dispose();
-				}
-			}
-		}
-
-		fireCommandChanged(new CommandEvent(this, categoryChanged,
-				definedChanged, descriptionChanged, false, nameChanged,
-				parametersChanged, returnTypeChanged, false, enabledChanged));
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java
deleted file mode 100644
index 20c5b8a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandEvent.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import org.eclipse.core.commands.common.AbstractNamedHandleEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>Command</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ICommandListener#commandChanged(CommandEvent)
- */
-public final class CommandEvent extends AbstractNamedHandleEvent {
-
-	/**
-	 * The bit used to represent whether the command has changed its category.
-	 */
-	private static final int CHANGED_CATEGORY = LAST_USED_BIT << 1;
-
-	/**
-	 * The bit used to represent whether the command has changed its handler.
-	 */
-	private static final int CHANGED_HANDLED = LAST_USED_BIT << 2;
-
-	/**
-	 * The bit used to represent whether the command has changed its parameters.
-	 */
-	private static final int CHANGED_PARAMETERS = LAST_USED_BIT << 3;
-
-	/**
-	 * The bit used to represent whether the command has changed its return
-	 * type.
-	 * 
-	 * @since 3.2
-	 */
-	private static final int CHANGED_RETURN_TYPE = LAST_USED_BIT << 4;
-
-	/**
-	 * The bit used to represent whether the command has changed its help
-	 * context identifier.
-	 * 
-	 * @since 3.2
-	 */
-	private static final int CHANGED_HELP_CONTEXT_ID = LAST_USED_BIT << 5;
-
-	/**
-	 * The bit used to represent whether this commands active handler has
-	 * changed its enablement state.
-	 * 
-	 * @since 3.3
-	 */
-	private static final int CHANGED_ENABLED = LAST_USED_BIT << 6;
-
-	/**
-	 * The command that has changed; this value is never <code>null</code>.
-	 */
-	private final Command command;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged) {
-		this(command, categoryChanged, definedChanged, descriptionChanged,
-				handledChanged, nameChanged, parametersChanged, false);
-	}
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 * @param returnTypeChanged
-	 *            <code>true</code> iff the return type property changed;
-	 *            <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged, final boolean returnTypeChanged) {
-		this(command, categoryChanged, definedChanged, descriptionChanged,
-				handledChanged, nameChanged, parametersChanged,
-				returnTypeChanged, false);
-	}
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 * @param returnTypeChanged
-	 *            <code>true</code> iff the return type property changed;
-	 *            <code>false</code> otherwise.
-	 * @param helpContextIdChanged
-	 *            <code>true</code> iff the help context identifier changed;
-	 *            <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged, final boolean returnTypeChanged,
-			final boolean helpContextIdChanged) {
-		this(command, categoryChanged, definedChanged, descriptionChanged,
-				handledChanged, nameChanged, parametersChanged,
-				returnTypeChanged, helpContextIdChanged, false);
-	}
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param command
-	 *            the instance of the interface that changed.
-	 * @param categoryChanged
-	 *            <code>true</code>, iff the category property changed.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param handledChanged
-	 *            <code>true</code>, iff the handled property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 * @param parametersChanged
-	 *            <code>true</code> if the parameters have changed;
-	 *            <code>false</code> otherwise.
-	 * @param returnTypeChanged
-	 *            <code>true</code> iff the return type property changed;
-	 *            <code>false</code> otherwise.
-	 * @param helpContextIdChanged
-	 *            <code>true</code> iff the help context identifier changed;
-	 *            <code>false</code> otherwise.
-	 * @param enabledChanged
-	 *            <code>true</code> iff the comand enablement changed;
-	 *            <code>false</code> otherwise.
-	 * @since 3.3
-	 */
-	public CommandEvent(final Command command, final boolean categoryChanged,
-			final boolean definedChanged, final boolean descriptionChanged,
-			final boolean handledChanged, final boolean nameChanged,
-			final boolean parametersChanged, final boolean returnTypeChanged,
-			final boolean helpContextIdChanged, final boolean enabledChanged) {
-		super(definedChanged, descriptionChanged, nameChanged);
-
-		if (command == null) {
-			throw new NullPointerException();
-		}
-		this.command = command;
-
-		if (categoryChanged) {
-			changedValues |= CHANGED_CATEGORY;
-		}
-		if (handledChanged) {
-			changedValues |= CHANGED_HANDLED;
-		}
-		if (parametersChanged) {
-			changedValues |= CHANGED_PARAMETERS;
-		}
-		if (returnTypeChanged) {
-			changedValues |= CHANGED_RETURN_TYPE;
-		}
-		if (helpContextIdChanged) {
-			changedValues |= CHANGED_HELP_CONTEXT_ID;
-		}
-		if (enabledChanged) {
-			changedValues |= CHANGED_ENABLED;
-		}
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final Command getCommand() {
-		return command;
-	}
-
-	/**
-	 * Returns whether or not the category property changed.
-	 * 
-	 * @return <code>true</code>, iff the category property changed.
-	 */
-	public final boolean isCategoryChanged() {
-		return ((changedValues & CHANGED_CATEGORY) != 0);
-	}
-
-	/**
-	 * Returns whether or not the handled property changed.
-	 * 
-	 * @return <code>true</code>, iff the handled property changed.
-	 */
-	public final boolean isHandledChanged() {
-		return ((changedValues & CHANGED_HANDLED) != 0);
-	}
-
-	/**
-	 * Returns whether or not the help context identifier changed.
-	 * 
-	 * @return <code>true</code>, iff the help context identifier changed.
-	 * @since 3.2
-	 */
-	public final boolean isHelpContextIdChanged() {
-		return ((changedValues & CHANGED_HELP_CONTEXT_ID) != 0);
-	}
-
-	/**
-	 * Returns whether or not the parameters have changed.
-	 * 
-	 * @return <code>true</code>, iff the parameters property changed.
-	 */
-	public final boolean isParametersChanged() {
-		return ((changedValues & CHANGED_PARAMETERS) != 0);
-	}
-
-	/**
-	 * Returns whether or not the return type property changed.
-	 * 
-	 * @return <code>true</code>, iff the return type property changed.
-	 * @since 3.2
-	 */
-	public final boolean isReturnTypeChanged() {
-		return ((changedValues & CHANGED_RETURN_TYPE) != 0);
-	}
-
-	/**
-	 * Return whether the enable property changed.
-	 * 
-	 * @return <code>true</code> iff the comand enablement changed
-	 * @since 3.3
-	 */
-	public final boolean isEnabledChanged() {
-		return ((changedValues & CHANGED_ENABLED) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java
deleted file mode 100644
index 1fa61a8..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManager.java
+++ /dev/null
@@ -1,1051 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.commands.common.HandleObjectManager;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.ListenerList;
-
-/**
- * <p>
- * A central repository for commands -- both in the defined and undefined
- * states. Commands can be created and retrieved using this manager. It is
- * possible to listen to changes in the collection of commands by attaching a
- * listener to the manager.
- * </p>
- * 
- * @see CommandManager#getCommand(String)
- * @since 3.1
- */
-public final class CommandManager extends HandleObjectManager implements
-		ICategoryListener, ICommandListener, IParameterTypeListener {
-
-	/**
-	 * A listener that forwards incoming execution events to execution listeners
-	 * on this manager. The execution events will come from any command on this
-	 * manager.
-	 * 
-	 * @since 3.1
-	 */
-	private final class ExecutionListener implements
-			IExecutionListenerWithChecks {
-
-		public void notDefined(String commandId, NotDefinedException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListenerWithChecks) {
-						final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-						listener.notDefined(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public void notEnabled(String commandId, NotEnabledException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListenerWithChecks) {
-						final IExecutionListenerWithChecks listener = (IExecutionListenerWithChecks) object;
-						listener.notEnabled(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public final void notHandled(final String commandId,
-				final NotHandledException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.notHandled(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public final void postExecuteFailure(final String commandId,
-				final ExecutionException exception) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.postExecuteFailure(commandId, exception);
-					}
-				}
-			}
-		}
-
-		public final void postExecuteSuccess(final String commandId,
-				final Object returnValue) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.postExecuteSuccess(commandId, returnValue);
-					}
-				}
-			}
-		}
-
-		public final void preExecute(final String commandId,
-				final ExecutionEvent event) {
-			if (executionListeners != null) {
-				final Object[] listeners = executionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					final Object object = listeners[i];
-					if (object instanceof IExecutionListener) {
-						final IExecutionListener listener = (IExecutionListener) object;
-						listener.preExecute(commandId, event);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * The identifier of the category in which all auto-generated commands will
-	 * appear. This value must never be <code>null</code>.
-	 * 
-	 * @since 3.2
-	 */
-	public static final String AUTOGENERATED_CATEGORY_ID = "org.eclipse.core.commands.categories.autogenerated"; //$NON-NLS-1$
-
-	/**
-	 * The escape character to use for serialization and deserialization of
-	 * parameterized commands.
-	 */
-	static final char ESCAPE_CHAR = '%';
-
-	/**
-	 * The character that separates a parameter id from its value.
-	 */
-	static final char ID_VALUE_CHAR = '=';
-
-	/**
-	 * The character that indicates the end of a list of parameters.
-	 */
-	static final char PARAMETER_END_CHAR = ')';
-
-	/**
-	 * The character that separators parameters from each other.
-	 */
-	static final char PARAMETER_SEPARATOR_CHAR = ',';
-
-	/**
-	 * The character that indicates the start of a list of parameters.
-	 */
-	static final char PARAMETER_START_CHAR = '(';
-
-	/**
-	 * Unescapes special characters in the command id, parameter ids and
-	 * parameter values for {@link #deserialize(String)}. The special characters
-	 * {@link #PARAMETER_START_CHAR}, {@link #PARAMETER_END_CHAR},
-	 * {@link #ID_VALUE_CHAR}, {@link #PARAMETER_SEPARATOR_CHAR} and
-	 * {@link #ESCAPE_CHAR} are escaped by prepending an {@link #ESCAPE_CHAR}
-	 * character.
-	 * <p>
-	 * See also ParameterizedCommand.escape(String)
-	 * </p>
-	 * 
-	 * @param escapedText
-	 *            a <code>String</code> that may contain escaped special
-	 *            characters for command serialization.
-	 * @return a <code>String</code> representing <code>escapedText</code>
-	 *         with any escaped characters replaced by their literal values
-	 * @throws SerializationException
-	 *             if <code>escapedText</code> contains an invalid escape
-	 *             sequence
-	 * @since 3.2
-	 */
-	private static final String unescape(final String escapedText)
-			throws SerializationException {
-
-		// defer initialization of a StringBuffer until we know we need one
-		StringBuffer buffer = null;
-
-		for (int i = 0; i < escapedText.length(); i++) {
-
-			char c = escapedText.charAt(i);
-			if (c != ESCAPE_CHAR) {
-				// normal unescaped character
-				if (buffer != null) {
-					buffer.append(c);
-				}
-			} else {
-				if (buffer == null) {
-					buffer = new StringBuffer(escapedText.substring(0, i));
-				}
-
-				if (++i < escapedText.length()) {
-					c = escapedText.charAt(i);
-					switch (c) {
-					case PARAMETER_START_CHAR:
-					case PARAMETER_END_CHAR:
-					case ID_VALUE_CHAR:
-					case PARAMETER_SEPARATOR_CHAR:
-					case ESCAPE_CHAR:
-						buffer.append(c);
-						break;
-					default:
-						throw new SerializationException(
-								"Invalid character '" + c + "' in escape sequence"); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-				} else {
-					throw new SerializationException(
-							"Unexpected termination of escape sequence"); //$NON-NLS-1$
-				}
-			}
-
-		}
-
-		if (buffer == null) {
-			return escapedText;
-		}
-
-		return buffer.toString();
-	}
-
-	/**
-	 * The map of category identifiers (<code>String</code>) to categories (
-	 * <code>Category</code>). This collection may be empty, but it is never
-	 * <code>null</code>.
-	 */
-	private final Map categoriesById = new HashMap();
-
-	/**
-	 * The set of identifiers for those categories that are defined. This value
-	 * may be empty, but it is never <code>null</code>.
-	 */
-	private final Set definedCategoryIds = new HashSet();
-
-	/**
-	 * The set of identifiers for those command parameter types that are
-	 * defined. This value may be empty, but it is never <code>null</code>.
-	 * 
-	 * @since 3.2
-	 */
-	private final Set definedParameterTypeIds = new HashSet();
-
-	/**
-	 * The execution listener for this command manager. This just forwards
-	 * events from commands controlled by this manager to listeners on this
-	 * manager.
-	 */
-	private IExecutionListenerWithChecks executionListener = null;
-
-	/**
-	 * The collection of execution listeners. This collection is
-	 * <code>null</code> if there are no listeners.
-	 */
-	private ListenerList executionListeners = null;
-
-	/**
-	 * The help context identifiers ({@link String}) for a handler ({@link IHandler}).
-	 * This map may be empty, but it is never <code>null</code>. Entries are
-	 * removed if all strong references to the handler are removed.
-	 * 
-	 * @since 3.2
-	 */
-	private final Map helpContextIdsByHandler = new WeakHashMap();
-
-	/**
-	 * The map of parameter type identifiers (<code>String</code>) to
-	 * parameter types ( <code>ParameterType</code>). This collection may be
-	 * empty, but it is never <code>null</code>.
-	 * 
-	 * @since 3.2
-	 */
-	private final Map parameterTypesById = new HashMap();
-
-	/**
-	 * Adds a listener to this command manager. The listener will be notified
-	 * when the set of defined commands changes. This can be used to track the
-	 * global appearance and disappearance of commands.
-	 * 
-	 * @param listener
-	 *            The listener to attach; must not be <code>null</code>.
-	 */
-	public final void addCommandManagerListener(
-			final ICommandManagerListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * Adds an execution listener to this manager. This listener will be
-	 * notified if any of the commands controlled by this manager execute. This
-	 * can be used to support macros and instrumentation of commands.
-	 * 
-	 * @param listener
-	 *            The listener to attach; must not be <code>null</code>.
-	 */
-	public final void addExecutionListener(final IExecutionListener listener) {
-		if (listener == null) {
-			throw new NullPointerException(
-					"Cannot add a null execution listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners == null) {
-			executionListeners = new ListenerList(ListenerList.IDENTITY);
-
-			// Add an execution listener to every command.
-			executionListener = new ExecutionListener();
-			final Iterator commandItr = handleObjectsById.values().iterator();
-			while (commandItr.hasNext()) {
-				final Command command = (Command) commandItr.next();
-				command.addExecutionListener(executionListener);
-			}
-
-		}
-
-		executionListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.ICategoryListener#categoryChanged(org.eclipse.core.commands.CategoryEvent)
-	 */
-	public final void categoryChanged(CategoryEvent categoryEvent) {
-		if (categoryEvent.isDefinedChanged()) {
-			final Category category = categoryEvent.getCategory();
-			final String categoryId = category.getId();
-			final boolean categoryIdAdded = category.isDefined();
-			if (categoryIdAdded) {
-				definedCategoryIds.add(categoryId);
-			} else {
-				definedCategoryIds.remove(categoryId);
-			}
-			if (isListenerAttached()) {
-				fireCommandManagerChanged(new CommandManagerEvent(this, null,
-						false, false, categoryId, categoryIdAdded, true));
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.commands.ICommandListener#commandChanged(org.eclipse.commands.CommandEvent)
-	 */
-	public final void commandChanged(final CommandEvent commandEvent) {
-		if (commandEvent.isDefinedChanged()) {
-			final Command command = commandEvent.getCommand();
-			final String commandId = command.getId();
-			final boolean commandIdAdded = command.isDefined();
-			if (commandIdAdded) {
-				definedHandleObjects.add(command);
-			} else {
-				definedHandleObjects.remove(command);
-			}
-			if (isListenerAttached()) {
-				fireCommandManagerChanged(new CommandManagerEvent(this,
-						commandId, commandIdAdded, true, null, false, false));
-			}
-		}
-	}
-
-	/**
-	 * Sets the name and description of the category for uncategorized commands.
-	 * This is the category that will be returned if
-	 * {@link #getCategory(String)} is called with <code>null</code>.
-	 * 
-	 * @param name
-	 *            The name of the category for uncategorized commands; must not
-	 *            be <code>null</code>.
-	 * @param description
-	 *            The description of the category for uncategorized commands;
-	 *            may be <code>null</code>.
-	 * @since 3.2
-	 */
-	public final void defineUncategorizedCategory(final String name,
-			final String description) {
-		final Category category = getCategory(AUTOGENERATED_CATEGORY_ID);
-		category.define(name, description);
-	}
-
-	/**
-	 * <p>
-	 * Returns a {@link ParameterizedCommand} with a command and
-	 * parameterizations as specified in the provided
-	 * <code>serializedParameterizedCommand</code> string. The
-	 * <code>serializedParameterizedCommand</code> must use the format
-	 * returned by {@link ParameterizedCommand#serialize()} and described in the
-	 * Javadoc for that method.
-	 * </p>
-	 * <p>
-	 * If a parameter id encoded in the
-	 * <code>serializedParameterizedCommand</code> does not exist in the
-	 * encoded command, that parameter id and value are ignored. A given
-	 * parameter id should not be used more than once in
-	 * <code>serializedParameterizedCommand</code>. This will not result in
-	 * an exception, but in this case the value of the parameter when the
-	 * command is executed is unspecified.
-	 * </p>
-	 * <p>
-	 * This method will never return <code>null</code>, however it may throw
-	 * an exception if there is a problem processing the serialization string or
-	 * the encoded command is undefined.
-	 * </p>
-	 * 
-	 * @param serializedParameterizedCommand
-	 *            a string representing a command id and parameter ids and
-	 *            values; must not be <code>null</code>
-	 * @return a {@link ParameterizedCommand} with the command and
-	 *         parameterizations encoded in the
-	 *         <code>serializedParameterizedCommand</code>; never
-	 *         <code>null</code>.
-	 * @throws NotDefinedException
-	 *             if the command indicated in
-	 *             <code>serializedParameterizedCommand</code> is not defined
-	 * @throws SerializationException
-	 *             if there is an error deserializing
-	 *             <code>serializedParameterizedCommand</code>
-	 * @see ParameterizedCommand#serialize()
-	 * @since 3.2
-	 */
-	public final ParameterizedCommand deserialize(
-			final String serializedParameterizedCommand)
-			throws NotDefinedException, SerializationException {
-
-		final int lparenPosition = unescapedIndexOf(
-				serializedParameterizedCommand, PARAMETER_START_CHAR);
-
-		final String commandIdEscaped;
-		final String serializedParameters;
-		if (lparenPosition == -1) {
-			commandIdEscaped = serializedParameterizedCommand;
-			serializedParameters = null;
-		} else {
-			commandIdEscaped = serializedParameterizedCommand.substring(0,
-					lparenPosition);
-
-			if (serializedParameterizedCommand
-					.charAt(serializedParameterizedCommand.length() - 1) != PARAMETER_END_CHAR) {
-				throw new SerializationException(
-						"Parentheses must be balanced in serialized ParameterizedCommand"); //$NON-NLS-1$
-			}
-
-			serializedParameters = serializedParameterizedCommand.substring(
-					lparenPosition + 1, // skip PARAMETER_START_CHAR
-					serializedParameterizedCommand.length() - 1); // skip
-			// PARAMETER_END_CHAR
-		}
-
-		final String commandId = unescape(commandIdEscaped);
-		final Command command = getCommand(commandId);
-		final IParameter[] parameters = command.getParameters();
-		final Parameterization[] parameterizations = getParameterizations(
-				serializedParameters, parameters);
-
-		return new ParameterizedCommand(command, parameterizations);
-	}
-
-	/**
-	 * Notifies all of the listeners to this manager that the set of defined
-	 * command identifiers has changed.
-	 * 
-	 * @param event
-	 *            The event to send to all of the listeners; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireCommandManagerChanged(final CommandManagerEvent event) {
-		if (event == null) {
-			throw new NullPointerException();
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final ICommandManagerListener listener = (ICommandManagerListener) listeners[i];
-			listener.commandManagerChanged(event);
-		}
-	}
-
-	/**
-	 * Returns all of the commands known by this manager -- defined and
-	 * undefined.
-	 * 
-	 * @return All of the commands; may be empty, but never <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Command[] getAllCommands() {
-		return (Command[]) handleObjectsById.values().toArray(
-				new Command[handleObjectsById.size()]);
-	}
-
-	/**
-	 * Gets the category with the given identifier. If no such category
-	 * currently exists, then the category will be created (but be undefined).
-	 * 
-	 * @param categoryId
-	 *            The identifier to find; must not be <code>null</code>. If
-	 *            the category is <code>null</code>, then a category suitable
-	 *            for uncategorized items is defined and returned.
-	 * @return The category with the given identifier; this value will never be
-	 *         <code>null</code>, but it might be undefined.
-	 * @see Category
-	 */
-	public final Category getCategory(final String categoryId) {
-		if (categoryId == null) {
-			return getCategory(AUTOGENERATED_CATEGORY_ID);
-		}
-
-		checkId(categoryId);
-
-		Category category = (Category) categoriesById.get(categoryId);
-		if (category == null) {
-			category = new Category(categoryId);
-			categoriesById.put(categoryId, category);
-			category.addCategoryListener(this);
-		}
-
-		return category;
-	}
-
-	/**
-	 * Gets the command with the given identifier. If no such command currently
-	 * exists, then the command will be created (but will be undefined).
-	 * 
-	 * @param commandId
-	 *            The identifier to find; must not be <code>null</code> and
-	 *            must not be zero-length.
-	 * @return The command with the given identifier; this value will never be
-	 *         <code>null</code>, but it might be undefined.
-	 * @see Command
-	 */
-	public final Command getCommand(final String commandId) {
-		checkId(commandId);
-
-		Command command = (Command) handleObjectsById.get(commandId);
-		if (command == null) {
-			command = new Command(commandId);
-			handleObjectsById.put(commandId, command);
-			command.addCommandListener(this);
-
-			if (executionListener != null) {
-				command.addExecutionListener(executionListener);
-			}
-		}
-
-		return command;
-	}
-
-	/**
-	 * Returns the categories that are defined.
-	 * 
-	 * @return The defined categories; this value may be empty, but it is never
-	 *         <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Category[] getDefinedCategories() {
-		final Category[] categories = new Category[definedCategoryIds.size()];
-		final Iterator categoryIdItr = definedCategoryIds.iterator();
-		int i = 0;
-		while (categoryIdItr.hasNext()) {
-			String categoryId = (String) categoryIdItr.next();
-			categories[i++] = getCategory(categoryId);
-		}
-		return categories;
-	}
-
-	/**
-	 * Returns the set of identifiers for those category that are defined.
-	 * 
-	 * @return The set of defined category identifiers; this value may be empty,
-	 *         but it is never <code>null</code>.
-	 */
-	public final Set getDefinedCategoryIds() {
-		return Collections.unmodifiableSet(definedCategoryIds);
-	}
-
-	/**
-	 * Returns the set of identifiers for those commands that are defined.
-	 * 
-	 * @return The set of defined command identifiers; this value may be empty,
-	 *         but it is never <code>null</code>.
-	 */
-	public final Set getDefinedCommandIds() {
-		return getDefinedHandleObjectIds();
-	}
-
-	/**
-	 * Returns the commands that are defined.
-	 * 
-	 * @return The defined commands; this value may be empty, but it is never
-	 *         <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Command[] getDefinedCommands() {
-		return (Command[]) definedHandleObjects
-				.toArray(new Command[definedHandleObjects.size()]);
-	}
-
-	/**
-	 * Returns the set of identifiers for those parameter types that are
-	 * defined.
-	 * 
-	 * @return The set of defined command parameter type identifiers; this value
-	 *         may be empty, but it is never <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Set getDefinedParameterTypeIds() {
-		return Collections.unmodifiableSet(definedParameterTypeIds);
-	}
-
-	/**
-	 * Returns the command parameter types that are defined.
-	 * 
-	 * @return The defined command parameter types; this value may be empty, but
-	 *         it is never <code>null</code>.
-	 * @since 3.2
-	 */
-	public final ParameterType[] getDefinedParameterTypes() {
-		final ParameterType[] parameterTypes = new ParameterType[definedParameterTypeIds
-				.size()];
-		final Iterator iterator = definedParameterTypeIds.iterator();
-		int i = 0;
-		while (iterator.hasNext()) {
-			final String parameterTypeId = (String) iterator.next();
-			parameterTypes[i++] = getParameterType(parameterTypeId);
-		}
-		return parameterTypes;
-	}
-
-	/**
-	 * Gets the help context identifier for a particular command. The command's
-	 * handler is first checked for a help context identifier. If the handler
-	 * does not have a help context identifier, then the help context identifier
-	 * for the command is returned. If neither has a help context identifier,
-	 * then <code>null</code> is returned.
-	 * 
-	 * @param command
-	 *            The command for which the help context should be retrieved;
-	 *            must not be <code>null</code>.
-	 * @return The help context identifier to use for the given command; may be
-	 *         <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the given command is not defined.
-	 * @since 3.2
-	 */
-	public final String getHelpContextId(final Command command)
-			throws NotDefinedException {
-		// Check if the command is defined.
-		if (!command.isDefined()) {
-			throw new NotDefinedException("The command is not defined. " //$NON-NLS-1$
-					+ command.getId());
-		}
-
-		// Check the handler.
-		final IHandler handler = command.getHandler();
-		if (handler != null) {
-			final String helpContextId = (String) helpContextIdsByHandler
-					.get(handler);
-			if (helpContextId != null) {
-				return helpContextId;
-			}
-		}
-
-		// Simply return whatever the command has as a help context identifier.
-		return command.getHelpContextId();
-	}
-
-	/**
-	 * Returns an array of parameterizations for the provided command by
-	 * deriving the parameter ids and values from the provided
-	 * <code>serializedParameters</code> string.
-	 * 
-	 * @param serializedParameters
-	 *            a String encoding parameter ids and values; must not be
-	 *            <code>null</code>.
-	 * @param parameters
-	 *            array of parameters of the command being deserialized; may be
-	 *            <code>null</code>.
-	 * @return an array of parameterizations; may be <code>null</code>.
-	 * @throws SerializationException
-	 *             if there is an error deserializing the parameters
-	 * @since 3.2
-	 */
-	private final Parameterization[] getParameterizations(
-			String serializedParameters, final IParameter[] parameters)
-			throws SerializationException {
-
-		if (serializedParameters == null
-				|| (serializedParameters.length() == 0)) {
-			return null;
-		}
-
-		if ((parameters == null) || (parameters.length == 0)) {
-			return null;
-		}
-
-		final ArrayList paramList = new ArrayList();
-
-		int commaPosition; // split off each param by looking for ','
-		do {
-			commaPosition = unescapedIndexOf(serializedParameters, ',');
-
-			final String idEqualsValue;
-			if (commaPosition == -1) {
-				// no more parameters after this
-				idEqualsValue = serializedParameters;
-			} else {
-				// take the first parameter...
-				idEqualsValue = serializedParameters
-						.substring(0, commaPosition);
-
-				// ... and put the rest back into serializedParameters
-				serializedParameters = serializedParameters
-						.substring(commaPosition + 1);
-			}
-
-			final int equalsPosition = unescapedIndexOf(idEqualsValue, '=');
-
-			final String parameterId;
-			final String parameterValue;
-			if (equalsPosition == -1) {
-				// missing values are null
-				parameterId = unescape(idEqualsValue);
-				parameterValue = null;
-			} else {
-				parameterId = unescape(idEqualsValue.substring(0,
-						equalsPosition));
-				parameterValue = unescape(idEqualsValue
-						.substring(equalsPosition + 1));
-			}
-
-			for (int i = 0; i < parameters.length; i++) {
-				final IParameter parameter = parameters[i];
-				if (parameter.getId().equals(parameterId)) {
-					paramList.add(new Parameterization(parameter,
-							parameterValue));
-					break;
-				}
-			}
-
-		} while (commaPosition != -1);
-
-		return (Parameterization[]) paramList
-				.toArray(new Parameterization[paramList.size()]);
-	}
-
-	/**
-	 * Gets the command {@link ParameterType} with the given identifier. If no
-	 * such command parameter type currently exists, then the command parameter
-	 * type will be created (but will be undefined).
-	 * 
-	 * @param parameterTypeId
-	 *            The identifier to find; must not be <code>null</code> and
-	 *            must not be zero-length.
-	 * @return The {@link ParameterType} with the given identifier; this value
-	 *         will never be <code>null</code>, but it might be undefined.
-	 * @since 3.2
-	 */
-	public final ParameterType getParameterType(final String parameterTypeId) {
-		checkId(parameterTypeId);
-
-		ParameterType parameterType = (ParameterType) parameterTypesById
-				.get(parameterTypeId);
-		if (parameterType == null) {
-			parameterType = new ParameterType(parameterTypeId);
-			parameterTypesById.put(parameterTypeId, parameterType);
-			parameterType.addListener(this);
-		}
-
-		return parameterType;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.2
-	 */
-	public final void parameterTypeChanged(
-			final ParameterTypeEvent parameterTypeEvent) {
-		if (parameterTypeEvent.isDefinedChanged()) {
-			final ParameterType parameterType = parameterTypeEvent
-					.getParameterType();
-			final String parameterTypeId = parameterType.getId();
-			final boolean parameterTypeIdAdded = parameterType.isDefined();
-			if (parameterTypeIdAdded) {
-				definedParameterTypeIds.add(parameterTypeId);
-			} else {
-				definedParameterTypeIds.remove(parameterTypeId);
-			}
-
-			fireCommandManagerChanged(new CommandManagerEvent(this,
-					parameterTypeId, parameterTypeIdAdded, true));
-		}
-	}
-
-	/**
-	 * Removes a listener from this command manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	public final void removeCommandManagerListener(
-			final ICommandManagerListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * Removes an execution listener from this command manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	public final void removeExecutionListener(final IExecutionListener listener) {
-		if (listener == null) {
-			throw new NullPointerException("Cannot remove a null listener"); //$NON-NLS-1$
-		}
-
-		if (executionListeners == null) {
-			return;
-		}
-
-		executionListeners.remove(listener);
-
-		if (executionListeners.isEmpty()) {
-			executionListeners = null;
-
-			// Remove the execution listener to every command.
-			final Iterator commandItr = handleObjectsById.values().iterator();
-			while (commandItr.hasNext()) {
-				final Command command = (Command) commandItr.next();
-				command.removeExecutionListener(executionListener);
-			}
-			executionListener = null;
-
-		}
-	}
-
-	/**
-	 * Block updates all of the handlers for all of the commands. If the handler
-	 * is <code>null</code> or the command id does not exist in the map, then
-	 * the command becomes unhandled. Otherwise, the handler is set to the
-	 * corresponding value in the map.
-	 * 
-	 * @param handlersByCommandId
-	 *            A map of command identifiers (<code>String</code>) to
-	 *            handlers (<code>IHandler</code>). This map may be
-	 *            <code>null</code> if all handlers should be cleared.
-	 *            Similarly, if the map is empty, then all commands will become
-	 *            unhandled.
-	 */
-	public final void setHandlersByCommandId(final Map handlersByCommandId) {
-		// Make that all the reference commands are created.
-		final Iterator commandIdItr = handlersByCommandId.keySet().iterator();
-		while (commandIdItr.hasNext()) {
-			getCommand((String) commandIdItr.next());
-		}
-
-		// Now, set-up the handlers on all of the existing commands.
-		final Iterator commandItr = handleObjectsById.values().iterator();
-		while (commandItr.hasNext()) {
-			final Command command = (Command) commandItr.next();
-			final String commandId = command.getId();
-			final Object value = handlersByCommandId.get(commandId);
-			if (value instanceof IHandler) {
-				command.setHandler((IHandler) value);
-			} else {
-				command.setHandler(null);
-			}
-		}
-	}
-
-	/**
-	 * Sets the help context identifier to associate with a particular handler.
-	 * 
-	 * @param handler
-	 *            The handler with which to register a help context identifier;
-	 *            must not be <code>null</code>.
-	 * @param helpContextId
-	 *            The help context identifier to register; may be
-	 *            <code>null</code> if the help context identifier should be
-	 *            removed.
-	 * @since 3.2
-	 */
-	public final void setHelpContextId(final IHandler handler,
-			final String helpContextId) {
-		if (handler == null) {
-			throw new NullPointerException("The handler cannot be null"); //$NON-NLS-1$
-		}
-		if (helpContextId == null) {
-			helpContextIdsByHandler.remove(handler);
-		} else {
-			helpContextIdsByHandler.put(handler, helpContextId);
-		}
-	}
-
-	/**
-	 * Searches for the index of a <code>char</code> in a <code>String</code>
-	 * but disregards characters prefixed with the {@link #ESCAPE_CHAR} escape
-	 * character. This is used by {@link #deserialize(String)} and
-	 * {@link #getParameterizations(String, IParameter[])} to parse the
-	 * serialized parameterized command string.
-	 * 
-	 * @param escapedText
-	 *            the string to search for the index of <code>ch</code> in
-	 * @param ch
-	 *            a character to search for in <code>escapedText</code>
-	 * @return the index of the first unescaped occurrence of the character in
-	 *         <code>escapedText</code>, or <code>-1</code> if the
-	 *         character does not occur unescaped.
-	 * @see String#indexOf(int)
-	 */
-	private final int unescapedIndexOf(final String escapedText, final char ch) {
-
-		int pos = escapedText.indexOf(ch);
-
-		// first char can't be escaped
-		if (pos == 0) {
-			return pos;
-		}
-
-		while (pos != -1) {
-			// look back for the escape character
-			if (escapedText.charAt(pos - 1) != ESCAPE_CHAR) {
-				return pos;
-			}
-
-			// scan for the next instance of ch
-			pos = escapedText.indexOf(ch, pos + 1);
-		}
-
-		return pos;
-
-	}
-	
-	/**
-	 * Fires the <code>notEnabled</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command about to execute, never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception, never <code>null</code>.
-	 * @since 3.4
-	 */
-	public void fireNotEnabled(String commandId, NotEnabledException exception) {
-		if (executionListener != null) {
-			executionListener.notEnabled(commandId, exception);
-		}
-	}
-	
-	/**
-	 * Fires the <code>notDefined</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command about to execute, never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception, never <code>null</code>.
-	 * @since 3.4
-	 */
-	public void fireNotDefined(String commandId, NotDefinedException exception) {
-		if (executionListener != null) {
-			executionListener.notDefined(commandId, exception);
-		}
-	}
-	
-	/**
-	 * Fires the <code>preExecute</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command about to execute, never
-	 *            <code>null</code>.
-	 * @param event
-	 *            The event that triggered the command, may be <code>null</code>.
-	 * @since 3.4
-	 */
-	public void firePreExecute(String commandId, ExecutionEvent event) {
-		if (executionListener != null) {
-			executionListener.preExecute(commandId, event);
-		}
-	}
-	
-	/**
-	 * Fires the <code>postExecuteSuccess</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command executed, never
-	 *            <code>null</code>.
-	 * @param returnValue
-	 *            The value returned from the command, may be <code>null</code>.
-	 * @since 3.4
-	 */
-	public void firePostExecuteSuccess(String commandId, Object returnValue) {
-		if (executionListener != null) {
-			executionListener.postExecuteSuccess(commandId, returnValue);
-		}
-	}
-	
-	/**
-	 * Fires the <code>postExecuteFailure</code> event for
-	 * <code>executionListeners</code>.
-	 * <p>
-	 * <b>Note:</b> This supports bridging actions to the command framework,
-	 * and should not be used outside the framework.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The command id of the command executed, never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception, never <code>null</code>.
-	 * @since 3.4
-	 */
-	public void firePostExecuteFailure(String commandId, 
-			ExecutionException exception) {
-		if (executionListener != null) {
-			executionListener.postExecuteFailure(commandId, exception);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java
deleted file mode 100644
index 440e213..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/CommandManagerEvent.java
+++ /dev/null
@@ -1,304 +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.core.commands;
-
-/**
- * <p>
- * An event indicating that the set of defined command identifiers has changed.
- * </p>
- * 
- * @since 3.1
- * @see ICommandManagerListener#commandManagerChanged(CommandManagerEvent)
- */
-public final class CommandManagerEvent {
-
-	/**
-	 * The bit used to represent whether the given category has become defined.
-	 * If this bit is not set and there is no category id, then no category has
-	 * become defined nor undefined. If this bit is not set and there is a
-	 * category id, then the category has become undefined.
-	 */
-	private static final int CHANGED_CATEGORY_DEFINED = 1;
-
-	/**
-     * The bit used to represent whether the given command has become defined.
-     * If this bit is not set and there is no command id, then no command has
-     * become defined nor undefined. If this bit is not set and there is a
-     * command id, then the command has become undefined.
-     */
-	private static final int CHANGED_COMMAND_DEFINED = 1 << 1;
-	
-	/**
-	 * The bit used to represent whether the given command parameter type has
-	 * become defined. If this bit is not set and there is no parameter type id,
-	 * then no parameter type has become defined nor undefined. If this bit is
-	 * not set and there is a parameter type id, then the parameter type has
-	 * become undefined.
-	 * 
-	 * @since 3.2
-	 */
-	private static final int CHANGED_PARAMETER_TYPE_DEFINED = 1 << 2;
-
-	/**
-	 * The category identifier that was added or removed from the list of
-	 * defined category identifiers. This value is <code>null</code> if the
-	 * list of defined category identifiers did not change.
-	 */
-	private final String categoryId;
-
-	/**
-	 * A collection of bits representing whether certain values have changed. A
-	 * bit is set (i.e., <code>1</code>) if the corresponding property has
-	 * changed.
-	 */
-	private final int changedValues;
-
-	/**
-	 * The command identifier that was added or removed from the list of defined
-	 * command identifiers. This value is <code>null</code> if the list of
-	 * defined command identifiers did not change.
-	 */
-	private final String commandId;
-	
-	/**
-	 * The command parameter type identifier that was added or removed from the
-	 * list of defined parameter type identifiers. This value is
-	 * <code>null</code> if the list of defined parameter type identifiers did
-	 * not change.
-	 * 
-	 * @since 3.2
-	 */
-	private final String parameterTypeId;
-
-	/**
-	 * The command manager that has changed.
-	 */
-	private final CommandManager commandManager;
-
-	/**
-	 * Creates a new <code>CommandManagerEvent</code> instance to describe
-	 * changes to commands and/or categories.
-	 * 
-	 * @param commandManager
-	 *            the instance of the interface that changed; must not be
-	 *            <code>null</code>.
-	 * @param commandId
-	 *            The command identifier that was added or removed; must not be
-	 *            <code>null</code> if commandIdChanged is <code>true</code>.
-	 * @param commandIdAdded
-	 *            Whether the command identifier became defined (otherwise, it
-	 *            became undefined).
-	 * @param commandIdChanged
-	 *            Whether the list of defined command identifiers has changed.
-	 * @param categoryId
-	 *            The category identifier that was added or removed; must not be
-	 *            <code>null</code> if categoryIdChanged is <code>true</code>.
-	 * @param categoryIdAdded
-	 *            Whether the category identifier became defined (otherwise, it
-	 *            became undefined).
-	 * @param categoryIdChanged
-	 *            Whether the list of defined category identifiers has changed.
-	 */
-	public CommandManagerEvent(final CommandManager commandManager,
-			final String commandId, final boolean commandIdAdded,
-			final boolean commandIdChanged, final String categoryId,
-			final boolean categoryIdAdded, final boolean categoryIdChanged) {
-		if (commandManager == null) {
-			throw new NullPointerException(
-					"An event must refer to its command manager"); //$NON-NLS-1$
-		}
-
-		if (commandIdChanged && (commandId == null)) {
-			throw new NullPointerException(
-					"If the list of defined commands changed, then the added/removed command must be mentioned"); //$NON-NLS-1$
-		}
-
-		if (categoryIdChanged && (categoryId == null)) {
-			throw new NullPointerException(
-					"If the list of defined categories changed, then the added/removed category must be mentioned"); //$NON-NLS-1$
-		}
-
-		this.commandManager = commandManager;
-		this.commandId = commandId;
-		this.categoryId = categoryId;
-		
-		// this constructor only works for changes to commands and categories
-		this.parameterTypeId = null;
-
-		int changedValues = 0;
-		if (categoryIdChanged && categoryIdAdded) {
-			changedValues |= CHANGED_CATEGORY_DEFINED;
-		}
-		if (commandIdChanged && commandIdAdded) {
-			changedValues |= CHANGED_COMMAND_DEFINED;
-		}
-		this.changedValues = changedValues;
-	}
-	
-	/**
-	 * Creates a new <code>CommandManagerEvent</code> instance to describe
-	 * changes to command parameter types.
-	 * 
-	 * @param commandManager
-	 *            the instance of the interface that changed; must not be
-	 *            <code>null</code>.
-	 * @param parameterTypeId
-	 *            The command parameter type identifier that was added or
-	 *            removed; must not be <code>null</code> if
-	 *            parameterTypeIdChanged is <code>true</code>.
-	 * @param parameterTypeIdAdded
-	 *            Whether the parameter type identifier became defined
-	 *            (otherwise, it became undefined).
-	 * @param parameterTypeIdChanged
-	 *            Whether the list of defined parameter type identifiers has
-	 *            changed.
-	 * 
-	 * @since 3.2
-	 */
-	public CommandManagerEvent(final CommandManager commandManager,
-			final String parameterTypeId, final boolean parameterTypeIdAdded,
-			final boolean parameterTypeIdChanged) {
-
-		if (commandManager == null) {
-			throw new NullPointerException(
-					"An event must refer to its command manager"); //$NON-NLS-1$
-		}
-
-		if (parameterTypeIdChanged && (parameterTypeId == null)) {
-			throw new NullPointerException(
-					"If the list of defined command parameter types changed, then the added/removed parameter type must be mentioned"); //$NON-NLS-1$
-		}
-
-		this.commandManager = commandManager;
-		this.commandId = null;
-		this.categoryId = null;
-
-		this.parameterTypeId = parameterTypeId;
-
-		int changedValues = 0;
-		if (parameterTypeIdChanged && parameterTypeIdAdded) {
-			changedValues |= CHANGED_PARAMETER_TYPE_DEFINED;
-		}
-
-		this.changedValues = changedValues;
-	}
-
-	/**
-	 * Returns the category identifier that was added or removed.
-	 * 
-	 * @return The category identifier that was added or removed; may be
-	 *         <code>null</code>.
-	 */
-	public final String getCategoryId() {
-		return categoryId;
-	}
-
-	/**
-	 * Returns the command identifier that was added or removed.
-	 * 
-	 * @return The command identifier that was added or removed; may be
-	 *         <code>null</code>.
-	 */
-	public final String getCommandId() {
-		return commandId;
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final CommandManager getCommandManager() {
-		return commandManager;
-	}
-	
-	/**
-	 * Returns the command parameter type identifier that was added or removed.
-	 * 
-	 * @return The command parameter type identifier that was added or removed;
-	 *         may be <code>null</code>.
-	 *         
-	 * @since 3.2
-	 */
-	public final String getParameterTypeId() {
-		return parameterTypeId;
-	}
-
-	/**
-	 * Returns whether the list of defined category identifiers has changed.
-	 * 
-	 * @return <code>true</code> if the list of category identifiers has
-	 *         changed; <code>false</code> otherwise.
-	 */
-	public final boolean isCategoryChanged() {
-		return (categoryId != null);
-	}
-
-	/**
-	 * Returns whether the category identifier became defined. Otherwise, the
-	 * category identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the category identifier became defined;
-	 *         <code>false</code> if the category identifier became undefined.
-	 */
-	public final boolean isCategoryDefined() {
-		return (((changedValues & CHANGED_CATEGORY_DEFINED) != 0) && (categoryId != null));
-	}
-
-	/**
-	 * Returns whether the list of defined command identifiers has changed.
-	 * 
-	 * @return <code>true</code> if the list of command identifiers has
-	 *         changed; <code>false</code> otherwise.
-	 */
-	public final boolean isCommandChanged() {
-		return (commandId != null);
-	}
-
-	/**
-	 * Returns whether the command identifier became defined. Otherwise, the
-	 * command identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the command identifier became defined;
-	 *         <code>false</code> if the command identifier became undefined.
-	 */
-	public final boolean isCommandDefined() {
-		return (((changedValues & CHANGED_COMMAND_DEFINED) != 0) && (commandId != null));
-	}
-	
-	/**
-	 * Returns whether the list of defined command parameter type identifiers
-	 * has changed.
-	 * 
-	 * @return <code>true</code> if the list of command parameter type
-	 *         identifiers has changed; <code>false</code> otherwise.
-	 * 
-	 * @since 3.2
-	 */
-	public final boolean isParameterTypeChanged() {
-		return (parameterTypeId != null);
-	}
-	
-	/**
-	 * Returns whether the command parameter type identifier became defined.
-	 * Otherwise, the command parameter type identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the command parameter type identifier
-	 *         became defined; <code>false</code> if the command parameter
-	 *         type identifier became undefined.
-	 * 
-	 * @since 3.2
-	 */
-	public final boolean isParameterTypeDefined() {
-		return (((changedValues & CHANGED_PARAMETER_TYPE_DEFINED) != 0) && (parameterTypeId != null));
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java
deleted file mode 100644
index 4a650f9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionEvent.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-import java.util.Collections;
-import java.util.Map;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-
-/**
- * <p>
- * The data object to pass to the command (and its handler) as it executes. This
- * carries information about the current state of the application, and the
- * application context in which the command was executed.
- * </p>
- * <p>
- * An execution event carries three blocks of data: the parameters, the trigger,
- * and the application context. How these blocks are used is application
- * dependent. In the Eclipse workbench, the trigger is an SWT event, and the
- * application context contains information about the selection and active part.
- * </p>
- * 
- * @since 3.1
- */
-public final class ExecutionEvent {
-
-	/**
-	 * The state of the application at the time the execution was triggered. In
-	 * the Eclipse workbench, this might contain information about the active
-	 * part of the active selection (for example). This value may be
-	 * <code>null</code>.
-	 */
-	private final Object applicationContext;
-
-	/**
-	 * The command being executed. This value may be <code>null</code>.
-	 */
-	private final Command command;
-
-	/**
-	 * The parameters to qualify the execution. For handlers that normally
-	 * prompt for additional information, these can be used to avoid prompting.
-	 * This value may be empty, but it is never <code>null</code>.
-	 */
-	private final Map parameters;
-
-	/**
-	 * The object that triggered the execution. In an event-driven architecture,
-	 * this is typically just another event. In the Eclipse workbench, this is
-	 * typically an SWT event. This value may be <code>null</code>.
-	 */
-	private final Object trigger;
-
-	/**
-	 * Constructs a new instance of <code>ExecutionEvent</code> with no
-	 * parameters, no trigger and no application context. This is just a
-	 * convenience method.
-	 * 
-	 * @since 3.2
-	 */
-	public ExecutionEvent() {
-		this(null, Collections.EMPTY_MAP, null, null);
-	}
-
-	/**
-	 * Constructs a new instance of <code>ExecutionEvent</code>.
-	 * 
-	 * @param parameters
-	 *            The parameters to qualify the execution; must not be
-	 *            <code>null</code>. This must be a map of parameter ids (<code>String</code>)
-	 *            to parameter values (<code>String</code>).
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @deprecated use
-	 *             {@link ExecutionEvent#ExecutionEvent(Command, Map, Object, Object)}
-	 */
-	public ExecutionEvent(final Map parameters, final Object trigger,
-			final Object applicationContext) {
-		this(null, parameters, trigger, applicationContext);
-	}
-
-	/**
-	 * Constructs a new instance of <code>ExecutionEvent</code>.
-	 * 
-	 * @param command
-	 *            The command being executed; may be <code>null</code>.
-	 * @param parameters
-	 *            The parameters to qualify the execution; must not be
-	 *            <code>null</code>. This must be a map of parameter ids (<code>String</code>)
-	 *            to parameter values (<code>String</code>).
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @since 3.2
-	 */
-	public ExecutionEvent(final Command command, final Map parameters,
-			final Object trigger, final Object applicationContext) {
-		if (parameters == null) {
-			throw new NullPointerException(
-					"An execution event must have a non-null map of parameters"); //$NON-NLS-1$
-		}
-
-		this.command = command;
-		this.parameters = parameters;
-		this.trigger = trigger;
-		this.applicationContext = applicationContext;
-	}
-
-	/**
-	 * Returns the state of the application at the time the execution was
-	 * triggered.
-	 * 
-	 * @return The application context; may be <code>null</code>.
-	 */
-	public final Object getApplicationContext() {
-		return applicationContext;
-	}
-
-	/**
-	 * Returns the command being executed.
-	 * 
-	 * @return The command being executed.
-	 * @since 3.2
-	 */
-	public final Command getCommand() {
-		return command;
-	}
-
-	/**
-	 * Returns the object represented by the string value of the parameter with
-	 * the provided id.
-	 * <p>
-	 * This is intended to be used in the scope of an
-	 * {@link IHandler#execute(ExecutionEvent)} method, so any problem getting
-	 * the object value causes <code>ExecutionException</code> to be thrown.
-	 * </p>
-	 * 
-	 * @param parameterId
-	 *            The id of a parameter to retrieve the object value of.
-	 * @return The object value of the parameter with the provided id.
-	 * @throws ExecutionException
-	 *             if the parameter object value could not be obtained for any
-	 *             reason
-	 * @since 3.2
-	 */
-	public final Object getObjectParameterForExecution(final String parameterId)
-			throws ExecutionException {
-		if (command == null) {
-			throw new ExecutionException(
-					"No command is associated with this execution event"); //$NON-NLS-1$
-		}
-
-		try {
-			final ParameterType parameterType = command
-					.getParameterType(parameterId);
-			if (parameterType == null) {
-				throw new ExecutionException(
-						"Command does not have a parameter type for the given parameter"); //$NON-NLS-1$
-			}
-			final AbstractParameterValueConverter valueConverter = parameterType
-					.getValueConverter();
-			if (valueConverter == null) {
-				throw new ExecutionException(
-						"Command does not have a value converter"); //$NON-NLS-1$
-			}
-			final String stringValue = getParameter(parameterId);
-			final Object objectValue = valueConverter
-					.convertToObject(stringValue);
-			return objectValue;
-		} catch (final NotDefinedException e) {
-			throw new ExecutionException("Command is not defined", e); //$NON-NLS-1$
-		} catch (final ParameterValueConversionException e) {
-			throw new ExecutionException(
-					"The parameter string could not be converted to an object", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns the value of the parameter with the given id.
-	 * 
-	 * @param parameterId
-	 *            The id of the parameter to retrieve; may be <code>null</code>.
-	 * @return The parameter value; <code>null</code> if the parameter cannot
-	 *         be found.
-	 */
-	public final String getParameter(final String parameterId) {
-		return (String) parameters.get(parameterId);
-	}
-
-	/**
-	 * Returns all of the parameters.
-	 * 
-	 * @return The parameters; never <code>null</code>, but may be empty.
-	 */
-	public final Map getParameters() {
-		return parameters;
-	}
-
-	/**
-	 * Returns the object that triggered the execution
-	 * 
-	 * @return The trigger; <code>null</code> if there was no trigger.
-	 */
-	public final Object getTrigger() {
-		return trigger;
-	}
-
-	/**
-	 * The string representation of this execution event -- for debugging
-	 * purposes only. This string should not be shown to an end user.
-	 * 
-	 * @return The string representation; never <code>null</code>.
-	 */
-	public final String toString() {
-		final StringBuffer stringBuffer = new StringBuffer();
-		stringBuffer.append("ExecutionEvent("); //$NON-NLS-1$
-		stringBuffer.append(command);
-		stringBuffer.append(',');
-		stringBuffer.append(parameters);
-		stringBuffer.append(',');
-		stringBuffer.append(trigger);
-		stringBuffer.append(',');
-		stringBuffer.append(applicationContext);
-		stringBuffer.append(')');
-		return stringBuffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java
deleted file mode 100644
index 37f222c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ExecutionException.java
+++ /dev/null
@@ -1,55 +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.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an exception occured during the execution of a command.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class ExecutionException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3258130262767448120L;
-
-    /**
-	 * Creates a new instance of this class with the specified detail message.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @since 3.2
-	 */
-	public ExecutionException(final String message) {
-		super(message);
-	}
-    
-    /**
-     * Creates a new instance of this class with the specified detail message
-     * and cause.
-     * 
-     * @param message
-     *            the detail message; may be <code>null</code>.
-     * @param cause
-     *            the cause; may be <code>null</code>.
-     */
-    public ExecutionException(final String message, final Throwable cause) {
-        super(message, cause);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java
deleted file mode 100644
index 46b9205..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/HandlerEvent.java
+++ /dev/null
@@ -1,97 +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.core.commands;
-
-import org.eclipse.core.commands.common.AbstractBitSetEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>IHandler</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see IHandlerListener#handlerChanged(HandlerEvent)
- */
-public final class HandlerEvent extends AbstractBitSetEvent {
-
-	/**
-	 * The bit used to represent whether the handler has changed its enabled
-	 * state.
-	 */
-	private static final int CHANGED_ENABLED = 1;
-
-	/**
-	 * The bit used to represent whether the handler has changed its handled
-	 * state.
-	 */
-	private static final int CHANGED_HANDLED = 1 << 1;
-
-	/**
-	 * The handler that changed; this value is never <code>null</code>.
-	 */
-	private final IHandler handler;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param handler
-	 *            the instance of the interface that changed; must not be
-     *            <code>null</code>.
-	 * @param enabledChanged
-	 *            Whether the enabled state of the handler has changed.
-	 * @param handledChanged
-	 *            Whether the handled state of the handler has changed.
-	 */
-	public HandlerEvent(final IHandler handler, final boolean enabledChanged,
-			final boolean handledChanged) {
-		if (handler == null) {
-			throw new NullPointerException();
-		}
-		this.handler = handler;
-
-		if (enabledChanged) {
-			changedValues |= CHANGED_ENABLED;
-		}
-		if (handledChanged) {
-			changedValues |= CHANGED_HANDLED;
-		}
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public IHandler getHandler() {
-		return handler;
-	}
-
-	/**
-	 * Returns whether or not the enabled property changed.
-	 * 
-	 * @return <code>true</code>, iff the enabled property changed.
-	 */
-	public boolean isEnabledChanged() {
-		return ((changedValues & CHANGED_ENABLED) != 0);
-	}
-
-	/**
-	 * Returns whether or not the handled property changed.
-	 * 
-	 * @return <code>true</code>, iff the handled property changed.
-	 */
-	public boolean isHandledChanged() {
-		return ((changedValues & CHANGED_HANDLED) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.java
deleted file mode 100644
index abd1b64..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICategoryListener.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.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>Category</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see Category#addCategoryListener(ICategoryListener)
- * @see Category#removeCategoryListener(ICategoryListener)
- */
-public interface ICategoryListener {
-
-	/**
-	 * Notifies that one or more properties of an instance of
-	 * <code>Category</code> have changed. Specific details are described in
-	 * the <code>CategoryEvent</code>.
-	 * 
-	 * @param categoryEvent
-	 *            the category event. Guaranteed not to be <code>null</code>.
-	 */
-	void categoryChanged(CategoryEvent categoryEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.java
deleted file mode 100644
index 061bc05..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandListener.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.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>Command</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see Command#addCommandListener(ICommandListener)
- * @see Command#removeCommandListener(ICommandListener)
- */
-public interface ICommandListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>Command</code> have changed. Specific details are described in
-     * the <code>CommandEvent</code>.
-     * 
-     * @param commandEvent
-     *            the command event. Guaranteed not to be <code>null</code>.
-     */
-    void commandChanged(CommandEvent commandEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java
deleted file mode 100644
index 0c665da..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ICommandManagerListener.java
+++ /dev/null
@@ -1,36 +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.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>ICommandManager</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see CommandManager#addCommandManagerListener(ICommandManagerListener)
- * @see CommandManager#removeCommandManagerListener(ICommandManagerListener)
- */
-public interface ICommandManagerListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>ICommandManager</code> have changed. Specific details are
-     * described in the <code>CommandManagerEvent</code>.
-     * 
-     * @param commandManagerEvent
-     *            the commandManager event. Guaranteed not to be
-     *            <code>null</code>.
-     */
-    void commandManagerChanged(CommandManagerEvent commandManagerEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java
deleted file mode 100644
index 9ea4349..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListener.java
+++ /dev/null
@@ -1,73 +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.core.commands;
-
-/**
- * <p>
- * A listener to the execution of commands. This listener will be notified if a
- * command is about to execute, and when that execution completes. It is not
- * possible for the listener to prevent the execution, only to respond to it in
- * some way.
- * </p>
- * 
- * @since 3.1
- */
-public interface IExecutionListener {
-
-	/**
-	 * Notifies the listener that an attempt was made to execute a command with
-	 * no handler.
-	 * 
-	 * @param commandId
-	 *            The identifier of command that is not handled; never
-	 *            <code>null</code>
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void notHandled(String commandId, NotHandledException exception);
-
-	/**
-	 * Notifies the listener that a command has failed to complete execution.
-	 * 
-	 * @param commandId
-	 *            The identifier of the command that has executed; never
-	 *            <code>null</code>.
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void postExecuteFailure(String commandId,
-			ExecutionException exception);
-
-	/**
-	 * Notifies the listener that a command has completed execution
-	 * successfully.
-	 * 
-	 * @param commandId
-	 *            The identifier of the command that has executed; never
-	 *            <code>null</code>.
-	 * @param returnValue
-	 *            The return value from the command; may be <code>null</code>.
-	 */
-	public void postExecuteSuccess(String commandId, Object returnValue);
-
-	/**
-	 * Notifies the listener that a command is about to execute.
-	 * 
-	 * @param commandId
-	 *            The identifier of the command that is about to execute, never
-	 *            <code>null</code>.
-	 * @param event
-	 *            The event that will be passed to the <code>execute</code>
-	 *            method; never <code>null</code>.
-	 */
-	public void preExecute(String commandId, ExecutionEvent event);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java
deleted file mode 100644
index 62b0442..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IExecutionListenerWithChecks.java
+++ /dev/null
@@ -1,55 +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.core.commands;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-
-/**
- * <p>
- * A listener to the execution of commands. This listener will be notified if
- * someone tries to execute a command and it is not enabled or not defined. The
- * listener also be notified if a command is about to execute, and when that
- * execution completes. It is not possible for the listener to prevent the
- * execution, only to respond to it in some way.
- * </p>
- * <p>
- * Clients may implement, but must not extend.
- * </p>
- * 
- * @since 3.2
- */
-public interface IExecutionListenerWithChecks extends IExecutionListener {
-
-	/**
-	 * Notifies the listener that an attempt was made to execute a command that
-	 * is not defined.
-	 * 
-	 * @param commandId
-	 *            The identifier of command that is not defined; never
-	 *            <code>null</code>
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void notDefined(String commandId, NotDefinedException exception);
-
-	/**
-	 * Notifies the listener that an attempt was made to execute a command that
-	 * is disabled.
-	 * 
-	 * @param commandId
-	 *            The identifier of command that is not enabled; never
-	 *            <code>null</code>
-	 * @param exception
-	 *            The exception that occurred; never <code>null</code>.
-	 */
-	public void notEnabled(String commandId, NotEnabledException exception);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java
deleted file mode 100644
index 6e977ef..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands;
-
-/**
- * A handler is the pluggable piece of a command that handles execution. Each
- * command can have zero or more handlers associated with it (in general), of
- * which only one will be active at any given moment in time. When the command
- * is asked to execute, it will simply pass that request on to its active
- * handler, if any.
- * 
- * @see AbstractHandler
- * @since 3.1
- */
-public interface IHandler {
-
-	/**
-	 * Registers an instance of <code>IHandlerListener</code> to listen for
-	 * changes to properties of this instance.
-	 * 
-	 * @param handlerListener
-	 *            the instance to register. Must not be <code>null</code>. If
-	 *            an attempt is made to register an instance which is already
-	 *            registered with this instance, no operation is performed.
-	 */
-	void addHandlerListener(IHandlerListener handlerListener);
-
-	/**
-	 * Disposes of this handler. This method is run once when the object is no
-	 * longer referenced. This can be used as an opportunity to unhook listeners
-	 * from other objects.
-	 */
-	public void dispose();
-
-	/**
-	 * Executes with the map of parameter values by name.
-	 * 
-	 * @param event
-	 *            An event containing all the information about the current
-	 *            state of the application; must not be <code>null</code>.
-	 * @return the result of the execution. Reserved for future use, must be
-	 *         <code>null</code>.
-	 * @throws ExecutionException
-	 *             if an exception occurred during execution.
-	 */
-	Object execute(ExecutionEvent event) throws ExecutionException;
-
-	/**
-	 * Returns whether this handler is capable of executing at this moment in
-	 * time. If the enabled state is other than true clients should also
-	 * consider implementing IHandler2 so they can be notified about framework
-	 * execution contexts.
-	 * 
-	 * @return <code>true</code> if the command is enabled; <code>false</code>
-	 *         otherwise.
-	 * @see IHandler2#setEnabled(Object)
-	 */
-	public boolean isEnabled();
-
-	/**
-	 * Returns whether this handler is really capable of handling delegation. In
-	 * the case of a handler that is a composition of other handlers, this reply
-	 * is intended to indicate whether the handler is truly capable of receiving
-	 * delegated responsibilities at this time.
-	 * 
-	 * @return <code>true</code> if the handler is handled; <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isHandled();
-
-	/**
-	 * Unregisters an instance of <code>IHandlerListener</code> listening for
-	 * changes to properties of this instance.
-	 * 
-	 * @param handlerListener
-	 *            the instance to unregister. Must not be <code>null</code>.
-	 *            If an attempt is made to unregister an instance which is not
-	 *            already registered with this instance, no operation is
-	 *            performed.
-	 */
-	void removeHandlerListener(IHandlerListener handlerListener);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java
deleted file mode 100644
index c76b78c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandler2.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.commands;
-
-/**
- * Extend the IHandler interface to provide some context for isEnabled()
- * requests. Clients should use {@link AbstractHandler} unless they need to
- * provide their own listener mechanism.
- * 
- * @since 3.4
- * @see AbstractHandler
- */
-public interface IHandler2 extends IHandler {
-	/**
-	 * Called by the framework to allow the handler to update its enabled state.
-	 * 
-	 * @param evaluationContext
-	 *            the state to evaluate against. May be <code>null</code>
-	 *            which indicates that the handler can query whatever model that
-	 *            is necessary. This context must not be cached.
-	 */
-	public void setEnabled(Object evaluationContext);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java
deleted file mode 100644
index 8eef7e5..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerAttributes.java
+++ /dev/null
@@ -1,35 +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.core.commands;
-
-/**
- * <p>
- * Attribute constants that have special meanings within this package.  These
- * attributes can be used to communicate extra information from the handler to
- * either the command or the command manager.
- * </p>
- * 
- * @since 3.1
- */
-public interface IHandlerAttributes {
-
-	/**
-	 * <p>
-	 * The name of the attribute indicating whether the handler is handled.
-	 * This is intended largely for backward compatibility with the workbench
-	 * <code>RetargetAction</code> class.  It is used to indicate that while
-	 * the handler is handling a command, it should not be treated as such.
-	 * The command should act and behave as if it has no handler.
-	 * </p>
-	 */
-	public static final String ATTRIBUTE_HANDLED = "handled"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.java
deleted file mode 100644
index 93bd38e..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IHandlerListener.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.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>IHandler</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see IHandler#addHandlerListener(IHandlerListener)
- * @see IHandler#removeHandlerListener(IHandlerListener)
- */
-public interface IHandlerListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>IHandler</code> have changed. Specific details are described in
-     * the <code>HandlerEvent</code>.
-     * 
-     * @param handlerEvent
-     *            the handler event. Guaranteed not to be <code>null</code>.
-     */
-    void handlerChanged(HandlerEvent handlerEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java
deleted file mode 100644
index d93062c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/INamedHandleStateIds.java
+++ /dev/null
@@ -1,38 +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.core.commands;
-
-/**
- * <p>
- * State identifiers that are understood by named handle objects that implement
- * {@link IObjectWithState}.
- * </p>
- * <p>
- * Clients may implement or extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public interface INamedHandleStateIds {
-
-	/**
-	 * The state id used for overriding the description of a named handle
-	 * object. This state's value must return a {@link String}.
-	 */
-	public static String DESCRIPTION = "DESCRIPTION"; //$NON-NLS-1$
-
-	/**
-	 * The state id used for overriding the name of a named handle object. This
-	 * state's value must return a {@link String}.
-	 */
-	public static String NAME = "NAME"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java
deleted file mode 100644
index d447c7a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IObjectWithState.java
+++ /dev/null
@@ -1,67 +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.core.commands;
-
-/**
- * <p>
- * An object that holds zero or more state objects. This state information can
- * be shared between different instances of <code>IObjectWithState</code>.
- * </p>
- * <p>
- * Clients may implement, but must not extend this interface.
- * </p>
- * 
- * @see AbstractHandlerWithState
- * @since 3.2
- */
-public interface IObjectWithState {
-
-	/**
-	 * Adds state to this object.
-	 * 
-	 * @param id
-	 *            The identifier indicating the type of state being added; must
-	 *            not be <code>null</code>.
-	 * @param state
-	 *            The new state to add to this object; must not be
-	 *            <code>null</code>.
-	 */
-	public void addState(String id, State state);
-
-	/**
-	 * Gets the state with the given id.
-	 * 
-	 * @param stateId
-	 *            The identifier of the state to retrieve; must not be
-	 *            <code>null</code>.
-	 * @return The state; may be <code>null</code> if there is no state with
-	 *         the given id.
-	 */
-	public State getState(String stateId);
-
-	/**
-	 * Gets the identifiers for all of the state associated with this object.
-	 * 
-	 * @return All of the state identifiers; may be empty, but never
-	 *         <code>null</code>.
-	 */
-	public String[] getStateIds();
-
-	/**
-	 * Removes state from this object.
-	 * 
-	 * @param stateId
-	 *            The id of the state to remove from this object; must not be
-	 *            <code>null</code>.
-	 */
-	public void removeState(String stateId);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java
deleted file mode 100644
index 1bc9229..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameter.java
+++ /dev/null
@@ -1,57 +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.core.commands;
-
-/**
- * <p>
- * A parameter for a command. A parameter identifies a type of information that
- * the command might accept. For example, a "Show View" command might accept the
- * id of a view for display. This parameter also identifies possible values, for
- * display in the user interface.
- * </p>
- * 
- * @since 3.1
- */
-public interface IParameter {
-
-	/**
-	 * Returns the identifier for this parameter.
-	 * 
-	 * @return The identifier; never <code>null</code>.
-	 */
-	public String getId();
-
-	/**
-	 * Returns the human-readable name for this parameter.
-	 * 
-	 * @return The parameter name; never <code>null</code>.
-	 */
-	public String getName();
-
-	/**
-	 * Returns the values associated with this parameter.
-	 * 
-	 * @return The values associated with this parameter. This must not be
-	 *         <code>null</code>.
-	 * @throws ParameterValuesException
-	 *             If the values can't be retrieved for some reason.
-	 */
-	public IParameterValues getValues() throws ParameterValuesException;
-
-	/**
-	 * Returns whether parameter is optional. Otherwise, it is required.
-	 * 
-	 * @return <code>true</code> if the parameter is optional;
-	 *         <code>false</code> if it is required.
-	 */
-	public boolean isOptional();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java
deleted file mode 100644
index efd4fa6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterTypeListener.java
+++ /dev/null
@@ -1,36 +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.core.commands;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of {@link ParameterType}.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.2
- * @see ParameterType#addListener(IParameterTypeListener)
- * @see ParameterType#removeListener(IParameterTypeListener)
- */
-public interface IParameterTypeListener {
-
-	/**
-	 * Notifies that one or more properties of an instance of
-	 * {@link ParameterType} have changed. Specific details are described in the
-	 * {@link ParameterTypeEvent}.
-	 * 
-	 * @param parameterTypeEvent
-	 *            the event. Guaranteed not to be <code>null</code>.
-	 */
-	void parameterTypeChanged(ParameterTypeEvent parameterTypeEvent);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java
deleted file mode 100644
index 9d5dec6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IParameterValues.java
+++ /dev/null
@@ -1,36 +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.core.commands;
-
-import java.util.Map;
-
-/**
- * <p>
- * The parameters for a command. This interface will only be consulted if the
- * parameters need to be displayed to the user. Otherwise, they will be ignored.
- * </p>
- * 
- * @since 3.1
- */
-public interface IParameterValues {
-
-	/**
-	 * Returns a map keyed by externalized names for parameter values. These
-	 * names should be human-readable, and are generally for display to the user
-	 * in a user interface of some sort. The values should be actual values that
-	 * will be interpreted by the handler for the command.
-	 * 
-	 * @return A map of the externalizable name of the parameter value (<code>String</code>)
-	 *         to the actual value of the parameter (<code>String</code>).
-	 */
-	public Map getParameterValues();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java
deleted file mode 100644
index d45235c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/IStateListener.java
+++ /dev/null
@@ -1,36 +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.core.commands;
-
-/**
- * <p>
- * A listener to changes in some state.
- * </p>
- * <p>
- * Clients may implement, but must not extend this interface.
- * </p>
- * 
- * @since 3.2
- */
-public interface IStateListener {
-
-	/**
-	 * Handles a change to the value in some state.
-	 * 
-	 * @param state
-	 *            The state that has changed; never <code>null</code>. The
-	 *            value for this state has been updated to the new value.
-	 * @param oldValue
-	 *            The old value; may be anything.
-	 */
-	public void handleStateChange(State state, Object oldValue);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java
deleted file mode 100644
index 86fc992..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ITypedParameter.java
+++ /dev/null
@@ -1,33 +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.core.commands;
-
-/**
- * A command parameter that has a declared type. This interface is intended to
- * be implemented by implementors of {@link IParameter} that will support
- * parameter types.
- * 
- * @since 3.2
- */
-public interface ITypedParameter {
-
-	/**
-	 * Returns the {@link ParameterType} associated with a command parameter or
-	 * <code>null</code> if the parameter does not declare a type.
-	 * <p>
-	 * Note that the parameter type returned may be undefined.
-	 * </p>
-	 * 
-	 * @return the parameter type associated with a command parameter or
-	 *         <code>null</code> if the parameter does not declare a type
-	 */
-	public ParameterType getParameterType();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java
deleted file mode 100644
index 89b6db5..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NamedHandleObjectWithState.java
+++ /dev/null
@@ -1,126 +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.core.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-
-/**
- * <p>
- * A named handle object that can carry state with it. This state can be used to
- * override the name or description.
- * </p>
- * <p>
- * Clients may neither instantiate nor extend this class.
- * </p>
- * 
- * @since 3.2
- */
-abstract class NamedHandleObjectWithState extends NamedHandleObject implements
-		IObjectWithState {
-
-	/**
-	 * An empty string array, which can be returned from {@link #getStateIds()}
-	 * if there is no state.
-	 */
-	private static final String[] NO_STATE = new String[0];
-
-	/**
-	 * The map of states currently held by this command. If this command has no
-	 * state, then this will be <code>null</code>.
-	 */
-	private Map states = null;
-
-	/**
-	 * Constructs a new instance of <code>NamedHandleObject<WithState/code>.
-	 * 
-	 * @param id
-	 *            The identifier for this handle; must not be <code>null</code>.
-	 */
-	protected NamedHandleObjectWithState(final String id) {
-		super(id);
-	}
-
-	public void addState(final String stateId, final State state) {
-		if (state == null) {
-			throw new NullPointerException("Cannot add a null state"); //$NON-NLS-1$
-		}
-
-		if (states == null) {
-			states = new HashMap(3);
-		}
-		states.put(stateId, state);
-	}
-
-	public final String getDescription() throws NotDefinedException {
-		final String description = super.getDescription(); // Trigger a NDE.
-
-		final State descriptionState = getState(INamedHandleStateIds.DESCRIPTION);
-		if (descriptionState != null) {
-			final Object value = descriptionState.getValue();
-			if (value != null) {
-				return value.toString();
-			}
-		}
-
-		return description;
-	}
-
-	public final String getName() throws NotDefinedException {
-		final String name = super.getName(); // Trigger a NDE, if necessary.
-
-		final State nameState = getState(INamedHandleStateIds.NAME);
-		if (nameState != null) {
-			final Object value = nameState.getValue();
-			if (value != null) {
-				return value.toString();
-			}
-		}
-
-		return name;
-	}
-
-	public final State getState(final String stateId) {
-		if ((states == null) || (states.isEmpty())) {
-			return null;
-		}
-
-		return (State) states.get(stateId);
-	}
-
-	public final String[] getStateIds() {
-		if ((states == null) || (states.isEmpty())) {
-			return NO_STATE;
-		}
-
-		final Set stateIds = states.keySet();
-		return (String[]) stateIds.toArray(new String[stateIds.size()]);
-	}
-
-	public void removeState(final String id) {
-		if (id == null) {
-			throw new NullPointerException("Cannot remove a null id"); //$NON-NLS-1$
-		}
-
-		if (states != null) {
-			states.remove(id);
-			if (states.isEmpty()) {
-				states = null;
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java
deleted file mode 100644
index 3659eda..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotEnabledException.java
+++ /dev/null
@@ -1,41 +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.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an attempt was made to execute a command that is not enabled.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.2
- */
-public final class NotEnabledException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3257572788998124596L;
-
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param s
-     *            the detail message; may be <code>null</code>.
-     */
-    public NotEnabledException(final String s) {
-        super(s);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.java
deleted file mode 100644
index 2b6bf34..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/NotHandledException.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.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an attempt was made to access the properties of an unhandled
- * object.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class NotHandledException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3256446914827726904L;
-
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param s
-     *            the detail message.
-     */
-    public NotHandledException(final String s) {
-        super(s);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java
deleted file mode 100644
index cfc6c45..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterType.java
+++ /dev/null
@@ -1,298 +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.core.commands;
-
-import org.eclipse.core.commands.common.HandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * Provides information about the type of a command parameter. Clients can use a
- * parameter type to check if an object matches the type of the parameter with
- * {@link #isCompatible(Object)} and can get an
- * {@link AbstractParameterValueConverter} to convert between objects matching
- * the parameter type and strings that encode the object's identity.
- * </p>
- * <p>
- * A command parameter is not required to declare a type. To determine if a
- * given parameter has a type, check if an {@link IParameter} implements
- * {@link ITypedParameter} and if so, use
- * {@link ITypedParameter#getParameterType()} like this:
- * </p>
- * 
- * <pre>
- *                   IParameter parameter = // ... get IParameter from Command
- *                   if (parameter instanceof ITypedParameter) {
- *                     ParameterType type = ((ITypedParameter)parameter).getParameterType();
- *                     if (type != null) {
- *                       // this parameter has a ParameterType
- *                     }
- *                   }
- * </pre>
- * 
- * @see IParameter
- * @see ITypedParameter#getParameterType()
- * @since 3.2
- */
-public final class ParameterType extends HandleObject implements Comparable {
-
-	/**
-	 * TODO: this was copied from
-	 * org.eclipse.core.internal.expressions.Expressions is there a better place
-	 * to reference this?
-	 * 
-	 * @param element
-	 *            The element to test; may be <code>null</code>.
-	 * @param type
-	 *            The type against which we are testing;may be <code>null</code>.
-	 * @return <code>true</code> if the <code>element</code> is an instance
-	 *         of <code>type</code>; <code>false</code> otherwise.
-	 */
-	private static final boolean isInstanceOf(final Object element,
-			final String type) {
-		// null isn't an instanceof of anything.
-		if (element == null) {
-			return false;
-		}
-		return isSubtype(element.getClass(), type);
-	}
-
-	/**
-	 * TODO: this was copied from
-	 * org.eclipse.core.internal.expressions.Expressions is there a better place
-	 * to reference this?
-	 * 
-	 * @param clazz
-	 *            The class to match; may be <code>null</code>.
-	 * @param type
-	 *            The type against which we are testing;may be <code>null</code>.
-	 * @return <code>true</code> if the <code>element</code> is an instance
-	 *         of <code>type</code>; <code>false</code> otherwise.
-	 */
-	private static final boolean isSubtype(final Class clazz, final String type) {
-		if (clazz.getName().equals(type)) {
-			return true;
-		}
-		final Class superClass = clazz.getSuperclass();
-		if (superClass != null && isSubtype(superClass, type)) {
-			return true;
-		}
-		final Class[] interfaces = clazz.getInterfaces();
-		for (int i = 0; i < interfaces.length; i++) {
-			if (isSubtype(interfaces[i], type)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * An {@link AbstractParameterValueConverter} for converting parameter
-	 * values between objects and strings. This may be <code>null</code>.
-	 */
-	private transient AbstractParameterValueConverter parameterTypeConverter;
-
-	/**
-	 * A string specifying the object type of this parameter type. This will be
-	 * <code>null</code> when the parameter type is undefined but never null
-	 * when it is defined.
-	 */
-	private transient String type = null;
-
-	/**
-	 * Constructs a new instance based on the given identifier. When a parameter
-	 * type is first constructed, it is undefined. Parameter types should only
-	 * be constructed by the {@link CommandManager} to ensure that the
-	 * identifier remains unique.
-	 * 
-	 * @param id
-	 *            The identifier for this type. This value must not be
-	 *            <code>null</code>, and must be unique amongst all parameter
-	 *            types.
-	 */
-	ParameterType(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Adds a listener to this parameter type that will be notified when its
-	 * state changes.
-	 * 
-	 * @param listener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	public final void addListener(final IParameterTypeListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * Compares this parameter type with another object by comparing each of the
-	 * non-transient attributes.
-	 * 
-	 * @param object
-	 *            The object with which to compare; must be an instance of
-	 *            {@link ParameterType}.
-	 * @return A negative integer, zero or a positive integer, if the object is
-	 *         greater than, equal to or less than this parameter type.
-	 */
-	public final int compareTo(final Object object) {
-		final ParameterType castedObject = (ParameterType) object;
-		int compareTo = Util.compare(defined, castedObject.defined);
-		if (compareTo == 0) {
-			compareTo = Util.compare(id, castedObject.id);
-		}
-		return compareTo;
-	}
-
-	/**
-	 * <p>
-	 * Defines this parameter type, setting the defined property to
-	 * <code>true</code>.
-	 * </p>
-	 * <p>
-	 * Notification is sent to all listeners that something has changed.
-	 * </p>
-	 * 
-	 * @param type
-	 *            a string identifying the Java object type for this parameter
-	 *            type; <code>null</code> is interpreted as
-	 *            <code>"java.lang.Object"</code>
-	 * @param parameterTypeConverter
-	 *            an {@link AbstractParameterValueConverter} to perform
-	 *            string/object conversions for parameter values; may be
-	 *            <code>null</code>
-	 */
-	public final void define(final String type,
-			final AbstractParameterValueConverter parameterTypeConverter) {
-
-		final boolean definedChanged = !this.defined;
-		this.defined = true;
-
-		this.type = (type == null) ? Object.class.getName() : type;
-		this.parameterTypeConverter = parameterTypeConverter;
-
-		fireParameterTypeChanged(new ParameterTypeEvent(this, definedChanged));
-	}
-
-	/**
-	 * Notifies all listeners that this parameter type has changed. This sends
-	 * the given event to all of the listeners, if any.
-	 * 
-	 * @param event
-	 *            The event to send to the listeners; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireParameterTypeChanged(final ParameterTypeEvent event) {
-		if (event == null) {
-			throw new NullPointerException(
-					"Cannot send a null event to listeners."); //$NON-NLS-1$
-		}
-
-		if (!isListenerAttached()) {
-			return;
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IParameterTypeListener listener = (IParameterTypeListener) listeners[i];
-			listener.parameterTypeChanged(event);
-		}
-	}
-
-	/**
-	 * Returns the value converter associated with this parameter, if any.
-	 * 
-	 * @return The parameter value converter, or <code>null</code> if there is
-	 *         no value converter for this parameter.
-	 * @throws NotDefinedException
-	 *             if the parameter type is not currently defined
-	 */
-	public final AbstractParameterValueConverter getValueConverter()
-			throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot use getValueConverter() with an undefined ParameterType"); //$NON-NLS-1$
-		}
-
-		return parameterTypeConverter;
-	}
-
-	/**
-	 * Returns whether the provided value is compatible with this parameter
-	 * type. An object is compatible with a parameter type if the object is an
-	 * instance of the class defined as the parameter's type class.
-	 * 
-	 * @param value
-	 *            an object to check for compatibility with this parameter type;
-	 *            may be <code>null</code>.
-	 * @return <code>true</code> if the value is compatible with this type,
-	 *         <code>false</code> otherwise
-	 * @throws NotDefinedException
-	 *             if the parameter type is not currently defined
-	 */
-	public boolean isCompatible(Object value) throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot use isCompatible() with an undefined ParameterType"); //$NON-NLS-1$
-		}
-		return isInstanceOf(value, type);
-	}
-
-	/**
-	 * Unregisters listener for changes to properties of this parameter type.
-	 * 
-	 * @param listener
-	 *            the instance to unregister. Must not be <code>null</code>.
-	 *            If an attempt is made to unregister an instance which is not
-	 *            already registered with this instance, no operation is
-	 *            performed.
-	 */
-	public final void removeListener(final IParameterTypeListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * The string representation of this parameter type. For debugging purposes
-	 * only. This string should not be shown to an end user.
-	 * 
-	 * @return The string representation; never <code>null</code>.
-	 */
-	public final String toString() {
-		if (string == null) {
-			final StringBuffer stringBuffer = new StringBuffer();
-			stringBuffer.append("ParameterType("); //$NON-NLS-1$
-			stringBuffer.append(id);
-			stringBuffer.append(',');
-			stringBuffer.append(defined);
-			stringBuffer.append(')');
-			string = stringBuffer.toString();
-		}
-		return string;
-	}
-
-	/**
-	 * Makes this parameter type become undefined. Notification is sent to all
-	 * listeners.
-	 */
-	public final void undefine() {
-		string = null;
-
-		final boolean definedChanged = defined;
-		defined = false;
-
-		type = null;
-		parameterTypeConverter = null;
-
-		fireParameterTypeChanged(new ParameterTypeEvent(this, definedChanged));
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java
deleted file mode 100644
index cc51534..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterTypeEvent.java
+++ /dev/null
@@ -1,63 +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.core.commands;
-
-import org.eclipse.core.commands.common.AbstractHandleObjectEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * {@link ParameterType}.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @see IParameterTypeListener#parameterTypeChanged(ParameterTypeEvent)
- * @since 3.2
- */
-public final class ParameterTypeEvent extends AbstractHandleObjectEvent {
-
-	/**
-	 * The parameter type that has changed. This value is never
-	 * <code>null</code>.
-	 */
-	private final ParameterType parameterType;
-
-	/**
-	 * Constructs a new instance.
-	 * 
-	 * @param parameterType
-	 *            The parameter type that changed; must not be <code>null</code>.
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 */
-	ParameterTypeEvent(final ParameterType parameterType,
-			final boolean definedChanged) {
-
-		super(definedChanged);
-
-		if (parameterType == null) {
-			throw new NullPointerException();
-		}
-
-		this.parameterType = parameterType;
-	}
-
-	/**
-	 * Returns the instance of the parameter type that changed.
-	 * 
-	 * @return the instance of the parameter type that changed. Guaranteed not
-	 *         to be <code>null</code>.
-	 */
-	public final ParameterType getParameterType() {
-		return parameterType;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java
deleted file mode 100644
index f871558..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValueConversionException.java
+++ /dev/null
@@ -1,52 +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.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that a problem occurred while converting a command parameter value
- * from string to object, or object to string.
- * 
- * @see AbstractParameterValueConverter
- * @since 3.2
- */
-public class ParameterValueConversionException extends CommandException {
-
-	/**
-	 * Generated serial version UID for this class.
-	 */
-	private static final long serialVersionUID = 4703077729505066104L;
-
-	/**
-	 * Creates a new instance of this class with the specified detail message.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 */
-	public ParameterValueConversionException(final String message) {
-		super(message);
-	}
-	
-	/**
-	 * Creates a new instance of this class with the specified detail message
-	 * and cause.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @param cause
-	 *            the cause; may be <code>null</code>.
-	 */
-	public ParameterValueConversionException(final String message,
-			final Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java
deleted file mode 100644
index 4ec5183..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterValuesException.java
+++ /dev/null
@@ -1,47 +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.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * <p>
- * Signals that a problem has occurred while trying to create an instance of
- * <code>IParameterValues</code>. In applications based on the registry
- * provided by core, this usually indicates a problem creating an
- * <code>IExecutableExtension</code>. For other applications, this exception
- * could be used to signify any general problem during initialization.
- * </p>
- * 
- * @since 3.1
- * 
- */
-public final class ParameterValuesException extends CommandException {
-
-	/**
-	 * Generated serial version UID for this class.
-	 */
-	private static final long serialVersionUID = 3618976793520845623L;
-
-	/**
-	 * Creates a new instance of this class with the specified detail message
-	 * and cause.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @param cause
-	 *            the cause; may be <code>null</code>.
-	 */
-	public ParameterValuesException(final String message, final Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java
deleted file mode 100644
index 3835ec2..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/Parameterization.java
+++ /dev/null
@@ -1,167 +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.core.commands;
-
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A parameter with a specific value. This is usually a part of a
- * <code>ParameterizedCommand</code>, which is used to refer to a command
- * with a collection of parameterizations.
- * </p>
- * 
- * @since 3.1
- */
-public final class Parameterization {
-
-	/**
-	 * The constant integer hash code value meaning the hash code has not yet
-	 * been computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-
-	/**
-	 * A factor for computing the hash code for all parameterized commands.
-	 */
-	private static final int HASH_FACTOR = 89;
-
-	/**
-	 * The seed for the hash code for all parameterized commands.
-	 */
-	private static final int HASH_INITIAL = Parameterization.class.getName()
-			.hashCode();
-
-	/**
-	 * The hash code for this object. This value is computed lazily, and marked
-	 * as invalid when one of the values on which it is based changes.
-	 */
-	private transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-	/**
-	 * The parameter that is being parameterized. This value is never
-	 * <code>null</code>.
-	 */
-	private final IParameter parameter;
-
-	/**
-	 * The value that defines the parameterization. This value may be
-	 * <code>null</code>.
-	 */
-	private final String value;
-
-	/**
-	 * Constructs a new instance of <code>Parameterization</code>.
-	 * 
-	 * @param parameter
-	 *            The parameter that is being parameterized; must not be
-	 *            <code>null</code>.
-	 * @param value
-	 *            The value for the parameter; may be <code>null</code>.
-	 */
-	public Parameterization(final IParameter parameter, final String value) {
-		if (parameter == null) {
-			throw new NullPointerException(
-					"You cannot parameterize a null parameter"); //$NON-NLS-1$
-		}
-
-		this.parameter = parameter;
-		this.value = value;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public final boolean equals(final Object object) {
-		if (this == object) {
-			return true;
-		}
-
-		if (!(object instanceof Parameterization)) {
-			return false;
-		}
-
-		final Parameterization parameterization = (Parameterization) object;
-		if (!(Util.equals(this.parameter.getId(), parameterization.parameter
-				.getId()))) {
-			return false;
-		}
-
-		return Util.equals(this.value, parameterization.value);
-	}
-
-	/**
-	 * Returns the parameter that is being parameterized.
-	 * 
-	 * @return The parameter; never <code>null</code>.
-	 */
-	public final IParameter getParameter() {
-		return parameter;
-	}
-
-	/**
-	 * Returns the value for the parameter in this parameterization.
-	 * 
-	 * @return The value; may be <code>null</code>.
-	 */
-	public final String getValue() {
-		return value;
-	}
-
-	/**
-	 * Returns the human-readable name for the current value, if any. If the
-	 * name cannot be found, then it simply returns the value. It also ensures
-	 * that any <code>null</code> values are converted into an empty string.
-	 * 
-	 * @return The human-readable name of the value; never <code>null</code>.
-	 * @throws ParameterValuesException
-	 *             If the parameter needed to be initialized, but couldn't be.
-	 */
-	public final String getValueName() throws ParameterValuesException {
-		final Map parameterValues = parameter.getValues().getParameterValues();
-		final Iterator parameterValueItr = parameterValues.entrySet()
-				.iterator();
-		String returnValue = null;
-		while (parameterValueItr.hasNext()) {
-			final Map.Entry entry = (Map.Entry) parameterValueItr.next();
-			final String currentValue = (String) entry.getValue();
-			if (Util.equals(value, currentValue)) {
-				returnValue = (String) entry.getKey();
-				break;
-			}
-		}
-
-		if (returnValue == null) {
-			return Util.ZERO_LENGTH_STRING;
-		}
-
-		return returnValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public final int hashCode() {
-		if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL * HASH_FACTOR + Util.hashCode(parameter);
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(value);
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-		return hashCode;
-
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java
deleted file mode 100644
index fdcc471..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/ParameterizedCommand.java
+++ /dev/null
@@ -1,719 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Benjamin Muskalla - bug 222861 [Commands] ParameterizedCommand#equals broken
- *******************************************************************************/
-
-package org.eclipse.core.commands;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A command that has had one or more of its parameters specified. This class
- * serves as a utility class for developers that need to manipulate commands
- * with parameters. It handles the behaviour of generating a parameter map and a
- * human-readable name.
- * </p>
- * 
- * @since 3.1
- */
-public final class ParameterizedCommand implements Comparable {
-
-	/**
-	 * The constant integer hash code value meaning the hash code has not yet
-	 * been computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-
-	/**
-	 * A factor for computing the hash code for all parameterized commands.
-	 */
-	private static final int HASH_FACTOR = 89;
-
-	/**
-	 * The seed for the hash code for all parameterized commands.
-	 */
-	private static final int HASH_INITIAL = ParameterizedCommand.class
-			.getName().hashCode();
-
-	/**
-	 * The index of the parameter id in the parameter values.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_ID = 0;
-
-	/**
-	 * The index of the human-readable name of the parameter itself, in the
-	 * parameter values.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_NAME = 1;
-
-	/**
-	 * The index of the human-readable name of the value of the parameter for
-	 * this command.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_VALUE_NAME = 2;
-
-	/**
-	 * The index of the value of the parameter that the command can understand.
-	 * 
-	 * @deprecated no longer used
-	 */
-	public static final int INDEX_PARAMETER_VALUE_VALUE = 3;
-
-	/**
-	 * Escapes special characters in the command id, parameter ids and parameter
-	 * values for {@link #serialize()}. The special characters
-	 * {@link CommandManager#PARAMETER_START_CHAR},
-	 * {@link CommandManager#PARAMETER_END_CHAR},
-	 * {@link CommandManager#ID_VALUE_CHAR},
-	 * {@link CommandManager#PARAMETER_SEPARATOR_CHAR} and
-	 * {@link CommandManager#ESCAPE_CHAR} are escaped by prepending a
-	 * {@link CommandManager#ESCAPE_CHAR} character.
-	 * 
-	 * @param rawText
-	 *            a <code>String</code> to escape special characters in for
-	 *            serialization.
-	 * @return a <code>String</code> representing <code>rawText</code> with
-	 *         special serialization characters escaped
-	 * @since 3.2
-	 */
-	private static final String escape(final String rawText) {
-
-		// defer initialization of a StringBuffer until we know we need one
-		StringBuffer buffer = null;
-
-		for (int i = 0; i < rawText.length(); i++) {
-
-			char c = rawText.charAt(i);
-			switch (c) {
-			case CommandManager.PARAMETER_START_CHAR:
-			case CommandManager.PARAMETER_END_CHAR:
-			case CommandManager.ID_VALUE_CHAR:
-			case CommandManager.PARAMETER_SEPARATOR_CHAR:
-			case CommandManager.ESCAPE_CHAR:
-				if (buffer == null) {
-					buffer = new StringBuffer(rawText.substring(0, i));
-				}
-				buffer.append(CommandManager.ESCAPE_CHAR);
-				buffer.append(c);
-				break;
-			default:
-				if (buffer != null) {
-					buffer.append(c);
-				}
-				break;
-			}
-
-		}
-
-		if (buffer == null) {
-			return rawText;
-		}
-		return buffer.toString();
-	}
-
-	/**
-	 * Generates every possible combination of parameter values for the given
-	 * parameters. Parameters values that cannot be initialized are just
-	 * ignored. Optional parameters are considered.
-	 * 
-	 * @param startIndex
-	 *            The index in the <code>parameters</code> that we should
-	 *            process. This must be a valid index.
-	 * @param parameters
-	 *            The parameters in to process; must not be <code>null</code>.
-	 * @return A collection (<code>Collection</code>) of combinations (<code>List</code>
-	 *         of <code>Parameterization</code>).
-	 */
-	private static final Collection expandParameters(final int startIndex,
-			final IParameter[] parameters) {
-		final int nextIndex = startIndex + 1;
-		final boolean noMoreParameters = (nextIndex >= parameters.length);
-
-		final IParameter parameter = parameters[startIndex];
-		final List parameterizations = new ArrayList();
-		if (parameter.isOptional()) {
-			parameterizations.add(null);
-		}
-
-		IParameterValues values = null;
-		try {
-			values = parameter.getValues();
-		} catch (final ParameterValuesException e) {
-			if (noMoreParameters) {
-				return parameterizations;
-			}
-
-			// Make recursive call
-			return expandParameters(nextIndex, parameters);
-		}
-		final Map parameterValues = values.getParameterValues();
-		final Iterator parameterValueItr = parameterValues.entrySet()
-				.iterator();
-		while (parameterValueItr.hasNext()) {
-			final Map.Entry entry = (Map.Entry) parameterValueItr.next();
-			final Parameterization parameterization = new Parameterization(
-					parameter, (String) entry.getValue());
-			parameterizations.add(parameterization);
-		}
-
-		// Check if another iteration will produce any more names.
-		final int parameterizationCount = parameterizations.size();
-		if (noMoreParameters) {
-			// This is it, so just return the current parameterizations.
-			for (int i = 0; i < parameterizationCount; i++) {
-				final Parameterization parameterization = (Parameterization) parameterizations
-						.get(i);
-				final List combination = new ArrayList(1);
-				combination.add(parameterization);
-				parameterizations.set(i, combination);
-			}
-			return parameterizations;
-		}
-
-		// Make recursive call
-		final Collection suffixes = expandParameters(nextIndex, parameters);
-		while (suffixes.remove(null)) {
-			// just keep deleting the darn things.
-		}
-		if (suffixes.isEmpty()) {
-			// This is it, so just return the current parameterizations.
-			for (int i = 0; i < parameterizationCount; i++) {
-				final Parameterization parameterization = (Parameterization) parameterizations
-						.get(i);
-				final List combination = new ArrayList(1);
-				combination.add(parameterization);
-				parameterizations.set(i, combination);
-			}
-			return parameterizations;
-		}
-		final Collection returnValue = new ArrayList();
-		final Iterator suffixItr = suffixes.iterator();
-		while (suffixItr.hasNext()) {
-			final List combination = (List) suffixItr.next();
-			final int combinationSize = combination.size();
-			for (int i = 0; i < parameterizationCount; i++) {
-				final Parameterization parameterization = (Parameterization) parameterizations
-						.get(i);
-				final List newCombination = new ArrayList(combinationSize + 1);
-				newCombination.add(parameterization);
-				newCombination.addAll(combination);
-				returnValue.add(newCombination);
-			}
-		}
-
-		return returnValue;
-	}
-
-	/**
-	 * <p>
-	 * Generates all the possible combinations of command parameterizations for
-	 * the given command. If the command has no parameters, then this is simply
-	 * a parameterized version of that command. If a parameter is optional, both
-	 * the included and not included cases are considered.
-	 * </p>
-	 * <p>
-	 * If one of the parameters cannot be loaded due to a
-	 * <code>ParameterValuesException</code>, then it is simply ignored.
-	 * </p>
-	 * 
-	 * @param command
-	 *            The command for which the parameter combinations should be
-	 *            generated; must not be <code>null</code>.
-	 * @return A collection of <code>ParameterizedCommand</code> instances
-	 *         representing all of the possible combinations. This value is
-	 *         never empty and it is never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the command is not defined.
-	 */
-	public static final Collection generateCombinations(final Command command)
-			throws NotDefinedException {
-		final IParameter[] parameters = command.getParameters();
-		if (parameters == null) {
-			return Collections
-					.singleton(new ParameterizedCommand(command, null));
-		}
-
-		final Collection expansion = expandParameters(0, parameters);
-		final Collection combinations = new ArrayList(expansion.size());
-		final Iterator expansionItr = expansion.iterator();
-		while (expansionItr.hasNext()) {
-			final List combination = (List) expansionItr.next();
-			if (combination == null) {
-				combinations.add(new ParameterizedCommand(command, null));
-			} else {
-				while (combination.remove(null)) {
-					// Just keep removing while there are null entries left.
-				}
-				if (combination.isEmpty()) {
-					combinations.add(new ParameterizedCommand(command, null));
-				} else {
-					final Parameterization[] parameterizations = (Parameterization[]) combination
-							.toArray(new Parameterization[combination.size()]);
-					combinations.add(new ParameterizedCommand(command,
-							parameterizations));
-				}
-			}
-		}
-
-		return combinations;
-	}
-
-	/**
-	 * Take a command and a map of parameter IDs to values, and generate the
-	 * appropriate parameterized command.
-	 * 
-	 * @param command
-	 *            The command object. Must not be <code>null</code>.
-	 * @param parameters
-	 *            A map of String parameter ids to objects. May be
-	 *            <code>null</code>.
-	 * @return the parameterized command, or <code>null</code> if it could not
-	 *         be generated
-	 * @since 3.4
-	 */
-	public static final ParameterizedCommand generateCommand(Command command,
-			Map parameters) {
-		// no parameters
-		if (parameters == null || parameters.isEmpty()) {
-			return new ParameterizedCommand(command, null);
-		}
-
-		try {
-			ArrayList parms = new ArrayList();
-			Iterator i = parameters.keySet().iterator();
-
-			// iterate over given parameters
-			while (i.hasNext()) {
-				String key = (String) i.next();
-				IParameter parameter = null;
-				// get the parameter from the command
-				parameter = command.getParameter(key);
-
-				// if the parameter is defined add it to the parameter list
-				if (parameter == null) {
-					return null;
-				}
-				ParameterType parameterType = command.getParameterType(key);
-				if (parameterType == null) {
-					parms.add(new Parameterization(parameter,
-							(String) parameters.get(key)));
-				} else {
-					AbstractParameterValueConverter valueConverter = parameterType
-							.getValueConverter();
-					if (valueConverter != null) {
-						String val = valueConverter.convertToString(parameters
-								.get(key));
-						parms.add(new Parameterization(parameter, val));
-					} else {
-						parms.add(new Parameterization(parameter,
-								(String) parameters.get(key)));
-					}
-				}
-			}
-
-			// convert the parameters to an Parameterization array and create
-			// the command
-			return new ParameterizedCommand(command, (Parameterization[]) parms
-					.toArray(new Parameterization[parms.size()]));
-		} catch (NotDefinedException e) {
-		} catch (ParameterValueConversionException e) {
-		}
-		return null;
-	}
-
-	/**
-	 * The base command which is being parameterized. This value is never
-	 * <code>null</code>.
-	 */
-	private final Command command;
-
-	/**
-	 * The hash code for this object. This value is computed lazily, and marked
-	 * as invalid when one of the values on which it is based changes.
-	 */
-	private transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-	/**
-	 * This is an array of parameterization defined for this command. This value
-	 * may be <code>null</code> if the command has no parameters.
-	 */
-	private final Parameterization[] parameterizations;
-
-	private String name;
-
-	/**
-	 * Constructs a new instance of <code>ParameterizedCommand</code> with
-	 * specific values for zero or more of its parameters.
-	 * 
-	 * @param command
-	 *            The command that is parameterized; must not be
-	 *            <code>null</code>.
-	 * @param parameterizations
-	 *            An array of parameterizations binding parameters to values for
-	 *            the command. This value may be <code>null</code>.
-	 */
-	public ParameterizedCommand(final Command command,
-			final Parameterization[] parameterizations) {
-		if (command == null) {
-			throw new NullPointerException(
-					"A parameterized command cannot have a null command"); //$NON-NLS-1$
-		}
-
-		this.command = command;
-		IParameter[] parms = null;
-		try {
-			parms = command.getParameters();
-		} catch (NotDefinedException e) {
-			// This should not happen.
-		}
-		if (parameterizations != null && parameterizations.length>0 && parms != null) {
-			int parmIndex = 0;
-			Parameterization[] params = new Parameterization[parameterizations.length];
-			for (int j = 0; j < parms.length; j++) {
-				for (int i = 0; i < parameterizations.length; i++) {
-					Parameterization pm = parameterizations[i];
-					if (parms[j].equals(pm.getParameter())) {
-						params[parmIndex++] = pm;
-					}
-				}
-			}
-			this.parameterizations = params;
-		} else {
-			this.parameterizations = null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Comparable#compareTo(java.lang.Object)
-	 */
-	public final int compareTo(final Object object) {
-		final ParameterizedCommand command = (ParameterizedCommand) object;
-		final boolean thisDefined = this.command.isDefined();
-		final boolean otherDefined = command.command.isDefined();
-		if (!thisDefined || !otherDefined) {
-			return Util.compare(thisDefined, otherDefined);
-		}
-
-		try {
-			final int compareTo = getName().compareTo(command.getName());
-			if (compareTo == 0) {
-				return getId().compareTo(command.getId());
-			}
-			return compareTo;
-		} catch (final NotDefinedException e) {
-			throw new Error(
-					"Concurrent modification of a command's defined state"); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public final boolean equals(final Object object) {
-		if (this == object) {
-			return true;
-		}
-
-		if (!(object instanceof ParameterizedCommand)) {
-			return false;
-		}
-
-		final ParameterizedCommand command = (ParameterizedCommand) object;
-		if (!Util.equals(this.command, command.command)) {
-			return false;
-		}
-
-		return Util.equals(this.parameterizations, command.parameterizations);
-	}
-
-	/**
-	 * Executes this command with its parameters. This method will succeed
-	 * regardless of whether the command is enabled or defined. It is
-	 * preferrable to use {@link #executeWithChecks(Object, Object)}.
-	 * 
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @deprecated Please use {@link #executeWithChecks(Object, Object)}
-	 *             instead.
-	 */
-	public final Object execute(final Object trigger,
-			final Object applicationContext) throws ExecutionException,
-			NotHandledException {
-		return command.execute(new ExecutionEvent(command, getParameterMap(),
-				trigger, applicationContext));
-	}
-
-	/**
-	 * Executes this command with its parameters. This does extra checking to
-	 * see if the command is enabled and defined. If it is not both enabled and
-	 * defined, then the execution listeners will be notified and an exception
-	 * thrown.
-	 * 
-	 * @param trigger
-	 *            The object that triggered the execution; may be
-	 *            <code>null</code>.
-	 * @param applicationContext
-	 *            The state of the application at the time the execution was
-	 *            triggered; may be <code>null</code>.
-	 * @return The result of the execution; may be <code>null</code>.
-	 * @throws ExecutionException
-	 *             If the handler has problems executing this command.
-	 * @throws NotDefinedException
-	 *             If the command you are trying to execute is not defined.
-	 * @throws NotEnabledException
-	 *             If the command you are trying to execute is not enabled.
-	 * @throws NotHandledException
-	 *             If there is no handler.
-	 * @since 3.2
-	 */
-	public final Object executeWithChecks(final Object trigger,
-			final Object applicationContext) throws ExecutionException,
-			NotDefinedException, NotEnabledException, NotHandledException {
-		return command.executeWithChecks(new ExecutionEvent(command,
-				getParameterMap(), trigger, applicationContext));
-	}
-
-	/**
-	 * Returns the base command. It is possible for more than one parameterized
-	 * command to have the same identifier.
-	 * 
-	 * @return The command; never <code>null</code>, but may be undefined.
-	 */
-	public final Command getCommand() {
-		return command;
-	}
-
-	/**
-	 * Returns the command's base identifier. It is possible for more than one
-	 * parameterized command to have the same identifier.
-	 * 
-	 * @return The command id; never <code>null</code>.
-	 */
-	public final String getId() {
-		return command.getId();
-	}
-
-	/**
-	 * Returns a human-readable representation of this command with all of its
-	 * parameterizations.
-	 * 
-	 * @return The human-readable representation of this parameterized command;
-	 *         never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the underlying command is not defined.
-	 */
-	public final String getName() throws NotDefinedException {
-		if (name == null) {
-			final StringBuffer nameBuffer = new StringBuffer();
-			nameBuffer.append(command.getName());
-			if (parameterizations != null) {
-				nameBuffer.append(" ("); //$NON-NLS-1$
-				final int parameterizationCount = parameterizations.length;
-				for (int i = 0; i < parameterizationCount; i++) {
-					final Parameterization parameterization = parameterizations[i];
-					nameBuffer
-							.append(parameterization.getParameter().getName());
-					nameBuffer.append(": "); //$NON-NLS-1$
-					try {
-						nameBuffer.append(parameterization.getValueName());
-					} catch (final ParameterValuesException e) {
-						/*
-						 * Just let it go for now. If someone complains we can
-						 * add more info later.
-						 */
-					}
-
-					// If there is another item, append a separator.
-					if (i + 1 < parameterizationCount) {
-						nameBuffer.append(", "); //$NON-NLS-1$
-					}
-				}
-				nameBuffer.append(')');
-			}
-			name = nameBuffer.toString();
-		}
-		return name;
-	}
-
-	/**
-	 * Returns the parameter map, as can be used to construct an
-	 * <code>ExecutionEvent</code>.
-	 * 
-	 * @return The map of parameter ids (<code>String</code>) to parameter
-	 *         values (<code>String</code>). This map is never
-	 *         <code>null</code>, but may be empty.
-	 */
-	public final Map getParameterMap() {
-		if ((parameterizations == null) || (parameterizations.length == 0)) {
-			return Collections.EMPTY_MAP;
-		}
-
-		final Map parameterMap = new HashMap();
-		for (int i = 0; i < parameterizations.length; i++) {
-			final Parameterization parameterization = parameterizations[i];
-			parameterMap.put(parameterization.getParameter().getId(),
-					parameterization.getValue());
-		}
-		return parameterMap;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public final int hashCode() {
-		if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL * HASH_FACTOR + Util.hashCode(command);
-			hashCode = hashCode * HASH_FACTOR;
-			if (parameterizations != null) {
-				for (int i = 0; i < parameterizations.length; i++) {
-					hashCode += Util.hashCode(parameterizations[i]);
-				}
-			}
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-		return hashCode;
-	}
-
-	/**
-	 * Returns a {@link String} containing the command id, parameter ids and
-	 * parameter values for this {@link ParameterizedCommand}. The returned
-	 * {@link String} can be stored by a client and later used to reconstruct an
-	 * equivalent {@link ParameterizedCommand} using the
-	 * {@link CommandManager#deserialize(String)} method.
-	 * <p>
-	 * The syntax of the returned {@link String} is as follows:
-	 * </p>
-	 * 
-	 * <blockquote>
-	 * <code>serialization = <u>commandId</u> [ '(' parameters ')' ]</code><br>
-	 * <code>parameters = parameter [ ',' parameters ]</code><br>
-	 * <code>parameter = <u>parameterId</u> [ '=' <u>parameterValue</u> ]</code>
-	 * </blockquote>
-	 * 
-	 * <p>
-	 * In the syntax above, sections inside square-brackets are optional. The
-	 * characters in single quotes (<code>(</code>, <code>)</code>,
-	 * <code>,</code> and <code>=</code>) indicate literal characters.
-	 * </p>
-	 * <p>
-	 * <code><u>commandId</u></code> represents the command id encoded with
-	 * separator characters escaped. <code><u>parameterId</u></code> and
-	 * <code><u>parameterValue</u></code> represent the parameter ids and
-	 * values encoded with separator characters escaped. The separator
-	 * characters <code>(</code>, <code>)</code>, <code>,</code> and
-	 * <code>=</code> are escaped by prepending a <code>%</code>. This
-	 * requires <code>%</code> to be escaped, which is also done by prepending
-	 * a <code>%</code>.
-	 * </p>
-	 * <p>
-	 * The order of the parameters is not defined (and not important). A missing
-	 * <code><u>parameterValue</u></code> indicates that the value of the
-	 * parameter is <code>null</code>.
-	 * </p>
-	 * <p>
-	 * For example, the string shown below represents a serialized parameterized
-	 * command that can be used to show the Resource perspective:
-	 * </p>
-	 * <p>
-	 * <code>org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.ui.resourcePerspective)</code>
-	 * </p>
-	 * <p>
-	 * This example shows the more general form with multiple parameters,
-	 * <code>null</code> value parameters, and escaped <code>=</code> in the
-	 * third parameter value.
-	 * </p>
-	 * <p>
-	 * <code>command.id(param1.id=value1,param2.id,param3.id=esc%=val3)</code>
-	 * </p>
-	 * 
-	 * @return A string containing the escaped command id, parameter ids and
-	 *         parameter values; never <code>null</code>.
-	 * @see CommandManager#deserialize(String)
-	 * @since 3.2
-	 */
-	public final String serialize() {
-		final String escapedId = escape(getId());
-
-		if ((parameterizations == null) || (parameterizations.length == 0)) {
-			return escapedId;
-		}
-
-		final StringBuffer buffer = new StringBuffer(escapedId);
-		buffer.append(CommandManager.PARAMETER_START_CHAR);
-
-		for (int i = 0; i < parameterizations.length; i++) {
-
-			if (i > 0) {
-				// insert separator between parameters
-				buffer.append(CommandManager.PARAMETER_SEPARATOR_CHAR);
-			}
-
-			final Parameterization parameterization = parameterizations[i];
-			final String parameterId = parameterization.getParameter().getId();
-			final String escapedParameterId = escape(parameterId);
-
-			buffer.append(escapedParameterId);
-
-			final String parameterValue = parameterization.getValue();
-			if (parameterValue != null) {
-				final String escapedParameterValue = escape(parameterValue);
-				buffer.append(CommandManager.ID_VALUE_CHAR);
-				buffer.append(escapedParameterValue);
-			}
-		}
-
-		buffer.append(CommandManager.PARAMETER_END_CHAR);
-
-		return buffer.toString();
-	}
-
-	public final String toString() {
-		final StringBuffer buffer = new StringBuffer();
-		buffer.append("ParameterizedCommand("); //$NON-NLS-1$
-		buffer.append(command);
-		buffer.append(',');
-		buffer.append(parameterizations);
-		buffer.append(')');
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java
deleted file mode 100644
index 76da8a9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/SerializationException.java
+++ /dev/null
@@ -1,54 +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.core.commands;
-
-import org.eclipse.core.commands.common.CommandException;
-
-/**
- * Signals that an exception occured while serializing a
- * {@link ParameterizedCommand} to a string or deserializing a String to a
- * {@link ParameterizedCommand}.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.2
- */
-public final class SerializationException extends CommandException {
-
-	/**
-	 * Generated serial version UID for this class.
-	 */
-	private static final long serialVersionUID = 2691599674561684949L;
-
-	/**
-	 * Creates a new instance of this class with the specified detail message.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 */
-	public SerializationException(final String message) {
-		super(message);
-	}
-	
-	/**
-	 * Creates a new instance of this class with the specified detail message
-	 * and cause.
-	 * 
-	 * @param message
-	 *            the detail message; may be <code>null</code>.
-	 * @param cause
-	 *            the cause; may be <code>null</code>.
-	 */
-	public SerializationException(final String message, final Throwable cause) {
-		super(message, cause);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java
deleted file mode 100644
index 7a82373..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/State.java
+++ /dev/null
@@ -1,136 +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.core.commands;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A piece of state information that can be shared between objects, and might be
- * persisted between sessions. This can be used for commands that toggle between
- * two states and wish to pass this state information between different
- * handlers.
- * </p>
- * <p>
- * This state object can either be used as a single state object shared between
- * several commands, or one state object per command -- depending on the needs
- * of the application.
- * </p>
- * <p>
- * Clients may instantiate or extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public class State extends EventManager {
-
-	/**
-	 * The identifier of the state; may be <code>null</code> if it has not
-	 * been initialized.
-	 */
-	private String id;
-
-	/**
-	 * The value held by this state; may be anything at all.
-	 */
-	private Object value;
-
-	/**
-	 * Adds a listener to changes for this state.
-	 * 
-	 * @param listener
-	 *            The listener to add; must not be <code>null</code>.
-	 */
-	public void addListener(final IStateListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * Disposes of this state. This allows the state to unregister itself with
-	 * any managers or as a listener.
-	 */
-	public void dispose() {
-		// The default implementation does nothing.
-	}
-
-	/**
-	 * Notifies listeners to this state that it has changed in some way.
-	 * 
-	 * @param oldValue
-	 *            The old value; may be anything.
-	 */
-	protected final void fireStateChanged(final Object oldValue) {
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IStateListener listener = (IStateListener) listeners[i];
-			listener.handleStateChange(this, oldValue);
-		}
-	}
-
-	/**
-	 * Returns the identifier for this state.
-	 * 
-	 * @return The id; may be <code>null</code>.
-	 */
-	public final String getId() {
-		return id;
-	}
-
-	/**
-	 * The current value associated with this state. This can be any type of
-	 * object, but implementations will usually restrict this value to a
-	 * particular type.
-	 * 
-	 * @return The current value; may be anything.
-	 */
-
-	public Object getValue() {
-		return value;
-	}
-
-	/**
-	 * Removes a listener to changes from this state.
-	 * 
-	 * @param listener
-	 *            The listener to remove; must not be <code>null</code>.
-	 */
-
-	public void removeListener(final IStateListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * Sets the identifier for this object.  This method should only be called
-	 * by the command framework.  Clients should not call this method.
-	 * 
-	 * @param id
-	 *            The id; must not be <code>null</code>.
-	 */
-	public void setId(final String id) {
-		this.id = id;
-	}
-
-	/**
-	 * Sets the value for this state object.
-	 * 
-	 * @param value
-	 *            The value to set; may be anything.
-	 */
-	public void setValue(final Object value) {
-		if (!Util.equals(this.value, value)) {
-			final Object oldValue = this.value;
-			this.value = value;
-			fireStateChanged(oldValue);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java
deleted file mode 100644
index c4a6a44..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractBitSetEvent.java
+++ /dev/null
@@ -1,30 +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.core.commands.common;
-
-/**
- * <p>
- * An event that carries with it two or more boolean values.  This provides a
- * single integer value which can then be used as a bit set.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class AbstractBitSetEvent {
-
-	/**
-	 * A collection of bits representing whether certain values have changed. A
-	 * bit is set (i.e., <code>1</code>) if the corresponding property has
-	 * changed. It can be assumed that this value will be correctly initialized
-	 * by the superconstructor.
-	 */
-	protected int changedValues = 0;
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.java
deleted file mode 100644
index 250cfbc..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractHandleObjectEvent.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.core.commands.common;
-
-/**
- * <p>
- * An event fired from a <code>NamedHandleObject</code>. This provides
- * notification of changes to the defined state, the name and the description.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class AbstractHandleObjectEvent extends AbstractBitSetEvent {
-
-	/**
-	 * The bit used to represent whether the category has changed its defined
-	 * state.
-	 */
-	protected static final int CHANGED_DEFINED = 1;
-
-	/**
-	 * The last used bit so that subclasses can add more properties.
-	 */
-	protected static final int LAST_BIT_USED_ABSTRACT_HANDLE = CHANGED_DEFINED;
-
-	/**
-	 * Constructs a new instance of <code>AbstractHandleObjectEvent</code>.
-	 * 
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 */
-	protected AbstractHandleObjectEvent(final boolean definedChanged) {
-		if (definedChanged) {
-			changedValues |= CHANGED_DEFINED;
-		}
-	}
-
-	/**
-	 * Returns whether or not the defined property changed.
-	 * 
-	 * @return <code>true</code>, iff the defined property changed.
-	 */
-	public final boolean isDefinedChanged() {
-		return ((changedValues & CHANGED_DEFINED) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java
deleted file mode 100644
index b76a796..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/AbstractNamedHandleEvent.java
+++ /dev/null
@@ -1,81 +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.core.commands.common;
-
-/**
- * <p>
- * An event fired from a <code>NamedHandleObject</code>. This provides
- * notification of changes to the defined state, the name and the description.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class AbstractNamedHandleEvent extends
-		AbstractHandleObjectEvent {
-
-	/**
-	 * The bit used to represent whether the category has changed its
-	 * description.
-	 */
-	protected static final int CHANGED_DESCRIPTION = 1 << LAST_BIT_USED_ABSTRACT_HANDLE;
-
-	/**
-	 * The bit used to represent whether the category has changed its name.
-	 */
-	protected static final int CHANGED_NAME = 1 << LAST_BIT_USED_ABSTRACT_HANDLE;
-
-	/**
-	 * The last used bit so that subclasses can add more properties.
-	 */
-	protected static final int LAST_USED_BIT = CHANGED_NAME;
-
-	/**
-	 * Constructs a new instance of <code>AbstractHandleObjectEvent</code>.
-	 * 
-	 * @param definedChanged
-	 *            <code>true</code>, iff the defined property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code>, iff the description property changed.
-	 * @param nameChanged
-	 *            <code>true</code>, iff the name property changed.
-	 */
-	protected AbstractNamedHandleEvent(final boolean definedChanged,
-			final boolean descriptionChanged, final boolean nameChanged) {
-		super(definedChanged);
-
-		if (descriptionChanged) {
-			changedValues |= CHANGED_DESCRIPTION;
-		}
-		if (nameChanged) {
-			changedValues |= CHANGED_NAME;
-		}
-	}
-
-	/**
-	 * Returns whether or not the description property changed.
-	 * 
-	 * @return <code>true</code>, iff the description property changed.
-	 */
-	public final boolean isDescriptionChanged() {
-		return ((changedValues & CHANGED_DESCRIPTION) != 0);
-	}
-
-	/**
-	 * Returns whether or not the name property changed.
-	 * 
-	 * @return <code>true</code>, iff the name property changed.
-	 */
-	public final boolean isNameChanged() {
-		return ((changedValues & CHANGED_NAME) != 0);
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java
deleted file mode 100644
index 253fa61..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/CommandException.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.common;
-
-/**
- * Signals that an exception occured within the command architecture.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @noextend This class is not intended to be subclassed by clients.
- */
-public abstract class CommandException extends Exception {
-	
-	/**
-	 * Generated serial version UID for this class.
-	 * 
-	 * @since 3.4
-	 */
-	private static final long serialVersionUID = 5389763628699257234L;
-	
-	/**
-	 * This member variable is required here to allow us to compile against JCL
-	 * foundation libraries.  The value may be <code>null</code>.
-	 */
-	private Throwable cause;
-	
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param message
-     *            the detail message; may be <code>null</code>.
-     */
-    public CommandException(final String message) {
-        super(message);
-    }
-
-    /**
-     * Creates a new instance of this class with the specified detail message
-     * and cause.
-     * 
-     * @param message
-     *            the detail message; may be <code>null</code>.
-     * @param cause
-     *            the cause; may be <code>null</code>.
-     */
-    public CommandException(final String message, final Throwable cause) {
-        super(message);
-        // don't pass the cause to super, to allow compilation against JCL Foundation
-        this.cause = cause;
-    }
-    
-    /**
-     * Returns the cause of this throwable or <code>null</code> if the
-     * cause is nonexistent or unknown. 
-     * 
-     * @return the cause or <code>null</code>
-     */
-    public Throwable getCause() {
-        return cause;
-    }
-    
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
deleted file mode 100644
index 7c3406b..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/EventManager.java
+++ /dev/null
@@ -1,106 +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.core.commands.common;
-
-import org.eclipse.core.runtime.ListenerList;
-
-/**
- * <p>
- * A manager to which listeners can be attached. This handles the management of
- * a list of listeners -- optimizing memory and performance. All the methods on
- * this class are guaranteed to be thread-safe.
- * </p>
- * <p>
- * Clients may extend.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class EventManager {
-
-	/**
-	 * An empty array that can be returned from a call to
-	 * {@link #getListeners()} when {@link #listenerList} is <code>null</code>.
-	 */
-	private static final Object[] EMPTY_ARRAY = new Object[0];
-
-	/**
-	 * A collection of objects listening to changes to this manager. This
-	 * collection is <code>null</code> if there are no listeners.
-	 */
-	private transient ListenerList listenerList = null;
-
-	/**
-	 * Adds a listener to this manager that will be notified when this manager's
-	 * state changes.
-	 * 
-	 * @param listener
-	 *            The listener to be added; must not be <code>null</code>.
-	 */
-	protected synchronized final void addListenerObject(final Object listener) {
-		if (listenerList == null) {
-			listenerList = new ListenerList(ListenerList.IDENTITY);
-		}
-
-		listenerList.add(listener);
-	}
-
-	/**
-	 * Clears all of the listeners from the listener list.
-	 */
-	protected synchronized final void clearListeners() {
-		if (listenerList != null) {
-			listenerList.clear();
-		}
-	}
-
-	/**
-	 * Returns the listeners attached to this event manager.
-	 * 
-	 * @return The listeners currently attached; may be empty, but never
-	 *         <code>null</code>
-	 */
-	protected final Object[] getListeners() {
-		final ListenerList list = listenerList;
-		if (list == null) {
-			return EMPTY_ARRAY;
-		}
-
-		return list.getListeners();
-	}
-
-	/**
-	 * Whether one or more listeners are attached to the manager.
-	 * 
-	 * @return <code>true</code> if listeners are attached to the manager;
-	 *         <code>false</code> otherwise.
-	 */
-	protected final boolean isListenerAttached() {
-		return listenerList != null;
-	}
-
-	/**
-	 * Removes a listener from this manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	protected synchronized final void removeListenerObject(final Object listener) {
-		if (listenerList != null) {
-			listenerList.remove(listener);
-
-			if (listenerList.isEmpty()) {
-				listenerList = null;
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java
deleted file mode 100644
index bd01ede..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObject.java
+++ /dev/null
@@ -1,172 +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.core.commands.common;
-
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * An object that can exist in one of two states: defined and undefined. This is
- * used by APIs that want to give a handle to an object, even though the object
- * does not fully exist yet. This way, users can attach listeners to objects
- * before they come into existence. It also protects the API from users that do
- * not release references when they should.
- * </p>
- * <p>
- * To enforce good coding practice, all handle objects must implement
- * <code>equals</code> and <code>toString</code>. Please use
- * <code>string</code> to cache the result for <code>toString</code> once
- * calculated.
- * </p>
- * <p>
- * All handle objects are referred to using a single identifier. This identifier
- * is a instance of <code>String</code>. It is important that this identifier
- * remain unique within whatever context that handle object is being used. For
- * example, there should only ever be one instance of <code>Command</code>
- * with a given identifier.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class HandleObject extends EventManager implements
-		IIdentifiable {
-
-	/**
-	 * The constant integer hash code value meaning the hash code has not yet
-	 * been computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-	
-    /**
-     * A factor for computing the hash code for all schemes.
-     */
-    private static final int HASH_FACTOR = 89;
-
-    /**
-     * The seed for the hash code for all schemes.
-     */
-    private static final int HASH_INITIAL = HandleObject.class.getName()
-            .hashCode();
-
-    /**
-     * Whether this object is defined. A defined object is one that has been
-     * fully initialized. By default, all objects start as undefined.
-     */
-    protected transient boolean defined = false;
-
-    /**
-     * The hash code for this object. This value is computed lazily, and marked
-     * as invalid when one of the values on which it is based changes.
-     */
-    private transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-    /**
-     * The identifier for this object. This identifier should be unique across
-     * all objects of the same type and should never change. This value will
-     * never be <code>null</code>.
-     */
-    protected final String id;
-
-    /**
-     * The string representation of this object. This string is for debugging
-     * purposes only, and is not meant to be displayed to the user. This value
-     * is computed lazily, and is cleared if one of its dependent values
-     * changes.
-     */
-    protected transient String string = null;
-
-    /**
-     * Constructs a new instance of <code>HandleObject</code>.
-     * 
-     * @param id
-     *            The id of this handle; must not be <code>null</code>.
-     */
-    protected HandleObject(final String id) {
-        if (id == null) {
-            throw new NullPointerException(
-                    "Cannot create a handle with a null id"); //$NON-NLS-1$
-        }
-
-        this.id = id;
-    }
-
-    /**
-     * Tests whether this object is equal to another object. A handle object is
-     * only equal to another handle object with the same id and the same class.
-     * 
-     * @param object
-     *            The object with which to compare; may be <code>null</code>.
-     * @return <code>true</code> if the objects are equal; <code>false</code>
-     *         otherwise.
-     */
-	public boolean equals(final Object object) {
-		// Check if they're the same.
-		if (object == this) {
-			return true;
-		}
-
-		// Check if they're the same type.
-		if (!(object instanceof HandleObject)) {
-			return false;
-		}
-
-		// Check each property in turn.
-		final HandleObject handle= (HandleObject) object;
-		return Util.equals(id, handle.id)
-				&& (this.getClass() == handle.getClass());
-	}
-	
-    public final String getId() {
-        return id;
-    }
-
-    /**
-     * Computes the hash code for this object based on the id.
-     * 
-     * @return The hash code for this object.
-     */
-    public final int hashCode() {
-        if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL * HASH_FACTOR + Util.hashCode(id);
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-		return hashCode;
-    }
-
-    /**
-     * Whether this instance is defined. A defined instance is one that has been
-     * fully initialized. This allows objects to effectively disappear even
-     * though other objects may still have references to them.
-     * 
-     * @return <code>true</code> if this object is defined; <code>false</code>
-     *         otherwise.
-     */
-    public final boolean isDefined() {
-        return defined;
-    }
-
-    /**
-     * The string representation of this object -- for debugging purposes only.
-     * This string should not be shown to an end user.
-     * 
-     * @return The string representation; never <code>null</code>.
-     */
-    public abstract String toString();
-
-    /**
-     * Makes this object becomes undefined. This method should make any defined
-     * properties <code>null</code>. It should also send notification to any
-     * listeners that these properties have changed.
-     */
-    public abstract void undefine();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java
deleted file mode 100644
index c6071b0..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/HandleObjectManager.java
+++ /dev/null
@@ -1,83 +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.core.commands.common;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * <p>
- * A manager of {@link HandleObject} instances. This has some common behaviour
- * which is shared between all such managers.
- * </p>
- * <p>
- * Clients may extend.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class HandleObjectManager extends EventManager {
-
-	/**
-	 * The set of handle objects that are defined. This value may be empty, but
-	 * it is never <code>null</code>.
-	 */
-	protected final Set definedHandleObjects = new HashSet();
-
-	/**
-	 * The map of identifiers (<code>String</code>) to handle objects (
-	 * <code>HandleObject</code>). This collection may be empty, but it is
-	 * never <code>null</code>.
-	 */
-	protected final Map handleObjectsById = new HashMap();
-
-	/**
-	 * Verifies that the identifier is valid. Exceptions will be thrown if the
-	 * identifier is invalid in some way.
-	 * 
-	 * @param id
-	 *            The identifier to validate; may be anything.
-	 */
-	protected final void checkId(final String id) {
-		if (id == null) {
-			throw new NullPointerException(
-					"A handle object may not have a null identifier"); //$NON-NLS-1$
-		}
-
-		if (id.length() < 1) {
-			throw new IllegalArgumentException(
-					"The handle object must not have a zero-length identifier"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Returns the set of identifiers for those handle objects that are defined.
-	 * 
-	 * @return The set of defined handle object identifiers; this value may be
-	 *         empty, but it is never <code>null</code>.
-	 */
-	protected final Set getDefinedHandleObjectIds() {
-		final HashSet definedHandleObjectIds = new HashSet(definedHandleObjects
-				.size());
-		final Iterator handleObjectItr = definedHandleObjects.iterator();
-		while (handleObjectItr.hasNext()) {
-			final HandleObject handleObject = (HandleObject) handleObjectItr
-					.next();
-			final String id = handleObject.getId();
-			definedHandleObjectIds.add(id);
-		}
-		return definedHandleObjectIds;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java
deleted file mode 100644
index d8b0fa7..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/IIdentifiable.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-/**
- * <p>
- * An object that is unique identifiable based on the combination of its class
- * and its identifier.
- * </p>
- * 
- * @see HandleObject
- * @since 3.2
- */
-public interface IIdentifiable {
-
-    /**
-     * Returns the identifier for this object.
-     * 
-     * @return The identifier; never <code>null</code>.
-     */
-	String getId();
-}
-
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java
deleted file mode 100644
index c20c79c..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObject.java
+++ /dev/null
@@ -1,78 +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.core.commands.common;
-
-/**
- * A handle object that carries with it a name and a description. This type of
- * handle object is quite common across the commands code base. For example,
- * <code>Command</code>, <code>Context</code> and <code>Scheme</code>.
- * 
- * @since 3.1
- */
-public abstract class NamedHandleObject extends HandleObject {
-
-	/**
-	 * The description for this handle. This value may be <code>null</code> if
-	 * the handle is undefined or has no description.
-	 */
-	protected String description = null;
-
-	/**
-	 * The name of this handle. This valud should not be <code>null</code>
-	 * unless the handle is undefined.
-	 */
-	protected String name = null;
-
-	/**
-	 * Constructs a new instance of <code>NamedHandleObject</code>.
-	 * 
-	 * @param id
-	 *            The identifier for this handle; must not be <code>null</code>.
-	 */
-	protected NamedHandleObject(final String id) {
-		super(id);
-	}
-
-	/**
-	 * Returns the description for this handle.
-	 * 
-	 * @return The description; may be <code>null</code> if there is no
-	 *         description.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public String getDescription() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get a description from an undefined object. " //$NON-NLS-1$
-					+ id);
-		}
-
-		return description;
-	}
-
-	/**
-	 * Returns the name for this handle.
-	 * 
-	 * @return The name for this handle; never <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the handle is not currently defined.
-	 */
-	public String getName() throws NotDefinedException {
-		if (!isDefined()) {
-			throw new NotDefinedException(
-					"Cannot get the name from an undefined object. " //$NON-NLS-1$
-					+ id);
-		}
-
-		return name;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java
deleted file mode 100644
index e2a54c1..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NamedHandleObjectComparator.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.common;
-
-import java.util.Comparator;
-
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * Comparator for instances of <code>NamedHandleObject</code> for display to
- * an end user. The comparison is based on the name of the instances.
- * 
- * @since 3.2
- */
-public class NamedHandleObjectComparator implements Comparator {
-
-	/**
-	 * Compares to instances of NamedHandleObject based on their names. This is
-	 * useful is they are display to an end user.
-	 * 
-	 * @param left
-	 *            The first obect to compare; may be <code>null</code>.
-	 * @param right
-	 *            The second object to compare; may be <code>null</code>.
-	 * @return <code>-1</code> if <code>left</code> is <code>null</code>
-	 *         and <code>right</code> is not <code>null</code>;
-	 *         <code>0</code> if they are both <code>null</code>;
-	 *         <code>1</code> if <code>left</code> is not <code>null</code>
-	 *         and <code>right</code> is <code>null</code>. Otherwise, the
-	 *         result of <code>left.compareTo(right)</code>.
-	 */
-	public final int compare(final Object left, final Object right) {
-		final NamedHandleObject a = (NamedHandleObject) left;
-		final NamedHandleObject b = (NamedHandleObject) right;
-
-		String aName = null;
-		try {
-			aName = a.getName();
-		} catch (final NotDefinedException e) {
-			// Leave aName as null.
-		}
-		String bName = null;
-		try {
-			bName = b.getName();
-		} catch (final NotDefinedException e) {
-			// Leave bName as null.
-		}
-
-		return Util.compare(aName, bName);
-	}
-}
-
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java
deleted file mode 100644
index 349209a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/NotDefinedException.java
+++ /dev/null
@@ -1,40 +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.core.commands.common;
-
-/**
- * Signals that an attempt was made to access the properties of an undefined
- * object.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class NotDefinedException extends CommandException {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3257572788998124596L;
-
-    /**
-     * Creates a new instance of this class with the specified detail message.
-     * 
-     * @param s
-     *            the detail message; may be <code>null</code>.
-     */
-    public NotDefinedException(final String s) {
-        super(s);
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html
deleted file mode 100644
index 357bc22..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/common/package.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Package-level Javadoc</title>
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
-	type="text/css">
-</head>
-<body style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0)">
-Application programming interfaces for common base classes.
-<h2>Package Specification</h2>
-<p>
-This package provides some common base classes and exceptions that are used in
-one or more packages elsewhere.  Nothing in this package is intended to be
-directly subclassed, or used.  The code here only supports code in other
-packages.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java
deleted file mode 100644
index 75796f6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/Context.java
+++ /dev/null
@@ -1,284 +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.core.commands.contexts;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A context is an answer to the question "when". Other services can listen for
- * the activation and deactivation of contexts, and change their own state in
- * response to these changes. For example, Eclipse's key binding service listens
- * to context activation and deactivation to determine which key bindings should
- * be active.
- * </p>
- * <p>
- * An instance of this interface can be obtained from an instance of
- * <code>ContextManager</code> for any identifier, whether or not an context
- * with that identifier is defined in the extension registry.
- * </p>
- * <p>
- * The handle-based nature of this API allows it to work well with runtime
- * plugin activation and deactivation. If a context is defined, that means that
- * its corresponding plug-in is active. If the plug-in is then deactivated, the
- * context will still exist but it will be undefined. An attempts to use an
- * undefined context will result in a <code>NotDefinedException</code> being
- * thrown.
- * </p>
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ContextManager
- */
-public final class Context extends NamedHandleObject implements Comparable {
-
-    /**
-     * The collection of all objects listening to changes on this context. This
-     * value is <code>null</code> if there are no listeners.
-     */
-    private Set listeners = null;
-
-    /**
-     * The parent identifier for this context. The meaning of a parent is
-     * dependent on the system using contexts. This value can be
-     * <code>null</code> if the context has no parent.
-     */
-    private String parentId = null;
-
-    /**
-     * Constructs a new instance of <code>Context</code>.
-     * 
-     * @param id
-     *            The id for this context; must not be <code>null</code>.
-     */
-    Context(final String id) {
-        super(id);
-    }
-
-    /**
-     * Registers an instance of <code>IContextListener</code> to listen for
-     * changes to properties of this instance.
-     * 
-     * @param listener
-     *            the instance to register. Must not be <code>null</code>. If
-     *            an attempt is made to register an instance which is already
-     *            registered with this instance, no operation is performed.
-     */
-    public final void addContextListener(final IContextListener listener) {
-        if (listener == null) {
-            throw new NullPointerException();
-        }
-
-        if (listeners == null) {
-            listeners = new HashSet();
-        }
-
-        listeners.add(listener);
-    } 
-    
-    /* (non-Javadoc)
-     * @see java.lang.Comparable#compareTo(java.lang.Object)
-     */
-    public final int compareTo(final Object object) {
-        final Context scheme = (Context) object;
-        int compareTo = Util.compare(this.id, scheme.id);
-        if (compareTo == 0) {
-            compareTo = Util.compare(this.name, scheme.name);
-            if (compareTo == 0) {
-                compareTo = Util.compare(this.parentId, scheme.parentId);
-                if (compareTo == 0) {
-                    compareTo = Util.compare(this.description,
-                            scheme.description);
-                    if (compareTo == 0) {
-                        compareTo = Util.compare(this.defined, scheme.defined);
-                    }
-                }
-            }
-        }
-
-        return compareTo;
-    }
-
-    /**
-     * <p>
-     * Defines this context by giving it a name, and possibly a description and
-     * a parent identifier as well. The defined property automatically becomes
-     * <code>true</code>.
-     * </p>
-     * <p>
-     * Notification is sent to all listeners that something has changed.
-     * </p>
-     * 
-     * @param name
-     *            The name of this context; must not be <code>null</code>.
-     * @param description
-     *            The description for this context; may be <code>null</code>.
-     * @param parentId
-     *            The parent identifier for this context; may be
-     *            <code>null</code>.
-     */
-    public final void define(final String name, final String description,
-            final String parentId) {
-        if (name == null) {
-            throw new NullPointerException(
-                    "The name of a scheme cannot be null"); //$NON-NLS-1$
-        }
-
-        final boolean definedChanged = !this.defined;
-        this.defined = true;
-
-        final boolean nameChanged = !Util.equals(this.name, name);
-        this.name = name;
-
-        final boolean descriptionChanged = !Util.equals(this.description,
-                description);
-        this.description = description;
-
-        final boolean parentIdChanged = !Util.equals(this.parentId, parentId);
-        this.parentId = parentId;
-
-        fireContextChanged(new ContextEvent(this, definedChanged, nameChanged,
-                descriptionChanged, parentIdChanged));
-    }
-
-    /**
-     * Notifies all listeners that this context has changed. This sends the
-     * given event to all of the listeners, if any.
-     * 
-     * @param event
-     *            The event to send to the listeners; must not be
-     *            <code>null</code>.
-     */
-    private final void fireContextChanged(final ContextEvent event) {
-        if (event == null) {
-            throw new NullPointerException(
-                    "Cannot send a null event to listeners."); //$NON-NLS-1$
-        }
-
-        if (listeners == null) {
-            return;
-        }
-
-        final Iterator listenerItr = listeners.iterator();
-        while (listenerItr.hasNext()) {
-            final IContextListener listener = (IContextListener) listenerItr
-                    .next();
-            listener.contextChanged(event);
-        }
-    }
-
-    /**
-     * Returns the identifier of the parent of this instance.
-     * <p>
-     * Notification is sent to all registered listeners if this property
-     * changes.
-     * </p>
-     * 
-     * @return the identifier of the parent of this instance. May be
-     *         <code>null</code>.
-     * @throws NotDefinedException
-     *             if this instance is not defined.
-     */
-    public final String getParentId() throws NotDefinedException {
-        if (!defined) {
-            throw new NotDefinedException(
-                    "Cannot get the parent identifier from an undefined context. " //$NON-NLS-1$
-            		+id);
-        }
-
-        return parentId;
-    }
-
-    /**
-     * Unregisters an instance of <code>IContextListener</code> listening for
-     * changes to properties of this instance.
-     * 
-     * @param contextListener
-     *            the instance to unregister. Must not be <code>null</code>.
-     *            If an attempt is made to unregister an instance which is not
-     *            already registered with this instance, no operation is
-     *            performed.
-     */
-    public final void removeContextListener(
-            final IContextListener contextListener) {
-        if (contextListener == null) {
-            throw new NullPointerException("Cannot remove a null listener."); //$NON-NLS-1$
-        }
-
-        if (listeners == null) {
-            return;
-        }
-
-        listeners.remove(contextListener);
-
-        if (listeners.isEmpty()) {
-            listeners = null;
-        }
-    }
-
-    /**
-     * The string representation of this context -- for debugging purposes only.
-     * This string should not be shown to an end user.
-     * 
-     * @return The string representation; never <code>null</code>.
-     */
-    public final String toString() {
-        if (string == null) {
-            final StringBuffer stringBuffer = new StringBuffer();
-            stringBuffer.append("Context("); //$NON-NLS-1$
-            stringBuffer.append(id);
-            stringBuffer.append(',');
-            stringBuffer.append(name);
-            stringBuffer.append(',');
-            stringBuffer.append(description);
-            stringBuffer.append(',');
-            stringBuffer.append(parentId);
-            stringBuffer.append(',');
-            stringBuffer.append(defined);
-            stringBuffer.append(')');
-            string = stringBuffer.toString();
-        }
-        return string;
-    }
-
-    /**
-     * Makes this context become undefined. This has the side effect of changing
-     * the name, description and parent identifier to <code>null</code>.
-     * Notification is sent to all listeners.
-     */
-    public final void undefine() {
-        string = null;
-
-        final boolean definedChanged = defined;
-        defined = false;
-
-        final boolean nameChanged = name != null;
-        name = null;
-
-        final boolean descriptionChanged = description != null;
-        description = null;
-
-        final boolean parentIdChanged = parentId != null;
-        parentId = null;
-
-        fireContextChanged(new ContextEvent(this, definedChanged, nameChanged,
-                descriptionChanged, parentIdChanged));
-    }
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java
deleted file mode 100644
index d1dd2a7..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextEvent.java
+++ /dev/null
@@ -1,86 +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.core.commands.contexts;
-
-import org.eclipse.core.commands.common.AbstractNamedHandleEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>IContext</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see IContextListener#contextChanged(ContextEvent)
- */
-public final class ContextEvent extends AbstractNamedHandleEvent {
-
-	/**
-	 * The bit used to represent whether the context has changed its parent.
-	 */
-	private static final int CHANGED_PARENT_ID = LAST_USED_BIT << 1;
-
-	/**
-	 * The context that has changed. This value is never <code>null</code>.
-	 */
-	private final Context context;
-
-	/**
-     * Creates a new instance of this class.
-     * 
-     * @param context
-     *            the instance of the interface that changed; must not be
-     *            <code>null</code>.
-     * @param definedChanged
-     *            <code>true</code>, iff the defined property changed.
-     * @param nameChanged
-     *            <code>true</code>, iff the name property changed.
-     * @param descriptionChanged
-     *            <code>true</code>, iff the description property changed.
-     * @param parentIdChanged
-     *            <code>true</code>, iff the parentId property changed.
-     */
-	public ContextEvent(final Context context, final boolean definedChanged,
-			final boolean nameChanged, final boolean descriptionChanged,
-			final boolean parentIdChanged) {
-		super(definedChanged, descriptionChanged, nameChanged);
-		
-		if (context == null) {
-			throw new NullPointerException();
-		}
-		this.context = context;
-		
-		if (parentIdChanged) {
-			changedValues |= CHANGED_PARENT_ID;
-		}
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final Context getContext() {
-		return context;
-	}
-
-	/**
-	 * Returns whether or not the parentId property changed.
-	 * 
-	 * @return <code>true</code>, iff the parentId property changed.
-	 */
-	public final boolean isParentIdChanged() {
-		return ((changedValues & CHANGED_PARENT_ID) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java
deleted file mode 100644
index d2cf9c7..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManager.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.core.commands.contexts;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.HandleObjectManager;
-import org.eclipse.core.commands.util.Tracing;
-import org.eclipse.core.internal.commands.util.Util;
-
-/**
- * <p>
- * A context manager tracks the sets of defined and enabled contexts within the
- * application. The manager sends notification events to listeners when these
- * sets change. It is also possible to retrieve any given context with its
- * identifier.
- * </p>
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class ContextManager extends HandleObjectManager implements
-		IContextListener {
-	
-	/**
-	 * This flag can be set to <code>true</code> if the context manager should
-	 * print information to <code>System.out</code> when certain boundary
-	 * conditions occur.
-	 */
-	public static boolean DEBUG = false;
-
-	/**
-	 * The set of active context identifiers. This value may be empty, but it is
-	 * never <code>null</code>.
-	 */
-	private Set activeContextIds = new HashSet();
-
-	// allow the ContextManager to send one event for a larger delta
-	private boolean caching = false;
-	
-	private int cachingRef = 0;
-
-	private boolean activeContextsChange = false;
-	
-	private Set oldIds = null;
-
-	/**
-	 * Informs the manager that a batch operation has started.
-	 * <p>
-	 * <b>Note:</b> You must insure that if you call
-	 * <code>deferUpdates(true)</code> that nothing in your batched operation
-	 * will prevent the matching call to <code>deferUpdates(false)</code>.
-	 * </p>
-	 * 
-	 * @param defer
-	 *            true when starting a batch operation false when ending the
-	 *            operation
-	 * 
-	 * @since 3.5
-	 */
-	public void deferUpdates(boolean defer) {
-		if(defer) {
-			cachingRef++;
-			if (cachingRef==1) {
-				setEventCaching(true);
-			}
-		}else {
-			cachingRef--;
-			if (cachingRef==0) {
-				setEventCaching(false);
-			}
-		}
-	}
-	
-	
-	/**
-	 * Activates a context in this context manager.
-	 * 
-	 * @param contextId
-	 *            The identifier of the context to activate; must not be
-	 *            <code>null</code>.
-	 */
-	public final void addActiveContext(final String contextId) {
-		
-		if (activeContextIds.contains(contextId)) {
-			return;
-		}
-		activeContextsChange = true;
-
-		if (caching) {
-			activeContextIds.add(contextId);
-		} else {
-			final Set previouslyActiveContextIds = new HashSet(activeContextIds);
-			activeContextIds.add(contextId);
-
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, previouslyActiveContextIds));
-		}
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", activeContextIds.toString()); //$NON-NLS-1$
-		}
-
-	}
-
-	/**
-	 * Adds a listener to this context manager. The listener will be notified
-	 * when the set of defined contexts changes. This can be used to track the
-	 * global appearance and disappearance of contexts.
-	 * 
-	 * @param listener
-	 *            The listener to attach; must not be <code>null</code>.
-	 */
-	public final void addContextManagerListener(
-			final IContextManagerListener listener) {
-		addListenerObject(listener);
-	}
-
-	public final void contextChanged(final ContextEvent contextEvent) {
-		if (contextEvent.isDefinedChanged()) {
-			final Context context = contextEvent.getContext();
-			final String contextId = context.getId();
-			final boolean contextIdAdded = context.isDefined();
-			if (contextIdAdded) {
-				definedHandleObjects.add(context);
-			} else {
-				definedHandleObjects.remove(context);
-			}
-			if (isListenerAttached()) {
-				fireContextManagerChanged(new ContextManagerEvent(this,
-						contextId, contextIdAdded, false, null));
-			}
-		}
-	}
-
-	/**
-	 * Notifies all of the listeners to this manager that the set of defined
-	 * context identifiers has changed.
-	 * 
-	 * @param event
-	 *            The event to send to all of the listeners; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireContextManagerChanged(final ContextManagerEvent event) {
-		if (event == null) {
-			throw new NullPointerException();
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IContextManagerListener listener = (IContextManagerListener) listeners[i];
-			listener.contextManagerChanged(event);
-		}
-	}
-
-	/**
-	 * Returns the set of active context identifiers.
-	 * 
-	 * @return The set of active context identifiers; this value may be
-	 *         <code>null</code> if no active contexts have been set yet. If
-	 *         the set is not <code>null</code>, then it contains only
-	 *         instances of <code>String</code>.
-	 */
-	public final Set getActiveContextIds() {
-		return Collections.unmodifiableSet(activeContextIds);
-	}
-
-	/**
-	 * Gets the context with the given identifier. If no such context currently
-	 * exists, then the context will be created (but be undefined).
-	 * 
-	 * @param contextId
-	 *            The identifier to find; must not be <code>null</code>.
-	 * @return The context with the given identifier; this value will never be
-	 *         <code>null</code>, but it might be undefined.
-	 * @see Context
-	 */
-	public final Context getContext(final String contextId) {
-		checkId(contextId);
-
-		Context context = (Context) handleObjectsById.get(contextId);
-		if (context == null) {
-			context = new Context(contextId);
-			handleObjectsById.put(contextId, context);
-			context.addContextListener(this);
-		}
-
-		return context;
-	}
-
-	/**
-	 * Returns the set of identifiers for those contexts that are defined.
-	 * 
-	 * @return The set of defined context identifiers; this value may be empty,
-	 *         but it is never <code>null</code>.
-	 */
-	public final Set getDefinedContextIds() {
-		return getDefinedHandleObjectIds();
-	}
-
-	/**
-	 * Returns the those contexts that are defined.
-	 * 
-	 * @return The defined contexts; this value may be empty, but it is never
-	 *         <code>null</code>.
-	 * @since 3.2
-	 */
-	public final Context[] getDefinedContexts() {
-		return (Context[]) definedHandleObjects
-				.toArray(new Context[definedHandleObjects.size()]);
-	}
-
-	/**
-	 * Deactivates a context in this context manager.
-	 * 
-	 * @param contextId
-	 *            The identifier of the context to deactivate; must not be
-	 *            <code>null</code>.
-	 */
-	public final void removeActiveContext(final String contextId) {
-		if (!activeContextIds.contains(contextId)) {
-			return;
-		}
-
-		activeContextsChange = true;
-		if (caching) {
-			activeContextIds.remove(contextId);
-		} else {
-			final Set previouslyActiveContextIds = new HashSet(activeContextIds);
-			activeContextIds.remove(contextId);
-
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, previouslyActiveContextIds));
-		}
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", activeContextIds.toString()); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Removes a listener from this context manager.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	public final void removeContextManagerListener(
-			final IContextManagerListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * Changes the set of active contexts for this context manager. The whole
-	 * set is required so that internal consistency can be maintained and so
-	 * that excessive recomputations do nothing occur.
-	 * 
-	 * @param activeContextIds
-	 *            The new set of active context identifiers; may be
-	 *            <code>null</code>.
-	 */
-	public final void setActiveContextIds(final Set activeContextIds) {
-		if (Util.equals(this.activeContextIds, activeContextIds)) {
-			return;
-		}
-
-		activeContextsChange = true;
-		
-		final Set previouslyActiveContextIds = this.activeContextIds;
-		if (activeContextIds != null) {
-			this.activeContextIds = new HashSet();
-			this.activeContextIds.addAll(activeContextIds);
-		} else {
-			this.activeContextIds = null;
-		}
-
-		if (DEBUG) {
-			Tracing.printTrace("CONTEXTS", (activeContextIds == null) ? "none" //$NON-NLS-1$ //$NON-NLS-2$
-					: activeContextIds.toString());
-		}
-
-		if (!caching) {
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, previouslyActiveContextIds));
-		}
-	}
-	
-	/**
-	 * Set the manager to cache context id changes.
-	 * 
-	 * @param cache
-	 *            <code>true</code> to turn caching on, <code>false</code>
-	 *            to turn caching off and send an event if necessary.
-	 * @since 3.3
-	 */
-	private void setEventCaching(boolean cache) {
-		if (caching == cache) {
-			return;
-		}
-		caching = cache;
-		boolean fireChange = activeContextsChange;
-		Set holdOldIds = (oldIds==null?Collections.EMPTY_SET:oldIds);
-		
-		if (caching) {
-			oldIds = new HashSet(activeContextIds);
-		} else {
-			oldIds = null;
-		}
-		activeContextsChange = false;
-
-		if (!caching && fireChange) {
-			fireContextManagerChanged(new ContextManagerEvent(this, null,
-					false, true, holdOldIds));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java
deleted file mode 100644
index e5dfa5d..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/ContextManagerEvent.java
+++ /dev/null
@@ -1,164 +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.core.commands.contexts;
-
-import java.util.Set;
-
-import org.eclipse.core.commands.common.AbstractBitSetEvent;
-
-/**
- * <p>
- * An event indicating that the set of defined context identifiers has changed.
- * </p>
- * 
- * @since 3.1
- * @see IContextManagerListener#contextManagerChanged(ContextManagerEvent)
- */
-public final class ContextManagerEvent extends AbstractBitSetEvent {
-
-	/**
-	 * The bit used to represent whether the set of defined contexts has
-	 * changed.
-	 */
-	private static final int CHANGED_CONTEXT_DEFINED = 1 << 1;
-
-	/**
-	 * The bit used to represent whether the set of active contexts has changed.
-	 */
-	private static final int CHANGED_CONTEXTS_ACTIVE = 1;
-
-	/**
-	 * The context identifier that was added or removed from the list of defined
-	 * context identifiers.
-	 */
-	private final String contextId;
-
-	/**
-	 * The context manager that has changed.
-	 */
-	private final ContextManager contextManager;
-
-	/**
-	 * The set of context identifiers (strings) that were active before the
-	 * change occurred. If the active contexts did not changed, then this value
-	 * is <code>null</code>.
-	 */
-	private final Set previouslyActiveContextIds;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param contextManager
-	 *            the instance of the interface that changed; must not be
-	 *            <code>null</code>.
-	 * @param contextId
-	 *            The context identifier that was added or removed; may be
-	 *            <code>null</code> if the active contexts are changing.
-	 * @param contextIdAdded
-	 *            Whether the context identifier became defined (otherwise, it
-	 *            became undefined).
-	 * @param activeContextsChanged
-	 *            Whether the list of active contexts has changed.
-	 * @param previouslyActiveContextIds
-	 *            the set of identifiers of previously active contexts. This set
-	 *            may be empty. If this set is not empty, it must only contain
-	 *            instances of <code>String</code>. This set must be
-	 *            <code>null</code> if activeContextChanged is
-	 *            <code>false</code> and must not be null if
-	 *            activeContextChanged is <code>true</code>.
-	 */
-	public ContextManagerEvent(final ContextManager contextManager,
-			final String contextId, final boolean contextIdAdded,
-			final boolean activeContextsChanged,
-			final Set previouslyActiveContextIds) {
-		if (contextManager == null) {
-			throw new NullPointerException();
-		}
-
-		this.contextManager = contextManager;
-		this.contextId = contextId;
-		this.previouslyActiveContextIds = previouslyActiveContextIds;
-
-		if (contextIdAdded) {
-			changedValues |= CHANGED_CONTEXT_DEFINED;
-		}
-		if (activeContextsChanged) {
-			changedValues |= CHANGED_CONTEXTS_ACTIVE;
-		}
-	}
-
-	/**
-	 * Returns the context identifier that was added or removed.
-	 * 
-	 * @return The context identifier that was added or removed. This value may
-	 *         be <code>null</code> if no context identifier was added or
-	 *         removed.
-	 */
-	public final String getContextId() {
-		return contextId;
-	}
-
-	/**
-	 * Returns the instance of the interface that changed.
-	 * 
-	 * @return the instance of the interface that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final ContextManager getContextManager() {
-		return contextManager;
-	}
-
-	/**
-     * Returns the set of identifiers to previously active contexts.
-     * 
-     * @return the set of identifiers to previously active contexts. This set
-     *         may be empty. If this set is not empty, it is guaranteed to only
-     *         contain instances of <code>String</code>. This set is
-     *         guaranteed to be <code>null</code> if
-     *         haveActiveContextChanged() is <code>false</code> and is
-     *         guaranteed to not be <code>null</code> if
-     *         haveActiveContextsChanged() is <code>true</code>.
-     */
-	public final Set getPreviouslyActiveContextIds() {
-		return previouslyActiveContextIds;
-	}
-
-	/**
-	 * Returns whether the active context identifiers have changed.
-	 * 
-	 * @return <code>true</code> if the collection of active contexts changed;
-	 *         <code>false</code> otherwise.
-	 */
-	public final boolean isActiveContextsChanged() {
-		return ((changedValues & CHANGED_CONTEXTS_ACTIVE) != 0);
-	}
-
-	/**
-	 * Returns whether the list of defined context identifiers has changed.
-	 * 
-	 * @return <code>true</code> if the list of context identifiers has
-	 *         changed; <code>false</code> otherwise.
-	 */
-	public final boolean isContextChanged() {
-		return (contextId != null);
-	}
-
-	/**
-	 * Returns whether the context identifier became defined. Otherwise, the
-	 * context identifier became undefined.
-	 * 
-	 * @return <code>true</code> if the context identifier became defined;
-	 *         <code>false</code> if the context identifier became undefined.
-	 */
-	public final boolean isContextDefined() {
-		return (((changedValues & CHANGED_CONTEXT_DEFINED) != 0) && (contextId != null));
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.java
deleted file mode 100644
index fe3f2e7..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextListener.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.core.commands.contexts;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>IContext</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see Context#addContextListener(IContextListener)
- * @see Context#removeContextListener(IContextListener)
- */
-public interface IContextListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>IContext</code> have changed. Specific details are described in
-     * the <code>ContextEvent</code>.
-     * 
-     * @param contextEvent
-     *            the context event. Guaranteed not to be <code>null</code>.
-     */
-    void contextChanged(ContextEvent contextEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.java
deleted file mode 100644
index 5d23a34..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/IContextManagerListener.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.core.commands.contexts;
-
-/**
- * An instance of this interface can be used by clients to receive notification
- * of changes to one or more instances of <code>IContextManager</code>.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see ContextManager#addContextManagerListener(IContextManagerListener)
- * @see ContextManager#removeContextManagerListener(IContextManagerListener)
- */
-public interface IContextManagerListener {
-
-    /**
-     * Notifies that one or more properties of an instance of
-     * <code>IContextManager</code> have changed. Specific details are
-     * described in the <code>ContextManagerEvent</code>.
-     * 
-     * @param contextManagerEvent
-     *            the context manager event. Guaranteed not to be
-     *            <code>null</code>.
-     */
-    void contextManagerChanged(ContextManagerEvent contextManagerEvent);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html
deleted file mode 100644
index f5d4ceb..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/contexts/package.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Package-level Javadoc</title>
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
-	type="text/css">
-</head>
-<body style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0)">
-Application programming interfaces for contexts.
-<h2>Package Specification</h2>
-<p>
-This package provides API and implementation classes to define abstract
-representations of application state.  These representations of application
-state can be used as an abstraction of the event-listener model -- where
-different sections of code do not (or cannot) refer to each directly.
-</p>
-<p>
-This package is designed so that its elements can be public and dynamic.  That
-is, elements in this package can appear and disappear over the life of the
-application.
-</p>
-<h3>Context</h3>
-<p>
-A context is an answer to the question, "When?"  For example, there might be a
-context called "server running".  When the server is running, then that context
-would be active.  If a program module other than the server wants to test for
-this, they can simply check to see if the context is active.  This allows the
-two program modules to be decoupled from each other.  In fact, a different
-server module could be dropped in place of the first.
-</p>
-<p>
-Contexts are managed by an instance of <code>ContextManager</code>.  In fact, a
-context cannot be constructed directly.  Contexts are constructed using the
-method <code>ContextManager.getContext(String)</code>.  This ensures that there
-is only ever one context with a given identifier ever associated with a context
-manager.
-</p>
-<p>
-When a context is first constructed, it is undefined.  An undefined context is
-one that is carrying no information except for an id.  Attempts to interact
-with a context that is undefined will result in a 
-<code>NotDefinedException</code>.  Through this mechanism, it is possible for
-clients to hold references to contexts, and still have those contexts
-"disappear" (i.e., become undefined).  This is particularly useful in a system
-built around dynamic components (e.g., plug-ins).
-</p>
-<p>
-It is also possible to attach listeners to both contexts and context managers.
-A listener on a context manager will be notified if the list of defined
-contexts changes.
-</p>
-<h4>Examples</h4>
-<blockquote><pre><code>
-	ContextManager manager = new ContextManager();
-	Context context = manager.getContext("contextId");
-	context.define("name", "description", null);
-</code></pre></blockquote>
-<p>
-This example shows how to create a context from scratch -- with no existing
-manager.
-</p>
-<blockquote><pre><code>
-	context.undefine();
-	context = null;
-</code></pre></blockquote>
-<p>
-If you wish to get rid of the context, then you simply undefine it.  This
-will send notification to the appropriate listeners, and future attempts to
-access it will fail.  If you are the only one holding on to the context, then
-it will be garbage collected.  However, if other people still have a reference
-to the context, then the stub will remain until they respond to the change.
-</p>
-<blockquote><pre><code>
-	String name;
-	try {
-		name = context.getName();
-	} catch (NotDefinedException e) {
-		// Clean-up my reference to the context.
-		context = null;
-		return;
-	}
-</code></pre></blockquote>
-<p>
-This shows one way of dealing with contexts.  Instead of listening for
-changes to the contexts, you can simply listen for the exceptions to be thrown.
-When a <code>NotDefinedException</code> is thrown, you can clean up your own
-code.  How you clean up is application dependent.  In this case, the reference
-is cleared and we return from the method.
-</p>
-<blockquote><pre><code>
-	try {
-		String name = context.getName();
-		
-		// Do all your work in the block.
-		
-	} catch (NotDefinedException e) {
-		// Ignore, or possibly throw an error
-	}
-	
-	...
-	
-	public contextChanged(ContextEvent e) {
-		if (e.hasDefinedChanged()) {
-			context.removeListener(this);
-			context = null;
-		}
-	}
-</code></pre></blockquote>
-<p>
-Another way is to attach a listener, and then simply ignore the exceptions.
-When the context becomes undefined, you will be notified.  This gives your the
-opportunity to unhook your listener and release your reference.
-</p>
-<blockquote><pre><code>
-	ContextManager manager = new ContextManager();
-	Context parent = manager.getContext("parentId");
-	parent.define("name", "description", null);
-	Context child = manager.getContext("childId");
-	child.define("name", "description", "parentId");
-</code></pre></blockquote>
-<p>
-Contexts can be related to each other with a parent-child relationship.  How
-your application deals with this is up to you.  In the case of the keyboard
-shortcuts in Eclipse, this is used to allow behaviour attributed to child
-contexts to override behaviour attributed to parent contexts.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java
deleted file mode 100644
index 90ab371..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/AbstractOperation.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * Abstract implementation for an undoable operation. At a minimum, subclasses
- * should implement behavior for
- * {@link IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)},
- * {@link IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)},
- * and
- * {@link IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)}.
- * </p>
- * 
- * @see org.eclipse.core.commands.operations.IUndoableOperation
- * 
- * @since 3.1
- */
-public abstract class AbstractOperation implements IUndoableOperation {
-	List contexts = new ArrayList();
-
-	private String label = ""; //$NON-NLS-1$
-
-	/**
-	 * Construct an operation that has the specified label.
-	 * 
-	 * @param label
-	 *            the label to be used for the operation. Should never be
-	 *            <code>null</code>.
-	 */
-	public AbstractOperation(String label) {
-		Assert.isNotNull(label);
-		this.label = label;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#addContext(org.eclipse.core.commands.operations.IUndoContext)
-	 * 
-	 * <p> Subclasses may override this method. </p>
-	 */
-	public void addContext(IUndoContext context) {
-		if (!contexts.contains(context)) {
-			contexts.add(context);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canExecute()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 * 
-	 */
-	public boolean canExecute() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canRedo()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public boolean canRedo() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canUndo()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public boolean canUndo() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#dispose()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public void dispose() {
-		// nothing to dispose.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public abstract IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	public final IUndoContext[] getContexts() {
-		return (IUndoContext[]) contexts.toArray(new IUndoContext[contexts
-				.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#getLabel()
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Set the label of the operation to the specified name.
-	 * 
-	 * @param name
-	 *            the string to be used for the label. Should never be
-	 *            <code>null</code>.
-	 */
-	public void setLabel(String name) {
-		label = name;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#hasContext(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public final boolean hasContext(IUndoContext context) {
-		Assert.isNotNull(context);
-		for (int i = 0; i < contexts.size(); i++) {
-			IUndoContext otherContext = (IUndoContext) contexts.get(i);
-			// have to check both ways because one context may be more general
-			// in
-			// its matching rules than another.
-			if (context.matches(otherContext) || otherContext.matches(context)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public abstract IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#removeContext(org.eclipse.core.commands.operations.IUndoContext)
-	 *      <p> Default implementation. Subclasses may override this method.
-	 *      </p>
-	 */
-
-	public void removeContext(IUndoContext context) {
-		contexts.remove(context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public abstract IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * The string representation of this operation. Used for debugging purposes
-	 * only. This string should not be shown to an end user.
-	 * 
-	 * @return The string representation.
-	 */
-	public String toString() {
-		final StringBuffer stringBuffer = new StringBuffer();
-		stringBuffer.append(getLabel());
-		stringBuffer.append("("); //$NON-NLS-1$
-		IUndoContext[] contexts = getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			stringBuffer.append(contexts[i].toString());
-			if (i != contexts.length - 1) {
-				stringBuffer.append(',');
-			}
-		}
-		stringBuffer.append(')');
-		return stringBuffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
deleted file mode 100644
index 57450ea..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/DefaultOperationHistory.java
+++ /dev/null
@@ -1,1394 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.util.Tracing;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * A base implementation of IOperationHistory that implements a linear undo and
- * redo model . The most recently added operation is available for undo, and the
- * most recently undone operation is available for redo.
- * </p>
- * <p>
- * If the operation eligible for undo is not in a state where it can be undone,
- * then no undo is available. No other operations are considered. Likewise, if
- * the operation available for redo cannot be redone, then no redo is available.
- * </p>
- * <p>
- * Implementations for the direct undo and redo of a specified operation are
- * available. If a strict linear undo is to be enforced, than an
- * IOperationApprover should be installed that prevents undo and redo of any
- * operation that is not the most recently undone or redone operation in all of
- * its undo contexts.
- * </p>
- * <p>
- * The data structures used by the DefaultOperationHistory are synchronized, and
- * entry points that modify the undo and redo history concurrently are also
- * synchronized. This means that the DefaultOperationHistory is relatively
- * "thread-friendly" in its implementation. Outbound notifications or operation
- * approval requests will occur on the thread that initiated the request.
- * Clients may use DefaultOperationHistory API from any thread; however,
- * listeners or operation approvers that receive notifications from the
- * DefaultOperationHistory must be prepared to receive these notifications from
- * a background thread. Any UI access occurring inside these notifications must
- * be properly synchronized using the techniques specified by the client's
- * widget library.
- * </p>
- * 
- * <p>
- * This implementation is not intended to be subclassed.
- * </p>
- * 
- * @see org.eclipse.core.commands.operations.IOperationHistory
- * @see org.eclipse.core.commands.operations.IOperationApprover
- * 
- * @since 3.1
- */
-public final class DefaultOperationHistory implements IOperationHistory {
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever notifications about
-	 * changes to the history occur. This flag should be used for debug purposes
-	 * only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_NOTIFICATION = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever an unexpected condition
-	 * arises. This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_UNEXPECTED = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever an undo context is
-	 * disposed. This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_DISPOSE = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> during the open/close sequence.
-	 * This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_OPENOPERATION = false;
-
-	/**
-	 * This flag can be set to <code>true</code> if the history should print
-	 * information to <code>System.out</code> whenever an operation is not
-	 * approved. This flag should be used for debug purposes only.
-	 */
-	public static boolean DEBUG_OPERATION_HISTORY_APPROVAL = false;
-
-	static final int DEFAULT_LIMIT = 20;
-
-	/**
-	 * the list of {@link IOperationApprover}s
-	 */
-	ListenerList approvers = new ListenerList(ListenerList.IDENTITY);
-
-	/**
-	 * a map of undo limits per context
-	 */
-	private Map limits = Collections.synchronizedMap(new HashMap());
-
-	/**
-	 * the list of {@link IOperationHistoryListener}s
-	 */
-	ListenerList listeners = new ListenerList(ListenerList.IDENTITY);
-
-	/**
-	 * the list of operations available for redo, LIFO
-	 */
-	private List redoList = Collections.synchronizedList(new ArrayList());
-
-	/**
-	 * the list of operations available for undo, LIFO
-	 */
-	private List undoList = Collections.synchronizedList(new ArrayList());
-
-	/**
-	 * a lock that is used to synchronize access between the undo and redo
-	 * history
-	 */
-	final Object undoRedoHistoryLock = new Object();
-
-	/**
-	 * An operation that is "absorbing" all other operations while it is open.
-	 * When this is not null, other operations added or executed are added to
-	 * this composite.
-	 * 
-	 */
-	private ICompositeOperation openComposite = null;
-
-	/**
-	 * a lock that is used to synchronize access to the open composite.
-	 */
-	final Object openCompositeLock = new Object();
-
-	/**
-	 * Create an instance of DefaultOperationHistory.
-	 */
-	public DefaultOperationHistory() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#add(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void add(IUndoableOperation operation) {
-		Assert.isNotNull(operation);
-
-		/*
-		 * If we are in the middle of executing an open batching operation, and
-		 * this is not that operation, then we need only add the context of the
-		 * new operation to the batch. The operation itself is disposed since we
-		 * will never undo or redo it. We consider it to be triggered by the
-		 * batching operation and assume that its undo will be triggered by the
-		 * batching operation undo.
-		 */
-		synchronized (openCompositeLock) {
-			if (openComposite != null && openComposite != operation) {
-				openComposite.add(operation);
-				return;
-			}
-		}
-
-		if (checkUndoLimit(operation)) {
-			synchronized (undoRedoHistoryLock) {
-				undoList.add(operation);
-			}
-			notifyAdd(operation);
-
-			// flush redo stack for related contexts
-			IUndoContext[] contexts = operation.getContexts();
-			for (int i = 0; i < contexts.length; i++) {
-				flushRedo(contexts[i]);
-			}
-		} else {
-			// Dispose the operation since we will not have a reference to it.
-			operation.dispose();
-		}
-	}
-
-	/**
-	 * <p>
-	 * Add the specified approver to the list of operation approvers consulted
-	 * by the operation history before an undo or redo is allowed to proceed.
-	 * This method has no effect if the instance being added is already in the
-	 * list.
-	 * </p>
-	 * <p>
-	 * Operation approvers must be prepared to receive these the operation
-	 * approval messages from a background thread. Any UI access occurring
-	 * inside the implementation must be properly synchronized using the
-	 * techniques specified by the client's widget library.
-	 * </p>
-	 * 
-	 * @param approver
-	 *            the IOperationApprover to be added as an approver.
-	 * 
-	 */
-
-	public void addOperationApprover(IOperationApprover approver) {
-		approvers.add(approver);
-	}
-
-	/**
-	 * <p>
-	 * Add the specified listener to the list of operation history listeners
-	 * that are notified about changes in the history or operations that are
-	 * executed, undone, or redone. This method has no effect if the instance
-	 * being added is already in the list.
-	 * </p>
-	 * <p>
-	 * Operation history listeners must be prepared to receive notifications
-	 * from a background thread. Any UI access occurring inside the
-	 * implementation must be properly synchronized using the techniques
-	 * specified by the client's widget library.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IOperationHistoryListener to be added as a listener.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistoryListener
-	 * @see org.eclipse.core.commands.operations.OperationHistoryEvent
-	 */
-	public void addOperationHistoryListener(IOperationHistoryListener listener) {
-		listeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#canRedo(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public boolean canRedo(IUndoContext context) {
-		// null context is allowed and passed through
-		IUndoableOperation operation = getRedoOperation(context);
-		return (operation != null && operation.canRedo());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#canUndo(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public boolean canUndo(IUndoContext context) {
-		// null context is allowed and passed through
-		IUndoableOperation operation = getUndoOperation(context);
-		return (operation != null && operation.canUndo());
-	}
-
-	/**
-	 * Check the redo limit before adding an operation. In theory the redo limit
-	 * should never be reached, because the redo items are transferred from the
-	 * undo history, which has the same limit. The redo history is cleared
-	 * whenever a new operation is added. We check for completeness since
-	 * implementations may change over time.
-	 * 
-	 * Return a boolean indicating whether the redo should proceed.
-	 */
-	private boolean checkRedoLimit(IUndoableOperation operation) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			int limit = getLimit(contexts[i]);
-			if (limit > 0) {
-				forceRedoLimit(contexts[i], limit - 1);
-			} else {
-				// this context has a 0 limit
-				operation.removeContext(contexts[i]);
-			}
-		}
-		return operation.getContexts().length > 0;
-	}
-
-	/**
-	 * Check the undo limit before adding an operation. Return a boolean
-	 * indicating whether the undo should proceed.
-	 */
-	private boolean checkUndoLimit(IUndoableOperation operation) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			int limit = getLimit(contexts[i]);
-			if (limit > 0) {
-				forceUndoLimit(contexts[i], limit - 1);
-			} else {
-				// this context has a 0 limit
-				operation.removeContext(contexts[i]);
-			}
-		}
-		return operation.getContexts().length > 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#dispose(org.eclipse.core.commands.operations.IUndoContext,
-	 *      boolean, boolean, boolean)
-	 */
-	public void dispose(IUndoContext context, boolean flushUndo,
-			boolean flushRedo, boolean flushContext) {
-		// dispose of any limit that was set for the context if it is not to be
-		// used again.
-		if (flushContext) {
-			if (DEBUG_OPERATION_HISTORY_DISPOSE) {
-				Tracing.printTrace("OPERATIONHISTORY", "Flushing context " //$NON-NLS-1$//$NON-NLS-2$
-						+ context);
-			}
-			flushUndo(context);
-			flushRedo(context);
-			limits.remove(context);
-			return;
-		}
-		if (flushUndo) {
-			flushUndo(context);
-		}
-		if (flushRedo) {
-			flushRedo(context);
-		}
-
-	}
-
-	/**
-	 * Perform the redo. All validity checks have already occurred.
-	 * 
-	 * @param monitor
-	 * @param operation
-	 */
-	private IStatus doRedo(IProgressMonitor monitor, IAdaptable info,
-			IUndoableOperation operation) throws ExecutionException {
-
-		IStatus status = getRedoApproval(operation, info);
-		if (status.isOK()) {
-			notifyAboutToRedo(operation);
-			try {
-				status = operation.redo(monitor, info);
-			} catch (OperationCanceledException e) {
-				status = Status.CANCEL_STATUS;
-			} catch (ExecutionException e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"ExecutionException while redoing " + operation); //$NON-NLS-1$
-				}
-				throw e;
-			} catch (Exception e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Exception while redoing " + operation); //$NON-NLS-1$
-				}
-				throw new ExecutionException(
-						"While redoing the operation, an exception occurred", e); //$NON-NLS-1$
-			}
-		}
-
-		// if successful, the operation is removed from the redo history and
-		// placed back in the undo history.
-		if (status.isOK()) {
-			boolean addedToUndo = true;
-			synchronized (undoRedoHistoryLock) {
-				redoList.remove(operation);
-				if (checkUndoLimit(operation)) {
-					undoList.add(operation);
-				} else {
-					addedToUndo = false;
-				}
-			}
-			// dispose the operation since we could not add it to the
-			// stack and will no longer have a reference to it.
-			if (!addedToUndo) {
-				operation.dispose();
-			}
-
-			// notify listeners must happen after history is updated
-			notifyRedone(operation);
-		} else {
-			notifyNotOK(operation, status);
-		}
-
-		return status;
-	}
-
-	/**
-	 * Perform the undo. All validity checks have already occurred.
-	 * 
-	 * @param monitor
-	 * @param operation
-	 */
-	private IStatus doUndo(IProgressMonitor monitor, IAdaptable info,
-			IUndoableOperation operation) throws ExecutionException {
-		IStatus status = getUndoApproval(operation, info);
-		if (status.isOK()) {
-			notifyAboutToUndo(operation);
-			try {
-				status = operation.undo(monitor, info);
-			} catch (OperationCanceledException e) {
-				status = Status.CANCEL_STATUS;
-			} catch (ExecutionException e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"ExecutionException while undoing " + operation); //$NON-NLS-1$
-				}
-				throw e;
-			} catch (Exception e) {
-				notifyNotOK(operation);
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Exception while undoing " + operation); //$NON-NLS-1$
-				}
-				throw new ExecutionException(
-						"While undoing the operation, an exception occurred", e); //$NON-NLS-1$
-			}
-		}
-		// if successful, the operation is removed from the undo history and
-		// placed in the redo history.
-		if (status.isOK()) {
-			boolean addedToRedo = true;
-			synchronized (undoRedoHistoryLock) {
-				undoList.remove(operation);
-				if (checkRedoLimit(operation)) {
-					redoList.add(operation);
-				} else {
-					addedToRedo = false;
-				}
-			}
-			// dispose the operation since we could not add it to the
-			// stack and will no longer have a reference to it.
-			if (!addedToRedo) {
-				operation.dispose();
-			}
-			// notification occurs after the undo and redo histories are
-			// adjusted
-			notifyUndone(operation);
-		} else {
-			notifyNotOK(operation, status);
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#execute(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		Assert.isNotNull(operation);
-
-		// error if operation is invalid
-		if (!operation.canExecute()) {
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-
-		// check with the operation approvers
-		IStatus status = getExecuteApproval(operation, info);
-		if (!status.isOK()) {
-			// not approved. No notifications are sent, just return the status.
-			return status;
-		}
-
-		/*
-		 * If we are in the middle of an open composite, then we will add this
-		 * operation to the open operation rather than add the operation to the
-		 * history. We will still execute it.
-		 */
-		boolean merging = false;
-		synchronized (openCompositeLock) {
-			if (openComposite != null) {
-				// the composite shouldn't be executed explicitly while it is
-				// still
-				// open
-				if (openComposite == operation) {
-					return IOperationHistory.OPERATION_INVALID_STATUS;
-				}
-				openComposite.add(operation);
-				merging = true;
-			}
-		}
-
-		/*
-		 * Execute the operation
-		 */
-		if (!merging) {
-			notifyAboutToExecute(operation);
-		}
-		try {
-			status = operation.execute(monitor, info);
-		} catch (OperationCanceledException e) {
-			status = Status.CANCEL_STATUS;
-		} catch (ExecutionException e) {
-			notifyNotOK(operation);
-			throw e;
-		} catch (Exception e) {
-			notifyNotOK(operation);
-			throw new ExecutionException(
-					"While executing the operation, an exception occurred", e); //$NON-NLS-1$
-		}
-
-		// if successful, the notify listeners are notified and the operation is
-		// added to the history
-		if (!merging) {
-			if (status.isOK()) {
-				notifyDone(operation);
-				add(operation);
-			} else {
-				notifyNotOK(operation, status);
-				// dispose the operation since we did not add it to the stack
-				// and will no longer have a reference to it.
-				operation.dispose();
-			}
-		}
-		// all other severities are not interpreted. Simply return the status.
-		return status;
-	}
-
-	/*
-	 * Filter the specified list to include only the specified undo context.
-	 */
-	private IUndoableOperation[] filter(List list, IUndoContext context) {
-		/*
-		 * This method is used whenever there is a need to filter the undo or
-		 * redo history on a particular context. Currently there are no caches
-		 * kept to optimize repeated requests for the same filter. If benchmarks
-		 * show this to be a common pattern that causes performances problems,
-		 * we could implement a filtered cache here that is nullified whenever
-		 * the global history changes.
-		 */
-
-		List filtered = new ArrayList();
-		Iterator iterator = list.iterator();
-		synchronized (undoRedoHistoryLock) {
-			while (iterator.hasNext()) {
-				IUndoableOperation operation = (IUndoableOperation) iterator
-						.next();
-				if (operation.hasContext(context)) {
-					filtered.add(operation);
-				}
-			}
-		}
-		return (IUndoableOperation[]) filtered
-				.toArray(new IUndoableOperation[filtered.size()]);
-	}
-
-	/*
-	 * Flush the redo stack of all operations that have the given context.
-	 */
-	private void flushRedo(IUndoContext context) {
-		if (DEBUG_OPERATION_HISTORY_DISPOSE) {
-			Tracing.printTrace("OPERATIONHISTORY", "Flushing redo history for " //$NON-NLS-1$ //$NON-NLS-2$
-					+ context);
-		}
-
-		synchronized (undoRedoHistoryLock) {
-			
-			Object[] filtered = filter(redoList, context);
-			for (int i = 0; i < filtered.length; i++) {
-				IUndoableOperation operation = (IUndoableOperation) filtered[i];
-				if (context == GLOBAL_UNDO_CONTEXT
-						|| operation.getContexts().length == 1) {
-					// remove the operation if it only has the context or we are
-					// flushing all
-					redoList.remove(operation);
-					internalRemove(operation);
-				} else {
-					// remove the reference to the context.
-					// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=161786
-					// It is not enough to simply remove the context. There could
-					// be one or more contexts that match the one we are trying to
-					// dispose.
-					IUndoContext[] contexts = operation.getContexts();
-					for (int j = 0; j < contexts.length; j++) {
-						if (contexts[j].matches(context)) {
-							operation.removeContext(contexts[j]);
-						}
-					}
-					if (operation.getContexts().length == 0) {
-						redoList.remove(operation);
-						internalRemove(operation);
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * Flush the undo stack of all operations that have the given context.
-	 */
-	private void flushUndo(IUndoContext context) {
-		if (DEBUG_OPERATION_HISTORY_DISPOSE) {
-			Tracing.printTrace("OPERATIONHISTORY", "Flushing undo history for " //$NON-NLS-1$ //$NON-NLS-2$
-					+ context);
-		}
-
-		synchronized (undoRedoHistoryLock) {
-			
-			// Get all operations that have the context (or one that matches)
-			Object[] filtered = filter(undoList, context);
-			for (int i = 0; i < filtered.length; i++) {
-				IUndoableOperation operation = (IUndoableOperation) filtered[i];
-				if (context == GLOBAL_UNDO_CONTEXT
-						|| operation.getContexts().length == 1) {
-					// remove the operation if it only has the context or we are
-					// flushing all
-					undoList.remove(operation);
-					internalRemove(operation);
-				} else {
-					// remove the reference to the context.
-					// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=161786
-					// It is not enough to simply remove the context. There could
-					// be one or more contexts that match the one we are trying to
-					// dispose.
-					IUndoContext[] contexts = operation.getContexts();
-					for (int j = 0; j < contexts.length; j++) {
-						if (contexts[j].matches(context)) {
-							operation.removeContext(contexts[j]);
-						}
-					}
-					if (operation.getContexts().length == 0) {
-						undoList.remove(operation);
-						internalRemove(operation);
-					}
-				}
-			}
-		}
-		/*
-		 * There may be an open composite. If it has this context, then the
-		 * context must be removed. If it has only this context or we are
-		 * flushing all operations, then null it out and notify that we are
-		 * ending it. We don't remove it since it was never added.
-		 */
-		ICompositeOperation endedComposite = null;
-		synchronized (openCompositeLock) {
-			if (openComposite != null) {
-				if (openComposite.hasContext(context)) {
-					if (context == GLOBAL_UNDO_CONTEXT
-							|| openComposite.getContexts().length == 1) {
-						endedComposite = openComposite;
-						openComposite = null;
-					} else {
-						openComposite.removeContext(context);
-					}
-				}
-			}
-		}
-		// notify outside of the synchronized block.
-		if (endedComposite != null) {
-			notifyNotOK(endedComposite);
-		}
-	}
-
-	/*
-	 * Force the redo history for the given context to contain max or less
-	 * items.
-	 */
-	private void forceRedoLimit(IUndoContext context, int max) {
-		synchronized (undoRedoHistoryLock) {
-			Object[] filtered = filter(redoList, context);
-			int size = filtered.length;
-			if (size > 0) {
-				int index = 0;
-				while (size > max) {
-					IUndoableOperation removed = (IUndoableOperation) filtered[index];
-					if (context == GLOBAL_UNDO_CONTEXT
-							|| removed.getContexts().length == 1) {
-						/*
-						 * remove the operation if we are enforcing a global limit
-						 * or if the operation only has the specified context
-						 */
-						redoList.remove(removed);
-						internalRemove(removed);
-					} else {
-						/*
-						 * if the operation has multiple contexts and we've reached
-						 * the limit for only one of them, then just remove the
-						 * context, not the operation.
-						 */
-						removed.removeContext(context);
-					}
-					size--;
-					index++;
-				}
-			}
-		}
-	}
-
-	/*
-	 * Force the undo history for the given context to contain max or less
-	 * items.
-	 */
-	private void forceUndoLimit(IUndoContext context, int max) {
-		synchronized (undoRedoHistoryLock) {
-			Object[] filtered = filter(undoList, context);
-			int size = filtered.length;
-			if (size > 0) {
-				int index = 0;
-				while (size > max) {
-					IUndoableOperation removed = (IUndoableOperation) filtered[index];
-					if (context == GLOBAL_UNDO_CONTEXT
-							|| removed.getContexts().length == 1) {
-						/*
-						 * remove the operation if we are enforcing a global limit
-						 * or if the operation only has the specified context
-						 */
-						undoList.remove(removed);
-						internalRemove(removed);
-					} else {
-						/*
-						 * if the operation has multiple contexts and we've reached
-						 * the limit for only one of them, then just remove the
-						 * context, not the operation.
-						 */
-						removed.removeContext(context);
-					}
-					size--;
-					index++;
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#getLimit()
-	 */
-	public int getLimit(IUndoContext context) {
-		if (!limits.containsKey(context)) {
-			return DEFAULT_LIMIT;
-		}
-		return ((Integer) (limits.get(context))).intValue();
-	}
-
-	/*
-	 * Consult the IOperationApprovers to see if the proposed redo should be
-	 * allowed.
-	 */
-	private IStatus getRedoApproval(IUndoableOperation operation,
-			IAdaptable info) {
-
-		final Object[] approverArray = approvers.getListeners();
-
-		for (int i = 0; i < approverArray.length; i++) {
-			IOperationApprover approver = (IOperationApprover) approverArray[i];
-			IStatus approval = approver.proceedRedoing(operation, this, info);
-			if (!approval.isOK()) {
-				if (DEBUG_OPERATION_HISTORY_APPROVAL) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Redo not approved by " + approver //$NON-NLS-1$
-									+ "for operation " + operation //$NON-NLS-1$
-									+ " approved by " + approval); //$NON-NLS-1$
-				}
-				return approval;
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#getRedoHistory(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public IUndoableOperation[] getRedoHistory(IUndoContext context) {
-		Assert.isNotNull(context);
-		return filter(redoList, context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#getOperation(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public IUndoableOperation getRedoOperation(IUndoContext context) {
-		Assert.isNotNull(context);
-		synchronized (undoRedoHistoryLock) {
-			for (int i = redoList.size() - 1; i >= 0; i--) {
-				IUndoableOperation operation = (IUndoableOperation) redoList
-						.get(i);
-				if (operation.hasContext(context)) {
-					return operation;
-				}
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Consult the IOperationApprovers to see if the proposed undo should be
-	 * allowed.
-	 */
-	private IStatus getUndoApproval(IUndoableOperation operation,
-			IAdaptable info) {
-
-		final Object[] approverArray = approvers.getListeners();
-
-		for (int i = 0; i < approverArray.length; i++) {
-			IOperationApprover approver = (IOperationApprover) approverArray[i];
-			IStatus approval = approver.proceedUndoing(operation, this, info);
-			if (!approval.isOK()) {
-				if (DEBUG_OPERATION_HISTORY_APPROVAL) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Undo not approved by " + approver //$NON-NLS-1$
-									+ "for operation " + operation //$NON-NLS-1$
-									+ " with status " + approval); //$NON-NLS-1$
-				}
-				return approval;
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#getUndoHistory(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public IUndoableOperation[] getUndoHistory(IUndoContext context) {
-		Assert.isNotNull(context);
-		return filter(undoList, context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#getUndoOperation(org.eclipse.core.commands.operations.IUndoContext)
-	 */
-	public IUndoableOperation getUndoOperation(IUndoContext context) {
-		Assert.isNotNull(context);
-		synchronized (undoRedoHistoryLock) {
-			for (int i = undoList.size() - 1; i >= 0; i--) {
-				IUndoableOperation operation = (IUndoableOperation) undoList
-						.get(i);
-				if (operation.hasContext(context)) {
-					return operation;
-				}
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Consult the IOperationApprovers to see if the proposed execution should
-	 * be allowed.
-	 * 
-	 * @since 3.2
-	 */
-	private IStatus getExecuteApproval(IUndoableOperation operation,
-			IAdaptable info) {
-
-		final Object[] approverArray = approvers.getListeners();
-
-		for (int i = 0; i < approverArray.length; i++) {
-			if (approverArray[i] instanceof IOperationApprover2) {
-				IOperationApprover2 approver = (IOperationApprover2) approverArray[i];
-				IStatus approval = approver.proceedExecuting(operation, this,
-						info);
-				if (!approval.isOK()) {
-					if (DEBUG_OPERATION_HISTORY_APPROVAL) {
-						Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-								"Execute not approved by " + approver //$NON-NLS-1$
-										+ "for operation " + operation //$NON-NLS-1$
-										+ " with status " + approval); //$NON-NLS-1$
-					}
-					return approval;
-				}
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * Remove the operation by disposing it and notifying listeners.
-	 */
-	private void internalRemove(IUndoableOperation operation) {
-		operation.dispose();
-		notifyRemoved(operation);
-	}
-
-	/*
-	 * Notify listeners of an operation event.
-	 */
-	private void notifyListeners(final OperationHistoryEvent event) {
-		if (event.getOperation() instanceof IAdvancedUndoableOperation) {
-			final IAdvancedUndoableOperation advancedOp = (IAdvancedUndoableOperation) event
-					.getOperation();
-			SafeRunner.run(new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-					if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-						Tracing
-								.printTrace(
-										"OPERATIONHISTORY", //$NON-NLS-1$
-										"Exception during notification callback " + exception); //$NON-NLS-1$
-					}
-				}
-
-				public void run() throws Exception {
-					advancedOp.aboutToNotify(event);
-				}
-			});
-		}
-		final Object[] listenerArray = listeners.getListeners();
-		for (int i = 0; i < listenerArray.length; i++) {
-			final IOperationHistoryListener listener = (IOperationHistoryListener) listenerArray[i];
-			SafeRunner.run(new ISafeRunnable() {
-				public void handleException(Throwable exception) {
-					if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-						Tracing
-								.printTrace(
-										"OPERATIONHISTORY", //$NON-NLS-1$
-										"Exception during notification callback " + exception); //$NON-NLS-1$
-					}
-				}
-
-				public void run() throws Exception {
-					listener.historyNotification(event);
-				}
-			});
-		}
-	}
-
-	private void notifyAboutToExecute(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "ABOUT_TO_EXECUTE " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.ABOUT_TO_EXECUTE, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation is about to redo.
-	 */
-	private void notifyAboutToRedo(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "ABOUT_TO_REDO " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.ABOUT_TO_REDO, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation is about to undo.
-	 */
-	private void notifyAboutToUndo(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "ABOUT_TO_UNDO " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.ABOUT_TO_UNDO, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been added.
-	 */
-	private void notifyAdd(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_ADDED " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_ADDED, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation is done executing.
-	 */
-	private void notifyDone(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "DONE " + operation); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		notifyListeners(new OperationHistoryEvent(OperationHistoryEvent.DONE,
-				this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation did not succeed after an attempt to
-	 * execute, undo, or redo was made.
-	 */
-	private void notifyNotOK(IUndoableOperation operation) {
-		notifyNotOK(operation, null);
-	}
-
-	/*
-	 * Notify listeners that an operation did not succeed after an attempt to
-	 * execute, undo, or redo was made. Include the status associated with the
-	 * attempt.
-	 * 
-	 * @since 3.2
-	 */
-	private void notifyNotOK(IUndoableOperation operation, IStatus status) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_NOT_OK " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_NOT_OK, this, operation, status));
-	}
-
-	/*
-	 * Notify listeners that an operation was redone.
-	 */
-	private void notifyRedone(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "REDONE " + operation); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		notifyListeners(new OperationHistoryEvent(OperationHistoryEvent.REDONE,
-				this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been removed from the history.
-	 */
-	private void notifyRemoved(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_REMOVED " //$NON-NLS-1$ //$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_REMOVED, this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been undone.
-	 */
-	private void notifyUndone(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "UNDONE " + operation); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		notifyListeners(new OperationHistoryEvent(OperationHistoryEvent.UNDONE,
-				this, operation));
-	}
-
-	/*
-	 * Notify listeners that an operation has been undone.
-	 */
-	private void notifyChanged(IUndoableOperation operation) {
-		if (DEBUG_OPERATION_HISTORY_NOTIFICATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "OPERATION_CHANGED " //$NON-NLS-1$//$NON-NLS-2$
-					+ operation);
-		}
-
-		notifyListeners(new OperationHistoryEvent(
-				OperationHistoryEvent.OPERATION_CHANGED, this, operation));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#redo(org.eclipse.core.commands.operations.IUndoContext,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IUndoContext context, IProgressMonitor monitor,
-			IAdaptable info) throws ExecutionException {
-		Assert.isNotNull(context);
-		IUndoableOperation operation = getRedoOperation(context);
-
-		// info if there is no operation
-		if (operation == null) {
-			return IOperationHistory.NOTHING_TO_REDO_STATUS;
-		}
-
-		// error if operation is invalid
-		if (!operation.canRedo()) {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Redo operation not valid - " + operation); //$NON-NLS-1$
-			}
-
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-
-		return doRedo(monitor, info, operation);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#redoOperation(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-
-	public IStatus redoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		Assert.isNotNull(operation);
-		IStatus status;
-		if (operation.canRedo()) {
-			status = doRedo(monitor, info, operation);
-		} else {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Redo operation not valid - " + operation); //$NON-NLS-1$
-			}
-			status = IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#removeOperationApprover(org.eclipse.core.commands.operations.IOperationApprover)
-	 */
-	public void removeOperationApprover(IOperationApprover approver) {
-		approvers.remove(approver);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#removeOperationHistoryListener(org.eclipse.core.commands.operations.IOperationHistoryListener)
-	 */
-	public void removeOperationHistoryListener(
-			IOperationHistoryListener listener) {
-		listeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#replaceOperation(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IUndoableOperation [])
-	 */
-	public void replaceOperation(IUndoableOperation operation,
-			IUndoableOperation[] replacements) {
-		// check the undo history first.
-		boolean inUndo = false;
-		synchronized (undoRedoHistoryLock) {
-			int index = undoList.indexOf(operation);
-			if (index > -1) {
-				inUndo = true;
-				undoList.remove(operation);
-				// notify listeners after the lock on undoList is released
-				ArrayList allContexts = new ArrayList(replacements.length);
-				for (int i = 0; i < replacements.length; i++) {
-					IUndoContext[] opContexts = replacements[i].getContexts();
-					for (int j = 0; j < opContexts.length; j++) {
-						allContexts.add(opContexts[j]);
-					}
-					undoList.add(index, replacements[i]);
-					// notify listeners after the lock on the history is
-					// released
-				}
-				// recheck all the limits. We do this at the end so the index
-				// doesn't change during replacement
-				for (int i = 0; i < allContexts.size(); i++) {
-					IUndoContext context = (IUndoContext) allContexts.get(i);
-					forceUndoLimit(context, getLimit(context));
-				}
-			}
-		}
-		if (inUndo) {
-			// notify listeners of operations added and removed
-			internalRemove(operation);
-			for (int i = 0; i < replacements.length; i++) {
-				notifyAdd(replacements[i]);
-			}
-			return;
-		}
-
-		// operation was not in the undo history. Check the redo history.
-
-		synchronized (undoRedoHistoryLock) {
-			int index = redoList.indexOf(operation);
-			if (index == -1) {
-				return;
-			}
-			ArrayList allContexts = new ArrayList(replacements.length);
-			redoList.remove(operation);
-			// notify listeners after we release the lock on redoList
-			for (int i = 0; i < replacements.length; i++) {
-				IUndoContext[] opContexts = replacements[i].getContexts();
-				for (int j = 0; j < opContexts.length; j++) {
-					allContexts.add(opContexts[j]);
-				}
-				redoList.add(index, replacements[i]);
-				// notify listeners after we release the lock on redoList
-			}
-			// recheck all the limits. We do this at the end so the index
-			// doesn't change during replacement
-			for (int i = 0; i < allContexts.size(); i++) {
-				IUndoContext context = (IUndoContext) allContexts.get(i);
-				forceRedoLimit(context, getLimit(context));
-			}
-		}
-		// send listener notifications after we release the lock on the history
-		internalRemove(operation);
-		for (int i = 0; i < replacements.length; i++) {
-			notifyAdd(replacements[i]);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#setLimit(org.eclipse.core.commands.operations.IUndoContext,
-	 *      int)
-	 */
-	public void setLimit(IUndoContext context, int limit) {
-		Assert.isTrue(limit >= 0);
-		/*
-		 * The limit checking methods interpret a null context as a global limit
-		 * to be enforced. We do not wish to support a global limit in this
-		 * implementation, so we throw an exception for a null context. The rest
-		 * of the implementation can handle a null context, so subclasses can
-		 * override this if a global limit is desired.
-		 */
-		Assert.isNotNull(context);
-		limits.put(context, new Integer(limit));
-		synchronized (undoRedoHistoryLock) {
-			forceUndoLimit(context, limit);
-			forceRedoLimit(context, limit);
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#undo(org.eclipse.core.commands.operations.IUndoContext,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IUndoContext context, IProgressMonitor monitor,
-			IAdaptable info) throws ExecutionException {
-		Assert.isNotNull(context);
-		IUndoableOperation operation = getUndoOperation(context);
-
-		// info if there is no operation
-		if (operation == null) {
-			return IOperationHistory.NOTHING_TO_UNDO_STATUS;
-		}
-
-		// error if operation is invalid
-		if (!operation.canUndo()) {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Undo operation not valid - " + operation); //$NON-NLS-1$
-			}
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-
-		return doUndo(monitor, info, operation);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#undoOperation(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		Assert.isNotNull(operation);
-		IStatus status;
-		if (operation.canUndo()) {
-			status = doUndo(monitor, info, operation);
-		} else {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-						"Undo operation not valid - " + operation); //$NON-NLS-1$
-			}
-			status = IOperationHistory.OPERATION_INVALID_STATUS;
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#openOperation(org.eclipse.core.commands.operations.ICompositeOperation)
-	 */
-	public void openOperation(ICompositeOperation operation, int mode) {
-		synchronized (openCompositeLock) {
-			if (openComposite != null && openComposite != operation) {
-				// unexpected nesting of operations.
-				if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Open operation called while another operation is open.  old: " //$NON-NLS-1$
-									+ openComposite + "; new:  " + operation); //$NON-NLS-1$
-				}
-
-				throw new IllegalStateException(
-						"Cannot open an operation while one is already open"); //$NON-NLS-1$
-			}
-			openComposite = operation;
-		}
-		if (DEBUG_OPERATION_HISTORY_OPENOPERATION) {
-			Tracing.printTrace("OPERATIONHISTORY", "Opening operation " //$NON-NLS-1$ //$NON-NLS-2$
-					+ openComposite);
-		}
-
-		if (mode == EXECUTE) {
-			notifyAboutToExecute(openComposite);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#closeOperation(boolean,
-	 *      boolean)
-	 */
-	public void closeOperation(boolean operationOK, boolean addToHistory,
-			int mode) {
-		ICompositeOperation endedComposite = null;
-
-		synchronized (openCompositeLock) {
-			if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
-				if (openComposite == null) {
-					Tracing.printTrace("OPERATIONHISTORY", //$NON-NLS-1$
-							"Attempted to close operation when none was open"); //$NON-NLS-1$
-					return;
-				}
-			}
-			// notifications will occur outside the synchonized block
-			if (openComposite != null) {
-				if (DEBUG_OPERATION_HISTORY_OPENOPERATION) {
-					Tracing.printTrace("OPERATIONHISTORY", "Closing operation " //$NON-NLS-1$ //$NON-NLS-2$
-							+ openComposite);
-				}
-				endedComposite = openComposite;
-				openComposite = null;
-			}
-		}
-		// any mode other than EXECUTE was triggered by a request to undo or
-		// redo something already in the history, so undo and redo
-		// notification will occur at the end of that sequence.
-		if (endedComposite != null) {
-			if (operationOK) {
-				if (mode == EXECUTE) {
-					notifyDone(endedComposite);
-				}
-				if (addToHistory) {
-					add(endedComposite);
-				}
-			} else {
-				if (mode == EXECUTE) {
-					notifyNotOK(endedComposite);
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistory#operationChanged(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void operationChanged(IUndoableOperation operation) {
-		if (undoList.contains(operation) || redoList.contains(operation)) {
-			notifyChanged(operation);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java
deleted file mode 100644
index ce6c80b..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation.java
+++ /dev/null
@@ -1,129 +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.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IAdvancedUndoableOperation defines an interface for undoable operations that
- * modify one or more elements in a model and attempt to keep model listeners up
- * to date with changes that occur in the undo and redo history involving particular
- * model elements.  It also defines methods for computing the validity of an operation
- * for undo or redo before attempting to perform the undo or redo.
- * </p>
- * <p>
- * This interface is intended to be used by legacy frameworks that are adapting
- * their original undo and redo support to this framework. The methods in this
- * interface allow legacy clients to maintain features not supported in the
- * basic operations framework.
- * </p>
- * 
- * @since 3.1
- * 
- */
-public interface IAdvancedUndoableOperation {
-
-	/**
-	 * <p>
-	 * An operation history notification about this operation is about to be
-	 * sent to operation history listeners. Any preparation needed before
-	 * listeners are notified about this operation should be performed here.
-	 * 
-	 * <p>
-	 * This method has been added to support legacy undo frameworks that are
-	 * adapting to IUndoableOperation. Operations that previously relied on
-	 * notification from their containing history or stack before any listeners
-	 * are notified about changes to the operation should implement this
-	 * interface.
-	 * 
-	 * @param event 
-	 *            the event that is about to be sent with the pending
-	 *            notification
-	 * 
-	 */
-	void aboutToNotify(OperationHistoryEvent event);
-
-	/**
-	 * <p>
-	 * Return an array of objects that are affected by executing, undoing, or
-	 * redoing this operation. If it cannot be determined which objects are
-	 * affected, return null.
-	 * </p>
-	 * 
-	 * @return the array of Objects modified by this operation, or
-	 *         <code>null</code> if the affected objects cannot be determined.
-	 */
-	Object[] getAffectedObjects();
-
-	/**
-	 * Return a status indicating the projected outcome of undoing the receiver.
-	 * 
-	 * This method should be used to report the possible outcome of an undo and
-	 * is used when computing the validity of an undo is too expensive to
-	 * perform in {@link IUndoableOperation#canUndo()}. It is not called by the
-	 * operation history, but instead is used by clients (such as implementers
-	 * of {@link IOperationApprover}) who wish to perform advanced validation of
-	 * an operation before attempting to undo it.
-	 * 
-	 * If the result of this method is the discovery that an operation can in
-	 * fact not be undone, then the operation is expected to correctly answer
-	 * <code>false</code> on subsequent calls to
-	 * {@link IUndoableOperation#canUndo()}.
-	 * 
-	 * @param monitor 
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user while computing the validity.
-	 * 
-	 * @return the IStatus indicating the validity of the undo. The status
-	 *         severity should be set to <code>OK</code> if the undo can
-	 *         successfully be performed, and <code>ERROR</code> if it
-	 *         cannnot. Any other status is assumed to represent an ambiguous
-	 *         state.
-	 * @throws ExecutionException
-	 *             if an exception occurs while computing the validity.
-	 */
-	IStatus computeUndoableStatus(IProgressMonitor monitor)
-			throws ExecutionException;
-
-	/**
-	 * Return a status indicating the projected outcome of redoing the receiver.
-	 * 
-	 * This method should be used to report the possible outcome of a redo and
-	 * is used when computing the validity of a redo is too expensive to perform
-	 * in {@link IUndoableOperation#canRedo()}. It is not called by the
-	 * operation history, but instead is used by clients (such as implementers
-	 * of {@link IOperationApprover}) who wish to perform advanced validation of
-	 * an operation before attempting to redo it.
-	 * 
-	 * If the result of this method is the discovery that an operation can in
-	 * fact not be redone, then the operation is expected to correctly answer
-	 * <code>false</code> on subsequent calls to
-	 * {@link IUndoableOperation#canRedo()}.
-	 * 
-	 * @param monitor 
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user while computing the validity.
-	 * 
-	 * @return the IStatus indicating the validity of the redo. The status
-	 *         severity should be set to <code>OK</code> if the redo can
-	 *         successfully be performed, and <code>ERROR</code> if it
-	 *         cannnot. Any other status is assumed to represent an ambiguous
-	 *         state.
-	 * @throws ExecutionException
-	 *             if an exception occurs while computing the validity.
-	 */
-	IStatus computeRedoableStatus(IProgressMonitor monitor)
-			throws ExecutionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java
deleted file mode 100644
index 1cb4280..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IAdvancedUndoableOperation2.java
+++ /dev/null
@@ -1,98 +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.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IAdvancedUndoableOperation2 defines a method for computing the validity of
- * executing an operation before attempting to execute it. It also defines a way
- * for clients to specify that computing status should be done quietly, without
- * consulting the user. This interface is useful when implementing
- * {@link IOperationApprover2}, or any other object that performs validation of
- * the undo history. It also allows operations to specify whether they should be
- * run in the UI thread.
- * </p>
- * 
- * @since 3.3
- * 
- */
-public interface IAdvancedUndoableOperation2 {
-	/**
-	 * Return a status indicating the projected outcome of executing the
-	 * receiver.
-	 * 
-	 * This method should be used to report the possible outcome of executing an
-	 * operation when computing the validity of an execute is too expensive to
-	 * perform in {@link IUndoableOperation#canExecute()}. It is not called by
-	 * the operation history, but instead is used by clients (such as
-	 * implementers of {@link IOperationApprover2}) who wish to perform
-	 * advanced validation of an operation before attempting to execute it.
-	 * 
-	 * If the result of this method is the discovery that an operation can in
-	 * fact not be executed, then the operation is expected to correctly answer
-	 * <code>false</code> on subsequent calls to
-	 * {@link IUndoableOperation#canExecute()}.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user while computing the validity.
-	 * 
-	 * @return the IStatus indicating the validity of the execute. The status
-	 *         severity should be set to <code>OK</code> if the execute can
-	 *         successfully be performed, and <code>ERROR</code> if it cannot.
-	 *         Any other severity is assumed to represent an ambiguous state.
-	 * @throws ExecutionException
-	 *             if an exception occurs while computing the validity.
-	 */
-	IStatus computeExecutionStatus(IProgressMonitor monitor)
-			throws ExecutionException;
-
-	/**
-	 * Set a boolean that instructs whether the computation of the receiver's
-	 * execution, undo, or redo status should quietly compute status without
-	 * consulting or prompting the user. The default value is <code>false</code>.
-	 * This flag should only be set to <code>true</code> while the execution,
-	 * undo, or redo status computations are being performed in the background,
-	 * and should be restored to <code>false</code> when complete.
-	 * <p>
-	 * If the status computation methods typically need to consult the user in
-	 * order to determine the severity of a particular situation, the least
-	 * severe status that could be chosen by the user should be returned when
-	 * this flag is <code>true</code>. This can help to prevent overzealous
-	 * disposal of the operation history when an operation is in an ambiguous
-	 * state. Typically, the status computation methods are invoked with this
-	 * flag set to <code>false</code> just before the actual execution, undo,
-	 * or redo occurs, so the user can be consulted for the final outcome.
-	 * 
-	 * @param quiet
-	 *            <code>true</code> if it is inappropriate to consult or
-	 *            otherwise prompt the user while computing status, and
-	 *            <code>false</code> if the user may be prompted.
-	 * 
-	 * @see #computeExecutionStatus(IProgressMonitor)
-	 * @see IAdvancedUndoableOperation#computeUndoableStatus(IProgressMonitor)
-	 * @see IAdvancedUndoableOperation#computeRedoableStatus(IProgressMonitor)
-	 */
-	public void setQuietCompute(boolean quiet);
-
-	/**
-	 * Return a boolean that instructs whether the operation should be executed,
-	 * undone, or redone in a background thread.
-	 * 
-	 * @return <code>true</code> if the operation should be run in the
-	 *         background, <code>false</code> if it should not.
-	 */
-	public boolean runInBackground();
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java
deleted file mode 100644
index 1653596..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ICompositeOperation.java
+++ /dev/null
@@ -1,51 +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.core.commands.operations;
-
-/**
- * <p>
- * ICompositeOperation defines an undoable operation that is composed of child
- * operations. Requests to execute, undo, or redo a composite result in the the
- * execution, undo, or redo of the composite as a whole. Similarly, a request to 
- * dispose the composite should result in all child operations being disposed.
- * </p>
- * 
- * @since 3.1
- */
-public interface ICompositeOperation extends IUndoableOperation {
-
-	/**
-	 * <p>
-	 * Add the specified operation as a child of this operation.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be added. If the operation instance has
-	 *            already been added, this method will have no effect.
-	 */
-	void add(IUndoableOperation operation);
-
-	/**
-	 * <p>
-	 * Remove the specified operation from this operation.
-	 * </p>
-	 * <p>
-	 * The composite operation should dispose the operation as part of removing
-	 * it.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be removed. The operation should be disposed
-	 *            by the receiver. This method will have no effect if the
-	 *            operation instance is not already a child.
-	 */
-	void remove(IUndoableOperation operation);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java
deleted file mode 100644
index 1ca00eb..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IContextReplacingOperation.java
+++ /dev/null
@@ -1,37 +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.core.commands.operations;
-
-/**
- * IContextReplacingOperation defines an interface for undoable operations that
- * can replace one undo context with another undo context. It is used by
- * operations, such as composite operations, where removing and adding an undo
- * context would not have the same semantic as replacing one undo context with
- * another.
- * 
- * @since 3.2
- * 
- */
-public interface IContextReplacingOperation {
-
-	/**
-	 * Replace the undo context of the receiver with the provided replacement
-	 * undo context.
-	 * <p>
-	 * This message has no effect if the original undo context is not present in
-	 * the receiver.
-	 * 
-	 * @param original the undo context which is to be replaced
-	 * @param replacement the undo context which is replacing the original
-	 * 
-	 */
-	void replaceContext(IUndoContext original, IUndoContext replacement);
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java
deleted file mode 100644
index 44446f8..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover.java
+++ /dev/null
@@ -1,103 +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.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IOperationApprover defines an interface for approving the undo or redo of a
- * particular operation within an operation history. Operations that are
- * candidates for undo or redo have already been validated against their current
- * state and according to the rules of the history.
- * </p>
- * <p>
- * By the time an IOperationApprover is consulted, the undo has already been
- * requested. Approvers should return an <code>IStatus</code> object with
- * severity <code>OK</code> if the operation should proceed, and any other
- * severity if it should not. When an operation is not approved, it is expected
- * that the object not allowing the operation has already consulted the user if
- * necessary or otherwise provided any necessary information to the user about
- * the fact that the operation is not approved.
- * </p>
- * <p>
- * Operation approvers must be prepared to receive the approval messages from a
- * background thread. Any UI access occurring inside the implementation must be
- * properly synchronized using the techniques specified by the client's widget
- * library.
- * </p>
- * 
- * @since 3.1
- */
-public interface IOperationApprover {
-
-	/**
-	 * Return a status indicating whether the specified operation should be
-	 * redone. Any status that does not have severity <code>IStatus.OK</code>
-	 * will not be approved. Implementers should not assume that the redo will
-	 * be performed when the status is <code>OK</code>, since other operation
-	 * approvers may veto the redo.
-	 * 
-	 * @param operation 
-	 *            the operation to be redone
-	 * @param history 
-	 *            the history redoing the operation
-	 * @param info 
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class. Even if UI
-	 *            information is provided, the implementation of this method
-	 *            must be prepared for being called from a background thread.
-	 *            Any UI access must be properly synchronized using the
-	 *            techniques specified by the client's widget library.
-	 * @return the IStatus describing whether the operation is approved. The
-	 *         redo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the redo will be
-	 *         returned the status that caused the rejection. Any other status
-	 *         severities will not be interpreted by the history.
-	 */
-	IStatus proceedRedoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info);
-
-	/**
-	 * Return a status indicating whether the specified operation should be
-	 * undone. Any status that does not have severity <code>IStatus.OK</code>
-	 * will not be approved. Implementers should not assume that the undo will
-	 * be performed when the status is <code>OK</code>, since other operation
-	 * approvers can veto the undo.
-	 * 
-	 * @param operation 
-	 *            the operation to be undone
-	 * @param history 
-	 *            the history undoing the operation
-	 * @param info 
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class. Even if UI
-	 *            information is provided, the implementation of this method
-	 *            must be prepared for being called from a background thread.
-	 *            Any UI access must be properly synchronized using the
-	 *            techniques specified by the client's widget library.
-	 * @return the IStatus describing whether the operation is approved. The
-	 *         undo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the undo will be
-	 *         returned the status that caused the rejection. Any other status
-	 *         severities will not be interpreted by the history.
-	 */
-	IStatus proceedUndoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java
deleted file mode 100644
index 7dbbd45..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationApprover2.java
+++ /dev/null
@@ -1,72 +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.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * Extends {@link IOperationApprover} to approve the execution of a particular
- * operation within an operation history. Operations that are candidates for
- * execution have already been validated against their current state and
- * according to the rules of the history. Prior to 3.2, an operation approver
- * was only consulted for undo and redo of an operation, not its initial
- * execution.
- * <p>
- * By the time an IOperationApprover2 is consulted, the execution has already
- * been requested and it has been determined that the operation is valid.
- * Approvers should return an <code>IStatus</code> object with severity
- * <code>OK</code> if the operation should proceed, and any other severity if
- * it should not. When an operation is not approved, it is expected that the
- * object not allowing the operation has already consulted the user if necessary
- * or otherwise provided any necessary information to the user about the fact
- * that the operation is not approved.
- * </p>
- * <p>
- * Like {@link IOperationApprover}, implementers of this extension must be
- * prepared to receive the approval messages from a background thread. Any UI
- * access occurring inside the implementation must be properly synchronized
- * using the techniques specified by the client's widget library.
- * </p>
- * 
- * @since 3.2
- */
-public interface IOperationApprover2 extends IOperationApprover {
-	/**
-	 * Return a status indicating whether the specified operation should be
-	 * executed. Any status that does not have severity <code>IStatus.OK</code>
-	 * will not be approved. Implementers should not assume that the execution
-	 * will be performed when the status is <code>OK</code>, since other
-	 * operation approvers may veto the execution.
-	 * 
-	 * @param operation
-	 *            the operation to be executed
-	 * @param history
-	 *            the history performing the execution of the operation
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class. Even if UI
-	 *            information is provided, the implementation of this method
-	 *            must be prepared for being called from a background thread.
-	 *            Any UI access must be properly synchronized using the
-	 *            techniques specified by the client's widget library.
-	 * @return the IStatus describing whether the operation is approved. The
-	 *         execution will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the execution will
-	 *         be returned the status that caused the rejection. Any other
-	 *         status severities will not be interpreted by the history.
-	 */
-	IStatus proceedExecuting(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
deleted file mode 100644
index 3c11a3d..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistory.java
+++ /dev/null
@@ -1,697 +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.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.internal.commands.operations.GlobalUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IOperationHistory tracks a history of operations that can be undone or
- * redone. Operations are added to the history once they have been initially
- * executed. Clients may choose whether to have the operations history perform
- * the initial execution or to simply add an already-executed operation to the
- * history.
- * </p>
- * <p>
- * Once operations are added to the history, the methods
- * {@link #canRedo(IUndoContext)} and {@link #canUndo(IUndoContext)} are used to
- * determine whether there is an operation available for undo and redo in a
- * given undo context. The context-based protocol implies that there is only one
- * operation that can be undone or redone at a given time in a given context.
- * This is typical of a linear undo model, when only the most recently executed
- * operation is available for undo. When this protocol is used, a linear model
- * is enforced by the history.
- * </p>
- * <p>
- * It is up to clients to determine how to maintain a history that is invalid or
- * stale. For example, when the most recent operation for a context cannot be
- * performed, clients may wish to dispose the history for that context.
- * </p>
- * <p>
- * Additional protocol allows direct undo and redo of a specified operation,
- * regardless of its position in the history. When a more flexible undo model is
- * supported, these methods can be implemented to undo and redo directly
- * specified operations. If an implementer of IOperationHistory does not allow
- * direct undo and redo, these methods can return a status indicating that it is
- * not allowed.
- * </p>
- * <p>
- * Listeners ({@link IOperationHistoryListener}) can listen for notifications
- * about changes in the history (operations added or removed), and for
- * notification before and after any operation is executed, undone or redone.
- * Notification of operation execution only occurs when clients direct the
- * history to execute the operation. If the operation is added after it is
- * executed, there can be no notification of its execution.
- * </p>
- * <p>
- * {@link IOperationApprover} defines an interface for approving an undo or redo
- * before it occurs. This is useful for injecting policy-decisions into the undo
- * model - whether direct undo and redo are supported, or warning the user about
- * certain kinds of operations. It can also be used when clients maintain state
- * related to an operation and need to determine whether an undo or redo will
- * cause any conflicts with their local state.
- * </p>
- * 
- * @since 3.1
- */
-public interface IOperationHistory {
-
-	/**
-	 * An operation is to be opened or closed for execution. (value is 1).
-	 */
-	public static final int EXECUTE = 1;
-
-	/**
-	 * An operation is to be opened for undo. (value is 2).
-	 */
-	public static final int UNDO = 2;
-
-	/**
-	 * An operation is to be opened for redo. (value is 3).
-	 */
-	public static final int REDO = 3;
-
-	/**
-	 * An undo context that can be used to refer to the global undo history.
-	 * This context is not intended to be assigned to operations. Instead, it is
-	 * used for querying the history or performing an undo or redo on the entire
-	 * history, regardless of each operation's undo contexts.
-	 */
-	public static final IUndoContext GLOBAL_UNDO_CONTEXT = new GlobalUndoContext();
-
-	/**
-	 * An operation info status describing the condition that there is no
-	 * available operation for redo.
-	 */
-	public static final IStatus NOTHING_TO_REDO_STATUS = new OperationStatus(
-			IStatus.INFO, OperationStatus.DEFAULT_PLUGIN_ID,
-			OperationStatus.NOTHING_TO_REDO, "No operation to redo", null); //$NON-NLS-1$
-
-	/**
-	 * An operation info status describing the condition that there is no
-	 * available operation for undo.
-	 */
-	public static final IStatus NOTHING_TO_UNDO_STATUS = new OperationStatus(
-			IStatus.INFO, OperationStatus.DEFAULT_PLUGIN_ID,
-			OperationStatus.NOTHING_TO_UNDO, "No operation to undo", null); //$NON-NLS-1$
-
-	/**
-	 * An operation error status describing the condition that the operation
-	 * available for execution, undo or redo is not in a valid state for the
-	 * action to be performed.
-	 */
-	public static final IStatus OPERATION_INVALID_STATUS = new OperationStatus(
-			IStatus.ERROR, OperationStatus.DEFAULT_PLUGIN_ID,
-			OperationStatus.OPERATION_INVALID, "Operation is not valid", null); //$NON-NLS-1$
-
-	/**
-	 * <p>
-	 * Add the specified operation to the history without executing it. The
-	 * operation should have already been executed by the time it is added to
-	 * the history. Listeners will be notified that the operation was added to
-	 * the history (<code>OPERATION_ADDED</code>).
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be added to the history
-	 */
-	void add(IUndoableOperation operation);
-
-	/**
-	 * <p>
-	 * Add the specified approver to the list of operation approvers consulted
-	 * by the operation history before an undo or redo is attempted.
-	 * </p>
-	 * 
-	 * @param approver
-	 *            the IOperationApprover to be added as an approver.the instance
-	 *            to remove. Must not be <code>null</code>. If an attempt is
-	 *            made to register an instance which is already registered with
-	 *            this instance, this method has no effect.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover
-	 */
-	void addOperationApprover(IOperationApprover approver);
-
-	/**
-	 * <p>
-	 * Add the specified listener to the list of operation history listeners
-	 * that are notified about changes in the history or operations that are
-	 * executed, undone, or redone.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IOperationHistoryListener to be added as a listener. Must
-	 *            not be <code>null</code>. If an attempt is made to register
-	 *            an instance which is already registered with this instance,
-	 *            this method has no effect.
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationHistoryListener
-	 * @see org.eclipse.core.commands.operations.OperationHistoryEvent
-	 */
-	void addOperationHistoryListener(IOperationHistoryListener listener);
-
-	/**
-	 * <p>
-	 * Close the current operation. If the operation has successfully completed,
-	 * send listeners a <code>DONE</code>, <code>UNDONE</code>, or
-	 * <code>REDONE</code> notification, depending on the mode. Otherwise send
-	 * an <code>OPERATION_NOT_OK</code> notification. Add the operation to the
-	 * history if specified and send an <code>OPERATION_ADDED</code>
-	 * notification.
-	 * </p>
-	 * <p>
-	 * Any operations that are executed and added after this operation is closed
-	 * will no longer be considered part of this operation.
-	 * </p>
-	 * <p>
-	 * This method has no effect if the caller has not previously called
-	 * {@link #openOperation}.
-	 * </p>
-	 * 
-	 * @param operationOK
-	 *            <code>true</code> if the operation successfully completed.
-	 *            Listeners should be notified with <code>DONE</code>,
-	 *            <code>UNDONE</code>, or <code>REDONE</code>.
-	 *            <code>false</code> if the operation did not successfully
-	 *            complete. Listeners should be notified with
-	 *            <code>OPERATION_NOT_OK</code>.
-	 * @param addToHistory
-	 *            <code>true</code> if the operation should be added to the
-	 *            history, <code>false</code> if it should not. If the
-	 *            <code>operationOK</code> parameter is <code>false</code>,
-	 *            the operation will never be added to the history.
-	 * @param mode
-	 *            the mode the operation was opened in. Can be one of
-	 *            <code>EXECUTE</code>, <code>UNDO</code>, or
-	 *            <code>REDO</code>. This determines what notifications are
-	 *            sent.
-	 */
-	void closeOperation(boolean operationOK, boolean addToHistory, int mode);
-
-	/**
-	 * <p>
-	 * Return whether there is a valid redoable operation available in the given
-	 * context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be checked
-	 * @return <code>true</code> if there is a redoable operation,
-	 *         <code>false</code> otherwise.
-	 */
-
-	boolean canRedo(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Return whether there is a valid undoable operation available in the given
-	 * context
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be checked
-	 * @return <code>true</code> if there is an undoable operation,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canUndo(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Dispose of the specified context in the history. All operations that have
-	 * only the given context will be disposed. References to the context in
-	 * operations that have more than one context will also be removed. A
-	 * history notification for the removal of each operation being disposed
-	 * will be sent.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be disposed
-	 * @param flushUndo
-	 *            <code>true</code> if the context should be flushed from the
-	 *            undo history, <code>false</code> if it should not
-	 * @param flushRedo
-	 *            <code>true</code> if the context should be flushed from the
-	 *            redo history, <code>false</code> if it should not.
-	 * @param flushContext
-	 *            <code>true</code> if the context is no longer in use and
-	 *            references to it should be flushed.
-	 */
-	void dispose(IUndoContext context, boolean flushUndo, boolean flushRedo,
-			boolean flushContext);
-
-	/**
-	 * <p>
-	 * Execute the specified operation and add it to the operations history if
-	 * successful. This method is used by clients who wish operation history
-	 * listeners to receive notifications before and after the execution of the
-	 * operation. Execution of the operation is subject to approval by any
-	 * registered {@link IOperationApprover2}. If execution is approved,
-	 * listeners will be notified before (<code>ABOUT_TO_EXECUTE</code>) and
-	 * after (<code>DONE</code> or <code>OPERATION_NOT_OK</code>).
-	 * </p>
-	 * <p>
-	 * If the operation successfully executes, an additional notification that
-	 * the operation has been added to the history (<code>OPERATION_ADDED</code>)
-	 * will be sent.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be executed and then added to the history
-	 * 
-	 * @param monitor
-	 *            the progress monitor to be used (or <code>null</code>)
-	 *            during the operation.
-	 * 
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the execution succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it was added to the history. <code>OK</code>
-	 * severity indicates that the execute operation was successful and that the
-	 * operation has been added to the history. Listeners will receive
-	 * notifications about the operation's success (<code>DONE</code>) and
-	 * about the operation being added to the history (<code>OPERATION_ADDED</code>).
-	 * </p>
-	 * <p>
-	 * <code>CANCEL</code> severity indicates that the user cancelled the
-	 * operation and that the operation was not added to the history.
-	 * <code>ERROR</code> severity indicates that the operation did not
-	 * successfully execute and that it was not added to the history. Any other
-	 * severity code is not specifically interpreted by the history, and the
-	 * operation will not be added to the history. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>DONE</code> notification if the execution was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during execution.
-	 * 
-	 */
-	IStatus execute(IUndoableOperation operation, IProgressMonitor monitor,
-			IAdaptable info) throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Return the limit on the undo and redo history for a particular context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context whose limit is requested
-	 * 
-	 * @return the undo and redo history limit for the specified context.
-	 */
-	int getLimit(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Get the array of operations in the redo history for a the specified undo
-	 * context. The operations are in the order that they were added to the
-	 * history, with the most recently undone operation appearing last in the
-	 * array. This history is used LIFO (last in, first out) when successive
-	 * "Redo" commands are invoked.
-	 * 
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the redo
-	 * @return the array of operations in the history
-	 */
-	IUndoableOperation[] getRedoHistory(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Get the operation that will next be redone in the given undo context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the redo
-	 * @return the operation to be redone or <code>null</code> if there is no
-	 *         operation available. There is no guarantee that the returned
-	 *         operation is valid for redo.
-	 */
-	IUndoableOperation getRedoOperation(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Get the array of operations in the undo history for the specified undo
-	 * context. The operations are in the order that they were added to the
-	 * history, with the most recently added operation appearing last in the
-	 * array. This history is used LIFO (last in, first out) when successive
-	 * "Undo" commands are invoked.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the undo
-	 * @return the array of operations in the history
-	 */
-	IUndoableOperation[] getUndoHistory(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Open this composite operation and consider it an operation that contains
-	 * other related operations. Consider all operations that are subsequently
-	 * executed or added to be part of this operation. When an operation is
-	 * opened, listeners will immediately receive a notification for the opened
-	 * operation. The specific notification depends on the mode in which the
-	 * operation is opened (<code>ABOUT_TO_EXECUTE</code>,
-	 * <code>ABOUT_TO_UNDO</code>, <code>ABOUT_TO_REDO</code>).
-	 * Notifications for any other execute or add while this operation is open
-	 * will not occur. Instead, those operations will be added to the current
-	 * operation.
-	 * </p>
-	 * <p>
-	 * Note: This method is intended to be used by legacy undo frameworks that
-	 * do not expect related undo operations to appear in the same undo history
-	 * as the triggering undo operation. When an operation is open, any
-	 * subsequent requests to execute, add, undo, or redo another operation will
-	 * result in that operation being added to the open operation. Once the
-	 * operation is closed, the composite will be considered an atomic
-	 * operation. Clients should not modify the composite directly (by adding
-	 * and removing children) while it is open.
-	 * </p>
-	 * <p>
-	 * When a composite is open, operations that are added to the history will
-	 * be considered part of the open operation instead. Operations that are
-	 * executed while a composite is open will first be executed and then added
-	 * to the composite.
-	 * </p>
-	 * <p>
-	 * Open operations cannot be nested. If this method is called when a
-	 * different operation is open, it is presumed to be an application coding
-	 * error and this method will throw an IllegalStateException.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the composite operation to be considered as the parent for all
-	 *            subsequent operations.
-	 * @param mode
-	 *            the mode the operation is executing in. Can be one of
-	 *            <code>EXECUTE</code>, <code>UNDO</code>, or
-	 *            <code>REDO</code>. This determines what notifications are
-	 *            sent.
-	 */
-	void openOperation(ICompositeOperation operation, int mode);
-
-	/**
-	 * <p>
-	 * The specified operation has changed in some way since it was added to the
-	 * operation history. Notify listeners with an OPERATION_CHANGED event.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation that has changed.
-	 * 
-	 */
-	void operationChanged(IUndoableOperation operation);
-
-	/**
-	 * <p>
-	 * Get the operation that will next be undone in the given undo context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context for the undo
-	 * @return the operation to be undone or <code>null</code> if there is no
-	 *         operation available. There is no guarantee that the available
-	 *         operation is valid for the undo.
-	 */
-	IUndoableOperation getUndoOperation(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Redo the most recently undone operation in the given context. The redo of
-	 * the operation is subject to approval by any registered
-	 * {@link IOperationApprover} before it is attempted.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be redone
-	 * @param monitor
-	 *            the progress monitor to be used for the redo, or
-	 *            <code>null</code> if no progress monitor is provided.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * @return the IStatus indicating whether the redo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the redo operation was successful and (since
-	 * release 3.2), that the operation will be placed in the undo history.
-	 * (Prior to 3.2, a successfully redone operation would not be placed on the
-	 * undo history if it could not be undone. Since 3.2, this is relaxed, and
-	 * all successfully redone operations are placed in the undo history.)
-	 * Listeners will receive the <code>REDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>REDONE</code> notification if the redo was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during redo.
-	 * 
-	 */
-	IStatus redo(IUndoContext context, IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Redo the specified operation. The redo of the operation is subject to
-	 * approval by any registered {@link IOperationApprover} before it is
-	 * attempted.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be redone
-	 * @param monitor
-	 *            the progress monitor to be used for the redo, or code>null</code>
-	 *            if no progress monitor is provided
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not <code>null</code>,
-	 *            it should minimally contain an adapter for the
-	 *            org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the redo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the redo operation was successful, and (since
-	 * release 3.2), that the operation will be placed in the undo history.
-	 * (Prior to 3.2, a successfully redone operation would not be placed on the
-	 * undo history if it could not be undone. Since 3.2, this is relaxed, and
-	 * all successfully redone operations are placed in the undo history.)
-	 * Listeners will receive the <code>REDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than <code>OK</code>,
-	 * listeners will receive the <code>OPERATION_NOT_OK</code> notification
-	 * instead of the <code>REDONE</code> notification if the redo was
-	 * approved and attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during redo.
-	 */
-	IStatus redoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Remove the specified operation approver from the list of operation
-	 * approvers that are consulted before an operation is undone or redone.
-	 * </p>
-	 * 
-	 * @param approver
-	 *            the IOperationApprover to be removed. Must not be
-	 *            <code>null</code>. If an attempt is made to remove an
-	 *            instance which is not already registered with this instance,
-	 *            this method has no effect.
-	 */
-	void removeOperationApprover(IOperationApprover approver);
-
-	/**
-	 * <p>
-	 * Remove the specified listener from the list of operation history
-	 * listeners.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            The IOperationHistoryListener to be removed. Must not be
-	 *            <code>null</code>. If an attempt is made to remove an
-	 *            instance which is not already registered with this instance,
-	 *            this method has no effect.
-	 */
-	void removeOperationHistoryListener(IOperationHistoryListener listener);
-
-	/**
-	 * <p>
-	 * Replace the specified operation in the undo or redo history with the
-	 * provided list of replacements. This protocol is typically used when a
-	 * composite is broken up into its atomic parts. The replacements will be
-	 * inserted so that the first replacement will be the first of the
-	 * replacements to be undone or redone. Listeners will be notified about the
-	 * removal of the replaced element and the addition of each replacement.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            The IUndoableOperation to be replaced
-	 * @param replacements
-	 *            the array of IUndoableOperation to replace the first operation
-	 */
-	void replaceOperation(IUndoableOperation operation,
-			IUndoableOperation[] replacements);
-
-	/**
-	 * <p>
-	 * Set the limit on the undo and redo history for a particular context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context whose limit is being set.
-	 * 
-	 * @param limit
-	 *            the maximum number of operations that should be kept in the
-	 *            undo or redo history for the specified context. Must not be
-	 *            negative.
-	 */
-	void setLimit(IUndoContext context, int limit);
-
-	/**
-	 * <p>
-	 * Undo the most recently executed operation in the given context. The undo
-	 * of the operation is subject to approval by any registered
-	 * {@link IOperationApprover} before it is attempted.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be undone
-	 * @param monitor
-	 *            the progress monitor to be used for the undo, or
-	 *            <code>null</code> if no progress monitor is provided.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the undo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the undo operation was successful, and (since
-	 * release 3.2), that the operation will be placed on the redo history.
-	 * (Prior to 3.2, a successfully undone operation would not be placed on the
-	 * redo history if it could not be redone. Since 3.2, this is relaxed, and
-	 * all successfully undone operations are placed in the redo history.)
-	 * Listeners will receive the <code>UNDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>UNDONE</code> notification if the undo was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during undo.
-	 */
-
-	IStatus undo(IUndoContext context, IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Undo the specified operation. The undo of the operation is subject to
-	 * approval by any registered {@link IOperationApprover} before it is
-	 * attempted.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the operation to be undone
-	 * @param monitor
-	 *            the progress monitor to be used for the undo, or
-	 *            <code>null</code> if no progress monitor is provided
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus indicating whether the undo succeeded.
-	 * 
-	 * <p>
-	 * The severity code in the returned status describes whether the operation
-	 * succeeded and whether it remains in the history. <code>OK</code>
-	 * severity indicates that the undo operation was successful, and (since
-	 * release 3.2), that the operation will be placed on the redo history.
-	 * (Prior to 3.2, a successfully undone operation would not be placed on the
-	 * redo history if it could not be redone. Since 3.2, this is relaxed, and
-	 * all successfully undone operations are placed in the redo history.)
-	 * Listeners will receive the <code>UNDONE</code> notification.
-	 * </p>
-	 * <p>
-	 * Other severity codes (<code>CANCEL</code>, <code>ERROR</code>,
-	 * <code>INFO</code>, etc.) are not specifically interpreted by the
-	 * history. The operation will remain in the history and the returned status
-	 * is simply passed back to the caller. For all severities other than
-	 * <code>OK</code>, listeners will receive the
-	 * <code>OPERATION_NOT_OK</code> notification instead of the
-	 * <code>UNDONE</code> notification if the undo was approved and
-	 * attempted.
-	 * </p>
-	 * 
-	 * @throws ExecutionException
-	 *             if an exception occurred during undo.
-	 */
-	IStatus undoOperation(IUndoableOperation operation,
-			IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java
deleted file mode 100644
index d665216..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IOperationHistoryListener.java
+++ /dev/null
@@ -1,38 +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.core.commands.operations;
-
-/**
- * <p>
- * This interface is used to listen to notifications from an IOperationHistory.
- * The supplied OperationHistoryEvent describes the particular notification.
- * </p>
- * <p>
- * Operation history listeners must be prepared to receive notifications from a
- * background thread. Any UI access occurring inside the implementation must be
- * properly synchronized using the techniques specified by the client's widget
- * library.
- * </p>
- * 
- * @since 3.1
- */
-public interface IOperationHistoryListener {
-	/**
-	 * Something of note has happened in the IOperationHistory. Listeners should
-	 * check the supplied event for details.
-	 * 
-	 * @param event 
-	 *            the OperationHistoryEvent that describes the particular
-	 *            notification.
-	 */
-	void historyNotification(OperationHistoryEvent event);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java
deleted file mode 100644
index 7b30cd5..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoContext.java
+++ /dev/null
@@ -1,57 +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.core.commands.operations;
-
-/**
- * <p>
- * An undo context is used to "tag" operations as being applicable to a certain
- * context. The undo context is used to filter the history of operations
- * available for undo or redo so that only operations appropriate for a given
- * undo context are shown when the application is presenting that context.
- * </p>
- * <p>
- * The scope of an undo context is defined by the application that is making
- * undo and redo of operations available. Undo contexts may be related to
- * application models, or may be associated with UI objects that are providing
- * undo and redo support.
- * </p>
- * <p>
- * An undo context may be defined as "matching" another context. This allows
- * applications to provide specialized implementations of an undo context that
- * will appear in the operation history for their matching context.
- * 
- * @since 3.1
- */
-
-public interface IUndoContext {
-
-	/**
-	 * Get the label that describes the undo context.
-	 * 
-	 * @return the label for the context.
-	 */
-	public String getLabel();
-
-	/**
-	 * Return whether the specified context is considered a match for the
-	 * receiving context. When a context matches another context, operations
-	 * that have the context are considered to also have the matching context.
-	 * 
-	 * @param context 
-	 *            the context to be checked against the receiving context.
-	 * 
-	 * @return <code>true</code> if the receiving context can be considered a
-	 *         match for the specified context, and <code>false</code> if it
-	 *         cannot.
-	 */
-	public boolean matches(IUndoContext context);
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java
deleted file mode 100644
index 4f7730f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/IUndoableOperation.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.core.commands.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * IUndoableOperation defines an operation that can be executed, undone, and
- * redone. Operations typically have fully defined parameters. That is, they are
- * usually created after the user has been queried for any input needed to
- * define the operation.
- * </p>
- * <p>
- * Operations determine their ability to execute, undo, or redo according to the
- * current state of the application. They do not make decisions about their
- * validity based on where they occur in the operation history. That is left to
- * the particular operation history.
- * </p>
- * 
- * @since 3.1
- */
-public interface IUndoableOperation {
-
-	/**
-	 * <p>
-	 * Add the specified context to the operation. If a context equal to the
-	 * specified context is already present, do not add it again. Note that
-	 * determining whether a context is already present is based on equality,
-	 * not whether the context matches ({@link IUndoContext#matches(IUndoContext)})
-	 * another context.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be added
-	 */
-	void addContext(IUndoContext context);
-
-	/**
-	 * <p>
-	 * Returns whether the operation can be executed in its current state.
-	 * </p>
-	 * 
-	 * <p>
-	 * Note: The computation for this method must be fast, as it is called
-	 * frequently. If necessary, this method can be optimistic in its
-	 * computation (returning true) and later perform more time-consuming
-	 * computations during the actual execution of the operation, returning the
-	 * appropriate status if the operation cannot actually execute at that time.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the operation can be executed;
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canExecute();
-
-	/**
-	 * <p>
-	 * Returns whether the operation can be redone in its current state.
-	 * </p>
-	 * 
-	 * <p>
-	 * Note: The computation for this method must be fast, as it is called
-	 * frequently. If necessary, this method can be optimistic in its
-	 * computation (returning true) and later perform more time-consuming
-	 * computations during the actual redo of the operation, returning the
-	 * appropriate status if the operation cannot actually be redone at that
-	 * time.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the operation can be redone;
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canRedo();
-
-	/**
-	 * <p>
-	 * Returns whether the operation can be undone in its current state.
-	 * </p>
-	 * 
-	 * <p>
-	 * Note: The computation for this method must be fast, as it is called
-	 * frequently. If necessary, this method can be optimistic in its
-	 * computation (returning true) and later perform more time-consuming
-	 * computations during the actual undo of the operation, returning the
-	 * appropriate status if the operation cannot actually be undone at that
-	 * time.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the operation can be undone;
-	 *         <code>false</code> otherwise.
-	 */
-	boolean canUndo();
-
-	/**
-	 * Dispose of the operation. This method is used when the operation is no
-	 * longer kept in the history. Implementers of this method typically
-	 * unregister any listeners.
-	 * 
-	 */
-	void dispose();
-
-	/**
-	 * Execute the operation. This method should only be called the first time
-	 * that an operation is executed.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus of the execution. The status severity should be set
-	 *         to <code>OK</code> if the operation was successful, and
-	 *         <code>ERROR</code> if it was not. Any other status is assumed
-	 *         to represent an incompletion of the execution.
-	 * @throws ExecutionException
-	 *             if an exception occurred during execution.
-	 */
-	IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * <p>
-	 * Returns the array of contexts that have been assigned to the operation.
-	 * </p>
-	 * <p>
-	 * This method may be called by the operation history from inside a
-	 * synchronized block. To avoid deadlock conditions, implementers of this
-	 * method must avoid dispatching and waiting on threads that modify the
-	 * operation history during this method.
-	 * </p>
-	 * 
-	 * @return the array of contexts
-	 */
-	IUndoContext[] getContexts();
-
-	/**
-	 * Return the label that should be used to show the name of the operation to
-	 * the user. This label is typically combined with the command strings shown
-	 * to the user in "Undo" and "Redo" user interfaces.  
-	 * 
-	 * @return the String label.  Should never be <code>null</code>.
-	 */
-	String getLabel();
-
-	/**
-	 * <p>
-	 * Returns whether the operation has a matching context for the specified
-	 * context.
-	 * </p>
-	 * <p>
-	 * This method may be called by the operation history from inside a
-	 * synchronized block. To avoid deadlock conditions, implementers of this
-	 * method must avoid dispatching and waiting on threads that modify the
-	 * operation history during this method.
-	 * </p>
-	 * 
-	 * @see IUndoContext#matches(IUndoContext)
-	 * 
-	 * @param context
-	 *            the context in question
-	 * @return <code>true</code> if the context is present, <code>false</code>
-	 *         if it is not.
-	 */
-	boolean hasContext(IUndoContext context);
-
-	/**
-	 * Redo the operation. This method should only be called after an operation
-	 * has been undone.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * @return the IStatus of the redo. The status severity should be set to
-	 *         <code>OK</code> if the redo was successful, and
-	 *         <code>ERROR</code> if it was not. Any other status is assumed
-	 *         to represent an incompletion of the redo.
-	 * @throws ExecutionException
-	 *             if an exception occurred during redo.
-	 */
-
-	IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-	/**
-	 * Remove the specified context from the operation. This method has no
-	 * effect if the context is not equal to another context in the context
-	 * list. Note that determining whether a context is present when removing it
-	 * is based on equality, not whether the context matches ({@link
-	 * IUndoContext#matches(IUndoContext)}) another context.
-	 * 
-	 * @param context
-	 *            the context to be removed
-	 */
-	void removeContext(IUndoContext context);
-
-	/**
-	 * Undo the operation. This method should only be called after an operation
-	 * has been executed.
-	 * 
-	 * @param monitor
-	 *            the progress monitor (or <code>null</code>) to use for
-	 *            reporting progress to the user.
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * @return the IStatus of the undo. The status severity should be set to
-	 *         <code>OK</code> if the redo was successful, and
-	 *         <code>ERROR</code> if it was not. Any other status is assumed
-	 *         to represent an incompletion of the undo.
-	 * @throws ExecutionException
-	 *             if an exception occurred during undo.
-	 */
-	IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException;
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java
deleted file mode 100644
index 03f0186..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoEnforcer.java
+++ /dev/null
@@ -1,54 +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.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * An operation approver that enforces a strict linear undo. It does not allow
- * the undo or redo of any operation that is not the latest available operation
- * in all of its undo contexts.  This class may be instantiated by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class LinearUndoEnforcer extends LinearUndoViolationDetector {
-	/**
-	 * Create an instance of LinearUndoEnforcer.
-	 */
-	public LinearUndoEnforcer() {
-		super();
-	}
-
-	/*
-	 * Return whether a linear redo violation is allowable.  A linear redo violation
-	 * is defined as a request to redo a particular operation even if it is not the most
-	 * recently added operation to the redo history.
-	 */
-	protected IStatus allowLinearRedoViolation(IUndoableOperation operation,
-			IUndoContext context, IOperationHistory history, IAdaptable uiInfo) {
-		return Status.CANCEL_STATUS;
-	}
-
-	/*
-	 * Return whether a linear undo violation is allowable.  A linear undo violation
-	 * is defined as a request to undo a particular operation even if it is not the most
-	 * recently added operation to the undo history.
-	 */
-	protected IStatus allowLinearUndoViolation(IUndoableOperation operation,
-			IUndoContext context, IOperationHistory history, IAdaptable uiInfo) {
-		return Status.CANCEL_STATUS;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java
deleted file mode 100644
index fbd54d1..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/LinearUndoViolationDetector.java
+++ /dev/null
@@ -1,142 +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.core.commands.operations;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * An abstract class for detecting violations in a strict linear undo/redo
- * model. Once a violation is detected, subclasses implement the specific
- * behavior for indicating whether or not the undo/redo should proceed.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class LinearUndoViolationDetector implements IOperationApprover {
-
-	/**
-	 * Create an instance of LinearUndoViolationDetector.
-	 */
-	public LinearUndoViolationDetector() {
-		super();
-	}
-
-	/**
-	 * Return a status indicating whether a linear redo violation is allowable.
-	 * A linear redo violation is defined as a request to redo a particular
-	 * operation even if it is not the most recently added operation to the redo
-	 * history.
-	 * 
-	 * @param operation
-	 *            the operation for which a linear redo violation has been
-	 *            detected.
-	 * @param context
-	 *            the undo context in which the linear redo violation exists
-	 * @param history
-	 *            the operation history containing the operation
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus describing whether the redo violation is allowed. The
-	 *         redo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the redo will be
-	 *         returned the status that caused the rejection. Specific status
-	 *         severities will not be interpreted by the history.
-	 */
-
-	protected abstract IStatus allowLinearRedoViolation(
-			IUndoableOperation operation, IUndoContext context,
-			IOperationHistory history, IAdaptable info);
-
-	/**
-	 * Return a status indicating whether a linear undo violation is allowable.
-	 * A linear undo violation is defined as a request to undo a particular
-	 * operation even if it is not the most recently added operation to the undo
-	 * history.
-	 * 
-	 * @param operation
-	 *            the operation for which a linear undo violation has been
-	 *            detected.
-	 * @param context
-	 *            the undo context in which the linear undo violation exists
-	 * @param history
-	 *            the operation history containing the operation
-	 * @param info
-	 *            the IAdaptable (or <code>null</code>) provided by the
-	 *            caller in order to supply UI information for prompting the
-	 *            user if necessary. When this parameter is not
-	 *            <code>null</code>, it should minimally contain an adapter
-	 *            for the org.eclipse.swt.widgets.Shell.class.
-	 * 
-	 * @return the IStatus describing whether the undo violation is allowed. The
-	 *         undo will not proceed if the status severity is not
-	 *         <code>OK</code>, and the caller requesting the undo will be
-	 *         returned the status that caused the rejection. Specific status
-	 *         severities will not be interpreted by the history.
-	 */
-	protected abstract IStatus allowLinearUndoViolation(
-			IUndoableOperation operation, IUndoContext context,
-			IOperationHistory history, IAdaptable info);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedRedoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public final IStatus proceedRedoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			IUndoContext context = contexts[i];
-			if (history.getRedoOperation(context) != operation) {
-				IStatus status = allowLinearRedoViolation(operation, context,
-						history, info);
-				if (!status.isOK()) {
-					return status;
-				}
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedUndoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-
-	public final IStatus proceedUndoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable info) {
-		IUndoContext[] contexts = operation.getContexts();
-		for (int i = 0; i < contexts.length; i++) {
-			IUndoContext context = contexts[i];
-			if (history.getUndoOperation(context) != operation) {
-				IStatus status = allowLinearUndoViolation(operation, context,
-						history, info);
-				if (!status.isOK()) {
-					return status;
-				}
-			}
-		}
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java
deleted file mode 100644
index e0d5eb6..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/ObjectUndoContext.java
+++ /dev/null
@@ -1,141 +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.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * <p>
- * An undo context that can be used to represent any given object. Clients
- * can add matching contexts to this context.  This class may be instantiated
- * by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class ObjectUndoContext extends UndoContext {
-
-	private Object object;
-
-	private String label;
-
-	private List children = new ArrayList();
-
-	/**
-	 * Construct an operation context that represents the given object.
-	 * 
-	 * @param object 
-	 *            the object to be represented.
-	 */
-	public ObjectUndoContext(Object object) {
-		this(object, null);
-	}
-
-	/**
-	 * Construct an operation context that represents the given object and has a
-	 * specialized label.
-	 * 
-	 * @param object 
-	 *            the object to be represented.
-	 * @param label 
-	 *            the label for the context
-	 */
-	public ObjectUndoContext(Object object, String label) {
-		super();
-		this.object = object;
-		this.label = label;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoContext#getLabel()
-	 */
-	public String getLabel() {
-		if (label != null) {
-			return label;
-		}
-		if (object != null) {
-			return object.toString();
-		}
-		return super.getLabel();
-	}
-
-	/**
-	 * Return the object that is represented by this context.
-	 * 
-	 * @return the object represented by this context.
-	 */
-	public Object getObject() {
-		return object;
-	}
-
-	/**
-	 * Add the specified context as a match of this context. Contexts added as
-	 * matches of this context will be interpreted as a match of this context
-	 * when the history is filtered for a particular context. Adding a match
-	 * allows components to create their own contexts for implementing
-	 * specialized behavior, yet have their operations appear in a more
-	 * global context.
-	 * 
-	 * @param context 
-	 *            the context to be added as a match of this context
-	 */
-	public void addMatch(IUndoContext context) {
-		children.add(context);
-	}
-
-	/**
-	 * Remove the specified context as a match of this context. The context will
-	 * no longer be interpreted as a match of this context when the history is
-	 * filtered for a particular context. This method has no effect if the
-	 * specified context was never previously added as a match.
-	 * 
-	 * @param context 
-	 *            the context to be removed from the list of matches for this
-	 *            context
-	 */
-	public void removeMatch(IUndoContext context) {
-		children.remove(context);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoContext#matches(IUndoContext
-	 *      context)
-	 */
-	public boolean matches(IUndoContext context) {
-		// Check first for explicit matches that have been assigned.
-		if (children.contains(context)) {
-			return true;
-		}
-		// Contexts for equal objects are considered matching
-		if (context instanceof ObjectUndoContext && getObject() != null) {
-			return getObject().equals(((ObjectUndoContext)context).getObject());
-		}
-		// Use the normal matching implementation
-		return super.matches(context);
-	}
-	
-	/**
-	 * The string representation of this operation.  Used for debugging purposes only.
-	 * This string should not be shown to an end user.
-	 * 
-	 * @return The string representation.
-	 */
-	public String toString() {
-		return getLabel();
-	}
-
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java
deleted file mode 100644
index cbaf6b9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryEvent.java
+++ /dev/null
@@ -1,236 +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.core.commands.operations;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * <p>
- * OperationHistoryEvent is used to communicate changes that occur in a
- * DefaultOperationHistory, including the addition or removal of operations, and
- * the execution, undo, and redo of operations.
- * </p>
- * <p>
- * Operation history listeners must be prepared to receive notifications from a
- * background thread. Any UI access occurring inside the implementation must be
- * properly synchronized using the techniques specified by the client's widget
- * library.
- * </p>
- * 
- * 
- * @since 3.1
- */
-public final class OperationHistoryEvent {
-
-	/**
-	 * ABOUT_TO_EXECUTE indicates that an operation is about to execute.
-	 * Listeners should prepare for the execution as appropriate. Listeners will
-	 * receive a DONE notification if the operation is successful, or an
-	 * OPERATION_NOT_OK notification if the execution is cancelled or otherwise
-	 * fails. This notification is only received for those operations executed
-	 * by the operation history. Operations that are added to the history after
-	 * execution do not trigger these notifications.
-	 * 
-	 * If the operation successfully executes, clients will also receive a
-	 * notification that it has been added to the history.
-	 * 
-	 * (value is 1).
-	 */
-
-	public static final int ABOUT_TO_EXECUTE = 1;
-
-	/**
-	 * ABOUT_TO_REDO indicates that an operation is about to be redone.
-	 * Listeners should prepare for the redo as appropriate. Listeners will
-	 * receive a REDONE notification if the operation is successful, or an
-	 * OPERATION_NOT_OK notification if the redo is cancelled or otherwise
-	 * fails.
-	 * 
-	 * (value is 2).
-	 */
-	public static final int ABOUT_TO_REDO = 2;
-
-	/**
-	 * ABOUT_TO_UNDO indicates that an operation is about to be undone.
-	 * Listeners should prepare for the undo as appropriate. Listeners will
-	 * receive an UNDONE notification if the operation is successful, or an
-	 * OPERATION_NOT_OK notification if the undo is cancelled or otherwise
-	 * fails.
-	 * 
-	 * (value is 3).
-	 */
-	public static final int ABOUT_TO_UNDO = 3;
-
-	/**
-	 * DONE indicates that an operation has been executed. Listeners can take
-	 * appropriate action, such as revealing any relevant state in the UI. This
-	 * notification is only received for those operations executed by the
-	 * operation history. Operations that are added to the history after
-	 * execution do not trigger this notification.
-	 * 
-	 * Clients will also receive a notification that the operation has been
-	 * added to the history.
-	 * 
-	 * (value is 4).
-	 */
-	public static final int DONE = 4;
-
-	/**
-	 * OPERATION_ADDED indicates that an operation was added to the history.
-	 * Listeners can use this notification to add their undo context to a new
-	 * operation as appropriate or otherwise record the operation.
-	 * 
-	 * (value is 5).
-	 */
-	public static final int OPERATION_ADDED = 5;
-
-	/**
-	 * OPERATION_CHANGED indicates that an operation has changed in some way
-	 * since it was added to the operations history.
-	 * 
-	 * (value is 6).
-	 */
-	public static final int OPERATION_CHANGED = 6;
-
-	/**
-	 * OPERATION_NOT_OK indicates that an operation was attempted and not
-	 * successful. Listeners typically use this when they have prepared for an
-	 * execute, undo, or redo, and need to know that the operation did not
-	 * successfully complete. For example, listeners that turn redraw off before
-	 * an operation is undone would turn redraw on when the operation completes,
-	 * or when this notification is received, since there will be no
-	 * notification of the completion.
-	 * 
-	 * (value is 7).
-	 */
-	public static final int OPERATION_NOT_OK = 7;
-
-	/**
-	 * OPERATION_REMOVED indicates an operation was removed from the history.
-	 * Listeners typically remove any record of the operation that they may have
-	 * kept in their own state. The operation has been disposed by the time
-	 * listeners receive this notification.
-	 * 
-	 * (value is 8).
-	 */
-	public static final int OPERATION_REMOVED = 8;
-
-	/**
-	 * REDONE indicates that an operation was redone. Listeners can take
-	 * appropriate action, such as revealing any relevant state in the UI.
-	 * 
-	 * (value is 9).
-	 */
-	public static final int REDONE = 9;
-
-	/**
-	 * UNDONE indicates that an operation was undone. Listeners can take
-	 * appropriate action, such as revealing any relevant state in the UI.
-	 * 
-	 * (value is 10).
-	 */
-	public static final int UNDONE = 10;
-
-	private int code = 0;
-
-	private IOperationHistory history;
-
-	private IUndoableOperation operation;
-
-	/* @since 3.2 */
-	private IStatus status;
-
-	/**
-	 * Construct an event for the specified operation history.
-	 * 
-	 * @param code
-	 *            the event code to be used.
-	 * @param history
-	 *            the history triggering the event.
-	 * @param operation
-	 *            the operation involved in the event.
-	 */
-	public OperationHistoryEvent(int code, IOperationHistory history,
-			IUndoableOperation operation) {
-		this(code, history, operation, null);
-	}
-
-	/**
-	 * Construct an event for the specified operation history.
-	 * 
-	 * @param code
-	 *            the event code to be used.
-	 * @param history
-	 *            the history triggering the event.
-	 * @param operation
-	 *            the operation involved in the event.
-	 * @param status
-	 *            the status associated with the event, or null if no status is
-	 *            available.
-	 * 
-	 * @since 3.2
-	 */
-	public OperationHistoryEvent(int code, IOperationHistory history,
-			IUndoableOperation operation, IStatus status) {
-		if (history == null) {
-			throw new NullPointerException();
-		}
-		if (operation == null) {
-			throw new NullPointerException();
-		}
-		this.code = code;
-		this.history = history;
-		this.operation = operation;
-		this.status = status;
-	}
-
-	/**
-	 * Return the type of event that is occurring.
-	 * 
-	 * @return the type code indicating the type of event.
-	 */
-	public int getEventType() {
-		return code;
-	}
-
-	/**
-	 * Return the operation history that triggered this event.
-	 * 
-	 * @return the operation history
-	 */
-
-	public IOperationHistory getHistory() {
-		return history;
-	}
-
-	/**
-	 * Return the operation associated with this event.
-	 * 
-	 * @return the operation
-	 */
-
-	public IUndoableOperation getOperation() {
-		return operation;
-	}
-
-	/**
-	 * Return the status associated with this event.
-	 * 
-	 * @return the status associated with this event. The status may be null.
-	 * 
-	 * @since 3.2
-	 */
-
-	public IStatus getStatus() {
-		return status;
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java
deleted file mode 100644
index b24d746..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationHistoryFactory.java
+++ /dev/null
@@ -1,66 +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.core.commands.operations;
-
-/**
- * <p>
- * This class is used to maintain the instance of the operation history that
- * should be used by classes that access the undo or redo history and add
- * undoable operations to the history. 
- * 
- * <p>
- * It is intended that an application can create an operation history appropriate
- * for its needs and set it into this class.  Otherwise, a default operation history
- * will be created.  The operation history may only be set one time.  All classes that 
- * access an operations history use this class to obtain the correct instance.  
- * 
- * @since 3.1
- */
-public final class OperationHistoryFactory {
-
-	private static IOperationHistory operationHistory;
-
-	/**
-	 * Return the operation history to be used for managing undoable operations.
-	 * 
-	 * @return the operation history to be used for executing, undoing, and
-	 *         redoing operations.
-	 */
-	public static IOperationHistory getOperationHistory() {
-		if (operationHistory == null) {
-			operationHistory = new DefaultOperationHistory();
-		}
-		return operationHistory;
-	}
-
-	/**
-	 * Set the operation history to be used for managing undoable operations.
-	 * This method may only be called one time, and must be called before any 
-	 * request to get the history.  Attempts to set the operation history will
-	 * be ignored after it has been already set, or after a default one has 
-	 * been created.
-	 * 
-	 * @param history 
-	 *            the operation history to be used for executing, undoing, and
-	 *            redoing operations.
-	 */
-	public static void setOperationHistory(IOperationHistory history) {
-		// If one has already been set or created, ignore this request.
-		if (operationHistory == null) {
-			operationHistory = history;
-		}
-	}
-	
-	private OperationHistoryFactory() {
-		// may not be instantiated
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java
deleted file mode 100644
index 9583d2a..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/OperationStatus.java
+++ /dev/null
@@ -1,71 +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.core.commands.operations;
-
-import org.eclipse.core.runtime.Status;
-
-/**
- * <p>
- * OperationStatus describes the status of a request to execute, undo, or redo
- * an operation.  This class may be instantiated by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class OperationStatus extends Status {
-	/**
-	 * NOTHING_TO_REDO indicates there was no operation available for redo.
-	 * 
-	 * (value is 1).
-	 */
-	public static final int NOTHING_TO_REDO = 1;
-
-	/**
-	 * NOTHING_TO_UNDO indicates there was no operation available for undo.
-	 * 
-	 * (value is 2).
-	 */
-	public static final int NOTHING_TO_UNDO = 2;
-
-	/**
-	 * OPERATION_INVALID indicates that the operation available for undo or redo
-	 * is not in a state to successfully perform the undo or redo.
-	 * 
-	 * (value is 3).
-	 */
-	public static final int OPERATION_INVALID = 3;
-
-	/**
-	 * DEFAULT_PLUGIN_ID identifies the default plugin reporting the status.
-	 * 
-	 * (value is "org.eclipse.core.commands").
-	 */
-	static String DEFAULT_PLUGIN_ID = "org.eclipse.core.commands"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new operation status, specifying all properties.
-	 * 
-	 * @param severity
-	 *            the severity for the status
-	 * @param pluginId 
-	 *            the unique identifier of the relevant plug-in
-	 * @param code
-	 *            the informational code for the status
-	 * @param message
-	 *            a human-readable message, localized to the current locale
-	 * @param exception
-	 *            a low-level exception, or <code>null</code> if not
-	 *            applicable
-	 */
-	public OperationStatus(int severity, String pluginId, int code, String message, Throwable exception) {
-		super(severity, pluginId, code, message, exception);
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
deleted file mode 100644
index 8747181..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/TriggeredOperations.java
+++ /dev/null
@@ -1,465 +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.core.commands.operations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-
-/**
- * Triggered operations are a specialized implementation of a composite
- * operation that keeps track of operations triggered by the execution of some
- * primary operation. The composite knows which operation was the trigger for
- * subsequent operations, and adds all triggered operations as children. When
- * execution, undo, or redo is performed, only the triggered operation is
- * executed, undone, or redone if it is still present. If the trigger is removed
- * from the triggered operations, then the child operations will replace the
- * triggered operations in the history.
- * <p>
- * This class may be instantiated by clients.
- * </p>
- * 
- * @since 3.1
- */
-public final class TriggeredOperations extends AbstractOperation implements
-		ICompositeOperation, IAdvancedUndoableOperation,
-		IContextReplacingOperation {
-
-	private IUndoableOperation triggeringOperation;
-
-	private IOperationHistory history;
-
-	private List children = new ArrayList();
-
-	/**
-	 * Construct a composite triggered operations using the specified undoable
-	 * operation as the trigger. Use the label of this trigger as the label of
-	 * the operation.
-	 * 
-	 * @param operation
-	 *            the operation that will trigger other operations.
-	 * @param history
-	 *            the operation history containing the triggered operations.
-	 */
-	public TriggeredOperations(IUndoableOperation operation,
-			IOperationHistory history) {
-		super(operation.getLabel());
-		triggeringOperation = operation;
-		recomputeContexts();
-		this.history = history;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#add(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void add(IUndoableOperation operation) {
-		children.add(operation);
-		recomputeContexts();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#remove(org.eclipse.core.commands.operations.IUndoableOperation)
-	 */
-	public void remove(IUndoableOperation operation) {
-		if (operation == triggeringOperation) {
-			// the triggering operation is being removed, so we must replace
-			// this composite with its individual triggers.
-			triggeringOperation = null;
-			// save the children before replacing the operation, since this
-			// operation will be disposed as part of replacing it. We don't want
-			// the children to be disposed since they are to replace this
-			// operation.
-			List childrenToRestore = new ArrayList(children);
-			children = new ArrayList(0);
-			recomputeContexts();
-			operation.dispose();
-			// now replace the triggering operation
-			history.replaceOperation(this,
-					(IUndoableOperation[]) childrenToRestore
-							.toArray(new IUndoableOperation[childrenToRestore
-									.size()]));
-		} else {
-			children.remove(operation);
-			operation.dispose();
-			recomputeContexts();
-		}
-	}
-
-	/**
-	 * Remove the specified context from the receiver. This method is typically
-	 * invoked when the history is being flushed for a certain context. In the
-	 * case of triggered operations, if the only context for the triggering
-	 * operation is being removed, then the triggering operation must be
-	 * replaced in the operation history with the atomic operations that it
-	 * triggered. If the context being removed is not the only context for the
-	 * triggering operation, the triggering operation will remain, and the
-	 * children will each be similarly checked.
-	 * 
-	 * @param context
-	 *            the undo context being removed from the receiver.
-	 */
-	public void removeContext(IUndoContext context) {
-
-		boolean recompute = false;
-		// first check to see if we are removing the only context of the
-		// triggering operation
-		if (triggeringOperation != null
-				&& triggeringOperation.hasContext(context)) {
-			if (triggeringOperation.getContexts().length == 1) {
-				remove(triggeringOperation);
-				return;
-			}
-			triggeringOperation.removeContext(context);
-			recompute = true;
-		}
-		// the triggering operation remains, check all the children
-		ArrayList toBeRemoved = new ArrayList();
-		for (int i = 0; i < children.size(); i++) {
-			IUndoableOperation child = (IUndoableOperation) children.get(i);
-			if (child.hasContext(context)) {
-				if (child.getContexts().length == 1) {
-					toBeRemoved.add(child);
-				} else {
-					child.removeContext(context);
-				}
-				recompute = true;
-			}
-		}
-		for (int i = 0; i < toBeRemoved.size(); i++) {
-			remove((IUndoableOperation) toBeRemoved.get(i));
-		}
-		if (recompute) {
-			recomputeContexts();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (triggeringOperation != null) {
-			history.openOperation(this, IOperationHistory.EXECUTE);
-			try {
-				IStatus status = triggeringOperation.execute(monitor, info);
-				history.closeOperation(status.isOK(), false,
-						IOperationHistory.EXECUTE);
-				return status;
-			} catch (ExecutionException e) {
-				history.closeOperation(false, false, IOperationHistory.EXECUTE);
-				throw e;
-			} catch (RuntimeException e) {
-				history.closeOperation(false, false, IOperationHistory.EXECUTE);
-				throw e;	
-			}
-
-		}
-		return IOperationHistory.OPERATION_INVALID_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (triggeringOperation != null) {
-			history.openOperation(this, IOperationHistory.REDO);
-			List childrenToRestore = new ArrayList(children);
-			try {
-				removeAllChildren();
-				IStatus status = triggeringOperation.redo(monitor, info);
-				if (!status.isOK()) {
-					children = childrenToRestore;
-				}
-				history.closeOperation(status.isOK(), false,
-						IOperationHistory.REDO);
-				return status;
-			} catch (ExecutionException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.REDO);
-				throw e;
-			} catch (RuntimeException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.REDO);
-				throw e;	
-			}
-		}
-		return IOperationHistory.OPERATION_INVALID_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (triggeringOperation != null) {
-			history.openOperation(this, IOperationHistory.UNDO);
-			List childrenToRestore = new ArrayList(children);
-			try {
-				removeAllChildren();
-				IStatus status = triggeringOperation.undo(monitor, info);
-				if (!status.isOK()) {
-					children = childrenToRestore;
-				}
-				history.closeOperation(status.isOK(), false,
-						IOperationHistory.UNDO);
-				return status;
-			} catch (ExecutionException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.UNDO);
-				throw e;
-			} catch (RuntimeException e) {
-				children = childrenToRestore;
-				history.closeOperation(false, false, IOperationHistory.UNDO);
-				throw e;	
-			}
-		}
-		return IOperationHistory.OPERATION_INVALID_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canUndo()
-	 */
-	public boolean canUndo() {
-		if (triggeringOperation != null) {
-			return triggeringOperation.canUndo();
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canExecute()
-	 */
-	public boolean canExecute() {
-		if (triggeringOperation != null) {
-			return triggeringOperation.canExecute();
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#canRedo()
-	 */
-	public boolean canRedo() {
-		if (triggeringOperation != null) {
-			return triggeringOperation.canRedo();
-		}
-		return false;
-	}
-
-	/*
-	 * Dispose all operations in the receiver.
-	 */
-	public void dispose() {
-		for (int i = 0; i < children.size(); i++) {
-			((IUndoableOperation) (children.get(i))).dispose();
-		}
-		if (triggeringOperation != null) {
-			triggeringOperation.dispose();
-		}
-	}
-
-	/*
-	 * Recompute contexts in light of some change in the children
-	 */
-	private void recomputeContexts() {
-		ArrayList allContexts = new ArrayList();
-		if (triggeringOperation != null) {
-			IUndoContext[] contexts = triggeringOperation.getContexts();
-			for (int i = 0; i < contexts.length; i++) {
-				allContexts.add(contexts[i]);
-			}
-		}
-		for (int i = 0; i < children.size(); i++) {
-			IUndoContext[] contexts = ((IUndoableOperation) children.get(i))
-					.getContexts();
-			for (int j = 0; j < contexts.length; j++) {
-				if (!allContexts.contains(contexts[j])) {
-					allContexts.add(contexts[j]);
-				}
-			}
-		}
-		contexts = allContexts;
-
-	}
-
-	/*
-	 * Remove all non-triggering children
-	 */
-	private void removeAllChildren() {
-		IUndoableOperation[] nonTriggers = (IUndoableOperation[]) children
-				.toArray(new IUndoableOperation[children.size()]);
-		for (int i = 0; i < nonTriggers.length; i++) {
-			children.remove(nonTriggers[i]);
-			nonTriggers[i].dispose();
-		}
-	}
-
-	/**
-	 * Return the operation that triggered the other operations in this
-	 * composite.
-	 * 
-	 * @return the IUndoableOperation that triggered the other children.
-	 */
-	public IUndoableOperation getTriggeringOperation() {
-		return triggeringOperation;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedModelOperation#getAffectedObjects()
-	 */
-	public Object[] getAffectedObjects() {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			return ((IAdvancedUndoableOperation) triggeringOperation)
-					.getAffectedObjects();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedModelOperation#aboutToNotify(org.eclipse.core.commands.operations.OperationHistoryEvent)
-	 */
-	public void aboutToNotify(OperationHistoryEvent event) {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			((IAdvancedUndoableOperation) triggeringOperation)
-					.aboutToNotify(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeUndoableStatus(IProgressMonitor monitor)
-			throws ExecutionException {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			try {
-				return ((IAdvancedUndoableOperation) triggeringOperation)
-						.computeUndoableStatus(monitor);
-			} catch (OperationCanceledException e) {
-				return Status.CANCEL_STATUS;
-			}
-		}
-		return Status.OK_STATUS;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IAdvancedUndoableOperation#computeRedoableStatus(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus computeRedoableStatus(IProgressMonitor monitor)
-			throws ExecutionException {
-		if (triggeringOperation instanceof IAdvancedUndoableOperation) {
-			try {
-				return ((IAdvancedUndoableOperation) triggeringOperation)
-						.computeRedoableStatus(monitor);
-			} catch (OperationCanceledException e) {
-				return Status.CANCEL_STATUS;
-			}
-		}
-		return Status.OK_STATUS;
-
-	}
-
-	/**
-	 * Replace the undo context of the receiver with the provided replacement
-	 * undo context. In the case of triggered operations, all contained
-	 * operations are checked and any occurrence of the original context is
-	 * replaced with the new undo context.
-	 * <p>
-	 * This message has no effect if the original undo context is not present in
-	 * the receiver.
-	 * 
-	 * @param original
-	 *            the undo context which is to be replaced
-	 * @param replacement
-	 *            the undo context which is replacing the original
-	 * @since 3.2
-	 */
-	public void replaceContext(IUndoContext original, IUndoContext replacement) {
-
-		// first check the triggering operation
-		if (triggeringOperation != null
-				&& triggeringOperation.hasContext(original)) {
-			if (triggeringOperation instanceof IContextReplacingOperation) {
-				((IContextReplacingOperation) triggeringOperation)
-						.replaceContext(original, replacement);
-			} else {
-				triggeringOperation.removeContext(original);
-				triggeringOperation.addContext(replacement);
-			}
-		}
-		// Now check all the children
-		for (int i = 0; i < children.size(); i++) {
-			IUndoableOperation child = (IUndoableOperation) children.get(i);
-			if (child.hasContext(original)) {
-				if (child instanceof IContextReplacingOperation) {
-					((IContextReplacingOperation) child).replaceContext(
-							original, replacement);
-				} else {
-					child.removeContext(original);
-					child.addContext(replacement);
-				}
-			}
-		}
-		recomputeContexts();
-	}
-
-	/**
-	 * Add the specified context to the operation. Overridden in
-	 * TriggeredOperations to add the specified undo context to the triggering
-	 * operation.
-	 * 
-	 * @param context
-	 *            the context to be added
-	 * 
-	 * @since 3.2
-	 */
-	public void addContext(IUndoContext context) {
-		if (triggeringOperation != null) {
-			triggeringOperation.addContext(context);
-			recomputeContexts();
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.java
deleted file mode 100644
index d0d5bae..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/UndoContext.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.core.commands.operations;
-
-/**
- * <p>
- * A simple, lightweight undo context that can be used to tag any operation. It
- * does not provided a specialized label. This class may be instantiated by
- * clients. This class may also be subclassed.
- * </p>
- * 
- * @since 3.1
- */
-public class UndoContext implements IUndoContext {
-
-	/**
-	 * <p>
-	 * Get the label that describes the undo context. The default implementation
-	 * returns the empty String. Subclasses may override.
-	 * </p>
-	 * 
-	 * @return the label for the context.
-	 */
-	public String getLabel() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * <p>
-	 * Return whether the specified context is considered a match for the
-	 * receiving context. When a context matches another context, operations
-	 * that have the context are considered to also have the matching context.
-	 * The default implementation checks whether the supplied context is
-	 * identical to this context. Subclasses may override.
-	 * </p>
-	 * 
-	 * @param context
-	 *            the context to be checked against the receiving context.
-	 * 
-	 * @return <code>true</code> if the receiving context can be considered a
-	 *         match for the specified context, and <code>false</code> if it
-	 *         cannot.
-	 */
-	public boolean matches(IUndoContext context) {
-		return context == this;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html
deleted file mode 100644
index 184442f..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/operations/package.html
+++ /dev/null
@@ -1,26 +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="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Classes for the creation of undoable operations which can be added to an operations
-history and later be undone and redone.
-<h2>
-Package Specification</h2>
-An <b>undoable operation</b> is a unit of work that can be executed, undone, and redone.
-Operations can be added to an <b>operation history</b> so that they can later be
-undone and redone according to the undo model for an application.  Operations may be 
-assigned one or more <b>undo contexts</b> which can be used to filter the available 
-operations for undo or redo in the operation history.  Clients may choose to provide
-undo and redo function for all operations in a history, or only for a particular
-undo context in that history.  Operation histories may be configured with an 
-<b>operation approver</b> so that applications can enforce any desired undo model, 
-such as strict linear (LIFO) undo.  This package provides the definition and a 
-basic implementation for operations, undo contexts, histories, and operation
-approvers.
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html
deleted file mode 100644
index 14dabf4..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/package.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Package-level Javadoc</title>
-<link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
-	type="text/css">
-</head>
-<body style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0)">
-Application programming interfaces for commands and handlers. 
-<h2>Package Specification</h2>
-<p>
-This package provides API and implementation classes to define abstract
-pieces of functionality.  These pieces of functionality are intended to
-provide a common way for plug-ins and the user interface to communicate
-potential behaviour.
-</p>
-<p>
-This package is designed so that its elements can be public and dynamic.  That
-is, elements in this package can appear and disappear over the life of the
-application.
-</p>
-<h3>Command</h3>
-<p>
-A command is an abstract representation for some semantic behaviour.  For
-example, there might be a "copy" command.  How this command actually
-behaves might be dependent on what state your application is in.  It is not
-the actual implementation of that behaviour, and it is not the visual
-representation of that behaviour.
-</p>
-<p>
-Commands are managed by an instance of <code>CommandManager</code>.  In fact, a
-command cannot be constructed directly.  Commands are constructed using the
-method <code>CommandManager.getCommand(String)</code>.  This ensures that there
-is only ever one command with a given identifier ever associated with a command.  
-manager.
-</p>
-<p>
-When a command is first constructed, it is undefined.  An undefined command is
-one that is carrying no information except for an id.  Attempts to interact
-with a command that is undefined will result in a 
-<code>NotDefinedException</code>.  Through this mechanism, it is possible for
-clients to hold references to commands, and still have those commands
-"disappear" (i.e., become undefined).  This is particularly useful in a system
-built around dynamic components (e.g., plug-ins).
-<p>
-Commands can be grouped into categories.  These categories are arbitrary
-groupings, and have no defined behaviour.  These categories might be used in a
-user interface for breaking up a large list of commands into semantically
-similar commands -- making the list easier to navigate.
-</p>
-<p>
-It is also possible to attach listeners to both commands and command managers.
-A listener on a command manager will be notified if the list of defined
-commands or categories changes.
-</p>
-<h4>Examples</h4>
-<blockquote><pre><code>
-	CommandManager manager = new CommandManager();
-	Category category = manager.getCategory("categoryId");
-	category.define("name", "description");
-	Command command = manager.getCommand("commandId");
-	command.define("name", "description", category);
-</code></pre></blockquote>
-<p>This example shows how to create a command from scratch -- with no existing
-manager or categories.</p>
-<blockquote><pre><code>
-	command.undefine();
-	command = null;
-	category.undefine();
-	category = null;
-</code></pre></blockquote>
-<p>If you wish to get rid of the command, then you simply undefine it.  This
-will send notification to the appropriate listeners, and future attempts to
-access it will fail.  If you are the only one holding on to the command, then
-it will be garbage collected.  However, if other people still have a reference
-to the command, then the stub will remain until they respond to the change.</p>
-<blockquote><pre><code>
-	String name;
-	try {
-		name = command.getName();
-	} catch (NotDefinedException e) {
-		// Clean-up my reference to the command.
-		command = null;
-		return;
-	}
-</code></pre></blockquote>
-<p>This shows one way of dealing with commands.  Instead of listening for
-changes to the command, you can simply listen for the exceptions to be thrown.
-When a <code>NotDefinedException</code> is thrown, you can clean up your own
-code.  How you clean up is application dependent.  In this case, the reference
-is cleared and we return from the method.</p>
-<blockquote><pre><code>
-	try {
-		String name = command.getName();
-		
-		// Do all your work in the block.
-		
-	} catch (NotDefinedException e) {
-		// Ignore, or possibly throw an error
-	}
-	
-	...
-	
-	public commandChanged(CommandEvent e) {
-		if (e.hasDefinedChanged()) {
-			command.removeListener(this);
-			command = null;
-		}
-	}
-</code></pre></blockquote>
-<p>Another way is to attach a listener, and then simply ignore the exceptions.
-When the command becomes undefined, you will be notified.  This gives your the
-opportunity to unhook your listener and release your reference.</p>
-
-<h3>Handler</h3>
-<p>
-A handler is the behaviour of a command at a particular point in time.  This is
-the piece that will actually interact with your application model.  For every
-command, there can be zero or more possible handlers.  However, at any one
-time, there is either one handler (i.e., handled) or no handler (i.e.,
-unhandled).
-</p>
-<p>
-Handlers must implement <code>IHandler</code>.  However, there is a convenient
-abstract class, <code>AbstractHandler</code> which provides default behaviour
-for some of the methods in the interface.  It is recommended that developers
-subclass <code>AbstractHandler</code>.
-</p>
-<p>
-Beside functional behaviour, a handler carries with it a map of attribute
-values.  This is a completely optionaly way of carrying extra data.  In the
-case of the <code>AbstractHandler</code>, this map is empty.  Some attributes
-have well defined meanings.  These attributes are defined in
-<code>IHandlerAttributes</code>.
-</p>
-<p>
-Like commands, handlers can have listeners attached to them.  Listeners will be
-notified when the attributes of the handler change.
-</p>
-<p>
-When a handler executes, it is passed an event object
-(<code>ExecutionEvent</code>) that carries with it some pieces of information.
-First of all, it contains the parameters for execution.  Parameters are simple
-key-value pairs that are intended to modify the execution in some way.  The
-event also carries with it a collection of contexts that were active at the
-time of execution.  The event also carries two untyped objects: the triggering
-event and the current application state.  In the case of a graphical tool, the
-triggering event is likely to be the underlying widget toolkit event.  The 
-application state might contain information like widget focus information.  In
-your own application, feel free to use whichever of these event attributes that
-fit your application.
-</p>
-<h4>Examples</h4>
-<blockquote><pre><code>
-	IHandler myHandler = createHandler();
-	command.setHandler(myHandler);
-	
-	ExecutionEvent e = new ExecutionEvent(parameters,contexts,trigger,state);
-	try {
-		command.execute(e);
-	} catch (ExecutionException ex) {
-		// Notify the user, log the problem, etc.
-	}
-</code></pre></blockquote>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java
deleted file mode 100644
index 353f877..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/commands/util/Tracing.java
+++ /dev/null
@@ -1,68 +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.core.commands.util;
-
-/**
- * <p>
- * A utility class for printing tracing output to the console.
- * </p>
- * <p>
- * Clients must not extend or instantiate this class.
- * </p>
- * 
- * @since 3.2
- */
-public final class Tracing {
-
-	/**
-	 * The separator to place between the component and the message.
-	 */
-	public static final String SEPARATOR = " >>> "; //$NON-NLS-1$
-
-	/**
-	 * <p>
-	 * Prints a tracing message to standard out. The message is prefixed by a
-	 * component identifier and some separator. See the example below.
-	 * </p>
-	 * 
-	 * <pre>
-	 *        BINDINGS &gt;&gt; There are 4 deletion markers
-	 * </pre>
-	 * 
-	 * @param component
-	 *            The component for which this tracing applies; may be
-	 *            <code>null</code>
-	 * @param message
-	 *            The message to print to standard out; may be <code>null</code>.
-	 */
-	public static final void printTrace(final String component,
-			final String message) {
-		StringBuffer buffer = new StringBuffer();
-		if (component != null) {
-			buffer.append(component);
-		}
-		if ((component != null) && (message != null)) {
-			buffer.append(SEPARATOR);
-		}
-		if (message != null) {
-			buffer.append(message);
-		}
-		System.out.println(buffer.toString());
-	}
-
-	/**
-	 * This class is not intended to be instantiated.
-	 */
-	private Tracing() {
-		// Do nothing.
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java
deleted file mode 100644
index daae4b9..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/operations/GlobalUndoContext.java
+++ /dev/null
@@ -1,38 +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.core.internal.commands.operations;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-
-/**
- * <p>
- * An operation context that matches to any context.  It can be used to 
- * get an unfiltered (global) history.
- * </p>
- * 
- * @since 3.1
- */
-public class GlobalUndoContext implements IUndoContext {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoContext#getLabel()
-	 */
-	public String getLabel() {
-		return "Global Undo Context"; //$NON-NLS-1$
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoContext#matches(IUndoContext context)
-	 */
-	public boolean matches(IUndoContext context) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java b/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java
deleted file mode 100644
index 3d5d505..0000000
--- a/bundles/org.eclipse.core.commands/src/org/eclipse/core/internal/commands/util/Util.java
+++ /dev/null
@@ -1,357 +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.core.internal.commands.util;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.SortedSet;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-/**
- * A class providing utility functions for the commands plug-in.
- * 
- * @since 3.1
- */
-public final class Util {
-
-    /**
-     * A shared, unmodifiable, empty, sorted map. This value is guaranteed to
-     * always be the same.
-     */
-    public final static SortedMap EMPTY_SORTED_MAP = Collections
-            .unmodifiableSortedMap(new TreeMap());
-
-    /**
-     * A shared, unmodifiable, empty, sorted set. This value is guaranteed to
-     * always be the same.
-     */
-    public final static SortedSet EMPTY_SORTED_SET = Collections
-            .unmodifiableSortedSet(new TreeSet());
-
-    /**
-     * A shared, zero-length string -- for avoiding non-externalized string
-     * tags. This value is guaranteed to always be the same.
-     */
-    public final static String ZERO_LENGTH_STRING = ""; //$NON-NLS-1$
-
-    /**
-     * Asserts the the given object is an instance of the given class --
-     * optionally allowing the object to be <code>null</code>.
-     * 
-     * @param object
-     *            The object for which the type should be checked.
-     * @param c
-     *            The class that the object must be; fails if the class is
-     *            <code>null</code>.
-     * @param allowNull
-     *            Whether the object being <code>null</code> will not cause a
-     *            failure.
-     */
-    public static final void assertInstance(final Object object, final Class c,
-            final boolean allowNull) {
-        if (object == null && allowNull) {
-			return;
-		}
-
-        if (object == null || c == null) {
-			throw new NullPointerException();
-		} else if (!c.isInstance(object)) {
-			throw new IllegalArgumentException();
-		}
-    }
-
-    /**
-     * Compares two boolean values. <code>false</code> is considered to be
-     * less than <code>true</code>.
-     * 
-     * @param left
-     *            The left value to compare.
-     * @param right
-     *            The right value to compare.
-     * @return <code>-1</code> if <code>left</code> is <code>false</code>
-     *         and <code>right</code> is <code>true</code>;<code>0</code>
-     *         if they are equal; <code>1</code> if <code>left</code> is
-     *         <code>true</code> and <code>right</code> is
-     *         <code>false</code>
-     */
-    public static final int compare(final boolean left, final boolean right) {
-        return left == false ? (right == true ? -1 : 0) : (right == true ? 0
-                : 1);
-    }
-
-    /**
-     * Compares two comparable objects, but with protection against
-     * <code>null</code>.
-     * 
-     * @param left
-     *            The left value to compare; may be <code>null</code>.
-     * @param right
-     *            The right value to compare; may be <code>null</code>.
-     * @return <code>-1</code> if <code>left</code> is <code>null</code>
-     *         and <code>right</code> is not <code>null</code>;
-     *         <code>0</code> if they are both <code>null</code>;
-     *         <code>1</code> if <code>left</code> is not <code>null</code>
-     *         and <code>right</code> is <code>null</code>. Otherwise, the
-     *         result of <code>left.compareTo(right)</code>.
-     */
-    public static final int compare(final Comparable left,
-            final Comparable right) {
-        if (left == null && right == null) {
-			return 0;
-		} else if (left == null) {
-			return -1;
-		} else if (right == null) {
-			return 1;
-		} else {
-			return left.compareTo(right);
-		}
-    }
-
-    /**
-     * Compares two integer values. This method fails if the distance between
-     * <code>left</code> and <code>right</code> is greater than
-     * <code>Integer.MAX_VALUE</code>.
-     * 
-     * @param left
-     *            The left value to compare.
-     * @param right
-     *            The right value to compare.
-     * @return <code>left - right</code>
-     */
-    public static final int compare(final int left, final int right) {
-        return left - right;
-    }
-
-    /**
-     * Compares two objects that are not otherwise comparable. If neither object
-     * is <code>null</code>, then the string representation of each object is
-     * used.
-     * 
-     * @param left
-     *            The left value to compare. The string representation of this
-     *            value must not be <code>null</code>.
-     * @param right
-     *            The right value to compare. The string representation of this
-     *            value must not be <code>null</code>.
-     * @return <code>-1</code> if <code>left</code> is <code>null</code>
-     *         and <code>right</code> is not <code>null</code>;
-     *         <code>0</code> if they are both <code>null</code>;
-     *         <code>1</code> if <code>left</code> is not <code>null</code>
-     *         and <code>right</code> is <code>null</code>. Otherwise, the
-     *         result of
-     *         <code>left.toString().compareTo(right.toString())</code>.
-     */
-    public static final int compare(final Object left, final Object right) {
-        if (left == null && right == null) {
-			return 0;
-		} else if (left == null) {
-			return -1;
-		} else if (right == null) {
-			return 1;
-		} else {
-			return left.toString().compareTo(right.toString());
-		}
-    }
-
-    /**
-     * Decides whether two booleans are equal.
-     * 
-     * @param left
-     *            The first boolean to compare; may be <code>null</code>.
-     * @param right
-     *            The second boolean to compare; may be <code>null</code>.
-     * @return <code>true</code> if the booleans are equal; <code>false</code>
-     *         otherwise.
-     */
-    public static final boolean equals(final boolean left, final boolean right) {
-        return left == right;
-    }
-
-    /**
-     * Decides whether two objects are equal -- defending against
-     * <code>null</code>.
-     * 
-     * @param left
-     *            The first object to compare; may be <code>null</code>.
-     * @param right
-     *            The second object to compare; may be <code>null</code>.
-     * @return <code>true</code> if the objects are equals; <code>false</code>
-     *         otherwise.
-     */
-    public static final boolean equals(final Object left, final Object right) {
-        return left == null ? right == null : ((right != null) && left
-                .equals(right));
-    }
-
-	/**
-	 * Tests whether two arrays of objects are equal to each other. The arrays
-	 * must not be <code>null</code>, but their elements may be
-	 * <code>null</code>.
-	 * 
-	 * @param leftArray
-	 *            The left array to compare; may be <code>null</code>, and
-	 *            may be empty and may contain <code>null</code> elements.
-	 * @param rightArray
-	 *            The right array to compare; may be <code>null</code>, and
-	 *            may be empty and may contain <code>null</code> elements.
-	 * @return <code>true</code> if the arrays are equal length and the
-	 *         elements at the same position are equal; <code>false</code>
-	 *         otherwise.
-	 */
-	public static final boolean equals(final Object[] leftArray,
-			final Object[] rightArray) {
-		if (leftArray == null) {
-			return (rightArray == null);
-		} else if (rightArray == null) {
-			return false;
-		}
-
-		if (leftArray.length != rightArray.length) {
-			return false;
-		}
-
-		for (int i = 0; i < leftArray.length; i++) {
-			final Object left = leftArray[i];
-			final Object right = rightArray[i];
-			final boolean equal = (left == null) ? (right == null) : (left
-					.equals(right));
-			if (!equal) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-    /**
-     * Computes the hash code for an integer.
-     * 
-     * @param i
-     *            The integer for which a hash code should be computed.
-     * @return <code>i</code>.
-     */
-    public static final int hashCode(final int i) {
-        return i;
-    }
-
-    /**
-     * Computes the hash code for an object, but with defense against
-     * <code>null</code>.
-     * 
-     * @param object
-     *            The object for which a hash code is needed; may be
-     *            <code>null</code>.
-     * @return The hash code for <code>object</code>; or <code>0</code> if
-     *         <code>object</code> is <code>null</code>.
-     */
-    public static final int hashCode(final Object object) {
-        return object != null ? object.hashCode() : 0;
-    }
-
-    /**
-     * Makes a type-safe copy of the given map. This method should be used when
-     * a map is crossing an API boundary (i.e., from a hostile plug-in into
-     * internal code, or vice versa).
-     * 
-     * @param map
-     *            The map which should be copied; must not be <code>null</code>.
-     * @param keyClass
-     *            The class that all the keys must be; must not be
-     *            <code>null</code>.
-     * @param valueClass
-     *            The class that all the values must be; must not be
-     *            <code>null</code>.
-     * @param allowNullKeys
-     *            Whether <code>null</code> keys should be allowed.
-     * @param allowNullValues
-     *            Whether <code>null</code> values should be allowed.
-     * @return A copy of the map; may be empty, but never <code>null</code>.
-     */
-    public static final Map safeCopy(final Map map, final Class keyClass,
-            final Class valueClass, final boolean allowNullKeys,
-            final boolean allowNullValues) {
-        if (map == null || keyClass == null || valueClass == null) {
-			throw new NullPointerException();
-		}
-
-        final Map copy = Collections.unmodifiableMap(new HashMap(map));
-        final Iterator iterator = copy.entrySet().iterator();
-
-        while (iterator.hasNext()) {
-            final Map.Entry entry = (Map.Entry) iterator.next();
-            assertInstance(entry.getKey(), keyClass, allowNullKeys);
-            assertInstance(entry.getValue(), valueClass, allowNullValues);
-        }
-
-        return map;
-    }
-
-    /**
-     * Makes a type-safe copy of the given set. This method should be used when
-     * a set is crossing an API boundary (i.e., from a hostile plug-in into
-     * internal code, or vice versa).
-     * 
-     * @param set
-     *            The set which should be copied; must not be <code>null</code>.
-     * @param c
-     *            The class that all the values must be; must not be
-     *            <code>null</code>.
-     * @return A copy of the set; may be empty, but never <code>null</code>.
-     *         None of its element will be <code>null</code>.
-     */
-    public static final Set safeCopy(final Set set, final Class c) {
-        return safeCopy(set, c, false);
-    }
-
-    /**
-     * Makes a type-safe copy of the given set. This method should be used when
-     * a set is crossing an API boundary (i.e., from a hostile plug-in into
-     * internal code, or vice versa).
-     * 
-     * @param set
-     *            The set which should be copied; must not be <code>null</code>.
-     * @param c
-     *            The class that all the values must be; must not be
-     *            <code>null</code>.
-     * @param allowNullElements
-     *            Whether null values should be allowed.
-     * @return A copy of the set; may be empty, but never <code>null</code>.
-     */
-    public static final Set safeCopy(final Set set, final Class c,
-            final boolean allowNullElements) {
-        if (set == null || c == null) {
-			throw new NullPointerException();
-		}
-
-        final Set copy = Collections.unmodifiableSet(new HashSet(set));
-        final Iterator iterator = copy.iterator();
-
-        while (iterator.hasNext()) {
-			assertInstance(iterator.next(), c, allowNullElements);
-		}
-
-        return set;
-    }
-
-    /**
-     * The utility class is meant to just provide static members.
-     */
-    private Util() {
-        // Should not be called.
-    }
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/.classpath b/bundles/org.eclipse.core.databinding.beans/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.core.databinding.beans/.cvsignore b/bundles/org.eclipse.core.databinding.beans/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.core.databinding.beans/.project b/bundles/org.eclipse.core.databinding.beans/.project
deleted file mode 100644
index 85f5bb3..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.core.databinding.beans</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 27f8f29..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,354 +0,0 @@
-#Thu Feb 05 11:35:54 MST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-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=0
-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=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-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_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=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=80
-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_annotation_declaration_header=true
-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_annotation_declaration=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_parenthesized_expression_in_throw=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=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-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=1
-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
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 5a34f28..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,117 +0,0 @@
-#Tue Feb 10 16:05:53 MST 2009
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.3\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=false
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 4ea08b3..0000000
--- a/bundles/org.eclipse.core.databinding.beans/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:51:14 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF b/bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF
deleted file mode 100644
index 37ee305..0000000
--- a/bundles/org.eclipse.core.databinding.beans/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.core.databinding.beans
-Bundle-Version: 1.2.0.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.core.databinding.beans,
- org.eclipse.core.internal.databinding.beans;x-internal:=true
-Require-Bundle: org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.databinding.observable;bundle-version="[1.2.0,2.0.0)",
- org.eclipse.core.databinding.property;bundle-version="[1.2.0,2.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.core.databinding.beans/about.html b/bundles/org.eclipse.core.databinding.beans/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.core.databinding.beans/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding.beans/build.properties b/bundles/org.eclipse.core.databinding.beans/build.properties
deleted file mode 100644
index 6f0a513..0000000
--- a/bundles/org.eclipse.core.databinding.beans/build.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-bin.includes = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.databinding.jar = bin/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.core.databinding.beans/plugin.properties b/bundles/org.eclipse.core.databinding.beans/plugin.properties
deleted file mode 100644
index 083e360..0000000
--- a/bundles/org.eclipse.core.databinding.beans/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName = JFace Data Binding for JavaBeans
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeanProperties.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeanProperties.java
deleted file mode 100644
index bbd9f8b..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeanProperties.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bug 195222, 247997, 261843, 264307
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.databinding.property.list.IListProperty;
-import org.eclipse.core.databinding.property.map.IMapProperty;
-import org.eclipse.core.databinding.property.set.ISetProperty;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousBeanListProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousBeanMapProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousBeanSetProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousBeanValueProperty;
-import org.eclipse.core.internal.databinding.beans.BeanListProperty;
-import org.eclipse.core.internal.databinding.beans.BeanListPropertyDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanMapProperty;
-import org.eclipse.core.internal.databinding.beans.BeanMapPropertyDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanPropertyHelper;
-import org.eclipse.core.internal.databinding.beans.BeanSetProperty;
-import org.eclipse.core.internal.databinding.beans.BeanSetPropertyDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanValueProperty;
-import org.eclipse.core.internal.databinding.beans.BeanValuePropertyDecorator;
-
-/**
- * A factory for creating properties for Java objects that conform to the <a
- * href="http://java.sun.com/products/javabeans/docs/spec.html">JavaBean
- * specification</a> for bound properties.
- * 
- * @since 1.2
- */
-public class BeanProperties {
-	/**
-	 * Returns a value property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains null.
-	 * 
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @return a value property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(String propertyName) {
-		return value(null, propertyName, null);
-	}
-
-	/**
-	 * Returns a value property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains null.
-	 * 
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param valueType
-	 *            the value type of the returned value property
-	 * @return a value property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(String propertyName, Class valueType) {
-		return value(null, propertyName, valueType);
-	}
-
-	/**
-	 * Returns a value property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @return a value property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(Class beanClass, String propertyName) {
-		return value(beanClass, propertyName, null);
-	}
-
-	/**
-	 * Returns a value property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param valueType
-	 *            the value type of the returned value property
-	 * @return a value property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(Class beanClass,
-			String propertyName, Class valueType) {
-		String[] propertyNames = split(propertyName);
-		if (propertyNames.length > 1)
-			valueType = null;
-
-		PropertyDescriptor propertyDescriptor;
-		IValueProperty property;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new AnonymousBeanValueProperty(propertyNames[0],
-					valueType);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyNames[0]);
-			property = new BeanValueProperty(propertyDescriptor, valueType);
-		}
-
-		IBeanValueProperty beanProperty = new BeanValuePropertyDecorator(
-				property, propertyDescriptor);
-		for (int i = 1; i < propertyNames.length; i++) {
-			beanProperty = beanProperty.value(propertyNames[i]);
-		}
-		return beanProperty;
-	}
-
-	private static String[] split(String propertyName) {
-		if (propertyName.indexOf('.') == -1)
-			return new String[] { propertyName };
-		List propertyNames = new ArrayList();
-		int index;
-		while ((index = propertyName.indexOf('.')) != -1) {
-			propertyNames.add(propertyName.substring(0, index));
-			propertyName = propertyName.substring(index + 1);
-		}
-		propertyNames.add(propertyName);
-		return (String[]) propertyNames
-				.toArray(new String[propertyNames.size()]);
-	}
-
-	/**
-	 * Returns a value property array for the given property names of the given
-	 * bean class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyNames
-	 *            array of property names. May be nested e.g. "parent.name"
-	 * @return a value property array for the given property names of the given
-	 *         bean class.
-	 */
-	public static IBeanValueProperty[] values(Class beanClass,
-			String[] propertyNames) {
-		IBeanValueProperty[] properties = new IBeanValueProperty[propertyNames.length];
-		for (int i = 0; i < properties.length; i++)
-			properties[i] = value(beanClass, propertyNames[i], null);
-		return properties;
-	}
-
-	/**
-	 * Returns a value property array for the given property names of an
-	 * arbitrary bean class.
-	 * 
-	 * @param propertyNames
-	 *            array of property names. May be nested e.g. "parent.name"
-	 * @return a value property array for the given property names of the given
-	 *         bean class.
-	 */
-	public static IBeanValueProperty[] values(String[] propertyNames) {
-		return values(null, propertyNames);
-	}
-
-	/**
-	 * Returns a set property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty set.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @return a set property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(String propertyName) {
-		return set(null, propertyName, null);
-	}
-
-	/**
-	 * Returns a set property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty set.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned set property
-	 * @return a set property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(String propertyName, Class elementType) {
-		return set(null, propertyName, elementType);
-	}
-
-	/**
-	 * Returns a set property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @return a set property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(Class beanClass, String propertyName) {
-		return set(beanClass, propertyName, null);
-	}
-
-	/**
-	 * Returns a set property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned set property
-	 * @return a set property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(Class beanClass, String propertyName,
-			Class elementType) {
-		PropertyDescriptor propertyDescriptor;
-		ISetProperty property;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new AnonymousBeanSetProperty(propertyName, elementType);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyName);
-			property = new BeanSetProperty(propertyDescriptor, elementType);
-		}
-		return new BeanSetPropertyDecorator(property, propertyDescriptor);
-	}
-
-	/**
-	 * Returns a list property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty list.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @return a list property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(String propertyName) {
-		return list(null, propertyName, null);
-	}
-
-	/**
-	 * Returns a list property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty list.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned list property
-	 * @return a list property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(String propertyName, Class elementType) {
-		return list(null, propertyName, elementType);
-	}
-
-	/**
-	 * Returns a list property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @return a list property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(Class beanClass, String propertyName) {
-		return list(beanClass, propertyName, null);
-	}
-
-	/**
-	 * Returns a list property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned list property
-	 * @return a list property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(Class beanClass, String propertyName,
-			Class elementType) {
-		PropertyDescriptor propertyDescriptor;
-		IListProperty property;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new AnonymousBeanListProperty(propertyName, elementType);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyName);
-			property = new BeanListProperty(propertyDescriptor, elementType);
-		}
-		return new BeanListPropertyDecorator(property, propertyDescriptor);
-	}
-
-	/**
-	 * Returns a map property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty map.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @return a map property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(String propertyName) {
-		return map(null, propertyName, null, null);
-	}
-
-	/**
-	 * Returns a map property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty map.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @param keyType
-	 *            the key type for the returned map property
-	 * @param valueType
-	 *            the value type for the returned map property
-	 * @return a map property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(String propertyName, Class keyType,
-			Class valueType) {
-		return map(null, propertyName, keyType, valueType);
-	}
-
-	/**
-	 * Returns a map property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @return a map property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(Class beanClass, String propertyName) {
-		return map(beanClass, propertyName, null, null);
-	}
-
-	/**
-	 * Returns a map property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @param keyType
-	 *            the key type for the returned map property
-	 * @param valueType
-	 *            the value type for the returned map property
-	 * @return a map property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(Class beanClass, String propertyName,
-			Class keyType, Class valueType) {
-		PropertyDescriptor propertyDescriptor;
-		IMapProperty property;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new AnonymousBeanMapProperty(propertyName, keyType,
-					valueType);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyName);
-			property = new BeanMapProperty(propertyDescriptor, keyType,
-					valueType);
-		}
-		return new BeanMapPropertyDecorator(property, propertyDescriptor);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java
deleted file mode 100644
index bc02766..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/BeansObservables.java
+++ /dev/null
@@ -1,910 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bugs 164268, 171616, 147515
- *     Matthew Hall - bug 221704, 234686, 246625, 226289, 246782, 194734,
- *                    195222, 247997
- *     Thomas Kratz - bug 213787
- *******************************************************************************/
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.internal.databinding.beans.BeanObservableListDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableMapDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableSetDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableValueDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanPropertyHelper;
-import org.eclipse.core.internal.databinding.beans.Util;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * A factory for creating observable objects of Java objects that conform to the
- * <a href="http://java.sun.com/products/javabeans/docs/spec.html">JavaBean
- * specification</a> for bound properties.
- * 
- * @since 1.1
- * 
- */
-final public class BeansObservables {
-
-	/**
-	 * 
-	 */
-	public static final boolean DEBUG = true;
-
-	/**
-	 * Returns an observable value in the default realm tracking the current
-	 * value of the named property of the given bean.
-	 * 
-	 * @param bean
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given bean
-	 */
-	public static IObservableValue observeValue(Object bean, String propertyName) {
-		return observeValue(Realm.getDefault(), bean, propertyName);
-	}
-
-	/**
-	 * Returns an observable value in the given realm tracking the current value
-	 * of the named property of the given bean.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given bean
-	 */
-	public static IObservableValue observeValue(Realm realm, Object bean,
-			String propertyName) {
-		return BeanProperties.value(bean.getClass(), propertyName).observe(
-				realm, bean);
-	}
-
-	/**
-	 * Returns an observable map in the given observable set's realm tracking
-	 * the current values of the named property for the beans in the given set.
-	 * Elements in the set which do not have the named property will have null
-	 * values, and attempts to {@link IObservableMap#put(Object, Object) put}
-	 * values to these elements will be ignored.
-	 * 
-	 * @param domain
-	 *            the set of bean objects
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable map tracking the current values of the named
-	 *         property for the beans in the given domain set
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(IObservableSet domain,
-			String propertyName) {
-		return BeanProperties.value(propertyName).observeDetail(domain);
-	}
-
-	/**
-	 * Returns an observable map in the given observable set's realm tracking
-	 * the current values of the named property for the beans in the given set.
-	 * 
-	 * @param domain
-	 *            the set of bean objects
-	 * @param beanClass
-	 *            the common base type of bean objects that may be in the set
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable map tracking the current values of the named
-	 *         property for the beans in the given domain set
-	 */
-	public static IObservableMap observeMap(IObservableSet domain,
-			Class beanClass, String propertyName) {
-		return BeanProperties.value(beanClass, propertyName).observeDetail(
-				domain);
-	}
-
-	/**
-	 * Returns an observable map in the given realm tracking the map-typed named
-	 * property of the given bean object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given bean object
-	 * @since 1.1
-	 */
-	public static IObservableMap observeMap(Realm realm, Object bean,
-			String propertyName) {
-		return observeMap(realm, bean, propertyName, null, null);
-	}
-
-	/**
-	 * Returns an observable map in the given realm tracking the map-typed named
-	 * property of the given bean object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @param keyType
-	 *            the element type of the observable map's key set, or
-	 *            <code>null</code> if untyped
-	 * @param valueType
-	 *            the element type of the observable map's values collection, or
-	 *            <code>null</code> if untyped
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given bean object
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(Realm realm, Object bean,
-			String propertyName, Class keyType, Class valueType) {
-		return BeanProperties.map(bean.getClass(), propertyName, keyType,
-				valueType).observe(realm, bean);
-	}
-
-	/**
-	 * Returns an observable map in the default realm tracking the map-typed
-	 * named property of the given bean object.
-	 * 
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given bean object
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(Object bean, String propertyName) {
-		return observeMap(Realm.getDefault(), bean, propertyName, null, null);
-	}
-
-	/**
-	 * Returns an observable map in the default realm tracking the map-typed
-	 * named property of the given bean object.
-	 * 
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param keyType
-	 *            the element type of the observable map's key set, or
-	 *            <code>null</code> if untyped
-	 * @param valueType
-	 *            the element type of the observable map's values collection, or
-	 *            <code>null</code> if untyped
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given bean object
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(Object bean, String propertyName,
-			Class keyType, Class valueType) {
-		return observeMap(Realm.getDefault(), bean, propertyName, keyType,
-				valueType);
-	}
-
-	/**
-	 * Returns an array of observable maps in the given observable set's realm
-	 * tracking the current values of the named properties for the beans in the
-	 * given set. Elements in the set which do not have the named property will
-	 * have null values, and attempts to
-	 * {@link IObservableMap#put(Object, Object) put} values to these elements
-	 * will be ignored.
-	 * 
-	 * @param domain
-	 *            the set of objects
-	 * @param propertyNames
-	 *            the array of property names. May be nested e.g. "parent.name"
-	 * @return an array of observable maps tracking the current values of the
-	 *         named propertys for the beans in the given domain set
-	 * @since 1.2
-	 */
-	public static IObservableMap[] observeMaps(IObservableSet domain,
-			String[] propertyNames) {
-		IObservableMap[] result = new IObservableMap[propertyNames.length];
-		for (int i = 0; i < propertyNames.length; i++) {
-			result[i] = observeMap(domain, propertyNames[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an array of observable maps in the given observable set's realm
-	 * tracking the current values of the named properties for the beans in the
-	 * given set.
-	 * 
-	 * @param domain
-	 *            the set of objects
-	 * @param beanClass
-	 *            the common base type of objects that may be in the set
-	 * @param propertyNames
-	 *            the array of property names. May be nested e.g. "parent.name"
-	 * @return an array of observable maps tracking the current values of the
-	 *         named propertys for the beans in the given domain set
-	 */
-	public static IObservableMap[] observeMaps(IObservableSet domain,
-			Class beanClass, String[] propertyNames) {
-		IObservableMap[] result = new IObservableMap[propertyNames.length];
-		for (int i = 0; i < propertyNames.length; i++) {
-			result[i] = observeMap(domain, beanClass, propertyNames[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the object
-	 * @param propertyName
-	 *            the name of the collection-typed property
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 * @see #observeList(Realm, Object, String, Class)
-	 */
-	public static IObservableList observeList(Realm realm, Object bean,
-			String propertyName) {
-		return observeList(realm, bean, propertyName, null);
-	}
-
-	/**
-	 * Returns an observable list in the default realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable.
-	 * 
-	 * @param bean
-	 *            the object
-	 * @param propertyName
-	 *            the name of the collection-typed property
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 * @see #observeList(Realm, Object, String, Class)
-	 * @since 1.2
-	 */
-	public static IObservableList observeList(Object bean, String propertyName) {
-		return observeList(Realm.getDefault(), bean, propertyName);
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable. When an item is added or removed the setter is invoked
-	 * for the list on the parent bean to provide notification to other
-	 * listeners via <code>PropertyChangeEvents</code>. This is done to provide
-	 * the same behavior as is expected from arrays as specified in the bean
-	 * spec in section 7.2.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the list. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 */
-	public static IObservableList observeList(Realm realm, Object bean,
-			String propertyName, Class elementType) {
-		return BeanProperties.list(bean.getClass(), propertyName, elementType)
-				.observe(realm, bean);
-	}
-
-	/**
-	 * Returns an observable list in the default realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable. When an item is added or removed the setter is invoked
-	 * for the list on the parent bean to provide notification to other
-	 * listeners via <code>PropertyChangeEvents</code>. This is done to provide
-	 * the same behavior as is expected from arrays as specified in the bean
-	 * spec in section 7.2.
-	 * 
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the list. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 * @since 1.2
-	 */
-	public static IObservableList observeList(Object bean, String propertyName,
-			Class elementType) {
-		return observeList(Realm.getDefault(), bean, propertyName, elementType);
-	}
-
-	/**
-	 * Returns an observable set in the given realm tracking the
-	 * collection-typed named property of the given bean object
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given bean object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object bean,
-			String propertyName) {
-		return observeSet(realm, bean, propertyName, null);
-	}
-
-	/**
-	 * Returns an observable set in the default realm tracking the
-	 * collection-typed named property of the given bean object
-	 * 
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given bean object
-	 * @since 1.2
-	 */
-	public static IObservableSet observeSet(Object bean, String propertyName) {
-		return observeSet(Realm.getDefault(), bean, propertyName);
-	}
-
-	/**
-	 * Returns a factory for creating observable values in the given realm,
-	 * tracking the given property of a particular bean object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value factory
-	 */
-	public static IObservableFactory valueFactory(final Realm realm,
-			final String propertyName) {
-		return BeanProperties.value(propertyName).valueFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable values in the current default
-	 * realm, tracking the given property of a particular bean object
-	 * 
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value factory
-	 * @since 1.2
-	 */
-	public static IObservableFactory valueFactory(String propertyName) {
-		return valueFactory(Realm.getDefault(), propertyName);
-	}
-
-	/**
-	 * Returns a factory for creating observable lists in the given realm,
-	 * tracking the given property of a particular bean object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 * @return an observable list factory
-	 */
-	public static IObservableFactory listFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return BeanProperties.list(propertyName, elementType)
-				.listFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable lists in the current default
-	 * realm, tracking the given property of a particular bean object
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 * @return an observable list factory
-	 * @since 1.2
-	 */
-	public static IObservableFactory listFactory(String propertyName,
-			Class elementType) {
-		return listFactory(Realm.getDefault(), propertyName, elementType);
-	}
-
-	/**
-	 * Returns a factory for creating observable sets in the given realm,
-	 * tracking the given property of a particular bean object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set factory
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName) {
-		return BeanProperties.set(propertyName).setFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable sets in the current default
-	 * realm, tracking the given property of a particular bean object
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set factory
-	 * @since 1.2
-	 */
-	public static IObservableFactory setFactory(String propertyName) {
-		return setFactory(Realm.getDefault(), propertyName);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @deprecated Use
-	 *             {@link #observeDetailValue(IObservableValue, String, Class)}
-	 *             instead
-	 */
-	public static IObservableValue observeDetailValue(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		warnIfDifferentRealms(realm, master.getRealm());
-
-		IObservableValue value = MasterDetailObservables.detailValue(master,
-				BeanProperties.value(propertyName, propertyType).valueFactory(
-						realm), propertyType);
-		return new BeanObservableValueDecorator(value, BeanPropertyHelper
-				.getValueTypePropertyDescriptor(master, propertyName));
-	}
-
-	/* package */static void warnIfDifferentRealms(Realm detailRealm,
-			Realm masterRealm) {
-		if (!Util.equals(detailRealm, masterRealm)) {
-			Throwable throwable = new Throwable();
-			throwable.fillInStackTrace();
-			String message = "Detail realm (" + detailRealm //$NON-NLS-1$
-					+ ") not equal to master realm (" //$NON-NLS-1$
-					+ masterRealm + ")"; //$NON-NLS-1$
-			Policy.getLog().log(
-					new Status(IStatus.WARNING, Policy.JFACE_DATABINDING,
-							message, throwable));
-		}
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(master.getRealm(), propertyName), propertyType)</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.2
-	 */
-	public static IObservableValue observeDetailValue(IObservableValue master,
-			String propertyName, Class propertyType) {
-		Class beanClass = null;
-		if (master.getValueType() instanceof Class)
-			beanClass = (Class) master.getValueType();
-		return observeDetailValue(master, beanClass, propertyName, propertyType);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(realm,
-	 * propertyName), propertyType)</code>. This method returns an
-	 * {@link IBeanObservable} with a {@link PropertyDescriptor} based on the
-	 * given master type and property name.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param master
-	 *            the master observable value, for example tracking the
-	 *            selection in a list
-	 * @param masterType
-	 *            the type of the master observable value
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.1
-	 * @deprecated Use
-	 *             {@link #observeDetailValue(IObservableValue, Class, String, Class)}
-	 *             instead.
-	 */
-	public static IObservableValue observeDetailValue(Realm realm,
-			IObservableValue master, Class masterType, String propertyName,
-			Class propertyType) {
-		warnIfDifferentRealms(realm, master.getRealm());
-		Assert.isNotNull(masterType, "masterType cannot be null"); //$NON-NLS-1$
-		IObservableValue value = MasterDetailObservables.detailValue(master,
-				BeanProperties.value(masterType, propertyName, propertyType)
-						.valueFactory(realm), propertyType);
-		return new BeanObservableValueDecorator(value, BeanPropertyHelper
-				.getPropertyDescriptor(masterType, propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(master.getRealm(), propertyName), propertyType)</code>
-	 * . This method returns an {@link IBeanObservable} with a
-	 * {@link PropertyDescriptor} based on the given master type and property
-	 * name.
-	 * 
-	 * @param master
-	 *            the master observable value, for example tracking the
-	 *            selection in a list
-	 * @param masterType
-	 *            the type of the master observable value
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.2
-	 */
-	public static IObservableValue observeDetailValue(IObservableValue master,
-			Class masterType, String propertyName, Class propertyType) {
-		return BeanProperties.value(masterType, propertyName, propertyType)
-				.observeDetail(master);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailList(master, listFactory(realm,
-	 propertyName, propertyType), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable list that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @deprecated Use
-	 *             {@link #observeDetailList(IObservableValue, String, Class)}
-	 *             instead
-	 */
-	public static IObservableList observeDetailList(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		warnIfDifferentRealms(realm, master.getRealm());
-		IObservableList observableList = MasterDetailObservables.detailList(
-				master, BeanProperties.list(propertyName, propertyType)
-						.listFactory(realm), propertyType);
-		return new BeanObservableListDecorator(observableList,
-				BeanPropertyHelper.getValueTypePropertyDescriptor(master,
-						propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailList(master, listFactory(master.getRealm(), propertyName, propertyType), propertyType)</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable list that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.2
-	 */
-	public static IObservableList observeDetailList(IObservableValue master,
-			String propertyName, Class propertyType) {
-		Class beanClass = null;
-		if (master.getValueType() instanceof Class)
-			beanClass = (Class) master.getValueType();
-		return BeanProperties.list(beanClass, propertyName, propertyType)
-				.observeDetail(master);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailSet(master, setFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @deprecated Use
-	 *             {@link #observeDetailSet(IObservableValue, String, Class)}
-	 *             instead.
-	 */
-	public static IObservableSet observeDetailSet(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		warnIfDifferentRealms(realm, master.getRealm());
-
-		IObservableSet observableSet = MasterDetailObservables.detailSet(
-				master, BeanProperties.set(propertyName, propertyType)
-						.setFactory(realm), propertyType);
-		return new BeanObservableSetDecorator(observableSet, BeanPropertyHelper
-				.getValueTypePropertyDescriptor(master, propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailSet(master, setFactory(master.getRealm(), propertyName), propertyType)</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.2
-	 */
-	public static IObservableSet observeDetailSet(IObservableValue master,
-			String propertyName, Class propertyType) {
-		Class beanClass = null;
-		if (master.getValueType() instanceof Class)
-			beanClass = (Class) master.getValueType();
-		return BeanProperties.set(beanClass, propertyName, propertyType)
-				.observeDetail(master);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailMap(master, mapFactory(realm, propertyName))</code>
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param master
-	 * @param propertyName
-	 * @return an observable map that tracks the map-type named property for the
-	 *         current value of the master observable value.
-	 * @since 1.1
-	 * @deprecated Use {@link #observeDetailMap(IObservableValue, String)}
-	 *             instead
-	 */
-	public static IObservableMap observeDetailMap(Realm realm,
-			IObservableValue master, String propertyName) {
-		warnIfDifferentRealms(realm, master.getRealm());
-		IObservableMap observableMap = MasterDetailObservables.detailMap(
-				master, BeanProperties.map(propertyName).mapFactory(realm));
-		return new BeanObservableMapDecorator(observableMap, BeanPropertyHelper
-				.getValueTypePropertyDescriptor(master, propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailMap(master, mapFactory(master.getRealm(), propertyName))</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 * @return an observable map that tracks the map-type named property for the
-	 *         current value of the master observable value.
-	 * @since 1.2
-	 */
-	public static IObservableMap observeDetailMap(IObservableValue master,
-			String propertyName) {
-		Class beanClass = null;
-		if (master.getValueType() instanceof Class)
-			beanClass = (Class) master.getValueType();
-		return BeanProperties.map(beanClass, propertyName)
-				.observeDetail(master);
-	}
-
-	/**
-	 * Returns an observable set in the given realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * set is mutable. When an item is added or removed the setter is invoked
-	 * for the set on the parent bean to provide notification to other listeners
-	 * via <code>PropertyChangeEvents</code>. This is done to provide the same
-	 * behavior as is expected from arrays as specified in the bean spec in
-	 * section 7.2.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given bean object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object bean,
-			String propertyName, Class elementType) {
-		return BeanProperties.set(bean.getClass(), propertyName, elementType)
-				.observe(realm, bean);
-	}
-
-	/**
-	 * Returns an observable set in the current default realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * set is mutable. When an item is added or removed the setter is invoked
-	 * for the set on the parent bean to provide notification to other listeners
-	 * via <code>PropertyChangeEvents</code>. This is done to provide the same
-	 * behavior as is expected from arrays as specified in the bean spec in
-	 * section 7.2.
-	 * 
-	 * @param bean
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given bean object
-	 * @since 1.2
-	 */
-	public static IObservableSet observeSet(Object bean, String propertyName,
-			Class elementType) {
-		return observeSet(Realm.getDefault(), bean, propertyName, elementType);
-	}
-
-	/**
-	 * Returns a factory for creating observable sets in the given realm,
-	 * tracking the given property of a particular bean object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return a factory for creating observable sets in the given realm,
-	 *         tracking the given property of a particular bean object
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return BeanProperties.set(propertyName, elementType).setFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable sets in the current default
-	 * realm, tracking the given property of a particular bean object
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return a factory for creating observable sets in the given realm,
-	 *         tracking the given property of a particular bean object
-	 * @since 1.2
-	 */
-	public static IObservableFactory setFactory(String propertyName,
-			Class elementType) {
-		return setFactory(Realm.getDefault(), propertyName, elementType);
-	}
-
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with an {@link IObservableSet}, will create an
-	 * {@link IObservableMap} in the same realm as the underlying set that
-	 * tracks the current values of the named property for the beans in the
-	 * given set.
-	 * 
-	 * @param beanClass
-	 *            the common base type of bean objects that may be in the set
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return a factory for creating {@link IObservableMap} objects
-	 * 
-	 * @since 1.1
-	 */
-	public static IObservableFactory setToMapFactory(final Class beanClass,
-			final String propertyName) {
-		return new IObservableFactory() {
-			public IObservable createObservable(Object target) {
-				return observeMap((IObservableSet) target, beanClass,
-						propertyName);
-			}
-		};
-	}
-
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with a bean object, will create an {@link IObservableMap} in the
-	 * given realm that tracks the map-typed named property for the specified
-	 * bean.
-	 * 
-	 * @param realm
-	 *            the realm assigned to observables created by the returned
-	 *            factory.
-	 * @param propertyName
-	 *            the name of the property
-	 * @return a factory for creating {@link IObservableMap} objects.
-	 * @since 1.1
-	 */
-	public static IObservableFactory mapPropertyFactory(final Realm realm,
-			final String propertyName) {
-		return BeanProperties.map(propertyName).mapFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with a bean object, will create an {@link IObservableMap} in the
-	 * current default realm that tracks the map-typed named property for the
-	 * specified bean.
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @return a factory for creating {@link IObservableMap} objects.
-	 * @since 1.2
-	 */
-	public static IObservableFactory mapPropertyFactory(String propertyName) {
-		return mapPropertyFactory(Realm.getDefault(), propertyName);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanListProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanListProperty.java
deleted file mode 100644
index 95f80a0..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanListProperty.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import org.eclipse.core.databinding.property.list.IListProperty;
-
-/**
- * An {@link IListProperty} extension interface with convenience methods for
- * creating nested bean properties.
- * 
- * @since 1.2
- */
-public interface IBeanListProperty extends IBeanProperty, IListProperty {
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @return a nested combination of this property and the specified value
-	 *         property.
-	 * @see #values(IBeanValueProperty)
-	 */
-	public IBeanListProperty values(String propertyName);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @param valueType
-	 *            the value type of the named property
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 * @see #values(IBeanValueProperty)
-	 */
-	public IBeanListProperty values(String propertyName, Class valueType);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property. The returned property will observe the specified value
-	 * property for all elements observed by this list property.
-	 * <p>
-	 * Example:
-	 * 
-	 * <pre>
-	 * // Observes the list-typed &quot;children&quot; property of a Person object,
-	 * // where the elements are Person objects
-	 * IBeanListProperty children = BeanProperties.list(Person.class, &quot;children&quot;,
-	 * 		Person.class);
-	 * // Observes the string-typed &quot;name&quot; property of a Person object
-	 * IBeanValueProperty name = BeanProperties.value(Person.class, &quot;name&quot;);
-	 * // Observes the names of children of a Person object.
-	 * IBeanListProperty childrenNames = children.values(name);
-	 * </pre>
-	 * 
-	 * @param property
-	 *            the detail property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 */
-	public IBeanListProperty values(IBeanValueProperty property);
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanMapProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanMapProperty.java
deleted file mode 100644
index 1cfde35..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanMapProperty.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.util.Map;
-
-import org.eclipse.core.databinding.property.map.IMapProperty;
-
-/**
- * An {@link IMapProperty} extension interface with convenience methods for
- * creating nested bean properties.
- * 
- * @since 1.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IBeanMapProperty extends IBeanProperty, IMapProperty {
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 * @see #values(IBeanValueProperty)
-	 */
-	public IBeanMapProperty values(String propertyName);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @param valueType
-	 *            the value type of the named property
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 * @see #values(IBeanValueProperty)
-	 */
-	public IBeanMapProperty values(String propertyName, Class valueType);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property. The returned property will observe the specified value
-	 * property for all {@link Map#values() values} observed by this map
-	 * property, mapping from this map property's {@link Map#keySet() key set}
-	 * to the specified value property's value for each element in the master
-	 * property's {@link Map#values() values} collection.
-	 * 
-	 * @param property
-	 *            the detail property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 */
-	public IBeanMapProperty values(IBeanValueProperty property);
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java
deleted file mode 100644
index c2545ef..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanObservable.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Brad Reynolds - bug 147515
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.observable.IObserving;
-
-/**
- * Provides access to details of bean observables.
- * <p>
- * This interface is not meant to be implemented by clients.
- * </p>
- * 
- * @since 3.3
- */
-public interface IBeanObservable extends IObserving {
-	/**
-	 * @return property descriptor of the property being observed,
-	 *         <code>null</code> if the runtime time information was not
-	 *         provided on construction of the observable
-	 */
-	public PropertyDescriptor getPropertyDescriptor();
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanProperty.java
deleted file mode 100644
index a20631f..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanProperty.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.property.IProperty;
-
-/**
- * An IProperty extension interface providing access to details of bean
- * properties.
- * 
- * @since 1.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IBeanProperty extends IProperty {
-	/**
-	 * Returns the property descriptor of the bean property being observed. This
-	 * method returns null in the case of anonymous properties.
-	 * 
-	 * @return the property descriptor of the bean property being observed
-	 */
-	public PropertyDescriptor getPropertyDescriptor();
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanSetProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanSetProperty.java
deleted file mode 100644
index a5e70ae..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanSetProperty.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import org.eclipse.core.databinding.property.set.ISetProperty;
-
-/**
- * An {@link ISetProperty} extension interface with convenience methods for
- * creating nested bean properties.
- * 
- * @since 1.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IBeanSetProperty extends IBeanProperty, ISetProperty {
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 * @see #values(IBeanValueProperty)
-	 */
-	public IBeanMapProperty values(String propertyName);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @param valueType
-	 *            the value type of the named property
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 * @see #values(IBeanValueProperty)
-	 */
-	public IBeanMapProperty values(String propertyName, Class valueType);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property. The returned property will observe the specified value
-	 * property for all elements observed by this set property, mapping from
-	 * this set property's elements (keys) to the specified value property's
-	 * value for each element (values).
-	 * <p>
-	 * Example:
-	 * 
-	 * <pre>
-	 * // Observes the set-typed &quot;children&quot; property of a Person object,
-	 * // where the elements are Person objects
-	 * IBeanSetProperty children = BeanProperties.set(Person.class, &quot;children&quot;,
-	 * 		Person.class);
-	 * // Observes the string-typed &quot;name&quot; property of a Person object
-	 * IBeanValueProperty name = BeanProperties.value(Person.class, &quot;name&quot;);
-	 * // Observes a map of children objects to their respective names.
-	 * IBeanMapProperty childrenNames = children.values(name);
-	 * </pre>
-	 * 
-	 * @param property
-	 *            the detail property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 */
-	public IBeanMapProperty values(IBeanValueProperty property);
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanValueProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanValueProperty.java
deleted file mode 100644
index 72153a6..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/IBeanValueProperty.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import org.eclipse.core.databinding.property.value.IValueProperty;
-
-/**
- * An {@link IValueProperty} extension interface with convenience methods for
- * creating nested bean properties.
- * 
- * @since 1.2
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IBeanValueProperty extends IBeanProperty, IValueProperty {
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 * @see #value(IBeanValueProperty)
-	 */
-	public IBeanValueProperty value(String propertyName);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property.
-	 * 
-	 * @param propertyName
-	 *            the value property to observe. May be nested e.g.
-	 *            "parent.name"
-	 * @param valueType
-	 *            the value type of the named property
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 * @see #value(IBeanValueProperty)
-	 */
-	public IBeanValueProperty value(String propertyName, Class valueType);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * value property. The returned property will observe the specified detail
-	 * value property for the value of the master value property.
-	 * <p>
-	 * Example:
-	 * 
-	 * <pre>
-	 * // Observes the Node-typed &quot;parent&quot; property of a Node object
-	 * IBeanValueProperty parent = BeanProperties.value(Node.class, &quot;parent&quot;);
-	 * // Observes the string-typed &quot;name&quot; property of a Node object
-	 * IBeanValueProperty name = BeanProperties.value(Node.class, &quot;name&quot;);
-	 * // Observes the name of the parent of a Node object.
-	 * IBeanValueProperty parentName = parent.value(name);
-	 * </pre>
-	 * 
-	 * @param property
-	 *            the detail property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         value property.
-	 */
-	public IBeanValueProperty value(IBeanValueProperty property);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * list property.
-	 * 
-	 * @param propertyName
-	 *            the list property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         list property.
-	 * @see #list(IBeanListProperty)
-	 */
-	public IBeanListProperty list(String propertyName);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * list property.
-	 * 
-	 * @param propertyName
-	 *            the list property to observe
-	 * @param elementType
-	 *            the element type of the named property
-	 * @return a master-detail combination of this property and the specified
-	 *         list property.
-	 * @see #list(IBeanListProperty)
-	 */
-	public IBeanListProperty list(String propertyName, Class elementType);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * list property. The returned property will observe the specified list
-	 * property for the value of the master property.
-	 * <p>
-	 * Example:
-	 * 
-	 * <pre>
-	 * // Observes the Node-typed &quot;parent&quot; property of a Node object.
-	 * IBeanValueProperty parent = BeanProperties.value(Node.class, &quot;parent&quot;);
-	 * // Observes the List-typed &quot;children&quot; property of a Node object
-	 * // where the elements are Node objects
-	 * IBeanListProperty children = BeanProperties.list(Node.class, &quot;children&quot;,
-	 * 		Node.class);
-	 * // Observes the children of the parent (siblings) of a Node object.
-	 * IBeanListProperty siblings = parent.list(children);
-	 * </pre>
-	 * 
-	 * @param property
-	 *            the detail property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         list property.
-	 */
-	public IBeanListProperty list(IBeanListProperty property);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * set property.
-	 * 
-	 * @param propertyName
-	 *            the set property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         set property.
-	 * @see #set(IBeanSetProperty)
-	 */
-	public IBeanSetProperty set(String propertyName);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * set property.
-	 * 
-	 * @param propertyName
-	 *            the set property to observe
-	 * @param elementType
-	 *            the element type of the named property
-	 * @return a master-detail combination of this property and the specified
-	 *         set property.
-	 * @see #set(IBeanSetProperty)
-	 */
-	public IBeanSetProperty set(String propertyName, Class elementType);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * set property. The returned property will observe the specified set
-	 * property for the value of the master property.
-	 * <p>
-	 * Example:
-	 * 
-	 * <pre>
-	 * // Observes the Node-typed &quot;parent&quot; property of a Node object.
-	 * IBeanValueProperty parent = BeanProperties.value(Node.class, &quot;parent&quot;);
-	 * // Observes the Set-typed &quot;children&quot; property of a Node object
-	 * // where the elements are Node objects
-	 * IBeanSetProperty children = BeanProperties.set(Node.class, &quot;children&quot;,
-	 * 		Node.class);
-	 * // Observes the children of the parent (siblings) of a Node object.
-	 * IBeanSetProperty siblings = parent.set(children);
-	 * </pre>
-	 * 
-	 * @param property
-	 *            the detail property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         set property.
-	 */
-	public IBeanSetProperty set(IBeanSetProperty property);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * map property.
-	 * 
-	 * @param propertyName
-	 *            the map property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         map property.
-	 * @see #map(IBeanMapProperty)
-	 */
-	public IBeanMapProperty map(String propertyName);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * map property.
-	 * 
-	 * @param propertyName
-	 *            the map property to observe
-	 * @param keyType
-	 *            the key type of the named property
-	 * @param valueType
-	 *            the value type of the named property
-	 * @return a master-detail combination of this property and the specified
-	 *         map property.
-	 * @see #map(IBeanMapProperty)
-	 */
-	public IBeanMapProperty map(String propertyName, Class keyType,
-			Class valueType);
-
-	/**
-	 * Returns a master-detail combination of this property and the specified
-	 * map property. The returned property will observe the specified map
-	 * property for the value of the master property.
-	 * <p>
-	 * Example:
-	 * 
-	 * <pre>
-	 * // Observes the Contact-typed &quot;supervisor&quot; property of a
-	 * // Contact class 
-	 * IBeanValueProperty supervisor = BeanProperties.value(Contact.class,
-	 * 		&quot;supervisor&quot;);
-	 * // Observes the property &quot;phoneNumbers&quot; of a Contact object--a property mapping
-	 * // from PhoneNumberType to PhoneNumber &quot;set-typed &quot;children&quot;,
-	 * IBeanMapProperty phoneNumbers = BeanProperties.map(Contact.class,
-	 * 		&quot;phoneNumbers&quot;, PhoneNumberType.class, PhoneNumber.class);
-	 * // Observes the phone numbers of a contact's supervisor:
-	 * IBeanMapProperty supervisorPhoneNumbers = supervisor.map(phoneNumbers);
-	 * </pre>
-	 * 
-	 * @param property
-	 *            the detail property to observe
-	 * @return a master-detail combination of this property and the specified
-	 *         map property.
-	 */
-	public IBeanMapProperty map(IBeanMapProperty property);
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java
deleted file mode 100644
index ecdcb2b..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoObservables.java
+++ /dev/null
@@ -1,777 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bugs 221704, 234686, 246625, 226289, 246782, 194734,
- *                    195222, 247997
- *******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyChangeEvent;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.internal.databinding.beans.BeanObservableListDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableMapDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableSetDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanObservableValueDecorator;
-import org.eclipse.core.internal.databinding.beans.BeanPropertyHelper;
-
-/**
- * A factory for creating observable objects for POJOs (plain old java objects)
- * that conform to idea of an object with getters and setters but does not
- * provide {@link PropertyChangeEvent property change events} on change. This
- * factory is identical to {@link BeansObservables} except for this fact.
- * 
- * @since 1.1
- */
-final public class PojoObservables {
-
-	/**
-	 * Returns an observable value in the default realm tracking the current
-	 * value of the named property of the given pojo.
-	 * 
-	 * @param pojo
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given pojo
-	 */
-	public static IObservableValue observeValue(Object pojo, String propertyName) {
-		return observeValue(Realm.getDefault(), pojo, propertyName);
-	}
-
-	/**
-	 * Returns an observable value in the given realm tracking the current value
-	 * of the named property of the given pojo.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the object
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value tracking the current value of the named
-	 *         property of the given pojo
-	 */
-	public static IObservableValue observeValue(Realm realm, Object pojo,
-			String propertyName) {
-		return PojoProperties.value(pojo.getClass(), propertyName).observe(
-				realm, pojo);
-	}
-
-	/**
-	 * Returns an observable map in the given observable set's realm tracking
-	 * the current values of the named property for the beans in the given set.
-	 * Elements in the set which do not have the named property will have null
-	 * values, and attempts to {@link IObservableMap#put(Object, Object) put}
-	 * values to these elements will be ignored.
-	 * 
-	 * @param domain
-	 *            the set of bean objects
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable map tracking the current values of the named
-	 *         property for the beans in the given domain set
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(IObservableSet domain,
-			String propertyName) {
-		return PojoProperties.value(propertyName).observeDetail(domain);
-	}
-
-	/**
-	 * Returns an observable map in the given observable set's realm tracking
-	 * the current values of the named property for the pojos in the given set.
-	 * 
-	 * @param domain
-	 *            the set of pojo objects
-	 * @param pojoClass
-	 *            the common base type of pojo objects that may be in the set
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable map tracking the current values of the named
-	 *         property for the pojos in the given domain set
-	 */
-	public static IObservableMap observeMap(IObservableSet domain,
-			Class pojoClass, String propertyName) {
-		return PojoProperties.value(pojoClass, propertyName).observeDetail(
-				domain);
-	}
-
-	/**
-	 * Returns an array of observable maps in the given observable set's realm
-	 * tracking the current values of the named properties for the beans in the
-	 * given set. Elements in the set which do not have the named property will
-	 * have null values, and attempts to
-	 * {@link IObservableMap#put(Object, Object) put} values to these elements
-	 * will be ignored.
-	 * 
-	 * @param domain
-	 *            the set of objects
-	 * @param propertyNames
-	 *            the array of property names. May be nested e.g. "parent.name"
-	 * @return an array of observable maps tracking the current values of the
-	 *         named propertys for the beans in the given domain set
-	 * @since 1.2
-	 */
-	public static IObservableMap[] observeMaps(IObservableSet domain,
-			String[] propertyNames) {
-		IObservableMap[] result = new IObservableMap[propertyNames.length];
-		for (int i = 0; i < propertyNames.length; i++) {
-			result[i] = observeMap(domain, propertyNames[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an array of observable maps in the given observable set's realm
-	 * tracking the current values of the named propertys for the pojos in the
-	 * given set.
-	 * 
-	 * @param domain
-	 *            the set of objects
-	 * @param pojoClass
-	 *            the common base type of objects that may be in the set
-	 * @param propertyNames
-	 *            the array of property names. May be nested e.g. "parent.name"
-	 * @return an array of observable maps tracking the current values of the
-	 *         named propertys for the pojos in the given domain set
-	 */
-	public static IObservableMap[] observeMaps(IObservableSet domain,
-			Class pojoClass, String[] propertyNames) {
-		IObservableMap[] result = new IObservableMap[propertyNames.length];
-		for (int i = 0; i < propertyNames.length; i++) {
-			result[i] = observeMap(domain, pojoClass, propertyNames[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an observable map in the given realm tracking the map-typed named
-	 * property of the given pojo object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given pojo object
-	 */
-	public static IObservableMap observeMap(Realm realm, Object pojo,
-			String propertyName) {
-		return observeMap(realm, pojo, propertyName, null, null);
-	}
-
-	/**
-	 * Returns an observable map in the given realm tracking the map-typed named
-	 * property of the given pojo object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param keyType
-	 *            the element type of the observable map's key set, or
-	 *            <code>null</code> if untyped
-	 * @param valueType
-	 *            the element type of the observable map's values collection, or
-	 *            <code>null</code> if untyped
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given pojo object
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(Realm realm, Object pojo,
-			String propertyName, Class keyType, Class valueType) {
-		return PojoProperties.map(pojo.getClass(), propertyName, keyType,
-				valueType).observe(realm, pojo);
-	}
-
-	/**
-	 * Returns an observable map in the default realm tracking the map-typed
-	 * named property of the given pojo object.
-	 * 
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given pojo object
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(Object pojo, String propertyName) {
-		return observeMap(Realm.getDefault(), pojo, propertyName, null, null);
-	}
-
-	/**
-	 * Returns an observable map in the default realm tracking the map-typed
-	 * named property of the given pojo object.
-	 * 
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param keyType
-	 *            the element type of the observable map's key set, or
-	 *            <code>null</code> if untyped
-	 * @param valueType
-	 *            the element type of the observable map's values collection, or
-	 *            <code>null</code> if untyped
-	 * @return an observable map tracking the map-typed named property of the
-	 *         given pojo object
-	 * @since 1.2
-	 */
-	public static IObservableMap observeMap(Object pojo, String propertyName,
-			Class keyType, Class valueType) {
-		return observeMap(Realm.getDefault(), pojo, propertyName, keyType,
-				valueType);
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given pojo object. The returned
-	 * list is mutable.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the object
-	 * @param propertyName
-	 *            the name of the collection-typed property
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given pojo object
-	 * @see #observeList(Realm, Object, String, Class)
-	 */
-	public static IObservableList observeList(Realm realm, Object pojo,
-			String propertyName) {
-		return observeList(realm, pojo, propertyName, null);
-	}
-
-	/**
-	 * Returns an observable list in the default realm tracking the
-	 * collection-typed named property of the given pojo object. The returned
-	 * list is mutable.
-	 * 
-	 * @param pojo
-	 *            the object
-	 * @param propertyName
-	 *            the name of the collection-typed property
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given pojo object
-	 * @see #observeList(Realm, Object, String, Class)
-	 * @since 1.2
-	 */
-	public static IObservableList observeList(Object pojo, String propertyName) {
-		return observeList(Realm.getDefault(), pojo, propertyName);
-	}
-
-	/**
-	 * Returns an observable list in the given realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable. When an item is added or removed the setter is invoked
-	 * for the list on the parent bean to provide notification to other
-	 * listeners via <code>PropertyChangeEvents</code>. This is done to provide
-	 * the same behavior as is expected from arrays as specified in the bean
-	 * spec in section 7.2.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the list. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 */
-	public static IObservableList observeList(Realm realm, Object pojo,
-			String propertyName, Class elementType) {
-		return PojoProperties.list(pojo.getClass(), propertyName, elementType)
-				.observe(realm, pojo);
-	}
-
-	/**
-	 * Returns an observable list in the default realm tracking the
-	 * collection-typed named property of the given bean object. The returned
-	 * list is mutable. When an item is added or removed the setter is invoked
-	 * for the list on the parent bean to provide notification to other
-	 * listeners via <code>PropertyChangeEvents</code>. This is done to provide
-	 * the same behavior as is expected from arrays as specified in the bean
-	 * spec in section 7.2.
-	 * 
-	 * @param pojo
-	 *            the bean object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the list. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable list tracking the collection-typed named property
-	 *         of the given bean object
-	 * @since 1.2
-	 */
-	public static IObservableList observeList(Object pojo, String propertyName,
-			Class elementType) {
-		return observeList(Realm.getDefault(), pojo, propertyName, elementType);
-	}
-
-	/**
-	 * Returns an observable set in the given realm tracking the
-	 * collection-typed named property of the given pojo object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given pojo object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object pojo,
-			String propertyName) {
-		return observeSet(realm, pojo, propertyName, null);
-	}
-
-	/**
-	 * Returns an observable set in the default realm tracking the
-	 * collection-typed named property of the given pojo object.
-	 * 
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set tracking the collection-typed named property of
-	 *         the given pojo object
-	 * @since 1.2
-	 */
-	public static IObservableSet observeSet(Object pojo, String propertyName) {
-		return observeSet(Realm.getDefault(), pojo, propertyName);
-	}
-
-	/**
-	 * Returns an observable set in the given realm tracking the
-	 * collection-typed named property of the given pojo object.
-	 * 
-	 * @param realm
-	 *            the realm
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable set that tracks the current value of the named
-	 *         property for given pojo object
-	 */
-	public static IObservableSet observeSet(Realm realm, Object pojo,
-			String propertyName, Class elementType) {
-		return PojoProperties.set(pojo.getClass(), propertyName, elementType)
-				.observe(realm, pojo);
-	}
-
-	/**
-	 * Returns an observable set in the default realm, tracking the
-	 * collection-typed named property of the given pojo object.
-	 * 
-	 * @param pojo
-	 *            the pojo object
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable set that tracks the current value of the named
-	 *         property for given pojo object
-	 * @since 1.2
-	 */
-	public static IObservableSet observeSet(Object pojo, String propertyName,
-			Class elementType) {
-		return observeSet(Realm.getDefault(), pojo, propertyName, elementType);
-	}
-
-	/**
-	 * Returns a factory for creating observable values in the given realm,
-	 * tracking the given property of a particular pojo object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value factory
-	 */
-	public static IObservableFactory valueFactory(final Realm realm,
-			final String propertyName) {
-		return PojoProperties.value(propertyName).valueFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable values in the current default
-	 * realm, tracking the given property of a particular pojo object
-	 * 
-	 * @param propertyName
-	 *            the name of the property. May be nested e.g. "parent.name"
-	 * @return an observable value factory
-	 * @since 1.2
-	 */
-	public static IObservableFactory valueFactory(String propertyName) {
-		return valueFactory(Realm.getDefault(), propertyName);
-	}
-
-	/**
-	 * Returns a factory for creating observable lists in the given realm,
-	 * tracking the given property of a particular pojo object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 * @return an observable list factory
-	 */
-	public static IObservableFactory listFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return PojoProperties.list(propertyName, elementType)
-				.listFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable lists in the current default
-	 * realm, tracking the given property of a particular pojo object
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 * @return an observable list factory
-	 * @since 1.2
-	 */
-	public static IObservableFactory listFactory(String propertyName,
-			Class elementType) {
-		return listFactory(Realm.getDefault(), propertyName, elementType);
-	}
-
-	/**
-	 * Returns a factory for creating observable sets in the given realm,
-	 * tracking the given property of a particular pojo object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set factory
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName) {
-		return PojoProperties.set(propertyName).setFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable sets in the current default
-	 * realm, tracking the given property of a particular pojo object
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @return an observable set factory
-	 * @since 1.2
-	 */
-	public static IObservableFactory setFactory(String propertyName) {
-		return setFactory(Realm.getDefault(), propertyName);
-	}
-
-	/**
-	 * Returns a factory for creating observable set in the given realm,
-	 * tracking the given property of a particular pojo object
-	 * 
-	 * @param realm
-	 *            the realm to use
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable set factory for creating observable sets
-	 */
-	public static IObservableFactory setFactory(final Realm realm,
-			final String propertyName, final Class elementType) {
-		return PojoProperties.set(propertyName, elementType).setFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating observable set in the current default
-	 * realm, tracking the given property of a particular pojo object
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @param elementType
-	 *            type of the elements in the set. If <code>null</code> and the
-	 *            property is an array the type will be inferred. If
-	 *            <code>null</code> and the property type cannot be inferred
-	 *            element type will be <code>null</code>.
-	 * @return an observable set factory for creating observable sets
-	 * @since 1.2
-	 */
-	public static IObservableFactory setFactory(String propertyName,
-			Class elementType) {
-		return setFactory(Realm.getDefault(), propertyName, elementType);
-	}
-
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with a pojo object, will create an {@link IObservableMap} in the
-	 * given realm that tracks the map-typed named property for the specified
-	 * pojo.
-	 * 
-	 * @param realm
-	 *            the realm assigned to observables created by the returned
-	 *            factory.
-	 * @param propertyName
-	 *            the name of the property
-	 * @return a factory for creating {@link IObservableMap} objects.
-	 */
-	public static IObservableFactory mapPropertyFactory(final Realm realm,
-			final String propertyName) {
-		return PojoProperties.map(propertyName).mapFactory(realm);
-	}
-
-	/**
-	 * Returns a factory for creating an observable map. The factory, when
-	 * provided with a pojo object, will create an {@link IObservableMap} in the
-	 * current default realm that tracks the map-typed named property for the
-	 * specified pojo.
-	 * 
-	 * @param propertyName
-	 *            the name of the property
-	 * @return a factory for creating {@link IObservableMap} objects.
-	 * @since 1.2
-	 */
-	public static IObservableFactory mapPropertyFactory(String propertyName) {
-		return mapPropertyFactory(Realm.getDefault(), propertyName);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @deprecated Use
-	 *             {@link #observeDetailValue(IObservableValue, String, Class)}
-	 *             instead
-	 */
-	public static IObservableValue observeDetailValue(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		BeansObservables.warnIfDifferentRealms(realm, master.getRealm());
-
-		IObservableValue value = MasterDetailObservables.detailValue(master,
-				PojoProperties.value(propertyName, propertyType).valueFactory(
-						realm), propertyType);
-		return new BeanObservableValueDecorator(value, BeanPropertyHelper
-				.getValueTypePropertyDescriptor(master, propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailValue(master, valueFactory(master.getRealm, propertyName), propertyType)</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable value that tracks the current value of the named
-	 *         property for the current value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.2
-	 */
-	public static IObservableValue observeDetailValue(IObservableValue master,
-			String propertyName, Class propertyType) {
-		Class pojoClass = null;
-		if (master.getValueType() instanceof Class)
-			pojoClass = (Class) master.getValueType();
-		return PojoProperties.value(pojoClass, propertyName, propertyType)
-				.observeDetail(master);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailList(master, listFactory(realm,
-	 propertyName, propertyType), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable list that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @deprecated Use
-	 *             {@link #observeDetailList(IObservableValue, String, Class)}
-	 *             instead
-	 */
-	public static IObservableList observeDetailList(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		BeansObservables.warnIfDifferentRealms(realm, master.getRealm());
-		IObservableList observableList = MasterDetailObservables.detailList(
-				master, PojoProperties.list(propertyName, propertyType)
-						.listFactory(realm), propertyType);
-		return new BeanObservableListDecorator(observableList,
-				BeanPropertyHelper.getValueTypePropertyDescriptor(master,
-						propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailList(master, listFactory(master.getRealm(), propertyName, propertyType), propertyType)</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable list that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.2
-	 */
-	public static IObservableList observeDetailList(IObservableValue master,
-			String propertyName, Class propertyType) {
-		Class pojoClass = null;
-		if (master.getValueType() instanceof Class)
-			pojoClass = (Class) master.getValueType();
-		return PojoProperties.list(pojoClass, propertyName).observeDetail(
-				master);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailSet(master, setFactory(realm,
-	 propertyName), propertyType)</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @deprecated Use
-	 *             {@link #observeDetailSet(IObservableValue, String, Class)}
-	 *             instead.
-	 */
-	public static IObservableSet observeDetailSet(Realm realm,
-			IObservableValue master, String propertyName, Class propertyType) {
-		BeansObservables.warnIfDifferentRealms(realm, master.getRealm());
-
-		IObservableSet observableSet = MasterDetailObservables.detailSet(
-				master, PojoProperties.set(propertyName, propertyType)
-						.setFactory(realm), propertyType);
-		return new BeanObservableSetDecorator(observableSet, BeanPropertyHelper
-				.getValueTypePropertyDescriptor(master, propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailSet(master, setFactory(master.getRealm(), propertyName), propertyType)</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 * @param propertyType
-	 *            can be <code>null</code>
-	 * @return an observable set that tracks the named property for the current
-	 *         value of the master observable value
-	 * 
-	 * @see MasterDetailObservables
-	 * @since 1.2
-	 */
-	public static IObservableSet observeDetailSet(IObservableValue master,
-			String propertyName, Class propertyType) {
-		Class pojoClass = null;
-		if (master.getValueType() instanceof Class)
-			pojoClass = (Class) master.getValueType();
-		return PojoProperties.set(pojoClass, propertyName, propertyType)
-				.observeDetail(master);
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailMap(master, mapFactory(realm, propertyName))</code>
-	 * 
-	 * @param realm
-	 * @param master
-	 * @param propertyName
-	 * @return an observable map that tracks the map-type named property for the
-	 *         current value of the master observable value.
-	 * @deprecated Use {@link #observeDetailMap(IObservableValue, String)}
-	 *             instead
-	 */
-	public static IObservableMap observeDetailMap(Realm realm,
-			IObservableValue master, String propertyName) {
-		BeansObservables.warnIfDifferentRealms(realm, master.getRealm());
-		IObservableMap observableMap = MasterDetailObservables.detailMap(
-				master, PojoProperties.map(propertyName).mapFactory(realm));
-		return new BeanObservableMapDecorator(observableMap, BeanPropertyHelper
-				.getValueTypePropertyDescriptor(master, propertyName));
-	}
-
-	/**
-	 * Helper method for
-	 * <code>MasterDetailObservables.detailMap(master, mapFactory(master.getRealm(), propertyName))</code>
-	 * 
-	 * @param master
-	 * @param propertyName
-	 * @return an observable map that tracks the map-type named property for the
-	 *         current value of the master observable value.
-	 * @since 1.2
-	 */
-	public static IObservableMap observeDetailMap(IObservableValue master,
-			String propertyName) {
-		Class pojoClass = null;
-		if (master.getValueType() instanceof Class)
-			pojoClass = (Class) master.getValueType();
-		return PojoProperties.map(pojoClass, propertyName)
-				.observeDetail(master);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoProperties.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoProperties.java
deleted file mode 100644
index 90ccdf6..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/PojoProperties.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bug 195222, 247997, 261843, 264307
- ******************************************************************************/
-
-package org.eclipse.core.databinding.beans;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyDescriptor;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.databinding.property.list.IListProperty;
-import org.eclipse.core.databinding.property.map.IMapProperty;
-import org.eclipse.core.databinding.property.set.ISetProperty;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousPojoListProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousPojoMapProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousPojoSetProperty;
-import org.eclipse.core.internal.databinding.beans.AnonymousPojoValueProperty;
-import org.eclipse.core.internal.databinding.beans.BeanPropertyHelper;
-import org.eclipse.core.internal.databinding.beans.PojoListProperty;
-import org.eclipse.core.internal.databinding.beans.PojoListPropertyDecorator;
-import org.eclipse.core.internal.databinding.beans.PojoMapProperty;
-import org.eclipse.core.internal.databinding.beans.PojoMapPropertyDecorator;
-import org.eclipse.core.internal.databinding.beans.PojoSetProperty;
-import org.eclipse.core.internal.databinding.beans.PojoSetPropertyDecorator;
-import org.eclipse.core.internal.databinding.beans.PojoValueProperty;
-import org.eclipse.core.internal.databinding.beans.PojoValuePropertyDecorator;
-
-/**
- * A factory for creating properties for POJOs (plain old java objects) that
- * conform to idea of an object with getters and setters but does not provide
- * {@link PropertyChangeEvent property change events} on change. This factory is
- * identical to {@link BeanProperties} except for this fact.
- * 
- * @since 1.2
- */
-public class PojoProperties {
-	/**
-	 * Returns a value property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains null.
-	 * 
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @return a value property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(String propertyName) {
-		return value(null, propertyName, null);
-	}
-
-	/**
-	 * Returns a value property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains null.
-	 * 
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param valueType
-	 *            the value type of the returned value property
-	 * @return a value property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(String propertyName, Class valueType) {
-		return value(null, propertyName, valueType);
-	}
-
-	/**
-	 * Returns a value property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @return a value property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(Class beanClass, String propertyName) {
-		return value(beanClass, propertyName, null);
-	}
-
-	/**
-	 * Returns a value property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name. May be nested e.g. "parent.name"
-	 * @param valueType
-	 *            the value type of the returned value property
-	 * @return a value property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanValueProperty value(Class beanClass,
-			String propertyName, Class valueType) {
-		String[] propertyNames = split(propertyName);
-		if (propertyNames.length > 1)
-			valueType = null;
-
-		IValueProperty property;
-		PropertyDescriptor propertyDescriptor;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new PojoValuePropertyDecorator(
-					new AnonymousPojoValueProperty(propertyNames[0], valueType),
-					null);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyNames[0]);
-			property = new PojoValueProperty(propertyDescriptor, valueType);
-		}
-
-		IBeanValueProperty beanProperty = new PojoValuePropertyDecorator(
-				property, propertyDescriptor);
-		for (int i = 1; i < propertyNames.length; i++) {
-			beanProperty = beanProperty.value(propertyNames[i]);
-		}
-		return beanProperty;
-	}
-
-	private static String[] split(String propertyName) {
-		if (propertyName.indexOf('.') == -1)
-			return new String[] { propertyName };
-		List propertyNames = new ArrayList();
-		int index;
-		while ((index = propertyName.indexOf('.')) != -1) {
-			propertyNames.add(propertyName.substring(0, index));
-			propertyName = propertyName.substring(index + 1);
-		}
-		propertyNames.add(propertyName);
-		return (String[]) propertyNames
-				.toArray(new String[propertyNames.size()]);
-	}
-
-	/**
-	 * Returns a value property array for the given property names of the given
-	 * bean class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyNames
-	 *            array of property names. May be nested e.g. "parent.name"
-	 * @return a value property array for the given property names of the given
-	 *         bean class.
-	 */
-	public static IBeanValueProperty[] values(Class beanClass,
-			String[] propertyNames) {
-		IBeanValueProperty[] properties = new IBeanValueProperty[propertyNames.length];
-		for (int i = 0; i < properties.length; i++)
-			properties[i] = value(beanClass, propertyNames[i], null);
-		return properties;
-	}
-
-	/**
-	 * Returns a value property array for the given property names of an
-	 * arbitrary bean class.
-	 * 
-	 * @param propertyNames
-	 *            array of property names. May be nested e.g. "parent.name"
-	 * @return a value property array for the given property names of the given
-	 *         bean class.
-	 */
-	public static IBeanValueProperty[] values(String[] propertyNames) {
-		return values(null, propertyNames);
-	}
-
-	/**
-	 * Returns a set property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty set.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @return a set property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(String propertyName) {
-		return set(null, propertyName, null);
-	}
-
-	/**
-	 * Returns a set property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty set.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned set property
-	 * @return a set property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(String propertyName, Class elementType) {
-		return set(null, propertyName, elementType);
-	}
-
-	/**
-	 * Returns a set property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @return a set property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(Class beanClass, String propertyName) {
-		return set(beanClass, propertyName, null);
-	}
-
-	/**
-	 * Returns a set property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned set property
-	 * @return a set property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanSetProperty set(Class beanClass, String propertyName,
-			Class elementType) {
-		PropertyDescriptor propertyDescriptor;
-		ISetProperty property;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new AnonymousPojoSetProperty(propertyName, elementType);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyName);
-			property = new PojoSetProperty(propertyDescriptor, elementType);
-		}
-		return new PojoSetPropertyDecorator(property, propertyDescriptor);
-	}
-
-	/**
-	 * Returns a list property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty list.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @return a list property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(String propertyName) {
-		return list(null, propertyName, null);
-	}
-
-	/**
-	 * Returns a list property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty list.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned list property
-	 * @return a list property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(String propertyName, Class elementType) {
-		return list(null, propertyName, elementType);
-	}
-
-	/**
-	 * Returns a list property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @return a list property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(Class beanClass, String propertyName) {
-		return list(beanClass, propertyName, null);
-	}
-
-	/**
-	 * Returns a list property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @param elementType
-	 *            the element type of the returned list property
-	 * @return a list property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanListProperty list(Class beanClass, String propertyName,
-			Class elementType) {
-		PropertyDescriptor propertyDescriptor;
-		IListProperty property;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new AnonymousPojoListProperty(propertyName, elementType);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyName);
-			property = new PojoListProperty(propertyDescriptor, elementType);
-		}
-		return new PojoListPropertyDecorator(property, propertyDescriptor);
-	}
-
-	/**
-	 * Returns a map property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty map.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @return a map property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(String propertyName) {
-		return map(null, propertyName, null, null);
-	}
-
-	/**
-	 * Returns a map property for the given property name of an arbitrary bean
-	 * class. Objects lacking the named property are treated the same as if the
-	 * property always contains an empty map.
-	 * 
-	 * @param propertyName
-	 *            the property name
-	 * @param keyType
-	 *            the key type for the returned map property
-	 * @param valueType
-	 *            the value type for the returned map property
-	 * @return a map property for the given property name of an arbitrary bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(String propertyName, Class keyType,
-			Class valueType) {
-		return map(null, propertyName, keyType, valueType);
-	}
-
-	/**
-	 * Returns a map property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @return a map property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(Class beanClass, String propertyName) {
-		return map(beanClass, propertyName, null, null);
-	}
-
-	/**
-	 * Returns a map property for the given property name of the given bean
-	 * class.
-	 * 
-	 * @param beanClass
-	 *            the bean class
-	 * @param propertyName
-	 *            the property name
-	 * @param keyType
-	 *            the key type of the returned map property
-	 * @param valueType
-	 *            the value type of the returned map property
-	 * @return a map property for the given property name of the given bean
-	 *         class.
-	 */
-	public static IBeanMapProperty map(Class beanClass, String propertyName,
-			Class keyType, Class valueType) {
-		PropertyDescriptor propertyDescriptor;
-		IMapProperty property;
-		if (beanClass == null) {
-			propertyDescriptor = null;
-			property = new AnonymousPojoMapProperty(propertyName, keyType,
-					valueType);
-		} else {
-			propertyDescriptor = BeanPropertyHelper.getPropertyDescriptor(
-					beanClass, propertyName);
-			property = new PojoMapProperty(propertyDescriptor, keyType,
-					valueType);
-		}
-		return new PojoMapPropertyDecorator(property, propertyDescriptor);
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html
deleted file mode 100644
index c290e49..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/databinding/beans/package.html
+++ /dev/null
@@ -1,16 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes for observing JavaBeans(tm) objects.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to observe objects that conform to the <a href="http://java.sun.com/products/javabeans/docs/spec.html">JavaBean specification</a> for bound properties.</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanListProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanListProperty.java
deleted file mode 100644
index 3c81add..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanListProperty.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.property.list.DelegatingListProperty;
-import org.eclipse.core.databinding.property.list.IListProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousBeanListProperty extends DelegatingListProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param elementType
-	 */
-	public AnonymousBeanListProperty(String propertyName, Class elementType) {
-		super(elementType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected IListProperty doGetDelegate(Object source) {
-		Class beanClass = source.getClass();
-		if (delegates.containsKey(beanClass))
-			return (IListProperty) delegates.get(beanClass);
-
-		IListProperty delegate;
-		try {
-			delegate = BeanProperties.list(beanClass, propertyName,
-					(Class) getElementType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(beanClass, delegate);
-		return delegate;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName + "[]"; //$NON-NLS-1$ //$NON-NLS-2$
-		Class elementType = (Class) getElementType();
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanMapProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanMapProperty.java
deleted file mode 100644
index 06d8a52..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanMapProperty.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.property.map.DelegatingMapProperty;
-import org.eclipse.core.databinding.property.map.IMapProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousBeanMapProperty extends DelegatingMapProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param keyType
-	 * @param valueType
-	 */
-	public AnonymousBeanMapProperty(String propertyName, Class keyType,
-			Class valueType) {
-		super(keyType, valueType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected IMapProperty doGetDelegate(Object source) {
-		Class beanClass = source.getClass();
-		if (delegates.containsKey(beanClass))
-			return (IMapProperty) delegates.get(beanClass);
-
-		IMapProperty delegate;
-		try {
-			delegate = BeanProperties.map(beanClass, propertyName,
-					(Class) getKeyType(), (Class) getValueType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(beanClass, delegate);
-		return delegate;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName + "{:}"; //$NON-NLS-1$ //$NON-NLS-2$
-		Class keyType = (Class) getKeyType();
-		Class valueType = (Class) getValueType();
-		if (keyType != null || valueType != null) {
-			s += " <" + BeanPropertyHelper.shortClassName(keyType) + ", " //$NON-NLS-1$//$NON-NLS-2$
-					+ BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$
-		}
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanSetProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanSetProperty.java
deleted file mode 100644
index 6ef3b48..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanSetProperty.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.property.set.DelegatingSetProperty;
-import org.eclipse.core.databinding.property.set.ISetProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousBeanSetProperty extends DelegatingSetProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param elementType
-	 */
-	public AnonymousBeanSetProperty(String propertyName, Class elementType) {
-		super(elementType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected ISetProperty doGetDelegate(Object source) {
-		Class beanClass = source.getClass();
-		if (delegates.containsKey(beanClass))
-			return (ISetProperty) delegates.get(beanClass);
-
-		ISetProperty delegate;
-		try {
-			delegate = BeanProperties.set(beanClass, propertyName,
-					(Class) getElementType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(beanClass, delegate);
-		return delegate;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName + "{}"; //$NON-NLS-1$ //$NON-NLS-2$
-		Class elementType = (Class) getElementType();
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanValueProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanValueProperty.java
deleted file mode 100644
index 193658c..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousBeanValueProperty.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bugs 264307, 264619
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.value.DelegatingValueProperty;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousBeanValueProperty extends DelegatingValueProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param valueType
-	 */
-	public AnonymousBeanValueProperty(String propertyName, Class valueType) {
-		super(valueType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected IValueProperty doGetDelegate(Object source) {
-		return getClassDelegate(source.getClass());
-	}
-
-	private IValueProperty getClassDelegate(Class beanClass) {
-		if (delegates.containsKey(beanClass))
-			return (IValueProperty) delegates.get(beanClass);
-
-		IValueProperty delegate;
-		try {
-			delegate = BeanProperties.value(beanClass, propertyName,
-					(Class) getValueType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(beanClass, delegate);
-		return delegate;
-	}
-
-	public IObservableValue observeDetail(IObservableValue master) {
-		return MasterDetailObservables.detailValue(master, valueFactory(master
-				.getRealm()), inferValueType(master.getValueType()));
-	}
-
-	private Object inferValueType(Object masterObservableValueType) {
-		if (masterObservableValueType instanceof Class) {
-			return getClassDelegate((Class) masterObservableValueType)
-					.getValueType();
-		}
-		return null;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName; //$NON-NLS-1$
-		Class valueType = (Class) getValueType();
-		if (valueType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoListProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoListProperty.java
deleted file mode 100644
index 9abc7df..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoListProperty.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.property.list.DelegatingListProperty;
-import org.eclipse.core.databinding.property.list.IListProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousPojoListProperty extends DelegatingListProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param elementType
-	 */
-	public AnonymousPojoListProperty(String propertyName, Class elementType) {
-		super(elementType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected IListProperty doGetDelegate(Object source) {
-		Class beanClass = source.getClass();
-		if (delegates.containsKey(beanClass))
-			return (IListProperty) delegates.get(beanClass);
-
-		IListProperty delegate;
-		try {
-			delegate = PojoProperties.list(beanClass, propertyName,
-					(Class) getElementType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(beanClass, delegate);
-		return delegate;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName + "{}"; //$NON-NLS-1$ //$NON-NLS-2$
-		Class elementType = (Class) getElementType();
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoMapProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoMapProperty.java
deleted file mode 100644
index 10ce37d..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoMapProperty.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.property.map.DelegatingMapProperty;
-import org.eclipse.core.databinding.property.map.IMapProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousPojoMapProperty extends DelegatingMapProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param keyType
-	 * @param valueType
-	 */
-	public AnonymousPojoMapProperty(String propertyName, Class keyType,
-			Class valueType) {
-		super(keyType, valueType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected IMapProperty doGetDelegate(Object source) {
-		Class beanClass = source.getClass();
-		if (delegates.containsKey(beanClass))
-			return (IMapProperty) delegates.get(beanClass);
-
-		IMapProperty delegate;
-		try {
-			delegate = PojoProperties.map(beanClass, propertyName,
-					(Class) getKeyType(), (Class) getValueType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(beanClass, delegate);
-		return delegate;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName + "{:}"; //$NON-NLS-1$ //$NON-NLS-2$
-		Class keyType = (Class) getKeyType();
-		Class valueType = (Class) getValueType();
-		if (keyType != null || valueType != null) {
-			s += "<" + BeanPropertyHelper.shortClassName(keyType) + ", " //$NON-NLS-1$//$NON-NLS-2$
-					+ BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$
-		}
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoSetProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoSetProperty.java
deleted file mode 100644
index 7f33181..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoSetProperty.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.property.set.DelegatingSetProperty;
-import org.eclipse.core.databinding.property.set.ISetProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousPojoSetProperty extends DelegatingSetProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param elementType
-	 */
-	public AnonymousPojoSetProperty(String propertyName, Class elementType) {
-		super(elementType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected ISetProperty doGetDelegate(Object source) {
-		Class beanClass = source.getClass();
-		if (delegates.containsKey(beanClass))
-			return (ISetProperty) delegates.get(beanClass);
-
-		ISetProperty delegate;
-		try {
-			delegate = PojoProperties.set(beanClass, propertyName,
-					(Class) getElementType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(beanClass, delegate);
-		return delegate;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName + "{}"; //$NON-NLS-1$ //$NON-NLS-2$
-		Class elementType = (Class) getElementType();
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoValueProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoValueProperty.java
deleted file mode 100644
index 910f749..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/AnonymousPojoValueProperty.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 247997)
- *     Matthew Hall - bugs 264307, 264619
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.observable.masterdetail.MasterDetailObservables;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.value.DelegatingValueProperty;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class AnonymousPojoValueProperty extends DelegatingValueProperty {
-	private final String propertyName;
-
-	private Map delegates;
-
-	/**
-	 * @param propertyName
-	 * @param valueType
-	 */
-	public AnonymousPojoValueProperty(String propertyName, Class valueType) {
-		super(valueType);
-		this.propertyName = propertyName;
-		this.delegates = new HashMap();
-	}
-
-	protected IValueProperty doGetDelegate(Object source) {
-		return getClassDelegate(source.getClass());
-	}
-
-	private IValueProperty getClassDelegate(Class pojoClass) {
-		if (delegates.containsKey(pojoClass))
-			return (IValueProperty) delegates.get(pojoClass);
-
-		IValueProperty delegate;
-		try {
-			delegate = PojoProperties.value(pojoClass, propertyName,
-					(Class) getValueType());
-		} catch (IllegalArgumentException noSuchProperty) {
-			delegate = null;
-		}
-		delegates.put(pojoClass, delegate);
-		return delegate;
-	}
-
-	public IObservableValue observeDetail(IObservableValue master) {
-		return MasterDetailObservables.detailValue(master, valueFactory(master
-				.getRealm()), inferValueType(master.getValueType()));
-	}
-
-	private Object inferValueType(Object masterObservableValueType) {
-		if (masterObservableValueType instanceof Class) {
-			return getClassDelegate((Class) masterObservableValueType)
-					.getValueType();
-		}
-		return null;
-	}
-
-	public String toString() {
-		String s = "?." + propertyName; //$NON-NLS-1$
-		Class valueType = (Class) getValueType();
-		if (valueType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListProperty.java
deleted file mode 100644
index f8f5f9e..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListProperty.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bugs 195222, 264307, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IDiff;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.list.SimpleListProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanListProperty extends SimpleListProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class elementType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param elementType
-	 */
-	public BeanListProperty(PropertyDescriptor propertyDescriptor,
-			Class elementType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.elementType = elementType == null ? BeanPropertyHelper
-				.getCollectionPropertyElementType(propertyDescriptor)
-				: elementType;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	protected List doGetList(Object source) {
-		return asList(BeanPropertyHelper.readProperty(source,
-				propertyDescriptor));
-	}
-
-	private List asList(Object propertyValue) {
-		if (propertyValue == null)
-			return new ArrayList();
-		if (propertyDescriptor.getPropertyType().isArray())
-			return new ArrayList(Arrays.asList((Object[]) propertyValue));
-		return (List) propertyValue;
-	}
-
-	protected void doSetList(Object source, List list, ListDiff diff) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor,
-				convertListToBeanPropertyType(list));
-	}
-
-	private Object convertListToBeanPropertyType(List list) {
-		Object propertyValue = list;
-		if (propertyDescriptor.getPropertyType().isArray()) {
-			Class componentType = propertyDescriptor.getPropertyType()
-					.getComponentType();
-			Object[] array = (Object[]) Array.newInstance(componentType, list
-					.size());
-			list.toArray(array);
-			propertyValue = array;
-		}
-		return propertyValue;
-	}
-
-	public INativePropertyListener adaptListener(
-			final ISimplePropertyListener listener) {
-		return new BeanPropertyListener(this, propertyDescriptor, listener) {
-			protected IDiff computeDiff(Object oldValue, Object newValue) {
-				return Diffs
-						.computeListDiff(asList(oldValue), asList(newValue));
-			}
-		};
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor) + "[]"; //$NON-NLS-1$
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListPropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListPropertyDecorator.java
deleted file mode 100644
index a35d697..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanListPropertyDecorator.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.beans.IBeanListProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.list.IListProperty;
-import org.eclipse.core.databinding.property.list.ListProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanListPropertyDecorator extends ListProperty implements
-		IBeanListProperty {
-	private final IListProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public BeanListPropertyDecorator(IListProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public Object getElementType() {
-		return delegate.getElementType();
-	}
-
-	public IBeanListProperty values(String propertyName) {
-		return values(propertyName, null);
-	}
-
-	public IBeanListProperty values(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getElementType();
-		return values(BeanProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanListProperty values(IBeanValueProperty property) {
-		return new BeanListPropertyDecorator(super.values(property), property
-				.getPropertyDescriptor());
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public IObservableList observe(Object source) {
-		return new BeanObservableListDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableList observe(Realm realm, Object source) {
-		return new BeanObservableListDecorator(delegate.observe(realm, source),
-				propertyDescriptor);
-	}
-
-	public IObservableFactory listFactory() {
-		return delegate.listFactory();
-	}
-
-	public IObservableFactory listFactory(Realm realm) {
-		return delegate.listFactory(realm);
-	}
-
-	public IObservableList observeDetail(IObservableValue master) {
-		return new BeanObservableListDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapProperty.java
deleted file mode 100644
index 209b969..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapProperty.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bugs 195222, 264307, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IDiff;
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.map.SimpleMapProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanMapProperty extends SimpleMapProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class keyType;
-	private final Class valueType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param keyType
-	 * @param valueType
-	 */
-	public BeanMapProperty(PropertyDescriptor propertyDescriptor,
-			Class keyType, Class valueType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.keyType = keyType;
-		this.valueType = valueType;
-	}
-
-	public Object getKeyType() {
-		return keyType;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-	protected Map doGetMap(Object source) {
-		return asMap(BeanPropertyHelper
-				.readProperty(source, propertyDescriptor));
-	}
-
-	private Map asMap(Object propertyValue) {
-		if (propertyValue == null)
-			return new HashMap();
-		return (Map) propertyValue;
-	}
-
-	protected void doSetMap(Object source, Map map, MapDiff diff) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor, map);
-	}
-
-	public INativePropertyListener adaptListener(
-			final ISimplePropertyListener listener) {
-		return new BeanPropertyListener(this, propertyDescriptor, listener) {
-			protected IDiff computeDiff(Object oldValue, Object newValue) {
-				return Diffs.computeMapDiff(asMap(oldValue), asMap(newValue));
-			}
-		};
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor) + "{:}"; //$NON-NLS-1$
-
-		if (keyType != null || valueType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(keyType) + ", " //$NON-NLS-1$ //$NON-NLS-2$
-					+ BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapPropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapPropertyDecorator.java
deleted file mode 100644
index db64178..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanMapPropertyDecorator.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.beans.IBeanMapProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.map.IMapProperty;
-import org.eclipse.core.databinding.property.map.MapProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanMapPropertyDecorator extends MapProperty implements
-		IBeanMapProperty {
-	private final IMapProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public BeanMapPropertyDecorator(IMapProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public Object getKeyType() {
-		return delegate.getKeyType();
-	}
-
-	public Object getValueType() {
-		return delegate.getValueType();
-	}
-
-	public IBeanMapProperty values(String propertyName) {
-		return values(propertyName, null);
-	}
-
-	public IBeanMapProperty values(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return values(BeanProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanMapProperty values(IBeanValueProperty property) {
-		return new BeanMapPropertyDecorator(super.values(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IObservableMap observe(Object source) {
-		return new BeanObservableMapDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableMap observe(Realm realm, Object source) {
-		return new BeanObservableMapDecorator(delegate.observe(realm, source),
-				propertyDescriptor);
-	}
-
-	public IObservableFactory mapFactory() {
-		return delegate.mapFactory();
-	}
-
-	public IObservableFactory mapFactory(Realm realm) {
-		return delegate.mapFactory(realm);
-	}
-
-	public IObservableMap observeDetail(IObservableValue master) {
-		return new BeanObservableMapDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java
deleted file mode 100644
index 672399a..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableListDecorator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 208858, 246625
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.list.DecoratingObservableList;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableList}.
- * 
- * @since 3.3
- */
-public class BeanObservableListDecorator extends DecoratingObservableList
-		implements IBeanObservable {
-	private PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param decorated
-	 * @param propertyDescriptor
-	 */
-	public BeanObservableListDecorator(IObservableList decorated,
-			PropertyDescriptor propertyDescriptor) {
-		super(decorated, true);
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public synchronized void dispose() {
-		this.propertyDescriptor = null;
-		super.dispose();
-	}
-
-	public Object getObserved() {
-		IObservable decorated = getDecorated();
-		if (decorated instanceof IObserving)
-			return ((IObserving) decorated).getObserved();
-		return null;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java
deleted file mode 100644
index f48d193..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableMapDecorator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 221704)
- *     Matthew Hall - bug 246625
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.map.DecoratingObservableMap;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableMap}.
- * 
- * @since 3.3
- */
-public class BeanObservableMapDecorator extends DecoratingObservableMap
-		implements IBeanObservable {
-	private PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param decorated
-	 * @param propertyDescriptor
-	 */
-	public BeanObservableMapDecorator(IObservableMap decorated,
-			PropertyDescriptor propertyDescriptor) {
-		super(decorated, true);
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public synchronized void dispose() {
-		this.propertyDescriptor = null;
-		super.dispose();
-	}
-
-	public Object getObserved() {
-		IObservable decorated = getDecorated();
-		if (decorated instanceof IObserving)
-			return ((IObserving) decorated).getObserved();
-		return null;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java
deleted file mode 100644
index b560b5e..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableSetDecorator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 246625
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.set.DecoratingObservableSet;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableSet}.
- * 
- * @since 3.3
- */
-public class BeanObservableSetDecorator extends DecoratingObservableSet
-		implements IBeanObservable {
-	private PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param decorated
-	 * @param propertyDescriptor
-	 */
-	public BeanObservableSetDecorator(IObservableSet decorated,
-			PropertyDescriptor propertyDescriptor) {
-		super(decorated, true);
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public synchronized void dispose() {
-		this.propertyDescriptor = null;
-		super.dispose();
-	}
-
-	public Object getObserved() {
-		IObservable decorated = getDecorated();
-		if (decorated instanceof IObserving)
-			return ((IObserving) decorated).getObserved();
-		return null;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java
deleted file mode 100644
index e8e2b2f..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanObservableValueDecorator.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 246625
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanObservable;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObserving;
-import org.eclipse.core.databinding.observable.value.DecoratingObservableValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * {@link IBeanObservable} decorator for an {@link IObservableValue}.
- * 
- * @since 3.3
- */
-public class BeanObservableValueDecorator extends DecoratingObservableValue
-		implements IBeanObservable {
-	private PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param decorated
-	 * @param propertyDescriptor
-	 */
-	public BeanObservableValueDecorator(IObservableValue decorated,
-			PropertyDescriptor propertyDescriptor) {
-		super(decorated, true);
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public synchronized void dispose() {
-		this.propertyDescriptor = null;
-		super.dispose();
-	}
-
-	public Object getObserved() {
-		IObservable decorated = getDecorated();
-		if (decorated instanceof IObserving)
-			return ((IObserving) decorated).getObserved();
-		return null;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyHelper.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyHelper.java
deleted file mode 100644
index 92e8199..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyHelper.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Martin Frey <martin.frey@logica.com> - bug 256150
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 1.2
- * 
- */
-public class BeanPropertyHelper {
-	/**
-	 * Sets the contents of the given property on the given source object to the
-	 * given value.
-	 * 
-	 * @param source
-	 *            the source object which has the property being updated
-	 * @param propertyDescriptor
-	 *            the property being changed
-	 * @param value
-	 *            the new value of the property
-	 */
-	public static void writeProperty(Object source,
-			PropertyDescriptor propertyDescriptor, Object value) {
-		try {
-			Method writeMethod = propertyDescriptor.getWriteMethod();
-			if (!writeMethod.isAccessible()) {
-				writeMethod.setAccessible(true);
-			}
-			writeMethod.invoke(source, new Object[] { value });
-		} catch (InvocationTargetException e) {
-			/*
-			 * InvocationTargetException wraps any exception thrown by the
-			 * invoked method.
-			 */
-			throw new RuntimeException(e.getCause());
-		} catch (Exception e) {
-			if (BeansObservables.DEBUG) {
-				Policy
-						.getLog()
-						.log(
-								new Status(
-										IStatus.WARNING,
-										Policy.JFACE_DATABINDING,
-										IStatus.OK,
-										"Could not change value of " + source + "." + propertyDescriptor.getName(), e)); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-	}
-
-	/**
-	 * Returns the contents of the given property for the given bean.
-	 * 
-	 * @param source
-	 *            the source bean
-	 * @param propertyDescriptor
-	 *            the property to retrieve
-	 * @return the contents of the given property for the given bean.
-	 */
-	public static Object readProperty(Object source,
-			PropertyDescriptor propertyDescriptor) {
-		try {
-			Method readMethod = propertyDescriptor.getReadMethod();
-			if (readMethod == null) {
-				throw new IllegalArgumentException(propertyDescriptor.getName()
-						+ " property does not have a read method."); //$NON-NLS-1$
-			}
-			if (!readMethod.isAccessible()) {
-				readMethod.setAccessible(true);
-			}
-			return readMethod.invoke(source, null);
-		} catch (InvocationTargetException e) {
-			/*
-			 * InvocationTargetException wraps any exception thrown by the
-			 * invoked method.
-			 */
-			throw new RuntimeException(e.getCause());
-		} catch (Exception e) {
-			if (BeansObservables.DEBUG) {
-				Policy
-						.getLog()
-						.log(
-								new Status(
-										IStatus.WARNING,
-										Policy.JFACE_DATABINDING,
-										IStatus.OK,
-										"Could not read value of " + source + "." + propertyDescriptor.getName(), e)); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return null;
-		}
-	}
-
-	/**
-	 * Returns the element type of the given collection-typed property for the
-	 * given bean.
-	 * 
-	 * @param descriptor
-	 *            the property being inspected
-	 * @return the element type of the given collection-typed property if it is
-	 *         an array property, or Object.class otherwise.
-	 */
-	public static Class getCollectionPropertyElementType(
-			PropertyDescriptor descriptor) {
-		Class propertyType = descriptor.getPropertyType();
-		return propertyType.isArray() ? propertyType.getComponentType()
-				: Object.class;
-	}
-
-	/**
-	 * @param beanClass
-	 * @param propertyName
-	 * @return the PropertyDescriptor for the named property on the given bean
-	 *         class
-	 */
-	public static PropertyDescriptor getPropertyDescriptor(Class beanClass,
-			String propertyName) {
-		if (!beanClass.isInterface()) {
-			BeanInfo beanInfo;
-			try {
-				beanInfo = Introspector.getBeanInfo(beanClass);
-			} catch (IntrospectionException e) {
-				// cannot introspect, give up
-				return null;
-			}
-			PropertyDescriptor[] propertyDescriptors = beanInfo
-					.getPropertyDescriptors();
-			for (int i = 0; i < propertyDescriptors.length; i++) {
-				PropertyDescriptor descriptor = propertyDescriptors[i];
-				if (descriptor.getName().equals(propertyName)) {
-					return descriptor;
-				}
-			}
-		} else {
-			try {
-				PropertyDescriptor propertyDescriptors[];
-				List pds = new ArrayList();
-				getInterfacePropertyDescriptors(pds, beanClass);
-				if (pds.size() > 0) {
-					propertyDescriptors = (PropertyDescriptor[]) pds
-							.toArray(new PropertyDescriptor[pds.size()]);
-					PropertyDescriptor descriptor;
-					for (int i = 0; i < propertyDescriptors.length; i++) {
-						descriptor = propertyDescriptors[i];
-						if (descriptor.getName().equals(propertyName))
-							return descriptor;
-					}
-				}
-			} catch (IntrospectionException e) {
-				// cannot introspect, give up
-				return null;
-			}
-		}
-		throw new IllegalArgumentException(
-				"Could not find property with name " + propertyName + " in class " + beanClass); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Goes recursively into the interface and gets all defined
-	 * propertyDescriptors
-	 * 
-	 * @param propertyDescriptors
-	 *            The result list of all PropertyDescriptors the given interface
-	 *            defines (hierarchical)
-	 * @param iface
-	 *            The interface to fetch the PropertyDescriptors
-	 * @throws IntrospectionException
-	 */
-	private static void getInterfacePropertyDescriptors(
-			List propertyDescriptors, Class iface)
-			throws IntrospectionException {
-		BeanInfo beanInfo = Introspector.getBeanInfo(iface);
-		PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
-		for (int i = 0; i < pds.length; i++) {
-			PropertyDescriptor pd = pds[i];
-			propertyDescriptors.add(pd);
-		}
-		Class[] subIntfs = iface.getInterfaces();
-		for (int j = 0; j < subIntfs.length; j++) {
-			getInterfacePropertyDescriptors(propertyDescriptors, subIntfs[j]);
-		}
-	}
-
-	/**
-	 * @param observable
-	 * @param propertyName
-	 * @return property descriptor or <code>null</code>
-	 */
-	/* package */public static PropertyDescriptor getValueTypePropertyDescriptor(
-			IObservableValue observable, String propertyName) {
-		if (observable.getValueType() != null)
-			return getPropertyDescriptor((Class) observable.getValueType(),
-					propertyName);
-		return null;
-	}
-
-	/**
-	 * @param propertyDescriptor
-	 * @return String description of property descriptor
-	 */
-	public static String propertyName(PropertyDescriptor propertyDescriptor) {
-		Class beanClass = propertyDescriptor.getReadMethod()
-				.getDeclaringClass();
-		return shortClassName(beanClass)
-				+ "." + propertyDescriptor.getName() + ""; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * @param beanClass
-	 * @return class name excluding package
-	 */
-	public static String shortClassName(Class beanClass) {
-		if (beanClass == null)
-			return "?"; //$NON-NLS-1$
-		String className = beanClass.getName();
-		int lastDot = className.lastIndexOf('.');
-		if (lastDot != -1)
-			className = className.substring(lastDot + 1);
-		return className;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListener.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListener.java
deleted file mode 100644
index 01b3275..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListener.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 265561)
- *     Matthew Hall - bug 268336
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.observable.IDiff;
-import org.eclipse.core.databinding.property.IProperty;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.NativePropertyListener;
-
-/**
- * @since 3.3
- * 
- */
-public abstract class BeanPropertyListener extends NativePropertyListener
-		implements PropertyChangeListener {
-	private final PropertyDescriptor propertyDescriptor;
-
-	protected BeanPropertyListener(IProperty property,
-			PropertyDescriptor propertyDescriptor,
-			ISimplePropertyListener listener) {
-		super(property, listener);
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public void propertyChange(java.beans.PropertyChangeEvent evt) {
-		if (evt.getPropertyName() == null
-				|| propertyDescriptor.getName().equals(evt.getPropertyName())) {
-			Object oldValue = evt.getOldValue();
-			Object newValue = evt.getNewValue();
-			IDiff diff;
-			if (evt.getPropertyName() == null || oldValue == null
-					|| newValue == null)
-				diff = null;
-			else
-				diff = computeDiff(oldValue, newValue);
-			fireChange(evt.getSource(), diff);
-		}
-	}
-
-	protected abstract IDiff computeDiff(Object oldValue, Object newValue);
-
-	protected void doAddTo(Object source) {
-		BeanPropertyListenerSupport.hookListener(source, propertyDescriptor
-				.getName(), this);
-	}
-
-	protected void doRemoveFrom(Object source) {
-		BeanPropertyListenerSupport.unhookListener(source, propertyDescriptor
-				.getName(), this);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListenerSupport.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListenerSupport.java
deleted file mode 100644
index 23975db..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanPropertyListenerSupport.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 118516
- *******************************************************************************/
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyChangeListener;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.util.Policy;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * This is a helper that will hook up and listen for
- * <code>PropertyChangeEvent</code> events for a set of target JavaBeans
- * 
- * @since 1.0
- */
-public class BeanPropertyListenerSupport {
-	/**
-	 * Start listen to target (if it supports the JavaBean property change
-	 * listener pattern)
-	 * 
-	 * @param bean
-	 * @param propertyName
-	 * @param listener
-	 */
-	public static void hookListener(Object bean, String propertyName,
-			PropertyChangeListener listener) {
-		Assert.isNotNull(bean, "Bean cannot be null"); //$NON-NLS-1$
-		Assert.isNotNull(listener, "Listener cannot be null"); //$NON-NLS-1$
-		Assert.isNotNull(propertyName, "Property name cannot be null"); //$NON-NLS-1$
-		processListener(bean, propertyName, listener,
-				"addPropertyChangeListener", "Could not attach listener to ");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Stop listen to target
-	 * 
-	 * @param bean
-	 * @param propertyName
-	 * @param listener
-	 */
-	public static void unhookListener(Object bean, String propertyName,
-			PropertyChangeListener listener) {
-		Assert.isNotNull(bean, "Bean cannot be null"); //$NON-NLS-1$
-		Assert.isNotNull(listener, "Listener cannot be null"); //$NON-NLS-1$
-		Assert.isNotNull(propertyName, "Property name cannot be null"); //$NON-NLS-1$
-
-		processListener(
-				bean,
-				propertyName,
-				listener,
-				"removePropertyChangeListener", "Cound not remove listener from "); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Invokes the method for the provided <code>methodName</code> attempting to
-	 * first use the method with the property name and then the unnamed version.
-	 * 
-	 * @param bean
-	 *            object to invoke the method on
-	 * @param methodName
-	 *            either addPropertyChangeListener or
-	 *            removePropertyChangeListener
-	 * @param message
-	 *            string that will be prefixed to the target in an error message
-	 * 
-	 * @return <code>true</code> if the method was invoked successfully
-	 */
-	private static boolean processListener(Object bean, String propertyName,
-			PropertyChangeListener listener, String methodName, String message) {
-		Method method = null;
-		Object[] parameters = null;
-
-		try {
-			try {
-				method = bean.getClass().getMethod(
-						methodName,
-						new Class[] { String.class,
-								PropertyChangeListener.class });
-
-				parameters = new Object[] { propertyName, listener };
-			} catch (NoSuchMethodException e) {
-				method = bean.getClass().getMethod(methodName,
-						new Class[] { PropertyChangeListener.class });
-
-				parameters = new Object[] { listener };
-			}
-		} catch (SecurityException e) {
-			// ignore
-		} catch (NoSuchMethodException e) {
-			log(IStatus.WARNING, message + bean, e);
-		}
-
-		if (method != null) {
-			if (!method.isAccessible()) {
-				method.setAccessible(true);
-			}
-			try {
-				method.invoke(bean, parameters);
-				return true;
-			} catch (IllegalArgumentException e) {
-				log(IStatus.WARNING, message + bean, e);
-			} catch (IllegalAccessException e) {
-				log(IStatus.WARNING, message + bean, e);
-			} catch (InvocationTargetException e) {
-				log(IStatus.WARNING, message + bean, e);
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Logs a message to the Data Binding logger.
-	 */
-	private static void log(int severity, String message, Throwable throwable) {
-		if (BeansObservables.DEBUG) {
-			Policy.getLog().log(
-					new Status(severity, Policy.JFACE_DATABINDING, IStatus.OK,
-							message, throwable));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetProperty.java
deleted file mode 100644
index 8603304..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetProperty.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bugs 195222, 264307, 265064, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Array;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IDiff;
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.set.SimpleSetProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanSetProperty extends SimpleSetProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class elementType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param elementType
-	 */
-	public BeanSetProperty(PropertyDescriptor propertyDescriptor,
-			Class elementType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.elementType = elementType == null ? BeanPropertyHelper
-				.getCollectionPropertyElementType(propertyDescriptor)
-				: elementType;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	protected Set doGetSet(Object source) {
-		return asSet(BeanPropertyHelper
-				.readProperty(source, propertyDescriptor));
-	}
-
-	private Set asSet(Object propertyValue) {
-		if (propertyValue == null)
-			return Collections.EMPTY_SET;
-		if (propertyDescriptor.getPropertyType().isArray())
-			return new HashSet(Arrays.asList((Object[]) propertyValue));
-		return (Set) propertyValue;
-	}
-
-	protected void doSetSet(Object source, Set set, SetDiff diff) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor,
-				convertSetToBeanPropertyType(set));
-	}
-
-	private Object convertSetToBeanPropertyType(Set set) {
-		Object propertyValue = set;
-		if (propertyDescriptor.getPropertyType().isArray()) {
-			Class componentType = propertyDescriptor.getPropertyType()
-					.getComponentType();
-			Object[] array = (Object[]) Array.newInstance(componentType, set
-					.size());
-			propertyValue = set.toArray(array);
-		}
-		return propertyValue;
-	}
-
-	public INativePropertyListener adaptListener(
-			final ISimplePropertyListener listener) {
-		return new BeanPropertyListener(this, propertyDescriptor, listener) {
-			protected IDiff computeDiff(Object oldValue, Object newValue) {
-				return Diffs.computeSetDiff(asSet(oldValue), asSet(newValue));
-			}
-		};
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor) + "{}"; //$NON-NLS-1$
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetPropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetPropertyDecorator.java
deleted file mode 100644
index 6d0cb7e..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanSetPropertyDecorator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.beans.IBeanMapProperty;
-import org.eclipse.core.databinding.beans.IBeanSetProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.set.ISetProperty;
-import org.eclipse.core.databinding.property.set.SetProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanSetPropertyDecorator extends SetProperty implements
-		IBeanSetProperty {
-	private final ISetProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public BeanSetPropertyDecorator(ISetProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public Object getElementType() {
-		return delegate.getElementType();
-	}
-
-	public IBeanMapProperty values(String propertyName) {
-		return values(propertyName, null);
-	}
-
-	public IBeanMapProperty values(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getElementType();
-		return values(BeanProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanMapProperty values(IBeanValueProperty property) {
-		return new BeanMapPropertyDecorator(super.values(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IObservableSet observe(Object source) {
-		return new BeanObservableSetDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableSet observe(Realm realm, Object source) {
-		return new BeanObservableSetDecorator(delegate.observe(realm, source),
-				propertyDescriptor);
-	}
-
-	public IObservableFactory setFactory() {
-		return delegate.setFactory();
-	}
-
-	public IObservableFactory setFactory(Realm realm) {
-		return delegate.setFactory(realm);
-	}
-
-	public IObservableSet observeDetail(IObservableValue master) {
-		return new BeanObservableSetDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValueProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValueProperty.java
deleted file mode 100644
index 85e6c97..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValueProperty.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bug 195222, 264307, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.IDiff;
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.value.SimpleValueProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanValueProperty extends SimpleValueProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class valueType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param valueType
-	 */
-	public BeanValueProperty(PropertyDescriptor propertyDescriptor,
-			Class valueType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.valueType = valueType == null ? propertyDescriptor
-				.getPropertyType() : valueType;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-	protected Object doGetValue(Object source) {
-		return BeanPropertyHelper.readProperty(source, propertyDescriptor);
-	}
-
-	protected void doSetValue(Object source, Object value) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor, value);
-	}
-
-	public INativePropertyListener adaptListener(
-			final ISimplePropertyListener listener) {
-		return new BeanPropertyListener(this, propertyDescriptor, listener) {
-			protected IDiff computeDiff(Object oldValue, Object newValue) {
-				return Diffs.createValueDiff(oldValue, newValue);
-			}
-		};
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor);
-		if (valueType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValuePropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValuePropertyDecorator.java
deleted file mode 100644
index c85ee03..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/BeanValuePropertyDecorator.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.BeanProperties;
-import org.eclipse.core.databinding.beans.IBeanListProperty;
-import org.eclipse.core.databinding.beans.IBeanMapProperty;
-import org.eclipse.core.databinding.beans.IBeanSetProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.core.databinding.property.value.ValueProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class BeanValuePropertyDecorator extends ValueProperty implements
-		IBeanValueProperty {
-	private final IValueProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public BeanValuePropertyDecorator(IValueProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public Object getValueType() {
-		return delegate.getValueType();
-	}
-
-	public IBeanValueProperty value(String propertyName) {
-		return value(propertyName, null);
-	}
-
-	public IBeanValueProperty value(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return value(BeanProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanValueProperty value(IBeanValueProperty property) {
-		return new BeanValuePropertyDecorator(super.value(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IBeanListProperty list(String propertyName) {
-		return list(propertyName, null);
-	}
-
-	public IBeanListProperty list(String propertyName, Class elementType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return list(BeanProperties.list(beanClass, propertyName, elementType));
-	}
-
-	public IBeanListProperty list(IBeanListProperty property) {
-		return new BeanListPropertyDecorator(super.list(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IBeanSetProperty set(String propertyName) {
-		return set(propertyName, null);
-	}
-
-	public IBeanSetProperty set(String propertyName, Class elementType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return set(BeanProperties.set(beanClass, propertyName, elementType));
-	}
-
-	public IBeanSetProperty set(IBeanSetProperty property) {
-		return new BeanSetPropertyDecorator(super.set(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IBeanMapProperty map(String propertyName) {
-		return map(propertyName, null, null);
-	}
-
-	public IBeanMapProperty map(String propertyName, Class keyType,
-			Class valueType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return map(BeanProperties.map(beanClass, propertyName, keyType,
-				valueType));
-	}
-
-	public IBeanMapProperty map(IBeanMapProperty property) {
-		return new BeanMapPropertyDecorator(super.map(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IObservableValue observe(Object source) {
-		return new BeanObservableValueDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableValue observe(Realm realm, Object source) {
-		return new BeanObservableValueDecorator(
-				delegate.observe(realm, source), propertyDescriptor);
-	}
-
-	public IObservableFactory valueFactory() {
-		return delegate.valueFactory();
-	}
-
-	public IObservableFactory valueFactory(Realm realm) {
-		return delegate.valueFactory(realm);
-	}
-
-	public IObservableValue observeDetail(IObservableValue master) {
-		return new BeanObservableValueDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public IObservableList observeDetail(IObservableList master) {
-		return new BeanObservableListDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public IObservableMap observeDetail(IObservableSet master) {
-		return new BeanObservableMapDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public IObservableMap observeDetail(IObservableMap master) {
-		return new BeanObservableMapDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListProperty.java
deleted file mode 100644
index 0a4c7a3..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListProperty.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bug 195222, 264307, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.list.SimpleListProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoListProperty extends SimpleListProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class elementType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param elementType
-	 */
-	public PojoListProperty(PropertyDescriptor propertyDescriptor,
-			Class elementType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.elementType = elementType == null ? BeanPropertyHelper
-				.getCollectionPropertyElementType(propertyDescriptor)
-				: elementType;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	protected List doGetList(Object source) {
-		return asList(BeanPropertyHelper.readProperty(source,
-				propertyDescriptor));
-	}
-
-	private List asList(Object propertyValue) {
-		if (propertyValue == null)
-			return new ArrayList();
-		if (propertyDescriptor.getPropertyType().isArray())
-			return new ArrayList(Arrays.asList((Object[]) propertyValue));
-		return (List) propertyValue;
-	}
-
-	protected void doSetList(Object source, List list, ListDiff diff) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor,
-				convertListToBeanPropertyType(list));
-	}
-
-	private Object convertListToBeanPropertyType(List list) {
-		Object propertyValue = list;
-		if (propertyDescriptor.getPropertyType().isArray()) {
-			Class componentType = propertyDescriptor.getPropertyType()
-					.getComponentType();
-			Object[] array = (Object[]) Array.newInstance(componentType, list
-					.size());
-			list.toArray(array);
-			propertyValue = array;
-		}
-		return propertyValue;
-	}
-
-	public INativePropertyListener adaptListener(
-			ISimplePropertyListener listener) {
-		return null;
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor) + "[]"; //$NON-NLS-1$
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListPropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListPropertyDecorator.java
deleted file mode 100644
index 7f63f0e..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoListPropertyDecorator.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanListProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.list.IListProperty;
-import org.eclipse.core.databinding.property.list.ListProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoListPropertyDecorator extends ListProperty implements
-		IBeanListProperty {
-	private final IListProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public PojoListPropertyDecorator(IListProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public Object getElementType() {
-		return delegate.getElementType();
-	}
-
-	public IBeanListProperty values(String propertyName) {
-		return values(propertyName, null);
-	}
-
-	public IBeanListProperty values(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getElementType();
-		return values(PojoProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanListProperty values(IBeanValueProperty property) {
-		return new PojoListPropertyDecorator(super.values(property), property
-				.getPropertyDescriptor());
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public IObservableList observe(Object source) {
-		return new BeanObservableListDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableList observe(Realm realm, Object source) {
-		return new BeanObservableListDecorator(delegate.observe(realm, source),
-				propertyDescriptor);
-	}
-
-	public IObservableFactory listFactory() {
-		return delegate.listFactory();
-	}
-
-	public IObservableFactory listFactory(Realm realm) {
-		return delegate.listFactory(realm);
-	}
-
-	public IObservableList observeDetail(IObservableValue master) {
-		return new BeanObservableListDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapProperty.java
deleted file mode 100644
index 50b80c8..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapProperty.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bug 195222, 264307, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.map.MapDiff;
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.map.SimpleMapProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoMapProperty extends SimpleMapProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class keyType;
-	private final Class valueType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param keyType
-	 * @param valueType
-	 */
-	public PojoMapProperty(PropertyDescriptor propertyDescriptor,
-			Class keyType, Class valueType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.keyType = keyType;
-		this.valueType = valueType;
-	}
-
-	public Object getKeyType() {
-		return keyType;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-	protected Map doGetMap(Object source) {
-		return asMap(BeanPropertyHelper
-				.readProperty(source, propertyDescriptor));
-	}
-
-	private Map asMap(Object propertyValue) {
-		if (propertyValue == null)
-			return new HashMap();
-		return (Map) propertyValue;
-	}
-
-	protected void doSetMap(Object source, Map map, MapDiff diff) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor, map);
-	}
-
-	public INativePropertyListener adaptListener(
-			ISimplePropertyListener listener) {
-		return null;
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor) + "{:}"; //$NON-NLS-1$
-
-		if (keyType != null || valueType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(keyType) + ", " //$NON-NLS-1$ //$NON-NLS-2$
-					+ BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapPropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapPropertyDecorator.java
deleted file mode 100644
index ce7419d..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoMapPropertyDecorator.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanMapProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.map.IMapProperty;
-import org.eclipse.core.databinding.property.map.MapProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoMapPropertyDecorator extends MapProperty implements
-		IBeanMapProperty {
-	private final IMapProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public PojoMapPropertyDecorator(IMapProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public Object getKeyType() {
-		return delegate.getKeyType();
-	}
-
-	public Object getValueType() {
-		return delegate.getValueType();
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public IBeanMapProperty values(String propertyName) {
-		return values(propertyName, null);
-	}
-
-	public IBeanMapProperty values(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return values(PojoProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanMapProperty values(IBeanValueProperty property) {
-		return new PojoMapPropertyDecorator(super.values(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IObservableMap observe(Object source) {
-		return new BeanObservableMapDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableMap observe(Realm realm, Object source) {
-		return new BeanObservableMapDecorator(delegate.observe(realm, source),
-				propertyDescriptor);
-	}
-
-	public IObservableFactory mapFactory() {
-		return delegate.mapFactory();
-	}
-
-	public IObservableFactory mapFactory(Realm realm) {
-		return delegate.mapFactory(realm);
-	}
-
-	public IObservableMap observeDetail(IObservableValue master) {
-		return new BeanObservableMapDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetProperty.java
deleted file mode 100644
index 70bd9c0..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetProperty.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bugs 195222, 264307, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.Array;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.databinding.observable.set.SetDiff;
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.set.SimpleSetProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoSetProperty extends SimpleSetProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class elementType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param elementType
-	 */
-	public PojoSetProperty(PropertyDescriptor propertyDescriptor,
-			Class elementType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.elementType = elementType == null ? BeanPropertyHelper
-				.getCollectionPropertyElementType(propertyDescriptor)
-				: elementType;
-	}
-
-	public Object getElementType() {
-		return elementType;
-	}
-
-	protected Set doGetSet(Object source) {
-		return asSet(BeanPropertyHelper
-				.readProperty(source, propertyDescriptor));
-	}
-
-	private Set asSet(Object propertyValue) {
-		if (propertyValue == null)
-			return Collections.EMPTY_SET;
-		if (propertyDescriptor.getPropertyType().isArray())
-			return new HashSet(Arrays.asList((Object[]) propertyValue));
-		return (Set) propertyValue;
-	}
-
-	protected void doSetSet(Object source, Set set, SetDiff diff) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor,
-				convertSetToBeanPropertyType(set));
-	}
-
-	private Object convertSetToBeanPropertyType(Set set) {
-		Object propertyValue = set;
-		if (propertyDescriptor.getPropertyType().isArray()) {
-			Class componentType = propertyDescriptor.getPropertyType()
-					.getComponentType();
-			Object[] array = (Object[]) Array.newInstance(componentType, set
-					.size());
-			propertyValue = set.toArray(array);
-		}
-		return propertyValue;
-	}
-
-	public INativePropertyListener adaptListener(
-			ISimplePropertyListener listener) {
-		return null;
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor) + "{}"; //$NON-NLS-1$
-		if (elementType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(elementType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetPropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetPropertyDecorator.java
deleted file mode 100644
index 1879658..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoSetPropertyDecorator.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanMapProperty;
-import org.eclipse.core.databinding.beans.IBeanSetProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.set.ISetProperty;
-import org.eclipse.core.databinding.property.set.SetProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoSetPropertyDecorator extends SetProperty implements
-		IBeanSetProperty {
-	private final ISetProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public PojoSetPropertyDecorator(ISetProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public Object getElementType() {
-		return delegate.getElementType();
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public IBeanMapProperty values(String propertyName) {
-		return values(propertyName, null);
-	}
-
-	public IBeanMapProperty values(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getElementType();
-		return values(PojoProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanMapProperty values(IBeanValueProperty property) {
-		return new BeanMapPropertyDecorator(super.values(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IObservableSet observe(Object source) {
-		return new BeanObservableSetDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableSet observe(Realm realm, Object source) {
-		return new BeanObservableSetDecorator(delegate.observe(realm, source),
-				propertyDescriptor);
-	}
-
-	public IObservableFactory setFactory() {
-		return delegate.setFactory();
-	}
-
-	public IObservableFactory setFactory(Realm realm) {
-		return delegate.setFactory(realm);
-	}
-
-	public IObservableSet observeDetail(IObservableValue master) {
-		return new BeanObservableSetDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValueProperty.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValueProperty.java
deleted file mode 100644
index f63a8c8..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValueProperty.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 194734)
- *     Matthew Hall - bugs 195222, 264307, 265561
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.property.INativePropertyListener;
-import org.eclipse.core.databinding.property.ISimplePropertyListener;
-import org.eclipse.core.databinding.property.value.SimpleValueProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoValueProperty extends SimpleValueProperty {
-	private final PropertyDescriptor propertyDescriptor;
-	private final Class valueType;
-
-	/**
-	 * @param propertyDescriptor
-	 * @param valueType
-	 */
-	public PojoValueProperty(PropertyDescriptor propertyDescriptor,
-			Class valueType) {
-		this.propertyDescriptor = propertyDescriptor;
-		this.valueType = valueType == null ? propertyDescriptor
-				.getPropertyType() : valueType;
-	}
-
-	public Object getValueType() {
-		return valueType;
-	}
-
-	protected Object doGetValue(Object source) {
-		if (source == null)
-			return null;
-		return BeanPropertyHelper.readProperty(source, propertyDescriptor);
-	}
-
-	protected void doSetValue(Object source, Object value) {
-		BeanPropertyHelper.writeProperty(source, propertyDescriptor, value);
-	}
-
-	public INativePropertyListener adaptListener(
-			ISimplePropertyListener listener) {
-		return null;
-	}
-
-	public String toString() {
-		String s = BeanPropertyHelper.propertyName(propertyDescriptor);
-		if (valueType != null)
-			s += "<" + BeanPropertyHelper.shortClassName(valueType) + ">"; //$NON-NLS-1$//$NON-NLS-2$
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValuePropertyDecorator.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValuePropertyDecorator.java
deleted file mode 100644
index 19f29de..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/PojoValuePropertyDecorator.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 195222)
- *     Matthew Hall - bug 264307
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-import java.beans.PropertyDescriptor;
-
-import org.eclipse.core.databinding.beans.IBeanListProperty;
-import org.eclipse.core.databinding.beans.IBeanMapProperty;
-import org.eclipse.core.databinding.beans.IBeanSetProperty;
-import org.eclipse.core.databinding.beans.IBeanValueProperty;
-import org.eclipse.core.databinding.beans.PojoProperties;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.masterdetail.IObservableFactory;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.property.value.IValueProperty;
-import org.eclipse.core.databinding.property.value.ValueProperty;
-
-/**
- * @since 3.3
- * 
- */
-public class PojoValuePropertyDecorator extends ValueProperty implements
-		IBeanValueProperty {
-	private final IValueProperty delegate;
-	private final PropertyDescriptor propertyDescriptor;
-
-	/**
-	 * @param delegate
-	 * @param propertyDescriptor
-	 */
-	public PojoValuePropertyDecorator(IValueProperty delegate,
-			PropertyDescriptor propertyDescriptor) {
-		this.delegate = delegate;
-		this.propertyDescriptor = propertyDescriptor;
-	}
-
-	public PropertyDescriptor getPropertyDescriptor() {
-		return propertyDescriptor;
-	}
-
-	public Object getValueType() {
-		return delegate.getValueType();
-	}
-
-	public IBeanValueProperty value(String propertyName) {
-		return value(propertyName, null);
-	}
-
-	public IBeanValueProperty value(String propertyName, Class valueType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return value(PojoProperties.value(beanClass, propertyName, valueType));
-	}
-
-	public IBeanValueProperty value(IBeanValueProperty property) {
-		return new PojoValuePropertyDecorator(super.value(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IBeanListProperty list(String propertyName) {
-		return list(propertyName, null);
-	}
-
-	public IBeanListProperty list(String propertyName, Class elementType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return list(PojoProperties.list(beanClass, propertyName, elementType));
-	}
-
-	public IBeanListProperty list(IBeanListProperty property) {
-		return new BeanListPropertyDecorator(super.list(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IBeanSetProperty set(String propertyName) {
-		return set(propertyName, null);
-	}
-
-	public IBeanSetProperty set(String propertyName, Class elementType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return set(PojoProperties.set(beanClass, propertyName, elementType));
-	}
-
-	public IBeanSetProperty set(IBeanSetProperty property) {
-		return new BeanSetPropertyDecorator(super.set(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IBeanMapProperty map(String propertyName) {
-		return map(propertyName, null, null);
-	}
-
-	public IBeanMapProperty map(String propertyName, Class keyType,
-			Class valueType) {
-		Class beanClass = (Class) delegate.getValueType();
-		return map(PojoProperties.map(beanClass, propertyName, keyType,
-				valueType));
-	}
-
-	public IBeanMapProperty map(IBeanMapProperty property) {
-		return new BeanMapPropertyDecorator(super.map(property), property
-				.getPropertyDescriptor());
-	}
-
-	public IObservableValue observe(Object source) {
-		return new BeanObservableValueDecorator(delegate.observe(source),
-				propertyDescriptor);
-	}
-
-	public IObservableValue observe(Realm realm, Object source) {
-		return new BeanObservableValueDecorator(
-				delegate.observe(realm, source), propertyDescriptor);
-	}
-
-	public IObservableFactory valueFactory() {
-		return delegate.valueFactory();
-	}
-
-	public IObservableFactory valueFactory(Realm realm) {
-		return delegate.valueFactory(realm);
-	}
-
-	public IObservableValue observeDetail(IObservableValue master) {
-		return new BeanObservableValueDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public IObservableList observeDetail(IObservableList master) {
-		return new BeanObservableListDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public IObservableMap observeDetail(IObservableSet master) {
-		return new BeanObservableMapDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public IObservableMap observeDetail(IObservableMap master) {
-		return new BeanObservableMapDecorator(delegate.observeDetail(master),
-				propertyDescriptor);
-	}
-
-	public String toString() {
-		return delegate.toString();
-	}
-}
diff --git a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Util.java b/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Util.java
deleted file mode 100644
index f18e856..0000000
--- a/bundles/org.eclipse.core.databinding.beans/src/org/eclipse/core/internal/databinding/beans/Util.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.core.internal.databinding.beans;
-
-/**
- * @since 3.3
- * 
- */
-public class Util {
-
-	/**
-	 * Checks whether the two objects are <code>null</code> -- allowing for
-	 * <code>null</code>.
-	 * 
-	 * @param left
-	 *            The left object to compare; may be <code>null</code>.
-	 * @param right
-	 *            The right object to compare; may be <code>null</code>.
-	 * @return <code>true</code> if the two objects are equivalent;
-	 *         <code>false</code> otherwise.
-	 */
-	public static final boolean equals(final Object left, final Object right) {
-		return left == null ? right == null : ((right != null) && left
-				.equals(right));
-	}
-}
diff --git a/bundles/org.eclipse.jface/.classpath b/bundles/org.eclipse.jface/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.jface/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.jface/.cvsignore b/bundles/org.eclipse.jface/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.jface/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.jface/.options b/bundles/org.eclipse.jface/.options
deleted file mode 100644
index f62a68c..0000000
--- a/bundles/org.eclipse.jface/.options
+++ /dev/null
@@ -1,20 +0,0 @@
-# Debugging options for the org.eclipse.jface plugin.
-
-# Turn on debugging for the org.eclipse.ui plugin.
-org.eclipse.jface/debug=false
-
-# Log a message if a dialog is opened without a parent
-org.eclipse.jface/debug/dialog/noparent=false
-
-# Always log reentrant calls to viewers (if set to false, it just logs the first reentrant call)
-org.eclipse.jface/debug/viewers/reentrantViewerCalls=false
-
-# Show the jface new look for the preferences dialog
-org.eclipse.jface/newlook/preferences/showNewLook=false
-
-# Report when a tool bar contribution item is asked its visibility after being
-# disposed.  TODO Remove this option?  Bug 51000
-org.eclipse.jface/trace/toolbarDisposal=false
-
-# Reports the time to run an action
-org.eclipse.jface/trace/actions=false
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface/.project b/bundles/org.eclipse.jface/.project
deleted file mode 100644
index b541893..0000000
--- a/bundles/org.eclipse.jface/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jface</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.jface/.settings/.api_filters b/bundles/org.eclipse.jface/.settings/.api_filters
deleted file mode 100644
index 19fd0fa..0000000
--- a/bundles/org.eclipse.jface/.settings/.api_filters
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.jface" version="2">
-    <resource path="src/org/eclipse/jface/dialogs/PopupDialog.java" type="org.eclipse.jface.dialogs.PopupDialog">
-        <filter id="388194388">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.dialogs.PopupDialog"/>
-                <message_argument value="HOVER_SHELLSTYLE"/>
-                <message_argument value="540680"/>
-            </message_arguments>
-        </filter>
-        <filter id="388194388">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.dialogs.PopupDialog"/>
-                <message_argument value="INFOPOPUP_SHELLSTYLE"/>
-                <message_argument value="8"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/jface/fieldassist/ControlDecoration.java" type="org.eclipse.jface.fieldassist.ControlDecoration">
-        <filter id="336744520">
-            <message_arguments>
-                <message_argument value="org.eclipse.jface.fieldassist.ControlDecoration"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e6751d1..0000000
--- a/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,72 +0,0 @@
-#Mon Oct 22 10:29:11 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=error
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 3efbe7b..0000000
--- a/bundles/org.eclipse.jface/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Oct 22 10:29:11 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.4\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/bundles/org.eclipse.jface/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.jface/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index fee4b04..0000000
--- a/bundles/org.eclipse.jface/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Sat Mar 19 15:31:31 EST 2005
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF b/bundles/org.eclipse.jface/META-INF/MANIFEST.MF
deleted file mode 100644
index c1afddb..0000000
--- a/bundles/org.eclipse.jface/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,46 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface
-Bundle-Version: 3.5.100.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jface,
- org.eclipse.jface.action,
- org.eclipse.jface.action.images,
- org.eclipse.jface.bindings,
- org.eclipse.jface.bindings.keys,
- org.eclipse.jface.bindings.keys.formatting,
- org.eclipse.jface.commands,
- org.eclipse.jface.contexts,
- org.eclipse.jface.dialogs,
- org.eclipse.jface.dialogs.images,
- org.eclipse.jface.fieldassist,
- org.eclipse.jface.fieldassist.images,
- org.eclipse.jface.images,
- org.eclipse.jface.internal;x-friends:="org.eclipse.ui.workbench",
- org.eclipse.jface.internal.provisional.action;x-friends:="org.eclipse.ui.workbench",
- org.eclipse.jface.layout,
- org.eclipse.jface.menus,
- org.eclipse.jface.operation,
- org.eclipse.jface.preference,
- org.eclipse.jface.preference.images,
- org.eclipse.jface.resource,
- org.eclipse.jface.util,
- org.eclipse.jface.viewers,
- org.eclipse.jface.viewers.deferred,
- org.eclipse.jface.window,
- org.eclipse.jface.wizard,
- org.eclipse.jface.wizard.images
-Require-Bundle: org.eclipse.swt;bundle-version="[3.4.0,4.0.0)";visibility:=reexport,
- org.eclipse.core.commands;bundle-version="[3.4.0,4.0.0)";visibility:=reexport,
- org.eclipse.equinox.common;bundle-version="[3.2.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4,
- CDC-1.1/Foundation-1.1
-Import-Package: javax.xml.parsers,
- org.osgi.framework,
- org.w3c.dom,
- org.xml.sax
-Bundle-Activator: org.eclipse.jface.internal.JFaceActivator
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.jface/about.html b/bundles/org.eclipse.jface/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.jface/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface/build.properties b/bundles/org.eclipse.jface/build.properties
deleted file mode 100644
index 2c04303..0000000
--- a/bundles/org.eclipse.jface/build.properties
+++ /dev/null
@@ -1,16 +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
-###############################################################################
-bin.includes = plugin.properties,\
-               about.html,\
-               .,\
-               META-INF/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.jface/icons/full/help.gif b/bundles/org.eclipse.jface/icons/full/help.gif
deleted file mode 100644
index f637410..0000000
--- a/bundles/org.eclipse.jface/icons/full/help.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/icons/full/message_error.gif b/bundles/org.eclipse.jface/icons/full/message_error.gif
deleted file mode 100644
index 2ff6678..0000000
--- a/bundles/org.eclipse.jface/icons/full/message_error.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/icons/full/message_info.gif b/bundles/org.eclipse.jface/icons/full/message_info.gif
deleted file mode 100644
index b484d9b..0000000
--- a/bundles/org.eclipse.jface/icons/full/message_info.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/icons/full/message_warning.gif b/bundles/org.eclipse.jface/icons/full/message_warning.gif
deleted file mode 100644
index 8e054d0..0000000
--- a/bundles/org.eclipse.jface/icons/full/message_warning.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/icons/full/page.gif b/bundles/org.eclipse.jface/icons/full/page.gif
deleted file mode 100644
index 4ed90dc..0000000
--- a/bundles/org.eclipse.jface/icons/full/page.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/icons/full/pref_dialog_title.gif b/bundles/org.eclipse.jface/icons/full/pref_dialog_title.gif
deleted file mode 100644
index 672442f..0000000
--- a/bundles/org.eclipse.jface/icons/full/pref_dialog_title.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/icons/full/title_banner.png b/bundles/org.eclipse.jface/icons/full/title_banner.png
deleted file mode 100644
index 01e187c..0000000
--- a/bundles/org.eclipse.jface/icons/full/title_banner.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/plugin.properties b/bundles/org.eclipse.jface/plugin.properties
deleted file mode 100644
index 528303e..0000000
--- a/bundles/org.eclipse.jface/plugin.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-pluginName = JFace
-providerName = Eclipse.org
diff --git a/bundles/org.eclipse.jface/scripts/exportplugin.xml b/bundles/org.eclipse.jface/scripts/exportplugin.xml
deleted file mode 100644
index 2ea417c..0000000
--- a/bundles/org.eclipse.jface/scripts/exportplugin.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<project name="Export JFace" default="export" basedir="..">
-	<target name="init">
-		<tstamp/>
-		<property name="destdir" value="../../plugin-export" />
-		<property name="plugin"  value="org.eclipse.jface" />
-		<property name="version"  value="_2.1.0" />
-		<property name="dest"  value="${destdir}/${plugin}${version}" />
-	</target>
-
-	<target name="build" depends="init">
-    	<eclipse.incrementalBuild project="${plugin}" kind="incr"/>
-	</target>
-
-	<target name="export" depends="build">
-		<mkdir dir="${destdir}" />
-		<delete dir="${dest}" />
-		<mkdir dir="${dest}" />
-		<jar 
-			jarfile="${dest}/jface.jar"
-			basedir="bin"
-		/>
-		<copy file="plugin.xml" todir="${dest}"/>
-		<copy file="plugin.properties" todir="${dest}"/>
-		<zip zipfile="${dest}/jfacesrc.zip">
-		    <fileset dir="src" />
-  		</zip>				
-	</target>
-</project>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractAction.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractAction.java
deleted file mode 100644
index a389387..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractAction.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.action;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * <p>
- * Some common functionality to share between implementations of
- * <code>IAction</code>. This functionality deals with the property change
- * event mechanism.
- * </p>
- * <p>
- * Clients may neither instantiate nor extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class AbstractAction extends EventManager implements IAction {
-
-	public void addPropertyChangeListener(final IPropertyChangeListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * Notifies any property change listeners that a property has changed. Only
-	 * listeners registered at the time this method is called are notified.
-	 * 
-	 * @param event
-	 *            the property change event
-	 * 
-	 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-	 */
-	protected final void firePropertyChange(final PropertyChangeEvent event) {
-		final Object[] list = getListeners();
-		for (int i = 0; i < list.length; ++i) {
-			((IPropertyChangeListener) list[i]).propertyChange(event);
-		}
-	}
-
-	/**
-	 * Notifies any property change listeners that a property has changed. Only
-	 * listeners registered at the time this method is called are notified. This
-	 * method avoids creating an event object if there are no listeners
-	 * registered, but calls
-	 * <code>firePropertyChange(PropertyChangeEvent)</code> if there are.
-	 * 
-	 * @param propertyName
-	 *            the name of the property that has changed
-	 * @param oldValue
-	 *            the old value of the property, or <code>null</code> if none
-	 * @param newValue
-	 *            the new value of the property, or <code>null</code> if none
-	 * 
-	 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-	 */
-	protected final void firePropertyChange(final String propertyName,
-			final Object oldValue, final Object newValue) {
-		if (isListenerAttached()) {
-			firePropertyChange(new PropertyChangeEvent(this, propertyName,
-					oldValue, newValue));
-		}
-	}
-
-	public void removePropertyChangeListener(
-			final IPropertyChangeListener listener) {
-		removeListenerObject(listener);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractGroupMarker.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractGroupMarker.java
deleted file mode 100644
index e0e5679..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/AbstractGroupMarker.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Abstract superclass for group marker classes.
- * <p>
- * This class is not intended to be subclassed outside the framework.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public abstract class AbstractGroupMarker extends ContributionItem {
-    /**
-     * Constructor for use by subclasses.
-     */
-    protected AbstractGroupMarker() {
-    }
-
-    /**
-     * Create a new group marker with the given name.
-     * The group name must not be <code>null</code> or the empty string.
-     * The group name is also used as the item id.
-     * 
-     * @param groupName the name of the group
-     */
-    protected AbstractGroupMarker(String groupName) {
-        super(groupName);
-        Assert.isTrue(groupName != null && groupName.length() > 0);
-    }
-
-    /**
-     * Returns the group name.
-     *
-     * @return the group name
-     */
-    public String getGroupName() {
-        return getId();
-    }
-
-    /**
-     * The <code>AbstractGroupMarker</code> implementation of this <code>IContributionItem</code>
-     * method returns <code>true</code> iff the id is not <code>null</code>. Subclasses may override.
-     */
-    public boolean isGroupMarker() {
-        return getId() != null;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Action.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Action.java
deleted file mode 100644
index 5be541b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Action.java
+++ /dev/null
@@ -1,697 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * The standard abstract implementation of an action.
- * <p>
- * Subclasses must implement the <code>IAction.run</code> method to carry out
- * the action's semantics.
- * </p>
- */
-public abstract class Action extends AbstractAction implements IAction {
-
-	private static final IMenuCreator VAL_DROP_DOWN_MENU = new IMenuCreator() {
-		public void dispose() {
-			// do nothing
-		}
-
-		public Menu getMenu(Control parent) {
-			// do nothing
-			return null;
-		}
-
-		public Menu getMenu(Menu parent) {
-			// do nothing
-			return null;
-		}
-	};
-
-	/*
-	 * The list of default values the action can have. These values will
-	 * determine the style of the action.
-	 */
-	private static final String VAL_PUSH_BTN = "PUSH_BTN"; //$NON-NLS-1$
-
-	private static final Integer VAL_RADIO_BTN_OFF = new Integer(0);
-
-	private static final Integer VAL_RADIO_BTN_ON = new Integer(1);
-
-	private static final Boolean VAL_TOGGLE_BTN_OFF = Boolean.FALSE;
-
-	private static final Boolean VAL_TOGGLE_BTN_ON = Boolean.TRUE;
-
-	/**
-	 * Converts an accelerator key code to a string representation.
-	 * 
-	 * @param keyCode
-	 *            the key code to be translated
-	 * @return a string representation of the key code
-	 */
-	public static String convertAccelerator(int keyCode) {
-		return LegacyActionTools.convertAccelerator(keyCode);
-	}
-
-	/**
-	 * Parses the given accelerator text, and converts it to an accelerator key
-	 * code.
-	 * 
-	 * @param acceleratorText
-	 *            the accelerator text
-	 * @return the SWT key code, or 0 if there is no accelerator
-	 */
-	public static int convertAccelerator(String acceleratorText) {
-		return LegacyActionTools.convertAccelerator(acceleratorText);
-	}
-
-	/**
-	 * Maps a standard keyboard key name to an SWT key code. Key names are
-	 * converted to upper case before comparison. If the key name is a single
-	 * letter, for example "S", its character code is returned.
-	 * <p>
-	 * The following key names are known (case is ignored):
-	 * <ul>
-	 * <li><code>"BACKSPACE"</code></li>
-	 * <li><code>"TAB"</code></li>
-	 * <li><code>"RETURN"</code></li>
-	 * <li><code>"ENTER"</code></li>
-	 * <li><code>"ESC"</code></li>
-	 * <li><code>"ESCAPE"</code></li>
-	 * <li><code>"DELETE"</code></li>
-	 * <li><code>"SPACE"</code></li>
-	 * <li><code>"ARROW_UP"</code>, <code>"ARROW_DOWN"</code>,
-	 * <code>"ARROW_LEFT"</code>, and <code>"ARROW_RIGHT"</code></li>
-	 * <li><code>"PAGE_UP"</code> and <code>"PAGE_DOWN"</code></li>
-	 * <li><code>"HOME"</code></li>
-	 * <li><code>"END"</code></li>
-	 * <li><code>"INSERT"</code></li>
-	 * <li><code>"F1"</code>, <code>"F2"</code> through <code>"F12"</code></li>
-	 * </ul>
-	 * </p>
-	 * 
-	 * @param token
-	 *            the key name
-	 * @return the SWT key code, <code>-1</code> if no match was found
-	 * @see org.eclipse.swt.SWT
-	 */
-	public static int findKeyCode(String token) {
-		return LegacyActionTools.findKeyCode(token);
-	}
-
-	/**
-	 * Maps an SWT key code to a standard keyboard key name. The key code is
-	 * stripped of modifiers (SWT.CTRL, SWT.ALT, SWT.SHIFT, and SWT.COMMAND). If
-	 * the key code is not an SWT code (for example if it a key code for the key
-	 * 'S'), a string containing a character representation of the key code is
-	 * returned.
-	 * 
-	 * @param keyCode
-	 *            the key code to be translated
-	 * @return the string representation of the key code
-	 * @see org.eclipse.swt.SWT
-	 * @since 2.0
-	 */
-	public static String findKeyString(int keyCode) {
-		return LegacyActionTools.findKeyString(keyCode);
-	}
-
-	/**
-	 * Maps standard keyboard modifier key names to the corresponding SWT
-	 * modifier bit. The following modifier key names are recognized (case is
-	 * ignored): <code>"CTRL"</code>, <code>"SHIFT"</code>,
-	 * <code>"ALT"</code>, and <code>"COMMAND"</code>. The given modifier
-	 * key name is converted to upper case before comparison.
-	 * 
-	 * @param token
-	 *            the modifier key name
-	 * @return the SWT modifier bit, or <code>0</code> if no match was found
-	 * @see org.eclipse.swt.SWT
-	 */
-	public static int findModifier(String token) {
-		return LegacyActionTools.findModifier(token);
-	}
-
-	/**
-	 * Returns a string representation of an SWT modifier bit (SWT.CTRL,
-	 * SWT.ALT, SWT.SHIFT, and SWT.COMMAND). Returns <code>null</code> if the
-	 * key code is not an SWT modifier bit.
-	 * 
-	 * @param keyCode
-	 *            the SWT modifier bit to be translated
-	 * @return the string representation of the SWT modifier bit, or
-	 *         <code>null</code> if the key code was not an SWT modifier bit
-	 * @see org.eclipse.swt.SWT
-	 * @since 2.0
-	 */
-	public static String findModifierString(int keyCode) {
-		return LegacyActionTools.findModifierString(keyCode);
-	}
-
-	/**
-	 * Convenience method for removing any optional accelerator text from the
-	 * given string. The accelerator text appears at the end of the text, and is
-	 * separated from the main part by a single tab character <code>'\t'</code>.
-	 * 
-	 * @param text
-	 *            the text
-	 * @return the text sans accelerator
-	 */
-	public static String removeAcceleratorText(String text) {
-		return LegacyActionTools.removeAcceleratorText(text);
-	}
-
-	/**
-	 * Convenience method for removing any mnemonics from the given string. For
-	 * example, <code>removeMnemonics("&Open")</code> will return
-	 * <code>"Open"</code>.
-	 * 
-	 * @param text
-	 *            the text
-	 * @return the text sans mnemonics
-	 * 
-	 * @since 3.0
-	 */
-	public static String removeMnemonics(String text) {
-		return LegacyActionTools.removeMnemonics(text);
-	}
-
-	/**
-	 * This action's accelerator; <code>0</code> means none.
-	 */
-	private int accelerator = 0;
-
-	/**
-	 * This action's action definition id, or <code>null</code> if none.
-	 */
-	private String actionDefinitionId;
-
-	/**
-	 * This action's description, or <code>null</code> if none.
-	 */
-	private String description;
-
-	/**
-	 * This action's disabled image, or <code>null</code> if none.
-	 */
-	private ImageDescriptor disabledImage;
-
-	/**
-	 * Indicates this action is enabled.
-	 */
-	private boolean enabled = true;
-
-	/**
-	 * An action's help listener, or <code>null</code> if none.
-	 */
-	private HelpListener helpListener;
-
-	/**
-	 * This action's hover image, or <code>null</code> if none.
-	 */
-	private ImageDescriptor hoverImage;
-
-	/**
-	 * This action's id, or <code>null</code> if none.
-	 */
-	private String id;
-
-	/**
-	 * This action's image, or <code>null</code> if none.
-	 */
-	private ImageDescriptor image;
-
-	/**
-	 * This action's text, or <code>null</code> if none.
-	 */
-	private String text;
-
-	/**
-	 * This action's tool tip text, or <code>null</code> if none.
-	 */
-	private String toolTipText;
-
-	/**
-	 * Holds the action's menu creator (an IMenuCreator) or checked state (a
-	 * Boolean for toggle button, or an Integer for radio button), or
-	 * <code>null</code> if neither have been set.
-	 * <p>
-	 * The value of this field affects the value of <code>getStyle()</code>.
-	 * </p>
-	 */
-	private Object value = null;
-
-	/**
-	 * Creates a new action with no text and no image.
-	 * <p>
-	 * Configure the action later using the set methods.
-	 * </p>
-	 */
-	protected Action() {
-		// do nothing
-	}
-
-	/**
-	 * Creates a new action with the given text and no image. Calls the zero-arg
-	 * constructor, then <code>setText</code>.
-	 * 
-	 * @param text
-	 *            the string used as the text for the action, or
-	 *            <code>null</code> if there is no text
-	 * @see #setText
-	 */
-	protected Action(String text) {
-		this();
-		setText(text);
-	}
-
-	/**
-	 * Creates a new action with the given text and image. Calls the zero-arg
-	 * constructor, then <code>setText</code> and
-	 * <code>setImageDescriptor</code>.
-	 * 
-	 * @param text
-	 *            the action's text, or <code>null</code> if there is no text
-	 * @param image
-	 *            the action's image, or <code>null</code> if there is no
-	 *            image
-	 * @see #setText
-	 * @see #setImageDescriptor
-	 */
-	protected Action(String text, ImageDescriptor image) {
-		this(text);
-		setImageDescriptor(image);
-	}
-
-	/**
-	 * Creates a new action with the given text and style.
-	 * 
-	 * @param text
-	 *            the action's text, or <code>null</code> if there is no text
-	 * @param style
-	 *            one of <code>AS_PUSH_BUTTON</code>,
-	 *            <code>AS_CHECK_BOX</code>, <code>AS_DROP_DOWN_MENU</code>,
-	 *            <code>AS_RADIO_BUTTON</code>, and
-	 *            <code>AS_UNSPECIFIED</code>.
-	 */
-	protected Action(String text, int style) {
-		this(text);
-		switch (style) {
-		case AS_PUSH_BUTTON:
-			value = VAL_PUSH_BTN;
-			break;
-		case AS_CHECK_BOX:
-			value = VAL_TOGGLE_BTN_OFF;
-			break;
-		case AS_DROP_DOWN_MENU:
-			value = VAL_DROP_DOWN_MENU;
-			break;
-		case AS_RADIO_BUTTON:
-			value = VAL_RADIO_BTN_OFF;
-			break;
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public int getAccelerator() {
-		return accelerator;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 * 
-	 */
-	public String getActionDefinitionId() {
-		return actionDefinitionId;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public String getDescription() {
-		if (description != null) {
-			return description;
-		}
-		return getToolTipText();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public ImageDescriptor getDisabledImageDescriptor() {
-		return disabledImage;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public HelpListener getHelpListener() {
-		return helpListener;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public ImageDescriptor getHoverImageDescriptor() {
-		return hoverImage;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return image;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public IMenuCreator getMenuCreator() {
-		// The default drop down menu value is only used
-		// to mark this action requested style. So do not
-		// return it. For backward compatibility reasons.
-		if (value == VAL_DROP_DOWN_MENU) {
-			return null;
-		}
-		if (value instanceof IMenuCreator) {
-			return (IMenuCreator) value;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public int getStyle() {
-		// Infer the style from the value field.
-		if (value == VAL_PUSH_BTN || value == null) {
-			return AS_PUSH_BUTTON;
-		}
-		if (value == VAL_TOGGLE_BTN_ON || value == VAL_TOGGLE_BTN_OFF) {
-			return AS_CHECK_BOX;
-		}
-		if (value == VAL_RADIO_BTN_ON || value == VAL_RADIO_BTN_OFF) {
-			return AS_RADIO_BUTTON;
-		}
-		if (value instanceof IMenuCreator) {
-			return AS_DROP_DOWN_MENU;
-		}
-
-		// We should never get to this line...
-		return AS_PUSH_BUTTON;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public String getText() {
-		return text;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public String getToolTipText() {
-		return toolTipText;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public boolean isChecked() {
-		return value == VAL_TOGGLE_BTN_ON || value == VAL_RADIO_BTN_ON;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public boolean isEnabled() {
-		return enabled;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public boolean isHandled() {
-		return true;
-	}
-
-	/**
-	 * Reports the outcome of the running of this action via the
-	 * {@link IAction#RESULT} property.
-	 * 
-	 * @param success
-	 *            <code>true</code> if the action succeeded and
-	 *            <code>false</code> if the action failed or was not completed
-	 * @see IAction#RESULT
-	 * @since 3.0
-	 */
-	public final void notifyResult(boolean success) {
-		// avoid Boolean.valueOf(boolean) to allow compilation against JCL
-		// Foundation (bug 80059)
-		firePropertyChange(RESULT, null, success ? Boolean.TRUE : Boolean.FALSE);
-	}
-
-	/**
-	 * The default implementation of this <code>IAction</code> method does
-	 * nothing. Subclasses should override this method if they do not need
-	 * information from the triggering event, or override
-	 * <code>runWithEvent(Event)</code> if they do.
-	 */
-	public void run() {
-		// do nothing
-	}
-
-	/**
-	 * The default implementation of this <code>IAction</code> method ignores
-	 * the event argument, and simply calls <code>run()</code>. Subclasses
-	 * should override this method if they need information from the triggering
-	 * event, or override <code>run()</code> if not.
-	 * 
-	 * @param event
-	 *            the SWT event which triggered this action being run
-	 * @since 2.0
-	 */
-	public void runWithEvent(Event event) {
-		run();
-	}
-
-	/*
-	 * @see IAction#setAccelerator(int)
-	 */
-	public void setAccelerator(int keycode) {
-		this.accelerator = keycode;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setActionDefinitionId(String id) {
-		actionDefinitionId = id;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setChecked(boolean checked) {
-		Object newValue = null;
-
-		// For backward compatibility, if the style is not
-		// set yet, then convert it to a toggle button.
-		if (value == null || value == VAL_TOGGLE_BTN_ON
-				|| value == VAL_TOGGLE_BTN_OFF) {
-			newValue = checked ? VAL_TOGGLE_BTN_ON : VAL_TOGGLE_BTN_OFF;
-		} else if (value == VAL_RADIO_BTN_ON || value == VAL_RADIO_BTN_OFF) {
-			newValue = checked ? VAL_RADIO_BTN_ON : VAL_RADIO_BTN_OFF;
-		} else {
-			// Some other style already, so do nothing.
-			return;
-		}
-
-		if (newValue != value) {
-			value = newValue;
-			if (checked) {
-				firePropertyChange(CHECKED, Boolean.FALSE, Boolean.TRUE);
-			} else {
-				firePropertyChange(CHECKED, Boolean.TRUE, Boolean.FALSE);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setDescription(String text) {
-
-		if ((description == null && text != null)
-				|| (description != null && text == null)
-				|| (description != null && text != null && !text
-						.equals(description))) {
-			String oldDescription = description;
-			description = text;
-			firePropertyChange(DESCRIPTION, oldDescription, description);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setDisabledImageDescriptor(ImageDescriptor newImage) {
-		if (disabledImage != newImage) {
-			ImageDescriptor oldImage = disabledImage;
-			disabledImage = newImage;
-			firePropertyChange(IMAGE, oldImage, newImage);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setEnabled(boolean enabled) {
-		if (enabled != this.enabled) {
-			Boolean oldVal = this.enabled ? Boolean.TRUE : Boolean.FALSE;
-			Boolean newVal = enabled ? Boolean.TRUE : Boolean.FALSE;
-			this.enabled = enabled;
-			firePropertyChange(ENABLED, oldVal, newVal);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setHelpListener(HelpListener listener) {
-		helpListener = listener;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setHoverImageDescriptor(ImageDescriptor newImage) {
-		if (hoverImage != newImage) {
-			ImageDescriptor oldImage = hoverImage;
-			hoverImage = newImage;
-			firePropertyChange(IMAGE, oldImage, newImage);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IAction.
-	 */
-	public void setImageDescriptor(ImageDescriptor newImage) {
-		if (image != newImage) {
-			ImageDescriptor oldImage = image;
-			image = newImage;
-			firePropertyChange(IMAGE, oldImage, newImage);
-		}
-	}
-
-	/**
-	 * Sets the menu creator for this action.
-	 * <p>
-	 * Note that if this method is called, it overrides the check status.
-	 * </p>
-	 * 
-	 * @param creator
-	 *            the menu creator, or <code>null</code> if none
-	 */
-	public void setMenuCreator(IMenuCreator creator) {
-		// For backward compatibility, if the style is not
-		// set yet, then convert it to a drop down menu.
-		if (value == null) {
-			value = creator;
-			return;
-		}
-
-		if (value instanceof IMenuCreator) {
-			value = creator == null ? VAL_DROP_DOWN_MENU : creator;
-		}
-	}
-
-	/**
-	 * Sets the text for this action.
-	 * <p>
-	 * Fires a property change event for the <code>TEXT</code> property if the
-	 * text actually changes as a consequence.
-	 * </p>
-	 * <p>
-	 * The accelerator is identified by the last index of a tab character. If
-	 * there are no tab characters, then it is identified by the last index of a
-	 * '@' character. If neither, then there is no accelerator text. Note that
-	 * if you want to insert a '@' character into the text (but no accelerator,
-	 * you can simply insert a '@' or a tab at the end of the text.
-	 * </p>
-	 * 
-	 * @param text
-	 *            the text, or <code>null</code> if none
-	 */
-	public void setText(String text) {
-		String oldText = this.text;
-		int oldAccel = this.accelerator;
-		this.text = text;
-		if (text != null) {
-			String acceleratorText = LegacyActionTools
-					.extractAcceleratorText(text);
-			if (acceleratorText != null) {
-				int newAccelerator = LegacyActionTools
-						.convertLocalizedAccelerator(acceleratorText);
-				// Be sure to not wipe out the accelerator if nothing found
-				if (newAccelerator > 0) {
-					setAccelerator(newAccelerator);
-				}
-			}
-		}
-		if (!(this.accelerator == oldAccel && (oldText == null ? this.text == null
-				: oldText.equals(this.text)))) {
-			firePropertyChange(TEXT, oldText, this.text);
-		}
-	}
-
-	/**
-	 * Sets the tool tip text for this action.
-	 * <p>
-	 * Fires a property change event for the <code>TOOL_TIP_TEXT</code>
-	 * property if the tool tip text actually changes as a consequence.
-	 * </p>
-	 * 
-	 * @param toolTipText
-	 *            the tool tip text, or <code>null</code> if none
-	 */
-	public void setToolTipText(String toolTipText) {
-		String oldToolTipText = this.toolTipText;
-		if (!(oldToolTipText == null ? toolTipText == null : oldToolTipText
-				.equals(toolTipText))) {
-			this.toolTipText = toolTipText;
-			firePropertyChange(TOOL_TIP_TEXT, oldToolTipText, toolTipText);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
deleted file mode 100644
index eab5620..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ActionContributionItem.java
+++ /dev/null
@@ -1,1366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.jface.action.ExternalActionManager.IBindingManagerCallback;
-import org.eclipse.jface.bindings.Trigger;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.LocalResourceManager;
-import org.eclipse.jface.resource.ResourceManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A contribution item which delegates to an action.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ActionContributionItem extends ContributionItem {
- 
-	/**
-	 * Mode bit: Show text on tool items or buttons, even if an image is
-	 * present. If this mode bit is not set, text is only shown on tool items if
-	 * there is no image present.
-	 * 
-	 * @since 3.0
-	 */
-	public static int MODE_FORCE_TEXT = 1;
-
-	/** a string inserted in the middle of text that has been shortened */
-	private static final String ellipsis = "..."; //$NON-NLS-1$
-
-	/**
-	 * Stores the result of the action. False when the action returned failure.
-	 */
-	private Boolean result = null;
-
-	private static boolean USE_COLOR_ICONS = true;
-
-	/**
-	 * Returns whether color icons should be used in toolbars.
-	 * 
-	 * @return <code>true</code> if color icons should be used in toolbars,
-	 *         <code>false</code> otherwise
-	 */
-	public static boolean getUseColorIconsInToolbars() {
-		return USE_COLOR_ICONS;
-	}
-
-	/**
-	 * Sets whether color icons should be used in toolbars.
-	 * 
-	 * @param useColorIcons
-	 *            <code>true</code> if color icons should be used in toolbars,
-	 *            <code>false</code> otherwise
-	 */
-	public static void setUseColorIconsInToolbars(boolean useColorIcons) {
-		USE_COLOR_ICONS = useColorIcons;
-	}
-
-	/**
-	 * The presentation mode.
-	 */
-	private int mode = 0;
-
-	/**
-	 * The action.
-	 */
-	private IAction action;
-
-	/**
-	 * The listener for changes to the text of the action contributed by an
-	 * external source.
-	 */
-	private final IPropertyChangeListener actionTextListener = new IPropertyChangeListener() {
-
-		/**
-		 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			update(event.getProperty());
-		}
-	};
-
-	/**
-	 * Remembers all images in use by this contribution item
-	 */
-	private LocalResourceManager imageManager;
-
-	/**
-	 * Listener for SWT button widget events.
-	 */
-	private Listener buttonListener;
-
-	/**
-	 * Listener for SWT menu item widget events.
-	 */
-	private Listener menuItemListener;
-
-	/**
-	 * Listener for action property change notifications.
-	 */
-	private final IPropertyChangeListener propertyListener = new IPropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent event) {
-			actionPropertyChange(event);
-		}
-	};
-
-	/**
-	 * Listener for SWT tool item widget events.
-	 */
-	private Listener toolItemListener;
-
-	/**
-	 * The widget created for this item; <code>null</code> before creation and
-	 * after disposal.
-	 */
-	private Widget widget = null;
-
-	private Listener menuCreatorListener;
-
-	/**
-	 * Creates a new contribution item from the given action. The id of the
-	 * action is used as the id of the item.
-	 * 
-	 * @param action
-	 *            the action
-	 */
-	public ActionContributionItem(IAction action) {
-		super(action.getId());
-		this.action = action;
-	}
-
-	/**
-	 * Handles a property change event on the action (forwarded by nested
-	 * listener).
-	 */
-	private void actionPropertyChange(final PropertyChangeEvent e) {
-		// This code should be removed. Avoid using free asyncExec
-
-		if (isVisible() && widget != null) {
-			Display display = widget.getDisplay();
-			if (display.getThread() == Thread.currentThread()) {
-				update(e.getProperty());
-			} else {
-				display.asyncExec(new Runnable() {
-					public void run() {
-						update(e.getProperty());
-					}
-				});
-			}
-
-		}
-	}
-
-	/**
-	 * Compares this action contribution item with another object. Two action
-	 * contribution items are equal if they refer to the identical Action.
-	 */
-	public boolean equals(Object o) {
-		if (!(o instanceof ActionContributionItem)) {
-			return false;
-		}
-		return action.equals(((ActionContributionItem) o).action);
-	}
-
-	/**
-	 * The <code>ActionContributionItem</code> implementation of this
-	 * <code>IContributionItem</code> method creates an SWT
-	 * <code>Button</code> for the action using the action's style. If the
-	 * action's checked property has been set, the button is created and primed
-	 * to the value of the checked property.
-	 */
-	public void fill(Composite parent) {
-		if (widget == null && parent != null) {
-			int flags = SWT.PUSH;
-			if (action != null) {
-				if (action.getStyle() == IAction.AS_CHECK_BOX) {
-					flags = SWT.TOGGLE;
-				}
-				if (action.getStyle() == IAction.AS_RADIO_BUTTON) {
-					flags = SWT.RADIO;
-				}
-			}
-
-			Button b = new Button(parent, flags);
-			b.setData(this);
-			b.addListener(SWT.Dispose, getButtonListener());
-			// Don't hook a dispose listener on the parent
-			b.addListener(SWT.Selection, getButtonListener());
-			if (action.getHelpListener() != null) {
-				b.addHelpListener(action.getHelpListener());
-			}
-			widget = b;
-
-			update(null);
-
-			// Attach some extra listeners.
-			action.addPropertyChangeListener(propertyListener);
-			if (action != null) {
-				String commandId = action.getActionDefinitionId();
-				ExternalActionManager.ICallback callback = ExternalActionManager
-						.getInstance().getCallback();
-
-				if ((callback != null) && (commandId != null)) {
-					callback.addPropertyChangeListener(commandId,
-							actionTextListener);
-				}
-			}
-		}
-	}
-
-	/**
-	 * The <code>ActionContributionItem</code> implementation of this
-	 * <code>IContributionItem</code> method creates an SWT
-	 * <code>MenuItem</code> for the action using the action's style. If the
-	 * action's checked property has been set, a button is created and primed to
-	 * the value of the checked property. If the action's menu creator property
-	 * has been set, a cascading submenu is created.
-	 */
-	public void fill(Menu parent, int index) {
-		if (widget == null && parent != null) {
-			int flags = SWT.PUSH;
-			if (action != null) {
-				int style = action.getStyle();
-				if (style == IAction.AS_CHECK_BOX) {
-					flags = SWT.CHECK;
-				} else if (style == IAction.AS_RADIO_BUTTON) {
-					flags = SWT.RADIO;
-				} else if (style == IAction.AS_DROP_DOWN_MENU) {
-					flags = SWT.CASCADE;
-				}
-			}
-
-			MenuItem mi = null;
-			if (index >= 0) {
-				mi = new MenuItem(parent, flags, index);
-			} else {
-				mi = new MenuItem(parent, flags);
-			}
-			widget = mi;
-
-			mi.setData(this);
-			mi.addListener(SWT.Dispose, getMenuItemListener());
-			mi.addListener(SWT.Selection, getMenuItemListener());
-			if (action.getHelpListener() != null) {
-				mi.addHelpListener(action.getHelpListener());
-			}
-
-			if (flags == SWT.CASCADE) {
-				// just create a proxy for now, if the user shows it then 
-				// fill it in
-				Menu subMenu = new Menu(parent);
-				subMenu.addListener(SWT.Show, getMenuCreatorListener());
-				subMenu.addListener(SWT.Hide, getMenuCreatorListener());
-				mi.setMenu(subMenu);
-			}
-
-			update(null);
-
-			// Attach some extra listeners.
-			action.addPropertyChangeListener(propertyListener);
-			if (action != null) {
-				String commandId = action.getActionDefinitionId();
-				ExternalActionManager.ICallback callback = ExternalActionManager
-						.getInstance().getCallback();
-
-				if ((callback != null) && (commandId != null)) {
-					callback.addPropertyChangeListener(commandId,
-							actionTextListener);
-				}
-			}
-		}
-	}
-
-	/**
-	 * The <code>ActionContributionItem</code> implementation of this ,
-	 * <code>IContributionItem</code> method creates an SWT
-	 * <code>ToolItem</code> for the action using the action's style. If the
-	 * action's checked property has been set, a button is created and primed to
-	 * the value of the checked property. If the action's menu creator property
-	 * has been set, a drop-down tool item is created.
-	 */
-	public void fill(ToolBar parent, int index) {
-		if (widget == null && parent != null) {
-			int flags = SWT.PUSH;
-			if (action != null) {
-				int style = action.getStyle();
-				if (style == IAction.AS_CHECK_BOX) {
-					flags = SWT.CHECK;
-				} else if (style == IAction.AS_RADIO_BUTTON) {
-					flags = SWT.RADIO;
-				} else if (style == IAction.AS_DROP_DOWN_MENU) {
-					flags = SWT.DROP_DOWN;
-				}
-			}
-
-			ToolItem ti = null;
-			if (index >= 0) {
-				ti = new ToolItem(parent, flags, index);
-			} else {
-				ti = new ToolItem(parent, flags);
-			}
-			ti.setData(this);
-			ti.addListener(SWT.Selection, getToolItemListener());
-			ti.addListener(SWT.Dispose, getToolItemListener());
-
-			widget = ti;
-
-			update(null);
-
-			// Attach some extra listeners.
-			action.addPropertyChangeListener(propertyListener);
-			if (action != null) {
-				String commandId = action.getActionDefinitionId();
-				ExternalActionManager.ICallback callback = ExternalActionManager
-						.getInstance().getCallback();
-
-				if ((callback != null) && (commandId != null)) {
-					callback.addPropertyChangeListener(commandId,
-							actionTextListener);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns the action associated with this contribution item.
-	 * 
-	 * @return the action
-	 */
-	public IAction getAction() {
-		return action;
-	}
-
-	/**
-	 * Returns the listener for SWT button widget events.
-	 * 
-	 * @return a listener for button events
-	 */
-	private Listener getButtonListener() {
-		if (buttonListener == null) {
-			buttonListener = new Listener() {
-				public void handleEvent(Event event) {
-					switch (event.type) {
-					case SWT.Dispose:
-						handleWidgetDispose(event);
-						break;
-					case SWT.Selection:
-						Widget ew = event.widget;
-						if (ew != null) {
-							handleWidgetSelection(event, ((Button) ew)
-									.getSelection());
-						}
-						break;
-					}
-				}
-			};
-		}
-		return buttonListener;
-	}
-
-	/**
-	 * Returns the listener for SWT menu item widget events.
-	 * 
-	 * @return a listener for menu item events
-	 */
-	private Listener getMenuItemListener() {
-		if (menuItemListener == null) {
-			menuItemListener = new Listener() {
-				public void handleEvent(Event event) {
-					switch (event.type) {
-					case SWT.Dispose:
-						handleWidgetDispose(event);
-						break;
-					case SWT.Selection:
-						Widget ew = event.widget;
-						if (ew != null) {
-							handleWidgetSelection(event, ((MenuItem) ew)
-									.getSelection());
-						}
-						break;
-					}
-				}
-			};
-		}
-		return menuItemListener;
-	}
-
-	/**
-	 * Returns the presentation mode, which is the bitwise-or of the
-	 * <code>MODE_*</code> constants. The default mode setting is 0, meaning
-	 * that for menu items, both text and image are shown (if present), but for
-	 * tool items, the text is shown only if there is no image.
-	 * 
-	 * @return the presentation mode settings
-	 * 
-	 * @since 3.0
-	 */
-	public int getMode() {
-		return mode;
-	}
-
-	/**
-	 * Returns the listener for SWT tool item widget events.
-	 * 
-	 * @return a listener for tool item events
-	 */
-	private Listener getToolItemListener() {
-		if (toolItemListener == null) {
-			toolItemListener = new Listener() {
-				public void handleEvent(Event event) {
-					switch (event.type) {
-					case SWT.Dispose:
-						handleWidgetDispose(event);
-						break;
-					case SWT.Selection:
-						Widget ew = event.widget;
-						if (ew != null) {
-							handleWidgetSelection(event, ((ToolItem) ew)
-									.getSelection());
-						}
-						break;
-					}
-				}
-			};
-		}
-		return toolItemListener;
-	}
-
-	/**
-	 * Handles a widget dispose event for the widget corresponding to this item.
-	 */
-	private void handleWidgetDispose(Event e) {
-		// Check if our widget is the one being disposed.
-		if (e.widget == widget) {
-			// Dispose of the menu creator.
-			if (action.getStyle() == IAction.AS_DROP_DOWN_MENU
-					&& menuCreatorCalled) {
-				IMenuCreator mc = action.getMenuCreator();
-				if (mc != null) {
-					mc.dispose();
-				}
-			}
-
-			// Unhook all of the listeners.
-			action.removePropertyChangeListener(propertyListener);
-			if (action != null) {
-				String commandId = action.getActionDefinitionId();
-				ExternalActionManager.ICallback callback = ExternalActionManager
-						.getInstance().getCallback();
-
-				if ((callback != null) && (commandId != null)) {
-					callback.removePropertyChangeListener(commandId,
-							actionTextListener);
-				}
-			}
-
-			// Clear the widget field.
-			widget = null;
-
-			disposeOldImages();
-		}
-	}
-
-	/**
-	 * Handles a widget selection event.
-	 */
-	private void handleWidgetSelection(Event e, boolean selection) {
-
-		Widget item = e.widget;
-		if (item != null) {
-			int style = item.getStyle();
-
-			if ((style & (SWT.TOGGLE | SWT.CHECK)) != 0) {
-				if (action.getStyle() == IAction.AS_CHECK_BOX) {
-					action.setChecked(selection);
-				}
-			} else if ((style & SWT.RADIO) != 0) {
-				if (action.getStyle() == IAction.AS_RADIO_BUTTON) {
-					action.setChecked(selection);
-				}
-			} else if ((style & SWT.DROP_DOWN) != 0) {
-				if (e.detail == 4) { // on drop-down button
-					if (action.getStyle() == IAction.AS_DROP_DOWN_MENU) {
-						IMenuCreator mc = action.getMenuCreator();
-						menuCreatorCalled = true;
-						ToolItem ti = (ToolItem) item;
-						// we create the menu as a sub-menu of "dummy" so that
-						// we can use
-						// it in a cascading menu too.
-						// If created on a SWT control we would get an SWT
-						// error...
-						// Menu dummy= new Menu(ti.getParent());
-						// Menu m= mc.getMenu(dummy);
-						// dummy.dispose();
-						if (mc != null) {
-							Menu m = mc.getMenu(ti.getParent());
-							if (m != null) {
-								// position the menu below the drop down item
-								Point point = ti.getParent().toDisplay(
-										new Point(e.x, e.y));
-								m.setLocation(point.x, point.y); // waiting
-																	// for SWT
-								// 0.42
-								m.setVisible(true);
-								return; // we don't fire the action
-							}
-						}
-					}
-				}
-			}
-
-			ExternalActionManager.IExecuteCallback callback = null;
-			String actionDefinitionId = action.getActionDefinitionId();
-			if (actionDefinitionId != null) {
-				Object obj = ExternalActionManager.getInstance()
-						.getCallback();
-				if (obj instanceof ExternalActionManager.IExecuteCallback) {
-					callback = (ExternalActionManager.IExecuteCallback) obj;
-				}
-			}
-
-			// Ensure action is enabled first.
-			// See 1GAN3M6: ITPUI:WINNT - Any IAction in the workbench can be
-			// executed while disabled.
-			if (action.isEnabled()) {
-				boolean trace = Policy.TRACE_ACTIONS;
-
-				long ms = 0L;
-				if (trace) {
-					ms = System.currentTimeMillis();
-					System.out.println("Running action: " + action.getText()); //$NON-NLS-1$
-				}				
-				
-				IPropertyChangeListener resultListener = null;
-				if (callback != null) {
-					resultListener = new IPropertyChangeListener() {
-						public void propertyChange(PropertyChangeEvent event) {
-							// Check on result
-							if (event.getProperty().equals(IAction.RESULT)) {
-								if (event.getNewValue() instanceof Boolean) {
-									result = (Boolean) event.getNewValue();
-								}
-							}
-						}
-					};
-					action.addPropertyChangeListener(resultListener);
-					callback.preExecute(action, e);
-				}
-
-				action.runWithEvent(e);
-
-				if (callback != null) {
-					if (result == null || result.equals(Boolean.TRUE)) {
-						callback.postExecuteSuccess(action, Boolean.TRUE);
-					} else {
-						callback.postExecuteFailure(action,
-								new ExecutionException(action.getText()
-										+ " returned failure.")); //$NON-NLS-1$
-					}
-				}
-
-				if (resultListener!=null) {
-					result = null;
-					action.removePropertyChangeListener(resultListener);
-				}
-				if (trace) {
-					System.out.println((System.currentTimeMillis() - ms)
-							+ " ms to run action: " + action.getText()); //$NON-NLS-1$
-				}
-			} else {
-				if (callback != null) {
-					callback.notEnabled(action, new NotEnabledException(action
-							.getText()
-							+ " is not enabled.")); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Object.
-	 */
-	public int hashCode() {
-		return action.hashCode();
-	}
-
-	/**
-	 * Returns whether the given action has any images.
-	 * 
-	 * @param actionToCheck
-	 *            the action
-	 * @return <code>true</code> if the action has any images,
-	 *         <code>false</code> if not
-	 */
-	private boolean hasImages(IAction actionToCheck) {
-		return actionToCheck.getImageDescriptor() != null
-				|| actionToCheck.getHoverImageDescriptor() != null
-				|| actionToCheck.getDisabledImageDescriptor() != null;
-	}
-
-	/**
-	 * Returns whether the command corresponding to this action is active.
-	 */
-	private boolean isCommandActive() {
-		IAction actionToCheck = getAction();
-
-		if (actionToCheck != null) {
-			String commandId = actionToCheck.getActionDefinitionId();
-			ExternalActionManager.ICallback callback = ExternalActionManager
-					.getInstance().getCallback();
-
-			if (callback != null) {
-				return callback.isActive(commandId);
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * The action item implementation of this <code>IContributionItem</code>
-	 * method returns <code>true</code> for menu items and <code>false</code>
-	 * for everything else.
-	 */
-	public boolean isDynamic() {
-		if (widget instanceof MenuItem) {
-			// Optimization. Only recreate the item is the check or radio style
-			// has changed.
-			boolean itemIsCheck = (widget.getStyle() & SWT.CHECK) != 0;
-			boolean actionIsCheck = getAction() != null
-					&& getAction().getStyle() == IAction.AS_CHECK_BOX;
-			boolean itemIsRadio = (widget.getStyle() & SWT.RADIO) != 0;
-			boolean actionIsRadio = getAction() != null
-					&& getAction().getStyle() == IAction.AS_RADIO_BUTTON;
-			return (itemIsCheck != actionIsCheck)
-					|| (itemIsRadio != actionIsRadio);
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionItem.
-	 */
-	public boolean isEnabled() {
-		return action != null && action.isEnabled();
-	}
-
-	/**
-	 * Returns <code>true</code> if this item is allowed to enable,
-	 * <code>false</code> otherwise.
-	 * 
-	 * @return if this item is allowed to be enabled
-	 * @since 2.0
-	 */
-	protected boolean isEnabledAllowed() {
-		if (getParent() == null) {
-			return true;
-		}
-		Boolean value = getParent().getOverrides().getEnabled(this);
-		return (value == null) ? true : value.booleanValue();
-	}
-
-	/**
-	 * The <code>ActionContributionItem</code> implementation of this
-	 * <code>ContributionItem</code> method extends the super implementation
-	 * by also checking whether the command corresponding to this action is
-	 * active.
-	 */
-	public boolean isVisible() {
-		return super.isVisible() && isCommandActive();
-	}
-
-	/**
-	 * Sets the presentation mode, which is the bitwise-or of the
-	 * <code>MODE_*</code> constants.
-	 * 
-	 * @param mode
-	 *            the presentation mode settings
-	 * 
-	 * @since 3.0
-	 */
-	public void setMode(int mode) {
-		this.mode = mode;
-		update();
-	}
-
-	/**
-	 * The action item implementation of this <code>IContributionItem</code>
-	 * method calls <code>update(null)</code>.
-	 */
-	public final void update() {
-		update(null);
-	}
-
-	/**
-	 * Synchronizes the UI with the given property.
-	 * 
-	 * @param propertyName
-	 *            the name of the property, or <code>null</code> meaning all
-	 *            applicable properties
-	 */
-	public void update(String propertyName) {
-		if (widget != null) {
-			// determine what to do
-			boolean textChanged = propertyName == null
-					|| propertyName.equals(IAction.TEXT);
-			boolean imageChanged = propertyName == null
-					|| propertyName.equals(IAction.IMAGE);
-			boolean tooltipTextChanged = propertyName == null
-					|| propertyName.equals(IAction.TOOL_TIP_TEXT);
-			boolean enableStateChanged = propertyName == null
-					|| propertyName.equals(IAction.ENABLED)
-					|| propertyName
-							.equals(IContributionManagerOverrides.P_ENABLED);
-			boolean checkChanged = (action.getStyle() == IAction.AS_CHECK_BOX || action
-					.getStyle() == IAction.AS_RADIO_BUTTON)
-					&& (propertyName == null || propertyName
-							.equals(IAction.CHECKED));
-
-			if (widget instanceof ToolItem) {
-				ToolItem ti = (ToolItem) widget;
-				String text = action.getText();
-				// the set text is shown only if there is no image or if forced
-				// by MODE_FORCE_TEXT
-				boolean showText = text != null
-						&& ((getMode() & MODE_FORCE_TEXT) != 0 || !hasImages(action));
-
-				// only do the trimming if the text will be used
-				if (showText && text != null) {
-					text = Action.removeAcceleratorText(text);
-					text = Action.removeMnemonics(text);
-				}
-
-				if (textChanged) {
-					String textToSet = showText ? text : ""; //$NON-NLS-1$
-					boolean rightStyle = (ti.getParent().getStyle() & SWT.RIGHT) != 0;
-					if (rightStyle || !ti.getText().equals(textToSet)) {
-						// In addition to being required to update the text if
-						// it
-						// gets nulled out in the action, this is also a
-						// workaround
-						// for bug 50151: Using SWT.RIGHT on a ToolBar leaves
-						// blank space
-						ti.setText(textToSet);
-					}
-				}
-
-				if (imageChanged) {
-					// only substitute a missing image if it has no text
-					updateImages(!showText);
-				}
-
-				if (tooltipTextChanged || textChanged) {
-					String toolTip = action.getToolTipText();
-					if ((toolTip == null) || (toolTip.length() == 0)) {
-						toolTip = text;
-					}
-
-					ExternalActionManager.ICallback callback = ExternalActionManager
-							.getInstance().getCallback();
-					String commandId = action.getActionDefinitionId();
-					if ((callback != null) && (commandId != null)
-							&& (toolTip != null)) {
-						String acceleratorText = callback
-								.getAcceleratorText(commandId);
-						if (acceleratorText != null
-								&& acceleratorText.length() != 0) {
-							toolTip = JFaceResources.format(
-									"Toolbar_Tooltip_Accelerator", //$NON-NLS-1$
-									new Object[] { toolTip, acceleratorText });
-						}
-					}
-
-					// if the text is showing, then only set the tooltip if
-					// different
-					if (!showText || toolTip != null && !toolTip.equals(text)) {
-						ti.setToolTipText(toolTip);
-					} else {
-						ti.setToolTipText(null);
-					}
-				}
-
-				if (enableStateChanged) {
-					boolean shouldBeEnabled = action.isEnabled()
-							&& isEnabledAllowed();
-
-					if (ti.getEnabled() != shouldBeEnabled) {
-						ti.setEnabled(shouldBeEnabled);
-					}
-				}
-
-				if (checkChanged) {
-					boolean bv = action.isChecked();
-
-					if (ti.getSelection() != bv) {
-						ti.setSelection(bv);
-					}
-				}
-				return;
-			}
-
-			if (widget instanceof MenuItem) {
-				MenuItem mi = (MenuItem) widget;
-
-				if (textChanged) {
-					int accelerator = 0;
-					String acceleratorText = null;
-					IAction updatedAction = getAction();
-					String text = null;
-					accelerator = updatedAction.getAccelerator();
-					ExternalActionManager.ICallback callback = ExternalActionManager
-							.getInstance().getCallback();
-
-					// Block accelerators that are already in use.
-					if ((accelerator != 0) && (callback != null)
-							&& (callback.isAcceleratorInUse(accelerator))) {
-						accelerator = 0;
-					}
-
-					/*
-					 * Process accelerators on GTK in a special way to avoid Bug
-					 * 42009. We will override the native input method by
-					 * allowing these reserved accelerators to be placed on the
-					 * menu. We will only do this for "Ctrl+Shift+[0-9A-FU]".
-					 */
-					final String commandId = updatedAction
-							.getActionDefinitionId();
-					if ((Util.isGtk()) && (callback instanceof IBindingManagerCallback)
-							&& (commandId != null)) {
-						final IBindingManagerCallback bindingManagerCallback = (IBindingManagerCallback) callback;
-						final IKeyLookup lookup = KeyLookupFactory.getDefault();
-						final TriggerSequence[] triggerSequences = bindingManagerCallback
-								.getActiveBindingsFor(commandId);
-						for (int i = 0; i < triggerSequences.length; i++) {
-							final TriggerSequence triggerSequence = triggerSequences[i];
-							final Trigger[] triggers = triggerSequence
-									.getTriggers();
-							if (triggers.length == 1) {
-								final Trigger trigger = triggers[0];
-								if (trigger instanceof KeyStroke) {
-									final KeyStroke currentKeyStroke = (KeyStroke) trigger;
-									final int currentNaturalKey = currentKeyStroke
-											.getNaturalKey();
-									if ((currentKeyStroke.getModifierKeys() == (lookup
-											.getCtrl() | lookup.getShift()))
-											&& ((currentNaturalKey >= '0' && currentNaturalKey <= '9')
-													|| (currentNaturalKey >= 'A' && currentNaturalKey <= 'F') || (currentNaturalKey == 'U'))) {
-										accelerator = currentKeyStroke
-												.getModifierKeys()
-												| currentNaturalKey;
-										acceleratorText = triggerSequence
-												.format();
-										break;
-									}
-								}
-							}
-						}
-					}
-
-					if (accelerator == 0) {
-						if ((callback != null) && (commandId != null)) {
-							acceleratorText = callback
-									.getAcceleratorText(commandId);
-						}
-					}
-
-					IContributionManagerOverrides overrides = null;
-
-					if (getParent() != null) {
-						overrides = getParent().getOverrides();
-					}
-
-					if (overrides != null) {
-						text = getParent().getOverrides().getText(this);
-					}
-
-					mi.setAccelerator(accelerator);
-
-					if (text == null) {
-						text = updatedAction.getText();
-					}
-
-					if (text != null && acceleratorText == null) {
-						// use extracted accelerator text in case accelerator
-						// cannot be fully represented in one int (e.g.
-						// multi-stroke keys)
-						acceleratorText = LegacyActionTools
-								.extractAcceleratorText(text);
-						if (acceleratorText == null && accelerator != 0) {
-							acceleratorText = Action
-									.convertAccelerator(accelerator);
-						}
-					}
-
-					if (text == null) {
-						text = ""; //$NON-NLS-1$
-					} else {
-						text = Action.removeAcceleratorText(text);
-					}
-
-					if (acceleratorText == null) {
-						mi.setText(text);
-					} else {
-						mi.setText(text + '\t' + acceleratorText);
-					}
-				}
-
-				if (imageChanged) {
-					updateImages(false);
-				}
-
-				if (enableStateChanged) {
-					boolean shouldBeEnabled = action.isEnabled()
-							&& isEnabledAllowed();
-
-					if (mi.getEnabled() != shouldBeEnabled) {
-						mi.setEnabled(shouldBeEnabled);
-					}
-				}
-
-				if (checkChanged) {
-					boolean bv = action.isChecked();
-
-					if (mi.getSelection() != bv) {
-						mi.setSelection(bv);
-					}
-				}
-
-				return;
-			}
-
-			if (widget instanceof Button) {
-				Button button = (Button) widget;
-
-				if (imageChanged) {
-					updateImages(false);
-				}
-
-				if (textChanged) {
-					String text = action.getText();
-					boolean showText = text != null && ((getMode() & MODE_FORCE_TEXT) != 0 || !hasImages(action));
-					// only do the trimming if the text will be used
-					if (showText) {
-						text = Action.removeAcceleratorText(text);
-					}
-					String textToSet = showText ? text : ""; //$NON-NLS-1$
-					button.setText(textToSet);
-				}
-
-				if (tooltipTextChanged) {
-					button.setToolTipText(action.getToolTipText());
-				}
-
-				if (enableStateChanged) {
-					boolean shouldBeEnabled = action.isEnabled()
-							&& isEnabledAllowed();
-
-					if (button.getEnabled() != shouldBeEnabled) {
-						button.setEnabled(shouldBeEnabled);
-					}
-				}
-
-				if (checkChanged) {
-					boolean bv = action.isChecked();
-
-					if (button.getSelection() != bv) {
-						button.setSelection(bv);
-					}
-				}
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Updates the images for this action.
-	 * 
-	 * @param forceImage
-	 *            <code>true</code> if some form of image is compulsory, and
-	 *            <code>false</code> if it is acceptable for this item to have
-	 *            no image
-	 * @return <code>true</code> if there are images for this action,
-	 *         <code>false</code> if not
-	 */
-	private boolean updateImages(boolean forceImage) {
-
-		ResourceManager parentResourceManager = JFaceResources.getResources();
-
-		if (widget instanceof ToolItem) {
-			if (USE_COLOR_ICONS) {
-				ImageDescriptor image = action.getHoverImageDescriptor();
-				if (image == null) {
-					image = action.getImageDescriptor();
-				}
-				ImageDescriptor disabledImage = action
-						.getDisabledImageDescriptor();
-
-				// Make sure there is a valid image.
-				if (image == null && forceImage) {
-					image = ImageDescriptor.getMissingImageDescriptor();
-				}
-
-				LocalResourceManager localManager = new LocalResourceManager(
-						parentResourceManager);
-
-				// performance: more efficient in SWT to set disabled and hot
-				// image before regular image
-				((ToolItem) widget)
-						.setDisabledImage(disabledImage == null ? null
-								: localManager
-										.createImageWithDefault(disabledImage));
-				((ToolItem) widget).setImage(image == null ? null
-						: localManager.createImageWithDefault(image));
-
-				disposeOldImages();
-				imageManager = localManager;
-
-				return image != null;
-			}
-			ImageDescriptor image = action.getImageDescriptor();
-			ImageDescriptor hoverImage = action.getHoverImageDescriptor();
-			ImageDescriptor disabledImage = action.getDisabledImageDescriptor();
-
-			// If there is no regular image, but there is a hover image,
-			// convert the hover image to gray and use it as the regular image.
-			if (image == null && hoverImage != null) {
-				image = ImageDescriptor.createWithFlags(action
-						.getHoverImageDescriptor(), SWT.IMAGE_GRAY);
-			} else {
-				// If there is no hover image, use the regular image as the
-				// hover image,
-				// and convert the regular image to gray
-				if (hoverImage == null && image != null) {
-					hoverImage = image;
-					image = ImageDescriptor.createWithFlags(action
-							.getImageDescriptor(), SWT.IMAGE_GRAY);
-				}
-			}
-
-			// Make sure there is a valid image.
-			if (hoverImage == null && image == null && forceImage) {
-				image = ImageDescriptor.getMissingImageDescriptor();
-			}
-
-			// Create a local resource manager to remember the images we've
-			// allocated for this tool item
-			LocalResourceManager localManager = new LocalResourceManager(
-					parentResourceManager);
-
-			// performance: more efficient in SWT to set disabled and hot image
-			// before regular image
-			((ToolItem) widget).setDisabledImage(disabledImage == null ? null
-					: localManager.createImageWithDefault(disabledImage));
-			((ToolItem) widget).setHotImage(hoverImage == null ? null
-					: localManager.createImageWithDefault(hoverImage));
-			((ToolItem) widget).setImage(image == null ? null : localManager
-					.createImageWithDefault(image));
-
-			// Now that we're no longer referencing the old images, clear them
-			// out.
-			disposeOldImages();
-			imageManager = localManager;
-
-			return image != null;
-		} else if (widget instanceof Item || widget instanceof Button) {
-
-			// Use hover image if there is one, otherwise use regular image.
-			ImageDescriptor image = action.getHoverImageDescriptor();
-			if (image == null) {
-				image = action.getImageDescriptor();
-			}
-			// Make sure there is a valid image.
-			if (image == null && forceImage) {
-				image = ImageDescriptor.getMissingImageDescriptor();
-			}
-
-			// Create a local resource manager to remember the images we've
-			// allocated for this widget
-			LocalResourceManager localManager = new LocalResourceManager(
-					parentResourceManager);
-
-			if (widget instanceof Item) {
-				((Item) widget).setImage(image == null ? null : localManager
-						.createImageWithDefault(image));
-			} else if (widget instanceof Button) {
-				((Button) widget).setImage(image == null ? null : localManager
-						.createImageWithDefault(image));
-			}
-
-			// Now that we're no longer referencing the old images, clear them
-			// out.
-			disposeOldImages();
-			imageManager = localManager;
-
-			return image != null;
-		}
-		return false;
-	}
-
-	/**
-	 * Dispose any images allocated for this contribution item
-	 */
-	private void disposeOldImages() {
-		if (imageManager != null) {
-			imageManager.dispose();
-			imageManager = null;
-		}
-	}
-
-	/**
-	 * Shorten the given text <code>t</code> so that its length doesn't exceed
-	 * the width of the given ToolItem.The default implementation replaces
-	 * characters in the center of the original string with an ellipsis ("...").
-	 * Override if you need a different strategy.
-	 * 
-	 * @param textValue
-	 *            the text to shorten
-	 * @param item
-	 *            the tool item the text belongs to
-	 * @return the shortened string
-	 * 
-	 */
-	protected String shortenText(String textValue, ToolItem item) {
-		if (textValue == null) {
-			return null;
-		}
-
-		GC gc = new GC(item.getParent());
-
-		int maxWidth = item.getImage().getBounds().width * 4;
-
-		if (gc.textExtent(textValue).x < maxWidth) {
-			gc.dispose();
-			return textValue;
-		}
-
-		for (int i = textValue.length(); i > 0; i--) {
-			String test = textValue.substring(0, i);
-			test = test + ellipsis;
-			if (gc.textExtent(test).x < maxWidth) {
-				gc.dispose();
-				return test;
-			}
-
-		}
-		gc.dispose();
-		// If for some reason we fall through abort
-		return textValue;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.ContributionItem#dispose()
-	 */
-	public void dispose() {
-		if (widget != null) {
-			widget.dispose();
-			widget = null;
-		}
-		holdMenu = null;
-	}
-	
-	/**
-	 * Handle show and hide on the proxy menu for IAction.AS_DROP_DOWN_MENU
-	 * actions.
-	 * 
-	 * @return the appropriate listener
-	 * @since 3.4
-	 */
-	private Listener getMenuCreatorListener() {
-		if (menuCreatorListener == null) {
-			menuCreatorListener = new Listener() {
-				public void handleEvent(Event event) {
-					switch (event.type) {
-					case SWT.Show:
-						handleShowProxy((Menu) event.widget);
-						break;
-					case SWT.Hide:
-						handleHideProxy((Menu) event.widget);
-						break;
-					}
-				}
-			};
-		}
-		return menuCreatorListener;
-	}
-	
-	/**
-	 * This is the easiest way to hold the menu until we can swap it in to the
-	 * proxy.
-	 */
-	private Menu holdMenu = null;
-
-	private boolean menuCreatorCalled = false;
-	
-	/**
-	 * The proxy menu is being shown, we better get the real menu.
-	 * 
-	 * @param proxy
-	 *            the proxy menu
-	 * @since 3.4
-	 */
-	private void handleShowProxy(Menu proxy) {
-		proxy.removeListener(SWT.Show, getMenuCreatorListener());
-		IMenuCreator mc = action.getMenuCreator();
-		menuCreatorCalled  = true;
-		if (mc == null) {
-			return;
-		}
-		holdMenu = mc.getMenu(proxy.getParentMenu());
-		if (holdMenu == null) {
-			return;
-		}
-		copyMenu(holdMenu, proxy);
-	}
-
-	/**
-	 * Create MenuItems in the proxy menu that can execute the real menu items
-	 * if selected. Create proxy menus for any real item submenus.
-	 * 
-	 * @param realMenu
-	 *            the real menu to copy from
-	 * @param proxy
-	 *            the proxy menu to populate
-	 * @since 3.4
-	 */
-	private void copyMenu(Menu realMenu, Menu proxy) {
-		if (realMenu.isDisposed() || proxy.isDisposed()) {
-			return;
-		}
-		
-		// we notify the real menu so it can populate itself if it was
-		// listening for SWT.Show
-		realMenu.notifyListeners(SWT.Show, null);
-
-		final Listener passThrough = new Listener() {
-			public void handleEvent(Event event) {
-				if (!event.widget.isDisposed()) {
-					Widget realItem = (Widget) event.widget.getData();
-					if (!realItem.isDisposed()) {
-						int style = event.widget.getStyle();
-						if (event.type == SWT.Selection
-								&& ((style & (SWT.TOGGLE | SWT.CHECK | SWT.RADIO)) != 0)
-								&& realItem instanceof MenuItem) {
-							((MenuItem) realItem)
-									.setSelection(((MenuItem) event.widget)
-											.getSelection());
-						}
-						event.widget = realItem;
-						realItem.notifyListeners(event.type, event);
-					}
-				}
-			}
-		};
-
-		MenuItem[] items = realMenu.getItems();
-		for (int i = 0; i < items.length; i++) {
-			final MenuItem realItem = items[i];
-			final MenuItem proxyItem = new MenuItem(proxy, realItem.getStyle());
-			proxyItem.setData(realItem);
-			proxyItem.setAccelerator(realItem.getAccelerator());
-			proxyItem.setEnabled(realItem.getEnabled());
-			proxyItem.setImage(realItem.getImage());
-			proxyItem.setSelection(realItem.getSelection());
-			proxyItem.setText(realItem.getText());
-
-			// pass through any events
-			proxyItem.addListener(SWT.Selection, passThrough);
-			proxyItem.addListener(SWT.Arm, passThrough);
-			proxyItem.addListener(SWT.Help, passThrough);
-
-			final Menu itemMenu = realItem.getMenu();
-			if (itemMenu != null) {
-				// create a proxy for any sub menu items
-				final Menu subMenu = new Menu(proxy);
-				subMenu.setData(itemMenu);
-				proxyItem.setMenu(subMenu);
-				subMenu.addListener(SWT.Show, new Listener() {
-					public void handleEvent(Event event) {
-						event.widget.removeListener(SWT.Show, this);
-						if (event.type == SWT.Show) {
-							copyMenu(itemMenu, subMenu);
-						}
-					}
-				});
-				subMenu.addListener(SWT.Help, passThrough);
-				subMenu.addListener(SWT.Hide, passThrough);
-			}
-		}
-	}
-	
-	/**
-	 * The proxy menu is being hidden, so we need to make it go away.
-	 * 
-	 * @param proxy
-	 *            the proxy menu
-	 * @since 3.4
-	 */
-	private void handleHideProxy(final Menu proxy) {
-		proxy.removeListener(SWT.Hide, getMenuCreatorListener());
-		proxy.getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				if (!proxy.isDisposed()) {
-					MenuItem parentItem = proxy.getParentItem();
-					proxy.dispose();
-					parentItem.setMenu(holdMenu);
-				}
-				if (holdMenu != null && !holdMenu.isDisposed()) {
-					holdMenu.notifyListeners(SWT.Hide, null);
-				}
-				holdMenu = null;
-			}
-		});
-	}
-	
-	/**
-	 * Return the widget associated with this contribution item. It should not
-	 * be cached, as it can be disposed and re-created by its containing
-	 * ContributionManager, which controls all of the widgets lifecycle methods.
-	 * <p>
-	 * This can be used to set layout data on the widget if appropriate. The
-	 * actual type of the widget can be any valid control for this
-	 * ContributionItem's current ContributionManager.
-	 * </p>
-	 * 
-	 * @return the widget, or <code>null</code> depending on the lifecycle.
-	 * @since 3.4
-	 */
-	public Widget getWidget() {
-		return widget;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionItem.java
deleted file mode 100644
index 7a46946..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionItem.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * An abstract base implementation for contribution items.
- */
-public abstract class ContributionItem implements IContributionItem {
-
-    /**
-     * The identifier for this contribution item, of <code>null</code> if none.
-     */
-    private String id = null;
-
-    /**
-     * Indicates this item is visible in its manager; <code>true</code> 
-     * by default.
-     */
-    private boolean visible = true;
-
-    /**
-     * The parent contribution manager for this item
-     */
-    private IContributionManager parent;
-
-    /**
-     * Creates a contribution item with a <code>null</code> id.
-     * Calls <code>this(String)</code> with <code>null</code>.
-     */
-    protected ContributionItem() {
-        this(null);
-    }
-
-    /**
-     * Creates a contribution item with the given (optional) id.
-     * The given id is used to find items in a contribution manager,
-     * and for positioning items relative to other items.
-     *
-     * @param id the contribution item identifier, or <code>null</code>
-     */
-    protected ContributionItem(String id) {
-        this.id = id;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     */
-    public void dispose() {
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     */
-    public void fill(Composite parent) {
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     */
-    public void fill(Menu menu, int index) {
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     */
-    public void fill(ToolBar parent, int index) {
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     * 
-     * @since 3.0
-     */
-    public void fill(CoolBar parent, int index) {
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     * 
-     * @since 3.0
-     */
-    public void saveWidgetState() {
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Returns the parent contribution manager, or <code>null</code> if this 
-     * contribution item is not currently added to a contribution manager.
-     * 
-     * @return the parent contribution manager, or <code>null</code>
-     * @since 2.0
-     */
-    public IContributionManager getParent() {
-        return parent;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method returns <code>false</code>. Subclasses may override.
-     */
-    public boolean isDirty() {
-        // @issue should this be false instead of calling isDynamic()?
-        return isDynamic();
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method returns <code>true</code>. Subclasses may override.
-     */
-    public boolean isEnabled() {
-        return true;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method returns <code>false</code>. Subclasses may override.
-     */
-    public boolean isDynamic() {
-        return false;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method returns <code>false</code>. Subclasses may override.
-     */
-    public boolean isGroupMarker() {
-        return false;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method returns <code>false</code>. Subclasses may override.
-     */
-    public boolean isSeparator() {
-        return false;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method returns the value recorded in an internal state variable,
-     * which is <code>true</code> by default. <code>setVisible</code>
-     * should be used to change this setting.
-     */
-    public boolean isVisible() {
-        return visible;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method stores the value in an internal state variable,
-     * which is <code>true</code> by default.
-     */
-    public void setVisible(boolean visible) {
-        this.visible = visible;
-    }
-
-    /**
-     * Returns a string representation of this contribution item 
-     * suitable only for debugging.
-     */
-    public String toString() {
-        return getClass().getName() + "(id=" + getId() + ")";//$NON-NLS-2$//$NON-NLS-1$
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     */
-    public void update() {
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void setParent(IContributionManager parent) {
-        this.parent = parent;
-    }
-
-    /**
-     * The <code>ContributionItem</code> implementation of this 
-     * method declared on <code>IContributionItem</code> does nothing.
-     * Subclasses should override to update their state.
-     */
-    public void update(String id) {
-    }
-    
-    /**
-	 * The ID for this contribution item. It should be set once either in the
-	 * constructor or using this method.
-	 * 
-	 * @param itemId
-	 * @since 3.4
-	 * @see #getId()
-	 */
-    public void setId(String itemId) {
-    	id = itemId;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionManager.java
deleted file mode 100644
index 003ef8b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ContributionManager.java
+++ /dev/null
@@ -1,577 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Policy;
-
-/**
- * Abstract base class for all contribution managers, and standard
- * implementation of <code>IContributionManager</code>. This class provides
- * functionality common across the specific managers defined by this framework.
- * <p>
- * This class maintains a list of contribution items and a dirty flag, both as
- * internal state. In addition to providing implementations of most
- * <code>IContributionManager</code> methods, this class automatically
- * coalesces adjacent separators, hides beginning and ending separators, and
- * deals with dynamically changing sets of contributions. When the set of
- * contributions does change dynamically, the changes are propagated to the
- * control via the <code>update</code> method, which subclasses must
- * implement.
- * </p>
- * <p>
- * Note: A <code>ContributionItem</code> cannot be shared between different
- * <code>ContributionManager</code>s.
- * </p>
- */
-public abstract class ContributionManager implements IContributionManager {
-
-	// Internal debug flag.
-	// protected static final boolean DEBUG = false;
-
-	/**
-	 * The list of contribution items.
-	 */
-	private List contributions = new ArrayList();
-
-	/**
-	 * Indicates whether the widgets are in sync with the contributions.
-	 */
-	private boolean isDirty = true;
-
-	/**
-	 * Number of dynamic contribution items.
-	 */
-	private int dynamicItems = 0;
-
-	/**
-	 * The overrides for items of this manager
-	 */
-	private IContributionManagerOverrides overrides;
-
-	/**
-	 * Creates a new contribution manager.
-	 */
-	protected ContributionManager() {
-		// Do nothing.
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void add(IAction action) {
-		Assert.isNotNull(action, "Action must not be null"); //$NON-NLS-1$
-		add(new ActionContributionItem(action));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void add(IContributionItem item) {
-		Assert.isNotNull(item, "Item must not be null"); //$NON-NLS-1$
-		if (allowItem(item)) {
-			contributions.add(item);
-			itemAdded(item);
-		}
-	}
-
-	/**
-	 * Adds a contribution item to the start or end of the group with the given
-	 * name.
-	 * 
-	 * @param groupName
-	 *            the name of the group
-	 * @param item
-	 *            the contribution item
-	 * @param append
-	 *            <code>true</code> to add to the end of the group, and
-	 *            <code>false</code> to add the beginning of the group
-	 * @exception IllegalArgumentException
-	 *                if there is no group with the given name
-	 */
-	private void addToGroup(String groupName, IContributionItem item,
-			boolean append) {
-		int i;
-		Iterator items = contributions.iterator();
-		for (i = 0; items.hasNext(); i++) {
-			IContributionItem o = (IContributionItem) items.next();
-			if (o.isGroupMarker()) {
-				String id = o.getId();
-				if (id != null && id.equalsIgnoreCase(groupName)) {
-					i++;
-					if (append) {
-						for (; items.hasNext(); i++) {
-							IContributionItem ci = (IContributionItem) items
-									.next();
-							if (ci.isGroupMarker()) {
-								break;
-							}
-						}
-					}
-					if (allowItem(item)) {
-						contributions.add(i, item);
-						itemAdded(item);
-					}
-					return;
-				}
-			}
-		}
-		throw new IllegalArgumentException("Group not found: " + groupName);//$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void appendToGroup(String groupName, IAction action) {
-		addToGroup(groupName, new ActionContributionItem(action), true);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void appendToGroup(String groupName, IContributionItem item) {
-		addToGroup(groupName, item, true);
-	}
-
-	/**
-	 * This method allows subclasses of <code>ContributionManager</code> to
-	 * prevent certain items in the contributions list.
-	 * <code>ContributionManager</code> will either block or allow an addition
-	 * based on the result of this method call. This can be used to prevent
-	 * duplication, for example.
-	 * 
-	 * @param itemToAdd
-	 *            The contribution item to be added; may be <code>null</code>.
-	 * @return <code>true</code> if the addition should be allowed;
-	 *         <code>false</code> otherwise. The default implementation allows
-	 *         all items.
-	 * @since 3.0
-	 */
-	protected boolean allowItem(IContributionItem itemToAdd) {
-		return true;
-	}
-
-	/**
-	 * Internal debug method for printing statistics about this manager to
-	 * <code>System.out</code>.
-	 */
-	protected void dumpStatistics() {
-		int size = 0;
-		if (contributions != null) {
-			size = contributions.size();
-		}
-
-		System.out.println(this.toString());
-		System.out.println("   Number of elements: " + size);//$NON-NLS-1$
-		int sum = 0;
-		for (int i = 0; i < size; i++) {
-			if (((IContributionItem) contributions.get(i)).isVisible()) {
-				sum++;
-			}
-		}
-		System.out.println("   Number of visible elements: " + sum);//$NON-NLS-1$
-		System.out.println("   Is dirty: " + isDirty()); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public IContributionItem find(String id) {
-		Iterator e = contributions.iterator();
-		while (e.hasNext()) {
-			IContributionItem item = (IContributionItem) e.next();
-			String itemId = item.getId();
-			if (itemId != null && itemId.equalsIgnoreCase(id)) {
-				return item;
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public IContributionItem[] getItems() {
-		IContributionItem[] items = new IContributionItem[contributions.size()];
-		contributions.toArray(items);
-		return items;
-	}
-	
-	/**
-	 * Return the number of contributions in this manager.
-	 * 
-	 * @return the number of contributions in this manager
-	 * @since 3.3
-	 */
-	public int getSize() {
-		return contributions.size();
-	}
-
-	/**
-	 * The <code>ContributionManager</code> implementation of this method
-	 * declared on <code>IContributionManager</code> returns the current
-	 * overrides. If there is no overrides it lazily creates one which overrides
-	 * no item state.
-	 * 
-	 * @since 2.0
-	 */
-	public IContributionManagerOverrides getOverrides() {
-		if (overrides == null) {
-			overrides = new IContributionManagerOverrides() {
-				public Boolean getEnabled(IContributionItem item) {
-					return null;
-				}
-
-				public Integer getAccelerator(IContributionItem item) {
-					return null;
-				}
-
-				public String getAcceleratorText(IContributionItem item) {
-					return null;
-				}
-
-				public String getText(IContributionItem item) {
-					return null;
-				}
-
-				public Boolean getVisible(IContributionItem item) {
-					return null;
-				}
-			};
-		}
-		return overrides;
-	}
-
-	/**
-	 * Returns whether this contribution manager contains dynamic items. A
-	 * dynamic contribution item contributes items conditionally, dependent on
-	 * some internal state.
-	 * 
-	 * @return <code>true</code> if this manager contains dynamic items, and
-	 *         <code>false</code> otherwise
-	 */
-	protected boolean hasDynamicItems() {
-		return (dynamicItems > 0);
-	}
-
-	/**
-	 * Returns the index of the item with the given id.
-	 * 
-	 * @param id
-	 *            The id of the item whose index is requested.
-	 * 
-	 * @return <code>int</code> the index or -1 if the item is not found
-	 */
-	public int indexOf(String id) {
-		for (int i = 0; i < contributions.size(); i++) {
-			IContributionItem item = (IContributionItem) contributions.get(i);
-			String itemId = item.getId();
-			if (itemId != null && itemId.equalsIgnoreCase(id)) {
-				return i;
-			}
-		}
-		return -1;
-	}
-
-	/**
-	 * Returns the index of the object in the internal structure. This is
-	 * different from <code>indexOf(String id)</code> since some contribution
-	 * items may not have an id.
-	 * 
-	 * @param item
-	 *            The contribution item
-	 * @return the index, or -1 if the item is not found
-	 * @since 3.0
-	 */
-	protected int indexOf(IContributionItem item) {
-		return contributions.indexOf(item);
-	}
-
-	/**
-	 * Insert the item at the given index.
-	 * 
-	 * @param index
-	 *            The index to be used for insertion
-	 * @param item
-	 *            The item to be inserted
-	 */
-	public void insert(int index, IContributionItem item) {
-		if (index > contributions.size()) {
-			throw new IndexOutOfBoundsException(
-					"inserting " + item.getId() + " at " + index); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (allowItem(item)) {
-			contributions.add(index, item);
-			itemAdded(item);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void insertAfter(String ID, IAction action) {
-		insertAfter(ID, new ActionContributionItem(action));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void insertAfter(String ID, IContributionItem item) {
-		IContributionItem ci = find(ID);
-		if (ci == null) {
-			throw new IllegalArgumentException("can't find ID" + ID);//$NON-NLS-1$
-		}
-		int ix = contributions.indexOf(ci);
-		if (ix >= 0) {
-			// System.out.println("insert after: " + ix);
-			if (allowItem(item)) {
-				contributions.add(ix + 1, item);
-				itemAdded(item);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void insertBefore(String ID, IAction action) {
-		insertBefore(ID, new ActionContributionItem(action));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void insertBefore(String ID, IContributionItem item) {
-		IContributionItem ci = find(ID);
-		if (ci == null) {
-			throw new IllegalArgumentException("can't find ID " + ID);//$NON-NLS-1$
-		}
-		int ix = contributions.indexOf(ci);
-		if (ix >= 0) {
-			// System.out.println("insert before: " + ix);
-			if (allowItem(item)) {
-				contributions.add(ix, item);
-				itemAdded(item);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public boolean isDirty() {
-		if (isDirty) {
-			return true;
-		}
-		if (hasDynamicItems()) {
-			for (Iterator iter = contributions.iterator(); iter.hasNext();) {
-				IContributionItem item = (IContributionItem) iter.next();
-				if (item.isDirty()) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public boolean isEmpty() {
-		return contributions.isEmpty();
-	}
-
-	/**
-	 * The given item was added to the list of contributions. Marks the manager
-	 * as dirty and updates the number of dynamic items, and the memento.
-	 * 
-	 * @param item
-	 *            the item to be added
-	 * 
-	 */
-	protected void itemAdded(IContributionItem item) {
-		item.setParent(this);
-		markDirty();
-		if (item.isDynamic()) {
-			dynamicItems++;
-		}
-	}
-
-	/**
-	 * The given item was removed from the list of contributions. Marks the
-	 * manager as dirty and updates the number of dynamic items.
-	 * 
-	 * @param item
-	 *            remove given parent from list of contributions
-	 */
-	protected void itemRemoved(IContributionItem item) {
-		item.setParent(null);
-		markDirty();
-		if (item.isDynamic()) {
-			dynamicItems--;
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void markDirty() {
-		setDirty(true);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void prependToGroup(String groupName, IAction action) {
-		addToGroup(groupName, new ActionContributionItem(action), false);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void prependToGroup(String groupName, IContributionItem item) {
-		addToGroup(groupName, item, false);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public IContributionItem remove(String ID) {
-		IContributionItem ci = find(ID);
-		if (ci == null) {
-			return null;
-		}
-		return remove(ci);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public IContributionItem remove(IContributionItem item) {
-		if (contributions.remove(item)) {
-			itemRemoved(item);
-			return item;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void removeAll() {
-		IContributionItem[] items = getItems();
-		contributions.clear();
-		for (int i = 0; i < items.length; i++) {
-			IContributionItem item = items[i];
-			itemRemoved(item);
-		}
-		dynamicItems = 0;
-		markDirty();
-	}
-
-	/**
-	 * Replaces the item of the given identifier with another contribution item.
-	 * This can be used, for example, to replace large contribution items with
-	 * placeholders to avoid memory leaks. If the identifier cannot be found in
-	 * the current list of items, then this does nothing. If multiple
-	 * occurrences are found, then the replacement items is put in the first
-	 * position and the other positions are removed.
-	 * 
-	 * @param identifier
-	 *            The identifier to look for in the list of contributions;
-	 *            should not be <code>null</code>.
-	 * @param replacementItem
-	 *            The contribution item to replace the old item; must not be
-	 *            <code>null</code>. Use
-	 *            {@link org.eclipse.jface.action.ContributionManager#remove(java.lang.String) remove}
-	 *            if that is what you want to do.
-	 * @return <code>true</code> if the given identifier can be; <code>
-	 * @since 3.0
-	 */
-	public boolean replaceItem(final String identifier,
-			final IContributionItem replacementItem) {
-		if (identifier == null) {
-			return false;
-		}
-
-		final int index = indexOf(identifier);
-		if (index < 0) {
-			return false; // couldn't find the item.
-		}
-
-		// Remove the old item.
-		final IContributionItem oldItem = (IContributionItem) contributions
-				.get(index);
-		itemRemoved(oldItem);
-
-		// Add the new item.
-		contributions.set(index, replacementItem);
-		itemAdded(replacementItem); // throws NPE if (replacementItem == null)
-
-		// Go through and remove duplicates.
-		for (int i = contributions.size() - 1; i > index; i--) {
-			IContributionItem item = (IContributionItem) contributions.get(i);
-			if ((item != null) && (identifier.equals(item.getId()))) {
-				if (Policy.TRACE_TOOLBAR) {
-					System.out
-							.println("Removing duplicate on replace: " + identifier); //$NON-NLS-1$
-				}
-				contributions.remove(i);
-				itemRemoved(item);
-			}
-		}
-
-		return true; // success
-	}
-
-	/**
-	 * Sets whether this manager is dirty. When dirty, the list of contributions
-	 * is not accurately reflected in the corresponding widgets.
-	 * 
-	 * @param dirty
-	 *            <code>true</code> if this manager is dirty, and
-	 *            <code>false</code> if it is up-to-date
-	 */
-	protected void setDirty(boolean dirty) {
-		isDirty = dirty;
-	}
-
-	/**
-	 * Sets the overrides for this contribution manager
-	 * 
-	 * @param newOverrides
-	 *            the overrides for the items of this manager
-	 * @since 2.0
-	 */
-	public void setOverrides(IContributionManagerOverrides newOverrides) {
-		overrides = newOverrides;
-	}
-
-	/**
-	 * An internal method for setting the order of the contribution items.
-	 * 
-	 * @param items
-	 *            the contribution items in the specified order
-	 * @since 3.0
-	 */
-	protected void internalSetItems(IContributionItem[] items) {
-		contributions.clear();
-		for (int i = 0; i < items.length; i++) {
-			if (allowItem(items[i])) {
-				contributions.add(items[i]);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ControlContribution.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ControlContribution.java
deleted file mode 100644
index 0af50ce..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ControlContribution.java
+++ /dev/null
@@ -1,102 +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.jface.action;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * An abstract contribution item implementation for adding an arbitrary 
- * SWT control to a tool bar. 
- * Note, however, that these items cannot be contributed to menu bars.
- * <p>
- * The <code>createControl</code> framework method must be implemented
- * by concrete subclasses.
- * </p>
- */
-public abstract class ControlContribution extends ContributionItem {
-    /**
-     * Creates a control contribution item with the given id.
-     *
-     * @param id the contribution item id
-     */
-    protected ControlContribution(String id) {
-        super(id);
-    }
-
-    /**
-     * Computes the width of the given control which is being added
-     * to a tool bar.  This is needed to determine the width of the tool bar item
-     * containing the given control.
-     * <p>
-     * The default implementation of this framework method returns 
-     * <code>control.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x</code>.
-     * Subclasses may override if required.
-     * </p>
-     *
-     * @param control the control being added
-     * @return the width of the control
-     */
-    protected int computeWidth(Control control) {
-        return control.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x;
-    }
-
-    /**
-     * Creates and returns the control for this contribution item
-     * under the given parent composite.
-     * <p>
-     * This framework method must be implemented by concrete
-     * subclasses.
-     * </p>
-     *
-     * @param parent the parent composite
-     * @return the new control
-     */
-    protected abstract Control createControl(Composite parent);
-
-    /**
-     * The control item implementation of this <code>IContributionItem</code>
-     * method calls the <code>createControl</code> framework method.
-     * Subclasses must implement <code>createControl</code> rather than
-     * overriding this method.
-     */
-    public final void fill(Composite parent) {
-        createControl(parent);
-    }
-
-    /**
-     * The control item implementation of this <code>IContributionItem</code>
-     * method throws an exception since controls cannot be added to menus.
-     */
-    public final void fill(Menu parent, int index) {
-        Assert.isTrue(false, "Can't add a control to a menu");//$NON-NLS-1$
-    }
-
-    /**
-     * The control item implementation of this <code>IContributionItem</code>
-     * method calls the <code>createControl</code> framework method to
-     * create a control under the given parent, and then creates
-     * a new tool item to hold it.
-     * Subclasses must implement <code>createControl</code> rather than
-     * overriding this method.
-     */
-    public final void fill(ToolBar parent, int index) {
-        Control control = createControl(parent);
-        ToolItem ti = new ToolItem(parent, SWT.SEPARATOR, index);
-        ti.setControl(control);
-        ti.setWidth(computeWidth(control));
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/CoolBarManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/CoolBarManager.java
deleted file mode 100644
index 411a573..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/CoolBarManager.java
+++ /dev/null
@@ -1,1066 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.internal.provisional.action.IToolBarManager2;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * A cool bar manager is a contribution manager which realizes itself and its
- * items in a cool bar control.
- * <p>
- * This class may be instantiated; it may also be subclassed.
- * </p>
- * 
- * @since 3.0
- */
-public class CoolBarManager extends ContributionManager implements
-        ICoolBarManager {
-
-    /**
-     * A separator created by the end user.
-     */
-    public final static String USER_SEPARATOR = "UserSeparator"; //$NON-NLS-1$
-
-    /**
-     * The original creation order of the contribution items.
-     */
-    private ArrayList cbItemsCreationOrder = new ArrayList();
-
-    /**
-     * MenuManager for cool bar pop-up menu, or null if none.
-     */
-    private MenuManager contextMenuManager = null;
-
-    /**
-     * The cool bar control; <code>null</code> before creation and after
-     * disposal.
-     */
-    private CoolBar coolBar = null;
-
-    /**
-     * The cool bar items style; <code>SWT.NONE</code> by default.
-     */
-    private int itemStyle = SWT.NONE;
-
-    /**
-     * Creates a new cool bar manager with the default style. Equivalent to
-     * <code>CoolBarManager(SWT.NONE)</code>.
-     */
-    public CoolBarManager() {
-        // do nothing
-    }
-
-    /**
-     * Creates a cool bar manager for an existing cool bar control. This
-     * manager becomes responsible for the control, and will dispose of it when
-     * the manager is disposed.
-     * 
-     * @param coolBar
-     *            the cool bar control
-     */
-    public CoolBarManager(CoolBar coolBar) {
-        this();
-        Assert.isNotNull(coolBar);
-        this.coolBar = coolBar;
-        itemStyle = coolBar.getStyle();
-    }
-
-    /**
-     * Creates a cool bar manager with the given SWT style. Calling <code>createControl</code>
-     * will create the cool bar control.
-     * 
-     * @param style
-     *            the cool bar item style; see
-     *            {@link org.eclipse.swt.widgets.CoolBar CoolBar}for for valid
-     *            style bits
-     */
-    public CoolBarManager(int style) {
-        itemStyle = style;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.ICoolBarManager#add(org.eclipse.jface.action.IToolBarManager)
-     */
-    public void add(IToolBarManager toolBarManager) {
-        Assert.isNotNull(toolBarManager);
-        super.add(new ToolBarContributionItem(toolBarManager));
-    }
-
-    /**
-     * Collapses consecutive separators and removes a separator from the
-     * beginning and end of the list.
-     * 
-     * @param contributionList
-     *            the list of contributions; must not be <code>null</code>.
-     * @return The contribution list provided with extraneous separators
-     *         removed; this value is never <code>null</code>, but may be
-     *         empty.
-     */
-    private ArrayList adjustContributionList(ArrayList contributionList) {
-        IContributionItem item;
-        // Fist remove a separator if it is the first element of the list
-        if (contributionList.size() != 0) {
-            item = (IContributionItem) contributionList.get(0);
-            if (item.isSeparator()) {
-                contributionList.remove(0);
-            }
-
-            ListIterator iterator = contributionList.listIterator();
-            // collapse consecutive separators
-            while (iterator.hasNext()) {
-                item = (IContributionItem) iterator.next();
-                if (item.isSeparator()) {
-                    while (iterator.hasNext()) {
-                        item = (IContributionItem) iterator.next();
-                        if (item.isSeparator()) {
-                            iterator.remove();
-                        } else {
-                            break;
-                        }
-                    }
-
-                }
-            }
-            if (contributionList.size() != 0) {
-	            // Now check last element to see if there is a separator
-	            item = (IContributionItem) contributionList.get(contributionList
-	                    .size() - 1);
-	            if (item.isSeparator()) {
-	                contributionList.remove(contributionList.size() - 1);
-	            }
-            }
-        }
-        return contributionList;
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.ContributionManager#checkDuplication(org.eclipse.jface.action.IContributionItem)
-     */
-    protected boolean allowItem(IContributionItem itemToAdd) {
-        /* We will allow as many null entries as they like, though there should
-         * be none.
-         */
-        if (itemToAdd == null) {
-            return true;
-        }
-
-        /* Null identifiers can be expected in generic contribution items.
-         */
-        String firstId = itemToAdd.getId();
-        if (firstId == null) {
-            return true;
-        }
-
-        // Cycle through the current list looking for duplicates.
-        IContributionItem[] currentItems = getItems();
-        for (int i = 0; i < currentItems.length; i++) {
-            IContributionItem currentItem = currentItems[i];
-
-            // We ignore null entries.
-            if (currentItem == null) {
-                continue;
-            }
-
-            String secondId = currentItem.getId();
-            if (firstId.equals(secondId)) {
-                if (Policy.TRACE_TOOLBAR) { 
-                    System.out.println("Trying to add a duplicate item."); //$NON-NLS-1$
-                    new Exception().printStackTrace(System.out);
-                    System.out.println("DONE --------------------------"); //$NON-NLS-1$
-                }
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * Positions the list iterator to the end of all the separators. Calling
-     * <code>next()</code> the iterator should return the immediate object
-     * following the last separator.
-     * 
-     * @param iterator
-     *            the list iterator.
-     */
-    private void collapseSeparators(ListIterator iterator) {
-
-        while (iterator.hasNext()) {
-            IContributionItem item = (IContributionItem) iterator.next();
-            if (!item.isSeparator()) {
-                iterator.previous();
-                return;
-            }
-        }
-    }
-
-    /**
-     * Returns whether the cool bar control has been created and not yet
-     * disposed.
-     * 
-     * @return <code>true</code> if the control has been created and not yet
-     *         disposed, <code>false</code> otherwise
-     */
-    private boolean coolBarExist() {
-        return coolBar != null && !coolBar.isDisposed();
-    }
-
-    /**
-     * Creates and returns this manager's cool bar control. Does not create a
-     * new control if one already exists.
-     * 
-     * @param parent
-     *            the parent control
-     * @return the cool bar control
-     */
-    public CoolBar createControl(Composite parent) {
-        Assert.isNotNull(parent);
-        if (!coolBarExist()) {
-            coolBar = new CoolBar(parent, itemStyle);
-            coolBar.setMenu(getContextMenuControl());
-            coolBar.setLocked(false);
-            update(false);
-        }
-        return coolBar;
-    }
-
-    /**
-     * Disposes of this cool bar manager and frees all allocated SWT resources.
-     * Notifies all contribution items of the dispose. Note that this method
-     * does not clean up references between this cool bar manager and its
-     * associated contribution items. Use <code>removeAll</code> for that
-     * purpose.
-     */
-    public void dispose() {
-        if (coolBarExist()) {
-            coolBar.dispose();
-            coolBar = null;
-        }
-        IContributionItem[] items = getItems();
-        for (int i = 0; i < items.length; i++) {
-            // Disposes of the contribution item.
-            // If Contribution Item is a toolbar then it will dispose of
-            // all the nested
-            // contribution items.
-            items[i].dispose();
-        }
-        // If a context menu existed then dispose of it.
-        if (contextMenuManager != null) {
-            contextMenuManager.dispose();
-            contextMenuManager = null;
-        }
-
-    }
-
-    /**
-     * Disposes the given cool item.
-     * 
-     * @param item
-     *            the cool item to dispose
-     */
-    private void dispose(CoolItem item) {
-        if ((item != null) && !item.isDisposed()) {
-
-            item.setData(null);
-            Control control = item.getControl();
-            // if the control is already disposed, setting the coolitem
-            // control to null will cause an SWT exception, workaround
-            // for 19630
-            if ((control != null) && !control.isDisposed()) {
-                item.setControl(null);
-            }
-            item.dispose();
-        }
-    }
-
-    /**
-     * Finds the cool item associated with the given contribution item.
-     * 
-     * @param item
-     *            the contribution item
-     * @return the associated cool item, or <code>null</code> if not found
-     */
-    private CoolItem findCoolItem(IContributionItem item) {
-        CoolItem[] coolItems = (coolBar == null) ? null : coolBar.getItems(); 
-        return findCoolItem(coolItems, item);
-    }
-    
-    private CoolItem findCoolItem(CoolItem[] items, IContributionItem item) {
-        if (items == null) {
-			return null;
-		}
-
-        for (int i = 0; i < items.length; i++) {
-            CoolItem coolItem = items[i];
-            IContributionItem data = (IContributionItem) coolItem.getData();
-            if (data != null && data.equals(item)) {
-				return coolItem;
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Return a consistent set of wrap indices. The return value will always
-     * include at least one entry and the first entry will always be zero.
-     * CoolBar.getWrapIndices() is inconsistent in whether or not it returns an
-     * index for the first row.
-     * 
-     * @param wraps
-     *            the wrap indicies from the cool bar widget
-     * @return the adjusted wrap indicies.
-     */
-    private int[] getAdjustedWrapIndices(int[] wraps) {
-        int[] adjustedWrapIndices;
-        if (wraps.length == 0) {
-            adjustedWrapIndices = new int[] { 0 };
-        } else {
-            if (wraps[0] != 0) {
-                adjustedWrapIndices = new int[wraps.length + 1];
-                adjustedWrapIndices[0] = 0;
-                for (int i = 0; i < wraps.length; i++) {
-                    adjustedWrapIndices[i + 1] = wraps[i];
-                }
-            } else {
-                adjustedWrapIndices = wraps;
-            }
-        }
-        return adjustedWrapIndices;
-    }
-
-    /**
-     * Returns the control of the Menu Manager. If the menu manager does not
-     * have a control then one is created.
-     * 
-     * @return menu control associated with manager, or null if none
-     */
-    private Menu getContextMenuControl() {
-        if ((contextMenuManager != null) && (coolBar != null)) {
-            Menu menuWidget = contextMenuManager.getMenu();
-            if ((menuWidget == null) || (menuWidget.isDisposed())) {
-                menuWidget = contextMenuManager.createContextMenu(coolBar);
-            }
-            return menuWidget;
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.ICoolBarManager#isLayoutLocked()
-     */
-    public IMenuManager getContextMenuManager() {
-        return contextMenuManager;
-    }
-
-    /**
-     * Returns the cool bar control for this manager.
-     * 
-     * @return the cool bar control, or <code>null</code> if none
-     */
-    public CoolBar getControl() {
-        return coolBar;
-    }
-
-    /**
-     * Returns an array list of all the contribution items in the manager.
-     * 
-     * @return an array list of contribution items.
-     */
-    private ArrayList getItemList() {
-        IContributionItem[] cbItems = getItems();
-        ArrayList list = new ArrayList(cbItems.length);
-        for (int i = 0; i < cbItems.length; i++) {
-            list.add(cbItems[i]);
-        }
-        return list;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.ICoolBarManager#isLayoutLocked()
-     */
-    public boolean getLockLayout() {
-        if (!coolBarExist()) {
-            return false;
-        }
-        return coolBar.getLocked();
-    }
-
-    /**
-     * Returns the number of rows that should be displayed visually.
-     * 
-     * @param items
-     *            the array of contributin items
-     * @return the number of rows
-     */
-    private int getNumRows(IContributionItem[] items) {
-        int numRows = 1;
-        boolean separatorFound = false;
-        for (int i = 0; i < items.length; i++) {
-            if (items[i].isSeparator()) {
-                separatorFound = true;
-            }
-            if ((separatorFound) && (isChildVisible(items[i]))
-                    && (!items[i].isGroupMarker()) && (!items[i].isSeparator())) {
-                numRows++;
-                separatorFound = false;
-            }
-        }
-        return numRows;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.ICoolBarManager#getStyle()
-     */
-    public int getStyle() {
-        return itemStyle;
-    }
-
-    /**
-     * Subclasses may extend this <code>ContributionManager</code> method,
-     * but must call <code>super.itemAdded</code>.
-     * 
-     * @see org.eclipse.jface.action.ContributionManager#itemAdded(org.eclipse.jface.action.IContributionItem)
-     */
-    protected void itemAdded(IContributionItem item) {
-        Assert.isNotNull(item);
-        super.itemAdded(item);
-        int insertedAt = indexOf(item);
-        boolean replaced = false;
-        final int size = cbItemsCreationOrder.size();
-        for (int i = 0; i < size; i++) {
-            IContributionItem created = (IContributionItem) cbItemsCreationOrder
-                    .get(i);
-            if (created.getId() != null && created.getId().equals(item.getId())) {
-                cbItemsCreationOrder.set(i, item);
-                replaced = true;
-                break;
-            }
-        }
-
-        if (!replaced) {
-            cbItemsCreationOrder.add(Math.min(Math.max(insertedAt, 0),
-                    cbItemsCreationOrder.size()), item);
-        }
-    }
-
-    /**
-     * Subclasses may extend this <code>ContributionManager</code> method,
-     * but must call <code>super.itemRemoved</code>.
-     * 
-     * @see org.eclipse.jface.action.ContributionManager#itemRemoved(org.eclipse.jface.action.IContributionItem)
-     */
-    protected void itemRemoved(IContributionItem item) {
-        Assert.isNotNull(item);
-        super.itemRemoved(item);
-        CoolItem coolItem = findCoolItem(item);
-        if (coolItem != null) {
-            coolItem.setData(null);
-        }
-    }
-
-    /**
-     * Positions the list iterator to the starting of the next row. By calling
-     * next on the returned iterator, it will return the first element of the
-     * next row.
-     * 
-     * @param iterator
-     *            the list iterator of contribution items
-     * @param ignoreCurrentItem
-     *            Whether the current item in the iterator should be considered
-     *            (as well as subsequent items).
-     */
-    private void nextRow(ListIterator iterator, boolean ignoreCurrentItem) {
-
-        IContributionItem currentElement = null;
-        if (!ignoreCurrentItem && iterator.hasPrevious()) {
-            currentElement = (IContributionItem) iterator.previous();
-            iterator.next();
-        }
-
-        if ((currentElement != null) && (currentElement.isSeparator())) {
-            collapseSeparators(iterator);
-            return;
-        } 
-
-        //Find next separator
-        while (iterator.hasNext()) {
-            IContributionItem item = (IContributionItem) iterator.next();
-            if (item.isSeparator()) {
-                // we we find a separator, collapse any consecutive
-                // separators
-                // and return
-                collapseSeparators(iterator);
-                return;
-            }
-        }
-    }
-
-    /*
-     * Used for debuging. Prints all the items in the internal structures.
-     */
-    //    private void printContributions(ArrayList contributionList) {
-    //        int index = 0;
-    //        System.out.println("----------------------------------\n"); //$NON-NLS-1$
-    //        for (Iterator i = contributionList.iterator(); i.hasNext(); index++) {
-    //            IContributionItem item = (IContributionItem) i.next();
-    //            if (item.isSeparator()) {
-    //                System.out.println("Separator"); //$NON-NLS-1$
-    //            } else {
-    //                System.out.println(index + ". Item id: " + item.getId() //$NON-NLS-1$
-    //                        + " - is Visible: " //$NON-NLS-1$
-    //                        + item.isVisible());
-    //            }
-    //        }
-    //    }
-    /**
-     * Synchronizes the visual order of the cool items in the control with this
-     * manager's internal data structures. This method should be called before
-     * requesting the order of the contribution items to ensure that the order
-     * is accurate.
-     * <p>
-     * Note that <code>update()</code> and <code>refresh()</code> are
-     * converses: <code>update()</code> changes the visual order to match the
-     * internal structures, and <code>refresh</code> changes the internal
-     * structures to match the visual order.
-     * </p>
-     */
-    public void refresh() {
-        if (!coolBarExist()) {
-            return;
-        }
-
-        // Retreives the list of contribution items as an array list
-        ArrayList contributionList = getItemList();
-
-        // Check the size of the list
-        if (contributionList.size() == 0) {
-			return;
-		}
-
-        // The list of all the cool items in their visual order
-        CoolItem[] coolItems = coolBar.getItems();
-        // The wrap indicies of the coolbar
-        int[] wrapIndicies = getAdjustedWrapIndices(coolBar.getWrapIndices());
-
-        int row = 0;
-        int coolItemIndex = 0;
-
-        // Traverse through all cool items in the coolbar add them to a new
-        // data structure
-        // in the correct order
-        ArrayList displayedItems = new ArrayList(coolBar.getItemCount());
-        for (int i = 0; i < coolItems.length; i++) {
-            CoolItem coolItem = coolItems[i];
-            if (coolItem.getData() instanceof IContributionItem) {
-                IContributionItem cbItem = (IContributionItem) coolItem
-                        .getData();
-                displayedItems.add(Math.min(i, displayedItems.size()), cbItem);
-            }
-        }
-
-        // Add separators to the displayed Items data structure
-        int offset = 0;
-        for (int i = 1; i < wrapIndicies.length; i++) {
-            int insertAt = wrapIndicies[i] + offset;
-            displayedItems.add(insertAt, new Separator(USER_SEPARATOR));
-            offset++;
-        }
-
-        // Determine which rows are invisible
-        ArrayList existingVisibleRows = new ArrayList(4);
-        ListIterator rowIterator = contributionList.listIterator();
-        collapseSeparators(rowIterator);
-        int numRow = 0;
-        while (rowIterator.hasNext()) {
-            // Scan row
-            while (rowIterator.hasNext()) {
-                IContributionItem cbItem = (IContributionItem) rowIterator
-                        .next();
-                if (displayedItems.contains(cbItem)) {
-                    existingVisibleRows.add(new Integer(numRow));
-                    break;
-                }
-                if (cbItem.isSeparator()) {
-                    break;
-                }
-            }
-            nextRow(rowIterator, false);
-            numRow++;
-        }
-
-        Iterator existingRows = existingVisibleRows.iterator();
-        // Adjust row number to the first visible
-        if (existingRows.hasNext()) {
-            row = ((Integer) existingRows.next()).intValue();
-        }
-
-        HashMap itemLocation = new HashMap();
-        for (ListIterator locationIterator = displayedItems.listIterator(); locationIterator
-                .hasNext();) {
-            IContributionItem item = (IContributionItem) locationIterator
-                    .next();
-            if (item.isSeparator()) {
-                if (existingRows.hasNext()) {
-                    Integer value = (Integer) existingRows.next();
-                    row = value.intValue();
-                } else {
-                    row++;
-                }
-            } else {
-                itemLocation.put(item, new Integer(row));
-            }
-
-        }
-
-        // Insert the contribution items in their correct location
-        for (ListIterator iterator = displayedItems.listIterator(); iterator
-                .hasNext();) {
-            IContributionItem cbItem = (IContributionItem) iterator.next();
-            if (cbItem.isSeparator()) {
-                coolItemIndex = 0;
-            } else {
-                relocate(cbItem, coolItemIndex, contributionList, itemLocation);
-                cbItem.saveWidgetState();
-                coolItemIndex++;
-            }
-        }
-
-        contributionList = adjustContributionList(contributionList);
-        if (contributionList.size() != 0) {
-            IContributionItem[] array = new IContributionItem[contributionList
-                    .size() - 1];
-            array = (IContributionItem[]) contributionList.toArray(array);
-            internalSetItems(array);
-        }
-
-    }
-
-    /**
-     * Relocates the given contribution item to the specified index.
-     * 
-     * @param cbItem
-     *            the conribution item to relocate
-     * @param index
-     *            the index to locate this item
-     * @param contributionList
-     *            the current list of conrtributions
-     * @param itemLocation
-     */
-    private void relocate(IContributionItem cbItem, int index,
-            ArrayList contributionList, HashMap itemLocation) {
-
-        if (!(itemLocation.get(cbItem) instanceof Integer)) {
-			return;
-		}
-        int targetRow = ((Integer) itemLocation.get(cbItem)).intValue();
-
-        int cbInternalIndex = contributionList.indexOf(cbItem);
-
-        //	by default add to end of list
-        int insertAt = contributionList.size();
-        // Find the row to place this item in.
-        ListIterator iterator = contributionList.listIterator();
-        // bypass any separators at the begining
-        collapseSeparators(iterator);
-        int currentRow = -1;
-        while (iterator.hasNext()) {
-
-            currentRow++;
-            if (currentRow == targetRow) {
-                // We found the row to insert the item
-                int virtualIndex = 0;
-                insertAt = iterator.nextIndex();
-                // first check the position of the current element (item)
-                // then get the next element
-                while (iterator.hasNext()) {
-                    IContributionItem item = (IContributionItem) iterator
-                            .next();
-                    Integer itemRow = (Integer) itemLocation.get(item);
-                    if (item.isSeparator()) {
-						break;
-					}
-                    // if the item has an associate widget
-                    if ((itemRow != null) && (itemRow.intValue() == targetRow)) {
-                        // if the next element is the index we are looking for
-                        // then break
-                        if (virtualIndex >= index) {
-							break;
-						}
-                        virtualIndex++;
-
-                    }
-                    insertAt++;
-                }
-                // If we don't need to move it then we return
-                if (cbInternalIndex == insertAt) {
-					return;
-				}
-                break;
-            }
-            nextRow(iterator, true);
-        }
-        contributionList.remove(cbItem);
-
-        // Adjust insertAt index
-        if (cbInternalIndex < insertAt) {
-            insertAt--;
-        }
-
-        // if we didn't find the row then add a new row
-        if (currentRow != targetRow) {
-            contributionList.add(new Separator(USER_SEPARATOR));
-            insertAt = contributionList.size();
-        }
-        insertAt = Math.min(insertAt, contributionList.size());
-        contributionList.add(insertAt, cbItem);
-
-    }
-
-    /**
-     * Restores the canonical order of this cool bar manager. The canonical
-     * order is the order in which the contribution items where added.
-     */
-    public void resetItemOrder() {
-        for (ListIterator iterator = cbItemsCreationOrder.listIterator(); iterator
-                .hasNext();) {
-            IContributionItem item = (IContributionItem) iterator.next();
-            // if its a user separator then do not include in original order.
-            if ((item.getId() != null) && (item.getId().equals(USER_SEPARATOR))) {
-                iterator.remove();
-            }
-        }
-        IContributionItem[] itemsToSet = new IContributionItem[cbItemsCreationOrder
-                .size()];
-        cbItemsCreationOrder.toArray(itemsToSet);
-        setItems(itemsToSet);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.ICoolBarManager#setContextMenuManager(org.eclipse.jface.action.IMenuManager)
-     */
-    public void setContextMenuManager(IMenuManager contextMenuManager) {
-        this.contextMenuManager = (MenuManager) contextMenuManager;
-        if (coolBar != null) {
-            coolBar.setMenu(getContextMenuControl());
-        }
-    }
-
-    /**
-     * Replaces the current items with the given items.
-     * Forces an update.
-     * 
-     * @param newItems the items with which to replace the current items
-     */
-    public void setItems(IContributionItem[] newItems) {
-        // dispose of all the cool items on the cool bar manager
-        if (coolBar != null) {
-            CoolItem[] coolItems = coolBar.getItems();
-            for (int i = 0; i < coolItems.length; i++) {
-                dispose(coolItems[i]);
-            }
-        }
-        // Set the internal structure to this order
-        internalSetItems(newItems);
-        // Force and update
-        update(true);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.ICoolBarManager#lockLayout(boolean)
-     */
-    public void setLockLayout(boolean value) {
-        if (!coolBarExist()) {
-            return;
-        }
-        coolBar.setLocked(value);
-    }
-
-    /**
-     * Subclasses may extend this <code>IContributionManager</code> method,
-     * but must call <code>super.update</code>.
-     * 
-     * @see org.eclipse.jface.action.IContributionManager#update(boolean)
-     */
-    public void update(boolean force) {
-        if ((!isDirty() && !force) || (!coolBarExist())) {
-            return;
-        }
-
-        boolean relock = false;
-        boolean changed = false;
-
-        try {
-            coolBar.setRedraw(false);
-
-            // Refresh the widget data with the internal data structure.
-            refresh();
-
-            if (coolBar.getLocked()) {
-                coolBar.setLocked(false);
-                relock = true;
-            }
-
-            /*
-             * Make a list of items including only those items that are
-             * visible. Separators should stay because they mark line breaks in
-             * a cool bar.
-             */
-            final IContributionItem[] items = getItems();
-            final List visibleItems = new ArrayList(items.length);
-            for (int i = 0; i < items.length; i++) {
-                final IContributionItem item = items[i];
-                if (isChildVisible(item)) {
-                    visibleItems.add(item);
-                }
-            }
-
-            /*
-             * Make a list of CoolItem widgets in the cool bar for which there
-             * is no current visible contribution item. These are the widgets
-             * to be disposed. Dynamic items are also removed.
-             */
-            CoolItem[] coolItems = coolBar.getItems();
-            final ArrayList coolItemsToRemove = new ArrayList(coolItems.length);
-            for (int i = 0; i < coolItems.length; i++) {
-                final Object data = coolItems[i].getData();
-                if ((data == null)
-                        || (!visibleItems.contains(data))
-                        || ((data instanceof IContributionItem) && ((IContributionItem) data)
-                                .isDynamic())) {
-                    coolItemsToRemove.add(coolItems[i]);
-                }
-            }
-
-            // Dispose of any items in the list to be removed.
-            for (int i = coolItemsToRemove.size() - 1; i >= 0; i--) {
-                CoolItem coolItem = (CoolItem) coolItemsToRemove.get(i);
-                if (!coolItem.isDisposed()) {
-                    Control control = coolItem.getControl();
-                    if (control != null) {
-                        coolItem.setControl(null);
-                        control.dispose();
-                    }
-                    coolItem.dispose();
-                }
-            }
-
-            // Add any new items by telling them to fill.
-            coolItems = coolBar.getItems();
-            IContributionItem sourceItem;
-            IContributionItem destinationItem;
-            int sourceIndex = 0;
-            int destinationIndex = 0;
-            final Iterator visibleItemItr = visibleItems.iterator();
-            while (visibleItemItr.hasNext()) {
-                sourceItem = (IContributionItem) visibleItemItr.next();
-
-                // Retrieve the corresponding contribution item from SWT's
-                // data.
-                if (sourceIndex < coolItems.length) {
-                    destinationItem = (IContributionItem) coolItems[sourceIndex]
-                            .getData();
-                } else {
-                    destinationItem = null;
-                }
-
-                // The items match is they are equal or both separators.
-                if (destinationItem != null) {
-                    if (sourceItem.equals(destinationItem)) {
-                        sourceIndex++;
-                        destinationIndex++;
-                        sourceItem.update();
-                        continue;
-
-                    } else if ((destinationItem.isSeparator())
-                            && (sourceItem.isSeparator())) {
-                        coolItems[sourceIndex].setData(sourceItem);
-                        sourceIndex++;
-                        destinationIndex++;
-                        sourceItem.update();
-                        continue;
-
-                    }
-                }
-
-                // Otherwise, a new item has to be added.
-                final int start = coolBar.getItemCount();
-                if (sourceItem instanceof ToolBarContributionItem) {
-	                IToolBarManager manager = ((ToolBarContributionItem)sourceItem).getToolBarManager();
-	            	if(manager instanceof IToolBarManager2) {
-	            		((IToolBarManager2)manager).setOverrides(getOverrides());
-	            	}
-                }
-                sourceItem.fill(coolBar, destinationIndex);
-                final int newItems = coolBar.getItemCount() - start;
-                for (int i = 0; i < newItems; i++) {
-                    coolBar.getItem(destinationIndex++).setData(sourceItem);
-                }
-                changed = true;
-            }
-
-            // Remove any old widgets not accounted for.
-            for (int i = coolItems.length - 1; i >= sourceIndex; i--) {
-                final CoolItem item = coolItems[i];
-                if (!item.isDisposed()) {
-                    Control control = item.getControl();
-                    if (control != null) {
-                        item.setControl(null);
-                        control.dispose();
-                    }
-                    item.dispose();
-                    changed = true;
-                }
-            }
-
-            // Update wrap indices.
-            updateWrapIndices();
-
-            // Update the sizes.
-            for (int i = 0; i < items.length; i++) {
-                IContributionItem item = items[i];
-                item.update(SIZE);
-            }
-
-            // if the coolBar was previously locked then lock it
-            if (relock) {
-                coolBar.setLocked(true);
-            }
-
-            if (changed) {
-                updateTabOrder();
-            }
-
-            // We are no longer dirty.
-            setDirty(false);
-        } finally {
-            coolBar.setRedraw(true);
-        }
-    }
-
-    /**
-     * Sets the tab order of the coolbar to the visual order of its items.
-     */
-    /* package */void updateTabOrder() {
-        if (coolBar != null) {
-            CoolItem[] items = coolBar.getItems();
-            if (items != null) {
-                ArrayList children = new ArrayList(items.length);
-                for (int i = 0; i < items.length; i++) {
-                    if ((items[i].getControl() != null)
-                            && (!items[i].getControl().isDisposed())) {
-                        children.add(items[i].getControl());
-                    }
-                }
-                // Convert array
-                Control[] childrenArray = new Control[0];
-                childrenArray = (Control[]) children.toArray(childrenArray);
-
-                if (childrenArray != null) {
-                    coolBar.setTabList(childrenArray);
-                }
-
-            }
-        }
-    }
-
-    /**
-     * Updates the indices at which the cool bar should wrap.
-     */
-    private void updateWrapIndices() {
-        final IContributionItem[] items = getItems();
-        final int numRows = getNumRows(items) - 1;
-
-        // Generate the list of wrap indices.
-        final int[] wrapIndices = new int[numRows];
-        boolean foundSeparator = false;
-        int j = 0;
-        CoolItem[] coolItems = (coolBar == null) ? null : coolBar.getItems();
-
-        for (int i = 0; i < items.length; i++) {
-            IContributionItem item = items[i];
-            CoolItem coolItem = findCoolItem(coolItems, item);
-            if (item.isSeparator()) {
-                foundSeparator = true;
-            }
-            if ((!item.isSeparator()) && (!item.isGroupMarker())
-                    && (isChildVisible(item)) && (coolItem != null)
-                    && (foundSeparator)) {
-                wrapIndices[j] = coolBar.indexOf(coolItem);
-                j++;
-                foundSeparator = false;
-            }
-        }
-
-        /*
-         * Check to see if these new wrap indices are different than the old
-         * ones.
-         */
-        final int[] oldIndices = coolBar.getWrapIndices();
-        boolean shouldUpdate = false;
-        if (oldIndices.length == wrapIndices.length) {
-            for (int i = 0; i < oldIndices.length; i++) {
-                if (oldIndices[i] != wrapIndices[i]) {
-                    shouldUpdate = true;
-                    break;
-                }
-            }
-        } else {
-            shouldUpdate = true;
-        }
-
-        if (shouldUpdate) {
-            coolBar.setWrapIndices(wrapIndices);
-        }
-    }
-    
-	private boolean isChildVisible(IContributionItem item) {
-		Boolean v;
-		
-		IContributionManagerOverrides overrides = getOverrides();
-		if(overrides == null) {
-			v = null;
-		} else {
-			v = getOverrides().getVisible(item); 
-		}
-		
-		if (v != null) {
-			return v.booleanValue();
-		}
-		return item.isVisible();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.java
deleted file mode 100644
index 058ce7a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.java
+++ /dev/null
@@ -1,789 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.action;
-
-import java.text.MessageFormat;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.ResourceBundle;
-import java.util.Set;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.CommandEvent;
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.ICommandListener;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.bindings.BindingManager;
-import org.eclipse.jface.bindings.BindingManagerEvent;
-import org.eclipse.jface.bindings.IBindingManagerListener;
-import org.eclipse.jface.bindings.Trigger;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.SWTKeySupport;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * <p>
- * A manager for a callback facility which is capable of querying external
- * interfaces for additional information about actions and action contribution
- * items. This information typically includes things like accelerators and
- * textual representations.
- * </p>
- * <p>
- * <em>It is only necessary to use this mechanism if you will be using a mix of
- * actions and commands, and wish the interactions to work properly.</em>
- * </p>
- * <p>
- * For example, in the Eclipse workbench, this mechanism is used to allow the
- * command architecture to override certain values in action contribution items.
- * </p>
- * <p>
- * This class is not intended to be called or extended by any external clients.
- * </p>
- * 
- * @since 3.0
- */
-public final class ExternalActionManager {
-
-	/**
-	 * A simple implementation of the <code>ICallback</code> mechanism that
-	 * simply takes a <code>BindingManager</code> and a
-	 * <code>CommandManager</code>.
-	 * <p>
-	 * <b>Note:</b> this class is not intended to be subclassed by clients.
-	 * </p>
-	 * 
-	 * @since 3.1
-	 */
-	public static class CommandCallback implements
-			IBindingManagerListener, IBindingManagerCallback, IExecuteCallback {
-
-		/**
-		 * The internationalization bundle for text produced by this class.
-		 */
-		private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-				.getBundle(ExternalActionManager.class.getName());
-
-		/**
-		 * The callback capable of responding to whether a command is active.
-		 */
-		private final IActiveChecker activeChecker;
-		
-		/**
-		 * Check the applicability of firing an execution event for an action.
-		 */
-		private final IExecuteApplicable applicabilityChecker;
-
-		/**
-		 * The binding manager for your application. Must not be
-		 * <code>null</code>.
-		 */
-		private final BindingManager bindingManager;
-
-		/**
-		 * Whether a listener has been attached to the binding manager yet.
-		 */
-		private boolean bindingManagerListenerAttached = false;
-
-		/**
-		 * The command manager for your application. Must not be
-		 * <code>null</code>.
-		 */
-		private final CommandManager commandManager;
-
-		/**
-		 * A set of all the command identifiers that have been logged as broken
-		 * so far. For each of these, there will be a listener on the
-		 * corresponding command. If the command ever becomes defined, the item
-		 * will be removed from this set and the listener removed. This value
-		 * may be empty, but never <code>null</code>.
-		 */
-		private final Set loggedCommandIds = new HashSet();
-
-		/**
-		 * The list of listeners that have registered for property change
-		 * notification. This is a map of command identifiers (<code>String</code>)
-		 * to listeners (<code>IPropertyChangeListener</code> or
-		 * <code>ListenerList</code> of <code>IPropertyChangeListener</code>).
-		 */
-		private final Map registeredListeners = new HashMap();
-
-		/**
-		 * Constructs a new instance of <code>CommandCallback</code> with the
-		 * workbench it should be using. All commands will be considered active.
-		 * 
-		 * @param bindingManager
-		 *            The binding manager which will provide the callback; must
-		 *            not be <code>null</code>.
-		 * @param commandManager
-		 *            The command manager which will provide the callback; must
-		 *            not be <code>null</code>.
-		 * 
-		 * @since 3.1
-		 */
-		public CommandCallback(final BindingManager bindingManager,
-				final CommandManager commandManager) {
-			this(bindingManager, commandManager, new IActiveChecker() {
-				public boolean isActive(String commandId) {
-					return true;
-				}
-
-			}, new IExecuteApplicable() {
-				public boolean isApplicable(IAction action) {
-					return true;
-				}
-			});
-		}
-		/**
-		 * Constructs a new instance of <code>CommandCallback</code> with the
-		 * workbench it should be using.
-		 * 
-		 * @param bindingManager
-		 *            The binding manager which will provide the callback; must
-		 *            not be <code>null</code>.
-		 * @param commandManager
-		 *            The command manager which will provide the callback; must
-		 *            not be <code>null</code>.
-		 * @param activeChecker
-		 *            The callback mechanism for checking whether a command is
-		 *            active; must not be <code>null</code>.
-		 * 
-		 * @since 3.1
-		 */
-		public CommandCallback(final BindingManager bindingManager,
-				final CommandManager commandManager,
-				final IActiveChecker activeChecker) {
-			this(bindingManager, commandManager, activeChecker,
-					new IExecuteApplicable() {
-				public boolean isApplicable(IAction action) {
-					return true;
-				}
-			});
-		}
-		/**
-		 * Constructs a new instance of <code>CommandCallback</code> with the
-		 * workbench it should be using.
-		 * 
-		 * @param bindingManager
-		 *            The binding manager which will provide the callback; must
-		 *            not be <code>null</code>.
-		 * @param commandManager
-		 *            The command manager which will provide the callback; must
-		 *            not be <code>null</code>.
-		 * @param activeChecker
-		 *            The callback mechanism for checking whether a command is
-		 *            active; must not be <code>null</code>.
-		 * @param checker
-		 *            The callback to check if an IAction should fire execution
-		 *            events.
-		 * 
-		 * @since 3.4
-		 */
-		public CommandCallback(final BindingManager bindingManager,
-				final CommandManager commandManager,
-				final IActiveChecker activeChecker,
-				final IExecuteApplicable checker) {
-			if (bindingManager == null) {
-				throw new NullPointerException(
-						"The callback needs a binding manager"); //$NON-NLS-1$
-			}
-
-			if (commandManager == null) {
-				throw new NullPointerException(
-						"The callback needs a command manager"); //$NON-NLS-1$
-			}
-
-			if (activeChecker == null) {
-				throw new NullPointerException(
-						"The callback needs an active callback"); //$NON-NLS-1$
-			}
-			if (checker == null) {
-				throw new NullPointerException(
-						"The callback needs an applicable callback"); //$NON-NLS-1$
-			}
-
-			this.activeChecker = activeChecker;
-			this.bindingManager = bindingManager;
-			this.commandManager = commandManager;
-			this.applicabilityChecker = checker;
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.ExternalActionManager.ICallback#addPropertyChangeListener(String,
-		 *      IPropertyChangeListener)
-		 */
-		public final void addPropertyChangeListener(final String commandId,
-				final IPropertyChangeListener listener) {
-			Object existing = registeredListeners.get(commandId);
-			if (existing instanceof ListenerList) {
-				((ListenerList) existing).add(listener);
-			} else if (existing != null) {
-				ListenerList listeners = new ListenerList(ListenerList.IDENTITY);
-				listeners.add(existing);
-				listeners.add(listener);
-				registeredListeners.put(commandId, listeners);
-			} else {
-				registeredListeners.put(commandId, listener);
-			}
-			if (!bindingManagerListenerAttached) {
-				bindingManager.addBindingManagerListener(this);
-				bindingManagerListenerAttached = true;
-			}
-		}
-
-		public final void bindingManagerChanged(final BindingManagerEvent event) {
-			if (event.isActiveBindingsChanged()) {
-				final Iterator listenerItr = registeredListeners.entrySet()
-						.iterator();
-				while (listenerItr.hasNext()) {
-					final Map.Entry entry = (Map.Entry) listenerItr.next();
-					final String commandId = (String) entry.getKey();
-					final Command command = commandManager
-							.getCommand(commandId);
-					final ParameterizedCommand parameterizedCommand = new ParameterizedCommand(
-							command, null);
-					if (event.isActiveBindingsChangedFor(parameterizedCommand)) {
-						Object value = entry.getValue();
-						PropertyChangeEvent propertyChangeEvent = new PropertyChangeEvent(event
-								.getManager(), IAction.TEXT, null, null);
-						if (value instanceof ListenerList) {
-							Object[] listeners= ((ListenerList) value).getListeners();
-							for (int i = 0; i < listeners.length; i++) {
-								final IPropertyChangeListener listener = (IPropertyChangeListener) listeners[i];
-								listener.propertyChange(propertyChangeEvent);
-							}
-						} else {
-							final IPropertyChangeListener listener = (IPropertyChangeListener) value;
-							listener.propertyChange(propertyChangeEvent);
-						}
-					}
-				}
-			}
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.ExternalActionManager.ICallback#getAccelerator(String)
-		 */
-		public final Integer getAccelerator(final String commandId) {
-			final TriggerSequence triggerSequence = bindingManager
-					.getBestActiveBindingFor(commandId);
-			if (triggerSequence != null) {
-				final Trigger[] triggers = triggerSequence.getTriggers();
-				if (triggers.length == 1) {
-					final Trigger trigger = triggers[0];
-					if (trigger instanceof KeyStroke) {
-						final KeyStroke keyStroke = (KeyStroke) trigger;
-						final int accelerator = SWTKeySupport
-								.convertKeyStrokeToAccelerator(keyStroke);
-						return new Integer(accelerator);
-					}
-				}
-			}
-
-			return null;
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.ExternalActionManager.ICallback#getAcceleratorText(String)
-		 */
-		public final String getAcceleratorText(final String commandId) {
-			final TriggerSequence triggerSequence = bindingManager
-					.getBestActiveBindingFor(commandId);
-			if (triggerSequence == null) {
-				return null;
-			}
-
-			return triggerSequence.format();
-		}
-
-		/**
-		 * Returns the active bindings for a particular command identifier.
-		 * 
-		 * @param commandId
-		 *            The identifier of the command whose bindings are
-		 *            requested. This argument may be <code>null</code>. It
-		 *            is assumed that the command has no parameters.
-		 * @return The array of active triggers (<code>TriggerSequence</code>)
-		 *         for a particular command identifier. This value is guaranteed
-		 *         not to be <code>null</code>, but it may be empty.
-		 * @since 3.2
-		 */
-		public final TriggerSequence[] getActiveBindingsFor(
-				final String commandId) {
-			return bindingManager.getActiveBindingsFor(commandId);
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.ExternalActionManager.ICallback#isAcceleratorInUse(int)
-		 */
-		public final boolean isAcceleratorInUse(final int accelerator) {
-			final KeySequence keySequence = KeySequence
-					.getInstance(SWTKeySupport
-							.convertAcceleratorToKeyStroke(accelerator));
-			return bindingManager.isPerfectMatch(keySequence)
-					|| bindingManager.isPartialMatch(keySequence);
-		}
-
-		/**
-		 * {@inheritDoc}
-		 * 
-		 * Calling this method with an undefined command id will generate a log
-		 * message.
-		 */
-		public final boolean isActive(final String commandId) {
-			if (commandId != null) {
-				final Command command = commandManager.getCommand(commandId);
-
-				if (!command.isDefined()
-						&& (!loggedCommandIds.contains(commandId))) {
-					// The command is not yet defined, so we should log this.
-					final String message = MessageFormat.format(Util
-							.translateString(RESOURCE_BUNDLE,
-									"undefinedCommand.WarningMessage", null), //$NON-NLS-1$
-							new String[] { command.getId() });
-					IStatus status = new Status(IStatus.ERROR,
-							"org.eclipse.jface", //$NON-NLS-1$
-							0, message, new Exception());
-					Policy.getLog().log(status);
-
-					// And remember this item so we don't log it again.
-					loggedCommandIds.add(commandId);
-					command.addCommandListener(new ICommandListener() {
-						/*
-						 * (non-Javadoc)
-						 * 
-						 * @see org.eclipse.ui.commands.ICommandListener#commandChanged(org.eclipse.ui.commands.CommandEvent)
-						 */
-						public final void commandChanged(
-								final CommandEvent commandEvent) {
-							if (command.isDefined()) {
-								command.removeCommandListener(this);
-								loggedCommandIds.remove(commandId);
-							}
-						}
-					});
-
-					return true;
-				}
-
-				return activeChecker.isActive(commandId);
-			}
-
-			return true;
-		}
-
-		/**
-		 * @see org.eclipse.jface.action.ExternalActionManager.ICallback#removePropertyChangeListener(String,
-		 *      IPropertyChangeListener)
-		 */
-		public final void removePropertyChangeListener(final String commandId,
-				final IPropertyChangeListener listener) {
-			Object existing= registeredListeners.get(commandId);
-			if (existing == listener) {
-				registeredListeners.remove(commandId);
-				if (registeredListeners.isEmpty()) {
-					bindingManager.removeBindingManagerListener(this);
-					bindingManagerListenerAttached = false;
-				}
-			} else if (existing instanceof ListenerList) {
-				ListenerList existingList = (ListenerList) existing;
-				existingList.remove(listener);
-				if (existingList.size() == 1) {
-					registeredListeners.put(commandId, existingList.getListeners()[0]);
-				}
-			}
-		}
-
-		/**
-		 * @since 3.4
-		 */
-		public void preExecute(IAction action, Event event) {
-			String actionDefinitionId = action.getActionDefinitionId();
-			if (actionDefinitionId==null 
-					|| !applicabilityChecker.isApplicable(action)) {
-				return;
-			}
-			Command command = commandManager.getCommand(actionDefinitionId);
-			ExecutionEvent executionEvent = new ExecutionEvent(command,
-					Collections.EMPTY_MAP, event, null);
-
-			commandManager.firePreExecute(actionDefinitionId, executionEvent);
-		}
-
-		/**
-		 * @since 3.4
-		 */
-		public void postExecuteSuccess(IAction action, Object returnValue) {
-			String actionDefinitionId = action.getActionDefinitionId();
-			if (actionDefinitionId==null 
-					|| !applicabilityChecker.isApplicable(action)) {
-				return;
-			}
-			commandManager.firePostExecuteSuccess(actionDefinitionId, returnValue);
-		}
-
-		/**
-		 * @since 3.4
-		 */
-		public void postExecuteFailure(IAction action,
-				ExecutionException exception) {
-			String actionDefinitionId = action.getActionDefinitionId();
-			if (actionDefinitionId==null 
-					|| !applicabilityChecker.isApplicable(action)) {
-				return;
-			}
-			commandManager.firePostExecuteFailure(actionDefinitionId, exception);
-		}
-
-		/**
-		 * @since 3.4
-		 */
-		public void notDefined(IAction action, NotDefinedException exception) {
-			String actionDefinitionId = action.getActionDefinitionId();
-			if (actionDefinitionId==null 
-					|| !applicabilityChecker.isApplicable(action)) {
-				return;
-			}
-			commandManager.fireNotDefined(actionDefinitionId, exception);
-		}
-
-		/**
-		 * @since 3.4
-		 */
-		public void notEnabled(IAction action, NotEnabledException exception) {
-			String actionDefinitionId = action.getActionDefinitionId();
-			if (actionDefinitionId==null 
-					|| !applicabilityChecker.isApplicable(action)) {
-				return;
-			}
-			commandManager.fireNotEnabled(actionDefinitionId, exception);
-		}
-	}
-
-	/**
-	 * Defines a callback mechanism for developer who wish to further control
-	 * the visibility of legacy action-based contribution items.
-	 * 
-	 * @since 3.1
-	 */
-	public static interface IActiveChecker {
-		/**
-		 * Checks whether the command with the given identifier should be
-		 * considered active. This can be used in systems using some kind of
-		 * user interface filtering (e.g., activities in the Eclipse workbench).
-		 * 
-		 * @param commandId
-		 *            The identifier for the command; must not be
-		 *            <code>null</code>
-		 * @return <code>true</code> if the command is active;
-		 *         <code>false</code> otherwise.
-		 */
-		public boolean isActive(String commandId);
-	}
-
-	/**
-	 * <p>
-	 * A callback which communicates with the applications binding manager. This
-	 * interface provides more information from the binding manager, which
-	 * allows greater integration. Implementing this interface is preferred over
-	 * {@link ExternalActionManager.ICallback}.
-	 * </p>
-	 * <p>
-	 * Clients may implement this interface, but must not extend.
-	 * </p>
-	 * 
-	 * @since 3.2
-	 */
-	public static interface IBindingManagerCallback extends ICallback {
-
-		/**
-		 * <p>
-		 * Returns the active bindings for a particular command identifier.
-		 * </p>
-		 * 
-		 * @param commandId
-		 *            The identifier of the command whose bindings are
-		 *            requested. This argument may be <code>null</code>. It
-		 *            is assumed that the command has no parameters.
-		 * @return The array of active triggers (<code>TriggerSequence</code>)
-		 *         for a particular command identifier. This value is guaranteed
-		 *         not to be <code>null</code>, but it may be empty.
-		 */
-		public TriggerSequence[] getActiveBindingsFor(String commandId);
-	}
-	
-	/**
-	 * An overridable mechanism to filter certain IActions from the execution
-	 * bridge.
-	 * 
-	 * @since 3.4
-	 */
-	public static interface IExecuteApplicable {
-		/**
-		 * Allow the callback to filter out actions that should not fire
-		 * execution events.
-		 * 
-		 * @param action
-		 *            The action with an actionDefinitionId
-		 * @return true if this action should be considered.
-		 */
-		public boolean isApplicable(IAction action);
-	}
-	
-	/**
-	 * <p>
-	 * A callback for executing execution events. Allows
-	 * <code>ActionContributionItems</code> to fire useful events.
-	 * </p>
-	 * <p>
-	 * Clients must not implement this interface and must not extend.
-	 * </p>
-	 * 
-	 * @since 3.4
-	 * 
-	 */
-	public static interface IExecuteCallback {
-		
-		/**
-		 * Fires a <code>NotEnabledException</code> because the action was not
-		 * enabled.
-		 * 
-		 * @param action
-		 * 			The action contribution that caused the exception,
-		 * 			never <code>null</code>.
-		 * @param exception
-		 * 			The <code>NotEnabledException</code>, never <code>null</code>.
-		 */
-		public void notEnabled(IAction action, NotEnabledException exception);
-
-		/**
-		 * Fires a <code>NotDefinedException</code> because the action was not
-		 * defined.
-		 * 
-		 * @param action
-		 * 			The action contribution that caused the exception,
-		 * 			never <code>null</code>.
-		 * @param exception
-		 * 			The <code>NotDefinedException</code>, never <code>null</code>.
-		 */
-		public void notDefined(IAction action, NotDefinedException exception);
-		
-		/**
-		 * Fires an execution event before an action is run.
-		 * 
-		 * @param action
-		 *            The action contribution that requires an
-		 *            execution event to be fired. Cannot be <code>null</code>.
-		 * @param e
-		 *            The SWT Event, may be <code>null</code>.
-		 * 
-		 */
-		public void preExecute(IAction action,
-				Event e);
-		
-		/**
-		 * Fires an execution event when the action returned a success.
-		 * 
-		 * @param action
-		 *            The action contribution that requires an
-		 *            execution event to be fired. Cannot be <code>null</code>.
-		 * @param returnValue
-		 *            The command's result, may be <code>null</code>.
-		 * 
-		 */
-		public void postExecuteSuccess(IAction action,
-				Object returnValue);
-		
-		/**
-		 * Creates an <code>ExecutionException</code> when the action returned
-		 * a failure.
-		 * 
-		 * @param action
-		 * 			The action contribution that caused the exception,
-		 * 			never <code>null</code>.
-		 * @param exception
-		 * 			The <code>ExecutionException</code>, never <code>null</code>.
-		 */
-		public void postExecuteFailure(IAction action,
-				ExecutionException exception);
-	}
-
-	/**
-	 * A callback mechanism for some external tool to communicate extra
-	 * information to actions and action contribution items.
-	 * 
-	 * @since 3.0
-	 */
-	public static interface ICallback {
-
-		/**
-		 * <p>
-		 * Adds a listener to the object referenced by <code>identifier</code>.
-		 * This listener will be notified if a property of the item is to be
-		 * changed. This identifier is specific to mechanism being used. In the
-		 * case of the Eclipse workbench, this is the command identifier.
-		 * </p>
-		 * <p>
-		 * Has no effect if an identical listener has already been added for
-		 * the <code>identifier</code>.
-		 * </p>
-		 * 
-		 * @param identifier
-		 *            The identifier of the item to which the listener should be
-		 *            attached; must not be <code>null</code>.
-		 * @param listener
-		 *            The listener to be added; must not be <code>null</code>.
-		 */
-		public void addPropertyChangeListener(String identifier,
-				IPropertyChangeListener listener);
-
-		/**
-		 * An accessor for the accelerator associated with the item indicated by
-		 * the identifier. This identifier is specific to mechanism being used.
-		 * In the case of the Eclipse workbench, this is the command identifier.
-		 * 
-		 * @param identifier
-		 *            The identifier of the item from which the accelerator
-		 *            should be obtained ; must not be <code>null</code>.
-		 * @return An integer representation of the accelerator. This is the
-		 *         same accelerator format used by SWT.
-		 */
-		public Integer getAccelerator(String identifier);
-
-		/**
-		 * An accessor for the accelerator text associated with the item
-		 * indicated by the identifier. This identifier is specific to mechanism
-		 * being used. In the case of the Eclipse workbench, this is the command
-		 * identifier.
-		 * 
-		 * @param identifier
-		 *            The identifier of the item from which the accelerator text
-		 *            should be obtained ; must not be <code>null</code>.
-		 * @return A string representation of the accelerator. This is the
-		 *         string representation that should be displayed to the user.
-		 */
-		public String getAcceleratorText(String identifier);
-
-		/**
-		 * Checks to see whether the given accelerator is being used by some
-		 * other mechanism (outside of the menus controlled by JFace). This is
-		 * used to keep JFace from trying to grab accelerators away from someone
-		 * else.
-		 * 
-		 * @param accelerator
-		 *            The accelerator to check -- in SWT's internal accelerator
-		 *            format.
-		 * @return <code>true</code> if the accelerator is already being used
-		 *         and shouldn't be used again; <code>false</code> otherwise.
-		 */
-		public boolean isAcceleratorInUse(int accelerator);
-
-		/**
-		 * Checks whether the item matching this identifier is active. This is
-		 * used to decide whether a contribution item with this identifier
-		 * should be made visible. An inactive item is not visible.
-		 * 
-		 * @param identifier
-		 *            The identifier of the item from which the active state
-		 *            should be retrieved; must not be <code>null</code>.
-		 * @return <code>true</code> if the item is active; <code>false</code>
-		 *         otherwise.
-		 */
-		public boolean isActive(String identifier);
-
-		/**
-		 * Removes a listener from the object referenced by
-		 * <code>identifier</code>. This identifier is specific to mechanism
-		 * being used. In the case of the Eclipse workbench, this is the command
-		 * identifier.
-		 * 
-		 * @param identifier
-		 *            The identifier of the item to from the listener should be
-		 *            removed; must not be <code>null</code>.
-		 * @param listener
-		 *            The listener to be removed; must not be <code>null</code>.
-		 */
-		public void removePropertyChangeListener(String identifier,
-				IPropertyChangeListener listener);
-
-	}
-
-	/**
-	 * The singleton instance of this class. This value may be <code>null</code>--
-	 * if it has not yet been initialized.
-	 */
-	private static ExternalActionManager instance;
-
-	/**
-	 * Retrieves the current singleton instance of this class.
-	 * 
-	 * @return The singleton instance; this value is never <code>null</code>.
-	 */
-	public static ExternalActionManager getInstance() {
-		if (instance == null) {
-			instance = new ExternalActionManager();
-		}
-
-		return instance;
-	}
-
-	/**
-	 * The callback mechanism to use to retrieve extra information.
-	 */
-	private ICallback callback;
-
-	/**
-	 * Constructs a new instance of <code>ExternalActionManager</code>.
-	 */
-	private ExternalActionManager() {
-		// This is a singleton class. Only this class should create an instance.
-	}
-
-	/**
-	 * An accessor for the current call back.
-	 * 
-	 * @return The current callback mechanism being used. This is the callback
-	 *         that should be queried for extra information about actions and
-	 *         action contribution items. This value may be <code>null</code>
-	 *         if there is no extra information.
-	 */
-	public ICallback getCallback() {
-		return callback;
-	}
-
-	/**
-	 * A mutator for the current call back
-	 * 
-	 * @param callbackToUse
-	 *            The new callback mechanism to use; this value may be
-	 *            <code>null</code> if the default is acceptable (i.e., no
-	 *            extra information will provided to actions).
-	 */
-	public void setCallback(ICallback callbackToUse) {
-		callback = callbackToUse;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.properties
deleted file mode 100644
index 6e9b96e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ExternalActionManager.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-
-undefinedCommand.WarningMessage = The command ("{0}") is undefined
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/GroupMarker.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/GroupMarker.java
deleted file mode 100644
index 6f86d22..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/GroupMarker.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-/**
- * A group marker is a special kind of contribution item denoting
- * the beginning of a group. These groups are used to structure
- * the list of items. Unlike regular contribution items and
- * separators, group markers have no visual representation.
- * The name of the group is synonymous with the contribution item id.
- * <p>
- * This class may be instantiated; it is not intended to be 
- * subclassed outside the framework.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class GroupMarker extends AbstractGroupMarker {
-    /**
-     * Create a new group marker with the given name.
-     * The group name must not be <code>null</code> or the empty string.
-     * The group name is also used as the item id.
-     * 
-     * @param groupName the name of the group
-     */
-    public GroupMarker(String groupName) {
-        super(groupName);
-    }
-
-    /**
-     * The <code>GroupMarker</code> implementation of this method
-     * returns <code>false</code> since group markers are always invisible.
-     */
-    public boolean isVisible() {
-        return false;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IAction.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IAction.java
deleted file mode 100644
index 91cbb21..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IAction.java
+++ /dev/null
@@ -1,525 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.core.commands.IHandlerAttributes;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * An action represents the non-UI side of a command which can be triggered
- * by the end user. Actions are typically associated with buttons, menu items,
- * and items in tool bars. The controls for a command are built by some container,
- * which furnished the context where these controls appear and configures 
- * them with data from properties declared by the action. When the end user
- * triggers the command via its control, the action's <code>run</code>
- * method is invoked to do the real work.
- * <p>
- * Actions support a predefined set of properties (and possibly others as well).
- * Clients of an action may register property change listeners so that they get 
- * notified whenever the value of a property changes.
- * </p>
- * <p>
- * Clients should subclass the abstract base class <code>Action</code> to define 
- * concrete actions rather than implementing <code>IAction</code> from scratch.
- * </p>
- * <p>
- * This interface exists only to define the API for actions.
- * It is not intended to be implemented by clients.
- * </p>
- * 
- * @see Action
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IAction {
-
-    /**
-     * Action style constant (value <code>0</code>) indicating action style 
-     * is not specified yet. By default, the action will assume a push button
-     * style. If <code>setChecked</code> is called, then the style will change
-     * to a check box, or if <code>setMenuCreator</code> is called, then the
-     * style will change to a drop down menu.
-     * 
-     * @since 2.1
-     */
-    public static int AS_UNSPECIFIED = 0x00;
-
-    /**
-     * Action style constant (value <code>1</code>) indicating action is 
-     * a simple push button.
-     */
-    public static int AS_PUSH_BUTTON = 0x01;
-
-    /**
-     * Action style constant (value <code>2</code>) indicating action is 
-     * a check box (or a toggle button).
-     */
-    public static int AS_CHECK_BOX = 0x02;
-
-    /**
-     * Action style constant (value <code>4</code>) indicating action is 
-     * a drop down menu.
-     */
-    public static int AS_DROP_DOWN_MENU = 0x04;
-
-    /**
-     * Action style constant (value <code>8</code>) indicating action is 
-     * a radio button.
-     * 
-     * @since 2.1
-     */
-    public static int AS_RADIO_BUTTON = 0x08;
-
-    /**
-     * Property name of an action's text (value <code>"text"</code>).
-     */
-    public static final String TEXT = "text"; //$NON-NLS-1$
-
-    /**
-     * Property name of an action's enabled state
-     * (value <code>"enabled"</code>).
-     */
-    public static final String ENABLED = "enabled"; //$NON-NLS-1$
-
-    /**
-     * Property name of an action's image (value <code>"image"</code>).
-     */
-    public static final String IMAGE = "image"; //$NON-NLS-1$
-
-    /**
-     * Property name of an action's tooltip text (value <code>"toolTipText"</code>).
-     */
-    public static final String TOOL_TIP_TEXT = "toolTipText"; //$NON-NLS-1$
-
-    /**
-     * Property name of an action's description (value <code>"description"</code>).
-     * Typically the description is shown as a (longer) help text in the status line.
-     */
-    public static final String DESCRIPTION = "description"; //$NON-NLS-1$
-
-    /**
-     * Property name of an action's checked status (value
-     * <code>"checked"</code>). Applicable when the style is
-     * <code>AS_CHECK_BOX</code> or <code>AS_RADIO_BUTTON</code>.
-     */
-    public static final String CHECKED = "checked"; //$NON-NLS-1$
-
-    /**
-     * Property name of an action's success/fail result
-     * (value <code>"result"</code>). The values are
-     * <code>Boolean.TRUE</code> if running the action succeeded and 
-     * <code>Boolean.FALSE</code> if running the action failed or did not
-     * complete.
-     * <p>
-     * Not all actions report whether they succeed or fail. This property
-     * is provided for use by actions that may be invoked by clients that can
-     * take advantage of this information when present (for example, actions
-     * used in cheat sheets). Clients should always assume that running the
-     * action succeeded in the absence of notification to the contrary. 
-     * </p>
-     * 
-     * @since 3.0
-     */
-    public static final String RESULT = "result"; //$NON-NLS-1$
-    
-    /**
-     * Property name of an action's handler. Some actions delegate some or all
-     * of their behaviour or state to another object. In this case, if the
-     * object to which behaviour has been delegated changes, then a property
-     * change event should be sent with this name.
-     * 
-     * This is used to support backward compatibility of actions within the
-     * commands framework.
-     * 
-     * @since 3.1
-     */
-	public static final String HANDLED = IHandlerAttributes.ATTRIBUTE_HANDLED;
-
-    /**
-     * Adds a property change listener to this action.
-     * Has no effect if an identical listener is already registered.
-     *
-     * @param listener a property change listener
-     */
-    public void addPropertyChangeListener(IPropertyChangeListener listener);
-
-    /**
-     * Returns the accelerator keycode for this action.
-     * The result is the bit-wise OR of zero or more modifier masks
-     * and a key, as explained in <code>MenuItem.getAccelerator</code>.
-     *
-     * @return the accelerator keycode
-     * @see org.eclipse.swt.widgets.MenuItem#getAccelerator()
-     */
-    public int getAccelerator();
-
-    /**
-     * Returns the action definition id of this action.
-     * 
-     * @return the action definition id of this action, or
-     * <code>null</code> if none
-     * @since 2.0
-     */
-    public String getActionDefinitionId();
-
-    /**
-     * Returns the action's description if it has one.
-     * Otherwise it returns <code>getToolTipText()</code>.
-     * 
-     * @return a description for the action; may be <code>null</code> 
-     */
-    public String getDescription();
-
-    /**
-     * Returns the disabled image for this action as an image descriptor.
-     * <p>
-     * This method is associated with the <code>IMAGE</code> property;
-     * property change events are reported when its value changes.
-     * </p>
-     *
-     * @return the image, or <code>null</code> if this action has no image
-     * @see #IMAGE
-     */
-    public ImageDescriptor getDisabledImageDescriptor();
-
-    /**
-     * Returns a help listener for this action. 
-     *
-     * @return a help listener for this action
-     */
-    public HelpListener getHelpListener();
-
-    /**
-     * Returns the hover image for this action as an image descriptor.
-     * <p>
-     * Hover images will be used on platforms that support changing the image
-     * when the user hovers over the item. This method is associated with 
-     * the <code>IMAGE</code> property;
-     * property change events are reported when its value changes.
-     * </p>
-     *
-     * @return the image, or <code>null</code> if this action has no image
-     * @see #IMAGE
-     */
-    public ImageDescriptor getHoverImageDescriptor();
-
-    /**
-     * Returns a unique identifier for this action, or <code>null</code> if it has
-     * none.
-     *
-     * @return the action id, or <code>null</code> if none
-     */
-    public String getId();
-
-    /**
-     * Returns the image for this action as an image descriptor.
-     * <p>
-     * This method is associated with the <code>IMAGE</code> property;
-     * property change events are reported when its value changes.
-     * </p>
-     *
-     * @return the image, or <code>null</code> if this action has no image
-     * @see #IMAGE
-     */
-    public ImageDescriptor getImageDescriptor();
-
-    /**
-     * Returns the menu creator for this action.
-     *
-     * @return the menu creator, or <code>null</code> if none
-     */
-    public IMenuCreator getMenuCreator();
-
-    /**
-     * Return this action's style.
-     *
-     * @return one of <code>AS_PUSH_BUTTON</code>, <code>AS_CHECK_BOX</code>,
-     * <code>AS_RADIO_BUTTON</code> and <code>AS_DROP_DOWN_MENU</code>.
-     */
-    public int getStyle();
-
-    /**
-     * Returns the text for this action.
-     * <p>
-     * This method is associated with the <code>TEXT</code> property;
-     * property change events are reported when its value changes.
-     * </p>
-     *
-     * @return the text, or <code>null</code> if none
-     * @see #TEXT
-     */
-    public String getText();
-
-    /**
-     * Returns the tool tip text for this action.
-     * <p>
-     * This method is associated with the <code>TOOL_TIP_TEXT</code> property;
-     * property change events are reported when its value changes.
-     * </p>
-     *
-     * @return the tool tip text, or <code>null</code> if none
-     * @see #TOOL_TIP_TEXT
-     */
-    public String getToolTipText();
-
-    /**
-     * Returns the checked status of this action. Applicable only if the style is
-     * <code>AS_CHECK_BOX</code> or <code>AS_RADIO_BUTTON</code>.
-     * <p>
-     * This method is associated with the <code>CHECKED</code> property;
-     * property change events are reported when its value changes.
-     * </p>
-     *
-     * @return the checked status
-     * @see #CHECKED
-     */
-    public boolean isChecked();
-
-    /**
-     * Returns whether this action is enabled.
-     * <p>
-     * This method is associated with the <code>ENABLED</code> property;
-     * property change events are reported when its value changes.
-     * </p>
-     *
-     * @return <code>true</code> if enabled, and
-     *   <code>false</code> if disabled
-     * @see #ENABLED
-     */
-    public boolean isEnabled();
-
-    /**
-	 * Returns whether this action is handled. In the default case, this is
-	 * always <code>true</code>. However, if the action delegates some of its
-	 * behaviour to some other object, then this method should answer whether
-	 * such an object is currently available.
-	 * 
-	 * @return <code>true</code> if all of the action's behaviour is
-	 *         available; <code>false</code> otherwise.
-	 * @since 3.1
-	 */
-	public boolean isHandled();
-
-    /**
-     * Removes the given listener from this action.
-     * Has no effect if an identical listener is not registered.
-     *
-     * @param listener a property change listener
-     */
-    public void removePropertyChangeListener(IPropertyChangeListener listener);
-
-    /**
-     * Runs this action.
-     * Each action implementation must define the steps needed to carry out this action.
-     * The default implementation of this method in <code>Action</code>
-     * does nothing.
-     */
-    public void run();
-
-    /**
-     * Runs this action, passing the triggering SWT event.
-     * As of 2.0, <code>ActionContributionItem</code> calls this method
-     * instead of <code>run()</code>.  
-     * The default implementation of this method in <code>Action</code>
-     * simply calls <code>run()</code> for backwards compatibility.
-     * 
-     * @param event the SWT event which triggered this action being run 
-     * @since 2.0
-     */
-    public void runWithEvent(Event event);
-
-    /**
-     * Sets the action definition id of this action.
-     * 
-     * @param id the action definition id
-     * @since 2.0
-     */
-    public void setActionDefinitionId(String id);
-
-    /**
-     * Sets the checked status of this action. Applicable for the styles
-     * <code>AS_CHECK_BOX</code> or <code>AS_RADIO_BUTTON</code>.
-     * <p>
-     * Fires a property change event for the <code>CHECKED</code> property
-     * if the checked status actually changes as a consequence.
-     * </p>
-     *
-     * @param checked the new checked status
-     * @see #CHECKED
-     */
-    public void setChecked(boolean checked);
-
-    /**
-     * Sets this action's description.
-     * Typically the description is shown as a (longer) help text in the status line.
-     * <p>
-     * Fires a property change event for the <code>DESCRIPTION</code> property
-     * if the description actually changes as a consequence.
-     * </p>
-     *
-     * @param text the description, or <code>null</code> to clear the description
-     * @see #DESCRIPTION
-     */
-    public void setDescription(String text);
-
-    /**
-     * Sets the disabled image for this action, as an image descriptor.
-     * <p>
-     * Disabled images will be used on platforms that support changing the image
-     * when the item is disabled.Fires a property change event for 
-     * the <code>IMAGE</code> property
-     * if the image actually changes as a consequence.
-     * </p>
-     *
-     * @param newImage the image, or <code>null</code> if this 
-     *   action should not have an image
-     * @see #IMAGE
-     */
-    public void setDisabledImageDescriptor(ImageDescriptor newImage);
-
-    /**
-     * Sets the enabled state of this action.
-     * <p>
-     * When an action is in the enabled state, the control associated with 
-     * it is active; triggering it will end up inkoking this action's 
-     * <code>run</code> method.
-     * </p>
-     * <p>
-     * Fires a property change event for the <code>ENABLED</code> property
-     * if the enabled state actually changes as a consequence.
-     * </p>
-     *
-     * @param enabled <code>true</code> to enable, and
-     *   <code>false</code> to disable
-     * @see #ENABLED
-     */
-    public void setEnabled(boolean enabled);
-
-    /**
-     * Sets a help listener for this action. 
-     *
-     * @param listener a help listener for this action
-     */
-    public void setHelpListener(HelpListener listener);
-
-    /**
-     * Sets the hover image for this action, as an image descriptor.
-     * <p>
-     * Hover images will be used on platforms that support changing the image
-     * when the user hovers over the item.Fires a property change event for 
-     * the <code>IMAGE</code> property
-     * if the image actually changes as a consequence.
-     * </p>
-     *
-     * @param newImage the image, or <code>null</code> if this 
-     *   action should not have an image
-     * @see #IMAGE
-     */
-    public void setHoverImageDescriptor(ImageDescriptor newImage);
-
-    /**
-     * Sets the unique identifier for this action. This is used to identify actions
-     * when added to a contribution manager.
-     * It should be set when the action is created.  It should not be modified once
-     * the action is part of an action contribution item.
-     *
-     * @param id the action id
-     *
-     * @see ActionContributionItem
-     * @see IContributionItem#getId
-     */
-    public void setId(String id);
-
-	/**
-	 * Sets the image for this action, as an image descriptor.
-	 * <p>
-	 * Fires a property change event for the <code>IMAGE</code> property if the
-	 * image actually changes as a consequence.
-	 * </p>
-	 * <p>
-	 * Note: This operation is a hint and is not supported in all contexts on
-	 * platforms that do not have this concept (for example, Windows NT).
-	 * Furthermore, some platforms (such as GTK), cannot display both a check
-	 * box and an image at the same time. Instead, they hide the image and
-	 * display the check box.
-	 * </p>
-	 * 
-	 * @param newImage
-	 *            the image, or <code>null</code> if this action should not have
-	 *            an image
-	 * @see #IMAGE
-	 */
-    public void setImageDescriptor(ImageDescriptor newImage);
-
-    /**
-     * Sets the menu creator for this action. Applicable for style
-     * <code>AS_DROP_DOWN_MENU</code>.
-     *
-     * @param creator the menu creator, or <code>null</code> if none
-     */
-    public void setMenuCreator(IMenuCreator creator);
-
-    /**
-     * Sets the text for this action.
-     * <p>
-     * An accelerator specification may follow the actual text, separated from it by
-     * an '@' or a '\t' character.  An accelerator specification consists of zero or more 
-     * modifier tokens followed by a key code token.  The tokens are separated by a '+' character.
-     * </p>
-     * <p>
-     * Fires a property change event for the <code>TEXT</code> property
-     * if the text actually changes as a consequence.
-     * </p>
-     *
-     * @param text the text, or <code>null</code> if none
-     * @see #TEXT
-     * @see Action#findModifier
-     * @see Action#findKeyCode
-     */
-    public void setText(String text);
-
-    /**
-     * Sets the tool tip text for this action.
-     * <p>
-     * Fires a property change event for the <code>TOOL_TIP_TEXT</code> property
-     * if the tool tip text actually changes as a consequence.
-     * </p>
-     *
-     * @param text the tool tip text, or <code>null</code> if none
-     * @see #TOOL_TIP_TEXT
-     */
-    public void setToolTipText(String text);
-
-    /**
-     * <p>
-     * Sets the accelerator keycode that this action maps to. This is a bitwise OR
-     * of zero or more SWT key modifier masks (i.e. SWT.CTRL or SWT.ALT) and a
-     * character code. For example, for Ctrl+Z, use <code>SWT.CTRL | 'Z'</code>.
-     * Use 0 for no accelerator.
-     * </p>
-     * <p>
-     * This method should no longer be used for actions in the Eclipse workbench.
-     * <code>IWorkbenchCommandSupport</code> and
-     * <code>IWorkbenchContextSupport</code> provide all the functionality
-     * required for key bindings. If you set an accelerator using this method, then
-     * it will not work in the workbench if it conflicts any existing key binding,
-     * or if there is a different key binding defined for this action's definition
-     * id. The definition id should be used instead -- referring to the command in
-     * the workbench from which the key binding should be retrieved.
-     * </p>
-     * 
-     * @param keycode
-     *            the keycode to be accepted.
-     */
-    public void setAccelerator(int keycode);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionItem.java
deleted file mode 100644
index d34ccc0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionItem.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.action;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * A contribution item represents a contribution to a shared UI resource such as a
- * menu or tool bar. More generally, contribution items are managed by a contribution
- * manager.
- * For instance, in a tool bar a contribution item is a tool bar button or a separator.
- * In a menu bar a contribution item is a menu, and in a menu a contribution item 
- * is a menu item or separator.
- * <p>
- * A contribution item can realize itself in different SWT widgets, using the different 
- * <code>fill</code> methods.  The same type of contribution item can be used with a 
- * <code>MenuBarManager</code>, <code>ToolBarManager</code>, <code>CoolBarManager</code>, 
- * </code>or a <code>StatusLineManager</code>.
- * </p>
- * <p>
- * This interface is internal to the framework; it should not be implemented outside
- * the framework.
- * </p>
- *
- * @see IContributionManager
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IContributionItem {
-
-    /**
-     * Disposes of this contribution item. Called by the parent
-     * contribution manager when the manager is being disposed.
-     * Clients should not call this method directly, unless they
-     * have removed this contribution item from the containing
-     * IContributionManager before the contribution lifecycle
-     * has ended.
-     * 
-     * @since 2.1
-     */
-    public void dispose();
-
-    /**
-     * Fills the given composite control with controls representing this 
-     * contribution item.  Used by <code>StatusLineManager</code>.
-     *
-     * @param parent the parent control
-     */
-    public void fill(Composite parent);
-
-    /**
-     * Fills the given menu with controls representing this contribution item.
-     * Used by <code>MenuManager</code>.
-     *
-     * @param parent the parent menu
-     * @param index the index where the controls are inserted,
-     *   or <code>-1</code> to insert at the end
-     */
-    public void fill(Menu parent, int index);
-
-    /**
-     * Fills the given tool bar with controls representing this contribution item.
-     * Used by <code>ToolBarManager</code>.
-     *
-     * @param parent the parent tool bar
-     * @param index the index where the controls are inserted,
-     *   or <code>-1</code> to insert at the end
-     */
-    public void fill(ToolBar parent, int index);
-
-    /**
-     * Fills the given cool bar with controls representing this contribution item.
-     * Used by <code>CoolBarManager</code>.
-     *
-     * @param parent the parent cool bar
-     * @param index the index where the controls are inserted,
-     *   or <code>-1</code> to insert at the end
-     * @since 3.0
-     */
-    public void fill(CoolBar parent, int index);
-
-    /**
-     * Returns the identifier of this contribution item.
-     * The id is used for retrieving an item from its manager.
-     *
-     * @return the contribution item identifier, or <code>null</code>
-     *   if none
-     */
-    public String getId();
-
-    /**
-     * Returns whether this contribution item is enabled.
-     * 
-     * @return <code>true</code> if this item is enabled
-     */
-    public boolean isEnabled();
-
-    /**
-     * Returns whether this contribution item is dirty. A dirty item will be
-     * recreated when the action bar is updated.
-     * 
-     * @return <code>true</code> if this item is dirty
-     */
-    public boolean isDirty();
-
-    /**
-     * Returns whether this contribution item is dynamic. A dynamic contribution
-     * item contributes items conditionally, dependent on some internal state.
-     *
-     * @return <code>true</code> if this item is dynamic, and
-     *  <code>false</code> for normal items
-     */
-    public boolean isDynamic();
-
-    /**
-     * Returns whether this contribution item is a group marker.
-     * This information is used when adding items to a group.
-     *
-     * @return <code>true</code> if this item is a group marker, and
-     *  <code>false</code> for normal items
-     *
-     * @see GroupMarker
-     * @see IContributionManager#appendToGroup(String, IContributionItem)
-     * @see IContributionManager#prependToGroup(String, IContributionItem)
-     */
-    public boolean isGroupMarker();
-
-    /**
-     * Returns whether this contribution item is a separator.
-     * This information is used to enable hiding of unnecessary separators.
-     *
-     * @return <code>true</code> if this item is a separator, and
-     *  <code>false</code> for normal items
-     * @see Separator
-     */
-    public boolean isSeparator();
-
-    /**
-     * Returns whether this contribution item is visibile within its manager.
-     *
-     * @return <code>true</code> if this item is visible, and
-     *  <code>false</code> otherwise
-     */
-    public boolean isVisible();
-
-    /**
-     * Saves any state information of the control(s) owned by this contribution item.
-     * The contribution manager calls this method before disposing of the controls.
-     * 
-     * @since 3.0
-     */
-    public void saveWidgetState();
-
-    /**
-     * Sets the parent manager of this item
-     * 
-     * @param parent the parent contribution manager
-     * @since 2.0
-     */
-    public void setParent(IContributionManager parent);
-
-    /**
-     * Sets whether this contribution item is visibile within its manager.
-     *
-     * @param visible <code>true</code> if this item should be visible, and
-     *  <code>false</code> otherwise
-     */
-    public void setVisible(boolean visible);
-
-    /**
-     * Updates any SWT controls cached by this contribution item with any
-     * changes which have been made to this contribution item since the last update.
-     * Called by contribution manager update methods.
-     */
-    public void update();
-
-    /**
-     * Updates any SWT controls cached by this contribution item with changes
-     * for the the given property. 
-     * 
-     * @param id the id of the changed property
-     * @since 2.0
-     */
-    public void update(String id);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManager.java
deleted file mode 100644
index e63cf89..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManager.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-/**
- * A contribution manager organizes contributions to such UI components
- * as menus, toolbars and status lines.
- * <p>
- * A contribution manager keeps track of a list of contribution
- * items. Each contribution item may has an optional identifier, which can be used
- * to retrieve items from a manager, and for positioning items relative to
- * each other. The list of contribution items can be subdivided into named groups 
- * using special contribution items that serve as group markers.
- * </p>
- * <p>
- * The <code>IContributionManager</code> interface provides general
- * protocol for adding, removing, and retrieving contribution items.
- * It also provides convenience methods that make it convenient
- * to contribute actions. This interface should be implemented
- * by all objects that wish to manage contributions.
- * </p>
- * <p>
- * There are several implementions of this interface in this package,
- * including ones for menus ({@link MenuManager <code>MenuManager</code>}),
- * tool bars ({@link ToolBarManager <code>ToolBarManager</code>}),
- * and status lines ({@link StatusLineManager <code>StatusLineManager</code>}).
- * </p>
- */
-public interface IContributionManager {
-    /**
-     * Adds an action as a contribution item to this manager.
-     * Equivalent to <code>add(new ActionContributionItem(action))</code>.
-     *
-     * @param action the action, this cannot be <code>null</code>
-     */
-    public void add(IAction action);
-
-    /**
-     * Adds a contribution item to this manager.
-     *
-     * @param item the contribution item, this cannot be <code>null</code>
-     */
-    public void add(IContributionItem item);
-
-    /**
-     * Adds a contribution item for the given action at the end of the group
-     * with the given name.
-     * Equivalent to
-     * <code>appendToGroup(groupName,new ActionContributionItem(action))</code>.
-     *
-     * @param groupName the name of the group
-     * @param action the action
-     * @exception IllegalArgumentException if there is no group with
-     *   the given name
-     */
-    public void appendToGroup(String groupName, IAction action);
-
-    /**
-     * Adds a contribution item to this manager at the end of the group
-     * with the given name.
-     *
-     * @param groupName the name of the group
-     * @param item the contribution item
-     * @exception IllegalArgumentException if there is no group with
-     *   the given name
-     */
-    public void appendToGroup(String groupName, IContributionItem item);
-
-    /**
-     * Finds the contribution item with the given id.
-     *
-     * @param id the contribution item id
-     * @return the contribution item, or <code>null</code> if
-     *   no item with the given id can be found
-     */
-    public IContributionItem find(String id);
-
-    /**
-     * Returns all contribution items known to this manager.
-     *
-     * @return a list of contribution items
-     */
-    public IContributionItem[] getItems();
-
-    /**
-     * Returns the overrides for the items of this manager.
-     * 
-     * @return the overrides for the items of this manager
-     * @since 2.0 
-     */
-    public IContributionManagerOverrides getOverrides();
-
-    /**
-     * Inserts a contribution item for the given action after the item 
-     * with the given id.
-     * Equivalent to
-     * <code>insertAfter(id,new ActionContributionItem(action))</code>.
-     *
-     * @param id the contribution item id
-     * @param action the action to insert
-     * @exception IllegalArgumentException if there is no item with
-     *   the given id
-     */
-    public void insertAfter(String id, IAction action);
-
-    /**
-     * Inserts a contribution item after the item with the given id.
-     *
-     * @param id the contribution item id
-     * @param item the contribution item to insert
-     * @exception IllegalArgumentException if there is no item with
-     *   the given id
-     */
-    public void insertAfter(String id, IContributionItem item);
-
-    /**
-     * Inserts a contribution item for the given action before the item 
-     * with the given id.
-     * Equivalent to
-     * <code>insertBefore(id,new ActionContributionItem(action))</code>.
-     *
-     * @param id the contribution item id
-     * @param action the action to insert
-     * @exception IllegalArgumentException if there is no item with
-     *   the given id
-     */
-    public void insertBefore(String id, IAction action);
-
-    /**
-     * Inserts a contribution item before the item with the given id.
-     *
-     * @param id the contribution item id
-     * @param item the contribution item to insert
-     * @exception IllegalArgumentException if there is no item with
-     *   the given id
-     */
-    public void insertBefore(String id, IContributionItem item);
-
-    /**
-     * Returns whether the list of contributions has recently changed and
-     * has yet to be reflected in the corresponding widgets.
-     *
-     * @return <code>true</code> if this manager is dirty, and <code>false</code>
-     *   if it is up-to-date
-     */
-    public boolean isDirty();
-
-    /**
-     * Returns whether this manager has any contribution items.
-     *
-     * @return <code>true</code> if there are no items, and
-     *   <code>false</code> otherwise
-     */
-    public boolean isEmpty();
-
-    /**
-     * Marks this contribution manager as dirty.
-     */
-    public void markDirty();
-
-    /**
-     * Adds a contribution item for the given action at the beginning of the 
-     * group with the given name.
-     * Equivalent to
-     * <code>prependToGroup(groupName,new ActionContributionItem(action))</code>.
-     *
-     * @param groupName the name of the group
-     * @param action the action
-     * @exception IllegalArgumentException if there is no group with
-     *   the given name
-     */
-    public void prependToGroup(String groupName, IAction action);
-
-    /**
-     * Adds a contribution item to this manager at the beginning of the 
-     * group with the given name.
-     *
-     * @param groupName the name of the group
-     * @param item the contribution item
-     * @exception IllegalArgumentException if there is no group with
-     *   the given name
-     */
-    public void prependToGroup(String groupName, IContributionItem item);
-
-    /**
-     * Removes and returns the contribution item with the given id from this manager.  
-     * Returns <code>null</code> if this manager has no contribution items
-     * with the given id.
-     *
-     * @param id the contribution item id
-     * @return the item that was found and removed, or <code>null</code> if none
-     */
-    public IContributionItem remove(String id);
-
-    /**
-     * Removes the given contribution item from the contribution items
-     * known to this manager.
-     *
-     * @param item the contribution item
-     * @return the <code>item</code> parameter if the item was removed,
-     *   and <code>null</code> if it was not found
-     */
-    public IContributionItem remove(IContributionItem item);
-
-    /**
-     * Removes all contribution items from this manager.
-     */
-    public void removeAll();
-
-    /**
-     * Updates this manager's underlying widget(s) with any changes which
-     * have been made to it or its items.  Normally changes to a contribution
-     * manager merely mark it as dirty, without updating the underlying widgets.
-     * This brings the underlying widgets up to date with any changes.
-     *
-     * @param force <code>true</code> means update even if not dirty,
-     *   and <code>false</code> for normal incremental updating
-     */
-    public void update(boolean force);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManagerOverrides.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManagerOverrides.java
deleted file mode 100644
index f41c041..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IContributionManagerOverrides.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-/**
- * This interface is used by instances of <code>IContributionItem</code>
- * to determine if the values for certain properties have been overriden
- * by their manager.
- * <p>
- * This interface is internal to the framework; it should not be implemented outside
- * the framework.
- * </p>
- * 
- * @since 2.0
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IContributionManagerOverrides {
-    /**
-     * Id for the enabled property. Value is <code>"enabled"</code>.
-     * 
-     * @since 2.0
-     */
-    public final static String P_ENABLED = "enabled"; //$NON-NLS-1$
-
-    /**
-     * Find out the enablement of the item
-     * @param item the contribution item for which the enable override value is 
-     * determined
-     * @return <ul>
-     * 				<li><code>Boolean.TRUE</code> if the given contribution item should be enabled</li>
-     * 				<li><code>Boolean.FALSE</code> if the item should be disabled</li>
-     * 				<li><code>null</code> if the item may determine its own enablement</li>
-     * 			</ul>
-     * @since 2.0 
-     */
-    public Boolean getEnabled(IContributionItem item);
-
-    /**
-     * This is not intended to be called outside of the workbench. This method
-     * is intended to be deprecated in 3.1.
-     * 
-     * TODO deprecate for 3.1 
-     * @param item the contribution item for which the accelerator value is determined
-     * @return the accelerator
-     */
-    public Integer getAccelerator(IContributionItem item);
-
-    /**
-     * This is not intended to be called outside of the workbench. This method
-     * is intended to be deprecated in 3.1.
-     * 
-     * TODO deprecate for 3.1
-     * @param item the contribution item for which the accelerator text is determined
-     * @return the text for the accelerator
-     */
-    public String getAcceleratorText(IContributionItem item);
-
-    /**
-     * This is not intended to be called outside of the workbench. This method
-     * is intended to be deprecated in 3.1.
-     * 
-     * TODO deprecate for 3.1
-     * @param item the contribution item for which the text is determined
-     * @return the text
-     */
-    public String getText(IContributionItem item);
-    
-    /**
-     * Visiblity override.
-     * 
-     * @param item the contribution item in question
-     * @return  <ul>
-     * 				<li><code>Boolean.TRUE</code> if the given contribution item should be visible</li>
-     * 				<li><code>Boolean.FALSE</code> if the item should not be visible</li>
-     * 				<li><code>null</code> if the item may determine its own visibility</li>
-     * 			</ul>
-     * @since 3.5
-     */
-    public Boolean getVisible(IContributionItem item);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ICoolBarManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ICoolBarManager.java
deleted file mode 100644
index 85173e7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ICoolBarManager.java
+++ /dev/null
@@ -1,103 +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.jface.action;
-
-import org.eclipse.swt.widgets.CoolBar;
-
-/**
- * The <code>ICoolBarManager</code> interface provides protocol for managing
- * contributions to a cool bar. A cool bar manager delegates responsibility for
- * creating child controls to its contribution items by calling
- * {@link IContributionItem#fill(CoolBar, int)}.
- * <p>
- * This interface is internal to the framework; it should not be implemented
- * outside the framework. This package provides a concrete cool bar manager
- * implementation, {@link CoolBarManager}, which
- * clients may instantiate or subclass.
- * </p>
- * 
- * @see ToolBarContributionItem
- * @since 3.0
- */
-public interface ICoolBarManager extends IContributionManager {
-
-    /**
-     * Property name of a cool item's size (value <code>"size"</code>).
-     * <p>
-     * The cool bar manager uses this property to tell its cool items to update
-     * their size.
-     * </p>
-     * 
-     * @see IContributionItem#update(String) @issue consider declaring this
-     *      constant elsewhere
-     */
-    public static final String SIZE = "size"; //$NON-NLS-1$
-
-    /**
-     * A convenience method to add a tool bar as a contribution item to this
-     * cool bar manager. Equivalent to <code>add(new ToolBarContributionManager(toolBarManager))</code>.
-     * 
-     * @param toolBarManager
-     *            the tool bar manager to be added
-     * @see ToolBarContributionItem
-     */
-    public void add(IToolBarManager toolBarManager);
-
-    /**
-     * Returns the context menu manager used by this cool bar manager. This
-     * context menu manager is used by the cool bar manager except for cool
-     * items that provide their own.
-     * 
-     * @return the context menu manager, or <code>null</code> if none
-     * @see #setContextMenuManager
-     */
-    public IMenuManager getContextMenuManager();
-
-    /**
-     * Returns whether the layout of the underlying cool bar widget is locked.
-     * 
-     * @return <code>true</code> if cool bar layout is locked, <code>false</code>
-     *         otherwise
-     */
-    public boolean getLockLayout();
-
-    /**
-     * Returns the style of the underlying cool bar widget.
-     * 
-     * @return the style of the cool bar
-     */
-    public int getStyle();
-
-    /**
-     * Sets the context menu of this cool bar manager to the given menu
-     * manager.
-     * 
-     * @param menuManager
-     *            the context menu manager, or <code>null</code> if none
-     * @see #getContextMenuManager
-     */
-    public void setContextMenuManager(IMenuManager menuManager);
-
-    /**
-     * Locks or unlocks the layout of the underlying cool bar widget. Once the
-     * cool bar is locked, cool items cannot be repositioned by the user.
-     * <p>
-     * Note that items can be added or removed programmatically even while the
-     * cool bar is locked.
-     * </p>
-     * 
-     * @param value
-     *            <code>true</code> to lock the cool bar, <code>false</code>
-     *            to unlock
-     */
-    public void setLockLayout(boolean value);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuCreator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuCreator.java
deleted file mode 100644
index a4fa76a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuCreator.java
+++ /dev/null
@@ -1,54 +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.jface.action;
-
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-
-/**
- * Interface for something that creates and disposes of SWT menus.  Note that
- * it is the responsibility of the implementor to dispose of SWT menus it
- * creates. 
- */
-public interface IMenuCreator {
-    /**
-     * Disposes the menu returned by <code>getMenu</code>. Does nothing
-     * if there is no menu.  This method will be executed only when the
-     * parent of the menu is disposed.  
-     */
-    public void dispose();
-
-    /**
-     * Returns the SWT menu, created as a pop up menu parented by the
-     * given control.  In most cases, this menu can be created once, cached and reused
-     * when the pop-up/drop-down action occurs.  If the menu must be dynamically
-     * created (i.e., each time it is popped up or dropped down), the old menu
-     * should be disposed of before replacing it with the new menu.
-     *
-     * @param parent the parent control
-     * @return the menu, or <code>null</code> if the menu could not
-     *  be created
-     */
-    public Menu getMenu(Control parent);
-
-    /**
-     * Returns an SWT menu created as a drop down menu parented by the
-     * given menu.  In most cases, this menu can be created once, cached and reused
-     * when the pop-up/drop-down action occurs.  If the menu must be dynamically
-     * created (i.e., each time it is popped up or dropped down), the old menu
-     * should be disposed of before replacing it with the new menu.
-     *
-     * @param parent the parent menu
-     * @return the menu, or <code>null</code> if the menu could not
-     *  be created
-     */
-    public Menu getMenu(Menu parent);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener.java
deleted file mode 100644
index 2ddec63..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener.java
+++ /dev/null
@@ -1,26 +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.jface.action;
-
-/**
- * A menu listener that gets informed when a menu is about to show.
- *
- * @see MenuManager#addMenuListener
- */
-public interface IMenuListener {
-    /**
-     * Notifies this listener that the menu is about to be shown by
-     * the given menu manager.
-     *
-     * @param manager the menu manager
-     */
-    public void menuAboutToShow(IMenuManager manager);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener2.java
deleted file mode 100644
index 4c57bcc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuListener2.java
+++ /dev/null
@@ -1,27 +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.jface.action;
-
-/**
- * A menu listener that gets informed when a menu is about to hide.
- *
- * @see MenuManager#addMenuListener
- * @since 3.2
- */
-public interface IMenuListener2 extends IMenuListener {
-    /**
-     * Notifies this listener that the menu is about to be hidden by
-     * the given menu manager.
-     *
-     * @param manager the menu manager
-     */
-    public void menuAboutToHide(IMenuManager manager);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuManager.java
deleted file mode 100644
index aaa2b8b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IMenuManager.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-/**
- * The <code>IMenuManager</code> interface provides protocol for managing
- * contributions to a menu bar and its sub menus.
- * An <code>IMenuManager</code> is also an <code>IContributionItem</code>,
- * allowing sub-menus to be nested in parent menus.
- * <p>
- * This interface is internal to the framework; it should not be implemented outside
- * the framework.
- * </p>
- * <p>
- * This package provides a concrete menu manager implementation,
- * {@link MenuManager <code>MenuManager</code>}.
- * </p>
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IMenuManager extends IContributionManager, IContributionItem {
-    /**
-     * Adds a menu listener to this menu.
-     * Has no effect if an identical listener is already registered.
-     *
-     * @param listener a menu listener
-     */
-    public void addMenuListener(IMenuListener listener);
-
-    /**
-     * Finds the manager for the menu at the given path. A path
-     * consists of contribution item ids separated by the separator 
-     * character.  The path separator character is <code>'/'</code>.
-     * <p>
-     * Convenience for <code>findUsingPath(path)</code> which
-     * extracts an <code>IMenuManager</code> if possible.
-     * </p>
-     *
-     * @param path the path string
-     * @return the menu contribution item, or <code>null</code>
-     *   if there is no such contribution item or if the item does
-     *   not have an associated menu manager
-     */
-    public IMenuManager findMenuUsingPath(String path);
-
-    /**
-     * Finds the contribution item at the given path. A path
-     * consists of contribution item ids separated by the separator 
-     * character. The path separator character is <code>'/'</code>.
-     *
-     * @param path the path string
-     * @return the contribution item, or <code>null</code> if there is no
-     *   such contribution item
-     */
-    public IContributionItem findUsingPath(String path);
-
-    /**
-	 * Returns whether all items should be removed when the menu is about to
-	 * show, but before notifying menu listeners. The default is
-	 * <code>false</code>.
-	 * 
-	 * @return <code>true</code> if all items should be removed when shown,
-	 *         <code>false</code> if not
-	 */
-    public boolean getRemoveAllWhenShown();
-
-    /**
-     * Returns whether this menu should be enabled or not.
-     *
-     * @return <code>true</code> if enabled, and
-     *   <code>false</code> if disabled
-     */
-    public boolean isEnabled();
-
-    /**
-     * Removes the given menu listener from this menu.
-     * Has no effect if an identical listener is not registered.
-     *
-     * @param listener the menu listener
-     */
-    public void removeMenuListener(IMenuListener listener);
-
-    /**
-	 * Sets whether all items should be removed when the menu is about to show,
-	 * but before notifying menu listeners.
-	 * 
-	 * @param removeAll
-	 *            <code>true</code> if all items should be removed when shown,
-	 *            <code>false</code> if not
-	 */
-    public void setRemoveAllWhenShown(boolean removeAll);
-
-    /**
-     * Incrementally builds the menu from the contribution items, and
-     * does so recursively for all submenus.
-     *
-     * @param force <code>true</code> means update even if not dirty,
-     *   and <code>false</code> for normal incremental updating
-     */
-    public void updateAll(boolean force);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IStatusLineManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IStatusLineManager.java
deleted file mode 100644
index 655fc00..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IStatusLineManager.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The <code>IStatusLineManager</code> interface provides protocol
- * for displaying messages on a status line, for monitoring progress,
- * and for managing contributions to the status line.
- * <p>
- * <b>Note:</b> An error message overrides the current message until
- * the error message is cleared.
- * </p><p>
- * This package also provides a concrete status line manager implementation,
- * {@link StatusLineManager <code>StatusLineManager</code>}.
- * </p>
- */
-public interface IStatusLineManager extends IContributionManager {
-	/**
-	 * Returns a progress monitor which reports progress in the status line.
-	 * Note that the returned progress monitor may only be accessed from the UI
-	 * thread.
-	 * 
-	 * @return the progress monitor
-	 * 
-	 *         Note: There is a delay after a beginTask message before the
-	 *         monitor is shown. This may not be appropriate for all apps.
-	 */
-    public IProgressMonitor getProgressMonitor();
-
-    /**
-     * Returns whether the cancel button on the status line's progress monitor
-     * is enabled.
-     *
-     * @return <code>true</code> if the cancel button is enabled, or <code>false</code> if not
-     */
-    public boolean isCancelEnabled();
-
-    /**
-     * Sets whether the cancel button on the status line's progress monitor
-     * is enabled.
-     *
-     * @param enabled <code>true</code> if the cancel button is enabled, or <code>false</code> if not
-     */
-    public void setCancelEnabled(boolean enabled);
-
-    /**
-     * Sets the error message text to be displayed on the status line.
-     * The image on the status line is cleared.
-     * <p>
-     * An error message overrides the current message until the error 
-     * message is cleared (set to <code>null</code>).
-     * </p>
-     *
-     * @param message the error message, or <code>null</code> to clear
-     * 		the current error message.
-     */
-    public void setErrorMessage(String message);
-
-    /**
-     * Sets the image and error message to be displayed on the status line.
-     * <p>
-     * An error message overrides the current message until the error 
-     * message is cleared (set to <code>null</code>).
-     * </p>
-     *
-     * @param image the image to use, or <code>null</code> for no image
-     * @param message the error message, or <code>null</code> to clear
-     * 		the current error message.
-     */
-    public void setErrorMessage(Image image, String message);
-
-    /**
-     * Sets the message text to be displayed on the status line.
-     * The image on the status line is cleared.
-     * <p>
-     * This method replaces the current message but does not affect the 
-     * error message. That is, the error message, if set, will continue
-     * to be displayed until it is cleared (set to <code>null</code>).
-     * </p>
-     *
-     * @param message the message, or <code>null</code> for no message
-     */
-    public void setMessage(String message);
-
-    /**
-     * Sets the image and message to be displayed on the status line.
-     * <p>
-     * This method replaces the current message but does not affect the 
-     * error message. That is, the error message, if set, will continue
-     * to be displayed until it is cleared (set to <code>null</code>).
-     * </p>
-     *
-     * @param image the image to use, or <code>null</code> for no image
-     * @param message the message, or <code>null</code> for no message
-     */
-    public void setMessage(Image image, String message);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IToolBarManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IToolBarManager.java
deleted file mode 100644
index f7711cf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/IToolBarManager.java
+++ /dev/null
@@ -1,24 +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.jface.action;
-
-/**
- * The <code>IToolBarManager</code> interface provides protocol for managing
- * contributions to a tool bar. It extends <code>IContributionManager</code>
- * but does not declare any new members; it exists only to increase the
- * readability of code using tool bars.
- * <p>
- * This package also provides a concrete tool bar manager implementation,
- * {@link ToolBarManager <code>ToolBarManager</code>}.
- * </p>
- */
-public interface IToolBarManager extends IContributionManager {
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/LegacyActionTools.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/LegacyActionTools.java
deleted file mode 100644
index 53ae441..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/LegacyActionTools.java
+++ /dev/null
@@ -1,738 +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.jface.action;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-
-/**
- * <p>
- * Some static utility methods for handling labels on actions. This includes
- * mnemonics and accelerators.
- * </p>
- * <p>
- * Clients may neither instantiate this class nor extend.
- * </p>
- * 
- * @since 3.2
- */
-public final class LegacyActionTools {
-
-	/**
-	 * Table of key codes (key type: <code>String</code>, value type:
-	 * <code>Integer</code>); <code>null</code> if not yet initialized.
-	 * 
-	 * @see #findKeyCode
-	 */
-	private static Map keyCodes = null;
-
-	/**
-	 * Table of string representations of keys (key type: <code>Integer</code>,
-	 * value type: <code>String</code>); <code>null</code>> if not yet
-	 * initialized.
-	 * 
-	 * @see #findKeyString
-	 */
-	private static Map keyStrings = null;
-
-	/**
-	 * The localized uppercase version of ALT
-	 */
-	private static String localizedAlt;
-
-	/**
-	 * The localized uppercase version of COMMAND
-	 */
-	private static String localizedCommand;
-
-	/**
-	 * The localized uppercase version of CTRL
-	 */
-	private static String localizedCtrl;
-
-	/**
-	 * Table of key codes (key type: <code>String</code>, value type:
-	 * <code>Integer</code>); <code>null</code> if not yet initialized. The
-	 * key is the localalized name of the key as it appears in menus.
-	 * 
-	 * @see #findLocalizedKeyCode
-	 */
-	private static Map localizedKeyCodes = null;
-
-	/**
-	 * The localized uppercase version of SHIFT
-	 */
-	private static String localizedShift;
-
-	/**
-	 * The constant to use if there is no mnemonic for this location.
-	 */
-	public static final char MNEMONIC_NONE = 0;
-
-	/**
-	 * Converts an accelerator key code to a string representation.
-	 * 
-	 * @param keyCode
-	 *            the key code to be translated
-	 * @return a string representation of the key code
-	 */
-	public static final String convertAccelerator(final int keyCode) {
-		String modifier = getModifierString(keyCode);
-		String fullKey;
-		if (modifier.equals("")) { //$NON-NLS-1$
-			fullKey = findKeyString(keyCode);
-		} else {
-			fullKey = modifier + "+" + findKeyString(keyCode); //$NON-NLS-1$
-		}
-		return fullKey;
-	}
-
-	/**
-	 * Parses the given accelerator text, and converts it to an accelerator key
-	 * code.
-	 * 
-	 * @param acceleratorText
-	 *            the accelerator text
-	 * @return the SWT key code, or 0 if there is no accelerator
-	 */
-	public static final int convertAccelerator(final String acceleratorText) {
-		int accelerator = 0;
-		StringTokenizer stok = new StringTokenizer(acceleratorText, "+"); //$NON-NLS-1$
-
-		int keyCode = -1;
-
-		boolean hasMoreTokens = stok.hasMoreTokens();
-		while (hasMoreTokens) {
-			String token = stok.nextToken();
-			hasMoreTokens = stok.hasMoreTokens();
-			// Every token except the last must be one of the modifiers
-			// Ctrl, Shift, Alt, or Command
-			if (hasMoreTokens) {
-				int modifier = findModifier(token);
-				if (modifier != 0) {
-					accelerator |= modifier;
-				} else { // Leave if there are none
-					return 0;
-				}
-			} else {
-				keyCode = findKeyCode(token);
-			}
-		}
-		if (keyCode != -1) {
-			accelerator |= keyCode;
-		}
-		return accelerator;
-	}
-
-	/**
-	 * Parses the given accelerator text, and converts it to an accelerator key
-	 * code.
-	 * 
-	 * Support for localized modifiers is for backwards compatibility with 1.0.
-	 * Use setAccelerator(int) to set accelerators programatically or the
-	 * <code>accelerator</code> tag in action definitions in plugin.xml.
-	 * 
-	 * @param acceleratorText
-	 *            the accelerator text localized to the current locale
-	 * @return the SWT key code, or 0 if there is no accelerator
-	 */
-	static final int convertLocalizedAccelerator(final String acceleratorText) {
-		int accelerator = 0;
-		StringTokenizer stok = new StringTokenizer(acceleratorText, "+"); //$NON-NLS-1$
-
-		int keyCode = -1;
-
-		boolean hasMoreTokens = stok.hasMoreTokens();
-		while (hasMoreTokens) {
-			String token = stok.nextToken();
-			hasMoreTokens = stok.hasMoreTokens();
-			// Every token except the last must be one of the modifiers
-			// Ctrl, Shift, Alt, or Command
-			if (hasMoreTokens) {
-				int modifier = findLocalizedModifier(token);
-				if (modifier != 0) {
-					accelerator |= modifier;
-				} else { // Leave if there are none
-					return 0;
-				}
-			} else {
-				keyCode = findLocalizedKeyCode(token);
-			}
-		}
-		if (keyCode != -1) {
-			accelerator |= keyCode;
-		}
-		return accelerator;
-	}
-
-	/**
-	 * Extracts the accelerator text from the given text. Returns
-	 * <code>null</code> if there is no accelerator text, and the empty string
-	 * if there is no text after the accelerator delimeter (tab or '@').
-	 * 
-	 * @param text
-	 *            the text for the action; may be <code>null</code>.
-	 * @return the accelerator text, or <code>null</code>
-	 */
-	public static final String extractAcceleratorText(final String text) {
-		if (text == null) {
-			return null;
-		}
-
-		int index = text.lastIndexOf('\t');
-		if (index == -1) {
-			index = text.lastIndexOf('@');
-		}
-		if (index >= 0) {
-			return text.substring(index + 1);
-		}
-		return null;
-	}
-
-	/**
-	 * Extracts the mnemonic text from the given string.
-	 * 
-	 * @param text
-	 *            The text from which the mnemonic should be extracted; may be
-	 *            <code>null</code>
-	 * @return The text of the mnemonic; will be {@link #MNEMONIC_NONE} if there
-	 *         is no mnemonic;
-	 */
-	public static final char extractMnemonic(final String text) {
-		if (text == null) {
-			return MNEMONIC_NONE;
-		}
-
-		int index = text.indexOf('&');
-		if (index == -1) {
-			return MNEMONIC_NONE;
-		}
-
-		final int textLength = text.length();
-
-		// Ignore '&' at the end of the string.
-		if (index == textLength - 1) {
-			return MNEMONIC_NONE;
-		}
-
-		// Ignore two consecutive ampersands.
-		while (text.charAt(index + 1) == '&') {
-			index = text.indexOf('&', ++index);
-			if (index == textLength - 1) {
-				return MNEMONIC_NONE;
-			}
-		}
-
-		return text.charAt(index + 1);
-	}
-
-	/**
-	 * Maps a standard keyboard key name to an SWT key code. Key names are
-	 * converted to upper case before comparison. If the key name is a single
-	 * letter, for example "S", its character code is returned.
-	 * <p>
-	 * The following key names are known (case is ignored):
-	 * <ul>
-	 * <li><code>"BACKSPACE"</code></li>
-	 * <li><code>"TAB"</code></li>
-	 * <li><code>"RETURN"</code></li>
-	 * <li><code>"ENTER"</code></li>
-	 * <li><code>"ESC"</code></li>
-	 * <li><code>"ESCAPE"</code></li>
-	 * <li><code>"DELETE"</code></li>
-	 * <li><code>"SPACE"</code></li>
-	 * <li><code>"ARROW_UP"</code>, <code>"ARROW_DOWN"</code>,
-	 * <code>"ARROW_LEFT"</code>, and <code>"ARROW_RIGHT"</code></li>
-	 * <li><code>"PAGE_UP"</code> and <code>"PAGE_DOWN"</code></li>
-	 * <li><code>"HOME"</code></li>
-	 * <li><code>"END"</code></li>
-	 * <li><code>"INSERT"</code></li>
-	 * <li><code>"F1"</code>, <code>"F2"</code> through <code>"F12"</code></li>
-	 * </ul>
-	 * </p>
-	 * 
-	 * @param token
-	 *            the key name
-	 * @return the SWT key code, <code>-1</code> if no match was found
-	 * @see SWT
-	 */
-	public static final int findKeyCode(String token) {
-		if (keyCodes == null) {
-			initKeyCodes();
-		}
-		token = token.toUpperCase();
-		Integer i = (Integer) keyCodes.get(token);
-		if (i != null) {
-			return i.intValue();
-		}
-		if (token.length() == 1) {
-			return token.charAt(0);
-		}
-		return -1;
-	}
-
-	/**
-	 * Maps an SWT key code to a standard keyboard key name. The key code is
-	 * stripped of modifiers (SWT.CTRL, SWT.ALT, SWT.SHIFT, and SWT.COMMAND). If
-	 * the key code is not an SWT code (for example if it a key code for the key
-	 * 'S'), a string containing a character representation of the key code is
-	 * returned.
-	 * 
-	 * @param keyCode
-	 *            the key code to be translated
-	 * @return the string representation of the key code
-	 * @see SWT
-	 * @since 2.0
-	 */
-	public static final String findKeyString(final int keyCode) {
-		if (keyStrings == null) {
-			initKeyStrings();
-		}
-		int i = keyCode & ~(SWT.CTRL | SWT.ALT | SWT.SHIFT | SWT.COMMAND);
-		Integer integer = new Integer(i);
-		String result = (String) keyStrings.get(integer);
-		if (result != null) {
-			return result;
-		}
-		result = new String(new char[] { (char) i });
-		return result;
-	}
-
-	/**
-	 * Find the supplied code for a localized key. As #findKeyCode but localized
-	 * to the current locale.
-	 * 
-	 * Support for localized modifiers is for backwards compatibility with 1.0.
-	 * Use setAccelerator(int) to set accelerators programatically or the
-	 * <code>accelerator</code> tag in action definitions in plugin.xml.
-	 * 
-	 * @param token
-	 *            the localized key name
-	 * @return the SWT key code, <code>-1</code> if no match was found
-	 * @see #findKeyCode
-	 */
-	private static final int findLocalizedKeyCode(String token) {
-		if (localizedKeyCodes == null) {
-			initLocalizedKeyCodes();
-		}
-		token = token.toUpperCase();
-		Integer i = (Integer) localizedKeyCodes.get(token);
-		if (i != null) {
-			return i.intValue();
-		}
-		if (token.length() == 1) {
-			return token.charAt(0);
-		}
-		return -1;
-	}
-
-	/**
-	 * Maps the localized modifier names to a code in the same manner as
-	 * #findModifier.
-	 * 
-	 * Support for localized modifiers is for backwards compatibility with 1.0.
-	 * Use setAccelerator(int) to set accelerators programatically or the
-	 * <code>accelerator</code> tag in action definitions in plugin.xml.
-	 * 
-	 * @see #findModifier
-	 */
-	private static final int findLocalizedModifier(String token) {
-		if (localizedCtrl == null) {
-			initLocalizedModifiers();
-		}
-
-		token = token.toUpperCase();
-		if (token.equals(localizedCtrl)) {
-			return SWT.CTRL;
-		}
-		if (token.equals(localizedShift)) {
-			return SWT.SHIFT;
-		}
-		if (token.equals(localizedAlt)) {
-			return SWT.ALT;
-		}
-		if (token.equals(localizedCommand)) {
-			return SWT.COMMAND;
-		}
-		return 0;
-	}
-
-	/**
-	 * Maps standard keyboard modifier key names to the corresponding SWT
-	 * modifier bit. The following modifier key names are recognized (case is
-	 * ignored): <code>"CTRL"</code>, <code>"SHIFT"</code>,
-	 * <code>"ALT"</code>, and <code>"COMMAND"</code>. The given modifier
-	 * key name is converted to upper case before comparison.
-	 * 
-	 * @param token
-	 *            the modifier key name
-	 * @return the SWT modifier bit, or <code>0</code> if no match was found
-	 * @see SWT
-	 */
-	public static final int findModifier(String token) {
-		token = token.toUpperCase();
-		if (token.equals("CTRL")) { //$NON-NLS-1$
-			return SWT.CTRL;
-		}
-		if (token.equals("SHIFT")) { //$NON-NLS-1$
-			return SWT.SHIFT;
-		}
-		if (token.equals("ALT")) { //$NON-NLS-1$
-			return SWT.ALT;
-		}
-		if (token.equals("COMMAND")) { //$NON-NLS-1$
-			return SWT.COMMAND;
-		}
-		return 0;
-	}
-
-	/**
-	 * Returns a string representation of an SWT modifier bit (SWT.CTRL,
-	 * SWT.ALT, SWT.SHIFT, and SWT.COMMAND). Returns <code>null</code> if the
-	 * key code is not an SWT modifier bit.
-	 * 
-	 * @param keyCode
-	 *            the SWT modifier bit to be translated
-	 * @return the string representation of the SWT modifier bit, or
-	 *         <code>null</code> if the key code was not an SWT modifier bit
-	 * @see SWT
-	 */
-	public static final String findModifierString(final int keyCode) {
-		if (keyCode == SWT.CTRL) {
-			return JFaceResources.getString("Ctrl"); //$NON-NLS-1$
-		}
-		if (keyCode == SWT.ALT) {
-			return JFaceResources.getString("Alt"); //$NON-NLS-1$
-		}
-		if (keyCode == SWT.SHIFT) {
-			return JFaceResources.getString("Shift"); //$NON-NLS-1$
-		}
-		if (keyCode == SWT.COMMAND) {
-			return JFaceResources.getString("Command"); //$NON-NLS-1$		
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the string representation of the modifiers (Ctrl, Alt, Shift,
-	 * Command) of the key event.
-	 * 
-	 * @param keyCode
-	 *            The key code for which the modifier string is desired.
-	 * @return The string representation of the key code; never
-	 *         <code>null</code>.
-	 */
-	private static String getModifierString(int keyCode) {
-		String modString = ""; //$NON-NLS-1$
-
-		if ((keyCode & SWT.CTRL) != 0) {
-			modString = findModifierString(keyCode & SWT.CTRL);
-		}
-
-		if ((keyCode & SWT.ALT) != 0) {
-			if (modString.equals("")) { //$NON-NLS-1$
-				modString = findModifierString(keyCode & SWT.ALT);
-			} else {
-				modString = modString
-						+ "+" + findModifierString(keyCode & SWT.ALT); //$NON-NLS-1$
-			}
-		}
-
-		if ((keyCode & SWT.SHIFT) != 0) {
-			if (modString.equals("")) { //$NON-NLS-1$
-				modString = findModifierString(keyCode & SWT.SHIFT);
-			} else {
-				modString = modString
-						+ "+" + findModifierString(keyCode & SWT.SHIFT); //$NON-NLS-1$
-			}
-		}
-
-		if ((keyCode & SWT.COMMAND) != 0) {
-			if (modString.equals("")) { //$NON-NLS-1$
-				modString = findModifierString(keyCode & SWT.COMMAND);
-			} else {
-				modString = modString
-						+ "+" + findModifierString(keyCode & SWT.COMMAND); //$NON-NLS-1$
-			}
-		}
-
-		return modString;
-	}
-
-	/**
-	 * Initializes the internal key code table.
-	 */
-	private static final void initKeyCodes() {
-		keyCodes = new HashMap(40);
-
-		keyCodes.put("BACKSPACE", new Integer(8)); //$NON-NLS-1$
-		keyCodes.put("TAB", new Integer(9)); //$NON-NLS-1$
-		keyCodes.put("RETURN", new Integer(13)); //$NON-NLS-1$
-		keyCodes.put("ENTER", new Integer(13)); //$NON-NLS-1$
-		keyCodes.put("ESCAPE", new Integer(27)); //$NON-NLS-1$
-		keyCodes.put("ESC", new Integer(27)); //$NON-NLS-1$
-		keyCodes.put("DELETE", new Integer(127)); //$NON-NLS-1$
-
-		keyCodes.put("SPACE", new Integer(' ')); //$NON-NLS-1$
-		keyCodes.put("ARROW_UP", new Integer(SWT.ARROW_UP)); //$NON-NLS-1$
-		keyCodes.put("ARROW_DOWN", new Integer(SWT.ARROW_DOWN)); //$NON-NLS-1$
-		keyCodes.put("ARROW_LEFT", new Integer(SWT.ARROW_LEFT)); //$NON-NLS-1$
-		keyCodes.put("ARROW_RIGHT", new Integer(SWT.ARROW_RIGHT)); //$NON-NLS-1$
-		keyCodes.put("PAGE_UP", new Integer(SWT.PAGE_UP)); //$NON-NLS-1$
-		keyCodes.put("PAGE_DOWN", new Integer(SWT.PAGE_DOWN)); //$NON-NLS-1$
-		keyCodes.put("HOME", new Integer(SWT.HOME)); //$NON-NLS-1$
-		keyCodes.put("END", new Integer(SWT.END)); //$NON-NLS-1$
-		keyCodes.put("INSERT", new Integer(SWT.INSERT)); //$NON-NLS-1$
-		keyCodes.put("F1", new Integer(SWT.F1)); //$NON-NLS-1$
-		keyCodes.put("F2", new Integer(SWT.F2)); //$NON-NLS-1$
-		keyCodes.put("F3", new Integer(SWT.F3)); //$NON-NLS-1$
-		keyCodes.put("F4", new Integer(SWT.F4)); //$NON-NLS-1$
-		keyCodes.put("F5", new Integer(SWT.F5)); //$NON-NLS-1$
-		keyCodes.put("F6", new Integer(SWT.F6)); //$NON-NLS-1$
-		keyCodes.put("F7", new Integer(SWT.F7)); //$NON-NLS-1$
-		keyCodes.put("F8", new Integer(SWT.F8)); //$NON-NLS-1$
-		keyCodes.put("F9", new Integer(SWT.F9)); //$NON-NLS-1$
-		keyCodes.put("F10", new Integer(SWT.F10)); //$NON-NLS-1$
-		keyCodes.put("F11", new Integer(SWT.F11)); //$NON-NLS-1$
-		keyCodes.put("F12", new Integer(SWT.F12)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Initializes the internal key string table.
-	 */
-	private static void initKeyStrings() {
-		keyStrings = new HashMap(40);
-
-		keyStrings.put(new Integer(8), JFaceResources.getString("Backspace")); //$NON-NLS-1$
-		keyStrings.put(new Integer(9), JFaceResources.getString("Tab")); //$NON-NLS-1$
-		keyStrings.put(new Integer(13), JFaceResources.getString("Return")); //$NON-NLS-1$
-		keyStrings.put(new Integer(13), JFaceResources.getString("Enter")); //$NON-NLS-1$
-		keyStrings.put(new Integer(27), JFaceResources.getString("Escape")); //$NON-NLS-1$
-		keyStrings.put(new Integer(27), JFaceResources.getString("Esc")); //$NON-NLS-1$
-		keyStrings.put(new Integer(127), JFaceResources.getString("Delete")); //$NON-NLS-1$
-
-		keyStrings.put(new Integer(' '), JFaceResources.getString("Space")); //$NON-NLS-1$
-
-		keyStrings.put(new Integer(SWT.ARROW_UP), JFaceResources
-				.getString("Arrow_Up")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.ARROW_DOWN), JFaceResources
-				.getString("Arrow_Down")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.ARROW_LEFT), JFaceResources
-				.getString("Arrow_Left")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.ARROW_RIGHT), JFaceResources
-				.getString("Arrow_Right")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.PAGE_UP), JFaceResources
-				.getString("Page_Up")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.PAGE_DOWN), JFaceResources
-				.getString("Page_Down")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.HOME), JFaceResources.getString("Home")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.END), JFaceResources.getString("End")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.INSERT), JFaceResources
-				.getString("Insert")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F1), JFaceResources.getString("F1")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F2), JFaceResources.getString("F2")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F3), JFaceResources.getString("F3")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F4), JFaceResources.getString("F4")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F5), JFaceResources.getString("F5")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F6), JFaceResources.getString("F6")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F7), JFaceResources.getString("F7")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F8), JFaceResources.getString("F8")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F9), JFaceResources.getString("F9")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F10), JFaceResources.getString("F10")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F11), JFaceResources.getString("F11")); //$NON-NLS-1$
-		keyStrings.put(new Integer(SWT.F12), JFaceResources.getString("F12")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Initializes the localized internal key code table.
-	 */
-	private static void initLocalizedKeyCodes() {
-		localizedKeyCodes = new HashMap(40);
-
-		localizedKeyCodes.put(JFaceResources
-				.getString("Backspace").toUpperCase(), new Integer(8)); //$NON-NLS-1$
-		localizedKeyCodes.put(
-				JFaceResources.getString("Tab").toUpperCase(), new Integer(9)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Return").toUpperCase(), new Integer(13)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Enter").toUpperCase(), new Integer(13)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Escape").toUpperCase(), new Integer(27)); //$NON-NLS-1$
-		localizedKeyCodes.put(
-				JFaceResources.getString("Esc").toUpperCase(), new Integer(27)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Delete").toUpperCase(), new Integer(127)); //$NON-NLS-1$
-
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Space").toUpperCase(), new Integer(' ')); //$NON-NLS-1$
-
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Arrow_Up").toUpperCase(), new Integer(SWT.ARROW_UP)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Arrow_Down").toUpperCase(), new Integer(SWT.ARROW_DOWN)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Arrow_Left").toUpperCase(), new Integer(SWT.ARROW_LEFT)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Arrow_Right").toUpperCase(), new Integer(SWT.ARROW_RIGHT)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Page_Up").toUpperCase(), new Integer(SWT.PAGE_UP)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Page_Down").toUpperCase(), new Integer(SWT.PAGE_DOWN)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Home").toUpperCase(), new Integer(SWT.HOME)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("End").toUpperCase(), new Integer(SWT.END)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("Insert").toUpperCase(), new Integer(SWT.INSERT)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F1").toUpperCase(), new Integer(SWT.F1)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F2").toUpperCase(), new Integer(SWT.F2)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F3").toUpperCase(), new Integer(SWT.F3)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F4").toUpperCase(), new Integer(SWT.F4)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F5").toUpperCase(), new Integer(SWT.F5)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F6").toUpperCase(), new Integer(SWT.F6)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F7").toUpperCase(), new Integer(SWT.F7)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F8").toUpperCase(), new Integer(SWT.F8)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F9").toUpperCase(), new Integer(SWT.F9)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F10").toUpperCase(), new Integer(SWT.F10)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F11").toUpperCase(), new Integer(SWT.F11)); //$NON-NLS-1$
-		localizedKeyCodes
-				.put(
-						JFaceResources.getString("F12").toUpperCase(), new Integer(SWT.F12)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Initialize the list of localized modifiers
-	 */
-	private static void initLocalizedModifiers() {
-		localizedCtrl = JFaceResources.getString("Ctrl").toUpperCase(); //$NON-NLS-1$
-		localizedShift = JFaceResources.getString("Shift").toUpperCase(); //$NON-NLS-1$
-		localizedAlt = JFaceResources.getString("Alt").toUpperCase(); //$NON-NLS-1$
-		localizedCommand = JFaceResources.getString("Command").toUpperCase(); //$NON-NLS-1$	
-	}
-
-	/**
-	 * Convenience method for removing any optional accelerator text from the
-	 * given string. The accelerator text appears at the end of the text, and is
-	 * separated from the main part by a single tab character <code>'\t'</code>.
-	 * 
-	 * @param text
-	 *            the text
-	 * @return the text sans accelerator
-	 */
-	public static final String removeAcceleratorText(final String text) {
-		int index = text.lastIndexOf('\t');
-		if (index == -1) {
-			index = text.lastIndexOf('@');
-		}
-		if (index >= 0) {
-			return text.substring(0, index);
-		}
-		return text;
-	}
-
-	/**
-	 * Convenience method for removing any mnemonics from the given string. For
-	 * example, <code>removeMnemonics("&Open")</code> will return
-	 * <code>"Open"</code>.
-	 * 
-	 * @param text
-	 *            the text
-	 * @return the text sans mnemonics
-	 */
-	public static final String removeMnemonics(final String text) {
-		int index = text.indexOf('&');
-		if (index == -1) {
-			return text;
-		}
-		int len = text.length();
-		StringBuffer sb = new StringBuffer(len);
-		int lastIndex = 0;
-		while (index != -1) {
-			// ignore & at the end
-			if (index == len - 1) {
-				break;
-			}
-			// handle the && case
-			if (text.charAt(index + 1) == '&') {
-				++index;
-			}
-
-			// DBCS languages use "(&X)" format
-			if (index > 0 && text.charAt(index - 1) == '('
-					&& text.length() >= index + 3
-					&& text.charAt(index + 2) == ')') {
-				sb.append(text.substring(lastIndex, index - 1));
-				index += 3;
-			} else {
-				sb.append(text.substring(lastIndex, index));
-				// skip the &
-				++index;
-			}
-
-			lastIndex = index;
-			index = text.indexOf('&', index);
-		}
-		if (lastIndex < len) {
-			sb.append(text.substring(lastIndex, len));
-		}
-		return sb.toString();
-	}
-
-	/**
-	 * This class cannot be instantiated.
-	 */
-	private LegacyActionTools() {
-		// Does nothing
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/MenuManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/MenuManager.java
deleted file mode 100644
index 93463d7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/MenuManager.java
+++ /dev/null
@@ -1,987 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Remy Chi Jian Suen <remy.suen@gmail.com> - Bug 12116 [Contributions] widgets: MenuManager.setImageDescriptor() method needed
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.LocalResourceManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MenuAdapter;
-import org.eclipse.swt.events.MenuEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * A menu manager is a contribution manager which realizes itself and its items
- * in a menu control; either as a menu bar, a sub-menu, or a context menu.
- * <p>
- * This class may be instantiated; it may also be subclassed.
- * </p>
- */
-public class MenuManager extends ContributionManager implements IMenuManager {
-
-    /**
-     * The menu id.
-     */
-    private String id;
-
-    /**
-     * List of registered menu listeners (element type: <code>IMenuListener</code>).
-     */
-    private ListenerList listeners = new ListenerList();
-
-    /**
-     * The menu control; <code>null</code> before
-     * creation and after disposal.
-     */
-    private Menu menu = null;
-
-    /**
-     * The menu item widget; <code>null</code> before
-     * creation and after disposal. This field is used
-     * when this menu manager is a sub-menu.
-     */
-    private MenuItem menuItem;
-
-    /**
-     * The text for a sub-menu.
-     */
-    private String menuText;
-    
-    /**
-     * The image for a sub-menu.
-     */
-    private ImageDescriptor image;
-    
-    /**
-     * A resource manager to remember all of the images that have been used by this menu.
-     */
-    private LocalResourceManager imageManager;
-
-    /**
-     * The overrides for items of this manager
-     */
-    private IContributionManagerOverrides overrides;
-
-    /**
-     * The parent contribution manager.
-     */
-    private IContributionManager parent;
-
-    /**
-     * Indicates whether <code>removeAll</code> should be
-     * called just before the menu is displayed.
-     */
-    private boolean removeAllWhenShown = false;
-
-    /**
-     * Indicates this item is visible in its manager; <code>true</code> 
-     * by default.
-     * @since 3.3
-     */
-    protected boolean visible = true;
-
-	/**
-	 * allows a submenu to display a shortcut key. This is often used with the
-	 * QuickMenu command or action which can pop up a menu using the shortcut.
-	 */
-	private String definitionId = null;
-
-    /**
-     * Creates a menu manager.  The text and id are <code>null</code>.
-     * Typically used for creating a context menu, where it doesn't need to be referred to by id.
-     */
-    public MenuManager() {
-        this(null, null, null);
-    }
-
-    /**
-     * Creates a menu manager with the given text. The id of the menu
-     * is <code>null</code>.
-     * Typically used for creating a sub-menu, where it doesn't need to be referred to by id.
-     *
-     * @param text the text for the menu, or <code>null</code> if none
-     */
-    public MenuManager(String text) {
-        this(text, null, null);
-    }
-
-    /**
-     * Creates a menu manager with the given text and id.
-     * Typically used for creating a sub-menu, where it needs to be referred to by id.
-     *
-     * @param text the text for the menu, or <code>null</code> if none
-     * @param id the menu id, or <code>null</code> if it is to have no id
-     */
-    public MenuManager(String text, String id) {
-        this(text, null, id);
-    }
-
-    /**
-     * Creates a menu manager with the given text, image, and id.
-     * Typically used for creating a sub-menu, where it needs to be referred to by id.
-     * 
-     * @param text the text for the menu, or <code>null</code> if none
-     * @param image the image for the menu, or <code>null</code> if none
-     * @param id the menu id, or <code>null</code> if it is to have no id
-     * @since 3.4
-     */
-    public MenuManager(String text, ImageDescriptor image, String id) {
-        this.menuText = text;
-        this.image = image;
-        this.id = id;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#addMenuListener(org.eclipse.jface.action.IMenuListener)
-     */
-    public void addMenuListener(IMenuListener listener) {
-        listeners.add(listener);
-    }
-
-    /**
-     * Creates and returns an SWT context menu control for this menu,
-     * and installs all registered contributions.
-     * Does not create a new control if one already exists.
-     * <p>
-     * Note that the menu is not expected to be dynamic.
-     * </p>
-     *
-     * @param parent the parent control
-     * @return the menu control
-     */
-    public Menu createContextMenu(Control parent) {
-        if (!menuExist()) {
-            menu = new Menu(parent);
-            initializeMenu();
-        }
-        return menu;
-    }
-
-    /**
-     * Creates and returns an SWT menu bar control for this menu,
-     * for use in the given <code>Decorations</code>, and installs all registered
-     * contributions. Does not create a new control if one already exists.
-     *
-     * @param parent the parent decorations
-     * @return the menu control
-     * @since 2.1
-     */
-    public Menu createMenuBar(Decorations parent) {
-        if (!menuExist()) {
-            menu = new Menu(parent, SWT.BAR);
-            update(false);
-        }
-        return menu;
-    }
-
-    /**
-     * Creates and returns an SWT menu bar control for this menu, for use in the
-     * given <code>Shell</code>, and installs all registered contributions. Does not
-     * create a new control if one already exists. This implementation simply calls
-     * the <code>createMenuBar(Decorations)</code> method
-     *
-     * @param parent the parent decorations
-     * @return the menu control
-     * @deprecated use <code>createMenuBar(Decorations)</code> instead.
-     */
-    public Menu createMenuBar(Shell parent) {
-        return createMenuBar((Decorations) parent);
-    }
-
-    /**
-     * Disposes of this menu manager and frees all allocated SWT resources.
-     * Notifies all contribution items of the dispose. Note that this method does
-     * not clean up references between this menu manager and its associated
-     * contribution items. Use <code>removeAll</code> for that purpose.
-     */
-    public void dispose() {
-        if (menuExist()) {
-			menu.dispose();
-		}
-        menu = null;
-
-        if (menuItem != null) {
-            menuItem.dispose();
-            menuItem = null;
-        }
-
-        disposeOldImages();
-        
-        IContributionItem[] items = getItems();
-        for (int i = 0; i < items.length; i++) {
-            items[i].dispose();
-        }
-        
-        markDirty();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.Composite)
-     */
-    public void fill(Composite parent) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.CoolBar, int)
-     */
-    public void fill(CoolBar parent, int index) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
-     */
-    public void fill(Menu parent, int index) {
-        if (menuItem == null || menuItem.isDisposed()) {
-            if (index >= 0) {
-				menuItem = new MenuItem(parent, SWT.CASCADE, index);
-			} else {
-				menuItem = new MenuItem(parent, SWT.CASCADE);
-			}
-
-			String text = getMenuText();
-			if (text != null) {
-				menuItem.setText(text);
-			}
-
-            if (image != null) {
-				LocalResourceManager localManager = new LocalResourceManager(
-						JFaceResources.getResources());
-				menuItem.setImage(localManager.createImage(image));
-				disposeOldImages();
-				imageManager = localManager;
-			}
-
-            if (!menuExist()) {
-				menu = new Menu(parent);
-			}
-
-            menuItem.setMenu(menu);
-
-            initializeMenu();
-
-            setDirty(true);
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.ToolBar, int)
-     */
-    public void fill(ToolBar parent, int index) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#findMenuUsingPath(java.lang.String)
-     */
-    public IMenuManager findMenuUsingPath(String path) {
-        IContributionItem item = findUsingPath(path);
-        if (item instanceof IMenuManager) {
-			return (IMenuManager) item;
-		}
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#findUsingPath(java.lang.String)
-     */
-    public IContributionItem findUsingPath(String path) {
-        String id = path;
-        String rest = null;
-        int separator = path.indexOf('/');
-        if (separator != -1) {
-            id = path.substring(0, separator);
-            rest = path.substring(separator + 1);
-        } else {
-            return super.find(path);
-        }
-
-        IContributionItem item = super.find(id);
-        if (item instanceof IMenuManager) {
-            IMenuManager manager = (IMenuManager) item;
-            return manager.findUsingPath(rest);
-        }
-        return null;
-    }
-
-    /**
-     * Notifies any menu listeners that a menu is about to show.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param manager the menu manager
-     *
-     * @see IMenuListener#menuAboutToShow
-     */
-    private void fireAboutToShow(IMenuManager manager) {
-        Object[] listeners = this.listeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((IMenuListener) listeners[i]).menuAboutToShow(manager);
-        }
-    }
-
-    /**
-     * Notifies any menu listeners that a menu is about to hide.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param manager the menu manager
-     *
-     */
-    private void fireAboutToHide(IMenuManager manager) {
-        final Object[] listeners = this.listeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-        	final Object listener = listeners[i];
-			if (listener instanceof IMenuListener2) {
-				final IMenuListener2 listener2 = (IMenuListener2) listener;
-				listener2.menuAboutToHide(manager);
-			}
-        }
-    }
-
-    /**
-	 * Returns the menu id. The menu id is used when creating a contribution
-	 * item for adding this menu as a sub menu of another.
-	 * 
-	 * @return the menu id
-	 */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Returns the SWT menu control for this menu manager.
-     *
-     * @return the menu control
-     */
-    public Menu getMenu() {
-        return menu;
-    }
-
-    /**
-     * Returns the text shown in the menu, potentially with a shortcut
-     * appended.
-     *
-     * @return the menu text
-     */
-    public String getMenuText() {
-		if (definitionId == null) {
-			return menuText;
-		}
-		ExternalActionManager.ICallback callback = ExternalActionManager
-				.getInstance().getCallback();
-		if (callback != null) {
-			String shortCut = callback.getAcceleratorText(definitionId);
-			if (shortCut == null) {
-				return menuText;
-			}
-			return menuText + "\t" + shortCut; //$NON-NLS-1$
-		}
-		return menuText;
-	}
-    
-    /**
-	 * Returns the image for this menu as an image descriptor.
-	 * 
-	 * @return the image, or <code>null</code> if this menu has no image
-	 * @since 3.4
-	 */
-    public ImageDescriptor getImageDescriptor() {
-    	return image;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionManager#getOverrides()
-     */
-    public IContributionManagerOverrides getOverrides() {
-        if (overrides == null) {
-            if (parent == null) {
-                overrides = new IContributionManagerOverrides() {
-                    public Integer getAccelerator(IContributionItem item) {
-                        return null;
-                    }
-
-                    public String getAcceleratorText(IContributionItem item) {
-                        return null;
-                    }
-
-                    public Boolean getEnabled(IContributionItem item) {
-                        return null;
-                    }
-
-                    public String getText(IContributionItem item) {
-                        return null;
-                    }
-    				public Boolean getVisible(IContributionItem item) {
-    					return null;
-    				}
-                };
-            } else {
-                overrides = parent.getOverrides();
-            }
-            super.setOverrides(overrides);
-        }
-        return overrides;
-    }
-
-    /**
-     * Returns the parent contribution manager of this manger.
-     * 
-     * @return the parent contribution manager
-     * @since 2.0
-     */
-    public IContributionManager getParent() {
-        return parent;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#getRemoveAllWhenShown()
-     */
-    public boolean getRemoveAllWhenShown() {
-        return removeAllWhenShown;
-    }
-
-    /**
-     * Notifies all listeners that this menu is about to appear.
-     */
-    private void handleAboutToShow() {
-        if (removeAllWhenShown) {
-			removeAll();
-		}
-        fireAboutToShow(this);
-        update(false, false);
-    }
-
-    /**
-     * Notifies all listeners that this menu is about to disappear.
-     */
-    private void handleAboutToHide() {
-        fireAboutToHide(this);
-    }
-
-    /**
-     * Initializes the menu control.
-     */
-    private void initializeMenu() {
-        menu.addMenuListener(new MenuAdapter() {
-            public void menuHidden(MenuEvent e) {
-                //			ApplicationWindow.resetDescription(e.widget);
-            	handleAboutToHide();
-            }
-
-            public void menuShown(MenuEvent e) {
-                handleAboutToShow();
-            }
-        });
-        // Don't do an update(true) here, in case menu is never opened.
-        // Always do it lazily in handleAboutToShow().
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isDynamic()
-     */
-    public boolean isDynamic() {
-        return false;
-    }
-
-    /**
-     * Returns whether this menu should be enabled or not.
-     * Used to enable the menu item containing this menu when it is realized as a sub-menu.
-     * <p>
-     * The default implementation of this framework method
-     * returns <code>true</code>. Subclasses may reimplement.
-     * </p>
-     *
-     * @return <code>true</code> if enabled, and
-     *   <code>false</code> if disabled
-     */
-    public boolean isEnabled() {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isGroupMarker()
-     */
-    public boolean isGroupMarker() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isSeparator()
-     */
-    public boolean isSeparator() {
-        return false;
-    }
-
-    /**
-     * Check if the contribution is item is a subsitute for ourselves
-     * 
-     * @param item the contribution item
-     * @return <code>true</code> if give item is a substitution for ourselves 
-     * @deprecated this method is no longer a part of the 
-     *   {@link org.eclipse.jface.action.IContributionItem} API.
-     */
-    public boolean isSubstituteFor(IContributionItem item) {
-        return this.equals(item);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isVisible()
-     */
-    public boolean isVisible() {
-        if (!visible) {
-			return false; // short circuit calculations in this case
-		}
-
-        if (removeAllWhenShown) {
-        	// we have no way of knowing if the menu has children
-        	return true;
-        }
-        
-        // menus aren't visible if all of its children are invisible (or only contains visible separators).
-        IContributionItem[] childItems = getItems();
-        boolean visibleChildren = false;
-        for (int j = 0; j < childItems.length; j++) {
-            if (isChildVisible(childItems[j]) && !childItems[j].isSeparator()) {
-                visibleChildren = true;
-                break;
-            }
-        }
-
-        return visibleChildren;
-    }
-
-    
-    /**
-     * The <code>MenuManager</code> implementation of this <code>ContributionManager</code> method
-     * also propagates the dirty flag up the parent chain.
-     * 
-     * @since 3.1
-     */
-    public void markDirty() {
-        super.markDirty();
-        // Can't optimize by short-circuiting when the first dirty manager is encountered,
-        // since non-visible children are not even processed.
-        // That is, it's possible to have a dirty sub-menu under a non-dirty parent menu
-        // even after the parent menu has been updated. 
-        // If items are added/removed in the sub-menu, we still need to propagate the dirty flag up,
-        // even if the sub-menu is already dirty, since the result of isVisible() may change
-        // due to the added/removed items.
-        IContributionManager parent = getParent();
-        if (parent != null) {
-            parent.markDirty();
-        }
-    }
-    
-    /**
-     * Returns whether the menu control is created
-     * and not disposed.
-     * 
-     * @return <code>true</code> if the control is created
-     *	and not disposed, <code>false</code> otherwise
-	 * @since 3.4 protected, was added in 3.1 as private method
-     */
-    protected boolean menuExist() {
-        return menu != null && !menu.isDisposed();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#removeMenuListener(org.eclipse.jface.action.IMenuListener)
-     */
-    public void removeMenuListener(IMenuListener listener) {
-        listeners.remove(listener);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#saveWidgetState()
-     */
-    public void saveWidgetState() {
-    }
-
-    /**
-     * Sets the overrides for this contribution manager
-     * 
-     * @param newOverrides the overrides for the items of this manager
-     * @since 2.0
-     */
-    public void setOverrides(IContributionManagerOverrides newOverrides) {
-        overrides = newOverrides;
-        super.setOverrides(overrides);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#setParent(org.eclipse.jface.action.IContributionManager)
-     */
-    public void setParent(IContributionManager manager) {
-        parent = manager;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#setRemoveAllWhenShown(boolean)
-     */
-    public void setRemoveAllWhenShown(boolean removeAll) {
-        this.removeAllWhenShown = removeAll;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#setVisible(boolean)
-     */
-    public void setVisible(boolean visible) {
-        this.visible = visible;
-    }
-    
-    /**
-	 * Sets the action definition id of this action. This simply allows the menu
-	 * item text to include a short cut if available.  It can be used to
-	 * notify a user of a key combination that will open a quick menu.
-	 * 
-	 * @param definitionId
-	 *            the command definition id
-	 * @since 3.4
-	 */
-    public void setActionDefinitionId(String definitionId) {
-    	this.definitionId = definitionId; 
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#update()
-     */
-    public void update() {
-        updateMenuItem();
-    }
-
-    /**
-     * The <code>MenuManager</code> implementation of this <code>IContributionManager</code>
-     * updates this menu, but not any of its submenus.
-     *
-     * @see #updateAll
-     */
-    public void update(boolean force) {
-        update(force, false);
-    }
-
-    /**
-	 * Get all the items from the implementation's widget.
-	 * 
-	 * @return the menu items
-	 * @since 3.4
-	 */
-    protected Item[] getMenuItems() {
-    	if (menu != null) {
-    		return menu.getItems();
-    	}
-    	return null;
-    }
-
-    /**
-	 * Get an item from the implementation's widget.
-	 * 
-	 * @param index
-	 *            of the item
-	 * @return the menu item
-	 * @since 3.4
-	 */
-    protected Item getMenuItem(int index) {
-    	if (menu !=null) {
-    		return menu.getItem(index);
-    	}
-    	return null;
-    }
-
-    /**
-     * Get the menu item count for the implementation's widget.
-     * 
-     * @return the number of items
-     * @since 3.4
-     */
-    protected int getMenuItemCount() {
-    	if (menu != null) {
-    		return menu.getItemCount();
-    	}
-    	return 0;
-    }
-
-    /**
-	 * Call an <code>IContributionItem</code>'s fill method with the
-	 * implementation's widget. The default is to use the <code>Menu</code>
-	 * widget.<br>
-	 * <code>fill(Menu menu, int index)</code>
-	 * 
-	 * @param ci
-	 *            An <code>IContributionItem</code> whose <code>fill()</code>
-	 *            method should be called.
-	 * @param index
-	 *            The position the <code>fill()</code> method should start
-	 *            inserting at.
-	 * @since 3.4
-	 */
-    protected void doItemFill(IContributionItem ci, int index) {
-        ci.fill(menu, index);
-    }
-
-    /**
-     * Incrementally builds the menu from the contribution items.
-     * This method leaves out double separators and separators in the first 
-     * or last position.
-     *
-     * @param force <code>true</code> means update even if not dirty,
-     *   and <code>false</code> for normal incremental updating
-     * @param recursive <code>true</code> means recursively update 
-     *   all submenus, and <code>false</code> means just this menu
-     */
-    protected void update(boolean force, boolean recursive) {
-        if (isDirty() || force) {
-            if (menuExist()) {
-                // clean contains all active items without double separators
-                IContributionItem[] items = getItems();
-                List clean = new ArrayList(items.length);
-                IContributionItem separator = null;
-                for (int i = 0; i < items.length; ++i) {
-                    IContributionItem ci = items[i];
-                    if (!isChildVisible(ci)) {
-						continue;
-					}
-                    if (ci.isSeparator()) {
-                        // delay creation until necessary 
-                        // (handles both adjacent separators, and separator at end)
-                        separator = ci;
-                    } else {
-                        if (separator != null) {
-                            if (clean.size() > 0) {
-								clean.add(separator);
-							}
-                            separator = null;
-                        }
-                        clean.add(ci);
-                    }
-                }
-
-                // remove obsolete (removed or non active)
-                Item[] mi = getMenuItems();
-
-                for (int i = 0; i < mi.length; i++) {
-                    Object data = mi[i].getData();
-
-                    if (data == null || !clean.contains(data)) {
-                        mi[i].dispose();
-                    } else if (data instanceof IContributionItem
-                            && ((IContributionItem) data).isDynamic()
-                            && ((IContributionItem) data).isDirty()) {
-                        mi[i].dispose();
-                    }
-                }
-
-                // add new
-                mi = getMenuItems();
-                int srcIx = 0;
-                int destIx = 0;
-
-                for (Iterator e = clean.iterator(); e.hasNext();) {
-                    IContributionItem src = (IContributionItem) e.next();
-                    IContributionItem dest;
-
-                    // get corresponding item in SWT widget
-                    if (srcIx < mi.length) {
-						dest = (IContributionItem) mi[srcIx].getData();
-					} else {
-						dest = null;
-					}
-
-                    if (dest != null && src.equals(dest)) {
-                        srcIx++;
-                        destIx++;
-                    } else if (dest != null && dest.isSeparator()
-                            && src.isSeparator()) {
-                        mi[srcIx].setData(src);
-                        srcIx++;
-                        destIx++;
-                    } else {
-                        int start = getMenuItemCount();
-                        doItemFill(src, destIx);
-                        int newItems = getMenuItemCount() - start;
-                        for (int i = 0; i < newItems; i++) {
-                            Item item = getMenuItem(destIx++);
-                            item.setData(src);
-                        }
-                    }
-
-                    // May be we can optimize this call. If the menu has just
-                    // been created via the call src.fill(fMenuBar, destIx) then
-                    // the menu has already been updated with update(true) 
-                    // (see MenuManager). So if force is true we do it again. But
-                    // we can't set force to false since then information for the
-                    // sub sub menus is lost.
-                    if (recursive) {
-                        IContributionItem item = src;
-                        if (item instanceof SubContributionItem) {
-							item = ((SubContributionItem) item).getInnerItem();
-						}
-                        if (item instanceof IMenuManager) {
-							((IMenuManager) item).updateAll(force);
-						}
-                    }
-
-                }
-
-                // remove any old menu items not accounted for
-                for (; srcIx < mi.length; srcIx++) {
-					mi[srcIx].dispose();
-				}
-
-                setDirty(false);
-            }
-        } else {
-            // I am not dirty. Check if I must recursivly walk down the hierarchy.
-            if (recursive) {
-                IContributionItem[] items = getItems();
-                for (int i = 0; i < items.length; ++i) {
-                    IContributionItem ci = items[i];
-                    if (ci instanceof IMenuManager) {
-                        IMenuManager mm = (IMenuManager) ci;
-                        if (isChildVisible(mm)) {
-                            mm.updateAll(force);
-                        }
-                    }
-                }
-            }
-        }
-        updateMenuItem();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#update(java.lang.String)
-     */
-    public void update(String property) {
-        IContributionItem items[] = getItems();
-
-        for (int i = 0; i < items.length; i++) {
-			items[i].update(property);
-		}
-        
-        if (menu != null && !menu.isDisposed() && menu.getParentItem() != null) {
-        	if (IAction.TEXT.equals(property)) {
-                String text = getOverrides().getText(this);
-
-                if (text == null) {
-    				text = getMenuText();
-    			}
-
-                if (text != null) {
-                    ExternalActionManager.ICallback callback = ExternalActionManager
-                            .getInstance().getCallback();
-
-                    if (callback != null) {
-                        int index = text.indexOf('&');
-
-                        if (index >= 0 && index < text.length() - 1) {
-                            char character = Character.toUpperCase(text
-                                    .charAt(index + 1));
-
-                            if (callback.isAcceleratorInUse(SWT.ALT | character)) {
-                                if (index == 0) {
-    								text = text.substring(1);
-    							} else {
-    								text = text.substring(0, index)
-                                            + text.substring(index + 1);
-    							}
-                            }
-                        }
-                    }
-
-                    menu.getParentItem().setText(text);
-                }
-        	} else if (IAction.IMAGE.equals(property) && image != null) {
-    			LocalResourceManager localManager = new LocalResourceManager(JFaceResources
-    					.getResources());
-    			menu.getParentItem().setImage(localManager.createImage(image));
-    			disposeOldImages();
-    			imageManager = localManager;
-        	}
-        }
-    }
-
-	/**
-	 * Dispose any images allocated for this menu
-	 */
-	private void disposeOldImages() {
-		if (imageManager != null) {
-			imageManager.dispose();
-			imageManager = null;
-		}
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#updateAll(boolean)
-     */
-    public void updateAll(boolean force) {
-        update(force, true);
-    }
-
-    /**
-     * Updates the menu item for this sub menu.
-     * The menu item is disabled if this sub menu is empty.
-     * Does nothing if this menu is not a submenu.
-     */
-    private void updateMenuItem() {
-        /*
-         * Commented out until proper solution to enablement of
-         * menu item for a sub-menu is found. See bug 30833 for
-         * more details.
-         *  
-         if (menuItem != null && !menuItem.isDisposed() && menuExist()) {
-         IContributionItem items[] = getItems();
-         boolean enabled = false;
-         for (int i = 0; i < items.length; i++) {
-         IContributionItem item = items[i];
-         enabled = item.isEnabled();
-         if(enabled) break;
-         }
-         // Workaround for 1GDDCN2: SWT:Linux - MenuItem.setEnabled() always causes a redraw
-         if (menuItem.getEnabled() != enabled)
-         menuItem.setEnabled(enabled);
-         }
-         */
-        // Partial fix for bug #34969 - diable the menu item if no
-        // items in sub-menu (for context menus).
-        if (menuItem != null && !menuItem.isDisposed() && menuExist()) {
-            boolean enabled = removeAllWhenShown || menu.getItemCount() > 0;
-            // Workaround for 1GDDCN2: SWT:Linux - MenuItem.setEnabled() always causes a redraw
-            if (menuItem.getEnabled() != enabled) {
-                // We only do this for context menus (for bug #34969)
-                Menu topMenu = menu;
-                while (topMenu.getParentMenu() != null) {
-					topMenu = topMenu.getParentMenu();
-				}
-                if ((topMenu.getStyle() & SWT.BAR) == 0) {
-					menuItem.setEnabled(enabled);
-				}
-            }
-        }
-    }
-    
-	private boolean isChildVisible(IContributionItem item) {
-		Boolean v = getOverrides().getVisible(item);
-		if (v != null) {
-			return v.booleanValue();
-		}
-		return item.isVisible();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Separator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Separator.java
deleted file mode 100644
index 5f120ee..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/Separator.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * A separator is a special kind of contribution item which acts
- * as a visual separator and, optionally, acts as a group marker.
- * Unlike group markers, separators do have a visual representation for
- * menus and toolbars.
- * <p>
- * This class may be instantiated; it is not intended to be 
- * subclassed outside the framework.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class Separator extends AbstractGroupMarker {
-    /**
-     * Creates a separator which does not start a new group.
-     */
-    public Separator() {
-        super();
-    }
-
-    /**
-     * Creates a new separator which also defines a new group having the given group name.
-     * The group name must not be <code>null</code> or the empty string.
-     * The group name is also used as the item id.
-     * 
-     * @param groupName the group name of the separator
-     */
-    public Separator(String groupName) {
-        super(groupName);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     * Fills the given menu with a SWT separator MenuItem.
-     */
-    public void fill(Menu menu, int index) {
-        if (index >= 0) {
-			new MenuItem(menu, SWT.SEPARATOR, index);
-		} else {
-			new MenuItem(menu, SWT.SEPARATOR);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     * Fills the given tool bar with a SWT separator ToolItem.
-     */
-    public void fill(ToolBar toolbar, int index) {
-        if (index >= 0) {
-			new ToolItem(toolbar, SWT.SEPARATOR, index);
-		} else {
-			new ToolItem(toolbar, SWT.SEPARATOR);
-		}
-    }
-
-    /** 
-     * The <code>Separator</code> implementation of this <code>IContributionItem</code> 
-     * method returns <code>true</code>
-     */
-    public boolean isSeparator() {
-        return true;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java
deleted file mode 100644
index bb2dbe2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLine.java
+++ /dev/null
@@ -1,679 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.action;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ProgressIndicator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Font;
-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.Layout;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * A StatusLine control is a SWT Composite with a horizontal layout which hosts
- * a number of status indication controls. Typically it is situated below the
- * content area of the window.
- * <p>
- * By default a StatusLine has two predefined status controls: a MessageLine and
- * a ProgressIndicator and it provides API for easy access.
- * </p>
- * <p>
- * This is an internal class, not intended to be used outside the JFace
- * framework.
- * </p>
- */
-/* package */class StatusLine extends Composite implements IProgressMonitor {
-
-	/** Horizontal gaps between items. */
-	public static final int GAP = 3;
-
-	/** Progress bar creation is delayed by this ms */
-	public static final int DELAY_PROGRESS = 500;
-
-	/** visibility state of the progressbar */
-	protected boolean fProgressIsVisible = false;
-
-	/** visibility state of the cancle button */
-	protected boolean fCancelButtonIsVisible = false;
-
-	/** enablement state of the cancle button */
-	protected boolean fCancelEnabled = false;
-
-	/** name of the task */
-	protected String fTaskName;
-
-	/** is the task is cancled */
-	protected boolean fIsCanceled;
-
-	/** the start time of the task */
-	protected long fStartTime;
-
-	private Cursor fStopButtonCursor;
-
-	/** the message text */
-	protected String fMessageText;
-
-	/** the message image */
-	protected Image fMessageImage;
-
-	/** the error text */
-	protected String fErrorText;
-
-	/** the error image */
-	protected Image fErrorImage;
-
-	/** the message label */
-	protected CLabel fMessageLabel;
-
-	/** the composite parent of the progress bar */
-	protected Composite fProgressBarComposite;
-
-	/** the progress bar */
-	protected ProgressIndicator fProgressBar;
-
-	/** the toolbar */
-	protected ToolBar fToolBar;
-
-	/** the cancle button */
-	protected ToolItem fCancelButton;
-
-	/** stop image descriptor */
-	protected static ImageDescriptor fgStopImage = ImageDescriptor
-			.createFromFile(StatusLine.class, "images/stop.gif");//$NON-NLS-1$
-	static {
-		JFaceResources.getImageRegistry().put(
-				"org.eclipse.jface.parts.StatusLine.stopImage", fgStopImage);//$NON-NLS-1$
-	}
-
-	/**
-	 * Layout the contribution item controls on the status line.
-	 */
-	public class StatusLineLayout extends Layout {
-		private final StatusLineLayoutData DEFAULT_DATA = new StatusLineLayoutData();
-
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean changed) {
-
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-
-			Control[] children = composite.getChildren();
-			int totalWidth = 0;
-			int maxHeight = 0;
-			int totalCnt = 0;
-			for (int i = 0; i < children.length; i++) {
-				boolean useWidth = true;
-				Control w = children[i];
-				if (w == fProgressBarComposite && !fProgressIsVisible) {
-					useWidth = false;
-				} else if (w == fToolBar && !fCancelButtonIsVisible) {
-					useWidth = false;
-				}
-				StatusLineLayoutData data = (StatusLineLayoutData) w
-						.getLayoutData();
-				if (data == null) {
-					data = DEFAULT_DATA;
-				}
-				Point e = w.computeSize(data.widthHint, data.heightHint,
-						changed);
-				if (useWidth) {
-					totalWidth += e.x;
-					totalCnt++;
-				}
-				maxHeight = Math.max(maxHeight, e.y);
-			}
-			if (totalCnt > 0) {
-				totalWidth += (totalCnt - 1) * GAP;
-			}
-			if (totalWidth <= 0) {
-				totalWidth = maxHeight * 4;
-			}
-			return new Point(totalWidth, maxHeight);
-		}
-
-		public void layout(Composite composite, boolean flushCache) {
-
-			if (composite == null) {
-				return;
-			}
-
-			// StatusLineManager skips over the standard status line widgets
-			// in its update method. There is thus a dependency
-			// between the layout of the standard widgets and the update method.
-
-			// Make sure cancel button and progress bar are before
-			// contributions.
-			fMessageLabel.moveAbove(null);
-			fToolBar.moveBelow(fMessageLabel);
-			fProgressBarComposite.moveBelow(fToolBar);
-
-			Rectangle rect = composite.getClientArea();
-			Control[] children = composite.getChildren();
-			int count = children.length;
-
-			int ws[] = new int[count];
-
-			int h = rect.height;
-			int totalWidth = -GAP;
-			for (int i = 0; i < count; i++) {
-				Control w = children[i];
-				if (w == fProgressBarComposite && !fProgressIsVisible) {
-					continue;
-				}
-				if (w == fToolBar && !fCancelButtonIsVisible) {
-					continue;
-				}
-				StatusLineLayoutData data = (StatusLineLayoutData) w
-						.getLayoutData();
-				if (data == null) {
-					data = DEFAULT_DATA;
-				}
-				int width = w.computeSize(data.widthHint, h, flushCache).x;
-				ws[i] = width;
-				totalWidth += width + GAP;
-			}
-
-			int diff = rect.width - totalWidth;
-			ws[0] += diff; // make the first StatusLabel wider
-
-			// Check against minimum recommended width
-			final int msgMinWidth = rect.width / 3;
-			if (ws[0] < msgMinWidth) {
-				diff = ws[0] - msgMinWidth;
-				ws[0] = msgMinWidth;
-			} else {
-				diff = 0;
-			}
-
-			// Take space away from the contributions first.
-			for (int i = count - 1; i >= 0 && diff < 0; --i) {
-				int min = Math.min(ws[i], -diff);
-				ws[i] -= min;
-				diff += min + GAP;
-			}
-
-			int x = rect.x;
-			int y = rect.y;
-			for (int i = 0; i < count; i++) {
-				Control w = children[i];
-				/*
-				 * Workaround for Linux Motif: Even if the progress bar and
-				 * cancel button are not set to be visible ad of width 0, they
-				 * still draw over the first pixel of the editor contributions.
-				 * 
-				 * The fix here is to draw the progress bar and cancel button
-				 * off screen if they are not visible.
-				 */
-				if (w == fProgressBarComposite && !fProgressIsVisible
-						|| w == fToolBar && !fCancelButtonIsVisible) {
-					w.setBounds(x + rect.width, y, ws[i], h);
-					continue;
-				}
-				w.setBounds(x, y, ws[i], h);
-				if (ws[i] > 0) {
-					x += ws[i] + GAP;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Create a new StatusLine as a child of the given parent.
-	 * 
-	 * @param parent
-	 *            the parent for this Composite
-	 * @param style
-	 *            the style used to create this widget
-	 */
-	public StatusLine(Composite parent, int style) {
-		super(parent, style);
-
-		addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				handleDispose();
-			}
-		});
-
-		// StatusLineManager skips over the standard status line widgets
-		// in its update method. There is thus a dependency
-		// between this code defining the creation and layout of the standard
-		// widgets and the update method.
-
-		setLayout(new StatusLineLayout());
-
-		fMessageLabel = new CLabel(this, SWT.NONE);// SWT.SHADOW_IN);
-		// Color[] colors = new Color[2];
-		// colors[0] =
-		// parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
-		// colors[1] = fMessageLabel.getBackground();
-		// int[] gradient = new int[] {JFaceColors.STATUS_PERCENT};
-		// fMessageLabel.setBackground(colors, gradient);
-
-		fProgressIsVisible = false;
-		fCancelEnabled = false;
-
-		fToolBar = new ToolBar(this, SWT.FLAT);
-		fCancelButton = new ToolItem(fToolBar, SWT.PUSH);
-		fCancelButton.setImage(fgStopImage.createImage());
-		fCancelButton.setToolTipText(JFaceResources
-				.getString("Cancel_Current_Operation")); //$NON-NLS-1$
-		fCancelButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				setCanceled(true);
-			}
-		});
-		fCancelButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				Image i = fCancelButton.getImage();
-				if ((i != null) && (!i.isDisposed())) {
-					i.dispose();
-				}
-			}
-		});
-
-		// We create a composite to create the progress bar in
-		// so that it can be centered. See bug #32331
-		fProgressBarComposite = new Composite(this, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = 0;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		fProgressBarComposite.setLayout(layout);
-		fProgressBar = new ProgressIndicator(fProgressBarComposite);
-		fProgressBar.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL));
-
-		fStopButtonCursor = new Cursor(getDisplay(), SWT.CURSOR_ARROW);
-	}
-
-	/**
-	 * Notifies that the main task is beginning.
-	 * 
-	 * @param name
-	 *            the name (or description) of the main task
-	 * @param totalWork
-	 *            the total number of work units into which the main task is
-	 *            been subdivided. If the value is 0 or UNKNOWN the
-	 *            implemenation is free to indicate progress in a way which
-	 *            doesn't require the total number of work units in advance. In
-	 *            general users should use the UNKNOWN value if they don't know
-	 *            the total amount of work units.
-	 */
-	public void beginTask(String name, int totalWork) {
-		final long timestamp = System.currentTimeMillis();
-		fStartTime = timestamp;
-		final boolean animated = (totalWork == UNKNOWN || totalWork == 0);
-		// make sure the progress bar is made visible while
-		// the task is running. Fixes bug 32198 for the non-animated case.
-		Runnable timer = new Runnable() {
-			public void run() {
-				StatusLine.this.startTask(timestamp, animated);
-			}
-		};
-		if (fProgressBar == null) {
-			return;
-		}
-
-		fProgressBar.getDisplay().timerExec(DELAY_PROGRESS, timer);
-		if (!animated) {
-			fProgressBar.beginTask(totalWork);
-		}
-		if (name == null) {
-			fTaskName = Util.ZERO_LENGTH_STRING;
-		} else {
-			fTaskName = name;
-		}
-		setMessage(fTaskName);
-	}
-
-	/**
-	 * Notifies that the work is done; that is, either the main task is
-	 * completed or the user cancelled it. Done() can be called more than once;
-	 * an implementation should be prepared to handle this case.
-	 */
-	public void done() {
-
-		fStartTime = 0;
-
-		if (fProgressBar != null) {
-			fProgressBar.sendRemainingWork();
-			fProgressBar.done();
-		}
-		setMessage(null);
-
-		hideProgress();
-	}
-
-	/**
-	 * Returns the status line's progress monitor
-	 * 
-	 * @return {@link IProgressMonitor} the progress monitor
-	 */
-	public IProgressMonitor getProgressMonitor() {
-		return this;
-	}
-
-	/**
-	 * @private
-	 */
-	protected void handleDispose() {
-		if (fStopButtonCursor != null) {
-			fStopButtonCursor.dispose();
-			fStopButtonCursor = null;
-		}
-		if (fProgressBar != null) {
-			fProgressBar.dispose();
-			fProgressBar = null;
-		}
-	}
-
-	/**
-	 * Hides the Cancel button and ProgressIndicator.
-	 * 
-	 */
-	protected void hideProgress() {
-
-		if (fProgressIsVisible && !isDisposed()) {
-			fProgressIsVisible = false;
-			fCancelEnabled = false;
-			fCancelButtonIsVisible = false;
-			if (fToolBar != null && !fToolBar.isDisposed()) {
-				fToolBar.setVisible(false);
-			}
-			if (fProgressBarComposite != null
-					&& !fProgressBarComposite.isDisposed()) {
-				fProgressBarComposite.setVisible(false);
-			}
-			layout();
-		}
-	}
-
-	/**
-	 * @see IProgressMonitor#internalWorked(double)
-	 */
-	public void internalWorked(double work) {
-		if (!fProgressIsVisible) {
-			if (System.currentTimeMillis() - fStartTime > DELAY_PROGRESS) {
-				showProgress();
-			}
-		}
-
-		if (fProgressBar != null) {
-			fProgressBar.worked(work);
-		}
-	}
-
-	/**
-	 * Returns true if the user does some UI action to cancel this operation.
-	 * (like hitting the Cancel button on the progress dialog). The long running
-	 * operation typically polls isCanceled().
-	 */
-	public boolean isCanceled() {
-		return fIsCanceled;
-	}
-
-	/**
-	 * Returns
-	 * <code>true</true> if the ProgressIndication provides UI for canceling
-	 * a long running operation.
-	 * @return <code>true</true> if the ProgressIndication provides UI for canceling
-	 */
-	public boolean isCancelEnabled() {
-		return fCancelEnabled;
-	}
-
-	/**
-	 * Sets the cancel status. This method is usually called with the argument
-	 * false if a client wants to abort a cancel action.
-	 */
-	public void setCanceled(boolean b) {
-		fIsCanceled = b;
-		if (fCancelButton != null) {
-			fCancelButton.setEnabled(!b);
-		}
-	}
-
-	/**
-	 * Controls whether the ProgressIndication provides UI for canceling a long
-	 * running operation. If the ProgressIndication is currently visible calling
-	 * this method may have a direct effect on the layout because it will make a
-	 * cancel button visible.
-	 * 
-	 * @param enabled
-	 *            <code>true</true> if cancel should be enabled
-	 */
-	public void setCancelEnabled(boolean enabled) {
-		fCancelEnabled = enabled;
-		if (fProgressIsVisible && !fCancelButtonIsVisible && enabled) {
-			showButton();
-			layout();
-		}
-		if (fCancelButton != null && !fCancelButton.isDisposed()) {
-			fCancelButton.setEnabled(enabled);
-		}
-	}
-
-	/**
-	 * Sets the error message text to be displayed on the status line. The image
-	 * on the status line is cleared.
-	 * 
-	 * @param message
-	 *            the error message, or <code>null</code> for no error message
-	 */
-	public void setErrorMessage(String message) {
-		setErrorMessage(null, message);
-	}
-
-	/**
-	 * Sets an image and error message text to be displayed on the status line.
-	 * 
-	 * @param image
-	 *            the image to use, or <code>null</code> for no image
-	 * @param message
-	 *            the error message, or <code>null</code> for no error message
-	 */
-	public void setErrorMessage(Image image, String message) {
-		fErrorText = trim(message);
-		fErrorImage = image;
-		updateMessageLabel();
-	}
-
-	/**
-	 * Applies the given font to this status line.
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		Control[] children = getChildren();
-		for (int i = 0; i < children.length; i++) {
-			children[i].setFont(font);
-		}
-	}
-
-	/**
-	 * Sets the message text to be displayed on the status line. The image on
-	 * the status line is cleared.
-	 * 
-	 * @param message
-	 *            the error message, or <code>null</code> for no error message
-	 */
-	public void setMessage(String message) {
-		setMessage(null, message);
-	}
-
-	/**
-	 * Sets an image and a message text to be displayed on the status line.
-	 * 
-	 * @param image
-	 *            the image to use, or <code>null</code> for no image
-	 * @param message
-	 *            the message, or <code>null</code> for no message
-	 */
-	public void setMessage(Image image, String message) {
-		fMessageText = trim(message);
-		fMessageImage = image;
-		updateMessageLabel();
-	}
-
-	/**
-	 * @see IProgressMonitor#setTaskName(java.lang.String)
-	 */
-	public void setTaskName(String name) {
-		if (name == null)
-			fTaskName = Util.ZERO_LENGTH_STRING;
-		else
-			fTaskName = name;
-	}
-
-	/**
-	 * Makes the Cancel button visible.
-	 * 
-	 */
-	protected void showButton() {
-		if (fToolBar != null && !fToolBar.isDisposed()) {
-			fToolBar.setVisible(true);
-			fToolBar.setEnabled(true);
-			fToolBar.setCursor(fStopButtonCursor);
-			fCancelButtonIsVisible = true;
-		}
-	}
-
-	/**
-	 * Shows the Cancel button and ProgressIndicator.
-	 * 
-	 */
-	protected void showProgress() {
-		if (!fProgressIsVisible && !isDisposed()) {
-			fProgressIsVisible = true;
-			if (fCancelEnabled) {
-				showButton();
-			}
-			if (fProgressBarComposite != null
-					&& !fProgressBarComposite.isDisposed()) {
-				fProgressBarComposite.setVisible(true);
-			}
-			layout();
-		}
-	}
-
-	/**
-	 * @private
-	 */
-	void startTask(final long timestamp, final boolean animated) {
-		if (!fProgressIsVisible && fStartTime == timestamp) {
-			showProgress();
-			if (animated) {
-				if (fProgressBar != null && !fProgressBar.isDisposed()) {
-					fProgressBar.beginAnimatedTask();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Notifies that a subtask of the main task is beginning. Subtasks are
-	 * optional; the main task might not have subtasks.
-	 * 
-	 * @param name
-	 *            the name (or description) of the subtask
-	 * @see IProgressMonitor#subTask(String)
-	 */
-	public void subTask(String name) {
-
-		String newName;
-		if (name == null)
-			newName = Util.ZERO_LENGTH_STRING;
-		else
-			newName = name;
-
-		String text;
-		if (fTaskName == null || fTaskName.length() == 0) {
-			text = newName;
-		} else {
-			text = JFaceResources.format(
-					"Set_SubTask", new Object[] { fTaskName, newName });//$NON-NLS-1$
-		}
-		setMessage(text);
-	}
-
-	/**
-	 * Trims the message to be displayable in the status line. This just pulls
-	 * out the first line of the message. Allows null.
-	 */
-	String trim(String message) {
-		if (message == null) {
-			return null;
-		}
-		message = Util.replaceAll(message, "&", "&&"); //$NON-NLS-1$//$NON-NLS-2$
-		int cr = message.indexOf('\r');
-		int lf = message.indexOf('\n');
-		if (cr == -1 && lf == -1) {
-			return message;
-		}
-		int len;
-		if (cr == -1) {
-			len = lf;
-		} else if (lf == -1) {
-			len = cr;
-		} else {
-			len = Math.min(cr, lf);
-		}
-		return message.substring(0, len);
-	}
-
-	/**
-	 * Updates the message label widget.
-	 */
-	protected void updateMessageLabel() {
-		if (fMessageLabel != null && !fMessageLabel.isDisposed()) {
-			Display display = fMessageLabel.getDisplay();
-			if ((fErrorText != null && fErrorText.length() > 0)
-					|| fErrorImage != null) {
-				fMessageLabel.setForeground(JFaceColors.getErrorText(display));
-				fMessageLabel.setText(fErrorText);
-				fMessageLabel.setImage(fErrorImage);
-			} else {
-				fMessageLabel.setForeground(display
-						.getSystemColor(SWT.COLOR_WIDGET_FOREGROUND));
-				fMessageLabel.setText(fMessageText == null ? "" : fMessageText); //$NON-NLS-1$
-				fMessageLabel.setImage(fMessageImage);
-			}
-		}
-	}
-
-	/**
-	 * @see IProgressMonitor#worked(int)
-	 */
-	public void worked(int work) {
-		internalWorked(work);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineContributionItem.java
deleted file mode 100644
index 6ccc79b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineContributionItem.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.action;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * A contribution item to be used with status line managers.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 3.4
- */
-public class StatusLineContributionItem extends ContributionItem {
-
-	private final static int DEFAULT_CHAR_WIDTH = 40;
-
-	private int charWidth;
-
-	private CLabel label;
-
-	/**
-	 * The composite into which this contribution item has been placed. This
-	 * will be <code>null</code> if this instance has not yet been
-	 * initialized.
-	 */
-	private Composite statusLine = null;
-
-	private String text = Util.ZERO_LENGTH_STRING;
-
-	private int widthHint = -1;
-
-	private int heightHint = -1;
-
-	/**
-	 * Creates a status line contribution item with the given id.
-	 * 
-	 * @param id
-	 *            the contribution item's id, or <code>null</code> if it is to
-	 *            have no id
-	 */
-	public StatusLineContributionItem(String id) {
-		this(id, DEFAULT_CHAR_WIDTH);
-	}
-
-	/**
-	 * Creates a status line contribution item with the given id that displays
-	 * the given number of characters.
-	 * 
-	 * @param id
-	 *            the contribution item's id, or <code>null</code> if it is to
-	 *            have no id
-	 * @param charWidth
-	 *            the number of characters to display
-	 */
-	public StatusLineContributionItem(String id, int charWidth) {
-		super(id);
-		this.charWidth = charWidth;
-		setVisible(false); // no text to start with
-	}
-
-	public void fill(Composite parent) {
-		statusLine = parent;
-
-		Label sep = new Label(parent, SWT.SEPARATOR);
-		label = new CLabel(statusLine, SWT.SHADOW_NONE);
-
-		if (widthHint < 0) {
-			GC gc = new GC(statusLine);
-			gc.setFont(statusLine.getFont());
-			FontMetrics fm = gc.getFontMetrics();
-			widthHint = fm.getAverageCharWidth() * charWidth;
-			heightHint = fm.getHeight();
-			gc.dispose();
-		}
-
-		StatusLineLayoutData data = new StatusLineLayoutData();
-		data.widthHint = widthHint;
-		label.setLayoutData(data);
-		label.setText(text);
-
-		data = new StatusLineLayoutData();
-		data.heightHint = heightHint;
-		sep.setLayoutData(data);
-	}
-
-	/**
-	 * An accessor for the current location of this status line contribution
-	 * item -- relative to the display.
-	 * 
-	 * @return The current location of this status line; <code>null</code> if
-	 *         not yet initialized.
-	 */
-	public Point getDisplayLocation() {
-		if ((label != null) && (statusLine != null)) {
-			return statusLine.toDisplay(label.getLocation());
-		}
-
-		return null;
-	}
-
-	/**
-	 * Retrieves the text that is being displayed in the status line.
-	 * 
-	 * @return the text that is currently being displayed
-	 */
-	public String getText() {
-		return text;
-	}
-
-	/**
-	 * Sets the text to be displayed in the status line.
-	 * 
-	 * @param text
-	 *            the text to be displayed, must not be <code>null</code>
-	 */
-	public void setText(String text) {
-		Assert.isNotNull(text);
-
-		this.text = escape(text);
-
-		if (label != null && !label.isDisposed()) {
-			label.setText(this.text);
-		}
-
-		if (this.text.length() == 0) {
-			if (isVisible()) {
-				setVisible(false);
-				IContributionManager contributionManager = getParent();
-
-				if (contributionManager != null) {
-					contributionManager.update(true);
-				}
-			}
-		} else {
-			if (!isVisible()) {
-				setVisible(true);
-				IContributionManager contributionManager = getParent();
-
-				if (contributionManager != null) {
-					contributionManager.update(true);
-				}
-			}
-		}
-	}
-
-	private String escape(String text) {
-		return Util.replaceAll(text, "&", "&&");  //$NON-NLS-1$//$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineLayoutData.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineLayoutData.java
deleted file mode 100644
index df93ec5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineLayoutData.java
+++ /dev/null
@@ -1,53 +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.jface.action;
-
-import org.eclipse.swt.SWT;
-
-/**
- * Represents the layout data object for <code>Control</code> within the status line.
- * To set a <code>StatusLineLayoutData</code> object into a <code>Control</code>, use
- * the <code>setLayoutData()</code> method. 
- * <p>
- * NOTE: Do not reuse <code>StatusLineLayoutData</code> objects. Every control in the
- * status line must have a unique <code>StatusLineLayoutData</code> instance or
- * <code>null</code>.
- * </p>
- * 
- * @since 2.1
- */
-public class StatusLineLayoutData {
-    /**
-     * The <code>widthHint</code> specifies a minimum width for
-     * the <code>Control</code>. A value of <code>SWT.DEFAULT</code>
-     * indicates that no minimum width is specified.
-     *
-     * The default value is <code>SWT.DEFAULT</code>.
-     */
-    public int widthHint = SWT.DEFAULT;
-
-    /**
-     * The <code>heightHint</code> specifies a minimum height for
-     * the <code>Control</code>. A value of <code>SWT.DEFAULT</code>
-     * indicates that no minimum height is specified.
-     *
-     * The default value is <code>SWT.DEFAULT</code>.
-     */
-    public int heightHint = SWT.DEFAULT;
-
-    /**
-     * Creates an initial status line layout data object.
-     */
-    public StatusLineLayoutData() {
-        super();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineManager.java
deleted file mode 100644
index a7a92f5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/StatusLineManager.java
+++ /dev/null
@@ -1,346 +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.jface.action;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IProgressMonitorWithBlocking;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A status line manager is a contribution manager which realizes itself and its items
- * in a status line control.
- * <p>
- * This class may be instantiated; it may also be subclassed if a more
- * sophisticated layout is required.
- * </p>
- */
-public class StatusLineManager extends ContributionManager implements
-        IStatusLineManager {
-
-    /**
-     * Identifier of group marker used to position contributions at the beginning
-     * of the status line.
-     * 
-     * @since 3.0
-     */
-    public static final String BEGIN_GROUP = "BEGIN_GROUP"; //$NON-NLS-1$
-
-    /**
-     * Identifier of group marker used to position contributions in the middle
-     * of the status line.
-     * 
-     * @since 3.0
-     */
-    public static final String MIDDLE_GROUP = "MIDDLE_GROUP"; //$NON-NLS-1$
-
-    /**
-     * Identifier of group marker used to position contributions at the end
-     * of the status line.
-     * 
-     * @since 3.0
-     */
-    public static final String END_GROUP = "END_GROUP"; //$NON-NLS-1$
-
-    /**
-     * The status line control; <code>null</code> before
-     * creation and after disposal.
-     */
-    private Composite statusLine = null;
-
-    /**
-     * Creates a new status line manager.
-     * Use the <code>createControl</code> method to create the 
-     * status line control.
-     */
-    public StatusLineManager() {
-    	add(new GroupMarker(BEGIN_GROUP));
-        add(new GroupMarker(MIDDLE_GROUP));
-        add(new GroupMarker(END_GROUP));
-    }
-
-    /**
-     * Creates and returns this manager's status line control. 
-     * Does not create a new control if one already exists.
-     * <p>
-     * Note: Since 3.0 the return type is <code>Control</code>.  Before 3.0, the return type was 
-     *   the package-private class <code>StatusLine</code>.
-     * </p>
-     *
-     * @param parent the parent control
-     * @return the status line control
-     */
-    public Control createControl(Composite parent) {
-        return createControl(parent, SWT.NONE);
-    }
-
-    /**
-     * Creates and returns this manager's status line control. 
-     * Does not create a new control if one already exists.
-     *
-     * @param parent the parent control
-     * @param style the style for the control
-     * @return the status line control
-     * @since 3.0
-     */
-    public Control createControl(Composite parent, int style) {
-        if (!statusLineExist() && parent != null) {
-            statusLine = new StatusLine(parent, style);
-            update(false);
-        }
-        return statusLine;
-    }
-
-    /**
-     * Disposes of this status line manager and frees all allocated SWT resources.
-     * Notifies all contribution items of the dispose. Note that this method does
-     * not clean up references between this status line manager and its associated
-     * contribution items. Use <code>removeAll</code> for that purpose.
-     */
-    public void dispose() {
-        if (statusLineExist()) {
-			statusLine.dispose();
-		}
-        statusLine = null;
-
-        IContributionItem items[] = getItems();
-        for (int i = 0; i < items.length; i++) {
-            items[i].dispose();
-        }
-    }
-
-    /**
-     * Returns the control used by this StatusLineManager.
-     * 
-     * @return the control used by this manager
-     */
-    public Control getControl() {
-        return statusLine;
-    }
-
-    /**
-     * Returns the progress monitor delegate. Override this method
-     * to provide your own object used to handle progress.
-     * 
-     * @return the IProgressMonitor delegate
-     * @since 3.0
-     */
-    protected IProgressMonitor getProgressMonitorDelegate() {
-        return (IProgressMonitor) getControl();
-    }
-
-    /*
-     * (non-Javadoc)
-     * Method declared on IStatusLineManager
-     */
-    public IProgressMonitor getProgressMonitor() {
-
-        return new IProgressMonitorWithBlocking() {
-
-            IProgressMonitor progressDelegate = getProgressMonitorDelegate();
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#beginTask(java.lang.String, int)
-             */
-            public void beginTask(String name, int totalWork) {
-                progressDelegate.beginTask(name, totalWork);
-
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#done()
-             */
-            public void done() {
-                progressDelegate.done();
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#internalWorked(double)
-             */
-            public void internalWorked(double work) {
-                progressDelegate.internalWorked(work);
-
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#isCanceled()
-             */
-            public boolean isCanceled() {
-                return progressDelegate.isCanceled();
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#setCanceled(boolean)
-             */
-            public void setCanceled(boolean value) {
-                //Don't bother updating for disposed status
-                if (statusLine.isDisposed()) {
-					return;
-				}
-                progressDelegate.setCanceled(value);
-
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#setTaskName(java.lang.String)
-             */
-            public void setTaskName(String name) {
-                progressDelegate.setTaskName(name);
-
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#subTask(java.lang.String)
-             */
-            public void subTask(String name) {
-                progressDelegate.subTask(name);
-
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitor#worked(int)
-             */
-            public void worked(int work) {
-                progressDelegate.worked(work);
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#clearBlocked()
-             */
-            public void clearBlocked() {
-                //Do nothing here as we let the modal context handle it
-            }
-
-            /* (non-Javadoc)
-             * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#setBlocked(org.eclipse.core.runtime.IStatus)
-             */
-            public void setBlocked(IStatus reason) {
-                //			Do nothing here as we let the modal context handle it
-            }
-        };
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatueLineManager
-     */
-    public boolean isCancelEnabled() {
-        return statusLineExist() && ((StatusLine) statusLine).isCancelEnabled();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatueLineManager
-     */
-    public void setCancelEnabled(boolean enabled) {
-        if (statusLineExist()) {
-			((StatusLine) statusLine).setCancelEnabled(enabled);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setErrorMessage(String message) {
-        if (statusLineExist()) {
-			((StatusLine) statusLine).setErrorMessage(message);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setErrorMessage(Image image, String message) {
-        if (statusLineExist()) {
-			((StatusLine) statusLine).setErrorMessage(image, message);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setMessage(String message) {
-        if (statusLineExist()) {
-			((StatusLine) statusLine).setMessage(message);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setMessage(Image image, String message) {
-        if (statusLineExist()) {
-			((StatusLine) statusLine).setMessage(image, message);
-		}
-    }
-
-    /**
-     * Returns whether the status line control is created
-     * and not disposed.
-     * 
-     * @return <code>true</code> if the control is created
-     *	and not disposed, <code>false</code> otherwise
-     */
-    private boolean statusLineExist() {
-        return statusLine != null && !statusLine.isDisposed();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void update(boolean force) {
-
-        //boolean DEBUG= false;
-
-        if (isDirty() || force) {
-
-            if (statusLineExist()) {
-                statusLine.setRedraw(false);
-
-                // NOTE: the update algorithm is non-incremental.
-                // An incremental algorithm requires that SWT items can be created in the middle of the list
-                // but the ContributionItem.fill(Composite) method used here does not take an index, so this
-                // is not possible.
-
-                Control ws[] = statusLine.getChildren();
-                for (int i = 0; i < ws.length; i++) {
-                    Control w = ws[i];
-                    Object data = w.getData();
-                    if (data instanceof IContributionItem) {
-                        w.dispose();
-                    }
-                }
-
-                int oldChildCount = statusLine.getChildren().length;
-                IContributionItem[] items = getItems();
-                for (int i = 0; i < items.length; ++i) {
-                    IContributionItem ci = items[i];
-                    if (ci.isVisible()) {
-                        ci.fill(statusLine);
-                        // associate controls with contribution item
-                        Control[] newChildren = statusLine.getChildren();
-                        for (int j = oldChildCount; j < newChildren.length; j++) {
-                            newChildren[j].setData(ci);
-                        }
-                        oldChildCount = newChildren.length;
-                    }
-                }
-
-                setDirty(false);
-
-                statusLine.layout();
-                statusLine.setRedraw(true);
-            }
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionItem.java
deleted file mode 100644
index f1cb77d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionItem.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * A <code>SubContributionItem</code> is a wrapper for an <code>IContributionItem</code>.  
- * It is used within a <code>SubContributionManager</code> to control the visibility
- * of items.
- * <p>
- * This class is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class SubContributionItem implements IContributionItem {
-    /**
-     * The visibility of the item.
-     */
-    private boolean visible;
-
-    /**
-     * The inner item for this contribution.  
-     */
-    private IContributionItem innerItem;
-
-    /**
-     * Creates a new <code>SubContributionItem</code>.
-     * @param item the contribution item to be wrapped
-     */
-    public SubContributionItem(IContributionItem item) {
-        innerItem = item;
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * delegates to the inner item. Subclasses may override.
-     */
-    public void dispose() {
-        innerItem.dispose();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void fill(Composite parent) {
-        if (visible) {
-			innerItem.fill(parent);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void fill(Menu parent, int index) {
-        if (visible) {
-			innerItem.fill(parent, index);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void fill(ToolBar parent, int index) {
-        if (visible) {
-			innerItem.fill(parent, index);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public String getId() {
-        return innerItem.getId();
-    }
-
-    /**
-     * Returns the inner contribution item.
-     *
-     * @return the inner contribution item
-     */
-    public IContributionItem getInnerItem() {
-        return innerItem;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public boolean isEnabled() {
-        return innerItem.isEnabled();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public boolean isDirty() {
-        return innerItem.isDirty();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public boolean isDynamic() {
-        return innerItem.isDynamic();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public boolean isGroupMarker() {
-        return innerItem.isGroupMarker();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public boolean isSeparator() {
-        return innerItem.isSeparator();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public boolean isVisible() {
-        return visible && innerItem.isVisible();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void setParent(IContributionManager parent) {
-        // do nothing, the parent of our inner item
-        // is its SubContributionManager
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void setVisible(boolean visible) {
-        this.visible = visible;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void update() {
-        innerItem.update();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionItem.
-     */
-    public void update(String id) {
-        innerItem.update(id);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.CoolBar, int)
-     */
-    public void fill(CoolBar parent, int index) {
-        if (visible) {
-			innerItem.fill(parent, index);
-		}
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#saveWidgetState()
-     */
-    public void saveWidgetState() {
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionManager.java
deleted file mode 100644
index de3e270..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubContributionManager.java
+++ /dev/null
@@ -1,362 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * A <code>SubContributionManager</code> is used to define a set of contribution
- * items within a parent manager.  Once defined, the visibility of the entire set can 
- * be changed as a unit.
- */
-public abstract class SubContributionManager implements IContributionManager {
-    /**
-     * The parent contribution manager.
-     */
-    private IContributionManager parentMgr;
-
-    /**
-     * Maps each item in the manager to a wrapper.  The wrapper is used to 
-     * control the visibility of each item.
-     */
-    private Map mapItemToWrapper = new HashMap();
-
-    /**
-     * The visibility of the manager,
-     */
-    private boolean visible = false;
-
-    /**
-     * Constructs a new <code>SubContributionManager</code>
-     *
-     * @param mgr the parent contribution manager.  All contributions made to the
-     *      <code>SubContributionManager</code> are forwarded and appear in the
-     *      parent manager.
-     */
-    public SubContributionManager(IContributionManager mgr) {
-        super();
-        parentMgr = mgr;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void add(IAction action) {
-        add(new ActionContributionItem(action));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void add(IContributionItem item) {
-        SubContributionItem wrap = wrap(item);
-        wrap.setVisible(visible);
-        parentMgr.add(wrap);
-        itemAdded(item, wrap);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void appendToGroup(String groupName, IAction action) {
-        appendToGroup(groupName, new ActionContributionItem(action));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void appendToGroup(String groupName, IContributionItem item) {
-        SubContributionItem wrap = wrap(item);
-        wrap.setVisible(visible);
-        parentMgr.appendToGroup(groupName, wrap);
-        itemAdded(item, wrap);
-    }
-
-    /**
-     * Disposes this sub contribution manager, removing all its items
-     * and cleaning up any other resources allocated by it.
-     * This must leave no trace of this sub contribution manager
-     * in the parent manager.  Subclasses may extend.
-     * 
-     * @since 3.0
-     */
-    public void disposeManager() {
-        Iterator it = mapItemToWrapper.values().iterator();
-        // Dispose items in addition to removing them.
-        // See bugs 64024 and 73715 for details.
-	    // Do not use getItems() here as subclasses can override that in bad ways.
-        while (it.hasNext()) {
-            IContributionItem item = (IContributionItem) it.next();
-            item.dispose();
-        }
-        removeAll();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     *
-     * Returns the item passed to us, not the wrapper.
-     */
-    public IContributionItem find(String id) {
-        IContributionItem item = parentMgr.find(id);
-        // Return the item passed to us, not the wrapper.
-        item = unwrap(item);
-        return item;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     *
-     * Returns the items passed to us, not the wrappers.
-     */
-    public IContributionItem[] getItems() {
-        IContributionItem[] result = new IContributionItem[mapItemToWrapper
-                .size()];
-        mapItemToWrapper.keySet().toArray(result);
-        return result;
-    }
-
-    /**
-     * Returns the parent manager.
-     *
-     * @return the parent manager
-     */
-    public IContributionManager getParent() {
-        return parentMgr;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public IContributionManagerOverrides getOverrides() {
-        return parentMgr.getOverrides();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void insertAfter(String id, IAction action) {
-        insertAfter(id, new ActionContributionItem(action));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void insertAfter(String id, IContributionItem item) {
-        SubContributionItem wrap = wrap(item);
-        wrap.setVisible(visible);
-        parentMgr.insertAfter(id, wrap);
-        itemAdded(item, wrap);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void insertBefore(String id, IAction action) {
-        insertBefore(id, new ActionContributionItem(action));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void insertBefore(String id, IContributionItem item) {
-        SubContributionItem wrap = wrap(item);
-        wrap.setVisible(visible);
-        parentMgr.insertBefore(id, wrap);
-        itemAdded(item, wrap);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public boolean isDirty() {
-        return parentMgr.isDirty();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public boolean isEmpty() {
-        return parentMgr.isEmpty();
-    }
-
-    /**
-     * Returns whether the contribution list is visible.
-     * If the visibility is <code>true</code> then each item within the manager 
-     * appears within the parent manager.  Otherwise, the items are not visible.
-     *
-     * @return <code>true</code> if the manager is visible
-     */
-    public boolean isVisible() {
-        return visible;
-    }
-
-    /**
-     * Notifies that an item has been added.
-     * <p>
-     * Subclasses are not expected to override this method.
-     * </p>
-     *
-     * @param item the item contributed by the client
-     * @param wrap the item contributed to the parent manager as a proxy for the item
-     *      contributed by the client
-     */
-    protected void itemAdded(IContributionItem item, SubContributionItem wrap) {
-    	item.setParent(this);
-        mapItemToWrapper.put(item, wrap);
-    }
-
-    /**
-     * Notifies that an item has been removed.
-     * <p>
-     * Subclasses are not expected to override this method.
-     * </p>
-     *
-     * @param item the item contributed by the client
-     */
-    protected void itemRemoved(IContributionItem item) {
-        mapItemToWrapper.remove(item);
-        item.setParent(null);
-    }
-
-    /**
-     * @return fetch all enumeration of wrappers for the item
-     * @deprecated Use getItems(String value) instead.
-     */
-    public Enumeration items() {
-        final Iterator i = mapItemToWrapper.values().iterator();
-        return new Enumeration() {
-            public boolean hasMoreElements() {
-                return i.hasNext();
-            }
-
-            public Object nextElement() {
-                return i.next();
-            }
-        };
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void markDirty() {
-        parentMgr.markDirty();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void prependToGroup(String groupName, IAction action) {
-        prependToGroup(groupName, new ActionContributionItem(action));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void prependToGroup(String groupName, IContributionItem item) {
-        SubContributionItem wrap = wrap(item);
-        wrap.setVisible(visible);
-        parentMgr.prependToGroup(groupName, wrap);
-        itemAdded(item, wrap);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public IContributionItem remove(String id) {
-        IContributionItem result = parentMgr.remove(id);
-        // result is the wrapped item
-        if (result != null) {
-        	IContributionItem item = unwrap(result);
-			itemRemoved(item);
-		}
-        return result;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public IContributionItem remove(IContributionItem item) {
-        SubContributionItem wrap = (SubContributionItem) mapItemToWrapper
-                .get(item);
-        if (wrap == null) {
-			return null;
-		}
-        IContributionItem result = parentMgr.remove(wrap);
-        if (result == null) {
-			return null;
-		}
-        itemRemoved(item);
-        return item;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     */
-    public void removeAll() {
-    	Object[] array = mapItemToWrapper.keySet().toArray();
-    	for (int i = 0; i < array.length; i++) {
-			IContributionItem item = (IContributionItem) array[i];
-			remove(item);
-		}
-        mapItemToWrapper.clear();
-    }
-
-    /**
-     * Sets the visibility of the manager.  If the visibility is <code>true</code>
-     * then each item within the manager appears within the parent manager.
-     * Otherwise, the items are not visible.
-     *
-     * @param visible the new visibility
-     */
-    public void setVisible(boolean visible) {
-        this.visible = visible;
-        if (mapItemToWrapper.size() > 0) {
-            Iterator it = mapItemToWrapper.values().iterator();
-            while (it.hasNext()) {
-                IContributionItem item = (IContributionItem) it.next();
-                item.setVisible(visible);
-            }
-            parentMgr.markDirty();
-        }
-    }
-
-    /**
-     * Wraps a contribution item in a sub contribution item, and returns the new wrapper.
-     * @param item the contribution item to be wrapped
-     * @return the wrapped item
-     */
-    protected SubContributionItem wrap(IContributionItem item) {
-        return new SubContributionItem(item);
-    }
-
-    /**
-     * Unwraps a nested contribution item. If the contribution item is an
-     * instance of <code>SubContributionItem</code>, then its inner item is
-     * returned. Otherwise, the item itself is returned.
-     * 
-     * @param item
-     *            The item to unwrap; may be <code>null</code>.
-     * @return The inner item of <code>item</code>, if <code>item</code> is
-     *         a <code>SubContributionItem</code>;<code>item</code>
-     *         otherwise.
-     */
-    protected IContributionItem unwrap(IContributionItem item) {
-        if (item instanceof SubContributionItem) {
-            return ((SubContributionItem) item).getInnerItem();
-        }
-
-        return item;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubCoolBarManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubCoolBarManager.java
deleted file mode 100644
index f5a179a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubCoolBarManager.java
+++ /dev/null
@@ -1,102 +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.jface.action;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A <code>SubCoolBarManager</code> monitors the additional and removal of 
- * items from a parent manager so that visibility of the entire set can be changed as a
- * unit.
- * 
- * @since 3.0
- */
-public class SubCoolBarManager extends SubContributionManager implements
-        ICoolBarManager {
-
-    /**
-     * Constructs a new manager.
-     *
-     * @param mgr the parent manager.  All contributions made to the 
-     *      <code>SubCoolBarManager</code> are forwarded and appear in the
-     *      parent manager.
-     */
-    public SubCoolBarManager(ICoolBarManager mgr) {
-        super(mgr);
-        Assert.isNotNull(mgr);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.ICoolBarManager#add(org.eclipse.jface.action.IToolBarManager)
-     */
-    public void add(IToolBarManager toolBarManager) {
-        Assert.isNotNull(toolBarManager);
-        super.add(new ToolBarContributionItem(toolBarManager));
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.ICoolBarManager#getStyle()
-     */
-    public int getStyle() {
-        // It is okay to cast down since we only accept coolBarManager objects in the
-        // constructor
-        return ((ICoolBarManager) getParent()).getStyle();
-    }
-
-    /**
-     * Returns the parent cool bar manager that this sub-manager contributes to.
-     * 
-     * @return the parent cool bar manager 
-     */
-    protected final ICoolBarManager getParentCoolBarManager() {
-        // Cast is ok because that's the only
-        // thing we accept in the construtor.
-        return (ICoolBarManager) getParent();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.ICoolBarManager#isLayoutLocked()
-     */
-    public boolean getLockLayout() {
-        return getParentCoolBarManager().getLockLayout();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.ICoolBarManager#lockLayout(boolean)
-     */
-    public void setLockLayout(boolean value) {
-    }
-
-    /* (non-Javadoc)
-     * SubCoolBarManagers do not have control of the global context menu.
-     */
-    public IMenuManager getContextMenuManager() {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * In SubCoolBarManager we do nothing.
-     */
-    public void setContextMenuManager(IMenuManager menuManager) {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionManager#update(boolean)
-     */
-    public void update(boolean force) {
-        // This method is not governed by visibility.  The client may
-        // call <code>setVisible</code> and then force an update.  At that
-        // point we need to update the parent.
-        getParentCoolBarManager().update(force);
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubMenuManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubMenuManager.java
deleted file mode 100644
index 33c9b43..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubMenuManager.java
+++ /dev/null
@@ -1,394 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * A <code>SubMenuManager</code> is used to define a set of contribution
- * items within a parent manager.  Once defined, the visibility of the entire set can 
- * be changed as a unit.
- * <p>
- * A client may ask for and make additions to a submenu.  The visibility of these items
- * is also controlled by the visibility of the <code>SubMenuManager</code>.
- * </p>
- */
-public class SubMenuManager extends SubContributionManager implements
-        IMenuManager {
-
-    /**
-     * Maps each submenu in the manager to a wrapper.  The wrapper is used to
-     * monitor additions and removals.  If the visibility of the manager is modified
-     * the visibility of the submenus is also modified.
-     */
-    private Map mapMenuToWrapper;
-
-    /**
-     * List of registered menu listeners (element type: <code>IMenuListener</code>).
-     */
-    private ListenerList menuListeners = new ListenerList();
-
-    /**
-     * The menu listener added to the parent.  Lazily initialized
-     * in addMenuListener.
-     */
-    private IMenuListener menuListener;
-
-    /**
-     * Constructs a new manager.
-     *
-     * @param mgr the parent manager.  All contributions made to the 
-     *      <code>SubMenuManager</code> are forwarded and appear in the
-     *      parent manager.
-     */
-    public SubMenuManager(IMenuManager mgr) {
-        super(mgr);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#addMenuListener(org.eclipse.jface.action.IMenuListener)
-     */
-    public void addMenuListener(IMenuListener listener) {
-        menuListeners.add(listener);
-        if (menuListener == null) {
-            menuListener = new IMenuListener() {
-                public void menuAboutToShow(IMenuManager manager) {
-                    Object[] listeners = menuListeners.getListeners();
-                    for (int i = 0; i < listeners.length; ++i) {
-                        ((IMenuListener) listeners[i])
-                                .menuAboutToShow(SubMenuManager.this);
-                    }
-                }
-            };
-        }
-        getParentMenuManager().addMenuListener(menuListener);
-    }
-
-    /**
-     * The default implementation of this <code>IContributionItem</code>
-     * method does nothing. Subclasses may override.
-     */
-    public void dispose() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.SubContributionManager#disposeManager()
-     */
-    public void disposeManager() {
-        if (menuListener != null) {
-            getParentMenuManager().removeMenuListener(menuListener);
-            menuListener = null;
-            menuListeners.clear();
-        }
-        // Dispose wrapped menus in addition to removing them.
-        // See bugs 64024 and 73715 for details.
-        // important to dispose menu wrappers before call to super,
-        // otherwise super's call to removeAll will remove them
-        // before they can be disposed
-        if (mapMenuToWrapper != null) {
-            Iterator iter = mapMenuToWrapper.values().iterator();
-            while (iter.hasNext()) {
-                SubMenuManager wrapper = (SubMenuManager) iter.next();
-                wrapper.disposeManager();
-            }
-            mapMenuToWrapper.clear();
-            mapMenuToWrapper = null;
-        }
-        super.disposeManager();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.Composite)
-     */
-    public void fill(Composite parent) {
-        if (isVisible()) {
-			getParentMenuManager().fill(parent);
-		}
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.CoolBar, int)
-     */
-    public void fill(CoolBar parent, int index) {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.Menu, int)
-     */
-    public void fill(Menu parent, int index) {
-        if (isVisible()) {
-			getParentMenuManager().fill(parent, index);
-		}
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.ToolBar, int)
-     */
-    public void fill(ToolBar parent, int index) {
-        if (isVisible()) {
-			getParentMenuManager().fill(parent, index);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContributionManager.
-     *
-     * Returns the item passed to us, not the wrapper.
-     * In the case of menu's not added by this manager,
-     * ensure that we return a wrapper for the menu.
-     */
-    public IContributionItem find(String id) {
-        IContributionItem item = getParentMenuManager().find(id);
-        if (item instanceof SubContributionItem) {
-			// Return the item passed to us, not the wrapper.
-            item = unwrap(item);
-		}
-
-        if (item instanceof IMenuManager) {
-            // if it is a menu manager wrap it before returning
-            IMenuManager menu = (IMenuManager) item;
-            item = getWrapper(menu);
-        }
-
-        return item;
-    }
-
-    /**
-     * <p>
-     * The menu returned is wrapped within a <code>SubMenuManager</code> to
-     * monitor additions and removals.  If the visibility of this menu is modified
-     * the visibility of the submenus is also modified.
-     * </p>
-     */
-    public IMenuManager findMenuUsingPath(String path) {
-        IContributionItem item = findUsingPath(path);
-        if (item instanceof IMenuManager) {
-            return (IMenuManager) item;
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMenuManager.
-     *
-     * Returns the item passed to us, not the wrapper.
-     *
-     * We use use the same algorithm as MenuManager.findUsingPath, but unwrap
-     * submenus along so that SubMenuManagers are visible.
-     */
-    public IContributionItem findUsingPath(String path) {
-        String id = path;
-        String rest = null;
-        int separator = path.indexOf('/');
-        if (separator != -1) {
-            id = path.substring(0, separator);
-            rest = path.substring(separator + 1);
-        }
-        IContributionItem item = find(id); // unwraps item
-        if (rest != null && item instanceof IMenuManager) {
-            IMenuManager menu = (IMenuManager) item;
-            item = menu.findUsingPath(rest);
-        }
-        return item;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#getId()
-     */
-    public String getId() {
-        return getParentMenuManager().getId();
-    }
-
-    /**
-     * @return the parent menu manager that this sub-manager contributes to. 
-     */
-    protected final IMenuManager getParentMenuManager() {
-        // Cast is ok because that's the only
-        // thing we accept in the construtor.
-        return (IMenuManager) getParent();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#getRemoveAllWhenShown()
-     */
-    public boolean getRemoveAllWhenShown() {
-        return false;
-    }
-
-    /**
-     * Returns the menu wrapper for a menu manager.
-     * <p>
-     * The sub menus within this menu are wrapped within a <code>SubMenuManager</code> to
-     * monitor additions and removals.  If the visibility of this menu is modified
-     * the visibility of the sub menus is also modified.
-     * <p>
-     * @param mgr the menu manager to be wrapped
-     *
-     * @return the menu wrapper
-     */
-    protected IMenuManager getWrapper(IMenuManager mgr) {
-        if (mapMenuToWrapper == null) {
-            mapMenuToWrapper = new HashMap(4);
-        }
-        SubMenuManager wrapper = (SubMenuManager) mapMenuToWrapper.get(mgr);
-        if (wrapper == null) {
-            wrapper = wrapMenu(mgr);
-            mapMenuToWrapper.put(mgr, wrapper);
-        }
-        return wrapper;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isDynamic()
-     */
-    public boolean isDynamic() {
-        return getParentMenuManager().isDynamic();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isEnabled()
-     */
-    public boolean isEnabled() {
-        return isVisible() && getParentMenuManager().isEnabled();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isGroupMarker()
-     */
-    public boolean isGroupMarker() {
-        return getParentMenuManager().isGroupMarker();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#isSeparator()
-     */
-    public boolean isSeparator() {
-        return getParentMenuManager().isSeparator();
-    }
-
-    /**
-     * Remove all contribution items.
-     */
-    public void removeAll() {
-        super.removeAll();
-        if (mapMenuToWrapper != null) {
-            Iterator iter = mapMenuToWrapper.values().iterator();
-            while (iter.hasNext()) {
-                SubMenuManager wrapper = (SubMenuManager) iter.next();
-                wrapper.removeAll();
-            }
-            mapMenuToWrapper.clear();
-            mapMenuToWrapper = null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#removeMenuListener(org.eclipse.jface.action.IMenuListener)
-     */
-    public void removeMenuListener(IMenuListener listener) {
-        menuListeners.remove(listener);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#saveWidgetState()
-     */
-    public void saveWidgetState() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#setParent(org.eclipse.jface.action.IContributionManager)
-     */
-    public void setParent(IContributionManager parent) {
-        // do nothing, our "parent manager's" parent 
-        // is set when it is added to a manager
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#setRemoveAllWhenShown(boolean)
-     */
-    public void setRemoveAllWhenShown(boolean removeAll) {
-        Assert.isTrue(false, "Should not be called on submenu manager"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.SubContributionManager#setVisible(boolean)
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (mapMenuToWrapper != null) {
-            Iterator iter = mapMenuToWrapper.values().iterator();
-            while (iter.hasNext()) {
-                SubMenuManager wrapper = (SubMenuManager) iter.next();
-                wrapper.setVisible(visible);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#update()
-     */
-    public void update() {
-        // This method is not governed by visibility.  The client may
-        // call <code>setVisible</code> and then force an update.  At that
-        // point we need to update the parent.
-        getParentMenuManager().update();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionManager#update(boolean)
-     */
-    public void update(boolean force) {
-        // This method is not governed by visibility.  The client may
-        // call <code>setVisible</code> and then force an update.  At that
-        // point we need to update the parent.
-        getParentMenuManager().update(force);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IContributionItem#update(java.lang.String)
-     */
-    public void update(String id) {
-        getParentMenuManager().update(id);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.action.IMenuManager#updateAll(boolean)
-     */
-    public void updateAll(boolean force) {
-        // This method is not governed by visibility.  The client may
-        // call <code>setVisible</code> and then force an update.  At that
-        // point we need to update the parent.
-        getParentMenuManager().updateAll(force);
-    }
-
-    /**
-     * Wraps a menu manager in a sub menu manager, and returns the new wrapper.
-     * @param menu the menu manager to wrap
-     * @return the new wrapped menu manager
-     */
-    protected SubMenuManager wrapMenu(IMenuManager menu) {
-        SubMenuManager mgr = new SubMenuManager(menu);
-        mgr.setVisible(isVisible());
-        return mgr;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubStatusLineManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubStatusLineManager.java
deleted file mode 100644
index 8f7f967..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubStatusLineManager.java
+++ /dev/null
@@ -1,154 +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.jface.action;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A <code>SubStatusLineManager</code> is used to define a set of contribution
- * items within a parent manager.  Once defined, the visibility of the entire set can 
- * be changed as a unit.
- */
-public class SubStatusLineManager extends SubContributionManager implements
-        IStatusLineManager {
-    /**
-     * Current status line message.
-     */
-    private String message;
-
-    /**
-     * Current status line error message.
-     */
-    private String errorMessage;
-
-    /**
-     * Current status line message image.
-     */
-    private Image messageImage;
-
-    /**
-     * Current status line error image
-     */
-    private Image errorImage;
-
-    /**
-     * Constructs a new manager.
-     *
-     * @param mgr the parent manager.  All contributions made to the 
-     *      <code>SubStatusLineManager</code> are forwarded and appear in the
-     *      parent manager.
-     */
-    public SubStatusLineManager(IStatusLineManager mgr) {
-        super(mgr);
-    }
-
-    /**
-     * @return the parent status line manager that this sub-manager contributes
-     * to 
-     */
-    protected final IStatusLineManager getParentStatusLineManager() {
-        // Cast is ok because that's the only
-        // thing we accept in the construtor.
-        return (IStatusLineManager) getParent();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public IProgressMonitor getProgressMonitor() {
-        return getParentStatusLineManager().getProgressMonitor();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public boolean isCancelEnabled() {
-        return getParentStatusLineManager().isCancelEnabled();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setCancelEnabled(boolean enabled) {
-        getParentStatusLineManager().setCancelEnabled(enabled);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setErrorMessage(String message) {
-        this.errorImage = null;
-        this.errorMessage = message;
-        if (isVisible()) {
-			getParentStatusLineManager().setErrorMessage(errorMessage);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setErrorMessage(Image image, String message) {
-        this.errorImage = image;
-        this.errorMessage = message;
-        if (isVisible()) {
-			getParentStatusLineManager().setErrorMessage(errorImage,
-                    errorMessage);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setMessage(String message) {
-        this.messageImage = null;
-        this.message = message;
-        if (isVisible()) {
-			getParentStatusLineManager().setMessage(message);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void setMessage(Image image, String message) {
-        this.messageImage = image;
-        this.message = message;
-        if (isVisible()) {
-			getParentStatusLineManager().setMessage(messageImage, message);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on SubContributionManager.
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (visible) {
-            getParentStatusLineManager().setErrorMessage(errorImage,
-                    errorMessage);
-            getParentStatusLineManager().setMessage(messageImage, message);
-        } else {
-            getParentStatusLineManager().setMessage(null, null);
-            getParentStatusLineManager().setErrorMessage(null, null);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStatusLineManager.
-     */
-    public void update(boolean force) {
-        // This method is not governed by visibility.  The client may
-        // call <code>setVisible</code> and then force an update.  At that
-        // point we need to update the parent.
-        getParentStatusLineManager().update(force);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubToolBarManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubToolBarManager.java
deleted file mode 100644
index b88627a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/SubToolBarManager.java
+++ /dev/null
@@ -1,50 +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.jface.action;
-
-/**
- * A <code>SubToolBarManager</code> monitors the additional and removal of 
- * items from a parent manager so that visibility of the entire set can be changed as a
- * unit.
- */
-public class SubToolBarManager extends SubContributionManager implements
-        IToolBarManager {
-
-    /**
-     * Constructs a new manager.
-     *
-     * @param mgr the parent manager.  All contributions made to the 
-     *      <code>SubToolBarManager</code> are forwarded and appear in the
-     *      parent manager.
-     */
-    public SubToolBarManager(IToolBarManager mgr) {
-        super(mgr);
-    }
-
-    /**
-     * @return the parent toolbar manager that this sub-manager contributes to
-     */
-    protected final IToolBarManager getParentToolBarManager() {
-        // Cast is ok because that's the only
-        // thing we accept in the construtor.
-        return (IToolBarManager) getParent();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IToolBarManager.
-     */
-    public void update(boolean force) {
-        // This method is not governed by visibility.  The client may
-        // call <code>setVisible</code> and then force an update.  At that
-        // point we need to update the parent.
-        getParentToolBarManager().update(force);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarContributionItem.java
deleted file mode 100644
index 08c5ddc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarContributionItem.java
+++ /dev/null
@@ -1,673 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.action;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.internal.provisional.action.IToolBarContributionItem;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * The <code>ToolBarContributionItem</code> class provides a wrapper for tool
- * bar managers when used in cool bar managers. It extends <code>ContributionItem</code>
- * but and provides some additional methods to customize the size of the cool
- * item and to retrieve the underlying tool bar manager.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ToolBarContributionItem extends ContributionItem implements IToolBarContributionItem {
-
-    /**
-     * A constant used by <code>setMinimumItemsToShow</code> and <code>getMinimumItemsToShow</code>
-     * to indicate that all tool items should be shown in the cool item.
-     */
-    public static final int SHOW_ALL_ITEMS = -1;
-
-    /**
-     * The pull down menu used to list all hidden tool items if the current
-     * size is less than the preffered size.
-     */
-    private MenuManager chevronMenuManager = null;
-
-    /**
-     * The widget created for this item; <code>null</code> before creation
-     * and after disposal.
-     */
-    private CoolItem coolItem = null;
-
-    /**
-     * Current height of cool item
-     */
-    private int currentHeight = -1;
-
-    /**
-     * Current width of cool item.
-     */
-    private int currentWidth = -1;
-
-    /**
-     * A flag indicating that this item has been disposed. This prevents future
-     * method invocations from doing things they shouldn't.
-     */
-    private boolean disposed = false;
-
-    /**
-     * Mininum number of tool items to show in the cool item widget.
-     */
-    private int minimumItemsToShow = SHOW_ALL_ITEMS;
-
-    /**
-     * The tool bar manager used to manage the tool items contained in the cool
-     * item widget.
-     */
-    private ToolBarManager toolBarManager = null;
-
-    /**
-     * Enable/disable chevron support.
-     */
-    private boolean useChevron = true;
-
-    /**
-     * Convenience method equivalent to <code>ToolBarContributionItem(new ToolBarManager(), null)</code>.
-     */
-    public ToolBarContributionItem() {
-        this(new ToolBarManager(), null);
-    }
-
-    /**
-     * Convenience method equivalent to <code>ToolBarContributionItem(toolBarManager, null)</code>.
-     * 
-     * @param toolBarManager
-     *            the tool bar manager
-     */
-    public ToolBarContributionItem(IToolBarManager toolBarManager) {
-        this(toolBarManager, null);
-    }
-
-    /**
-     * Creates a tool bar contribution item.
-     * 
-     * @param toolBarManager
-     *            the tool bar manager to wrap
-     * @param id
-     *            the contribution item id, or <code>null</code> if none
-     */
-    public ToolBarContributionItem(IToolBarManager toolBarManager, String id) {
-        super(id);
-        Assert.isTrue(toolBarManager instanceof ToolBarManager);
-        this.toolBarManager = (ToolBarManager) toolBarManager;
-    }
-
-    /**
-     * Checks whether this contribution item has been disposed. If it has, and
-     * the tracing options are active, then it prints some debugging
-     * information.
-     * 
-     * @return <code>true</code> if the item is disposed; <code>false</code>
-     *         otherwise.
-     *  
-     */
-    private final boolean checkDisposed() {
-        if (disposed) {
-            if (Policy.TRACE_TOOLBAR) {
-                System.out
-                        .println("Method invocation on a disposed tool bar contribution item."); //$NON-NLS-1$
-                new Exception().printStackTrace(System.out);
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IContributionItem#dispose()
-     */
-    public void dispose() {
-        // Dispose of the ToolBar and all its contributions
-        if (toolBarManager != null) {
-            toolBarManager.dispose();
-            toolBarManager = null;
-        }
-
-        /*
-         * We need to dispose the cool item or we might be left holding a cool
-         * item with a disposed control.
-         */
-        if ((coolItem != null) && (!coolItem.isDisposed())) {
-            coolItem.dispose();
-            coolItem = null;
-        }
-
-        // Mark this item as disposed.
-        disposed = true;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IContributionItem#fill(org.eclipse.swt.widgets.CoolBar,
-     *      int)
-     */
-    public void fill(CoolBar coolBar, int index) {
-        if (checkDisposed()) {
-            return;
-        }
-
-        if (coolItem == null && coolBar != null) {
-            ToolBar oldToolBar = toolBarManager.getControl();
-            ToolBar toolBar = toolBarManager.createControl(coolBar);
-            if ((oldToolBar != null) && (oldToolBar.equals(toolBar))) {
-                // We are using an old tool bar, so we need to update.
-                toolBarManager.update(true);
-            }
-
-            // Do not create a coolItem if the toolbar is empty
-            if (toolBar.getItemCount() < 1) {
-				return;
-			}
-            int flags = SWT.DROP_DOWN;
-            if (index >= 0) {
-                coolItem = new CoolItem(coolBar, flags, index);
-            } else {
-                coolItem = new CoolItem(coolBar, flags);
-            }
-            // sets the back reference
-            coolItem.setData(this);
-            // Add the toolbar to the CoolItem widget
-            coolItem.setControl(toolBar);
-
-            // Handle Context Menu
-            // ToolBarManager.createControl can actually return a pre-existing control.
-            // Only add the listener if the toolbar was newly created (bug 62097).
-            if (oldToolBar != toolBar) {
-	            toolBar.addListener(SWT.MenuDetect, new Listener() {
-	
-	                public void handleEvent(Event event) {
-	                    // if the toolbar does not have its own context menu then
-	                    // handle the event
-	                    if (toolBarManager.getContextMenuManager() == null) {
-	                        handleContextMenu(event);
-	                    }
-	                }
-	            });
-            }
-
-            // Handle for chevron clicking
-            if (getUseChevron()) {
-                // Chevron Support
-                coolItem.addSelectionListener(new SelectionAdapter() {
-
-                    public void widgetSelected(SelectionEvent event) {
-                        if (event.detail == SWT.ARROW) {
-                            handleChevron(event);
-                        }
-                    }
-                });
-            }
-
-            // Handle for disposal
-            coolItem.addDisposeListener(new DisposeListener() {
-
-                public void widgetDisposed(DisposeEvent event) {
-                    handleWidgetDispose(event);
-                }
-            });
-
-            // Sets the size of the coolItem
-            updateSize(true);
-        }
-    }
-
-    /**
-     * Returns a consistent set of wrap indices. The return value will always
-     * include at least one entry and the first entry will always be zero.
-     * CoolBar.getWrapIndices() is inconsistent in whether or not it returns an
-     * index for the first row.
-     */
-    private int[] getAdjustedWrapIndices(int[] wraps) {
-        int[] adjustedWrapIndices;
-        if (wraps.length == 0) {
-            adjustedWrapIndices = new int[] { 0 };
-        } else {
-            if (wraps[0] != 0) {
-                adjustedWrapIndices = new int[wraps.length + 1];
-                adjustedWrapIndices[0] = 0;
-                for (int i = 0; i < wraps.length; i++) {
-                    adjustedWrapIndices[i + 1] = wraps[i];
-                }
-            } else {
-                adjustedWrapIndices = wraps;
-            }
-        }
-        return adjustedWrapIndices;
-    }
-
-    /**
-     * Returns the current height of the corresponding cool item.
-     * 
-     * @return the current height
-     */
-    public int getCurrentHeight() {
-        if (checkDisposed()) {
-            return -1;
-        }
-        return currentHeight;
-    }
-
-    /**
-     * Returns the current width of the corresponding cool item.
-     * 
-     * @return the current size
-     */
-    public int getCurrentWidth() {
-        if (checkDisposed()) {
-            return -1;
-        }
-        return currentWidth;
-    }
-
-    /**
-     * Returns the minimum number of tool items to show in the cool item.
-     * 
-     * @return the minimum number of tool items to show, or <code>SHOW_ALL_ITEMS</code>
-     *         if a value was not set
-     * @see #setMinimumItemsToShow(int)
-     */
-    public int getMinimumItemsToShow() {
-        if (checkDisposed()) {
-            return -1;
-        }
-        return minimumItemsToShow;
-    }
-
-    /**
-     * Returns the internal tool bar manager of the contribution item.
-     * 
-     * @return the tool bar manager, or <code>null</code> if one is not
-     *         defined.
-     * @see IToolBarManager
-     */
-    public IToolBarManager getToolBarManager() {
-        if (checkDisposed()) {
-            return null;
-        }
-        return toolBarManager;
-    }
-
-    /**
-     * Returns whether chevron support is enabled.
-     * 
-     * @return <code>true</code> if chevron support is enabled, <code>false</code>
-     *         otherwise
-     */
-    public boolean getUseChevron() {
-        if (checkDisposed()) {
-            return false;
-        }
-        return useChevron;
-    }
-
-    /**
-     * Create and display the chevron menu.
-     */
-    private void handleChevron(SelectionEvent event) {
-        CoolItem item = (CoolItem) event.widget;
-        Control control = item.getControl();
-        if ((control instanceof ToolBar) == false) {
-            return;
-        }
-        CoolBar coolBar = item.getParent();
-        ToolBar toolBar = (ToolBar) control;
-        Rectangle toolBarBounds = toolBar.getBounds();
-        ToolItem[] items = toolBar.getItems();
-        ArrayList hidden = new ArrayList();
-        for (int i = 0; i < items.length; ++i) {
-            Rectangle itemBounds = items[i].getBounds();
-            if (!((itemBounds.x + itemBounds.width <= toolBarBounds.width) && (itemBounds.y
-                    + itemBounds.height <= toolBarBounds.height))) {
-                hidden.add(items[i]);
-            }
-        }
-
-        // Create a pop-up menu with items for each of the hidden buttons.
-        if (chevronMenuManager != null) {
-            chevronMenuManager.dispose();
-        }
-        chevronMenuManager = new MenuManager();
-        for (Iterator i = hidden.iterator(); i.hasNext();) {
-            ToolItem toolItem = (ToolItem) i.next();
-            IContributionItem data = (IContributionItem) toolItem.getData();
-            if (data instanceof ActionContributionItem) {
-                ActionContributionItem contribution = new ActionContributionItem(
-                        ((ActionContributionItem) data).getAction());
-                chevronMenuManager.add(contribution);
-            } else if (data instanceof SubContributionItem) {
-                IContributionItem innerData = ((SubContributionItem) data)
-                        .getInnerItem();
-                if (innerData instanceof ActionContributionItem) {
-                    ActionContributionItem contribution = new ActionContributionItem(
-                            ((ActionContributionItem) innerData).getAction());
-                    chevronMenuManager.add(contribution);
-                }
-            } else if (data.isSeparator()) {
-                chevronMenuManager.add(new Separator());
-            }
-        }
-        Menu popup = chevronMenuManager.createContextMenu(coolBar);
-        Point chevronPosition = coolBar.toDisplay(event.x, event.y);
-        popup.setLocation(chevronPosition.x, chevronPosition.y);
-        popup.setVisible(true);
-    }
-
-    /**
-     * Handles the event when the toobar item does not have its own context
-     * menu.
-     * 
-     * @param event
-     *            the event object
-     */
-    private void handleContextMenu(Event event) {
-        ToolBar toolBar = toolBarManager.getControl();
-        // If parent has a menu then use that one
-        Menu parentMenu = toolBar.getParent().getMenu();
-        if ((parentMenu != null) && (!parentMenu.isDisposed())) {
-            toolBar.setMenu(parentMenu);
-            // Hook listener to remove menu once it has disapeared
-            parentMenu.addListener(SWT.Hide, new Listener() {
-
-                public void handleEvent(Event innerEvent) {
-                    ToolBar innerToolBar = toolBarManager.getControl();
-                    if (innerToolBar != null) {
-                        innerToolBar.setMenu(null);
-                        Menu innerParentMenu = innerToolBar.getParent()
-                                .getMenu();
-                        if (innerParentMenu != null) {
-                            innerParentMenu.removeListener(SWT.Hide, this);
-                        }
-                    }
-                }
-            });
-        }
-    }
-
-    /**
-     * Handles the disposal of the widget.
-     * 
-     * @param event
-     *            the event object
-     */
-    private void handleWidgetDispose(DisposeEvent event) {
-        coolItem = null;
-    }
-
-    /**
-     * A contribution item is visible iff its internal state is visible <em>or</em>
-     * the tool bar manager contains something other than group markers and
-     * separators.
-     * 
-     * @return <code>true</code> if the tool bar manager contains something
-     *         other than group marks and separators, and the internal state is
-     *         set to be visible.
-     */
-    public boolean isVisible() {
-        if (checkDisposed()) {
-            return false;
-        }
-
-        boolean visibleItem = false;
-        if (toolBarManager != null) {
-            IContributionItem[] contributionItems = toolBarManager.getItems();
-            for (int i = 0; i < contributionItems.length; i++) {
-                IContributionItem contributionItem = contributionItems[i];
-                if ((!contributionItem.isGroupMarker())
-                        && (!contributionItem.isSeparator())) {
-                    visibleItem = true;
-                    break;
-                }
-            }
-        }
-
-        return (visibleItem || super.isVisible());
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IContributionItem#saveWidgetState()
-     */
-    public void saveWidgetState() {
-        if (checkDisposed()) {
-            return;
-        }
-        if (coolItem == null) {
-			return;
-		}
-
-        //1. Save current size
-        CoolBar coolBar = coolItem.getParent();
-        boolean isLastOnRow = false;
-        int lastIndex = coolBar.getItemCount() - 1;
-        int coolItemIndex = coolBar.indexOf(coolItem);
-        int[] wrapIndicies = getAdjustedWrapIndices(coolBar.getWrapIndices());
-        // Traverse through all wrap indicies backwards
-        for (int row = wrapIndicies.length - 1; row >= 0; row--) {
-            if (wrapIndicies[row] <= coolItemIndex) {
-
-                int nextRow = row + 1;
-                int nextRowStartIndex;
-                if (nextRow > (wrapIndicies.length - 1)) {
-                    nextRowStartIndex = lastIndex + 1;
-                } else {
-                    nextRowStartIndex = wrapIndicies[nextRow];
-                }
-
-                // Check to see if its the last item on the row
-                if (coolItemIndex == (nextRowStartIndex - 1)) {
-                    isLastOnRow = true;
-                }
-                break;
-            }
-        }
-
-        // Save the preferred size as actual size for the last item on a row
-        int nCurrentWidth;
-        if (isLastOnRow) {
-            nCurrentWidth = coolItem.getPreferredSize().x;
-        } else {
-            nCurrentWidth = coolItem.getSize().x;
-        }
-        setCurrentWidth(nCurrentWidth);
-        setCurrentHeight(coolItem.getSize().y);
-    }
-
-    /**
-     * Sets the current height of the cool item. Update(SIZE) should be called
-     * to adjust the widget.
-     * 
-     * @param currentHeight
-     *            the current height to set
-     */
-    public void setCurrentHeight(int currentHeight) {
-        if (checkDisposed()) {
-            return;
-        }
-        this.currentHeight = currentHeight;
-    }
-
-    /**
-     * Sets the current width of the cool item. Update(SIZE) should be called
-     * to adjust the widget.
-     * 
-     * @param currentWidth
-     *            the current width to set
-     */
-    public void setCurrentWidth(int currentWidth) {
-        if (checkDisposed()) {
-            return;
-        }
-        this.currentWidth = currentWidth;
-    }
-
-    /**
-     * Sets the minimum number of tool items to show in the cool item. If this
-     * number is less than the total tool items, a chevron will appear and the
-     * hidden tool items appear in a drop down menu. By default, all the tool
-     * items are shown in the cool item.
-     * 
-     * @param minimumItemsToShow
-     *            the minimum number of tool items to show.
-     * @see #getMinimumItemsToShow()
-     * @see #setUseChevron(boolean)
-     */
-    public void setMinimumItemsToShow(int minimumItemsToShow) {
-        if (checkDisposed()) {
-            return;
-        }
-        this.minimumItemsToShow = minimumItemsToShow;
-    }
-
-    /**
-     * Enables or disables chevron support for the cool item. By default,
-     * chevron support is enabled.
-     * 
-     * @param value
-     *            <code>true</code> to enable chevron support, <code>false</code>
-     *            otherwise.
-     */
-    public void setUseChevron(boolean value) {
-        if (checkDisposed()) {
-            return;
-        }
-        useChevron = value;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IContributionItem#update(java.lang.String)
-     */
-    public void update(String propertyName) {
-        if (checkDisposed()) {
-            return;
-        }
-        if (coolItem != null) {
-            IToolBarManager manager = getToolBarManager();
-            if (manager != null) {
-                manager.update(true);
-            }
-
-            if ((propertyName == null)
-                    || propertyName.equals(ICoolBarManager.SIZE)) {
-                updateSize(true);
-            }
-        }
-    }
-
-    /**
-     * Updates the cool items' preferred, minimum, and current size. The
-     * preferred size is calculated based on the tool bar size and extra trim.
-     * 
-     * @param changeCurrentSize
-     *            <code>true</code> if the current size should be changed to
-     *            the preferred size, <code>false</code> to not change the
-     *            current size
-     */
-    private void updateSize(boolean changeCurrentSize) {
-        if (checkDisposed()) {
-            return;
-        }
-        // cannot set size if coolItem is null
-        if (coolItem == null || coolItem.isDisposed()) {
-            return;
-        }
-        boolean locked = false;
-        CoolBar coolBar = coolItem.getParent();
-        try {
-            // Fix odd behaviour with locked tool bars
-            if (coolBar != null) {
-                if (coolBar.getLocked()) {
-                    coolBar.setLocked(false);
-                    locked = true;
-                }
-            }
-            ToolBar toolBar = (ToolBar) coolItem.getControl();
-            if ((toolBar == null) || (toolBar.isDisposed())
-                    || (toolBar.getItemCount() <= 0)) {
-                // if the toolbar does not contain any items then dispose of
-                // coolItem
-                coolItem.setData(null);
-                Control control = coolItem.getControl();
-                if ((control != null) && !control.isDisposed()) {
-                    control.dispose();
-                    coolItem.setControl(null);
-                }
-                if (!coolItem.isDisposed()) {
-                    coolItem.dispose();
-                }
-            } else {
-                // If the toolbar item exists then adjust the size of the cool
-                // item
-                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);
-                // note setMinimumSize must be called before setSize, see PR
-                // 15565
-                // Set minimum size
-                if (getMinimumItemsToShow() != SHOW_ALL_ITEMS) {
-                    int toolItemWidth = toolBar.getItems()[0].getWidth();
-                    int minimumWidth = toolItemWidth * getMinimumItemsToShow();
-                    coolItem.setMinimumSize(minimumWidth, toolBarSize.y);
-                } else {
-                    coolItem.setMinimumSize(toolBarSize.x, toolBarSize.y);
-                }
-                if (changeCurrentSize) {
-                    // Set current size to preferred size
-                    coolItem.setSize(preferredSize);
-                }
-            }
-        } finally {
-            // If the cool bar was locked, then set it back to locked
-            if ((locked) && (coolBar != null)) {
-                coolBar.setLocked(true);
-            }
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarManager.java
deleted file mode 100644
index 918dd0c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/ToolBarManager.java
+++ /dev/null
@@ -1,459 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.action;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.accessibility.AccessibleListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.CoolItem;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * A tool bar manager is a contribution manager which realizes itself and its
- * items in a tool bar control.
- * <p>
- * This class may be instantiated; it may also be subclassed if a more
- * sophisticated layout is required.
- * </p>
- */
-public class ToolBarManager extends ContributionManager implements
-		IToolBarManager {
-
-	/**
-	 * The tool bar items style; <code>SWT.NONE</code> by default.
-	 */
-	private int itemStyle = SWT.NONE;
-
-	/**
-	 * The tool bat control; <code>null</code> before creation and after
-	 * disposal.
-	 */
-	private ToolBar toolBar = null;
-
-	/**
-	 * The menu manager to the context menu associated with the toolbar.
-	 * 
-	 * @since 3.0
-	 */
-	private MenuManager contextMenuManager = null;
-
-	/**
-	 * Creates a new tool bar manager with the default SWT button style. Use the
-	 * {@link #createControl(Composite)} method to create the tool bar control.
-	 * 
-	 */
-	public ToolBarManager() {
-		//Do nothing if there are no parameters
-	}
-
-	/**
-	 * Creates a tool bar manager with the given SWT button style. Use the
-	 * <code>createControl</code> method to create the tool bar control.
-	 * 
-	 * @param style
-	 *            the tool bar item style
-	 * @see org.eclipse.swt.widgets.ToolBar for valid style bits
-	 */
-	public ToolBarManager(int style) {
-		itemStyle = style;
-	}
-
-	/**
-	 * Creates a tool bar manager for an existing tool bar control. This manager
-	 * becomes responsible for the control, and will dispose of it when the
-	 * manager is disposed.
-	 * <strong>NOTE</strong> When creating a ToolBarManager from an existing
-	 * {@link ToolBar} you will not get the accessible listener provided by
-	 * JFace.
-	 * @see #ToolBarManager()
-	 * @see #ToolBarManager(int)
-	 * 
-	 * @param toolbar
-	 *            the tool bar control
-	 */
-	public ToolBarManager(ToolBar toolbar) {
-		this();
-		this.toolBar = toolbar;
-	}
-
-	/**
-	 * Creates and returns this manager's tool bar control. Does not create a
-	 * new control if one already exists. Also create an {@link AccessibleListener}
-	 * for the {@link ToolBar}.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @return the tool bar control
-	 */
-	public ToolBar createControl(Composite parent) {
-		if (!toolBarExist() && parent != null) {
-			toolBar = new ToolBar(parent, itemStyle);
-			toolBar.setMenu(getContextMenuControl());
-			update(true);
-			
-			toolBar.getAccessible().addAccessibleListener(getAccessibleListener());
-		}
-
-		return toolBar;
-	}
-
-	/**
-	 * Get the accessible listener for the tool bar.
-	 * 
-	 * @return AccessibleListener
-	 * 
-	 * @since 3.1
-	 */
-	private AccessibleListener getAccessibleListener() {
-		return new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				if (e.childID != ACC.CHILDID_SELF) {
-					ToolItem item = toolBar.getItem(e.childID);
-					if (item != null) {
-						String toolTip = item.getToolTipText();
-						if (toolTip != null) {
-							e.result = toolTip;
-						}
-					}
-				}
-			}
-		};
-
-	}
-
-	/**
-	 * Disposes of this tool bar manager and frees all allocated SWT resources.
-	 * Notifies all contribution items of the dispose. Note that this method
-	 * does not clean up references between this tool bar manager and its
-	 * associated contribution items. Use <code>removeAll</code> for that
-	 * purpose.
-	 */
-	public void dispose() {
-
-		if (toolBarExist()) {
-			toolBar.dispose();
-		}
-		toolBar = null;
-
-		IContributionItem[] items = getItems();
-		for (int i = 0; i < items.length; i++) {
-			items[i].dispose();
-		}
-
-		if (getContextMenuManager() != null) {
-			getContextMenuManager().dispose();
-			setContextMenuManager(null);
-		}
-	}
-
-	/**
-	 * Returns the tool bar control for this manager.
-	 * 
-	 * @return the tool bar control, or <code>null</code> if none (before
-	 *         creating or after disposal)
-	 */
-	public ToolBar getControl() {
-		return toolBar;
-	}
-
-	/**
-	 * Re-lays out the tool bar.
-	 * <p>
-	 * The default implementation of this framework method re-lays out the
-	 * parent when the number of items are different and the new count != 0
-	 * 
-	 * @param layoutBar
-	 *            the tool bar control
-	 * @param oldCount
-	 *            the old number of items
-	 * @param newCount
-	 *            the new number of items
-	 */
-	protected void relayout(ToolBar layoutBar, int oldCount, int newCount) {
-		if ((oldCount != newCount) && (newCount!=0)) {
-			Point beforePack = layoutBar.getSize();
-			layoutBar.pack(true);
-			Point afterPack = layoutBar.getSize();
-			
-			// If the TB didn't change size then we're done
-			if (beforePack.equals(afterPack))
-				return;
-			
-			// OK, we need to re-layout the TB
-			layoutBar.getParent().layout();
-			
-			// Now, if we're in a CoolBar then change the CoolItem size as well
-			if (layoutBar.getParent() instanceof CoolBar) {
-				CoolBar cb = (CoolBar) layoutBar.getParent();
-				CoolItem[] items = cb.getItems();
-				for (int i = 0; i < items.length; i++) {
-					if (items[i].getControl() == layoutBar) {
-						Point curSize = items[i].getSize();
-						items[i].setSize(curSize.x+ (afterPack.x - beforePack.x),
-									curSize.y+ (afterPack.y - beforePack.y));
-						return;
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns whether the tool bar control is created and not disposed.
-	 * 
-	 * @return <code>true</code> if the control is created and not disposed,
-	 *         <code>false</code> otherwise
-	 */
-	private boolean toolBarExist() {
-		return toolBar != null && !toolBar.isDisposed();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IContributionManager.
-	 */
-	public void update(boolean force) {
-
-		//	long startTime= 0;
-		//	if (DEBUG) {
-		//		dumpStatistics();
-		//		startTime= (new Date()).getTime();
-		//	}
-
-		if (isDirty() || force) {
-
-			if (toolBarExist()) {
-
-				int oldCount = toolBar.getItemCount();
-
-				// clean contains all active items without double separators
-				IContributionItem[] items = getItems();
-				ArrayList clean = new ArrayList(items.length);
-				IContributionItem separator = null;
-				//			long cleanStartTime= 0;
-				//			if (DEBUG) {
-				//				cleanStartTime= (new Date()).getTime();
-				//			}
-				for (int i = 0; i < items.length; ++i) {
-					IContributionItem ci = items[i];
-					if (!isChildVisible(ci)) {
-						continue;
-					}
-					if (ci.isSeparator()) {
-						// delay creation until necessary
-						// (handles both adjacent separators, and separator at
-						// end)
-						separator = ci;
-					} else {
-						if (separator != null) {
-							if (clean.size() > 0) {
-								clean.add(separator);
-							}
-							separator = null;
-						}
-						clean.add(ci);
-					}
-				}
-				//			if (DEBUG) {
-				//				System.out.println(" Time needed to build clean vector: " +
-				// ((new Date()).getTime() - cleanStartTime));
-				//			}
-
-				// determine obsolete items (removed or non active)
-				ToolItem[] mi = toolBar.getItems();
-				ArrayList toRemove = new ArrayList(mi.length);
-				for (int i = 0; i < mi.length; i++) {
-					// there may be null items in a toolbar
-					if (mi[i] == null)
-						continue;
-					
-					Object data = mi[i].getData();
-					if (data == null
-							|| !clean.contains(data)
-							|| (data instanceof IContributionItem && ((IContributionItem) data)
-									.isDynamic())) {
-						toRemove.add(mi[i]);
-					}
-				}
-
-				// Turn redraw off if the number of items to be added
-				// is above a certain threshold, to minimize flicker,
-				// otherwise the toolbar can be seen to redraw after each item.
-				// Do this before any modifications are made.
-				// We assume each contribution item will contribute at least one
-				// toolbar item.
-				boolean useRedraw = (clean.size() - (mi.length - toRemove
-						.size())) >= 3;
-                try {
-                    if (useRedraw) {
-                        toolBar.setRedraw(false);
-                    }
-
-                    // remove obsolete items
-                    for (int i = toRemove.size(); --i >= 0;) {
-                        ToolItem item = (ToolItem) toRemove.get(i);
-                        if (!item.isDisposed()) {
-                            Control ctrl = item.getControl();
-                            if (ctrl != null) {
-                                item.setControl(null);
-                                ctrl.dispose();
-                            }
-                            item.dispose();
-                        }
-                    }
-
-                    // add new items
-                    IContributionItem src, dest;
-                    mi = toolBar.getItems();
-                    int srcIx = 0;
-                    int destIx = 0;
-                    for (Iterator e = clean.iterator(); e.hasNext();) {
-                        src = (IContributionItem) e.next();
-
-                        // get corresponding item in SWT widget
-                        if (srcIx < mi.length) {
-							dest = (IContributionItem) mi[srcIx].getData();
-						} else {
-							dest = null;
-						}
-
-                        if (dest != null && src.equals(dest)) {
-                            srcIx++;
-                            destIx++;
-                            continue;
-                        }
-
-                        if (dest != null && dest.isSeparator()
-                                && src.isSeparator()) {
-                            mi[srcIx].setData(src);
-                            srcIx++;
-                            destIx++;
-                            continue;
-                        }
-
-                        int start = toolBar.getItemCount();
-                        src.fill(toolBar, destIx);
-                        int newItems = toolBar.getItemCount() - start;
-                        for (int i = 0; i < newItems; i++) {
-                            ToolItem item = toolBar.getItem(destIx++);
-                            item.setData(src);
-                        }
-                    }
-
-                    // remove any old tool items not accounted for
-                    for (int i = mi.length; --i >= srcIx;) {
-                        ToolItem item = mi[i];
-                        if (!item.isDisposed()) {
-                            Control ctrl = item.getControl();
-                            if (ctrl != null) {
-                                item.setControl(null);
-                                ctrl.dispose();
-                            }
-                            item.dispose();
-                        }
-                    }
-
-                    setDirty(false);
-
-                    // turn redraw back on if we turned it off above
-                } finally {
-                    if (useRedraw) {
-                        toolBar.setRedraw(true);
-                    }
-                }
-
-				int newCount = toolBar.getItemCount();
-				
-				// If we're forcing a change then ensure that we re-layout everything
-				if (force)
-					oldCount = newCount+1;
-				
-				relayout(toolBar, oldCount, newCount);
-			}
-
-		}
-
-		//	if (DEBUG) {
-		//		System.out.println(" Time needed for update: " + ((new
-		// Date()).getTime() - startTime));
-		//		System.out.println();
-		//	}
-	}
-
-	/**
-	 * Returns the control of the Menu Manager. If the menu manager does not
-	 * have a control then one is created.
-	 * 
-	 * @return menu widget associated with manager
-	 */
-	private Menu getContextMenuControl() {
-		if ((contextMenuManager != null) && (toolBar != null)) {
-			Menu menuWidget = contextMenuManager.getMenu();
-			if ((menuWidget == null) || (menuWidget.isDisposed())) {
-				menuWidget = contextMenuManager.createContextMenu(toolBar);
-			}
-			return menuWidget;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the context menu manager for this tool bar manager.
-	 * 
-	 * @return the context menu manager, or <code>null</code> if none
-	 * @since 3.0
-	 */
-	public MenuManager getContextMenuManager() {
-		return contextMenuManager;
-	}
-
-	/**
-	 * Sets the context menu manager for this tool bar manager to the given menu
-	 * manager. If the tool bar control exists, it also adds the menu control to
-	 * the tool bar.
-	 * 
-	 * @param contextMenuManager
-	 *            the context menu manager, or <code>null</code> if none
-	 * @since 3.0
-	 */
-	public void setContextMenuManager(MenuManager contextMenuManager) {
-		this.contextMenuManager = contextMenuManager;
-		if (toolBar != null) {
-			toolBar.setMenu(getContextMenuControl());
-		}
-	}
-
-	private boolean isChildVisible(IContributionItem item) {
-		Boolean v;
-		
-		IContributionManagerOverrides overrides = getOverrides();
-		if(overrides == null) {
-			v = null;
-		} else {
-			v = getOverrides().getVisible(item); 
-		}
-		
-		if (v != null) {
-			return v.booleanValue();
-		}
-		return item.isVisible();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/images/stop.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/images/stop.gif
deleted file mode 100644
index dc47edf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/images/stop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/action/package.html
deleted file mode 100644
index b9f7ac7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/action/package.html
+++ /dev/null
@@ -1,31 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for shared UI resources such as menus,
-tool bars, and status lines.
-<h2>
-Package Specification</h2>
-Contribution managers coordinate contributions to shared UI resources such
-as menus, menu bars, tool bars, and status lines. <tt>ContributionManager</tt>
-maintains the contributions as a dynamic list of contribution items (<tt>IContributionItems</tt>).
-Separators (<tt>Separator</tt>) can be included in contribution lists to
-break up the list's visual representation. Internally, contribution lists
-can be organized into named groups via special group markers (<tt>GroupMarker</tt>)
-to facilitate programatic insertion at specific positions within the list.
-<p>Three specific contribution managers are provided: a status line manager
-(<tt>StatusLineManager</tt>), a tool bar manager (<tt>ToolBarManager</tt>),
-and a hierarchical menu manager (<tt>MenuManager</tt>).
-<p>Actions (<tt>IAction</tt>) are commands which can be triggered from
-the UI, like the ones found in menus, toolbars, and buttons. Menus and
-tools bars are typically populated with contribution items that delegate
-to actions (<tt>ActionContributionItem</tt>).
-<p>Note: None of the classes in this package maintain global state.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Binding.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Binding.java
deleted file mode 100644
index 4b32100..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Binding.java
+++ /dev/null
@@ -1,417 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.bindings;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.StringWriter;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * A binding is a link between user input and the triggering of a particular
- * command. The most common example of a binding is a keyboard shortcut, but
- * there are also mouse and gesture bindings.
- * </p>
- * <p>
- * Bindings are linked to particular conditions within the application. Some of
- * these conditions change infrequently (e.g., locale, scheme), while some will
- * tend to change quite frequently (e.g., context). This allows the bindings to
- * be tailored to particular situations. For example, a set of bindings may be
- * appropriate only inside a text editor.  Or, perhaps, a set of bindings might
- * be appropriate only for a given locale, such as bindings that coexist with
- * the Input Method Editor (IME) on Chinese locales.
- * </p>
- * <p>
- * It is also possible to remove a particular binding. This is typically done as
- * part of user configuration (e.g., user changing keyboard shortcuts). However,
- * it can also be helpful when trying to change a binding on a particular locale
- * or platform. An "unbinding" is really just a binding with no command
- * identifier. For it to unbind a particular binding, it must match that binding
- * in its context identifier and scheme identifier. Subclasses (e.g.,
- * <code>KeyBinding</code>) may require other properties to match (e.g.,
- * <code>keySequence</code>). If these properties match, then this is an
- * unbinding. Note: the locale and platform can be different.
- * </p>
- * <p>
- * For example, imagine you have a key binding that looks like this:
- * </p>
- * <code><pre>
- * KeyBinding(command, scheme, context, &quot;Ctrl+Shift+F&quot;)
- * </pre></code>
- * <p>
- * On GTK+, the "Ctrl+Shift+F" interferes with some native behaviour. To change
- * the binding, we first unbind the "Ctrl+Shift+F" key sequence by 
- * assigning it a null command on the gtk platform.  We then create a new binding
- * that maps the command to the "Esc Ctrl+F" key sequence.
- * </p>
- * <code><pre>
- *     KeyBinding("Ctrl+Shift+F",null,scheme,context,null,gtk,null,SYSTEM)
- *     KeyBinding("Esc Ctrl+F",parameterizedCommand,scheme,context,null,gtk,SYSTEM)
- * </pre></code>
- * <p>
- * Bindings are intended to be immutable objects.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class Binding {
-
-	/**
-	 * The constant integer hash code value meaning the hash code has not yet
-	 * been computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-
-	/**
-	 * A factor for computing the hash code for all key bindings.
-	 */
-	private final static int HASH_FACTOR = 89;
-
-	/**
-	 * The seed for the hash code for all key bindings.
-	 */
-	private final static int HASH_INITIAL = Binding.class.getName().hashCode();
-
-	/**
-	 * The type of binding that is defined by the system (i.e., by the
-	 * application developer). In the case of an application based on the
-	 * Eclipse workbench, this is the registry.
-	 */
-	public static final int SYSTEM = 0;
-
-	/**
-	 * The type of binding that is defined by the user (i.e., by the end user of
-	 * the application). In the case of an application based on the Eclipse
-	 * workbench, this is the preference store.
-	 */
-	public static final int USER = 1;
-
-	/**
-	 * The parameterized command to which this binding applies. This value may
-	 * be <code>null</code> if this binding is meant to "unbind" an existing
-	 * binding.
-	 */
-	private final ParameterizedCommand command;
-
-	/**
-	 * The context identifier to which this binding applies. This context must
-	 * be active before this key binding becomes active. This value will never
-	 * be <code>null</code>.
-	 */
-	private final String contextId;
-
-	/**
-	 * The hash code for this key binding. This value is computed lazily, and
-	 * marked as invalid when one of the values on which it is based changes.
-	 */
-	private transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-	/**
-	 * The locale in which this binding applies. This value may be
-	 * <code>null</code> if this binding is meant to apply to all locales.
-	 * This string should be in the same format returned by
-	 * <code>Locale.getDefault().toString()</code>.
-	 */
-	private final String locale;
-
-	/**
-	 * The platform on which this binding applies. This value may be
-	 * <code>null</code> if this binding is meant to apply to all platforms.
-	 * This string should be in the same format returned by
-	 * <code>SWT.getPlatform</code>.
-	 */
-	private final String platform;
-
-	/**
-	 * The identifier of the scheme in which this binding applies. This value
-	 * will never be <code>null</code>.
-	 */
-	private final String schemeId;
-
-	/**
-	 * The string representation of this binding. This string is for debugging
-	 * purposes only, and is not meant to be displayed to the user. This value
-	 * is computed lazily.
-	 */
-	protected transient String string = null;
-
-	/**
-	 * The type of binding this represents. This is used to distinguish between
-	 * different priority levels for bindings. For example, in our case,
-	 * <code>USER</code> bindings override <code>SYSTEM</code> bindings.
-	 */
-	private final int type;
-
-	/**
-	 * Constructs a new instance of <code>Binding</code>.
-	 * 
-	 * @param command
-	 *            The parameterized command to which this binding applies; this
-	 *            value may be <code>null</code> if the binding is meant to
-	 *            "unbind" a previously defined binding.
-	 * @param schemeId
-	 *            The scheme to which this binding belongs; this value must not
-	 *            be <code>null</code>.
-	 * @param contextId
-	 *            The context to which this binding applies; this value must not
-	 *            be <code>null</code>.
-	 * @param locale
-	 *            The locale to which this binding applies; this value may be
-	 *            <code>null</code> if it applies to all locales.
-	 * @param platform
-	 *            The platform to which this binding applies; this value may be
-	 *            <code>null</code> if it applies to all platforms.
-	 * @param windowManager
-	 *            The window manager to which this binding applies; this value
-	 *            may be <code>null</code> if it applies to all window
-	 *            managers. This value is currently ignored.
-	 * @param type
-	 *            The type of binding. This should be either <code>SYSTEM</code>
-	 *            or <code>USER</code>.
-	 */
-	protected Binding(final ParameterizedCommand command,
-			final String schemeId, final String contextId, final String locale,
-			final String platform, final String windowManager, final int type) {
-		if (schemeId == null) {
-			throw new NullPointerException("The scheme cannot be null"); //$NON-NLS-1$
-		}
-
-		if (contextId == null) {
-			throw new NullPointerException("The context cannot be null"); //$NON-NLS-1$
-		}
-
-		if ((type != SYSTEM) && (type != USER)) {
-			throw new IllegalArgumentException(
-					"The type must be SYSTEM or USER"); //$NON-NLS-1$
-		}
-
-		this.command = command;
-		this.schemeId = schemeId.intern();
-		this.contextId = contextId.intern();
-		this.locale = (locale == null) ? null : locale.intern();
-		this.platform = (platform == null) ? null : platform.intern();
-		this.type = type;
-	}
-
-	/**
-	 * Tests whether this binding is intended to delete another binding. The
-	 * receiver must have a <code>null</code> command identifier.
-	 * 
-	 * @param binding
-	 *            The binding to test; must not be <code>null</code>.
-	 *            This binding must be a <code>SYSTEM</code> binding.
-	 * @return <code>true</code> if the receiver deletes the binding defined by
-	 * 			the argument.
-	 */
-	final boolean deletes(final Binding binding) {
-		boolean deletes = true;
-		deletes &= Util.equals(getContextId(), binding.getContextId());
-		deletes &= Util.equals(getTriggerSequence(), binding
-				.getTriggerSequence());
-		if (getLocale() != null) {
-			deletes &= !Util.equals(getLocale(), binding.getLocale());
-		}
-		if (getPlatform() != null) {
-			deletes &= !Util.equals(getPlatform(), binding.getPlatform());
-		}
-		deletes &= (binding.getType() == SYSTEM);
-		deletes &= Util.equals(getParameterizedCommand(), null);
-
-		return deletes;
-	}
-
-	/**
-	 * Tests whether this binding is equal to another object. Bindings are only
-	 * equal to other bindings with equivalent values.
-	 * 
-	 * @param object
-	 *            The object with which to compare; may be <code>null</code>.
-	 * @return <code>true</code> if the object is a binding with equivalent
-	 *         values for all of its properties; <code>false</code> otherwise.
-	 */
-	public final boolean equals(final Object object) {
-		if (this == object) {
-			return true;
-
-		}
-		if (!(object instanceof Binding)) {
-			return false;
-		}
-
-		final Binding binding = (Binding) object;
-		if (!Util.equals(getParameterizedCommand(), binding
-				.getParameterizedCommand())) {
-			return false;
-		}
-		if (!Util.equals(getContextId(), binding.getContextId())) {
-			return false;
-		}
-		if (!Util.equals(getTriggerSequence(), binding.getTriggerSequence())) {
-			return false;
-		}
-		if (!Util.equals(getLocale(), binding.getLocale())) {
-			return false;
-		}
-		if (!Util.equals(getPlatform(), binding.getPlatform())) {
-			return false;
-		}
-		if (!Util.equals(getSchemeId(), binding.getSchemeId())) {
-			return false;
-		}
-		return (getType() == binding.getType());
-	}
-
-	/**
-	 * Returns the parameterized command to which this binding applies. If the
-	 * identifier is <code>null</code>, then this binding is "unbinding" an
-	 * existing binding.
-	 * 
-	 * @return The fully-parameterized command; may be <code>null</code>.
-	 */
-	public final ParameterizedCommand getParameterizedCommand() {
-		return command;
-	}
-
-	/**
-	 * Returns the identifier of the context in which this binding applies.
-	 * 
-	 * @return The context identifier; never <code>null</code>.
-	 */
-	public final String getContextId() {
-		return contextId;
-	}
-
-	/**
-	 * Returns the locale in which this binding applies. If the locale is
-	 * <code>null</code>, then this binding applies to all locales. This
-	 * string is the same format as returned by
-	 * <code>Locale.getDefault().toString()</code>.
-	 * 
-	 * @return The locale; may be <code>null</code>.
-	 */
-	public final String getLocale() {
-		return locale;
-	}
-
-	/**
-	 * Returns the platform on which this binding applies. If the platform is
-	 * <code>null</code>, then this binding applies to all platforms. This
-	 * string is the same format as returned by <code>SWT.getPlatform()</code>.
-	 * 
-	 * @return The platform; may be <code>null</code>.
-	 */
-	public final String getPlatform() {
-		return platform;
-	}
-
-	/**
-	 * Returns the identifier of the scheme in which this binding applies.
-	 * 
-	 * @return The scheme identifier; never <code>null</code>.
-	 */
-	public final String getSchemeId() {
-		return schemeId;
-	}
-
-	/**
-	 * Returns the sequence of trigger for a given binding. The triggers can be
-	 * anything, but above all it must be hashable. This trigger sequence is
-	 * used by the binding manager to distinguish between different bindings.
-	 * 
-	 * @return The object representing an input event that will trigger this
-	 *         binding; must not be <code>null</code>.
-	 */
-	public abstract TriggerSequence getTriggerSequence();
-
-	/**
-	 * Returns the type for this binding. As it stands now, this value will
-	 * either be <code>SYSTEM</code> or <code>USER</code>. In the future,
-	 * more types might be added.
-	 * 
-	 * @return The type for this binding.
-	 */
-	public final int getType() {
-		return type;
-	}
-
-	/**
-	 * Computes the hash code for this key binding based on all of its
-	 * attributes.
-	 * 
-	 * @return The hash code for this key binding.
-	 */
-	public final int hashCode() {
-		if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL;
-			hashCode = hashCode * HASH_FACTOR
-					+ Util.hashCode(getParameterizedCommand());
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(getContextId());
-			hashCode = hashCode * HASH_FACTOR
-					+ Util.hashCode(getTriggerSequence());
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(getLocale());
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(getPlatform());
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(getSchemeId());
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(getType());
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-
-		return hashCode;
-	}
-
-	/**
-	 * The string representation of this binding -- for debugging purposes only.
-	 * This string should not be shown to an end user. This should be overridden
-	 * by subclasses that add properties.
-	 * 
-	 * @return The string representation; never <code>null</code>.
-	 */
-	public String toString() {
-		if (string == null) {
-			
-			final StringWriter sw = new StringWriter();
-			final BufferedWriter stringBuffer = new BufferedWriter(sw);
-			try {
-				stringBuffer.write("Binding("); //$NON-NLS-1$
-				stringBuffer.write(getTriggerSequence().toString());
-				stringBuffer.write(',');
-				stringBuffer.newLine();
-				stringBuffer.write('\t');
-				stringBuffer.write(command==null?"":command.toString()); //$NON-NLS-1$
-				stringBuffer.write(',');
-				stringBuffer.newLine();
-				stringBuffer.write('\t');
-				stringBuffer.write(schemeId);
-				stringBuffer.write(',');
-				stringBuffer.newLine();
-				stringBuffer.write('\t');
-				stringBuffer.write(contextId);
-				stringBuffer.write(',');
-				stringBuffer.write(locale==null?"":locale); //$NON-NLS-1$
-				stringBuffer.write(',');
-				stringBuffer.write(platform==null?"":platform); //$NON-NLS-1$
-				stringBuffer.write(',');
-				stringBuffer.write((type == SYSTEM) ? "system" : "user"); //$NON-NLS-1$//$NON-NLS-2$
-				stringBuffer.write(')');
-				stringBuffer.flush();
-			} catch (IOException e) {
-				// shouldn't get this
-			}
-			string = sw.toString();
-		}
-
-		return string;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
deleted file mode 100644
index 14fcc18..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManager.java
+++ /dev/null
@@ -1,2343 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.bindings;
-
-import java.io.BufferedWriter;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.HandleObjectManager;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.core.commands.contexts.ContextManagerEvent;
-import org.eclipse.core.commands.contexts.IContextManagerListener;
-import org.eclipse.core.commands.util.Tracing;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.contexts.IContextIds;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * A central repository for bindings -- both in the defined and undefined
- * states. Schemes and bindings can be created and retrieved using this manager.
- * It is possible to listen to changes in the collection of schemes and bindings
- * by adding a listener to the manager.
- * </p>
- * <p>
- * The binding manager is very sensitive to performance. Misusing the manager
- * can render an application unenjoyable to use. As such, each of the public
- * methods states the current run-time performance. In future releases, it is
- * guaranteed that the method will run in at least the stated time constraint --
- * though it might get faster. Where possible, we have also tried to be memory
- * efficient.
- * </p>
- * 
- * @since 3.1
- */
-public final class BindingManager extends HandleObjectManager implements
-		IContextManagerListener, ISchemeListener {
-
-	/**
-	 * This flag can be set to <code>true</code> if the binding manager should
-	 * print information to <code>System.out</code> when certain boundary
-	 * conditions occur.
-	 */
-	public static boolean DEBUG = false;
-
-	/**
-	 * Returned for optimized lookup.
-	 */
-	private static final TriggerSequence[] EMPTY_TRIGGER_SEQUENCE = new TriggerSequence[0];
-
-	/**
-	 * The separator character used in locales.
-	 */
-	private static final String LOCALE_SEPARATOR = "_"; //$NON-NLS-1$
-
-	private Map currentConflicts = null;
-
-	/**
-	 * </p>
-	 * A utility method for adding entries to a map. The map is checked for
-	 * entries at the key. If such an entry exists, it is expected to be a
-	 * <code>Collection</code>. The value is then appended to the collection.
-	 * If no such entry exists, then a collection is created, and the value
-	 * added to the collection.
-	 * </p>
-	 * 
-	 * @param map
-	 *            The map to modify; if this value is <code>null</code>, then
-	 *            this method simply returns.
-	 * @param key
-	 *            The key to look up in the map; may be <code>null</code>.
-	 * @param value
-	 *            The value to look up in the map; may be <code>null</code>.
-	 */
-	private static final void addReverseLookup(final Map map, final Object key,
-			final Object value) {
-		if (map == null) {
-			return;
-		}
-
-		final Object currentValue = map.get(key);
-		if (currentValue != null) {
-			final Collection values = (Collection) currentValue;
-			values.add(value);
-		} else { // currentValue == null
-			final Collection values = new ArrayList(1);
-			values.add(value);
-			map.put(key, values);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Takes a fully-specified string, and converts it into an array of
-	 * increasingly less-specific strings. So, for example, "en_GB" would become
-	 * ["en_GB", "en", "", null].
-	 * </p>
-	 * <p>
-	 * This method runs in linear time (O(n)) over the length of the string.
-	 * </p>
-	 * 
-	 * @param string
-	 *            The string to break apart into its less specific components;
-	 *            should not be <code>null</code>.
-	 * @param separator
-	 *            The separator that indicates a separation between a degrees of
-	 *            specificity; should not be <code>null</code>.
-	 * @return An array of strings from the most specific (i.e.,
-	 *         <code>string</code>) to the least specific (i.e.,
-	 *         <code>null</code>).
-	 */
-	private static final String[] expand(String string, final String separator) {
-		// Test for boundary conditions.
-		if (string == null || separator == null) {
-			return new String[0];
-		}
-
-		final List strings = new ArrayList();
-		final StringBuffer stringBuffer = new StringBuffer();
-		string = string.trim(); // remove whitespace
-		if (string.length() > 0) {
-			final StringTokenizer stringTokenizer = new StringTokenizer(string,
-					separator);
-			while (stringTokenizer.hasMoreElements()) {
-				if (stringBuffer.length() > 0) {
-					stringBuffer.append(separator);
-				}
-				stringBuffer.append(((String) stringTokenizer.nextElement())
-						.trim());
-				strings.add(stringBuffer.toString());
-			}
-		}
-		Collections.reverse(strings);
-		strings.add(Util.ZERO_LENGTH_STRING);
-		strings.add(null);
-		return (String[]) strings.toArray(new String[strings.size()]);
-	}
-
-	/**
-	 * The active bindings. This is a map of triggers (
-	 * <code>TriggerSequence</code>) to bindings (<code>Binding</code>).
-	 * This value will only be <code>null</code> if the active bindings have
-	 * not yet been computed. Otherwise, this value may be empty.
-	 */
-	private Map activeBindings = null;
-
-	/**
-	 * The active bindings indexed by fully-parameterized commands. This is a
-	 * map of fully-parameterized commands (<code>ParameterizedCommand</code>)
-	 * to triggers ( <code>TriggerSequence</code>). This value will only be
-	 * <code>null</code> if the active bindings have not yet been computed.
-	 * Otherwise, this value may be empty.
-	 */
-	private Map activeBindingsByParameterizedCommand = null;
-	
-	private Set triggerConflicts = new HashSet();
-
-	/**
-	 * The scheme that is currently active. An active scheme is the one that is
-	 * currently dictating which bindings will actually work. This value may be
-	 * <code>null</code> if there is no active scheme. If the active scheme
-	 * becomes undefined, then this should automatically revert to
-	 * <code>null</code>.
-	 */
-	private Scheme activeScheme = null;
-
-	/**
-	 * The array of scheme identifiers, starting with the active scheme and
-	 * moving up through its parents. This value may be <code>null</code> if
-	 * there is no active scheme.
-	 */
-	private String[] activeSchemeIds = null;
-
-	/**
-	 * The number of bindings in the <code>bindings</code> array.
-	 */
-	private int bindingCount = 0;
-
-	/**
-	 * A cache of context IDs that weren't defined.
-	 */
-	private Set bindingErrors = new HashSet();
-
-	/**
-	 * The array of all bindings currently handled by this manager. This array
-	 * is the raw list of bindings, as provided to this manager. This value may
-	 * be <code>null</code> if there are no bindings. The size of this array
-	 * is not necessarily the number of bindings.
-	 */
-	private Binding[] bindings = null;
-
-	/**
-	 * A cache of the bindings previously computed by this manager. This value
-	 * may be empty, but it is never <code>null</code>. This is a map of
-	 * <code>CachedBindingSet</code> to <code>CachedBindingSet</code>.
-	 */
-	private Map cachedBindings = new HashMap();
-
-	/**
-	 * The command manager for this binding manager. This manager is only needed
-	 * for the <code>getActiveBindingsFor(String)</code> method. This value is
-	 * guaranteed to never be <code>null</code>.
-	 */
-	private final CommandManager commandManager;
-
-	/**
-	 * The context manager for this binding manager. For a binding manager to
-	 * function, it needs to listen for changes to the contexts. This value is
-	 * guaranteed to never be <code>null</code>.
-	 */
-	private final ContextManager contextManager;
-
-	/**
-	 * The locale for this manager. This defaults to the current locale. The
-	 * value will never be <code>null</code>.
-	 */
-	private String locale = Locale.getDefault().toString();
-
-	/**
-	 * The array of locales, starting with the active locale and moving up
-	 * through less specific representations of the locale. For example,
-	 * ["en_US", "en", "", null]. This value will never be <code>null</code>.
-	 */
-	private String[] locales = expand(locale, LOCALE_SEPARATOR);
-
-	/**
-	 * The platform for this manager. This defaults to the current platform. The
-	 * value will never be <code>null</code>.
-	 */
-	private String platform = Util.getWS();
-
-	/**
-	 * The array of platforms, starting with the active platform and moving up
-	 * through less specific representations of the platform. For example,
-	 * ["gtk", "", null]. This value will never be <code>null,/code>.
-	 */
-	private String[] platforms = expand(platform, Util.ZERO_LENGTH_STRING);
-
-	/**
-	 * A map of prefixes (<code>TriggerSequence</code>) to a map of
-	 * available completions (possibly <code>null</code>, which means there
-	 * is an exact match). The available completions is a map of trigger (<code>TriggerSequence</code>)
-	 * to bindings (<code>Binding</code>). This value may be
-	 * <code>null</code> if there is no existing solution.
-	 */
-	private Map prefixTable = null;
-
-	/**
-	 * <p>
-	 * Constructs a new instance of <code>BindingManager</code>.
-	 * </p>
-	 * <p>
-	 * This method completes in amortized constant time (O(1)).
-	 * </p>
-	 * 
-	 * @param contextManager
-	 *            The context manager that will support this binding manager.
-	 *            This value must not be <code>null</code>.
-	 * @param commandManager
-	 *            The command manager that will support this binding manager.
-	 *            This value must not be <code>null</code>.
-	 */
-	public BindingManager(final ContextManager contextManager,
-			final CommandManager commandManager) {
-		if (contextManager == null) {
-			throw new NullPointerException(
-					"A binding manager requires a context manager"); //$NON-NLS-1$
-		}
-
-		if (commandManager == null) {
-			throw new NullPointerException(
-					"A binding manager requires a command manager"); //$NON-NLS-1$
-		}
-
-		this.contextManager = contextManager;
-		contextManager.addContextManagerListener(this);
-		this.commandManager = commandManager;
-	}
-
-	/**
-	 * <p>
-	 * Adds a single new binding to the existing array of bindings. If the array
-	 * is currently <code>null</code>, then a new array is created and this
-	 * binding is added to it. This method does not detect duplicates.
-	 * </p>
-	 * <p>
-	 * This method completes in amortized <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @param binding
-	 *            The binding to be added; must not be <code>null</code>.
-	 */
-	public final void addBinding(final Binding binding) {
-		if (binding == null) {
-			throw new NullPointerException("Cannot add a null binding"); //$NON-NLS-1$
-		}
-
-		if (bindings == null) {
-			bindings = new Binding[1];
-		} else if (bindingCount >= bindings.length) {
-			final Binding[] oldBindings = bindings;
-			bindings = new Binding[oldBindings.length * 2];
-			System.arraycopy(oldBindings, 0, bindings, 0, oldBindings.length);
-		}
-		bindings[bindingCount++] = binding;
-		clearCache();
-	}
-
-	/**
-	 * <p>
-	 * Adds a listener to this binding manager. The listener will be notified
-	 * when the set of defined schemes or bindings changes. This can be used to
-	 * track the global appearance and disappearance of bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in amortized constant time (<code>O(1)</code>).
-	 * </p>
-	 * 
-	 * @param listener
-	 *            The listener to attach; must not be <code>null</code>.
-	 */
-	public final void addBindingManagerListener(
-			final IBindingManagerListener listener) {
-		addListenerObject(listener);
-	}
-
-	/**
-	 * <p>
-	 * Builds a prefix table look-up for a map of active bindings.
-	 * </p>
-	 * <p>
-	 * This method takes <code>O(mn)</code>, where <code>m</code> is the
-	 * length of the trigger sequences and <code>n</code> is the number of
-	 * bindings.
-	 * </p>
-	 * 
-	 * @param activeBindings
-	 *            The map of triggers (<code>TriggerSequence</code>) to
-	 *            command ids (<code>String</code>) which are currently
-	 *            active. This value may be <code>null</code> if there are no
-	 *            active bindings, and it may be empty. It must not be
-	 *            <code>null</code>.
-	 * @return A map of prefixes (<code>TriggerSequence</code>) to a map of
-	 *         available completions (possibly <code>null</code>, which means
-	 *         there is an exact match). The available completions is a map of
-	 *         trigger (<code>TriggerSequence</code>) to command identifier (<code>String</code>).
-	 *         This value will never be <code>null</code>, but may be empty.
-	 */
-	private final Map buildPrefixTable(final Map activeBindings) {
-		final Map prefixTable = new HashMap();
-
-		final Iterator bindingItr = activeBindings.entrySet().iterator();
-		while (bindingItr.hasNext()) {
-			final Map.Entry entry = (Map.Entry) bindingItr.next();
-			final TriggerSequence triggerSequence = (TriggerSequence) entry
-					.getKey();
-
-			// Add the perfect match.
-			if (!prefixTable.containsKey(triggerSequence)) {
-				prefixTable.put(triggerSequence, null);
-			}
-
-			final TriggerSequence[] prefixes = triggerSequence.getPrefixes();
-			final int prefixesLength = prefixes.length;
-			if (prefixesLength == 0) {
-				continue;
-			}
-
-			// Break apart the trigger sequence.
-			final Binding binding = (Binding) entry.getValue();
-			for (int i = 0; i < prefixesLength; i++) {
-				final TriggerSequence prefix = prefixes[i];
-				final Object value = prefixTable.get(prefix);
-				if ((prefixTable.containsKey(prefix)) && (value instanceof Map)) {
-					((Map) value).put(triggerSequence, binding);
-				} else {
-					final Map map = new HashMap();
-					prefixTable.put(prefix, map);
-					map.put(triggerSequence, binding);
-				}
-			}
-		}
-
-		return prefixTable;
-	}
-
-	/**
-	 * <p>
-	 * Clears the cache, and the existing solution. If debugging is turned on,
-	 * then this will also print a message to standard out.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 */
-	private final void clearCache() {
-		if (DEBUG) {
-			Tracing.printTrace("BINDINGS", "Clearing cache"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		cachedBindings.clear();
-		clearSolution();
-	}
-
-	/**
-	 * <p>
-	 * Clears the existing solution.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 */
-	private final void clearSolution() {
-		setActiveBindings(null, null, null, null);
-	}
-
-	/**
-	 * Compares the identifier of two schemes, and decides which scheme is the
-	 * youngest (i.e., the child) of the two. Both schemes should be active
-	 * schemes.
-	 * 
-	 * @param schemeId1
-	 *            The identifier of the first scheme; must not be
-	 *            <code>null</code>.
-	 * @param schemeId2
-	 *            The identifier of the second scheme; must not be
-	 *            <code>null</code>.
-	 * @return <code>0</code> if the two schemes are equal of if neither
-	 *         scheme is active; <code>1</code> if the second scheme is the
-	 *         youngest; and <code>-1</code> if the first scheme is the
-	 *         youngest.
-	 * @since 3.2
-	 */
-	private final int compareSchemes(final String schemeId1,
-			final String schemeId2) {
-		if (!schemeId2.equals(schemeId1)) {
-			for (int i = 0; i < activeSchemeIds.length; i++) {
-				final String schemePointer = activeSchemeIds[i];
-				if (schemeId2.equals(schemePointer)) {
-					return 1;
-
-				} else if (schemeId1.equals(schemePointer)) {
-					return -1;
-
-				}
-
-			}
-		}
-
-		return 0;
-	}
-
-	/**
-	 * <p>
-	 * Computes the bindings given the context tree, and inserts them into the
-	 * <code>commandIdsByTrigger</code>. It is assumed that
-	 * <code>locales</code>,<code>platforsm</code> and
-	 * <code>schemeIds</code> correctly reflect the state of the application.
-	 * This method does not deal with caching.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @param activeContextTree
-	 *            The map representing the tree of active contexts. The map is
-	 *            one of child to parent, each being a context id (
-	 *            <code>String</code>). The keys are never <code>null</code>,
-	 *            but the values may be (i.e., no parent). This map may be
-	 *            empty. It may be <code>null</code> if we shouldn't consider
-	 *            contexts.
-	 * @param bindingsByTrigger
-	 *            The empty of map that is intended to be filled with triggers (
-	 *            <code>TriggerSequence</code>) to bindings (
-	 *            <code>Binding</code>). This value must not be
-	 *            <code>null</code> and must be empty.
-	 * @param triggersByCommandId
-	 *            The empty of map that is intended to be filled with command
-	 *            identifiers (<code>String</code>) to triggers (
-	 *            <code>TriggerSequence</code>). This value must either be
-	 *            <code>null</code> (indicating that these values are not
-	 *            needed), or empty (indicating that this map should be
-	 *            computed).
-	 */
-	private final void computeBindings(final Map activeContextTree,
-			final Map bindingsByTrigger, final Map triggersByCommandId, 
-			final Map conflictsByTrigger) {
-		/*
-		 * FIRST PASS: Remove all of the bindings that are marking deletions.
-		 */
-		final Binding[] trimmedBindings = removeDeletions(bindings);
-
-		/*
-		 * SECOND PASS: Just throw in bindings that match the current state. If
-		 * there is more than one match for a binding, then create a list.
-		 */
-		final Map possibleBindings = new HashMap();
-		final int length = trimmedBindings.length;
-		for (int i = 0; i < length; i++) {
-			final Binding binding = trimmedBindings[i];
-			boolean found;
-
-			// Check the context.
-			final String contextId = binding.getContextId();
-			if ((activeContextTree != null)
-					&& (!activeContextTree.containsKey(contextId))) {
-				continue;
-			}
-
-			// Check the locale.
-			if (!localeMatches(binding)) {
-				continue;
-			}
-
-			// Check the platform.
-			if (!platformMatches(binding)) {
-				continue;
-			}
-
-			// Check the scheme ids.
-			final String schemeId = binding.getSchemeId();
-			found = false;
-			if (activeSchemeIds != null) {
-				for (int j = 0; j < activeSchemeIds.length; j++) {
-					if (Util.equals(schemeId, activeSchemeIds[j])) {
-						found = true;
-						break;
-					}
-				}
-			}
-			if (!found) {
-				continue;
-			}
-
-			// Insert the match into the list of possible matches.
-			final TriggerSequence trigger = binding.getTriggerSequence();
-			final Object existingMatch = possibleBindings.get(trigger);
-			if (existingMatch instanceof Binding) {
-				possibleBindings.remove(trigger);
-				final Collection matches = new ArrayList();
-				matches.add(existingMatch);
-				matches.add(binding);
-				possibleBindings.put(trigger, matches);
-
-			} else if (existingMatch instanceof Collection) {
-				final Collection matches = (Collection) existingMatch;
-				matches.add(binding);
-
-			} else {
-				possibleBindings.put(trigger, binding);
-			}
-		}
-
-		MultiStatus conflicts = new MultiStatus("org.eclipse.jface", 0, //$NON-NLS-1$
-				"Keybinding conflicts occurred.  They may interfere with normal accelerator operation.", //$NON-NLS-1$
-				null);
-		/*
-		 * THIRD PASS: In this pass, we move any non-conflicting bindings
-		 * directly into the map. In the case of conflicts, we apply some
-		 * further logic to try to resolve them. If the conflict can't be
-		 * resolved, then we log the problem.
-		 */
-		final Iterator possibleBindingItr = possibleBindings.entrySet()
-				.iterator();
-		while (possibleBindingItr.hasNext()) {
-			final Map.Entry entry = (Map.Entry) possibleBindingItr.next();
-			final TriggerSequence trigger = (TriggerSequence) entry.getKey();
-			final Object match = entry.getValue();
-			/*
-			 * What we do depends slightly on whether we are trying to build a
-			 * list of all possible bindings (disregarding context), or a flat
-			 * map given the currently active contexts.
-			 */
-			if (activeContextTree == null) {
-				// We are building the list of all possible bindings.
-				final Collection bindings = new ArrayList();
-				if (match instanceof Binding) {
-					bindings.add(match);
-					bindingsByTrigger.put(trigger, bindings);
-					addReverseLookup(triggersByCommandId, ((Binding) match)
-							.getParameterizedCommand(), trigger);
-
-				} else if (match instanceof Collection) {
-					bindings.addAll((Collection) match);
-					bindingsByTrigger.put(trigger, bindings);
-
-					final Iterator matchItr = bindings.iterator();
-					while (matchItr.hasNext()) {
-						addReverseLookup(triggersByCommandId,
-								((Binding) matchItr.next())
-										.getParameterizedCommand(), trigger);
-					}
-				}
-
-			} else {
-				// We are building the flat map of trigger to commands.
-				if (match instanceof Binding) {
-					final Binding binding = (Binding) match;
-					bindingsByTrigger.put(trigger, binding);
-					addReverseLookup(triggersByCommandId, binding
-							.getParameterizedCommand(), trigger);
-
-				} else if (match instanceof Collection) {
-					final Binding winner = resolveConflicts((Collection) match,
-							activeContextTree);
-					if (winner == null) {
-						// warn once ... so as not to flood the logs
-						conflictsByTrigger.put(trigger, match);
-						if (triggerConflicts.add(trigger)) {
-							final StringWriter sw = new StringWriter();
-							final BufferedWriter buffer = new BufferedWriter(sw);
-							try {
-								buffer.write("A conflict occurred for "); //$NON-NLS-1$
-								buffer.write(trigger.toString());
-								buffer.write(':');
-								Iterator i = ((Collection) match).iterator();
-								while (i.hasNext()) {
-									buffer.newLine();
-									buffer.write(i.next().toString());
-								}
-								buffer.flush();
-							} catch (IOException e) {
-								// we should not get this
-							}
-							conflicts.add(new Status(IStatus.WARNING,
-									"org.eclipse.jface", //$NON-NLS-1$
-									sw.toString()));
-						}
-						if (DEBUG) {
-							Tracing.printTrace("BINDINGS", //$NON-NLS-1$
-									"A conflict occurred for " + trigger); //$NON-NLS-1$
-							Tracing.printTrace("BINDINGS", "    " + match); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-					} else {
-						bindingsByTrigger.put(trigger, winner);
-						addReverseLookup(triggersByCommandId, winner
-								.getParameterizedCommand(), trigger);
-					}
-				}
-			}
-		}
-		if (conflicts.getSeverity() != IStatus.OK) {
-			Policy.getLog().log(conflicts);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Notifies this manager that the context manager has changed. This method
-	 * is intended for internal use only.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 */
-	public final void contextManagerChanged(
-			final ContextManagerEvent contextManagerEvent) {
-		if (contextManagerEvent.isActiveContextsChanged()) {
-// clearSolution();
-			recomputeBindings();
-		}
-	}
-
-	/**
-	 * Returns the number of strokes in an array of triggers. It is assumed that
-	 * there is one natural key per trigger. The strokes are counted based on
-	 * the type of key. Natural keys are worth one; ctrl is worth two; shift is
-	 * worth four; and alt is worth eight.
-	 * 
-	 * @param triggers
-	 *            The triggers on which to count strokes; must not be
-	 *            <code>null</code>.
-	 * @return The value of the strokes in the triggers.
-	 * @since 3.2
-	 */
-	private final int countStrokes(final Trigger[] triggers) {
-		int strokeCount = triggers.length;
-		for (int i = 0; i < triggers.length; i++) {
-			final Trigger trigger = triggers[i];
-			if (trigger instanceof KeyStroke) {
-				final KeyStroke keyStroke = (KeyStroke) trigger;
-				final int modifierKeys = keyStroke.getModifierKeys();
-				final IKeyLookup lookup = KeyLookupFactory.getDefault();
-				if ((modifierKeys & lookup.getAlt()) != 0) {
-					strokeCount += 8;
-				}
-				if ((modifierKeys & lookup.getCtrl()) != 0) {
-					strokeCount += 2;
-				}
-				if ((modifierKeys & lookup.getShift()) != 0) {
-					strokeCount += 4;
-				}
-				if ((modifierKeys & lookup.getCommand()) != 0) {
-					strokeCount += 2;
-				}
-			} else {
-				strokeCount += 99;
-			}
-		}
-
-		return strokeCount;
-	}
-
-	/**
-	 * <p>
-	 * Creates a tree of context identifiers, representing the hierarchical
-	 * structure of the given contexts. The tree is structured as a mapping from
-	 * child to parent.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the height of the context tree.
-	 * </p>
-	 * 
-	 * @param contextIds
-	 *            The set of context identifiers to be converted into a tree;
-	 *            must not be <code>null</code>.
-	 * @return The tree of contexts to use; may be empty, but never
-	 *         <code>null</code>. The keys and values are both strings.
-	 */
-	private final Map createContextTreeFor(final Set contextIds) {
-		final Map contextTree = new HashMap();
-
-		final Iterator contextIdItr = contextIds.iterator();
-		while (contextIdItr.hasNext()) {
-			String childContextId = (String) contextIdItr.next();
-			while (childContextId != null) {
-				// Check if we've already got the part of the tree from here up.
-				if (contextTree.containsKey(childContextId)) {
-					break;
-				}
-
-				// Retrieve the context.
-				final Context childContext = contextManager
-						.getContext(childContextId);
-
-				// Add the child-parent pair to the tree.
-				try {
-					final String parentContextId = childContext.getParentId();
-					contextTree.put(childContextId, parentContextId);
-					childContextId = parentContextId;
-				} catch (final NotDefinedException e) {
-					break; // stop ascending
-				}
-			}
-		}
-
-		return contextTree;
-	}
-
-	/**
-	 * <p>
-	 * Creates a tree of context identifiers, representing the hierarchical
-	 * structure of the given contexts. The tree is structured as a mapping from
-	 * child to parent. In this tree, the key binding specific filtering of
-	 * contexts will have taken place.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n^2)</code>, where <code>n</code>
-	 * is the height of the context tree.
-	 * </p>
-	 * 
-	 * @param contextIds
-	 *            The set of context identifiers to be converted into a tree;
-	 *            must not be <code>null</code>.
-	 * @return The tree of contexts to use; may be empty, but never
-	 *         <code>null</code>. The keys and values are both strings.
-	 */
-	private final Map createFilteredContextTreeFor(final Set contextIds) {
-		// Check to see whether a dialog or window is active.
-		boolean dialog = false;
-		boolean window = false;
-		Iterator contextIdItr = contextIds.iterator();
-		while (contextIdItr.hasNext()) {
-			final String contextId = (String) contextIdItr.next();
-			if (IContextIds.CONTEXT_ID_DIALOG.equals(contextId)) {
-				dialog = true;
-				continue;
-			}
-			if (IContextIds.CONTEXT_ID_WINDOW.equals(contextId)) {
-				window = true;
-				continue;
-			}
-		}
-
-		/*
-		 * Remove all context identifiers for contexts whose parents are dialog
-		 * or window, and the corresponding dialog or window context is not
-		 * active.
-		 */
-		contextIdItr = contextIds.iterator();
-		while (contextIdItr.hasNext()) {
-			String contextId = (String) contextIdItr.next();
-			Context context = contextManager.getContext(contextId);
-			try {
-				String parentId = context.getParentId();
-				while (parentId != null) {
-					if (IContextIds.CONTEXT_ID_DIALOG.equals(parentId)) {
-						if (!dialog) {
-							contextIdItr.remove();
-						}
-						break;
-					}
-					if (IContextIds.CONTEXT_ID_WINDOW.equals(parentId)) {
-						if (!window) {
-							contextIdItr.remove();
-						}
-						break;
-					}
-					if (IContextIds.CONTEXT_ID_DIALOG_AND_WINDOW
-							.equals(parentId)) {
-						if ((!window) && (!dialog)) {
-							contextIdItr.remove();
-						}
-						break;
-					}
-
-					context = contextManager.getContext(parentId);
-					parentId = context.getParentId();
-				}
-			} catch (NotDefinedException e) {
-				// since this context was part of an undefined hierarchy,
-				// I'm going to yank it out as a bad bet
-				contextIdItr.remove();
-
-				// This is a logging optimization, only log the error once.
-				if (context == null || !bindingErrors.contains(context.getId())) {
-					if (context != null) {
-						bindingErrors.add(context.getId());
-					}
-
-					// now log like you've never logged before!
-					Policy
-							.getLog()
-							.log(
-									new Status(
-											IStatus.ERROR,
-											Policy.JFACE,
-											IStatus.OK,
-											"Undefined context while filtering dialog/window contexts", //$NON-NLS-1$
-											e));
-				}
-			}
-		}
-
-		return createContextTreeFor(contextIds);
-	}
-
-	/**
-	 * <p>
-	 * Notifies all of the listeners to this manager that the defined or active
-	 * schemes of bindings have changed.
-	 * </p>
-	 * <p>
-	 * The time this method takes to complete is dependent on external
-	 * listeners.
-	 * </p>
-	 * 
-	 * @param event
-	 *            The event to send to all of the listeners; must not be
-	 *            <code>null</code>.
-	 */
-	private final void fireBindingManagerChanged(final BindingManagerEvent event) {
-		if (event == null) {
-			throw new NullPointerException();
-		}
-
-		final Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; i++) {
-			final IBindingManagerListener listener = (IBindingManagerListener) listeners[i];
-			listener.bindingManagerChanged(event);
-		}
-	}
-
-	/**
-	 * <p>
-	 * Returns the active bindings. The caller must not modify the returned map.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the active bindings are
-	 * not yet computed, then this completes in <code>O(nn)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @return The map of triggers (<code>TriggerSequence</code>) to
-	 *         bindings (<code>Binding</code>) which are currently active.
-	 *         This value may be <code>null</code> if there are no active
-	 *         bindings, and it may be empty.
-	 */
-	private final Map getActiveBindings() {
-		if (activeBindings == null) {
-			recomputeBindings();
-		}
-
-		return activeBindings;
-	}
-
-	/**
-	 * <p>
-	 * Returns the active bindings indexed by command identifier. The caller
-	 * must not modify the returned map.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the active bindings are
-	 * not yet computed, then this completes in <code>O(nn)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @return The map of fully-parameterized commands (<code>ParameterizedCommand</code>)
-	 *         to triggers (<code>TriggerSequence</code>) which are
-	 *         currently active. This value may be <code>null</code> if there
-	 *         are no active bindings, and it may be empty.
-	 */
-	private final Map getActiveBindingsByParameterizedCommand() {
-		if (activeBindingsByParameterizedCommand == null) {
-			recomputeBindings();
-		}
-
-		return activeBindingsByParameterizedCommand;
-	}
-
-	/**
-	 * <p>
-	 * Computes the bindings for the current state of the application, but
-	 * disregarding the current contexts. This can be useful when trying to
-	 * display all the possible bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @return A map of trigger (<code>TriggerSequence</code>) to bindings (
-	 *         <code>Collection</code> containing <code>Binding</code>).
-	 *         This map may be empty, but it is never <code>null</code>.
-	 */
-	public final Map getActiveBindingsDisregardingContext() {
-		if (bindings == null) {
-			// Not yet initialized. This is happening too early. Do nothing.
-			return Collections.EMPTY_MAP;
-		}
-
-		// Build a cached binding set for that state.
-		final CachedBindingSet bindingCache = new CachedBindingSet(null,
-				locales, platforms, activeSchemeIds);
-
-		/*
-		 * Check if the cached binding set already exists. If so, simply set the
-		 * active bindings and return.
-		 */
-		CachedBindingSet existingCache = (CachedBindingSet) cachedBindings
-				.get(bindingCache);
-		if (existingCache == null) {
-			existingCache = bindingCache;
-			cachedBindings.put(existingCache, existingCache);
-		}
-		Map commandIdsByTrigger = existingCache.getBindingsByTrigger();
-		if (commandIdsByTrigger != null) {
-			if (DEBUG) {
-				Tracing.printTrace("BINDINGS", "Cache hit"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			return Collections.unmodifiableMap(commandIdsByTrigger);
-		}
-
-		// There is no cached entry for this.
-		if (DEBUG) {
-			Tracing.printTrace("BINDINGS", "Cache miss"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		// Compute the active bindings.
-		commandIdsByTrigger = new HashMap();
-		final Map triggersByParameterizedCommand = new HashMap();
-		final Map conflictsByTrigger = new HashMap();
-		computeBindings(null, commandIdsByTrigger,
-				triggersByParameterizedCommand, conflictsByTrigger);
-		existingCache.setBindingsByTrigger(commandIdsByTrigger);
-		existingCache.setTriggersByCommandId(triggersByParameterizedCommand);
-		existingCache.setConflictsByTrigger(conflictsByTrigger);
-		return Collections.unmodifiableMap(commandIdsByTrigger);
-	}
-
-	/**
-	 * <p>
-	 * Computes the bindings for the current state of the application, but
-	 * disregarding the current contexts. This can be useful when trying to
-	 * display all the possible bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @return A map of trigger (<code>TriggerSequence</code>) to bindings (
-	 *         <code>Collection</code> containing <code>Binding</code>).
-	 *         This map may be empty, but it is never <code>null</code>.
-	 * @since 3.2
-	 */
-	private final Map getActiveBindingsDisregardingContextByParameterizedCommand() {
-		if (bindings == null) {
-			// Not yet initialized. This is happening too early. Do nothing.
-			return Collections.EMPTY_MAP;
-		}
-
-		// Build a cached binding set for that state.
-		final CachedBindingSet bindingCache = new CachedBindingSet(null,
-				locales, platforms, activeSchemeIds);
-
-		/*
-		 * Check if the cached binding set already exists. If so, simply set the
-		 * active bindings and return.
-		 */
-		CachedBindingSet existingCache = (CachedBindingSet) cachedBindings
-				.get(bindingCache);
-		if (existingCache == null) {
-			existingCache = bindingCache;
-			cachedBindings.put(existingCache, existingCache);
-		}
-		Map triggersByParameterizedCommand = existingCache
-				.getTriggersByCommandId();
-		if (triggersByParameterizedCommand != null) {
-			if (DEBUG) {
-				Tracing.printTrace("BINDINGS", "Cache hit"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			return Collections.unmodifiableMap(triggersByParameterizedCommand);
-		}
-
-		// There is no cached entry for this.
-		if (DEBUG) {
-			Tracing.printTrace("BINDINGS", "Cache miss"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		// Compute the active bindings.
-		final Map commandIdsByTrigger = new HashMap();
-		final Map conflictsByTrigger = new HashMap();
-		triggersByParameterizedCommand = new HashMap();
-		computeBindings(null, commandIdsByTrigger,
-				triggersByParameterizedCommand, conflictsByTrigger);
-		existingCache.setBindingsByTrigger(commandIdsByTrigger);
-		existingCache.setTriggersByCommandId(triggersByParameterizedCommand);
-		existingCache.setConflictsByTrigger(conflictsByTrigger);
-
-		return Collections.unmodifiableMap(triggersByParameterizedCommand);
-	}
-
-	/**
-	 * <p>
-	 * Computes the bindings for the current state of the application, but
-	 * disregarding the current contexts. This can be useful when trying to
-	 * display all the possible bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @return All of the active bindings (<code>Binding</code>), not sorted
-	 *         in any fashion. This collection may be empty, but it is never
-	 *         <code>null</code>.
-	 */
-	public final Collection getActiveBindingsDisregardingContextFlat() {
-		final Collection bindingCollections = getActiveBindingsDisregardingContext()
-				.values();
-		final Collection mergedBindings = new ArrayList();
-		final Iterator bindingCollectionItr = bindingCollections.iterator();
-		while (bindingCollectionItr.hasNext()) {
-			final Collection bindingCollection = (Collection) bindingCollectionItr
-					.next();
-			if ((bindingCollection != null) && (!bindingCollection.isEmpty())) {
-				mergedBindings.addAll(bindingCollection);
-			}
-		}
-
-		return mergedBindings;
-	}
-
-	/**
-	 * <p>
-	 * Returns the active bindings for a particular command identifier, but
-	 * discounting the current contexts. This method operates in O(n) time over
-	 * the number of bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the active bindings are
-	 * not yet computed, then this completes in <code>O(nn)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @param parameterizedCommand
-	 *            The fully-parameterized command whose bindings are requested.
-	 *            This argument may be <code>null</code>.
-	 * @return The array of active triggers (<code>TriggerSequence</code>)
-	 *         for a particular command identifier. This value is guaranteed to
-	 *         never be <code>null</code>, but it may be empty.
-	 * @since 3.2
-	 */
-	public final TriggerSequence[] getActiveBindingsDisregardingContextFor(
-			final ParameterizedCommand parameterizedCommand) {
-		final Object object = getActiveBindingsDisregardingContextByParameterizedCommand()
-				.get(parameterizedCommand);
-		if (object instanceof Collection) {
-			final Collection collection = (Collection) object;
-			return (TriggerSequence[]) collection
-					.toArray(new TriggerSequence[collection.size()]);
-		}
-
-		return EMPTY_TRIGGER_SEQUENCE;
-	}
-
-	/**
-	 * <p>
-	 * Returns the active bindings for a particular command identifier. This
-	 * method operates in O(n) time over the number of bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the active bindings are
-	 * not yet computed, then this completes in <code>O(nn)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @param parameterizedCommand
-	 *            The fully-parameterized command whose bindings are requested.
-	 *            This argument may be <code>null</code>.
-	 * @return The array of active triggers (<code>TriggerSequence</code>)
-	 *         for a particular command identifier. This value is guaranteed to
-	 *         never be <code>null</code>, but it may be empty.
-	 */
-	public final TriggerSequence[] getActiveBindingsFor(
-			final ParameterizedCommand parameterizedCommand) {
-		final Object object = getActiveBindingsByParameterizedCommand().get(
-				parameterizedCommand);
-		if (object instanceof Collection) {
-			final Collection collection = (Collection) object;
-			return (TriggerSequence[]) collection
-					.toArray(new TriggerSequence[collection.size()]);
-		}
-
-		return EMPTY_TRIGGER_SEQUENCE;
-	}
-
-	/**
-	 * <p>
-	 * Returns the active bindings for a particular command identifier. This
-	 * method operates in O(n) time over the number of bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the active bindings are
-	 * not yet computed, then this completes in <code>O(nn)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @param commandId
-	 *            The identifier of the command whose bindings are requested.
-	 *            This argument may be <code>null</code>. It is assumed that
-	 *            the command has no parameters.
-	 * @return The array of active triggers (<code>TriggerSequence</code>)
-	 *         for a particular command identifier. This value is guaranteed not
-	 *         to be <code>null</code>, but it may be empty.
-	 */
-	public final TriggerSequence[] getActiveBindingsFor(final String commandId) {
-		final ParameterizedCommand parameterizedCommand = new ParameterizedCommand(
-				commandManager.getCommand(commandId), null);
-		return getActiveBindingsFor(parameterizedCommand);
-	}
-
-	/**
-	 * A variation on {@link BindingManager#getActiveBindingsFor(String)} that
-	 * returns an array of bindings, rather than trigger sequences. This method
-	 * is needed for doing "best" calculations on the active bindings.
-	 * 
-	 * @param commandId
-	 *            The identifier of the command for which the active bindings
-	 *            should be retrieved; must not be <code>null</code>.
-	 * @return The active bindings for the given command; this value may be
-	 *         <code>null</code> if there are no active bindings.
-	 * @since 3.2
-	 */
-	private final Binding[] getActiveBindingsFor1(final ParameterizedCommand command) {
-		final TriggerSequence[] triggers = getActiveBindingsFor(command);
-		if (triggers.length == 0) {
-			return null;
-		}
-
-		final Map activeBindings = getActiveBindings();
-		if (activeBindings != null) {
-			final Binding[] bindings = new Binding[triggers.length];
-			for (int i = 0; i < triggers.length; i++) {
-				final TriggerSequence triggerSequence = triggers[i];
-				final Object object = activeBindings.get(triggerSequence);
-				final Binding binding = (Binding) object;
-				bindings[i] = binding;
-			}
-			return bindings;
-		}
-
-		return null;
-	}
-
-	/**
-	 * <p>
-	 * Gets the currently active scheme.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @return The active scheme; may be <code>null</code> if there is no
-	 *         active scheme. If a scheme is returned, it is guaranteed to be
-	 *         defined.
-	 */
-	public final Scheme getActiveScheme() {
-		return activeScheme;
-	}
-
-	/**
-	 * Gets the best active binding for a command. The best binding is the one
-	 * that would be most appropriate to show in a menu. Bindings which belong
-	 * to a child scheme are given preference over those in a parent scheme.
-	 * Bindings which belong to a particular locale or platform are given
-	 * preference over those that do not. The rest of the calculaton is based
-	 * most on various concepts of "length", as well as giving some modifier
-	 * keys preference (e.g., <code>Alt</code> is less likely to appear than
-	 * <code>Ctrl</code>).
-	 * 
-	 * @param commandId
-	 *            The identifier of the command for which the best active
-	 *            binding should be retrieved; must not be <code>null</code>.
-	 * @return The trigger sequence for the best binding; may be
-	 *         <code>null</code> if no bindings are active for the given
-	 *         command.
-	 * @since 3.2
-	 */
-	public final TriggerSequence getBestActiveBindingFor(final String commandId) {
-		return getBestActiveBindingFor(new ParameterizedCommand(commandManager.getCommand(commandId), null));
-	}
-	
-	/**
-	 * @param command
-	 * @return
-	 * 		a trigger sequence, or <code>null</code>
-	 * @since 3.4
-	 */
-	public final TriggerSequence getBestActiveBindingFor(final ParameterizedCommand command) {
-		final Binding[] bindings = getActiveBindingsFor1(command);
-		if ((bindings == null) || (bindings.length == 0)) {
-			return null;
-		}
-
-		Binding bestBinding = bindings[0];
-		int compareTo;
-		for (int i = 1; i < bindings.length; i++) {
-			final Binding currentBinding = bindings[i];
-
-			// Bindings in a child scheme are always given preference.
-			final String bestSchemeId = bestBinding.getSchemeId();
-			final String currentSchemeId = currentBinding.getSchemeId();
-			compareTo = compareSchemes(bestSchemeId, currentSchemeId);
-			if (compareTo > 0) {
-				bestBinding = currentBinding;
-			}
-			if (compareTo != 0) {
-				continue;
-			}
-
-			/*
-			 * Bindings with a locale are given preference over those that do
-			 * not.
-			 */
-			final String bestLocale = bestBinding.getLocale();
-			final String currentLocale = currentBinding.getLocale();
-			if ((bestLocale == null) && (currentLocale != null)) {
-				bestBinding = currentBinding;
-			}
-			if (!(Util.equals(bestLocale, currentLocale))) {
-				continue;
-			}
-
-			/*
-			 * Bindings with a platform are given preference over those that do
-			 * not.
-			 */
-			final String bestPlatform = bestBinding.getPlatform();
-			final String currentPlatform = currentBinding.getPlatform();
-			if ((bestPlatform == null) && (currentPlatform != null)) {
-				bestBinding = currentBinding;
-			}
-			if (!(Util.equals(bestPlatform, currentPlatform))) {
-				continue;
-			}
-
-			/*
-			 * Check to see which has the least number of triggers in the
-			 * trigger sequence.
-			 */
-			final TriggerSequence bestTriggerSequence = bestBinding
-					.getTriggerSequence();
-			final TriggerSequence currentTriggerSequence = currentBinding
-					.getTriggerSequence();
-			final Trigger[] bestTriggers = bestTriggerSequence.getTriggers();
-			final Trigger[] currentTriggers = currentTriggerSequence
-					.getTriggers();
-			compareTo = bestTriggers.length - currentTriggers.length;
-			if (compareTo > 0) {
-				bestBinding = currentBinding;
-			}
-			if (compareTo != 0) {
-				continue;
-			}
-
-			/*
-			 * Compare the number of keys pressed in each trigger sequence. Some
-			 * types of keys count less than others (i.e., some types of
-			 * modifiers keys are less likely to be chosen).
-			 */
-			compareTo = countStrokes(bestTriggers)
-					- countStrokes(currentTriggers);
-			if (compareTo > 0) {
-				bestBinding = currentBinding;
-			}
-			if (compareTo != 0) {
-				continue;
-			}
-
-			// If this is still a tie, then just chose the shortest text.
-			compareTo = bestTriggerSequence.format().length()
-					- currentTriggerSequence.format().length();
-			if (compareTo > 0) {
-				bestBinding = currentBinding;
-			}
-		}
-
-		return bestBinding.getTriggerSequence();
-	}
-
-	/**
-	 * Gets the formatted string representing the best active binding for a
-	 * command. The best binding is the one that would be most appropriate to
-	 * show in a menu. Bindings which belong to a child scheme are given
-	 * preference over those in a parent scheme. The rest of the calculaton is
-	 * based most on various concepts of "length", as well as giving some
-	 * modifier keys preference (e.g., <code>Alt</code> is less likely to
-	 * appear than <code>Ctrl</code>).
-	 * 
-	 * @param commandId
-	 *            The identifier of the command for which the best active
-	 *            binding should be retrieved; must not be <code>null</code>.
-	 * @return The formatted string for the best binding; may be
-	 *         <code>null</code> if no bindings are active for the given
-	 *         command.
-	 * @since 3.2
-	 */
-	public final String getBestActiveBindingFormattedFor(final String commandId) {
-		final TriggerSequence binding = getBestActiveBindingFor(commandId);
-		if (binding != null) {
-			return binding.format();
-		}
-
-		return null;
-	}
-	/**
-	 * <p>
-	 * Returns the set of all bindings managed by this class.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @return The array of all bindings. This value may be <code>null</code>
-	 *         and it may be empty.
-	 */
-	public final Binding[] getBindings() {
-		if (bindings == null) {
-			return null;
-		}
-
-		final Binding[] returnValue = new Binding[bindingCount];
-		System.arraycopy(bindings, 0, returnValue, 0, bindingCount);
-		return returnValue;
-	}
-
-	/**
-	 * <p>
-	 * Returns the array of schemes that are defined.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @return The array of defined schemes; this value may be empty or
-	 *         <code>null</code>.
-	 */
-	public final Scheme[] getDefinedSchemes() {
-		return (Scheme[]) definedHandleObjects
-				.toArray(new Scheme[definedHandleObjects.size()]);
-	}
-
-	/**
-	 * <p>
-	 * Returns the active locale for this binding manager. The locale is in the
-	 * same format as <code>Locale.getDefault().toString()</code>.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @return The active locale; never <code>null</code>.
-	 */
-	public final String getLocale() {
-		return locale;
-	}
-
-	/**
-	 * <p>
-	 * Returns all of the possible bindings that start with the given trigger
-	 * (but are not equal to the given trigger).
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the bindings aren't
-	 * currently computed, then this completes in <code>O(n)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @param trigger
-	 *            The prefix to look for; must not be <code>null</code>.
-	 * @return A map of triggers (<code>TriggerSequence</code>) to bindings (<code>Binding</code>).
-	 *         This map may be empty, but it is never <code>null</code>.
-	 */
-	public final Map getPartialMatches(final TriggerSequence trigger) {
-		final Map partialMatches = (Map) getPrefixTable().get(trigger);
-		if (partialMatches == null) {
-			return Collections.EMPTY_MAP;
-		}
-
-		return partialMatches;
-	}
-
-	/**
-	 * <p>
-	 * Returns the command identifier for the active binding matching this
-	 * trigger, if any.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the bindings aren't
-	 * currently computed, then this completes in <code>O(n)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @param trigger
-	 *            The trigger to match; may be <code>null</code>.
-	 * @return The binding that matches, if any; <code>null</code> otherwise.
-	 */
-	public final Binding getPerfectMatch(final TriggerSequence trigger) {
-		return (Binding) getActiveBindings().get(trigger);
-	}
-
-	/**
-	 * <p>
-	 * Returns the active platform for this binding manager. The platform is in
-	 * the same format as <code>SWT.getPlatform()</code>.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @return The active platform; never <code>null</code>.
-	 */
-	public final String getPlatform() {
-		return platform;
-	}
-
-	/**
-	 * <p>
-	 * Returns the prefix table. The caller must not modify the returned map.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the active bindings are
-	 * not yet computed, then this completes in <code>O(n)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @return A map of prefixes (<code>TriggerSequence</code>) to a map of
-	 *         available completions (possibly <code>null</code>, which means
-	 *         there is an exact match). The available completions is a map of
-	 *         trigger (<code>TriggerSequence</code>) to binding (<code>Binding</code>).
-	 *         This value will never be <code>null</code> but may be empty.
-	 */
-	private final Map getPrefixTable() {
-		if (prefixTable == null) {
-			recomputeBindings();
-		}
-
-		return prefixTable;
-	}
-
-	/**
-	 * <p>
-	 * Gets the scheme with the given identifier. If the scheme does not already
-	 * exist, then a new (undefined) scheme is created with that identifier.
-	 * This guarantees that schemes will remain unique.
-	 * </p>
-	 * <p>
-	 * This method completes in amortized <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @param schemeId
-	 *            The identifier for the scheme to retrieve; must not be
-	 *            <code>null</code>.
-	 * @return A scheme with the given identifier.
-	 */
-	public final Scheme getScheme(final String schemeId) {
-		checkId(schemeId);
-
-		Scheme scheme = (Scheme) handleObjectsById.get(schemeId);
-		if (scheme == null) {
-			scheme = new Scheme(schemeId);
-			handleObjectsById.put(schemeId, scheme);
-			scheme.addSchemeListener(this);
-		}
-
-		return scheme;
-	}
-
-	/**
-	 * <p>
-	 * Ascends all of the parents of the scheme until no more parents are found.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the height of the context tree.
-	 * </p>
-	 * 
-	 * @param schemeId
-	 *            The id of the scheme for which the parents should be found;
-	 *            may be <code>null</code>.
-	 * @return The array of scheme ids (<code>String</code>) starting with
-	 *         <code>schemeId</code> and then ascending through its ancestors.
-	 */
-	private final String[] getSchemeIds(String schemeId) {
-		final List strings = new ArrayList();
-		while (schemeId != null) {
-			strings.add(schemeId);
-			try {
-				schemeId = getScheme(schemeId).getParentId();
-			} catch (final NotDefinedException e) {
-				Policy.getLog().log(
-						new Status(IStatus.ERROR, Policy.JFACE, IStatus.OK,
-								"Failed ascending scheme parents", //$NON-NLS-1$
-								e));
-				return new String[0];
-			}
-		}
-
-		return (String[]) strings.toArray(new String[strings.size()]);
-	}
-
-	/**
-	 * <p>
-	 * Returns whether the given trigger sequence is a partial match for the
-	 * given sequence.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the bindings aren't
-	 * currently computed, then this completes in <code>O(n)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @param trigger
-	 *            The sequence which should be the prefix for some binding;
-	 *            should not be <code>null</code>.
-	 * @return <code>true</code> if the trigger can be found in the active
-	 *         bindings; <code>false</code> otherwise.
-	 */
-	public final boolean isPartialMatch(final TriggerSequence trigger) {
-		return (getPrefixTable().get(trigger) != null);
-	}
-
-	/**
-	 * <p>
-	 * Returns whether the given trigger sequence is a perfect match for the
-	 * given sequence.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>. If the bindings aren't
-	 * currently computed, then this completes in <code>O(n)</code>, where
-	 * <code>n</code> is the number of bindings.
-	 * </p>
-	 * 
-	 * @param trigger
-	 *            The sequence which should match exactly; should not be
-	 *            <code>null</code>.
-	 * @return <code>true</code> if the trigger can be found in the active
-	 *         bindings; <code>false</code> otherwise.
-	 */
-	public final boolean isPerfectMatch(final TriggerSequence trigger) {
-		return getActiveBindings().containsKey(trigger);
-	}
-
-	/**
-	 * <p>
-	 * Tests whether the locale for the binding matches one of the active
-	 * locales.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of active locales.
-	 * </p>
-	 * 
-	 * @param binding
-	 *            The binding with which to test; must not be <code>null</code>.
-	 * @return <code>true</code> if the binding's locale matches;
-	 *         <code>false</code> otherwise.
-	 */
-	private final boolean localeMatches(final Binding binding) {
-		boolean matches = false;
-
-		final String locale = binding.getLocale();
-		if (locale == null) {
-			return true; // shortcut a common case
-		}
-
-		for (int i = 0; i < locales.length; i++) {
-			if (Util.equals(locales[i], locale)) {
-				matches = true;
-				break;
-			}
-		}
-
-		return matches;
-	}
-
-	/**
-	 * <p>
-	 * Tests whether the platform for the binding matches one of the active
-	 * platforms.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of active platforms.
-	 * </p>
-	 * 
-	 * @param binding
-	 *            The binding with which to test; must not be <code>null</code>.
-	 * @return <code>true</code> if the binding's platform matches;
-	 *         <code>false</code> otherwise.
-	 */
-	private final boolean platformMatches(final Binding binding) {
-		boolean matches = false;
-
-		final String platform = binding.getPlatform();
-		if (platform == null) {
-			return true; // shortcut a common case
-		}
-
-		for (int i = 0; i < platforms.length; i++) {
-			if (Util.equals(platforms[i], platform)) {
-				matches = true;
-				break;
-			}
-		}
-
-		return matches;
-	}
-
-	/**
-	 * <p>
-	 * This recomputes the bindings based on changes to the state of the world.
-	 * This computation can be triggered by changes to contexts, the active
-	 * scheme, the locale, or the platform. This method tries to use the cache
-	 * of pre-computed bindings, if possible. When this method completes,
-	 * <code>activeBindings</code> will be set to the current set of bindings
-	 * and <code>cachedBindings</code> will contain an instance of
-	 * <code>CachedBindingSet</code> representing these bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n+pn)</code>, where <code>n</code>
-	 * is the number of bindings, and <code>p</code> is the average number of
-	 * triggers in a trigger sequence.
-	 * </p>
-	 */
-	private final void recomputeBindings() {
-		if (bindings == null) {
-			// Not yet initialized. This is happening too early. Do nothing.
-			setActiveBindings(Collections.EMPTY_MAP, Collections.EMPTY_MAP,
-					Collections.EMPTY_MAP, Collections.EMPTY_MAP);
-			return;
-		}
-
-		// Figure out the current state.
-		final Set activeContextIds = new HashSet(contextManager
-				.getActiveContextIds());
-		final Map activeContextTree = createFilteredContextTreeFor(activeContextIds);
-
-		// Build a cached binding set for that state.
-		final CachedBindingSet bindingCache = new CachedBindingSet(
-				activeContextTree, locales, platforms, activeSchemeIds);
-
-		/*
-		 * Check if the cached binding set already exists. If so, simply set the
-		 * active bindings and return.
-		 */
-		CachedBindingSet existingCache = (CachedBindingSet) cachedBindings
-				.get(bindingCache);
-		if (existingCache == null) {
-			existingCache = bindingCache;
-			cachedBindings.put(existingCache, existingCache);
-		}
-		Map commandIdsByTrigger = existingCache.getBindingsByTrigger();
-		if (commandIdsByTrigger != null) {
-			if (DEBUG) {
-				Tracing.printTrace("BINDINGS", "Cache hit"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			setActiveBindings(commandIdsByTrigger, existingCache
-					.getTriggersByCommandId(), existingCache.getPrefixTable(),
-					existingCache.getConflictsByTrigger());
-			return;
-		}
-
-		// There is no cached entry for this.
-		if (DEBUG) {
-			Tracing.printTrace("BINDINGS", "Cache miss"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		// Compute the active bindings.
-		commandIdsByTrigger = new HashMap();
-		final Map triggersByParameterizedCommand = new HashMap();
-		final Map conflictsByTrigger = new HashMap();
-		computeBindings(activeContextTree, commandIdsByTrigger,
-				triggersByParameterizedCommand, conflictsByTrigger);
-		existingCache.setBindingsByTrigger(commandIdsByTrigger);
-		existingCache.setTriggersByCommandId(triggersByParameterizedCommand);
-		existingCache.setConflictsByTrigger(conflictsByTrigger);
-		setActiveBindings(commandIdsByTrigger, triggersByParameterizedCommand,
-				buildPrefixTable(commandIdsByTrigger),
-				conflictsByTrigger);
-		existingCache.setPrefixTable(prefixTable);
-	}
-
-	/**
-	 * <p>
-	 * Remove the specific binding by identity. Does nothing if the binding is
-	 * not in the manager.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @param binding
-	 *            The binding to be removed; must not be <code>null</code>.
-	 * @since 3.2
-	 */
-	public final void removeBinding(final Binding binding) {
-		if (bindings == null || bindings.length < 1) {
-			return;
-		}
-
-		final Binding[] newBindings = new Binding[bindings.length];
-		boolean bindingsChanged = false;
-		int index = 0;
-		for (int i = 0; i < bindingCount; i++) {
-			final Binding b = bindings[i];
-			if (b == binding) {
-				bindingsChanged = true;
-			} else {
-				newBindings[index++] = b;
-			}
-		}
-
-		if (bindingsChanged) {
-			this.bindings = newBindings;
-			bindingCount = index;
-			clearCache();
-		}
-	}
-
-	/**
-	 * <p>
-	 * Removes a listener from this binding manager.
-	 * </p>
-	 * <p>
-	 * This method completes in amortized <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 */
-	public final void removeBindingManagerListener(
-			final IBindingManagerListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * <p>
-	 * Removes any binding that matches the given values -- regardless of
-	 * command identifier.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @param sequence
-	 *            The sequence to match; may be <code>null</code>.
-	 * @param schemeId
-	 *            The scheme id to match; may be <code>null</code>.
-	 * @param contextId
-	 *            The context id to match; may be <code>null</code>.
-	 * @param locale
-	 *            The locale to match; may be <code>null</code>.
-	 * @param platform
-	 *            The platform to match; may be <code>null</code>.
-	 * @param windowManager
-	 *            The window manager to match; may be <code>null</code>. TODO
-	 *            Currently ignored.
-	 * @param type
-	 *            The type to look for.
-	 * 
-	 */
-	public final void removeBindings(final TriggerSequence sequence,
-			final String schemeId, final String contextId, final String locale,
-			final String platform, final String windowManager, final int type) {
-		if ((bindings == null) || (bindingCount < 1)) {
-			return;
-		}
-
-		final Binding[] newBindings = new Binding[bindings.length];
-		boolean bindingsChanged = false;
-		int index = 0;
-		for (int i = 0; i < bindingCount; i++) {
-			final Binding binding = bindings[i];
-			boolean equals = true;
-			equals &= Util.equals(sequence, binding.getTriggerSequence());
-			equals &= Util.equals(schemeId, binding.getSchemeId());
-			equals &= Util.equals(contextId, binding.getContextId());
-			equals &= Util.equals(locale, binding.getLocale());
-			equals &= Util.equals(platform, binding.getPlatform());
-			equals &= (type == binding.getType());
-			if (equals) {
-				bindingsChanged = true;
-			} else {
-				newBindings[index++] = binding;
-			}
-		}
-
-		if (bindingsChanged) {
-			this.bindings = newBindings;
-			bindingCount = index;
-			clearCache();
-		}
-	}
-
-	/**
-	 * <p>
-	 * Attempts to remove deletion markers from the collection of bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @param bindings
-	 *            The bindings from which the deleted items should be removed.
-	 *            This array should not be <code>null</code>, but may be
-	 *            empty.
-	 * @return The array of bindings with the deletions removed; never
-	 *         <code>null</code>, but may be empty. Contains only instances
-	 *         of <code>Binding</code>.
-	 */
-	private final Binding[] removeDeletions(final Binding[] bindings) {
-		final Map deletions = new HashMap();
-		final Binding[] bindingsCopy = new Binding[bindingCount];
-		System.arraycopy(bindings, 0, bindingsCopy, 0, bindingCount);
-		int deletedCount = 0;
-
-		// Extract the deletions.
-		for (int i = 0; i < bindingCount; i++) {
-			final Binding binding = bindingsCopy[i];
-			if ((binding.getParameterizedCommand() == null)
-					&& (localeMatches(binding)) && (platformMatches(binding))) {
-				final TriggerSequence sequence = binding.getTriggerSequence();
-				final Object currentValue = deletions.get(sequence);
-				if (currentValue instanceof Binding) {
-					final Collection collection = new ArrayList(2);
-					collection.add(currentValue);
-					collection.add(binding);
-					deletions.put(sequence, collection);
-				} else if (currentValue instanceof Collection) {
-					final Collection collection = (Collection) currentValue;
-					collection.add(binding);
-				} else {
-					deletions.put(sequence, binding);
-				}
-				bindingsCopy[i] = null;
-				deletedCount++;
-			}
-		}
-
-		if (DEBUG) {
-			Tracing.printTrace("BINDINGS", "There are " + deletions.size() //$NON-NLS-1$ //$NON-NLS-2$
-					+ " deletion markers"); //$NON-NLS-1$
-		}
-
-		// Remove the deleted items.
-		for (int i = 0; i < bindingCount; i++) {
-			final Binding binding = bindingsCopy[i];
-			if (binding != null) {
-				final Object deletion = deletions.get(binding
-						.getTriggerSequence());
-				if (deletion instanceof Binding) {
-					if (((Binding) deletion).deletes(binding)) {
-						bindingsCopy[i] = null;
-						deletedCount++;
-					}
-
-				} else if (deletion instanceof Collection) {
-					final Collection collection = (Collection) deletion;
-					final Iterator iterator = collection.iterator();
-					while (iterator.hasNext()) {
-						final Object deletionBinding = iterator.next();
-						if (deletionBinding instanceof Binding) {
-							if (((Binding) deletionBinding).deletes(binding)) {
-								bindingsCopy[i] = null;
-								deletedCount++;
-								break;
-							}
-						}
-					}
-
-				}
-			}
-		}
-
-		// Compact the array.
-		final Binding[] returnValue = new Binding[bindingCount - deletedCount];
-		int index = 0;
-		for (int i = 0; i < bindingCount; i++) {
-			final Binding binding = bindingsCopy[i];
-			if (binding != null) {
-				returnValue[index++] = binding;
-			}
-		}
-
-		return returnValue;
-	}
-
-	/**
-	 * <p>
-	 * Attempts to resolve the conflicts for the given bindings.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @param bindings
-	 *            The bindings which all match the same trigger sequence; must
-	 *            not be <code>null</code>, and should contain at least two
-	 *            items. This collection should only contain instances of
-	 *            <code>Binding</code> (i.e., no <code>null</code> values).
-	 * @param activeContextTree
-	 *            The tree of contexts to be used for all of the comparison. All
-	 *            of the keys should be active context identifiers (i.e., never
-	 *            <code>null</code>). The values will be their parents (i.e.,
-	 *            possibly <code>null</code>). Both keys and values are
-	 *            context identifiers (<code>String</code>). This map should
-	 *            never be empty, and must never be <code>null</code>.
-	 * @return The binding which best matches the current state. If there is a
-	 *         tie, then return <code>null</code>.
-	 */
-	private final Binding resolveConflicts(final Collection bindings,
-			final Map activeContextTree) {
-		/*
-		 * This flag is used to indicate when the bestMatch binding conflicts
-		 * with another binding. We keep the best match binding so that we know
-		 * if we find a better binding. However, if we don't find a better
-		 * binding, then we known to return null.
-		 */
-		boolean conflict = false;
-
-		final Iterator bindingItr = bindings.iterator();
-		Binding bestMatch = (Binding) bindingItr.next();
-
-		/*
-		 * Iterate over each binding and compare it with the best match. If a
-		 * better match is found, then replace the best match and set the
-		 * conflict flag to false. If a conflict is found, then leave the best
-		 * match and set the conflict flag. Otherwise, just continue.
-		 */
-		while (bindingItr.hasNext()) {
-			final Binding current = (Binding) bindingItr.next();
-
-			/*
-			 * SCHEME: Test whether the current is in a child scheme. Bindings
-			 * defined in a child scheme will always take priority over bindings
-			 * defined in a parent scheme.
-			 */
-			final String currentSchemeId = current.getSchemeId();
-			final String bestSchemeId = bestMatch.getSchemeId();
-			final int compareTo = compareSchemes(bestSchemeId, currentSchemeId);
-			if (compareTo > 0) {
-				bestMatch = current;
-				conflict = false;
-			}
-			if (compareTo != 0) {
-				continue;
-			}
-
-			/*
-			 * CONTEXTS: Check for context superiority. Bindings defined in a
-			 * child context will take priority over bindings defined in a
-			 * parent context -- assuming that the schemes lead to a conflict.
-			 */
-			final String currentContext = current.getContextId();
-			final String bestContext = bestMatch.getContextId();
-			if (!currentContext.equals(bestContext)) {
-				boolean goToNextBinding = false;
-
-				// Ascend the current's context tree.
-				String contextPointer = currentContext;
-				while (contextPointer != null) {
-					if (contextPointer.equals(bestContext)) {
-						// the current wins
-						bestMatch = current;
-						conflict = false;
-						goToNextBinding = true;
-						break;
-					}
-					contextPointer = (String) activeContextTree
-							.get(contextPointer);
-				}
-
-				// Ascend the best match's context tree.
-				contextPointer = bestContext;
-				while (contextPointer != null) {
-					if (contextPointer.equals(currentContext)) {
-						// the best wins
-						goToNextBinding = true;
-						break;
-					}
-					contextPointer = (String) activeContextTree
-							.get(contextPointer);
-				}
-
-				if (goToNextBinding) {
-					continue;
-				}
-			}
-
-			/*
-			 * TYPE: Test for type superiority.
-			 */
-			if (current.getType() > bestMatch.getType()) {
-				bestMatch = current;
-				conflict = false;
-				continue;
-			} else if (bestMatch.getType() > current.getType()) {
-				continue;
-			}
-
-			// We could not resolve the conflict between these two.
-			conflict = true;
-		}
-
-		// If the best match represents a conflict, then return null.
-		if (conflict) {
-			return null;
-		}
-
-		// Otherwise, we have a winner....
-		return bestMatch;
-	}
-
-	/**
-	 * <p>
-	 * Notifies this manager that a scheme has changed. This method is intended
-	 * for internal use only.
-	 * </p>
-	 * <p>
-	 * This method calls out to listeners, and so the time it takes to complete
-	 * is dependent on third-party code.
-	 * </p>
-	 * 
-	 * @param schemeEvent
-	 *            An event describing the change in the scheme.
-	 */
-	public final void schemeChanged(final SchemeEvent schemeEvent) {
-		if (schemeEvent.isDefinedChanged()) {
-			final Scheme scheme = schemeEvent.getScheme();
-			final boolean schemeIdAdded = scheme.isDefined();
-			boolean activeSchemeChanged = false;
-			if (schemeIdAdded) {
-				definedHandleObjects.add(scheme);
-			} else {
-				definedHandleObjects.remove(scheme);
-
-				if (activeScheme == scheme) {
-					activeScheme = null;
-					activeSchemeIds = null;
-					activeSchemeChanged = true;
-
-					// Clear the binding solution.
-					clearSolution();
-				}
-			}
-
-			if (isListenerAttached()) {
-				fireBindingManagerChanged(new BindingManagerEvent(this, false,
-						null, activeSchemeChanged, scheme, schemeIdAdded,
-						false, false));
-			}
-		}
-	}
-
-	/**
-	 * Sets the active bindings and the prefix table. This ensures that the two
-	 * values change at the same time, and that any listeners are notified
-	 * appropriately.
-	 * 
-	 * @param activeBindings
-	 *            This is a map of triggers ( <code>TriggerSequence</code>)
-	 *            to bindings (<code>Binding</code>). This value will only
-	 *            be <code>null</code> if the active bindings have not yet
-	 *            been computed. Otherwise, this value may be empty.
-	 * @param activeBindingsByCommandId
-	 *            This is a map of fully-parameterized commands (<code>ParameterizedCommand</code>)
-	 *            to triggers ( <code>TriggerSequence</code>). This value
-	 *            will only be <code>null</code> if the active bindings have
-	 *            not yet been computed. Otherwise, this value may be empty.
-	 * @param prefixTable
-	 *            A map of prefixes (<code>TriggerSequence</code>) to a map
-	 *            of available completions (possibly <code>null</code>, which
-	 *            means there is an exact match). The available completions is a
-	 *            map of trigger (<code>TriggerSequence</code>) to binding (<code>Binding</code>).
-	 *            This value may be <code>null</code> if there is no existing
-	 *            solution.
-	 */
-	private final void setActiveBindings(final Map activeBindings,
-			final Map activeBindingsByCommandId, final Map prefixTable,
-			final Map conflicts) {
-		this.activeBindings = activeBindings;
-		final Map previousBindingsByParameterizedCommand = this.activeBindingsByParameterizedCommand;
-		this.activeBindingsByParameterizedCommand = activeBindingsByCommandId;
-		this.prefixTable = prefixTable;
-		currentConflicts = conflicts;
-
-		fireBindingManagerChanged(new BindingManagerEvent(this, true,
-				previousBindingsByParameterizedCommand, false, null, false,
-				false, false));
-	}
-
-	/**
-	 * Provides the current conflicts in the bindings as a Map The key will
-	 * be {@link TriggerSequence} and the value will be the {@link Collection} of
-	 * {@link Binding}
-	 * 
-	 * @return Read-only {@link Map} of the current conflicts. If no conflicts,
-	 *         then return an empty map. Never <code>null</code>
-	 * @since 3.5
-	 */
-	public Map getCurrentConflicts() {
-		if (currentConflicts == null)
-			return Collections.EMPTY_MAP;
-		return Collections.unmodifiableMap(currentConflicts);
-	}
-	
-	/**
-	 * Provides the current conflicts in the keybindings for the given 
-	 * TriggerSequence as a {@link Collection} of {@link Binding}
-	 * 
-	 * @param sequence The sequence for which conflict info is required
-	 * 
-	 * @return Collection of KeyBinding. If no conflicts,
-	 *         then returns a <code>null</code>
-	 * @since 3.5
-	 */
-	public Collection getConflictsFor(TriggerSequence sequence) {
-		return (Collection) getCurrentConflicts().get(sequence);
-	}
-
-
-	/**
-	 * <p>
-	 * Selects one of the schemes as the active scheme. This scheme must be
-	 * defined.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the height of the context tree.
-	 * </p>
-	 * 
-	 * @param scheme
-	 *            The scheme to become active; must not be <code>null</code>.
-	 * @throws NotDefinedException
-	 *             If the given scheme is currently undefined.
-	 */
-	public final void setActiveScheme(final Scheme scheme)
-			throws NotDefinedException {
-		if (scheme == null) {
-			throw new NullPointerException("Cannot activate a null scheme"); //$NON-NLS-1$
-		}
-
-		if ((scheme == null) || (!scheme.isDefined())) {
-			throw new NotDefinedException(
-					"Cannot activate an undefined scheme. " //$NON-NLS-1$
-							+ scheme.getId());
-		}
-
-		if (Util.equals(activeScheme, scheme)) {
-			return;
-		}
-
-		activeScheme = scheme;
-		activeSchemeIds = getSchemeIds(activeScheme.getId());
-		clearSolution();
-		fireBindingManagerChanged(new BindingManagerEvent(this, false, null,
-				true, null, false, false, false));
-	}
-
-	/**
-	 * <p>
-	 * Changes the set of bindings for this binding manager. Changing the set of
-	 * bindings all at once ensures that: (1) duplicates are removed; and (2)
-	 * avoids unnecessary intermediate computations. This method clears the
-	 * existing bindings, but does not trigger a recomputation (other method
-	 * calls are required to do that).
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(n)</code>, where <code>n</code> is
-	 * the number of bindings.
-	 * </p>
-	 * 
-	 * @param bindings
-	 *            The new array of bindings; may be <code>null</code>. This
-	 *            set is copied into a local data structure.
-	 */
-	public final void setBindings(final Binding[] bindings) {
-		if (Arrays.equals(this.bindings, bindings)) {
-			return; // nothing has changed
-		}
-
-		if ((bindings == null) || (bindings.length == 0)) {
-			this.bindings = null;
-			bindingCount = 0;
-		} else {
-			final int bindingsLength = bindings.length;
-			this.bindings = new Binding[bindingsLength];
-			System.arraycopy(bindings, 0, this.bindings, 0, bindingsLength);
-			bindingCount = bindingsLength;
-		}
-		clearCache();
-	}
-
-	/**
-	 * <p>
-	 * Changes the locale for this binding manager. The locale can be used to
-	 * provide locale-specific bindings. If the locale is different than the
-	 * current locale, this will force a recomputation of the bindings. The
-	 * locale is in the same format as
-	 * <code>Locale.getDefault().toString()</code>.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @param locale
-	 *            The new locale; must not be <code>null</code>.
-	 * @see Locale#getDefault()
-	 */
-	public final void setLocale(final String locale) {
-		if (locale == null) {
-			throw new NullPointerException("The locale cannot be null"); //$NON-NLS-1$
-		}
-
-		if (!Util.equals(this.locale, locale)) {
-			this.locale = locale;
-			this.locales = expand(locale, LOCALE_SEPARATOR);
-			clearSolution();
-			fireBindingManagerChanged(new BindingManagerEvent(this, false,
-					null, false, null, false, true, false));
-		}
-	}
-
-	/**
-	 * <p>
-	 * Changes the platform for this binding manager. The platform can be used
-	 * to provide platform-specific bindings. If the platform is different than
-	 * the current platform, then this will force a recomputation of the
-	 * bindings. The locale is in the same format as
-	 * <code>SWT.getPlatform()</code>.
-	 * </p>
-	 * <p>
-	 * This method completes in <code>O(1)</code>.
-	 * </p>
-	 * 
-	 * @param platform
-	 *            The new platform; must not be <code>null</code>.
-	 * @see org.eclipse.swt.SWT#getPlatform()
-	 * @see Util#getWS()
-	 */
-	public final void setPlatform(final String platform) {
-		if (platform == null) {
-			throw new NullPointerException("The platform cannot be null"); //$NON-NLS-1$
-		}
-
-		if (!Util.equals(this.platform, platform)) {
-			this.platform = platform;
-			this.platforms = expand(platform, Util.ZERO_LENGTH_STRING);
-			clearSolution();
-			fireBindingManagerChanged(new BindingManagerEvent(this, false,
-					null, false, null, false, false, true));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManagerEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManagerEvent.java
deleted file mode 100644
index 7e4815b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/BindingManagerEvent.java
+++ /dev/null
@@ -1,249 +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.jface.bindings;
-
-import java.util.Collection;
-import java.util.Map;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.AbstractBitSetEvent;
-import org.eclipse.jface.util.Util;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>BindingManager</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see IBindingManagerListener#bindingManagerChanged(BindingManagerEvent)
- */
-public final class BindingManagerEvent extends AbstractBitSetEvent {
-
-	/**
-	 * The bit used to represent whether the map of active bindings has changed.
-	 */
-	private static final int CHANGED_ACTIVE_BINDINGS = 1;
-
-	/**
-	 * The bit used to represent whether the active scheme has changed.
-	 */
-	private static final int CHANGED_ACTIVE_SCHEME = 1 << 1;
-
-	/**
-	 * The bit used to represent whether the active locale has changed.
-	 */
-	private static final int CHANGED_LOCALE = 1 << 2;
-
-	/**
-	 * The bit used to represent whether the active platform has changed.
-	 */
-	private static final int CHANGED_PLATFORM = 1 << 3;
-
-	/**
-	 * The bit used to represent whether the scheme's defined state has changed.
-	 */
-	private static final int CHANGED_SCHEME_DEFINED = 1 << 4;
-
-	/**
-	 * The binding manager that has changed; this value is never
-	 * <code>null</code>.
-	 */
-	private final BindingManager manager;
-
-	/**
-	 * The map of triggers (<code>Collection</code> of
-	 * <code>TriggerSequence</code>) by parameterized command (<code>ParameterizedCommand</code>)
-	 * before the change occurred. This map may be empty and it may be
-	 * <code>null</code>.
-	 */
-	private final Map previousTriggersByParameterizedCommand;
-
-	/**
-	 * The scheme that became defined or undefined. This value may be
-	 * <code>null</code> if no scheme changed its defined state.
-	 */
-	private final Scheme scheme;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param manager
-	 *            the instance of the binding manager that changed; must not be
-	 *            <code>null</code>.
-	 * @param activeBindingsChanged
-	 *            Whether the active bindings have changed.
-	 * @param previousTriggersByParameterizedCommand
-	 *            The map of triggers (<code>TriggerSequence</code>) by
-	 *            fully-parameterized command (<code>ParameterizedCommand</code>)
-	 *            before the change occured. This map may be <code>null</code>
-	 *            or empty.
-	 * @param activeSchemeChanged
-	 *            true, iff the active scheme changed.
-	 * @param scheme
-	 *            The scheme that became defined or undefined; <code>null</code>
-	 *            if no scheme changed state.
-	 * @param schemeDefined
-	 *            <code>true</code> if the given scheme became defined;
-	 *            <code>false</code> otherwise.
-	 * @param localeChanged
-	 *            <code>true</code> iff the active locale changed
-	 * @param platformChanged
-	 *            <code>true</code> iff the active platform changed
-	 */
-	public BindingManagerEvent(final BindingManager manager,
-			final boolean activeBindingsChanged,
-			final Map previousTriggersByParameterizedCommand,
-			final boolean activeSchemeChanged, final Scheme scheme,
-			final boolean schemeDefined, final boolean localeChanged,
-			final boolean platformChanged) {
-		if (manager == null) {
-			throw new NullPointerException(
-					"A binding manager event needs a binding manager"); //$NON-NLS-1$
-		}
-		this.manager = manager;
-
-		if (schemeDefined && (scheme == null)) {
-			throw new NullPointerException(
-					"If a scheme changed defined state, then there should be a scheme identifier"); //$NON-NLS-1$
-		}
-		this.scheme = scheme;
-
-		this.previousTriggersByParameterizedCommand = previousTriggersByParameterizedCommand;
-
-		if (activeBindingsChanged) {
-			changedValues |= CHANGED_ACTIVE_BINDINGS;
-		}
-		if (activeSchemeChanged) {
-			changedValues |= CHANGED_ACTIVE_SCHEME;
-		}
-		if (localeChanged) {
-			changedValues |= CHANGED_LOCALE;
-		}
-		if (platformChanged) {
-			changedValues |= CHANGED_PLATFORM;
-		}
-		if (schemeDefined) {
-			changedValues |= CHANGED_SCHEME_DEFINED;
-		}
-	}
-
-	/**
-	 * Returns the instance of the manager that changed.
-	 * 
-	 * @return the instance of the manager that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final BindingManager getManager() {
-		return manager;
-	}
-
-	/**
-	 * Returns the scheme that changed.
-	 * 
-	 * @return The changed scheme
-	 */
-	public final Scheme getScheme() {
-		return scheme;
-	}
-
-	/**
-	 * Returns whether the active bindings have changed.
-	 * 
-	 * @return <code>true</code> if the active bindings have changed;
-	 *         <code>false</code> otherwise.
-	 */
-	public final boolean isActiveBindingsChanged() {
-		return ((changedValues & CHANGED_ACTIVE_BINDINGS) != 0);
-	}
-
-	/**
-	 * Computes whether the active bindings have changed for a given command
-	 * identifier.
-	 * 
-	 * @param parameterizedCommand
-	 *            The fully-parameterized command whose bindings might have
-	 *            changed; must not be <code>null</code>.
-	 * @return <code>true</code> if the active bindings have changed for the
-	 *         given command identifier; <code>false</code> otherwise.
-	 */
-	public final boolean isActiveBindingsChangedFor(
-			final ParameterizedCommand parameterizedCommand) {
-		final TriggerSequence[] currentBindings = manager
-				.getActiveBindingsFor(parameterizedCommand);
-		final TriggerSequence[] previousBindings;
-		if (previousTriggersByParameterizedCommand != null) {
-			final Collection previousBindingCollection = (Collection) previousTriggersByParameterizedCommand
-					.get(parameterizedCommand);
-			if (previousBindingCollection == null) {
-				previousBindings = null;
-			} else {
-				previousBindings = (TriggerSequence[]) previousBindingCollection
-						.toArray(new TriggerSequence[previousBindingCollection
-								.size()]);
-			}
-		} else {
-			previousBindings = null;
-		}
-
-		return !Util.equals(currentBindings, previousBindings);
-	}
-
-	/**
-	 * Returns whether or not the active scheme changed.
-	 * 
-	 * @return true, iff the active scheme property changed.
-	 */
-	public final boolean isActiveSchemeChanged() {
-		return ((changedValues & CHANGED_ACTIVE_SCHEME) != 0);
-	}
-
-	/**
-	 * Returns whether the locale has changed
-	 * 
-	 * @return <code>true</code> if the locale changed; <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isLocaleChanged() {
-		return ((changedValues & CHANGED_LOCALE) != 0);
-	}
-
-	/**
-	 * Returns whether the platform has changed
-	 * 
-	 * @return <code>true</code> if the platform changed; <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isPlatformChanged() {
-		return ((changedValues & CHANGED_PLATFORM) != 0);
-	}
-
-	/**
-	 * Returns whether the list of defined scheme identifiers has changed.
-	 * 
-	 * @return <code>true</code> if the list of scheme identifiers has
-	 *         changed; <code>false</code> otherwise.
-	 */
-	public final boolean isSchemeChanged() {
-		return (scheme != null);
-	}
-
-	/**
-	 * Returns whether or not the scheme became defined
-	 * 
-	 * @return <code>true</code> if the scheme became defined.
-	 */
-	public final boolean isSchemeDefined() {
-		return (((changedValues & CHANGED_SCHEME_DEFINED) != 0) && (scheme != null));
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/CachedBindingSet.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/CachedBindingSet.java
deleted file mode 100644
index 1da7b67..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/CachedBindingSet.java
+++ /dev/null
@@ -1,369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.bindings;
-
-import java.util.Map;
-
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * A resolution of bindings for a given state. To see if we already have a
- * cached binding set, just create one of these binding sets and then look it up
- * in a map. If it is not already there, then add it and set the cached binding
- * resolution.
- * </p>
- * 
- * @since 3.1
- */
-final class CachedBindingSet {
-
-	/**
-	 * A factor for computing the hash code for all cached binding sets.
-	 */
-	private final static int HASH_FACTOR = 89;
-
-	/**
-	 * The seed for the hash code for all cached binding sets.
-	 */
-	private final static int HASH_INITIAL = CachedBindingSet.class.getName()
-			.hashCode();
-
-	/**
-	 * <p>
-	 * A representation of the tree of active contexts at the time this cached
-	 * binding set was computed. It is a map of context id (<code>String</code>)
-	 * to context id (<code>String</code>). Each key represents one of the
-	 * active contexts or one of its ancestors, while each value represents its
-	 * parent. This is a way of perserving information about what the hierarchy
-	 * looked like.
-	 * </p>
-	 * <p>
-	 * This value will be <code>null</code> if the contexts were disregarded
-	 * in the computation. It may also be empty. All of the keys are guaranteed
-	 * to be non- <code>null</code>, but the values can be <code>null</code>
-	 * (i.e., no parent).
-	 * </p>
-	 */
-	private final Map activeContextTree;
-
-	/**
-	 * The map representing the resolved state of the bindings. This is a map of
-	 * a trigger (<code>TriggerSequence</code>) to binding (<code>Binding</code>).
-	 * This value may be <code>null</code> if it has not yet been initialized.
-	 */
-	private Map bindingsByTrigger = null;
-
-	/**
-	 * A map of triggers to collections of bindings. If this binding set
-	 * contains conflicts, they are logged here.
-	 * 
-	 * @since 3.3
-	 */
-	private Map conflictsByTrigger = null;
-
-	/**
-	 * The hash code for this object. This value is computed lazily, and marked
-	 * as invalid when one of the values on which it is based changes.
-	 */
-	private transient int hashCode;
-
-	/**
-	 * Whether <code>hashCode</code> still contains a valid value.
-	 */
-	private transient boolean hashCodeComputed = false;
-
-	/**
-	 * <p>
-	 * The list of locales that were active at the time this binding set was
-	 * computed. This list starts with the most specific representation of the
-	 * locale, and moves to more general representations. For example, this
-	 * array might look like ["en_US", "en", "", null].
-	 * </p>
-	 * <p>
-	 * This value will never be <code>null</code>, and it will never be
-	 * empty. It must contain at least one element, but its elements can be
-	 * <code>null</code>.
-	 * </p>
-	 */
-	private final String[] locales;
-
-	/**
-	 * <p>
-	 * The list of platforms that were active at the time this binding set was
-	 * computed. This list starts with the most specific representation of the
-	 * platform, and moves to more general representations. For example, this
-	 * array might look like ["gtk", "", null].
-	 * </p>
-	 * <p>
-	 * This value will never be <code>null</code>, and it will never be
-	 * empty. It must contain at least one element, but its elements can be
-	 * <code>null</code>.
-	 * </p>
-	 */
-	private final String[] platforms;
-
-	/**
-	 * A map of prefixes (<code>TriggerSequence</code>) to a map of
-	 * available completions (possibly <code>null</code>, which means there
-	 * is an exact match). The available completions is a map of trigger (<code>TriggerSequence</code>)
-	 * to command identifier (<code>String</code>). This value is
-	 * <code>null</code> if it has not yet been initialized.
-	 */
-	private Map prefixTable = null;
-
-	/**
-	 * <p>
-	 * The list of schemes that were active at the time this binding set was
-	 * computed. This list starts with the active scheme, and then continues
-	 * with all of its ancestors -- in order. For example, this might look like
-	 * ["emacs", "default"].
-	 * </p>
-	 * <p>
-	 * This value will never be <code>null</code>, and it will never be
-	 * empty. It must contain at least one element. Its elements cannot be
-	 * <code>null</code>.
-	 * </p>
-	 */
-	private final String[] schemeIds;
-
-	/**
-	 * The map representing the resolved state of the bindings. This is a map of
-	 * a command id (<code>String</code>) to triggers (<code>Collection</code>
-	 * of <code>TriggerSequence</code>). This value may be <code>null</code>
-	 * if it has not yet been initialized.
-	 */
-	private Map triggersByCommandId = null;
-
-	/**
-	 * Constructs a new instance of <code>CachedBindingSet</code>.
-	 * 
-	 * @param activeContextTree
-	 *            The set of context identifiers that were active when this
-	 *            binding set was calculated; may be empty. If it is
-	 *            <code>null</code>, then the contexts were disregarded in
-	 *            the computation. This is a map of context id (
-	 *            <code>String</code>) to parent context id (
-	 *            <code>String</code>). This is a way of caching the look of
-	 *            the context tree at the time the binding set was computed.
-	 * @param locales
-	 *            The locales that were active when this binding set was
-	 *            calculated. The first element is the currently active locale,
-	 *            and it is followed by increasingly more general locales. This
-	 *            must not be <code>null</code> and must contain at least one
-	 *            element. The elements can be <code>null</code>, though.
-	 * @param platforms
-	 *            The platform that were active when this binding set was
-	 *            calculated. The first element is the currently active
-	 *            platform, and it is followed by increasingly more general
-	 *            platforms. This must not be <code>null</code> and must
-	 *            contain at least one element. The elements can be
-	 *            <code>null</code>, though.
-	 * @param schemeIds
-	 *            The scheme that was active when this binding set was
-	 *            calculated, followed by its ancestors. This may be
-	 *            <code>null</code or empty. The
-	 *            elements cannot be <code>null</code>.
-	 */
-	CachedBindingSet(final Map activeContextTree, final String[] locales,
-			final String[] platforms, final String[] schemeIds) {
-		if (locales == null) {
-			throw new NullPointerException("The locales cannot be null."); //$NON-NLS-1$
-		}
-
-		if (locales.length == 0) {
-			throw new NullPointerException("The locales cannot be empty."); //$NON-NLS-1$
-		}
-
-		if (platforms == null) {
-			throw new NullPointerException("The platforms cannot be null."); //$NON-NLS-1$
-		}
-
-		if (platforms.length == 0) {
-			throw new NullPointerException("The platforms cannot be empty."); //$NON-NLS-1$
-		}
-
-		this.activeContextTree = activeContextTree;
-		this.locales = locales;
-		this.platforms = platforms;
-		this.schemeIds = schemeIds;
-	}
-
-	/**
-	 * Compares this binding set with another object. The objects will be equal
-	 * if they are both instance of <code>CachedBindingSet</code> and have
-	 * equivalent values for all of their properties.
-	 * 
-	 * @param object
-	 *            The object with which to compare; may be <code>null</code>.
-	 * @return <code>true</code> if they are both instances of
-	 *         <code>CachedBindingSet</code> and have the same values for all
-	 *         of their properties; <code>false</code> otherwise.
-	 */
-	public final boolean equals(final Object object) {
-		if (!(object instanceof CachedBindingSet)) {
-			return false;
-		}
-
-		final CachedBindingSet other = (CachedBindingSet) object;
-
-		if (!Util.equals(activeContextTree, other.activeContextTree)) {
-			return false;
-		}
-		if (!Util.equals(locales, other.locales)) {
-			return false;
-		}
-		if (!Util.equals(platforms, other.platforms)) {
-			return false;
-		}
-		return Util.equals(schemeIds, other.schemeIds);
-	}
-
-	/**
-	 * Returns the map of command identifiers indexed by trigger sequence.
-	 * 
-	 * @return A map of triggers (<code>TriggerSequence</code>) to bindings (<code>Binding</code>).
-	 *         This value may be <code>null</code> if this was not yet
-	 *         initialized.
-	 */
-	final Map getBindingsByTrigger() {
-		return bindingsByTrigger;
-	}
-
-	/**
-	 * Returns a map of conflicts for this set of contexts.
-	 * 
-	 * @return A map of trigger to a collection of Bindings. May be
-	 *         <code>null</code>.
-	 * @since 3.3
-	 */
-	final Map getConflictsByTrigger() {
-		return conflictsByTrigger;
-	}
-
-	/**
-	 * Returns the map of prefixes to a map of trigger sequence to command
-	 * identifiers.
-	 * 
-	 * @return A map of prefixes (<code>TriggerSequence</code>) to a map of
-	 *         available completions (possibly <code>null</code>, which means
-	 *         there is an exact match). The available completions is a map of
-	 *         trigger (<code>TriggerSequence</code>) to command identifier (<code>String</code>).
-	 *         This value may be <code>null</code> if it has not yet been
-	 *         initialized.
-	 */
-	final Map getPrefixTable() {
-		return prefixTable;
-	}
-
-	/**
-	 * Returns the map of triggers indexed by command identifiers.
-	 * 
-	 * @return A map of command identifiers (<code>String</code>) to
-	 *         triggers (<code>Collection</code> of
-	 *         <code>TriggerSequence</code>). This value may be
-	 *         <code>null</code> if this was not yet initialized.
-	 */
-	final Map getTriggersByCommandId() {
-		return triggersByCommandId;
-	}
-
-	/**
-	 * Computes the hash code for this cached binding set. The hash code is
-	 * based only on the immutable values. This allows the set to be created and
-	 * checked for in a hashed collection <em>before</em> doing any
-	 * computation.
-	 * 
-	 * @return The hash code for this cached binding set.
-	 */
-	public final int hashCode() {
-		if (!hashCodeComputed) {
-			hashCode = HASH_INITIAL;
-			hashCode = hashCode * HASH_FACTOR
-					+ Util.hashCode(activeContextTree);
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(locales);
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(platforms);
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(schemeIds);
-			hashCodeComputed = true;
-		}
-
-		return hashCode;
-	}
-
-	/**
-	 * Sets the map of command identifiers indexed by trigger.
-	 * 
-	 * @param commandIdsByTrigger
-	 *            The map to set; must not be <code>null</code>. This is a
-	 *            map of triggers (<code>TriggerSequence</code>) to binding (<code>Binding</code>).
-	 */
-	final void setBindingsByTrigger(final Map commandIdsByTrigger) {
-		if (commandIdsByTrigger == null) {
-			throw new NullPointerException(
-					"Cannot set a null binding resolution"); //$NON-NLS-1$
-		}
-
-		this.bindingsByTrigger = commandIdsByTrigger;
-	}
-
-	/**
-	 * Sets the map of conflicting bindings by trigger.
-	 * 
-	 * @param conflicts
-	 *            The map to set; must not be <code>null</code>.
-	 * @since 3.3
-	 */
-	final void setConflictsByTrigger(final Map conflicts) {
-		if (conflicts == null) {
-			throw new NullPointerException(
-					"Cannot set a null binding conflicts"); //$NON-NLS-1$
-		}
-		conflictsByTrigger = conflicts;
-	}
-
-	/**
-	 * Sets the map of prefixes to a map of trigger sequence to command
-	 * identifiers.
-	 * 
-	 * @param prefixTable
-	 *            A map of prefixes (<code>TriggerSequence</code>) to a map
-	 *            of available completions (possibly <code>null</code>, which
-	 *            means there is an exact match). The available completions is a
-	 *            map of trigger (<code>TriggerSequence</code>) to command
-	 *            identifier (<code>String</code>). Must not be
-	 *            <code>null</code>.
-	 */
-	final void setPrefixTable(final Map prefixTable) {
-		if (prefixTable == null) {
-			throw new NullPointerException("Cannot set a null prefix table"); //$NON-NLS-1$
-		}
-
-		this.prefixTable = prefixTable;
-	}
-
-	/**
-	 * Sets the map of triggers indexed by command identifiers.
-	 * 
-	 * @param triggersByCommandId
-	 *            The map to set; must not be <code>null</code>. This is a
-	 *            map of command identifiers (<code>String</code>) to
-	 *            triggers (<code>Collection</code> of
-	 *            <code>TriggerSequence</code>).
-	 */
-	final void setTriggersByCommandId(final Map triggersByCommandId) {
-		if (triggersByCommandId == null) {
-			throw new NullPointerException(
-					"Cannot set a null binding resolution"); //$NON-NLS-1$
-		}
-
-		this.triggersByCommandId = triggersByCommandId;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/IBindingManagerListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/IBindingManagerListener.java
deleted file mode 100644
index 3263fa5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/IBindingManagerListener.java
+++ /dev/null
@@ -1,40 +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.jface.bindings;
-
-/**
- * <p>
- * An instance of <code>BindingManagerListener</code> can be used by clients to
- * receive notification of changes to an instance of
- * <code>BindingManager</code>. 
- * </p>
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see BindingManager#addBindingManagerListener(IBindingManagerListener)
- * @see org.eclipse.jface.bindings.BindingManager#addBindingManagerListener(IBindingManagerListener)
- * @see BindingManagerEvent
- */
-public interface IBindingManagerListener {
-
-	/**
-	 * Notifies that attributes inside an instance of <code>BindingManager</code> have changed. 
-	 * Specific details are described in the <code>BindingManagerEvent</code>.  Changes in the
-	 * binding manager can cause the set of defined or active schemes or bindings to change.
-	 * 
-	 * @param event
-	 *            the binding manager event. Guaranteed not to be <code>null</code>.
-	 */
-	void bindingManagerChanged(BindingManagerEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/ISchemeListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/ISchemeListener.java
deleted file mode 100644
index cb889e9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/ISchemeListener.java
+++ /dev/null
@@ -1,40 +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.jface.bindings;
-
-/**
- * <p>
- * An instance of <code>ISchemeListener</code> can be used by clients to
- * receive notification of changes to one or more instances of
- * <code>IScheme</code>.
- * </p>
- * <p>
- * This interface may be implemented by clients.
- * </p>
- * 
- * @since 3.1
- * @see Scheme#addSchemeListener(ISchemeListener)
- * @see Scheme#removeSchemeListener(ISchemeListener)
- * @see SchemeEvent
- */
-public interface ISchemeListener {
-
-    /**
-     * Notifies that one or more attributes of an instance of
-     * <code>IScheme</code> have changed. Specific details are described in
-     * the <code>SchemeEvent</code>.
-     * 
-     * @param schemeEvent
-     *            the scheme event. Guaranteed not to be <code>null</code>.
-     */
-    void schemeChanged(SchemeEvent schemeEvent);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Scheme.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Scheme.java
deleted file mode 100644
index d0c77c4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Scheme.java
+++ /dev/null
@@ -1,290 +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.jface.bindings;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * An instance of <code>IScheme</code> is a handle representing a binding
- * scheme as defined by the extension point <code>org.eclipse.ui.bindings</code>.
- * The identifier of the handle is the identifier of the scheme being represented.
- * </p>
- * <p>
- * An instance of <code>IScheme</code> can be obtained from an instance of
- * <code>ICommandManager</code> for any identifier, whether or not a scheme
- * with that identifier is defined in the plugin registry.
- * </p>
- * <p>
- * The handle-based nature of this API allows it to work well with runtime
- * plugin activation and deactivation. If a scheme is defined, that means that
- * its corresponding plug-in is active. If the plug-in is then deactivated, the
- * scheme will still exist but it will be undefined. An attempt to use an
- * undefined scheme will result in a <code>NotDefinedException</code>
- * being thrown.
- * </p>
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ISchemeListener
- * @see org.eclipse.core.commands.CommandManager
- */
-public final class Scheme extends NamedHandleObject implements Comparable {
-
-    /**
-     * The collection of all objects listening to changes on this scheme. This
-     * value is <code>null</code> if there are no listeners.
-     */
-    private Set listeners = null;
-
-    /**
-     * The parent identifier for this scheme. This is the identifier of the
-     * scheme from which this scheme inherits some of its bindings. This value
-     * can be <code>null</code> if the scheme has no parent.
-     */
-    private String parentId = null;
-
-    /**
-     * Constructs a new instance of <code>Scheme</code> with an identifier.
-     * 
-     * @param id
-     *            The identifier to create; must not be <code>null</code>.
-     */
-    Scheme(final String id) {
-        super(id);
-    }
-
-    /**
-     * Registers an instance of <code>ISchemeListener</code> to listen for
-     * changes to attributes of this instance.
-     * 
-     * @param schemeListener
-     *            the instance of <code>ISchemeListener</code> to register.
-     *            Must not be <code>null</code>. If an attempt is made to
-     *            register an instance of <code>ISchemeListener</code> which
-     *            is already registered with this instance, no operation is
-     *            performed.
-     */
-    public final void addSchemeListener(final ISchemeListener schemeListener) {
-        if (schemeListener == null) {
-            throw new NullPointerException("Can't add a null scheme listener."); //$NON-NLS-1$
-        }
-
-        if (listeners == null) {
-            listeners = new HashSet();
-        }
-
-        listeners.add(schemeListener);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Comparable#compareTo(java.lang.Object)
-     */
-    public final int compareTo(final Object object) {
-        final Scheme scheme = (Scheme) object;
-        int compareTo = Util.compare(this.id, scheme.id);
-        if (compareTo == 0) {
-            compareTo = Util.compare(this.name, scheme.name);
-            if (compareTo == 0) {
-                compareTo = Util.compare(this.parentId, scheme.parentId);
-                if (compareTo == 0) {
-                    compareTo = Util.compare(this.description,
-                            scheme.description);
-                    if (compareTo == 0) {
-                        compareTo = Util.compare(this.defined, scheme.defined);
-                    }
-                }
-            }
-        }
-
-        return compareTo;
-    }
-
-    /**
-     * <p>
-     * Defines this scheme by giving it a name, and possibly a description and a
-     * parent identifier as well. The defined property for the scheme automatically 
-     * becomes <code>true</code>.
-     * </p>
-     * <p>
-     * Notification is sent to all listeners that something has changed.
-     * </p>
-     * 
-     * @param name
-     *            The name of this scheme; must not be <code>null</code>.
-     * @param description
-     *            The description for this scheme; may be <code>null</code>.
-     * @param parentId
-     *            The parent identifier for this scheme; may be
-     *            <code>null</code>.
-     */
-    public final void define(final String name, final String description,
-            final String parentId) {
-        if (name == null) {
-            throw new NullPointerException(
-                    "The name of a scheme cannot be null"); //$NON-NLS-1$
-        }
-
-        final boolean definedChanged = !this.defined;
-        this.defined = true;
-
-        final boolean nameChanged = !Util.equals(this.name, name);
-        this.name = name;
-
-        final boolean descriptionChanged = !Util.equals(this.description,
-                description);
-        this.description = description;
-
-        final boolean parentIdChanged = !Util.equals(this.parentId, parentId);
-        this.parentId = parentId;
-
-        fireSchemeChanged(new SchemeEvent(this, definedChanged, nameChanged,
-                descriptionChanged, parentIdChanged));
-    }
-
-    /**
-     * Notifies all listeners that this scheme has changed. This sends the given
-     * event to all of the listeners, if any.
-     * 
-     * @param event
-     *            The event to send to the listeners; must not be
-     *            <code>null</code>.
-     */
-    private final void fireSchemeChanged(final SchemeEvent event) {
-        if (event == null) {
-            throw new NullPointerException(
-                    "Cannot send a null event to listeners."); //$NON-NLS-1$
-        }
-
-        if (listeners == null) {
-            return;
-        }
-
-        final Iterator listenerItr = listeners.iterator();
-        while (listenerItr.hasNext()) {
-            final ISchemeListener listener = (ISchemeListener) listenerItr
-                    .next();
-            listener.schemeChanged(event);
-        }
-    }
-
-    /**
-     * <p>
-     * Returns the identifier of the parent of the scheme represented by this
-     * handle.
-     * </p>
-     * <p>
-     * Notification is sent to all registered listeners if this attribute
-     * changes.
-     * </p>
-     * 
-     * @return the identifier of the parent of the scheme represented by this
-     *         handle. May be <code>null</code>.
-     * @throws NotDefinedException
-     *             if the scheme represented by this handle is not defined.
-     */
-    public final String getParentId() throws NotDefinedException {
-        if (!defined) {
-            throw new NotDefinedException(
-                    "Cannot get the parent identifier from an undefined scheme. "  //$NON-NLS-1$
-            		+ id);
-        }
-
-        return parentId;
-    }
-
-    /**
-     * Unregisters an instance of <code>ISchemeListener</code> listening for
-     * changes to attributes of this instance.
-     * 
-     * @param schemeListener
-     *            the instance of <code>ISchemeListener</code> to unregister.
-     *            Must not be <code>null</code>. If an attempt is made to
-     *            unregister an instance of <code>ISchemeListener</code> which
-     *            is not already registered with this instance, no operation is
-     *            performed.
-     */
-    public final void removeSchemeListener(final ISchemeListener schemeListener) {
-        if (schemeListener == null) {
-            throw new NullPointerException("Cannot remove a null listener."); //$NON-NLS-1$
-        }
-
-        if (listeners == null) {
-            return;
-        }
-
-        listeners.remove(schemeListener);
-
-        if (listeners.isEmpty()) {
-            listeners = null;
-        }
-    }
-
-    /**
-     * The string representation of this command -- for debugging purposes only.
-     * This string should not be shown to an end user.
-     * 
-     * @return The string representation; never <code>null</code>.
-     */
-    public final String toString() {
-        if (string == null) {
-            final StringBuffer stringBuffer = new StringBuffer();
-            stringBuffer.append("Scheme("); //$NON-NLS-1$
-            stringBuffer.append(id);
-            stringBuffer.append(',');
-            stringBuffer.append(name);
-            stringBuffer.append(',');
-            stringBuffer.append(description);
-            stringBuffer.append(',');
-            stringBuffer.append(parentId);
-            stringBuffer.append(',');
-            stringBuffer.append(defined);
-            stringBuffer.append(')');
-            string = stringBuffer.toString();
-        }
-        return string;
-    }
-
-    /**
-     * Makes this scheme become undefined. This has the side effect of changing
-     * the name, description and parent identifier to <code>null</code>.
-     * Notification is sent to all listeners.
-     */
-    public final void undefine() {
-        string = null;
-
-        final boolean definedChanged = defined;
-        defined = false;
-
-        final boolean nameChanged = name != null;
-        name = null;
-
-        final boolean descriptionChanged = description != null;
-        description = null;
-
-        final boolean parentIdChanged = parentId != null;
-        parentId = null;
-
-        fireSchemeChanged(new SchemeEvent(this, definedChanged, nameChanged,
-                descriptionChanged, parentIdChanged));
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/SchemeEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/SchemeEvent.java
deleted file mode 100644
index d1fdf78..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/SchemeEvent.java
+++ /dev/null
@@ -1,87 +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.jface.bindings;
-
-import org.eclipse.core.commands.common.AbstractNamedHandleEvent;
-
-/**
- * An instance of this class describes changes to an instance of
- * <code>IScheme</code>.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.1
- * @see ISchemeListener#schemeChanged(SchemeEvent)
- */
-public final class SchemeEvent extends AbstractNamedHandleEvent {
-
-	/**
-	 * The bit used to represent whether the scheme has changed its parent.
-	 */
-	private static final int CHANGED_PARENT_ID = LAST_USED_BIT << 1;
-
-	/**
-	 * The scheme that has changed; this value is never <code>null</code>.
-	 */
-	private final Scheme scheme;
-
-	/**
-	 * Creates a new instance of this class.
-	 * 
-	 * @param scheme
-	 *            the instance of the interface that changed; must not be
-	 *            <code>null</code>.
-	 * @param definedChanged
-	 *            true, iff the defined property changed.
-	 * @param nameChanged
-	 *            true, iff the name property changed.
-	 * @param descriptionChanged
-	 *            <code>true</code> if the description property changed;
-	 *            <code>false</code> otherwise.
-	 * @param parentIdChanged
-	 *            true, iff the parentId property changed.
-	 */
-	public SchemeEvent(Scheme scheme, boolean definedChanged,
-			boolean nameChanged, boolean descriptionChanged,
-			boolean parentIdChanged) {
-		super(definedChanged, descriptionChanged, nameChanged);
-
-		if (scheme == null) {
-			throw new NullPointerException();
-		}
-		this.scheme = scheme;
-
-		if (parentIdChanged) {
-			changedValues |= CHANGED_PARENT_ID;
-		}
-	}
-
-	/**
-	 * Returns the instance of the scheme that changed.
-	 * 
-	 * @return the instance of the scheme that changed. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public final Scheme getScheme() {
-		return scheme;
-	}
-
-	/**
-	 * Returns whether or not the parentId property changed.
-	 * 
-	 * @return true, iff the parentId property changed.
-	 */
-	public final boolean isParentIdChanged() {
-		return ((changedValues & CHANGED_PARENT_ID) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Trigger.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Trigger.java
deleted file mode 100644
index 58dce3b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/Trigger.java
+++ /dev/null
@@ -1,41 +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.jface.bindings;
-
-/**
- * <p>
- * The abstract class for any object that can be used as a trigger for a binding. 
- * This ensures that trigger conform to certain minimum requirements. Namely, triggers 
- * need to be hashable.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class Trigger implements Comparable {
-
-    /**
-     * Tests whether this object is equal to another object. A handle object is
-     * only equal to another trigger with the same properties.
-     * 
-     * @param object
-     *            The object with which to compare; may be <code>null</code>.
-     * @return <code>true</code> if the objects are equal; <code>false</code>
-     *         otherwise.
-     */
-    public abstract boolean equals(final Object object);
-
-    /**
-     * Computes the hash code for this object.
-     * 
-     * @return The hash code for this object.
-     */
-    public abstract int hashCode();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/TriggerSequence.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/TriggerSequence.java
deleted file mode 100644
index 93d1c3a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/TriggerSequence.java
+++ /dev/null
@@ -1,203 +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.jface.bindings;
-
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * A sequence of one or more triggers. None of these triggers may be
- * <code>null</code>.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class TriggerSequence {
-	
-	/**
-	 * The value to see that hash code to if the hash code is not yet computed.
-	 */
-	private static final int HASH_CODE_NOT_COMPUTED = -1;
-
-	/**
-	 * A factor for computing the hash code for all trigger sequences.
-	 */
-	private static final int HASH_FACTOR = 89;
-
-	/**
-	 * An internal constant used only in this object's hash code algorithm.
-	 */
-	private static final int HASH_INITIAL = TriggerSequence.class.getName()
-			.hashCode();
-
-	/**
-	 * The hash code for this object. This value is computed lazily, and marked
-	 * as invalid when one of the values on which it is based changes.  This
-	 * values is <code>HASH_CODE_NOT_COMPUTED</code> iff the hash code has not
-	 * yet been computed.
-	 */
-	protected transient int hashCode = HASH_CODE_NOT_COMPUTED;
-
-	/**
-	 * The list of trigger in this sequence. This value is never
-	 * <code>null</code>, and never contains <code>null</code> elements.
-	 */
-	protected final Trigger[] triggers;
-
-	/**
-	 * Constructs a new instance of <code>TriggerSequence</code>.
-	 * 
-	 * @param triggers
-	 *            The triggers contained within this sequence; must not be
-	 *            <code>null</code> or contain <code>null</code> elements.
-	 *            May be empty.
-	 */
-	public TriggerSequence(final Trigger[] triggers) {
-		if (triggers == null) {
-			throw new NullPointerException("The triggers cannot be null"); //$NON-NLS-1$
-		}
-
-		for (int i = 0; i < triggers.length; i++) {
-			if (triggers[i] == null) {
-				throw new IllegalArgumentException(
-						"All triggers in a trigger sequence must be an instance of Trigger"); //$NON-NLS-1$
-			}
-		}
-
-		final int triggerLength = triggers.length;
-		this.triggers = new Trigger[triggerLength];
-		System.arraycopy(triggers, 0, this.triggers, 0, triggerLength);
-	}
-
-	/**
-	 * Returns whether or not this key sequence ends with the given key
-	 * sequence.
-	 * 
-	 * @param triggerSequence
-	 *            a trigger sequence. Must not be <code>null</code>.
-	 * @param equals
-	 *            whether or not an identical trigger sequence should be
-	 *            considered as a possible match.
-	 * @return <code>true</code>, iff the given trigger sequence ends with
-	 *         this trigger sequence.
-	 */
-	public final boolean endsWith(final TriggerSequence triggerSequence,
-			final boolean equals) {
-		if (triggerSequence == null) {
-			throw new NullPointerException(
-					"Cannot end with a null trigger sequence"); //$NON-NLS-1$
-		}
-
-		return Util.endsWith(triggers, triggerSequence.triggers, equals);
-	}
-
-	public final boolean equals(final Object object) {
-		// Check if they're the same.
-		if (object == this) {
-			return true;
-		}
-
-		// Check if they're the same type.
-		if (!(object instanceof TriggerSequence)) {
-			return false;
-		}
-
-		final TriggerSequence triggerSequence = (TriggerSequence) object;
-		return Util.equals(triggers, triggerSequence.triggers);
-	}
-
-	/**
-	 * Formats this trigger sequence into the current default look.
-	 * 
-	 * @return A string representation for this trigger sequence using the
-	 *         default look; never <code>null</code>.
-	 */
-	public abstract String format();
-
-	/**
-	 * <p>
-	 * Returns a list of prefixes for the current sequence. A prefix is any
-	 * leading subsequence in a <code>TriggerSequence</code>. A prefix is
-	 * also an instance of <code>TriggerSequence</code>.
-	 * </p>
-	 * <p>
-	 * For example, consider a trigger sequence that consists of four triggers:
-	 * A, B, C and D. The prefixes would be "", "A", "A B", and "A B C". The
-	 * list of prefixes must always be the same as the size of the trigger list.
-	 * </p>
-	 * 
-	 * @return The array of possible prefixes for this sequence. This array must
-	 *         not be <code>null</code>, but may be empty. It must only
-	 *         contains instances of <code>TriggerSequence</code>.
-	 */
-	public abstract TriggerSequence[] getPrefixes();
-
-	/**
-	 * Returns the list of triggers.
-	 * 
-	 * @return The triggers; never <code>null</code> and guaranteed to only
-	 *         contain instances of <code>Trigger</code>.
-	 */
-	public final Trigger[] getTriggers() {
-		final int triggerLength = triggers.length;
-		final Trigger[] triggerCopy = new Trigger[triggerLength];
-		System.arraycopy(triggers, 0, triggerCopy, 0, triggerLength);
-		return triggerCopy;
-	}
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see java.lang.Object#hashCode()
-	 */
-	public final int hashCode() {
-		if (hashCode == HASH_CODE_NOT_COMPUTED) {
-			hashCode = HASH_INITIAL;
-			hashCode = hashCode * HASH_FACTOR + Util.hashCode(triggers);
-			if (hashCode == HASH_CODE_NOT_COMPUTED) {
-				hashCode++;
-			}
-		}
-
-		return hashCode;
-	}
-
-	/**
-	 * Returns whether or not this trigger sequence is empty.
-	 * 
-	 * @return <code>true</code>, iff the trigger sequence is empty.
-	 */
-	public final boolean isEmpty() {
-		return (triggers.length == 0);
-	}
-
-	/**
-	 * Returns whether or not this trigger sequence starts with the given
-	 * trigger sequence.
-	 * 
-	 * @param triggerSequence
-	 *            a trigger sequence. Must not be <code>null</code>.
-	 * @param equals
-	 *            whether or not an identical trigger sequence should be
-	 *            considered as a possible match.
-	 * @return <code>true</code>, iff the given trigger sequence starts with
-	 *         this key sequence.
-	 */
-	public final boolean startsWith(final TriggerSequence triggerSequence,
-			final boolean equals) {
-		if (triggerSequence == null) {
-			throw new NullPointerException(
-					"A trigger sequence cannot start with null"); //$NON-NLS-1$
-		}
-
-		return Util.startsWith(triggers, triggerSequence.triggers, equals);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/IKeyLookup.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/IKeyLookup.java
deleted file mode 100644
index ad057aa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/IKeyLookup.java
+++ /dev/null
@@ -1,457 +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.jface.bindings.keys;
-
-/**
- * <p>
- * A facilitiy for converting the formal representation for key strokes
- * (i.e., used in persistence) into real key stroke instances.
- * </p>
- * 
- * @since 3.1
- */
-public interface IKeyLookup {
-	/**
-	 * The formal name of the 'Alt' key.
-	 */
-	public static final String ALT_NAME = "ALT"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Arrow Down' key.
-	 */
-	public static final String ARROW_DOWN_NAME = "ARROW_DOWN"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Arrow Left' key.
-	 */
-	public static final String ARROW_LEFT_NAME = "ARROW_LEFT"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Arrow Right' key.
-	 */
-	public static final String ARROW_RIGHT_NAME = "ARROW_RIGHT"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Arrow Up' key.
-	 */
-	public static final String ARROW_UP_NAME = "ARROW_UP"; //$NON-NLS-1$
-	
-	/**
-	 * An alternate name for the backspace key.
-	 */
-	public static final String BACKSPACE_NAME = "BACKSPACE"; //$NON-NLS-1$
-
-	/**
-	 * The formal name for the 'Break' key.
-	 */
-	public static final String BREAK_NAME = "BREAK"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the backspace key.
-	 */
-	public static final String BS_NAME = "BS"; //$NON-NLS-1$
-
-	/**
-	 * The formal name for the 'Caps Lock' key.
-	 */
-	public static final String CAPS_LOCK_NAME = "CAPS_LOCK"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Command' key.
-	 */
-	public static final String COMMAND_NAME = "COMMAND"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the carriage return (U+000D)
-	 */
-	public static final String CR_NAME = "CR"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Ctrl' key.
-	 */
-	public static final String CTRL_NAME = "CTRL"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the delete (U+007F) key
-	 */
-	public static final String DEL_NAME = "DEL"; //$NON-NLS-1$
-	
-	/**
-	 * An alternative name for the delete key.
-	 */
-	public static final String DELETE_NAME = "DELETE"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'End' key.
-	 */
-	public static final String END_NAME = "END"; //$NON-NLS-1$
-	
-	/**
-	 * An alternative name for the enter key.
-	 */
-	public static final String ENTER_NAME = "ENTER"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the escape (U+001B) key.
-	 */
-	public static final String ESC_NAME = "ESC"; //$NON-NLS-1$
-	
-	/**
-	 * An alternative name for the escape key.
-	 */
-	public static final String ESCAPE_NAME = "ESCAPE"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F1' key.
-	 */
-	public static final String F1_NAME = "F1"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F10' key.
-	 */
-	public static final String F10_NAME = "F10"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F11' key.
-	 */
-	public static final String F11_NAME = "F11"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F12' key.
-	 */
-	public static final String F12_NAME = "F12"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F13' key.
-	 */
-	public static final String F13_NAME = "F13"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F14' key.
-	 */
-	public static final String F14_NAME = "F14"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F15' key.
-	 */
-	public static final String F15_NAME = "F15"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F2' key.
-	 */
-	public static final String F2_NAME = "F2"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F3' key.
-	 */
-	public static final String F3_NAME = "F3"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F4' key.
-	 */
-	public static final String F4_NAME = "F4"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F5' key.
-	 */
-	public static final String F5_NAME = "F5"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F6' key.
-	 */
-	public static final String F6_NAME = "F6"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F7' key.
-	 */
-	public static final String F7_NAME = "F7"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F8' key.
-	 */
-	public static final String F8_NAME = "F8"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'F9' key.
-	 */
-	public static final String F9_NAME = "F9"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the form feed (U+000C) key.
-	 */
-	public static final String FF_NAME = "FF"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Home' key.
-	 */
-	public static final String HOME_NAME = "HOME"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Insert' key.
-	 */
-	public static final String INSERT_NAME = "INSERT"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the line feed (U+000A) key.
-	 */
-	public static final String LF_NAME = "LF"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'M1' key.
-	 */
-	public static final String M1_NAME = "M1"; //$NON-NLS-1$	
-
-	/**
-	 * The formal name of the 'M2' key.
-	 */
-	public static final String M2_NAME = "M2"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'M3' key.
-	 */
-	public static final String M3_NAME = "M3"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'M4' key.
-	 */
-	public static final String M4_NAME = "M4"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the null (U+0000) key.
-	 */
-	public static final String NUL_NAME = "NUL"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'NumLock' key.
-	 */
-	public static final String NUM_LOCK_NAME = "NUM_LOCK"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '0' key on the numpad.
-	 */
-	public static final String NUMPAD_0_NAME = "NUMPAD_0"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '1' key on the numpad.
-	 */
-	public static final String NUMPAD_1_NAME = "NUMPAD_1"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '2' key on the numpad.
-	 */
-	public static final String NUMPAD_2_NAME = "NUMPAD_2"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '3' key on the numpad.
-	 */
-	public static final String NUMPAD_3_NAME = "NUMPAD_3"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '4' key on the numpad.
-	 */
-	public static final String NUMPAD_4_NAME = "NUMPAD_4"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '5' key on the numpad.
-	 */
-	public static final String NUMPAD_5_NAME = "NUMPAD_5"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '6' key on the numpad.
-	 */
-	public static final String NUMPAD_6_NAME = "NUMPAD_6"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '7' key on the numpad.
-	 */
-	public static final String NUMPAD_7_NAME = "NUMPAD_7"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '8' key on the numpad.
-	 */
-	public static final String NUMPAD_8_NAME = "NUMPAD_8"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '9' key on the numpad.
-	 */
-	public static final String NUMPAD_9_NAME = "NUMPAD_9"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Add' key on the numpad.
-	 */
-	public static final String NUMPAD_ADD_NAME = "NUMPAD_ADD"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Decimal' key on the numpad.
-	 */
-	public static final String NUMPAD_DECIMAL_NAME = "NUMPAD_DECIMAL"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Divide' key on the numpad.
-	 */
-	public static final String NUMPAD_DIVIDE_NAME = "NUMPAD_DIVIDE"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Enter' key on the numpad.
-	 */
-	public static final String NUMPAD_ENTER_NAME = "NUMPAD_ENTER"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the '=' key on the numpad.
-	 */
-	public static final String NUMPAD_EQUAL_NAME = "NUMPAD_EQUAL"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Multiply' key on the numpad.
-	 */
-	public static final String NUMPAD_MULTIPLY_NAME = "NUMPAD_MULTIPLY"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Subtract' key on the numpad.
-	 */
-	public static final String NUMPAD_SUBTRACT_NAME = "NUMPAD_SUBTRACT"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Page Down' key.
-	 */
-	public static final String PAGE_DOWN_NAME = "PAGE_DOWN"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the 'Page Up' key.
-	 */
-	public static final String PAGE_UP_NAME = "PAGE_UP"; //$NON-NLS-1$
-
-	/**
-	 * The formal name for the 'Pause' key.
-	 */
-	public static final String PAUSE_NAME = "PAUSE"; //$NON-NLS-1$
-
-	/**
-	 * The formal name for the 'Print Screen' key.
-	 */
-	public static final String PRINT_SCREEN_NAME = "PRINT_SCREEN"; //$NON-NLS-1$
-	
-	/**
-	 * An alternative name for the enter key.
-	 */
-	public static final String RETURN_NAME = "RETURN"; //$NON-NLS-1$
-
-	/**
-	 * The formal name for the 'Scroll Lock' key.
-	 */
-	public static final String SCROLL_LOCK_NAME = "SCROLL_LOCK"; //$NON-NLS-1$		
-
-	/**
-	 * The formal name of the 'Shift' key.
-	 */
-	public static final String SHIFT_NAME = "SHIFT"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the space (U+0020) key.
-	 */
-	public static final String SPACE_NAME = "SPACE"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the tab (U+0009) key.
-	 */
-	public static final String TAB_NAME = "TAB"; //$NON-NLS-1$
-
-	/**
-	 * The formal name of the vertical tab (U+000B) key.
-	 */
-	public static final String VT_NAME = "VT"; //$NON-NLS-1$	
-
-	/**
-	 * Looks up a single natural key by its formal name, and returns the integer
-	 * representation for this natural key
-	 * 
-	 * @param name
-	 *            The formal name of the natural key to look-up; must not be
-	 *            <code>null</code>.
-	 * @return The integer representation of this key. If the natural key cannot
-	 *         be found, then this method returns <code>0</code>.
-	 */
-	public int formalKeyLookup(String name);	
-
-	/**
-	 * Looks up a single natural key by its formal name, and returns the integer
-	 * representation for this natural key
-	 * 
-	 * @param name
-	 *            The formal name of the natural key to look-up; must not be
-	 *            <code>null</code>.
-	 * @return The integer representation of this key. If the natural key cannot
-	 *         be found, then this method returns <code>0</code>.
-	 */
-	public Integer formalKeyLookupInteger(String name);
-
-	/**
-	 * Looks up a single modifier key by its formal name, and returns the integer
-	 * representation for this modifier key
-	 * 
-	 * @param name
-	 *            The formal name of the modifier key to look-up; must not be
-	 *            <code>null</code>.
-	 * @return The integer representation of this key. If the modifier key
-	 *         cannot be found, then this method returns <code>0</code>.
-	 */
-	public int formalModifierLookup(String name);
-
-	/**
-	 * Looks up a key value, and returns the formal string representation for
-	 * that key
-	 * 
-	 * @param key
-	 *            The key to look-up.
-	 * @return The formal string representation of this key. If this key cannot
-	 *         be found, then it is simply the character corresponding to that
-	 *         integer value.
-	 */
-	public String formalNameLookup(int key);
-
-	/**
-	 * Returns the integer representation of the ALT key.
-	 * 
-	 * @return The ALT key
-	 */
-	public int getAlt();
-
-	/**
-	 * Returns the integer representation of the COMMAND key.
-	 * 
-	 * @return The COMMAND key
-	 */
-	public int getCommand();
-
-	/**
-	 * Returns the integer representation of the CTRL key.
-	 * 
-	 * @return The CTRL key
-	 */
-	public int getCtrl();
-
-	/**
-	 * Returns the integer representation of the SHIFT key.
-	 * 
-	 * @return The SHIFT key
-	 */
-	public int getShift();
-
-	/**
-	 * Returns whether the given key is a modifier key.
-	 * 
-	 * @param key
-	 *            The integer value of the key to check.
-	 * @return <code>true</code> if the key is one of the modifier keys;
-	 *         <code>false</code> otherwise.
-	 */
-	public boolean isModifierKey(int key);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyBinding.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyBinding.java
deleted file mode 100644
index 157a05d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyBinding.java
+++ /dev/null
@@ -1,106 +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.jface.bindings.keys;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.TriggerSequence;
-
-/**
- * <p>
- * A keyboard shortcut. This is a binding between some keyboard input and the
- * triggering of a command. This object is immutable.
- * </p>
- * 
- * @since 3.1
- */
-public final class KeyBinding extends Binding {
-
-	/**
-	 * The key sequence which triggers this binding. This sequence is never
-	 * <code>null</code>.
-	 */
-	private final KeySequence keySequence;
-
-	/**
-	 * Constructs a new instance of <code>KeyBinding</code>.
-	 * 
-	 * @param keySequence
-	 *            The key sequence which should trigger this binding. This value
-	 *            must not be <code>null</code>. It also must be a complete,
-	 *            non-empty key sequence.
-	 * @param command
-	 *            The parameterized command to which this binding applies; this
-	 *            value may be <code>null</code> if the binding is meant to
-	 *            "unbind" a previously defined binding.
-	 * @param schemeId
-	 *            The scheme to which this binding belongs; this value must not
-	 *            be <code>null</code>.
-	 * @param contextId
-	 *            The context to which this binding applies; this value must not
-	 *            be <code>null</code>.
-	 * @param locale
-	 *            The locale to which this binding applies; this value may be
-	 *            <code>null</code> if it applies to all locales.
-	 * @param platform
-	 *            The platform to which this binding applies; this value may be
-	 *            <code>null</code> if it applies to all platforms.
-	 * @param windowManager
-	 *            The window manager to which this binding applies; this value
-	 *            may be <code>null</code> if it applies to all window
-	 *            managers. This value is currently ignored.
-	 * @param type
-	 *            The type of binding. This should be either <code>SYSTEM</code>
-	 *            or <code>USER</code>.
-	 */
-	public KeyBinding(final KeySequence keySequence,
-			final ParameterizedCommand command, final String schemeId,
-			final String contextId, final String locale, final String platform,
-			final String windowManager, final int type) {
-		super(command, schemeId, contextId, locale, platform, windowManager,
-				type);
-
-		if (keySequence == null) {
-			throw new NullPointerException("The key sequence cannot be null"); //$NON-NLS-1$
-		}
-
-		if (!keySequence.isComplete()) {
-			throw new IllegalArgumentException(
-					"Cannot bind to an incomplete key sequence"); //$NON-NLS-1$
-		}
-
-		if (keySequence.isEmpty()) {
-			throw new IllegalArgumentException(
-					"Cannot bind to an empty key sequence"); //$NON-NLS-1$
-		}
-
-		this.keySequence = keySequence;
-	}
-
-	/**
-	 * Returns the key sequence which triggers this binding. The key sequence
-	 * will not be <code>null</code>, empty or incomplete.
-	 * 
-	 * @return The key sequence; never <code>null</code>.
-	 */
-	public final KeySequence getKeySequence() {
-		return keySequence;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.Binding#getTriggerSequence()
-	 */
-	public TriggerSequence getTriggerSequence() {
-		return getKeySequence();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyLookupFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyLookupFactory.java
deleted file mode 100644
index f280ea1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyLookupFactory.java
+++ /dev/null
@@ -1,75 +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.jface.bindings.keys;
-
-
-/**
- * <p>
- * A factory class for <code>ILookup</code> instances. This factory can be
- * used to retrieve instances of look-ups defined by this package. It also
- * allows you to define your own look-up for use in the classes.
- * </p>
- * 
- * @since 3.1
- */
-public final class KeyLookupFactory {
-
-	/**
-	 * The SWT key look-up defined by this package.
-	 */
-	private static final SWTKeyLookup SWT_KEY_LOOKUP = new SWTKeyLookup();
-
-	/**
-	 * The instance that should be used by <code>KeyStroke</code> in
-	 * converting string representations to instances.
-	 */
-	private static IKeyLookup defaultLookup = SWT_KEY_LOOKUP;
-
-	/**
-	 * Provides an instance of <code>SWTKeyLookup</code>.
-	 * 
-	 * @return The SWT look-up table for key stroke format information; never
-	 *         <code>null</code>.
-	 */
-	public static final IKeyLookup getSWTKeyLookup() {
-		return SWT_KEY_LOOKUP;
-	}
-
-	/**
-	 * An accessor for the current default look-up.
-	 * 
-	 * @return The default look-up; never <code>null</code>.
-	 */
-	public static final IKeyLookup getDefault() {
-		return defaultLookup;
-	}
-
-	/**
-	 * Sets the default look-up.
-	 * 
-	 * @param defaultLookup
-	 *            the default look-up. Must not be <code>null</code>.
-	 */
-	public static final void setDefault(final IKeyLookup defaultLookup) {
-		if (defaultLookup == null) {
-			throw new NullPointerException("The look-up must not be null"); //$NON-NLS-1$
-		}
-
-		KeyLookupFactory.defaultLookup = defaultLookup;
-	}
-
-	/**
-	 * This class should not be instantiated.
-	 */
-	private KeyLookupFactory() {
-		// Not to be constructred.
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequence.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequence.java
deleted file mode 100644
index abf927f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequence.java
+++ /dev/null
@@ -1,291 +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.jface.bindings.keys;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.formatting.KeyFormatterFactory;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * A <code>KeySequence</code> is defined as a list of zero or more
- * <code>KeyStrokes</code>, with the stipulation that all
- * <code>KeyStroke</code> objects must be complete, save for the last one,
- * whose completeness is optional. A <code>KeySequence</code> is said to be
- * complete if all of its <code>KeyStroke</code> objects are complete.
- * </p>
- * <p>
- * All <code>KeySequence</code> objects have a formal string representation
- * available via the <code>toString()</code> method. There are a number of
- * methods to get instances of <code>KeySequence</code> objects, including one
- * which can parse this formal string representation.
- * </p>
- * <p>
- * All <code>KeySequence</code> objects, via the <code>format()</code>
- * method, provide a version of their formal string representation translated by
- * platform and locale, suitable for display to a user.
- * </p>
- * <p>
- * <code>KeySequence</code> objects are immutable. Clients are not permitted
- * to extend this class.
- * </p>
- * 
- * @since 3.1
- */
-public final class KeySequence extends TriggerSequence implements Comparable {
-
-	/**
-	 * An empty key sequence instance for use by everyone.
-	 */
-	private final static KeySequence EMPTY_KEY_SEQUENCE = new KeySequence(
-			new KeyStroke[0]);
-
-	/**
-	 * The delimiter between multiple key strokes in a single key sequence --
-	 * expressed in the formal key stroke grammar. This is not to be displayed
-	 * to the user. It is only intended as an internal representation.
-	 */
-	public final static String KEY_STROKE_DELIMITER = "\u0020"; //$NON-NLS-1$
-
-	/**
-	 * The set of delimiters for <code>KeyStroke</code> objects allowed during
-	 * parsing of the formal string representation.
-	 */
-	public final static String KEY_STROKE_DELIMITERS = KEY_STROKE_DELIMITER
-			+ "\b\r\u007F\u001B\f\n\0\t\u000B"; //$NON-NLS-1$
-
-	/**
-	 * Gets an instance of <code>KeySequence</code>.
-	 * 
-	 * @return a key sequence. This key sequence will have no key strokes.
-	 *         Guaranteed not to be <code>null</code>.
-	 */
-	public static final KeySequence getInstance() {
-		return EMPTY_KEY_SEQUENCE;
-	}
-
-	/**
-	 * Creates an instance of <code>KeySequence</code> given a key sequence
-	 * and a key stroke.
-	 * 
-	 * @param keySequence
-	 *            a key sequence. Must not be <code>null</code>.
-	 * @param keyStroke
-	 *            a key stroke. Must not be <code>null</code>.
-	 * @return a key sequence that is equal to the given key sequence with the
-	 *         given key stroke appended to the end. Guaranteed not to be
-	 *         <code>null</code>.
-	 */
-	public static final KeySequence getInstance(final KeySequence keySequence,
-			final KeyStroke keyStroke) {
-		if (keySequence == null || keyStroke == null) {
-			throw new NullPointerException();
-		}
-
-		final KeyStroke[] oldKeyStrokes = keySequence.getKeyStrokes();
-		final int oldKeyStrokeLength = oldKeyStrokes.length;
-		final KeyStroke[] newKeyStrokes = new KeyStroke[oldKeyStrokeLength + 1];
-		System
-				.arraycopy(oldKeyStrokes, 0, newKeyStrokes, 0,
-						oldKeyStrokeLength);
-		newKeyStrokes[oldKeyStrokeLength] = keyStroke;
-		return new KeySequence(newKeyStrokes);
-	}
-
-	/**
-	 * Creates an instance of <code>KeySequence</code> given a single key
-	 * stroke.
-	 * 
-	 * @param keyStroke
-	 *            a single key stroke. Must not be <code>null</code>.
-	 * @return a key sequence. Guaranteed not to be <code>null</code>.
-	 */
-	public static final KeySequence getInstance(final KeyStroke keyStroke) {
-		return new KeySequence(new KeyStroke[] { keyStroke });
-	}
-
-	/**
-	 * Creates an instance of <code>KeySequence</code> given an array of key
-	 * strokes.
-	 * 
-	 * @param keyStrokes
-	 *            the array of key strokes. This array may be empty, but it must
-	 *            not be <code>null</code>. This array must not contain
-	 *            <code>null</code> elements.
-	 * @return a key sequence. Guaranteed not to be <code>null</code>.
-	 */
-	public static final KeySequence getInstance(final KeyStroke[] keyStrokes) {
-		return new KeySequence(keyStrokes);
-	}
-
-	/**
-	 * Creates an instance of <code>KeySequence</code> given a list of key
-	 * strokes.
-	 * 
-	 * @param keyStrokes
-	 *            the list of key strokes. This list may be empty, but it must
-	 *            not be <code>null</code>. If this list is not empty, it
-	 *            must only contain instances of <code>KeyStroke</code>.
-	 * @return a key sequence. Guaranteed not to be <code>null</code>.
-	 */
-	public static final KeySequence getInstance(final List keyStrokes) {
-		return new KeySequence((KeyStroke[]) keyStrokes
-				.toArray(new KeyStroke[keyStrokes.size()]));
-	}
-
-	/**
-	 * Creates an instance of <code>KeySequence</code> by parsing a given
-	 * formal string representation.
-	 * 
-	 * @param string
-	 *            the formal string representation to parse.
-	 * @return a key sequence. Guaranteed not to be <code>null</code>.
-	 * @throws ParseException
-	 *             if the given formal string representation could not be parsed
-	 *             to a valid key sequence.
-	 */
-	public static final KeySequence getInstance(final String string)
-			throws ParseException {
-		if (string == null) {
-			throw new NullPointerException();
-		}
-
-		final List keyStrokes = new ArrayList();
-		final StringTokenizer stringTokenizer = new StringTokenizer(string,
-				KEY_STROKE_DELIMITERS);
-
-		try {
-			while (stringTokenizer.hasMoreTokens()) {
-				keyStrokes.add(KeyStroke.getInstance(stringTokenizer
-						.nextToken()));
-			}
-
-			final KeyStroke[] keyStrokeArray = (KeyStroke[]) keyStrokes
-					.toArray(new KeyStroke[keyStrokes.size()]);
-			return new KeySequence(keyStrokeArray);
-		} catch (final IllegalArgumentException e) {
-			throw new ParseException(
-					"Could not construct key sequence with these key strokes: " //$NON-NLS-1$
-							+ keyStrokes);
-		} catch (final NullPointerException e) {
-			throw new ParseException(
-					"Could not construct key sequence with these key strokes: " //$NON-NLS-1$
-							+ keyStrokes);
-		}
-	}
-
-	/**
-	 * Constructs an instance of <code>KeySequence</code> given a list of key
-	 * strokes.
-	 * 
-	 * @param keyStrokes
-	 *            the list of key strokes. This list may be empty, but it must
-	 *            not be <code>null</code>. If this list is not empty, it
-	 *            must only contain instances of <code>KeyStroke</code>.
-	 */
-	protected KeySequence(final KeyStroke[] keyStrokes) {
-		super(keyStrokes);
-
-		for (int i = 0; i < triggers.length - 1; i++) {
-			KeyStroke keyStroke = (KeyStroke) triggers[i];
-
-			if (!keyStroke.isComplete()) {
-				throw new IllegalArgumentException();
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#compareTo(java.lang.Object)
-	 */
-	public final int compareTo(final Object object) {
-		final KeySequence castedObject = (KeySequence) object;
-		return Util.compare(triggers, castedObject.triggers);
-	}
-
-	/**
-	 * Formats this key sequence into the current default look.
-	 * 
-	 * @return A string representation for this key sequence using the default
-	 *         look; never <code>null</code>.
-	 */
-	public final String format() {
-		return KeyFormatterFactory.getDefault().format(this);
-	}
-
-	/**
-	 * Returns the list of key strokes for this key sequence.
-	 * 
-	 * @return the list of key strokes keys. This list may be empty, but is
-	 *         guaranteed not to be <code>null</code>. If this list is not
-	 *         empty, it is guaranteed to only contain instances of
-	 *         <code>KeyStroke</code>.
-	 */
-	public final KeyStroke[] getKeyStrokes() {
-		final int triggerLength = triggers.length;
-		final KeyStroke[] keyStrokes = new KeyStroke[triggerLength];
-		System.arraycopy(triggers, 0, keyStrokes, 0, triggerLength);
-		return keyStrokes;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.TriggerSequence#getPrefixes()
-	 */
-	public final TriggerSequence[] getPrefixes() {
-		final int numberOfPrefixes = triggers.length;
-		final TriggerSequence[] prefixes = new TriggerSequence[numberOfPrefixes];
-		prefixes[0] = KeySequence.getInstance();
-		for (int i = 0; i < numberOfPrefixes - 1; i++) {
-			final KeyStroke[] prefixKeyStrokes = new KeyStroke[i + 1];
-			System.arraycopy(triggers, 0, prefixKeyStrokes, 0, i + 1);
-			prefixes[i + 1] = KeySequence.getInstance(prefixKeyStrokes);
-		}
-
-		return prefixes;
-	}
-
-	/**
-	 * Returns whether or not this key sequence is complete. Key sequences are
-	 * complete iff all of their key strokes are complete.
-	 * 
-	 * @return <code>true</code>, iff the key sequence is complete.
-	 */
-	public final boolean isComplete() {
-		final int triggersLength = triggers.length;
-		for (int i = 0; i < triggersLength; i++) {
-			if (!((KeyStroke) triggers[i]).isComplete()) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Returns the formal string representation for this key sequence.
-	 * 
-	 * @return The formal string representation for this key sequence.
-	 *         Guaranteed not to be <code>null</code>.
-	 * @see java.lang.Object#toString()
-	 */
-	public final String toString() {
-		return KeyFormatterFactory.getFormalKeyFormatter().format(this);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequenceText.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequenceText.java
deleted file mode 100644
index dfab24b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeySequenceText.java
+++ /dev/null
@@ -1,961 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.bindings.keys;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.TreeSet;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * <p>
- * A wrapper around the SWT text widget that traps literal key presses and
- * converts them into key sequences for display. There are two types of key
- * strokes that are displayed: complete and incomplete. A complete key stroke is
- * one with a natural key, while an incomplete one has no natural key.
- * Incomplete key strokes are only displayed until they are made complete or
- * their component key presses are released.
- * </p>
- * 
- * @since 3.1
- */
-public final class KeySequenceText {
-
-	/**
-	 * A key listener that traps incoming events and displays them in the
-	 * wrapped text field. It has no effect on traversal operations.
-	 */
-	private class KeyTrapListener implements Listener {
-		/**
-		 * The index at which insertion should occur. This is used if there is a
-		 * replacement occurring in the middle of the stroke, and the first key
-		 * stroke was incomplete.
-		 */
-		private int insertionIndex = -1;
-
-		/**
-		 * Resets the insertion index to point nowhere. In other words, it is
-		 * set to <code>-1</code>.
-		 */
-		void clearInsertionIndex() {
-			insertionIndex = -1;
-		}
-
-		/**
-		 * Deletes the current selection. If there is no selection, then it
-		 * deletes the last key stroke.
-		 * 
-		 * @param keyStrokes
-		 *            The key strokes from which to delete. This list must not
-		 *            be <code>null</code>, and must represent a valid key
-		 *            sequence.
-		 * @return An array of keystrokes minus the keystrokes that were
-		 *         deleted.
-		 */
-		private final KeyStroke[] deleteKeyStroke(final KeyStroke[] keyStrokes) {
-			clearInsertionIndex();
-
-			if (hasSelection()) {
-				/*
-				 * Delete the current selection -- disallowing incomplete
-				 * strokes in the middle of the sequence.
-				 */
-				final KeyStroke[][] deletedKeyStrokes = new KeyStroke[1][];
-				deleteSelection(keyStrokes, false, deletedKeyStrokes);
-				return deletedKeyStrokes[0];
-			}
-
-			// Remove the last key stroke.
-			if (keyStrokes.length > 0) {
-				final int newKeyStrokesLength = keyStrokes.length - 1;
-				final KeyStroke[] newKeyStrokes = new KeyStroke[newKeyStrokesLength];
-				System.arraycopy(keyStrokes, 0, newKeyStrokes, 0,
-						newKeyStrokesLength);
-				return newKeyStrokes;
-			}
-
-			return keyStrokes;
-		}
-
-		/**
-		 * Handles the key pressed and released events on the wrapped text
-		 * widget. This makes sure to either add the pressed key to the
-		 * temporary key stroke, or complete the current temporary key stroke
-		 * and prompt for the next. In the case of a key release, this makes
-		 * sure that the temporary stroke is correctly displayed --
-		 * corresponding with modifier keys that may have been released.
-		 * 
-		 * @param event
-		 *            The triggering event; must not be <code>null</code>.
-		 */
-		public void handleEvent(Event event) {
-			KeyStroke[] keyStrokes = getKeySequence().getKeyStrokes();
-
-			// Dispatch the event to the correct handler.
-			if (event.type == SWT.KeyDown) {
-				keyStrokes = handleKeyDown(event, keyStrokes);
-			} else if (event.type == SWT.KeyUp) {
-				keyStrokes = handleKeyUp(event, keyStrokes);
-			}
-
-			// Update the underlying widget.
-			setKeySequence(KeySequence.getInstance(keyStrokes));
-
-			// Prevent the event from reaching the widget.
-			event.doit = false;
-		}
-
-		/**
-		 * Handles the case where the key event is an <code>SWT.KeyDown</code>
-		 * event. This either causes a deletion (if it is an unmodified
-		 * backspace key stroke), or an insertion (if it is any other key).
-		 * 
-		 * @param event
-		 *            The trigger key down event; must not be <code>null</code>.
-		 * @param keyStrokes
-		 *            The current list of key strokes. This valud must not be
-		 *            <code>null</code>, and it must represent a valid key
-		 *            sequence.
-		 */
-		private KeyStroke[] handleKeyDown(Event event, KeyStroke[] keyStrokes) {
-			// Is it an unmodified backspace character?
-			if ((event.character == SWT.BS || event.character == SWT.DEL) && (event.stateMask == 0)) {
-				return deleteKeyStroke(keyStrokes);
-			}
-
-			return insertKeyStroke(event, keyStrokes);
-		}
-
-		/**
-		 * Handles the case where the key event is an <code>SWT.KeyUp</code>
-		 * event. This resets the insertion index. If there is an incomplete
-		 * stroke, then that incomplete stroke is modified to match the keys
-		 * that are still held. If no keys are held, then the incomplete stroke
-		 * is removed.
-		 * 
-		 * @param event
-		 *            The triggering event; must not be <code>null</code>
-		 * @param keyStrokes
-		 *            The key strokes that are part of the current key sequence;
-		 *            these key strokes are guaranteed to represent a valid key
-		 *            sequence. This value must not be <code>null</code>.
-		 */
-		private final KeyStroke[] handleKeyUp(final Event event,
-				final KeyStroke[] keyStrokes) {
-			if (hasIncompleteStroke()) {
-				/*
-				 * Figure out the SWT integer representation of the remaining
-				 * values.
-				 */
-				Event mockEvent = new Event();
-				if ((event.keyCode & SWT.MODIFIER_MASK) != 0) {
-					// This key up is a modifier key being released.
-					mockEvent.stateMask = event.stateMask - event.keyCode;
-				} else {
-					/*
-					 * This key up is the other end of a key down that was
-					 * trapped by the operating system or window manager.
-					 */
-					mockEvent.stateMask = event.stateMask;
-				}
-
-				/*
-				 * Get a reasonable facsimile of the stroke that is still
-				 * pressed.
-				 */
-				int key = SWTKeySupport
-						.convertEventToUnmodifiedAccelerator(mockEvent);
-				KeyStroke remainingStroke = SWTKeySupport
-						.convertAcceleratorToKeyStroke(key);
-				final int keyStrokesLength = keyStrokes.length;
-				final KeyStroke[] newKeyStrokes;
-				if ((keyStrokesLength > 0)
-						&& (remainingStroke.getModifierKeys() != 0)) {
-					newKeyStrokes = new KeyStroke[keyStrokesLength];
-					System.arraycopy(keyStrokes, 0, newKeyStrokes, 0,
-							keyStrokesLength - 1);
-					newKeyStrokes[keyStrokesLength - 1] = remainingStroke;
-
-				} else if (keyStrokesLength > 0) {
-					newKeyStrokes = new KeyStroke[keyStrokesLength - 1];
-					System.arraycopy(keyStrokes, 0, newKeyStrokes, 0,
-							keyStrokesLength - 1);
-
-				} else if (remainingStroke.getModifierKeys() != 0) {
-					newKeyStrokes = new KeyStroke[keyStrokesLength + 1];
-					System.arraycopy(keyStrokes, 0, newKeyStrokes, 0,
-							keyStrokesLength);
-					newKeyStrokes[keyStrokesLength] = remainingStroke;
-
-				} else {
-					newKeyStrokes = keyStrokes;
-
-				}
-
-				return newKeyStrokes;
-			}
-
-			return keyStrokes;
-		}
-
-		/**
-		 * <p>
-		 * Handles the case where a key down event is leading to a key stroke
-		 * being inserted. The current selection is deleted, and an invalid
-		 * remanents of the stroke are also removed. The insertion is carried
-		 * out at the cursor position.
-		 * </p>
-		 * <p>
-		 * If only a natural key is selected (as part of a larger key stroke),
-		 * then it is possible for the user to press a natural key to replace
-		 * the old natural key. In this situation, pressing any modifier keys
-		 * will replace the whole thing.
-		 * </p>
-		 * <p>
-		 * If the insertion point is not at the end of the sequence, then
-		 * incomplete strokes will not be immediately inserted. Only when the
-		 * sequence is completed is the stroke inserted. This is a requirement
-		 * as the widget must always represent a valid key sequence. The
-		 * insertion point is tracked using <code>insertionIndex</code>,
-		 * which is an index into the key stroke array.
-		 * </p>
-		 * 
-		 * @param event
-		 *            The triggering key down event; must not be
-		 *            <code>null</code>.
-		 * @param keyStrokes
-		 *            The key strokes into which the current stroke should be
-		 *            inserted. This value must not be <code>null</code>, and
-		 *            must represent a valid key sequence.
-		 */
-		private final KeyStroke[] insertKeyStroke(final Event event,
-				KeyStroke[] keyStrokes) {
-			// Compute the key stroke to insert.
-			int key = SWTKeySupport.convertEventToUnmodifiedAccelerator(event);
-			KeyStroke stroke = SWTKeySupport.convertAcceleratorToKeyStroke(key);
-
-			/*
-			 * Only insert the stroke if it is *not ScrollLock. Let's not get
-			 * silly
-			 */
-			if ((SWT.NUM_LOCK == stroke.getNaturalKey())
-					|| (SWT.CAPS_LOCK == stroke.getNaturalKey())
-					|| (SWT.SCROLL_LOCK == stroke.getNaturalKey())) {
-				return keyStrokes;
-			}
-
-			if (insertionIndex != -1) {
-				// There is a previous replacement still going on.
-				if (stroke.isComplete()) {
-					keyStrokes = insertStrokeAt(keyStrokes, stroke,
-							insertionIndex);
-					clearInsertionIndex();
-				}
-
-			} else if (hasSelection()) {
-				// There is a selection that needs to be replaced.
-				final KeyStroke[][] deletedKeyStrokes = new KeyStroke[1][];
-				insertionIndex = deleteSelection(keyStrokes, stroke
-						.isComplete(), deletedKeyStrokes);
-				keyStrokes = deletedKeyStrokes[0];
-				if ((stroke.isComplete())
-						|| (insertionIndex >= keyStrokes.length)) {
-					keyStrokes = insertStrokeAt(keyStrokes, stroke,
-							insertionIndex);
-					clearInsertionIndex();
-				}
-
-			} else {
-				// No selection, so remove the incomplete stroke, if any
-				if ((hasIncompleteStroke()) && (keyStrokes.length > 0)) {
-					final KeyStroke[] newKeyStrokes = new KeyStroke[keyStrokes.length - 1];
-					System.arraycopy(keyStrokes, 0, newKeyStrokes, 0,
-							keyStrokes.length - 1);
-					keyStrokes = newKeyStrokes;
-				}
-
-				// And then add the new stroke.
-				if ((keyStrokes.length == 0)
-						|| (insertionIndex >= keyStrokes.length)
-						|| (isCursorInLastPosition())) {
-					keyStrokes = insertStrokeAt(keyStrokes, stroke,
-							keyStrokes.length);
-					clearInsertionIndex();
-				} else {
-					/*
-					 * I'm just getting the insertionIndex here. No actual
-					 * deletion should occur.
-					 */
-					final KeyStroke[][] deletedKeyStrokes = new KeyStroke[1][];
-					insertionIndex = deleteSelection(keyStrokes, stroke
-							.isComplete(), deletedKeyStrokes);
-					keyStrokes = deletedKeyStrokes[0];
-					if (stroke.isComplete()) {
-						keyStrokes = insertStrokeAt(keyStrokes, stroke,
-								insertionIndex);
-						clearInsertionIndex();
-					}
-				}
-
-			}
-
-			return keyStrokes;
-		}
-	}
-
-	/**
-	 * A traversal listener that blocks all traversal except for tabs and arrow
-	 * keys.
-	 */
-	private class TraversalFilter implements Listener {
-		/**
-		 * Handles the traverse event on the text field wrapped by this class.
-		 * It swallows all traverse events example for tab and arrow key
-		 * navigation. The other forms of navigation can be reached by tabbing
-		 * off of the control.
-		 * 
-		 * @param event
-		 *            The trigger event; must not be <code>null</code>.
-		 */
-		public void handleEvent(Event event) {
-			switch (event.detail) {
-			case SWT.TRAVERSE_ESCAPE:
-			case SWT.TRAVERSE_MNEMONIC:
-			case SWT.TRAVERSE_NONE:
-			case SWT.TRAVERSE_PAGE_NEXT:
-			case SWT.TRAVERSE_PAGE_PREVIOUS:
-			case SWT.TRAVERSE_RETURN:
-				event.type = SWT.None;
-				event.doit = false;
-				break;
-
-			case SWT.TRAVERSE_TAB_NEXT:
-			case SWT.TRAVERSE_TAB_PREVIOUS:
-				// Check if modifiers other than just 'Shift' were
-				// down.
-				if ((event.stateMask & (SWT.MODIFIER_MASK ^ SWT.SHIFT)) != 0) {
-					// Modifiers other than shift were down.
-					event.type = SWT.None;
-					event.doit = false;
-					break;
-				}
-
-				//$FALL-THROUGH$ -- either no modifiers, or just shift.
-			case SWT.TRAVERSE_ARROW_NEXT:
-			case SWT.TRAVERSE_ARROW_PREVIOUS:
-			default:
-				// Let the traversal happen, but clear the incomplete
-				// stroke
-				if (hasIncompleteStroke()) {
-					final KeyStroke[] oldKeyStrokes = getKeySequence()
-							.getKeyStrokes();
-					final int newKeyStrokesLength = oldKeyStrokes.length - 1;
-					if (newKeyStrokesLength >= 1) {
-						final KeyStroke[] newKeyStrokes = new KeyStroke[newKeyStrokesLength];
-						System.arraycopy(oldKeyStrokes, 0, newKeyStrokes, 0,
-								newKeyStrokesLength);
-						setKeySequence(KeySequence.getInstance(newKeyStrokes));
-					} else {
-						setKeySequence(KeySequence.getInstance());
-					}
-				}
-			}
-
-		}
-	}
-
-	/**
-	 * The manager resposible for installing and removing the traversal filter
-	 * when the key sequence entry widget gains and loses focus.
-	 */
-	private class TraversalFilterManager implements FocusListener {
-		/** The managed filter. We only need one instance. */
-		private TraversalFilter filter = new TraversalFilter();
-		
-		private boolean filtering = false;
-
-		/**
-		 * Attaches the global traversal filter.
-		 * 
-		 * @param event
-		 *            Ignored.
-		 */
-		public void focusGained(FocusEvent event) {
-			Display.getCurrent().addFilter(SWT.Traverse, filter);
-			filtering = true;
-		}
-
-		/**
-		 * Detaches the global traversal filter.
-		 * 
-		 * @param event
-		 *            Ignored.
-		 */
-		public void focusLost(FocusEvent event) {
-			Display.getCurrent().removeFilter(SWT.Traverse, filter);
-			filtering = false;
-		}
-		
-		/**
-		 * Remove the traverse filter if we close without focusOut.
-		 */
-		public void dispose() {
-			if (filtering) {
-				Display.getCurrent().removeFilter(SWT.Traverse, filter);
-			}
-		}
-	}
-
-	/**
-	 * A modification listener that makes sure that external events to this
-	 * class (i.e., direct modification of the underlying text) do not break
-	 * this class' view of the world.
-	 */
-	private class UpdateSequenceListener implements ModifyListener {
-		/**
-		 * Handles the modify event on the underlying text widget.
-		 * 
-		 * @param event
-		 *            The triggering event; ignored.
-		 */
-		public void modifyText(ModifyEvent event) {
-			try {
-				// The original sequence.
-				KeySequence originalSequence = getKeySequence();
-
-				// The new sequence drawn from the text.
-				String contents = getText();
-				KeySequence newSequence = KeySequence.getInstance(contents);
-
-				// Check to see if they're the same.
-				if (!originalSequence.equals(newSequence)) {
-					setKeySequence(newSequence);
-				}
-
-			} catch (ParseException e) {
-				// Abort any cut/paste-driven modifications
-				setKeySequence(getKeySequence());
-			}
-		}
-	}
-
-	static {
-		TreeSet trappedKeys = new TreeSet();
-		trappedKeys.add(SWTKeySupport.convertAcceleratorToKeyStroke(SWT.TAB));
-		trappedKeys.add(SWTKeySupport.convertAcceleratorToKeyStroke(SWT.TAB
-				| SWT.SHIFT));
-		trappedKeys.add(SWTKeySupport.convertAcceleratorToKeyStroke(SWT.BS));
-		List trappedKeyList = new ArrayList(trappedKeys);
-		TRAPPED_KEYS = Collections.unmodifiableList(trappedKeyList);
-	}
-
-	/** An empty string instance for use in clearing text values. */
-	private static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	/**
-	 * The special integer value for the maximum number of strokes indicating
-	 * that an infinite number should be allowed.
-	 */
-	public static final int INFINITE = -1;
-
-	/**
-	 * The name of the property representing the current key sequence in this
-	 * key sequence widget.
-	 * 
-	 * @since 3.2
-	 */
-	public static final String P_KEY_SEQUENCE = "org.eclipse.jface.bindings.keys.KeySequenceText.KeySequence"; //$NON-NLS-1$
-
-	/**
-	 * The keys trapped by this widget. This list is guaranteed to be roughly
-	 * accurate. Perfection is not possible, as SWT does not export traversal
-	 * keys as constants.
-	 */
-	public static final List TRAPPED_KEYS;
-
-	/**
-	 * The key filter attached to the underlying widget that traps key events.
-	 */
-	private final KeyTrapListener keyFilter = new KeyTrapListener();
-
-	/**
-	 * The text of the key sequence -- containing only the complete key strokes.
-	 */
-	private KeySequence keySequence = KeySequence.getInstance();
-
-	/**
-	 * Those listening to changes to the key sequence in this widget. This value
-	 * may be <code>null</code> if there are no listeners.
-	 */
-	private Collection listeners = null;
-
-	/** The maximum number of key strokes permitted in the sequence. */
-	private int maxStrokes = INFINITE;
-
-	/** The text widget that is wrapped for this class. */
-	private final Text text;
-
-	/**
-	 * The listener that makes sure that the text widget remains up-to-date with
-	 * regards to external modification of the text (e.g., cut & pasting).
-	 */
-	private final UpdateSequenceListener updateSequenceListener = new UpdateSequenceListener();
-
-	/**
-	 * Constructs an instance of <code>KeySequenceTextField</code> with the
-	 * text field to use. If the platform is carbon (MacOS X), then the font is
-	 * set to be the same font used to display accelerators in the menus.
-	 * 
-	 * @param wrappedText
-	 *            The text widget to wrap; must not be <code>null</code>.
-	 */
-	public KeySequenceText(Text wrappedText) {
-		text = wrappedText;
-
-		// Set the font if the platform is carbon.
-		if (Util.isMac()) {
-			// Don't worry about this font name here; it is the official menu
-			// font and point size on the Mac.
-			final Font font = new Font(text.getDisplay(),
-					"Lucida Grande", 13, SWT.NORMAL); //$NON-NLS-1$
-			text.setFont(font);
-			text.addDisposeListener(new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					font.dispose();
-				}
-			});
-		}
-
-		// Add the key listener.
-		text.addListener(SWT.KeyUp, keyFilter);
-		text.addListener(SWT.KeyDown, keyFilter);
-
-		final TraversalFilterManager traversalFilterManager = new TraversalFilterManager();
-		text.addFocusListener(traversalFilterManager);
-		text.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				traversalFilterManager.dispose();
-			} 
-		});
-
-		// Add an internal modify listener.
-		text.addModifyListener(updateSequenceListener);
-	}
-
-	/**
-	 * Adds a property change listener to this key sequence widget. It will be
-	 * notified when the key sequence changes.
-	 * 
-	 * @param listener
-	 *            The listener to be notified when changes occur; must not be
-	 *            <code>null</code>.
-	 * @since 3.2
-	 */
-	public final void addPropertyChangeListener(
-			final IPropertyChangeListener listener) {
-		if (listener == null) {
-			return;
-		}
-
-		if (listeners == null) {
-			listeners = new ArrayList(1);
-		}
-
-		listeners.add(listener);
-	}
-
-	/**
-	 * Clears the text field and resets all the internal values.
-	 */
-	public void clear() {
-		final KeySequence oldKeySequence = keySequence;
-		keySequence = KeySequence.getInstance();
-		text.setText(EMPTY_STRING);
-		firePropertyChangeEvent(oldKeySequence);
-	}
-
-	/**
-	 * Removes the key strokes from the list corresponding the selection. If
-	 * <code>allowIncomplete</code>, then invalid key sequences will be
-	 * allowed (i.e., those with incomplete strokes in the non-terminal
-	 * position). Otherwise, incomplete strokes will be removed. This modifies
-	 * <code>keyStrokes</code> in place, and has no effect on the text widget
-	 * this class wraps.
-	 * 
-	 * @param keyStrokes
-	 *            The list of key strokes from which the selection should be
-	 *            removed; must not be <code>null</code>.
-	 * @param allowIncomplete
-	 *            Whether incomplete strokes should be allowed to exist in the
-	 *            list after the deletion.
-	 * @param deletedKeyStrokes
-	 *            The list of keystrokes that were deleted by this operation.
-	 *            Declared as final since it will hold a reference to the new
-	 *            keyStroke array that has deleted the selected keystrokes.
-	 * @return The index at which a subsequent insert should occur. This index
-	 *         only has meaning to the <code>insertStrokeAt</code> method.
-	 */
-	private final int deleteSelection(final KeyStroke[] keyStrokes,
-			final boolean allowIncomplete, final KeyStroke[][] deletedKeyStrokes) {
-		// Get the current selection.
-		Point selection = text.getSelection();
-		int start = selection.x;
-		int end = selection.y;
-
-		/*
-		 * Using the key sequence format method, discover the point at which
-		 * adding key strokes passes or equals the start of the selection. In
-		 * other words, find the first stroke that is part of the selection.
-		 * Keep track of the text range under which the stroke appears (i.e.,
-		 * startTextIndex->string.length() is the first selected stroke).
-		 */
-		String string = new String();
-		List currentStrokes = new ArrayList();
-		int startTextIndex = 0; // keeps track of the start of the stroke
-		final int keyStrokesLength = keyStrokes.length;
-		int i;
-		for (i = 0; (i < keyStrokesLength) && (string.length() < start); i++) {
-			startTextIndex = string.length();
-			currentStrokes.add(keyStrokes[i]);
-			string = KeySequence.getInstance(currentStrokes).format();
-		}
-
-		/*
-		 * If string.length() == start, then the cursor is positioned between
-		 * strokes (i.e., selection is outside of a stroke).
-		 */
-		int startStrokeIndex;
-		if (string.length() == start) {
-			startStrokeIndex = currentStrokes.size();
-		} else {
-			startStrokeIndex = currentStrokes.size() - 1;
-		}
-
-		/*
-		 * Check to see if the cursor is only positioned, rather than actually
-		 * selecting something. We only need to compute the end if there is a
-		 * selection.
-		 */
-		int endStrokeIndex;
-		if (start == end) {
-			// return the current keystrokes, nothing has to be deleted
-			deletedKeyStrokes[0] = keyStrokes;
-			return startStrokeIndex;
-		}
-
-		for (; (i < keyStrokesLength) && (string.length() < end); i++) {
-			currentStrokes.add(keyStrokes[i]);
-			string = KeySequence.getInstance(currentStrokes).format();
-		}
-		endStrokeIndex = currentStrokes.size() - 1;
-		if (endStrokeIndex < 0) {
-			endStrokeIndex = 0;
-		}
-
-		/*
-		 * Remove the strokes that are touched by the selection. Keep track of
-		 * the first stroke removed.
-		 */
-		final int newLength = keyStrokesLength
-				- (endStrokeIndex - startStrokeIndex + 1);
-		deletedKeyStrokes[0] = new KeyStroke[newLength];
-		final KeyStroke startStroke = keyStrokes[startStrokeIndex];
-		KeyStroke keyStrokeResult[] = new KeyStroke[newLength];
-		System.arraycopy(keyStrokes, 0, keyStrokeResult, 0, startStrokeIndex);
-		System.arraycopy(keyStrokes, endStrokeIndex + 1, keyStrokeResult,
-				startStrokeIndex, keyStrokesLength - endStrokeIndex - 1);
-		System.arraycopy(keyStrokeResult, 0, deletedKeyStrokes[0], 0, newLength);
-
-		/*
-		 * Allow the first stroke removed to be replaced by an incomplete
-		 * stroke.
-		 */
-		if (allowIncomplete) {
-			final int modifierKeys = startStroke.getModifierKeys();
-			KeyStroke incompleteStroke = KeyStroke.getInstance(modifierKeys,
-					KeyStroke.NO_KEY);
-			int incompleteStrokeLength = incompleteStroke.format().length();
-			if ((startTextIndex + incompleteStrokeLength) <= start) {
-				final KeyStroke[] added = new KeyStroke[newLength + 1];
-				System.arraycopy(deletedKeyStrokes[0], 0, added, 0,
-						startStrokeIndex);
-				added[startStrokeIndex] = incompleteStroke;
-				System.arraycopy(deletedKeyStrokes[0], startStrokeIndex, added,
-						startStrokeIndex + 1, newLength - startStrokeIndex);
-				deletedKeyStrokes[0] = added;
-			}
-		}
-
-		return startStrokeIndex;
-	}
-
-	/**
-	 * Fires a property change event to all of the listeners.
-	 * 
-	 * @param oldKeySequence
-	 *            The old key sequence; must not be <code>null</code>.
-	 * @since 3.2
-	 */
-	protected final void firePropertyChangeEvent(
-			final KeySequence oldKeySequence) {
-		if (listeners != null) {
-			final Iterator listenerItr = listeners.iterator();
-			final PropertyChangeEvent event = new PropertyChangeEvent(this,
-					P_KEY_SEQUENCE, oldKeySequence, getKeySequence());
-			while (listenerItr.hasNext()) {
-				final IPropertyChangeListener listener = (IPropertyChangeListener) listenerItr
-						.next();
-				listener.propertyChange(event);
-			}
-		}
-	}
-
-	/**
-	 * An accessor for the <code>KeySequence</code> that corresponds to the
-	 * current state of the text field. This includes incomplete strokes.
-	 * 
-	 * @return The key sequence representation; never <code>null</code>.
-	 */
-	public KeySequence getKeySequence() {
-		return keySequence;
-	}
-
-	/**
-	 * An accessor for the underlying text widget's contents.
-	 * 
-	 * @return The text contents of this entry; never <code>null</code>.
-	 */
-	private String getText() {
-		return text.getText();
-	}
-
-	/**
-	 * Tests whether the current key sequence has a stroke with no natural key.
-	 * 
-	 * @return <code>true</code> is there is an incomplete stroke;
-	 *         <code>false</code> otherwise.
-	 */
-	private boolean hasIncompleteStroke() {
-		return !keySequence.isComplete();
-	}
-
-	/**
-	 * Tests whether the current text widget has some text selection.
-	 * 
-	 * @return <code>true</code> if the number of selected characters it
-	 *         greater than zero; <code>false</code> otherwise.
-	 */
-	private boolean hasSelection() {
-		return (text.getSelectionCount() > 0);
-	}
-
-	/**
-	 * Inserts the key stroke at the current insertion point. This does a
-	 * regular delete and insert, as if the key had been pressed.
-	 * 
-	 * @param stroke
-	 *            The key stroke to insert; must not be <code>null</code>.
-	 */
-	public void insert(KeyStroke stroke) {
-		if (!stroke.isComplete()) {
-			return;
-		}
-
-		// Copy the key strokes in the current key sequence.
-		final KeySequence keySequence = getKeySequence();
-		final KeyStroke[] oldKeyStrokes = keySequence.getKeyStrokes();
-		final KeyStroke[] newKeyStrokes;
-		if ((hasIncompleteStroke()) && (!keySequence.isEmpty())) {
-			final int newKeyStrokesLength = oldKeyStrokes.length - 1;
-			newKeyStrokes = new KeyStroke[newKeyStrokesLength];
-			System.arraycopy(oldKeyStrokes, 0, newKeyStrokes, 0,
-					newKeyStrokesLength);
-		} else {
-			newKeyStrokes = oldKeyStrokes;
-		}
-
-		KeyStroke[][] deletedKeyStrokes = new KeyStroke[1][];
-		int index = deleteSelection(newKeyStrokes, false, deletedKeyStrokes);
-		if (index == -1) {
-			index = 0;
-		}
-
-		final KeyStroke[] keyStrokes = insertStrokeAt(newKeyStrokes, stroke, index);
-		keyFilter.clearInsertionIndex();
-		setKeySequence(KeySequence.getInstance(keyStrokes));
-	}
-
-	/**
-	 * Inserts the stroke at the given index in the list of strokes. If the
-	 * stroke currently at that index is incomplete, then it tries to merge the
-	 * two strokes. If merging is a complete failure (unlikely), then it will
-	 * simply overwrite the incomplete stroke. If the stroke at the index is
-	 * complete, then it simply inserts the stroke independently.
-	 * 
-	 * @param keyStrokes
-	 *            The list of key strokes in which the key stroke should be
-	 *            appended; must not be <code>null</code>.
-	 * @param stroke
-	 *            The stroke to insert; should not be <code>null</code>.
-	 * @param index
-	 *            The index at which to insert; must be a valid index into the
-	 *            list of key strokes.
-	 */
-	private final KeyStroke[] insertStrokeAt(final KeyStroke[] keyStrokes,
-			KeyStroke stroke, int index) {
-		final int keyStrokesLength = keyStrokes.length;
-		final KeyStroke currentStroke = (index >= keyStrokesLength) ? null
-				: keyStrokes[index];
-		if ((currentStroke != null) && (!currentStroke.isComplete())) {
-			int modifierKeys = currentStroke.getModifierKeys();
-			final int naturalKey = stroke.getNaturalKey();
-			modifierKeys |= stroke.getModifierKeys();
-			keyStrokes[index] = KeyStroke.getInstance(modifierKeys, naturalKey);
-			return keyStrokes;
-		}
-
-		final KeyStroke[] newKeyStrokes = new KeyStroke[keyStrokesLength + 1];
-		System.arraycopy(keyStrokes, 0, newKeyStrokes, 0, index);
-		newKeyStrokes[index] = stroke;
-		if (index < keyStrokesLength) {
-			System.arraycopy(keyStrokes, index, newKeyStrokes, index + 1,
-					keyStrokesLength-index);
-		}
-		return newKeyStrokes;
-	}
-
-	/**
-	 * Tests whether the cursor is in the last position. This means that the
-	 * selection extends to the last position.
-	 * 
-	 * @return <code>true</code> if the selection extends to the last
-	 *         position; <code>false</code> otherwise.
-	 */
-	private boolean isCursorInLastPosition() {
-		return (text.getSelection().y >= getText().length());
-	}
-
-	/**
-	 * Removes the given listener from this key sequence widget.
-	 * 
-	 * @param listener
-	 *            The listener to be removed; must not be <code>null</code>.
-	 * @since 3.2
-	 */
-	public final void removePropertyChangeListener(
-			final IPropertyChangeListener listener) {
-		if ((listener == null) || (listeners == null)) {
-			return;
-		}
-
-		listeners.remove(listener);
-	}
-
-	/**
-	 * <p>
-	 * A mutator for the key sequence stored within this widget. The text and
-	 * caret position are updated.
-	 * </p>
-	 * <p>
-	 * All sequences are limited to maxStrokes number of strokes in length. If
-	 * there are already that number of strokes, then it does not show
-	 * incomplete strokes, and does not keep track of them.
-	 * </p>
-	 * 
-	 * @param newKeySequence
-	 *            The new key sequence for this widget; may be <code>null</code>
-	 *            if none.
-	 */
-	public void setKeySequence(KeySequence newKeySequence) {
-		final KeySequence oldKeySequence = keySequence;
-
-		if (newKeySequence == null) {
-			text.setText(""); //$NON-NLS-1$
-		} else {
-			keySequence = newKeySequence;			
-		}
-		
-		// Trim any extra strokes.
-		if (maxStrokes != INFINITE) {
-			final KeyStroke[] oldKeyStrokes = keySequence.getKeyStrokes();
-			if (maxStrokes < oldKeyStrokes.length) {
-				final KeyStroke[] newKeyStrokes = new KeyStroke[maxStrokes];
-				System
-						.arraycopy(oldKeyStrokes, 0, newKeyStrokes, 0,
-								maxStrokes);
-				keySequence = KeySequence.getInstance(newKeyStrokes);
-			}
-		}
-
-		// Check to see if the text has changed.
-		String currentString = getText();
-		String newString = keySequence.format();
-		if (!currentString.equals(newString)) {
-			// We need to update the text
-			text.removeModifyListener(updateSequenceListener);
-			text.setText(keySequence.format());
-			text.addModifyListener(updateSequenceListener);
-			text.setSelection(getText().length());
-		}
-
-		firePropertyChangeEvent(oldKeySequence);
-	}
-
-	/**
-	 * Returns the maximum number of strokes that are permitted in this widget
-	 * at one time.
-	 * 
-	 * @return The maximum number of strokes; will be a positive integer or
-	 *         <code>INFINITE</code>.
-	 */
-	public int getKeyStrokeLimit() {
-		return maxStrokes;
-	}
-
-	/**
-	 * A mutator for the maximum number of strokes that are permitted in this
-	 * widget at one time.
-	 * 
-	 * @param keyStrokeLimit
-	 *            The maximum number of strokes; must be a positive integer or
-	 *            <code>INFINITE</code>.
-	 */
-	public void setKeyStrokeLimit(int keyStrokeLimit) {
-		if (keyStrokeLimit > 0 || keyStrokeLimit == INFINITE) {
-			this.maxStrokes = keyStrokeLimit;
-		} else {
-			throw new IllegalArgumentException();
-		}
-
-		// Make sure we are obeying the new limit.
-		setKeySequence(getKeySequence());
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyStroke.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyStroke.java
deleted file mode 100644
index f5e6451..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/KeyStroke.java
+++ /dev/null
@@ -1,281 +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.jface.bindings.keys;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.bindings.Trigger;
-import org.eclipse.jface.bindings.keys.formatting.KeyFormatterFactory;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * A <code>KeyStroke</code> is defined as an optional set of modifier keys
- * followed optionally by a natural key. A <code>KeyStroke</code> is said to
- * be complete if it contains a natural key. A natural key is any Unicode
- * character (e.g., "backspace", etc.), any character belonging to a natural
- * language (e.g., "A", "1", "[", etc.), or any special control character
- * specific to computers (e.g., "F10", "PageUp", etc.).
- * </p>
- * <p>
- * All <code>KeyStroke</code> objects have a formal string representation
- * available via the <code>toString()</code> method. There are a number of
- * methods to get instances of <code>KeyStroke</code> objects, including one
- * which can parse this formal string representation.
- * </p>
- * <p>
- * All <code>KeyStroke</code> objects, via the <code>format()</code> method,
- * provide a version of their formal string representation translated by
- * platform and locale, suitable for display to a user.
- * </p>
- * <p>
- * <code>KeyStroke</code> objects are immutable. Clients are not permitted to
- * extend this class.
- * </p>
- * 
- * @since 3.1
- */
-public final class KeyStroke extends Trigger implements Comparable {
-
-	/**
-	 * The delimiter between multiple keys in a single key strokes -- expressed
-	 * in the formal key stroke grammar. This is not to be displayed to the
-	 * user. It is only intended as an internal representation.
-	 */
-	public static final String KEY_DELIMITER = "\u002B"; //$NON-NLS-1$
-
-	/**
-	 * The set of delimiters for <code>Key</code> objects allowed during
-	 * parsing of the formal string representation.
-	 */
-	public static final String KEY_DELIMITERS = KEY_DELIMITER;
-
-	/**
-	 * The representation for no key.
-	 */
-	public static final int NO_KEY = 0;
-
-	/**
-	 * Creates an instance of <code>KeyStroke</code> given a natural key.
-	 * 
-	 * @param naturalKey
-	 *            the natural key. The format of this integer is defined by
-	 *            whichever widget toolkit you are using; <code>NO_KEY</code>
-	 *            always means no natural key.
-	 * @return a key stroke. This key stroke will have no modifier keys.
-	 *         Guaranteed not to be <code>null</code>.
-	 * @see SWTKeySupport
-	 */
-	public static final KeyStroke getInstance(final int naturalKey) {
-		return new KeyStroke(NO_KEY, naturalKey);
-	}
-
-	/**
-	 * Creates an instance of <code>KeyStroke</code> given a set of modifier keys
-	 * and a natural key.
-	 * 
-	 * @param modifierKeys
-	 *            the modifier keys. The format of this integer is defined by
-	 *            whichever widget toolkit you are using; <code>NO_KEY</code>
-	 *            always means no modifier keys.
-	 * @param naturalKey
-	 *            the natural key. The format of this integer is defined by
-	 *            whichever widget toolkit you are using; <code>NO_KEY</code>
-	 *            always means no natural key.
-	 * @return a key stroke. Guaranteed not to be <code>null</code>.
-	 * @see SWTKeySupport
-	 */
-	public static final KeyStroke getInstance(final int modifierKeys,
-			final int naturalKey) {
-		return new KeyStroke(modifierKeys, naturalKey);
-	}
-
-	/**
-	 * Creates an instance of <code>KeyStroke</code> by parsing a given a formal
-	 * string representation.
-	 * 
-	 * @param string
-	 *            the formal string representation to parse.
-	 * @return a key stroke. Guaranteed not to be <code>null</code>.
-	 * @throws ParseException
-	 *             if the given formal string representation could not be parsed
-	 *             to a valid key stroke.
-	 */
-	public static final KeyStroke getInstance(final String string)
-			throws ParseException {
-		if (string == null) {
-			throw new NullPointerException("Cannot parse a null string"); //$NON-NLS-1$
-		}
-
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		int modifierKeys = NO_KEY;
-		int naturalKey = NO_KEY;
-		final StringTokenizer stringTokenizer = new StringTokenizer(string,
-				KEY_DELIMITERS, true);
-		int i = 0;
-
-		while (stringTokenizer.hasMoreTokens()) {
-			String token = stringTokenizer.nextToken();
-
-			if (i % 2 == 0) {
-				if (stringTokenizer.hasMoreTokens()) {
-					token = token.toUpperCase();
-					final int modifierKey = lookup.formalModifierLookup(token);
-					if (modifierKey == NO_KEY) {
-						throw new ParseException(
-								"Cannot create key stroke with duplicate or non-existent modifier key: " //$NON-NLS-1$
-										+ token);
-					}
-
-					modifierKeys |= modifierKey;
-
-				} else if (token.length() == 1) {
-					naturalKey = token.charAt(0);
-
-				} else {
-					token = token.toUpperCase();
-					naturalKey = lookup.formalKeyLookup(token);
-				}
-			}
-
-			i++;
-		}
-
-		return new KeyStroke(modifierKeys, naturalKey);
-	}
-
-	/**
-	 * An integer representation of the modifier keys; <code>NO_KEY</code>
-	 * means that there is no modifier key.
-	 */
-	private final int modifierKeys;
-
-	/**
-	 * The natural key for this key stroke. This value is <code>NO_KEY</code>
-	 * if the key stroke is incomplete (i.e., has no natural key).
-	 */
-	private final int naturalKey;
-
-	/**
-	 * Constructs an instance of <code>KeyStroke</code> given a set of
-	 * modifier keys and a natural key.
-	 * 
-	 * @param modifierKeys
-	 *            the modifier keys. The format of this integer is defined by
-	 *            whichever widget toolkit you are using; <code>NO_KEY</code>
-	 *            always means no modifier keys.
-	 * @param naturalKey
-	 *            the natural key. The format of this integer is defined by
-	 *            whichever widget toolkit you are using; <code>NO_KEY</code>
-	 *            always means no natural key.
-	 * @see SWTKeySupport
-	 */
-	private KeyStroke(final int modifierKeys, final int naturalKey) {
-		this.modifierKeys = modifierKeys;
-		this.naturalKey = naturalKey;
-	}
-
-    /*
-     * (non-Javadoc)
-     * 
-	 * @see java.lang.Comparable#compareTo(java.lang.Object)
-	 */
-	public final int compareTo(final Object object) {
-		final KeyStroke keyStroke = (KeyStroke) object;
-		int compareTo = Util.compare(modifierKeys, keyStroke.modifierKeys);
-
-		if (compareTo == 0) {
-			compareTo = Util.compare(naturalKey, keyStroke.naturalKey);
-		}
-
-		return compareTo;
-	}
-
-    /*
-     * (non-Javadoc)
-     * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public final boolean equals(final Object object) {
-		if (!(object instanceof KeyStroke)) {
-			return false;
-		}
-
-		final KeyStroke keyStroke = (KeyStroke) object;
-		if (modifierKeys != keyStroke.modifierKeys) {
-			return false;
-		}
-
-		return (naturalKey == keyStroke.naturalKey);
-	}
-
-	/**
-	 * Formats this key stroke into the current default look.
-	 * 
-	 * @return A string representation for this key stroke using the default
-	 *         look; never <code>null</code>.
-	 */
-	public final String format() {
-		return KeyFormatterFactory.getDefault().format(this);
-	}
-
-	/**
-	 * Returns the modifier keys for this key stroke.
-	 * 
-	 * @return the bit mask of modifier keys; <code>NO_KEY</code> means that
-	 *         there is no modifier key.
-	 */
-	public final int getModifierKeys() {
-		return modifierKeys;
-	}
-
-	/**
-	 * Returns the natural key for this key stroke.
-	 * 
-	 * @return The natural key for this key stroke. This value is
-	 *         <code>NO_KEY</code> if the key stroke is incomplete (i.e., has
-	 *         no natural key).
-	 */
-	public final int getNaturalKey() {
-		return naturalKey;
-	}
-
-    /*
-     * (non-Javadoc)
-     * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public final int hashCode() {
-		return modifierKeys << 4 + naturalKey;
-	}
-
-	/**
-	 * Returns whether or not this key stroke is complete. Key strokes are
-	 * complete iff they have a natural key which is not <code>NO_KEY</code>.
-	 * 
-	 * @return <code>true</code>, iff the key stroke is complete.
-	 */
-	public final boolean isComplete() {
-		return (naturalKey != NO_KEY);
-	}
-
-	/**
-	 * Returns the formal string representation for this key stroke.
-	 * 
-	 * @return The formal string representation for this key stroke. Guaranteed
-	 *         not to be <code>null</code>.
-	 * @see java.lang.Object#toString()
-	 */
-	public final String toString() {
-		return KeyFormatterFactory.getFormalKeyFormatter().format(this);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/ParseException.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/ParseException.java
deleted file mode 100644
index 920ed15..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/ParseException.java
+++ /dev/null
@@ -1,45 +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.jface.bindings.keys;
-
-/**
- * <p>
- * An exception indicating problems while parsing formal string representations
- * of either <code>KeyStroke</code> or <code>KeySequence</code> objects.
- * </p>
- * <p>
- * <code>ParseException</code> objects are immutable. Clients are not
- * permitted to extend this class.
- * </p>
- * 
- * @since 3.1
- */
-public final class ParseException extends Exception {
-
-    /**
-     * Generated serial version UID for this class.
-     * 
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3257009864814376241L;
-
-    /**
-     * Constructs a <code>ParseException</code> with the specified detail
-     * message.
-     * 
-     * @param s
-     *            the detail message.
-     */
-    public ParseException(final String s) {
-        super(s);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeyLookup.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeyLookup.java
deleted file mode 100644
index 3854a6c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeyLookup.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.bindings.keys;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-
-/**
- * <p>
- * A look-up table for the formal grammar for keys, and the integer values they
- * represent. This look-up table is hard-coded to use SWT representations. By
- * replacing this class (and
- * {@link org.eclipse.jface.bindings.keys.SWTKeySupport}), you can remove the
- * dependency on SWT.
- * </p>
- * 
- * @since 3.1
- * @see org.eclipse.jface.bindings.keys.KeyLookupFactory
- */
-public final class SWTKeyLookup implements IKeyLookup {
-
-	/**
-	 * The look-up table for modifier keys. This is a map of formal name (<code>String</code>)
-	 * to integer value (<code>Integer</code>).
-	 */
-	private final Map modifierKeyTable = new HashMap();
-
-	/**
-	 * The look-up table for formal names. This is a map of integer value (<code>Integer</code>)
-	 * to formal name (<code>String</code>).
-	 */
-	private final Map nameTable = new HashMap();
-
-	/**
-	 * The look-up table for natural keys. This is a map of formal name (<code>String</code>)
-	 * to integer value (<code>Integer</code>).
-	 */
-	private final Map naturalKeyTable = new HashMap();
-
-	/**
-	 * Constructs a new look-up class. This should only be done by the look-up
-	 * factory.
-	 * 
-	 * @see KeyLookupFactory
-	 */
-	SWTKeyLookup() {
-		final Integer alt = new Integer(SWT.ALT);
-		final Integer command = new Integer(SWT.COMMAND);
-		final Integer ctrl = new Integer(SWT.CTRL);
-		final Integer shift = new Integer(SWT.SHIFT);
-		modifierKeyTable.put(ALT_NAME, alt);
-		nameTable.put(alt, ALT_NAME);
-		modifierKeyTable.put(COMMAND_NAME, command);
-		nameTable.put(command, COMMAND_NAME);
-		modifierKeyTable.put(CTRL_NAME, ctrl);
-		nameTable.put(ctrl, CTRL_NAME);
-		modifierKeyTable.put(SHIFT_NAME, shift);
-		nameTable.put(shift, SHIFT_NAME);
-		modifierKeyTable.put(M1_NAME,
-				Util.isMac() ? command : ctrl);
-		modifierKeyTable.put(M2_NAME, shift);
-		modifierKeyTable.put(M3_NAME, alt);
-		modifierKeyTable.put(M4_NAME, Util.isMac() ? ctrl 
-				: command);
-
-		final Integer arrowDown = new Integer(SWT.ARROW_DOWN);
-		naturalKeyTable.put(ARROW_DOWN_NAME, arrowDown);
-		nameTable.put(arrowDown, ARROW_DOWN_NAME);
-		final Integer arrowLeft = new Integer(SWT.ARROW_LEFT);
-		naturalKeyTable.put(ARROW_LEFT_NAME, arrowLeft);
-		nameTable.put(arrowLeft, ARROW_LEFT_NAME);
-		final Integer arrowRight = new Integer(SWT.ARROW_RIGHT);
-		naturalKeyTable.put(ARROW_RIGHT_NAME, arrowRight);
-		nameTable.put(arrowRight, ARROW_RIGHT_NAME);
-		final Integer arrowUp = new Integer(SWT.ARROW_UP);
-		naturalKeyTable.put(ARROW_UP_NAME, arrowUp);
-		nameTable.put(arrowUp, ARROW_UP_NAME);
-		final Integer breakKey = new Integer(SWT.BREAK);
-		naturalKeyTable.put(BREAK_NAME, breakKey);
-		nameTable.put(breakKey, BREAK_NAME);
-		final Integer bs = new Integer(SWT.BS);
-		naturalKeyTable.put(BS_NAME, bs);
-		nameTable.put(bs, BS_NAME);
-		naturalKeyTable.put(BACKSPACE_NAME, bs);
-		final Integer capsLock = new Integer(SWT.CAPS_LOCK);
-		naturalKeyTable.put(CAPS_LOCK_NAME, capsLock);
-		nameTable.put(capsLock, CAPS_LOCK_NAME);
-		final Integer cr = new Integer(SWT.CR);
-		naturalKeyTable.put(CR_NAME, cr);
-		nameTable.put(cr, CR_NAME);
-		naturalKeyTable.put(ENTER_NAME, cr);
-		naturalKeyTable.put(RETURN_NAME, cr);
-		final Integer del = new Integer(SWT.DEL);
-		naturalKeyTable.put(DEL_NAME, del);
-		nameTable.put(del, DEL_NAME);
-		naturalKeyTable.put(DELETE_NAME, del);
-		final Integer end = new Integer(SWT.END);
-		naturalKeyTable.put(END_NAME, end);
-		nameTable.put(end, END_NAME);
-		final Integer esc = new Integer(SWT.ESC);
-		naturalKeyTable.put(ESC_NAME, esc);
-		nameTable.put(esc, ESC_NAME);
-		naturalKeyTable.put(ESCAPE_NAME, esc);
-		final Integer f1 = new Integer(SWT.F1);
-		naturalKeyTable.put(F1_NAME, f1);
-		nameTable.put(f1, F1_NAME);
-		final Integer f2 = new Integer(SWT.F2);
-		naturalKeyTable.put(F2_NAME, new Integer(SWT.F2));
-		nameTable.put(f2, F2_NAME);
-		final Integer f3 = new Integer(SWT.F3);
-		naturalKeyTable.put(F3_NAME, new Integer(SWT.F3));
-		nameTable.put(f3, F3_NAME);
-		final Integer f4 = new Integer(SWT.F4);
-		naturalKeyTable.put(F4_NAME, new Integer(SWT.F4));
-		nameTable.put(f4, F4_NAME);
-		final Integer f5 = new Integer(SWT.F5);
-		naturalKeyTable.put(F5_NAME, new Integer(SWT.F5));
-		nameTable.put(f5, F5_NAME);
-		final Integer f6 = new Integer(SWT.F6);
-		naturalKeyTable.put(F6_NAME, new Integer(SWT.F6));
-		nameTable.put(f6, F6_NAME);
-		final Integer f7 = new Integer(SWT.F7);
-		naturalKeyTable.put(F7_NAME, new Integer(SWT.F7));
-		nameTable.put(f7, F7_NAME);
-		final Integer f8 = new Integer(SWT.F8);
-		naturalKeyTable.put(F8_NAME, new Integer(SWT.F8));
-		nameTable.put(f8, F8_NAME);
-		final Integer f9 = new Integer(SWT.F9);
-		naturalKeyTable.put(F9_NAME, new Integer(SWT.F9));
-		nameTable.put(f9, F9_NAME);
-		final Integer f10 = new Integer(SWT.F10);
-		naturalKeyTable.put(F10_NAME, new Integer(SWT.F10));
-		nameTable.put(f10, F10_NAME);
-		final Integer f11 = new Integer(SWT.F11);
-		naturalKeyTable.put(F11_NAME, new Integer(SWT.F11));
-		nameTable.put(f11, F11_NAME);
-		final Integer f12 = new Integer(SWT.F12);
-		naturalKeyTable.put(F12_NAME, new Integer(SWT.F12));
-		nameTable.put(f12, F12_NAME);
-		final Integer f13 = new Integer(SWT.F13);
-		naturalKeyTable.put(F13_NAME, new Integer(SWT.F13));
-		nameTable.put(f13, F13_NAME);
-		final Integer f14 = new Integer(SWT.F14);
-		naturalKeyTable.put(F14_NAME, new Integer(SWT.F14));
-		nameTable.put(f14, F14_NAME);
-		final Integer f15 = new Integer(SWT.F15);
-		naturalKeyTable.put(F15_NAME, new Integer(SWT.F15));
-		nameTable.put(f15, F15_NAME);
-		final Integer ff = new Integer(12); // ASCII 0x0C
-		naturalKeyTable.put(FF_NAME, ff);
-		nameTable.put(ff, FF_NAME);
-		final Integer home = new Integer(SWT.HOME);
-		naturalKeyTable.put(HOME_NAME, home);
-		nameTable.put(home, HOME_NAME);
-		final Integer insert = new Integer(SWT.INSERT);
-		naturalKeyTable.put(INSERT_NAME, insert);
-		nameTable.put(insert, INSERT_NAME);
-		final Integer lf = new Integer(SWT.LF);
-		naturalKeyTable.put(LF_NAME, lf);
-		nameTable.put(lf, LF_NAME);
-		final Integer nul = new Integer(SWT.NULL);
-		naturalKeyTable.put(NUL_NAME, nul);
-		nameTable.put(nul, NUL_NAME);
-		final Integer numLock = new Integer(SWT.NUM_LOCK);
-		naturalKeyTable.put(NUM_LOCK_NAME, numLock);
-		nameTable.put(numLock, NUM_LOCK_NAME);
-		final Integer keypad0 = new Integer(SWT.KEYPAD_0);
-		naturalKeyTable.put(NUMPAD_0_NAME, keypad0);
-		nameTable.put(keypad0, NUMPAD_0_NAME);
-		final Integer keypad1 = new Integer(SWT.KEYPAD_1);
-		naturalKeyTable.put(NUMPAD_1_NAME, keypad1);
-		nameTable.put(keypad1, NUMPAD_1_NAME);
-		final Integer keypad2 = new Integer(SWT.KEYPAD_2);
-		naturalKeyTable.put(NUMPAD_2_NAME, keypad2);
-		nameTable.put(keypad2, NUMPAD_2_NAME);
-		final Integer keypad3 = new Integer(SWT.KEYPAD_3);
-		naturalKeyTable.put(NUMPAD_3_NAME, keypad3);
-		nameTable.put(keypad3, NUMPAD_3_NAME);
-		final Integer keypad4 = new Integer(SWT.KEYPAD_4);
-		naturalKeyTable.put(NUMPAD_4_NAME, keypad4);
-		nameTable.put(keypad4, NUMPAD_4_NAME);
-		final Integer keypad5 = new Integer(SWT.KEYPAD_5);
-		naturalKeyTable.put(NUMPAD_5_NAME, keypad5);
-		nameTable.put(keypad5, NUMPAD_5_NAME);
-		final Integer keypad6 = new Integer(SWT.KEYPAD_6);
-		naturalKeyTable.put(NUMPAD_6_NAME, keypad6);
-		nameTable.put(keypad6, NUMPAD_6_NAME);
-		final Integer keypad7 = new Integer(SWT.KEYPAD_7);
-		naturalKeyTable.put(NUMPAD_7_NAME, keypad7);
-		nameTable.put(keypad7, NUMPAD_7_NAME);
-		final Integer keypad8 = new Integer(SWT.KEYPAD_8);
-		naturalKeyTable.put(NUMPAD_8_NAME, keypad8);
-		nameTable.put(keypad8, NUMPAD_8_NAME);
-		final Integer keypad9 = new Integer(SWT.KEYPAD_9);
-		naturalKeyTable.put(NUMPAD_9_NAME, keypad9);
-		nameTable.put(keypad9, NUMPAD_9_NAME);
-		final Integer keypadAdd = new Integer(SWT.KEYPAD_ADD);
-		naturalKeyTable.put(NUMPAD_ADD_NAME, keypadAdd);
-		nameTable.put(keypadAdd, NUMPAD_ADD_NAME);
-		final Integer keypadDecimal = new Integer(SWT.KEYPAD_DECIMAL);
-		naturalKeyTable.put(NUMPAD_DECIMAL_NAME, keypadDecimal);
-		nameTable.put(keypadDecimal, NUMPAD_DECIMAL_NAME);
-		final Integer keypadDivide = new Integer(SWT.KEYPAD_DIVIDE);
-		naturalKeyTable.put(NUMPAD_DIVIDE_NAME, keypadDivide);
-		nameTable.put(keypadDivide, NUMPAD_DIVIDE_NAME);
-		final Integer keypadCr = new Integer(SWT.KEYPAD_CR);
-		naturalKeyTable.put(NUMPAD_ENTER_NAME, keypadCr);
-		nameTable.put(keypadCr, NUMPAD_ENTER_NAME);
-		final Integer keypadEqual = new Integer(SWT.KEYPAD_EQUAL);
-		naturalKeyTable.put(NUMPAD_EQUAL_NAME, keypadEqual);
-		nameTable.put(keypadEqual, NUMPAD_EQUAL_NAME);
-		final Integer keypadMultiply = new Integer(SWT.KEYPAD_MULTIPLY);
-		naturalKeyTable.put(NUMPAD_MULTIPLY_NAME, keypadMultiply);
-		nameTable.put(keypadMultiply, NUMPAD_MULTIPLY_NAME);
-		final Integer keypadSubtract = new Integer(SWT.KEYPAD_SUBTRACT);
-		naturalKeyTable.put(NUMPAD_SUBTRACT_NAME, keypadSubtract);
-		nameTable.put(keypadSubtract, NUMPAD_SUBTRACT_NAME);
-		final Integer pageDown = new Integer(SWT.PAGE_DOWN);
-		naturalKeyTable.put(PAGE_DOWN_NAME, pageDown);
-		nameTable.put(pageDown, PAGE_DOWN_NAME);
-		final Integer pageUp = new Integer(SWT.PAGE_UP);
-		naturalKeyTable.put(PAGE_UP_NAME, pageUp);
-		nameTable.put(pageUp, PAGE_UP_NAME);
-		final Integer pause = new Integer(SWT.PAUSE);
-		naturalKeyTable.put(PAUSE_NAME, pause);
-		nameTable.put(pause, PAUSE_NAME);
-		final Integer printScreen = new Integer(SWT.PRINT_SCREEN);
-		naturalKeyTable.put(PRINT_SCREEN_NAME, printScreen);
-		nameTable.put(printScreen, PRINT_SCREEN_NAME);
-		final Integer scrollLock = new Integer(SWT.SCROLL_LOCK);
-		naturalKeyTable.put(SCROLL_LOCK_NAME, scrollLock);
-		nameTable.put(scrollLock, SCROLL_LOCK_NAME);
-		final Integer space = new Integer(' ');
-		naturalKeyTable.put(SPACE_NAME, space);
-		nameTable.put(space, SPACE_NAME);
-		final Integer tab = new Integer(SWT.TAB);
-		naturalKeyTable.put(TAB_NAME, tab);
-		nameTable.put(tab, TAB_NAME);
-		final Integer vt = new Integer(11); // ASCII 0x0B
-		naturalKeyTable.put(VT_NAME, vt);
-		nameTable.put(vt, VT_NAME);
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#formalKeyLookup(java.lang.String)
- 	 * 
-	 */	
-	public final int formalKeyLookup(final String name) {
-		final Object value = naturalKeyTable.get(name);
-		if (value instanceof Integer) {
-			return ((Integer) value).intValue();
-		}
-		
-		if (name.length() > 0) {
-			throw new IllegalArgumentException("Unrecognized formal key name: " //$NON-NLS-1$
-					+ name);
-		}
-
-		return name.charAt(0);
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#formalKeyLookupInteger(java.lang.String)
- 	 * 
-	 */	
-	public final Integer formalKeyLookupInteger(final String name) {
-		final Object value = naturalKeyTable.get(name);
-		if (value instanceof Integer) {
-			return (Integer) value;
-		}
-
-		return new Integer(name.charAt(0));
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#formalModifierLookup(java.lang.String)
- 	 * 
-	 */	
-	public final int formalModifierLookup(final String name) {
-		final Object value = modifierKeyTable.get(name);
-		if (value instanceof Integer) {
-			return ((Integer) value).intValue();
-		}
-
-		return 0;
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#formalNameLookup(int)
- 	 * 
-	 */	
-	public final String formalNameLookup(final int key) {
-		final Integer keyObject = new Integer(key);
-		final Object value = nameTable.get(keyObject);
-		if (value instanceof String) {
-			return (String) value;
-		}
-
-		return Util.ZERO_LENGTH_STRING + ((char) key);
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#getAlt()
- 	 * 
-	 */	
-	public final int getAlt() {
-		return SWT.ALT;
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#getCommand()
- 	 * 
-	 */	
-	public final int getCommand() {
-		return SWT.COMMAND;
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#getCtrl()
- 	 * 
-	 */	
-	public final int getCtrl() {
-		return SWT.CTRL;
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#getShift()
- 	 * 
-	 */	
-	public final int getShift() {
-		return SWT.SHIFT;
-	}
-
-	/*
-     * (non-Javadoc)
-     * 
- 	 * @see org.eclipse.jface.bindings.keys.IKeyLookup#isModifierKey(int)
- 	 * 
-	 */	
-	public final boolean isModifierKey(final int key) {
-		return ((key & SWT.MODIFIER_MASK) != 0);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeySupport.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeySupport.java
deleted file mode 100644
index c5429b9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/SWTKeySupport.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.bindings.keys;
-
-import org.eclipse.jface.bindings.keys.formatting.IKeyFormatter;
-import org.eclipse.jface.bindings.keys.formatting.NativeKeyFormatter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * <p>
- * A utility class for converting SWT events into key strokes.
- * </p>
- * 
- * @since 3.1
- */
-public final class SWTKeySupport {
-
-	/**
-	 * A formatter that displays key sequences in a style native to the
-	 * platform.
-	 */
-	private static final IKeyFormatter NATIVE_FORMATTER = new NativeKeyFormatter();
-
-	/**
-	 * Given an SWT accelerator value, provide the corresponding key stroke.
-	 * 
-	 * @param accelerator
-	 *            The accelerator to convert; should be a valid SWT accelerator
-	 *            value.
-	 * @return The equivalent key stroke; never <code>null</code>.
-	 */
-	public static final KeyStroke convertAcceleratorToKeyStroke(int accelerator) {
-		final int modifierKeys = accelerator & SWT.MODIFIER_MASK;
-		final int naturalKey;
-		if (accelerator == modifierKeys) {
-			naturalKey = KeyStroke.NO_KEY;
-		} else {
-			naturalKey = accelerator - modifierKeys;
-		}
-		
-		return KeyStroke.getInstance(modifierKeys, naturalKey);
-	}
-
-	/**
-	 * <p>
-	 * Converts the given event into an SWT accelerator value -- considering the
-	 * modified character with the shift modifier. This is the third accelerator
-	 * value that should be checked when processing incoming key events.
-	 * </p>
-	 * <p>
-	 * For example, on a standard US keyboard, "Ctrl+Shift+5" would be viewed as
-	 * "Ctrl+Shift+%".
-	 * </p>
-	 * 
-	 * @param event
-	 *            The event to be converted; must not be <code>null</code>.
-	 * @return The combination of the state mask and the unmodified character.
-	 */
-	public static final int convertEventToModifiedAccelerator(final Event event) {
-		int modifiers = event.stateMask & SWT.MODIFIER_MASK;
-		char character = topKey(event);
-		return modifiers + toUpperCase(character);
-	}
-
-	/**
-	 * <p>
-	 * Converts the given event into an SWT accelerator value -- considering the
-	 * unmodified character with all modifier keys. This is the first
-	 * accelerator value that should be checked when processing incoming key
-	 * events. However, all alphabetic characters are considered as their
-	 * uppercase equivalents.
-	 * </p>
-	 * <p>
-	 * For example, on a standard US keyboard, "Ctrl+Shift+5" would be viewed as
-	 * "Ctrl+Shift+5".
-	 * </p>
-	 * 
-	 * @param event
-	 *            The event to be converted; must not be <code>null</code>.
-	 * @return The combination of the state mask and the unmodified character.
-	 */
-	public static final int convertEventToUnmodifiedAccelerator(
-			final Event event) {
-		return convertEventToUnmodifiedAccelerator(event.stateMask,
-				event.keyCode);
-	}
-
-	/**
-	 * <p>
-	 * Converts the given state mask and key code into an SWT accelerator value --
-	 * considering the unmodified character with all modifier keys. All
-	 * alphabetic characters are considered as their uppercase equivalents.
-	 * </p>
-	 * <p>
-	 * For example, on a standard US keyboard, "Ctrl+Shift+5" would be viewed as
-	 * "Ctrl+Shift+5".
-	 * </p>
-	 * 
-	 * @param stateMask
-	 *            The integer mask of modifiers keys depressed when this was
-	 *            pressed.
-	 * @param keyCode
-	 *            The key that was pressed, before being modified.
-	 * @return The combination of the state mask and the unmodified character.
-	 */
-	private static final int convertEventToUnmodifiedAccelerator(
-			final int stateMask, final int keyCode) {
-		int modifiers = stateMask & SWT.MODIFIER_MASK;
-		int character = keyCode;
-		return modifiers + toUpperCase(character);
-	}
-
-	/**
-	 * <p>
-	 * Converts the given event into an SWT accelerator value -- considering the
-	 * unmodified character with all modifier keys. This is the first
-	 * accelerator value that should be checked. However, all alphabetic
-	 * characters are considered as their uppercase equivalents.
-	 * </p>
-	 * <p>
-	 * For example, on a standard US keyboard, "Ctrl+Shift+5" would be viewed as
-	 * "Ctrl+%".
-	 * </p>
-	 * 
-	 * @param event
-	 *            The event to be converted; must not be <code>null</code>.
-	 * @return The combination of the state mask and the unmodified character.
-	 */
-	public static final int convertEventToUnmodifiedAccelerator(
-			final KeyEvent event) {
-		return convertEventToUnmodifiedAccelerator(event.stateMask,
-				event.keyCode);
-	}
-
-	/**
-	 * Converts the given event into an SWT accelerator value -- considering the
-	 * modified character without the shift modifier. This is the second
-	 * accelerator value that should be checked when processing incoming key
-	 * events. Key strokes with alphabetic natural keys are run through
-	 * <code>convertEventToUnmodifiedAccelerator</code>.
-	 * 
-	 * @param event
-	 *            The event to be converted; must not be <code>null</code>.
-	 * @return The combination of the state mask without shift, and the modified
-	 *         character.
-	 */
-	public static final int convertEventToUnshiftedModifiedAccelerator(
-			final Event event) {
-		// Disregard alphabetic key strokes.
-		if (Character.isLetter((char) event.keyCode)) {
-			return convertEventToUnmodifiedAccelerator(event);
-		}
-
-		int modifiers = event.stateMask & (SWT.MODIFIER_MASK ^ SWT.SHIFT);
-		char character = topKey(event);
-		return modifiers + toUpperCase(character);
-	}
-
-	/**
-	 * Given a key stroke, this method provides the equivalent SWT accelerator
-	 * value. The functional inverse of
-	 * <code>convertAcceleratorToKeyStroke</code>.
-	 * 
-	 * @param keyStroke
-	 *            The key stroke to convert; must not be <code>null</code>.
-	 * @return The SWT accelerator value
-	 */
-	public static final int convertKeyStrokeToAccelerator(
-			final KeyStroke keyStroke) {
-		return keyStroke.getModifierKeys() + keyStroke.getNaturalKey();
-	}
-
-	/**
-	 * Provides an instance of <code>IKeyFormatter</code> appropriate for the
-	 * current instance.
-	 * 
-	 * @return an instance of <code>IKeyFormatter</code> appropriate for the
-	 *         current instance; never <code>null</code>.
-	 */
-	public static IKeyFormatter getKeyFormatterForPlatform() {
-		return NATIVE_FORMATTER;
-	}
-
-	/**
-	 * Makes sure that a fully-modified character is converted to the normal
-	 * form. This means that "Ctrl+" key strokes must reverse the modification
-	 * caused by control-escaping. Also, all lower case letters are converted to
-	 * uppercase.
-	 * 
-	 * @param event
-	 *            The event from which the fully-modified character should be
-	 *            pulled.
-	 * @return The modified character, uppercase and without control-escaping.
-	 */
-	private static final char topKey(final Event event) {
-		char character = event.character;
-		boolean ctrlDown = (event.stateMask & SWT.CTRL) != 0;
-
-		if (ctrlDown && event.character != event.keyCode
-				&& event.character < 0x20 
-				&& (event.keyCode & SWT.KEYCODE_BIT) == 0) {
-			character += 0x40;
-		}
-
-		return character;
-	}
-
-	/**
-	 * Makes the given character uppercase if it is a letter.
-	 * 
-	 * @param keyCode
-	 *            The character to convert.
-	 * @return The uppercase equivalent, if any; otherwise, the character
-	 *         itself.
-	 */
-	private static final int toUpperCase(int keyCode) {
-		// Will this key code be truncated?
-		if (keyCode > 0xFFFF) {
-			return keyCode;
-		}
-
-		// Downcast in safety. Only make characters uppercase.
-		final char character = (char) keyCode;
-		return Character.isLetter(character) ? Character.toUpperCase(character)
-				: keyCode;
-	}
-
-	/**
-	 * This class should never be instantiated.
-	 */
-	protected SWTKeySupport() {
-		// This class should never be instantiated.
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.java
deleted file mode 100644
index c609ec3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.java
+++ /dev/null
@@ -1,178 +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.jface.bindings.keys.formatting;
-
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.ResourceBundle;
-import java.util.Set;
-
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * An abstract implementation of a key formatter that provides a lot of common
- * key formatting functionality. It is recommended that implementations of
- * <code>IKeyFormatter</code> subclass from here, rather than implementing
- * <code>IKeyFormatter</code> directly.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class AbstractKeyFormatter implements IKeyFormatter {
-
-	/**
-	 * The key for the delimiter between keys. This is used in the
-	 * internationalization bundles.
-	 */
-	protected static final String KEY_DELIMITER_KEY = "KEY_DELIMITER"; //$NON-NLS-1$
-
-	/**
-	 * The key for the delimiter between key strokes. This is used in the
-	 * internationalization bundles.
-	 */
-	protected static final String KEY_STROKE_DELIMITER_KEY = "KEY_STROKE_DELIMITER"; //$NON-NLS-1$
-
-	/**
-	 * An empty integer array that can be used in
-	 * <code>sortModifierKeys(int)</code>.
-	 */
-	protected static final int[] NO_MODIFIER_KEYS = new int[0];
-
-	/**
-	 * The bundle in which to look up the internationalized text for all of the
-	 * individual keys in the system. This is the platform-agnostic version of
-	 * the internationalized strings. Some platforms (namely Carbon) provide
-	 * special Unicode characters and glyphs for some keys.
-	 */
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-			.getBundle(AbstractKeyFormatter.class.getName());
-
-	/**
-	 * The keys in the resource bundle. This is used to avoid missing resource
-	 * exceptions when they aren't necessary.
-	 */
-	private static final Set resourceBundleKeys = new HashSet();
-
-	static {
-		final Enumeration keyEnumeration = RESOURCE_BUNDLE.getKeys();
-		while (keyEnumeration.hasMoreElements()) {
-			final Object element = keyEnumeration.nextElement();
-			resourceBundleKeys.add(element);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keysKeyFormatter#format(org.eclipse.jface.bindings.keys.KeySequence)
-	 */
-	public String format(final int key) {
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		final String name = lookup.formalNameLookup(key);
-
-		if (resourceBundleKeys.contains(name)) {
-			return Util.translateString(RESOURCE_BUNDLE, name, name);
-		}
-		
-		return name;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.KeyFormatter#format(org.eclipse.jface.bindings.keys.KeySequence)
-	 */
-	public String format(KeySequence keySequence) {
-		StringBuffer stringBuffer = new StringBuffer();
-
-		final KeyStroke[] keyStrokes = keySequence.getKeyStrokes();
-		final int keyStrokesLength = keyStrokes.length;
-		for (int i = 0; i < keyStrokesLength; i++) {
-			stringBuffer.append(format(keyStrokes[i]));
-
-			if (i + 1 < keyStrokesLength) {
-				stringBuffer.append(getKeyStrokeDelimiter());
-			}
-		}
-
-		return stringBuffer.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.KeyFormatter#formatKeyStroke(org.eclipse.jface.bindings.keys.KeyStroke)
-	 */
-	public String format(final KeyStroke keyStroke) {
-		final String keyDelimiter = getKeyDelimiter();
-
-		// Format the modifier keys, in sorted order.
-		final int modifierKeys = keyStroke.getModifierKeys();
-		final int[] sortedModifierKeys = sortModifierKeys(modifierKeys);
-		final StringBuffer stringBuffer = new StringBuffer();
-		if (sortedModifierKeys != null) {
-			for (int i = 0; i < sortedModifierKeys.length; i++) {
-				final int modifierKey = sortedModifierKeys[i];
-				if (modifierKey != KeyStroke.NO_KEY) {
-					stringBuffer.append(format(modifierKey));
-					stringBuffer.append(keyDelimiter);
-				}
-			}
-		}
-
-		// Format the natural key, if any.
-		final int naturalKey = keyStroke.getNaturalKey();
-		if (naturalKey != 0) {
-			stringBuffer.append(format(naturalKey));
-		}
-
-		return stringBuffer.toString();
-
-	}
-
-	/**
-	 * An accessor for the delimiter you wish to use between keys. This is used
-	 * by the default format implementations to determine the key delimiter.
-	 * 
-	 * @return The delimiter to use between keys; should not be
-	 *         <code>null</code>.
-	 */
-	protected abstract String getKeyDelimiter();
-
-	/**
-	 * An accessor for the delimiter you wish to use between key strokes. This
-	 * used by the default format implementations to determine the key stroke
-	 * delimiter.
-	 * 
-	 * @return The delimiter to use between key strokes; should not be
-	 *         <code>null</code>.
-	 */
-	protected abstract String getKeyStrokeDelimiter();
-
-	/**
-	 * Separates the modifier keys from each other, and then places them in an
-	 * array in some sorted order. The sort order is dependent on the type of
-	 * formatter.
-	 * 
-	 * @param modifierKeys
-	 *            The modifier keys from the key stroke.
-	 * @return An array of modifier key values -- separated and sorted in some
-	 *         order. Any values in this array that are
-	 *         <code>KeyStroke.NO_KEY</code> should be ignored.
-	 */
-	protected abstract int[] sortModifierKeys(final int modifierKeys);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.properties
deleted file mode 100644
index 1949c93..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/AbstractKeyFormatter.properties
+++ /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
-###############################################################################
-
-# Modifier keys
-ALT=Alt
-COMMAND=Command
-CTRL=Ctrl
-SHIFT=Shift
-
-# Special keys
-ARROW_DOWN=Down
-ARROW_LEFT=Left
-ARROW_RIGHT=Right
-ARROW_UP=Up
-BREAK=Break
-CAPS_LOCK=CapsLock
-END=End
-F1=F1
-F10=F10
-F11=F11
-F12=F12
-F2=F2
-F3=F3
-F4=F4
-F5=F5
-F6=F6
-F7=F7
-F8=F8
-F9=F9
-HOME=Home
-INSERT=Insert
-NUM_LOCK=NumLock
-NUMPAD_0=Numpad_0
-NUMPAD_1=Numpad_1
-NUMPAD_2=Numpad_2
-NUMPAD_3=Numpad_3
-NUMPAD_4=Numpad_4
-NUMPAD_5=Numpad_5
-NUMPAD_6=Numpad_6
-NUMPAD_7=Numpad_7
-NUMPAD_8=Numpad_8
-NUMPAD_9=Numpad_9
-NUMPAD_ADD=Numpad_Add
-NUMPAD_DECIMAL=Numpad_Decimal
-NUMPAD_DIVIDE=Numpad_Divide
-NUMPAD_ENTER=Numpad_Enter
-NUMPAD_EQUAL=Numpad_Equal
-NUMPAD_MULTIPLY=Numpad_Multiply
-NUMPAD_SUBTRACT=Numpad_Subtract
-PAGE_DOWN=PageDown
-PAGE_UP=PageUp
-PAUSE=Pause
-PRINT_SCREEN=PrintScreen
-SCROLL_LOCK=ScrollLock
-
-# Character keys
-BS=Backspace
-CR=Enter
-DEL=Delete
-ESC=Esc
-FF=FormFeed
-LF=LineFeed
-NUL=Null
-SPACE=Space
-TAB=Tab
-VT=VerticalTab
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.java
deleted file mode 100644
index ab22d3d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.java
+++ /dev/null
@@ -1,105 +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.jface.bindings.keys.formatting;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * A key formatter providing the Emacs-style accelerators using single letters
- * to represent the modifier keys.
- * </p>
- * 
- * @since 3.1
- */
-public final class EmacsKeyFormatter extends AbstractKeyFormatter {
-
-	/**
-	 * The resource bundle used by <code>format()</code> to translate formal
-	 * string representations by locale.
-	 */
-	private final static ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-			.getBundle(EmacsKeyFormatter.class.getName());
-
-	/**
-	 * Formats an individual key into a human readable format. This converts the
-	 * key into a format similar to Xemacs.
-	 * 
-	 * @param key
-	 *            The key to format; must not be <code>null</code>.
-	 * @return The key formatted as a string; should not be <code>null</code>.
-	 */
-	public String format(final int key) {
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		if (lookup.isModifierKey(key)) {
-			String formattedName = Util.translateString(RESOURCE_BUNDLE, lookup
-					.formalNameLookup(key), null);
-			if (formattedName != null) {
-				return formattedName;
-			}
-		}
-
-		return super.format(key).toLowerCase();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#getKeyDelimiter()
-	 */
-	protected String getKeyDelimiter() {
-		return Util.translateString(RESOURCE_BUNDLE, KEY_DELIMITER_KEY,
-				KeyStroke.KEY_DELIMITER);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#getKeyStrokeDelimiter()
-	 */
-	protected String getKeyStrokeDelimiter() {
-		return Util.translateString(RESOURCE_BUNDLE, KEY_STROKE_DELIMITER_KEY,
-				KeySequence.KEY_STROKE_DELIMITER);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#sortModifierKeys(int)
-	 */
-	protected int[] sortModifierKeys(int modifierKeys) {
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		final int[] sortedKeys = new int[4];
-		int index = 0;
-
-		if ((modifierKeys & lookup.getAlt()) != 0) {
-			sortedKeys[index++] = lookup.getAlt();
-		}
-		if ((modifierKeys & lookup.getCommand()) != 0) {
-			sortedKeys[index++] = lookup.getCommand();
-		}
-		if ((modifierKeys & lookup.getCtrl()) != 0) {
-			sortedKeys[index++] = lookup.getCtrl();
-		}
-		if ((modifierKeys & lookup.getShift()) != 0) {
-			sortedKeys[index++] = lookup.getShift();
-		}
-
-		return sortedKeys;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.properties
deleted file mode 100644
index b9529a9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/EmacsKeyFormatter.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
-###############################################################################
-
-# Modifier keys
-ALT=M
-COMMAND=D
-CTRL=C
-SHIFT=S
-
-# Delimiters
-KEY_DELIMITER=-
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/FormalKeyFormatter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/FormalKeyFormatter.java
deleted file mode 100644
index 4cf85e7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/FormalKeyFormatter.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.jface.bindings.keys.formatting;
-
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-
-/**
- * <p>
- * Formats the keys in the internal key sequence grammar. This is used for
- * persistence, and is not really intended for display to the user.
- * </p>
- * 
- * @since 3.1
- */
-public final class FormalKeyFormatter extends AbstractKeyFormatter {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.KeyFormatter#format(org.eclipse.ui.keys.KeySequence)
-	 */
-	public String format(final int key) {
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		return lookup.formalNameLookup(key);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#getKeyDelimiter()
-	 */
-	protected String getKeyDelimiter() {
-		return KeyStroke.KEY_DELIMITER;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#getKeyStrokeDelimiter()
-	 */
-	protected String getKeyStrokeDelimiter() {
-		return KeySequence.KEY_STROKE_DELIMITER;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#sortModifierKeys(int)
-	 */
-	protected int[] sortModifierKeys(final int modifierKeys) {
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		final int[] sortedKeys = new int[4];
-		int index = 0;
-
-		if ((modifierKeys & lookup.getAlt()) != 0) {
-			sortedKeys[index++] = lookup.getAlt();
-		}
-		if ((modifierKeys & lookup.getCommand()) != 0) {
-			sortedKeys[index++] = lookup.getCommand();
-		}
-		if ((modifierKeys & lookup.getCtrl()) != 0) {
-			sortedKeys[index++] = lookup.getCtrl();
-		}
-		if ((modifierKeys & lookup.getShift()) != 0) {
-			sortedKeys[index++] = lookup.getShift();
-		}
-
-		return sortedKeys;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/IKeyFormatter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/IKeyFormatter.java
deleted file mode 100644
index 7bc870d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/IKeyFormatter.java
+++ /dev/null
@@ -1,63 +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.jface.bindings.keys.formatting;
-
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-
-/**
- * <p>
- * Any formatter capable of taking a key sequence or a key stroke and converting
- * it into a string. These formatters are used to produce the strings that the
- * user sees in the keys preference page and the menus, as well as the strings
- * that are used for persistent storage.
- * </p>
- * 
- * @since 3.1
- */
-public interface IKeyFormatter {
-
-	/**
-	 * Formats an individual key into a human readable format. This uses an
-	 * internationalization resource bundle to look up the key. This does not do
-	 * any platform-specific formatting (e.g., Carbon's command character).
-	 * 
-	 * @param key
-	 *            The key to format.
-	 * @return The key formatted as a string; should not be <code>null</code>.
-	 */
-	String format(int key);
-
-	/**
-	 * Format the given key sequence into a string. The manner of the conversion
-	 * is dependent on the formatter. It is required that unequal key sequences
-	 * return unequal strings.
-	 * 
-	 * @param keySequence
-	 *            The key sequence to convert; must not be <code>null</code>.
-	 * @return A string representation of the key sequence; must not be
-	 *         <code>null</code>.
-	 */
-	String format(KeySequence keySequence);
-
-	/**
-	 * Format the given key strokes into a string. The manner of the conversion
-	 * is dependent on the formatter. It is required that unequal key strokes
-	 * return unequal strings.
-	 * 
-	 * @param keyStroke
-	 *            The key stroke to convert; must not be <Code>null</code>.
-	 * @return A string representation of the key stroke; must not be <code>
-	 *         null</code>
-	 */
-	String format(KeyStroke keyStroke);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/KeyFormatterFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/KeyFormatterFactory.java
deleted file mode 100644
index e313b82..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/KeyFormatterFactory.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.jface.bindings.keys.formatting;
-
-
-
-/**
- * <p>
- * A cache for formatters. It keeps a few instances of pre-defined instances of
- * <code>IKeyFormatter</code> available for use. It also allows the default
- * formatter to be changed.
- * </p>
- * 
- * @since 3.1
- * @see org.eclipse.jface.bindings.keys.formatting.IKeyFormatter
- */
-public final class KeyFormatterFactory {
-
-    /**
-     * The formatter that renders key bindings in a platform-dependent manner.
-     */
-    private static final IKeyFormatter FORMAL_KEY_FORMATTER = new FormalKeyFormatter();
-
-    /**
-     * The formatter that renders key bindings in a form similar to XEmacs
-     */
-    private static final IKeyFormatter EMACS_KEY_FORMATTER = new EmacsKeyFormatter();
-
-    /**
-     * The default formatter. This is normally the formal key formatter, but can
-     * be changed by users of this API.
-     */
-    private static IKeyFormatter defaultKeyFormatter = FORMAL_KEY_FORMATTER;
-
-    /**
-     * An accessor for the current default key formatter.
-     * 
-     * @return The default formatter; never <code>null</code>.
-     */
-    public static final IKeyFormatter getDefault() {
-        return defaultKeyFormatter;
-    }
-
-    /**
-     * Provides an instance of <code>EmacsKeyFormatter</code>.
-     * 
-     * @return The Xemacs formatter; never <code>null</code>.
-     */
-    public static final IKeyFormatter getEmacsKeyFormatter() {
-        return EMACS_KEY_FORMATTER;
-    }
-
-    /**
-     * Provides an instance of <code>FormalKeyFormatter</code>.
-     * 
-     * @return The formal formatter; never <code>null</code>.
-     */
-    public static final IKeyFormatter getFormalKeyFormatter() {
-        return FORMAL_KEY_FORMATTER;
-    }
-
-    /**
-     * Sets the default key formatter.
-     * 
-     * @param defaultKeyFormatter
-     *            the default key formatter. Must not be <code>null</code>.
-     */
-    public static final void setDefault(final IKeyFormatter defaultKeyFormatter) {
-        if (defaultKeyFormatter == null) {
-			throw new NullPointerException();
-		}
-
-        KeyFormatterFactory.defaultKeyFormatter = defaultKeyFormatter;
-    }
-
-    /**
-     * This class should not be instantiated.
-     */
-    private KeyFormatterFactory() {
-        // Not to be constructred.
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.java
deleted file mode 100644
index 4482009..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.bindings.keys.formatting;
-
-import java.util.HashMap;
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * Formats the key sequences and key strokes into the native human-readable
- * format. This is typically what you would see on the menus for the given
- * platform and locale.
- * </p>
- * 
- * @since 3.1
- */
-public final class NativeKeyFormatter extends AbstractKeyFormatter {
-
-	/**
-	 * The key into the internationalization resource bundle for the delimiter
-	 * to use between keys (on the Carbon platform).
-	 */
-	private final static String CARBON_KEY_DELIMITER_KEY = "CARBON_KEY_DELIMITER"; //$NON-NLS-1$
-
-	/**
-	 * A look-up table for the string representations of various carbon keys.
-	 */
-	private final static HashMap CARBON_KEY_LOOK_UP = new HashMap();
-
-	/**
-	 * The resource bundle used by <code>format()</code> to translate formal
-	 * string representations by locale.
-	 */
-	private final static ResourceBundle RESOURCE_BUNDLE;
-
-	/**
-	 * The key into the internationalization resource bundle for the delimiter
-	 * to use between key strokes (on the Win32 platform).
-	 */
-	private final static String WIN32_KEY_STROKE_DELIMITER_KEY = "WIN32_KEY_STROKE_DELIMITER"; //$NON-NLS-1$
-
-	static {
-		RESOURCE_BUNDLE = ResourceBundle.getBundle(NativeKeyFormatter.class
-				.getName());
-
-		final String carbonBackspace = "\u232B"; //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.BS_NAME, carbonBackspace);
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.BACKSPACE_NAME, carbonBackspace);
-		CARBON_KEY_LOOK_UP
-				.put(IKeyLookup.CR_NAME, "\u21A9"); //$NON-NLS-1$
-		final String carbonDelete = "\u2326"; //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.DEL_NAME, carbonDelete);
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.DELETE_NAME, carbonDelete);
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.SPACE_NAME, "\u2423"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.ALT_NAME, "\u2325"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.COMMAND_NAME, "\u2318"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.CTRL_NAME, "\u2303"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.SHIFT_NAME, "\u21E7"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.ARROW_DOWN_NAME, "\u2193"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.ARROW_LEFT_NAME, "\u2190"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.ARROW_RIGHT_NAME, "\u2192"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.ARROW_UP_NAME, "\u2191"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.END_NAME, "\u2198"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.NUMPAD_ENTER_NAME, "\u2324"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.HOME_NAME, "\u2196"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.PAGE_DOWN_NAME, "\u21DF"); //$NON-NLS-1$
-		CARBON_KEY_LOOK_UP.put(IKeyLookup.PAGE_UP_NAME, "\u21DE"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Formats an individual key into a human readable format. This uses an
-	 * internationalization resource bundle to look up the key. This does the
-	 * platform-specific formatting for Carbon.
-	 * 
-	 * @param key
-	 *            The key to format.
-	 * @return The key formatted as a string; should not be <code>null</code>.
-	 */
-	public final String format(final int key) {
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		final String name = lookup.formalNameLookup(key);
-
-		// TODO consider platform-specific resource bundles
-		if (Util.isMac()) {    	
-			String formattedName = (String) CARBON_KEY_LOOK_UP.get(name);
-			if (formattedName != null) {
-				return formattedName;
-			}
-		}
-
-		return super.format(key);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#getKeyDelimiter()
-	 */
-	protected String getKeyDelimiter() {
-		// We must do the look up every time, as our locale might change.
-		if (Util.isMac()) {
-			return Util.translateString(RESOURCE_BUNDLE,
-					CARBON_KEY_DELIMITER_KEY, Util.ZERO_LENGTH_STRING);
-		}
-
-		return Util.translateString(RESOURCE_BUNDLE, KEY_DELIMITER_KEY,
-				KeyStroke.KEY_DELIMITER);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#getKeyStrokeDelimiter()
-	 */
-	protected String getKeyStrokeDelimiter() {
-		// We must do the look up every time, as our locale might change.
-		if (Util.isWindows()) {
-			return Util.translateString(RESOURCE_BUNDLE,
-					WIN32_KEY_STROKE_DELIMITER_KEY,
-					KeySequence.KEY_STROKE_DELIMITER);
-		}
-
-		return Util.translateString(RESOURCE_BUNDLE, KEY_STROKE_DELIMITER_KEY,
-				KeySequence.KEY_STROKE_DELIMITER);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.keys.AbstractKeyFormatter#sortModifierKeys(int)
-	 */
-	protected int[] sortModifierKeys(final int modifierKeys) {
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		final int[] sortedKeys = new int[4];
-		int index = 0;
-
-		if (Util.isWindows()) {
-			if ((modifierKeys & lookup.getCtrl()) != 0) {
-				sortedKeys[index++] = lookup.getCtrl();
-			}
-			if ((modifierKeys & lookup.getAlt()) != 0) {
-				sortedKeys[index++] = lookup.getAlt();
-			}
-			if ((modifierKeys & lookup.getShift()) != 0) {
-				sortedKeys[index++] = lookup.getShift();
-			}
-
-		} else if (Util.isGtk() || Util.isMotif()) {
-			if ((modifierKeys & lookup.getShift()) != 0) {
-				sortedKeys[index++] = lookup.getShift();
-			}
-			if ((modifierKeys & lookup.getCtrl()) != 0) {
-				sortedKeys[index++] = lookup.getCtrl();
-			}
-			if ((modifierKeys & lookup.getAlt()) != 0) {
-				sortedKeys[index++] = lookup.getAlt();
-			}
-
-		} else if (Util.isMac()) {
-			if ((modifierKeys & lookup.getShift()) != 0) {
-				sortedKeys[index++] = lookup.getShift();
-			}
-			if ((modifierKeys & lookup.getCtrl()) != 0) {
-				sortedKeys[index++] = lookup.getCtrl();
-			}
-			if ((modifierKeys & lookup.getAlt()) != 0) {
-				sortedKeys[index++] = lookup.getAlt();
-			}
-			if ((modifierKeys & lookup.getCommand()) != 0) {
-				sortedKeys[index++] = lookup.getCommand();
-			}
-
-		}
-
-		return sortedKeys;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.properties
deleted file mode 100644
index c997e2f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/NativeKeyFormatter.properties
+++ /dev/null
@@ -1,14 +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
-###############################################################################
-
-KEY_DELIMITER=+
-CARBON_KEY_DELIMITER=
-WIN32_KEY_STROKE_DELIMITER=, 
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/package.html
deleted file mode 100644
index 77d3c49..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/formatting/package.html
+++ /dev/null
@@ -1,31 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-<p>Provides support for formatting key sequences.</p>
-
-<h2>Package Specification</h2>
-<p>
-This is a collection fo various formatters for key sequences.  The formatters
-are accessible through the <code>KeyFormatterFactory</code>.  To change how
-keys are formatted in the user interface, call
-<code>KeyFormatterFactory.setDefault(IKeyFormatter)</code>.  They provided
-formatters are:
-</p>
-<dl>
-<dt>FormalKeyFormatter</dt>
-<dd>Provides a formal grammar for reading and writing key sequences.</dd>
-<dt>NativeKeyFormatter</dt>
-<dd>Provide a native-looking, human-readable format for keys.</dd>
-<dt>CompactKeyFormatter</dt>
-<dd>A variation of the native formatter that provides a more compact representation.</dd>
-<dt>EmacsKeyFormatter</dt>
-<dd>An Xemacs-style formatter (e.g., C^x C^x).</dd>
-</dl>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/package.html
deleted file mode 100644
index 24514f4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/keys/package.html
+++ /dev/null
@@ -1,38 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-<p>Provides support for bindings between commands and keys.</p>
-
-<h2>Package Specification</h2>
-<p>
-This just a key-specific implementation of the generic bindings and trigger
-support.  This package provides an abstraction layer between the SWT key events
-and key bindings within JFace.
-</p>
-<p>
-<code>KeySequence</code> is a <code>TriggerSequence</code> that has
-<code>KeyStroke</code> instances as triggers.  A <code>KeyStroke</code> is
-composed of one or more keys held down at the same time.  A key stroke ends
-when the keys are released.  A key stroke can contain zero or more modifiers
-keys, but it always contains exactly one natural key.  A modifier key is one of
-Ctrl, Shift, Alt, or Command.  A natural key is anything else.</p>
-<p>
-Natural keys are further subdivided into special keys and character keys.
-Character keys are keys that have an ASCII representation (e.g., Space, 'A' and
-Backspace).  Special keys are ones that do not (e.g., Arrow Up, F11, and
-NumLock).
-</p>
-<p>
-<code>SWTKeySupport</code> is a static class that provides the link between SWT
-and these internal representations.  It has methods for converting between SWT
-key events and the internal representation, and vice versa.  It also provides
-access to the native-style key formatting facilities.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/package.html
deleted file mode 100644
index 2896e85..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/bindings/package.html
+++ /dev/null
@@ -1,38 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-<p>Provides support for bindings between commands and various user input events
-(e.g., keyboard shortcuts).</p>
-
-<h2>Package Specification</h2>
-<p>
-This package provides the common classes and abstract classes required to
-provide binding support.
-</p>
-<p>
-All the real work in this package is carried out by the
-<code>BindingManager</code>, and most work with bindings can be carried out
-directly with it.  The binding manager manages a collection of bindings, and
-decides which bindings are active at any point in time.  By changes the various
-properties of the manager, the active bindings will change.  The binding
-manager implements a caching scheme that is optimized for an infreqeuntly
-changing set of bindings, but frequently changing properties.
-</p>
-<p>
-The binding manager also manages schemes.  A scheme is a grouping of bindings.
-To create a scheme, use <code>BindingManager.getScheme(String)</code>.  The
-scheme must then be defined before it can be used.
-</p>
-<p>
-If you wish to implement your own type of binding, then you must subclass
-<code>Trigger</code> and <code>TriggerSequence</code>.  Then, simply use these
-subclasses with the <code>BindingManager</code>.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ActionHandler.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ActionHandler.java
deleted file mode 100644
index 5e3223f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ActionHandler.java
+++ /dev/null
@@ -1,166 +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.jface.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.HandlerEvent;
-import org.eclipse.core.commands.IHandlerListener;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * <p>
- * This class adapts instances of <code>IAction</code> to
- * <code>IHandler</code>.
- * </p>
- * 
- * @since 3.1
- */
-public final class ActionHandler extends AbstractHandler {
-
-	/**
-	 * The wrapped action. This value is never <code>null</code>.
-	 */
-	private final IAction action;
-
-	/**
-	 * The property change listener hooked on to the action. This is initialized
-	 * when the first listener is attached to this handler, and is removed when
-	 * the handler is disposed or the last listener is removed.
-	 */
-	private IPropertyChangeListener propertyChangeListener;
-
-	/**
-	 * Creates a new instance of this class given an instance of
-	 * <code>IAction</code>.
-	 * 
-	 * @param action
-	 *            the action. Must not be <code>null</code>.
-	 */
-	public ActionHandler(final IAction action) {
-		if (action == null) {
-			throw new NullPointerException();
-		}
-
-		this.action = action;
-	}
-
-	public final void addHandlerListener(final IHandlerListener handlerListener) {
-		if (!hasListeners()) {
-			attachListener();
-		}
-
-		super.addHandlerListener(handlerListener);
-	}
-
-	/**
-	 * When a listener is attached to this handler, then this registers a
-	 * listener with the underlying action.
-	 * 
-	 * @since 3.1
-	 */
-	private final void attachListener() {
-		if (propertyChangeListener == null) {
-			propertyChangeListener = new IPropertyChangeListener() {
-				public final void propertyChange(
-						final PropertyChangeEvent propertyChangeEvent) {
-					final String property = propertyChangeEvent.getProperty();
-					fireHandlerChanged(new HandlerEvent(ActionHandler.this,
-							IAction.ENABLED.equals(property), IAction.HANDLED
-									.equals(property)));
-				}
-			};
-		}
-
-		this.action.addPropertyChangeListener(propertyChangeListener);
-	}
-
-	/**
-	 * When no more listeners are registered, then this is used to removed the
-	 * property change listener from the underlying action.
-	 */
-	private final void detachListener() {
-		this.action.removePropertyChangeListener(propertyChangeListener);
-		propertyChangeListener = null;
-	}
-
-	/**
-	 * Removes the property change listener from the action.
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#dispose()
-	 */
-	public final void dispose() {
-		if (hasListeners()) {
-			action.removePropertyChangeListener(propertyChangeListener);
-		}
-	}
-	
-	public final Object execute(final ExecutionEvent event)
-			throws ExecutionException {
-		if ((action.getStyle() == IAction.AS_CHECK_BOX)
-				|| (action.getStyle() == IAction.AS_RADIO_BUTTON)) {
-			action.setChecked(!action.isChecked());
-		}
-		final Object trigger = event.getTrigger();
-		try {
-			if (trigger instanceof Event) {
-				action.runWithEvent((Event) trigger);
-			} else {
-				action.runWithEvent(new Event());
-			}
-		} catch (Exception e) {
-			throw new ExecutionException(
-					"While executing the action, an exception occurred", e); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the action associated with this handler
-	 * 
-	 * @return the action associated with this handler (not null)
-	 * @since 3.1
-	 */
-	public final IAction getAction() {
-		return action;
-	}
-	
-	public final boolean isEnabled() {
-		return action.isEnabled();
-	}
-	
-	public final boolean isHandled() {
-		return action.isHandled();
-	}
-	
-	public final void removeHandlerListener(
-			final IHandlerListener handlerListener) {
-		super.removeHandlerListener(handlerListener);
-
-		if (!hasListeners()) {
-			detachListener();
-		}
-	}
-	
-	public final String toString() {
-		final StringBuffer buffer = new StringBuffer();
-
-		buffer.append("ActionHandler("); //$NON-NLS-1$
-		buffer.append(action);
-		buffer.append(')');
-
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/PersistentState.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/PersistentState.java
deleted file mode 100644
index 5681efa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/PersistentState.java
+++ /dev/null
@@ -1,84 +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.jface.commands;
-
-import org.eclipse.core.commands.State;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * <p>
- * This is a state that can be made persistent. A state is persisted to a
- * preference store.
- * </p>
- * <p>
- * Clients may extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public abstract class PersistentState extends State {
-
-	/**
-	 * Whether this state should be persisted.
-	 */
-	private boolean persisted;
-
-	/**
-	 * Loads this state from the preference store, given the location at which
-	 * to look. This method must be symmetric with a call to
-	 * {@link #save(IPreferenceStore, String)}.
-	 * 
-	 * @param store
-	 *            The store from which to read; must not be <code>null</code>.
-	 * @param preferenceKey
-	 *            The key at which the state is stored; must not be
-	 *            <code>null</code>.
-	 */
-	public abstract void load(final IPreferenceStore store,
-			final String preferenceKey);
-
-	/**
-	 * Saves this state to the preference store, given the location at which to
-	 * write. This method must be symmetric with a call to
-	 * {@link #load(IPreferenceStore, String)}.
-	 * 
-	 * @param store
-	 *            The store to which the state should be written; must not be
-	 *            <code>null</code>.
-	 * @param preferenceKey
-	 *            The key at which the state should be stored; must not be
-	 *            <code>null</code>.
-	 */
-	public abstract void save(final IPreferenceStore store,
-			final String preferenceKey);
-
-	/**
-	 * Sets whether this state should be persisted.
-	 * 
-	 * @param persisted
-	 *            Whether this state should be persisted.
-	 */
-	public void setShouldPersist(final boolean persisted) {
-		this.persisted = persisted;
-	}
-
-	/**
-	 * Whether this state should be persisted. Subclasses should check this
-	 * method before loading or saving.
-	 * 
-	 * @return <code>true</code> if this state should be persisted;
-	 *         <code>false</code> otherwise.
-	 */
-	public boolean shouldPersist() {
-		return persisted;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/RadioState.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/RadioState.java
deleted file mode 100644
index 2839928..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/RadioState.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.commands;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.commands.IStateListener;
-import org.eclipse.core.commands.State;
-import org.eclipse.jface.menus.IMenuStateIds;
-
-/**
- * <p>
- * A piece of boolean state grouped with other boolean states. Of these states,
- * only one may have a value of {@link Boolean#TRUE} at any given point in time.
- * The values of all other states must be {@link Boolean#FALSE}.
- * </p>
- * <p>
- * If this state is registered using {@link IMenuStateIds#STYLE}, then it will
- * control the presentation of the command if displayed in the menus, tool bars
- * or status line.
- * </p>
- * <p>
- * Clients may instantiate or extend this interface.
- * </p>
- * 
- * @since 3.2
- */
-public class RadioState extends ToggleState {
-
-	/**
-	 * The manager of radio groups within the application. This ensures that
-	 * only one member of a radio group is active at any one time, and tracks
-	 * group memberships.
-	 */
-	private static final class RadioStateManager {
-
-		/**
-		 * A group of radio states with the same identifier.
-		 */
-		private static final class RadioGroup implements IStateListener {
-
-			/**
-			 * The active state. If there is no active state, then this value is
-			 * <code>null</code>.
-			 */
-			private RadioState active = null;
-
-			/**
-			 * The current members in this group. If there are no members, then
-			 * this value is <code>nlistenerull</code>.
-			 */
-			private Set members = null;
-
-			/**
-			 * Activates a memeber. This checks to see if there are any other
-			 * active members. If there are, they are deactivated.
-			 * 
-			 * @param state
-			 *            The state that should become active; must not be
-			 *            <code>null</code>.
-			 */
-			private final void activateMember(final RadioState state) {
-				if (active!=null && active != state) {
-					active.setValue(Boolean.FALSE);
-				}
-				active = state;
-			}
-
-			/**
-			 * Adds a member to this radio group. If the state being added is
-			 * active, then it replaces the currently active group memeber as
-			 * the active state.
-			 * 
-			 * @param state
-			 *            The state to add; must not be <code>null</code>.
-			 */
-			private final void addMember(final RadioState state) {
-				if (members == null) {
-					members = new HashSet(5);
-				}
-
-				members.add(state);
-				state.addListener(this);
-
-				final Object value = state.getValue();
-				if (value instanceof Boolean) {
-					if (((Boolean) value).booleanValue()) {
-						activateMember(state);
-					}
-				}
-			}
-
-			public final void handleStateChange(final State state,
-					final Object oldValue) {
-				final Object newValue = state.getValue();
-				if (newValue instanceof Boolean) {
-					if (((Boolean) newValue).booleanValue()) {
-						activateMember((RadioState) state);
-					}
-				}
-			}
-
-			/**
-			 * Removes a member from this radio group. If the state was the
-			 * active state, then there will be no active state.
-			 * 
-			 * @param state
-			 *            The state to remove; must not be <code>null</code>.
-			 */
-			private final void removeMember(final RadioState state) {
-				state.removeListener(this);
-				if (active == state) {
-					active = null;
-				}
-
-				if (members == null) {
-					return;
-				}
-				members.remove(state);
-			}
-		}
-
-		/**
-		 * The map of radio states indexed by identifier (<code>String</code>).
-		 * The radio states is either a single <code>RadioState</code>
-		 * instance or a <code>Collection</code> of <code>RadioState</code>
-		 * instances.
-		 */
-		private static Map radioStatesById = null;
-
-		/**
-		 * Activates a particular state within a given group.
-		 * 
-		 * @param identifier
-		 *            The identifier of the group to which the state belongs;
-		 *            must not be <code>null</code>.
-		 * @param state
-		 *            The state to activate; must not be <code>null</code>.
-		 */
-		private static final void activateGroup(final String identifier,
-				final RadioState state) {
-			if (radioStatesById == null) {
-				return;
-			}
-
-			final Object currentValue = radioStatesById.get(identifier);
-			if (currentValue instanceof RadioGroup) {
-				final RadioGroup radioGroup = (RadioGroup) currentValue;
-				radioGroup.activateMember(state);
-			}
-		}
-
-		/**
-		 * Registers a piece of state with the radio manager.
-		 * 
-		 * @param identifier
-		 *            The identifier of the radio group; must not be
-		 *            <code>null</code>.
-		 * @param state
-		 *            The state to register; must not be <code>null</code>.
-		 */
-		private static final void registerState(final String identifier,
-				final RadioState state) {
-			if (radioStatesById == null) {
-				radioStatesById = new HashMap();
-			}
-
-			final Object currentValue = radioStatesById.get(identifier);
-			final RadioGroup radioGroup;
-			if (currentValue instanceof RadioGroup) {
-				radioGroup = (RadioGroup) currentValue;
-			} else {
-				radioGroup = new RadioGroup();
-				radioStatesById.put(identifier, radioGroup);
-			}
-			radioGroup.addMember(state);
-		}
-
-		/**
-		 * Unregisters a piece of state from the radio manager.
-		 * 
-		 * @param identifier
-		 *            The identifier of the radio group; must not be
-		 *            <code>null</code>.
-		 * @param state
-		 *            The state to unregister; must not be <code>null</code>.
-		 */
-		private static final void unregisterState(final String identifier,
-				final RadioState state) {
-			if (radioStatesById == null) {
-				return;
-			}
-
-			final Object currentValue = radioStatesById.get(identifier);
-			if (currentValue instanceof RadioGroup) {
-				final RadioGroup radioGroup = (RadioGroup) currentValue;
-				radioGroup.removeMember(state);
-			}
-		}
-	}
-
-	/**
-	 * The identifier of the radio group to which this state belongs. This value
-	 * may be <code>null</code> if this state doesn't really belong to a group
-	 * (yet).
-	 */
-	private String radioGroupIdentifier = null;
-
-	/**
-	 * Unregisters this state from the manager, which detaches the listeners.
-	 */
-	public void dispose() {
-		setRadioGroupIdentifier(null);
-	}
-
-	/**
-	 * Sets the identifier of the radio group for this piece of state. If the
-	 * identifier is cleared, then the state is unregistered.
-	 * 
-	 * @param identifier
-	 *            The identifier of the radio group for this state; may be
-	 *            <code>null</code> if the identifier is being cleared.
-	 * 
-	 */
-	public final void setRadioGroupIdentifier(final String identifier) {
-		if (identifier == null) {
-			RadioStateManager.unregisterState(radioGroupIdentifier, this);
-			radioGroupIdentifier = null;
-		} else {
-			radioGroupIdentifier = identifier;
-			RadioStateManager.registerState(identifier, this);
-		}
-	}
-
-	/**
-	 * Sets the value for this object. This notifies the radio state manager of
-	 * the change.
-	 * 
-	 * @param value
-	 *            The new value; should be a <code>Boolean</code>.
-	 */
-	public void setValue(final Object value) {
-		if (!(value instanceof Boolean)) {
-			throw new IllegalArgumentException(
-					"RadioState takes a Boolean as a value"); //$NON-NLS-1$
-		}
-
-		if (((Boolean) value).booleanValue() && (radioGroupIdentifier != null)) {
-			RadioStateManager.activateGroup(radioGroupIdentifier, this);
-		}
-
-		super.setValue(value);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ToggleState.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ToggleState.java
deleted file mode 100644
index 71d6131..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/ToggleState.java
+++ /dev/null
@@ -1,70 +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.jface.commands;
-
-import org.eclipse.jface.menus.IMenuStateIds;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * <p>
- * A piece of state storing a {@link Boolean}.
- * </p>
- * <p>
- * If this state is registered using {@link IMenuStateIds#STYLE}, then it will
- * control the presentation of the command if displayed in the menus, tool bars
- * or status line.
- * </p>
- * <p>
- * Clients may instantiate this class, but must not extend.
- * </p>
- * 
- * @since 3.2
- */
-public class ToggleState extends PersistentState {
-
-	/**
-	 * Constructs a new <code>ToggleState</code>. By default, the toggle is
-	 * off (e.g., <code>false</code>).
-	 */
-	public ToggleState() {
-		setValue(Boolean.FALSE);
-	}
-
-	public final void load(final IPreferenceStore store,
-			final String preferenceKey) {
-		final boolean currentValue = ((Boolean) getValue()).booleanValue(); 
-		store.setDefault(preferenceKey, currentValue);
-		if (shouldPersist() && (store.contains(preferenceKey))) {
-			final boolean value = store.getBoolean(preferenceKey);
-			setValue(value ? Boolean.TRUE : Boolean.FALSE);
-		}
-	}
-
-	public final void save(final IPreferenceStore store,
-			final String preferenceKey) {
-		if (shouldPersist()) {
-			final Object value = getValue();
-			if (value instanceof Boolean) {
-				store.setValue(preferenceKey, ((Boolean) value).booleanValue());
-			}
-		}
-	}
-
-	public void setValue(final Object value) {
-		if (!(value instanceof Boolean)) {
-			throw new IllegalArgumentException(
-					"ToggleState takes a Boolean as a value"); //$NON-NLS-1$
-		}
-
-		super.setValue(value);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/package.html
deleted file mode 100644
index d0e2c2f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/commands/package.html
+++ /dev/null
@@ -1,18 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-<p>Provides JFace-specific support for commands.</p>
-
-<h2>Package Specification</h2>
-<p>
-This package provides a handler that wraps a legacy instance of
-<code>IAction</code>, as well as a manager for associating images with commands.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/IContextIds.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/IContextIds.java
deleted file mode 100644
index 3011235..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/IContextIds.java
+++ /dev/null
@@ -1,44 +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.jface.contexts;
-
-/**
- * <p>
- * A list of well-known context identifiers. The context identifiers use the
- * prefix "org.eclipse.ui" for historical reasons. These contexts exist as part 
- * of JFace.
- * </p>
- * <p>
- * This interface should not be implemented or extended by clients.
- * </p>
- * 
- * @since 3.1
- */
-public interface IContextIds {
-
-	/**
-	 * The identifier for the context that is active when a shell registered as
-	 * a dialog.
-	 */
-	public static final String CONTEXT_ID_DIALOG = "org.eclipse.ui.contexts.dialog"; //$NON-NLS-1$
-
-	/**
-	 * The identifier for the context that is active when a shell is registered
-	 * as either a window or a dialog.
-	 */
-	public static final String CONTEXT_ID_DIALOG_AND_WINDOW = "org.eclipse.ui.contexts.dialogAndWindow"; //$NON-NLS-1$
-
-	/**
-	 * The identifier for the context that is active when a shell is registered
-	 * as a window.
-	 */
-	public static final String CONTEXT_ID_WINDOW = "org.eclipse.ui.contexts.window"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/package.html
deleted file mode 100644
index f09c5cf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/contexts/package.html
+++ /dev/null
@@ -1,18 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-<p>Provides JFace-specific support for contexts.</p>
-
-<h2>Package Specification</h2>
-<p>
-This package provides some context identifiers that have special meaning in the
-context of JFace.
-</p>
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/AnimatorFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/AnimatorFactory.java
deleted file mode 100644
index 76d8e9e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/AnimatorFactory.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.jface.dialogs;
-
-import org.eclipse.swt.widgets.Control;
-
-
-/**
- * Factory for control animators used by JFace to animate the display of an SWT
- * Control. Through the use of the method
- * {@link org.eclipse.jface.util.Policy#setAnimatorFactory(AnimatorFactory)} 
- * a new type of animator factory can be plugged into JFace.
- * 
- * @since 3.2
- * @deprecated as of 3.3, this class is no longer used.
- */
-public class AnimatorFactory {
-	/**
-	 * Creates a new ControlAnimator for use by JFace in animating
-	 * the display of an SWT Control. <p>
-	 * Subclasses should override this method.
-	 * 
-	 * @param control the SWT Control to de displayed 
-	 * @return the ControlAnimator.
-	 * @since 3.2
-	 */
-	public ControlAnimator createAnimator(Control control) {
-		return new ControlAnimator(control);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlAnimator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlAnimator.java
deleted file mode 100644
index be05086..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlAnimator.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.jface.dialogs;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * ControlAnimator provides a simple implementation to display or hide a control
- * at the bottom of the parent composite. Other animations will be written as
- * subclasses of this class. <p>
- * Instances of this class can be created using an AnimatorFactory.
- * 
- * @since 3.2
- */
-
-
-public class ControlAnimator {
-	/** the control that will be displayed or hidden */
-	protected Control control;	
-	
-	/**
-	 * Constructs a new ControlAnimator instance and passes along the
-	 * control that will be displayed or hidden.
-	 * 
-	 * @param control the control that will be displayed or hidden.
-	 */
-	public ControlAnimator(Control control) {
-		this.control = control;
-	}
-
-	/**
-	 * Displays or hides a control at the bottom of the parent composite
-	 * and makes use of the control's SWT visible flag.<p>
-	 * Subclasses should override this method.</p>
-	 * 
-	 * @param visible <code>true</code> if the control should be shown, 
-	 * 		  and <code>false</code> otherwise.
-	 */
-	public void setVisible(boolean visible){
-		// Using the SWT visible flag to determine if the control has
-		// already been displayed or hidden. Return if already displayed
-		// and visible is true, or if already hidden and visible is false.
-		if (!(control.isVisible() ^ visible))
-			return;
-		control.setVisible(visible);
-		Rectangle parentBounds = control.getParent().getBounds();
-		int bottom = parentBounds.height;		
-		final int endY = visible ? bottom - control.getBounds().height
-				: bottom;
-		Point loc = control.getLocation();
-		control.setLocation(loc.x,endY);
-	}
-	
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlEnableState.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlEnableState.java
deleted file mode 100644
index cba792b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ControlEnableState.java
+++ /dev/null
@@ -1,158 +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.jface.dialogs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Helper class to save the enable/disable state of a control including all its
- * descendent controls.
- */
-public class ControlEnableState {
-    /**
-     * List of exception controls (element type: <code>Control</code>);
-     * <code>null</code> if none.
-     */
-    private List exceptions = null;
-
-    /**
-     * List of saved states (element type: <code>ItemState</code>).
-     */
-    private List states;
-
-    /**
-     * Internal class for recording the enable/disable state of a single
-     * control.
-     */
-    private class ItemState {
-    	/** the control */
-        protected Control item;
-
-        /** the state */
-        protected boolean state;
-
-        /**
-         * Create a new instance of the receiver.
-         * 
-         * @param item
-         * @param state
-         */
-        public ItemState(Control item, boolean state) {
-            this.item = item;
-            this.state = state;
-        }
-
-        /**
-         * Restore the enabled state to the original value.
-         *  
-         */
-        public void restore() {
-            if (item == null || item.isDisposed()) {
-				return;
-			}
-            item.setEnabled(state);
-        }
-    }
-
-    /**
-     * Creates a new object and saves in it the current enable/disable state of
-     * the given control and its descendents; the controls that are saved are
-     * also disabled.
-     * 
-     * @param w
-     *            the control
-     */
-    protected ControlEnableState(Control w) {
-        this(w, null);
-    }
-
-    /**
-     * Creates a new object and saves in it the current enable/disable state of
-     * the given control and its descendents except for the given list of
-     * exception cases; the controls that are saved are also disabled.
-     * 
-     * @param w
-     *            the control
-     * @param exceptions
-     *            the list of controls to not disable (element type:
-     *            <code>Control</code>), or <code>null</code> if none
-     */
-    protected ControlEnableState(Control w, List exceptions) {
-        super();
-        states = new ArrayList();
-        this.exceptions = exceptions;
-        readStateForAndDisable(w);
-    }
-
-    /**
-     * Saves the current enable/disable state of the given control and its
-     * descendents in the returned object; the controls are all disabled.
-     * 
-     * @param w
-     *            the control
-     * @return an object capturing the enable/disable state
-     */
-    public static ControlEnableState disable(Control w) {
-        return new ControlEnableState(w);
-    }
-
-    /**
-     * Saves the current enable/disable state of the given control and its
-     * descendents in the returned object except for the given list of exception
-     * cases; the controls that are saved are also disabled.
-     * 
-     * @param w
-     *            the control
-     * @param exceptions
-     *            the list of controls to not disable (element type:
-     *            <code>Control</code>)
-     * @return an object capturing the enable/disable state
-     */
-    public static ControlEnableState disable(Control w, List exceptions) {
-        return new ControlEnableState(w, exceptions);
-    }
-
-    /**
-     * Recursively reads the enable/disable state for the given window and
-     * disables all controls.
-     * @param control Control
-     */
-    private void readStateForAndDisable(Control control) {
-        if ((exceptions != null && exceptions.contains(control))) {
-			return;
-		}
-        if (control instanceof Composite) {
-            Composite c = (Composite) control;
-            Control[] children = c.getChildren();
-            for (int i = 0; i < children.length; i++) {
-                readStateForAndDisable(children[i]);
-            }
-        }
-        // XXX: Workaround for 1G2Q8SS: ITPUI:Linux - Combo box is not enabled
-        // in "File->New->Solution"
-        states.add(new ItemState(control, control.getEnabled()));
-        control.setEnabled(false);
-    }
-
-    /**
-     * Restores the window enable state saved in this object.
-     */
-    public void restore() {
-        int size = states.size();
-        for (int i = 0; i < size; i++) {
-            ((ItemState) states.get(i)).restore();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java
deleted file mode 100644
index 89702a3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java
+++ /dev/null
@@ -1,1307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Remy Chi Jian Suen <remy.suen@gmail.com> - Bug 218553 [JFace] mis-spelling of their in applyDialogFont(...)
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import java.util.Arrays;
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.jface.window.SameShellProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FormData;
-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.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog is a specialized window used for narrow-focused communication with
- * the user.
- * <p>
- * Dialogs are usually modal. Consequently, it is generally bad practice to open
- * a dialog without a parent. A modal dialog without a parent is not prevented
- * from disappearing behind the application's other windows, making it very
- * confusing for the user.
- * </p>
- * <p>
- * If there is more than one modal dialog is open the second one should be
- * parented off of the shell of the first one otherwise it is possible that the
- * OS will give focus to the first dialog potentially blocking the UI.
- * </p>
- */
-public abstract class Dialog extends Window {
-	/**
-	 * Image registry key for error image (value
-	 * <code>"dialog_error_image"</code>).
-	 * 
-	 * @deprecated use
-	 *             org.eclipse.swt.widgets.Display.getSystemImage(SWT.ICON_ERROR)
-	 */
-	public static final String DLG_IMG_ERROR = "dialog_error_image"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for info image (value <code>"dialog_info_image"</code>).
-	 * 
-	 * @deprecated use
-	 *             org.eclipse.swt.widgets.Display.getSystemImage(SWT.ICON_INFORMATION)
-	 */
-	public static final String DLG_IMG_INFO = "dialog_info_imageg"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for question image (value
-	 * <code>"dialog_question_image"</code>).
-	 * 
-	 * @deprecated org.eclipse.swt.widgets.Display.getSystemImage(SWT.ICON_QUESTION)
-	 */
-	public static final String DLG_IMG_QUESTION = "dialog_question_image"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for warning image (value
-	 * <code>"dialog_warning_image"</code>).
-	 * 
-	 * @deprecated use
-	 *             org.eclipse.swt.widgets.Display.getSystemImage(SWT.ICON_WARNING)
-	 */
-	public static final String DLG_IMG_WARNING = "dialog_warning_image"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for info message image (value
-	 * <code>"dialog_messasge_info_image"</code>).
-	 * 
-	 * @since 2.0
-	 */
-	public static final String DLG_IMG_MESSAGE_INFO = "dialog_messasge_info_image"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for info message image (value
-	 * <code>"dialog_messasge_warning_image"</code>).
-	 * 
-	 * @since 2.0
-	 */
-	public static final String DLG_IMG_MESSAGE_WARNING = "dialog_messasge_warning_image"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for info message image (value
-	 * <code>"dialog_message_error_image"</code>).
-	 * 
-	 * @since 2.0
-	 */
-	public static final String DLG_IMG_MESSAGE_ERROR = "dialog_message_error_image"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for help image (value
-	 * <code>"dialog_help_image"</code>).
-	 * 
-	 * @since 3.2
-	 */
-	public static final String DLG_IMG_HELP = "dialog_help_image"; //$NON-NLS-1$
-
-	/**
-	 * The ellipsis is the string that is used to represent shortened text.
-	 * 
-	 * @since 3.0
-	 */
-	public static final String ELLIPSIS = "..."; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for stored dialog x location.
-	 * 
-	 * @since 3.2
-	 */
-	private static final String DIALOG_ORIGIN_X = "DIALOG_X_ORIGIN"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for stored dialog y location.
-	 * 
-	 * @since 3.2
-	 */
-	private static final String DIALOG_ORIGIN_Y = "DIALOG_Y_ORIGIN"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for stored dialog width.
-	 * 
-	 * @since 3.2
-	 */
-	private static final String DIALOG_WIDTH = "DIALOG_WIDTH"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for stored dialog height.
-	 * 
-	 * @since 3.2
-	 */
-	private static final String DIALOG_HEIGHT = "DIALOG_HEIGHT"; //$NON-NLS-1$
-	
-	/**
-	 * The dialog settings key name for the font used when the dialog
-	 * height and width was stored.
-	 *
-	 *@since 3.2
-	 */
-	private static final String DIALOG_FONT_DATA = "DIALOG_FONT_NAME"; //$NON-NLS-1$
-	
-	/**
-	 * A value that can be used for stored dialog width or height that
-	 * indicates that the default bounds should be used.
-	 * 
-	 * @since 3.2
-	 */
-	public static final int DIALOG_DEFAULT_BOUNDS = -1;
-
-	/**
-	 * Constants that can be used for specifying the strategy for persisting
-	 * dialog bounds.  These constants represent bit masks that can be used
-	 * together.
-	 *
-	 *@since 3.2
-	 */
-	
-	/**
-	 * Persist the last location of the dialog.
-	 * @since 3.2
-	 */
-	public static final int DIALOG_PERSISTLOCATION = 0x0001;
-	/**
-	 * Persist the last known size of the dialog.
-	 * @since 3.2
-	 */
-	public static final int DIALOG_PERSISTSIZE = 0x0002;
-	
-	/**
-	 * The dialog area; <code>null</code> until dialog is layed out.
-	 */
-	protected Control dialogArea;
-
-	/**
-	 * The button bar; <code>null</code> until dialog is layed out.
-	 */
-	public Control buttonBar;
-	
-	/**
-	 * Collection of buttons created by the <code>createButton</code> method.
-	 */
-	private HashMap buttons = new HashMap();
-
-	/**
-	 * Font metrics to use for determining pixel sizes.
-	 */
-	private FontMetrics fontMetrics;
-	
-	/**
-	 * Number of horizontal dialog units per character, value <code>4</code>.
-	 */
-	private static final int HORIZONTAL_DIALOG_UNIT_PER_CHAR = 4;
-
-	/**
-	 * Number of vertical dialog units per character, value <code>8</code>.
-	 */
-	private static final int VERTICAL_DIALOG_UNITS_PER_CHAR = 8;
-
-	/**
-	 * Returns the number of pixels corresponding to the height of the given
-	 * number of characters.
-	 * <p>
-	 * The required <code>FontMetrics</code> parameter may be created in the
-	 * following way: <code>
-	 * 	GC gc = new GC(control);
-	 *	gc.setFont(control.getFont());
-	 *	fontMetrics = gc.getFontMetrics();
-	 *	gc.dispose();
-	 * </code>
-	 * </p>
-	 * 
-	 * @param fontMetrics
-	 *            used in performing the conversion
-	 * @param chars
-	 *            the number of characters
-	 * @return the number of pixels
-	 * @since 2.0
-	 */
-	public static int convertHeightInCharsToPixels(FontMetrics fontMetrics,
-			int chars) {
-		return fontMetrics.getHeight() * chars;
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the given number of
-	 * horizontal dialog units.
-	 * <p>
-	 * The required <code>FontMetrics</code> parameter may be created in the
-	 * following way: <code>
-	 * 	GC gc = new GC(control);
-	 *	gc.setFont(control.getFont());
-	 *	fontMetrics = gc.getFontMetrics();
-	 *	gc.dispose();
-	 * </code>
-	 * </p>
-	 * 
-	 * @param fontMetrics
-	 *            used in performing the conversion
-	 * @param dlus
-	 *            the number of horizontal dialog units
-	 * @return the number of pixels
-	 * @since 2.0
-	 */
-	public static int convertHorizontalDLUsToPixels(FontMetrics fontMetrics,
-			int dlus) {
-		// round to the nearest pixel
-		return (fontMetrics.getAverageCharWidth() * dlus + HORIZONTAL_DIALOG_UNIT_PER_CHAR / 2)
-				/ HORIZONTAL_DIALOG_UNIT_PER_CHAR;
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the given number of
-	 * vertical dialog units.
-	 * <p>
-	 * The required <code>FontMetrics</code> parameter may be created in the
-	 * following way: <code>
-	 * 	GC gc = new GC(control);
-	 *	gc.setFont(control.getFont());
-	 *	fontMetrics = gc.getFontMetrics();
-	 *	gc.dispose();
-	 * </code>
-	 * </p>
-	 * 
-	 * @param fontMetrics
-	 *            used in performing the conversion
-	 * @param dlus
-	 *            the number of vertical dialog units
-	 * @return the number of pixels
-	 * @since 2.0
-	 */
-	public static int convertVerticalDLUsToPixels(FontMetrics fontMetrics,
-			int dlus) {
-		// round to the nearest pixel
-		return (fontMetrics.getHeight() * dlus + VERTICAL_DIALOG_UNITS_PER_CHAR / 2)
-				/ VERTICAL_DIALOG_UNITS_PER_CHAR;
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the width of the given
-	 * number of characters.
-	 * <p>
-	 * The required <code>FontMetrics</code> parameter may be created in the
-	 * following way: <code>
-	 * 	GC gc = new GC(control);
-	 *	gc.setFont(control.getFont());
-	 *	fontMetrics = gc.getFontMetrics();
-	 *	gc.dispose();
-	 * </code>
-	 * </p>
-	 * 
-	 * @param fontMetrics
-	 *            used in performing the conversion
-	 * @param chars
-	 *            the number of characters
-	 * @return the number of pixels
-	 * @since 2.0
-	 */
-	public static int convertWidthInCharsToPixels(FontMetrics fontMetrics,
-			int chars) {
-		return fontMetrics.getAverageCharWidth() * chars;
-	}
-
-	/**
-	 * Shortens the given text <code>textValue</code> so that its width in
-	 * pixels does not exceed the width of the given control. Overrides
-	 * characters in the center of the original string with an ellipsis ("...")
-	 * if necessary. If a <code>null</code> value is given, <code>null</code>
-	 * is returned.
-	 * 
-	 * @param textValue
-	 *            the original string or <code>null</code>
-	 * @param control
-	 *            the control the string will be displayed on
-	 * @return the string to display, or <code>null</code> if null was passed
-	 *         in
-	 * 
-	 * @since 3.0
-	 */
-	public static String shortenText(String textValue, Control control) {
-		if (textValue == null) {
-			return null;
-		}
-		GC gc = new GC(control);
-		int maxWidth = control.getBounds().width - 5;
-		int maxExtent = gc.textExtent(textValue).x;
-		if (maxExtent < maxWidth) {
-			gc.dispose();
-			return textValue;
-		}
-		int length = textValue.length();
-		int charsToClip = Math.round(0.95f*length * (1 - ((float)maxWidth/maxExtent)));
-		int pivot = length / 2;
-		int start = pivot - (charsToClip/2);
-		int end = pivot + (charsToClip/2) + 1;
-		while (start >= 0 && end < length) {
-			String s1 = textValue.substring(0, start);
-			String s2 = textValue.substring(end, length);
-			String s = s1 + ELLIPSIS + s2;
-			int l = gc.textExtent(s).x;
-			if (l < maxWidth) {
-				gc.dispose();
-				return s;
-			}
-			start--;
-			end++;
-		}
-		gc.dispose();
-		return textValue;
-	}
-
-	/**
-	 * Create a default instance of the blocked handler which does not do
-	 * anything.
-	 */
-	public static IDialogBlockedHandler blockedHandler = new IDialogBlockedHandler() {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IDialogBlockedHandler#clearBlocked()
-		 */
-		public void clearBlocked() {
-			// No default behaviour
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IDialogBlockedHandler#showBlocked(org.eclipse.core.runtime.IProgressMonitor,
-		 *      org.eclipse.core.runtime.IStatus, java.lang.String)
-		 */
-		public void showBlocked(IProgressMonitor blocking,
-				IStatus blockingStatus, String blockedName) {
-			// No default behaviour
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IDialogBlockedHandler#showBlocked(org.eclipse.swt.widgets.Shell,
-		 *      org.eclipse.core.runtime.IProgressMonitor,
-		 *      org.eclipse.core.runtime.IStatus, java.lang.String)
-		 */
-		public void showBlocked(Shell parentShell, IProgressMonitor blocking,
-				IStatus blockingStatus, String blockedName) {
-			// No default behaviour
-		}
-	};
-
-	/**
-	 * Creates a dialog instance. Note that the window will have no visual
-	 * representation (no widgets) until it is told to open. By default,
-	 * <code>open</code> blocks for dialogs.
-	 * 
-	 * @param parentShell
-	 *            the parent shell, or <code>null</code> to create a top-level
-	 *            shell
-	 */
-	protected Dialog(Shell parentShell) {
-		this(new SameShellProvider(parentShell));
-		if (parentShell == null && Policy.DEBUG_DIALOG_NO_PARENT) {
-			Policy.getLog().log(
-					new Status(IStatus.INFO, Policy.JFACE, IStatus.INFO, this
-							.getClass()
-							+ " created with no shell",//$NON-NLS-1$
-							new Exception()));
-		}
-	}
-
-	/**
-	 * Creates a dialog with the given parent.
-	 * 
-	 * @param parentShell
-	 *            object that returns the current parent shell
-	 * 
-	 * @since 3.1
-	 */
-	protected Dialog(IShellProvider parentShell) {
-		super(parentShell);
-		if (isResizable()) {
-			setShellStyle(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.MAX | SWT.RESIZE
-					| getDefaultOrientation());
-		} else {
-			setShellStyle(SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL
-					| getDefaultOrientation());
-		}
-		setBlockOnOpen(true);
-	}
-
-	/**
-	 * Notifies that this dialog's button with the given id has been pressed.
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method calls
-	 * <code>okPressed</code> if the ok button is the pressed, and
-	 * <code>cancelPressed</code> if the cancel button is the pressed. All
-	 * other button presses are ignored. Subclasses may override to handle other
-	 * buttons, but should call <code>super.buttonPressed</code> if the
-	 * default handling of the ok and cancel buttons is desired.
-	 * </p>
-	 * 
-	 * @param buttonId
-	 *            the id of the button that was pressed (see
-	 *            <code>IDialogConstants.*_ID</code> constants)
-	 */
-	protected void buttonPressed(int buttonId) {
-		if (IDialogConstants.OK_ID == buttonId) {
-			okPressed();
-		} else if (IDialogConstants.CANCEL_ID == buttonId) {
-			cancelPressed();
-		}
-	}
-
-	/**
-	 * Notifies that the cancel button of this dialog has been pressed.
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method sets
-	 * this dialog's return code to <code>Window.CANCEL</code> and closes the
-	 * dialog. Subclasses may override if desired.
-	 * </p>
-	 */
-	protected void cancelPressed() {
-		setReturnCode(CANCEL);
-		close();
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the height of the given
-	 * number of characters.
-	 * <p>
-	 * This method may only be called after <code>initializeDialogUnits</code>
-	 * has been called.
-	 * </p>
-	 * <p>
-	 * Clients may call this framework method, but should not override it.
-	 * </p>
-	 * 
-	 * @param chars
-	 *            the number of characters
-	 * @return the number of pixels
-	 */
-	protected int convertHeightInCharsToPixels(int chars) {
-		// test for failure to initialize for backward compatibility
-		if (fontMetrics == null) {
-			return 0;
-		}
-		return convertHeightInCharsToPixels(fontMetrics, chars);
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the given number of
-	 * horizontal dialog units.
-	 * <p>
-	 * This method may only be called after <code>initializeDialogUnits</code>
-	 * has been called.
-	 * </p>
-	 * <p>
-	 * Clients may call this framework method, but should not override it.
-	 * </p>
-	 * 
-	 * @param dlus
-	 *            the number of horizontal dialog units
-	 * @return the number of pixels
-	 */
-	protected int convertHorizontalDLUsToPixels(int dlus) {
-		// test for failure to initialize for backward compatibility
-		if (fontMetrics == null) {
-			return 0;
-		}
-		return convertHorizontalDLUsToPixels(fontMetrics, dlus);
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the given number of
-	 * vertical dialog units.
-	 * <p>
-	 * This method may only be called after <code>initializeDialogUnits</code>
-	 * has been called.
-	 * </p>
-	 * <p>
-	 * Clients may call this framework method, but should not override it.
-	 * </p>
-	 * 
-	 * @param dlus
-	 *            the number of vertical dialog units
-	 * @return the number of pixels
-	 */
-	protected int convertVerticalDLUsToPixels(int dlus) {
-		// test for failure to initialize for backward compatibility
-		if (fontMetrics == null) {
-			return 0;
-		}
-		return convertVerticalDLUsToPixels(fontMetrics, dlus);
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the width of the given
-	 * number of characters.
-	 * <p>
-	 * This method may only be called after <code>initializeDialogUnits</code>
-	 * has been called.
-	 * </p>
-	 * <p>
-	 * Clients may call this framework method, but should not override it.
-	 * </p>
-	 * 
-	 * @param chars
-	 *            the number of characters
-	 * @return the number of pixels
-	 */
-	protected int convertWidthInCharsToPixels(int chars) {
-		// test for failure to initialize for backward compatibility
-		if (fontMetrics == null) {
-			return 0;
-		}
-		return convertWidthInCharsToPixels(fontMetrics, chars);
-	}
-
-	/**
-	 * Creates a new button with the given id.
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method creates
-	 * a standard push button, registers it for selection events including
-	 * button presses, and registers default buttons with its shell. The button
-	 * id is stored as the button's client data. If the button id is
-	 * <code>IDialogConstants.CANCEL_ID</code>, the new button will be
-	 * accessible from <code>getCancelButton()</code>. If the button id is
-	 * <code>IDialogConstants.OK_ID</code>, the new button will be accesible
-	 * from <code>getOKButton()</code>. Note that the parent's layout is
-	 * assumed to be a <code>GridLayout</code> and the number of columns in
-	 * this layout is incremented. Subclasses may override.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param id
-	 *            the id of the button (see <code>IDialogConstants.*_ID</code>
-	 *            constants for standard dialog button ids)
-	 * @param label
-	 *            the label from the button
-	 * @param defaultButton
-	 *            <code>true</code> if the button is to be the default button,
-	 *            and <code>false</code> otherwise
-	 * 
-	 * @return the new button
-	 * 
-	 * @see #getCancelButton
-	 * @see #getOKButton()
-	 */
-	protected Button createButton(Composite parent, int id, String label,
-			boolean defaultButton) {
-		// increment the number of columns in the button bar
-		((GridLayout) parent.getLayout()).numColumns++;
-		Button button = new Button(parent, SWT.PUSH);
-		button.setText(label);
-		button.setFont(JFaceResources.getDialogFont());
-		button.setData(new Integer(id));
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				buttonPressed(((Integer) event.widget.getData()).intValue());
-			}
-		});
-		if (defaultButton) {
-			Shell shell = parent.getShell();
-			if (shell != null) {
-				shell.setDefaultButton(button);
-			}
-		}
-		buttons.put(new Integer(id), button);
-		setButtonLayoutData(button);
-		return button;
-	}
-
-	/**
-	 * Creates and returns the contents of this dialog's button bar.
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method lays
-	 * out a button bar and calls the <code>createButtonsForButtonBar</code>
-	 * framework method to populate it. Subclasses may override.
-	 * </p>
-	 * <p>
-	 * The returned control's layout data must be an instance of
-	 * <code>GridData</code>.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the parent composite to contain the button bar
-	 * @return the button bar control
-	 */
-	protected Control createButtonBar(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		// create a layout with spacing and margins appropriate for the font
-		// size.
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 0; // this is incremented by createButton
-		layout.makeColumnsEqualWidth = true;
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_END
-				| GridData.VERTICAL_ALIGN_CENTER);
-		composite.setLayoutData(data);
-		composite.setFont(parent.getFont());
-		
-		// Add the buttons to the button bar.
-		createButtonsForButtonBar(composite);
-		return composite;
-	}
-
-	/**
-	 * Adds buttons to this dialog's button bar.
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method adds
-	 * standard ok and cancel buttons using the <code>createButton</code>
-	 * framework method. These standard buttons will be accessible from
-	 * <code>getCancelButton</code>, and <code>getOKButton</code>.
-	 * Subclasses may override.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the button bar composite
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		// create OK and Cancel buttons by default
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
-				true);
-		createButton(parent, IDialogConstants.CANCEL_ID,
-				IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	/*
-	 * @see Window.initializeBounds()
-	 */
-	protected void initializeBounds() {
-		Shell shell = getShell();
-		if (shell != null) {
-			if (shell.getDisplay().getDismissalAlignment() == SWT.RIGHT) {
-				// make the default button the right-most button
-				Button defaultButton = shell.getDefaultButton();
-				if (defaultButton != null
-						&& isContained(buttonBar, defaultButton)) {
-					defaultButton.moveBelow(null);
-					((Composite) buttonBar).layout();
-				}
-			}
-		}
-		
-		super.initializeBounds();
-	}
-
-	/**
-	 * Returns true if the given Control is a direct or indirect child of
-	 * container.
-	 * 
-	 * @param container
-	 *            the potential parent
-	 * @param control
-	 * @return boolean <code>true</code> if control is a child of container
-	 */
-	private boolean isContained(Control container, Control control) {
-		Composite parent;
-		while ((parent = control.getParent()) != null) {
-			if (parent == container) {
-				return true;
-			}
-			control = parent;
-		}
-		return false;
-	}
-
-	/**
-	 * The <code>Dialog</code> implementation of this <code>Window</code>
-	 * method creates and lays out the top level composite for the dialog, and
-	 * determines the appropriate horizontal and vertical dialog units based on
-	 * the font size. It then calls the <code>createDialogArea</code> and
-	 * <code>createButtonBar</code> methods to create the dialog area and
-	 * button bar, respectively. Overriding <code>createDialogArea</code> and
-	 * <code>createButtonBar</code> are recommended rather than overriding
-	 * this method.
-	 */
-	protected Control createContents(Composite parent) {
-		// create the top level composite for the dialog
-		Composite composite = new Composite(parent, 0);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		applyDialogFont(composite);
-		// initialize the dialog units
-		initializeDialogUnits(composite);
-		// create the dialog area and button bar
-		dialogArea = createDialogArea(composite);
-		buttonBar = createButtonBar(composite);
-				
-		return composite;
-	}
-
-	/**
-	 * Creates and returns the contents of the upper part of this dialog (above
-	 * the button bar).
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method creates
-	 * and returns a new <code>Composite</code> with standard margins and
-	 * spacing.
-	 * </p>
-	 * <p>
-	 * The returned control's layout data must be an instance of
-	 * <code>GridData</code>. This method must not modify the parent's
-	 * layout.
-	 * </p>
-	 * <p>
-	 * Subclasses must override this method but may call <code>super</code> as
-	 * in the following example:
-	 * </p>
-	 * 
-	 * <pre>
-	 * Composite composite = (Composite) super.createDialogArea(parent);
-	 * //add controls to composite as necessary
-	 * return composite;
-	 * </pre>
-	 * 
-	 * @param parent
-	 *            the parent composite to contain the dialog area
-	 * @return the dialog area control
-	 */
-	protected Control createDialogArea(Composite parent) {
-		// create a composite with standard margins and spacing
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		applyDialogFont(composite);
-		return composite;
-	}
-
-	/**
-	 * Returns the button created by the method <code>createButton</code> for
-	 * the specified ID as defined on <code>IDialogConstants</code>. If
-	 * <code>createButton</code> was never called with this ID, or if
-	 * <code>createButton</code> is overridden, this method will return
-	 * <code>null</code>.
-	 * 
-	 * @param id
-	 *            the id of the button to look for
-	 * 
-	 * @return the button for the ID or <code>null</code>
-	 * 
-	 * @see #createButton(Composite, int, String, boolean)
-	 * @since 2.0
-	 */
-	protected Button getButton(int id) {
-		return (Button) buttons.get(new Integer(id));
-	}
-
-	/**
-	 * Returns the button bar control.
-	 * <p>
-	 * Clients may call this framework method, but should not override it.
-	 * </p>
-	 * 
-	 * @return the button bar, or <code>null</code> if the button bar has not
-	 *         been created yet
-	 */
-	protected Control getButtonBar() {
-		return buttonBar;
-	}
-
-	/**
-	 * Returns the button created when <code>createButton</code> is called
-	 * with an ID of <code>IDialogConstants.CANCEL_ID</code>. If
-	 * <code>createButton</code> was never called with this parameter, or if
-	 * <code>createButton</code> is overridden, <code>getCancelButton</code>
-	 * will return <code>null</code>.
-	 * 
-	 * @return the cancel button or <code>null</code>
-	 * 
-	 * @see #createButton(Composite, int, String, boolean)
-	 * @since 2.0
-	 * @deprecated Use <code>getButton(IDialogConstants.CANCEL_ID)</code>
-	 *             instead. This method will be removed soon.
-	 */
-	protected Button getCancelButton() {
-		return getButton(IDialogConstants.CANCEL_ID);
-	}
-
-	/**
-	 * Returns the dialog area control.
-	 * <p>
-	 * Clients may call this framework method, but should not override it.
-	 * </p>
-	 * 
-	 * @return the dialog area, or <code>null</code> if the dialog area has
-	 *         not been created yet
-	 */
-	protected Control getDialogArea() {
-		return dialogArea;
-	}
-
-	/**
-	 * Returns the standard dialog image with the given key. Note that these
-	 * images are managed by the dialog framework, and must not be disposed by
-	 * another party.
-	 * 
-	 * @param key
-	 *            one of the <code>Dialog.DLG_IMG_* </code> constants
-	 * @return the standard dialog image
-	 * 
-	 * NOTE: Dialog does not use the following images in the registry
-	 * DLG_IMG_ERROR DLG_IMG_INFO DLG_IMG_QUESTION DLG_IMG_WARNING
-	 * 
-	 * They are now coming directly from SWT, see ImageRegistry. For backwards
-	 * compatibility they are still supported, however new code should use SWT
-	 * for these.
-	 * 
-	 * @see Display#getSystemImage(int)
-	 */
-	public static Image getImage(String key) {
-		return JFaceResources.getImageRegistry().get(key);
-	}
-
-	/**
-	 * Returns the button created when <code>createButton</code> is called
-	 * with an ID of <code>IDialogConstants.OK_ID</code>. If
-	 * <code>createButton</code> was never called with this parameter, or if
-	 * <code>createButton</code> is overridden, <code>getOKButton</code>
-	 * will return <code>null</code>.
-	 * 
-	 * @return the OK button or <code>null</code>
-	 * 
-	 * @see #createButton(Composite, int, String, boolean)
-	 * @since 2.0
-	 * @deprecated Use <code>getButton(IDialogConstants.OK_ID)</code> instead.
-	 *             This method will be removed soon.
-	 */
-	protected Button getOKButton() {
-		return getButton(IDialogConstants.OK_ID);
-	}
-
-	/**
-	 * Initializes the computation of horizontal and vertical dialog units based
-	 * on the size of current font.
-	 * <p>
-	 * This method must be called before any of the dialog unit based conversion
-	 * methods are called.
-	 * </p>
-	 * 
-	 * @param control
-	 *            a control from which to obtain the current font
-	 */
-	protected void initializeDialogUnits(Control control) {
-		// Compute and store a font metric
-		GC gc = new GC(control);
-		gc.setFont(JFaceResources.getDialogFont());
-		fontMetrics = gc.getFontMetrics();
-		gc.dispose();
-	}
-
-	/**
-	 * Notifies that the ok button of this dialog has been pressed.
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method sets
-	 * this dialog's return code to <code>Window.OK</code> and closes the
-	 * dialog. Subclasses may override.
-	 * </p>
-	 */
-	protected void okPressed() {
-		setReturnCode(OK);
-		close();
-	}
-
-	/**
-	 * Set the layout data of the button to a GridData with appropriate heights
-	 * and widths.
-	 * 
-	 * @param button
-	 */
-	protected void setButtonLayoutData(Button button) {
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		Point minSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		data.widthHint = Math.max(widthHint, minSize.x);
-		button.setLayoutData(data);
-	}
-
-	/**
-	 * Set the layout data of the button to a FormData with appropriate heights
-	 * and widths.
-	 * 
-	 * @param button
-	 */
-	protected void setButtonLayoutFormData(Button button) {
-		FormData data = new FormData();
-		int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-		Point minSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		data.width = Math.max(widthHint, minSize.x);
-		button.setLayoutData(data);
-	}
-
-	/**
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		if (getShell() != null && !getShell().isDisposed()) {
-			saveDialogBounds(getShell());
-		}
-
-		boolean returnValue = super.close();
-		if (returnValue) {
-			buttons = new HashMap();
-			buttonBar = null;
-			dialogArea = null;
-		}
-		return returnValue;
-	}
-
-	/**
-	 * Applies the dialog font to all controls that currently have the default
-	 * font.
-	 * 
-	 * @param control
-	 *            the control to apply the font to. Font will also be applied to
-	 *            its children. If the control is <code>null</code> nothing
-	 *            happens.
-	 */
-	public static void applyDialogFont(Control control) {
-		if (control == null || dialogFontIsDefault()) {
-			return;
-		}
-		Font dialogFont = JFaceResources.getDialogFont();
-		applyDialogFont(control, dialogFont);
-	}
-
-	/**
-	 * Sets the dialog font on the control and any of its children if their font
-	 * is not otherwise set.
-	 * 
-	 * @param control
-	 *            the control to apply the font to. Font will also be applied to
-	 *            its children.
-	 * @param dialogFont
-	 *            the dialog font to set
-	 */
-	private static void applyDialogFont(Control control, Font dialogFont) {
-		if (hasDefaultFont(control)) {
-			control.setFont(dialogFont);
-		}
-		if (control instanceof Composite) {
-			Control[] children = ((Composite) control).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				applyDialogFont(children[i], dialogFont);
-			}
-		}
-	}
-
-	/**
-	 * Return whether or not this control has the same font as it's default.
-	 * 
-	 * @param control
-	 *            Control
-	 * @return boolean
-	 */
-	private static boolean hasDefaultFont(Control control) {
-		FontData[] controlFontData = control.getFont().getFontData();
-		FontData[] defaultFontData = getDefaultFont(control).getFontData();
-		if (controlFontData.length == defaultFontData.length) {
-			for (int i = 0; i < controlFontData.length; i++) {
-				if (controlFontData[i].equals(defaultFontData[i])) {
-					continue;
-				}
-				return false;
-			}
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Get the default font for this type of control.
-	 * 
-	 * @param control
-	 * @return the default font
-	 */
-	private static Font getDefaultFont(Control control) {
-		String fontName = "DEFAULT_FONT_" + control.getClass().getName(); //$NON-NLS-1$
-		if (JFaceResources.getFontRegistry().hasValueFor(fontName)) {
-			return JFaceResources.getFontRegistry().get(fontName);
-		}
-		Font cached = control.getFont();
-		control.setFont(null);
-		Font defaultFont = control.getFont();
-		control.setFont(cached);
-		JFaceResources.getFontRegistry().put(fontName,
-				defaultFont.getFontData());
-		return defaultFont;
-	}
-
-	/**
-	 * Return whether or not the dialog font is currently the same as the
-	 * default font.
-	 * 
-	 * @return boolean if the two are the same
-	 */
-	protected static boolean dialogFontIsDefault() {
-		FontData[] dialogFontData = JFaceResources.getFontRegistry()
-				.getFontData(JFaceResources.DIALOG_FONT);
-		FontData[] defaultFontData = JFaceResources.getFontRegistry()
-				.getFontData(JFaceResources.DEFAULT_FONT);
-		return Arrays.equals(dialogFontData, defaultFontData);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#create()
-	 */
-	public void create() {
-		super.create();
-		applyDialogFont(buttonBar);
-	}
-
-	/**
-	 * Get the IDialogBlockedHandler to be used by WizardDialogs and
-	 * ModalContexts.
-	 * 
-	 * @return Returns the blockedHandler.
-	 */
-	public static IDialogBlockedHandler getBlockedHandler() {
-		return blockedHandler;
-	}
-
-	/**
-	 * Set the IDialogBlockedHandler to be used by WizardDialogs and
-	 * ModalContexts.
-	 * 
-	 * @param blockedHandler
-	 *            The blockedHandler for the dialogs.
-	 */
-	public static void setBlockedHandler(IDialogBlockedHandler blockedHandler) {
-		Dialog.blockedHandler = blockedHandler;
-	}
-
-	/**
-	 * Gets the dialog settings that should be used for remembering the bounds of
-	 * of the dialog, according to the dialog bounds strategy.
-	 * 
-	 * @return settings the dialog settings used to store the dialog's location
-	 *         and/or size, or <code>null</code> if the dialog's bounds should
-	 *         never be stored.
-	 * 
-	 * @since 3.2
-	 * @see Dialog#getDialogBoundsStrategy()
-	 */
-	protected IDialogSettings getDialogBoundsSettings() {
-		return null;
-	}
-
-	/**
-	 * Get the integer constant that describes the strategy for persisting the
-	 * dialog bounds. This strategy is ignored if the implementer does not also
-	 * specify the dialog settings for storing the bounds in
-	 * Dialog.getDialogBoundsSettings().
-	 * 
-	 * @return the constant describing the strategy for persisting the dialog
-	 *         bounds.
-	 * 
-	 * @since 3.2
-	 * @see Dialog#DIALOG_PERSISTLOCATION
-	 * @see Dialog#DIALOG_PERSISTSIZE
-	 * @see Dialog#getDialogBoundsSettings()
-	 */
-	protected int getDialogBoundsStrategy() {
-		return DIALOG_PERSISTLOCATION | DIALOG_PERSISTSIZE;
-	}
-
-	/**
-	 * Saves the bounds of the shell in the appropriate dialog settings. The
-	 * bounds are recorded relative to the parent shell, if there is one, or
-	 * display coordinates if there is no parent shell.
-	 * 
-	 * @param shell
-	 *            The shell whose bounds are to be stored
-	 * 
-	 * @since 3.2
-	 */
-	private void saveDialogBounds(Shell shell) {		
-		IDialogSettings settings = getDialogBoundsSettings();
-		if (settings != null) {
-			Point shellLocation = shell.getLocation();
-			Point shellSize = shell.getSize();
-			Shell parent = getParentShell();
-			if (parent != null) {
-				Point parentLocation = parent.getLocation();
-				shellLocation.x -= parentLocation.x;
-				shellLocation.y -= parentLocation.y;
-			}
-			int strategy = getDialogBoundsStrategy();
-			if ((strategy & DIALOG_PERSISTLOCATION) != 0) {
-				settings.put(DIALOG_ORIGIN_X, shellLocation.x);
-				settings.put(DIALOG_ORIGIN_Y, shellLocation.y);
-			}
-			if ((strategy & DIALOG_PERSISTSIZE) != 0) {
-				settings.put(DIALOG_WIDTH, shellSize.x);
-				settings.put(DIALOG_HEIGHT, shellSize.y);
-				FontData [] fontDatas = JFaceResources.getDialogFont().getFontData();
-				if (fontDatas.length > 0) {
-					settings.put(DIALOG_FONT_DATA, fontDatas[0].toString());
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns the initial size to use for the shell. Overridden
-	 * to check whether a size has been stored in dialog settings.
-	 * If a size has been stored, it is returned.
-	 * 
-	 * @return the initial size of the shell
-	 * 
-	 * @since 3.2
-	 * @see #getDialogBoundsSettings()
-	 * @see #getDialogBoundsStrategy()
-	 */
-	protected Point getInitialSize() {
-		Point result = super.getInitialSize();
-		
-		// Check the dialog settings for a stored size.
-		if ((getDialogBoundsStrategy() & DIALOG_PERSISTSIZE)!= 0) {
-			IDialogSettings settings = getDialogBoundsSettings();
-			if (settings != null) {
-				// Check that the dialog font matches the font used
-				// when the bounds was stored.  If the font has changed,
-				// we do not honor the stored settings.  
-				// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=132821
-				boolean useStoredBounds = true;
-				String previousDialogFontData = settings.get(DIALOG_FONT_DATA);
-				// There is a previously stored font, so we will check it.
-				// Note that if we haven't stored the font before, then we will
-				// use the stored bounds.  This allows restoring of dialog bounds 
-				// that were stored before we started storing the fontdata.
-				if (previousDialogFontData != null && previousDialogFontData.length() > 0) {
-					FontData [] fontDatas = JFaceResources.getDialogFont().getFontData();
-					if (fontDatas.length > 0) {
-						String currentDialogFontData = fontDatas[0].toString();
-						useStoredBounds = currentDialogFontData.equalsIgnoreCase(previousDialogFontData);
-					}
-				}
-				if (useStoredBounds) {
-					try {
-						// Get the stored width and height.
-						int width = settings.getInt(DIALOG_WIDTH);
-						if (width != DIALOG_DEFAULT_BOUNDS) {
-							result.x = width;
-						}
-						int height = settings.getInt(DIALOG_HEIGHT);
-						if (height != DIALOG_DEFAULT_BOUNDS) {
-							result.y = height;
-						}
-		
-					} catch (NumberFormatException e) {
-					}
-				}
-			}
-		}
-		// No attempt is made to constrain the bounds. The default
-		// constraining behavior in Window will be used.
-		return result;
-	}
-
-	/**
-	 * Returns the initial location to use for the shell. Overridden
-	 * to check whether the bounds of the dialog have been stored in
-	 * dialog settings.  If a location has been stored, it is returned.
-	 * 
-	 * @param initialSize
-	 *            the initial size of the shell, as returned by
-	 *            <code>getInitialSize</code>.
-	 * @return the initial location of the shell
-	 * 
-	 * @since 3.2
-	 * @see #getDialogBoundsSettings()
-	 * @see #getDialogBoundsStrategy()
-	 */
-	protected Point getInitialLocation(Point initialSize) {
-		Point result = super.getInitialLocation(initialSize);
-		if ((getDialogBoundsStrategy() & DIALOG_PERSISTLOCATION)!= 0) {
-			IDialogSettings settings = getDialogBoundsSettings();
-			if (settings != null) {
-				try {
-					int x = settings.getInt(DIALOG_ORIGIN_X);
-					int y = settings.getInt(DIALOG_ORIGIN_Y);
-					result = new Point(x, y);
-					// The coordinates were stored relative to the parent shell.
-					// Convert to display coordinates.
-					Shell parent = getParentShell();
-					if (parent != null) {
-						Point parentLocation = parent.getLocation();
-						result.x += parentLocation.x;
-						result.y += parentLocation.y;
-					}
-				} catch (NumberFormatException e) {
-				}
-			}
-		}
-		// No attempt is made to constrain the bounds. The default
-		// constraining behavior in Window will be used.
-		return result;
-	}
-	
-	/**
-	 * Returns a boolean indicating whether the dialog should be
-	 * considered resizable when the shell style is initially
-	 * set.  
-	 * 
-	 * This method is used to ensure that all style 
-	 * bits appropriate for resizable dialogs are added to the 
-	 * shell style.  Individual dialogs may always set the shell 
-	 * style to ensure that a dialog is resizable, but using this
-	 * method ensures that resizable dialogs will be created with
-	 * the same set of style bits.
-	 * 
-	 * Style bits will never be removed based on the return value 
-	 * of this method.  For example, if a dialog returns 
-	 * <code>false</code>, but also sets a style bit for a 
-	 * SWT.RESIZE border, the style bit will be honored.
-	 * 
-	 * @return a boolean indicating whether the dialog is 
-	 * resizable and should have the default style bits for
-	 * resizable dialogs
-	 * 
-	 * @since 3.4
-	 */
-	protected boolean isResizable() {
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogMessageArea.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogMessageArea.java
deleted file mode 100644
index 14a0927..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogMessageArea.java
+++ /dev/null
@@ -1,199 +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.jface.dialogs;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-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.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * The DialogMessageArea is a resusable component for adding an accessible
- * message area to a dialog.
- * 
- * When the message is normal a CLabel is used but an errors replaces the
- * message area with a non editable text that can take focus for use by screen
- * readers.
- * 
- * @since 3.0
- */
-public class DialogMessageArea extends Object {
-    private Text messageText;
-
-    private Label messageImageLabel;
-
-    private Composite messageComposite;
-
-    private String lastMessageText;
-
-    private int lastMessageType;
-
-    private CLabel titleLabel;
-
-    /**
-     * Create a new instance of the receiver.
-     */
-    public DialogMessageArea() {
-        //No initial behaviour
-    }
-
-    /**
-     * Create the contents for the receiver.
-     * 
-     * @param parent
-     *            the Composite that the children will be created in
-     */
-    public void createContents(Composite parent) {
-       
-        // Message label
-        titleLabel = new CLabel(parent, SWT.NONE);
-        titleLabel.setFont(JFaceResources.getBannerFont());
-        messageComposite = new Composite(parent, SWT.NONE);
-        GridLayout messageLayout = new GridLayout();
-        messageLayout.numColumns = 2;
-        messageLayout.marginWidth = 0;
-        messageLayout.marginHeight = 0;
-        messageLayout.makeColumnsEqualWidth = false;
-        messageComposite.setLayout(messageLayout);
-        messageImageLabel = new Label(messageComposite, SWT.NONE);
-        messageImageLabel.setImage(JFaceResources
-                .getImage(Dialog.DLG_IMG_MESSAGE_INFO));
-        messageImageLabel.setLayoutData(new GridData(
-                GridData.VERTICAL_ALIGN_CENTER));
-  
-        messageText = new Text(messageComposite, SWT.NONE);
-        messageText.setEditable(false);
-  
-        GridData textData = new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
-        messageText.setLayoutData(textData);
-  
-    }
-
-    /**
-     * Set the layoutData for the title area. In most cases this will be a copy
-     * of the layoutData used in setMessageLayoutData.
-     * 
-     * @param layoutData
-     *            the layoutData for the title
-     * @see #setMessageLayoutData(Object)
-     */
-    public void setTitleLayoutData(Object layoutData) {
-        titleLabel.setLayoutData(layoutData);
-    }
-
-    /**
-     * Set the layoutData for the messageArea. In most cases this will be a copy
-     * of the layoutData used in setTitleLayoutData.
-     * 
-     * @param layoutData
-     *            the layoutData for the message area composite.
-     * @see #setTitleLayoutData(Object)
-     */
-    public void setMessageLayoutData(Object layoutData) {
-        messageComposite.setLayoutData(layoutData);
-    }
-
-    /**
-     * Show the title.
-     * 
-     * @param titleMessage
-     *            String for the titke
-     * @param titleImage
-     *            Image or <code>null</code>
-     */
-    public void showTitle(String titleMessage, Image titleImage) {
-        titleLabel.setImage(titleImage);
-        titleLabel.setText(titleMessage);
-        restoreTitle();
-        return;
-    }
-
-    /**
-     * Enable the title and disable the message text and image.
-     */
-    public void restoreTitle() {
-        titleLabel.setVisible(true);
-        messageComposite.setVisible(false);
-        lastMessageText = null;
-        lastMessageType = IMessageProvider.NONE;
-    }
-
-    /**
-     * Show the new message in the message text and update the image. Base the
-     * background color on whether or not there are errors.
-     * 
-     * @param newMessage
-     *            The new value for the message
-     * @param newType
-     *            One of the IMessageProvider constants. If newType is
-     *            IMessageProvider.NONE show the title.
-     * @see IMessageProvider
-     */
-    public void updateText(String newMessage, int newType) {
-        Image newImage = null;
-        switch (newType) {
-        case IMessageProvider.NONE:
-            if (newMessage == null) {
-				restoreTitle();
-			} else {
-				showTitle(newMessage, null);
-			}
-            return;
-        case IMessageProvider.INFORMATION:
-            newImage = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_INFO);
-            break;
-        case IMessageProvider.WARNING:
-            newImage = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING);
-            break;
-        case IMessageProvider.ERROR:
-            newImage = JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR);
-
-            break;
-        }
-        messageComposite.setVisible(true);
-        titleLabel.setVisible(false);
-        // Any more updates required?
-        // If the message text equals the tooltip (i.e. non-shortened text is the same)
-        // and shortened text is the same (i.e. not a resize)
-        // and the image is the same then nothing to do
-        String shortText = Dialog.shortenText(newMessage,messageText);
-        if (newMessage.equals(messageText.getToolTipText())
-                && newImage == messageImageLabel.getImage()
-                	&& shortText.equals(messageText.getText())) {
-			return;
-		}
-        messageImageLabel.setImage(newImage);
-        messageText.setText(Dialog.shortenText(newMessage,messageText));
-        messageText.setToolTipText(newMessage);
-        lastMessageText = newMessage;
- 
-    }
-
-
-    /**
-     * Clear the error message. Restore the previously displayed message if
-     * there is one, if not restore the title label.
-     *  
-     */
-    public void clearErrorMessage() {
-        if (lastMessageText == null) {
-			restoreTitle();
-		} else {
-			updateText(lastMessageText, lastMessageType);
-		}
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogPage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogPage.java
deleted file mode 100644
index 8439ccb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogPage.java
+++ /dev/null
@@ -1,472 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Abstract base implementation of a dialog page. All dialog pages are
- * subclasses of this one.
- */
-public abstract class DialogPage implements IDialogPage, IMessageProvider {
-    /**
-     * The control for this dialog page.
-     */
-    private Control control;
-
-    /**
-     * Optional title; <code>null</code> if none.
-     * 
-     * @see #setTitle
-     */
-    private String title = null;
-
-    /**
-     * Optional description; <code>null</code> if none.
-     * 
-     * @see #setDescription
-     */
-    private String description = null;
-
-    /**
-     * Cached image; <code>null</code> if none.
-     * 
-     * @see #setImageDescriptor(ImageDescriptor)
-     */
-    private Image image = null;
-
-    /**
-     * Optional image; <code>null</code> if none.
-     * 
-     * @see #setImageDescriptor(ImageDescriptor)
-     */
-    private ImageDescriptor imageDescriptor = null;
-
-    /**
-     * The current message; <code>null</code> if none.
-     */
-    private String message = null;
-
-    /**
-     * The current message type; default value <code>NONE</code>.
-     */
-    private int messageType = NONE;
-
-    /**
-     * The current error message; <code>null</code> if none.
-     */
-    private String errorMessage = null;
-
-    /**
-     * Font metrics to use for determining pixel sizes.
-     */
-    private FontMetrics fontMetrics;
-
-    /**
-     * Creates a new empty dialog page.
-     */
-    protected DialogPage() {
-        //No initial behaviour
-    }
-
-    /**
-     * Creates a new dialog page with the given title.
-     * 
-     * @param title
-     *            the title of this dialog page, or <code>null</code> if none
-     */
-    protected DialogPage(String title) {
-        this.title = title;
-    }
-
-    /**
-     * Creates a new dialog page with the given title and image.
-     * 
-     * @param title
-     *            the title of this dialog page, or <code>null</code> if none
-     * @param image
-     *            the image for this dialog page, or <code>null</code> if none
-     */
-    protected DialogPage(String title, ImageDescriptor image) {
-        this(title);
-        imageDescriptor = image;
-    }
-
-    /**
-     * Returns the number of pixels corresponding to the height of the given
-     * number of characters.
-     * <p>
-     * This method may only be called after <code>initializeDialogUnits</code>
-     * has been called.
-     * </p>
-     * <p>
-     * Clients may call this framework method, but should not override it.
-     * </p>
-     * 
-     * @param chars
-     *            the number of characters
-     * @return the number of pixels
-     */
-    protected int convertHeightInCharsToPixels(int chars) {
-        // test for failure to initialize for backward compatibility
-        if (fontMetrics == null) {
-			return 0;
-		}
-        return Dialog.convertHeightInCharsToPixels(fontMetrics, chars);
-    }
-
-    /**
-     * Returns the number of pixels corresponding to the given number of
-     * horizontal dialog units.
-     * <p>
-     * This method may only be called after <code>initializeDialogUnits</code>
-     * has been called.
-     * </p>
-     * <p>
-     * Clients may call this framework method, but should not override it.
-     * </p>
-     * 
-     * @param dlus
-     *            the number of horizontal dialog units
-     * @return the number of pixels
-     */
-    protected int convertHorizontalDLUsToPixels(int dlus) {
-        // test for failure to initialize for backward compatibility
-        if (fontMetrics == null) {
-			return 0;
-		}
-        return Dialog.convertHorizontalDLUsToPixels(fontMetrics, dlus);
-    }
-
-    /**
-     * Returns the number of pixels corresponding to the given number of
-     * vertical dialog units.
-     * <p>
-     * This method may only be called after <code>initializeDialogUnits</code>
-     * has been called.
-     * </p>
-     * <p>
-     * Clients may call this framework method, but should not override it.
-     * </p>
-     * 
-     * @param dlus
-     *            the number of vertical dialog units
-     * @return the number of pixels
-     */
-    protected int convertVerticalDLUsToPixels(int dlus) {
-        // test for failure to initialize for backward compatibility
-        if (fontMetrics == null) {
-			return 0;
-		}
-        return Dialog.convertVerticalDLUsToPixels(fontMetrics, dlus);
-    }
-
-    /**
-     * Returns the number of pixels corresponding to the width of the given
-     * number of characters.
-     * <p>
-     * This method may only be called after <code>initializeDialogUnits</code>
-     * has been called.
-     * </p>
-     * <p>
-     * Clients may call this framework method, but should not override it.
-     * </p>
-     * 
-     * @param chars
-     *            the number of characters
-     * @return the number of pixels
-     */
-    protected int convertWidthInCharsToPixels(int chars) {
-        // test for failure to initialize for backward compatibility
-        if (fontMetrics == null) {
-			return 0;
-		}
-        return Dialog.convertWidthInCharsToPixels(fontMetrics, chars);
-    }
-
-    /**
-     * The <code>DialogPage</code> implementation of this
-     * <code>IDialogPage</code> method disposes of the page
-     * image if it has one. 
-     * Subclasses may extend.
-     */
-    public void dispose() {
-        // deallocate SWT resources
-        if (image != null) {
-            image.dispose();
-            image = null;
-        }
-    }
-
-    /**
-     * Returns the top level control for this dialog page.
-     * 
-     * @return the top level control
-     */
-    public Control getControl() {
-        return control;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IDialogPage.
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * Returns the symbolic font name used by dialog pages.
-     * 
-     * @return the symbolic font name
-     */
-    protected String getDialogFontName() {
-        return JFaceResources.DIALOG_FONT;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IDialogPage.
-     */
-    public String getErrorMessage() {
-        return errorMessage;
-    }
-
-    /**
-     * Returns the default font to use for this dialog page.
-     * 
-     * @return the font
-     */
-    protected Font getFont() {
-        return JFaceResources.getFontRegistry().get(getDialogFontName());
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IDialogPage.
-     */
-    public Image getImage() {
-        if (image == null) {
-            if (imageDescriptor != null) {
-                image = imageDescriptor.createImage();
-            }
-        }
-        return image;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IDialogPage.
-     */
-    public String getMessage() {
-        return message;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IMessageProvider.
-     */
-    public int getMessageType() {
-        return messageType;
-    }
-
-    /**
-     * Returns this dialog page's shell. Convenience method for
-     * <code>getControl().getShell()</code>. This method may only be called
-     * after the page's control has been created.
-     * 
-     * @return the shell
-     */
-    public Shell getShell() {
-        return getControl().getShell();
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IDialogPage.
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * Returns the tool tip text for the widget with the given id.
-     * <p>
-     * The default implementation of this framework method does nothing and
-     * returns <code>null</code>. Subclasses may override.
-     * </p>
-     * 
-     * @param widgetId
-     *            the id of the widget for which hover help is requested
-     * @return the tool tip text, or <code>null</code> if none
-     * @deprecated 
-     */
-    protected final String getToolTipText(int widgetId) {
-        // return nothing by default
-        return null;
-    }
-
-    /**
-     * Initializes the computation of horizontal and vertical dialog units based
-     * on the size of current font.
-     * <p>
-     * This method must be called before any of the dialog unit based conversion
-     * methods are called.
-     * </p>
-     * 
-     * @param testControl
-     *            a control from which to obtain the current font
-     */
-    protected void initializeDialogUnits(Control testControl) {
-        // Compute and store a font metric
-        GC gc = new GC(testControl);
-        gc.setFont(JFaceResources.getDialogFont());
-        fontMetrics = gc.getFontMetrics();
-        gc.dispose();
-    }
-
-    /**
-     * Sets the <code>GridData</code> on the specified button to be one that
-     * is spaced for the current dialog page units. The method
-     * <code>initializeDialogUnits</code> must be called once before calling
-     * this method for the first time.
-     * 
-     * @param button
-     *            the button to set the <code>GridData</code>
-     * @return the <code>GridData</code> set on the specified button
-     */
-    protected GridData setButtonLayoutData(Button button) {
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-        int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-        Point minSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-        data.widthHint = Math.max(widthHint, minSize.x);
-        button.setLayoutData(data);
-        return data;
-    }
-
-    /**
-     * Tests whether this page's UI content has already been created.
-     * 
-     * @return <code>true</code> if the control has been created, and
-     *         <code>false</code> if not
-     */
-    protected boolean isControlCreated() {
-        return control != null;
-    }
-
-    /**
-     * This default implementation of an <code>IDialogPage</code> method does
-     * nothing. Subclasses should override to take some action in response to a
-     * help request.
-     */
-    public void performHelp() {
-        //No default help
-    }
-
-    /**
-     * Set the control for the receiver.
-     * @param newControl
-     */
-    protected void setControl(Control newControl) {
-        control = newControl;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IDialogPage.
-     */
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    /**
-     * Sets or clears the error message for this page.
-     * 
-     * @param newMessage
-     *            the message, or <code>null</code> to clear the error message
-     */
-    public void setErrorMessage(String newMessage) {
-        errorMessage = newMessage;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IDialogPage.
-     */
-    public void setImageDescriptor(ImageDescriptor desc) {
-        imageDescriptor = desc;
-        if (image != null) {
-            image.dispose();
-            image = null;
-        }
-    }
-
-    /**
-     * Sets or clears the message for this page.
-     * <p>
-     * This is a shortcut for <code>setMessage(newMesasge, NONE)</code>
-     * </p>
-     * 
-     * @param newMessage
-     *            the message, or <code>null</code> to clear the message
-     */
-    public void setMessage(String newMessage) {
-        setMessage(newMessage, NONE);
-    }
-
-    /**
-     * Sets the message for this page with an indication of what type of message
-     * it is.
-     * <p>
-     * The valid message types are one of <code>NONE</code>,
-     * <code>INFORMATION</code>,<code>WARNING</code>, or
-     * <code>ERROR</code>.
-     * </p>
-     * <p>
-     * Note that for backward compatibility, a message of type
-     * <code>ERROR</code> is different than an error message (set using
-     * <code>setErrorMessage</code>). An error message overrides the current
-     * message until the error message is cleared. This method replaces the
-     * current message and does not affect the error message.
-     * </p>
-     * 
-     * @param newMessage
-     *            the message, or <code>null</code> to clear the message
-     * @param newType
-     *            the message type
-     * @since 2.0
-     */
-    public void setMessage(String newMessage, int newType) {
-        message = newMessage;
-        messageType = newType;
-    }
-
-    /**
-     * The <code>DialogPage</code> implementation of this
-     * <code>IDialogPage</code> method remembers the title in an internal
-     * state variable. Subclasses may extend.
-     */
-    public void setTitle(String title) {
-        this.title = title;
-    }
-
-    /**
-     * The <code>DialogPage</code> implementation of this
-     * <code>IDialogPage</code> method sets the control to the given
-     * visibility state. Subclasses may extend.
-     */
-    public void setVisible(boolean visible) {
-        control.setVisible(visible);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
deleted file mode 100644
index 22ae5e6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogSettings.java
+++ /dev/null
@@ -1,563 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.Reader;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Concrete implementation of a dialog settings (<code>IDialogSettings</code>)
- * using a hash table and XML. The dialog store can be read
- * from and saved to a stream. All keys and values must be strings or array of
- * strings. Primitive types are converted to strings.
- * <p>
- * This class was not designed to be subclassed.
- *
- * Here is an example of using a DialogSettings:
- * </p>
- * <pre>
- * <code>
- * DialogSettings settings = new DialogSettings("root");
- * settings.put("Boolean1",true);
- * settings.put("Long1",100);
- * settings.put("Array1",new String[]{"aaaa1","bbbb1","cccc1"});
- * DialogSettings section = new DialogSettings("sectionName");
- * settings.addSection(section);
- * section.put("Int2",200);
- * section.put("Float2",1.1);
- * section.put("Array2",new String[]{"aaaa2","bbbb2","cccc2"});
- * settings.save("c:\\temp\\test\\dialog.xml");
- * </code>
- * </pre>
- * @noextend This class is not intended to be subclassed by clients.
- */
-
-public class DialogSettings implements IDialogSettings {
-    // The name of the DialogSettings.
-    private String name;
-
-    /* A Map of DialogSettings representing each sections in a DialogSettings.
-     It maps the DialogSettings' name to the DialogSettings */
-    private Map sections;
-
-    /* A Map with all the keys and values of this sections.
-     Either the keys an values are restricted to strings. */
-    private Map items;
-
-    // A Map with all the keys mapped to array of strings.
-    private Map arrayItems;
-
-    private static final String TAG_SECTION = "section";//$NON-NLS-1$
-
-    private static final String TAG_NAME = "name";//$NON-NLS-1$
-
-    private static final String TAG_KEY = "key";//$NON-NLS-1$
-
-    private static final String TAG_VALUE = "value";//$NON-NLS-1$
-
-    private static final String TAG_LIST = "list";//$NON-NLS-1$
-
-    private static final String TAG_ITEM = "item";//$NON-NLS-1$
-
-    /**
-     * Create an empty dialog settings which loads and saves its
-     * content to a file.
-     * Use the methods <code>load(String)</code> and <code>store(String)</code>
-     * to load and store this dialog settings.
-     *
-     * @param sectionName the name of the section in the settings.
-     */
-    public DialogSettings(String sectionName) {
-        name = sectionName;
-        items = new HashMap();
-        arrayItems = new HashMap();
-        sections = new HashMap();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public IDialogSettings addNewSection(String sectionName) {
-        DialogSettings section = new DialogSettings(sectionName);
-        addSection(section);
-        return section;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void addSection(IDialogSettings section) {
-        sections.put(section.getName(), section);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public String get(String key) {
-        return (String) items.get(key);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public String[] getArray(String key) {
-        return (String[]) arrayItems.get(key);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public boolean getBoolean(String key) {
-        return Boolean.valueOf((String) items.get(key)).booleanValue();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public double getDouble(String key) throws NumberFormatException {
-        String setting = (String) items.get(key);
-        if (setting == null) {
-			throw new NumberFormatException(
-                    "There is no setting associated with the key \"" + key + "\"");//$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-        return new Double(setting).doubleValue();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public float getFloat(String key) throws NumberFormatException {
-        String setting = (String) items.get(key);
-        if (setting == null) {
-			throw new NumberFormatException(
-                    "There is no setting associated with the key \"" + key + "\"");//$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-        return new Float(setting).floatValue();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public int getInt(String key) throws NumberFormatException {
-        String setting = (String) items.get(key);
-        if (setting == null) {
-            //new Integer(null) will throw a NumberFormatException and meet our spec, but this message
-            //is clearer.
-            throw new NumberFormatException(
-                    "There is no setting associated with the key \"" + key + "\"");//$NON-NLS-1$ //$NON-NLS-2$
-        }
-
-        return new Integer(setting).intValue();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public long getLong(String key) throws NumberFormatException {
-        String setting = (String) items.get(key);
-        if (setting == null) {
-            //new Long(null) will throw a NumberFormatException and meet our spec, but this message
-            //is clearer.
-            throw new NumberFormatException(
-                    "There is no setting associated with the key \"" + key + "\"");//$NON-NLS-1$ //$NON-NLS-2$
-        }
-
-        return new Long(setting).longValue();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public IDialogSettings getSection(String sectionName) {
-        return (IDialogSettings) sections.get(sectionName);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public IDialogSettings[] getSections() {
-        Collection values = sections.values();
-        DialogSettings[] result = new DialogSettings[values.size()];
-        values.toArray(result);
-        return result;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    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 {
-        FileInputStream stream = new FileInputStream(fileName);
-        BufferedReader reader = new BufferedReader(new InputStreamReader(
-                stream, "utf-8"));//$NON-NLS-1$
-        load(reader);
-        reader.close();
-    }
-
-    /* (non-Javadoc)
-     * Load the setting from the <code>document</code>
-     */
-    private void load(Document document, Element root) {
-        name = root.getAttribute(TAG_NAME);
-        NodeList l = root.getElementsByTagName(TAG_ITEM);
-        for (int i = 0; i < l.getLength(); i++) {
-            Node n = l.item(i);
-            if (root == n.getParentNode()) {
-                String key = ((Element) l.item(i)).getAttribute(TAG_KEY);
-                String value = ((Element) l.item(i)).getAttribute(TAG_VALUE);
-                items.put(key, value);
-            }
-        }
-        l = root.getElementsByTagName(TAG_LIST);
-        for (int i = 0; i < l.getLength(); i++) {
-            Node n = l.item(i);
-            if (root == n.getParentNode()) {
-                Element child = (Element) l.item(i);
-                String key = child.getAttribute(TAG_KEY);
-                NodeList list = child.getElementsByTagName(TAG_ITEM);
-                List valueList = new ArrayList();
-                for (int j = 0; j < list.getLength(); j++) {
-                    Element node = (Element) list.item(j);
-                    if (child == node.getParentNode()) {
-                        valueList.add(node.getAttribute(TAG_VALUE));
-                    }
-                }
-                String[] value = new String[valueList.size()];
-                valueList.toArray(value);
-                arrayItems.put(key, value);
-            }
-        }
-        l = root.getElementsByTagName(TAG_SECTION);
-        for (int i = 0; i < l.getLength(); i++) {
-            Node n = l.item(i);
-            if (root == n.getParentNode()) {
-                DialogSettings s = new DialogSettings("NoName");//$NON-NLS-1$
-                s.load(document, (Element) n);
-                addSection(s);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void put(String key, String[] value) {
-        arrayItems.put(key, value);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void put(String key, double value) {
-        put(key, String.valueOf(value));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void put(String key, float value) {
-        put(key, String.valueOf(value));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void put(String key, int value) {
-        put(key, String.valueOf(value));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void put(String key, long value) {
-        put(key, String.valueOf(value));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void put(String key, String value) {
-        items.put(key, value);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void put(String key, boolean value) {
-        put(key, String.valueOf(value));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-	public void save(Writer writer) {
-    	save(new XMLWriter(writer));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogSettings.
-     */
-    public void save(String fileName) throws IOException {
-        FileOutputStream stream = new FileOutputStream(fileName);
-        XMLWriter writer = new XMLWriter(stream);
-        save(writer);
-        writer.close();
-    }
-
-    /* (non-Javadoc)
-     * Save the settings in the <code>document</code>.
-     */
-    private void save(XMLWriter out) {
-    	HashMap attributes = new HashMap(2);
-    	attributes.put(TAG_NAME, name == null ? "" : name); //$NON-NLS-1$
-        out.startTag(TAG_SECTION, attributes);
-        attributes.clear();
-
-        for (Iterator i = items.keySet().iterator(); i.hasNext();) {
-            String key = (String) i.next();
-            attributes.put(TAG_KEY, key == null ? "" : key); //$NON-NLS-1$
-            String string = (String) items.get(key);
-            attributes.put(TAG_VALUE, string == null ? "" : string); //$NON-NLS-1$
-            out.printTag(TAG_ITEM, attributes, true);
-        }
-
-        attributes.clear();
-        for (Iterator i = arrayItems.keySet().iterator(); i.hasNext();) {
-            String key = (String) i.next();
-            attributes.put(TAG_KEY, key == null ? "" : key); //$NON-NLS-1$
-            out.startTag(TAG_LIST, attributes);
-            String[] value = (String[]) arrayItems.get(key);
-            attributes.clear();
-            if (value != null) {
-                for (int index = 0; index < value.length; index++) {
-                    String string = value[index];
-                    attributes.put(TAG_VALUE, string == null ? "" : string); //$NON-NLS-1$
-                    out.printTag(TAG_ITEM, attributes, true);
-                }
-            }
-            out.endTag(TAG_LIST);
-            attributes.clear();
-        }
-        for (Iterator i = sections.values().iterator(); i.hasNext();) {
-            ((DialogSettings) i.next()).save(out);
-        }
-        out.endTag(TAG_SECTION);
-    }
-    
-    /**
-     * A simple XML writer.  Using this instead of the javax.xml.transform classes allows
-     * compilation against JCL Foundation (bug 80059).
-     */
-    private static class XMLWriter extends PrintWriter {
-    	/** current number of tabs to use for ident */
-    	protected int tab;
-
-    	/** the xml header */
-    	protected static final String XML_VERSION = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; //$NON-NLS-1$
-
-    	/**
-    	 * Create a new XMLWriter
-    	 * @param output the stream to write the output to
-    	 * @throws UnsupportedEncodingException thrown if charset is not supported
-    	 */
-    	public XMLWriter(OutputStream output) throws UnsupportedEncodingException {
-    		super(new OutputStreamWriter(output, "UTF8")); //$NON-NLS-1$
-    		tab = 0;
-    		println(XML_VERSION);
-    	}
-
-    	/**
-    	 * Create a new XMLWriter
-    	 * @param output the write to used when writing to
-    	 */
-    	public XMLWriter(Writer output) {
-    		super(output);
-    		tab = 0;
-    		println(XML_VERSION);
-    	}
-
-    	/**
-    	 * write the intended end tag
-    	 * @param name the name of the tag to end
-    	 */
-    	public void endTag(String name) {
-    		tab--;
-    		printTag("/" + name, null, false); //$NON-NLS-1$
-    	}
-
-    	private void printTabulation() {
-    		for (int i = 0; i < tab; i++) {
-				super.print('\t');
-			}
-    	}
-
-    	/**
-    	 * write the tag to the stream and format it by itending it and add new line after the tag
-    	 * @param name the name of the tag
-    	 * @param parameters map of parameters
-    	 * @param close should the tag be ended automatically (=> empty tag)
-    	 */
-    	public void printTag(String name, HashMap parameters, boolean close) {
-    		printTag(name, parameters, true, true, close);
-    	}
-
-    	private void printTag(String name, HashMap parameters, boolean shouldTab, boolean newLine, boolean close) {
-    		StringBuffer sb = new StringBuffer();
-    		sb.append('<');
-    		sb.append(name);
-    		if (parameters != null) {
-				for (Enumeration e = Collections.enumeration(parameters.keySet()); e.hasMoreElements();) {
-    				sb.append(" "); //$NON-NLS-1$
-    				String key = (String) e.nextElement();
-    				sb.append(key);
-    				sb.append("=\""); //$NON-NLS-1$
-    				sb.append(getEscaped(String.valueOf(parameters.get(key))));
-    				sb.append("\""); //$NON-NLS-1$
-    			}
-			}
-    		if (close) {
-				sb.append('/');
-			}
-    		sb.append('>');
-    		if (shouldTab) {
-				printTabulation();
-			}
-    		if (newLine) {
-				println(sb.toString());
-			} else {
-				print(sb.toString());
-			}
-    	}
-
-    	/**
-    	 * start the tag
-    	 * @param name the name of the tag
-    	 * @param parameters map of parameters
-    	 */
-    	public void startTag(String name, HashMap parameters) {
-    		startTag(name, parameters, true);
-    		tab++;
-    	}
-
-    	private void startTag(String name, HashMap parameters, boolean newLine) {
-    		printTag(name, parameters, true, newLine, false);
-    	}
-
-    	private static void appendEscapedChar(StringBuffer buffer, char c) {
-    		String replacement = getReplacement(c);
-    		if (replacement != null) {
-    			buffer.append('&');
-    			buffer.append(replacement);
-    			buffer.append(';');
-    		} else {
-    			buffer.append(c);
-    		}
-    	}
-
-    	private static String getEscaped(String s) {
-    		StringBuffer result = new StringBuffer(s.length() + 10);
-    		for (int i = 0; i < s.length(); ++i) {
-				appendEscapedChar(result, s.charAt(i));
-			}
-    		return result.toString();
-    	}
-
-    	private static String getReplacement(char c) {
-    		// Encode special XML characters into the equivalent character references.
-    		// The first five are defined by default for all XML documents.
-    		// The next three (#xD, #xA, #x9) are encoded to avoid them
-			// being converted to spaces on deserialization
-    		switch (c) {
-    			case '<' :
-    				return "lt"; //$NON-NLS-1$
-    			case '>' :
-    				return "gt"; //$NON-NLS-1$
-    			case '"' :
-    				return "quot"; //$NON-NLS-1$
-    			case '\'' :
-    				return "apos"; //$NON-NLS-1$
-    			case '&' :
-    				return "amp"; //$NON-NLS-1$
-    			case '\r':
-					return "#x0D"; //$NON-NLS-1$
-				case '\n':
-					return "#x0A"; //$NON-NLS-1$
-				case '\u0009':
-					return "#x09"; //$NON-NLS-1$
-    		}
-    		return null;
-    	}
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogTray.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogTray.java
deleted file mode 100644
index 444ae1d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/DialogTray.java
+++ /dev/null
@@ -1,40 +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.jface.dialogs;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * <p>
- * This class is the abstract superclass of all dialog trays. A tray can be opened
- * in any <code>TrayDialog</code>.
- * </p>
- * 
- * @see org.eclipse.jface.dialogs.TrayDialog
- * @since 3.2
- */
-public abstract class DialogTray {
-
-	/**
-	 * Creates the contents (widgets) that will be contained in the tray.
-	 * <p>
-	 * Tray implementions must not set a layout on the parent composite, or assume
-	 * a particular layout on the parent. The tray dialog will allocate space
-	 * according to the natural size of the tray, and will fill the tray area with the
-	 * tray's contents.
-	 * </p>
-	 * 
-	 * @param parent the composite that will contain the tray
-	 * @return the contents of the tray, as a <code>Control</code>
-	 */
-	protected abstract Control createContents(Composite parent);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorDialog.java
deleted file mode 100644
index 32d1cda..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorDialog.java
+++ /dev/null
@@ -1,701 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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> - Fix for bug 19346 - Dialog font should
- * 			be activated and used by other components.
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog to display one or more errors to the user, as contained in an
- * <code>IStatus</code> object. If an error contains additional detailed
- * information then a Details button is automatically supplied, which shows or
- * hides an error details viewer when pressed by the user.
- * 
- * <p>
- * This dialog should be considered being a "local" way of error handling. It
- * cannot be changed or replaced by "global" error handling facility (
- * <code>org.eclipse.ui.statushandler.StatusManager</code>). If product defines
- * its own way of handling errors, this error dialog may cause UI inconsistency,
- * so until it is absolutely necessary, <code>StatusManager</code> should be
- * used.
- * </p>
- * 
- * @see org.eclipse.core.runtime.IStatus
- */
-public class ErrorDialog extends IconAndMessageDialog {
-	/**
-	 * Static to prevent opening of error dialogs for automated testing.
-	 */
-	public static boolean AUTOMATED_MODE = false;
-
-	/**
-	 * Reserve room for this many list items.
-	 */
-	private static final int LIST_ITEM_COUNT = 7;
-
-	/**
-	 * The nesting indent.
-	 */
-	private static final String NESTING_INDENT = "  "; //$NON-NLS-1$
-
-	/**
-	 * The Details button.
-	 */
-	private Button detailsButton;
-
-	/**
-	 * The title of the dialog.
-	 */
-	private String title;
-
-	/**
-	 * The SWT list control that displays the error details.
-	 */
-	private List list;
-
-	/**
-	 * Indicates whether the error details viewer is currently created.
-	 */
-	private boolean listCreated = false;
-
-	/**
-	 * Filter mask for determining which status items to display.
-	 */
-	private int displayMask = 0xFFFF;
-
-	/**
-	 * The main status object.
-	 */
-	private IStatus status;
-
-	/**
-	 * The current clipboard. To be disposed when closing the dialog.
-	 */
-	private Clipboard clipboard;
-
-	private boolean shouldIncludeTopLevelErrorInDetails = false;
-
-
-	/**
-	 * Creates an error dialog. Note that the dialog will have no visual
-	 * representation (no widgets) until it is told to open.
-	 * <p>
-	 * Normally one should use <code>openError</code> to create and open one
-	 * of these. This constructor is useful only if the error object being
-	 * displayed contains child items <it>and </it> you need to specify a mask
-	 * which will be used to filter the displaying of these children. The error
-	 * dialog will only be displayed if there is at least one child status
-	 * matching the mask.
-	 * </p>
-	 * 
-	 * @param parentShell
-	 *            the shell under which to create this dialog
-	 * @param dialogTitle
-	 *            the title to use for this dialog, or <code>null</code> to
-	 *            indicate that the default title should be used
-	 * @param message
-	 *            the message to show in this dialog, or <code>null</code> to
-	 *            indicate that the error's message should be shown as the
-	 *            primary message
-	 * @param status
-	 *            the error to show to the user
-	 * @param displayMask
-	 *            the mask to use to filter the displaying of child items, as
-	 *            per <code>IStatus.matches</code>
-	 * @see org.eclipse.core.runtime.IStatus#matches(int)
-	 */
-	public ErrorDialog(Shell parentShell, String dialogTitle, String message,
-			IStatus status, int displayMask) {
-		super(parentShell);
-		this.title = dialogTitle == null ? JFaceResources
-				.getString("Problem_Occurred") : //$NON-NLS-1$
-				dialogTitle;
-		this.message = message == null ? status.getMessage()
-				: JFaceResources
-						.format(
-								"Reason", new Object[] { message, status.getMessage() }); //$NON-NLS-1$
-		this.status = status;
-		this.displayMask = displayMask;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog. Handles the pressing of the Ok
-	 * or Details button in this dialog. If the Ok button was pressed then close
-	 * this dialog. If the Details button was pressed then toggle the displaying
-	 * of the error details area. Note that the Details button will only be
-	 * visible if the error being displayed specifies child details.
-	 */
-	protected void buttonPressed(int id) {
-		if (id == IDialogConstants.DETAILS_ID) {
-			// was the details button pressed?
-			toggleDetailsArea();
-		} else {
-			super.buttonPressed(id);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in Window.
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText(title);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		// create OK and Details buttons
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL,
-				true);
-		createDetailsButton(parent);
-	}
-
-	/**
-	 * Create the area for extra error support information.
-	 * 
-	 * @param parent
-	 */
-	private void createSupportArea(Composite parent) {
-
-		ErrorSupportProvider provider = Policy.getErrorSupportProvider();
-
-		if (provider == null)
-			return;
-
-		Composite supportArea = new Composite(parent, SWT.NONE);
-		provider.createSupportArea(supportArea, status);
-
-		GridData supportData = new GridData(SWT.FILL, SWT.FILL, true, true);
-		supportData.verticalSpan = 3;
-		supportArea.setLayoutData(supportData);
-		if (supportArea.getLayout() == null){
-			GridLayout layout = new GridLayout();
-			layout.marginWidth = 0;
-			layout.marginHeight = 0;
-			supportArea.setLayout(layout); // Give it a default layout if one isn't set
-		}
-
-
-	}
-
-	/**
-	 * Create the details button if it should be included.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @since 3.2
-	 */
-	protected void createDetailsButton(Composite parent) {
-		if (shouldShowDetailsButton()) {
-			detailsButton = createButton(parent, IDialogConstants.DETAILS_ID,
-					IDialogConstants.SHOW_DETAILS_LABEL, false);
-		}
-	}
-
-	/**
-	 * This implementation of the <code>Dialog</code> framework method creates
-	 * and lays out a composite. Subclasses that require a different dialog area
-	 * may either override this method, or call the <code>super</code>
-	 * implementation and add controls to the created composite.
-	 * 
-	 * Note:  Since 3.4, the created composite no longer grabs excess vertical space.
-	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=72489.
-	 * If the old behavior is desired by subclasses, get the returned composite's
-	 * layout data and set grabExcessVerticalSpace to true.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		// Create a composite with standard margins and spacing
-		// Add the messageArea to this composite so that as subclasses add widgets to the messageArea
-		// and dialogArea, the number of children of parent remains fixed and with consistent layout.
-		// Fixes bug #240135
-		Composite composite = new Composite(parent, SWT.NONE);
-		createMessageArea(composite);
-		createSupportArea(parent);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-		GridData childData = new GridData(GridData.FILL_BOTH);
-		childData.horizontalSpan = 2;
-		childData.grabExcessVerticalSpace = false;
-		composite.setLayoutData(childData);
-		composite.setFont(parent.getFont());
-
-		return composite;
-	}
-
-	/*
-	 * @see IconAndMessageDialog#createDialogAndButtonArea(Composite)
-	 */
-	protected void createDialogAndButtonArea(Composite parent) {
-		super.createDialogAndButtonArea(parent);
-		if (this.dialogArea instanceof Composite) {
-			// Create a label if there are no children to force a smaller layout
-			Composite dialogComposite = (Composite) dialogArea;
-			if (dialogComposite.getChildren().length == 0) {
-				new Label(dialogComposite, SWT.NULL);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getImage()
-	 */
-	protected Image getImage() {
-		if (status != null) {
-			if (status.getSeverity() == IStatus.WARNING) {
-				return getWarningImage();
-			}
-			if (status.getSeverity() == IStatus.INFO) {
-				return getInfoImage();
-			}
-		}
-		// If it was not a warning or an error then return the error image
-		return getErrorImage();
-	}
-
-	/**
-	 * Create this dialog's drop-down list component.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @return the drop-down list component
-	 */
-	protected List createDropDownList(Composite parent) {
-		// create the list
-		list = new List(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL
-				| SWT.MULTI);
-		// fill the list
-		populateList(list);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.GRAB_HORIZONTAL | GridData.VERTICAL_ALIGN_FILL
-				| GridData.GRAB_VERTICAL);
-		data.heightHint = list.getItemHeight() * LIST_ITEM_COUNT;
-		data.horizontalSpan = 2;
-		list.setLayoutData(data);
-		list.setFont(parent.getFont());
-		Menu copyMenu = new Menu(list);
-		MenuItem copyItem = new MenuItem(copyMenu, SWT.NONE);
-		copyItem.addSelectionListener(new SelectionListener() {
-			/*
-			 * @see SelectionListener.widgetSelected (SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				copyToClipboard();
-			}
-
-			/*
-			 * @see SelectionListener.widgetDefaultSelected(SelectionEvent)
-			 */
-			public void widgetDefaultSelected(SelectionEvent e) {
-				copyToClipboard();
-			}
-		});
-		copyItem.setText(JFaceResources.getString("copy")); //$NON-NLS-1$
-		list.setMenu(copyMenu);
-		listCreated = true;
-		return list;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Window.
-	 */
-	/**
-	 * Extends <code>Window.open()</code>. Opens an error dialog to display
-	 * the error. If you specified a mask to filter the displaying of these
-	 * children, the error dialog will only be displayed if there is at least
-	 * one child status matching the mask.
-	 */
-	public int open() {
-		if (!AUTOMATED_MODE && shouldDisplay(status, displayMask)) {
-			return super.open();
-		}
-		setReturnCode(OK);
-		return OK;
-	}
-
-	/**
-	 * Opens an error dialog to display the given error. Use this method if the
-	 * error object being displayed does not contain child items, or if you wish
-	 * to display all such items without filtering.
-	 * 
-	 * @param parent
-	 *            the parent shell of the dialog, or <code>null</code> if none
-	 * @param dialogTitle
-	 *            the title to use for this dialog, or <code>null</code> to
-	 *            indicate that the default title should be used
-	 * @param message
-	 *            the message to show in this dialog, or <code>null</code> to
-	 *            indicate that the error's message should be shown as the
-	 *            primary message
-	 * @param status
-	 *            the error to show to the user
-	 * @return the code of the button that was pressed that resulted in this
-	 *         dialog closing. This will be <code>Dialog.OK</code> if the OK
-	 *         button was pressed, or <code>Dialog.CANCEL</code> if this
-	 *         dialog's close window decoration or the ESC key was used.
-	 */
-	public static int openError(Shell parent, String dialogTitle,
-			String message, IStatus status) {
-		return openError(parent, dialogTitle, message, status, IStatus.OK
-				| IStatus.INFO | IStatus.WARNING | IStatus.ERROR);
-	}
-
-	/**
-	 * Opens an error dialog to display the given error. Use this method if the
-	 * error object being displayed contains child items <it>and </it> you wish
-	 * to specify a mask which will be used to filter the displaying of these
-	 * children. The error dialog will only be displayed if there is at least
-	 * one child status matching the mask.
-	 * 
-	 * @param parentShell
-	 *            the parent shell of the dialog, or <code>null</code> if none
-	 * @param title
-	 *            the title to use for this dialog, or <code>null</code> to
-	 *            indicate that the default title should be used
-	 * @param message
-	 *            the message to show in this dialog, or <code>null</code> to
-	 *            indicate that the error's message should be shown as the
-	 *            primary message
-	 * @param status
-	 *            the error to show to the user
-	 * @param displayMask
-	 *            the mask to use to filter the displaying of child items, as
-	 *            per <code>IStatus.matches</code>
-	 * @return the code of the button that was pressed that resulted in this
-	 *         dialog closing. This will be <code>Dialog.OK</code> if the OK
-	 *         button was pressed, or <code>Dialog.CANCEL</code> if this
-	 *         dialog's close window decoration or the ESC key was used.
-	 * @see org.eclipse.core.runtime.IStatus#matches(int)
-	 */
-	public static int openError(Shell parentShell, String title,
-			String message, IStatus status, int displayMask) {
-		ErrorDialog dialog = new ErrorDialog(parentShell, title, message,
-				status, displayMask);
-		return dialog.open();
-	}
-
-	/**
-	 * Populates the list using this error dialog's status object. This walks
-	 * the child static of the status object and displays them in a list. The
-	 * format for each entry is status_path : status_message If the status's
-	 * path was null then it (and the colon) are omitted.
-	 * 
-	 * @param listToPopulate
-	 *            The list to fill.
-	 */
-	private void populateList(List listToPopulate) {
-		populateList(listToPopulate, status, 0,
-				shouldIncludeTopLevelErrorInDetails);
-	}
-
-	/**
-	 * Populate the list with the messages from the given status. Traverse the
-	 * children of the status deeply and also traverse CoreExceptions that
-	 * appear in the status.
-	 * 
-	 * @param listToPopulate
-	 *            the list to populate
-	 * @param buildingStatus
-	 *            the status being displayed
-	 * @param nesting
-	 *            the nesting level (increases one level for each level of
-	 *            children)
-	 * @param includeStatus
-	 *            whether to include the buildingStatus in the display or just
-	 *            its children
-	 */
-	private void populateList(List listToPopulate, IStatus buildingStatus,
-			int nesting, boolean includeStatus) {
-
-		if (!buildingStatus.matches(displayMask)) {
-			return;
-		}
-
-		Throwable t = buildingStatus.getException();
-		boolean isCoreException = t instanceof CoreException;
-		boolean incrementNesting = false;
-
-		if (includeStatus) {
-			StringBuffer sb = new StringBuffer();
-			for (int i = 0; i < nesting; i++) {
-				sb.append(NESTING_INDENT);
-			}
-			String message = buildingStatus.getMessage();
-			sb.append(message);
-			listToPopulate.add(sb.toString());
-			incrementNesting = true;
-		}
-
-		if (!isCoreException && t != null) {
-			// Include low-level exception message
-			StringBuffer sb = new StringBuffer();
-			for (int i = 0; i < nesting; i++) {
-				sb.append(NESTING_INDENT);
-			}
-			String message = t.getLocalizedMessage();
-			if (message == null) {
-				message = t.toString();
-			}
-
-			sb.append(message);
-			listToPopulate.add(sb.toString());
-			incrementNesting = true;
-		}
-
-		if (incrementNesting) {
-			nesting++;
-		}
-
-		// Look for a nested core exception
-		if (isCoreException) {
-			CoreException ce = (CoreException) t;
-			IStatus eStatus = ce.getStatus();
-			// Only print the exception message if it is not contained in the
-			// parent message
-			if (message == null || message.indexOf(eStatus.getMessage()) == -1) {
-				populateList(listToPopulate, eStatus, nesting, true);
-			}
-		}
-
-		// Look for child status
-		IStatus[] children = buildingStatus.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			populateList(listToPopulate, children[i], nesting, true);
-		}
-	}
-
-	/**
-	 * Returns whether the given status object should be displayed.
-	 * 
-	 * @param status
-	 *            a status object
-	 * @param mask
-	 *            a mask as per <code>IStatus.matches</code>
-	 * @return <code>true</code> if the given status should be displayed, and
-	 *         <code>false</code> otherwise
-	 * @see org.eclipse.core.runtime.IStatus#matches(int)
-	 */
-	protected static boolean shouldDisplay(IStatus status, int mask) {
-		IStatus[] children = status.getChildren();
-		if (children == null || children.length == 0) {
-			return status.matches(mask);
-		}
-		for (int i = 0; i < children.length; i++) {
-			if (children[i].matches(mask)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Toggles the unfolding of the details area. This is triggered by the user
-	 * pressing the details button.
-	 */
-	private void toggleDetailsArea() {
-		Point windowSize = getShell().getSize();
-		Point oldSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		if (listCreated) {
-			list.dispose();
-			listCreated = false;
-			detailsButton.setText(IDialogConstants.SHOW_DETAILS_LABEL);
-		} else {
-			list = createDropDownList((Composite) getContents());
-			detailsButton.setText(IDialogConstants.HIDE_DETAILS_LABEL);
-			getContents().getShell().layout();
-		}
-		Point newSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		getShell()
-				.setSize(
-						new Point(windowSize.x, windowSize.y
-								+ (newSize.y - oldSize.y)));
-	}
-
-	/**
-	 * Put the details of the status of the error onto the stream.
-	 * 
-	 * @param buildingStatus
-	 * @param buffer
-	 * @param nesting
-	 */
-	private void populateCopyBuffer(IStatus buildingStatus,
-			StringBuffer buffer, int nesting) {
-		if (!buildingStatus.matches(displayMask)) {
-			return;
-		}
-		for (int i = 0; i < nesting; i++) {
-			buffer.append(NESTING_INDENT);
-		}
-		buffer.append(buildingStatus.getMessage());
-		buffer.append("\n"); //$NON-NLS-1$
-
-		// Look for a nested core exception
-		Throwable t = buildingStatus.getException();
-		if (t instanceof CoreException) {
-			CoreException ce = (CoreException) t;
-			populateCopyBuffer(ce.getStatus(), buffer, nesting + 1);
-		} else if (t != null) {
-			// Include low-level exception message
-			for (int i = 0; i < nesting; i++) {
-				buffer.append(NESTING_INDENT);
-			}
-			String message = t.getLocalizedMessage();
-			if (message == null) {
-				message = t.toString();
-			}
-			buffer.append(message);
-			buffer.append("\n"); //$NON-NLS-1$
-		}
-
-		IStatus[] children = buildingStatus.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			populateCopyBuffer(children[i], buffer, nesting + 1);
-		}
-	}
-
-	/**
-	 * Copy the contents of the statuses to the clipboard.
-	 */
-	private void copyToClipboard() {
-		if (clipboard != null) {
-			clipboard.dispose();
-		}
-		StringBuffer statusBuffer = new StringBuffer();
-		populateCopyBuffer(status, statusBuffer, 0);
-		clipboard = new Clipboard(list.getDisplay());
-		clipboard.setContents(new Object[] { statusBuffer.toString() },
-				new Transfer[] { TextTransfer.getInstance() });
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		if (clipboard != null) {
-			clipboard.dispose();
-		}
-		return super.close();
-	}
-
-	/**
-	 * Show the details portion of the dialog if it is not already visible. This
-	 * method will only work when it is invoked after the control of the dialog
-	 * has been set. In other words, after the <code>createContents</code>
-	 * method has been invoked and has returned the control for the content area
-	 * of the dialog. Invoking the method before the content area has been set
-	 * or after the dialog has been disposed will have no effect.
-	 * 
-	 * @since 3.1
-	 */
-	protected final void showDetailsArea() {
-		if (!listCreated) {
-			Control control = getContents();
-			if (control != null && !control.isDisposed()) {
-				toggleDetailsArea();
-			}
-		}
-	}
-
-	/**
-	 * Return whether the Details button should be included. This method is
-	 * invoked once when the dialog is built. By default, the Details button is
-	 * only included if the status used when creating the dialog was a
-	 * multi-status or if the status contains an exception. Subclasses may
-	 * override.
-	 * 
-	 * @return whether the Details button should be included
-	 * @since 3.1
-	 */
-	protected boolean shouldShowDetailsButton() {
-		return status.isMultiStatus() || status.getException() != null;
-	}
-
-	/**
-	 * Set the status displayed by this error dialog to the given status. This
-	 * only affects the status displayed by the Details list. The message, image
-	 * and title should be updated by the subclass, if desired.
-	 * 
-	 * @param status
-	 *            the status to be displayed in the details list
-	 * @since 3.1
-	 */
-	protected final void setStatus(IStatus status) {
-		if (this.status != status) {
-			this.status = status;
-		}
-		shouldIncludeTopLevelErrorInDetails = true;
-		if (listCreated) {
-			repopulateList();
-		}
-	}
-
-	/**
-	 * Repopulate the supplied list widget.
-	 */
-	private void repopulateList() {
-		if (list != null && !list.isDisposed()) {
-			list.removeAll();
-			populateList(list);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getColumnCount()
-	 */
-	int getColumnCount() {
-		if (Policy.getErrorSupportProvider() == null)
-			return 2;
-		return 3;
-	}
-	
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-     */
-    protected boolean isResizable() {
-    	return true;
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorSupportProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorSupportProvider.java
deleted file mode 100644
index 9293ac9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ErrorSupportProvider.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A ErrorSupportProvider defines the area to be shown in an error dialog for extra support information.
- * @since 3.3
- *
- */
-public abstract class ErrorSupportProvider {
-	
-	
-		/**
-		 * Create an area for adding support components as a child of parent.
-		 * @param parent The parent {@link Composite}
-		 * @param status The {@link IStatus} that is being displayed.
-		 * @return Control
-		 */
-		public abstract Control createSupportArea(Composite parent, IStatus status);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogBlockedHandler.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogBlockedHandler.java
deleted file mode 100644
index 5affefc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogBlockedHandler.java
+++ /dev/null
@@ -1,70 +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.jface.dialogs;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * The IDialogBlockedHandler is the handler used by
- * JFace to provide extra information when a
- * blocking has occured. There is one static instance
- * of this class used by WizardDialog and ModalContext.
- * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#clearBlocked()
- * @see  org.eclipse.core.runtime.IProgressMonitorWithBlocking#setBlocked(IStatus)
- * @see WizardDialog
- * @since 3.0
- */
-public interface IDialogBlockedHandler {
-    /**
-     * The blockage has been cleared. Clear the
-     * extra information and resume.
-     */
-    public void clearBlocked();
-
-    /**
-     * A blockage has occured. Show the blockage and 
-     * forward any actions to blockingMonitor. 
-     * <b>NOTE:</b> This will open any blocked notification immediately
-     * even if there is a modal shell open.
-     * 
-     * @param parentShell The shell this is being sent from. If the parent
-     * shell is <code>null</code> the behavior will be the same as
-     * IDialogBlockedHandler#showBlocked(IProgressMonitor, IStatus, String)
-     * 
-     * @param blocking The monitor to forward to. This is most
-     * important for calls to <code>cancel()</code>.
-     * @param blockingStatus The status that describes the blockage
-     * @param blockedName The name of the locked operation.
-     * @see IDialogBlockedHandler#showBlocked(IProgressMonitor, IStatus, String)
-     */
-    public void showBlocked(Shell parentShell, IProgressMonitor blocking,
-            IStatus blockingStatus, String blockedName);
-
-    /**
-     * A blockage has occured. Show the blockage when there is 
-     * no longer any modal shells in the UI and forward any actions 
-     * to blockingMonitor. 
-     * 
-     * <b>NOTE:</b> As no shell has been specified this method will
-     * not open any blocked notification until all other modal shells
-     * have been closed.
-     * 
-     * @param blocking The monitor to forward to. This is most
-     * important for calls to <code>cancel()</code>.
-     * @param blockingStatus The status that describes the blockage
-     * @param blockedName The name of the locked operation.
-     */
-    public void showBlocked(IProgressMonitor blocking, IStatus blockingStatus,
-            String blockedName);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogConstants.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogConstants.java
deleted file mode 100644
index 883a4c2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogConstants.java
+++ /dev/null
@@ -1,340 +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.jface.dialogs;
-
-/**
- * Various dialog-related constants.
- * <p>
- * Within the dialog framework, all buttons are referred to by a button id.
- * Various common buttons, like "OK", "Cancel", and "Finish", have pre-assigned
- * button ids for convenience. If an application requires other dialog buttons,
- * they should be assigned application-specific button ids counting up from
- * <code>CLIENT_ID</code>.
- * </p>
- * <p>
- * Button label constants are also provided for the common buttons. JFace
- * automatically localizes these strings to the current locale; that is,
- * <code>YES_LABEL</code> would be bound to the string <code>"Si"</code> in
- * a Spanish locale, but to <code>"Oui"</code> in a French one.
- * </p>
- * <p>
- * All margins, spacings, and sizes are given in "dialog units" (DLUs), where
- * <ul>
- * <li>1 horizontal DLU = 1/4 average character width</li>
- * <li>1 vertical DLU = 1/8 average character height</li>
- * </ul>
- * </p>
- */
-import org.eclipse.jface.resource.JFaceResources;
-
-/**
- * IDialogConstants is the interface for common dialog strings and ids
- * used throughout JFace.
- * It is recommended that you use these labels and ids whereever 
- * for consistency with the JFace dialogs.
- */
-public interface IDialogConstants {
-    // button ids
-	
-	// Note:  if new button ids are added, see 
-	// MessageDialogWithToggle.mapButtonLabelToButtonID(String, int)
-    /**
-     * Button id for an "Ok" button (value 0).
-     */
-    public int OK_ID = 0;
-
-    /**
-     * Button id for a "Cancel" button (value 1).
-     */
-    public int CANCEL_ID = 1;
-
-    /**
-     * Button id for a "Yes" button (value 2).
-     */
-    public int YES_ID = 2;
-
-    /**
-     * Button id for a "No" button (value 3).
-     */
-    public int NO_ID = 3;
-
-    /**
-     * Button id for a "Yes to All" button (value 4).
-     */
-    public int YES_TO_ALL_ID = 4;
-
-    /**
-     * Button id for a "Skip" button (value 5).
-     */
-    public int SKIP_ID = 5;
-
-    /**
-     * Button id for a "Stop" button (value 6).
-     */
-    public int STOP_ID = 6;
-
-    /**
-     * Button id for an "Abort" button (value 7).
-     */
-    public int ABORT_ID = 7;
-
-    /**
-     * Button id for a "Retry" button (value 8).
-     */
-    public int RETRY_ID = 8;
-
-    /**
-     * Button id for an "Ignore" button (value 9).
-     */
-    public int IGNORE_ID = 9;
-
-    /**
-     * Button id for a "Proceed" button (value 10).
-     */
-    public int PROCEED_ID = 10;
-
-    /**
-     * Button id for an "Open" button (value 11).
-     */
-    public int OPEN_ID = 11;
-
-    /**
-     * Button id for a "Close" button (value 12).
-     */
-    public int CLOSE_ID = 12;
-
-    /**
-     * Button id for a "Details" button (value 13).
-     */
-    public int DETAILS_ID = 13;
-
-    /**
-     * Button id for a "Back" button (value 14).
-     */
-    public int BACK_ID = 14;
-
-    /**
-     * Button id for a "Next" button (value 15).
-     */
-    public int NEXT_ID = 15;
-
-    /**
-     * Button id for a "Finish" button (value 16).
-     */
-    public int FINISH_ID = 16;
-
-    /**
-     * Button id for a "Help" button (value 17).
-     */
-    public int HELP_ID = 17;
-
-    /**
-     * Button id for a "Select All" button (value 18).
-     */
-    public int SELECT_ALL_ID = 18;
-
-    /**
-     * Button id for a "Deselect All" button (value 19).
-     */
-    public int DESELECT_ALL_ID = 19;
-
-    /**
-     * Button id for a "Select types" button (value 20).
-     */
-    public int SELECT_TYPES_ID = 20;
-
-    /**
-     * Button id for a "No to All" button (value 21).
-     */
-    public int NO_TO_ALL_ID = 21;
-
-    /**
-     * Starting button id reserved for internal use by JFace (value 256). JFace
-     * classes make ids by adding to this number.
-     */
-    public int INTERNAL_ID = 256;
-
-    /**
-     * Starting button id reserved for use by clients of JFace (value 1024).
-     * Clients of JFace should make ids by adding to this number.
-     */
-    public int CLIENT_ID = 1024;
-
-    // button labels
-    /**
-     * The label for OK buttons.
-     */
-    public String OK_LABEL = JFaceResources.getString("ok"); //$NON-NLS-1$
-
-    /**
-     * The label for cancel buttons.
-     */
-    public String CANCEL_LABEL = JFaceResources.getString("cancel"); //$NON-NLS-1$
-
-    /**
-     * The label for yes buttons.
-     */
-    public String YES_LABEL = JFaceResources.getString("yes"); //$NON-NLS-1$
-
-    /**
-     * The label for no buttons.
-     */
-    public String NO_LABEL = JFaceResources.getString("no"); //$NON-NLS-1$
-
-    /**
-     * The label for not to all buttons.
-     */
-    public String NO_TO_ALL_LABEL = JFaceResources.getString("notoall"); //$NON-NLS-1$
-
-    /**
-     * The label for yes to all buttons.
-     */
-    public String YES_TO_ALL_LABEL = JFaceResources.getString("yestoall"); //$NON-NLS-1$
-
-    /**
-     * The label for skip buttons.
-     */
-    public String SKIP_LABEL = JFaceResources.getString("skip"); //$NON-NLS-1$
-
-    /**
-     * The label for stop buttons.
-     */
-    public String STOP_LABEL = JFaceResources.getString("stop"); //$NON-NLS-1$
-
-    /**
-     * The label for abort buttons.
-     */
-    public String ABORT_LABEL = JFaceResources.getString("abort"); //$NON-NLS-1$
-
-    /**
-     * The label for retry buttons.
-     */
-    public String RETRY_LABEL = JFaceResources.getString("retry"); //$NON-NLS-1$
-
-    /**
-     * The label for ignore buttons.
-     */
-    public String IGNORE_LABEL = JFaceResources.getString("ignore"); //$NON-NLS-1$
-
-    /**
-     * The label for proceed buttons.
-     */
-    public String PROCEED_LABEL = JFaceResources.getString("proceed"); //$NON-NLS-1$
-
-    /**
-     * The label for open buttons.
-     */
-    public String OPEN_LABEL = JFaceResources.getString("open"); //$NON-NLS-1$
-
-    /**
-     * The label for close buttons.
-     */
-    public String CLOSE_LABEL = JFaceResources.getString("close"); //$NON-NLS-1$
-
-    /**
-     * The label for show details buttons.
-     */
-    public String SHOW_DETAILS_LABEL = JFaceResources.getString("showDetails"); //$NON-NLS-1$
-
-    /**
-     * The label for hide details buttons.
-     */
-    public String HIDE_DETAILS_LABEL = JFaceResources.getString("hideDetails"); //$NON-NLS-1$
-
-    /**
-     * The label for back buttons.
-     */
-    public String BACK_LABEL = JFaceResources.getString("backButton"); //$NON-NLS-1$
-
-    /**
-     * The label for next buttons.
-     */
-    public String NEXT_LABEL = JFaceResources.getString("nextButton"); //$NON-NLS-1$
-
-    /**
-     * The label for finish buttons.
-     */
-    public String FINISH_LABEL = JFaceResources.getString("finish"); //$NON-NLS-1$
-
-    /**
-     * The label for help buttons.
-     */
-    public String HELP_LABEL = JFaceResources.getString("help"); //$NON-NLS-1$
-
-    // Margins, spacings, and sizes
-    /**
-     * Vertical margin in dialog units (value 7).
-     */
-    public int VERTICAL_MARGIN = 7;
-
-    /**
-     * Vertical spacing in dialog units (value 4).
-     */
-    public int VERTICAL_SPACING = 4;
-
-    /**
-     * Horizontal margin in dialog units (value 7).
-     */
-    public int HORIZONTAL_MARGIN = 7;
-
-    /**
-     * Horizontal spacing in dialog units (value 4).
-     */
-    public int HORIZONTAL_SPACING = 4;
-
-    /**
-     * Height of button bar in dialog units (value 25).
-     */
-    public int BUTTON_BAR_HEIGHT = 25;
-
-    /**
-     * Left margin in dialog units (value 20).
-     */
-    public int LEFT_MARGIN = 20;
-
-    /**
-     * Button margin in dialog units (value 4).
-     */
-    public int BUTTON_MARGIN = 4;
-
-    /**
-     * Button height in dialog units (value 14).
-     * 
-     * @deprecated This constant is no longer in use.
-     * The button heights are now determined by the layout.
-     */
-    public int BUTTON_HEIGHT = 14;
-
-    /**
-     * Button width in dialog units (value 61).
-     */
-    public int BUTTON_WIDTH = 61;
-
-    /**
-     * Indent in dialog units (value 21).
-     */
-    public int INDENT = 21;
-
-    /**
-     * Small indent in dialog units (value 7).
-     */
-    public int SMALL_INDENT = 7;
-
-    /**
-     * Entry field width in dialog units (value 200).
-     */
-    public int ENTRY_FIELD_WIDTH = 200;
-
-    /**
-     * Minimum width of message area in dialog units (value 300).
-     */
-    public int MINIMUM_MESSAGE_AREA_WIDTH = 300;
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogPage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogPage.java
deleted file mode 100644
index 19f73b4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogPage.java
+++ /dev/null
@@ -1,136 +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.jface.dialogs;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Interface for a page in a multi-page dialog.
- */
-public interface IDialogPage {
-    /**
-     * Creates the top level control for this dialog
-     * page under the given parent composite.
-     * <p>
-     * Implementors are responsible for ensuring that
-     * the created control can be accessed via <code>getControl</code>
-     * </p>
-     *
-     * @param parent the parent composite
-     */
-    public void createControl(Composite parent);
-
-    /**
-     * Disposes the SWT resources allocated by this
-     * dialog page.
-     */
-    public void dispose();
-
-    /**
-     * Returns the top level control for this dialog page.
-     * <p>
-     * May return <code>null</code> if the control
-     * has not been created yet.
-     * </p>
-     *
-     * @return the top level control or <code>null</code>
-     */
-    public Control getControl();
-
-    /**
-     * Returns this dialog page's description text.
-     *
-     * @return the description text for this dialog page, 
-     *  or <code>null</code> if none
-     */
-    public String getDescription();
-
-    /**
-     * Returns the current error message for this dialog page.
-     * May be <code>null</code> to indicate no error message.
-     * <p>
-     * An error message should describe some error state,
-     * as opposed to a message which may simply provide instruction
-     * or information to the user.
-     * </p>
-     * 
-     * @return the error message, or <code>null</code> if none
-     */
-    public String getErrorMessage();
-
-    /**
-     * Returns this dialog page's image.
-     *
-     * @return the image for this dialog page, or <code>null</code>
-     *  if none
-     */
-    public Image getImage();
-
-    /**
-     * Returns the current message for this wizard page.
-     * <p>
-     * A message provides instruction or information to the 
-     * user, as opposed to an error message which should 
-     * describe some error state.
-     * </p>
-     * 
-     * @return the message, or <code>null</code> if none
-     */
-    public String getMessage();
-
-    /**
-     * Returns this dialog page's title.
-     *
-     * @return the title of this dialog page, 
-     *  or <code>null</code> if none
-     */
-    public String getTitle();
-
-    /**
-     * Notifies that help has been requested for this dialog page.
-     */
-    public void performHelp();
-
-    /**
-     * Sets this dialog page's description text.
-     * 
-     * @param description the description text for this dialog
-     *  page, or <code>null</code> if none
-     */
-    public void setDescription(String description);
-
-    /**
-     * Sets this dialog page's image.
-     *
-     * @param image the image for this dialog page, 
-     *  or <code>null</code> if none
-     */
-    public void setImageDescriptor(ImageDescriptor image);
-
-    /**
-     * Set this dialog page's title.
-     *
-     * @param title the title of this dialog page, 
-     *  or <code>null</code> if none
-     */
-    public void setTitle(String title);
-
-    /**
-     * Sets the visibility of this dialog page.
-     *
-     * @param visible <code>true</code> to make this page visible,
-     *  and <code>false</code> to hide it
-     */
-    public void setVisible(boolean visible);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogSettings.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogSettings.java
deleted file mode 100644
index 70933ea..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IDialogSettings.java
+++ /dev/null
@@ -1,266 +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.jface.dialogs;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Writer;
-
-/**
- * An interface to a storage mechanism for making dialog settings persistent.
- * The store manages a collection of key/value pairs. The keys must be strings
- * and the values can be either, strings or array of strings. Convenience API to
- * convert primitive types to strings is provided.
- */
-public interface IDialogSettings {
-    /**
-     * Create a new section in the receiver and return it.
-     * 
-     * @param name
-     *            the name of the new section
-     * @return the new section
-     */
-    public IDialogSettings addNewSection(String name);
-
-    /**
-     * Add a section in the receiver.
-     * 
-     * @param section
-     *            the section to be added
-     */
-    public void addSection(IDialogSettings section);
-
-    /**
-     * Returns the value of the given key in this dialog settings.
-     * 
-     * @param key
-     *            the key
-     * @return the value, or <code>null</code> if none
-     */
-    public String get(String key);
-
-    /**
-     * Returns the value, an array of strings, of the given key in this dialog
-     * settings.
-     * 
-     * @param key
-     *            the key
-     * @return the array of string, or <code>null</code> if none
-     */
-    public String[] getArray(String key);
-
-    /**
-     * Convenience API. Convert the value of the given key in this dialog
-     * settings to a boolean and return it.
-     * 
-     * @param key
-     *            the key
-     * @return the boolean value, or <code>false</code> if none
-     */
-    public boolean getBoolean(String key);
-
-    /**
-     * Convenience API. Convert the value of the given key in this dialog
-     * settings to a double and return it.
-     * 
-     * @param key
-     *            the key
-     * @return the value coverted to double, or throws
-     *         <code>NumberFormatException</code> if none
-     * 
-     * @exception NumberFormatException
-     *                if the string value does not contain a parsable number.
-     * @see java.lang.Double#valueOf(java.lang.String)
-     */
-    public double getDouble(String key) throws NumberFormatException;
-
-    /**
-     * Convenience API. Convert the value of the given key in this dialog
-     * settings to a float and return it.
-     * 
-     * @param key
-     *            the key
-     * @return the value coverted to float, or throws
-     *         <code>NumberFormatException</code> if none
-     * 
-     * @exception NumberFormatException
-     *                if the string value does not contain a parsable number.
-     * @see java.lang.Float#valueOf(java.lang.String)
-     */
-    public float getFloat(String key) throws NumberFormatException;
-
-    /**
-     * Convenience API. Convert the value of the given key in this dialog
-     * settings to a int and return it.
-     * 
-     * @param key
-     *            the key
-     * @return the value coverted to int, or throws
-     *         <code>NumberFormatException</code> if none
-     * 
-     * @exception NumberFormatException
-     *                if the string value does not contain a parsable number.
-     * @see java.lang.Integer#valueOf(java.lang.String)
-     */
-    public int getInt(String key) throws NumberFormatException;
-
-    /**
-     * Convenience API. Convert the value of the given key in this dialog
-     * settings to a long and return it.
-     * 
-     * @param key
-     *            the key
-     * @return the value coverted to long, or throws
-     *         <code>NumberFormatException</code> if none
-     * 
-     * @exception NumberFormatException
-     *                if the string value does not contain a parsable number.
-     * @see java.lang.Long#valueOf(java.lang.String)
-     */
-    public long getLong(String key) throws NumberFormatException;
-
-    /**
-     * Returns the IDialogSettings name.
-     * 
-     * @return the name
-     */
-    public String getName();
-
-    /**
-     * Returns the section with the given name in this dialog settings.
-     * 
-     * @param sectionName
-     *            the key
-     * @return IDialogSettings (the section), or <code>null</code> if none
-     */
-    public IDialogSettings getSection(String sectionName);
-
-    /**
-     * Returns all the sections in this dialog settings.
-     * 
-     * @return the section, or <code>null</code> if none
-     */
-    public IDialogSettings[] getSections();
-
-    /**
-     * Load a dialog settings from a stream and fill the receiver with its
-     * content.
-     * 
-     * @param reader
-     *            a Reader specifying the stream where the settings are read
-     *            from.
-     * @throws IOException
-     */
-    public void load(Reader reader) throws IOException;
-
-    /**
-     * Load a dialog settings from a file and fill the receiver with its
-     * content.
-     * 
-     * @param fileName
-     *            the name of the file the settings are read from.
-     * @throws IOException
-     */
-    public void load(String fileName) throws IOException;
-
-    /**
-     * Adds the pair <code>key/value</code> to this dialog settings.
-     * 
-     * @param key
-     *            the key.
-     * @param value
-     *            the value to be associated with the <code>key</code>
-     */
-    public void put(String key, String[] value);
-
-    /**
-     * Convenience API. Converts the double <code>value</code> to a string and
-     * adds the pair <code>key/value</code> to this dialog settings.
-     * 
-     * @param key
-     *            the key.
-     * @param value
-     *            the value to be associated with the <code>key</code>
-     */
-    public void put(String key, double value);
-
-    /**
-     * Convenience API. Converts the float <code>value</code> to a string and
-     * adds the pair <code>key/value</code> to this dialog settings.
-     * 
-     * @param key
-     *            the key.
-     * @param value
-     *            the value to be associated with the <code>key</code>
-     */
-    public void put(String key, float value);
-
-    /**
-     * Convenience API. Converts the int <code>value</code> to a string and
-     * adds the pair <code>key/value</code> to this dialog settings.
-     * 
-     * @param key
-     *            the key.
-     * @param value
-     *            the value to be associated with the <code>key</code>
-     */
-    public void put(String key, int value);
-
-    /**
-     * Convenience API. Converts the long <code>value</code> to a string and
-     * adds the pair <code>key/value</code> to this dialog settings.
-     * 
-     * @param key
-     *            the key.
-     * @param value
-     *            the value to be associated with the <code>key</code>
-     */
-    public void put(String key, long value);
-
-    /**
-     * Adds the pair <code>key/value</code> to this dialog settings.
-     * 
-     * @param key
-     *            the key.
-     * @param value
-     *            the value to be associated with the <code>key</code>
-     */
-    public void put(String key, String value);
-
-    /**
-     * Convenience API. Converts the boolean <code>value</code> to a string
-     * and adds the pair <code>key/value</code> to this dialog settings.
-     * 
-     * @param key
-     *            the key.
-     * @param value
-     *            the value to be associated with the <code>key</code>
-     */
-    public void put(String key, boolean value);
-
-    /**
-     * Save a dialog settings to a stream
-     * 
-     * @param writer
-     *            a Writer specifying the stream the settings are written in.
-     * @throws IOException
-     */
-    public void save(Writer writer) throws IOException;
-
-    /**
-     * Save a dialog settings to a file.
-     * 
-     * @param fileName
-     *            the name of the file the settings are written in.
-     * @throws IOException
-     */
-    public void save(String fileName) throws IOException;
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IInputValidator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IInputValidator.java
deleted file mode 100644
index f87abae..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IInputValidator.java
+++ /dev/null
@@ -1,30 +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.jface.dialogs;
-
-/**
- * The IInputValidator is the interface for simple validators. 
- * @see org.eclipse.jface.dialogs.InputDialog
- */
-public interface IInputValidator {
-    /**
-     * Validates the given string.  Returns an error message to display
-     * if the new text is invalid.  Returns <code>null</code> if there
-     * is no error.  Note that the empty string is not treated the same
-     * as <code>null</code>; it indicates an error state but with no message
-     * to display.
-     * 
-     * @param newText the text to check for validity
-     * 
-     * @return an error message or <code>null</code> if no error
-     */
-    public String isValid(String newText);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IMessageProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IMessageProvider.java
deleted file mode 100644
index 6f6b6b3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IMessageProvider.java
+++ /dev/null
@@ -1,65 +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.jface.dialogs;
-
-/**
- * Minimal interface to a message provider. Used for dialog pages which can
- * provide a message with an icon.
- * 
- * @since 2.0
- */
-public interface IMessageProvider {
-    /**
-     * Constant for a regular message (value 0).
-     * <p>
-     * Typically this indicates that the message should be shown without an
-     * icon.
-     * </p>
-     */
-    public final static int NONE = 0;
-
-    /**
-     * Constant for an info message (value 1).
-     */
-    public final static int INFORMATION = 1;
-
-    /**
-     * Constant for a warning message (value 2).
-     */
-    public final static int WARNING = 2;
-
-    /**
-     * Constant for an error message (value 3).
-     */
-    public final static int ERROR = 3;
-
-    /**
-     * Returns the current message for this message provider.
-     * <p>
-     * A message provides instruction or information to the user.
-     * </p>
-     * 
-     * @return the message, or <code>null</code> if none
-     */
-    public String getMessage();
-
-    /**
-     * Returns a value indicating if the message is a an information message, a
-     * warning message, or an error message.
-     * <p>
-     * Returns one of <code>NONE</code>,<code>INFORMATION</code>,
-     * <code>WARNING</code>, or <code>ERROR</code>.
-     * </p>
-     * 
-     * @return the message type
-     */
-    public int getMessageType();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangeProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangeProvider.java
deleted file mode 100644
index 2f63de0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangeProvider.java
+++ /dev/null
@@ -1,48 +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.jface.dialogs;
-
-/**
- * Minimal interface to a page change provider. Used for dialogs which can
- * switch between multiple pages.
- * 
- * @since 3.1
- */
-public interface IPageChangeProvider {
-	/**
-	 * Returns the currently selected page in the dialog.
-	 * 
-	 * @return the selected page in the dialog or <code>null</code> if none is
-	 *         selected. The type may be domain specific. In 
-	 *         the JFace provided dialogs this will be an instance of 
-	 *         <code>IDialogPage</code>. 
-	 */
-	Object getSelectedPage();
-
-	/**
-	 * Adds a listener for page changes in this page change provider. Has no
-	 * effect if an identical listener is already registered.
-	 * 
-	 * @param listener
-	 *            a page changed listener
-	 */
-	void addPageChangedListener(IPageChangedListener listener);
-
-	/**
-	 * Removes the given page change listener from this page change provider.
-	 * Has no effect if an identical listener is not registered.
-	 * 
-	 * @param listener
-	 *            a page changed listener
-	 */
-	void removePageChangedListener(IPageChangedListener listener);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangedListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangedListener.java
deleted file mode 100644
index 28cb144..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangedListener.java
+++ /dev/null
@@ -1,30 +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.jface.dialogs;
-
-/**
- * A listener which is notified when the current page of the multi-page dialog
- * is changed.
- * 
- * @see IPageChangeProvider
- * @see PageChangedEvent
- * 
- * @since 3.1
- */
-public interface IPageChangedListener {
-	/**
-	 * Notifies that the selected page has changed.
-	 * 
-	 * @param event
-	 *            event object describing the change
-	 */
-	public void pageChanged(PageChangedEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangingListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangingListener.java
deleted file mode 100644
index fc3c993..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IPageChangingListener.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Chris Gross (schtoo@schtoo.com) - initial API and implementation for bug 16179
- *     IBM Corporation - revisions to initial contribution
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-/**
- * A listener which is notified when the current page of a multi-page dialog is
- * changing. Use this listener to perform long-running work that should only be
- * executed once, when the page is in the process of changing, rather then
- * during validation of page controls.
- * 
- * @see PageChangingEvent
- * @since 3.3
- */
-public interface IPageChangingListener {
-	
-	/**
-	 * Handle the an <code>IDialogPage</code> changing.
-	 * 
-	 * The <code>doit</code> field of the <code>PageChangingEvent</code>
-	 * must be set to false to prevent the page from changing.
-	 * 
-	 * @param event
-	 *            event object describing the change
-	 */
-	public void handlePageChanging(PageChangingEvent event);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IconAndMessageDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IconAndMessageDialog.java
deleted file mode 100644
index 5fe5683..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/IconAndMessageDialog.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Xenos, IBM - bug 156790: Adopt GridLayoutFactory within JFace
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.LayoutConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * The IconAndMessageDialog is the abstract superclass of dialogs that have an
- * icon and a message as the first two widgets. In this dialog the icon and
- * message are direct children of the shell in order that they can be read by
- * accessibility tools more easily.
- * <p>
- * <strong>Note:</strong> Clients are expected to call {@link #createMessageArea(Composite)},
- * otherwise neither the icon nor the message will appear.
- * </p>
- */
-public abstract class IconAndMessageDialog extends Dialog {
-	/**
-	 * Message (a localized string).
-	 */
-	protected String message;
-
-	/**
-	 * Message label is the label the message is shown on.
-	 */
-	protected Label messageLabel;
-
-	/**
-	 * Return the label for the image.
-	 */
-	protected Label imageLabel;
-
-	/**
-	 * Constructor for IconAndMessageDialog.
-	 * 
-	 * @param parentShell
-	 *            the parent shell, or <code>null</code> to create a top-level
-	 *            shell
-	 */
-	public IconAndMessageDialog(Shell parentShell) {
-		super(parentShell);
-	}
-
-	/**
-	 * Create the area the message will be shown in.
-	 * <p>
-	 * The parent composite is assumed to use GridLayout as its layout manager,
-	 * since the parent is typically the composite created in
-	 * {@link Dialog#createDialogArea}.
-	 * </p>
-	 * <p>
-	 * <strong>Note:</strong> Clients are expected to call this method, otherwise
-	 * neither the icon nor the message will appear.
-	 * </p>
-	 * 
-	 * @param composite
-	 *            The composite to parent from.
-	 * @return Control
-	 */
-	protected Control createMessageArea(Composite composite) {
-		// create composite
-		// create image
-		Image image = getImage();
-		if (image != null) {
-			imageLabel = new Label(composite, SWT.NULL);
-			image.setBackground(imageLabel.getBackground());
-			imageLabel.setImage(image);
-			addAccessibleListeners(imageLabel, image);
-			GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.BEGINNING)
-					.applyTo(imageLabel);
-		}
-		// create message
-		if (message != null) {
-			messageLabel = new Label(composite, getMessageLabelStyle());
-			messageLabel.setText(message);
-			GridDataFactory
-					.fillDefaults()
-					.align(SWT.FILL, SWT.BEGINNING)
-					.grab(true, false)
-					.hint(
-							convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH),
-							SWT.DEFAULT).applyTo(messageLabel);
-		}
-		return composite;
-	}
-
-	private String getAccessibleMessageFor(Image image) {
-		if (image.equals(getErrorImage())) {
-			return JFaceResources.getString("error");//$NON-NLS-1$
-		}
-
-		if (image.equals(getWarningImage())) {
-			return JFaceResources.getString("warning");//$NON-NLS-1$
-		}
-
-		if (image.equals(getInfoImage())) {
-			return JFaceResources.getString("info");//$NON-NLS-1$
-		}
-
-		if (image.equals(getQuestionImage())) {
-			return JFaceResources.getString("question"); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-
-	/**
-	 * Add an accessible listener to the label if it can be inferred from the
-	 * image.
-	 * 
-	 * @param label
-	 * @param image
-	 */
-	private void addAccessibleListeners(Label label, final Image image) {
-		label.getAccessible().addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent event) {
-				final String accessibleMessage = getAccessibleMessageFor(image);
-				if (accessibleMessage == null) {
-					return;
-				}
-				event.result = accessibleMessage;
-			}
-		});
-	}
-
-	/**
-	 * Returns the style for the message label.
-	 * 
-	 * @return the style for the message label
-	 * 
-	 * @since 3.0
-	 */
-	protected int getMessageLabelStyle() {
-		return SWT.WRAP;
-	}
-
-	/*
-	 * @see Dialog.createButtonBar()
-	 */
-	protected Control createButtonBar(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayoutFactory.fillDefaults().numColumns(0) // this is incremented
-				// by createButton
-				.equalWidth(true).applyTo(composite);
-
-		GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).span(2, 1)
-				.applyTo(composite);
-		composite.setFont(parent.getFont());
-		// Add the buttons to the button bar.
-		createButtonsForButtonBar(composite);
-		return composite;
-	}
-
-	/**
-	 * Returns the image to display beside the message in this dialog.
-	 * <p>
-	 * Subclasses may override.
-	 * </p>
-	 * 
-	 * @return the image to display beside the message
-	 * @since 2.0
-	 */
-	protected abstract Image getImage();
-
-	/*
-	 * @see Dialog.createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		// initialize the dialog units
-		initializeDialogUnits(parent);
-		Point defaultSpacing = LayoutConstants.getSpacing();
-		GridLayoutFactory.fillDefaults().margins(LayoutConstants.getMargins())
-				.spacing(defaultSpacing.x * 2,
-				defaultSpacing.y).numColumns(getColumnCount()).applyTo(parent);
-
-		GridDataFactory.fillDefaults().grab(true, true).applyTo(parent);
-		createDialogAndButtonArea(parent);
-		return parent;
-	}
-
-	/**
-	 * Get the number of columns in the layout of the Shell of the dialog.
-	 * 
-	 * @return int
-	 * @since 3.3
-	 */
-	int getColumnCount() {
-		return 2;
-	}
-
-	/**
-	 * Create the dialog area and the button bar for the receiver.
-	 * 
-	 * @param parent
-	 */
-	protected void createDialogAndButtonArea(Composite parent) {
-		// create the dialog area and button bar
-		dialogArea = createDialogArea(parent);
-		buttonBar = createButtonBar(parent);
-		// Apply to the parent so that the message gets it too.
-		applyDialogFont(parent);
-	}
-
-	/**
-	 * Return the <code>Image</code> to be used when displaying an error.
-	 * 
-	 * @return image the error image
-	 */
-	public Image getErrorImage() {
-		return getSWTImage(SWT.ICON_ERROR);
-	}
-
-	/**
-	 * Return the <code>Image</code> to be used when displaying a warning.
-	 * 
-	 * @return image the warning image
-	 */
-	public Image getWarningImage() {
-		return getSWTImage(SWT.ICON_WARNING);
-	}
-
-	/**
-	 * Return the <code>Image</code> to be used when displaying information.
-	 * 
-	 * @return image the information image
-	 */
-	public Image getInfoImage() {
-		return getSWTImage(SWT.ICON_INFORMATION);
-	}
-
-	/**
-	 * Return the <code>Image</code> to be used when displaying a question.
-	 * 
-	 * @return image the question image
-	 */
-	public Image getQuestionImage() {
-		return getSWTImage(SWT.ICON_QUESTION);
-	}
-
-	/**
-	 * Get an <code>Image</code> from the provide SWT image constant.
-	 * 
-	 * @param imageID
-	 *            the SWT image constant
-	 * @return image the image
-	 */
-	private Image getSWTImage(final int imageID) {
-		Shell shell = getShell();
-		final Display display;
-		if (shell == null || shell.isDisposed()) {
-			shell = getParentShell();
-		}
-		if (shell == null || shell.isDisposed()) {
-			display = Display.getCurrent();
-			// The dialog should be always instantiated in UI thread.
-			// However it was possible to instantiate it in other threads
-			// (the code worked in most cases) so the assertion covers
-			// only the failing scenario. See bug 107082 for details.
-			Assert.isNotNull(display,
-					"The dialog should be created in UI thread"); //$NON-NLS-1$
-		} else {
-			display = shell.getDisplay();
-		}
-
-		final Image[] image = new Image[1];
-		display.syncExec(new Runnable() {
-			public void run() {
-				image[0] = display.getSystemImage(imageID);
-			}
-		});
-
-		return image[0];
-
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ImageAndMessageArea.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ImageAndMessageArea.java
deleted file mode 100644
index 6c9eea2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ImageAndMessageArea.java
+++ /dev/null
@@ -1,213 +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.jface.dialogs;
-
-import org.eclipse.jface.fieldassist.DecoratedField;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.fieldassist.TextControlCreator;
-import org.eclipse.jface.resource.JFaceResources;
-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.Font;
-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.Layout;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Instances of this class provide a message area to display a message and an
- * associated image.
- * <p>
- * This class is not intended to be extended by clients.
- * </p>
- * 
- * @since 3.2
- * @deprecated As of 3.3, this class is no longer necessary.
- * 
- */
-public class ImageAndMessageArea extends Composite {
-
-	private int BORDER_MARGIN = IDialogConstants.HORIZONTAL_SPACING / 2;
-
-	private DecoratedField messageField;
-
-	private Composite container;
-
-	/**
-	 * Constructs a new ImageAndMessageArea with an empty decorated field. Calls
-	 * to <code>setText(String text)</code> and
-	 * <code>setImage(Image image)</code> are required in order to fill the
-	 * message area. Also, the instance will be invisible when initially
-	 * created.
-	 * <p>
-	 * The style bit <code>SWT.WRAP</code> should be used if a larger message
-	 * area is desired.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the SWT style bits. Using SWT.WRAP will create a larger
-	 *            message area.
-	 */
-	public ImageAndMessageArea(Composite parent, int style) {
-		super(parent, style);
-		container = new Composite(this, style);
-		GridLayout glayout = new GridLayout();
-		glayout.numColumns = 2;
-		glayout.marginWidth = 0;
-		glayout.marginHeight = 0;
-		glayout.marginTop = BORDER_MARGIN;
-		glayout.marginBottom = BORDER_MARGIN;
-		container.setLayout(glayout);
-
-		messageField = new DecoratedField(container, SWT.READ_ONLY | style,
-				new TextControlCreator());
-		setFont(JFaceResources.getDialogFont());
-
-		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-		int lineHeight = ((Text) messageField.getControl()).getLineHeight();
-		if ((style & SWT.WRAP) > 0)
-			gd.heightHint = 2 * lineHeight;
-		else
-			gd.heightHint = lineHeight;
-
-		messageField.getLayoutControl().setLayoutData(gd);
-
-		addPaintListener(new PaintListener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.PaintListener#paintControl(org.eclipse.swt.events.PaintEvent)
-			 */
-			public void paintControl(PaintEvent e) {
-				onPaint(e);
-			}
-		});
-
-		// sets the layout and size to account for the BORDER_MARGIN between
-		// the border drawn around the container and the decorated field.
-		setLayout(new Layout() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite,
-			 *      boolean)
-			 */
-			public void layout(Composite parent, boolean changed) {
-				Rectangle carea = getClientArea();
-				container.setBounds(carea.x + BORDER_MARGIN, carea.y
-						+ BORDER_MARGIN, carea.width - (2 * BORDER_MARGIN),
-						carea.height - (2 * BORDER_MARGIN));
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.widgets.Layout#computeSize(org.eclipse.swt.widgets.Composite,
-			 *      int, int, boolean)
-			 */
-			public Point computeSize(Composite parent, int wHint, int hHint,
-					boolean changed) {
-				Point size;
-				size = container.computeSize(wHint, hHint, changed);
-
-				// size set to account for the BORDER_MARGIN on
-				// all sides of the decorated field
-				size.x += 4;
-				size.y += 4;
-				return size;
-			}
-		});
-		setVisible(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setBackground(org.eclipse.swt.graphics.Color)
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		messageField.getLayoutControl().setBackground(bg);
-		messageField.getControl().setBackground(bg);
-		container.setBackground(bg);
-	}
-
-	/**
-	 * Sets the text in the decorated field which will be displayed in the
-	 * message area.
-	 * 
-	 * @param text
-	 *            the text to be displayed in the message area
-	 * 
-	 * @see org.eclipse.swt.widgets.Text#setText(String string)
-	 */
-	public void setText(String text) {
-		((Text) messageField.getControl()).setText(text);
-	}
-
-	/**
-	 * Adds an image to decorated field to be shown in the message area.
-	 * 
-	 * @param image
-	 *            desired image to be shown in the ImageAndMessageArea
-	 */
-	public void setImage(Image image) {
-		FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault();
-		registry.registerFieldDecoration("messageImage", null, image); //$NON-NLS-1$
-		messageField.addFieldDecoration(registry
-				.getFieldDecoration("messageImage"), //$NON-NLS-1$
-				SWT.LEFT | SWT.TOP, false);
-	}
-
-	/**
-	 * Draws the message area composite with rounded corners.
-	 */
-	private void onPaint(PaintEvent e) {
-		Rectangle carea = getClientArea();
-		e.gc.setForeground(getForeground());
-
-		// draws the polyline to be rounded in a 2 pixel squared area
-		e.gc.drawPolyline(new int[] { carea.x, carea.y + carea.height - 1,
-				carea.x, carea.y + 2, carea.x + 2, carea.y,
-				carea.x + carea.width - 3, carea.y, carea.x + carea.width - 1,
-				carea.y + 2, carea.x + carea.width - 1,
-				carea.y + carea.height - 1 });
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setFont(org.eclipse.swt.graphics.Font)
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		((Text) messageField.getControl()).setFont(font);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setToolTipText(java.lang.String)
-	 */
-	public void setToolTipText(String text) {
-		super.setToolTipText(text);
-		((Text) messageField.getControl()).setToolTipText(text);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/InputDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/InputDialog.java
deleted file mode 100644
index f0ff4c8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/InputDialog.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.jface.resource.StringConverter;
-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.Button;
-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.swt.widgets.Text;
-
-/**
- * A simple input dialog for soliciting an input string from the user.
- * <p>
- * This concrete dialog class can be instantiated as is, or further subclassed as
- * required.
- * </p>
- */
-public class InputDialog extends Dialog {
-    /**
-     * The title of the dialog.
-     */
-    private String title;
-
-    /**
-     * The message to display, or <code>null</code> if none.
-     */
-    private String message;
-
-    /**
-     * The input value; the empty string by default.
-     */
-    private String value = "";//$NON-NLS-1$
-
-    /**
-     * The input validator, or <code>null</code> if none.
-     */
-    private IInputValidator validator;
-
-    /**
-     * Ok button widget.
-     */
-    private Button okButton;
-
-    /**
-     * Input text widget.
-     */
-    private Text text;
-
-    /**
-     * Error message label widget.
-     */
-    private Text errorMessageText;
-    
-    /**
-     * Error message string.
-     */
-    private String errorMessage;
-
-    /**
-     * Creates an input dialog with OK and Cancel buttons. Note that the dialog
-     * will have no visual representation (no widgets) until it is told to open.
-     * <p>
-     * Note that the <code>open</code> method blocks for input dialogs.
-     * </p>
-     * 
-     * @param parentShell
-     *            the parent shell, or <code>null</code> to create a top-level
-     *            shell
-     * @param dialogTitle
-     *            the dialog title, or <code>null</code> if none
-     * @param dialogMessage
-     *            the dialog message, or <code>null</code> if none
-     * @param initialValue
-     *            the initial input value, or <code>null</code> if none
-     *            (equivalent to the empty string)
-     * @param validator
-     *            an input validator, or <code>null</code> if none
-     */
-    public InputDialog(Shell parentShell, String dialogTitle,
-            String dialogMessage, String initialValue, IInputValidator validator) {
-        super(parentShell);
-        this.title = dialogTitle;
-        message = dialogMessage;
-        if (initialValue == null) {
-			value = "";//$NON-NLS-1$
-		} else {
-			value = initialValue;
-		}
-        this.validator = validator;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on Dialog.
-     */
-    protected void buttonPressed(int buttonId) {
-        if (buttonId == IDialogConstants.OK_ID) {
-            value = text.getText();
-        } else {
-            value = null;
-        }
-        super.buttonPressed(buttonId);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        if (title != null) {
-			shell.setText(title);
-		}
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        // create OK and Cancel buttons by default
-        okButton = createButton(parent, IDialogConstants.OK_ID,
-                IDialogConstants.OK_LABEL, true);
-        createButton(parent, IDialogConstants.CANCEL_ID,
-                IDialogConstants.CANCEL_LABEL, false);
-        //do this here because setting the text will set enablement on the ok
-        // button
-        text.setFocus();
-        if (value != null) {
-            text.setText(value);
-            text.selectAll();
-        }
-    }
-
-    /*
-     * (non-Javadoc) Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        // create composite
-        Composite composite = (Composite) super.createDialogArea(parent);
-        // create message
-        if (message != null) {
-            Label label = new Label(composite, SWT.WRAP);
-            label.setText(message);
-            GridData data = new GridData(GridData.GRAB_HORIZONTAL
-                    | GridData.GRAB_VERTICAL | GridData.HORIZONTAL_ALIGN_FILL
-                    | GridData.VERTICAL_ALIGN_CENTER);
-            data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
-            label.setLayoutData(data);
-            label.setFont(parent.getFont());
-        }
-        text = new Text(composite, getInputTextStyle());
-        text.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        text.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                validateInput();
-            }
-        });
-        errorMessageText = new Text(composite, SWT.READ_ONLY | SWT.WRAP);
-        errorMessageText.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-        errorMessageText.setBackground(errorMessageText.getDisplay()
-                .getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
-        // Set the error message text
-        // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=66292
-        setErrorMessage(errorMessage);
-
-        applyDialogFont(composite);
-        return composite;
-    }
-
-    /**
-     * Returns the error message label.
-     * 
-     * @return the error message label
-     * @deprecated use setErrorMessage(String) instead
-     */
-    protected Label getErrorMessageLabel() {
-        return null;
-    }
-
-    /**
-     * Returns the ok button.
-     * 
-     * @return the ok button
-     */
-    protected Button getOkButton() {
-        return okButton;
-    }
-
-    /**
-     * Returns the text area.
-     * 
-     * @return the text area
-     */
-    protected Text getText() {
-        return text;
-    }
-
-    /**
-     * Returns the validator.
-     * 
-     * @return the validator
-     */
-    protected IInputValidator getValidator() {
-        return validator;
-    }
-
-    /**
-     * Returns the string typed into this input dialog.
-     * 
-     * @return the input string
-     */
-    public String getValue() {
-        return value;
-    }
-
-    /**
-     * Validates the input.
-     * <p>
-     * The default implementation of this framework method delegates the request
-     * to the supplied input validator object; if it finds the input invalid,
-     * the error message is displayed in the dialog's message line. This hook
-     * method is called whenever the text changes in the input field.
-     * </p>
-     */
-    protected void validateInput() {
-        String errorMessage = null;
-        if (validator != null) {
-            errorMessage = validator.isValid(text.getText());
-        }
-        // Bug 16256: important not to treat "" (blank error) the same as null
-        // (no error)
-        setErrorMessage(errorMessage);
-    }
-
-    /**
-     * Sets or clears the error message.
-     * If not <code>null</code>, the OK button is disabled.
-     * 
-     * @param errorMessage
-     *            the error message, or <code>null</code> to clear
-     * @since 3.0
-     */
-    public void setErrorMessage(String errorMessage) {
-    	this.errorMessage = errorMessage;
-    	if (errorMessageText != null && !errorMessageText.isDisposed()) {
-    		errorMessageText.setText(errorMessage == null ? " \n " : errorMessage); //$NON-NLS-1$
-    		// Disable the error message text control if there is no error, or
-    		// no error text (empty or whitespace only).  Hide it also to avoid
-    		// color change.
-    		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=130281
-    		boolean hasError = errorMessage != null && (StringConverter.removeWhiteSpaces(errorMessage)).length() > 0;
-    		errorMessageText.setEnabled(hasError);
-    		errorMessageText.setVisible(hasError);
-    		errorMessageText.getParent().update();
-    		// Access the ok button by id, in case clients have overridden button creation.
-    		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=113643
-    		Control button = getButton(IDialogConstants.OK_ID);
-    		if (button != null) {
-    			button.setEnabled(errorMessage == null);
-    		}
-    	}
-    }
-    
-	/**
-	 * Returns the style bits that should be used for the input text field.
-	 * Defaults to a single line entry. Subclasses may override.
-	 * 
-	 * @return the integer style bits that should be used when creating the
-	 *         input text
-	 * 
-	 * @since 3.4
-	 */
-	protected int getInputTextStyle() {
-		return SWT.SINGLE | SWT.BORDER;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialog.java
deleted file mode 100644
index 7968cb5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialog.java
+++ /dev/null
@@ -1,557 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog for showing messages to the user.
- * <p>
- * This concrete dialog class can be instantiated as is, or further subclassed
- * as required.
- * </p>
- */
-public class MessageDialog extends IconAndMessageDialog {
-    /**
-     * Constant for no image (value 0).
-     * 
-     * @see #MessageDialog(Shell, String, Image, String, int, String[], int)
-     */
-    public final static int NONE = 0;
-
-    /**
-     * Constant for the error image, or a simple dialog with the error image and a single OK button (value 1).
-     * 
-     * @see #MessageDialog(Shell, String, Image, String, int, String[], int)
-     * @see #open(int, Shell, String, String, int)
-     */
-    public final static int ERROR = 1;
-
-    /**
-     * Constant for the info image, or a simple dialog with the info image and a single OK button (value 2).
-     * 
-     * @see #MessageDialog(Shell, String, Image, String, int, String[], int)
-     * @see #open(int, Shell, String, String, int)
-     */
-    public final static int INFORMATION = 2;
-
-    /**
-     * Constant for the question image, or a simple dialog with the question image and Yes/No buttons (value 3).
-     * 
-     * @see #MessageDialog(Shell, String, Image, String, int, String[], int)
-     * @see #open(int, Shell, String, String, int)
-     */
-    public final static int QUESTION = 3;
-
-    /**
-     * Constant for the warning image, or a simple dialog with the warning image and a single OK button (value 4).
-     * 
-     * @see #MessageDialog(Shell, String, Image, String, int, String[], int)
-     * @see #open(int, Shell, String, String, int)
-     */
-    public final static int WARNING = 4;
-    
-    /**
-     * Constant for a simple dialog with the question image and OK/Cancel buttons (value 5).
-     * 
-     * @see #open(int, Shell, String, String, int)
-     * @since 3.5
-     */
-    public final static int CONFIRM = 5;
-    
-    /**
-     * Constant for a simple dialog with the question image and Yes/No/Cancel buttons (value 6).
-     * 
-     * @see #open(int, Shell, String, String, int)
-     * @since 3.5
-     */
-    public final static int QUESTION_WITH_CANCEL = 6;
-    
-    /**
-     * Labels for buttons in the button bar (localized strings).
-     */
-    private String[] buttonLabels;
-
-    /**
-     * The buttons. Parallels <code>buttonLabels</code>.
-     */
-    private Button[] buttons;
-
-    /**
-     * Index into <code>buttonLabels</code> of the default button.
-     */
-    private int defaultButtonIndex;
-
-    /**
-     * Dialog title (a localized string).
-     */
-    private String title;
-
-    /**
-     * Dialog title image.
-     */
-    private Image titleImage;
-
-    /**
-     * Image, or <code>null</code> if none.
-     */
-    private Image image = null;
-
-    /**
-     * The custom dialog area.
-     */
-    private Control customArea;
-
-    /**
-     * Create a message dialog. Note that the dialog will have no visual
-     * representation (no widgets) until it is told to open.
-     * <p>
-     * The labels of the buttons to appear in the button bar are supplied in
-     * this constructor as an array. The <code>open</code> method will return
-     * the index of the label in this array corresponding to the button that was
-     * pressed to close the dialog.
-     * </p>
-     * <p>
-     * <strong>Note:</strong> If the dialog was dismissed without pressing
-     * a button (ESC key, close box, etc.) then {@link SWT#DEFAULT} is returned.
-     * Note that the <code>open</code> method blocks.
-     * </p>
-     *
-     * @param parentShell
-     *            the parent shell
-     * @param dialogTitle
-     *            the dialog title, or <code>null</code> if none
-     * @param dialogTitleImage
-     *            the dialog title image, or <code>null</code> if none
-     * @param dialogMessage
-     *            the dialog message
-     * @param dialogImageType
-     *            one of the following values:
-     *            <ul>
-     *            <li><code>MessageDialog.NONE</code> for a dialog with no
-     *            image</li>
-     *            <li><code>MessageDialog.ERROR</code> for a dialog with an
-     *            error image</li>
-     *            <li><code>MessageDialog.INFORMATION</code> for a dialog
-     *            with an information image</li>
-     *            <li><code>MessageDialog.QUESTION </code> for a dialog with a
-     *            question image</li>
-     *            <li><code>MessageDialog.WARNING</code> for a dialog with a
-     *            warning image</li>
-     *            </ul>
-     * @param dialogButtonLabels
-     *            an array of labels for the buttons in the button bar
-     * @param defaultIndex
-     *            the index in the button label array of the default button
-     */
-    public MessageDialog(Shell parentShell, String dialogTitle,
-            Image dialogTitleImage, String dialogMessage, int dialogImageType,
-            String[] dialogButtonLabels, int defaultIndex) {
-        super(parentShell);
-        this.title = dialogTitle;
-        this.titleImage = dialogTitleImage;
-        this.message = dialogMessage;
-
-        switch (dialogImageType) {
-        case ERROR: {
-            this.image = getErrorImage();
-            break;
-        }
-        case INFORMATION: {
-            this.image = getInfoImage();
-            break;
-        }
-        case QUESTION:
-        case QUESTION_WITH_CANCEL:
-        case CONFIRM: {
-            this.image = getQuestionImage();
-            break;
-        }
-        case WARNING: {
-            this.image = getWarningImage();
-            break;
-        }
-        }
-        this.buttonLabels = dialogButtonLabels;
-        this.defaultButtonIndex = defaultIndex;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-     */
-    protected void buttonPressed(int buttonId) {
-        setReturnCode(buttonId);
-        close();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        if (title != null) {
-			shell.setText(title);
-		}
-        if (titleImage != null) {
-			shell.setImage(titleImage);
-		}
-    }
-
-    /*
-     * (non-Javadoc) Method declared on Dialog.
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        buttons = new Button[buttonLabels.length];
-        for (int i = 0; i < buttonLabels.length; i++) {
-            String label = buttonLabels[i];
-            Button button = createButton(parent, i, label,
-                    defaultButtonIndex == i);
-            buttons[i] = button;
-        }
-    }
-
-    /**
-     * Creates and returns the contents of an area of the dialog which appears
-     * below the message and above the button bar.
-     * <p>
-     * The default implementation of this framework method returns
-     * <code>null</code>. Subclasses may override.
-     * </p>
-     * 
-     * @param parent
-     *            parent composite to contain the custom area
-     * @return the custom area control, or <code>null</code>
-     */
-    protected Control createCustomArea(Composite parent) {
-        return null;
-    }
-
-    /**
-     * This implementation of the <code>Dialog</code> framework method creates
-     * and lays out a composite and calls <code>createMessageArea</code> and
-     * <code>createCustomArea</code> to populate it. Subclasses should
-     * override <code>createCustomArea</code> to add contents below the
-     * message.
-     */
-    protected Control createDialogArea(Composite parent) {
-        // create message area
-        createMessageArea(parent);
-        // create the top level composite for the dialog area
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        composite.setLayout(layout);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.horizontalSpan = 2;
-        composite.setLayoutData(data);
-        // allow subclasses to add custom controls
-        customArea = createCustomArea(composite);
-        //If it is null create a dummy label for spacing purposes
-        if (customArea == null) {
-			customArea = new Label(composite, SWT.NULL);
-		}
-        return composite;
-    }
-
-    /**
-     * Gets a button in this dialog's button bar.
-     * 
-     * @param index
-     *            the index of the button in the dialog's button bar
-     * @return a button in the dialog's button bar
-     */
-    protected Button getButton(int index) {
-        return buttons[index];
-    }
-
-    /**
-     * Returns the minimum message area width in pixels This determines the
-     * minimum width of the dialog.
-     * <p>
-     * Subclasses may override.
-     * </p>
-     * 
-     * @return the minimum message area width (in pixels)
-     */
-    protected int getMinimumMessageWidth() {
-        return convertHorizontalDLUsToPixels(IDialogConstants.MINIMUM_MESSAGE_AREA_WIDTH);
-    }
-
-    /**
-     * Handle the shell close. Set the return code to <code>SWT.DEFAULT</code>
-     * as there has been no explicit close by the user.
-     * 
-     * @see org.eclipse.jface.window.Window#handleShellCloseEvent()
-     */
-    protected void handleShellCloseEvent() {
-        //Sets a return code of SWT.DEFAULT since none of the dialog buttons
-        // were pressed to close the dialog.
-        super.handleShellCloseEvent();
-        setReturnCode(SWT.DEFAULT);
-    }
-
-	/**
-	 * Opens this message dialog, creating it first if it has not yet been created.
-	 * <p>
-	 * This method waits until the dialog is closed by the end user, and then it
-	 * returns the dialog's return code. The dialog's return code is either the
-	 * index of the button the user pressed, or {@link SWT#DEFAULT} if the dialog
-	 * has been closed by other means.
-	 * </p>
-	 *
-	 * @return the return code
-	 *
-	 * @see org.eclipse.jface.window.Window#open()
-	 */
-    public int open() {
-    	return super.open();
-    }
-
-	/**
-	 * Convenience method to open a simple dialog as specified by the
-	 * <code>kind</code> flag.
-	 * 
-	 * @param kind
-	 *            the kind of dialog to open, one of {@link #ERROR},
-	 *            {@link #INFORMATION}, {@link #QUESTION}, {@link #WARNING},
-	 *            {@link #CONFIRM}, or {@link #QUESTION_WITH_CANCEL}.
-	 * @param parent
-	 *            the parent shell of the dialog, or <code>null</code> if none
-	 * @param title
-	 *            the dialog's title, or <code>null</code> if none
-	 * @param message
-	 *            the message
-	 * @param style
-	 *            {@link SWT#NONE} for a default dialog, or {@link SWT#SHEET} for
-	 *            a dialog with sheet behavior
-	 * @return <code>true</code> if the user presses the OK or Yes button,
-	 *         <code>false</code> otherwise
-	 * @since 3.5
-	 */
-	public static boolean open(int kind, Shell parent, String title,
-			String message, int style) {
-		MessageDialog dialog = new MessageDialog(parent, title, null, message,
-				kind, getButtonLabels(kind), 0);
-		style &= SWT.SHEET;
-		dialog.setShellStyle(dialog.getShellStyle() | style);
-		return dialog.open() == 0;
-	}
-
-	/**
-	 * @param kind
-	 * @return
-	 */
-	static String[] getButtonLabels(int kind) {
-		String[] dialogButtonLabels;
-		switch (kind) {
-		case ERROR:
-		case INFORMATION:
-		case WARNING: {
-			dialogButtonLabels = new String[] { IDialogConstants.OK_LABEL };
-			break;
-		}
-		case CONFIRM: {
-			dialogButtonLabels = new String[] { IDialogConstants.OK_LABEL,
-					IDialogConstants.CANCEL_LABEL };
-			break;
-		}
-		case QUESTION: {
-			dialogButtonLabels = new String[] { IDialogConstants.YES_LABEL,
-					IDialogConstants.NO_LABEL };
-			break;
-		}
-		case QUESTION_WITH_CANCEL: {
-			dialogButtonLabels = new String[] { IDialogConstants.YES_LABEL,
-                    IDialogConstants.NO_LABEL,
-                    IDialogConstants.CANCEL_LABEL };
-			break;
-		}
-		default: {
-			throw new IllegalArgumentException(
-					"Illegal value for kind in MessageDialog.open()"); //$NON-NLS-1$
-		}
-		}
-		return dialogButtonLabels;
-	}
-    
-    /**
-     * Convenience method to open a simple confirm (OK/Cancel) dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @return <code>true</code> if the user presses the OK button,
-     *         <code>false</code> otherwise
-     */
-    public static boolean openConfirm(Shell parent, String title, String message) {
-        return open(CONFIRM, parent, title, message, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a standard error dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     */
-    public static void openError(Shell parent, String title, String message) {
-        open(ERROR, parent, title, message, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a standard information dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     */
-    public static void openInformation(Shell parent, String title,
-            String message) {
-        open(INFORMATION, parent, title, message, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a simple Yes/No question dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @return <code>true</code> if the user presses the Yes button,
-     *         <code>false</code> otherwise
-     */
-    public static boolean openQuestion(Shell parent, String title,
-            String message) {
-        return open(QUESTION, parent, title, message, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a standard warning dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     */
-    public static void openWarning(Shell parent, String title, String message) {
-        open(WARNING, parent, title, message, SWT.NONE);
-    }
-
-    /*
-     * @see org.eclipse.jface.dialogs.Dialog#createButton(org.eclipse.swt.widgets.Composite,
-     *      int, java.lang.String, boolean)
-     */
-    protected Button createButton(Composite parent, int id, String label,
-            boolean defaultButton) {
-        Button button = super.createButton(parent, id, label, defaultButton);
-        //Be sure to set the focus if the custom area cannot so as not
-        //to lose the defaultButton.
-        if (defaultButton && !customShouldTakeFocus()) {
-			button.setFocus();
-		}
-        return button;
-    }
-
-    /**
-     * Return whether or not we should apply the workaround where we take focus
-     * for the default button or if that should be determined by the dialog. By
-     * default only return true if the custom area is a label or CLabel that
-     * cannot take focus.
-     * 
-     * @return boolean
-     */
-    protected boolean customShouldTakeFocus() {
-        if (customArea instanceof Label) {
-			return false;
-		}
-        if (customArea instanceof CLabel) {
-			return (customArea.getStyle() & SWT.NO_FOCUS) > 0;
-		}
-        return true;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getImage()
-     */
-    public Image getImage() {
-        return image;
-    }
-
-    /**
-     * An accessor for the labels to use on the buttons.
-     * 
-     * @return The button labels to used; never <code>null</code>.
-     */
-    protected String[] getButtonLabels() {
-        return buttonLabels;
-    }
-
-    /**
-     * An accessor for the index of the default button in the button array.
-     * 
-     * @return The default button index.
-     */
-    protected int getDefaultButtonIndex() {
-        return defaultButtonIndex;
-    }
-
-    /**
-     * A mutator for the array of buttons in the button bar.
-     * 
-     * @param buttons
-     *            The buttons in the button bar; must not be <code>null</code>.
-     */
-    protected void setButtons(Button[] buttons) {
-        if (buttons == null) {
-            throw new NullPointerException(
-                    "The array of buttons cannot be null.");} //$NON-NLS-1$
-        this.buttons = buttons;
-    }
-
-    /**
-     * A mutator for the button labels.
-     * 
-     * @param buttonLabels
-     *            The button labels to use; must not be <code>null</code>.
-     */
-    protected void setButtonLabels(String[] buttonLabels) {
-        if (buttonLabels == null) {
-            throw new NullPointerException(
-                    "The array of button labels cannot be null.");} //$NON-NLS-1$
-        this.buttonLabels = buttonLabels;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialogWithToggle.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialogWithToggle.java
deleted file mode 100644
index aca01e5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/MessageDialogWithToggle.java
+++ /dev/null
@@ -1,708 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * <p>
- * A message dialog which also allows the user to adjust a toggle setting. If a
- * preference store is provided and the user selects the toggle, then the user's
- * answer (yes/ok or no) will be persisted in the store. If no store is
- * provided, then this information can be queried after the dialog closes.
- * </p>
- * <p>
- * This type of dialog should be used whenever you want to user to be able to
- * avoid being prompted in the future. It is <strong>strongly </strong>
- * recommended that a cancel option be provided, so that the user has the option
- * of making the decision at a later point in time. The semantic for a cancel
- * button should be to cancel the operation (if it has not yet started), or stop
- * the operation (if it has already started).
- * </p>
- * <p>
- * It is the responsibility of the developer to provide a mechanism for the user
- * to change this preference at some later point in time (e.g., through a
- * preference page).
- * </p>
- * 
- * @since 3.0
- */
-public class MessageDialogWithToggle extends MessageDialog {
-
-    /**
-     * The value of the preference when the user has asked that the answer to
-     * the question always be "okay" or "yes".
-     */
-    public static final String ALWAYS = "always"; //$NON-NLS-1$
-
-    /**
-     * The value of the preference when the user has asked that the answer to
-     * the question always be "no".
-     */
-    public static final String NEVER = "never"; //$NON-NLS-1$
-
-    /**
-     * The value of the preference when the user wishes to prompted for an
-     * answer every time the question is to be asked.
-     */
-    public static final String PROMPT = "prompt"; //$NON-NLS-1$
-
-    /**
-     * Convenience method to open a simple dialog as specified by the <code>kind</code> flag,
-     * with a "don't show again' toggle.
-     *
-     * @param kind 
-	 *            the kind of dialog to open, one of {@link #ERROR},
-	 *            {@link #INFORMATION}, {@link #QUESTION}, {@link #WARNING},
-	 *            {@link #CONFIRM}, or {#QUESTION_WITH_CANCEL}.
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     * @param store
-     *            the IPreference store in which the user's preference should be
-     *            persisted; <code>null</code> if you don't want it persisted
-     *            automatically.
-     * @param key
-     *            the key to use when persisting the user's preference;
-     *            <code>null</code> if you don't want it persisted.
-	 * @param style
-	 *            {@link SWT#NONE} for a default dialog, or {@link SWT#SHEET} for
-	 *            a dialog with sheet behavior
-     * @return the dialog, after being closed by the user, which the client can
-     *         only call <code>getReturnCode()</code> or
-     *         <code>getToggleState()</code>
-     * @since 3.5
-     */
-    public static MessageDialogWithToggle open(int kind, Shell parent, String title,
-            String message, String toggleMessage, boolean toggleState,
-            IPreferenceStore store, String key, int style) {
-        MessageDialogWithToggle dialog = new MessageDialogWithToggle(parent,
-                title, null, // accept the default window icon
-                message, kind, getButtonLabels(kind), 0,
-                toggleMessage, toggleState);
-        style &= SWT.SHEET;
-        dialog.setShellStyle(dialog.getShellStyle() | style);
-        dialog.prefStore = store;
-        dialog.prefKey = key;
-        dialog.open();
-        return dialog;
-    }
-
-    /**
-     * Convenience method to open a standard error dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     * @param store
-     *            the IPreference store in which the user's preference should be
-     *            persisted; <code>null</code> if you don't want it persisted
-     *            automatically.
-     * @param key
-     *            the key to use when persisting the user's preference;
-     *            <code>null</code> if you don't want it persisted.
-     * @return the dialog, after being closed by the user, which the client can
-     *         only call <code>getReturnCode()</code> or
-     *         <code>getToggleState()</code>
-     */
-    public static MessageDialogWithToggle openError(Shell parent, String title,
-            String message, String toggleMessage, boolean toggleState,
-            IPreferenceStore store, String key) {
-    	return open(ERROR, parent, title, message, toggleMessage, toggleState, store, key, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a standard information dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     * @param store
-     *            the IPreference store in which the user's preference should be
-     *            persisted; <code>null</code> if you don't want it persisted
-     *            automatically.
-     * @param key
-     *            the key to use when persisting the user's preference;
-     *            <code>null</code> if you don't want it persisted.
-     * 
-     * @return the dialog, after being closed by the user, which the client can
-     *         only call <code>getReturnCode()</code> or
-     *         <code>getToggleState()</code>
-     */
-    public static MessageDialogWithToggle openInformation(Shell parent,
-            String title, String message, String toggleMessage,
-            boolean toggleState, IPreferenceStore store, String key) {
-    	return open(INFORMATION, parent, title, message, toggleMessage, toggleState, store, key, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a simple confirm (OK/Cancel) dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     * @param store
-     *            the IPreference store in which the user's preference should be
-     *            persisted; <code>null</code> if you don't want it persisted
-     *            automatically.
-     * @param key
-     *            the key to use when persisting the user's preference;
-     *            <code>null</code> if you don't want it persisted.
-     * @return the dialog, after being closed by the user, which the client can
-     *         only call <code>getReturnCode()</code> or
-     *         <code>getToggleState()</code>
-     */
-    public static MessageDialogWithToggle openOkCancelConfirm(Shell parent,
-            String title, String message, String toggleMessage,
-            boolean toggleState, IPreferenceStore store, String key) {
-    	return open(CONFIRM, parent, title, message, toggleMessage, toggleState, store, key, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a standard warning dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     * @param store
-     *            the IPreference store in which the user's preference should be
-     *            persisted; <code>null</code> if you don't want it persisted
-     *            automatically.
-     * @param key
-     *            the key to use when persisting the user's preference;
-     *            <code>null</code> if you don't want it persisted.
-     * @return the dialog, after being closed by the user, which the client can
-     *         only call <code>getReturnCode()</code> or
-     *         <code>getToggleState()</code>
-     */
-    public static MessageDialogWithToggle openWarning(Shell parent,
-            String title, String message, String toggleMessage,
-            boolean toggleState, IPreferenceStore store, String key) {
-    	return open(WARNING, parent, title, message, toggleMessage, toggleState, store, key, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a simple question Yes/No/Cancel dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     * @param store
-     *            the IPreference store in which the user's preference should be
-     *            persisted; <code>null</code> if you don't want it persisted
-     *            automatically.
-     * @param key
-     *            the key to use when persisting the user's preference;
-     *            <code>null</code> if you don't want it persisted.
-     * @return the dialog, after being closed by the user, which the client can
-     *         only call <code>getReturnCode()</code> or
-     *         <code>getToggleState()</code>
-     */
-    public static MessageDialogWithToggle openYesNoCancelQuestion(Shell parent,
-            String title, String message, String toggleMessage,
-            boolean toggleState, IPreferenceStore store, String key) {
-    	return open(QUESTION_WITH_CANCEL, parent, title, message, toggleMessage, toggleState, store, key, SWT.NONE);
-    }
-
-    /**
-     * Convenience method to open a simple Yes/No question dialog.
-     * 
-     * @param parent
-     *            the parent shell of the dialog, or <code>null</code> if none
-     * @param title
-     *            the dialog's title, or <code>null</code> if none
-     * @param message
-     *            the message
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     * @param store
-     *            the IPreference store in which the user's preference should be
-     *            persisted; <code>null</code> if you don't want it persisted
-     *            automatically.
-     * @param key
-     *            the key to use when persisting the user's preference;
-     *            <code>null</code> if you don't want it persisted.
-     * 
-     * @return the dialog, after being closed by the user, which the client can
-     *         only call <code>getReturnCode()</code> or
-     *         <code>getToggleState()</code>
-     */
-    public static MessageDialogWithToggle openYesNoQuestion(Shell parent,
-            String title, String message, String toggleMessage,
-            boolean toggleState, IPreferenceStore store, String key) {
-    	return open(QUESTION, parent, title, message, toggleMessage, toggleState, store, key, SWT.NONE);
-    }
-
-    /**
-     * The key at which the toggle state should be stored within the
-     * preferences. This value may be <code>null</code>, which indicates that
-     * no preference should be updated automatically. It is then the
-     * responsibility of the user of this API to use the information from the
-     * toggle. Note: a <code>prefStore</code> is also needed.
-     */
-    private String prefKey = null;
-
-    /**
-     * The preference store which will be affected by the toggle button. This
-     * value may be <code>null</code>, which indicates that no preference
-     * should be updated automatically. It is then the responsibility of the
-     * user of this API to use the information from the toggle. Note: a
-     * <code>prefKey</code> is also needed.
-     */
-    private IPreferenceStore prefStore = null;
-
-    /**
-     * The toggle button (widget). This value is <code>null</code> until the
-     * dialog is created.
-     */
-    private Button toggleButton = null;
-
-    /**
-     * The message displayed to the user, with the toggle button. This is the
-     * text besides the toggle. If it is <code>null</code>, this means that
-     * the default text for the toggle should be used.
-     */
-    private String toggleMessage;
-
-    /**
-     * The initial selected state of the toggle.
-     */
-    private boolean toggleState;
-
-    /**
-     * Creates a message dialog with a toggle. See the superclass constructor
-     * for info on the other parameters.
-     * 
-     * @param parentShell
-     *            the parent shell
-     * @param dialogTitle
-     *            the dialog title, or <code>null</code> if none
-     * @param image
-     *            the dialog title image, or <code>null</code> if none
-     * @param message
-     *            the dialog message
-     * @param dialogImageType
-     *            one of the following values:
-     *            <ul>
-     *            <li><code>MessageDialog.NONE</code> for a dialog with no
-     *            image</li>
-     *            <li><code>MessageDialog.ERROR</code> for a dialog with an
-     *            error image</li>
-     *            <li><code>MessageDialog.INFORMATION</code> for a dialog
-     *            with an information image</li>
-     *            <li><code>MessageDialog.QUESTION </code> for a dialog with a
-     *            question image</li>
-     *            <li><code>MessageDialog.WARNING</code> for a dialog with a
-     *            warning image</li>
-     *            </ul>
-     * @param dialogButtonLabels
-     *            an array of labels for the buttons in the button bar
-     * @param defaultIndex
-     *            the index in the button label array of the default button
-     * @param toggleMessage
-     *            the message for the toggle control, or <code>null</code> for
-     *            the default message
-     * @param toggleState
-     *            the initial state for the toggle
-     *  
-     */
-    public MessageDialogWithToggle(Shell parentShell, String dialogTitle,
-            Image image, String message, int dialogImageType,
-            String[] dialogButtonLabels, int defaultIndex,
-            String toggleMessage, boolean toggleState) {
-        super(parentShell, dialogTitle, image, message, dialogImageType,
-                dialogButtonLabels, defaultIndex);
-        this.toggleMessage = toggleMessage;
-        this.toggleState = toggleState;
-        setButtonLabels(dialogButtonLabels);
-    }
-
-    /**
-     * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-     */
-    protected void buttonPressed(int buttonId) {
-        super.buttonPressed(buttonId);
-
-        if (buttonId != IDialogConstants.CANCEL_ID && toggleState
-                && prefStore != null && prefKey != null) {
-            switch (buttonId) {
-            case IDialogConstants.YES_ID:
-            case IDialogConstants.YES_TO_ALL_ID:
-            case IDialogConstants.PROCEED_ID:
-            case IDialogConstants.OK_ID:
-                prefStore.setValue(prefKey, ALWAYS);
-                break;
-            case IDialogConstants.NO_ID:
-            case IDialogConstants.NO_TO_ALL_ID:
-                prefStore.setValue(prefKey, NEVER);
-                break;
-            }
-        }
-    }
-
-    /**
-     * @see Dialog#createButtonBar(Composite)
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        final String[] buttonLabels = getButtonLabels();
-        final Button[] buttons = new Button[buttonLabels.length];
-        final int defaultButtonIndex = getDefaultButtonIndex();
-
-        int suggestedId = IDialogConstants.INTERNAL_ID;
-        for (int i = 0; i < buttonLabels.length; i++) {
-            String label = buttonLabels[i];
-            // get the JFace button ID that matches the label, or use the specified
-            // id if there is no match.
-            int id = mapButtonLabelToButtonID(label, suggestedId);
-            
-            // if the suggested id was used, increment the default for next use
-            if (id == suggestedId) {
-				suggestedId++;
-			}
- 
-            Button button = createButton(parent, id, label,
-                    defaultButtonIndex == i);
-            buttons[i] = button;
- 
-        }
-        setButtons(buttons);
-    }
-
-    /**
-     * @see Dialog#createDialogArea(Composite)
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite dialogAreaComposite = (Composite) super
-                .createDialogArea(parent);
-        setToggleButton(createToggleButton(dialogAreaComposite));
-        return dialogAreaComposite;
-    }
-
-    /**
-     * Creates a toggle button without any text or state.  The text and state
-     * will be created by <code>createDialogArea</code>. 
-     * 
-     * @param parent
-     *            The composite in which the toggle button should be placed;
-     *            must not be <code>null</code>.
-     * @return The added toggle button; never <code>null</code>.
-     */
-    protected Button createToggleButton(Composite parent) {
-        final Button button = new Button(parent, SWT.CHECK | SWT.LEFT);
-
-        GridData data = new GridData(SWT.NONE);
-        data.horizontalSpan = 2;
-        button.setLayoutData(data);
-        button.setFont(parent.getFont());
-
-        button.addSelectionListener(new SelectionAdapter() {
-
-            public void widgetSelected(SelectionEvent e) {
-                toggleState = button.getSelection();
-            }
-
-        });
-
-        return button;
-    }
-
-    /**
-     * Returns the toggle button.
-     * 
-     * @return the toggle button
-     */
-    protected Button getToggleButton() {
-        return toggleButton;
-    }
-
-    /**
-     * An accessor for the current preference store for this dialog.
-     * 
-     * @return The preference store; this value may be <code>null</code> if no
-     *         preference is being used.
-     */
-    public IPreferenceStore getPrefStore() {
-        return prefStore;
-    }
-
-    /**
-     * An accessor for the current key of the toggle preference.
-     * 
-     * @return The preference key; this value may be <code>null</code> if no
-     *         preference is being used.
-     */
-    public String getPrefKey() {
-        return prefKey;
-    }
-
-    /**
-     * Returns the toggle state. This can be called even after the dialog is
-     * closed.
-     * 
-     * @return <code>true</code> if the toggle button is checked,
-     *         <code>false</code> if not
-     */
-    public boolean getToggleState() {
-        return toggleState;
-    }
-
-    /**
-     * A mutator for the key of the preference to be modified by the toggle
-     * button.
-     * 
-     * @param prefKey
-     *            The prefKey to set. If this value is <code>null</code>,
-     *            then no preference will be modified.
-     */
-    public void setPrefKey(String prefKey) {
-        this.prefKey = prefKey;
-    }
-
-    /**
-     * A mutator for the preference store to be modified by the toggle button.
-     * 
-     * @param prefStore
-     *            The prefStore to set. If this value is <code>null</code>,
-     *            then no preference will be modified.
-     */
-    public void setPrefStore(IPreferenceStore prefStore) {
-        this.prefStore = prefStore;
-    }
-
-    /**
-     * A mutator for the button providing the toggle option. If the button
-     * exists, then it will automatically get the text set to the current toggle
-     * message, and its selection state set to the current selection state.
-     * 
-     * @param button
-     *            The button to use; must not be <code>null</code>.
-     */
-    protected void setToggleButton(Button button) {
-        if (button == null) {
-            throw new NullPointerException(
-                    "A message dialog with toggle may not have a null toggle button.");} //$NON-NLS-1$
-
-        if (!button.isDisposed()) {
-            final String text;
-            if (toggleMessage == null) {
-                text = JFaceResources
-                        .getString("MessageDialogWithToggle.defaultToggleMessage"); //$NON-NLS-1$
-            } else {
-                text = toggleMessage;
-            }
-            button.setText(text);
-            button.setSelection(toggleState);
-        }
-
-        this.toggleButton = button;
-    }
-
-    /**
-     * A mutator for the text on the toggle button. The button will
-     * automatically get updated with the new text, if it exists.
-     * 
-     * @param message
-     *            The new text of the toggle button; if it is <code>null</code>,
-     *            then used the default toggle message.
-     */
-    protected void setToggleMessage(String message) {
-        this.toggleMessage = message;
-
-        if ((toggleButton != null) && (!toggleButton.isDisposed())) {
-            final String text;
-            if (toggleMessage == null) {
-                text = JFaceResources
-                        .getString("MessageDialogWithToggle.defaultToggleMessage"); //$NON-NLS-1$
-            } else {
-                text = toggleMessage;
-            }
-            toggleButton.setText(text);
-        }
-    }
-
-    /**
-     * A mutator for the state of the toggle button. This method will update the
-     * button, if it exists.
-     * 
-     * @param toggleState
-     *            The desired state of the toggle button (<code>true</code>
-     *            means the toggle should be selected).
-     */
-    public void setToggleState(boolean toggleState) {
-        this.toggleState = toggleState;
-
-        // Update the button, if it exists.
-        if ((toggleButton != null) && (!toggleButton.isDisposed())) {
-            toggleButton.setSelection(toggleState);
-        }
-    }
-    
-    /**
-     * Attempt to find a standard JFace button id that matches the specified button
-     * label.  If no match can be found, use the default id provided.
-     * 
-     * @param buttonLabel the button label whose id is sought
-     * @param defaultId the id to use for the button if there is no standard id
-     * @return the id for the specified button label
-     */
-    private int mapButtonLabelToButtonID(String buttonLabel, int defaultId) {
-    	// Not pretty but does the job...
-    	if (IDialogConstants.OK_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.OK_ID;
-		}
-    	
-	    if (IDialogConstants.YES_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.YES_ID;
-		}
-	    
-	    if (IDialogConstants.NO_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.NO_ID;
-		}
-	    
-	    if (IDialogConstants.CANCEL_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.CANCEL_ID;
-		}
-	    
-	    if (IDialogConstants.YES_TO_ALL_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.YES_TO_ALL_ID;
-		}
-	    
-	    if (IDialogConstants.SKIP_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.SKIP_ID;
-		}
-	    
-	    if (IDialogConstants.STOP_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.STOP_ID;
-		}
-	    
-	    if (IDialogConstants.ABORT_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.ABORT_ID;
-		}
-	    
-	    if (IDialogConstants.RETRY_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.RETRY_ID;
-		}
-	    
-	    if (IDialogConstants.IGNORE_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.IGNORE_ID;
-		}
-	    
-	    if (IDialogConstants.PROCEED_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.PROCEED_ID;
-		}
-	    
-	    if (IDialogConstants.OPEN_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.OPEN_ID;
-		}
-	    
-	    if (IDialogConstants.CLOSE_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.CLOSE_ID;
-		}
-	    
-	    if (IDialogConstants.BACK_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.BACK_ID;
-		}
-	    
-	    if (IDialogConstants.NEXT_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.NEXT_ID;
-		}
-	    
-	    if (IDialogConstants.FINISH_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.FINISH_ID;
-		}
-	    
-	    if (IDialogConstants.HELP_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.HELP_ID;
-		}
-	    
-	    if (IDialogConstants.NO_TO_ALL_LABEL.equals(buttonLabel)) {
-			return IDialogConstants.NO_TO_ALL_ID;
-		}
-	    
-	    if (IDialogConstants.SHOW_DETAILS_LABEL.equals(buttonLabel)) {
-	    	return IDialogConstants.DETAILS_ID;
-	    }
-	    
-	    if (IDialogConstants.HIDE_DETAILS_LABEL.equals(buttonLabel)) {
-	    	return IDialogConstants.DETAILS_ID;
-	    }
-        
-        //          No XXX_LABEL in IDialogConstants for these. Unlikely
-        //            they would be used in a message dialog though.
-        //        	public int SELECT_ALL_ID = 18;
-        //        	public int DESELECT_ALL_ID = 19;
-        //        	public int SELECT_TYPES_ID = 20;
-
-	    return defaultId;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangedEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangedEvent.java
deleted file mode 100644
index d4a6a92..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangedEvent.java
+++ /dev/null
@@ -1,74 +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.jface.dialogs;
-
-import java.util.EventObject;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Event object describing a page selection change. The source of these events
- * is a page change provider.
- * 
- * @see IPageChangeProvider
- * @see IPageChangedListener
- * 
- * @since 3.1
- */
-public class PageChangedEvent extends EventObject {
-
-	/**
-	 * Generated serial version UID for this class.
-	 * 
-	 * @since 3.1
-	 */
-	private static final long serialVersionUID = 3835149545519723574L;
-
-	/**
-	 * The selected page.
-	 */
-	protected Object selectedPage;
-
-	/**
-	 * Creates a new event for the given source and selected page.
-	 * 
-	 * @param source
-	 *            the page change provider
-	 * @param selectedPage
-	 *            the selected page. In the JFace provided dialogs this
-	 *            will be an <code>IDialogPage</code>.
-	 */
-	public PageChangedEvent(IPageChangeProvider source,
-			Object selectedPage) {
-		super(source);
-		Assert.isNotNull(selectedPage);
-		this.selectedPage = selectedPage;
-	}
-
-	/**
-	 * Returns the selected page.
-	 * 
-	 * @return the selected page. In dialogs implemented by JFace, 
-	 * 		this will be an <code>IDialogPage</code>.
-	 */
-	public Object getSelectedPage() {
-		return selectedPage;
-	}
-
-	/**
-	 * Returns the page change provider that is the source of this event.
-	 * 
-	 * @return the originating page change provider
-	 */
-	public IPageChangeProvider getPageChangeProvider() {
-		return (IPageChangeProvider) getSource();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangingEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangingEvent.java
deleted file mode 100644
index 4b78ac0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PageChangingEvent.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Chris Gross (schtoo@schtoo.com) - initial API and implementation for bug 16179
- *     IBM Corporation - revisions to initial contribution
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import java.util.EventObject;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Event object describing an <code>IDialogPage</code> in the midst of changing.
- * 
- * @see IPageChangingListener
- * @since 3.3
- */
-public class PageChangingEvent extends EventObject {
-
-
-	private static final long serialVersionUID = 1L;
-	
-	private Object currentPage;
-	
-	private Object targetPage;
-	
-	/**
-	 * Public field that dictates if the page change will successfully change.
-	 * 
-	 * Set this field to <code>false</code> to prevent the page from changing.
-	 *   
-	 * Default value is <code>true</code>.
-	 */
-	public boolean doit = true;
-
-	/**
-	 * Creates a new event for the given source, selected (current) page and
-	 * direction.
-	 * 
-	 * @param source
-	 *            the page changing provider (the source of this event)
-	 * @param currentPage
-	 *            the current page. In the JFace provided dialogs this will be
-	 *            an <code>IDialogPage</code>.
-	 * @param targetPage
-	 *            the target page. In the JFace provided dialogs this will be an
-	 *            <code>IDialogPage</code>.
-	 */
-	public PageChangingEvent(Object source, Object currentPage, Object targetPage) {
-		super(source);
-		Assert.isNotNull(currentPage);
-		Assert.isNotNull(targetPage);
-		this.currentPage = currentPage;
-		this.targetPage = targetPage;
-	}
-
-	/**
-	 * Returns the current page from which the page change originates.
-	 * 
-	 * @return the current page. In dialogs implemented by JFace, 
-	 * 		this will be an <code>IDialogPage</code>.
-	 */
-	public Object getCurrentPage() {
-		return currentPage;
-	}
-
-	/**
-	 * Returns the target page to change to.
-	 * 
-	 * @return the target page. In dialogs implemented by JFace, 
-	 * 		this will be an <code>IDialogPage</code>.
-	 */
-	public Object getTargetPage() {
-		return targetPage;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
deleted file mode 100644
index b2f6df6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/PopupDialog.java
+++ /dev/null
@@ -1,1598 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Xenos, IBM - bug 156790: Adopt GridLayoutFactory within JFace
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-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.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.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Tracker;
-
-/**
- * A lightweight, transient dialog that is popped up to show contextual or
- * temporal information and is easily dismissed. Clients control whether the
- * dialog should be able to receive input focus. An optional title area at the
- * top and an optional info area at the bottom can be used to provide additional
- * information.
- * <p>
- * Because the dialog is short-lived, most of the configuration of the dialog is
- * done in the constructor. Set methods are only provided for those values that
- * are expected to be dynamically computed based on a particular instance's
- * internal state.
- * <p>
- * Clients are expected to override the creation of the main dialog area, and
- * may optionally override the creation of the title area and info area in order
- * to add content. In general, however, the creation of stylistic features, such
- * as the dialog menu, separator styles, and fonts, is kept private so that all
- * popup dialogs will have a similar appearance.
- * 
- * @since 3.2
- */
-public class PopupDialog extends Window {
-
-	/**
-	 * 
-	 */
-	private static final GridDataFactory LAYOUTDATA_GRAB_BOTH = GridDataFactory
-			.fillDefaults().grab(true, true);
-
-	/**
-	 * The dialog settings key name for stored dialog x location.
-	 */
-	private static final String DIALOG_ORIGIN_X = "DIALOG_X_ORIGIN"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for stored dialog y location.
-	 */
-	private static final String DIALOG_ORIGIN_Y = "DIALOG_Y_ORIGIN"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for stored dialog width.
-	 */
-	private static final String DIALOG_WIDTH = "DIALOG_WIDTH"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for stored dialog height.
-	 */
-	private static final String DIALOG_HEIGHT = "DIALOG_HEIGHT"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for remembering if the persisted bounds
-	 * should be accessed.
-	 * 
-	 * @deprecated Since 3.4, this is retained only for backward compatibility.
-	 */
-	private static final String DIALOG_USE_PERSISTED_BOUNDS = "DIALOG_USE_PERSISTED_BOUNDS"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for remembering if the bounds persisted
-	 * prior to 3.4 have been migrated to the 3.4 settings.
-	 * 
-	 * @since 3.4
-	 * @deprecated This is marked deprecated at its introduction to discourage
-	 *             future dependency
-	 */
-	private static final String DIALOG_VALUE_MIGRATED_TO_34 = "hasBeenMigratedTo34"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for remembering if the persisted size should
-	 * be accessed.
-	 */
-	private static final String DIALOG_USE_PERSISTED_SIZE = "DIALOG_USE_PERSISTED_SIZE"; //$NON-NLS-1$
-
-	/**
-	 * The dialog settings key name for remembering if the persisted location
-	 * should be accessed.
-	 */
-	private static final String DIALOG_USE_PERSISTED_LOCATION = "DIALOG_USE_PERSISTED_LOCATION"; //$NON-NLS-1$
-
-	/**
-	 * Move action for the dialog.
-	 */
-	private class MoveAction extends Action {
-
-		MoveAction() {
-			super(JFaceResources.getString("PopupDialog.move"), //$NON-NLS-1$
-					IAction.AS_PUSH_BUTTON);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			performTrackerAction(SWT.NONE);
-		}
-
-	}
-
-	/**
-	 * Resize action for the dialog.
-	 */
-	private class ResizeAction extends Action {
-
-		ResizeAction() {
-			super(JFaceResources.getString("PopupDialog.resize"), //$NON-NLS-1$
-					IAction.AS_PUSH_BUTTON);
-		}
-
-		/*
-		 * @see org.eclipse.jface.action.Action#run()
-		 */
-		public void run() {
-			performTrackerAction(SWT.RESIZE);
-		}
-	}
-
-	/**
-	 * 
-	 * Remember bounds action for the dialog.
-	 */
-	private class PersistBoundsAction extends Action {
-
-		PersistBoundsAction() {
-			super(JFaceResources.getString("PopupDialog.persistBounds"), //$NON-NLS-1$
-					IAction.AS_CHECK_BOX);
-			setChecked(persistLocation && persistSize);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			persistSize = isChecked();
-			persistLocation = persistSize;
-		}
-	}
-
-	/**
-	 * 
-	 * Remember bounds action for the dialog.
-	 */
-	private class PersistSizeAction extends Action {
-
-		PersistSizeAction() {
-			super(JFaceResources.getString("PopupDialog.persistSize"), //$NON-NLS-1$
-					IAction.AS_CHECK_BOX);
-			setChecked(persistSize);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			persistSize = isChecked();
-		}
-	}
-
-	/**
-	 * 
-	 * Remember location action for the dialog.
-	 */
-	private class PersistLocationAction extends Action {
-
-		PersistLocationAction() {
-			super(JFaceResources.getString("PopupDialog.persistLocation"), //$NON-NLS-1$
-					IAction.AS_CHECK_BOX);
-			setChecked(persistLocation);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			persistLocation = isChecked();
-		}
-	}
-
-	/**
-	 * Shell style appropriate for a simple hover popup that cannot get focus.
-	 * 
-	 */
-	public final static int HOVER_SHELLSTYLE = SWT.NO_FOCUS | SWT.ON_TOP
-			| SWT.TOOL;
-
-	/**
-	 * Shell style appropriate for an info popup that can get focus.
-	 */
-	public final static int INFOPOPUP_SHELLSTYLE = SWT.TOOL;
-
-	/**
-	 * Shell style appropriate for a resizable info popup that can get focus.
-	 */
-	public final static int INFOPOPUPRESIZE_SHELLSTYLE = SWT.RESIZE;
-
-	/**
-	 * Margin width (in pixels) to be used in layouts inside popup dialogs
-	 * (value is 0).
-	 */
-	public final static int POPUP_MARGINWIDTH = 0;
-
-	/**
-	 * Margin height (in pixels) to be used in layouts inside popup dialogs
-	 * (value is 0).
-	 */
-	public final static int POPUP_MARGINHEIGHT = 0;
-
-	/**
-	 * Vertical spacing (in pixels) between cells in the layouts inside popup
-	 * dialogs (value is 1).
-	 */
-	public final static int POPUP_VERTICALSPACING = 1;
-
-	/**
-	 * Vertical spacing (in pixels) between cells in the layouts inside popup
-	 * dialogs (value is 1).
-	 */
-	public final static int POPUP_HORIZONTALSPACING = 1;
-
-	/**
-	 * Image registry key for menu image.
-	 * 
-	 * @since 3.4
-	 */
-	public static final String POPUP_IMG_MENU = "popup_menu_image"; //$NON-NLS-1$
-
-	/**
-	 * Image registry key for disabled menu image.
-	 * 
-	 * @since 3.4
-	 */
-	public static final String POPUP_IMG_MENU_DISABLED = "popup_menu_image_diabled"; //$NON-NLS-1$
-
-	/**
-	 * 
-	 */
-	private static final GridLayoutFactory POPUP_LAYOUT_FACTORY = GridLayoutFactory
-			.fillDefaults().margins(POPUP_MARGINWIDTH, POPUP_MARGINHEIGHT)
-			.spacing(POPUP_HORIZONTALSPACING, POPUP_VERTICALSPACING);
-
-	/**
-	 * The dialog's toolbar for the move and resize capabilities.
-	 */
-	private ToolBar toolBar = null;
-
-	/**
-	 * The dialog's menu manager.
-	 */
-	private MenuManager menuManager = null;
-
-	/**
-	 * The control representing the main dialog area.
-	 */
-	private Control dialogArea;
-
-	/**
-	 * Labels that contain title and info text. Cached so they can be updated
-	 * dynamically if possible.
-	 */
-	private Label titleLabel, infoLabel;
-
-	/**
-	 * Separator controls. Cached so they can be excluded from color changes.
-	 */
-	private Control titleSeparator, infoSeparator;
-
-	/**
-	 * Font to be used for the info area text. Computed based on the dialog's
-	 * font.
-	 */
-	private Font infoFont;
-
-	/**
-	 * Font to be used for the title area text. Computed based on the dialog's
-	 * font.
-	 */
-	private Font titleFont;
-
-	/**
-	 * Flags indicating whether we are listening for shell deactivate events,
-	 * either those or our parent's. Used to prevent closure when a menu command
-	 * is chosen or a secondary popup is launched.
-	 */
-	private boolean listenToDeactivate;
-
-	private boolean listenToParentDeactivate;
-
-	private Listener parentDeactivateListener;
-
-	/**
-	 * Flag indicating whether focus should be taken when the dialog is opened.
-	 */
-	private boolean takeFocusOnOpen = false;
-
-	/**
-	 * Flag specifying whether a menu should be shown that allows the user to
-	 * move and resize.
-	 */
-	private boolean showDialogMenu = false;
-
-	/**
-	 * Flag specifying whether menu actions allowing the user to choose whether
-	 * the dialog bounds and location should be persisted are to be shown.
-	 */
-	private boolean showPersistActions = false;
-
-	/**
-	 * Flag specifying whether the size of the popup should be persisted. This
-	 * flag is used as initial default and updated by the menu if it is shown.
-	 */
-	private boolean persistSize = false;
-
-	/**
-	 * Flag specifying whether the location of the popup should be persisted.
-	 * This flag is used as initial default and updated by the menu if it is
-	 * shown.
-	 */
-	private boolean persistLocation = false;
-	/**
-	 * Flag specifying whether to use new 3.4 API instead of the old one.
-	 * 
-	 * @since 3.4
-	 */
-	private boolean isUsing34API = true;
-
-	/**
-	 * Text to be shown in an optional title area (on top).
-	 */
-	private String titleText;
-
-	/**
-	 * Text to be shown in an optional info area (at the bottom).
-	 */
-	private String infoText;
-
-	/**
-	 * Constructs a new instance of <code>PopupDialog</code>.
-	 * 
-	 * @param parent
-	 *            The parent shell.
-	 * @param shellStyle
-	 *            The shell style.
-	 * @param takeFocusOnOpen
-	 *            A boolean indicating whether focus should be taken by this
-	 *            popup when it opens.
-	 * @param persistBounds
-	 *            A boolean indicating whether the bounds (size and location) of
-	 *            the dialog should be persisted upon close of the dialog. The
-	 *            bounds can only be persisted if the dialog settings for
-	 *            persisting the bounds are also specified. If a menu action
-	 *            will be provided that allows the user to control this feature,
-	 *            then the last known value of the user's setting will be used
-	 *            instead of this flag.
-	 * @param showDialogMenu
-	 *            A boolean indicating whether a menu for moving and resizing
-	 *            the popup should be provided.
-	 * @param showPersistActions
-	 *            A boolean indicating whether actions allowing the user to
-	 *            control the persisting of the dialog size and location should
-	 *            be shown in the dialog menu. This parameter has no effect if
-	 *            <code>showDialogMenu</code> is <code>false</code>.
-	 * @param titleText
-	 *            Text to be shown in an upper title area, or <code>null</code>
-	 *            if there is no title.
-	 * @param infoText
-	 *            Text to be shown in a lower info area, or <code>null</code>
-	 *            if there is no info area.
-	 * 
-	 * @see PopupDialog#getDialogSettings()
-	 * @deprecated As of 3.4, replaced by
-	 *             {@link #PopupDialog(Shell, int, boolean, boolean, boolean, boolean, boolean, String, String)}
-	 */
-	public PopupDialog(Shell parent, int shellStyle, boolean takeFocusOnOpen,
-			boolean persistBounds, boolean showDialogMenu,
-			boolean showPersistActions, String titleText, String infoText) {
-		this(parent, shellStyle, takeFocusOnOpen, persistBounds, persistBounds,
-				showDialogMenu, showPersistActions, titleText, infoText, false);
-	}
-
-	/**
-	 * Constructs a new instance of <code>PopupDialog</code>.
-	 * 
-	 * @param parent
-	 *            The parent shell.
-	 * @param shellStyle
-	 *            The shell style.
-	 * @param takeFocusOnOpen
-	 *            A boolean indicating whether focus should be taken by this
-	 *            popup when it opens.
-	 * @param persistSize
-	 *            A boolean indicating whether the size should be persisted upon
-	 *            close of the dialog. The size can only be persisted if the
-	 *            dialog settings for persisting the bounds are also specified.
-	 *            If a menu action will be provided that allows the user to
-	 *            control this feature and the user hasn't changed that setting,
-	 *            then this flag is used as initial default for the menu.
-	 * @param persistLocation
-	 *            A boolean indicating whether the location should be persisted
-	 *            upon close of the dialog. The location can only be persisted
-	 *            if the dialog settings for persisting the bounds are also
-	 *            specified. If a menu action will be provided that allows the
-	 *            user to control this feature and the user hasn't changed that
-	 *            setting, then this flag is used as initial default for the
-	 *            menu. default for the menu until the user changed it.
-	 * @param showDialogMenu
-	 *            A boolean indicating whether a menu for moving and resizing
-	 *            the popup should be provided.
-	 * @param showPersistActions
-	 *            A boolean indicating whether actions allowing the user to
-	 *            control the persisting of the dialog bounds and location
-	 *            should be shown in the dialog menu. This parameter has no
-	 *            effect if <code>showDialogMenu</code> is <code>false</code>.
-	 * @param titleText
-	 *            Text to be shown in an upper title area, or <code>null</code>
-	 *            if there is no title.
-	 * @param infoText
-	 *            Text to be shown in a lower info area, or <code>null</code>
-	 *            if there is no info area.
-	 * 
-	 * @see PopupDialog#getDialogSettings()
-	 * 
-	 * @since 3.4
-	 */
-	public PopupDialog(Shell parent, int shellStyle, boolean takeFocusOnOpen,
-			boolean persistSize, boolean persistLocation,
-			boolean showDialogMenu, boolean showPersistActions,
-			String titleText, String infoText) {
-		this(parent, shellStyle, takeFocusOnOpen, persistSize, persistLocation,
-				showDialogMenu, showPersistActions, titleText, infoText, true);
-
-	}
-
-	/**
-	 * Constructs a new instance of <code>PopupDialog</code>.
-	 * 
-	 * @param parent
-	 *            The parent shell.
-	 * @param shellStyle
-	 *            The shell style.
-	 * @param takeFocusOnOpen
-	 *            A boolean indicating whether focus should be taken by this
-	 *            popup when it opens.
-	 * @param persistSize
-	 *            A boolean indicating whether the size should be persisted upon
-	 *            close of the dialog. The size can only be persisted if the
-	 *            dialog settings for persisting the bounds are also specified.
-	 *            If a menu action will be provided that allows the user to
-	 *            control this feature and the user hasn't changed that setting,
-	 *            then this flag is used as initial default for the menu.
-	 * @param persistLocation
-	 *            A boolean indicating whether the location should be persisted
-	 *            upon close of the dialog. The location can only be persisted
-	 *            if the dialog settings for persisting the bounds are also
-	 *            specified. If a menu action will be provided that allows the
-	 *            user to control this feature and the user hasn't changed that
-	 *            setting, then this flag is used as initial default for the
-	 *            menu. default for the menu until the user changed it.
-	 * @param showDialogMenu
-	 *            A boolean indicating whether a menu for moving and resizing
-	 *            the popup should be provided.
-	 * @param showPersistActions
-	 *            A boolean indicating whether actions allowing the user to
-	 *            control the persisting of the dialog bounds and location
-	 *            should be shown in the dialog menu. This parameter has no
-	 *            effect if <code>showDialogMenu</code> is <code>false</code>.
-	 * @param titleText
-	 *            Text to be shown in an upper title area, or <code>null</code>
-	 *            if there is no title.
-	 * @param infoText
-	 *            Text to be shown in a lower info area, or <code>null</code>
-	 *            if there is no info area.
-	 * @param use34API
-	 *            <code>true</code> if 3.4 API should be used
-	 * 
-	 * @see PopupDialog#getDialogSettings()
-	 * 
-	 * @since 3.4
-	 */
-	private PopupDialog(Shell parent, int shellStyle, boolean takeFocusOnOpen,
-			boolean persistSize, boolean persistLocation,
-			boolean showDialogMenu, boolean showPersistActions,
-			String titleText, String infoText, boolean use34API) {
-		super(parent);
-		// Prior to 3.4, we encouraged use of SWT.NO_TRIM and provided a
-		// border using a black composite background and margin. Now we
-		// use SWT.TOOL to get the border for some cases and this conflicts
-		// with SWT.NO_TRIM. Clients who previously have used SWT.NO_TRIM
-		// and still had a border drawn for them would find their border go
-		// away unless we do the following:
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=219743
-		if ((shellStyle & SWT.NO_TRIM) != 0) {
-			shellStyle &= ~(SWT.NO_TRIM | SWT.SHELL_TRIM);
-		}
-
-		setShellStyle(shellStyle);
-		this.takeFocusOnOpen = takeFocusOnOpen;
-		this.showDialogMenu = showDialogMenu;
-		this.showPersistActions = showPersistActions;
-		this.titleText = titleText;
-		this.infoText = infoText;
-
-		setBlockOnOpen(false);
-
-		this.isUsing34API = use34API;
-
-		this.persistSize = persistSize;
-		this.persistLocation = persistLocation;
-
-		migrateBoundsSetting();
-
-		initializeWidgetState();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell shell) {
-		GridLayoutFactory.fillDefaults().margins(0, 0).spacing(5, 5).applyTo(
-				shell);
-
-		shell.addListener(SWT.Deactivate, new Listener() {
-			public void handleEvent(Event event) {
-				/*
-				 * Close if we are deactivating and have no child shells. If we
-				 * have child shells, we are deactivating due to their opening.
-				 * On X, we receive this when a menu child (such as the system
-				 * menu) of the shell opens, but I have not found a way to
-				 * distinguish that case here. Hence bug #113577 still exists.
-				 */
-				if (listenToDeactivate && event.widget == getShell()
-						&& getShell().getShells().length == 0) {
-					asyncClose();
-				} else {
-					/*
-					 * We typically ignore deactivates to work around
-					 * platform-specific event ordering. Now that we've ignored
-					 * whatever we were supposed to, start listening to
-					 * deactivates. Example issues can be found in
-					 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=123392
-					 */
-					listenToDeactivate = true;
-				}
-			}
-		});
-		// Set this true whenever we activate. It may have been turned
-		// off by a menu or secondary popup showing.
-		shell.addListener(SWT.Activate, new Listener() {
-			public void handleEvent(Event event) {
-				// ignore this event if we have launched a child
-				if (event.widget == getShell()
-						&& getShell().getShells().length == 0) {
-					listenToDeactivate = true;
-					// Typically we start listening for parent deactivate after
-					// we are activated, except on the Mac, where the deactivate
-					// is received after activate.
-					// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=100668
-					listenToParentDeactivate = !Util.isMac();
-				}
-			}
-		});
-
-		if ((getShellStyle() & SWT.ON_TOP) != 0 && shell.getParent() != null) {
-			parentDeactivateListener = new Listener() {
-				public void handleEvent(Event event) {
-					if (listenToParentDeactivate) {
-						asyncClose();
-					} else {
-						// Our first deactivate, now start listening on the Mac.
-						listenToParentDeactivate = listenToDeactivate;
-					}
-				}
-			};
-			shell.getParent().addListener(SWT.Deactivate,
-					parentDeactivateListener);
-		}
-
-		shell.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				handleDispose();
-			}
-		});
-	}
-
-	private void asyncClose() {
-		// workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=152010
-		getShell().getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				close();
-			}
-		});
-	}
-
-	/**
-	 * The <code>PopupDialog</code> implementation of this <code>Window</code>
-	 * method creates and lays out the top level composite for the dialog. It
-	 * then calls the <code>createTitleMenuArea</code>,
-	 * <code>createDialogArea</code>, and <code>createInfoTextArea</code>
-	 * methods to create an optional title and menu area on the top, a dialog
-	 * area in the center, and an optional info text area at the bottom.
-	 * Overriding <code>createDialogArea</code> and (optionally)
-	 * <code>createTitleMenuArea</code> and <code>createTitleMenuArea</code>
-	 * are recommended rather than overriding this method.
-	 * 
-	 * @param parent
-	 *            the composite used to parent the contents.
-	 * 
-	 * @return the control representing the contents.
-	 */
-	protected Control createContents(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		POPUP_LAYOUT_FACTORY.applyTo(composite);
-		LAYOUTDATA_GRAB_BOTH.applyTo(composite);
-
-		// Title area
-		if (hasTitleArea()) {
-			createTitleMenuArea(composite);
-			titleSeparator = createHorizontalSeparator(composite);
-		}
-		// Content
-		dialogArea = createDialogArea(composite);
-		// Create a grid data layout data if one was not provided.
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=118025
-		if (dialogArea.getLayoutData() == null) {
-			LAYOUTDATA_GRAB_BOTH.applyTo(dialogArea);
-		}
-
-		// Info field
-		if (hasInfoArea()) {
-			infoSeparator = createHorizontalSeparator(composite);
-			createInfoTextArea(composite);
-		}
-
-		applyColors(composite);
-		applyFonts(composite);
-		return composite;
-	}
-
-	/**
-	 * Creates and returns the contents of the dialog (the area below the title
-	 * area and above the info text area.
-	 * <p>
-	 * The <code>PopupDialog</code> implementation of this framework method
-	 * creates and returns a new <code>Composite</code> with standard margins
-	 * and spacing.
-	 * <p>
-	 * The returned control's layout data must be an instance of
-	 * <code>GridData</code>. This method must not modify the parent's
-	 * layout.
-	 * <p>
-	 * Subclasses must override this method but may call <code>super</code> as
-	 * in the following example:
-	 * 
-	 * <pre>
-	 * Composite composite = (Composite) super.createDialogArea(parent);
-	 * //add controls to composite as necessary
-	 * return composite;
-	 * </pre>
-	 * 
-	 * @param parent
-	 *            the parent composite to contain the dialog area
-	 * @return the dialog area control
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		POPUP_LAYOUT_FACTORY.applyTo(composite);
-		LAYOUTDATA_GRAB_BOTH.applyTo(composite);
-		return composite;
-	}
-
-	/**
-	 * Returns the control that should get initial focus. Subclasses may
-	 * override this method.
-	 * 
-	 * @return the Control that should receive focus when the popup opens.
-	 */
-	protected Control getFocusControl() {
-		return dialogArea;
-	}
-
-	/**
-	 * Sets the tab order for the popup. Clients should override to introduce
-	 * specific tab ordering.
-	 * 
-	 * @param composite
-	 *            the composite in which all content, including the title area
-	 *            and info area, was created. This composite's parent is the
-	 *            shell.
-	 */
-	protected void setTabOrder(Composite composite) {
-		// default is to do nothing
-	}
-
-	/**
-	 * Returns a boolean indicating whether the popup should have a title area
-	 * at the top of the dialog. Subclasses may override. Default behavior is to
-	 * have a title area if there is to be a menu or title text.
-	 * 
-	 * @return <code>true</code> if a title area should be created,
-	 *         <code>false</code> if it should not.
-	 */
-	protected boolean hasTitleArea() {
-		return titleText != null || showDialogMenu;
-	}
-
-	/**
-	 * Returns a boolean indicating whether the popup should have an info area
-	 * at the bottom of the dialog. Subclasses may override. Default behavior is
-	 * to have an info area if info text was provided at the time of creation.
-	 * 
-	 * @return <code>true</code> if a title area should be created,
-	 *         <code>false</code> if it should not.
-	 */
-	protected boolean hasInfoArea() {
-		return infoText != null;
-	}
-
-	/**
-	 * Creates the title and menu area. Subclasses typically need not override
-	 * this method, but instead should use the constructor parameters
-	 * <code>showDialogMenu</code> and <code>showPersistAction</code> to
-	 * indicate whether a menu should be shown, and
-	 * <code>createTitleControl</code> to to customize the presentation of the
-	 * title.
-	 * 
-	 * <p>
-	 * If this method is overridden, the returned control's layout data must be
-	 * an instance of <code>GridData</code>. This method must not modify the
-	 * parent's layout.
-	 * 
-	 * @param parent
-	 *            The parent composite.
-	 * @return The Control representing the title and menu area.
-	 */
-	protected Control createTitleMenuArea(Composite parent) {
-
-		Composite titleAreaComposite = new Composite(parent, SWT.NONE);
-		POPUP_LAYOUT_FACTORY.copy().numColumns(2).applyTo(titleAreaComposite);
-		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true,
-				false).applyTo(titleAreaComposite);
-
-		createTitleControl(titleAreaComposite);
-
-		if (showDialogMenu) {
-			createDialogMenu(titleAreaComposite);
-		}
-		return titleAreaComposite;
-	}
-
-	/**
-	 * Creates the control to be used to represent the dialog's title text.
-	 * Subclasses may override if a different control is desired for
-	 * representing the title text, or if something different than the title
-	 * should be displayed in location where the title text typically is shown.
-	 * 
-	 * <p>
-	 * If this method is overridden, the returned control's layout data must be
-	 * an instance of <code>GridData</code>. This method must not modify the
-	 * parent's layout.
-	 * 
-	 * @param parent
-	 *            The parent composite.
-	 * @return The Control representing the title area.
-	 */
-	protected Control createTitleControl(Composite parent) {
-		titleLabel = new Label(parent, SWT.NONE);
-
-		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true,
-				false).span(showDialogMenu ? 1 : 2, 1).applyTo(titleLabel);
-
-		if (titleText != null) {
-			titleLabel.setText(titleText);
-		}
-		return titleLabel;
-	}
-
-	/**
-	 * Creates the optional info text area. This method is only called if the
-	 * <code>hasInfoArea()</code> method returns true. Subclasses typically
-	 * need not override this method, but may do so.
-	 * 
-	 * <p>
-	 * If this method is overridden, the returned control's layout data must be
-	 * an instance of <code>GridData</code>. This method must not modify the
-	 * parent's layout.
-	 * 
-	 * 
-	 * @param parent
-	 *            The parent composite.
-	 * @return The control representing the info text area.
-	 * 
-	 * @see PopupDialog#hasInfoArea()
-	 * @see PopupDialog#createTitleControl(Composite)
-	 */
-	protected Control createInfoTextArea(Composite parent) {
-		// Status label
-		infoLabel = new Label(parent, SWT.RIGHT);
-		infoLabel.setText(infoText);
-		
-		GridDataFactory.fillDefaults().grab(true, false).align(SWT.FILL,
-				SWT.BEGINNING).applyTo(infoLabel);
-		infoLabel.setForeground(parent.getDisplay().getSystemColor(
-				SWT.COLOR_WIDGET_DARK_SHADOW));
-		return infoLabel;
-	}
-
-	/**
-	 * Create a horizontal separator for the given parent.
-	 * 
-	 * @param parent
-	 *            The parent composite.
-	 * @return The Control representing the horizontal separator.
-	 */
-	private Control createHorizontalSeparator(Composite parent) {
-		Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL
-				| SWT.LINE_DOT);
-		GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true,
-				false).applyTo(separator);
-		return separator;
-	}
-
-	/**
-	 * Create the dialog's menu for the move and resize actions.
-	 * 
-	 * @param parent
-	 *            The parent composite.
-	 */
-	private void createDialogMenu(Composite parent) {
-
-		toolBar = new ToolBar(parent, SWT.FLAT);
-		ToolItem viewMenuButton = new ToolItem(toolBar, SWT.PUSH, 0);
-
-		GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).applyTo(
-				toolBar);
-		viewMenuButton.setImage(JFaceResources.getImage(POPUP_IMG_MENU));
-		viewMenuButton.setDisabledImage(JFaceResources
-				.getImage(POPUP_IMG_MENU_DISABLED));
-		viewMenuButton.setToolTipText(JFaceResources
-				.getString("PopupDialog.menuTooltip")); //$NON-NLS-1$
-		viewMenuButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				showDialogMenu();
-			}
-		});
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=177183
-		toolBar.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent e) {
-				showDialogMenu();
-			}
-		});
-	}
-
-	/**
-	 * Fill the dialog's menu. Subclasses may extend or override.
-	 * 
-	 * @param dialogMenu
-	 *            The dialog's menu.
-	 */
-	protected void fillDialogMenu(IMenuManager dialogMenu) {
-		dialogMenu.add(new GroupMarker("SystemMenuStart")); //$NON-NLS-1$
-		dialogMenu.add(new MoveAction());
-		dialogMenu.add(new ResizeAction());
-		if (showPersistActions) {
-			if (isUsing34API) {
-				dialogMenu.add(new PersistLocationAction());
-				dialogMenu.add(new PersistSizeAction());
-			} else {
-				dialogMenu.add(new PersistBoundsAction());
-			}
-		}
-		dialogMenu.add(new Separator("SystemMenuEnd")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Perform the requested tracker action (resize or move).
-	 * 
-	 * @param style
-	 *            The track style (resize or move).
-	 */
-	private void performTrackerAction(int style) {
-		Shell shell = getShell();
-		if (shell == null || shell.isDisposed()) {
-			return;
-		}
-
-		Tracker tracker = new Tracker(shell.getDisplay(), style);
-		tracker.setStippled(true);
-		Rectangle[] r = new Rectangle[] { shell.getBounds() };
-		tracker.setRectangles(r);
-
-		// Ignore any deactivate events caused by opening the tracker.
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=120656
-		boolean oldListenToDeactivate = listenToDeactivate;
-		listenToDeactivate = false;
-		if (tracker.open()) {
-			if (shell != null && !shell.isDisposed()) {
-				shell.setBounds(tracker.getRectangles()[0]);
-			}
-		}
-		listenToDeactivate = oldListenToDeactivate;
-	}
-
-	/**
-	 * Show the dialog's menu. This message has no effect if the receiver was
-	 * not configured to show a menu. Clients may call this method in order to
-	 * trigger the menu via keystrokes or other gestures. Subclasses typically
-	 * do not override method.
-	 */
-	protected void showDialogMenu() {
-		if (!showDialogMenu) {
-			return;
-		}
-
-		if (menuManager == null) {
-			menuManager = new MenuManager();
-			fillDialogMenu(menuManager);
-		}
-		// Setting this flag works around a problem that remains on X only,
-		// whereby activating the menu deactivates our shell.
-		listenToDeactivate = !Util.isGtk();
-
-		Menu menu = menuManager.createContextMenu(getShell());
-		Rectangle bounds = toolBar.getBounds();
-		Point topLeft = new Point(bounds.x, bounds.y + bounds.height);
-		topLeft = getShell().toDisplay(topLeft);
-		menu.setLocation(topLeft.x, topLeft.y);
-		menu.setVisible(true);
-	}
-
-	/**
-	 * Set the text to be shown in the popup's info area. This message has no
-	 * effect if there was no info text supplied when the dialog first opened.
-	 * Subclasses may override this method.
-	 * 
-	 * @param text
-	 *            the text to be shown when the info area is displayed.
-	 * 
-	 */
-	protected void setInfoText(String text) {
-		infoText = text;
-		if (infoLabel != null) {
-			infoLabel.setText(text);
-		}
-	}
-
-	/**
-	 * Set the text to be shown in the popup's title area. This message has no
-	 * effect if there was no title label specified when the dialog was
-	 * originally opened. Subclasses may override this method.
-	 * 
-	 * @param text
-	 *            the text to be shown when the title area is displayed.
-	 * 
-	 */
-	protected void setTitleText(String text) {
-		titleText = text;
-		if (titleLabel != null) {
-			titleLabel.setText(text);
-		}
-	}
-
-	/**
-	 * Return a boolean indicating whether this dialog will persist its bounds.
-	 * This value is initially set in the dialog's constructor, but can be
-	 * modified if the persist bounds action is shown on the menu and the user
-	 * has changed its value. Subclasses may override this method.
-	 * 
-	 * @return <code>true</code> if the dialog's bounds will be persisted,
-	 *         <code>false</code> if it will not.
-	 * 
-	 * @deprecated As of 3.4, please use {@link #getPersistLocation()} or
-	 *             {@link #getPersistSize()} to determine separately whether
-	 *             size or location should be persisted.
-	 */
-	protected boolean getPersistBounds() {
-		return persistLocation && persistSize;
-	}
-
-	/**
-	 * Return a boolean indicating whether this dialog will persist its
-	 * location. This value is initially set in the dialog's constructor, but
-	 * can be modified if the persist location action is shown on the menu and
-	 * the user has changed its value. Subclasses may override this method.
-	 * 
-	 * @return <code>true</code> if the dialog's location will be persisted,
-	 *         <code>false</code> if it will not.
-	 * 
-	 * @see #getPersistSize()
-	 * @since 3.4
-	 */
-	protected boolean getPersistLocation() {
-		return persistLocation;
-	}
-
-	/**
-	 * Return a boolean indicating whether this dialog will persist its size.
-	 * This value is initially set in the dialog's constructor, but can be
-	 * modified if the persist size action is shown on the menu and the user has
-	 * changed its value. Subclasses may override this method.
-	 * 
-	 * @return <code>true</code> if the dialog's size will be persisted,
-	 *         <code>false</code> if it will not.
-	 * 
-	 * @see #getPersistLocation()
-	 * @since 3.4
-	 */
-	protected boolean getPersistSize() {
-		return persistSize;
-	}
-
-	/**
-	 * Opens this window, creating it first if it has not yet been created.
-	 * <p>
-	 * This method is reimplemented for special configuration of PopupDialogs.
-	 * It never blocks on open, immediately returning <code>OK</code> if the
-	 * open is successful, or <code>CANCEL</code> if it is not. It provides
-	 * framework hooks that allow subclasses to set the focus and tab order, and
-	 * avoids the use of <code>shell.open()</code> in cases where the focus
-	 * should not be given to the shell initially.
-	 * 
-	 * @return the return code
-	 * 
-	 * @see org.eclipse.jface.window.Window#open()
-	 */
-	public int open() {
-
-		Shell shell = getShell();
-		if (shell == null || shell.isDisposed()) {
-			shell = null;
-			// create the window
-			create();
-			shell = getShell();
-		}
-
-		// provide a hook for adjusting the bounds. This is only
-		// necessary when there is content driven sizing that must be
-		// adjusted each time the dialog is opened.
-		adjustBounds();
-
-		// limit the shell size to the display size
-		constrainShellSize();
-
-		// set up the tab order for the dialog
-		setTabOrder((Composite) getContents());
-
-		// initialize flags for listening to deactivate
-		listenToDeactivate = false;
-		listenToParentDeactivate = false;
-
-		// open the window
-		if (takeFocusOnOpen) {
-			shell.open();
-			getFocusControl().setFocus();
-		} else {
-			shell.setVisible(true);
-		}
-
-		return OK;
-
-	}
-
-	/**
-	 * Closes this window, disposes its shell, and removes this window from its
-	 * window manager (if it has one).
-	 * <p>
-	 * This method is extended to save the dialog bounds and initialize widget
-	 * state so that the widgets can be recreated if the dialog is reopened.
-	 * This method may be extended (<code>super.close</code> must be called).
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the window is (or was already) closed, and
-	 *         <code>false</code> if it is still open
-	 */
-	public boolean close() {
-		// If already closed, there is nothing to do.
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=127505
-		if (getShell() == null || getShell().isDisposed()) {
-			return true;
-		}
-
-		saveDialogBounds(getShell());
-		// Widgets are about to be disposed, so null out any state
-		// related to them that was not handled in dispose listeners.
-		// We do this before disposal so that any received activate or
-		// deactivate events are duly ignored.
-		initializeWidgetState();
-
-		if (parentDeactivateListener != null) {
-			getShell().getParent().removeListener(SWT.Deactivate,
-					parentDeactivateListener);
-			parentDeactivateListener = null;
-		}
-
-		return super.close();
-	}
-
-	/**
-	 * Gets the dialog settings that should be used for remembering the bounds
-	 * of the dialog. Subclasses should override this method when they wish to
-	 * persist the bounds of the dialog.
-	 * 
-	 * @return settings the dialog settings used to store the dialog's location
-	 *         and/or size, or <code>null</code> if the dialog's bounds should
-	 *         never be stored.
-	 */
-	protected IDialogSettings getDialogSettings() {
-		return null;
-	}
-
-	/**
-	 * Saves the bounds of the shell in the appropriate dialog settings. The
-	 * bounds are recorded relative to the parent shell, if there is one, or
-	 * display coordinates if there is no parent shell. Subclasses typically
-	 * need not override this method, but may extend it (calling
-	 * <code>super.saveDialogBounds</code> if additional bounds information
-	 * should be stored. Clients may also call this method to persist the bounds
-	 * at times other than closing the dialog.
-	 * 
-	 * @param shell
-	 *            The shell whose bounds are to be stored
-	 */
-	protected void saveDialogBounds(Shell shell) {
-		IDialogSettings settings = getDialogSettings();
-		if (settings != null) {
-			Point shellLocation = shell.getLocation();
-			Point shellSize = shell.getSize();
-			Shell parent = getParentShell();
-			if (parent != null) {
-				Point parentLocation = parent.getLocation();
-				shellLocation.x -= parentLocation.x;
-				shellLocation.y -= parentLocation.y;
-			}
-			String prefix = getClass().getName();
-			if (persistSize) {
-				settings.put(prefix + DIALOG_WIDTH, shellSize.x);
-				settings.put(prefix + DIALOG_HEIGHT, shellSize.y);
-			}
-			if (persistLocation) {
-				settings.put(prefix + DIALOG_ORIGIN_X, shellLocation.x);
-				settings.put(prefix + DIALOG_ORIGIN_Y, shellLocation.y);
-			}
-			if (showPersistActions && showDialogMenu) {
-				settings.put(getClass().getName() + DIALOG_USE_PERSISTED_SIZE,
-						persistSize);
-				settings.put(getClass().getName()
-						+ DIALOG_USE_PERSISTED_LOCATION, persistLocation);
-
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#getInitialSize()
-	 */
-	protected Point getInitialSize() {
-		Point result = getDefaultSize();
-		if (persistSize) {
-			IDialogSettings settings = getDialogSettings();
-			if (settings != null) {
-				try {
-					int width = settings.getInt(getClass().getName()
-							+ DIALOG_WIDTH);
-					int height = settings.getInt(getClass().getName()
-							+ DIALOG_HEIGHT);
-					result = new Point(width, height);
-
-				} catch (NumberFormatException e) {
-				}
-			}
-		}
-		// No attempt is made to constrain the bounds. The default
-		// constraining behavior in Window will be used.
-		return result;
-	}
-
-	/**
-	 * Return the default size to use for the shell. This default size is used
-	 * if the dialog does not have any persisted size to restore. The default
-	 * implementation returns the preferred size of the shell. Subclasses should
-	 * override this method when an alternate default size is desired, rather
-	 * than overriding {@link #getInitialSize()}.
-	 * 
-	 * @return the initial size of the shell
-	 * 
-	 * @see #getPersistSize()
-	 * @since 3.4
-	 */
-	protected Point getDefaultSize() {
-		return super.getInitialSize();
-	}
-
-	/**
-	 * Returns the default location to use for the shell. This default location
-	 * is used if the dialog does not have any persisted location to restore.
-	 * The default implementation uses the location computed by
-	 * {@link org.eclipse.jface.window.Window#getInitialLocation(Point)}.
-	 * Subclasses should override this method when an alternate default location
-	 * is desired, rather than overriding {@link #getInitialLocation(Point)}.
-	 * 
-	 * @param initialSize
-	 *            the initial size of the shell, as returned by
-	 *            <code>getInitialSize</code>.
-	 * @return the initial location of the shell
-	 * 
-	 * @see #getPersistLocation()
-	 * @since 3.4
-	 */
-	protected Point getDefaultLocation(Point initialSize) {
-		return super.getInitialLocation(initialSize);
-	}
-
-	/**
-	 * Adjust the bounds of the popup as necessary prior to opening the dialog.
-	 * Default is to do nothing, which honors any bounds set directly by clients
-	 * or those that have been saved in the dialog settings. Subclasses should
-	 * override this method when there are bounds computations that must be
-	 * checked each time the dialog is opened.
-	 */
-	protected void adjustBounds() {
-	}
-
-	/**
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#getInitialLocation(org.eclipse.swt.graphics.Point)
-	 */
-	protected Point getInitialLocation(Point initialSize) {
-		Point result = getDefaultLocation(initialSize);
-		if (persistLocation) {
-			IDialogSettings settings = getDialogSettings();
-			if (settings != null) {
-				try {
-					int x = settings.getInt(getClass().getName()
-							+ DIALOG_ORIGIN_X);
-					int y = settings.getInt(getClass().getName()
-							+ DIALOG_ORIGIN_Y);
-					result = new Point(x, y);
-					// The coordinates were stored relative to the parent shell.
-					// Convert to display coordinates.
-					Shell parent = getParentShell();
-					if (parent != null) {
-						Point parentLocation = parent.getLocation();
-						result.x += parentLocation.x;
-						result.y += parentLocation.y;
-					}
-				} catch (NumberFormatException e) {
-				}
-			}
-		}
-		// No attempt is made to constrain the bounds. The default
-		// constraining behavior in Window will be used.
-		return result;
-	}
-
-	/**
-	 * Apply any desired color to the specified composite and its children.
-	 * 
-	 * @param composite
-	 *            the contents composite
-	 */
-	private void applyColors(Composite composite) {
-		// The getForeground() and getBackground() methods
-		// should not answer null, but IColorProvider clients
-		// are accustomed to null meaning use the default, so we guard
-		// against this assumption.
-		Color color = getForeground();
-		if (color == null)
-			color = getDefaultForeground();
-		applyForegroundColor(color, composite, getForegroundColorExclusions());
-		color = getBackground();
-		if (color == null)
-			color = getDefaultBackground();
-		applyBackgroundColor(color, composite, getBackgroundColorExclusions());
-	}
-
-	/**
-	 * Get the foreground color that should be used for this popup. Subclasses
-	 * may override.
-	 * 
-	 * @return the foreground color to be used. Should not be <code>null</code>.
-	 * 
-	 * @since 3.4
-	 * 
-	 * @see #getForegroundColorExclusions()
-	 */
-	protected Color getForeground() {
-		return getDefaultForeground();
-	}
-
-	/**
-	 * Get the background color that should be used for this popup. Subclasses
-	 * may override.
-	 * 
-	 * @return the background color to be used. Should not be <code>null</code>.
-	 * 
-	 * @since 3.4
-	 * 
-	 * @see #getBackgroundColorExclusions()
-	 */
-	protected Color getBackground() {
-		return getDefaultBackground();
-	}
-
-	/**
-	 * Return the default foreground color used for popup dialogs.
-	 * 
-	 * @return the default foreground color.
-	 */
-	private Color getDefaultForeground() {
-		return getShell().getDisplay()
-				.getSystemColor(SWT.COLOR_INFO_FOREGROUND);
-	}
-
-	/**
-	 * Return the default background color used for popup dialogs.
-	 * 
-	 * @return the default background color
-	 */
-	private Color getDefaultBackground() {
-		return getShell().getDisplay()
-				.getSystemColor(SWT.COLOR_INFO_BACKGROUND);
-	}
-
-	/**
-	 * Apply any desired fonts to the specified composite and its children.
-	 * 
-	 * @param composite
-	 *            the contents composite
-	 */
-	private void applyFonts(Composite composite) {
-		Dialog.applyDialogFont(composite);
-
-		if (titleLabel != null) {
-			Font font = titleLabel.getFont();
-			FontData[] fontDatas = font.getFontData();
-			for (int i = 0; i < fontDatas.length; i++) {
-				fontDatas[i].setStyle(SWT.BOLD);
-			}
-			titleFont = new Font(titleLabel.getDisplay(), fontDatas);
-			titleLabel.setFont(titleFont);
-		}
-
-		if (infoLabel != null) {
-			Font font = infoLabel.getFont();
-			FontData[] fontDatas = font.getFontData();
-			for (int i = 0; i < fontDatas.length; i++) {
-				fontDatas[i].setHeight(fontDatas[i].getHeight() * 9 / 10);
-			}
-			infoFont = new Font(infoLabel.getDisplay(), fontDatas);
-			infoLabel.setFont(infoFont);
-		}
-	}
-
-	/**
-	 * Set the specified foreground color for the specified control and all of
-	 * its children, except for those specified in the list of exclusions.
-	 * 
-	 * @param color
-	 *            the color to use as the foreground color
-	 * @param control
-	 *            the control whose color is to be changed
-	 * @param exclusions
-	 *            a list of controls who are to be excluded from getting their
-	 *            color assigned
-	 */
-	private void applyForegroundColor(Color color, Control control,
-			List exclusions) {
-		if (!exclusions.contains(control)) {
-			control.setForeground(color);
-		}
-		if (control instanceof Composite) {
-			Control[] children = ((Composite) control).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				applyForegroundColor(color, children[i], exclusions);
-			}
-		}
-	}
-
-	/**
-	 * Set the specified background color for the specified control and all of
-	 * its children, except for those specified in the list of exclusions.
-	 * 
-	 * @param color
-	 *            the color to use as the background color
-	 * @param control
-	 *            the control whose color is to be changed
-	 * @param exclusions
-	 *            a list of controls who are to be excluded from getting their
-	 *            color assigned
-	 */
-	private void applyBackgroundColor(Color color, Control control,
-			List exclusions) {
-		if (!exclusions.contains(control)) {
-			control.setBackground(color);
-		}
-		if (control instanceof Composite) {
-			Control[] children = ((Composite) control).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				applyBackgroundColor(color, children[i], exclusions);
-			}
-		}
-	}
-
-	/**
-	 * Set the specified foreground color for the specified control and all of
-	 * its children. Subclasses may override this method, but typically do not.
-	 * If a subclass wishes to exclude a particular control in its contents from
-	 * getting the specified foreground color, it may instead override
-	 * {@link #getForegroundColorExclusions()}.
-	 * 
-	 * @param color
-	 *            the color to use as the foreground color
-	 * @param control
-	 *            the control whose color is to be changed
-	 * @see PopupDialog#getForegroundColorExclusions()
-	 */
-	protected void applyForegroundColor(Color color, Control control) {
-		applyForegroundColor(color, control, getForegroundColorExclusions());
-	}
-
-	/**
-	 * Set the specified background color for the specified control and all of
-	 * its children. Subclasses may override this method, but typically do not.
-	 * If a subclass wishes to exclude a particular control in its contents from
-	 * getting the specified background color, it may instead override
-	 * {@link #getBackgroundColorExclusions()}
-	 * 
-	 * @param color
-	 *            the color to use as the background color
-	 * @param control
-	 *            the control whose color is to be changed
-	 * @see PopupDialog#getBackgroundColorExclusions()
-	 */
-	protected void applyBackgroundColor(Color color, Control control) {
-		applyBackgroundColor(color, control, getBackgroundColorExclusions());
-	}
-
-	/**
-	 * Return a list of controls which should never have their foreground color
-	 * reset. Subclasses may extend this method, but should always call
-	 * <code>super.getForegroundColorExclusions</code> to aggregate the list.
-	 * 
-	 * 
-	 * @return the List of controls
-	 */
-	protected List getForegroundColorExclusions() {
-		List list = new ArrayList(3);
-		if (infoLabel != null) {
-			list.add(infoLabel);
-		}
-		if (titleSeparator != null) {
-			list.add(titleSeparator);
-		}
-		if (infoSeparator != null) {
-			list.add(infoSeparator);
-		}
-		return list;
-	}
-
-	/**
-	 * Return a list of controls which should never have their background color
-	 * reset. Subclasses may extend this method, but should always call
-	 * <code>super.getBackgroundColorExclusions</code> to aggregate the list.
-	 * 
-	 * @return the List of controls
-	 */
-	protected List getBackgroundColorExclusions() {
-		List list = new ArrayList(2);
-		if (titleSeparator != null) {
-			list.add(titleSeparator);
-		}
-		if (infoSeparator != null) {
-			list.add(infoSeparator);
-		}
-		return list;
-	}
-
-	/**
-	 * Initialize any state related to the widgetry that should be set up each
-	 * time widgets are created.
-	 */
-	private void initializeWidgetState() {
-		menuManager = null;
-		dialogArea = null;
-		titleLabel = null;
-		titleSeparator = null;
-		infoSeparator = null;
-		infoLabel = null;
-		toolBar = null;
-
-		// If the menu item for persisting bounds is displayed, use the stored
-		// value to determine whether any persisted bounds should be honored at
-		// all.
-		if (showDialogMenu && showPersistActions) {
-			IDialogSettings settings = getDialogSettings();
-			if (settings != null) {
-				String key = getClass().getName() + DIALOG_USE_PERSISTED_SIZE;
-				if (settings.get(key) != null || !isUsing34API)
-					persistSize = settings.getBoolean(key);
-				key = getClass().getName() + DIALOG_USE_PERSISTED_LOCATION;
-				if (settings.get(key) != null || !isUsing34API)
-					persistLocation = settings.getBoolean(key);
-			}
-		}
-	}
-
-	private void migrateBoundsSetting() {
-		IDialogSettings settings = getDialogSettings();
-		if (settings == null)
-			return;
-
-		final String className = getClass().getName();
-
-		String key = className + DIALOG_USE_PERSISTED_BOUNDS;
-		String value = settings.get(key);
-		if (value == null || DIALOG_VALUE_MIGRATED_TO_34.equals(value))
-			return;
-
-		boolean storeBounds = settings.getBoolean(key);
-		settings.put(className + DIALOG_USE_PERSISTED_LOCATION, storeBounds);
-		settings.put(className + DIALOG_USE_PERSISTED_SIZE, storeBounds);
-		settings.put(key, DIALOG_VALUE_MIGRATED_TO_34);
-	}
-
-	/**
-	 * The dialog is being disposed. Dispose of any resources allocated.
-	 * 
-	 */
-	private void handleDispose() {
-		if (infoFont != null && !infoFont.isDisposed()) {
-			infoFont.dispose();
-		}
-		infoFont = null;
-		if (titleFont != null && !titleFont.isDisposed()) {
-			titleFont.dispose();
-		}
-		titleFont = null;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressIndicator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressIndicator.java
deleted file mode 100644
index a006a4b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressIndicator.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Mark Siegel <mark.siegel@businessobjects.com> - Fix for Bug 184533
- *     			[Progress] ProgressIndicator uses hardcoded style for ProgressBar
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.ProgressBar;
-
-/**
- * A control for showing progress feedback for a long running operation. This
- * control supports both determinate and indeterminate SWT progress bars. For
- * indeterminate progress, we don't have to know the total amount of work in
- * advance and no <code>worked</code> method needs to be called.
- */
-public class ProgressIndicator extends Composite {
-    private final static int PROGRESS_MAX = 1000; // value to use for max in
-
-    // progress bar
-    private boolean animated = true;
-
-    private StackLayout layout;
-
-    private ProgressBar determinateProgressBar;
-
-    private ProgressBar indeterminateProgressBar;
-
-    private double totalWork;
-
-    private double sumWorked;
-
-    /**
-     * Create a ProgressIndicator as a child under the given parent.
-     * 
-     * @param parent
-     *            The widgets parent
-     */
-    public ProgressIndicator(Composite parent) {
-        this(parent, SWT.NONE);      
-    }
-    
-    /**
-     * Create a ProgressIndicator as a child under the given parent.
-     * 
-     * @param parent
-     *            The widgets parent
-     * @param style the SWT style constants for progress monitors created 
-     * 	by the receiver.
-     * @since 3.4
-     */
-    public ProgressIndicator(Composite parent, int style) {
-    	super(parent, SWT.NULL);
-    	
-    	 // Enforce horizontal only if vertical isn't set
-        if ((style & SWT.VERTICAL) == 0)
-            style |= SWT.HORIZONTAL;
-
-        determinateProgressBar = new ProgressBar(this, style);
-        indeterminateProgressBar = new ProgressBar(this, style
-                | SWT.INDETERMINATE);
-        layout = new StackLayout();
-        setLayout(layout);
-    }
-
-    /**
-     * Initialize the progress bar to be animated.
-     */
-    public void beginAnimatedTask() {
-        done();
-        layout.topControl = indeterminateProgressBar;
-        layout();
-        animated = true;
-    }
-
-    /**
-     * Initialize the progress bar.
-     * 
-     * @param max
-     *            The maximum value.
-     */
-    public void beginTask(int max) {
-        done();
-        this.totalWork = max;
-        this.sumWorked = 0;
-        determinateProgressBar.setMinimum(0);
-        determinateProgressBar.setMaximum(PROGRESS_MAX);
-        determinateProgressBar.setSelection(0);
-        layout.topControl = determinateProgressBar;
-        layout();
-        animated = false;
-    }
-
-    /**
-     * Progress is done.
-     */
-    public void done() {
-        if (!animated) {
-            determinateProgressBar.setMinimum(0);
-            determinateProgressBar.setMaximum(0);
-            determinateProgressBar.setSelection(0);
-        }
-        layout.topControl = null;
-        layout();
-    }
-
-    /**
-     * Moves the progress indicator to the end.
-     */
-    public void sendRemainingWork() {
-        worked(totalWork - sumWorked);
-    }
-
-    /**
-     * Moves the progress indicator by the given amount of work units
-     * @param work the amount of work to increment by.
-     */
-    public void worked(double work) {
-        if (work == 0 || animated) {
-            return;
-        }
-        sumWorked += work;
-        if (sumWorked > totalWork) {
-            sumWorked = totalWork;
-        }
-        if (sumWorked < 0) {
-            sumWorked = 0;
-        }
-        int value = (int) (sumWorked / totalWork * PROGRESS_MAX);
-        if (determinateProgressBar.getSelection() < value) {
-            determinateProgressBar.setSelection(value);
-        }
-    }
-
-    /**
-	 * Show the receiver as showing an error.
-	 * @since 3.4
-	 */
-	public void showError() {
-		determinateProgressBar.setState(SWT.ERROR);
-		indeterminateProgressBar.setState(SWT.ERROR);
-	}
-	
-	/**
-	 * Show the receiver as being paused.
-	 * @since 3.4
-	 */
-	public void showPaused() {
-		determinateProgressBar.setState(SWT.PAUSED);
-		indeterminateProgressBar.setState(SWT.PAUSED);
-	}
-
-	/**
-	 * Reset the progress bar to it's normal style.
-	 * @since 3.4
-	 */
-	public void showNormal() {
-		determinateProgressBar.setState(SWT.NORMAL);
-		indeterminateProgressBar.setState(SWT.NORMAL);
-		
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java
deleted file mode 100644
index 465bd9f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/ProgressMonitorDialog.java
+++ /dev/null
@@ -1,685 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IProgressMonitorWithBlocking;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A modal dialog that displays progress during a long running operation.
- * <p>
- * This concrete dialog class can be instantiated as is, or further subclassed
- * as required.
- * </p>
- * <p>
- * Typical usage is:
- * 
- * <pre>
- *  
- *   
- *    try {
- *       IRunnableWithProgress op = ...;
- *       new ProgressMonitorDialog(activeShell).run(true, true, op);
- *    } catch (InvocationTargetException e) {
- *       // handle exception
- *    } catch (InterruptedException e) {
- *       // handle cancelation
- *    }
- *    
- *   
- * </pre>
- * 
- * </p>
- * <p>
- * Note that the ProgressMonitorDialog is not intended to be used with multiple
- * runnables - this dialog should be discarded after completion of one
- * IRunnableWithProgress and a new one instantiated for use by a second or
- * sebsequent IRunnableWithProgress to ensure proper initialization.
- * </p>
- * <p>
- * Note that not forking the process will result in it running in the UI which
- * may starve the UI. The most obvious symptom of this problem is non
- * responsiveness of the cancel button. If you are running within the UI Thread
- * you should do the bulk of your work in another Thread to prevent starvation.
- * It is recommended that fork is set to true in most cases.
- * </p>
- */
-public class ProgressMonitorDialog extends IconAndMessageDialog implements
-		IRunnableContext {
-	/**
-	 * Name to use for task when normal task name is empty string.
-	 */
-	private static String DEFAULT_TASKNAME = JFaceResources
-			.getString("ProgressMonitorDialog.message"); //$NON-NLS-1$
-
-	/**
-	 * Constants for label and monitor size
-	 */
-	private static int LABEL_DLUS = 21;
-
-	private static int BAR_DLUS = 9;
-
-	/**
-	 * The progress indicator control.
-	 */
-	protected ProgressIndicator progressIndicator;
-
-	/**
-	 * The label control for the task. Kept for backwards compatibility.
-	 */
-	protected Label taskLabel;
-
-	/**
-	 * The label control for the subtask.
-	 */
-	protected Label subTaskLabel;
-
-	/**
-	 * The Cancel button control.
-	 */
-	protected Button cancel;
-
-	/**
-	 * Indicates whether the Cancel button is to be shown.
-	 */
-	protected boolean operationCancelableState = false;
-
-	/**
-	 * Indicates whether the Cancel button is to be enabled.
-	 */
-	protected boolean enableCancelButton;
-
-	/**
-	 * The progress monitor.
-	 */
-	private ProgressMonitor progressMonitor = new ProgressMonitor();
-
-	/**
-	 * The name of the current task (used by ProgressMonitor).
-	 */
-	private String task;
-
-	/**
-	 * The nesting depth of currently running runnables.
-	 */
-	private int nestingDepth;
-
-	/**
-	 * The cursor used in the cancel button;
-	 */
-	protected Cursor arrowCursor;
-
-	/**
-	 * The cursor used in the shell;
-	 */
-	private Cursor waitCursor;
-
-	/**
-	 * Flag indicating whether to open or merely create the dialog before run.
-	 */
-	private boolean openOnRun = true;
-
-	/**
-	 * Internal progress monitor implementation.
-	 */
-	private class ProgressMonitor implements IProgressMonitorWithBlocking {
-		private String fSubTask = "";//$NON-NLS-1$
-
-		private boolean fIsCanceled;
-
-		/**
-		 * is the process forked
-		 */
-		protected boolean forked = false;
-
-		/**
-		 * is locked
-		 */
-		protected boolean locked = false;
-
-		public void beginTask(String name, int totalWork) {
-			if (progressIndicator.isDisposed()) {
-				return;
-			}
-			if (name == null) {
-				task = "";//$NON-NLS-1$
-			} else {
-				task = name;
-			}
-			String s = task;
-			if (s.length() <= 0) {
-				s = DEFAULT_TASKNAME;
-			}
-			setMessage(s, false);
-			if (!forked) {
-				update();
-			}
-			if (totalWork == UNKNOWN) {
-				progressIndicator.beginAnimatedTask();
-			} else {
-				progressIndicator.beginTask(totalWork);
-			}
-		}
-
-		public void done() {
-			if (!progressIndicator.isDisposed()) {
-				progressIndicator.sendRemainingWork();
-				progressIndicator.done();
-			}
-		}
-
-		public void setTaskName(String name) {
-			if (name == null) {
-				task = "";//$NON-NLS-1$
-			} else {
-				task = name;
-			}
-			String s = task;
-			if (s.length() <= 0) {
-				s = DEFAULT_TASKNAME;
-			}
-			setMessage(s, false);
-			if (!forked) {
-				update();
-			}
-		}
-
-		public boolean isCanceled() {
-			return fIsCanceled;
-		}
-
-		public void setCanceled(boolean b) {
-			fIsCanceled = b;
-			if (locked) {
-				clearBlocked();
-			}
-		}
-
-		public void subTask(String name) {
-			if (subTaskLabel.isDisposed()) {
-				return;
-			}
-			if (name == null) {
-				fSubTask = "";//$NON-NLS-1$
-			} else {
-				fSubTask = name;
-			}
-			subTaskLabel.setText(shortenText(fSubTask, subTaskLabel));
-			if (!forked) {
-				subTaskLabel.update();
-			}
-		}
-
-		public void worked(int work) {
-			internalWorked(work);
-		}
-
-		public void internalWorked(double work) {
-			if (!progressIndicator.isDisposed()) {
-				progressIndicator.worked(work);
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#clearBlocked()
-		 */
-		public void clearBlocked() {
-			if (getShell() == null || getShell().isDisposed())
-				return;
-			locked = false;
-			updateForClearBlocked();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#setBlocked(org.eclipse.core.runtime.IStatus)
-		 */
-		public void setBlocked(IStatus reason) {
-			if (getShell() == null || getShell().isDisposed())
-				return;
-			locked = true;
-			updateForSetBlocked(reason);
-		}
-	}
-
-	/**
-	 * Clear blocked state from the receiver.
-	 */
-	protected void updateForClearBlocked() {
-		progressIndicator.showNormal();
-		setMessage(task, true);
-		imageLabel.setImage(getImage());
-		
-	}
-
-	/**
-	 * Set blocked state from the receiver.
-	 * 
-	 * @param reason
-	 *            IStatus that gives the details
-	 */
-	protected void updateForSetBlocked(IStatus reason) {
-		progressIndicator.showPaused();
-		setMessage(reason.getMessage(), true);
-		imageLabel.setImage(getImage());
-		
-	}
-
-	/**
-	 * Creates a progress monitor dialog under the given shell. The dialog has a
-	 * standard title and no image. <code>open</code> is non-blocking.
-	 * 
-	 * @param parent
-	 *            the parent shell, or <code>null</code> to create a top-level
-	 *            shell
-	 */
-	public ProgressMonitorDialog(Shell parent) {
-		super(parent);
-		// no close button on the shell style
-		if (isResizable()) {
-			setShellStyle(getDefaultOrientation() | SWT.BORDER | SWT.TITLE
-					| SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.MAX);
-		} else {
-			setShellStyle(getDefaultOrientation() | SWT.BORDER | SWT.TITLE
-					| SWT.APPLICATION_MODAL);
-		}
-		setBlockOnOpen(false);
-	}
-
-	/**
-	 * Enables the cancel button (asynchronously).
-	 * 
-	 * @param b
-	 *            The state to set the button to.
-	 */
-	private void asyncSetOperationCancelButtonEnabled(final boolean b) {
-		if (getShell() != null) {
-			getShell().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					setOperationCancelButtonEnabled(b);
-				}
-			});
-		}
-	}
-
-	/**
-	 * The cancel button has been pressed.
-	 * 
-	 * @since 3.0
-	 */
-	protected void cancelPressed() {
-		// NOTE: this was previously done from a listener installed on the
-		// cancel button. On GTK, the listener installed by
-		// Dialog.createButton is called first and this was throwing an
-		// exception because the cancel button was already disposed
-		cancel.setEnabled(false);
-		progressMonitor.setCanceled(true);
-		super.cancelPressed();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Window.
-	 */
-	/**
-	 * The <code>ProgressMonitorDialog</code> implementation of this method
-	 * only closes the dialog if there are no currently running runnables.
-	 */
-	public boolean close() {
-		if (getNestingDepth() <= 0) {
-			clearCursors();
-			return super.close();
-		}
-		return false;
-	}
-
-	/**
-	 * Clear the cursors in the dialog.
-	 * 
-	 * @since 3.0
-	 */
-	protected void clearCursors() {
-		if (cancel != null && !cancel.isDisposed()) {
-			cancel.setCursor(null);
-		}
-		Shell shell = getShell();
-		if (shell != null && !shell.isDisposed()) {
-			shell.setCursor(null);
-		}
-		if (arrowCursor != null) {
-			arrowCursor.dispose();
-		}
-		if (waitCursor != null) {
-			waitCursor.dispose();
-		}
-		arrowCursor = null;
-		waitCursor = null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in Window.
-	 */
-	protected void configureShell(final Shell shell) {
-		super.configureShell(shell);
-		shell.setText(JFaceResources.getString("ProgressMonitorDialog.title")); //$NON-NLS-1$
-		if (waitCursor == null) {
-			waitCursor = new Cursor(shell.getDisplay(), SWT.CURSOR_WAIT);
-		}
-		shell.setCursor(waitCursor);
-		// Add a listener to set the message properly when the dialog becomes
-		// visible
-		shell.addListener(SWT.Show, new Listener() {
-			public void handleEvent(Event event) {
-				// We need to async the message update since the Show precedes
-				// visibility
-				shell.getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						setMessage(message, true);
-					}
-				});
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		// cancel button
-		createCancelButton(parent);
-	}
-
-	/**
-	 * Creates the cancel button.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @since 3.0
-	 */
-	protected void createCancelButton(Composite parent) {
-		cancel = createButton(parent, IDialogConstants.CANCEL_ID,
-				IDialogConstants.CANCEL_LABEL, true);
-		if (arrowCursor == null) {
-			arrowCursor = new Cursor(cancel.getDisplay(), SWT.CURSOR_ARROW);
-		}
-		cancel.setCursor(arrowCursor);
-		setOperationCancelButtonEnabled(enableCancelButton);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		setMessage(DEFAULT_TASKNAME, false);
-		createMessageArea(parent);
-		// Only set for backwards compatibility
-		taskLabel = messageLabel;
-		// progress indicator
-		progressIndicator = new ProgressIndicator(parent);
-		GridData gd = new GridData();
-		gd.heightHint = convertVerticalDLUsToPixels(BAR_DLUS);
-		gd.horizontalAlignment = GridData.FILL;
-		gd.grabExcessHorizontalSpace = true;
-		gd.horizontalSpan = 2;
-		progressIndicator.setLayoutData(gd);
-		// label showing current task
-		subTaskLabel = new Label(parent, SWT.LEFT | SWT.WRAP);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint = convertVerticalDLUsToPixels(LABEL_DLUS);
-		gd.horizontalSpan = 2;
-		subTaskLabel.setLayoutData(gd);
-		subTaskLabel.setFont(parent.getFont());
-		return parent;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#getInitialSize()
-	 */
-	protected Point getInitialSize() {
-		Point calculatedSize = super.getInitialSize();
-		if (calculatedSize.x < 450) {
-			calculatedSize.x = 450;
-		}
-		return calculatedSize;
-	}
-
-	/**
-	 * Returns the progress monitor to use for operations run in this progress
-	 * dialog.
-	 * 
-	 * @return the progress monitor
-	 */
-	public IProgressMonitor getProgressMonitor() {
-		return progressMonitor;
-	}
-
-	/**
-	 * This implementation of IRunnableContext#run(boolean, boolean,
-	 * IRunnableWithProgress) runs the given <code>IRunnableWithProgress</code>
-	 * using the progress monitor for this progress dialog and blocks until the
-	 * runnable has been run, regardless of the value of <code>fork</code>.
-	 * The dialog is opened before the runnable is run, and closed after it
-	 * completes. It is recommended that <code>fork</code> is set to true in
-	 * most cases. If <code>fork</code> is set to <code>false</code>, the
-	 * runnable will run in the UI thread and it is the runnable's
-	 * responsibility to call <code>Display.readAndDispatch()</code> to ensure
-	 * UI responsiveness.
-	 */
-	public void run(boolean fork, boolean cancelable,
-			IRunnableWithProgress runnable) throws InvocationTargetException,
-			InterruptedException {
-		setCancelable(cancelable);
-		try {
-			aboutToRun();
-			// Let the progress monitor know if they need to update in UI Thread
-			progressMonitor.forked = fork;
-			ModalContext.run(runnable, fork, getProgressMonitor(), getShell()
-					.getDisplay());
-		} finally {
-			finishedRun();
-		}
-	}
-
-	/**
-	 * Returns whether the dialog should be opened before the operation is run.
-	 * Defaults to <code>true</code>
-	 * 
-	 * @return <code>true</code> to open the dialog before run,
-	 *         <code>false</code> to only create the dialog, but not open it
-	 * @since 3.0
-	 */
-	public boolean getOpenOnRun() {
-		return openOnRun;
-	}
-
-	/**
-	 * Sets whether the dialog should be opened before the operation is run.
-	 * NOTE: Setting this to false and not forking a process may starve any
-	 * asyncExec that tries to open the dialog later.
-	 * 
-	 * @param openOnRun
-	 *            <code>true</code> to open the dialog before run,
-	 *            <code>false</code> to only create the dialog, but not open
-	 *            it
-	 * @since 3.0
-	 */
-	public void setOpenOnRun(boolean openOnRun) {
-		this.openOnRun = openOnRun;
-	}
-
-	/**
-	 * Returns the nesting depth of running operations.
-	 * 
-	 * @return the nesting depth of running operations
-	 * @since 3.0
-	 */
-	protected int getNestingDepth() {
-		return nestingDepth;
-	}
-
-	/**
-	 * Increments the nesting depth of running operations.
-	 * 
-	 * @since 3.0
-	 */
-	protected void incrementNestingDepth() {
-		nestingDepth++;
-	}
-
-	/**
-	 * Decrements the nesting depth of running operations.
-	 * 
-	 * @since 3.0
-	 * 
-	 */
-	protected void decrementNestingDepth() {
-		nestingDepth--;
-	}
-
-	/**
-	 * Called just before the operation is run. Default behaviour is to open or
-	 * create the dialog, based on the setting of <code>getOpenOnRun</code>,
-	 * and increment the nesting depth.
-	 * 
-	 * @since 3.0
-	 */
-	protected void aboutToRun() {
-		if (getOpenOnRun()) {
-			open();
-		} else {
-			create();
-		}
-		incrementNestingDepth();
-	}
-
-	/**
-	 * Called just after the operation is run. Default behaviour is to decrement
-	 * the nesting depth, and close the dialog.
-	 * 
-	 * @since 3.0
-	 */
-	protected void finishedRun() {
-		decrementNestingDepth();
-		close();
-	}
-
-	/**
-	 * Sets whether the progress dialog is cancelable or not.
-	 * 
-	 * @param cancelable
-	 *            <code>true</code> if the end user can cancel this progress
-	 *            dialog, and <code>false</code> if it cannot be canceled
-	 */
-	public void setCancelable(boolean cancelable) {
-		if (cancel == null) {
-			enableCancelButton = cancelable;
-		} else {
-			asyncSetOperationCancelButtonEnabled(cancelable);
-		}
-	}
-
-	/**
-	 * Helper to enable/disable Cancel button for this dialog.
-	 * 
-	 * @param b
-	 *            <code>true</code> to enable the cancel button, and
-	 *            <code>false</code> to disable it
-	 * @since 3.0
-	 */
-	protected void setOperationCancelButtonEnabled(boolean b) {
-		operationCancelableState = b;
-		cancel.setEnabled(b);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getImage()
-	 */
-	protected Image getImage() {
-		return getInfoImage();
-	}
-
-	/**
-	 * Set the message in the message label.
-	 * 
-	 * @param messageString
-	 *            The string for the new message.
-	 * @param force
-	 *            If force is true then always set the message text.
-	 */
-	private void setMessage(String messageString, boolean force) {
-		// must not set null text in a label
-		message = messageString == null ? "" : messageString; //$NON-NLS-1$
-		if (messageLabel == null || messageLabel.isDisposed()) {
-			return;
-		}
-		if (force || messageLabel.isVisible()) {
-			messageLabel.setToolTipText(message);
-			messageLabel.setText(shortenText(message, messageLabel));
-		}
-	}
-
-	/**
-	 * Update the message label. Required if the monitor is forked.
-	 */
-	private void update() {
-		if (messageLabel == null || messageLabel.isDisposed()) {
-			return;
-		}
-		messageLabel.update();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#open()
-	 */
-	public int open() {
-		// Check to be sure it is not already done. If it is just return OK.
-		if (!getOpenOnRun()) {
-			if (getNestingDepth() == 0) {
-				return OK;
-			}
-		}
-		int result = super.open();
-		// update message label just in case beginTask() has been invoked
-		// already
-		if (task == null || task.length() == 0)
-			setMessage(DEFAULT_TASKNAME, true);
-		else
-			setMessage(task, true);
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/StatusDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/StatusDialog.java
deleted file mode 100644
index 7c7f436..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/StatusDialog.java
+++ /dev/null
@@ -1,298 +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.jface.dialogs;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * An abstract base class for dialogs with a status bar and OK/CANCEL buttons.
- * The status message is specified in an IStatus which can be of severity ERROR,
- * WARNING, INFO or OK. The OK button is enabled or disabled depending on the
- * status.
- * 
- * @since 3.1
- */
-public abstract class StatusDialog extends TrayDialog {
-
-	private Button fOkButton;
-
-	private MessageLine fStatusLine;
-
-	private IStatus fLastStatus;
-
-	private String fTitle;
-
-	private Image fImage;
-
-	private boolean fStatusLineAboveButtons = true;
-
-	/**
-	 * A message line displaying a status.
-	 */
-	private class MessageLine extends CLabel {
-
-		private Color fNormalMsgAreaBackground;
-
-		/**
-		 * Creates a new message line as a child of the given parent.
-		 * 
-		 * @param parent
-		 */
-		public MessageLine(Composite parent) {
-			this(parent, SWT.LEFT);
-		}
-
-		/**
-		 * Creates a new message line as a child of the parent and with the
-		 * given SWT stylebits.
-		 * 
-		 * @param parent
-		 * @param style
-		 */
-		public MessageLine(Composite parent, int style) {
-			super(parent, style);
-			fNormalMsgAreaBackground = getBackground();
-		}
-
-		/**
-		 * Find an image assocated with the status.
-		 * 
-		 * @param status
-		 * @return Image
-		 */
-		private Image findImage(IStatus status) {
-			if (status.isOK()) {
-				return null;
-			} else if (status.matches(IStatus.ERROR)) {
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR);
-			} else if (status.matches(IStatus.WARNING)) {
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING);
-			} else if (status.matches(IStatus.INFO)) {
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_INFO);
-			}
-			return null;
-		}
-
-		/**
-		 * Sets the message and image to the given status.
-		 * 
-		 * @param status
-		 *            IStatus or <code>null</code>. <code>null</code> will
-		 *            set the empty text and no image.
-		 */
-		public void setErrorStatus(IStatus status) {
-			if (status != null && !status.isOK()) {
-				String message = status.getMessage();
-				if (message != null && message.length() > 0) {
-					setText(message);
-					// unqualified call of setImage is too ambiguous for
-					// Foundation 1.0 compiler
-					// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=140576
-					MessageLine.this.setImage(findImage(status));
-					setBackground(JFaceColors.getErrorBackground(getDisplay()));
-					return;
-				}
-			}
-			setText(""); //$NON-NLS-1$	
-			// unqualified call of setImage is too ambiguous for Foundation 1.0
-			// compiler
-			// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=140576
-			MessageLine.this.setImage(null);
-			setBackground(fNormalMsgAreaBackground);
-		}
-	}
-
-	/**
-	 * Creates an instance of a status dialog.
-	 * 
-	 * @param parent
-	 *            the parent Shell of the dialog
-	 */
-	public StatusDialog(Shell parent) {
-		super(parent);
-		fLastStatus = new Status(IStatus.OK, Policy.JFACE, IStatus.OK,
-				Util.ZERO_LENGTH_STRING, null);
-	}
-
-	/**
-	 * Specifies whether status line appears to the left of the buttons
-	 * (default) or above them.
-	 * 
-	 * @param aboveButtons
-	 *            if <code>true</code> status line is placed above buttons; if
-	 *            <code>false</code> to the right
-	 */
-	public void setStatusLineAboveButtons(boolean aboveButtons) {
-		fStatusLineAboveButtons = aboveButtons;
-	}
-
-	/**
-	 * Update the dialog's status line to reflect the given status. It is safe
-	 * to call this method before the dialog has been opened.
-	 * 
-	 * @param status
-	 *            the status to set
-	 */
-	protected void updateStatus(IStatus status) {
-		fLastStatus = status;
-		if (fStatusLine != null && !fStatusLine.isDisposed()) {
-			updateButtonsEnableState(status);
-			fStatusLine.setErrorStatus(status);
-		}
-	}
-
-	/**
-	 * Returns the last status.
-	 * 
-	 * @return IStatus
-	 */
-	public IStatus getStatus() {
-		return fLastStatus;
-	}
-
-	/**
-	 * Updates the status of the ok button to reflect the given status.
-	 * Subclasses may override this method to update additional buttons.
-	 * 
-	 * @param status
-	 *            the status.
-	 */
-	protected void updateButtonsEnableState(IStatus status) {
-		if (fOkButton != null && !fOkButton.isDisposed()) {
-			fOkButton.setEnabled(!status.matches(IStatus.ERROR));
-		}
-	}
-
-	/*
-	 * @see Window#create(Shell)
-	 */
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		if (fTitle != null) {
-			shell.setText(fTitle);
-		}
-	}
-
-	/*
-	 * @see Window#create()
-	 */
-	public void create() {
-		super.create();
-		if (fLastStatus != null) {
-			// policy: dialogs are not allowed to come up with an error message
-			if (fLastStatus.matches(IStatus.ERROR)) {
-				// remove the message
-				fLastStatus = new Status(IStatus.ERROR,
-						fLastStatus.getPlugin(), fLastStatus.getCode(),
-						"", fLastStatus.getException()); //$NON-NLS-1$
-			}
-			updateStatus(fLastStatus);
-		}
-	}
-
-	/*
-	 * @see Dialog#createButtonsForButtonBar(Composite)
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		fOkButton = createButton(parent, IDialogConstants.OK_ID,
-				IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID,
-				IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	/*
-	 * @see Dialog#createButtonBar(Composite)
-	 */
-	protected Control createButtonBar(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-
-		if (fStatusLineAboveButtons) {
-			layout.numColumns = 1;
-		} else {
-			layout.numColumns = 2;
-		}
-
-		layout.marginHeight = 0;
-		layout.marginLeft = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		if (!fStatusLineAboveButtons && isHelpAvailable()) {
-			createHelpControl(composite);
-		}
-		fStatusLine = new MessageLine(composite);
-		fStatusLine.setAlignment(SWT.LEFT);
-		GridData statusData = new GridData(GridData.FILL_HORIZONTAL);
-		fStatusLine.setErrorStatus(null);
-		if (fStatusLineAboveButtons && isHelpAvailable()) {
-			statusData.horizontalSpan = 2;
-			createHelpControl(composite);
-		}
-		fStatusLine.setLayoutData(statusData);
-		applyDialogFont(composite);
-
-		/*
-		 * Create the rest of the button bar, but tell it not to create a help
-		 * button (we've already created it).
-		 */
-		boolean helpAvailable = isHelpAvailable();
-		setHelpAvailable(false);
-		super.createButtonBar(composite);
-		setHelpAvailable(helpAvailable);
-		return composite;
-	}
-
-	/**
-	 * Sets the title for this dialog.
-	 * 
-	 * @param title
-	 *            the title.
-	 */
-	public void setTitle(String title) {
-		fTitle = title != null ? title : ""; //$NON-NLS-1$
-		Shell shell = getShell();
-		if ((shell != null) && !shell.isDisposed()) {
-			shell.setText(fTitle);
-		}
-	}
-
-	/**
-	 * Sets the image for this dialog.
-	 * 
-	 * @param image
-	 *            the image.
-	 */
-	public void setImage(Image image) {
-		fImage = image;
-		Shell shell = getShell();
-		if ((shell != null) && !shell.isDisposed()) {
-			shell.setImage(fImage);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TitleAreaDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TitleAreaDialog.java
deleted file mode 100644
index aa940df..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TitleAreaDialog.java
+++ /dev/null
@@ -1,624 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Konstantin Scheglov <scheglov_ke@nlmk.ru > - Fix for bug 41172
- *     [Dialogs] Bug with Image in TitleAreaDialog
- *     Sebastian Davids <sdavids@gmx.de> - Fix for bug 82064
- *     [Dialogs] TitleAreaDialog#setTitleImage cannot be called before open()
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * A dialog that has a title area for displaying a title and an image as well as
- * a common area for displaying a description, a message, or an error message.
- * <p>
- * This dialog class may be subclassed.
- */
-public class TitleAreaDialog extends TrayDialog {
-	/**
-	 * Image registry key for error message image.
-	 */
-	public static final String DLG_IMG_TITLE_ERROR = DLG_IMG_MESSAGE_ERROR;
-
-	/**
-	 * Image registry key for banner image (value
-	 * <code>"dialog_title_banner_image"</code>).
-	 */
-	public static final String DLG_IMG_TITLE_BANNER = "dialog_title_banner_image";//$NON-NLS-1$
-
-	/**
-	 * Message type constant used to display an info icon with the message.
-	 * 
-	 * @since 2.0
-	 * @deprecated
-	 */
-	public final static String INFO_MESSAGE = "INFO_MESSAGE"; //$NON-NLS-1$
-
-	/**
-	 * Message type constant used to display a warning icon with the message.
-	 * 
-	 * @since 2.0
-	 * @deprecated
-	 */
-	public final static String WARNING_MESSAGE = "WARNING_MESSAGE"; //$NON-NLS-1$
-
-	// Space between an image and a label
-	private static final int H_GAP_IMAGE = 5;
-
-	// Minimum dialog width (in dialog units)
-	private static final int MIN_DIALOG_WIDTH = 350;
-
-	// Minimum dialog height (in dialog units)
-	private static final int MIN_DIALOG_HEIGHT = 150;
-
-	private Label titleLabel;
-
-	private Label titleImageLabel;
-
-	private Label bottomFillerLabel;
-
-	private Label leftFillerLabel;
-
-	private RGB titleAreaRGB;
-
-	Color titleAreaColor;
-
-	private String message = ""; //$NON-NLS-1$
-
-	private String errorMessage;
-
-	private Text messageLabel;
-
-	private Composite workArea;
-
-	private Label messageImageLabel;
-
-	private Image messageImage;
-
-	private boolean showingError = false;
-
-	private boolean titleImageLargest = true;
-
-	private int messageLabelHeight;
-
-	private Image titleAreaImage;
-
-	/**
-	 * Instantiate a new title area dialog.
-	 * 
-	 * @param parentShell
-	 *            the parent SWT shell
-	 */
-	public TitleAreaDialog(Shell parentShell) {
-		super(parentShell);
-	}
-
-	/*
-	 * @see Dialog.createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		// create the overall composite
-		Composite contents = new Composite(parent, SWT.NONE);
-		contents.setLayoutData(new GridData(GridData.FILL_BOTH));
-		// initialize the dialog units
-		initializeDialogUnits(contents);
-		FormLayout layout = new FormLayout();
-		contents.setLayout(layout);
-		// Now create a work area for the rest of the dialog
-		workArea = new Composite(contents, SWT.NONE);
-		GridLayout childLayout = new GridLayout();
-		childLayout.marginHeight = 0;
-		childLayout.marginWidth = 0;
-		childLayout.verticalSpacing = 0;
-		workArea.setLayout(childLayout);
-		Control top = createTitleArea(contents);
-		resetWorkAreaAttachments(top);
-		workArea.setFont(JFaceResources.getDialogFont());
-		// initialize the dialog units
-		initializeDialogUnits(workArea);
-		// create the dialog area and button bar
-		dialogArea = createDialogArea(workArea);
-		buttonBar = createButtonBar(workArea);
-		return contents;
-	}
-
-	/**
-	 * Creates and returns the contents of the upper part of this dialog (above
-	 * the button bar).
-	 * <p>
-	 * The <code>Dialog</code> implementation of this framework method creates
-	 * and returns a new <code>Composite</code> with no margins and spacing.
-	 * Subclasses should override.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            The parent composite to contain the dialog area
-	 * @return the dialog area control
-	 */
-	protected Control createDialogArea(Composite parent) {
-		// create the top level composite for the dialog area
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 0;
-		layout.horizontalSpacing = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		composite.setFont(parent.getFont());
-		// Build the separator line
-		Label titleBarSeparator = new Label(composite, SWT.HORIZONTAL
-				| SWT.SEPARATOR);
-		titleBarSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		return composite;
-	}
-
-	/**
-	 * Creates the dialog's title area.
-	 * 
-	 * @param parent
-	 *            the SWT parent for the title area widgets
-	 * @return Control with the highest x axis value.
-	 */
-	private Control createTitleArea(Composite parent) {
-
-		// add a dispose listener
-		parent.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (titleAreaColor != null) {
-					titleAreaColor.dispose();
-				}
-			}
-		});
-		// Determine the background color of the title bar
-		Display display = parent.getDisplay();
-		Color background;
-		Color foreground;
-		if (titleAreaRGB != null) {
-			titleAreaColor = new Color(display, titleAreaRGB);
-			background = titleAreaColor;
-			foreground = null;
-		} else {
-			background = JFaceColors.getBannerBackground(display);
-			foreground = JFaceColors.getBannerForeground(display);
-		}
-
-		parent.setBackground(background);
-		int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		int horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		// Dialog image @ right
-		titleImageLabel = new Label(parent, SWT.CENTER);
-		titleImageLabel.setBackground(background);
-		if (titleAreaImage == null)
-			titleImageLabel.setImage(JFaceResources
-					.getImage(DLG_IMG_TITLE_BANNER));
-		else
-			titleImageLabel.setImage(titleAreaImage);
-
-		FormData imageData = new FormData();
-		imageData.top = new FormAttachment(0, 0);
-		// Note: do not use horizontalSpacing on the right as that would be a
-		// regression from
-		// the R2.x style where there was no margin on the right and images are
-		// flush to the right
-		// hand side. see reopened comments in 41172
-		imageData.right = new FormAttachment(100, 0); // horizontalSpacing
-		titleImageLabel.setLayoutData(imageData);
-		// Title label @ top, left
-		titleLabel = new Label(parent, SWT.LEFT);
-		JFaceColors.setColors(titleLabel, foreground, background);
-		titleLabel.setFont(JFaceResources.getBannerFont());
-		titleLabel.setText(" ");//$NON-NLS-1$
-		FormData titleData = new FormData();
-		titleData.top = new FormAttachment(0, verticalSpacing);
-		titleData.right = new FormAttachment(titleImageLabel);
-		titleData.left = new FormAttachment(0, horizontalSpacing);
-		titleLabel.setLayoutData(titleData);
-		// Message image @ bottom, left
-		messageImageLabel = new Label(parent, SWT.CENTER);
-		messageImageLabel.setBackground(background);
-		// Message label @ bottom, center
-		messageLabel = new Text(parent, SWT.WRAP | SWT.READ_ONLY);
-		JFaceColors.setColors(messageLabel, foreground, background);
-		messageLabel.setText(" \n "); // two lines//$NON-NLS-1$
-		messageLabel.setFont(JFaceResources.getDialogFont());
-		messageLabelHeight = messageLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		// Filler labels
-		leftFillerLabel = new Label(parent, SWT.CENTER);
-		leftFillerLabel.setBackground(background);
-		bottomFillerLabel = new Label(parent, SWT.CENTER);
-		bottomFillerLabel.setBackground(background);
-		setLayoutsForNormalMessage(verticalSpacing, horizontalSpacing);
-		determineTitleImageLargest();
-		if (titleImageLargest)
-			return titleImageLabel;
-		return messageLabel;
-	}
-
-	/**
-	 * Determine if the title image is larger than the title message and message
-	 * area. This is used for layout decisions.
-	 */
-	private void determineTitleImageLargest() {
-		int titleY = titleImageLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		int labelY = titleLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		labelY += verticalSpacing;
-		labelY += messageLabelHeight;
-		labelY += verticalSpacing;
-		titleImageLargest = titleY > labelY;
-	}
-
-	/**
-	 * Set the layout values for the messageLabel, messageImageLabel and
-	 * fillerLabel for the case where there is a normal message.
-	 * 
-	 * @param verticalSpacing
-	 *            int The spacing between widgets on the vertical axis.
-	 * @param horizontalSpacing
-	 *            int The spacing between widgets on the horizontal axis.
-	 */
-	private void setLayoutsForNormalMessage(int verticalSpacing,
-			int horizontalSpacing) {
-		FormData messageImageData = new FormData();
-		messageImageData.top = new FormAttachment(titleLabel, verticalSpacing);
-		messageImageData.left = new FormAttachment(0, H_GAP_IMAGE);
-		messageImageLabel.setLayoutData(messageImageData);
-		FormData messageLabelData = new FormData();
-		messageLabelData.top = new FormAttachment(titleLabel, verticalSpacing);
-		messageLabelData.right = new FormAttachment(titleImageLabel);
-		messageLabelData.left = new FormAttachment(messageImageLabel,
-				horizontalSpacing);
-		messageLabelData.height = messageLabelHeight;
-		if (titleImageLargest)
-			messageLabelData.bottom = new FormAttachment(titleImageLabel, 0,
-					SWT.BOTTOM);
-		messageLabel.setLayoutData(messageLabelData);
-		FormData fillerData = new FormData();
-		fillerData.left = new FormAttachment(0, horizontalSpacing);
-		fillerData.top = new FormAttachment(messageImageLabel, 0);
-		fillerData.bottom = new FormAttachment(messageLabel, 0, SWT.BOTTOM);
-		bottomFillerLabel.setLayoutData(fillerData);
-		FormData data = new FormData();
-		data.top = new FormAttachment(messageImageLabel, 0, SWT.TOP);
-		data.left = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(messageImageLabel, 0, SWT.BOTTOM);
-		data.right = new FormAttachment(messageImageLabel, 0);
-		leftFillerLabel.setLayoutData(data);
-	}
-
-	/**
-	 * The <code>TitleAreaDialog</code> implementation of this
-	 * <code>Window</code> methods returns an initial size which is at least
-	 * some reasonable minimum.
-	 * 
-	 * @return the initial size of the dialog
-	 */
-	protected Point getInitialSize() {
-		Point shellSize = super.getInitialSize();
-		return new Point(Math.max(
-				convertHorizontalDLUsToPixels(MIN_DIALOG_WIDTH), shellSize.x),
-				Math.max(convertVerticalDLUsToPixels(MIN_DIALOG_HEIGHT),
-						shellSize.y));
-	}
-
-	/**
-	 * Retained for backward compatibility.
-	 * 
-	 * Returns the title area composite. There is no composite in this
-	 * implementation so the shell is returned.
-	 * 
-	 * @return Composite
-	 * @deprecated
-	 */
-	protected Composite getTitleArea() {
-		return getShell();
-	}
-
-	/**
-	 * Returns the title image label.
-	 * 
-	 * @return the title image label
-	 */
-	protected Label getTitleImageLabel() {
-		return titleImageLabel;
-	}
-
-	/**
-	 * Display the given error message. The currently displayed message is saved
-	 * and will be redisplayed when the error message is set to
-	 * <code>null</code>.
-	 * 
-	 * @param newErrorMessage
-	 *            the newErrorMessage to display or <code>null</code>
-	 */
-	public void setErrorMessage(String newErrorMessage) {
-		// Any change?
-		if (errorMessage == null ? newErrorMessage == null : errorMessage
-				.equals(newErrorMessage))
-			return;
-		errorMessage = newErrorMessage;
-
-		// Clear or set error message.
-		if (errorMessage == null) {
-			if (showingError) {
-				// we were previously showing an error
-				showingError = false;
-			}
-			// show the message
-			// avoid calling setMessage in case it is overridden to call
-			// setErrorMessage,
-			// which would result in a recursive infinite loop
-			if (message == null) // this should probably never happen since
-				// setMessage does this conversion....
-				message = ""; //$NON-NLS-1$
-			updateMessage(message);
-			messageImageLabel.setImage(messageImage);
-			setImageLabelVisible(messageImage != null);
-		} else {
-			// Add in a space for layout purposes but do not
-			// change the instance variable
-			String displayedErrorMessage = " " + errorMessage; //$NON-NLS-1$
-			updateMessage(displayedErrorMessage);
-			if (!showingError) {
-				// we were not previously showing an error
-				showingError = true;
-				messageImageLabel.setImage(JFaceResources
-						.getImage(DLG_IMG_TITLE_ERROR));
-				setImageLabelVisible(true);
-			}
-		}
-		layoutForNewMessage();
-	}
-
-	/**
-	 * Re-layout the labels for the new message.
-	 */
-	private void layoutForNewMessage() {
-		int verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		int horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		// If there are no images then layout as normal
-		if (errorMessage == null && messageImage == null) {
-			setImageLabelVisible(false);
-			setLayoutsForNormalMessage(verticalSpacing, horizontalSpacing);
-		} else {
-			messageImageLabel.setVisible(true);
-			bottomFillerLabel.setVisible(true);
-			leftFillerLabel.setVisible(true);
-			/**
-			 * Note that we do not use horizontalSpacing here as when the
-			 * background of the messages changes there will be gaps between the
-			 * icon label and the message that are the background color of the
-			 * shell. We add a leading space elsewhere to compendate for this.
-			 */
-			FormData data = new FormData();
-			data.left = new FormAttachment(0, H_GAP_IMAGE);
-			data.top = new FormAttachment(titleLabel, verticalSpacing);
-			messageImageLabel.setLayoutData(data);
-			data = new FormData();
-			data.top = new FormAttachment(messageImageLabel, 0);
-			data.left = new FormAttachment(0, 0);
-			data.bottom = new FormAttachment(messageLabel, 0, SWT.BOTTOM);
-			data.right = new FormAttachment(messageImageLabel, 0, SWT.RIGHT);
-			bottomFillerLabel.setLayoutData(data);
-			data = new FormData();
-			data.top = new FormAttachment(messageImageLabel, 0, SWT.TOP);
-			data.left = new FormAttachment(0, 0);
-			data.bottom = new FormAttachment(messageImageLabel, 0, SWT.BOTTOM);
-			data.right = new FormAttachment(messageImageLabel, 0);
-			leftFillerLabel.setLayoutData(data);
-			FormData messageLabelData = new FormData();
-			messageLabelData.top = new FormAttachment(titleLabel,
-					verticalSpacing);
-			messageLabelData.right = new FormAttachment(titleImageLabel);
-			messageLabelData.left = new FormAttachment(messageImageLabel, 0);
-			messageLabelData.height = messageLabelHeight;
-			if (titleImageLargest)
-				messageLabelData.bottom = new FormAttachment(titleImageLabel,
-						0, SWT.BOTTOM);
-			messageLabel.setLayoutData(messageLabelData);
-		}
-		// Do not layout before the dialog area has been created
-		// to avoid incomplete calculations.
-		if (dialogArea != null)
-			workArea.getParent().layout(true);
-	}
-
-	/**
-	 * Set the message text. If the message line currently displays an error,
-	 * the message is saved and will be redisplayed when the error message is
-	 * set to <code>null</code>.
-	 * <p>
-	 * Shortcut for <code>setMessage(newMessage, IMessageProvider.NONE)</code>
-	 * </p>
-	 * This method should be called after the dialog has been opened as it
-	 * updates the message label immediately.
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 */
-	public void setMessage(String newMessage) {
-		setMessage(newMessage, IMessageProvider.NONE);
-	}
-
-	/**
-	 * Sets the message for this dialog with an indication of what type of
-	 * message it is.
-	 * <p>
-	 * The valid message types are one of <code>NONE</code>,
-	 * <code>INFORMATION</code>,<code>WARNING</code>, or
-	 * <code>ERROR</code>.
-	 * </p>
-	 * <p>
-	 * Note that for backward compatibility, a message of type
-	 * <code>ERROR</code> is different than an error message (set using
-	 * <code>setErrorMessage</code>). An error message overrides the current
-	 * message until the error message is cleared. This method replaces the
-	 * current message and does not affect the error message.
-	 * </p>
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @since 2.0
-	 */
-	public void setMessage(String newMessage, int newType) {
-		Image newImage = null;
-		if (newMessage != null) {
-			switch (newType) {
-			case IMessageProvider.NONE:
-				break;
-			case IMessageProvider.INFORMATION:
-				newImage = JFaceResources.getImage(DLG_IMG_MESSAGE_INFO);
-				break;
-			case IMessageProvider.WARNING:
-				newImage = JFaceResources.getImage(DLG_IMG_MESSAGE_WARNING);
-				break;
-			case IMessageProvider.ERROR:
-				newImage = JFaceResources.getImage(DLG_IMG_MESSAGE_ERROR);
-				break;
-			}
-		}
-		showMessage(newMessage, newImage);
-	}
-
-	/**
-	 * Show the new message and image.
-	 * 
-	 * @param newMessage
-	 * @param newImage
-	 */
-	private void showMessage(String newMessage, Image newImage) {
-		// Any change?
-		if (message.equals(newMessage) && messageImage == newImage) {
-			return;
-		}
-		message = newMessage;
-		if (message == null)
-			message = "";//$NON-NLS-1$
-		// Message string to be shown - if there is an image then add in
-		// a space to the message for layout purposes
-		String shownMessage = (newImage == null) ? message : " " + message; //$NON-NLS-1$  
-		messageImage = newImage;
-		if (!showingError) {
-			// we are not showing an error
-			updateMessage(shownMessage);
-			messageImageLabel.setImage(messageImage);
-			setImageLabelVisible(messageImage != null);
-			layoutForNewMessage();
-		}
-	}
-
-	/**
-	 * Update the contents of the messageLabel.
-	 * 
-	 * @param newMessage
-	 *            the message to use
-	 */
-	private void updateMessage(String newMessage) {
-		messageLabel.setText(newMessage);
-	}
-
-	/**
-	 * Sets the title to be shown in the title area of this dialog.
-	 * 
-	 * @param newTitle
-	 *            the title show
-	 */
-	public void setTitle(String newTitle) {
-		if (titleLabel == null)
-			return;
-		String title = newTitle;
-		if (title == null)
-			title = "";//$NON-NLS-1$
-		titleLabel.setText(title);
-	}
-
-	/**
-	 * Sets the title bar color for this dialog.
-	 * 
-	 * @param color
-	 *            the title bar color
-	 */
-	public void setTitleAreaColor(RGB color) {
-		titleAreaRGB = color;
-	}
-
-	/**
-	 * Sets the title image to be shown in the title area of this dialog.
-	 * 
-	 * @param newTitleImage
-	 *            the title image to be shown
-	 */
-	public void setTitleImage(Image newTitleImage) {
-
-		titleAreaImage = newTitleImage;
-		if (titleImageLabel != null) {
-			titleImageLabel.setImage(newTitleImage);
-			determineTitleImageLargest();
-			Control top;
-			if (titleImageLargest)
-				top = titleImageLabel;
-			else
-				top = messageLabel;
-			resetWorkAreaAttachments(top);
-		}
-	}
-
-	/**
-	 * Make the label used for displaying error images visible depending on
-	 * boolean.
-	 * 
-	 * @param visible
-	 *            If <code>true</code> make the image visible, if not then
-	 *            make it not visible.
-	 */
-	private void setImageLabelVisible(boolean visible) {
-		messageImageLabel.setVisible(visible);
-		bottomFillerLabel.setVisible(visible);
-		leftFillerLabel.setVisible(visible);
-	}
-
-	/**
-	 * Reset the attachment of the workArea to now attach to top as the top
-	 * control.
-	 * 
-	 * @param top
-	 */
-	private void resetWorkAreaAttachments(Control top) {
-		FormData childData = new FormData();
-		childData.top = new FormAttachment(top);
-		childData.right = new FormAttachment(100, 0);
-		childData.left = new FormAttachment(0, 0);
-		childData.bottom = new FormAttachment(100, 0);
-		workArea.setLayoutData(childData);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TrayDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TrayDialog.java
deleted file mode 100644
index da2103a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/TrayDialog.java
+++ /dev/null
@@ -1,433 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.dialogs;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Cursor;
-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.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * A <code>TrayDialog</code> is a specialized <code>Dialog</code> that can contain
- * a tray on its side. The tray's content is provided as a <code>DialogTray</code>.
- * <p>
- * It is recommended to subclass this class instead of <code>Dialog</code> in all
- * cases except where the dialog should never show a tray. For example, dialogs
- * which are very short, simple, and quick to dismiss (e.g. a message dialog with
- * an OK button) should subclass <code>Dialog</code>.
- * </p>
- * <p>
- * Note: Trays are not supported on dialogs that use a custom layout on the <code>
- * Shell</code> by overriding <code>Window#getLayout()</code>.
- * </p>
- * 
- * @see org.eclipse.jface.dialogs.DialogTray
- * @see org.eclipse.jface.window.Window#getLayout()
- * @since 3.2
- */
-public abstract class TrayDialog extends Dialog {
-
-	private final class ResizeListener extends ControlAdapter {
-
-		private final GridData data;
-		private final Shell shell;
-		private final int TRAY_RATIO = 100; // Percentage of extra width devoted to tray when resizing
-		private int remainder = 0; // Used to prevent rounding errors from accumulating
-
-		private ResizeListener(GridData data, Shell shell) {
-			this.data = data;
-			this.shell = shell;
-		}
-
-		public void controlResized (ControlEvent event) {
-				int newWidth = shell.getSize().x;
-				if (newWidth != shellWidth) {					
-					int shellWidthIncrease = newWidth - shellWidth;
-					int trayWidthIncreaseTimes100 = (shellWidthIncrease * TRAY_RATIO) + remainder;
-					int trayWidthIncrease = trayWidthIncreaseTimes100/100;
-					remainder = trayWidthIncreaseTimes100 - (100 * trayWidthIncrease);
-					data.widthHint = data.widthHint + trayWidthIncrease;
-					shellWidth = newWidth;
-					if (!shell.isDisposed()) {
-						shell.layout();
-					}
-				}
-		  }
-	}
-
-	private static boolean dialogHelpAvailable;
-
-	/*
-	 * The dialog's tray (null if none).
-	 */
-	private DialogTray tray;
-
-	/*
-	 * The tray's control.
-	 */
-	private Control trayControl;
-	
-	/*
-	 * The separator to the left of the sash.
-	 */
-	private Label leftSeparator;
-	
-	/*
-	 * The separator to the right of the sash.
-	 */
-	private Label rightSeparator;
-	
-	/*
-	 * The sash that allows the user to resize the tray.
-	 */
-	private Sash sash;
-	
-	/*
-	 * Whether or not help is available for this dialog.
-	 */
-	private boolean helpAvailable = isDialogHelpAvailable();
-	
-	private int shellWidth;
-
-	private ControlAdapter resizeListener;
-
-	/**
-	 * Creates a tray dialog instance. Note that the window will have no visual
-	 * representation (no widgets) until it is told to open.
-	 * 
-	 * @param shell the parent shell, or <code>null</code> to create a top-level shell
-	 */
-	protected TrayDialog(Shell shell) {
-		super(shell);
-	}
-	
-	/**
-	 * Creates a tray dialog with the given parent.
-	 * 
-	 * @param parentShell the object that returns the current parent shell
-	 */
-	protected TrayDialog(IShellProvider parentShell) {
-		super(parentShell);
-	}
-
-	/**
-	 * Closes this dialog's tray, disposing its widgets.
-	 * 
-	 * @throws IllegalStateException if the tray was not open
-	 */
-	public void closeTray() throws IllegalStateException {
-		if (getTray() == null) {
-			throw new IllegalStateException("Tray was not open"); //$NON-NLS-1$
-		}
-		Shell shell = getShell();
-		shell.removeControlListener (resizeListener);
-		resizeListener = null;
-		int trayWidth = trayControl.getSize().x + leftSeparator.getSize().x + sash.getSize().x + rightSeparator.getSize().x;
-		trayControl.dispose();
-		trayControl = null;
-		tray = null;
-		leftSeparator.dispose();
-		leftSeparator = null;
-		rightSeparator.dispose();
-		rightSeparator = null;
-		sash.dispose();
-		sash = null;
-		Rectangle bounds = shell.getBounds();
-		shell.setBounds(bounds.x + ((getDefaultOrientation() == SWT.RIGHT_TO_LEFT) ? trayWidth : 0), bounds.y, bounds.width - trayWidth, bounds.height);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#close()
-	 */
-	public boolean close() {
-		/*
-		 * Close the tray to ensure that those dialogs that remember their
-		 * size do not store the tray size.
-		 */
-		if (getTray() != null) {
-			closeTray();
-		}
-		return super.close();
-	}
-	
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets.Composite)
-     */
-	protected Control createButtonBar(Composite parent) {
-    	Composite composite = new Composite(parent, SWT.NONE);
-    	GridLayout layout = new GridLayout();
-    	layout.marginWidth = 0;
-    	layout.marginHeight = 0;
-    	layout.horizontalSpacing = 0;
-    	composite.setLayout(layout);
-    	composite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));
-    	composite.setFont(parent.getFont());
-
-		// create help control if needed
-        if (isHelpAvailable()) {
-        	Control helpControl = createHelpControl(composite);
-        	((GridData) helpControl.getLayoutData()).horizontalIndent = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		}
-        Control buttonSection = super.createButtonBar(composite);
-        ((GridData) buttonSection.getLayoutData()).grabExcessHorizontalSpace = true;
-        return composite;
-	}
-
-	/**
-	 * Creates a new help control that provides access to context help.
-	 * <p>
-	 * The <code>TrayDialog</code> implementation of this method creates
-	 * the control, registers it for selection events including selection,
-	 * Note that the parent's layout is assumed to be a <code>GridLayout</code>
-	 * and the number of columns in this layout is incremented. Subclasses may
-	 * override.
-	 * </p>
-	 * 
-	 * @param parent the parent composite
-	 * @return the help control
-	 */
-    protected Control createHelpControl(Composite parent) {
-		Image helpImage = JFaceResources.getImage(DLG_IMG_HELP);
-		if (helpImage != null) {
-			return createHelpImageButton(parent, helpImage);
-		}
-		return createHelpLink(parent);
-    }
-    
-    /*
-     * Creates a button with a help image. This is only used if there
-     * is an image available.
-     */
-	private ToolBar createHelpImageButton(Composite parent, Image image) {
-        ToolBar toolBar = new ToolBar(parent, SWT.FLAT | SWT.NO_FOCUS);
-        ((GridLayout) parent.getLayout()).numColumns++;
-		toolBar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
-		final Cursor cursor = new Cursor(parent.getDisplay(), SWT.CURSOR_HAND);
-		toolBar.setCursor(cursor);
-		toolBar.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				cursor.dispose();
-			}
-		});		
-        ToolItem item = new ToolItem(toolBar, SWT.NONE);
-		item.setImage(image);
-		item.setToolTipText(JFaceResources.getString("helpToolTip")); //$NON-NLS-1$
-		item.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-				helpPressed();
-            }
-        });
-		return toolBar;
-	}
-
-	/*
-	 * Creates a help link. This is used when there is no help image
-	 * available.
-	 */
-	private Link createHelpLink(Composite parent) {
-		Link link = new Link(parent, SWT.WRAP | SWT.NO_FOCUS);
-        ((GridLayout) parent.getLayout()).numColumns++;
-		link.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
-		link.setText("<a>"+IDialogConstants.HELP_LABEL+"</a>"); //$NON-NLS-1$ //$NON-NLS-2$
-		link.setToolTipText(IDialogConstants.HELP_LABEL);
-		link.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-				helpPressed();
-            }
-        });
-		return link;
-	}	
-	
-	/*
-	 * Returns whether or not the given layout can support the addition of a tray.
-	 */
-	private boolean isCompatibleLayout(Layout layout) {
-		if (layout != null && layout instanceof GridLayout) {
-			GridLayout grid = (GridLayout)layout;
-			return !grid.makeColumnsEqualWidth && (grid.horizontalSpacing == 0) &&
-					(grid.marginWidth == 0) && (grid.marginHeight == 0) &&
-					(grid.numColumns == 5);
-		}
-		return false;
-	}
-
-	/**
-	 * Returns whether or not context help is available for this dialog. This
-	 * can affect whether or not the dialog will display additional help
-	 * mechanisms such as a help control in the button bar.
-	 * 
-	 * @return whether or not context help is available for this dialog
-	 */
-	public boolean isHelpAvailable() {
-		return helpAvailable;
-	}
-	
-	/**
-	 * The tray dialog's default layout is a modified version of the default
-	 * <code>Window</code> layout that can accomodate a tray, however it still
-	 * conforms to the description of the <code>Window</code> default layout.
-	 * <p>
-	 * Note: Trays may not be supported with all custom layouts on the dialog's
-	 * Shell. To avoid problems, use a single outer <code>Composite</code> for
-	 * your dialog area, and set your custom layout on that <code>Composite</code>.
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.window.Window#getLayout()
-	 * @return a newly created layout or <code>null</code> for no layout
-	 */
-	protected Layout getLayout() {
-		GridLayout layout = (GridLayout)super.getLayout();
-		layout.numColumns = 5;
-		layout.horizontalSpacing = 0;
-		return layout;
-	}
-	
-	/**
-	 * Returns the tray currently shown in the dialog, or <code>null</code>
-	 * if there is no tray.
-	 * 
-	 * @return the dialog's current tray, or <code>null</code> if there is none
-	 */
-	public DialogTray getTray() {
-		return tray;
-	}
-	
-	/*
-	 * Called when the help control is invoked. This emulates the keyboard
-	 * context help behavior (e.g. F1 on Windows). It traverses the widget
-	 * tree upward until it finds a widget that has a help listener on it,
-	 * then invokes a help event on that widget.
-	 */
-	private void helpPressed() {
-    	if (getShell() != null) {
-	    	Control c = getShell().getDisplay().getFocusControl();
-	    	while (c != null) {
-	    		if (c.isListening(SWT.Help)) {
-	    			c.notifyListeners(SWT.Help, new Event());
-	    			break;
-	    		}
-	    		c = c.getParent();
-	    	}
-    	}
-	}
-	
-	/**
-	 * Constructs the tray's widgets and displays the tray in this dialog. The
-	 * dialog's size will be adjusted to accomodate the tray.
-	 * 
-	 * @param tray the tray to show in this dialog
-	 * @throws IllegalStateException if the dialog already has a tray open
-	 * @throws UnsupportedOperationException if the dialog does not support trays,
-	 *            for example if it uses a custom layout.
-	 */
-	public void openTray(DialogTray tray) throws IllegalStateException, UnsupportedOperationException {
-		if (tray == null) {
-			throw new NullPointerException("Tray was null"); //$NON-NLS-1$
-		}
-		if (getTray() != null) {
-			throw new IllegalStateException("Tray was already open"); //$NON-NLS-1$
-		}
-		if (!isCompatibleLayout(getShell().getLayout())) {
-			throw new UnsupportedOperationException("Trays not supported with custom layouts"); //$NON-NLS-1$
-		}
-		final Shell shell = getShell();
-		leftSeparator = new Label(shell, SWT.SEPARATOR | SWT.VERTICAL);
-		leftSeparator.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		sash = new Sash(shell, SWT.VERTICAL);
-		sash.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		rightSeparator = new Label(shell, SWT.SEPARATOR | SWT.VERTICAL);
-		rightSeparator.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		trayControl = tray.createContents(shell);
-		Rectangle clientArea = shell.getClientArea();
-		final GridData data = new GridData(GridData.FILL_VERTICAL);
-		data.widthHint = trayControl.computeSize(SWT.DEFAULT, clientArea.height).x;
-		trayControl.setLayoutData(data);
-		int trayWidth = leftSeparator.computeSize(SWT.DEFAULT, clientArea.height).x + sash.computeSize(SWT.DEFAULT, clientArea.height).x + rightSeparator.computeSize(SWT.DEFAULT, clientArea.height).x + data.widthHint;
-		Rectangle bounds = shell.getBounds();
-		shell.setBounds(bounds.x - ((getDefaultOrientation() == SWT.RIGHT_TO_LEFT) ? trayWidth : 0), bounds.y, bounds.width + trayWidth, bounds.height);
-		sash.addListener(SWT.Selection, new Listener() {
-			public void handleEvent(Event event) {
-				if (event.detail != SWT.DRAG) {
-					Rectangle clientArea = shell.getClientArea();
-					int newWidth = clientArea.width - event.x - (sash.getSize().x + rightSeparator.getSize().x);
-					if (newWidth != data.widthHint) {
-						data.widthHint = newWidth;
-						shell.layout();
-					}
-				}
-			}
-		});
-		shellWidth = shell.getSize().x;
-		
-		resizeListener = new ResizeListener(data, shell);
-		shell.addControlListener (resizeListener);
-		   
-		this.tray = tray;
-	}
-	
-	/**
-	 * Sets whether or not context help is available for this dialog. This
-	 * can affect whether or not the dialog will display additional help
-	 * mechanisms such as a help control in the button bar.
-	 * 
-	 * @param helpAvailable whether or not context help is available for the dialog
-	 */
-	public void setHelpAvailable(boolean helpAvailable) {
-		this.helpAvailable = helpAvailable;
-	}
-	
-	/**
-	 * Tests if dialogs that have help control should show it
-	 * all the time or only when explicitly requested for
-	 * each dialog instance.
-	 * 
-	 * @return <code>true</code> if dialogs that support help
-	 * control should show it by default, <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public static boolean isDialogHelpAvailable() {
-		return dialogHelpAvailable;
-	}
-	
-	/**
-	 * Sets whether JFace dialogs that support help control should
-	 * show the control by default. If set to <code>false</code>, 
-	 * help control can still be shown on a per-dialog basis.
-	 * 
-	 * @param helpAvailable <code>true</code> to show the help
-	 * control, <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public static void setDialogHelpAvailable(boolean helpAvailable) {
-		dialogHelpAvailable = helpAvailable;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/help.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/help.gif
deleted file mode 100644
index f637410..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/help.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_error.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_error.gif
deleted file mode 100644
index 2ff6678..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_error.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_info.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_info.gif
deleted file mode 100644
index b484d9b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_info.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_warning.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_warning.gif
deleted file mode 100644
index 8e054d0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/message_warning.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu.gif
deleted file mode 100644
index bd37eb5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu_disabled.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu_disabled.gif
deleted file mode 100644
index 5d13485..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/popup_menu_disabled.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/title_banner.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/title_banner.gif
deleted file mode 100644
index 4ed90dc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/images/title_banner.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/package.html
deleted file mode 100644
index e376429..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/dialogs/package.html
+++ /dev/null
@@ -1,28 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for dialogs.
-<h2>
-Package Specification</h2>
-A dialog is a specialized window, typically consisting of a dialog area
-and a button bar, designed for narrow-focussed communication with the user.
-<p>The dialog framework consists of an abstract base class (<tt>Dialog</tt>),
-along with more concrete dialog subclasses for displaying messages (<tt>MessageDialog</tt>),
-soliciting text input (<tt>InputDialog</tt>), and displaying progress during
-a long-running operation (<tt>ProgressMonitorDialog</tt>).
-<p>Dialog stores (<tt>IDialogStore</tt>, <tt>DialogStore</tt>) provide
-a general framework for organizing a dialog's settings into key/value pairs.
-Multi-page dialogs are made easier through the use of dialog pages (<tt>IDialogPage</tt>,
-<tt>DialogPage</tt>).
-<p>Note: None of the classes in this package maintain global state.
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/AutoCompleteField.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/AutoCompleteField.java
deleted file mode 100644
index 8d22823..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/AutoCompleteField.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * AutoCompleteField is a class which attempts to auto-complete a user's
- * keystrokes by activating a popup that filters a list of proposals according
- * to the content typed by the user.
- * 
- * @see ContentProposalAdapter
- * @see SimpleContentProposalProvider
- * 
- * @since 3.3
- */
-public class AutoCompleteField {
-
-	private SimpleContentProposalProvider proposalProvider;
-	private ContentProposalAdapter adapter;
-
-	/**
-	 * Construct an AutoComplete field on the specified control, whose
-	 * completions are characterized by the specified array of Strings.
-	 * 
-	 * @param control
-	 *            the control for which autocomplete is desired. May not be
-	 *            <code>null</code>.
-	 * @param controlContentAdapter
-	 *            the <code>IControlContentAdapter</code> used to obtain and
-	 *            update the control's contents. May not be <code>null</code>.
-	 * @param proposals
-	 *            the array of Strings representing valid content proposals for
-	 *            the field.
-	 */
-	public AutoCompleteField(Control control,
-			IControlContentAdapter controlContentAdapter, String[] proposals) {
-		proposalProvider = new SimpleContentProposalProvider(proposals);
-		proposalProvider.setFiltering(true);
-		adapter = new ContentProposalAdapter(control, controlContentAdapter,
-				proposalProvider, null, null);
-		adapter.setPropagateKeys(true);
-		adapter
-				.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-	}
-
-	/**
-	 * Set the Strings to be used as content proposals.
-	 * 
-	 * @param proposals
-	 *            the array of Strings to be used as proposals.
-	 */
-	public void setProposals(String[] proposals) {
-		proposalProvider.setProposals(proposals);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboContentAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboContentAdapter.java
deleted file mode 100644
index 7c688ff..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ComboContentAdapter.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * An {@link IControlContentAdapter} for SWT Combo controls. This is a
- * convenience class for easily creating a {@link ContentProposalAdapter} for
- * combo fields.
- * 
- * @since 3.2
- */
-public class ComboContentAdapter implements IControlContentAdapter,
-		IControlContentAdapter2 {
-	
-	/*
-	 * Set to <code>true</code> if we should compute the text
-	 * vertical bounds rather than just use the field size.
-	 * Workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=164748
-	 * The corresponding SWT bug is
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=44072
-	 */
-	private static final boolean COMPUTE_TEXT_USING_CLIENTAREA = !Util.isCarbon();
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.taskassistance.IControlContentAdapter#getControlContents(org.eclipse.swt.widgets.Control)
-	 */
-	public String getControlContents(Control control) {
-		return ((Combo) control).getText();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#setControlContents(org.eclipse.swt.widgets.Control,
-	 *      java.lang.String, int)
-	 */
-	public void setControlContents(Control control, String text,
-			int cursorPosition) {
-		((Combo) control).setText(text);
-		((Combo) control)
-				.setSelection(new Point(cursorPosition, cursorPosition));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#insertControlContents(org.eclipse.swt.widgets.Control,
-	 *      java.lang.String, int)
-	 */
-	public void insertControlContents(Control control, String text,
-			int cursorPosition) {
-		Combo combo = (Combo) control;
-		String contents = combo.getText();
-		Point selection = combo.getSelection();
-		StringBuffer sb = new StringBuffer();
-		sb.append(contents.substring(0, selection.x));
-		sb.append(text);
-		if (selection.y < contents.length()) {
-			sb.append(contents.substring(selection.y, contents.length()));
-		}
-		combo.setText(sb.toString());
-		selection.x = selection.x + cursorPosition;
-		selection.y = selection.x;
-		combo.setSelection(selection);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#getCursorPosition(org.eclipse.swt.widgets.Control)
-	 */
-	public int getCursorPosition(Control control) {
-		return ((Combo) control).getSelection().x;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#getInsertionBounds(org.eclipse.swt.widgets.Control)
-	 */
-	public Rectangle getInsertionBounds(Control control) {
-		// This doesn't take horizontal scrolling into affect. 
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=204599
-		Combo combo = (Combo) control;
-		int position = combo.getSelection().y;
-		String contents = combo.getText();
-		GC gc = new GC(combo);
-		gc.setFont(combo.getFont());
-		Point extent = gc.textExtent(contents.substring(0, Math.min(position,
-				contents.length())));
-		gc.dispose();
-		if (COMPUTE_TEXT_USING_CLIENTAREA) {
-			return new Rectangle(combo.getClientArea().x + extent.x, combo
-				.getClientArea().y, 1, combo.getClientArea().height);
-		}
-		return new Rectangle(extent.x, 0, 1, combo.getSize().y);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#setCursorPosition(org.eclipse.swt.widgets.Control,
-	 *      int)
-	 */
-	public void setCursorPosition(Control control, int index) {
-		((Combo) control).setSelection(new Point(index, index));
-	}
-
-	/**
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter2#getSelection(org.eclipse.swt.widgets.Control)
-	 * 
-	 * @since 3.4
-	 */
-	public Point getSelection(Control control) {
-		return ((Combo) control).getSelection();
-	}
-
-	/**
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter2#setSelection(org.eclipse.swt.widgets.Control,
-	 *      org.eclipse.swt.graphics.Point)
-	 * 
-	 * @since 3.4
-	 */
-	public void setSelection(Control control, Point range) {
-		((Combo) control).setSelection(range);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
deleted file mode 100644
index 389a64c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
+++ /dev/null
@@ -1,2169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-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.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.dialogs.PopupDialog;
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.ILabelProvider;
-
-/**
- * ContentProposalAdapter can be used to attach content proposal behavior to a
- * control. This behavior includes obtaining proposals, opening a popup dialog,
- * managing the content of the control relative to the selections in the popup,
- * and optionally opening up a secondary popup to further describe proposals.
- * <p>
- * A number of configurable options are provided to determine how the control
- * content is altered when a proposal is chosen, how the content proposal popup
- * is activated, and whether any filtering should be done on the proposals as
- * the user types characters.
- * <p>
- * This class is not intended to be subclassed.
- * 
- * @since 3.2
- */
-public class ContentProposalAdapter {
-
-	/*
-	 * The lightweight popup used to show content proposals for a text field. If
-	 * additional information exists for a proposal, then selecting that
-	 * proposal will result in the information being displayed in a secondary
-	 * popup.
-	 */
-	class ContentProposalPopup extends PopupDialog {
-		/*
-		 * The listener we install on the popup and related controls to
-		 * determine when to close the popup. Some events (move, resize, close,
-		 * deactivate) trigger closure as soon as they are received, simply
-		 * because one of the registered listeners received them. Other events
-		 * depend on additional circumstances.
-		 */
-		private final class PopupCloserListener implements Listener {
-			private boolean scrollbarClicked = false;
-
-			public void handleEvent(final Event e) {
-
-				// If focus is leaving an important widget or the field's
-				// shell is deactivating
-				if (e.type == SWT.FocusOut) {
-					scrollbarClicked = false;
-					/*
-					 * Ignore this event if it's only happening because focus is
-					 * moving between the popup shells, their controls, or a
-					 * scrollbar. Do this in an async since the focus is not
-					 * actually switched when this event is received.
-					 */
-					e.display.asyncExec(new Runnable() {
-						public void run() {
-							if (isValid()) {
-								if (scrollbarClicked || hasFocus()) {
-									return;
-								}
-								// Workaround a problem on X and Mac, whereby at
-								// this point, the focus control is not known.
-								// This can happen, for example, when resizing
-								// the popup shell on the Mac.
-								// Check the active shell.
-								Shell activeShell = e.display.getActiveShell();
-								if (activeShell == getShell()
-										|| (infoPopup != null && infoPopup
-												.getShell() == activeShell)) {
-									return;
-								}
-								/*
-								 * System.out.println(e);
-								 * System.out.println(e.display.getFocusControl());
-								 * System.out.println(e.display.getActiveShell());
-								 */
-								close();
-							}
-						}
-					});
-					return;
-				}
-
-				// Scroll bar has been clicked. Remember this for focus event
-				// processing.
-				if (e.type == SWT.Selection) {
-					scrollbarClicked = true;
-					return;
-				}
-				// For all other events, merely getting them dictates closure.
-				close();
-			}
-
-			// Install the listeners for events that need to be monitored for
-			// popup closure.
-			void installListeners() {
-				// Listeners on this popup's table and scroll bar
-				proposalTable.addListener(SWT.FocusOut, this);
-				ScrollBar scrollbar = proposalTable.getVerticalBar();
-				if (scrollbar != null) {
-					scrollbar.addListener(SWT.Selection, this);
-				}
-
-				// Listeners on this popup's shell
-				getShell().addListener(SWT.Deactivate, this);
-				getShell().addListener(SWT.Close, this);
-
-				// Listeners on the target control
-				control.addListener(SWT.MouseDoubleClick, this);
-				control.addListener(SWT.MouseDown, this);
-				control.addListener(SWT.Dispose, this);
-				control.addListener(SWT.FocusOut, this);
-				// Listeners on the target control's shell
-				Shell controlShell = control.getShell();
-				controlShell.addListener(SWT.Move, this);
-				controlShell.addListener(SWT.Resize, this);
-
-			}
-
-			// Remove installed listeners
-			void removeListeners() {
-				if (isValid()) {
-					proposalTable.removeListener(SWT.FocusOut, this);
-					ScrollBar scrollbar = proposalTable.getVerticalBar();
-					if (scrollbar != null) {
-						scrollbar.removeListener(SWT.Selection, this);
-					}
-
-					getShell().removeListener(SWT.Deactivate, this);
-					getShell().removeListener(SWT.Close, this);
-				}
-
-				if (control != null && !control.isDisposed()) {
-
-					control.removeListener(SWT.MouseDoubleClick, this);
-					control.removeListener(SWT.MouseDown, this);
-					control.removeListener(SWT.Dispose, this);
-					control.removeListener(SWT.FocusOut, this);
-
-					Shell controlShell = control.getShell();
-					controlShell.removeListener(SWT.Move, this);
-					controlShell.removeListener(SWT.Resize, this);
-				}
-			}
-		}
-
-		/*
-		 * The listener we will install on the target control.
-		 */
-		private final class TargetControlListener implements Listener {
-			// Key events from the control
-			public void handleEvent(Event e) {
-				if (!isValid()) {
-					return;
-				}
-
-				char key = e.character;
-
-				// Traverse events are handled depending on whether the
-				// event has a character.
-				if (e.type == SWT.Traverse) {
-					// If the traverse event contains a legitimate character,
-					// then we must set doit false so that the widget will
-					// receive the key event. We return immediately so that
-					// the character is handled only in the key event.
-					// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=132101
-					if (key != 0) {
-						e.doit = false;
-						return;
-					}
-					// Traversal does not contain a character. Set doit true
-					// to indicate TRAVERSE_NONE will occur and that no key
-					// event will be triggered. We will check for navigation
-					// keys below.
-					e.detail = SWT.TRAVERSE_NONE;
-					e.doit = true;
-				} else {
-					// Default is to only propagate when configured that way.
-					// Some keys will always set doit to false anyway.
-					e.doit = propagateKeys;
-				}
-
-				// No character. Check for navigation keys.
-
-				if (key == 0) {
-					int newSelection = proposalTable.getSelectionIndex();
-					int visibleRows = (proposalTable.getSize().y / proposalTable
-							.getItemHeight()) - 1;
-					switch (e.keyCode) {
-					case SWT.ARROW_UP:
-						newSelection -= 1;
-						if (newSelection < 0) {
-							newSelection = proposalTable.getItemCount() - 1;
-						}
-						// Not typical - usually we get this as a Traverse and
-						// therefore it never propagates. Added for consistency.
-						if (e.type == SWT.KeyDown) {
-							// don't propagate to control
-							e.doit = false;
-						}
-
-						break;
-
-					case SWT.ARROW_DOWN:
-						newSelection += 1;
-						if (newSelection > proposalTable.getItemCount() - 1) {
-							newSelection = 0;
-						}
-						// Not typical - usually we get this as a Traverse and
-						// therefore it never propagates. Added for consistency.
-						if (e.type == SWT.KeyDown) {
-							// don't propagate to control
-							e.doit = false;
-						}
-
-						break;
-
-					case SWT.PAGE_DOWN:
-						newSelection += visibleRows;
-						if (newSelection >= proposalTable.getItemCount()) {
-							newSelection = proposalTable.getItemCount() - 1;
-						}
-						if (e.type == SWT.KeyDown) {
-							// don't propagate to control
-							e.doit = false;
-						}
-						break;
-
-					case SWT.PAGE_UP:
-						newSelection -= visibleRows;
-						if (newSelection < 0) {
-							newSelection = 0;
-						}
-						if (e.type == SWT.KeyDown) {
-							// don't propagate to control
-							e.doit = false;
-						}
-						break;
-
-					case SWT.HOME:
-						newSelection = 0;
-						if (e.type == SWT.KeyDown) {
-							// don't propagate to control
-							e.doit = false;
-						}
-						break;
-
-					case SWT.END:
-						newSelection = proposalTable.getItemCount() - 1;
-						if (e.type == SWT.KeyDown) {
-							// don't propagate to control
-							e.doit = false;
-						}
-						break;
-
-					// If received as a Traverse, these should propagate
-					// to the control as keydown. If received as a keydown,
-					// proposals should be recomputed since the cursor
-					// position has changed.
-					case SWT.ARROW_LEFT:
-					case SWT.ARROW_RIGHT:
-						if (e.type == SWT.Traverse) {
-							e.doit = false;
-						} else {
-							e.doit = true;
-							String contents = getControlContentAdapter()
-									.getControlContents(getControl());
-							// If there are no contents, changes in cursor
-							// position have no effect. Note also that we do 
-							// not affect the filter text on ARROW_LEFT as 
-							// we would with BS.
-							if (contents.length() > 0) {
-								asyncRecomputeProposals(filterText);
-							}
-						}
-						break;
-
-					// Any unknown keycodes will cause the popup to close.
-					// Modifier keys are explicitly checked and ignored because
-					// they are not complete yet (no character).
-					default:
-						if (e.keyCode != SWT.CAPS_LOCK && e.keyCode != SWT.MOD1
-								&& e.keyCode != SWT.MOD2
-								&& e.keyCode != SWT.MOD3
-								&& e.keyCode != SWT.MOD4) {
-							close();
-						}
-						return;
-					}
-
-					// If any of these navigation events caused a new selection,
-					// then handle that now and return.
-					if (newSelection >= 0) {
-						selectProposal(newSelection);
-					}
-					return;
-				}
-
-				// key != 0
-				// Check for special keys involved in cancelling, accepting, or
-				// filtering the proposals.
-				switch (key) {
-				case SWT.ESC:
-					e.doit = false;
-					close();
-					break;
-
-				case SWT.LF:
-				case SWT.CR:
-					e.doit = false;
-					Object p = getSelectedProposal();
-					if (p != null) {
-						acceptCurrentProposal();
-					} else {
-						close();
-					}
-					break;
-
-				case SWT.TAB:
-					e.doit = false;
-					getShell().setFocus();
-					return;
-
-				case SWT.BS:
-					// Backspace should back out of any stored filter text
-					if (filterStyle != FILTER_NONE) {
-						// We have no filter to back out of, so do nothing
-						if (filterText.length() == 0) {
-							return;
-						}
-						// There is filter to back out of
-						filterText = filterText.substring(0, filterText
-								.length() - 1);
-						asyncRecomputeProposals(filterText);
-						return;
-					}
-					// There is no filtering provided by us, but some
-					// clients provide their own filtering based on content.
-					// Recompute the proposals if the cursor position
-					// will change (is not at 0).
-					int pos = getControlContentAdapter().getCursorPosition(
-							getControl());
-					// We rely on the fact that the contents and pos do not yet
-					// reflect the result of the BS. If the contents were
-					// already empty, then BS should not cause
-					// a recompute.
-					if (pos > 0) {
-						asyncRecomputeProposals(filterText);
-					}
-					break;
-
-				default:
-					// If the key is a defined unicode character, and not one of
-					// the special cases processed above, update the filter text
-					// and filter the proposals.
-					if (Character.isDefined(key)) {
-						if (filterStyle == FILTER_CUMULATIVE) {
-							filterText = filterText + String.valueOf(key);
-						} else if (filterStyle == FILTER_CHARACTER) {
-							filterText = String.valueOf(key);
-						}
-						// Recompute proposals after processing this event.
-						asyncRecomputeProposals(filterText);
-					}
-					break;
-				}
-			}
-		}
-
-		/*
-		 * Internal class used to implement the secondary popup.
-		 */
-		private class InfoPopupDialog extends PopupDialog {
-
-			/*
-			 * The text control that displays the text.
-			 */
-			private Text text;
-
-			/*
-			 * The String shown in the popup.
-			 */
-			private String contents = EMPTY;
-
-			/*
-			 * Construct an info-popup with the specified parent.
-			 */
-			InfoPopupDialog(Shell parent) {
-				super(parent, PopupDialog.HOVER_SHELLSTYLE, false, false, false,
-						false, false, null, null);
-			}
-
-			/*
-			 * Create a text control for showing the info about a proposal.
-			 */
-			protected Control createDialogArea(Composite parent) {
-				text = new Text(parent, SWT.MULTI | SWT.READ_ONLY | SWT.WRAP
-						| SWT.NO_FOCUS);
-
-				// Use the compact margins employed by PopupDialog.
-				GridData gd = new GridData(GridData.BEGINNING
-						| GridData.FILL_BOTH);
-				gd.horizontalIndent = PopupDialog.POPUP_HORIZONTALSPACING;
-				gd.verticalIndent = PopupDialog.POPUP_VERTICALSPACING;
-				text.setLayoutData(gd);
-				text.setText(contents);
-
-				// since SWT.NO_FOCUS is only a hint...
-				text.addFocusListener(new FocusAdapter() {
-					public void focusGained(FocusEvent event) {
-						ContentProposalPopup.this.close();
-					}
-				});
-				return text;
-			}
-
-			/*
-			 * Adjust the bounds so that we appear adjacent to our parent shell
-			 */
-			protected void adjustBounds() {
-				Rectangle parentBounds = getParentShell().getBounds();
-				Rectangle proposedBounds;
-				// Try placing the info popup to the right
-				Rectangle rightProposedBounds = new Rectangle(parentBounds.x
-						+ parentBounds.width
-						+ PopupDialog.POPUP_HORIZONTALSPACING, parentBounds.y
-						+ PopupDialog.POPUP_VERTICALSPACING,
-						parentBounds.width, parentBounds.height);
-				rightProposedBounds = getConstrainedShellBounds(rightProposedBounds);
-				// If it won't fit on the right, try the left
-				if (rightProposedBounds.intersects(parentBounds)) {
-					Rectangle leftProposedBounds = new Rectangle(parentBounds.x
-							- parentBounds.width - POPUP_HORIZONTALSPACING - 1,
-							parentBounds.y, parentBounds.width,
-							parentBounds.height);
-					leftProposedBounds = getConstrainedShellBounds(leftProposedBounds);
-					// If it won't fit on the left, choose the proposed bounds
-					// that fits the best
-					if (leftProposedBounds.intersects(parentBounds)) {
-						if (rightProposedBounds.x - parentBounds.x >= parentBounds.x
-								- leftProposedBounds.x) {
-							rightProposedBounds.x = parentBounds.x
-									+ parentBounds.width
-									+ PopupDialog.POPUP_HORIZONTALSPACING;
-							proposedBounds = rightProposedBounds;
-						} else {
-							leftProposedBounds.width = parentBounds.x
-									- POPUP_HORIZONTALSPACING
-									- leftProposedBounds.x;
-							proposedBounds = leftProposedBounds;
-						}
-					} else {
-						// use the proposed bounds on the left
-						proposedBounds = leftProposedBounds;
-					}
-				} else {
-					// use the proposed bounds on the right
-					proposedBounds = rightProposedBounds;
-				}
-				getShell().setBounds(proposedBounds);
-			}
-			
-			/*
-			 * (non-Javadoc)
-			 * @see org.eclipse.jface.dialogs.PopupDialog#getForeground()
-			 */
-			protected Color getForeground() {
-				return control.getDisplay().
-						getSystemColor(SWT.COLOR_INFO_FOREGROUND);
-			}
-			
-			/*
-			 * (non-Javadoc)
-			 * @see org.eclipse.jface.dialogs.PopupDialog#getBackground()
-			 */
-			protected Color getBackground() {
-				return control.getDisplay().
-						getSystemColor(SWT.COLOR_INFO_BACKGROUND);
-			}
-
-			/*
-			 * Set the text contents of the popup.
-			 */
-			void setContents(String newContents) {
-				if (newContents == null) {
-					newContents = EMPTY;
-				}
-				this.contents = newContents;
-				if (text != null && !text.isDisposed()) {
-					text.setText(contents);
-				}
-			}
-
-			/*
-			 * Return whether the popup has focus.
-			 */
-			boolean hasFocus() {
-				if (text == null || text.isDisposed()) {
-					return false;
-				}
-				return text.getShell().isFocusControl()
-						|| text.isFocusControl();
-			}
-		}
-
-		/*
-		 * The listener installed on the target control.
-		 */
-		private Listener targetControlListener;
-
-		/*
-		 * The listener installed in order to close the popup.
-		 */
-		private PopupCloserListener popupCloser;
-
-		/*
-		 * The table used to show the list of proposals.
-		 */
-		private Table proposalTable;
-
-		/*
-		 * The proposals to be shown (cached to avoid repeated requests).
-		 */
-		private IContentProposal[] proposals;
-
-		/*
-		 * Secondary popup used to show detailed information about the selected
-		 * proposal..
-		 */
-		private InfoPopupDialog infoPopup;
-
-		/*
-		 * Flag indicating whether there is a pending secondary popup update.
-		 */
-		private boolean pendingDescriptionUpdate = false;
-
-		/*
-		 * Filter text - tracked while popup is open, only if we are told to
-		 * filter
-		 */
-		private String filterText = EMPTY;
-
-		/**
-		 * Constructs a new instance of this popup, specifying the control for
-		 * which this popup is showing content, and how the proposals should be
-		 * obtained and displayed.
-		 * 
-		 * @param infoText
-		 *            Text to be shown in a lower info area, or
-		 *            <code>null</code> if there is no info area.
-		 */
-		ContentProposalPopup(String infoText, IContentProposal[] proposals) {
-			// IMPORTANT: Use of SWT.ON_TOP is critical here for ensuring
-			// that the target control retains focus on Mac and Linux. Without
-			// it, the focus will disappear, keystrokes will not go to the
-			// popup, and the popup closer will wrongly close the popup.
-			// On platforms where SWT.ON_TOP overrides SWT.RESIZE, we will live
-			// with this.
-			// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=126138
-			super(control.getShell(), SWT.RESIZE | SWT.ON_TOP, false, false, false,
-					false, false, null, infoText);
-			this.proposals = proposals;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * @see org.eclipse.jface.dialogs.PopupDialog#getForeground()
-		 */
-		protected Color getForeground() {
-			return JFaceResources.getColorRegistry().get(
-					JFacePreferences.CONTENT_ASSIST_FOREGROUND_COLOR);
-		}
-		
-		/*
-		 * (non-Javadoc)
-		 * @see org.eclipse.jface.dialogs.PopupDialog#getBackground()
-		 */
-		protected Color getBackground() {
-			return JFaceResources.getColorRegistry().get(
-					JFacePreferences.CONTENT_ASSIST_BACKGROUND_COLOR);
-		}
-
-		/*
-		 * Creates the content area for the proposal popup. This creates a table
-		 * and places it inside the composite. The table will contain a list of
-		 * all the proposals.
-		 * 
-		 * @param parent The parent composite to contain the dialog area; must
-		 * not be <code>null</code>.
-		 */
-		protected final Control createDialogArea(final Composite parent) {
-			// Use virtual where appropriate (see flag definition).
-			if (USE_VIRTUAL) {
-				proposalTable = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL
-						| SWT.VIRTUAL);
-
-				Listener listener = new Listener() {
-					public void handleEvent(Event event) {
-						handleSetData(event);
-					}
-				};
-				proposalTable.addListener(SWT.SetData, listener);
-			} else {
-				proposalTable = new Table(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-			}
-
-			// set the proposals to force population of the table.
-			setProposals(filterProposals(proposals, filterText));
-
-			proposalTable.setHeaderVisible(false);
-			proposalTable.addSelectionListener(new SelectionListener() {
-
-				public void widgetSelected(SelectionEvent e) {
-					// If a proposal has been selected, show it in the secondary
-					// popup. Otherwise close the popup.
-					if (e.item == null) {
-						if (infoPopup != null) {
-							infoPopup.close();
-						}
-					} else {
-						showProposalDescription();
-					}
-				}
-
-				// Default selection was made. Accept the current proposal.
-				public void widgetDefaultSelected(SelectionEvent e) {
-					acceptCurrentProposal();
-				}
-			});
-			return proposalTable;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.PopupDialog.adjustBounds()
-		 */
-		protected void adjustBounds() {
-			// Get our control's location in display coordinates.
-			Point location = control.getDisplay().map(control.getParent(),
-					null, control.getLocation());
-			int initialX = location.x + POPUP_OFFSET;
-			int initialY = location.y + control.getSize().y + POPUP_OFFSET;
-			// If we are inserting content, use the cursor position to
-			// position the control.
-			if (getProposalAcceptanceStyle() == PROPOSAL_INSERT) {
-				Rectangle insertionBounds = controlContentAdapter
-						.getInsertionBounds(control);
-				initialX = initialX + insertionBounds.x;
-				initialY = location.y + insertionBounds.y
-						+ insertionBounds.height;
-			}
-
-			// If there is no specified size, force it by setting
-			// up a layout on the table.
-			if (popupSize == null) {
-				GridData data = new GridData(GridData.FILL_BOTH);
-				data.heightHint = proposalTable.getItemHeight()
-						* POPUP_CHAR_HEIGHT;
-				data.widthHint = Math.max(control.getSize().x,
-						POPUP_MINIMUM_WIDTH);
-				proposalTable.setLayoutData(data);
-				getShell().pack();
-				popupSize = getShell().getSize();
-			}
-			getShell().setBounds(initialX, initialY, popupSize.x, popupSize.y);
-
-			// Now set up a listener to monitor any changes in size.
-			getShell().addListener(SWT.Resize, new Listener() {
-				public void handleEvent(Event e) {
-					popupSize = getShell().getSize();
-					if (infoPopup != null) {
-						infoPopup.adjustBounds();
-					}
-				}
-			});
-		}
-
-		/*
-		 * Handle the set data event. Set the item data of the requested item to
-		 * the corresponding proposal in the proposal cache.
-		 */
-		private void handleSetData(Event event) {
-			TableItem item = (TableItem) event.item;
-			int index = proposalTable.indexOf(item);
-
-			if (0 <= index && index < proposals.length) {
-				IContentProposal current = proposals[index];
-				item.setText(getString(current));
-				item.setImage(getImage(current));
-				item.setData(current);
-			} else {
-				// this should not happen, but does on win32
-			}
-		}
-
-		/*
-		 * Caches the specified proposals and repopulates the table if it has
-		 * been created.
-		 */
-		private void setProposals(IContentProposal[] newProposals) {
-			if (newProposals == null || newProposals.length == 0) {
-				newProposals = getEmptyProposalArray();
-			}
-			this.proposals = newProposals;
-
-			// If there is a table
-			if (isValid()) {
-				final int newSize = newProposals.length;
-				if (USE_VIRTUAL) {
-					// Set and clear the virtual table. Data will be
-					// provided in the SWT.SetData event handler.
-					proposalTable.setItemCount(newSize);
-					proposalTable.clearAll();
-				} else {
-					// Populate the table manually
-					proposalTable.setRedraw(false);
-					proposalTable.setItemCount(newSize);
-					TableItem[] items = proposalTable.getItems();
-					for (int i = 0; i < items.length; i++) {
-						TableItem item = items[i];
-						IContentProposal proposal = newProposals[i];
-						item.setText(getString(proposal));
-						item.setImage(getImage(proposal));
-						item.setData(proposal);
-					}
-					proposalTable.setRedraw(true);
-				}
-				// Default to the first selection if there is content.
-				if (newProposals.length > 0) {
-					selectProposal(0);
-				} else {
-					// No selection, close the secondary popup if it was open
-					if (infoPopup != null) {
-						infoPopup.close();
-					}
-
-				}
-			}
-		}
-
-		/*
-		 * Get the string for the specified proposal. Always return a String of
-		 * some kind.
-		 */
-		private String getString(IContentProposal proposal) {
-			if (proposal == null) {
-				return EMPTY;
-			}
-			if (labelProvider == null) {
-				return proposal.getLabel() == null ? proposal.getContent()
-						: proposal.getLabel();
-			}
-			return labelProvider.getText(proposal);
-		}
-
-		/*
-		 * Get the image for the specified proposal. If there is no image
-		 * available, return null.
-		 */
-		private Image getImage(IContentProposal proposal) {
-			if (proposal == null || labelProvider == null) {
-				return null;
-			}
-			return labelProvider.getImage(proposal);
-		}
-
-		/*
-		 * Return an empty array. Used so that something always shows in the
-		 * proposal popup, even if no proposal provider was specified.
-		 */
-		private IContentProposal[] getEmptyProposalArray() {
-			return new IContentProposal[0];
-		}
-
-		/*
-		 * Answer true if the popup is valid, which means the table has been
-		 * created and not disposed.
-		 */
-		private boolean isValid() {
-			return proposalTable != null && !proposalTable.isDisposed();
-		}
-
-		/*
-		 * Return whether the receiver has focus. Since 3.4, this includes a
-		 * check for whether the info popup has focus.
-		 */
-		private boolean hasFocus() {
-			if (!isValid()) {
-				return false;
-			}
-			if (getShell().isFocusControl() || proposalTable.isFocusControl()) {
-				return true;
-			}
-			if (infoPopup != null && infoPopup.hasFocus()) {
-				return true;
-			}
-			return false;
-		}
-
-		/*
-		 * Return the current selected proposal.
-		 */
-		private IContentProposal getSelectedProposal() {
-			if (isValid()) {
-				int i = proposalTable.getSelectionIndex();
-				if (proposals == null || i < 0 || i >= proposals.length) {
-					return null;
-				}
-				return proposals[i];
-			}
-			return null;
-		}
-
-		/*
-		 * Select the proposal at the given index.
-		 */
-		private void selectProposal(int index) {
-			Assert
-					.isTrue(index >= 0,
-							"Proposal index should never be negative"); //$NON-NLS-1$
-			if (!isValid() || proposals == null || index >= proposals.length) {
-				return;
-			}
-			proposalTable.setSelection(index);
-			proposalTable.showSelection();
-
-			showProposalDescription();
-		}
-
-		/**
-		 * Opens this ContentProposalPopup. This method is extended in order to
-		 * add the control listener when the popup is opened and to invoke the
-		 * secondary popup if applicable.
-		 * 
-		 * @return the return code
-		 * 
-		 * @see org.eclipse.jface.window.Window#open()
-		 */
-		public int open() {
-			int value = super.open();
-			if (popupCloser == null) {
-				popupCloser = new PopupCloserListener();
-			}
-			popupCloser.installListeners();
-			IContentProposal p = getSelectedProposal();
-			if (p != null) {
-				showProposalDescription();
-			}
-			return value;
-		}
-
-		/**
-		 * Closes this popup. This method is extended to remove the control
-		 * listener.
-		 * 
-		 * @return <code>true</code> if the window is (or was already) closed,
-		 *         and <code>false</code> if it is still open
-		 */
-		public boolean close() {
-			popupCloser.removeListeners();
-			if (infoPopup != null) {
-				infoPopup.close();
-			}
-			boolean ret = super.close();
-			notifyPopupClosed();
-			return ret;
-		}
-
-		/*
-		 * Show the currently selected proposal's description in a secondary
-		 * popup.
-		 */
-		private void showProposalDescription() {
-			// If we do not already have a pending update, then
-			// create a thread now that will show the proposal description
-			if (!pendingDescriptionUpdate) {
-				// Create a thread that will sleep for the specified delay
-				// before creating the popup. We do not use Jobs since this
-				// code must be able to run independently of the Eclipse
-				// runtime.
-				Runnable runnable = new Runnable() {
-					public void run() {
-						pendingDescriptionUpdate = true;
-						try {
-							Thread.sleep(POPUP_DELAY);
-						} catch (InterruptedException e) {
-						}
-						if (!isValid()) {
-							return;
-						}
-						getShell().getDisplay().syncExec(new Runnable() {
-							public void run() {
-								// Query the current selection since we have
-								// been delayed
-								IContentProposal p = getSelectedProposal();
-								if (p != null) {
-									String description = p.getDescription();
-									if (description != null) {
-										if (infoPopup == null) {
-											infoPopup = new InfoPopupDialog(
-													getShell());
-											infoPopup.open();
-											infoPopup
-													.getShell()
-													.addDisposeListener(
-															new DisposeListener() {
-																public void widgetDisposed(
-																		DisposeEvent event) {
-																	infoPopup = null;
-																}
-															});
-										}
-										infoPopup.setContents(p
-												.getDescription());
-									} else if (infoPopup != null) {
-										infoPopup.close();
-									}
-									pendingDescriptionUpdate = false;
-
-								}
-							}
-						});
-					}
-				};
-				Thread t = new Thread(runnable);
-				t.start();
-			}
-		}
-
-		/*
-		 * Accept the current proposal.
-		 */
-		private void acceptCurrentProposal() {
-			// Close before accepting the proposal. This is important
-			// so that the cursor position can be properly restored at
-			// acceptance, which does not work without focus on some controls.
-			// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=127108
-			IContentProposal proposal = getSelectedProposal();
-			close();
-			proposalAccepted(proposal);
-		}
-
-		/*
-		 * Request the proposals from the proposal provider, and recompute any
-		 * caches. Repopulate the popup if it is open.
-		 */
-		private void recomputeProposals(String filterText) {
-			IContentProposal[] allProposals = getProposals();
-			// If the non-filtered proposal list is empty, we should
-			// close the popup.
-			// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=147377
-			if (allProposals.length == 0) {
-				proposals = allProposals;
-				close();
-			} else {
-				// Keep the popup open, but filter by any provided filter text
-				setProposals(filterProposals(allProposals, filterText));
-			}
-		}
-
-		/*
-		 * In an async block, request the proposals. This is used when clients
-		 * are in the middle of processing an event that affects the widget
-		 * content. By using an async, we ensure that the widget content is up
-		 * to date with the event.
-		 */
-		private void asyncRecomputeProposals(final String filterText) {
-			if (isValid()) {
-				control.getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						recordCursorPosition();
-						recomputeProposals(filterText);
-					}
-				});
-			} else {
-				recomputeProposals(filterText);
-			}
-		}
-
-		/*
-		 * Filter the provided list of content proposals according to the filter
-		 * text.
-		 */
-		private IContentProposal[] filterProposals(
-				IContentProposal[] proposals, String filterString) {
-			if (filterString.length() == 0) {
-				return proposals;
-			}
-
-			// Check each string for a match. Use the string displayed to the
-			// user, not the proposal content.
-			ArrayList list = new ArrayList();
-			for (int i = 0; i < proposals.length; i++) {
-				String string = getString(proposals[i]);
-				if (string.length() >= filterString.length()
-						&& string.substring(0, filterString.length())
-								.equalsIgnoreCase(filterString)) {
-					list.add(proposals[i]);
-				}
-
-			}
-			return (IContentProposal[]) list.toArray(new IContentProposal[list
-					.size()]);
-		}
-
-		Listener getTargetControlListener() {
-			if (targetControlListener == null) {
-				targetControlListener = new TargetControlListener();
-			}
-			return targetControlListener;
-		}
-	}
-
-	/**
-	 * Flag that controls the printing of debug info.
-	 */
-	public static final boolean DEBUG = false;
-
-	/**
-	 * Indicates that a chosen proposal should be inserted into the field.
-	 */
-	public static final int PROPOSAL_INSERT = 1;
-
-	/**
-	 * Indicates that a chosen proposal should replace the entire contents of
-	 * the field.
-	 */
-	public static final int PROPOSAL_REPLACE = 2;
-
-	/**
-	 * Indicates that the contents of the control should not be modified when a
-	 * proposal is chosen. This is typically used when a client needs more
-	 * specialized behavior when a proposal is chosen. In this case, clients
-	 * typically register an IContentProposalListener so that they are notified
-	 * when a proposal is chosen.
-	 */
-	public static final int PROPOSAL_IGNORE = 3;
-
-	/**
-	 * Indicates that there should be no filter applied as keys are typed in the
-	 * popup.
-	 */
-	public static final int FILTER_NONE = 1;
-
-	/**
-	 * Indicates that a single character filter applies as keys are typed in the
-	 * popup.
-	 */
-	public static final int FILTER_CHARACTER = 2;
-
-	/**
-	 * Indicates that a cumulative filter applies as keys are typed in the
-	 * popup. That is, each character typed will be added to the filter.
-	 * 
-	 * @deprecated As of 3.4, filtering that is sensitive to changes in the
-	 *             control content should be performed by the supplied
-	 *             {@link IContentProposalProvider}, such as that performed by
-	 *             {@link SimpleContentProposalProvider}
-	 */
-	public static final int FILTER_CUMULATIVE = 3;
-
-	/*
-	 * Set to <code>true</code> to use a Table with SWT.VIRTUAL. This is a
-	 * workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=98585#c40
-	 * The corresponding SWT bug is
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=90321
-	 */
-	private static final boolean USE_VIRTUAL = !Util.isMotif();
-
-	/*
-	 * The delay before showing a secondary popup.
-	 */
-	private static final int POPUP_DELAY = 750;
-
-	/*
-	 * The character height hint for the popup. May be overridden by using
-	 * setInitialPopupSize.
-	 */
-	private static final int POPUP_CHAR_HEIGHT = 10;
-
-	/*
-	 * The minimum pixel width for the popup. May be overridden by using
-	 * setInitialPopupSize.
-	 */
-	private static final int POPUP_MINIMUM_WIDTH = 300;
-
-	/*
-	 * The pixel offset of the popup from the bottom corner of the control.
-	 */
-	private static final int POPUP_OFFSET = 3;
-
-	/*
-	 * Empty string.
-	 */
-	private static final String EMPTY = ""; //$NON-NLS-1$
-
-	/*
-	 * The object that provides content proposals.
-	 */
-	private IContentProposalProvider proposalProvider;
-
-	/*
-	 * A label provider used to display proposals in the popup, and to extract
-	 * Strings from non-String proposals.
-	 */
-	private ILabelProvider labelProvider;
-
-	/*
-	 * The control for which content proposals are provided.
-	 */
-	private Control control;
-
-	/*
-	 * The adapter used to extract the String contents from an arbitrary
-	 * control.
-	 */
-	private IControlContentAdapter controlContentAdapter;
-
-	/*
-	 * The popup used to show proposals.
-	 */
-	private ContentProposalPopup popup;
-
-	/*
-	 * The keystroke that signifies content proposals should be shown.
-	 */
-	private KeyStroke triggerKeyStroke;
-
-	/*
-	 * The String containing characters that auto-activate the popup.
-	 */
-	private String autoActivateString;
-
-	/*
-	 * Integer that indicates how an accepted proposal should affect the
-	 * control. One of PROPOSAL_IGNORE, PROPOSAL_INSERT, or PROPOSAL_REPLACE.
-	 * Default value is PROPOSAL_INSERT.
-	 */
-	private int proposalAcceptanceStyle = PROPOSAL_INSERT;
-
-	/*
-	 * A boolean that indicates whether key events received while the proposal
-	 * popup is open should also be propagated to the control. Default value is
-	 * true.
-	 */
-	private boolean propagateKeys = true;
-
-	/*
-	 * Integer that indicates the filtering style. One of FILTER_CHARACTER,
-	 * FILTER_CUMULATIVE, FILTER_NONE.
-	 */
-	private int filterStyle = FILTER_NONE;
-
-	/*
-	 * The listener we install on the control.
-	 */
-	private Listener controlListener;
-
-	/*
-	 * The list of IContentProposalListener listeners.
-	 */
-	private ListenerList proposalListeners = new ListenerList();
-
-	/*
-	 * The list of IContentProposalListener2 listeners.
-	 */
-	private ListenerList proposalListeners2 = new ListenerList();
-
-	/*
-	 * Flag that indicates whether the adapter is enabled. In some cases,
-	 * adapters may be installed but depend upon outside state.
-	 */
-	private boolean isEnabled = true;
-
-	/*
-	 * The delay in milliseconds used when autoactivating the popup.
-	 */
-	private int autoActivationDelay = 0;
-
-	/*
-	 * A boolean indicating whether a keystroke has been received. Used to see
-	 * if an autoactivation delay was interrupted by a keystroke.
-	 */
-	private boolean receivedKeyDown;
-
-	/*
-	 * The desired size in pixels of the proposal popup.
-	 */
-	private Point popupSize;
-
-	/*
-	 * The remembered position of the insertion position. Not all controls will
-	 * restore the insertion position if the proposal popup gets focus, so we
-	 * need to remember it.
-	 */
-	private int insertionPos = -1;
-
-	/*
-	 * The remembered selection range. Not all controls will restore the
-	 * selection position if the proposal popup gets focus, so we need to
-	 * remember it.
-	 */
-	private Point selectionRange = new Point(-1, -1);
-
-	/*
-	 * A flag that indicates that we are watching modify events
-	 */
-	private boolean watchModify = false;
-
-	/**
-	 * Construct a content proposal adapter that can assist the user with
-	 * choosing content for the field.
-	 * 
-	 * @param control
-	 *            the control for which the adapter is providing content assist.
-	 *            May not be <code>null</code>.
-	 * @param controlContentAdapter
-	 *            the <code>IControlContentAdapter</code> used to obtain and
-	 *            update the control's contents as proposals are accepted. May
-	 *            not be <code>null</code>.
-	 * @param proposalProvider
-	 *            the <code>IContentProposalProvider</code> used to obtain
-	 *            content proposals for this control, or <code>null</code> if
-	 *            no content proposal is available.
-	 * @param keyStroke
-	 *            the keystroke that will invoke the content proposal popup. If
-	 *            this value is <code>null</code>, then proposals will be
-	 *            activated automatically when any of the auto activation
-	 *            characters are typed.
-	 * @param autoActivationCharacters
-	 *            An array of characters that trigger auto-activation of content
-	 *            proposal. If specified, these characters will trigger
-	 *            auto-activation of the proposal popup, regardless of whether
-	 *            an explicit invocation keyStroke was specified. If this
-	 *            parameter is <code>null</code>, then only a specified
-	 *            keyStroke will invoke content proposal. If this parameter is
-	 *            <code>null</code> and the keyStroke parameter is
-	 *            <code>null</code>, then all alphanumeric characters will
-	 *            auto-activate content proposal.
-	 */
-	public ContentProposalAdapter(Control control,
-			IControlContentAdapter controlContentAdapter,
-			IContentProposalProvider proposalProvider, KeyStroke keyStroke,
-			char[] autoActivationCharacters) {
-		super();
-		// We always assume the control and content adapter are valid.
-		Assert.isNotNull(control);
-		Assert.isNotNull(controlContentAdapter);
-		this.control = control;
-		this.controlContentAdapter = controlContentAdapter;
-
-		// The rest of these may be null
-		this.proposalProvider = proposalProvider;
-		this.triggerKeyStroke = keyStroke;
-		if (autoActivationCharacters != null) {
-			this.autoActivateString = new String(autoActivationCharacters);
-		}
-		addControlListener(control);
-	}
-
-	/**
-	 * Get the control on which the content proposal adapter is installed.
-	 * 
-	 * @return the control on which the proposal adapter is installed.
-	 */
-	public Control getControl() {
-		return control;
-	}
-
-	/**
-	 * Get the label provider that is used to show proposals.
-	 * 
-	 * @return the {@link ILabelProvider} used to show proposals, or
-	 *         <code>null</code> if one has not been installed.
-	 */
-	public ILabelProvider getLabelProvider() {
-		return labelProvider;
-	}
-
-	/**
-	 * Return a boolean indicating whether the receiver is enabled.
-	 * 
-	 * @return <code>true</code> if the adapter is enabled, and
-	 *         <code>false</code> if it is not.
-	 */
-	public boolean isEnabled() {
-		return isEnabled;
-	}
-
-	/**
-	 * Set the label provider that is used to show proposals. The lifecycle of
-	 * the specified label provider is not managed by this adapter. Clients must
-	 * dispose the label provider when it is no longer needed.
-	 * 
-	 * @param labelProvider
-	 *            the (@link ILabelProvider} used to show proposals.
-	 */
-	public void setLabelProvider(ILabelProvider labelProvider) {
-		this.labelProvider = labelProvider;
-	}
-
-	/**
-	 * Return the proposal provider that provides content proposals given the
-	 * current content of the field. A value of <code>null</code> indicates
-	 * that there are no content proposals available for the field.
-	 * 
-	 * @return the {@link IContentProposalProvider} used to show proposals. May
-	 *         be <code>null</code>.
-	 */
-	public IContentProposalProvider getContentProposalProvider() {
-		return proposalProvider;
-	}
-
-	/**
-	 * Set the content proposal provider that is used to show proposals.
-	 * 
-	 * @param proposalProvider
-	 *            the {@link IContentProposalProvider} used to show proposals
-	 */
-	public void setContentProposalProvider(
-			IContentProposalProvider proposalProvider) {
-		this.proposalProvider = proposalProvider;
-	}
-
-	/**
-	 * Return the array of characters on which the popup is autoactivated.
-	 * 
-	 * @return An array of characters that trigger auto-activation of content
-	 *         proposal. If specified, these characters will trigger
-	 *         auto-activation of the proposal popup, regardless of whether an
-	 *         explicit invocation keyStroke was specified. If this parameter is
-	 *         <code>null</code>, then only a specified keyStroke will invoke
-	 *         content proposal. If this value is <code>null</code> and the
-	 *         keyStroke value is <code>null</code>, then all alphanumeric
-	 *         characters will auto-activate content proposal.
-	 */
-	public char[] getAutoActivationCharacters() {
-		if (autoActivateString == null) {
-			return null;
-		}
-		return autoActivateString.toCharArray();
-	}
-
-	/**
-	 * Set the array of characters that will trigger autoactivation of the
-	 * popup.
-	 * 
-	 * @param autoActivationCharacters
-	 *            An array of characters that trigger auto-activation of content
-	 *            proposal. If specified, these characters will trigger
-	 *            auto-activation of the proposal popup, regardless of whether
-	 *            an explicit invocation keyStroke was specified. If this
-	 *            parameter is <code>null</code>, then only a specified
-	 *            keyStroke will invoke content proposal. If this parameter is
-	 *            <code>null</code> and the keyStroke value is
-	 *            <code>null</code>, then all alphanumeric characters will
-	 *            auto-activate content proposal.
-	 * 
-	 */
-	public void setAutoActivationCharacters(char[] autoActivationCharacters) {
-		if (autoActivationCharacters == null) {
-			this.autoActivateString = null;
-		} else {
-			this.autoActivateString = new String(autoActivationCharacters);
-		}
-	}
-
-	/**
-	 * Set the delay, in milliseconds, used before any autoactivation is
-	 * triggered.
-	 * 
-	 * @return the time in milliseconds that will pass before a popup is
-	 *         automatically opened
-	 */
-	public int getAutoActivationDelay() {
-		return autoActivationDelay;
-
-	}
-
-	/**
-	 * Set the delay, in milliseconds, used before autoactivation is triggered.
-	 * 
-	 * @param delay
-	 *            the time in milliseconds that will pass before a popup is
-	 *            automatically opened
-	 */
-	public void setAutoActivationDelay(int delay) {
-		autoActivationDelay = delay;
-
-	}
-
-	/**
-	 * Get the integer style that indicates how an accepted proposal affects the
-	 * control's content.
-	 * 
-	 * @return a constant indicating how an accepted proposal should affect the
-	 *         control's content. Should be one of <code>PROPOSAL_INSERT</code>,
-	 *         <code>PROPOSAL_REPLACE</code>, or <code>PROPOSAL_IGNORE</code>.
-	 *         (Default is <code>PROPOSAL_INSERT</code>).
-	 */
-	public int getProposalAcceptanceStyle() {
-		return proposalAcceptanceStyle;
-	}
-
-	/**
-	 * Set the integer style that indicates how an accepted proposal affects the
-	 * control's content.
-	 * 
-	 * @param acceptance
-	 *            a constant indicating how an accepted proposal should affect
-	 *            the control's content. Should be one of
-	 *            <code>PROPOSAL_INSERT</code>, <code>PROPOSAL_REPLACE</code>,
-	 *            or <code>PROPOSAL_IGNORE</code>
-	 */
-	public void setProposalAcceptanceStyle(int acceptance) {
-		proposalAcceptanceStyle = acceptance;
-	}
-
-	/**
-	 * Return the integer style that indicates how keystrokes affect the content
-	 * of the proposal popup while it is open.
-	 * 
-	 * @return a constant indicating how keystrokes in the proposal popup affect
-	 *         filtering of the proposals shown. <code>FILTER_NONE</code>
-	 *         specifies that no filtering will occur in the content proposal
-	 *         list as keys are typed. <code>FILTER_CHARACTER</code> specifies
-	 *         the content of the popup will be filtered by the most recently
-	 *         typed character. <code>FILTER_CUMULATIVE</code> is deprecated
-	 *         and no longer recommended. It specifies that the content of the
-	 *         popup will be filtered by a string containing all the characters
-	 *         typed since the popup has been open. The default is
-	 *         <code>FILTER_NONE</code>.
-	 */
-	public int getFilterStyle() {
-		return filterStyle;
-	}
-
-	/**
-	 * Set the integer style that indicates how keystrokes affect the content of
-	 * the proposal popup while it is open. Popup-based filtering is useful for
-	 * narrowing and navigating the list of proposals provided once the popup is
-	 * open. Filtering of the proposals will occur even when the control content
-	 * is not affected by user typing. Note that automatic filtering is not used
-	 * to achieve content-sensitive filtering such as auto-completion. Filtering
-	 * that is sensitive to changes in the control content should be performed
-	 * by the supplied {@link IContentProposalProvider}.
-	 * 
-	 * @param filterStyle
-	 *            a constant indicating how keystrokes received in the proposal
-	 *            popup affect filtering of the proposals shown.
-	 *            <code>FILTER_NONE</code> specifies that no automatic
-	 *            filtering of the content proposal list will occur as keys are
-	 *            typed in the popup. <code>FILTER_CHARACTER</code> specifies
-	 *            that the content of the popup will be filtered by the most
-	 *            recently typed character. <code>FILTER_CUMULATIVE</code> is
-	 *            deprecated and no longer recommended. It specifies that the
-	 *            content of the popup will be filtered by a string containing
-	 *            all the characters typed since the popup has been open.
-	 */
-	public void setFilterStyle(int filterStyle) {
-		this.filterStyle = filterStyle;
-	}
-
-	/**
-	 * Return the size, in pixels, of the content proposal popup.
-	 * 
-	 * @return a Point specifying the last width and height, in pixels, of the
-	 *         content proposal popup.
-	 */
-	public Point getPopupSize() {
-		return popupSize;
-	}
-
-	/**
-	 * Set the size, in pixels, of the content proposal popup. This size will be
-	 * used the next time the content proposal popup is opened.
-	 * 
-	 * @param size
-	 *            a Point specifying the desired width and height, in pixels, of
-	 *            the content proposal popup.
-	 */
-	public void setPopupSize(Point size) {
-		popupSize = size;
-	}
-
-	/**
-	 * Get the boolean that indicates whether key events (including
-	 * auto-activation characters) received by the content proposal popup should
-	 * also be propagated to the adapted control when the proposal popup is
-	 * open.
-	 * 
-	 * @return a boolean that indicates whether key events (including
-	 *         auto-activation characters) should be propagated to the adapted
-	 *         control when the proposal popup is open. Default value is
-	 *         <code>true</code>.
-	 */
-	public boolean getPropagateKeys() {
-		return propagateKeys;
-	}
-
-	/**
-	 * Set the boolean that indicates whether key events (including
-	 * auto-activation characters) received by the content proposal popup should
-	 * also be propagated to the adapted control when the proposal popup is
-	 * open.
-	 * 
-	 * @param propagateKeys
-	 *            a boolean that indicates whether key events (including
-	 *            auto-activation characters) should be propagated to the
-	 *            adapted control when the proposal popup is open.
-	 */
-	public void setPropagateKeys(boolean propagateKeys) {
-		this.propagateKeys = propagateKeys;
-	}
-
-	/**
-	 * Return the content adapter that can get or retrieve the text contents
-	 * from the adapter's control. This method is used when a client, such as a
-	 * content proposal listener, needs to update the control's contents
-	 * manually.
-	 * 
-	 * @return the {@link IControlContentAdapter} which can update the control
-	 *         text.
-	 */
-	public IControlContentAdapter getControlContentAdapter() {
-		return controlContentAdapter;
-	}
-
-	/**
-	 * Set the boolean flag that determines whether the adapter is enabled.
-	 * 
-	 * @param enabled
-	 *            <code>true</code> if the adapter is enabled and responding
-	 *            to user input, <code>false</code> if it is ignoring user
-	 *            input.
-	 * 
-	 */
-	public void setEnabled(boolean enabled) {
-		// If we are disabling it while it's proposing content, close the
-		// content proposal popup.
-		if (isEnabled && !enabled) {
-			if (popup != null) {
-				popup.close();
-			}
-		}
-		isEnabled = enabled;
-	}
-
-	/**
-	 * Add the specified listener to the list of content proposal listeners that
-	 * are notified when content proposals are chosen.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IContentProposalListener to be added as a listener. Must
-	 *            not be <code>null</code>. If an attempt is made to register
-	 *            an instance which is already registered with this instance,
-	 *            this method has no effect.
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IContentProposalListener
-	 */
-	public void addContentProposalListener(IContentProposalListener listener) {
-		proposalListeners.add(listener);
-	}
-
-	/**
-	 * Removes the specified listener from the list of content proposal
-	 * listeners that are notified when content proposals are chosen.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IContentProposalListener to be removed as a listener. Must
-	 *            not be <code>null</code>. If the listener has not already
-	 *            been registered, this method has no effect.
-	 * 
-	 * @since 3.3
-	 * @see org.eclipse.jface.fieldassist.IContentProposalListener
-	 */
-	public void removeContentProposalListener(IContentProposalListener listener) {
-		proposalListeners.remove(listener);
-	}
-
-	/**
-	 * Add the specified listener to the list of content proposal listeners that
-	 * are notified when a content proposal popup is opened or closed.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IContentProposalListener2 to be added as a listener. Must
-	 *            not be <code>null</code>. If an attempt is made to register
-	 *            an instance which is already registered with this instance,
-	 *            this method has no effect.
-	 * 
-	 * @since 3.3
-	 * @see org.eclipse.jface.fieldassist.IContentProposalListener2
-	 */
-	public void addContentProposalListener(IContentProposalListener2 listener) {
-		proposalListeners2.add(listener);
-	}
-
-	/**
-	 * Remove the specified listener from the list of content proposal listeners
-	 * that are notified when a content proposal popup is opened or closed.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the IContentProposalListener2 to be removed as a listener.
-	 *            Must not be <code>null</code>. If the listener has not
-	 *            already been registered, this method has no effect.
-	 * 
-	 * @since 3.3
-	 * @see org.eclipse.jface.fieldassist.IContentProposalListener2
-	 */
-	public void removeContentProposalListener(IContentProposalListener2 listener) {
-		proposalListeners2.remove(listener);
-	}
-
-	/*
-	 * Add our listener to the control. Debug information to be left in until
-	 * this support is stable on all platforms.
-	 */
-	private void addControlListener(Control control) {
-		if (DEBUG) {
-			System.out
-					.println("ContentProposalListener#installControlListener()"); //$NON-NLS-1$
-		}
-
-		if (controlListener != null) {
-			return;
-		}
-		controlListener = new Listener() {
-			public void handleEvent(Event e) {
-				if (!isEnabled) {
-					return;
-				}
-
-				switch (e.type) {
-				case SWT.Traverse:
-				case SWT.KeyDown:
-					if (DEBUG) {
-						StringBuffer sb;
-						if (e.type == SWT.Traverse) {
-							sb = new StringBuffer("Traverse"); //$NON-NLS-1$
-						} else {
-							sb = new StringBuffer("KeyDown"); //$NON-NLS-1$
-						}
-						sb.append(" received by adapter"); //$NON-NLS-1$
-						dump(sb.toString(), e);
-					}
-					// If the popup is open, it gets first shot at the
-					// keystroke and should set the doit flags appropriately.
-					if (popup != null) {
-						popup.getTargetControlListener().handleEvent(e);
-						if (DEBUG) {
-							StringBuffer sb;
-							if (e.type == SWT.Traverse) {
-								sb = new StringBuffer("Traverse"); //$NON-NLS-1$
-							} else {
-								sb = new StringBuffer("KeyDown"); //$NON-NLS-1$
-							}
-							sb.append(" after being handled by popup"); //$NON-NLS-1$
-							dump(sb.toString(), e);
-						}
-						// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=192633
-						// If the popup is open and this is a valid character, we
-						// want to watch for the modified text.
-						if (propagateKeys && e.character != 0)
-							watchModify = true;
-
-						return;
-					}
-
-					// We were only listening to traverse events for the popup
-					if (e.type == SWT.Traverse) {
-						return;
-					}
-
-					// The popup is not open. We are looking at keydown events
-					// for a trigger to open the popup.
-					if (triggerKeyStroke != null) {
-						// Either there are no modifiers for the trigger and we
-						// check the character field...
-						if ((triggerKeyStroke.getModifierKeys() == KeyStroke.NO_KEY && triggerKeyStroke
-								.getNaturalKey() == e.character)
-								||
-								// ...or there are modifiers, in which case the
-								// keycode and state must match
-								(triggerKeyStroke.getNaturalKey() == e.keyCode && ((triggerKeyStroke
-										.getModifierKeys() & e.stateMask) == triggerKeyStroke
-										.getModifierKeys()))) {
-							// We never propagate the keystroke for an explicit
-							// keystroke invocation of the popup
-							e.doit = false;
-							openProposalPopup(false);
-							return;
-						}
-					}
-					/*
-					 * The triggering keystroke was not invoked. If a character
-					 * was typed, compare it to the autoactivation characters.
-					 */
-					if (e.character != 0) {
-						if (autoActivateString != null) {
-							if (autoActivateString.indexOf(e.character) >= 0) {
-								autoActivate();
-							} else {
-								// No autoactivation occurred, so record the key
-								// down as a means to interrupt any
-								// autoactivation that is pending due to
-								// autoactivation delay.
-								receivedKeyDown = true;
-								// watch the modify so we can close the popup in
-								// cases where there is no longer a trigger
-								// character in the content
-								watchModify = true;
-							}
-						} else {
-							// The autoactivate string is null. If the trigger
-							// is also null, we want to act on any modification
-							// to the content. Set a flag so we'll catch this
-							// in the modify event.
-							if (triggerKeyStroke == null) {
-								watchModify = true;
-							}
-						}
-					} else {
-						// A non-character key has been pressed. Interrupt any
-						// autoactivation that is pending due to autoactivation delay.
-						receivedKeyDown = true;
-					}
-					break;
-
-
-					// There are times when we want to monitor content changes
-					// rather than individual keystrokes to determine whether
-					// the popup should be closed or opened based on the entire
-					// content of the control.
-					// The watchModify flag ensures that we don't autoactivate if
-					// the content change was caused by something other than typing.
-					// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=183650
-					case SWT.Modify:
-						if (allowsAutoActivate() && watchModify) {
-							if (DEBUG) {
-								dump("Modify event triggers popup open or close", e); //$NON-NLS-1$
-							}
-							watchModify = false;
-							// We are in autoactivation mode, either for specific
-							// characters or for all characters. In either case, 
-							// we should close the proposal popup when there is no
-							// content in the control.
-							if (isControlContentEmpty()) {
-								// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=192633
-								closeProposalPopup();
-							} else {
-								// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=147377
-								// Given that we will close the popup when there are
-								// no valid proposals, we must consider reopening it on any
-								// content change when there are no particular autoActivation
-								// characters
-								if (autoActivateString == null) {
-									autoActivate();
-								} else {
-									// Autoactivation characters are defined, but this
-									// modify event does not involve one of them.  See
-									// if any of the autoactivation characters are left
-									// in the content and close the popup if none remain.
-									if (!shouldPopupRemainOpen())
-										closeProposalPopup();
-								}
-							}
-						}
-						break;
-				default:
-					break;
-				}
-			}
-
-			/**
-			 * Dump the given events to "standard" output.
-			 * 
-			 * @param who
-			 *            who is dumping the event
-			 * @param e
-			 *            the event
-			 */
-			private void dump(String who, Event e) {
-				StringBuffer sb = new StringBuffer(
-						"--- [ContentProposalAdapter]\n"); //$NON-NLS-1$
-				sb.append(who);
-				sb.append(" - e: keyCode=" + e.keyCode + hex(e.keyCode)); //$NON-NLS-1$
-				sb.append("; character=" + e.character + hex(e.character)); //$NON-NLS-1$
-				sb.append("; stateMask=" + e.stateMask + hex(e.stateMask)); //$NON-NLS-1$
-				sb.append("; doit=" + e.doit); //$NON-NLS-1$
-				sb.append("; detail=" + e.detail + hex(e.detail)); //$NON-NLS-1$
-				sb.append("; widget=" + e.widget); //$NON-NLS-1$
-				System.out.println(sb);
-			}
-
-			private String hex(int i) {
-				return "[0x" + Integer.toHexString(i) + ']'; //$NON-NLS-1$
-			}
-		};
-		control.addListener(SWT.KeyDown, controlListener);
-		control.addListener(SWT.Traverse, controlListener);
-		control.addListener(SWT.Modify, controlListener);
-
-		if (DEBUG) {
-			System.out
-					.println("ContentProposalAdapter#installControlListener() - installed"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Open the proposal popup and display the proposals provided by the
-	 * proposal provider. If there are no proposals to be shown, do not show the
-	 * popup. This method returns immediately. That is, it does not wait for the
-	 * popup to open or a proposal to be selected.
-	 * 
-	 * @param autoActivated
-	 *            a boolean indicating whether the popup was autoactivated. If
-	 *            false, a beep will sound when no proposals can be shown.
-	 */
-	private void openProposalPopup(boolean autoActivated) {
-		if (isValid()) {
-			if (popup == null) {
-				// Check whether there are any proposals to be shown.
-				recordCursorPosition(); // must be done before getting proposals
-				IContentProposal[] proposals = getProposals();
-				if (proposals.length > 0) {
-					if (DEBUG) {
-						System.out.println("POPUP OPENED BY PRECEDING EVENT"); //$NON-NLS-1$
-					}
-					recordCursorPosition();
-					popup = new ContentProposalPopup(null, proposals);
-					popup.open();
-					popup.getShell().addDisposeListener(new DisposeListener() {
-						public void widgetDisposed(DisposeEvent event) {
-							popup = null;
-						}
-					});
-					internalPopupOpened();
-					notifyPopupOpened();
-				} else if (!autoActivated) {
-					getControl().getDisplay().beep();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Open the proposal popup and display the proposals provided by the
-	 * proposal provider. This method returns immediately. That is, it does not
-	 * wait for a proposal to be selected. This method is used by subclasses to
-	 * explicitly invoke the opening of the popup. If there are no proposals to
-	 * show, the popup will not open and a beep will be sounded.
-	 */
-	protected void openProposalPopup() {
-		openProposalPopup(false);
-	}
-
-	/**
-	 * Close the proposal popup without accepting a proposal. This method
-	 * returns immediately, and has no effect if the proposal popup was not
-	 * open. This method is used by subclasses to explicitly close the popup
-	 * based on additional logic.
-	 * 
-	 * @since 3.3
-	 */
-	protected void closeProposalPopup() {
-		if (popup != null) {
-			popup.close();
-		}
-	}
-
-	/*
-	 * A content proposal has been accepted. Update the control contents
-	 * accordingly and notify any listeners.
-	 * 
-	 * @param proposal the accepted proposal
-	 */
-	private void proposalAccepted(IContentProposal proposal) {
-		switch (proposalAcceptanceStyle) {
-		case (PROPOSAL_REPLACE):
-			setControlContent(proposal.getContent(), proposal
-					.getCursorPosition());
-			break;
-		case (PROPOSAL_INSERT):
-			insertControlContent(proposal.getContent(), proposal
-					.getCursorPosition());
-			break;
-		default:
-			// do nothing. Typically a listener is installed to handle this in
-			// a custom way.
-			break;
-		}
-
-		// In all cases, notify listeners of an accepted proposal.
-		notifyProposalAccepted(proposal);
-	}
-
-	/*
-	 * Set the text content of the control to the specified text, setting the
-	 * cursorPosition at the desired location within the new contents.
-	 */
-	private void setControlContent(String text, int cursorPosition) {
-		if (isValid()) {
-			// should already be false, but just in case.
-			watchModify = false;
-			controlContentAdapter.setControlContents(control, text,
-					cursorPosition);
-		}
-	}
-
-	/*
-	 * Insert the specified text into the control content, setting the
-	 * cursorPosition at the desired location within the new contents.
-	 */
-	private void insertControlContent(String text, int cursorPosition) {
-		if (isValid()) {
-			// should already be false, but just in case.
-			watchModify = false;
-			// Not all controls preserve their selection index when they lose
-			// focus, so we must set it explicitly here to what it was before
-			// the popup opened.
-			// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=127108
-			// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=139063
-			if (controlContentAdapter instanceof IControlContentAdapter2
-					&& selectionRange.x != -1) {
-				((IControlContentAdapter2) controlContentAdapter).setSelection(
-						control, selectionRange);
-			} else if (insertionPos != -1) {
-				controlContentAdapter.setCursorPosition(control, insertionPos);
-			}
-			controlContentAdapter.insertControlContents(control, text,
-					cursorPosition);
-		}
-	}
-
-	/*
-	 * Check that the control and content adapter are valid.
-	 */
-	private boolean isValid() {
-		return control != null && !control.isDisposed()
-				&& controlContentAdapter != null;
-	}
-
-	/*
-	 * Record the control's cursor position.
-	 */
-	private void recordCursorPosition() {
-		if (isValid()) {
-			IControlContentAdapter adapter = getControlContentAdapter();
-			insertionPos = adapter.getCursorPosition(control);
-			// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=139063
-			if (adapter instanceof IControlContentAdapter2) {
-				selectionRange = ((IControlContentAdapter2) adapter)
-						.getSelection(control);
-			}
-
-		}
-	}
-
-	/*
-	 * Get the proposals from the proposal provider. Gets all of the proposals
-	 * without doing any filtering.
-	 */
-	private IContentProposal[] getProposals() {
-		if (proposalProvider == null || !isValid()) {
-			return null;
-		}
-		if (DEBUG) {
-			System.out.println(">>> obtaining proposals from provider"); //$NON-NLS-1$
-		}
-		int position = insertionPos;
-		if (position == -1) {
-			position = getControlContentAdapter().getCursorPosition(
-					getControl());
-		}
-		String contents = getControlContentAdapter().getControlContents(
-				getControl());
-		IContentProposal[] proposals = proposalProvider.getProposals(contents,
-				position);
-		return proposals;
-	}
-
-	/**
-	 * Autoactivation has been triggered. Open the popup using any specified
-	 * delay.
-	 */
-	private void autoActivate() {
-		if (autoActivationDelay > 0) {
-			Runnable runnable = new Runnable() {
-				public void run() {
-					receivedKeyDown = false;
-					try {
-						Thread.sleep(autoActivationDelay);
-					} catch (InterruptedException e) {
-					}
-					if (!isValid() || receivedKeyDown) {
-						return;
-					}
-					getControl().getDisplay().syncExec(new Runnable() {
-						public void run() {
-							openProposalPopup(true);
-						}
-					});
-				}
-			};
-			Thread t = new Thread(runnable);
-			t.start();
-		} else {
-			// Since we do not sleep, we must open the popup
-			// in an async exec. This is necessary because
-			// this method may be called in the middle of handling
-			// some event that will cause the cursor position or
-			// other important info to change as a result of this
-			// event occurring.
-			getControl().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					if (isValid()) {
-						openProposalPopup(true);
-					}
-				}
-			});
-		}
-	}
-
-	/*
-	 * A proposal has been accepted. Notify interested listeners.
-	 */
-	private void notifyProposalAccepted(IContentProposal proposal) {
-		if (DEBUG) {
-			System.out.println("Notify listeners - proposal accepted."); //$NON-NLS-1$
-		}
-		final Object[] listenerArray = proposalListeners.getListeners();
-		for (int i = 0; i < listenerArray.length; i++) {
-			((IContentProposalListener) listenerArray[i])
-					.proposalAccepted(proposal);
-		}
-	}
-
-	/*
-	 * The proposal popup has opened. Notify interested listeners.
-	 */
-	private void notifyPopupOpened() {
-		if (DEBUG) {
-			System.out.println("Notify listeners - popup opened."); //$NON-NLS-1$
-		}
-		final Object[] listenerArray = proposalListeners2.getListeners();
-		for (int i = 0; i < listenerArray.length; i++) {
-			((IContentProposalListener2) listenerArray[i])
-					.proposalPopupOpened(this);
-		}
-	}
-
-	/*
-	 * The proposal popup has closed. Notify interested listeners.
-	 */
-	private void notifyPopupClosed() {
-		if (DEBUG) {
-			System.out.println("Notify listeners - popup closed."); //$NON-NLS-1$
-		}
-		final Object[] listenerArray = proposalListeners2.getListeners();
-		for (int i = 0; i < listenerArray.length; i++) {
-			((IContentProposalListener2) listenerArray[i])
-					.proposalPopupClosed(this);
-		}
-	}
-
-	/**
-	 * Returns whether the content proposal popup has the focus. This includes
-	 * both the primary popup and any secondary info popup that may have focus.
-	 * 
-	 * @return <code>true</code> if the proposal popup or its secondary info
-	 *         popup has the focus
-	 * @since 3.4
-	 */
-	public boolean hasProposalPopupFocus() {
-		return popup != null && popup.hasFocus();
-	}
-
-	/*
-	 * Return whether the control content is empty
-	 */
-	private boolean isControlContentEmpty() {
-		return getControlContentAdapter().getControlContents(getControl())
-				.length() == 0;
-	}
-	
-	/*
-	 * The popup has just opened, but listeners have not yet
-	 * been notified.  Perform any cleanup that is needed.
-	 */
-	private void internalPopupOpened() {
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=243612
-		if (control instanceof Combo) {
-			((Combo)control).setListVisible(false);
-		}
-	}
-	
-	/*
-	 * Return whether a proposal popup should remain open.
-	 * If it was autoactivated by specific characters, and 
-	 * none of those characters remain, then it should not remain
-	 * open.  This method should not be used to determine
-	 * whether autoactivation has occurred or should occur, only whether
-	 * the circumstances would dictate that a popup remain open.
-	 */
-	private boolean shouldPopupRemainOpen() {
-		// If we always autoactivate or never autoactivate, it should remain open
-		if (autoActivateString == null || autoActivateString.length() == 0)
-			return true;
-		String content = getControlContentAdapter().getControlContents(getControl());
-		for (int i=0; i<autoActivateString.length(); i++) {
-			if (content.indexOf(autoActivateString.charAt(i)) >= 0)
-				return true;
-		}
-		return false;
-	}
-	
-	/*
-	 * Return whether this adapter is configured for autoactivation, by
-	 * specific characters or by any characters.
-	 */
-	private boolean allowsAutoActivate() {
-		return (autoActivateString != null && autoActivateString.length() > 0) // there are specific autoactivation chars supplied
-		  || (autoActivateString == null && triggerKeyStroke == null);    // we autoactivate on everything
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
deleted file mode 100644
index a9b26ac..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
+++ /dev/null
@@ -1,1229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MenuDetectEvent;
-import org.eclipse.swt.events.MenuDetectListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.graphics.Region;
-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.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * ControlDecoration renders an image decoration near a control. It allows
- * clients to specify an image and a position for the image relative to the
- * control. A ControlDecoration may be assigned description text, which can
- * optionally be shown when the user hovers over the image. Clients can decorate
- * any kind of control.
- * <p>
- * Decoration images always appear on the left or right side of the field, never
- * above or below it. Decorations can be positioned at the top, center, or
- * bottom of either side of the control. Future implementations may provide
- * additional positioning options for decorations.
- * <p>
- * ControlDecoration renders the image adjacent to the specified (already
- * created) control, with no guarantee that it won't be clipped or otherwise
- * obscured or overlapped by adjacent controls, including another
- * ControlDecoration placed in the same location. Clients should ensure that
- * there is adequate space adjacent to the control to show the decoration
- * properly.
- * <p>
- * Clients using ControlDecoration should typically ensure that enough margin
- * space is reserved for a decoration by altering the layout data margins,
- * although this is not assumed or required by the ControlDecoration
- * implementation.
- * <p>
- * This class is intended to be instantiated and used by clients. It is not
- * intended to be subclassed by clients.
- * 
- * @since 3.3
- * 
- * @see FieldDecoration
- * @see FieldDecorationRegistry
- * 
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ControlDecoration {
-	/**
-	 * Debug flag for tracing
-	 */
-	private static boolean DEBUG = false;
-
-	/**
-	 * Cached platform flag for dealing with platform-specific issue:
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=219326 : Shell with custom region and SWT.NO_TRIM still has border
-	 */
-	private static boolean MAC = Util.isMac();
-
-	/**
-	 * The associated control
-	 */
-	private Control control;
-
-	/**
-	 * The composite on which to render the decoration and hook mouse events, or
-	 * null if we are hooking all parent composites.
-	 */
-	private Composite composite;
-
-	/**
-	 * The associated image.
-	 */
-	private Image image;
-
-	/**
-	 * The associated description text.
-	 */
-	private String descriptionText;
-	/**
-	 * The position of the decoration.
-	 */
-	private int position;
-
-	/**
-	 * The decoration's visibility flag
-	 */
-	private boolean visible = true;
-
-	/**
-	 * Boolean indicating whether the decoration should only be shown when the
-	 * control has focus
-	 */
-	private boolean showOnlyOnFocus = false;
-
-	/**
-	 * Boolean indicating whether the decoration should show its description
-	 * text in a hover when the user hovers over the decoration.
-	 */
-	private boolean showHover = true;
-
-	/**
-	 * Margin width used between the decorator and the control.
-	 */
-	private int marginWidth = 0;
-
-	/**
-	 * Registered selection listeners.
-	 */
-	private ListenerList selectionListeners = new ListenerList();
-
-	/**
-	 * Registered menu detect listeners.
-	 */
-	private ListenerList menuDetectListeners = new ListenerList();
-
-	/**
-	 * The focus listener
-	 */
-	private FocusListener focusListener;
-
-	/**
-	 * The dispose listener
-	 */
-	private DisposeListener disposeListener;
-
-	/**
-	 * The paint listener installed for drawing the decoration
-	 */
-	private PaintListener paintListener;
-
-	/**
-	 * The mouse listener installed for tracking the hover
-	 */
-	private MouseTrackListener mouseTrackListener;
-
-	/**
-	 * The mouse move listener installed for tracking the hover
-	 */
-	private MouseMoveListener mouseMoveListener;
-
-	/**
-	 * The untyped listener installed for notifying external listeners
-	 */
-	private Listener compositeListener;
-
-	/**
-	 * Control that we last installed a move listener on. We only want one at a
-	 * time.
-	 */
-	private Control moveListeningTarget = null;
-
-	/**
-	 * Debug counter used to match add and remove listeners
-	 */
-	private int listenerInstalls = 0;
-
-	/**
-	 * The current rectangle used for tracking mouse moves
-	 */
-	private Rectangle decorationRectangle;
-	
-	/**
-	 * The rectangle of the previously used image.  Used
-	 * for redrawing in the case where a smaller image replaces
-	 * a larger one.
-	 * 
-	 * @since 3.5
-	 */
-	private Rectangle previousDecorationRectangle;
-
-	/**
-	 * An internal flag tracking whether we have focus. We use this rather than
-	 * isFocusControl() so that we can set the flag as soon as we get the focus
-	 * callback, rather than having to do an asyncExec in the middle of a focus
-	 * callback to ensure that isFocusControl() represents the outcome of the
-	 * event.
-	 */
-	private boolean hasFocus = false;
-
-	/**
-	 * The hover used for showing description text
-	 */
-	private Hover hover;
-
-	/**
-	 * The hover used to show a decoration image's description.
-	 */
-	class Hover {
-		private static final String EMPTY = ""; //$NON-NLS-1$
-
-		/**
-		 * Offset of info hover arrow from the left or right side.
-		 */
-		private int hao = 10;
-
-		/**
-		 * Width of info hover arrow.
-		 */
-		private int haw = 8;
-
-		/**
-		 * Height of info hover arrow.
-		 */
-		private int hah = 10;
-
-		/**
-		 * Margin around info hover text.
-		 */
-		private int hm = 2;
-
-		/**
-		 * This info hover's shell.
-		 */
-		Shell hoverShell;
-
-		/**
-		 * The info hover text.
-		 */
-		String text = EMPTY;
-
-		/**
-		 * The region used to manage the shell shape
-		 */
-		Region region;
-
-		/**
-		 * Boolean indicating whether the last computed polygon location had an
-		 * arrow on left. (true if left, false if right).
-		 */
-		boolean arrowOnLeft = true;
-
-		/*
-		 * Create a hover parented by the specified shell.
-		 */
-		Hover(Shell parent) {
-			final Display display = parent.getDisplay();
-			hoverShell = new Shell(parent, SWT.NO_TRIM | SWT.ON_TOP
-					| SWT.NO_FOCUS | SWT.TOOL);
-			hoverShell.setBackground(display
-					.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-			hoverShell.setForeground(display
-					.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
-			hoverShell.addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent pe) {
-					pe.gc.drawText(text, hm, hm);
-					if (!MAC) {
-						pe.gc.drawPolygon(getPolygon(true));
-					}
-				}
-			});
-			hoverShell.addMouseListener(new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					hideHover();
-				}
-			});
-		}
-
-		/*
-		 * Compute a polygon that represents a hover with an arrow pointer. If
-		 * border is true, compute the polygon inset by 1-pixel border. Consult
-		 * the arrowOnLeft flag to determine which side the arrow is on.
-		 */
-		int[] getPolygon(boolean border) {
-			Point e = getExtent();
-			int b = border ? 1 : 0;
-			if (arrowOnLeft) {
-				return new int[] { 0, 0, e.x - b, 0, e.x - b, e.y - b,
-						hao + haw, e.y - b, hao + haw / 2, e.y + hah - b, hao,
-						e.y - b, 0, e.y - b, 0, 0 };
-			}
-			return new int[] { 0, 0, e.x - b, 0, e.x - b, e.y - b,
-					e.x - hao - b, e.y - b, e.x - hao - haw / 2, e.y + hah - b,
-					e.x - hao - haw, e.y - b, 0, e.y - b, 0, 0 };
-		}
-
-		/*
-		 * Dispose the hover, it is no longer needed. Dispose any resources
-		 * allocated by the hover.
-		 */
-		void dispose() {
-			if (!hoverShell.isDisposed()) {
-				hoverShell.dispose();
-			}
-			if (region != null) {
-				region.dispose();
-			}
-		}
-
-		/*
-		 * Set the visibility of the hover.
-		 */
-		void setVisible(boolean visible) {
-			if (visible) {
-				if (!hoverShell.isVisible()) {
-					hoverShell.setVisible(true);
-				}
-			} else {
-				if (hoverShell.isVisible()) {
-					hoverShell.setVisible(false);
-				}
-			}
-		}
-
-		/*
-		 * Set the text of the hover to the specified text. Recompute the size
-		 * and location of the hover to hover near the decoration rectangle,
-		 * pointing the arrow toward the target control.
-		 */
-		void setText(String t, Rectangle decorationRectangle,
-				Control targetControl) {
-			if (t == null) {
-				t = EMPTY;
-			}
-			if (!t.equals(text)) {
-				Point oldSize = getExtent();
-				text = t;
-				hoverShell.redraw();
-				Point newSize = getExtent();
-				if (!oldSize.equals(newSize)) {
-					// set a flag that indicates the direction of arrow
-					arrowOnLeft = decorationRectangle.x <= targetControl
-							.getLocation().x;
-					setNewShape();
-				}
-			}
-
-			Point extent = getExtent();
-			int y = -extent.y - hah + 1;
-			int x = arrowOnLeft ? -hao + haw / 2 : -extent.x + hao + haw / 2;
-
-			hoverShell.setLocation(control.getParent().toDisplay(
-					decorationRectangle.x + x, decorationRectangle.y + y));
-		}
-
-		/*
-		 * Return whether or not the hover (shell) is visible.
-		 */
-		boolean isVisible() {
-			return hoverShell.isVisible();
-		}
-
-		/*
-		 * Compute the extent of the hover for the current text.
-		 */
-		Point getExtent() {
-			GC gc = new GC(hoverShell);
-			Point e = gc.textExtent(text);
-			gc.dispose();
-			e.x += hm * 2;
-			e.y += hm * 2;
-			return e;
-		}
-
-		/*
-		 * Compute a new shape for the hover shell.
-		 */
-		void setNewShape() {
-			Region oldRegion = region;
-			region = new Region();
-			region.add(getPolygon(false));
-			hoverShell.setRegion(region);
-			if (oldRegion != null) {
-				oldRegion.dispose();
-			}
-
-		}
-	}
-
-	/**
-	 * Construct a ControlDecoration for decorating the specified control at the
-	 * specified position relative to the control. Render the decoration on top
-	 * of any Control that happens to appear at the specified location.
-	 * <p>
-	 * SWT constants are used to specify the position of the decoration relative
-	 * to the control. The position should include style bits describing both
-	 * the vertical and horizontal orientation. <code>SWT.LEFT</code> and
-	 * <code>SWT.RIGHT</code> describe the horizontal placement of the
-	 * decoration relative to the control, and the constants
-	 * <code>SWT.TOP</code>, <code>SWT.CENTER</code>, and
-	 * <code>SWT.BOTTOM</code> describe the vertical alignment of the
-	 * decoration relative to the control. Decorations always appear on either
-	 * the left or right side of the control, never above or below it. For
-	 * example, a decoration appearing on the left side of the field, at the
-	 * top, is specified as SWT.LEFT | SWT.TOP. If no position style bits are
-	 * specified, the control decoration will be positioned to the left and
-	 * center of the control (<code>SWT.LEFT | SWT.CENTER</code>).
-	 * </p>
-	 * 
-	 * @param control
-	 *            the control to be decorated
-	 * @param position
-	 *            bit-wise or of position constants (<code>SWT.TOP</code>,
-	 *            <code>SWT.BOTTOM</code>, <code>SWT.LEFT</code>,
-	 *            <code>SWT.RIGHT</code>, and <code>SWT.CENTER</code>).
-	 */
-	public ControlDecoration(Control control, int position) {
-		this(control, position, null);
-
-	}
-
-	/**
-	 * Construct a ControlDecoration for decorating the specified control at the
-	 * specified position relative to the control. Render the decoration only on
-	 * the specified Composite or its children. The decoration will be clipped
-	 * if it does not appear within the visible bounds of the composite or its
-	 * child composites.
-	 * <p>
-	 * SWT constants are used to specify the position of the decoration relative
-	 * to the control. The position should include style bits describing both
-	 * the vertical and horizontal orientation. <code>SWT.LEFT</code> and
-	 * <code>SWT.RIGHT</code> describe the horizontal placement of the
-	 * decoration relative to the control, and the constants
-	 * <code>SWT.TOP</code>, <code>SWT.CENTER</code>, and
-	 * <code>SWT.BOTTOM</code> describe the vertical alignment of the
-	 * decoration relative to the control. Decorations always appear on either
-	 * the left or right side of the control, never above or below it. For
-	 * example, a decoration appearing on the left side of the field, at the
-	 * top, is specified as SWT.LEFT | SWT.TOP. If no position style bits are
-	 * specified, the control decoration will be positioned to the left and
-	 * center of the control (<code>SWT.LEFT | SWT.CENTER</code>).
-	 * </p>
-	 * 
-	 * @param control
-	 *            the control to be decorated
-	 * @param position
-	 *            bit-wise or of position constants (<code>SWT.TOP</code>,
-	 *            <code>SWT.BOTTOM</code>, <code>SWT.LEFT</code>,
-	 *            <code>SWT.RIGHT</code>, and <code>SWT.CENTER</code>).
-	 * @param composite
-	 *            The SWT composite within which the decoration should be
-	 *            rendered. The decoration will be clipped to this composite,
-	 *            but it may be rendered on a child of the composite. The
-	 *            decoration will not be visible if the specified composite or
-	 *            its child composites are not visible in the space relative to
-	 *            the control, where the decoration is to be rendered. If this
-	 *            value is <code>null</code>, then the decoration will be
-	 *            rendered on whichever composite (or composites) are located in
-	 *            the specified position.
-	 */
-	public ControlDecoration(Control control, int position, Composite composite) {
-		this.position = position;
-		this.control = control;
-		this.composite = composite;
-
-		addControlListeners();
-
-	}
-
-	/**
-	 * Adds the listener to the collection of listeners who will be notified
-	 * when the platform-specific context menu trigger has occurred, by sending
-	 * it one of the messages defined in the <code>MenuDetectListener</code>
-	 * interface.
-	 * <p>
-	 * The <code>widget</code> field in the SelectionEvent will contain the
-	 * Composite on which the decoration is rendered that received the click.
-	 * The <code>x</code> and <code>y</code> fields will be in coordinates
-	 * relative to the display. The <code>data</code> field will contain the
-	 * decoration that received the event.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the listener which should be notified
-	 * 
-	 * @see org.eclipse.swt.events.MenuDetectListener
-	 * @see org.eclipse.swt.events.MenuDetectEvent
-	 * @see #removeMenuDetectListener
-	 */
-	public void addMenuDetectListener(MenuDetectListener listener) {
-		menuDetectListeners.add(listener);
-	}
-
-	/**
-	 * Removes the listener from the collection of listeners who will be
-	 * notified when the platform-specific context menu trigger has occurred.
-	 * 
-	 * @param listener
-	 *            the listener which should no longer be notified. This message
-	 *            has no effect if the listener was not previously added to the
-	 *            receiver.
-	 * 
-	 * @see org.eclipse.swt.events.MenuDetectListener
-	 * @see #addMenuDetectListener
-	 */
-	public void removeMenuDetectListener(MenuDetectListener listener) {
-		menuDetectListeners.remove(listener);
-	}
-
-	/**
-	 * Adds the listener to the collection of listeners who will be notified
-	 * when the decoration is selected, by sending it one of the messages
-	 * defined in the <code>SelectionListener</code> interface.
-	 * <p>
-	 * <code>widgetSelected</code> is called when the decoration is selected
-	 * (by mouse click). <code>widgetDefaultSelected</code> is called when the
-	 * decoration is double-clicked.
-	 * </p>
-	 * <p>
-	 * The <code>widget</code> field in the SelectionEvent will contain the
-	 * Composite on which the decoration is rendered that received the click.
-	 * The <code>x</code> and <code>y</code> fields will be in coordinates
-	 * relative to that widget. The <code>data</code> field will contain the
-	 * decoration that received the event.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the listener which should be notified
-	 * 
-	 * @see org.eclipse.swt.events.SelectionListener
-	 * @see org.eclipse.swt.events.SelectionEvent
-	 * @see #removeSelectionListener
-	 */
-	public void addSelectionListener(SelectionListener listener) {
-		selectionListeners.add(listener);
-	}
-
-	/**
-	 * Removes the listener from the collection of listeners who will be
-	 * notified when the decoration is selected.
-	 * 
-	 * @param listener
-	 *            the listener which should no longer be notified. This message
-	 *            has no effect if the listener was not previously added to the
-	 *            receiver.
-	 * 
-	 * @see org.eclipse.swt.events.SelectionListener
-	 * @see #addSelectionListener
-	 */
-	public void removeSelectionListener(SelectionListener listener) {
-		selectionListeners.remove(listener);
-	}
-
-	/**
-	 * Dispose this ControlDecoration. Unhook any listeners that have been
-	 * installed on the target control. This method has no effect if the
-	 * receiver is already disposed.
-	 */
-	public void dispose() {
-		if (control == null) {
-			return;
-		}
-		if (hover != null) {
-			hover.dispose();
-			hover = null;
-		}
-		removeControlListeners();
-		control = null;
-	}
-
-	/**
-	 * Get the control that is decorated by the receiver.
-	 * 
-	 * @return the Control decorated by the receiver. May be <code>null</code>
-	 *         if the control has been uninstalled.
-	 */
-	public Control getControl() {
-		return control;
-	}
-
-	/**
-	 * Add any listeners needed on the target control and on the composite where
-	 * the decoration is to be rendered.
-	 */
-	private void addControlListeners() {
-		disposeListener = new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				dispose();
-			}
-		};
-		printAddListener(control, "DISPOSE"); //$NON-NLS-1$
-		control.addDisposeListener(disposeListener);
-
-		focusListener = new FocusListener() {
-			public void focusGained(FocusEvent event) {
-				hasFocus = true;
-				if (showOnlyOnFocus) {
-					update();
-				}
-			}
-
-			public void focusLost(FocusEvent event) {
-				hasFocus = false;
-				if (showOnlyOnFocus) {
-					update();
-				}
-			}
-		};
-		printAddListener(control, "FOCUS"); //$NON-NLS-1$
-		control.addFocusListener(focusListener);
-
-		// Listener for painting the decoration
-		paintListener = new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				Control control = (Control) event.widget;
-				Rectangle rect = getDecorationRectangle(control);
-				if (shouldShowDecoration()) {
-					event.gc.drawImage(getImage(), rect.x, rect.y);
-				}
-			}
-		};
-
-		// Listener for tracking the end of a hover. Only installed
-		// after a hover begins.
-		mouseMoveListener = new MouseMoveListener() {
-			public void mouseMove(MouseEvent event) {
-				if (showHover) {
-					if (!decorationRectangle.contains(event.x, event.y)) {
-						hideHover();
-						// No need to listen any longer
-						printRemoveListener(event.widget, "MOUSEMOVE"); //$NON-NLS-1$
-						((Control) event.widget)
-								.removeMouseMoveListener(mouseMoveListener);
-						moveListeningTarget = null;
-					}
-				}
-			}
-		};
-
-		// Listener for tracking the beginning of a hover. Always installed.
-		mouseTrackListener = new MouseTrackListener() {
-			public void mouseExit(MouseEvent event) {
-				// Just in case we didn't catch it before.
-				Control target = (Control) event.widget;
-				if (target == moveListeningTarget) {
-					printRemoveListener(target, "MOUSEMOVE"); //$NON-NLS-1$
-					target.removeMouseMoveListener(mouseMoveListener);
-					moveListeningTarget = null;
-				}
-				hideHover();
-			}
-
-			public void mouseHover(MouseEvent event) {
-				if (showHover) {
-					decorationRectangle = getDecorationRectangle((Control) event.widget);
-					if (decorationRectangle.contains(event.x, event.y)) {
-						showHoverText(getDescriptionText());
-						Control target = (Control) event.widget;
-						if (moveListeningTarget == null) {
-							printAddListener(target, "MOUSEMOVE"); //$NON-NLS-1$
-							target.addMouseMoveListener(mouseMoveListener);
-							moveListeningTarget = target;
-						} else if (target != moveListeningTarget) {
-							printRemoveListener(moveListeningTarget,
-									"MOUSEMOVE"); //$NON-NLS-1$
-							moveListeningTarget
-									.removeMouseMoveListener(mouseMoveListener);
-							printAddListener(target, "MOUSEMOVE"); //$NON-NLS-1$
-							target.addMouseMoveListener(mouseMoveListener);
-							moveListeningTarget = target;
-						} else {
-							// It is already installed on this control.
-						}
-					}
-				}
-			}
-
-			public void mouseEnter(MouseEvent event) {
-				// Nothing to do until a hover occurs.
-			}
-		};
-
-		compositeListener = new Listener() {
-			public void handleEvent(Event event) {
-				// Don't forward events if decoration is not showing
-				if (!visible) {
-					return;
-				}
-				// Notify listeners if any are registered.
-				switch (event.type) {
-				case SWT.MouseDown:
-					if (!selectionListeners.isEmpty())
-						notifySelectionListeners(event);
-					break;
-				case SWT.MouseDoubleClick:
-					if (!selectionListeners.isEmpty())
-						notifySelectionListeners(event);
-					break;
-				case SWT.MenuDetect:
-					if (!menuDetectListeners.isEmpty())
-						notifyMenuDetectListeners(event);
-					break;
-				}
-			}
-		};
-
-		// We do not know which parent in the control hierarchy
-		// is providing the decoration space, so hook all the way up, until
-		// the shell or the specified parent composite is reached.
-		Composite c = control.getParent();
-		while (c != null) {
-			installCompositeListeners(c);
-			if (composite != null && composite == c) {
-				// We just installed on the specified composite, so stop.
-				c = null;
-			} else if (c instanceof Shell) {
-				// We just installed on a shell, so don't go further
-				c = null;
-			} else {
-				c = c.getParent();
-			}
-		}
-		// force a redraw of the decoration area so our paint listener
-		// is notified.
-		update();
-	}
-
-	/*
-	 * Install the listeners used to paint and track mouse events on the
-	 * composite.
-	 */
-	private void installCompositeListeners(Composite c) {
-		if (!c.isDisposed()) {
-			printAddListener(c, "PAINT"); //$NON-NLS-1$
-			c.addPaintListener(paintListener);
-			printAddListener(c, "MOUSETRACK"); //$NON-NLS-1$
-			c.addMouseTrackListener(mouseTrackListener);
-			printAddListener(c, "SWT.MenuDetect"); //$NON-NLS-1$
-			c.addListener(SWT.MenuDetect, compositeListener);
-			printAddListener(c, "SWT.MouseDown"); //$NON-NLS-1$
-			c.addListener(SWT.MouseDown, compositeListener);
-			printAddListener(c, "SWT.MouseDoubleClick"); //$NON-NLS-1$
-			c.addListener(SWT.MouseDoubleClick, compositeListener);
-		}
-	}
-
-	/*
-	 * Remove the listeners used to paint and track mouse events on the
-	 * composite.
-	 */
-	private void removeCompositeListeners(Composite c) {
-		if (!c.isDisposed()) {
-			printRemoveListener(c, "PAINT"); //$NON-NLS-1$
-			c.removePaintListener(paintListener);
-			printRemoveListener(c, "MOUSETRACK"); //$NON-NLS-1$
-			c.removeMouseTrackListener(mouseTrackListener);
-			printRemoveListener(c, "SWT.MenuDetect"); //$NON-NLS-1$
-			c.removeListener(SWT.MenuDetect, compositeListener);
-			printRemoveListener(c, "SWT.MouseDown"); //$NON-NLS-1$
-			c.removeListener(SWT.MouseDown, compositeListener);
-			printRemoveListener(c, "SWT.MouseDoubleClick"); //$NON-NLS-1$
-			c.removeListener(SWT.MouseDoubleClick, compositeListener);
-		}
-	}
-
-	private void notifySelectionListeners(Event event) {
-		if (!(event.widget instanceof Control)) {
-			return;
-		}
-		if (getDecorationRectangle((Control) event.widget).contains(event.x,
-				event.y)) {
-			SelectionEvent clientEvent = new SelectionEvent(event);
-			clientEvent.data = this;
-			if (getImage() != null) {
-				clientEvent.height = getImage().getBounds().height;
-				clientEvent.width = getImage().getBounds().width;
-			}
-			Object[] listeners;
-			switch (event.type) {
-			case SWT.MouseDoubleClick:
-				if (event.button == 1) {
-					listeners = selectionListeners.getListeners();
-					for (int i = 0; i < listeners.length; i++) {
-						((SelectionListener) listeners[i])
-								.widgetDefaultSelected(clientEvent);
-					}
-				}
-				break;
-			case SWT.MouseDown:
-				if (event.button == 1) {
-					listeners = selectionListeners.getListeners();
-					for (int i = 0; i < listeners.length; i++) {
-						((SelectionListener) listeners[i])
-								.widgetSelected(clientEvent);
-					}
-				}
-				break;
-			}
-		}
-	}
-
-	private void notifyMenuDetectListeners(Event event) {
-		if (getDecorationRectangle(null).contains(event.x, event.y)) {
-			MenuDetectEvent clientEvent = new MenuDetectEvent(event);
-			clientEvent.data = this;
-			Object[] listeners = menuDetectListeners.getListeners();
-			for (int i = 0; i < listeners.length; i++) {
-				((MenuDetectListener) listeners[i]).menuDetected(clientEvent);
-
-			}
-		}
-	}
-
-	/**
-	 * Show the specified text using the same hover dialog as is used to show
-	 * decorator descriptions. When {@link #setShowHover(boolean)} has been set
-	 * to <code>true</code>, a decoration's description text will be shown in
-	 * an info hover over the field's control whenever the mouse hovers over the
-	 * decoration. This method can be used to show a decoration's description
-	 * text at other times (such as when the control receives focus), or to show
-	 * other text associated with the field. The hover will not be shown if the
-	 * decoration is hidden.
-	 * 
-	 * @param text
-	 *            the text to be shown in the info hover, or <code>null</code>
-	 *            if no text should be shown.
-	 */
-	public void showHoverText(String text) {
-		if (control == null) {
-			return;
-		}
-		showHoverText(text, control);
-	}
-
-	/**
-	 * Hide any hover popups that are currently showing on the control. When
-	 * {@link #setShowHover(boolean)} has been set to <code>true</code>, a
-	 * decoration's description text will be shown in an info hover over the
-	 * field's control as long as the mouse hovers over the decoration, and will
-	 * be hidden when the mouse exits the decoration. This method can be used to
-	 * hide a hover, whether it was shown explicitly using
-	 * {@link #showHoverText(String)}, or was showing because the user was
-	 * hovering in the decoration.
-	 * <p>
-	 * This message has no effect if there is no current hover.
-	 * 
-	 */
-	public void hideHover() {
-		if (hover != null) {
-			hover.setVisible(false);
-		}
-	}
-
-	/**
-	 * Show the control decoration. This message has no effect if the decoration
-	 * is already showing. If {@link #setShowOnlyOnFocus(boolean)} is set to
-	 * <code>true</code>, the decoration will only be shown if the control
-	 * has focus.
-	 */
-	public void show() {
-		if (!visible) {
-			visible = true;
-			update();
-		}
-	}
-
-	/**
-	 * Hide the control decoration and any associated hovers. This message has
-	 * no effect if the decoration is already hidden.
-	 */
-	public void hide() {
-		if (visible) {
-			visible = false;
-			hideHover();
-			update();
-		}
-	}
-
-	/**
-	 * Get the description text that may be shown in a hover for this
-	 * decoration.
-	 * 
-	 * @return the text to be shown as a description for the decoration, or
-	 *         <code>null</code> if none has been set.
-	 */
-	public String getDescriptionText() {
-		return descriptionText;
-	}
-
-	/**
-	 * Set the image shown in this control decoration. Update the rendered
-	 * decoration.
-	 * 
-	 * @param text
-	 *            the text to be shown as a description for the decoration, or
-	 *            <code>null</code> if none has been set.
-	 */
-	public void setDescriptionText(String text) {
-		this.descriptionText = text;
-		update();
-	}
-
-	/**
-	 * Get the image shown in this control decoration.
-	 * 
-	 * @return the image to be shown adjacent to the control, or
-	 *         <code>null</code> if one has not been set.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Set the image shown in this control decoration. Update the rendered
-	 * decoration.
-	 * 
-	 * @param image
-	 *            the image to be shown adjacent to the control. Should never be
-	 *            <code>null</code>.
-	 */
-	public void setImage(Image image) {
-		previousDecorationRectangle = getDecorationRectangle(control.getShell());
-		this.image = image;
-		update();
-	}
-
-	/**
-	 * Get the boolean that controls whether the decoration is shown only when
-	 * the control has focus. The default value of this setting is
-	 * <code>false</code>.
-	 * 
-	 * @return <code>true</code> if the decoration should only be shown when
-	 *         the control has focus, and <code>false</code> if it should
-	 *         always be shown. Note that if the control is not capable of
-	 *         receiving focus (<code>SWT.NO_FOCUS</code>), then the
-	 *         decoration will never show when this value is <code>true</code>.
-	 */
-	public boolean getShowOnlyOnFocus() {
-		return showOnlyOnFocus;
-	}
-
-	/**
-	 * Set the boolean that controls whether the decoration is shown only when
-	 * the control has focus. The default value of this setting is
-	 * <code>false</code>.
-	 * 
-	 * @param showOnlyOnFocus
-	 *            <code>true</code> if the decoration should only be shown
-	 *            when the control has focus, and <code>false</code> if it
-	 *            should always be shown. Note that if the control is not
-	 *            capable of receiving focus (<code>SWT.NO_FOCUS</code>),
-	 *            then the decoration will never show when this value is
-	 *            <code>true</code>.
-	 */
-	public void setShowOnlyOnFocus(boolean showOnlyOnFocus) {
-		this.showOnlyOnFocus = showOnlyOnFocus;
-		update();
-	}
-
-	/**
-	 * Get the boolean that controls whether the decoration's description text
-	 * should be shown in a hover when the user hovers over the decoration. The
-	 * default value of this setting is <code>true</code>.
-	 * 
-	 * @return <code>true</code> if a hover popup containing the decoration's
-	 *         description text should be shown when the user hovers over the
-	 *         decoration, and <code>false</code> if a hover should not be
-	 *         shown.
-	 */
-	public boolean getShowHover() {
-		return showHover;
-	}
-
-	/**
-	 * Set the boolean that controls whether the decoration's description text
-	 * should be shown in a hover when the user hovers over the decoration. The
-	 * default value of this setting is <code>true</code>.
-	 * 
-	 * @param showHover
-	 *            <code>true</code> if a hover popup containing the
-	 *            decoration's description text should be shown when the user
-	 *            hovers over the decoration, and <code>false</code> if a
-	 *            hover should not be shown.
-	 */
-	public void setShowHover(boolean showHover) {
-		this.showHover = showHover;
-		update();
-	}
-
-	/**
-	 * Get the margin width in pixels that should be used between the decorator
-	 * and the horizontal edge of the control. The default value of this setting
-	 * is <code>0</code>.
-	 * 
-	 * @return the number of pixels that should be reserved between the
-	 *         horizontal edge of the control and the adjacent edge of the
-	 *         decoration.
-	 */
-	public int getMarginWidth() {
-		return marginWidth;
-	}
-
-	/**
-	 * Set the margin width in pixels that should be used between the decorator
-	 * and the horizontal edge of the control. The default value of this setting
-	 * is <code>0</code>.
-	 * 
-	 * @param marginWidth
-	 *            the number of pixels that should be reserved between the
-	 *            horizontal edge of the control and the adjacent edge of the
-	 *            decoration.
-	 */
-	public void setMarginWidth(int marginWidth) {
-		previousDecorationRectangle = getDecorationRectangle(control.getShell());
-		this.marginWidth = marginWidth;
-		update();
-	}
-
-	/**
-	 * Something has changed, requiring redraw. Redraw the decoration and update
-	 * the hover text if appropriate.
-	 */
-	protected void update() {
-		if (control == null || control.isDisposed()) {
-			return;
-		}
-		Rectangle rect = getDecorationRectangle(control.getShell());
-		// If this update is happening due to an image reset, we need to make
-		// sure we clear the area from the old image.
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=212501
-		if (previousDecorationRectangle != null) {
-			rect = rect.union(previousDecorationRectangle);
-		}
-		// Redraw this rectangle in all children
-		control.getShell()
-				.redraw(rect.x, rect.y, rect.width, rect.height, true);
-		control.getShell().update();
-		if (hover != null && getDescriptionText() != null) {
-			hover.setText(getDescriptionText(), getDecorationRectangle(control
-					.getParent()), control);
-		}
-		previousDecorationRectangle = null;
-	}
-
-	/*
-	 * Show the specified text in the hover, positioning the hover near the
-	 * specified control.
-	 */
-	private void showHoverText(String text, Control hoverNear) {
-		// If we aren't to show a hover, don't do anything.
-		if (!showHover) {
-			return;
-		}
-
-		// If we are not visible, don't show the hover.
-		if (!visible) {
-			return;
-		}
-		// If there is no text, don't do anything.
-		if (text == null) {
-			hideHover();
-			return;
-		}
-
-		// If there is no control, nothing to do
-		if (control == null) {
-			return;
-		}
-		// Create the hover if it's not showing
-		if (hover == null) {
-			hover = new Hover(hoverNear.getShell());
-		}
-		hover.setText(text, getDecorationRectangle(control.getParent()),
-				control);
-		hover.setVisible(true);
-	}
-
-	/*
-	 * Remove any listeners installed on the controls.
-	 */
-	private void removeControlListeners() {
-		if (control == null) {
-			return;
-		}
-		printRemoveListener(control, "FOCUS"); //$NON-NLS-1$
-		control.removeFocusListener(focusListener);
-		focusListener = null;
-
-		printRemoveListener(control, "DISPOSE"); //$NON-NLS-1$
-		control.removeDisposeListener(disposeListener);
-		disposeListener = null;
-
-		Composite c = control.getParent();
-		while (c != null) {
-			removeCompositeListeners(c);
-			if (composite != null && composite == c) {
-				// We previously installed listeners only to the specified
-				// composite, so stop.
-				c = null;
-			} else if (c instanceof Shell) {
-				// We previously installed listeners only up to the first Shell
-				// encountered, so stop.
-				c = null;
-			} else {
-				c = c.getParent();
-			}
-		}
-		paintListener = null;
-		mouseTrackListener = null;
-		compositeListener = null;
-
-		// We may have a remaining mouse move listener installed
-		if (moveListeningTarget != null) {
-			printRemoveListener(moveListeningTarget, "MOUSEMOVE"); //$NON-NLS-1$
-			moveListeningTarget.removeMouseMoveListener(mouseMoveListener);
-			moveListeningTarget = null;
-			mouseMoveListener = null;
-		}
-		if (DEBUG) {
-			if (listenerInstalls > 0) {
-				System.out.println("LISTENER LEAK>>>CHECK TRACE ABOVE"); //$NON-NLS-1$
-			} else if (listenerInstalls < 0) {
-				System.out
-						.println("REMOVED UNREGISTERED LISTENERS>>>CHECK TRACE ABOVE"); //$NON-NLS-1$
-			} else {
-				System.out.println("ALL INSTALLED LISTENERS WERE REMOVED."); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * Return the rectangle in which the decoration should be rendered, in
-	 * coordinates relative to the specified control. If the specified control
-	 * is null, return the rectangle in display coordinates.
-	 * 
-	 * @param targetControl
-	 *            the control whose coordinates should be used
-	 * @return the rectangle in which the decoration should be rendered
-	 */
-	protected Rectangle getDecorationRectangle(Control targetControl) {
-		if (getImage() == null || control == null) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-		// Compute the bounds first relative to the control's parent.
-		Rectangle imageBounds = getImage().getBounds();
-		Rectangle controlBounds = control.getBounds();
-		int x, y;
-		// Compute x
-		if ((position & SWT.RIGHT) == SWT.RIGHT) {
-			x = controlBounds.x + controlBounds.width + marginWidth;
-		} else {
-			// default is left
-			x = controlBounds.x - imageBounds.width - marginWidth;
-		}
-		// Compute y
-		if ((position & SWT.TOP) == SWT.TOP) {
-			y = controlBounds.y;
-		} else if ((position & SWT.BOTTOM) == SWT.BOTTOM) {
-			y = controlBounds.y + control.getBounds().height
-					- imageBounds.height;
-		} else {
-			// default is center
-			y = controlBounds.y
-					+ (control.getBounds().height - imageBounds.height) / 2;
-		}
-
-		// Now convert to coordinates relative to the target control.
-		Point globalPoint = control.getParent().toDisplay(x, y);
-		Point targetPoint;
-		if (targetControl == null) {
-			targetPoint = globalPoint;
-		} else {
-			targetPoint = targetControl.toControl(globalPoint);
-		}
-		return new Rectangle(targetPoint.x, targetPoint.y, imageBounds.width,
-				imageBounds.height);
-	}
-
-	/*
-	 * Return true if the decoration should be shown, false if it should not.
-	 */
-	private boolean shouldShowDecoration() {
-		if (!visible) {
-			return false;
-		}
-		if (control == null || control.isDisposed() || getImage() == null) {
-			return false;
-		}
-
-		if (!control.isVisible()) {
-			return false;
-		}
-		if (showOnlyOnFocus) {
-			return hasFocus;
-		}
-		return true;
-	}
-
-	/*
-	 * If in debug mode, print info about adding the specified listener.
-	 */
-	private void printAddListener(Widget widget, String listenerType) {
-		listenerInstalls++;
-		if (DEBUG) {
-			System.out
-					.println("Added listener>>>" + listenerType + " to>>>" + widget); //$NON-NLS-1$//$NON-NLS-2$
-		}
-	}
-
-	/*
-	 * If in debug mode, print info about adding the specified listener.
-	 */
-	private void printRemoveListener(Widget widget, String listenerType) {
-		listenerInstalls--;
-		if (DEBUG) {
-			System.out
-					.println("Removed listener>>>" + listenerType + " from>>>" + widget); //$NON-NLS-1$//$NON-NLS-2$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/DecoratedField.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/DecoratedField.java
deleted file mode 100644
index 3d131e6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/DecoratedField.java
+++ /dev/null
@@ -1,874 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Region;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * DecoratedField manages image decorations around a control. It allows clients
- * to specify an image decoration and a position for the decoration relative to
- * the field. Decorations may be assigned descriptions, which are shown when the
- * user hovers over the decoration. Clients can decorate any kind of control by
- * supplying a {@link IControlCreator} to create the control that is decorated.
- * <p>
- * Decorations always appear on either horizontal side of the field, never above
- * or below it. Decorations can be positioned at the top or bottom of either
- * side. Future implementations may provide additional positioning options for
- * decorations.
- * <p>
- * By default, DecoratedField will consult the {@link FieldDecorationRegistry}
- * to determine how much space should be reserved for each decoration. This
- * allows fields with decorations from different sources to align properly on
- * the same dialog, since the registry tracks the size of all decorations
- * registered. Therefore, it is recommended, but not required, that clients of
- * DecoratedField register the decorations used. In cases where alignment
- * between different fields is not a concern, clients can use
- * <code>setUseMaximumDecorationWidth(false)</code> and need not register
- * their decorations.
- * <p>
- * This class is not intended to be subclassed.
- * 
- * @since 3.2
- * @deprecated As of 3.3, clients should use {@link ControlDecoration} instead.
- */
-public class DecoratedField {
-
-	/**
-	 * Cached platform flags for dealing with platform-specific issues.
-	 */
-	private static boolean MAC = Util.isMac();
-
-	/**
-	 * Constants describing the array indices used to hold the decorations in
-	 * array slots.
-	 */
-
-	private static final int LEFT_TOP = 0;
-
-	private static final int LEFT_BOTTOM = 1;
-
-	private static final int RIGHT_TOP = 2;
-
-	private static final int RIGHT_BOTTOM = 3;
-
-	private static final int DECORATION_SLOTS = 4;
-
-	/**
-	 * Simple data structure class for specifying the internals for a field
-	 * decoration. This class contains data specific to the implementation of
-	 * field decorations as labels attached to the field. Clients should use
-	 * <code>FieldDecoration</code> for specifying a decoration.
-	 */
-	private class FieldDecorationData {
-
-		/* Package */FieldDecoration decoration;
-
-		/* Package */Label label;
-
-		/* Package */FormData data;
-
-		/* Package */boolean showOnFocus;
-
-		/* Package */boolean visible = true;
-
-		/**
-		 * Create a decoration data representing the specified decoration, using
-		 * the specified label and form data for its representation.
-		 * 
-		 * @param decoration
-		 *            the decoration whose data is kept.
-		 * @param label
-		 *            the label used to represent the decoration.
-		 * @param formData
-		 *            the form data used to attach the decoration to its field.
-		 * @param showOnFocus
-		 *            a boolean specifying whether the decoration should only be
-		 *            shown when the field has focus.
-		 */
-		FieldDecorationData(FieldDecoration decoration, Label label,
-				FormData formData, boolean showOnFocus) {
-			this.decoration = decoration;
-			this.label = label;
-			this.data = formData;
-			this.showOnFocus = showOnFocus;
-		}
-	}
-
-	/**
-	 * Decorations keyed by position.
-	 */
-	private FieldDecorationData[] decDatas = new FieldDecorationData[DECORATION_SLOTS];
-
-	/**
-	 * The associated control
-	 */
-	private Control control;
-
-	/**
-	 * The composite with form layout used to manage decorations.
-	 */
-	private Composite form;
-
-	/**
-	 * The boolean that indicates whether the maximum decoration width is used
-	 * when allocating space for decorations.
-	 */
-	private boolean useMaxDecorationWidth = true;
-
-	/**
-	 * The hover used for showing description text
-	 */
-	private Hover hover;
-
-	/**
-	 * The hover used to show a decoration image's description.
-	 */
-	class Hover {
-		private static final String EMPTY = ""; //$NON-NLS-1$
-
-		/**
-		 * Offset of info hover arrow from the left or right side.
-		 */
-		private int hao = 10;
-
-		/**
-		 * Width of info hover arrow.
-		 */
-		private int haw = 8;
-
-		/**
-		 * Height of info hover arrow.
-		 */
-		private int hah = 10;
-
-		/**
-		 * Margin around info hover text.
-		 */
-		private int hm = 2;
-
-		/**
-		 * This info hover's shell.
-		 */
-		Shell hoverShell;
-
-		/**
-		 * The info hover text.
-		 */
-		String text = EMPTY;
-
-		/**
-		 * The region used to manage the shell shape
-		 */
-		Region region;
-
-		/**
-		 * Boolean indicating whether the last computed polygon location had an
-		 * arrow on left. (true if left, false if right).
-		 */
-		boolean arrowOnLeft = true;
-
-		/*
-		 * Create a hover parented by the specified shell.
-		 */
-		Hover(Shell parent) {
-			final Display display = parent.getDisplay();
-			hoverShell = new Shell(parent, SWT.NO_TRIM | SWT.ON_TOP
-					| SWT.NO_FOCUS | SWT.TOOL);
-			hoverShell.setBackground(display
-					.getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-			hoverShell.setForeground(display
-					.getSystemColor(SWT.COLOR_INFO_FOREGROUND));
-			hoverShell.addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent pe) {
-					pe.gc.drawString(text, hm, hm);
-					if (!MAC) {
-						pe.gc.drawPolygon(getPolygon(true));
-					}
-				}
-			});
-			hoverShell.addMouseListener(new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					hideHover();
-				}
-			});
-		}
-
-		/*
-		 * Compute a polygon that represents a hover with an arrow pointer. If
-		 * border is true, compute the polygon inset by 1-pixel border. Consult
-		 * the arrowOnLeft flag to determine which side the arrow is on.
-		 */
-		int[] getPolygon(boolean border) {
-			Point e = getExtent();
-			int b = border ? 1 : 0;
-			if (arrowOnLeft) {
-				return new int[] { 0, 0, e.x - b, 0, e.x - b, e.y - b,
-						hao + haw, e.y - b, hao + haw / 2, e.y + hah - b, hao,
-						e.y - b, 0, e.y - b, 0, 0 };
-			}
-			return new int[] { 0, 0, e.x - b, 0, e.x - b, e.y - b,
-					e.x - hao - b, e.y - b, e.x - hao - haw / 2, e.y + hah - b,
-					e.x - hao - haw, e.y - b, 0, e.y - b, 0, 0 };
-		}
-
-		/*
-		 * Dispose the hover, it is no longer needed. Dispose any resources
-		 * allocated by the hover.
-		 */
-		void dispose() {
-			if (!hoverShell.isDisposed()) {
-				hoverShell.dispose();
-			}
-			if (region != null) {
-				region.dispose();
-			}
-		}
-
-		/*
-		 * Set the visibility of the hover.
-		 */
-		void setVisible(boolean visible) {
-			if (visible) {
-				if (!hoverShell.isVisible()) {
-					hoverShell.setVisible(true);
-				}
-			} else {
-				if (hoverShell.isVisible()) {
-					hoverShell.setVisible(false);
-				}
-			}
-		}
-
-		/*
-		 * Set the text of the hover to the specified text. Recompute the size
-		 * and location of the hover to hover near the specified control,
-		 * pointing the arrow toward the target control.
-		 */
-		void setText(String t, Control hoverNear, Control targetControl) {
-			if (t == null) {
-				t = EMPTY;
-			}
-			if (!t.equals(text)) {
-				Point oldSize = getExtent();
-				text = t;
-				hoverShell.redraw();
-				Point newSize = getExtent();
-				if (!oldSize.equals(newSize)) {
-					// set a flag that indicates the direction of arrow
-					arrowOnLeft = hoverNear.getLocation().x <= targetControl
-							.getLocation().x;
-					setNewShape();
-				}
-			}
-
-			if (hoverNear != null) {
-				Point extent = getExtent();
-				int y = -extent.y - hah + 1;
-				int x = arrowOnLeft ? -hao + haw / 2 : -extent.x + hao + haw
-						/ 2;
-
-				hoverShell.setLocation(hoverNear.toDisplay(x, y));
-			}
-
-		}
-
-		/*
-		 * Return whether or not the hover (shell) is visible.
-		 */
-		boolean isVisible() {
-			return hoverShell.isVisible();
-		}
-
-		/*
-		 * Compute the extent of the hover for the current text.
-		 */
-		Point getExtent() {
-			GC gc = new GC(hoverShell);
-			Point e = gc.textExtent(text);
-			gc.dispose();
-			e.x += hm * 2;
-			e.y += hm * 2;
-			return e;
-		}
-
-		/*
-		 * Compute a new shape for the hover shell.
-		 */
-		void setNewShape() {
-			Region oldRegion = region;
-			region = new Region();
-			region.add(getPolygon(false));
-			hoverShell.setRegion(region);
-			if (oldRegion != null) {
-				oldRegion.dispose();
-			}
-
-		}
-	}
-
-	/**
-	 * Construct a decorated field which is parented by the specified composite
-	 * and has the given style bits. Use the controlCreator to create the
-	 * specific kind of control that is decorated inside the field.
-	 * 
-	 * @param parent
-	 *            the parent of the decorated field.
-	 * @param style
-	 *            the desired style bits for the field.
-	 * @param controlCreator
-	 *            the IControlCreator used to specify the specific kind of
-	 *            control that is to be decorated.
-	 * 
-	 * @see IControlCreator
-	 */
-	public DecoratedField(Composite parent, int style,
-			IControlCreator controlCreator) {
-		this.form = createForm(parent);
-		this.control = controlCreator.createControl(form, style);
-
-		addControlListeners();
-		form.setTabList(new Control[] { control });
-
-		// Set up the initial layout data.
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.top = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.bottom = new FormAttachment(100, 0);
-		control.setLayoutData(data);
-
-	}
-
-	/**
-	 * Adds an image decoration to the field.
-	 * 
-	 * @param decoration
-	 *            A FieldDecoration describing the image and description for the
-	 *            decoration
-	 * 
-	 * @param position
-	 *            The SWT constant indicating the position of the decoration
-	 *            relative to the field's control. The position should include
-	 *            style bits describing both the vertical and horizontal
-	 *            orientation. <code>SWT.LEFT</code> and
-	 *            <code>SWT.RIGHT</code> describe the horizontal placement of
-	 *            the decoration relative to the field, and the constants
-	 *            <code>SWT.TOP</code> and <code>SWT.BOTTOM</code> describe
-	 *            the vertical alignment of the decoration relative to the
-	 *            field. Decorations always appear on either horizontal side of
-	 *            the field, never above or below it. For example, a decoration
-	 *            appearing on the left side of the field, at the top, is
-	 *            specified as SWT.LEFT | SWT.TOP. If an image decoration
-	 *            already exists in the specified position, it will be replaced
-	 *            by the one specified.
-	 * @param showOnFocus
-	 *            <code>true</code> if the decoration should only be shown
-	 *            when the associated control has focus, <code>false</code> if
-	 *            it should always be shown.
-	 * 
-	 */
-	public void addFieldDecoration(FieldDecoration decoration, int position,
-			boolean showOnFocus) {
-		final Label label;
-		FormData formData;
-		int i = indexForPosition(position);
-		if (decDatas[i] == null) {
-			formData = createFormDataForIndex(i, decoration.getImage());
-			label = new Label(form, SWT.HORIZONTAL | SWT.VERTICAL | SWT.CENTER);
-			label.addMouseTrackListener(new MouseTrackListener() {
-				public void mouseHover(MouseEvent event) {
-					FieldDecorationData decData = (FieldDecorationData) event.widget
-							.getData();
-					String desc = decData.decoration.getDescription();
-					if (desc != null) {
-						showHoverText(desc, label);
-					}
-				}
-
-				public void mouseEnter(MouseEvent event) {
-				}
-
-				public void mouseExit(MouseEvent event) {
-					hideHover();
-				}
-			});
-			decDatas[i] = new FieldDecorationData(decoration, label, formData,
-					showOnFocus);
-		} else {
-			label = decDatas[i].label;
-			formData = decDatas[i].data;
-			decDatas[i].decoration = decoration;
-			decDatas[i].showOnFocus = showOnFocus;
-		}
-		label.setImage(decDatas[i].decoration.getImage());
-		label.setData(decDatas[i]);
-		label.setLayoutData(formData);
-		label.setVisible(!showOnFocus);
-
-		// Since sizes may have changed or there could be a new position
-		// defined, we need to update layout data on the control.
-		updateControlAttachments(i, decDatas[i]);
-	}
-
-	/*
-	 * A decoration at the specified index has been added. Update the control's
-	 * attachments if it has not previously been attached on that side or if it
-	 * was attached to a decoration with a lesser width.
-	 */
-	private void updateControlAttachments(int index, FieldDecorationData decData) {
-		FormData formData = (FormData) control.getLayoutData();
-		int newWidth = widthOf(decData.decoration.getImage());
-		// opposing represents the location of the decoration above or below
-		// the one in question.
-		int opposing;
-
-		switch (index) {
-		case LEFT_TOP:
-		case LEFT_BOTTOM:
-			if (index == LEFT_TOP) {
-				opposing = LEFT_BOTTOM;
-			} else {
-				opposing = LEFT_TOP;
-			}
-			if (decDatas[opposing] == null) {
-				// No decorator on the opposing side.
-				// Attach the control to this decorator
-				formData.left = new FormAttachment(decData.label);
-			} else if (decDatas[opposing].data.width < newWidth) {
-				// Decorator on opposing side is the smaller one. Attach
-				// control to the new one.
-				formData.left = new FormAttachment(decData.label);
-				// Center align the smaller one relative to the larger one.
-				decDatas[opposing].data.left.alignment = SWT.CENTER;
-				decDatas[opposing].data.left.control = decData.label;
-			} else {
-				// The new decorator is the smaller one. Keep the
-				// control attached to the opposing one.
-				formData = null;
-				// Horizontally center the smaller one relative to the larger
-				// one.
-				decData.data.left.alignment = SWT.CENTER;
-				decData.data.left.control = decDatas[opposing].label;
-			}
-			break;
-		/*
-		 * The only real difference in right side cases is that we are attaching
-		 * the right side of the control to the wider decoration rather than the
-		 * left side of the control. Other concerns (horizontally aligning the
-		 * smaller decoration relative to the larger one) are the same.
-		 */
-		case RIGHT_TOP:
-		case RIGHT_BOTTOM:
-			if (index == RIGHT_TOP) {
-				opposing = RIGHT_BOTTOM;
-			} else {
-				opposing = RIGHT_TOP;
-			}
-			if (decDatas[opposing] == null) {
-				// No decorator on the opposing side.
-				// Attach the control to this decorator.
-				formData.right = new FormAttachment(decData.label);
-			} else if (decDatas[opposing].data.width < newWidth) {
-				// Decorator on opposing side is the smaller one. Attach
-				// control to the new one.
-				formData.right = new FormAttachment(decData.label);
-				// Center align the smaller one to the larger one.
-				// Note that this could be done using the left or right
-				// attachment, we use the right since it is already
-				// created for all right-side decorations.
-				decDatas[opposing].data.right.alignment = SWT.CENTER;
-				decDatas[opposing].data.right.control = decData.label;
-			} else {
-				// The new decorator is the smaller one. Keep the
-				// control attached to the opposing one.
-				formData = null;
-				// Horizontally center align the smaller one to the
-				// larger one.
-				decData.data.right.alignment = SWT.CENTER;
-				decData.data.right.control = decDatas[opposing].label;
-			}
-			break;
-		default:
-			return;
-		}
-		if (formData != null) {
-			// Form data was updated.
-			control.setLayoutData(formData);
-			form.layout();
-		}
-	}
-
-	/**
-	 * Get the control that is decorated by the receiver.
-	 * 
-	 * @return the Control decorated by the receiver, or <code>null</code> if
-	 *         none has been created yet.
-	 */
-	public Control getControl() {
-		return control;
-	}
-
-	/**
-	 * Get the control that represents the decorated field. This composite
-	 * should be used to lay out the field within its parent.
-	 * 
-	 * @return the Control that should be layed out in the field's parent's
-	 *         layout. This is typically not the control itself, since
-	 *         additional controls are used to represent the decorations.
-	 */
-	public Control getLayoutControl() {
-		return form;
-	}
-
-	/**
-	 * Create the parent composite and a form layout that will be used to manage
-	 * decorations.
-	 */
-	private Composite createForm(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NO_FOCUS);
-		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=126553
-		composite.setBackgroundMode(SWT.INHERIT_DEFAULT);
-		composite.setLayout(new FormLayout());
-		return composite;
-	}
-
-	/**
-	 * Add any listeners needed on the target control.
-	 */
-	private void addControlListeners() {
-		control.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				if (hover != null) {
-					hover.dispose();
-				}
-			}
-		});
-		control.addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent event) {
-				controlFocusGained();
-			}
-
-			public void focusLost(FocusEvent event) {
-				controlFocusLost();
-			}
-
-		});
-	}
-
-	/*
-	 * Return the index in the array of decoration datas that represents the
-	 * specified SWT position.
-	 * 
-	 * @param position The SWT constant indicating the position of the
-	 * decoration relative to the field's control. The position should include
-	 * style bits describing both the vertical and horizontal orientation.
-	 * <code>SWT.LEFT</code> and <code>SWT.RIGHT</code> describe the
-	 * horizontal placement of the decoration relative to the field, and the
-	 * constants <code>SWT.TOP</code> and <code>SWT.BOTTOM</code> describe
-	 * the vertical alignment of the decoration relative to the field.
-	 * Decorations always appear on either horizontal side of the field, never
-	 * above or below it. For example, a decoration appearing on the left side
-	 * of the field, at the top, is specified as SWT.LEFT | SWT.TOP.
-	 * 
-	 * @return index the index in the array of decorations that represents the
-	 * specified SWT position. If the position is not an expected position, the
-	 * index representing the top left position will be returned.
-	 * 
-	 */
-	private int indexForPosition(int position) {
-		switch (position) {
-		case SWT.LEFT | SWT.BOTTOM:
-			return LEFT_BOTTOM;
-		case SWT.RIGHT | SWT.TOP:
-			return RIGHT_TOP;
-		case SWT.RIGHT | SWT.BOTTOM:
-			return RIGHT_BOTTOM;
-		default:
-			return LEFT_TOP;
-		}
-	}
-
-	/*
-	 * Create a form data that will place the decoration at the specified
-	 * position.
-	 * 
-	 * @param index the index in the decDatas describing the position of the
-	 * decoration.
-	 * 
-	 * @param image the image shown in the decoration.
-	 * 
-	 */
-	private FormData createFormDataForIndex(int index, Image image) {
-		Assert.isTrue(index >= 0 && index < DECORATION_SLOTS,
-				"Index out of range"); //$NON-NLS-1$
-
-		FormData data = new FormData();
-		switch (index) {
-		case LEFT_TOP:
-			data.left = new FormAttachment(0, 0);
-			data.top = new FormAttachment(0, 0);
-			break;
-		case LEFT_BOTTOM:
-			data.left = new FormAttachment(0, 0);
-			data.bottom = new FormAttachment(100, 0);
-			break;
-		case RIGHT_TOP:
-			data.right = new FormAttachment(100, 0);
-			data.top = new FormAttachment(0, 0);
-			break;
-		case RIGHT_BOTTOM:
-			data.right = new FormAttachment(100, 0);
-			data.bottom = new FormAttachment(100, 0);
-			break;
-		}
-		data.width = widthOf(image);
-		data.height = SWT.DEFAULT;
-
-		return data;
-	}
-
-	/**
-	 * Show the specified text using the same hover dialog as is used to show
-	 * decorator descriptions. Normally, a decoration's description text will be
-	 * shown in an info hover over the field's control whenever the mouse hovers
-	 * over the decoration. This method can be used to show a decoration's
-	 * description text at other times (such as when the control receives
-	 * focus), or to show other text associated with the field.
-	 * 
-	 * <p>
-	 * If there is currently a hover visible, the hover's text will be replaced
-	 * with the specified text.
-	 * 
-	 * @param text
-	 *            the text to be shown in the info hover, or <code>null</code>
-	 *            if no text should be shown.
-	 */
-	public void showHoverText(String text) {
-		showHoverText(text, control);
-	}
-
-	/**
-	 * Hide any hover popups that are currently showing on the control.
-	 * Normally, a decoration's description text will be shown in an info hover
-	 * over the field's control as long as the mouse hovers over the decoration,
-	 * and will be hidden when the mouse exits the control. This method can be
-	 * used to hide a hover that was shown using <code>showHoverText</code>,
-	 * or to programatically hide the current decoration hover.
-	 * 
-	 * <p>
-	 * This message has no effect if there is no current hover.
-	 * 
-	 */
-	public void hideHover() {
-		if (hover != null) {
-			hover.setVisible(false);
-		}
-	}
-
-	/*
-	 * The target control gained focus. Any decorations that should show only
-	 * when they have the focus should be shown here.
-	 */
-	private void controlFocusGained() {
-		for (int i = 0; i < DECORATION_SLOTS; i++) {
-			if (decDatas[i] != null && decDatas[i].showOnFocus) {
-				setVisible(decDatas[i], true);
-			}
-		}
-	}
-
-	/*
-	 * The target control lost focus. Any decorations that should show only when
-	 * they have the focus should be hidden here.
-	 */
-	private void controlFocusLost() {
-		for (int i = 0; i < DECORATION_SLOTS; i++) {
-			if (decDatas[i] != null && decDatas[i].showOnFocus) {
-				setVisible(decDatas[i], false);
-			}
-		}
-	}
-
-	/**
-	 * Show the specified decoration. This message has no effect if the
-	 * decoration is already showing, or was not already added to the field
-	 * using <code>addFieldDecoration</code>.
-	 * 
-	 * @param decoration
-	 *            the decoration to be shown.
-	 */
-	public void showDecoration(FieldDecoration decoration) {
-		FieldDecorationData data = getDecorationData(decoration);
-		if (data == null) {
-			return;
-		}
-		// record the fact that client would like it to be visible
-		data.visible = true;
-		// even if it is supposed to be shown, if the field does not have focus,
-		// do not show it (yet)
-		if (!data.showOnFocus || control.isFocusControl()) {
-			setVisible(data, true);
-		}
-	}
-
-	/**
-	 * Hide the specified decoration. This message has no effect if the
-	 * decoration is already hidden, or was not already added to the field using
-	 * <code>addFieldDecoration</code>.
-	 * 
-	 * @param decoration
-	 *            the decoration to be hidden.
-	 */
-	public void hideDecoration(FieldDecoration decoration) {
-		FieldDecorationData data = getDecorationData(decoration);
-		if (data == null) {
-			return;
-		}
-		// Store the desired visibility in the decData. We remember the
-		// client's instructions so that changes in visibility caused by
-		// field focus changes won't violate the client's visibility setting.
-		data.visible = false;
-		setVisible(data, false);
-	}
-
-	/**
-	 * Update the specified decoration. This message should be used if the image
-	 * or description in the decoration have changed. This message has no
-	 * immediate effect if the decoration is not visible, and no effect at all
-	 * if the decoration was not previously added to the field.
-	 * 
-	 * @param decoration
-	 *            the decoration to be hidden.
-	 */
-	public void updateDecoration(FieldDecoration decoration) {
-		FieldDecorationData data = getDecorationData(decoration);
-		if (data == null) {
-			return;
-		}
-		if (data.label != null) {
-			data.label.setImage(decoration.getImage());
-			// If the decoration is being shown, and a hover is active,
-			// update the hover text to display the new description.
-			if (data.label.getVisible() == true && hover != null) {
-				showHoverText(decoration.getDescription(), data.label);
-			}
-		}
-	}
-
-	/*
-	 * Set the visibility of the specified decoration data. This method does not
-	 * change the visibility value stored in the decData, but instead consults
-	 * it to determine how the visibility should be changed. This method is
-	 * called any time visibility of a decoration might change, whether by
-	 * client API or focus changes.
-	 */
-	private void setVisible(FieldDecorationData decData, boolean visible) {
-		// Check the decData visibility flag, since it contains the client's
-		// instructions for visibility.
-		if (visible && decData.visible) {
-			decData.label.setVisible(true);
-		} else {
-			decData.label.setVisible(false);
-		}
-	}
-
-	/*
-	 * Get the FieldDecorationData that corresponds to the given decoration.
-	 */
-	private FieldDecorationData getDecorationData(FieldDecoration dec) {
-		for (int i = 0; i < DECORATION_SLOTS; i++) {
-			if (decDatas[i] != null && dec == decDatas[i].decoration
-					&& decDatas[i].label != null
-					&& !decDatas[i].label.isDisposed()) {
-				return decDatas[i];
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Show the specified text in the hover, positioning the hover near the
-	 * specified control.
-	 */
-	private void showHoverText(String text, Control hoverNear) {
-		if (text == null) {
-			hideHover();
-			return;
-		}
-
-		if (hover == null) {
-			hover = new Hover(hoverNear.getShell());
-		}
-		hover.setText(text, hoverNear, control);
-		hover.setVisible(true);
-	}
-
-	/**
-	 * Set a boolean that indicates whether the receiver should use the
-	 * decoration registry's maximum decoration width when allocating space for
-	 * decorations. The default value is <code>true</code>. Using the maximum
-	 * decoration width is useful so that decorated fields on the same dialog
-	 * that have different decoration widths will all align. This also allows
-	 * client dialogs to align non-decorated fields with decorated fields by
-	 * consulting the maximum decoration width.
-	 * </p>
-	 * <p>
-	 * Clients may wish to set this value to <code>false</code> in cases where
-	 * space usage is more important than alignment of fields. This value must
-	 * be set before the decorations are added in order to ensure proper
-	 * alignment.
-	 * </p>
-	 * 
-	 * @param useMaximumWidth
-	 *            <code>true</code> if the maximum decoration width should be
-	 *            used as the size for all decorations, <code>false</code> if
-	 *            only the decoration size should be used.
-	 * 
-	 * @see FieldDecorationRegistry#getMaximumDecorationWidth()
-	 */
-	public void setUseMaximumDecorationWidth(boolean useMaximumWidth) {
-		useMaxDecorationWidth = useMaximumWidth;
-	}
-
-	/*
-	 * Return the width appropriate for the specified decoration image.
-	 */
-	private int widthOf(Image image) {
-		if (image == null) {
-			return 0;
-		}
-		return useMaxDecorationWidth ? FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth() : image.getBounds().width;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldAssistColors.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldAssistColors.java
deleted file mode 100644
index 7fcd603..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldAssistColors.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * FieldAssistColors defines protocol for retrieving colors that can be used to
- * provide visual cues with fields. For consistency with JFace dialogs and
- * wizards, it is recommended that FieldAssistColors is used when colors are
- * used to annotate fields.
- * <p>
- * Color resources that are returned using methods in this class are maintained
- * in the JFace color registries, or by SWT. Users of any color resources
- * provided by this class are not responsible for the lifecycle of the color.
- * Colors provided by this class should never be disposed by clients. In some
- * cases, clients are provided information, such as RGB values, in order to
- * create their own color resources. In these cases, the client should manage
- * the lifecycle of any created resource.
- * 
- * @since 3.2
- * @deprecated As of 3.3, this class is no longer necessary.
- */
-public class FieldAssistColors {
-
-	private static boolean DEBUG = false;
-
-	/*
-	 * Keys are background colors, values are the color with the alpha value
-	 * applied
-	 */
-	private static Map requiredFieldColorMap = new HashMap();
-
-	/*
-	 * Keys are colors we have created, values are the displays on which they
-	 * were created.
-	 */
-	private static Map displays = new HashMap();
-
-	/**
-	 * Compute the RGB of the color that should be used for the background of a
-	 * control to indicate that the control has an error. Because the color
-	 * suitable for indicating an error depends on the colors set into the
-	 * control, this color is always computed dynamically and provided as an RGB
-	 * value. Clients who use this RGB to create a Color resource are
-	 * responsible for managing the life cycle of the color.
-	 * <p>
-	 * This color is computed dynamically each time that it is queried. Clients
-	 * should typically call this method once, create a color from the RGB
-	 * provided, and dispose of the color when finished using it.
-	 * 
-	 * @param control
-	 *            the control for which the background color should be computed.
-	 * @return the RGB value indicating a background color appropriate for
-	 *         indicating an error in the control.
-	 */
-	public static RGB computeErrorFieldBackgroundRGB(Control control) {
-		/*
-		 * Use a 10% alpha of the error color applied on top of the widget
-		 * background color.
-		 */
-		Color dest = control.getBackground();
-		Color src = JFaceColors.getErrorText(control.getDisplay());
-		int destRed = dest.getRed();
-		int destGreen = dest.getGreen();
-		int destBlue = dest.getBlue();
-
-		// 10% alpha
-		int alpha = (int) (0xFF * 0.10f);
-		// Alpha blending math
-		destRed += (src.getRed() - destRed) * alpha / 0xFF;
-		destGreen += (src.getGreen() - destGreen) * alpha / 0xFF;
-		destBlue += (src.getBlue() - destBlue) * alpha / 0xFF;
-
-		return new RGB(destRed, destGreen, destBlue);
-	}
-
-	/**
-	 * Return the color that should be used for the background of a control to
-	 * indicate that the control is a required field and does not have content.
-	 * <p>
-	 * This color is managed by FieldAssistResources and should never be
-	 * disposed by clients.
-	 * 
-	 * @param control
-	 *            the control on which the background color will be used.
-	 * @return the color used to indicate that a field is required.
-	 */
-	public static Color getRequiredFieldBackgroundColor(Control control) {
-		final Display display = control.getDisplay();
-
-		// If we are in high contrast mode, then don't apply an alpha
-		if (display.getHighContrast()) {
-			return control.getBackground();
-		}
-
-		// See if a color has already been computed
-		Object storedColor = requiredFieldColorMap.get(control.getBackground());
-		if (storedColor != null) {
-			return (Color) storedColor;
-		}
-
-		// There is no color already created, so we must create one.
-		// Use a 15% alpha of yellow on top of the widget background.
-		Color dest = control.getBackground();
-		Color src = display.getSystemColor(SWT.COLOR_YELLOW);
-		int destRed = dest.getRed();
-		int destGreen = dest.getGreen();
-		int destBlue = dest.getBlue();
-
-		// 15% alpha
-		int alpha = (int) (0xFF * 0.15f);
-		// Alpha blending math
-		destRed += (src.getRed() - destRed) * alpha / 0xFF;
-		destGreen += (src.getGreen() - destGreen) * alpha / 0xFF;
-		destBlue += (src.getBlue() - destBlue) * alpha / 0xFF;
-
-		// create the color
-		Color color = new Color(display, destRed, destGreen, destBlue);
-		// record the color in a map using the original color as the key
-		requiredFieldColorMap.put(dest, color);
-		// If we have never created a color on this display before, install
-		// a dispose exec on the display.
-		if (!displays.containsValue(display)) {
-			display.disposeExec(new Runnable() {
-				public void run() {
-					disposeColors(display);
-				}
-			});
-		}
-		// Record the color and its display in a map for later disposal.
-		displays.put(color, display);
-		return color;
-	}
-
-	/*
-	 * Dispose any colors that were allocated for the given display.
-	 */
-	private static void disposeColors(Display display) {
-		List toBeRemoved = new ArrayList(1);
-
-		if (DEBUG) {
-			System.out.println("Display map is " + displays.toString()); //$NON-NLS-1$
-			System.out
-					.println("Color map is " + requiredFieldColorMap.toString()); //$NON-NLS-1$
-		}
-
-		// Look for any stored colors that were created on this display
-		for (Iterator i = displays.keySet().iterator(); i.hasNext();) {
-			Color color = (Color) i.next();
-			if (((Display) displays.get(color)).equals(display)) {
-				// The color is on this display. Mark it for removal.
-				toBeRemoved.add(color);
-
-				// Now look for any references to it in the required field color
-				// map
-				List toBeRemovedFromRequiredMap = new ArrayList(1);
-				for (Iterator iter = requiredFieldColorMap.keySet().iterator(); iter
-						.hasNext();) {
-					Color bgColor = (Color) iter.next();
-					if (((Color) requiredFieldColorMap.get(bgColor))
-							.equals(color)) {
-						// mark it for removal from the required field color map
-						toBeRemovedFromRequiredMap.add(bgColor);
-					}
-				}
-				// Remove references in the required field map now that
-				// we are done iterating.
-				for (int j = 0; j < toBeRemovedFromRequiredMap.size(); j++) {
-					requiredFieldColorMap.remove(toBeRemovedFromRequiredMap
-							.get(j));
-				}
-			}
-		}
-		// Remove references in the display map now that we are
-		// done iterating
-		for (int i = 0; i < toBeRemoved.size(); i++) {
-			Color color = (Color) toBeRemoved.get(i);
-			// Removing from the display map must be done before disposing the
-			// color or else the comparison between this color and the one
-			// in the map will fail.
-			displays.remove(color);
-			// Dispose it
-			if (DEBUG) {
-				System.out.println("Disposing color " + color.toString()); //$NON-NLS-1$
-			}
-			color.dispose();
-		}
-		if (DEBUG) {
-			System.out.println("Display map is " + displays.toString()); //$NON-NLS-1$
-			System.out
-					.println("Color map is " + requiredFieldColorMap.toString()); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecoration.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecoration.java
deleted file mode 100644
index 597661c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecoration.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * FieldDecoration is a simple data structure class for specifying a decoration
- * for a field. A decoration may be rendered in different ways depending on the
- * type of field it is used with.
- * 
- * @see FieldDecorationRegistry
- * 
- * @since 3.2
- */
-public class FieldDecoration {
-
-	/*
-	 * The image to be shown in the decoration.
-	 */
-	private Image image;
-
-	/*
-	 * The description to show in the decoration's hover.
-	 */
-	private String description;
-
-	/**
-	 * Create a decoration for a field with the specified image and description
-	 * text.
-	 * 
-	 * @param image
-	 *            the image shown in the decoration. A <code>null</code> image
-	 *            will result in a blank decoration, which may be used to
-	 *            reserve space near the field.
-	 * @param description
-	 *            the description shown when the user hovers over the
-	 *            decoration. A <code>null</code> description indicates that
-	 *            there will be no hover for the decoration.
-	 */
-	public FieldDecoration(Image image, String description) {
-		this.image = image;
-		this.description = description;
-	}
-
-	/**
-	 * Return the image shown in the decoration, or <code>null</code> if no
-	 * image is specified.
-	 * 
-	 * @return the image shown in the decoration. A return value of
-	 *         <code>null</code> signifies a blank decoration.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Set the image shown in the decoration, or <code>null</code> if no image
-	 * is specified. It is up to the caller to update any decorated fields that
-	 * are showing the description in order to display the new image.
-	 * 
-	 * @param image
-	 *            the image shown in the decoration. A value of
-	 *            <code>null</code> signifies a blank decoration.
-	 */
-	public void setImage(Image image) {
-		this.image = image;
-	}
-
-	/**
-	 * Return the description for the decoration shown when the user hovers over
-	 * the decoration.
-	 * 
-	 * @return the String description of the decoration. A return value of
-	 *         <code>null</code> indicates that no description will be shown.
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	/**
-	 * Set the description for the decoration shown when the user hovers over
-	 * the decoration. It is up to the caller to update any decorated fields
-	 * showing the description.
-	 * 
-	 * @param description
-	 *            the String description of the decoration. A value of
-	 *            <code>null</code> indicates that no description will be
-	 *            shown.
-	 */
-	public void setDescription(String description) {
-		this.description = description;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecorationRegistry.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecorationRegistry.java
deleted file mode 100644
index b70a6d9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/FieldDecorationRegistry.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * FieldDecorationRegistry is a common registry used to define shared field
- * decorations within an application. Unlike resource registries, the
- * FieldDecorationRegistry does not perform any lifecycle management of the
- * decorations.
- * </p>
- * <p>
- * Clients may specify images for the decorations in several different ways.
- * Images may be described by their image id in a specified
- * {@link ImageRegistry}. In this case, the life cycle of the image is managed
- * by the image registry, and the decoration registry will not attempt to obtain
- * an image from the image registry until the decoration is actually requested.
- * In cases where the client has access to an already-created image, the image
- * itself can be specified when registering the decoration. In this case, the
- * life cycle should be managed by the specifying client.
- * </p>
- * 
- * @see FieldDecoration
- * @see ImageRegistry
- * 
- * @since 3.2
- */
-public class FieldDecorationRegistry {
-
-	/**
-	 * Decoration id for the decoration that should be used to cue the user that
-	 * content proposals are available.
-	 */
-	public static final String DEC_CONTENT_PROPOSAL = "DEC_CONTENT_PROPOSAL"; //$NON-NLS-1$
-
-	/**
-	 * Decoration id for the decoration that should be used to cue the user that
-	 * a field is required.
-	 */
-	public static final String DEC_REQUIRED = "DEC_REQUIRED"; //$NON-NLS-1$
-
-	/**
-	 * Decoration id for the decoration that should be used to cue the user that
-	 * a field has an error.
-	 */
-	public static final String DEC_ERROR = "DEC_ERROR"; //$NON-NLS-1$
-
-	/**
-	 * Decoration id for the decoration that should be used to cue the user that
-	 * a field has a warning.
-	 */
-	public static final String DEC_WARNING = "DEC_WARNING"; //$NON-NLS-1$
-
-	/**
-	 * Decoration id for the decoration that should be used to cue the user that
-	 * a field has additional information.
-	 * 
-	 * @since 3.3
-	 */
-	public static final String DEC_INFORMATION = "DEC_INFORMATION"; //$NON-NLS-1$
-
-	/**
-	 * Decoration id for the decoration that should be used to cue the user that
-	 * a field has an error with quick fix available.
-	 * 
-	 * @since 3.3
-	 */
-	public static final String DEC_ERROR_QUICKFIX = "DEC_ERRORQUICKFIX"; //$NON-NLS-1$
-
-	/*
-	 * Image id's
-	 */
-	private static final String IMG_DEC_FIELD_CONTENT_PROPOSAL = "org.eclipse.jface.fieldassist.IMG_DEC_FIELD_CONTENT_PROPOSAL"; //$NON-NLS-1$
-
-	private static final String IMG_DEC_FIELD_REQUIRED = "org.eclipse.jface.fieldassist.IMG_DEC_FIELD_REQUIRED"; //$NON-NLS-1$
-
-	private static final String IMG_DEC_FIELD_ERROR = "org.eclipse.jface.fieldassist.IMG_DEC_FIELD_ERROR"; //$NON-NLS-1$
-	
-	private static final String IMG_DEC_FIELD_ERROR_QUICKFIX = "org.eclipse.jface.fieldassist.IMG_DEC_FIELD_ERROR_QUICKFIX"; //$NON-NLS-1$
-
-	private static final String IMG_DEC_FIELD_WARNING = "org.eclipse.jface.fieldassist.IMG_DEC_FIELD_WARNING"; //$NON-NLS-1$
-
-	private static final String IMG_DEC_FIELD_INFO = "org.eclipse.jface.fieldassist.IMG_DEC_FIELD_INFO"; //$NON-NLS-1$
-
-	/*
-	 * Declare images and decorations immediately.
-	 */
-	static {
-		ImageRegistry imageRegistry = JFaceResources.getImageRegistry();
-
-		// Define the images used in the standard decorations.
-		imageRegistry.put(IMG_DEC_FIELD_CONTENT_PROPOSAL, ImageDescriptor
-				.createFromFile(FieldDecorationRegistry.class,
-						"images/contassist_ovr.gif"));//$NON-NLS-1$
-		imageRegistry.put(IMG_DEC_FIELD_ERROR, ImageDescriptor.createFromFile(
-				FieldDecorationRegistry.class, "images/error_ovr.gif"));//$NON-NLS-1$
-
-		imageRegistry.put(IMG_DEC_FIELD_WARNING, ImageDescriptor
-				.createFromFile(FieldDecorationRegistry.class,
-						"images/warn_ovr.gif"));//$NON-NLS-1$
-
-		imageRegistry.put(IMG_DEC_FIELD_REQUIRED, ImageDescriptor
-				.createFromFile(FieldDecorationRegistry.class,
-						"images/required_field_cue.gif"));//$NON-NLS-1$	
-		
-		imageRegistry.put(IMG_DEC_FIELD_ERROR_QUICKFIX, ImageDescriptor
-				.createFromFile(FieldDecorationRegistry.class,
-						"images/errorqf_ovr.gif"));//$NON-NLS-1$
-		
-		imageRegistry.put(IMG_DEC_FIELD_INFO, ImageDescriptor
-				.createFromFile(FieldDecorationRegistry.class,
-						"images/info_ovr.gif"));//$NON-NLS-1$		
-
-		// Define the standard decorations. Some do not have standard
-		// descriptions. Use null in these cases.
-		getDefault()
-				.registerFieldDecoration(
-						DEC_CONTENT_PROPOSAL,
-						JFaceResources
-								.getString("FieldDecorationRegistry.contentAssistMessage"), //$NON-NLS-1$
-						IMG_DEC_FIELD_CONTENT_PROPOSAL, imageRegistry);
-
-		getDefault().registerFieldDecoration(
-				DEC_ERROR,
-				JFaceResources
-						.getString("FieldDecorationRegistry.errorMessage"), //$NON-NLS-1$
-				IMG_DEC_FIELD_ERROR, imageRegistry);
-		
-		getDefault().registerFieldDecoration(
-				DEC_ERROR_QUICKFIX,
-				JFaceResources
-						.getString("FieldDecorationRegistry.errorQuickFixMessage"), //$NON-NLS-1$
-				IMG_DEC_FIELD_ERROR_QUICKFIX, imageRegistry);
-
-		getDefault().registerFieldDecoration(DEC_WARNING, null,
-				IMG_DEC_FIELD_WARNING, imageRegistry);
-		
-		getDefault().registerFieldDecoration(DEC_INFORMATION, null,
-				IMG_DEC_FIELD_INFO, imageRegistry);
-
-		getDefault()
-				.registerFieldDecoration(
-						DEC_REQUIRED,
-						JFaceResources
-								.getString("FieldDecorationRegistry.requiredFieldMessage"), //$NON-NLS-1$
-						IMG_DEC_FIELD_REQUIRED, imageRegistry);
-
-	}
-
-	/*
-	 * Data structure that holds onto the decoration image info and description,
-	 * and can produce a decorator on request.
-	 */
-	class Entry {
-		private String description;
-
-		private String imageId;
-
-		private ImageRegistry imageRegistry;
-
-		private Image image;
-
-		private FieldDecoration decoration;
-
-		Entry(String description, String imageId, ImageRegistry registry) {
-			this.description = description;
-			this.imageId = imageId;
-			this.imageRegistry = registry;
-		}
-
-		Entry(String description, Image image) {
-			this.description = description;
-			this.image = image;
-		}
-
-		FieldDecoration getDecoration() {
-			if (decoration == null) {
-				if (image == null) {
-					if (imageRegistry == null) {
-						imageRegistry = JFaceResources.getImageRegistry();
-					}
-					image = imageRegistry.get(imageId);
-				}
-				decoration = new FieldDecoration(image, description);
-			}
-			// Null out all other fields now that the decoration has an image
-			description = null;
-			imageId = null;
-			imageRegistry = null;
-			image = null;
-
-			return decoration;
-		}
-	}
-
-	/**
-	 * Default instance of the registry. Applications may install their own
-	 * registry.
-	 */
-	private static FieldDecorationRegistry defaultInstance;
-
-	/**
-	 * Maximum width and height used by decorations in this registry. Clients
-	 * may use these values to reserve space in dialogs for decorations or to
-	 * adjust layouts so that decorated and non-decorated fields line up.
-	 */
-	private int maxDecorationWidth = 0;
-	private int maxDecorationHeight = 0;
-
-	private HashMap /* <String id, FieldDecoration> */decorations = new HashMap();
-
-	/**
-	 * Get the default FieldDecorationRegistry.
-	 * 
-	 * @return the singleton FieldDecorationRegistry that is used to manage
-	 *         shared field decorations.
-	 */
-	public static FieldDecorationRegistry getDefault() {
-		if (defaultInstance == null) {
-			defaultInstance = new FieldDecorationRegistry();
-		}
-		return defaultInstance;
-	}
-
-	/**
-	 * Set the default FieldDecorationRegistry.
-	 * 
-	 * @param defaultRegistry
-	 *            the singleton FieldDecorationRegistry that is used to manage
-	 *            shared field decorations.
-	 */
-	public static void setDefault(FieldDecorationRegistry defaultRegistry) {
-		defaultInstance = defaultRegistry;
-	}
-
-	/**
-	 * Construct a FieldDecorationRegistry.
-	 */
-	public FieldDecorationRegistry() {
-		maxDecorationWidth = 0;
-		maxDecorationHeight = 0;
-	}
-
-	/**
-	 * Get the maximum width (in pixels) of any decoration retrieved so far in
-	 * the registry. This value changes as decorations are added and retrieved.
-	 * This value can be used by clients to reserve space or otherwise compute
-	 * margins when aligning non-decorated fields with decorated fields.
-	 * 
-	 * @return the maximum width in pixels of any accessed decoration
-	 */
-	public int getMaximumDecorationWidth() {
-		return maxDecorationWidth;
-	}
-
-	/**
-	 * Get the maximum height (in pixels) of any decoration retrieved so far in
-	 * the registry. This value changes as decorations are added and retrieved.
-	 * This value can be used by clients to reserve space or otherwise compute
-	 * margins when aligning non-decorated fields with decorated fields.
-	 * 
-	 * 
-	 * @return the maximum height in pixels of any accessed decoration
-	 */
-	public int getMaximumDecorationHeight() {
-		return maxDecorationHeight;
-	}
-
-	/**
-	 * Registers a field decoration using the specified id. The lifecyle of the
-	 * supplied image should be managed by the client. That is, it will never be
-	 * disposed by this registry and the decoration should be removed from the
-	 * registry if the image is ever disposed elsewhere.
-	 * 
-	 * @param id
-	 *            the String id used to identify and access the decoration.
-	 * @param description
-	 *            the String description to be used in the decoration, or
-	 *            <code>null</code> if the decoration has no description.
-	 * @param image
-	 *            the image to be used in the decoration
-	 */
-	public void registerFieldDecoration(String id, String description,
-			Image image) {
-		decorations.put(id, new Entry(description, image));
-		// Recompute the maximums since this might be a replacement
-		recomputeMaximums();
-	}
-
-	/**
-	 * Registers a field decoration using the specified id. An image id of an
-	 * image located in the default JFaceResources image registry is supplied.
-	 * The image will not be created until the decoration is requested.
-	 * 
-	 * @param id
-	 *            the String id used to identify and access the decoration.
-	 * @param description
-	 *            the String description to be used in the decoration, or
-	 *            <code>null</code> if the decoration has no description. *
-	 * @param imageId
-	 *            the id of the image in the JFaceResources image registry that
-	 *            is used for this decorator
-	 */
-	public void registerFieldDecoration(String id, String description,
-			String imageId) {
-		decorations.put(id, new Entry(description, imageId, JFaceResources
-				.getImageRegistry()));
-		// Recompute the maximums as this could be a replacement of a previous
-		// image.
-		recomputeMaximums();
-	}
-
-	/**
-	 * Registers a field decoration using the specified id. An image id and an
-	 * image registry are supplied. The image will not be created until the
-	 * decoration is requested.
-	 * 
-	 * @param id
-	 *            the String id used to identify and access the decoration.
-	 * @param description
-	 *            the String description to be used in the decoration, or
-	 *            <code>null</code> if the decoration has no description. *
-	 * @param imageId
-	 *            the id of the image in the supplied image registry that is
-	 *            used for this decorator
-	 * @param imageRegistry
-	 *            the registry used to obtain the image
-	 */
-	public void registerFieldDecoration(String id, String description,
-			String imageId, ImageRegistry imageRegistry) {
-		decorations.put(id, new Entry(description, imageId, imageRegistry));
-		// Recompute the maximums since this could be a replacement
-		recomputeMaximums();
-	}
-
-	/**
-	 * Unregisters the field decoration with the specified id. No lifecycle
-	 * management is performed on the decoration's image. This message has no
-	 * effect if no field decoration with the specified id was previously
-	 * registered.
-	 * </p>
-	 * <p>
-	 * This method need not be called if the registered decoration's image is
-	 * managed in an image registry. In that case, leaving the decoration in the
-	 * registry will do no harm since the image will remain valid and will be
-	 * properly disposed when the application is shut down. This method should
-	 * be used in cases where the caller intends to dispose of the image
-	 * referred to by the decoration, or otherwise determines that the
-	 * decoration should no longer be used.
-	 * 
-	 * @param id
-	 *            the String id of the decoration to be unregistered.
-	 */
-	public void unregisterFieldDecoration(String id) {
-		decorations.remove(id);
-		recomputeMaximums();
-	}
-
-	/**
-	 * Returns the field decoration registered by the specified id .
-	 * 
-	 * @param id
-	 *            the String id used to access the decoration.
-	 * @return the FieldDecoration with the specified id, or <code>null</code>
-	 *         if there is no decoration with the specified id.
-	 */
-	public FieldDecoration getFieldDecoration(String id) {
-		Object entry = decorations.get(id);
-		if (entry == null) {
-			return null;
-		}
-		return ((Entry) entry).getDecoration();
-
-	}
-
-	/*
-	 * The maximum decoration width and height must be recomputed. Typically
-	 * called in response to adding, removing, or replacing a decoration.
-	 */
-	private void recomputeMaximums() {
-		Iterator entries = decorations.values().iterator();
-		
-		maxDecorationHeight = 0;
-		maxDecorationWidth = 0;
-		while (entries.hasNext()) {
-			Image image = ((Entry)entries.next()).getDecoration().getImage();
-			if (image != null) {
-				maxDecorationHeight = Math.max(maxDecorationHeight, image.getBounds().height);
-				maxDecorationWidth = Math.max(maxDecorationWidth, image.getBounds().width);
-			}
-		}
-
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposal.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposal.java
deleted file mode 100644
index 538e7f6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposal.java
+++ /dev/null
@@ -1,55 +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.jface.fieldassist;
-
-/**
- * IContentProposal describes a content proposal to be shown. It consists of the
- * content that will be provided if the proposal is accepted, an optional label
- * used to describe the content to the user, and an optional description that
- * further elaborates the meaning of the proposal.
- * 
- * @since 3.2
- */
-public interface IContentProposal {
-	/**
-	 * Return the content represented by this proposal.
-	 * 
-	 * @return the String content represented by this proposal.
-	 */
-	public String getContent();
-
-	/**
-	 * Return the integer position within the contents that the cursor should be
-	 * placed after the proposal is accepted.
-	 * 
-	 * @return the zero-based index position within the contents where the
-	 *         cursor should be placed after the proposal is accepted.
-	 */
-	public int getCursorPosition();
-
-	/**
-	 * Return the label used to describe this proposal.
-	 * 
-	 * @return the String label used to display the proposal. If
-	 *         <code>null</code>, then the content will be displayed as the
-	 *         label.
-	 */
-	public String getLabel();
-
-	/**
-	 * Return a description that describes this proposal.
-	 * 
-	 * @return the String label used to further the proposal. If
-	 *         <code>null</code>, then no description will be displayed.
-	 */
-	public String getDescription();
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener.java
deleted file mode 100644
index 61a2310..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener.java
+++ /dev/null
@@ -1,27 +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.jface.fieldassist;
-
-/**
- * This interface is used to listen to notifications from a
- * {@link ContentProposalAdapter}.
- * 
- * @since 3.2
- */
-public interface IContentProposalListener {
-	/**
-	 * A content proposal has been accepted.
-	 * 
-	 * @param proposal
-	 *            the accepted content proposal
-	 */
-	public void proposalAccepted(IContentProposal proposal);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener2.java
deleted file mode 100644
index 31c0d4d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalListener2.java
+++ /dev/null
@@ -1,37 +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.jface.fieldassist;
-
-/**
- * This interface is used to listen to additional notifications from a
- * {@link ContentProposalAdapter}.
- * 
- * @since 3.3
- */
-public interface IContentProposalListener2 {
-	/**
-	 * A content proposal popup has been opened for content proposal assistance.
-	 * 
-	 * @param adapter
-	 *            the ContentProposalAdapter which is providing content proposal
-	 *            behavior to a control
-	 */
-	public void proposalPopupOpened(ContentProposalAdapter adapter);
-
-	/**
-	 * A content proposal popup has been closed.
-	 * 
-	 * @param adapter
-	 *            the ContentProposalAdapter which is providing content proposal
-	 *            behavior to a control
-	 */
-	public void proposalPopupClosed(ContentProposalAdapter adapter);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalProvider.java
deleted file mode 100644
index 55983e0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IContentProposalProvider.java
+++ /dev/null
@@ -1,35 +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.jface.fieldassist;
-
-/**
- * IContentProposalProvider provides an array of IContentProposals that are
- * appropriate for a textual dialog field, given the field's current content and
- * the current cursor position. 
- * 
- * @since 3.2
- */
-public interface IContentProposalProvider {
-
-	/**
-	 * Return an array of Objects representing the valid content proposals for a
-	 * field.
-	 * 
-	 * @param contents
-	 *            the current contents of the text field
-	 * @param position
-	 *            the current position of the cursor in the contents
-	 * 
-	 * @return the array of {@link IContentProposal} that represent valid
-	 *         proposals for the field.
-	 */
-	IContentProposal[] getProposals(String contents, int position);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter.java
deleted file mode 100644
index b76025c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter.java
+++ /dev/null
@@ -1,105 +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.jface.fieldassist;
-
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This interface is used to set and retrieve text content from an arbitrary
- * control. Clients are expected to implement this interface when defining a
- * {@link ContentProposalAdapter}, in order to specify how to retrieve and set
- * the contents of the control being adapted.
- * 
- * @since 3.2
- */
-public interface IControlContentAdapter {
-	/**
-	 * Set the contents of the specified control to the specified text. Must not
-	 * be <code>null</code>.
-	 * 
-	 * @param control
-	 *            the control whose contents are to be set (replaced).
-	 * @param contents
-	 *            the String specifying the new control content.
-	 * @param cursorPosition
-	 *            the zero-based index representing the desired cursor position
-	 *            in the control's contents after the contents are set.
-	 */
-	public void setControlContents(Control control, String contents,
-			int cursorPosition);
-
-	/**
-	 * Insert the specified contents into the control's current contents. Must
-	 * not be <code>null</code>.
-	 * 
-	 * @param control
-	 *            the control whose contents are to be altered.
-	 * @param contents
-	 *            the String to be inserted into the control contents.
-	 * @param cursorPosition
-	 *            the zero-based index representing the desired cursor position
-	 *            within the inserted contents after the insertion is made.
-	 */
-	public void insertControlContents(Control control, String contents,
-			int cursorPosition);
-
-	/**
-	 * Get the text contents of the control.
-	 * 
-	 * @param control
-	 *            the control whose contents are to be retrieved.
-	 * @return the String contents of the control.
-	 */
-	public String getControlContents(Control control);
-
-	/**
-	 * Get the current cursor position in the control. The position is specified
-	 * as a zero-based index into the string. Valid ranges are from 0 to N,
-	 * where N is the size of the contents string. A value of N indicates that
-	 * the cursor is at the end of the contents.
-	 * 
-	 * @param control
-	 *            the control whose position is to be retrieved.
-	 * @return the zero-based index representing the cursor position in the
-	 *         control's contents.
-	 */
-	public int getCursorPosition(Control control);
-
-	/**
-	 * Get the bounds (in pixels) of the insertion point for the control
-	 * content. This is a rectangle, in coordinates relative to the control,
-	 * where the insertion point is displayed. If the implementer does not have
-	 * an insertion point, or cannot determine the location of the insertion
-	 * point, it is appropriate to return the bounds of the entire control. This
-	 * value may be used to position a content proposal popup.
-	 * 
-	 * @param control
-	 *            the control whose offset is to be retrieved.
-	 * @return the pixel width representing the distance between the edge of the
-	 *         control and the insertion point.
-	 */
-	public Rectangle getInsertionBounds(Control control);
-
-	/**
-	 * Set the current cursor position in the control. The position is specified
-	 * as a zero-based index into the string. Valid ranges are from 0 to N,
-	 * where N is the size of the contents string. A value of N indicates that
-	 * the cursor is at the end of the contents.
-	 * 
-	 * @param control
-	 *            the control whose cursor position is to be set.
-	 * @param index
-	 *            the zero-based index representing the cursor position in the
-	 *            control's contents.
-	 */
-	public void setCursorPosition(Control control, int index);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter2.java
deleted file mode 100644
index bc6192b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlContentAdapter2.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This interface is used by a {@link ContentProposalAdapter} in order to
- * retrieve and set the selection range in a control.
- * 
- * @since 3.4
- */
-public interface IControlContentAdapter2 {
-	/**
-	 * Get the current selection range in the control. The x coordinate of the
-	 * returned point is the position of the first selected character and the y
-	 * coordinate of the returned point is the position of the last selected
-	 * character. The positions are specified as a zero-based index into the
-	 * string. Valid ranges are from 0 to N, where N is the size of the contents
-	 * string. A value of N indicates that the last character is in the
-	 * selection.
-	 * 
-	 * @param control
-	 *            the control whose position is to be retrieved.
-	 * @return a point representing the selection start and end
-	 */
-	public Point getSelection(Control control);
-
-	/**
-	 * Set the current selection range in the control. The x coordinate of the
-	 * provided point is the position of the first selected character and the y
-	 * coordinate of the point is the position of the last selected character.
-	 * The positions are specified as a zero-based index into the string. Valid
-	 * ranges are from 0 to N, where N is the size of the contents string. A
-	 * value of N indicates that the last character is in the selection. If the
-	 * x and y coordinates are the same, then there is no selection.
-	 * 
-	 * @param control
-	 *            the control whose position is to be retrieved.
-	 * @param range
-	 *            a point representing the selection start and end
-	 */
-	public void setSelection(Control control, Point range);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlCreator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlCreator.java
deleted file mode 100644
index d083e42..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/IControlCreator.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This interface is used to create a control with a specific parent and style
- * bits. It is used by {@link DecoratedField} to create the control to be
- * decorated. Clients are expected to implement this interface in order to
- * create a particular kind of control for decoration.
- * 
- * @since 3.2
- * @deprecated As of 3.3, clients should use {@link ControlDecoration} instead
- *             of {@link DecoratedField}.
- * 
- */
-public interface IControlCreator {
-	/**
-	 * Create a control with the specified parent and style bits.
-	 * 
-	 * @param parent
-	 *            the parent of the control
-	 * @param style
-	 *            the style of the control
-	 * 
-	 * @return the Control that was created.
-	 */
-	public Control createControl(Composite parent, int style);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/SimpleContentProposalProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/SimpleContentProposalProvider.java
deleted file mode 100644
index 89819ad..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/SimpleContentProposalProvider.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Amir Kouchekinia <amir@pyrus.us> - bug 200762
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import java.util.ArrayList;
-
-/**
- * SimpleContentProposalProvider is a class designed to map a static list of
- * Strings to content proposals.
- * 
- * @see IContentProposalProvider
- * @since 3.2
- * 
- */
-public class SimpleContentProposalProvider implements IContentProposalProvider {
-
-	/*
-	 * The proposals provided.
-	 */
-	private String[] proposals;
-
-	/*
-	 * The proposals mapped to IContentProposal. Cached for speed in the case
-	 * where filtering is not used.
-	 */
-	private IContentProposal[] contentProposals;
-
-	/*
-	 * Boolean that tracks whether filtering is used.
-	 */
-	private boolean filterProposals = false;
-
-	/**
-	 * Construct a SimpleContentProposalProvider whose content proposals are
-	 * always the specified array of Objects.
-	 * 
-	 * @param proposals
-	 *            the array of Strings to be returned whenever proposals are
-	 *            requested.
-	 */
-	public SimpleContentProposalProvider(String[] proposals) {
-		super();
-		this.proposals = proposals;
-	}
-
-	/**
-	 * Return an array of Objects representing the valid content proposals for a
-	 * field. 
-	 * 
-	 * @param contents
-	 *            the current contents of the field (only consulted if filtering
-	 *            is set to <code>true</code>)
-	 * @param position
-	 *            the current cursor position within the field (ignored)
-	 * @return the array of Objects that represent valid proposals for the field
-	 *         given its current content.
-	 */
-	public IContentProposal[] getProposals(String contents, int position) {
-		if (filterProposals) {
-			ArrayList list = new ArrayList();
-			for (int i = 0; i < proposals.length; i++) {
-				if (proposals[i].length() >= contents.length()
-						&& proposals[i].substring(0, contents.length())
-								.equalsIgnoreCase(contents)) {
-					list.add(makeContentProposal(proposals[i]));
-				}
-			}
-			return (IContentProposal[]) list.toArray(new IContentProposal[list
-					.size()]);
-		}
-		if (contentProposals == null) {
-			contentProposals = new IContentProposal[proposals.length];
-			for (int i = 0; i < proposals.length; i++) {
-				contentProposals[i] = makeContentProposal(proposals[i]);
-			}
-		}
-		return contentProposals;
-	}
-
-	/**
-	 * Set the Strings to be used as content proposals.
-	 * 
-	 * @param items
-	 *            the array of Strings to be used as proposals.
-	 */
-	public void setProposals(String[] items) {
-		this.proposals = items;
-		contentProposals = null;
-	}
-
-	/**
-	 * Set the boolean that controls whether proposals are filtered according to
-	 * the current field content.
-	 * 
-	 * @param filterProposals
-	 *            <code>true</code> if the proposals should be filtered to
-	 *            show only those that match the current contents of the field,
-	 *            and <code>false</code> if the proposals should remain the
-	 *            same, ignoring the field content.
-	 * @since 3.3
-	 */
-	public void setFiltering(boolean filterProposals) {
-		this.filterProposals = filterProposals;
-		// Clear any cached proposals.
-		contentProposals = null;
-	}
-
-	/*
-	 * Make an IContentProposal for showing the specified String.
-	 */
-	private IContentProposal makeContentProposal(final String proposal) {
-		return new IContentProposal() {
-			public String getContent() {
-				return proposal;
-			}
-
-			public String getDescription() {
-				return null;
-			}
-
-			public String getLabel() {
-				return null;
-			}
-
-			public int getCursorPosition() {
-				return proposal.length();
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextContentAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextContentAdapter.java
deleted file mode 100644
index 5620085..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextContentAdapter.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * An {@link IControlContentAdapter} for SWT Text controls. This is a
- * convenience class for easily creating a {@link ContentProposalAdapter} for
- * text fields.
- * 
- * @since 3.2
- */
-public class TextContentAdapter implements IControlContentAdapter,
-		IControlContentAdapter2 {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.taskassistance.IControlContentAdapter#getControlContents(org.eclipse.swt.widgets.Control)
-	 */
-	public String getControlContents(Control control) {
-		return ((Text) control).getText();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#setControlContents(org.eclipse.swt.widgets.Control,
-	 *      java.lang.String, int)
-	 */
-	public void setControlContents(Control control, String text,
-			int cursorPosition) {
-		((Text) control).setText(text);
-		((Text) control).setSelection(cursorPosition, cursorPosition);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#insertControlContents(org.eclipse.swt.widgets.Control,
-	 *      java.lang.String, int)
-	 */
-	public void insertControlContents(Control control, String text,
-			int cursorPosition) {
-		Point selection = ((Text) control).getSelection();
-		((Text) control).insert(text);
-		// Insert will leave the cursor at the end of the inserted text. If this
-		// is not what we wanted, reset the selection.
-		if (cursorPosition < text.length()) {
-			((Text) control).setSelection(selection.x + cursorPosition,
-					selection.x + cursorPosition);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#getCursorPosition(org.eclipse.swt.widgets.Control)
-	 */
-	public int getCursorPosition(Control control) {
-		return ((Text) control).getCaretPosition();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#getInsertionBounds(org.eclipse.swt.widgets.Control)
-	 */
-	public Rectangle getInsertionBounds(Control control) {
-		Text text = (Text) control;
-		Point caretOrigin = text.getCaretLocation();
-		// We fudge the y pixels due to problems with getCaretLocation
-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=52520
-		return new Rectangle(caretOrigin.x + text.getClientArea().x,
-				caretOrigin.y + text.getClientArea().y + 3, 1, text.getLineHeight());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter#setCursorPosition(org.eclipse.swt.widgets.Control,
-	 *      int)
-	 */
-	public void setCursorPosition(Control control, int position) {
-		((Text) control).setSelection(new Point(position, position));
-	}
-
-	/**
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter2#getSelection(org.eclipse.swt.widgets.Control)
-	 * 
-	 * @since 3.4
-	 */
-	public Point getSelection(Control control) {
-		return ((Text) control).getSelection();
-	}
-
-	/**
-	 * @see org.eclipse.jface.fieldassist.IControlContentAdapter2#setSelection(org.eclipse.swt.widgets.Control,
-	 *      org.eclipse.swt.graphics.Point)
-	 * 
-	 * @since 3.4
-	 */
-	public void setSelection(Control control, Point range) {
-		((Text) control).setSelection(range);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextControlCreator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextControlCreator.java
deleted file mode 100644
index 509437d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/TextControlCreator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.fieldassist;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * An {@link IControlCreator} for SWT Text controls. This is a convenience class
- * for creating text controls to be supplied to a decorated field.
- * 
- * @since 3.2
- * @deprecated As of 3.3, clients should use {@link ControlDecoration} instead
- *             of {@link DecoratedField}.
- * 
- */
-public class TextControlCreator implements IControlCreator {
-
-	public Control createControl(Composite parent, int style) {
-		return new Text(parent, style);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/contassist_ovr.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/contassist_ovr.gif
deleted file mode 100644
index 5c68bdb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/contassist_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_ovr.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_ovr.gif
deleted file mode 100644
index 7291a53..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/error_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/errorqf_ovr.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/errorqf_ovr.gif
deleted file mode 100644
index 2468e99..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/errorqf_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/info_ovr.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/info_ovr.gif
deleted file mode 100644
index d485366..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/info_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/required_field_cue.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/required_field_cue.gif
deleted file mode 100644
index d94a8f8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/required_field_cue.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/warn_ovr.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/warn_ovr.gif
deleted file mode 100644
index 6f46bf9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/images/warn_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/package.html
deleted file mode 100644
index 7e6c849..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/package.html
+++ /dev/null
@@ -1,51 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides classes that help communicate proper content for fields in dialogs and wizards.
-<h2>
-Package Specification</h2>
-<p>
-This package provides classes that can be used to guide a dialog user through choosing
-appropriate content for fields in a dialog or wizard.
-<p>
-A <tt>ContentProposalAdapter</tt> can be attached to an arbitrary control to provide 
-a popup showing content proposals.  These proposals appear when the defined
-assist keystroke is invoked.  The <tt>ContentProposalAdapter</tt> manages the creation, 
-hiding, and showing of the proposal popup, as well as the proper handling of key events
-between the adapted control and its popup.  Implementors of <tt>IControlContentAdapter</tt>
-allow the adapter to set and retrieve the contents of the supplied control.
-</p>
-<p>
-An <tt>AutoCompleteField</tt> configures a <tt>ContentProposalAdapter</tt> in a manner
-that supports automatic field completion popups that filter based on the control's
-contents.
-</p>
-<p>
-<tt>ControlDecoration</tt> can be used to decorate an arbitrary control with 
-an image that communicates information about the control's content.  Decorations can be
-used to show additional information about a field, such as its status, or a cue
-that shows availability of content proposals.  Decorations are defined in pre-defined
-locations relative to the control, and can be set up to show at all times, or only
-when the control has focus.  It is up to the client to ensure there is enough
-space allocated to render the control decoration.  Decorations can optionally show 
-descriptive text when the user hovers over them.  
-</p>
-<p>
-<tt>DecoratedField</tt> can also be used to decorate a control.  The main difference
-is that decorated fields reserve space for multiple decorations in particular
-locations around the control.  To do this, the field manages the creation of the 
-field's control, using a specialized layout to ensure there is adequate space 
-reserved for decorations around the control. Other than using the field to manage 
-the decorations themselves, clients are expected to interact 
-directly with the control.  
-</p>
-
-<p>Note: None of the classes in this package maintain global state.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/images/dots_button.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/images/dots_button.gif
deleted file mode 100644
index 5552219..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/images/dots_button.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/InternalPolicy.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/InternalPolicy.java
deleted file mode 100644
index 94d354d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/InternalPolicy.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.internal;
-
-
-/**
- * Internal class used for non-API debug flags.
- * 
- * @since 3.3
- */
-public class InternalPolicy {
-
-	/**
-	 * (NON-API) A flag to indicate whether reentrant viewer calls should always be
-	 * logged. If false, only the first reentrant call will cause a log entry.
-	 * 
-	 * @since 3.3
-	 */
-	public static boolean DEBUG_LOG_REENTRANT_VIEWER_CALLS = false;
-
-	/**
-	 * (NON-API) A flag to indicate whether label provider changed notifications
-	 * should always be logged when the underlying control has been disposed. If
-	 * false, only the first notification when disposed will cause a log entry.
-	 * 
-	 * @since 3.5
-	 */
-	public static boolean DEBUG_LOG_LABEL_PROVIDER_NOTIFICATIONS_WHEN_DISPOSED = false;
-	
-	/**
-	 * (NON-API) A flag to indicate whether the JFace bundle is running inside an OSGi
-	 * container
-	 * 
-	 * @since 3.5
-	 */
-	public static boolean OSGI_AVAILABLE; // default value is false
-	
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/JFaceActivator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/JFaceActivator.java
deleted file mode 100644
index 3732e4d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/JFaceActivator.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.internal;
-
-import org.osgi.framework.*;
-
-/**
- * JFaceActivator is the activator class for the JFace plug-in when it is being used
- * within a full Eclipse install.
- * @since 3.3
- *
- */
-public class JFaceActivator implements BundleActivator {
-
-	private static BundleContext bundleContext;
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		bundleContext = context;
-		InternalPolicy.OSGI_AVAILABLE = true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		InternalPolicy.OSGI_AVAILABLE = false;
-		bundleContext = null;
-	}
-
-	/**
-	 * Return the bundle context for this bundle, or <code>null</code> if
-	 * there is not one. (for instance if the bundle is not activated or we aren't
-	 * running OSGi.
-	 * 
-	 * @return the bundle context or <code>null</code>
-	 */
-	public static BundleContext getBundleContext() {
-		return bundleContext;
-	}
-
-	/**
-	 * Return the Bundle object for JFace. Returns <code>null</code> if it is not
-	 * available.
-	 * 
-	 * @return the bundle or <code>null</code>
-	 */
-	public static Bundle getBundle() {
-		return bundleContext == null ? null : bundleContext.getBundle();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/CoolBarManager2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/CoolBarManager2.java
deleted file mode 100644
index a76b80d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/CoolBarManager2.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.jface.internal.provisional.action;
-
-import org.eclipse.jface.action.CoolBarManager;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.CoolBar;
-
-/**
- * Extends <code>CoolBarManager</code> to implement <code>ICoolBarManager2</code>
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
-*/
-public class CoolBarManager2 extends CoolBarManager implements ICoolBarManager2 {
-
-    /**
-     * Creates a new cool bar manager with the default style. Equivalent to
-     * <code>CoolBarManager(SWT.NONE)</code>.
-     */
-    public CoolBarManager2() {
-        super();
-    }
-
-    /**
-     * Creates a cool bar manager for an existing cool bar control. This
-     * manager becomes responsible for the control, and will dispose of it when
-     * the manager is disposed.
-     * 
-     * @param coolBar
-     *            the cool bar control
-     */
-    public CoolBarManager2(CoolBar coolBar) {
-        super(coolBar);
-    }
-
-    /**
-     * Creates a cool bar manager with the given SWT style. Calling <code>createControl</code>
-     * will create the cool bar control.
-     * 
-     * @param style
-     *            the cool bar item style; see
-     *            {@link org.eclipse.swt.widgets.CoolBar CoolBar}for for valid
-     *            style bits
-     */
-    public CoolBarManager2(int style) {
-       super(style);
-    }
-    
-    /**
-     * Creates and returns this manager's cool bar control. Does not create a
-     * new control if one already exists.
-     * 
-     * @param parent
-     *            the parent control
-     * @return the cool bar control
-	 * @since 3.2
-     */
-    public Control createControl2(Composite parent) {
-        return createControl(parent);
-    }
-    
-    /**
-     * Returns the control for this manager.
-     * 
-     * @return the control, or <code>null</code> if none
-	 * @since 3.2
-     */
-    public Control getControl2() {
-        return getControl();
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ICoolBarManager2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ICoolBarManager2.java
deleted file mode 100644
index f1be758..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ICoolBarManager2.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.internal.provisional.action;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IContributionManagerOverrides;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Extends <code>ICoolBarManager</code> to allow clients to be decoupled
- * from the actual kind of control used.
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
- */
-public interface ICoolBarManager2 extends ICoolBarManager {
-
-    /**
-     * Creates and returns this manager's control. Does not create a
-     * new control if one already exists.
-     * 
-     * 
-     * @param parent
-     *            the parent control
-     * @return the control
-	 * @since 3.2
-     */
-    public Control createControl2(Composite parent);
-
-    /**
-     * Returns the bar control for this manager.
-     * 
-	 * <p>
-	 * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
-	 * part of a work in progress. There is a guarantee neither that this API will
-	 * work nor that it will remain the same. Please do not use this API without
-	 * consulting with the Platform/UI team.
-	 * </p>
-     *  
-     * @return the bar control, or <code>null</code> if none
-	 * @since 3.2
-     */
-    public Control getControl2();
-
-    /**
-     * Synchronizes the visual order of the cool items in the control with this
-     * manager's internal data structures. This method should be called before
-     * requesting the order of the contribution items to ensure that the order
-     * is accurate.
-     * <p>
-     * Note that <code>update()</code> and <code>refresh()</code> are
-     * converses: <code>update()</code> changes the visual order to match the
-     * internal structures, and <code>refresh</code> changes the internal
-     * structures to match the visual order.
-     * </p>
-     * 
-	 * <p>
-	 * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
-	 * part of a work in progress. There is a guarantee neither that this API will
-	 * work nor that it will remain the same. Please do not use this API without
-	 * consulting with the Platform/UI team.
-	 * </p>
-     * 
-	 * @since 3.2
-     */
-    public void refresh();
-    
-    /**
-	 * Disposes the resources for this manager.
-     * 
-	 * <p>
-	 * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
-	 * part of a work in progress. There is a guarantee neither that this API will
-	 * work nor that it will remain the same. Please do not use this API without
-	 * consulting with the Platform/UI team.
-	 * </p>
-     * 
-     * @since 3.2 
-     */
-    public void dispose();
-
-    /**
-     * Restores the canonical order of this cool bar manager. The canonical
-     * order is the order in which the contribution items where added.
-     * 
-	 * <p>
-	 * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
-	 * part of a work in progress. There is a guarantee neither that this API will
-	 * work nor that it will remain the same. Please do not use this API without
-	 * consulting with the Platform/UI team.
-	 * </p>
-     * 
-	 * @since 3.2     
-	 */
-    public void resetItemOrder();
-
-    /**
-     * Replaces the current items with the given items.
-     * Forces an update.
-     * 
-	 * <p>
-	 * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
-	 * part of a work in progress. There is a guarantee neither that this API will
-	 * work nor that it will remain the same. Please do not use this API without
-	 * consulting with the Platform/UI team.
-	 * </p>
-     * 
-     * @param newItems the items with which to replace the current items
-     * @since 3.2
-	 */
-    public void setItems(IContributionItem[] newItems);
-    
-	/**
-	 * Sets the overrides for this contribution manager
-	 * 
-	 * @param newOverrides
-	 *            the overrides for the items of this manager
-	 * @since 3.5
-	 */
-	public void setOverrides(IContributionManagerOverrides newOverrides);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarContributionItem.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarContributionItem.java
deleted file mode 100644
index cec2a35..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarContributionItem.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.jface.internal.provisional.action;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IToolBarManager;
-
-/**
- * The intention of this interface is to provide in interface for 
- * ToolBarContributionItem so that the implementation can be replaced.
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
- */
-public interface IToolBarContributionItem extends IContributionItem {
-
-    /**
-     * Returns the current height of the corresponding cool item.
-     * 
-     * @return the current height
-     */
-    public int getCurrentHeight();
-
-    /**
-     * Returns the current width of the corresponding cool item.
-     * 
-     * @return the current size
-     */
-    public int getCurrentWidth();
-
-    /**
-     * Returns the minimum number of tool items to show in the cool item.
-     * 
-     * @return the minimum number of tool items to show, or <code>SHOW_ALL_ITEMS</code>
-     *         if a value was not set
-     * @see #setMinimumItemsToShow(int)
-     */
-    public int getMinimumItemsToShow();
-    
-    /**
-     * Returns whether chevron support is enabled.
-     * 
-     * @return <code>true</code> if chevron support is enabled, <code>false</code>
-     *         otherwise
-     */
-    public boolean getUseChevron();
-    
-    /**
-     * Sets the current height of the cool item. Update(SIZE) should be called
-     * to adjust the widget.
-     * 
-     * @param currentHeight
-     *            the current height to set
-     */
-    public void setCurrentHeight(int currentHeight);
-
-    /**
-     * Sets the current width of the cool item. Update(SIZE) should be called
-     * to adjust the widget.
-     * 
-     * @param currentWidth
-     *            the current width to set
-     */
-    public void setCurrentWidth(int currentWidth);
-
-    /**
-     * Sets the minimum number of tool items to show in the cool item. If this
-     * number is less than the total tool items, a chevron will appear and the
-     * hidden tool items appear in a drop down menu. By default, all the tool
-     * items are shown in the cool item.
-     * 
-     * @param minimumItemsToShow
-     *            the minimum number of tool items to show.
-     * @see #getMinimumItemsToShow()
-     * @see #setUseChevron(boolean)
-     */
-    public void setMinimumItemsToShow(int minimumItemsToShow);
-
-    /**
-     * Enables or disables chevron support for the cool item. By default,
-     * chevron support is enabled.
-     * 
-     * @param value
-     *            <code>true</code> to enable chevron support, <code>false</code>
-     *            otherwise.
-     */
-    public void setUseChevron(boolean value);
-    
-    /**
-     * Returns the internal tool bar manager of the contribution item.
-     * 
-     * @return the tool bar manager, or <code>null</code> if one is not
-     *         defined.
-     * @see IToolBarManager
-     */
-    public IToolBarManager getToolBarManager();
-    
-    /**
-     * Returns the parent contribution manager, or <code>null</code> if this 
-     * contribution item is not currently added to a contribution manager.
-     * 
-     * @return the parent contribution manager, or <code>null</code>
-     * 
-     * TODO may not need this, getToolBarManager may be enough.
-     */
-    public IContributionManager getParent();
-    
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarManager2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarManager2.java
deleted file mode 100644
index 5f65571..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/IToolBarManager2.java
+++ /dev/null
@@ -1,108 +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.jface.internal.provisional.action;
-
-import org.eclipse.jface.action.IContributionManagerOverrides;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * The <code>IToolBarManager2</code> extends <code>IToolBarManager</code> to
- * allow clients to be isolated from the actual kind of SWT control used by the
- * manager.
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
- */
-public interface IToolBarManager2 extends IToolBarManager {
-
-	/**
-	 * The property id for changes to the control's layout
-	 */
-	public static final String PROP_LAYOUT = "PROP_LAYOUT"; //$NON-NLS-1$
-
-	/**
-	 * Creates and returns this manager's toolbar control. Does not create a new
-	 * control if one already exists.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @return the toolbar control
-	 */
-	public ToolBar createControl(Composite parent);
-
-	/**
-	 * Creates and returns this manager's control. Does not create a new control
-	 * if one already exists.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @return the control
-	 */
-	public Control createControl2(Composite parent);
-
-	/**
-	 * Returns the toolbar control for this manager.
-	 * 
-	 * @return the toolbar control, or <code>null</code> if none
-	 */
-	public ToolBar getControl();
-
-	/**
-	 * Returns the control for this manager.
-	 * 
-	 * @return the control, or <code>null</code> if none
-	 */
-	public Control getControl2();
-
-	/**
-	 * Disposes the resources for this manager.
-	 */
-	public void dispose();
-
-	/**
-	 * Returns the item count of the control used by this manager.
-	 * 
-	 * @return the number of items in the control
-	 */
-	public int getItemCount();
-
-	/**
-	 * Registers a property change listner with this manager.
-	 * 
-	 * @param listener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener);
-
-	/**
-	 * Removes a property change listner from this manager.
-	 * 
-	 * @param listener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener);
-
-	/**
-	 * Sets the overrides for this contribution manager
-	 * 
-	 * @param newOverrides
-	 *            the overrides for the items of this manager
-	 */
-	public void setOverrides(IContributionManagerOverrides newOverrides);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarContributionItem2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarContributionItem2.java
deleted file mode 100644
index 2ff1239..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarContributionItem2.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.jface.internal.provisional.action;
-
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.ToolBarContributionItem;
-
-/**
- * Extends <code>ToolBarContributionItem</code> to implement <code>IToolBarContributionItem</code>.
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
- */
-public class ToolBarContributionItem2 extends ToolBarContributionItem implements
-		IToolBarContributionItem {
-
-	/**
-	 * 
-	 */
-	public ToolBarContributionItem2() {
-		super();
-	}
-
-	/**
-	 * @param toolBarManager
-	 */
-	public ToolBarContributionItem2(IToolBarManager toolBarManager) {
-		super(toolBarManager);
-	}
-
-	/**
-	 * @param toolBarManager
-	 * @param id
-	 */
-	public ToolBarContributionItem2(IToolBarManager toolBarManager, String id) {
-		super(toolBarManager, id);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarManager2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarManager2.java
deleted file mode 100644
index d026d64..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/internal/provisional/action/ToolBarManager2.java
+++ /dev/null
@@ -1,170 +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.jface.internal.provisional.action;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * Extends <code>ToolBarManager</code> to implement <code>IToolBarManager2</code>.
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
- */
-public class ToolBarManager2 extends ToolBarManager implements IToolBarManager2 {
-
-	/**
-	 * A collection of objects listening to changes to this manager. This
-	 * collection is <code>null</code> if there are no listeners.
-	 */
-	private transient ListenerList listenerList = null;
-	
-	/**
-	 * Creates a new tool bar manager with the default SWT button style. Use the
-	 * <code>createControl</code> method to create the tool bar control.
-	 */
-	public ToolBarManager2() {
-		super();
-	}
-
-	/**
-	 * Creates a tool bar manager with the given SWT button style. Use the
-	 * <code>createControl</code> method to create the tool bar control.
-	 * 
-	 * @param style
-	 *            the tool bar item style
-	 * @see org.eclipse.swt.widgets.ToolBar for valid style bits
-	 */
-	public ToolBarManager2(int style) {
-		super(style);
-	}
-
-	/**
-	 * Creates a tool bar manager for an existing tool bar control. This manager
-	 * becomes responsible for the control, and will dispose of it when the
-	 * manager is disposed.
-	 * 
-	 * @param toolbar
-	 *            the tool bar control
-	 */
-	public ToolBarManager2(ToolBar toolbar) {
-		super(toolbar);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IToolBarManager2#createControl2(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createControl2(Composite parent) {
-		return createControl(parent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IToolBarManager2#getControl2()
-	 */
-	public Control getControl2() {
-		return getControl();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IToolBarManager2#getItemCount()
-	 */
-	public int getItemCount() {
-		ToolBar toolBar = getControl();
-		if (toolBar == null || toolBar.isDisposed()) {
-			return 0;
-		}
-		return toolBar.getItemCount();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IToolBarManager2#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		if (listenerList == null) {
-			listenerList = new ListenerList(ListenerList.IDENTITY);
-		}
-
-		listenerList.add(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.IToolBarManager2#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		if (listenerList != null) {
-			listenerList.remove(listener);
-
-			if (listenerList.isEmpty()) {
-				listenerList = null;
-			}
-		}
-	}
-	
-	/**
-	 * @return the listeners attached to this event manager.
-	 * The listeners currently attached; may be empty, but never
-	 * null.
-	 * 
-	 */
-	protected final Object[] getListeners() {
-		final ListenerList list = listenerList;
-		if (list == null) {
-			return new Object[0];
-		}
-
-		return list.getListeners();
-	}
-
-	/*
-	 * Notifies any property change listeners that a property has changed. Only
-	 * listeners registered at the time this method is called are notified.
-	 */
-	private void firePropertyChange(final PropertyChangeEvent event) {
-		final Object[] list = getListeners();
-		for (int i = 0; i < list.length; ++i) {
-			((IPropertyChangeListener) list[i]).propertyChange(event);
-		}
-	}
-
-	/*
-	 * Notifies any property change listeners that a property has changed. Only
-	 * listeners registered at the time this method is called are notified. This
-	 * method avoids creating an event object if there are no listeners
-	 * registered, but calls firePropertyChange(PropertyChangeEvent) if there are.
-	 */
-	private void firePropertyChange(final String propertyName,
-			final Object oldValue, final Object newValue) {
-		if (listenerList != null) {
-			firePropertyChange(new PropertyChangeEvent(this, propertyName,
-					oldValue, newValue));
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.ToolBarManager#relayout(org.eclipse.swt.widgets.ToolBar, int, int)
-	 */
-	protected void relayout(ToolBar layoutBar, int oldCount, int newCount) {
-		super.relayout(layoutBar, oldCount, newCount);
-		firePropertyChange(PROP_LAYOUT, new Integer(oldCount), new Integer(newCount));
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/AbstractColumnLayout.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/AbstractColumnLayout.java
deleted file mode 100644
index 829f906..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/AbstractColumnLayout.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation (original file org.eclipse.ui.texteditor.templates.ColumnLayout)
- *     Tom Schindl <tom.schindl@bestsolution.at> - refactored to be widget independent (bug 171824)
- *                                               - fix for bug 178280, 184342, 184045, 208014, 214532
- *     Micah Hainline <micah_hainline@yahoo.com> - fix in bug: 208335
- *******************************************************************************/
-package org.eclipse.jface.layout;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.TableLayout;
-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.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The AbstractColumnLayout is a {@link Layout} used to set the size of a table
- * in a consistent way even during a resize unlike a {@link TableLayout} which
- * only sets initial sizes.
- * 
- * <p>
- * <b>You can only add the layout to a container whose only child is the
- * table/tree control you want the layouts applied to.</b>
- * </p>
- * 
- * @since 3.4
- */
-public abstract class AbstractColumnLayout extends Layout {
-	private static int COLUMN_TRIM;
-	static {
-		if (Util.isWindows()) {
-			COLUMN_TRIM = 4;
-		} else if (Util.isMac()) {
-			COLUMN_TRIM = 24;
-		} else {
-			COLUMN_TRIM = 3;
-		}
-	}
-
-	static final boolean IS_GTK = Util.isGtk();
-
-	/**
-	 * Key used to restore the layout data in the columns data-slot
-     * @since 3.5
-	 */
-	protected static final String LAYOUT_DATA = Policy.JFACE + ".LAYOUT_DATA"; //$NON-NLS-1$
-
-	private boolean inupdateMode = false;
-
-	private boolean relayout = true;
-
-	private Listener resizeListener = new Listener() {
-
-		public void handleEvent(Event event) {
-			if (!inupdateMode) {
-				updateColumnData(event.widget);
-			}
-		}
-
-	};
-
-	/**
-	 * Adds a new column of data to this table layout.
-	 * 
-	 * @param column
-	 *            the column
-	 * 
-	 * @param data
-	 *            the column layout data
-	 */
-	public void setColumnData(Widget column, ColumnLayoutData data) {
-
-		if (column.getData(LAYOUT_DATA) == null) {
-			column.addListener(SWT.Resize, resizeListener);
-		}
-
-		column.setData(LAYOUT_DATA, data);
-	}
-
-	/**
-	 * Compute the size of the table or tree based on the ColumnLayoutData and
-	 * the width and height hint.
-	 * 
-	 * @param scrollable
-	 *            the widget to compute
-	 * @param wHint
-	 *            the width hint
-	 * @param hHint
-	 *            the height hint
-	 * @return Point where x is the width and y is the height
-	 */
-	private Point computeTableTreeSize(Scrollable scrollable, int wHint,
-			int hHint) {
-		Point result = scrollable.computeSize(wHint, hHint);
-
-		int width = 0;
-		int size = getColumnCount(scrollable);
-		for (int i = 0; i < size; ++i) {
-			ColumnLayoutData layoutData = getLayoutData(scrollable, i);
-			if (layoutData instanceof ColumnPixelData) {
-				ColumnPixelData col = (ColumnPixelData) layoutData;
-				width += col.width;
-				if (col.addTrim) {
-					width += getColumnTrim();
-				}
-			} else if (layoutData instanceof ColumnWeightData) {
-				ColumnWeightData col = (ColumnWeightData) layoutData;
-				width += col.minimumWidth;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-		if (width > result.x)
-			result.x = width;
-
-		return result;
-	}
-
-	/**
-	 * Layout the scrollable based on the supplied width and area. Only increase
-	 * the size of the scrollable if increase is <code>true</code>.
-	 * 
-	 * @param scrollable
-	 * @param width
-	 * @param area
-	 * @param increase
-	 */
-	private void layoutTableTree(final Scrollable scrollable, final int width,
-			final Rectangle area, final boolean increase) {
-		final int numberOfColumns = getColumnCount(scrollable);
-		final int[] widths = new int[numberOfColumns];
-
-		final int[] weightColumnIndices = new int[numberOfColumns];
-		int numberOfWeightColumns = 0;
-
-		int fixedWidth = 0;
-		int totalWeight = 0;
-
-		// First calc space occupied by fixed columns
-		for (int i = 0; i < numberOfColumns; i++) {
-			ColumnLayoutData col = getLayoutData(scrollable, i);
-			if (col instanceof ColumnPixelData) {
-				ColumnPixelData cpd = (ColumnPixelData) col;
-				int pixels = cpd.width;
-				if (cpd.addTrim) {
-					pixels += getColumnTrim();
-				}
-				widths[i] = pixels;
-				fixedWidth += pixels;
-			} else if (col instanceof ColumnWeightData) {
-				ColumnWeightData cw = (ColumnWeightData) col;
-				weightColumnIndices[numberOfWeightColumns] = i;
-				numberOfWeightColumns++;
-				totalWeight += cw.weight;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data"); //$NON-NLS-1$
-			}
-		}
-
-		boolean recalculate;
-		do {
-			recalculate = false;
-			for (int i = 0; i < numberOfWeightColumns; i++) {
-				int colIndex = weightColumnIndices[i];
-				ColumnWeightData cw = (ColumnWeightData) getLayoutData(
-						scrollable, colIndex);
-				final int minWidth = cw.minimumWidth;
-				final int allowedWidth = totalWeight == 0 ? 0
-						: (width - fixedWidth) * cw.weight / totalWeight;
-				if (allowedWidth < minWidth) {
-					/*
-					 * if the width assigned by weight is less than the minimum,
-					 * then treat this column as fixed, remove it from weight
-					 * calculations, and recalculate other weights.
-					 */
-					numberOfWeightColumns--;
-					totalWeight -= cw.weight;
-					fixedWidth += minWidth;
-					widths[colIndex] = minWidth;
-					System.arraycopy(weightColumnIndices, i + 1,
-							weightColumnIndices, i, numberOfWeightColumns - i);
-					recalculate = true;
-					break;
-				}
-				widths[colIndex] = allowedWidth;
-			}
-		} while (recalculate);
-
-		if (increase) {
-			scrollable.setSize(area.width, area.height);
-		}
-
-		inupdateMode = true;
-		setColumnWidths(scrollable, widths);
-		scrollable.update();
-		inupdateMode = false;
-
-		if (!increase) {
-			scrollable.setSize(area.width, area.height);
-		}
-	}
-
-	/*
-	 * (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) {
-		return computeTableTreeSize(getControl(composite), wHint, hHint);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite,
-	 * boolean)
-	 */
-	protected void layout(Composite composite, boolean flushCache) {
-		Rectangle area = composite.getClientArea();
-		Scrollable table = getControl(composite);
-		int tableWidth = table.getSize().x;
-		int trim = computeTrim(area, table, tableWidth);
-		int width = Math.max(0, area.width - trim);
-
-		if (width > 1)
-			layoutTableTree(table, width, area, tableWidth < area.width);
-
-		// For the first time we need to relayout because Scrollbars are not
-		// calculate appropriately
-		if (relayout) {
-			relayout = false;
-			composite.layout();
-		}
-	}
-
-	/**
-	 * Compute the area required for trim.
-	 * 
-	 * @param area
-	 * @param scrollable
-	 * @param currentWidth
-	 * @return int
-	 */
-	private int computeTrim(Rectangle area, Scrollable scrollable,
-			int currentWidth) {
-		int trim;
-
-		if (currentWidth > 1) {
-			trim = currentWidth - scrollable.getClientArea().width;
-		} else {
-			// initially, the table has no extend and no client area - use the
-			// border with
-			// plus some padding as educated guess
-			trim = 2 * scrollable.getBorderWidth() + 1;
-		}
-
-		return trim;
-	}
-
-	/**
-	 * Get the control being laid out.
-	 * 
-	 * @param composite
-	 *            the composite with the layout
-	 * @return {@link Scrollable}
-	 */
-	Scrollable getControl(Composite composite) {
-		return (Scrollable) composite.getChildren()[0];
-	}
-
-	/**
-	 * Get the number of columns for the receiver.
-	 * 
-	 * @param tableTree
-	 *            the control
-	 * 
-	 * @return the number of columns
-     * @since 3.5
-	 */
-	protected abstract int getColumnCount(Scrollable tableTree);
-
-	/**
-	 * Set the widths of the columns.
-	 * 
-	 * @param tableTree
-	 *            the control
-	 * 
-	 * @param widths
-	 *            the widths of the column
-     * @since 3.5
-	 */
-	protected abstract void setColumnWidths(Scrollable tableTree, int[] widths);
-
-	/**
-	 * Get the layout data for a column
-	 * 
-	 * @param tableTree
-	 *            the control
-	 * @param columnIndex
-	 *            the column index
-	 * @return the layout data, might <b>not</b> null
-     * @since 3.5
-	 */
-	protected abstract ColumnLayoutData getLayoutData(Scrollable tableTree,
-			int columnIndex);
-
-	/**
-	 * Update the layout data for a column
-	 * 
-	 * @param column
-	 *            the column
-     * @since 3.5
-	 */
-	protected abstract void updateColumnData(Widget column);
-
-	/**
-	 * The number of extra pixels taken as horizontal trim by the table column.
-	 * To ensure there are N pixels available for the content of the column,
-	 * assign N+COLUMN_TRIM for the column width.
-	 * 
-	 * @return the trim used by the columns
-	 * @since 3.4
-	 */
-	protected int getColumnTrim() {
-		return COLUMN_TRIM;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridDataFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridDataFactory.java
deleted file mode 100644
index e2f4430..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridDataFactory.java
+++ /dev/null
@@ -1,478 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Xenos, IBM - initial implementation, bug 178888
- *******************************************************************************/
-package org.eclipse.jface.layout;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This class provides a convienient shorthand for creating and initializing
- * GridData. This offers several benefits over creating GridData normal way:
- * 
- * <ul>
- * <li>The same factory can be used many times to create several GridData instances</li>
- * <li>The setters on GridDataFactory all return "this", allowing them to be chained</li> 
- * <li>GridDataFactory uses vector setters (it accepts Points), making it easy to
- *     set X and Y values together</li>
- * </ul>
- * 
- * <p>
- * GridDataFactory instances are created using one of the static methods on this class. 
- * </p>
- * 
- * <p>
- * Example usage:
- * </p>
- * <code><pre>
- * 
- * ////////////////////////////////////////////////////////////
- * // Example 1: Typical grid data for a non-wrapping label
- * 
- *     // GridDataFactory version
- *     GridDataFactory.fillDefaults().applyTo(myLabel);
- * 
- *     // Equivalent SWT version
- *     GridData labelData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_FILL);
- *     myLabel.setLayoutData(labelData);
- * 
- * ///////////////////////////////////////////////////////////
- * // Example 2: Typical grid data for a wrapping label
- * 
- *     // GridDataFactory version
- *     GridDataFactory.fillDefaults()
- *          .align(SWT.FILL, SWT.CENTER)
- *    	    .hint(150, SWT.DEFAULT)
- *    	    .grab(true, false)
- *          .applyTo(wrappingLabel);
- *      
- *     // Equivalent SWT version
- *     GridData wrappingLabelData = new GridData(GridData.FILL_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER);
- *     wrappingLabelData.minimumWidth = 1;
- *     wrappingLabelData.widthHint = 150;
- *     wrappingLabel.setLayoutData(wrappingLabelData);
- * 
- * //////////////////////////////////////////////////////////////
- * // Example 3: Typical grid data for a scrollable control (a list box, tree, table, etc.)
- * 
- *     // GridDataFactory version
- *     GridDataFactory.fillDefaults().grab(true, true).hint(150, 150).applyTo(listBox);
- * 
- *     // Equivalent SWT version
- *     GridData listBoxData = new GridData(GridData.FILL_BOTH);
- *     listBoxData.widthHint = 150;
- *     listBoxData.heightHint = 150;
- *     listBoxData.minimumWidth = 1;
- *     listBoxData.minimumHeight = 1;
- *     listBox.setLayoutData(listBoxData);
- * 
- * /////////////////////////////////////////////////////////////
- * // Example 4: Typical grid data for a button
- *
- *     // GridDataFactory version
- *     Point preferredSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, false);
- *     Point hint = Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize);
- *     GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(hint).applyTo(button);
- *
- *     // Equivalent SWT version
- *     Point preferredSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, false);
- *     Point hint = Geometry.max(LayoutConstants.getMinButtonSize(), preferredSize);
- *     GridData buttonData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_CENTER);
- *     buttonData.widthHint = hint.x;
- *     buttonData.heightHint = hint.y;
- *     button.setLayoutData(buttonData);
- *     
- * /////////////////////////////////////////////////////////////
- * // Example 5: Generated GridData
- *
- *     // Generates GridData a wrapping label that spans 2 columns
- *     GridDataFactory.generate(wrappingLabel, 2, 1);
- *     
- *     // Generates GridData for a listbox. and adjusts the preferred size to 300x400 pixels
- *     GridDataFactory.defaultsFor(listBox).hint(300, 400).applyTo(listBox);
- *     
- *     // Generates GridData equivalent to example 4
- *     GridDataFactory.generate(button, 1, 1);
- *          
- * </pre></code>
- * 
- * @since 3.2
- */
-public final class GridDataFactory {
-    private GridData data;
-    
-    /**
-     * Creates a GridDataFactory that creates copes of the given GridData. 
-     * 
-     * @param d template GridData to copy
-     */
-    private GridDataFactory(GridData d) {
-        this.data = d;
-    }
-    
-    /**
-     * Creates a new GridDataFactory initialized with the SWT defaults.
-     * This factory will generate GridData that is equivalent to 
-     * "new GridData()".
-     * 
-     * <p>
-     * Initial values are:
-     * </p>
-     * 
-     * <ul>
-     * <li>align(SWT.BEGINNING, SWT.CENTER)</li>
-     * <li>exclude(false)</li>
-     * <li>grab(false, false)</li>
-     * <li>hint(SWT.DEFAULT, SWT.DEFAULT)</li>
-     * <li>indent(0,0)</li>
-     * <li>minSize(0,0)</li>
-     * <li>span(1,1)</li>
-     * </ul>
-     * 
-     * @return a new GridDataFactory instance
-     * @see #fillDefaults()
-     */
-    public static GridDataFactory swtDefaults() {
-    	return new GridDataFactory(new GridData());
-    }
-    
-    /**
-     * Creates a new GridDataFactory that creates copies of the given GridData
-     * by default.
-     * 
-     * @param data GridData to copy
-     * @return a new GridDataFactory that creates copies of the argument by default
-     */
-    public static GridDataFactory createFrom(GridData data) {
-    	return new GridDataFactory(copyData(data));
-    }
-    
-    /**
-     * Creates a GridDataFactory initialized with defaults that will cause
-     * the control to fill its cell. The minimum size is set to the smallest possible
-     * minimum size supported by SWT. Currently, the smallest supported minimum size
-     * is (1,1) so this is the default. If GridLayout ever adds support for grid data
-     * with no minimum size, this will be changed to 0,0 in the future. 
-     * 
-     * <p>
-     * Initial values are:
-     * </p>
-     * 
-     * <ul>
-     * <li>align(SWT.FILL, SWT.FILL)</li>
-     * <li>exclude(false)</li>
-     * <li>grab(false, false)</li>
-     * <li>hint(SWT.DEFAULT, SWT.DEFAULT)</li>
-     * <li>indent(0,0)</li>
-     * <li>minSize(1,1)</li>
-     * <li>span(1,1)</li>
-     * </ul>
-     *  
-     * @return a GridDataFactory that makes controls fill their grid by default
-     * 
-     * @see #swtDefaults()
-     */
-    public static GridDataFactory fillDefaults() {
-    	GridData data = new GridData();
-        data.minimumWidth = 1;
-        data.minimumHeight = 1;
-        data.horizontalAlignment = SWT.FILL;
-        data.verticalAlignment = SWT.FILL;
-        
-    	return new GridDataFactory(data);
-    }
-    
-    /**
-     * Returns a GridDataFactory initialized with heuristicly generated defaults for the given control.
-     * To be precise, this method picks the default values that GridLayoutFactory.generateLayout
-     * would have assigned to the control. Does not attach GridData to the control. Callers must
-     * additionally call applyTo(theControl) if they wish to use the generated values.
-     * 
-     * <p>
-     * This method is intended for situations where generateLayout is generating layout data
-     * for a particular control that is not quite right for the desired layout.
-     * This allows callers to start with the generated values and tweak one or two settings
-     * before applying the GridData to the control.
-     * </p> 
-     * 
-     * @see GridLayoutFactory#generateLayout(org.eclipse.swt.widgets.Composite)
-     * @param theControl 
-     * @return a GridLayoutFactory initialized with defaults that GridLayoutFactory would have 
-     * @since 3.3
-     */
-    public static GridDataFactory defaultsFor(Control theControl) {
-    	return LayoutGenerator.defaultsFor(theControl);
-    }
-    
-    /**
-     * Generates layout data to the given control, given the number of cells
-     * spanned by the control. Attaches a GridData to the control. This method 
-     * allows generated layout data to be used with controls that span multiple cells. 
-     * <p>
-     * The generated layout data is the same as what would be generated by 
-     * GridLayoutFactory.generateLayout, except that the span is configurable
-     * </p>  
-     * 
-     * @see GridLayoutFactory#generateLayout(org.eclipse.swt.widgets.Composite)
-     * @param theControl
-     * @param hSpan number of columns spanned by the control
-     * @param vSpan number of rows spanned by the control
-     * @since 3.3
-     */
-    public static void generate(Control theControl, int hSpan, int vSpan) {
-    	defaultsFor(theControl).span(hSpan, vSpan).applyTo(theControl);
-    }
-
-    /**
-     * Generates layout data to the given control, given the number of cells
-     * spanned by the control. Attaches GridData to the control. This method 
-     * allows generated layout data to be used with controls that span multiple cells. 
-     * <p>
-     * The generated layout data is the same as what would be generated by 
-     * GridLayoutFactory.generateLayout, except that the span is configurable
-     * </p>  
-     * 
-     * @see GridLayoutFactory#generateLayout(org.eclipse.swt.widgets.Composite)
-     * @param theControl
-     * @param span The x coordinate indicates the number of
-     * columns spanned, and the y coordinate indicates the number of rows.
-     * @since 3.3
-     */
-    public static void generate(Control theControl, Point span) {
-    	defaultsFor(theControl).span(span).applyTo(theControl);
-    }
-    
-    /**
-     * Sets the GridData span. The span controls how many cells
-     * are filled by the control. 
-     * 
-     * @param hSpan number of columns spanned by the control
-     * @param vSpan number of rows spanned by the control
-     * @return this
-     */
-    public GridDataFactory span(int hSpan, int vSpan) {
-        data.horizontalSpan = hSpan;
-        data.verticalSpan = vSpan;
-        return this;
-    }
-
-    /**
-     * Sets the GridData span. The span controls how many cells
-     * are filled by the control. 
-     * 
-     * @param span the new span. The x coordinate indicates the number of
-     * columns spanned, and the y coordinate indicates the number of rows.
-     * @return this
-     */
-    public GridDataFactory span(Point span) {
-        data.horizontalSpan = span.x;
-        data.verticalSpan = span.y;
-        return this;
-    }
-
-    /**
-     * Sets the width and height hints. The width and height hints override
-     * the control's preferred size. If either hint is set to SWT.DEFAULT,
-     * the control's preferred size is used. 
-     * 
-     * @param xHint horizontal hint (pixels), or SWT.DEFAULT to use the control's preferred size
-     * @param yHint vertical hint (pixels), or SWT.DEFAULT to use the control's preferred size
-     * @return this
-     */
-    public GridDataFactory hint(int xHint, int yHint) {
-        data.widthHint = xHint;
-        data.heightHint = yHint;
-        return this;
-    }
-
-    /**
-     * Sets the width and height hints. The width and height hints override
-     * the control's preferred size. If either hint is set to SWT.DEFAULT,
-     * the control's preferred size is used.
-     * 
-     * @param hint size (pixels) to be used instead of the control's preferred size. If
-     * the x or y values are set to SWT.DEFAULT, the control's computeSize() method will
-     * be used to obtain that dimension of the preferred size.
-     * @return this
-     */
-    public GridDataFactory hint(Point hint) {
-        data.widthHint = hint.x;
-        data.heightHint = hint.y;
-        return this;
-    }
-
-    /**
-     * Sets the alignment of the control within its cell.
-     * 
-     * @param hAlign horizontal alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
-     * @param vAlign vertical alignment. One of SWT.BEGINNING, SWT.CENTER, SWT.END, or SWT.FILL.
-     * @return this
-     */
-    public GridDataFactory align(int hAlign, int vAlign) {
-    	if (hAlign != SWT.BEGINNING && hAlign != SWT.CENTER && hAlign != GridData.CENTER && hAlign != SWT.END && hAlign != GridData.END && hAlign != SWT.FILL && hAlign != SWT.LEFT && hAlign != SWT.RIGHT) {
-    		throw new IllegalArgumentException();
-    	}
-    	if (vAlign != SWT.BEGINNING && vAlign != SWT.CENTER && vAlign != GridData.CENTER && vAlign != SWT.END && vAlign != GridData.END && vAlign != SWT.FILL && vAlign != SWT.TOP && vAlign != SWT.BOTTOM) {
-    		throw new IllegalArgumentException();
-    	}
-        data.horizontalAlignment = hAlign;
-        data.verticalAlignment = vAlign;
-        return this;
-    }
-
-    /**
-     * Sets the indent of the control within the cell. Moves the position of the control
-     * by the given number of pixels. Positive values move toward the lower-right, negative
-     * values move toward the upper-left.
-     * 
-     * @param hIndent distance to move to the right (negative values move left)
-     * @param vIndent distance to move down (negative values move up)
-     * @return this
-     */
-    public GridDataFactory indent(int hIndent, int vIndent) {
-        data.horizontalIndent = hIndent;
-        data.verticalIndent = vIndent;
-        return this;
-    }
-
-    /**
-     * Sets the indent of the control within the cell. Moves the position of the control
-     * by the given number of pixels. Positive values move toward the lower-right, negative
-     * values move toward the upper-left.
-     * 
-     * @param indent offset to move the control
-     * @return this
-     */
-    public GridDataFactory indent(Point indent) {
-        data.horizontalIndent = indent.x;
-        data.verticalIndent = indent.y;
-        return this;
-    }
-
-    /**
-     * Determines whether extra horizontal or vertical space should be allocated to
-     * this control's column when the layout resizes. If any control in the column
-     * is set to grab horizontal then the whole column will grab horizontal space.
-     * If any control in the row is set to grab vertical then the whole row will grab
-     * vertical space.
-     * 
-     * @param horizontal true if the control's column should grow horizontally
-     * @param vertical true if the control's row should grow vertically
-     * @return this
-     */
-    public GridDataFactory grab(boolean horizontal, boolean vertical) {
-        data.grabExcessHorizontalSpace = horizontal;
-        data.grabExcessVerticalSpace = vertical;
-        return this;
-    }
-
-    /**
-     * Sets the minimum size for the control. The control will not be permitted
-     * to shrink below this size. Note: GridLayout treats a minimum size of 0
-     * as an undocumented special value, so the smallest possible minimum size 
-     * is a size of 1. A minimum size of SWT.DEFAULT indicates that the result
-     * of computeSize(int, int, boolean) should be used as the control's minimum
-     * size.
-     * 
-     * 
-     * @param minX minimum a value of 1 or more is a horizontal size of the control (pixels). 
-     *        SWT.DEFAULT indicates that the control's preferred size should be used. A size
-     *        of 0 has special semantics defined by GridLayout. 
-     * @param minY minimum a value of 1 or more is a vertical size of the control (pixels). SWT.DEFAULT
-     *        indicates that the control's preferred size should be used. A size
-     *        of 0 has special semantics defined by GridLayout.
-     * @return this
-     */
-    public GridDataFactory minSize(int minX, int minY) {
-        data.minimumWidth = minX;
-        data.minimumHeight = minY;
-        return this;
-    }
-
-    /**
-     * Sets the minimum size for the control. The control will not be permitted
-     * to shrink below this size. Note: GridLayout treats a minimum size of 0
-     * as an undocumented special value, so the smallest possible minimum size 
-     * is a size of 1. A minimum size of SWT.DEFAULT indicates that the result
-     * of computeSize(int, int, boolean) should be used as the control's minimum
-     * size.
-     * 
-     * @param min minimum size of the control
-     * @return this
-     */
-    public GridDataFactory minSize(Point min) {
-        data.minimumWidth = min.x;
-        data.minimumHeight = min.y;
-        return this;
-    }
-
-    /**
-     * Instructs the GridLayout to ignore this control when performing layouts. 
-     * 
-     * @param shouldExclude true iff the control should be excluded from layouts
-     * @return this
-     */
-    public GridDataFactory exclude(boolean shouldExclude) {
-        data.exclude = shouldExclude;
-        return this;
-    }
-
-    /**
-     * Creates a new GridData instance. All attributes of the GridData instance
-     * will be initialized by the factory.
-     * 
-     * @return a new GridData instance
-     */
-    public GridData create() {
-        return copyData(data);
-    }
-
-    /**
-     * Creates a copy of the receiver.
-     * 
-     * @return a copy of the receiver
-     */
-    public GridDataFactory copy() {
-    	return new GridDataFactory(create());
-    }
-    
-    /**
-     * Returns a copy of the given GridData 
-     * 
-     * @param data GridData to copy
-     * @return a copy of the argument
-     */
-    public static GridData copyData(GridData data) {
-        GridData newData = new GridData(data.horizontalAlignment, data.verticalAlignment, data.grabExcessHorizontalSpace, data.grabExcessVerticalSpace, data.horizontalSpan,
-                data.verticalSpan);
-        newData.exclude = data.exclude;
-        newData.heightHint = data.heightHint;
-        newData.horizontalIndent = data.horizontalIndent;
-        newData.minimumHeight = data.minimumHeight;
-        newData.minimumWidth = data.minimumWidth;
-        newData.verticalIndent = data.verticalIndent;
-        newData.widthHint = data.widthHint;
-
-        return newData;
-    }
-
-    /**
-     * Sets the layout data on the given control. Creates a new GridData instance and
-     * assigns it to the control by calling control.setLayoutData.
-     *  
-     * @param control control whose layout data will be initialized
-     */
-    public void applyTo(Control control) {
-        control.setLayoutData(create());
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridLayoutFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridLayoutFactory.java
deleted file mode 100644
index f956bfe..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/GridLayoutFactory.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Xenos, IBM - initial implementation, bug 178888
- *     Karsten Stoeckmann - bug 156982
- *******************************************************************************/
-package org.eclipse.jface.layout;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * GridLayoutFactory creates and initializes grid layouts. There are two ways to use GridLayoutFactory.
- * Normally, it is used as a shorthand for writing "new GridLayout()" and initializing a bunch 
- * of fields. In this case the main benefit is a more concise syntax and the ability to create more
- * than one identical GridLayout from the same factory. Changing a property of the factory will affect
- * future layouts created by the factory, but has no effect on layouts that have already been created.
- * 
- * <p>
- * GridLayoutFactory can also generate grid data for all the controls in a layout. This is done with
- * the generateLayout method. To use this feature:
- * </p>
- * 
- * <ol>
- * <li>Create the composite</li>
- * <li>Create all the controls in the composite</li>
- * <li>Call generateLayout</li>
- * </ol>
- * 
- * <p>
- * The order here is important. generateLayout must be called after all the child controls have
- * been created. generateLayout will not change any layout data that has already been attached
- * to a child control and it will not recurse into nested composites. 
- * </p>
- *
- * @since 3.2
- */
-public final class GridLayoutFactory {
-	
-	/**
-	 * Template layout. The factory will create copies of this layout. 
-	 */
-    private GridLayout l;
-
-    /**
-     * Creates a new GridLayoutFactory that will create copies of the given layout.
-     * 
-     * @param l layout to copy
-     */
-    private GridLayoutFactory(GridLayout l) {
-        this.l = l;
-    }
-
-    /**
-     * Creates a factory that creates copies of the given layout.
-     * 
-     * @param l layout to copy
-     * @return a new GridLayoutFactory instance that creates copies of the given layout
-     */
-    public static GridLayoutFactory createFrom(GridLayout l) {
-    	return new GridLayoutFactory(copyLayout(l));
-    }
-    
-    /**
-     * Creates a copy of the reciever.
-     * 
-     * @return a copy of the reciever
-     */
-    public GridLayoutFactory copy() {
-    	return new GridLayoutFactory(create());
-    }
-    
-    /**
-     * Creates a GridLayoutFactory that creates GridLayouts with the default SWT
-     * values.
-     * 
-     * <p>
-     * Initial values are:
-     * </p>
-     * 
-     * <ul>
-     * <li>numColumns(1)</li>
-     * <li>margins(5,5)</li>
-     * <li>extendedMargins(0,0,0,0)</li>
-     * <li>spacing(5,5)</li>
-     * <li>equalWidth(false)</li>
-     * </ul>
-     * 
-     * @return a GridLayoutFactory that creates GridLayouts as though created with
-     * their default constructor
-     * @see #fillDefaults
-     */
-    public static GridLayoutFactory swtDefaults() {
-    	return new GridLayoutFactory(new GridLayout());
-    }
-
-    /**
-     * Creates a GridLayoutFactory that creates GridLayouts with no margins and 
-     * default dialog spacing.
-     * 
-     * <p>
-     * Initial values are:
-     * </p>
-     * 
-     * <ul>
-     * <li>numColumns(1)</li>
-     * <li>margins(0,0)</li>
-     * <li>extendedMargins(0,0,0,0)</li>
-     * <li>spacing(LayoutConstants.getSpacing())</li>
-     * <li>equalWidth(false)</li>
-     * </ul>
-     * 
-     * @return a GridLayoutFactory that creates GridLayouts as though created with
-     * their default constructor
-     * @see #swtDefaults
-     */
-    public static GridLayoutFactory fillDefaults() {
-    	GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        Point defaultSpacing = LayoutConstants.getSpacing();
-        layout.horizontalSpacing = defaultSpacing.x;
-        layout.verticalSpacing = defaultSpacing.y;
-        return new GridLayoutFactory(layout);
-    }
-    
-    /**
-     * Sets whether the columns should be forced to be equal width
-     * 
-     * @param equal true iff the columns should be forced to be equal width
-     * @return this
-     */
-    public GridLayoutFactory equalWidth(boolean equal) {
-        l.makeColumnsEqualWidth = equal;
-        return this;
-    }
-
-    /**
-     * Sets the spacing for layouts created with this factory. The spacing
-     * is the distance between cells within the layout. 
-     * 
-     * @param hSpacing horizontal spacing (pixels)
-     * @param vSpacing vertical spacing (pixels)
-     * @return this
-     * @see #margins(Point)
-     * @see #margins(int, int)
-     */
-    public GridLayoutFactory spacing(int hSpacing, int vSpacing) {
-        l.horizontalSpacing = hSpacing;
-        l.verticalSpacing = vSpacing;
-        return this;
-    }
-
-    /**
-     * Sets the spacing for layouts created with this factory. The spacing
-     * is the distance between cells within the layout. 
-     * 
-     * @param spacing space between controls in the layout (pixels)
-     * @return this
-     * @see #margins(Point)
-     * @see #margins(int, int)
-     */
-    public GridLayoutFactory spacing(Point spacing) {
-        l.horizontalSpacing = spacing.x;
-        l.verticalSpacing = spacing.y;
-        return this;
-    }
-
-    /**
-     * Sets the margins for layouts created with this factory. The margins
-     * are the distance between the outer cells and the edge of the layout.
-     * 
-     * @param margins margin size (pixels)
-     * @return this
-     * @see #spacing(Point)
-     * @see #spacing(int, int)
-     */
-    public GridLayoutFactory margins(Point margins) {
-        l.marginWidth = margins.x;
-        l.marginHeight = margins.y;
-        return this;
-    }
-
-    /**
-	 * Sets the margins for layouts created with this factory. The margins
-	 * specify the number of pixels of horizontal and vertical margin that will
-	 * be placed along the left/right and top/bottom edges of the layout. Note
-	 * that thes margins will be added to the ones specified by
-	 * {@link #extendedMargins(int, int, int, int)}.
-	 * 
-	 * @param width
-	 *            margin width (pixels)
-	 * @param height
-	 *            margin height (pixels)
-	 * @return this
-	 * @see #spacing(Point)
-	 * * @see #spacing(int, int)
-	 */
-    public GridLayoutFactory margins(int width, int height) {
-        l.marginWidth = width;
-        l.marginHeight = height;
-        return this;
-    }
-
-    /**
-	 * Sets the margins for layouts created with this factory. The margins
-	 * specify the number of pixels of horizontal and vertical margin that will
-	 * be placed along the left, right, top, and bottom edges of the layout.
-	 * Note that thes margins will be added to the ones specified by
-	 * {@link #margins(int, int)}.
-	 * 
-	 * @param left
-	 *            left margin size (pixels)
-	 * @param right
-	 *            right margin size (pixels)
-	 * @param top
-	 *            top margin size (pixels)
-	 * @param bottom
-	 *            bottom margin size (pixels)
-	 * @return this
-	 * @see #spacing(Point)
-	 * @see #spacing(int, int)
-	 * 
-	 * @since 3.3
-	 */
-    public GridLayoutFactory extendedMargins(int left, int right, int top, int bottom) {
-        l.marginLeft = left;
-        l.marginRight = right;
-        l.marginTop = top;
-        l.marginBottom = bottom;
-        return this;
-    }
-
-    /**
-	 * Sets the margins for layouts created with this factory. The margins
-	 * specify the number of pixels of horizontal and vertical margin that will
-	 * be placed along the left, right, top, and bottom edges of the layout.
-	 * Note that thes margins will be added to the ones specified by
-	 * {@link #margins(int, int)}.
-	 * 
-     * <code><pre>
-     *     // Construct a GridLayout whose left, right, top, and bottom 
-     *     // margin sizes are 10, 5, 0, and 15 respectively
-     *      
-     *     Rectangle margins = Geometry.createDiffRectangle(10,5,0,15);
-     *     GridLayoutFactory.fillDefaults().extendedMargins(margins).applyTo(composite1);
-     * </pre></code>
-	 * 
-	 * @param differenceRect rectangle which, when added to the client area of the
-	 *        layout, returns the outer area of the layout. The x and y values of
-	 *        the rectangle correspond to the position of the bounds of the 
-	 *        layout with respect to the client area. They should be negative. 
-	 *        The width and height correspond to the relative size of the bounds
-	 *        of the layout with respect to the client area, and should be positive. 
-	 * @return this
-	 * @see #spacing(Point)
-	 * @see #spacing(int, int)
-	 * 
-	 * @since 3.3
-	 */
-    public GridLayoutFactory extendedMargins(Rectangle differenceRect) {
-        l.marginLeft = -differenceRect.x;
-        l.marginTop = -differenceRect.y;
-        l.marginBottom = differenceRect.y + differenceRect.height;
-        l.marginRight = differenceRect.x + differenceRect.width;
-        return this;
-    }
-    
-    /**
-     * Sets the number of columns in the layout
-     * 
-     * @param numColumns number of columns in the layout
-     * @return this
-     */
-    public GridLayoutFactory numColumns(int numColumns) {
-        l.numColumns = numColumns;
-        return this;
-    }
-
-    /**
-     * Creates a new GridLayout, and initializes it with values from the factory.
-     * 
-     * @return a new initialized GridLayout.
-     * @see #applyTo
-     */
-    public GridLayout create() {
-        return copyLayout(l);
-    }
-
-    /**
-     * Creates a new GridLayout and attaches it to the given composite.
-     * Does not create the GridData of any of the controls in the composite.
-     * 
-     * @param c composite whose layout will be set
-     * @see #generateLayout
-     * @see #create
-     * @see GridLayoutFactory
-     */
-    public void applyTo(Composite c) {
-        c.setLayout(copyLayout(l));
-    }
-
-    /**
-     * Copies the given GridLayout instance
-     * 
-     * @param l layout to copy
-     * @return a new GridLayout
-     */
-    public static GridLayout copyLayout(GridLayout l) {
-        GridLayout result = new GridLayout(l.numColumns, l.makeColumnsEqualWidth);
-        result.horizontalSpacing = l.horizontalSpacing;
-        result.marginBottom = l.marginBottom;
-        result.marginHeight = l.marginHeight;
-        result.marginLeft = l.marginLeft;
-        result.marginRight = l.marginRight;
-        result.marginTop = l.marginTop;
-        result.marginWidth = l.marginWidth;
-        result.verticalSpacing = l.verticalSpacing;
-
-        return result;
-    }
-
-    /**
-     * Applies this layout to the given composite, and attaches default GridData
-     * to all immediate children that don't have one. The layout is generated using 
-     * heuristics based on the widget types. In most cases, it will create exactly the same
-     * layout that would have been hardcoded by the programmer. In any situation
-     * where it does not produce the desired layout, the GridData for any child can be 
-     * overridden by attaching the layout data before calling this method. In these cases,
-     * the special-case layout data can be hardcoded and the algorithm can supply defaults
-     * to the rest.
-     * 
-     * <p>
-     * This must be called <b>AFTER</b> all of the child controls have been created and their
-     * layouts attached. This method will attach a layout to the given composite. If any new 
-     * children are created after calling this method, their GridData must be created manually. 
-     * The algorithm does not recurse into child composites. To generate all the layouts in
-     * a widget hierarchy, the method must be called bottom-up for each Composite.   
-     * </p>
-     * 
-     * <p>
-     * All controls are made to span a single cell. The algorithm tries to classify controls into one 
-     * of the following categories:
-     * </p>
-     * 
-     * <ul>
-     * <li>Pushbuttons: Set to a constant size large enough to fit their text and no smaller
-     * than the default button size.</li>
-     * <li>Wrapping with text (labels, read-only text boxes, etc.): override the preferred horizontal 
-     *     size with the default wrapping point, fill horizontally, grab horizontal space, keep the
-     *     preferred vertical size</li>
-     * <li>Wrapping without text (toolbars, coolbars, etc.): fill align, don't grab, use the preferred size</li>
-     * <li>Horizontally scrolling controls (anything with horizontal scrollbars or where the user edits
-     *     text and can cursor through it from left-to-right): override the preferred horizontal size with
-     *     a constant, grab horizontal, fill horizontal.</li>
-     * <li>Vertically scrolling controls (anything with vertical scrollbars or where the user edits
-     *     text and can cursor through it up and down): override the preferred vertical size with a constant,
-     *     grab vertical, fill vertical</li>
-     * <li>Nested layouts: fill align both directions, grab along any dimension if the layout would
-     *     be able to expand along that dimension.</li>
-     * <li>Non-wrapping non-scrollable read-only text: fill horizontally, center vertically, default size, don't grab </li>
-     * <li>Non-wrapping non-scrollable non-text: fill both, default size, don't grab</li>
-     * </ul>
-     * 
-     * @param c composite whose layout will be generated
-     */
-    public void generateLayout(Composite c) {
-        applyTo(c);
-        LayoutGenerator.generateLayout(c);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutConstants.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutConstants.java
deleted file mode 100644
index 6c540ea..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutConstants.java
+++ /dev/null
@@ -1,80 +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.jface.layout;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Contains various layout constants
- * 
- * @since 3.2
- */
-public final class LayoutConstants {
-	private static Point dialogMargins = null;
-	private static Point dialogSpacing = null;
-	private static Point minButtonSize = null;
-	
-	private static void initializeConstants() {
-		if (dialogMargins != null) {
-			return;
-		}
-		
-		GC gc = new GC(Display.getCurrent());
-		gc.setFont(JFaceResources.getDialogFont());
-		FontMetrics fontMetrics = gc.getFontMetrics();
-
-		dialogMargins = new Point(Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.HORIZONTAL_MARGIN),
-				Dialog.convertVerticalDLUsToPixels(fontMetrics, IDialogConstants.VERTICAL_MARGIN));
-
-		dialogSpacing = new Point(Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.HORIZONTAL_SPACING),
-				Dialog.convertVerticalDLUsToPixels(fontMetrics, IDialogConstants.VERTICAL_SPACING));
-
-		minButtonSize  = new Point(Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH), 0);
-		
-		gc.dispose();
-	}
-	
-	/**
-	 * Returns the default dialog margins, in pixels
-	 * 
-	 * @return the default dialog margins, in pixels
-	 */
-    public static final Point getMargins() {
-    	initializeConstants();
-    	return dialogMargins;
-    }
-
-    /**
-     * Returns the default dialog spacing, in pixels
-     * 
-     * @return the default dialog spacing, in pixels
-     */
-    public static final Point getSpacing() {
-    	initializeConstants();
-    	return dialogSpacing;
-    }
-
-    /**
-     * Returns the default minimum button size, in pixels
-     * 
-     * @return the default minimum button size, in pixels
-     */
-    public static final Point getMinButtonSize() {
-    	initializeConstants();
-    	return minButtonSize;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutGenerator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutGenerator.java
deleted file mode 100644
index acf6edd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/LayoutGenerator.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.layout;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.Point;
-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.Layout;
-import org.eclipse.swt.widgets.Scrollable;
-
-/* package */class LayoutGenerator {
-
-    /**
-     * Default size for controls with varying contents
-     */
-    private static final Point defaultSize = new Point(150, 150);
-
-    /**
-     * Default wrapping size for wrapped labels
-     */
-    private static final int wrapSize = 350;
-
-    private static final GridDataFactory nonWrappingLabelData = GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.CENTER).grab(false, false);
-
-    private static boolean hasStyle(Control c, int style) {
-        return (c.getStyle() & style) != 0;
-    }
-
-    /**
-     * Generates a GridLayout for the given composite by examining its child
-     * controls and attaching layout data to any immediate children that do not
-     * already have layout data.
-     * 
-     * @param toGenerate
-     *            composite to generate a layout for
-     */
-    public static void generateLayout(Composite toGenerate) {
-        Control[] children = toGenerate.getChildren();
-
-        for (int i = 0; i < children.length; i++) {
-            Control control = children[i];
-
-            // Skip any children that already have layout data
-            if (control.getLayoutData() != null) {
-                continue;
-            }
-
-            applyLayoutDataTo(control);
-        }
-    }
-
-    private static void applyLayoutDataTo(Control control) {
-    	defaultsFor(control).applyTo(control);
-    }
-    
-    /**
-     * Creates default factory for this control types:
-     * <ul>
-     * 	<li>{@link Button} with {@link SWT#CHECK}</li>
-     * 	<li>{@link Button}</li>
-     * 	<li>{@link Composite}</li>
-     * </ul>
-     * @param control the control the factory is search for
-     * @return a default factory for the control
-     */
-    public static GridDataFactory defaultsFor(Control control) {
-        if (control instanceof Button) {
-            Button button = (Button) control;
-
-            if (hasStyle(button, SWT.CHECK)) {
-                return nonWrappingLabelData.copy();
-            }
-            return GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).hint(Geometry.max(button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true), LayoutConstants.getMinButtonSize()));
-        }
-
-        if (control instanceof Scrollable) {
-            Scrollable scrollable = (Scrollable) control;
-
-            if (scrollable instanceof Composite) {
-                Composite composite = (Composite) control;
-
-                Layout theLayout = composite.getLayout();
-                if (theLayout instanceof GridLayout) {
-                    boolean growsHorizontally = false;
-                    boolean growsVertically = false;
-
-                    Control[] children = composite.getChildren();
-                    for (int i = 0; i < children.length; i++) {
-                        Control child = children[i];
-
-                        GridData data = (GridData) child.getLayoutData();
-
-                        if (data != null) {
-                            if (data.grabExcessHorizontalSpace) {
-                                growsHorizontally = true;
-                            }
-                            if (data.grabExcessVerticalSpace) {
-                                growsVertically = true;
-                            }
-                        }
-                    }
-
-                    return GridDataFactory.fillDefaults().grab(growsHorizontally, growsVertically);
-                }
-            }
-        }
-
-        boolean wrapping = hasStyle(control, SWT.WRAP);
-
-        // Assume any control with the H_SCROLL or V_SCROLL flags are
-        // horizontally or vertically
-        // scrollable, respectively.
-        boolean hScroll = hasStyle(control, SWT.H_SCROLL);
-        boolean vScroll = hasStyle(control, SWT.V_SCROLL);
-
-        boolean containsText = hasMethod(control, "setText", new Class[] { String.class }); //$NON-NLS-1$
-
-        // If the control has a setText method, an addModifyListener method, and
-        // does not have
-        // the SWT.READ_ONLY flag, assume it contains user-editable text.
-        boolean userEditable = !hasStyle(control, SWT.READ_ONLY) && containsText && hasMethod(control, "addModifyListener", new Class[] { ModifyListener.class }); //$NON-NLS-1$
-
-        // For controls containing user-editable text...
-        if (userEditable) {
-            if (hasStyle(control, SWT.MULTI)) {
-                vScroll = true;
-            }
-
-            if (!wrapping) {
-                hScroll = true;
-            }
-        }
-
-        // Compute the horizontal hint
-        int hHint = SWT.DEFAULT;
-        boolean grabHorizontal = hScroll;
-
-        // For horizontally-scrollable controls, override their horizontal
-        // preferred size
-        // with a constant
-        if (hScroll) {
-            hHint = defaultSize.x;
-        } else {
-            // For wrapping controls, there are two cases.
-            // 1. For controls that contain text (like wrapping labels,
-            // read-only text boxes,
-            // etc.) override their preferred size with the preferred wrapping
-            // point and
-            // make them grab horizontal space.
-            // 2. For non-text controls (like wrapping toolbars), assume that
-            // their non-wrapped
-            // size is best.
-
-            if (wrapping) {
-                if (containsText) {
-                    hHint = wrapSize;
-                    grabHorizontal = true;
-                }
-            }
-        }
-
-        int vAlign = SWT.FILL;
-
-        // Heuristic for labels: Controls that contain non-wrapping read-only
-        // text should be
-        // center-aligned rather than fill-aligned
-        if (!vScroll && !wrapping && !userEditable && containsText) {
-            vAlign = SWT.CENTER;
-        }
-
-        return GridDataFactory.fillDefaults().grab(grabHorizontal, vScroll).align(SWT.FILL, vAlign).hint(hHint, vScroll ? defaultSize.y : SWT.DEFAULT);
-    }
-
-    private static boolean hasMethod(Control control, String name, Class[] parameterTypes) {
-        Class c = control.getClass();
-        try {
-            return c.getMethod(name, parameterTypes) != null;
-        } catch (SecurityException e) {
-            return false;
-        } catch (NoSuchMethodException e) {
-            return false;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/PixelConverter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/PixelConverter.java
deleted file mode 100644
index d8e8460..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/PixelConverter.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.layout;
-
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Control;
-
-import org.eclipse.jface.dialogs.Dialog;
-
-/**
- * PixelConverter performs various conversions from device-independent units
- * (such as DLUs or characters) to pixels. It can be associated with a control or
- * a font. In the case of a control, the font used by the control at the time
- * the PixelConverter is created is used for the pixel calculations. In the case
- * of a specific font, the supplied font is used for the calculations.
- * 
- * The control and/or font must not be disposed at the time the PixelConverter
- * is created.
- * 
- * @since 3.5
- */
-public class PixelConverter {
-
-	private final FontMetrics fontMetrics;
-
-	/**
-	 * Create a PixelConverter which will convert device-independent units to
-	 * pixels using the font of the specified control.
-	 * 
-	 * @param control
-	 *            the control whose font should be used for pixel conversions.
-	 *            Note that the font used by the control at the time this
-	 *            constructor is called is the font that will be used for all
-	 *            calculations. If the font of the specified control is changed
-	 *            after this PixelConverter is created, then the conversions
-	 *            from this instance will not produce the desired effect.
-	 */
-	public PixelConverter(Control control) {
-		this(control.getFont());
-	}
-
-	/**
-	 * Create a PixelConverter which will convert device-independent units to
-	 * pixels using the specified font.
-	 * 
-	 * @param font
-	 *            the font that should be used for pixel conversions.
-	 */
-	public PixelConverter(Font font) {
-		GC gc = new GC(font.getDevice());
-		gc.setFont(font);
-		fontMetrics = gc.getFontMetrics();
-		gc.dispose();
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the height of the given
-	 * number of characters.
-	 * 
-	 * @param chars
-	 *            the number of characters
-	 * @return the number of pixels
-	 */
-	public int convertHeightInCharsToPixels(int chars) {
-		return Dialog.convertHeightInCharsToPixels(fontMetrics, chars);
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the given number of
-	 * horizontal dialog units.
-	 * 
-	 * @param dlus
-	 *            the number of horizontal dialog units
-	 * @return the number of pixels
-	 */
-	public int convertHorizontalDLUsToPixels(int dlus) {
-		return Dialog.convertHorizontalDLUsToPixels(fontMetrics, dlus);
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the given number of
-	 * vertical dialog units.
-	 * 
-	 * @param dlus
-	 *            the number of vertical dialog units
-	 * @return the number of pixels
-	 */
-	public int convertVerticalDLUsToPixels(int dlus) {
-		return Dialog.convertVerticalDLUsToPixels(fontMetrics, dlus);
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the width of the given
-	 * number of characters.
-	 * 
-	 * @param chars
-	 *            the number of characters
-	 * @return the number of pixels
-	 */
-	public int convertWidthInCharsToPixels(int chars) {
-		return Dialog.convertWidthInCharsToPixels(fontMetrics, chars);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowDataFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowDataFactory.java
deleted file mode 100644
index baa5c8d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowDataFactory.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Stefan Xenos, IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.layout;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.RowData;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This class provides a convenient shorthand for creating and initialising
- * RowData. This offers several benefits over creating RowData the normal way:
- * 
- * <ul>
- * <li>The same factory can be used many times to create several RowData
- * instances</li>
- * <li>The setters on RowDataFactory all return "this", allowing them to be
- * chained</li>
- * </ul>
- * 
- * @since 3.5
- */
-public final class RowDataFactory {
-	private RowData data;
-
-	/**
-	 * Creates a RowDataFactory that creates copies of the given RowData.
-	 * 
-	 * @param data
-	 *            object to be copied
-	 */
-	private RowDataFactory(RowData data) {
-		this.data = data;
-	}
-
-	/**
-	 * Creates a new RowDataFactory initialized with the SWT defaults.
-	 * 
-	 * <p>
-	 * Initial values are:
-	 * </p>
-	 * 
-	 * <ul>
-	 * <li>exclude(false)</li>
-	 * <li>hint(SWT.DEFAULT, SWT.DEFAULT)</li>
-	 * </ul>
-	 * 
-	 * @return a new GridDataFactory instance
-	 */
-	public static RowDataFactory swtDefaults() {
-		return new RowDataFactory(new RowData());
-	}
-
-	/**
-	 * Creates a new RowDataFactory that creates copies of the given RowData by
-	 * default.
-	 * 
-	 * @param data
-	 *            RowData to copy
-	 * @return a new RowDataFactory that creates copies of the argument by
-	 *         default
-	 */
-	public static RowDataFactory createFrom(RowData data) {
-		return new RowDataFactory(copyData(data));
-	}
-
-	/**
-	 * Returns a copy of the given RowData
-	 * 
-	 * @param data
-	 *            RowData to copy
-	 * @return a copy of the argument
-	 */
-	public static RowData copyData(RowData data) {
-		RowData newData = new RowData(data.width, data.height);
-		newData.exclude = data.exclude;
-
-		return newData;
-	}
-
-	/**
-	 * Instructs the GridLayout to ignore this control when performing layouts.
-	 * 
-	 * @param shouldExclude
-	 *            true iff the control should be excluded from layouts
-	 * @return this
-	 */
-	public RowDataFactory exclude(boolean shouldExclude) {
-		data.exclude = shouldExclude;
-		return this;
-	}
-
-	/**
-	 * Creates a new GridData instance. All attributes of the GridData instance
-	 * will be initialised by the factory.
-	 * 
-	 * @return a new GridData instance
-	 */
-	public RowData create() {
-		return copyData(data);
-	}
-
-	/**
-	 * Creates a copy of the receiver.
-	 * 
-	 * @return a copy of the receiver
-	 */
-	public RowDataFactory copy() {
-		return new RowDataFactory(create());
-	}
-
-	/**
-	 * Sets the layout data on the given control. Creates a new RowData instance
-	 * and assigns it to the control by calling control.setLayoutData.
-	 * 
-	 * @param control
-	 *            control whose layout data will be initialised
-	 */
-	public void applyTo(Control control) {
-		control.setLayoutData(create());
-	}
-
-	/**
-	 * Sets the width and height hints. The width and height hints override the
-	 * control's preferred size. If either hint is set to SWT.DEFAULT, the
-	 * control's preferred size is used.
-	 * 
-	 * @param xHint
-	 *            horizontal hint (pixels), or SWT.DEFAULT to use the control's
-	 *            preferred size
-	 * @param yHint
-	 *            vertical hint (pixels), or SWT.DEFAULT to use the control's
-	 *            preferred size
-	 * @return this
-	 */
-	public RowDataFactory hint(int xHint, int yHint) {
-		data.width = xHint;
-		data.height = yHint;
-		return this;
-	}
-
-	/**
-	 * Sets the width and height hints. The width and height hints override the
-	 * control's preferred size. If either hint is set to SWT.DEFAULT, the
-	 * control's preferred size is used.
-	 * 
-	 * @param hint
-	 *            size (pixels) to be used instead of the control's preferred
-	 *            size. If the x or y values are set to SWT.DEFAULT, the
-	 *            control's computeSize() method will be used to obtain that
-	 *            dimension of the preferred size.
-	 * @return this
-	 */
-	public RowDataFactory hint(Point hint) {
-		data.width = hint.x;
-		data.height = hint.y;
-		return this;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowLayoutFactory.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowLayoutFactory.java
deleted file mode 100644
index 5cf6c6b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/RowLayoutFactory.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Micah Hainline and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Micah Hainline - initial API and implementation
- *     Stefan Xenos, IBM Corporation - review, javadoc, and extendedMargins(Rectangle)
- *******************************************************************************/
-package org.eclipse.jface.layout;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * RowLayoutFactory creates and initializes row layouts. There are two ways to
- * use RowLayoutFactory. Normally, it is used as a shorthand for writing
- * "new RowLayout()" and initializing a bunch of fields. In this case the main
- * benefit is a more concise syntax and the ability to create more than one
- * identical RowLayout from the same factory. Changing a property of the factory
- * will affect future layouts created by the factory, but has no effect on
- * layouts that have already been created.
- * 
- * @since 3.5
- */
-public final class RowLayoutFactory {
-	/**
-	 * Template layout. The factory will create copies of this layout.
-	 */
-	private RowLayout layout;
-
-	/**
-	 * Creates a new RowLayoutFactory that will create copies of the given
-	 * layout.
-	 * 
-	 * @param layout
-	 *            layout to copy
-	 */
-	private RowLayoutFactory(RowLayout layout) {
-		this.layout = layout;
-	}
-
-	/**
-	 * Creates a factory that creates copies of the given layout.
-	 * 
-	 * @param layout
-	 *            layout to copy
-	 * @return a new RowLayoutFactory instance that creates copies of the given
-	 *         layout
-	 */
-	public static RowLayoutFactory createFrom(RowLayout layout) {
-		return new RowLayoutFactory(copyLayout(layout));
-	}
-
-	/**
-	 * Creates a copy of the receiver.
-	 * 
-	 * @return a copy of the receiver
-	 */
-	public RowLayoutFactory copy() {
-		return new RowLayoutFactory(create());
-	}
-
-	/**
-	 * Creates a RowLayoutFactory that creates RowLayouts with the default SWT
-	 * values.
-	 * 
-	 * <p>
-	 * Initial values are:
-	 * </p>
-	 * 
-	 * <ul>
-	 * <li>margins(0,0)</li>
-	 * <li>extendedMargins(3,3,3,3)</li>
-	 * <li>wrap(true)</li>
-	 * <li>pack(true)</li>
-	 * <li>fill(false)</li>
-	 * <li>justify(false)</li>
-	 * <li>spacing(3)</li>
-	 * </ul>
-	 * 
-	 * @return a RowLayoutFactory that creates RowLayouts as though created with
-	 *         their default constructor
-	 * @see #fillDefaults
-	 */
-	public static RowLayoutFactory swtDefaults() {
-		return new RowLayoutFactory(new RowLayout());
-	}
-
-	/**
-	 * Creates a RowLayoutFactory that creates RowLayouts with no margins, fill
-	 * behavior, and default dialog spacing.
-	 * 
-	 * <p>
-	 * Initial values are:
-	 * </p>
-	 * 
-	 * <ul>
-	 * <li>margins(0,0)</li>
-	 * <li>extendedMargins(0,0,0,0)</li>
-	 * <li>wrap(true)</li>
-	 * <li>pack(true)</li>
-	 * <li>fill(false)</li>
-	 * <li>justify(false)</li>
-	 * <li>spacing(LayoutConstants.getSpacing().x</li>
-	 * </ul>
-	 * 
-	 * @return a RowLayoutFactory that creates RowLayouts with no margins
-	 * @see #swtDefaults
-	 */
-	public static RowLayoutFactory fillDefaults() {
-		RowLayout layout = new RowLayout();
-		layout.marginTop = 0;
-		layout.marginBottom = 0;
-		layout.marginLeft = 0;
-		layout.marginRight = 0;
-		layout.spacing = LayoutConstants.getSpacing().x;
-		return new RowLayoutFactory(layout);
-	}
-
-	/**
-	 * Sets the spacing for layouts created with this factory. The spacing is
-	 * the distance between items within the layout.
-	 * 
-	 * @param spacing
-	 *            spacing (pixels)
-	 * @return this
-	 * @see #margins(Point)
-	 * @see #margins(int, int)
-	 */
-	public RowLayoutFactory spacing(int spacing) {
-		layout.spacing = spacing;
-		return this;
-	}
-
-	/**
-	 * Sets the margins for layouts created with this factory. The margins are
-	 * the distance between the outer cells and the edge of the layout.
-	 * 
-	 * @param margins
-	 *            margin size (pixels)
-	 * @return this
-	 * @see #spacing(int)
-	 */
-	public RowLayoutFactory margins(Point margins) {
-		layout.marginWidth = margins.x;
-		layout.marginHeight = margins.y;
-		return this;
-	}
-
-	/**
-	 * Sets the margins for layouts created with this factory. The margins
-	 * specify the number of pixels of horizontal and vertical margin that will
-	 * be placed along the left/right and top/bottom edges of the layout. Note
-	 * that these margins will be added to the ones specified by
-	 * {@link #extendedMargins(int, int, int, int)}.
-	 * 
-	 * @param width
-	 *            margin width (pixels)
-	 * @param height
-	 *            margin height (pixels)
-	 * @return this
-	 * @see #spacing(int)
-	 */
-	public RowLayoutFactory margins(int width, int height) {
-		layout.marginWidth = width;
-		layout.marginHeight = height;
-		return this;
-	}
-
-	/**
-	 * Sets the margins for layouts created with this factory. The margins
-	 * specify the number of pixels of horizontal and vertical margin that will
-	 * be placed along the left, right, top, and bottom edges of the layout.
-	 * Note that these margins will be added to the ones specified by
-	 * {@link #margins(int, int)}.
-	 * 
-	 * @param left
-	 *            left margin size (pixels)
-	 * @param right
-	 *            right margin size (pixels)
-	 * @param top
-	 *            top margin size (pixels)
-	 * @param bottom
-	 *            bottom margin size (pixels)
-	 * @return this
-	 * @see #spacing(int)
-	 * 
-	 * @since 3.3
-	 */
-	public RowLayoutFactory extendedMargins(int left, int right, int top,
-			int bottom) {
-		layout.marginLeft = left;
-		layout.marginRight = right;
-		layout.marginTop = top;
-		layout.marginBottom = bottom;
-		return this;
-	}
-
-	/**
-	 * Fill specifies whether the controls in a row should be all the same
-	 * height for horizontal layouts, or the same width for vertical layouts.
-	 * 
-	 * @param fill
-	 *            the fill status
-	 * @return this
-	 */
-	public RowLayoutFactory fill(boolean fill) {
-		layout.fill = fill;
-		return this;
-	}
-
-	/**
-	 * Justify specifies whether the controls in a row should be fully
-	 * justified, with any extra space placed between the controls.
-	 * 
-	 * @param justify
-	 *            the justify status
-	 * @return this
-	 */
-	public RowLayoutFactory justify(boolean justify) {
-		layout.justify = justify;
-		return this;
-	}
-
-	/**
-	 * Pack specifies whether all controls in the layout take their preferred
-	 * size. If pack is false, all controls will have the same size which is the
-	 * size required to accommodate the largest preferred height and the largest
-	 * preferred width of all the controls in the layout.
-	 * 
-	 * @param pack
-	 *            the pack status
-	 * @return this
-	 */
-	public RowLayoutFactory pack(boolean pack) {
-		layout.pack = pack;
-		return this;
-	}
-
-	/**
-	 * Wrap specifies whether a control will be wrapped to the next row if there
-	 * is insufficient space on the current row.
-	 * 
-	 * @param wrap
-	 *            the wrap status
-	 * @return this
-	 */
-	public RowLayoutFactory wrap(boolean wrap) {
-		layout.wrap = wrap;
-		return this;
-	}
-
-	/**
-	 * type specifies whether the layout places controls in rows or columns.
-	 * 
-	 * Possible values are:
-	 * <ul>
-	 * <li>HORIZONTAL: Position the controls horizontally from left to right</li>
-	 * <li>VERTICAL: Position the controls vertically from top to bottom</li>
-	 * </ul>
-	 * 
-	 * @param type
-	 *            One of SWT.HORIZONTAL or SWT.VERTICAL
-	 * @return this
-	 * 
-	 * @throws IllegalArgumentException
-	 *             if type is not one of HORIZONTAL or VERTICAL
-	 */
-	public RowLayoutFactory type(int type) {
-		if (type != SWT.HORIZONTAL && type != SWT.VERTICAL) {
-			throw new IllegalArgumentException();
-		}
-		layout.type = type;
-		return this;
-	}
-
-	/**
-	 * Creates a new RowLayout, and initializes it with values from the factory.
-	 * 
-	 * @return a new initialized RowLayout.
-	 * @see #applyTo
-	 */
-	public RowLayout create() {
-		return copyLayout(layout);
-	}
-
-	/**
-	 * Creates a new RowLayout and attaches it to the given composite. Does not
-	 * create the rowData of any of the controls in the composite.
-	 * 
-	 * @param c
-	 *            composite whose layout will be set
-	 * @see #create
-	 * @see RowLayoutFactory
-	 */
-	public void applyTo(Composite c) {
-		c.setLayout(copyLayout(layout));
-	}
-
-	/**
-	 * Copies the given RowLayout instance
-	 * 
-	 * @param layout
-	 *            layout to copy
-	 * @return a new RowLayout
-	 */
-	public static RowLayout copyLayout(RowLayout layout) {
-		RowLayout result = new RowLayout(layout.type);
-		result.marginBottom = layout.marginBottom;
-		result.marginTop = layout.marginTop;
-		result.marginLeft = layout.marginLeft;
-		result.marginRight = layout.marginRight;
-		result.marginHeight = layout.marginHeight;
-		result.marginWidth = layout.marginWidth;
-
-		result.fill = layout.fill;
-		result.justify = layout.justify;
-		result.pack = layout.pack;
-		result.spacing = layout.spacing;
-		result.wrap = layout.wrap;
-
-		result.type = layout.type;
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TableColumnLayout.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TableColumnLayout.java
deleted file mode 100644
index 6b549e1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TableColumnLayout.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	   Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                               - fix for bug 178280
- *     IBM Corporation - API refactoring and general maintenance
- *******************************************************************************/
-
-package org.eclipse.jface.layout;
-
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The TableColumnLayout is the {@link Layout} used to maintain
- * {@link TableColumn} sizes in a {@link Table}.
- * 
- * <p>
- * <b>You can only add the {@link Layout} to a container whose <i>only</i> child
- * is the {@link Table} control you want the {@link Layout} applied to. Don't
- * assign the layout directly the {@link Table}</b>
- * </p>
- * 
- * @since 3.3
- */
-public class TableColumnLayout extends AbstractColumnLayout {
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.5
-	 */
-	protected int getColumnCount(Scrollable tableTree) {
-		return ((Table) tableTree).getColumnCount();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.5
-	 */
-	protected void setColumnWidths(Scrollable tableTree, int[] widths) {
-		TableColumn[] columns = ((Table) tableTree).getColumns();
-		for (int i = 0; i < widths.length; i++) {
-			columns[i].setWidth(widths[i]);
-		}
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.5
-	 */
-	protected ColumnLayoutData getLayoutData(Scrollable tableTree,
-			int columnIndex) {
-		TableColumn column = ((Table) tableTree).getColumn(columnIndex);
-		return (ColumnLayoutData) column.getData(LAYOUT_DATA);
-	}
-
-	Composite getComposite(Widget column) {
-		return ((TableColumn) column).getParent().getParent();
-	}
-
-	/**
-	 * @since 3.5
-	 */
-	protected void updateColumnData(Widget column) {
-		TableColumn tColumn = (TableColumn) column;
-		Table t = tColumn.getParent();
-
-		if (!IS_GTK || t.getColumn(t.getColumnCount() - 1) != tColumn) {
-			tColumn.setData(LAYOUT_DATA,
-					new ColumnPixelData(tColumn.getWidth()));
-			layout(t.getParent(), true);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnLayout.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnLayout.java
deleted file mode 100644
index 6bd55fd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/TreeColumnLayout.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	   Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                               - fix for bug 178280, 183999, 184609
- *     IBM Corporation - API refactoring and general maintenance
- *******************************************************************************/
-
-package org.eclipse.jface.layout;
-
-
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.swt.events.TreeEvent;
-import org.eclipse.swt.events.TreeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The TreeColumnLayout is the {@link Layout} used to maintain {@link TreeColumn} sizes in a 
- * {@link Tree}.
- * 
- * <p>
- * <b>You can only add the {@link Layout} to a container whose <i>only</i>
- * child is the {@link Tree} control you want the {@link Layout} applied to.
- * Don't assign the layout directly the {@link Tree}</b>
- * </p>
- * 
- * @since 3.3
- */
-public class TreeColumnLayout extends AbstractColumnLayout {
-	private boolean addListener = true;
-	
-	private static class TreeLayoutListener implements TreeListener {
-
-		public void treeCollapsed(TreeEvent e) {
-			update((Tree) e.widget);
-		}
-
-		public void treeExpanded(TreeEvent e) {
-			update((Tree) e.widget);
-		}
-		
-		private void update(final Tree tree) {
-			tree.getDisplay().asyncExec(new Runnable() {
-
-				public void run() {
-					tree.update();
-					tree.getParent().layout();
-				}
-				
-			});
-		}
-		
-	}
-	
-	private static final TreeLayoutListener listener = new TreeLayoutListener();
-	
-	protected void layout(Composite composite, boolean flushCache) {
-		super.layout(composite, flushCache);
-		if( addListener ) {
-			addListener=false;
-			((Tree)getControl(composite)).addTreeListener(listener);
-		}
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.5
-	 */
-	protected int getColumnCount(Scrollable tree) {
-		return ((Tree) tree).getColumnCount();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.5
-	 */
-	protected void setColumnWidths(Scrollable tree, int[] widths) {
-		TreeColumn[] columns = ((Tree) tree).getColumns();
-		for (int i = 0; i < widths.length; i++) {
-			columns[i].setWidth(widths[i]);
-		}
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.5
-	 */
-	protected ColumnLayoutData getLayoutData(Scrollable tableTree, int columnIndex) {
-		TreeColumn column = ((Tree) tableTree).getColumn(columnIndex);
-		return (ColumnLayoutData) column.getData(LAYOUT_DATA);
-	}
-	
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.5
-	 */
-	protected void updateColumnData(Widget column) {
-		TreeColumn tColumn = (TreeColumn) column;
-		Tree t = tColumn.getParent();
-		
-		if( ! IS_GTK || t.getColumn(t.getColumnCount()-1) != tColumn ){
-			tColumn.setData(LAYOUT_DATA,new ColumnPixelData(tColumn.getWidth()));
-			layout(t.getParent(), true);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/package.html
deleted file mode 100644
index c4de2b3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/layout/package.html
+++ /dev/null
@@ -1,15 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for layout generation. 
-<h2>
-Package Specification</h2>
-<p> This package provides classes that can be used to generate layouts.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/AbstractTrimWidget.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/AbstractTrimWidget.java
deleted file mode 100644
index d22ea16..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/AbstractTrimWidget.java
+++ /dev/null
@@ -1,91 +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.jface.menus;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * This extension to the {@link IWidget} interface allows clients adding
- * elements to the trim to receive notifications if the User moves the widget to
- * another trim area.
- * <p>
- * This class is intended to be the base for any trim contributions.
- * </p>
- * @since 3.2
- * 
- */
-public abstract class AbstractTrimWidget implements IWidget {
-	/**
-	 * This method is called to initially construct the widget and is also
-	 * called whenever the widget's composite has been moved to a trim area on a
-	 * different side of the workbench. It is the client's responsibility to
-	 * control the life-cycle of the Control it manages.
-	 * <p>
-	 * For example: If the implementation is constructing a {@link ToolBar} and
-	 * the orientation were to change from horizontal to vertical it would have
-	 * to <code>dispose</code> its old ToolBar and create a new one with the
-	 * correct orientation.
-	 * </p>
-	 * <p>
-	 * The sides can be one of:
-	 * <ul>
-	 * <li>{@link SWT#TOP}</li>
-	 * <li>{@link SWT#BOTTOM}</li>
-	 * <li>{@link SWT#LEFT}</li>
-	 * <li>{@link SWT#RIGHT}</li>
-	 * </ul>
-	 * </p>
-	 * <p>
-	 * 
-	 * @param parent
-	 *            The parent to (re)create the widget under
-	 * 
-	 * @param oldSide
-	 *            The previous side ({@link SWT#DEFAULT} on the initial fill)
-	 * @param newSide
-	 *            The current side
-	 */
-	public abstract void fill(Composite parent, int oldSide, int newSide);
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.menus.IWidget#dispose()
-	 */
-	public abstract void dispose();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.menus.IWidget#fill(org.eclipse.swt.widgets.Composite)
-	 */
-	public void fill(Composite parent) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.menus.IWidget#fill(org.eclipse.swt.widgets.Menu, int)
-	 */
-	public void fill(Menu parent, int index) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.menus.IWidget#fill(org.eclipse.swt.widgets.ToolBar, int)
-	 */
-	public void fill(ToolBar parent, int index) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.menus.IWidget#fill(org.eclipse.swt.widgets.CoolBar, int)
-	 */
-	public void fill(CoolBar parent, int index) {
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IMenuStateIds.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IMenuStateIds.java
deleted file mode 100644
index 219c6f7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IMenuStateIds.java
+++ /dev/null
@@ -1,38 +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.jface.menus;
-
-import org.eclipse.core.commands.INamedHandleStateIds;
-import org.eclipse.jface.commands.RadioState;
-import org.eclipse.jface.commands.ToggleState;
-
-/**
- * <p>
- * State identifiers that should be understood by items and renderers of items.
- * The state is associated with the command, and then interpreted by the menu
- * renderer.
- * </p>
- * <p>
- * Clients may implement or extend this class.
- * </p>
- * 
- * @since 3.2
- */
-public interface IMenuStateIds extends INamedHandleStateIds {
-
-	/**
-	 * The state id used for indicating the widget style of a command presented
-	 * in the menus and tool bars. This state must be an instance of
-	 * {@link ToggleState} or {@link RadioState}.
-	 */
-	public static String STYLE = "STYLE"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IWidget.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IWidget.java
deleted file mode 100644
index c7c2285..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/IWidget.java
+++ /dev/null
@@ -1,85 +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.jface.menus;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.CoolBar;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * <p>
- * Provides a hook by which third-party code can contribute SWT widgets to a
- * menu, tool bar or status line. This can be used, for example, to add a combo
- * box to the status line, or a "Location" bar to the tool bar.
- * </p>
- * <p>
- * It is possible for fill and dispose to be called multiple times for a single
- * instance of <code>IWidget</code>.
- * </p>
- * <p>
- * Clients may implement, but must not extend.
- * </p>
- * 
- * @since 3.2
- */
-public interface IWidget {
-
-	/**
-	 * Disposes of the underlying widgets. This can be called when the widget is
-	 * becoming hidden.
-	 */
-	public void dispose();
-
-	/**
-	 * Fills the given composite control with controls representing this widget.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 */
-	public void fill(Composite parent);
-
-	/**
-	 * Fills the given menu with controls representing this widget.
-	 * 
-	 * @param parent
-	 *            the parent menu
-	 * @param index
-	 *            the index where the controls are inserted, or <code>-1</code>
-	 *            to insert at the end
-	 */
-	public void fill(Menu parent, int index);
-
-	/**
-	 * Fills the given tool bar with controls representing this contribution
-	 * item.
-	 * 
-	 * @param parent
-	 *            the parent tool bar
-	 * @param index
-	 *            the index where the controls are inserted, or <code>-1</code>
-	 *            to insert at the end
-	 */
-	public void fill(ToolBar parent, int index);
-
-	/**
-	 * Fills the given cool bar with controls representing this contribution
-	 * item.
-	 * 
-	 * @param parent
-	 *            the parent cool bar
-	 * @param index
-	 *            the index where the controls are inserted, or <code>-1</code>
-	 *            to insert at the end
-	 */
-	public void fill(CoolBar parent, int index);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/TextState.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/TextState.java
deleted file mode 100644
index 99ab566..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/TextState.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.menus;
-
-import org.eclipse.core.commands.INamedHandleStateIds;
-import org.eclipse.jface.commands.PersistentState;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * <p>
- * A piece of state carrying a single {@link String}.
- * </p>
- * <p>
- * If this state is registered using {@link INamedHandleStateIds#NAME} or
- * {@link INamedHandleStateIds#DESCRIPTION}, then this allows the handler to
- * communicate a textual change for a given command. This is typically used by
- * graphical applications to allow more specific text to be displayed in the
- * menus. For example, "Undo" might become "Undo Typing" through the use of a
- * {@link TextState}.
- * </p>
- * <p>
- * Clients may instantiate this class, but must not extend.
- * </p>
- * 
- * @since 3.2
- * @see INamedHandleStateIds
- */
-public class TextState extends PersistentState {
-
-	public final void load(final IPreferenceStore store,
-			final String preferenceKey) {
-		final String value = store.getString(preferenceKey);
-		setValue(value);
-	}
-
-	public final void save(final IPreferenceStore store,
-			final String preferenceKey) {
-		final Object value = getValue();
-		if (value instanceof String) {
-			store.setValue(preferenceKey, ((String) value));
-		}
-	}
-
-	public void setValue(final Object value) {
-		if (!(value instanceof String) && value != null) {
-			throw new IllegalArgumentException(
-					"TextState takes a String as a value"); //$NON-NLS-1$
-		}
-
-		super.setValue(value);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/package.html
deleted file mode 100644
index 15c0893..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/menus/package.html
+++ /dev/null
@@ -1,15 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for trim specification. 
-<h2>
-Package Specification</h2>
-<p> This package provides classes for trim widgets.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties
deleted file mode 100644
index bcca2c8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/messages.properties
+++ /dev/null
@@ -1,215 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# NLS file for JFace
-#############################################################
-
-#############################################################
-# Global label definitions
-#############################################################
-ok=OK
-cancel=Cancel
-yes=&Yes
-yestoall=Yes To &All
-skip=S&kip
-stop=&Stop
-abort=&Abort
-retry=&Retry
-ignore=&Ignore
-proceed=&Proceed
-open=&Open
-close=&Close
-showDetails=&Details >>
-hideDetails=<< &Details
-backButton=< &Back
-nextButton=&Next >
-finish=&Finish
-help=&Help
-helpToolTip=Help
-no=&No
-notoall=No &To All
-defaults=Restore &Defaults
-apply=&Apply
-openBrowse=&Browse...
-
-openChange=&Change...
-copy = &Copy
-
-error=Error
-warning=Warning
-info=Info
-question=Question
-
-##############################################################
-# Wizard Closing Dialog
-##############################################################
-WizardClosingDialog.title=Wizard Closing
-WizardClosingDialog.message=Wizard can not be closed due to an active operation. You must cancel the operation before you can close the wizard.
-
-##############################################################
-# Wizard Dialog
-##############################################################
-WizardDialog.missingSetControl = {0} has no page control
-
-##############################################################
-# The Progress Monitor Dialog
-##############################################################
-ProgressMonitorDialog.title=Progress Information
-ProgressMonitorDialog.message=Operation in progress...
-
-##############################################################
-# Preference Dialog
-##############################################################
-PreferenceDialog.title=Preferences
-PreferenceDialog.saveErrorTitle=Problem Saving Preferences
-PreferenceDialog.saveErrorMessage=A problem was encountered saving the page {0}.\n{1}
-
-##############################################################
-# Change Errors
-##############################################################
-PreferenceStore.changeError=Error notifying a preference change listener. Check the log for details.
-FontRegistry.changeError=Error notifying a font registry change listener. Check the log for details.
-		
-##############################################################
-# Abort Page Flipping Dialog
-##############################################################
-AbortPageFlippingDialog.title=Could Not Accept Changes 
-AbortPageFlippingDialog.message=The currently displayed page contains invalid values.
-
-##############################################################
-# Field editors
-##############################################################
-StringFieldEditor.errorMessage=Field contains an invalid value
-IntegerFieldEditor.errorMessage=Value must be an Integer
-IntegerFieldEditor.errorMessageRange=Value must be an Integer between {0} and {1}
-FileFieldEditor.errorMessage=Value must be an existing file
-FileFieldEditor.errorMessage2=Value must be an absolute path
-DirectoryFieldEditor.errorMessage=Value must be an existing directory
-ListEditor.add = Ne&w...
-ListEditor.remove = &Remove
-ListEditor.up = &Up
-ListEditor.down = Dow&n
-
-##############################################################
-# Error messages for TextViewer
-##############################################################
-TextViewer.invalidRangeArg=Invalid range argument
-TextViewer.invalidVisibleRegionArg=Invalid visible region argument
-
-#############################################################
-# org.eclipse.jface.action 
-#############################################################
-Cancel_Current_Operation = Cancel Current Operation
-Set_SubTask = {0}: {1}
-Toolbar_Tooltip_Accelerator = {0} ({1})
-
-#############################################################
-# org.eclipse.jface.dialog
-############################################################
-Problem_Occurred = Problem Occurred
-Reason = {0}\n\nReason:\n{1}
-MessageDialogWithToggle.defaultToggleMessage = &Remember my decision
-PopupDialog.resize = &Resize
-PopupDialog.move = &Move
-PopupDialog.persistBounds = R&emember Size and Location
-PopupDialog.persistSize = Remember Si&ze
-PopupDialog.persistLocation = Remember &Location
-PopupDialog.menuTooltip = Menu
-
-############################################################
-
-Image_not_found = Image not found
-<empty_selection> = <empty selection>
-
-########################################################
-# Font properties labels for displaying a font
-#######################################################
-BoldItalicFont = bold italic
-BoldFont = bold
-ItalicFont = italic
-RegularFont = regular
-
-#############################################################
-# String representations of keys for Status line messages
-############################################################
-Ctrl = Ctrl
-Command = Command
-Alt = Alt
-Shift = Shift
-Backspace = Backspace
-Tab = Tab
-Return = Return
-Enter = Enter
-Escape = Escape
-Esc = Esc
-Delete = Delete
-Space = Space
-Arrow_Up = Arrow Up
-Arrow_Down = Arrow Down
-Arrow_Left = Arrow Left
-Arrow_Right = Arrow Right
-Page_Up = Page Up
-Page_Down = Page Down
-Home = Home
-End = End
-Insert = Insert
-F1 = F1
-F2 = F2
-F3 = F3
-F4 = F4
-F5 = F5
-F6 = F6
-F7 = F7
-F8 = F8
-F9 = F9
-F10 = F10
-F11 = F11
-F12 = F12
-
-##############################################
-# Safe Runnable
-##############################################
-SafeRunnable.errorMessage = An error has occurred. See error log for more details.
-ColorSelector.Name=Color Selector
-
-#############################################################
-# org.eclipse.jface.viewers.deferred 
-#############################################################
-Sorting = sorting
-
-
-#############################################################
-# org.eclipse.jface.util 
-#############################################################
-LocalSelectionTransfer.errorMessage=Received wrong transfer data. 
-
-#############################################################
-# org.eclipse.jface.fieldAssist
-#############################################################
-FieldDecorationRegistry.errorMessage=Error in field content
-FieldDecorationRegistry.contentAssistMessage=Content Assist Available 
-FieldDecorationRegistry.requiredFieldMessage=Required Field
-FieldDecorationRegistry.errorQuickFixMessage=Error in field content.  Quick Fix Available.
-
-###############################################################
-# org.eclipse.jface.util.SafeRunnableDialog
-#############################################################
-SafeRunnableDialog_reason= {0}\n\nReason:\n{1}
-SafeRunnableDialog_checkDetailsMessage=Check the details
-SafeRunnableDialog_MultipleErrorsTitle=Multiple Errors have Occurred
-SafeRunnableDialog_MultipleErrorsMessage=Multiple operations have reported errors. Select an error to view its details.
-
-#############################################################
-# org.eclipse.jface.internal.ConfigureColumnsDialog
-#############################################################
-ConfigureColumnsDialog_Title=Configure Columns
-ConfigureColumnsDialog_WidthOfSelectedColumn=&Width of selected column:
-ConfigureColumnsDialog_up = &Up
-ConfigureColumnsDialog_down = &Down
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/AccumulatingProgressMonitor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/AccumulatingProgressMonitor.java
deleted file mode 100644
index 63f6554..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/AccumulatingProgressMonitor.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.operation;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IProgressMonitorWithBlocking;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ProgressMonitorWrapper;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A progress monitor that accumulates <code>worked</code> and <code>subtask</code> 
- * calls in the following way by wrapping a standard progress monitor:
- * <ul>
- * <li> When a <code>worked</code> or <code>subtask</code> call occurs the first time,
- *		the progress monitor posts a runnable into the asynchronous SWT event queue.
- * </li>
- * <li> Subsequent calls to <code>worked</code> or <code>subtask</code> do not post
- *		a new runnable as long as a previous runnable still exists in the SWT event
- *		queue. In this case, the progress monitor just updates the internal state of
- *		the runnable that waits in the SWT event queue for its execution. If no runnable
- *		exists, a new one is created and posted into the event queue.
- * </ul>
- * <p>
- * This class is internal to the framework; clients outside JFace should not
- * use this class.
- * </p>
- */
-/* package */class AccumulatingProgressMonitor extends ProgressMonitorWrapper {
-
-    /**
-     * The display.
-     */
-    private Display display;
-
-    /**
-     * The collector, or <code>null</code> if none.
-     */
-    private Collector collector;
-
-    private String currentTask = ""; //$NON-NLS-1$
-
-    private class Collector implements Runnable {
-        private String subTask;
-
-        private double worked;
-
-        private IProgressMonitor monitor;
-
-        /**
-         * Create a new collector.
-         * @param subTask
-         * @param work
-         * @param monitor
-         */
-        public Collector(String subTask, double work, IProgressMonitor monitor) {
-            this.subTask = subTask;
-            this.worked = work;
-            this.monitor = monitor;
-        }
-
-        /**
-         * Add worked to the work.
-         * @param workedIncrement
-         */
-        public void worked(double workedIncrement) {
-            this.worked = this.worked + workedIncrement;
-        }
-
-        /**
-         * Set the subTask name.
-         * @param subTaskName
-         */
-        public void subTask(String subTaskName) {
-            this.subTask = subTaskName;
-        }
-
-        /**
-         * Run the collector.
-         */
-        public void run() {
-            clearCollector(this);
-            if (subTask != null) {
-				monitor.subTask(subTask);
-			}
-            if (worked > 0) {
-				monitor.internalWorked(worked);
-			}
-        }
-    }
-
-    /**
-     * Creates an accumulating progress monitor wrapping the given one
-     * that uses the given display.
-     * 
-     * @param monitor the actual progress monitor to be wrapped
-     * @param display the SWT display used to forward the calls 
-     *  to the wrapped progress monitor
-     */
-    public AccumulatingProgressMonitor(IProgressMonitor monitor, Display display) {
-        super(monitor);
-        Assert.isNotNull(display);
-        this.display = display;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IProgressMonitor.
-     */
-    public void beginTask(final String name, final int totalWork) {
-        synchronized (this) {
-            collector = null;
-        }
-        display.asyncExec(new Runnable() {
-            public void run() {
-                currentTask = name;
-                getWrappedProgressMonitor().beginTask(name, totalWork);
-            }
-        });
-    }
-
-    /**
-     * Clears the collector object used to accumulate work and subtask calls
-     * if it matches the given one.
-     * @param collectorToClear
-     */
-    private synchronized void clearCollector(Collector collectorToClear) {
-        // Check if the accumulator is still using the given collector.
-        // If not, don't clear it.
-        if (this.collector == collectorToClear) {
-			this.collector = null;
-		}
-    }
-
-    /**
-     *  Creates a collector object to accumulate work and subtask calls.
-     * @param subTask
-     * @param work
-     */
-    private void createCollector(String subTask, double work) {
-        collector = new Collector(subTask, work, getWrappedProgressMonitor());
-        display.asyncExec(collector);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IProgressMonitor.
-     */
-    public void done() {
-        synchronized (this) {
-            collector = null;
-        }
-        display.asyncExec(new Runnable() {
-            public void run() {
-                getWrappedProgressMonitor().done();
-            }
-        });
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IProgressMonitor.
-     */
-    public synchronized void internalWorked(final double work) {
-        if (collector == null) {
-            createCollector(null, work);
-        } else {
-            collector.worked(work);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IProgressMonitor.
-     */
-    public void setTaskName(final String name) {
-        synchronized (this) {
-            collector = null;
-        }
-        display.asyncExec(new Runnable() {
-            public void run() {
-                currentTask = name;
-                getWrappedProgressMonitor().setTaskName(name);
-            }
-        });
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IProgressMonitor.
-     */
-    public synchronized void subTask(final String name) {
-        if (collector == null) {
-            createCollector(name, 0);
-        } else {
-            collector.subTask(name);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IProgressMonitor.
-     */
-    public synchronized void worked(int work) {
-        internalWorked(work);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.ProgressMonitorWrapper#clearBlocked()
-     */
-    public void clearBlocked() {
-
-        //If this is a monitor that can report blocking do so.
-        //Don't bother with a collector as this should only ever
-        //happen once and prevent any more progress.
-        final IProgressMonitor pm = getWrappedProgressMonitor();
-        if (!(pm instanceof IProgressMonitorWithBlocking)) {
-			return;
-		}
-
-        display.asyncExec(new Runnable() {
-            /* (non-Javadoc)
-             * @see java.lang.Runnable#run()
-             */
-            public void run() {
-                ((IProgressMonitorWithBlocking) pm).clearBlocked();
-                Dialog.getBlockedHandler().clearBlocked();
-            }
-        });
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.ProgressMonitorWrapper#setBlocked(org.eclipse.core.runtime.IStatus)
-     */
-    public void setBlocked(final IStatus reason) {
-        //If this is a monitor that can report blocking do so.
-        //Don't bother with a collector as this should only ever
-        //happen once and prevent any more progress.
-        final IProgressMonitor pm = getWrappedProgressMonitor();
-        if (!(pm instanceof IProgressMonitorWithBlocking)) {
-			return;
-		}
-
-        display.asyncExec(new Runnable() {
-            /* (non-Javadoc)
-             * @see java.lang.Runnable#run()
-             */
-            public void run() {
-                ((IProgressMonitorWithBlocking) pm).setBlocked(reason);
-                //Do not give a shell as we want it to block until it opens.
-                Dialog.getBlockedHandler().showBlocked(pm, reason, currentTask);
-            }
-        });
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableContext.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableContext.java
deleted file mode 100644
index 9dee304..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableContext.java
+++ /dev/null
@@ -1,64 +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.jface.operation;
-
-import java.lang.reflect.InvocationTargetException;
-
-/**
- * Interface for UI components which can execute a long-running operation
- * in the form of an <code>IRunnableWithProgress</code>.
- * The context is responsible for displaying a progress indicator and Cancel
- * button to the end user while the operation is in progress; the context
- * supplies a progress monitor to be used from code running inside the operation.
- * Note that an <code>IRunnableContext</code> is not a runnable itself.
- * <p>
- * For examples of UI components which implement this interface,
- * see <code>ApplicationWindow</code>, <code>ProgressMonitorDialog</code>,
- * and <code>WizardDialog</code>.
- * </p>
- *
- * @see IRunnableWithProgress
- * @see org.eclipse.jface.window.ApplicationWindow
- * @see org.eclipse.jface.dialogs.ProgressMonitorDialog
- * @see org.eclipse.jface.wizard.WizardDialog
- */
-public interface IRunnableContext {
-    /**
-     * <p>
-     * Runs the given <code>IRunnableWithProgress</code> in this context.
-     * For example, if this is a <code>ProgressMonitorDialog</code> then the runnable
-     * is run using this dialog's progress monitor.
-     * </p>
-     * <p>
-     * If <code>fork</code> is <code>false</code>, the current thread is used
-     * to run the runnable. Note that if <code>fork</code> is <code>true</code>,
-     * it is unspecified whether or not this method blocks until the runnable
-     * has been run. Implementers should document whether the runnable is run
-     * synchronously (blocking) or asynchronously (non-blocking), or if no
-     * assumption can be made about the blocking behaviour.
-     * </p>
-     *
-     * @param fork <code>true</code> if the runnable should be run in a separate thread,
-     *  and <code>false</code> to run in the same thread
-     * @param cancelable <code>true</code> to enable the cancelation, and
-     *  <code>false</code> to make the operation uncancellable
-     * @param runnable the runnable to run
-     *
-     * @exception InvocationTargetException wraps any exception or error which occurs 
-     *  while running the runnable
-     * @exception InterruptedException propagated by the context if the runnable 
-     *  acknowledges cancelation by throwing this exception.  This should not be thrown
-     *  if cancelable is <code>false</code>.
-     */
-    public void run(boolean fork, boolean cancelable,
-            IRunnableWithProgress runnable) throws InvocationTargetException,
-            InterruptedException;
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableWithProgress.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableWithProgress.java
deleted file mode 100644
index e3ae65d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IRunnableWithProgress.java
+++ /dev/null
@@ -1,51 +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.jface.operation;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * The <code>IRunnableWithProgress</code> interface should be implemented by any
- * class whose instances are intended to be executed as a long-running operation.
- * Long-running operations are typically presented at the UI via a modal dialog
- * showing a progress indicator and a Cancel button.
- * The class must define a <code>run</code> method that takes a progress monitor.
- * The <code>run</code> method is usually not invoked directly, but rather by
- * passing the <code>IRunnableWithProgress</code> to the <code>run</code> method of
- * an <code>IRunnableContext</code>, which provides the UI for the progress monitor
- * and Cancel button.
- *
- * @see IRunnableContext
- */
-public interface IRunnableWithProgress {
-    /**
-     * Runs this operation.  Progress should be reported to the given progress monitor.
-     * This method is usually invoked by an <code>IRunnableContext</code>'s <code>run</code> method,
-     * which supplies the progress monitor.
-     * A request to cancel the operation should be honored and acknowledged 
-     * by throwing <code>InterruptedException</code>.
-     *
-     * @param monitor the progress monitor to use to display progress and receive
-     *   requests for cancelation
-     * @exception InvocationTargetException if the run method must propagate a checked exception,
-     * 	it should wrap it inside an <code>InvocationTargetException</code>; runtime exceptions are automatically
-     *  wrapped in an <code>InvocationTargetException</code> by the calling context
-     * @exception InterruptedException if the operation detects a request to cancel, 
-     *  using <code>IProgressMonitor.isCanceled()</code>, it should exit by throwing 
-     *  <code>InterruptedException</code>
-     *
-     * @see IRunnableContext#run
-     */
-    public void run(IProgressMonitor monitor) throws InvocationTargetException,
-            InterruptedException;
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IThreadListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IThreadListener.java
deleted file mode 100644
index ee9ba64..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/IThreadListener.java
+++ /dev/null
@@ -1,28 +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.jface.operation;
-
-/**
- * A thread listener is an object that is interested in receiving notifications
- * of thread changes.  For example, a thread listener can be used to notify a 
- * runnable of the thread that will execute it, allowing the runnable to transfer
- * thread-local state from the calling thread before control passes to the new thread.
- * 
- * @since 3.1
- */
-public interface IThreadListener {
-	/**
-	 * Notification that a thread change is occurring.
-	 * 
-	 * @param thread The new thread
-	 */
-	public void threadChange(Thread thread);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/ModalContext.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/ModalContext.java
deleted file mode 100644
index ce53863..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/ModalContext.java
+++ /dev/null
@@ -1,511 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.operation;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.ProgressMonitorWrapper;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Utility class for supporting modal operations. The runnable passed to the
- * <code>run</code> method is executed in a separate thread, depending on the
- * value of the passed fork argument. If the runnable is executed in a separate
- * thread then the current thread either waits until the new thread ends or, if
- * the current thread is the UI thread, it polls the SWT event queue and
- * dispatches each event.
- * <p>
- * This class is not intended to be subclassed.
- * </p>
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ModalContext {
-
-	/**
-	 * Indicated whether ModalContext is in debug mode; <code>false</code> by
-	 * default.
-	 */
-	private static boolean debug = false;
-
-	/**
-	 * The number of nested modal runs, or 0 if not inside a modal run. This is
-	 * global state.
-	 */
-	private static int modalLevel = 0;
-
-	/**
-	 * Indicates whether operations should be run in a separate thread. Defaults
-	 * to true. For internal debugging use, set to false to run operations in
-	 * the calling thread.
-	 */
-	private static boolean runInSeparateThread = true;
-
-	/**
-	 * Thread which runs the modal context.
-	 */
-	private static class ModalContextThread extends Thread {
-		/**
-		 * The operation to be run.
-		 */
-		private IRunnableWithProgress runnable;
-
-		/**
-		 * The exception thrown by the operation starter.
-		 */
-		private Throwable throwable;
-
-		/**
-		 * The progress monitor used for progress and cancelation.
-		 */
-		private IProgressMonitor progressMonitor;
-
-		/**
-		 * The display used for event dispatching.
-		 */
-		private Display display;
-
-		/**
-		 * Indicates whether to continue event queue dispatching.
-		 */
-		private volatile boolean continueEventDispatching = true;
-
-		/**
-		 * The thread that forked this modal context thread.
-		 * 
-		 * @since 3.1
-		 */
-		private Thread callingThread;
-
-		/**
-		 * Creates a new modal context.
-		 * 
-		 * @param operation
-		 *            the runnable to run
-		 * @param monitor
-		 *            the progress monitor to use to display progress and
-		 *            receive requests for cancelation
-		 * @param display
-		 *            the display to be used to read and dispatch events
-		 */
-		private ModalContextThread(IRunnableWithProgress operation,
-				IProgressMonitor monitor, Display display) {
-			super("ModalContext"); //$NON-NLS-1$
-			Assert.isTrue(monitor != null && display != null);
-			runnable = operation;
-			progressMonitor = new AccumulatingProgressMonitor(monitor, display);
-			this.display = display;
-			this.callingThread = Thread.currentThread();
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on Thread.
-		 */
-		public void run() {
-			try {
-				if (runnable != null) {
-					runnable.run(progressMonitor);
-				}
-			} catch (InvocationTargetException e) {
-				throwable = e;
-			} catch (InterruptedException e) {
-				throwable = e;
-			} catch (RuntimeException e) {
-				throwable = e;
-			} catch (ThreadDeath e) {
-				// Make sure to propagate ThreadDeath, or threads will never
-				// fully terminate
-				throw e;
-			} catch (Error e) {
-				throwable = e;
-			} finally {
-				// notify the operation of change of thread of control
-				if (runnable instanceof IThreadListener) {
-					Throwable exception = 
-						invokeThreadListener(((IThreadListener) runnable), callingThread);
-					
-					//Forward it if we don't already have one
-					if(exception != null && throwable == null)
-						throwable = exception;
-				}
-
-				// Make sure that all events in the asynchronous event queue
-				// are dispatched.
-				display.syncExec(new Runnable() {
-					public void run() {
-						// do nothing
-					}
-				});
-
-				// Stop event dispatching
-				continueEventDispatching = false;
-
-				// Force the event loop to return from sleep () so that
-				// it stops event dispatching.
-				display.asyncExec(null);
-			}
-		}
-
-		/**
-		 * Processes events or waits until this modal context thread terminates.
-		 */
-		public void block() {
-			if (display == Display.getCurrent()) {
-				int exceptionCount = 0;
-				while (continueEventDispatching) {
-					// Run the event loop. Handle any uncaught exceptions caused
-					// by UI events.
-					try {
-						if (!display.readAndDispatch()) {
-							display.sleep();
-						}
-						exceptionCount = 0;
-					}
-					// ThreadDeath is a normal error when the thread is dying.
-					// We must
-					// propagate it in order for it to properly terminate.
-					catch (ThreadDeath e) {
-						throw (e);
-					}
-					// For all other exceptions, log the problem.
-					catch (Throwable t) {
-						if (t instanceof VirtualMachineError) {
-							throw (VirtualMachineError) t;
-						}
-						exceptionCount++;
-						// We're counting exceptions in client code, such as asyncExecs,
-						// so be generous about how many may fail consecutively before we
-						// give up.
-						if (exceptionCount > 50 || display.isDisposed()) {
-			                if (t instanceof RuntimeException) {
-								throw (RuntimeException) t;
-							} else if (t instanceof Error) {
-								throw (Error) t;
-							} else {
-								throw new RuntimeException(t);
-							}
-						}
-						Policy
-								.getLog()
-								.log(
-										new Status(
-												IStatus.ERROR,
-												Policy.JFACE,
-												"Unhandled event loop exception during blocked modal context.",//$NON-NLS-1$
-												t));
-					}
-				}
-			} else {
-				try {
-					join();
-				} catch (InterruptedException e) {
-					throwable = e;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns whether the first progress monitor is the same as, or a wrapper
-	 * around, the second progress monitor.
-	 * 
-	 * @param monitor1
-	 *            the first progress monitor
-	 * @param monitor2
-	 *            the second progress monitor
-	 * @return <code>true</code> if the first is the same as, or a wrapper
-	 *         around, the second
-	 * @see ProgressMonitorWrapper
-	 */
-	public static boolean canProgressMonitorBeUsed(IProgressMonitor monitor1,
-			IProgressMonitor monitor2) {
-		if (monitor1 == monitor2) {
-			return true;
-		}
-
-		while (monitor1 instanceof ProgressMonitorWrapper) {
-			monitor1 = ((ProgressMonitorWrapper) monitor1)
-					.getWrappedProgressMonitor();
-			if (monitor1 == monitor2) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Checks with the given progress monitor and throws
-	 * <code>InterruptedException</code> if it has been canceled.
-	 * <p>
-	 * Code in a long-running operation should call this method regularly so
-	 * that a request to cancel will be honored.
-	 * </p>
-	 * <p>
-	 * Convenience for:
-	 * 
-	 * <pre>
-	 * if (monitor.isCanceled())
-	 * 	throw new InterruptedException();
-	 * </pre>
-	 * 
-	 * </p>
-	 * 
-	 * @param monitor
-	 *            the progress monitor
-	 * @exception InterruptedException
-	 *                if cancelling the operation has been requested
-	 * @see IProgressMonitor#isCanceled()
-	 */
-	public static void checkCanceled(IProgressMonitor monitor)
-			throws InterruptedException {
-		if (monitor.isCanceled()) {
-			throw new InterruptedException();
-		}
-	}
-
-	/**
-	 * Returns the currently active modal context thread, or null if no modal
-	 * context is active.
-	 */
-	private static ModalContextThread getCurrentModalContextThread() {
-		Thread t = Thread.currentThread();
-		if (t instanceof ModalContextThread) {
-			return (ModalContextThread) t;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the modal nesting level.
-	 * <p>
-	 * The modal nesting level increases by one each time the
-	 * <code>ModalContext.run</code> method is called within the dynamic scope
-	 * of another call to <code>ModalContext.run</code>.
-	 * </p>
-	 * 
-	 * @return the modal nesting level, or <code>0</code> if this method is
-	 *         called outside the dynamic scope of any invocation of
-	 *         <code>ModalContext.run</code>
-	 */
-	public static int getModalLevel() {
-		return modalLevel;
-	}
-
-	/**
-	 * Returns whether the given thread is running a modal context.
-	 * 
-	 * @param thread
-	 *            The thread to be checked
-	 * @return <code>true</code> if the given thread is running a modal
-	 *         context, <code>false</code> if not
-	 */
-	public static boolean isModalContextThread(Thread thread) {
-		return thread instanceof ModalContextThread;
-	}
-
-	/**
-	 * Runs the given runnable in a modal context, passing it a progress
-	 * monitor.
-	 * <p>
-	 * The modal nesting level is increased by one from the perspective of the
-	 * given runnable.
-	 * </p>
-	 * <p>
-	 * If the supplied operation implements <code>IThreadListener</code>, it
-	 * will be notified of any thread changes required to execute the operation.
-	 * Specifically, the operation will be notified of the thread that will call
-	 * its <code>run</code> method before it is called, and will be notified
-	 * of the change of control back to the thread calling this method when the
-	 * operation completes. These thread change notifications give the operation
-	 * an opportunity to transfer any thread-local state to the execution thread
-	 * before control is transferred to the new thread.
-	 * </p>
-	 * 
-	 * @param operation
-	 *            the runnable to run
-	 * @param fork
-	 *            <code>true</code> if the runnable should run in a separate
-	 *            thread, and <code>false</code> if in the same thread
-	 * @param monitor
-	 *            the progress monitor to use to display progress and receive
-	 *            requests for cancelation
-	 * @param display
-	 *            the display to be used to read and dispatch events
-	 * @exception InvocationTargetException
-	 *                if the run method must propagate a checked exception, it
-	 *                should wrap it inside an
-	 *                <code>InvocationTargetException</code>; runtime
-	 *                exceptions and errors are automatically wrapped in an
-	 *                <code>InvocationTargetException</code> by this method
-	 * @exception InterruptedException
-	 *                if the operation detects a request to cancel, using
-	 *                <code>IProgressMonitor.isCanceled()</code>, it should
-	 *                exit by throwing <code>InterruptedException</code>;
-	 *                this method propagates the exception
-	 */
-	public static void run(IRunnableWithProgress operation, boolean fork,
-			IProgressMonitor monitor, Display display)
-			throws InvocationTargetException, InterruptedException {
-		Assert.isTrue(operation != null && monitor != null);
-
-		modalLevel++;
-		try {
-			if (monitor != null) {
-				monitor.setCanceled(false);
-			}
-			// Is the runnable supposed to be execute in the same thread.
-			if (!fork || !runInSeparateThread) {
-				runInCurrentThread(operation, monitor);
-			} else {
-				ModalContextThread t = getCurrentModalContextThread();
-				if (t != null) {
-					Assert.isTrue(canProgressMonitorBeUsed(monitor,
-							t.progressMonitor));
-					runInCurrentThread(operation, monitor);
-				} else {
-					t = new ModalContextThread(operation, monitor, display);
-					Throwable listenerException = null;
-					if (operation instanceof IThreadListener) {
-						listenerException = invokeThreadListener((IThreadListener) operation, t);
-					}
-					
-					if(listenerException == null){
-						t.start();
-						t.block();
-					}
-					else {
-						if(t.throwable == null)
-							t.throwable = listenerException;
-					}
-					Throwable throwable = t.throwable;
-					if (throwable != null) {
-						if (debug
-								&& !(throwable instanceof InterruptedException)
-								&& !(throwable instanceof OperationCanceledException)) {
-							System.err
-									.println("Exception in modal context operation:"); //$NON-NLS-1$
-							throwable.printStackTrace();
-							System.err.println("Called from:"); //$NON-NLS-1$
-							// Don't create the InvocationTargetException on the
-							// throwable,
-							// otherwise it will print its stack trace (from the
-							// other thread).
-							new InvocationTargetException(null)
-									.printStackTrace();
-						}
-						if (throwable instanceof InvocationTargetException) {
-							throw (InvocationTargetException) throwable;
-						} else if (throwable instanceof InterruptedException) {
-							throw (InterruptedException) throwable;
-						} else if (throwable instanceof OperationCanceledException) {
-							// See 1GAN3L5: ITPUI:WIN2000 - ModalContext
-							// converts OperationCancelException into
-							// InvocationTargetException
-							throw new InterruptedException(throwable
-									.getMessage());
-						} else {
-							throw new InvocationTargetException(throwable);
-						}
-					}
-				}
-			}
-		} finally {
-			modalLevel--;
-		}
-	}
-
-	/**
-	 * Invoke the ThreadListener if there are any errors or RuntimeExceptions
-	 * return them.
-	 * 
-	 * @param listener
-	 * @param switchingThread
-	 *            the {@link Thread} being switched to
-	 */
-	static Throwable invokeThreadListener(IThreadListener listener,
-			Thread switchingThread) {
-		try {
-			listener.threadChange(switchingThread);
-		} catch (ThreadDeath e) {
-			// Make sure to propagate ThreadDeath, or threads will never
-			// fully terminate
-			throw e;
-		} catch (Error e) {
-			return e;
-		}catch (RuntimeException e) {
-			return e;
-		}
-		return null;
-	}
-
-	/**
-	 * Run a runnable. Convert all thrown exceptions to either
-	 * InterruptedException or InvocationTargetException
-	 */
-	private static void runInCurrentThread(IRunnableWithProgress runnable,
-			IProgressMonitor progressMonitor) throws InterruptedException,
-			InvocationTargetException {
-		try {
-			if (runnable != null) {
-				runnable.run(progressMonitor);
-			}
-		} catch (InvocationTargetException e) {
-			throw e;
-		} catch (InterruptedException e) {
-			throw e;
-		} catch (OperationCanceledException e) {
-			throw new InterruptedException();
-		} catch (ThreadDeath e) {
-			// Make sure to propagate ThreadDeath, or threads will never fully
-			// terminate
-			throw e;
-		} catch (RuntimeException e) {
-			throw new InvocationTargetException(e);
-		} catch (Error e) {
-			throw new InvocationTargetException(e);
-		}
-	}
-
-	/**
-	 * Sets whether ModalContext is running in debug mode.
-	 * 
-	 * @param debugMode
-	 *            <code>true</code> for debug mode, and <code>false</code>
-	 *            for normal mode (the default)
-	 */
-	public static void setDebugMode(boolean debugMode) {
-		debug = debugMode;
-	}
-
-	/**
-	 * Sets whether ModalContext may process events (by calling
-	 * <code>Display.readAndDispatch()</code>) while running operations. By
-	 * default, ModalContext will process events while running operations. Use
-	 * this method to disallow event processing temporarily.
-	 * 
-	 * @param allowReadAndDispatch
-	 *            <code>true</code> (the default) if events may be processed
-	 *            while running an operation, <code>false</code> if
-	 *            Display.readAndDispatch() should not be called from
-	 *            ModalContext.
-	 * @since 3.2
-	 */
-	public static void setAllowReadAndDispatch(boolean allowReadAndDispatch) {
-		// use a separate thread if and only if it is OK to spin the event loop
-		runInSeparateThread = allowReadAndDispatch;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/package.html
deleted file mode 100644
index 1680896..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/operation/package.html
+++ /dev/null
@@ -1,26 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides JFace support for long-running operations.
-<h2>
-Package Specification</h2>
-Long-running operations must be dealt with specially in order to keep the
-UI helpful and responsive. Typically this involves temporarily disabling
-most controls and displaying a busy cursor and progress indicator; while
-the operation is in progress, the only requests that will be accepted will
-be ones to cancel the operation.
-<p>The <tt>IRunnableWithProgress</tt> interface should be implemented by
-any class whose instances are intended to be executed as long-running operations.
-These objects can then be run in any runnable context (<tt>IRunnableContext</tt>),
-including such standard JFace UI components as application windows (<tt>ApplicationWindow</tt>),
-wizard dialogs (<tt>WizardDialog</tt>), and progress monitor dialogs (<tt>ProgressMonitorDialog</tt>).
-The utility class <tt>ModalContext</tt> defines the basic mechanism and
-UI event loop for modal operations.
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanFieldEditor.java
deleted file mode 100644
index 3c86da6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanFieldEditor.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * A field editor for a boolean type preference.
- */
-public class BooleanFieldEditor extends FieldEditor {
-
-	/**
-	 * Style constant (value <code>0</code>) indicating the default layout where
-	 * the field editor's check box appears to the left of the label.
-	 */
-	public static final int DEFAULT = 0;
-
-	/**
-	 * Style constant (value <code>1</code>) indicating a layout where the field
-	 * editor's label appears on the left with a check box on the right.
-	 */
-	public static final int SEPARATE_LABEL = 1;
-
-	/**
-	 * Style bits. Either <code>DEFAULT</code> or <code>SEPARATE_LABEL</code>.
-	 */
-	private int style;
-
-	/**
-	 * The previously selected, or "before", value.
-	 */
-	private boolean wasSelected;
-
-	/**
-	 * The checkbox control, or <code>null</code> if none.
-	 */
-	private Button checkBox = null;
-
-	/**
-	 * Creates a new boolean field editor
-	 */
-	protected BooleanFieldEditor() {
-	}
-
-	/**
-	 * Creates a boolean field editor in the given style.
-	 * 
-	 * @param name
-	 *            the name of the preference this field editor works on
-	 * @param labelText
-	 *            the label text of the field editor
-	 * @param style
-	 *            the style, either <code>DEFAULT</code> or
-	 *            <code>SEPARATE_LABEL</code>
-	 * @param parent
-	 *            the parent of the field editor's control
-	 * @see #DEFAULT
-	 * @see #SEPARATE_LABEL
-	 */
-	public BooleanFieldEditor(String name, String labelText, int style, Composite parent) {
-		init(name, labelText);
-		this.style = style;
-		createControl(parent);
-	}
-
-	/**
-	 * Creates a boolean field editor in the default style.
-	 * 
-	 * @param name
-	 *            the name of the preference this field editor works on
-	 * @param label
-	 *            the label text of the field editor
-	 * @param parent
-	 *            the parent of the field editor's control
-	 */
-	public BooleanFieldEditor(String name, String label, Composite parent) {
-		this(name, label, DEFAULT, parent);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	protected void adjustForNumColumns(int numColumns) {
-		if (style == SEPARATE_LABEL) {
-			numColumns--;
-		}
-		((GridData) checkBox.getLayoutData()).horizontalSpan = numColumns;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	protected void doFillIntoGrid(Composite parent, int numColumns) {
-		String text = getLabelText();
-		switch (style) {
-		case SEPARATE_LABEL:
-			getLabelControl(parent);
-			numColumns--;
-			text = null;
-			//$FALL-THROUGH$
-		default:
-			checkBox = getChangeControl(parent);
-			GridData gd = new GridData();
-			gd.horizontalSpan = numColumns;
-			checkBox.setLayoutData(gd);
-			if (text != null) {
-				checkBox.setText(text);
-			}
-		}
-	}
-
-	/**
-	 * Returns the control responsible for displaying this field editor's label.
-	 * This method can be used to set a tooltip for a
-	 * <code>BooleanFieldEditor</code>. Note that the normal pattern of
-	 * <code>getLabelControl(parent).setToolTipText(tooltipText)</code> does not
-	 * work for boolean field editors, as it can lead to duplicate text (see bug
-	 * 259952).
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @return the control responsible for displaying the label
-	 * 
-	 * @since 3.5
-	 */
-	public Control getDescriptionControl(Composite parent) {
-		if (style == SEPARATE_LABEL) {
-			return getLabelControl(parent);
-		}
-		return getChangeControl(parent);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor. Loads the value from the
-	 * preference store and sets it to the check box.
-	 */
-	protected void doLoad() {
-		if (checkBox != null) {
-			boolean value = getPreferenceStore().getBoolean(getPreferenceName());
-			checkBox.setSelection(value);
-			wasSelected = value;
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor. Loads the default value
-	 * from the preference store and sets it to the check box.
-	 */
-	protected void doLoadDefault() {
-		if (checkBox != null) {
-			boolean value = getPreferenceStore().getDefaultBoolean(getPreferenceName());
-			checkBox.setSelection(value);
-			wasSelected = value;
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	protected void doStore() {
-		getPreferenceStore().setValue(getPreferenceName(), checkBox.getSelection());
-	}
-
-	/**
-	 * Returns this field editor's current value.
-	 * 
-	 * @return the value
-	 */
-	public boolean getBooleanValue() {
-		return checkBox.getSelection();
-	}
-
-	/**
-	 * Returns the change button for this field editor.
-	 * 
-	 * @param parent
-	 *            The Composite to create the receiver in.
-	 * 
-	 * @return the change button
-	 */
-	protected Button getChangeControl(Composite parent) {
-		if (checkBox == null) {
-			checkBox = new Button(parent, SWT.CHECK | SWT.LEFT);
-			checkBox.setFont(parent.getFont());
-			checkBox.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					boolean isSelected = checkBox.getSelection();
-					valueChanged(wasSelected, isSelected);
-					wasSelected = isSelected;
-				}
-			});
-			checkBox.addDisposeListener(new DisposeListener() {
-				public void widgetDisposed(DisposeEvent event) {
-					checkBox = null;
-				}
-			});
-		} else {
-			checkParent(checkBox, parent);
-		}
-		return checkBox;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	public int getNumberOfControls() {
-		switch (style) {
-		case SEPARATE_LABEL:
-			return 2;
-		default:
-			return 1;
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	public void setFocus() {
-		if (checkBox != null) {
-			checkBox.setFocus();
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	public void setLabelText(String text) {
-		super.setLabelText(text);
-		Label label = getLabelControl();
-		if (label == null && checkBox != null) {
-			checkBox.setText(text);
-		}
-	}
-
-	/**
-	 * Informs this field editor's listener, if it has one, about a change to
-	 * the value (<code>VALUE</code> property) provided that the old and new
-	 * values are different.
-	 * 
-	 * @param oldValue
-	 *            the old value
-	 * @param newValue
-	 *            the new value
-	 */
-	protected void valueChanged(boolean oldValue, boolean newValue) {
-		setPresentsDefaultValue(false);
-		if (oldValue != newValue) {
-			fireStateChanged(VALUE, oldValue, newValue);
-		}
-	}
-
-	/*
-	 * @see FieldEditor.setEnabled
-	 */
-	public void setEnabled(boolean enabled, Composite parent) {
-		// Only call super if there is a label already
-		if (style == SEPARATE_LABEL) {
-			super.setEnabled(enabled, parent);
-		}
-		getChangeControl(parent).setEnabled(enabled);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanPropertyAction.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanPropertyAction.java
deleted file mode 100644
index 9751ab8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/BooleanPropertyAction.java
+++ /dev/null
@@ -1,69 +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.jface.preference;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * The BooleanPropertyAction is an action that set the values of a 
- * boolean property in the preference store.
- */
-
-public class BooleanPropertyAction extends Action {
-
-    private IPreferenceStore preferenceStore;
-
-    private String property;
-
-    /**
-     * Create a new instance of the receiver.
-     * @param title The displayable name of the action.
-     * @param preferenceStore The preference store to propogate changes to
-     * @param property The property that is being updated
-     * @throws IllegalArgumentException Thrown if preferenceStore or
-     * property are <code>null</code>.
-     */
-    public BooleanPropertyAction(String title,
-            IPreferenceStore preferenceStore, String property)
-            throws IllegalArgumentException {
-        super(title, AS_CHECK_BOX);
-
-        if (preferenceStore == null || property == null) {
-			throw new IllegalArgumentException();
-		}
-
-        this.preferenceStore = preferenceStore;
-        this.property = property;
-        final String finalProprety = property;
-
-        preferenceStore
-                .addPropertyChangeListener(new IPropertyChangeListener() {
-                    public void propertyChange(PropertyChangeEvent event) {
-                        if (finalProprety.equals(event.getProperty())) {
-							setChecked(Boolean.TRUE.equals(event.getNewValue()));
-						}
-                    }
-                });
-
-        setChecked(preferenceStore.getBoolean(property));
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.action.IAction#run()
-     */
-    public void run() {
-        preferenceStore.setValue(property, isChecked());
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorFieldEditor.java
deleted file mode 100644
index 36ffcd4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorFieldEditor.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A field editor for a color type preference.
- */
-public class ColorFieldEditor extends FieldEditor {
-
-	/**
-	 * The color selector, or <code>null</code> if none.
-	 */
-	private ColorSelector colorSelector;
-
-	/**
-	 * Creates a new color field editor
-	 */
-	protected ColorFieldEditor() {
-		//No default behavior
-	}
-
-	/**
-	 * Creates a color field editor.
-	 * 
-	 * @param name
-	 *            the name of the preference this field editor works on
-	 * @param labelText
-	 *            the label text of the field editor
-	 * @param parent
-	 *            the parent of the field editor's control
-	 */
-	public ColorFieldEditor(String name, String labelText, Composite parent) {
-		super(name, labelText, parent);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	protected void adjustForNumColumns(int numColumns) {
-		((GridData) colorSelector.getButton().getLayoutData()).horizontalSpan = numColumns - 1;
-	}
-
-	/**
-	 * Computes the size of the color image displayed on the button.
-	 * <p>
-	 * This is an internal method and should not be called by clients.
-	 * </p>
-	 * 
-	 * @param window
-	 *            the window to create a GC on for calculation.
-	 * @return Point The image size
-	 *  
-	 */
-	protected Point computeImageSize(Control window) {
-		// Make the image height as high as a corresponding character. This
-		// makes sure that the button has the same size as a "normal" text
-		// button.
-		GC gc = new GC(window);
-		Font f = JFaceResources.getFontRegistry().get(
-				JFaceResources.DEFAULT_FONT);
-		gc.setFont(f);
-		int height = gc.getFontMetrics().getHeight();
-		gc.dispose();
-		Point p = new Point(height * 3 - 6, height);
-		return p;
-	}
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
-	 */
-	protected void doFillIntoGrid(Composite parent, int numColumns) {
-		Control control = getLabelControl(parent);
-		GridData gd = new GridData();
-		gd.horizontalSpan = numColumns - 1;
-		control.setLayoutData(gd);
-
-		Button colorButton = getChangeControl(parent);
-		colorButton.setLayoutData(new GridData());
-		
-	}
-
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoad()
-	 */
-	protected void doLoad() {
-		if (colorSelector == null) {
-			return;
-		}
-		colorSelector.setColorValue(PreferenceConverter.getColor(
-				getPreferenceStore(), getPreferenceName()));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	protected void doLoadDefault() {
-		if (colorSelector == null) {
-			return;
-		}
-		colorSelector.setColorValue(PreferenceConverter.getDefaultColor(
-				getPreferenceStore(), getPreferenceName()));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	protected void doStore() {
-		PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(),
-				colorSelector.getColorValue());
-	}
-
-	/**
-	 * Get the color selector used by the receiver.
-	 * 
-	 * @return ColorSelector/
-	 */
-	public ColorSelector getColorSelector() {
-		return colorSelector;
-	}
-
-	/**
-	 * Returns the change button for this field editor.
-	 * 
-	 * @param parent
-	 *            The control to create the button in if required.
-	 * @return the change button
-	 */
-	protected Button getChangeControl(Composite parent) {
-		if (colorSelector == null) {
-			colorSelector = new ColorSelector(parent);
-			colorSelector.addListener(new IPropertyChangeListener() {
-				// forward the property change of the color selector
-				public void propertyChange(PropertyChangeEvent event) {
-					ColorFieldEditor.this.fireValueChanged(event.getProperty(),
-							event.getOldValue(), event.getNewValue());
-					setPresentsDefaultValue(false);
-				}
-			});
-
-		} else {
-			checkParent(colorSelector.getButton(), parent);
-		}
-		return colorSelector.getButton();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on FieldEditor.
-	 */
-	public int getNumberOfControls() {
-		return 2;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.FieldEditor#setEnabled(boolean,
-	 *      org.eclipse.swt.widgets.Composite)
-	 */
-	public void setEnabled(boolean enabled, Composite parent) {
-		super.setEnabled(enabled, parent);
-		getChangeControl(parent).setEnabled(enabled);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorSelector.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorSelector.java
deleted file mode 100644
index 45daaec..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ColorSelector.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-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.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * The <code>ColorSelector</code> is a wrapper for a button that displays a
- * selected <code>Color</code> and allows the user to change the selection.
- */
-public class ColorSelector extends EventManager {
-    /**
-     * Property name that signifies the selected color of this
-     * <code>ColorSelector</code> has changed.
-     * 
-     * @since 3.0
-     */
-    public static final String PROP_COLORCHANGE = "colorValue"; //$NON-NLS-1$
-
-    private Button fButton;
-
-    private Color fColor;
-
-    private RGB fColorValue;
-
-    private Point fExtent;
-
-    private Image fImage;
-
-    /**
-     * Create a new instance of the reciever and the button that it wrappers in
-     * the supplied parent <code>Composite</code>.
-     * 
-     * @param parent
-     *            The parent of the button.
-     */
-    public ColorSelector(Composite parent) {
-        fButton = new Button(parent, SWT.PUSH);
-        fExtent = computeImageSize(parent);
-        fImage = new Image(parent.getDisplay(), fExtent.x, fExtent.y);
-        GC gc = new GC(fImage);
-        gc.setBackground(fButton.getBackground());
-        gc.fillRectangle(0, 0, fExtent.x, fExtent.y);
-        gc.dispose();
-        fButton.setImage(fImage);
-        fButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                open();
-            }
-        });
-        fButton.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent event) {
-                if (fImage != null) {
-                    fImage.dispose();
-                    fImage = null;
-                }
-                if (fColor != null) {
-                    fColor.dispose();
-                    fColor = null;
-                }
-            }
-        });
-        fButton.getAccessible().addAccessibleListener(new AccessibleAdapter() {
-            /*
-             * (non-Javadoc)
-             * 
-             * @see org.eclipse.swt.accessibility.AccessibleAdapter#getName(org.eclipse.swt.accessibility.AccessibleEvent)
-             */
-            public void getName(AccessibleEvent e) {
-                e.result = JFaceResources.getString("ColorSelector.Name"); //$NON-NLS-1$
-            }
-        });
-    }
-
-    /**
-     * Adds a property change listener to this <code>ColorSelector</code>.
-     * Events are fired when the color in the control changes via the user
-     * clicking an selecting a new one in the color dialog. No event is fired in
-     * the case where <code>setColorValue(RGB)</code> is invoked.
-     * 
-     * @param listener
-     *            a property change listener
-     * @since 3.0
-     */
-    public void addListener(IPropertyChangeListener listener) {
-        addListenerObject(listener);
-    }
-
-    /**
-     * Compute the size of the image to be displayed.
-     * 
-     * @param window -
-     *            the window used to calculate
-     * @return <code>Point</code>
-     */
-    private Point computeImageSize(Control window) {
-        GC gc = new GC(window);
-        Font f = JFaceResources.getFontRegistry().get(
-                JFaceResources.DIALOG_FONT);
-        gc.setFont(f);
-        int height = gc.getFontMetrics().getHeight();
-        gc.dispose();
-        Point p = new Point(height * 3 - 6, height);
-        return p;
-    }
-
-    /**
-     * Get the button control being wrappered by the selector.
-     * 
-     * @return <code>Button</code>
-     */
-    public Button getButton() {
-        return fButton;
-    }
-
-    /**
-     * Return the currently displayed color.
-     * 
-     * @return <code>RGB</code>
-     */
-    public RGB getColorValue() {
-        return fColorValue;
-    }
-
-    /**
-     * Removes the given listener from this <code>ColorSelector</code>. Has
-     * no affect if the listener is not registered.
-     * 
-     * @param listener
-     *            a property change listener
-     * @since 3.0
-     */
-    public void removeListener(IPropertyChangeListener listener) {
-        removeListenerObject(listener);
-    }
-
-    /**
-     * Set the current color value and update the control.
-     * 
-     * @param rgb
-     *            The new color.
-     */
-    public void setColorValue(RGB rgb) {
-        fColorValue = rgb;
-        updateColorImage();
-    }
-
-    /**
-     * Set whether or not the button is enabled.
-     * 
-     * @param state
-     *            the enabled state.
-     */
-    public void setEnabled(boolean state) {
-        getButton().setEnabled(state);
-    }
-
-    /**
-     * Update the image being displayed on the button using the current color
-     * setting.
-     */
-    protected void updateColorImage() {
-        Display display = fButton.getDisplay();
-        GC gc = new GC(fImage);
-        gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
-        gc.drawRectangle(0, 2, fExtent.x - 1, fExtent.y - 4);
-        if (fColor != null) {
-			fColor.dispose();
-		}
-        fColor = new Color(display, fColorValue);
-        gc.setBackground(fColor);
-        gc.fillRectangle(1, 3, fExtent.x - 2, fExtent.y - 5);
-        gc.dispose();
-        fButton.setImage(fImage);
-    }
-
-    /**
-	 * Activate the editor for this selector. This causes the color selection
-	 * dialog to appear and wait for user input.
-	 * 
-	 * @since 3.2
-	 */
-	public void open() {
-		ColorDialog colorDialog = new ColorDialog(fButton.getShell());
-		colorDialog.setRGB(fColorValue);
-		RGB newColor = colorDialog.open();
-		if (newColor != null) {
-		    RGB oldValue = fColorValue;
-		    fColorValue = newColor;
-		    final Object[] finalListeners = getListeners();
-		    if (finalListeners.length > 0) {
-		        PropertyChangeEvent pEvent = new PropertyChangeEvent(
-		                this, PROP_COLORCHANGE, oldValue, newColor);
-		        for (int i = 0; i < finalListeners.length; ++i) {
-		            IPropertyChangeListener listener = (IPropertyChangeListener) finalListeners[i];
-		            listener.propertyChange(pEvent);
-		        }
-		    }
-		    updateColorImage();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ComboFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ComboFieldEditor.java
deleted file mode 100644
index 81bb5b7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ComboFieldEditor.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Remy Chi Jian Suen <remy.suen@gmail.com> - Bug 214392 missing implementation of ComboFieldEditor.setEnabled
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-
-import org.eclipse.core.runtime.Assert;
-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.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A field editor for a combo box that allows the drop-down selection of one of
- * a list of items.
- * 
- * @since 3.3
- */
-public class ComboFieldEditor extends FieldEditor {
-
-	/**
-	 * The <code>Combo</code> widget.
-	 */
-	private Combo fCombo;
-	
-	/**
-	 * The value (not the name) of the currently selected item in the Combo widget.
-	 */
-	private String fValue;
-	
-	/**
-	 * The names (labels) and underlying values to populate the combo widget.  These should be
-	 * arranged as: { {name1, value1}, {name2, value2}, ...}
-	 */
-	private String[][] fEntryNamesAndValues;
-
-	/**
-	 * Create the combo box field editor.
-	 * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-	 * @param entryNamesAndValues the names (labels) and underlying values to populate the combo widget.  These should be
-	 * arranged as: { {name1, value1}, {name2, value2}, ...}
-	 * @param parent the parent composite
-	 */
-	public ComboFieldEditor(String name, String labelText, String[][] entryNamesAndValues, Composite parent) {
-		init(name, labelText);
-		Assert.isTrue(checkArray(entryNamesAndValues));
-		fEntryNamesAndValues = entryNamesAndValues;
-		createControl(parent);		
-	}
-
-	/**
-	 * Checks whether given <code>String[][]</code> is of "type" 
-	 * <code>String[][2]</code>.
-	 *
-	 * @return <code>true</code> if it is ok, and <code>false</code> otherwise
-	 */
-	private boolean checkArray(String[][] table) {
-		if (table == null) {
-			return false;
-		}
-		for (int i = 0; i < table.length; i++) {
-			String[] array = table[i];
-			if (array == null || array.length != 2) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
-	 */
-	protected void adjustForNumColumns(int numColumns) {
-		if (numColumns > 1) {
-			Control control = getLabelControl();
-			int left = numColumns;
-			if (control != null) {
-				((GridData)control.getLayoutData()).horizontalSpan = 1;
-				left = left - 1;
-			}
-			((GridData)fCombo.getLayoutData()).horizontalSpan = left;
-		} else {
-			Control control = getLabelControl();
-			if (control != null) {
-				((GridData)control.getLayoutData()).horizontalSpan = 1;
-			}
-			((GridData)fCombo.getLayoutData()).horizontalSpan = 1;			
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite, int)
-	 */
-	protected void doFillIntoGrid(Composite parent, int numColumns) {
-		int comboC = 1;
-		if (numColumns > 1) {
-			comboC = numColumns - 1;
-		}
-		Control control = getLabelControl(parent);
-		GridData gd = new GridData();
-		gd.horizontalSpan = 1;
-		control.setLayoutData(gd);
-		control = getComboBoxControl(parent);
-		gd = new GridData();
-		gd.horizontalSpan = comboC;
-		gd.horizontalAlignment = GridData.FILL;
-		control.setLayoutData(gd);
-		control.setFont(parent.getFont());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoad()
-	 */
-	protected void doLoad() {
-		updateComboForValue(getPreferenceStore().getString(getPreferenceName()));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
-	 */
-	protected void doLoadDefault() {
-		updateComboForValue(getPreferenceStore().getDefaultString(getPreferenceName()));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#doStore()
-	 */
-	protected void doStore() {
-		if (fValue == null) {
-			getPreferenceStore().setToDefault(getPreferenceName());
-			return;
-		}
-		getPreferenceStore().setValue(getPreferenceName(), fValue);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
-	 */
-	public int getNumberOfControls() {
-		return 2;
-	}
-
-	/*
-	 * Lazily create and return the Combo control.
-	 */
-	private Combo getComboBoxControl(Composite parent) {
-		if (fCombo == null) {
-			fCombo = new Combo(parent, SWT.READ_ONLY);
-			fCombo.setFont(parent.getFont());
-			for (int i = 0; i < fEntryNamesAndValues.length; i++) {
-				fCombo.add(fEntryNamesAndValues[i][0], i);
-			}
-			
-			fCombo.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent evt) {
-					String oldValue = fValue;
-					String name = fCombo.getText();
-					fValue = getValueForName(name);
-					setPresentsDefaultValue(false);
-					fireValueChanged(VALUE, oldValue, fValue);					
-				}
-			});
-		}
-		return fCombo;
-	}
-	
-	/*
-	 * Given the name (label) of an entry, return the corresponding value.
-	 */
-	private String getValueForName(String name) {
-		for (int i = 0; i < fEntryNamesAndValues.length; i++) {
-			String[] entry = fEntryNamesAndValues[i];
-			if (name.equals(entry[0])) {
-				return entry[1];
-			}
-		}
-		return fEntryNamesAndValues[0][0];
-	}
-	
-	/*
-	 * Set the name in the combo widget to match the specified value.
-	 */
-	private void updateComboForValue(String value) {
-		fValue = value;
-		for (int i = 0; i < fEntryNamesAndValues.length; i++) {
-			if (value.equals(fEntryNamesAndValues[i][1])) {
-				fCombo.setText(fEntryNamesAndValues[i][0]);
-				return;
-			}
-		}
-		if (fEntryNamesAndValues.length > 0) {
-			fValue = fEntryNamesAndValues[0][1];
-			fCombo.setText(fEntryNamesAndValues[0][0]);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.FieldEditor#setEnabled(boolean,
-	 *      org.eclipse.swt.widgets.Composite)
-	 */
-	public void setEnabled(boolean enabled, Composite parent) {
-		super.setEnabled(enabled, parent);
-		getComboBoxControl(parent).setEnabled(enabled);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/DirectoryFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/DirectoryFieldEditor.java
deleted file mode 100644
index ff489f2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/DirectoryFieldEditor.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.io.File;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-
-/**
- * A field editor for a directory path type preference. A standard directory
- * dialog appears when the user presses the change button.
- */
-public class DirectoryFieldEditor extends StringButtonFieldEditor {
-    /**
-     * Creates a new directory field editor 
-     */
-    protected DirectoryFieldEditor() {
-    }
-
-    /**
-     * Creates a directory field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    public DirectoryFieldEditor(String name, String labelText, Composite parent) {
-        init(name, labelText);
-        setErrorMessage(JFaceResources
-                .getString("DirectoryFieldEditor.errorMessage"));//$NON-NLS-1$
-        setChangeButtonText(JFaceResources.getString("openBrowse"));//$NON-NLS-1$
-        setValidateStrategy(VALIDATE_ON_FOCUS_LOST);
-        createControl(parent);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StringButtonFieldEditor.
-     * Opens the directory chooser dialog and returns the selected directory.
-     */
-    protected String changePressed() {
-        File f = new File(getTextControl().getText());
-        if (!f.exists()) {
-			f = null;
-		}
-        File d = getDirectory(f);
-        if (d == null) {
-			return null;
-		}
-
-        return d.getAbsolutePath();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StringFieldEditor.
-     * Checks whether the text input field contains a valid directory.
-     */
-    protected boolean doCheckState() {
-        String fileName = getTextControl().getText();
-        fileName = fileName.trim();
-        if (fileName.length() == 0 && isEmptyStringAllowed()) {
-			return true;
-		}
-        File file = new File(fileName);
-        return file.isDirectory();
-    }
-
-    /**
-     * Helper that opens the directory chooser dialog.
-     * @param startingDirectory The directory the dialog will open in.
-     * @return File File or <code>null</code>.
-     * 
-     */
-    private File getDirectory(File startingDirectory) {
-
-        DirectoryDialog fileDialog = new DirectoryDialog(getShell(), SWT.OPEN | SWT.SHEET);
-        if (startingDirectory != null) {
-			fileDialog.setFilterPath(startingDirectory.getPath());
-		}
-        String dir = fileDialog.open();
-        if (dir != null) {
-            dir = dir.trim();
-            if (dir.length() > 0) {
-				return new File(dir);
-			}
-        }
-
-        return null;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditor.java
deleted file mode 100644
index 51c67c4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditor.java
+++ /dev/null
@@ -1,719 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.jface.dialogs.DialogPage;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-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;
-
-/**
- * Abstract base class for all field editors.
- * <p>
- * A field editor presents the value of a preference to the end 
- * user. The value is loaded from a preference store; if
- * modified by the end user, the value is validated and eventually
- * stored back to the preference store. A field editor reports
- * an event when the value, or the validity of the value, changes.
- * </p>
- * <p>
- * Field editors should be used in conjunction with a field 
- * editor preference page (<code>FieldEditorPreferencePage</code>)
- * which coordinates everything and provides the message line
- * which display messages emanating from the editor.
- * </p>
- * <p>
- * This package contains ready-to-use field editors for various
- * types of preferences:
- * <ul>
- *   <li><code>BooleanFieldEditor</code> - booleans</li>
- *   <li><code>IntegerFieldEditor</code> - integers</li>
- *   <li><code>StringFieldEditor</code> - text strings</li>
- *   <li><code>RadioGroupFieldEditor</code> - enumerations</li>
- *   <li><code>ColorFieldEditor</code> - RGB colors</li>
- *   <li><code>FontFieldEditor</code> - fonts</li>
- *   <li><code>DirectoryFieldEditor</code> - directories</li>
- *   <li><code>FileFieldEditor</code> - files</li>
- *   <li><code>PathEditor</code> - paths</li>
- * </ul>
- * </p>
- */
-public abstract class FieldEditor {
-
-    /**
-     * Property name constant (value <code>"field_editor_is_valid"</code>)
-     * to signal a change in the validity of the value of this field editor.
-     */
-    public static final String IS_VALID = "field_editor_is_valid";//$NON-NLS-1$
-
-    /**
-     * Property name constant (value <code>"field_editor_value"</code>)
-     * to signal a change in the value of this field editor.
-     */
-    public static final String VALUE = "field_editor_value";//$NON-NLS-1$
-
-    /** 
-     * Gap between label and control.
-     */
-    protected static final int HORIZONTAL_GAP = 8;
-
-    /**
-     * The preference store, or <code>null</code> if none.
-     */
-    private IPreferenceStore preferenceStore = null;
-
-    /**
-     * The name of the preference displayed in this field editor.
-     */
-    private String preferenceName;
-
-    /**
-     * Indicates whether the default value is currently displayed,
-     * initially <code>false</code>.
-     */
-    private boolean isDefaultPresented = false;
-
-    /**
-     * The label's text.
-     */
-    private String labelText;
-
-    /**
-     * The label control.
-     */
-    private Label label;
-
-    /**
-     * Listener, or <code>null</code> if none
-     */
-    private IPropertyChangeListener propertyChangeListener;
-
-    /** 
-     * The page containing this field editor
-     */
-    private DialogPage page;
-
-    /**
-     * Creates a new field editor.
-     */
-    protected FieldEditor() {
-    }
-
-    /**
-     * Creates a new field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    protected FieldEditor(String name, String labelText, Composite parent) {
-        init(name, labelText);
-        createControl(parent);
-    }
-
-    /**
-     * Adjusts the horizontal span of this field editor's basic controls.
-     * <p>
-     * Subclasses must implement this method to adjust the horizontal span 
-     * of controls so they appear correct in the given number of columns.
-     * </p>
-     * <p>
-     * The number of columns will always be equal to or greater than the 
-     * value returned by this editor's <code>getNumberOfControls</code> method.
-     *
-     * @param numColumns the number of columns
-     */
-    protected abstract void adjustForNumColumns(int numColumns);
-
-    /**
-     * Applies a font.
-     * <p>
-     * The default implementation of this framework method
-     * does nothing. Subclasses should override this method
-     * if they want to change the font of the SWT control to
-     * a value different than the standard dialog font.
-     * </p>
-     */
-    protected void applyFont() {
-    }
-
-    /**
-     * Checks if the given parent is the current parent of the
-     * supplied control; throws an (unchecked) exception if they
-     * are not correctly related.
-     *
-     * @param control the control
-     * @param parent the parent control
-     */
-    protected void checkParent(Control control, Composite parent) {
-        Assert.isTrue(control.getParent() == parent, "Different parents");//$NON-NLS-1$
-    }
-
-    /**
-     * Clears the error message from the message line.
-     */
-    protected void clearErrorMessage() {
-        if (page != null) {
-			page.setErrorMessage(null);
-		}
-    }
-
-    /**
-     * Clears the normal message from the message line.
-     */
-    protected void clearMessage() {
-        if (page != null) {
-			page.setMessage(null);
-		}
-    }
-
-    /**
-     * Returns the number of pixels corresponding to the
-     * given number of horizontal dialog units.
-     * <p>
-     * Clients may call this framework method, but should not override it.
-     * </p>
-     *
-     * @param control the control being sized
-     * @param dlus the number of horizontal dialog units
-     * @return the number of pixels
-     */
-    protected int convertHorizontalDLUsToPixels(Control control, int dlus) {
-        GC gc = new GC(control);
-        gc.setFont(control.getFont());
-        int averageWidth = gc.getFontMetrics().getAverageCharWidth();
-        gc.dispose();
-
-        double horizontalDialogUnitSize = averageWidth * 0.25;
-
-        return (int) Math.round(dlus * horizontalDialogUnitSize);
-    }
-
-    /**
-     * Returns the number of pixels corresponding to the
-     * given number of vertical dialog units.
-     * <p>
-     * Clients may call this framework method, but should not override it.
-     * </p>
-     *
-     * @param control the control being sized
-     * @param dlus the number of vertical dialog units
-     * @return the number of pixels
-     */
-    protected int convertVerticalDLUsToPixels(Control control, int dlus) {
-        GC gc = new GC(control);
-        gc.setFont(control.getFont());
-        int height = gc.getFontMetrics().getHeight();
-        gc.dispose();
-
-        double verticalDialogUnitSize = height * 0.125;
-
-        return (int) Math.round(dlus * verticalDialogUnitSize);
-    }
-
-    /**
-     * Creates this field editor's main control containing all of its
-     * basic controls.
-     *
-     * @param parent the parent control
-     */
-    protected void createControl(Composite parent) {
-        GridLayout layout = new GridLayout();
-        layout.numColumns = getNumberOfControls();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        layout.horizontalSpacing = HORIZONTAL_GAP;
-        parent.setLayout(layout);
-        doFillIntoGrid(parent, layout.numColumns);
-    }
-
-    /**
-     * Disposes the SWT resources used by this field editor.
-     */
-    public void dispose() {
-        // nothing to dispose
-    }
-
-    /**
-     * Fills this field editor's basic controls into the given parent.
-     * <p>
-     * Subclasses must implement this method to create the controls
-     * for this field editor.
-     * </p>
-     * <p>
-     * Note this method may be called by the constructor, so it must not access
-     * fields on the receiver object because they will not be fully initialized.
-     * </p>
-     *
-     * @param parent the composite used as a parent for the basic controls;
-     *	the parent's layout must be a <code>GridLayout</code>
-     * @param numColumns the number of columns
-     */
-    protected abstract void doFillIntoGrid(Composite parent, int numColumns);
-
-    /**
-     * Initializes this field editor with the preference value from
-     * the preference store.
-     * <p>
-     * Subclasses must implement this method to properly initialize 
-     * the field editor.
-     * </p>
-     */
-    protected abstract void doLoad();
-
-    /**
-     * Initializes this field editor with the default preference value from
-     * the preference store.
-     * <p>
-     * Subclasses must implement this method to properly initialize 
-     * the field editor.
-     * </p>
-     */
-    protected abstract void doLoadDefault();
-
-    /**
-     * Stores the preference value from this field editor into
-     * the preference store.
-     * <p>
-     * Subclasses must implement this method to save the entered value
-     * into the preference store.
-     * </p>
-     */
-    protected abstract void doStore();
-
-    /**
-     * Fills this field editor's basic controls into the given parent. 
-     *
-     * @param parent the composite used as a parent for the basic controls;
-     *	the parent's layout must be a <code>GridLayout</code>
-     * @param numColumns the number of columns
-     */
-    public void fillIntoGrid(Composite parent, int numColumns) {
-        Assert.isTrue(numColumns >= getNumberOfControls());
-        Assert.isTrue(parent.getLayout() instanceof GridLayout);
-        doFillIntoGrid(parent, numColumns);
-    }
-
-    /**
-     * Informs this field editor's listener, if it has one, about a change to
-     * one of this field editor's boolean-valued properties. Does nothing
-     * if the old and new values are the same.
-     *
-     * @param property the field editor property name, 
-     *   such as <code>VALUE</code> or <code>IS_VALID</code>
-     * @param oldValue the old value
-     * @param newValue the new value
-     */
-    protected void fireStateChanged(String property, boolean oldValue,
-            boolean newValue) {
-        if (oldValue == newValue) {
-			return;
-		}
-        fireValueChanged(property, oldValue ? Boolean.TRUE : Boolean.FALSE, newValue ? Boolean.TRUE : Boolean.FALSE);
-    }
-
-    /**
-     * Informs this field editor's listener, if it has one, about a change to
-     * one of this field editor's properties.
-     *
-     * @param property the field editor property name, 
-     *   such as <code>VALUE</code> or <code>IS_VALID</code>
-     * @param oldValue the old value object, or <code>null</code>
-     * @param newValue the new value, or <code>null</code>
-     */
-    protected void fireValueChanged(String property, Object oldValue,
-            Object newValue) {
-        if (propertyChangeListener == null) {
-			return;
-		}
-        propertyChangeListener.propertyChange(new PropertyChangeEvent(this,
-                property, oldValue, newValue));
-    }
-
-    /**
-     * Returns the symbolic font name used by this field editor.
-     *
-     * @return the symbolic font name
-     */
-    public String getFieldEditorFontName() {
-        return JFaceResources.DIALOG_FONT;
-    }
-
-    /**
-     * Returns the label control. 
-     *
-     * @return the label control, or <code>null</code>
-     *  if no label control has been created
-     */
-    protected Label getLabelControl() {
-        return label;
-    }
-
-    /**
-     * Returns this field editor's label component.
-     * <p>
-     * The label is created if it does not already exist
-     * </p>
-     *
-     * @param parent the parent
-     * @return the label control
-     */
-    public Label getLabelControl(Composite parent) {
-        if (label == null) {
-            label = new Label(parent, SWT.LEFT);
-            label.setFont(parent.getFont());
-            String text = getLabelText();
-            if (text != null) {
-				label.setText(text);
-			}
-            label.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    label = null;
-                }
-            });
-        } else {
-            checkParent(label, parent);
-        }
-        return label;
-    }
-
-    /**
-     * Returns this field editor's label text.
-     *
-     * @return the label text
-     */
-    public String getLabelText() {
-        return labelText;
-    }
-
-    /**
-     * Returns the number of basic controls this field editor consists of.
-     *
-     * @return the number of controls
-     */
-    public abstract int getNumberOfControls();
-
-    /**
-     * Returns the name of the preference this field editor operates on.
-     *
-     * @return the name of the preference
-     */
-    public String getPreferenceName() {
-        return preferenceName;
-    }
-
-    /**
-     * Returns the preference page in which this field editor
-     * appears.
-     *
-     * @return the preference page, or <code>null</code> if none
-     * @deprecated use #getPage()
-     */
-    protected PreferencePage getPreferencePage() {
-    	if(page != null && page instanceof PreferencePage) {
-			return (PreferencePage) page;
-		}
-    	return null;
-    }
-    
-    /**
-     * Return the DialogPage that the receiver is sending
-     * updates to.
-     * 
-     * @return DialogPage or <code>null</code> if it 
-     * has not been set.
-     * 
-     * @since 3.1
-     */
-    protected DialogPage getPage(){
-    	return page;
-    }
-
-    /**
-     * Returns the preference store used by this field editor.
-     *
-     * @return the preference store, or <code>null</code> if none
-     * @see #setPreferenceStore
-     */
-    public IPreferenceStore getPreferenceStore() {
-        return preferenceStore;
-    }
-
-    /**
-     * Initialize the field editor with the given preference name and label.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param text the label text of the field editor
-     */
-    protected void init(String name, String text) {
-        Assert.isNotNull(name);
-        Assert.isNotNull(text);
-        preferenceName = name;
-        this.labelText = text;
-    }
-
-    /**
-     * Returns whether this field editor contains a valid value.
-     * <p>
-     * The default implementation of this framework method
-     * returns <code>true</code>. Subclasses wishing to perform
-     * validation should override both this method and
-     * <code>refreshValidState</code>.
-     * </p>
-     * 
-     * @return <code>true</code> if the field value is valid,
-     *   and <code>false</code> if invalid
-     * @see #refreshValidState()
-     */
-    public boolean isValid() {
-        return true;
-    }
-
-    /**
-     * Initializes this field editor with the preference value from
-     * the preference store.
-     */
-    public void load() {
-        if (preferenceStore != null) {
-            isDefaultPresented = false;
-            doLoad();
-            refreshValidState();
-        }
-    }
-
-    /**
-     * Initializes this field editor with the default preference value
-     * from the preference store.
-     */
-    public void loadDefault() {
-        if (preferenceStore != null) {
-            isDefaultPresented = true;
-            doLoadDefault();
-            refreshValidState();
-        }
-    }
-
-    /**
-     * Returns whether this field editor currently presents the
-     * default value for its preference.
-     * 
-     * @return <code>true</code> if the default value is presented,
-     *   and <code>false</code> otherwise
-     */
-    public boolean presentsDefaultValue() {
-        return isDefaultPresented;
-    }
-
-    /**
-     * Refreshes this field editor's valid state after a value change
-     * and fires an <code>IS_VALID</code> property change event if
-     * warranted.
-     * <p>
-     * The default implementation of this framework method does
-     * nothing. Subclasses wishing to perform validation should override
-     * both this method and <code>isValid</code>.
-     * </p>
-     *
-     * @see #isValid
-     */
-    protected void refreshValidState() {
-    }
-
-    /**
-     * Sets the focus to this field editor.
-     * <p>
-     * The default implementation of this framework method
-     * does nothing. Subclasses may reimplement.
-     * </p>
-     */
-    public void setFocus() {
-        // do nothing;
-    }
-
-    /**
-     * Sets this field editor's label text.
-     * The label is typically presented to the left of the entry field.
-     *
-     * @param text the label text
-     */
-    public void setLabelText(String text) {
-        Assert.isNotNull(text);
-        labelText = text;
-        if (label != null) {
-			label.setText(text);
-		}
-    }
-
-    /**
-     * Sets the name of the preference this field editor operates on.
-     * <p>
-     * The ability to change this allows the same field editor object
-     * to be reused for different preferences.
-     * </p>
-     * <p>
-     * For example: <p>
-     * <pre>
-     * 	...
-     *  editor.setPreferenceName("font");
-     * 	editor.load();
-     * </pre>
-     * </p>
-     *
-     * @param name the name of the preference
-     */
-    public void setPreferenceName(String name) {
-        preferenceName = name;
-    }
-
-    /**
-     * Sets the preference page in which this field editor
-     * appears.
-     *
-     * @param preferencePage the preference page, or <code>null</code> if none
-     * @deprecated use #setPage(DialogPage)
-     */
-    public void setPreferencePage(PreferencePage preferencePage) {
-        setPage(preferencePage);
-    }
-    
-
-    /**
-     * Set the page to be the receiver.
-	 * @param dialogPage
-	 * 
-	 * @since 3.1
-	 */
-	public void setPage(DialogPage dialogPage) {
-		page = dialogPage;
-		
-	}
-
-	/**
-     * Sets the preference store used by this field editor.
-     *
-     * @param store the preference store, or <code>null</code> if none
-     * @see #getPreferenceStore
-     */
-    public void setPreferenceStore(IPreferenceStore store) {
-        preferenceStore = store;
-    }
-
-    /**
-     * Sets whether this field editor is presenting the default value.
-     *
-     * @param booleanValue <code>true</code> if the default value is being presented,
-     *  and <code>false</code> otherwise
-     */
-    protected void setPresentsDefaultValue(boolean booleanValue) {
-        isDefaultPresented = booleanValue;
-    }
-
-    /**
-     * Sets or removes the property change listener for this field editor.
-     * <p>
-     * Note that field editors can support only a single listener.
-     * </p>
-     *
-     * @param listener a property change listener, or <code>null</code>
-     *  to remove
-     */
-    public void setPropertyChangeListener(IPropertyChangeListener listener) {
-        propertyChangeListener = listener;
-    }
-
-    /**
-     * Shows the given error message in the page for this
-     * field editor if it has one.
-     *
-     * @param msg the error message
-     */
-    protected void showErrorMessage(String msg) {
-        if (page != null) {
-			page.setErrorMessage(msg);
-		}
-    }
-
-    /**
-     * Shows the given message in the page for this
-     * field editor if it has one.
-     *
-     * @param msg the message
-     */
-    protected void showMessage(String msg) {
-        if (page != null) {
-			page.setErrorMessage(msg);
-		}
-    }
-
-    /**
-     * Stores this field editor's value back into the preference store.
-     */
-    public void store() {
-        if (preferenceStore == null) {
-			return;
-		}
-
-        if (isDefaultPresented) {
-            preferenceStore.setToDefault(preferenceName);
-        } else {
-            doStore();
-        }
-    }
-
-    /**
-     * Set the GridData on button to be one that is spaced for the
-     * current font.
-     * @param button the button the data is being set on.
-     */
-
-    protected void setButtonLayoutData(Button button) {
-
-        GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-
-        // Compute and store a font metric
-        GC gc = new GC(button);
-        gc.setFont(button.getFont());
-        FontMetrics fontMetrics = gc.getFontMetrics();
-        gc.dispose();
-
-        int widthHint = org.eclipse.jface.dialogs.Dialog
-                .convertVerticalDLUsToPixels(fontMetrics,
-                        IDialogConstants.BUTTON_WIDTH);
-        data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT,
-                SWT.DEFAULT, true).x);
-        button.setLayoutData(data);
-    }
-
-    /**
-     * Set whether or not the controls in the field editor
-     * are enabled.
-     * @param enabled The enabled state.
-     * @param parent The parent of the controls in the group.
-     *  Used to create the controls if required.
-     */
-    public void setEnabled(boolean enabled, Composite parent) {
-        getLabelControl(parent).setEnabled(enabled);
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditorPreferencePage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditorPreferencePage.java
deleted file mode 100644
index 1863709..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditorPreferencePage.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- * 	   Chris Tilt (chris@tilts.net) - Bug 38547 - [Preferences] Changing preferences 
- * 			ignored after "Restore defaults" pressed.
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-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;
-
-/**
- * A special abstract preference page to host field editors.
- * <p>
- * Subclasses must implement the <code>createFieldEditors</code> method
- * and should override <code>createLayout</code> if a special layout of the field
- * editors is needed.
- * </p>
- */
-public abstract class FieldEditorPreferencePage extends PreferencePage
-        implements IPropertyChangeListener {
-
-    /**
-     * Layout constant (value <code>0</code>) indicating that
-     * each field editor is handled as a single component.
-     */
-    public static final int FLAT = 0;
-
-    /**
-     * Layout constant (value <code>1</code>) indicating that
-     * the field editors' basic controls are put into a grid layout.
-     */
-    public static final int GRID = 1;
-
-    /** 
-     * The vertical spacing used by layout styles <code>FLAT</code> 
-     * and <code>GRID</code>.
-     */
-    protected static final int VERTICAL_SPACING = 10;
-
-    /** 
-     * The margin width used by layout styles <code>FLAT</code> 
-     * and <code>GRID</code>.
-     */
-    protected static final int MARGIN_WIDTH = 0;
-
-    /** 
-     * The margin height used by layout styles <code>FLAT</code> 
-     * and <code>GRID</code>.
-     */
-    protected static final int MARGIN_HEIGHT = 0;
-
-    /**
-     * The field editors, or <code>null</code> if not created yet.
-     */
-    private List fields = null;
-
-    /**
-     * The layout style; either <code>FLAT</code> or <code>GRID</code>.
-     */
-    private int style;
-
-    /** 
-     * The first invalid field editor, or <code>null</code>
-     * if all field editors are valid.
-     */
-    private FieldEditor invalidFieldEditor = null;
-
-    /**
-     * The parent composite for field editors
-     */
-    private Composite fieldEditorParent;
-
-    /**
-	 * Create a new instance of the reciever.
-	 */
-	public FieldEditorPreferencePage() {
-		this(FLAT);
-	}
-
-	/**
-     * Creates a new field editor preference page with the given style,
-     * an empty title, and no image.
-     *
-     * @param style either <code>GRID</code> or <code>FLAT</code>
-     */
-    protected FieldEditorPreferencePage(int style) {
-        super();
-        this.style = style;
-    }
-
-    /**
-     * Creates a new field editor preference page with the given title 
-     * and style, but no image.
-     *
-     * @param title the title of this preference page
-     * @param style either <code>GRID</code> or <code>FLAT</code>
-     */
-    protected FieldEditorPreferencePage(String title, int style) {
-        super(title);
-        this.style = style;
-    }
-
-    /**
-     * Creates a new field editor preference page with the given title,
-     * image, and style.
-     *
-     * @param title the title of this preference page
-     * @param image the image for this preference page, or 
-     *   <code>null</code> if none
-     * @param style either <code>GRID</code> or <code>FLAT</code>
-     */
-    protected FieldEditorPreferencePage(String title, ImageDescriptor image,
-            int style) {
-        super(title, image);
-        this.style = style;
-    }
-
-    /**
-     * Adds the given field editor to this page.
-     *
-     * @param editor the field editor
-     */
-    protected void addField(FieldEditor editor) {
-        if (fields == null) {
-			fields = new ArrayList();
-		}
-        fields.add(editor);
-    }
-
-    /**
-     * Adjust the layout of the field editors so that
-     * they are properly aligned.
-     */
-    protected void adjustGridLayout() {
-        int numColumns = calcNumberOfColumns();
-        ((GridLayout) fieldEditorParent.getLayout()).numColumns = numColumns;
-        if (fields != null) {
-            for (int i = 0; i < fields.size(); i++) {
-                FieldEditor fieldEditor = (FieldEditor) fields.get(i);
-                fieldEditor.adjustForNumColumns(numColumns);
-            }
-        }
-    }
-
-    /**
-     * Applys the font to the field editors managed by this page.
-     */
-    protected void applyFont() {
-        if (fields != null) {
-            Iterator e = fields.iterator();
-            while (e.hasNext()) {
-                FieldEditor pe = (FieldEditor) e.next();
-                pe.applyFont();
-            }
-        }
-    }
-
-    /**
-     * Calculates the number of columns needed to host all field editors.
-     *
-     * @return the number of columns
-     */
-    private int calcNumberOfColumns() {
-        int result = 0;
-        if (fields != null) {
-            Iterator e = fields.iterator();
-            while (e.hasNext()) {
-                FieldEditor pe = (FieldEditor) e.next();
-                result = Math.max(result, pe.getNumberOfControls());
-            }
-        }
-        return result;
-    }
-
-    /**
-     * Recomputes the page's error state by calling <code>isValid</code> for
-     * every field editor.
-     */
-    protected void checkState() {
-        boolean valid = true;
-        invalidFieldEditor = null;
-        // The state can only be set to true if all
-        // field editors contain a valid value. So we must check them all
-        if (fields != null) {
-            int size = fields.size();
-            for (int i = 0; i < size; i++) {
-                FieldEditor editor = (FieldEditor) fields.get(i);
-                valid = valid && editor.isValid();
-                if (!valid) {
-                    invalidFieldEditor = editor;
-                    break;
-                }
-            }
-        }
-        setValid(valid);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PreferencePage.
-     */
-    protected Control createContents(Composite parent) {
-        fieldEditorParent = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 1;
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        fieldEditorParent.setLayout(layout);
-        fieldEditorParent.setFont(parent.getFont());
-
-        createFieldEditors();
-
-        if (style == GRID) {
-			adjustGridLayout();
-		}
-
-        initialize();
-        checkState();
-        return fieldEditorParent;
-    }
-
-    /**
-     * Creates the page's field editors.
-     * <p>
-     * The default implementation of this framework method
-     * does nothing. Subclass must implement this method to
-     * create the field editors.
-     * </p>
-     * <p>
-     * Subclasses should call <code>getFieldEditorParent</code>
-     * to obtain the parent control for each field editor.
-     * This same parent should not be used for more than
-     * one editor as the parent may change for each field
-     * editor depending on the layout style of the page
-     * </p>
-     */
-    protected abstract void createFieldEditors();
-
-    /**	
-     * The field editor preference page implementation of an <code>IDialogPage</code>
-     * method disposes of this page's controls and images.
-     * Subclasses may override to release their own allocated SWT
-     * resources, but must call <code>super.dispose</code>.
-     */
-    public void dispose() {
-        super.dispose();
-        if (fields != null) {
-            Iterator e = fields.iterator();
-            while (e.hasNext()) {
-                FieldEditor pe = (FieldEditor) e.next();
-                pe.setPage(null);
-                pe.setPropertyChangeListener(null);
-                pe.setPreferenceStore(null);
-            }
-        }
-    }
-
-    /**
-     * Returns a parent composite for a field editor.
-     * <p>
-     * This value must not be cached since a new parent
-     * may be created each time this method called. Thus
-     * this method must be called each time a field editor
-     * is constructed.
-     * </p>
-     *
-     * @return a parent
-     */
-    protected Composite getFieldEditorParent() {
-        if (style == FLAT) {
-            // Create a new parent for each field editor
-            Composite parent = new Composite(fieldEditorParent, SWT.NULL);
-            parent.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-            return parent;
-        }
-        // Just return the parent
-        return fieldEditorParent;
-    }
-
-    /**
-     * Initializes all field editors.
-     */
-    protected void initialize() {
-        if (fields != null) {
-            Iterator e = fields.iterator();
-            while (e.hasNext()) {
-                FieldEditor pe = (FieldEditor) e.next();
-                pe.setPage(this);
-                pe.setPropertyChangeListener(this);
-                pe.setPreferenceStore(getPreferenceStore());
-                pe.load();
-            }
-        }
-    }
-
-    /**	
-     * The field editor preference page implementation of a <code>PreferencePage</code>
-     * method loads all the field editors with their default values.
-     */
-    protected void performDefaults() {
-        if (fields != null) {
-            Iterator e = fields.iterator();
-            while (e.hasNext()) {
-                FieldEditor pe = (FieldEditor) e.next();
-                pe.loadDefault();
-            }
-        }
-        // Force a recalculation of my error state.
-        checkState();
-        super.performDefaults();
-    }
-
-    /** 
-     * The field editor preference page implementation of this 
-     * <code>PreferencePage</code> method saves all field editors by
-     * calling <code>FieldEditor.store</code>. Note that this method
-     * does not save the preference store itself; it just stores the
-     * values back into the preference store.
-     *
-     * @see FieldEditor#store()
-     */
-    public boolean performOk() {
-        if (fields != null) {
-            Iterator e = fields.iterator();
-            while (e.hasNext()) {
-                FieldEditor pe = (FieldEditor) e.next();
-                pe.store();
-                pe.setPresentsDefaultValue(false);
-            }
-        }
-        return true;
-    }
-
-    /**
-     * The field editor preference page implementation of this <code>IPreferencePage</code>
-     * (and <code>IPropertyChangeListener</code>) method intercepts <code>IS_VALID</code> 
-     * events but passes other events on to its superclass.
-     */
-    public void propertyChange(PropertyChangeEvent event) {
-
-        if (event.getProperty().equals(FieldEditor.IS_VALID)) {
-            boolean newValue = ((Boolean) event.getNewValue()).booleanValue();
-            // If the new value is true then we must check all field editors.
-            // If it is false, then the page is invalid in any case.
-            if (newValue) {
-                checkState();
-            } else {
-                invalidFieldEditor = (FieldEditor) event.getSource();
-                setValid(newValue);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialog.
-     */
-    public void setVisible(boolean visible) {
-        super.setVisible(visible);
-        if (visible && invalidFieldEditor != null) {
-            invalidFieldEditor.setFocus();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FileFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FileFieldEditor.java
deleted file mode 100644
index 8394cca..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FileFieldEditor.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.io.File;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.FileDialog;
-
-/**
- * A field editor for a file path type preference. A standard file 
- * dialog appears when the user presses the change button.
- */
-public class FileFieldEditor extends StringButtonFieldEditor {
-
-    /**
-     * List of legal file extension suffixes, or <code>null</code>
-     * for system defaults.
-     */
-    private String[] extensions = null;
-
-    /**
-     * Indicates whether the path must be absolute;
-     * <code>false</code> by default.
-     */
-    private boolean enforceAbsolute = false;
-
-    /**
-     * Creates a new file field editor 
-     */
-    protected FileFieldEditor() {
-    }
-
-    /**
-     * Creates a file field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    public FileFieldEditor(String name, String labelText, Composite parent) {
-        this(name, labelText, false, parent);
-    }
-    
-    /**
-     * Creates a file field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param enforceAbsolute <code>true</code> if the file path
-     *  must be absolute, and <code>false</code> otherwise
-     * @param parent the parent of the field editor's control
-     */
-    public FileFieldEditor(String name, String labelText, boolean enforceAbsolute, Composite parent) {
-        this(name, labelText, enforceAbsolute, VALIDATE_ON_FOCUS_LOST, parent);
-    }
-    /**
-     * Creates a file field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param enforceAbsolute <code>true</code> if the file path
-     *  must be absolute, and <code>false</code> otherwise
-     * @param validationStrategy either {@link StringButtonFieldEditor#VALIDATE_ON_KEY_STROKE}
-     *  to perform on the fly checking, or {@link StringButtonFieldEditor#VALIDATE_ON_FOCUS_LOST}
-     *  (the default) to perform validation only after the text has been typed in
-     * @param parent the parent of the field editor's control.
-     * @since 3.4
-     * @see StringButtonFieldEditor#VALIDATE_ON_KEY_STROKE
-     * @see StringButtonFieldEditor#VALIDATE_ON_FOCUS_LOST
-     */
-    public FileFieldEditor(String name, String labelText,
-            boolean enforceAbsolute, int validationStrategy, Composite parent) {
-        init(name, labelText);
-        this.enforceAbsolute = enforceAbsolute;
-        setErrorMessage(JFaceResources
-                .getString("FileFieldEditor.errorMessage"));//$NON-NLS-1$
-        setChangeButtonText(JFaceResources.getString("openBrowse"));//$NON-NLS-1$
-        setValidateStrategy(validationStrategy);
-        createControl(parent);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StringButtonFieldEditor.
-     * Opens the file chooser dialog and returns the selected file.
-     */
-    protected String changePressed() {
-        File f = new File(getTextControl().getText());
-        if (!f.exists()) {
-			f = null;
-		}
-        File d = getFile(f);
-        if (d == null) {
-			return null;
-		}
-
-        return d.getAbsolutePath();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StringFieldEditor.
-     * Checks whether the text input field specifies an existing file.
-     */
-    protected boolean checkState() {
-
-        String msg = null;
-
-        String path = getTextControl().getText();
-        if (path != null) {
-			path = path.trim();
-		} else {
-			path = "";//$NON-NLS-1$
-		}
-        if (path.length() == 0) {
-            if (!isEmptyStringAllowed()) {
-				msg = getErrorMessage();
-			}
-        } else {
-            File file = new File(path);
-            if (file.isFile()) {
-                if (enforceAbsolute && !file.isAbsolute()) {
-					msg = JFaceResources
-                            .getString("FileFieldEditor.errorMessage2");//$NON-NLS-1$
-				}
-            } else {
-                msg = getErrorMessage();
-            }
-        }
-
-        if (msg != null) { // error
-            showErrorMessage(msg);
-            return false;
-        }
-
-        // OK!
-        clearErrorMessage();
-        return true;
-    }
-
-    /**
-     * Helper to open the file chooser dialog.
-     * @param startingDirectory the directory to open the dialog on.
-     * @return File The File the user selected or <code>null</code> if they
-     * do not.
-     */
-    private File getFile(File startingDirectory) {
-
-        FileDialog dialog = new FileDialog(getShell(), SWT.OPEN | SWT.SHEET);
-        if (startingDirectory != null) {
-			dialog.setFileName(startingDirectory.getPath());
-		}
-        if (extensions != null) {
-			dialog.setFilterExtensions(extensions);
-		}
-        String file = dialog.open();
-        if (file != null) {
-            file = file.trim();
-            if (file.length() > 0) {
-				return new File(file);
-			}
-        }
-
-        return null;
-    }
-
-    /**
-     * Sets this file field editor's file extension filter.
-     *
-     * @param extensions a list of file extension, or <code>null</code> 
-     * to set the filter to the system's default value
-     */
-    public void setFileExtensions(String[] extensions) {
-        this.extensions = extensions;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FontFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FontFieldEditor.java
deleted file mode 100644
index fd3fc6d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FontFieldEditor.java
+++ /dev/null
@@ -1,420 +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.jface.preference;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.StringConverter;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.FontDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * A field editor for a font type preference.
- */
-public class FontFieldEditor extends FieldEditor {
-
-    /**
-     * The change font button, or <code>null</code> if none
-     * (before creation and after disposal).
-     */
-    private Button changeFontButton = null;
-
-    /**
-     * The text for the change font button, or <code>null</code>
-     * if missing.
-     */
-    private String changeButtonText;
-
-    /**
-     * The text for the preview, or <code>null</code> if no preview is desired
-     */
-    private String previewText;
-
-    /**
-     * Font data for the chosen font button, or <code>null</code> if none.
-     */
-    private FontData[] chosenFont;
-
-    /**
-     * The label that displays the selected font, or <code>null</code> if none.
-     */
-    private Label valueControl;
-
-    /**
-     * The previewer, or <code>null</code> if none.
-     */
-    private DefaultPreviewer previewer;
-
-    /**
-     * Internal font previewer implementation.
-     */
-    private static class DefaultPreviewer {
-        private Text text;
-
-        private String string;
-
-        private Font font;
-
-        /**
-         * Constructor for the previewer.
-         * @param s
-         * @param parent
-         */
-        public DefaultPreviewer(String s, Composite parent) {
-            string = s;
-            text = new Text(parent, SWT.READ_ONLY | SWT.BORDER);
-            text.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent e) {
-                    if (font != null) {
-						font.dispose();
-					}
-                }
-            });
-            if (string != null) {
-				text.setText(string);
-			}
-        }
-
-        /**
-         * @return the control the previewer is using
-         */
-        public Control getControl() {
-            return text;
-        }
-
-        /**
-         * Set the font to display with
-         * @param fontData
-         */
-        public void setFont(FontData[] fontData) {
-            if (font != null) {
-				font.dispose();
-			}
-            font = new Font(text.getDisplay(), fontData);
-            text.setFont(font);
-        }
-
-        /**
-         * @return the preferred size of the previewer.
-         */
-        public int getPreferredExtent() {
-            return 40;
-        }
-    }
-
-    /**
-     * Creates a new font field editor 
-     */
-    protected FontFieldEditor() {
-    }
-
-    /**
-     * Creates a font field editor with an optional preview area.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param previewAreaText the text used for the preview window. If it is
-     * <code>null</code> there will be no preview area,
-     * @param parent the parent of the field editor's control
-     */
-    public FontFieldEditor(String name, String labelText,
-            String previewAreaText, Composite parent) {
-        init(name, labelText);
-        previewText = previewAreaText;
-        changeButtonText = JFaceResources.getString("openChange"); //$NON-NLS-1$
-        createControl(parent);
-
-    }
-
-    /**
-     * Creates a font field editor without a preview.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    public FontFieldEditor(String name, String labelText, Composite parent) {
-        this(name, labelText, null, parent);
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void adjustForNumColumns(int numColumns) {
-
-        GridData data = new GridData();
-        if (valueControl.getLayoutData() != null) {
-			data = (GridData) valueControl.getLayoutData();
-		}
-
-        data.horizontalSpan = numColumns - getNumberOfControls() + 1;
-        valueControl.setLayoutData(data);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void applyFont() {
-        if (chosenFont != null && previewer != null) {
-			previewer.setFont(chosenFont);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doFillIntoGrid(Composite parent, int numColumns) {
-        getLabelControl(parent);
-
-        valueControl = getValueControl(parent);
-
-        GridData gd = new GridData(GridData.FILL_HORIZONTAL
-                | GridData.GRAB_HORIZONTAL);
-        gd.horizontalSpan = numColumns - getNumberOfControls() + 1;
-        valueControl.setLayoutData(gd);
-        if (previewText != null) {
-            previewer = new DefaultPreviewer(previewText, parent);
-            gd = new GridData(GridData.FILL_HORIZONTAL);
-            gd.heightHint = previewer.getPreferredExtent();
-            gd.widthHint = previewer.getPreferredExtent();
-            previewer.getControl().setLayoutData(gd);
-        }
-
-        changeFontButton = getChangeControl(parent);
-        gd = new GridData();
-        int widthHint = convertHorizontalDLUsToPixels(changeFontButton,
-                IDialogConstants.BUTTON_WIDTH);
-        gd.widthHint = Math.max(widthHint, changeFontButton.computeSize(
-                SWT.DEFAULT, SWT.DEFAULT, true).x);
-        changeFontButton.setLayoutData(gd);
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoad() {
-        if (changeFontButton == null) {
-			return;
-		}
-        updateFont(PreferenceConverter.getFontDataArray(getPreferenceStore(),
-                getPreferenceName()));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoadDefault() {
-        if (changeFontButton == null) {
-			return;
-		}
-        updateFont(PreferenceConverter.getDefaultFontDataArray(
-                getPreferenceStore(), getPreferenceName()));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doStore() {
-        if (chosenFont != null) {
-			PreferenceConverter.setValue(getPreferenceStore(),
-                    getPreferenceName(), chosenFont);
-		}
-    }
-
-    /**
-     * Returns the change button for this field editor.
-     *
-     * @param parent The Composite to create the button in if required.
-     * @return the change button
-     */
-    protected Button getChangeControl(Composite parent) {
-        if (changeFontButton == null) {
-            changeFontButton = new Button(parent, SWT.PUSH);
-            if (changeButtonText != null) {
-				changeFontButton.setText(changeButtonText);
-			}
-            changeFontButton.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent event) {
-                    FontDialog fontDialog = new FontDialog(changeFontButton
-                            .getShell());
-                    if (chosenFont != null) {
-						fontDialog.setFontList(chosenFont);
-					}
-                    FontData font = fontDialog.open();
-                    if (font != null) {
-                        FontData[] oldFont = chosenFont;
-                        if (oldFont == null) {
-							oldFont = JFaceResources.getDefaultFont()
-                                    .getFontData();
-						}
-                        setPresentsDefaultValue(false);
-                        FontData[] newData = new FontData[1];
-                        newData[0] = font;
-                        updateFont(newData);
-                        fireValueChanged(VALUE, oldFont[0], font);
-                    }
-
-                }
-            });
-            changeFontButton.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    changeFontButton = null;
-                }
-            });
-            changeFontButton.setFont(parent.getFont());
-            setButtonLayoutData(changeFontButton);
-        } else {
-            checkParent(changeFontButton, parent);
-        }
-        return changeFontButton;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public int getNumberOfControls() {
-        if (previewer == null) {
-			return 3;
-		}
-        
-        return 4;
-    }
-
-    /**
-     * Returns the preferred preview height. 
-     *
-     * @return the height, or <code>-1</code> if no previewer
-     *  is installed
-     */
-    public int getPreferredPreviewHeight() {
-        if (previewer == null) {
-			return -1;
-		}
-        return previewer.getPreferredExtent();
-    }
-
-    /**
-     * Returns the preview control for this field editor.
-     *
-     * @return the preview control
-     */
-    public Control getPreviewControl() {
-        if (previewer == null) {
-			return null;
-		}
-
-        return previewer.getControl();
-    }
-
-    /**
-     * Returns the value control for this field editor. The value control
-     * displays the currently selected font name.
-     * @param parent The Composite to create the viewer in if required
-     * @return the value control
-     */
-    protected Label getValueControl(Composite parent) {
-        if (valueControl == null) {
-            valueControl = new Label(parent, SWT.LEFT);
-            valueControl.setFont(parent.getFont());
-            valueControl.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    valueControl = null;
-                }
-            });
-        } else {
-            checkParent(valueControl, parent);
-        }
-        return valueControl;
-    }
-
-    /**
-     * Sets the text of the change button.
-     *
-     * @param text the new text
-     */
-    public void setChangeButtonText(String text) {
-        Assert.isNotNull(text);
-        changeButtonText = text;
-        if (changeFontButton != null) {
-			changeFontButton.setText(text);
-		}
-    }
-
-    /**
-     * Updates the change font button and the previewer to reflect the
-     * newly selected font.
-     * @param font The FontData[] to update with.
-     */
-    private void updateFont(FontData font[]) {
-        FontData[] bestFont = JFaceResources.getFontRegistry().filterData(
-                font, valueControl.getDisplay());
-
-        //if we have nothing valid do as best we can
-        if (bestFont == null) {
-			bestFont = getDefaultFontData();
-		}
-
-        //Now cache this value in the receiver
-        this.chosenFont = bestFont;
-
-        if (valueControl != null) {
-            valueControl.setText(StringConverter.asString(chosenFont[0]));
-        }
-        if (previewer != null) {
-            previewer.setFont(bestFont);
-        }
-    }
-
-    /**
-     * Store the default preference for the field
-     * being edited
-     */
-    protected void setToDefault() {
-        FontData[] defaultFontData = PreferenceConverter
-                .getDefaultFontDataArray(getPreferenceStore(),
-                        getPreferenceName());
-        PreferenceConverter.setValue(getPreferenceStore(), getPreferenceName(),
-                defaultFontData);
-    }
-
-    /**
-     * Get the system default font data.
-     * @return FontData[]
-     */
-    private FontData[] getDefaultFontData() {
-        return valueControl.getDisplay().getSystemFont().getFontData();
-    }
-
-    /*
-     * @see FieldEditor.setEnabled(boolean,Composite).
-     */
-    public void setEnabled(boolean enabled, Composite parent) {
-        super.setEnabled(enabled, parent);
-        getChangeControl(parent).setEnabled(enabled);
-        getValueControl(parent).setEnabled(enabled);
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPersistentPreferenceStore.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPersistentPreferenceStore.java
deleted file mode 100644
index e17c0dd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPersistentPreferenceStore.java
+++ /dev/null
@@ -1,29 +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.jface.preference;
-
-import java.io.IOException;
-
-/**
- * IPersistentPreferenceStore is a preference store that can 
- * be saved.
- */
-public interface IPersistentPreferenceStore extends IPreferenceStore {
-
-    /**
-     * Saves the non-default-valued preferences known to this preference
-     * store to the file from which they were originally loaded.
-     *
-     * @exception java.io.IOException if there is a problem saving this store
-     */
-    public void save() throws IOException;
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceNode.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceNode.java
deleted file mode 100644
index b399cc6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceNode.java
+++ /dev/null
@@ -1,115 +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.jface.preference;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Interface to a node in a preference dialog. 
- * A preference node maintains a label and image used to display the
- * node in a preference dialog (usually in the form of a tree), 
- * as well as the preference page this node stands for.
- *
- * The node may use lazy creation for its page
- *
- * Note that all preference nodes must be dispose their resources.
- * The node must dispose the page managed by this node, and any SWT resources
- * allocated by this node (Images, Fonts, etc).
- * However the node itself may be reused.
- */
-public interface IPreferenceNode {
-    /**
-     * Adds the given preference node as a subnode of this
-     * preference node.
-     *
-     * @param node the node to add
-     */
-    public void add(IPreferenceNode node);
-
-    /**
-     * Creates the preference page for this node.
-     */
-    public void createPage();
-
-    /**
-     * Release the page managed by this node, and any SWT resources
-     * held onto by this node (Images, Fonts, etc).  
-     *
-     * Note that nodes are reused so this is not a call to dispose the
-     * node itself.
-     */
-    public void disposeResources();
-
-    /**
-     * Returns the subnode of this contribution node with the given node id.
-     *
-     * @param id the preference node id
-     * @return the subnode, or <code>null</code> if none
-     */
-    public IPreferenceNode findSubNode(String id);
-
-    /**
-     * Returns the id of this contribution node.
-     * This id identifies a contribution node relative to its parent.
-     *
-     * @return the node id
-     */
-    public String getId();
-
-    /**
-     * Returns the image used to present this node in a preference dialog.
-     *
-     * @return the image for this node, or <code>null</code>
-     *   if there is no image for this node
-     */
-    public Image getLabelImage();
-
-    /**
-     * Returns the text label used to present this node in a preference dialog.
-     *
-     * @return the text label for this node, or <code>null</code>
-     *   if there is no label for this node
-     */
-    public String getLabelText();
-
-    /**
-     * Returns the preference page for this node.
-     *
-     * @return the preference page
-     */
-    public IPreferencePage getPage();
-
-    /**
-     * Returns an iterator over the subnodes (immediate children)
-     * of this contribution node.
-     *
-     * @return an IPreferenceNode array containing the child nodes
-     */
-    public IPreferenceNode[] getSubNodes();
-
-    /**
-     * Removes the subnode of this preference node with the given node id.
-     *
-     * @param id the subnode id
-     * @return the removed subnode, or <code>null</code> if none
-     */
-    public IPreferenceNode remove(String id);
-
-    /**
-     * Removes the given preference node from the list of subnodes
-     * (immediate children) of this node.
-     *
-     * @param node the node to remove
-     * @return <code>true</code> if the node was removed,
-     *  and <code>false</code> otherwise
-     */
-    public boolean remove(IPreferenceNode node);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePage.java
deleted file mode 100644
index dd42905..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePage.java
+++ /dev/null
@@ -1,78 +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.jface.preference;
-
-import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * An interface for a preference page. This interface
- * is used primarily by the page's container 
- */
-public interface IPreferencePage extends IDialogPage {
-
-    /**
-     * Computes a size for this page's UI component. 
-     *
-     * @return the size of the preference page encoded as
-     *   <code>new Point(width,height)</code>, or 
-     *   <code>(0,0)</code> if the page doesn't currently have any UI component
-     */
-    public Point computeSize();
-
-    /**
-     * Returns whether this dialog page is in a valid state.
-     * 
-     * @return <code>true</code> if the page is in a valid state,
-     *   and <code>false</code> if invalid
-     */
-    public boolean isValid();
-
-    /**
-     * Checks whether it is alright to leave this page.
-     * 
-     * @return <code>false</code> to abort page flipping and the
-     *  have the current page remain visible, and <code>true</code>
-     *  to allow the page flip
-     */
-    public boolean okToLeave();
-
-    /**
-     * Notifies that the container of this preference page has been canceled.
-     * 
-     * @return <code>false</code> to abort the container's cancel 
-     *  procedure and <code>true</code> to allow the cancel to happen
-     */
-    public boolean performCancel();
-
-    /**
-     * Notifies that the OK button of this page's container has been pressed.
-     * 
-     * @return <code>false</code> to abort the container's OK
-     *  processing and <code>true</code> to allow the OK to happen
-     */
-    public boolean performOk();
-
-    /**
-     * Sets or clears the container of this page.
-     *
-     * @param preferencePageContainer the preference page container, or <code>null</code> 
-     */
-    public void setContainer(IPreferencePageContainer preferencePageContainer);
-
-    /**
-     * Sets the size of this page's UI component.
-     *
-     * @param size the size of the preference page encoded as
-     *   <code>new Point(width,height)</code>
-     */
-    public void setSize(Point size);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePageContainer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePageContainer.java
deleted file mode 100644
index 770e4f7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferencePageContainer.java
+++ /dev/null
@@ -1,61 +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.jface.preference;
-
-/**
- * An interface used by a preference page to talk to
- * its dialog.
- */
-public interface IPreferencePageContainer {
-    /**
-     * Returns the preference store.
-     *
-     * @return the preference store, or <code>null</code> if none
-     */
-    public IPreferenceStore getPreferenceStore();
-
-    /**
-     * Adjusts the enable state of the OK 
-     * button to reflect the state of the currently active 
-     * page in this container.
-     * <p>
-     * This method is called by the container itself
-     * when its preference page changes and may be called
-     * by the page at other times to force a button state
-     * update.
-     * </p>
-     */
-    public void updateButtons();
-
-    /**
-     * Updates the message (or error message) shown in the message line to 
-     * reflect the state of the currently active page in this container.
-     * <p>
-     * This method is called by the container itself
-     * when its preference page changes and may be called
-     * by the page at other times to force a message 
-     * update.
-     * </p>
-     */
-    public void updateMessage();
-
-    /**
-     * Updates the title to reflect the state of the 
-     * currently active page in this container.
-     * <p>
-     * This method is called by the container itself
-     * when its page changes and may be called
-     * by the page at other times to force a title  
-     * update.
-     * </p>
-     */
-    public void updateTitle();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java
deleted file mode 100644
index b15af78..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IPreferenceStore.java
+++ /dev/null
@@ -1,583 +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.jface.preference;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-/**
- * The <code>IPreferenceStore</code> interface represents a table mapping
- * named preferences to values. If there is no value for a given name, 
- * then that preferences's default value is returned; and if there is no
- * default value for that preference, then a default-default value is returned.
- * The default-default values for the primitive types are as follows:
- * <ul>
- * 	<li><code>boolean</code> = <code>false</code></li>
- * 	<li><code>double</code> = <code>0.0</code></li>
- * 	<li><code>float</code> = <code>0.0f</code></li>
- * 	<li><code>int</code> = <code>0</code></li>
- *  <li><code>long</code> = <code>0</code></li>
- * 	<li><code>String</code> = <code>""</code> (the empty string)</li>
- * </ul>
- * <p>
- * Thus a preference store maintains two values for each of a set of
- * names: a current value and a default value.
- * The typical usage is to establish the defaults for all known preferences
- * and then restore previously stored values for preferences whose values 
- * were different from their defaults. After the current values of
- * the preferences have been modified, it is a simple matter to write
- * out only those preferences whose values are different from their defaults.
- * This two-tiered approach to saving and restoring preference setting
- * minimized the number of preferences that need to be persisted; indeed,
- * the normal starting state does not require storing any preferences
- * at all.
- * </p>
- * <p>
- * A property change event is reported whenever a preferences current
- * value actually changes (whether through <code>setValue</code>,
- * <code>setToDefault</code>, or other unspecified means). Note, however,
- * that manipulating default values (with <code>setDefault</code>)
- * does not cause such events to be reported.
- * </p>
- * <p>
- * Clients who need a preference store may implement this interface or 
- * instantiate the standard implementation <code>PreferenceStore</code>.
- * </p>
- *
- * @see PreferenceStore
- */
-public interface IPreferenceStore {
-
-    /**
-     * The default-default value for boolean preferences (<code>false</code>).
-     */
-    public static final boolean BOOLEAN_DEFAULT_DEFAULT = false;
-
-    /**
-     * The default-default value for double preferences (<code>0.0</code>).
-     */
-    public static final double DOUBLE_DEFAULT_DEFAULT = 0.0;
-
-    /**
-     * The default-default value for float preferences (<code>0.0f</code>).
-     */
-    public static final float FLOAT_DEFAULT_DEFAULT = 0.0f;
-
-    /**
-     * The default-default value for int preferences (<code>0</code>).
-     */
-    public static final int INT_DEFAULT_DEFAULT = 0;
-
-    /**
-     * The default-default value for long preferences (<code>0L</code>).
-     */
-    public static final long LONG_DEFAULT_DEFAULT = 0L;
-
-    /**
-     * The default-default value for String preferences (<code>""</code>).
-     */
-    public static final String STRING_DEFAULT_DEFAULT = ""; //$NON-NLS-1$
-
-    /**
-     * The string representation used for <code>true</code> (<code>"true"</code>).
-     */
-    public static final String TRUE = "true"; //$NON-NLS-1$
-
-    /**
-     * The string representation used for <code>false</code> (<code>"false"</code>).
-     */
-    public static final String FALSE = "false"; //$NON-NLS-1$
-
-    /**
-     * <p>
-     * Adds a property change listener to this preference store.
-     * </p>
-     * <p>
-     * <b>Note</b> The types of the oldValue and newValue of the
-     * generated PropertyChangeEvent are determined by whether
-     * or not the typed API in IPreferenceStore was called.
-     * If values are changed via setValue(name,type) the 
-     * values in the PropertyChangedEvent will be of that type.
-     * If they are set using a non typed API (i.e. #setToDefault
-     * or using the OSGI Preferences) the values will be unconverted
-     * Strings.
-     * </p>
-     * <p>
-     * A listener will be called in the same Thread
-     * that it is invoked in. Any Thread dependant listeners (such as 
-     * those who update an SWT widget) will need to update in the
-     * correct Thread. In the case of an SWT update you can update
-     * using Display#syncExec(Runnable) or Display#asyncExec(Runnable).
-     * </p>
-     * <p>  
-     * Likewise any application that updates an IPreferenceStore 
-     * from a Thread other than the UI Thread should be aware of
-     * any listeners that require an update in the UI Thread. 
-     * </p>
-     *
-     * @param listener a property change listener
-     * @see org.eclipse.jface.util.PropertyChangeEvent
-     * @see #setToDefault(String)
-     * @see #setValue(String, boolean)
-     * @see #setValue(String, double)
-     * @see #setValue(String, float)
-     * @see #setValue(String, int)
-     * @see #setValue(String, long)
-     * @see #setValue(String, String)
-     */
-    public void addPropertyChangeListener(IPropertyChangeListener listener);
-
-    /**
-     * Returns whether the named preference is known to this preference
-     * store.
-     *
-     * @param name the name of the preference
-     * @return <code>true</code> if either a current value or a default
-     *  value is known for the named preference, and <code>false</code> otherwise
-     */
-    public boolean contains(String name);
-
-    /**
-     * Fires a property change event corresponding to a change to the
-     * current value of the preference with the given name.
-     * <p>
-     * This method is provided on this interface to simplify the implementation 
-     * of decorators. There is normally no need to call this method since
-     * <code>setValue</code> and <code>setToDefault</code> report such
-     * events in due course. Implementations should funnel all preference
-     * changes through this method.
-     * </p>
-     *
-     * @param name the name of the preference, to be used as the property
-     *  in the event object
-     * @param oldValue the old value
-     * @param newValue the new value
-     */
-    public void firePropertyChangeEvent(String name, Object oldValue,
-            Object newValue);
-
-    /**
-     * Returns the current value of the boolean-valued preference with the
-     * given name.
-     * Returns the default-default value (<code>false</code>) if there
-     * is no preference with the given name, or if the current value 
-     * cannot be treated as a boolean.
-     *
-     * @param name the name of the preference
-     * @return the boolean-valued preference
-     */
-    public boolean getBoolean(String name);
-
-    /**
-     * Returns the default value for the boolean-valued preference
-     * with the given name.
-     * Returns the default-default value (<code>false</code>) if there
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a boolean.
-     *
-     * @param name the name of the preference
-     * @return the default value of the named preference
-     */
-    public boolean getDefaultBoolean(String name);
-
-    /**
-     * Returns the default value for the double-valued preference
-     * with the given name.
-     * Returns the default-default value (<code>0.0</code>) if there
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a double.
-     *
-     * @param name the name of the preference
-     * @return the default value of the named preference
-     */
-    public double getDefaultDouble(String name);
-
-    /**
-     * Returns the default value for the float-valued preference
-     * with the given name.
-     * Returns the default-default value (<code>0.0f</code>) if there
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a float.
-     *
-     * @param name the name of the preference
-     * @return the default value of the named preference
-     */
-    public float getDefaultFloat(String name);
-
-    /**
-     * Returns the default value for the integer-valued preference
-     * with the given name.
-     * Returns the default-default value (<code>0</code>) if there
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as an integer.
-     *
-     * @param name the name of the preference
-     * @return the default value of the named preference
-     */
-    public int getDefaultInt(String name);
-
-    /**
-     * Returns the default value for the long-valued preference
-     * with the given name.
-     * Returns the default-default value (<code>0L</code>) if there
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a long.
-     *
-     * @param name the name of the preference
-     * @return the default value of the named preference
-     */
-    public long getDefaultLong(String name);
-
-    /**
-     * Returns the default value for the string-valued preference
-     * with the given name.
-     * Returns the default-default value (the empty string <code>""</code>) 
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a string.
-     *
-     * @param name the name of the preference
-     * @return the default value of the named preference
-     */
-    public String getDefaultString(String name);
-
-    /**
-     * Returns the current value of the double-valued preference with the
-     * given name.
-     * Returns the default-default value (<code>0.0</code>) if there
-     * is no preference with the given name, or if the current value 
-     * cannot be treated as a double.
-     *
-     * @param name the name of the preference
-     * @return the double-valued preference
-     */
-    public double getDouble(String name);
-
-    /**
-     * Returns the current value of the float-valued preference with the
-     * given name.
-     * Returns the default-default value (<code>0.0f</code>) if there
-     * is no preference with the given name, or if the current value 
-     * cannot be treated as a float.
-     *
-     * @param name the name of the preference
-     * @return the float-valued preference
-     */
-    public float getFloat(String name);
-
-    /**
-     * Returns the current value of the integer-valued preference with the
-     * given name.
-     * Returns the default-default value (<code>0</code>) if there
-     * is no preference with the given name, or if the current value 
-     * cannot be treated as an integter.
-     *
-     * @param name the name of the preference
-     * @return the int-valued preference
-     */
-    public int getInt(String name);
-
-    /**
-     * Returns the current value of the long-valued preference with the
-     * given name.
-     * Returns the default-default value (<code>0L</code>) if there
-     * is no preference with the given name, or if the current value 
-     * cannot be treated as a long.
-     *
-     * @param name the name of the preference
-     * @return the long-valued preference
-     */
-    public long getLong(String name);
-
-    /**
-     * Returns the current value of the string-valued preference with the
-     * given name.
-     * Returns the default-default value (the empty string <code>""</code>)
-     * if there is no preference with the given name, or if the current value 
-     * cannot be treated as a string.
-     *
-     * @param name the name of the preference
-     * @return the string-valued preference
-     */
-    public String getString(String name);
-
-    /**
-     * Returns whether the current value of the preference with the given name
-     * has the default value.
-     *
-     * @param name the name of the preference
-     * @return <code>true</code> if the preference has a known default value
-     * and its current value is the same, and <code>false</code> otherwise
-     * (including the case where the preference is unknown to this store)
-     */
-    public boolean isDefault(String name);
-
-    /**
-     * Returns whether the current values in this property store
-     * require saving.
-     *
-     * @return <code>true</code> if at least one of values of 
-     *  the preferences known to this store has changed and 
-     *  requires saving, and <code>false</code> otherwise.
-     */
-    public boolean needsSaving();
-
-    /**
-     * Sets the current value of the preference with the given name to
-     * the given string value without sending a property change.
-     * <p>
-     * This method does not fire a property change event and 
-     * should only be used for setting internal preferences 
-     * that are not meant to be processed by listeners.
-     * Normal clients should instead call #setValue.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public void putValue(String name, String value);
-
-    /**
-     * Removes the given listener from this preference store.
-     * Has no affect if the listener is not registered.
-     *
-     * @param listener a property change listener
-     */
-    public void removePropertyChangeListener(IPropertyChangeListener listener);
-
-    /**
-     * Sets the default value for the double-valued preference with the
-     * given name. 
-     * <p>
-     * Note that the current value of the preference is affected if
-     * the preference's current value was its old default value, in which
-     * case it changes to the new default value. If the preference's current
-     * is different from its old default value, its current value is
-     * unaffected. No property change events are reported by changing default
-     * values.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new default value for the preference
-     */
-    public void setDefault(String name, double value);
-
-    /**
-     * Sets the default value for the float-valued preference with the
-     * given name. 
-     * <p>
-     * Note that the current value of the preference is affected if
-     * the preference's current value was its old default value, in which
-     * case it changes to the new default value. If the preference's current
-     * is different from its old default value, its current value is
-     * unaffected. No property change events are reported by changing default
-     * values.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new default value for the preference
-     */
-    public void setDefault(String name, float value);
-
-    /**
-     * Sets the default value for the integer-valued preference with the
-     * given name. 
-     * <p>
-     * Note that the current value of the preference is affected if
-     * the preference's current value was its old default value, in which
-     * case it changes to the new default value. If the preference's current
-     * is different from its old default value, its current value is
-     * unaffected. No property change events are reported by changing default
-     * values.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new default value for the preference
-     */
-    public void setDefault(String name, int value);
-
-    /**
-     * Sets the default value for the long-valued preference with the
-     * given name. 
-     * <p>
-     * Note that the current value of the preference is affected if
-     * the preference's current value was its old default value, in which
-     * case it changes to the new default value. If the preference's current
-     * is different from its old default value, its current value is
-     * unaffected. No property change events are reported by changing default
-     * values.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new default value for the preference
-     */
-    public void setDefault(String name, long value);
-
-    /**
-     * Sets the default value for the string-valued preference with the
-     * given name. 
-     * <p>
-     * Note that the current value of the preference is affected if
-     * the preference's current value was its old default value, in which
-     * case it changes to the new default value. If the preference's current
-     * is different from its old default value, its current value is
-     * unaffected. No property change events are reported by changing default
-     * values.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param defaultObject the new default value for the preference
-     */
-    public void setDefault(String name, String defaultObject);
-
-    /**
-     * Sets the default value for the boolean-valued preference with the
-     * given name. 
-     * <p>
-     * Note that the current value of the preference is affected if
-     * the preference's current value was its old default value, in which
-     * case it changes to the new default value. If the preference's current
-     * is different from its old default value, its current value is
-     * unaffected. No property change events are reported by changing default
-     * values.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new default value for the preference
-     */
-    public void setDefault(String name, boolean value);
-
-    /**
-     * Sets the current value of the preference with the given name back
-     * to its default value.
-     * <p>
-     * Note that the preferred way of re-initializing a preference to the
-     * appropriate default value is to call <code>setToDefault</code>.
-     * This is implemented by removing the named value from the store, 
-     * thereby exposing the default value.
-     * </p>
-     *
-     * @param name the name of the preference
-     */
-    public void setToDefault(String name);
-
-    /**
-     * Sets the current value of the double-valued preference with the
-     * given name.
-     * <p>
-     * A property change event is reported if the current value of the 
-     * preference actually changes from its previous value. In the event
-     * object, the property name is the name of the preference, and the
-     * old and new values are wrapped as objects.
-     * </p>
-     * <p>
-     * Note that the preferred way of re-initializing a preference to its
-     * default value is to call <code>setToDefault</code>.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public void setValue(String name, double value);
-
-    /**
-     * Sets the current value of the float-valued preference with the
-     * given name.
-     * <p>
-     * A property change event is reported if the current value of the 
-     * preference actually changes from its previous value. In the event
-     * object, the property name is the name of the preference, and the
-     * old and new values are wrapped as objects.
-     * </p>
-     * <p>
-     * Note that the preferred way of re-initializing a preference to its
-     * default value is to call <code>setToDefault</code>.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public void setValue(String name, float value);
-
-    /**
-     * Sets the current value of the integer-valued preference with the
-     * given name.
-     * <p>
-     * A property change event is reported if the current value of the 
-     * preference actually changes from its previous value. In the event
-     * object, the property name is the name of the preference, and the
-     * old and new values are wrapped as objects.
-     * </p>
-     * <p>
-     * Note that the preferred way of re-initializing a preference to its
-     * default value is to call <code>setToDefault</code>.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public void setValue(String name, int value);
-
-    /**
-     * Sets the current value of the long-valued preference with the
-     * given name.
-     * <p>
-     * A property change event is reported if the current value of the 
-     * preference actually changes from its previous value. In the event
-     * object, the property name is the name of the preference, and the
-     * old and new values are wrapped as objects.
-     * </p>
-     * <p>
-     * Note that the preferred way of re-initializing a preference to its
-     * default value is to call <code>setToDefault</code>.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public void setValue(String name, long value);
-
-    /**
-     * Sets the current value of the string-valued preference with the
-     * given name.
-     * <p>
-     * A property change event is reported if the current value of the 
-     * preference actually changes from its previous value. In the event
-     * object, the property name is the name of the preference, and the
-     * old and new values are wrapped as objects.
-     * </p>
-     * <p>
-     * Note that the preferred way of re-initializing a preference to its
-     * default value is to call <code>setToDefault</code>.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public void setValue(String name, String value);
-
-    /**
-     * Sets the current value of the boolean-valued preference with the
-     * given name.
-     * <p>
-     * A property change event is reported if the current value of the 
-     * preference actually changes from its previous value. In the event
-     * object, the property name is the name of the preference, and the
-     * old and new values are wrapped as objects.
-     * </p>
-     * <p>
-     * Note that the preferred way of re-initializing a preference to its
-     * default value is to call <code>setToDefault</code>.
-     * </p>
-     *
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public void setValue(String name, boolean value);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IntegerFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IntegerFieldEditor.java
deleted file mode 100644
index d9b45fb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/IntegerFieldEditor.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     <sgandon@nds.com> - Fix for bug 109389 - IntegerFieldEditor
- *     does not fire property change all the time
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * A field editor for an integer type preference.
- */
-public class IntegerFieldEditor extends StringFieldEditor {
-    private int minValidValue = 0;
-
-    private int maxValidValue = Integer.MAX_VALUE;
-
-    private static final int DEFAULT_TEXT_LIMIT = 10;
-
-    /**
-     * Creates a new integer field editor 
-     */
-    protected IntegerFieldEditor() {
-    }
-
-    /**
-     * Creates an integer field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    public IntegerFieldEditor(String name, String labelText, Composite parent) {
-        this(name, labelText, parent, DEFAULT_TEXT_LIMIT);
-    }
-
-    /**
-     * Creates an integer field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     * @param textLimit the maximum number of characters in the text.
-     */
-    public IntegerFieldEditor(String name, String labelText, Composite parent,
-            int textLimit) {
-        init(name, labelText);
-        setTextLimit(textLimit);
-        setEmptyStringAllowed(false);
-        setErrorMessage(JFaceResources
-                .getString("IntegerFieldEditor.errorMessage"));//$NON-NLS-1$
-        createControl(parent);
-    }
-
-    /**
-     * Sets the range of valid values for this field.
-     * 
-     * @param min the minimum allowed value (inclusive)
-     * @param max the maximum allowed value (inclusive)
-     */
-    public void setValidRange(int min, int max) {
-        minValidValue = min;
-        maxValidValue = max;
-        setErrorMessage(JFaceResources.format(
-        		"IntegerFieldEditor.errorMessageRange", //$NON-NLS-1$
-        		new Object[] { new Integer(min), new Integer(max) }));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StringFieldEditor.
-     * Checks whether the entered String is a valid integer or not.
-     */
-    protected boolean checkState() {
-
-        Text text = getTextControl();
-
-        if (text == null) {
-			return false;
-		}
-
-        String numberString = text.getText();
-        try {
-            int number = Integer.valueOf(numberString).intValue();
-            if (number >= minValidValue && number <= maxValidValue) {
-				clearErrorMessage();
-				return true;
-			}
-            
-			showErrorMessage();
-			return false;
-			
-        } catch (NumberFormatException e1) {
-            showErrorMessage();
-        }
-
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoad() {
-        Text text = getTextControl();
-        if (text != null) {
-            int value = getPreferenceStore().getInt(getPreferenceName());
-            text.setText("" + value);//$NON-NLS-1$
-            oldValue = "" + value; //$NON-NLS-1$
-        }
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoadDefault() {
-        Text text = getTextControl();
-        if (text != null) {
-            int value = getPreferenceStore().getDefaultInt(getPreferenceName());
-            text.setText("" + value);//$NON-NLS-1$
-        }
-        valueChanged();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doStore() {
-        Text text = getTextControl();
-        if (text != null) {
-            Integer i = new Integer(text.getText());
-            getPreferenceStore().setValue(getPreferenceName(), i.intValue());
-        }
-    }
-
-    /**
-     * Returns this field editor's current value as an integer.
-     *
-     * @return the value
-     * @exception NumberFormatException if the <code>String</code> does not
-     *   contain a parsable integer
-     */
-    public int getIntValue() throws NumberFormatException {
-        return new Integer(getStringValue()).intValue();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/JFacePreferences.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/JFacePreferences.java
deleted file mode 100644
index fd41cc5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/JFacePreferences.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-/**
- * 
- * JFacePreferences is a class used to administer the preferences used by JFace
- * objects.
- */
-public final class JFacePreferences {
-
-	/**
-	 * Identifier for the Error Color
-	 */
-	public static final String ERROR_COLOR = "ERROR_COLOR"; //$NON-NLS-1$
-
-	/**
-	 * Identifier for the Hyperlink Color
-	 */
-	public static final String HYPERLINK_COLOR = "HYPERLINK_COLOR"; //$NON-NLS-1$
-
-	/**
-	 * Identifier for the Active Hyperlink Colour
-	 */
-	public static final String ACTIVE_HYPERLINK_COLOR = "ACTIVE_HYPERLINK_COLOR"; //$NON-NLS-1$
-
-	/**
-	 * Identifier for the color used to show extra informations in labels, as a
-	 * qualified name. For example in 'Foo.txt - myproject/bar', the qualifier
-	 * is '- myproject/bar'.
-	 * 
-	 * @since 3.4
-	 */
-	public static final String QUALIFIER_COLOR = "QUALIFIER_COLOR"; //$NON-NLS-1$
-
-	/**
-	 * Identifier for the color used to show label decorations For example in
-	 * 'Foo.txt [1.16]', the decoration is '[1.16]'.
-	 * 
-	 * @since 3.4
-	 */
-	public static final String DECORATIONS_COLOR = "DECORATIONS_COLOR"; //$NON-NLS-1$
-
-	/**
-	 * Identifier for the color used to counter informations For example in
-	 * 'Foo.txt (2 matches)', the counter information is '(2 matches)'.
-	 * 
-	 * @since 3.4
-	 */
-	public static final String COUNTER_COLOR = "COUNTER_COLOR"; //$NON-NLS-1$
-
-	
-	/**
-	 * Identifier for the color used for the background of content assist
-	 * popup dialogs.
-	 * 
-	 * @since 3.4
-	 */
-	public static final String CONTENT_ASSIST_BACKGROUND_COLOR = "CONTENT_ASSIST_BACKGROUND_COLOR"; //$NON-NLS-1$
-
-	/**
-	 * Identifier for the color used for the foreground of content assist
-	 * popup dialogs.
-	 * 
-	 * @since 3.4
-	 */
-	public static final String CONTENT_ASSIST_FOREGROUND_COLOR = "CONTENT_ASSIST_FOREGROUND_COLOR"; //$NON-NLS-1$
-
-
-
-	private static IPreferenceStore preferenceStore;
-
-	/**
-	 * Prevent construction.
-	 */
-	private JFacePreferences() {
-	}
-
-	/**
-	 * Return the preference store for the receiver.
-	 * 
-	 * @return IPreferenceStore or null
-	 */
-	public static IPreferenceStore getPreferenceStore() {
-		return preferenceStore;
-	}
-
-	/**
-	 * Set the preference store for the receiver.
-	 * 
-	 * @param store
-	 *            IPreferenceStore
-	 */
-	public static void setPreferenceStore(IPreferenceStore store) {
-		preferenceStore = store;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ListEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ListEditor.java
deleted file mode 100644
index 752a7dc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ListEditor.java
+++ /dev/null
@@ -1,510 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * An abstract field editor that manages a list of input values. 
- * The editor displays a list containing the values, buttons for
- * adding and removing values, and Up and Down buttons to adjust
- * the order of elements in the list.
- * <p>
- * Subclasses must implement the <code>parseString</code>,
- * <code>createList</code>, and <code>getNewInputObject</code>
- * framework methods.
- * </p>
- */
-public abstract class ListEditor extends FieldEditor {
-
-    /**
-     * The list widget; <code>null</code> if none
-     * (before creation or after disposal).
-     */
-    private List list;
-
-    /**
-     * The button box containing the Add, Remove, Up, and Down buttons;
-     * <code>null</code> if none (before creation or after disposal).
-     */
-    private Composite buttonBox;
-
-    /**
-     * The Add button.
-     */
-    private Button addButton;
-
-    /**
-     * The Remove button.
-     */
-    private Button removeButton;
-
-    /**
-     * The Up button.
-     */
-    private Button upButton;
-
-    /**
-     * The Down button.
-     */
-    private Button downButton;
-
-    /**
-     * The selection listener.
-     */
-    private SelectionListener selectionListener;
-
-    /**
-     * Creates a new list field editor 
-     */
-    protected ListEditor() {
-    }
-
-    /**
-     * Creates a list field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    protected ListEditor(String name, String labelText, Composite parent) {
-        init(name, labelText);
-        createControl(parent);
-    }
-
-    /**
-     * Notifies that the Add button has been pressed.
-     */
-    private void addPressed() {
-        setPresentsDefaultValue(false);
-        String input = getNewInputObject();
-
-        if (input != null) {
-            int index = list.getSelectionIndex();
-            if (index >= 0) {
-				list.add(input, index + 1);
-			} else {
-				list.add(input, 0);
-			}
-            selectionChanged();
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void adjustForNumColumns(int numColumns) {
-        Control control = getLabelControl();
-        ((GridData) control.getLayoutData()).horizontalSpan = numColumns;
-        ((GridData) list.getLayoutData()).horizontalSpan = numColumns - 1;
-    }
-
-    /**
-     * Creates the Add, Remove, Up, and Down button in the given button box.
-     *
-     * @param box the box for the buttons
-     */
-    private void createButtons(Composite box) {
-        addButton = createPushButton(box, "ListEditor.add");//$NON-NLS-1$
-        removeButton = createPushButton(box, "ListEditor.remove");//$NON-NLS-1$
-        upButton = createPushButton(box, "ListEditor.up");//$NON-NLS-1$
-        downButton = createPushButton(box, "ListEditor.down");//$NON-NLS-1$
-    }
-
-    /**
-     * Combines the given list of items into a single string.
-     * This method is the converse of <code>parseString</code>. 
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param items the list of items
-     * @return the combined string
-     * @see #parseString
-     */
-    protected abstract String createList(String[] items);
-
-    /**
-     * Helper method to create a push button.
-     * 
-     * @param parent the parent control
-     * @param key the resource name used to supply the button's label text
-     * @return Button
-     */
-    private Button createPushButton(Composite parent, String key) {
-        Button button = new Button(parent, SWT.PUSH);
-        button.setText(JFaceResources.getString(key));
-        button.setFont(parent.getFont());
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        int widthHint = convertHorizontalDLUsToPixels(button,
-                IDialogConstants.BUTTON_WIDTH);
-        data.widthHint = Math.max(widthHint, button.computeSize(SWT.DEFAULT,
-                SWT.DEFAULT, true).x);
-        button.setLayoutData(data);
-        button.addSelectionListener(getSelectionListener());
-        return button;
-    }
-
-    /**
-     * Creates a selection listener.
-     */
-    public void createSelectionListener() {
-        selectionListener = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                Widget widget = event.widget;
-                if (widget == addButton) {
-                    addPressed();
-                } else if (widget == removeButton) {
-                    removePressed();
-                } else if (widget == upButton) {
-                    upPressed();
-                } else if (widget == downButton) {
-                    downPressed();
-                } else if (widget == list) {
-                    selectionChanged();
-                }
-            }
-        };
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doFillIntoGrid(Composite parent, int numColumns) {
-        Control control = getLabelControl(parent);
-        GridData gd = new GridData();
-        gd.horizontalSpan = numColumns;
-        control.setLayoutData(gd);
-
-        list = getListControl(parent);
-        gd = new GridData(GridData.FILL_HORIZONTAL);
-        gd.verticalAlignment = GridData.FILL;
-        gd.horizontalSpan = numColumns - 1;
-        gd.grabExcessHorizontalSpace = true;
-        list.setLayoutData(gd);
-
-        buttonBox = getButtonBoxControl(parent);
-        gd = new GridData();
-        gd.verticalAlignment = GridData.BEGINNING;
-        buttonBox.setLayoutData(gd);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoad() {
-        if (list != null) {
-            String s = getPreferenceStore().getString(getPreferenceName());
-            String[] array = parseString(s);
-            for (int i = 0; i < array.length; i++) {
-                list.add(array[i]);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoadDefault() {
-        if (list != null) {
-            list.removeAll();
-            String s = getPreferenceStore().getDefaultString(
-                    getPreferenceName());
-            String[] array = parseString(s);
-            for (int i = 0; i < array.length; i++) {
-                list.add(array[i]);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doStore() {
-        String s = createList(list.getItems());
-        if (s != null) {
-			getPreferenceStore().setValue(getPreferenceName(), s);
-		}
-    }
-
-    /**
-     * Notifies that the Down button has been pressed.
-     */
-    private void downPressed() {
-        swap(false);
-    }
-
-    /**
-     * Returns this field editor's button box containing the Add, Remove,
-     * Up, and Down button.
-     *
-     * @param parent the parent control
-     * @return the button box
-     */
-    public Composite getButtonBoxControl(Composite parent) {
-        if (buttonBox == null) {
-            buttonBox = new Composite(parent, SWT.NULL);
-            GridLayout layout = new GridLayout();
-            layout.marginWidth = 0;
-            buttonBox.setLayout(layout);
-            createButtons(buttonBox);
-            buttonBox.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    addButton = null;
-                    removeButton = null;
-                    upButton = null;
-                    downButton = null;
-                    buttonBox = null;
-                }
-            });
-
-        } else {
-            checkParent(buttonBox, parent);
-        }
-
-        selectionChanged();
-        return buttonBox;
-    }
-
-    /**
-     * Returns this field editor's list control.
-     *
-     * @param parent the parent control
-     * @return the list control
-     */
-    public List getListControl(Composite parent) {
-        if (list == null) {
-            list = new List(parent, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL
-                    | SWT.H_SCROLL);
-            list.setFont(parent.getFont());
-            list.addSelectionListener(getSelectionListener());
-            list.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    list = null;
-                }
-            });
-        } else {
-            checkParent(list, parent);
-        }
-        return list;
-    }
-
-    /**
-     * Creates and returns a new item for the list.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @return a new item
-     */
-    protected abstract String getNewInputObject();
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public int getNumberOfControls() {
-        return 2;
-    }
-
-    /**
-     * Returns this field editor's selection listener.
-     * The listener is created if nessessary.
-     *
-     * @return the selection listener
-     */
-    private SelectionListener getSelectionListener() {
-        if (selectionListener == null) {
-			createSelectionListener();
-		}
-        return selectionListener;
-    }
-
-    /**
-     * Returns this field editor's shell.
-     * <p>
-     * This method is internal to the framework; subclassers should not call
-     * this method.
-     * </p>
-     *
-     * @return the shell
-     */
-    protected Shell getShell() {
-        if (addButton == null) {
-			return null;
-		}
-        return addButton.getShell();
-    }
-
-    /**
-     * Splits the given string into a list of strings.
-     * This method is the converse of <code>createList</code>. 
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param stringList the string
-     * @return an array of <code>String</code>
-     * @see #createList
-     */
-    protected abstract String[] parseString(String stringList);
-
-    /**
-     * Notifies that the Remove button has been pressed.
-     */
-    private void removePressed() {
-        setPresentsDefaultValue(false);
-        int index = list.getSelectionIndex();
-        if (index >= 0) {
-            list.remove(index);
-            selectionChanged();
-        }
-    }
-
-	/**
-	 * Invoked when the selection in the list has changed.
-	 * 
-	 * <p>
-	 * The default implementation of this method utilizes the selection index
-	 * and the size of the list to toggle the enablement of the up, down and
-	 * remove buttons.
-	 * </p>
-	 * 
-	 * <p>
-	 * Sublcasses may override.
-	 * </p>
-	 * 
-	 * @since 3.5
-	 */
-    protected void selectionChanged() {
-
-        int index = list.getSelectionIndex();
-        int size = list.getItemCount();
-
-        removeButton.setEnabled(index >= 0);
-        upButton.setEnabled(size > 1 && index > 0);
-        downButton.setEnabled(size > 1 && index >= 0 && index < size - 1);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public void setFocus() {
-        if (list != null) {
-            list.setFocus();
-        }
-    }
-
-    /**
-     * Moves the currently selected item up or down.
-     *
-     * @param up <code>true</code> if the item should move up,
-     *  and <code>false</code> if it should move down
-     */
-    private void swap(boolean up) {
-        setPresentsDefaultValue(false);
-        int index = list.getSelectionIndex();
-        int target = up ? index - 1 : index + 1;
-
-        if (index >= 0) {
-            String[] selection = list.getSelection();
-            Assert.isTrue(selection.length == 1);
-            list.remove(index);
-            list.add(selection[0], target);
-            list.setSelection(target);
-        }
-        selectionChanged();
-    }
-
-    /**
-     * Notifies that the Up button has been pressed.
-     */
-    private void upPressed() {
-        swap(true);
-    }
-
-    /*
-     * @see FieldEditor.setEnabled(boolean,Composite).
-     */
-    public void setEnabled(boolean enabled, Composite parent) {
-        super.setEnabled(enabled, parent);
-        getListControl(parent).setEnabled(enabled);
-        addButton.setEnabled(enabled);
-        removeButton.setEnabled(enabled);
-        upButton.setEnabled(enabled);
-        downButton.setEnabled(enabled);
-    }
-    
-    /**
-     * Return the Add button.  
-     * 
-     * @return the button
-     * @since 3.5
-     */
-    protected Button getAddButton() {
-    	return addButton;
-    }
-    
-    /**
-     * Return the Remove button.  
-     * 
-     * @return the button
-     * @since 3.5
-     */
-    protected Button getRemoveButton() {
-    	return removeButton;
-    }
-    
-    /**
-     * Return the Up button.  
-     * 
-     * @return the button
-     * @since 3.5
-     */
-    protected Button getUpButton() {
-    	return upButton;
-    }
-    
-    /**
-     * Return the Down button.  
-     * 
-     * @return the button
-     * @since 3.5
-     */
-    protected Button getDownButton() {
-    	return downButton;
-    }
-    
-    /**
-     * Return the List.
-     * 
-     * @return the list
-     * @since 3.5
-     */
-    protected List getList() {
-    	return list;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PathEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PathEditor.java
deleted file mode 100644
index 98296fa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PathEditor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-
-/**
- * A field editor to edit directory paths.
- */
-public class PathEditor extends ListEditor {
-
-    /**
-     * The last path, or <code>null</code> if none.
-     */
-    private String lastPath;
-
-    /**
-     * The special label text for directory chooser, 
-     * or <code>null</code> if none.
-     */
-    private String dirChooserLabelText;
-
-    /**
-     * Creates a new path field editor 
-     */
-    protected PathEditor() {
-    }
-
-    /**
-     * Creates a path field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param dirChooserLabelText the label text displayed for the directory chooser
-     * @param parent the parent of the field editor's control
-     */
-    public PathEditor(String name, String labelText,
-            String dirChooserLabelText, Composite parent) {
-        init(name, labelText);
-        this.dirChooserLabelText = dirChooserLabelText;
-        createControl(parent);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ListEditor.
-     * Creates a single string from the given array by separating each
-     * string with the appropriate OS-specific path separator.
-     */
-    protected String createList(String[] items) {
-        StringBuffer path = new StringBuffer("");//$NON-NLS-1$
-
-        for (int i = 0; i < items.length; i++) {
-            path.append(items[i]);
-            path.append(File.pathSeparator);
-        }
-        return path.toString();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ListEditor.
-     * Creates a new path element by means of a directory dialog.
-     */
-    protected String getNewInputObject() {
-
-        DirectoryDialog dialog = new DirectoryDialog(getShell(), SWT.SHEET);
-        if (dirChooserLabelText != null) {
-			dialog.setMessage(dirChooserLabelText);
-		}
-        if (lastPath != null) {
-            if (new File(lastPath).exists()) {
-				dialog.setFilterPath(lastPath);
-			}
-        }
-        String dir = dialog.open();
-        if (dir != null) {
-            dir = dir.trim();
-            if (dir.length() == 0) {
-				return null;
-			}
-            lastPath = dir;
-        }
-        return dir;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ListEditor.
-     */
-    protected String[] parseString(String stringList) {
-        StringTokenizer st = new StringTokenizer(stringList, File.pathSeparator
-                + "\n\r");//$NON-NLS-1$
-        ArrayList v = new ArrayList();
-        while (st.hasMoreElements()) {
-            v.add(st.nextElement());
-        }
-        return (String[]) v.toArray(new String[v.size()]);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceContentProvider.java
deleted file mode 100644
index 6e8ebe7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceContentProvider.java
+++ /dev/null
@@ -1,111 +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.jface.preference;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * Provides a tree model for <code>PreferenceManager</code> content.
- * 
- * @since 3.0
- */
-public class PreferenceContentProvider implements ITreeContentProvider {
-
-    private PreferenceManager manager;
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-     */
-    public void dispose() {
-        manager = null;
-    }
-
-    /**
-     * Find the parent of the provided node.  Will search recursivly through the
-     * preference tree.
-     * 
-     * @param parent the possible parent node.
-     * @param target the target child node.
-     * @return the parent node of the child node.
-     */
-    private IPreferenceNode findParent(IPreferenceNode parent,
-            IPreferenceNode target) {
-        if (parent.getId().equals(target.getId())) {
-			return null;
-		}
-
-        IPreferenceNode found = parent.findSubNode(target.getId());
-        if (found != null) {
-			return parent;
-		}
-
-        IPreferenceNode[] children = parent.getSubNodes();
-
-        for (int i = 0; i < children.length; i++) {
-            found = findParent(children[i], target);
-            if (found != null) {
-				return found;
-			}
-        }
-
-        return null;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-     */
-    public Object[] getChildren(Object parentElement) {//must be an instance of <code>IPreferenceNode</code>.
-        return ((IPreferenceNode) parentElement).getSubNodes();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-     */
-    public Object[] getElements(Object inputElement) {// must be an instance of <code>PreferenceManager</code>.
-        return getChildren(((PreferenceManager) inputElement).getRoot());
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-     */
-    public Object getParent(Object element) {//must be an instance of <code>IPreferenceNode</code>.
-        IPreferenceNode targetNode = (IPreferenceNode) element;
-        IPreferenceNode root = manager.getRoot();
-        return findParent(root, targetNode);
-    }
-
-    /* (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.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        manager = (PreferenceManager) newInput;
-    }
-	/**
-	 * Set the manager for the preferences.
-	 * @param manager The manager to set.
-	 * 
-	 * @since 3.1
-	 */
-	protected void setManager(PreferenceManager manager) {
-		this.manager = manager;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceConverter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceConverter.java
deleted file mode 100644
index 5e7cfb8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceConverter.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.util.Arrays;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.StringConverter;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A utility class for dealing with preferences whose values are
- * common SWT objects (color, points, rectangles, and font data).
- * The static methods on this class handle the conversion between
- * the SWT objects and their string representations.
- * <p>
- * Usage:
- * <pre>
- * IPreferenceStore store = ...;
- * PreferenceConverter.setValue(store, "bg", new RGB(127,127,127));
- * ...
- * RBG bgColor = PreferenceConverter.getValue(store, "bg");
- * </pre>
- * </p>
- * <p>
- * This class contains static methods and fields only and cannot 
- * be instantiated.
- * </p>
- * Note: touching this class has the side effect of creating a display (static initializer).
- * @noinstantiate This class is not intended to be instantiated by clients.
- */
-public class PreferenceConverter {
-
-    /**
-     * The default-default value for point preferences
-     * (the origin, <code>(0,0)</code>).
-     */
-    public static final Point POINT_DEFAULT_DEFAULT = new Point(0, 0);
-
-    /**
-     * The default-default value for rectangle preferences
-     * (the empty rectangle <code>(0,0,0,0)</code>).
-     */
-    public static final Rectangle RECTANGLE_DEFAULT_DEFAULT = new Rectangle(0,
-            0, 0, 0);
-
-    /**
-     * The default-default value for color preferences 
-     * (black, <code>RGB(0,0,0)</code>).
-     */
-    public static final RGB COLOR_DEFAULT_DEFAULT = new RGB(0, 0, 0);
-
-    private static final String ENTRY_SEPARATOR = ";"; //$NON-NLS-1$
-
-    /**
-     * The default-default value for <code>FontData[]</code> preferences.
-     */
-    public static final FontData[] FONTDATA_ARRAY_DEFAULT_DEFAULT;
-
-    /**
-     * The default-default value for <code>FontData</code> preferences.
-     */
-    public static final FontData FONTDATA_DEFAULT_DEFAULT;
-    static {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = Display.getDefault ();
-		}
-		
-        FONTDATA_ARRAY_DEFAULT_DEFAULT = display.getSystemFont().getFontData();
-        /**
-         * The default-default value for <code>FontData</code> preferences.
-         * This is left in for compatibility purposes. It is recommended that
-         * FONTDATA_ARRAY_DEFAULT_DEFAULT is actually used.
-         */
-
-        FONTDATA_DEFAULT_DEFAULT = FONTDATA_ARRAY_DEFAULT_DEFAULT[0];
-    }
-
-    /* (non-Javadoc)
-     * private constructor to prevent instantiation.
-     */
-    private PreferenceConverter() {
-        //no-op
-    }
-
-    /**
-     * Helper method to construct a color from the given string.
-     * @param value the indentifier for the color
-     * @return RGB
-     */
-    private static RGB basicGetColor(String value) {
-
-        if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value)) {
-			return COLOR_DEFAULT_DEFAULT;
-		}
-
-        RGB color = StringConverter.asRGB(value, null);
-        if (color == null) {
-			return COLOR_DEFAULT_DEFAULT;
-		}
-        return color;
-    }
-
-    /**
-     * Helper method to construct a <code>FontData</code> from the given string.
-     * String is in the form FontData;FontData; in order that
-     * multiple FontDatas can be defined.
-     * @param value the identifier for the font
-     * @return FontData[]
-     * 
-     * @since 3.0
-     */
-    public static FontData[] basicGetFontData(String value) {
-        if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value)) {
-			return FONTDATA_ARRAY_DEFAULT_DEFAULT;
-		}
-
-        //Read in all of them to get the value
-        StringTokenizer tokenizer = new StringTokenizer(value, ENTRY_SEPARATOR);
-        int numTokens = tokenizer.countTokens();
-        FontData[] fontData = new FontData[numTokens];
-
-        for (int i = 0; i < numTokens; i++) {
-            try {
-                fontData[i] = new FontData(tokenizer.nextToken());
-            } catch (SWTException error) {
-                return FONTDATA_ARRAY_DEFAULT_DEFAULT;
-            } catch (IllegalArgumentException error) {
-                return FONTDATA_ARRAY_DEFAULT_DEFAULT;
-            }
-        }
-        return fontData;
-    }
-
-    /**
-     * Reads the supplied string and returns its corresponding
-     * FontData. If it cannot be read then the default FontData
-     * will be returned.
-     * 
-     * @param fontDataValue the string value for the font data  
-     * @return the font data
-     */
-    public static FontData[] readFontData(String fontDataValue) {
-        return basicGetFontData(fontDataValue);
-    }
-
-    /**
-     * Helper method to construct a point from the given string.
-     * @param value
-     * @return Point
-     */
-    private static Point basicGetPoint(String value) {
-        Point dp = new Point(POINT_DEFAULT_DEFAULT.x, POINT_DEFAULT_DEFAULT.y);
-        if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value)) {
-			return dp;
-		}
-        return StringConverter.asPoint(value, dp);
-    }
-
-    /**
-     *  Helper method to construct a rectangle from the given string.
-     * @param value
-     * @return Rectangle
-     */
-    private static Rectangle basicGetRectangle(String value) {
-        // We can't just return RECTANGLE_DEFAULT_DEFAULT because
-        // a rectangle object doesn't have value semantik.
-        Rectangle dr = new Rectangle(RECTANGLE_DEFAULT_DEFAULT.x,
-                RECTANGLE_DEFAULT_DEFAULT.y, RECTANGLE_DEFAULT_DEFAULT.width,
-                RECTANGLE_DEFAULT_DEFAULT.height);
-
-        if (IPreferenceStore.STRING_DEFAULT_DEFAULT.equals(value)) {
-			return dr;
-		}
-        return StringConverter.asRectangle(value, dr);
-    }
-
-    /**
-     * Returns the current value of the color-valued preference with the
-     * given name in the given preference store.
-     * Returns the default-default value (<code>COLOR_DEFAULT_DEFAULT</code>) 
-     * if there is no preference with the given name, or if the current value 
-     * cannot be treated as a color.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the color-valued preference
-     */
-    public static RGB getColor(IPreferenceStore store, String name) {
-        return basicGetColor(store.getString(name));
-    }
-
-    /**
-     * Returns the default value for the color-valued preference
-     * with the given name in the given preference store.
-     * Returns the default-default value (<code>COLOR_DEFAULT_DEFAULT</code>) 
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a color.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the default value of the preference
-     */
-    public static RGB getDefaultColor(IPreferenceStore store, String name) {
-        return basicGetColor(store.getDefaultString(name));
-    }
-
-    /**
-     * Returns the default value array for the font-valued preference
-     * with the given name in the given preference store.
-     * Returns the default-default value (<code>FONTDATA_ARRAY_DEFAULT_DEFAULT</code>) 
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as font data.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the default value of the preference
-     */
-    public static FontData[] getDefaultFontDataArray(IPreferenceStore store,
-            String name) {
-        return basicGetFontData(store.getDefaultString(name));
-    }
-
-    /**
-     * Returns a single default value for the font-valued preference
-     * with the given name in the given preference store.
-     * Returns the default-default value (<code>FONTDATA_DEFAULT_DEFAULT</code>) 
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as font data.
-     * This method is provided for backwards compatibility. It is
-     * recommended that <code>getDefaultFontDataArray</code> is
-     * used instead.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the default value of the preference
-     */
-    public static FontData getDefaultFontData(IPreferenceStore store,
-            String name) {
-        return getDefaultFontDataArray(store, name)[0];
-    }
-
-    /**
-     * Returns the default value for the point-valued preference
-     * with the given name in the given preference store.
-     * Returns the default-default value (<code>POINT_DEFAULT_DEFAULT</code>) 
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a point.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the default value of the preference
-     */
-    public static Point getDefaultPoint(IPreferenceStore store, String name) {
-        return basicGetPoint(store.getDefaultString(name));
-    }
-
-    /**
-     * Returns the default value for the rectangle-valued preference
-     * with the given name in the given preference store.
-     * Returns the default-default value (<code>RECTANGLE_DEFAULT_DEFAULT</code>) 
-     * is no default preference with the given name, or if the default 
-     * value cannot be treated as a rectangle.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the default value of the preference
-     */
-    public static Rectangle getDefaultRectangle(IPreferenceStore store,
-            String name) {
-        return basicGetRectangle(store.getDefaultString(name));
-    }
-
-    /**
-     * Returns the current value of the font-valued preference with the
-     * given name in the given preference store.
-     * Returns the default-default value (<code>FONTDATA_ARRAY_DEFAULT_DEFAULT</code>) 
-     * if there is no preference with the given name, or if the current value 
-     * cannot be treated as font data.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the font-valued preference
-     */
-    public static FontData[] getFontDataArray(IPreferenceStore store,
-            String name) {
-        return basicGetFontData(store.getString(name));
-    }
-
-    /**
-     * Returns the current value of the first entry of the
-     * font-valued preference with the
-     * given name in the given preference store.
-     * Returns the default-default value (<code>FONTDATA_ARRAY_DEFAULT_DEFAULT</code>) 
-     * if there is no preference with the given name, or if the current value 
-     * cannot be treated as font data.
-     * This API is provided for backwards compatibility. It is
-     * recommended that <code>getFontDataArray</code> is used instead.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the font-valued preference
-     */
-    public static FontData getFontData(IPreferenceStore store, String name) {
-        return getFontDataArray(store, name)[0];
-    }
-
-    /**
-     * Returns the current value of the point-valued preference with the
-     * given name in the given preference store.
-     * Returns the default-default value (<code>POINT_DEFAULT_DEFAULT</code>) 
-     * if there is no preference with the given name, or if the current value 
-     * cannot be treated as a point.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the point-valued preference
-     */
-    public static Point getPoint(IPreferenceStore store, String name) {
-        return basicGetPoint(store.getString(name));
-    }
-
-    /**
-     * Returns the current value of the rectangle-valued preference with the
-     * given name in the given preference store.
-     * Returns the default-default value (<code>RECTANGLE_DEFAULT_DEFAULT</code>) 
-     * if there is no preference with the given name, or if the current value 
-     * cannot be treated as a rectangle.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @return the rectangle-valued preference
-     */
-    public static Rectangle getRectangle(IPreferenceStore store, String name) {
-        return basicGetRectangle(store.getString(name));
-    }
-
-    /**
-     * Sets the default value of the preference with the given name
-     * in the given preference store. As FontDatas are stored as 
-     * arrays this method is only provided for backwards compatibility.
-     * Use <code>setDefault(IPreferenceStore, String, FontData[])</code>
-     * instead.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new default value of the preference
-     */
-    public static void setDefault(IPreferenceStore store, String name,
-            FontData value) {
-        FontData[] fontDatas = new FontData[1];
-        fontDatas[0] = value;
-        setDefault(store, name, fontDatas);
-    }
-
-    /**
-     * Sets the default value of the preference with the given name
-     * in the given preference store.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new default value of the preference
-     */
-    public static void setDefault(IPreferenceStore store, String name,
-            FontData[] value) {
-        store.setDefault(name, getStoredRepresentation(value));
-    }
-
-    /**
-     * Sets the default value of the preference with the given name
-     * in the given preference store.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new default value of the preference
-     */
-    public static void setDefault(IPreferenceStore store, String name,
-            Point value) {
-        store.setDefault(name, StringConverter.asString(value));
-    }
-
-    /**
-     * Sets the default value of the preference with the given name
-     * in the given preference store.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new default value of the preference
-     */
-    public static void setDefault(IPreferenceStore store, String name,
-            Rectangle value) {
-        store.setDefault(name, StringConverter.asString(value));
-    }
-
-    /**
-     * Sets the default value of the preference with the given name
-     * in the given preference store.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new default value of the preference
-     */
-    public static void setDefault(IPreferenceStore store, String name, RGB value) {
-        store.setDefault(name, StringConverter.asString(value));
-    }
-
-    /**
-     * Sets the current value of the preference with the given name
-     * in the given preference store. 
-     * <p>
-     * Included for backwards compatibility.  This method is equivalent to
-     * </code>setValue(store, name, new FontData[]{value})</code>.
-     * </p>
-     * 
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public static void setValue(IPreferenceStore store, String name,
-            FontData value) {
-        setValue(store, name, new FontData[] { value });
-    }
-
-    /**
-     * Sets the current value of the preference with the given name
-     * in the given preference store. This method also sets the corresponding
-     * key in the JFace font registry to the value and fires a 
-     * property change event to listeners on the preference store.
-     * 
-     * <p>
-     * Note that this API does not update any other settings that may
-     * be dependant upon it. Only the value in the preference store 
-     * and in the font registry is updated.
-     * </p> 
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     * 
-     * @see #putValue(IPreferenceStore, String, FontData[])
-     */
-    public static void setValue(IPreferenceStore store, String name,
-            FontData[] value) {
-        FontData[] oldValue = getFontDataArray(store, name);
-        // see if the font has changed
-        if (!Arrays.equals(oldValue, value)) {
-            store.putValue(name, getStoredRepresentation(value));
-            JFaceResources.getFontRegistry().put(name, value);
-            store.firePropertyChangeEvent(name, oldValue, value);
-        }
-    }
-
-    /**
-     * Sets the current value of the preference with the given name
-     * in the given preference store. This method does not update
-     * the font registry or fire a property change event.
-     * 
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     * 
-     * @see PreferenceConverter#setValue(IPreferenceStore, String, FontData[])
-     */
-    public static void putValue(IPreferenceStore store, String name,
-            FontData[] value) {
-        FontData[] oldValue = getFontDataArray(store, name);
-        // see if the font has changed
-        if (!Arrays.equals(oldValue, value)) {
-            store.putValue(name, getStoredRepresentation(value));
-        }
-    }
-
-    /**
-     * Returns the stored representation of the given array of FontData objects.
-     * The stored representation has the form FontData;FontData;
-     * Only includes the non-null entries.
-     * 
-     * @param fontData the array of FontData objects
-     * @return the stored representation of the FontData objects
-     * @since 3.0
-     */
-    public static String getStoredRepresentation(FontData[] fontData) {
-        StringBuffer buffer = new StringBuffer();
-        for (int i = 0; i < fontData.length; i++) {
-            if (fontData[i] != null) {
-                buffer.append(fontData[i].toString());
-                buffer.append(ENTRY_SEPARATOR);
-            }
-        }
-        return buffer.toString();
-    }
-
-    /**
-     * Sets the current value of the preference with the given name
-     * in the given preference store.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public static void setValue(IPreferenceStore store, String name, Point value) {
-        Point oldValue = getPoint(store, name);
-        if (oldValue == null || !oldValue.equals(value)) {
-            store.putValue(name, StringConverter.asString(value));
-            store.firePropertyChangeEvent(name, oldValue, value);
-        }
-    }
-
-    /**
-     * Sets the current value of the preference with the given name
-     * in the given preference store.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public static void setValue(IPreferenceStore store, String name,
-            Rectangle value) {
-        Rectangle oldValue = getRectangle(store, name);
-        if (oldValue == null || !oldValue.equals(value)) {
-            store.putValue(name, StringConverter.asString(value));
-            store.firePropertyChangeEvent(name, oldValue, value);
-        }
-    }
-
-    /**
-     * Sets the current value of the preference with the given name
-     * in the given preference store.
-     *
-     * @param store the preference store
-     * @param name the name of the preference
-     * @param value the new current value of the preference
-     */
-    public static void setValue(IPreferenceStore store, String name, RGB value) {
-        RGB oldValue = getColor(store, name);
-        if (oldValue == null || !oldValue.equals(value)) {
-            store.putValue(name, StringConverter.asString(value));
-            store.firePropertyChangeEvent(name, oldValue, value);
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
deleted file mode 100644
index c28d36c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceDialog.java
+++ /dev/null
@@ -1,1561 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Teddy Walker <teddy.walker@googlemail.com>
- *     	- Bug 188056 [Preferences] PreferencePages have to less indent in PreferenceDialog
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.DialogMessageArea;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.IPageChangeProvider;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.SafeRunnable;
-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.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.HelpEvent;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * A preference dialog is a hierarchical presentation of preference pages. Each
- * page is represented by a node in the tree shown on the left hand side of the
- * dialog; when a node is selected, the corresponding page is shown on the right
- * hand side.
- */
-public class PreferenceDialog extends TrayDialog implements IPreferencePageContainer, IPageChangeProvider {
-	/**
-	 * Layout for the page container.
-	 * 
-	 */
-	private class PageLayout extends Layout {
-		public Point computeSize(Composite composite, int wHint, int hHint, boolean force) {
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-			int x = minimumPageSize.x;
-			int y = minimumPageSize.y;
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				Point size = children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT, force);
-				x = Math.max(x, size.x);
-				y = Math.max(y, size.y);
-			}
-			
-			//As pages can implement thier own computeSize
-			//take it into account
-			if(currentPage != null){
-				Point size = currentPage.computeSize();
-				x = Math.max(x, size.x);
-				y = Math.max(y, size.y);
-			}
-			
-			if (wHint != SWT.DEFAULT) {
-				x = wHint;
-			}
-			if (hHint != SWT.DEFAULT) {
-				y = hHint;
-			}
-			return new Point(x, y);
-		}
-
-		public void layout(Composite composite, boolean force) {
-			Rectangle rect = composite.getClientArea();
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				children[i].setSize(rect.width, rect.height);
-			}
-		}
-	}
-
-	//The id of the last page that was selected
-	private static String lastPreferenceId = null;
-
-	//The last known tree width
-	private static int lastTreeWidth = 180;
-
-	/**
-	 * Indentifier for the error image
-	 */
-	public static final String PREF_DLG_IMG_TITLE_ERROR = DLG_IMG_MESSAGE_ERROR;
-
-	/**
-	 * Title area fields
-	 */
-	public static final String PREF_DLG_TITLE_IMG = "preference_dialog_title_image"; //$NON-NLS-1$
-
-	/**
-	 * Return code used when dialog failed
-	 */
-	protected static final int FAILED = 2;
-	
-	/**
-	 * The current preference page, or <code>null</code> if there is none.
-	 */
-	private IPreferencePage currentPage;
-
-	private DialogMessageArea messageArea;
-
-	private Point lastShellSize;
-
-	private IPreferenceNode lastSuccessfulNode;
-
-	/**
-	 * The minimum page size; 400 by 400 by default.
-	 * 
-	 * @see #setMinimumPageSize(Point)
-	 */
-	private Point minimumPageSize = new Point(400, 400);
-
-	/**
-	 * The OK button.
-	 */
-	private Button okButton;
-
-	/**
-	 * The Composite in which a page is shown.
-	 */
-	private Composite pageContainer;
-
-	/**
-	 * The preference manager.
-	 */
-	private PreferenceManager preferenceManager;
-
-	/**
-	 * Flag for the presence of the error message.
-	 */
-	private boolean showingError = false;
-
-	/**
-	 * Preference store, initially <code>null</code> meaning none.
-	 * 
-	 * @see #setPreferenceStore
-	 */
-	private IPreferenceStore preferenceStore;
-
-	private Composite titleArea;
-
-	/**
-	 * The tree viewer.
-	 */
-	private TreeViewer treeViewer;
-	
-    private ListenerList pageChangedListeners = new ListenerList();
-
-    /**
-     *  Composite with a FormLayout to contain the title area
-     */
-    Composite formTitleComposite;
-
-	private ScrolledComposite scrolled;
-
-	/**
-	 * Creates a new preference dialog under the control of the given preference
-	 * manager.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 * @param manager
-	 *            the preference manager
-	 */
-	public PreferenceDialog(Shell parentShell, PreferenceManager manager) {
-		super(parentShell);
-		preferenceManager = manager;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
-	 */
-	protected void buttonPressed(int buttonId) {
-		switch (buttonId) {
-		case IDialogConstants.OK_ID: {
-			okPressed();
-			return;
-		}
-		case IDialogConstants.CANCEL_ID: {
-			cancelPressed();
-			return;
-		}
-		case IDialogConstants.HELP_ID: {
-			helpPressed();
-			return;
-		}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#cancelPressed()
-	 */
-	protected void cancelPressed() {
-		// Inform all pages that we are cancelling
-		Iterator nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER).iterator();
-		while (nodes.hasNext()) {
-			final IPreferenceNode node = (IPreferenceNode) nodes.next();
-			if (getPage(node) != null) {
-				SafeRunnable.run(new SafeRunnable() {
-					public void run() {
-						if (!getPage(node).performCancel()) {
-							return;
-						}
-					}
-
-
-				});
-			}
-		}
-		
-		// Give subclasses the choice to save the state of the preference pages if needed
-		handleSave();
-
-		setReturnCode(CANCEL);
-		close();
-	}
-
-	/**
-	 * Clear the last selected node. This is so that we not chache the last
-	 * selection in case of an error.
-	 */
-	void clearSelectedNode() {
-		setSelectedNodePreference(null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		
-		//Do this is in a SafeRunnable as it may run client code
-		SafeRunnable runnable = new SafeRunnable(){
-			/* (non-Javadoc)
-			 * @see org.eclipse.core.runtime.ISafeRunnable#run()
-			 */
-			public void run() throws Exception {
-				List nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER);
-				for (int i = 0; i < nodes.size(); i++) {
-					IPreferenceNode node = (IPreferenceNode) nodes.get(i);
-					node.disposeResources();
-				}
-				
-			}
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.util.SafeRunnable#handleException(java.lang.Throwable)
-			 */
-			public void handleException(Throwable e) {
-				super.handleException(e);
-				clearSelectedNode();//Do not cache a node with problems
-			}
-		};
-		
-		SafeRunner.run(runnable);
-		
-		return super.close();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		newShell.setText(JFaceResources.getString("PreferenceDialog.title")); //$NON-NLS-1$
-		newShell.addShellListener(new ShellAdapter() {
-			public void shellActivated(ShellEvent e) {
-				if (lastShellSize == null) {
-					lastShellSize = getShell().getSize();
-				}
-			}
-
-		});
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#constrainShellSize()
-	 */
-	protected void constrainShellSize() {
-		super.constrainShellSize();
-		// record opening shell size
-		if (lastShellSize == null) {
-			lastShellSize = getShell().getSize();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		// create OK and Cancel buttons by default
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		getShell().setDefaultButton(okButton);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(final Composite parent) {
-		final Control[] control = new Control[1];
-		BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() {
-			public void run() {
-				control[0] = PreferenceDialog.super.createContents(parent);
-				// Add the first page
-				selectSavedItem();
-			}
-		});
-
-		return control[0];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		final Composite composite = (Composite) super.createDialogArea(parent);
-		GridLayout parentLayout = ((GridLayout) composite.getLayout());
-		parentLayout.numColumns = 4;
-		parentLayout.marginHeight = 0;
-		parentLayout.marginWidth = 0;
-		parentLayout.verticalSpacing = 0;
-		parentLayout.horizontalSpacing = 0;
-		
-		composite.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-		
-		Control treeControl = createTreeAreaContents(composite);
-		createSash(composite,treeControl);
-		
-		Label versep = new Label(composite, SWT.SEPARATOR | SWT.VERTICAL);
-		GridData verGd = new GridData(GridData.FILL_VERTICAL | GridData.GRAB_VERTICAL);
-	
-		versep.setLayoutData(verGd);
-		versep.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true));
-		
-		Composite pageAreaComposite = new Composite(composite, SWT.NONE);
-		pageAreaComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout(1, true);
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.verticalSpacing = 0;
-		pageAreaComposite.setLayout(layout);
-		
-		formTitleComposite = new Composite(pageAreaComposite, SWT.NONE);
-		FormLayout titleLayout = new FormLayout();
-		titleLayout.marginWidth = 0;
-		titleLayout.marginHeight = 0;
-		formTitleComposite.setLayout(titleLayout);
-		
-		GridData titleGridData = new GridData(GridData.FILL_HORIZONTAL);
-		titleGridData.horizontalIndent = IDialogConstants.HORIZONTAL_MARGIN;
-		formTitleComposite.setLayoutData(titleGridData);
-		
-		// Build the title area and separator line
-		Composite titleComposite = new Composite(formTitleComposite, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginBottom = 5;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.horizontalSpacing = 0;
-		titleComposite.setLayout(layout);
-		
-		FormData titleFormData = new FormData();
-	   	titleFormData.top = new FormAttachment(0,0);
-    	titleFormData.left = new FormAttachment(0,0);
-    	titleFormData.right = new FormAttachment(100,0);
-    	titleFormData.bottom = new FormAttachment(100,0);
-		
-		titleComposite.setLayoutData(titleFormData);
-		createTitleArea(titleComposite);
-		
-		Label separator = new Label(pageAreaComposite, SWT.HORIZONTAL | SWT.SEPARATOR);
-
-		separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-		
-		
-		// Build the Page container
-		pageContainer = createPageContainer(pageAreaComposite);
-		GridData pageContainerData = new GridData(GridData.FILL_BOTH);
-		pageContainerData.horizontalIndent = IDialogConstants.HORIZONTAL_MARGIN;
-		pageContainer.setLayoutData(pageContainerData);
-		// Build the separator line
-		Label bottomSeparator = new Label(parent, SWT.HORIZONTAL | SWT.SEPARATOR);
-		bottomSeparator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-		return composite;
-	}
-
-	/**
-	 * Create the sash with right control on the right. Note
-	 * that this method assumes GridData for the layout data
-	 * of the rightControl.
-	 * @param composite
-	 * @param rightControl
-	 * @return Sash
-	 * 
-	 * @since 3.1
-	 */
-	protected Sash createSash(final Composite composite, final Control rightControl) {
-		final Sash sash = new Sash(composite, SWT.VERTICAL);
-		sash.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		sash.setBackground(composite.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-		// the following listener resizes the tree control based on sash deltas.
-		// If necessary, it will also grow/shrink the dialog.
-		sash.addListener(SWT.Selection, new Listener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-				if (event.detail == SWT.DRAG) {
-					return;
-				}
-				int shift = event.x - sash.getBounds().x;
-				GridData data = (GridData) rightControl.getLayoutData();
-				int newWidthHint = data.widthHint + shift;
-				if (newWidthHint < 20) {
-					return;
-				}
-				Point computedSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				Point currentSize = getShell().getSize();
-				// if the dialog wasn't of a custom size we know we can shrink
-				// it if necessary based on sash movement.
-				boolean customSize = !computedSize.equals(currentSize);
-				data.widthHint = newWidthHint;
-				setLastTreeWidth(newWidthHint);
-				composite.layout(true);
-				// recompute based on new widget size
-				computedSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				// if the dialog was of a custom size then increase it only if
-				// necessary.
-				if (customSize) {
-					computedSize.x = Math.max(computedSize.x, currentSize.x);
-				}
-				computedSize.y = Math.max(computedSize.y, currentSize.y);
-				if (computedSize.equals(currentSize)) {
-					return;
-				}
-				setShellSize(computedSize.x, computedSize.y);
-				lastShellSize = getShell().getSize();
-			}
-		});
-		return sash;
-	}
-
-	/**
-	 * Creates the inner page container.
-	 * 
-	 * @param parent
-	 * @return Composite
-	 */
-	protected Composite createPageContainer(Composite parent) {
-	
-		Composite outer = new Composite(parent, SWT.NONE);
-		
-		GridData outerData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL);
-		outerData.horizontalIndent = IDialogConstants.HORIZONTAL_MARGIN;
-				
-		outer.setLayout(new GridLayout());
-		outer.setLayoutData(outerData);
-		
-		//Create an outer composite for spacing
-		scrolled = new ScrolledComposite(outer, SWT.V_SCROLL | SWT.H_SCROLL);
-
-		// always show the focus control
-		scrolled.setShowFocusedControl(true);
-		scrolled.setExpandHorizontal(true);
-		scrolled.setExpandVertical(true);
-		
-		GridData scrolledData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL);
-				
-		scrolled.setLayoutData(scrolledData);
-		
-		Composite result = new Composite(scrolled, SWT.NONE);
-		
-		GridData resultData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL);
-				
-		result.setLayout(getPageLayout());
-		result.setLayoutData(resultData);
-		
-		scrolled.setContent(result);
-		
-		return result;
-	}
-
-	/**
-	 * Return the layout for the composite that contains
-	 * the pages.
-	 * @return PageLayout
-	 * 
-	 * @since 3.1
-	 */
-	protected Layout getPageLayout() {
-		return new PageLayout();
-	}
-
-	/**
-	 * Creates the wizard's title area.
-	 * 
-	 * @param parent
-	 *            the SWT parent for the title area composite.
-	 * @return the created title area composite.
-	 */
-	protected Composite createTitleArea(Composite parent) {
-		// Create the title area which will contain
-		// a title, message, and image.
-		int margins = 2;
-		titleArea = new Composite(parent, SWT.NONE);
-		FormLayout layout = new FormLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = margins;
-		titleArea.setLayout(layout);
-
-		
-		GridData layoutData = new GridData(GridData.FILL_HORIZONTAL);
-		layoutData.verticalAlignment = SWT.TOP;
-		titleArea.setLayoutData(layoutData);
-
-		// Message label
-		messageArea = new DialogMessageArea();
-		messageArea.createContents(titleArea);
-
-		titleArea.addControlListener(new ControlAdapter() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse.swt.events.ControlEvent)
-			 */
-			public void controlResized(ControlEvent e) {
-				updateMessage();
-			}
-		});
-
-		final IPropertyChangeListener fontListener = new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				if (JFaceResources.BANNER_FONT.equals(event.getProperty())) {
-					updateMessage();
-				}
-				if (JFaceResources.DIALOG_FONT.equals(event.getProperty())) {
-					updateMessage();
-					Font dialogFont = JFaceResources.getDialogFont();
-					updateTreeFont(dialogFont);
-					Control[] children = ((Composite) buttonBar).getChildren();
-					for (int i = 0; i < children.length; i++) {
-						children[i].setFont(dialogFont);
-					}
-				}
-			}
-		};
-
-		titleArea.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				JFaceResources.getFontRegistry().removeListener(fontListener);
-			}
-		});
-		JFaceResources.getFontRegistry().addListener(fontListener);
-		messageArea.setTitleLayoutData(createMessageAreaData());
-		messageArea.setMessageLayoutData(createMessageAreaData());
-		return titleArea;
-	}
-
-	/**
-	 * Create the layout data for the message area.
-	 * 
-	 * @return FormData for the message area.
-	 */
-	private FormData createMessageAreaData() {
-		FormData messageData = new FormData();
-		messageData.top = new FormAttachment(0);
-		messageData.bottom = new FormAttachment(100);
-		messageData.right = new FormAttachment(100);
-		messageData.left = new FormAttachment(0);
-		return messageData;
-	}
-
-	/**
-	 * @param parent
-	 *            the SWT parent for the tree area controls.
-	 * @return the new <code>Control</code>.
-	 * @since 3.0
-	 */
-	protected Control createTreeAreaContents(Composite parent) {
-		// Build the tree an put it into the composite.
-		treeViewer = createTreeViewer(parent);
-		treeViewer.setInput(getPreferenceManager());
-		updateTreeFont(JFaceResources.getDialogFont());
-		layoutTreeAreaControl(treeViewer.getControl());
-		return treeViewer.getControl();
-	}
-
-	/**
-	 * Create a new <code>TreeViewer</code>.
-	 * 
-	 * @param parent
-	 *            the parent <code>Composite</code>.
-	 * @return the <code>TreeViewer</code>.
-	 * @since 3.0
-	 */
-	protected TreeViewer createTreeViewer(Composite parent) {
-		final TreeViewer viewer = new TreeViewer(parent, SWT.NONE);
-		addListeners(viewer);
-		viewer.setLabelProvider(new PreferenceLabelProvider());
-		viewer.setContentProvider(new PreferenceContentProvider());
-		return viewer;
-	}
-
-	/**
-	 * Add the listeners to the tree viewer.
-	 * @param viewer
-	 * 
-	 * @since 3.1
-	 */
-	protected void addListeners(final TreeViewer viewer) {
-		viewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
-			private void handleError() {
-				try {
-					// remove the listener temporarily so that the events caused
-					// by the error handling dont further cause error handling
-					// to occur.
-					viewer.removePostSelectionChangedListener(this);
-					showPageFlippingAbortDialog();
-					selectCurrentPageAgain();
-					clearSelectedNode();
-				} finally {
-					viewer.addPostSelectionChangedListener(this);
-				}
-			}
-
-			public void selectionChanged(SelectionChangedEvent event) {
-				final Object selection = getSingleSelection(event.getSelection());
-				if (selection instanceof IPreferenceNode) {
-					BusyIndicator.showWhile(getShell().getDisplay(), new Runnable(){
-						public void run() {
-							if (!isCurrentPageValid()) {
-								handleError();
-							} else if (!showPage((IPreferenceNode) selection)) {
-								// Page flipping wasn't successful
-								handleError();
-							} else {
-								// Everything went well
-								lastSuccessfulNode = (IPreferenceNode) selection;
-							}
-						}
-					});
-				}
-			}
-		});
-		((Tree) viewer.getControl()).addSelectionListener(new SelectionAdapter() {
-			public void widgetDefaultSelected(final SelectionEvent event) {
-				ISelection selection = viewer.getSelection();
-				if (selection.isEmpty()) {
-					return;
-				}
-				IPreferenceNode singleSelection = getSingleSelection(selection);
-				boolean expanded = viewer.getExpandedState(singleSelection);
-				viewer.setExpandedState(singleSelection, !expanded);
-			}
-		});
-		//Register help listener on the tree to use context sensitive help
-		viewer.getControl().addHelpListener(new HelpListener() {
-			public void helpRequested(HelpEvent event) {
-				if (currentPage == null) { // no current page? open dialog's help
-					openDialogHelp();
-					return;
-				}
-				// A) A typical path: the current page has registered its own help link 
-				// via WorkbenchHelpSystem#setHelp(). When just call it and let 
-				// it handle the help request.
-				Control pageControl = currentPage.getControl();
-				if (pageControl != null && pageControl.isListening(SWT.Help)) {
-					currentPage.performHelp();
-					return;
-				}
-				
-				// B) Less typical path: no standard listener has been created for the page.
-				// In this case we may or may not have an override of page's #performHelp().
-				// 1) Try to get default help opened for the dialog;
-				openDialogHelp();
-				// 2) Next call currentPage's #performHelp(). If it was overridden, it might switch help 
-				// to something else.
-				currentPage.performHelp();
-			}
-			
-			private void openDialogHelp() {
-				if (pageContainer == null)
-					return;
-		    	for(Control currentControl = pageContainer; currentControl != null; currentControl = currentControl.getParent()) {  
-		    		if (currentControl.isListening(SWT.Help)) {
-		    			currentControl.notifyListeners(SWT.Help, new Event());
-		    			break;
-		    		}
-		    	}
-			}
-		});
-	}
-
-	/**
-	 * Find the <code>IPreferenceNode</code> that has data the same id as the
-	 * supplied value.
-	 * 
-	 * @param nodeId
-	 *            the id to search for.
-	 * @return <code>IPreferenceNode</code> or <code>null</code> if not
-	 *         found.
-	 */
-	protected IPreferenceNode findNodeMatching(String nodeId) {
-		List nodes = preferenceManager.getElements(PreferenceManager.POST_ORDER);
-		for (Iterator i = nodes.iterator(); i.hasNext();) {
-			IPreferenceNode node = (IPreferenceNode) i.next();
-			if (node.getId().equals(nodeId)) {
-				return node;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Get the last known right side width.
-	 * 
-	 * @return the width.
-	 */
-	protected int getLastRightWidth() {
-		return lastTreeWidth;
-	}
-
-	/**
-	 * Returns the preference mananger used by this preference dialog.
-	 * 
-	 * @return the preference mananger
-	 */
-	public PreferenceManager getPreferenceManager() {
-		return preferenceManager;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#getPreferenceStore()
-	 */
-	public IPreferenceStore getPreferenceStore() {
-		return preferenceStore;
-	}
-
-	/**
-	 * Get the name of the selected item preference
-	 * 
-	 * @return String
-	 */
-	protected String getSelectedNodePreference() {
-		return lastPreferenceId;
-	}
-
-	/**
-	 * @param selection
-	 *            the <code>ISelection</code> to examine.
-	 * @return the first element, or null if empty.
-	 */
-	protected IPreferenceNode getSingleSelection(ISelection selection) {
-		if (!selection.isEmpty()) {
-			IStructuredSelection structured = (IStructuredSelection) selection;
-			if (structured.getFirstElement() instanceof IPreferenceNode) {
-				return (IPreferenceNode) structured.getFirstElement();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @return the <code>TreeViewer</code> for this dialog.
-	 * @since 3.3
-	 */
-	public TreeViewer getTreeViewer() {
-		return treeViewer;
-	}
-
-	/**
-	 * Save the values specified in the pages.
-	 * <p>
-	 * The default implementation of this framework method saves all pages of
-	 * type <code>PreferencePage</code> (if their store needs saving and is a
-	 * <code>PreferenceStore</code>).
-	 * </p>
-	 * <p>
-	 * Subclasses may override.
-	 * </p>
-	 */
-	protected void handleSave() {
-		Iterator nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER).iterator();
-		while (nodes.hasNext()) {
-			IPreferenceNode node = (IPreferenceNode) nodes.next();
-			IPreferencePage page = node.getPage();
-			if (page instanceof PreferencePage) {
-				// Save now in case tbe workbench does not shutdown cleanly
-				IPreferenceStore store = ((PreferencePage) page).getPreferenceStore();
-				if (store != null && store.needsSaving()
-						&& store instanceof IPersistentPreferenceStore) {
-					try {
-						((IPersistentPreferenceStore) store).save();
-					} catch (IOException e) {
-						String message =JFaceResources.format(
-                                "PreferenceDialog.saveErrorMessage", new Object[] { page.getTitle(), e.getMessage() }); //$NON-NLS-1$
-			            Policy.getStatusHandler().show(
-			                    new Status(IStatus.ERROR, Policy.JFACE, message, e),
-			                    JFaceResources.getString("PreferenceDialog.saveErrorTitle")); //$NON-NLS-1$
-										
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Notifies that the window's close button was pressed, the close menu was
-	 * selected, or the ESCAPE key pressed.
-	 * <p>
-	 * The default implementation of this framework method sets the window's
-	 * return code to <code>CANCEL</code> and closes the window using
-	 * <code>close</code>. Subclasses may extend or reimplement.
-	 * </p>
-	 */
-	protected void handleShellCloseEvent() {
-		// handle the same as pressing cancel
-		cancelPressed();
-	}
-
-	/**
-	 * Notifies of the pressing of the Help button.
-	 * <p>
-	 * The default implementation of this framework method calls
-	 * <code>performHelp</code> on the currently active page.
-	 * </p>
-	 */
-	protected void helpPressed() {
-		if (currentPage != null) {
-			currentPage.performHelp();
-		}
-	}
-
-	/**
-	 * Returns whether the current page is valid.
-	 * 
-	 * @return <code>false</code> if the current page is not valid, or or
-	 *         <code>true</code> if the current page is valid or there is no
-	 *         current page
-	 */
-	protected boolean isCurrentPageValid() {
-		if (currentPage == null) {
-			return true;
-		}
-		return currentPage.isValid();
-	}
-
-	/**
-	 * @param control
-	 *            the <code>Control</code> to lay out.
-	 * @since 3.0
-	 */
-	protected void layoutTreeAreaControl(Control control) {
-		GridData gd = new GridData(GridData.FILL_VERTICAL);
-		gd.widthHint = getLastRightWidth();
-		gd.verticalSpan = 1;
-		control.setLayoutData(gd);
-	}
-
-	/**
-	 * The preference dialog implementation of this <code>Dialog</code>
-	 * framework method sends <code>performOk</code> to all pages of the
-	 * preference dialog, then calls <code>handleSave</code> on this dialog to
-	 * save any state, and then calls <code>close</code> to close this dialog.
-	 */
-	protected void okPressed() {
-		SafeRunnable.run(new SafeRunnable() {
-			private boolean errorOccurred;
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.ISafeRunnable#run()
-			 */
-			public void run() {
-				getButton(IDialogConstants.OK_ID).setEnabled(false);
-				errorOccurred = false;
-				boolean hasFailedOK = false;
-				try {
-					// Notify all the pages and give them a chance to abort
-					Iterator nodes = preferenceManager.getElements(PreferenceManager.PRE_ORDER)
-							.iterator();
-					while (nodes.hasNext()) {
-						IPreferenceNode node = (IPreferenceNode) nodes.next();
-						IPreferencePage page = node.getPage();
-						if (page != null) {
-							if (!page.performOk()){
-								hasFailedOK = true;
-								return;
-							}
-						}
-					}
-				} catch (Exception e) {
-					handleException(e);
-				} finally {
-					//Don't bother closing if the OK failed
-					if(hasFailedOK){
-						setReturnCode(FAILED);
-						getButton(IDialogConstants.OK_ID).setEnabled(true);
-						return;
-					}
-					
-					if (!errorOccurred) {
-						//Give subclasses the choice to save the state of the
-					    //preference pages.
-						handleSave();
-					}
-					setReturnCode(OK);
-					close();
-				}
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
-			 */
-			public void handleException(Throwable e) {
-				errorOccurred = true;
-				
-				Policy.getLog().log(new Status(IStatus.ERROR, Policy.JFACE, 0, e.toString(), e));
-
-				clearSelectedNode();
-				String message = JFaceResources.getString("SafeRunnable.errorMessage"); //$NON-NLS-1$
-
-                Policy.getStatusHandler().show(
-                        new Status(IStatus.ERROR, Policy.JFACE, message, e),
-                        JFaceResources.getString("Error")); //$NON-NLS-1$
-
-			}
-		});
-	}
-
-	/**
-	 * Selects the page determined by <code>lastSuccessfulNode</code> in the
-	 * page hierarchy.
-	 */
-	void selectCurrentPageAgain() {
-		if (lastSuccessfulNode == null) {
-			return;
-		}
-		getTreeViewer().setSelection(new StructuredSelection(lastSuccessfulNode));
-		currentPage.setVisible(true);
-	}
-
-	/**
-	 * Selects the saved item in the tree of preference pages. If it cannot do
-	 * this it saves the first one.
-	 */
-	protected void selectSavedItem() {
-		IPreferenceNode node = findNodeMatching(getSelectedNodePreference());
-		if (node == null) {
-			IPreferenceNode[] nodes = preferenceManager.getRootSubNodes();
-			ViewerComparator comparator = getTreeViewer().getComparator();
-			if (comparator != null)	{
-				comparator.sort(null, nodes);
-			}
-			ViewerFilter[] filters = getTreeViewer().getFilters();
-			for (int i = 0; i < nodes.length; i++) {
-				IPreferenceNode selectedNode = nodes[i];
-				// See if it passes all filters
-				for (int j = 0; j < filters.length; j++) {
-					if (!filters[j].select(this.treeViewer, preferenceManager
-							.getRoot(), selectedNode)) {
-						selectedNode = null;
-						break;
-					}
-				}
-				// if it passes all filters select it
-				if (selectedNode != null) {
-					node = selectedNode;
-					break;
-				}
-			}
-		}
-		if (node != null) {
-			getTreeViewer().setSelection(new StructuredSelection(node), true);
-			// Keep focus in tree. See bugs 2692, 2621, and 6775.
-			getTreeViewer().getControl().setFocus();
-		}
-	}
-
-	/**
-	 * Display the given error message. The currently displayed message is saved
-	 * and will be redisplayed when the error message is set to
-	 * <code>null</code>.
-	 * 
-	 * @param newErrorMessage
-	 *            the errorMessage to display or <code>null</code>
-	 */
-	public void setErrorMessage(String newErrorMessage) {
-		if (newErrorMessage == null) {
-			messageArea.clearErrorMessage();
-		} else {
-			messageArea.updateText(newErrorMessage, IMessageProvider.ERROR);
-		}
-	}
-
-	/**
-	 * Save the last known tree width.
-	 * 
-	 * @param width
-	 *            the width.
-	 */
-	private void setLastTreeWidth(int width) {
-		lastTreeWidth = width;
-	}
-
-	/**
-	 * Set the message text. If the message line currently displays an error,
-	 * the message is stored and will be shown after a call to clearErrorMessage
-	 * <p>
-	 * Shortcut for <code>setMessage(newMessage, NONE)</code>
-	 * </p>
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 */
-	public void setMessage(String newMessage) {
-		setMessage(newMessage, IMessageProvider.NONE);
-	}
-
-	/**
-	 * Sets the message for this dialog with an indication of what type of
-	 * message it is.
-	 * <p>
-	 * The valid message types are one of <code>NONE</code>,
-	 * <code>INFORMATION</code>,<code>WARNING</code>, or
-	 * <code>ERROR</code>.
-	 * </p>
-	 * <p>
-	 * Note that for backward compatibility, a message of type
-	 * <code>ERROR</code> is different than an error message (set using
-	 * <code>setErrorMessage</code>). An error message overrides the current
-	 * message until the error message is cleared. This method replaces the
-	 * current message and does not affect the error message.
-	 * </p>
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @since 2.0
-	 */
-	public void setMessage(String newMessage, int newType) {
-		messageArea.updateText(newMessage, newType);
-	}
-
-	/**
-	 * Sets the minimum page size.
-	 * 
-	 * @param minWidth
-	 *            the minimum page width
-	 * @param minHeight
-	 *            the minimum page height
-	 * @see #setMinimumPageSize(Point)
-	 */
-	public void setMinimumPageSize(int minWidth, int minHeight) {
-		minimumPageSize.x = minWidth;
-		minimumPageSize.y = minHeight;
-	}
-
-	/**
-	 * Sets the minimum page size.
-	 * 
-	 * @param size
-	 *            the page size encoded as <code>new Point(width,height)</code>
-	 * @see #setMinimumPageSize(int,int)
-	 */
-	public void setMinimumPageSize(Point size) {
-		minimumPageSize.x = size.x;
-		minimumPageSize.y = size.y;
-	}
-
-	/**
-	 * Sets the preference store for this preference dialog.
-	 * 
-	 * @param store
-	 *            the preference store
-	 * @see #getPreferenceStore
-	 */
-	public void setPreferenceStore(IPreferenceStore store) {
-		Assert.isNotNull(store);
-		preferenceStore = store;
-	}
-
-	/**
-	 * Save the currently selected node.
-	 */
-	private void setSelectedNode() {
-		String storeValue = null;
-		IStructuredSelection selection = (IStructuredSelection) getTreeViewer().getSelection();
-		if (selection.size() == 1) {
-			IPreferenceNode node = (IPreferenceNode) selection.getFirstElement();
-			storeValue = node.getId();
-		}
-		setSelectedNodePreference(storeValue);
-	}
-
-	/**
-	 * Sets the name of the selected item preference. Public equivalent to
-	 * <code>setSelectedNodePreference</code>.
-	 * 
-	 * @param pageId
-	 *            The identifier for the page
-	 * @since 3.0
-	 */
-	public void setSelectedNode(String pageId) {
-		setSelectedNodePreference(pageId);
-	}
-
-	/**
-	 * Sets the name of the selected item preference.
-	 * 
-	 * @param pageId
-	 *            The identifier for the page
-	 */
-	protected void setSelectedNodePreference(String pageId) {
-		lastPreferenceId = pageId;
-	}
-
-	/**
-	 * Changes the shell size to the given size, ensuring that it is no larger
-	 * than the display bounds.
-	 * 
-	 * @param width
-	 *            the shell width
-	 * @param height
-	 *            the shell height
-	 */
-	private void setShellSize(int width, int height) {
-		Rectangle preferred = getShell().getBounds();
-		preferred.width = width;
-		preferred.height = height;
-		getShell().setBounds(getConstrainedShellBounds(preferred));
-	}
-
-	/**
-	 * Shows the preference page corresponding to the given preference node.
-	 * Does nothing if that page is already current.
-	 * 
-	 * @param node
-	 *            the preference node, or <code>null</code> if none
-	 * @return <code>true</code> if the page flip was successful, and
-	 *         <code>false</code> is unsuccessful
-	 */
-	protected boolean showPage(IPreferenceNode node) {
-		if (node == null) {
-			return false;
-		}
-		// Create the page if nessessary
-		if (node.getPage() == null) {
-			createPage(node);
-		}
-		if (node.getPage() == null) {
-			return false;
-		}
-		IPreferencePage newPage = getPage(node);
-		if (newPage == currentPage) {
-			return true;
-		}
-		if (currentPage != null) {
-			if (!currentPage.okToLeave()) {
-				return false;
-			}
-		}
-		IPreferencePage oldPage = currentPage;
-		currentPage = newPage;
-		// Set the new page's container
-		currentPage.setContainer(this);
-		// Ensure that the page control has been created
-		// (this allows lazy page control creation)
-		if (currentPage.getControl() == null) {
-			final boolean[] failed = { false };
-			SafeRunnable.run(new ISafeRunnable() {
-				public void handleException(Throwable e) {
-					failed[0] = true;
-				}
-
-				public void run() {
-					createPageControl(currentPage, pageContainer);
-				}
-			});
-			if (failed[0]) {
-				return false;
-			}
-			// the page is responsible for ensuring the created control is
-			// accessable
-			// via getControl.
-			Assert.isNotNull(currentPage.getControl());
-		}
-		// Force calculation of the page's description label because
-		// label can be wrapped.
-		final Point[] size = new Point[1];
-		final Point failed = new Point(-1, -1);
-		SafeRunnable.run(new ISafeRunnable() {
-			public void handleException(Throwable e) {
-				size[0] = failed;
-			}
-
-			public void run() {
-				size[0] = currentPage.computeSize();
-			}
-		});
-		if (size[0].equals(failed)) {
-			return false;
-		}
-		Point contentSize = size[0];
-		// Do we need resizing. Computation not needed if the
-		// first page is inserted since computing the dialog's
-		// size is done by calling dialog.open().
-		// Also prevent auto resize if the user has manually resized
-		Shell shell = getShell();
-		Point shellSize = shell.getSize();
-		if (oldPage != null) {
-			Rectangle rect = pageContainer.getClientArea();
-			Point containerSize = new Point(rect.width, rect.height);
-			int hdiff = contentSize.x - containerSize.x;
-			int vdiff = contentSize.y - containerSize.y;
-			if ((hdiff > 0 || vdiff > 0) && shellSize.equals(lastShellSize)) {
-					hdiff = Math.max(0, hdiff);
-					vdiff = Math.max(0, vdiff);
-					setShellSize(shellSize.x + hdiff, shellSize.y + vdiff);
-					lastShellSize = shell.getSize();
-					if (currentPage.getControl().getSize().x == 0) {
-						currentPage.getControl().setSize(containerSize);
-					}
-				
-			} else {
-				currentPage.setSize(containerSize);
-			}
-		}
-		
-		scrolled.setMinSize(contentSize);
-		// Ensure that all other pages are invisible
-		// (including ones that triggered an exception during
-		// their creation).
-		Control[] children = pageContainer.getChildren();
-		Control currentControl = currentPage.getControl();
-		for (int i = 0; i < children.length; i++) {
-			if (children[i] != currentControl) {
-				children[i].setVisible(false);
-			}
-		}
-		// Make the new page visible
-		currentPage.setVisible(true);
-		if (oldPage != null) {
-			oldPage.setVisible(false);
-		}
-		// update the dialog controls
-		update();
-		return true;
-	}
-
-	/**
-	 * Create the page for the node.
-	 * @param node
-	 * 
-	 * @since 3.1
-	 */
-	protected void createPage(IPreferenceNode node) {
-		node.createPage();
-	}
-
-	/**
-	 * Get the page for the node.
-	 * @param node
-	 * @return IPreferencePage
-	 * 
-	 * @since 3.1
-	 */
-	protected IPreferencePage getPage(IPreferenceNode node) {
-		return node.getPage();
-	}
-
-	/**
-	 * Shows the "Page Flipping abort" dialog.
-	 */
-	void showPageFlippingAbortDialog() {
-		MessageDialog.open(MessageDialog.ERROR, getShell(), JFaceResources
-				.getString("AbortPageFlippingDialog.title"), //$NON-NLS-1$
-				JFaceResources.getString("AbortPageFlippingDialog.message"), SWT.SHEET); //$NON-NLS-1$
-	}
-
-	/**
-	 * Updates this dialog's controls to reflect the current page.
-	 */
-	protected void update() {
-		// Update the title bar
-		updateTitle();
-		// Update the message line
-		updateMessage();
-		// Update the buttons
-		updateButtons();
-		//Saved the selected node in the preferences
-		setSelectedNode();
-		firePageChanged(new PageChangedEvent(this, getCurrentPage()));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#updateButtons()
-	 */
-	public void updateButtons() {
-		okButton.setEnabled(isCurrentPageValid());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#updateMessage()
-	 */
-	public void updateMessage() {
-		String message = null;
-		String errorMessage = null;
-		if(currentPage != null){
-			message = currentPage.getMessage();
-			errorMessage = currentPage.getErrorMessage();
-		}
-		int messageType = IMessageProvider.NONE;
-		if (message != null && currentPage instanceof IMessageProvider) {
-			messageType = ((IMessageProvider) currentPage).getMessageType();
-		}
-
-		if (errorMessage == null){
-			if (showingError) {
-				// we were previously showing an error
-				showingError = false;
-			}
-		}
-		else {
-			message = errorMessage;
-			messageType = IMessageProvider.ERROR;
-			if (!showingError) {
-				// we were not previously showing an error
-				showingError = true;
-			}
-		}
-		messageArea.updateText(message,messageType);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePageContainer#updateTitle()
-	 */
-	public void updateTitle() {
-		if(currentPage == null) {
-			return;
-		}
-		messageArea.showTitle(currentPage.getTitle(), currentPage.getImage());
-	}
-
-	/**
-	 * Update the tree to use the specified <code>Font</code>.
-	 * 
-	 * @param dialogFont
-	 *            the <code>Font</code> to use.
-	 * @since 3.0
-	 */
-	protected void updateTreeFont(Font dialogFont) {
-		getTreeViewer().getControl().setFont(dialogFont);
-	}
-
-	/**
-	 * Returns the currentPage.
-	 * @return IPreferencePage
-	 * @since 3.1
-	 */
-	protected IPreferencePage getCurrentPage() {
-		return currentPage;
-	}
-
-	/**
-	 * Sets the current page.
-	 * @param currentPage
-	 * 
-	 * @since 3.1
-	 */
-	protected void setCurrentPage(IPreferencePage currentPage) {
-		this.currentPage = currentPage;
-	}
-
-	/**
-	 * Set the treeViewer.
-	 * @param treeViewer
-	 * 
-	 * @since 3.1
-	 */
-	protected void setTreeViewer(TreeViewer treeViewer) {
-		this.treeViewer = treeViewer;
-	}
-
-	/**
-	 * Get the composite that is showing the page.
-	 *
-	 * @return Composite.
-	 * 
-	 * @since 3.1
-	 */
-	protected Composite getPageContainer() {
-		return this.pageContainer;
-	}
-
-	/**
-	 * Set the composite that is showing the page.
-	 * @param pageContainer Composite
-	 * 
-	 * @since 3.1
-	 */
-	protected void setPageContainer(Composite pageContainer) {
-		this.pageContainer = pageContainer;
-	}
-	/**
-	 * Create the page control for the supplied page.
-	 * 
-	 * @param page - the preference page to be shown
-	 * @param parent - the composite to parent the page
-	 * 
-	 * @since 3.1
-	 */
-	protected void createPageControl(IPreferencePage page, Composite parent) {
-		page.createControl(parent);
-	}
-	
-	/**
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#getSelectedPage()
-	 * 
-	 * @since 3.1
-	 */
-	public Object getSelectedPage() {
-			return getCurrentPage();
-		}
-	
-	/**
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#addPageChangedListener(org.eclipse.jface.dialogs.IPageChangedListener)
-	 * @since 3.1
-	 */
-	public void addPageChangedListener(IPageChangedListener listener) {
-		pageChangedListeners.add(listener);
-	}
-	
-	/**
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#removePageChangedListener(org.eclipse.jface.dialogs.IPageChangedListener)
-	 * @since 3.1
-	 */
-	public void removePageChangedListener(IPageChangedListener listener) {
-		pageChangedListeners.remove(listener);
-		
-	}
-
-	/**
-     * Notifies any selection changed listeners that the selected page
-     * has changed.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param event a selection changed event
-     *
-     * @see IPageChangedListener#pageChanged
-     * 
-     * @since 3.1
-     */
-    protected void firePageChanged(final PageChangedEvent event) {
-        Object[] listeners = pageChangedListeners.getListeners();
-        for (int i = 0; i < listeners.length; i++) {
-            final IPageChangedListener l = (IPageChangedListener) listeners[i];
-            SafeRunnable.run(new SafeRunnable() {
-                public void run() {
-                    l.pageChanged(event);
-                }
-            });
-        }
-    }
-    
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-     */
-    protected boolean isResizable() {
-    	return true;
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceLabelProvider.java
deleted file mode 100644
index e20b0bc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceLabelProvider.java
+++ /dev/null
@@ -1,38 +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.jface.preference;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Provides labels for <code>IPreferenceNode</code> objects.
- * 
- * @since 3.0
- */
-public class PreferenceLabelProvider extends LabelProvider {
-
-    /**
-     * @param element must be an instance of <code>IPreferenceNode</code>.
-     * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-     */
-    public String getText(Object element) {
-        return ((IPreferenceNode) element).getLabelText();
-    }
-
-    /**
-     * @param element must be an instance of <code>IPreferenceNode</code>.
-     * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-     */
-    public Image getImage(Object element) {
-        return ((IPreferenceNode) element).getLabelImage();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceManager.java
deleted file mode 100644
index 4b809b1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceManager.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jan-Hendrik Diederich, Bredex GmbH - bug 201052
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A preference manager maintains a hierarchy of preference nodes and
- * associated preference pages.
- */
-public class PreferenceManager {
-    /**
-     * Pre-order traversal means visit the root first,
-     * then the children.
-     */
-    public static final int PRE_ORDER = 0;
-
-    /**
-     * Post-order means visit the children, and then the root.
-     */
-    public static final int POST_ORDER = 1;
-    
-    /**
-     * The id of the root node.
-     */
-    private final static String ROOT_NODE_ID = ""; //$NON-NLS-1$
-
-    /**
-     * The root node.
-     * Note that the root node is a special internal node
-     * that is used to collect together all the nodes that
-     * have no parent; it is not given out to clients.
-     */
-    PreferenceNode root;
-
-    /**
-     * The path separator character.
-     */
-    String separator;
-
-    /**
-     * Creates a new preference manager.
-     */
-    public PreferenceManager() {
-        this('.', new PreferenceNode(ROOT_NODE_ID));
-    }
-    
-    /**
-     * Creates a new preference manager with the given
-     * path separator.
-     * 
-     * @param separatorChar
-     */
-    public PreferenceManager(final char separatorChar) { 
-    	this(separatorChar, new PreferenceNode(ROOT_NODE_ID));
-    }
-
-    /**
-     * Creates a new preference manager with the given
-     * path separator and root node.
-     *
-     * @param separatorChar the separator character
-     * @param rootNode the root node. 
-     *
-     * @since 3.4
-     */
-    public PreferenceManager(final char separatorChar, PreferenceNode rootNode) {
-        separator = new String(new char[] { separatorChar });
-        this.root = rootNode;
-    }
-
-    /**
-     * Adds the given preference node as a subnode of the
-     * node at the given path.
-     *
-     * @param path the path
-     * @param node the node to add
-     * @return <code>true</code> if the add was successful,
-     *  and <code>false</code> if there is no contribution at
-     *  the given path
-     */
-    public boolean addTo(String path, IPreferenceNode node) {
-        IPreferenceNode target = find(path);
-        if (target == null) {
-			return false;
-		}
-        target.add(node);
-        return true;
-    }
-
-    /**
-     * Adds the given preference node as a subnode of the
-     * root.
-     *
-     * @param node the node to add, which must implement 
-     *   <code>IPreferenceNode</code>
-     */
-    public void addToRoot(IPreferenceNode node) {
-        Assert.isNotNull(node);
-        root.add(node);
-    }
-
-    /**
-     * Recursively enumerates all nodes at or below the given node
-     * and adds them to the given list in the given order.
-     * 
-     * @param node the starting node
-     * @param sequence a read-write list of preference nodes
-     *  (element type: <code>IPreferenceNode</code>)
-     *  in the given order
-     * @param order the traversal order, one of 
-     *	<code>PRE_ORDER</code> and <code>POST_ORDER</code>
-     */
-    protected void buildSequence(IPreferenceNode node, List sequence, int order) {
-        if (order == PRE_ORDER) {
-			sequence.add(node);
-		}
-        IPreferenceNode[] subnodes = node.getSubNodes();
-        for (int i = 0; i < subnodes.length; i++) {
-            buildSequence(subnodes[i], sequence, order);
-        }
-        if (order == POST_ORDER) {
-			sequence.add(node);
-		}
-    }
-
-    /**
-     * Finds and returns the contribution node at the given path.
-     *
-     * @param path the path
-     * @return the node, or <code>null</code> if none
-     */
-    public IPreferenceNode find(String path) {
-       return find(path,root);
-    }
-    
-    /**
-     * Finds and returns the preference node directly
-     * below the top at the given path.
-     *
-     * @param path the path
-     * @param top top at the given path
-     * @return the node, or <code>null</code> if none
-     * 
-     * @since 3.1
-     */
-    protected IPreferenceNode find(String path,IPreferenceNode top){
-    	 Assert.isNotNull(path);
-         StringTokenizer stok = new StringTokenizer(path, separator);
-         IPreferenceNode node = top;
-         while (stok.hasMoreTokens()) {
-             String id = stok.nextToken();
-             node = node.findSubNode(id);
-             if (node == null) {
-				return null;
-			}
-         }
-         if (node == top) {
-			return null;
-		}
-         return node;
-    }
-
-    /**
-     * Returns all preference nodes managed by this
-     * manager.
-     *
-     * @param order the traversal order, one of 
-     *	<code>PRE_ORDER</code> and <code>POST_ORDER</code>
-     * @return a list of preference nodes
-     *  (element type: <code>IPreferenceNode</code>)
-     *  in the given order
-     */
-    public List getElements(int order) {
-        Assert.isTrue(order == PRE_ORDER || order == POST_ORDER,
-                "invalid traversal order");//$NON-NLS-1$
-        ArrayList sequence = new ArrayList();
-        IPreferenceNode[] subnodes = getRoot().getSubNodes();
-        for (int i = 0; i < subnodes.length; i++) {
-			buildSequence(subnodes[i], sequence, order);
-		}
-        return sequence;
-    }
-
-    /**
-     * Returns the root node.
-     * Note that the root node is a special internal node
-     * that is used to collect together all the nodes that
-     * have no parent; it is not given out to clients.
-     *
-     * @return the root node
-     */
-    protected IPreferenceNode getRoot() {
-        return root;
-    }
-
-	/**
-	 * Returns the root level nodes of this preference manager.
-	 * 
-	 * @return an array containing the root nodes
-	 * @since 3.2
-	 */
-	public final IPreferenceNode[] getRootSubNodes() {
-		return getRoot().getSubNodes();
-	}
-
-    /**
-	 * Removes the preference node at the given path.
-	 * 
-	 * @param path
-	 *            the path
-	 * @return the node that was removed, or <code>null</code> if there was no
-	 *         node at the given path
-	 */
-    public IPreferenceNode remove(String path) {
-        Assert.isNotNull(path);
-        int index = path.lastIndexOf(separator);
-        if (index == -1) {
-			return root.remove(path);
-		}
-        // Make sure that the last character in the string isn't the "."
-        Assert.isTrue(index < path.length() - 1, "Path can not end with a dot");//$NON-NLS-1$
-        String parentPath = path.substring(0, index);
-        String id = path.substring(index + 1);
-        IPreferenceNode parentNode = find(parentPath);
-        if (parentNode == null) {
-			return null;
-		}
-        return parentNode.remove(id);
-    }
-
-    /**
-     * Removes the given prefreence node if it is managed by
-     * this contribution manager.
-     *
-     * @param node the node to remove
-     * @return <code>true</code> if the node was removed,
-     *  and <code>false</code> otherwise
-     */
-    public boolean remove(IPreferenceNode node) {
-        Assert.isNotNull(node);
-
-        return root.remove(node);
-    }
-
-    /**
-     * Removes all contribution nodes known to this manager.
-     */
-    public void removeAll() {
-        root = new PreferenceNode("");//$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceNode.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceNode.java
deleted file mode 100644
index 5644cbd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceNode.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A concrete implementation of a node in a preference dialog tree. This class
- * also supports lazy creation of the node's preference page.
- */
-public class PreferenceNode implements IPreferenceNode {
-    /**
-     * Preference page, or <code>null</code> if not yet loaded.
-     */
-    private IPreferencePage page;
-
-    /**
-     * The list of subnodes (immediate children) of this node (element type:
-     * <code>IPreferenceNode</code>).
-     */
-    private List subNodes;
-
-    /**
-     * Name of a class that implements <code>IPreferencePage</code>, or
-     * <code>null</code> if none.
-     */
-    private String classname;
-
-    /**
-     * The id of this node.
-     */
-    private String id;
-
-    /**
-     * Text label for this node. Note that this field is only used prior to the
-     * creation of the preference page.
-     */
-    private String label;
-
-    /**
-     * Image descriptor for this node, or <code>null</code> if none.
-     */
-    private ImageDescriptor imageDescriptor;
-
-    /**
-     * Cached image, or <code>null</code> if none.
-     */
-    private Image image;
-
-    /**
-     * Creates a new preference node with the given id. The new node has no
-     * subnodes.
-     * 
-     * @param id
-     *            the node id
-     */
-    public PreferenceNode(String id) {
-        Assert.isNotNull(id);
-        this.id = id;
-    }
-
-    /**
-     * Creates a preference node with the given id, label, and image, and
-     * lazily-loaded preference page. The preference node assumes (sole)
-     * responsibility for disposing of the image; this will happen when the node
-     * is disposed.
-     * 
-     * @param id
-     *            the node id
-     * @param label
-     *            the label used to display the node in the preference dialog's
-     *            tree
-     * @param image
-     *            the image displayed left of the label in the preference
-     *            dialog's tree, or <code>null</code> if none
-     * @param className
-     *            the class name of the preference page; this class must
-     *            implement <code>IPreferencePage</code>
-     */
-    public PreferenceNode(String id, String label, ImageDescriptor image,
-            String className) {
-        this(id);
-        this.imageDescriptor = image;
-        Assert.isNotNull(label);
-        this.label = label;
-        this.classname = className;
-    }
-
-    /**
-     * Creates a preference node with the given id and preference page. The
-     * title of the preference page is used for the node label. The node will
-     * not have an image.
-     * 
-     * @param id
-     *            the node id
-     * @param preferencePage
-     *            the preference page
-     */
-    public PreferenceNode(String id, IPreferencePage preferencePage) {
-        this(id);
-        Assert.isNotNull(preferencePage);
-        page = preferencePage;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public void add(IPreferenceNode node) {
-        if (subNodes == null) {
-			subNodes = new ArrayList();
-		}
-        subNodes.add(node);
-    }
-
-    /**
-     * Creates a new instance of the given class <code>className</code>.
-     * 
-     * @param className
-     * @return new Object or <code>null</code> in case of failures.
-     */
-    private Object createObject(String className) {
-        Assert.isNotNull(className);
-        try {
-            Class cl = Class.forName(className);
-            if (cl != null) {
-				return cl.newInstance();
-			}
-        } catch (ClassNotFoundException e) {
-            return null;
-        } catch (InstantiationException e) {
-            return null;
-        } catch (IllegalAccessException e) {
-            return null;
-        } catch (NoSuchMethodError e) {
-            return null;
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public void createPage() {
-        page = (IPreferencePage) createObject(classname);
-        if (getLabelImage() != null) {
-			page.setImageDescriptor(imageDescriptor);
-		}
-        page.setTitle(label);
-    }
-
-    /**
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public void disposeResources() {
-        if (image != null) {
-            image.dispose();
-            image = null;
-        }
-        if (page != null) {
-            page.dispose();
-            page = null;
-        }
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IContributionNode.
-     */
-    public IPreferenceNode findSubNode(String id) {
-        Assert.isNotNull(id);
-        Assert.isTrue(id.length() > 0);
-        if (subNodes == null) {
-			return null;
-		}
-        int size = subNodes.size();
-        for (int i = 0; i < size; i++) {
-            IPreferenceNode node = (IPreferenceNode) subNodes.get(i);
-            if (id.equals(node.getId())) {
-				return node;
-			}
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public String getId() {
-        return this.id;
-    }
-
-    /**
-     * Returns the image descriptor for this node.
-     * 
-     * @return the image descriptor
-     */
-    protected ImageDescriptor getImageDescriptor() {
-        return imageDescriptor;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public Image getLabelImage() {
-        if (image == null && imageDescriptor != null) {
-            image = imageDescriptor.createImage();
-        }
-        return image;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public String getLabelText() {
-        if (page != null) {
-			return page.getTitle();
-		}
-        return label;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public IPreferencePage getPage() {
-        return page;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public IPreferenceNode[] getSubNodes() {
-        if (subNodes == null) {
-			return new IPreferenceNode[0];
-		}
-        return (IPreferenceNode[]) subNodes
-                .toArray(new IPreferenceNode[subNodes.size()]);
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public IPreferenceNode remove(String id) {
-        IPreferenceNode node = findSubNode(id);
-        if (node != null) {
-			remove(node);
-		}
-        return node;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IPreferenceNode.
-     */
-    public boolean remove(IPreferenceNode node) {
-        if (subNodes == null) {
-			return false;
-		}
-        return subNodes.remove(node);
-    }
-
-    /**
-     * Set the current page to be newPage.
-     * 
-     * @param newPage
-     */
-    public void setPage(IPreferencePage newPage) {
-        page = newPage;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferencePage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferencePage.java
deleted file mode 100644
index 3777493..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferencePage.java
+++ /dev/null
@@ -1,645 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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> - Fix for bug 38729 - [Preferences]
- * 			 NPE PreferencePage isValid.
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.DialogPage;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-
-/**
- * Abstract base implementation for all preference page implementations.
- * <p>
- * Subclasses must implement the <code>createContents</code> framework
- * method to supply the page's main control.
- * </p>
- * <p>
- * Subclasses should extend the <code>doComputeSize</code> framework
- * method to compute the size of the page's control.
- * </p>
- * <p>
- * Subclasses may override the <code>performOk</code>, <code>performApply</code>, 
- * <code>performDefaults</code>, <code>performCancel</code>, and <code>performHelp</code>
- * framework methods to react to the standard button events.
- * </p>
- * <p>
- * Subclasses may call the <code>noDefaultAndApplyButton</code> framework
- * method before the page's control has been created to suppress
- * the standard Apply and Defaults buttons.
- * </p>
- */
-public abstract class PreferencePage extends DialogPage implements
-        IPreferencePage {
-
-    /**
-     * Preference store, or <code>null</code>.
-     */
-    private IPreferenceStore preferenceStore;
-
-    /**
-     * Valid state for this page; <code>true</code> by default.
-     *
-     * @see #isValid
-     */
-    private boolean isValid = true;
-
-    /**
-     * Body of page.
-     */
-    private Control body;
-
-    /**
-     * Whether this page has the standard Apply and Defaults buttons; 
-     * <code>true</code> by default.
-     *
-     * @see #noDefaultAndApplyButton
-     */
-    private boolean createDefaultAndApplyButton = true;
-
-    /**
-     * Standard Defaults button, or <code>null</code> if none.
-     * This button has id <code>DEFAULTS_ID</code>.
-     */
-    private Button defaultsButton = null;
-
-    /**
-     * The container this preference page belongs to; <code>null</code>
-     * if none.
-     */
-    private IPreferencePageContainer container = null;
-
-    /**
-     * Standard Apply button, or <code>null</code> if none.
-     * This button has id <code>APPLY_ID</code>.
-     */
-    private Button applyButton = null;
-
-    /**
-     * Description label.
-     * 
-     * @see #createDescriptionLabel(Composite)
-     */
-    private Label descriptionLabel;
-
-    /**
-     * Caches size of page.
-     */
-    private Point size = null;
-
-   
-    /**
-     * Creates a new preference page with an empty title and no image.
-     */
-    protected PreferencePage() {
-        this(""); //$NON-NLS-1$
-    }
-
-    /**
-     * Creates a new preference page with the given title and no image.
-     *
-     * @param title the title of this preference page
-     */
-    protected PreferencePage(String title) {
-        super(title);
-    }
-
-    /**
-     * Creates a new abstract preference page with the given title and image.
-     *
-     * @param title the title of this preference page
-     * @param image the image for this preference page,
-     *  or <code>null</code> if none
-     */
-    protected PreferencePage(String title, ImageDescriptor image) {
-        super(title, image);
-    }
-
-    /**
-     * Computes the size for this page's UI control.
-     * <p>
-     * The default implementation of this <code>IPreferencePage</code>
-     * method returns the size set by <code>setSize</code>; if no size
-     * has been set, but the page has a UI control, the framework
-     * method <code>doComputeSize</code> is called to compute the size.
-     * </p>
-     *
-     * @return the size of the preference page encoded as
-     *   <code>new Point(width,height)</code>, or 
-     *   <code>(0,0)</code> if the page doesn't currently have any UI component
-     */
-    public Point computeSize() {
-        if (size != null) {
-			return size;
-		}
-        Control control = getControl();
-        if (control != null) {
-            size = doComputeSize();
-            return size;
-        }
-        return new Point(0, 0);
-    }
-
-    /**
-     * Contributes additional buttons to the given composite.
-     * <p>
-     * The default implementation of this framework hook method does
-     * nothing. Subclasses should override this method to contribute buttons 
-     * to this page's button bar. For each button a subclass contributes,
-     * it must also increase the parent's grid layout number of columns
-     * by one; that is,
-     * <pre>
-     * ((GridLayout) parent.getLayout()).numColumns++);
-     * </pre>
-     * </p>
-     *
-     * @param parent the button bar
-     */
-    protected void contributeButtons(Composite parent) {
-    }
-
-    /**
-     * Creates and returns the SWT control for the customized body 
-     * of this preference page under the given parent composite.
-     * <p>
-     * This framework method must be implemented by concrete subclasses. Any
-     * subclass returning a <code>Composite</code> object whose <code>Layout</code>
-     * has default margins (for example, a <code>GridLayout</code>) are expected to
-     * set the margins of this <code>Layout</code> to 0 pixels. 
-     * </p>
-     *
-     * @param parent the parent composite
-     * @return the new control
-     */
-    protected abstract Control createContents(Composite parent);
-
-    /**
-     * The <code>PreferencePage</code> implementation of this 
-     * <code>IDialogPage</code> method creates a description label
-     * and button bar for the page. It calls <code>createContents</code>
-     * to create the custom contents of the page.
-     * <p>
-     * If a subclass that overrides this method creates a <code>Composite</code>
-     * that has a layout with default margins (for example, a <code>GridLayout</code>)
-     * it is expected to set the margins of this <code>Layout</code> to 0 pixels.
-     * @see IDialogPage#createControl(Composite)
-     */
-    public void createControl(Composite parent){
-
-        GridData gd;
-        Composite content = new Composite(parent, SWT.NONE);
-        setControl(content);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        content.setLayout(layout);
-        //Apply the font on creation for backward compatibility
-        applyDialogFont(content);
-
-        // initialize the dialog units
-        initializeDialogUnits(content);
-
-        descriptionLabel = createDescriptionLabel(content);
-        if (descriptionLabel != null) {
-            descriptionLabel.setLayoutData(new GridData(
-                    GridData.FILL_HORIZONTAL));
-        }
-
-        body = createContents(content);
-        if (body != null) {
-			// null is not a valid return value but support graceful failure
-            body.setLayoutData(new GridData(GridData.FILL_BOTH));
-		}
-
-        Composite buttonBar = new Composite(content, SWT.NONE);
-        layout = new GridLayout();
-        layout.numColumns = 0;
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        layout.makeColumnsEqualWidth = false;
-        buttonBar.setLayout(layout);
-        
-        gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
-        
-        buttonBar.setLayoutData(gd);
-
-        contributeButtons(buttonBar);
-        
-        if (createDefaultAndApplyButton) {
-            layout.numColumns = layout.numColumns + 2;
-			String[] labels = JFaceResources.getStrings(new String[] {
-					"defaults", "apply" }); //$NON-NLS-2$//$NON-NLS-1$
-			int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-			defaultsButton = new Button(buttonBar, SWT.PUSH);
-			defaultsButton.setText(labels[0]);
-			Dialog.applyDialogFont(defaultsButton);
-			GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-			Point minButtonSize = defaultsButton.computeSize(SWT.DEFAULT,
-					SWT.DEFAULT, true);
-			data.widthHint = Math.max(widthHint, minButtonSize.x);
-			defaultsButton.setLayoutData(data);
-			defaultsButton.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					performDefaults();
-				}
-			});
-
-            applyButton = new Button(buttonBar, SWT.PUSH);
-			applyButton.setText(labels[1]);
-			Dialog.applyDialogFont(applyButton);
-			data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-			minButtonSize = applyButton.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-					true);
-			data.widthHint = Math.max(widthHint, minButtonSize.x);
-			applyButton.setLayoutData(data);
-			applyButton.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					performApply();
-				}
-			});
-            applyButton.setEnabled(isValid());
-            applyDialogFont(buttonBar);
-        } else {
-            /* Check if there are any other buttons on the button bar.
-             * If not, throw away the button bar composite.  Otherwise
-             * there is an unusually large button bar.
-             */
-            if (buttonBar.getChildren().length < 1) {
-				buttonBar.dispose();
-			}
-        }
-    }
-
-	
-
-	/**
-     * Apply the dialog font to the composite and it's children
-     * if it is set. Subclasses may override if they wish to
-     * set the font themselves.
-     * @param composite
-     */
-    protected void applyDialogFont(Composite composite) {
-        Dialog.applyDialogFont(composite);
-    }
-
-    /**
-     * Creates and returns an SWT label under the given composite.
-     *
-     * @param parent the parent composite
-     * @return the new label
-     */
-    protected Label createDescriptionLabel(Composite parent) {
-        Label result = null;
-        String description = getDescription();
-        if (description != null) {
-            result = new Label(parent, SWT.WRAP);
-            result.setFont(parent.getFont());
-            result.setText(description);
-        }
-        return result;
-    }
-
-    /**
-     * Computes the size needed by this page's UI control.
-     * <p>
-     * All pages should override this method and set the appropriate sizes
-     * of their widgets, and then call <code>super.doComputeSize</code>.
-     * </p>
-     *
-     * @return the size of the preference page encoded as
-     *   <code>new Point(width,height)</code>
-     */
-    protected Point doComputeSize() {
-        if (descriptionLabel != null && body != null) {
-            Point bodySize = body.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-            GridData gd = (GridData) descriptionLabel.getLayoutData();
-            gd.widthHint = bodySize.x;
-        }
-        return getControl().computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-    }
-
-    /**
-     * Returns the preference store of this preference page.
-     * <p>
-     * This is a framework hook method for subclasses to return a
-     * page-specific preference store. The default implementation
-     * returns <code>null</code>.
-     * </p>
-     *
-     * @return the preference store, or <code>null</code> if none
-     */
-    protected IPreferenceStore doGetPreferenceStore() {
-        return null;
-    }
-
-    /**
-     * Returns the container of this page.
-     *
-     * @return the preference page container, or <code>null</code> if this
-     *   page has yet to be added to a container
-     */
-    public IPreferencePageContainer getContainer() {
-        return container;
-    }
-
-    /**
-     * Returns the preference store of this preference page.
-     *
-     * @return the preference store , or <code>null</code> if none
-     */
-    public IPreferenceStore getPreferenceStore() {
-        if (preferenceStore == null) {
-			preferenceStore = doGetPreferenceStore();
-		}
-        if (preferenceStore != null) {
-			return preferenceStore;
-		} else if (container != null) {
-			return container.getPreferenceStore();
-		}
-        return null;
-    }
-
-    /**	
-     * The preference page implementation of an <code>IPreferencePage</code>
-     * method returns whether this preference page is valid. Preference
-     * pages are considered valid by default; call <code>setValid(false)</code>
-     * to make a page invalid.
-     * @see IPreferencePage#isValid()
-     */
-    public boolean isValid() {
-        return isValid;
-    }
-
-    /**
-     * Suppresses creation of the standard Default and Apply buttons
-     * for this page.
-     * <p>
-     * Subclasses wishing a preference page without these buttons
-     * should call this framework method before the page's control
-     * has been created.
-     * </p>
-     */
-    protected void noDefaultAndApplyButton() {
-        createDefaultAndApplyButton = false;
-    }
-
-    /**
-     * The <code>PreferencePage</code> implementation of this 
-     * <code>IPreferencePage</code> method returns <code>true</code>
-     * if the page is valid.
-     * @see IPreferencePage#okToLeave()
-     */
-    public boolean okToLeave() {
-        return isValid();
-    }
-
-    /**
-     * Performs special processing when this page's Apply button has been pressed.
-     * <p>
-     * This is a framework hook method for sublcasses to do special things when
-     * the Apply button has been pressed.
-     * The default implementation of this framework method simply calls
-     * <code>performOk</code> to simulate the pressing of the page's OK button.
-     * </p>
-     * 
-     * @see #performOk
-     */
-    protected void performApply() {
-        performOk();
-    }
-
-    /**	
-     * The preference page implementation of an <code>IPreferencePage</code>
-     * method performs special processing when this page's Cancel button has
-     * been pressed.
-     * <p>
-     * This is a framework hook method for subclasses to do special things when
-     * the Cancel button has been pressed. The default implementation of this
-     * framework method does nothing and returns <code>true</code>.
-     * @see IPreferencePage#performCancel()
-     */
-    public boolean performCancel() {
-        return true;
-    }
-
-    /**
-     * Performs special processing when this page's Defaults button has been pressed.
-     * <p>
-     * This is a framework hook method for subclasses 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() {
-        updateApplyButton();
-    }
-
-   
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-     */
-    public boolean performOk() {
-        return true;
-    }
-
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.preference.IPreferencePage#setContainer(org.eclipse.jface.preference.IPreferencePageContainer)
-     */
-    public void setContainer(IPreferencePageContainer container) {
-        this.container = container;
-    }
-
-    /**
-     * Sets the preference store for this preference page.
-     * <p>
-     * If preferenceStore is set to null, getPreferenceStore
-     * will invoke doGetPreferenceStore the next time it is called.
-     * </p>
-     *
-     * @param store the preference store, or <code>null</code>
-     * @see #getPreferenceStore
-     */
-    public void setPreferenceStore(IPreferenceStore store) {
-        preferenceStore = store;
-    }
-
-   
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.preference.IPreferencePage#setSize(org.eclipse.swt.graphics.Point)
-     */
-    public void setSize(Point uiSize) {
-        Control control = getControl();
-        if (control != null) {
-            control.setSize(uiSize);
-            size = uiSize;
-        }
-    }
-
-    /**
-     * The <code>PreferencePage</code> implementation of this <code>IDialogPage</code>
-     * method extends the <code>DialogPage</code> implementation to update
-     * the preference page container title. Subclasses may extend.
-     * @see IDialogPage#setTitle(String)
-     */
-    public void setTitle(String title) {
-        super.setTitle(title);
-        if (getContainer() != null) {
-			getContainer().updateTitle();
-		}
-    }
-
-    /**
-     * Sets whether this page is valid.
-     * The enable state of the container buttons and the
-     * apply button is updated when a page's valid state 
-     * changes.
-     * <p>
-     *
-     * @param b the new valid state
-     */
-    public void setValid(boolean b) {
-        boolean oldValue = isValid;
-        isValid = b;
-        if (oldValue != isValid) {
-            // update container state
-            if (getContainer() != null) {
-				getContainer().updateButtons();
-			}
-            // update page state
-            updateApplyButton();
-        }
-    }
-
-   
-    /* (non-Javadoc)
-     * @see java.lang.Object#toString()
-     */
-    public String toString() {
-        return getTitle();
-    }
-
-    /**
-     * Updates the enabled state of the Apply button to reflect whether 
-     * this page is valid.
-     */
-    protected void updateApplyButton() {
-        if (applyButton != null) {
-			applyButton.setEnabled(isValid());
-		}
-    }
-
-    /**
-     * Creates a composite with a highlighted Note entry and a message text.
-     * This is designed to take up the full width of the page.
-     * 
-     * @param font the font to use
-     * @param composite the parent composite
-     * @param title the title of the note
-     * @param message the message for the note
-     * @return the composite for the note
-     */
-    protected Composite createNoteComposite(Font font, Composite composite,
-            String title, String message) {
-        Composite messageComposite = new Composite(composite, SWT.NONE);
-        GridLayout messageLayout = new GridLayout();
-        messageLayout.numColumns = 2;
-        messageLayout.marginWidth = 0;
-        messageLayout.marginHeight = 0;
-        messageComposite.setLayout(messageLayout);
-        messageComposite.setLayoutData(new GridData(
-                GridData.HORIZONTAL_ALIGN_FILL));
-        messageComposite.setFont(font);
-
-        final Label noteLabel = new Label(messageComposite, SWT.BOLD);
-        noteLabel.setText(title);
-        noteLabel.setFont(JFaceResources.getFontRegistry().getBold(
-				JFaceResources.DIALOG_FONT));
-        noteLabel
-                .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-
-        Label messageLabel = new Label(messageComposite, SWT.WRAP);
-        messageLabel.setText(message);
-        messageLabel.setFont(font);
-        return messageComposite;
-    }
-
-    /**
-     * Returns the Apply button.
-     * 
-     * @return the Apply button
-     */
-    protected Button getApplyButton() {
-        return applyButton;
-    }
-
-    /**
-     * Returns the Restore Defaults button.
-     * 
-     * @return the Restore Defaults button
-     */
-    protected Button getDefaultsButton() {
-        return defaultsButton;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.dialogs.IDialogPage#performHelp()
-     */
-    public void performHelp() {
-        getControl().notifyListeners(SWT.Help, new Event());
-    }
-
-	/**
-	 * Apply the data to the receiver. By default do nothing.
-	 * @param data
-	 * @since 3.1
-	 */
-	public void applyData(Object data) {
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.DialogPage#setErrorMessage(java.lang.String)
-	 */
-	public void setErrorMessage(String newMessage) {
-		super.setErrorMessage(newMessage);
-		if (getContainer() != null) {
-			getContainer().updateMessage();
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.DialogPage#setMessage(java.lang.String, int)
-	 */
-	public void setMessage(String newMessage, int newType) {
-		super.setMessage(newMessage, newType);
-		if (getContainer() != null) {
-			getContainer().updateMessage();
-		}
-	}	
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
deleted file mode 100644
index 29259ba..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/PreferenceStore.java
+++ /dev/null
@@ -1,712 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Properties;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.SafeRunnable;
-
-/**
- * A concrete preference store implementation based on an internal
- * <code>java.util.Properties</code> object, with support for persisting the
- * non-default preference values to files or streams.
- * <p>
- * This class was not designed to be subclassed.
- * </p>
- * 
- * @see IPreferenceStore
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class PreferenceStore extends EventManager implements
-		IPersistentPreferenceStore {
-
-	/**
-	 * The mapping from preference name to preference value (represented as
-	 * strings).
-	 */
-	private Properties properties;
-
-	/**
-	 * The mapping from preference name to default preference value (represented
-	 * as strings); <code>null</code> if none.
-	 */
-	private Properties defaultProperties;
-
-	/**
-	 * Indicates whether a value as been changed by <code>setToDefault</code>
-	 * or <code>setValue</code>; initially <code>false</code>.
-	 */
-	private boolean dirty = false;
-
-	/**
-	 * The file name used by the <code>load</code> method to load a property
-	 * file. This filename is used to save the properties file when
-	 * <code>save</code> is called.
-	 */
-	private String filename;
-
-	/**
-	 * Creates an empty preference store.
-	 * <p>
-	 * Use the methods <code>load(InputStream)</code> and
-	 * <code>save(InputStream)</code> to load and store this preference store.
-	 * </p>
-	 * 
-	 * @see #load(InputStream)
-	 * @see #save(OutputStream, String)
-	 */
-	public PreferenceStore() {
-		defaultProperties = new Properties();
-		properties = new Properties(defaultProperties);
-	}
-
-	/**
-	 * Creates an empty preference store that loads from and saves to the a
-	 * file.
-	 * <p>
-	 * Use the methods <code>load()</code> and <code>save()</code> to load
-	 * and store this preference store.
-	 * </p>
-	 * 
-	 * @param filename
-	 *            the file name
-	 * @see #load()
-	 * @see #save()
-	 */
-	public PreferenceStore(String filename) {
-		this();
-		Assert.isNotNull(filename);
-		this.filename = filename;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		addListenerObject(listener);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public boolean contains(String name) {
-		return (properties.containsKey(name) || defaultProperties
-				.containsKey(name));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void firePropertyChangeEvent(String name, Object oldValue,
-			Object newValue) {
-		final Object[] finalListeners = getListeners();
-		// Do we need to fire an event.
-		if (finalListeners.length > 0
-				&& (oldValue == null || !oldValue.equals(newValue))) {
-			final PropertyChangeEvent pe = new PropertyChangeEvent(this, name,
-					oldValue, newValue);
-			for (int i = 0; i < finalListeners.length; ++i) {
-				final IPropertyChangeListener l = (IPropertyChangeListener) finalListeners[i];
-				SafeRunnable.run(new SafeRunnable(JFaceResources
-						.getString("PreferenceStore.changeError")) { //$NON-NLS-1$
-							public void run() {
-								l.propertyChange(pe);
-							}
-						});
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public boolean getBoolean(String name) {
-		return getBoolean(properties, name);
-	}
-
-	/**
-	 * Helper function: gets boolean for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @return boolean
-	 */
-	private boolean getBoolean(Properties p, String name) {
-		String value = p != null ? p.getProperty(name) : null;
-		if (value == null) {
-			return BOOLEAN_DEFAULT_DEFAULT;
-		}
-		if (value.equals(IPreferenceStore.TRUE)) {
-			return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public boolean getDefaultBoolean(String name) {
-		return getBoolean(defaultProperties, name);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public double getDefaultDouble(String name) {
-		return getDouble(defaultProperties, name);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public float getDefaultFloat(String name) {
-		return getFloat(defaultProperties, name);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public int getDefaultInt(String name) {
-		return getInt(defaultProperties, name);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public long getDefaultLong(String name) {
-		return getLong(defaultProperties, name);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public String getDefaultString(String name) {
-		return getString(defaultProperties, name);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public double getDouble(String name) {
-		return getDouble(properties, name);
-	}
-
-	/**
-	 * Helper function: gets double for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @return double
-	 */
-	private double getDouble(Properties p, String name) {
-		String value = p != null ? p.getProperty(name) : null;
-		if (value == null) {
-			return DOUBLE_DEFAULT_DEFAULT;
-		}
-		double ival = DOUBLE_DEFAULT_DEFAULT;
-		try {
-			ival = new Double(value).doubleValue();
-		} catch (NumberFormatException e) {
-		}
-		return ival;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public float getFloat(String name) {
-		return getFloat(properties, name);
-	}
-
-	/**
-	 * Helper function: gets float for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @return float
-	 */
-	private float getFloat(Properties p, String name) {
-		String value = p != null ? p.getProperty(name) : null;
-		if (value == null) {
-			return FLOAT_DEFAULT_DEFAULT;
-		}
-		float ival = FLOAT_DEFAULT_DEFAULT;
-		try {
-			ival = new Float(value).floatValue();
-		} catch (NumberFormatException e) {
-		}
-		return ival;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public int getInt(String name) {
-		return getInt(properties, name);
-	}
-
-	/**
-	 * Helper function: gets int for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @return int
-	 */
-	private int getInt(Properties p, String name) {
-		String value = p != null ? p.getProperty(name) : null;
-		if (value == null) {
-			return INT_DEFAULT_DEFAULT;
-		}
-		int ival = 0;
-		try {
-			ival = Integer.parseInt(value);
-		} catch (NumberFormatException e) {
-		}
-		return ival;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public long getLong(String name) {
-		return getLong(properties, name);
-	}
-
-	/**
-	 * Helper function: gets long for a given name.
-	 * 
-	 * @param p
-	 *            the properties storage (may be <code>null</code>)
-	 * @param name
-	 *            the name of the property
-	 * @return the long or a default value of if:
-	 *         <ul>
-	 *         <li>properties storage is <code>null</code></li>
-	 *         <li>property is not found</li>
-	 *         <li>property value is not a number</li>
-	 *         </ul>
-	 * @see IPreferenceStore#LONG_DEFAULT_DEFAULT
-	 */
-	private long getLong(Properties p, String name) {
-		String value = p != null ? p.getProperty(name) : null;
-		if (value == null) {
-			return LONG_DEFAULT_DEFAULT;
-		}
-		long ival = LONG_DEFAULT_DEFAULT;
-		try {
-			ival = Long.parseLong(value);
-		} catch (NumberFormatException e) {
-		}
-		return ival;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public String getString(String name) {
-		return getString(properties, name);
-	}
-
-	/**
-	 * Helper function: gets string for a given name.
-	 * 
-	 * @param p
-	 *            the properties storage (may be <code>null</code>)
-	 * @param name
-	 *            the name of the property
-	 * @return the value or a default value of if:
-	 *         <ul>
-	 *         <li>properties storage is <code>null</code></li>
-	 *         <li>property is not found</li>
-	 *         <li>property value is not a number</li>
-	 *         </ul>
-	 * @see IPreferenceStore#STRING_DEFAULT_DEFAULT
-	 */
-	private String getString(Properties p, String name) {
-		String value = p != null ? p.getProperty(name) : null;
-		if (value == null) {
-			return STRING_DEFAULT_DEFAULT;
-		}
-		return value;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public boolean isDefault(String name) {
-		return (!properties.containsKey(name) && defaultProperties
-				.containsKey(name));
-	}
-
-	/**
-	 * Prints the contents of this preference store to the given print stream.
-	 * 
-	 * @param out
-	 *            the print stream
-	 */
-	public void list(PrintStream out) {
-		properties.list(out);
-	}
-
-	/**
-	 * Prints the contents of this preference store to the given print writer.
-	 * 
-	 * @param out
-	 *            the print writer
-	 */
-	public void list(PrintWriter out) {
-		properties.list(out);
-	}
-
-	/**
-	 * Loads this preference store from the file established in the constructor
-	 * <code>PreferenceStore(java.lang.String)</code> (or by
-	 * <code>setFileName</code>). Default preference values are not affected.
-	 * 
-	 * @exception java.io.IOException
-	 *                if there is a problem loading this store
-	 */
-	public void load() throws IOException {
-		if (filename == null) {
-			throw new IOException("File name not specified");//$NON-NLS-1$
-		}
-		FileInputStream in = new FileInputStream(filename);
-		load(in);
-		in.close();
-	}
-
-	/**
-	 * Loads this preference store from the given input stream. Default
-	 * preference values are not affected.
-	 * 
-	 * @param in
-	 *            the input stream
-	 * @exception java.io.IOException
-	 *                if there is a problem loading this store
-	 */
-	public void load(InputStream in) throws IOException {
-		properties.load(in);
-		dirty = false;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public boolean needsSaving() {
-		return dirty;
-	}
-
-	/**
-	 * Returns an enumeration of all preferences known to this store which have
-	 * current values other than their default value.
-	 * 
-	 * @return an array of preference names
-	 */
-	public String[] preferenceNames() {
-		ArrayList list = new ArrayList();
-		Enumeration it = properties.propertyNames();
-		while (it.hasMoreElements()) {
-			list.add(it.nextElement());
-		}
-		return (String[]) list.toArray(new String[list.size()]);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void putValue(String name, String value) {
-		String oldValue = getString(name);
-		if (oldValue == null || !oldValue.equals(value)) {
-			setValue(properties, name, value);
-			dirty = true;
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/**
-	 * Saves the non-default-valued preferences known to this preference store
-	 * to the file from which they were originally loaded.
-	 * 
-	 * @exception java.io.IOException
-	 *                if there is a problem saving this store
-	 */
-	public void save() throws IOException {
-		if (filename == null) {
-			throw new IOException("File name not specified");//$NON-NLS-1$
-		}
-		FileOutputStream out = null;
-		try {
-			out = new FileOutputStream(filename);
-			save(out, null);
-		} finally {
-			if (out != null) {
-				out.close();
-			}
-		}
-	}
-
-	/**
-	 * Saves this preference store to the given output stream. The given string
-	 * is inserted as header information.
-	 * 
-	 * @param out
-	 *            the output stream
-	 * @param header
-	 *            the header
-	 * @exception java.io.IOException
-	 *                if there is a problem saving this store
-	 */
-	public void save(OutputStream out, String header) throws IOException {
-		properties.store(out, header);
-		dirty = false;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setDefault(String name, double value) {
-		setValue(defaultProperties, name, value);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setDefault(String name, float value) {
-		setValue(defaultProperties, name, value);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setDefault(String name, int value) {
-		setValue(defaultProperties, name, value);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setDefault(String name, long value) {
-		setValue(defaultProperties, name, value);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setDefault(String name, String value) {
-		setValue(defaultProperties, name, value);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setDefault(String name, boolean value) {
-		setValue(defaultProperties, name, value);
-	}
-
-	/**
-	 * Sets the name of the file used when loading and storing this preference
-	 * store.
-	 * <p>
-	 * Afterward, the methods <code>load()</code> and <code>save()</code>
-	 * can be used to load and store this preference store.
-	 * </p>
-	 * 
-	 * @param name
-	 *            the file name
-	 * @see #load()
-	 * @see #save()
-	 */
-	public void setFilename(String name) {
-		filename = name;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setToDefault(String name) {
-		Object oldValue = properties.get(name);
-		properties.remove(name);
-		dirty = true;
-		Object newValue = null;
-		if (defaultProperties != null) {
-			newValue = defaultProperties.get(name);
-		}
-		firePropertyChangeEvent(name, oldValue, newValue);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setValue(String name, double value) {
-		double oldValue = getDouble(name);
-		if (oldValue != value) {
-			setValue(properties, name, value);
-			dirty = true;
-			firePropertyChangeEvent(name, new Double(oldValue), new Double(
-					value));
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setValue(String name, float value) {
-		float oldValue = getFloat(name);
-		if (oldValue != value) {
-			setValue(properties, name, value);
-			dirty = true;
-			firePropertyChangeEvent(name, new Float(oldValue), new Float(value));
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setValue(String name, int value) {
-		int oldValue = getInt(name);
-		if (oldValue != value) {
-			setValue(properties, name, value);
-			dirty = true;
-			firePropertyChangeEvent(name, new Integer(oldValue), new Integer(
-					value));
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setValue(String name, long value) {
-		long oldValue = getLong(name);
-		if (oldValue != value) {
-			setValue(properties, name, value);
-			dirty = true;
-			firePropertyChangeEvent(name, new Long(oldValue), new Long(value));
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setValue(String name, String value) {
-		String oldValue = getString(name);
-		if (oldValue == null || !oldValue.equals(value)) {
-			setValue(properties, name, value);
-			dirty = true;
-			firePropertyChangeEvent(name, oldValue, value);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPreferenceStore.
-	 */
-	public void setValue(String name, boolean value) {
-		boolean oldValue = getBoolean(name);
-		if (oldValue != value) {
-			setValue(properties, name, value);
-			dirty = true;
-			firePropertyChangeEvent(name, oldValue ? Boolean.TRUE
-					: Boolean.FALSE, value ? Boolean.TRUE : Boolean.FALSE);
-		}
-	}
-
-	/**
-	 * Helper method: sets value for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @param value
-	 */
-	private void setValue(Properties p, String name, double value) {
-		Assert.isTrue(p != null);
-		p.put(name, Double.toString(value));
-	}
-
-	/**
-	 * Helper method: sets value for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @param value
-	 */
-	private void setValue(Properties p, String name, float value) {
-		Assert.isTrue(p != null);
-		p.put(name, Float.toString(value));
-	}
-
-	/**
-	 * Helper method: sets value for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @param value
-	 */
-	private void setValue(Properties p, String name, int value) {
-		Assert.isTrue(p != null);
-		p.put(name, Integer.toString(value));
-	}
-
-	/**
-	 * Helper method: sets the value for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @param value
-	 */
-	private void setValue(Properties p, String name, long value) {
-		Assert.isTrue(p != null);
-		p.put(name, Long.toString(value));
-	}
-
-	/**
-	 * Helper method: sets the value for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @param value
-	 */
-	private void setValue(Properties p, String name, String value) {
-		Assert.isTrue(p != null && value != null);
-		p.put(name, value);
-	}
-
-	/**
-	 * Helper method: sets the value for a given name.
-	 * 
-	 * @param p
-	 * @param name
-	 * @param value
-	 */
-	private void setValue(Properties p, String name, boolean value) {
-		Assert.isTrue(p != null);
-		p.put(name, value == true ? IPreferenceStore.TRUE
-				: IPreferenceStore.FALSE);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/RadioGroupFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/RadioGroupFieldEditor.java
deleted file mode 100644
index 826f0c4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/RadioGroupFieldEditor.java
+++ /dev/null
@@ -1,349 +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.jface.preference;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-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;
-
-/**
- * A field editor for an enumeration type preference.
- * The choices are presented as a list of radio buttons.
- */
-public class RadioGroupFieldEditor extends FieldEditor {
-
-    /**
-     * List of radio button entries of the form [label,value].
-     */
-    private String[][] labelsAndValues;
-
-    /**
-     * Number of columns into which to arrange the radio buttons.
-     */
-    private int numColumns;
-
-    /**
-     * Indent used for the first column of the radion button matrix.
-     */
-    private int indent = HORIZONTAL_GAP;
-
-    /**
-     * The current value, or <code>null</code> if none.
-     */
-    private String value;
-
-    /**
-     * The box of radio buttons, or <code>null</code> if none
-     * (before creation and after disposal).
-     */
-    private Composite radioBox;
-
-    /**
-     * The radio buttons, or <code>null</code> if none
-     * (before creation and after disposal).
-     */
-    private Button[] radioButtons;
-
-    /**
-     * Whether to use a Group control.
-     */
-    private boolean useGroup;
-
-    /**
-     * Creates a new radio group field editor 
-     */
-    protected RadioGroupFieldEditor() {
-    }
-
-    /**
-     * Creates a radio group field editor.  
-     * This constructor does not use a <code>Group</code> to contain the radio buttons.
-     * It is equivalent to using the following constructor with <code>false</code>
-     * for the <code>useGroup</code> argument.
-     * <p>
-     * Example usage:
-     * <pre>
-     *		RadioGroupFieldEditor editor= new RadioGroupFieldEditor(
-     *			"GeneralPage.DoubleClick", resName, 1,
-     *			new String[][] {
-     *				{"Open Browser", "open"},
-     *				{"Expand Tree", "expand"}
-     *			},
-     *          parent);	
-     * </pre>
-     * </p>
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param numColumns the number of columns for the radio button presentation
-     * @param labelAndValues list of radio button [label, value] entries;
-     *  the value is returned when the radio button is selected
-     * @param parent the parent of the field editor's control
-     */
-    public RadioGroupFieldEditor(String name, String labelText, int numColumns,
-            String[][] labelAndValues, Composite parent) {
-        this(name, labelText, numColumns, labelAndValues, parent, false);
-    }
-
-    /**
-     * Creates a radio group field editor.
-     * <p>
-     * Example usage:
-     * <pre>
-     *		RadioGroupFieldEditor editor= new RadioGroupFieldEditor(
-     *			"GeneralPage.DoubleClick", resName, 1,
-     *			new String[][] {
-     *				{"Open Browser", "open"},
-     *				{"Expand Tree", "expand"}
-     *			},
-     *          parent,
-     *          true);	
-     * </pre>
-     * </p>
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param numColumns the number of columns for the radio button presentation
-     * @param labelAndValues list of radio button [label, value] entries;
-     *  the value is returned when the radio button is selected
-     * @param parent the parent of the field editor's control
-     * @param useGroup whether to use a Group control to contain the radio buttons
-     */
-    public RadioGroupFieldEditor(String name, String labelText, int numColumns,
-            String[][] labelAndValues, Composite parent, boolean useGroup) {
-        init(name, labelText);
-        Assert.isTrue(checkArray(labelAndValues));
-        this.labelsAndValues = labelAndValues;
-        this.numColumns = numColumns;
-        this.useGroup = useGroup;
-        createControl(parent);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void adjustForNumColumns(int numColumns) {
-        Control control = getLabelControl();
-        if (control != null) {
-            ((GridData) control.getLayoutData()).horizontalSpan = numColumns;
-        }
-        ((GridData) radioBox.getLayoutData()).horizontalSpan = numColumns;
-    }
-
-    /**
-     * Checks whether given <code>String[][]</code> is of "type" 
-     * <code>String[][2]</code>.
-     * @param table
-     *
-     * @return <code>true</code> if it is ok, and <code>false</code> otherwise
-     */
-    private boolean checkArray(String[][] table) {
-        if (table == null) {
-			return false;
-		}
-        for (int i = 0; i < table.length; i++) {
-            String[] array = table[i];
-            if (array == null || array.length != 2) {
-				return false;
-			}
-        }
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doFillIntoGrid(Composite parent, int numColumns) {
-        if (useGroup) {
-            Control control = getRadioBoxControl(parent);
-            GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-            control.setLayoutData(gd);
-        } else {
-            Control control = getLabelControl(parent);
-            GridData gd = new GridData();
-            gd.horizontalSpan = numColumns;
-            control.setLayoutData(gd);
-            control = getRadioBoxControl(parent);
-            gd = new GridData();
-            gd.horizontalSpan = numColumns;
-            gd.horizontalIndent = indent;
-            control.setLayoutData(gd);
-        }
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoad() {
-        updateValue(getPreferenceStore().getString(getPreferenceName()));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoadDefault() {
-        updateValue(getPreferenceStore().getDefaultString(getPreferenceName()));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doStore() {
-        if (value == null) {
-            getPreferenceStore().setToDefault(getPreferenceName());
-            return;
-        }
-
-        getPreferenceStore().setValue(getPreferenceName(), value);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public int getNumberOfControls() {
-        return 1;
-    }
-
-    /**
-     * Returns this field editor's radio group control.
-     * @param parent The parent to create the radioBox in
-     * @return the radio group control
-     */
-    public Composite getRadioBoxControl(Composite parent) {
-        if (radioBox == null) {
-
-            Font font = parent.getFont();
-
-            if (useGroup) {
-                Group group = new Group(parent, SWT.NONE);
-                group.setFont(font);
-                String text = getLabelText();
-                if (text != null) {
-					group.setText(text);
-				}
-                radioBox = group;
-                GridLayout layout = new GridLayout();
-                layout.horizontalSpacing = HORIZONTAL_GAP;
-                layout.numColumns = numColumns;
-                radioBox.setLayout(layout);
-            } else {
-                radioBox = new Composite(parent, SWT.NONE);
-                GridLayout layout = new GridLayout();
-                layout.marginWidth = 0;
-                layout.marginHeight = 0;
-                layout.horizontalSpacing = HORIZONTAL_GAP;
-                layout.numColumns = numColumns;
-                radioBox.setLayout(layout);
-                radioBox.setFont(font);
-            }
-
-            radioButtons = new Button[labelsAndValues.length];
-            for (int i = 0; i < labelsAndValues.length; i++) {
-                Button radio = new Button(radioBox, SWT.RADIO | SWT.LEFT);
-                radioButtons[i] = radio;
-                String[] labelAndValue = labelsAndValues[i];
-                radio.setText(labelAndValue[0]);
-                radio.setData(labelAndValue[1]);
-                radio.setFont(font);
-                radio.addSelectionListener(new SelectionAdapter() {
-                    public void widgetSelected(SelectionEvent event) {
-                        String oldValue = value;
-                        value = (String) event.widget.getData();
-                        setPresentsDefaultValue(false);
-                        fireValueChanged(VALUE, oldValue, value);
-                    }
-                });
-            }
-            radioBox.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    radioBox = null;
-                    radioButtons = null;
-                }
-            });
-        } else {
-            checkParent(radioBox, parent);
-        }
-        return radioBox;
-    }
-
-    /**
-     * Sets the indent used for the first column of the radion button matrix.
-     *
-     * @param indent the indent (in pixels)
-     */
-    public void setIndent(int indent) {
-        if (indent < 0) {
-			this.indent = 0;
-		} else {
-			this.indent = indent;
-		}
-    }
-
-    /**
-     * Select the radio button that conforms to the given value.
-     *
-     * @param selectedValue the selected value
-     */
-    private void updateValue(String selectedValue) {
-        this.value = selectedValue;
-        if (radioButtons == null) {
-			return;
-		}
-
-        if (this.value != null) {
-            boolean found = false;
-            for (int i = 0; i < radioButtons.length; i++) {
-                Button radio = radioButtons[i];
-                boolean selection = false;
-                if (((String) radio.getData()).equals(this.value)) {
-                    selection = true;
-                    found = true;
-                }
-                radio.setSelection(selection);
-            }
-            if (found) {
-				return;
-			}
-        }
-
-        // We weren't able to find the value. So we select the first
-        // radio button as a default.
-        if (radioButtons.length > 0) {
-            radioButtons[0].setSelection(true);
-            this.value = (String) radioButtons[0].getData();
-        }
-        return;
-    }
-
-    /*
-     * @see FieldEditor.setEnabled(boolean,Composite).
-     */
-    public void setEnabled(boolean enabled, Composite parent) {
-        if (!useGroup) {
-			super.setEnabled(enabled, parent);
-		}
-        for (int i = 0; i < radioButtons.length; i++) {
-            radioButtons[i].setEnabled(enabled);
-        }
-
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScaleFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScaleFieldEditor.java
deleted file mode 100644
index 1a9269f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/ScaleFieldEditor.java
+++ /dev/null
@@ -1,380 +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.jface.preference;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Scale;
-
-/**
- * A field editor for an integer type preference. This class may be used as is,
- * or subclassed as required.
- * 
- * @since 3.0
- */
-public class ScaleFieldEditor extends FieldEditor {
-
-    /**
-     * Value that will feed Scale.setIncrement(int).
-     */
-    private int incrementValue;
-
-    /**
-     * Value that will feed Scale.setMaximum(int).
-     */
-    private int maxValue;
-
-    /**
-     * Value that will feed Scale.setMinimum(int).
-     */
-    private int minValue;
-
-    /**
-     * Old integer value.
-     */
-    private int oldValue;
-
-    /**
-     * Value that will feed Scale.setPageIncrement(int).
-     */
-    private int pageIncrementValue;
-
-    /**
-     * The scale, or <code>null</code> if none.
-     */
-    protected Scale scale;
-
-    /**
-     * Creates a scale field editor.
-     * 
-     * @param name
-     *            the name of the preference this field editor works on
-     * @param labelText
-     *            the label text of the field editor
-     * @param parent
-     *            the parent of the field editor's control
-     */
-    public ScaleFieldEditor(String name, String labelText, Composite parent) {
-        super(name, labelText, parent);
-        setDefaultValues();
-    }
-
-    /**
-     * Creates a scale field editor with particular scale values.
-     * 
-     * @param name
-     *            the name of the preference this field editor works on
-     * @param labelText
-     *            the label text of the field editor
-     * @param parent
-     *            the parent of the field editor's control
-     * @param min
-     *            the value used for Scale.setMinimum(int).
-     * @param max
-     *            the value used for Scale.setMaximum(int).
-     * @param increment
-     *            the value used for Scale.setIncrement(int).
-     * @param pageIncrement
-     *            the value used for Scale.setPageIncrement(int).
-     */
-    public ScaleFieldEditor(String name, String labelText, Composite parent,
-            int min, int max, int increment, int pageIncrement) {
-        super(name, labelText, parent);
-        setValues(min, max, increment, pageIncrement);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.FieldEditor#adjustForNumColumns(int)
-     */
-    protected void adjustForNumColumns(int numColumns) {
-        ((GridData) scale.getLayoutData()).horizontalSpan = numColumns - 1;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.FieldEditor#doFillIntoGrid(org.eclipse.swt.widgets.Composite,
-     *      int)
-     */
-    protected void doFillIntoGrid(Composite parent, int numColumns) {
-        Control control = getLabelControl(parent);
-        GridData gd = new GridData();
-        control.setLayoutData(gd);
-
-        scale = getScaleControl(parent);
-        gd = new GridData(GridData.FILL_HORIZONTAL);
-        gd.verticalAlignment = GridData.FILL;
-        gd.horizontalSpan = numColumns - 1;
-        gd.grabExcessHorizontalSpace = true;
-        scale.setLayoutData(gd);
-        updateScale();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.FieldEditor#doLoad()
-     */
-    protected void doLoad() {
-        if (scale != null) {
-            int value = getPreferenceStore().getInt(getPreferenceName());
-            scale.setSelection(value);
-            oldValue = value;
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.FieldEditor#doLoadDefault()
-     */
-    protected void doLoadDefault() {
-        if (scale != null) {
-            int value = getPreferenceStore().getDefaultInt(getPreferenceName());
-            scale.setSelection(value);
-        }
-        valueChanged();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.FieldEditor#doStore()
-     */
-    protected void doStore() {
-        getPreferenceStore()
-                .setValue(getPreferenceName(), scale.getSelection());
-    }
-
-    /**
-     * Returns the value that will be used for Scale.setIncrement(int).
-     * 
-     * @return the value.
-     * @see org.eclipse.swt.widgets.Scale#setIncrement(int)
-     */
-    public int getIncrement() {
-        return incrementValue;
-    }
-
-    /**
-     * Returns the value that will be used for Scale.setMaximum(int).
-     * 
-     * @return the value.
-     * @see org.eclipse.swt.widgets.Scale#setMaximum(int)
-     */
-    public int getMaximum() {
-        return maxValue;
-    }
-
-    /**
-     * Returns the value that will be used for Scale.setMinimum(int).
-     * 
-     * @return the value.
-     * @see org.eclipse.swt.widgets.Scale#setMinimum(int)
-     */
-    public int getMinimum() {
-        return minValue;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.FieldEditor#getNumberOfControls()
-     */
-    public int getNumberOfControls() {
-        return 2;
-    }
-
-    /**
-     * Returns the value that will be used for Scale.setPageIncrement(int).
-     * 
-     * @return the value.
-     * @see org.eclipse.swt.widgets.Scale#setPageIncrement(int)
-     */
-    public int getPageIncrement() {
-        return pageIncrementValue;
-    }
-
-    /**
-     * Returns this field editor's scale control.
-     * 
-     * @return the scale control, or <code>null</code> if no scale field is
-     *         created yet
-     */
-    public Scale getScaleControl() {
-        return scale;
-    }
-
-    /**
-     * Returns this field editor's scale control. The control is created if it
-     * does not yet exist.
-     * 
-     * @param parent
-     *            the parent
-     * @return the scale control
-     */
-    private Scale getScaleControl(Composite parent) {
-        if (scale == null) {
-            scale = new Scale(parent, SWT.HORIZONTAL);
-            scale.setFont(parent.getFont());
-            scale.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent event) {
-                    valueChanged();
-                }
-            });
-            scale.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    scale = null;
-                }
-            });
-        } else {
-            checkParent(scale, parent);
-        }
-        return scale;
-    }
-
-    /**
-     * Set default values for the various scale fields.  These defaults are:<br>
-     * <ul>
-     * <li>Minimum  = 0
-     * <li>Maximim = 10
-     * <li>Increment = 1
-     * <li>Page Increment = 1
-     * </ul> 
-     */
-    private void setDefaultValues() {
-        setValues(0, 10, 1, 1);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.FieldEditor#setFocus()
-     */
-    public void setFocus() {
-        if (scale != null && !scale.isDisposed()) {
-            scale.setFocus();
-        }
-    }
-
-    /**
-     * Set the value to be used for Scale.setIncrement(int) and update the
-     * scale.
-     * 
-     * @param increment
-     *            a value greater than 0.
-     * @see org.eclipse.swt.widgets.Scale#setIncrement(int)
-     */
-    public void setIncrement(int increment) {
-        this.incrementValue = increment;
-        updateScale();
-    }
-
-    /**
-     * Set the value to be used for Scale.setMaximum(int) and update the
-     * scale.
-     * 
-     * @param max
-     *            a value greater than 0.
-     * @see org.eclipse.swt.widgets.Scale#setMaximum(int)
-     */
-    public void setMaximum(int max) {
-        this.maxValue = max;
-        updateScale();
-    }
-
-    /**
-     * Set the value to be used for Scale.setMinumum(int) and update the
-     * scale.
-     * 
-     * @param min
-     *            a value greater than 0.
-     * @see org.eclipse.swt.widgets.Scale#setMinimum(int)
-     */
-    public void setMinimum(int min) {
-        this.minValue = min;
-        updateScale();
-    }
-
-    /**
-     * Set the value to be used for Scale.setPageIncrement(int) and update the
-     * scale.
-     * 
-     * @param pageIncrement
-     *            a value greater than 0.
-     * @see org.eclipse.swt.widgets.Scale#setPageIncrement(int)
-     */
-    public void setPageIncrement(int pageIncrement) {
-        this.pageIncrementValue = pageIncrement;
-        updateScale();
-    }
-
-    /**
-     * Set all Scale values.
-     * 
-     * @param min
-     *            the value used for Scale.setMinimum(int).
-     * @param max
-     *            the value used for Scale.setMaximum(int).
-     * @param increment
-     *            the value used for Scale.setIncrement(int).
-     * @param pageIncrement
-     *            the value used for Scale.setPageIncrement(int).
-     */
-    private void setValues(int min, int max, int increment, int pageIncrement) {
-        this.incrementValue = increment;
-        this.maxValue = max;
-        this.minValue = min;
-        this.pageIncrementValue = pageIncrement;
-        updateScale();
-    }
-
-    /**
-     * Update the scale particulars with set values.
-     */
-    private void updateScale() {
-        if (scale != null && !scale.isDisposed()) {
-            scale.setMinimum(getMinimum());
-            scale.setMaximum(getMaximum());
-            scale.setIncrement(getIncrement());
-            scale.setPageIncrement(getPageIncrement());
-        }
-    }
-
-    /**
-     * Informs this field editor's listener, if it has one, about a change to
-     * the value (<code>VALUE</code> property) provided that the old and new
-     * values are different.
-     * <p>
-     * This hook is <em>not</em> called when the scale is initialized (or
-     * reset to the default value) from the preference store.
-     * </p>
-     */
-    protected void valueChanged() {
-        setPresentsDefaultValue(false);
-
-        int newValue = scale.getSelection();
-        if (newValue != oldValue) {
-            fireStateChanged(IS_VALID, false, true);
-            fireValueChanged(VALUE, new Integer(oldValue),
-                    new Integer(newValue));
-            oldValue = newValue;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringButtonFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringButtonFieldEditor.java
deleted file mode 100644
index 9fbae8a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringButtonFieldEditor.java
+++ /dev/null
@@ -1,179 +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
- *     Thierry Lach - thierry.lach@bbdodetroit.com - Fix for Bug 37155
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * An abstract field editor for a string type preference that presents
- * a string input field with a change button to its right to edit the
- * input field's content. When the user presses the change button, the
- * abstract framework method <code>changePressed()</code> gets called
- * to compute a new string.
- */
-public abstract class StringButtonFieldEditor extends StringFieldEditor {
-
-    /**
-     * The change button, or <code>null</code> if none
-     * (before creation and after disposal).
-     */
-    private Button changeButton;
-
-    /**
-     * The text for the change button, or <code>null</code> if missing.
-     */
-    private String changeButtonText;
-
-    /**
-     * Creates a new string button field editor 
-     */
-    protected StringButtonFieldEditor() {
-    }
-
-    /**
-     * Creates a string button field editor.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    protected StringButtonFieldEditor(String name, String labelText,
-            Composite parent) {
-        init(name, labelText);
-        createControl(parent);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void adjustForNumColumns(int numColumns) {
-        ((GridData) getTextControl().getLayoutData()).horizontalSpan = numColumns - 2;
-    }
-
-    /**
-     * Notifies that this field editor's change button has been pressed.
-     * <p>
-     * Subclasses must implement this method to provide a corresponding
-     * new string for the text field. If the returned value is <code>null</code>,
-     * the currently displayed value remains.
-     * </p>
-     *
-     * @return the new string to display, or <code>null</code> to leave the
-     *  old string showing
-     */
-    protected abstract String changePressed();
-
-    /* (non-Javadoc)
-     * Method declared on StringFieldEditor (and FieldEditor).
-     */
-    protected void doFillIntoGrid(Composite parent, int numColumns) {
-        super.doFillIntoGrid(parent, numColumns - 1);
-        changeButton = getChangeControl(parent);
-        GridData gd = new GridData();
-        gd.horizontalAlignment = GridData.FILL;
-        int widthHint = convertHorizontalDLUsToPixels(changeButton,
-                IDialogConstants.BUTTON_WIDTH);
-        gd.widthHint = Math.max(widthHint, changeButton.computeSize(
-                SWT.DEFAULT, SWT.DEFAULT, true).x);
-        changeButton.setLayoutData(gd);
-    }
-
-    /**
-     * Get the change control. Create it in parent if required.
-     * @param parent
-     * @return Button
-     */
-    protected Button getChangeControl(Composite parent) {
-        if (changeButton == null) {
-            changeButton = new Button(parent, SWT.PUSH);
-            if (changeButtonText == null) {
-				changeButtonText = JFaceResources.getString("openChange"); //$NON-NLS-1$
-			}
-            changeButton.setText(changeButtonText);
-            changeButton.setFont(parent.getFont());
-            changeButton.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent evt) {
-                    String newValue = changePressed();
-                    if (newValue != null) {
-                        setStringValue(newValue);
-                    }
-                }
-            });
-            changeButton.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    changeButton = null;
-                }
-            });
-        } else {
-            checkParent(changeButton, parent);
-        }
-        return changeButton;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public int getNumberOfControls() {
-        return 3;
-    }
-
-    /**
-     * Returns this field editor's shell.
-     *
-     * @return the shell
-     */
-    protected Shell getShell() {
-        if (changeButton == null) {
-			return null;
-		}
-        return changeButton.getShell();
-    }
-
-    /**
-     * Sets the text of the change button.
-     *
-     * @param text the new text
-     */
-    public void setChangeButtonText(String text) {
-        Assert.isNotNull(text);
-        changeButtonText = text;
-        if (changeButton != null) {
-			changeButton.setText(text);
-			Point prefSize = changeButton.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			GridData data = (GridData)changeButton.getLayoutData();
-			data.widthHint = Math.max(SWT.DEFAULT, prefSize.x);
-		}
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.preference.FieldEditor#setEnabled(boolean, org.eclipse.swt.widgets.Composite)
-     */
-    public void setEnabled(boolean enabled, Composite parent) {
-        super.setEnabled(enabled, parent);
-        if (changeButton != null) {
-            changeButton.setEnabled(enabled);
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringFieldEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringFieldEditor.java
deleted file mode 100644
index 58bcb8d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/StringFieldEditor.java
+++ /dev/null
@@ -1,531 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.preference;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * A field editor for a string type preference.
- * <p>
- * This class may be used as is, or subclassed as required.
- * </p>
- */
-public class StringFieldEditor extends FieldEditor {
-
-    /**
-     * Validation strategy constant (value <code>0</code>) indicating that
-     * the editor should perform validation after every key stroke.
-     *
-     * @see #setValidateStrategy
-     */
-    public static final int VALIDATE_ON_KEY_STROKE = 0;
-
-    /**
-     * Validation strategy constant (value <code>1</code>) indicating that
-     * the editor should perform validation only when the text widget 
-     * loses focus.
-     *
-     * @see #setValidateStrategy
-     */
-    public static final int VALIDATE_ON_FOCUS_LOST = 1;
-
-    /**
-     * Text limit constant (value <code>-1</code>) indicating unlimited
-     * text limit and width.
-     */
-    public static int UNLIMITED = -1;
-
-    /**
-     * Cached valid state.
-     */
-    private boolean isValid;
-
-    /**
-     * Old text value.
-     * @since 3.4 this field is protected.
-     */
-    protected String oldValue;
-
-    /**
-     * The text field, or <code>null</code> if none.
-     */
-    Text textField;
-
-    /**
-     * Width of text field in characters; initially unlimited.
-     */
-    private int widthInChars = UNLIMITED;
-
-    /**
-     * Text limit of text field in characters; initially unlimited.
-     */
-    private int textLimit = UNLIMITED;
-
-    /**
-     * The error message, or <code>null</code> if none.
-     */
-    private String errorMessage;
-
-    /**
-     * Indicates whether the empty string is legal;
-     * <code>true</code> by default.
-     */
-    private boolean emptyStringAllowed = true;
-
-    /**
-     * The validation strategy; 
-     * <code>VALIDATE_ON_KEY_STROKE</code> by default.
-     */
-    private int validateStrategy = VALIDATE_ON_KEY_STROKE;
-
-    /**
-     * Creates a new string field editor 
-     */
-    protected StringFieldEditor() {
-    }
-
-    /**
-     * Creates a string field editor.
-     * Use the method <code>setTextLimit</code> to limit the text.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param width the width of the text input field in characters,
-     *  or <code>UNLIMITED</code> for no limit
-     * @param strategy either <code>VALIDATE_ON_KEY_STROKE</code> to perform
-     *  on the fly checking (the default), or <code>VALIDATE_ON_FOCUS_LOST</code> to
-     *  perform validation only after the text has been typed in
-     * @param parent the parent of the field editor's control
-     * @since 2.0
-     */
-    public StringFieldEditor(String name, String labelText, int width,
-            int strategy, Composite parent) {
-        init(name, labelText);
-        widthInChars = width;
-        setValidateStrategy(strategy);
-        isValid = false;
-        errorMessage = JFaceResources
-                .getString("StringFieldEditor.errorMessage");//$NON-NLS-1$
-        createControl(parent);
-    }
-
-    /**
-     * Creates a string field editor.
-     * Use the method <code>setTextLimit</code> to limit the text.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param width the width of the text input field in characters,
-     *  or <code>UNLIMITED</code> for no limit
-     * @param parent the parent of the field editor's control
-     */
-    public StringFieldEditor(String name, String labelText, int width,
-            Composite parent) {
-        this(name, labelText, width, VALIDATE_ON_KEY_STROKE, parent);
-    }
-
-    /**
-     * Creates a string field editor of unlimited width.
-     * Use the method <code>setTextLimit</code> to limit the text.
-     * 
-     * @param name the name of the preference this field editor works on
-     * @param labelText the label text of the field editor
-     * @param parent the parent of the field editor's control
-     */
-    public StringFieldEditor(String name, String labelText, Composite parent) {
-        this(name, labelText, UNLIMITED, parent);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void adjustForNumColumns(int numColumns) {
-        GridData gd = (GridData) textField.getLayoutData();
-        gd.horizontalSpan = numColumns - 1;
-        // We only grab excess space if we have to
-        // If another field editor has more columns then
-        // we assume it is setting the width.
-        gd.grabExcessHorizontalSpace = gd.horizontalSpan == 1;
-    }
-
-    /**
-     * Checks whether the text input field contains a valid value or not.
-     *
-     * @return <code>true</code> if the field value is valid,
-     *   and <code>false</code> if invalid
-     */
-    protected boolean checkState() {
-        boolean result = false;
-        if (emptyStringAllowed) {
-			result = true;
-		}
-
-        if (textField == null) {
-			result = false;
-		}
-
-        String txt = textField.getText();
-
-        result = (txt.trim().length() > 0) || emptyStringAllowed;
-
-        // call hook for subclasses
-        result = result && doCheckState();
-
-        if (result) {
-			clearErrorMessage();
-		} else {
-			showErrorMessage(errorMessage);
-		}
-
-        return result;
-    }
-
-    /**
-     * Hook for subclasses to do specific state checks.
-     * <p>
-     * The default implementation of this framework method does
-     * nothing and returns <code>true</code>.  Subclasses should 
-     * override this method to specific state checks.
-     * </p>
-     *
-     * @return <code>true</code> if the field value is valid,
-     *   and <code>false</code> if invalid
-     */
-    protected boolean doCheckState() {
-        return true;
-    }
-
-    /**
-     * Fills this field editor's basic controls into the given parent.
-     * <p>
-     * The string field implementation of this <code>FieldEditor</code>
-     * framework method contributes the text field. Subclasses may override
-     * but must call <code>super.doFillIntoGrid</code>.
-     * </p>
-     */
-    protected void doFillIntoGrid(Composite parent, int numColumns) {
-        getLabelControl(parent);
-
-        textField = getTextControl(parent);
-        GridData gd = new GridData();
-        gd.horizontalSpan = numColumns - 1;
-        if (widthInChars != UNLIMITED) {
-            GC gc = new GC(textField);
-            try {
-                Point extent = gc.textExtent("X");//$NON-NLS-1$
-                gd.widthHint = widthInChars * extent.x;
-            } finally {
-                gc.dispose();
-            }
-        } else {
-            gd.horizontalAlignment = GridData.FILL;
-            gd.grabExcessHorizontalSpace = true;
-        }
-        textField.setLayoutData(gd);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoad() {
-        if (textField != null) {
-            String value = getPreferenceStore().getString(getPreferenceName());
-            textField.setText(value);
-            oldValue = value;
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doLoadDefault() {
-        if (textField != null) {
-            String value = getPreferenceStore().getDefaultString(
-                    getPreferenceName());
-            textField.setText(value);
-        }
-        valueChanged();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void doStore() {
-        getPreferenceStore().setValue(getPreferenceName(), textField.getText());
-    }
-
-    /**
-     * Returns the error message that will be displayed when and if 
-     * an error occurs.
-     *
-     * @return the error message, or <code>null</code> if none
-     */
-    public String getErrorMessage() {
-        return errorMessage;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public int getNumberOfControls() {
-        return 2;
-    }
-
-    /**
-     * Returns the field editor's value.
-     *
-     * @return the current value
-     */
-    public String getStringValue() {
-        if (textField != null) {
-			return textField.getText();
-		}
-        
-        return getPreferenceStore().getString(getPreferenceName());
-    }
-
-    /**
-     * Returns this field editor's text control.
-     *
-     * @return the text control, or <code>null</code> if no
-     * text field is created yet
-     */
-    protected Text getTextControl() {
-        return textField;
-    }
-
-    /**
-     * Returns this field editor's text control.
-     * <p>
-     * The control is created if it does not yet exist
-     * </p>
-     *
-     * @param parent the parent
-     * @return the text control
-     */
-    public Text getTextControl(Composite parent) {
-        if (textField == null) {
-            textField = new Text(parent, SWT.SINGLE | SWT.BORDER);
-            textField.setFont(parent.getFont());
-            switch (validateStrategy) {
-            case VALIDATE_ON_KEY_STROKE:
-                textField.addKeyListener(new KeyAdapter() {
-
-                    /* (non-Javadoc)
-                     * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
-                     */
-                    public void keyReleased(KeyEvent e) {
-                        valueChanged();
-                    }
-                });
-                textField.addFocusListener(new FocusAdapter() {
-                	// Ensure that the value is checked on focus loss in case we
-                	// missed a keyRelease or user hasn't released key.
-                	// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=214716
-                    public void focusLost(FocusEvent e) {
-                        valueChanged();
-                    }
-                });
- 
-
-                break;
-            case VALIDATE_ON_FOCUS_LOST:
-                textField.addKeyListener(new KeyAdapter() {
-                    public void keyPressed(KeyEvent e) {
-                        clearErrorMessage();
-                    }
-                });
-                textField.addFocusListener(new FocusAdapter() {
-                    public void focusGained(FocusEvent e) {
-                        refreshValidState();
-                    }
-
-                    public void focusLost(FocusEvent e) {
-                        valueChanged();
-                        clearErrorMessage();
-                    }
-                });
-                break;
-            default:
-                Assert.isTrue(false, "Unknown validate strategy");//$NON-NLS-1$
-            }
-            textField.addDisposeListener(new DisposeListener() {
-                public void widgetDisposed(DisposeEvent event) {
-                    textField = null;
-                }
-            });
-            if (textLimit > 0) {//Only set limits above 0 - see SWT spec
-                textField.setTextLimit(textLimit);
-            }
-        } else {
-            checkParent(textField, parent);
-        }
-        return textField;
-    }
-
-    /**
-     * Returns whether an empty string is a valid value.
-     *
-     * @return <code>true</code> if an empty string is a valid value, and
-     *  <code>false</code> if an empty string is invalid
-     * @see #setEmptyStringAllowed
-     */
-    public boolean isEmptyStringAllowed() {
-        return emptyStringAllowed;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public boolean isValid() {
-        return isValid;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    protected void refreshValidState() {
-        isValid = checkState();
-    }
-
-    /**
-     * Sets whether the empty string is a valid value or not.
-     *
-     * @param b <code>true</code> if the empty string is allowed,
-     *  and <code>false</code> if it is considered invalid
-     */
-    public void setEmptyStringAllowed(boolean b) {
-        emptyStringAllowed = b;
-    }
-
-    /**
-     * Sets the error message that will be displayed when and if 
-     * an error occurs.
-     *
-     * @param message the error message
-     */
-    public void setErrorMessage(String message) {
-        errorMessage = message;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on FieldEditor.
-     */
-    public void setFocus() {
-        if (textField != null) {
-            textField.setFocus();
-        }
-    }
-
-    /**
-     * Sets this field editor's value.
-     *
-     * @param value the new value, or <code>null</code> meaning the empty string
-     */
-    public void setStringValue(String value) {
-        if (textField != null) {
-            if (value == null) {
-				value = "";//$NON-NLS-1$
-			}
-            oldValue = textField.getText();
-            if (!oldValue.equals(value)) {
-                textField.setText(value);
-                valueChanged();
-            }
-        }
-    }
-
-    /**
-     * Sets this text field's text limit.
-     *
-     * @param limit the limit on the number of character in the text
-     *  input field, or <code>UNLIMITED</code> for no limit
-
-     */
-    public void setTextLimit(int limit) {
-        textLimit = limit;
-        if (textField != null) {
-			textField.setTextLimit(limit);
-		}
-    }
-
-    /**
-     * Sets the strategy for validating the text.
-     * <p>
-     * Calling this method has no effect after <code>createPartControl</code>
-     * is called. Thus this method is really only useful for subclasses to call
-     * in their constructor. However, it has public visibility for backward 
-     * compatibility.
-     * </p>
-     *
-     * @param value either <code>VALIDATE_ON_KEY_STROKE</code> to perform
-     *  on the fly checking (the default), or <code>VALIDATE_ON_FOCUS_LOST</code> to
-     *  perform validation only after the text has been typed in
-     */
-    public void setValidateStrategy(int value) {
-        Assert.isTrue(value == VALIDATE_ON_FOCUS_LOST
-                || value == VALIDATE_ON_KEY_STROKE);
-        validateStrategy = value;
-    }
-
-    /**
-     * Shows the error message set via <code>setErrorMessage</code>.
-     */
-    public void showErrorMessage() {
-        showErrorMessage(errorMessage);
-    }
-
-    /**
-     * Informs this field editor's listener, if it has one, about a change
-     * to the value (<code>VALUE</code> property) provided that the old and
-     * new values are different.
-     * <p>
-     * This hook is <em>not</em> called when the text is initialized 
-     * (or reset to the default value) from the preference store.
-     * </p>
-     */
-    protected void valueChanged() {
-        setPresentsDefaultValue(false);
-        boolean oldState = isValid;
-        refreshValidState();
-
-        if (isValid != oldState) {
-			fireStateChanged(IS_VALID, oldState, isValid);
-		}
-
-        String newValue = textField.getText();
-        if (!newValue.equals(oldValue)) {
-            fireValueChanged(VALUE, oldValue, newValue);
-            oldValue = newValue;
-        }
-    }
-
-    /*
-     * @see FieldEditor.setEnabled(boolean,Composite).
-     */
-    public void setEnabled(boolean enabled, Composite parent) {
-        super.setEnabled(enabled, parent);
-        getTextControl(parent).setEnabled(enabled);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/images/pref_dialog_title.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/images/pref_dialog_title.gif
deleted file mode 100644
index 672442f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/images/pref_dialog_title.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/package.html
deleted file mode 100644
index 0ddc967..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/preference/package.html
+++ /dev/null
@@ -1,67 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides a framework for preferences.
-<h2>
-Package Specification</h2>
-A <b>preference manager</b> (class <tt>PreferenceManager</tt>) maintains
-a tree of <b>preference nodes</b>. Preferences are presented to the end
-user in a <b>preference dialog</b> consisting of <b>preference pages</b>.
-A preference page consists of multiple preference fields, which can be
-displayed and modified though <b>field editors</b>. The framework contains
-an abstract base class for preference dialogs (<tt>PreferenceDialog</tt>),
-and an abstract preference page class (<tt>FieldEditorPreferencePage</tt>)
-for hosting these field editors.
-<p>The individual preference values are maintained in a <b>preference store</b>
-(<tt>IPreferenceStore</tt>). Each preference has a current value and a
-default value use to (re-)initialize it. The framework provides a concrete
-preference store implementation (<tt>PreferenceStore</tt>) based on an
-internal <tt>java.util.Properties</tt> object, with support for persisting
-the non-default preference values to files or streams.
-<p>A field editor presents the value of a single preference to the end
-user. The value is loaded from the preference store; if modified by the
-end user, the value is validated and eventually stored back to the preference
-store.
-<p>This package contains ready-to-use field editors for various types of
-preferences:
-<ul>
-<li>
-<tt>BooleanFieldEditor</tt> - booleans</li>
-
-<li>
-<tt>IntegerFieldEditor</tt> - integers</li>
-
-<li>
-<tt>StringFieldEditor</tt> - text strings</li>
-
-<li>
-<tt>RadioGroupFieldEditor</tt> - enumerations</li>
-
-<li>
-<tt>ColorFieldEditor</tt> - RGB colors</li>
-
-<li>
-<tt>FontFieldEditor</tt> - fonts</li>
-
-<li>
-<tt>DirectoryFieldEditor</tt> - directories</li>
-
-<li>
-<tt>FileFieldEditor</tt> - files</li>
-
-<li>
-<tt>PathEditor</tt> - paths</li>
-</ul>
-All field editors are subclasses of the abstract base class <tt>FieldEditor</tt>;
-the framework allows new kinds of field editors to be defined by subclassing
-this class or one of its subclasses.
-<p>Note: None of the classes in this package maintain global state.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/AbstractResourceManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/AbstractResourceManager.java
deleted file mode 100644
index 4fb7391..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/AbstractResourceManager.java
+++ /dev/null
@@ -1,162 +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.jface.resource;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * Abstract implementation of ResourceManager. Maintains reference counts for all previously
- * allocated SWT resources. Delegates to the abstract method allocate(...) the first time a resource
- * is referenced and delegates to the abstract method deallocate(...) the last time a reference is
- * removed.
- * 
- * @since 3.1
- */
-abstract class AbstractResourceManager extends ResourceManager {
-
-    /**
-     * Map of ResourceDescriptor onto RefCount. (null when empty)
-     */
-    private HashMap map = null;
-    
-    /**
-     * Holds a reference count for a previously-allocated resource
-     */
-    private static class RefCount {
-        Object resource;
-        int count = 1;
-        
-        RefCount(Object resource) {
-            this.resource = resource;
-        }
-    }
-    
-    /**
-     * Called the first time a resource is requested. Should allocate and return a resource
-     * of the correct type. 
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor identifier for the resource to allocate
-     * @return the newly allocated resource
-     * @throws DeviceResourceException Thrown when allocation of an SWT device resource fails 
-     */
-    protected abstract Object allocate(DeviceResourceDescriptor descriptor) throws DeviceResourceException;
-
-    /**
-     * Called the last time a resource is dereferenced. Should release any resources reserved by
-     * allocate(...).
-     * 
-     * @since 3.1 
-     *
-     * @param resource resource being deallocated
-     * @param descriptor identifier for the resource
-     */
-    protected abstract void deallocate(Object resource, DeviceResourceDescriptor descriptor); 
-    
-    /* (non-Javadoc)
-     * @see ResourceManager#create(DeviceResourceDescriptor)
-     */
-    public final Object create(DeviceResourceDescriptor descriptor) throws DeviceResourceException {
-
-        // Lazily allocate the map
-        if (map == null) {
-            map = new HashMap();
-        }
-        
-        // Get the current reference count
-        RefCount count = (RefCount)map.get(descriptor);
-        if (count != null) {
-            // If this resource already exists, increment the reference count and return
-            // the existing resource.
-            count.count++;
-            return count.resource;
-        }
-        
-        // Allocate and return a new resource (with ref count = 1)
-        Object resource = allocate(descriptor);
-        
-        count = new RefCount(resource);
-        map.put(descriptor, count);
-        
-        return resource;
-    }
-
-    /* (non-Javadoc)
-     * @see ResourceManager#destroy(DeviceResourceDescriptor)
-     */
-    public final void destroy(DeviceResourceDescriptor descriptor) {
-        // If the map is empty (null) then there are no resources to dispose
-        if (map == null) {
-            return;
-        }
-        
-        // Find the existing resource
-        RefCount count = (RefCount)map.get(descriptor);
-        if (count != null) {
-            // If the resource exists, decrement the reference count.
-            count.count--;
-            if (count.count == 0) {
-                // If this was the last reference, deallocate it.
-                deallocate(count.resource, descriptor);
-                map.remove(descriptor);
-            }
-        }
-        
-        // Null out the map when empty to save a small amount of memory
-        if (map.isEmpty()) {
-            map = null;
-        }
-    }
-
-    /**
-     * Deallocates any resources allocated by this registry that have not yet been
-     * deallocated.
-     * 
-     * @since 3.1 
-     */
-    public void dispose() {
-        super.dispose();
-        
-        if (map == null) {
-            return;
-        }
-        
-        Collection entries = map.entrySet();
-
-        for (Iterator iter = entries.iterator(); iter.hasNext();) {
-            Map.Entry next = (Map.Entry) iter.next();
-            
-            Object key = next.getKey();
-            RefCount val = (RefCount)next.getValue();
-            
-            deallocate(val.resource, (DeviceResourceDescriptor)key);
-        }
-        
-        map = null;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceManager#find(org.eclipse.jface.resource.DeviceResourceDescriptor)
-     */
-    public Object find(DeviceResourceDescriptor descriptor) {
-        if (map == null) {
-            return null;
-        }
-        RefCount refCount = (RefCount)map.get(descriptor);
-        if (refCount == null)
-        	return null;
-		return refCount.resource;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ArrayFontDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ArrayFontDescriptor.java
deleted file mode 100644
index 8c057aa..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ArrayFontDescriptor.java
+++ /dev/null
@@ -1,141 +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.jface.resource;
-
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-
-/**
- * Describes a Font using an array of FontData
- * 
- * @since 3.1
- */
-final class ArrayFontDescriptor extends FontDescriptor {
-
-    private FontData[] data;
-    private Font originalFont = null;
-    
-    /**
-     * Creates a font descriptor for a font with the given name, height,
-     * and style. These arguments are passed directly to the constructor
-     * of Font.
-     * 
-     * @param data FontData describing the font to create
-     * 
-     * @see org.eclipse.swt.graphics.Font#Font(org.eclipse.swt.graphics.Device, org.eclipse.swt.graphics.FontData)
-     * @since 3.1
-     */
-    public ArrayFontDescriptor(FontData[] data) {
-        this.data = data;
-    }
- 
-    /**
-     * Creates a font descriptor that describes the given font.
-     * 
-     * @param originalFont font to be described
-     * 
-     * @see FontDescriptor#createFrom(org.eclipse.swt.graphics.Font)
-     * @since 3.1
-     */
-    public ArrayFontDescriptor(Font originalFont) {
-        this(originalFont.getFontData());
-        this.originalFont = originalFont;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.FontDescriptor#getFontData()
-     */
-    public FontData[] getFontData() {
-    	// Copy the original array to ensure that callers will not modify it
-    	return copy(data);
-    }
-    
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.FontDescriptor#createFont(org.eclipse.swt.graphics.Device)
-     */
-    public Font createFont(Device device) {
-        
-        // If this descriptor is an existing font, then we can return the original font
-        // if this is the same device.
-        if (originalFont != null) {         
-            // If we're allocating on the same device as the original font, return the original.
-            if (originalFont.getDevice() == device) {
-                return originalFont;
-            }
-        }
-        
-        return new Font(device, data);
-    }
-
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    public boolean equals(Object obj) {
-        if ((obj.getClass() == ArrayFontDescriptor.class)) {
-            ArrayFontDescriptor descr = (ArrayFontDescriptor)obj;
-            
-            if (descr.originalFont != originalFont) {
-                return false;
-            }
-            
-            if (originalFont != null) {
-                return true;
-            }
-            
-            if (data.length != descr.data.length) {
-                return false;
-            }
-            
-            for (int i = 0; i < data.length; i++) {
-                FontData fd = data[i];
-                FontData fd2 = descr.data[i];
-                
-                if (!fd.equals(fd2)) {
-                    return false;
-                }
-            }
-            
-            return true;
-        }
-        
-        return false;
-    }
-    
-    /* (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     */
-    public int hashCode() {
-        if (originalFont != null) {
-            return originalFont.hashCode();
-        }
-        
-        int code = 0;
-        
-        for (int i = 0; i < data.length; i++) {
-            FontData fd = data[i];
-            code += fd.hashCode();
-        }
-        return code;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.FontDescriptor#destroyFont(org.eclipse.swt.graphics.Font)
-     */
-    public void destroyFont(Font previouslyCreatedFont) {
-        if (previouslyCreatedFont == originalFont) {
-            return;
-        }
-        previouslyCreatedFont.dispose();
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorDescriptor.java
deleted file mode 100644
index ab5875e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorDescriptor.java
+++ /dev/null
@@ -1,103 +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.jface.resource;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * Lightweight descriptor for an SWT color. Each ColorDescriptor will create a particular SWT 
- * Color on demand. This object will be compared so hashCode(...) and equals(...) must 
- * return meaningful values.
- * 
- * @since 3.1
- */
-public abstract class ColorDescriptor extends DeviceResourceDescriptor {
-    
-    /**
-     * Creates a ColorDescriptor from an existing Color, given the Device associated
-     * with the original Color. This is the usual way to convert a Color into
-     * a ColorDescriptor. Note that the returned ColorDescriptor depends on the
-     * original Color, and disposing the Color will invalidate the ColorDescriptor.
-     * 
-     * @deprecated use {@link ColorDescriptor#createFrom(Color)}
-     * 
-     * @since 3.1
-     *
-     * @param toCreate Color to convert into a ColorDescriptor.
-     * @param originalDevice this must be the same Device that was passed into the
-     * original Color's constructor.
-     * @return a newly created ColorDescriptor that describes the given Color.
-     */
-    public static ColorDescriptor createFrom(Color toCreate, Device originalDevice) {
-        return new RGBColorDescriptor(toCreate);
-    }
-    
-    /**
-     * Creates a ColorDescriptor from an existing color. 
-     * 
-     * The returned ColorDescriptor depends on the original Color. Disposing
-     * the original colour while the color descriptor is still in use may cause 
-     * SWT to throw a graphic disposed exception.
-     * 
-     * @since 3.1
-     *
-     * @param toCreate Color to generate a ColorDescriptor from
-     * @return a newly created ColorDescriptor
-     */
-    public static ColorDescriptor createFrom(Color toCreate) {
-        return new RGBColorDescriptor(toCreate);
-    }
-    
-    /**
-     * Returns a color descriptor for the given RGB values
-     * @since 3.1 
-     *
-     * @param toCreate RGB values to create
-     * @return a new ColorDescriptor
-     */
-    public static ColorDescriptor createFrom(RGB toCreate) {
-        return new RGBColorDescriptor(toCreate);
-    }
-    
-    /**
-     * Returns the Color described by this descriptor.
-     * 
-     * @param device SWT device on which to allocate the Color
-     * @return a newly allocated SWT Color object (never null)
-     * @throws DeviceResourceException if unable to allocate the Color
-     */
-    public abstract Color createColor(Device device) throws DeviceResourceException;
-    
-    /**
-     * Undoes whatever was done by createColor. 
-     * 
-     * @since 3.1 
-     *
-     * @param toDestroy a Color that was previously allocated by an equal ColorDescriptor
-     */
-    public abstract void destroyColor(Color toDestroy);
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#createResource(org.eclipse.swt.graphics.Device)
-     */
-    public final Object createResource(Device device) throws DeviceResourceException {
-        return createColor(device);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#destroyResource(java.lang.Object)
-     */
-    public final void destroyResource(Object previouslyCreatedObject) {
-        destroyColor((Color)previouslyCreatedObject);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorRegistry.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorRegistry.java
deleted file mode 100644
index e38b88b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ColorRegistry.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A color registry maintains a mapping between symbolic color names and SWT 
- * <code>Color</code>s.
- * <p>
- * A color registry owns all of the <code>Color</code> objects registered with 
- * it, and automatically disposes of them when the SWT Display that creates the 
- * <code>Color</code>s is disposed. Because of this, clients do not need to 
- * (indeed, must not attempt to) dispose of <code>Color</code> objects 
- * themselves.
- * </p>
- * <p>
- * Methods are provided for registering listeners that will be kept
- * apprised of changes to list of registed colors.
- * </p>
- * <p>
- * Clients may instantiate this class (it was not designed to be subclassed).
- * </p>
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ColorRegistry extends ResourceRegistry {
-
-	/**
-	 * Default color value.  This is cyan (very unappetizing). 
-	 * @since 3.4
-	 */
-    private static final ColorDescriptor DEFAULT_COLOR = new RGBColorDescriptor(new RGB(0, 255, 255));
-
-	/**
-     * This registries <code>Display</code>. All colors will be allocated using 
-     * it.
-     */
-    protected Display display;
-
-    /**
-     * Collection of <code>Color</code> that are now stale to be disposed when 
-     * it is safe to do so (i.e. on shutdown).
-     */
-    private List staleColors = new ArrayList();
-
-    /**
-     * Table of known colors, keyed by symbolic color name (key type: <code>String</code>,
-     * value type: <code>org.eclipse.swt.graphics.Color</code>.
-     */
-    private Map stringToColor = new HashMap(7);
-
-    /**
-     * Table of known color data, keyed by symbolic color name (key type:
-     * <code>String</code>, value type: <code>org.eclipse.swt.graphics.RGB</code>).
-     */
-    private Map stringToRGB = new HashMap(7);
-
-    /**
-     * Runnable that cleans up the manager on disposal of the display.
-     */
-    protected Runnable displayRunnable = new Runnable() {
-        public void run() {
-            clearCaches();
-        }
-    };
-
-	private final boolean cleanOnDisplayDisposal;
-
-    /**
-     * Create a new instance of the receiver that is hooked to the current 
-     * display.
-     * 
-     * @see org.eclipse.swt.widgets.Display#getCurrent()
-     */
-    public ColorRegistry() {
-        this(Display.getCurrent(), true);
-    }
-
-    /**
-     * Create a new instance of the receiver.
-     * 
-     * @param display the <code>Display</code> to hook into.
-     */
-    public ColorRegistry(Display display) {
-    	this (display, true);
-    }
-
-    /**
-     * Create a new instance of the receiver.
-     * 
-     * @param display the <code>Display</code> to hook into
-     * @param cleanOnDisplayDisposal
-	 *            whether all fonts allocated by this <code>ColorRegistry</code>
-	 *            should be disposed when the display is disposed
-     * @since 3.1
-     */
-    public ColorRegistry(Display display, boolean cleanOnDisplayDisposal) {
-		Assert.isNotNull(display);
-        this.display = display;
-        this.cleanOnDisplayDisposal = cleanOnDisplayDisposal;
-        if (cleanOnDisplayDisposal) {
-			hookDisplayDispose();
-		}
-    }
-
-    /**
-     * Create a new <code>Color</code> on the receivers <code>Display</code>.
-     * 
-     * @param rgb the <code>RGB</code> data for the color.
-     * @return the new <code>Color</code> object.
-     * 
-     * @since 3.1
-     */
-    private Color createColor(RGB rgb) {
-    	if (this.display == null) {
-    		Display display = Display.getCurrent();
-    		if (display == null) {
-    			throw new IllegalStateException();
-    		}
-    		this.display = display;
-    		if (cleanOnDisplayDisposal) {
-    			hookDisplayDispose();
-    		}
-    	}
-        return new Color(display, rgb);
-    }
-
-    /**
-     * Dispose of all of the <code>Color</code>s in this iterator.
-     * 
-     * @param iterator over <code>Collection</code> of <code>Color</code>
-     */
-    private void disposeColors(Iterator iterator) {
-        while (iterator.hasNext()) {
-            Object next = iterator.next();
-            ((Color) next).dispose();
-        }
-    }
-
-    /**
-     * Returns the <code>color</code> associated with the given symbolic color 
-     * name, or <code>null</code> if no such definition exists.
-     * 
-     * @param symbolicName symbolic color name
-     * @return the <code>Color</code> or <code>null</code>
-     */
-    public Color get(String symbolicName) {
-
-        Assert.isNotNull(symbolicName);
-        Object result = stringToColor.get(symbolicName);
-        if (result != null) {
-			return (Color) result;
-		}
-
-        Color color = null;
-
-        result = stringToRGB.get(symbolicName);
-        if (result == null) {
-			return null;
-		}
-
-        color = createColor((RGB) result);
-
-        stringToColor.put(symbolicName, color);
-
-        return color;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceRegistry#getKeySet()
-     */
-    public Set getKeySet() {
-        return Collections.unmodifiableSet(stringToRGB.keySet());
-    }
-
-    /**
-     * Returns the color data associated with the given symbolic color name.
-     *
-     * @param symbolicName symbolic color name.
-     * @return the <code>RGB</code> data, or <code>null</code> if the symbolic name
-     * is not valid.
-     */
-    public RGB getRGB(String symbolicName) {
-        Assert.isNotNull(symbolicName);
-        return (RGB) stringToRGB.get(symbolicName);
-    }
-    
-    /**
-	 * Returns the color descriptor associated with the given symbolic color
-	 * name. As of 3.4 if this color is not defined then an unspecified color
-	 * is returned. Users that wish to ensure a reasonable default value should
-	 * use {@link #getColorDescriptor(String, ColorDescriptor)} instead.
-	 * 
-	 * @since 3.1
-	 * 
-	 * @param symbolicName
-	 * @return the color descriptor associated with the given symbolic color
-	 *         name or an unspecified sentinel.
-	 */
-	public ColorDescriptor getColorDescriptor(String symbolicName) {
-		return getColorDescriptor(symbolicName, DEFAULT_COLOR);
-	}
-    
-    /**
-	 * Returns the color descriptor associated with the given symbolic color
-	 * name. If this name does not exist within the registry the supplied
-	 * default value will be used.
-	 * 
-	 * @param symbolicName
-	 * @param defaultValue
-	 * @return the color descriptor associated with the given symbolic color
-	 *         name or the default
-	 * @since 3.4
-	 */
-	public ColorDescriptor getColorDescriptor(String symbolicName,
-			ColorDescriptor defaultValue) {
-		RGB rgb = getRGB(symbolicName);
-		if (rgb == null)
-			return defaultValue;
-		return ColorDescriptor.createFrom(rgb);
-	}
-
-    /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.resource.ResourceRegistry#clearCaches()
-	 */
-    protected void clearCaches() {
-        disposeColors(stringToColor.values().iterator());
-        disposeColors(staleColors.iterator());
-        stringToColor.clear();
-        staleColors.clear();
-        display = null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceRegistry#hasValueFor(java.lang.String)
-     */
-    public boolean hasValueFor(String colorKey) {
-        return stringToRGB.containsKey(colorKey);
-    }
-
-    /**
-     * Hook a dispose listener on the SWT display.
-     */
-    private void hookDisplayDispose() {
-        display.disposeExec(displayRunnable);
-    }
-
-    /**
-     * Adds (or replaces) a color to this color registry under the given 
-     * symbolic name.
-     * <p>
-     * A property change event is reported whenever the mapping from a symbolic
-     * name to a color changes. The source of the event is this registry; the
-     * property name is the symbolic color name.
-     * </p>
-     * 
-     * @param symbolicName the symbolic color name
-     * @param colorData an <code>RGB</code> object
-     */
-    public void put(String symbolicName, RGB colorData) {
-        put(symbolicName, colorData, true);
-    }
-
-    /**
-     * Adds (or replaces) a color to this color registry under the given 
-     * symbolic name.
-     * <p>
-     * A property change event is reported whenever the mapping from a symbolic
-     * name to a color changes. The source of the event is this registry; the
-     * property name is the symbolic color name.
-     * </p>
-     * 
-     * @param symbolicName the symbolic color name
-     * @param colorData an <code>RGB</code> object
-     * @param update - fire a color mapping changed if true. False if this
-     *            method is called from the get method as no setting has
-     *            changed.
-     */
-    private void put(String symbolicName, RGB colorData, boolean update) {
-
-        Assert.isNotNull(symbolicName);
-        Assert.isNotNull(colorData);
-
-        RGB existing = (RGB) stringToRGB.get(symbolicName);
-        if (colorData.equals(existing)) {
-			return;
-		}
-
-        Color oldColor = (Color) stringToColor.remove(symbolicName);
-        stringToRGB.put(symbolicName, colorData);
-        if (update) {
-			fireMappingChanged(symbolicName, existing, colorData);
-		}
-
-        if (oldColor != null) {
-			staleColors.add(oldColor);
-		}
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java
deleted file mode 100644
index 9db0480..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/CompositeImageDescriptor.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * Abstract base class for image descriptors that synthesize an image from other
- * images in order to simulate the effect of custom drawing. For example, this
- * could be used to superimpose a red bar dexter symbol across an image to
- * indicate that something was disallowed.
- * <p>
- * Subclasses must implement the <code>getSize</code> and <code>fill</code>
- * methods. Little or no work happens until the image descriptor's image is
- * actually requested by a call to <code>createImage</code> (or to
- * <code>getImageData</code> directly).
- * </p>
- */
-public abstract class CompositeImageDescriptor extends ImageDescriptor {
-
-	/**
-	 * The image data for this composite image.
-	 */
-	private ImageData imageData;
-
-	/**
-	 * Constructs an uninitialized composite image.
-	 */
-	protected CompositeImageDescriptor() {
-	}
-
-	/**
-	 * Draw the composite images.
-	 * <p>
-	 * Subclasses must implement this framework method to paint images within
-	 * the given bounds using one or more calls to the <code>drawImage</code>
-	 * framework method.
-	 * </p>
-	 * 
-	 * @param width
-	 *            the width
-	 * @param height
-	 *            the height
-	 */
-	protected abstract void drawCompositeImage(int width, int height);
-
-	/**
-	 * Draws the given source image data into this composite image at the given
-	 * position.
-	 * <p>
-	 * Call this internal framework method to superimpose another image atop
-	 * this composite image.
-	 * </p>
-	 * 
-	 * @param src
-	 *            the source image data
-	 * @param ox
-	 *            the x position
-	 * @param oy
-	 *            the y position
-	 */
-	final protected void drawImage(ImageData src, int ox, int oy) {
-		ImageData dst = imageData;
-		PaletteData srcPalette = src.palette;
-		ImageData srcMask = null;
-		int alphaMask = 0, alphaShift = 0;
-		if (src.maskData != null) {
-			srcMask = src.getTransparencyMask ();
-			if (src.depth == 32) {
-				alphaMask = ~(srcPalette.redMask | srcPalette.greenMask | srcPalette.blueMask);
-				while (alphaMask != 0 && ((alphaMask >>> alphaShift) & 1) == 0) alphaShift++;
-			}
-		}
-		for (int srcY = 0, dstY = srcY + oy; srcY < src.height; srcY++, dstY++) {
-			for (int srcX = 0, dstX = srcX + ox; srcX < src.width; srcX++, dstX++) {
-				if (!(0 <= dstX && dstX < dst.width && 0 <= dstY && dstY < dst.height)) continue;
-				int srcPixel = src.getPixel(srcX, srcY);
-				int srcAlpha = 255;
-				if (src.maskData != null) {
-					if (src.depth == 32) {
-						srcAlpha = (srcPixel & alphaMask) >>> alphaShift;
-						if (srcAlpha == 0) {
-							srcAlpha = srcMask.getPixel(srcX, srcY) != 0 ? 255 : 0;
-						}
-					} else {
-						if (srcMask.getPixel(srcX, srcY) == 0) srcAlpha = 0;
-					}
-				} else if (src.transparentPixel != -1) {
-					if (src.transparentPixel == srcPixel) srcAlpha = 0;
-				} else if (src.alpha != -1) {
-					srcAlpha = src.alpha;
-				} else if (src.alphaData != null) {
-					srcAlpha = src.getAlpha(srcX, srcY);
-				}
-				if (srcAlpha == 0) continue;
-				int srcRed, srcGreen, srcBlue;
-				if (srcPalette.isDirect) {
-					srcRed = srcPixel & srcPalette.redMask;
-					srcRed = (srcPalette.redShift < 0) ? srcRed >>> -srcPalette.redShift : srcRed << srcPalette.redShift;
-					srcGreen = srcPixel & srcPalette.greenMask;
-					srcGreen = (srcPalette.greenShift < 0) ? srcGreen >>> -srcPalette.greenShift : srcGreen << srcPalette.greenShift;
-					srcBlue = srcPixel & srcPalette.blueMask;
-					srcBlue = (srcPalette.blueShift < 0) ? srcBlue >>> -srcPalette.blueShift : srcBlue << srcPalette.blueShift;
-				} else {
-					RGB rgb = srcPalette.getRGB(srcPixel);
-					srcRed = rgb.red;
-					srcGreen = rgb.green;
-					srcBlue = rgb.blue;
-				}
-				int dstRed, dstGreen, dstBlue, dstAlpha;
-				if (srcAlpha == 255) {
-					dstRed = srcRed;
-					dstGreen = srcGreen;
-					dstBlue= srcBlue;
-					dstAlpha = srcAlpha;
-				} else {
-					int dstPixel = dst.getPixel(dstX, dstY);
-					dstAlpha = dst.getAlpha(dstX, dstY);
-					dstRed = (dstPixel & 0xFF) >>> 0;
-					dstGreen = (dstPixel & 0xFF00) >>> 8;
-					dstBlue = (dstPixel & 0xFF0000) >>> 16;
-					dstRed += (srcRed - dstRed) * srcAlpha / 255;
-					dstGreen += (srcGreen - dstGreen) * srcAlpha / 255;
-					dstBlue += (srcBlue - dstBlue) * srcAlpha / 255;
-					dstAlpha += (srcAlpha - dstAlpha) * srcAlpha / 255;
-				}
-				dst.setPixel(dstX, dstY, ((dstRed & 0xFF) << 0) | ((dstGreen & 0xFF) << 8) | ((dstBlue & 0xFF) << 16));
-				dst.setAlpha(dstX, dstY, dstAlpha);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on ImageDesciptor.
-	 */
-	public ImageData getImageData() {
-		Point size = getSize();		
-		
-		/* Create a 24 bit image data with alpha channel */
-		imageData = new ImageData(size.x, size.y, 24, new PaletteData(0xFF, 0xFF00, 0xFF0000));
-		imageData.alphaData = new byte[imageData.width * imageData.height];
-		
-		drawCompositeImage(size.x, size.y);
-		
-		/* Detect minimum transparency */
-		boolean transparency = false;
-		byte[] alphaData = imageData.alphaData;
-		for (int i = 0; i < alphaData.length; i++) {
-			int alpha = alphaData[i] & 0xFF;
-			if (!(alpha == 0 || alpha == 255)) {
-				/* Full alpha channel transparency */
-				return imageData;
-			}
-			if (!transparency && alpha == 0) transparency = true;
-		}
-		if (transparency) {
-			/* Reduce to 1-bit alpha channel transparency */
-			PaletteData palette = new PaletteData(new RGB[]{new RGB(0, 0, 0), new RGB(255, 255, 255)});
-			ImageData mask = new ImageData(imageData.width, imageData.height, 1, palette);
-			for (int y = 0; y < mask.height; y++) {
-				for (int x = 0; x < mask.width; x++) {
-					mask.setPixel(x, y, imageData.getAlpha(x, y) == 255 ? 1 : 0);
-				}
-			}
-		} else {
-			/* no transparency */
-			imageData.alphaData = null;
-		}
-		return imageData;
-	}
-	
-
-	/**
-	 * Return the transparent pixel for the receiver.
-	 * <strong>NOTE</strong> This value is not currently in use in the 
-	 * default implementation.
-	 * @return int
-	 * @since 3.3
-	 */
-	protected int getTransparentPixel() {
-		return 0;
-	}
-
-	/**
-	 * Return the size of this composite image.
-	 * <p>
-	 * Subclasses must implement this framework method.
-	 * </p>
-	 * 
-	 * @return the x and y size of the image expressed as a point object
-	 */
-	protected abstract Point getSize();
-
-	/**
-	 * @param imageData The imageData to set.
-	 * @since 3.3
-	 */
-	protected void setImageData(ImageData imageData) {
-		this.imageData = imageData;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DataFormatException.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DataFormatException.java
deleted file mode 100644
index 2732cb9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DataFormatException.java
+++ /dev/null
@@ -1,42 +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.jface.resource;
-
-/**
- * An exception indicating that a string value could not be
- * converted into the requested data type.
- *
- * @see StringConverter
- */
-public class DataFormatException extends IllegalArgumentException {
-    
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3544955467404031538L;
-
-    /**
-     * Creates a new exception.
-     */
-    public DataFormatException() {
-        super();
-    }
-
-    /**
-     * Creates a new exception.
-     *
-     * @param message the message
-     */
-    public DataFormatException(String message) {
-        super(message);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DerivedImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DerivedImageDescriptor.java
deleted file mode 100644
index 4e0379d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DerivedImageDescriptor.java
+++ /dev/null
@@ -1,93 +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.jface.resource;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * An image descriptor which creates images based on another ImageDescriptor, but with
- * additional SWT flags. Note that this is only intended for compatibility. 
- * 
- * @since 3.1
- */
-final class DerivedImageDescriptor extends ImageDescriptor {
-
-    private ImageDescriptor original;
-    private int flags;
-    
-    /**
-     * Create a new image descriptor
-     * @param original the original one
-     * @param swtFlags flags to be used when image is created {@link Image#Image(Device, Image, int)}
-     * @see SWT#IMAGE_COPY
-     * @see SWT#IMAGE_DISABLE
-     * @see SWT#IMAGE_GRAY
-     */
-    public DerivedImageDescriptor(ImageDescriptor original, int swtFlags) {
-        this.original = original;
-        flags = swtFlags;
-    }
-    
-    public Object createResource(Device device) throws DeviceResourceException {
-        try {
-            return internalCreateImage(device);
-        } catch (SWTException e) {
-            throw new DeviceResourceException(this, e);
-        }
-    }
-    
-    public Image createImage(Device device) {
-        return internalCreateImage(device);
-    }
-    
-    public int hashCode() {
-        return original.hashCode() + flags;
-    }
-    
-    public boolean equals(Object arg0) {
-        if (arg0 instanceof DerivedImageDescriptor) {
-            DerivedImageDescriptor desc = (DerivedImageDescriptor)arg0;
-            
-            return desc.original == original && flags == desc.flags;
-        }
-        
-        return false;
-    }
-    
-    /**
-     * Creates a new Image on the given device. Note that we defined a new
-     * method rather than overloading createImage since this needs to be
-     * called by getImageData(), and we want to be absolutely certain not
-     * to cause infinite recursion if the base class gets refactored. 
-     *
-     * @param device device to create the image on
-     * @return a newly allocated Image. Must be disposed by calling image.dispose().
-     */
-    private final Image internalCreateImage(Device device) {
-        Image originalImage = original.createImage(device);
-        Image result = new Image(device, originalImage, flags);
-        original.destroyResource(originalImage);
-        return result;
-    }
-    
-    public ImageData getImageData() {
-        Image image = internalCreateImage(Display.getCurrent());
-        ImageData result = image.getImageData();
-        image.dispose();
-        return result;
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceDescriptor.java
deleted file mode 100644
index b7ce8c5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceDescriptor.java
+++ /dev/null
@@ -1,47 +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.jface.resource;
-
-import org.eclipse.swt.graphics.Device;
-
-/**
- * Instances of this class can allocate and dispose SWT resources. Each
- * instance describes a particular resource (such as a Color, Font, or Image)
- * and can create and destroy that resource on demand. DeviceResourceDescriptors
- * are managed by a ResourceRegistry.
- * 
- * @see org.eclipse.jface.resource.ResourceManager
- * 
- * @since 3.1
- */
-public abstract class DeviceResourceDescriptor {
-    /**
-     * Creates the resource described by this descriptor
-     * 
-     * @since 3.1 
-     *
-     * @param device the Device on which to allocate the resource
-     * @return the newly allocated resource (not null)
-     * @throws DeviceResourceException if unable to allocate the resource
-     */
-    public abstract Object createResource(Device device);
-    
-    /**
-     * Undoes everything that was done by a previous call to create(...), given
-     * the object that was returned by create(...).
-     * 
-     * @since 3.1 
-     *
-     * @param previouslyCreatedObject an object that was returned by an equal 
-     * descriptor in a previous call to createResource(...).
-     */
-    public abstract void destroyResource(Object previouslyCreatedObject);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceException.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceException.java
deleted file mode 100644
index 4907b0a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceException.java
+++ /dev/null
@@ -1,62 +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.jface.resource;
-
-
-/**
- * Thrown when allocation of an SWT device resource fails
- * 
- * @since 3.1
- */
-public class DeviceResourceException extends RuntimeException {
-    
-	private Throwable cause;
-
-	/**
-	 * All serializable objects should have a stable serialVersionUID
-	 */
-	private static final long serialVersionUID = 11454598756198L;
-    
-	/**
-	 * Creates a DeviceResourceException indicating an error attempting to
-	 * create a resource and an embedded low-level exception describing the cause 
-	 * 
-	 * @param missingResource
-     * @param cause cause of the exception (or null if none)
-	 */
-    public DeviceResourceException(DeviceResourceDescriptor missingResource, Throwable cause) {
-        super("Unable to create resource " + missingResource.toString()); //$NON-NLS-1$
-        // don't pass the cause to super, to allow compilation against JCL Foundation (bug 80059)
-        this.cause = cause;
-    }
-    
-    /**
-     * Creates a DeviceResourceException indicating an error attempting to
-     * create a resource 
-     * 
-     * @param missingResource
-     */
-    public DeviceResourceException(DeviceResourceDescriptor missingResource) {
-        this(missingResource, null);
-    }
-    
-    /**
-     * Returns the cause of this throwable or <code>null</code> if the
-     * cause is nonexistent or unknown. 
-     * 
-     * @return the cause or <code>null</code>
-     * @since 3.1
-     */
-    public Throwable getCause() {
-        return cause;
-    }
-    
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceManager.java
deleted file mode 100644
index db02255..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/DeviceResourceManager.java
+++ /dev/null
@@ -1,86 +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.jface.resource;
-
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Manages SWT resources for a particular device.
- *  
- * <p>
- * IMPORTANT: in most cases clients should use a <code>LocalResourceManager</code> instead of a
- * <code>DeviceResourceManager</code>. To create a resource manager on a particular display, 
- * use <code>new LocalResourceManager(JFaceResources.getResources(myDisplay))</code>.
- * <code>DeviceResourceManager</code> should only be used directly when managing
- * resources for a device other than a Display (such as a printer).  
- * </p>
- * 
- * @see LocalResourceManager
- * 
- * @since 3.1
- */
-public final class DeviceResourceManager extends AbstractResourceManager {
-    
-    private Device device;
-    private Image missingImage;
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceManager#getDevice()
-     */
-    public Device getDevice() {
-        return device;
-    }
-    
-    /**
-     * Creates a new registry for the given device.
-     * 
-     * @param device device to manage
-     */
-    public DeviceResourceManager(Device device) {
-        this.device = device;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.AbstractResourceManager#allocate(org.eclipse.jface.resource.DeviceResourceDescriptor)
-     */
-    protected Object allocate(DeviceResourceDescriptor descriptor) throws DeviceResourceException {
-        return descriptor.createResource(device);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.AbstractResourceManager#deallocate(java.lang.Object, org.eclipse.jface.resource.DeviceResourceDescriptor)
-     */
-    protected void deallocate(Object resource, DeviceResourceDescriptor descriptor) {
-        descriptor.destroyResource(resource);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceManager#getDefaultImage()
-     */
-    protected Image getDefaultImage() {
-        if (missingImage == null) {
-            missingImage = ImageDescriptor.getMissingImageDescriptor().createImage();
-        }
-        return missingImage;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.AbstractResourceManager#dispose()
-     */
-    public void dispose() {
-        super.dispose();
-        if (missingImage != null) {
-            missingImage.dispose();
-            missingImage = null;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java
deleted file mode 100644
index 69b4c68..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FileImageDescriptor.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.internal.InternalPolicy;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- * An image descriptor that loads its image information from a file.
- */
-class FileImageDescriptor extends ImageDescriptor {
-
-	/**
-	 * The class whose resource directory contain the file, or <code>null</code>
-	 * if none.
-	 */
-	private Class location;
-
-	/**
-	 * The name of the file.
-	 */
-	private String name;
-
-	/**
-	 * Creates a new file image descriptor. The file has the given file name and
-	 * is located in the given class's resource directory. If the given class is
-	 * <code>null</code>, the file name must be absolute.
-	 * <p>
-	 * Note that the file is not accessed until its <code>getImageDate</code>
-	 * method is called.
-	 * </p>
-	 * 
-	 * @param clazz
-	 *            class for resource directory, or <code>null</code>
-	 * @param filename
-	 *            the name of the file
-	 */
-	FileImageDescriptor(Class clazz, String filename) {
-		this.location = clazz;
-		this.name = filename;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Object.
-	 */
-	public boolean equals(Object o) {
-		if (!(o instanceof FileImageDescriptor)) {
-			return false;
-		}
-		FileImageDescriptor other = (FileImageDescriptor) o;
-		if (location != null) {
-			if (!location.equals(other.location)) {
-				return false;
-			}
-		} else {
-			if (other.location != null) {
-				return false;
-			}
-		}
-		return name.equals(other.name);
-	}
-
-	/**
-	 * @see org.eclipse.jface.resource.ImageDescriptor#getImageData() The
-	 *      FileImageDescriptor implementation of this method is not used by
-	 *      {@link ImageDescriptor#createImage(boolean, Device)} as of version
-	 *      3.4 so that the SWT OS optimised loading can be used.
-	 */
-	public ImageData getImageData() {
-		InputStream in = getStream();
-		ImageData result = null;
-		if (in != null) {
-			try {
-				result = new ImageData(in);
-			} catch (SWTException e) {
-				if (e.code != SWT.ERROR_INVALID_IMAGE) {
-					throw e;
-					// fall through otherwise
-				}
-			} finally {
-				try {
-					in.close();
-				} catch (IOException e) {
-					// System.err.println(getClass().getName()+".getImageData():
-					// "+
-					// "Exception while closing InputStream : "+e);
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns a stream on the image contents. Returns null if a stream could
-	 * not be opened.
-	 * 
-	 * @return the buffered stream on the file or <code>null</code> if the
-	 *         file cannot be found
-	 */
-	private InputStream getStream() {
-		InputStream is = null;
-
-		if (location != null) {
-			is = location.getResourceAsStream(name);
-
-		} else {
-			try {
-				is = new FileInputStream(name);
-			} catch (FileNotFoundException e) {
-				return null;
-			}
-		}
-		if (is == null) {
-			return null;
-		}
-		return new BufferedInputStream(is);
-
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Object.
-	 */
-	public int hashCode() {
-		int code = name.hashCode();
-		if (location != null) {
-			code += location.hashCode();
-		}
-		return code;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Object.
-	 */
-	/**
-	 * The <code>FileImageDescriptor</code> implementation of this
-	 * <code>Object</code> method returns a string representation of this
-	 * object which is suitable only for debugging.
-	 */
-	public String toString() {
-		return "FileImageDescriptor(location=" + location + ", name=" + name + ")";//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.resource.ImageDescriptor#createImage(boolean,
-	 *      org.eclipse.swt.graphics.Device)
-	 */
-	public Image createImage(boolean returnMissingImageOnError, Device device) {
-		String path = getFilePath();
-		if (path == null)
-			return createDefaultImage(returnMissingImageOnError, device);
-		try {			
-			return new Image(device, path);
-		} catch (SWTException exception) {
-			//if we fail try the default way using a stream
-		}
-		return super.createImage(returnMissingImageOnError, device);
-	}
-
-	/**
-	 * Return default image if returnMissingImageOnError is true.
-	 * 
-	 * @param device
-	 * @return Image or <code>null</code>
-	 */
-	private Image createDefaultImage(boolean returnMissingImageOnError,
-			Device device) {
-		try {
-			if (returnMissingImageOnError)
-				return new Image(device, DEFAULT_IMAGE_DATA);
-		} catch (SWTException nextException) {
-			return null;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the filename for the ImageData.
-	 * 
-	 * @return {@link String} or <code>null</code> if the file cannot be found
-	 */
-	private String getFilePath() {
-
-		if (location == null)
-			return new Path(name).toOSString();
-
-		URL resource = location.getResource(name);
-
-		if (resource == null)
-			return null;
-		try {
-			if (!InternalPolicy.OSGI_AVAILABLE) {// Stand-alone case
-
-				return new Path(resource.getFile()).toOSString();
-			}
-			return new Path(FileLocator.toFileURL(resource).getPath()).toOSString();
-		} catch (IOException e) {
-			Policy.logException(e);
-			return null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontDescriptor.java
deleted file mode 100644
index a3fca83..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontDescriptor.java
+++ /dev/null
@@ -1,294 +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.jface.resource;
-
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Lightweight descriptor for a font. Creates the described font on demand.
- * Subclasses can implement different ways of describing a font. These objects
- * will be compared, so hashCode(...) and equals(...) must return something 
- * meaningful.
- * 
- * @since 3.1
- */
-public abstract class FontDescriptor extends DeviceResourceDescriptor {
-    
-    /**
-     * Creates a FontDescriptor that describes an existing font. The resulting
-     * descriptor depends on the Font. Disposing the Font while the descriptor
-     * is still in use may throw a graphic disposed exception.
-     * 
-     * @since 3.1
-     *
-     * @deprecated use {@link FontDescriptor#createFrom(Font)}
-     *
-     * @param font a font to describe
-     * @param originalDevice must be the same Device that was passed into
-     * the font's constructor when it was first created.
-     * @return a newly created FontDescriptor.
-     */
-    public static FontDescriptor createFrom(Font font, Device originalDevice) {
-        return new ArrayFontDescriptor(font);
-    }
-    
-    /**
-     * Creates a FontDescriptor that describes an existing font. The resulting
-     * descriptor depends on the original Font, and disposing the original Font
-     * while the descriptor is still in use may cause SWT to throw a graphic
-     * disposed exception.
-     * 
-     * @since 3.1
-     *
-     * @param font font to create
-     * @return a newly created FontDescriptor that describes the given font
-     */
-    public static FontDescriptor createFrom(Font font) {
-        return new ArrayFontDescriptor(font);
-    }
-    
-    /**
-     * Creates a new FontDescriptor given the an array of FontData that describes 
-     * the font.
-     * 
-     * @since 3.1
-     *
-     * @param data an array of FontData that describes the font (will be passed into
-     * the Font's constructor)
-     * @return a FontDescriptor that describes the given font
-     */
-    public static FontDescriptor createFrom(FontData[] data) {
-        return new ArrayFontDescriptor(data);
-    }
-    
-    /**
-     * Creates a new FontDescriptor given the associated FontData
-     * 
-     * @param data FontData describing the font to create
-     * @return a newly created FontDescriptor
-     */
-    public static FontDescriptor createFrom(FontData data) {
-        return new ArrayFontDescriptor(new FontData[]{data});
-    }
-    
-    /**
-     * Creates a new FontDescriptor given an OS-specific font name, height, and style.
-     * 
-     * @see Font#Font(org.eclipse.swt.graphics.Device, java.lang.String, int, int)
-     *
-     * @param name os-specific font name
-     * @param height height (pixels)
-     * @param style a bitwise combination of NORMAL, BOLD, ITALIC 
-     * @return a new FontDescriptor
-     */
-    public static FontDescriptor createFrom(String name, int height, int style) {
-        return createFrom(new FontData(name, height, style));
-    }
-    
-    /**
-     * Returns the set of FontData associated with this font. Modifying the elements
-     * in the returned array has no effect on the original FontDescriptor.
-     * 
-     * @return the set of FontData associated with this font
-     * @since 3.3
-     */
-    public FontData[] getFontData() {
-    	Font tempFont = createFont(Display.getCurrent());
-    	FontData[] result = tempFont.getFontData();
-    	destroyFont(tempFont);
-    	return result;
-    }
-    
-    /**
-     * Returns an array of FontData containing copies of the FontData
-     * from the original. 
-     * 
-     * @param original array to copy
-     * @return a deep copy of the original array
-     * @since 3.3
-     */
-    public static FontData[] copy(FontData[] original) {
-    	FontData[] result = new FontData[original.length];
-    	for (int i = 0; i < original.length; i++) {
-			FontData next = original[i];
-			
-			result[i] = copy(next);
-		}
-    	
-    	return result;
-    }
-    
-    /**
-     * Returns a copy of the original FontData
-     * 
-	 * @param next FontData to copy
-	 * @return a copy of the given FontData
-     * @since 3.3
-	 */
-	public static FontData copy(FontData next) {
-		FontData result = new FontData(next.getName(), next.getHeight(), next.getStyle());
-		result.setLocale(next.getLocale());
-		return result;
-	}
-
-	/**
-     * Returns a FontDescriptor that is equivalent to the reciever, but uses
-     * the given style bits. 
-     * 
-     * <p>Does not modify the reciever.</p>
-     * 
-     * @param style a bitwise combination of SWT.NORMAL, SWT.ITALIC and SWT.BOLD
-     * @return a new FontDescriptor with the given style
-     * 
-     * @since 3.3
-     */
-    public final FontDescriptor setStyle(int style) {
-    	FontData[] data = getFontData();
-    	
-    	for (int i = 0; i < data.length; i++) {
-			FontData next = data[i];
-			
-			next.setStyle(style);
-		}
-
-    	// Optimization: avoid holding onto extra instances by returning the reciever if
-    	// if it is exactly the same as the result
-    	FontDescriptor result = new ArrayFontDescriptor(data);
-    	if (result.equals(this)) {
-    		return this;
-    	}
-    	
-    	return result;
-    }
-    
-    /**
-     * <p>Returns a FontDescriptor that is equivalent to the reciever, but
-     * has the given style bits, in addition to any styles the reciever already has.</p>
-     * 
-     * <p>Does not modify the reciever.</p>
-     * 
-     * @param style a bitwise combination of SWT.NORMAL, SWT.ITALIC and SWT.BOLD
-     * @return a new FontDescriptor with the given additional style bits
-     * @since 3.3
-     */
-    public final FontDescriptor withStyle(int style) {
-    	FontData[] data = getFontData();
-    	
-    	for (int i = 0; i < data.length; i++) {
-			FontData next = data[i];
-			
-			next.setStyle(next.getStyle() | style);
-		}
-    	
-    	// Optimization: avoid allocating extra instances by returning the reciever if
-    	// if it is exactly the same as the result
-    	FontDescriptor result = new ArrayFontDescriptor(data);
-    	if (result.equals(this)) {
-    		return this;
-    	}
-    	
-    	return result;    	
-    }
-    
-    /**
-     * <p>Returns a new FontDescriptor that is equivalent to the reciever, but
-     * has the given height.</p>
-     * 
-     * <p>Does not modify the reciever.</p>
-     * 
-     * @param height a height, in points
-     * @return a new FontDescriptor with the height, in points
-     * @since 3.3
-     */
-    public final FontDescriptor setHeight(int height) {
-    	FontData[] data = getFontData();
-    	
-    	for (int i = 0; i < data.length; i++) {
-			FontData next = data[i];
-			
-			next.setHeight(height);
-		}
-    	
-    	// Optimization: avoid holding onto extra instances by returning the reciever if
-    	// if it is exactly the same as the result
-    	FontDescriptor result = new ArrayFontDescriptor(data);
-    	if (result.equals(this)) {
-    		return this;
-    	}
-    	
-    	return result;    	
-    }
-
-    /**
-     * <p>Returns a FontDescriptor that is equivalent to the reciever, but whose height
-     * is larger by the given number of points.</p>
-     * 
-     * <p>Does not modify the reciever.</p>
-     * 
-     * @param heightDelta a change in height, in points. Negative values will return smaller
-     * fonts. 
-     * @return a FontDescriptor whose height differs from the reciever by the given number
-     * of points. 
-     * @since 3.3
-     */
-    public final FontDescriptor increaseHeight(int heightDelta) {
-    	if (heightDelta == 0) {
-    		return this;
-    	}
-    	FontData[] data = getFontData();
-    	
-    	for (int i = 0; i < data.length; i++) {
-			FontData next = data[i];
-			
-			next.setHeight(next.getHeight() + heightDelta);
-		}
-    	
-    	return new ArrayFontDescriptor(data);    	
-    }
-    
-    /**
-     * Creates the Font described by this descriptor. 
-     * 
-     * @since 3.1 
-     *
-     * @param device device on which to allocate the font
-     * @return a newly allocated Font (never null)
-     * @throws DeviceResourceException if unable to allocate the Font
-     */
-    public abstract Font createFont(Device device) throws DeviceResourceException;
-    
-    /**
-     * Deallocates anything that was allocated by createFont, given a font
-     * that was allocated by an equal FontDescriptor.
-     * 
-     * @since 3.1 
-     *
-     * @param previouslyCreatedFont previously allocated font
-     */
-    public abstract void destroyFont(Font previouslyCreatedFont);
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#create(org.eclipse.swt.graphics.Device)
-     */
-    public final Object createResource(Device device) throws DeviceResourceException {
-        return createFont(device);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#destroy(java.lang.Object)
-     */
-    public final void destroyResource(Object previouslyCreatedObject) {
-        destroyFont((Font)previouslyCreatedObject);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontRegistry.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontRegistry.java
deleted file mode 100644
index c9714a9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/FontRegistry.java
+++ /dev/null
@@ -1,874 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A font registry maintains a mapping between symbolic font names 
- * and SWT fonts.
- * <p>
- * A font registry owns all of the font objects registered
- * with it, and automatically disposes of them when the SWT Display
- * that creates the fonts is disposed. Because of this, clients do 
- * not need to (indeed, must not attempt to) dispose of font 
- * objects themselves.
- * </p>
- * <p>
- * A special constructor is provided for populating a font registry
- * from a property files using the standard Java resource bundle mechanism.
- * </p>
- * <p>
- * Methods are provided for registering listeners that will be kept
- * apprised of changes to list of registered fonts.
- * </p>
- * <p>
- * Clients may instantiate this class (it was not designed to be subclassed).
- * </p>
- * 
- * Since 3.0 this class extends ResourceRegistry.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class FontRegistry extends ResourceRegistry {
-
-    /**
-     * FontRecord is a private helper class that holds onto a font
-     * and can be used to generate its bold and italic version. 
-     */
-    private class FontRecord {
-
-        Font baseFont;
-
-        Font boldFont;
-
-        Font italicFont;
-
-        FontData[] baseData;
-
-        /**
-         * Create a new instance of the receiver based on the 
-         * plain font and the data for it.
-         * @param plainFont The base looked up font.
-         * @param data The data used to look it up.
-         */
-        FontRecord(Font plainFont, FontData[] data) {
-            baseFont = plainFont;
-            baseData = data;
-        }
-
-        /**
-         * Dispose any of the fonts created for this record.
-         */
-        void dispose() {
-            baseFont.dispose();
-            if (boldFont != null) {
-				boldFont.dispose();
-			}
-            if (italicFont != null) {
-				italicFont.dispose();
-			}
-        }
-
-        /**
-         * Return the base Font.
-         * @return Font
-         */
-        public Font getBaseFont() {
-            return baseFont;
-        }
-
-        /**
-         * Return the bold Font. Create a bold version
-         * of the base font to get it.
-         * @return Font
-         */
-        public Font getBoldFont() {
-            if (boldFont != null) {
-				return boldFont;
-			}
-
-            FontData[] boldData = getModifiedFontData(SWT.BOLD);
-            boldFont = new Font(Display.getCurrent(), boldData);
-            return boldFont;
-        }
-
-        /**
-         * Get a version of the base font data with the specified 
-         * style.
-         * @param style the new style
-         * @return the font data with the style {@link FontData#FontData(String, int, int)}
-         * @see SWT#ITALIC
-         * @see SWT#NORMAL
-         * @see SWT#BOLD
-         * @todo Generated comment
-         */
-        private FontData[] getModifiedFontData(int style) {
-            FontData[] styleData = new FontData[baseData.length];
-            for (int i = 0; i < styleData.length; i++) {
-                FontData base = baseData[i];
-                styleData[i] = new FontData(base.getName(), base.getHeight(),
-                        base.getStyle() | style);
-            }
-
-            return styleData;
-        }
-
-        /**
-         * Return the italic Font. Create an italic version of the
-         * base font to get it.
-         * @return Font
-         */
-        public Font getItalicFont() {
-            if (italicFont != null) {
-				return italicFont;
-			}
-
-            FontData[] italicData = getModifiedFontData(SWT.ITALIC);
-            italicFont = new Font(Display.getCurrent(), italicData);
-            return italicFont;
-        }
-
-        /**
-         * Add any fonts that were allocated for this record to the
-         * stale fonts. Anything that matches the default font will
-         * be skipped.
-         * @param defaultFont The system default.
-         */
-        void addAllocatedFontsToStale(Font defaultFont) {
-            //Return all of the fonts allocated by the receiver.
-            //if any of them are the defaultFont then don't bother.
-            if (defaultFont != baseFont && baseFont != null) {
-				staleFonts.add(baseFont);
-			}
-            if (defaultFont != boldFont && boldFont != null) {
-				staleFonts.add(boldFont);
-			}
-            if (defaultFont != italicFont && italicFont != null) {
-				staleFonts.add(italicFont);
-			}
-        }
-    }
-
-    /**
-     * Table of known fonts, keyed by symbolic font name
-     * (key type: <code>String</code>, 
-     *  value type: <code>FontRecord</code>.
-     */
-    private Map stringToFontRecord = new HashMap(7);
-
-    /**
-     * Table of known font data, keyed by symbolic font name
-     * (key type: <code>String</code>, 
-     *  value type: <code>org.eclipse.swt.graphics.FontData[]</code>).
-     */
-    private Map stringToFontData = new HashMap(7);
-
-    /**
-     * Collection of Fonts that are now stale to be disposed
-     * when it is safe to do so (i.e. on shutdown).
-     * @see List
-     */
-    private List staleFonts = new ArrayList();
-
-    /**
-     * Runnable that cleans up the manager on disposal of the display.
-     */
-    protected Runnable displayRunnable = new Runnable() {
-        public void run() {
-            clearCaches();
-        }
-    };
-
-	private boolean displayDisposeHooked;
-
-	private final boolean cleanOnDisplayDisposal;
-
-    /**
-     * Creates an empty font registry.
-     * <p>
-     * There must be an SWT Display created in the current 
-     * thread before calling this method.
-     * </p>
-     */
-    public FontRegistry() {
-    	this(Display.getCurrent(), true);
-    }
-
-    /**
-     * Creates a font registry and initializes its content from
-     * a property file.
-     * <p>
-     * There must be an SWT Display created in the current 
-     * thread before calling this method.
-     * </p>
-     * <p>
-     * The OS name (retrieved using <code>System.getProperty("os.name")</code>)
-     * is converted to lowercase, purged of whitespace, and appended 
-     * as suffix (separated by an underscore <code>'_'</code>) to the given 
-     * location string to yield the base name of a resource bundle
-     * acceptable to <code>ResourceBundle.getBundle</code>.
-     * The standard Java resource bundle mechanism is then used to locate
-     * and open the appropriate properties file, taking into account
-     * locale specific variations.
-     * </p>
-     * <p>
-     * For example, on the Windows 2000 operating system the location string
-     * <code>"com.example.myapp.Fonts"</code> yields the base name 
-     * <code>"com.example.myapp.Fonts_windows2000"</code>. For the US English locale,
-     * this further elaborates to the resource bundle name
-     * <code>"com.example.myapp.Fonts_windows2000_en_us"</code>.
-     * </p>
-     * <p>
-     * If no appropriate OS-specific resource bundle is found, the
-     * process is repeated using the location as the base bundle name.
-     * </p>
-     * <p>
-     * The property file contains entries that look like this:
-     * <pre>
-     *	textfont.0=MS Sans Serif-regular-10
-     *	textfont.1=Times New Roman-regular-10
-     *	
-     *	titlefont.0=MS Sans Serif-regular-12
-     *	titlefont.1=Times New Roman-regular-12
-     * </pre>
-     * Each entry maps a symbolic font names (the font registry keys) with
-     * a "<code>.<it>n</it></code> suffix to standard font names
-     * on the right. The suffix indicated order of preference: 
-     * "<code>.0</code>" indicates the first choice,
-     * "<code>.1</code>" indicates the second choice, and so on.
-     * </p>
-     * The following example shows how to use the font registry:
-     * <pre>
-     *	FontRegistry registry = new FontRegistry("com.example.myapp.fonts");
-     *  Font font = registry.get("textfont");
-     *  control.setFont(font);
-     *  ...
-     * </pre>
-     *
-     * @param location the name of the resource bundle
-     * @param loader the ClassLoader to use to find the resource bundle
-     * @exception MissingResourceException if the resource bundle cannot be found
-     * @since 2.1
-     */
-    public FontRegistry(String location, ClassLoader loader)
-            throws MissingResourceException {
-        Display display = Display.getCurrent();
-        Assert.isNotNull(display);
-        // FIXE: need to respect loader
-        //readResourceBundle(location, loader);
-        readResourceBundle(location);
-
-        cleanOnDisplayDisposal = true;
-        hookDisplayDispose(display);
-    }
-
-    /**
-     * Load the FontRegistry using the ClassLoader from the PlatformUI
-     * plug-in
-     * <p>
-     * This method should only be called from the UI thread. If you are not on the UI
-     * thread then wrap the call with a
-     * <code>PlatformUI.getWorkbench().getDisplay().synchExec()</code> in order to
-     * guarantee the correct result. Failure to do this may result in an {@link
-     * SWTException} being thrown.
-     * </p>
-     * @param location the location to read the resource bundle from
-     * @throws MissingResourceException Thrown if a resource is missing
-     */
-    public FontRegistry(String location) throws MissingResourceException {
-        // FIXE:
-        //	this(location, WorkbenchPlugin.getDefault().getDescriptor().getPluginClassLoader());
-        this(location, null);
-    }
-
-    /**
-     * Read the resource bundle at location. Look for a file with the
-     * extension _os_ws first, then _os then just the name.
-     * @param location - String - the location of the file.
-     */
-
-    private void readResourceBundle(String location) {
-        String osname = System.getProperty("os.name").trim(); //$NON-NLS-1$
-        String wsname = Util.getWS();
-        osname = StringConverter.removeWhiteSpaces(osname).toLowerCase();
-        wsname = StringConverter.removeWhiteSpaces(wsname).toLowerCase();
-        String OSLocation = location;
-        String WSLocation = location;
-        ResourceBundle bundle = null;
-        if (osname != null) {
-            OSLocation = location + "_" + osname; //$NON-NLS-1$
-            if (wsname != null) {
-				WSLocation = OSLocation + "_" + wsname; //$NON-NLS-1$
-			}
-        }
-
-        try {
-            bundle = ResourceBundle.getBundle(WSLocation);
-            readResourceBundle(bundle, WSLocation);
-        } catch (MissingResourceException wsException) {
-            try {
-                bundle = ResourceBundle.getBundle(OSLocation);
-                readResourceBundle(bundle, WSLocation);
-            } catch (MissingResourceException osException) {
-                if (location != OSLocation) {
-                    bundle = ResourceBundle.getBundle(location);
-                    readResourceBundle(bundle, WSLocation);
-                } else {
-					throw osException;
-				}
-            }
-        }
-    }
-
-    /**
-     * Creates an empty font registry.
-     *
-     * @param display the Display
-     */
-    public FontRegistry(Display display) {
-        this(display, true);
-    }
-    
-    /**
-	 * Creates an empty font registry.
-	 * 
-	 * @param display
-	 *            the <code>Display</code>
-	 * @param cleanOnDisplayDisposal
-	 *            whether all fonts allocated by this <code>FontRegistry</code>
-	 *            should be disposed when the display is disposed
-	 * @since 3.1
-	 */
-	public FontRegistry(Display display, boolean cleanOnDisplayDisposal) {
-		Assert.isNotNull(display);
-		this.cleanOnDisplayDisposal = cleanOnDisplayDisposal;
-		if (cleanOnDisplayDisposal) {
-			hookDisplayDispose(display);
-		}
-	}
-
-    /**
-	 * Find the first valid fontData in the provided list. If none are valid
-	 * return the first one regardless. If the list is empty return null. Return
-	 * <code>null</code> if one cannot be found.
-	 * 
-     * @param fonts the font list
-     * @param display the display used 
-     * @return the font data of the like describe above
-	 * 
-	 * @deprecated use bestDataArray in order to support Motif multiple entry
-	 *             fonts.
-	 */
-    public FontData bestData(FontData[] fonts, Display display) {
-        for (int i = 0; i < fonts.length; i++) {
-            FontData fd = fonts[i];
-
-            if (fd == null) {
-				break;
-			}
-
-            FontData[] fixedFonts = display.getFontList(fd.getName(), false);
-            if (isFixedFont(fixedFonts, fd)) {
-                return fd;
-            }
-
-            FontData[] scalableFonts = display.getFontList(fd.getName(), true);
-            if (scalableFonts.length > 0) {
-                return fd;
-            }
-        }
-
-        //None of the provided datas are valid. Return the
-        //first one as it is at least the first choice.
-        if (fonts.length > 0) {
-			return fonts[0];
-		}
-        
-        //Nothing specified 
-        return null;
-    }
-
-    /**
-     * Find the first valid fontData in the provided list. 
-     * If none are valid return the first one regardless.
-     * If the list is empty return <code>null</code>.
-     * 
-     * @param fonts list of fonts
-     * @param display the display
-     * @return font data like described above
-     * @deprecated use filterData in order to preserve 
-     * multiple entry fonts on Motif
-     */
-    public FontData[] bestDataArray(FontData[] fonts, Display display) {
-
-        FontData bestData = bestData(fonts, display);
-        if (bestData == null) {
-			return null;
-		}
-        
-        FontData[] datas = new FontData[1];
-        datas[0] = bestData;
-        return datas;
-    }
-    
-    /**
-     * Removes from the list all fonts that do not exist in this system.  
-     * If none are valid, return the first irregardless.  If the list is 
-     * empty return <code>null</code>.
-     * 
-     * @param fonts the fonts to check
-     * @param display the display to check against
-     * @return the list of fonts that have been found on this system
-     * @since 3.1
-     */
-    public FontData [] filterData(FontData [] fonts, Display display) {
-    	ArrayList good = new ArrayList(fonts.length);
-    	for (int i = 0; i < fonts.length; i++) {
-            FontData fd = fonts[i];
-
-            if (fd == null) {
-				continue;
-			}
-
-            FontData[] fixedFonts = display.getFontList(fd.getName(), false);
-            if (isFixedFont(fixedFonts, fd)) {
-                good.add(fd);
-            }
-
-            FontData[] scalableFonts = display.getFontList(fd.getName(), true);
-            if (scalableFonts.length > 0) {
-                good.add(fd);
-            }
-        }
-
-    	
-        //None of the provided datas are valid. Return the
-        //first one as it is at least the first choice.
-        if (good.isEmpty() && fonts.length > 0) {
-        	good.add(fonts[0]);
-        }
-        else if (fonts.length == 0) {
-        	return null;
-        }
-        
-        return (FontData[]) good.toArray(new FontData[good.size()]);    	
-    }
-    
-
-    /**
-     * Creates a new font with the given font datas or <code>null</code>
-     * if there is no data.
-     * @return FontRecord for the new Font or <code>null</code>.
-     */
-    private FontRecord createFont(String symbolicName, FontData[] fonts) {
-        Display display = Display.getCurrent();
-        if (display == null) {
-        	return null;
-        }
-        if (cleanOnDisplayDisposal && !displayDisposeHooked) {
-        	hookDisplayDispose(display);
-        }
-
-        FontData[] validData = filterData(fonts, display);
-        if (validData.length == 0) {
-            //Nothing specified 
-            return null;
-        } 
-
-        //Do not fire the update from creation as it is not a property change
-        put(symbolicName, validData, false);
-        Font newFont = new Font(display, validData);
-        return new FontRecord(newFont, validData);
-    }
-
-    /**
-     * Calculates the default font and returns the result.
-     * This method creates a font that must be disposed.
-     */
-    Font calculateDefaultFont() {
-        Display current = Display.getCurrent();
-        if (current == null) // can't do much without Display
-        	SWT.error(SWT.ERROR_THREAD_INVALID_ACCESS);
-		return new Font(current, current.getSystemFont().getFontData());
-    }
-
-    /**
-     * Returns the default font data.  Creates it if necessary.
-     * <p>
-     * This method should only be called from the UI thread. If you are not on the UI
-     * thread then wrap the call with a
-     * <code>PlatformUI.getWorkbench().getDisplay().synchExec()</code> in order to
-     * guarantee the correct result. Failure to do this may result in an {@link
-     * SWTException} being thrown.
-     * </p>
-     * @return Font
-     */
-    public Font defaultFont() {
-        return defaultFontRecord().getBaseFont();
-    }
-
-    /**
-     * Returns the font descriptor for the font with the given symbolic
-     * font name. Returns the default font if there is no special value
-     * associated with that name
-     * 
-     * @param symbolicName symbolic font name
-     * @return the font descriptor (never null)
-     * 
-     * @since 3.3
-     */
-    public FontDescriptor getDescriptor(String symbolicName) {
-        Assert.isNotNull(symbolicName);
-        return FontDescriptor.createFrom(getFontData(symbolicName));
-    }
-    
-    
-    
-    /**
-     * Returns the default font record.
-     */
-    private FontRecord defaultFontRecord() {
-
-        FontRecord record = (FontRecord) stringToFontRecord
-                .get(JFaceResources.DEFAULT_FONT);
-        if (record == null) {
-            Font defaultFont = calculateDefaultFont();
-            record = createFont(JFaceResources.DEFAULT_FONT, defaultFont
-                    .getFontData());
-            defaultFont.dispose();
-            stringToFontRecord.put(JFaceResources.DEFAULT_FONT, record);
-        }
-        return record;
-    }
-
-    /**
-     * Returns the default font data.  Creates it if necessary.
-     */
-    private FontData[] defaultFontData() {
-        return defaultFontRecord().baseData;
-    }
-
-    /**
-     * Returns the font data associated with the given symbolic font name.
-     * Returns the default font data if there is no special value associated
-     * with that name.
-     *
-     * @param symbolicName symbolic font name
-     * @return the font
-     */
-    public FontData[] getFontData(String symbolicName) {
-
-        Assert.isNotNull(symbolicName);
-        Object result = stringToFontData.get(symbolicName);
-        if (result == null) {
-			return defaultFontData();
-		}
-
-        return (FontData[]) result;
-    }
-
-    /**
-     * Returns the font associated with the given symbolic font name.
-     * Returns the default font if there is no special value associated
-     * with that name.
-     * <p>
-     * This method should only be called from the UI thread. If you are not on the UI
-     * thread then wrap the call with a
-     * <code>PlatformUI.getWorkbench().getDisplay().synchExec()</code> in order to
-     * guarantee the correct result. Failure to do this may result in an {@link
-     * SWTException} being thrown.
-     * </p>
-     * @param symbolicName symbolic font name
-     * @return the font
-     */
-    public Font get(String symbolicName) {
-
-        return getFontRecord(symbolicName).getBaseFont();
-    }
-
-    /**
-     * Returns the bold font associated with the given symbolic font name.
-     * Returns the bolded default font if there is no special value associated
-     * with that name.
-     * <p>
-     * This method should only be called from the UI thread. If you are not on the UI
-     * thread then wrap the call with a
-     * <code>PlatformUI.getWorkbench().getDisplay().synchExec()</code> in order to
-     * guarantee the correct result. Failure to do this may result in an {@link
-     * SWTException} being thrown.
-     * </p>
-     * @param symbolicName symbolic font name
-     * @return the font
-     * @since 3.0
-     */
-    public Font getBold(String symbolicName) {
-
-        return getFontRecord(symbolicName).getBoldFont();
-    }
-
-    /**
-     * Returns the italic font associated with the given symbolic font name.
-     * Returns the italic default font if there is no special value associated
-     * with that name.
-     * <p>
-     * This method should only be called from the UI thread. If you are not on the UI
-     * thread then wrap the call with a
-     * <code>PlatformUI.getWorkbench().getDisplay().synchExec()</code> in order to
-     * guarantee the correct result. Failure to do this may result in an {@link
-     * SWTException} being thrown.
-     * </p>
-     * @param symbolicName symbolic font name
-     * @return the font
-     * @since 3.0
-     */
-    public Font getItalic(String symbolicName) {
-
-        return getFontRecord(symbolicName).getItalicFont();
-    }
-
-    /**
-     * Return the font record for the key.
-     * @param symbolicName The key for the record.
-     * @return FontRecord
-     */
-    private FontRecord getFontRecord(String symbolicName) {
-        Assert.isNotNull(symbolicName);
-        Object result = stringToFontRecord.get(symbolicName);
-        if (result != null) {
-			return (FontRecord) result;
-		}
-
-        result = stringToFontData.get(symbolicName);
-
-        FontRecord fontRecord;
-
-        if (result == null) {
-			fontRecord = defaultFontRecord();
-		} else {
-			fontRecord = createFont(symbolicName, (FontData[]) result);
-		}
-
-        if (fontRecord == null) {
-			fontRecord = defaultFontRecord();
-			if (Display.getCurrent() == null) { // log error but don't throw an exception to preserve existing functionality
-				String msg = "Unable to create font \"" + symbolicName + "\" in a non-UI thread. Using default font instead."; //$NON-NLS-1$ //$NON-NLS-2$
-				Policy.logException(new SWTException(msg));
-				return fontRecord; // don't add it to the cache; if later asked from UI thread, a proper font will be created
-			}
-		}
-
-        stringToFontRecord.put(symbolicName, fontRecord);
-        return fontRecord;
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceRegistry#getKeySet()
-     */
-    public Set getKeySet() {
-        return Collections.unmodifiableSet(stringToFontData.keySet());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceRegistry#hasValueFor(java.lang.String)
-     */
-    public boolean hasValueFor(String fontKey) {
-        return stringToFontData.containsKey(fontKey);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceRegistry#clearCaches()
-     */
-    protected void clearCaches() {
-
-        Iterator iterator = stringToFontRecord.values().iterator();
-        while (iterator.hasNext()) {
-            Object next = iterator.next();
-            ((FontRecord) next).dispose();
-        }
-
-        disposeFonts(staleFonts.iterator());
-        stringToFontRecord.clear();
-        staleFonts.clear();
-        
-        displayDisposeHooked = false;
-    }
-
-    /**
-     * Dispose of all of the fonts in this iterator.
-     * @param iterator over Collection of Font
-     */
-    private void disposeFonts(Iterator iterator) {
-        while (iterator.hasNext()) {
-            Object next = iterator.next();
-            ((Font) next).dispose();
-        }
-    }
-
-    /**
-     * Hook a dispose listener on the SWT display.
-     */
-    private void hookDisplayDispose(Display display) {
-    	displayDisposeHooked = true;
-    	display.disposeExec(displayRunnable);
-    }
-
-    /**
-     * Checks whether the given font is in the list of fixed fonts.
-     */
-    private boolean isFixedFont(FontData[] fixedFonts, FontData fd) {
-        // Can't use FontData.equals() since some values aren't
-        // set if a fontdata isn't used.
-        int height = fd.getHeight();
-        String name = fd.getName();
-        for (int i = 0; i < fixedFonts.length; i++) {
-            FontData fixed = fixedFonts[i];
-            if (fixed.getHeight() == height && fixed.getName().equals(name)) {
-				return true;
-			}
-        }
-        return false;
-    }
-
-    /**
-     * Converts a String into a FontData object.
-     */
-    private FontData makeFontData(String value) throws MissingResourceException {
-        try {
-            return StringConverter.asFontData(value.trim());
-        } catch (DataFormatException e) {
-            throw new MissingResourceException(
-                    "Wrong font data format. Value is: \"" + value + "\"", getClass().getName(), value); //$NON-NLS-2$//$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Adds (or replaces) a font to this font registry under the given
-     * symbolic name.
-     * <p>
-     * A property change event is reported whenever the mapping from
-     * a symbolic name to a font changes. The source of the event is
-     * this registry; the property name is the symbolic font name.
-     * </p>
-     *
-     * @param symbolicName the symbolic font name
-     * @param fontData an Array of FontData
-     */
-    public void put(String symbolicName, FontData[] fontData) {
-        put(symbolicName, fontData, true);
-    }
-
-    /**
-     * Adds (or replaces) a font to this font registry under the given
-     * symbolic name.
-     * <p>
-     * A property change event is reported whenever the mapping from
-     * a symbolic name to a font changes. The source of the event is
-     * this registry; the property name is the symbolic font name.
-     * </p>
-     *
-     * @param symbolicName the symbolic font name
-     * @param fontData an Array of FontData
-     * @param update - fire a font mapping changed if true. False
-     * 	if this method is called from the get method as no setting
-     *  has changed.
-     */
-    private void put(String symbolicName, FontData[] fontData, boolean update) {
-
-        Assert.isNotNull(symbolicName);
-        Assert.isNotNull(fontData);
-
-        FontData[] existing = (FontData[]) stringToFontData.get(symbolicName);
-        if (Arrays.equals(existing, fontData)) {
-			return;
-		}
-
-        FontRecord oldFont = (FontRecord) stringToFontRecord
-                .remove(symbolicName);
-        stringToFontData.put(symbolicName, fontData);
-        if (update) {
-			fireMappingChanged(symbolicName, existing, fontData);
-		}
-
-        if (oldFont != null) {
-			oldFont.addAllocatedFontsToStale(defaultFontRecord().getBaseFont());
-		}
-    }
-
-    /**
-     * Reads the resource bundle.  This puts FontData[] objects
-     * in the mapping table.  These will lazily be turned into
-     * real Font objects when requested.
-     */
-    private void readResourceBundle(ResourceBundle bundle, String bundleName)
-            throws MissingResourceException {
-        Enumeration keys = bundle.getKeys();
-        while (keys.hasMoreElements()) {
-            String key = (String) keys.nextElement();
-            int pos = key.lastIndexOf('.');
-            if (pos == -1) {
-                stringToFontData.put(key, new FontData[] { makeFontData(bundle
-                        .getString(key)) });
-            } else {
-                String name = key.substring(0, pos);
-                int i = 0;
-                try {
-                    i = Integer.parseInt(key.substring(pos + 1));
-                } catch (NumberFormatException e) {
-                    //Panic the file can not be parsed.
-                    throw new MissingResourceException(
-                            "Wrong key format ", bundleName, key); //$NON-NLS-1$
-                }
-                FontData[] elements = (FontData[]) stringToFontData.get(name);
-                if (elements == null) {
-                    elements = new FontData[8];
-                    stringToFontData.put(name, elements);
-                }
-                if (i > elements.length) {
-                    FontData[] na = new FontData[i + 8];
-                    System.arraycopy(elements, 0, na, 0, elements.length);
-                    elements = na;
-                    stringToFontData.put(name, elements);
-                }
-                elements[i] = makeFontData(bundle.getString(key));
-            }
-        }
-    }
-
-	/**
-	 * Returns the font descriptor for the JFace default font.
-	 * 
-	 * @return the font descriptor for the JFace default font
-     * @since 3.3
-	 */
-	public FontDescriptor defaultFontDescriptor() {
-		return FontDescriptor.createFrom(defaultFontData());
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDataImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDataImageDescriptor.java
deleted file mode 100644
index 45d1b93..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDataImageDescriptor.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- * @since 3.1
- */
-class ImageDataImageDescriptor extends ImageDescriptor {
-
-    private ImageData data;
-    
-    /**
-     * Original image being described, or null if this image is described
-     * completely using its ImageData
-     */
-    private Image originalImage = null;
-    
-    /**
-     * Creates an image descriptor, given an image and the device it was created on.
-     * 
-     * @param originalImage
-     */
-    ImageDataImageDescriptor(Image originalImage) {
-        this(originalImage.getImageData());
-        this.originalImage = originalImage;
-    }
-    
-    /**
-     * Creates an image descriptor, given some image data.
-     * 
-     * @param data describing the image
-     */
-
-    ImageDataImageDescriptor(ImageData data) {
-        this.data = data;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#create(org.eclipse.swt.graphics.Device)
-     */
-    public Object createResource(Device device) throws DeviceResourceException {
-
-        // If this descriptor is an existing font, then we can return the original font
-        // if this is the same device.
-        if (originalImage != null) {
-            // If we're allocating on the same device as the original font, return the original.
-            if (originalImage.getDevice() == device) {
-                return originalImage;
-            }
-        }
-        
-        return super.createResource(device);
-    }
-	
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#destroy(java.lang.Object)
-     */
-    public void destroyResource(Object previouslyCreatedObject) {
-        if (previouslyCreatedObject == originalImage) {
-            return;
-        }
-        
-        super.destroyResource(previouslyCreatedObject);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ImageDescriptor#getImageData()
-     */
-    public ImageData getImageData() {
-        return data;
-    }
-    
-    /* (non-Javadoc)
-     * @see Object#hashCode
-     */
-    public int hashCode() {
-    	 if (originalImage != null) {
-             return System.identityHashCode(originalImage);
-         }
-         return data.hashCode();
-    }
-
-    /* (non-Javadoc)
-     * @see Object#equals
-     */
-    public boolean equals(Object obj) {
-        if (!(obj instanceof ImageDataImageDescriptor)) {
-			return false;
-		} 
-        
-        ImageDataImageDescriptor imgWrap = (ImageDataImageDescriptor) obj;
-        
-        //Intentionally using == instead of equals() as Image.hashCode() changes
-        //when the image is disposed and so leaks may occur with equals()
-       
-        if (originalImage != null) {
-            return imgWrap.originalImage == originalImage;
-        }
-        
-        return (imgWrap.originalImage == null && data.equals(imgWrap.data));
-    }
-    
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java
deleted file mode 100644
index f0f8011..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageDescriptor.java
+++ /dev/null
@@ -1,329 +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.jface.resource;
-
-import java.net.URL;
-
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * An image descriptor is an object that knows how to create
- * an SWT image.  It does not hold onto images or cache them,
- * but rather just creates them on demand.  An image descriptor
- * is intended to be a lightweight representation of an image
- * that can be manipulated even when no SWT display exists.
- * <p>
- * This package defines a concrete image descriptor implementation
- * which reads an image from a file (<code>FileImageDescriptor</code>).
- * It also provides abstract framework classes (this one and
- * <code>CompositeImageDescriptor</code>) which may be subclassed to define
- * news kinds of image descriptors.
- * </p>
- * <p>
- * Using this abstract class involves defining a concrete subclass
- * and providing an implementation for the <code>getImageData</code>
- * method.
- * </p>
- * <p>
- * There are two ways to get an Image from an ImageDescriptor. The method
- * createImage will always return a new Image which must be disposed by
- * the caller. Alternatively, createResource() returns a shared
- * Image. When the caller is done with an image obtained from createResource,
- * they must call destroyResource() rather than disposing the Image directly.
- * The result of createResource() can be safely cast to an Image. 
- * </p>
- *
- * @see org.eclipse.swt.graphics.Image
- */
-public abstract class ImageDescriptor extends DeviceResourceDescriptor {
-
-    /** 
-     * A small red square used to warn that an image cannot be created.
-     * <p>
-     */
-    protected static final ImageData DEFAULT_IMAGE_DATA = new ImageData(6, 6,
-            1, new PaletteData(new RGB[] { new RGB(255, 0, 0) }));
-
-    /**
-     * Constructs an image descriptor.
-     */
-    protected ImageDescriptor() {
-        // do nothing
-    }
-
-    /**
-     * Creates and returns a new image descriptor from a file.
-     * Convenience method for
-     * <code>new FileImageDescriptor(location,filename)</code>.
-     *
-     * @param location the class whose resource directory contain the file
-     * @param filename the file name
-     * @return a new image descriptor
-     */
-    public static ImageDescriptor createFromFile(Class location, String filename) {
-        return new FileImageDescriptor(location, filename);
-    }
-    
-    /**
-     * Creates and returns a new image descriptor given ImageData
-     * describing the image.
-     * 
-     * @since 3.1 
-     *
-     * @param data contents of the image
-     * @return newly created image descriptor
-     */
-    public static ImageDescriptor createFromImageData(ImageData data) {
-        return new ImageDataImageDescriptor(data);
-    }
-    
-    /**
-     * Creates and returns a new image descriptor for the given image. Note 
-     * that disposing the original Image will cause the descriptor to become invalid.
-     * 
-     * @since 3.1 
-     *
-     * @param img image to create
-     * @return a newly created image descriptor
-     */
-    public static ImageDescriptor createFromImage(Image img) {
-        return new ImageDataImageDescriptor(img);
-    }
-    
-    /**
-     * Creates an ImageDescriptor based on the given original descriptor, but with additional
-     * SWT flags.
-     *  
-     * <p>
-     * Note that this sort of ImageDescriptor is slower and consumes more resources than
-     * a regular image descriptor. It will also never generate results that look as nice as
-     * a hand-drawn image. Clients are encouraged to supply their own disabled/grayed/etc. images
-     * rather than using a default image and transforming it.
-     * </p>
-     * 
-     * @param originalImage image to transform
-     * @param swtFlags any flag that can be passed to the flags argument of Image#Image(Device, Image, int)
-     * @return an ImageDescriptor that creates new images by transforming the given image descriptor
-     * 
-     * @see Image#Image(Device, Image, int) 
-     * @since 3.1 
-     *
-     */
-    public static ImageDescriptor createWithFlags(ImageDescriptor originalImage, int swtFlags) {
-        return new DerivedImageDescriptor(originalImage, swtFlags);
-    }
-
-    /**
-     * Creates and returns a new image descriptor for the given image. This
-     * method takes the Device that created the Image as an argument, allowing
-     * the original Image to be reused if the descriptor is asked for another
-     * Image on the same device. Note that disposing the original Image will 
-     * cause the descriptor to become invalid.
-     * 
-     * @deprecated use {@link ImageDescriptor#createFromImage(Image)}
-     * @since 3.1 
-     *
-     * @param img image to create
-     * @param theDevice the device that was used to create the Image
-     * @return a newly created image descriptor
-     */
-    public static ImageDescriptor createFromImage(Image img, Device theDevice) {
-        return new ImageDataImageDescriptor(img);
-    }
-    
-    /**
-     * Creates and returns a new image descriptor from a URL.
-     *
-     * @param url The URL of the image file.
-     * @return a new image descriptor
-     */
-    public static ImageDescriptor createFromURL(URL url) {
-        if (url == null) {
-            return getMissingImageDescriptor();
-        }
-        return new URLImageDescriptor(url);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#createResource(org.eclipse.swt.graphics.Device)
-     */
-    public Object createResource(Device device) throws DeviceResourceException {
-        Image result = createImage(false, device);
-        if (result == null) {
-            throw new DeviceResourceException(this);
-        }
-        return result;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.DeviceResourceDescriptor#destroyResource(Object)
-     */
-    public void destroyResource(Object previouslyCreatedObject) {
-        ((Image)previouslyCreatedObject).dispose();
-    }
-    
-    /**
-	 * Creates and returns a new SWT image for this image descriptor. Note that
-	 * each call returns a new SWT image object. The returned image must be
-	 * explicitly disposed using the image's dispose call. The image will not be
-	 * automatically garbage collected. A default image is returned in the event
-	 * of an error.
-     * 
-     * <p>
-     * Note: this method differs from createResource(Device) in that the returned image
-     * must be disposed directly, whereas an image obtained from createResource(...)
-     * must be disposed by calling destroyResource(...). It is not possible to 
-     * mix-and-match. If you obtained the Image from this method, you must not dispose
-     * it by calling destroyResource. Clients are encouraged to use 
-     * create/destroyResource and downcast the result to Image rather than using 
-     * createImage.
-     * </p>
-     * 
-	 * <p>
-	 * Note: it is still possible for this method to return <code>null</code>
-	 * in extreme cases, for example if SWT runs out of image handles.
-	 * </p>
-	 * 
-	 * @return a new image or <code>null</code> if the image could not be
-	 *         created
-	 */
-    public Image createImage() {
-        return createImage(true);
-    }
-
-    /**
-	 * Creates and returns a new SWT image for this image descriptor. The
-	 * returned image must be explicitly disposed using the image's dispose
-	 * call. The image will not be automatically garbage collected. In the event
-	 * of an error, a default image is returned if
-	 * <code>returnMissingImageOnError</code> is true, otherwise
-	 * <code>null</code> is returned.
-	 * <p>
-	 * Note: Even if <code>returnMissingImageOnError</code> is true, it is
-	 * still possible for this method to return <code>null</code> in extreme
-	 * cases, for example if SWT runs out of image handles.
-	 * </p>
-	 * 
-	 * @param returnMissingImageOnError
-	 *            flag that determines if a default image is returned on error
-	 * @return a new image or <code>null</code> if the image could not be
-	 *         created
-	 */
-    public Image createImage(boolean returnMissingImageOnError) {
-        return createImage(returnMissingImageOnError, Display.getCurrent());
-    }
-
-    /**
-	 * Creates and returns a new SWT image for this image descriptor. The
-	 * returned image must be explicitly disposed using the image's dispose
-	 * call. The image will not be automatically garbage collected. A default
-	 * image is returned in the event of an error.
-	 * <p>
-	 * Note: it is still possible for this method to return <code>null</code>
-	 * in extreme cases, for example if SWT runs out of image handles.
-	 * </p>
-	 * 
-	 * @param device
-	 *            the device on which to create the image
-	 * @return a new image or <code>null</code> if the image could not be
-	 *         created
-	 * @since 2.0
-	 */
-    public Image createImage(Device device) {
-        return createImage(true, device);
-    }
-
-    /**
-	 * Creates and returns a new SWT image for this image descriptor. The
-	 * returned image must be explicitly disposed using the image's dispose
-	 * call. The image will not be automatically garbage collected. In the even
-	 * of an error, a default image is returned if
-	 * <code>returnMissingImageOnError</code> is true, otherwise
-	 * <code>null</code> is returned.
-	 * <p>
-	 * Note: Even if <code>returnMissingImageOnError</code> is true, it is
-	 * still possible for this method to return <code>null</code> in extreme
-	 * cases, for example if SWT runs out of image handles.
-	 * </p>
-	 * 
-	 * @param returnMissingImageOnError
-	 *            flag that determines if a default image is returned on error
-	 * @param device
-	 *            the device on which to create the image
-	 * @return a new image or <code>null</code> if the image could not be
-	 *         created
-	 * @since 2.0
-	 */
-    public Image createImage(boolean returnMissingImageOnError, Device device) {
-
-        ImageData data = getImageData();
-        if (data == null) {
-            if (!returnMissingImageOnError) {
-                return null;
-            }
-            data = DEFAULT_IMAGE_DATA;
-        }
-
-        /*
-         * Try to create the supplied image. If there is an SWT Exception try and create
-         * the default image if that was requested. Return null if this fails.
-         */
-
-        try {
-            if (data.transparentPixel >= 0) {
-                ImageData maskData = data.getTransparencyMask();
-                return new Image(device, data, maskData);
-            }
-            return new Image(device, data);
-        } catch (SWTException exception) {
-            if (returnMissingImageOnError) {
-                try {
-                    return new Image(device, DEFAULT_IMAGE_DATA);
-                } catch (SWTException nextException) {
-                    return null;
-                }
-            }
-            return null;
-        }
-    }
-
-    /**
-     * Creates and returns a new SWT <code>ImageData</code> object
-     * for this image descriptor.
-     * Note that each call returns a new SWT image data object.
-     * <p>
-     * This framework method is declared public so that it is
-     * possible to request an image descriptor's image data without
-     * creating an SWT image object.
-     * </p>
-     * <p>
-     * Returns <code>null</code> if the image data could not be created.
-     * </p>
-     *
-     * @return a new image data or <code>null</code>
-     */
-    public abstract ImageData getImageData();
-
-    /**
-     * Returns the shared image descriptor for a missing image.
-     *
-     * @return the missing image descriptor
-     */
-    public static ImageDescriptor getMissingImageDescriptor() {
-        return MissingImageDescriptor.getInstance();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageRegistry.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageRegistry.java
deleted file mode 100644
index 54b0c02..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageRegistry.java
+++ /dev/null
@@ -1,350 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Steven Ketcham (sketcham@dsicdi.com) - Bug 42451
- *     [Dialogs] ImageRegistry throws null pointer exception in
- *     application with multiple Display's
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * An image registry maintains a mapping between symbolic image names 
- * and SWT image objects or special image descriptor objects which
- * defer the creation of SWT image objects until they are needed.
- * <p>
- * An image registry owns all of the image objects registered
- * with it, and automatically disposes of them when the SWT Display
- * that creates the images is disposed. Because of this, clients do not 
- * need to (indeed, must not attempt to) dispose of these images themselves.
- * </p>
- * <p>
- * Clients may instantiate this class (it was not designed to be subclassed).
- * </p>
- * <p>
- * Unlike the FontRegistry, it is an error to replace images. As a result
- * there are no events that fire when values are changed in the registry
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ImageRegistry {
-    /**
-     * display used when getting images
-     */
-    private Display display;
-
-    private ResourceManager manager;
-
-    private Map table;
-    
-    private Runnable disposeRunnable = new Runnable() {
-        public void run() {
-            dispose();
-        }
-    };
-    
-    /**
-     * Contains the data for an entry in the registry. 
-     */
-    private static class Entry {
-    	/** the image */
-        protected Image image;
-
-        /** the descriptor */
-        protected ImageDescriptor descriptor;
-    }
-    
-    private static class OriginalImageDescriptor extends ImageDescriptor {
-        private Image original;
-        private int refCount = 0;
-        private Device originalDisplay;
-        
-        /**
-         * @param original the original image
-         * @param originalDisplay the device the image is part of
-         */
-        public OriginalImageDescriptor(Image original, Device originalDisplay) {
-            this.original = original;
-            this.originalDisplay = originalDisplay;
-        }
-        
-        public Object createResource(Device device) throws DeviceResourceException {
-            if (device == originalDisplay) {
-                refCount++;
-                return original;
-            }
-            return super.createResource(device);
-        }
-        
-        public void destroyResource(Object toDispose) {
-            if (original == toDispose) {
-                refCount--;
-                if (refCount == 0) {
-                    original.dispose();
-                    original = null;
-                }
-            } else {
-                super.destroyResource(toDispose);
-            }
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.resource.ImageDescriptor#getImageData()
-         */
-        public ImageData getImageData() {
-            return original.getImageData();
-        }
-    }
-        
-    /**
-     * Creates an empty image registry.
-     * <p>
-     * There must be an SWT Display created in the current 
-     * thread before calling this method.
-     * </p>
-     */
-    public ImageRegistry() {
-        this(Display.getCurrent());
-    }
-
-    /**
-     * Creates an empty image registry using the given resource manager to allocate images.
-     * 
-     * @param manager the resource manager used to allocate images
-     * 
-     * @since 3.1
-     */
-    public ImageRegistry(ResourceManager manager) {
-        Assert.isNotNull(manager);
-        Device dev = manager.getDevice();
-        if (dev instanceof Display) {
-            this.display = (Display)dev;
-        }
-        this.manager = manager;
-        manager.disposeExec(disposeRunnable);
-    }
-    
-    /**
-     * Creates an empty image registry.
-     * 
-     * @param display this <code>Display</code> must not be 
-     *        <code>null</code> and must not be disposed in order
-     *        to use this registry
-     */
-    public ImageRegistry(Display display) {
-        this(JFaceResources.getResources(display));
-    }
-    
-    /**
-     * Returns the image associated with the given key in this registry, 
-     * or <code>null</code> if none.
-     * 
-     * @param key the key
-     * @return the image, or <code>null</code> if none
-     */
-    public Image get(String key) {
-
-        // can be null
-        if (key == null) {
-            return null;
-        }
-        
-        if (display != null) {
-            /**
-             * NOTE, for backwards compatibility the following images are supported
-             * here, they should never be disposed, hence we explicitly return them 
-             * rather then registering images that SWT will dispose.  
-             * 
-             * Applications should go direclty to SWT for these icons.
-             * 
-             * @see Display.getSystemIcon(int ID)
-             */
-            int swtKey = -1;
-            if (key.equals(Dialog.DLG_IMG_INFO)) {
-                swtKey = SWT.ICON_INFORMATION;
-            }
-            if (key.equals(Dialog.DLG_IMG_QUESTION)) {
-                swtKey = SWT.ICON_QUESTION;
-            }
-            if (key.equals(Dialog.DLG_IMG_WARNING)) {
-                swtKey = SWT.ICON_WARNING;
-            }
-            if (key.equals(Dialog.DLG_IMG_ERROR)) {
-                swtKey = SWT.ICON_ERROR;
-            }
-            // if we actually just want to return an SWT image do so without
-            // looking in the registry
-            if (swtKey != -1) {
-                final Image[] image = new Image[1];
-                final int id = swtKey;
-                display.syncExec(new Runnable() {
-                    public void run() {
-                        image[0] = display.getSystemImage(id);
-                    }
-                });
-                return image[0];
-            }
-        }
-
-        Entry entry = getEntry(key);
-        if (entry == null) {
-            return null;
-        }
-        
-        if (entry.image == null) {
-            entry.image = manager.createImageWithDefault(entry.descriptor);
-        }
-        
-        return entry.image;
-    }
-
-    /**
-     * Returns the descriptor associated with the given key in this registry, 
-     * or <code>null</code> if none.
-     *
-     * @param key the key
-     * @return the descriptor, or <code>null</code> if none
-     * @since 2.1
-     */
-    public ImageDescriptor getDescriptor(String key) {
-        Entry entry = getEntry(key);
-        if (entry == null) {
-            return null;
-        }
-        
-        return entry.descriptor;
-    }
-
-    /**
-     * Adds (or replaces) an image descriptor to this registry. The first time
-     * this new entry is retrieved, the image descriptor's image will be computed 
-     * (via </code>ImageDescriptor.createImage</code>) and remembered. 
-     * This method replaces an existing image descriptor associated with the 
-     * given key, but fails if there is a real image associated with it.
-     *
-     * @param key the key
-     * @param descriptor the ImageDescriptor
-     * @exception IllegalArgumentException if the key already exists
-     */
-    public void put(String key, ImageDescriptor descriptor) {
-        Entry entry = getEntry(key);
-        if (entry == null) {
-            entry = new Entry();
-            getTable().put(key, entry);
-        }
-        
-        if (entry.image != null) {
-            throw new IllegalArgumentException(
-                    "ImageRegistry key already in use: " + key); //$NON-NLS-1$            
-        }
-        
-        entry.descriptor = descriptor;
-    }
-
-    /**
-     * Adds an image to this registry.  This method fails if there
-     * is already an image or descriptor for the given key.
-     * <p>
-     * Note that an image registry owns all of the image objects registered
-     * with it, and automatically disposes of them when the SWT Display is disposed. 
-     * Because of this, clients must not register an image object
-     * that is managed by another object.
-     * </p>
-     *
-     * @param key the key
-     * @param image the image, should not be <code>null</code>
-     * @exception IllegalArgumentException if the key already exists
-     */
-    public void put(String key, Image image) {
-        Entry entry = getEntry(key);
-        
-        if (entry == null) {
-            entry = new Entry();
-            putEntry(key, entry);
-        }
-        
-        if (entry.image != null || entry.descriptor != null) {
-            throw new IllegalArgumentException(
-                    "ImageRegistry key already in use: " + key); //$NON-NLS-1$            
-        }
-        
-        // Check for a null image here, otherwise the problem won't appear
-        // until dispose.
-        // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=130315
-        Assert.isNotNull(image, "Cannot register a null image."); //$NON-NLS-1$
-        entry.image = image;
-        entry.descriptor = new OriginalImageDescriptor(image, manager.getDevice());
-        
-        try {
-            manager.create(entry.descriptor);
-        } catch (DeviceResourceException e) {            
-        }
-    }
-
-    /**
-     * Removes an image from this registry.  
-     * If an SWT image was allocated, it is disposed.
-     * This method has no effect if there is no image or descriptor for the given key.
-     * @param key the key
-     */
-    public void remove(String key) {
-        ImageDescriptor descriptor = getDescriptor(key);
-        if (descriptor != null) {
-            manager.destroy(descriptor);
-            getTable().remove(key);
-        }
-    }
-
-    private Entry getEntry(String key) {
-        return (Entry) getTable().get(key);
-    }
-
-    private void putEntry(String key, Entry entry) {
-        getTable().put(key, entry);
-    }
-
-    private Map getTable() {
-        if (table == null) {
-            table = new HashMap(10);
-        }
-        return table;
-    }
-    
-    /**
-     * Disposes this image registry, disposing any images
-     * that were allocated for it, and clearing its entries.
-     * 
-     * @since 3.1
-     */
-    public void dispose() {
-        manager.cancelDisposeExec(disposeRunnable);
-        
-        if (table != null) {
-            for (Iterator i = table.values().iterator(); i.hasNext();) {
-                Entry entry = (Entry) i.next();
-                if (entry.image != null) {
-                    manager.destroyImage(entry.descriptor);
-                }
-            }
-            table = null;
-        }
-        display = null;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceColors.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceColors.java
deleted file mode 100644
index 95561ea..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceColors.java
+++ /dev/null
@@ -1,142 +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.jface.resource;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * JFaceColors is the class that stores references
- * to all of the colors used by JFace.
- */
-public class JFaceColors {
-
-    /**
-     * @param display the display the color is from
-     * @return the Color used for banner backgrounds
-     * @see SWT#COLOR_LIST_BACKGROUND
-     * @see Display#getSystemColor(int)
-     */
-    public static Color getBannerBackground(Display display) {
-        return display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-    }
-
-    /**
-     * @param display the display the color is from
-     * @return the Color used for banner foregrounds
-     * @see SWT#COLOR_LIST_FOREGROUND
-     * @see Display#getSystemColor(int)
-     */
-    public static Color getBannerForeground(Display display) {
-        return display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-    }
-
-    /**
-     * @param display the display the color is from
-     * @return the background Color for widgets that display errors.
-     * @see SWT#COLOR_WIDGET_BACKGROUND
-     * @see Display#getSystemColor(int)
-     */
-    public static Color getErrorBackground(Display display) {
-        return display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-    }
-
-    /**
-     * @param display the display the color is from
-     * @return the border Color for widgets that display errors.
-     * @see SWT#COLOR_WIDGET_DARK_SHADOW
-     * @see Display#getSystemColor(int)
-     */
-    public static Color getErrorBorder(Display display) {
-        return display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
-    }
-
-    /**
-     * @param display the display the color is from
-     * @return the default color to use for displaying errors.
-     * @see ColorRegistry#get(String)
-     * @see JFacePreferences#ERROR_COLOR
-     */
-    public static Color getErrorText(Display display) {
-        return JFaceResources.getColorRegistry().get(
-                JFacePreferences.ERROR_COLOR);
-    }
-
-    /**
-     * @param display the display the color is from
-     * @return the default color to use for displaying hyperlinks.
-     * @see ColorRegistry#get(String)
-     * @see JFacePreferences#HYPERLINK_COLOR
-     */
-    public static Color getHyperlinkText(Display display) {
-        return JFaceResources.getColorRegistry().get(
-                JFacePreferences.HYPERLINK_COLOR);
-    }
-
-    /**
-     * @param display the display the color is from
-     * @return the default color to use for displaying active hyperlinks.
-     * @see ColorRegistry#get(String)
-     * @see JFacePreferences#ACTIVE_HYPERLINK_COLOR
-     */
-    public static Color getActiveHyperlinkText(Display display) {
-        return JFaceResources.getColorRegistry().get(
-                JFacePreferences.ACTIVE_HYPERLINK_COLOR);
-    }
-
-    /**
-     * Clear out the cached color for name. This is generally
-     * done when the color preferences changed and any cached colors
-     * may be disposed. Users of the colors in this class should add a IPropertyChangeListener
-     * to detect when any of these colors change.
-     * @param colorName name of the color
-     * 
-     * @deprecated JFaceColors no longer maintains a cache of colors.  This job 
-     * is now handled by the ColorRegistry.
-     */
-    public static void clearColor(String colorName) {
-        //no-op
-    }
-
-    /**
-     * Dispose of all allocated colors. Called on workbench
-     * shutdown.
-     * 
-     * @deprecated JFaceColors no longer maintains a cache of colors.  This job 
-     * is now handled by the ColorRegistry.
-     */
-    public static void disposeColors() {
-        //no-op
-    }
-
-    /**
-     * Set the foreground and background colors of the
-     * control to the specified values. If the values are
-     * null than ignore them. 
-     * @param control the control the foreground and/or background color should be set
-     * 
-     * @param foreground Color the foreground color (maybe <code>null</code>)
-     * @param background Color the background color (maybe <code>null</code>)
-     */
-    public static void setColors(Control control, Color foreground,
-            Color background) {
-        if (foreground != null) {
-			control.setForeground(foreground);
-		}
-        if (background != null) {
-			control.setBackground(background);
-		}
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java
deleted file mode 100644
index 6428926..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/JFaceResources.java
+++ /dev/null
@@ -1,596 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.PopupDialog;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.internal.JFaceActivator;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.osgi.framework.Bundle;
-
-/**
- * Utility methods to access JFace-specific resources.
- * <p>
- * All methods declared on this class are static. This class cannot be
- * instantiated.
- * </p>
- * <p>
- * The following global state is also maintained by this class:
- * <ul>
- * <li>a font registry</li>
- * <li>a color registry</li>
- * <li>an image registry</li>
- * <li>a resource bundle</li>
- * </ul>
- * </p>
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class JFaceResources {
-
-	/**
-	 * The path to the icons in the resources.
-	 */
-	private final static String ICONS_PATH = "$nl$/icons/full/";//$NON-NLS-1$
-
-	/**
-	 * Map of Display onto DeviceResourceManager. Holds all the resources for
-	 * the associated display.
-	 */
-	private static final Map registries = new HashMap();
-
-	/**
-	 * The symbolic font name for the banner font (value
-	 * <code>"org.eclipse.jface.bannerfont"</code>).
-	 */
-	public static final String BANNER_FONT = "org.eclipse.jface.bannerfont"; //$NON-NLS-1$
-
-	/**
-	 * The JFace resource bundle; eagerly initialized.
-	 */
-	private static final ResourceBundle bundle = ResourceBundle
-			.getBundle("org.eclipse.jface.messages"); //$NON-NLS-1$
-
-	/**
-	 * The JFace color registry; <code>null</code> until lazily initialized or
-	 * explicitly set.
-	 */
-	private static ColorRegistry colorRegistry;
-
-	/**
-	 * The symbolic font name for the standard font (value
-	 * <code>"org.eclipse.jface.defaultfont"</code>).
-	 */
-	public static final String DEFAULT_FONT = "org.eclipse.jface.defaultfont"; //$NON-NLS-1$
-
-	/**
-	 * The symbolic font name for the dialog font (value
-	 * <code>"org.eclipse.jface.dialogfont"</code>).
-	 */
-	public static final String DIALOG_FONT = "org.eclipse.jface.dialogfont"; //$NON-NLS-1$
-
-	/**
-	 * The JFace font registry; <code>null</code> until lazily initialized or
-	 * explicitly set.
-	 */
-	private static FontRegistry fontRegistry = null;
-
-	/**
-	 * The symbolic font name for the header font (value
-	 * <code>"org.eclipse.jface.headerfont"</code>).
-	 */
-	public static final String HEADER_FONT = "org.eclipse.jface.headerfont"; //$NON-NLS-1$
-
-	/**
-	 * The JFace image registry; <code>null</code> until lazily initialized.
-	 */
-	private static ImageRegistry imageRegistry = null;
-
-	/**
-	 * The symbolic font name for the text font (value
-	 * <code>"org.eclipse.jface.textfont"</code>).
-	 */
-	public static final String TEXT_FONT = "org.eclipse.jface.textfont"; //$NON-NLS-1$
-
-	/**
-	 * The symbolic font name for the viewer font (value
-	 * <code>"org.eclipse.jface.viewerfont"</code>).
-	 * 
-	 * @deprecated This font is not in use
-	 */
-	public static final String VIEWER_FONT = "org.eclipse.jface.viewerfont"; //$NON-NLS-1$
-
-	/**
-	 * The symbolic font name for the window font (value
-	 * <code>"org.eclipse.jface.windowfont"</code>).
-	 * 
-	 * @deprecated This font is not in use
-	 */
-	public static final String WINDOW_FONT = "org.eclipse.jface.windowfont"; //$NON-NLS-1$
-
-	/**
-	 * Returns the formatted message for the given key in JFace's resource
-	 * bundle.
-	 * 
-	 * @param key
-	 *            the resource name
-	 * @param args
-	 *            the message arguments
-	 * @return the string
-	 */
-	public static String format(String key, Object[] args) {
-		return MessageFormat.format(getString(key), args);
-	}
-
-	/**
-	 * Returns the JFace's banner font. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(JFaceResources.BANNER_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 */
-	public static Font getBannerFont() {
-		return getFontRegistry().get(BANNER_FONT);
-	}
-
-	/**
-	 * Returns the resource bundle for JFace itself. The resouble bundle is
-	 * obtained from
-	 * <code>ResourceBundle.getBundle("org.eclipse.jface.jface_nls")</code>.
-	 * <p>
-	 * Note that several static convenience methods are also provided on this
-	 * class for directly accessing resources in this bundle.
-	 * </p>
-	 * 
-	 * @return the resource bundle
-	 */
-	public static ResourceBundle getBundle() {
-		return bundle;
-	}
-
-	/**
-	 * Returns the color registry for JFace itself.
-	 * <p>
-	 * 
-	 * @return the <code>ColorRegistry</code>.
-	 * @since 3.0
-	 */
-	public static ColorRegistry getColorRegistry() {
-		if (colorRegistry == null) {
-			colorRegistry = new ColorRegistry();
-			initializeDefaultColors();
-		}
-		return colorRegistry;
-	}
-
-	/**
-	 * Returns the global resource manager for the given display
-	 * 
-	 * @since 3.1
-	 * 
-	 * @param toQuery
-	 *            display to query
-	 * @return the global resource manager for the given display
-	 */
-	public static ResourceManager getResources(final Display toQuery) {
-		ResourceManager reg = (ResourceManager) registries.get(toQuery);
-
-		if (reg == null) {
-			final DeviceResourceManager mgr = new DeviceResourceManager(toQuery);
-			reg = mgr;
-			registries.put(toQuery, reg);
-			toQuery.disposeExec(new Runnable() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see java.lang.Runnable#run()
-				 */
-				public void run() {
-					mgr.dispose();
-					registries.remove(toQuery);
-				}
-			});
-		}
-
-		return reg;
-	}
-
-	/**
-	 * Returns the ResourceManager for the current display. May only be called
-	 * from a UI thread.
-	 * 
-	 * @since 3.1
-	 * 
-	 * @return the global ResourceManager for the current display
-	 */
-	public static ResourceManager getResources() {
-		return getResources(Display.getCurrent());
-	}
-
-	/**
-	 * Returns JFace's standard font. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 */
-	public static Font getDefaultFont() {
-		return getFontRegistry().defaultFont();
-	}
-
-	/**
-	 * Returns the descriptor for JFace's standard font. Convenience method
-	 * equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().getDescriptor(JFaceResources.DEFAULT_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 * @since 3.3
-	 */
-	public static FontDescriptor getDefaultFontDescriptor() {
-		return getFontRegistry().defaultFontDescriptor();
-	}
-
-	/**
-	 * Returns the JFace's dialog font. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(JFaceResources.DIALOG_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 */
-	public static Font getDialogFont() {
-		return getFontRegistry().get(DIALOG_FONT);
-	}
-
-	/**
-	 * Returns the descriptor for JFace's dialog font. Convenience method
-	 * equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().getDescriptor(JFaceResources.DIALOG_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 * @since 3.3
-	 */
-	public static FontDescriptor getDialogFontDescriptor() {
-		return getFontRegistry().getDescriptor(DIALOG_FONT);
-	}
-
-	/**
-	 * Returns the font in JFace's font registry with the given symbolic font
-	 * name. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(symbolicName)
-	 * </pre>
-	 * 
-	 * If an error occurs, return the default font.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic font name
-	 * @return the font
-	 */
-	public static Font getFont(String symbolicName) {
-		return getFontRegistry().get(symbolicName);
-	}
-
-	/**
-	 * Returns the font descriptor for in JFace's font registry with the given
-	 * symbolic name. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().getDescriptor(symbolicName)
-	 * </pre>
-	 * 
-	 * If an error occurs, return the default font.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic font name
-	 * @return the font descriptor (never null)
-	 * @since 3.3
-	 */
-	public static FontDescriptor getFontDescriptor(String symbolicName) {
-		return getFontRegistry().getDescriptor(symbolicName);
-	}
-
-	/**
-	 * Returns the font registry for JFace itself. If the value has not been
-	 * established by an earlier call to <code>setFontRegistry</code>, is it
-	 * initialized to
-	 * <code>new FontRegistry("org.eclipse.jface.resource.jfacefonts")</code>.
-	 * <p>
-	 * Note that several static convenience methods are also provided on this
-	 * class for directly accessing JFace's standard fonts.
-	 * </p>
-	 * 
-	 * @return the JFace font registry
-	 */
-	public static FontRegistry getFontRegistry() {
-		if (fontRegistry == null) {
-			fontRegistry = new FontRegistry(
-					"org.eclipse.jface.resource.jfacefonts"); //$NON-NLS-1$
-		}
-		return fontRegistry;
-	}
-
-	/**
-	 * Returns the JFace's header font. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(JFaceResources.HEADER_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 */
-	public static Font getHeaderFont() {
-		return getFontRegistry().get(HEADER_FONT);
-	}
-
-	/**
-	 * Returns the descriptor for JFace's header font. Convenience method
-	 * equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(JFaceResources.HEADER_FONT)
-	 * </pre>
-	 * 
-	 * @return the font descriptor (never null)
-	 * @since 3.3
-	 */
-	public static FontDescriptor getHeaderFontDescriptor() {
-		return getFontRegistry().getDescriptor(HEADER_FONT);
-	}
-
-	/**
-	 * Returns the image in JFace's image registry with the given key, or
-	 * <code>null</code> if none. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getImageRegistry().get(key)
-	 * </pre>
-	 * 
-	 * @param key
-	 *            the key
-	 * @return the image, or <code>null</code> if none
-	 */
-	public static Image getImage(String key) {
-		return getImageRegistry().get(key);
-	}
-
-	/**
-	 * Returns the image registry for JFace itself.
-	 * <p>
-	 * Note that the static convenience method <code>getImage</code> is also
-	 * provided on this class.
-	 * </p>
-	 * 
-	 * @return the JFace image registry
-	 */
-	public static ImageRegistry getImageRegistry() {
-		if (imageRegistry == null) {
-			imageRegistry = new ImageRegistry(
-					getResources(Display.getCurrent()));
-			initializeDefaultImages();
-		}
-		return imageRegistry;
-	}
-
-	/**
-	 * Initialize default images in JFace's image registry.
-	 * 
-	 */
-	private static void initializeDefaultImages() {
-
-		Object bundle = null;
-		try {
-			bundle = JFaceActivator.getBundle();
-		} catch (NoClassDefFoundError exception) {
-			// Test to see if OSGI is present
-		}
-		declareImage(bundle, Wizard.DEFAULT_IMAGE, ICONS_PATH + "page.gif", //$NON-NLS-1$
-				Wizard.class, "images/page.gif"); //$NON-NLS-1$
-
-		// register default images for dialogs
-		declareImage(bundle, Dialog.DLG_IMG_MESSAGE_INFO, ICONS_PATH
-				+ "message_info.gif", Dialog.class, "images/message_info.gif"); //$NON-NLS-1$ //$NON-NLS-2$
-		declareImage(bundle, Dialog.DLG_IMG_MESSAGE_WARNING, ICONS_PATH
-				+ "message_warning.gif", Dialog.class, //$NON-NLS-1$
-				"images/message_warning.gif"); //$NON-NLS-1$
-		declareImage(bundle, Dialog.DLG_IMG_MESSAGE_ERROR, ICONS_PATH
-				+ "message_error.gif", Dialog.class, "images/message_error.gif");//$NON-NLS-1$ //$NON-NLS-2$
-		declareImage(bundle, Dialog.DLG_IMG_HELP,
-				ICONS_PATH + "help.gif", Dialog.class, "images/help.gif");//$NON-NLS-1$ //$NON-NLS-2$
-		declareImage(
-				bundle,
-				TitleAreaDialog.DLG_IMG_TITLE_BANNER,
-				ICONS_PATH + "title_banner.png", TitleAreaDialog.class, "images/title_banner.gif");//$NON-NLS-1$ //$NON-NLS-2$
-		declareImage(
-				bundle,
-				PreferenceDialog.PREF_DLG_TITLE_IMG,
-				ICONS_PATH + "pref_dialog_title.gif", PreferenceDialog.class, "images/pref_dialog_title.gif");//$NON-NLS-1$ //$NON-NLS-2$
-		declareImage(bundle, PopupDialog.POPUP_IMG_MENU, ICONS_PATH
-				+ "popup_menu.gif", PopupDialog.class, "images/popup_menu.gif");//$NON-NLS-1$ //$NON-NLS-2$
-		declareImage(
-				bundle,
-				PopupDialog.POPUP_IMG_MENU_DISABLED,
-				ICONS_PATH + "popup_menu_disabled.gif", PopupDialog.class, "images/popup_menu_disabled.gif");//$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Declares a JFace image given the path of the image file (relative to the
-	 * JFace plug-in). This is a helper method that creates the image descriptor
-	 * and passes it to the main <code>declareImage</code> method.
-	 * 
-	 * @param bundle
-	 *            the {@link Bundle} or <code>null</code> of the Bundle cannot
-	 *            be found
-	 * @param key
-	 *            the symbolic name of the image
-	 * @param path
-	 *            the path of the image file relative to the base of the
-	 *            workbench plug-ins install directory
-	 * @param fallback
-	 *            the {@link Class} where the fallback implementation of the
-	 *            image is relative to
-	 * @param fallbackPath
-	 *            the path relative to the fallback {@link Class}
-	 * 
-	 */
-	private static final void declareImage(Object bundle, String key,
-			String path, Class fallback, String fallbackPath) {
-
-		ImageDescriptor descriptor = null;
-
-		if (bundle != null) {
-			URL url = FileLocator.find((Bundle) bundle, new Path(path), null);
-			if (url != null)
-				descriptor = ImageDescriptor.createFromURL(url);
-		}
-
-		// If we failed then load from the backup file
-		if (descriptor == null)
-			descriptor = ImageDescriptor.createFromFile(fallback, fallbackPath);
-
-		imageRegistry.put(key, descriptor);
-	}
-
-	/**
-	 * Returns the resource object with the given key in JFace's resource
-	 * bundle. If there isn't any value under the given key, the key is
-	 * returned.
-	 * 
-	 * @param key
-	 *            the resource name
-	 * @return the string
-	 */
-	public static String getString(String key) {
-		try {
-			return bundle.getString(key);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns a list of string values corresponding to the given list of keys.
-	 * The lookup is done with <code>getString</code>. The values are in the
-	 * same order as the keys.
-	 * 
-	 * @param keys
-	 *            a list of keys
-	 * @return a list of corresponding string values
-	 */
-	public static String[] getStrings(String[] keys) {
-		Assert.isNotNull(keys);
-		int length = keys.length;
-		String[] result = new String[length];
-		for (int i = 0; i < length; i++) {
-			result[i] = getString(keys[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns JFace's text font. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 */
-	public static Font getTextFont() {
-		return getFontRegistry().get(TEXT_FONT);
-	}
-
-	/**
-	 * Returns the descriptor for JFace's text font. Convenience method
-	 * equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().getDescriptor(JFaceResources.TEXT_FONT)
-	 * </pre>
-	 * 
-	 * @return the font descriptor (never null)
-	 * @since 3.3
-	 */
-	public static FontDescriptor getTextFontDescriptor() {
-		return getFontRegistry().getDescriptor(TEXT_FONT);
-	}
-
-	/**
-	 * Returns JFace's viewer font. Convenience method equivalent to
-	 * 
-	 * <pre>
-	 * JFaceResources.getFontRegistry().get(JFaceResources.VIEWER_FONT)
-	 * </pre>
-	 * 
-	 * @return the font
-	 * @deprecated This font is not in use
-	 */
-	public static Font getViewerFont() {
-		return getFontRegistry().get(VIEWER_FONT);
-	}
-
-	/**
-	 * Sets JFace's font registry to the given value. This method may only be
-	 * called once; the call must occur before
-	 * <code>JFaceResources.getFontRegistry</code> is invoked (either directly
-	 * or indirectly).
-	 * 
-	 * @param registry
-	 *            a font registry
-	 */
-	public static void setFontRegistry(FontRegistry registry) {
-		Assert.isTrue(fontRegistry == null,
-				"Font registry can only be set once."); //$NON-NLS-1$
-		fontRegistry = registry;
-	}
-
-	/*
-	 * (non-Javadoc) Declare a private constructor to block instantiation.
-	 */
-	private JFaceResources() {
-		// no-op
-	}
-
-	/*
-	 * Initialize any JFace colors that may not be initialized via a client.
-	 */
-	private static void initializeDefaultColors() {
-		// JFace Colors that may not be defined in a workbench theme should be
-		// defined here.
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/LocalResourceManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/LocalResourceManager.java
deleted file mode 100644
index 757ae58..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/LocalResourceManager.java
+++ /dev/null
@@ -1,100 +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.jface.resource;
-
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Control;
-
-
-/**
- * A local registry that shares its resources with some global registry.
- * LocalResourceManager is typically used to safeguard against leaks. Clients
- * can use a nested registry to allocate and deallocate resources in the
- * global registry. Calling dispose() on the nested registry will deallocate
- * everything allocated for the nested registry without affecting the rest
- * of the global registry.
- * <p>
- * A nested registry can be used to manage the resources for, say, a dialog
- * box.
- * </p>
- * @since 3.1
- */
-public final class LocalResourceManager extends AbstractResourceManager {
-
-    private ResourceManager parentRegistry;
-    
-    /**
-     * Creates a local registry that delegates to the given global registry
-     * for all resource allocation and deallocation. 
-     * 
-     * @param parentRegistry global registry 
-     */
-    public LocalResourceManager(ResourceManager parentRegistry) {
-        this.parentRegistry = parentRegistry;
-    }
-    
-    /**
-     * Creates a local registry that wraps the given global registry. Anything
-     * allocated by this registry will be automatically cleaned up with the given
-     * control is disposed. Note that registries created in this way should not
-     * be used to allocate any resource that must outlive the given control.
-     * 
-     * @param parentRegistry global registry that handles resource allocation
-     * @param owner control whose disposal will trigger cleanup of everything 
-     * in the registry.
-     */
-    public LocalResourceManager(ResourceManager parentRegistry, Control owner) {
-        this(parentRegistry);
-        
-        owner.addDisposeListener(new DisposeListener() {
-	        /* (non-Javadoc)
-	         * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-	         */
-	        public void widgetDisposed(DisposeEvent e) {
-	            LocalResourceManager.this.dispose();
-	        } 
-        });
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceManager#getDevice()
-     */
-    public Device getDevice() {
-        return parentRegistry.getDevice();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.AbstractResourceManager#allocate(org.eclipse.jface.resource.DeviceResourceDescriptor)
-     */
-    protected Object allocate(DeviceResourceDescriptor descriptor)
-            throws DeviceResourceException {
-        return parentRegistry.create(descriptor);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.AbstractResourceManager#deallocate(java.lang.Object, org.eclipse.jface.resource.DeviceResourceDescriptor)
-     */
-    protected void deallocate(Object resource,
-            DeviceResourceDescriptor descriptor) {
-        
-        parentRegistry.destroy(descriptor);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ResourceManager#getDefaultImage()
-     */
-    protected Image getDefaultImage() {
-        return parentRegistry.getDefaultImage();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java
deleted file mode 100644
index 84f5977..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/MissingImageDescriptor.java
+++ /dev/null
@@ -1,51 +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.jface.resource;
-
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- * The image descriptor for a missing image.
- * <p>
- * Use <code>MissingImageDescriptor.getInstance</code> to
- * access the singleton instance maintained in an
- * internal state variable. 
- * </p>
- */
-class MissingImageDescriptor extends ImageDescriptor {
-    private static MissingImageDescriptor instance;
-
-    /**
-     * Constructs a new missing image descriptor.
-     */
-    private MissingImageDescriptor() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ImageDesciptor.
-     */
-    public ImageData getImageData() {
-        return DEFAULT_IMAGE_DATA;
-    }
-
-    /**
-     * Returns the shared missing image descriptor instance.
-     *
-     * @return the image descriptor for a missing image
-     */
-    static MissingImageDescriptor getInstance() {
-        if (instance == null) {
-            instance = new MissingImageDescriptor();
-        }
-        return instance;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/RGBColorDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/RGBColorDescriptor.java
deleted file mode 100644
index a96b20a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/RGBColorDescriptor.java
+++ /dev/null
@@ -1,98 +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.jface.resource;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * Describes a color by its RGB values.
- * 
- * @since 3.1
- */
-class RGBColorDescriptor extends ColorDescriptor {
-
-    private RGB color;
-    
-    /**
-     * Color being copied, or null if none
-     */
-    private Color originalColor = null;
-    
-    /**
-     * Creates a new RGBColorDescriptor given some RGB values
-     * 
-     * @param color RGB values (not null)
-     */
-    public RGBColorDescriptor(RGB color) {
-        this.color = color;
-    }
-    
-	/**
-     * Creates a new RGBColorDescriptor that describes an existing color. 
-     * 
-     * @since 3.1
-     *
-     * @param originalColor a color to describe
-     */
-    public RGBColorDescriptor(Color originalColor) {
-        this(originalColor.getRGB());
-        this.originalColor = originalColor;
-    }
-    
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    public boolean equals(Object obj) {
-        if (obj instanceof RGBColorDescriptor) {
-            RGBColorDescriptor other = (RGBColorDescriptor) obj;
-            
-            return other.color.equals(color) && other.originalColor == originalColor;
-        }
-        
-        return false;
-    }
-    
-    /* (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     */
-    public int hashCode() {
-        return color.hashCode();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resources.ColorDescriptor#createColor()
-     */
-    public Color createColor(Device device) {
-        // If this descriptor is wrapping an existing color, then we can return the original color
-        // if this is the same device.
-        if (originalColor != null) {
-            // If we're allocating on the same device as the original color, return the original.
-            if (originalColor.getDevice() == device) {
-                return originalColor;
-            }            
-        }
-        
-        return new Color(device, color);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.ColorDescriptor#destroyColor(org.eclipse.swt.graphics.Color)
-     */
-    public void destroyColor(Color toDestroy) {
-        if (toDestroy == originalColor) {
-            return;
-        }
-        
-        toDestroy.dispose();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceManager.java
deleted file mode 100644
index 14df30f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceManager.java
+++ /dev/null
@@ -1,393 +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.jface.resource;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * This class manages SWT resources. It manages reference-counted instances of resources
- * such as Fonts, Images, and Colors, and allows them to be accessed using descriptors.
- * Everything allocated through the registry should also be disposed through the registry.
- * Since the resources are shared and reference counted, they should never be disposed
- * directly.
- * <p>
- * ResourceManager handles correct allocation and disposal of resources. It differs from 
- * the various JFace *Registry classes, which also map symbolic IDs onto resources. In 
- * general, you should use a *Registry class to map IDs onto descriptors, and use a 
- * ResourceManager to convert the descriptors into real Images/Fonts/etc.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class ResourceManager {
-    
-	/**
-	 * List of Runnables scheduled to run when the ResourceManager is disposed.
-	 * null if empty.
-	 */
-    private List disposeExecs = null;
-    
-    /**
-     * Returns the Device for which this ResourceManager will create resources 
-     * 
-     * @since 3.1
-     *
-     * @return the Device associated with this ResourceManager
-     */
-    public abstract Device getDevice();
-    
-    /**
-     * Returns the resource described by the given descriptor. If the resource already
-     * exists, the reference count is incremented and the exiting resource is returned.
-     * Otherwise, a new resource is allocated. Every call to this method should have
-     * a corresponding call to {@link #destroy(DeviceResourceDescriptor)}.
-     * 
-     * <p>If the resource is intended to live for entire lifetime of the resource manager, 
-     * a subsequent call to {@link #destroy(DeviceResourceDescriptor)} may be omitted and the
-     * resource will be cleaned up when the resource manager is disposed. This pattern
-     * is useful for short-lived {@link LocalResourceManager}s, but should never be used 
-     * with the global resource manager since doing so effectively leaks the resource.</p>
-     * 
-     * <p>The resources returned from this method are reference counted and may be shared 
-     * internally with other resource managers. They should never be disposed outside of the 
-     * ResourceManager framework, or it will cause exceptions in other code that shares
-     * them. For example, never call {@link org.eclipse.swt.graphics.Resource#dispose()} 
-     * on anything returned from this method.</p>
-     * 
-     * <p>Callers may safely downcast the result to the resource type associated with 
-     * the descriptor. For example, when given an ImageDescriptor, the return
-     * value of this method will always be an Image.</p>
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor descriptor for the resource to allocate
-     * @return the newly allocated resource (not null)
-     * @throws DeviceResourceException if unable to allocate the resource
-     */
-    public abstract Object create(DeviceResourceDescriptor descriptor);
-    
-    /**
-     * Deallocates a resource previously allocated by {@link #create(DeviceResourceDescriptor)}. 
-     * Descriptors are compared by equality, not identity. If the same resource was 
-     * created multiple times, this may decrement a reference count rather than 
-     * disposing the actual resource.  
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor identifier for the resource
-     */
-    public abstract void destroy(DeviceResourceDescriptor descriptor);
-    
-    /**
-     * <p>Returns a previously-allocated resource or allocates a new one if none
-     * exists yet. The resource will remain allocated for at least the lifetime
-     * of this resource manager. If necessary, the resource will be deallocated 
-     * automatically when the resource manager is disposed.</p>
-     * 
-     * <p>The resources returned from this method are reference counted and may be shared 
-     * internally with other resource managers. They should never be disposed outside of the 
-     * ResourceManager framework, or it will cause exceptions in other code that shares
-     * them. For example, never call {@link org.eclipse.swt.graphics.Resource#dispose()} 
-     * on anything returned from this method.</p>
-     * 
-     * <p>
-     * Callers may safely downcast the result to the resource type associated with 
-     * the descriptor. For example, when given an ImageDescriptor, the return
-     * value of this method may be downcast to Image.
-     * </p>
-     * 
-     * <p>
-     * This method should only be used for resources that should remain
-     * allocated for the lifetime of the resource manager. To allocate shorter-lived
-     * resources, manage them with <code>create</code>, and <code>destroy</code>
-     * rather than this method.
-     * </p>
-     * 
-     * <p>
-     * This method should never be called on the global resource manager,
-     * since all resources will remain allocated for the lifetime of the app and
-     * will be effectively leaked.
-     * </p>
-     * 
-     * @param descriptor identifier for the requested resource
-     * @return the requested resource. Never null.
-     * @throws DeviceResourceException if the resource does not exist yet and cannot
-     * be created for any reason.
-     * 
-     * @since 3.3
-     */
-    public final Object get(DeviceResourceDescriptor descriptor) {
-    	Object result = find(descriptor);
-    	
-    	if (result == null) {
-    		result = create(descriptor);
-    	}
-    	
-    	return result;
-    }
-    
-    /**
-     * <p>Creates an image, given an image descriptor. Images allocated in this manner must
-     * be disposed by {@link #destroyImage(ImageDescriptor)}, and never by calling 
-     * {@link Image#dispose()}.</p>
-     * 
-     * <p>
-     * If the image is intended to remain allocated for the lifetime of the ResourceManager,
-     * the call to destroyImage may be omitted and the image will be cleaned up automatically
-     * when the ResourceManager is disposed. This should only be done with short-lived ResourceManagers,
-     * as doing so with the global manager effectively leaks the resource.
-     * </p>
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor descriptor for the image to create
-     * @return the Image described by this descriptor (possibly shared by other equivalent
-     * ImageDescriptors)
-     * @throws DeviceResourceException if unable to allocate the Image
-     */
-    public final Image createImage(ImageDescriptor descriptor) {
-    	// Assertion added to help diagnose client bugs.  See bug #83711 and bug #90454.
-    	Assert.isNotNull(descriptor);
-    	
-        return (Image)create(descriptor);
-    }
-    
-    /**
-     * Creates an image, given an image descriptor. Images allocated in this manner must
-     * be disposed by {@link #destroyImage(ImageDescriptor)}, and never by calling 
-     * {@link Image#dispose()}.
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor descriptor for the image to create
-     * @return the Image described by this descriptor (possibly shared by other equivalent
-     * ImageDescriptors)
-     */
-    public final Image createImageWithDefault(ImageDescriptor descriptor) {
-        if (descriptor == null) {
-        	return getDefaultImage();
-        }
-        
-        try {
-			return (Image) create(descriptor);
-		} catch (DeviceResourceException e) {
-			Policy.getLog().log(
-					new Status(IStatus.WARNING, "org.eclipse.jface", 0, //$NON-NLS-1$
-							"The image could not be loaded: " + descriptor, //$NON-NLS-1$
-							e));
-			return getDefaultImage();
-		} catch (SWTException e) {
-			Policy.getLog().log(
-					new Status(IStatus.WARNING, "org.eclipse.jface", 0, //$NON-NLS-1$
-							"The image could not be loaded: " + descriptor, //$NON-NLS-1$
-							e));
-			return getDefaultImage();
-		}
-    }
-    
-    /**
-     * Returns the default image that will be returned in the event that the intended
-     * image is missing.
-     * 
-     * @since 3.1
-     *
-     * @return a default image that will be returned in the event that the intended
-     * image is missing.
-     */
-    protected abstract Image getDefaultImage();
-
-    /**
-     * Undoes everything that was done by {@link #createImage(ImageDescriptor)}.
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor identifier for the image to dispose
-     */
-    public final void destroyImage(ImageDescriptor descriptor) {
-        destroy(descriptor);
-    }
-
-    /**
-     * Allocates a color, given a color descriptor. Any color allocated in this
-     * manner must be disposed by calling {@link #destroyColor(ColorDescriptor)}, 
-     * or by an eventual call to {@link #dispose()}. {@link Color#dispose()} must
-     * never been called directly on the returned color.
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor descriptor for the color to create
-     * @return the Color described by the given ColorDescriptor (not null)
-     * @throws DeviceResourceException if unable to create the color
-     */
-    public final Color createColor(ColorDescriptor descriptor) {
-        return (Color)create(descriptor);
-    }
-
-    /**
-     * Allocates a color, given its RGB value. Any color allocated in this
-     * manner must be disposed by calling {@link #destroyColor(RGB)}, 
-     * or by an eventual call to {@link #dispose()}. {@link Color#dispose()} must
-     * never been called directly on the returned color.
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor descriptor for the color to create
-     * @return the Color described by the given ColorDescriptor (not null)
-     * @throws DeviceResourceException if unable to create the color
-     */
-    public final Color createColor(RGB descriptor) {
-        return createColor(new RGBColorDescriptor(descriptor));
-    }
-    
-    /**
-     * Undoes everything that was done by a call to {@link #createColor(RGB)}.
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor RGB value of the color to dispose
-     */
-    public final void destroyColor(RGB descriptor) {
-        destroyColor(new RGBColorDescriptor(descriptor));
-    }
-
-    /**
-     * Undoes everything that was done by a call to {@link #createColor(ColorDescriptor)}.
-     * 
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor identifier for the color to dispose
-     */
-    public final void destroyColor(ColorDescriptor descriptor) {
-        destroy(descriptor);
-    }
-    
-    /**
-     * Returns the Font described by the given FontDescriptor. Any Font
-     * allocated in this manner must be deallocated by calling disposeFont(...),
-     * or by an eventual call to {@link #dispose()}.  The method {@link Font#dispose()}
-     * must never be called directly on the returned font.
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor description of the font to create
-     * @return the Font described by the given descriptor
-     * @throws DeviceResourceException if unable to create the font
-     */
-    public final Font createFont(FontDescriptor descriptor) {
-        return (Font)create(descriptor);
-    }
-    
-    /**
-     * Undoes everything that was done by a previous call to {@link #createFont(FontDescriptor)}.
-     * 
-     * @since 3.1 
-     *
-     * @param descriptor description of the font to destroy
-     */
-    public final void destroyFont(FontDescriptor descriptor) {
-        destroy(descriptor);
-    }
-    
-    /**
-     * Disposes any remaining resources allocated by this manager. 
-     */
-    public void dispose() {
-        if (disposeExecs == null) {
-            return;
-        }
-        
-        // If one of the runnables throws an exception, we need to propagate it.
-        // However, this should not prevent the remaining runnables from being 
-        // notified. If any runnables throw an exception, we remember one of them
-        // here and throw it at the end of the method.
-        RuntimeException foundException = null;
-        
-        Runnable[] execs = (Runnable[]) disposeExecs.toArray(new Runnable[disposeExecs.size()]);
-        for (int i = 0; i < execs.length; i++) {
-            Runnable exec = execs[i];            
-            
-            try {
-                exec.run();
-            } catch (RuntimeException e) {
-                // Ensure that we propagate an exception, but don't stop notifying
-                // the remaining runnables.
-                foundException = e;
-            }
-        }
-        
-        if (foundException != null) {
-            // If any runnables threw an exception, propagate one of them.
-            throw foundException;
-        }
-    }
-    
-    /**
-     * Returns a previously allocated resource associated with the given descriptor, or
-     * null if none exists yet. 
-     * 
-     * @since 3.1
-     *
-     * @param descriptor descriptor to find
-     * @return a previously allocated resource for the given descriptor or null if none.
-     */
-    public abstract Object find(DeviceResourceDescriptor descriptor);
-    
-    /**
-     * Causes the <code>run()</code> method of the runnable to
-     * be invoked just before the receiver is disposed. The runnable
-     * can be subsequently canceled by a call to <code>cancelDisposeExec</code>.
-     * 
-     * @param r runnable to execute.
-     */
-    public void disposeExec(Runnable r) {
-        Assert.isNotNull(r);
-        
-        if (disposeExecs == null) {
-            disposeExecs = new ArrayList();
-        }
-        
-        disposeExecs.add(r);
-    }
-    
-    /**
-     * Cancels a runnable that was previously scheduled with <code>disposeExec</code>.
-     * Has no effect if the given runnable was not previously registered with
-     * disposeExec.
-     * 
-     * @param r runnable to cancel
-     */
-    public void cancelDisposeExec(Runnable r) {
-        Assert.isNotNull(r);
-        
-        if (disposeExecs == null) {
-            return;
-        }
-        
-        disposeExecs.remove(r);
-        
-        if (disposeExecs.isEmpty()) {
-            disposeExecs = null;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceRegistry.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceRegistry.java
deleted file mode 100644
index 82184b8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ResourceRegistry.java
+++ /dev/null
@@ -1,87 +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.jface.resource;
-
-import java.util.Set;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * Abstract base class for various JFace registries.
- * 
- * @since 3.0
- */
-public abstract class ResourceRegistry extends EventManager {
-
-    /**
-     * Adds a property change listener to this registry.
-     * 
-     * @param listener a property change listener
-     */
-    public void addListener(IPropertyChangeListener listener) {
-        addListenerObject(listener);
-    }
-
-    /**
-     * Disposes all currently allocated resources.
-     */
-    protected abstract void clearCaches();
-
-    /** 
-     * @return the set of keys this manager knows about.  This collection 
-     * should be immutable.
-     */
-    public abstract Set getKeySet();
-
-    /**
-     * Return whether or not the receiver has a value for the supplied key.
-     * 
-     * @param key the key
-     * @return <code>true</code> if there is a value for this key
-     */
-    public abstract boolean hasValueFor(String key);
-
-    /**
-     * Fires a <code>PropertyChangeEvent</code>.
-     * 
-     * @param name the name of the symbolic value that is changing.
-     * @param oldValue the old value.
-     * @param newValue the new value.
-     */
-    protected void fireMappingChanged(String name, Object oldValue,
-            Object newValue) {
-        final Object[] myListeners = getListeners();
-        if (myListeners.length > 0) {
-            PropertyChangeEvent event = new PropertyChangeEvent(this, name,
-                    oldValue, newValue);
-            for (int i = 0; i < myListeners.length; ++i) {
-                try {
-                    ((IPropertyChangeListener) myListeners[i])
-                            .propertyChange(event);
-                } catch (Exception e) {
-                    // TODO: how to log?
-                }
-            }
-        }
-    }
-
-    /**
-     * Removes the given listener from this registry. Has no affect if the
-     * listener is not registered.
-     * 
-     * @param listener a property change listener
-     */
-    public void removeListener(IPropertyChangeListener listener) {
-        removeListenerObject(listener);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/StringConverter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/StringConverter.java
deleted file mode 100644
index 35ab2fb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/StringConverter.java
+++ /dev/null
@@ -1,887 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import java.util.ArrayList;
-import java.util.NoSuchElementException;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * Helper class for converting various data types to and from
- * strings. Supported types include:
- * <ul>
- *   <li><code>boolean</code></li>
- *   <li><code>int</code></li>
- *   <li><code>long</code></li>
- *   <li><code>float</code></li>
- *   <li><code>double</code></li>
- *   <li><code>org.eclipse.swt.graphics.Point</code></li>
- *   <li><code>org.eclipse.swt.graphics.Rectangle</code></li>
- *   <li><code>org.eclipse.swt.graphics.RGB</code></li>
- *   <li><code>org.eclipse.swt.graphics.FontData</code></li>
- * </ul>
- * <p>
- * All methods declared on this class are static. This
- * class cannot be instantiated.
- * </p>
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class StringConverter {
-
-    /**
-     * Internal font style constant for regular fonts.
-     */
-    private static final String REGULAR = "regular"; //$NON-NLS-1$
-
-    /**
-     * Internal font style constant for bold fonts.
-     */
-    private static final String BOLD = "bold"; //$NON-NLS-1$
-
-    /**
-     * Internal font style constant for italic fonts.
-     */
-    private static final String ITALIC = "italic"; //$NON-NLS-1$
-
-    /**
-     * Internal font style constant for bold italic fonts.
-     */
-    private static final String BOLD_ITALIC = "bold italic"; //$NON-NLS-1$
-
-    /**
-     * Internal constant for the separator character used in
-     * font specifications.
-     */
-    private static final char SEPARATOR = '-';
-
-    /**
-     * Internal constant for the seperator character used in font list
-     * specifications.
-     */
-    private static final String FONT_SEPARATOR = ";"; //$NON-NLS-1$
-
-    /* (non-Javadoc)
-     * Declare a private constructor to block instantiation.
-     */
-    private StringConverter() {
-        //no-op
-    }
-
-    /**
-     * Breaks out space-separated words into an array of words.
-     * For example: <code>"no comment"</code> into an array 
-     * <code>a[0]="no"</code> and <code>a[1]= "comment"</code>.
-     *
-     * @param value the string to be converted
-     * @return the list of words
-     * @throws DataFormatException thrown if request string could not seperated
-     */
-    public static String[] asArray(String value) throws DataFormatException {
-        ArrayList list = new ArrayList();
-        StringTokenizer stok = new StringTokenizer(value);
-        while (stok.hasMoreTokens()) {
-            list.add(stok.nextToken());
-        }
-        String result[] = new String[list.size()];
-        list.toArray(result);
-        return result;
-    }
-
-    /**
-     /**
-     * Breaks out space-separated words into an array of words.
-     * For example: <code>"no comment"</code> into an array 
-     * <code>a[0]="no"</code> and <code>a[1]= "comment"</code>.
-     * Returns the given default value if the value cannot be parsed.
-     *
-     * @param value the string to be converted
-     * @param dflt the default value
-     * @return the list of words, or the default value
-     */
-    public static String[] asArray(String value, String[] dflt) {
-        try {
-            return asArray(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into a boolean.
-     * This method fails if the value does not represent a boolean.
-     * <p>
-     * Valid representations of <code>true</code> include the strings
-     * "<code>t</code>", "<code>true</code>", or equivalent in mixed
-     * or upper case.
-     * Similarly, valid representations of <code>false</code> include the strings
-     * "<code>f</code>", "<code>false</code>", or equivalent in mixed
-     * or upper case. 
-     * </p>
-     *
-     * @param value the value to be converted
-     * @return the value as a boolean
-     * @exception DataFormatException if the given value does not represent
-     *	a boolean
-     */
-    public static boolean asBoolean(String value) throws DataFormatException {
-        String v = value.toLowerCase();
-        if (v.equals("t") || v.equals("true")) { //$NON-NLS-1$ //$NON-NLS-2$
-			return true;
-		}
-        if (value.equals("f") || v.equals("false")) { //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		}
-        throw new DataFormatException(
-                "Value " + value + "doesn't represent a boolean"); //$NON-NLS-2$//$NON-NLS-1$
-    }
-
-    /**
-     * Converts the given value into a boolean.
-     * Returns the given default value if the 
-     * value does not represent a boolean.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a boolean, or the default value
-     */
-    public static boolean asBoolean(String value, boolean dflt) {
-        try {
-            return asBoolean(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into a double.
-     * This method fails if the value does not represent a double.
-     *
-     * @param value the value to be converted
-     * @return the value as a double
-     * @exception DataFormatException if the given value does not represent
-     *	a double
-     */
-    public static double asDouble(String value) throws DataFormatException {
-        try {
-            return (Double.valueOf(value)).doubleValue();
-        } catch (NumberFormatException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-    }
-
-    /**
-     * Converts the given value into a double.
-     * Returns the given default value if the 
-     * value does not represent a double.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a double, or the default value
-     */
-    public static double asDouble(String value, double dflt) {
-        try {
-            return asDouble(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into a float.
-     * This method fails if the value does not represent a float.
-     *
-     * @param value the value to be converted
-     * @return the value as a float
-     * @exception DataFormatException if the given value does not represent
-     *	a float
-     */
-    public static float asFloat(String value) throws DataFormatException {
-        try {
-            return (Float.valueOf(value)).floatValue();
-        } catch (NumberFormatException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-    }
-
-    /**
-     * Converts the given value into a float.
-     * Returns the given default value if the 
-     * value does not represent a float.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a float, or the default value
-     */
-    public static float asFloat(String value, float dflt) {
-        try {
-            return asFloat(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into an SWT font data object.
-     * This method fails if the value does not represent font data.
-     * <p>
-     * A valid font data representation is a string of the form
-     * <code><it>fontname</it>-<it>style</it>-<it>height</it></code> where
-     * <code><it>fontname</it></code> is the name of a font,
-     * <code><it>style</it></code> is a font style (one of
-     * <code>"regular"</code>, <code>"bold"</code>,
-     * <code>"italic"</code>, or <code>"bold italic"</code>)
-     * and <code><it>height</it></code> is an integer representing the
-     * font height. Example: <code>Times New Roman-bold-36</code>.
-     * </p>
-     *
-     * @param value the value to be converted
-     * @return the value as font data
-     * @exception DataFormatException if the given value does not represent
-     *	font data
-     */
-    public static FontData asFontData(String value) throws DataFormatException {
-        if (value == null) {
-			throw new DataFormatException(
-                    "Null doesn't represent a valid font data"); //$NON-NLS-1$
-		}
-        String name = null;
-        int height = 0;
-        int style = 0;
-        try {
-            int length = value.length();
-            int heightIndex = value.lastIndexOf(SEPARATOR);
-            if (heightIndex == -1) {
-				throw new DataFormatException(
-                        "No correct font data format \"" + value + "\""); //$NON-NLS-2$//$NON-NLS-1$
-			}
-            height = StringConverter.asInt(value.substring(heightIndex + 1,
-                    length));
-            int faceIndex = value.lastIndexOf(SEPARATOR, heightIndex - 1);
-            if (faceIndex == -1) {
-				throw new DataFormatException(
-                        "No correct font data format \"" + value + "\""); //$NON-NLS-2$//$NON-NLS-1$
-			}
-            String s = value.substring(faceIndex + 1, heightIndex);
-            if (BOLD_ITALIC.equals(s)) {
-                style = SWT.BOLD | SWT.ITALIC;
-            } else if (BOLD.equals(s)) {
-                style = SWT.BOLD;
-            } else if (ITALIC.equals(s)) {
-                style = SWT.ITALIC;
-            } else if (REGULAR.equals(s)) {
-                style = SWT.NORMAL;
-            } else {
-                throw new DataFormatException("Unknown face name \"" + s + "\""); //$NON-NLS-2$//$NON-NLS-1$
-            }
-            name = value.substring(0, faceIndex);
-        } catch (NoSuchElementException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-        return new FontData(name, height, style);
-    }
-
-	/**
-	 * 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
-	 */
-	private static String[] getArrayFromList(String prop, String separator) {
-		if (prop == null || prop.trim().equals("")) { //$NON-NLS-1$
-			return new String[0];
-		}
-		ArrayList list = new ArrayList();
-		StringTokenizer tokens = new StringTokenizer(prop, separator); 
-		while (tokens.hasMoreTokens()) {
-			String token = tokens.nextToken().trim();
-			if (!token.equals("")) { //$NON-NLS-1$
-				list.add(token);
-			}
-		}
-		return list.isEmpty() ? new String[0] : (String[]) list.toArray(new String[list.size()]);
-	}
-
-    /**
-     * Convert the given value into an array of SWT font data objects.
-     * 
-     * @param value the font list string 
-     * @return the value as a font list
-     * @since 3.0
-     */
-    public static FontData[] asFontDataArray(String value) {
-        String[] strings = getArrayFromList(value, FONT_SEPARATOR);
-        ArrayList data = new ArrayList(strings.length);
-        for (int i = 0; i < strings.length; i++) {
-            try {
-                data.add(StringConverter.asFontData(strings[i]));
-            } catch (DataFormatException e) {
-                //do-nothing
-            }
-        }
-        return (FontData[]) data.toArray(new FontData[data.size()]);
-    }
-
-    /**
-     * Converts the given value into an SWT font data object.
-     * Returns the given default value if the 
-     * value does not represent a font data object.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a font data object, or the default value
-     */
-    public static FontData asFontData(String value, FontData dflt) {
-        try {
-            return asFontData(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into an int.
-     * This method fails if the value does not represent an int.
-     *
-     * @param value the value to be converted
-     * @return the value as an int
-     * @exception DataFormatException if the given value does not represent
-     *	an int
-     */
-    public static int asInt(String value) throws DataFormatException {
-        try {
-            return Integer.parseInt(value);
-        } catch (NumberFormatException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-    }
-
-    /**
-     * Converts the given value into an int.
-     * Returns the given default value if the 
-     * value does not represent an int.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as an int, or the default value
-     */
-    public static int asInt(String value, int dflt) {
-        try {
-            return asInt(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into a long.
-     * This method fails if the value does not represent a long.
-     *
-     * @param value the value to be converted
-     * @return the value as a long
-     * @exception DataFormatException if the given value does not represent
-     *	a long
-     */
-    public static long asLong(String value) throws DataFormatException {
-        try {
-            return Long.parseLong(value);
-        } catch (NumberFormatException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-    }
-
-    /**
-     * Converts the given value into a long.
-     * Returns the given default value if the 
-     * value does not represent a long.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a long, or the default value
-     */
-    public static long asLong(String value, long dflt) {
-        try {
-            return asLong(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into an SWT point.
-     * This method fails if the value does not represent a point.
-     * <p>
-     * A valid point representation is a string of the form
-     * <code><it>x</it>,<it>y</it></code> where
-     * <code><it>x</it></code> and <code><it>y</it></code>
-     * are valid ints.
-     * </p>
-     *
-     * @param value the value to be converted
-     * @return the value as a point
-     * @exception DataFormatException if the given value does not represent
-     *	a point
-     */
-    public static Point asPoint(String value) throws DataFormatException {
-        if (value == null) {
-			throw new DataFormatException(
-                    "Null doesn't represent a valid point"); //$NON-NLS-1$
-		}
-        StringTokenizer stok = new StringTokenizer(value, ","); //$NON-NLS-1$
-        String x = stok.nextToken();
-        String y = stok.nextToken();
-        int xval = 0, yval = 0;
-        try {
-            xval = Integer.parseInt(x);
-            yval = Integer.parseInt(y);
-        } catch (NumberFormatException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-        return new Point(xval, yval);
-    }
-
-    /**
-     * Converts the given value into an SWT point.
-     * Returns the given default value if the 
-     * value does not represent a point.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a point, or the default value
-     */
-    public static Point asPoint(String value, Point dflt) {
-        try {
-            return asPoint(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into an SWT rectangle.
-     * This method fails if the value does not represent a rectangle.
-     * <p>
-     * A valid rectangle representation is a string of the form
-     * <code><it>x</it>,<it>y</it>,<it>width</it>,<it>height</it></code>
-     * where <code><it>x</it></code>, <code><it>y</it></code>,
-     * <code><it>width</it></code>, and <code><it>height</it></code>
-     * are valid ints.
-     * </p>
-     *
-     * @param value the value to be converted
-     * @return the value as a rectangle
-     * @exception DataFormatException if the given value does not represent
-     *	a rectangle
-     */
-    public static Rectangle asRectangle(String value)
-            throws DataFormatException {
-        if (value == null) {
-			throw new DataFormatException(
-                    "Null doesn't represent a valid rectangle"); //$NON-NLS-1$
-		}
-        StringTokenizer stok = new StringTokenizer(value, ","); //$NON-NLS-1$
-        String x = stok.nextToken();
-        String y = stok.nextToken();
-        String width = stok.nextToken();
-        String height = stok.nextToken();
-        int xval = 0, yval = 0, wval = 0, hval = 0;
-        try {
-            xval = Integer.parseInt(x);
-            yval = Integer.parseInt(y);
-            wval = Integer.parseInt(width);
-            hval = Integer.parseInt(height);
-        } catch (NumberFormatException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-        return new Rectangle(xval, yval, wval, hval);
-    }
-
-    /**
-     * Converts the given value into an SWT rectangle.
-     * Returns the given default value if the 
-     * value does not represent a rectangle.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a rectangle, or the default value
-     */
-    public static Rectangle asRectangle(String value, Rectangle dflt) {
-        try {
-            return asRectangle(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given value into an SWT RGB color value.
-     * This method fails if the value does not represent an RGB
-     * color value.
-     * <p>
-     * A valid RGB color value representation is a string of the form
-     * <code><it>red</it>,<it>green</it></code>,<it>blue</it></code> where
-     * <code><it>red</it></code>, <it>green</it></code>, and 
-     * <code><it>blue</it></code> are valid ints.
-     * </p>
-     *
-     * @param value the value to be converted
-     * @return the value as an RGB color value
-     * @exception DataFormatException if the given value does not represent
-     *	an RGB color value
-     */
-    public static RGB asRGB(String value) throws DataFormatException {
-        if (value == null) {
-			throw new DataFormatException("Null doesn't represent a valid RGB"); //$NON-NLS-1$
-		}
-        StringTokenizer stok = new StringTokenizer(value, ","); //$NON-NLS-1$
-
-        try {
-            String red = stok.nextToken().trim();
-            String green = stok.nextToken().trim();
-            String blue = stok.nextToken().trim();
-            int rval = 0, gval = 0, bval = 0;
-            try {
-                rval = Integer.parseInt(red);
-                gval = Integer.parseInt(green);
-                bval = Integer.parseInt(blue);
-            } catch (NumberFormatException e) {
-                throw new DataFormatException(e.getMessage());
-            }
-            return new RGB(rval, gval, bval);
-        } catch (NoSuchElementException e) {
-            throw new DataFormatException(e.getMessage());
-        }
-    }
-
-    /**
-     * Converts the given value into an SWT RGB color value.
-     * Returns the given default value if the 
-     * value does not represent an RGB color value.
-     *
-     * @param value the value to be converted
-     * @param dflt the default value
-     * @return the value as a RGB color value, or the default value
-     */
-    public static RGB asRGB(String value, RGB dflt) {
-        try {
-            return asRGB(value);
-        } catch (DataFormatException e) {
-            return dflt;
-        }
-    }
-
-    /**
-     * Converts the given double value to a string.
-     * Equivalent to <code>String.valueOf(value)</code>.
-     *
-     * @param value the double value
-     * @return the string representing the given double
-     */
-    public static String asString(double value) {
-        return String.valueOf(value);
-    }
-
-    /**
-     * Converts the given float value to a string.
-     * Equivalent to <code>String.valueOf(value)</code>.
-     *
-     * @param value the float value
-     * @return the string representing the given float
-     */
-    public static String asString(float value) {
-        return String.valueOf(value);
-    }
-
-    /**
-     * Converts the given int value to a string.
-     * Equivalent to <code>String.valueOf(value)</code>.
-     *
-     * @param value the int value
-     * @return the string representing the given int
-     */
-    public static String asString(int value) {
-        return String.valueOf(value);
-    }
-
-    /**
-     * Converts the given long value to a string.
-     * Equivalent to <code>String.valueOf(value)</code>.
-     *
-     * @param value the long value
-     * @return the string representing the given long
-     */
-    public static String asString(long value) {
-        return String.valueOf(value);
-    }
-
-    /**
-     * Converts the given boolean object to a string.
-     * Equivalent to <code>String.valueOf(value.booleanValue())</code>.
-     *
-     * @param value the boolean object
-     * @return the string representing the given boolean value
-     */
-    public static String asString(Boolean value) {
-        Assert.isNotNull(value);
-        return String.valueOf(value.booleanValue());
-    }
-
-    /**
-     * Converts the given double object to a string.
-     * Equivalent to <code>String.valueOf(value.doubleValue())</code>.
-     *
-     * @param value the double object
-     * @return the string representing the given double value
-     */
-    public static String asString(Double value) {
-        Assert.isNotNull(value);
-        return String.valueOf(value.doubleValue());
-    }
-
-    /**
-     * Converts the given float object to a string.
-     * Equivalent to <code>String.valueOf(value.floatValue())</code>.
-     *
-     * @param value the float object
-     * @return the string representing the given float value
-     */
-    public static String asString(Float value) {
-        Assert.isNotNull(value);
-        return String.valueOf(value.floatValue());
-    }
-
-    /**
-     * Converts the given integer object to a string.
-     * Equivalent to <code>String.valueOf(value.intValue())</code>.
-     *
-     * @param value the integer object
-     * @return the string representing the given integer value
-     */
-    public static String asString(Integer value) {
-        Assert.isNotNull(value);
-        return String.valueOf(value.intValue());
-    }
-
-    /**
-     * Converts the given long object to a string.
-     * Equivalent to <code>String.valueOf(value.longValue())</code>.
-     *
-     * @param value the long object
-     * @return the string representing the given long value
-     */
-    public static String asString(Long value) {
-        Assert.isNotNull(value);
-        return String.valueOf(value.longValue());
-    }
-
-    /**
-     * Converts a font data array  to a string. The string representation is
-     * that of asString(FontData) seperated by ';'
-     * 
-     * @param value The font data.
-     * @return The string representation of the font data arra.
-     * @since 3.0
-     */
-    public static String asString(FontData[] value) {
-        StringBuffer buffer = new StringBuffer();
-        for (int i = 0; i < value.length; i++) {
-            buffer.append(asString(value[i]));
-            if (i != value.length - 1) {
-				buffer.append(FONT_SEPARATOR);
-			}
-        }
-        return buffer.toString();
-    }
-
-    /**
-     * Converts a font data object to a string. The string representation is
-     * "font name-style-height" (for example "Times New Roman-bold-36").
-     * @param value The font data.
-     * @return The string representation of the font data object.
-     */
-    public static String asString(FontData value) {
-        Assert.isNotNull(value);
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(value.getName());
-        buffer.append(SEPARATOR);
-        int style = value.getStyle();
-        boolean bold = (style & SWT.BOLD) == SWT.BOLD;
-        boolean italic = (style & SWT.ITALIC) == SWT.ITALIC;
-        if (bold && italic) {
-            buffer.append(BOLD_ITALIC);
-        } else if (bold) {
-            buffer.append(BOLD);
-        } else if (italic) {
-            buffer.append(ITALIC);
-        } else {
-            buffer.append(REGULAR);
-        }
-
-        buffer.append(SEPARATOR);
-        buffer.append(value.getHeight());
-        return buffer.toString();
-    }
-
-    /**
-     * Converts the given SWT point object to a string.
-     * <p>
-     * The string representation of a point has the form
-     * <code><it>x</it>,<it>y</it></code> where
-     * <code><it>x</it></code> and <code><it>y</it></code>
-     * are string representations of integers.
-     * </p>
-     *
-     * @param value the point object
-     * @return the string representing the given point
-     */
-    public static String asString(Point value) {
-        Assert.isNotNull(value);
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(value.x);
-        buffer.append(',');
-        buffer.append(value.y);
-        return buffer.toString();
-    }
-
-    /**
-     * Converts the given SWT rectangle object to a string.
-     * <p>
-     * The string representation of a rectangle has the form
-     * <code><it>x</it>,<it>y</it>,<it>width</it>,<it>height</it></code>
-     * where <code><it>x</it></code>, <code><it>y</it></code>,
-     * <code><it>width</it></code>, and <code><it>height</it></code>
-     * are string representations of integers.
-     * </p>
-     *
-     * @param value the rectangle object
-     * @return the string representing the given rectangle
-     */
-    public static String asString(Rectangle value) {
-        Assert.isNotNull(value);
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(value.x);
-        buffer.append(',');
-        buffer.append(value.y);
-        buffer.append(',');
-        buffer.append(value.width);
-        buffer.append(',');
-        buffer.append(value.height);
-        return buffer.toString();
-    }
-
-    /**
-     * Converts the given SWT RGB color value object to a string.
-     * <p>
-     * The string representation of an RGB color value has the form
-     * <code><it>red</it>,<it>green</it></code>,<it>blue</it></code> where
-     * <code><it>red</it></code>, <it>green</it></code>, and 
-     * <code><it>blue</it></code> are string representations of integers.
-     * </p>
-     *
-     * @param value the RGB color value object
-     * @return the string representing the given RGB color value
-     */
-    public static String asString(RGB value) {
-        Assert.isNotNull(value);
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(value.red);
-        buffer.append(',');
-        buffer.append(value.green);
-        buffer.append(',');
-        buffer.append(value.blue);
-        return buffer.toString();
-    }
-
-    /**
-     * Converts the given boolean value to a string.
-     * Equivalent to <code>String.valueOf(value)</code>.
-     *
-     * @param value the boolean value
-     * @return the string representing the given boolean
-     */
-    public static String asString(boolean value) {
-        return String.valueOf(value);
-    }
-
-    /**
-     * Returns the given string with all whitespace characters removed.
-     * <p>
-     * All characters that have codes less than or equal to <code>'&#92;u0020'</code> 
-     * (the space character) are considered to be a white space.
-     * </p>
-     *
-     * @param s the source string
-     * @return the string with all whitespace characters removed
-     */
-    public static String removeWhiteSpaces(String s) {
-        //check for no whitespace (common case)
-        boolean found = false;
-        int wsIndex = -1;
-        int size = s.length();
-        for (int i = 0; i < size; i++) {
-            found = Character.isWhitespace(s.charAt(i));
-            if (found) {
-                wsIndex = i;
-                break;
-            }
-        }
-        if (!found) {
-			return s;
-		}
-
-        StringBuffer result = new StringBuffer(s.substring(0, wsIndex));
-        for (int i = wsIndex + 1; i < size; i++) {
-            char ch = s.charAt(i);
-            if (!Character.isWhitespace(ch)) {
-				result.append(ch);
-			}
-        }
-        return result.toString();
-    }
-
-    /**
-     * Converts a font data object to a string representation for display. 
-     * 	The string representation is
-     * "font name-style-height" (for example "Times New Roman-bold-36").
-     * @param value The font data.
-     * @return The string representation of the font data object.
-     * @deprecated use asString(FontData)
-     */
-    public static String asDisplayableString(FontData value) {
-        Assert.isNotNull(value);
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(value.getName());
-        buffer.append(SEPARATOR);
-        int style = value.getStyle();
-        boolean bold = (style & SWT.BOLD) == SWT.BOLD;
-        boolean italic = (style & SWT.ITALIC) == SWT.ITALIC;
-        if (bold && italic) {
-            buffer.append(JFaceResources.getString("BoldItalicFont")); //$NON-NLS-1$
-        } else if (bold) {
-            buffer.append(JFaceResources.getString("BoldFont")); //$NON-NLS-1$
-        } else if (italic) {
-            buffer.append(JFaceResources.getString("ItalicFont")); //$NON-NLS-1$
-        } else {
-            buffer.append(JFaceResources.getString("RegularFont")); //$NON-NLS-1$
-        }
-        buffer.append(SEPARATOR);
-        buffer.append(value.getHeight());
-        return buffer.toString();
-
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java
deleted file mode 100644
index affa08e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/URLImageDescriptor.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.resource;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-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.Status;
-import org.eclipse.jface.internal.InternalPolicy;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- * An ImageDescriptor that gets its information from a URL. This class is not
- * public API. Use ImageDescriptor#createFromURL to create a descriptor that
- * uses a URL.
- */
-class URLImageDescriptor extends ImageDescriptor {
-	/**
-	 * Constant for the file protocol for optimized loading
-	 */ 
-	private static final String FILE_PROTOCOL = "file";  //$NON-NLS-1$
-	private URL url;
-
-	/**
-	 * Creates a new URLImageDescriptor.
-	 * 
-	 * @param url
-	 *            The URL to load the image from. Must be non-null.
-	 */
-	URLImageDescriptor(URL url) {
-		this.url = url;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Object.
-	 */
-	public boolean equals(Object o) {
-		if (!(o instanceof URLImageDescriptor)) {
-			return false;
-		}
-		return ((URLImageDescriptor) o).url.equals(this.url);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on ImageDesciptor. Returns null if the
-	 * image data cannot be read.
-	 */
-	public ImageData getImageData() {
-		ImageData result = null;
-		InputStream in = getStream();
-		if (in != null) {
-			try {
-				result = new ImageData(in);
-			} catch (SWTException e) {
-				if (e.code != SWT.ERROR_INVALID_IMAGE) {
-					throw e;
-					// fall through otherwise
-				}
-			} finally {
-				try {
-					in.close();
-				} catch (IOException e) {
-					Policy.getLog().log(
-							new Status(IStatus.ERROR, Policy.JFACE, e
-									.getLocalizedMessage(), e));
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns a stream on the image contents. Returns null if a stream could
-	 * not be opened.
-	 * 
-	 * @return the stream for loading the data
-	 */
-	protected InputStream getStream() {
-		try {
-			return new BufferedInputStream(url.openStream());
-		} catch (IOException e) {
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Object.
-	 */
-	public int hashCode() {
-		return url.hashCode();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Object.
-	 */
-	/**
-	 * The <code>URLImageDescriptor</code> implementation of this
-	 * <code>Object</code> method returns a string representation of this
-	 * object which is suitable only for debugging.
-	 */
-	public String toString() {
-		return "URLImageDescriptor(" + url + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * Returns the filename for the ImageData.
-	 * 
-	 * @return {@link String} or <code>null</code> if the file cannot be found
-	 */
-	private String getFilePath() {
-
-		try {
-			if (!InternalPolicy.OSGI_AVAILABLE) {
-				if (FILE_PROTOCOL.equalsIgnoreCase(url.getProtocol()))
-					return new Path(url.getFile()).toOSString();
-				return null;
-			}
-
-			URL locatedURL = FileLocator.toFileURL(url);
-			if (FILE_PROTOCOL.equalsIgnoreCase(locatedURL.getProtocol()))
-				return new Path(locatedURL.getPath()).toOSString();
-			return null;
-
-		} catch (IOException e) {
-			Policy.logException(e);
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.resource.ImageDescriptor#createImage(boolean,
-	 *      org.eclipse.swt.graphics.Device)
-	 */
-	public Image createImage(boolean returnMissingImageOnError, Device device) {
-
-		// Try to see if we can optimize using SWTs file based image support.
-		String path = getFilePath();
-		if (path == null)
-			return super.createImage(returnMissingImageOnError, device);
-
-		try {
-			return new Image(device, path);
-		} catch (SWTException exception) {
-			// If we fail fall back to the slower input stream method.
-		}
-		return super.createImage(returnMissingImageOnError, device);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts.properties
deleted file mode 100644
index 129ec90..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts.properties
+++ /dev/null
@@ -1,23 +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
-###############################################################################
-# Generic NLS font file for JFace
-# *.0 is Windows font
-# *.1 is Unix font
-#############################################################
-org.eclipse.jface.bannerfont.0=MS Sans Serif-bold-10
-org.eclipse.jface.bannerfont.1=b&h-lucidabright-regular-10
-
-org.eclipse.jface.headerfont.0=MS Sans Serif-bold-12
-org.eclipse.jface.headerfont.1=b&h-lucidabright-regular-12
-
-org.eclipse.jface.textfont.0=Courier New-regular-10
-org.eclipse.jface.textfont.1=Courier-regular-10
-org.eclipse.jface.textfont.2=b&h-lucidabright-regular-9
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_aix.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_aix.properties
deleted file mode 100644
index 9254f94..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_aix.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-# Aix font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=adobe-courier-bold-14
-org.eclipse.jface.headerfont.0=misc-fixed-bold-14
-org.eclipse.jface.textfont.0=adobe-courier-regular-12
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_hp-ux.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_hp-ux.properties
deleted file mode 100644
index 6883353..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_hp-ux.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-# HP UX font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=adobe-courier-bold-14
-org.eclipse.jface.headerfont.0=adobe-courier-regular-14
-org.eclipse.jface.textfont.0=adobe-courier-regular-14
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux.properties
deleted file mode 100644
index 39b6899..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-# Linux font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=adobe-courier-bold-14
-org.eclipse.jface.headerfont.0=misc-fixed-bold-14
-org.eclipse.jface.textfont.0=adobe-courier-regular-12
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux_gtk.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux_gtk.properties
deleted file mode 100644
index b743b2e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_linux_gtk.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-# Linux GTK font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=Sans-bold-10
-org.eclipse.jface.headerfont.0=Sans-bold-12
-org.eclipse.jface.textfont.0=Monospace-regular-10
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_macosx.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_macosx.properties
deleted file mode 100644
index 6197fa4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_macosx.properties
+++ /dev/null
@@ -1,18 +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
-###############################################################################
-# Carbon font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=Lucida Grande-bold-12
-org.eclipse.jface.headerfont.0=Lucida Grande-bold-14
-
-org.eclipse.jface.textfont.0=Monaco-regular-11
-org.eclipse.jface.textfont.1=Courier-regular-12
-org.eclipse.jface.textfont.2=Courier New-regular-12
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_qnx.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_qnx.properties
deleted file mode 100644
index b1c216d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_qnx.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# QNX font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=TextFont-bold-9
-org.eclipse.jface.headerfont.0=TextFont-bold-9
-org.eclipse.jface.textfont.0=TextFont-regular-9
-
-
-
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_sunos.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_sunos.properties
deleted file mode 100644
index a10c0be..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_sunos.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-# Solaris font file for JFace
-#############################################################
-org.eclipse.jface.bannerfont.0=adobe-courier-bold-14
-org.eclipse.jface.headerfont.0=misc-fixed-bold-14
-org.eclipse.jface.textfont.0=adobe-courier-regular-12
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows2000.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows2000.properties
deleted file mode 100644
index c152f1c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows2000.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-# NLS font file for JFace when running under Windows 2000
-#############################################################
-org.eclipse.jface.bannerfont.0=Tahoma-bold-10
-
-org.eclipse.jface.headerfont.0=Tahoma-bold-12
-
-org.eclipse.jface.textfont.0=Courier New-regular-10
-org.eclipse.jface.textfont.1=Courier-regular-10
-org.eclipse.jface.textfont.2=Lucida Console-regular-9
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows98.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows98.properties
deleted file mode 100644
index 5a23376..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windows98.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-# NLS font file for JFace when running under Windows 98
-#############################################################
-org.eclipse.jface.bannerfont.0=MS Sans Serif-bold-10
-
-org.eclipse.jface.headerfont.0=MS Sans Serif-bold-12
-
-org.eclipse.jface.textfont.0=Courier New-regular-10
-org.eclipse.jface.textfont.1=Courier-regular-10
-org.eclipse.jface.textfont.2=Lucida Console-regular-9
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsnt.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsnt.properties
deleted file mode 100644
index 41740b0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsnt.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-# NLS font file for JFace when running under Windows NT
-#############################################################
-org.eclipse.jface.bannerfont.0=MS Sans Serif-bold-10
-
-org.eclipse.jface.headerfont.0=MS Sans Serif-bold-12
-
-org.eclipse.jface.textfont.0=Courier New-regular-10
-org.eclipse.jface.textfont.1=Courier-regular-10
-org.eclipse.jface.textfont.2=Lucida Console-regular-9
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsxp.properties b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsxp.properties
deleted file mode 100644
index 6888654..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/jfacefonts_windowsxp.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-# NLS font file for JFace when running under Windows XP
-#############################################################
-org.eclipse.jface.bannerfont.0=Tahoma-bold-10
-
-org.eclipse.jface.headerfont.0=Tahoma-bold-12
-
-org.eclipse.jface.textfont.0=Courier New-regular-10
-org.eclipse.jface.textfont.1=Courier-regular-10
-org.eclipse.jface.textfont.2=Lucida Console-regular-9
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/package.html
deleted file mode 100644
index d380325..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/resource/package.html
+++ /dev/null
@@ -1,51 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides support for managing resources such as SWT
-fonts and images.
-<h2>
-Package Specification</h2>
-This package contains support for managing resources, including:
-<ul>
-<li>
-font registries (<tt>FontRegistry</tt>) - for hanging on to the SWT font
-objects needed by an application</li>
-
-<li>
-color registries (<tt>ColorRegistry</tt>) - for hanging on to the SWT color 
-objects needed by an application</li>
-
-<li>
-image registries (<tt>ImageRegistry</tt>) - for hanging on to the SWT image
-objects needed by an application</li>
-
-<li>
-image descriptors (<tt>ImageDescriptor</tt>) - surrogate object for creating
-SWT images</li>
-
-<li>
-string conversion (<tt>StringConverter</tt>) - for parsing property files</li>
-</ul>
-The JFace resources module is an independent JFace module requiring a basic
-knowledge of SWT and the JFace property change event mechanism. Familiarity
-with other JFace modules is not required.
-<p>Image descriptors are objects that knows how to create an image on demand.
-They serve as a lightweight representation of images in situations where
-no SWT display exists yet, and are used mainly in conjunction with image
-registries. This package contains the image descriptor framework, which
-is a simple hierarchy rooted at the abstract class <tt>ImageDescriptor</tt>.
-The framework includes abstract subclasses for composing images (<tt>CompositeImageDescriptor</tt>)
-as well as a ready-made concrete subclass for loading images from files
-(<tt>FileImageDescriptor</tt>).
-<p>The class <tt>JFaceResources</tt> maintains global state on behalf of
-JFace itself consisting of JFace's own image registry, font registry, resource
-bundle, and preference store.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Assert.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Assert.java
deleted file mode 100644
index 35e104f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Assert.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.util;
-
-/**
- * <code>Assert</code> is useful for for embedding runtime sanity checks
- * in code. The static predicate methods all test a condition and throw some
- * type of unchecked exception if the condition does not hold.
- * <p>
- * Assertion failure exceptions, like most runtime exceptions, are
- * thrown when something is misbehaving. Assertion failures are invariably
- * unspecified behavior; consequently, clients should never rely on
- * these being thrown (or not thrown). <b>If you find yourself in the
- * position where you need to catch an assertion failure, you have most
- * certainly written your program incorrectly.</b>
- * </p>
- * <p>
- * Note that an <code>assert</code> statement is slated to be added to the
- * Java language in JDK 1.4, rending this class obsolete.
- * 
- * @deprecated As of 3.3, replaced by {@link org.eclipse.core.runtime.Assert}
- * </p>
- */
-public final class Assert {
-
-    /**
-     * <code>AssertionFailedException</code> is a runtime exception thrown
-     * by some of the methods in <code>Assert</code>.
-     * <p>
-     * This class is not declared public to prevent some misuses; programs that catch
-     * or otherwise depend on assertion failures are susceptible to unexpected
-     * breakage when assertions in the code are added or removed.
-     * </p>
-     */
-    private static class AssertionFailedException extends RuntimeException {
-
-        /**
-         * Generated serial version UID for this class.
-         * @since 3.1
-         */
-        private static final long serialVersionUID = 3257852073508024376L;
-
-        /**
-         * Constructs a new exception with the given message.
-         * @param detail the detail message
-         */
-        public AssertionFailedException(String detail) {
-            super(detail);
-        }
-    }
-
-    /* This class is not intended to be instantiated. */
-    private Assert() {
-    }
-
-    /**
-     * Asserts that an argument is legal. If the given boolean is
-     * not <code>true</code>, an <code>IllegalArgumentException</code>
-     * is thrown.
-     *
-     * @param expression the outcome of the check
-     * @return <code>true</code> if the check passes (does not return
-     *    if the check fails)
-     * @exception IllegalArgumentException if the legality test failed
-     */
-    public static boolean isLegal(boolean expression) {
-        // succeed as quickly as possible
-        if (expression) {
-            return true;
-        }
-        return isLegal(expression, "");//$NON-NLS-1$
-    }
-
-    /**
-     * Asserts that an argument is legal. If the given boolean is
-     * not <code>true</code>, an <code>IllegalArgumentException</code>
-     * is thrown.
-     * The given message is included in that exception, to aid debugging.
-     *
-     * @param expression the outcome of the check
-     * @param message the message to include in the exception
-     * @return <code>true</code> if the check passes (does not return
-     *    if the check fails)
-     * @exception IllegalArgumentException if the legality test failed
-     */
-    public static boolean isLegal(boolean expression, String message) {
-        if (!expression) {
-			throw new IllegalArgumentException("assertion failed; " + message); //$NON-NLS-1$
-		}
-        return expression;
-    }
-
-    /**
-     * Asserts that the given object is not <code>null</code>. If this
-     * is not the case, some kind of unchecked exception is thrown.
-     * <p>
-     * As a general rule, parameters passed to API methods must not be
-     * <code>null</code> unless <b>explicitly</b> allowed in the method's
-     * specification. Similarly, results returned from API methods are never
-     * <code>null</code> unless <b>explicitly</b> allowed in the method's
-     * specification. Implementations are encouraged to make regular use of
-     * <code>Assert.isNotNull</code> to ensure that <code>null</code>
-     * parameters are detected as early as possible.
-     * </p>
-     * 
-     * @param object the value to test
-     * @exception AssertionFailedException an unspecified unchecked exception if the object
-     *   is <code>null</code>
-     */
-    public static void isNotNull(Object object) {
-        // succeed as quickly as possible
-        if (object != null) {
-            return;
-        }
-        isNotNull(object, "");//$NON-NLS-1$
-    }
-
-    /**
-     * Asserts that the given object is not <code>null</code>. If this
-     * is not the case, some kind of unchecked exception is thrown.
-     * The given message is included in that exception, to aid debugging.
-     * <p>
-     * As a general rule, parameters passed to API methods must not be
-     * <code>null</code> unless <b>explicitly</b> allowed in the method's
-     * specification. Similarly, results returned from API methods are never
-     * <code>null</code> unless <b>explicitly</b> allowed in the method's
-     * specification. Implementations are encouraged to make regular use of
-     * <code>Assert.isNotNull</code> to ensure that <code>null</code>
-     * parameters are detected as early as possible.
-     * </p>
-     * 
-     * @param object the value to test
-     * @param message the message to include in the exception
-     * @exception AssertionFailedException an unspecified unchecked exception if the object
-     *   is <code>null</code>
-     */
-    public static void isNotNull(Object object, String message) {
-        if (object == null) {
-			throw new AssertionFailedException("null argument;" + message);//$NON-NLS-1$
-		}
-    }
-
-    /**
-     * Asserts that the given boolean is <code>true</code>. If this
-     * is not the case, some kind of unchecked exception is thrown.
-     *
-     * @param expression the outcome of the check
-     * @return <code>true</code> if the check passes (does not return
-     *    if the check fails)
-     */
-    public static boolean isTrue(boolean expression) {
-        // succeed as quickly as possible
-        if (expression) {
-            return true;
-        }
-        return isTrue(expression, "");//$NON-NLS-1$
-    }
-
-    /**
-     * Asserts that the given boolean is <code>true</code>. If this
-     * is not the case, some kind of unchecked exception is thrown.
-     * The given message is included in that exception, to aid debugging.
-     *
-     * @param expression the outcome of the check
-     * @param message the message to include in the exception
-     * @return <code>true</code> if the check passes (does not return
-     *    if the check fails)
-     */
-    public static boolean isTrue(boolean expression, String message) {
-        if (!expression) {
-			throw new AssertionFailedException("Assertion failed: " + message);//$NON-NLS-1$
-		}
-        return expression;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java
deleted file mode 100644
index ca33cf7..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ConfigureColumns.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.util;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * Utilities for configuring columns of trees and tables in a
- * keyboard-accessible way.
- * 
- * @since 3.5
- * 
- */
-public class ConfigureColumns {
-
-	/**
-	 * Configure the columns of the given tree in a keyboard-accessible way,
-	 * using the given shell provider to parent dialogs.
-	 * 
-	 * @param tree the tree
-	 * @param shellProvider a shell provider
-	 * @return <code>false</code> if the user canceled, <code>true</code>
-	 *         otherwise
-	 */
-	public static boolean forTree(Tree tree, IShellProvider shellProvider) {
-		return new ConfigureColumnsDialog(shellProvider, tree).open() == Window.OK;
-	}
-
-	/**
-	 * Configure the columns of the given tree in a keyboard-accessible way,
-	 * using the given shell provider to parent dialogs.
-	 * 
-	 * @param table the table
-	 * @param shellProvider a shell provider
-	 * @return <code>false</code> if the user canceled, <code>true</code>
-	 *         otherwise
-	 */
-	public static boolean forTable(Table table, IShellProvider shellProvider) {
-		return new ConfigureColumnsDialog(shellProvider, table).open() == Window.OK;
-	}
-
-	/**
-	 * NON-API - This class is internal.
-	 * 
-	 */
-	static class ConfigureColumnsDialog extends Dialog {
-
-		private Control targetControl;
-		private ColumnObject[] columnObjects;
-		private Table table;
-		private Button upButton;
-		private Button downButton;
-		private Text text;
-		private boolean moveableColumnsFound;
-
-		class ColumnObject {
-			Item column;
-			int index;
-			String name;
-			Image image;
-			boolean visible;
-			int width;
-			boolean moveable;
-			boolean resizable;
-
-			ColumnObject(Item column, int index, String text, Image image, int width,
-					boolean moveable, boolean resizable, boolean visible) {
-				this.column = column;
-				this.index = index;
-				this.name = text;
-				this.image = image;
-				this.width = width;
-				this.moveable = moveable;
-				this.resizable = resizable;
-				this.visible = visible;
-			}
-		}
-
-		/**
-		 * NON-API - This class is internal and will be moved to another package
-		 * in 3.5. Creates a new dialog for configuring columns of the given
-		 * column viewer. The column viewer must have an underlying {@link Tree}
-		 * or {@link Table}, other controls are not supported.
-		 * 
-		 * @param shellProvider
-		 * @param table
-		 */
-		public ConfigureColumnsDialog(IShellProvider shellProvider, Table table) {
-			this(shellProvider, (Control) table);
-		}
-
-		/**
-		 * NON-API - This class is internal and will be moved to another package
-		 * in 3.5. Creates a new dialog for configuring columns of the given
-		 * column viewer. The column viewer must have an underlying {@link Tree}
-		 * or {@link Table}, other controls are not supported.
-		 * 
-		 * @param shellProvider
-		 * @param tree
-		 */
-		public ConfigureColumnsDialog(IShellProvider shellProvider, Tree tree) {
-			this(shellProvider, (Control) tree);
-		}
-
-		/**
-		 * @param shellProvider
-		 * @param control
-		 */
-		private ConfigureColumnsDialog(IShellProvider shellProvider, Control control) {
-			super(shellProvider);
-			this.targetControl = control;
-			this.moveableColumnsFound = createColumnObjects();
-		}
-
-		protected boolean isResizable() {
-			return true;
-		}
-
-		public void create() {
-			super.create();
-			getShell().setText(JFaceResources.getString("ConfigureColumnsDialog_Title")); //$NON-NLS-1$
-		}
-
-		protected void initializeBounds() {
-			super.initializeBounds();
-			table.setSelection(0);
-			handleSelectionChanged(0);
-		}
-
-		/**
-		 * Returns true if any of the columns is moveable (can be reordered).
-		 */
-		private boolean createColumnObjects() {
-			boolean result = true;
-			Item[] columns = getViewerColumns();
-			ColumnObject[] cObjects = new ColumnObject[columns.length];
-			for (int i = 0; i < columns.length; i++) {
-				Item c = columns[i];
-				boolean moveable = getMoveable(c);
-				result = result && moveable;
-				cObjects[i] = new ColumnObject(c, i, getColumnName(c), getColumnImage(c),
-						getColumnWidth(c), moveable, getResizable(c), true);
-			}
-			int[] columnOrder = getColumnOrder();
-			columnObjects = new ColumnObject[columns.length];
-			for (int i = 0; i < columnOrder.length; i++) {
-				columnObjects[i] = cObjects[columnOrder[i]];
-			}
-			return result;
-		}
-
-		/**
-		 * @param c
-		 * @return
-		 */
-		private Image getColumnImage(Item item) {
-			if (item instanceof TableColumn) {
-				return ((TableColumn) item).getImage();
-			} else if (item instanceof TreeColumn) {
-				return ((TreeColumn) item).getImage();
-			}
-			return null;
-		}
-
-		/**
-		 * @return
-		 */
-		private int[] getColumnOrder() {
-			if (targetControl instanceof Table) {
-				return ((Table) targetControl).getColumnOrder();
-			} else if (targetControl instanceof Tree) {
-				return ((Tree) targetControl).getColumnOrder();
-			}
-			return new int[0];
-		}
-
-		/**
-		 * @param c
-		 * @return
-		 */
-		private boolean getMoveable(Item item) {
-			if (item instanceof TableColumn) {
-				return ((TableColumn) item).getMoveable();
-			} else if (item instanceof TreeColumn) {
-				return ((TreeColumn) item).getMoveable();
-			}
-			return false;
-		}
-
-		/**
-		 * @param c
-		 * @return
-		 */
-		private boolean getResizable(Item item) {
-			if (item instanceof TableColumn) {
-				return ((TableColumn) item).getResizable();
-			} else if (item instanceof TreeColumn) {
-				return ((TreeColumn) item).getResizable();
-			}
-			return false;
-		}
-
-		protected Control createDialogArea(Composite parent) {
-			Composite composite = (Composite) super.createDialogArea(parent);
-
-			table = new Table(composite, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL
-					| SWT.H_SCROLL /*
-									 * | SWT.CHECK
-									 */);
-			for (int i = 0; i < columnObjects.length; i++) {
-				TableItem tableItem = new TableItem(table, SWT.NONE);
-				tableItem.setText(columnObjects[i].name);
-				tableItem.setImage(columnObjects[i].image);
-				tableItem.setData(columnObjects[i]);
-			}
-
-			GridDataFactory.defaultsFor(table).span(1, moveableColumnsFound ? 3 : 1)
-					.applyTo(table);
-
-			if (moveableColumnsFound) {
-				upButton = new Button(composite, SWT.PUSH);
-				upButton.setText(JFaceResources.getString("ConfigureColumnsDialog_up")); //$NON-NLS-1$
-				upButton.addListener(SWT.Selection, new Listener() {
-					public void handleEvent(Event event) {
-						handleMove(table, true);
-					}
-				});
-				setButtonLayoutData(upButton);
-				downButton = new Button(composite, SWT.PUSH);
-				downButton.setText(JFaceResources
-						.getString("ConfigureColumnsDialog_down")); //$NON-NLS-1$
-				downButton.addListener(SWT.Selection, new Listener() {
-					public void handleEvent(Event event) {
-						handleMove(table, false);
-					}
-				});
-				setButtonLayoutData(downButton);
-
-				// filler label
-				createLabel(composite, ""); //$NON-NLS-1$
-			}
-
-			Composite widthComposite = new Composite(composite, SWT.NONE);
-			createLabel(widthComposite, JFaceResources
-					.getString("ConfigureColumnsDialog_WidthOfSelectedColumn")); //$NON-NLS-1$
-
-			text = new Text(widthComposite, SWT.SINGLE | SWT.BORDER);
-			// see #initializeBounds
-			text.setText(Integer.toString(1000));
-
-			GridLayoutFactory.fillDefaults().numColumns(2).applyTo(widthComposite);
-
-			int numColumns = moveableColumnsFound ? 2 : 1;
-
-			GridDataFactory.defaultsFor(widthComposite).grab(false, false).span(
-					numColumns, 1).applyTo(widthComposite);
-
-			GridLayoutFactory.swtDefaults().numColumns(numColumns).applyTo(composite);
-
-			table.addListener(SWT.Selection, new Listener() {
-				public void handleEvent(Event event) {
-					handleSelectionChanged(table.indexOf((TableItem) event.item));
-				}
-			});
-			text.addListener(SWT.Modify, new Listener() {
-				public void handleEvent(Event event) {
-					ColumnObject columnObject = columnObjects[table.getSelectionIndex()];
-					if (!columnObject.resizable) {
-						return;
-					}
-					try {
-						int width = Integer.parseInt(text.getText());
-						columnObject.width = width;
-					} catch (NumberFormatException ex) {
-						// ignore for now
-					}
-				}
-			});
-
-			Dialog.applyDialogFont(composite);
-
-			return composite;
-		}
-
-		/**
-		 * @param table
-		 * @param up
-		 */
-		protected void handleMove(Table table, boolean up) {
-			int index = table.getSelectionIndex();
-			int newIndex = index + (up ? -1 : 1);
-			if (index < 0 || index >= table.getItemCount()) {
-				return;
-			}
-			ColumnObject columnObject = columnObjects[index];
-			columnObjects[index] = columnObjects[newIndex];
-			columnObjects[newIndex] = columnObject;
-			table.getItem(index).dispose();
-			TableItem newItem = new TableItem(table, SWT.NONE, newIndex);
-			newItem.setText(columnObject.name);
-			newItem.setImage(columnObject.image);
-			newItem.setData(columnObject);
-			table.setSelection(newIndex);
-			handleSelectionChanged(newIndex);
-		}
-
-		private void createLabel(final Composite composite, String string) {
-			Label label = new Label(composite, SWT.NONE);
-			label.setText(string);
-		}
-
-		/**
-		 * @param item
-		 * @return
-		 */
-		private String getColumnName(Item item) {
-			String result = ""; //$NON-NLS-1$
-			if (item instanceof TableColumn) {
-				result = ((TableColumn) item).getText();
-				if (result.trim().equals("")) { //$NON-NLS-1$
-					result = ((TableColumn) item).getToolTipText();
-				}
-			} else if (item instanceof TreeColumn) {
-				result = ((TreeColumn) item).getText();
-				if (result.trim().equals("")) { //$NON-NLS-1$
-					result = ((TreeColumn) item).getToolTipText();
-				}
-			}
-			return result;
-		}
-
-		/**
-		 * @param item
-		 * @return
-		 */
-		private int getColumnWidth(Item item) {
-			if (item instanceof TableColumn) {
-				return ((TableColumn) item).getWidth();
-			} else if (item instanceof TreeColumn) {
-				return ((TreeColumn) item).getWidth();
-			}
-			return 0;
-		}
-
-		/**
-		 * @return
-		 */
-		private Item[] getViewerColumns() {
-			if (targetControl instanceof Table) {
-				return ((Table) targetControl).getColumns();
-			} else if (targetControl instanceof Tree) {
-				return ((Tree) targetControl).getColumns();
-			}
-			return new Item[0];
-		}
-
-		private void handleSelectionChanged(int index) {
-			ColumnObject c = columnObjects[index];
-			text.setText(Integer.toString(c.width));
-			text.setEnabled(c.resizable);
-			if (moveableColumnsFound) {
-				upButton.setEnabled(c.moveable && index > 0);
-				downButton.setEnabled(c.moveable && index + 1 < table.getItemCount());
-			}
-		}
-
-		protected void okPressed() {
-			int[] columnOrder = new int[columnObjects.length];
-			for (int i = 0; i < columnObjects.length; i++) {
-				ColumnObject columnObject = columnObjects[i];
-				columnOrder[i] = columnObject.index;
-				setColumnWidth(columnObject.column, columnObject.width);
-			}
-			setColumnOrder(columnOrder);
-			super.okPressed();
-		}
-
-		/**
-		 * @param column
-		 * @param width
-		 */
-		private void setColumnWidth(Item item, int width) {
-			if (item instanceof TableColumn) {
-				((TableColumn) item).setWidth(width);
-			} else if (item instanceof TreeColumn) {
-				((TreeColumn) item).setWidth(width);
-			}
-		}
-
-		/**
-		 * @param columnOrder
-		 */
-		private void setColumnOrder(int[] order) {
-			if (targetControl instanceof Table) {
-				((Table) targetControl).setColumnOrder(order);
-			} else if (targetControl instanceof Tree) {
-				((Tree) targetControl).setColumnOrder(order);
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDragAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDragAdapter.java
deleted file mode 100644
index b1483db..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDragAdapter.java
+++ /dev/null
@@ -1,268 +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.jface.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * A <code>DelegatingDragAdapter</code> is a <code>DragSourceListener</code> that  
- * maintains and delegates to a set of {@link TransferDragSourceListener}s. Each 
- * TransferDragSourceListener can then be implemented as if it were the 
- * <code>DragSource's</code> only DragSourceListener.
- * <p>
- * When a drag is started, a subset of all <code>TransferDragSourceListeners</code>
- * is generated and stored in a list of <i>active</i> listeners. This subset is
- * calculated by forwarding {@link DragSourceListener#dragStart(DragSourceEvent)} to 
- * every listener, and checking if the {@link DragSourceEvent#doit doit} field is left 
- * set to <code>true</code>.
- * </p> 
- * The <code>DragSource</code>'s set of supported Transfer types ({@link
- * DragSource#setTransfer(Transfer[])}) is updated to reflect the Transfer types
- * corresponding to the active listener subset.
- * <p>
- * If and when {@link #dragSetData(DragSourceEvent)} is called, a single
- * <code>TransferDragSourceListener</code> is chosen, and only it is allowed to set the
- * drag data. The chosen listener is the first listener in the subset of active listeners
- * whose Transfer supports ({@link Transfer#isSupportedType(TransferData)}) the 
- * <code>dataType</code> in the <code>DragSourceEvent</code>.
- * </p>
- * <p>
- * The following example snippet shows a <code>DelegatingDragAdapter</code> with two
- * <code>TransferDragSourceListeners</code>. One implements drag of text strings, 
- * the other supports file transfer and demonstrates how a listener can be disabled using
- * the dragStart method. 
- * </p>
- * <code><pre>
- *		final TreeViewer viewer = new TreeViewer(shell, SWT.NONE);
- *		
- *		DelegatingDragAdapter dragAdapter = new DelegatingDragAdapter();		
- *		dragAdapter.addDragSourceListener(new TransferDragSourceListener() {
- *			public Transfer getTransfer() {
- *				return TextTransfer.getInstance();
- *			}
- *			public void dragStart(DragSourceEvent event) {
- *				// always enabled, can control enablement based on selection etc.
- *			}
- *			public void dragSetData(DragSourceEvent event) {
- *				event.data = "Transfer data";
- *			}
- *			public void dragFinished(DragSourceEvent event) {
- *				// no clean-up required
- *			}
- *		});
- *		dragAdapter.addDragSourceListener(new TransferDragSourceListener() {
- *			public Transfer getTransfer() {
- *				return FileTransfer.getInstance();
- *			}
- *			public void dragStart(DragSourceEvent event) {
- *				// enable drag listener if there is a viewer selection
- *				event.doit = !viewer.getSelection().isEmpty();
- *			}
- *			public void dragSetData(DragSourceEvent event) {
- *				File file1 = new File("C:/temp/file1");
- *				File file2 = new File("C:/temp/file2");
- *				event.data = new String[] {file1.getAbsolutePath(), file2.getAbsolutePath()};
- *			}
- *			public void dragFinished(DragSourceEvent event) {
- *				// no clean-up required
- *			}
- *		});
- *		viewer.addDragSupport(DND.DROP_COPY | DND.DROP_MOVE, dragAdapter.getTransfers(), dragAdapter);
- * </pre></code>
- * @since 3.0
- */
-public class DelegatingDragAdapter implements DragSourceListener {
-    private List listeners = new ArrayList();
-
-    private List activeListeners = new ArrayList();
-
-    private TransferDragSourceListener currentListener;
-
-    /**
-     * Adds the given <code>TransferDragSourceListener</code>.
-     * 
-     * @param listener the new listener
-     */
-    public void addDragSourceListener(TransferDragSourceListener listener) {
-        listeners.add(listener);
-    }
-
-    /**
-     * The drop has successfully completed. This event is forwarded to the current 
-     * drag listener.
-     * Doesn't update the current listener, since the current listener  is already the one
-     * that completed the drag operation.
-     * 
-     * @param event the drag source event
-     * @see DragSourceListener#dragFinished(DragSourceEvent)
-     */
-    public void dragFinished(final DragSourceEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drag Finished: " + toString()); //$NON-NLS-1$
-        SafeRunnable.run(new SafeRunnable() {
-            public void run() throws Exception {
-                if (currentListener != null) {
-                    // there is a listener that can handle the drop, delegate the event
-                    currentListener.dragFinished(event);
-                } else {
-                    // The drag was canceled and currentListener was never set, so send the
-                    // dragFinished event to all the active listeners. 
-                    Iterator iterator = activeListeners.iterator();
-                    while (iterator.hasNext()) {
-						((TransferDragSourceListener) iterator.next())
-                                .dragFinished(event);
-					}
-                }
-            }
-        });
-        currentListener = null;
-        activeListeners.clear();
-    }
-
-    /**
-     * The drop data is requested.
-     * Updates the current listener and then forwards the event to it.
-     * 
-     * @param event the drag source event
-     * @see DragSourceListener#dragSetData(DragSourceEvent)
-     */
-    public void dragSetData(final DragSourceEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drag Set Data: " + toString()); //$NON-NLS-1$
-
-        updateCurrentListener(event); // find a listener that can provide the given data type
-        if (currentListener != null) {
-        	SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    currentListener.dragSetData(event);
-                }
-            });
-        }
-    }
-
-    /**
-     * A drag operation has started.
-     * Forwards this event to each listener. A listener must set <code>event.doit</code> 
-     * to <code>false</code> if it cannot handle the drag operation. If a listener can  
-     * handle the drag, it is added to the list of active listeners.  
-     * The drag is aborted if there are no listeners that can handle it.  
-     * 
-     * @param event the drag source event
-     * @see DragSourceListener#dragStart(DragSourceEvent)
-     */
-    public void dragStart(final DragSourceEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drag Start: " + toString()); //$NON-NLS-1$
-        boolean doit = false; // true if any one of the listeners can handle the drag
-        List transfers = new ArrayList(listeners.size());
-
-        activeListeners.clear();
-        for (int i = 0; i < listeners.size(); i++) {
-            final TransferDragSourceListener listener = (TransferDragSourceListener) listeners
-                    .get(i);
-            event.doit = true; // restore event.doit
-            SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    listener.dragStart(event);
-                }
-            });
-            if (event.doit) { // the listener can handle this drag
-                transfers.add(listener.getTransfer());
-                activeListeners.add(listener);
-            }
-            doit |= event.doit;
-        }
-
-        if (doit) {
-			((DragSource) event.widget).setTransfer((Transfer[]) transfers
-                    .toArray(new Transfer[transfers.size()]));
-		}
-
-        event.doit = doit;
-    }
-
-    /**
-     * Returns the <code>Transfer<code>s from every <code>TransferDragSourceListener</code>.
-     * 
-     * @return the combined <code>Transfer</code>s
-     */
-    public Transfer[] getTransfers() {
-        Transfer[] types = new Transfer[listeners.size()];
-        for (int i = 0; i < listeners.size(); i++) {
-            TransferDragSourceListener listener = (TransferDragSourceListener) listeners
-                    .get(i);
-            types[i] = listener.getTransfer();
-        }
-        return types;
-    }
-
-    /**
-     * Returns <code>true</code> if there are no listeners to delegate drag events to.
-     * 
-     * @return <code>true</code> if there are no <code>TransferDragSourceListeners</code>
-     * 	<code>false</code> otherwise.
-     */
-    public boolean isEmpty() {
-        return listeners.isEmpty();
-    }
-
-    /**
-     * Removes the given <code>TransferDragSourceListener</code>.
-     * Listeners should not be removed while a drag and drop operation is in progress.
-     *  
-     * @param listener the <code>TransferDragSourceListener</code> to remove
-     */
-    public void removeDragSourceListener(TransferDragSourceListener listener) {
-        listeners.remove(listener);
-        if (currentListener == listener) {
-			currentListener = null;
-		}
-        if (activeListeners.contains(listener)) {
-			activeListeners.remove(listener);
-		}
-    }
-
-    /**
-     * Updates the current listener to one that can handle the drag. There can 
-     * be many listeners and each listener may be able to handle many <code>TransferData</code> 
-     * types.  The first listener found that supports one of the <code>TransferData</ode> 
-     * types specified in the <code>DragSourceEvent</code> will be selected.
-     * 
-     * @param event the drag source event
-     */
-    private void updateCurrentListener(DragSourceEvent event) {
-        currentListener = null;
-        if (event.dataType == null) {
-			return;
-		}
-        Iterator iterator = activeListeners.iterator();
-        while (iterator.hasNext()) {
-            TransferDragSourceListener listener = (TransferDragSourceListener) iterator
-                    .next();
-
-            if (listener.getTransfer().isSupportedType(event.dataType)) {
-                //				if (Policy.DEBUG_DRAG_DROP)
-                //					System.out.println("Current drag listener: " + listener); //$NON-NLS-1$			
-                currentListener = listener;
-                return;
-            }
-        }
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDropAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDropAdapter.java
deleted file mode 100644
index d9626c5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/DelegatingDropAdapter.java
+++ /dev/null
@@ -1,384 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * A <code>DelegatingDropAdapter</code> is a <code>DropTargetListener</code> that 
- * maintains and delegates to a set of {@link TransferDropTargetListener}s. Each 
- * <code>TransferDropTargetListener</code> can then be implemented as if it were 
- * the DropTarget's only <code>DropTargetListener</code>.
- * <p>
- * On <code>dragEnter</code>, <code>dragOperationChanged</code>, <code>dragOver</code>
- * and <code>drop</code>, a <i>current</i> listener is obtained from the set of all 
- * <code>TransferDropTargetListeners</code>. The current listener is the first listener 
- * to return <code>true</code> for 
- * {@link TransferDropTargetListener#isEnabled(DropTargetEvent)}.
- * The current listener is forwarded all <code>DropTargetEvents</code> until some other
- * listener becomes the current listener, or the drop terminates.
- * </p>
- * <p>
- * After adding all <code>TransferDropTargetListeners</code> to the 
- * <code>DelegatingDropAdapter</code> the combined set of <code>Transfers</code> should 
- * be set in the SWT <code>DropTarget</code>. <code>#getTransfers()</code> provides the 
- * set of <code>Transfer</code> types of all <code>TransferDropTargetListeners</code>. 
- * </p>
- * <p>
- * The following example snippet shows a <code>DelegatingDropAdapter</code> with two
- * <code>TransferDropTargetListeners</code>. One supports dropping resources and 
- * demonstrates how a listener can be disabled in the isEnabled method. 
- * The other listener supports text transfer. 
- * </p>
- * <code><pre>
- *		final TreeViewer viewer = new TreeViewer(shell, SWT.NONE);
- * 		DelegatingDropAdapter dropAdapter = new DelegatingDropAdapter();
- *		dropAdapter.addDropTargetListener(new TransferDropTargetListener() {
- *			public Transfer getTransfer() {
- *				return ResourceTransfer.getInstance();
- *			}
- *			public boolean isEnabled(DropTargetEvent event) {
- *				// disable drop listener if there is no viewer selection
- *				if (viewer.getSelection().isEmpty())
- *					return false;
- *				return true;
- *			}
- *			public void dragEnter(DropTargetEvent event) {}
- *			public void dragLeave(DropTargetEvent event) {}
- *			public void dragOperationChanged(DropTargetEvent event) {}
- *			public void dragOver(DropTargetEvent event) {}
- *			public void drop(DropTargetEvent event) {
- *				if (event.data == null)
- *					return;
- *				IResource[] resources = (IResource[]) event.data;
- *				if (event.detail == DND.DROP_COPY) {
- *					// copy resources
- *				} else {
- *					// move resources
- *				}
- *					
- *			}
- *			public void dropAccept(DropTargetEvent event) {}
- *		});
- *		dropAdapter.addDropTargetListener(new TransferDropTargetListener() {
- *			public Transfer getTransfer() {
- *				return TextTransfer.getInstance();
- *			}
- *			public boolean isEnabled(DropTargetEvent event) {
- *				return true;
- *			}
- *			public void dragEnter(DropTargetEvent event) {}
- *			public void dragLeave(DropTargetEvent event) {}
- *			public void dragOperationChanged(DropTargetEvent event) {}
- *			public void dragOver(DropTargetEvent event) {}
- *			public void drop(DropTargetEvent event) {
- *				if (event.data == null)
- *					return;
- *				System.out.println(event.data);
- *			}
- *			public void dropAccept(DropTargetEvent event) {}
- *		});		
- *		viewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, dropAdapter.getTransfers(), dropAdapter);
- * </pre></code>
- * @since 3.0
- */
-public class DelegatingDropAdapter implements DropTargetListener {
-    private List listeners = new ArrayList();
-
-    private TransferDropTargetListener currentListener;
-
-    private int originalDropType;
-
-    /**
-     * Adds the given <code>TransferDropTargetListener</code>.
-     * 
-     * @param listener the new listener
-     */
-    public void addDropTargetListener(TransferDropTargetListener listener) {
-        listeners.add(listener);
-    }
-
-    /**
-     * The cursor has entered the drop target boundaries. The current listener is 
-     * updated, and <code>#dragEnter()</code> is forwarded to the current listener.
-     * 
-     * @param event the drop target event 
-     * @see DropTargetListener#dragEnter(DropTargetEvent)
-     */
-    public void dragEnter(DropTargetEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drag Enter: " + toString()); //$NON-NLS-1$
-        originalDropType = event.detail;
-        updateCurrentListener(event);
-    }
-
-    /**
-     * The cursor has left the drop target boundaries. The event is forwarded to the 
-     * current listener.
-     * 
-     * @param event the drop target event
-     * @see DropTargetListener#dragLeave(DropTargetEvent)
-     */
-    public void dragLeave(final DropTargetEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drag Leave: " + toString()); //$NON-NLS-1$
-        setCurrentListener(null, event);
-    }
-
-    /**
-     * The operation being performed has changed (usually due to the user changing 
-     * a drag modifier key while dragging). Updates the current listener and forwards 
-     * this event to that listener.
-     * 
-     * @param event the drop target event
-     * @see DropTargetListener#dragOperationChanged(DropTargetEvent)
-     */
-    public void dragOperationChanged(final DropTargetEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drag Operation Changed to: " + event.detail); //$NON-NLS-1$
-        originalDropType = event.detail;
-        TransferDropTargetListener oldListener = getCurrentListener();
-        updateCurrentListener(event);
-        final TransferDropTargetListener newListener = getCurrentListener();
-        // only notify the current listener if it hasn't changed based on the 
-        // operation change. otherwise the new listener would get a dragEnter 
-        // followed by a dragOperationChanged with the exact same event. 
-        if (newListener != null && newListener == oldListener) {
-            SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    newListener.dragOperationChanged(event);
-                }
-            });
-        }
-    }
-
-    /**
-     * The cursor is moving over the drop target. Updates the current listener and 
-     * forwards this event to that listener. If no listener can handle the drag 
-     * operation the <code>event.detail</code> field is set to <code>DND.DROP_NONE</code> 
-     * to indicate an invalid drop.
-     *   
-     * @param event the drop target event
-     * @see DropTargetListener#dragOver(DropTargetEvent)
-     */
-    public void dragOver(final DropTargetEvent event) {
-        TransferDropTargetListener oldListener = getCurrentListener();
-        updateCurrentListener(event);
-        final TransferDropTargetListener newListener = getCurrentListener();
-
-        // only notify the current listener if it hasn't changed based on the 
-        // drag over. otherwise the new listener would get a dragEnter 
-        // followed by a dragOver with the exact same event. 
-        if (newListener != null && newListener == oldListener) {
-        	SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    newListener.dragOver(event);
-                }
-            });
-        }
-    }
-
-    /**
-     * Forwards this event to the current listener, if there is one. Sets the
-     * current listener to <code>null</code> afterwards.
-     * 
-     * @param event the drop target event
-     * @see DropTargetListener#drop(DropTargetEvent)
-     */
-    public void drop(final DropTargetEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drop: " + toString()); //$NON-NLS-1$
-        updateCurrentListener(event);
-        if (getCurrentListener() != null) {
-        	SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    getCurrentListener().drop(event);
-                }
-            });
-        }
-        setCurrentListener(null, event);
-    }
-
-    /**
-     * Forwards this event to the current listener if there is one.
-     * 
-     * @param event the drop target event
-     * @see DropTargetListener#dropAccept(DropTargetEvent)
-     */
-    public void dropAccept(final DropTargetEvent event) {
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Drop Accept: " + toString()); //$NON-NLS-1$
-        if (getCurrentListener() != null) {
-        	SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    getCurrentListener().dropAccept(event);
-                }
-            });
-        }
-    }
-
-    /**
-     * Returns the listener which currently handles drop events.
-     * 
-     * @return the <code>TransferDropTargetListener</code> which currently 
-     * 	handles drop events.
-     */
-    private TransferDropTargetListener getCurrentListener() {
-        return currentListener;
-    }
-
-    /**
-     * Returns the transfer data type supported by the given listener.
-     * Returns <code>null</code> if the listener does not support any of the   
-     * specified data types.
-     *  
-     * @param dataTypes available data types
-     * @param listener <code>TransferDropTargetListener</code> to use for testing 
-     * 	supported data types.
-     * @return the transfer data type supported by the given listener or 
-     * 	<code>null</code>.
-     */
-    private TransferData getSupportedTransferType(TransferData[] dataTypes,
-            TransferDropTargetListener listener) {
-        for (int i = 0; i < dataTypes.length; i++) {
-            if (listener.getTransfer().isSupportedType(dataTypes[i])) {
-                return dataTypes[i];
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the combined set of <code>Transfer</code> types of all 
-     * <code>TransferDropTargetListeners</code>.
-     * 
-     * @return the combined set of <code>Transfer</code> types
-     */
-    public Transfer[] getTransfers() {
-        Transfer[] types = new Transfer[listeners.size()];
-        for (int i = 0; i < listeners.size(); i++) {
-            TransferDropTargetListener listener = (TransferDropTargetListener) listeners
-                    .get(i);
-            types[i] = listener.getTransfer();
-        }
-        return types;
-    }
-
-    /**
-     * Returns <code>true</code> if there are no listeners to delegate events to.
-     * 
-     * @return <code>true</code> if there are no <code>TransferDropTargetListeners</code>
-     *	<code>false</code> otherwise
-     */
-    public boolean isEmpty() {
-        return listeners.isEmpty();
-    }
-
-    /**
-     * Removes the given <code>TransferDropTargetListener</code>.
-     * Listeners should not be removed while a drag and drop operation is in progress.
-     * 
-     * @param listener the listener to remove
-     */
-    public void removeDropTargetListener(TransferDropTargetListener listener) {
-        if (currentListener == listener) {
-			currentListener = null;
-		}
-        listeners.remove(listener);
-    }
-
-    /**
-     * Sets the current listener to <code>listener</code>. Sends the given 
-     * <code>DropTargetEvent</code> if the current listener changes.
-     * 
-     * @return <code>true</code> if the new listener is different than the previous
-     *	<code>false</code> otherwise
-     */
-    private boolean setCurrentListener(TransferDropTargetListener listener,
-            final DropTargetEvent event) {
-        if (currentListener == listener) {
-			return false;
-		}
-        if (currentListener != null) {
-        	SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    currentListener.dragLeave(event);
-                }
-            });
-        }
-        currentListener = listener;
-        //		if (Policy.DEBUG_DRAG_DROP)
-        //			System.out.println("Current drop listener: " + listener); //$NON-NLS-1$
-        if (currentListener != null) {
-        	SafeRunnable.run(new SafeRunnable() {
-                public void run() throws Exception {
-                    currentListener.dragEnter(event);
-                }
-            });
-        }
-        return true;
-    }
-
-    /**
-     * Updates the current listener to one that can handle the drop. There can be many
-     * listeners and each listener may be able to handle many <code>TransferData</code> 
-     * types. The first listener found that can handle a drop of one of the given 
-     * <code>TransferData</code> types will be selected.
-     * If no listener can handle the drag operation the <code>event.detail</code> field
-     * is set to <code>DND.DROP_NONE</code> to indicate an invalid drop.
-     *
-     * @param event the drop target event
-     */
-    private void updateCurrentListener(DropTargetEvent event) {
-        int originalDetail = event.detail;
-        // revert the detail to the "original" drop type that the User indicated.
-        // this is necessary because the previous listener may have changed the detail 
-        // to something other than what the user indicated.
-        event.detail = originalDropType;
-
-        Iterator iter = listeners.iterator();
-        while (iter.hasNext()) {
-            TransferDropTargetListener listener = (TransferDropTargetListener) iter
-                    .next();
-            TransferData dataType = getSupportedTransferType(event.dataTypes,
-                    listener);
-            if (dataType != null) {
-                TransferData originalDataType = event.currentDataType;
-                // set the data type supported by the drop listener
-                event.currentDataType = dataType;
-                if (listener.isEnabled(event)) {
-                    // if the listener stays the same, set its previously determined  
-                    // event detail 
-                    if (!setCurrentListener(listener, event)) {
-						event.detail = originalDetail;
-					}
-                    return;
-                }
-				event.currentDataType = originalDataType;
-            }
-        }
-        setCurrentListener(null, event);
-        event.detail = DND.DROP_NONE;
-        
-        // -always- ensure that expand/scroll are on...otherwise
-        // if a valid drop target is a child of an invalid one
-        // you can't get there...
-        event.feedback = DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Geometry.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Geometry.java
deleted file mode 100644
index f824d1e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Geometry.java
+++ /dev/null
@@ -1,807 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Contains static methods for performing simple geometric operations
- * on the SWT geometry classes.
- *
- * @since 3.0
- */
-public class Geometry {
-
-    /**
-     * Prevent this class from being instantiated.
-     * 
-     * @since 3.0
-     */
-    private Geometry() {
-    	//This is not instantiated
-    }
-
-    /**
-     * Returns the square of the distance between two points. 
-     * <p>This is preferred over the real distance when searching
-     * for the closest point, since it avoids square roots.</p>
-     * 
-     * @param p1 first endpoint
-     * @param p2 second endpoint
-     * @return the square of the distance between the two points
-     * 
-     * @since 3.0
-     */
-    public static int distanceSquared(Point p1, Point p2) {
-        int term1 = p1.x - p2.x;
-        int term2 = p1.y - p2.y;
-        return term1 * term1 + term2 * term2;
-    }
-
-    /**
-     * Returns the magnitude of the given 2d vector (represented as a Point)
-     *  
-     * @param p point representing the 2d vector whose magnitude is being computed
-     * @return the magnitude of the given 2d vector
-     * @since 3.0
-     */
-    public static double magnitude(Point p) {
-        return Math.sqrt(magnitudeSquared(p));
-    }
-
-    /**
-     * Returns the square of the magnitude of the given 2-space vector (represented
-     * using a point)
-     * 
-     * @param p the point whose magnitude is being computed
-     * @return the square of the magnitude of the given vector
-     * @since 3.0
-     */
-    public static int magnitudeSquared(Point p) {
-        return p.x * p.x + p.y * p.y;
-    }
-
-    /**
-     * Returns the dot product of the given vectors (expressed as Points)
-     * 
-     * @param p1 the first vector
-     * @param p2 the second vector
-     * @return the dot product of the two vectors
-     * @since 3.0
-     */
-    public static int dotProduct(Point p1, Point p2) {
-        return p1.x * p2.x + p1.y * p2.y;
-    }
-
-    /**
-     * Returns a new point whose coordinates are the minimum of the coordinates of the
-     * given points
-     * 
-     * @param p1 a Point
-     * @param p2 a Point
-     * @return a new point whose coordinates are the minimum of the coordinates of the
-     * given points
-     * @since 3.0
-     */
-    public static Point min(Point p1, Point p2) {
-        return new Point(Math.min(p1.x, p2.x), Math.min(p1.y, p2.y));
-    }
-
-    /**
-     * Returns a new point whose coordinates are the maximum of the coordinates
-     * of the given points
-     * @param p1 a Point
-     * @param p2 a Point
-     * @return point a new point whose coordinates are the maximum of the coordinates
-     * @since 3.0
-     */
-    public static Point max(Point p1, Point p2) {
-        return new Point(Math.max(p1.x, p2.x), Math.max(p1.y, p2.y));
-    }
-
-    /**
-     * Returns a vector in the given direction with the given
-     * magnitude. Directions are given using SWT direction constants, and
-     * the resulting vector is in the screen's coordinate system. That is,
-     * the vector (0, 1) is down and the vector (1, 0) is right. 
-     * 
-     * @param distance magnitude of the vector
-     * @param direction one of SWT.TOP, SWT.BOTTOM, SWT.LEFT, or SWT.RIGHT
-     * @return a point representing a vector in the given direction with the given magnitude
-     * @since 3.0
-     */
-    public static Point getDirectionVector(int distance, int direction) {
-        switch (direction) {
-        case SWT.TOP:
-            return new Point(0, -distance);
-        case SWT.BOTTOM:
-            return new Point(0, distance);
-        case SWT.LEFT:
-            return new Point(-distance, 0);
-        case SWT.RIGHT:
-            return new Point(distance, 0);
-        }
-
-        return new Point(0, 0);
-    }
-
-    /**
-     * Returns the point in the center of the given rectangle.
-     * 
-     * @param rect rectangle being computed
-     * @return a Point at the center of the given rectangle.
-     * @since 3.0
-     */
-    public static Point centerPoint(Rectangle rect) {
-        return new Point(rect.x + rect.width / 2, rect.y + rect.height / 2);
-    }
-
-    /**
-     * Returns a copy of the given point
-     * 
-     * @param toCopy point to copy
-     * @return a copy of the given point
-     */
-    public static Point copy(Point toCopy) {
-        return new Point(toCopy.x, toCopy.y);
-    }
-    
-    /**
-     * Sets result equal to toCopy
-     * 
-     * @param result object that will be modified
-     * @param toCopy object that will be copied
-     * @since 3.1
-     */
-    public static void set(Point result, Point toCopy) {
-    	result.x = toCopy.x;
-    	result.y = toCopy.y;
-    }
-    
-    /**
-     * Sets result equal to toCopy
-     * 
-     * @param result object that will be modified
-     * @param toCopy object that will be copied
-     * @since 3.1
-     */
-    public static void set(Rectangle result, Rectangle toCopy) {
-    	result.x = toCopy.x;
-    	result.y = toCopy.y;
-    	result.width = toCopy.width;
-    	result.height = toCopy.height;
-    }
-
-    /**
-     * <p>Returns a new difference Rectangle whose x, y, width, and height are equal to the difference of the corresponding
-     * attributes from the given rectangles</p>
-     * 
-     * <p></p>
-     * <b>Example: Compute the margins for a given Composite, and apply those same margins to a new GridLayout</b>
-     * 
-     * <code><pre>      
-     *      // Compute the client area, in the coordinate system of the input composite's parent  
-     *      Rectangle clientArea = Display.getCurrent().map(inputComposite, 
-     *      	inputComposite.getParent(), inputComposite.getClientArea());
-     *      
-     *      // Compute the margins for a given Composite by subtracting the client area from the composite's bounds
-     *      Rectangle margins = Geometry.subtract(inputComposite.getBounds(), clientArea);
-     *      
-     *      // Now apply these margins to a new GridLayout
-     *      GridLayout layout = GridLayoutFactory.fillDefaults().margins(margins).create();
-     * </pre></code>
-     * 
-     * @param rect1 first rectangle
-     * @param rect2 rectangle to subtract
-     * @return the difference between the two rectangles (computed as rect1 - rect2)
-     * @since 3.3
-     */
-    public static Rectangle subtract(Rectangle rect1, Rectangle rect2) {
-    	return new Rectangle(rect1.x - rect2.x, rect1.y - rect2.y, rect1.width - rect2.width, rect1.height - rect2.height);
-    }
-    
-    /**
-     * <p>Returns a new Rectangle whose x, y, width, and height is the sum of the x, y, width, and height values of 
-     * both rectangles respectively.</p>
-     * 
-     * @param rect1 first rectangle to add
-     * @param rect2 second rectangle to add
-     * @return a new rectangle whose x, y, height, and width attributes are the sum of the corresponding attributes from
-     *         the arguments.
-     * @since 3.3
-     */
-    public static Rectangle add(Rectangle rect1, Rectangle rect2) {
-    	return new Rectangle(rect1.x + rect2.x, rect1.y + rect2.y, 
-    			rect1.width + rect2.width, rect1.height + rect2.height);
-    }
-    
-    /**
-     * Adds two points as 2d vectors. Returns a new point whose coordinates are
-     * the sum of the original two points.
-     * 
-     * @param point1 the first point (not null)
-     * @param point2 the second point (not null)
-     * @return a new point whose coordinates are the sum of the given points
-     * @since 3.0
-     */
-    public static Point add(Point point1, Point point2) {
-        return new Point(point1.x + point2.x, point1.y + point2.y);
-    }
-    
-    /**
-     * Divides both coordinates of the given point by the given scalar. 
-     * 
-     * @since 3.1 
-     *
-     * @param toDivide point to divide
-     * @param scalar denominator
-     * @return a new Point whose coordinates are equal to the original point divided by the scalar
-     */
-    public static Point divide(Point toDivide, int scalar) {
-        return new Point(toDivide.x / scalar, toDivide.y / scalar);
-    }
-    
-
-    /**
-     * Performs vector subtraction on two points. Returns a new point equal to
-     * (point1 - point2).
-     * 
-     * @param point1 initial point
-     * @param point2 vector to subtract
-     * @return the difference (point1 - point2)
-     * @since 3.0
-     */
-    public static Point subtract(Point point1, Point point2) {
-        return new Point(point1.x - point2.x, point1.y - point2.y);
-    }
-
-    /**
-     * Swaps the X and Y coordinates of the given point.
-     * 
-     * @param toFlip modifies this point
-     * @since 3.1
-     */
-    public static void flipXY(Point toFlip) {
-    	int temp = toFlip.x;
-    	toFlip.x = toFlip.y;
-    	toFlip.y = temp;
-    }
-
-    /**
-     * Swaps the X and Y coordinates of the given rectangle, along with the height and width.
-     * 
-     * @param toFlip modifies this rectangle
-     * @since 3.1
-     */
-    public static void flipXY(Rectangle toFlip) {
-    	int temp = toFlip.x;
-    	toFlip.x = toFlip.y;
-    	toFlip.y = temp;
-    	
-    	temp = toFlip.width;
-    	toFlip.width = toFlip.height;
-    	toFlip.height = temp;
-    }
-    
-    /**
-     * Returns the height or width of the given rectangle.
-     * 
-     * @param toMeasure rectangle to measure
-     * @param width returns the width if true, and the height if false
-     * @return the width or height of the given rectangle
-     * @since 3.0
-     */
-    public static int getDimension(Rectangle toMeasure, boolean width) {
-        if (width) {
-            return toMeasure.width;
-        }
-		return toMeasure.height;
-    }
-
-    /**
-     * Returns the x or y coordinates of the given point.
-     * 
-     * @param toMeasure point being measured
-     * @param width if true, returns x. Otherwise, returns y.
-     * @return the x or y coordinate
-     * @since 3.1
-     */
-    public static int getCoordinate(Point toMeasure, boolean width) {
-    	return width ? toMeasure.x : toMeasure.y;
-    }
-    
-    /**
-     * Returns the x or y coordinates of the given rectangle.
-     * 
-     * @param toMeasure rectangle being measured
-     * @param width if true, returns x. Otherwise, returns y.
-     * @return the x or y coordinate
-     * @since 3.1
-     */
-    public static int getCoordinate(Rectangle toMeasure, boolean width) {
-    	return width ? toMeasure.x : toMeasure.y;
-    }
-    
-    /**
-     * Sets one dimension of the given rectangle. Modifies the given rectangle.
-     * 
-     * @param toSet rectangle to modify
-     * @param width if true, the width is modified. If false, the height is modified.
-     * @param newCoordinate new value of the width or height
-     * @since 3.1
-     */
-    public static void setDimension(Rectangle toSet, boolean width, int newCoordinate) {
-    	if (width) {
-    		toSet.width = newCoordinate;
-    	} else {
-    		toSet.height = newCoordinate;
-    	}
-    }
-
-    /**
-     * Sets one coordinate of the given rectangle. Modifies the given rectangle.
-     * 
-     * @param toSet rectangle to modify
-     * @param width if true, the x coordinate is modified. If false, the y coordinate is modified.
-     * @param newCoordinate new value of the x or y coordinates
-     * @since 3.1
-     */
-    public static void setCoordinate(Rectangle toSet, boolean width, int newCoordinate) {
-    	if (width) {
-    		toSet.x = newCoordinate;
-    	} else {
-    		toSet.y = newCoordinate;
-    	}
-    }
-    
-    /**
-     * Sets one coordinate of the given point. Modifies the given point.
-     * 
-     * @param toSet point to modify
-     * @param width if true, the x coordinate is modified. If false, the y coordinate is modified.
-     * @param newCoordinate new value of the x or y coordinates
-     * @since 3.1
-     */
-    public static void setCoordinate(Point toSet, boolean width, int newCoordinate) {
-    	if (width) {
-    		toSet.x = newCoordinate;
-    	} else {
-    		toSet.y = newCoordinate;
-    	}
-    }
-    
-    /**
-     * Returns the distance of the given point from a particular side of the given rectangle.
-     * Returns negative values for points outside the rectangle.
-     * 
-     * @param rectangle a bounding rectangle
-     * @param testPoint a point to test
-     * @param edgeOfInterest side of the rectangle to test against
-     * @return the distance of the given point from the given edge of the rectangle
-     * @since 3.0
-     */
-    public static int getDistanceFromEdge(Rectangle rectangle, Point testPoint,
-            int edgeOfInterest) {
-        switch (edgeOfInterest) {
-        case SWT.TOP:
-            return testPoint.y - rectangle.y;
-        case SWT.BOTTOM:
-            return rectangle.y + rectangle.height - testPoint.y;
-        case SWT.LEFT:
-            return testPoint.x - rectangle.x;
-        case SWT.RIGHT:
-            return rectangle.x + rectangle.width - testPoint.x;
-        }
-
-        return 0;
-    }
-
-    /**
-     * Extrudes the given edge inward by the given distance. That is, if one side of the rectangle
-     * was sliced off with a given thickness, this returns the rectangle that forms the slice. Note
-     * that the returned rectangle will be inside the given rectangle if size > 0.
-     * 
-     * @param toExtrude the rectangle to extrude. The resulting rectangle will share three sides
-     * with this rectangle.
-     * @param size distance to extrude. A negative size will extrude outwards (that is, the resulting
-     * rectangle will overlap the original iff this is positive). 
-     * @param orientation the side to extrude.  One of SWT.LEFT, SWT.RIGHT, SWT.TOP, or SWT.BOTTOM. The 
-     * resulting rectangle will always share this side with the original rectangle.
-     * @return a rectangle formed by extruding the given side of the rectangle by the given distance.
-     * @since 3.0
-     */
-    public static Rectangle getExtrudedEdge(Rectangle toExtrude, int size,
-            int orientation) {
-        Rectangle bounds = new Rectangle(toExtrude.x, toExtrude.y,
-                toExtrude.width, toExtrude.height);
-
-        if (!isHorizontal(orientation)) {
-            bounds.width = size;
-        } else {
-            bounds.height = size;
-        }
-
-        switch (orientation) {
-        case SWT.RIGHT:
-            bounds.x = toExtrude.x + toExtrude.width - bounds.width;
-            break;
-        case SWT.BOTTOM:
-            bounds.y = toExtrude.y + toExtrude.height - bounds.height;
-            break;
-        }
-
-        normalize(bounds);
-
-        return bounds;
-    }
-
-    /**
-     * Returns the opposite of the given direction. That is, returns SWT.LEFT if
-     * given SWT.RIGHT and visa-versa.
-     * 
-     * @param swtDirectionConstant one of SWT.LEFT, SWT.RIGHT, SWT.TOP, or SWT.BOTTOM
-     * @return one of SWT.LEFT, SWT.RIGHT, SWT.TOP, or SWT.BOTTOM
-     * @since 3.0
-     */
-    public static int getOppositeSide(int swtDirectionConstant) {
-        switch (swtDirectionConstant) {
-        case SWT.TOP:
-            return SWT.BOTTOM;
-        case SWT.BOTTOM:
-            return SWT.TOP;
-        case SWT.LEFT:
-            return SWT.RIGHT;
-        case SWT.RIGHT:
-            return SWT.LEFT;
-        }
-
-        return swtDirectionConstant;
-    }
-
-    /**
-     * Converts the given boolean into an SWT orientation constant.
-     * 
-     * @param horizontal if true, returns SWT.HORIZONTAL. If false, returns SWT.VERTICAL 
-     * @return SWT.HORIZONTAL or SWT.VERTICAL.
-     * @since 3.0
-     */
-    public static int getSwtHorizontalOrVerticalConstant(boolean horizontal) {
-        if (horizontal) {
-            return SWT.HORIZONTAL;
-        }
-		return SWT.VERTICAL;
-    }
-
-    /**
-     * Returns true iff the given SWT side constant corresponds to a horizontal side
-     * of a rectangle. That is, returns true for the top and bottom but false for the
-     * left and right.
-     * 
-     * @param swtSideConstant one of SWT.TOP, SWT.BOTTOM, SWT.LEFT, or SWT.RIGHT
-     * @return true iff the given side is horizontal.
-     * @since 3.0
-     */
-    public static boolean isHorizontal(int swtSideConstant) {
-        return !(swtSideConstant == SWT.LEFT || swtSideConstant == SWT.RIGHT);
-    }
-
-    /**
-     * Moves the given rectangle by the given delta.
-     * 
-     * @param rect rectangle to move (will be modified)
-     * @param delta direction vector to move the rectangle by
-     * @since 3.0
-     */
-    public static void moveRectangle(Rectangle rect, Point delta) {
-        rect.x += delta.x;
-        rect.y += delta.y;
-    }
-
-    /**
-     * Moves each edge of the given rectangle outward by the given amount. Negative values
-     * cause the rectangle to contract. Does not allow the rectangle's width or height to be
-     * reduced below zero.
-     *  
-     * @param rect normalized rectangle to modify
-     * @param differenceRect difference rectangle to be added to rect
-     * @since 3.3
-     */
-    public static void expand(Rectangle rect, Rectangle differenceRect) {
-    	rect.x += differenceRect.x;
-    	rect.y += differenceRect.y;
-    	rect.height = Math.max(0, rect.height + differenceRect.height);
-    	rect.width = Math.max(0, rect.width + differenceRect.width);
-    }
-    
-    /**
-     * <p>Returns a rectangle which, when added to another rectangle, will expand each side
-     * by the given number of units.</p>
-     * 
-     * <p>This is commonly used to store margin sizes. For example:</p>
-     * 
-     * <code><pre>
-     *     // Expands the left, right, top, and bottom 
-     *     // of the given control by 10, 5, 1, and 15 units respectively
-     *      
-     *     Rectangle margins = Geometry.createDifferenceRect(10,5,1,15);
-     *     Rectangle bounds = someControl.getBounds();
-     *     someControl.setBounds(Geometry.add(bounds, margins));
-     * </pre></code>
-     * 
-     * @param left distance to expand the left side (negative values move the edge inward)
-     * @param right distance to expand the right side (negative values move the edge inward)
-     * @param top distance to expand the top (negative values move the edge inward)
-     * @param bottom distance to expand the bottom (negative values move the edge inward)
-     * 
-     * @return a difference rectangle that, when added to another rectangle, will cause each
-     * side to expand by the given number of units
-     * @since 3.3
-     */
-    public static Rectangle createDiffRectangle(int left, int right, int top, int bottom) {
-    	return new Rectangle(-left, -top, left + right, top + bottom);
-    }
-    
-    /**
-     * Moves each edge of the given rectangle outward by the given amount. Negative values
-     * cause the rectangle to contract. Does not allow the rectangle's width or height to be
-     * reduced below zero.
-     *  
-     * @param rect normalized rectangle to modify
-     * @param left distance to move the left edge outward (negative values move the edge inward)
-     * @param right distance to move the right edge outward (negative values move the edge inward) 
-     * @param top distance to move the top edge outward (negative values move the edge inward)
-     * @param bottom distance to move the bottom edge outward (negative values move the edge inward)
-     * @since 3.1
-     */
-    public static void expand(Rectangle rect, int left, int right, int top, int bottom) {
-        rect.x -= left;
-        rect.width = Math.max(0, rect.width + left + right);
-        rect.y -= top;
-        rect.height = Math.max(0, rect.height + top + bottom);
-    }
-    
-    /**
-     * Normalizes the given rectangle. That is, any rectangle with
-     * negative width or height becomes a rectangle with positive
-     * width or height that extends to the upper-left of the original
-     * rectangle. 
-     * 
-     * @param rect rectangle to modify
-     * @since 3.0
-     */
-    public static void normalize(Rectangle rect) {
-        if (rect.width < 0) {
-            rect.width = -rect.width;
-            rect.x -= rect.width;
-        }
-
-        if (rect.height < 0) {
-            rect.height = -rect.height;
-            rect.y -= rect.height;
-        }
-    }
-
-    /**
-     * Converts the given rectangle from display coordinates to the local coordinate system 
-     * of the given object into display coordinates.
-     * 
-     * @param coordinateSystem local coordinate system being converted to
-     * @param toConvert rectangle to convert
-     * @return a rectangle in control coordinates
-     * @since 3.0
-     */
-    public static Rectangle toControl(Control coordinateSystem,
-            Rectangle toConvert) {
-    	return(coordinateSystem.getDisplay().map
-    			(null,coordinateSystem,toConvert));
-    }
-
-    /**
-     * Converts the given rectangle from the local coordinate system of the given object
-     * into display coordinates.
-     * 
-     * @param coordinateSystem local coordinate system being converted from
-     * @param toConvert rectangle to convert
-     * @return a rectangle in display coordinates
-     * @since 3.0
-     */
-    public static Rectangle toDisplay(Control coordinateSystem,
-            Rectangle toConvert) {
-    	return(coordinateSystem.getDisplay().map
-    			(coordinateSystem,null,toConvert));   
-
-    }
-
-    /**
-     * Determines where the given point lies with respect to the given rectangle.
-     * Returns a combination of SWT.LEFT, SWT.RIGHT, SWT.TOP, and SWT.BOTTOM, combined
-     * with bitwise or (for example, returns SWT.TOP | SWT.LEFT if the point is to the
-     * upper-left of the rectangle). Returns 0 if the point lies within the rectangle.
-     * Positions are in screen coordinates (ie: a point is to the upper-left of the
-     * rectangle if its x and y coordinates are smaller than any point in the rectangle)
-     *  
-     * @param boundary normalized boundary rectangle 
-     * @param toTest point whose relative position to the rectangle is being computed
-     * @return one of SWT.LEFT | SWT.TOP, SWT.TOP, SWT.RIGHT | SWT.TOP, SWT.LEFT, 0,
-     * SWT.RIGHT, SWT.LEFT | SWT.BOTTOM, SWT.BOTTOM, SWT.RIGHT | SWT.BOTTOM
-     * @since 3.0
-     */
-    public static int getRelativePosition(Rectangle boundary, Point toTest) {
-        int result = 0;
-
-        if (toTest.x < boundary.x) {
-            result |= SWT.LEFT;
-        } else if (toTest.x >= boundary.x + boundary.width) {
-            result |= SWT.RIGHT;
-        }
-
-        if (toTest.y < boundary.y) {
-            result |= SWT.TOP;
-        } else if (toTest.y >= boundary.y + boundary.height) {
-            result |= SWT.BOTTOM;
-        }
-
-        return result;
-    }
-
-    /**
-     * Returns the distance from the point to the nearest edge of the given
-     * rectangle. Returns negative values if the point lies outside the rectangle.
-     * 
-     * @param boundary rectangle to test
-     * @param toTest point to test
-     * @return the distance between the given point and the nearest edge of the rectangle.
-     * Returns positive values for points inside the rectangle and negative values for points
-     * outside the rectangle.
-     * @since 3.1
-     */
-    public static int getDistanceFrom(Rectangle boundary, Point toTest) {
-        int side = getClosestSide(boundary, toTest);
-        return getDistanceFromEdge(boundary, toTest, side);
-    }
-    
-    /**
-     * Returns the edge of the given rectangle is closest to the given
-     * point.
-     * 
-     * @param boundary rectangle to test
-     * @param toTest point to compare
-     * @return one of SWT.LEFT, SWT.RIGHT, SWT.TOP, or SWT.BOTTOM
-     * 
-     * @since 3.0
-     */
-    public static int getClosestSide(Rectangle boundary, Point toTest) {
-        int[] sides = new int[] { SWT.LEFT, SWT.RIGHT, SWT.TOP, SWT.BOTTOM };
-
-        int closestSide = SWT.LEFT;
-        int closestDistance = Integer.MAX_VALUE;
-
-        for (int idx = 0; idx < sides.length; idx++) {
-            int side = sides[idx];
-
-            int distance = getDistanceFromEdge(boundary, toTest, side);
-
-            if (distance < closestDistance) {
-                closestDistance = distance;
-                closestSide = side;
-            }
-        }
-
-        return closestSide;
-    }
-
-    /**
-     * Returns a copy of the given rectangle
-     * 
-     * @param toCopy rectangle to copy
-     * @return a copy of the given rectangle
-     * @since 3.0
-     */
-    public static Rectangle copy(Rectangle toCopy) {
-        return new Rectangle(toCopy.x, toCopy.y, toCopy.width, toCopy.height);
-    }
-
-    /**
-     * Returns the size of the rectangle, as a Point
-     * 
-     * @param rectangle rectangle whose size is being computed
-     * @return the size of the given rectangle
-     * @since 3.0
-     */
-    public static Point getSize(Rectangle rectangle) {
-        return new Point(rectangle.width, rectangle.height);
-    }
-
-    /**
-     * Sets the size of the given rectangle to the given size
-     * 
-     * @param rectangle rectangle to modify
-     * @param newSize new size of the rectangle
-     * @since 3.0
-     */
-    public static void setSize(Rectangle rectangle, Point newSize) {
-        rectangle.width = newSize.x;
-        rectangle.height = newSize.y;
-    }
-
-    /**
-     * Sets the x,y position of the given rectangle. For a normalized
-     * rectangle (a rectangle with positive width and height), this will
-     * be the upper-left corner of the rectangle. 
-     * 
-     * @param rectangle rectangle to modify
-     * @param newLocation new location of the rectangle
-     * 
-     * @since 3.0
-     */
-    public static void setLocation(Rectangle rectangle, Point newLocation) {
-        rectangle.x = newLocation.x;
-        rectangle.y = newLocation.y;
-    }
-
-    /**
-     * Returns the x,y position of the given rectangle. For normalized rectangles
-     * (rectangles with positive width and height), this is the upper-left
-     * corner of the rectangle.
-     * 
-     * @param toQuery rectangle to query
-     * @return a Point containing the x,y position of the rectangle
-     * 
-     * @since 3.0
-     */
-    public static Point getLocation(Rectangle toQuery) {
-        return new Point(toQuery.x, toQuery.y);
-    }
-
-    /**
-     * Returns a new rectangle with the given position and dimensions, expressed
-     * as points.
-     * 
-     * @param position the (x,y) position of the rectangle
-     * @param size the size of the new rectangle, where (x,y) -> (width, height)
-     * @return a new Rectangle with the given position and size
-     * 
-     * @since 3.0
-     */
-    public static Rectangle createRectangle(Point position, Point size) {
-        return new Rectangle(position.x, position.y, size.x, size.y);
-    }
-    
-    /**
-	 * Repositions the 'inner' rectangle to lie completely within the bounds of the 'outer'
-	 * rectangle if possible. One use for this is to ensure that, when setting a control's bounds,
-	 * that they will always lie within its parent's client area (to avoid clipping).
-	 * 
-	 * @param inner The 'inner' rectangle to be repositioned (should be smaller than the 'outer' rectangle)
-	 * @param outer The 'outer' rectangle
-	 */
-	public static void moveInside(Rectangle inner, Rectangle outer) {
-		// adjust X
-		if (inner.x < outer.x) {
-			inner.x = outer.x;
-		}
-		if ((inner.x + inner.width) > (outer.x + outer.width)) {
-			inner.x -= (inner.x + inner.width) - (outer.x + outer.width);
-		}
-
-		// Adjust Y
-		if (inner.y < outer.y) {
-			inner.y = outer.y;
-		}
-		if ((inner.y + inner.height) > (outer.y + outer.height)) {
-			inner.y -= (inner.y + inner.height) - (outer.y + outer.height);
-		}
-	}
-    
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ILogger.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ILogger.java
deleted file mode 100644
index 5fe3a24..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ILogger.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:
- *     Chris Gross (schtoo@schtoo.com) - initial API and implementation
- *       (bug 49497 [RCP] JFace dependency on org.eclipse.core.runtime enlarges standalone JFace applications)
- *******************************************************************************/
-
-package org.eclipse.jface.util;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A mechanism to log errors throughout JFace.
- * <p>
- * Clients may provide their own implementation to change
- * how errors are logged from within JFace.
- * </p>
- * 
- * @see org.eclipse.jface.util.Policy#getLog()
- * @see org.eclipse.jface.util.Policy#setLog(ILogger)
- * @since 3.1
- */
-public interface ILogger {
-	
-	/**
-	 * Logs the given status.
-	 * 
-	 * @param status the status to log
-	 */
-	public void log(IStatus status);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IOpenEventListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IOpenEventListener.java
deleted file mode 100644
index f93ce54..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IOpenEventListener.java
+++ /dev/null
@@ -1,40 +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.jface.util;
-
-import org.eclipse.swt.events.SelectionEvent;
-
-/**
- * Listener for open events which are generated on selection
- * of default selection depending on the user preferences.
- * 
- * <p>
- * Usage:
- * <pre>
- *	OpenStrategy handler = new OpenStrategy(control);
- *	handler.addOpenListener(new IOpenEventListener() {
- *		public void handleOpen(SelectionEvent e) {
- *			... // code to handle the open event.
- *		}
- *	});
- * </pre>
- * </p>
- *
- * @see OpenStrategy
- */
-public interface IOpenEventListener {
-    /**
-     * Called when a selection or default selection occurs 
-     * depending on the user preference. 
-     * @param e the selection event
-     */
-    public void handleOpen(SelectionEvent e);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IPropertyChangeListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IPropertyChangeListener.java
deleted file mode 100644
index 4f4db8e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/IPropertyChangeListener.java
+++ /dev/null
@@ -1,44 +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.jface.util;
-
-import java.util.EventListener;
-
-/**
- * Listener for property changes.
- * <p>
- * Usage:
- * <pre>
- * IPropertyChangeListener listener =
- *   new IPropertyChangeListener() {
- *      public void propertyChange(PropertyChangeEvent event) {
- *         ... // code to deal with occurrence of property change
- *      }
- *   };
- * emitter.addPropertyChangeListener(listener);
- * ...
- * emitter.removePropertyChangeListener(listener);
- * </pre>
- * </p>
- */
-public interface IPropertyChangeListener extends EventListener {
-    /**
-     * Notification that a property has changed.
-     * <p>
-     * This method gets called when the observed object fires a property
-     * change event.
-     * </p>
-     *
-     * @param event the property change event object describing which property
-     * changed and how
-     */
-    public void propertyChange(PropertyChangeEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ISafeRunnableRunner.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ISafeRunnableRunner.java
deleted file mode 100644
index 0a045cb..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ISafeRunnableRunner.java
+++ /dev/null
@@ -1,41 +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:
- *     Chris Gross (schtoo@schtoo.com) - initial API and implementation
- *       (bug 49497 [RCP] JFace dependency on org.eclipse.core.runtime enlarges standalone JFace applications)
- *******************************************************************************/
-
-package org.eclipse.jface.util;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-
-/**
- * Runs a safe runnables.
- * <p>
- * Clients may provide their own implementation to change
- * how safe runnables are run from within JFace.
- * </p>
- * 
- * @see SafeRunnable#getRunner()
- * @see SafeRunnable#setRunner(ISafeRunnableRunner)
- * @see SafeRunnable#run(ISafeRunnable)
- * @since 3.1
- */
-public interface ISafeRunnableRunner {
-	
-	/**
-	 * Runs the runnable.  All <code>ISafeRunnableRunners</code> must catch any exception
-	 * thrown by the <code>ISafeRunnable</code> and pass the exception to 
-	 * <code>ISafeRunnable.handleException()</code>. 
-	 * @param code the code executed as a save runnable
-	 *
-	 * @see SafeRunnable#run(ISafeRunnable)
-	 */
-	public abstract void run(ISafeRunnable code);
-	
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ListenerList.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ListenerList.java
deleted file mode 100644
index 6ccc7cc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/ListenerList.java
+++ /dev/null
@@ -1,69 +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.jface.util;
-
-/**
- * This class is used to maintain a list of listeners, and is used in the
- * implementations of several classes within JFace which allow you to register
- * listeners of various kinds. It is a fairly lightweight object, occupying
- * minimal space when no listeners are registered.
- * <p>
- * Note that the <code>add</code> method checks for and eliminates duplicates
- * based on identity (not equality). Likewise, the <code>remove</code> method
- * compares based on identity.
- * </p>
- * <p>
- * Use the <code>getListeners</code> method when notifying listeners. Note
- * that no garbage is created if no listeners are registered. The recommended
- * code sequence for notifying all registered listeners of say,
- * <code>FooListener.eventHappened</code>, is:
- * 
- * <pre>
- * Object[] listeners = myListenerList.getListeners();
- * for (int i = 0; i &lt; listeners.length; ++i) {
- * 	((FooListener) listeners[i]).eventHappened(event);
- * }
- * </pre>
- * 
- * </p>
- * 
- * @deprecated Please use {@link org.eclipse.core.runtime.ListenerList} instead.
- *             Please note that the {@link #ListenerList(int)} and
- *             {@link org.eclipse.core.runtime.ListenerList#ListenerList(int)}
- *             constructors have different semantics. Please read the javadoc
- *             carefully. Also note that the equivalent of
- *             {@link #ListenerList()} is actually
- *             {@link org.eclipse.core.runtime.ListenerList#ListenerList(int)}
- *             with {@link org.eclipse.core.runtime.ListenerList#IDENTITY} as
- *             the argument.
- */
-public class ListenerList extends org.eclipse.core.runtime.ListenerList {
-
-	/**
-	 * Creates a listener list with an initial capacity of 1.
-	 */
-	public ListenerList() {
-		super(IDENTITY);
-	}
-
-	/**
-	 * Creates a listener list with the given initial capacity.
-	 * 
-	 * @param capacity
-	 *            the number of listeners which this list can initially accept
-	 *            without growing its internal representation; must be at least
-	 *            1
-	 */
-	public ListenerList(int capacity) {
-		// the runtime ListenerList does not support capacity
-		this();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/LocalSelectionTransfer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/LocalSelectionTransfer.java
deleted file mode 100644
index 9ad62ca..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/LocalSelectionTransfer.java
+++ /dev/null
@@ -1,168 +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.jface.util;
-
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.dnd.ByteArrayTransfer;
-import org.eclipse.swt.dnd.TransferData;
-
-/**
- * A LocalSelectionTransfer may be used for drag and drop operations
- * within the same instance of Eclipse.
- * The selection is made available directly for use in the DropTargetListener.
- * dropAccept method. The DropTargetEvent passed to dropAccept does not contain
- * the drop data. The selection may be used for validation purposes so that the
- * drop can be aborted if appropriate.
- *
- * This class is not intended to be subclassed.
- * 
- * @since 3.2
- */
-public class LocalSelectionTransfer extends ByteArrayTransfer {
-
-    // First attempt to create a UUID for the type name to make sure that
-    // different Eclipse applications use different "types" of
-    // <code>LocalSelectionTransfer</code>
-    private static final String TYPE_NAME = "local-selection-transfer-format" + (new Long(System.currentTimeMillis())).toString(); //$NON-NLS-1$;
-
-    private static final int TYPEID = registerType(TYPE_NAME);
-
-    private static final LocalSelectionTransfer INSTANCE = new LocalSelectionTransfer();
-
-    private ISelection selection;
-
-    private long selectionSetTime;
-
-    /**
-     * Only the singleton instance of this class may be used. 
-     */
-    protected LocalSelectionTransfer() {
-    	// do nothing
-    }
-
-    /**
-     * Returns the singleton.
-     * 
-     * @return the singleton
-     */
-    public static LocalSelectionTransfer getTransfer() {
-        return INSTANCE;
-    }
-
-    /**
-     * Returns the local transfer data.
-     * 
-     * @return the local transfer data
-     */
-    public ISelection getSelection() {
-        return selection;
-    }
-
-    /**
-     * Tests whether native drop data matches this transfer type.
-     * 
-     * @param result result of converting the native drop data to Java
-     * @return true if the native drop data does not match this transfer type.
-     * 	false otherwise.
-     */
-    private boolean isInvalidNativeType(Object result) {
-        return !(result instanceof byte[])
-                || !TYPE_NAME.equals(new String((byte[]) result));
-    }
-
-    /**
-     * Returns the type id used to identify this transfer.
-     * 
-     * @return the type id used to identify this transfer.
-     */
-    protected int[] getTypeIds() {
-        return new int[] { TYPEID };
-    }
-
-    /**
-     * Returns the type name used to identify this transfer.
-     * 
-     * @return the type name used to identify this transfer.
-     */
-    protected String[] getTypeNames() {
-        return new String[] { TYPE_NAME };
-    }
-
-    /**
-     * Overrides org.eclipse.swt.dnd.ByteArrayTransfer#javaToNative(Object,
-     * TransferData).
-     * Only encode the transfer type name since the selection is read and
-     * written in the same process.
-     * 
-     * @see org.eclipse.swt.dnd.ByteArrayTransfer#javaToNative(java.lang.Object, org.eclipse.swt.dnd.TransferData)
-     */
-    public void javaToNative(Object object, TransferData transferData) {
-        byte[] check = TYPE_NAME.getBytes();
-        super.javaToNative(check, transferData);
-    }
-
-    /**
-     * Overrides org.eclipse.swt.dnd.ByteArrayTransfer#nativeToJava(TransferData).
-     * Test if the native drop data matches this transfer type.
-     * 
-     * @see org.eclipse.swt.dnd.ByteArrayTransfer#nativeToJava(TransferData)
-     */
-    public Object nativeToJava(TransferData transferData) {
-        Object result = super.nativeToJava(transferData);
-        if (isInvalidNativeType(result)) {
-        	Policy.getLog().log(new Status(
-                            IStatus.ERROR,
-                            Policy.JFACE,
-                            IStatus.ERROR,
-                            JFaceResources.getString("LocalSelectionTransfer.errorMessage"), null)); //$NON-NLS-1$
-        }
-        return selection;
-    }
-
-    /**
-     * Sets the transfer data for local use.
-     * 
-     * @param s the transfer data
-     */
-    public void setSelection(ISelection s) {
-        selection = s;
-    }
-
-    /**
-     * Returns the time when the selection operation
-     * this transfer is associated with was started.
-     * 
-     * @return the time when the selection operation has started
-     * 
-     * @see org.eclipse.swt.events.TypedEvent#time
-     */
-    public long getSelectionSetTime() {
-        return selectionSetTime;
-    }
-
-    /**
-     * Sets the time when the selection operation this
-     * transfer is associated with was started.
-     * If assigning this from an SWT event, be sure to use
-     * <code>setSelectionTime(event.time & 0xFFFF)</code>
-     * 
-     * @param time the time when the selection operation was started
-     * 
-     * @see org.eclipse.swt.events.TypedEvent#time
-     */
-    public void setSelectionSetTime(long time) {
-        selectionSetTime = time;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/OpenStrategy.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/OpenStrategy.java
deleted file mode 100644
index 83f095c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/OpenStrategy.java
+++ /dev/null
@@ -1,481 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.util;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableTree;
-import org.eclipse.swt.custom.TableTreeItem;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-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.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Implementation of single-click and double-click strategies.
- * <p>
- * Usage:
- * <pre>
- *	OpenStrategy handler = new OpenStrategy(control);
- *	handler.addOpenListener(new IOpenEventListener() {
- *		public void handleOpen(SelectionEvent e) {
- *			... // code to handle the open event.
- *		}
- *	});
- * </pre>
- * </p>
- */
-public class OpenStrategy {
-    /** 
-     * Default behavior. Double click to open the item.
-     */
-    public static final int DOUBLE_CLICK = 0;
-
-    /** 
-     * Single click will open the item.
-     */
-    public static final int SINGLE_CLICK = 1;
-
-    /** 
-     * Hover will select the item.
-     */
-    public static final int SELECT_ON_HOVER = 1 << 1;
-
-    /**
-     * Open item when using arrow keys
-     */
-    public static final int ARROW_KEYS_OPEN = 1 << 2;
-
-    /** A single click will generate
-     * an open event but key arrows will not do anything.
-     * 
-     * @deprecated
-     */
-    public static final int NO_TIMER = SINGLE_CLICK;
-
-    /** A single click will generate an open
-     * event and key arrows will generate an open event after a
-     * small time.
-     * 
-     * @deprecated
-     */
-    public static final int FILE_EXPLORER = SINGLE_CLICK | ARROW_KEYS_OPEN;
-
-    /** Pointing to an item will change the selection
-     * and a single click will gererate an open event
-     * 
-     * @deprecated
-     */
-    public static final int ACTIVE_DESKTOP = SINGLE_CLICK | SELECT_ON_HOVER;
-
-    // Time used in FILE_EXPLORER and ACTIVE_DESKTOP
-    // Not declared final, see bug 246209
-    private static int TIME = 500;
-
-    /* SINGLE_CLICK or DOUBLE_CLICK;
-     * In case of SINGLE_CLICK, the bits SELECT_ON_HOVER and ARROW_KEYS_OPEN
-     * my be set as well. */
-    private static int CURRENT_METHOD = DOUBLE_CLICK;
-
-    private Listener eventHandler;
-
-    private ListenerList openEventListeners = new ListenerList();
-
-    private ListenerList selectionEventListeners = new ListenerList();
-
-    private ListenerList postSelectionEventListeners = new ListenerList();
-
-    /**
-     * @param control the control the strategy is applied to
-     */
-    public OpenStrategy(Control control) {
-        initializeHandler(control.getDisplay());
-        addListener(control);
-    }
-
-    /**
-     * Adds an IOpenEventListener to the collection of openEventListeners
-     * @param listener the listener to add
-     */
-    public void addOpenListener(IOpenEventListener listener) {
-        openEventListeners.add(listener);
-    }
-
-    /**
-     * Removes an IOpenEventListener to the collection of openEventListeners
-     * @param listener the listener to remove
-     */
-    public void removeOpenListener(IOpenEventListener listener) {
-        openEventListeners.remove(listener);
-    }
-
-    /**
-     * Adds an SelectionListener to the collection of selectionEventListeners
-     * @param listener the listener to add
-     */
-    public void addSelectionListener(SelectionListener listener) {
-        selectionEventListeners.add(listener);
-    }
-
-    /**
-     * Removes an SelectionListener to the collection of selectionEventListeners
-     * @param listener the listener to remove
-     */
-    public void removeSelectionListener(SelectionListener listener) {
-        selectionEventListeners.remove(listener);
-    }
-
-    /**
-     * Adds an SelectionListener to the collection of selectionEventListeners
-     * @param listener the listener to add
-     */
-    public void addPostSelectionListener(SelectionListener listener) {
-        postSelectionEventListeners.add(listener);
-    }
-
-    /**
-     * Removes an SelectionListener to the collection of selectionEventListeners
-     * @param listener the listener to remove
-     */
-    public void removePostSelectionListener(SelectionListener listener) {
-        postSelectionEventListeners.remove(listener);
-    }
-
-    /**
-     * This method is internal to the framework; it should not be implemented outside
-     * the framework.
-     * @return the current used single/double-click method
-     * 
-     */
-    public static int getOpenMethod() {
-        return CURRENT_METHOD;
-    }
-
-    /**
-     * Set the current used single/double-click method.
-     * 
-     * This method is internal to the framework; it should not be implemented outside
-     * the framework.
-     * @param method the method to be used
-     * @see OpenStrategy#DOUBLE_CLICK
-     * @see OpenStrategy#SINGLE_CLICK
-     * @see OpenStrategy#SELECT_ON_HOVER
-     * @see OpenStrategy#ARROW_KEYS_OPEN
-     */
-    public static void setOpenMethod(int method) {
-        if (method == DOUBLE_CLICK) {
-            CURRENT_METHOD = method;
-            return;
-        }
-        if ((method & SINGLE_CLICK) == 0) {
-			throw new IllegalArgumentException("Invalid open mode"); //$NON-NLS-1$
-		}
-        if ((method & (SINGLE_CLICK | SELECT_ON_HOVER | ARROW_KEYS_OPEN)) == 0) {
-			throw new IllegalArgumentException("Invalid open mode"); //$NON-NLS-1$
-		}
-        CURRENT_METHOD = method;
-    }
-
-    /**
-     * @return true if editors should be activated when opened. 
-     */
-    public static boolean activateOnOpen() {
-        return getOpenMethod() == DOUBLE_CLICK;
-    }
-
-    /*
-     * Adds all needed listener to the control in order to implement
-     * single-click/double-click strategies.
-     */
-    private void addListener(Control c) {
-        c.addListener(SWT.MouseEnter, eventHandler);
-        c.addListener(SWT.MouseExit, eventHandler);
-        c.addListener(SWT.MouseMove, eventHandler);
-        c.addListener(SWT.MouseDown, eventHandler);
-        c.addListener(SWT.MouseUp, eventHandler);
-        c.addListener(SWT.KeyDown, eventHandler);
-        c.addListener(SWT.Selection, eventHandler);
-        c.addListener(SWT.DefaultSelection, eventHandler);
-        c.addListener(SWT.Collapse, eventHandler);
-        c.addListener(SWT.Expand, eventHandler);
-    }
-
-    /*
-     * Fire the selection event to all selectionEventListeners
-     */
-    private void fireSelectionEvent(SelectionEvent e) {
-        if (e.item != null && e.item.isDisposed()) {
-			return;
-		}
-        Object l[] = selectionEventListeners.getListeners();
-        for (int i = 0; i < l.length; i++) {
-            ((SelectionListener) l[i]).widgetSelected(e);
-        }
-    }
-
-    /*
-     * Fire the default selection event to all selectionEventListeners
-     */
-    private void fireDefaultSelectionEvent(SelectionEvent e) {
-        Object l[] = selectionEventListeners.getListeners();
-        for (int i = 0; i < l.length; i++) {
-            ((SelectionListener) l[i]).widgetDefaultSelected(e);
-        }
-    }
-
-    /*
-     * Fire the post selection event to all postSelectionEventListeners
-     */
-    private void firePostSelectionEvent(SelectionEvent e) {
-        if (e.item != null && e.item.isDisposed()) {
-			return;
-		}
-        Object l[] = postSelectionEventListeners.getListeners();
-        for (int i = 0; i < l.length; i++) {
-            ((SelectionListener) l[i]).widgetSelected(e);
-        }
-    }
-
-    /*
-     * Fire the open event to all openEventListeners
-     */
-    private void fireOpenEvent(SelectionEvent e) {
-        if (e.item != null && e.item.isDisposed()) {
-			return;
-		}
-        Object l[] = openEventListeners.getListeners();
-        for (int i = 0; i < l.length; i++) {
-            ((IOpenEventListener) l[i]).handleOpen(e);
-        }
-    }
-
-    //Initialize event handler.
-    private void initializeHandler(final Display display) {
-        eventHandler = new Listener() {
-            boolean timerStarted = false;
-
-            Event mouseUpEvent = null;
-
-            Event mouseMoveEvent = null;
-
-            SelectionEvent selectionPendent = null;
-
-            boolean enterKeyDown = false;
-
-            SelectionEvent defaultSelectionPendent = null;
-
-            boolean arrowKeyDown = false;
-
-            final int[] count = new int[1];
-
-            long startTime = System.currentTimeMillis();
-
-            boolean collapseOccurred = false;
-
-            boolean expandOccurred = false;
-
-            public void handleEvent(final Event e) {
-                if (e.type == SWT.DefaultSelection) {
-                    SelectionEvent event = new SelectionEvent(e);
-                    fireDefaultSelectionEvent(event);
-                    if (CURRENT_METHOD == DOUBLE_CLICK) {
-                        fireOpenEvent(event);
-                    } else {
-                        if (enterKeyDown) {
-                            fireOpenEvent(event);
-                            enterKeyDown = false;
-                            defaultSelectionPendent = null;
-                        } else {
-                            defaultSelectionPendent = event;
-                        }
-                    }
-                    return;
-                }
-
-                switch (e.type) {
-                case SWT.MouseEnter:
-                case SWT.MouseExit:
-                    mouseUpEvent = null;
-                    mouseMoveEvent = null;
-                    selectionPendent = null;
-                    break;
-                case SWT.MouseMove:
-                    if ((CURRENT_METHOD & SELECT_ON_HOVER) == 0) {
-						return;
-					}
-                    if (e.stateMask != 0) {
-						return;
-					}
-                    if (e.widget.getDisplay().getFocusControl() != e.widget) {
-						return;
-					}
-                    mouseMoveEvent = e;
-                    final Runnable runnable[] = new Runnable[1];
-                    runnable[0] = new Runnable() {
-                        public void run() {
-                            long time = System.currentTimeMillis();
-                            int diff = (int) (time - startTime);
-                            if (diff <= TIME) {
-                                display.timerExec(diff * 2 / 3, runnable[0]);
-                            } else {
-                                timerStarted = false;
-                                setSelection(mouseMoveEvent);
-                            }
-                        }
-                    };
-                    startTime = System.currentTimeMillis();
-                    if (!timerStarted) {
-                        timerStarted = true;
-                        display.timerExec(TIME * 2 / 3, runnable[0]);
-                    }
-                    break;
-                case SWT.MouseDown:
-                    mouseUpEvent = null;
-                    arrowKeyDown = false;
-                    break;
-                case SWT.Expand:
-                    expandOccurred = true;
-                    break;
-                case SWT.Collapse:
-                    collapseOccurred = true;
-                    break;
-                case SWT.MouseUp:
-                    mouseMoveEvent = null;
-                    if ((e.button != 1) || ((e.stateMask & ~SWT.BUTTON1) != 0)) {
-						return;
-					}
-                    if (selectionPendent != null
-                            && !(collapseOccurred || expandOccurred)) {
-                        mouseSelectItem(selectionPendent);
-                    } else {
-                        mouseUpEvent = e;
-                        collapseOccurred = false;
-                        expandOccurred = false;
-                    }
-                    break;
-                case SWT.KeyDown:
-                    mouseMoveEvent = null;
-                    mouseUpEvent = null;
-                    arrowKeyDown = ((e.keyCode == SWT.ARROW_UP) || (e.keyCode == SWT.ARROW_DOWN))
-                            && e.stateMask == 0;
-                    if (e.character == SWT.CR) {
-                        if (defaultSelectionPendent != null) {
-                            fireOpenEvent(new SelectionEvent(e));
-                            enterKeyDown = false;
-                            defaultSelectionPendent = null;
-                        } else {
-                            enterKeyDown = true;
-                        }
-                    }
-                    break;
-                case SWT.Selection:
-                    SelectionEvent event = new SelectionEvent(e);
-                    fireSelectionEvent(event);
-                    mouseMoveEvent = null;
-                    if (mouseUpEvent != null) {
-						mouseSelectItem(event);
-					} else {
-						selectionPendent = event;
-					}
-                    count[0]++;
-                    final int id = count[0];
-                    // In the case of arrowUp/arrowDown when in the arrowKeysOpen mode, we
-                    // want to delay any selection until the last arrowDown/Up occurs.  This
-                    // handles the case where the user presses arrowDown/Up successively.
-                    // We only want to open an editor for the last selected item.
-                    display.asyncExec(new Runnable() {
-                        public void run() {
-                            if (arrowKeyDown) {
-                                display.timerExec(TIME, new Runnable() {
-
-                                    public void run() {
-                                        if (id == count[0]) {
-                                            firePostSelectionEvent(new SelectionEvent(
-                                                    e));
-                                            if ((CURRENT_METHOD & ARROW_KEYS_OPEN) != 0) {
-												fireOpenEvent(new SelectionEvent(
-                                                        e));
-											}
-                                        }
-                                    }
-                                });
-                            } else {
-                                firePostSelectionEvent(new SelectionEvent(e));
-                            }
-                        }
-                    });
-                    break;
-                }
-            }
-
-            void mouseSelectItem(SelectionEvent e) {
-                if ((CURRENT_METHOD & SINGLE_CLICK) != 0) {
-					fireOpenEvent(e);
-				}
-                mouseUpEvent = null;
-                selectionPendent = null;
-            }
-
-            void setSelection(Event e) {
-                if (e == null) {
-					return;
-				}
-                Widget w = e.widget;
-                if (w.isDisposed()) {
-					return;
-				}
-
-                SelectionEvent selEvent = new SelectionEvent(e);
-
-                /*ISSUE: May have to create a interface with method:
-                 setSelection(Point p) so that user's custom widgets 
-                 can use this class. If we keep this option. */
-                if (w instanceof Tree) {
-                    Tree tree = (Tree) w;
-                    TreeItem item = tree.getItem(new Point(e.x, e.y));
-                    if (item != null) {
-						tree.setSelection(new TreeItem[] { item });
-					}
-                    selEvent.item = item;
-                } else if (w instanceof Table) {
-                    Table table = (Table) w;
-                    TableItem item = table.getItem(new Point(e.x, e.y));
-                    if (item != null) {
-						table.setSelection(new TableItem[] { item });
-					}
-                    selEvent.item = item;
-                } else if (w instanceof TableTree) {
-                    TableTree table = (TableTree) w;
-                    TableTreeItem item = table.getItem(new Point(e.x, e.y));
-                    if (item != null) {
-						table.setSelection(new TableTreeItem[] { item });
-					}
-                    selEvent.item = item;
-                } else {
-                    return;
-                }
-                if (selEvent.item == null) {
-					return;
-				}
-                fireSelectionEvent(selEvent);
-                firePostSelectionEvent(selEvent);
-            }
-        };
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Policy.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Policy.java
deleted file mode 100644
index c3219d8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Policy.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Gross (schtoo@schtoo.com) - support for ILogger added
- *       (bug 49497 [RCP] JFace dependency on org.eclipse.core.runtime enlarges standalone JFace applications)
- *******************************************************************************/
-package org.eclipse.jface.util;
-
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.AnimatorFactory;
-import org.eclipse.jface.dialogs.ErrorSupportProvider;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * The Policy class handles settings for behaviour, debug flags and logging
- * within JFace.
- * 
- * @since 3.0
- */
-public class Policy {
-
-	/**
-	 * Constant for the the default setting for debug options.
-	 */
-	public static final boolean DEFAULT = false;
-
-	/**
-	 * The unique identifier of the JFace plug-in.
-	 */
-	public static final String JFACE = "org.eclipse.jface"; //$NON-NLS-1$
-
-	private static ILogger log;
-
-	private static Comparator viewerComparator;
-
-	private static AnimatorFactory animatorFactory;
-
-	/**
-	 * A flag to indicate whether unparented dialogs should be checked.
-	 */
-	public static boolean DEBUG_DIALOG_NO_PARENT = DEFAULT;
-
-	/**
-	 * A flag to indicate whether actions are being traced.
-	 */
-	public static boolean TRACE_ACTIONS = DEFAULT;
-
-	/**
-	 * A flag to indicate whether toolbars are being traced.
-	 */
-
-	public static boolean TRACE_TOOLBAR = DEFAULT;
-
-	private static ErrorSupportProvider errorSupportProvider;
-
-	private static StatusHandler statusHandler;
-
-	/**
-	 * Returns the dummy log to use if none has been set
-	 */
-	private static ILogger getDummyLog() {
-		return new ILogger() {
-			public void log(IStatus status) {
-				System.err.println(status.getMessage());
-				if (status.getException() != null) {
-					status.getException().printStackTrace(System.err);
-				}
-			}
-		};
-	}
-
-	/**
-	 * Sets the logger used by JFace to log errors.
-	 * 
-	 * @param logger
-	 *            the logger to use, or <code>null</code> to use the default
-	 *            logger
-	 * @since 3.1
-	 */
-	public static void setLog(ILogger logger) {
-		log = logger;
-	}
-
-	/**
-	 * Returns the logger used by JFace to log errors.
-	 * <p>
-	 * The default logger prints the status to <code>System.err</code>.
-	 * </p>
-	 * 
-	 * @return the logger
-	 * @since 3.1
-	 */
-	public static ILogger getLog() {
-		if (log == null) {
-			log = getDummyLog();
-		}
-		return log;
-	}
-
-	/**
-	 * Sets the status handler used by JFace to handle statuses.
-	 * 
-	 * @param status
-	 *            the handler to use, or <code>null</code> to use the default
-	 *            one
-	 * @since 3.4
-	 */
-	public static void setStatusHandler(StatusHandler status) {
-		statusHandler = status;
-	}
-
-	/**
-	 * Returns the status handler used by JFace to handle statuses.
-	 * 
-	 * @return the status handler
-	 * @since 3.4
-	 */
-	public static StatusHandler getStatusHandler() {
-		if (statusHandler == null) {
-			statusHandler = getDummyStatusHandler();
-		}
-		return statusHandler;
-	}
-
-	private static StatusHandler getDummyStatusHandler() {
-		return new StatusHandler() {
-			private SafeRunnableDialog dialog;
-
-			public void show(final IStatus status, String title) {
-				Runnable runnable = new Runnable() {
-					public void run() {
-						if (dialog == null || dialog.getShell().isDisposed()) {
-							dialog = new SafeRunnableDialog(status);
-							dialog.create();
-							dialog.getShell().addDisposeListener(
-									new DisposeListener() {
-										public void widgetDisposed(
-												DisposeEvent e) {
-											dialog = null;
-										}
-									});
-							dialog.open();
-						} else {
-							dialog.addStatus(status);
-							dialog.refresh();
-						}
-					}
-				};
-				if (Display.getCurrent() != null) {
-					runnable.run();
-				} else {
-					Display.getDefault().asyncExec(runnable);
-				}
-			}
-		};
-	}
-
-	/**
-	 * Return the default comparator used by JFace to sort strings.
-	 * 
-	 * @return a default comparator used by JFace to sort strings
-	 */
-	private static Comparator getDefaultComparator() {
-		return new Comparator() {
-			/**
-			 * Compares string s1 to string s2.
-			 * 
-			 * @param s1
-			 *            string 1
-			 * @param s2
-			 *            string 2
-			 * @return Returns an integer value. Value is less than zero if
-			 *         source is less than target, value is zero if source and
-			 *         target are equal, value is greater than zero if source is
-			 *         greater than target.
-			 * @exception ClassCastException
-			 *                the arguments cannot be cast to Strings.
-			 */
-			public int compare(Object s1, Object s2) {
-				return ((String) s1).compareTo((String) s2);
-			}
-		};
-	}
-
-	/**
-	 * Return the comparator used by JFace to sort strings.
-	 * 
-	 * @return the comparator used by JFace to sort strings
-	 * @since 3.2
-	 */
-	public static Comparator getComparator() {
-		if (viewerComparator == null) {
-			viewerComparator = getDefaultComparator();
-		}
-		return viewerComparator;
-	}
-
-	/**
-	 * Sets the comparator used by JFace to sort strings.
-	 * 
-	 * @param comparator
-	 *            comparator used by JFace to sort strings
-	 * @since 3.2
-	 */
-	public static void setComparator(Comparator comparator) {
-		org.eclipse.core.runtime.Assert.isTrue(viewerComparator == null);
-		viewerComparator = comparator;
-	}
-
-	/**
-	 * Sets the animator factory used by JFace to create control animator
-	 * instances.
-	 * 
-	 * @param factory
-	 *            the AnimatorFactory to use.
-	 * @since 3.2
-	 * @deprecated this is no longer in use as of 3.3
-	 */
-	public static void setAnimatorFactory(AnimatorFactory factory) {
-		animatorFactory = factory;
-	}
-
-	/**
-	 * Returns the animator factory used by JFace to create control animator
-	 * instances.
-	 * 
-	 * @return the animator factory used to create control animator instances.
-	 * @since 3.2
-	 * @deprecated this is no longer in use as of 3.3
-	 */
-	public static AnimatorFactory getAnimatorFactory() {
-		if (animatorFactory == null)
-			animatorFactory = new AnimatorFactory();
-		return animatorFactory;
-	}
-
-	/**
-	 * Set the error support provider for error dialogs.
-	 * 
-	 * @param provider
-	 * @since 3.3
-	 */
-	public static void setErrorSupportProvider(ErrorSupportProvider provider) {
-		errorSupportProvider = provider;
-	}
-
-	/**
-	 * Return the ErrorSupportProvider for the receiver.
-	 * 
-	 * @return ErrorSupportProvider or <code>null</code> if this has not been
-	 *         set
-	 * @since 3.3
-	 */
-	public static ErrorSupportProvider getErrorSupportProvider() {
-		return errorSupportProvider;
-	}
-
-	/**
-	 * Log the Exception to the logger.
-	 * 
-	 * @param exception
-	 * @since 3.4
-	 */
-	public static void logException(Exception exception) {
-		getLog().log(
-				new Status(IStatus.ERROR, JFACE, exception
-						.getLocalizedMessage(), exception));
-
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/PropertyChangeEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/PropertyChangeEvent.java
deleted file mode 100644
index 186f478..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/PropertyChangeEvent.java
+++ /dev/null
@@ -1,109 +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.jface.util;
-
-import java.util.EventObject;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * An event object describing a change to a named property.
- * <p>
- * This concrete class was designed to be instantiated, but may
- * also be subclassed if required.
- * </p>
- * <p>
- * The JFace frameworks contain classes that report property 
- * change events for internal state changes that may be of interest
- * to external parties. A special listener interface
- * (<code>IPropertyChangeListener</code>) is defined for this purpose,
- * and a typical class allow listeners to be registered via
- * an <code>addPropertyChangeListener</code> method.
- * </p>
- *
- * @see IPropertyChangeListener
- */
-public class PropertyChangeEvent extends EventObject {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3256726173533811256L;
-
-    /**
-     * The name of the changed property.
-     */
-    private String propertyName;
-
-    /**
-     * The old value of the changed property, or <code>null</code> if
-     * not known or not relevant.
-     */
-    private Object oldValue;
-
-    /**
-     * The new value of the changed property, or <code>null</code> if
-     * not known or not relevant.
-     */
-    private Object newValue;
-
-    /**
-     * Creates a new property change event.
-     *
-     * @param source the object whose property has changed
-     * @param property the property that has changed (must not be <code>null</code>)
-     * @param oldValue the old value of the property, or <code>null</code> if none
-     * @param newValue the new value of the property, or <code>null</code> if none
-     */
-    public PropertyChangeEvent(Object source, String property, Object oldValue,
-            Object newValue) {
-        super(source);
-        Assert.isNotNull(property);
-        this.propertyName = property;
-        this.oldValue = oldValue;
-        this.newValue = newValue;
-    }
-
-    /**
-     * Returns the new value of the property.
-     *
-     * @return the new value, or <code>null</code> if not known
-     *  or not relevant (for instance if the property was removed).
-     */
-    public Object getNewValue() {
-        return newValue;
-    }
-
-    /**
-     * Returns the old value of the property.
-     *
-     * @return the old value, or <code>null</code> if not known
-     *  or not relevant (for instance if the property was just
-     *  added and there was no old value).
-     */
-    public Object getOldValue() {
-        return oldValue;
-    }
-
-    /**
-     * Returns the name of the property that changed.
-     * <p>
-     * Warning: there is no guarantee that the property name returned
-     * is a constant string.  Callers must compare property names using
-     * equals, not ==.
-     * </p>
-     *
-     * @return the name of the property that changed
-     */
-    public String getProperty() {
-        return propertyName;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnable.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnable.java
deleted file mode 100644
index 62ef4cc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnable.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Gross (schtoo@schtoo.com) - support for ISafeRunnableRunner added
- *       (bug 49497 [RCP] JFace dependency on org.eclipse.core.runtime enlarges standalone JFace applications)
- *******************************************************************************/
-package org.eclipse.jface.util;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.JFaceResources;
-
-/**
- * Implements a default implementation of ISafeRunnable. The default
- * implementation of <code>handleException</code> opens a dialog to show any
- * errors as they accumulate.
- * <p>
- * This may be executed on any thread.
- */
-public abstract class SafeRunnable implements ISafeRunnable {
-
-	private static boolean ignoreErrors = false;
-
-	private static ISafeRunnableRunner runner;
-
-	private String message;
-
-	/**
-	 * Creates a new instance of SafeRunnable with a default error message.
-	 */
-	public SafeRunnable() {
-		// do nothing
-	}
-
-	/**
-	 * Creates a new instance of SafeRunnable with the given error message.
-	 * 
-	 * @param message
-	 *            the error message to use
-	 */
-	public SafeRunnable(String message) {
-		this.message = message;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.ISafeRunnable#handleException(java.lang.Throwable)
-	 */
-	public void handleException(Throwable e) {
-		// Workaround to avoid interactive error dialogs during
-		// automated testing
-		if (ignoreErrors)
-			return;
-
-		if (message == null)
-			message = JFaceResources.getString("SafeRunnable.errorMessage"); //$NON-NLS-1$
-
-		Policy.getStatusHandler().show(
-				new Status(IStatus.ERROR, Policy.JFACE, message, e),
-				JFaceResources.getString("SafeRunnable.errorMessage")); //$NON-NLS-1$
-	}
-
-	/**
-	 * Flag to avoid interactive error dialogs during automated testing.
-	 * 
-	 * @param flag
-	 * @return true if errors should be ignored
-	 * @deprecated use getIgnoreErrors()
-	 */
-	public static boolean getIgnoreErrors(boolean flag) {
-		return ignoreErrors;
-	}
-
-	/**
-	 * Flag to avoid interactive error dialogs during automated testing.
-	 * 
-	 * @return true if errors should be ignored
-	 * 
-	 * @since 3.0
-	 */
-	public static boolean getIgnoreErrors() {
-		return ignoreErrors;
-	}
-
-	/**
-	 * Flag to avoid interactive error dialogs during automated testing.
-	 * 
-	 * @param flag
-	 *            set to true if errors should be ignored
-	 */
-	public static void setIgnoreErrors(boolean flag) {
-		ignoreErrors = flag;
-	}
-
-	/**
-	 * Returns the safe runnable runner.
-	 * 
-	 * @return the safe runnable runner
-	 * 
-	 * @since 3.1
-	 */
-	public static ISafeRunnableRunner getRunner() {
-		if (runner == null) {
-			runner = createDefaultRunner();
-		}
-		return runner;
-	}
-
-	/**
-	 * Creates the default safe runnable runner.
-	 * 
-	 * @return the default safe runnable runner
-	 * @since 3.1
-	 */
-	private static ISafeRunnableRunner createDefaultRunner() {
-		return new ISafeRunnableRunner() {
-			public void run(ISafeRunnable code) {
-				try {
-					code.run();
-				} catch (Exception e) {
-					handleException(code, e);
-				} catch (LinkageError e) {
-					handleException(code, e);
-				}
-			}
-
-			private void handleException(ISafeRunnable code, Throwable e) {
-				if (!(e instanceof OperationCanceledException)) {
-					try {
-						Policy.getLog()
-								.log(
-										new Status(IStatus.ERROR, Policy.JFACE,
-												IStatus.ERROR,
-												"Exception occurred", e)); //$NON-NLS-1$
-					} catch (Exception ex) {
-						e.printStackTrace();
-					}
-				}
-				code.handleException(e);
-			}
-		};
-	}
-
-	/**
-	 * Sets the safe runnable runner.
-	 * 
-	 * @param runner
-	 *            the runner to set, or <code>null</code> to reset to the
-	 *            default runner
-	 * @since 3.1
-	 */
-	public static void setRunner(ISafeRunnableRunner runner) {
-		SafeRunnable.runner = runner;
-	}
-
-	/**
-	 * Runs the given safe runnable using the safe runnable runner. This is a
-	 * convenience method, equivalent to:
-	 * <code>SafeRunnable.getRunner().run(runnable)</code>.
-	 * 
-	 * @param runnable
-	 *            the runnable to run
-	 * @since 3.1
-	 */
-	public static void run(ISafeRunnable runnable) {
-		getRunner().run(runnable);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnableDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnableDialog.java
deleted file mode 100644
index 0395962..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/SafeRunnableDialog.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * SafeRunnableDialog is a dialog that can show the results of multiple safe
- * runnable errors.
- * 
- */
-class SafeRunnableDialog extends ErrorDialog {
-
-	private TableViewer statusListViewer;
-
-	private Collection statuses = new ArrayList();
-
-	/**
-	 * Create a new instance of the receiver on a status.
-	 * 
-	 * @param status
-	 *            The status to display.
-	 */
-	SafeRunnableDialog(IStatus status) {
-
-		super(null, JFaceResources.getString("error"), status.getMessage(), //$NON-NLS-1$
-				status, IStatus.ERROR);
-
-		setShellStyle(SWT.DIALOG_TRIM | SWT.MODELESS | SWT.RESIZE | SWT.MIN | SWT.MAX
-				| getDefaultOrientation());
-
-		setStatus(status);
-		statuses.add(status);
-		
-		setBlockOnOpen(false);
-
-		String reason = JFaceResources
-				.getString("SafeRunnableDialog_checkDetailsMessage"); //$NON-NLS-1$
-		if (status.getException() != null) {
-			reason = status.getException().getMessage() == null ? status
-					.getException().toString() : status.getException()
-					.getMessage();
-		}
-		this.message = JFaceResources.format(
-				"SafeRunnableDialog_reason", new Object[] { //$NON-NLS-1$
-				status.getMessage(), reason });
-	}
-
-	/**
-	 * Method which should be invoked when new errors become available for
-	 * display
-	 */
-	void refresh() {
-
-		if (AUTOMATED_MODE)
-			return;
-
-		createStatusList((Composite) dialogArea);
-		updateEnablements();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.ErrorDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Control area = super.createDialogArea(parent);
-		createStatusList((Composite) area);
-		return area;
-	}
-
-	/**
-	 * Create the status list if required.
-	 * 
-	 * @param parent
-	 *            the Control to create it in.
-	 */
-	private void createStatusList(Composite parent) {
-		if (isMultipleStatusDialog()) {
-			if (statusListViewer == null) {
-				// The job list doesn't exist so create it.
-				setMessage(JFaceResources
-						.getString("SafeRunnableDialog_MultipleErrorsMessage")); //$NON-NLS-1$
-				getShell()
-						.setText(
-								JFaceResources
-										.getString("SafeRunnableDialog_MultipleErrorsTitle")); //$NON-NLS-1$
-				createStatusListArea(parent);
-				showDetailsArea();
-			}
-			refreshStatusList();
-		}
-	}
-
-	/*
-	 * Update the button enablements
-	 */
-	private void updateEnablements() {
-		Button details = getButton(IDialogConstants.DETAILS_ID);
-		if (details != null) {
-			details.setEnabled(true);
-		}
-	}
-
-	/**
-	 * This method sets the message in the message label.
-	 * 
-	 * @param messageString -
-	 *            the String for the message area
-	 */
-	private void setMessage(String messageString) {
-		// must not set null text in a label
-		message = messageString == null ? "" : messageString; //$NON-NLS-1$
-		if (messageLabel == null || messageLabel.isDisposed()) {
-			return;
-		}
-		messageLabel.setText(message);
-	}
-
-	/**
-	 * Create an area that allow the user to select one of multiple jobs that
-	 * have reported errors
-	 * 
-	 * @param parent -
-	 *            the parent of the area
-	 */
-	private void createStatusListArea(Composite parent) {
-		// Display a list of jobs that have reported errors
-		statusListViewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL
-				| SWT.V_SCROLL | SWT.BORDER);
-		statusListViewer.setComparator(getViewerComparator());
-		Control control = statusListViewer.getControl();
-		GridData data = new GridData(GridData.FILL_BOTH
-				| GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL);
-		data.heightHint = convertHeightInCharsToPixels(10);
-		data.horizontalSpan = 2;
-		control.setLayoutData(data);
-		statusListViewer.setContentProvider(getStatusContentProvider());
-		statusListViewer.setLabelProvider(getStatusListLabelProvider());
-		statusListViewer
-				.addSelectionChangedListener(new ISelectionChangedListener() {
-					public void selectionChanged(SelectionChangedEvent event) {
-						handleSelectionChange();
-					}
-				});
-		applyDialogFont(parent);
-		statusListViewer.setInput(this);
-	}
-
-	/**
-	 * Return the label provider for the status list.
-	 * 
-	 * @return CellLabelProvider
-	 */
-	private CellLabelProvider getStatusListLabelProvider() {
-		return new CellLabelProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.CellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-			 */
-			public void update(ViewerCell cell) {
-				cell.setText(((IStatus) cell.getElement()).getMessage());
-
-			}
-		};
-	}
-
-	/**
-	 * Return the content provider for the statuses.
-	 * 
-	 * @return IStructuredContentProvider
-	 */
-	private IStructuredContentProvider getStatusContentProvider() {
-		return new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return statuses.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) {
-
-			}
-		};
-	}
-
-	/*
-	 * Return whether there are multiple errors to be displayed
-	 */
-	private boolean isMultipleStatusDialog() {
-		return statuses.size() > 1;
-	}
-
-	/**
-	 * Return a viewer sorter for looking at the jobs.
-	 * 
-	 * @return ViewerSorter
-	 */
-	private ViewerComparator getViewerComparator() {
-		return new ViewerComparator() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public int compare(Viewer testViewer, Object e1, Object e2) {
-				String message1 = ((IStatus) e1).getMessage();
-				String message2 = ((IStatus) e2).getMessage();
-				if (message1 == null)
-					return 1;
-				if (message2 == null)
-					return -1;
-
-				return message1.compareTo(message2);
-			}
-		};
-	}
-
-	/**
-	 * Refresh the contents of the viewer.
-	 */
-	void refreshStatusList() {
-		if (statusListViewer != null
-				&& !statusListViewer.getControl().isDisposed()) {
-			statusListViewer.refresh();
-			Point newSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			getShell().setSize(newSize);
-		}
-	}
-
-	/**
-	 * Get the single selection. Return null if the selection is not just one
-	 * element.
-	 * 
-	 * @return IStatus or <code>null</code>.
-	 */
-	private IStatus getSingleSelection() {
-		ISelection rawSelection = statusListViewer.getSelection();
-		if (rawSelection != null
-				&& rawSelection instanceof IStructuredSelection) {
-			IStructuredSelection selection = (IStructuredSelection) rawSelection;
-			if (selection.size() == 1) {
-				return (IStatus) selection.getFirstElement();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * The selection in the multiple job list has changed. Update widget
-	 * enablements and repopulate the list.
-	 */
-	void handleSelectionChange() {
-		IStatus newSelection = getSingleSelection();
-		setStatus(newSelection);
-		updateEnablements();
-		showDetailsArea();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.ErrorDialog#shouldShowDetailsButton()
-	 */
-	protected boolean shouldShowDetailsButton() {
-		return true;
-	}
-
-	/**
-	 * Add the status to the receiver.
-	 * @param status
-	 */
-	public void addStatus(IStatus status) {
-		statuses.add(status);
-		refresh();
-		
-	}
-
-	
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/StatusHandler.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/StatusHandler.java
deleted file mode 100644
index a5db69d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/StatusHandler.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.util;
-
-import org.eclipse.core.runtime.IStatus;
-
-/**
- * A mechanism to handle statuses throughout JFace.
- * <p>
- * Clients may provide their own implementation to change how statuses are
- * handled from within JFace.
- * </p>
- * 
- * @see org.eclipse.jface.util.Policy#getStatusHandler()
- * @see org.eclipse.jface.util.Policy#setStatusHandler(StatusHandler)
- * 
- * @since 3.4
- */
-abstract public class StatusHandler {
-    
-	/**
-	 * Show the given status.
-	 * 
-	 * @param status
-	 *            status to handle
-	 * @param title
-	 *            title for the status
-	 */
-	abstract public void show(IStatus status, String title);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDragSourceListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDragSourceListener.java
deleted file mode 100644
index 7fc3685..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDragSourceListener.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.jface.util;
-
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.Transfer;
-
-/**
- * A <code>TransferDragSourceListener</code> is a <code>DragSourceListener</code> 
- * that can handle one type of SWT {@link Transfer}. 
- * The purpose of a <code>TransferDragSourceListener</code> is to:
- * <ul>
- *   <li>Determine enablement for a drag operation. A <code>TransferDragSourceListener</code>
- * 	will not be used in a drag operation if the <code>DragSourceEvent#doit</code> field 
- * 	is set to false in <code>DragSourceListener#dragStart(DragSourceEvent)</code>.
- *   <li>Set data for a single type of drag and <code>Transfer</code> type.
- * </ul>
- * <p>
- * A <code>DelegatingDragAdapter</code> allows these functions to be implemented 
- * separately for unrelated types of drags. <code>DelegatingDragAdapter</code> then 
- * combines the function of each <code>TransferDragSourceListener</code>, while 
- * allowing them to be implemented as if they were the only <code>DragSourceListener</code>.
- * </p>
- * @since 3.0
- */
-public interface TransferDragSourceListener extends DragSourceListener {
-    /**
-     * Returns the <code>Transfer</code> type that this listener can provide data for.
-     * 
-     * @return the <code>Transfer</code> associated with this listener
-     */
-    Transfer getTransfer();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDropTargetListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDropTargetListener.java
deleted file mode 100644
index cec4b9b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/TransferDropTargetListener.java
+++ /dev/null
@@ -1,57 +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.jface.util;
-
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-
-/**
- * A <code>TransferDropTargetListener</code> is a <code>DropTragetListener</code> 
- * that handles one type of SWT {@link Transfer}. 
- * The purpose of a <code>TransferDropTargetListener</code> is to:
- * <ul>
- *   <li>Determine enablement for a drop operation. A <code>TransferDropTargetListener</code>
- * 		will not be used if <code>isEnabled</code> returns false. 
- *   <li>When enabled, optionally show feedback on the <code>DropTarget</code>.
- *   <li>Perform the actual drop
- * </ul>
- * A <code>DelegatingDropAdapter</code> allows these functions to be implemented 
- * separately for unrelated types of drags. <code>DelegatingDropAdapter</code> then 
- * combines the function of each <code>TransferDropTargetListener</code>, while 
- * allowing them to be implemented as if they were the only <code>DragSourceListener</code>.
- * @since 3.0
- */
-public interface TransferDropTargetListener extends DropTargetListener {
-    /**
-     * Returns the <code>Transfer</code> type that this listener can 
-     * accept a drop operation for.
-     * 
-     * @return the <code>Transfer</code> for this listener
-     */
-    Transfer getTransfer();
-
-    /**
-     * Returns <code>true</code> if this listener can handle the drop
-     * based on the given <code>DropTargetEvent</code>.
-     * <p>
-     * This method is called by the <code>DelegatingDropAdapter</code> only
-     * if the <code>DropTargetEvent</code> contains a transfer data type
-     * supported by this listener. The <code>Transfer</code> returned by the 
-     * <code>#getTransfer()</code> method is used for this purpose.
-     * </p>
-     * 
-     * @param event the drop target event
-     * @return <code>true</code> if the listener is enabled for the given
-     * 	drop target event.
-     */
-    boolean isEnabled(DropTargetEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Util.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Util.java
deleted file mode 100644
index b9e7d8f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/Util.java
+++ /dev/null
@@ -1,667 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.util;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import org.eclipse.swt.SWT;
-
-/**
- * <p>
- * A static class providing utility methods to all of JFace.
- * </p>
- * 
- * @since 3.1
- */
-public final class Util {
-
-	/**
-	 * An unmodifiable, empty, sorted set. This value is guaranteed to never
-	 * change and never be <code>null</code>.
-	 */
-	public static final SortedSet EMPTY_SORTED_SET = Collections
-			.unmodifiableSortedSet(new TreeSet());
-
-	/**
-	 * A common zero-length string. It avoids needing write <code>NON-NLS</code>
-	 * next to code fragments. It's also a bit clearer to read.
-	 */
-	public static final String ZERO_LENGTH_STRING = ""; //$NON-NLS-1$
-
-	/**
-	 * Verifies that the given object is an instance of the given class.
-	 * 
-	 * @param object
-	 *            The object to check; may be <code>null</code>.
-	 * @param c
-	 *            The class which the object should be; must not be
-	 *            <code>null</code>.
-	 */
-	public static final void assertInstance(final Object object, final Class c) {
-		assertInstance(object, c, false);
-	}
-
-	/**
-	 * Verifies the given object is an instance of the given class. It is
-	 * possible to specify whether the object is permitted to be
-	 * <code>null</code>.
-	 * 
-	 * @param object
-	 *            The object to check; may be <code>null</code>.
-	 * @param c
-	 *            The class which the object should be; must not be
-	 *            <code>null</code>.
-	 * @param allowNull
-	 *            Whether the object is allowed to be <code>null</code>.
-	 */
-	private static final void assertInstance(final Object object,
-			final Class c, final boolean allowNull) {
-		if (object == null && allowNull) {
-			return;
-		}
-
-		if (object == null || c == null) {
-			throw new NullPointerException();
-		} else if (!c.isInstance(object)) {
-			throw new IllegalArgumentException();
-		}
-	}
-
-	/**
-	 * Compares two boolean values. <code>false</code> is considered to be
-	 * "less than" <code>true</code>.
-	 * 
-	 * @param left
-	 *            The left value to compare
-	 * @param right
-	 *            The right value to compare
-	 * @return <code>-1</code> if the left is <code>false</code> and the
-	 *         right is <code>true</code>. <code>1</code> if the opposite
-	 *         is true. If they are equal, then it returns <code>0</code>.
-	 */
-	public static final int compare(final boolean left, final boolean right) {
-		return left == false ? (right == true ? -1 : 0) : 1;
-	}
-
-	/**
-	 * Compares two integer values.
-	 * 
-	 * @param left
-	 *            The left value to compare
-	 * @param right
-	 *            The right value to compare
-	 * @return <code>left - right</code>
-	 */
-	public static final int compare(final int left, final int right) {
-		return left - right;
-	}
-
-	/**
-	 * Compares to comparable objects -- defending against <code>null</code>.
-	 * 
-	 * @param left
-	 *            The left object to compare; may be <code>null</code>.
-	 * @param right
-	 *            The right object to compare; may be <code>null</code>.
-	 * @return The result of the comparison. <code>null</code> is considered
-	 *         to be the least possible value.
-	 */
-	public static final int compare(final Comparable left,
-			final Comparable right) {
-		if (left == null && right == null) {
-			return 0;
-		} else if (left == null) {
-			return -1;
-		} else if (right == null) {
-			return 1;
-		} else {
-			return left.compareTo(right);
-		}
-	}
-
-	/**
-	 * Compares two arrays of comparable objects -- accounting for
-	 * <code>null</code>.
-	 * 
-	 * @param left
-	 *            The left array to be compared; may be <code>null</code>.
-	 * @param right
-	 *            The right array to be compared; may be <code>null</code>.
-	 * @return The result of the comparison. <code>null</code> is considered
-	 *         to be the least possible value. A shorter array is considered
-	 *         less than a longer array.
-	 */
-	public static final int compare(final Comparable[] left,
-			final Comparable[] right) {
-		if (left == null && right == null) {
-			return 0;
-		} else if (left == null) {
-			return -1;
-		} else if (right == null) {
-			return 1;
-		} else {
-			int l = left.length;
-			int r = right.length;
-
-			if (l != r) {
-				return l - r;
-			}
-
-			for (int i = 0; i < l; i++) {
-				int compareTo = compare(left[i], right[i]);
-
-				if (compareTo != 0) {
-					return compareTo;
-				}
-			}
-
-			return 0;
-		}
-	}
-
-	/**
-	 * Compares two lists -- account for <code>null</code>. The lists must
-	 * contain comparable objects.
-	 * 
-	 * @param left
-	 *            The left list to compare; may be <code>null</code>. This
-	 *            list must only contain instances of <code>Comparable</code>.
-	 * @param right
-	 *            The right list to compare; may be <code>null</code>. This
-	 *            list must only contain instances of <code>Comparable</code>.
-	 * @return The result of the comparison. <code>null</code> is considered
-	 *         to be the least possible value. A shorter list is considered less
-	 *         than a longer list.
-	 */
-	public static final int compare(final List left, final List right) {
-		if (left == null && right == null) {
-			return 0;
-		} else if (left == null) {
-			return -1;
-		} else if (right == null) {
-			return 1;
-		} else {
-			int l = left.size();
-			int r = right.size();
-
-			if (l != r) {
-				return l - r;
-			}
-
-			for (int i = 0; i < l; i++) {
-				int compareTo = compare((Comparable) left.get(i),
-						(Comparable) right.get(i));
-
-				if (compareTo != 0) {
-					return compareTo;
-				}
-			}
-
-			return 0;
-		}
-	}
-
-	/**
-	 * Tests whether the first array ends with the second array.
-	 * 
-	 * @param left
-	 *            The array to check (larger); may be <code>null</code>.
-	 * @param right
-	 *            The array that should be a subsequence (smaller); may be
-	 *            <code>null</code>.
-	 * @param equals
-	 *            Whether the two array are allowed to be equal.
-	 * @return <code>true</code> if the second array is a subsequence of the
-	 *         array list, and they share end elements.
-	 */
-	public static final boolean endsWith(final Object[] left,
-			final Object[] right, final boolean equals) {
-		if (left == null || right == null) {
-			return false;
-		}
-
-		int l = left.length;
-		int r = right.length;
-
-		if (r > l || !equals && r == l) {
-			return false;
-		}
-
-		for (int i = 0; i < r; i++) {
-			if (!equals(left[l - i - 1], right[r - i - 1])) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Checks whether the two objects are <code>null</code> -- allowing for
-	 * <code>null</code>.
-	 * 
-	 * @param left
-	 *            The left object to compare; may be <code>null</code>.
-	 * @param right
-	 *            The right object to compare; may be <code>null</code>.
-	 * @return <code>true</code> if the two objects are equivalent;
-	 *         <code>false</code> otherwise.
-	 */
-	public static final boolean equals(final Object left, final Object right) {
-		return left == null ? right == null : ((right != null) && left
-				.equals(right));
-	}
-
-	/**
-	 * Tests whether two arrays of objects are equal to each other. The arrays
-	 * must not be <code>null</code>, but their elements may be
-	 * <code>null</code>.
-	 * 
-	 * @param leftArray
-	 *            The left array to compare; may be <code>null</code>, and
-	 *            may be empty and may contain <code>null</code> elements.
-	 * @param rightArray
-	 *            The right array to compare; may be <code>null</code>, and
-	 *            may be empty and may contain <code>null</code> elements.
-	 * @return <code>true</code> if the arrays are equal length and the
-	 *         elements at the same position are equal; <code>false</code>
-	 *         otherwise.
-	 */
-	public static final boolean equals(final Object[] leftArray,
-			final Object[] rightArray) {
-		if (leftArray == rightArray) {
-			return true;
-		}
-
-		if (leftArray == null) {
-			return (rightArray == null);
-		} else if (rightArray == null) {
-			return false;
-		}
-
-		if (leftArray.length != rightArray.length) {
-			return false;
-		}
-
-		for (int i = 0; i < leftArray.length; i++) {
-			final Object left = leftArray[i];
-			final Object right = rightArray[i];
-			final boolean equal = (left == null) ? (right == null) : (left
-					.equals(right));
-			if (!equal) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Provides a hash code based on the given integer value.
-	 * 
-	 * @param i
-	 *            The integer value
-	 * @return <code>i</code>
-	 */
-	public static final int hashCode(final int i) {
-		return i;
-	}
-
-	/**
-	 * Provides a hash code for the object -- defending against
-	 * <code>null</code>.
-	 * 
-	 * @param object
-	 *            The object for which a hash code is required.
-	 * @return <code>object.hashCode</code> or <code>0</code> if
-	 *         <code>object</code> if <code>null</code>.
-	 */
-	public static final int hashCode(final Object object) {
-		return object != null ? object.hashCode() : 0;
-	}
-
-	/**
-	 * Computes the hash code for an array of objects, but with defense against
-	 * <code>null</code>.
-	 * 
-	 * @param objects
-	 *            The array of objects for which a hash code is needed; may be
-	 *            <code>null</code>.
-	 * @return The hash code for <code>objects</code>; or <code>0</code> if
-	 *         <code>objects</code> is <code>null</code>.
-	 */
-	public static final int hashCode(final Object[] objects) {
-		if (objects == null) {
-			return 0;
-		}
-
-		int hashCode = 89;
-		for (int i = 0; i < objects.length; i++) {
-			final Object object = objects[i];
-			if (object != null) {
-				hashCode = hashCode * 31 + object.hashCode();
-			}
-		}
-
-		return hashCode;
-	}
-
-	/**
-	 * Checks whether the second array is a subsequence of the first array, and
-	 * that they share common starting elements.
-	 * 
-	 * @param left
-	 *            The first array to compare (large); may be <code>null</code>.
-	 * @param right
-	 *            The second array to compare (small); may be <code>null</code>.
-	 * @param equals
-	 *            Whether it is allowed for the two arrays to be equivalent.
-	 * @return <code>true</code> if the first arrays starts with the second
-	 *         list; <code>false</code> otherwise.
-	 */
-	public static final boolean startsWith(final Object[] left,
-			final Object[] right, final boolean equals) {
-		if (left == null || right == null) {
-			return false;
-		}
-
-		int l = left.length;
-		int r = right.length;
-
-		if (r > l || !equals && r == l) {
-			return false;
-		}
-
-		for (int i = 0; i < r; i++) {
-			if (!equals(left[i], right[i])) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Converts an array into a string representation that is suitable for
-	 * debugging.
-	 * 
-	 * @param array
-	 *            The array to convert; may be <code>null</code>.
-	 * @return The string representation of the array; never <code>null</code>.
-	 */
-	public static final String toString(final Object[] array) {
-		if (array == null) {
-			return "null"; //$NON-NLS-1$
-		}
-
-		final StringBuffer buffer = new StringBuffer();
-		buffer.append('[');
-
-		final int length = array.length;
-		for (int i = 0; i < length; i++) {
-			if (i != 0) {
-				buffer.append(',');
-			}
-			final Object object = array[i];
-			final String element = String.valueOf(object);
-			buffer.append(element);
-		}
-		buffer.append(']');
-
-		return buffer.toString();
-	}
-
-	/**
-	 * Provides a translation of a particular key from the resource bundle.
-	 * 
-	 * @param resourceBundle
-	 *            The key to look up in the resource bundle; should not be
-	 *            <code>null</code>.
-	 * @param key
-	 *            The key to look up in the resource bundle; should not be
-	 *            <code>null</code>.
-	 * @param defaultString
-	 *            The value to return if the resource cannot be found; may be
-	 *            <code>null</code>.
-	 * @return The value of the translated resource at <code>key</code>. If
-	 *         the key cannot be found, then it is simply the
-	 *         <code>defaultString</code>.
-	 */
-	public static final String translateString(
-			final ResourceBundle resourceBundle, final String key,
-			final String defaultString) {
-		if (resourceBundle != null && key != null) {
-			try {
-				final String translatedString = resourceBundle.getString(key);
-
-				if (translatedString != null) {
-					return translatedString;
-				}
-			} catch (MissingResourceException eMissingResource) {
-				// Such is life. We'll return the key
-			}
-		}
-
-		return defaultString;
-	}
-	
-	/**
-	 * Foundation replacement for String.replaceAll(*).
-	 * 
-	 * @param src the starting string.
-	 * @param find the string to find.
-	 * @param replacement the string to replace.
-	 * @return The new string.
-	 * @since 3.4
-	 */
-	public static final String replaceAll(String src, String find, String replacement) {
-		final int len = src.length();
-		final int findLen = find.length();
-
-		int idx = src.indexOf(find);
-		if (idx < 0) {
-			return src;
-		}
-
-		StringBuffer buf = new StringBuffer();
-		int beginIndex = 0;
-		while (idx != -1 && idx < len) {
-			buf.append(src.substring(beginIndex, idx));
-			buf.append(replacement);
-			
-			beginIndex = idx + findLen;
-			if (beginIndex < len) {
-				idx = src.indexOf(find, beginIndex);
-			} else {
-				idx = -1;
-			}
-		}
-		if (beginIndex<len) {
-			buf.append(src.substring(beginIndex, (idx==-1?len:idx)));
-		}
-		return buf.toString();
-	}
-	
-	//
-	// Methods for working with the windowing system
-	//
-	
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_WIN32 = "win32";//$NON-NLS-1$
-
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_MOTIF = "motif";//$NON-NLS-1$
-
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_GTK = "gtk";//$NON-NLS-1$
-
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_PHOTON = "photon";//$NON-NLS-1$
-
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_CARBON = "carbon";//$NON-NLS-1$
-
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_COCOA = "cocoa";//$NON-NLS-1$
-
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_WPF = "wpf";//$NON-NLS-1$
-
-	/**
-	 * Windowing system constant.
-	 * @since 3.5
-	 */
-	public static final String WS_UNKNOWN = "unknown";//$NON-NLS-1$
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for windows platforms
-	 * @since 3.5
-	 */
-	public static final boolean isWindows() {
-		final String ws = SWT.getPlatform();
-		return WS_WIN32.equals(ws) || WS_WPF.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for mac platforms
-	 * @since 3.5
-	 */
-	public static final boolean isMac() {
-		final String ws = SWT.getPlatform();
-		return WS_CARBON.equals(ws) || WS_COCOA.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for linux platform
-	 * @since 3.5
-	 */
-	public static final boolean isLinux() {
-		final String ws = SWT.getPlatform();
-		return WS_GTK.equals(ws) || WS_MOTIF.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for gtk platforms
-	 * @since 3.5
-	 */
-	public static final boolean isGtk() {
-		final String ws = SWT.getPlatform();
-		return WS_GTK.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for motif platforms
-	 * @since 3.5
-	 */
-	public static final boolean isMotif() {
-		final String ws = SWT.getPlatform();
-		return WS_MOTIF.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for photon platforms
-	 * @since 3.5
-	 */
-	public static final boolean isPhoton() {
-		final String ws = SWT.getPlatform();
-		return WS_PHOTON.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for carbon platforms
-	 * @since 3.5
-	 */
-	public static final boolean isCarbon() {
-		final String ws = SWT.getPlatform();
-		return WS_CARBON.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for the cocoa platform.
-	 * @since 3.5
-	 */
-	public static final boolean isCocoa() {
-		final String ws = SWT.getPlatform();
-		return WS_COCOA.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for WPF
-	 * @since 3.5
-	 */
-	public static final boolean isWpf() {
-		final String ws = SWT.getPlatform();
-		return WS_WPF.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return <code>true</code> for win32
-	 * @since 3.5
-	 */
-	public static final boolean isWin32() {
-		final String ws = SWT.getPlatform();
-		return WS_WIN32.equals(ws);
-	}
-	
-	/**
-	 * Common WS query helper method. 
-	 * @return the SWT windowing platform string.
-	 * @see SWT#getPlatform()
-	 * @since 3.5
-	 */
-	public static final String getWS() {
-		return SWT.getPlatform();
-	}
-
-	/**
-	 * This class should never be constructed.
-	 */
-	private Util() {
-		// Not allowed.
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/util/package.html
deleted file mode 100644
index 4b1d4a8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/util/package.html
+++ /dev/null
@@ -1,15 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides useful building blocks used throughout JFace,
-including property change events, a listener list implementation, and runtime
-checked assertions.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractComboBoxCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractComboBoxCellEditor.java
deleted file mode 100644
index 63dd381..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractComboBoxCellEditor.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation (bug 174739)
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Abstract base class for Cell-Editors presented as combo boxes
- *
- * @since 3.4
- *
- */
-abstract class AbstractComboBoxCellEditor extends CellEditor {
-	/**
-	 * The list is dropped down when the activation is done through the mouse
-	 */
-	public static final int DROP_DOWN_ON_MOUSE_ACTIVATION = 1;
-
-	/**
-	 * The list is dropped down when the activation is done through the keyboard
-	 */
-	public static final int DROP_DOWN_ON_KEY_ACTIVATION = 1 << 1;
-
-	/**
-	 * The list is dropped down when the activation is done without
-	 * ui-interaction
-	 */
-	public static final int DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION = 1 << 2;
-
-	/**
-	 * The list is dropped down when the activation is done by traversing from
-	 * cell to cell
-	 */
-	public static final int DROP_DOWN_ON_TRAVERSE_ACTIVATION = 1 << 3;
-
-	private int activationStyle = SWT.NONE;
-
-	/**
-	 * Create a new cell-editor
-	 *
-	 * @param parent
-	 *            the parent of the combo
-	 * @param style
-	 *            the style used to create the combo
-	 */
-	AbstractComboBoxCellEditor(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	/**
-	 * Creates a new cell editor with no control and no st of choices.
-	 * Initially, the cell editor has no cell validator.
-	 *
-	 */
-	AbstractComboBoxCellEditor() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.CellEditor#activate(org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent)
-	 */
-	public void activate(ColumnViewerEditorActivationEvent activationEvent) {
-		super.activate(activationEvent);
-		if (activationStyle != SWT.NONE) {
-			boolean dropDown = false;
-			if ((activationEvent.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION || activationEvent.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION)
-					&& (activationStyle & DROP_DOWN_ON_MOUSE_ACTIVATION) != 0 ) {
-				dropDown = true;
-			} else if (activationEvent.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
-					&& (activationStyle & DROP_DOWN_ON_KEY_ACTIVATION) != 0 ) {
-				dropDown = true;
-			} else if (activationEvent.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
-					&& (activationStyle & DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION) != 0) {
-				dropDown = true;
-			} else if (activationEvent.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-					&& (activationStyle & DROP_DOWN_ON_TRAVERSE_ACTIVATION) != 0) {
-				dropDown = true;
-			}
-
-			if (dropDown) {
-				getControl().getDisplay().asyncExec(new Runnable() {
-
-					public void run() {
-						((CCombo) getControl()).setListVisible(true);
-					}
-
-				});
-
-			}
-		}
-	}
-
-	/**
-	 * This method allows to control how the combo reacts when activated
-	 *
-	 * @param activationStyle
-	 *            the style used
-	 */
-	public void setActivationStyle(int activationStyle) {
-		this.activationStyle = activationStyle;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java
deleted file mode 100644
index 3d505c8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractListViewer.java
+++ /dev/null
@@ -1,550 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Longfield <clongfield@internap.com> - Fix for Bug 70856
- *     Tom Schindl - fix for bug 157309
- *     Brad Reynolds - bug 141435
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Abstract base class for viewers that contain lists of items (such as a combo or list).
- * Most of the viewer implementation is in this base class, except for the minimal code that
- * actually communicates with the underlying widget.
- * 
- * @see org.eclipse.jface.viewers.ListViewer
- * @see org.eclipse.jface.viewers.ComboViewer
- * 
- * @since 3.0
- */
-public abstract class AbstractListViewer extends StructuredViewer {
-
-    /**
-     * A list of viewer elements (element type: <code>Object</code>).
-     */
-    private java.util.List listMap = new ArrayList();
-
-    /**
-     * Adds the given string to the underlying widget at the given index
-     *  
-     * @param string the string to add
-     * @param index position to insert the string into
-     */
-    protected abstract void listAdd(String string, int index);
-
-    /**
-     * Sets the text of the item at the given index in the underlying widget.
-     * 
-     * @param index index to modify
-     * @param string new text
-     */
-    protected abstract void listSetItem(int index, String string);
-
-    /**
-     * Returns the zero-relative indices of the items which are currently
-     * selected in the underlying widget.  The array is empty if no items are selected.
-     * <p>
-     * Note: This is not the actual structure used by the receiver
-     * to maintain its selection, so modifying the array will
-     * not affect the receiver. 
-     * </p>
-     * @return the array of indices of the selected items
-     */
-    protected abstract int[] listGetSelectionIndices();
-
-    /**
-     * Returns the number of items contained in the underlying widget.
-     *
-     * @return the number of items
-     */
-    protected abstract int listGetItemCount();
-
-    /**
-     * Sets the underlying widget's items to be the given array of items.
-     *
-     * @param labels the array of label text
-     */
-    protected abstract void listSetItems(String[] labels);
-
-    /**
-     * Removes all of the items from the underlying widget.
-     */
-    protected abstract void listRemoveAll();
-
-    /**
-     * Removes the item from the underlying widget at the given
-     * zero-relative index.
-     * 
-     * @param index the index for the item
-     */
-    protected abstract void listRemove(int index);
-
-    /**
-     * Selects the items at the given zero-relative indices in the underlying widget.
-     * The current selection is cleared before the new items are selected.
-     * <p>
-     * Indices that are out of range and duplicate indices are ignored.
-     * If the receiver is single-select and multiple indices are specified,
-     * then all indices are ignored.
-     *
-     * @param ixs the indices of the items to select
-     */
-    protected abstract void listSetSelection(int[] ixs);
-
-    /**
-     * Shows the selection.  If the selection is already showing in the receiver,
-     * this method simply returns.  Otherwise, the items are scrolled until
-     * the selection is visible.
-     */
-    protected abstract void listShowSelection();
-
-    /**
-     * Deselects all selected items in the underlying widget.
-     */
-    protected abstract void listDeselectAll();
-
-    /**
-     * Adds the given elements to this list viewer.
-     * If this viewer does not have a sorter, the elements are added at the end
-     * in the order given; otherwise the elements are inserted at appropriate positions.
-     * <p>
-     * This method should be called (by the content provider) when elements 
-     * have been added to the model, in order to cause the viewer to accurately
-     * reflect the model. This method only affects the viewer, not the model.
-     * </p>
-     *
-     * @param elements the elements to add
-     */
-    public void add(Object[] elements) {
-        assertElementsNotNull(elements);
-        Object[] filtered = filter(elements);
-        ILabelProvider labelProvider = (ILabelProvider) getLabelProvider();
-        for (int i = 0; i < filtered.length; i++) {
-            Object element = filtered[i];
-            int ix = indexForElement(element);
-            insertItem(labelProvider, element, ix);
-        }
-    }
-    
-    private void insertItem(ILabelProvider labelProvider, Object element, int index) {
-        listAdd(getLabelProviderText(labelProvider, element), index);
-		listMap.add(index, element);
-		mapElement(element, getControl()); // must map it, since findItem only looks in map, if enabled
-    }
-    
-    /**
-	 * Inserts the given element into this list viewer at the given position.
-	 * If this viewer has a sorter, the position is ignored and the element is
-	 * inserted at the correct position in the sort order.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been added to the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @param position
-	 *            a 0-based position relative to the model, or -1 to indicate
-	 *            the last position
-	 * @since 3.3
-	 */
-    public void insert(Object element, int position) {
-    	if (getComparator() != null || hasFilters()) {
-    		add(element);
-    		return;
-    	}
-    	
-    	insertItem((ILabelProvider) getLabelProvider(), element, position);
-    }
-    
-    
-    /**
-     * Return the text for the element from the labelProvider.
-     * If it is null then return the empty String.
-     * @param labelProvider ILabelProvider
-     * @param element
-     * @return String. Return the emptyString if the labelProvider
-     * returns null for the text.
-     * 
-     * @since 3.1
-     */
-    private String getLabelProviderText(ILabelProvider labelProvider, Object element){
-    	String text = labelProvider.getText(element);
-        if(text == null) {
-			return "";//$NON-NLS-1$
-		}
-        return text;
-    }
-
-    /**
-     * Adds the given element to this list viewer.
-     * If this viewer does not have a sorter, the element is added at the end;
-     * otherwise the element is inserted at the appropriate position.
-     * <p>
-     * This method should be called (by the content provider) when a single element 
-     * has been added to the model, in order to cause the viewer to accurately
-     * reflect the model. This method only affects the viewer, not the model.
-     * Note that there is another method for efficiently processing the simultaneous
-     * addition of multiple elements.
-     * </p>
-     *
-     * @param element the element
-     */
-    public void add(Object element) {
-        add(new Object[] { element });
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     * Since SWT.List doesn't use items we always return the List itself.
-     */
-    protected Widget doFindInputItem(Object element) {
-        if (element != null && equals(element, getRoot())) {
-			return getControl();
-		}
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     * Since SWT.List doesn't use items we always return the List itself.
-     */
-    protected Widget doFindItem(Object element) {
-        if (element != null) {
-            if (listMapContains(element)) {
-				return getControl();
-			}
-        }
-        return null;
-    }
-
-	/* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     */
-    protected void doUpdateItem(Widget data, Object element, boolean fullMap) {
-        if (element != null) {
-            int ix = getElementIndex(element);
-            if (ix >= 0) {
-                ILabelProvider labelProvider = (ILabelProvider) getLabelProvider();
-                listSetItem(ix, getLabelProviderText(labelProvider,element));
-            }
-        }
-    }
-
-    /**
-     * Returns the element with the given index from this list viewer.
-     * Returns <code>null</code> if the index is out of range.
-     *
-     * @param index the zero-based index
-     * @return the element at the given index, or <code>null</code> if the
-     *   index is out of range
-     */
-    public Object getElementAt(int index) {
-        if (index >= 0 && index < listMap.size()) {
-			return listMap.get(index);
-		}
-        return null;
-    }
-
-    /**
-     * The list viewer implementation of this <code>Viewer</code> framework
-     * method returns the label provider, which in the case of list
-     * viewers will be an instance of <code>ILabelProvider</code>.
-     */
-    public IBaseLabelProvider getLabelProvider() {
-        return super.getLabelProvider();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     */
-    protected List getSelectionFromWidget() {
-        int[] ixs = listGetSelectionIndices();
-        ArrayList list = new ArrayList(ixs.length);
-        for (int i = 0; i < ixs.length; i++) {
-            Object e = getElementAt(ixs[i]);
-            if (e != null) {
-				list.add(e);
-			}
-        }
-        return list;
-    }
-
-    /**
-     * @param element the element to insert
-     * @return the index where the item should be inserted.
-     */
-    protected int indexForElement(Object element) {
-        ViewerComparator comparator = getComparator();
-        if (comparator == null) {
-			return listGetItemCount();
-		}
-        int count = listGetItemCount();
-        int min = 0, max = count - 1;
-        while (min <= max) {
-            int mid = (min + max) / 2;
-            Object data = listMap.get(mid);
-            int compare = comparator.compare(this, data, element);
-            if (compare == 0) {
-                // find first item > element
-                while (compare == 0) {
-                    ++mid;
-                    if (mid >= count) {
-                        break;
-                    }
-                    data = listMap.get(mid);
-                    compare = comparator.compare(this, data, element);
-                }
-                return mid;
-            }
-            if (compare < 0) {
-				min = mid + 1;
-			} else {
-				max = mid - 1;
-			}
-        }
-        return min;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    protected void inputChanged(Object input, Object oldInput) {
-        listMap.clear();
-        Object[] children = getSortedChildren(getRoot());
-        int size = children.length;
-
-        listRemoveAll();
-        String[] labels = new String[size];
-        for (int i = 0; i < size; i++) {
-            Object el = children[i];
-            labels[i] = getLabelProviderText((ILabelProvider) getLabelProvider(),el);
-            listMap.add(el);
-            mapElement(el, getControl()); // must map it, since findItem only looks in map, if enabled
-        }
-        listSetItems(labels);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     */
-    protected void internalRefresh(Object element) {
-        Control list = getControl();
-        if (element == null || equals(element, getRoot())) {
-            // the parent
-            if (listMap != null) {
-				listMap.clear();
-			}
-            unmapAllElements();
-            List selection = getSelectionFromWidget();
-            
-            int topIndex = -1;
-            if (selection == null || selection.isEmpty()) {
-            	topIndex = listGetTopIndex();
-            }
-            
-            Object[] children = null;
-            list.setRedraw(false);
-            try {
-				listRemoveAll();
-	            
-	            children = getSortedChildren(getRoot());
-				String[] items = new String[children.length];
-				
-				ILabelProvider labelProvider = (ILabelProvider) getLabelProvider();
-				
-				for (int i = 0; i < items.length; i++) {
-	                Object el = children[i];
-	                items[i] = getLabelProviderText(labelProvider, el);
-	                listMap.add(el);
-	                mapElement(el, list); // must map it, since findItem only looks in map, if enabled
-	            }
-				
-				listSetItems(items);
-            } finally {
-            	list.setRedraw(true);
-            }
-            
-            if (topIndex == -1) {
-            	setSelectionToWidget(selection, false);
-            } else {
-				listSetTopIndex(Math.min(topIndex, children.length));
-            }
-        } else {
-            doUpdateItem(list, element, true);
-        }
-    }
-    
-    /**
-     * Returns the index of the item currently at the top of the viewable area.
-     * <p>
-     * Default implementation returns -1.
-     * </p>
-     * @return index, -1 for none
-     * @since 3.3
-     */
-    protected int listGetTopIndex(){
-    	return -1;
-    }
-
-    /**
-     * Sets the index of the item to be at the top of the viewable area.
-     * <p>
-     * Default implementation does nothing.
-     * </p>
-     * @param index the given index. -1 for none.  index will always refer to a valid index.
-     * @since 3.3
-     */
-    protected void listSetTopIndex(int index) {
-    }
-    
-    /**
-     * Removes the given elements from this list viewer.
-     *
-     * @param elements the elements to remove
-     */
-    private void internalRemove(final Object[] elements) {
-        Object input = getInput();
-        for (int i = 0; i < elements.length; ++i) {
-            if (equals(elements[i], input)) {
-                setInput(null);
-                return;
-            }
-            int ix = getElementIndex(elements[i]);
-            if (ix >= 0) {
-                listRemove(ix);
-                listMap.remove(ix);
-                unmapElement(elements[i], getControl());
-            }
-        }
-    }
-
-    /**
-     * Removes the given elements from this list viewer.
-     * The selection is updated if required.
-     * <p>
-     * This method should be called (by the content provider) when elements 
-     * have been removed from the model, in order to cause the viewer to accurately
-     * reflect the model. This method only affects the viewer, not the model.
-     * </p>
-     *
-     * @param elements the elements to remove
-     */
-    public void remove(final Object[] elements) {
-        assertElementsNotNull(elements);
-        if (elements.length == 0) {
-        	return;
-        }
-        preservingSelection(new Runnable() {
-            public void run() {
-                internalRemove(elements);
-            }
-        });
-    }
-
-    /**
-     * Removes the given element from this list viewer.
-     * The selection is updated if necessary.
-     * <p>
-     * This method should be called (by the content provider) when a single element 
-     * has been removed from the model, in order to cause the viewer to accurately
-     * reflect the model. This method only affects the viewer, not the model.
-     * Note that there is another method for efficiently processing the simultaneous
-     * removal of multiple elements.
-     * </p>
-     *
-     * @param element the element
-     */
-    public void remove(Object element) {
-        remove(new Object[] { element });
-    }
-
-    /**
-	 * The list viewer implementation of this <code>Viewer</code> framework
-	 * method ensures that the given label provider is an instance of
-	 * <code>ILabelProvider</code>.
-	 * 
-	 * <b>The optional interfaces {@link IColorProvider} and
-	 * {@link IFontProvider} have no effect for this type of viewer</b>
-	 */
-    public void setLabelProvider(IBaseLabelProvider labelProvider) {
-        Assert.isTrue(labelProvider instanceof ILabelProvider);
-        super.setLabelProvider(labelProvider);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     */
-    protected void setSelectionToWidget(List in, boolean reveal) {
-        if (in == null || in.size() == 0) { // clear selection
-            listDeselectAll();
-        } else {
-            int n = in.size();
-            int[] ixs = new int[n];
-            int count = 0;
-            for (int i = 0; i < n; ++i) {
-                Object el = in.get(i);
-                int ix = getElementIndex(el);
-                if (ix >= 0) {
-					ixs[count++] = ix;
-				}
-            }
-            if (count < n) {
-                System.arraycopy(ixs, 0, ixs = new int[count], 0, count);
-            }
-            listSetSelection(ixs);
-            if (reveal) {
-                listShowSelection();
-            }
-        }
-    }
-
-    /**
-     * Returns the index of the given element in listMap, or -1 if the element cannot be found.
-     * As of 3.3, uses the element comparer if available.
-     * 
-     * @param element
-     * @return the index
-     */
-    int getElementIndex(Object element) {
-		IElementComparer comparer = getComparer();
-		if (comparer == null) {
-			return listMap.indexOf(element);
-		}
-		int size = listMap.size();
-		for (int i = 0; i < size; i++) {
-			if (comparer.equals(element, listMap.get(i)))
-				return i;
-		}
-		return -1;
-	}
-
-    /**
-	 * @param element
-	 * @return true if listMap contains the given element
-	 * 
-	 * @since 3.3
-	 */
-	private boolean listMapContains(Object element) {
-		return getElementIndex(element) != -1;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java
deleted file mode 100644
index ca71505..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTableViewer.java
+++ /dev/null
@@ -1,1369 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation bug 154329
- *                                               - fixes in bug 170381, 198665, 200731
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * This is a widget independent class implementors of
- * {@link org.eclipse.swt.widgets.Table} like widgets can use to provide a
- * viewer on top of their widget implementations.
- *
- * @since 3.3
- */
-public abstract class AbstractTableViewer extends ColumnViewer {
-
-	private class VirtualManager {
-
-		/**
-		 * The currently invisible elements as provided by the content provider
-		 * or by addition. This will not be populated by an
-		 * ILazyStructuredContentProvider as an ILazyStructuredContentProvider
-		 * is only queried on the virtual callback.
-		 */
-		private Object[] cachedElements = new Object[0];
-
-		/**
-		 * Create a new instance of the receiver.
-		 *
-		 */
-		public VirtualManager() {
-			addTableListener();
-		}
-
-		/**
-		 * Add the listener for SetData on the table
-		 */
-		private void addTableListener() {
-			getControl().addListener(SWT.SetData, new Listener() {
-				/*
-				 * (non-Javadoc)
-				 *
-				 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-				 */
-				public void handleEvent(Event event) {
-					Item item = (Item) event.item;
-					final int index = doIndexOf(item);
-					
-					if (index == -1) {
-						// Should not happen, but the spec for doIndexOf allows returning -1.
-						// See bug 241117.
-						return;
-					}
-					
-					Object element = resolveElement(index);
-					if (element == null) {
-						// Didn't find it so make a request
-						// Keep looking if it is not in the cache.
-						IContentProvider contentProvider = getContentProvider();
-						// If we are building lazily then request lookup now
-						if (contentProvider instanceof ILazyContentProvider) {
-							((ILazyContentProvider) contentProvider)
-									.updateElement(index);
-							return;
-						}
-					}
-
-					associate(element, item);
-					updateItem(item, element);
-				}
-
-			});
-		}
-
-		/**
-		 * Get the element at index.Resolve it lazily if this is available.
-		 *
-		 * @param index
-		 * @return Object or <code>null</code> if it could not be found
-		 */
-		protected Object resolveElement(int index) {
-
-			Object element = null;
-			if (index < cachedElements.length) {
-				element = cachedElements[index];
-			}
-
-			return element;
-		}
-
-		/**
-		 * A non visible item has been added.
-		 *
-		 * @param element
-		 * @param index
-		 */
-		public void notVisibleAdded(Object element, int index) {
-
-			int requiredCount = doGetItemCount() + 1;
-
-			Object[] newCache = new Object[requiredCount];
-			System.arraycopy(cachedElements, 0, newCache, 0, index);
-			if (index < cachedElements.length) {
-				System.arraycopy(cachedElements, index, newCache, index + 1,
-						cachedElements.length - index);
-			}
-			newCache[index] = element;
-			cachedElements = newCache;
-
-			doSetItemCount(requiredCount);
-		}
-
-		/**
-		 * The elements with the given indices need to be removed from the
-		 * cache.
-		 *
-		 * @param indices
-		 */
-		public void removeIndices(int[] indices) {
-			if (indices.length == 1) {
-				removeIndicesFromTo(indices[0], indices[0]);
-			}
-			int requiredCount = doGetItemCount() - indices.length;
-
-			Arrays.sort(indices);
-			Object[] newCache = new Object[requiredCount];
-			int indexInNewCache = 0;
-			int nextToSkip = 0;
-			for (int i = 0; i < cachedElements.length; i++) {
-				if (nextToSkip < indices.length && i == indices[nextToSkip]) {
-					nextToSkip++;
-				} else {
-					newCache[indexInNewCache++] = cachedElements[i];
-				}
-			}
-			cachedElements = newCache;
-		}
-
-		/**
-		 * The elements between the given indices (inclusive) need to be removed
-		 * from the cache.
-		 *
-		 * @param from
-		 * @param to
-		 */
-		public void removeIndicesFromTo(int from, int to) {
-			int indexAfterTo = to + 1;
-			Object[] newCache = new Object[cachedElements.length
-					- (indexAfterTo - from)];
-			System.arraycopy(cachedElements, 0, newCache, 0, from);
-			if (indexAfterTo < cachedElements.length) {
-				System.arraycopy(cachedElements, indexAfterTo, newCache, from,
-						cachedElements.length - indexAfterTo);
-			}
-		}
-
-		/**
-		 * @param element
-		 * @return the index of the element in the cache, or null
-		 */
-		public int find(Object element) {
-			return Arrays.asList(cachedElements).indexOf(element);
-		}
-
-		/**
-		 * @param count
-		 */
-		public void adjustCacheSize(int count) {
-			if (count == cachedElements.length) {
-				return;
-			} else if (count < cachedElements.length) {
-				Object[] newCache = new Object[count];
-				System.arraycopy(cachedElements, 0, newCache, 0, count);
-				cachedElements = newCache;
-			} else {
-				Object[] newCache = new Object[count];
-				System.arraycopy(cachedElements, 0, newCache, 0,
-						cachedElements.length);
-				cachedElements = newCache;
-			}
-		}
-
-	}
-
-	private VirtualManager virtualManager;
-
-	/**
-	 * Create the new viewer for table like widgets
-	 */
-	public AbstractTableViewer() {
-		super();
-	}
-
-	protected void hookControl(Control control) {
-		super.hookControl(control);
-		initializeVirtualManager(getControl().getStyle());
-	}
-	
-	protected void handleDispose(DisposeEvent event) {
-		super.handleDispose(event);
-		virtualManager = null;
-	}
-
-	/**
-	 * Initialize the virtual manager to manage the virtual state if the table
-	 * is VIRTUAL. If not use the default no-op version.
-	 *
-	 * @param style
-	 */
-	private void initializeVirtualManager(int style) {
-		if ((style & SWT.VIRTUAL) == 0) {
-			return;
-		}
-
-		virtualManager = new VirtualManager();
-	}
-
-	/**
-	 * Adds the given elements to this table viewer. If this viewer does not
-	 * have a sorter, the elements are added at the end in the order given;
-	 * otherwise the elements are inserted at appropriate positions.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been added to the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 *
-	 * @param elements
-	 *            the elements to add
-	 */
-	public void add(Object[] elements) {
-		assertElementsNotNull(elements);
-		if (checkBusy())
-			return;
-		Object[] filtered = filter(elements);
-
-		for (int i = 0; i < filtered.length; i++) {
-			Object element = filtered[i];
-			int index = indexForElement(element);
-			createItem(element, index);
-		}
-	}
-
-	/**
-	 * Create a new TableItem at index if required.
-	 *
-	 * @param element
-	 * @param index
-	 *
-	 * @since 3.1
-	 */
-	private void createItem(Object element, int index) {
-		if (virtualManager == null) {
-			updateItem(internalCreateNewRowPart(SWT.NONE, index).getItem(),
-					element);
-		} else {
-			virtualManager.notVisibleAdded(element, index);
-
-		}
-	}
-
-	/**
-	 * Create a new row.  Callers can only use the returned object locally and before
-	 * making the next call on the viewer since it may be re-used for subsequent method
-	 * calls.
-	 *
-	 * @param style
-	 *            the style for the new row
-	 * @param rowIndex
-	 *            the index of the row or -1 if the row is appended at the end
-	 * @return the newly created row
-	 */
-	protected abstract ViewerRow internalCreateNewRowPart(int style,
-			int rowIndex);
-
-	/**
-	 * Adds the given element to this table viewer. If this viewer does not have
-	 * a sorter, the element is added at the end; otherwise the element is
-	 * inserted at the appropriate position.
-	 * <p>
-	 * This method should be called (by the content provider) when a single
-	 * element has been added to the model, in order to cause the viewer to
-	 * accurately reflect the model. This method only affects the viewer, not
-	 * the model. Note that there is another method for efficiently processing
-	 * the simultaneous addition of multiple elements.
-	 * </p>
-	 *
-	 * @param element
-	 *            the element to add
-	 */
-	public void add(Object element) {
-		add(new Object[] { element });
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#doFindInputItem(java.lang.Object)
-	 */
-	protected Widget doFindInputItem(Object element) {
-		if (equals(element, getRoot())) {
-			return getControl();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#doFindItem(java.lang.Object)
-	 */
-	protected Widget doFindItem(Object element) {
-
-		Item[] children = doGetItems();
-		for (int i = 0; i < children.length; i++) {
-			Item item = children[i];
-			Object data = item.getData();
-			if (data != null && equals(data, element)) {
-				return item;
-			}
-		}
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#doUpdateItem(org.eclipse.swt.widgets.Widget,
-	 *      java.lang.Object, boolean)
-	 */
-	protected void doUpdateItem(Widget widget, Object element, boolean fullMap) {
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			if (widget instanceof Item) {
-				final Item item = (Item) widget;
-
-				// remember element we are showing
-				if (fullMap) {
-					associate(element, item);
-				} else {
-					Object data = item.getData();
-					if (data != null) {
-						unmapElement(data, item);
-					}
-					item.setData(element);
-					mapElement(element, item);
-				}
-
-				int columnCount = doGetColumnCount();
-				if (columnCount == 0)
-					columnCount = 1;// If there are no columns do the first one
-
-				ViewerRow viewerRowFromItem = getViewerRowFromItem(item);
-
-				boolean isVirtual = (getControl().getStyle() & SWT.VIRTUAL) != 0;
-
-				// If the control is virtual, we cannot use the cached viewer row object. See bug 188663.
-				if (isVirtual) {
-					viewerRowFromItem = (ViewerRow) viewerRowFromItem.clone();
-				}
-
-				// Also enter loop if no columns added. See 1G9WWGZ: JFUIF:WINNT -
-				// TableViewer with 0 columns does not work
-				for (int column = 0; column < columnCount || column == 0; column++) {
-					ViewerColumn columnViewer = getViewerColumn(column);
-					ViewerCell cellToUpdate = updateCell(viewerRowFromItem,
-							column, element);
-
-					// If the control is virtual, we cannot use the cached cell object. See bug 188663.
-					if (isVirtual) {
-						cellToUpdate = new ViewerCell(cellToUpdate.getViewerRow(), cellToUpdate.getColumnIndex(), element);
-					}
-
-					columnViewer.refresh(cellToUpdate);
-
-					// clear cell (see bug 201280)
-					updateCell(null, 0, null);
-
-					// As it is possible for user code to run the event
-					// loop check here.
-					if (item.isDisposed()) {
-						unmapElement(element, item);
-						return;
-					}
-
-				}
-
-			}
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnViewerOwner(int)
-	 */
-	protected Widget getColumnViewerOwner(int columnIndex) {
-		int columnCount = doGetColumnCount();
-
-		if (columnIndex < 0
-				|| (columnIndex > 0 && columnIndex >= columnCount)) {
-			return null;
-		}
-
-		if (columnCount == 0)// Hang it off the table if it
-			return getControl();
-
-		return doGetColumn(columnIndex);
-	}
-
-	/**
-	 * Returns the element with the given index from this table viewer. Returns
-	 * <code>null</code> if the index is out of range.
-	 * <p>
-	 * This method is internal to the framework.
-	 * </p>
-	 *
-	 * @param index
-	 *            the zero-based index
-	 * @return the element at the given index, or <code>null</code> if the
-	 *         index is out of range
-	 */
-	public Object getElementAt(int index) {
-		if (index >= 0 && index < doGetItemCount()) {
-			Item i = doGetItem(index);
-			if (i != null) {
-				return i.getData();
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * The table viewer implementation of this <code>Viewer</code> framework
-	 * method returns the label provider, which in the case of table viewers
-	 * will be an instance of either <code>ITableLabelProvider</code> or
-	 * <code>ILabelProvider</code>. If it is an
-	 * <code>ITableLabelProvider</code>, then it provides a separate label
-	 * text and image for each column. If it is an <code>ILabelProvider</code>,
-	 * then it provides only the label text and image for the first column, and
-	 * any remaining columns are blank.
-	 */
-	public IBaseLabelProvider getLabelProvider() {
-		return super.getLabelProvider();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#getSelectionFromWidget()
-	 */
-	protected List getSelectionFromWidget() {
-		if (virtualManager != null) {
-			return getVirtualSelection();
-		}
-		Widget[] items = doGetSelection();
-		ArrayList list = new ArrayList(items.length);
-		for (int i = 0; i < items.length; i++) {
-			Widget item = items[i];
-			Object e = item.getData();
-			if (e != null) {
-				list.add(e);
-			}
-		}
-		return list;
-	}
-
-	/**
-	 * Get the virtual selection. Avoid calling SWT whenever possible to prevent
-	 * extra widget creation.
-	 *
-	 * @return List of Object
-	 */
-
-	private List getVirtualSelection() {
-
-		List result = new ArrayList();
-		int[] selectionIndices = doGetSelectionIndices();
-		if (getContentProvider() instanceof ILazyContentProvider) {
-			ILazyContentProvider lazy = (ILazyContentProvider) getContentProvider();
-			for (int i = 0; i < selectionIndices.length; i++) {
-				int selectionIndex = selectionIndices[i];
-				lazy.updateElement(selectionIndex);// Start the update
-				// check for the case where the content provider changed the number of items
-				if (selectionIndex < doGetItemCount()) {
-					Object element = doGetItem(selectionIndex).getData();
-					// Only add the element if it got updated.
-					// If this is done deferred the selection will
-					// be incomplete until selection is finished.
-					if (element != null) {
-						result.add(element);
-					}
-				}
-			}
-		} else {
-			for (int i = 0; i < selectionIndices.length; i++) {
-				Object element = null;
-				// See if it is cached
-				int selectionIndex = selectionIndices[i];
-				if (selectionIndex < virtualManager.cachedElements.length) {
-					element = virtualManager.cachedElements[selectionIndex];
-				}
-				if (element == null) {
-					// Not cached so try the item's data
-					Item item = doGetItem(selectionIndex);
-					element = item.getData();
-				}
-				if (element != null) {
-					result.add(element);
-				}
-			}
-
-		}
-		return result;
-	}
-
-	/**
-	 * @param element
-	 *            the element to insert
-	 * @return the index where the item should be inserted.
-	 */
-	protected int indexForElement(Object element) {
-		ViewerComparator comparator = getComparator();
-		if (comparator == null) {
-			return doGetItemCount();
-		}
-		int count = doGetItemCount();
-		int min = 0, max = count - 1;
-		while (min <= max) {
-			int mid = (min + max) / 2;
-			Object data = doGetItem(mid).getData();
-			int compare = comparator.compare(this, data, element);
-			if (compare == 0) {
-				// find first item > element
-				while (compare == 0) {
-					++mid;
-					if (mid >= count) {
-						break;
-					}
-					data = doGetItem(mid).getData();
-					compare = comparator.compare(this, data, element);
-				}
-				return mid;
-			}
-			if (compare < 0) {
-				min = mid + 1;
-			} else {
-				max = mid - 1;
-			}
-		}
-		return min;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.Viewer#inputChanged(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	protected void inputChanged(Object input, Object oldInput) {
-		getControl().setRedraw(false);
-		try {
-			preservingSelection(new Runnable() {
-				public void run() {
-					internalRefresh(getRoot());
-				}
-			});
-		} finally {
-			getControl().setRedraw(true);
-		}
-	}
-
-	/**
-	 * Inserts the given element into this table viewer at the given position.
-	 * If this viewer has a sorter, the position is ignored and the element is
-	 * inserted at the correct position in the sort order.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been added to the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 *
-	 * @param element
-	 *            the element
-	 * @param position
-	 *            a 0-based position relative to the model, or -1 to indicate
-	 *            the last position
-	 */
-	public void insert(Object element, int position) {
-		applyEditorValue();
-		if (getComparator() != null || hasFilters()) {
-			add(element);
-			return;
-		}
-		if (position == -1) {
-			position = doGetItemCount();
-		}
-		if (checkBusy())
-			return;
-		createItem(element, position);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#internalRefresh(java.lang.Object)
-	 */
-	protected void internalRefresh(Object element) {
-		internalRefresh(element, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#internalRefresh(java.lang.Object,
-	 *      boolean)
-	 */
-	protected void internalRefresh(Object element, boolean updateLabels) {
-		applyEditorValue();
-		if (element == null || equals(element, getRoot())) {
-			if (virtualManager == null) {
-				internalRefreshAll(updateLabels);
-			} else {
-				internalVirtualRefreshAll();
-			}
-		} else {
-			Widget w = findItem(element);
-			if (w != null) {
-				updateItem(w, element);
-			}
-		}
-	}
-
-	/**
-	 * Refresh all with virtual elements.
-	 *
-	 * @since 3.1
-	 */
-	private void internalVirtualRefreshAll() {
-
-		Object root = getRoot();
-		IContentProvider contentProvider = getContentProvider();
-
-		// Invalidate for lazy
-		if (!(contentProvider instanceof ILazyContentProvider)
-				&& (contentProvider instanceof IStructuredContentProvider)) {
-			// Don't cache if the root is null but cache if it is not lazy.
-			if (root != null) {
-				virtualManager.cachedElements = getSortedChildren(root);
-				doSetItemCount(virtualManager.cachedElements.length);
-			}
-		}
-		doClearAll();
-	}
-
-	/**
-	 * Refresh all of the elements of the table. update the labels if
-	 * updatLabels is true;
-	 *
-	 * @param updateLabels
-	 *
-	 * @since 3.1
-	 */
-	private void internalRefreshAll(boolean updateLabels) {
-		// the parent
-
-		// in the code below, it is important to do all disassociates
-		// before any associates, since a later disassociate can undo an
-		// earlier associate
-		// e.g. if (a, b) is replaced by (b, a), the disassociate of b to
-		// item 1 could undo
-		// the associate of b to item 0.
-
-		Object[] children = getSortedChildren(getRoot());
-		Item[] items = doGetItems();
-		int min = Math.min(children.length, items.length);
-		for (int i = 0; i < min; ++i) {
-
-			Item item = items[i];
-
-			// if the element is unchanged, update its label if appropriate
-			if (equals(children[i], item.getData())) {
-				if (updateLabels) {
-					updateItem(item, children[i]);
-				} else {
-					// associate the new element, even if equal to the old
-					// one,
-					// to remove stale references (see bug 31314)
-					associate(children[i], item);
-				}
-			} else {
-				// updateItem does an associate(...), which can mess up
-				// the associations if the order of elements has changed.
-				// E.g. (a, b) -> (b, a) first replaces a->0 with b->0, then
-				// replaces b->1 with a->1, but this actually removes b->0.
-				// So, if the object associated with this item has changed,
-				// just disassociate it for now, and update it below.
-				// we also need to reset the item (set its text,images etc. to
-				// default values) because the label decorators rely on this
-				disassociate(item);
-				doClear(i);
-			}
-		}
-		// dispose of all items beyond the end of the current elements
-		if (min < items.length) {
-			for (int i = items.length; --i >= min;) {
-
-				disassociate(items[i]);
-			}
-			if (virtualManager != null) {
-				virtualManager.removeIndicesFromTo(min, items.length - 1);
-			}
-			doRemove(min, items.length - 1);
-		}
-		// Workaround for 1GDGN4Q: ITPUI:WIN2000 - TableViewer icons get
-		// scrunched
-		if (doGetItemCount() == 0) {
-			doRemoveAll();
-		}
-		// Update items which were disassociated above
-		for (int i = 0; i < min; ++i) {
-
-			Item item = items[i];
-			if (item.getData() == null) {
-				updateItem(item, children[i]);
-			}
-		}
-		// add any remaining elements
-		for (int i = min; i < children.length; ++i) {
-			createItem(children[i], i);
-		}
-	}
-
-	/**
-	 * Removes the given elements from this table viewer.
-	 *
-	 * @param elements
-	 *            the elements to remove
-	 */
-	private void internalRemove(final Object[] elements) {
-		Object input = getInput();
-		for (int i = 0; i < elements.length; ++i) {
-			if (equals(elements[i], input)) {
-				boolean oldBusy = isBusy();
-				setBusy(false);
-				try {
-					setInput(null);
-				} finally {
-					setBusy(oldBusy);
-				}
-				return;
-			}
-		}
-		// use remove(int[]) rather than repeated TableItem.dispose() calls
-		// to allow SWT to optimize multiple removals
-		int[] indices = new int[elements.length];
-		int count = 0;
-		for (int i = 0; i < elements.length; ++i) {
-			Widget w = findItem(elements[i]);
-			if (w == null && virtualManager != null) {
-				int index = virtualManager.find(elements[i]);
-				if (index != -1) {
-					indices[count++] = index;
-				}
-			} else if (w instanceof Item) {
-				Item item = (Item) w;
-				disassociate(item);
-				indices[count++] = doIndexOf(item);
-			}
-		}
-		if (count < indices.length) {
-			System.arraycopy(indices, 0, indices = new int[count], 0, count);
-		}
-		if (virtualManager != null) {
-			virtualManager.removeIndices(indices);
-		}
-		doRemove(indices);
-
-		// Workaround for 1GDGN4Q: ITPUI:WIN2000 - TableViewer icons get
-		// scrunched
-		if (doGetItemCount() == 0) {
-			doRemoveAll();
-		}
-	}
-
-	/**
-	 * Removes the given elements from this table viewer. The selection is
-	 * updated if required.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been removed from the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 *
-	 * @param elements
-	 *            the elements to remove
-	 */
-	public void remove(final Object[] elements) {
-		assertElementsNotNull(elements);
-		if (checkBusy())
-			return;
-		if (elements.length == 0) {
-			return;
-		}
-		preservingSelection(new Runnable() {
-			public void run() {
-				internalRemove(elements);
-			}
-		});
-	}
-
-	/**
-	 * Removes the given element from this table viewer. The selection is
-	 * updated if necessary.
-	 * <p>
-	 * This method should be called (by the content provider) when a single
-	 * element has been removed from the model, in order to cause the viewer to
-	 * accurately reflect the model. This method only affects the viewer, not
-	 * the model. Note that there is another method for efficiently processing
-	 * the simultaneous removal of multiple elements.
-	 * </p>
-	 * <strong>NOTE:</strong> removing an object from a virtual table will
-	 * decrement the itemCount.
-	 *
-	 * @param element
-	 *            the element
-	 */
-	public void remove(Object element) {
-		remove(new Object[] { element });
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#reveal(java.lang.Object)
-	 */
-	public void reveal(Object element) {
-		Assert.isNotNull(element);
-		Widget w = findItem(element);
-		if (w instanceof Item) {
-			doShowItem((Item) w);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#setSelectionToWidget(java.util.List,
-	 *      boolean)
-	 */
-	protected void setSelectionToWidget(List list, boolean reveal) {
-		if (list == null) {
-			doDeselectAll();
-			return;
-		}
-
-		if (virtualManager != null) {
-			virtualSetSelectionToWidget(list, reveal);
-			return;
-		}
-
-		// This is vital to use doSetSelection because on SWT-Table on Win32 this will also
-		// move the focus to this row (See bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=198665)
-		if (reveal) {
-			int size = list.size();
-			Item[] items = new Item[size];
-			int count = 0;
-			for (int i = 0; i < size; ++i) {
-				Object o = list.get(i);
-				Widget w = findItem(o);
-				if (w instanceof Item) {
-					Item item = (Item) w;
-					items[count++] = item;
-				}
-			}
-			if (count < size) {
-				System.arraycopy(items, 0, items = new Item[count], 0, count);
-			}
-			doSetSelection(items);
-		} else {
-			doDeselectAll(); // Clear the selection
-			if( ! list.isEmpty() ) {
-				int[] indices = new int[list.size()];
-
-				Iterator it = list.iterator();
-				Item[] items = doGetItems();
-				Object modelElement;
-
-				int count = 0;
-				while( it.hasNext() ) {
-					modelElement = it.next();
-					boolean found = false;
-					for (int i = 0; i < items.length && !found; i++) {
-						if (equals(modelElement, items[i].getData())) {
-							indices[count++] = i;
-							found = true;
-						}
-					}
-				}
-
-				if (count < indices.length) {
-					System.arraycopy(indices, 0, indices = new int[count], 0, count);
-				}
-
-				doSelect(indices);
-			}
-		}
-	}
-
-	/**
-	 * Set the selection on a virtual table
-	 *
-	 * @param list
-	 *            The elements to set
-	 * @param reveal
-	 *            Whether or not reveal the first item.
-	 */
-	private void virtualSetSelectionToWidget(List list, boolean reveal) {
-		int size = list.size();
-		int[] indices = new int[list.size()];
-
-		Item firstItem = null;
-		int count = 0;
-		HashSet virtualElements = new HashSet();
-		for (int i = 0; i < size; ++i) {
-			Object o = list.get(i);
-			Widget w = findItem(o);
-			if (w instanceof Item) {
-				Item item = (Item) w;
-				indices[count++] = doIndexOf(item);
-				if (firstItem == null) {
-					firstItem = item;
-				}
-			} else {
-				virtualElements.add(o);
-			}
-		}
-
-		if (getContentProvider() instanceof ILazyContentProvider) {
-			ILazyContentProvider provider = (ILazyContentProvider) getContentProvider();
-
-			// Now go through it again until all is done or we are no longer
-			// virtual
-			// This may create all items so it is not a good
-			// idea in general.
-			// Use #setSelection (int [] indices,boolean reveal) instead
-			for (int i = 0; virtualElements.size() > 0 && i < doGetItemCount(); i++) {
-				provider.updateElement(i);
-				Item item = doGetItem(i);
-				if (virtualElements.contains(item.getData())) {
-					indices[count++] = i;
-					virtualElements.remove(item.getData());
-					if (firstItem == null) {
-						firstItem = item;
-					}
-				}
-			}
-		} else {
-
-			if (count != list.size()) {// As this is expensive skip it if all
-				// have been found
-				// If it is not lazy we can use the cache
-				for (int i = 0; i < virtualManager.cachedElements.length; i++) {
-					Object element = virtualManager.cachedElements[i];
-					if (virtualElements.contains(element)) {
-						Item item = doGetItem(i);
-						item.getText();// Be sure to fire the update
-						indices[count++] = i;
-						virtualElements.remove(element);
-						if (firstItem == null) {
-							firstItem = item;
-						}
-					}
-				}
-			}
-		}
-
-		if (count < size) {
-			System.arraycopy(indices, 0, indices = new int[count], 0, count);
-		}
-		doDeselectAll();
-		doSelect(indices);
-
-		if (reveal && firstItem != null) {
-			doShowItem(firstItem);
-		}
-	}
-
-	/**
-	 * Set the item count of the receiver.
-	 *
-	 * @param count
-	 *            the new table size.
-	 *
-	 * @since 3.1
-	 */
-	public void setItemCount(int count) {
-		if (checkBusy())
-			return;
-		int oldCount = doGetItemCount();
-		if (count < oldCount) {
-			// need to disassociate elements that are being disposed
-			for (int i = count; i < oldCount; i++) {
-				Item item = doGetItem(i);
-				if (item.getData() != null) {
-					disassociate(item);
-				}
-			}
-		}
-		doSetItemCount(count);
-		if (virtualManager != null) {
-			virtualManager.adjustCacheSize(count);
-		}
-		getControl().redraw();
-	}
-
-	/**
-	 * Replace the element at the given index with the given element. This
-	 * method will not call the content provider to verify. <strong>Note that
-	 * this method will materialize a TableItem the given index.</strong>.
-	 * 
-	 * @param element
-	 * @param index
-	 * @see ILazyContentProvider
-	 * 
-	 * @since 3.1
-	 */
-	public void replace(Object element, int index) {
-		if (checkBusy())
-			return;
-		Item item = doGetItem(index);
-		refreshItem(item, element);
-	}
-
-	/**
-	 * Clear the table item at the specified index
-	 *
-	 * @param index
-	 *            the index of the table item to be cleared
-	 *
-	 * @since 3.1
-	 */
-	public void clear(int index) {
-		Item item = doGetItem(index);
-		if (item.getData() != null) {
-			disassociate(item);
-		}
-		doClear(index);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#getRawChildren(java.lang.Object)
-	 */
-	protected Object[] getRawChildren(Object parent) {
-
-		Assert.isTrue(!(getContentProvider() instanceof ILazyContentProvider),
-				"Cannot get raw children with an ILazyContentProvider");//$NON-NLS-1$
-		return super.getRawChildren(parent);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#assertContentProviderType(org.eclipse.jface.viewers.IContentProvider)
-	 */
-	protected void assertContentProviderType(IContentProvider provider) {
-		Assert.isTrue(provider instanceof IStructuredContentProvider
-				|| provider instanceof ILazyContentProvider);
-	}
-
-	/**
-	 * Searches the receiver's list starting at the first item (index 0) until
-	 * an item is found that is equal to the argument, and returns the index of
-	 * that item. If no item is found, returns -1.
-	 *
-	 * @param item
-	 *            the search item
-	 * @return the index of the item
-	 *
-	 * @since 3.3
-	 */
-	protected abstract int doIndexOf(Item item);
-
-	/**
-	 * Returns the number of items contained in the receiver.
-	 *
-	 * @return the number of items
-	 *
-	 * @since 3.3
-	 */
-	protected abstract int doGetItemCount();
-
-	/**
-	 * Sets the number of items contained in the receiver.
-	 *
-	 * @param count
-	 *            the number of items
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doSetItemCount(int count);
-
-	/**
-	 * Returns a (possibly empty) array of TableItems which are the items in the
-	 * receiver.
-	 *
-	 * @return the items in the receiver
-	 *
-	 * @since 3.3
-	 */
-	protected abstract Item[] doGetItems();
-
-	/**
-	 * Returns the column at the given, zero-relative index in the receiver.
-	 * Throws an exception if the index is out of range. Columns are returned in
-	 * the order that they were created. If no TableColumns were created by the
-	 * programmer, this method will throw ERROR_INVALID_RANGE despite the fact
-	 * that a single column of data may be visible in the table. This occurs
-	 * when the programmer uses the table like a list, adding items but never
-	 * creating a column.
-	 *
-	 * @param index
-	 *            the index of the column to return
-	 * @return the column at the given index
-	 * @exception IllegalArgumentException -
-	 *                if the index is not between 0 and the number of elements
-	 *                in the list minus 1 (inclusive)
-	 *
-	 * @since 3.3
-	 */
-	protected abstract Widget doGetColumn(int index);
-
-	/**
-	 * Returns the item at the given, zero-relative index in the receiver.
-	 * Throws an exception if the index is out of range.
-	 *
-	 * @param index
-	 *            the index of the item to return
-	 * @return the item at the given index
-	 * @exception IllegalArgumentException -
-	 *                if the index is not between 0 and the number of elements
-	 *                in the list minus 1 (inclusive)
-	 *
-	 * @since 3.3
-	 */
-	protected abstract Item doGetItem(int index);
-
-	/**
-	 * Returns an array of {@link Item} that are currently selected in the
-	 * receiver. The order of the items is unspecified. An empty array indicates
-	 * that no items are selected.
-	 *
-	 * @return an array representing the selection
-	 *
-	 * @since 3.3
-	 */
-	protected abstract Item[] doGetSelection();
-
-	/**
-	 * Returns the zero-relative indices of the items which are currently
-	 * selected in the receiver. The order of the indices is unspecified. The
-	 * array is empty if no items are selected.
-	 *
-	 * @return an array representing the selection
-	 *
-	 * @since 3.3
-	 */
-	protected abstract int[] doGetSelectionIndices();
-
-	/**
-	 * Clears all the items in the receiver. The text, icon and other attributes
-	 * of the items are set to their default values. If the table was created
-	 * with the <code>SWT.VIRTUAL</code> style, these attributes are requested
-	 * again as needed.
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doClearAll();
-
-	/**
-	 * Resets the given item in the receiver. The text, icon and other attributes
-	 * of the item are set to their default values.
-	 *
-	 * @param item the item to reset
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doResetItem(Item item);
-
-	/**
-	 * Removes the items from the receiver which are between the given
-	 * zero-relative start and end indices (inclusive).
-	 *
-	 * @param start
-	 *            the start of the range
-	 * @param end
-	 *            the end of the range
-	 *
-	 * @exception IllegalArgumentException -
-	 *                if either the start or end are not between 0 and the
-	 *                number of elements in the list minus 1 (inclusive)
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doRemove(int start, int end);
-
-	/**
-	 * Removes all of the items from the receiver.
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doRemoveAll();
-
-	/**
-	 * Removes the items from the receiver's list at the given zero-relative
-	 * indices.
-	 *
-	 * @param indices
-	 *            the array of indices of the items
-	 *
-	 * @exception IllegalArgumentException -
-	 *                if the array is null, or if any of the indices is not
-	 *                between 0 and the number of elements in the list minus 1
-	 *                (inclusive)
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doRemove(int[] indices);
-
-	/**
-	 * Shows the item. If the item is already showing in the receiver, this
-	 * method simply returns. Otherwise, the items are scrolled until the item
-	 * is visible.
-	 *
-	 * @param item
-	 *            the item to be shown
-	 *
-	 * @exception IllegalArgumentException -
-	 *                if the item is null
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doShowItem(Item item);
-
-	/**
-	 * Deselects all selected items in the receiver.
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doDeselectAll();
-
-	/**
-	 * Sets the receiver's selection to be the given array of items. The current
-	 * selection is cleared before the new items are selected.
-	 * <p>
-	 * Items that are not in the receiver are ignored. If the receiver is
-	 * single-select and multiple items are specified, then all items are
-	 * ignored.
-	 * </p>
-	 *
-	 * @param items
-	 *            the array of items
-	 *
-	 * @exception IllegalArgumentException -
-	 *                if the array of items is null
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doSetSelection(Item[] items);
-
-	/**
-	 * Shows the selection. If the selection is already showing in the receiver,
-	 * this method simply returns. Otherwise, the items are scrolled until the
-	 * selection is visible.
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doShowSelection();
-
-	/**
-	 * Selects the items at the given zero-relative indices in the receiver. The
-	 * current selection is cleared before the new items are selected.
-	 * <p>
-	 * Indices that are out of range and duplicate indices are ignored. If the
-	 * receiver is single-select and multiple indices are specified, then all
-	 * indices are ignored.
-	 * </p>
-	 *
-	 * @param indices
-	 *            the indices of the items to select
-	 *
-	 * @exception IllegalArgumentException -
-	 *                if the array of indices is null
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doSetSelection(int[] indices);
-
-	/**
-	 * Clears the item at the given zero-relative index in the receiver. The
-	 * text, icon and other attributes of the item are set to the default value.
-	 * If the table was created with the <code>SWT.VIRTUAL</code> style, these
-	 * attributes are requested again as needed.
-	 *
-	 * @param index
-	 *            the index of the item to clear
-	 *
-	 * @exception IllegalArgumentException -
-	 *                if the index is not between 0 and the number of elements
-	 *                in the list minus 1 (inclusive)
-	 *
-	 * @see SWT#VIRTUAL
-	 * @see SWT#SetData
-	 *
-	 * @since 3.3
-	 */
-	protected abstract void doClear(int index);
-
-
-
-	/**
-	 * Selects the items at the given zero-relative indices in the receiver.
-	 * The current selection is not cleared before the new items are selected.
-	 * <p>
-	 * If the item at a given index is not selected, it is selected.
-	 * If the item at a given index was already selected, it remains selected.
-	 * Indices that are out of range and duplicate indices are ignored.
-	 * If the receiver is single-select and multiple indices are specified,
-	 * then all indices are ignored.
-	 * </p>
-	 *
-	 * @param indices the array of indices for the items to select
-	 *
-	 * @exception IllegalArgumentException - if the array of indices is null
-	 *
-	 */
-	protected abstract void doSelect(int[] indices);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
deleted file mode 100644
index b0d51e6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
+++ /dev/null
@@ -1,3104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - bug 153993, bug 167323, bug 175192
- *     Lasse Knudsen, bug 205700
- *     Micah Hainline, bug 210448
- *     Michael Schneider, bug 210747
- *     Bruce Sutton, bug 221768
- *     Matthew Hall, bug 221988
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.TreeEvent;
-import org.eclipse.swt.events.TreeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Abstract base implementation for tree-structure-oriented viewers (trees and
- * table trees).
- * <p>
- * Nodes in the tree can be in either an expanded or a collapsed state,
- * depending on whether the children on a node are visible. This class
- * introduces public methods for controlling the expanding and collapsing of
- * nodes.
- * </p>
- * <p>
- * As of 3.2, AbstractTreeViewer supports multiple equal elements (each with a
- * different parent chain) in the tree. This support requires that clients
- * enable the element map by calling <code>setUseHashLookup(true)</code>.
- * </p>
- * <p>
- * Content providers for abstract tree viewers must implement one of the
- * interfaces <code>ITreeContentProvider</code> or (as of 3.2, to support
- * multiple equal elements) <code>ITreePathContentProvider</code>.
- * </p>
- *
- * @see TreeViewer
- */
-public abstract class AbstractTreeViewer extends ColumnViewer {
-
-	/**
-	 * Constant indicating that all levels of the tree should be expanded or
-	 * collapsed.
-	 *
-	 * @see #expandToLevel(int)
-	 * @see #collapseToLevel(Object, int)
-	 */
-	public static final int ALL_LEVELS = -1;
-
-	/**
-	 * List of registered tree listeners (element type:
-	 * <code>TreeListener</code>).
-	 */
-	private ListenerList treeListeners = new ListenerList();
-
-	/**
-	 * The level to which the tree is automatically expanded each time the
-	 * viewer's input is changed (that is, by <code>setInput</code>). A value
-	 * of 0 means that auto-expand is off.
-	 *
-	 * @see #setAutoExpandLevel
-	 */
-	private int expandToLevel = 0;
-
-	/**
-	 * Safe runnable used to update an item.
-	 */
-	class UpdateItemSafeRunnable extends SafeRunnable {
-		private Object element;
-
-		private Item item;
-
-		UpdateItemSafeRunnable(Item item, Object element) {
-			this.item = item;
-			this.element = element;
-		}
-
-		public void run() {
-			doUpdateItem(item, element);
-		}
-
-	}
-
-	/**
-	 * Creates an abstract tree viewer. The viewer has no input, no content
-	 * provider, a default label provider, no sorter, no filters, and has
-	 * auto-expand turned off.
-	 */
-	protected AbstractTreeViewer() {
-		// do nothing
-	}
-
-	/**
-	 * Adds the given child elements to this viewer as children of the given
-	 * parent element. If this viewer does not have a sorter, the elements are
-	 * added at the end of the parent's list of children in the order given;
-	 * otherwise, the elements are inserted at the appropriate positions.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been added to the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 *
-	 * @param parentElementOrTreePath
-	 *            the parent element
-	 * @param childElements
-	 *            the child elements to add
-	 */
-	public void add(Object parentElementOrTreePath, Object[] childElements) {
-		Assert.isNotNull(parentElementOrTreePath);
-		assertElementsNotNull(childElements);
-		if (checkBusy())
-			return;
-		Widget[] widgets = internalFindItems(parentElementOrTreePath);
-		// If parent hasn't been realized yet, just ignore the add.
-		if (widgets.length == 0) {
-			return;
-		}
-
-		for (int i = 0; i < widgets.length; i++) {
-			internalAdd(widgets[i], parentElementOrTreePath, childElements);
-		}
-	}
-
-	/**
-	 * Find the items for the given element of tree path
-	 *
-	 * @param parentElementOrTreePath
-	 *            the element or tree path
-	 * @return the items for that element
-	 *
-	 * @since 3.3
-	 */
-	final protected Widget[] internalFindItems(Object parentElementOrTreePath) {
-		Widget[] widgets;
-		if (parentElementOrTreePath instanceof TreePath) {
-			TreePath path = (TreePath) parentElementOrTreePath;
-			Widget w = internalFindItem(path);
-			if (w == null) {
-				widgets = new Widget[] {};
-			} else {
-				widgets = new Widget[] { w };
-			}
-		} else {
-			widgets = findItems(parentElementOrTreePath);
-		}
-		return widgets;
-	}
-
-	/**
-	 * Return the item at the given path or <code>null</code>
-	 *
-	 * @param path
-	 *            the path
-	 * @return {@link Widget} the item at that path
-	 */
-	private Widget internalFindItem(TreePath path) {
-		Widget[] widgets = findItems(path.getLastSegment());
-		for (int i = 0; i < widgets.length; i++) {
-			Widget widget = widgets[i];
-			if (widget instanceof Item) {
-				Item item = (Item) widget;
-				TreePath p = getTreePathFromItem(item);
-				if (p.equals(path)) {
-					return widget;
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Adds the given child elements to this viewer as children of the given
-	 * parent element.
-	 * <p>
-	 * EXPERIMENTAL. Not to be used except by JDT. This method was added to
-	 * support JDT's explorations into grouping by working sets, which requires
-	 * viewers to support multiple equal elements. See bug 76482 for more
-	 * details. This support will likely be removed in Eclipse 3.2 in favor of
-	 * proper support for multiple equal elements.
-	 * </p>
-	 *
-	 * @param widget
-	 *            the widget for the parent element
-	 * @param parentElementOrTreePath
-	 *            the parent element
-	 * @param childElements
-	 *            the child elements to add
-	 * @since 3.1
-	 */
-	protected void internalAdd(Widget widget, Object parentElementOrTreePath,
-			Object[] childElements) {
-		Object parent;
-		TreePath path;
-		if (parentElementOrTreePath instanceof TreePath) {
-			path = (TreePath) parentElementOrTreePath;
-			parent = path.getLastSegment();
-		} else {
-			parent = parentElementOrTreePath;
-			path = null;
-		}
-
-		// optimization!
-		// if the widget is not expanded we just invalidate the subtree
-		if (widget instanceof Item) {
-			Item ti = (Item) widget;
-			if (!getExpanded(ti)) {
-				boolean needDummy = isExpandable(ti, path, parent);
-				boolean haveDummy = false;
-				// remove all children
-				Item[] items = getItems(ti);
-				for (int i = 0; i < items.length; i++) {
-					if (items[i].getData() != null) {
-						disassociate(items[i]);
-						items[i].dispose();
-					} else {
-						if (needDummy && !haveDummy) {
-							haveDummy = true;
-						} else {
-							items[i].dispose();
-						}
-					}
-				}
-				// append a dummy if necessary
-				if (needDummy && !haveDummy) {
-					newItem(ti, SWT.NULL, -1);
-				}
-				return;
-			}
-		}
-
-		if (childElements.length > 0) {
-			// TODO: Add filtering back?
-			Object[] filtered = filter(parentElementOrTreePath, childElements);
-			ViewerComparator comparator = getComparator();
-			if (comparator != null) {
-				if (comparator instanceof TreePathViewerSorter) {
-					TreePathViewerSorter tpvs = (TreePathViewerSorter) comparator;
-					if (path == null) {
-						path = internalGetSorterParentPath(widget, comparator);
-					}
-					tpvs.sort(this, path, filtered);
-				} else {
-					comparator.sort(this, filtered);
-				}
-			}
-			createAddedElements(widget, filtered);
-		}
-	}
-
-	/**
-	 * Filter the children elements.
-	 *
-	 * @param parentElementOrTreePath
-	 *            the parent element or path
-	 * @param elements
-	 *            the child elements
-	 * @return the filter list of children
-	 */
-	private Object[] filter(Object parentElementOrTreePath, Object[] elements) {
-		ViewerFilter[] filters = getFilters();
-		if (filters != null) {
-			ArrayList filtered = new ArrayList(elements.length);
-			for (int i = 0; i < elements.length; i++) {
-				boolean add = true;
-				for (int j = 0; j < filters.length; j++) {
-					add = filters[j].select(this, parentElementOrTreePath,
-							elements[i]);
-					if (!add) {
-						break;
-					}
-				}
-				if (add) {
-					filtered.add(elements[i]);
-				}
-			}
-			return filtered.toArray();
-		}
-		return elements;
-	}
-
-	/**
-	 * Create the new elements in the parent widget. If the child already exists
-	 * do nothing.
-	 *
-	 * @param widget
-	 * @param elements
-	 *            Sorted list of elements to add.
-	 */
-	private void createAddedElements(Widget widget, Object[] elements) {
-
-		if (elements.length == 1) {
-			if (equals(elements[0], widget.getData())) {
-				return;
-			}
-		}
-
-		ViewerComparator comparator = getComparator();
-		TreePath parentPath = internalGetSorterParentPath(widget, comparator);
-		Item[] items = getChildren(widget);
-
-		// Optimize for the empty case
-		if (items.length == 0) {
-			for (int i = 0; i < elements.length; i++) {
-				createTreeItem(widget, elements[i], -1);
-			}
-			return;
-		}
-
-		// Optimize for no comparator
-		if (comparator == null) {
-			for (int i = 0; i < elements.length; i++) {
-				Object element = elements[i];
-				if (itemExists(items, element)) {
-					internalRefresh(element);
-				} else {
-					createTreeItem(widget, element, -1);
-				}
-			}
-			return;
-		}
-		// As the items are sorted already we optimize for a
-		// start position. This is the insertion position relative to the
-		// original item array.
-		int indexInItems = 0;
-		
-		// Count of elements we have added. See bug 205700 for why this is needed.
-		int newItems = 0;
-		
-		elementloop: for (int i = 0; i < elements.length; i++) {
-			Object element = elements[i];
-			// update the index relative to the original item array
-			indexInItems = insertionPosition(items, comparator,
-					indexInItems, element, parentPath);
-			if (indexInItems == items.length) {
-				createTreeItem(widget, element, -1);
-				newItems++;
-			} else {
-				// Search for an item for the element. The comparator might
-				// regard elements as equal when they are not.
-
-				// Use a separate index variable to search within the existing
-				// elements that compare equally, see
-				// TreeViewerTestBug205700.testAddEquallySortedElements.
-				int insertionIndexInItems = indexInItems;
-				while( insertionIndexInItems < items.length
-						&& internalCompare(comparator, parentPath, element,
-								items[insertionIndexInItems].getData()) == 0) {
-					// As we cannot assume the sorter is consistent with
-					// equals() - therefore we can
-					// just check against the item prior to this index (if
-					// any)
-					if (items[insertionIndexInItems].getData().equals(element)) {
-						// Found the item for the element.
-						// Refresh the element in case it has new children.
-						internalRefresh(element);
-						// Do not create a new item - continue with the next element.
-						continue elementloop;
-					}
-					insertionIndexInItems++;
-				}
-				// Did we get to the end?
-				if (insertionIndexInItems == items.length) {
-					createTreeItem(widget, element, -1);
-					newItems++;
-				} else {
-					// InsertionIndexInItems is the index in the original array. We
-					// need to correct by the number of new items we have
-					// created. See bug 205700.
-					createTreeItem(widget, element, insertionIndexInItems + newItems);
-					newItems++;
-				}
-			}
-		}
-	}
-
-	/**
-	 * See if element is the data of one of the elements in items.
-	 *
-	 * @param items
-	 * @param element
-	 * @return <code>true</code> if the element matches.
-	 */
-	private boolean itemExists(Item[] items, Object element) {
-		if (usingElementMap()) {
-			Widget[] existingItems = findItems(element);
-			// optimization for two common cases
-			if (existingItems.length == 0) {
-				return false;
-			} else if (existingItems.length == 1) {
-				if (items.length > 0 && existingItems[0] instanceof Item) {
-					Item existingItem = (Item) existingItems[0];
-					return getParentItem(existingItem) == getParentItem(items[0]);
-				}
-			}
-		}
-		for (int i = 0; i < items.length; i++) {
-			if (items[i].getData().equals(element)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the index where the item should be inserted. It uses sorter to
-	 * determine the correct position, if sorter is not assigned, returns the
-	 * index of the element after the last.
-	 *
-	 * @param items
-	 *            the items to search
-	 * @param comparator
-	 *            The comparator to use.
-	 * @param lastInsertion
-	 *            the start index to start search for position from this allows
-	 *            optimizing search for multiple elements that are sorted
-	 *            themselves.
-	 * @param element
-	 *            element to find position for.
-	 * @param parentPath
-	 *            the tree path for the element's parent or <code>null</code>
-	 *            if the element is a root element or the sorter is not a
-	 *            {@link TreePathViewerSorter}
-	 * @return the index to use when inserting the element.
-	 *
-	 */
-
-	private int insertionPosition(Item[] items, ViewerComparator comparator,
-			int lastInsertion, Object element, TreePath parentPath) {
-
-		int size = items.length;
-		if (comparator == null) {
-			return size;
-		}
-		int min = lastInsertion, max = size - 1;
-
-		while (min <= max) {
-			int mid = (min + max) / 2;
-			Object data = items[mid].getData();
-			int compare = internalCompare(comparator, parentPath, data, element);
-			if (compare == 0) {
-				return mid;// Return if we already match
-			}
-			if (compare < 0) {
-				min = mid + 1;
-			} else {
-				max = mid - 1;
-			}
-		}
-		return min;
-
-	}
-
-	/**
-	 * Returns the index where the item should be inserted. It uses sorter to
-	 * determine the correct position, if sorter is not assigned, returns the
-	 * index of the element after the last.
-	 *
-	 * @param parent
-	 *            The parent widget
-	 * @param sorter
-	 *            The sorter to use.
-	 * @param startIndex
-	 *            the start index to start search for position from this allows
-	 *            optimizing search for multiple elements that are sorted
-	 *            themselves.
-	 * @param element
-	 *            element to find position for.
-	 * @param currentSize
-	 *            the current size of the collection
-	 * @return the index to use when inserting the element.
-	 *
-	 */
-
-	/**
-	 * Returns the index where the item should be inserted.
-	 *
-	 * @param parent
-	 *            The parent widget the element will be inserted into.
-	 * @param element
-	 *            The element to insert.
-	 * @return the index of the element
-	 */
-	protected int indexForElement(Widget parent, Object element) {
-		ViewerComparator comparator = getComparator();
-		TreePath parentPath = internalGetSorterParentPath(parent, comparator);
-
-		Item[] items = getChildren(parent);
-		int count = items.length;
-
-		if (comparator == null) {
-			return count;
-		}
-		int min = 0, max = count - 1;
-
-		while (min <= max) {
-			int mid = (min + max) / 2;
-			Object data = items[mid].getData();
-			int compare = internalCompare(comparator, parentPath, data, element);
-			if (compare == 0) {
-				// find first item > element
-				while (compare == 0) {
-					++mid;
-					if (mid >= count) {
-						break;
-					}
-					data = items[mid].getData();
-					compare = internalCompare(comparator, parentPath, data,
-							element);
-				}
-				return mid;
-			}
-			if (compare < 0) {
-				min = mid + 1;
-			} else {
-				max = mid - 1;
-			}
-		}
-		return min;
-	}
-
-	/**
-	 * Return the tree path that should be used as the parent path for the given
-	 * widget and sorter. A <code>null</code> is returned if either the sorter
-	 * is not a {@link TreePathViewerSorter} or if the parent widget is not an
-	 * {@link Item} (i.e. is the root of the tree).
-	 *
-	 * @param parent
-	 *            the parent widget
-	 * @param comparator
-	 *            the sorter
-	 * @return the tree path that should be used as the parent path for the
-	 *         given widget and sorter
-	 */
-	private TreePath internalGetSorterParentPath(Widget parent,
-			ViewerComparator comparator) {
-		TreePath path;
-		if (comparator instanceof TreePathViewerSorter
-				&& parent instanceof Item) {
-			Item item = (Item) parent;
-			path = getTreePathFromItem(item);
-		} else {
-			path = null;
-		}
-		return path;
-	}
-
-	/**
-	 * Compare the two elements using the given sorter. If the sorter is a
-	 * {@link TreePathViewerSorter}, the provided tree path will be used. If
-	 * the tree path is null and the sorter is a tree path sorter, then the
-	 * elements are root elements
-	 *
-	 * @param comparator
-	 *            the sorter
-	 * @param parentPath
-	 *            the path of the elements' parent
-	 * @param e1
-	 *            the first element
-	 * @param e2
-	 *            the second element
-	 * @return the result of comparing the two elements
-	 */
-	private int internalCompare(ViewerComparator comparator,
-			TreePath parentPath, Object e1, Object e2) {
-		if (comparator instanceof TreePathViewerSorter) {
-			TreePathViewerSorter tpvs = (TreePathViewerSorter) comparator;
-			return tpvs.compare(this, parentPath, e1, e2);
-		}
-		return comparator.compare(this, e1, e2);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#getSortedChildren(java.lang.Object)
-	 */
-	protected Object[] getSortedChildren(Object parentElementOrTreePath) {
-		Object[] result = getFilteredChildren(parentElementOrTreePath);
-		ViewerComparator comparator = getComparator();
-		if (parentElementOrTreePath != null
-				&& comparator instanceof TreePathViewerSorter) {
-			TreePathViewerSorter tpvs = (TreePathViewerSorter) comparator;
-
-			// be sure we're not modifying the original array from the model
-			result = (Object[]) result.clone();
-
-			TreePath path = null;
-			if (parentElementOrTreePath instanceof TreePath) {
-				path = (TreePath) parentElementOrTreePath;
-			} else {
-				Object parent = parentElementOrTreePath;
-				Widget w = internalGetWidgetToSelect(parent);
-				if (w != null) {
-					path = internalGetSorterParentPath(w, comparator);
-				}
-			}
-			tpvs.sort(this, path, result);
-		} else if (comparator != null) {
-			// be sure we're not modifying the original array from the model
-			result = (Object[]) result.clone();
-			comparator.sort(this, result);
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#getFilteredChildren(java.lang.Object)
-	 */
-	protected Object[] getFilteredChildren(Object parentElementOrTreePath) {
-		Object[] result = getRawChildren(parentElementOrTreePath);
-		ViewerFilter[] filters = getFilters();
-		for (int i = 0; i < filters.length; i++) {
-			ViewerFilter filter = filters[i];
-			result = filter.filter(this, parentElementOrTreePath, result);
-		}
-		return result;
-	}
-
-	/**
-	 * Adds the given child element to this viewer as a child of the given
-	 * parent element. If this viewer does not have a sorter, the element is
-	 * added at the end of the parent's list of children; otherwise, the element
-	 * is inserted at the appropriate position.
-	 * <p>
-	 * This method should be called (by the content provider) when a single
-	 * element has been added to the model, in order to cause the viewer to
-	 * accurately reflect the model. This method only affects the viewer, not
-	 * the model. Note that there is another method for efficiently processing
-	 * the simultaneous addition of multiple elements.
-	 * </p>
-	 *
-	 * @param parentElementOrTreePath
-	 *            the parent element or path
-	 * @param childElement
-	 *            the child element
-	 */
-	public void add(Object parentElementOrTreePath, Object childElement) {
-		add(parentElementOrTreePath, new Object[] { childElement });
-	}
-
-	/**
-	 * Adds the given SWT selection listener to the given SWT control.
-	 *
-	 * @param control
-	 *            the SWT control
-	 * @param listener
-	 *            the SWT selection listener
-	 * @deprecated
-	 */
-	protected void addSelectionListener(Control control,
-			SelectionListener listener) {
-		// do nothing
-	}
-
-	/**
-	 * Adds a listener for expand and collapse events in this viewer. Has no
-	 * effect if an identical listener is already registered.
-	 *
-	 * @param listener
-	 *            a tree viewer listener
-	 */
-	public void addTreeListener(ITreeViewerListener listener) {
-		treeListeners.add(listener);
-	}
-
-	/**
-	 * Adds the given SWT tree listener to the given SWT control.
-	 *
-	 * @param control
-	 *            the SWT control
-	 * @param listener
-	 *            the SWT tree listener
-	 */
-	protected abstract void addTreeListener(Control control,
-			TreeListener listener);
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see StructuredViewer#associate(Object, Item)
-	 */
-	protected void associate(Object element, Item item) {
-		Object data = item.getData();
-		if (data != null && data != element && equals(data, element)) {
-			// workaround for PR 1FV62BT
-			// assumption: elements are equal but not identical
-			// -> remove from map but don't touch children
-			unmapElement(data, item);
-			item.setData(element);
-			mapElement(element, item);
-		} else {
-			// recursively disassociate all
-			super.associate(element, item);
-		}
-	}
-
-	/**
-	 * Collapses all nodes of the viewer's tree, starting with the root. This
-	 * method is equivalent to <code>collapseToLevel(ALL_LEVELS)</code>.
-	 */
-	public void collapseAll() {
-		Object root = getRoot();
-		if (root != null) {
-			collapseToLevel(root, ALL_LEVELS);
-		}
-	}
-
-	/**
-	 * Collapses the subtree rooted at the given element or tree path to the
-	 * given level.
-	 *
-	 * @param elementOrTreePath
-	 *            the element or tree path
-	 * @param level
-	 *            non-negative level, or <code>ALL_LEVELS</code> to collapse
-	 *            all levels of the tree
-	 */
-	public void collapseToLevel(Object elementOrTreePath, int level) {
-		Assert.isNotNull(elementOrTreePath);
-		Widget w = internalGetWidgetToSelect(elementOrTreePath);
-		if (w != null) {
-			internalCollapseToLevel(w, level);
-		}
-	}
-
-	/**
-	 * Creates all children for the given widget.
-	 * <p>
-	 * The default implementation of this framework method assumes that
-	 * <code>widget.getData()</code> returns the element corresponding to the
-	 * node. Note: the node is not visually expanded! You may have to call
-	 * <code>parent.setExpanded(true)</code>.
-	 * </p>
-	 *
-	 * @param widget
-	 *            the widget
-	 */
-	protected void createChildren(final Widget widget) {
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			final Item[] tis = getChildren(widget);
-			if (tis != null && tis.length > 0) {
-				Object data = tis[0].getData();
-				if (data != null) {
-					return; // children already there!
-				}
-			}
-
-			BusyIndicator.showWhile(widget.getDisplay(), new Runnable() {
-				public void run() {
-					// fix for PR 1FW89L7:
-					// don't complain and remove all "dummies" ...
-					if (tis != null) {
-						for (int i = 0; i < tis.length; i++) {
-							if (tis[i].getData() != null) {
-								disassociate(tis[i]);
-								Assert.isTrue(tis[i].getData() == null,
-										"Second or later child is non -null");//$NON-NLS-1$
-
-							}
-							tis[i].dispose();
-						}
-					}
-					Object d = widget.getData();
-					if (d != null) {
-						Object parentElement = d;
-						Object[] children;
-						if (isTreePathContentProvider() && widget instanceof Item) {
-							TreePath path = getTreePathFromItem((Item) widget);
-							children = getSortedChildren(path);
-						} else {
-							children = getSortedChildren(parentElement);
-						}
-						for (int i = 0; i < children.length; i++) {
-							createTreeItem(widget, children[i], -1);
-						}
-					}
-				}
-
-			});
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/**
-	 * Creates a single item for the given parent and synchronizes it with the
-	 * given element.
-	 *
-	 * @param parent
-	 *            the parent widget
-	 * @param element
-	 *            the element
-	 * @param index
-	 *            if non-negative, indicates the position to insert the item
-	 *            into its parent
-	 */
-	protected void createTreeItem(Widget parent, Object element, int index) {
-		Item item = newItem(parent, SWT.NULL, index);
-		updateItem(item, element);
-		updatePlus(item, element);
-	}
-
-	/**
-	 * The <code>AbstractTreeViewer</code> implementation of this method also
-	 * recurses over children of the corresponding element.
-	 */
-	protected void disassociate(Item item) {
-		super.disassociate(item);
-		// recursively unmapping the items is only required when
-		// the hash map is used. In the other case disposing
-		// an item will recursively dispose its children.
-		if (usingElementMap()) {
-			disassociateChildren(item);
-		}
-	}
-
-	/**
-	 * Disassociates the children of the given SWT item from their corresponding
-	 * elements.
-	 *
-	 * @param item
-	 *            the widget
-	 */
-	private void disassociateChildren(Item item) {
-		Item[] items = getChildren(item);
-		for (int i = 0; i < items.length; i++) {
-			if (items[i].getData() != null) {
-				disassociate(items[i]);
-			}
-		}
-	}
-
-	/* (non-Javadoc) Method declared on StructuredViewer. */
-	protected Widget doFindInputItem(Object element) {
-		// compare with root
-		Object root = getRoot();
-		if (root == null) {
-			return null;
-		}
-
-		if (equals(root, element)) {
-			return getControl();
-		}
-		return null;
-	}
-
-	/* (non-Javadoc) Method declared on StructuredViewer. */
-	protected Widget doFindItem(Object element) {
-		// compare with root
-		Object root = getRoot();
-		if (root == null) {
-			return null;
-		}
-
-		Item[] items = getChildren(getControl());
-		if (items != null) {
-			for (int i = 0; i < items.length; i++) {
-				Widget o = internalFindItem(items[i], element);
-				if (o != null) {
-					return o;
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Copies the attributes of the given element into the given SWT item.
-	 *
-	 * @param item
-	 *            the SWT item
-	 * @param element
-	 *            the element
-	 */
-	protected void doUpdateItem(final Item item, Object element) {
-		if (item.isDisposed()) {
-			unmapElement(element, item);
-			return;
-		}
-
-		int columnCount = doGetColumnCount();
-		if (columnCount == 0)// If no columns are created then fake one
-			columnCount = 1;
-
-		ViewerRow viewerRowFromItem = getViewerRowFromItem(item);
-
-		boolean isVirtual = (getControl().getStyle() & SWT.VIRTUAL) != 0;
-
-		// If the control is virtual, we cannot use the cached viewer row object. See bug 188663.
-		if (isVirtual) {
-			viewerRowFromItem = (ViewerRow) viewerRowFromItem.clone();
-		}
-
-		for (int column = 0; column < columnCount; column++) {
-			ViewerColumn columnViewer = getViewerColumn(column);
-			ViewerCell cellToUpdate = updateCell(viewerRowFromItem, column,
-					element);
-
-			// If the control is virtual, we cannot use the cached cell object. See bug 188663.
-			if (isVirtual) {
-				cellToUpdate = new ViewerCell(cellToUpdate.getViewerRow(), cellToUpdate.getColumnIndex(), element);
-			}
-
-			columnViewer.refresh(cellToUpdate);
-
-			// clear cell (see bug 201280)
-			updateCell(null, 0, null);
-
-			// As it is possible for user code to run the event
-			// loop check here.
-			if (item.isDisposed()) {
-				unmapElement(element, item);
-				return;
-			}
-
-		}
-	}
-
-	/**
-	 * Returns <code>true</code> if the given list and array of items refer to
-	 * the same model elements. Order is unimportant.
-	 * <p>
-	 * This method is not intended to be overridden by subclasses.
-	 * </p>
-	 *
-	 * @param items
-	 *            the list of items
-	 * @param current
-	 *            the array of items
-	 * @return <code>true</code> if the refer to the same elements,
-	 *         <code>false</code> otherwise
-	 *
-	 * @since 3.1 in TreeViewer, moved to AbstractTreeViewer in 3.3
-	 */
-	protected boolean isSameSelection(List items, Item[] current) {
-		// If they are not the same size then they are not equivalent
-		int n = items.size();
-		if (n != current.length) {
-			return false;
-		}
-
-		CustomHashtable itemSet = newHashtable(n * 2 + 1);
-		for (Iterator i = items.iterator(); i.hasNext();) {
-			Item item = (Item) i.next();
-			Object element = item.getData();
-			itemSet.put(element, element);
-		}
-
-		// Go through the items of the current collection
-		// If there is a mismatch return false
-		for (int i = 0; i < current.length; i++) {
-			if (current[i].getData() == null
-					|| !itemSet.containsKey(current[i].getData())) {
-				return false;
-			}
-		}
-
-		return true;
-	}
-
-
-
-	/* (non-Javadoc) Method declared on StructuredViewer. */
-	protected void doUpdateItem(Widget widget, Object element, boolean fullMap) {
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			if (widget instanceof Item) {
-				Item item = (Item) widget;
-
-				// ensure that back pointer is correct
-				if (fullMap) {
-					associate(element, item);
-				} else {
-					Object data = item.getData();
-					if (data != null) {
-						unmapElement(data, item);
-					}
-					item.setData(element);
-					mapElement(element, item);
-				}
-
-				// update icon and label
-				SafeRunnable.run(new UpdateItemSafeRunnable(item, element));
-			}
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/**
-	 * Expands all nodes of the viewer's tree, starting with the root. This
-	 * method is equivalent to <code>expandToLevel(ALL_LEVELS)</code>.
-	 */
-	public void expandAll() {
-		expandToLevel(ALL_LEVELS);
-	}
-
-	/**
-	 * Expands the root of the viewer's tree to the given level.
-	 *
-	 * @param level
-	 *            non-negative level, or <code>ALL_LEVELS</code> to expand all
-	 *            levels of the tree
-	 */
-	public void expandToLevel(int level) {
-		expandToLevel(getRoot(), level);
-	}
-
-	/**
-	 * Expands all ancestors of the given element or tree path so that the given
-	 * element becomes visible in this viewer's tree control, and then expands
-	 * the subtree rooted at the given element to the given level.
-	 *
-	 * @param elementOrTreePath
-	 *            the element
-	 * @param level
-	 *            non-negative level, or <code>ALL_LEVELS</code> to expand all
-	 *            levels of the tree
-	 */
-	public void expandToLevel(Object elementOrTreePath, int level) {
-		if (checkBusy())
-			return;
-		Widget w = internalExpand(elementOrTreePath, true);
-		if (w != null) {
-			internalExpandToLevel(w, level);
-		}
-	}
-
-	/**
-	 * Fires a tree collapsed event. Only listeners registered at the time this
-	 * method is called are notified.
-	 *
-	 * @param event
-	 *            the tree expansion event
-	 * @see ITreeViewerListener#treeCollapsed
-	 */
-	protected void fireTreeCollapsed(final TreeExpansionEvent event) {
-		Object[] listeners = treeListeners.getListeners();
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			for (int i = 0; i < listeners.length; ++i) {
-				final ITreeViewerListener l = (ITreeViewerListener) listeners[i];
-				SafeRunnable.run(new SafeRunnable() {
-					public void run() {
-						l.treeCollapsed(event);
-					}
-				});
-			}
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/**
-	 * Fires a tree expanded event. Only listeners registered at the time this
-	 * method is called are notified.
-	 *
-	 * @param event
-	 *            the tree expansion event
-	 * @see ITreeViewerListener#treeExpanded
-	 */
-	protected void fireTreeExpanded(final TreeExpansionEvent event) {
-		Object[] listeners = treeListeners.getListeners();
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			for (int i = 0; i < listeners.length; ++i) {
-				final ITreeViewerListener l = (ITreeViewerListener) listeners[i];
-				SafeRunnable.run(new SafeRunnable() {
-					public void run() {
-						l.treeExpanded(event);
-					}
-				});
-			}
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/**
-	 * Returns the auto-expand level.
-	 *
-	 * @return non-negative level, or <code>ALL_LEVELS</code> if all levels of
-	 *         the tree are expanded automatically
-	 * @see #setAutoExpandLevel
-	 */
-	public int getAutoExpandLevel() {
-		return expandToLevel;
-	}
-
-	/**
-	 * Returns the SWT child items for the given SWT widget.
-	 *
-	 * @param widget
-	 *            the widget
-	 * @return the child items
-	 */
-	protected abstract Item[] getChildren(Widget widget);
-
-	/**
-	 * Get the child for the widget at index. Note that the default
-	 * implementation is not very efficient and should be overridden if this
-	 * class is implemented.
-	 *
-	 * @param widget
-	 *            the widget to check
-	 * @param index
-	 *            the index of the widget
-	 * @return Item or <code>null</code> if widget is not a type that can
-	 *         contain items.
-	 *
-	 * @throws ArrayIndexOutOfBoundsException
-	 *             if the index is not valid.
-	 * @since 3.1
-	 */
-	protected Item getChild(Widget widget, int index) {
-		return getChildren(widget)[index];
-	}
-
-	/**
-	 * Returns whether the given SWT item is expanded or collapsed.
-	 *
-	 * @param item
-	 *            the item
-	 * @return <code>true</code> if the item is considered expanded and
-	 *         <code>false</code> if collapsed
-	 */
-	protected abstract boolean getExpanded(Item item);
-
-	/**
-	 * Returns a list of elements corresponding to expanded nodes in this
-	 * viewer's tree, including currently hidden ones that are marked as
-	 * expanded but are under a collapsed ancestor.
-	 * <p>
-	 * This method is typically used when preserving the interesting state of a
-	 * viewer; <code>setExpandedElements</code> is used during the restore.
-	 * </p>
-	 *
-	 * @return the array of expanded elements
-	 * @see #setExpandedElements
-	 */
-	public Object[] getExpandedElements() {
-		ArrayList items = new ArrayList();
-		internalCollectExpandedItems(items, getControl());
-		ArrayList result = new ArrayList(items.size());
-		for (Iterator it = items.iterator(); it.hasNext();) {
-			Item item = (Item) it.next();
-			Object data = item.getData();
-			if (data != null) {
-				result.add(data);
-			}
-		}
-		return result.toArray();
-	}
-
-	/**
-	 * Returns whether the node corresponding to the given element or tree path
-	 * is expanded or collapsed.
-	 *
-	 * @param elementOrTreePath
-	 *            the element
-	 * @return <code>true</code> if the node is expanded, and
-	 *         <code>false</code> if collapsed
-	 */
-	public boolean getExpandedState(Object elementOrTreePath) {
-		Assert.isNotNull(elementOrTreePath);
-		Widget item = internalGetWidgetToSelect(elementOrTreePath);
-		if (item instanceof Item) {
-			return getExpanded((Item) item);
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the number of child items of the given SWT control.
-	 *
-	 * @param control
-	 *            the control
-	 * @return the number of children
-	 */
-	protected abstract int getItemCount(Control control);
-
-	/**
-	 * Returns the number of child items of the given SWT item.
-	 *
-	 * @param item
-	 *            the item
-	 * @return the number of children
-	 */
-	protected abstract int getItemCount(Item item);
-
-	/**
-	 * Returns the child items of the given SWT item.
-	 *
-	 * @param item
-	 *            the item
-	 * @return the child items
-	 */
-	protected abstract Item[] getItems(Item item);
-
-	/**
-	 * Returns the item after the given item in the tree, or <code>null</code>
-	 * if there is no next item.
-	 *
-	 * @param item
-	 *            the item
-	 * @param includeChildren
-	 *            <code>true</code> if the children are considered in
-	 *            determining which item is next, and <code>false</code> if
-	 *            subtrees are ignored
-	 * @return the next item, or <code>null</code> if none
-	 */
-	protected Item getNextItem(Item item, boolean includeChildren) {
-		if (item == null) {
-			return null;
-		}
-		if (includeChildren && getExpanded(item)) {
-			Item[] children = getItems(item);
-			if (children != null && children.length > 0) {
-				return children[0];
-			}
-		}
-
-		// next item is either next sibling or next sibling of first
-		// parent that has a next sibling.
-		Item parent = getParentItem(item);
-		if (parent == null) {
-			return null;
-		}
-		Item[] siblings = getItems(parent);
-		if (siblings != null) {
-			if (siblings.length <= 1) {
-				return getNextItem(parent, false);
-			}
-
-			for (int i = 0; i < siblings.length; i++) {
-				if (siblings[i] == item && i < (siblings.length - 1)) {
-					return siblings[i + 1];
-				}
-			}
-		}
-		return getNextItem(parent, false);
-	}
-
-	/**
-	 * Returns the parent item of the given item in the tree, or
-	 * <code>null</code> if there is no parent item.
-	 *
-	 * @param item
-	 *            the item
-	 * @return the parent item, or <code>null</code> if none
-	 */
-	protected abstract Item getParentItem(Item item);
-
-	/**
-	 * Returns the item before the given item in the tree, or <code>null</code>
-	 * if there is no previous item.
-	 *
-	 * @param item
-	 *            the item
-	 * @return the previous item, or <code>null</code> if none
-	 */
-	protected Item getPreviousItem(Item item) {
-		// previous item is either right-most visible descendent of previous
-		// sibling or parent
-		Item parent = getParentItem(item);
-		if (parent == null) {
-			return null;
-		}
-		Item[] siblings = getItems(parent);
-		if (siblings.length == 0 || siblings[0] == item) {
-			return parent;
-		}
-		Item previous = siblings[0];
-		for (int i = 1; i < siblings.length; i++) {
-			if (siblings[i] == item) {
-				return rightMostVisibleDescendent(previous);
-			}
-			previous = siblings[i];
-		}
-		return null;
-	}
-
-	/* (non-Javadoc) Method declared on StructuredViewer. */
-	protected Object[] getRawChildren(Object parentElementOrTreePath) {
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			Object parent;
-			TreePath path;
-			if (parentElementOrTreePath instanceof TreePath) {
-				path = (TreePath) parentElementOrTreePath;
-				parent = path.getLastSegment();
-			} else {
-				parent = parentElementOrTreePath;
-				path = null;
-			}
-			if (parent != null) {
-				if (equals(parent, getRoot())) {
-					return super.getRawChildren(parent);
-				}
-				IContentProvider cp = getContentProvider();
-				if (cp instanceof ITreePathContentProvider) {
-					ITreePathContentProvider tpcp = (ITreePathContentProvider) cp;
-					if (path == null) {
-						// A path was not provided so try and find one
-						Widget w = findItem(parent);
-						if (w instanceof Item) {
-							Item item = (Item) w;
-							path = getTreePathFromItem(item);
-						}
-						if (path == null) {
-							path = new TreePath(new Object[] { parent });
-						}
-					}
-					Object[] result = tpcp.getChildren(path);
-					if (result != null) {
-						return result;
-					}
-				} else if (cp instanceof ITreeContentProvider) {
-					ITreeContentProvider tcp = (ITreeContentProvider) cp;
-					Object[] result = tcp.getChildren(parent);
-					if (result != null) {
-						return result;
-					}
-				}
-			}
-			return new Object[0];
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/**
-	 * Returns all selected items for the given SWT control.
-	 *
-	 * @param control
-	 *            the control
-	 * @return the list of selected items
-	 */
-	protected abstract Item[] getSelection(Control control);
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#getSelectionFromWidget()
-	 */
-	protected List getSelectionFromWidget() {
-		Widget[] items = getSelection(getControl());
-		ArrayList list = new ArrayList(items.length);
-		for (int i = 0; i < items.length; i++) {
-			Widget item = items[i];
-			Object e = item.getData();
-			if (e != null) {
-				list.add(e);
-			}
-		}
-		return list;
-	}
-
-	/*
-	 * Overridden in AbstractTreeViewer to fix bug 108102 (code copied from
-	 * StructuredViewer to avoid introducing new API) (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#handleDoubleSelect(org.eclipse.swt.events.SelectionEvent)
-	 */
-	protected void handleDoubleSelect(SelectionEvent event) {
-		// handle case where an earlier selection listener disposed the control.
-		Control control = getControl();
-		if (control != null && !control.isDisposed()) {
-			// If the double-clicked element can be obtained from the event, use
-			// it
-			// otherwise get it from the control. Some controls like List do
-			// not have the notion of item.
-			// For details, see bug 90161 [Navigator] DefaultSelecting folders
-			// shouldn't always expand first one
-			ISelection selection;
-			if (event.item != null && event.item.getData() != null) {
-
-				// changes to fix bug 108102 follow
-				TreePath treePath = getTreePathFromItem((Item) event.item);
-				selection = new TreeSelection(treePath);
-				// end of changes
-
-			} else {
-				selection = getSelection();
-				updateSelection(selection);
-			}
-			fireDoubleClick(new DoubleClickEvent(this, selection));
-		}
-	}
-
-	/**
-	 * Handles a tree collapse event from the SWT widget.
-	 *
-	 * @param event
-	 *            the SWT tree event
-	 */
-	protected void handleTreeCollapse(TreeEvent event) {
-		if (event.item.getData() != null) {
-			fireTreeCollapsed(new TreeExpansionEvent(this, event.item.getData()));
-		}
-	}
-
-	/**
-	 * Handles a tree expand event from the SWT widget.
-	 *
-	 * @param event
-	 *            the SWT tree event
-	 */
-	protected void handleTreeExpand(TreeEvent event) {
-		createChildren(event.item);
-		if (event.item.getData() != null) {
-			fireTreeExpanded(new TreeExpansionEvent(this, event.item.getData()));
-		}
-	}
-
-	/* (non-Javadoc) Method declared on Viewer. */
-	protected void hookControl(Control control) {
-		super.hookControl(control);
-		addTreeListener(control, new TreeListener() {
-			public void treeExpanded(TreeEvent event) {
-				handleTreeExpand(event);
-			}
-
-			public void treeCollapsed(TreeEvent event) {
-				handleTreeCollapse(event);
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on StructuredViewer. Builds the initial
-	 * tree and handles the automatic expand feature.
-	 */
-	protected void inputChanged(Object input, Object oldInput) {
-		preservingSelection(new Runnable() {
-			public void run() {
-	            Control tree = getControl();
-	            tree.setRedraw(false);
-	            try {
-	                removeAll(tree);
-	                tree.setData(getRoot());
-	                internalInitializeTree(tree);
-	            } finally {
-	                tree.setRedraw(true);
-	            }
-			}
-		});
-	}
-
-	/**
-	 * Initializes the tree with root items, expanding to the appropriate
-	 * level if necessary.
-	 *
-	 * @param tree the tree control
-	 * @since 3.3
-	 */
-	protected void internalInitializeTree(Control tree) {
-		createChildren(tree);
-		internalExpandToLevel(tree, expandToLevel);
-	}
-
-	/**
-	 * Recursively collapses the subtree rooted at the given widget to the given
-	 * level.
-	 * <p>
-	 * </p>
-	 * Note that the default implementation of this method does not call
-	 * <code>setRedraw</code>.
-	 *
-	 * @param widget
-	 *            the widget
-	 * @param level
-	 *            non-negative level, or <code>ALL_LEVELS</code> to collapse
-	 *            all levels of the tree
-	 */
-	protected void internalCollapseToLevel(Widget widget, int level) {
-		if (level == ALL_LEVELS || level > 0) {
-
-			if (widget instanceof Item) {
-				Item item = (Item) widget;
-				setExpanded(item, false);
-				Object element = item.getData();
-				if (element != null && level == ALL_LEVELS) {
-					if (optionallyPruneChildren(item, element)) {
-						return;
-					}
-				}
-			}
-
-			if (level == ALL_LEVELS || level > 1) {
-				Item[] children = getChildren(widget);
-				if (children != null) {
-					int nextLevel = (level == ALL_LEVELS ? ALL_LEVELS
-							: level - 1);
-					for (int i = 0; i < children.length; i++) {
-						internalCollapseToLevel(children[i], nextLevel);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Recursively collects all expanded items from the given widget.
-	 *
-	 * @param result
-	 *            a list (element type: <code>Item</code>) into which to
-	 *            collect the elements
-	 * @param widget
-	 *            the widget
-	 */
-	private void internalCollectExpandedItems(List result, Widget widget) {
-		Item[] items = getChildren(widget);
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			if (getExpanded(item)) {
-				result.add(item);
-			}
-			internalCollectExpandedItems(result, item);
-		}
-	}
-
-	/**
-	 * Tries to create a path of tree items for the given element or tree path.
-	 * This method recursively walks up towards the root of the tree and in the
-	 * case of an element (rather than a tree path) assumes that
-	 * <code>getParent</code> returns the correct parent of an element.
-	 *
-	 * @param elementOrPath
-	 *            the element
-	 * @param expand
-	 *            <code>true</code> if all nodes on the path should be
-	 *            expanded, and <code>false</code> otherwise
-	 * @return Widget
-	 */
-	protected Widget internalExpand(Object elementOrPath, boolean expand) {
-
-		if (elementOrPath == null) {
-			return null;
-		}
-
-		Widget w = internalGetWidgetToSelect(elementOrPath);
-		if (w == null) {
-			if (equals(elementOrPath, getRoot())) { // stop at root
-				return null;
-			}
-			// my parent has to create me
-			Object parent = getParentElement(elementOrPath);
-			if (parent != null) {
-				Widget pw = internalExpand(parent, false);
-				if (pw != null) {
-					// let my parent create me
-					createChildren(pw);
-					Object element = internalToElement(elementOrPath);
-					w = internalFindChild(pw, element);
-					if (expand && pw instanceof Item) {
-						// expand parent items top-down
-						Item item = (Item) pw;
-						LinkedList toExpandList = new LinkedList();
-						while (item != null && !getExpanded(item)) {
-							toExpandList.addFirst(item);
-							item = getParentItem(item);
-						}
-						for (Iterator it = toExpandList.iterator(); it
-								.hasNext();) {
-							Item toExpand = (Item) it.next();
-							setExpanded(toExpand, true);
-						}
-					}
-				}
-			}
-		}
-		return w;
-	}
-
-	/**
-	 * If the argument is a tree path, returns its last segment, otherwise
-	 * return the argument
-	 *
-	 * @param elementOrPath
-	 *            an element or a tree path
-	 * @return the element, or the last segment of the tree path
-	 */
-	private Object internalToElement(Object elementOrPath) {
-		if (elementOrPath instanceof TreePath) {
-			return ((TreePath) elementOrPath).getLastSegment();
-		}
-		return elementOrPath;
-	}
-
-	/**
-	 * This method takes a tree path or an element. If the argument is not a
-	 * tree path, returns the parent of the given element or <code>null</code>
-	 * if the parent is not known. If the argument is a tree path with more than
-	 * one segment, returns its parent tree path, otherwise returns
-	 * <code>null</code>.
-	 *
-	 * @param elementOrTreePath
-	 * @return the parent element, or parent path, or <code>null</code>
-	 *
-	 * @since 3.2
-	 */
-	protected Object getParentElement(Object elementOrTreePath) {
-		if (elementOrTreePath instanceof TreePath) {
-			TreePath treePath = (TreePath) elementOrTreePath;
-			return (treePath).getParentPath();
-		}
-		IContentProvider cp = getContentProvider();
-		if (cp instanceof ITreePathContentProvider) {
-			ITreePathContentProvider tpcp = (ITreePathContentProvider) cp;
-			TreePath[] paths = tpcp.getParents(elementOrTreePath);
-			if (paths.length > 0) {
-				if (paths[0].getSegmentCount() == 0) {
-					return getRoot();
-				}
-				return paths[0].getLastSegment();
-			}
-		}
-		if (cp instanceof ITreeContentProvider) {
-			ITreeContentProvider tcp = (ITreeContentProvider) cp;
-			return tcp.getParent(elementOrTreePath);
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the widget to be selected for the given element or tree path.
-	 *
-	 * @param elementOrTreePath
-	 *            the element or tree path to select
-	 * @return the widget to be selected, or <code>null</code> if not found
-	 *
-	 * @since 3.1
-	 */
-	protected Widget internalGetWidgetToSelect(Object elementOrTreePath) {
-		if (elementOrTreePath instanceof TreePath) {
-			TreePath treePath = (TreePath) elementOrTreePath;
-			if (treePath.getSegmentCount() == 0) {
-				return getControl();
-			}
-			Widget[] candidates = findItems(treePath.getLastSegment());
-			for (int i = 0; i < candidates.length; i++) {
-				Widget candidate = candidates[i];
-				if (!(candidate instanceof Item)) {
-					continue;
-				}
-				if (treePath.equals(getTreePathFromItem((Item) candidate),
-						getComparer())) {
-					return candidate;
-				}
-			}
-			return null;
-		}
-		return findItem(elementOrTreePath);
-	}
-
-	/**
-	 * Recursively expands the subtree rooted at the given widget to the given
-	 * level.
-	 * <p>
-	 * </p>
-	 * Note that the default implementation of this method does not call
-	 * <code>setRedraw</code>.
-	 *
-	 * @param widget
-	 *            the widget
-	 * @param level
-	 *            non-negative level, or <code>ALL_LEVELS</code> to collapse
-	 *            all levels of the tree
-	 */
-	protected void internalExpandToLevel(Widget widget, int level) {
-		if (level == ALL_LEVELS || level > 0) {
-			if (widget instanceof Item && widget.getData() != null
-					&& !isExpandable((Item) widget, null, widget.getData())) {
-				return;
-			}
-			createChildren(widget);
-			if (widget instanceof Item) {
-				setExpanded((Item) widget, true);
-			}
-			if (level == ALL_LEVELS || level > 1) {
-				Item[] children = getChildren(widget);
-				if (children != null) {
-					int newLevel = (level == ALL_LEVELS ? ALL_LEVELS
-							: level - 1);
-					for (int i = 0; i < children.length; i++) {
-						internalExpandToLevel(children[i], newLevel);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Non-recursively tries to find the given element as a child of the given
-	 * parent (item or tree).
-	 *
-	 * @param parent
-	 *            the parent item
-	 * @param element
-	 *            the element
-	 * @return Widget
-	 */
-	private Widget internalFindChild(Widget parent, Object element) {
-		Item[] items = getChildren(parent);
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			Object data = item.getData();
-			if (data != null && equals(data, element)) {
-				return item;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Recursively tries to find the given element.
-	 *
-	 * @param parent
-	 *            the parent item
-	 * @param element
-	 *            the element
-	 * @return Widget
-	 */
-	private Widget internalFindItem(Item parent, Object element) {
-
-		// compare with node
-		Object data = parent.getData();
-		if (data != null) {
-			if (equals(data, element)) {
-				return parent;
-			}
-		}
-		// recurse over children
-		Item[] items = getChildren(parent);
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			Widget o = internalFindItem(item, element);
-			if (o != null) {
-				return o;
-			}
-		}
-		return null;
-	}
-
-	/* (non-Javadoc) Method declared on StructuredViewer. */
-	protected void internalRefresh(Object element) {
-		internalRefresh(element, true);
-	}
-
-	/* (non-Javadoc) Method declared on StructuredViewer. */
-	protected void internalRefresh(Object element, boolean updateLabels) {
-		// If element is null, do a full refresh.
-		if (element == null) {
-			internalRefresh(getControl(), getRoot(), true, updateLabels);
-			return;
-		}
-		Widget[] items = findItems(element);
-		if (items.length != 0) {
-			for (int i = 0; i < items.length; i++) {
-				// pick up structure changes too
-				internalRefresh(items[i], element, true, updateLabels);
-			}
-		}
-	}
-
-	/**
-	 * Refreshes the tree starting at the given widget.
-	 * <p>
-	 * EXPERIMENTAL. Not to be used except by JDT. This method was added to
-	 * support JDT's explorations into grouping by working sets, which requires
-	 * viewers to support multiple equal elements. See bug 76482 for more
-	 * details. This support will likely be removed in Eclipse 3.2 in favor of
-	 * proper support for multiple equal elements.
-	 * </p>
-	 *
-	 * @param widget
-	 *            the widget
-	 * @param element
-	 *            the element
-	 * @param doStruct
-	 *            <code>true</code> if structural changes are to be picked up,
-	 *            and <code>false</code> if only label provider changes are of
-	 *            interest
-	 * @param updateLabels
-	 *            <code>true</code> to update labels for existing elements,
-	 *            <code>false</code> to only update labels as needed, assuming
-	 *            that labels for existing elements are unchanged.
-	 * @since 3.1
-	 */
-	protected void internalRefresh(Widget widget, Object element,
-			boolean doStruct, boolean updateLabels) {
-
-		if (widget instanceof Item) {
-			if (doStruct) {
-				updatePlus((Item) widget, element);
-			}
-			if (updateLabels || !equals(element, widget.getData())) {
-				doUpdateItem(widget, element, true);
-			} else {
-				associate(element, (Item) widget);
-			}
-		}
-
-		if (doStruct) {
-			internalRefreshStruct(widget, element, updateLabels);
-		} else {
-			Item[] children = getChildren(widget);
-			if (children != null) {
-				for (int i = 0; i < children.length; i++) {
-					Widget item = children[i];
-					Object data = item.getData();
-					if (data != null) {
-						internalRefresh(item, data, doStruct, updateLabels);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Update the structure and recurse. Items are updated in updateChildren, as
-	 * needed.
-	 *
-	 * @param widget
-	 * @param element
-	 * @param updateLabels
-	 */
-	/* package */void internalRefreshStruct(Widget widget, Object element,
-			boolean updateLabels) {
-		updateChildren(widget, element, null, updateLabels);
-		Item[] children = getChildren(widget);
-		if (children != null) {
-			for (int i = 0; i < children.length; i++) {
-				Widget item = children[i];
-				Object data = item.getData();
-				if (data != null) {
-					internalRefreshStruct(item, data, updateLabels);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Removes the given elements from this viewer.
-	 * <p>
-	 * EXPERIMENTAL. Not to be used except by JDT. This method was added to
-	 * support JDT's explorations into grouping by working sets, which requires
-	 * viewers to support multiple equal elements. See bug 76482 for more
-	 * details. This support will likely be removed in Eclipse 3.2 in favor of
-	 * proper support for multiple equal elements.
-	 * </p>
-	 *
-	 * @param elementsOrPaths
-	 *            the elements or element paths to remove
-	 * @since 3.1
-	 */
-	protected void internalRemove(Object[] elementsOrPaths) {
-		Object input = getInput();
-		for (int i = 0; i < elementsOrPaths.length; ++i) {
-			Object element = elementsOrPaths[i];
-			if (equals(element, input)) {
-				setInput(null);
-				return;
-			}
-			Widget[] childItems = internalFindItems(element);
-			if (childItems.length > 0) {
-				for (int j = 0; j < childItems.length; j++) {
-					Widget childItem = childItems[j];
-					if (childItem instanceof Item) {
-						disassociate((Item) childItem);
-						childItem.dispose();
-					}
-				}
-			} else {
-				// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=210747
-				Object parent = getParentElement(element);
-				if (parent != null
-						&& !equals(parent, getRoot())
-						&& !(parent instanceof TreePath && ((TreePath) parent)
-								.getSegmentCount() == 0)) {
-					Widget[] parentItems = internalFindItems(parent);
-					for (int j = 0; j < parentItems.length; j++) {
-						Widget parentItem = parentItems[j];
-						if (parentItem instanceof Item) {
-							updatePlus((Item) parentItem, parent);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Removes the given elements from this viewer, whenever those elements
-	 * appear as children of the given parent.
-	 *
-	 * @param parent the parent element
-	 * @param elements
-	 *            the elements to remove
-	 * @since 3.1
-	 */
-	protected void internalRemove(Object parent, Object[] elements) {
-
-		CustomHashtable toRemove = new CustomHashtable(getComparer());
-		for (int i = 0; i < elements.length; i++) {
-			toRemove.put(elements[i], elements[i]);
-		}
-
-		// Find each place the parent appears in the tree
-		Widget[] parentItemArray = findItems(parent);
-		for (int i = 0; i < parentItemArray.length; i++) {
-			Widget parentItem = parentItemArray[i];
-
-			// May happen if parent element is a descendent of of a previously
-			// removed element
-			if (parentItem.isDisposed())
-				continue;
-
-			// Iterate over the child items and remove each one
-			Item[] children = getChildren(parentItem);
-
-			if (children.length == 1 && children[0].getData() == null &&
-					parentItem instanceof Item) { // dummy node
-				// Remove plus if parent element has no children
-				updatePlus((Item) parentItem, parent);
-			} else {
-				for (int j = 0; j < children.length; j++) {
-					Item child = children[j];
-
-					Object data = child.getData();
-					if (data != null && toRemove.containsKey(data)) {
-						disassociate(child);
-						child.dispose();
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Sets the expanded state of all items to correspond to the given set of
-	 * expanded elements.
-	 *
-	 * @param expandedElements
-	 *            the set (element type: <code>Object</code>) of elements
-	 *            which are expanded
-	 * @param widget
-	 *            the widget
-	 */
-	private void internalSetExpanded(CustomHashtable expandedElements,
-			Widget widget) {
-		Item[] items = getChildren(widget);
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			Object data = item.getData();
-			if (data != null) {
-				// remove the element to avoid an infinite loop
-				// if the same element appears on a child item
-				boolean expanded = expandedElements.remove(data) != null;
-				if (expanded != getExpanded(item)) {
-					if (expanded) {
-						createChildren(item);
-					}
-					setExpanded(item, expanded);
-				}
-			}
-			if (expandedElements.size() > 0) {
-				internalSetExpanded(expandedElements, item);
-			}
-		}
-	}
-
-	/**
-	 * Sets the expanded state of all items to correspond to the given set of
-	 * expanded tree paths.
-	 *
-	 * @param expandedTreePaths
-	 *            the set (element type: <code>TreePath</code>) of elements
-	 *            which are expanded
-	 * @param widget
-	 *            the widget
-	 */
-	private void internalSetExpandedTreePaths(
-			CustomHashtable expandedTreePaths, Widget widget,
-			TreePath currentPath) {
-		Item[] items = getChildren(widget);
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			Object data = item.getData();
-			TreePath childPath = data == null ? null : currentPath
-					.createChildPath(data);
-			if (data != null && childPath != null) {
-				// remove the element to avoid an infinite loop
-				// if the same element appears on a child item
-				boolean expanded = expandedTreePaths.remove(childPath) != null;
-				if (expanded != getExpanded(item)) {
-					if (expanded) {
-						createChildren(item);
-					}
-					setExpanded(item, expanded);
-				}
-			}
-			internalSetExpandedTreePaths(expandedTreePaths, item, childPath);
-		}
-	}
-
-	/**
-	 * Return whether the tree node representing the given element or path can
-	 * be expanded. Clients should query expandability by path if the viewer's
-	 * content provider is an {@link ITreePathContentProvider}.
-	 * <p>
-	 * The default implementation of this framework method calls
-	 * <code>hasChildren</code> on this viewer's content provider. It may be
-	 * overridden if necessary.
-	 * </p>
-	 *
-	 * @param elementOrTreePath
-	 *            the element or path
-	 * @return <code>true</code> if the tree node representing the given
-	 *         element can be expanded, or <code>false</code> if not
-	 */
-	public boolean isExpandable(Object elementOrTreePath) {
-		Object element;
-		TreePath path;
-		if (elementOrTreePath instanceof TreePath) {
-			path = (TreePath) elementOrTreePath;
-			element = path.getLastSegment();
-		} else {
-			element = elementOrTreePath;
-			path = null;
-		}
-		IContentProvider cp = getContentProvider();
-		if (cp instanceof ITreePathContentProvider) {
-			ITreePathContentProvider tpcp = (ITreePathContentProvider) cp;
-			if (path == null) {
-				// A path was not provided so try and find one
-				Widget w = findItem(element);
-				if (w instanceof Item) {
-					Item item = (Item) w;
-					path = getTreePathFromItem(item);
-				}
-				if (path == null) {
-					path = new TreePath(new Object[] { element });
-				}
-			}
-			return tpcp.hasChildren(path);
-		}
-		if (cp instanceof ITreeContentProvider) {
-			ITreeContentProvider tcp = (ITreeContentProvider) cp;
-			return tcp.hasChildren(element);
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether the given element is expandable.
-	 *
-	 * @param item
-	 *            the tree item for the element
-	 * @param parentPath
-	 *            the parent path if it is known or <code>null</code> if it
-	 *            needs to be determines
-	 * @param element
-	 *            the element
-	 * @return whether the given element is expandable
-	 */
-	private boolean isExpandable(Item item, TreePath parentPath, Object element) {
-		Object elementOrTreePath = element;
-		if (isTreePathContentProvider()) {
-			if (parentPath != null) {
-				elementOrTreePath = parentPath.createChildPath(element);
-			} else {
-				elementOrTreePath = getTreePathFromItem(item);
-			}
-		}
-		return isExpandable(elementOrTreePath);
-	}
-
-	/* (non-Javadoc) Method declared on Viewer. */
-	protected void labelProviderChanged() {
-		// we have to walk the (visible) tree and update every item
-		Control tree = getControl();
-		tree.setRedraw(false);
-		// don't pick up structure changes, but do force label updates
-		internalRefresh(tree, getRoot(), false, true);
-		tree.setRedraw(true);
-	}
-
-	/**
-	 * Creates a new item.
-	 *
-	 * @param parent
-	 *            the parent widget
-	 * @param style
-	 *            SWT style bits
-	 * @param index
-	 *            if non-negative, indicates the position to insert the item
-	 *            into its parent
-	 * @return the newly-created item
-	 */
-	protected abstract Item newItem(Widget parent, int style, int index);
-
-	/**
-	 * Removes the given elements from this viewer. The selection is updated if
-	 * required.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been removed from the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 *
-	 * @param elementsOrTreePaths
-	 *            the elements to remove
-	 */
-	public void remove(final Object[] elementsOrTreePaths) {
-		assertElementsNotNull(elementsOrTreePaths);
-		if (elementsOrTreePaths.length == 0) {
-			return;
-		}
-		if (checkBusy())
-			return;
-		preservingSelection(new Runnable() {
-			public void run() {
-				internalRemove(elementsOrTreePaths);
-			}
-		});
-	}
-
-	/**
-	 * Removes the given elements from this viewer whenever they appear as
-	 * children of the given parent element. If the given elements also appear
-	 * as children of some other parent, the other parent will remain unchanged.
-	 * The selection is updated if required.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been removed from the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 *
-	 * @param parent
-	 *            the parent of the elements to remove
-	 * @param elements
-	 *            the elements to remove
-	 *
-	 * @since 3.2
-	 */
-	public void remove(final Object parent, final Object[] elements) {
-		assertElementsNotNull(elements);
-		if (elements.length == 0) {
-			return;
-		}
-		if (checkBusy())
-			return;
-		preservingSelection(new Runnable() {
-			public void run() {
-				internalRemove(parent, elements);
-			}
-		});
-	}
-
-	/**
-	 * Removes the given element from the viewer. The selection is updated if
-	 * necessary.
-	 * <p>
-	 * This method should be called (by the content provider) when a single
-	 * element has been removed from the model, in order to cause the viewer to
-	 * accurately reflect the model. This method only affects the viewer, not
-	 * the model. Note that there is another method for efficiently processing
-	 * the simultaneous removal of multiple elements.
-	 * </p>
-	 *
-	 * @param elementsOrTreePaths
-	 *            the element
-	 */
-	public void remove(Object elementsOrTreePaths) {
-		remove(new Object[] { elementsOrTreePaths });
-	}
-
-	/**
-	 * Removes all items from the given control.
-	 *
-	 * @param control
-	 *            the control
-	 */
-	protected abstract void removeAll(Control control);
-
-	/**
-	 * Removes a listener for expand and collapse events in this viewer. Has no
-	 * affect if an identical listener is not registered.
-	 *
-	 * @param listener
-	 *            a tree viewer listener
-	 */
-	public void removeTreeListener(ITreeViewerListener listener) {
-		treeListeners.remove(listener);
-	}
-
-	/**
-	 * This implementation of reveal() reveals the given element or tree path.
-	 */
-	public void reveal(Object elementOrTreePath) {
-		Assert.isNotNull(elementOrTreePath);
-		Widget w = internalExpand(elementOrTreePath, true);
-		if (w instanceof Item) {
-			showItem((Item) w);
-		}
-	}
-
-	/**
-	 * Returns the rightmost visible descendent of the given item. Returns the
-	 * item itself if it has no children.
-	 *
-	 * @param item
-	 *            the item to compute the descendent of
-	 * @return the rightmost visible descendent or the item itself if it has no
-	 *         children
-	 */
-	private Item rightMostVisibleDescendent(Item item) {
-		Item[] children = getItems(item);
-		if (getExpanded(item) && children != null && children.length > 0) {
-			return rightMostVisibleDescendent(children[children.length - 1]);
-		}
-		return item;
-	}
-
-	/* (non-Javadoc) Method declared on Viewer. */
-	public Item scrollDown(int x, int y) {
-		Item current = getItem(x, y);
-		if (current != null) {
-			Item next = getNextItem(current, true);
-			showItem(next == null ? current : next);
-			return next;
-		}
-		return null;
-	}
-
-	/* (non-Javadoc) Method declared on Viewer. */
-	public Item scrollUp(int x, int y) {
-		Item current = getItem(x, y);
-		if (current != null) {
-			Item previous = getPreviousItem(current);
-			showItem(previous == null ? current : previous);
-			return previous;
-		}
-		return null;
-	}
-
-	/**
-	 * Sets the auto-expand level to be used when the input of the viewer is set
-	 * using {@link #setInput(Object)}. The value 0 means that there is no
-	 * auto-expand; 1 means that the invisible root element is expanded (since
-	 * most concrete subclasses do not show the root element, there is usually
-	 * no practical difference between using the values 0 and 1); 2 means that
-	 * top-level elements are expanded, but not their children; 3 means that
-	 * top-level elements are expanded, and their children, but not
-	 * grandchildren; and so on.
-	 * <p>
-	 * The value <code>ALL_LEVELS</code> means that all subtrees should be
-	 * expanded.
-	 * </p>
-	 * <p>
-	 * Note that in previous releases, the Javadoc for this method had an off-by
-	 * one error. See bug 177669 for details.
-	 * </p>
-	 * 
-	 * @param level
-	 *            non-negative level, or <code>ALL_LEVELS</code> to expand all
-	 *            levels of the tree
-	 */
-	public void setAutoExpandLevel(int level) {
-		expandToLevel = level;
-	}
-
-	/**
-	 * The <code>AbstractTreeViewer</code> implementation of this method
-	 * checks to ensure that the content provider is an
-	 * <code>ITreeContentProvider</code>.
-	 */
-	public void setContentProvider(IContentProvider provider) {
-		// the actual check is in assertContentProviderType
-		super.setContentProvider(provider);
-	}
-
-	protected void assertContentProviderType(IContentProvider provider) {
-		Assert.isTrue(provider instanceof ITreeContentProvider
-				|| provider instanceof ITreePathContentProvider);
-	}
-
-	/**
-	 * Sets the expand state of the given item.
-	 *
-	 * @param item
-	 *            the item
-	 * @param expand
-	 *            the expand state of the item
-	 */
-	protected abstract void setExpanded(Item item, boolean expand);
-
-	/**
-	 * Sets which nodes are expanded in this viewer's tree. The given list
-	 * contains the elements that are to be expanded; all other nodes are to be
-	 * collapsed.
-	 * <p>
-	 * This method is typically used when restoring the interesting state of a
-	 * viewer captured by an earlier call to <code>getExpandedElements</code>.
-	 * </p>
-	 *
-	 * @param elements
-	 *            the array of expanded elements
-	 * @see #getExpandedElements
-	 */
-	public void setExpandedElements(Object[] elements) {
-		assertElementsNotNull(elements);
-		if (checkBusy()) {
-			return;
-		}
-		CustomHashtable expandedElements = newHashtable(elements.length * 2 + 1);
-		for (int i = 0; i < elements.length; ++i) {
-			Object element = elements[i];
-			// Ensure item exists for element. This will materialize items for
-			// each element and their parents, if possible. This is important
-			// to support expanding of inner tree nodes without necessarily
-			// expanding their parents.
-			internalExpand(element, false);
-			expandedElements.put(element, element);
-		}
-		// this will traverse all existing items, and create children for
-		// elements that need to be expanded. If the tree contains multiple
-		// equal elements, and those are in the set of elements to be expanded,
-		// only the first item found for each element will be expanded.
-		internalSetExpanded(expandedElements, getControl());
-	}
-
-	/**
-	 * Sets which nodes are expanded in this viewer's tree. The given list
-	 * contains the tree paths that are to be expanded; all other nodes are to
-	 * be collapsed.
-	 * <p>
-	 * This method is typically used when restoring the interesting state of a
-	 * viewer captured by an earlier call to <code>getExpandedTreePaths</code>.
-	 * </p>
-	 *
-	 * @param treePaths
-	 *            the array of expanded tree paths
-	 * @see #getExpandedTreePaths()
-	 *
-	 * @since 3.2
-	 */
-	public void setExpandedTreePaths(TreePath[] treePaths) {
-		assertElementsNotNull(treePaths);
-		if (checkBusy())
-			return;
-		final IElementComparer comparer = getComparer();
-		IElementComparer treePathComparer = new IElementComparer() {
-
-			public boolean equals(Object a, Object b) {
-				return ((TreePath) a).equals(((TreePath) b), comparer);
-			}
-
-			public int hashCode(Object element) {
-				return ((TreePath) element).hashCode(comparer);
-			}
-		};
-		CustomHashtable expandedTreePaths = new CustomHashtable(
-				treePaths.length * 2 + 1, treePathComparer);
-		for (int i = 0; i < treePaths.length; ++i) {
-			TreePath treePath = treePaths[i];
-			// Ensure item exists for element. This will materialize items for
-			// each element and their parents, if possible. This is important
-			// to support expanding of inner tree nodes without necessarily
-			// expanding their parents.
-			internalExpand(treePath, false);
-			expandedTreePaths.put(treePath, treePath);
-		}
-		// this will traverse all existing items, and create children for
-		// elements that need to be expanded. If the tree contains multiple
-		// equal elements, and those are in the set of elements to be expanded,
-		// only the first item found for each element will be expanded.
-		internalSetExpandedTreePaths(expandedTreePaths, getControl(),
-				new TreePath(new Object[0]));
-	}
-
-	/**
-	 * Sets whether the node corresponding to the given element or tree path is
-	 * expanded or collapsed.
-	 *
-	 * @param elementOrTreePath
-	 *            the element
-	 * @param expanded
-	 *            <code>true</code> if the node is expanded, and
-	 *            <code>false</code> if collapsed
-	 */
-	public void setExpandedState(Object elementOrTreePath, boolean expanded) {
-		Assert.isNotNull(elementOrTreePath);
-		if (checkBusy())
-			return;
-		Widget item = internalExpand(elementOrTreePath, false);
-		if (item instanceof Item) {
-			if (expanded) {
-				createChildren(item);
-			}
-			setExpanded((Item) item, expanded);
-		}
-	}
-
-	/**
-	 * Sets the selection to the given list of items.
-	 *
-	 * @param items
-	 *            list of items (element type:
-	 *            <code>org.eclipse.swt.widgets.Item</code>)
-	 */
-	protected abstract void setSelection(List items);
-
-	/**
-	 * This implementation of setSelectionToWidget accepts a list of elements or
-	 * a list of tree paths.
-	 */
-	protected void setSelectionToWidget(List v, boolean reveal) {
-		if (v == null) {
-			setSelection(new ArrayList(0));
-			return;
-		}
-		int size = v.size();
-		List newSelection = new ArrayList(size);
-		for (int i = 0; i < size; ++i) {
-			Object elementOrTreePath = v.get(i);
-			// Use internalExpand since item may not yet be created. See
-			// 1G6B1AR.
-			Widget w = internalExpand(elementOrTreePath, false);
-			if (w instanceof Item) {
-				newSelection.add(w);
-			} else if (w == null && elementOrTreePath instanceof TreePath) {
-				TreePath treePath = (TreePath) elementOrTreePath;
-				Object element = treePath.getLastSegment();
-				if (element != null) {
-					w = internalExpand(element, false);
-					if (w instanceof Item) {
-						newSelection.add(w);
-					}
-				}
-			}
-		}
-		setSelection(newSelection);
-
-		// Although setting the selection in the control should reveal it,
-		// setSelection may be a no-op if the selection is unchanged,
-		// so explicitly reveal items in the selection here.
-		// See bug 100565 for more details.
-		if (reveal && newSelection.size() > 0) {
-			// Iterate backwards so the first item in the list
-			// is the one guaranteed to be visible
-			for (int i = (newSelection.size()-1); i >= 0; i--) {
-				showItem((Item) newSelection.get(i));
-			}
-		}
-	}
-
-	/**
-	 * Shows the given item.
-	 *
-	 * @param item
-	 *            the item
-	 */
-	protected abstract void showItem(Item item);
-
-	/**
-	 * Updates the tree items to correspond to the child elements of the given
-	 * parent element. If null is passed for the children, this method obtains
-	 * them (only if needed).
-	 *
-	 * @param widget
-	 *            the widget
-	 * @param parent
-	 *            the parent element
-	 * @param elementChildren
-	 *            the child elements, or null
-	 * @deprecated this is no longer called by the framework
-	 */
-	protected void updateChildren(Widget widget, Object parent,
-			Object[] elementChildren) {
-		updateChildren(widget, parent, elementChildren, true);
-	}
-
-	/**
-	 * Updates the tree items to correspond to the child elements of the given
-	 * parent element. If null is passed for the children, this method obtains
-	 * them (only if needed).
-	 *
-	 * @param widget
-	 *            the widget
-	 * @param parent
-	 *            the parent element
-	 * @param elementChildren
-	 *            the child elements, or null
-	 * @param updateLabels
-	 *            <code>true</code> to update labels for existing elements,
-	 *            <code>false</code> to only update labels as needed, assuming
-	 *            that labels for existing elements are unchanged.
-	 * @since 2.1
-	 */
-	private void updateChildren(Widget widget, Object parent,
-			Object[] elementChildren, boolean updateLabels) {
-		// optimization! prune collapsed subtrees
-		if (widget instanceof Item) {
-			Item ti = (Item) widget;
-			if (!getExpanded(ti)) {
-				if (optionallyPruneChildren(ti, parent)) {
-					// children were pruned, nothing left to do
-					return;
-				}
-				// The following code is being executed if children were not pruned.
-				// This is (as of 3.5) only the case for CheckboxTreeViewer.
-				Item[] its = getItems(ti);
-				if (isExpandable(ti, null, parent)) {
-					if (its.length == 0) {
-						// need dummy node
-						newItem(ti, SWT.NULL, -1);
-						return;
-					} else if (its.length == 1 && its[0].getData() == null) {
-						// dummy node exists, nothing left to do
-						return;
-					}
-					// else fall through to normal update code below
-				} else {
-					for (int i = 0; i < its.length; i++) {
-						if (its[i].getData() != null) {
-							disassociate(its[i]);
-						}
-						its[i].dispose();
-					}
-					// nothing left to do
-					return;
-				}
-			}
-		}
-
-		// If the children weren't passed in, get them now since they're needed
-		// below.
-		if (elementChildren == null) {
-			if (isTreePathContentProvider() && widget instanceof Item) {
-				TreePath path = getTreePathFromItem((Item) widget);
-				elementChildren = getSortedChildren(path);
-			} else {
-				elementChildren = getSortedChildren(parent);
-			}
-		}
-
-		Control tree = getControl();
-
-		// WORKAROUND
-		int oldCnt = -1;
-		if (widget == tree) {
-			oldCnt = getItemCount(tree);
-		}
-
-		Item[] items = getChildren(widget);
-		
-		// save the expanded elements
-		CustomHashtable expanded = newHashtable(CustomHashtable.DEFAULT_CAPACITY); // assume
-																					// num
-																					// expanded
-																					// is
-																					// small
-		for (int i = 0; i < items.length; ++i) {
-			if (getExpanded(items[i])) {
-				Object element = items[i].getData();
-				if (element != null) {
-					expanded.put(element, element);
-				}
-			}
-		}
-
-		int min = Math.min(elementChildren.length, items.length);
-
-		// dispose of surplus items, optimizing for the case where elements have
-		// been deleted but not reordered, or all elements have been removed.
-		int numItemsToDispose = items.length - min;
-		if (numItemsToDispose > 0) {
-			CustomHashtable children = newHashtable(elementChildren.length * 2);
-			for (int i = 0; i < elementChildren.length; i++) {
-				Object elementChild = elementChildren[i];
-				children.put(elementChild, elementChild);
-			}
-			int i = 0;
-			while (numItemsToDispose > 0 && i < items.length) {
-				Object data = items[i].getData();
-				if (data == null || items.length - i <= numItemsToDispose || !children.containsKey(data)) {
-					if (data != null) {
-						disassociate(items[i]);
-					}
-					items[i].dispose();
-					if (i + 1 < items.length) {
-						// The components at positions i+1 through
-						// items.length-1 in the source array are copied into
-						// positions i through items.length-2
-						System.arraycopy(items, i + 1, items, i, items.length - (i+1));
-					}
-					numItemsToDispose--;
-				} else {
-					i++;
-				}
-			}
-		}
-
-		// compare first min items, and update item if necessary
-		// need to do it in two passes:
-		// 1: disassociate old items
-		// 2: associate new items
-		// because otherwise a later disassociate can remove a mapping made for
-		// a previous associate,
-		// making the map inconsistent
-		for (int i = 0; i < min; ++i) {
-			Item item = items[i];
-			Object oldElement = item.getData();
-			if (oldElement != null) {
-				Object newElement = elementChildren[i];
-				if (newElement != oldElement) {
-					if (equals(newElement, oldElement)) {
-						// update the data to be the new element, since
-						// although the elements
-						// may be equal, they may still have different labels
-						// or children
-						Object data = item.getData();
-						if (data != null) {
-							unmapElement(data, item);
-						}
-						item.setData(newElement);
-						mapElement(newElement, item);
-					} else {
-						disassociate(item);
-						// Clear the text and image to force a label update
-						item.setImage(null);
-						item.setText("");//$NON-NLS-1$
-
-					}
-				}
-			}
-		}
-
-		for (int i = 0; i < min; ++i) {
-			Item item = items[i];
-			Object newElement = elementChildren[i];
-			if (item.getData() == null) {
-				// old and new elements are not equal
-				associate(newElement, item);
-				updatePlus(item, newElement);
-				updateItem(item, newElement);
-			} else {
-				// old and new elements are equal
-				updatePlus(item, newElement);
-				if (updateLabels) {
-					updateItem(item, newElement);
-				}
-			}
-		}
-
-		// Restore expanded state for items that changed position.
-		// Make sure setExpanded is called after updatePlus, since
-		// setExpanded(false) fails if item has no children.
-		// Need to call setExpanded for both expanded and unexpanded
-		// cases since the expanded state can change either way.
-		// This needs to be done in a second loop, see bug 148025.
-		for (int i = 0; i < min; ++i) {
-			Item item = items[i];
-			Object newElement = elementChildren[i];
-			setExpanded(item, expanded.containsKey(newElement));
-		}
-
-		// add any remaining elements
-		if (min < elementChildren.length) {
-			for (int i = min; i < elementChildren.length; ++i) {
-				createTreeItem(widget, elementChildren[i], i);
-			}
-
-			// Need to restore expanded state in a separate pass
-			// because createTreeItem does not return the new item.
-			// Avoid doing this unless needed.
-			if (expanded.size() > 0) {
-				// get the items again, to include the new items
-				items = getChildren(widget);
-				for (int i = min; i < elementChildren.length; ++i) {
-					// Restore expanded state for items that changed position.
-					// Make sure setExpanded is called after updatePlus (called
-					// in createTreeItem), since
-					// setExpanded(false) fails if item has no children.
-					// Only need to call setExpanded if element was expanded
-					// since new items are initially unexpanded.
-					if (expanded.containsKey(elementChildren[i])) {
-						setExpanded(items[i], true);
-					}
-				}
-			}
-		}
-
-		// WORKAROUND
-		if (widget == tree && oldCnt == 0 && getItemCount(tree) != 0) {
-			// System.out.println("WORKAROUND setRedraw");
-			tree.setRedraw(false);
-			tree.setRedraw(true);
-		}
-	}
-
-	/** Returns true if children were pruned */
-	/*package*/ boolean optionallyPruneChildren(Item item, Object element) {
-		// need a dummy node if element is expandable;
-		// but try to avoid recreating the dummy node
-		boolean needDummy = isExpandable(item, null, element);
-		boolean haveDummy = false;
-		// remove all children
-		Item[] items = getItems(item);
-		for (int i = 0; i < items.length; i++) {
-			if (items[i].getData() != null) {
-				disassociate(items[i]);
-				items[i].dispose();
-			} else {
-				if (needDummy && !haveDummy) {
-					haveDummy = true;
-				} else {
-					items[i].dispose();
-				}
-			}
-		}
-		if (needDummy && !haveDummy) {
-			newItem(item, SWT.NULL, -1);
-		}
-		return true;
-	}
-
-	/**
-	 * Not to be called by clients. Return the items to be refreshed as part of
-	 * an update. elementChildren are the new elements.
-	 * 
-	 * @param widget
-	 * @param elementChildren
-	 * @since 3.4
-	 * @return Item[]
-	 * 
-	 * @deprecated This method was inadvertently released as API but is not
-	 *             intended to be called by clients.
-	 */
-	public Item[] getChildren(Widget widget,  Object[] elementChildren) {
-		return getChildren(widget);
-	}
-
-	/**
-	 * Updates the "+"/"-" icon of the tree node from the given element. It
-	 * calls <code>isExpandable</code> to determine whether an element is
-	 * expandable.
-	 *
-	 * @param item
-	 *            the item
-	 * @param element
-	 *            the element
-	 */
-	protected void updatePlus(Item item, Object element) {
-		boolean hasPlus = getItemCount(item) > 0;
-		boolean needsPlus = isExpandable(item, null, element);
-		boolean removeAll = false;
-		boolean addDummy = false;
-		Object data = item.getData();
-		if (data != null && equals(element, data)) {
-			// item shows same element
-			if (hasPlus != needsPlus) {
-				if (needsPlus) {
-					addDummy = true;
-				} else {
-					removeAll = true;
-				}
-			}
-		} else {
-			// item shows different element
-			removeAll = true;
-			addDummy = needsPlus;
-
-			// we cannot maintain expand state so collapse it
-			setExpanded(item, false);
-		}
-		if (removeAll) {
-			// remove all children
-			Item[] items = getItems(item);
-			for (int i = 0; i < items.length; i++) {
-				if (items[i].getData() != null) {
-					disassociate(items[i]);
-				}
-				items[i].dispose();
-			}
-		}
-		if (addDummy) {
-			newItem(item, SWT.NULL, -1); // append a dummy
-		}
-	}
-
-	/**
-	 * Gets the expanded elements that are visible to the user. An expanded
-	 * element is only visible if the parent is expanded.
-	 *
-	 * @return the visible expanded elements
-	 * @since 2.0
-	 */
-	public Object[] getVisibleExpandedElements() {
-		ArrayList v = new ArrayList();
-		internalCollectVisibleExpanded(v, getControl());
-		return v.toArray();
-	}
-
-	private void internalCollectVisibleExpanded(ArrayList result, Widget widget) {
-		Item[] items = getChildren(widget);
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			if (getExpanded(item)) {
-				Object data = item.getData();
-				if (data != null) {
-					result.add(data);
-				}
-				// Only recurse if it is expanded - if
-				// not then the children aren't visible
-				internalCollectVisibleExpanded(result, item);
-			}
-		}
-	}
-
-	/**
-	 * Returns the tree path for the given item.
-	 * @param item
-	 * @return {@link TreePath}
-	 *
-	 * @since 3.2
-	 */
-	protected TreePath getTreePathFromItem(Item item) {
-		LinkedList segments = new LinkedList();
-		while (item != null) {
-			Object segment = item.getData();
-			Assert.isNotNull(segment);
-			segments.addFirst(segment);
-			item = getParentItem(item);
-		}
-		return new TreePath(segments.toArray());
-	}
-
-	/**
-	 * This implementation of getSelection() returns an instance of
-	 * ITreeSelection.
-	 *
-	 * @since 3.2
-	 */
-	public ISelection getSelection() {
-		Control control = getControl();
-		if (control == null || control.isDisposed()) {
-			return TreeSelection.EMPTY;
-		}
-		Widget[] items = getSelection(getControl());
-		ArrayList list = new ArrayList(items.length);
-		for (int i = 0; i < items.length; i++) {
-			Widget item = items[i];
-			if (item.getData() != null) {
-				list.add(getTreePathFromItem((Item) item));
-			}
-		}
-		return new TreeSelection((TreePath[]) list.toArray(new TreePath[list
-				.size()]), getComparer());
-	}
-
-	protected void setSelectionToWidget(ISelection selection, boolean reveal) {
-		if (selection instanceof ITreeSelection) {
-			ITreeSelection treeSelection = (ITreeSelection) selection;
-			setSelectionToWidget(Arrays.asList(treeSelection.getPaths()),
-					reveal);
-		} else {
-			super.setSelectionToWidget(selection, reveal);
-		}
-	}
-
-	/**
-	 * Returns a list of tree paths corresponding to expanded nodes in this
-	 * viewer's tree, including currently hidden ones that are marked as
-	 * expanded but are under a collapsed ancestor.
-	 * <p>
-	 * This method is typically used when preserving the interesting state of a
-	 * viewer; <code>setExpandedElements</code> is used during the restore.
-	 * </p>
-	 *
-	 * @return the array of expanded tree paths
-	 * @see #setExpandedElements
-	 *
-	 * @since 3.2
-	 */
-	public TreePath[] getExpandedTreePaths() {
-		ArrayList items = new ArrayList();
-		internalCollectExpandedItems(items, getControl());
-		ArrayList result = new ArrayList(items.size());
-		for (Iterator it = items.iterator(); it.hasNext();) {
-			Item item = (Item) it.next();
-			TreePath treePath = getTreePathFromItem(item);
-			if (treePath != null) {
-				result.add(treePath);
-			}
-		}
-		return (TreePath[]) result.toArray(new TreePath[items.size()]);
-	}
-
-	private boolean isTreePathContentProvider() {
-		return getContentProvider() instanceof ITreePathContentProvider;
-	}
-
-	/**
-	 * Inserts the given element as a new child element of the given parent
-	 * element at the given position. If this viewer has a sorter, the position
-	 * is ignored and the element is inserted at the correct position in the
-	 * sort order.
-	 * <p>
-	 * This method should be called (by the content provider) when elements have
-	 * been added to the model, in order to cause the viewer to accurately
-	 * reflect the model. This method only affects the viewer, not the model.
-	 * </p>
-	 *
-	 * @param parentElementOrTreePath
-	 *            the parent element, or the tree path to the parent
-	 * @param element
-	 *            the element
-	 * @param position
-	 *            a 0-based position relative to the model, or -1 to indicate
-	 *            the last position
-	 *
-	 * @since 3.2
-	 */
-	public void insert(Object parentElementOrTreePath, Object element,
-			int position) {
-		Assert.isNotNull(parentElementOrTreePath);
-		Assert.isNotNull(element);
-		if (checkBusy())
-			return;
-		if (getComparator() != null || hasFilters()) {
-			add(parentElementOrTreePath, new Object[] { element });
-			return;
-		}
-		Widget[] items;
-		if (internalIsInputOrEmptyPath(parentElementOrTreePath)) {
-			items = new Widget[] { getControl() };
-		} else {
-			items = internalFindItems(parentElementOrTreePath);
-		}
-
-		for (int i = 0; i < items.length; i++) {
-			Widget widget = items[i];
-			if (widget instanceof Item) {
-				Item item = (Item) widget;
-
-				Item[] childItems = getChildren(item);
-				if (getExpanded(item)
-						|| (childItems.length > 0 && childItems[0].getData() != null)) {
-					// item has real children, go ahead and add
-					int insertionPosition = position;
-					if (insertionPosition == -1) {
-						insertionPosition = getItemCount(item);
-					}
-
-					createTreeItem(item, element, insertionPosition);
-				} else {
-					Object parentElement = parentElementOrTreePath;
-					if (element instanceof TreePath)
-						parentElement = ((TreePath) parentElement).getLastSegment();
-					updatePlus(item, parentElement);
-				}
-			} else {
-				int insertionPosition = position;
-				if (insertionPosition == -1) {
-					insertionPosition = getItemCount((Control) widget);
-				}
-
-				createTreeItem(widget, element, insertionPosition);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnViewerOwner(int)
-	 */
-	protected Widget getColumnViewerOwner(int columnIndex) {
-		// Return null by default
-		return null;
-	}
-
-	/**
-	 * This implementation of {@link #getItemAt(Point)} returns null to ensure
-	 * API backwards compatibility. Subclasses should override.
-	 *
-	 * @since 3.3
-	 */
-	protected Item getItemAt(Point point) {
-		return null;
-	}
-
-	/**
-	 * This implementation of {@link #createViewerEditor()} returns null to ensure
-	 * API backwards compatibility. Subclasses should override.
-	 *
-	 * @since 3.3
-	 */
-	protected ColumnViewerEditor createViewerEditor() {
-		return null;
-	}
-
-	/**
-	 * Returns the number of columns of this viewer.
-	 * <p><b>Subclasses should overwrite this method, which has a default
-	 * implementation (returning 0) for API backwards compatility reasons</b></p>
-	 *
-	 * @return the number of columns
-	 *
-	 * @since 3.3
-	 */
-	protected int doGetColumnCount() {
-		return 0;
-	}
-
-
-	/**
-	 * This implementation of buildLabel handles tree paths as well as elements.
-	 *
-	 * @param updateLabel
-	 *            the ViewerLabel to collect the result in
-	 * @param elementOrPath
-	 *            the element or tree path for which a label should be built
-	 *
-	 * @see org.eclipse.jface.viewers.StructuredViewer#buildLabel(org.eclipse.jface.viewers.ViewerLabel,
-	 *      java.lang.Object)
-	 */
-	protected void buildLabel(ViewerLabel updateLabel, Object elementOrPath) {
-		Object element;
-		if (elementOrPath instanceof TreePath) {
-			TreePath path = (TreePath) elementOrPath;
-			IBaseLabelProvider provider = getLabelProvider();
-			if (provider instanceof ITreePathLabelProvider) {
-				ITreePathLabelProvider pprov = (ITreePathLabelProvider) provider;
-				buildLabel(updateLabel, path, pprov);
-				return;
-			}
-			element = path.getLastSegment();
-		} else {
-			element = elementOrPath;
-		}
-		super.buildLabel(updateLabel, element);
-	}
-
-	/**
-	 * Returns true if the given object is either the input or an empty tree path.
-	 *
-	 * @param elementOrTreePath an element which could either be the viewer's input, or a tree path
-	 *
-	 * @return <code>true</code> if the given object is either the input or an empty tree path,
-	 * <code>false</code> otherwise.
-	 * @since 3.3
-	 */
-	final protected boolean internalIsInputOrEmptyPath(final Object elementOrTreePath) {
-		if (elementOrTreePath.equals(getRoot()))
-			return true;
-		if (!(elementOrTreePath instanceof TreePath))
-			return false;
-		return ((TreePath) elementOrTreePath).getSegmentCount() == 0;
-	}
-
-	/*
-	 * Subclasses should implement
-	 */
-	protected ViewerRow getViewerRowFromItem(Widget item) {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AcceptAllFilter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AcceptAllFilter.java
deleted file mode 100644
index 0d9bd85..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AcceptAllFilter.java
+++ /dev/null
@@ -1,50 +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.jface.viewers;
-
-
-/**
- * Filter that accepts everything. Available as a singleton since having
- * more than one instance would be wasteful.
- * 
- * @since 3.1
- */
-public final class AcceptAllFilter implements IFilter {
-
-	/**
-	 * Returns the singleton instance of AcceptAllFilter
-	 * 
-	 * @return the singleton instance of AcceptAllFilter
-	 */
-	public static IFilter getInstance() {
-		return singleton;
-	}
-	
-	/**
-	 * The singleton instance
-	 */
-	private static IFilter singleton = new AcceptAllFilter();
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.deferred.IFilter#select(java.lang.Object)
-	 */
-	public boolean select(Object toTest) {
-		return true;
-	}
-	
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-	public boolean equals(Object other) {
-		return other == this || other instanceof AcceptAllFilter;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ArrayContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ArrayContentProvider.java
deleted file mode 100644
index 83d762a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ArrayContentProvider.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.Collection;
-
-/**
- * This implementation of <code>IStructuredContentProvider</code> handles
- * the case where the viewer input is an unchanging array or collection of elements.
- * <p>
- * This class is not intended to be subclassed outside the viewer framework.
- * </p> 
- * 
- * @since 2.1
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ArrayContentProvider implements IStructuredContentProvider {
-
-	private static ArrayContentProvider instance;
-
-	/**
-	 * Returns an instance of ArrayContentProvider. Since instances of this
-	 * class do not maintain any state, they can be shared between multiple
-	 * clients.
-	 * 
-	 * @return an instance of ArrayContentProvider
-	 * 
-	 * @since 3.5
-	 */
-	public static ArrayContentProvider getInstance() {
-		synchronized(ArrayContentProvider.class) {
-			if (instance == null) {
-				instance = new ArrayContentProvider();
-			}
-			return instance;
-		}
-	}
-    /**
-     * Returns the elements in the input, which must be either an array or a
-     * <code>Collection</code>. 
-     */
-    public Object[] getElements(Object inputElement) {
-        if (inputElement instanceof Object[]) {
-			return (Object[]) inputElement;
-		}
-        if (inputElement instanceof Collection) {
-			return ((Collection) inputElement).toArray();
-		}
-        return new Object[0];
-    }
-
-    /**
-     * This implementation does nothing.
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        // do nothing.
-    }
-
-    /**
-     * This implementation does nothing.
-     */
-    public void dispose() {
-        // do nothing.
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/BaseLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/BaseLabelProvider.java
deleted file mode 100644
index d610aa4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/BaseLabelProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.util.SafeRunnable;
-
-/**
- * BaseLabelProvider is a default concrete implementation of
- * {@link IBaseLabelProvider} 
- * 
- * @since 3.3
- * 
- */
-public class BaseLabelProvider extends EventManager implements IBaseLabelProvider {
-	
-	/* (non-Javadoc)
-     * Method declared on IBaseLabelProvider.
-     */
-    public void addListener(ILabelProviderListener listener) {
-        addListenerObject(listener);
-    }
-
-    /**
-     * The <code>BaseLabelProvider</code> implementation of this 
-     * <code>IBaseLabelProvider</code> method clears its internal listener list.
-     * Subclasses may extend but should call the super implementation.
-     */
-    public void dispose() {
-    	clearListeners();
-    }
-    
-    /**
-     * The <code>BaseLabelProvider</code> implementation of this 
-     * <code>IBaseLabelProvider</code> method returns <code>true</code>. Subclasses may 
-     * override.
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return true;
-    }
-
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-        removeListenerObject(listener);
-    }
-    
-    /**
-	 * Fires a label provider changed event to all registered listeners Only
-	 * listeners registered at the time this method is called are notified.
-	 * 
-	 * @param event
-	 *            a label provider changed event
-	 * 
-	 * @see ILabelProviderListener#labelProviderChanged
-	 */
-	protected void fireLabelProviderChanged(final LabelProviderChangedEvent event) {
-		Object[] listeners = getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final ILabelProviderListener l = (ILabelProviderListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.labelProviderChanged(event);
-				}
-			});
-
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellEditor.java
deleted file mode 100644
index 39514f4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellEditor.java
+++ /dev/null
@@ -1,939 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - bugfix in: 187963, 218336
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Abstract base class for cell editors. Implements property change listener
- * handling, and SWT window management.
- * <p>
- * Subclasses implement particular kinds of cell editors. This package contains
- * various specialized cell editors:
- * <ul>
- * <li><code>TextCellEditor</code> - for simple text strings</li>
- * <li><code>ColorCellEditor</code> - for colors</li>
- * <li><code>ComboBoxCellEditor</code> - value selected from drop-down combo
- * box</li>
- * <li><code>CheckboxCellEditor</code> - boolean valued checkbox</li>
- * <li><code>DialogCellEditor</code> - value from arbitrary dialog</li>
- * </ul>
- * </p>
- */
-public abstract class CellEditor {
-
-	/**
-	 * List of cell editor listeners (element type:
-	 * <code>ICellEditorListener</code>).
-	 */
-	private ListenerList listeners = new ListenerList();
-
-	/**
-	 * List of cell editor property change listeners (element type:
-	 * <code>IPropertyChangeListener</code>).
-	 */
-	private ListenerList propertyChangeListeners = new ListenerList();
-
-	/**
-	 * Indicates whether this cell editor's current value is valid.
-	 */
-	private boolean valid = false;
-
-	/**
-	 * Optional cell editor validator; <code>null</code> if none.
-	 */
-	private ICellEditorValidator validator = null;
-
-	/**
-	 * The error message string to display for invalid values; <code>null</code>
-	 * if none (that is, the value is valid).
-	 */
-	private String errorMessage = null;
-
-	/**
-	 * Indicates whether this cell editor has been changed recently.
-	 */
-	private boolean dirty = false;
-
-	/**
-	 * This cell editor's control, or <code>null</code> if not created yet.
-	 */
-	private Control control = null;
-
-	/**
-	 * Default cell editor style
-	 */
-	private static final int defaultStyle = SWT.NONE;
-
-	/**
-	 * This cell editor's style
-	 */
-	private int style = defaultStyle;
-
-	/**
-	 * Struct-like layout data for cell editors, with reasonable defaults for
-	 * all fields.
-	 * 
-	 * @noextend This class is not intended to be subclassed by clients.
-	 */
-	public static class LayoutData {
-		/**
-		 * Horizontal alignment; <code>SWT.LEFT</code> by default.
-		 */
-		public int horizontalAlignment = SWT.LEFT;
-
-		/**
-		 * Indicates control grabs additional space; <code>true</code> by
-		 * default.
-		 */
-		public boolean grabHorizontal = true;
-
-		/**
-		 * Minimum width in pixels; <code>50</code> pixels by default.
-		 */
-		public int minimumWidth = 50;
-
-		/**
-		 * Minimum height in pixels; by default the height is aligned to the
-		 * row-height
-		 * @since 3.4
-		 */
-		public int minimumHeight = SWT.DEFAULT;
-
-		/**
-		 * The vertical alignment; <code>SWT.CENTER</code> by default.
-		 * @since 3.4
-		 */
-		public int verticalAlignment = SWT.CENTER;
-	}
-
-	/**
-	 * Property name for the copy action
-	 */
-	public static final String COPY = "copy"; //$NON-NLS-1$
-
-	/**
-	 * Property name for the cut action
-	 */
-	public static final String CUT = "cut"; //$NON-NLS-1$
-
-	/**
-	 * Property name for the delete action
-	 */
-	public static final String DELETE = "delete"; //$NON-NLS-1$
-
-	/**
-	 * Property name for the find action
-	 */
-	public static final String FIND = "find"; //$NON-NLS-1$
-
-	/**
-	 * Property name for the paste action
-	 */
-	public static final String PASTE = "paste"; //$NON-NLS-1$
-
-	/**
-	 * Property name for the redo action
-	 */
-	public static final String REDO = "redo"; //$NON-NLS-1$
-
-	/**
-	 * Property name for the select all action
-	 */
-	public static final String SELECT_ALL = "selectall"; //$NON-NLS-1$
-
-	/**
-	 * Property name for the undo action
-	 */
-	public static final String UNDO = "undo"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new cell editor with no control The cell editor has no cell
-	 * validator.
-	 *
-	 * @since 2.1
-	 */
-	protected CellEditor() {
-	}
-
-	/**
-	 * Creates a new cell editor under the given parent control. The cell editor
-	 * has no cell validator.
-	 *
-	 * @param parent
-	 *            the parent control
-	 */
-	protected CellEditor(Composite parent) {
-		this(parent, defaultStyle);
-	}
-
-	/**
-	 * Creates a new cell editor under the given parent control. The cell editor
-	 * has no cell validator.
-	 *
-	 * @param parent
-	 *            the parent control
-	 * @param style
-	 *            the style bits
-	 * @since 2.1
-	 */
-	protected CellEditor(Composite parent, int style) {
-		this.style = style;
-		create(parent);
-	}
-
-	/**
-	 * Activates this cell editor.
-	 * <p>
-	 * The default implementation of this framework method does nothing.
-	 * Subclasses may reimplement.
-	 * </p>
-	 */
-	public void activate() {
-	}
-
-	/**
-	 * Adds a listener to this cell editor. Has no effect if an identical
-	 * listener is already registered.
-	 *
-	 * @param listener
-	 *            a cell editor listener
-	 */
-	public void addListener(ICellEditorListener listener) {
-		listeners.add(listener);
-	}
-
-	/**
-	 * Adds a property change listener to this cell editor. Has no effect if an
-	 * identical property change listener is already registered.
-	 *
-	 * @param listener
-	 *            a property change listener
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		propertyChangeListeners.add(listener);
-	}
-
-	/**
-	 * Creates the control for this cell editor under the given parent control.
-	 * <p>
-	 * This framework method must be implemented by concrete subclasses.
-	 * </p>
-	 *
-	 * @param parent
-	 *            the parent control
-	 * @return the new control, or <code>null</code> if this cell editor has
-	 *         no control
-	 */
-	protected abstract Control createControl(Composite parent);
-
-	/**
-	 * Creates the control for this cell editor under the given parent control.
-	 *
-	 * @param parent
-	 *            the parent control
-	 * @since 2.1
-	 */
-	public void create(Composite parent) {
-		Assert.isTrue(control == null);
-		control = createControl(parent);
-		// See 1GD5CA6: ITPUI:ALL - TaskView.setSelection does not work
-		// Control is created with getVisible()==true by default.
-		// This causes composite.setFocus() to work incorrectly.
-		// The cell editor's control grabs focus instead, even if it is not
-		// active.
-		// Make the control invisible here by default.
-		deactivate();
-	}
-
-	/**
-	 * Hides this cell editor's control. Does nothing if this cell editor is not
-	 * visible.
-	 */
-	public void deactivate() {
-		if (control != null && !control.isDisposed()) {
-			control.setVisible(false);
-		}
-	}
-
-	/**
-	 * Disposes of this cell editor and frees any associated SWT resources.
-	 */
-	public void dispose() {
-		if (control != null && !control.isDisposed()) {
-			control.dispose();
-		}
-		control = null;
-	}
-
-	/**
-	 * Returns this cell editor's value.
-	 * <p>
-	 * This framework method must be implemented by concrete subclasses.
-	 * </p>
-	 *
-	 * @return the value of this cell editor
-	 * @see #getValue
-	 */
-	protected abstract Object doGetValue();
-
-	/**
-	 * Sets the focus to the cell editor's control.
-	 * <p>
-	 * This framework method must be implemented by concrete subclasses.
-	 * </p>
-	 *
-	 * @see #setFocus
-	 */
-	protected abstract void doSetFocus();
-
-	/**
-	 * Sets this cell editor's value.
-	 * <p>
-	 * This framework method must be implemented by concrete subclasses.
-	 * </p>
-	 *
-	 * @param value
-	 *            the value of this cell editor
-	 * @see #setValue
-	 */
-	protected abstract void doSetValue(Object value);
-
-	/**
-	 * Notifies all registered cell editor listeners of an apply event. Only
-	 * listeners registered at the time this method is called are notified.
-	 *
-	 * @see ICellEditorListener#applyEditorValue
-	 */
-	protected void fireApplyEditorValue() {
-		Object[] array = listeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			final ICellEditorListener l = (ICellEditorListener) array[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.applyEditorValue();
-				}
-			});
-		}
-	}
-
-	/**
-	 * Notifies all registered cell editor listeners that editing has been
-	 * canceled.
-	 *
-	 * @see ICellEditorListener#cancelEditor
-	 */
-	protected void fireCancelEditor() {
-		Object[] array = listeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			final ICellEditorListener l = (ICellEditorListener) array[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.cancelEditor();
-				}
-			});
-		}
-	}
-
-	/**
-	 * Notifies all registered cell editor listeners of a value change.
-	 *
-	 * @param oldValidState
-	 *            the valid state before the end user changed the value
-	 * @param newValidState
-	 *            the current valid state
-	 * @see ICellEditorListener#editorValueChanged
-	 */
-	protected void fireEditorValueChanged(final boolean oldValidState,
-			final boolean newValidState) {
-		Object[] array = listeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			final ICellEditorListener l = (ICellEditorListener) array[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.editorValueChanged(oldValidState, newValidState);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Notifies all registered property listeners of an enablement change.
-	 *
-	 * @param actionId
-	 *            the id indicating what action's enablement has changed.
-	 */
-	protected void fireEnablementChanged(final String actionId) {
-		Object[] array = propertyChangeListeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			final IPropertyChangeListener l = (IPropertyChangeListener) array[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.propertyChange(new PropertyChangeEvent(this, actionId,
-							null, null));
-				}
-			});
-		}
-	}
-
-	/**
-	 * Sets the style bits for this cell editor.
-	 *
-	 * @param style
-	 *            the SWT style bits for this cell editor
-	 * @since 2.1
-	 */
-	public void setStyle(int style) {
-		this.style = style;
-	}
-
-	/**
-	 * Returns the style bits for this cell editor.
-	 *
-	 * @return the style for this cell editor
-	 * @since 2.1
-	 */
-	public int getStyle() {
-		return style;
-	}
-
-	/**
-	 * Returns the control used to implement this cell editor.
-	 *
-	 * @return the control, or <code>null</code> if this cell editor has no
-	 *         control
-	 */
-	public Control getControl() {
-		return control;
-	}
-
-	/**
-	 * Returns the current error message for this cell editor.
-	 *
-	 * @return the error message if the cell editor is in an invalid state, and
-	 *         <code>null</code> if the cell editor is valid
-	 */
-	public String getErrorMessage() {
-		return errorMessage;
-	}
-
-	/**
-	 * Returns a layout data object for this cell editor. This is called each
-	 * time the cell editor is activated and controls the layout of the SWT
-	 * table editor.
-	 * <p>
-	 * The default implementation of this method sets the minimum width to the
-	 * control's preferred width. Subclasses may extend or reimplement.
-	 * </p>
-	 *
-	 * @return the layout data object
-	 */
-	public LayoutData getLayoutData() {
-		LayoutData result = new LayoutData();
-		Control control = getControl();
-		if (control != null) {
-			result.minimumWidth = control.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-					true).x;
-		}
-		return result;
-	}
-
-	/**
-	 * Returns the input validator for this cell editor.
-	 *
-	 * @return the input validator, or <code>null</code> if none
-	 */
-	public ICellEditorValidator getValidator() {
-		return validator;
-	}
-
-	/**
-	 * Returns this cell editor's value provided that it has a valid one.
-	 *
-	 * @return the value of this cell editor, or <code>null</code> if the cell
-	 *         editor does not contain a valid value
-	 */
-	public final Object getValue() {
-		if (!valid) {
-			return null;
-		}
-
-		return doGetValue();
-	}
-
-	/**
-	 * Returns whether this cell editor is activated.
-	 *
-	 * @return <code>true</code> if this cell editor's control is currently
-	 *         activated, and <code>false</code> if not activated
-	 */
-	public boolean isActivated() {
-		// Use the state of the visible style bit (getVisible()) rather than the
-		// window's actual visibility (isVisible()) to get correct handling when
-		// an ancestor control goes invisible, see bug 85331.
-		return control != null && control.getVisible();
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * copy action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if copy is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isCopyEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns whether the given value is valid for this cell editor. This cell
-	 * editor's validator (if any) makes the actual determination.
-	 *
-	 * @param value
-	 *            the value to check for
-	 *
-	 * @return <code>true</code> if the value is valid, and <code>false</code>
-	 *         if invalid
-	 */
-	protected boolean isCorrect(Object value) {
-		errorMessage = null;
-		if (validator == null) {
-			return true;
-		}
-
-		errorMessage = validator.isValid(value);
-		return (errorMessage == null || errorMessage.equals(""));//$NON-NLS-1$
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * cut action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if cut is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isCutEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * delete action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if delete is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isDeleteEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns whether the value of this cell editor has changed since the last
-	 * call to <code>setValue</code>.
-	 *
-	 * @return <code>true</code> if the value has changed, and
-	 *         <code>false</code> if unchanged
-	 */
-	public boolean isDirty() {
-		return dirty;
-	}
-
-	/**
-	 * Marks this cell editor as dirty.
-	 *
-	 * @since 2.1
-	 */
-	protected void markDirty() {
-		dirty = true;
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * find action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if find is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isFindEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * paste action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if paste is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isPasteEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * redo action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if redo is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isRedoEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * select all action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if select all is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isSelectAllEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns <code>true</code> if this cell editor is able to perform the
-	 * undo action.
-	 * <p>
-	 * This default implementation always returns <code>false</code>.
-	 * </p>
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 *
-	 * @return <code>true</code> if undo is possible, <code>false</code>
-	 *         otherwise
-	 */
-	public boolean isUndoEnabled() {
-		return false;
-	}
-
-	/**
-	 * Returns whether this cell editor has a valid value. The default value is
-	 * false.
-	 *
-	 * @return <code>true</code> if the value is valid, and <code>false</code>
-	 *         if invalid
-	 *
-	 * @see #setValueValid(boolean)
-	 */
-	public boolean isValueValid() {
-		return valid;
-	}
-
-	/**
-	 * Processes a key release event that occurred in this cell editor.
-	 * <p>
-	 * The default implementation of this framework method cancels editing when
-	 * the ESC key is pressed. When the RETURN key is pressed the current value
-	 * is applied and the cell editor deactivates. Subclasses should call this
-	 * method at appropriate times. Subclasses may also extend or reimplement.
-	 * </p>
-	 *
-	 * @param keyEvent
-	 *            the key event
-	 */
-	protected void keyReleaseOccured(KeyEvent keyEvent) {
-		if (keyEvent.character == '\u001b') { // Escape character
-			fireCancelEditor();
-		} else if (keyEvent.character == '\r') { // Return key
-			fireApplyEditorValue();
-			deactivate();
-		}
-	}
-
-	/**
-	 * Processes a focus lost event that occurred in this cell editor.
-	 * <p>
-	 * The default implementation of this framework method applies the current
-	 * value and deactivates the cell editor. Subclasses should call this method
-	 * at appropriate times. Subclasses may also extend or reimplement.
-	 * </p>
-	 */
-	protected void focusLost() {
-		if (isActivated()) {
-			fireApplyEditorValue();
-			deactivate();
-		}
-	}
-
-	/**
-	 * Performs the copy action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performCopy() {
-	}
-
-	/**
-	 * Performs the cut action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performCut() {
-	}
-
-	/**
-	 * Performs the delete action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performDelete() {
-	}
-
-	/**
-	 * Performs the find action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performFind() {
-	}
-
-	/**
-	 * Performs the paste action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performPaste() {
-	}
-
-	/**
-	 * Performs the redo action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performRedo() {
-	}
-
-	/**
-	 * Performs the select all action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performSelectAll() {
-	}
-
-	/**
-	 * Performs the undo action. This default implementation does nothing.
-	 * <p>
-	 * Subclasses may override
-	 * </p>
-	 */
-	public void performUndo() {
-	}
-
-	/**
-	 * Removes the given listener from this cell editor. Has no affect if an
-	 * identical listener is not registered.
-	 *
-	 * @param listener
-	 *            a cell editor listener
-	 */
-	public void removeListener(ICellEditorListener listener) {
-		listeners.remove(listener);
-	}
-
-	/**
-	 * Removes the given property change listener from this cell editor. Has no
-	 * affect if an identical property change listener is not registered.
-	 *
-	 * @param listener
-	 *            a property change listener
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		propertyChangeListeners.remove(listener);
-	}
-
-	/**
-	 * Sets or clears the current error message for this cell editor.
-	 * <p>
-	 * No formatting is done here, the message to be set is expected to be fully
-	 * formatted before being passed in.
-	 * </p>
-	 *
-	 * @param message
-	 *            the error message, or <code>null</code> to clear
-	 */
-	protected void setErrorMessage(String message) {
-		errorMessage = message;
-	}
-
-	/**
-	 * Sets the focus to the cell editor's control.
-	 */
-	public void setFocus() {
-		doSetFocus();
-	}
-
-	/**
-	 * Sets the input validator for this cell editor.
-	 *
-	 * @param validator
-	 *            the input validator, or <code>null</code> if none
-	 */
-	public void setValidator(ICellEditorValidator validator) {
-		this.validator = validator;
-	}
-
-	/**
-	 * Sets this cell editor's value.
-	 *
-	 * @param value
-	 *            the value of this cell editor
-	 */
-	public final void setValue(Object value) {
-		valid = isCorrect(value);
-		dirty = false;
-		doSetValue(value);
-	}
-
-	/**
-	 * Sets the valid state of this cell editor. The default value is false.
-	 * Subclasses should call this method on construction.
-	 *
-	 * @param valid
-	 *            <code>true</code> if the current value is valid, and
-	 *            <code>false</code> if invalid
-	 *
-	 * @see #isValueValid
-	 */
-	protected void setValueValid(boolean valid) {
-		this.valid = valid;
-	}
-
-	/**
-	 * The value has changed. Updates the valid state flag, marks this cell
-	 * editor as dirty, and notifies all registered cell editor listeners of a
-	 * value change.
-	 *
-	 * @param oldValidState
-	 *            the valid state before the end user changed the value
-	 * @param newValidState
-	 *            the current valid state
-	 * @see ICellEditorListener#editorValueChanged
-	 */
-	protected void valueChanged(boolean oldValidState, boolean newValidState) {
-		valid = newValidState;
-		dirty = true;
-		fireEditorValueChanged(oldValidState, newValidState);
-	}
-
-	/**
-	 * Activate the editor but also inform the editor which event triggered its
-	 * activation. <b>The default implementation simply calls
-	 * {@link #activate()}</b>
-	 *
-	 * @param activationEvent
-	 *            the editor activation event
-	 * @since 3.3
-	 */
-	public void activate(ColumnViewerEditorActivationEvent activationEvent) {
-		activate();
-	}
-
-	/**
-	 * The default implementation of this method returns true. Subclasses that
-	 * hook their own focus listener should override this method and return
-	 * false. See also bug 58777.
-	 *
-	 * @return <code>true</code> to indicate that a focus listener has to be
-	 *         attached
-	 * @since 3.4
-	 */
-	protected boolean dependsOnExternalFocusListener() {
-		return true;
-	}
-
-	/**
-	 * @param event
-	 *            deactivation event
-	 * @since 3.4
-	 *
-	 */
-	protected void deactivate(ColumnViewerEditorDeactivationEvent event) {
-		deactivate();
-	}
-
-	/**
-	 * Returns the duration, in milliseconds, between the mouse button click
-	 * that activates the cell editor and a subsequent mouse button click that
-	 * will be considered a <em>double click</em> on the underlying control.
-	 * Clients may override, in particular, clients can return 0 to denote that
-	 * two subsequent mouse clicks in a cell should not be interpreted as a
-	 * double click.
-	 *
-	 * @return the timeout or <code>0</code>
-	 * @since 3.4
-	 */
-	protected int getDoubleClickTimeout() {
-		return Display.getCurrent().getDoubleClickTime();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellLabelProvider.java
deleted file mode 100644
index 1333f95..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellLabelProvider.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											- bug fixes for 182443
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * The CellLabelProvider is an abstract implementation of a label provider for
- * structured viewers.
- * 
- * <p><b>This class is intended to be subclassed</b></p>
- * 
- * @since 3.3
- * @see ColumnLabelProvider as a concrete implementation
- */
-public abstract class CellLabelProvider extends BaseLabelProvider {
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public CellLabelProvider() {
-		super();
-	}
-
-	/**
-	 * Create a ViewerLabelProvider for the column at index
-	 * 
-	 * @param labelProvider
-	 *            The labelProvider to convert
-	 * @return ViewerLabelProvider
-	 */
-	/* package */static CellLabelProvider createViewerLabelProvider(
-			ColumnViewer viewer, IBaseLabelProvider labelProvider) {
-
-		boolean noColumnTreeViewer = viewer instanceof AbstractTreeViewer && viewer
-				.doGetColumnCount() == 0;
-
-		if (!noColumnTreeViewer
-				&& (labelProvider instanceof ITableLabelProvider
-						|| labelProvider instanceof ITableColorProvider || labelProvider instanceof ITableFontProvider))
-			return new TableColumnViewerLabelProvider(labelProvider);
-		if (labelProvider instanceof CellLabelProvider)
-			return (CellLabelProvider) labelProvider;
-		return new WrappedViewerLabelProvider(labelProvider);
-
-	}
-
-	/**
-	 * Get the image displayed in the tool tip for object.
-	 * 
-	 * <p>
-	 * <b>If {@link #getToolTipText(Object)} and
-	 * {@link #getToolTipImage(Object)} both return <code>null</code> the
-	 * control is set back to standard behavior</b>
-	 * </p>
-	 * 
-	 * @param object
-	 *            the element for which the tool tip is shown
-	 * @return {@link Image} or <code>null</code> if there is not image.
-	 */
-
-	public Image getToolTipImage(Object object) {
-		return null;
-	}
-
-	/**
-	 * Get the text displayed in the tool tip for object.
-	 * 
-	 * <p>
-	 * <b>If {@link #getToolTipText(Object)} and
-	 * {@link #getToolTipImage(Object)} both return <code>null</code> the
-	 * control is set back to standard behavior</b>
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element for which the tool tip is shown
-	 * @return the {@link String} or <code>null</code> if there is not text to
-	 *         display
-	 */
-	public String getToolTipText(Object element) {
-		return null;
-	}
-
-	/**
-	 * Return the background color used for the tool tip
-	 * 
-	 * @param object
-	 *            the {@link Object} for which the tool tip is shown
-	 * 
-	 * @return the {@link Color} used or <code>null</code> if you want to use
-	 *         the default color {@link SWT#COLOR_INFO_BACKGROUND}
-	 * @see SWT#COLOR_INFO_BACKGROUND
-	 */
-	public Color getToolTipBackgroundColor(Object object) {
-		return null;
-	}
-
-	/**
-	 * The foreground color used to display the the text in the tool tip
-	 * 
-	 * @param object
-	 *            the {@link Object} for which the tool tip is shown
-	 * @return the {@link Color} used or <code>null</code> if you want to use
-	 *         the default color {@link SWT#COLOR_INFO_FOREGROUND}
-	 * @see SWT#COLOR_INFO_FOREGROUND
-	 */
-	public Color getToolTipForegroundColor(Object object) {
-		return null;
-	}
-
-	/**
-	 * Get the {@link Font} used to display the tool tip
-	 * 
-	 * @param object
-	 *            the element for which the tool tip is shown
-	 * @return {@link Font} or <code>null</code> if the default font is to be
-	 *         used.
-	 */
-	public Font getToolTipFont(Object object) {
-		return null;
-	}
-
-	/**
-	 * Return the amount of pixels in x and y direction you want the tool tip to
-	 * pop up from the mouse pointer. The default shift is 10px right and 0px
-	 * below your mouse cursor. Be aware of the fact that you should at least
-	 * position the tool tip 1px right to your mouse cursor else click events
-	 * may not get propagated properly.
-	 * 
-	 * @param object
-	 *            the element for which the tool tip is shown
-	 * @return {@link Point} to shift of the tool tip or <code>null</code> if the
-	 *         default shift should be used.
-	 */
-	public Point getToolTipShift(Object object) {
-		return null;
-	}
-
-	/**
-	 * Return whether or not to use the native tool tip. If you switch to native
-	 * tool tips only the value from {@link #getToolTipText(Object)} is used all
-	 * other features from custom tool tips are not supported.
-	 * 
-	 * <p>
-	 * To reset the control to native behavior you should return
-	 * <code>true</code> from this method and <code>null</code> from
-	 * {@link #getToolTipText(Object)} or <code>null</code> from
-	 * {@link #getToolTipText(Object)} and {@link #getToolTipImage(Object)} at
-	 * the same time
-	 * </p>
-	 * 
-	 * @param object
-	 *            the {@link Object} for which the tool tip is shown
-	 * @return <code>true</code> if native tool tips should be used
-	 */
-	public boolean useNativeToolTip(Object object) {
-		return false;
-	}
-
-	/**
-	 * The time in milliseconds the tool tip is shown for.
-	 * 
-	 * @param object
-	 *            the {@link Object} for which the tool tip is shown
-	 * @return time in milliseconds the tool tip is shown for
-	 */
-	public int getToolTipTimeDisplayed(Object object) {
-		return 0;
-	}
-
-	/**
-	 * The time in milliseconds until the tool tip is displayed.
-	 * 
-	 * @param object
-	 *            the {@link Object} for which the tool tip is shown
-	 * @return time in milliseconds until the tool tip is displayed
-	 */
-	public int getToolTipDisplayDelayTime(Object object) {
-		return 0;
-	}
-
-	/**
-	 * The {@link SWT} style used to create the {@link CLabel} (see there for
-	 * supported styles). By default {@link SWT#SHADOW_NONE} is used.
-	 * 
-	 * @param object
-	 *            the element for which the tool tip is shown
-	 * @return the style used to create the label
-	 * @see CLabel
-	 */
-	public int getToolTipStyle(Object object) {
-		return SWT.SHADOW_NONE;
-	}
-
-	/**
-	 * Update the label for cell.
-	 * 
-	 * @param cell
-	 *            {@link ViewerCell}
-	 */
-	public abstract void update(ViewerCell cell);
-	
-	/**
-	 * Initialize this label provider for use with the given column viewer for
-	 * the given column. Subclasses may extend but should call the super
-	 * implementation (which at this time is empty but may be changed in the
-	 * future).
-	 * 
-	 * @param viewer
-	 *            the viewer
-	 * @param column
-	 *            the column, or <code>null</code> if a column is not
-	 *            available.
-	 * 
-	 * @since 3.4
-	 */
-	protected void initialize(ColumnViewer viewer, ViewerColumn column) {
-	}
-
-	/**
-	 * Dispose of this label provider which was used with the given column
-	 * viewer and column. Subclasses may extend but should call the super
-	 * implementation (which calls {@link #dispose()}).
-	 * 
-	 * @param viewer
-	 *            the viewer
-	 * @param column
-	 *            the column, or <code>null</code> if a column is not
-	 *            available.
-	 * 
-	 * @since 3.4
-	 */
-	public void dispose(ColumnViewer viewer, ViewerColumn column) {
-		dispose();
-	}
-	
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellNavigationStrategy.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellNavigationStrategy.java
deleted file mode 100644
index b1d562f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CellNavigationStrategy.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * This class implementation the strategy how the table is navigated using the
- * keyboard.
- * 
- * <p>
- * <b>Subclasses can implement their custom navigation algorithms</b>
- * </p>
- * 
- * @since 3.3
- * 
- */
-public class CellNavigationStrategy {
-	/**
-	 * is the given event an event which moves the selection to another cell
-	 * 
-	 * @param viewer
-	 *            the viewer we are working for
-	 * @param event
-	 *            the key event
-	 * @return <code>true</code> if a new cell is searched
-	 */
-	public boolean isNavigationEvent(ColumnViewer viewer, Event event) {
-		switch (event.keyCode) {
-		case SWT.ARROW_UP:
-		case SWT.ARROW_DOWN:
-		case SWT.ARROW_LEFT:
-		case SWT.ARROW_RIGHT:
-		case SWT.HOME:
-		case SWT.PAGE_DOWN:
-		case SWT.PAGE_UP:
-		case SWT.END:
-			return true;
-		default:
-			return false;
-		}
-	}
-
-	/**
-	 * @param viewer
-	 *            the viewer we are working for
-	 * @param cellToCollapse
-	 *            the cell to collapse
-	 * @param event
-	 *            the key event
-	 * @return <code>true</code> if this event triggers collapsing of a node
-	 */
-	public boolean isCollapseEvent(ColumnViewer viewer,
-			ViewerCell cellToCollapse, Event event) {
-		return false;
-	}
-
-	/**
-	 * @param viewer
-	 *            the viewer we are working for
-	 * @param cellToExpand
-	 *            the cell to expand
-	 * @param event
-	 *            the key event
-	 * @return <code>true</code> if this event triggers expanding of a node
-	 */
-	public boolean isExpandEvent(ColumnViewer viewer, ViewerCell cellToExpand,
-			Event event) {
-		return false;
-	}
-
-	/**
-	 * @param viewer
-	 *            the viewer working for
-	 * @param cellToExpand
-	 *            the cell the user wants to expand
-	 * @param event
-	 *            the event triggering the expansion
-	 */
-	public void expand(ColumnViewer viewer, ViewerCell cellToExpand, Event event) {
-
-	}
-
-	/**
-	 * @param viewer
-	 *            the viewer working for
-	 * @param cellToCollapse
-	 *            the cell the user wants to collapse
-	 * @param event
-	 *            the event triggering the expansion
-	 */
-	public void collapse(ColumnViewer viewer, ViewerCell cellToCollapse,
-			Event event) {
-
-	}
-
-	/**
-	 * @param viewer
-	 *            the viewer we are working for
-	 * @param currentSelectedCell
-	 *            the cell currently selected
-	 * @param event
-	 *            the key event
-	 * @return the cell which is highlighted next or <code>null</code> if the
-	 *         default implementation is taken. E.g. it's fairly impossible to
-	 *         react on PAGE_DOWN requests
-	 */
-	public ViewerCell findSelectedCell(ColumnViewer viewer,
-			ViewerCell currentSelectedCell, Event event) {
-
-		switch (event.keyCode) {
-		case SWT.ARROW_UP:
-			if (currentSelectedCell != null) {
-				return currentSelectedCell.getNeighbor(ViewerCell.ABOVE, false);
-			}
-			break;
-		case SWT.ARROW_DOWN:
-			if (currentSelectedCell != null) {
-				return currentSelectedCell.getNeighbor(ViewerCell.BELOW, false);
-			}
-			break;
-		case SWT.ARROW_LEFT:
-			if (currentSelectedCell != null) {
-				return currentSelectedCell.getNeighbor(ViewerCell.LEFT, true);
-			}
-			break;
-		case SWT.ARROW_RIGHT:
-			if (currentSelectedCell != null) {
-				return currentSelectedCell.getNeighbor(ViewerCell.RIGHT, true);
-			}
-			break;
-		}
-
-		return null;
-	}
-
-	/**
-	 * This method is consulted to decide whether an event has to be canceled or
-	 * not. By default events who collapse/expand tree-nodes are canceled
-	 * 
-	 * @param viewer
-	 *            the viewer working for
-	 * @param event
-	 *            the event
-	 * @return <code>true</code> if the event has to be canceled
-	 */
-	public boolean shouldCancelEvent(ColumnViewer viewer, Event event) {
-		return event.keyCode == SWT.ARROW_LEFT
-				|| event.keyCode == SWT.ARROW_RIGHT;
-	}
-
-	/**
-	 * This method is called by the framework to initialize this navigation
-	 * strategy object. Subclasses may extend.
-	 */
-	protected void init() {
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckStateChangedEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckStateChangedEvent.java
deleted file mode 100644
index a916588..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckStateChangedEvent.java
+++ /dev/null
@@ -1,79 +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.jface.viewers;
-
-import java.util.EventObject;
-
-/**
- * Event object describing a change to the checked state
- * of a viewer element.
- *
- * @see ICheckStateListener
- */
-public class CheckStateChangedEvent extends EventObject {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3256443603340244789L;
-
-    /**
-     * The viewer element.
-     */
-    private Object element;
-
-    /**
-     * The checked state.
-     */
-    private boolean state;
-
-    /**
-     * Creates a new event for the given source, element, and checked state.
-     *
-     * @param source the source
-     * @param element the element
-     * @param state the checked state
-     */
-    public CheckStateChangedEvent(ICheckable source, Object element,
-            boolean state) {
-        super(source);
-        this.element = element;
-        this.state = state;
-    }
-
-    /**
-     * Returns the checkable that is the source of this event.
-     *
-     * @return the originating checkable
-     */
-    public ICheckable getCheckable() {
-        return (ICheckable) source;
-    }
-
-    /**
-     * Returns the checked state of the element.
-     *
-     * @return the checked state
-     */
-    public boolean getChecked() {
-        return state;
-    }
-
-    /**
-     * Returns the element whose check state changed.
-     *
-     * @return the element
-     */
-    public Object getElement() {
-        return element;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxCellEditor.java
deleted file mode 100644
index 2b32402..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxCellEditor.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A cell editor that manages a checkbox.
- * The cell editor's value is a boolean.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Note that this implementation simply fakes it and does does not create
- * any new controls. The mere activation of this editor means that the value
- * of the check box is being toggled by the end users; the listener method
- * <code>applyEditorValue</code> is immediately called to signal the change.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class CheckboxCellEditor extends CellEditor {
-
-    /**
-     * The checkbox value.
-     */
-    /* package */
-    boolean value = false;
-
-    /**
-     * Default CheckboxCellEditor style
-     */
-    private static final int defaultStyle = SWT.NONE;
-
-    /**
-     * Creates a new checkbox cell editor with no control
-     * @since 2.1
-     */
-    public CheckboxCellEditor() {
-        setStyle(defaultStyle);
-    }
-
-    /**
-     * Creates a new checkbox cell editor parented under the given control.
-     * The cell editor value is a boolean value, which is initially <code>false</code>.
-     * Initially, the cell editor has no cell validator.
-     *
-     * @param parent the parent control
-     */
-    public CheckboxCellEditor(Composite parent) {
-        this(parent, defaultStyle);
-    }
-
-    /**
-     * Creates a new checkbox cell editor parented under the given control.
-     * The cell editor value is a boolean value, which is initially <code>false</code>.
-     * Initially, the cell editor has no cell validator.
-     *
-     * @param parent the parent control
-     * @param style the style bits
-     * @since 2.1
-     */
-    public CheckboxCellEditor(Composite parent, int style) {
-        super(parent, style);
-    }
-
-    /**
-     * The <code>CheckboxCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method simulates
-     * the toggling of the checkbox control and notifies
-     * listeners with <code>ICellEditorListener.applyEditorValue</code>.
-     */
-    public void activate() {
-        value = !value;
-        fireApplyEditorValue();
-    }
-
-    /**
-     * The <code>CheckboxCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method does
-     * nothing and returns <code>null</code>.
-     */
-    protected Control createControl(Composite parent) {
-        return null;
-    }
-
-    /**
-     * The <code>CheckboxCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method returns
-     * the checkbox setting wrapped as a <code>Boolean</code>.
-     *
-     * @return the Boolean checkbox value
-     */
-    protected Object doGetValue() {
-        return value ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected void doSetFocus() {
-        // Ignore
-    }
-
-    /**
-     * The <code>CheckboxCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method accepts
-     * a value wrapped as a <code>Boolean</code>.
-     *
-     * @param value a Boolean value
-     */
-    protected void doSetValue(Object value) {
-        Assert.isTrue(value instanceof Boolean);
-        this.value = ((Boolean) value).booleanValue();
-    }
-
-    public void activate(ColumnViewerEditorActivationEvent activationEvent) {
-    	if (activationEvent.eventType != ColumnViewerEditorActivationEvent.TRAVERSAL) {
-    		super.activate(activationEvent);
-    	}
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTableViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTableViewer.java
deleted file mode 100644
index 579d2bf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTableViewer.java
+++ /dev/null
@@ -1,488 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A concrete viewer based on an SWT <code>Table</code>
- * control with checkboxes on each node.
- * <p>This class supports setting an {@link ICheckStateProvider} to 
- * set the checkbox states. To see standard SWT behavior, view
- * SWT Snippet274.</p>
- * <p>
- * This class is not intended to be subclassed outside the viewer framework. 
- * It is designed to be instantiated with a pre-existing SWT table control and configured
- * with a domain-specific content provider, label provider, element filter (optional),
- * and element sorter (optional).
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class CheckboxTableViewer extends TableViewer implements ICheckable {
-
-    /**
-     * List of check state listeners (element type: <code>ICheckStateListener</code>).
-     */
-    private ListenerList checkStateListeners = new ListenerList();
-    
-    /**
-     * Provides the desired state of the check boxes.
-     */
-    private ICheckStateProvider checkStateProvider;
-
-    /**
-     * Creates a table viewer on a newly-created table control under the given parent.
-     * The table control is created using the SWT style bits: 
-     * <code>SWT.CHECK</code> and <code>SWT.BORDER</code>.
-     * The table has one column.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     * <p>
-     * This is equivalent to calling <code>new CheckboxTableViewer(parent, SWT.BORDER)</code>.
-     * See that constructor for more details.
-     * </p>
-     *
-     * @param parent the parent control
-     * 
-     * @deprecated use newCheckList(Composite, int) or new CheckboxTableViewer(Table)
-     *   instead (see below for details)
-     */
-    public CheckboxTableViewer(Composite parent) {
-        this(parent, SWT.BORDER);
-    }
-
-    /**
-     * Creates a table viewer on a newly-created table control under the given parent.
-     * The table control is created using the given SWT style bits, plus the 
-     * <code>SWT.CHECK</code> style bit.
-     * The table has one column. 
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     * <p>
-     * This also adds a <code>TableColumn</code> for the single column, 
-     * and sets a <code>TableLayout</code> on the table which sizes the column to fill 
-     * the table for its initial sizing, but does nothing on subsequent resizes.
-     * </p>
-     * <p>
-     * If the caller just needs to show a single column with no header,
-     * it is preferable to use the <code>newCheckList</code> factory method instead,
-     * since SWT properly handles the initial sizing and subsequent resizes in this case.
-     * </p>
-     * <p>
-     * If the caller adds its own columns, uses <code>Table.setHeadersVisible(true)</code>, 
-     * or needs to handle dynamic resizing of the table, it is recommended to  
-     * create the <code>Table</code> itself, specifying the <code>SWT.CHECK</code> style bit 
-     * (along with any other style bits needed), and use <code>new CheckboxTableViewer(Table)</code> 
-     * rather than this constructor.
-     * </p>
-     * 
-     * @param parent the parent control
-     * @param style SWT style bits
-     * 
-     * @deprecated use newCheckList(Composite, int) or new CheckboxTableViewer(Table) 
-     *   instead (see above for details)
-     */
-    public CheckboxTableViewer(Composite parent, int style) {
-        this(createTable(parent, style));
-    }
-
-    /**
-     * Creates a table viewer on a newly-created table control under the given parent.
-     * The table control is created using the given SWT style bits, plus the 
-     * <code>SWT.CHECK</code> style bit.
-     * The table shows its contents in a single column, with no header.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     * <p>
-     * No <code>TableColumn</code> is added. SWT does not require a 
-     * <code>TableColumn</code> if showing only a single column with no header.
-     * SWT correctly handles the initial sizing and subsequent resizes in this case.
-     *
-     * @param parent the parent control
-     * @param style SWT style bits
-     * 
-     * @since 2.0
-     * @return CheckboxTableViewer
-     */
-    public static CheckboxTableViewer newCheckList(Composite parent, int style) {
-        Table table = new Table(parent, SWT.CHECK | style);
-        return new CheckboxTableViewer(table);
-    }
-
-    /**
-     * Creates a table viewer on the given table control.
-     * The <code>SWT.CHECK</code> style bit must be set on the given table control.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param table the table control
-     */
-    public CheckboxTableViewer(Table table) {
-        super(table);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public void addCheckStateListener(ICheckStateListener listener) {
-        checkStateListeners.add(listener);
-    }
-    
-    /**
-     * Sets the {@link ICheckStateProvider} for this {@link CheckboxTreeViewer}.
-     * The check state provider will supply the logic for deciding whether the
-     * check box associated with each item should be checked, grayed or 
-     * unchecked. 
-     * @param checkStateProvider	The provider.
-     * @since 3.5
-     */
-    public void setCheckStateProvider(ICheckStateProvider checkStateProvider) {
-    	this.checkStateProvider = checkStateProvider;
-    	refresh();
-    }
-    
-    /*
-     * Extends this method to update check box states.
-     */
-    protected void doUpdateItem(Widget widget, Object element, boolean fullMap) {
-    	super.doUpdateItem(widget, element, fullMap);
-    	if(!widget.isDisposed()) {
-    		if(checkStateProvider != null) {
-				setChecked(element, checkStateProvider.isChecked(element));
-				setGrayed(element, checkStateProvider.isGrayed(element));
-			}
-    	}
-	}
-
-	/**
-     * Creates a new table control with one column.
-     *
-     * @param parent the parent control
-     * @param style style bits
-     * @return a new table control
-     */
-    protected static Table createTable(Composite parent, int style) {
-        Table table = new Table(parent, SWT.CHECK | style);
-
-        // Although this table column is not needed, and can cause resize problems,
-        // it can't be removed since this would be a breaking change against R1.0.
-        // See bug 6643 for more details.
-        new TableColumn(table, SWT.NONE);
-        TableLayout layout = new TableLayout();
-        layout.addColumnData(new ColumnWeightData(100));
-        table.setLayout(layout);
-
-        return table;
-    }
-
-    /**
-     * Notifies any check state listeners that a check state changed  has been received.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param event a check state changed event
-     *
-     * @see ICheckStateListener#checkStateChanged
-     */
-    private void fireCheckStateChanged(final CheckStateChangedEvent event) {
-        Object[] array = checkStateListeners.getListeners();
-        for (int i = 0; i < array.length; i++) {
-            final ICheckStateListener l = (ICheckStateListener) array[i];
-            SafeRunnable.run(new SafeRunnable() {
-                public void run() {
-                    l.checkStateChanged(event);
-                }
-            });
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public boolean getChecked(Object element) {
-        Widget widget = findItem(element);
-        if (widget instanceof TableItem) {
-            return ((TableItem) widget).getChecked();
-        }
-        return false;
-    }
-
-    /**
-     * Returns a list of elements corresponding to checked table items in this
-     * viewer.
-     * <p>
-     * This method is typically used when preserving the interesting
-     * state of a viewer; <code>setCheckedElements</code> is used during the restore.
-     * </p>
-     *
-     * @return the array of checked elements
-     * @see #setCheckedElements
-     */
-    public Object[] getCheckedElements() {
-        TableItem[] children = getTable().getItems();
-        ArrayList v = new ArrayList(children.length);
-        for (int i = 0; i < children.length; i++) {
-            TableItem item = children[i];
-            if (item.getChecked()) {
-				v.add(item.getData());
-			}
-        }
-        return v.toArray();
-    }
-
-    /**
-     * Returns the grayed state of the given element.
-     *
-     * @param element the element
-     * @return <code>true</code> if the element is grayed,
-     *   and <code>false</code> if not grayed
-     */
-    public boolean getGrayed(Object element) {
-        Widget widget = findItem(element);
-        if (widget instanceof TableItem) {
-            return ((TableItem) widget).getGrayed();
-        }
-        return false;
-    }
-
-    /**
-     * Returns a list of elements corresponding to grayed nodes in this
-     * viewer.
-     * <p>
-     * This method is typically used when preserving the interesting
-     * state of a viewer; <code>setGrayedElements</code> is used during the restore.
-     * </p>
-     *
-     * @return the array of grayed elements
-     * @see #setGrayedElements
-     */
-    public Object[] getGrayedElements() {
-        TableItem[] children = getTable().getItems();
-        List v = new ArrayList(children.length);
-        for (int i = 0; i < children.length; i++) {
-            TableItem item = children[i];
-            if (item.getGrayed()) {
-				v.add(item.getData());
-			}
-        }
-        return v.toArray();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     */
-    public void handleSelect(SelectionEvent event) {
-        if (event.detail == SWT.CHECK) {
-            super.handleSelect(event); // this will change the current selection
-
-            TableItem item = (TableItem) event.item;
-            Object data = item.getData();
-            if (data != null) {
-                fireCheckStateChanged(new CheckStateChangedEvent(this, data,
-                        item.getChecked()));
-            }
-        } else {
-			super.handleSelect(event);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    protected void preservingSelection(Runnable updateCode) {
-		if (!getPreserveSelection()) {
-			return;
-		}
-    	//If a check provider is present, it determines the state across input
-    	//changes.
-    	if(checkStateProvider != null) {
-    		//Try to preserve the selection, let the ICheckProvider manage 
-    		//the check states
-    		super.preservingSelection(updateCode);
-    		return;
-    	}
-    	
-    	//Preserve checked items
-        TableItem[] children = getTable().getItems();
-        CustomHashtable checked = newHashtable(children.length * 2 + 1);
-        CustomHashtable grayed = newHashtable(children.length * 2 + 1);
-
-        for (int i = 0; i < children.length; i++) {
-            TableItem item = children[i];
-            Object data = item.getData();
-            if (data != null) {
-                if (item.getChecked()) {
-					checked.put(data, data);
-				}
-                if (item.getGrayed()) {
-					grayed.put(data, data);
-				}
-            }
-        }
-
-        super.preservingSelection(updateCode);
-
-        children = getTable().getItems();
-        for (int i = 0; i < children.length; i++) {
-            TableItem item = children[i];
-            Object data = item.getData();
-            if (data != null) {
-                item.setChecked(checked.containsKey(data));
-                item.setGrayed(grayed.containsKey(data));
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public void removeCheckStateListener(ICheckStateListener listener) {
-        checkStateListeners.remove(listener);
-    }
-
-    /**
-     * Sets to the given value the checked state for all elements in this viewer.
-     * Does not fire events to check state listeners.
-     *
-     * @param state <code>true</code> if the element should be checked,
-     *  and <code>false</code> if it should be unchecked
-     */
-    public void setAllChecked(boolean state) {
-        TableItem[] children = getTable().getItems();
-        for (int i = 0; i < children.length; i++) {
-            TableItem item = children[i];
-            item.setChecked(state);
-        }
-    }
-
-    /**
-     * Sets to the given value the grayed state for all elements in this viewer.
-     *
-     * @param state <code>true</code> if the element should be grayed,
-     *  and <code>false</code> if it should be ungrayed
-     */
-    public void setAllGrayed(boolean state) {
-        TableItem[] children = getTable().getItems();
-        for (int i = 0; i < children.length; i++) {
-            TableItem item = children[i];
-            item.setGrayed(state);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public boolean setChecked(Object element, boolean state) {
-        Assert.isNotNull(element);
-        Widget widget = findItem(element);
-        if (widget instanceof TableItem) {
-            ((TableItem) widget).setChecked(state);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Sets which nodes are checked in this viewer.
-     * The given list contains the elements that are to be checked;
-     * all other nodes are to be unchecked.
-     * Does not fire events to check state listeners.
-     * <p>
-     * This method is typically used when restoring the interesting
-     * state of a viewer captured by an earlier call to <code>getCheckedElements</code>.
-     * </p>
-     *
-     * @param elements the list of checked elements (element type: <code>Object</code>)
-     * @see #getCheckedElements
-     */
-    public void setCheckedElements(Object[] elements) {
-        assertElementsNotNull(elements);
-        CustomHashtable set = newHashtable(elements.length * 2 + 1);
-        for (int i = 0; i < elements.length; ++i) {
-            set.put(elements[i], elements[i]);
-        }
-        TableItem[] items = getTable().getItems();
-        for (int i = 0; i < items.length; ++i) {
-            TableItem item = items[i];
-            Object element = item.getData();
-            if (element != null) {
-                boolean check = set.containsKey(element);
-                // only set if different, to avoid flicker
-                if (item.getChecked() != check) {
-                    item.setChecked(check);
-                }
-            }
-        }
-    }
-
-    /**
-     * Sets the grayed state for the given element in this viewer.
-     *
-     * @param element the element
-     * @param state <code>true</code> if the item should be grayed,
-     *  and <code>false</code> if it should be ungrayed
-     * @return <code>true</code> if the element is visible and the gray
-     *  state could be set, and <code>false</code> otherwise
-     */
-    public boolean setGrayed(Object element, boolean state) {
-        Assert.isNotNull(element);
-        Widget widget = findItem(element);
-        if (widget instanceof TableItem) {
-            ((TableItem) widget).setGrayed(state);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Sets which nodes are grayed in this viewer.
-     * The given list contains the elements that are to be grayed;
-     * all other nodes are to be ungrayed.
-     * <p>
-     * This method is typically used when restoring the interesting
-     * state of a viewer captured by an earlier call to <code>getGrayedElements</code>.
-     * </p>
-     *
-     * @param elements the array of grayed elements
-     *
-     * @see #getGrayedElements
-     */
-    public void setGrayedElements(Object[] elements) {
-        assertElementsNotNull(elements);
-        CustomHashtable set = newHashtable(elements.length * 2 + 1);
-        for (int i = 0; i < elements.length; ++i) {
-            set.put(elements[i], elements[i]);
-        }
-        TableItem[] items = getTable().getItems();
-        for (int i = 0; i < items.length; ++i) {
-            TableItem item = items[i];
-            Object element = item.getData();
-            if (element != null) {
-                boolean gray = set.containsKey(element);
-                // only set if different, to avoid flicker
-                if (item.getGrayed() != gray) {
-                    item.setGrayed(gray);
-                }
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTreeViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTreeViewer.java
deleted file mode 100644
index b135e53..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CheckboxTreeViewer.java
+++ /dev/null
@@ -1,649 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A concrete tree-structured viewer based on an SWT <code>Tree</code>
- * control with checkboxes on each node.
- * <p>This class supports setting an {@link ICheckStateProvider} to 
- * set the checkbox states. To see standard SWT behavior, view
- * SWT Snippet274.</p>
- * <p>
- * This class is not intended to be subclassed outside the viewer framework. 
- * It is designed to be instantiated with a pre-existing SWT tree control and configured
- * with a domain-specific content provider, label provider, element filter (optional),
- * and element sorter (optional).
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class CheckboxTreeViewer extends TreeViewer implements ICheckable {
-
-    /**
-     * List of check state listeners (element type: <code>ICheckStateListener</code>).
-     */
-    private ListenerList checkStateListeners = new ListenerList();
-    
-    /**
-     * Provides the desired state of the check boxes.
-     */
-    private ICheckStateProvider checkStateProvider;
-
-    /**
-     * Last item clicked on, or <code>null</code> if none.
-     */
-    private TreeItem lastClickedItem = null;
-
-    /**
-     * Creates a tree viewer on a newly-created tree control under the given parent.
-     * The tree control is created using the SWT style bits: <code>CHECK</code> and <code>BORDER</code>.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     */
-    public CheckboxTreeViewer(Composite parent) {
-        this(parent, SWT.BORDER);
-    }
-
-    /**
-     * Creates a tree viewer on a newly-created tree control under the given parent.
-     * The tree control is created using the given SWT style bits, plus the <code>CHECK</code> style bit.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     * @param style the SWT style bits
-     */
-    public CheckboxTreeViewer(Composite parent, int style) {
-        this(new Tree(parent, SWT.CHECK | style));
-    }
-
-    /**
-     * Creates a tree viewer on the given tree control.
-     * The <code>SWT.CHECK</code> style bit must be set on the given tree control.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param tree the tree control
-     */
-    public CheckboxTreeViewer(Tree tree) {
-        super(tree);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public void addCheckStateListener(ICheckStateListener listener) {
-        checkStateListeners.add(listener);
-    }
-    
-    /**
-     * Sets the {@link ICheckStateProvider} for this {@link CheckboxTreeViewer}.
-     * The check state provider will supply the logic for deciding whether the
-     * check box associated with each item should be checked, grayed or 
-     * unchecked. 
-     * @param checkStateProvider	The provider.
-     * @since 3.5
-     */
-    public void setCheckStateProvider(ICheckStateProvider checkStateProvider) {
-    	this.checkStateProvider = checkStateProvider;
-    	refresh();
-    }
-    
-    /*
-     * Extends this method to update check box states.
-     */
-    protected void doUpdateItem(Item item, Object element) {
-    	super.doUpdateItem(item, element);
-    	if(!item.isDisposed() && checkStateProvider != null) {
-			setChecked(element, checkStateProvider.isChecked(element));
-			setGrayed(element, checkStateProvider.isGrayed(element));
-    	}
-	}
-
-	/**
-     * Applies the checked and grayed states of the given widget and its
-     * descendents.
-     *
-     * @param checked a set of elements (element type: <code>Object</code>) 
-     * @param grayed a set of elements (element type: <code>Object</code>) 
-     * @param widget the widget
-     */
-    private void applyState(CustomHashtable checked, CustomHashtable grayed,
-            Widget widget) {
-        Item[] items = getChildren(widget);
-        for (int i = 0; i < items.length; i++) {
-            Item item = items[i];
-            if (item instanceof TreeItem) {
-                Object data = item.getData();
-                if (data != null) {
-                    TreeItem ti = (TreeItem) item;
-                    ti.setChecked(checked.containsKey(data));
-                    ti.setGrayed(grayed.containsKey(data));
-                }
-            }
-            applyState(checked, grayed, item);
-        }
-    }
-
-    /**
-     * Notifies any check state listeners that the check state of an element has changed.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param event a check state changed event
-     *
-     * @see ICheckStateListener#checkStateChanged
-     */
-    protected void fireCheckStateChanged(final CheckStateChangedEvent event) {
-        Object[] array = checkStateListeners.getListeners();
-        for (int i = 0; i < array.length; i++) {
-            final ICheckStateListener l = (ICheckStateListener) array[i];
-            SafeRunnable.run(new SafeRunnable() {
-                public void run() {
-                    l.checkStateChanged(event);
-                }
-            });
-        }
-
-    }
-
-    /**
-     * Gathers the checked and grayed states of the given widget and its
-     * descendents.
-     *
-     * @param checked a writable set of elements (element type: <code>Object</code>) 
-     * @param grayed a writable set of elements (element type: <code>Object</code>) 
-     * @param widget the widget
-     */
-    private void gatherState(CustomHashtable checked, CustomHashtable grayed,
-            Widget widget) {
-        Item[] items = getChildren(widget);
-        for (int i = 0; i < items.length; i++) {
-            Item item = items[i];
-            if (item instanceof TreeItem) {
-                Object data = item.getData();
-                if (data != null) {
-                    TreeItem ti = (TreeItem) item;
-                    if (ti.getChecked()) {
-						checked.put(data, data);
-					}
-                    if (ti.getGrayed()) {
-						grayed.put(data, data);
-					}
-                }
-            }
-            gatherState(checked, grayed, item);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public boolean getChecked(Object element) {
-        Widget widget = findItem(element);
-        if (widget instanceof TreeItem) {
-			return ((TreeItem) widget).getChecked();
-		}
-        return false;
-    }
-
-    /**
-     * Returns a list of checked elements in this viewer's tree, 
-     * including currently hidden ones that are marked as
-     * checked but are under a collapsed ancestor.
-     * <p>
-     * This method is typically used when preserving the interesting
-     * state of a viewer; <code>setCheckedElements</code> is used during the restore.
-     * </p>
-     *
-     * @return the array of checked elements
-     *
-     * @see #setCheckedElements
-     */
-    public Object[] getCheckedElements() {
-        ArrayList v = new ArrayList();
-        Control tree = getControl();
-        internalCollectChecked(v, tree);
-        return v.toArray();
-    }
-
-    /**
-     * Returns the grayed state of the given element.
-     *
-     * @param element the element
-     * @return <code>true</code> if the element is grayed,
-     *   and <code>false</code> if not grayed
-     */
-    public boolean getGrayed(Object element) {
-        Widget widget = findItem(element);
-        if (widget instanceof TreeItem) {
-            return ((TreeItem) widget).getGrayed();
-        }
-        return false;
-    }
-
-    /**
-     * Returns a list of grayed elements in this viewer's tree, 
-     * including currently hidden ones that are marked as
-     * grayed but are under a collapsed ancestor.
-     * <p>
-     * This method is typically used when preserving the interesting
-     * state of a viewer; <code>setGrayedElements</code> is used during the restore.
-     * </p>
-     *
-     * @return the array of grayed elements
-     *
-     * @see #setGrayedElements
-     */
-    public Object[] getGrayedElements() {
-        List result = new ArrayList();
-        internalCollectGrayed(result, getControl());
-        return result.toArray();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     */
-    protected void handleDoubleSelect(SelectionEvent event) {
-
-        if (lastClickedItem != null) {
-            TreeItem item = lastClickedItem;
-            Object data = item.getData();
-            if (data != null) {
-                boolean state = item.getChecked();
-                setChecked(data, !state);
-                fireCheckStateChanged(new CheckStateChangedEvent(this, data,
-                        !state));
-            }
-            lastClickedItem = null;
-        } else {
-			super.handleDoubleSelect(event);
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on StructuredViewer.
-     */
-    protected void handleSelect(SelectionEvent event) {
-
-        lastClickedItem = null;
-        if (event.detail == SWT.CHECK) {
-            TreeItem item = (TreeItem) event.item;
-            lastClickedItem = item;
-            super.handleSelect(event);
-
-            Object data = item.getData();
-            if (data != null) {
-                fireCheckStateChanged(new CheckStateChangedEvent(this, data,
-                        item.getChecked()));
-            }
-        } else {
-			super.handleSelect(event);
-		}
-    }
-
-    /**
-     * Gathers the checked states of the given widget and its
-     * descendents, following a pre-order traversal of the tree.
-     *
-     * @param result a writable list of elements (element type: <code>Object</code>)
-     * @param widget the widget
-     */
-    private void internalCollectChecked(List result, Widget widget) {
-        Item[] items = getChildren(widget);
-        for (int i = 0; i < items.length; i++) {
-            Item item = items[i];
-            if (item instanceof TreeItem && ((TreeItem) item).getChecked()) {
-                Object data = item.getData();
-                if (data != null) {
-					result.add(data);
-				}
-            }
-            internalCollectChecked(result, item);
-        }
-    }
-
-    /**
-     * Gathers the grayed states of the given widget and its
-     * descendents, following a pre-order traversal of the tree.
-     *
-     * @param result a writable list of elements (element type: <code>Object</code>)
-     * @param widget the widget
-     */
-    private void internalCollectGrayed(List result, Widget widget) {
-        Item[] items = getChildren(widget);
-        for (int i = 0; i < items.length; i++) {
-            Item item = items[i];
-            if (item instanceof TreeItem && ((TreeItem) item).getGrayed()) {
-                Object data = item.getData();
-                if (data != null) {
-					result.add(data);
-				}
-            }
-            internalCollectGrayed(result, item);
-        }
-    }
-
-    /**
-     * Sets the checked state of all items to correspond to the given set of checked elements.
-     *
-     * @param checkedElements the set (element type: <code>Object</code>) of elements which are checked
-     * @param widget the widget
-     */
-    private void internalSetChecked(CustomHashtable checkedElements,
-            Widget widget) {
-        Item[] items = getChildren(widget);
-        for (int i = 0; i < items.length; i++) {
-            TreeItem item = (TreeItem) items[i];
-            Object data = item.getData();
-            if (data != null) {
-                boolean checked = checkedElements.containsKey(data);
-                if (checked != item.getChecked()) {
-                    item.setChecked(checked);
-                }
-            }
-            internalSetChecked(checkedElements, item);
-        }
-    }
-
-    /**
-     * Sets the grayed state of all items to correspond to the given set of grayed elements.
-     *
-     * @param grayedElements the set (element type: <code>Object</code>) of elements which are grayed
-     * @param widget the widget
-     */
-    private void internalSetGrayed(CustomHashtable grayedElements, Widget widget) {
-        Item[] items = getChildren(widget);
-        for (int i = 0; i < items.length; i++) {
-            TreeItem item = (TreeItem) items[i];
-            Object data = item.getData();
-            if (data != null) {
-                boolean grayed = grayedElements.containsKey(data);
-                if (grayed != item.getGrayed()) {
-                    item.setGrayed(grayed);
-                }
-            }
-            internalSetGrayed(grayedElements, item);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    protected void preservingSelection(Runnable updateCode) {
-    	if (!getPreserveSelection()) {
-    		return;
-    	}
-    	//If a check provider is present, it determines the state across input
-    	//changes.
-    	if(checkStateProvider != null) {
-    		//Try to preserve the selection, let the ICheckProvider manage 
-    		//the check states
-    		super.preservingSelection(updateCode);
-    		return;
-    	}
-    	
-    	//Preserve checked items
-        int n = getItemCount(getControl());
-        CustomHashtable checkedNodes = newHashtable(n * 2 + 1);
-        CustomHashtable grayedNodes = newHashtable(n * 2 + 1);
-
-        gatherState(checkedNodes, grayedNodes, getControl());
-
-        super.preservingSelection(updateCode);
-
-        applyState(checkedNodes, grayedNodes, getControl());
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public void removeCheckStateListener(ICheckStateListener listener) {
-        checkStateListeners.remove(listener);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ICheckable.
-     */
-    public boolean setChecked(Object element, boolean state) {
-        Assert.isNotNull(element);
-        Widget widget = internalExpand(element, false);
-        if (widget instanceof TreeItem) {
-            ((TreeItem) widget).setChecked(state);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Sets the checked state for the children of the given item.
-     *
-     * @param item the item
-     * @param state <code>true</code> if the item should be checked,
-     *  and <code>false</code> if it should be unchecked
-     */
-    private void setCheckedChildren(Item item, boolean state) {
-        createChildren(item);
-        Item[] items = getChildren(item);
-        if (items != null) {
-            for (int i = 0; i < items.length; i++) {
-                Item it = items[i];
-                if (it.getData() != null && (it instanceof TreeItem)) {
-                    TreeItem treeItem = (TreeItem) it;
-                    treeItem.setChecked(state);
-                    setCheckedChildren(treeItem, state);
-                }
-            }
-        }
-    }
-
-    /**
-     * Sets which elements are checked in this viewer's tree.
-     * The given list contains the elements that are to be checked;
-     * all other elements are to be unchecked.
-     * Does not fire events to check state listeners.
-     * <p>
-     * This method is typically used when restoring the interesting
-     * state of a viewer captured by an earlier call to <code>getCheckedElements</code>.
-     * </p>
-     *
-     * @param elements the array of checked elements
-     * @see #getCheckedElements
-     */
-    public void setCheckedElements(Object[] elements) {
-        assertElementsNotNull(elements);
-        CustomHashtable checkedElements = newHashtable(elements.length * 2 + 1);
-        for (int i = 0; i < elements.length; ++i) {
-            Object element = elements[i];
-            // Ensure item exists for element
-            internalExpand(element, false);
-            checkedElements.put(element, element);
-        }
-        Control tree = getControl();
-        tree.setRedraw(false);
-        internalSetChecked(checkedElements, tree);
-        tree.setRedraw(true);
-    }
-
-    /**
-     * Sets the grayed state for the given element in this viewer.
-     *
-     * @param element the element
-     * @param state <code>true</code> if the item should be grayed,
-     *  and <code>false</code> if it should be ungrayed
-     * @return <code>true</code> if the gray state could be set, 
-     *  and <code>false</code> otherwise
-     */
-    public boolean setGrayed(Object element, boolean state) {
-        Assert.isNotNull(element);
-        Widget widget = internalExpand(element, false);
-        if (widget instanceof TreeItem) {
-            ((TreeItem) widget).setGrayed(state);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Check and gray the selection rather than calling both
-     * setGrayed and setChecked as an optimization.
-     * Does not fire events to check state listeners.
-     * @param element the item being checked
-     * @param state a boolean indicating selection or deselection
-     * @return boolean indicating success or failure.
-     */
-    public boolean setGrayChecked(Object element, boolean state) {
-        Assert.isNotNull(element);
-        Widget widget = internalExpand(element, false);
-        if (widget instanceof TreeItem) {
-            TreeItem item = (TreeItem) widget;
-            item.setChecked(state);
-            item.setGrayed(state);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Sets which elements are grayed in this viewer's tree.
-     * The given list contains the elements that are to be grayed;
-     * all other elements are to be ungrayed.
-     * <p>
-     * This method is typically used when restoring the interesting
-     * state of a viewer captured by an earlier call to <code>getGrayedElements</code>.
-     * </p>
-     *
-     * @param elements the array of grayed elements
-     *
-     * @see #getGrayedElements
-     */
-    public void setGrayedElements(Object[] elements) {
-        assertElementsNotNull(elements);
-        CustomHashtable grayedElements = newHashtable(elements.length * 2 + 1);
-        for (int i = 0; i < elements.length; ++i) {
-            Object element = elements[i];
-            // Ensure item exists for element
-            internalExpand(element, false);
-            grayedElements.put(element, element);
-        }
-        Control tree = getControl();
-        tree.setRedraw(false);
-        internalSetGrayed(grayedElements, tree);
-        tree.setRedraw(true);
-    }
-
-    /**
-     * Sets the grayed state for the given element and its parents
-     * in this viewer.
-     *
-     * @param element the element
-     * @param state <code>true</code> if the item should be grayed,
-     *  and <code>false</code> if it should be ungrayed
-     * @return <code>true</code> if the element is visible and the gray
-     *  state could be set, and <code>false</code> otherwise
-     * @see #setGrayed
-     */
-    public boolean setParentsGrayed(Object element, boolean state) {
-        Assert.isNotNull(element);
-        Widget widget = internalExpand(element, false);
-        if (widget instanceof TreeItem) {
-            TreeItem item = (TreeItem) widget;
-            item.setGrayed(state);
-            item = item.getParentItem();
-            while (item != null) {
-                item.setGrayed(state);
-                item = item.getParentItem();
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Sets the checked state for the given element and its visible
-     * children in this viewer.
-     * Assumes that the element has been expanded before. To enforce
-     * that the item is expanded, call <code>expandToLevel</code>
-     * for the element.
-     * Does not fire events to check state listeners.
-     *
-     * @param element the element
-     * @param state <code>true</code> if the item should be checked,
-     *  and <code>false</code> if it should be unchecked
-     * @return <code>true</code> if the checked state could be set, 
-     *  and <code>false</code> otherwise
-     */
-    public boolean setSubtreeChecked(Object element, boolean state) {
-        Widget widget = internalExpand(element, false);
-        if (widget instanceof TreeItem) {
-            TreeItem item = (TreeItem) widget;
-            item.setChecked(state);
-            setCheckedChildren(item, state);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Sets to the given value the checked state for all elements in this viewer.
-     * Does not fire events to check state listeners.
-     * Assumes that the element has been expanded before. To enforce
-     * that the item is expanded, call <code>expandToLevel</code>
-     * for the element.
-     *
-     * @param state <code>true</code> if the element should be checked,
-     *  and <code>false</code> if it should be unchecked
-     * @deprecated as this method only checks or unchecks visible items
-     * is is recommended that {@link #setSubtreeChecked(Object, boolean)}
-     * is used instead.
-     * @see #setSubtreeChecked(Object, boolean) 
-     *  
-     *  @since 3.2
-     */
-	public void setAllChecked(boolean state) {
-		setAllChecked(state,  getTree().getItems());
-		
-	}
-
-	/**
-	 * Set the checked state of the visible items and their children to state.
-	 * @param state
-	 * @param items
-	 * @deprecated
-	 * @see #setAllChecked(boolean)
-	 */
-	private void setAllChecked(boolean state, TreeItem[] items) {
-		for (int i = 0; i < items.length; i++) {
-			items[i].setChecked(state);			
-			TreeItem[] children = items[i].getItems();
-			setAllChecked(state, children);
-		}
-	}
-	
-	boolean optionallyPruneChildren(Item item, Object element) {
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColorCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColorCellEditor.java
deleted file mode 100644
index 2157349..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColorCellEditor.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableTree;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontMetrics;
-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.graphics.Rectangle;
-import org.eclipse.swt.widgets.ColorDialog;
-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.swt.widgets.Table;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * A cell editor that manages a color field.
- * The cell editor's value is the color (an SWT <code>RBG</code>).
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ColorCellEditor extends DialogCellEditor {
-
-    /**
-     * The default extent in pixels.
-     */
-    private static final int DEFAULT_EXTENT = 16;
-
-    /**
-     * Gap between between image and text in pixels.
-     */
-    private static final int GAP = 6;
-
-    /**
-     * The composite widget containing the color and RGB label widgets
-     */
-    private Composite composite;
-
-    /**
-     * The label widget showing the current color.
-     */
-    private Label colorLabel;
-
-    /**
-     * The label widget showing the RGB values.
-     */
-    private Label rgbLabel;
-
-    /**
-     * The image.
-     */
-    private Image image;
-
-    /**
-     * Internal class for laying out this cell editor.
-     */
-    private class ColorCellLayout extends Layout {
-        public Point computeSize(Composite editor, int wHint, int hHint,
-                boolean force) {
-            if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-            Point colorSize = colorLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                    force);
-            Point rgbSize = rgbLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                    force);
-            return new Point(colorSize.x + GAP + rgbSize.x, Math.max(
-                    colorSize.y, rgbSize.y));
-        }
-
-        public void layout(Composite editor, boolean force) {
-            Rectangle bounds = editor.getClientArea();
-            Point colorSize = colorLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                    force);
-            Point rgbSize = rgbLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                    force);
-            int ty = (bounds.height - rgbSize.y) / 2;
-            if (ty < 0) {
-				ty = 0;
-			}
-            colorLabel.setBounds(-1, 0, colorSize.x, colorSize.y);
-            rgbLabel.setBounds(colorSize.x + GAP - 1, ty, bounds.width
-                    - colorSize.x - GAP, bounds.height);
-        }
-    }
-
-    /**
-     * Creates a new color cell editor parented under the given control.
-     * The cell editor value is black (<code>RGB(0,0,0)</code>) initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    public ColorCellEditor(Composite parent) {
-        this(parent, SWT.NONE);
-    }
-
-    /**
-     * Creates a new color cell editor parented under the given control.
-     * The cell editor value is black (<code>RGB(0,0,0)</code>) initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     * @param style the style bits
-     * @since 2.1
-     */
-    public ColorCellEditor(Composite parent, int style) {
-        super(parent, style);
-        doSetValue(new RGB(0, 0, 0));
-    }
-
-    /**
-     * Creates and returns the color image data for the given control
-     * and RGB value. The image's size is either the control's item extent 
-     * or the cell editor's default extent, which is 16 pixels square.
-     *
-     * @param w the control
-     * @param color the color
-     */
-    private ImageData createColorImage(Control w, RGB color) {
-
-        GC gc = new GC(w);
-        FontMetrics fm = gc.getFontMetrics();
-        int size = fm.getAscent();
-        gc.dispose();
-
-        int indent = 6;
-        int extent = DEFAULT_EXTENT;
-        if (w instanceof Table) {
-			extent = ((Table) w).getItemHeight() - 1;
-		} else if (w instanceof Tree) {
-			extent = ((Tree) w).getItemHeight() - 1;
-		} else if (w instanceof TableTree) {
-			extent = ((TableTree) w).getItemHeight() - 1;
-		}
-
-        if (size > extent) {
-			size = extent;
-		}
-
-        int width = indent + size;
-        int height = extent;
-
-        int xoffset = indent;
-        int yoffset = (height - size) / 2;
-
-        RGB black = new RGB(0, 0, 0);
-        PaletteData dataPalette = new PaletteData(new RGB[] { black, black,
-                color });
-        ImageData data = new ImageData(width, height, 4, dataPalette);
-        data.transparentPixel = 0;
-
-        int end = size - 1;
-        for (int y = 0; y < size; y++) {
-            for (int x = 0; x < size; x++) {
-                if (x == 0 || y == 0 || x == end || y == end) {
-					data.setPixel(x + xoffset, y + yoffset, 1);
-				} else {
-					data.setPixel(x + xoffset, y + yoffset, 2);
-				}
-            }
-        }
-
-        return data;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DialogCellEditor.
-     */
-    protected Control createContents(Composite cell) {
-        Color bg = cell.getBackground();
-        composite = new Composite(cell, getStyle());
-        composite.setBackground(bg);
-        composite.setLayout(new ColorCellLayout());
-        colorLabel = new Label(composite, SWT.LEFT);
-        colorLabel.setBackground(bg);
-        rgbLabel = new Label(composite, SWT.LEFT);
-        rgbLabel.setBackground(bg);
-        rgbLabel.setFont(cell.getFont());
-        return composite;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    public void dispose() {
-        if (image != null) {
-            image.dispose();
-            image = null;
-        }
-        super.dispose();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DialogCellEditor.
-     */
-    protected Object openDialogBox(Control cellEditorWindow) {
-        ColorDialog dialog = new ColorDialog(cellEditorWindow.getShell());
-        Object value = getValue();
-        if (value != null) {
-			dialog.setRGB((RGB) value);
-		}
-        value = dialog.open();
-        return dialog.getRGB();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DialogCellEditor.
-     */
-    protected void updateContents(Object value) {
-        RGB rgb = (RGB) value;
-        // XXX: We don't have a value the first time this method is called".
-        if (rgb == null) {
-            rgb = new RGB(0, 0, 0);
-        }
-        // XXX: Workaround for 1FMQ0P3: SWT:ALL - TableItem.setImage doesn't work if using the identical image."
-        if (image != null) {
-			image.dispose();
-		}
-
-        ImageData id = createColorImage(colorLabel.getParent().getParent(), rgb);
-        ImageData mask = id.getTransparencyMask();
-        image = new Image(colorLabel.getDisplay(), id, mask);
-        colorLabel.setImage(image);
-
-        rgbLabel
-                .setText("(" + rgb.red + "," + rgb.green + "," + rgb.blue + ")");//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLabelProvider.java
deleted file mode 100644
index 05a64ad..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLabelProvider.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The ColumnLabelProvider is the label provider for viewers
- * that have column support such as {@link TreeViewer} and
- * {@link TableViewer}
- * 
- * <p><b>This classes is intended to be subclassed</b></p>
- * 
- * @since 3.3
- *
- */
-public class ColumnLabelProvider extends CellLabelProvider implements
-		IFontProvider, IColorProvider, ILabelProvider {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.CellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	public void update(ViewerCell cell) {
-		Object element = cell.getElement();
-		cell.setText(getText(element));
-		Image image = getImage(element);
-		cell.setImage(image);
-		cell.setBackground(getBackground(element));
-		cell.setForeground(getForeground(element));
-		cell.setFont(getFont(element));
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object element) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-	 */
-	public Color getBackground(Object element) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-	 */
-	public Color getForeground(Object element) {
-		return null;
-	}
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		return element == null ? "" : element.toString();//$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLayoutData.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLayoutData.java
deleted file mode 100644
index 965fdab..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnLayoutData.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * An abstract column layout data describing the information needed 
- * (by <code>TableLayout</code>) to properly lay out a table. 
- * <p>
- * This class is not intended to be subclassed outside the framework.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public abstract class ColumnLayoutData {
-
-    /**
-     * Indicates whether the column is resizable.
-     */
-    public boolean resizable;
-
-    /**
-     * Creates a new column layout data object.
-     *
-     * @param resizable <code>true</code> if the column is resizable, and <code>false</code> if not
-     */
-    protected ColumnLayoutData(boolean resizable) {
-        this.resizable = resizable;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnPixelData.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnPixelData.java
deleted file mode 100644
index f1b1750..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnPixelData.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Describes the width of a table column in pixels, and
- * whether the column is resizable.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ColumnPixelData extends ColumnLayoutData {
-
-   /**
-     * The column's width in pixels.
-     */
-    public int width;
-
-	/**
-	 * Whether to allocate extra width to the column to account for
-	 * trim taken by the column itself.
-	 * The default is <code>false</code> for backwards compatibility, but
-	 * the recommended practice is to specify <code>true</code>, and
-	 * specify the desired width for the content of the column, rather
-	 * than adding a fudge factor to the specified width.
-	 * 
-	 * @since 3.1
-	 */
-	public boolean addTrim = false;
-	
-    /**
-     * Creates a resizable column width of the given number of pixels.
-     *
-     * @param widthInPixels the width of column in pixels
-     */
-    public ColumnPixelData(int widthInPixels) {
-        this(widthInPixels, true, false);
-    }
-
-    /**
-     * Creates a column width of the given number of pixels.
-     *
-     * @param widthInPixels the width of column in pixels
-     * @param resizable <code>true</code> if the column is resizable,
-     *   and <code>false</code> if size of the column is fixed
-     */
-    public ColumnPixelData(int widthInPixels, boolean resizable) {
-		this(widthInPixels, resizable, false);
-    }
-
-    /**
-	 * Creates a column width of the given number of pixels.
-	 * 
-	 * @param widthInPixels
-	 *            the width of column in pixels
-	 * @param resizable
-	 *            <code>true</code> if the column is resizable, and
-	 *            <code>false</code> if size of the column is fixed
-	 * @param addTrim
-	 *            <code>true</code> to allocate extra width to the column to
-	 *            account for trim taken by the column itself,
-	 *            <code>false</code> to use the given width exactly
-	 * @since 3.1
-	 */
-    public ColumnPixelData(int widthInPixels, boolean resizable, boolean addTrim) {
-        super(resizable);
-        Assert.isTrue(widthInPixels >= 0);
-        this.width = widthInPixels;
-		this.addTrim = addTrim;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewer.java
deleted file mode 100644
index 9003e55..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewer.java
+++ /dev/null
@@ -1,819 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation; bug 153993
- *												   fix in bug 163317, 151295, 167323, 167858, 184346, 187826, 201905
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.internal.InternalPolicy;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The ColumnViewer is the abstract superclass of viewers that have columns
- * (e.g., AbstractTreeViewer and AbstractTableViewer). Concrete subclasses of
- * {@link ColumnViewer} should implement a matching concrete subclass of {@link
- * ViewerColumn}.
- * 
- * <strong> This class is not intended to be subclassed outside of the JFace
- * viewers framework.</strong>
- * 
- * @since 3.3
- * 
- */
-public abstract class ColumnViewer extends StructuredViewer {
-	private CellEditor[] cellEditors;
-
-	private ICellModifier cellModifier;
-
-	private String[] columnProperties;
-
-	/**
-	 * The cell is a cached viewer cell used for refreshing.
-	 */
-	private ViewerCell cell = new ViewerCell(null, 0, null);
-
-	private ColumnViewerEditor viewerEditor;
-
-	private boolean busy;
-	private boolean logWhenBusy = true; // initially true, set to false
-
-	// after logging for the first
-	// time
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public ColumnViewer() {
-
-	}
-
-	protected void hookControl(Control control) {
-		super.hookControl(control);
-		viewerEditor = createViewerEditor();
-		hookEditingSupport(control);
-	}
-
-	/**
-	 * Hook up the editing support. Subclasses may override.
-	 * 
-	 * @param control
-	 * 		the control you want to hook on
-	 */
-	protected void hookEditingSupport(Control control) {
-		// Needed for backwards comp with AbstractTreeViewer and TableTreeViewer
-		// who are not hooked this way others may already overwrite and provide
-		// their
-		// own impl
-		if (viewerEditor != null) {
-			control.addMouseListener(new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					// Workaround for bug 185817
-					if (e.count != 2) {
-						handleMouseDown(e);
-					}
-				}
-
-				public void mouseDoubleClick(MouseEvent e) {
-					handleMouseDown(e);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Creates the viewer editor used for editing cell contents. To be
-	 * implemented by subclasses.
-	 * 
-	 * @return the editor, or <code>null</code> if this viewer does not support
-	 * 	editing cell contents.
-	 */
-	protected abstract ColumnViewerEditor createViewerEditor();
-
-	/**
-	 * Returns the viewer cell at the given widget-relative coordinates, or
-	 * <code>null</code> if there is no cell at that location
-	 * 
-	 * @param point
-	 * 		the widget-relative coordinates
-	 * @return the cell or <code>null</code> if no cell is found at the given
-	 * 	point
-	 * 
-	 * @since 3.4
-	 */
-	public ViewerCell getCell(Point point) {
-		ViewerRow row = getViewerRow(point);
-		if (row != null) {
-			return row.getCell(point);
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns the viewer row at the given widget-relative coordinates.
-	 * 
-	 * @param point
-	 * 		the widget-relative coordinates of the viewer row
-	 * @return ViewerRow the row or <code>null</code> if no row is found at the
-	 * 	given coordinates
-	 */
-	protected ViewerRow getViewerRow(Point point) {
-		Item item = getItemAt(point);
-
-		if (item != null) {
-			return getViewerRowFromItem(item);
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns a {@link ViewerRow} associated with the given row widget.
-	 * Implementations may re-use the same instance for different row widgets;
-	 * callers can only use the viewer row locally and until the next call to
-	 * this method.
-	 * 
-	 * @param item
-	 * 		the row widget
-	 * @return ViewerRow a viewer row object
-	 */
-	protected abstract ViewerRow getViewerRowFromItem(Widget item);
-
-	/**
-	 * Returns the column widget at the given column index.
-	 * 
-	 * @param columnIndex
-	 * 		the column index
-	 * @return Widget the column widget
-	 */
-	protected abstract Widget getColumnViewerOwner(int columnIndex);
-
-	/**
-	 * Returns the viewer column for the given column index.
-	 * 
-	 * @param columnIndex
-	 * 		the column index
-	 * @return the viewer column at the given index, or <code>null</code> if
-	 * 	there is none for the given index
-	 */
-	/* package */ViewerColumn getViewerColumn(final int columnIndex) {
-
-		ViewerColumn viewer;
-		Widget columnOwner = getColumnViewerOwner(columnIndex);
-
-		if (columnOwner == null || columnOwner.isDisposed()) {
-			return null;
-		}
-
-		viewer = (ViewerColumn) columnOwner
-				.getData(ViewerColumn.COLUMN_VIEWER_KEY);
-
-		if (viewer == null) {
-			viewer = createViewerColumn(columnOwner, CellLabelProvider
-					.createViewerLabelProvider(this, getLabelProvider()));
-			setupEditingSupport(columnIndex, viewer);
-		}
-
-		if (viewer.getEditingSupport() == null && getCellModifier() != null) {
-			setupEditingSupport(columnIndex, viewer);
-		}
-
-		return viewer;
-	}
-
-	/**
-	 * Sets up editing support for the given column based on the "old" cell
-	 * editor API.
-	 * 
-	 * @param columnIndex
-	 * @param viewer
-	 */
-	private void setupEditingSupport(final int columnIndex, ViewerColumn viewer) {
-		if (getCellModifier() != null) {
-			viewer.setEditingSupport(new EditingSupport(this) {
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see
-				 * org.eclipse.jface.viewers.EditingSupport#canEdit(java.lang
-				 * .Object)
-				 */
-				public boolean canEdit(Object element) {
-					Object[] properties = getColumnProperties();
-
-					if (columnIndex < properties.length) {
-						return getCellModifier().canModify(element,
-								(String) getColumnProperties()[columnIndex]);
-					}
-
-					return false;
-				}
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see
-				 * org.eclipse.jface.viewers.EditingSupport#getCellEditor(java
-				 * .lang.Object)
-				 */
-				public CellEditor getCellEditor(Object element) {
-					CellEditor[] editors = getCellEditors();
-					if (columnIndex < editors.length) {
-						return getCellEditors()[columnIndex];
-					}
-					return null;
-				}
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see
-				 * org.eclipse.jface.viewers.EditingSupport#getValue(java.lang
-				 * .Object)
-				 */
-				public Object getValue(Object element) {
-					Object[] properties = getColumnProperties();
-
-					if (columnIndex < properties.length) {
-						return getCellModifier().getValue(element,
-								(String) getColumnProperties()[columnIndex]);
-					}
-
-					return null;
-				}
-
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see
-				 * org.eclipse.jface.viewers.EditingSupport#setValue(java.lang
-				 * .Object, java.lang.Object)
-				 */
-				public void setValue(Object element, Object value) {
-					Object[] properties = getColumnProperties();
-
-					if (columnIndex < properties.length) {
-						getCellModifier().modify(findItem(element),
-								(String) getColumnProperties()[columnIndex],
-								value);
-					}
-				}
-
-				boolean isLegacySupport() {
-					return true;
-				}
-			});
-		}
-	}
-
-	/**
-	 * Creates a generic viewer column for the given column widget, based on the
-	 * given label provider.
-	 * 
-	 * @param columnOwner
-	 * 		the column widget
-	 * @param labelProvider
-	 * 		the label provider to use for the column
-	 * @return ViewerColumn the viewer column
-	 */
-	private ViewerColumn createViewerColumn(Widget columnOwner,
-			CellLabelProvider labelProvider) {
-		ViewerColumn column = new ViewerColumn(this, columnOwner) {
-		};
-		column.setLabelProvider(labelProvider, false);
-		return column;
-	}
-
-	/**
-	 * Update the cached cell object with the given row and column.
-	 * 
-	 * @param rowItem
-	 * @param column
-	 * @return ViewerCell
-	 */
-	/* package */ViewerCell updateCell(ViewerRow rowItem, int column,
-			Object element) {
-		cell.update(rowItem, column, element);
-		return cell;
-	}
-
-	/**
-	 * Returns the {@link Item} at the given widget-relative coordinates, or
-	 * <code>null</code> if there is no item at the given coordinates.
-	 * 
-	 * @param point
-	 * 		the widget-relative coordinates
-	 * @return the {@link Item} at the coordinates or <code>null</code> if there
-	 * 	is no item at the given coordinates
-	 */
-	protected abstract Item getItemAt(Point point);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StructuredViewer#getItem(int, int)
-	 */
-	protected Item getItem(int x, int y) {
-		return getItemAt(getControl().toControl(x, y));
-	}
-
-	/**
-	 * The column viewer implementation of this <code>Viewer</code> framework
-	 * method ensures that the given label provider is an instance of
-	 * <code>ITableLabelProvider</code>, <code>ILabelProvider</code>, or
-	 * <code>CellLabelProvider</code>.
-	 * <p>
-	 * If the label provider is an {@link ITableLabelProvider} , then it
-	 * provides a separate label text and image for each column. Implementers of
-	 * <code>ITableLabelProvider</code> may also implement {@link
-	 * ITableColorProvider} and/or {@link ITableFontProvider} to provide colors
-	 * and/or fonts.
-	 * </p>
-	 * <p>
-	 * If the label provider is an <code>ILabelProvider</code> , then it
-	 * provides only the label text and image for the first column, and any
-	 * remaining columns are blank. Implementers of <code>ILabelProvider</code>
-	 * may also implement {@link IColorProvider} and/or {@link IFontProvider} to
-	 * provide colors and/or fonts.
-	 * </p>
-	 * 
-	 */
-	public void setLabelProvider(IBaseLabelProvider labelProvider) {
-		Assert.isTrue(labelProvider instanceof ITableLabelProvider
-				|| labelProvider instanceof ILabelProvider
-				|| labelProvider instanceof CellLabelProvider);
-		updateColumnParts(labelProvider);// Reset the label providers in the
-		// columns
-		super.setLabelProvider(labelProvider);
-		if (labelProvider instanceof CellLabelProvider) {
-			((CellLabelProvider) labelProvider).initialize(this, null);
-		}
-	}
-
-	void internalDisposeLabelProvider(IBaseLabelProvider oldProvider) {
-		if (oldProvider instanceof CellLabelProvider) {
-			((CellLabelProvider) oldProvider).dispose(this, null);
-		} else {
-			super.internalDisposeLabelProvider(oldProvider);
-		}
-	}
-
-	/**
-	 * Clear the viewer parts for the columns
-	 */
-	private void updateColumnParts(IBaseLabelProvider labelProvider) {
-		ViewerColumn column;
-		int i = 0;
-
-		while ((column = getViewerColumn(i++)) != null) {
-			column.setLabelProvider(CellLabelProvider
-					.createViewerLabelProvider(this, labelProvider), false);
-		}
-	}
-
-	/**
-	 * Cancels a currently active cell editor if one is active. All changes
-	 * already done in the cell editor are lost.
-	 * 
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 */
-	public void cancelEditing() {
-		if (viewerEditor != null) {
-			viewerEditor.cancelEditing();
-		}
-	}
-
-	/**
-	 * Apply the value of the active cell editor if one is active.
-	 * 
-	 * @since 3.3
-	 */
-	protected void applyEditorValue() {
-		if (viewerEditor != null) {
-			viewerEditor.applyEditorValue();
-		}
-	}
-
-	/**
-	 * Starts editing the given element at the given column index.
-	 * 
-	 * @param element
-	 * 		the model element
-	 * @param column
-	 * 		the column index
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 */
-	public void editElement(Object element, int column) {
-		if (viewerEditor != null) {
-			try {
-				getControl().setRedraw(false);
-				// Set the selection at first because in Tree's
-				// the element might not be materialized
-				setSelection(new StructuredSelection(element), true);
-
-				Widget item = findItem(element);
-				if (item != null) {
-					ViewerRow row = getViewerRowFromItem(item);
-					if (row != null) {
-						ViewerCell cell = row.getCell(column);
-						if (cell != null) {
-							triggerEditorActivationEvent(new ColumnViewerEditorActivationEvent(
-									cell));
-						}
-					}
-				}
-			} finally {
-				getControl().setRedraw(true);
-			}
-		}
-	}
-
-	/**
-	 * Return the CellEditors for the receiver, or <code>null</code> if no cell
-	 * editors are set.
-	 * <p>
-	 * Since 3.3, an alternative API is available, see {@link
-	 * ViewerColumn#setEditingSupport(EditingSupport)} for a more flexible way
-	 * of editing values in a column viewer.
-	 * </p>
-	 * 
-	 * 
-	 * @return CellEditor[]
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 * @see ViewerColumn#setEditingSupport(EditingSupport)
-	 * @see EditingSupport
-	 */
-	public CellEditor[] getCellEditors() {
-		return cellEditors;
-	}
-
-	/**
-	 * Returns the cell modifier of this viewer, or <code>null</code> if none
-	 * has been set.
-	 * 
-	 * <p>
-	 * Since 3.3, an alternative API is available, see {@link
-	 * ViewerColumn#setEditingSupport(EditingSupport)} for a more flexible way
-	 * of editing values in a column viewer.
-	 * </p>
-	 * 
-	 * @return the cell modifier, or <code>null</code>
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 * @see ViewerColumn#setEditingSupport(EditingSupport)
-	 * @see EditingSupport
-	 */
-	public ICellModifier getCellModifier() {
-		return cellModifier;
-	}
-
-	/**
-	 * Returns the column properties of this table viewer. The properties must
-	 * correspond with the columns of the table control. They are used to
-	 * identify the column in a cell modifier.
-	 * 
-	 * <p>
-	 * Since 3.3, an alternative API is available, see {@link
-	 * ViewerColumn#setEditingSupport(EditingSupport)} for a more flexible way
-	 * of editing values in a column viewer.
-	 * </p>
-	 * 
-	 * @return the list of column properties
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 * @see ViewerColumn#setEditingSupport(EditingSupport)
-	 * @see EditingSupport
-	 */
-	public Object[] getColumnProperties() {
-		return columnProperties;
-	}
-
-	/**
-	 * Returns whether there is an active cell editor.
-	 * 
-	 * <p>
-	 * Since 3.3, an alternative API is available, see {@link
-	 * ViewerColumn#setEditingSupport(EditingSupport)} for a more flexible way
-	 * of editing values in a column viewer.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if there is an active cell editor, and
-	 * 	<code>false</code> otherwise
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 * @see ViewerColumn#setEditingSupport(EditingSupport)
-	 * @see EditingSupport
-	 */
-	public boolean isCellEditorActive() {
-		if (viewerEditor != null) {
-			return viewerEditor.isCellEditorActive();
-		}
-		return false;
-	}
-
-	public void refresh(Object element) {
-		if (checkBusy())
-			return;
-
-		if (isCellEditorActive()) {
-			cancelEditing();
-		}
-
-		super.refresh(element);
-	}
-
-	public void refresh(Object element, boolean updateLabels) {
-		if (checkBusy())
-			return;
-
-		if (isCellEditorActive()) {
-			cancelEditing();
-		}
-
-		super.refresh(element, updateLabels);
-	}
-
-	public void update(Object element, String[] properties) {
-		if (checkBusy())
-			return;
-		super.update(element, properties);
-	}
-
-	/**
-	 * Sets the cell editors of this column viewer. If editing is not supported
-	 * by this viewer the call simply has no effect.
-	 * 
-	 * <p>
-	 * Since 3.3, an alternative API is available, see {@link
-	 * ViewerColumn#setEditingSupport(EditingSupport)} for a more flexible way
-	 * of editing values in a column viewer.
-	 * </p>
-	 * <p>
-	 * Users setting up an editable {@link TreeViewer} or {@link TableViewer} with more than 1 column <b>have</b>
-	 * to pass the SWT.FULL_SELECTION style bit
-	 * </p>
-	 * @param editors
-	 * 		the list of cell editors
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 * @see ViewerColumn#setEditingSupport(EditingSupport)
-	 * @see EditingSupport
-	 */
-	public void setCellEditors(CellEditor[] editors) {
-		this.cellEditors = editors;
-	}
-
-	/**
-	 * Sets the cell modifier for this column viewer. This method does nothing
-	 * if editing is not supported by this viewer.
-	 * 
-	 * <p>
-	 * Since 3.3, an alternative API is available, see {@link
-	 * ViewerColumn#setEditingSupport(EditingSupport)} for a more flexible way
-	 * of editing values in a column viewer.
-	 * </p>
-	 * <p>
-	 * Users setting up an editable {@link TreeViewer} or {@link TableViewer} with more than 1 column <b>have</b>
-	 * to pass the SWT.FULL_SELECTION style bit
-	 * </p>
-	 * @param modifier
-	 * 		the cell modifier
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 * @see ViewerColumn#setEditingSupport(EditingSupport)
-	 * @see EditingSupport
-	 */
-	public void setCellModifier(ICellModifier modifier) {
-		this.cellModifier = modifier;
-	}
-
-	/**
-	 * Sets the column properties of this column viewer. The properties must
-	 * correspond with the columns of the control. They are used to identify the
-	 * column in a cell modifier. If editing is not supported by this viewer the
-	 * call simply has no effect.
-	 * 
-	 * <p>
-	 * Since 3.3, an alternative API is available, see {@link
-	 * ViewerColumn#setEditingSupport(EditingSupport)} for a more flexible way
-	 * of editing values in a column viewer.
-	 * </p>
-	 * <p>
-	 * Users setting up an editable {@link TreeViewer} or {@link TableViewer} with more than 1 column <b>have</b>
-	 * to pass the SWT.FULL_SELECTION style bit
-	 * </p>
-	 * @param columnProperties
-	 * 		the list of column properties
-	 * @since 3.1 (in subclasses, added in 3.3 to abstract class)
-	 * @see ViewerColumn#setEditingSupport(EditingSupport)
-	 * @see EditingSupport
-	 */
-	public void setColumnProperties(String[] columnProperties) {
-		this.columnProperties = columnProperties;
-	}
-
-	/**
-	 * Returns the number of columns contained in the receiver. If no columns
-	 * were created by the programmer, this value is zero, despite the fact that
-	 * visually, one column of items may be visible. This occurs when the
-	 * programmer uses the column viewer like a list, adding elements but never
-	 * creating a column.
-	 * 
-	 * @return the number of columns
-	 * 
-	 * @since 3.3
-	 */
-	protected abstract int doGetColumnCount();
-
-	/**
-	 * Returns the label provider associated with the column at the given index
-	 * or <code>null</code> if no column with this index is known.
-	 * 
-	 * @param columnIndex
-	 * 		the column index
-	 * @return the label provider associated with the column or
-	 * 	<code>null</code> if no column with this index is known
-	 * 
-	 * @since 3.3
-	 */
-	public CellLabelProvider getLabelProvider(int columnIndex) {
-		ViewerColumn column = getViewerColumn(columnIndex);
-		if (column != null) {
-			return column.getLabelProvider();
-		}
-		return null;
-	}
-
-	private void handleMouseDown(MouseEvent e) {
-		ViewerCell cell = getCell(new Point(e.x, e.y));
-
-		if (cell != null) {
-			triggerEditorActivationEvent(new ColumnViewerEditorActivationEvent(
-					cell, e));
-		}
-	}
-
-	/**
-	 * Invoking this method fires an editor activation event which tries to
-	 * enable the editor but before this event is passed to {@link
-	 * ColumnViewerEditorActivationStrategy} to see if this event should really
-	 * trigger editor activation
-	 * 
-	 * @param event
-	 * 		the activation event
-	 */
-	protected void triggerEditorActivationEvent(
-			ColumnViewerEditorActivationEvent event) {
-		viewerEditor.handleEditorActivationEvent(event);
-	}
-
-	/**
-	 * @param columnViewerEditor
-	 * 		the new column viewer editor
-	 */
-	public void setColumnViewerEditor(ColumnViewerEditor columnViewerEditor) {
-		Assert.isNotNull(columnViewerEditor);
-		this.viewerEditor = columnViewerEditor;
-	}
-
-	/**
-	 * @return the currently attached viewer editor
-	 */
-	public ColumnViewerEditor getColumnViewerEditor() {
-		return viewerEditor;
-	}
-
-	protected Object[] getRawChildren(Object parent) {
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			return super.getRawChildren(parent);
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	void clearLegacyEditingSetup() {
-		if (!getControl().isDisposed() && getCellEditors() != null) {
-			int count = doGetColumnCount();
-
-			for (int i = 0; i < count || i == 0; i++) {
-				Widget owner = getColumnViewerOwner(i);
-				if (owner != null && !owner.isDisposed()) {
-					ViewerColumn column = (ViewerColumn) owner
-							.getData(ViewerColumn.COLUMN_VIEWER_KEY);
-					if (column != null) {
-						EditingSupport e = column.getEditingSupport();
-						// Ensure that only EditingSupports are wiped that are
-						// setup
-						// for Legacy reasons
-						if (e != null && e.isLegacySupport()) {
-							column.setEditingSupport(null);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Checks if this viewer is currently busy, logging a warning and returning
-	 * <code>true</code> if it is busy. A column viewer is busy when it is
-	 * processing a refresh, add, remove, insert, replace, setItemCount,
-	 * expandToLevel, update, setExpandedElements, or similar method that may
-	 * make calls to client code. Column viewers are not designed to handle
-	 * reentrant calls while they are busy. The method returns <code>true</code>
-	 * if the viewer is busy. It is recommended that this method be used by
-	 * subclasses to determine whether the viewer is busy to return early from
-	 * state-changing methods.
-	 * 
-	 * <p>
-	 * This method is not intended to be overridden by subclasses.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the viewer is busy.
-	 * 
-	 * @since 3.4
-	 */
-	protected boolean checkBusy() {
-		if (isBusy()) {
-			if (logWhenBusy) {
-				String message = "Ignored reentrant call while viewer is busy."; //$NON-NLS-1$
-				if (!InternalPolicy.DEBUG_LOG_REENTRANT_VIEWER_CALLS) {
-					// stop logging after the first
-					logWhenBusy = false;
-					message += " This is only logged once per viewer instance," + //$NON-NLS-1$
-							" but similar calls will still be ignored."; //$NON-NLS-1$
-				}
-				Policy.getLog().log(
-						new Status(IStatus.WARNING, Policy.JFACE, message,
-								new RuntimeException()));
-			}
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Sets the busy state of this viewer. Subclasses MUST use <code>try</code>
-	 * ...<code>finally</code> as follows to ensure that the busy flag is reset
-	 * to its original value:
-	 * 
-	 * <pre>
-	 * boolean oldBusy = isBusy();
-	 * setBusy(true);
-	 * try {
-	 * 	// do work
-	 * } finally {
-	 * 	setBusy(oldBusy);
-	 * }
-	 * </pre>
-	 * 
-	 * <p>
-	 * This method is not intended to be overridden by subclasses.
-	 * </p>
-	 * 
-	 * @param busy
-	 * 		the new value of the busy flag
-	 * 
-	 * @since 3.4
-	 */
-	protected void setBusy(boolean busy) {
-		this.busy = busy;
-	}
-
-	/**
-	 * Returns <code>true</code> if this viewer is currently busy processing a
-	 * refresh, add, remove, insert, replace, setItemCount, expandToLevel,
-	 * update, setExpandedElements, or similar method that may make calls to
-	 * client code. Column viewers are not designed to handle reentrant calls
-	 * while they are busy. It is recommended that clients avoid using this
-	 * method if they can ensure by other means that they will not make
-	 * reentrant calls to methods like the ones listed above. See bug 184991 for
-	 * background discussion.
-	 * 
-	 * <p>
-	 * This method is not intended to be overridden by subclasses.
-	 * </p>
-	 * 
-	 * @return Returns whether this viewer is busy.
-	 * 
-	 * @since 3.4
-	 */
-	public boolean isBusy() {
-		return busy;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditor.java
deleted file mode 100644
index 609fcd0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditor.java
+++ /dev/null
@@ -1,723 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - refactoring (bug 153993)
- *     											   fix in bug: 151295,178946,166500,195908,201906,207676,180504,216706,218336
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-
-/**
- * This is the base for all editor implementations of Viewers. ColumnViewer
- * implementors have to subclass this class and implement the missing methods
- *
- * @since 3.3
- * @see TableViewerEditor
- * @see TreeViewerEditor
- */
-public abstract class ColumnViewerEditor {
-	private CellEditor cellEditor;
-
-	private ICellEditorListener cellEditorListener;
-
-	private FocusListener focusListener;
-
-	private MouseListener mouseListener;
-
-	private ColumnViewer viewer;
-
-	private TraverseListener tabeditingListener;
-
-	private ViewerCell cell;
-
-	private ListenerList editorActivationListener;
-
-	private ColumnViewerEditorActivationStrategy editorActivationStrategy;
-
-	private boolean inEditorDeactivation;
-	
-	private DisposeListener disposeListener;
-
-	/**
-	 * Tabbing from cell to cell is turned off
-	 */
-	public static final int DEFAULT = 1;
-
-	/**
-	 * Should if the end of the row is reach started from the start/end of the
-	 * row below/above
-	 */
-	public static final int TABBING_MOVE_TO_ROW_NEIGHBOR = 1 << 1;
-
-	/**
-	 * Should if the end of the row is reach started from the beginning in the
-	 * same row
-	 */
-	public static final int TABBING_CYCLE_IN_ROW = 1 << 2;
-
-	/**
-	 * Support tabbing to Cell above/below the current cell
-	 */
-	public static final int TABBING_VERTICAL = 1 << 3;
-
-	/**
-	 * Should tabbing from column to column with in one row be supported
-	 */
-	public static final int TABBING_HORIZONTAL = 1 << 4;
-
-	/**
-	 * Style mask used to enable keyboard activation
-	 */
-	public static final int KEYBOARD_ACTIVATION = 1 << 5;
-
-	/**
-	 * Style mask used to turn <b>off</b> the feature that an editor activation
-	 * is canceled on double click. It is also possible to turn off this feature
-	 * per cell-editor using {@link CellEditor#getDoubleClickTimeout()}
-	 * @since 3.4
-	 */
-	public static final int KEEP_EDITOR_ON_DOUBLE_CLICK = 1 << 6;
-
-	private int feature;
-
-	/**
-	 * @param viewer
-	 *            the viewer this editor is attached to
-	 * @param editorActivationStrategy
-	 *            the strategy used to decide about editor activation
-	 * @param feature
-	 *            bit mask controlling the editor
-	 *            <ul>
-	 *            <li>{@link ColumnViewerEditor#DEFAULT}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-	 *            </ul>
-	 */
-	protected ColumnViewerEditor(final ColumnViewer viewer,
-			ColumnViewerEditorActivationStrategy editorActivationStrategy,
-			int feature) {
-		this.viewer = viewer;
-		this.editorActivationStrategy = editorActivationStrategy;
-		if ((feature & KEYBOARD_ACTIVATION) == KEYBOARD_ACTIVATION) {
-			this.editorActivationStrategy
-					.setEnableEditorActivationWithKeyboard(true);
-		}
-		this.feature = feature;
-		this.disposeListener = new DisposeListener() {
-
-			public void widgetDisposed(DisposeEvent e) {
-				if( viewer.isCellEditorActive() ) {
-					cancelEditing();
-				}
-			}
-			
-		};
-		initCellEditorListener();
-	}
-
-	private void initCellEditorListener() {
-		cellEditorListener = new ICellEditorListener() {
-			public void editorValueChanged(boolean oldValidState,
-					boolean newValidState) {
-				// Ignore.
-			}
-
-			public void cancelEditor() {
-				ColumnViewerEditor.this.cancelEditing();
-			}
-
-			public void applyEditorValue() {
-				ColumnViewerEditor.this.applyEditorValue();
-			}
-		};
-	}
-
-	private boolean activateCellEditor(final ColumnViewerEditorActivationEvent activationEvent) {
-
-		ViewerColumn part = viewer.getViewerColumn(cell.getColumnIndex());
-		Object element = cell.getElement();
-
-		if (part != null && part.getEditingSupport() != null
-				&& part.getEditingSupport().canEdit(element)) {
-			cellEditor = part.getEditingSupport().getCellEditor(element);
-			if (cellEditor != null) {
-				int timeout = cellEditor.getDoubleClickTimeout();
-
-				final int activationTime;
-
-				if (timeout != 0) {
-					activationTime = activationEvent.time + timeout;
-				} else {
-					activationTime = 0;
-				}
-
-				if (editorActivationListener != null
-						&& !editorActivationListener.isEmpty()) {
-					Object[] ls = editorActivationListener.getListeners();
-					for (int i = 0; i < ls.length; i++) {
-						((ColumnViewerEditorActivationListener) ls[i])
-								.beforeEditorActivated(activationEvent);
-
-						// Was the activation canceled ?
-						if (activationEvent.cancel) {
-							return false;
-						}
-					}
-				}
-
-				updateFocusCell(cell, activationEvent);
-
-				cellEditor.addListener(cellEditorListener);
-				part.getEditingSupport().initializeCellEditorValue(cellEditor,
-						cell);
-
-				// Tricky flow of control here:
-				// activate() can trigger callback to cellEditorListener which
-				// will clear cellEditor
-				// so must get control first, but must still call activate()
-				// even if there is no control.
-				final Control control = cellEditor.getControl();
-				cellEditor.activate(activationEvent);
-				if (control == null) {
-					return false;
-				}
-				setLayoutData(cellEditor.getLayoutData());
-				setEditor(control, (Item) cell.getItem(), cell.getColumnIndex());
-				cellEditor.setFocus();
-
-				if (cellEditor.dependsOnExternalFocusListener()) {
-					if (focusListener == null) {
-						focusListener = new FocusAdapter() {
-							public void focusLost(FocusEvent e) {
-								applyEditorValue();
-							}
-						};
-					}
-					control.addFocusListener(focusListener);
-				}
-
-				mouseListener = new MouseAdapter() {
-					public void mouseDown(MouseEvent e) {
-						// time wrap?
-						// check for expiration of doubleClickTime
-						if (shouldFireDoubleClick(activationTime, e.time, activationEvent) && e.button == 1) {
-							control.removeMouseListener(mouseListener);
-							cancelEditing();
-							handleDoubleClickEvent();
-						} else if (mouseListener != null) {
-							control.removeMouseListener(mouseListener);
-						}
-					}
-				};
-
-				if (activationTime != 0
-						&& (feature & KEEP_EDITOR_ON_DOUBLE_CLICK) == 0) {
-					control.addMouseListener(mouseListener);
-				}
-
-				if (tabeditingListener == null) {
-					tabeditingListener = new TraverseListener() {
-
-						public void keyTraversed(TraverseEvent e) {
-							if ((feature & DEFAULT) != DEFAULT) {
-								processTraverseEvent(cell.getColumnIndex(),
-										viewer.getViewerRowFromItem(cell
-												.getItem()), e);
-							}
-						}
-					};
-				}
-
-				control.addTraverseListener(tabeditingListener);
-
-				if (editorActivationListener != null
-						&& !editorActivationListener.isEmpty()) {
-					Object[] ls = editorActivationListener.getListeners();
-					for (int i = 0; i < ls.length; i++) {
-						((ColumnViewerEditorActivationListener) ls[i])
-								.afterEditorActivated(activationEvent);
-					}
-				}
-				
-				this.cell.getItem().addDisposeListener(disposeListener);
-
-				return true;
-			}
-
-		}
-
-		return false;
-	}
-
-	private boolean shouldFireDoubleClick(int activationTime, int mouseTime,
-			ColumnViewerEditorActivationEvent activationEvent) {
-		return mouseTime <= activationTime
-				&& activationEvent.eventType != ColumnViewerEditorActivationEvent.KEY_PRESSED
-				&& activationEvent.eventType != ColumnViewerEditorActivationEvent.PROGRAMMATIC
-				&& activationEvent.eventType != ColumnViewerEditorActivationEvent.TRAVERSAL;
-	}
-
-	/**
-	 * Applies the current value and deactivates the currently active cell
-	 * editor.
-	 */
-	void applyEditorValue() {
-		// avoid re-entering
-		if (!inEditorDeactivation) {
-			try {
-				inEditorDeactivation = true;
-				CellEditor c = this.cellEditor;
-				if (c != null && this.cell != null) {
-					ColumnViewerEditorDeactivationEvent tmp = new ColumnViewerEditorDeactivationEvent(
-							cell);
-					tmp.eventType = ColumnViewerEditorDeactivationEvent.EDITOR_SAVED;
-					if (editorActivationListener != null
-							&& !editorActivationListener.isEmpty()) {
-						Object[] ls = editorActivationListener.getListeners();
-						for (int i = 0; i < ls.length; i++) {
-
-							((ColumnViewerEditorActivationListener) ls[i])
-									.beforeEditorDeactivated(tmp);
-						}
-					}
-
-					Item t = (Item) this.cell.getItem();
-
-					// don't null out table item -- same item is still selected
-					if (t != null && !t.isDisposed()) {
-						saveEditorValue(c);
-					}
-					if (!viewer.getControl().isDisposed()) {
-						setEditor(null, null, 0);
-					}
-
-					c.removeListener(cellEditorListener);
-					Control control = c.getControl();
-					if (control != null && !control.isDisposed()) {
-						if (mouseListener != null) {
-							control.removeMouseListener(mouseListener);
-							// Clear the instance not needed any more
-							mouseListener = null;
-						}
-						if (focusListener != null) {
-							control.removeFocusListener(focusListener);
-						}
-
-						if (tabeditingListener != null) {
-							control.removeTraverseListener(tabeditingListener);
-						}
-					}
-					c.deactivate(tmp);
-
-					if (editorActivationListener != null
-							&& !editorActivationListener.isEmpty()) {
-						Object[] ls = editorActivationListener.getListeners();
-						for (int i = 0; i < ls.length; i++) {
-							((ColumnViewerEditorActivationListener) ls[i])
-									.afterEditorDeactivated(tmp);
-						}
-					}
-					
-					if( ! this.cell.getItem().isDisposed() ) {
-						this.cell.getItem().removeDisposeListener(disposeListener);
-					}
-				}
-
-				this.cellEditor = null;
-				this.cell = null;
-			} finally {
-				inEditorDeactivation = false;
-			}
-		}
-	}
-
-	/**
-	 * Cancel editing
-	 */
-	void cancelEditing() {
-		// avoid re-entering
-		if (!inEditorDeactivation) {
-			try {
-				inEditorDeactivation = true;
-				if (cellEditor != null) {
-					ColumnViewerEditorDeactivationEvent tmp = new ColumnViewerEditorDeactivationEvent(
-							cell);
-					tmp.eventType = ColumnViewerEditorDeactivationEvent.EDITOR_CANCELED;
-					if (editorActivationListener != null
-							&& !editorActivationListener.isEmpty()) {
-						Object[] ls = editorActivationListener.getListeners();
-						for (int i = 0; i < ls.length; i++) {
-
-							((ColumnViewerEditorActivationListener) ls[i])
-									.beforeEditorDeactivated(tmp);
-						}
-					}
-
-					if (!viewer.getControl().isDisposed()) {
-						setEditor(null, null, 0);
-					}
-
-					cellEditor.removeListener(cellEditorListener);
-
-					Control control = cellEditor.getControl();
-					if (control != null && !viewer.getControl().isDisposed()) {
-						if (mouseListener != null) {
-							control.removeMouseListener(mouseListener);
-							// Clear the instance not needed any more
-							mouseListener = null;
-						}
-						if (focusListener != null) {
-							control.removeFocusListener(focusListener);
-						}
-
-						if (tabeditingListener != null) {
-							control.removeTraverseListener(tabeditingListener);
-						}
-					}
-
-					CellEditor oldEditor = cellEditor;
-					oldEditor.deactivate(tmp);
-
-					if (editorActivationListener != null
-							&& !editorActivationListener.isEmpty()) {
-						Object[] ls = editorActivationListener.getListeners();
-						for (int i = 0; i < ls.length; i++) {
-							((ColumnViewerEditorActivationListener) ls[i])
-									.afterEditorDeactivated(tmp);
-						}
-					}
-					
-					if( ! this.cell.getItem().isDisposed() ) {
-						this.cell.getItem().addDisposeListener(disposeListener);
-					}
-					
-					this.cellEditor = null;
-					this.cell = null;
-
-				}
-			} finally {
-				inEditorDeactivation = false;
-			}
-		}
-	}
-
-	/**
-	 * Enable the editor by mouse down
-	 *
-	 * @param event
-	 */
-	void handleEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
-
-		// Only activate if the event isn't tagged as canceled
-		if (!event.cancel
-				&& editorActivationStrategy.isEditorActivationEvent(event)) {
-			if (cellEditor != null) {
-				applyEditorValue();
-			}
-
-			this.cell = (ViewerCell) event.getSource();
-
-			// Only null if we are not in a deactivation process see bug 260892
-			if( ! activateCellEditor(event) && ! inEditorDeactivation ) {
-				this.cell = null;
-				this.cellEditor = null;
-			}
-		}
-	}
-
-	private void saveEditorValue(CellEditor cellEditor) {
-		ViewerColumn part = viewer.getViewerColumn(cell.getColumnIndex());
-
-		if (part != null && part.getEditingSupport() != null) {
-			part.getEditingSupport().saveCellEditorValue(cellEditor, cell);
-		}
-	}
-
-	/**
-	 * Return whether there is an active cell editor.
-	 *
-	 * @return <code>true</code> if there is an active cell editor; otherwise
-	 *         <code>false</code> is returned.
-	 */
-	boolean isCellEditorActive() {
-		return cellEditor != null;
-	}
-
-	void handleDoubleClickEvent() {
-		viewer.fireDoubleClick(new DoubleClickEvent(viewer, viewer
-				.getSelection()));
-		viewer.fireOpen(new OpenEvent(viewer, viewer.getSelection()));
-	}
-
-	/**
-	 * Adds the given listener, it is to be notified when the cell editor is
-	 * activated or deactivated.
-	 *
-	 * @param listener
-	 *            the listener to add
-	 */
-	public void addEditorActivationListener(
-			ColumnViewerEditorActivationListener listener) {
-		if (editorActivationListener == null) {
-			editorActivationListener = new ListenerList();
-		}
-		editorActivationListener.add(listener);
-	}
-
-	/**
-	 * Removes the given listener.
-	 *
-	 * @param listener
-	 *            the listener to remove
-	 */
-	public void removeEditorActivationListener(
-			ColumnViewerEditorActivationListener listener) {
-		if (editorActivationListener != null) {
-			editorActivationListener.remove(listener);
-		}
-	}
-
-	/**
-	 * Process the traverse event and opens the next available editor depending
-	 * of the implemented strategy. The default implementation uses the style
-	 * constants
-	 * <ul>
-	 * <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-	 * <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-	 * <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-	 * <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-	 * </ul>
-	 *
-	 * <p>
-	 * Subclasses may overwrite to implement their custom logic to edit the next
-	 * cell
-	 * </p>
-	 *
-	 * @param columnIndex
-	 *            the index of the current column
-	 * @param row
-	 *            the current row - may only be used for the duration of this
-	 *            method call
-	 * @param event
-	 *            the traverse event
-	 */
-	protected void processTraverseEvent(int columnIndex, ViewerRow row,
-			TraverseEvent event) {
-
-		ViewerCell cell2edit = null;
-
-		if (event.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
-			event.doit = false;
-
-			if ((event.stateMask & SWT.CTRL) == SWT.CTRL
-					&& (feature & TABBING_VERTICAL) == TABBING_VERTICAL) {
-				cell2edit = searchCellAboveBelow(row, viewer, columnIndex, true);
-			} else if ((feature & TABBING_HORIZONTAL) == TABBING_HORIZONTAL) {
-				cell2edit = searchPreviousCell(row, row.getCell(columnIndex),
-						row.getCell(columnIndex), viewer);
-			}
-		} else if (event.detail == SWT.TRAVERSE_TAB_NEXT) {
-			event.doit = false;
-
-			if ((event.stateMask & SWT.CTRL) == SWT.CTRL
-					&& (feature & TABBING_VERTICAL) == TABBING_VERTICAL) {
-				cell2edit = searchCellAboveBelow(row, viewer, columnIndex,
-						false);
-			} else if ((feature & TABBING_HORIZONTAL) == TABBING_HORIZONTAL) {
-				cell2edit = searchNextCell(row, row.getCell(columnIndex), row
-						.getCell(columnIndex), viewer);
-			}
-		}
-
-		if (cell2edit != null) {
-
-			viewer.getControl().setRedraw(false);
-			ColumnViewerEditorActivationEvent acEvent = new ColumnViewerEditorActivationEvent(
-					cell2edit, event);
-			viewer.triggerEditorActivationEvent(acEvent);
-			viewer.getControl().setRedraw(true);
-		}
-	}
-
-	private ViewerCell searchCellAboveBelow(ViewerRow row, ColumnViewer viewer,
-			int columnIndex, boolean above) {
-		ViewerCell rv = null;
-
-		ViewerRow newRow = null;
-
-		if (above) {
-			newRow = row.getNeighbor(ViewerRow.ABOVE, false);
-		} else {
-			newRow = row.getNeighbor(ViewerRow.BELOW, false);
-		}
-
-		if (newRow != null) {
-			ViewerColumn column = viewer.getViewerColumn(columnIndex);
-			if (column != null
-					&& column.getEditingSupport() != null
-					&& column.getEditingSupport().canEdit(
-							newRow.getItem().getData())) {
-				rv = newRow.getCell(columnIndex);
-			} else {
-				rv = searchCellAboveBelow(newRow, viewer, columnIndex, above);
-			}
-		}
-
-		return rv;
-	}
-
-	private boolean isCellEditable(ColumnViewer viewer, ViewerCell cell) {
-		ViewerColumn column = viewer.getViewerColumn(cell.getColumnIndex());
-		return column != null && column.getEditingSupport() != null
-				&& column.getEditingSupport().canEdit(cell.getElement());
-	}
-
-	private ViewerCell searchPreviousCell(ViewerRow row,
-			ViewerCell currentCell, ViewerCell originalCell, ColumnViewer viewer) {
-		ViewerCell rv = null;
-		ViewerCell previousCell;
-
-		if (currentCell != null) {
-			previousCell = currentCell.getNeighbor(ViewerCell.LEFT, true);
-		} else {
-			if (row.getColumnCount() != 0) {
-				previousCell = row.getCell(row.getCreationIndex(row
-						.getColumnCount() - 1));
-			} else {
-				previousCell = row.getCell(0);
-			}
-
-		}
-
-		// No endless loop
-		if (originalCell.equals(previousCell)) {
-			return null;
-		}
-
-		if (previousCell != null) {
-			if (isCellEditable(viewer, previousCell)) {
-				rv = previousCell;
-			} else {
-				rv = searchPreviousCell(row, previousCell, originalCell, viewer);
-			}
-		} else {
-			if ((feature & TABBING_CYCLE_IN_ROW) == TABBING_CYCLE_IN_ROW) {
-				rv = searchPreviousCell(row, null, originalCell, viewer);
-			} else if ((feature & TABBING_MOVE_TO_ROW_NEIGHBOR) == TABBING_MOVE_TO_ROW_NEIGHBOR) {
-				ViewerRow rowAbove = row.getNeighbor(ViewerRow.ABOVE, false);
-				if (rowAbove != null) {
-					rv = searchPreviousCell(rowAbove, null, originalCell,
-							viewer);
-				}
-			}
-		}
-
-		return rv;
-	}
-
-	private ViewerCell searchNextCell(ViewerRow row, ViewerCell currentCell,
-			ViewerCell originalCell, ColumnViewer viewer) {
-		ViewerCell rv = null;
-
-		ViewerCell nextCell;
-
-		if (currentCell != null) {
-			nextCell = currentCell.getNeighbor(ViewerCell.RIGHT, true);
-		} else {
-			nextCell = row.getCell(row.getCreationIndex(0));
-		}
-
-		// No endless loop
-		if (originalCell.equals(nextCell)) {
-			return null;
-		}
-
-		if (nextCell != null) {
-			if (isCellEditable(viewer, nextCell)) {
-				rv = nextCell;
-			} else {
-				rv = searchNextCell(row, nextCell, originalCell, viewer);
-			}
-		} else {
-			if ((feature & TABBING_CYCLE_IN_ROW) == TABBING_CYCLE_IN_ROW) {
-				rv = searchNextCell(row, null, originalCell, viewer);
-			} else if ((feature & TABBING_MOVE_TO_ROW_NEIGHBOR) == TABBING_MOVE_TO_ROW_NEIGHBOR) {
-				ViewerRow rowBelow = row.getNeighbor(ViewerRow.BELOW, false);
-				if (rowBelow != null) {
-					rv = searchNextCell(rowBelow, null, originalCell, viewer);
-				}
-			}
-		}
-
-		return rv;
-	}
-
-	/**
-	 * Position the editor inside the control
-	 *
-	 * @param w
-	 *            the editor control
-	 * @param item
-	 *            the item (row) in which the editor is drawn in
-	 * @param fColumnNumber
-	 *            the column number in which the editor is shown
-	 */
-	protected abstract void setEditor(Control w, Item item, int fColumnNumber);
-
-	/**
-	 * set the layout data for the editor
-	 *
-	 * @param layoutData
-	 *            the layout data used when editor is displayed
-	 */
-	protected abstract void setLayoutData(CellEditor.LayoutData layoutData);
-
-	/**
-	 * @param focusCell
-	 *            updates the cell with the current input focus
-	 * @param event
-	 *            the event requesting to update the focusCell
-	 */
-	protected abstract void updateFocusCell(ViewerCell focusCell,
-			ColumnViewerEditorActivationEvent event);
-
-	/**
-	 * @return the cell currently holding the focus if no cell has the focus or
-	 *         the viewer implementation doesn't support <code>null</code> is
-	 *         returned
-	 *
-	 */
-	public ViewerCell getFocusCell() {
-		return null;
-	}
-
-	/**
-	 * @return the viewer working for
-	 */
-	protected ColumnViewer getViewer() {
-		return viewer;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationEvent.java
deleted file mode 100644
index d951645..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationEvent.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.EventObject;
-
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.TraverseEvent;
-
-/**
- * This event is passed on when a cell-editor is going to be activated
- * 
- * @since 3.3
- * 
- */
-public class ColumnViewerEditorActivationEvent extends EventObject {
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * if a key is pressed on a selected cell
-	 */
-	public static final int KEY_PRESSED = 1;
-
-	/**
-	 * if a cell is selected using a single click of the mouse
-	 */
-	public static final int MOUSE_CLICK_SELECTION = 2;
-
-	/**
-	 * if a cell is selected using double clicking of the mouse
-	 */
-	public static final int MOUSE_DOUBLE_CLICK_SELECTION = 3;
-
-	/**
-	 * if a cell is activated using code like e.g
-	 * {@link ColumnViewer#editElement(Object, int)}
-	 */
-	public static final int PROGRAMMATIC = 4;
-
-	/**
-	 * is a cell is activated by traversing
-	 */
-	public static final int TRAVERSAL = 5;
-
-	/**
-	 * the original event triggered
-	 */
-	public EventObject sourceEvent;
-
-	/**
-	 * The time the event is triggered
-	 */
-	public int time;
-
-	/**
-	 * The event type triggered:
-	 * <ul>
-	 * <li>{@link #KEY_PRESSED} if a key is pressed on a selected cell</li>
-	 * <li>{@link #MOUSE_CLICK_SELECTION} if a cell is selected using a single
-	 * click of the mouse</li>
-	 * <li>{@link #MOUSE_DOUBLE_CLICK_SELECTION} if a cell is selected using
-	 * double clicking of the mouse</li>
-	 * </ul>
-	 */
-	public int eventType;
-
-	/**
-	 * <b>Only set for {@link #KEY_PRESSED}</b>
-	 */
-	public int keyCode;
-
-	/**
-	 * <b>Only set for {@link #KEY_PRESSED}</b>
-	 */
-	public char character;
-
-	/**
-	 * The statemask
-	 */
-	public int stateMask;
-
-	/**
-	 * Cancel the event (=> editor is not activated)
-	 */
-	public boolean cancel = false;
-	
-	/**
-	 * This constructor can be used when no event exists. The type set is
-	 * {@link #PROGRAMMATIC}
-	 * 
-	 * @param cell
-	 *            the cell
-	 */
-	public ColumnViewerEditorActivationEvent(ViewerCell cell) {
-		super(cell);
-		eventType = PROGRAMMATIC;
-	}
-
-	/**
-	 * This constructor is used for all types of mouse events. Currently the
-	 * type is can be {@link #MOUSE_CLICK_SELECTION} and
-	 * {@link #MOUSE_DOUBLE_CLICK_SELECTION}
-	 * 
-	 * @param cell
-	 *            the cell source of the event
-	 * @param event
-	 *            the event
-	 */
-	public ColumnViewerEditorActivationEvent(ViewerCell cell, MouseEvent event) {
-		super(cell);
-
-		if (event.count >= 2) {
-			eventType = MOUSE_DOUBLE_CLICK_SELECTION;
-		} else {
-			eventType = MOUSE_CLICK_SELECTION;
-		}
-
-		this.sourceEvent = event;
-		this.time = event.time;
-	}
-
-	/**
-	 * @param cell
-	 *            the cell source of the event
-	 * @param event
-	 *            the event
-	 */
-	public ColumnViewerEditorActivationEvent(ViewerCell cell, KeyEvent event) {
-		super(cell);
-		this.eventType = KEY_PRESSED;
-		this.sourceEvent = event;
-		this.time = event.time;
-		this.keyCode = event.keyCode;
-		this.character = event.character;
-		this.stateMask = event.stateMask;
-	}
-
-	/**
-	 * This constructor is used to mark the activation triggered by a traversal
-	 * 
-	 * @param cell
-	 *            the cell source of the event
-	 * @param event
-	 *            the event
-	 */
-	public ColumnViewerEditorActivationEvent(ViewerCell cell, TraverseEvent event) {
-		super(cell);
-		this.eventType = TRAVERSAL;
-		this.sourceEvent = event;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationListener.java
deleted file mode 100644
index 3f531ae..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationListener.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-/**
- * Parties interested in activation and deactivation of editors extend this
- * class and implement any or all of the methods
- * 
- * @since 3.3
- * 
- */
-public abstract class ColumnViewerEditorActivationListener {
-	/**
-	 * Called before an editor is activated
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	public abstract void beforeEditorActivated(ColumnViewerEditorActivationEvent event);
-
-	/**
-	 * Called after an editor has been activated
-	 * 
-	 * @param event the event
-	 */
-	public abstract void afterEditorActivated(ColumnViewerEditorActivationEvent event);
-
-	/**
-	 * Called before an editor is deactivated
-	 * 
-	 * @param event
-	 *            the event
-	 */
-	public abstract void beforeEditorDeactivated(ColumnViewerEditorDeactivationEvent event);
-
-	
-	/**
-	 * Called after an editor is deactivated
-	 * 
-	 * @param event the event
-	 */
-	public abstract void afterEditorDeactivated(ColumnViewerEditorDeactivationEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationStrategy.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationStrategy.java
deleted file mode 100644
index ce432e2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorActivationStrategy.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											 - fix for bug 187817
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseEvent;
-
-/**
- * This class is responsible to determine if a cell selection event is triggers
- * an editor activation. Implementors can extend and overwrite to implement
- * custom editing behavior
- *
- * @since 3.3
- */
-public class ColumnViewerEditorActivationStrategy {
-	private ColumnViewer viewer;
-
-	private KeyListener keyboardActivationListener;
-
-	/**
-	 * @param viewer
-	 *            the viewer the editor support is attached to
-	 */
-	public ColumnViewerEditorActivationStrategy(ColumnViewer viewer) {
-		this.viewer = viewer;
-	}
-
-	/**
-	 * @param event
-	 *            the event triggering the action
-	 * @return <code>true</code> if this event should open the editor
-	 */
-	protected boolean isEditorActivationEvent(
-			ColumnViewerEditorActivationEvent event) {
-		boolean singleSelect = ((IStructuredSelection)viewer.getSelection()).size() == 1;
-		boolean isLeftMouseSelect = event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION && ((MouseEvent)event.sourceEvent).button == 1;
-
-		return singleSelect && (isLeftMouseSelect
-				|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
-				|| event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL);
-	}
-
-	/**
-	 * @return the cell holding the current focus
-	 */
-	private ViewerCell getFocusCell() {
-		return viewer.getColumnViewerEditor().getFocusCell();
-	}
-
-	/**
-	 * @return the viewer
-	 */
-	public ColumnViewer getViewer() {
-		return viewer;
-	}
-
-	/**
-	 * Enable activation of cell editors by keyboard
-	 *
-	 * @param enable
-	 *            <code>true</code> to enable
-	 */
-	public void setEnableEditorActivationWithKeyboard(boolean enable) {
-		if (enable) {
-			if (keyboardActivationListener == null) {
-				keyboardActivationListener = new KeyListener() {
-
-					public void keyPressed(KeyEvent e) {
-						ViewerCell cell = getFocusCell();
-
-						if (cell != null) {
-							viewer
-									.triggerEditorActivationEvent(new ColumnViewerEditorActivationEvent(
-											cell, e));
-						}
-					}
-
-					public void keyReleased(KeyEvent e) {
-
-					}
-
-				};
-				viewer.getControl().addKeyListener(keyboardActivationListener);
-			}
-		} else {
-			if (keyboardActivationListener != null) {
-				viewer.getControl().removeKeyListener(
-						keyboardActivationListener);
-				keyboardActivationListener = null;
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorDeactivationEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorDeactivationEvent.java
deleted file mode 100644
index 3ed0168..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerEditorDeactivationEvent.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                                 fixes in bug: 178946
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.EventObject;
-
-/**
- * This event is fired when an editor deactivated
- *
- * @since 3.3
- * @noextend This class is not intended to be subclassed by clients.
- *
- */
-public class ColumnViewerEditorDeactivationEvent extends EventObject {
-
-	/**
-	 *
-	 */
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * The event type
-	 * @since 3.4
-	 */
-	public int eventType;
-
-	/**
-	 * Event when editor is canceled
-	 * @since 3.4
-	 */
-	public static final int EDITOR_CANCELED = 1;
-
-	/**
-	 * Event when editor is saved
-	 * @since 3.4
-	 */
-	public static final int EDITOR_SAVED = 2;
-
-	/**
-	 * @param source
-	 */
-	public ColumnViewerEditorDeactivationEvent(Object source) {
-		super(source);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerToolTipSupport.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerToolTipSupport.java
deleted file mode 100644
index c35461a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnViewerToolTipSupport.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                                 bugfix in: 195137, 198089
- *     Fredy Dobler <fredy@dobler.net> - bug 159600
- *     Brock Janiczak <brockj@tpg.com.au> - bug 182443
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.window.DefaultToolTip;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * The ColumnViewerTooltipSupport is the class that provides tool tips for
- * ColumnViewers.
- *
- * @since 3.3
- *
- */
-public class ColumnViewerToolTipSupport extends DefaultToolTip {
-	private ColumnViewer viewer;
-
-	private static final String VIEWER_CELL_KEY = Policy.JFACE
-			+ "_VIEWER_CELL_KEY"; //$NON-NLS-1$
-
-	private static final int DEFAULT_SHIFT_X = 10;
-
-	private static final int DEFAULT_SHIFT_Y = 0;
-
-	/**
-	 * Enable ToolTip support for the viewer by creating an instance from this
-	 * class. To get all necessary informations this support class consults the
-	 * {@link CellLabelProvider}.
-	 *
-	 * @param viewer
-	 *            the viewer the support is attached to
-	 * @param style
-	 *            style passed to control tool tip behavior
-	 *
-	 * @param manualActivation
-	 *            <code>true</code> if the activation is done manually using
-	 *            {@link #show(Point)}
-	 */
-	protected ColumnViewerToolTipSupport(ColumnViewer viewer, int style,
-			boolean manualActivation) {
-		super(viewer.getControl(), style, manualActivation);
-		this.viewer = viewer;
-	}
-
-	/**
-	 * Enable ToolTip support for the viewer by creating an instance from this
-	 * class. To get all necessary informations this support class consults the
-	 * {@link CellLabelProvider}.
-	 *
-	 * @param viewer
-	 *            the viewer the support is attached to
-	 */
-	public static void enableFor(ColumnViewer viewer) {
-		new ColumnViewerToolTipSupport(viewer, ToolTip.NO_RECREATE, false);
-	}
-
-	/**
-	 * Enable ToolTip support for the viewer by creating an instance from this
-	 * class. To get all necessary informations this support class consults the
-	 * {@link CellLabelProvider}.
-	 *
-	 * @param viewer
-	 *            the viewer the support is attached to
-	 * @param style
-	 *            style passed to control tool tip behavior
-	 *
-	 * @see ToolTip#RECREATE
-	 * @see ToolTip#NO_RECREATE
-	 */
-	public static void enableFor(ColumnViewer viewer, int style) {
-		new ColumnViewerToolTipSupport(viewer, style, false);
-	}
-
-	protected Object getToolTipArea(Event event) {
-		return viewer.getCell(new Point(event.x, event.y));
-	}
-
-	/**
-	 * Instead of overwriting this method subclasses should overwrite
-	 * {@link #createViewerToolTipContentArea(Event, ViewerCell, Composite)}
-	 */
-	protected Composite createToolTipContentArea(Event event, Composite parent) {
-		ViewerCell cell = (ViewerCell) getData(VIEWER_CELL_KEY);
-		setData(VIEWER_CELL_KEY, null);
-
-		return createViewerToolTipContentArea(event, cell, parent);
-	}
-
-	/**
-	 * Creates the content area of the tool tip giving access to the cell the
-	 * tip is shown for. Subclasses can overload this method to implement their
-	 * own tool tip design.
-	 *
-	 * <p>
-	 * This method is called from
-	 * {@link #createToolTipContentArea(Event, Composite)} and by default calls
-	 * the {@link DefaultToolTip#createToolTipContentArea(Event, Composite)}.
-	 * </p>
-	 *
-	 * @param event
-	 *            the event that which
-	 * @param cell
-	 *            the cell the tool tip is shown for
-	 * @param parent
-	 *            the parent of the control to create
-	 * @return the control to be displayed in the tool tip area
-	 * @since 3.4
-	 */
-	protected Composite createViewerToolTipContentArea(Event event,
-			ViewerCell cell, Composite parent) {
-		return super.createToolTipContentArea(event, parent);
-	}
-
-	protected boolean shouldCreateToolTip(Event event) {
-		if (!super.shouldCreateToolTip(event)) {
-			return false;
-		}
-
-		boolean rv = false;
-
-		ViewerRow row = viewer.getViewerRow(new Point(event.x, event.y));
-
-		viewer.getControl().setToolTipText(""); //$NON-NLS-1$
-		Point point = new Point(event.x, event.y);
-
-		if (row != null) {
-			Object element = row.getItem().getData();
-
-			ViewerCell cell = row.getCell(point);
-			
-			if( cell == null ) {
-				return false;
-			}
-			
-			ViewerColumn viewPart = viewer.getViewerColumn(cell
-					.getColumnIndex());
-
-			if (viewPart == null) {
-				return false;
-			}
-
-			CellLabelProvider labelProvider = viewPart.getLabelProvider();
-			boolean useNative = labelProvider.useNativeToolTip(element);
-
-			String text = labelProvider.getToolTipText(element);
-			Image img = null;
-
-			if (!useNative) {
-				img = labelProvider.getToolTipImage(element);
-			}
-
-			if (useNative || (text == null && img == null)) {
-				viewer.getControl().setToolTipText(text);
-				rv = false;
-			} else {
-				setPopupDelay(labelProvider.getToolTipDisplayDelayTime(element));
-				setHideDelay(labelProvider.getToolTipTimeDisplayed(element));
-
-				Point shift = labelProvider.getToolTipShift(element);
-
-				if (shift == null) {
-					setShift(new Point(DEFAULT_SHIFT_X, DEFAULT_SHIFT_Y));
-				} else {
-					setShift(new Point(shift.x, shift.y));
-				}
-
-				setData(VIEWER_CELL_KEY, cell);
-
-				setText(text);
-				setImage(img);
-				setStyle(labelProvider.getToolTipStyle(element));
-				setForegroundColor(labelProvider
-						.getToolTipForegroundColor(element));
-				setBackgroundColor(labelProvider
-						.getToolTipBackgroundColor(element));
-				setFont(labelProvider.getToolTipFont(element));
-
-				// Check if at least one of the values is set
-				rv = getText(event) != null || getImage(event) != null;
-			}
-		}
-
-		return rv;
-	}
-
-	protected void afterHideToolTip(Event event) {
-		super.afterHideToolTip(event);
-		// Clear the restored value else this could be a source of a leak
-		setData(VIEWER_CELL_KEY, null);
-		if (event != null && event.widget != viewer.getControl()) {
-			viewer.getControl().setFocus();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnWeightData.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnWeightData.java
deleted file mode 100644
index aa112e4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ColumnWeightData.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Describes the width of a table column in terms of a weight, 
- * a minimum width, and whether the column is resizable.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ColumnWeightData extends ColumnLayoutData {
-
-    /** 
-     * Default width of a column (in pixels).
-     */
-    public static final int MINIMUM_WIDTH = 20;
-
-    /**
-     * The column's minimum width in pixels.
-     */
-    public int minimumWidth;
-
-    /**
-     * The column's weight.
-     */
-    public int weight;
-
-    /**
-     * Creates a resizable column width with the given weight and a default
-     * minimum width.
-     *
-     * @param weight the weight of the column
-     */
-    public ColumnWeightData(int weight) {
-        this(weight, true);
-    }
-
-    /**
-     * Creates a resizable column width with the given weight and minimum width.
-     *
-     * @param weight the weight of the column
-     * @param minimumWidth the minimum width of the column in pixels
-     */
-    public ColumnWeightData(int weight, int minimumWidth) {
-        this(weight, minimumWidth, true);
-    }
-
-    /**
-     * Creates a column width with the given weight and minimum width.
-     *
-     * @param weight the weight of the column
-     * @param minimumWidth the minimum width of the column in pixels
-     * @param resizable <code>true</code> if the column is resizable,
-     *   and <code>false</code> if size of the column is fixed
-     */
-    public ColumnWeightData(int weight, int minimumWidth, boolean resizable) {
-        super(resizable);
-        Assert.isTrue(weight >= 0);
-        Assert.isTrue(minimumWidth >= 0);
-        this.weight = weight;
-        this.minimumWidth = minimumWidth;
-    }
-
-    /**
-     * Creates a column width with the given weight and a default
-     * minimum width.
-     *
-     * @param weight the weight of the column
-     * @param resizable <code>true</code> if the column is resizable,
-     *   and <code>false</code> if size of the column is fixed
-     */
-    public ColumnWeightData(int weight, boolean resizable) {
-        this(weight, MINIMUM_WIDTH, resizable);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxCellEditor.java
deleted file mode 100644
index 11c6136..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxCellEditor.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - bugfix in 174739
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.text.MessageFormat; // Not using ICU to support standalone JFace
-// scenario
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A cell editor that presents a list of items in a combo box. The cell editor's
- * value is the zero-based index of the selected item.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ComboBoxCellEditor extends AbstractComboBoxCellEditor {
-
-	/**
-	 * The list of items to present in the combo box.
-	 */
-	private String[] items;
-
-	/**
-	 * The zero-based index of the selected item.
-	 */
-	int selection;
-
-	/**
-	 * The custom combo box control.
-	 */
-	CCombo comboBox;
-
-	/**
-	 * Default ComboBoxCellEditor style
-	 */
-	private static final int defaultStyle = SWT.NONE;
-
-	/**
-	 * Creates a new cell editor with no control and no st of choices.
-	 * Initially, the cell editor has no cell validator.
-	 *
-	 * @since 2.1
-	 * @see CellEditor#setStyle
-	 * @see CellEditor#create
-	 * @see ComboBoxCellEditor#setItems
-	 * @see CellEditor#dispose
-	 */
-	public ComboBoxCellEditor() {
-		setStyle(defaultStyle);
-	}
-
-	/**
-	 * Creates a new cell editor with a combo containing the given list of
-	 * choices and parented under the given control. The cell editor value is
-	 * the zero-based index of the selected item. Initially, the cell editor has
-	 * no cell validator and the first item in the list is selected.
-	 *
-	 * @param parent
-	 *            the parent control
-	 * @param items
-	 *            the list of strings for the combo box
-	 */
-	public ComboBoxCellEditor(Composite parent, String[] items) {
-		this(parent, items, defaultStyle);
-	}
-
-	/**
-	 * Creates a new cell editor with a combo containing the given list of
-	 * choices and parented under the given control. The cell editor value is
-	 * the zero-based index of the selected item. Initially, the cell editor has
-	 * no cell validator and the first item in the list is selected.
-	 *
-	 * @param parent
-	 *            the parent control
-	 * @param items
-	 *            the list of strings for the combo box
-	 * @param style
-	 *            the style bits
-	 * @since 2.1
-	 */
-	public ComboBoxCellEditor(Composite parent, String[] items, int style) {
-		super(parent, style);
-		setItems(items);
-	}
-
-	/**
-	 * Returns the list of choices for the combo box
-	 *
-	 * @return the list of choices for the combo box
-	 */
-	public String[] getItems() {
-		return this.items;
-	}
-
-	/**
-	 * Sets the list of choices for the combo box
-	 *
-	 * @param items
-	 *            the list of choices for the combo box
-	 */
-	public void setItems(String[] items) {
-		Assert.isNotNull(items);
-		this.items = items;
-		populateComboBoxItems();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on CellEditor.
-	 */
-	protected Control createControl(Composite parent) {
-
-		comboBox = new CCombo(parent, getStyle());
-		comboBox.setFont(parent.getFont());
-
-		populateComboBoxItems();
-
-		comboBox.addKeyListener(new KeyAdapter() {
-			// hook key pressed - see PR 14201
-			public void keyPressed(KeyEvent e) {
-				keyReleaseOccured(e);
-			}
-		});
-
-		comboBox.addSelectionListener(new SelectionAdapter() {
-			public void widgetDefaultSelected(SelectionEvent event) {
-				applyEditorValueAndDeactivate();
-			}
-
-			public void widgetSelected(SelectionEvent event) {
-				selection = comboBox.getSelectionIndex();
-			}
-		});
-
-		comboBox.addTraverseListener(new TraverseListener() {
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_ESCAPE
-						|| e.detail == SWT.TRAVERSE_RETURN) {
-					e.doit = false;
-				}
-			}
-		});
-
-		comboBox.addFocusListener(new FocusAdapter() {
-			public void focusLost(FocusEvent e) {
-				ComboBoxCellEditor.this.focusLost();
-			}
-		});
-		return comboBox;
-	}
-
-	/**
-	 * The <code>ComboBoxCellEditor</code> implementation of this
-	 * <code>CellEditor</code> framework method returns the zero-based index
-	 * of the current selection.
-	 *
-	 * @return the zero-based index of the current selection wrapped as an
-	 *         <code>Integer</code>
-	 */
-	protected Object doGetValue() {
-		return new Integer(selection);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on CellEditor.
-	 */
-	protected void doSetFocus() {
-		comboBox.setFocus();
-	}
-
-	/**
-	 * The <code>ComboBoxCellEditor</code> implementation of this
-	 * <code>CellEditor</code> framework method sets the minimum width of the
-	 * cell. The minimum width is 10 characters if <code>comboBox</code> is
-	 * not <code>null</code> or <code>disposed</code> else it is 60 pixels
-	 * to make sure the arrow button and some text is visible. The list of
-	 * CCombo will be wide enough to show its longest item.
-	 */
-	public LayoutData getLayoutData() {
-		LayoutData layoutData = super.getLayoutData();
-		if ((comboBox == null) || comboBox.isDisposed()) {
-			layoutData.minimumWidth = 60;
-		} else {
-			// make the comboBox 10 characters wide
-			GC gc = new GC(comboBox);
-			layoutData.minimumWidth = (gc.getFontMetrics()
-					.getAverageCharWidth() * 10) + 10;
-			gc.dispose();
-		}
-		return layoutData;
-	}
-
-	/**
-	 * The <code>ComboBoxCellEditor</code> implementation of this
-	 * <code>CellEditor</code> framework method accepts a zero-based index of
-	 * a selection.
-	 *
-	 * @param value
-	 *            the zero-based index of the selection wrapped as an
-	 *            <code>Integer</code>
-	 */
-	protected void doSetValue(Object value) {
-		Assert.isTrue(comboBox != null && (value instanceof Integer));
-		selection = ((Integer) value).intValue();
-		comboBox.select(selection);
-	}
-
-	/**
-	 * Updates the list of choices for the combo box for the current control.
-	 */
-	private void populateComboBoxItems() {
-		if (comboBox != null && items != null) {
-			comboBox.removeAll();
-			for (int i = 0; i < items.length; i++) {
-				comboBox.add(items[i], i);
-			}
-
-			setValueValid(true);
-			selection = 0;
-		}
-	}
-
-	/**
-	 * Applies the currently selected value and deactivates the cell editor
-	 */
-	void applyEditorValueAndDeactivate() {
-		// must set the selection before getting value
-		selection = comboBox.getSelectionIndex();
-		Object newValue = doGetValue();
-		markDirty();
-		boolean isValid = isCorrect(newValue);
-		setValueValid(isValid);
-
-		if (!isValid) {
-			// Only format if the 'index' is valid
-			if (items.length > 0 && selection >= 0 && selection < items.length) {
-				// try to insert the current value into the error message.
-				setErrorMessage(MessageFormat.format(getErrorMessage(),
-						new Object[] { items[selection] }));
-			} else {
-				// Since we don't have a valid index, assume we're using an
-				// 'edit'
-				// combo so format using its text value
-				setErrorMessage(MessageFormat.format(getErrorMessage(),
-						new Object[] { comboBox.getText() }));
-			}
-		}
-
-		fireApplyEditorValue();
-		deactivate();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.CellEditor#focusLost()
-	 */
-	protected void focusLost() {
-		if (isActivated()) {
-			applyEditorValueAndDeactivate();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.CellEditor#keyReleaseOccured(org.eclipse.swt.events.KeyEvent)
-	 */
-	protected void keyReleaseOccured(KeyEvent keyEvent) {
-		if (keyEvent.character == '\u001b') { // Escape character
-			fireCancelEditor();
-		} else if (keyEvent.character == '\t') { // tab key
-			applyEditorValueAndDeactivate();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxViewerCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxViewerCellEditor.java
deleted file mode 100644
index f47de75..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboBoxViewerCellEditor.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                                 bugfix in 174739
- *     Eric Rizzo - bug 213315
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.text.MessageFormat; // Not using ICU to support standalone JFace
-// scenario
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A cell editor that presents a list of items in a combo box. In contrast to
- * {@link ComboBoxCellEditor} it wraps the underlying {@link CCombo} using a
- * {@link ComboViewer}
- * @since 3.4
- */
-public class ComboBoxViewerCellEditor extends AbstractComboBoxCellEditor {
-
-	/**
-	 * The custom combo box control.
-	 */
-	ComboViewer viewer;
-
-	Object selectedValue;
-
-	/**
-	 * Default ComboBoxCellEditor style
-	 */
-	private static final int defaultStyle = SWT.NONE;
-
-	/**
-	 * Creates a new cell editor with a combo viewer and a default style
-	 *
-	 * @param parent
-	 *            the parent control
-	 */
-	public ComboBoxViewerCellEditor(Composite parent) {
-		this(parent, defaultStyle);
-	}
-
-	/**
-	 * Creates a new cell editor with a combo viewer and the given style
-	 *
-	 * @param parent
-	 *            the parent control
-	 * @param style
-	 *            the style bits
-	 */
-	public ComboBoxViewerCellEditor(Composite parent, int style) {
-		super(parent, style);
-		setValueValid(true);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on CellEditor.
-	 */
-	protected Control createControl(Composite parent) {
-
-		CCombo comboBox = new CCombo(parent, getStyle());
-		comboBox.setFont(parent.getFont());
-		viewer = new ComboViewer(comboBox);
-
-		comboBox.addKeyListener(new KeyAdapter() {
-			// hook key pressed - see PR 14201
-			public void keyPressed(KeyEvent e) {
-				keyReleaseOccured(e);
-			}
-		});
-
-		comboBox.addSelectionListener(new SelectionAdapter() {
-			public void widgetDefaultSelected(SelectionEvent event) {
-				applyEditorValueAndDeactivate();
-			}
-
-			public void widgetSelected(SelectionEvent event) {
-				ISelection selection = viewer.getSelection();
-				if (selection.isEmpty()) {
-					selectedValue = null;
-				} else {
-					selectedValue = ((IStructuredSelection) selection)
-							.getFirstElement();
-				}
-			}
-		});
-
-		comboBox.addTraverseListener(new TraverseListener() {
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_ESCAPE
-						|| e.detail == SWT.TRAVERSE_RETURN) {
-					e.doit = false;
-				}
-			}
-		});
-
-		comboBox.addFocusListener(new FocusAdapter() {
-			public void focusLost(FocusEvent e) {
-				ComboBoxViewerCellEditor.this.focusLost();
-			}
-		});
-		return comboBox;
-	}
-
-	/**
-	 * The <code>ComboBoxCellEditor</code> implementation of this
-	 * <code>CellEditor</code> framework method returns the zero-based index
-	 * of the current selection.
-	 *
-	 * @return the zero-based index of the current selection wrapped as an
-	 *         <code>Integer</code>
-	 */
-	protected Object doGetValue() {
-		return selectedValue;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on CellEditor.
-	 */
-	protected void doSetFocus() {
-		viewer.getControl().setFocus();
-	}
-
-	/**
-	 * The <code>ComboBoxCellEditor</code> implementation of this
-	 * <code>CellEditor</code> framework method sets the minimum width of the
-	 * cell. The minimum width is 10 characters if <code>comboBox</code> is
-	 * not <code>null</code> or <code>disposed</code> eles it is 60 pixels
-	 * to make sure the arrow button and some text is visible. The list of
-	 * CCombo will be wide enough to show its longest item.
-	 */
-	public LayoutData getLayoutData() {
-		LayoutData layoutData = super.getLayoutData();
-		if ((viewer.getControl() == null) || viewer.getControl().isDisposed()) {
-			layoutData.minimumWidth = 60;
-		} else {
-			// make the comboBox 10 characters wide
-			GC gc = new GC(viewer.getControl());
-			layoutData.minimumWidth = (gc.getFontMetrics()
-					.getAverageCharWidth() * 10) + 10;
-			gc.dispose();
-		}
-		return layoutData;
-	}
-
-	/**
-	 * Set a new value
-	 *
-	 * @param value
-	 *            the new value
-	 */
-	protected void doSetValue(Object value) {
-	    Assert.isTrue(viewer != null);
-	    selectedValue = value;
-	    if (value == null) {
-	        viewer.setSelection(StructuredSelection.EMPTY);
-	    } else {
-	        viewer.setSelection(new StructuredSelection(value));
-	    }
-	}
-
-	/**
-	 * @param labelProvider
-	 *            the label provider used
-	 * @see StructuredViewer#setLabelProvider(IBaseLabelProvider)
-	 */
-	public void setLabelProvider(IBaseLabelProvider labelProvider) {
-		viewer.setLabelProvider(labelProvider);
-	}
-
-	/**
-	 * @param provider
-	 *            the content provider used
-	 * @see StructuredViewer#setContentProvider(IContentProvider)
-	 */
-	public void setContenProvider(IStructuredContentProvider provider) {
-		viewer.setContentProvider(provider);
-	}
-
-	/**
-	 * @param input
-	 *            the input used
-	 * @see StructuredViewer#setInput(Object)
-	 */
-	public void setInput(Object input) {
-		viewer.setInput(input);
-	}
-
-	/**
-	 * @return get the viewer
-	 */
-	public ComboViewer getViewer() {
-		return viewer;
-	}
-
-	/**
-	 * Applies the currently selected value and deactiavates the cell editor
-	 */
-	void applyEditorValueAndDeactivate() {
-		// must set the selection before getting value
-		ISelection selection = viewer.getSelection();
-		if (selection.isEmpty()) {
-			selectedValue = null;
-		} else {
-			selectedValue = ((IStructuredSelection) selection)
-					.getFirstElement();
-		}
-
-		Object newValue = doGetValue();
-		markDirty();
-		boolean isValid = isCorrect(newValue);
-		setValueValid(isValid);
-
-		if (!isValid) {
-			MessageFormat.format(getErrorMessage(),
-					new Object[] { selectedValue });
-		}
-
-		fireApplyEditorValue();
-		deactivate();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.CellEditor#focusLost()
-	 */
-	protected void focusLost() {
-		if (isActivated()) {
-			applyEditorValueAndDeactivate();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.CellEditor#keyReleaseOccured(org.eclipse.swt.events.KeyEvent)
-	 */
-	protected void keyReleaseOccured(KeyEvent keyEvent) {
-		if (keyEvent.character == '\u001b') { // Escape character
-			fireCancelEditor();
-		} else if (keyEvent.character == '\t') { // tab key
-			applyEditorValueAndDeactivate();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboViewer.java
deleted file mode 100644
index 27421a3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ComboViewer.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 - bug 69254
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A concrete viewer based either on an SWT <code>Combo</code> control or <code>CCombo</code>
- * control. This class is intended as an alternative to the JFace <code>ListViewer</code>, which displays
- * its content in a combo box rather than a list. Wherever possible, this class attempts to behave
- * like ListViewer. <p>
- * 
- * This class is designed to be instantiated with a pre-existing SWT combo control 
- * and configured with a domain-specific content provider, label provider, element
- * filter (optional), and element sorter (optional).
- * </p>
- * 
- * @see org.eclipse.jface.viewers.ListViewer
- * @since 3.0 (made non-final in 3.4)
- */
-public class ComboViewer extends AbstractListViewer {
-
-    /**
-     * This viewer's list control if this viewer is instantiated with a combo control; otherwise
-     * <code>null</code>.
-     * 
-     * @see #ComboViewer(Combo)
-     */
-    private Combo combo;
-    
-    /**
-     * This viewer's list control if this viewer is instantiated with a CCombo control; otherwise
-     * <code>null</code>.
-     * 
-     * @see #ComboViewer(CCombo)
-     * @since 3.3
-     */
-    private CCombo ccombo;
-
-    /**
-     * Creates a combo viewer on a newly-created combo control under the given parent.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     */
-    public ComboViewer(Composite parent) {
-        this(parent, SWT.READ_ONLY | SWT.BORDER);
-    }
-
-    /**
-     * Creates a combo viewer on a newly-created combo control under the given parent.
-     * The combo control is created using the given SWT style bits.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     * @param style the SWT style bits
-     */
-    public ComboViewer(Composite parent, int style) {
-        this(new Combo(parent, style));
-    }
-
-    /**
-     * Creates a combo viewer on the given combo control.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param list the combo control
-     */
-    public ComboViewer(Combo list) {
-        this.combo = list;
-        hookControl(list);
-    }
-    
-    /**
-     * Creates a combo viewer on the given CCombo control.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param list the CCombo control
-     * @since 3.3
-     */
-    public ComboViewer(CCombo list) {
-        this.ccombo = list;
-        hookControl(list);
-    }
-
-    protected void listAdd(String string, int index) {
-        if (combo == null) {
-            ccombo.add(string, index);
-        } else {
-            combo.add(string, index);
-        }
-    }
-
-    protected void listSetItem(int index, String string) {
-        if (combo == null) {
-            ccombo.setItem(index, string);
-        } else {
-            combo.setItem(index, string);
-        }
-    }
-
-    protected int[] listGetSelectionIndices() {
-        if (combo == null) {
-            return new int[] { ccombo.getSelectionIndex() };
-        } else {
-            return new int[] { combo.getSelectionIndex() };
-        }
-    }
-
-    protected int listGetItemCount() {
-        if (combo == null) {
-            return ccombo.getItemCount();
-        } else {
-            return combo.getItemCount();
-        }
-    }
-
-    protected void listSetItems(String[] labels) {
-        if (combo == null) {
-            ccombo.setItems(labels);
-        } else {
-            combo.setItems(labels);
-        }
-    }
-
-    protected void listRemoveAll() {
-        if (combo == null) {
-            ccombo.removeAll();
-        } else {
-            combo.removeAll();
-        }
-    }
-
-    protected void listRemove(int index) {
-        if (combo == null) {
-            ccombo.remove(index);
-        } else {
-            combo.remove(index);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    public Control getControl() {
-        if (combo == null) {
-            return ccombo;
-        } else {
-            return combo;
-        }
-    }
-
-    /**
-	 * Returns this list viewer's list control. If the viewer was not created on
-	 * a CCombo control, some kind of unchecked exception is thrown.
-	 * 
-	 * @return the list control
-     * @since 3.3
-	 */
-    public CCombo getCCombo() {
-        Assert.isNotNull(ccombo);
-        return ccombo;
-    }
-
-    /**
-     * Returns this list viewer's list control. If the viewer was not created on
-	 * a Combo control, some kind of unchecked exception is thrown.
-     *
-     * @return the list control
-     */
-    public Combo getCombo() {
-    	Assert.isNotNull(combo);
-        return combo;
-    }
-    
-    /*
-     * Do nothing -- combos only display the selected element, so there is no way
-     * we can ensure that the given element is visible without changing the selection.
-     * Method defined on StructuredViewer.
-     */
-    public void reveal(Object element) {
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listSetSelection(int[])
-     */
-    protected void listSetSelection(int[] ixs) {
-        if (combo == null) {
-            for (int idx = 0; idx < ixs.length; idx++) {
-                ccombo.select(ixs[idx]);
-            }
-        } else {
-            for (int idx = 0; idx < ixs.length; idx++) {
-                combo.select(ixs[idx]);
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listDeselectAll()
-     */
-    protected void listDeselectAll() {
-        if (combo == null) {
-            ccombo.deselectAll();
-            ccombo.clearSelection();
-        } else {
-            combo.deselectAll();
-            combo.clearSelection();
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listShowSelection()
-     */
-    protected void listShowSelection() {
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java
deleted file mode 100644
index 38acd10..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ContentViewer.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.internal.InternalPolicy;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A content viewer is a model-based adapter on a widget which accesses its
- * model by means of a content provider and a label provider.
- * <p>
- * A viewer's model consists of elements, represented by objects.
- * A viewer defines and implements generic infrastructure for handling model 
- * input, updates, and selections in terms of elements.
- * Input is obtained by querying an <code>IContentProvider</code> which returns
- * elements. The elements themselves are not displayed directly.  They are
- * mapped to labels, containing text and/or an image, using the viewer's 
- * <code>ILabelProvider</code>.
- * </p>
- * <p>
- * Implementing a concrete content viewer typically involves the following steps:
- * <ul>
- * <li>
- * create SWT controls for viewer (in constructor) (optional)
- * </li>
- * <li>
- * initialize SWT controls from input (inputChanged)
- * </li>
- * <li>
- * define viewer-specific update methods
- * </li>
- * <li>
- * support selections (<code>setSelection</code>, <code>getSelection</code>)
- * </ul>
- * </p>
- */
-public abstract class ContentViewer extends Viewer {
-
-    /**
-     * This viewer's content provider, or <code>null</code> if none.
-     */
-    private IContentProvider contentProvider = null;
-
-    /**
-     * This viewer's input, or <code>null</code> if none.
-     * The viewer's input provides the "model" for the viewer's content.
-     */
-    private Object input = null;
-
-    /**
-     * This viewer's label provider. Initially <code>null</code>, but
-     * lazily initialized (to a <code>SimpleLabelProvider</code>).
-     */
-    private IBaseLabelProvider labelProvider = null;
-
-    /**
-     * This viewer's label provider listener.
-     * Note: Having a viewer register a label provider listener with
-     * a label provider avoids having to define public methods
-     * for internal events.
-     */
-    private final ILabelProviderListener labelProviderListener = new ILabelProviderListener() {
-    	private boolean logWhenDisposed = true; // initially true, set to false
-        
-        public void labelProviderChanged(LabelProviderChangedEvent event) {
-        	Control control = getControl();
-        	if (control == null || control.isDisposed()) {
-    			if (logWhenDisposed) {
-    				String message = "Ignored labelProviderChanged notification because control is diposed." + //$NON-NLS-1$
-    						" This indicates a potential memory leak."; //$NON-NLS-1$
-    				if (!InternalPolicy.DEBUG_LOG_LABEL_PROVIDER_NOTIFICATIONS_WHEN_DISPOSED) {
-    					// stop logging after the first
-    					logWhenDisposed = false;
-    					message += " This is only logged once per viewer instance," + //$NON-NLS-1$
-    							" but similar calls will still be ignored."; //$NON-NLS-1$
-    				}
-    				Policy.getLog().log(
-    						new Status(IStatus.WARNING, Policy.JFACE, message,
-    								new RuntimeException()));
-    			}
-        		return;
-        	}
-        	ContentViewer.this.handleLabelProviderChanged(event);
-        }
-    };
-
-    /**
-     * Creates a content viewer with no input, no content provider, and a
-     * default label provider.
-     */
-    protected ContentViewer() {
-    }
-
-    /**
-     * Returns the content provider used by this viewer, 
-     * or <code>null</code> if this view does not yet have a content
-     * provider.
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method returns the content
-     * provider recorded is an internal state variable. 
-     * Overriding this method is generally not required; 
-     * however, if overriding in a subclass, 
-     * <code>super.getContentProvider</code> must be invoked.
-     * </p>
-     *
-     * @return the content provider, or <code>null</code> if none
-     */
-    public IContentProvider getContentProvider() {
-        return contentProvider;
-    }
-
-    /**
-     * The <code>ContentViewer</code> implementation of this <code>IInputProvider</code> 
-     * method returns the current input of this viewer, or <code>null</code>
-     * if none. The viewer's input provides the "model" for the viewer's
-     * content.
-     */
-    public Object getInput() {
-        return input;
-    }
-
-    /**
-     * Returns the label provider used by this viewer.
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method returns the label
-     * provider recorded in an internal state variable; if none has been
-     * set (with <code>setLabelProvider</code>) a default label provider
-     * will be created, remembered, and returned.
-     * Overriding this method is generally not required; 
-     * however, if overriding in a subclass,
-     * <code>super.getLabelProvider</code> must be invoked.
-     * </p>
-     *
-     * @return a label provider
-     */
-    public IBaseLabelProvider getLabelProvider() {
-        if (labelProvider == null) {
-			labelProvider = new LabelProvider();
-		}
-        return labelProvider;
-    }
-
-    /**
-     * Handles a dispose event on this viewer's control.
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method disposes of this
-     * viewer's label provider and content provider (if it has one).
-     * Subclasses should override this method to perform any additional
-     * cleanup of resources; however, overriding methods must invoke
-     * <code>super.handleDispose</code>.
-     * </p>
-     *
-     * @param event a dispose event
-     */
-    protected void handleDispose(DisposeEvent event) {
-        if (contentProvider != null) {
-            contentProvider.inputChanged(this, getInput(), null);
-            contentProvider.dispose();
-            contentProvider = null;
-        }
-        if (labelProvider != null) {
-            labelProvider.removeListener(labelProviderListener);
-            labelProvider.dispose();
-            labelProvider = null;
-        }
-        input = null;
-    }
-
-    /**
-     * Handles a label provider changed event.
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method calls <code>labelProviderChanged()</code>
-     * to cause a complete refresh of the viewer.
-     * Subclasses may reimplement or extend. 
-     * </p>
-     * @param event the change event
-     */
-    protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
-        labelProviderChanged();
-    }
-
-    /**
-     * Adds event listener hooks to the given control.
-     * <p>
-     * All subclasses must call this method when their control is
-     * first established.
-     * </p> 
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method hooks 
-     * dispose events for the given control.
-     * Subclasses may override if they need to add other control hooks;
-     * however, <code>super.hookControl</code> must be invoked.
-     * </p>
-     *
-     * @param control the control
-     */
-    protected void hookControl(Control control) {
-        control.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent event) {
-                handleDispose(event);
-            }
-        });
-    }
-
-    /**
-     * Notifies that the label provider has changed.
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method calls <code>refresh()</code>.
-     * Subclasses may reimplement or extend.
-     * </p>
-     */
-    protected void labelProviderChanged() {
-        refresh();
-    }
-
-    /**
-     * Sets the content provider used by this viewer.
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method records the 
-     * content provider in an internal state variable.
-     * Overriding this method is generally not required; 
-     * however, if overriding in a subclass,
-     * <code>super.setContentProvider</code> must be invoked.
-     * </p>
-     *
-     * @param contentProvider the content provider
-     * @see #getContentProvider
-     */
-    public void setContentProvider(IContentProvider contentProvider) {
-        Assert.isNotNull(contentProvider);
-        IContentProvider oldContentProvider = this.contentProvider;
-        this.contentProvider = contentProvider;
-        if (oldContentProvider != null) {
-            Object currentInput = getInput();
-            oldContentProvider.inputChanged(this, currentInput, null);
-            oldContentProvider.dispose();
-            contentProvider.inputChanged(this, null, currentInput);
-            refresh();
-        }
-    }
-
-    /**
-     * The <code>ContentViewer</code> implementation of this <code>Viewer</code>
-     * method invokes <code>inputChanged</code> on the content provider and then the
-     * <code>inputChanged</code> hook method. This method fails if this viewer does
-     * not have a content provider. Subclassers are advised to override 
-     * <code>inputChanged</code> rather than this method, but may extend this method
-     * if required.
-     */
-    public void setInput(Object input) {
-        Assert
-                .isTrue(getContentProvider() != null,
-                        "ContentViewer must have a content provider when input is set."); //$NON-NLS-1$
-
-        Object oldInput = getInput();
-        contentProvider.inputChanged(this, oldInput, input);
-        this.input = input;
-
-        // call input hook
-        inputChanged(this.input, oldInput);
-    }
-
-    /**
-     * Sets the label provider for this viewer.
-     * <p>
-     * The <code>ContentViewer</code> implementation of this method ensures that the
-     * given label provider is connected to this viewer and the
-     * former label provider is disconnected from this viewer.
-     * Overriding this method is generally not required; 
-     * however, if overriding in a subclass,
-     * <code>super.setLabelProvider</code> must be invoked.
-     * </p>
-     *
-     * @param labelProvider the label provider, or <code>null</code> if none
-     */
-    public void setLabelProvider(IBaseLabelProvider labelProvider) {
-        IBaseLabelProvider oldProvider = this.labelProvider;
-        // If it hasn't changed, do nothing.
-        // This also ensures that the provider is not disposed
-        // if set a second time.
-        if (labelProvider == oldProvider) {
-            return;
-        }
-        if (oldProvider != null) {
-            oldProvider.removeListener(this.labelProviderListener);
-        }
-        this.labelProvider = labelProvider;
-        if (labelProvider != null) {
-            labelProvider.addListener(this.labelProviderListener);
-        }
-        refresh();
-
-        // Dispose old provider after refresh, so that items never refer to stale images.
-        if (oldProvider != null) {
-    		internalDisposeLabelProvider(oldProvider);
-        }
-    }
-
-	/**
-	 * @param oldProvider
-	 * 
-	 * @since 3.4
-	 */
-	void internalDisposeLabelProvider(IBaseLabelProvider oldProvider) {
-		oldProvider.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CustomHashtable.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CustomHashtable.java
deleted file mode 100644
index c611558..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/CustomHashtable.java
+++ /dev/null
@@ -1,434 +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:
- *     Peter Shipton - original hashtable implementation
- *     Nick Edgar - added element comparer support
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.Enumeration;
-import java.util.NoSuchElementException;
-
-/**
- * CustomHashtable associates keys with values. Keys and values cannot be null.
- * The size of the Hashtable is the number of key/value pairs it contains.
- * The capacity is the number of key/value pairs the Hashtable can hold.
- * The load factor is a float value which determines how full the Hashtable
- * gets before expanding the capacity. If the load factor of the Hashtable
- * is exceeded, the capacity is doubled.
- * <p>
- * CustomHashtable allows a custom comparator and hash code provider.
- */
-/* package */final class CustomHashtable {
-
-    /**
-     * HashMapEntry is an internal class which is used to hold the entries of a Hashtable.
-     */
-    private static class HashMapEntry {
-        Object key, value;
-
-        HashMapEntry next;
-
-        HashMapEntry(Object theKey, Object theValue) {
-            key = theKey;
-            value = theValue;
-        }
-    }
-
-    private static final class EmptyEnumerator implements Enumeration {
-        public boolean hasMoreElements() {
-            return false;
-        }
-
-        public Object nextElement() {
-            throw new NoSuchElementException();
-        }
-    }
-
-    private class HashEnumerator implements Enumeration {
-        boolean key;
-
-        int start;
-
-        HashMapEntry entry;
-
-        HashEnumerator(boolean isKey) {
-            key = isKey;
-            start = firstSlot;
-        }
-
-        public boolean hasMoreElements() {
-            if (entry != null) {
-				return true;
-			}
-            while (start <= lastSlot) {
-				if (elementData[start++] != null) {
-                    entry = elementData[start - 1];
-                    return true;
-                }
-			}
-            return false;
-        }
-
-        public Object nextElement() {
-            if (hasMoreElements()) {
-                Object result = key ? entry.key : entry.value;
-                entry = entry.next;
-                return result;
-            } else {
-				throw new NoSuchElementException();
-			}
-        }
-    }
-
-    transient int elementCount;
-
-    transient HashMapEntry[] elementData;
-
-    private float loadFactor;
-
-    private int threshold;
-
-    transient int firstSlot = 0;
-
-    transient int lastSlot = -1;
-
-    transient private IElementComparer comparer;
-
-    private static final EmptyEnumerator emptyEnumerator = new EmptyEnumerator();
-
-    /**
-     * The default capacity used when not specified in the constructor.
-     */
-    public static final int DEFAULT_CAPACITY = 13;
-
-    /**
-     * Constructs a new Hashtable using the default capacity
-     * and load factor.
-     */
-    public CustomHashtable() {
-        this(13);
-    }
-
-    /**
-     * Constructs a new Hashtable using the specified capacity
-     * and the default load factor.
-     *
-     * @param capacity the initial capacity
-     */
-    public CustomHashtable(int capacity) {
-        this(capacity, null);
-    }
-
-    /**
-     * Constructs a new hash table with the default capacity and the given
-     * element comparer.
-     *
-     * @param comparer the element comparer to use to compare keys and obtain
-     *   hash codes for keys, or <code>null</code>  to use the normal 
-     *   <code>equals</code> and <code>hashCode</code> methods
-     */
-    public CustomHashtable(IElementComparer comparer) {
-        this(DEFAULT_CAPACITY, comparer);
-    }
-
-    /**
-     * Constructs a new hash table with the given capacity and the given
-     * element comparer.
-     * 
-     * @param capacity the maximum number of elements that can be added without
-     *   rehashing
-     * @param comparer the element comparer to use to compare keys and obtain
-     *   hash codes for keys, or <code>null</code>  to use the normal 
-     *   <code>equals</code> and <code>hashCode</code> methods
-     */
-    public CustomHashtable(int capacity, IElementComparer comparer) {
-        if (capacity >= 0) {
-            elementCount = 0;
-            elementData = new HashMapEntry[capacity == 0 ? 1 : capacity];
-            firstSlot = elementData.length;
-            loadFactor = 0.75f;
-            computeMaxSize();
-        } else {
-			throw new IllegalArgumentException();
-		}
-        this.comparer = comparer;
-    }
-
-    /**
-     * Constructs a new hash table with enough capacity to hold all keys in the
-     * given hash table, then adds all key/value pairs in the given hash table
-     * to the new one, using the given element comparer.
-     * @param table the original hash table to copy from
-     * 
-     * @param comparer the element comparer to use to compare keys and obtain
-     *   hash codes for keys, or <code>null</code>  to use the normal 
-     *   <code>equals</code> and <code>hashCode</code> methods
-     */
-    public CustomHashtable(CustomHashtable table, IElementComparer comparer) {
-        this(table.size() * 2, comparer);
-        for (int i = table.elementData.length; --i >= 0;) {
-            HashMapEntry entry = table.elementData[i];
-            while (entry != null) {
-                put(entry.key, entry.value);
-                entry = entry.next;
-            }
-        }
-    }
-    
-    /**
-     * Returns the element comparer used  to compare keys and to obtain
-     * hash codes for keys, or <code>null</code> if no comparer has been
-     * provided.
-     * 
-     * @return the element comparer or <code>null</code>
-     * 
-     * @since 3.2
-     */
-    public IElementComparer getComparer() {
-    	return comparer;
-    }
-
-    private void computeMaxSize() {
-        threshold = (int) (elementData.length * loadFactor);
-    }
-
-    /**
-     * Answers if this Hashtable contains the specified object as a key
-     * of one of the key/value pairs.
-     *
-     * @param		key	the object to look for as a key in this Hashtable
-     * @return		true if object is a key in this Hashtable, false otherwise
-     */
-    public boolean containsKey(Object key) {
-        return getEntry(key) != null;
-    }
-
-    /**
-     * Answers an Enumeration on the values of this Hashtable. The
-     * results of the Enumeration may be affected if the contents
-     * of this Hashtable are modified.
-     *
-     * @return		an Enumeration of the values of this Hashtable
-     */
-    public Enumeration elements() {
-        if (elementCount == 0) {
-			return emptyEnumerator;
-		}
-        return new HashEnumerator(false);
-    }
-
-    /**
-     * Answers the value associated with the specified key in
-     * this Hashtable.
-     *
-     * @param		key	the key of the value returned
-     * @return		the value associated with the specified key, null if the specified key
-     *				does not exist
-     */
-    public Object get(Object key) {
-        int index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
-        HashMapEntry entry = elementData[index];
-        while (entry != null) {
-            if (keyEquals(key, entry.key)) {
-				return entry.value;
-			}
-            entry = entry.next;
-        }
-        return null;
-    }
-
-    private HashMapEntry getEntry(Object key) {
-        int index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
-        HashMapEntry entry = elementData[index];
-        while (entry != null) {
-            if (keyEquals(key, entry.key)) {
-				return entry;
-			}
-            entry = entry.next;
-        }
-        return null;
-    }
-
-    /**
-     * Answers the hash code for the given key.
-     */
-    private int hashCode(Object key) {
-        if (comparer == null) {
-			return key.hashCode();
-		} else {
-			return comparer.hashCode(key);
-		}
-    }
-
-    /**
-     * Compares two keys for equality.
-     */
-    private boolean keyEquals(Object a, Object b) {
-        if (comparer == null) {
-			return a.equals(b);
-		} else {
-			return comparer.equals(a, b);
-		}
-    }
-
-    /**
-     * Answers an Enumeration on the keys of this Hashtable. The
-     * results of the Enumeration may be affected if the contents
-     * of this Hashtable are modified.
-     *
-     * @return		an Enumeration of the keys of this Hashtable
-     */
-    public Enumeration keys() {
-        if (elementCount == 0) {
-			return emptyEnumerator;
-		}
-        return new HashEnumerator(true);
-    }
-
-    /**
-     * Associate the specified value with the specified key in this Hashtable.
-     * If the key already exists, the old value is replaced. The key and value
-     * cannot be null.
-     *
-     * @param		key	the key to add
-     * @param		value	the value to add
-     * @return		the old value associated with the specified key, null if the key did
-     *				not exist
-     */
-    public Object put(Object key, Object value) {
-        if (key != null && value != null) {
-            int index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
-            HashMapEntry entry = elementData[index];
-            while (entry != null && !keyEquals(key, entry.key)) {
-				entry = entry.next;
-			}
-            if (entry == null) {
-                if (++elementCount > threshold) {
-                    rehash();
-                    index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
-                }
-                if (index < firstSlot) {
-					firstSlot = index;
-				}
-                if (index > lastSlot) {
-					lastSlot = index;
-				}
-                entry = new HashMapEntry(key, value);
-                entry.next = elementData[index];
-                elementData[index] = entry;
-                return null;
-            }
-            Object result = entry.value;
-            entry.key = key; // important to avoid hanging onto keys that are equal but "old" -- see bug 30607
-            entry.value = value;
-            return result;
-        } else {
-			throw new NullPointerException();
-		}
-    }
-
-    /**
-     * Increases the capacity of this Hashtable. This method is sent when
-     * the size of this Hashtable exceeds the load factor.
-     */
-    private void rehash() {
-        int length = elementData.length << 1;
-        if (length == 0) {
-			length = 1;
-		}
-        firstSlot = length;
-        lastSlot = -1;
-        HashMapEntry[] newData = new HashMapEntry[length];
-        for (int i = elementData.length; --i >= 0;) {
-            HashMapEntry entry = elementData[i];
-            while (entry != null) {
-                int index = (hashCode(entry.key) & 0x7FFFFFFF) % length;
-                if (index < firstSlot) {
-					firstSlot = index;
-				}
-                if (index > lastSlot) {
-					lastSlot = index;
-				}
-                HashMapEntry next = entry.next;
-                entry.next = newData[index];
-                newData[index] = entry;
-                entry = next;
-            }
-        }
-        elementData = newData;
-        computeMaxSize();
-    }
-
-    /**
-     * Remove the key/value pair with the specified key from this Hashtable.
-     *
-     * @param		key	the key to remove
-     * @return		the value associated with the specified key, null if the specified key
-     *				did not exist
-     */
-    public Object remove(Object key) {
-        HashMapEntry last = null;
-        int index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
-        HashMapEntry entry = elementData[index];
-        while (entry != null && !keyEquals(key, entry.key)) {
-            last = entry;
-            entry = entry.next;
-        }
-        if (entry != null) {
-            if (last == null) {
-				elementData[index] = entry.next;
-			} else {
-				last.next = entry.next;
-			}
-            elementCount--;
-            return entry.value;
-        }
-        return null;
-    }
-
-    /**
-     * Answers the number of key/value pairs in this Hashtable.
-     *
-     * @return		the number of key/value pairs in this Hashtable
-     */
-    public int size() {
-        return elementCount;
-    }
-
-    /**
-     * Answers the string representation of this Hashtable.
-     *
-     * @return		the string representation of this Hashtable
-     */
-    public String toString() {
-        if (size() == 0) {
-			return "{}"; //$NON-NLS-1$
-		}
-
-        StringBuffer buffer = new StringBuffer();
-        buffer.append('{');
-        for (int i = elementData.length; --i >= 0;) {
-            HashMapEntry entry = elementData[i];
-            while (entry != null) {
-                buffer.append(entry.key);
-                buffer.append('=');
-                buffer.append(entry.value);
-                buffer.append(", "); //$NON-NLS-1$
-                entry = entry.next;
-            }
-        }
-        // Remove the last ", "
-        if (elementCount > 0) {
-			buffer.setLength(buffer.length() - 2);
-		}
-        buffer.append('}');
-        return buffer.toString();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java
deleted file mode 100644
index fb4d427..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java
+++ /dev/null
@@ -1,408 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A decorating label provider is a label provider which combines 
- * a nested label provider and an optional decorator.
- * The decorator decorates the label text, image, font and colors provided by 
- * the nested label provider.
- */
-public class DecoratingLabelProvider extends LabelProvider implements
-        ILabelProvider, IViewerLabelProvider, IColorProvider, IFontProvider, ITreePathLabelProvider {
-		
-    private ILabelProvider provider;
-
-    private ILabelDecorator decorator;
-
-    // Need to keep our own list of listeners
-    private ListenerList listeners = new ListenerList();
-
-	private IDecorationContext decorationContext = DecorationContext.DEFAULT_CONTEXT;
-
-    /**
-     * Creates a decorating label provider which uses the given label decorator
-     * to decorate labels provided by the given label provider.
-     *
-     * @param provider the nested label provider
-     * @param decorator the label decorator, or <code>null</code> if no decorator is to be used initially
-     */
-    public DecoratingLabelProvider(ILabelProvider provider,
-            ILabelDecorator decorator) {
-        Assert.isNotNull(provider);
-        this.provider = provider;
-        this.decorator = decorator;
-    }
-
-    /**
-     * The <code>DecoratingLabelProvider</code> implementation of this <code>IBaseLabelProvider</code> method
-     * adds the listener to both the nested label provider and the label decorator.
-     *
-     * @param listener a label provider listener
-     */
-    public void addListener(ILabelProviderListener listener) {
-        super.addListener(listener);
-        provider.addListener(listener);
-        if (decorator != null) {
-            decorator.addListener(listener);
-        }
-        listeners.add(listener);
-    }
-
-    /**
-     * The <code>DecoratingLabelProvider</code> implementation of this <code>IBaseLabelProvider</code> method
-     * disposes both the nested label provider and the label decorator.
-     */
-    public void dispose() {
-        provider.dispose();
-        if (decorator != null) {
-            decorator.dispose();
-        }
-    }
-
-    /**
-     * The <code>DecoratingLabelProvider</code> implementation of this 
-     * <code>ILabelProvider</code> method returns the image provided
-     * by the nested label provider's <code>getImage</code> method, 
-     * decorated with the decoration provided by the label decorator's
-     * <code>decorateImage</code> method.
-     */
-    public Image getImage(Object element) {
-        Image image = provider.getImage(element);
-        if (decorator != null) {
-        	if (decorator instanceof LabelDecorator) {
-				LabelDecorator ld2 = (LabelDecorator) decorator;
-	            Image decorated = ld2.decorateImage(image, element, getDecorationContext());
-	            if (decorated != null) {
-	                return decorated;
-	            }
-			} else {
-	            Image decorated = decorator.decorateImage(image, element);
-	            if (decorated != null) {
-	                return decorated;
-	            }
-			}
-        }
-        return image;
-    }
-
-	/**
-     * Returns the label decorator, or <code>null</code> if none has been set.
-     *
-     * @return the label decorator, or <code>null</code> if none has been set.
-     */
-    public ILabelDecorator getLabelDecorator() {
-        return decorator;
-    }
-
-    /**
-     * Returns the nested label provider.
-     *
-     * @return the nested label provider
-     */
-    public ILabelProvider getLabelProvider() {
-        return provider;
-    }
-
-    /**
-     * The <code>DecoratingLabelProvider</code> implementation of this 
-     * <code>ILabelProvider</code> method returns the text label provided
-     * by the nested label provider's <code>getText</code> method, 
-     * decorated with the decoration provided by the label decorator's
-     * <code>decorateText</code> method.
-     */
-    public String getText(Object element) {
-        String text = provider.getText(element);
-        if (decorator != null) {
-        	if (decorator instanceof LabelDecorator) {
-				LabelDecorator ld2 = (LabelDecorator) decorator;
-	            String decorated = ld2.decorateText(text, element, getDecorationContext());
-	            if (decorated != null) {
-	                return decorated;
-	            }
-			} else {
-	            String decorated = decorator.decorateText(text, element);
-	            if (decorated != null) {
-	                return decorated;
-	            }
-			}
-        }
-        return text;
-    }
-
-    /**
-     * The <code>DecoratingLabelProvider</code> implementation of this 
-     * <code>IBaseLabelProvider</code> method returns <code>true</code> if the corresponding method
-     * on the nested label provider returns <code>true</code> or if the corresponding method on the 
-     * decorator returns <code>true</code>.
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        if (provider.isLabelProperty(element, property)) {
-			return true;
-		}
-        if (decorator != null && decorator.isLabelProperty(element, property)) {
-			return true;
-		}
-        return false;
-    }
-
-    /**
-     * The <code>DecoratingLabelProvider</code> implementation of this <code>IBaseLabelProvider</code> method
-     * removes the listener from both the nested label provider and the label decorator.
-     *
-     * @param listener a label provider listener
-     */
-    public void removeListener(ILabelProviderListener listener) {
-        super.removeListener(listener);
-        provider.removeListener(listener);
-        if (decorator != null) {
-            decorator.removeListener(listener);
-        }
-        listeners.remove(listener);
-    }
-
-    /**
-     * Sets the label decorator.
-     * Removes all known listeners from the old decorator, and adds all known listeners to the new decorator.
-     * The old decorator is not disposed.
-     * Fires a label provider changed event indicating that all labels should be updated.
-     * Has no effect if the given decorator is identical to the current one.
-     *
-     * @param decorator the label decorator, or <code>null</code> if no decorations are to be applied
-     */
-    public void setLabelDecorator(ILabelDecorator decorator) {
-        ILabelDecorator oldDecorator = this.decorator;
-        if (oldDecorator != decorator) {
-            Object[] listenerList = this.listeners.getListeners();
-            if (oldDecorator != null) {
-                for (int i = 0; i < listenerList.length; ++i) {
-                    oldDecorator
-                            .removeListener((ILabelProviderListener) listenerList[i]);
-                }
-            }
-            this.decorator = decorator;
-            if (decorator != null) {
-                for (int i = 0; i < listenerList.length; ++i) {
-                    decorator
-                            .addListener((ILabelProviderListener) listenerList[i]);
-                }
-            }
-            fireLabelProviderChanged(new LabelProviderChangedEvent(this));
-        }
-    }
-
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IViewerLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel, java.lang.Object)
-     */
-    public void updateLabel(ViewerLabel settings, Object element) {
-
-        ILabelDecorator currentDecorator = getLabelDecorator();
-        String oldText = settings.getText();
-        boolean decorationReady = true;
-        if (currentDecorator instanceof IDelayedLabelDecorator) {
-            IDelayedLabelDecorator delayedDecorator = (IDelayedLabelDecorator) currentDecorator;
-            if (!delayedDecorator.prepareDecoration(element, oldText)) {
-                // The decoration is not ready but has been queued for processing
-                decorationReady = false;
-            }
-        }
-        // update icon and label
-
-        if (decorationReady || oldText == null
-                || settings.getText().length() == 0) {
-			settings.setText(getText(element));
-		}
-
-        Image oldImage = settings.getImage();
-        if (decorationReady || oldImage == null) {
-            settings.setImage(getImage(element));
-        }
- 
-        if(decorationReady) {
-			updateForDecorationReady(settings,element);
-		}
-
-    }
-
-	/**
-	 * Decoration is ready. Update anything else for the settings.
-	 * @param settings The object collecting the settings.
-	 * @param element The Object being decorated.
-	 * @since 3.1
-	 */
-	protected void updateForDecorationReady(ViewerLabel settings, Object element) {
-		
-		if(decorator instanceof IColorDecorator){
-			IColorDecorator colorDecorator = (IColorDecorator) decorator;
-			settings.setBackground(colorDecorator.decorateBackground(element));
-			settings.setForeground(colorDecorator.decorateForeground(element));
-		}
-		
-		if(decorator instanceof IFontDecorator) {
-			settings.setFont(((IFontDecorator) decorator).decorateFont(element));
-		}
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-	 */
-	public Color getBackground(Object element) {
-		if(provider instanceof IColorProvider) {
-			return ((IColorProvider) provider).getBackground(element);
-		}
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object element) {
-		if(provider instanceof IFontProvider) {
-			return ((IFontProvider) provider).getFont(element);
-		}
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-	 */
-	public Color getForeground(Object element) {
-		if(provider instanceof IColorProvider) {
-			return ((IColorProvider) provider).getForeground(element);
-		}
-		return null;
-	}
-
-    /**
-     * Return the decoration context associated with this label provider.
-     * It will be passed to the decorator if the decorator is an 
-     * instance of {@link LabelDecorator}.
-     * @return the decoration context associated with this label provider
-     * 
-     * @since 3.2
-     */
-    public IDecorationContext getDecorationContext() {
-		return decorationContext;
-	}
-    
-    /**
-     * Set the decoration context that will be based to the decorator 
-     * for this label provider if that decorator implements {@link LabelDecorator}.
-     * @param decorationContext the decoration context.
-     * 
-     * @since 3.2
-     */
-	public void setDecorationContext(IDecorationContext decorationContext) {
-		Assert.isNotNull(decorationContext);
-		this.decorationContext = decorationContext;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreePathLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel, org.eclipse.jface.viewers.TreePath)
-	 */
-	public void updateLabel(ViewerLabel settings, TreePath elementPath) {
-        ILabelDecorator currentDecorator = getLabelDecorator();
-        String oldText = settings.getText();
-        Object element = elementPath.getLastSegment();
-        boolean decorationReady = true;
-        if (currentDecorator instanceof LabelDecorator) {
-			LabelDecorator labelDecorator = (LabelDecorator) currentDecorator;
-           if (!labelDecorator.prepareDecoration(element, oldText, getDecorationContext())) {
-                // The decoration is not ready but has been queued for processing
-                decorationReady = false;
-            }
-		} else if (currentDecorator instanceof IDelayedLabelDecorator) {
-            IDelayedLabelDecorator delayedDecorator = (IDelayedLabelDecorator) currentDecorator;
-            if (!delayedDecorator.prepareDecoration(element, oldText)) {
-                // The decoration is not ready but has been queued for processing
-                decorationReady = false;
-            }
-        }
-        settings.setHasPendingDecorations(!decorationReady);
-        // update icon and label
-
-        if (provider instanceof ITreePathLabelProvider) {
-			ITreePathLabelProvider pprov = (ITreePathLabelProvider) provider;
-			if (decorationReady || oldText == null
-	                || settings.getText().length() == 0) {
-				pprov.updateLabel(settings, elementPath);
-				decorateSettings(settings, elementPath);
-			}
-		} else {
-	        if (decorationReady || oldText == null
-	                || settings.getText().length() == 0) {
-				settings.setText(getText(element));
-			}
-	
-	        Image oldImage = settings.getImage();
-	        if (decorationReady || oldImage == null) {
-	            settings.setImage(getImage(element));
-	        }
-	 
-	        if(decorationReady) {
-				updateForDecorationReady(settings,element);
-			}
-		}
-
-	}
-
-	/**
-	 * Decorate the settings
-	 * @param settings the settings obtained from the label provider
-	 * @param elementPath the element path being decorated
-	 */
-	private void decorateSettings(ViewerLabel settings, TreePath elementPath) {
-		Object element = elementPath.getLastSegment();
-        if (decorator != null) {
-        	if (decorator instanceof LabelDecorator) {
-				LabelDecorator labelDecorator = (LabelDecorator) decorator;
-				String text = labelDecorator.decorateText(settings.getText(), element, getDecorationContext());
-	            if (text != null && text.length() > 0)
-	            	settings.setText(text);
-	            Image image = labelDecorator.decorateImage(settings.getImage(), element, getDecorationContext());
-	            if (image != null)
-	            	settings.setImage(image);
-	            
-			} else {
-				String text = decorator.decorateText(settings.getText(), element);
-	            if (text != null && text.length() > 0)
-	            	settings.setText(text);
-	            Image image = decorator.decorateImage(settings.getImage(), element);
-	            if (image != null)
-	            	settings.setImage(image);
-			}
-    		if(decorator instanceof IColorDecorator){
-    			IColorDecorator colorDecorator = (IColorDecorator) decorator;
-    			Color background = colorDecorator.decorateBackground(element);
-    			if (background != null)
-    				settings.setBackground(background);
-    			Color foreground = colorDecorator.decorateForeground(element);
-    			if (foreground != null)
-    				settings.setForeground(foreground);
-    		}
-    		
-    		if(decorator instanceof IFontDecorator) {
-    			Font font = ((IFontDecorator) decorator).decorateFont(element);
-    			if (font != null)
-    				settings.setFont(font);
-    		}
-        }
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingStyledCellLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingStyledCellLabelProvider.java
deleted file mode 100644
index fd206ac..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingStyledCellLabelProvider.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.StyledString.Styler;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A {@link DecoratingStyledCellLabelProvider} is a
- * {@link DelegatingStyledCellLabelProvider} that uses a nested
- * {@link DelegatingStyledCellLabelProvider.IStyledLabelProvider} to compute
- * styled text label and image and takes a {@link ILabelDecorator} to decorate
- * the label.
- * 
- * <p>
- * Use this label provider as a replacement for the
- * {@link DecoratingLabelProvider} when decorating styled text labels.
- * </p>
- * 
- * <p>
- * The {@link DecoratingStyledCellLabelProvider} will try to evaluate the text
- * decoration added by the {@link ILabelDecorator} and will apply the style
- * returned by {@link #getDecorationStyle(Object)}
- * </p>
- * <p>
- * The {@link ILabelDecorator} can optionally implement {@link IColorDecorator}
- * and {@link IFontDecorator} to provide foreground and background color and
- * font decoration.
- * </p>
- * 
- * @since 3.4
- */
-public class DecoratingStyledCellLabelProvider extends
-		DelegatingStyledCellLabelProvider {
-
-	private ILabelDecorator decorator;
-	private IDecorationContext decorationContext= DecorationContext.DEFAULT_CONTEXT;
-	private ILabelProviderListener labelProviderListener;
-
-	/**
-	 * Creates a {@link DecoratingStyledCellLabelProvider} that delegates the
-	 * requests for styled labels and for images to a
-	 * {@link DelegatingStyledCellLabelProvider.IStyledLabelProvider}.
-	 * 
-	 * @param labelProvider
-	 *            the styled label provider
-	 * @param decorator
-	 *            a label decorator or <code>null</code> to not decorate the
-	 *            label
-	 * @param decorationContext
-	 *            a decoration context or <code>null</code> if the no
-	 *            decorator is configured or the default decorator should be
-	 *            used
-	 */
-	public DecoratingStyledCellLabelProvider(
-			IStyledLabelProvider labelProvider, ILabelDecorator decorator,
-			IDecorationContext decorationContext) {
-		super(labelProvider);
-
-		this.decorator = decorator;
-		this.decorationContext = decorationContext != null ? decorationContext
-				: DecorationContext.DEFAULT_CONTEXT;
-		
-		this.labelProviderListener = new ILabelProviderListener() {
-			public void labelProviderChanged(LabelProviderChangedEvent event) {
-				fireLabelProviderChanged(event);
-			}
-		};
-		labelProvider.addListener(this.labelProviderListener);
-		if (decorator != null)
-			decorator.addListener(this.labelProviderListener);
-	}
-
-	/**
-	 * Returns the decoration context associated with this label provider. It
-	 * will be passed to the decorator if the decorator is an instance of
-	 * {@link LabelDecorator}.
-	 * 
-	 * @return the decoration context associated with this label provider
-	 */
-	public IDecorationContext getDecorationContext() {
-		return this.decorationContext;
-	}
-
-	/**
-	 * Set the decoration context that will be based to the decorator for this
-	 * label provider if that decorator implements {@link LabelDecorator}.
-	 * 
-	 * @param decorationContext
-	 *            the decoration context.
-	 */
-	public void setDecorationContext(IDecorationContext decorationContext) {
-		Assert.isNotNull(decorationContext);
-		this.decorationContext = decorationContext;
-	}
-
-	private boolean waitForPendingDecoration(ViewerCell cell) {
-		if (this.decorator == null)
-			return false;
-
-		Object element = cell.getElement();
-		String oldText = cell.getText();
-
-		boolean isDecorationPending = false;
-		if (this.decorator instanceof LabelDecorator) {
-			isDecorationPending = !((LabelDecorator) this.decorator)
-					.prepareDecoration(element, oldText, getDecorationContext());
-		} else if (this.decorator instanceof IDelayedLabelDecorator) {
-			isDecorationPending = !((IDelayedLabelDecorator) this.decorator)
-					.prepareDecoration(element, oldText);
-		}
-		if (isDecorationPending && oldText.length() == 0) {
-			// item is empty: is shown for the first time: don't wait
-			return false;
-		}
-		return isDecorationPending;
-	}
-
-	public void update(ViewerCell cell) {
-		if (waitForPendingDecoration(cell)) {
-			return; // wait until the decoration is ready
-		}
-		super.update(cell);
-	}
-
-	public Color getForeground(Object element) {
-		if (this.decorator instanceof IColorDecorator) {
-			Color foreground = ((IColorDecorator) this.decorator)
-					.decorateForeground(element);
-			if (foreground != null)
-				return foreground;
-		}
-		return super.getForeground(element);
-	}
-
-	public Color getBackground(Object element) {
-		if (this.decorator instanceof IColorDecorator) {
-			Color color = ((IColorDecorator) this.decorator)
-					.decorateBackground(element);
-			if (color != null)
-				return color;
-		}
-		return super.getBackground(element);
-	}
-
-	public Font getFont(Object element) {
-		if (this.decorator instanceof IFontDecorator) {
-			Font font = ((IFontDecorator) this.decorator).decorateFont(element);
-			if (font != null)
-				return font;
-		}
-		return super.getFont(element);
-	}
-
-	public Image getImage(Object element) {
-		Image image = super.getImage(element);
-		if (this.decorator == null) {
-			return image;
-		}
-		Image decorated = null;
-		if (this.decorator instanceof LabelDecorator) {
-			decorated = ((LabelDecorator) this.decorator).decorateImage(image,
-					element, getDecorationContext());
-		} else {
-			decorated = this.decorator.decorateImage(image, element);
-		}
-		if (decorated != null)
-			return decorated;
-
-		return image;
-	}
-
-	/**
-	 * Returns the styled text for the label of the given element.
-	 * 
-	 * @param element
-	 *            the element for which to provide the styled label text
-	 * @return the styled text string used to label the element
-	 */
-	protected StyledString getStyledText(Object element) {
-		StyledString styledString = super.getStyledText(element);
-		if (this.decorator == null) {
-			return styledString;
-		}
-
-		String label = styledString.getString();
-		String decorated;
-		if (this.decorator instanceof LabelDecorator) {
-			decorated = ((LabelDecorator) this.decorator).decorateText(label,
-					element, getDecorationContext());
-		} else {
-			decorated = this.decorator.decorateText(label, element);
-		}
-		if (decorated == null)
-			return styledString;
-
-		Styler style = getDecorationStyle(element);
-		return StyledCellLabelProvider.styleDecoratedString(decorated, style, styledString);
-	}
-
-	/**
-	 * Sets the {@link StyledString.Styler} to be used for string
-	 * decorations. By default the
-	 * {@link StyledString#DECORATIONS_STYLER decoration style}. Clients
-	 * can override.
-	 * 
-	 * Note that it is the client's responsibility to react on color changes of
-	 * the decoration color by refreshing the view
-	 * 
-	 * @param element
-	 *            the element that has been decorated
-	 * 
-	 * @return return the decoration style
-	 */
-	protected Styler getDecorationStyle(Object element) {
-		return StyledString.DECORATIONS_STYLER;
-	}
-
-	/**
-	 * Returns the decorator or <code>null</code> if no decorator is installed
-	 * 
-	 * @return the decorator or <code>null</code> if no decorator is installed
-	 */
-	public ILabelDecorator getLabelDecorator() {
-		return this.decorator;
-	}
-
-	/**
-	 * Sets the label decorator. Removes all known listeners from the old
-	 * decorator, and adds all known listeners to the new decorator. The old
-	 * decorator is not disposed. Fires a label provider changed event
-	 * indicating that all labels should be updated. Has no effect if the given
-	 * decorator is identical to the current one.
-	 * 
-	 * @param newDecorator
-	 *            the label decorator, or <code>null</code> if no decorations
-	 *            are to be applied
-	 */
-	public void setLabelDecorator(ILabelDecorator newDecorator) {
-		ILabelDecorator oldDecorator = this.decorator;
-		if (oldDecorator != newDecorator) {
-			if (oldDecorator != null)
-				oldDecorator.removeListener(this.labelProviderListener);
-			this.decorator = newDecorator;
-			if (newDecorator != null) {
-				newDecorator.addListener(this.labelProviderListener);
-			}
-		}
-		fireLabelProviderChanged(new LabelProviderChangedEvent(this));
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-		super.addListener(listener);
-		if (this.decorator != null) {
-			this.decorator.addListener(this.labelProviderListener);
-		}
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		super.removeListener(listener);
-		if (this.decorator != null && !isListenerAttached()) {
-			this.decorator.removeListener(this.labelProviderListener);
-		}
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		if (super.isLabelProperty(element, property)) {
-			return true;
-		}
-		return this.decorator != null
-				&& this.decorator.isLabelProperty(element, property);
-	}
-
-	public void dispose() {
-		super.dispose();
-		if (this.decorator != null) {
-			this.decorator.removeListener(this.labelProviderListener);
-			this.decorator.dispose();
-			this.decorator = null;
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationContext.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationContext.java
deleted file mode 100644
index 3cd5aa1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationContext.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A concrete implementation of the {@link IDecorationContext} interface,
- * suitable for instantiating.
- * <p>
- * This class is not intended to be subclassed.
- * </p>
- * @since 3.2
- */
-public class DecorationContext implements IDecorationContext {
-	
-	/**
-	 * Constant that defines a default decoration context that has
-	 * no context ids associated with it.
-	 */
-	public static final IDecorationContext DEFAULT_CONTEXT = new DecorationContext();
-	
-	private Map properties = new HashMap();
-
-	/**
-	 * Create a decoration context.
-	 */
-	public DecorationContext() {
-	}
-	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IDecorationContext#getProperty(java.lang.String)
-	 */
-	public Object getProperty(String property) {
-		return properties.get(property);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IDecorationContext#getProperties()
-	 */
-	public String[] getProperties() {
-		return (String[]) properties.keySet().toArray(new String[properties.size()]);
-	}
-
-	/**
-	 * Set the given property to the given value. Setting the value of
-	 * a property to <code>null</code> removes the property from
-	 * the context.
-	 * @param property the property
-	 * @param value the value of the property or <code>null</code>
-	 * if the property is to be removed.
-	 */
-	public void putProperty(String property, Object value) {
-		if (value == null) {
-			properties.remove(property);
-		} else {
-			properties.put(property, value);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationOverlayIcon.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationOverlayIcon.java
deleted file mode 100644
index 6e868da..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecorationOverlayIcon.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.Arrays;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.*;
-
-/**
- * A <code>DecorationOverlayIcon</code> is an image descriptor that can be used
- * to overlay decoration images on to the 4 corner quadrants of a base image.
- * The four quadrants are {@link IDecoration#TOP_LEFT}, {@link IDecoration#TOP_RIGHT},
- * {@link IDecoration#BOTTOM_LEFT} and {@link IDecoration#BOTTOM_RIGHT}. Additionally,
- * the overlay can be used to provide an underlay corresponding to {@link IDecoration#UNDERLAY}. 
- * 
- * @since 3.3
- * @see IDecoration
- */
-public class DecorationOverlayIcon extends CompositeImageDescriptor {
-	
-    // the base image
-    private Image base;
-
-    // the overlay images
-    private ImageDescriptor[] overlays;
-
-    // the size
-    private Point size;
-
-    /**
-     * Create the decoration overlay for the base image using the array of
-     * provided overlays. The indices of the array correspond to the values
-     * of the 5 overlay constants defined on {@link IDecoration} 
-     * ({@link IDecoration#TOP_LEFT}, {@link IDecoration#TOP_RIGHT},
-     * {@link IDecoration#BOTTOM_LEFT}, {@link IDecoration#BOTTOM_RIGHT} 
-     * and{@link IDecoration#UNDERLAY}).
-     * 
-     * @param baseImage the base image
-     * @param overlaysArray the overlay images
-     * @param sizeValue the size of the resulting image
-     */
-    public DecorationOverlayIcon(Image baseImage,
-            ImageDescriptor[] overlaysArray, Point sizeValue) {
-        this.base = baseImage;
-        this.overlays = overlaysArray;
-        this.size = sizeValue;
-    }
-    
-    /**
-     * Create the decoration overlay for the base image using the array of
-     * provided overlays. The indices of the array correspond to the values
-     * of the 5 overlay constants defined on {@link IDecoration} 
-     * ({@link IDecoration#TOP_LEFT}, {@link IDecoration#TOP_RIGHT},
-     * {@link IDecoration#BOTTOM_LEFT}, {@link IDecoration#BOTTOM_RIGHT} 
-     * and {@link IDecoration#UNDERLAY}).
-     * 
-     * @param baseImage the base image
-     * @param overlaysArray the overlay images
-     */
-    public DecorationOverlayIcon(Image baseImage, ImageDescriptor[] overlaysArray) {
-    	this(baseImage, overlaysArray, new Point(baseImage.getBounds().width, baseImage.getBounds().height));
-    }
-
-    /**
-     * Create a decoration overlay icon that will place the given overlay icon in
-     * the given quadrant of the base image.
-	 * @param baseImage the base image
-	 * @param overlayImage the overlay image
-	 * @param quadrant the quadrant (one of {@link IDecoration} 
-     * ({@link IDecoration#TOP_LEFT}, {@link IDecoration#TOP_RIGHT},
-     * {@link IDecoration#BOTTOM_LEFT}, {@link IDecoration#BOTTOM_RIGHT} 
-     * or {@link IDecoration#UNDERLAY})
-	 */
-	public DecorationOverlayIcon(Image baseImage, ImageDescriptor overlayImage, int quadrant) {
-		this(baseImage, createArrayFrom(overlayImage, quadrant));
-	}
-
-	/**
-	 * Convert the given image and quadrant into the proper input array.
-	 * @param overlayImage the overlay image
-	 * @param quadrant the quadrant
-	 * @return an array with the given image in the proper quadrant
-	 */
-	private static ImageDescriptor[] createArrayFrom(
-			ImageDescriptor overlayImage, int quadrant) {
-		ImageDescriptor[] descs = new ImageDescriptor[] { null, null, null, null, null };
-		descs[quadrant] = overlayImage;
-		return descs;
-	}
-
-	/**
-     * Draw the overlays for the receiver.
-     * @param overlaysArray 
-     */
-    private void drawOverlays(ImageDescriptor[] overlaysArray) {
-
-        for (int i = 0; i < overlays.length; i++) {
-            ImageDescriptor overlay = overlaysArray[i];
-            if (overlay == null) {
-				continue;
-			}
-            ImageData overlayData = overlay.getImageData();
-            //Use the missing descriptor if it is not there.
-            if (overlayData == null) {
-				overlayData = ImageDescriptor.getMissingImageDescriptor()
-                        .getImageData();
-			}
-            switch (i) {
-            case IDecoration.TOP_LEFT:
-                drawImage(overlayData, 0, 0);
-                break;
-            case IDecoration.TOP_RIGHT:
-                drawImage(overlayData, size.x - overlayData.width, 0);
-                break;
-            case IDecoration.BOTTOM_LEFT:
-                drawImage(overlayData, 0, size.y - overlayData.height);
-                break;
-            case IDecoration.BOTTOM_RIGHT:
-                drawImage(overlayData, size.x - overlayData.width, size.y
-                        - overlayData.height);
-                break;
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     */
-    public boolean equals(Object o) {
-        if (!(o instanceof DecorationOverlayIcon)) {
-			return false;
-		}
-        DecorationOverlayIcon other = (DecorationOverlayIcon) o;
-        return base.equals(other.base)
-                && Arrays.equals(overlays, other.overlays);
-    }
-
-    /* (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     */
-    public int hashCode() {
-        int code = System.identityHashCode(base);
-        for (int i = 0; i < overlays.length; i++) {
-            if (overlays[i] != null) {
-				code ^= overlays[i].hashCode();
-			}
-        }
-        return code;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.CompositeImageDescriptor#drawCompositeImage(int, int)
-     */
-    protected void drawCompositeImage(int width, int height) {
-    	if (overlays.length > IDecoration.UNDERLAY) {
-	        ImageDescriptor underlay = overlays[IDecoration.UNDERLAY];
-	        if (underlay != null) {
-				drawImage(underlay.getImageData(), 0, 0);
-			}
-    	}
-    	if (overlays.length > IDecoration.REPLACE && overlays[IDecoration.REPLACE] != null) {
-    		drawImage(overlays[IDecoration.REPLACE].getImageData(), 0, 0);
-    	} else {
-    		drawImage(base.getImageData(), 0, 0);
-    	}
-        drawOverlays(overlays);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.CompositeImageDescriptor#getSize()
-     */
-    protected Point getSize() {
-        return size;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.resource.CompositeImageDescriptor#getTransparentPixel()
-     */
-    protected int getTransparentPixel() {
-    	return base.getImageData().transparentPixel;
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java
deleted file mode 100644
index 6e7607b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DelegatingStyledCellLabelProvider.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.Arrays;
-
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A {@link DelegatingStyledCellLabelProvider} is a
- * {@link StyledCellLabelProvider} that delegates requests for the styled string
- * and the image to a
- * {@link DelegatingStyledCellLabelProvider.IStyledLabelProvider}.
- * 
- * <p>
- * Existing label providers can be enhanced by implementing
- * {@link DelegatingStyledCellLabelProvider.IStyledLabelProvider} so they can be
- * used in viewers with styled labels.
- * </p>
- * 
- * <p>
- * The {@link DelegatingStyledCellLabelProvider.IStyledLabelProvider} can
- * optionally implement {@link IColorProvider} and {@link IFontProvider} to
- * provide foreground and background color and a default font.
- * </p>
- * 
- * @since 3.4
- */
-public class DelegatingStyledCellLabelProvider extends StyledCellLabelProvider {
-
-	/**
-	 * Interface marking a label provider that provides styled text labels and
-	 * images.
-	 * <p>
-	 * The {@link DelegatingStyledCellLabelProvider.IStyledLabelProvider} can
-	 * optionally implement {@link IColorProvider} and {@link IFontProvider} to
-	 * provide foreground and background color and a default font.
-	 * </p>
-	 */
-	public static interface IStyledLabelProvider extends IBaseLabelProvider {
-
-		/**
-		 * Returns the styled text label for the given element
-		 * 
-		 * @param element
-		 *            the element to evaluate the styled string for
-		 * 
-		 * @return the styled string.
-		 */
-		public StyledString getStyledText(Object element);
-
-		/**
-		 * Returns the image for the label of the given element. The image is
-		 * owned by the label provider and must not be disposed directly.
-		 * Instead, dispose the label provider when no longer needed.
-		 * 
-		 * @param element
-		 *            the element for which to provide the label image
-		 * @return the image used to label the element, or <code>null</code>
-		 *         if there is no image for the given object
-		 */
-		public Image getImage(Object element);
-	}
-
-	private IStyledLabelProvider styledLabelProvider;
-
-	/**
-	 * Creates a {@link DelegatingStyledCellLabelProvider} that delegates the
-	 * requests for the styled labels and the images to a
-	 * {@link IStyledLabelProvider}.
-	 * 
-	 * @param labelProvider
-	 *            the label provider that provides the styled labels and the
-	 *            images
-	 */
-	public DelegatingStyledCellLabelProvider(IStyledLabelProvider labelProvider) {
-		if (labelProvider == null)
-			throw new IllegalArgumentException(
-					"Label provider must not be null"); //$NON-NLS-1$
-
-		this.styledLabelProvider = labelProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	public void update(ViewerCell cell) {
-		Object element = cell.getElement();
-
-		StyledString styledString = getStyledText(element);
-		String newText= styledString.toString();
-		
-		StyleRange[] oldStyleRanges= cell.getStyleRanges();
-		StyleRange[] newStyleRanges= isOwnerDrawEnabled() ? styledString.getStyleRanges() : null;
-		
-		if (!Arrays.equals(oldStyleRanges, newStyleRanges)) {
-			cell.setStyleRanges(newStyleRanges);
-			if (cell.getText().equals(newText)) {
-				// make sure there will be a refresh from a change
-				cell.setText(""); //$NON-NLS-1$
-			}
-		}
-		
-		cell.setText(newText);
-		cell.setImage(getImage(element));
-		cell.setFont(getFont(element));
-		cell.setForeground(getForeground(element));
-		cell.setBackground(getBackground(element));
-		
-		// no super call required. changes on item will trigger the refresh.
-	}
-
-	/**
-	 * Provides a foreground color for the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the foreground color for the element, or <code>null</code> to
-	 *         use the default foreground color
-	 */
-	public Color getForeground(Object element) {
-		if (this.styledLabelProvider instanceof IColorProvider) {
-			return ((IColorProvider) this.styledLabelProvider)
-					.getForeground(element);
-		}
-		return null;
-	}
-
-	/**
-	 * Provides a background color for the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the background color for the element, or <code>null</code> to
-	 *         use the default background color
-	 */
-	public Color getBackground(Object element) {
-		if (this.styledLabelProvider instanceof IColorProvider) {
-			return ((IColorProvider) this.styledLabelProvider)
-					.getBackground(element);
-		}
-		return null;
-	}
-
-	/**
-	 * Provides a font for the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the font for the element, or <code>null</code> to use the
-	 *         default font
-	 */
-	public Font getFont(Object element) {
-		if (this.styledLabelProvider instanceof IFontProvider) {
-			return ((IFontProvider) this.styledLabelProvider).getFont(element);
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the image for the label of the given element. The image is owned
-	 * by the label provider and must not be disposed directly. Instead, dispose
-	 * the label provider when no longer needed.
-	 * 
-	 * @param element
-	 *            the element for which to provide the label image
-	 * @return the image used to label the element, or <code>null</code> if
-	 *         there is no image for the given object
-	 */
-	public Image getImage(Object element) {
-		return this.styledLabelProvider.getImage(element);
-	}
-
-	/**
-	 * Returns the styled text for the label of the given element.
-	 * 
-	 * @param element
-	 *            the element for which to provide the styled label text
-	 * @return the styled text string used to label the element
-	 */
-	protected StyledString getStyledText(Object element) {
-		return this.styledLabelProvider.getStyledText(element);
-	}
-
-	/**
-	 * Returns the styled string provider.
-	 * 
-	 * @return the wrapped label provider
-	 */
-	public IStyledLabelProvider getStyledStringProvider() {
-		return this.styledLabelProvider;
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-		super.addListener(listener);
-		this.styledLabelProvider.addListener(listener);
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		super.removeListener(listener);
-		this.styledLabelProvider.removeListener(listener);
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return this.styledLabelProvider.isLabelProperty(element, property);
-	}
-
-	public void dispose() {
-		super.dispose();
-		this.styledLabelProvider.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DialogCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DialogCellEditor.java
deleted file mode 100644
index 0ad09ff..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DialogCellEditor.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.text.MessageFormat;	// Not using ICU to support standalone JFace scenario
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-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.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.Layout;
-
-/**
- * An abstract cell editor that uses a dialog.
- * Dialog cell editors usually have a label control on the left and a button on
- * the right. Pressing the button opens a dialog window (for example, a color dialog
- * or a file dialog) to change the cell editor's value.
- * The cell editor's value is the value of the dialog.
- * <p>
- * Subclasses may override the following methods:
- * <ul>
- *	<li><code>createButton</code>: creates the cell editor's button control</li>
- *	<li><code>createContents</code>: creates the cell editor's 'display value' control</li>
- *	<li><code>updateContents</code>: updates the cell editor's 'display value' control
- * 		after its value has changed</li>
- *	<li><code>openDialogBox</code>: opens the dialog box when the end user presses
- *      the button</li>
- * </ul>
- * </p>
- */
-public abstract class DialogCellEditor extends CellEditor {
-
-    /**
-     * Image registry key for three dot image (value <code>"cell_editor_dots_button_image"</code>).
-     */
-    public static final String CELL_EDITOR_IMG_DOTS_BUTTON = "cell_editor_dots_button_image";//$NON-NLS-1$
-
-    /**
-     * The editor control.
-     */
-    private Composite editor;
-
-    /**
-     * The current contents.
-     */
-    private Control contents;
-
-    /**
-     * The label that gets reused by <code>updateLabel</code>.
-     */
-    private Label defaultLabel;
-
-    /**
-     * The button.
-     */
-    private Button button;
-
-	/**
-	 * Listens for 'focusLost' events and  fires the 'apply' event as long
-	 * as the focus wasn't lost because the dialog was opened.
-	 */
-	private FocusListener buttonFocusListener;
-
-    /**
-     * The value of this cell editor; initially <code>null</code>.
-     */
-    private Object value = null;
-
-    static {
-        ImageRegistry reg = JFaceResources.getImageRegistry();
-        reg.put(CELL_EDITOR_IMG_DOTS_BUTTON, ImageDescriptor.createFromFile(
-                DialogCellEditor.class, "images/dots_button.gif"));//$NON-NLS-1$
-    }
-
-    /**
-     * Internal class for laying out the dialog.
-     */
-    private class DialogCellLayout extends Layout {
-        public void layout(Composite editor, boolean force) {
-            Rectangle bounds = editor.getClientArea();
-            Point size = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, force);
-            if (contents != null) {
-				contents.setBounds(0, 0, bounds.width - size.x, bounds.height);
-			}
-            button.setBounds(bounds.width - size.x, 0, size.x, bounds.height);
-        }
-
-        public Point computeSize(Composite editor, int wHint, int hHint,
-                boolean force) {
-            if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-            Point contentsSize = contents.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                    force);
-            Point buttonSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                    force);
-            // Just return the button width to ensure the button is not clipped
-            // if the label is long.
-            // The label will just use whatever extra width there is
-            Point result = new Point(buttonSize.x, Math.max(contentsSize.y,
-                    buttonSize.y));
-            return result;
-        }
-    }
-
-    /**
-     * Default DialogCellEditor style
-     */
-    private static final int defaultStyle = SWT.NONE;
-
-    /**
-     * Creates a new dialog cell editor with no control
-     * @since 2.1
-     */
-    public DialogCellEditor() {
-        setStyle(defaultStyle);
-    }
-
-    /**
-     * Creates a new dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     */
-    protected DialogCellEditor(Composite parent) {
-        this(parent, defaultStyle);
-    }
-
-    /**
-     * Creates a new dialog cell editor parented under the given control.
-     * The cell editor value is <code>null</code> initially, and has no 
-     * validator.
-     *
-     * @param parent the parent control
-     * @param style the style bits
-     * @since 2.1
-     */
-    protected DialogCellEditor(Composite parent, int style) {
-        super(parent, style);
-    }
-
-    /**
-     * Creates the button for this cell editor under the given parent control.
-     * <p>
-     * The default implementation of this framework method creates the button 
-     * display on the right hand side of the dialog cell editor. Subclasses
-     * may extend or reimplement.
-     * </p>
-     *
-     * @param parent the parent control
-     * @return the new button control
-     */
-    protected Button createButton(Composite parent) {
-        Button result = new Button(parent, SWT.DOWN);
-        result.setText("..."); //$NON-NLS-1$
-        return result;
-    }
-
-    /**
-     * Creates the controls used to show the value of this cell editor.
-     * <p>
-     * The default implementation of this framework method creates
-     * a label widget, using the same font and background color as the parent control.
-     * </p>
-     * <p>
-     * Subclasses may reimplement.  If you reimplement this method, you
-     * should also reimplement <code>updateContents</code>.
-     * </p>
-     *
-     * @param cell the control for this cell editor 
-     * @return the underlying control
-     */
-    protected Control createContents(Composite cell) {
-        defaultLabel = new Label(cell, SWT.LEFT);
-        defaultLabel.setFont(cell.getFont());
-        defaultLabel.setBackground(cell.getBackground());
-        return defaultLabel;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected Control createControl(Composite parent) {
-
-        Font font = parent.getFont();
-        Color bg = parent.getBackground();
-
-        editor = new Composite(parent, getStyle());
-        editor.setFont(font);
-        editor.setBackground(bg);
-        editor.setLayout(new DialogCellLayout());
-
-        contents = createContents(editor);
-        updateContents(value);
-
-        button = createButton(editor);
-        button.setFont(font);
-
-        button.addKeyListener(new KeyAdapter() {
-            /* (non-Javadoc)
-             * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
-             */
-            public void keyReleased(KeyEvent e) {
-                if (e.character == '\u001b') { // Escape
-                    fireCancelEditor();
-                }
-            }
-        });
-        
-        button.addFocusListener(getButtonFocusListener());
-        
-        button.addSelectionListener(new SelectionAdapter() {
-            /* (non-Javadoc)
-             * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-             */
-            public void widgetSelected(SelectionEvent event) {
-            	// Remove the button's focus listener since it's guaranteed
-            	// to lose focus when the dialog opens
-            	button.removeFocusListener(getButtonFocusListener());
-                
-            	Object newValue = openDialogBox(editor);
-            	
-            	// Re-add the listener once the dialog closes
-            	button.addFocusListener(getButtonFocusListener());
-
-            	if (newValue != null) {
-                    boolean newValidState = isCorrect(newValue);
-                    if (newValidState) {
-                        markDirty();
-                        doSetValue(newValue);
-                    } else {
-                        // try to insert the current value into the error message.
-                        setErrorMessage(MessageFormat.format(getErrorMessage(),
-                                new Object[] { newValue.toString() }));
-                    }
-                    fireApplyEditorValue();
-                }
-            }
-        });
-
-        setValueValid(true);
-
-        return editor;
-    }
-
-    /* (non-Javadoc)
-     * 
-     * Override in order to remove the button's focus listener if the celleditor
-     * is deactivating.
-     * 
-     * @see org.eclipse.jface.viewers.CellEditor#deactivate()
-     */
-    public void deactivate() {
-    	if (button != null && !button.isDisposed()) {
-    		button.removeFocusListener(getButtonFocusListener());
-    	}
-    	
-		super.deactivate();
-	}
-
-	/* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected Object doGetValue() {
-        return value;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     * The focus is set to the cell editor's button. 
-     */
-    protected void doSetFocus() {
-        button.setFocus();
-        
-        // add a FocusListener to the button
-        button.addFocusListener(getButtonFocusListener());
-    }
-
-    /**
-     * Return a listener for button focus.
-     * @return FocusListener
-     */
-    private FocusListener getButtonFocusListener() {
-    	if (buttonFocusListener == null) {
-    		buttonFocusListener = new FocusListener() {
-
-				/* (non-Javadoc)
-				 * @see org.eclipse.swt.events.FocusListener#focusGained(org.eclipse.swt.events.FocusEvent)
-				 */
-				public void focusGained(FocusEvent e) {
-					// Do nothing
-				}
-
-				/* (non-Javadoc)
-				 * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)
-				 */
-				public void focusLost(FocusEvent e) {
-					DialogCellEditor.this.focusLost();
-				}
-    		};
-    	}
-    	
-    	return buttonFocusListener;
-	}
-
-	/* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected void doSetValue(Object value) {
-        this.value = value;
-        updateContents(value);
-    }
-
-    /**
-     * Returns the default label widget created by <code>createContents</code>.
-     *
-     * @return the default label widget
-     */
-    protected Label getDefaultLabel() {
-        return defaultLabel;
-    }
-
-    /**
-     * Opens a dialog box under the given parent control and returns the
-     * dialog's value when it closes, or <code>null</code> if the dialog
-     * was canceled or no selection was made in the dialog.
-     * <p>
-     * This framework method must be implemented by concrete subclasses.
-     * It is called when the user has pressed the button and the dialog
-     * box must pop up.
-     * </p>
-     *
-     * @param cellEditorWindow the parent control cell editor's window
-     *   so that a subclass can adjust the dialog box accordingly
-     * @return the selected value, or <code>null</code> if the dialog was 
-     *   canceled or no selection was made in the dialog
-     */
-    protected abstract Object openDialogBox(Control cellEditorWindow);
-
-    /**
-     * Updates the controls showing the value of this cell editor.
-     * <p>
-     * The default implementation of this framework method just converts
-     * the passed object to a string using <code>toString</code> and
-     * sets this as the text of the label widget.
-     * </p>
-     * <p>
-     * Subclasses may reimplement.  If you reimplement this method, you
-     * should also reimplement <code>createContents</code>.
-     * </p>
-     *
-     * @param value the new value of this cell editor
-     */
-    protected void updateContents(Object value) {
-        if (defaultLabel == null) {
-			return;
-		}
-
-        String text = "";//$NON-NLS-1$
-        if (value != null) {
-			text = value.toString();
-		}
-        defaultLabel.setText(text);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DoubleClickEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DoubleClickEvent.java
deleted file mode 100644
index 156f3f4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DoubleClickEvent.java
+++ /dev/null
@@ -1,65 +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.jface.viewers;
-
-import java.util.EventObject;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Event object describing a double-click. The source of these
- * events is a viewer.
- *
- * @see IDoubleClickListener
- */
-public class DoubleClickEvent extends EventObject {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3258408443605038133L;
-    
-    /**
-     * The selection.
-     */
-    protected ISelection selection;
-
-    /**
-     * Creates a new event for the given source and selection.
-     *
-     * @param source the viewer
-     * @param selection the selection
-     */
-    public DoubleClickEvent(Viewer source, ISelection selection) {
-        super(source);
-        Assert.isNotNull(selection);
-        this.selection = selection;
-    }
-
-    /**
-     * Returns the selection.
-     *
-     * @return the selection
-     */
-    public ISelection getSelection() {
-        return selection;
-    }
-
-    /**
-     * Returns the viewer that is the source of this event.
-     *
-     * @return the originating viewer
-     */
-    public Viewer getViewer() {
-        return (Viewer) getSource();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/EditingSupport.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/EditingSupport.java
deleted file mode 100644
index 1a8670e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/EditingSupport.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											   fix in bug 151295,167325,201905
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * EditingSupport is the abstract superclass of the support for cell editing.
- *
- * @since 3.3
- *
- */
-public abstract class EditingSupport {
-
-	private ColumnViewer viewer;
-
-	/**
-	 * @param viewer
-	 *            a new viewer
-	 */
-	public EditingSupport(ColumnViewer viewer) {
-		Assert.isNotNull(viewer, "Viewer is not allowed to be null"); //$NON-NLS-1$
-		this.viewer = viewer;
-	}
-
-	/**
-	 * The editor to be shown
-	 *
-	 * @param element
-	 *            the model element
-	 * @return the CellEditor
-	 */
-	protected abstract CellEditor getCellEditor(Object element);
-
-	/**
-	 * Is the cell editable
-	 *
-	 * @param element
-	 *            the model element
-	 * @return true if editable
-	 */
-	protected abstract boolean canEdit(Object element);
-
-	/**
-	 * Get the value to set to the editor
-	 *
-	 * @param element
-	 *            the model element
-	 * @return the value shown
-	 */
-	protected abstract Object getValue(Object element);
-
-	/**
-	 * Sets the new value on the given element. Note that implementers need to
-	 * ensure that <code>getViewer().update(element, null)</code> or similar
-	 * methods are called, either directly or through some kind of listener
-	 * mechanism on the implementer's model, to cause the new value to appear in
-	 * the viewer.
-	 * 
-	 * <p>
-	 * <b>Subclasses should overwrite.</b>
-	 * </p>
-	 * 
-	 * @param element
-	 *            the model element
-	 * @param value
-	 *            the new value
-	 */
-	protected abstract void setValue(Object element, Object value);
-
-	/**
-	 * @return the viewer this editing support works for
-	 */
-	public ColumnViewer getViewer() {
-		return viewer;
-	}
-
-	/**
-	 * Initialize the editor. Frameworks like Databinding can hook in here and provide
-	 * a customized implementation. <p><b>Standard customers should not overwrite this method but {@link #getValue(Object)}</b></p>
-	 *
-	 * @param cellEditor
-	 *            the cell editor
-	 * @param cell
-	 *            the cell the editor is working for
-	 */
-	protected void initializeCellEditorValue(CellEditor cellEditor, ViewerCell cell) {
-		Object value = getValue(cell.getElement());
-		cellEditor.setValue(value);
-	}
-
-	/**
-	 * Save the value of the cell editor back to the model. Frameworks like Databinding can hook in here and provide
-	 * a customized implementation. <p><b>Standard customers should not overwrite this method but {@link #setValue(Object, Object)} </b></p>
-	 * @param cellEditor
-	 *            the cell-editor
-	 * @param cell
-	 * 			  the cell the editor is working for
-	 */
-	protected void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell) {
-		Object value = cellEditor.getValue();
-		setValue(cell.getElement(), value);
-	}
-
-	boolean isLegacySupport() {
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellHighlighter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellHighlighter.java
deleted file mode 100644
index a552e5c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellHighlighter.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											   bugfix in: 182800
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-/**
- * @since 3.3
- *
- */
-public abstract class FocusCellHighlighter {
-	private ColumnViewer viewer;
-	private SWTFocusCellManager mgr;
-
-	/**
-	 * @param viewer
-	 */
-	public FocusCellHighlighter(ColumnViewer viewer) {
-		this.viewer = viewer;
-	}
-
-	void setMgr(SWTFocusCellManager mgr) {
-		this.mgr = mgr;
-	}
-	
-	/**
-	 * @return the focus cell
-	 */
-	public ViewerCell getFocusCell() {
-		// Mgr is normally not null because the highlighter is passed
-		// to the SWTFocusCellManager instance
-		if( mgr != null ) {
-		    // Use this method because it ensure that no
-		    // cell update (which might cause scrolling) happens 
-			return mgr._getFocusCell();	
-		}
-		
-		return viewer.getColumnViewerEditor().getFocusCell();
-	}
-
-	/**
-	 * Called by the framework when the focus cell has changed. Subclasses may
-	 * extend.
-	 *
-	 * @param cell
-	 *            the new focus cell
-	 * @deprecated use {@link #focusCellChanged(ViewerCell, ViewerCell)} instead
-	 */
-	protected void focusCellChanged(ViewerCell cell) {
-	}
-
-	/**
-	 * Called by the framework when the focus cell has changed. Subclasses may
-	 * extend.
-	 * <p>
-	 * <b>The default implementation for this method calls
-	 * focusCellChanged(ViewerCell). Subclasses should override this method
-	 * rather than {@link #focusCellChanged(ViewerCell)} .</b>
-	 *
-	 * @param newCell
-	 *            the new focus cell or <code>null</code> if no new cell
-	 *            receives the focus
-	 * @param oldCell
-	 *            the old focus cell or <code>null</code> if no cell has been
-	 *            focused before
-	 * @since 3.4
-	 */
-	protected void focusCellChanged(ViewerCell newCell, ViewerCell oldCell) {
-		focusCellChanged(newCell);
-	}
-
-	/**
-	 * This method is called by the framework to initialize this cell
-	 * highlighter object. Subclasses may extend.
-	 */
-	protected void init() {
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellOwnerDrawHighlighter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellOwnerDrawHighlighter.java
deleted file mode 100644
index 53dc7ca..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/FocusCellOwnerDrawHighlighter.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * 	   IBM Corporation - initial API and implementation
- * 	   Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- * 												 - fix for bug 183850, 182652, 182800, 215069
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * A concrete implementation of {@link FocusCellHighlighter} using by setting
- * the control into owner draw mode and highlighting the currently selected
- * cell. To make the use this class you should create the control with the
- * {@link SWT#FULL_SELECTION} bit set
- * 
- * This class can be subclassed to configure how the coloring of the selected
- * cell.
- * 
- * @since 3.3
- * 
- */
-public class FocusCellOwnerDrawHighlighter extends FocusCellHighlighter {
-	/**
-	 * Create a new instance which can be passed to a
-	 * {@link TreeViewerFocusCellManager}
-	 * 
-	 * @param viewer
-	 *            the viewer
-	 */
-	public FocusCellOwnerDrawHighlighter(ColumnViewer viewer) {
-		super(viewer);
-		hookListener(viewer);
-	}
-
-	private void markFocusedCell(Event event, ViewerCell cell) {
-		Color background = (cell.getControl().isFocusControl()) ? getSelectedCellBackgroundColor(cell)
-				: getSelectedCellBackgroundColorNoFocus(cell);
-		Color foreground = (cell.getControl().isFocusControl()) ? getSelectedCellForegroundColor(cell)
-				: getSelectedCellForegroundColorNoFocus(cell);
-
-		if (foreground != null || background != null || onlyTextHighlighting(cell)) {
-			GC gc = event.gc;
-
-			if (background == null) {
-				background = cell.getItem().getDisplay().getSystemColor(
-						SWT.COLOR_LIST_SELECTION);
-			}
-
-			if (foreground == null) {
-				foreground = cell.getItem().getDisplay().getSystemColor(
-						SWT.COLOR_LIST_SELECTION_TEXT);
-			}
-
-			gc.setBackground(background);
-			gc.setForeground(foreground);
-			
-			if (onlyTextHighlighting(cell)) {
-				Rectangle area = event.getBounds();
-				Rectangle rect = cell.getTextBounds();
-				if( rect != null ) {
-					area.x = rect.x;
-				}
-				gc.fillRectangle(area);
-			} else {
-				gc.fillRectangle(event.getBounds());
-			}
-			
-			event.detail &= ~SWT.SELECTED;
-		}
-	}
-
-	private void removeSelectionInformation(Event event, ViewerCell cell) {
-		GC gc = event.gc;
-		gc.setBackground(cell.getViewerRow().getBackground(
-				cell.getColumnIndex()));
-		gc.setForeground(cell.getViewerRow().getForeground(
-				cell.getColumnIndex()));
-		gc.fillRectangle(cell.getBounds());
-		event.detail &= ~SWT.SELECTED;
-	}
-
-	private void hookListener(final ColumnViewer viewer) {
-
-		Listener listener = new Listener() {
-
-			public void handleEvent(Event event) {
-				if ((event.detail & SWT.SELECTED) > 0) {
-					ViewerCell focusCell = getFocusCell();
-					ViewerRow row = viewer.getViewerRowFromItem(event.item);
-
-					Assert
-							.isNotNull(row,
-									"Internal structure invalid. Item without associated row is not possible."); //$NON-NLS-1$
-
-					ViewerCell cell = row.getCell(event.index);
-
-					if (focusCell == null || !cell.equals(focusCell)) {
-						removeSelectionInformation(event, cell);
-					} else {
-						markFocusedCell(event, cell);
-					}
-				}
-			}
-
-		};
-		viewer.getControl().addListener(SWT.EraseItem, listener);
-	}
-
-	/**
-	 * The color to use when rendering the background of the selected cell when
-	 * the control has the input focus
-	 * 
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color or <code>null</code> to use the default
-	 */
-	protected Color getSelectedCellBackgroundColor(ViewerCell cell) {
-		return null;
-	}
-
-	/**
-	 * The color to use when rendering the foreground (=text) of the selected
-	 * cell when the control has the input focus
-	 * 
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color or <code>null</code> to use the default
-	 */
-	protected Color getSelectedCellForegroundColor(ViewerCell cell) {
-		return null;
-	}
-
-	/**
-	 * The color to use when rendering the foreground (=text) of the selected
-	 * cell when the control has <b>no</b> input focus
-	 * 
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color or <code>null</code> to use the same used when
-	 *         control has focus
-	 * @since 3.4
-	 */
-	protected Color getSelectedCellForegroundColorNoFocus(ViewerCell cell) {
-		return null;
-	}
-
-	/**
-	 * The color to use when rendering the background of the selected cell when
-	 * the control has <b>no</b> input focus
-	 * 
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color or <code>null</code> to use the same used when
-	 *         control has focus
-	 * @since 3.4
-	 */
-	protected Color getSelectedCellBackgroundColorNoFocus(ViewerCell cell) {
-		return null;
-	}
-
-	/**
-	 * Controls whether the whole cell or only the text-area is highlighted
-	 * 
-	 * @param cell
-	 *            the cell which is highlighted
-	 * @return <code>true</code> if only the text area should be highlighted
-	 * @since 3.4
-	 */
-	protected boolean onlyTextHighlighting(ViewerCell cell) {
-		return false;
-	}
-
-	protected void focusCellChanged(ViewerCell newCell, ViewerCell oldCell) {
-		super.focusCellChanged(newCell, oldCell);
-
-		// Redraw new area
-		if (newCell != null) {
-			Rectangle rect = newCell.getBounds();
-			int x = newCell.getColumnIndex() == 0 ? 0 : rect.x;
-			int width = newCell.getColumnIndex() == 0 ? rect.x + rect.width
-					: rect.width;
-			// 1 is a fix for Linux-GTK
-			newCell.getControl().redraw(x, rect.y - 1, width, rect.height + 1,
-					true);
-		}
-
-		if (oldCell != null) {
-			Rectangle rect = oldCell.getBounds();
-			int x = oldCell.getColumnIndex() == 0 ? 0 : rect.x;
-			int width = oldCell.getColumnIndex() == 0 ? rect.x + rect.width
-					: rect.width;
-			// 1 is a fix for Linux-GTK
-			oldCell.getControl().redraw(x, rect.y - 1, width, rect.height + 1,
-					true);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBaseLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBaseLabelProvider.java
deleted file mode 100644
index a6af26a6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBaseLabelProvider.java
+++ /dev/null
@@ -1,85 +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.jface.viewers;
-
-/**
- * A label provider maps an element of the viewer's model to
- * an optional image and optional text string used to display
- * the element in the viewer's control.  Certain label providers
- * may allow multiple labels per element.  
- * This is an "abstract interface", defining methods common 
- * to all label providers, but does not actually define the methods 
- * to get the label(s) for an element.  This interface should never
- * be directly implemented.
- * Most viewers will take either an <code>ILabelProvider</code> or
- * an <code>ITableLabelProvider</code>.
- * <p>
- * A label provider must not be shared between viewers 
- * since a label provider generally manages SWT resources (images),
- * which must be disposed when the viewer is disposed.
- * To simplify life cycle management, the current label provider 
- * of a viewer is disposed when the viewer is disposed.
- * </p>
- * <p>
- * Label providers can be used outside the context of viewers wherever
- * images are needed.  When label providers are used in this fashion
- * it is the responsibility of the user to ensure <code>dispose</code>
- * is called when the provider is no longer needed.
- * </p>
- *
- * @see ILabelProvider
- * @see ITableLabelProvider
- */
-public interface IBaseLabelProvider {
-    /**
-     * Adds a listener to this label provider. 
-     * Has no effect if an identical listener is already registered.
-     * <p>
-     * Label provider listeners are informed about state changes 
-     * that affect the rendering of the viewer that uses this label provider.
-     * </p>
-     *
-     * @param listener a label provider listener
-     */
-    public void addListener(ILabelProviderListener listener);
-
-    /**
-     * Disposes of this label provider.  When a label provider is
-     * attached to a viewer, the viewer will automatically call
-     * this method when the viewer is being closed.  When label providers
-     * are used outside of the context of a viewer, it is the client's
-     * responsibility to ensure that this method is called when the
-     * provider is no longer needed.
-     */
-    public void dispose();
-
-    /**
-     * Returns whether the label would be affected 
-     * by a change to the given property of the given element.
-     * This can be used to optimize a non-structural viewer update.
-     * If the property mentioned in the update does not affect the label,
-     * then the viewer need not update the label.
-     *
-     * @param element the element
-     * @param property the property
-     * @return <code>true</code> if the label would be affected,
-     *    and <code>false</code> if it would be unaffected
-     */
-    public boolean isLabelProperty(Object element, String property);
-
-    /**
-     * Removes a listener to this label provider.
-     * Has no affect if an identical listener is not registered.
-     *
-     * @param listener a label provider listener
-     */
-    public void removeListener(ILabelProviderListener listener);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBasicPropertyConstants.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBasicPropertyConstants.java
deleted file mode 100644
index cad8e42..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IBasicPropertyConstants.java
+++ /dev/null
@@ -1,52 +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.jface.viewers;
-
-/**
- * Predefined property names used for elements displayed in viewers.
- *
- * @see StructuredViewer#update(Object, String[])
- * @see StructuredViewer#update(Object[], String[])
- * @see IBaseLabelProvider#isLabelProperty
- * @see ViewerComparator#isSorterProperty
- * @see ViewerFilter#isFilterProperty
- */
-public interface IBasicPropertyConstants {
-
-    /**
-     * Property name constant (value <code>"org.eclipse.jface.text"</code>)
-     * for an element's label text.
-     *
-     * @see org.eclipse.jface.viewers.ILabelProvider#getText
-     */
-    public static final String P_TEXT = "org.eclipse.jface.text"; //$NON-NLS-1$
-
-    /**
-     * Property name constant (value <code>"org.eclipse.jface.image"</code>)
-     * for an element's label image.
-     *
-     * @see org.eclipse.jface.viewers.ILabelProvider#getImage
-     */
-    public static final String P_IMAGE = "org.eclipse.jface.image"; //$NON-NLS-1$
-
-    /**
-     * Property name constant (value <code>"org.eclipse.jface.children"</code>)
-     * for an element's children.
-     */
-    public static final String P_CHILDREN = "org.eclipse.jface.children"; //$NON-NLS-1$
-
-    /**
-     * Property name constant (value <code>"org.eclipse.jface.parent"</code>)
-     * for an element's parent object.
-     */
-    public static final String P_PARENT = "org.eclipse.jface.parent"; //$NON-NLS-1$
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorListener.java
deleted file mode 100644
index 697af3f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorListener.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * A listener which is notified of significant events in the
- * life of a cell editor.
- * <p>
- * This interface should be implemented by classes that wish to
- * react to cell editor activity.
- * </p>
- * <p>
- * Note: the cell editor is not passed as a parameter to any
- * of these methods; so the assumption is that the listener
- * knows which cell editor is talking to it.
- * </p>
- */
-public interface ICellEditorListener {
-    /**
-     * Notifies that the end user has requested applying a value.
-     * All cell editors send this notification.
-     * <p>
-     * The normal reaction is to update the model with the current cell editor value.
-     * However, if the value is not valid, it should not be applied. 
-     * A typical text-based cell editor would send this message
-     * when the end user hits Return, whereas other editors would
-     * send it whenever their value changes.
-     * </p>
-     */
-    public void applyEditorValue();
-
-    /**
-     * Notifies that the end user has canceled editing.
-     * All cell editors send this notification.
-     * A listener should <b>not</b> update the model based on this
-     * notification; see <code>applyEditorValue</code>.
-     */
-    public void cancelEditor();
-
-    /**
-     * Notifies that the end user is changing the value in the cell editor. This
-     * notification is normally sent only by text-based editors in response to a
-     * keystroke, so that the listener may show an error message reflecting the
-     * current valid state. This notification is sent while the value is being
-     * actively edited, before the value is applied or canceled.  A listener should
-     * <b>not</b> update the model based on this notification; see
-     * <code>applyEditorValue</code>.
-     * <p>
-     * If the <code>newValidState</code> parameter is <code>true</code>,
-     * the new value may be retrieved by calling <code>ICellEditor.getValue</code>
-     * on the appropriate cell editor.
-     * </p>
-     * 
-     * @param oldValidState the valid state before the end user changed the value
-     * @param newValidState the current valid state
-     */
-    public void editorValueChanged(boolean oldValidState, boolean newValidState);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorValidator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorValidator.java
deleted file mode 100644
index 8722111..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellEditorValidator.java
+++ /dev/null
@@ -1,36 +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.jface.viewers;
-
-/**
- * An interface for validating a cell editor's input.
- * <p>
- * This interface should be implemented by classes that wish to
- * act as cell editor validators.
- * </p>
- */
-public interface ICellEditorValidator {
-    /**
-     * Returns a string indicating whether the given value is valid;
-     * <code>null</code> means valid, and non-<code>null</code> means
-     * invalid, with the result being the error message to display
-     * to the end user.
-     * <p>
-     * It is the responsibility of the implementor to fully format the
-     * message before returning it.
-     * </p>
-     * 
-     * @param value the value to be validated
-     * @return the error message, or <code>null</code> indicating
-     *	that the value is valid
-     */
-    public String isValid(Object value);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellModifier.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellModifier.java
deleted file mode 100644
index 372eae0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICellModifier.java
+++ /dev/null
@@ -1,71 +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.jface.viewers;
-
-/**
- * A cell modifier is used to access the data model from a cell
- * editor in an abstract way. It offers methods to:
- * <ul>
- *	<li>to check if a a model element's property can be edited or not</li>
- *	<li>retrieve a value a model element's property</li>
- *	<li>to store a cell editor's value back into the model 
- *    element's property</li>
- * </ul>
- * <p>
- * This interface should be implemented by classes that wish to
- * act as cell modifiers.
- * </p>
- */
-public interface ICellModifier {
-    /**
-     * Checks whether the given property of the given element can be 
-     * modified.
-     *
-     * @param element the element
-     * @param property the property
-     * @return <code>true</code> if the property can be modified,
-     *   and <code>false</code> if it is not modifiable
-     */
-    public boolean canModify(Object element, String property);
-
-    /**
-     * Returns the value for the given property of the given element.
-     * Returns <code>null</code> if the element does not have the given property.
-     *
-     * @param element the element
-     * @param property the property
-     * @return the property value
-     */
-    public Object getValue(Object element, String property);
-
-    /**
-     * Modifies the value for the given property of the given element.
-     * Has no effect if the element does not have the given property,
-     * or if the property cannot be modified.
-     * <p>
-     * Note that it is possible for an SWT Item to be passed instead of 
-     * the model element. To handle this case in a safe way, use: 
-     * <pre>
-     *     if (element instanceof Item) {
-     *         element = ((Item) element).getData();
-     *     }
-     *     // modify the element's property here
-     * </pre>
-     * </p>
-     * 
-     * @param element the model element or SWT Item (see above)
-     * @param property the property
-     * @param value the new property value
-     * 
-     * @see org.eclipse.swt.widgets.Item
-     */
-    public void modify(Object element, String property, Object value);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateListener.java
deleted file mode 100644
index 74586f9..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateListener.java
+++ /dev/null
@@ -1,26 +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.jface.viewers;
-
-/**
- * A listener which is notified of changes to the checked
- * state of items in checkbox viewers.
- *
- * @see CheckStateChangedEvent
- */
-public interface ICheckStateListener {
-    /**
-     * Notifies of a change to the checked state of an element.
-     *
-     * @param event event object describing the change
-     */
-    void checkStateChanged(CheckStateChangedEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateProvider.java
deleted file mode 100644
index 1eb9c82..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckStateProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-/**
- * Interface to provide checked and grayed state information about data in trees
- * or tables. The following chart determines the checkbox state:
- * <table border="1">
- * 	<tr align="center">
- * 		<td/>
- * 		<td/>
- * 		<td colspan="2"><strong><code>isGrayed()</code></strong></td>
- * 	</tr>
- * 	<tr align="center">
- * 		<td/>
- * 		<td/>
- * 		<td><code>false</code></td>
- * 		<td><code>true</code></td>
- * 	</tr>
- * 	<tr align="center">
- * 		<td rowspan="2"><strong><code>isChecked()</code></strong></td>
- * 		<td><code>false</code></td>
- * 		<td colspan="2">unchecked</td>
- * 	</tr>
- * 	<tr align="center">
- * 		<td><code>true</code></td>
- * 		<td>checked</td>
- * 		<td>grayed</td>
- * 	</tr>
- * </table>
- * @since 3.5
- */
-public interface ICheckStateProvider {
-	
-	/**
-	 * Indicates if an element's representation should appear as checked or 
-	 * gray instead of unchecked. If this method returns <code>true</code>
-	 * the {@link ICheckStateProvider#isGrayed(Object)} method will determine
-	 * whether the check box displays a check mark ("checked") or a box 
-	 * ("grayed").
-	 * @param element 
-	 * @return true if the element should be checked or grayed, false if it 
-	 * 		should be unchecked
-	 */
-	public boolean isChecked(Object element);
-	
-	/**
-	 * Indicates whether the check box associated with an element, when checked
-	 * as indicated by the {@link ICheckStateProvider#isChecked(Object)} method,
-	 * should display the gray (boxed) state instead of the check mark.  
-	 * @param element
-	 * @return true if the element should be gray
-	 */
-	public boolean isGrayed(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckable.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckable.java
deleted file mode 100644
index 37143c6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ICheckable.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * Interface for objects that support elements with a checked state.
- *
- * @see ICheckStateListener
- * @see CheckStateChangedEvent
- */
-public interface ICheckable {
-    /**
-     * Adds a listener for changes to the checked state of elements
-     * in this viewer.
-     * Has no effect if an identical listener is already registered.
-     *
-     * @param listener a check state listener
-     */
-    public void addCheckStateListener(ICheckStateListener listener);
-
-    /**
-     * Returns the checked state of the given element.
-     *
-     * @param element the element
-     * @return <code>true</code> if the element is checked,
-     *   and <code>false</code> if not checked
-     */
-    public boolean getChecked(Object element);
-
-    /**
-     * Removes the given check state listener from this viewer.
-     * Has no effect if an identical listener is not registered.
-     *
-     * @param listener a check state listener
-     */
-    public void removeCheckStateListener(ICheckStateListener listener);
-
-    /**
-     * Sets the checked state for the given element in this viewer.
-     * Does not fire events to check state listeners.
-     *
-     * @param element the element
-     * @param state <code>true</code> if the item should be checked,
-     *  and <code>false</code> if it should be unchecked
-     * @return <code>true</code> if the checked state could be set, 
-     *  and <code>false</code> otherwise
-     */
-    public boolean setChecked(Object element, boolean state);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorDecorator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorDecorator.java
deleted file mode 100644
index d8294e0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorDecorator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.graphics.Color;
-
-/**
- * The IColorDecorator is an interface for objects that return a color to
- * decorate either the foreground and background colors for displaying an
- * an object.
- * 
- * If an IColorDecorator decorates a foreground or background in an object 
- * that also has an IColorProvider the IColorDecorator will take precedence.
- * @see IColorProvider
- * 
- * @since 3.1
- */
-public interface IColorDecorator {
-	
-	/**
-	 * Return the foreground Color for element or <code>null</code> if there
-	 * is not one.
-	 * @param element
-	 * @return Color or <code>null</code>
-	 */
-	public Color decorateForeground(Object element);
-	
-	/**
-	 * Return the background Color for element or <code>null</code> if there
-	 * is not one.
-	 * @param element
-	 * @return Color or <code>null</code>
-	 */
-	public Color decorateBackground(Object element);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorProvider.java
deleted file mode 100644
index a58efac..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IColorProvider.java
+++ /dev/null
@@ -1,39 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Interface to provide color representation for a given element.
- * @see org.eclipse.jface.viewers.IColorDecorator
- */
-public interface IColorProvider {
-
-    /**
-     * Provides a foreground color for the given element.
-     * 
-     * @param element the element
-     * @return	the foreground color for the element, or <code>null</code> 
-     *   to use the default foreground color
-     */
-    Color getForeground(Object element);
-
-    /**
-     * Provides a background color for the given element.
-     * 
-     * @param element the element
-     * @return	the background color for the element, or <code>null</code> 
-     *   to use the default background color
-     */
-    Color getBackground(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IContentProvider.java
deleted file mode 100644
index 9a5547a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IContentProvider.java
+++ /dev/null
@@ -1,51 +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.jface.viewers;
-
-/** 
- * A content provider mediates between the viewer's model
- * and the viewer itself.
- * 
- * @see org.eclipse.jface.viewers.ContentViewer#setContentProvider(IContentProvider)
- */
-public interface IContentProvider {
-    /**
-     * Disposes of this content provider.  
-     * This is called by the viewer when it is disposed.
-     * <p>
-     * The viewer should not be updated during this call, as it is in the process
-     * of being disposed.
-     * </p>
-     */
-    public void dispose();
-
-    /**
-     * Notifies this content provider that the given viewer's input
-     * has been switched to a different element.
-     * <p>
-     * A typical use for this method is registering the content provider as a listener
-     * to changes on the new input (using model-specific means), and deregistering the viewer 
-     * from the old input. In response to these change notifications, the content provider
-     * should update the viewer (see the add, remove, update and refresh methods on the viewers).
-     * </p>
-     * <p>
-     * The viewer should not be updated during this call, as it might be in the process
-     * of being disposed.
-     * </p>
-     *
-     * @param viewer the viewer
-     * @param oldInput the old input element, or <code>null</code> if the viewer
-     *   did not previously have an input
-     * @param newInput the new input element, or <code>null</code> if the viewer
-     *   does not have an input
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecoration.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecoration.java
deleted file mode 100644
index e4b41c3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecoration.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-
-/**
- * Defines the result of decorating an element.
- * 
- * This interface is not meant to be implemented and will be provided to
- * instances of <code>ILightweightLabelDecorator</code>.
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IDecoration{
-
-	/**
-	 * Constants for placement of image decorations.
-	 */
-	public static final int TOP_LEFT = 0;
-
-	/**
-	 * Constant for the top right quadrant.
-	 */
-	public static final int TOP_RIGHT = 1;
-
-	/**
-	 * Constant for the bottom left quadrant.
-	 */
-	public static final int BOTTOM_LEFT = 2;
-
-	/**
-	 * Constant for the bottom right quadrant.
-	 */
-	public static final int BOTTOM_RIGHT = 3;
-
-	/**
-	 * Constant for the underlay.
-	 */
-	public static final int UNDERLAY = 4;
-
-	/**
-	 * Constant for replacing the original image. Note that for this to have an
-	 * effect on the resulting decorated image, {@link #ENABLE_REPLACE} has to
-	 * be set to {@link Boolean#TRUE} in the {@link IDecorationContext} (opt-in
-	 * model). If replacement behavior is enabled, the resulting decorated image
-	 * will be constructed by first painting the underlay, then the replacement
-	 * image, and then the regular quadrant images.
-	 * 
-	 * @since 3.4
-	 */
-	public static final int REPLACE = 5;
-	
-	/**
-	 * Constant that is used as the property key on an
-	 * {@link IDecorationContext}. To enable image replacement, set to
-	 * {@link Boolean#TRUE}.
-	 * 
-	 * @since 3.4
-	 * @see IDecorationContext
-	 */
-	public static final String ENABLE_REPLACE = "org.eclipse.jface.viewers.IDecoration.disableReplace"; //$NON-NLS-1$
-	
-	/**
-	 * Adds a prefix to the element's label.
-	 * 
-	 * @param prefix
-	 *            the prefix
-	 */
-	public void addPrefix(String prefix);
-
-	/**
-	 * Adds a suffix to the element's label.
-	 * 
-	 * @param suffix
-	 *            the suffix
-	 */
-	public void addSuffix(String suffix);
-
-	/**
-	 * Adds an overlay to the element's image.
-	 * 
-	 * @param overlay
-	 *            the overlay image descriptor
-	 */
-	public void addOverlay(ImageDescriptor overlay);
-
-	/**
-	 * Adds an overlay to the element's image.
-	 * 
-	 * @param overlay
-	 *            the overlay image descriptor
-	 * @param quadrant
-	 *            The constant for the quadrant to draw the image on.
-	 */
-	public void addOverlay(ImageDescriptor overlay, int quadrant);
-	
-	/**
-	 * Set the foreground color for this decoration.
-	 * @param color the color to be set for the foreground
-	 * 
-	 * @since 3.1
-	 */
-	public void setForegroundColor(Color color);
-	
-	/**
-	 * Set the background color for this decoration.
-	 * @param color the color to be set for the background
-	 * 
-	 * @since 3.1
-	 */
-	public void setBackgroundColor(Color color);
-	
-	/**
-	 * Set the font for this decoration.
-	 * @param font the font to use in this decoration
-	 * 
-	 * @since 3.1
-	 */
-	public void setFont(Font font);
-
-	/**
-	 * Return the decoration context in which this decoration
-	 * will be applied.
-	 * @return the decoration context
-	 * 
-	 * @since 3.2
-	 */
-	public IDecorationContext getDecorationContext();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecorationContext.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecorationContext.java
deleted file mode 100644
index bba6f7a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDecorationContext.java
+++ /dev/null
@@ -1,42 +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.jface.viewers;
-
-
-/**
- * A decoration context provides additional information to
- * a label decorator.
- * <p>
- * This interface is not intended to be implemented by clients
- * 
- * @see LabelDecorator
- * 
- * @since 3.2
- */
-public interface IDecorationContext {
-	
-	/**
-	 * Get the value of the given property or <code>null</code>
-	 * if the property does not exist in this context.
-	 * @param property the property
-	 * @return the value of the given property or <code>null</code>
-	 */
-	Object getProperty(String property);
-	
-	/**
-	 * Return the properties that exist in this context
-	 * (i.e. the set of properties that have values associated
-	 * with them.
-	 * @return the properties that exist in this context
-	 */
-	String[] getProperties();
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDelayedLabelDecorator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDelayedLabelDecorator.java
deleted file mode 100644
index ea7f91e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDelayedLabelDecorator.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * A delayed label decorator is a label decorator that may not have a
- * decoration available immediately. This interface defines the methods for
- * requesting the preparation of a decorator for an object and for querying
- * if the decorator is ready. Interested parties should register an
- * ILabelProviderListener with a delayed label decorator in order to be informed
- * when the decoration is ready.
- * @since 3.0
- */
-public interface IDelayedLabelDecorator extends ILabelDecorator {
-
-    /**
-     * Prepare the element for decoration. If it is already decorated and ready for update
-     * return true. If decoration is pending return false.
-     * @param element The element to be decorated
-     * @param originalText The starting text. 
-     * @return boolean <code>true</code> if the decoration is ready for this element
-     */
-
-    public boolean prepareDecoration(Object element, String originalText);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDoubleClickListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDoubleClickListener.java
deleted file mode 100644
index 814f7ca..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IDoubleClickListener.java
+++ /dev/null
@@ -1,23 +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.jface.viewers;
-
-/**
- * A listener which is notified of double-click events on viewers.
- */
-public interface IDoubleClickListener {
-    /**
-     * Notifies of a double click.
-     *
-     * @param event event object describing the double-click
-     */
-    public void doubleClick(DoubleClickEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IElementComparer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IElementComparer.java
deleted file mode 100644
index 84d9c19..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IElementComparer.java
+++ /dev/null
@@ -1,42 +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.jface.viewers;
-
-/**
- * This interface is used to compare elements in a viewer for equality,
- * and to provide the hash code for an element.
- * This allows the client of the viewer to specify different equality criteria
- * and a different hash code implementation than the 
- * <code>equals</code> and <code>hashCode</code> implementations of the
- * elements themselves. 
- * 
- * @see StructuredViewer#setComparer
- */
-public interface IElementComparer {
-
-    /**
-     * Compares two elements for equality
-     * 
-     * @param a the first element
-     * @param b the second element
-     * @return whether a is equal to b
-     */
-    boolean equals(Object a, Object b);
-
-    /**
-     * Returns the hash code for the given element.
-     * @param element the element the hash code is calculated for
-     * 
-     * @return the hash code for the given element
-     */
-    int hashCode(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFilter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFilter.java
deleted file mode 100644
index b5b3ba5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFilter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * Interface for filters. Can accept or reject items.
- * 
- * @since 3.1
- */
-public interface IFilter {
-	/**
-	 * Determines if the given object passes this filter.
-	 * 
-	 * @param toTest object to compare against the filter 
-	 * 
-	 * @return <code>true</code> if the object is accepted by the filter.
-	 */
-	public boolean select(Object toTest);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontDecorator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontDecorator.java
deleted file mode 100644
index ea69c37..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontDecorator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.graphics.Font;
-
-/**
- * The IFontDecorator is an interface for objects that return a font to
- * decorate an object.
- * 
- * If an IFontDecorator decorates a font in an object that also has
- * an IFontProvider the IFontDecorator will take precedence.
- * @see IFontProvider
- * 
- * @since 3.1
- */
-public interface IFontDecorator {
-	
-	/**
-	 * Return the font for element or <code>null</code> if there
-	 * is not one.
-	 * 
-	 * @param element
-	 * @return Font or <code>null</code>
-	 */
-	public Font decorateFont(Object element);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontProvider.java
deleted file mode 100644
index 8e19ab4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IFontProvider.java
+++ /dev/null
@@ -1,31 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Font;
-
-/**
- * Interface to provide font representation for a given element.
- * @see org.eclipse.jface.viewers.IFontDecorator
- * 
- * @since 3.0
- */
-public interface IFontProvider {
-
-    /**
-     * Provides a font for the given element.
-     * 
-     * @param element the element
-     * @return the font for the element, or <code>null</code> 
-     *   to use the default font
-     */
-    public Font getFont(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IIndexableLazyContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IIndexableLazyContentProvider.java
deleted file mode 100644
index 0d561ed..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IIndexableLazyContentProvider.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Peter Centgraf and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Peter Centgraf - initial API and implementation (bug 251575)
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * Adds efficient element indexing support to ILazyContentProvider.
- * 
- * @since 3.5
- */
-public interface IIndexableLazyContentProvider extends ILazyContentProvider {
-	/**
-	 * Find the row index of the parameter element in the set of contents provided
-	 * by this object.  Under normal usage, this method will only be used to 
-	 * implement <code>StructuredViewer#setSelection(ISelection)</code> more
-	 * efficiently.
-	 *
-	 * @param element the element to find within the contents served here
-	 * @return the zero-based index of the element, or -1 if the element is not found
-	 */
-	public int findElement(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputProvider.java
deleted file mode 100644
index 30fdca0..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputProvider.java
+++ /dev/null
@@ -1,23 +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.jface.viewers;
-
-/**
- * Interface common to all objects that provide an input.
- */
-public interface IInputProvider {
-    /**
-     * Returns the input.
-     *
-     * @return the input object
-     */
-    public Object getInput();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputSelectionProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputSelectionProvider.java
deleted file mode 100644
index b5fdeab..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IInputSelectionProvider.java
+++ /dev/null
@@ -1,19 +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.jface.viewers;
-
-/**
- * Interface common to all objects that provide both an input and
- * a selection.
- */
-public interface IInputSelectionProvider extends IInputProvider,
-        ISelectionProvider {
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelDecorator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelDecorator.java
deleted file mode 100644
index 16fc861..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelDecorator.java
+++ /dev/null
@@ -1,60 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A label decorator decorates the label text and image for some element.
- * The original label text and image are obtained by some other means,
- * for example by a label provider.
- *
- * @see ILabelProvider
- */
-public interface ILabelDecorator extends IBaseLabelProvider {
-    /**
-     * Returns an image that is based on the given image,
-     * but decorated with additional information relating to the state
-     * of the provided element.
-     * 
-     * Text and image decoration updates can occur as a result of other updates
-     * within the workbench including deferred decoration by background processes.
-     * Clients should handle labelProviderChangedEvents for the given element to get
-     * the complete decoration.
-     * @see LabelProviderChangedEvent
-     * @see IBaseLabelProvider#addListener
-     *
-     * @param image the input image to decorate, or <code>null</code> if the element has no image
-     * @param element the element whose image is being decorated
-     * @return the decorated image, or <code>null</code> if no decoration is to be applied
-     *
-     * @see org.eclipse.jface.resource.CompositeImageDescriptor
-     */
-    public Image decorateImage(Image image, Object element);
-
-    /**
-     * Returns a text label that is based on the given text label,
-     * but decorated with additional information relating to the state
-     * of the provided element.
-     * 
-     * Text and image decoration updates can occur as a result of other updates
-     * within the workbench including deferred decoration by background processes.
-     * Clients should handle labelProviderChangedEvents for the given element to get
-     * the complete decoration.
-     * @see LabelProviderChangedEvent
-     * @see IBaseLabelProvider#addListener
-     *
-     * @param text the input text label to decorate
-     * @param element the element whose image is being decorated
-     * @return the decorated text label, or <code>null</code> if no decoration is to be applied
-     */
-    public String decorateText(String text, Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProvider.java
deleted file mode 100644
index 414f159..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProvider.java
+++ /dev/null
@@ -1,40 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Extends <code>IBaseLabelProvider</code> with the methods
- * to provide the text and/or image for the label of a given element. 
- * Used by most structured viewers, except table viewers.
- */
-public interface ILabelProvider extends IBaseLabelProvider {
-    /**
-     * Returns the image for the label of the given element.  The image
-     * is owned by the label provider and must not be disposed directly.
-     * Instead, dispose the label provider when no longer needed.
-     *
-     * @param element the element for which to provide the label image
-     * @return the image used to label the element, or <code>null</code>
-     *   if there is no image for the given object
-     */
-    public Image getImage(Object element);
-
-    /**
-     * Returns the text for the label of the given element.
-     *
-     * @param element the element for which to provide the label text
-     * @return the text string used to label the element, or <code>null</code>
-     *   if there is no text label for the given object
-     */
-    public String getText(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProviderListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProviderListener.java
deleted file mode 100644
index 8f9d095..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILabelProviderListener.java
+++ /dev/null
@@ -1,31 +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.jface.viewers;
-
-/** 
- * A listener which is notified when a label provider's state changes.
- *
- * @see IBaseLabelProvider#addListener
- * @see IBaseLabelProvider#removeListener
- */
-public interface ILabelProviderListener {
-    /**
-     * Notifies this listener that the state of the label provider 
-     * has changed in a way that affects the labels it computes.
-     * <p>
-     * A typical response would be to refresh all labels by 
-     * re-requesting them from the label provider.
-     * </p>
-     *
-     * @param event the label provider change event
-     */
-    public void labelProviderChanged(LabelProviderChangedEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyContentProvider.java
deleted file mode 100644
index a97f371..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyContentProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * The ILazyContentProvider is the content provider
- * for table viewers created using the SWT.VIRTUAL flag that
- * only wish to return their contents as they are queried.
- * 
- * <strong>NOTE:</strong> As the ILazyContentProvider does
- * not have API for determining the total item count any
- * changes to the number of items for this object while
- * require a call to <code>#setItemCount</code> on the 
- * viewer that uses it.
- */
-public interface ILazyContentProvider extends IContentProvider {
-	/**
-	 * Called when a previously-blank item becomes visible in the
-	 * TableViewer. If the content provider knows the element
-	 * at this row, it should respond by calling 
-	 * TableViewer#replace(Object, int).
-	 * 
-	 * <strong>NOTE</strong> #updateElement(int index) can be used to determine selection
-	 * values. TableViewer#replace(Object, int) is not called before 
-	 * returning from this method selections may have missing or stale elements.
-	 * In this situation it is suggested that the selection is asked
-	 * for again after he update.
-	 * 
-	 * @param index The index that is being updated in the
-	 * table.
-	 */
-	public void updateElement(int index);
-	
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreeContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreeContentProvider.java
deleted file mode 100644
index fdfc1e6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreeContentProvider.java
+++ /dev/null
@@ -1,73 +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.jface.viewers;
-
-/**
- * The ILazyTreeContentProvider is the content provider for tree viewers created
- * using the SWT.VIRTUAL flag that only wish to return their contents as they
- * are queried.
- * 
- * @since 3.2
- */
-public interface ILazyTreeContentProvider extends IContentProvider {
-	/**
-	 * Called when a previously-blank item becomes visible in the TreeViewer. If
-	 * the content provider knows the child element for the given parent at this
-	 * index, it should respond by calling
-	 * {@link TreeViewer#replace(Object, int, Object)}. The content provider
-	 * should also update the child count for any replaced element by calling
-	 * {@link TreeViewer#setChildCount(Object, int)}. If the given current child
-	 * count is already correct, setChildCount does not have to be called since
-	 * a call to replace will not change the child count.
-	 * 
-	 * <strong>NOTE</strong> #updateElement(int index) can be used to determine
-	 * selection values. If TableViewer#replace(Object, int) is not called
-	 * before returning from this method, selections may have missing or stale
-	 * elements. In this situation it is suggested that the selection is asked
-	 * for again after replace() has been called.
-	 * 
-	 * @param parent
-	 *            The parent of the element, or the viewer's input if the
-	 *            element to update is a root element
-	 * @param index
-	 *            The index of the element to update in the tree
-	 */
-	public void updateElement(Object parent, int index);
-
-	/**
-	 * Called when the TreeViewer needs an up-to-date child count for the given
-	 * element, for example from {@link TreeViewer#refresh()} and
-	 * {@link TreeViewer#setInput(Object)}. If the content provider knows the
-	 * given element, it should respond by calling
-	 * {@link TreeViewer#setChildCount(Object, int)}. If the given current
-	 * child count is already correct, no action has to be taken by this content
-	 * provider.
-	 * 
-	 * @param element
-	 *            The element for which an up-to-date child count is needed, or
-	 *            the viewer's input if the number of root elements is requested 
-	 * @param currentChildCount 
-	 * 			  The current child count for the element that needs updating
-	 */
-	public void updateChildCount(Object element, int currentChildCount);
-	
-    /**
-     * Returns the parent for the given element, or <code>null</code> 
-     * indicating that the parent can't be computed. 
-     * In this case the tree-structured viewer can't expand
-     * a given node correctly if requested.
-     *
-     * @param element the element
-     * @return the parent element, or <code>null</code> if it
-     *   has none or if the parent cannot be computed
-     */
-	public Object getParent(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreePathContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreePathContentProvider.java
deleted file mode 100644
index 32b87e5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILazyTreePathContentProvider.java
+++ /dev/null
@@ -1,94 +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.jface.viewers;
-
-/**
- * The ILazyTreePathContentProvider is a tree path-based content provider for
- * tree viewers created using the SWT.VIRTUAL flag that only wish to return
- * their contents as they are queried.
- * 
- * @since 3.3
- */
-public interface ILazyTreePathContentProvider extends IContentProvider {
-	/**
-	 * Called when a previously-blank item becomes visible in the TreeViewer. If
-	 * the content provider knows the child element for the given parent at this
-	 * index, it should respond by calling
-	 * {@link TreeViewer#replace(Object, int, Object)}. The content provider
-	 * should also update the child count for any replaced element by calling
-	 * {@link TreeViewer#setChildCount(Object, int)}. If the given current child
-	 * count is already correct, setChildCount does not have to be called since
-	 * a call to replace will not change the child count.
-	 * 
-	 * <strong>NOTE</strong> #updateElement(int index) can be used to determine
-	 * selection values. If TableViewer#replace(Object, int) is not called
-	 * before returning from this method, selections may have missing or stale
-	 * elements. In this situation it is suggested that the selection is asked
-	 * for again after replace() has been called.
-	 * 
-	 * @param parentPath
-	 *            The tree path of parent of the element, or if the
-	 *            element to update is a root element, an empty tree path
-	 * @param index
-	 *            The index of the element to update in the tree
-	 */
-	public void updateElement(TreePath parentPath, int index);
-
-	/**
-	 * Called when the TreeViewer needs an up-to-date child count for the given
-	 * tree path, for example from {@link TreeViewer#refresh()} and
-	 * {@link TreeViewer#setInput(Object)}. If the content provider knows the
-	 * element at the given tree path, it should respond by calling
-	 * {@link TreeViewer#setChildCount(Object, int)}. If the given current
-	 * child count is already correct, no action has to be taken by this content
-	 * provider.
-	 * 
-	 * @param treePath
-	 *            The tree path for which an up-to-date child count is needed, or
-	 *            if the number of root elements is requested, the empty tree path 
-	 * @param currentChildCount 
-	 * 			  The current child count for the element that needs updating
-	 */
-	public void updateChildCount(TreePath treePath, int currentChildCount);
-	
-	/**
-	 * Called when the TreeViewer needs up-to-date information whether the node
-	 * at the given tree path can be expanded. If the content provider knows the
-	 * element at the given tree path, it should respond by calling
-	 * {@link TreeViewer#setHasChildren(Object, boolean)}. The content provider
-	 * may also choose to call {@link TreeViewer#setChildCount(Object, int)}
-	 * instead if it knows the number of children.
-	 * 
-	 * <p>
-	 * Intended as an optimization for when the viewer does not need the actual
-	 * children. Clients may be able to implement this more efficiently than
-	 * <code>updateChildCount</code>.
-	 * </p>
-	 * 
-	 * @param path
-	 *            The tree path for which up-to-date information about children
-	 *            is needed
-	 */
-	public void updateHasChildren(TreePath path);
-
-	/**
-	 * Return the possible parent paths for the given element. An empty array
-	 * can be returned if the paths cannot be computed. In this case the
-	 * tree-structured viewer can't expand a given node correctly if requested.
-	 * If the element is a potential child of the input of the viewer, an empty
-	 * tree path should be an entry in the returned array.
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the possible parent paths for the given element
-	 */
-	public TreePath[] getParents(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILightweightLabelDecorator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILightweightLabelDecorator.java
deleted file mode 100644
index 5fdecab..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ILightweightLabelDecorator.java
+++ /dev/null
@@ -1,28 +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.jface.viewers;
-
-/**
- * The <code>ILightweightLabelDecorator</code> is a decorator that decorates
- * using a prefix, suffix and overlay image rather than doing all 
- * of the image and text management itself like an <code>ILabelDecorator</code>.
- */
-public interface ILightweightLabelDecorator extends IBaseLabelProvider {
-
-    /**
-     * Calculates decorations based on element. 
-     * 
-     * @param element the element to decorate
-     * @param decoration the decoration to set
-     */
-    public void decorate(Object element, IDecoration decoration);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IOpenListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IOpenListener.java
deleted file mode 100644
index 34c3b4e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IOpenListener.java
+++ /dev/null
@@ -1,23 +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.jface.viewers;
-
-/**
- * A listener which is notified of open events on viewers.
- */
-public interface IOpenListener {
-    /**
-     * Notifies of an open event.
-     *
-     * @param event event object describing the open event
-     */
-    public void open(OpenEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IPostSelectionProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IPostSelectionProvider.java
deleted file mode 100644
index a62792d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IPostSelectionProvider.java
+++ /dev/null
@@ -1,45 +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.jface.viewers;
-
-/**
- * Selection provider extension interface to allow providers
- * to notify about post selection changed events.
- * A post selection changed event is equivalent to selection changed event
- * if the selection change was triggered by the mouse, but it has a delay 
- * if the selection change is triggered by keyboard navigation.
- *
- * @see ISelectionProvider
- * 
- * @since 3.0
- */
-public interface IPostSelectionProvider extends ISelectionProvider {
-
-    /**
-     * Adds a listener for post selection changes in this selection provider.
-     * Has no effect if an identical listener is already registered.
-     *
-     * @param listener a selection changed listener
-     */
-    public void addPostSelectionChangedListener(
-            ISelectionChangedListener listener);
-
-    /**
-     * Removes the given listener for post selection changes from this selection 
-     * provider.
-     * Has no affect if an identical listener is not registered.
-     *
-     * @param listener a selection changed listener
-     */
-    public void removePostSelectionChangedListener(
-            ISelectionChangedListener listener);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelection.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelection.java
deleted file mode 100644
index 1213320..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelection.java
+++ /dev/null
@@ -1,29 +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.jface.viewers;
-
-/**
- * Interface for a selection.
- *
- * @see ISelectionProvider
- * @see ISelectionChangedListener
- * @see SelectionChangedEvent
- */
-public interface ISelection {
-
-    /**
-     * Returns whether this selection is empty.
-     * 
-     * @return <code>true</code> if this selection is empty,
-     *   and <code>false</code> otherwise
-     */
-    public boolean isEmpty();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionChangedListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionChangedListener.java
deleted file mode 100644
index c5a27e5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionChangedListener.java
+++ /dev/null
@@ -1,27 +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.jface.viewers;
-
-/** 
- * A listener which is notified when a viewer's selection changes.
- *
- * @see ISelection
- * @see ISelectionProvider
- * @see SelectionChangedEvent
- */
-public interface ISelectionChangedListener {
-    /**
-     * Notifies that the selection has changed.
-     *
-     * @param event event object describing the change
-     */
-    public void selectionChanged(SelectionChangedEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionProvider.java
deleted file mode 100644
index 4a4e963..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ISelectionProvider.java
+++ /dev/null
@@ -1,51 +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.jface.viewers;
-
-/**
- * Interface common to all objects that provide a selection.
- *
- * @see ISelection
- * @see ISelectionChangedListener
- * @see SelectionChangedEvent
- */
-public interface ISelectionProvider {
-    /**
-     * Adds a listener for selection changes in this selection provider.
-     * Has no effect if an identical listener is already registered.
-     *
-     * @param listener a selection changed listener
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener);
-
-    /**
-     * Returns the current selection for this provider.
-     * 
-     * @return the current selection
-     */
-    public ISelection getSelection();
-
-    /**
-     * Removes the given selection change listener from this selection provider.
-     * Has no affect if an identical listener is not registered.
-     *
-     * @param listener a selection changed listener
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener);
-
-    /**
-     * Sets the current selection for this selection provider.
-     *
-     * @param selection the new selection
-     */
-    public void setSelection(ISelection selection);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredContentProvider.java
deleted file mode 100644
index c994e9b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredContentProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * An interface to content providers for structured viewers.
- *
- * @see StructuredViewer
- */
-public interface IStructuredContentProvider extends IContentProvider {
-    /**
-     * Returns the elements to display in the viewer 
-     * when its input is set to the given element. 
-     * These elements can be presented as rows in a table, items in a list, etc.
-     * The result is not modified by the viewer.
-     * <p>
-     * <b>NOTE:</b> For instances where the viewer is displaying a tree
-     * containing a single 'root' element it is still necessary that the
-     * 'input' does not return <i>itself</i> from this method. This leads
-     * to recursion issues (see bug 9262).
-     * </p>
-     * @param inputElement the input element
-     * @return the array of elements to display in the viewer
-     */
-    public Object[] getElements(Object inputElement);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredSelection.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredSelection.java
deleted file mode 100644
index b471a04..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IStructuredSelection.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * A selection containing elements.
- */
-public interface IStructuredSelection extends ISelection {
-    /**
-     * Returns the first element in this selection, or <code>null</code>
-     * if the selection is empty.
-     *
-     * @return an element, or <code>null</code> if none
-     */
-    public Object getFirstElement();
-
-    /**
-     * Returns an iterator over the elements of this selection.
-     *
-     * @return an iterator over the selected elements
-     */
-    public Iterator iterator();
-
-    /**
-     * Returns the number of elements selected in this selection.
-     *
-     * @return the number of elements selected
-     */
-    public int size();
-
-    /**
-     * Returns the elements in this selection as an array.
-     *
-     * @return the selected elements as an array
-     */
-    public Object[] toArray();
-
-    /**
-     * Returns the elements in this selection as a <code>List</code>.
-     * <strong>Note</strong> In the default implementation of {@link #toList()} in
-     * {@link StructuredSelection} the returned list is not a copy of the elements of the 
-     * receiver and modifying it will modify the contents of the selection.
-     *
-     * @return the selected elements as a list
-     */
-    public List toList();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableColorProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableColorProvider.java
deleted file mode 100644
index 1b0a6ae..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableColorProvider.java
+++ /dev/null
@@ -1,45 +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:
- *     Initial implementation - Gunnar Ahlberg (IBS AB, www.ibs.net)
- *     IBM Corporation - further revisions
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.graphics.Color;
-
-/**
- * Interface to provide color representation for a given cell within
- * the row for an element in a table.
- * @since 3.1
- */
-public interface ITableColorProvider {
-
-    /**
-     * Provides a foreground color for the given element.
-     * 
-     * @param element the element
-     * @param columnIndex the zero-based index of the column in which
-     * 	the color appears
-     * @return the foreground color for the element, or <code>null</code> to
-     *         use the default foreground color
-     */
-    Color getForeground(Object element, int columnIndex);
-
-    /**
-     * Provides a background color for the given element at the specified index
-     * 
-     * @param element the element
-     * @param columnIndex the zero-based index of the column in which the color appears
-     * @return the background color for the element, or <code>null</code> to
-     *         use the default background color
-     *  
-     */
-    Color getBackground(Object element, int columnIndex);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableFontProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableFontProvider.java
deleted file mode 100644
index 03cd53c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableFontProvider.java
+++ /dev/null
@@ -1,31 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Font;
-
-/**
- * The ITableFontProvider is a font provider that provides fonts to 
- * individual cells within tables.
- * @since 3.1
- */
-public interface ITableFontProvider {
-	
-	/**
-	 * Provides a font for the given element at index
-	 * columnIndex.
-	 * @param element The element being displayed
-	 * @param columnIndex The index of the column being displayed
-	 * @return Font
-	 */
-	public Font getFont(Object element, int columnIndex);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableLabelProvider.java
deleted file mode 100644
index a38d722..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITableLabelProvider.java
+++ /dev/null
@@ -1,47 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Extends <code>IBaseLabelProvider</code> with the methods
- * to provide the text and/or image for each column of a given element.  
- * Used by table viewers.
- *
- * @see TableViewer
- */
-public interface ITableLabelProvider extends IBaseLabelProvider {
-    /**
-     * Returns the label image for the given column of the given element.
-     *
-     * @param element the object representing the entire row, or 
-     *    <code>null</code> indicating that no input object is set
-     *    in the viewer
-     * @param columnIndex the zero-based index of the column in which
-     *   the label appears
-     * @return Image or <code>null</code> if there is no image for the 
-     *  given object at columnIndex
-     */
-    public Image getColumnImage(Object element, int columnIndex);
-
-    /**
-     * Returns the label text for the given column of the given element.
-     *
-     * @param element the object representing the entire row, or
-     *   <code>null</code> indicating that no input object is set
-     *   in the viewer
-     * @param columnIndex the zero-based index of the column in which the label appears
-     * @return String or or <code>null</code> if there is no text for the 
-     *  given object at columnIndex
-     */
-    public String getColumnText(Object element, int columnIndex);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeContentProvider.java
deleted file mode 100644
index 7b1c0fd..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeContentProvider.java
+++ /dev/null
@@ -1,60 +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.jface.viewers;
-
-/**
- * An interface to content providers for tree-structure-oriented
- * viewers.
- *
- * @see AbstractTreeViewer
- */
-public interface ITreeContentProvider extends IStructuredContentProvider {
-    /**
-     * Returns the child elements of the given parent element.
-     * <p>
-     * The difference between this method and <code>IStructuredContentProvider.getElements</code> 
-     * is that <code>getElements</code> is called to obtain the 
-     * tree viewer's root elements, whereas <code>getChildren</code> is used
-     * to obtain the children of a given parent element in the tree (including a root).
-     * </p>
-     * The result is not modified by the viewer.
-     *
-     * @param parentElement the parent element
-     * @return an array of child elements
-     */
-    public Object[] getChildren(Object parentElement);
-
-    /**
-     * Returns the parent for the given element, or <code>null</code> 
-     * indicating that the parent can't be computed. 
-     * In this case the tree-structured viewer can't expand
-     * a given node correctly if requested.
-     *
-     * @param element the element
-     * @return the parent element, or <code>null</code> if it
-     *   has none or if the parent cannot be computed
-     */
-    public Object getParent(Object element);
-
-    /**
-     * Returns whether the given element has children.
-     * <p>
-     * Intended as an optimization for when the viewer does not
-     * need the actual children.  Clients may be able to implement
-     * this more efficiently than <code>getChildren</code>.
-     * </p>
-     *
-     * @param element the element
-     * @return <code>true</code> if the given element has children,
-     *  and <code>false</code> if it has no children
-     */
-    public boolean hasChildren(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathContentProvider.java
deleted file mode 100644
index ce87dab..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathContentProvider.java
+++ /dev/null
@@ -1,66 +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.jface.viewers;
-
-/**
- * An interface to content providers for tree-structure-oriented viewers that
- * provides content based on the path of elements in the tree viewer..
- * 
- * @see AbstractTreeViewer
- * @since 3.2
- */
-public interface ITreePathContentProvider extends IStructuredContentProvider {
-
-	/**
-	 * Returns the child elements of the last element in the given path.
-	 * Implementors may want to use the additional context of the complete path
-	 * of a parent element in order to decide which children to return.
-	 * <p>
-	 * The provided path is relative to the input. The root elements must
-	 * be obtained by calling
-	 * {@link IStructuredContentProvider#getElements(Object)}.
-	 * </p>
-	 * The result is not modified by the viewer.
-	 * 
-	 * @param parentPath
-	 *            the path of the parent element
-	 * @return an array of child elements
-	 */
-	public Object[] getChildren(TreePath parentPath);
-
-	/**
-	 * Returns whether the last element of the given path has children.
-	 * <p>
-	 * Intended as an optimization for when the viewer does not need the actual
-	 * children. Clients may be able to implement this more efficiently than
-	 * <code>getChildren</code>.
-	 * </p>
-	 * 
-	 * @param path
-	 *            the path
-	 * @return <code>true</code> if the lat element of the path has children,
-	 *         and <code>false</code> if it has no children
-	 */
-	public boolean hasChildren(TreePath path);
-
-	/**
-	 * Return the possible parent paths for the given element. An empty array
-	 * can be returned if the paths cannot be computed. If the element is 
-	 * a potential child of the input of the viewer, an empty tree path
-	 * should be an entry in the returned array.
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the possible parent paths for the given element
-	 */
-	public TreePath[] getParents(Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathLabelProvider.java
deleted file mode 100644
index ac2abd1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreePathLabelProvider.java
+++ /dev/null
@@ -1,28 +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.jface.viewers;
-
-/**
- * An extension to {@link ILabelProvider} that is given the 
- * path of the element being decorated, when it is available.
- * @since 3.2
- */
-public interface ITreePathLabelProvider extends IBaseLabelProvider {
-    
-    /**
-     * Updates the label for the given element.
-     * 
-     * @param label the label to update
-     * @param elementPath the path of the element being decorated
-     */
-    public void updateLabel(ViewerLabel label, TreePath elementPath);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeSelection.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeSelection.java
deleted file mode 100644
index 41e7ba5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeSelection.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-/**
- * A selection containing tree paths.
- * <p>
- * It is recommended that clients do not implement this interface but instead
- * use the standard implementation of this interface, {@link TreeSelection}.
- * <code>TreeSelection</code> adds API for getting the {@link IElementComparer}
- * of a selection (if available). This is important for clients who want to
- * create a slightly modified tree selection based on an existing tree selection.
- * The recommended coding pattern in this case is as follows:
- * <pre>
- * ITreeSelection selection = (ITreeSelection)treeViewer.getSelection();
- * TreePath[] paths = selection.getPaths();
- * IElementComparer comparer = null;
- * if (selection instanceof TreeSelection) {
- *   comparer = ((TreeSelection)selection).getElementComparer();
- * }
- * TreePath[] modifiedPaths = ... // modify as required
- * TreeSelection modifiedSelection = new TreeSelection(modifiedPaths, comparer);
- * </pre>
- * See bugs 135818 and 133375 for details.
- * </p>
- * 
- * @since 3.2
- *
- */
-public interface ITreeSelection extends IStructuredSelection {
-
-	/**
-	 * Returns the paths in this selection
-	 * 
-	 * @return the paths in this selection
-	 */
-	public TreePath[] getPaths();
-
-	/**
-	 * Returns the paths in this selection whose last segment is equal
-	 * to the given element
-	 * 
-	 * @param element the element to get the tree paths for
-	 * 
-	 * @return the array of tree paths
-	 */
-	public TreePath[] getPathsFor(Object element);
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeViewerListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeViewerListener.java
deleted file mode 100644
index eadf9cf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ITreeViewerListener.java
+++ /dev/null
@@ -1,31 +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.jface.viewers;
-
-/** 
- * A listener which is notified when a tree viewer expands or collapses
- * a node.
- */
-public interface ITreeViewerListener {
-    /**
-     * Notifies that a node in the tree has been collapsed.
-     *
-     * @param event event object describing details
-     */
-    public void treeCollapsed(TreeExpansionEvent event);
-
-    /**
-     * Notifies that a node in the tree has been expanded.
-     *
-     * @param event event object describing details
-     */
-    public void treeExpanded(TreeExpansionEvent event);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IViewerLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IViewerLabelProvider.java
deleted file mode 100644
index 97f9767..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/IViewerLabelProvider.java
+++ /dev/null
@@ -1,39 +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.jface.viewers;
-
-/**
- * Extends <code>IBaseLabelProvider</code> with the methods
- * to update the label for a given element.  The label is represented by a 
- * <code>ViewerLabel</code>.
- * Unlike <code>ILabelProvider</code>, this allows the text and image to be
- * set in the same request, rather than via separate requests.  
- * <p>
- * It also allows the current values for the text and image to be considered by 
- * the label provider, allowing for potential optimizations.
- * For example, decorating label providers that run in the background can hold off
- * applying an update to a previously populated label until the decoration is ready,
- * thereby reducing flicker.
- * </p>
- * 
- * @see IDelayedLabelDecorator
- * @since 3.0
- */
-public interface IViewerLabelProvider extends IBaseLabelProvider {
-
-    /**
-     * Updates the label for the given element.
-     * 
-     * @param label the label to update
-     * @param element the element
-     */
-    public void updateLabel(ViewerLabel label, Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelDecorator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelDecorator.java
deleted file mode 100644
index 46991ba..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelDecorator.java
+++ /dev/null
@@ -1,74 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The LabelDecorator is an abstract superclass of ILabelDecorators
- * that support IDecorationContext.
- * @see IDecorationContext
- * @since 3.2
- *
- */
-public abstract class LabelDecorator implements ILabelDecorator {
-	
-	 /**
-     * Returns an image that is based on the given image,
-     * but decorated with additional information relating to the state
-     * of the provided element taking into account the provided context.
-     * 
-     * Text and image decoration updates can occur as a result of other updates
-     * within the workbench including deferred decoration by background processes.
-     * Clients should handle labelProviderChangedEvents for the given element to get
-     * the complete decoration.
-     * @see LabelProviderChangedEvent
-     * @see IBaseLabelProvider#addListener
-     *
-     * @param image the input image to decorate, or <code>null</code> if the element has no image
-     * @param element the element whose image is being decorated
-     * @param context additional context information about the element being decorated
-     * @return the decorated image, or <code>null</code> if no decoration is to be applied
-     *
-     * @see org.eclipse.jface.resource.CompositeImageDescriptor
-     */
-    public abstract Image decorateImage(Image image, Object element, IDecorationContext context);
-
-    /**
-     * Returns a text label that is based on the given text label,
-     * but decorated with additional information relating to the state
-     * of the provided element taking into account the provided context.
-     * 
-     * Text and image decoration updates can occur as a result of other updates
-     * within the workbench including deferred decoration by background processes.
-     * Clients should handle labelProviderChangedEvents for the given element to get
-     * the complete decoration.
-     * @see LabelProviderChangedEvent
-     * @see IBaseLabelProvider#addListener
-     *
-     * @param text the input text label to decorate
-     * @param element the element whose image is being decorated
-     * @param context additional context information about the element being decorated
-     * @return the decorated text label, or <code>null</code> if no decoration is to be applied
-     */
-    public abstract String decorateText(String text, Object element, IDecorationContext context);
-    
-    /**
-     * Prepare the element for decoration. If it is already decorated and ready for update
-     * return true. If decoration is pending return false.
-     * @param element The element to be decorated
-     * @param originalText The starting text. 
-     * @param context The decoration context
-     * @return boolean <code>true</code> if the decoration is ready for this element
-     */
-    public abstract boolean prepareDecoration(Object element, String originalText, IDecorationContext context);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProvider.java
deleted file mode 100644
index b7336c8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProvider.java
+++ /dev/null
@@ -1,56 +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.jface.viewers;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A label provider implementation which, by default, uses an element's
- * <code>toString</code> value for its text and <code>null</code> for its
- * image.
- * <p>
- * This class may be used as is, or subclassed to provide richer labels.
- * Subclasses may override any of the following methods:
- * <ul>
- * <li><code>isLabelProperty</code></li>
- * <li><code>getImage</code></li>
- * <li><code>getText</code></li>
- * <li><code>dispose</code></li>
- * </ul>
- * </p>
- */
-public class LabelProvider extends BaseLabelProvider implements ILabelProvider {
-
-	/**
-	 * Creates a new label provider.
-	 */
-	public LabelProvider() {
-	}
-
-
-	/**
-	 * The <code>LabelProvider</code> implementation of this
-	 * <code>ILabelProvider</code> method returns <code>null</code>.
-	 * Subclasses may override.
-	 */
-	public Image getImage(Object element) {
-		return null;
-	}
-
-	/**
-	 * The <code>LabelProvider</code> implementation of this
-	 * <code>ILabelProvider</code> method returns the element's
-	 * <code>toString</code> string. Subclasses may override.
-	 */
-	public String getText(Object element) {
-		return element == null ? "" : element.toString();//$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProviderChangedEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProviderChangedEvent.java
deleted file mode 100644
index a49686b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/LabelProviderChangedEvent.java
+++ /dev/null
@@ -1,96 +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.jface.viewers;
-
-import java.util.EventObject;
-
-/**
- * Event object describing a label provider state change.
- *
- * @see ILabelProviderListener
- */
-public class LabelProviderChangedEvent extends EventObject {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3258410612479309878L;
-    
-    /**
-     * The elements whose labels need to be updated or <code>null</code>.
-     */
-    private Object[] elements;
-
-    /**
-     * Creates a new event for the given source, indicating that all labels
-     * provided by the source are no longer valid and should be updated.
-     *
-     * @param source the label provider
-     */
-    public LabelProviderChangedEvent(IBaseLabelProvider source) {
-        super(source);
-    }
-
-    /**
-     * Creates a new event for the given source, indicating that the label
-     * provided by the source for the given elements is no longer valid and should be updated.
-     *
-     * @param source the label provider
-     * @param elements the element whose labels have changed
-     */
-    public LabelProviderChangedEvent(IBaseLabelProvider source,
-            Object[] elements) {
-        super(source);
-        this.elements = elements;
-    }
-
-    /**
-     * Creates a new event for the given source, indicating that the label
-     * provided by the source for the given element is no longer valid and should be updated.
-     *
-     * @param source the label provider
-     * @param element the element whose label needs to be updated
-     */
-    public LabelProviderChangedEvent(IBaseLabelProvider source, Object element) {
-        super(source);
-        this.elements = new Object[1];
-        this.elements[0] = element;
-    }
-
-    /**
-     * Returns the first element whose label needs to be updated,
-     * or <code>null</code> if all labels need to be updated.
-     *
-     * @return the element whose label needs to be updated or <code>null</code>
-     */
-    public Object getElement() {
-        if (this.elements == null || this.elements.length == 0) {
-			return null;
-		} else {
-			return this.elements[0];
-		}
-    }
-
-    /**
-     * Returns the elements whose labels need to be updated,
-     * or <code>null</code> if all labels need to be updated.
-     *
-     * @return the element whose labels need to be updated or <code>null</code>
-     */
-    public Object[] getElements() {
-        if (this.elements == null) {
-			return null;
-		} else {
-			return this.elements;
-		}
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ListViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ListViewer.java
deleted file mode 100644
index da03289..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ListViewer.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Brad Reynolds - bug 141435
- *     Tom Schindl <tom.schindl@bestsolution.at> - bug 157309, 177619
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A concrete viewer based on an SWT <code>List</code> control.
- * <p>
- * This class is not intended to be subclassed. It is designed to be
- * instantiated with a pre-existing SWT <code>List</code> control and configured
- * with a domain-specific content provider, label provider, element filter (optional),
- * and element sorter (optional).
- * <p>
- * Note that the SWT <code>List</code> control only supports the display of strings, not icons.
- * If you need to show icons for items, use <code>TableViewer</code> instead.
- * </p>
- * 
- * @see TableViewer
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ListViewer extends AbstractListViewer {
-
-    /**
-     * This viewer's list control.
-     */
-    private org.eclipse.swt.widgets.List list;
-
-    /**
-     * Creates a list viewer on a newly-created list control under the given parent.
-     * The list control is created using the SWT style bits <code>MULTI, H_SCROLL, V_SCROLL,</code> and <code>BORDER</code>.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     */
-    public ListViewer(Composite parent) {
-        this(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-    }
-
-    /**
-     * Creates a list viewer on a newly-created list control under the given parent.
-     * The list control is created using the given SWT style bits.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param parent the parent control
-     * @param style the SWT style bits
-     */
-    public ListViewer(Composite parent, int style) {
-        this(new org.eclipse.swt.widgets.List(parent, style));
-    }
-
-    /**
-     * Creates a list viewer on the given list control.
-     * The viewer has no input, no content provider, a default label provider, 
-     * no sorter, and no filters.
-     *
-     * @param list the list control
-     */
-    public ListViewer(org.eclipse.swt.widgets.List list) {
-        this.list = list;
-        hookControl(list);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Viewer.
-     */
-    public Control getControl() {
-        return list;
-    }
-
-    /**
-     * Returns this list viewer's list control.
-     *
-     * @return the list control
-     */
-    public org.eclipse.swt.widgets.List getList() {
-        return list;
-    }
-
-    /*
-     * Non-Javadoc.
-     * Method defined on StructuredViewer.
-     */
-    public void reveal(Object element) {
-        Assert.isNotNull(element);
-        int index = getElementIndex(element);
-        if (index == -1) {
-			return;
-		}
-        // algorithm patterned after List.showSelection()
-        int count = list.getItemCount();
-        if (count == 0) {
-			return;
-		}
-        int height = list.getItemHeight();
-        Rectangle rect = list.getClientArea();
-        int topIndex = list.getTopIndex();
-        int visibleCount = Math.max(rect.height / height, 1);
-        int bottomIndex = Math.min(topIndex + visibleCount, count) - 1;
-        if ((topIndex <= index) && (index <= bottomIndex)) {
-			return;
-		}
-        int newTop = Math.min(Math.max(index - (visibleCount / 2), 0),
-                count - 1);
-        list.setTopIndex(newTop);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listAdd(java.lang.String, int)
-     */
-    protected void listAdd(String string, int index) {
-        list.add(string, index);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listSetItem(int, java.lang.String)
-     */
-    protected void listSetItem(int index, String string) {
-        list.setItem(index, string);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listGetSelectionIndices()
-     */
-    protected int[] listGetSelectionIndices() {
-        return list.getSelectionIndices();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listGetItemCount()
-     */
-    protected int listGetItemCount() {
-        return list.getItemCount();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listSetItems(java.lang.String[])
-     */
-    protected void listSetItems(String[] labels) {
-        list.setItems(labels);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listRemoveAll()
-     */
-    protected void listRemoveAll() {
-        list.removeAll();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listRemove(int)
-     */
-    protected void listRemove(int index) {
-        list.remove(index);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listSelectAndShow(int[])
-     */
-    protected void listSetSelection(int[] ixs) {
-        list.setSelection(ixs);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listDeselectAll()
-     */
-    protected void listDeselectAll() {
-        list.deselectAll();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listShowSelection()
-     */
-    protected void listShowSelection() {
-        list.showSelection();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listGetTopIndex()
-     */
-    protected int listGetTopIndex() {
-    	return list.getTopIndex();
-    }
-    
-    /*
-     * (non-Javadoc)
-     * @see org.eclipse.jface.viewers.AbstractListViewer#listSetTopIndex(int)
-     */
-    protected void listSetTopIndex(int index) {
-    	list.setTopIndex(index);
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.AbstractListViewer#setSelectionToWidget(java.util.List, boolean)
-	 */
-	protected void setSelectionToWidget(List in, boolean reveal) {
-		if( reveal ) {
-			super.setSelectionToWidget(in, reveal);
-		} else {
-			if (in == null || in.size() == 0) { // clear selection
-	            list.deselectAll();
-	        } else {
-	            int n = in.size();
-	            int[] ixs = new int[n];
-	            int count = 0;
-	            for (int i = 0; i < n; ++i) {
-	                Object el = in.get(i);
-	                int ix = getElementIndex(el);
-	                if (ix >= 0) {
-						ixs[count++] = ix;
-					}
-	            }
-	            if (count < n) {
-	                System.arraycopy(ixs, 0, ixs = new int[count], 0, count);
-	            }
-	            list.deselectAll();
-	            list.select(ixs);
-	        }
-		}
-	}
-    
-    
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/NamedHandleObjectLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/NamedHandleObjectLabelProvider.java
deleted file mode 100644
index 256700b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/NamedHandleObjectLabelProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-
-/**
- * A label provider for instances of <code>NamedHandlerObject</code>, which
- * exposes the name as the label.
- * 
- * @since 3.2
- */
-public final class NamedHandleObjectLabelProvider extends LabelProvider {
-	
-	/**
-	 * The text of the element is simply the name of the element if its a
-	 * defined instance of <code>NamedHandleObject</code>. Otherwise, this
-	 * method just returns <code>null</code>.
-	 * 
-	 * @param element
-	 *            The element for which the text should be retrieved; may be
-	 *            <code>null</code>.
-	 * @return the name of the handle object; <code>null</code> if there is no
-	 *         name or if the element is not a named handle object.
-	 */
-	public final String getText(final Object element) {
-		if (element instanceof NamedHandleObject) {
-			try {
-				return ((NamedHandleObject) element).getName();
-			} catch (final NotDefinedException e) {
-				return null;
-			}
-		}
-
-		return null;
-	}
-}
-
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OpenEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OpenEvent.java
deleted file mode 100644
index 96df2e3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OpenEvent.java
+++ /dev/null
@@ -1,66 +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.jface.viewers;
-
-import java.util.EventObject;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Event object describing an open which may be generated from a 
- * selection or default selection event. The source of these
- * events is a viewer.
- *
- * @see IOpenListener
- */
-public class OpenEvent extends EventObject {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3761972652973176117L;
-    
-    /**
-     * The selection.
-     */
-    protected ISelection selection;
-
-    /**
-     * Creates a new event for the given source and selection.
-     *
-     * @param source the viewer
-     * @param selection the selection
-     */
-    public OpenEvent(Viewer source, ISelection selection) {
-        super(source);
-        Assert.isNotNull(selection);
-        this.selection = selection;
-    }
-
-    /**
-     * Returns the selection.
-     *
-     * @return the selection
-     */
-    public ISelection getSelection() {
-        return selection;
-    }
-
-    /**
-     * Returns the viewer that is the source of this event.
-     *
-     * @return the originating viewer
-     */
-    public Viewer getViewer() {
-        return (Viewer) getSource();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OwnerDrawLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OwnerDrawLabelProvider.java
deleted file mode 100644
index 68ec4b4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/OwnerDrawLabelProvider.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * OwnerDrawLabelProvider is an abstract implementation of a label provider that
- * handles custom draw.
- * 
- * <p>
- * <b>This class is intended to be subclassed by implementors.</b>
- * </p>
- * 
- * @since 3.3
- * 
- */
-public abstract class OwnerDrawLabelProvider extends CellLabelProvider {
-
-	static class OwnerDrawListener implements Listener {
-		Set enabledColumns = new HashSet();
-		int enabledGlobally = 0;
-		private ColumnViewer viewer;
-
-		OwnerDrawListener(ColumnViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public void handleEvent(Event event) {
-			CellLabelProvider provider = viewer.getViewerColumn(event.index)
-					.getLabelProvider();
-			ViewerColumn column = viewer.getViewerColumn(event.index);
-			if (enabledGlobally > 0 || enabledColumns.contains(column)) {
-				if (provider instanceof OwnerDrawLabelProvider) {
-					Object element = event.item.getData();
-					OwnerDrawLabelProvider ownerDrawProvider = (OwnerDrawLabelProvider) provider;
-					switch (event.type) {
-					case SWT.MeasureItem:
-						ownerDrawProvider.measure(event, element);
-						break;
-					case SWT.PaintItem:
-						ownerDrawProvider.paint(event, element);
-						break;
-					case SWT.EraseItem:
-						ownerDrawProvider.erase(event, element);
-						break;
-					}
-				}
-			}
-		}
-	}
-
-	private static final String OWNER_DRAW_LABEL_PROVIDER_LISTENER = "owner_draw_label_provider_listener"; //$NON-NLS-1$
-
-	/**
-	 * Set up the owner draw callbacks for the viewer.
-	 * 
-	 * @param viewer
-	 *            the viewer the owner draw is set up
-	 * 
-	 * @deprecated Since 3.4, the default implementation of
-	 *             {@link CellLabelProvider#initialize(ColumnViewer, ViewerColumn)}
-	 *             in this class will set up the necessary owner draw callbacks
-	 *             automatically. Calls to this method can be removed.
-	 */
-	public static void setUpOwnerDraw(final ColumnViewer viewer) {
-		getOrCreateOwnerDrawListener(viewer).enabledGlobally++;
-	}
-
-	/**
-	 * @param viewer
-	 * @param control
-	 * @return
-	 */
-	private static OwnerDrawListener getOrCreateOwnerDrawListener(
-			final ColumnViewer viewer) {
-		Control control = viewer.getControl();
-		OwnerDrawListener listener = (OwnerDrawListener) control
-				.getData(OWNER_DRAW_LABEL_PROVIDER_LISTENER);
-		if (listener == null) {
-			listener = new OwnerDrawListener(viewer);
-			control.setData(OWNER_DRAW_LABEL_PROVIDER_LISTENER, listener);
-			control.addListener(SWT.MeasureItem, listener);
-			control.addListener(SWT.EraseItem, listener);
-			control.addListener(SWT.PaintItem, listener);
-		}
-		return listener;
-	}
-
-	/**
-	 * Create a new instance of the receiver based on a column viewer.
-	 * 
-	 */
-	public OwnerDrawLabelProvider() {
-
-	}
-
-	public void dispose(ColumnViewer viewer, ViewerColumn column) {
-		if (!viewer.getControl().isDisposed()) {
-			setOwnerDrawEnabled(viewer, column, false);
-		}
-		super.dispose(viewer, column);
-	}
-
-	/**
-	 * This implementation of
-	 * {@link CellLabelProvider#initialize(ColumnViewer, ViewerColumn)}
-	 * delegates to {@link #initialize(ColumnViewer, ViewerColumn, boolean)}
-	 * with a value of <code>true</code> for <code>enableOwnerDraw</code>.
-	 * Subclasses may override this method but should either call the super
-	 * implementation or, alternatively,
-	 * {@link #initialize(ColumnViewer, ViewerColumn, boolean)}.
-	 */
-	protected void initialize(ColumnViewer viewer, ViewerColumn column) {
-		this.initialize(viewer, column, true);
-	}
-
-	/**
-	 * May be called from subclasses that override
-	 * {@link #initialize(ColumnViewer, ViewerColumn)} but want to customize
-	 * whether owner draw will be enabled. This method calls
-	 * <code>super.initialize(ColumnViewer, ViewerColumn)</code>, and then
-	 * enables or disables owner draw by calling
-	 * {@link #setOwnerDrawEnabled(ColumnViewer, ViewerColumn, boolean)}.
-	 * 
-	 * @param viewer
-	 *            the viewer
-	 * @param column
-	 *            the column, or <code>null</code> if a column is not
-	 *            available.
-	 * @param enableOwnerDraw
-	 *            <code>true</code> if owner draw should be enabled for the
-	 *            given viewer and column, <code>false</code> otherwise.
-	 * 
-	 * @since 3.4
-	 */
-	final protected void initialize(ColumnViewer viewer, ViewerColumn column,
-			boolean enableOwnerDraw) {
-		super.initialize(viewer, column);
-		setOwnerDrawEnabled(viewer, column, enableOwnerDraw);
-	}
-
-	public void update(ViewerCell cell) {
-		// Force a redraw
-		Rectangle cellBounds = cell.getBounds();
-		cell.getControl().redraw(cellBounds.x, cellBounds.y, cellBounds.width,
-				cellBounds.height, true);
-
-	}
-
-	/**
-	 * Handle the erase event. The default implementation colors the background
-	 * of selected areas with {@link SWT#COLOR_LIST_SELECTION} and foregrounds
-	 * with {@link SWT#COLOR_LIST_SELECTION_TEXT}. Note that this
-	 * implementation causes non-native behavior on some platforms. Subclasses
-	 * should override this method and <b>not</b> call the super
-	 * implementation.
-	 * 
-	 * @param event
-	 *            the erase event
-	 * @param element
-	 *            the model object
-	 * @see SWT#EraseItem
-	 * @see SWT#COLOR_LIST_SELECTION
-	 * @see SWT#COLOR_LIST_SELECTION_TEXT
-	 */
-	protected void erase(Event event, Object element) {
-
-		Rectangle bounds = event.getBounds();
-		if ((event.detail & SWT.SELECTED) != 0) {
-
-			Color oldForeground = event.gc.getForeground();
-			Color oldBackground = event.gc.getBackground();
-
-			event.gc.setBackground(event.item.getDisplay().getSystemColor(
-					SWT.COLOR_LIST_SELECTION));
-			event.gc.setForeground(event.item.getDisplay().getSystemColor(
-					SWT.COLOR_LIST_SELECTION_TEXT));
-			event.gc.fillRectangle(bounds);
-			/* restore the old GC colors */
-			event.gc.setForeground(oldForeground);
-			event.gc.setBackground(oldBackground);
-			/* ensure that default selection is not drawn */
-			event.detail &= ~SWT.SELECTED;
-
-		}
-
-	}
-
-	/**
-	 * Handle the measure event.
-	 * 
-	 * @param event
-	 *            the measure event
-	 * @param element
-	 *            the model element
-	 * @see SWT#MeasureItem
-	 */
-	protected abstract void measure(Event event, Object element);
-
-	/**
-	 * Handle the paint event.
-	 * 
-	 * @param event
-	 *            the paint event
-	 * @param element
-	 *            the model element
-	 * @see SWT#PaintItem
-	 */
-	protected abstract void paint(Event event, Object element);
-
-	/**
-	 * Enables or disables owner draw for the given viewer and column. This
-	 * method will attach or remove a listener to the underlying control as
-	 * necessary. This method is called from
-	 * {@link #initialize(ColumnViewer, ViewerColumn)} and
-	 * {@link #dispose(ColumnViewer, ViewerColumn)} but may be called from
-	 * subclasses to enable or disable owner draw dynamically.
-	 * 
-	 * @param viewer
-	 *            the viewer
-	 * @param column
-	 *            the column, or <code>null</code> if a column is not
-	 *            available
-	 * @param enabled
-	 *            <code>true</code> if owner draw should be enabled,
-	 *            <code>false</code> otherwise
-	 * 
-	 * @since 3.4
-	 */
-	protected void setOwnerDrawEnabled(ColumnViewer viewer,
-			ViewerColumn column, boolean enabled) {
-		if (enabled) {
-			OwnerDrawListener listener = getOrCreateOwnerDrawListener(viewer);
-			if (column == null) {
-				listener.enabledGlobally++;
-			} else {
-				listener.enabledColumns.add(column);
-			}
-		} else {
-			OwnerDrawListener listener = (OwnerDrawListener) viewer
-					.getControl().getData(OWNER_DRAW_LABEL_PROVIDER_LISTENER);
-			if (listener != null) {
-				if (column == null) {
-					listener.enabledGlobally--;
-				} else {
-					listener.enabledColumns.remove(column);
-				}
-				if (listener.enabledColumns.isEmpty()
-						&& listener.enabledGlobally <= 0) {
-					viewer.getControl().removeListener(SWT.MeasureItem,
-							listener);
-					viewer.getControl().removeListener(SWT.EraseItem, listener);
-					viewer.getControl().removeListener(SWT.PaintItem, listener);
-					viewer.getControl().setData(
-							OWNER_DRAW_LABEL_PROVIDER_LISTENER, null);
-				}
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SWTFocusCellManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SWTFocusCellManager.java
deleted file mode 100644
index 0a3c18b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SWTFocusCellManager.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                               - bug fix for bug 187189, 182800, 215069
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * This class is responsible to provide cell management base features for the
- * SWT-Controls {@link org.eclipse.swt.widgets.Table} and
- * {@link org.eclipse.swt.widgets.Tree}.
- *
- * @since 3.3
- *
- */
-abstract class SWTFocusCellManager {
-
-	private CellNavigationStrategy navigationStrategy;
-
-	private ColumnViewer viewer;
-
-	private ViewerCell focusCell;
-
-	private FocusCellHighlighter cellHighlighter;
-
-	private DisposeListener itemDeletionListener = new DisposeListener() {
-
-		public void widgetDisposed(DisposeEvent e) {
-			setFocusCell(null);
-		}
-
-	};
-
-	/**
-	 * @param viewer
-	 * @param focusDrawingDelegate
-	 * @param navigationDelegate
-	 */
-	public SWTFocusCellManager(ColumnViewer viewer,
-			FocusCellHighlighter focusDrawingDelegate,
-			CellNavigationStrategy navigationDelegate) {
-		this.viewer = viewer;
-		this.cellHighlighter = focusDrawingDelegate;
-		if( this.cellHighlighter != null ) {
-			this.cellHighlighter.setMgr(this);
-		}
-		
-		this.navigationStrategy = navigationDelegate;
-		hookListener(viewer);
-	}
-
-	/**
-	 * This method is called by the framework to initialize this cell manager.
-	 */
-	void init() {
-		this.cellHighlighter.init();
-		this.navigationStrategy.init();
-	}
-
-	private void handleMouseDown(Event event) {
-		ViewerCell cell = viewer.getCell(new Point(event.x, event.y));
-		if (cell != null) {
-
-			if (!cell.equals(focusCell)) {
-				setFocusCell(cell);
-			}
-		}
-	}
-
-	private void handleKeyDown(Event event) {
-		ViewerCell tmp = null;
-
-		if (navigationStrategy.isCollapseEvent(viewer, focusCell, event)) {
-			navigationStrategy.collapse(viewer, focusCell, event);
-		} else if (navigationStrategy.isExpandEvent(viewer, focusCell, event)) {
-			navigationStrategy.expand(viewer, focusCell, event);
-		} else if (navigationStrategy.isNavigationEvent(viewer, event)) {
-			tmp = navigationStrategy.findSelectedCell(viewer, focusCell, event);
-
-			if (tmp != null) {
-				if (!tmp.equals(focusCell)) {
-					setFocusCell(tmp);
-				}
-			}
-		}
-
-		if (navigationStrategy.shouldCancelEvent(viewer, event)) {
-			event.doit = false;
-		}
-	}
-
-	private void handleSelection(Event event) {
-		if ((event.detail & SWT.CHECK) == 0 && focusCell != null && focusCell.getItem() != event.item
-				&& event.item != null && ! event.item.isDisposed() ) {
-			ViewerRow row = viewer.getViewerRowFromItem(event.item);
-			Assert
-					.isNotNull(row,
-							"Internal Structure invalid. Row item has no row ViewerRow assigned"); //$NON-NLS-1$
-			ViewerCell tmp = row.getCell(focusCell.getColumnIndex());
-			if (!focusCell.equals(tmp)) {
-				setFocusCell(tmp);
-			}
-		}
-	}
-
-	/**
-	 * Handles the {@link SWT#FocusIn} event.
-	 * 
-	 * @param event the event
-	 */
-	private void handleFocusIn(Event event) {
-		if (focusCell == null) {
-			setFocusCell(getInitialFocusCell());
-		}
-	}
-
-	abstract ViewerCell getInitialFocusCell();
-
-	private void hookListener(final ColumnViewer viewer) {
-		Listener listener = new Listener() {
-
-			public void handleEvent(Event event) {
-				switch (event.type) {
-				case SWT.MouseDown:
-					handleMouseDown(event);
-					break;
-				case SWT.KeyDown:
-					handleKeyDown(event);
-					break;
-				case SWT.Selection:
-					handleSelection(event);
-					break;
-				case SWT.FocusIn:
-					handleFocusIn(event);
-					break;
-				}
-			}
-		};
-
-		viewer.getControl().addListener(SWT.MouseDown, listener);
-		viewer.getControl().addListener(SWT.KeyDown, listener);
-		viewer.getControl().addListener(SWT.Selection, listener);
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-
-			public void selectionChanged(SelectionChangedEvent event) {
-				if( event.selection.isEmpty() ) {
-					setFocusCell(null);
-				}
-			}
-
-		});
-		viewer.getControl().addListener(SWT.FocusIn, listener);
-		viewer.getControl().getAccessible().addAccessibleListener(
-				new AccessibleAdapter() {
-					public void getName(AccessibleEvent event) {
-						ViewerCell cell = getFocusCell();
-						if (cell == null)
-							return;
-						
-						ViewerRow row = cell.getViewerRow();
-						if (row == null)
-							return;
-						
-						Object element = row.getItem().getData();
-						ViewerColumn viewPart = viewer.getViewerColumn(cell
-								.getColumnIndex());
-						
-						if (viewPart == null)
-							return;
-						
-						ColumnLabelProvider labelProvider = (ColumnLabelProvider) viewPart
-								.getLabelProvider();
-						
-						if (labelProvider == null)
-							return;
-						
-						event.result = labelProvider.getText(element);
-					}
-				});
-
-	}
-
-	/**
-	 * @return the cell with the focus
-	 *
-	 */
-	public ViewerCell getFocusCell() {
-		return focusCell;
-	}
-	
-	final ViewerCell _getFocusCell() {
-		return focusCell;
-	}
-
-	void setFocusCell(ViewerCell focusCell) {
-		ViewerCell oldCell = this.focusCell;
-
-		if( this.focusCell != null && ! this.focusCell.getItem().isDisposed() ) {
-			this.focusCell.getItem().removeDisposeListener(itemDeletionListener);
-		}
-
-		this.focusCell = focusCell;
-
-		if( this.focusCell != null && ! this.focusCell.getItem().isDisposed() ) {
-			this.focusCell.getItem().addDisposeListener(itemDeletionListener);
-		}
-
-		if( focusCell != null ) {
-			focusCell.scrollIntoView();	
-		}
-		
-		this.cellHighlighter.focusCellChanged(focusCell,oldCell);
-		
-		getViewer().getControl().getAccessible().setFocus(ACC.CHILDID_SELF);
-	}
-
-	ColumnViewer getViewer() {
-		return viewer;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SelectionChangedEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SelectionChangedEvent.java
deleted file mode 100644
index 1c13c80..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SelectionChangedEvent.java
+++ /dev/null
@@ -1,67 +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.jface.viewers;
-
-import java.util.EventObject;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * Event object describing a selection change. The source of these
- * events is a selection provider.
- *
- * @see ISelection
- * @see ISelectionProvider
- * @see ISelectionChangedListener
- */
-public class SelectionChangedEvent extends EventObject {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3835149545519723574L;
-    
-    /**
-     * The selection.
-     */
-    protected ISelection selection;
-
-    /**
-     * Creates a new event for the given source and selection.
-     *
-     * @param source the selection provider
-     * @param selection the selection
-     */
-    public SelectionChangedEvent(ISelectionProvider source, ISelection selection) {
-        super(source);
-        Assert.isNotNull(selection);
-        this.selection = selection;
-    }
-
-    /**
-     * Returns the selection.
-     *
-     * @return the selection
-     */
-    public ISelection getSelection() {
-        return selection;
-    }
-
-    /**
-     * Returns the selection provider that is the source of this event.
-     *
-     * @return the originating selection provider
-     */
-    public ISelectionProvider getSelectionProvider() {
-        return (ISelectionProvider) getSource();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredSelection.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredSelection.java
deleted file mode 100644
index c97c9c2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredSelection.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A concrete implementation of the <code>IStructuredSelection</code> interface,
- * suitable for instantiating.
- * <p>
- * This class is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class StructuredSelection implements IStructuredSelection {
-
-    /**
-     * The element that make up this structured selection.
-     */
-    private Object[] elements;
-
-    /**
-     * The element comparer, or <code>null</code>
-     */
-	private IElementComparer comparer;
-
-    /**
-     * The canonical empty selection. This selection should be used instead of
-     * <code>null</code>.
-     */
-    public static final StructuredSelection EMPTY = new StructuredSelection();
-
-    /**
-     * Creates a new empty selection.  
-     * See also the static field <code>EMPTY</code> which contains an empty selection singleton.
-     *
-     * @see #EMPTY
-     */
-    public StructuredSelection() {
-    }
-
-    /**
-     * Creates a structured selection from the given elements.
-     * The given element array must not be <code>null</code>.
-     *
-     * @param elements an array of elements
-     */
-    public StructuredSelection(Object[] elements) {
-    	Assert.isNotNull(elements);
-        this.elements = new Object[elements.length];
-        System.arraycopy(elements, 0, this.elements, 0, elements.length);
-    }
-
-    /**
-     * Creates a structured selection containing a single object.
-     * The object must not be <code>null</code>.
-     *
-     * @param element the element
-     */
-    public StructuredSelection(Object element) {
-        Assert.isNotNull(element);
-        elements = new Object[] { element };
-    }
-
-    /**
-     * Creates a structured selection from the given <code>List</code>. 
-     * @param elements list of selected elements
-     */
-    public StructuredSelection(List elements) {
-    	this(elements, null);
-    }
-
-    /**
-	 * Creates a structured selection from the given <code>List</code> and
-	 * element comparer. If an element comparer is provided, it will be used to
-	 * determine equality between structured selection objects provided that
-	 * they both are based on the same (identical) comparer. See bug 
-	 * 
-	 * @param elements
-	 *            list of selected elements
-	 * @param comparer
-	 *            the comparer, or null
-	 * @since 3.4
-	 */
-	public StructuredSelection(List elements, IElementComparer comparer) {
-        Assert.isNotNull(elements);
-        this.elements = elements.toArray();
-        this.comparer = comparer;
-	}
-
-	/**
-     * Returns whether this structured selection is equal to the given object.
-     * Two structured selections are equal if they contain the same elements
-     * in the same order.
-     *
-     * @param o the other object
-     * @return <code>true</code> if they are equal, and <code>false</code> otherwise
-     */
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        //null and other classes
-        if (!(o instanceof StructuredSelection)) {
-            return false;
-        }
-        StructuredSelection s2 = (StructuredSelection) o;
-
-        // either or both empty?
-        if (isEmpty()) {
-            return s2.isEmpty();
-        }
-        if (s2.isEmpty()) {
-            return false;
-        }
-
-        boolean useComparer = comparer != null && comparer == s2.comparer;
-        
-        //size
-        int myLen = elements.length;
-        if (myLen != s2.elements.length) {
-            return false;
-        }
-        //element comparison
-        for (int i = 0; i < myLen; i++) {
-        	if (useComparer) {
-                if (!comparer.equals(elements[i], s2.elements[i])) {
-                    return false;
-                }
-        	} else {
-	            if (!elements[i].equals(s2.elements[i])) {
-	                return false;
-	            }
-        	}
-        }
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared in IStructuredSelection.
-     */
-    public Object getFirstElement() {
-        return isEmpty() ? null : elements[0];
-    }
-
-    /* (non-Javadoc)
-     * Method declared in ISelection.
-     */
-    public boolean isEmpty() {
-        return elements == null || elements.length == 0;
-    }
-
-    /* (non-Javadoc)
-     * Method declared in IStructuredSelection.
-     */
-    public Iterator iterator() {
-        return Arrays.asList(elements == null ? new Object[0] : elements)
-                .iterator();
-    }
-
-    /* (non-Javadoc)
-     * Method declared in IStructuredSelection.
-     */
-    public int size() {
-        return elements == null ? 0 : elements.length;
-    }
-
-    /* (non-Javadoc)
-     * Method declared in IStructuredSelection.
-     */
-    public Object[] toArray() {
-        return elements == null ? new Object[0] : (Object[]) elements.clone();
-    }
-
-    /* (non-Javadoc)
-     * Method declared in IStructuredSelection.
-     */
-    public List toList() {
-        return Arrays.asList(elements == null ? new Object[0] : elements);
-    }
-
-    /**
-     * Internal method which returns a string representation of this
-     * selection suitable for debug purposes only.
-     *
-     * @return debug string
-     */
-    public String toString() {
-        return isEmpty() ? JFaceResources.getString("<empty_selection>") : toList().toString(); //$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java
deleted file mode 100644
index 58a77e5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewer.java
+++ /dev/null
@@ -1,2284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl - bug 151205
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.IOpenEventListener;
-import org.eclipse.jface.util.OpenStrategy;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableTreeItem;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Abstract base implementation for structure-oriented viewers (trees, lists,
- * tables). Supports custom sorting, filtering, and rendering.
- * <p>
- * Any number of viewer filters can be added to this viewer (using
- * <code>addFilter</code>). When the viewer receives an update, it asks each
- * of its filters if it is out of date, and refilters elements as required.
- * </p>
- * 
- * @see ViewerFilter
- * @see ViewerComparator
- */
-public abstract class StructuredViewer extends ContentViewer implements IPostSelectionProvider {
-
-	/**
-	 * A map from the viewer's model elements to SWT widgets. (key type:
-	 * <code>Object</code>, value type: <code>Widget</code>, or <code>Widget[]</code>).
-	 * <code>null</code> means that the element map is disabled.
-	 */
-	private CustomHashtable elementMap;
-
-	/**
-	 * The comparer to use for comparing elements, or <code>null</code> to use
-	 * the default <code>equals</code> and <code>hashCode</code> methods on
-	 * the element itself.
-	 */
-	private IElementComparer comparer;
-
-	/**
-	 * This viewer's comparator used for sorting. <code>null</code> means there is no comparator.
-	 */
-	private ViewerComparator sorter;
-
-	/**
-	 * This viewer's filters (element type: <code>ViewerFilter</code>).
-	 * <code>null</code> means there are no filters.
-	 */
-	private List filters;
-
-	/**
-	 * Indicates whether the viewer should attempt to preserve the selection
-	 * across update operations.
-	 * 
-	 * @see #setSelection(ISelection, boolean)
-	 */
-	private boolean preserveSelection = true;
-
-	/**
-	 * Indicates whether a selection change is in progress on this viewer.
-	 * 
-	 * @see #setSelection(ISelection, boolean)
-	 */
-	private boolean inChange;
-	
-	/**
-	 * Used while a selection change is in progress on this viewer to indicates
-	 * whether the selection should be restored.
-	 * 
-	 * @see #setSelection(ISelection, boolean)
-	 */
-	private boolean restoreSelection;
-
-	/**
-	 * List of double-click state listeners (element type:
-	 * <code>IDoubleClickListener</code>).
-	 * 
-	 * @see #fireDoubleClick
-	 */
-	private ListenerList doubleClickListeners = new ListenerList();
-
-	/**
-	 * List of open listeners (element type:
-	 * <code>ISelectionActivateListener</code>).
-	 * 
-	 * @see #fireOpen
-	 */
-	private ListenerList openListeners = new ListenerList();
-
-	/**
-	 * List of post selection listeners (element type:
-	 * <code>ISelectionActivateListener</code>).
-	 * 
-	 * @see #firePostSelectionChanged
-	 */
-	private ListenerList postSelectionChangedListeners = new ListenerList();
-
-	/**
-	 * The colorAndFontCollector is an object used by viewers that
-	 * support the IColorProvider, the IFontProvider and/or the 
-	 * IViewerLabelProvider for color and font updates.
-	 * Initialize it to have no color or font providing
-	 * initially.
-	 * @since 3.1
-	 */
-	private ColorAndFontCollector colorAndFontCollector = new ColorAndFontCollector();
-	
-	
-	/** 
-	 * Calls when associate() and disassociate() are called
-	 */
-	private StructuredViewerInternals.AssociateListener associateListener;
-	
-	/**
-	 * Empty array of widgets.
-	 */
-	private static Widget[] NO_WIDGETS = new Widget[0];
-
-	/**
-	 * The ColorAndFontCollector is a helper class for viewers
-	 * that have color and font support ad optionally decorators.
-	 * @see IColorDecorator
-	 * @see IFontDecorator
-	 * @see IColorProvider
-	 * @see IFontProvider
-	 * @see IDecoration
-	 */
-	protected class ColorAndFontCollectorWithProviders extends ColorAndFontCollector{
-
-		IColorProvider colorProvider;
-
-		IFontProvider fontProvider;
-		
-		/**
-		 * Create a new instance of the receiver using the supplied
-		 * label provider. If it is an IColorProvider or IFontProvider
-		 * set these values up.
-		 * @param provider IBaseLabelProvider
-		 * @see IColorProvider
-		 * @see IFontProvider
-		 */
-		public ColorAndFontCollectorWithProviders(IBaseLabelProvider provider) {
-			super();
-			if (provider instanceof IColorProvider) {
-				colorProvider = (IColorProvider) provider;
-			}
-			if (provider instanceof IFontProvider) {
-				fontProvider = (IFontProvider) provider;
-			}
-		}
-		
-	
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.StructuredViewer.ColorAndFontManager#setFontsAndColors(java.lang.Object)
-		 */
-		public void setFontsAndColors(Object element){
-			
-			if(fontProvider != null){
-				if(font == null) {
-					font = fontProvider.getFont(element);
-				}	
-			}
-			
-			if(colorProvider == null) {
-				return;
-			}			
-			//Set the colors if they are not set yet
-			if(background == null) {
-				background = colorProvider.getBackground(element);
-			}
-			
-			if(foreground == null) {
-				foreground = colorProvider.getForeground(element);
-			}			
-		}
-		
-		/**
-		 * Apply the fonts and colors to the control if
-		 * required.
-		 * @param control
-		 */
-		public void applyFontsAndColors(TableItem control) {
-			
-			if(colorProvider == null){
-				if(usedDecorators){
-					//If there is no provider only apply set values
-					if(background != null) {
-						control.setBackground(background);
-					}
-				
-					if(foreground != null) {
-						control.setForeground(foreground);
-					}
-				}
-			}
-			else{
-				//Always set the value if there is a provider
-				control.setBackground(background);
-				control.setForeground(foreground);
-			}
-			
-			if(fontProvider == null){
-				if(usedDecorators && font != null) {
-					control.setFont(font);
-				}
-			} else {
-				control.setFont(font);
-			}
-			
-			clear();
-		}
-		
-
-	
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.StructuredViewer.ColorAndFontManager#applyFontsAndColors(org.eclipse.swt.widgets.TreeItem)
-		 */
-		public void applyFontsAndColors(TreeItem control) {
-			
-			if(colorProvider == null){
-				if(usedDecorators){
-					//If there is no provider only apply set values
-					if(background != null) {
-						control.setBackground(background);
-					}
-				
-					if(foreground != null) {
-						control.setForeground(foreground);
-					}
-				}
-			}
-			else{
-				//Always set the value if there is a provider
-				control.setBackground(background);
-				control.setForeground(foreground);
-			}
-			
-			if(fontProvider == null){
-				if(usedDecorators && font != null) {
-					control.setFont(font);
-				}
-			} else {
-				control.setFont(font);
-			}
-			
-			clear();
-		}
-		
-	
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.StructuredViewer.ColorAndFontManager#applyFontsAndColors(org.eclipse.swt.custom.TableTreeItem)
-		 */
-		public void applyFontsAndColors(TableTreeItem control) {
-			
-			if(colorProvider == null){
-				if(usedDecorators){
-					//If there is no provider only apply set values
-					if(background != null) {
-						control.setBackground(background);
-					}
-				
-					if(foreground != null) {
-						control.setForeground(foreground);
-					}
-				}
-			}
-			else{
-				//Always set the value if there is a provider
-				control.setBackground(background);
-				control.setForeground(foreground);
-			}
-			
-			if(fontProvider == null){
-				if(usedDecorators && font != null) {
-					control.setFont(font);
-				}
-			} else {
-				control.setFont(font);
-			}
-			
-			clear();
-		}
-		
-		
-	}
-	
-	/**
-	 * The ColorAndFontCollector collects fonts and colors without a
-	 * a color or font provider.
-	 *
-	 */
-	protected class ColorAndFontCollector {
-
-		Color foreground = null;
-
-		Color background = null;
-
-		Font font = null;
-
-		boolean usedDecorators = false;
-
-		/**
-		 * Create a new instance of the receiver with
-		 * no color and font provider.	
-		 */
-		public ColorAndFontCollector(){
-			super();
-		}
-		
-
-		/**
-		 * Clear all of the results.
-		 */
-		public void clear() {
-			foreground = null;
-			background = null;
-			font = null;
-			usedDecorators = false;
-		}
-
-		
-		/**
-		 * Set the initial fonts and colors for the element from the
-		 * content providers.
-		 * @param element Object
-		 */
-		public void setFontsAndColors(Object element){
-			//Do nothing if there are no providers
-		}
-
-		/**
-		 * Set that decorators were applied.
-		 */
-		public void setUsedDecorators() {
-			this.usedDecorators = true;
-		}
-
-		/**
-		 * Apply the fonts and colors to the control if
-		 * required.
-		 * @param control
-		 */
-		public void applyFontsAndColors(TableItem control) {
-			
-			if(usedDecorators){
-				//If there is no provider only apply set values
-				if(background != null) {
-					control.setBackground(background);
-				}
-			
-				if(foreground != null) {
-					control.setForeground(foreground);
-				}
-		
-				if(font != null) {
-					control.setFont(font);
-				}
-			}
-			clear();
-		}
-		
-		/**
-		 * Apply the fonts and colors to the control if
-		 * required.
-		 * @param control
-		 */
-		public void applyFontsAndColors(TreeItem control) {
-			if(usedDecorators){
-				//If there is no provider only apply set values
-				if(background != null) {
-					control.setBackground(background);
-				}
-			
-				if(foreground != null) {
-					control.setForeground(foreground);
-				}
-		
-				if(font != null) {
-					control.setFont(font);
-				}
-			}
-			clear();
-		}
-		
-		/**
-		 * Apply the fonts and colors to the control if
-		 * required.
-		 * @param control
-		 */
-		public void applyFontsAndColors(TableTreeItem control) {
-			if(usedDecorators){
-				//If there is no provider only apply set values
-				if(background != null) {
-					control.setBackground(background);
-				}
-			
-				if(foreground != null) {
-					control.setForeground(foreground);
-				}
-		
-				if(font != null) {
-					control.setFont(font);
-				}
-			}
-			clear();
-		}
-		
-		/**
-		 * Set the background color.
-		 * @param background 
-		 */
-		public void setBackground(Color background) {
-			this.background = background;
-		}
-		/**
-		 * Set the font.
-		 * @param font 
-		 */
-		public void setFont(Font font) {
-			this.font = font;
-		}
-		/**
-		 * Set the foreground color.
-		 * @param foreground
-		 */
-		public void setForeground(Color foreground) {
-			this.foreground = foreground;
-		}
-	
-		
-	}
-
-	/**
-	 * The safe runnable used to update an item.
-	 */
-	class UpdateItemSafeRunnable extends SafeRunnable {
-		private Widget widget;
-
-		private Object element;
-
-		private boolean fullMap;
-
-		UpdateItemSafeRunnable(Widget widget, Object element, boolean fullMap) {
-			this.widget = widget;
-			this.element = element;
-			this.fullMap = fullMap;
-		}
-
-		public void run() {
-			doUpdateItem(widget, element, fullMap);
-		}
-	}
-	
-	/**
-	 * Creates a structured element viewer. The viewer has no input, no content
-	 * provider, a default label provider, no sorter, and no filters.
-	 */
-	protected StructuredViewer() {
-		// do nothing
-	}
-
-	/**
-	 * Adds a listener for double-clicks in this viewer. Has no effect if an
-	 * identical listener is already registered.
-	 * 
-	 * @param listener
-	 *            a double-click listener
-	 */
-	public void addDoubleClickListener(IDoubleClickListener listener) {
-		doubleClickListeners.add(listener);
-	}
-
-	/**
-	 * Adds a listener for selection-open in this viewer. Has no effect if an
-	 * identical listener is already registered.
-	 * 
-	 * @param listener
-	 *            an open listener
-	 */
-	public void addOpenListener(IOpenListener listener) {
-		openListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPostSelectionProvider.
-	 */
-	public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
-		postSelectionChangedListeners.add(listener);
-	}
-
-	/**
-	 * Adds support for dragging items out of this viewer via a user
-	 * drag-and-drop operation.
-	 * 
-	 * @param operations
-	 *            a bitwise OR of the supported drag and drop operation types (
-	 *            <code>DROP_COPY</code>,<code>DROP_LINK</code>, and
-	 *            <code>DROP_MOVE</code>)
-	 * @param transferTypes
-	 *            the transfer types that are supported by the drag operation
-	 * @param listener
-	 *            the callback that will be invoked to set the drag data and to
-	 *            cleanup after the drag and drop operation finishes
-	 * @see org.eclipse.swt.dnd.DND
-	 */
-	public void addDragSupport(int operations, Transfer[] transferTypes, DragSourceListener listener) {
-
-		Control myControl = getControl();
-		final DragSource dragSource = new DragSource(myControl, operations);
-		dragSource.setTransfer(transferTypes);
-		dragSource.addDragListener(listener);
-	}
-
-	/**
-	 * Adds support for dropping items into this viewer via a user drag-and-drop
-	 * operation.
-	 * 
-	 * @param operations
-	 *            a bitwise OR of the supported drag and drop operation types (
-	 *            <code>DROP_COPY</code>,<code>DROP_LINK</code>, and
-	 *            <code>DROP_MOVE</code>)
-	 * @param transferTypes
-	 *            the transfer types that are supported by the drop operation
-	 * @param listener
-	 *            the callback that will be invoked after the drag and drop
-	 *            operation finishes
-	 * @see org.eclipse.swt.dnd.DND
-	 */
-	public void addDropSupport(int operations, Transfer[] transferTypes,
-			final DropTargetListener listener) {
-		Control control = getControl();
-		DropTarget dropTarget = new DropTarget(control, operations);
-		dropTarget.setTransfer(transferTypes);
-		dropTarget.addDropListener(listener);
-	}
-
-	/**
-	 * Adds the given filter to this viewer, and triggers refiltering and
-	 * resorting of the elements. If you want to add more than one filter
-	 * consider using {@link StructuredViewer#setFilters(ViewerFilter[])}.
-	 * 
-	 * @param filter
-	 *            a viewer filter
-	 * @see StructuredViewer#setFilters(ViewerFilter[])
-	 */
-	public void addFilter(ViewerFilter filter) {
-		if (filters == null) {
-			filters = new ArrayList();
-		}
-		filters.add(filter);
-		refresh();
-	}
-
-	/**
-	 * Asserts that the given array of elements is itself non- <code>null</code>
-	 * and contains no <code>null</code> elements.
-	 * 
-	 * @param elements
-	 *            the array to check
-	 */
-	protected void assertElementsNotNull(Object[] elements) {
-		Assert.isNotNull(elements);
-		for (int i = 0, n = elements.length; i < n; ++i) {
-			Assert.isNotNull(elements[i]);
-		}
-	}
-
-	/**
-	 * Associates the given element with the given widget. Sets the given item's
-	 * data to be the element, and maps the element to the item in the element
-	 * map (if enabled).
-	 * 
-	 * @param element
-	 *            the element
-	 * @param item
-	 *            the widget
-	 */
-	protected void associate(Object element, Item item) {
-		Object data = item.getData();
-		if (data != element) {
-			if (data != null) {
-				disassociate(item);
-			}
-			item.setData(element);
-			mapElement(element, item);
-			if (associateListener != null)
-				associateListener.associate(element, item);
-		} else {
-			// Always map the element, even if data == element,
-			// since unmapAllElements() can leave the map inconsistent
-			// See bug 2741 for details.
-			mapElement(element, item);
-		}
-	}
-
-	
-	/**
-	 * Disassociates the given SWT item from its corresponding element. Sets the
-	 * item's data to <code>null</code> and removes the element from the
-	 * element map (if enabled).
-	 * 
-	 * @param item
-	 *            the widget
-	 */
-	protected void disassociate(Item item) {
-		if (associateListener != null)
-			associateListener.disassociate(item);
-		Object element = item.getData();
-		Assert.isNotNull(element);
-		//Clear the map before we clear the data
-		unmapElement(element, item);
-		item.setData(null);
-	}
-
-	/**
-	 * Returns the widget in this viewer's control which represents the given
-	 * element if it is the viewer's input.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param element
-	 * @return the corresponding widget, or <code>null</code> if none
-	 */
-	protected abstract Widget doFindInputItem(Object element);
-
-	/**
-	 * Returns the widget in this viewer's control which represent the given
-	 * element. This method searches all the children of the input element.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param element
-	 * @return the corresponding widget, or <code>null</code> if none
-	 */
-	protected abstract Widget doFindItem(Object element);
-
-	/**
-	 * Copies the attributes of the given element into the given SWT item. The
-	 * element map is updated according to the value of <code>fullMap</code>.
-	 * If <code>fullMap</code> is <code>true</code> then the current mapping
-	 * from element to widgets is removed and the new mapping is added. If
-	 * full map is <code>false</code> then only the new map gets installed.
-	 * Installing only the new map is necessary in cases where only the order of
-	 * elements changes but not the set of elements.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param item
-	 * @param element element
-	 * @param fullMap
-	 *            <code>true</code> if mappings are added and removed, and
-	 *            <code>false</code> if only the new map gets installed
-	 */
-	protected abstract void doUpdateItem(Widget item, Object element, boolean fullMap);
-
-	/**
-	 * Compares two elements for equality. Uses the element comparer if one has
-	 * been set, otherwise uses the default <code>equals</code> method on the
-	 * elements themselves.
-	 * 
-	 * @param elementA
-	 *            the first element
-	 * @param elementB
-	 *            the second element
-	 * @return whether elementA is equal to elementB
-	 */
-	protected boolean equals(Object elementA, Object elementB) {
-		if (comparer == null) {
-			return elementA == null ? elementB == null : elementA.equals(elementB);
-		} else {
-			return elementA == null ? elementB == null : comparer.equals(elementA, elementB);
-		}
-	}
-
-	/**
-	 * Returns the result of running the given elements through the filters.
-	 * 
-	 * @param elements
-	 *            the elements to filter
-	 * @return only the elements which all filters accept
-	 */
-	protected Object[] filter(Object[] elements) {
-		if (filters != null) {
-			ArrayList filtered = new ArrayList(elements.length);
-			Object root = getRoot();
-			for (int i = 0; i < elements.length; i++) {
-				boolean add = true;
-				for (int j = 0; j < filters.size(); j++) {
-					add = ((ViewerFilter) filters.get(j)).select(this, root, elements[i]);
-					if (!add) {
-						break;
-					}
-				}
-				if (add) {
-					filtered.add(elements[i]);
-				}
-			}
-			return filtered.toArray();
-		}
-		return elements;
-	}
-
-	/**
-	 * Finds the widget which represents the given element.
-	 * <p>
-	 * The default implementation of this method tries first to find the widget
-	 * for the given element assuming that it is the viewer's input; this is
-	 * done by calling <code>doFindInputItem</code>. If it is not found
-	 * there, it is looked up in the internal element map provided that this
-	 * feature has been enabled. If the element map is disabled, the widget is
-	 * found via <code>doFindInputItem</code>.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the corresponding widget, or <code>null</code> if none
-	 */
-	protected final Widget findItem(Object element) {
-		Widget[] result = findItems(element);
-		return result.length == 0 ? null : result[0];
-	}
-
-	/**
-	 * Finds the widgets which represent the given element. The returned array
-	 * must not be changed by clients; it might change upon calling other
-	 * methods on this viewer.
-	 * <p>
-	 * This method was introduced to support multiple equal elements in a viewer
-	 * (@see {@link AbstractTreeViewer}). Multiple equal elements are only
-	 * supported if the element map is enabled by calling
-	 * {@link #setUseHashlookup(boolean)} and passing <code>true</code>.
-	 * </p>
-	 * <p>
-	 * The default implementation of this method tries first to find the widget
-	 * for the given element assuming that it is the viewer's input; this is
-	 * done by calling <code>doFindInputItem</code>. If it is not found
-	 * there, the widgets are looked up in the internal element map provided
-	 * that this feature has been enabled. If the element map is disabled, the
-	 * widget is found via <code>doFindInputItem</code>.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the corresponding widgets
-	 * 
-	 * @since 3.2
-	 */
-	protected final Widget[] findItems(Object element) {
-		Widget result = doFindInputItem(element);
-		if (result != null) {
-			return new Widget[] { result };
-		}
-		// if we have an element map use it, otherwise search for the item.
-		if (usingElementMap()) {
-			Object widgetOrWidgets = elementMap.get(element);
-			if (widgetOrWidgets==null) {
-				return NO_WIDGETS;
-			} else if (widgetOrWidgets instanceof Widget) {
-				return new Widget[] {(Widget) widgetOrWidgets};
-			} else {
-				return (Widget[])widgetOrWidgets;
-			}
-		}
-		result = doFindItem(element);
-		return result == null ? NO_WIDGETS : new Widget[] { result };
-	}
-
-	/**
-	 * Notifies any double-click listeners that a double-click has been
-	 * received. Only listeners registered at the time this method is called are
-	 * notified.
-	 * 
-	 * @param event
-	 *            a double-click event
-	 * 
-	 * @see IDoubleClickListener#doubleClick
-	 */
-	protected void fireDoubleClick(final DoubleClickEvent event) {
-		Object[] listeners = doubleClickListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final IDoubleClickListener l = (IDoubleClickListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.doubleClick(event);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Notifies any open event listeners that a open event has been received.
-	 * Only listeners registered at the time this method is called are notified.
-	 * 
-	 * @param event
-	 *            a double-click event
-	 * 
-	 * @see IOpenListener#open(OpenEvent)
-	 */
-	protected void fireOpen(final OpenEvent event) {
-		Object[] listeners = openListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final IOpenListener l = (IOpenListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.open(event);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Notifies any post selection listeners that a post selection event has
-	 * been received. Only listeners registered at the time this method is
-	 * called are notified.
-	 * 
-	 * @param event
-	 *            a selection changed event
-	 * 
-	 * @see #addPostSelectionChangedListener(ISelectionChangedListener)
-	 */
-	protected void firePostSelectionChanged(final SelectionChangedEvent event) {
-		Object[] listeners = postSelectionChangedListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.selectionChanged(event);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Returns the comparer to use for comparing elements, or
-	 * <code>null</code> if none has been set.  If specified,
-	 * the viewer uses this to compare and hash elements rather
-	 * than the elements' own equals and hashCode methods.
-	 *           
-	 * @return the comparer to use for comparing elements or
-	 *            <code>null</code>
-	 */
-	public IElementComparer getComparer() {
-		return comparer;
-	}
-
-	/**
-	 * Returns the filtered array of children of the given element. The
-	 * resulting array must not be modified, as it may come directly from the
-	 * model's internal state.
-	 * 
-	 * @param parent
-	 *            the parent element
-	 * @return a filtered array of child elements
-	 */
-	protected Object[] getFilteredChildren(Object parent) {
-		Object[] result = getRawChildren(parent);
-		if (filters != null) {
-			for (Iterator iter = filters.iterator(); iter.hasNext();) {
-				ViewerFilter f = (ViewerFilter) iter.next();
-				result = f.filter(this, parent, result);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns this viewer's filters.
-	 * 
-	 * @return an array of viewer filters
-	 * @see StructuredViewer#setFilters(ViewerFilter[])
-	 */
-	public ViewerFilter[] getFilters() {
-		if (filters == null) {
-			return new ViewerFilter[0];
-		}
-		ViewerFilter[] result = new ViewerFilter[filters.size()];
-		filters.toArray(result);
-		return result;
-	}
-
-	/**
-	 * Returns the item at the given display-relative coordinates, or
-	 * <code>null</code> if there is no item at that location or 
-	 * the underlying SWT-Control is not made up of {@link Item} 
-	 * (e.g {@link ListViewer}) 
-	 * <p>
-	 * The default implementation of this method returns <code>null</code>.
-	 * </p>
-	 * 
-	 * @param x
-	 *            horizontal coordinate
-	 * @param y
-	 *            vertical coordinate
-	 * @return the item, or <code>null</code> if there is no item at the given
-	 *         coordinates
-	 * @deprecated This method is deprecated in 3.3 in favor of {@link ColumnViewer#getItemAt(org.eclipse.swt.graphics.Point)}. 
-	 * Viewers who are not subclasses of {@link ColumnViewer} should consider using a
-	 * widget relative implementation like {@link ColumnViewer#getItemAt(org.eclipse.swt.graphics.Point)}.
-	 *  
-	 */
-	protected Item getItem(int x, int y) {
-		return null;
-	}
-	
-	/**
-	 * Returns the children of the given parent without sorting and filtering
-	 * them. The resulting array must not be modified, as it may come directly
-	 * from the model's internal state.
-	 * <p>
-	 * Returns an empty array if the given parent is <code>null</code>.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the parent element
-	 * @return the child elements
-	 */
-	protected Object[] getRawChildren(Object parent) {
-		Object[] result = null;
-		if (parent != null) {
-			IStructuredContentProvider cp = (IStructuredContentProvider) getContentProvider();
-			if (cp != null) {
-				result = cp.getElements(parent);
-				assertElementsNotNull(result);
-			}
-		}
-		return (result != null) ? result : new Object[0];
-	}
-
-	/**
-	 * Returns the root element.
-	 * <p>
-	 * The default implementation of this framework method forwards to
-	 * <code>getInput</code>. Override if the root element is different from
-	 * the viewer's input element.
-	 * </p>
-	 * 
-	 * @return the root element, or <code>null</code> if none
-	 */
-	protected Object getRoot() {
-		return getInput();
-	}
-
-	/**
-	 * The <code>StructuredViewer</code> implementation of this method returns
-	 * the result as an <code>IStructuredSelection</code>.
-	 * <p>
-	 * Subclasses do not typically override this method, but implement
-	 * <code>getSelectionFromWidget(List)</code> instead.
-	 * <p>
-	 * @return ISelection
-	 */
-	public ISelection getSelection() {
-		Control control = getControl();
-		if (control == null || control.isDisposed()) {
-			return StructuredSelection.EMPTY;
-		}
-		List list = getSelectionFromWidget();
-		return new StructuredSelection(list, comparer);
-	}
-
-	/**
-	 * Retrieves the selection, as a <code>List</code>, from the underlying
-	 * widget.
-	 * 
-	 * @return the list of selected elements
-	 */
-	protected abstract List getSelectionFromWidget();
-
-	/**
-	 * Returns the sorted and filtered set of children of the given element. The
-	 * resulting array must not be modified, as it may come directly from the
-	 * model's internal state.
-	 * 
-	 * @param parent
-	 *            the parent element
-	 * @return a sorted and filtered array of child elements
-	 */
-	protected Object[] getSortedChildren(Object parent) {
-		Object[] result = getFilteredChildren(parent);
-		if (sorter != null) {
-			// be sure we're not modifying the original array from the model
-			result = (Object[]) result.clone();
-			sorter.sort(this, result);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns this viewer's sorter, or <code>null</code> if it does not have
-	 * one.  If this viewer has a comparator that was set via 
-	 * <code>setComparator(ViewerComparator)</code> then this method will return 
-	 * <code>null</code> if the comparator is not an instance of ViewerSorter.
-     * <p>
-     * It is recommended to use <code>getComparator()</code> instead.
-     * </p>
-	 * 
-	 * @return a viewer sorter, or <code>null</code> if none or if the comparator is 
-	 * 				not an instance of ViewerSorter
-	 */
-	public ViewerSorter getSorter() {
-		if (sorter instanceof ViewerSorter)
-			return (ViewerSorter)sorter;
-		return null;
-	}
-
-	/**
-	 * Return this viewer's comparator used to sort elements.
-	 * This method should be used instead of <code>getSorter()</code>.
-	 * 
-	 * @return a viewer comparator, or <code>null</code> if none
-     *
-	 * @since 3.2
-	 */
-	public ViewerComparator getComparator(){
-		return sorter;
-	}
-	
-	/**
-	 * Handles a double-click select event from the widget.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param event
-	 *            the SWT selection event
-	 */
-	protected void handleDoubleSelect(SelectionEvent event) {
-		// This method is reimplemented in AbstractTreeViewer to fix bug 108102.
-		
-		// handle case where an earlier selection listener disposed the control.
-		Control control = getControl();
-		if (control != null && !control.isDisposed()) {
-			// If the double-clicked element can be obtained from the event, use it
-			// otherwise get it from the control.  Some controls like List do
-			// not have the notion of item.
-			// For details, see bug 90161 [Navigator] DefaultSelecting folders shouldn't always expand first one
-			ISelection selection;
-			if (event.item != null && event.item.getData() != null) {
-				selection = new StructuredSelection(event.item.getData());
-			}
-			else {
-				selection = getSelection();
-				updateSelection(selection);
-			}
-			fireDoubleClick(new DoubleClickEvent(this, selection));
-		}
-	}
-
-	/**
-	 * Handles an open event from the OpenStrategy.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param event
-	 *            the SWT selection event
-	 */
-	protected void handleOpen(SelectionEvent event) {
-		Control control = getControl();
-		if (control != null && !control.isDisposed()) {
-			ISelection selection = getSelection();
-			fireOpen(new OpenEvent(this, selection));
-		}
-	}
-
-	/**
-	 * Handles an invalid selection.
-	 * <p>
-	 * This framework method is called if a model change picked up by a viewer
-	 * results in an invalid selection. For instance if an element contained in
-	 * the selection has been removed from the viewer, the viewer is free to
-	 * either remove the element from the selection or to pick another element
-	 * as its new selection. The default implementation of this method calls
-	 * <code>updateSelection</code>. Subclasses may override it to implement
-	 * a different strategy for picking a new selection when the old selection
-	 * becomes invalid.
-	 * </p>
-	 * 
-	 * @param invalidSelection
-	 *            the selection before the viewer was updated
-	 * @param newSelection
-	 *            the selection after the update, or <code>null</code> if none
-	 */
-	protected void handleInvalidSelection(ISelection invalidSelection, ISelection newSelection) {
-		updateSelection(newSelection);
-		SelectionChangedEvent event = new SelectionChangedEvent(this, newSelection);
-		firePostSelectionChanged(event);
-	}
-
-	/**
-	 * The <code>StructuredViewer</code> implementation of this
-	 * <code>ContentViewer</code> method calls <code>update</code> if the
-	 * event specifies that the label of a given element has changed, otherwise
-	 * it calls super. Subclasses may reimplement or extend.
-	 * </p>
-	 * @param event the event that generated this update
-	 */
-	protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
-		Object[] elements = event.getElements();
-		if (elements != null) {
-			update(elements, null);
-		} else {
-			super.handleLabelProviderChanged(event);
-		}
-	}
-
-	/**
-	 * Handles a select event from the widget.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param event
-	 *            the SWT selection event
-	 */
-	protected void handleSelect(SelectionEvent event) {
-		// handle case where an earlier selection listener disposed the control.
-		Control control = getControl();
-		if (control != null && !control.isDisposed()) {
-			updateSelection(getSelection());
-		}
-	}
-
-	/**
-	 * Handles a post select event from the widget.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param e the SWT selection event
-	 */
-	protected void handlePostSelect(SelectionEvent e) {
-		SelectionChangedEvent event = new SelectionChangedEvent(this, getSelection());
-		firePostSelectionChanged(event);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Viewer.
-	 */
-	protected void hookControl(Control control) {
-		super.hookControl(control);
-		OpenStrategy handler = new OpenStrategy(control);
-		handler.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				// On Windows, selection events may happen during a refresh.
-				// Ignore these events if we are currently in preservingSelection().
-				// See bug 184441.
-				if (!inChange) {
-					handleSelect(e);
-				}
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				handleDoubleSelect(e);
-			}
-		});
-		handler.addPostSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handlePostSelect(e);
-			}
-		});
-		handler.addOpenListener(new IOpenEventListener() {
-			public void handleOpen(SelectionEvent e) {
-				StructuredViewer.this.handleOpen(e);
-			}
-		});
-	}
-
-	/**
-	 * Returns whether this viewer has any filters.
-	 * @return boolean
-	 */
-	protected boolean hasFilters() {
-		return filters != null && filters.size() > 0;
-	}
-
-	/**
-	 * Refreshes this viewer starting at the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 */
-	protected abstract void internalRefresh(Object element);
-
-	/**
-	 * Refreshes this viewer starting at the given element. Labels are updated
-	 * as described in <code>refresh(boolean updateLabels)</code>.
-	 * <p>
-	 * The default implementation simply calls
-	 * <code>internalRefresh(element)</code>, ignoring
-	 * <code>updateLabels</code>.
-	 * <p>
-	 * If this method is overridden to do the actual refresh, then
-	 * <code>internalRefresh(Object element)</code> should simply call
-	 * <code>internalRefresh(element, true)</code>.
-	 * 
-	 * @param element
-	 *            the element
-	 * @param updateLabels
-	 *            <code>true</code> to update labels for existing elements,
-	 *            <code>false</code> to only update labels as needed, assuming
-	 *            that labels for existing elements are unchanged.
-	 * 
-	 * @since 2.0
-	 */
-	protected void internalRefresh(Object element, boolean updateLabels) {
-		internalRefresh(element);
-	}
-
-	/**
-	 * Adds the element item pair to the element map.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @param item
-	 *            the corresponding widget
-	 */
-	protected void mapElement(Object element, Widget item) {
-		if (elementMap != null) {
-			Object widgetOrWidgets = elementMap.get(element);
-			if (widgetOrWidgets == null) {
-				elementMap.put(element, item);
-			} else if (widgetOrWidgets instanceof Widget) {
-				if (widgetOrWidgets != item) {
-					elementMap.put(element, new Widget[] {
-							(Widget) widgetOrWidgets, item });
-				}
-			} else {
-				Widget[] widgets = (Widget[]) widgetOrWidgets;
-				int indexOfItem = Arrays.asList(widgets).indexOf(item);
-				if (indexOfItem == -1) {
-					int length = widgets.length;
-					System.arraycopy(widgets, 0,
-							widgets = new Widget[length + 1], 0, length);
-					widgets[length] = item;
-					elementMap.put(element, widgets);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Determines whether a change to the given property of the given element
-	 * would require refiltering and/or resorting.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @param property
-	 *            the property
-	 * @return <code>true</code> if refiltering is required, and
-	 *         <code>false</code> otherwise
-	 */
-	protected boolean needsRefilter(Object element, String property) {
-		if (sorter != null && sorter.isSorterProperty(element, property)) {
-			return true;
-		}
-
-		if (filters != null) {
-			for (int i = 0, n = filters.size(); i < n; ++i) {
-				ViewerFilter filter = (ViewerFilter) filters.get(i);
-				if (filter.isFilterProperty(element, property)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Returns a new hashtable using the given capacity and this viewer's element comparer.
-	 * 
-	 * @param capacity the initial capacity of the hashtable
-	 * @return a new hashtable
-	 * 
-	 * @since 3.0
-	 */
-	CustomHashtable newHashtable(int capacity) {
-		return new CustomHashtable(capacity, getComparer());
-	}
-
-	/**
-	 * Attempts to preserves the current selection across a run of the given
-	 * code. This method should not preserve the selection if
-	 * {link #getPreserveSelection()} returns false.
-	 * <p>
-	 * The default implementation of this method:
-	 * <ul>
-	 * <li>discovers the old selection (via <code>getSelection</code>)</li>
-	 * <li>runs the given runnable</li>
-	 * <li>attempts to restore the old selection (using
-	 * <code>setSelectionToWidget</code></li>
-	 * <li>rediscovers the resulting selection (via <code>getSelection</code>)</li>
-	 * <li>calls <code>handleInvalidSelection</code> if the resulting selection
-	 * is different from the old selection</li>
-	 * </ul>
-	 * </p>
-	 * 
-	 * @param updateCode
-	 *            the code to run
-	 * 
-	 * see #getPreserveSelection()
-	 */
-	protected void preservingSelection(Runnable updateCode) {
-		preservingSelection(updateCode, false);
-	}
-
-	/**
-	 * Attempts to preserves the current selection across a run of the given
-	 * code, with a best effort to avoid scrolling if <code>reveal</code> is
-	 * false, or to reveal the selection if <code>reveal</code> is true.
-	 * <p>
-	 * The default implementation of this method:
-	 * <ul>
-	 * <li>discovers the old selection (via <code>getSelection</code>)</li>
-	 * <li>runs the given runnable</li>
-	 * <li>attempts to restore the old selection (using
-	 * <code>setSelectionToWidget</code></li>
-	 * <li>rediscovers the resulting selection (via <code>getSelection</code>)</li>
-	 * <li>calls <code>handleInvalidSelection</code> if the selection did not
-	 * take</li>
-	 * </ul>
-	 * </p>
-	 * 
-	 * @param updateCode
-	 *            the code to run
-	 * @param reveal
-	 *            <code>true</code> if the selection should be made visible,
-	 *            <code>false</code> if scrolling should be avoided
-	 * @since 3.3
-	 */
-	void preservingSelection(Runnable updateCode, boolean reveal) {
-		if (!preserveSelection) {
-			return;
-		}
-		
-		ISelection oldSelection = null;
-		try {
-			// preserve selection
-			oldSelection = getSelection();
-			inChange = restoreSelection = true;
-
-			// perform the update
-			updateCode.run();
-
-		} finally {
-			inChange = false;
-
-			// restore selection
-			if (restoreSelection) {
-				setSelectionToWidget(oldSelection, reveal);
-			}
-
-			// send out notification if old and new differ
-			ISelection newSelection = getSelection();
-			if (!newSelection.equals(oldSelection)) {
-				handleInvalidSelection(oldSelection, newSelection);
-			}
-		}
-	}
-	
-	/*
-	 * Non-Javadoc. Method declared on Viewer.
-	 */
-	public void refresh() {
-		refresh(getRoot());
-	}
-
-	/**
-	 * Refreshes this viewer with information freshly obtained from this
-	 * viewer's model. If <code>updateLabels</code> is <code>true</code>
-	 * then labels for otherwise unaffected elements are updated as well.
-	 * Otherwise, it assumes labels for existing elements are unchanged, and
-	 * labels are only obtained as needed (for example, for new elements).
-	 * <p>
-	 * Calling <code>refresh(true)</code> has the same effect as
-	 * <code>refresh()</code>.
-	 * <p>
-	 * Note that the implementation may still obtain labels for existing
-	 * elements even if <code>updateLabels</code> is false. The intent is
-	 * simply to allow optimization where possible.
-	 * 
-	 * @param updateLabels
-	 *            <code>true</code> to update labels for existing elements,
-	 *            <code>false</code> to only update labels as needed, assuming
-	 *            that labels for existing elements are unchanged.
-	 * 
-	 * @since 2.0
-	 */
-	public void refresh(boolean updateLabels) {
-		refresh(getRoot(), updateLabels);
-	}
-
-	/**
-	 * Refreshes this viewer starting with the given element.
-	 * <p>
-	 * Unlike the <code>update</code> methods, this handles structural changes
-	 * to the given element (e.g. addition or removal of children). If only the
-	 * given element needs updating, it is more efficient to use the
-	 * <code>update</code> methods.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 */
-	public void refresh(final Object element) {
-		preservingSelection(new Runnable() {
-			public void run() {
-				internalRefresh(element);
-			}
-		});
-	}
-
-	/**
-	 * Refreshes this viewer starting with the given element. Labels are updated
-	 * as described in <code>refresh(boolean updateLabels)</code>.
-	 * <p>
-	 * Unlike the <code>update</code> methods, this handles structural changes
-	 * to the given element (e.g. addition or removal of children). If only the
-	 * given element needs updating, it is more efficient to use the
-	 * <code>update</code> methods.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @param updateLabels
-	 *            <code>true</code> to update labels for existing elements,
-	 *            <code>false</code> to only update labels as needed, assuming
-	 *            that labels for existing elements are unchanged.
-	 * 
-	 * @since 2.0
-	 */
-	public void refresh(final Object element, final boolean updateLabels) {
-		preservingSelection(new Runnable() {
-			public void run() {
-				internalRefresh(element, updateLabels);
-			}
-		});
-	}
-
-	/**
-	 * 
-	 * Refreshes the given item with the given element. Calls
-	 * <code>doUpdateItem(..., false)</code>.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * @param widget
-     *            the widget
-	 * @param element
-     *            the element
-	 */
-	protected final void refreshItem(Widget widget, Object element) {
-		SafeRunnable.run(new UpdateItemSafeRunnable(widget, element, true));
-	}
-
-	/**
-	 * Removes the given open listener from this viewer. Has no affect if an
-	 * identical listener is not registered.
-	 * 
-	 * @param listener
-	 *            an open listener
-	 */
-	public void removeOpenListener(IOpenListener listener) {
-		openListeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPostSelectionProvider.
-	 */
-	public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
-		postSelectionChangedListeners.remove(listener);
-	}
-
-	/**
-	 * Removes the given double-click listener from this viewer. Has no affect
-	 * if an identical listener is not registered.
-	 * 
-	 * @param listener
-	 *            a double-click listener
-	 */
-	public void removeDoubleClickListener(IDoubleClickListener listener) {
-		doubleClickListeners.remove(listener);
-	}
-
-	/**
-	 * Removes the given filter from this viewer, and triggers refiltering and
-	 * resorting of the elements if required. Has no effect if the identical
-	 * filter is not registered. If you want to remove more than one filter
-	 * consider using {@link StructuredViewer#setFilters(ViewerFilter[])}.
-	 * 
-	 * @param filter
-	 *            a viewer filter
-	 * @see StructuredViewer#setFilters(ViewerFilter[])
-	 */
-	public void removeFilter(ViewerFilter filter) {
-		Assert.isNotNull(filter);
-		if (filters != null) {
-			// Note: can't use List.remove(Object). Use identity comparison
-			// instead.
-			for (Iterator i = filters.iterator(); i.hasNext();) {
-				Object o = i.next();
-				if (o == filter) {
-					i.remove();
-					refresh();
-					if (filters.size() == 0) {
-						filters = null;
-					}
-					return;
-				}
-			}
-		}
-	}
-
-	void setAssociateListener(StructuredViewerInternals.AssociateListener l) {
-		associateListener = l;
-	}
-	
-	/**
-	 * Sets the filters, replacing any previous filters, and triggers
-	 * refiltering and resorting of the elements.
-	 * 
-	 * @param filters
-	 *            an array of viewer filters
-	 * @since 3.3
-	 */
-	public void setFilters(ViewerFilter[] filters) {
-		if (filters.length == 0) {
-			resetFilters();
-		} else {
-			this.filters = new ArrayList(Arrays.asList(filters));
-			refresh();
-		}
-	}
-	
-	/**
-	 * Discards this viewer's filters and triggers refiltering and resorting of
-	 * the elements.
-	 */
-	public void resetFilters() {
-		if (filters != null) {
-			filters = null;
-			refresh();
-		}
-	}
-
-	/**
-	 * Ensures that the given element is visible, scrolling the viewer if
-	 * necessary. The selection is unchanged.
-	 * 
-	 * @param element
-	 *            the element to reveal
-	 */
-	public abstract void reveal(Object element);
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ContentViewer#setContentProvider(org.eclipse.jface.viewers.IContentProvider)
-	 */
-	public void setContentProvider(IContentProvider provider) {
-		assertContentProviderType(provider);
-		super.setContentProvider(provider);
-	}
-
-	/**
-	 * Assert that the content provider is of one of the
-	 * supported types.
-	 * @param provider
-	 */
-	protected void assertContentProviderType(IContentProvider provider) {
-		Assert.isTrue(provider instanceof IStructuredContentProvider);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.Viewer#setInput(java.lang.Object)
-	 */
-	public final void setInput(Object input) {
-
-		try {
-			//		fInChange= true;
-
-			unmapAllElements();
-
-			super.setInput(input);
-
-		} finally {
-			//		fInChange= false;
-		}
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection, boolean)
-	 */
-	public void setSelection(ISelection selection, boolean reveal) {
-		/**
-		 * <p>
-		 * If the new selection differs from the current selection the hook
-		 * <code>updateSelection</code> is called.
-		 * </p>
-		 * <p>
-		 * If <code>setSelection</code> is called from within
-		 * <code>preserveSelection</code>, the call to
-		 * <code>updateSelection</code> is delayed until the end of
-		 * <code>preserveSelection</code>.
-		 * </p>
-		 * <p>
-		 * Subclasses do not typically override this method, but implement
-		 * <code>setSelectionToWidget</code> instead.
-		 * </p>
-		 */
-		Control control = getControl();
-		if (control == null || control.isDisposed()) {
-			return;
-		}
-		if (!inChange) {
-			setSelectionToWidget(selection, reveal);
-			ISelection sel = getSelection();
-			updateSelection(sel);
-			firePostSelectionChanged(new SelectionChangedEvent(this, sel));
-		} else {
-			restoreSelection = false;
-			setSelectionToWidget(selection, reveal);
-		}
-	}
-
-	/**
-	 * Parlays the given list of selected elements into selections on this
-	 * viewer's control.
-	 * <p>
-	 * Subclasses should override to set their selection based on the given list
-	 * of elements.
-	 * </p>
-	 * 
-	 * @param l
-	 *            list of selected elements (element type: <code>Object</code>)
-	 *            or <code>null</code> if the selection is to be cleared
-	 * @param reveal
-	 *            <code>true</code> if the selection is to be made visible,
-	 *            and <code>false</code> otherwise
-	 */
-	protected abstract void setSelectionToWidget(List l, boolean reveal);
-
-	/**
-	 * Converts the selection to a <code>List</code> and calls
-	 * <code>setSelectionToWidget(List, boolean)</code>. The selection is
-	 * expected to be an <code>IStructuredSelection</code> of elements. If
-	 * not, the selection is cleared.
-	 * <p>
-	 * Subclasses do not typically override this method, but implement
-	 * <code>setSelectionToWidget(List, boolean)</code> instead.
-	 * 
-	 * @param selection
-	 *            an IStructuredSelection of elements
-	 * @param reveal
-	 *            <code>true</code> to reveal the first element in the
-	 *            selection, or <code>false</code> otherwise
-	 */
-	protected void setSelectionToWidget(ISelection selection, boolean reveal) {
-		if (selection instanceof IStructuredSelection) {
-			setSelectionToWidget(((IStructuredSelection) selection).toList(), reveal);
-		} else {
-			setSelectionToWidget((List) null, reveal);
-		}
-	}
-
-	/**
-	 * Sets this viewer's sorter and triggers refiltering and resorting of this
-	 * viewer's element. Passing <code>null</code> turns sorting off.  
-     * <p>
-     * It is recommended to use <code>setComparator()</code> instead.
-     * </p>
-	 * 
-	 * @param sorter
-	 *            a viewer sorter, or <code>null</code> if none
-	 */
-	public void setSorter(ViewerSorter sorter) {
-		if (this.sorter != sorter) {
-			this.sorter = sorter;
-			refresh();
-		}
-	}
-
-	/**
-	 * Sets this viewer's comparator to be used for sorting elements, and triggers refiltering and 
-	 * resorting of this viewer's element.  <code>null</code> turns sorting off.
-	 * To get the viewer's comparator, call <code>getComparator()</code>.
-     * <p>
-     * IMPORTANT: This method was introduced in 3.2. If a reference to this viewer object 
-     * is passed to clients who call <code>getSorter()<code>, null may be returned from
-     * from that method even though the viewer is sorting its elements using the
-     * viewer's comparator.
-     * </p>
-	 * 
-	 * @param comparator a viewer comparator, or <code>null</code> if none
-     *
-     * @since 3.2
-	 */
-	public void setComparator(ViewerComparator comparator){
-		if (this.sorter != comparator){
-			this.sorter = comparator;
-			refresh();
-		}
-	}
-	
-	/**
-	 * Configures whether this structured viewer uses an internal hash table to
-	 * speeds up the mapping between elements and SWT items. This must be called
-	 * before the viewer is given an input (via <code>setInput</code>).
-	 * 
-	 * @param enable
-	 *            <code>true</code> to enable hash lookup, and
-	 *            <code>false</code> to disable it
-	 */
-	public void setUseHashlookup(boolean enable) {
-		Assert.isTrue(getInput() == null,
-				"Can only enable the hash look up before input has been set");//$NON-NLS-1$
-		if (enable) {
-			elementMap = newHashtable(CustomHashtable.DEFAULT_CAPACITY);
-		} else {
-			elementMap = null;
-		}
-	}
-
-	/**
-	 * Sets the comparer to use for comparing elements, or <code>null</code>
-	 * to use the default <code>equals</code> and <code>hashCode</code>
-	 * methods on the elements themselves.
-	 * 
-	 * @param comparer
-	 *            the comparer to use for comparing elements or
-	 *            <code>null</code>
-	 */
-	public void setComparer(IElementComparer comparer) {
-		this.comparer = comparer;
-		if (elementMap != null) {
-			elementMap = new CustomHashtable(elementMap, comparer);
-		}
-	}
-
-	/**
-	 * NON-API - to be removed - see bug 200214
-	 * Enable or disable the preserve selection behavior of this viewer. The
-	 * default is that the viewer attempts to preserve the selection across
-	 * update operations. This is an advanced option, to support clients that
-	 * manage the selection without relying on the viewer, or clients running
-	 * into performance problems when using viewers and {@link SWT#VIRTUAL}.
-	 * Note that this method has been introduced in 3.5 and that trying to
-	 * disable the selection behavior may not be possible for all subclasses of
-	 * <code>StructuredViewer</code>, or may cause program errors. This method
-	 * is supported for {@link TableViewer}, {@link TreeViewer},
-	 * {@link ListViewer}, {@link CheckboxTableViewer},
-	 * {@link CheckboxTreeViewer}, and {@link ComboViewer}, but no promises are
-	 * made for other subclasses of StructuredViewer, or subclasses of the
-	 * listed viewer classes.
-	 * 
-	 * @param preserve
-	 *            <code>true</code> if selection should be preserved,
-	 *            <code>false</code> otherwise
-	 */
-	void setPreserveSelection(boolean preserve) {
-		this.preserveSelection = preserve;
-	}
-
-	/**
-	 * NON-API - to be removed - see bug 200214
-	 * Returns whether an attempt should be made to preserve selection across
-	 * update operations. To be used by subclasses that override
-	 * {@link #preservingSelection(Runnable)}.
-	 * 
-	 * @return <code>true</code> if selection should be preserved,
-	 *         <code>false</code> otherwise
-	 */
-	boolean getPreserveSelection() {
-		return this.preserveSelection;
-	}
-
-	/**
-	 * Hook for testing.
-	 * @param element
-	 * @return Widget
-	 */
-	public Widget testFindItem(Object element) {
-		return findItem(element);
-	}
-
-	/**
-	 * Hook for testing.
-	 * @param element
-	 * @return Widget[]
-	 * @since 3.2
-	 */
-	public Widget[] testFindItems(Object element) {
-		return findItems(element);
-	}
-	
-	/**
-	 * Removes all elements from the map.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 */
-	protected void unmapAllElements() {
-		if (elementMap != null) {
-			elementMap = newHashtable(CustomHashtable.DEFAULT_CAPACITY);
-		}
-	}
-
-	/**
-	 * Removes the given element from the internal element to widget map. Does
-	 * nothing if mapping is disabled. If mapping is enabled, the given element
-	 * must be present.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 */
-	protected void unmapElement(Object element) {
-		if (elementMap != null) {
-			elementMap.remove(element);
-		}
-	}
-
-	/**
-	 * Removes the given association from the internal element to widget map.
-	 * Does nothing if mapping is disabled, or if the given element does not map
-	 * to the given item.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @param item the item to unmap
-	 * @since 2.0
-	 */
-	protected void unmapElement(Object element, Widget item) {
-		// double-check that the element actually maps to the given item before
-		// unmapping it
-		if (elementMap != null) {
-			Object widgetOrWidgets = elementMap.get(element);
-			if (widgetOrWidgets == null) {
-				// item was not mapped, return
-				return;
-			} else if (widgetOrWidgets instanceof Widget) {
-				if (item == widgetOrWidgets) {
-					elementMap.remove(element);
-				}
-			} else {
-				Widget[] widgets = (Widget[]) widgetOrWidgets;
-				int indexOfItem = Arrays.asList(widgets).indexOf(item);
-				if (indexOfItem == -1) {
-					return;
-				}
-				int length = widgets.length;
-				if (indexOfItem == 0) {
-					if(length == 1) {
-						elementMap.remove(element);
-					} else {
-						Widget[] updatedWidgets = new Widget[length - 1];
-						System.arraycopy(widgets, 1, updatedWidgets, 0, length -1 );
-						elementMap.put(element, updatedWidgets);
-					}
-				} else {
-					Widget[] updatedWidgets = new Widget[length - 1];
-					System.arraycopy(widgets, 0, updatedWidgets, 0, indexOfItem);
-					System.arraycopy(widgets, indexOfItem + 1, updatedWidgets, indexOfItem, length - indexOfItem - 1);
-					elementMap.put(element, updatedWidgets);
-				}
-			}
-		}
-	}
-
-	// flag to indicate that a full refresh took place. See bug 102440.
-	private boolean refreshOccurred;
-	
-	/**
-	 * Updates the given elements' presentation when one or more of their
-	 * properties change. Only the given elements are updated.
-	 * <p>
-	 * This does not handle structural changes (e.g. addition or removal of
-	 * elements), and does not update any other related elements (e.g. child
-	 * elements). To handle structural changes, use the <code>refresh</code>
-	 * methods instead.
-	 * </p>
-	 * <p>
-	 * This should be called when an element has changed in the model, in order
-	 * to have the viewer accurately reflect the model. This method only affects
-	 * the viewer, not the model.
-	 * </p>
-	 * <p>
-	 * Specifying which properties are affected may allow the viewer to optimize
-	 * the update. For example, if the label provider is not affected by changes
-	 * to any of these properties, an update may not actually be required.
-	 * Specifying <code>properties</code> as <code>null</code> forces a full
-	 * update of the given elements.
-	 * </p>
-	 * <p>
-	 * If the viewer has a sorter which is affected by a change to one of the
-	 * properties, the elements' positions are updated to maintain the sort
-	 * order. Note that resorting may not happen if <code>properties</code>
-	 * is <code>null</code>.
-	 * </p>
-	 * <p>
-	 * If the viewer has a filter which is affected by a change to one of the
-	 * properties, elements may appear or disappear if the change affects
-	 * whether or not they are filtered out. Note that resorting may not happen
-	 * if <code>properties</code> is <code>null</code>.
-	 * </p>
-	 * 
-	 * @param elements
-	 *            the elements
-	 * @param properties
-	 *            the properties that have changed, or <code>null</code> to
-	 *            indicate unknown
-	 */
-	public void update(Object[] elements, String[] properties) {
-		boolean previousValue = refreshOccurred;
-		refreshOccurred = false;
-		try {
-			for (int i = 0; i < elements.length; ++i) {
-				update(elements[i], properties);
-				if (refreshOccurred) {
-					return;
-				}
-			}
-		} finally {
-			refreshOccurred = previousValue;
-		}
-	}
-
-	/**
-	 * Updates the given element's presentation when one or more of its
-	 * properties changes. Only the given element is updated.
-	 * <p>
-	 * This does not handle structural changes (e.g. addition or removal of
-	 * elements), and does not update any other related elements (e.g. child
-	 * elements). To handle structural changes, use the <code>refresh</code>
-	 * methods instead.
-	 * </p>
-	 * <p>
-	 * This should be called when an element has changed in the model, in order
-	 * to have the viewer accurately reflect the model. This method only affects
-	 * the viewer, not the model.
-	 * </p>
-	 * <p>
-	 * Specifying which properties are affected may allow the viewer to optimize
-	 * the update. For example, if the label provider is not affected by changes
-	 * to any of these properties, an update may not actually be required.
-	 * Specifying <code>properties</code> as <code>null</code> forces a full
-	 * update of the element.
-	 * </p>
-	 * <p>
-	 * If the viewer has a sorter which is affected by a change to one of the
-	 * properties, the element's position is updated to maintain the sort order.
-	 * Note that resorting may not happen if <code>properties</code> is
-	 * <code>null</code>.
-	 * </p>
-	 * <p>
-	 * If the viewer has a filter which is affected by a change to one of the
-	 * properties, the element may appear or disappear if the change affects
-	 * whether or not the element is filtered out. Note that filtering may not
-	 * happen if <code>properties</code> is <code>null</code>.
-	 * </p>
-	 * 
-	 * @param element
-	 *            the element
-	 * @param properties
-	 *            the properties that have changed, or <code>null</code> to
-	 *            indicate unknown
-	 */
-	public void update(Object element, String[] properties) {
-		Assert.isNotNull(element);
-		Widget[] items = findItems(element);
-
-		boolean mayExitEarly = !refreshOccurred;
-		for (int i = 0; i < items.length; i++) {
-			internalUpdate(items[i], element, properties);
-			if (mayExitEarly && refreshOccurred) {
-				// detected a change from refreshOccurred==false to refreshOccurred==true 
-				return;
-			}
-		}		
-	}
-
-	/**
-     * Updates the given element's presentation when one or more of its
-     * properties changes. Only the given element is updated.
-     * <p>
-     * EXPERIMENTAL.  Not to be used except by JDT.
-     * This method was added to support JDT's explorations
-     * into grouping by working sets, which requires viewers to support multiple 
-     * equal elements.  See bug 76482 for more details.  This support will
-     * likely be removed in Eclipse 3.3 in favor of proper support for
-     * multiple equal elements (which was implemented for AbtractTreeViewer in 3.2). 
-     * </p>
-     * @param widget
-     *            the widget for the element
-     * @param element
-     *            the element
-     * @param properties
-     *            the properties that have changed, or <code>null</code> to
-     *            indicate unknown
-     */
-	protected void internalUpdate(Widget widget, Object element, String[] properties) {
-		boolean needsRefilter = false;
-		if (properties != null) {
-			for (int i = 0; i < properties.length; ++i) {
-				needsRefilter = needsRefilter(element, properties[i]);
-				if (needsRefilter) {
-					break;
-				}
-			}
-		}
-		if (needsRefilter) {
-			preservingSelection(new Runnable() {
-				public void run() {
-					internalRefresh(getRoot());
-					refreshOccurred = true;
-				}
-			});
-			return;
-		}
-
-		boolean needsUpdate;
-		if (properties == null) {
-			needsUpdate = true;
-		} else {
-			needsUpdate = false;
-			IBaseLabelProvider labelProvider = getLabelProvider();
-			for (int i = 0; i < properties.length; ++i) {
-				needsUpdate = labelProvider.isLabelProperty(element, properties[i]);
-				if (needsUpdate) {
-					break;
-				}
-			}
-		}
-		if (needsUpdate) {
-			updateItem(widget, element);
-		}
-	}
-
-	/**
-	 * Copies attributes of the given element into the given widget.
-	 * <p>
-	 * This method is internal to the framework; subclassers should not call
-	 * this method. Calls <code>doUpdateItem(widget, element, true)</code>.
-	 * </p>
-	 * 
-	 * @param widget
-	 *            the widget
-	 * @param element
-	 *            the element
-	 */
-	protected final void updateItem(Widget widget, Object element) {
-		SafeRunnable.run(new UpdateItemSafeRunnable(widget, element, true));
-	}
-
-	/**
-	 * Updates the selection of this viewer.
-	 * <p>
-	 * This framework method should be called when the selection in the viewer
-	 * widget changes.
-	 * </p>
-	 * <p>
-	 * The default implementation of this method notifies all selection change
-	 * listeners recorded in an internal state variable. Overriding this method
-	 * is generally not required; however, if overriding in a subclass,
-	 * <code>super.updateSelection</code> must be invoked.
-	 * </p>
-	 * 
-	 * @param selection
-	 *            the selection, or <code>null</code> if none
-	 */
-	protected void updateSelection(ISelection selection) {
-		SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
-		fireSelectionChanged(event);
-	}
-
-	/**
-	 * Returns whether this structured viewer is configured to use an internal
-	 * map to speed up the mapping between elements and SWT items.
-	 * <p>
-	 * The default implementation of this framework method checks whether the
-	 * internal map has been initialized.
-	 * </p>
-	 * 
-	 * @return <code>true</code> if the element map is enabled, and
-	 *         <code>false</code> if disabled
-	 */
-	protected boolean usingElementMap() {
-		return elementMap != null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ContentViewer#setLabelProvider(org.eclipse.jface.viewers.IBaseLabelProvider)
-	 */
-	public void setLabelProvider(IBaseLabelProvider labelProvider) {
-		if (labelProvider instanceof IColorProvider || labelProvider instanceof IFontProvider) {
-			colorAndFontCollector = new ColorAndFontCollectorWithProviders(labelProvider);
-		} else {
-			colorAndFontCollector = new ColorAndFontCollector();
-		}
-		super.setLabelProvider(labelProvider);
-		
-	}
-	
-	/**
-	 * Build a label up for the element using the supplied label provider.
-	 * @param updateLabel The ViewerLabel to collect the result in
-	 * @param element The element being decorated.
-	 */
-	protected void buildLabel(ViewerLabel updateLabel, Object element){
-
-		if (getLabelProvider() instanceof IViewerLabelProvider) {
-			IViewerLabelProvider itemProvider = (IViewerLabelProvider) getLabelProvider();
-			itemProvider.updateLabel(updateLabel, element);
-            		
-			colorAndFontCollector.setUsedDecorators();
-			
-			if(updateLabel.hasNewBackground()) {
-				colorAndFontCollector.setBackground(updateLabel.getBackground());
-			}
-			
-			if(updateLabel.hasNewForeground()) {
-				colorAndFontCollector.setForeground(updateLabel.getForeground());
-			}
-			
-			if(updateLabel.hasNewFont()) {
-				colorAndFontCollector.setFont(updateLabel.getFont());
-			}
-			return;
-
-		} 
-		
-		if(getLabelProvider() instanceof ILabelProvider){
-			ILabelProvider labelProvider = (ILabelProvider) getLabelProvider();
-			updateLabel.setText(labelProvider.getText(element));
-			updateLabel.setImage(labelProvider.getImage(element));
-		}
-	
-	}
-	
-	/**
-	 * Build a label up for the element using the supplied label provider.
-	 * @param updateLabel The ViewerLabel to collect the result in
-	 * @param element The element being decorated.
-	 * @param labelProvider ILabelProvider the labelProvider for the receiver.
-	 */
-	void buildLabel(ViewerLabel updateLabel, Object element,IViewerLabelProvider labelProvider){
-
-			labelProvider.updateLabel(updateLabel, element);
-            		
-			colorAndFontCollector.setUsedDecorators();
-			
-			if(updateLabel.hasNewBackground()) {
-				colorAndFontCollector.setBackground(updateLabel.getBackground());
-			}
-			
-			if(updateLabel.hasNewForeground()) {
-				colorAndFontCollector.setForeground(updateLabel.getForeground());
-			}
-			
-			if(updateLabel.hasNewFont()) {
-				colorAndFontCollector.setFont(updateLabel.getFont());
-			}
-	
-	}
-	
-	/**
-	 * Build a label up for the element using the supplied label provider.
-	 * @param updateLabel The ViewerLabel to collect the result in
-	 * @param elementPath The path of the element being decorated.
-	 * @param labelProvider ILabelProvider the labelProvider for the receiver.
-	 */
-	void buildLabel(ViewerLabel updateLabel, TreePath elementPath,ITreePathLabelProvider labelProvider){
-
-			labelProvider.updateLabel(updateLabel, elementPath);
-            		
-			colorAndFontCollector.setUsedDecorators();
-			
-			if(updateLabel.hasNewBackground()) {
-				colorAndFontCollector.setBackground(updateLabel.getBackground());
-			}
-			
-			if(updateLabel.hasNewForeground()) {
-				colorAndFontCollector.setForeground(updateLabel.getForeground());
-			}
-			
-			if(updateLabel.hasNewFont()) {
-				colorAndFontCollector.setFont(updateLabel.getFont());
-			}
-	
-	}
-	
-	/**
-	 * Build a label up for the element using the supplied label provider.
-	 * @param updateLabel The ViewerLabel to collect the result in
-	 * @param element The element being decorated.
-	 * @param labelProvider ILabelProvider the labelProvider for the receiver.
-	 */
-	void buildLabel(ViewerLabel updateLabel, Object element,ILabelProvider labelProvider){
-			updateLabel.setText(labelProvider.getText(element));
-			updateLabel.setImage(labelProvider.getImage(element));
-	}
-
-	/**
-	 * Get the ColorAndFontCollector for the receiver.
-	 * @return ColorAndFontCollector 
-	 * @since 3.1
-	 */
-	protected ColorAndFontCollector getColorAndFontCollector() {
-		return colorAndFontCollector;
-	}
-	
-	protected void handleDispose(DisposeEvent event) {
-		super.handleDispose(event);
-		sorter = null;
-		comparer = null;
-		if (filters != null)
-			filters.clear();
-		elementMap = newHashtable(1);
-		openListeners.clear();
-		doubleClickListeners.clear();
-		colorAndFontCollector.clear();
-		postSelectionChangedListeners.clear();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewerInternals.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewerInternals.java
deleted file mode 100644
index 465bc17..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StructuredViewerInternals.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * This class is not part of the public API of JFace. See bug 267722.
- * 
- * @since 3.5
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
- */
-public class StructuredViewerInternals {
-
-	/**
-	 * Nothing to see here.
-	 * 
-	 * @since 3.5
-	 * @noextend This interface is not intended to be extended by clients.
-	 * @noimplement This interface is not intended to be implemented by clients.
-	 */
-	protected static interface AssociateListener {
-
-		/**
-		 * Call when an element is associated with an Item
-		 * 
-		 * @param element
-		 * @param item
-		 */
-		void associate(Object element, Item item);
-
-		/**
-		 * Called when an Item is no longer associated
-		 * 
-		 * @param item
-		 */
-		void disassociate(Item item);
-	}
-
-	/**
-	 * Nothing to see here. Sets or resets the AssociateListener for the given
-	 * Viewer.
-	 * 
-	 * @param viewer
-	 *            the viewer
-	 * @param listener
-	 *            the {@link AssociateListener}
-	 * @noreference This method is not intended to be referenced by clients.
-	 */
-	protected static void setAssociateListener(StructuredViewer viewer,
-			AssociateListener listener) {
-		viewer.setAssociateListener(listener);
-	}
-
-	/**
-	 * Nothing to see here. Returns the items for the given element.
-	 * 
-	 * @param viewer
-	 * @param element
-	 * @return the Widgets corresponding to the element
-	 * 
-	 * @noreference This method is not intended to be referenced by clients.
-	 */
-	protected static Widget[] getItems(StructuredViewer viewer, Object element) {
-		return viewer.findItems(element);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledCellLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledCellLabelProvider.java
deleted file mode 100644
index 3aa8e24..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledCellLabelProvider.java
+++ /dev/null
@@ -1,457 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Krkoska - initial API and implementation (bug 188333)
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.TextLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Widget;
-
-import org.eclipse.core.runtime.Assert;
-
-import org.eclipse.jface.viewers.StyledString.Styler;
-
-/**
- * A {@link StyledCellLabelProvider} supports styled labels by using owner
- * draw.
- * Besides the styles in labels, the label provider preserves native viewer behavior:
- * <ul>
- * <li>similar image and label positioning</li>
- * <li>native drawing of focus and selection</li>
- * </ul>
- * <p>
- * For providing the label's styles, create a subclass and overwrite
- * {@link StyledCellLabelProvider#update(ViewerCell)} to
- * return set all information needed to render a element. Use
- * {@link ViewerCell#setStyleRanges(StyleRange[])} to set style ranges
- * on the label.
- * </p>
- * 
- * @since 3.4
- */
-public abstract class StyledCellLabelProvider extends OwnerDrawLabelProvider {
-
-
-
-	/**
-	 * Style constant for indicating that the styled colors are to be applied
-	 * even it the viewer's item is selected. Default is not to apply colors.
-	 */
-	public static final int COLORS_ON_SELECTION = 1 << 0;
-
-	/**
-	 * Style constant for indicating to draw the focus if requested by the owner
-	 * draw event. Default is to draw the focus.
-	 */
-	public static final int NO_FOCUS = 1 << 1;
-	
-	/**
-	 * Private constant to indicate if owner draw is enabled for the
-	 * label provider's column.
-	 */
-	private static final int OWNER_DRAW_ENABLED = 1 << 4;
-
-	private int style;
-
-	// reused text layout
-	private TextLayout cachedTextLayout;
-	
-	private ColumnViewer viewer;
-	private ViewerColumn column;
-	
-	private Widget itemOfLastMeasure;
-	private Object elementOfLastMeasure;
-	private int deltaOfLastMeasure;
-
-	/**
-	 * Creates a new StyledCellLabelProvider. By default, owner draw is enabled, focus is drawn and no
-	 * colors are painted on selected elements.
-	 */
-	public StyledCellLabelProvider() {
-		this(0);
-	}
-
-	/**
-	 * Creates a new StyledCellLabelProvider. By default, owner draw is enabled.
-	 * 
-	 * @param style
-	 *            the style bits
-	 * @see StyledCellLabelProvider#COLORS_ON_SELECTION
-	 * @see StyledCellLabelProvider#NO_FOCUS
-	 */
-	public StyledCellLabelProvider(int style) {
-		this.style = style & (COLORS_ON_SELECTION | NO_FOCUS)
-							| OWNER_DRAW_ENABLED;
-	}
-	
-	/**
-	 * Returns <code>true</code> is the owner draw rendering is enabled for this label provider.
-	 * By default owner draw rendering is enabled. If owner draw rendering is disabled, rending is
-	 * done by the viewer and no styled ranges (see {@link ViewerCell#getStyleRanges()})
-	 * are drawn.
-	 * 
-	 * @return <code>true</code> is the rendering of styles is enabled.
-	 */
-	public boolean isOwnerDrawEnabled() {
-		return (this.style & OWNER_DRAW_ENABLED) != 0;
-	}
-	
-	/**
-	 * Specifies whether owner draw rendering is enabled for this label
-	 * provider. By default owner draw rendering is enabled. If owner draw
-	 * rendering is disabled, rendering is done by the viewer and no styled
-	 * ranges (see {@link ViewerCell#getStyleRanges()}) are drawn.
-	 * It is the caller's responsibility to also call
-	 * {@link StructuredViewer#refresh()} or similar methods to update the
-	 * underlying widget.
-	 * 
-	 * @param enabled
-	 *            specifies if owner draw rendering is enabled
-	 */
-	public void setOwnerDrawEnabled(boolean enabled) {
-		boolean isEnabled= isOwnerDrawEnabled();
-		if (isEnabled != enabled) {
-			if (enabled) {
-				this.style |= OWNER_DRAW_ENABLED;
-			} else {
-				this.style &= ~OWNER_DRAW_ENABLED;
-			}
-			if (this.viewer != null) {
-				setOwnerDrawEnabled(this.viewer, this.column, enabled);
-			}
-		}
-	}
-	
-	/**
-	 * Returns the viewer on which this label provider is installed on or <code>null</code> if the
-	 * label provider is not installed.
-	 * 
-	 * @return the viewer on which this label provider is installed on or <code>null</code> if the
-	 * label provider is not installed.
-	 */
-	protected final ColumnViewer getViewer() {
-		return this.viewer;
-	}
-	
-	/**
-	 * Returns the column on which this label provider is installed on or <code>null</code> if the
-	 * label provider is not installed.
-	 * 
-	 * @return the column on which this label provider is installed on or <code>null</code> if the
-	 * label provider is not installed.
-	 */
-	protected final ViewerColumn getColumn() {
-		return this.column;
-	}
-		
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#initialize(org.eclipse.jface.viewers.ColumnViewer, org.eclipse.jface.viewers.ViewerColumn)
-	 */
-	public void initialize(ColumnViewer viewer, ViewerColumn column) {
-		Assert.isTrue(this.viewer == null && this.column == null, "Label provider instance already in use"); //$NON-NLS-1$
-		
-		this.viewer= viewer;
-		this.column= column;
-		super.initialize(viewer, column, isOwnerDrawEnabled());
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.BaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-		if (this.cachedTextLayout != null) {
-			cachedTextLayout.dispose();
-			cachedTextLayout = null;
-		}
-	
-		this.viewer= null;
-		this.column= null;
-		this.itemOfLastMeasure = null;
-		this.elementOfLastMeasure = null;
-		
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	public void update(ViewerCell cell) {
-		// clients must override and configure the cell and call super
-		super.update(cell); // calls 'repaint' to trigger the paint listener
-	}
-
-	private TextLayout getSharedTextLayout(Display display) {
-		if (cachedTextLayout == null) {
-			int orientation = viewer.getControl().getStyle() & (SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT);
-			cachedTextLayout = new TextLayout(display);
-			cachedTextLayout.setOrientation(orientation);
-		}
-		return cachedTextLayout;
-	}
-
-	private boolean useColors(Event event) {
-		return (event.detail & SWT.SELECTED) == 0
-				|| (this.style & COLORS_ON_SELECTION) != 0;
-	}
-
-	private boolean drawFocus(Event event) {
-		return (event.detail & SWT.FOCUSED) != 0
-				&& (this.style & NO_FOCUS) == 0;
-	}
-	
-	/**
-	 * Prepares the given style range before it is applied to the label. This method makes sure that
-	 * no colors are drawn when the element is selected.
-	 * The current version of the {@link StyledCellLabelProvider} will also ignore all font settings on the
-	 * style range. Clients can override.
-	 * 
-	 * @param styleRange
-	 *               the style range to prepare. the style range element must not be modified
-	 * @param applyColors
-	 *               specifies if colors should be applied.
-	 * @return
-	 *               returns the style range to use on the label
-	 */
-	protected StyleRange prepareStyleRange(StyleRange styleRange, boolean applyColors) {
-		// if no colors apply or font is set, create a clone and clear the
-		// colors and font
-		if (!applyColors && (styleRange.foreground != null || styleRange.background != null)) {
-			styleRange = (StyleRange) styleRange.clone();
-			if (!applyColors) {
-				styleRange.foreground = null;
-				styleRange.background = null;
-			}
-		}
-		return styleRange;
-	}
-
-	private ViewerCell getViewerCell(Event event, Object element) {
-		ViewerRow row= viewer.getViewerRowFromItem(event.item);
-		return new ViewerCell(row, event.index, element);
-	}
-	
-	/**
-	 * Handle the erase event. The default implementation does nothing to ensure
-	 * keep native selection highlighting working.
-	 * 
-	 * @param event
-	 *            the erase event
-	 * @param element
-	 *            the model object
-	 * @see SWT#EraseItem
-	 */
-	protected void erase(Event event, Object element) {
-		// use native erase
-		if (isOwnerDrawEnabled()) {
-			// info has been set by 'update': announce that we paint ourselves
-			event.detail &= ~SWT.FOREGROUND;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#measure(org.eclipse.swt.widgets.Event,
-	 *      java.lang.Object)
-	 */
-	protected void measure(Event event, Object element) {
-		if (!isOwnerDrawEnabled())
-			return;
-		
-		ViewerCell cell= getViewerCell(event, element);
-		boolean applyColors = useColors(event); // returns false because of bug 228376
-		
-		TextLayout layout = getSharedTextLayout(event.display);
-		
-		int textWidthDelta = deltaOfLastMeasure = updateTextLayout(layout, cell, applyColors);
-		/* remove-begin if bug 228695 fixed */
-		itemOfLastMeasure = event.item;
-		elementOfLastMeasure = event.item.getData();
-		/* remove-end if bug 228695 fixed */
-
-		event.width += textWidthDelta;
-	}
-
-	/**
-	 * @param layout
-	 * @param cell
-	 * @param applyColors
-	 * @return the text width delta (0 if the text layout contains no other font)
-	 */
-	private int updateTextLayout(TextLayout layout, ViewerCell cell,
-			boolean applyColors) {
-		layout.setText(""); //$NON-NLS-1$  //make sure all previous ranges are cleared (see bug 226090)
-		
-		layout.setText(cell.getText());
-		layout.setFont(cell.getFont()); // set also if null to clear previous usages
-		
-		int originalTextWidth = layout.getBounds().width; // text width without any styles
-		boolean containsOtherFont= false;
-		
-		StyleRange[] styleRanges = cell.getStyleRanges();
-		if (styleRanges != null) { // user didn't fill styled ranges
-			for (int i = 0; i < styleRanges.length; i++) {
-				StyleRange curr = prepareStyleRange(styleRanges[i], applyColors);
-				layout.setStyle(curr, curr.start, curr.start + curr.length - 1);
-				if (curr.font != null) {
-					containsOtherFont= true;
-				}
-			}
-		}
-		int textWidthDelta = 0;
-		if (containsOtherFont) {
-			textWidthDelta = layout.getBounds().width - originalTextWidth;
-		}
-		return textWidthDelta;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#paint(org.eclipse.swt.widgets.Event,
-	 *      java.lang.Object)
-	 */
-	protected void paint(Event event, Object element) {
-		if (!isOwnerDrawEnabled())
-			return;
-		
-		ViewerCell cell= getViewerCell(event, element);
-
-		boolean applyColors= useColors(event);
-		
-		GC gc = event.gc;
-		// remember colors to restore the GC later
-		Color oldForeground = gc.getForeground();
-		Color oldBackground = gc.getBackground();
-		
-		if (applyColors) {
-			Color foreground= cell.getForeground();
-			if (foreground != null) {
-				gc.setForeground(foreground);
-			}
-			
-			Color background= cell.getBackground();
-			if (background != null) {
-				gc.setBackground(background);
-			}
-		}
-		Image image = cell.getImage();
-		if (image != null) {
-			Rectangle imageBounds = cell.getImageBounds();
-			if (imageBounds != null) {
-				Rectangle bounds = image.getBounds();
-	
-				// center the image in the given space
-				int x = imageBounds.x
-						+ Math.max(0, (imageBounds.width - bounds.width) / 2);
-				int y = imageBounds.y
-						+ Math.max(0, (imageBounds.height - bounds.height) / 2);
-				gc.drawImage(image, x, y);
-			}
-		}
-
-		Rectangle textBounds = cell.getTextBounds();
-		if (textBounds != null) {
-			TextLayout textLayout= getSharedTextLayout(event.display);
-
-			/* remove-begin if bug 228695 fixed */
-			if (event.item != itemOfLastMeasure || event.item.getData() != elementOfLastMeasure) {
-				// fLayout has not been configured in 'measure()'
-				deltaOfLastMeasure = updateTextLayout(textLayout, cell, applyColors);
-				itemOfLastMeasure = event.item;
-				elementOfLastMeasure = event.item.getData();
-			}
-			/* remove-end if bug 228695 fixed */
-			
-			/* remove-begin if bug 228376 fixed */
-			if (!applyColors) {
-				// need to remove colors for selected elements: measure doesn't provide that information, see bug 228376
-				StyleRange[] styleRanges= cell.getStyleRanges();
-				if (styleRanges != null) {
-					for (int i= 0; i < styleRanges.length; i++) {
-						StyleRange curr = prepareStyleRange(styleRanges[i], applyColors);
-						textLayout.setStyle(curr, curr.start, curr.start + curr.length - 1);
-					}
-				}
-			}
-			/* remove-end if bug 228376 fixed */
-			
-			Rectangle layoutBounds = textLayout.getBounds();
-	
-			int x = textBounds.x;
-			int y = textBounds.y
-					+ Math.max(0, (textBounds.height - layoutBounds.height) / 2);
-	
-			textLayout.draw(gc, x, y);
-		}
-
-		if (drawFocus(event)) {
-			Rectangle focusBounds = cell.getViewerRow().getBounds();
-			gc.drawFocus(focusBounds.x, focusBounds.y, focusBounds.width + deltaOfLastMeasure,
-					focusBounds.height);
-		}
-		
-		if (applyColors) {
-			gc.setForeground(oldForeground);
-			gc.setBackground(oldBackground);
-		}
-	}
-
-	/**
-	 * Applies decoration styles to the decorated string and adds the styles of the previously
-	 * undecorated string.
-	 * <p>
-	 * If the <code>decoratedString</code> contains the <code>styledString</code>, then the result
-	 * keeps the styles of the <code>styledString</code> and styles the decorations with the
-	 * <code>decorationStyler</code>. Otherwise, the decorated string is returned without any
-	 * styles.
-	 * 
-	 * @param decoratedString the decorated string
-	 * @param decorationStyler the styler to use for the decoration or <code>null</code> for no
-	 *            styles
-	 * @param styledString the original styled string
-	 * 
-	 * @return the styled decorated string (can be the given <code>styledString</code>)
-	 * @since 3.5
-	 */
-	public static StyledString styleDecoratedString(String decoratedString, Styler decorationStyler, StyledString styledString) {
-		String label= styledString.getString();
-		int originalStart= decoratedString.indexOf(label);
-		if (originalStart == -1) {
-			return new StyledString(decoratedString); // the decorator did something wild
-		}
-
-		if (decoratedString.length() == label.length())
-			return styledString;
-
-		if (originalStart > 0) {
-			StyledString newString= new StyledString(decoratedString.substring(0, originalStart), decorationStyler);
-			newString.append(styledString);
-			styledString= newString;
-		}
-		if (decoratedString.length() > originalStart + label.length()) { // decorator appended something
-			return styledString.append(decoratedString.substring(originalStart + label.length()), decorationStyler);
-		}
-		return styledString; // no change
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledString.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledString.java
deleted file mode 100644
index 4116d8f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/StyledString.java
+++ /dev/null
@@ -1,549 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.TextStyle;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-
-/**
- * A mutable string with styled ranges. All ranges mark substrings of the string
- * and do not overlap. Styles are applied using instances of {@link Styler} to
- * compute the result of {@link #getStyleRanges()}.
- * 
- * The styled string can be built in the following two ways:
- * <ul>
- * <li>new strings with stylers can be appended</li>
- * <li>stylers can by applied to ranges of the existing string</li>
- * </ul>
- * 
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 3.4
- */
-public class StyledString {
-
-	/**
-	 * A styler will be asked to apply its styles to one ore more ranges in the
-	 * {@link StyledString}.
-	 * 
-	 */
-	public static abstract class Styler {
-
-		/**
-		 * Applies the styles represented by this object to the given textStyle.
-		 * 
-		 * @param textStyle
-		 *            the {@link TextStyle} to modify
-		 */
-		public abstract void applyStyles(TextStyle textStyle);
-	}
-
-	/**
-	 * A built-in styler using the {@link JFacePreferences#QUALIFIER_COLOR}
-	 * managed in the JFace color registry (See
-	 * {@link JFaceResources#getColorRegistry()}).
-	 */
-	public static final Styler QUALIFIER_STYLER = createColorRegistryStyler(
-			JFacePreferences.QUALIFIER_COLOR, null);
-
-	/**
-	 * A built-in styler using the {@link JFacePreferences#COUNTER_COLOR}
-	 * managed in the JFace color registry (See
-	 * {@link JFaceResources#getColorRegistry()}).
-	 */
-	public static final Styler COUNTER_STYLER = createColorRegistryStyler(
-			JFacePreferences.COUNTER_COLOR, null);
-
-	/**
-	 * A built-in styler using the {@link JFacePreferences#DECORATIONS_COLOR}
-	 * managed in the JFace color registry (See
-	 * {@link JFaceResources#getColorRegistry()}).
-	 */
-	public static final Styler DECORATIONS_STYLER = createColorRegistryStyler(
-			JFacePreferences.DECORATIONS_COLOR, null);
-
-	/**
-	 * Creates a styler that takes the given foreground and background colors
-	 * from the JFace color registry.
-	 * 
-	 * @param foregroundColorName
-	 *            the color name for the foreground color
-	 * @param backgroundColorName
-	 *            the color name for the background color
-	 * 
-	 * @return the created style
-	 */
-	public static Styler createColorRegistryStyler(String foregroundColorName,
-			String backgroundColorName) {
-		return new DefaultStyler(foregroundColorName, backgroundColorName);
-	}
-
-	private static final StyleRange[] EMPTY = new StyleRange[0];
-	private StringBuffer fBuffer;
-	private StyleRunList fStyleRuns;
-
-	/**
-	 * Creates an empty {@link StyledString}.
-	 */
-	public StyledString() {
-		fBuffer = new StringBuffer();
-		fStyleRuns = null;
-	}
-
-	/**
-	 * Creates an {@link StyledString} initialized with a string without
-	 * a style associated.
-	 * 
-	 * @param string
-	 *            the string
-	 */
-	public StyledString(String string) {
-		this(string, null);
-	}
-
-	/**
-	 * Creates an {@link StyledString} initialized with a string and a
-	 * style.
-	 * 
-	 * @param string
-	 *            the string
-	 * @param styler
-	 *            the styler for the string or <code>null</code> to not
-	 *            associated a styler.
-	 */
-	public StyledString(String string, Styler styler) {
-		this();
-		append(string, styler);
-	}
-
-	/**
-	 * Returns the string of this {@link StyledString}.
-	 * 
-	 * @return the current string of this {@link StyledString}.
-	 */
-	public String getString() {
-		return fBuffer.toString();
-	}
-	
-	/**
-	 * Returns the string of this {@link StyledString}.
-	 * 
-	 * @return the current string of this {@link StyledString}.
-	 */
-	public String toString() {
-		return getString();
-	}
-
-	/**
-	 * Returns the length of the string of this {@link StyledString}.
-	 * 
-	 * @return the length of the current string
-	 */
-	public int length() {
-		return fBuffer.length();
-	}
-
-	/**
-	 * Appends a string to the {@link StyledString}. The appended string
-	 * will have no associated styler.
-	 * 
-	 * @param string
-	 *            the string to append
-	 * @return returns a reference to this object
-	 */
-	public StyledString append(String string) {
-		return append(string, null);
-	}
-	
-	/**
-	 * Appends the string representation of the given character array
-	 * to the {@link StyledString}. The appended
-	 * character array will have no associated styler.
-	 * 
-	 * @param chars
-	 *            the character array to append
-	 * @return returns a reference to this object
-	 */
-	public StyledString append(char[] chars) {
-		return append(chars, null);
-	}
-
-	/**
-	 * Appends the string representation of the given character
-	 * to the {@link StyledString}. The appended
-	 * character will have no associated styler.
-	 * 
-	 * @param ch
-	 *            the character to append
-	 * @return returns a reference to this object
-	 */
-	public StyledString append(char ch) {
-		return append(String.valueOf(ch), null);
-	}
-
-	/**
-	 * Appends a string with styles to the {@link StyledString}.
-	 * 
-	 * @param string
-	 *            the string to append
-	 * @return returns a reference to this object
-	 */
-	public StyledString append(StyledString string) {
-		if (string.length() == 0) {
-			return this;
-		}
-
-		int offset = fBuffer.length();
-		fBuffer.append(string.toString());
-
-		List otherRuns = string.fStyleRuns;
-		if (otherRuns != null && !otherRuns.isEmpty()) {
-			for (int i = 0; i < otherRuns.size(); i++) {
-				StyleRun curr = (StyleRun) otherRuns.get(i);
-				if (i == 0 && curr.offset != 0) {
-					appendStyleRun(null, offset); // appended string will
-					// start with the default
-					// color
-				}
-				appendStyleRun(curr.style, offset + curr.offset);
-			}
-		} else {
-			appendStyleRun(null, offset); // appended string will start with
-			// the default color
-		}
-		return this;
-	}
-
-	/**
-	 * Appends the string representation of the given character
-	 * with a style to the {@link StyledString}. The
-	 * appended character will have the given style associated.
-	 * 
-	 * @param ch
-	 *            the character to append
-	 * @param styler
-	 *            the styler to use for styling the character to append or
-	 *            <code>null</code> if no styler should be associated with the
-	 *            appended character
-	 * @return returns a reference to this object
-	 */
-	public StyledString append(char ch, Styler styler) {
-		return append(String.valueOf(ch), styler);
-	}
-
-	/**
-	 * Appends a string with a style to the {@link StyledString}. The
-	 * appended string will be styled using the given styler.
-	 * 
-	 * @param string
-	 *            the string to append
-	 * @param styler
-	 *            the styler to use for styling the string to append or
-	 *            <code>null</code> if no styler should be associated with the
-	 *            appended string.
-	 * @return returns a reference to this object
-	 */
-	public StyledString append(String string, Styler styler) {
-		if (string.length() == 0)
-			return this;
-
-		int offset = fBuffer.length(); // the length before appending
-		fBuffer.append(string);
-		appendStyleRun(styler, offset);
-		return this;
-	}
-	
-	/**
-	 * Appends the string representation of the given character array
-	 * with a style to the {@link StyledString}. The
-	 * appended character array will be styled using the given styler.
-	 * 
-	 * @param chars
-	 *            the character array to append
-	 * @param styler
-	 *            the styler to use for styling the character array to append or
-	 *            <code>null</code> if no styler should be associated with the
-	 *            appended character array
-	 * @return returns a reference to this object
-	 */
-	public StyledString append(char[] chars, Styler styler) {
-		if (chars.length == 0)
-			return this;
-
-		int offset = fBuffer.length(); // the length before appending
-		fBuffer.append(chars);
-		appendStyleRun(styler, offset);
-		return this;
-	}
-
-	/**
-	 * Inserts the character at the given offset. The inserted character will
-	 * get the styler that is already at the given offset.
-	 * 
-	 * @param ch
-	 *            the character to insert
-	 * @param offset
-	 *            the insertion index
-	 * @return returns a reference to this object
-	 * @throws StringIndexOutOfBoundsException
-	 *             if <code>offset</code> is less than zero, or if <code>offset</code>
-	 *             is greater than the length of this object
-	 * @since 3.5
-	 */
-	public StyledString insert(char ch, int offset) throws StringIndexOutOfBoundsException {
-		if (offset < 0 || offset > fBuffer.length()) {
-			throw new StringIndexOutOfBoundsException(
-					"Invalid offset (" + offset + ")"); //$NON-NLS-1$//$NON-NLS-2$
-		}
-		if (hasRuns()) {
-			int runIndex = findRun(offset);
-			if (runIndex < 0) {
-				runIndex = -runIndex - 1;
-			} else {
-				runIndex = runIndex + 1;
-			}
-			StyleRunList styleRuns = getStyleRuns();
-			final int size = styleRuns.size();
-			for (int i = runIndex; i < size; i++) {
-				StyleRun run = styleRuns.getRun(i);
-				run.offset++;
-			}
-		}
-		fBuffer.insert(offset, ch);
-		return this;
-	}
-
-	/**
-	 * Sets a styler to use for the given source range. The range must be
-	 * subrange of actual string of this {@link StyledString}. Stylers
-	 * previously set for that range will be overwritten.
-	 * 
-	 * @param offset
-	 *            the start offset of the range
-	 * @param length
-	 *            the length of the range
-	 * @param styler
-	 *            the styler to set
-	 * 
-	 * @throws StringIndexOutOfBoundsException
-	 *             if <code>start</code> is less than zero, or if offset plus
-	 *             length is greater than the length of this object.
-	 */
-	public void setStyle(int offset, int length, Styler styler) throws StringIndexOutOfBoundsException {
-		if (offset < 0 || offset + length > fBuffer.length()) {
-			throw new StringIndexOutOfBoundsException(
-					"Invalid offset (" + offset + ") or length (" + length + ")"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-		}
-		if (length == 0) {
-			return;
-		}
-		final StyleRun lastRun= getLastRun();
-		if (lastRun == null || lastRun.offset <= offset) {
-			Styler lastStyler = lastRun == null ? null : lastRun.style;
-			appendStyleRun(styler, offset);
-			if (offset + length != fBuffer.length()) {
-				appendStyleRun(lastStyler, offset + length);
-			}
-			return;
-		}
-
-		int endRun = findRun(offset + length);
-		if (endRun >= 0) {
-			// run with the same end index, nothing to change
-		} else {
-			endRun = -(endRun + 1);
-			if (offset + length < fBuffer.length()) {
-				Styler prevStyle = endRun > 0 ? fStyleRuns.getRun(endRun - 1).style
-						: null;
-				fStyleRuns
-						.add(endRun, new StyleRun(offset + length, prevStyle));
-			}
-		}
-
-		int startRun = findRun(offset);
-		if (startRun >= 0) {
-			// run with the same start index
-			StyleRun styleRun = fStyleRuns.getRun(startRun);
-			styleRun.style = styler;
-		} else {
-			startRun = -(startRun + 1);
-
-			Styler prevStyle = startRun > 0 ? fStyleRuns.getRun(startRun - 1).style
-					: null;
-			if (isDifferentStyle(prevStyle, styler)
-					|| (startRun == 0 && styler != null)) {
-				fStyleRuns.add(startRun, new StyleRun(offset, styler));
-				endRun++; // endrun is moved one back
-			} else {
-				startRun--; // we use the previous
-			}
-		}
-		if (startRun + 1 < endRun) {
-			fStyleRuns.removeRange(startRun + 1, endRun);
-		}
-	}
-
-	/**
-	 * Returns an array of {@link StyleRange} resulting from applying all
-	 * associated stylers for this string builder.
-	 * 
-	 * @return an array of all {@link StyleRange} resulting from applying the
-	 *         stored stylers to this string.
-	 */
-	public StyleRange[] getStyleRanges() {
-		if (hasRuns()) {
-			ArrayList res = new ArrayList();
-
-			List styleRuns = getStyleRuns();
-			int offset = 0;
-			Styler style = null;
-			for (int i = 0; i < styleRuns.size(); i++) {
-				StyleRun curr = (StyleRun) styleRuns.get(i);
-				if (isDifferentStyle(curr.style, style)) {
-					if (curr.offset > offset && style != null) {
-						res.add(createStyleRange(offset, curr.offset, style));
-					}
-					offset = curr.offset;
-					style = curr.style;
-				}
-			}
-			if (fBuffer.length() > offset && style != null) {
-				res.add(createStyleRange(offset, fBuffer.length(), style));
-			}
-			return (StyleRange[]) res.toArray(new StyleRange[res.size()]);
-		}
-		return EMPTY;
-	}
-
-	private int findRun(int offset) {
-		// method assumes that fStyleRuns is not null
-		int low = 0;
-		int high = fStyleRuns.size() - 1;
-		while (low <= high) {
-			int mid = (low + high) / 2;
-			StyleRun styleRun = fStyleRuns.getRun(mid);
-			if (styleRun.offset < offset) {
-				low = mid + 1;
-			} else if (styleRun.offset > offset) {
-				high = mid - 1;
-			} else {
-				return mid; // key found
-			}
-		}
-		return -(low + 1); // key not found.
-	}
-
-	private StyleRange createStyleRange(int start, int end, Styler style) {
-		StyleRange styleRange = new StyleRange();
-		styleRange.start = start;
-		styleRange.length = end - start;
-		style.applyStyles(styleRange);
-		return styleRange;
-	}
-
-	private boolean hasRuns() {
-		return fStyleRuns != null && !fStyleRuns.isEmpty();
-	}
-
-	private void appendStyleRun(Styler style, int offset) {
-		StyleRun lastRun = getLastRun();
-		if (lastRun != null && lastRun.offset == offset) {
-			lastRun.style = style;
-			return;
-		}
-
-		if (lastRun == null && style != null || lastRun != null
-				&& isDifferentStyle(style, lastRun.style)) {
-			getStyleRuns().add(new StyleRun(offset, style));
-		}
-	}
-
-	private boolean isDifferentStyle(Styler style1, Styler style2) {
-		if (style1 == null) {
-			return style2 != null;
-		}
-		return !style1.equals(style2);
-	}
-
-	private StyleRun getLastRun() {
-		if (fStyleRuns == null || fStyleRuns.isEmpty()) {
-			return null;
-		}
-		return fStyleRuns.getRun(fStyleRuns.size() - 1);
-	}
-
-	private StyleRunList getStyleRuns() {
-		if (fStyleRuns == null)
-			fStyleRuns = new StyleRunList();
-		return fStyleRuns;
-	}
-
-	private static class StyleRun {
-		public int offset;
-		public Styler style;
-
-		public StyleRun(int offset, Styler style) {
-			this.offset = offset;
-			this.style = style;
-		}
-
-		public String toString() {
-			return "Offset " + offset + ", style: " + style; //$NON-NLS-1$//$NON-NLS-2$
-		}
-	}
-
-	private static class StyleRunList extends ArrayList {
-		private static final long serialVersionUID = 123L;
-
-		public StyleRunList() {
-			super(3);
-		}
-
-		public StyleRun getRun(int index) {
-			return (StyleRun) get(index);
-		}
-
-		public void removeRange(int fromIndex, int toIndex) {
-			super.removeRange(fromIndex, toIndex);
-		}
-	}
-
-	private static class DefaultStyler extends Styler {
-		private final String fForegroundColorName;
-		private final String fBackgroundColorName;
-
-		public DefaultStyler(String foregroundColorName,
-				String backgroundColorName) {
-			fForegroundColorName = foregroundColorName;
-			fBackgroundColorName = backgroundColorName;
-		}
-
-		public void applyStyles(TextStyle textStyle) {
-			ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
-			if (fForegroundColorName != null) {
-				textStyle.foreground = colorRegistry.get(fForegroundColorName);
-			}
-			if (fBackgroundColorName != null) {
-				textStyle.background = colorRegistry.get(fBackgroundColorName);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java
deleted file mode 100644
index 2000b97..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableColumnViewerLabelProvider.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-
-/**
- * TableColumnViewerLabelProvider is the mapping from the table based providers
- * to the ViewerLabelProvider.
- * 
- * @since 3.3
- * @see ITableLabelProvider
- * @see ITableColorProvider
- * @see ITableFontProvider
- * 
- */
-class TableColumnViewerLabelProvider extends WrappedViewerLabelProvider {
-
-	private ITableLabelProvider tableLabelProvider;
-
-	private ITableColorProvider tableColorProvider;
-
-	private ITableFontProvider tableFontProvider;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param labelProvider
-	 *            instance of a table based label provider
-	 * @see ITableLabelProvider
-	 * @see ITableColorProvider
-	 * @see ITableFontProvider
-	 */
-	public TableColumnViewerLabelProvider(IBaseLabelProvider labelProvider) {
-		super(labelProvider);
-
-		if (labelProvider instanceof ITableLabelProvider)
-			tableLabelProvider = (ITableLabelProvider) labelProvider;
-
-		if (labelProvider instanceof ITableColorProvider)
-			tableColorProvider = (ITableColorProvider) labelProvider;
-
-		if (labelProvider instanceof ITableFontProvider)
-			tableFontProvider = (ITableFontProvider) labelProvider;
-	}
-
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.WrappedViewerLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	public void update(ViewerCell cell) {
-
-		Object element = cell.getElement();
-		int index = cell.getColumnIndex();
-
-		if (tableLabelProvider == null) {
-			cell.setText(getLabelProvider().getText(element));
-			cell.setImage(getLabelProvider().getImage(element));
-		} else {
-			cell.setText(tableLabelProvider.getColumnText(element, index));
-			cell.setImage(tableLabelProvider.getColumnImage(element, index));
-		}
-
-		if (tableColorProvider == null) {
-			if (getColorProvider() != null) {
-				cell.setBackground(getColorProvider().getBackground(element));
-				cell.setForeground(getColorProvider().getForeground(element));
-			}
-
-		} else {
-			cell.setBackground(tableColorProvider
-					.getBackground(element, index));
-			cell.setForeground(tableColorProvider
-					.getForeground(element, index));
-
-		}
-
-		if (tableFontProvider == null) {
-			if (getFontProvider() != null)
-				cell.setFont(getFontProvider().getFont(element));
-		} else
-			cell.setFont(tableFontProvider.getFont(element, index));
-
-	}
-
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableLayout.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableLayout.java
deleted file mode 100644
index aa6fdab..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableLayout.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Florian Priester - bug 106059
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * A layout for a table. Call <code>addColumnData</code> to add columns.
- * The TableLayout {@link ColumnLayoutData} is only valid until the table
- * is resized. To keep the proportions constant when the table is resized 
- * see {@link TableColumnLayout}
- */
-public class TableLayout extends Layout {
-
-	/**
-	 * The number of extra pixels taken as horizontal trim by the table column.
-	 * To ensure there are N pixels available for the content of the column,
-	 * assign N+COLUMN_TRIM for the column width.
-	 * 
-	 * @since 3.1
-	 */
-	private static int COLUMN_TRIM;
-
-	static {
-		if (Util.isWindows()) {
-			COLUMN_TRIM = 4;
-		} else if (Util.isMac()) {
-			COLUMN_TRIM = 24;
-		} else {
-			COLUMN_TRIM = 3;
-		}
-	}
-
-	/**
-	 * The list of column layout data (element type:
-	 * <code>ColumnLayoutData</code>).
-	 */
-	private List columns = new ArrayList();
-
-	/**
-	 * Indicates whether <code>layout</code> has yet to be called.
-	 */
-	private boolean firstTime = true;
-
-	/**
-	 * Creates a new table layout.
-	 */
-	public TableLayout() {
-	}
-
-	/**
-	 * Adds a new column of data to this table layout.
-	 * 
-	 * @param data
-	 *            the column layout data
-	 */
-	public void addColumnData(ColumnLayoutData data) {
-		columns.add(data);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Layout.
-	 */
-	public Point computeSize(Composite c, int wHint, int hHint, boolean flush) {
-		if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-			return new Point(wHint, hHint);
-		}
-
-		Table table = (Table) c;
-		// To avoid recursions.
-		table.setLayout(null);
-		// Use native layout algorithm
-		Point result = table.computeSize(wHint, hHint, flush);
-		table.setLayout(this);
-
-		int width = 0;
-		int size = columns.size();
-		for (int i = 0; i < size; ++i) {
-			ColumnLayoutData layoutData = (ColumnLayoutData) columns.get(i);
-			if (layoutData instanceof ColumnPixelData) {
-				ColumnPixelData col = (ColumnPixelData) layoutData;
-				width += col.width;
-				if (col.addTrim) {
-					width += COLUMN_TRIM;
-				}
-			} else if (layoutData instanceof ColumnWeightData) {
-				ColumnWeightData col = (ColumnWeightData) layoutData;
-				width += col.minimumWidth;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data");//$NON-NLS-1$
-			}
-		}
-		if (width > result.x) {
-			result.x = width;
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Layout.
-	 */
-	public void layout(Composite c, boolean flush) {
-		// Only do initial layout. Trying to maintain proportions when resizing
-		// is too hard,
-		// causes lots of widget flicker, causes scroll bars to appear and
-		// occasionally stick around (on Windows),
-		// requires hooking column resizing as well, and may not be what the
-		// user wants anyway.
-		if (!firstTime) {
-			return;
-		}
-
-		int width = c.getClientArea().width;
-
-		// XXX: Layout is being called with an invalid value the first time
-		// it is being called on Linux. This method resets the
-		// Layout to null so we make sure we run it only when
-		// the value is OK.
-		if (width <= 1) {
-			return;
-		}
-
-		Item[] tableColumns = getColumns(c);
-		int size = Math.min(columns.size(), tableColumns.length);
-		int[] widths = new int[size];
-		int fixedWidth = 0;
-		int numberOfWeightColumns = 0;
-		int totalWeight = 0;
-
-		// First calc space occupied by fixed columns
-		for (int i = 0; i < size; i++) {
-			ColumnLayoutData col = (ColumnLayoutData) columns.get(i);
-			if (col instanceof ColumnPixelData) {
-				ColumnPixelData cpd = (ColumnPixelData) col;
-				int pixels = cpd.width;
-				if (cpd.addTrim) {
-					pixels += COLUMN_TRIM;
-				}
-				widths[i] = pixels;
-				fixedWidth += pixels;
-			} else if (col instanceof ColumnWeightData) {
-				ColumnWeightData cw = (ColumnWeightData) col;
-				numberOfWeightColumns++;
-				// first time, use the weight specified by the column data,
-				// otherwise use the actual width as the weight
-				// int weight = firstTime ? cw.weight :
-				// tableColumns[i].getWidth();
-				int weight = cw.weight;
-				totalWeight += weight;
-			} else {
-				Assert.isTrue(false, "Unknown column layout data");//$NON-NLS-1$
-			}
-		}
-
-		// Do we have columns that have a weight
-		if (numberOfWeightColumns > 0) {
-			// Now distribute the rest to the columns with weight.
-			int rest = width - fixedWidth;
-			int totalDistributed = 0;
-			for (int i = 0; i < size; ++i) {
-				ColumnLayoutData col = (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					ColumnWeightData cw = (ColumnWeightData) col;
-					// calculate weight as above
-					// int weight = firstTime ? cw.weight :
-					// tableColumns[i].getWidth();
-					int weight = cw.weight;
-					int pixels = totalWeight == 0 ? 0 : weight * rest
-							/ totalWeight;
-					if (pixels < cw.minimumWidth) {
-						pixels = cw.minimumWidth;
-					}
-					totalDistributed += pixels;
-					widths[i] = pixels;
-				}
-			}
-
-			// Distribute any remaining pixels to columns with weight.
-			int diff = rest - totalDistributed;
-			for (int i = 0; diff > 0; ++i) {
-				if (i == size) {
-					i = 0;
-				}
-				ColumnLayoutData col = (ColumnLayoutData) columns.get(i);
-				if (col instanceof ColumnWeightData) {
-					++widths[i];
-					--diff;
-				}
-			}
-		}
-
-		firstTime = false;
-
-		for (int i = 0; i < size; i++) {
-			setWidth(tableColumns[i], widths[i]);
-		}
-	}
-
-	/**
-	 * Set the width of the item.
-	 * 
-	 * @param item
-	 * @param width
-	 */
-	private void setWidth(Item item, int width) {
-		if (item instanceof TreeColumn) {
-			((TreeColumn) item).setWidth(width);
-		} else {
-			((TableColumn) item).setWidth(width);
-		}
-
-	}
-
-	/**
-	 * Return the columns for the receiver.
-	 * 
-	 * @param composite
-	 * @return Item[]
-	 */
-	private Item[] getColumns(Composite composite) {
-		if (composite instanceof Tree) {
-			return ((Tree) composite).getColumns();
-		}
-		return ((Table) composite).getColumns();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableTreeViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableTreeViewer.java
deleted file mode 100644
index e8f0fb6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableTreeViewer.java
+++ /dev/null
@@ -1,859 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - bug 153993
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableTree;
-import org.eclipse.swt.custom.TableTreeEditor;
-import org.eclipse.swt.custom.TableTreeItem;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.TreeListener;
-import org.eclipse.swt.graphics.Image;
-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.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A concrete viewer based on a SWT <code>TableTree</code> control.
- * <p>
- * This class is not intended to be subclassed outside the viewer framework. It
- * is designed to be instantiated with a pre-existing SWT table tree control and
- * configured with a domain-specific content provider, label provider, element
- * filter (optional), and element sorter (optional).
- * </p>
- * <p>
- * Content providers for table tree viewers must implement the
- * <code>ITreeContentProvider</code> interface.
- * </p>
- * <p>
- * Label providers for table tree viewers must implement either the
- * <code>ITableLabelProvider</code> or the <code>ILabelProvider</code>
- * interface (see <code>TableTreeViewer.setLabelProvider</code> for more
- * details).
- * </p>
- * 
- * @deprecated As of 3.1 use {@link TreeViewer} instead
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class TableTreeViewer extends AbstractTreeViewer {
-	/**
-	 * Internal table viewer implementation.
-	 */
-	private TableTreeEditorImpl tableEditorImpl;
-
-	/**
-	 * This viewer's table tree control.
-	 */
-	private TableTree tableTree;
-
-	/**
-	 * This viewer's table tree editor.
-	 */
-	private TableTreeEditor tableTreeEditor;
-
-	/**
-	 * Copied from original TableEditorImpl and moved here since refactoring
-	 * completely wiped out the original implementation in 3.3
-	 * 
-	 * @since 3.1
-	 */
-	class TableTreeEditorImpl {
-
-		private CellEditor cellEditor;
-
-		private CellEditor[] cellEditors;
-
-		private ICellModifier cellModifier;
-
-		private String[] columnProperties;
-
-		private Item tableItem;
-
-		private int columnNumber;
-
-		private ICellEditorListener cellEditorListener;
-
-		private FocusListener focusListener;
-
-		private MouseListener mouseListener;
-
-		private int doubleClickExpirationTime;
-
-		private ColumnViewer viewer;
-
-		private TableTreeEditorImpl(ColumnViewer viewer) {
-			this.viewer = viewer;
-			initCellEditorListener();
-		}
-
-		/**
-		 * Returns this <code>TableViewerImpl</code> viewer
-		 * 
-		 * @return the viewer
-		 */
-		public ColumnViewer getViewer() {
-			return viewer;
-		}
-
-		private void activateCellEditor() {
-			if( cellEditors != null ) {
-				if( cellEditors[columnNumber] != null && cellModifier != null ) {
-					Object element = tableItem.getData();
-					String property = columnProperties[columnNumber];
-					
-					if( cellModifier.canModify(element, property) ) {
-						cellEditor = cellEditors[columnNumber];
-						
-						cellEditor.addListener(cellEditorListener);
-						
-						Object value = cellModifier.getValue(element, property);
-						cellEditor.setValue(value);
-						// Tricky flow of control here:
-						// activate() can trigger callback to cellEditorListener
-						// which will clear cellEditor
-						// so must get control first, but must still call activate()
-						// even if there is no control.
-						final Control control = cellEditor.getControl();
-						cellEditor.activate();
-						if (control == null) {
-							return;
-						}
-						setLayoutData(cellEditor.getLayoutData());
-						setEditor(control, tableItem, columnNumber);
-						cellEditor.setFocus();
-						if (focusListener == null) {
-							focusListener = new FocusAdapter() {
-								public void focusLost(FocusEvent e) {
-									applyEditorValue();
-								}
-							};
-						}
-						control.addFocusListener(focusListener);
-						mouseListener = new MouseAdapter() {
-							public void mouseDown(MouseEvent e) {
-								// time wrap?
-								// check for expiration of doubleClickTime
-								if (e.time <= doubleClickExpirationTime) {
-									control.removeMouseListener(mouseListener);
-									cancelEditing();
-									handleDoubleClickEvent();
-								} else if (mouseListener != null) {
-									control.removeMouseListener(mouseListener);
-								}
-							}
-						};
-						control.addMouseListener(mouseListener);
-					}
-				}
-			}
-		}
-
-		/**
-		 * Activate a cell editor for the given mouse position.
-		 */
-		private void activateCellEditor(MouseEvent event) {
-			if (tableItem == null || tableItem.isDisposed()) {
-				// item no longer exists
-				return;
-			}
-			int columnToEdit;
-			int columns = getColumnCount();
-			if (columns == 0) {
-				// If no TableColumn, Table acts as if it has a single column
-				// which takes the whole width.
-				columnToEdit = 0;
-			} else {
-				columnToEdit = -1;
-				for (int i = 0; i < columns; i++) {
-					Rectangle bounds = getBounds(tableItem, i);
-					if (bounds.contains(event.x, event.y)) {
-						columnToEdit = i;
-						break;
-					}
-				}
-				if (columnToEdit == -1) {
-					return;
-				}
-			}
-
-			columnNumber = columnToEdit;
-			activateCellEditor();
-		}
-
-		/**
-		 * Deactivates the currently active cell editor.
-		 */
-		public void applyEditorValue() {
-			CellEditor c = this.cellEditor;
-			if (c != null) {
-				// null out cell editor before calling save
-				// in case save results in applyEditorValue being re-entered
-				// see 1GAHI8Z: ITPUI:ALL - How to code event notification when
-				// using cell editor ?
-				this.cellEditor = null;
-				Item t = this.tableItem;
-				// don't null out table item -- same item is still selected
-				if (t != null && !t.isDisposed()) {
-					saveEditorValue(c, t);
-				}
-				setEditor(null, null, 0);
-				c.removeListener(cellEditorListener);
-				Control control = c.getControl();
-				if (control != null) {
-					if (mouseListener != null) {
-						control.removeMouseListener(mouseListener);
-					}
-					if (focusListener != null) {
-						control.removeFocusListener(focusListener);
-					}
-				}
-				c.deactivate();
-			}
-		}
-
-		/**
-		 * Cancels the active cell editor, without saving the value back to the
-		 * domain model.
-		 */
-		public void cancelEditing() {
-			if (cellEditor != null) {
-				setEditor(null, null, 0);
-				cellEditor.removeListener(cellEditorListener);
-				CellEditor oldEditor = cellEditor;
-				cellEditor = null;
-				oldEditor.deactivate();
-			}
-		}
-
-		/**
-		 * Start editing the given element.
-		 * 
-		 * @param element
-		 * @param column
-		 */
-		public void editElement(Object element, int column) {
-			if (cellEditor != null) {
-				applyEditorValue();
-			}
-
-			setSelection(new StructuredSelection(element), true);
-			Item[] selection = getSelection();
-			if (selection.length != 1) {
-				return;
-			}
-
-			tableItem = selection[0];
-
-			// Make sure selection is visible
-			showSelection();
-			columnNumber = column;
-			activateCellEditor();
-
-		}
-
-		/**
-		 * Return the array of CellEditors used in the viewer
-		 * 
-		 * @return the cell editors
-		 */
-		public CellEditor[] getCellEditors() {
-			return cellEditors;
-		}
-
-		/**
-		 * Get the cell modifier
-		 * 
-		 * @return the cell modifier
-		 */
-		public ICellModifier getCellModifier() {
-			return cellModifier;
-		}
-
-		/**
-		 * Return the properties for the column
-		 * 
-		 * @return the array of column properties
-		 */
-		public Object[] getColumnProperties() {
-			return columnProperties;
-		}
-
-		/**
-		 * Handles the mouse down event; activates the cell editor.
-		 * 
-		 * @param event
-		 *            the mouse event that should be handled
-		 */
-		public void handleMouseDown(MouseEvent event) {
-			if (event.button != 1) {
-				return;
-			}
-
-			if (cellEditor != null) {
-				applyEditorValue();
-			}
-
-			// activate the cell editor immediately. If a second mouseDown
-			// is received prior to the expiration of the doubleClick time then
-			// the cell editor will be deactivated and a doubleClick event will
-			// be processed.
-			//
-			doubleClickExpirationTime = event.time
-					+ Display.getCurrent().getDoubleClickTime();
-
-			Item[] items = getSelection();
-			// Do not edit if more than one row is selected.
-			if (items.length != 1) {
-				tableItem = null;
-				return;
-			}
-			tableItem = items[0];
-			
-			activateCellEditor(event);
-		}
-
-		private void initCellEditorListener() {
-			cellEditorListener = new ICellEditorListener() {
-				public void editorValueChanged(boolean oldValidState,
-						boolean newValidState) {
-					// Ignore.
-				}
-
-				public void cancelEditor() {
-					TableTreeEditorImpl.this.cancelEditing();
-				}
-
-				public void applyEditorValue() {
-					TableTreeEditorImpl.this.applyEditorValue();
-				}
-			};
-		}
-
-		/**
-		 * Return whether there is an active cell editor.
-		 * 
-		 * @return <code>true</code> if there is an active cell editor;
-		 *         otherwise <code>false</code> is returned.
-		 */
-		public boolean isCellEditorActive() {
-			return cellEditor != null;
-		}
-
-		/**
-		 * Saves the value of the currently active cell editor, by delegating to
-		 * the cell modifier.
-		 */
-		private void saveEditorValue(CellEditor cellEditor, Item tableItem) {
-			if( cellModifier != null ) {
-				if( ! cellEditor.isValueValid() ) {
-					// Do what????
-				}
-			}
-			String property = null;
-			
-			if( columnProperties != null && columnNumber < columnProperties.length ) {
-				property = columnProperties[columnNumber];
-			}
-			cellModifier.modify(tableItem, property, cellEditor.getValue());
-		}
-
-		/**
-		 * Set the cell editors
-		 * 
-		 * @param editors
-		 */
-		public void setCellEditors(CellEditor[] editors) {
-			this.cellEditors = editors;
-		}
-
-		/**
-		 * Set the cell modifier
-		 * 
-		 * @param modifier
-		 */
-		public void setCellModifier(ICellModifier modifier) {
-			this.cellModifier = modifier;
-		}
-
-		/**
-		 * Set the column properties
-		 * 
-		 * @param columnProperties
-		 */
-		public void setColumnProperties(String[] columnProperties) {
-			this.columnProperties = columnProperties;
-		}
-
-		Rectangle getBounds(Item item, int columnNumber) {
-			return ((TableTreeItem) item).getBounds(columnNumber);
-		}
-
-		int getColumnCount() {
-			// getColumnCount() should be a API in TableTree.
-			return getTableTree().getTable().getColumnCount();
-		}
-
-		Item[] getSelection() {
-			return getTableTree().getSelection();
-		}
-
-		void setEditor(Control w, Item item, int columnNumber) {
-			tableTreeEditor.setEditor(w, (TableTreeItem) item, columnNumber);
-		}
-
-		void setSelection(StructuredSelection selection, boolean b) {
-			TableTreeViewer.this.setSelection(selection, b);
-		}
-
-		void showSelection() {
-			getTableTree().showSelection();
-		}
-
-		void setLayoutData(CellEditor.LayoutData layoutData) {
-			tableTreeEditor.horizontalAlignment = layoutData.horizontalAlignment;
-			tableTreeEditor.grabHorizontal = layoutData.grabHorizontal;
-			tableTreeEditor.minimumWidth = layoutData.minimumWidth;
-		}
-
-		void handleDoubleClickEvent() {
-			Viewer viewer = getViewer();
-			fireDoubleClick(new DoubleClickEvent(viewer, viewer.getSelection()));
-			fireOpen(new OpenEvent(viewer, viewer.getSelection()));
-		}
-	}
-
-	/**
-	 * Creates a table tree viewer on the given table tree control. The viewer
-	 * has no input, no content provider, a default label provider, no sorter,
-	 * and no filters.
-	 * 
-	 * @param tree
-	 *            the table tree control
-	 */
-	public TableTreeViewer(TableTree tree) {
-		super();
-		tableTree = tree;
-		hookControl(tree);
-		tableTreeEditor = new TableTreeEditor(tableTree);
-		tableEditorImpl = new TableTreeEditorImpl(this);
-	}
-
-	/**
-	 * Creates a table tree viewer on a newly-created table tree control under
-	 * the given parent. The table tree control is created using the SWT style
-	 * bits <code>MULTI, H_SCROLL, V_SCROLL, and BORDER</code>. The viewer
-	 * has no input, no content provider, a default label provider, no sorter,
-	 * and no filters.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 */
-	public TableTreeViewer(Composite parent) {
-		this(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-	}
-
-	/**
-	 * Creates a table tree viewer on a newly-created table tree control under
-	 * the given parent. The table tree control is created using the given SWT
-	 * style bits. The viewer has no input, no content provider, a default label
-	 * provider, no sorter, and no filters.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @param style
-	 *            the SWT style bits
-	 */
-	public TableTreeViewer(Composite parent, int style) {
-		this(new TableTree(parent, style));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected void addTreeListener(Control c, TreeListener listener) {
-		((TableTree) c).addTreeListener(listener);
-	}
-
-	/**
-	 * Cancels a currently active cell editor. All changes already done in the
-	 * cell editor are lost.
-	 */
-	public void cancelEditing() {
-		tableEditorImpl.cancelEditing();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected void doUpdateItem(Item item, Object element) {
-		// update icon and label
-		// Similar code in TableTreeViewer.doUpdateItem()
-		IBaseLabelProvider prov = getLabelProvider();
-		ITableLabelProvider tprov = null;
-
-		if (prov instanceof ITableLabelProvider) {
-			tprov = (ITableLabelProvider) prov;
-		}
-
-		int columnCount = tableTree.getTable().getColumnCount();
-		TableTreeItem ti = (TableTreeItem) item;
-		// Also enter loop if no columns added. See 1G9WWGZ: JFUIF:WINNT -
-		// TableViewer with 0 columns does not work
-		for (int column = 0; column < columnCount || column == 0; column++) {
-			String text = "";//$NON-NLS-1$
-			Image image = null;
-			if (tprov != null) {
-				text = tprov.getColumnText(element, column);
-				image = tprov.getColumnImage(element, column);
-			} else {
-				if (column == 0) {
-					ViewerLabel updateLabel = new ViewerLabel(item.getText(),
-							item.getImage());
-					buildLabel(updateLabel, element);
-
-					// As it is possible for user code to run the event
-					// loop check here.
-					if (item.isDisposed()) {
-						unmapElement(element, item);
-						return;
-					}
-
-					text = updateLabel.getText();
-					image = updateLabel.getImage();
-				}
-			}
-
-			// Avoid setting text to null
-			if (text == null) {
-				text = ""; //$NON-NLS-1$
-			}
-
-			ti.setText(column, text);
-			// Apparently a problem to setImage to null if already null
-			if (ti.getImage(column) != image) {
-				ti.setImage(column, image);
-			}
-
-			getColorAndFontCollector().setFontsAndColors(element);
-			getColorAndFontCollector().applyFontsAndColors(ti);
-		}
-
-	}
-
-	/**
-	 * Starts editing the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 * @param column
-	 *            the column number
-	 */
-	public void editElement(Object element, int column) {
-		tableEditorImpl.editElement(element, column);
-	}
-
-	/**
-	 * Returns the cell editors of this viewer.
-	 * 
-	 * @return the list of cell editors
-	 */
-	public CellEditor[] getCellEditors() {
-		return tableEditorImpl.getCellEditors();
-	}
-
-	/**
-	 * Returns the cell modifier of this viewer.
-	 * 
-	 * @return the cell modifier
-	 */
-	public ICellModifier getCellModifier() {
-		return tableEditorImpl.getCellModifier();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected Item[] getChildren(Widget o) {
-		if (o instanceof TableTreeItem) {
-			return ((TableTreeItem) o).getItems();
-		}
-		if (o instanceof TableTree) {
-			return ((TableTree) o).getItems();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#getChild(org.eclipse.swt.widgets.Widget,
-	 *      int)
-	 */
-	protected Item getChild(Widget widget, int index) {
-		if (widget instanceof TableTreeItem) {
-			return ((TableTreeItem) widget).getItem(index);
-		}
-		if (widget instanceof TableTree) {
-			return ((TableTree) widget).getItem(index);
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the column properties of this viewer. The properties must
-	 * correspond with the columns of the table control. They are used to
-	 * identify the column in a cell modifier.
-	 * 
-	 * @return the list of column properties
-	 */
-	public Object[] getColumnProperties() {
-		return tableEditorImpl.getColumnProperties();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Viewer.
-	 */
-	public Control getControl() {
-		return tableTree;
-	}
-
-	/**
-	 * Returns the element with the given index from this viewer. Returns
-	 * <code>null</code> if the index is out of range.
-	 * <p>
-	 * This method is internal to the framework.
-	 * </p>
-	 * 
-	 * @param index
-	 *            the zero-based index
-	 * @return the element at the given index, or <code>null</code> if the
-	 *         index is out of range
-	 */
-	public Object getElementAt(int index) {
-		// XXX: Workaround for 1GBCSB1: SWT:WIN2000 - TableTree should have
-		// getItem(int index)
-		TableTreeItem i = tableTree.getItems()[index];
-		if (i != null) {
-			return i.getData();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected boolean getExpanded(Item item) {
-		return ((TableTreeItem) item).getExpanded();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getItemAt(org.eclipse.swt.graphics.Point)
-	 */
-	protected Item getItemAt(Point p) {
-		return getTableTree().getTable().getItem(p);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected int getItemCount(Control widget) {
-		return ((TableTree) widget).getItemCount();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected int getItemCount(Item item) {
-		return ((TableTreeItem) item).getItemCount();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected org.eclipse.swt.widgets.Item[] getItems(
-			org.eclipse.swt.widgets.Item item) {
-		return ((TableTreeItem) item).getItems();
-	}
-
-	/**
-	 * The table tree viewer implementation of this <code>Viewer</code>
-	 * framework method returns the label provider, which in the case of table
-	 * tree viewers will be an instance of either
-	 * <code>ITableLabelProvider</code> or <code>ILabelProvider</code>. If
-	 * it is an <code>ITableLabelProvider</code>, then it provides a separate
-	 * label text and image for each column. If it is an
-	 * <code>ILabelProvider</code>, then it provides only the label text and
-	 * image for the first column, and any remaining columns are blank.
-	 */
-	public IBaseLabelProvider getLabelProvider() {
-		return super.getLabelProvider();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected Item getParentItem(Item item) {
-		return ((TableTreeItem) item).getParentItem();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected Item[] getSelection(Control widget) {
-		return ((TableTree) widget).getSelection();
-	}
-
-	/**
-	 * Returns this table tree viewer's table tree control.
-	 * 
-	 * @return the table tree control
-	 */
-	public TableTree getTableTree() {
-		return tableTree;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on AbstractTreeViewer.
-	 */
-	protected void hookControl(Control control) {
-		super.hookControl(control);
-		tableTree.getTable().addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent e) {
-				/*
-				 * If user clicked on the [+] or [-], do not activate
-				 * CellEditor.
-				 */
-				// XXX: This code should not be here. SWT should either have
-				// support to see
-				// if the user clicked on the [+]/[-] or manage the table editor
-				// activation
-				org.eclipse.swt.widgets.TableItem[] items = tableTree
-						.getTable().getItems();
-				for (int i = 0; i < items.length; i++) {
-					Rectangle rect = items[i].getImageBounds(0);
-					if (rect.contains(e.x, e.y)) {
-						return;
-					}
-				}
-
-				tableEditorImpl.handleMouseDown(e);
-			}
-		});
-	}
-
-	/**
-	 * Returns whether there is an active cell editor.
-	 * 
-	 * @return <code>true</code> if there is an active cell editor, and
-	 *         <code>false</code> otherwise
-	 */
-	public boolean isCellEditorActive() {
-		return tableEditorImpl.isCellEditorActive();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected Item newItem(Widget parent, int flags, int ix) {
-		TableTreeItem item;
-		if (ix >= 0) {
-			if (parent instanceof TableTreeItem) {
-				item = new TableTreeItem((TableTreeItem) parent, flags, ix);
-			} else {
-				item = new TableTreeItem((TableTree) parent, flags, ix);
-			}
-		} else {
-			if (parent instanceof TableTreeItem) {
-				item = new TableTreeItem((TableTreeItem) parent, flags);
-			} else {
-				item = new TableTreeItem((TableTree) parent, flags);
-			}
-		}
-		return item;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void removeAll(Control widget) {
-		((TableTree) widget).removeAll();
-	}
-
-	/**
-	 * Sets the cell editors of this table viewer.
-	 * 
-	 * @param editors
-	 *            the list of cell editors
-	 */
-	public void setCellEditors(CellEditor[] editors) {
-		tableEditorImpl.setCellEditors(editors);
-	}
-
-	/**
-	 * Sets the cell modifier of this table viewer.
-	 * 
-	 * @param modifier
-	 *            the cell modifier
-	 */
-	public void setCellModifier(ICellModifier modifier) {
-		tableEditorImpl.setCellModifier(modifier);
-	}
-
-	/**
-	 * Sets the column properties of this table viewer. The properties must
-	 * correspond with the columns of the table control. They are used to
-	 * identify the column in a cell modifier.
-	 * 
-	 * @param columnProperties
-	 *            the list of column properties
-	 */
-	public void setColumnProperties(String[] columnProperties) {
-		tableEditorImpl.setColumnProperties(columnProperties);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void setExpanded(Item node, boolean expand) {
-		((TableTreeItem) node).setExpanded(expand);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void setSelection(List items) {
-		TableTreeItem[] newItems = new TableTreeItem[items.size()];
-		items.toArray(newItems);
-		getTableTree().setSelection(newItems);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void showItem(Item item) {
-		getTableTree().showItem((TableTreeItem) item);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewer.java
deleted file mode 100644
index a40bf18..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewer.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - concept of ViewerRow,
- *                                                 fix for 159597, refactoring (bug 153993),
- *                                                 widget-independency (bug 154329), fix for 187826, 191468
- *     Peter Centgraf - bug 251575
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A concrete viewer based on a SWT <code>Table</code> control.
- * <p>
- * This class is not intended to be subclassed outside the viewer framework. It
- * is designed to be instantiated with a pre-existing SWT table control and
- * configured with a domain-specific content provider, table label provider,
- * element filter (optional), and element sorter (optional).
- * </p>
- * <p>
- * Label providers for table viewers must implement either the
- * <code>ITableLabelProvider</code> or the <code>ILabelProvider</code> interface
- * (see <code>TableViewer.setLabelProvider</code> for more details).
- * </p>
- * <p>
- * As of 3.1 the TableViewer now supports the SWT.VIRTUAL flag. If the
- * underlying table is SWT.VIRTUAL, the content provider may implement {@link
- * ILazyContentProvider} instead of {@link IStructuredContentProvider} . Note
- * that in this case, the viewer does not support sorting or filtering. Also
- * note that in this case, the Widget based APIs may return null if the element
- * is not specified or not created yet.
- * </p>
- * <p>
- * Users of SWT.VIRTUAL should also avoid using getItems() from the Table within
- * the TreeViewer as this does not necessarily generate a callback for the
- * TreeViewer to populate the items. It also has the side effect of creating all
- * of the items thereby eliminating the performance improvements of SWT.VIRTUAL.
- * </p>
- * <p>
- * Users setting up an editable table with more than 1 column <b>have</b> to pass the
- * SWT.FULL_SELECTION style bit
- * </p>
- * 
- * @see SWT#VIRTUAL
- * @see #doFindItem(Object)
- * @see #internalRefresh(Object, boolean)
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class TableViewer extends AbstractTableViewer {
-	/**
-	 * This viewer's table control.
-	 */
-	private Table table;
-
-	/**
-	 * The cached row which is reused all over
-	 */
-	private TableViewerRow cachedRow;
-
-	/**
-	 * Creates a table viewer on a newly-created table control under the given
-	 * parent. The table control is created using the SWT style bits
-	 * <code>MULTI, H_SCROLL, V_SCROLL,</code> and <code>BORDER</code>. The
-	 * viewer has no input, no content provider, a default label provider, no
-	 * sorter, and no filters. The table has no columns.
-	 * 
-	 * @param parent
-	 * 		the parent control
-	 */
-	public TableViewer(Composite parent) {
-		this(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-	}
-
-	/**
-	 * Creates a table viewer on a newly-created table control under the given
-	 * parent. The table control is created using the given style bits. The
-	 * viewer has no input, no content provider, a default label provider, no
-	 * sorter, and no filters. The table has no columns.
-	 * 
-	 * @param parent
-	 * 		the parent control
-	 * @param style
-	 * 		SWT style bits
-	 */
-	public TableViewer(Composite parent, int style) {
-		this(new Table(parent, style));
-	}
-
-	/**
-	 * Creates a table viewer on the given table control. The viewer has no
-	 * input, no content provider, a default label provider, no sorter, and no
-	 * filters.
-	 * 
-	 * @param table
-	 * 		the table control
-	 */
-	public TableViewer(Table table) {
-		this.table = table;
-		hookControl(table);
-	}
-
-	public Control getControl() {
-		return table;
-	}
-
-	/**
-	 * Returns this table viewer's table control.
-	 * 
-	 * @return the table control
-	 */
-	public Table getTable() {
-		return table;
-	}
-
-	protected ColumnViewerEditor createViewerEditor() {
-		return new TableViewerEditor(this, null,
-				new ColumnViewerEditorActivationStrategy(this),
-				ColumnViewerEditor.DEFAULT);
-	}
-
-	/**
-	 * <p>
-	 * Sets a new selection for this viewer and optionally makes it visible. The
-	 * TableViewer implementation of this method is inefficient for the
-	 * ILazyContentProvider as lookup is done by indices rather than elements
-	 * and may require population of the entire table in worse case.
-	 * </p>
-	 * <p>
-	 * Use Table#setSelection(int[] indices) and Table#showSelection() if you
-	 * wish to set selection more efficiently when using a ILazyContentProvider.
-	 * </p>
-	 * 
-	 * @param selection
-	 * 		the new selection
-	 * @param reveal
-	 * 		<code>true</code> if the selection is to be made visible, and
-	 * 		<code>false</code> otherwise
-	 * @see Table#setSelection(int[])
-	 * @see Table#showSelection()
-	 */
-	public void setSelection(ISelection selection, boolean reveal) {
-		super.setSelection(selection, reveal);
-	}
-
-	protected ViewerRow getViewerRowFromItem(Widget item) {
-		if (cachedRow == null) {
-			cachedRow = new TableViewerRow((TableItem) item);
-		} else {
-			cachedRow.setItem((TableItem) item);
-		}
-
-		return cachedRow;
-	}
-
-	/**
-	 * Create a new row with style at index
-	 * 
-	 * @param style
-	 * @param rowIndex
-	 * @return ViewerRow
-	 * @since 3.3
-	 */
-	protected ViewerRow internalCreateNewRowPart(int style, int rowIndex) {
-		TableItem item;
-
-		if (rowIndex >= 0) {
-			item = new TableItem(table, style, rowIndex);
-		} else {
-			item = new TableItem(table, style);
-		}
-
-		return getViewerRowFromItem(item);
-	}
-
-	protected Item getItemAt(Point p) {
-		TableItem[] selection = table.getSelection();
-
-		if (selection.length == 1) {
-			int columnCount = table.getColumnCount();
-
-			for (int i = 0; i < columnCount; i++) {
-				if (selection[0].getBounds(i).contains(p)) {
-					return selection[0];
-				}
-			}
-		}
-
-		return table.getItem(p);
-	}
-
-	// Methods to provide widget independency
-
-	protected int doGetItemCount() {
-		return table.getItemCount();
-	}
-
-	protected int doIndexOf(Item item) {
-		return table.indexOf((TableItem) item);
-	}
-
-	protected void doSetItemCount(int count) {
-		table.setItemCount(count);
-	}
-
-	protected Item[] doGetItems() {
-		return table.getItems();
-	}
-
-	protected int doGetColumnCount() {
-		return table.getColumnCount();
-	}
-
-	protected Widget doGetColumn(int index) {
-		return table.getColumn(index);
-	}
-
-	protected Item doGetItem(int index) {
-		return table.getItem(index);
-	}
-
-	protected Item[] doGetSelection() {
-		return table.getSelection();
-	}
-
-	protected int[] doGetSelectionIndices() {
-		return table.getSelectionIndices();
-	}
-
-	protected void doClearAll() {
-		table.clearAll();
-	}
-
-	protected void doResetItem(Item item) {
-		TableItem tableItem = (TableItem) item;
-		int columnCount = Math.max(1, table.getColumnCount());
-		for (int i = 0; i < columnCount; i++) {
-			tableItem.setText(i, ""); //$NON-NLS-1$
-			if (tableItem.getImage(i) != null) {
-				tableItem.setImage(i, null);
-			}
-		}
-	}
-
-	protected void doRemove(int start, int end) {
-		table.remove(start, end);
-	}
-
-	protected void doRemoveAll() {
-		table.removeAll();
-	}
-
-	protected void doRemove(int[] indices) {
-		table.remove(indices);
-	}
-
-	protected void doShowItem(Item item) {
-		table.showItem((TableItem) item);
-	}
-
-	protected void doDeselectAll() {
-		table.deselectAll();
-	}
-
-	protected void doSetSelection(Item[] items) {
-		Assert.isNotNull(items, "Items-Array can not be null"); //$NON-NLS-1$
-
-		TableItem[] t = new TableItem[items.length];
-		System.arraycopy(items, 0, t, 0, t.length);
-
-		table.setSelection(t);
-	}
-
-	protected void doShowSelection() {
-		table.showSelection();
-	}
-
-	protected void doSetSelection(int[] indices) {
-		table.setSelection(indices);
-	}
-
-	protected void doClear(int index) {
-		table.clear(index);
-	}
-
-	protected void doSelect(int[] indices) {
-		table.select(indices);
-	}
-
-	/**
-	 * Refreshes this viewer starting with the given element. Labels are updated
-	 * as described in <code>refresh(boolean updateLabels)</code>. The methods
-	 * attempts to preserve the selection.
-	 * <p>
-	 * Unlike the <code>update</code> methods, this handles structural changes
-	 * to the given element (e.g. addition or removal of children). If only the
-	 * given element needs updating, it is more efficient to use the
-	 * <code>update</code> methods.
-	 * </p>
-	 * 
-	 * <p>
-	 * Subclasses who can provide this feature can open this method for the
-	 * public
-	 * </p>
-	 * 
-	 * @param element
-	 * 		the element
-	 * @param updateLabels
-	 * 		<code>true</code> to update labels for existing elements,
-	 * 		<code>false</code> to only update labels as needed, assuming that labels
-	 * 		for existing elements are unchanged.
-	 * @param reveal
-	 * 		<code>true</code> to make the preserved selection visible afterwards
-	 * 
-	 * @since 3.3
-	 */
-	public void refresh(final Object element, final boolean updateLabels,
-			boolean reveal) {
-		if (checkBusy())
-			return;
-
-		if (isCellEditorActive()) {
-			cancelEditing();
-		}
-
-		preservingSelection(new Runnable() {
-			public void run() {
-				internalRefresh(element, updateLabels);
-			}
-		}, reveal);
-	}
-
-	/**
-	 * Refreshes this viewer with information freshly obtained from this
-	 * viewer's model. If <code>updateLabels</code> is <code>true</code> then
-	 * labels for otherwise unaffected elements are updated as well. Otherwise,
-	 * it assumes labels for existing elements are unchanged, and labels are
-	 * only obtained as needed (for example, for new elements).
-	 * <p>
-	 * Calling <code>refresh(true)</code> has the same effect as
-	 * <code>refresh()</code>.
-	 * <p>
-	 * Note that the implementation may still obtain labels for existing
-	 * elements even if <code>updateLabels</code> is false. The intent is simply
-	 * to allow optimization where possible.
-	 * 
-	 * @param updateLabels
-	 * 		<code>true</code> to update labels for existing elements,
-	 * 		<code>false</code> to only update labels as needed, assuming that labels
-	 * 		for existing elements are unchanged.
-	 * @param reveal
-	 * 		<code>true</code> to make the preserved selection visible afterwards
-	 * 
-	 * @since 3.3
-	 */
-	public void refresh(boolean updateLabels, boolean reveal) {
-		refresh(getRoot(), updateLabels, reveal);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.AbstractTableViewer#remove(java.lang.Object[])
-	 */
-	public void remove(Object[] elements) {
-		assertElementsNotNull(elements);
-		if (checkBusy())
-			return;
-		if (elements.length == 0) {
-			return;
-		}
-
-		// deselect any items that are being removed, see bug 97786
-		boolean deselectedItems = false;
-		Object elementToBeRemoved = null;
-		CustomHashtable elementsToBeRemoved = null;
-		if (elements.length == 1) {
-			elementToBeRemoved = elements[0];
-		} else {
-			elementsToBeRemoved = new CustomHashtable(getComparer());
-			for (int i = 0; i < elements.length; i++) {
-				Object element = elements[i];
-				elementsToBeRemoved.put(element, element);
-			}
-		}
-		int[] selectionIndices = doGetSelectionIndices();
-		for (int i = 0; i < selectionIndices.length; i++) {
-			int index = selectionIndices[i];
-			Item item = doGetItem(index);
-			Object data = item.getData();
-			if (data != null) {
-				if ((elementsToBeRemoved != null && elementsToBeRemoved
-						.containsKey(data))
-						|| equals(elementToBeRemoved, data)) {
-					table.deselect(index);
-					deselectedItems = true;
-				}
-			}
-		}
-		super.remove(elements);
-
-		if (deselectedItems) {
-			ISelection sel = getSelection();
-			updateSelection(sel);
-			firePostSelectionChanged(new SelectionChangedEvent(this, sel));
-		}
-	}
-	
-	protected Widget doFindItem(Object element) {
-		IContentProvider contentProvider = getContentProvider();
-		if (contentProvider instanceof IIndexableLazyContentProvider) {
-			IIndexableLazyContentProvider indexable = (IIndexableLazyContentProvider) contentProvider;
-			int idx = indexable.findElement(element);
-			if (idx != -1) {
-				return doGetItem(idx);
-			}
-			return null;
-		}
-		return super.doFindItem(element);
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerColumn.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerColumn.java
deleted file mode 100644
index 814634c..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerColumn.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     Boris Bokowski (IBM Corporation) - Javadoc improvements
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * ViewerColumn implementation for TableViewer to enable column-specific label
- * providers and editing support.
- * 
- * @since 3.3
- */
-public final class TableViewerColumn extends ViewerColumn {
-	private TableColumn column;
-
-	/**
-	 * Creates a new viewer column for the given {@link TableViewer} on a new
-	 * {@link TableColumn} with the given style bits. The column is added at the
-	 * end of the list of columns.
-	 * 
-	 * @param viewer
-	 *            the table viewer to which this column belongs
-	 * @param style
-	 *            the style used to create the column, for applicable style bits
-	 *            see {@link TableColumn}
-	 * @see TableColumn#TableColumn(Table, int)
-	 */
-	public TableViewerColumn(TableViewer viewer, int style) {
-		this(viewer, style, -1);
-	}
-
-	/**
-	 * Creates a new viewer column for the given {@link TableViewer} on a new
-	 * {@link TableColumn} with the given style bits. The column is inserted at
-	 * the given index into the list of columns.
-	 * 
-	 * @param viewer
-	 *            the table viewer to which this column belongs
-	 * @param style
-	 *            the style used to create the column, for applicable style bits
-	 *            see {@link TableColumn}
-	 * @param index
-	 *            the index at which to place the newly created column
-	 * @see TableColumn#TableColumn(Table, int, int)
-	 */
-	public TableViewerColumn(TableViewer viewer, int style, int index) {
-		this(viewer, createColumn(viewer.getTable(), style, index));
-	}
-
-	/**
-	 * Creates a new viewer column for the given {@link TableViewer} on the given
-	 * {@link TableColumn}.
-	 * 
-	 * @param viewer
-	 *            the table viewer to which this column belongs
-	 * @param column
-	 *            the underlying table column
-	 */
-	public TableViewerColumn(TableViewer viewer, TableColumn column) {
-		super(viewer, column);
-		this.column = column;
-	}
-	
-	private static TableColumn createColumn(Table table, int style, int index) {
-		if (index >= 0) {
-			return new TableColumn(table, style, index);
-		}
-
-		return new TableColumn(table, style);
-	}
-
-	/**
-	 * @return the underlying SWT table column
-	 */
-	public TableColumn getColumn() {
-		return column;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerEditor.java
deleted file mode 100644
index 5ecf671..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerEditor.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                                 fixes in bug 198665, 200731
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.CellEditor.LayoutData;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * This is an editor-implementation for {@link Table}
- * 
- * @since 3.3
- * 
- */
-public final class TableViewerEditor extends ColumnViewerEditor {
-	/**
-	 * This viewer's table editor.
-	 */
-	private TableEditor tableEditor;
-
-	private SWTFocusCellManager focusCellManager;
-
-	/**
-	 * @param viewer
-	 *            the viewer the editor is attached to
-	 * @param focusCellManager
-	 *            the cell focus manager if one used or <code>null</code>
-	 * @param editorActivationStrategy
-	 *            the strategy used to decide about the editor activation
-	 * @param feature
-	 *            the feature mask
-	 */
-	TableViewerEditor(TableViewer viewer, SWTFocusCellManager focusCellManager,
-			ColumnViewerEditorActivationStrategy editorActivationStrategy,
-			int feature) {
-		super(viewer, editorActivationStrategy, feature);
-		tableEditor = new TableEditor(viewer.getTable());
-		this.focusCellManager = focusCellManager;
-	}
-
-	/**
-	 * Create a customized editor with focusable cells
-	 * 
-	 * @param viewer
-	 *            the viewer the editor is created for
-	 * @param focusCellManager
-	 *            the cell focus manager if one needed else <code>null</code>
-	 * @param editorActivationStrategy
-	 *            activation strategy to control if an editor activated
-	 * @param feature
-	 *            bit mask controlling the editor
-	 *            <ul>
-	 *            <li>{@link ColumnViewerEditor#DEFAULT}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-	 *            </ul>
-	 * @see #create(TableViewer, ColumnViewerEditorActivationStrategy, int)
-	 */
-	public static void create(TableViewer viewer,
-			SWTFocusCellManager focusCellManager,
-			ColumnViewerEditorActivationStrategy editorActivationStrategy,
-			int feature) {
-		TableViewerEditor editor = new TableViewerEditor(viewer,
-				focusCellManager, editorActivationStrategy, feature);
-		viewer.setColumnViewerEditor(editor);
-		if (focusCellManager != null) {
-			focusCellManager.init();
-		}
-	}
-
-	/**
-	 * Create a customized editor whose activation process is customized
-	 * 
-	 * @param viewer
-	 *            the viewer the editor is created for
-	 * @param editorActivationStrategy
-	 *            activation strategy to control if an editor activated
-	 * @param feature
-	 *            bit mask controlling the editor
-	 *            <ul>
-	 *            <li>{@link ColumnViewerEditor#DEFAULT}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-	 *            </ul>
-	 */
-	public static void create(TableViewer viewer,
-			ColumnViewerEditorActivationStrategy editorActivationStrategy,
-			int feature) {
-		create(viewer, null, editorActivationStrategy, feature);
-	}
-
-	protected void setEditor(Control w, Item item, int columnNumber) {
-		tableEditor.setEditor(w, (TableItem) item, columnNumber);
-	}
-
-	protected void setLayoutData(LayoutData layoutData) {
-		tableEditor.grabHorizontal = layoutData.grabHorizontal;
-		tableEditor.horizontalAlignment = layoutData.horizontalAlignment;
-		tableEditor.minimumWidth = layoutData.minimumWidth;
-		tableEditor.verticalAlignment = layoutData.verticalAlignment;
-
-		if (layoutData.minimumHeight != SWT.DEFAULT) {
-			tableEditor.minimumHeight = layoutData.minimumHeight;
-		}
-	}
-
-	public ViewerCell getFocusCell() {
-		if (focusCellManager != null) {
-			return focusCellManager.getFocusCell();
-		}
-
-		return super.getFocusCell();
-	}
-
-	protected void updateFocusCell(ViewerCell focusCell,
-			ColumnViewerEditorActivationEvent event) {
-		// Update the focus cell when we activated the editor with these 2
-		// events
-		if (event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
-				|| event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL) {
-
-			List l = getViewer().getSelectionFromWidget();
-
-			if (!l.contains(focusCell.getElement())) {
-				getViewer().setSelection(
-						new StructuredSelection(focusCell.getElement()), true);
-			}
-
-			// Set the focus cell after the selection is updated because else
-			// the cell is not scrolled into view
-			if (focusCellManager != null) {
-				focusCellManager.setFocusCell(focusCell);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerFocusCellManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerFocusCellManager.java
deleted file mode 100644
index 8e2513f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerFocusCellManager.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                                 fix in bug: 210752
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.widgets.Table;
-
-/**
- * This class is responsible to provide the concept of cells for {@link Table}.
- * This concept is needed to provide features like editor activation with the
- * keyboard
- *
- * @since 3.3
- *
- */
-public class TableViewerFocusCellManager extends SWTFocusCellManager {
-	private static final CellNavigationStrategy TABLE_NAVIGATE = new CellNavigationStrategy();
-
-	/**
-	 * Create a new manager with a default navigation strategy:
-	 * <ul>
-	 * <li><code>SWT.ARROW_UP</code>: navigate to cell above</li>
-	 * <li><code>SWT.ARROW_DOWN</code>: navigate to cell below</li>
-	 * <li><code>SWT.ARROW_RIGHT</code>: navigate to next visible cell on
-	 * the right</li>
-	 * <li><code>SWT.ARROW_LEFT</code>: navigate to next visible cell on the
-	 * left</li>
-	 * </ul>
-	 *
-	 * @param viewer
-	 *            the viewer the manager is bound to
-	 * @param focusDrawingDelegate
-	 *            the delegate responsible to highlight selected cell
-	 */
-	public TableViewerFocusCellManager(TableViewer viewer,
-			FocusCellHighlighter focusDrawingDelegate) {
-		this(viewer, focusDrawingDelegate, TABLE_NAVIGATE);
-	}
-
-	/**
-	 * Create a new manager
-	 *
-	 * @param viewer
-	 *            the viewer the manager is bound to
-	 * @param focusDrawingDelegate
-	 *            the delegate responsible to highlight selected cell
-	 * @param navigationStrategy
-	 *            the strategy used to navigate the cells
-	 * @since 3.4
-	 */
-	public TableViewerFocusCellManager(TableViewer viewer,
-			FocusCellHighlighter focusDrawingDelegate,
-			CellNavigationStrategy navigationStrategy) {
-		super(viewer, focusDrawingDelegate, navigationStrategy);
-	}
-
-	ViewerCell getInitialFocusCell() {
-		Table table = (Table) getViewer().getControl();
-
-		if (!table.isDisposed() && table.getItemCount() > 0
-				&& !table.getItem(0).isDisposed()) {
-			final ViewerRow aViewerRow = getViewer().getViewerRowFromItem(
-					table.getItem(0));
-			for (int i = 0; i < table.getColumnCount(); i++) {
-				if (aViewerRow.getWidth(i) > 0)
-					return aViewerRow.getCell(i);
-			}}
-
-		return null;
-	}
-
-	public ViewerCell getFocusCell() {
-		ViewerCell cell = super.getFocusCell();
-		Table t = (Table) getViewer().getControl();
-
-		// It is possible that the selection has changed under the hood
-		if (cell != null) {
-			if (t.getSelection().length == 1
-					&& t.getSelection()[0] != cell.getItem()) {
-				setFocusCell(getViewer().getViewerRowFromItem(
-						t.getSelection()[0]).getCell(cell.getColumnIndex()));
-			}
-		}
-
-		return super.getFocusCell();
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerRow.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerRow.java
deleted file mode 100644
index 320c3b6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableViewerRow.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											 - fix in bug: 174355,195908,198035,215069,227421
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * TableViewerRow is the Table specific implementation of ViewerRow
- * @since 3.3
- *
- */
-public class TableViewerRow extends ViewerRow {
-	private TableItem item;
-
-	/**
-	 * Create a new instance of the receiver from item.
-	 * @param item
-	 */
-	TableViewerRow(TableItem item) {
-		this.item = item;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getBounds(int)
-	 */
-	public Rectangle getBounds(int columnIndex) {
-		return item.getBounds(columnIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getBounds()
-	 */
-	public Rectangle getBounds() {
-		return item.getBounds();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getItem()
-	 */
-	public Widget getItem() {
-		return item;
-	}
-
-	void setItem(TableItem item) {
-		this.item = item;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getColumnCount()
-	 */
-	public int getColumnCount() {
-		return item.getParent().getColumnCount();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getBackground(int)
-	 */
-	public Color getBackground(int columnIndex) {
-		return item.getBackground(columnIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getFont(int)
-	 */
-	public Font getFont(int columnIndex) {
-		return item.getFont(columnIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getForeground(int)
-	 */
-	public Color getForeground(int columnIndex) {
-		return item.getForeground(columnIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getImage(int)
-	 */
-	public Image getImage(int columnIndex) {
-		return item.getImage(columnIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getText(int)
-	 */
-	public String getText(int columnIndex) {
-		return item.getText(columnIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#setBackground(int, org.eclipse.swt.graphics.Color)
-	 */
-	public void setBackground(int columnIndex, Color color) {
-		item.setBackground(columnIndex, color);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#setFont(int, org.eclipse.swt.graphics.Font)
-	 */
-	public void setFont(int columnIndex, Font font) {
-		item.setFont(columnIndex, font);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#setForeground(int, org.eclipse.swt.graphics.Color)
-	 */
-	public void setForeground(int columnIndex, Color color) {
-		item.setForeground(columnIndex, color);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#setImage(int, org.eclipse.swt.graphics.Image)
-	 */
-	public void setImage(int columnIndex, Image image) {
-		Image oldImage = item.getImage(columnIndex);
-		if (oldImage != image) {
-			item.setImage(columnIndex,image);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#setText(int, java.lang.String)
-	 */
-	public void setText(int columnIndex, String text) {
-		item.setText(columnIndex, text == null ? "" : text); //$NON-NLS-1$
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getControl()
-	 */
-	public Control getControl() {
-		return item.getParent();
-	}
-
-	public ViewerRow getNeighbor(int direction, boolean sameLevel) {
-		if( direction == ViewerRow.ABOVE ) {
-			return getRowAbove();
-		} else if( direction == ViewerRow.BELOW ) {
-			return getRowBelow();
-		} else {
-			throw new IllegalArgumentException("Illegal value of direction argument."); //$NON-NLS-1$
-		}
-	}
-
-
-	private ViewerRow getRowAbove() {
-		int index = item.getParent().indexOf(item) - 1;
-
-		if( index >= 0 ) {
-			return new TableViewerRow(item.getParent().getItem(index));
-		}
-
-		return null;
-	}
-
-	private ViewerRow getRowBelow() {
-		int index = item.getParent().indexOf(item) + 1;
-
-		if( index < item.getParent().getItemCount() ) {
-			TableItem tmp = item.getParent().getItem(index);
-			//TODO NULL can happen in case of VIRTUAL => How do we deal with that
-			if( tmp != null ) {
-				return new TableViewerRow(tmp);
-			}
-		}
-
-		return null;
-	}
-
-	public TreePath getTreePath() {
-		return new TreePath(new Object[] {item.getData()});
-	}
-
-	public Object clone() {
-		return new TableViewerRow(item);
-	}
-
-	public Object getElement() {
-		return item.getData();
-	}
-
-	public int getVisualIndex(int creationIndex) {
-		int[] order = item.getParent().getColumnOrder();
-
-		for (int i = 0; i < order.length; i++) {
-			if (order[i] == creationIndex) {
-				return i;
-			}
-		}
-
-		return super.getVisualIndex(creationIndex);
-	}
-
-	public int getCreationIndex(int visualIndex) {
-		if( item != null && ! item.isDisposed() && hasColumns() && isValidOrderIndex(visualIndex) ) {
-			return item.getParent().getColumnOrder()[visualIndex];
-		}
-		return super.getCreationIndex(visualIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getTextBounds(int)
-	 */
-	public Rectangle getTextBounds(int index) {
-		return item.getTextBounds(index);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getImageBounds(int)
-	 */
-	public Rectangle getImageBounds(int index) {
-		return item.getImageBounds(index);
-	}
-
-	private boolean hasColumns() {
-		return this.item.getParent().getColumnCount() != 0;
-	}
-
-	private boolean isValidOrderIndex(int currentIndex) {
-		return currentIndex < this.item.getParent().getColumnOrder().length;
-	}
-	
-	int getWidth(int columnIndex) {
-		return item.getParent().getColumn(columnIndex).getWidth();
-	}
-	
-	protected boolean scrollCellIntoView(int columnIndex) {
-		item.getParent().showItem(item);
-		if( hasColumns() ) {
-			item.getParent().showColumn(item.getParent().getColumn(columnIndex));	
-		}
-		
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TextCellEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TextCellEditor.java
deleted file mode 100644
index 152b52f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TextCellEditor.java
+++ /dev/null
@@ -1,491 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.text.MessageFormat;	// Not using ICU to support standalone JFace scenario
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-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.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * A cell editor that manages a text entry field.
- * The cell editor's value is the text string itself.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class TextCellEditor extends CellEditor {
-
-    /**
-     * The text control; initially <code>null</code>.
-     */
-    protected Text text;
-
-    private ModifyListener modifyListener;
-
-    /**
-     * State information for updating action enablement
-     */
-    private boolean isSelection = false;
-
-    private boolean isDeleteable = false;
-
-    private boolean isSelectable = false;
-
-    /**
-     * Default TextCellEditor style
-     * specify no borders on text widget as cell outline in table already
-     * provides the look of a border.
-     */
-    private static final int defaultStyle = SWT.SINGLE;
-
-    /**
-     * Creates a new text string cell editor with no control
-     * The cell editor value is the string itself, which is initially the empty
-     * string. Initially, the cell editor has no cell validator.
-     * 
-     * @since 2.1
-     */
-    public TextCellEditor() {
-        setStyle(defaultStyle);
-    }
-
-    /**
-     * Creates a new text string cell editor parented under the given control.
-     * The cell editor value is the string itself, which is initially the empty string. 
-     * Initially, the cell editor has no cell validator.
-     *
-     * @param parent the parent control
-     */
-    public TextCellEditor(Composite parent) {
-        this(parent, defaultStyle);
-    }
-
-    /**
-     * Creates a new text string cell editor parented under the given control.
-     * The cell editor value is the string itself, which is initially the empty string. 
-     * Initially, the cell editor has no cell validator.
-     *
-     * @param parent the parent control
-     * @param style the style bits
-     * @since 2.1
-     */
-    public TextCellEditor(Composite parent, int style) {
-        super(parent, style);
-    }
-
-    /**
-     * Checks to see if the "deletable" state (can delete/
-     * nothing to delete) has changed and if so fire an
-     * enablement changed notification.
-     */
-    private void checkDeleteable() {
-        boolean oldIsDeleteable = isDeleteable;
-        isDeleteable = isDeleteEnabled();
-        if (oldIsDeleteable != isDeleteable) {
-            fireEnablementChanged(DELETE);
-        }
-    }
-
-    /**
-     * Checks to see if the "selectable" state (can select)
-     * has changed and if so fire an enablement changed notification.
-     */
-    private void checkSelectable() {
-        boolean oldIsSelectable = isSelectable;
-        isSelectable = isSelectAllEnabled();
-        if (oldIsSelectable != isSelectable) {
-            fireEnablementChanged(SELECT_ALL);
-        }
-    }
-
-    /**
-     * Checks to see if the selection state (selection /
-     * no selection) has changed and if so fire an
-     * enablement changed notification.
-     */
-    private void checkSelection() {
-        boolean oldIsSelection = isSelection;
-        isSelection = text.getSelectionCount() > 0;
-        if (oldIsSelection != isSelection) {
-            fireEnablementChanged(COPY);
-            fireEnablementChanged(CUT);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected Control createControl(Composite parent) {
-        text = new Text(parent, getStyle());
-        text.addSelectionListener(new SelectionAdapter() {
-            public void widgetDefaultSelected(SelectionEvent e) {
-                handleDefaultSelection(e);
-            }
-        });
-        text.addKeyListener(new KeyAdapter() {
-            // hook key pressed - see PR 14201  
-            public void keyPressed(KeyEvent e) {
-                keyReleaseOccured(e);
-
-                // as a result of processing the above call, clients may have
-                // disposed this cell editor
-                if ((getControl() == null) || getControl().isDisposed()) {
-					return;
-				}
-                checkSelection(); // see explanation below
-                checkDeleteable();
-                checkSelectable();
-            }
-        });
-        text.addTraverseListener(new TraverseListener() {
-            public void keyTraversed(TraverseEvent e) {
-                if (e.detail == SWT.TRAVERSE_ESCAPE
-                        || e.detail == SWT.TRAVERSE_RETURN) {
-                    e.doit = false;
-                }
-            }
-        });
-        // We really want a selection listener but it is not supported so we
-        // use a key listener and a mouse listener to know when selection changes
-        // may have occurred
-        text.addMouseListener(new MouseAdapter() {
-            public void mouseUp(MouseEvent e) {
-                checkSelection();
-                checkDeleteable();
-                checkSelectable();
-            }
-        });
-        text.addFocusListener(new FocusAdapter() {
-            public void focusLost(FocusEvent e) {
-                TextCellEditor.this.focusLost();
-            }
-        });
-        text.setFont(parent.getFont());
-        text.setBackground(parent.getBackground());
-        text.setText("");//$NON-NLS-1$
-        text.addModifyListener(getModifyListener());
-        return text;
-    }
-
-    /**
-     * The <code>TextCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method returns
-     * the text string.
-     *
-     * @return the text string
-     */
-    protected Object doGetValue() {
-        return text.getText();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on CellEditor.
-     */
-    protected void doSetFocus() {
-        if (text != null) {
-            text.selectAll();
-            text.setFocus();
-            checkSelection();
-            checkDeleteable();
-            checkSelectable();
-        }
-    }
-
-    /**
-     * The <code>TextCellEditor</code> implementation of
-     * this <code>CellEditor</code> framework method accepts
-     * a text string (type <code>String</code>).
-     *
-     * @param value a text string (type <code>String</code>)
-     */
-    protected void doSetValue(Object value) {
-        Assert.isTrue(text != null && (value instanceof String));
-        text.removeModifyListener(getModifyListener());
-        text.setText((String) value);
-        text.addModifyListener(getModifyListener());
-    }
-
-    /**
-     * Processes a modify event that occurred in this text cell editor.
-     * This framework method performs validation and sets the error message
-     * accordingly, and then reports a change via <code>fireEditorValueChanged</code>.
-     * Subclasses should call this method at appropriate times. Subclasses
-     * may extend or reimplement.
-     *
-     * @param e the SWT modify event
-     */
-    protected void editOccured(ModifyEvent e) {
-        String value = text.getText();
-        if (value == null) {
-			value = "";//$NON-NLS-1$
-		}
-        Object typedValue = value;
-        boolean oldValidState = isValueValid();
-        boolean newValidState = isCorrect(typedValue);
-        if (typedValue == null && newValidState) {
-			Assert.isTrue(false,
-                    "Validator isn't limiting the cell editor's type range");//$NON-NLS-1$
-		}
-        if (!newValidState) {
-            // try to insert the current value into the error message.
-            setErrorMessage(MessageFormat.format(getErrorMessage(),
-                    new Object[] { value }));
-        }
-        valueChanged(oldValidState, newValidState);
-    }
-
-    /**
-     * Since a text editor field is scrollable we don't
-     * set a minimumSize.
-     */
-    public LayoutData getLayoutData() {
-        return new LayoutData();
-    }
-
-    /**
-     * Return the modify listener.
-     */
-    private ModifyListener getModifyListener() {
-        if (modifyListener == null) {
-            modifyListener = new ModifyListener() {
-                public void modifyText(ModifyEvent e) {
-                    editOccured(e);
-                }
-            };
-        }
-        return modifyListener;
-    }
-
-    /**
-     * Handles a default selection event from the text control by applying the editor
-     * value and deactivating this cell editor.
-     * 
-     * @param event the selection event
-     * 
-     * @since 3.0
-     */
-    protected void handleDefaultSelection(SelectionEvent event) {
-        // same with enter-key handling code in keyReleaseOccured(e);
-        fireApplyEditorValue();
-        deactivate();
-    }
-
-    /**
-     * The <code>TextCellEditor</code>  implementation of this 
-     * <code>CellEditor</code> method returns <code>true</code> if 
-     * the current selection is not empty.
-     */
-    public boolean isCopyEnabled() {
-        if (text == null || text.isDisposed()) {
-			return false;
-		}
-        return text.getSelectionCount() > 0;
-    }
-
-    /**
-     * The <code>TextCellEditor</code>  implementation of this 
-     * <code>CellEditor</code> method returns <code>true</code> if 
-     * the current selection is not empty.
-     */
-    public boolean isCutEnabled() {
-        if (text == null || text.isDisposed()) {
-			return false;
-		}
-        return text.getSelectionCount() > 0;
-    }
-
-    /**
-     * The <code>TextCellEditor</code>  implementation of this 
-     * <code>CellEditor</code> method returns <code>true</code>
-     * if there is a selection or if the caret is not positioned 
-     * at the end of the text.
-     */
-    public boolean isDeleteEnabled() {
-        if (text == null || text.isDisposed()) {
-			return false;
-		}
-        return text.getSelectionCount() > 0
-                || text.getCaretPosition() < text.getCharCount();
-    }
-
-    /**
-     * The <code>TextCellEditor</code>  implementation of this 
-     * <code>CellEditor</code> method always returns <code>true</code>.
-     */
-    public boolean isPasteEnabled() {
-        if (text == null || text.isDisposed()) {
-			return false;
-		}
-        return true;
-    }
-
-    /**
-     * Check if save all is enabled
-     * @return true if it is 
-     */
-    public boolean isSaveAllEnabled() {
-        if (text == null || text.isDisposed()) {
-			return false;
-		}
-        return true;
-    }
-
-    /**
-     * Returns <code>true</code> if this cell editor is
-     * able to perform the select all action.
-     * <p>
-     * This default implementation always returns 
-     * <code>false</code>.
-     * </p>
-     * <p>
-     * Subclasses may override
-     * </p>
-     * @return <code>true</code> if select all is possible,
-     *  <code>false</code> otherwise
-     */
-    public boolean isSelectAllEnabled() {
-        if (text == null || text.isDisposed()) {
-			return false;
-		}
-        return text.getCharCount() > 0;
-    }
-
-    /**
-     * Processes a key release event that occurred in this cell editor.
-     * <p>
-     * The <code>TextCellEditor</code> implementation of this framework method 
-     * ignores when the RETURN key is pressed since this is handled in 
-     * <code>handleDefaultSelection</code>.
-     * An exception is made for Ctrl+Enter for multi-line texts, since
-     * a default selection event is not sent in this case. 
-     * </p>
-     *
-     * @param keyEvent the key event
-     */
-    protected void keyReleaseOccured(KeyEvent keyEvent) {
-        if (keyEvent.character == '\r') { // Return key
-            // Enter is handled in handleDefaultSelection.
-            // Do not apply the editor value in response to an Enter key event
-            // since this can be received from the IME when the intent is -not-
-            // to apply the value.  
-            // See bug 39074 [CellEditors] [DBCS] canna input mode fires bogus event from Text Control
-            //
-            // An exception is made for Ctrl+Enter for multi-line texts, since
-            // a default selection event is not sent in this case. 
-            if (text != null && !text.isDisposed()
-                    && (text.getStyle() & SWT.MULTI) != 0) {
-                if ((keyEvent.stateMask & SWT.CTRL) != 0) {
-                    super.keyReleaseOccured(keyEvent);
-                }
-            }
-            return;
-        }
-        super.keyReleaseOccured(keyEvent);
-    }
-
-    /**
-     * The <code>TextCellEditor</code> implementation of this
-     * <code>CellEditor</code> method copies the
-     * current selection to the clipboard. 
-     */
-    public void performCopy() {
-        text.copy();
-    }
-
-    /**
-     * The <code>TextCellEditor</code> implementation of this
-     * <code>CellEditor</code> method cuts the
-     * current selection to the clipboard. 
-     */
-    public void performCut() {
-        text.cut();
-        checkSelection();
-        checkDeleteable();
-        checkSelectable();
-    }
-
-    /**
-     * The <code>TextCellEditor</code> implementation of this
-     * <code>CellEditor</code> method deletes the
-     * current selection or, if there is no selection,
-     * the character next character from the current position. 
-     */
-    public void performDelete() {
-        if (text.getSelectionCount() > 0) {
-			// remove the contents of the current selection
-            text.insert(""); //$NON-NLS-1$
-		} else {
-            // remove the next character
-            int pos = text.getCaretPosition();
-            if (pos < text.getCharCount()) {
-                text.setSelection(pos, pos + 1);
-                text.insert(""); //$NON-NLS-1$
-            }
-        }
-        checkSelection();
-        checkDeleteable();
-        checkSelectable();
-    }
-
-    /**
-     * The <code>TextCellEditor</code> implementation of this
-     * <code>CellEditor</code> method pastes the
-     * the clipboard contents over the current selection. 
-     */
-    public void performPaste() {
-        text.paste();
-        checkSelection();
-        checkDeleteable();
-        checkSelectable();
-    }
-
-    /**
-     * The <code>TextCellEditor</code> implementation of this
-     * <code>CellEditor</code> method selects all of the
-     * current text. 
-     */
-    public void performSelectAll() {
-        text.selectAll();
-        checkSelection();
-        checkDeleteable();
-    }
-
-    /**
-	 * This implementation of
-	 * {@link CellEditor#dependsOnExternalFocusListener()} returns false if the
-	 * current instance's class is TextCellEditor, and true otherwise.
-	 * Subclasses that hook their own focus listener should override this method
-	 * and return false. See also bug 58777.
-	 * 
-	 * @since 3.4
-	 */
-	protected boolean dependsOnExternalFocusListener() {
-		return getClass() != TextCellEditor.class;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeColumnViewerLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeColumnViewerLabelProvider.java
deleted file mode 100644
index a894fd6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeColumnViewerLabelProvider.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-/**
- * TreeViewerLabelProvider is the ViewerLabelProvider that handles TreePaths.
- * 
- * @since 3.3
- * 
- */
-public class TreeColumnViewerLabelProvider extends
-		TableColumnViewerLabelProvider {
-	private ITreePathLabelProvider treePathProvider = new ITreePathLabelProvider() {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreePathLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel,
-		 *      org.eclipse.jface.viewers.TreePath)
-		 */
-		public void updateLabel(ViewerLabel label, TreePath elementPath) {
-			// Do nothing by default
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-		 */
-		public void dispose() {
-			// Do nothing by default
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-		 */
-		public void addListener(ILabelProviderListener listener) {
-			// Do nothing by default
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-		 */
-		public void removeListener(ILabelProviderListener listener) {
-			// Do nothing by default
-
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-		 */
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-	};
-
-	/**
-	 * Create a new instance of the receiver with the supplied labelProvider.
-	 * 
-	 * @param labelProvider
-	 */
-	public TreeColumnViewerLabelProvider(IBaseLabelProvider labelProvider) {
-		super(labelProvider);
-	}
-
-	/**
-	 * Update the label for the element with TreePath.
-	 * 
-	 * @param label
-	 * @param elementPath
-	 */
-	public void updateLabel(ViewerLabel label, TreePath elementPath) {
-		treePathProvider.updateLabel(label, elementPath);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ViewerLabelProvider#setProviders(java.lang.Object)
-	 */
-	public void setProviders(Object provider) {
-		super.setProviders(provider);
-		if (provider instanceof ITreePathLabelProvider)
-			treePathProvider = (ITreePathLabelProvider) provider;
-	}
-
-	/**
-	 * Return the ITreePathLabelProvider for the receiver.
-	 * 
-	 * @return Returns the treePathProvider.
-	 */
-	public ITreePathLabelProvider getTreePathProvider() {
-		return treePathProvider;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeExpansionEvent.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeExpansionEvent.java
deleted file mode 100644
index 0726ec6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeExpansionEvent.java
+++ /dev/null
@@ -1,62 +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.jface.viewers;
-
-import java.util.EventObject;
-
-/**
- * Event object describing a tree node being expanded
- * or collapsed. The source of these events is the tree viewer.
- *
- * @see ITreeViewerListener
- */
-public class TreeExpansionEvent extends EventObject {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3618414930227835185L;
-    
-    /**
-     * The element that was expanded or collapsed.
-     */
-    private Object element;
-
-    /**
-     * Creates a new event for the given source and element.
-     *
-     * @param source the tree viewer
-     * @param element the element
-     */
-    public TreeExpansionEvent(AbstractTreeViewer source, Object element) {
-        super(source);
-        this.element = element;
-    }
-
-    /**
-     * Returns the element that got expanded or collapsed.
-     *
-     * @return the element
-     */
-    public Object getElement() {
-        return element;
-    }
-
-    /**
-     * Returns the originator of the event.
-     *
-     * @return the originating tree viewer
-     */
-    public AbstractTreeViewer getTreeViewer() {
-        return (AbstractTreeViewer) source;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNode.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNode.java
deleted file mode 100644
index 01def33..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNode.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.jface.util.Util;
-
-/**
- * A simple data structure that is useful for implemented tree models. This can
- * be returned by
- * {@link org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)}.
- * It allows simple delegation of methods from
- * {@link org.eclipse.jface.viewers.ITreeContentProvider} such as
- * {@link org.eclipse.jface.viewers.ITreeContentProvider#getChildren(Object)},
- * {@link org.eclipse.jface.viewers.ITreeContentProvider#getParent(Object)} and
- * {@link org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(Object)}
- * 
- * @since 3.2
- */
-public class TreeNode {
-
-	/**
-	 * The array of child tree nodes for this tree node. If there are no
-	 * children, then this value may either by an empty array or
-	 * <code>null</code>. There should be no <code>null</code> children in
-	 * the array.
-	 */
-	private TreeNode[] children;
-
-	/**
-	 * The parent tree node for this tree node. This value may be
-	 * <code>null</code> if there is no parent.
-	 */
-	private TreeNode parent;
-
-	/**
-	 * The value contained in this node. This value may be anything.
-	 */
-	protected Object value;
-
-	/**
-	 * Constructs a new instance of <code>TreeNode</code>.
-	 * 
-	 * @param value
-	 *            The value held by this node; may be anything.
-	 */
-	public TreeNode(final Object value) {
-		this.value = value;
-	}
-	
-	public boolean equals(final Object object) {
-		if (object instanceof TreeNode) {
-			return Util.equals(this.value, ((TreeNode) object).value);
-		}
-
-		return false;
-	}
-
-	/**
-	 * Returns the child nodes. Empty arrays are converted to <code>null</code>
-	 * before being returned.
-	 * 
-	 * @return The child nodes; may be <code>null</code>, but never empty.
-	 *         There should be no <code>null</code> children in the array.
-	 */
-	public TreeNode[] getChildren() {
-		if (children != null && children.length == 0) {
-			return null;
-		}
-		return children;
-	}
-
-	/**
-	 * Returns the parent node.
-	 * 
-	 * @return The parent node; may be <code>null</code> if there are no
-	 *         parent nodes.
-	 */
-	public TreeNode getParent() {
-		return parent;
-	}
-
-	/**
-	 * Returns the value held by this node.
-	 * 
-	 * @return The value; may be anything.
-	 */
-	public Object getValue() {
-		return value;
-	}
-
-	/**
-	 * Returns whether the tree has any children.
-	 * 
-	 * @return <code>true</code> if its array of children is not
-	 *         <code>null</code> and is non-empty; <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean hasChildren() {
-		return children != null && children.length > 0;
-	}
-	
-	public int hashCode() {
-		return Util.hashCode(value);
-	}
-
-	/**
-	 * Sets the children for this node.
-	 * 
-	 * @param children
-	 *            The child nodes; may be <code>null</code> or empty. There
-	 *            should be no <code>null</code> children in the array.
-	 */
-	public void setChildren(final TreeNode[] children) {
-		this.children = children;
-	}
-
-	/**
-	 * Sets the parent for this node.
-	 * 
-	 * @param parent
-	 *            The parent node; may be <code>null</code>.
-	 */
-	public void setParent(final TreeNode parent) {
-		this.parent = parent;
-	}
-}
-
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNodeContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNodeContentProvider.java
deleted file mode 100644
index 9fa1ebc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeNodeContentProvider.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-/**
- * <p>
- * A content provider that expects every element to be a <code>TreeNode</code>.
- * Most methods delegate to <code>TreeNode</code>. <code>dispose()</code>
- * and <code>inputChanged(Viewer, Object, Object)</code> do nothing by
- * default.
- * </p>
- * <p>
- * This class and all of its methods may be overridden or extended.
- * </p>
- * 
- * @since 3.2
- * @see org.eclipse.jface.viewers.TreeNode
- */
-public class TreeNodeContentProvider implements ITreeContentProvider {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		// Do nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(final Object parentElement) {
-		final TreeNode node = (TreeNode) parentElement;
-		return node.getChildren();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(final Object inputElement) {
-		if (inputElement instanceof TreeNode[]) {
-			return (TreeNode[]) inputElement;
-		}
-		return new Object[0];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(final Object element) {
-		final TreeNode node = (TreeNode) element;
-		return node.getParent();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(final Object element) {
-		final TreeNode node = (TreeNode) element;
-		return node.hasChildren();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(final Viewer viewer, final Object oldInput,
-			final Object newInput) {
-		// Do nothing
-	}
-}
-
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePath.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePath.java
deleted file mode 100644
index c153b23..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePath.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A tree path denotes a model element in a tree viewer. Tree path objects have
- * value semantics. A model element is represented by a path of elements in the
- * tree from the root element to the leaf element.
- * <p>
- * Clients may instantiate this class. Not intended to be subclassed.
- * </p>
- * 
- * @since 3.2
- */
-public final class TreePath {
-	
-	/**
-	 * Constant for representing an empty tree path.
-	 */
-	public static final TreePath EMPTY = new TreePath(new Object[0]);
-	
-	private Object[] segments;
-
-	private int hash;
-
-	/**
-	 * Constructs a path identifying a leaf node in a tree.
-	 * 
-	 * @param segments
-	 *            path of elements to a leaf node in a tree, starting with the
-	 *            root element
-	 */
-	public TreePath(Object[] segments) {
-		Assert.isNotNull(segments);
-		for (int i = 0; i < segments.length; i++) {
-			Assert.isNotNull(segments[i]);
-		}
-		this.segments = segments;
-	}
-
-	/**
-	 * Returns the element at the specified index in this path.
-	 * 
-	 * @param index
-	 *            index of element to return
-	 * @return element at the specified index
-	 */
-	public Object getSegment(int index) {
-		return segments[index];
-	}
-
-	/**
-	 * Returns the number of elements in this path.
-	 * 
-	 * @return the number of elements in this path
-	 */
-	public int getSegmentCount() {
-		return segments.length;
-	}
-
-	/**
-	 * Returns the first element in this path, or <code>null</code> if this
-	 * path has no segments.
-	 * 
-	 * @return the first element in this path
-	 */
-	public Object getFirstSegment() {
-		if (segments.length == 0) {
-			return null;
-		}
-		return segments[0];
-	}
-
-	/**
-	 * Returns the last element in this path, or <code>null</code> if this
-	 * path has no segments.
-	 * 
-	 * @return the last element in this path
-	 */
-	public Object getLastSegment() {
-		if (segments.length == 0) {
-			return null;
-		}
-		return segments[segments.length - 1];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object other) {
-		if (!(other instanceof TreePath)) {
-			return false;
-		}
-		return equals((TreePath) other, null);
-	}
-
-	/**
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		if (hash == 0) {
-			hash = hashCode(null);
-		}
-		return hash;
-	}
-
-	/**
-	 * Returns a hash code computed from the hash codes of the segments, using
-	 * the given comparer to compute the hash codes of the segments.
-	 * 
-	 * @param comparer
-	 *            comparer to use or <code>null</code> if the segments' hash
-	 *            codes should be computed by calling their hashCode() methods.
-	 * @return the computed hash code
-	 */
-	public int hashCode(IElementComparer comparer) {
-		int result = 0;
-		for (int i = 0; i < segments.length; i++) {
-			if (comparer == null) {
-				result += segments[i].hashCode();
-			} else {
-				result += comparer.hashCode(segments[i]);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns whether this path is equivalent to the given path using the
-	 * specified comparer to compare individual elements.
-	 * 
-	 * @param otherPath
-	 *            tree path to compare to
-	 * @param comparer
-	 *            comparator to use or <code>null</code> if segments should be
-	 *            compared using equals()
-	 * @return whether the paths are equal
-	 */
-	public boolean equals(TreePath otherPath, IElementComparer comparer) {
-		if (otherPath == null) {
-			return false;
-		}
-		if (segments.length != otherPath.segments.length) {
-			return false;
-		}
-		for (int i = 0; i < segments.length; i++) {
-			if (comparer == null) {
-				if (!segments[i].equals(otherPath.segments[i])) {
-					return false;
-				}
-			} else {
-				if (!comparer.equals(segments[i], otherPath.segments[i])) {
-					return false;
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Returns whether this path starts with the same segments as the given
-	 * path, using the given comparer to compare segments.
-	 * 
-	 * @param treePath
-	 *            path to compare to
-	 * @param comparer
-	 *            the comparer to use, or <code>null</code> if equals() should
-	 *            be used to compare segments
-	 * @return whether the given path is a prefix of this path, or the same as
-	 *         this path
-	 */
-	public boolean startsWith(TreePath treePath, IElementComparer comparer) {
-		int thisSegmentCount = getSegmentCount();
-		int otherSegmentCount = treePath.getSegmentCount();
-		if (otherSegmentCount == thisSegmentCount) {
-			return equals(treePath, comparer);
-		}
-		if (otherSegmentCount > thisSegmentCount) {
-			return false;
-		}
-		for (int i = 0; i < otherSegmentCount; i++) {
-			Object otherSegment = treePath.getSegment(i);
-			if (comparer == null) {
-				if (!otherSegment.equals(segments[i])) {
-					return false;
-				}
-			} else {
-				if (!comparer.equals(otherSegment, segments[i])) {
-					return false;
-				}
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * Returns a copy of this tree path with one segment removed from the end,
-	 * or <code>null</code> if this tree path has no segments.
-	 * @return a tree path
-	 */
-	public TreePath getParentPath() {
-		int segmentCount = getSegmentCount();
-		if (segmentCount < 1) {
-			return null;
-		} else if (segmentCount == 1) {
-			return EMPTY;
-		}
-		Object[] parentSegments = new Object[segmentCount - 1];
-		System.arraycopy(segments, 0, parentSegments, 0, segmentCount - 1);
-		return new TreePath(parentSegments);
-	}
-
-	/**
-	 * Returns a copy of this tree path with the given segment added at the end.
-	 * @param newSegment 
-	 * @return a tree path
-	 */
-	public TreePath createChildPath(Object newSegment) {
-		int segmentCount = getSegmentCount();
-		Object[] childSegments = new Object[segmentCount + 1];
-		if(segmentCount>0) {
-			System.arraycopy(segments, 0, childSegments, 0, segmentCount);
-		}
-		childSegments[segmentCount] = newSegment;
-		return new TreePath(childSegments);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePathViewerSorter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePathViewerSorter.java
deleted file mode 100644
index a49f84d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreePathViewerSorter.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-/**
- * A viewer sorter that is provided extra context in the form of the path of the
- * parent element of the elements being sorted.
- * 
- * @since 3.2
- */
-public class TreePathViewerSorter extends ViewerSorter {
-
-	/**
-	 * Provide a category for the given element that will have the given parent
-	 * path when it is added to the viewer. The provided path is
-	 * relative to the viewer input. The parent path will
-	 * be <code>null</code> when the elements are root elements.
-	 * <p>
-	 * By default, the this method calls
-	 * {@link ViewerSorter#category(Object)}. Subclasses may override.
-	 * 
-	 * @param parentPath
-	 *            the parent path for the element
-	 * @param element
-	 *            the element
-	 * @return the category of the element
-	 */
-	public int category(TreePath parentPath, Object element) {
-		return category(element);
-	}
-	
-	/**
-	 * Compare the given elements that will have the given parent
-	 * path when they are added to the viewer. The provided path is
-	 * relative to the viewer input. The parent path will
-	 * be <code>null</code> when the elements are root elements.
-	 * <p>
-	 * By default, the this method calls
-	 * {@link ViewerSorter#sort(Viewer, Object[])}. Subclasses may override.
-	 * @param viewer the viewer
-	 * @param parentPath the parent path for the two elements
-     * @param e1 the first element
-     * @param e2 the second element
-     * @return a negative number if the first element is less  than the 
-     *  second element; the value <code>0</code> if the first element is
-     *  equal to the second element; and a positive
-	 */
-	public int compare(Viewer viewer, TreePath parentPath, Object e1, Object e2) {
-		return compare(viewer, e1, e2);
-	}
-	
-	/**
-     * Returns whether this viewer sorter would be affected 
-     * by a change to the given property of the given element.
-     * The provided path is
-	 * relative to the viewer input. The parent path will
-	 * be <code>null</code> when the elements are root elements.
-     * <p>
-     * The default implementation of this method calls
-     * {@link ViewerSorter#isSorterProperty(Object, String)}.
-     * Subclasses may reimplement.
-	 * @param parentPath the parent path of the element
-     * @param element the element
-     * @param property the property
-     * @return <code>true</code> if the sorting would be affected,
-     *    and <code>false</code> if it would be unaffected
-	 */
-    public boolean isSorterProperty(TreePath parentPath, Object element, String property) {
-        return isSorterProperty(element, property);
-    }
-    
-    /**
-     * Sorts the given elements in-place, modifying the given array.
-     * The provided path is
-	 * relative to the viewer input. The parent path will
-	 * be <code>null</code> when the elements are root elements.
-     * <p>
-     * The default implementation of this method uses the 
-     * java.util.Arrays#sort algorithm on the given array, 
-     * calling {@link #compare(Viewer, TreePath, Object, Object)} to compare elements.
-     * </p>
-     * <p>
-     * Subclasses may reimplement this method to provide a more optimized implementation.
-     * </p>
-     *
-     * @param viewer the viewer
-     * @param parentPath the parent path of the given elements
-     * @param elements the elements to sort
-     */
-    public void sort(final Viewer viewer, final TreePath parentPath, Object[] elements) {
-        Arrays.sort(elements, new Comparator() {
-            public int compare(Object a, Object b) {
-                return TreePathViewerSorter.this.compare(viewer, parentPath, a, b);
-            }
-        });
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeSelection.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeSelection.java
deleted file mode 100644
index 23a4159..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeSelection.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A concrete implementation of the <code>ITreeSelection</code> interface,
- * suitable for instantiating.
- * <p>
- * This class is not intended to be subclassed.
- * </p>
- * 
- * @since 3.2
- */
-public class TreeSelection extends StructuredSelection implements ITreeSelection {
-
-	/* Implementation note.  This class extends StructuredSelection because many pre-existing
-	 * JFace viewer clients assumed that the only implementation of IStructuredSelection 
-	 * was StructuredSelection.  By extending StructuredSelection rather than implementing
-	 * ITreeSelection directly, we avoid this problem.
-	 * For more details, see Bug 121939 [Viewers] TreeSelection should subclass StructuredSelection. 
-	 */
-	
-	private TreePath[] paths = null;
-	private CustomHashtable element2TreePaths = null;
-
-	/**
-	 * The canonical empty selection. This selection should be used instead of
-	 * <code>null</code>.
-	 */
-	public static final TreeSelection EMPTY = new TreeSelection();
-	
-	private static final TreePath[] EMPTY_TREE_PATHS= new TreePath[0];
-	
-	private static class InitializeData {
-		List selection;
-		TreePath[] paths;
-		CustomHashtable element2TreePaths;
-		
-		private InitializeData(TreePath[] paths, IElementComparer comparer) {
-			this.paths= new TreePath[paths.length];
-			System.arraycopy(paths, 0, this.paths, 0, paths.length);
-			element2TreePaths = new CustomHashtable(comparer);
-			int size = paths.length;
-			selection = new ArrayList(size);
-			for (int i = 0; i < size; i++) {
-				Object lastSegment= paths[i].getLastSegment();
-				Object mapped= element2TreePaths.get(lastSegment);
-				if (mapped == null) {
-					selection.add(lastSegment);
-					element2TreePaths.put(lastSegment, paths[i]);
-				} else if (mapped instanceof List) {
-					((List)mapped).add(paths[i]);
-				} else {
-					List newMapped= new ArrayList(2);
-					newMapped.add(mapped);
-					newMapped.add(paths[i]);
-					element2TreePaths.put(lastSegment, newMapped);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Constructs a selection based on the elements identified by the given tree
-	 * paths.
-	 * 
-	 * @param paths
-	 *            tree paths
-	 */
-	public TreeSelection(TreePath[] paths) {
-		this(new InitializeData(paths, null));
-	}
-
-	/**
-	 * Constructs a selection based on the elements identified by the given tree
-	 * paths.
-	 * 
-	 * @param paths
-	 *            tree paths
-	 * @param comparer 
-	 *            the comparer, or <code>null</code> if default equals is to be used
-	 */
-	public TreeSelection(TreePath[] paths, IElementComparer comparer) {
-		this(new InitializeData(paths, comparer));
-	}
-
-	/**
-	 * Constructs a selection based on the elements identified by the given tree
-	 * path.
-	 * 
-	 * @param treePath
-	 *            tree path, or <code>null</code> for an empty selection
-	 */
-	public TreeSelection(TreePath treePath) {
-		this(treePath != null ? new TreePath[] { treePath } : EMPTY_TREE_PATHS, null);
-	}
-
-	/**
-	 * Constructs a selection based on the elements identified by the given tree
-	 * path.
-	 * 
-	 * @param treePath
-	 *            tree path, or <code>null</code> for an empty selection
-	 * @param comparer 
-	 *            the comparer, or <code>null</code> if default equals is to be used
-	 */
-	public TreeSelection(TreePath treePath, IElementComparer comparer) {
-		this(treePath != null ? new TreePath[] { treePath } : EMPTY_TREE_PATHS, comparer);
-	}
-	
-	/**
-	 * Creates a new tree selection based on the initialization data.
-	 * 
-	 * @param data the data
-	 */
-	private TreeSelection(InitializeData data) {
-		super(data.selection);
-		paths= data.paths;
-		element2TreePaths= data.element2TreePaths;
-	}
-
-	/**
-	 * Creates a new empty selection. See also the static field
-	 * <code>EMPTY</code> which contains an empty selection singleton.
-	 * 
-	 * @see #EMPTY
-	 */
-	public TreeSelection() {
-		super();
-	}
-	
-	/**
-	 * Returns the element comparer passed in when the tree selection
-	 * has been created or <code>null</code> if no comparer has been
-	 * provided.
-	 * 
-	 * @return the element comparer or <code>null</code>
-	 * 
-	 * @since 3.2
-	 */
-	public IElementComparer getElementComparer() {
-		if (element2TreePaths == null)
-			return null;
-		return element2TreePaths.getComparer();
-	}
-	
-	public boolean equals(Object obj) {
-		if (!(obj instanceof TreeSelection)) {
-			// Fall back to super implementation, see bug 135837.
-			return super.equals(obj);
-		}
-		TreeSelection selection = (TreeSelection) obj;
-		int size = getPaths().length;
-		if (selection.getPaths().length == size) {
-			IElementComparer comparerOrNull = (getElementComparer() == selection
-					.getElementComparer()) ? getElementComparer() : null;
-			if (size > 0) {
-				for (int i = 0; i < paths.length; i++) {
-					if (!paths[i].equals(selection.paths[i], comparerOrNull)) {
-						return false;
-					}
-				}
-			}
-			return true;
-		}
-		return false;
-	}
-
-	public int hashCode() {
-		int code = getClass().hashCode();
-		if (paths != null) {
-			for (int i = 0; i < paths.length; i++) {
-				code = code * 17 + paths[i].hashCode(getElementComparer());
-			}
-		}
-		return code;
-	}
-
-	public TreePath[] getPaths() {
-		return paths==null ? EMPTY_TREE_PATHS : (TreePath[]) paths.clone();
-	}
-	
-	public TreePath[] getPathsFor(Object element) {
-		Object value= element2TreePaths==null ? null : element2TreePaths.get(element);
-		if (value == null) {
-			return EMPTY_TREE_PATHS;
-		} else if (value instanceof TreePath) {
-			return new TreePath[] { (TreePath)value };
-		} else if (value instanceof List) {
-			List l= (List)value;
-			return (TreePath[])l.toArray(new TreePath[l.size()]);
-		} else {
-			// should not happen:
-			Assert.isTrue(false, "Unhandled case"); //$NON-NLS-1$
-			return null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
deleted file mode 100644
index 53fbaae..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewer.java
+++ /dev/null
@@ -1,1152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - concept of ViewerRow,
- *                                                 refactoring (bug 153993), bug 167323, 191468, 205419
- *     Matthew Hall - bug 221988
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.TreeEvent;
-import org.eclipse.swt.events.TreeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * A concrete viewer based on an SWT <code>Tree</code> control.
- * <p>
- * This class is not intended to be subclassed outside the viewer framework. It
- * is designed to be instantiated with a pre-existing SWT tree control and
- * configured with a domain-specific content provider, label provider, element
- * filter (optional), and element sorter (optional).
- * </p>
- * <p>
- * As of 3.2, TreeViewer supports multiple equal elements (each with a
- * different parent chain) in the tree. This support requires that clients
- * enable the element map by calling <code>setUseHashLookup(true)</code>.
- * </p>
- * <p>
- * Content providers for tree viewers must implement either the
- * {@link ITreeContentProvider} interface, (as of 3.2) the
- * {@link ILazyTreeContentProvider} interface, or (as of 3.3) the
- * {@link ILazyTreePathContentProvider}. If the content provider is an
- * <code>ILazyTreeContentProvider</code> or an
- * <code>ILazyTreePathContentProvider</code>, the underlying Tree must be
- * created using the {@link SWT#VIRTUAL} style bit, the tree viewer will not
- * support sorting or filtering, and hash lookup must be enabled by calling
- * {@link #setUseHashlookup(boolean)}.
- * </p>
- * <p>
- * Users setting up an editable tree with more than 1 column <b>have</b> to pass the
- * SWT.FULL_SELECTION style bit
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class TreeViewer extends AbstractTreeViewer {
-
-	private static final String VIRTUAL_DISPOSE_KEY = Policy.JFACE
-			+ ".DISPOSE_LISTENER"; //$NON-NLS-1$
-
-	/**
-	 * This viewer's control.
-	 */
-	private Tree tree;
-
-	/**
-	 * Flag for whether the tree has been disposed of.
-	 */
-	private boolean treeIsDisposed = false;
-
-	private boolean contentProviderIsLazy;
-
-	private boolean contentProviderIsTreeBased;
-
-	/**
-	 * The row object reused
-	 */
-	private TreeViewerRow cachedRow;
-
-	/**
-	 * true if we are inside a preservingSelection() call
-	 */
-	private boolean insidePreservingSelection;
-
-	/**
-	 * Creates a tree viewer on a newly-created tree control under the given
-	 * parent. The tree control is created using the SWT style bits
-	 * <code>MULTI, H_SCROLL, V_SCROLL,</code> and <code>BORDER</code>. The
-	 * viewer has no input, no content provider, a default label provider, no
-	 * sorter, and no filters.
-	 *
-	 * @param parent
-	 *            the parent control
-	 */
-	public TreeViewer(Composite parent) {
-		this(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-	}
-
-	/**
-	 * Creates a tree viewer on a newly-created tree control under the given
-	 * parent. The tree control is created using the given SWT style bits. The
-	 * viewer has no input, no content provider, a default label provider, no
-	 * sorter, and no filters.
-	 *
-	 * @param parent
-	 *            the parent control
-	 * @param style
-	 *            the SWT style bits used to create the tree.
-	 */
-	public TreeViewer(Composite parent, int style) {
-		this(new Tree(parent, style));
-	}
-
-	/**
-	 * Creates a tree viewer on the given tree control. The viewer has no input,
-	 * no content provider, a default label provider, no sorter, and no filters.
-	 *
-	 * @param tree
-	 *            the tree control
-	 */
-	public TreeViewer(Tree tree) {
-		super();
-		this.tree = tree;
-		hookControl(tree);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void addTreeListener(Control c, TreeListener listener) {
-		((Tree) c).addTreeListener(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getColumnViewerOwner(int)
-	 */
-	protected Widget getColumnViewerOwner(int columnIndex) {
-		if (columnIndex < 0 || ( columnIndex > 0 && columnIndex >= getTree().getColumnCount() ) ) {
-			return null;
-		}
-
-		if (getTree().getColumnCount() == 0)// Hang it off the table if it
-			return getTree();
-
-		return getTree().getColumn(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected Item[] getChildren(Widget o) {
-		if (o instanceof TreeItem) {
-			return ((TreeItem) o).getItems();
-		}
-		if (o instanceof Tree) {
-			return ((Tree) o).getItems();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in Viewer.
-	 */
-	public Control getControl() {
-		return tree;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected boolean getExpanded(Item item) {
-		return ((TreeItem) item).getExpanded();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getItemAt(org.eclipse.swt.graphics.Point)
-	 */
-	protected Item getItemAt(Point p) {
-		TreeItem[] selection = tree.getSelection();
-
-		if( selection.length == 1 ) {
-			int columnCount = tree.getColumnCount();
-
-			for( int i = 0; i < columnCount; i++ ) {
-				if( selection[0].getBounds(i).contains(p) ) {
-					return selection[0];
-				}
-			}
-		}
-
-		return getTree().getItem(p);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected int getItemCount(Control widget) {
-		return ((Tree) widget).getItemCount();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected int getItemCount(Item item) {
-		return ((TreeItem) item).getItemCount();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected Item[] getItems(Item item) {
-		return ((TreeItem) item).getItems();
-	}
-
-	/**
-	 * The tree viewer implementation of this <code>Viewer</code> framework
-	 * method ensures that the given label provider is an instance of either
-	 * <code>ITableLabelProvider</code> or <code>ILabelProvider</code>. If
-	 * it is an <code>ITableLabelProvider</code>, then it provides a separate
-	 * label text and image for each column. If it is an
-	 * <code>ILabelProvider</code>, then it provides only the label text and
-	 * image for the first column, and any remaining columns are blank.
-	 */
-	public IBaseLabelProvider getLabelProvider() {
-		return super.getLabelProvider();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected Item getParentItem(Item item) {
-		return ((TreeItem) item).getParentItem();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected Item[] getSelection(Control widget) {
-		return ((Tree) widget).getSelection();
-	}
-
-	/**
-	 * Returns this tree viewer's tree control.
-	 *
-	 * @return the tree control
-	 */
-	public Tree getTree() {
-		return tree;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#hookControl(org.eclipse.swt.widgets.Control)
-	 */
-	protected void hookControl(Control control) {
-		super.hookControl(control);
-		Tree treeControl = (Tree) control;
-
-		if ((treeControl.getStyle() & SWT.VIRTUAL) != 0) {
-			treeControl.addDisposeListener(new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					treeIsDisposed = true;
-					unmapAllElements();
-				}
-			});
-			treeControl.addListener(SWT.SetData, new Listener() {
-
-				public void handleEvent(Event event) {
-					if (contentProviderIsLazy) {
-						TreeItem item = (TreeItem) event.item;
-						TreeItem parentItem = item.getParentItem();
-						int index = event.index;
-						virtualLazyUpdateWidget(
-								parentItem == null ? (Widget) getTree()
-										: parentItem, index);
-					}
-				}
-
-			});
-		}
-	}
-
-	protected ColumnViewerEditor createViewerEditor() {
-		return new TreeViewerEditor(this,null,new ColumnViewerEditorActivationStrategy(this),ColumnViewerEditor.DEFAULT);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected Item newItem(Widget parent, int flags, int ix) {
-		TreeItem item;
-
-		if (parent instanceof TreeItem) {
-			item = (TreeItem) createNewRowPart(getViewerRowFromItem(parent),
-					flags, ix).getItem();
-		} else {
-			item = (TreeItem) createNewRowPart(null, flags, ix).getItem();
-		}
-
-		return item;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void removeAll(Control widget) {
-		((Tree) widget).removeAll();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void setExpanded(Item node, boolean expand) {
-		((TreeItem) node).setExpanded(expand);
-		if (contentProviderIsLazy) {
-			// force repaints to happen
-			getControl().update();
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void setSelection(List items) {
-
-		Item[] current = getSelection(getTree());
-
-		// Don't bother resetting the same selection
-		if (isSameSelection(items, current)) {
-			return;
-		}
-
-		TreeItem[] newItems = new TreeItem[items.size()];
-		items.toArray(newItems);
-		getTree().setSelection(newItems);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared in AbstractTreeViewer.
-	 */
-	protected void showItem(Item item) {
-		getTree().showItem((TreeItem) item);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#getChild(org.eclipse.swt.widgets.Widget,
-	 *      int)
-	 */
-	protected Item getChild(Widget widget, int index) {
-		if (widget instanceof TreeItem) {
-			return ((TreeItem) widget).getItem(index);
-		}
-		if (widget instanceof Tree) {
-			return ((Tree) widget).getItem(index);
-		}
-		return null;
-	}
-
-	protected void assertContentProviderType(IContentProvider provider) {
-		if (provider instanceof ILazyTreeContentProvider
-				|| provider instanceof ILazyTreePathContentProvider) {
-			return;
-		}
-		super.assertContentProviderType(provider);
-	}
-
-	protected Object[] getRawChildren(Object parent) {
-		if (contentProviderIsLazy) {
-			return new Object[0];
-		}
-		return super.getRawChildren(parent);
-	}
-
-	void preservingSelection(Runnable updateCode, boolean reveal) {
-		if (insidePreservingSelection || !getPreserveSelection()){
-			// avoid preserving the selection if called reentrantly,
-			// see bug 172640
-			updateCode.run();
-			return;
-		}
-		insidePreservingSelection = true;
-		try {
-			super.preservingSelection(updateCode, reveal);
-		} finally {
-			insidePreservingSelection = false;
-		}
-	}
-
-	/**
-	 * For a TreeViewer with a tree with the VIRTUAL style bit set, set the
-	 * number of children of the given element or tree path. To set the number
-	 * of children of the invisible root of the tree, you can pass the input
-	 * object or an empty tree path.
-	 *
-	 * @param elementOrTreePath
-	 *            the element, or tree path
-	 * @param count
-	 *
-	 * @since 3.2
-	 */
-	public void setChildCount(final Object elementOrTreePath, final int count) {
-		if (checkBusy())
-			return;
-		preservingSelection(new Runnable() {
-			public void run() {
-				if (internalIsInputOrEmptyPath(elementOrTreePath)) {
-					getTree().setItemCount(count);
-					return;
-				}
-				Widget[] items = internalFindItems(elementOrTreePath);
-				for (int i = 0; i < items.length; i++) {
-					TreeItem treeItem = (TreeItem) items[i];
-					treeItem.setItemCount(count);
-				}
-			}
-		});
-	}
-
-	/**
-	 * For a TreeViewer with a tree with the VIRTUAL style bit set, replace the
-	 * given parent's child at index with the given element. If the given parent
-	 * is this viewer's input or an empty tree path, this will replace the root
-	 * element at the given index.
-	 * <p>
-	 * This method should be called by implementers of ILazyTreeContentProvider
-	 * to populate this viewer.
-	 * </p>
-	 *
-	 * @param parentElementOrTreePath
-	 *            the parent of the element that should be updated, or the tree
-	 *            path to that parent
-	 * @param index
-	 *            the index in the parent's children
-	 * @param element
-	 *            the new element
-	 *
-	 * @see #setChildCount(Object, int)
-	 * @see ILazyTreeContentProvider
-	 * @see ILazyTreePathContentProvider
-	 *
-	 * @since 3.2
-	 */
-	public void replace(final Object parentElementOrTreePath, final int index,
-			final Object element) {
-		if (checkBusy())
-			return;
-		Item[] selectedItems = getSelection(getControl());
-		TreeSelection selection = (TreeSelection) getSelection();
-		Widget[] itemsToDisassociate;
-		if (parentElementOrTreePath instanceof TreePath) {
-			TreePath elementPath = ((TreePath) parentElementOrTreePath)
-					.createChildPath(element);
-			itemsToDisassociate = internalFindItems(elementPath);
-		} else {
-			itemsToDisassociate = internalFindItems(element);
-		}
-		if (internalIsInputOrEmptyPath(parentElementOrTreePath)) {
-			if (index < tree.getItemCount()) {
-				TreeItem item = tree.getItem(index);
-				selection = adjustSelectionForReplace(selectedItems, selection, item, element, getRoot());
-				// disassociate any different item that represents the
-				// same element under the same parent (the tree)
-				for (int i = 0; i < itemsToDisassociate.length; i++) {
-					if (itemsToDisassociate[i] instanceof TreeItem) {
-						TreeItem itemToDisassociate = (TreeItem) itemsToDisassociate[i];
-						if (itemToDisassociate != item
-								&& itemToDisassociate.getParentItem() == null) {
-							int indexToDisassociate = getTree().indexOf(
-									itemToDisassociate);
-							disassociate(itemToDisassociate);
-							getTree().clear(indexToDisassociate, true);
-						}
-					}
-				}
-				Object oldData = item.getData();
-				updateItem(item, element);
-				if (!TreeViewer.this.equals(oldData, element)) {
-					item.clearAll(true);
-				}
-			}
-		} else {
-			Widget[] parentItems = internalFindItems(parentElementOrTreePath);
-			for (int i = 0; i < parentItems.length; i++) {
-				TreeItem parentItem = (TreeItem) parentItems[i];
-				if (index < parentItem.getItemCount()) {
-					TreeItem item = parentItem.getItem(index);
-					selection = adjustSelectionForReplace(selectedItems, selection, item, element, parentItem.getData());
-					// disassociate any different item that represents the
-					// same element under the same parent (the tree)
-					for (int j = 0; j < itemsToDisassociate.length; j++) {
-						if (itemsToDisassociate[j] instanceof TreeItem) {
-							TreeItem itemToDisassociate = (TreeItem) itemsToDisassociate[j];
-							if (itemToDisassociate != item
-									&& itemToDisassociate.getParentItem() == parentItem) {
-								int indexToDisaccociate = parentItem
-										.indexOf(itemToDisassociate);
-								disassociate(itemToDisassociate);
-								parentItem.clear(indexToDisaccociate, true);
-							}
-						}
-					}
-					Object oldData = item.getData();
-					updateItem(item, element);
-					if (!TreeViewer.this.equals(oldData, element)) {
-						item.clearAll(true);
-					}
-				}
-			}
-		}
-		// Restore the selection if we are not already in a nested preservingSelection:
-		if (!insidePreservingSelection) {
-			setSelectionToWidget(selection, false);
-			// send out notification if old and new differ
-			ISelection newSelection = getSelection();
-			if (!newSelection.equals(selection)) {
-				handleInvalidSelection(selection, newSelection);
-			}
-		}
-	}
-
-	/**
-	 * Fix for bug 185673: If the currently replaced item was selected, add it
-	 * to the selection that is being restored. Only do this if its getData() is
-	 * currently null
-	 *
-	 * @param selectedItems
-	 * @param selection
-	 * @param item
-	 * @param element
-	 * @return
-	 */
-	private TreeSelection adjustSelectionForReplace(Item[] selectedItems,
-			TreeSelection selection, TreeItem item, Object element, Object parentElement) {
-		if (item.getData() != null || selectedItems.length == selection.size()
-				|| parentElement == null) {
-			// Don't do anything - we are not seeing an instance of bug 185673
-			return selection;
-		}
-		for (int i = 0; i < selectedItems.length; i++) {
-			if (item == selectedItems[i]) {
-				// The current item was selected, but its data is null.
-				// The data will be replaced by the given element, so to keep
-				// it selected, we have to add it to the selection.
-				TreePath[] originalPaths = selection.getPaths();
-				int length = originalPaths.length;
-				TreePath[] paths = new TreePath[length + 1];
-				System.arraycopy(originalPaths, 0, paths, 0, length);
-				// set the element temporarily so that we can call getTreePathFromItem
-				item.setData(element);
-				paths[length] = getTreePathFromItem(item);
-				item.setData(null);
-				return new TreeSelection(paths, selection.getElementComparer());
-			}
-		}
-		// The item was not selected, return the given selection
-		return selection;
-	}
-
-	public boolean isExpandable(Object element) {
-		if (contentProviderIsLazy) {
-			TreeItem treeItem = (TreeItem) internalExpand(element, false);
-			if (treeItem == null) {
-				return false;
-			}
-			virtualMaterializeItem(treeItem);
-			return treeItem.getItemCount() > 0;
-		}
-		return super.isExpandable(element);
-	}
-
-	protected Object getParentElement(Object element) {
-		boolean oldBusy = isBusy();
-		setBusy(true);
-		try {
-			if (contentProviderIsLazy && !contentProviderIsTreeBased && !(element instanceof TreePath)) {
-				ILazyTreeContentProvider lazyTreeContentProvider = (ILazyTreeContentProvider) getContentProvider();
-				return lazyTreeContentProvider.getParent(element);
-			}
-			if (contentProviderIsLazy && contentProviderIsTreeBased && !(element instanceof TreePath)) {
-				ILazyTreePathContentProvider lazyTreePathContentProvider = (ILazyTreePathContentProvider) getContentProvider();
-				TreePath[] parents = lazyTreePathContentProvider
-				.getParents(element);
-				if (parents != null && parents.length > 0) {
-					return parents[0];
-				}
-			}
-			return super.getParentElement(element);
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	protected void createChildren(Widget widget) {
-		if (contentProviderIsLazy) {
-			Object element = widget.getData();
-			if (element == null && widget instanceof TreeItem) {
-				// parent has not been materialized
-				virtualMaterializeItem((TreeItem) widget);
-				// try getting the element now that updateElement was called
-				element = widget.getData();
-			}
-			if (element ==  null) {
-				// give up because the parent is still not materialized
-				return;
-			}
-			Item[] children = getChildren(widget);
-			if (children.length == 1 && children[0].getData() == null) {
-				// found a dummy node
-				virtualLazyUpdateChildCount(widget, children.length);
-				children = getChildren(widget);
-			}
-			// touch all children to make sure they are materialized
-			for (int i = 0; i < children.length; i++) {
-				if (children[i].getData() == null) {
-					virtualLazyUpdateWidget(widget, i);
-				}
-			}
-			return;
-		}
-		super.createChildren(widget);
-	}
-
-	protected void internalAdd(Widget widget, Object parentElement,
-			Object[] childElements) {
-		if (contentProviderIsLazy) {
-			if (widget instanceof TreeItem) {
-				TreeItem ti = (TreeItem) widget;
-				int count = ti.getItemCount() + childElements.length;
-				ti.setItemCount(count);
-				ti.clearAll(false);
-			} else {
-				Tree t = (Tree) widget;
-				t.setItemCount(t.getItemCount() + childElements.length);
-				t.clearAll(false);
-			}
-			return;
-		}
-		super.internalAdd(widget, parentElement, childElements);
-	}
-
-	private void virtualMaterializeItem(TreeItem treeItem) {
-		if (treeItem.getData() != null) {
-			// already materialized
-			return;
-		}
-		if (!contentProviderIsLazy) {
-			return;
-		}
-		int index;
-		Widget parent = treeItem.getParentItem();
-		if (parent == null) {
-			parent = treeItem.getParent();
-		}
-		Object parentElement = parent.getData();
-		if (parentElement != null) {
-			if (parent instanceof Tree) {
-				index = ((Tree) parent).indexOf(treeItem);
-			} else {
-				index = ((TreeItem) parent).indexOf(treeItem);
-			}
-			virtualLazyUpdateWidget(parent, index);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#internalRefreshStruct(org.eclipse.swt.widgets.Widget,
-	 *      java.lang.Object, boolean)
-	 */
-	protected void internalRefreshStruct(Widget widget, Object element,
-			boolean updateLabels) {
-		if (contentProviderIsLazy) {
-			// clear all starting with the given widget
-			if (widget instanceof Tree) {
-				((Tree) widget).clearAll(true);
-			} else if (widget instanceof TreeItem) {
-				((TreeItem) widget).clearAll(true);
-			}
-			int index = 0;
-			Widget parent = null;
-			if (widget instanceof TreeItem) {
-				TreeItem treeItem = (TreeItem) widget;
-				parent = treeItem.getParentItem();
-				if (parent == null) {
-					parent = treeItem.getParent();
-				}
-				if (parent instanceof Tree) {
-					index = ((Tree) parent).indexOf(treeItem);
-				} else {
-					index = ((TreeItem) parent).indexOf(treeItem);
-				}
-			}
-			virtualRefreshExpandedItems(parent, widget, element, index);
-			return;
-		}
-		super.internalRefreshStruct(widget, element, updateLabels);
-	}
-
-	/**
-	 * Traverses the visible (expanded) part of the tree and updates child
-	 * counts.
-	 *
-	 * @param parent the parent of the widget, or <code>null</code> if the widget is the tree
-	 * @param widget
-	 * @param element
-	 * @param index the index of the widget in the children array of its parent, or 0 if the widget is the tree
-	 */
-	private void virtualRefreshExpandedItems(Widget parent, Widget widget, Object element, int index) {
-		if (widget instanceof Tree) {
-			if (element == null) {
-				((Tree) widget).setItemCount(0);
-				return;
-			}
-			virtualLazyUpdateChildCount(widget, getChildren(widget).length);
-		} else if (((TreeItem) widget).getExpanded()) {
-			// prevent SetData callback
-			((TreeItem)widget).setText(" "); //$NON-NLS-1$
-			virtualLazyUpdateWidget(parent, index);
-		} else {
-			return;
-		}
-		Item[] items = getChildren(widget);
-		for (int i = 0; i < items.length; i++) {
-			Item item = items[i];
-			Object data = item.getData();
-			virtualRefreshExpandedItems(widget, item, data, i);
-		}
-	}
-
-	/*
-	 * To unmap elements correctly, we need to register a dispose listener with
-	 * the item if the tree is virtual.
-	 */
-	protected void mapElement(Object element, final Widget item) {
-		super.mapElement(element, item);
-		// make sure to unmap elements if the tree is virtual
-		if ((getTree().getStyle() & SWT.VIRTUAL) != 0) {
-			// only add a dispose listener if item hasn't already on assigned
-			// because it is reused
-			if (item.getData(VIRTUAL_DISPOSE_KEY) == null) {
-				item.setData(VIRTUAL_DISPOSE_KEY, Boolean.TRUE);
-				item.addDisposeListener(new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						if (!treeIsDisposed) {
-							Object data = item.getData();
-							if (usingElementMap() && data != null) {
-								unmapElement(data, item);
-							}
-						}
-					}
-				});
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ColumnViewer#getRowPartFromItem(org.eclipse.swt.widgets.Widget)
-	 */
-	protected ViewerRow getViewerRowFromItem(Widget item) {
-		if( cachedRow == null ) {
-			cachedRow = new TreeViewerRow((TreeItem) item);
-		} else {
-			cachedRow.setItem((TreeItem) item);
-		}
-
-		return cachedRow;
-	}
-
-	/**
-	 * Create a new ViewerRow at rowIndex
-	 *
-	 * @param parent
-	 * @param style
-	 * @param rowIndex
-	 * @return ViewerRow
-	 */
-	private ViewerRow createNewRowPart(ViewerRow parent, int style, int rowIndex) {
-		if (parent == null) {
-			if (rowIndex >= 0) {
-				return getViewerRowFromItem(new TreeItem(tree, style, rowIndex));
-			}
-			return getViewerRowFromItem(new TreeItem(tree, style));
-		}
-
-		if (rowIndex >= 0) {
-			return getViewerRowFromItem(new TreeItem((TreeItem) parent.getItem(),
-					SWT.NONE, rowIndex));
-		}
-
-		return getViewerRowFromItem(new TreeItem((TreeItem) parent.getItem(),
-				SWT.NONE));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#internalInitializeTree(org.eclipse.swt.widgets.Control)
-	 */
-	protected void internalInitializeTree(Control widget) {
-		if (contentProviderIsLazy) {
-			if (widget instanceof Tree && widget.getData() != null) {
-				virtualLazyUpdateChildCount(widget, 0);
-				return;
-			}
-		}
-		super.internalInitializeTree(tree);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#updatePlus(org.eclipse.swt.widgets.Item,
-	 *      java.lang.Object)
-	 */
-	protected void updatePlus(Item item, Object element) {
-		if (contentProviderIsLazy) {
-			Object data = item.getData();
-			int itemCount = 0;
-			if (data != null) {
-				// item is already materialized
-				itemCount = ((TreeItem) item).getItemCount();
-			}
-			virtualLazyUpdateHasChildren(item, itemCount);
-		} else {
-			super.updatePlus(item, element);
-		}
-	}
-
-	/**
-	 * Removes the element at the specified index of the parent.  The selection is updated if required.
-	 *
-	 * @param parentOrTreePath the parent element, the input element, or a tree path to the parent element
-	 * @param index child index
-	 * @since 3.3
-	 */
-	public void remove(final Object parentOrTreePath, final int index) {
-		if (checkBusy())
-			return;
-		final List oldSelection = new LinkedList(Arrays
-				.asList(((TreeSelection) getSelection()).getPaths()));
-		preservingSelection(new Runnable() {
-			public void run() {
-				TreePath removedPath = null;
-				if (internalIsInputOrEmptyPath(parentOrTreePath)) {
-					Tree tree = (Tree) getControl();
-					if (index < tree.getItemCount()) {
-						TreeItem item = tree.getItem(index);
-						if (item.getData() != null) {
-							removedPath = getTreePathFromItem(item);
-							disassociate(item);
-						}
-						item.dispose();
-					}
-				} else {
-					Widget[] parentItems = internalFindItems(parentOrTreePath);
-					for (int i = 0; i < parentItems.length; i++) {
-						TreeItem parentItem = (TreeItem) parentItems[i];
-						if (parentItem.isDisposed())
-							continue;
-						if (index < parentItem.getItemCount()) {
-							TreeItem item = parentItem.getItem(index);
-							if (item.getData() != null) {
-								removedPath = getTreePathFromItem(item);
-								disassociate(item);
-							}
-							item.dispose();
-						}
-					}
-				}
-				if (removedPath != null) {
-					boolean removed = false;
-					for (Iterator it = oldSelection.iterator(); it
-							.hasNext();) {
-						TreePath path = (TreePath) it.next();
-						if (path.startsWith(removedPath, getComparer())) {
-							it.remove();
-							removed = true;
-						}
-					}
-					if (removed) {
-						setSelection(new TreeSelection(
-								(TreePath[]) oldSelection
-										.toArray(new TreePath[oldSelection
-												.size()]), getComparer()),
-								false);
-					}
-
-				}
-			}
-		});
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#handleTreeExpand(org.eclipse.swt.events.TreeEvent)
-	 */
-	protected void handleTreeExpand(TreeEvent event) {
-	    // Fix for Bug 271744 because windows expanding doesn't fire a focus lost
-		if( isCellEditorActive() ) {
-			applyEditorValue();
-		}
-		
-		if (contentProviderIsLazy) {
-			if (event.item.getData() != null) {
-				Item[] children = getChildren(event.item);
-				if (children.length == 1 && children[0].getData()==null) {
-					// we have a dummy child node, ask for an updated child
-					// count
-					virtualLazyUpdateChildCount(event.item, children.length);
-				}
-				fireTreeExpanded(new TreeExpansionEvent(this, event.item
-						.getData()));
-			}
-			return;
-		}
-		super.handleTreeExpand(event);
-	}
-	
-	protected void handleTreeCollapse(TreeEvent event) {
-		// Fix for Bug 271744 because windows is firing collapse before
-		// focus lost event
-		if( isCellEditorActive() ) {
-			applyEditorValue();
-		}
-		
-		super.handleTreeCollapse(event);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#setContentProvider(org.eclipse.jface.viewers.IContentProvider)
-	 */
-	public void setContentProvider(IContentProvider provider) {
-		contentProviderIsLazy = (provider instanceof ILazyTreeContentProvider)
-				|| (provider instanceof ILazyTreePathContentProvider);
-		contentProviderIsTreeBased = provider instanceof ILazyTreePathContentProvider;
-		super.setContentProvider(provider);
-	}
-
-	/**
-	 * For a TreeViewer with a tree with the VIRTUAL style bit set, inform the
-	 * viewer about whether the given element or tree path has children. Avoid
-	 * calling this method if the number of children has already been set.
-	 *
-	 * @param elementOrTreePath
-	 *            the element, or tree path
-	 * @param hasChildren
-	 *
-	 * @since 3.3
-	 */
-	public void setHasChildren(final Object elementOrTreePath, final boolean hasChildren) {
-		if (checkBusy())
-			return;
-		preservingSelection(new Runnable() {
-			public void run() {
-				if (internalIsInputOrEmptyPath(elementOrTreePath)) {
-					if (hasChildren) {
-						virtualLazyUpdateChildCount(getTree(),
-								getChildren(getTree()).length);
-					} else {
-						setChildCount(elementOrTreePath, 0);
-					}
-					return;
-				}
-				Widget[] items = internalFindItems(elementOrTreePath);
-				for (int i = 0; i < items.length; i++) {
-					TreeItem item = (TreeItem) items[i];
-					if (!hasChildren) {
-						item.setItemCount(0);
-					} else {
-						if (!item.getExpanded()) {
-							item.setItemCount(1);
-							TreeItem child = item.getItem(0);
-							if (child.getData() != null) {
-								disassociate(child);
-							}
-							item.clear(0, true);
-						} else {
-                            virtualLazyUpdateChildCount(item, item.getItemCount());
-                        }
-					}
-				}
-			}
-		});
-	}
-
-	/**
-	 * Update the widget at index.
-	 * @param widget
-	 * @param index
-	 */
-	private void virtualLazyUpdateWidget(Widget widget, int index) {
-		boolean oldBusy = isBusy();
-		setBusy(false);
-		try {
-			if (contentProviderIsTreeBased) {
-				TreePath treePath;
-				if (widget instanceof Item) {
-					if (widget.getData() == null) {
-						// we need to materialize the parent first
-						// see bug 167668
-						// however, that would be too risky
-						// see bug 182782 and bug 182598
-						// so we just ignore this call altogether
-						// and don't do this: virtualMaterializeItem((TreeItem) widget);
-						return;
-					}
-					treePath = getTreePathFromItem((Item) widget);
-				} else {
-					treePath = TreePath.EMPTY;
-				}
-				((ILazyTreePathContentProvider) getContentProvider())
-						.updateElement(treePath, index);
-			} else {
-				((ILazyTreeContentProvider) getContentProvider()).updateElement(
-						widget.getData(), index);
-			}
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/**
-	 * Update the child count
-	 * @param widget
-	 * @param currentChildCount
-	 */
-	private void virtualLazyUpdateChildCount(Widget widget, int currentChildCount) {
-		boolean oldBusy = isBusy();
-		setBusy(false);
-		try {
-			if (contentProviderIsTreeBased) {
-				TreePath treePath;
-				if (widget instanceof Item) {
-					treePath = getTreePathFromItem((Item) widget);
-				} else {
-					treePath = TreePath.EMPTY;
-				}
-				((ILazyTreePathContentProvider) getContentProvider())
-				.updateChildCount(treePath, currentChildCount);
-			} else {
-				((ILazyTreeContentProvider) getContentProvider()).updateChildCount(widget.getData(), currentChildCount);
-			}
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	/**
-	 * Update the item with the current child count.
-	 * @param item
-	 * @param currentChildCount
-	 */
-	private void virtualLazyUpdateHasChildren(Item item, int currentChildCount) {
-		boolean oldBusy = isBusy();
-		setBusy(false);
-		try {
-			if (contentProviderIsTreeBased) {
-				TreePath treePath;
-				treePath = getTreePathFromItem(item);
-				if (currentChildCount == 0 || !((TreeItem)item).getExpanded()) {
-					// item is not expanded (but may have a plus currently)
-					((ILazyTreePathContentProvider) getContentProvider())
-					.updateHasChildren(treePath);
-				} else {
-					((ILazyTreePathContentProvider) getContentProvider())
-					.updateChildCount(treePath, currentChildCount);
-				}
-			} else {
-				((ILazyTreeContentProvider) getContentProvider()).updateChildCount(item.getData(), currentChildCount);
-			}
-		} finally {
-			setBusy(oldBusy);
-		}
-	}
-
-	protected void disassociate(Item item) {
-		if (contentProviderIsLazy) {
-			// avoid causing a callback:
-			item.setText(" "); //$NON-NLS-1$
-		}
-		super.disassociate(item);
-	}
-
-	protected int doGetColumnCount() {
-		return tree.getColumnCount();
-	}
-
-	/**
-	 * Sets a new selection for this viewer and optionally makes it visible.
-	 * <p>
-	 * <b>Currently the <code>reveal</code> parameter is not honored because
-	 * {@link Tree} does not provide an API to only select an item without
-	 * scrolling it into view</b>
-	 * </p>
-	 *
-	 * @param selection
-	 *            the new selection
-	 * @param reveal
-	 *            <code>true</code> if the selection is to be made visible,
-	 *            and <code>false</code> otherwise
-	 */
-	public void setSelection(ISelection selection, boolean reveal) {
-		super.setSelection(selection, reveal);
-	}
-
-	public void editElement(Object element, int column) {
-		if( element instanceof TreePath ) {
-			try {
-				getControl().setRedraw(false);
-				setSelection(new TreeSelection((TreePath) element));
-				TreeItem[] items = tree.getSelection();
-
-				if( items.length == 1 ) {
-					ViewerRow row = getViewerRowFromItem(items[0]);
-
-					if (row != null) {
-						ViewerCell cell = row.getCell(column);
-						if (cell != null) {
-							triggerEditorActivationEvent(new ColumnViewerEditorActivationEvent(cell));
-						}
-					}
-				}
-			} finally {
-				getControl().setRedraw(true);
-			}
-		} else {
-			super.editElement(element, column);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerColumn.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerColumn.java
deleted file mode 100644
index 3da3987..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerColumn.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * ViewerColumn implementation for TreeViewer to enable column-specific label
- * providers and editing support.
- * 
- * @since 3.3
- * 
- */
-public final class TreeViewerColumn extends ViewerColumn {
-	private TreeColumn column;
-
-	/**
-	 * Creates a new viewer column for the given {@link TreeViewer} on a new
-	 * {@link TreeColumn} with the given style bits. The column is inserted at
-	 * the given index into the list of columns.
-	 * 
-	 * @param viewer
-	 *            the tree viewer to which this column belongs
-	 * @param style
-	 *            the style bits used to create the column, for applicable style bits
-	 *            see {@link TreeColumn}
-	 * @see TreeColumn#TreeColumn(Tree, int)
-	 */
-	public TreeViewerColumn(TreeViewer viewer, int style) {
-		this(viewer, style, -1);
-	}
-
-	/**
-	 * Creates a new viewer column for the given {@link TreeViewer} on a new
-	 * {@link TreeColumn} with the given style bits. The column is added at the
-	 * end of the list of columns.
-	 * 
-	 * @param viewer
-	 *            the tree viewer to which this column belongs
-	 * @param style
-	 *            the style bits used to create the column, for applicable style bits
-	 *            see {@link TreeColumn}
-	 * @param index
-	 *            the index at which to place the newly created column
-	 * @see TreeColumn#TreeColumn(Tree, int, int)
-	 */
-	public TreeViewerColumn(TreeViewer viewer, int style, int index) {
-		this(viewer, createColumn(viewer.getTree(), style, index));
-	}
-
-	/**
-	 * Creates a new viewer column for the given {@link TreeViewer} on the given
-	 * {@link TreeColumn}.
-	 * 
-	 * @param viewer
-	 *            the tree viewer to which this column belongs
-	 * @param column
-	 *            the underlying tree column
-	 */
-	public TreeViewerColumn(TreeViewer viewer, TreeColumn column) {
-		super(viewer, column);
-		this.column = column;
-	}
-	
-	private static TreeColumn createColumn(Tree table, int style, int index) {
-		if (index >= 0) {
-			return new TreeColumn(table, style, index);
-		}
-
-		return new TreeColumn(table, style);
-	}
-
-	/**
-	 * @return the underlying SWT column
-	 */
-	public TreeColumn getColumn() {
-		return column;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerEditor.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerEditor.java
deleted file mode 100644
index 91f600b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerEditor.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											   fixes in bug 198665, 200731, 187963
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.CellEditor.LayoutData;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TreeEditor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * This is an editor implementation for {@link Tree}
- *
- * @since 3.3
- */
-public class TreeViewerEditor extends ColumnViewerEditor {
-	/**
-	 * This viewer's tree editor.
-	 */
-	private TreeEditor treeEditor;
-
-	private SWTFocusCellManager focusCellManager;
-
-	/**
-	 * @param viewer
-	 *            the viewer the editor is attached to
-	 * @param focusCellManager
-	 *            the cell focus manager if one used or <code>null</code>
-	 * @param editorActivationStrategy
-	 *            the strategy used to decide about the editor activation
-	 * @param feature
-	 *            the feature mask
-	 */
-	TreeViewerEditor(TreeViewer viewer, SWTFocusCellManager focusCellManager,
-			ColumnViewerEditorActivationStrategy editorActivationStrategy,
-			int feature) {
-		super(viewer, editorActivationStrategy, feature);
-		treeEditor = new TreeEditor(viewer.getTree());
-		this.focusCellManager = focusCellManager;
-	}
-
-	/**
-	 * Create a customized editor with focusable cells
-	 *
-	 * @param viewer
-	 *            the viewer the editor is created for
-	 * @param focusCellManager
-	 *            the cell focus manager if one needed else <code>null</code>
-	 * @param editorActivationStrategy
-	 *            activation strategy to control if an editor activated
-	 * @param feature
-	 *            bit mask controlling the editor
-	 *            <ul>
-	 *            <li>{@link ColumnViewerEditor#DEFAULT}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-	 *            </ul>
-	 * @see #create(TreeViewer, ColumnViewerEditorActivationStrategy, int)
-	 */
-	public static void create(TreeViewer viewer,
-			SWTFocusCellManager focusCellManager,
-			ColumnViewerEditorActivationStrategy editorActivationStrategy,
-			int feature) {
-		TreeViewerEditor editor = new TreeViewerEditor(viewer,
-				focusCellManager, editorActivationStrategy, feature);
-		viewer.setColumnViewerEditor(editor);
-		if (focusCellManager != null) {
-			focusCellManager.init();
-		}
-	}
-
-	/**
-	 * Create a customized editor whose activation process is customized
-	 *
-	 * @param viewer
-	 *            the viewer the editor is created for
-	 * @param editorActivationStrategy
-	 *            activation strategy to control if an editor activated
-	 * @param feature
-	 *            bit mask controlling the editor
-	 *            <ul>
-	 *            <li>{@link ColumnViewerEditor#DEFAULT}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-	 *            <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-	 *            </ul>
-	 */
-	public static void create(TreeViewer viewer,
-			ColumnViewerEditorActivationStrategy editorActivationStrategy,
-			int feature) {
-		create(viewer, null, editorActivationStrategy, feature);
-	}
-
-	protected void setEditor(Control w, Item item, int fColumnNumber) {
-		treeEditor.setEditor(w, (TreeItem) item, fColumnNumber);
-	}
-
-	protected void setLayoutData(LayoutData layoutData) {
-		treeEditor.grabHorizontal = layoutData.grabHorizontal;
-		treeEditor.horizontalAlignment = layoutData.horizontalAlignment;
-		treeEditor.minimumWidth = layoutData.minimumWidth;
-		treeEditor.verticalAlignment = layoutData.verticalAlignment;
-		if( layoutData.minimumHeight != SWT.DEFAULT ) {
-			treeEditor.minimumHeight = layoutData.minimumHeight;
-		}
-	}
-
-	public ViewerCell getFocusCell() {
-		if (focusCellManager != null) {
-			return focusCellManager.getFocusCell();
-		}
-
-		return super.getFocusCell();
-	}
-
-	protected void updateFocusCell(ViewerCell focusCell,
-			ColumnViewerEditorActivationEvent event) {
-		// Update the focus cell when we activated the editor with these 2
-		// events
-		if (event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
-				|| event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL) {
-
-			List l = getViewer().getSelectionFromWidget();
-
-			if (!l.contains(focusCell.getElement())) {
-				getViewer().setSelection(
-						new TreeSelection(focusCell.getViewerRow()
-								.getTreePath()),true);
-			}
-			
-			// Set the focus cell after the selection is updated because else
-			// the cell is not scrolled into view
-			if (focusCellManager != null) {
-				focusCellManager.setFocusCell(focusCell);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerFocusCellManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerFocusCellManager.java
deleted file mode 100644
index 6944a0f..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerFocusCellManager.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl<tom.schindl@bestsolution.at> - initial API and implementation
- *     											- fix in bug: 195908, 210752
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * This class is responsible to provide the concept of cells for {@link Tree}.
- * This concept is needed to provide features like editor activation with the
- * keyboard
- *
- * @since 3.3
- *
- */
-public class TreeViewerFocusCellManager extends SWTFocusCellManager {
-	private static final CellNavigationStrategy TREE_NAVIGATE = new CellNavigationStrategy() {
-		public void collapse(ColumnViewer viewer, ViewerCell cellToCollapse,
-				Event event) {
-			if (cellToCollapse != null) {
-				((TreeItem) cellToCollapse.getItem()).setExpanded(false);
-			}
-		}
-
-		public void expand(ColumnViewer viewer, ViewerCell cellToExpand,
-				Event event) {
-			if (cellToExpand != null) {
-				TreeViewer v = (TreeViewer) viewer;
-				v.setExpandedState(v.getTreePathFromItem((Item) cellToExpand
-						.getItem()), true);
-			}
-		}
-
-		public boolean isCollapseEvent(ColumnViewer viewer,
-				ViewerCell cellToCollapse, Event event) {
-
-			if (cellToCollapse == null) {
-				return false;
-			}
-
-			return cellToCollapse != null
-					&& ((TreeItem) cellToCollapse.getItem()).getExpanded()
-					&& event.keyCode == SWT.ARROW_LEFT
-					&& isFirstColumnCell(cellToCollapse);
-		}
-
-		public boolean isExpandEvent(ColumnViewer viewer,
-				ViewerCell cellToExpand, Event event) {
-
-			if (cellToExpand == null) {
-				return false;
-			}
-
-			return cellToExpand != null
-					&& ((TreeItem) cellToExpand.getItem()).getItemCount() > 0
-					&& !((TreeItem) cellToExpand.getItem()).getExpanded()
-					&& event.keyCode == SWT.ARROW_RIGHT
-					&& isFirstColumnCell(cellToExpand);
-		}
-
-		private boolean isFirstColumnCell(ViewerCell cell) {
-			return cell.getViewerRow().getVisualIndex(cell.getColumnIndex()) == 0;
-		}
-	};
-
-	/**
-	 * Create a new manager using a default navigation strategy:
-	 * <ul>
-	 * <li><code>SWT.ARROW_UP</code>: navigate to cell above</li>
-	 * <li><code>SWT.ARROW_DOWN</code>: navigate to cell below</li>
-	 * <li><code>SWT.ARROW_RIGHT</code>: on first column (collapses if item
-	 * is expanded) else navigate to next visible cell on the right</li>
-	 * <li><code>SWT.ARROW_LEFT</code>: on first column (expands if item is
-	 * collapsed) else navigate to next visible cell on the left</li>
-	 * </ul>
-	 *
-	 * @param viewer
-	 *            the viewer the manager is bound to
-	 * @param focusDrawingDelegate
-	 *            the delegate responsible to highlight selected cell
-	 */
-	public TreeViewerFocusCellManager(TreeViewer viewer,
-			FocusCellHighlighter focusDrawingDelegate) {
-		this(viewer, focusDrawingDelegate, TREE_NAVIGATE);
-	}
-
-	/**
-	 * Create a new manager with a custom navigation strategy
-	 *
-	 * @param viewer
-	 *            the viewer the manager is bound to
-	 * @param focusDrawingDelegate
-	 *            the delegate responsible to highlight selected cell
-	 * @param navigationStrategy
-	 *            the strategy used to navigate the cells
-	 * @since 3.4
-	 */
-	public TreeViewerFocusCellManager(TreeViewer viewer,
-			FocusCellHighlighter focusDrawingDelegate,
-			CellNavigationStrategy navigationStrategy) {
-		super(viewer, focusDrawingDelegate, navigationStrategy);
-	}
-
-	ViewerCell getInitialFocusCell() {
-		Tree tree = (Tree) getViewer().getControl();
-
-		if (! tree.isDisposed() && tree.getItemCount() > 0 && ! tree.getItem(0).isDisposed()) {
-			return getViewer().getViewerRowFromItem(tree.getItem(0)).getCell(0);
-		}
-
-		return null;
-	}
-
-	public ViewerCell getFocusCell() {
-		ViewerCell cell = super.getFocusCell();
-		Tree t = (Tree) getViewer().getControl();
-
-		// It is possible that the selection has changed under the hood
-		if (cell != null) {
-			if (t.getSelection().length == 1
-					&& t.getSelection()[0] != cell.getItem()) {
-				setFocusCell(getViewer().getViewerRowFromItem(
-						t.getSelection()[0]).getCell(cell.getColumnIndex()));
-			}
-		}
-
-		return super.getFocusCell();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerRow.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerRow.java
deleted file mode 100644
index f9f2dc3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TreeViewerRow.java
+++ /dev/null
@@ -1,404 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											 - fix in bug: 174355,171126,,195908,198035,215069,227421
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import java.util.LinkedList;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * TreeViewerRow is the Tree implementation of ViewerRow.
- *
- * @since 3.3
- *
- */
-public class TreeViewerRow extends ViewerRow {
-	private TreeItem item;
-
-	/**
-	 * Create a new instance of the receiver.
-	 *
-	 * @param item
-	 */
-	TreeViewerRow(TreeItem item) {
-		this.item = item;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getBounds(int)
-	 */
-	public Rectangle getBounds(int columnIndex) {
-		return item.getBounds(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getBounds()
-	 */
-	public Rectangle getBounds() {
-		return item.getBounds();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getColumnCount()
-	 */
-	public int getColumnCount() {
-		return item.getParent().getColumnCount();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getItem()
-	 */
-	public Widget getItem() {
-		return item;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getBackground(int)
-	 */
-	public Color getBackground(int columnIndex) {
-		return item.getBackground(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getFont(int)
-	 */
-	public Font getFont(int columnIndex) {
-		return item.getFont(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getForeground(int)
-	 */
-	public Color getForeground(int columnIndex) {
-		return item.getForeground(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getImage(int)
-	 */
-	public Image getImage(int columnIndex) {
-		return item.getImage(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getText(int)
-	 */
-	public String getText(int columnIndex) {
-		return item.getText(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#setBackground(int,
-	 *      org.eclipse.swt.graphics.Color)
-	 */
-	public void setBackground(int columnIndex, Color color) {
-		item.setBackground(columnIndex, color);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#setFont(int,
-	 *      org.eclipse.swt.graphics.Font)
-	 */
-	public void setFont(int columnIndex, Font font) {
-		item.setFont(columnIndex, font);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#setForeground(int,
-	 *      org.eclipse.swt.graphics.Color)
-	 */
-	public void setForeground(int columnIndex, Color color) {
-		item.setForeground(columnIndex, color);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#setImage(int,
-	 *      org.eclipse.swt.graphics.Image)
-	 */
-	public void setImage(int columnIndex, Image image) {
-		Image oldImage = item.getImage(columnIndex);
-		if (image != oldImage) {
-			item.setImage(columnIndex, image);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#setText(int, java.lang.String)
-	 */
-	public void setText(int columnIndex, String text) {
-		item.setText(columnIndex, text == null ? "" : text); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see org.eclipse.jface.viewers.ViewerRow#getControl()
-	 */
-	public Control getControl() {
-		return item.getParent();
-	}
-
-	public ViewerRow getNeighbor(int direction, boolean sameLevel) {
-		if (direction == ViewerRow.ABOVE) {
-			return getRowAbove(sameLevel);
-		} else if (direction == ViewerRow.BELOW) {
-			return getRowBelow(sameLevel);
-		} else {
-			throw new IllegalArgumentException(
-					"Illegal value of direction argument."); //$NON-NLS-1$
-		}
-	}
-
-	private ViewerRow getRowBelow(boolean sameLevel) {
-		Tree tree = item.getParent();
-
-		// This means we have top-level item
-		if (item.getParentItem() == null) {
-			if (sameLevel || !item.getExpanded()) {
-				int index = tree.indexOf(item) + 1;
-
-				if (index < tree.getItemCount()) {
-					return new TreeViewerRow(tree.getItem(index));
-				}
-			} else if (item.getExpanded() && item.getItemCount() > 0) {
-				return new TreeViewerRow(item.getItem(0));
-			}
-		} else {
-			if (sameLevel || !item.getExpanded()) {
-				TreeItem parentItem = item.getParentItem();
-
-				int nextIndex = parentItem.indexOf(item) + 1;
-				int totalIndex = parentItem.getItemCount();
-
-				TreeItem itemAfter;
-
-				// This would mean that it was the last item
-				if (nextIndex == totalIndex) {
-					itemAfter = findNextItem(parentItem);
-				} else {
-					itemAfter = parentItem.getItem(nextIndex);
-				}
-
-				if (itemAfter != null) {
-					return new TreeViewerRow(itemAfter);
-				}
-
-			} else if (item.getExpanded() && item.getItemCount() > 0) {
-				return new TreeViewerRow(item.getItem(0));
-			}
-		}
-
-		return null;
-	}
-
-	private ViewerRow getRowAbove(boolean sameLevel) {
-		Tree tree = item.getParent();
-
-		// This means we have top-level item
-		if (item.getParentItem() == null) {
-			int index = tree.indexOf(item) - 1;
-			TreeItem nextTopItem = null;
-
-			if (index >= 0) {
-				nextTopItem = tree.getItem(index);
-			}
-
-			if (nextTopItem != null) {
-				if (sameLevel) {
-					return new TreeViewerRow(nextTopItem);
-				}
-
-				return new TreeViewerRow(findLastVisibleItem(nextTopItem));
-			}
-		} else {
-			TreeItem parentItem = item.getParentItem();
-			int previousIndex = parentItem.indexOf(item) - 1;
-
-			TreeItem itemBefore;
-			if (previousIndex >= 0) {
-				if (sameLevel) {
-					itemBefore = parentItem.getItem(previousIndex);
-				} else {
-					itemBefore = findLastVisibleItem(parentItem
-							.getItem(previousIndex));
-				}
-			} else {
-				itemBefore = parentItem;
-			}
-
-			if (itemBefore != null) {
-				return new TreeViewerRow(itemBefore);
-			}
-		}
-
-		return null;
-	}
-
-	private TreeItem findLastVisibleItem(TreeItem parentItem) {
-		TreeItem rv = parentItem;
-
-		while (rv.getExpanded() && rv.getItemCount() > 0) {
-			rv = rv.getItem(rv.getItemCount() - 1);
-		}
-
-		return rv;
-	}
-
-	private TreeItem findNextItem(TreeItem item) {
-		TreeItem rv = null;
-		Tree tree = item.getParent();
-		TreeItem parentItem = item.getParentItem();
-
-		int nextIndex;
-		int totalItems;
-
-		if (parentItem == null) {
-			nextIndex = tree.indexOf(item) + 1;
-			totalItems = tree.getItemCount();
-		} else {
-			nextIndex = parentItem.indexOf(item) + 1;
-			totalItems = parentItem.getItemCount();
-		}
-
-		// This is once more the last item in the tree
-		// Search on
-		if (nextIndex == totalItems) {
-			if (item.getParentItem() != null) {
-				rv = findNextItem(item.getParentItem());
-			}
-		} else {
-			if (parentItem == null) {
-				rv = tree.getItem(nextIndex);
-			} else {
-				rv = parentItem.getItem(nextIndex);
-			}
-		}
-
-		return rv;
-	}
-
-	public TreePath getTreePath() {
-		TreeItem tItem = item;
-		LinkedList segments = new LinkedList();
-		while (tItem != null) {
-			Object segment = tItem.getData();
-			Assert.isNotNull(segment);
-			segments.addFirst(segment);
-			tItem = tItem.getParentItem();
-		}
-
-		return new TreePath(segments.toArray());
-	}
-
-	void setItem(TreeItem item) {
-		this.item = item;
-	}
-
-	public Object clone() {
-		return new TreeViewerRow(item);
-	}
-
-	public Object getElement() {
-		return item.getData();
-	}
-
-	public int getVisualIndex(int creationIndex) {
-		int[] order = item.getParent().getColumnOrder();
-
-		for (int i = 0; i < order.length; i++) {
-			if (order[i] == creationIndex) {
-				return i;
-			}
-		}
-
-		return super.getVisualIndex(creationIndex);
-	}
-
-	public int getCreationIndex(int visualIndex) {
-		if( item != null && ! item.isDisposed() && hasColumns() && isValidOrderIndex(visualIndex) ) {
-			return item.getParent().getColumnOrder()[visualIndex];
-		}
-		return super.getCreationIndex(visualIndex);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getTextBounds(int)
-	 */
-	public Rectangle getTextBounds(int index) {
-		return item.getTextBounds(index);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ViewerRow#getImageBounds(int)
-	 */
-	public Rectangle getImageBounds(int index) {
-		return item.getImageBounds(index);
-	}	
-	
-	private boolean hasColumns() {
-		return this.item.getParent().getColumnCount() != 0;
-	}
-
-	private boolean isValidOrderIndex(int currentIndex) {
-		return currentIndex < this.item.getParent().getColumnOrder().length;
-	}
-
-	int getWidth(int columnIndex) {
-		return item.getParent().getColumn(columnIndex).getWidth();
-	}
-	
-	protected boolean scrollCellIntoView(int columnIndex) {
-		item.getParent().showItem(item);
-		if( hasColumns() ) {
-			item.getParent().showColumn(item.getParent().getColumn(columnIndex));	
-		}
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/Viewer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/Viewer.java
deleted file mode 100644
index bca6433..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/Viewer.java
+++ /dev/null
@@ -1,406 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.events.HelpEvent;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-
-/**
- * A viewer is a model-based adapter on a widget.
- * <p>
- * A viewer can be created as an adapter on a pre-existing control (e.g., 
- * creating a <code>ListViewer</code> on an existing <code>List</code> control).
- * All viewers also provide a convenience constructor for creating the control.
- * </p>
- * <p>
- * Implementing a concrete viewer typically involves the following steps:
- * <ul>
- * <li>
- * create SWT controls for viewer (in constructor) (optional)
- * </li>
- * <li>
- * initialize SWT controls from input (inputChanged)
- * </li>
- * <li>
- * define viewer-specific update methods
- * </li>
- * <li>
- * support selections (<code>setSelection</code>, <code>getSelection</code>)
- * </li>
- * </ul>
- * </p>
- */
-public abstract class Viewer implements IInputSelectionProvider {
-
-    /**
-     * List of selection change listeners (element type: <code>ISelectionChangedListener</code>).
-     *
-     * @see #fireSelectionChanged
-     */
-    private ListenerList selectionChangedListeners = new ListenerList();
-
-    /**
-     * List of help request listeners (element type: <code>org.eclipse.swt.events.HelpListener</code>).
-     * Help request listeners.
-     *
-     * @see #handleHelpRequest
-     */
-    private ListenerList helpListeners = new ListenerList();
-
-    /**
-     * The names of this viewer's properties.
-     * <code>null</code> if this viewer has no properties.
-     *
-     * @see #setData
-     */
-    private String[] keys;
-
-    /**
-     * The values of this viewer's properties.
-     * <code>null</code> if this viewer has no properties.
-     * This array parallels the value of the <code>keys</code> field.
-     *
-     * @see #setData
-     */
-    private Object[] values;
-
-    /**
-     * Remembers whether we've hooked the help listener on the control or not.
-     */
-    private boolean helpHooked = false;
-
-    /**
-     * Help listener for the control, created lazily when client's first help listener is added.
-     */
-    private HelpListener helpListener = null;
-
-    /**
-     * Unique key for associating element data with widgets.
-     * @see org.eclipse.swt.widgets.Widget#setData(String, Object)
-     */
-    protected static final String WIDGET_DATA_KEY = "org.eclipse.jface.viewers.WIDGET_DATA";//$NON-NLS-1$
-
-    /**
-     * Creates a new viewer.
-     */
-    protected Viewer() {
-    }
-
-    /**
-     * Adds a listener for help requests in this viewer.
-     * Has no effect if an identical listener is already registered.
-     *
-     * @param listener a help listener
-     */
-    public void addHelpListener(HelpListener listener) {
-        helpListeners.add(listener);
-        if (!helpHooked) {
-            Control control = getControl();
-            if (control != null && !control.isDisposed()) {
-                if (this.helpListener == null) {
-                    this.helpListener = new HelpListener() {
-                        public void helpRequested(HelpEvent event) {
-                            handleHelpRequest(event);
-                        }
-                    };
-                }
-                control.addHelpListener(this.helpListener);
-                helpHooked = true;
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        selectionChangedListeners.add(listener);
-    }
-
-    /**
-     * Notifies any help listeners that help has been requested.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param event a help event
-     *
-     * @see HelpListener#helpRequested(org.eclipse.swt.events.HelpEvent)
-     */
-    protected void fireHelpRequested(HelpEvent event) {
-        Object[] listeners = helpListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((HelpListener) listeners[i]).helpRequested(event);
-        }
-    }
-
-    /**
-     * Notifies any selection changed listeners that the viewer's selection has changed.
-     * Only listeners registered at the time this method is called are notified.
-     *
-     * @param event a selection changed event
-     *
-     * @see ISelectionChangedListener#selectionChanged
-     */
-    protected void fireSelectionChanged(final SelectionChangedEvent event) {
-        Object[] listeners = selectionChangedListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
-            SafeRunnable.run(new SafeRunnable() {
-                public void run() {
-                    l.selectionChanged(event);
-                }
-            });
-        }
-    }
-
-    /**
-     * Returns the primary control associated with this viewer.
-     *
-     * @return the SWT control which displays this viewer's content
-     */
-    public abstract Control getControl();
-
-    /**
-     * Returns the value of the property with the given name,
-     * or <code>null</code> if the property is not found.
-     * <p>
-     * The default implementation performs a (linear) search of
-     * an internal table. Overriding this method is generally not
-     * required if the number of different keys is small. If a more
-     * efficient representation of a viewer's properties is required,
-     * override both <code>getData</code> and <code>setData</code>.
-     * </p>
-     *
-     * @param key the property name
-     * @return the property value, or <code>null</code> if
-     *    the property is not found
-     */
-    public Object getData(String key) {
-        Assert.isNotNull(key);
-        if (keys == null) {
-			return null;
-		}
-        for (int i = 0; i < keys.length; i++) {
-            if (keys[i].equals(key)) {
-				return values[i];
-			}
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Copy-down of method declared on <code>IInputProvider</code>.
-     */
-    public abstract Object getInput();
-
-    /* (non-Javadoc)
-     * Copy-down of method declared on <code>ISelectionProvider</code>.
-     */
-    public abstract ISelection getSelection();
-
-    /**
-     * Handles a help request from the underlying SWT control.
-     * The default behavior is to fire a help request,
-     * with the event's data modified to hold this viewer.
-     * @param event the event
-     * 
-     */
-    protected void handleHelpRequest(HelpEvent event) {
-        Object oldData = event.data;
-        event.data = this;
-        fireHelpRequested(event);
-        event.data = oldData;
-    }
-
-    /**
-     * Internal hook method called when the input to this viewer is
-     * initially set or subsequently changed.
-     * <p>
-     * The default implementation does nothing. Subclassers may override 
-     * this method to do something when a viewer's input is set.
-     * A typical use is populate the viewer.
-     * </p>
-     *
-     * @param input the new input of this viewer, or <code>null</code> if none
-     * @param oldInput the old input element or <code>null</code> if there
-     *   was previously no input
-     */
-    protected void inputChanged(Object input, Object oldInput) {
-    }
-
-    /**
-     * Refreshes this viewer completely with information freshly obtained from this
-     * viewer's model.
-     */
-    public abstract void refresh();
-
-    /**
-     * Removes the given help listener from this viewer.
-     * Has no affect if an identical listener is not registered.
-     *
-     * @param listener a help listener
-     */
-    public void removeHelpListener(HelpListener listener) {
-        helpListeners.remove(listener);
-        if (helpListeners.size() == 0) {
-            Control control = getControl();
-            if (control != null && !control.isDisposed()) {
-                control.removeHelpListener(this.helpListener);
-                helpHooked = false;
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        selectionChangedListeners.remove(listener);
-    }
-
-    /**
-     * Scrolls the viewer's control down by one item from the given
-     * display-relative coordinates.  Returns the newly revealed Item,
-     * or <code>null</code> if no scrolling occurred or if the viewer
-     * doesn't represent an item-based widget.
-     *
-     * @param x horizontal coordinate
-     * @param y vertical coordinate
-     * @return the item scrolled down to
-     */
-    public Item scrollDown(int x, int y) {
-        return null;
-    }
-
-    /**
-     * Scrolls the viewer's control up by one item from the given
-     * display-relative coordinates.  Returns the newly revealed Item,
-     * or <code>null</code> if no scrolling occurred or if the viewer
-     * doesn't represent an item-based widget.
-     *
-     * @param x horizontal coordinate
-     * @param y vertical coordinate
-     * @return the item scrolled up to
-     */
-    public Item scrollUp(int x, int y) {
-        return null;
-    }
-
-    /**
-     * Sets the value of the property with the given name to the
-     * given value, or to <code>null</code> if the property is to be
-     * removed. If this viewer has such a property, its value is
-     * replaced; otherwise a new property is added.
-     * <p>
-     * The default implementation records properties in an internal
-     * table which is searched linearly. Overriding this method is generally not
-     * required if the number of different keys is small. If a more
-     * efficient representation of a viewer's properties is required,
-     * override both <code>getData</code> and <code>setData</code>.
-     * </p>
-     *
-     * @param key the property name
-     * @param value the property value, or <code>null</code> if
-     *    the property is not found
-     */
-    public void setData(String key, Object value) {
-        Assert.isNotNull(key);
-        /* Remove the key/value pair */
-        if (value == null) {
-            if (keys == null) {
-				return;
-			}
-            int index = 0;
-            while (index < keys.length && !keys[index].equals(key)) {
-				index++;
-			}
-            if (index == keys.length) {
-				return;
-			}
-            if (keys.length == 1) {
-                keys = null;
-                values = null;
-            } else {
-                String[] newKeys = new String[keys.length - 1];
-                Object[] newValues = new Object[values.length - 1];
-                System.arraycopy(keys, 0, newKeys, 0, index);
-                System.arraycopy(keys, index + 1, newKeys, index,
-                        newKeys.length - index);
-                System.arraycopy(values, 0, newValues, 0, index);
-                System.arraycopy(values, index + 1, newValues, index,
-                        newValues.length - index);
-                keys = newKeys;
-                values = newValues;
-            }
-            return;
-        }
-
-        /* Add the key/value pair */
-        if (keys == null) {
-            keys = new String[] { key };
-            values = new Object[] { value };
-            return;
-        }
-        for (int i = 0; i < keys.length; i++) {
-            if (keys[i].equals(key)) {
-                values[i] = value;
-                return;
-            }
-        }
-        String[] newKeys = new String[keys.length + 1];
-        Object[] newValues = new Object[values.length + 1];
-        System.arraycopy(keys, 0, newKeys, 0, keys.length);
-        System.arraycopy(values, 0, newValues, 0, values.length);
-        newKeys[keys.length] = key;
-        newValues[values.length] = value;
-        keys = newKeys;
-        values = newValues;
-    }
-
-    /**
-     * Sets or clears the input for this viewer.
-     *
-     * @param input the input of this viewer, or <code>null</code> if none
-     */
-    public abstract void setInput(Object input);
-
-    /**
-	 * The viewer implementation of this <code>ISelectionProvider</code>
-	 * method make the new selection for this viewer without making it visible.
-	 * <p>
-	 * This method is equivalent to <code>setSelection(selection,false)</code>.
-	 * </p>
-	 * <p>
-	 * Note that some implementations may not be able to set the selection
-	 * without also revealing it, for example (as of 3.3) TreeViewer.
-	 * </p>
-	 */
-    public void setSelection(ISelection selection) {
-        setSelection(selection, false);
-    }
-
-    /**
-     * Sets a new selection for this viewer and optionally makes it visible.
-     * <p>
-     * Subclasses must implement this method.
-     * </p>
-     *
-     * @param selection the new selection
-     * @param reveal <code>true</code> if the selection is to be made
-     *   visible, and <code>false</code> otherwise
-     */
-    public abstract void setSelection(ISelection selection, boolean reveal);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerCell.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerCell.java
deleted file mode 100644
index 58a9fbc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerCell.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *     											 - fix in bug: 195908,198035,215069,215735,227421
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * The ViewerCell is the JFace representation of a cell entry in a ViewerRow.
- * 
- * @since 3.3
- * 
- */
-public class ViewerCell {
-	private int columnIndex;
-
-	private ViewerRow row;
-
-	private Object element;
-
-	/**
-	 * Constant denoting the cell above current one (value is 1).
-	 */
-	public static int ABOVE = 1;
-
-	/**
-	 * Constant denoting the cell below current one (value is 2).
-	 */
-	public static int BELOW = 1 << 1;
-
-	/**
-	 * Constant denoting the cell to the left of the current one (value is 4).
-	 */
-	public static int LEFT = 1 << 2;
-
-	/**
-	 * Constant denoting the cell to the right of the current one (value is 8).
-	 */
-	public static int RIGHT = 1 << 3;
-
-	/**
-	 * Create a new instance of the receiver on the row.
-	 * 
-	 * @param row
-	 * @param columnIndex
-	 */
-	ViewerCell(ViewerRow row, int columnIndex, Object element) {
-		this.row = row;
-		this.columnIndex = columnIndex;
-		this.element = element;
-	}
-
-	/**
-	 * Get the index of the cell.
-	 * 
-	 * @return the index
-	 */
-	public int getColumnIndex() {
-		return columnIndex;
-	}
-
-	/**
-	 * Get the bounds of the cell.
-	 * 
-	 * @return {@link Rectangle}
-	 */
-	public Rectangle getBounds() {
-		return row.getBounds(columnIndex);
-	}
-
-	/**
-	 * Get the element this row represents.
-	 * 
-	 * @return {@link Object}
-	 */
-	public Object getElement() {
-		if (element != null) {
-			return element;
-		}
-
-		if (row != null) {
-			return row.getElement();
-		}
-
-		return null;
-	}
-
-	/**
-	 * Return the text for the cell.
-	 * 
-	 * @return {@link String}
-	 */
-	public String getText() {
-		return row.getText(columnIndex);
-	}
-
-	/**
-	 * Return the Image for the cell.
-	 * 
-	 * @return {@link Image} or <code>null</code>
-	 */
-	public Image getImage() {
-		return row.getImage(columnIndex);
-	}
-
-	/**
-	 * Set the background color of the cell.
-	 * 
-	 * @param background
-	 */
-	public void setBackground(Color background) {
-		row.setBackground(columnIndex, background);
-
-	}
-
-	/**
-	 * Set the foreground color of the cell.
-	 * 
-	 * @param foreground
-	 */
-	public void setForeground(Color foreground) {
-		row.setForeground(columnIndex, foreground);
-
-	}
-
-	/**
-	 * Set the font of the cell.
-	 * 
-	 * @param font
-	 */
-	public void setFont(Font font) {
-		row.setFont(columnIndex, font);
-
-	}
-
-	/**
-	 * Set the text for the cell.
-	 * 
-	 * @param text
-	 */
-	public void setText(String text) {
-		row.setText(columnIndex, text);
-
-	}
-
-	/**
-	 * Set the Image for the cell.
-	 * 
-	 * @param image
-	 */
-	public void setImage(Image image) {
-		row.setImage(columnIndex, image);
-
-	}
-
-	/**
-	 * Set the style ranges to be applied on the text label Note: Requires
-	 * {@link StyledCellLabelProvider} with owner draw enabled.
-	 * 
-	 * @param styleRanges
-	 *            the styled ranges
-	 * 
-	 * @since 3.4
-	 */
-	public void setStyleRanges(StyleRange[] styleRanges) {
-		row.setStyleRanges(columnIndex, styleRanges);
-	}
-
-	/**
-	 * Returns the style ranges to be applied on the text label or
-	 * <code>null</code> if no style ranges have been set.
-	 * 
-	 * @return styleRanges the styled ranges
-	 * 
-	 * @since 3.4
-	 */
-	public StyleRange[] getStyleRanges() {
-		return row.getStyleRanges(columnIndex);
-	}
-
-	/**
-	 * Set the columnIndex.
-	 * 
-	 * @param column
-	 */
-	void setColumn(int column) {
-		columnIndex = column;
-
-	}
-
-	/**
-	 * Set the row to rowItem and the columnIndex to column.
-	 * 
-	 * @param rowItem
-	 * @param column
-	 */
-	void update(ViewerRow rowItem, int column, Object element) {
-		row = rowItem;
-		columnIndex = column;
-		this.element = element;
-	}
-
-	/**
-	 * Return the item for the receiver.
-	 * 
-	 * @return {@link Item}
-	 */
-	public Widget getItem() {
-		return row.getItem();
-	}
-
-	/**
-	 * Get the control for this cell.
-	 * 
-	 * @return {@link Control}
-	 */
-	public Control getControl() {
-		return row.getControl();
-	}
-
-	/**
-	 * Get the current index. This can be different from the original index when
-	 * columns are reordered
-	 * 
-	 * @return the current index (as shown in the UI)
-	 * @since 3.4
-	 */
-	public int getVisualIndex() {
-		return row.getVisualIndex(getColumnIndex());
-	}
-
-	/**
-	 * Returns the specified neighbor of this cell, or <code>null</code> if no
-	 * neighbor exists in the given direction. Direction constants can be
-	 * combined by bitwise OR; for example, this method will return the cell to
-	 * the upper-left of the current cell by passing {@link #ABOVE} |
-	 * {@link #LEFT}. If <code>sameLevel</code> is <code>true</code>, only cells
-	 * in sibling rows (under the same parent) will be considered.
-	 * 
-	 * @param directionMask
-	 *            the direction mask used to identify the requested neighbor
-	 *            cell
-	 * @param sameLevel
-	 *            if <code>true</code>, only consider cells from sibling rows
-	 * @return the requested neighbor cell, or <code>null</code> if not found
-	 */
-	public ViewerCell getNeighbor(int directionMask, boolean sameLevel) {
-		ViewerRow row;
-
-		if ((directionMask & ABOVE) == ABOVE) {
-			row = this.row.getNeighbor(ViewerRow.ABOVE, sameLevel);
-		} else if ((directionMask & BELOW) == BELOW) {
-			row = this.row.getNeighbor(ViewerRow.BELOW, sameLevel);
-		} else {
-			row = this.row;
-		}
-
-		if (row != null) {
-			int columnIndex;
-			columnIndex = getVisualIndex();
-
-			int modifier = 0;
-
-			if ((directionMask & LEFT) == LEFT) {
-				modifier = -1;
-			} else if ((directionMask & RIGHT) == RIGHT) {
-				modifier = 1;
-			}
-
-			columnIndex += modifier;
-
-			if (columnIndex >= 0 && columnIndex < row.getColumnCount()) {
-				ViewerCell cell = row.getCellAtVisualIndex(columnIndex);
-				if (cell != null) {
-					while (cell != null
-							&& columnIndex < row.getColumnCount() - 1
-							&& columnIndex > 0) {
-						if (cell.isVisible()) {
-							break;
-						}
-
-						columnIndex += modifier;
-						cell = row.getCellAtVisualIndex(columnIndex);
-						if (cell == null) {
-							break;
-						}
-					}
-				}
-
-				return cell;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * @return the row
-	 */
-	public ViewerRow getViewerRow() {
-		return row;
-	}
-
-	/**
-	 * The location and bounds of the area where the text is drawn depends on
-	 * various things (image displayed, control with SWT.CHECK)
-	 * 
-	 * @return The bounds of the of the text area. May return <code>null</code>
-	 *         if the underlying widget implementation doesn't provide this
-	 *         information
-	 * @since 3.4
-	 */
-	public Rectangle getTextBounds() {
-		return row.getTextBounds(columnIndex);
-	}
-
-	/**
-	 * Returns the location and bounds of the area where the image is drawn
-	 * 
-	 * @return The bounds of the of the image area. May return <code>null</code>
-	 *         if the underlying widget implementation doesn't provide this
-	 *         information
-	 * @since 3.4
-	 */
-	public Rectangle getImageBounds() {
-		return row.getImageBounds(columnIndex);
-	}
-
-	/**
-	 * Gets the foreground color of the cell.
-	 * 
-	 * @return the foreground of the cell or <code>null</code> for the default
-	 *         foreground
-	 * 
-	 * @since 3.4
-	 */
-	public Color getForeground() {
-		return row.getForeground(columnIndex);
-	}
-
-	/**
-	 * Gets the background color of the cell.
-	 * 
-	 * @return the background of the cell or <code>null</code> for the default
-	 *         background
-	 * 
-	 * @since 3.4
-	 */
-	public Color getBackground() {
-		return row.getBackground(columnIndex);
-	}
-
-	/**
-	 * Gets the font of the cell.
-	 * 
-	 * @return the font of the cell or <code>null</code> for the default font
-	 * 
-	 * @since 3.4
-	 */
-	public Font getFont() {
-		return row.getFont(columnIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + columnIndex;
-		result = prime * result + ((row == null) ? 0 : row.hashCode());
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final ViewerCell other = (ViewerCell) obj;
-		if (columnIndex != other.columnIndex)
-			return false;
-		if (row == null) {
-			if (other.row != null)
-				return false;
-		} else if (!row.equals(other.row))
-			return false;
-		return true;
-	}
-
-	private boolean isVisible() {
-		return row.isColumnVisible(columnIndex);
-	}
-
-	/**
-	 * Scroll the cell into view
-	 * 
-	 * @return true if the cell was scrolled into view
-	 * @since 3.5
-	 */
-	public boolean scrollIntoView() {
-		return row.scrollCellIntoView(columnIndex);
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerColumn.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerColumn.java
deleted file mode 100644
index 9b5ed12..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerColumn.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Shindl <tom.schindl@bestsolution.at> - initial API and implementation
- * 												  fix for bug 163317, 201905
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Instances of this class represent a column of a {@link ColumnViewer}. Label
- * providers and editing support can be configured for each column separately.
- * Concrete subclasses of {@link ColumnViewer} should implement a matching
- * concrete subclass of {@link ViewerColumn}.
- * 
- * @since 3.3
- * 
- */
-public abstract class ViewerColumn {
-
-	private CellLabelProvider labelProvider;
-
-	static String COLUMN_VIEWER_KEY = Policy.JFACE + ".columnViewer";//$NON-NLS-1$
-
-	private EditingSupport editingSupport;
-
-	private ILabelProviderListener listener;
-
-	private boolean listenerRegistered = false;
-
-	private ColumnViewer viewer;
-
-	/**
-	 * Create a new instance of the receiver at columnIndex.
-	 * 
-	 * @param viewer
-	 *            the viewer the column is part of
-	 * @param columnOwner
-	 *            the widget owning the viewer in case the widget has no columns
-	 *            this could be the widget itself
-	 */
-	protected ViewerColumn(final ColumnViewer viewer, Widget columnOwner) {
-		this.viewer = viewer;
-		columnOwner.setData(ViewerColumn.COLUMN_VIEWER_KEY, this);
-		this.listener = new ILabelProviderListener() {
-
-			public void labelProviderChanged(LabelProviderChangedEvent event) {
-				viewer.handleLabelProviderChanged(event);
-			}
-
-		};
-		columnOwner.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				handleDispose(viewer);
-			}
-		});
-	}
-
-	/**
-	 * Return the label provider for the receiver.
-	 * 
-	 * @return ViewerLabelProvider
-	 */
-	/* package */CellLabelProvider getLabelProvider() {
-		return labelProvider;
-	}
-
-	/**
-	 * Set the label provider for the column. Subclasses may extend but must
-	 * call the super implementation.
-	 * 
-	 * @param labelProvider
-	 *            the new {@link CellLabelProvider}
-	 */
-	public void setLabelProvider(CellLabelProvider labelProvider) {
-		setLabelProvider(labelProvider, true);
-	}
-
-	/**
-	 * @param labelProvider
-	 * @param registerListener
-	 */
-	/* package */void setLabelProvider(CellLabelProvider labelProvider,
-			boolean registerListener) {
-		if (listenerRegistered && this.labelProvider != null) {
-			this.labelProvider.removeListener(listener);
-			listenerRegistered = false;
-			if (registerListener) {
-				this.labelProvider.dispose(viewer, this);
-			}
-		}
-
-		this.labelProvider = labelProvider;
-
-		if (registerListener) {
-			this.labelProvider.initialize(viewer, this);
-			this.labelProvider.addListener(listener);
-			listenerRegistered = true;
-		}
-	}
-
-	/**
-	 * Return the editing support for the receiver.
-	 * 
-	 * @return {@link EditingSupport}
-	 */
-	/* package */EditingSupport getEditingSupport() {
-		return editingSupport;
-	}
-
-	/**
-	 * Set the editing support. Subclasses may extend but must call the super
-	 * implementation.
-	 * <p>
-	 * Users setting up an editable {@link TreeViewer} or {@link TableViewer} with more than 1 column <b>have</b>
-	 * to pass the SWT.FULL_SELECTION style bit when creating the viewer
-	 * </p>
-	 * @param editingSupport
-	 *            The {@link EditingSupport} to set.
-	 */
-	public void setEditingSupport(EditingSupport editingSupport) {
-		this.editingSupport = editingSupport;
-	}
-
-	/**
-	 * Refresh the cell for the given columnIndex. <strong>NOTE:</strong>the
-	 * {@link ViewerCell} provided to this method is no longer valid after this
-	 * method returns. Do not cache the cell for future use.
-	 * 
-	 * @param cell
-	 *            {@link ViewerCell}
-	 */
-	/* package */void refresh(ViewerCell cell) {
-		getLabelProvider().update(cell);
-	}
-
-	/**
-	 * Disposes of the label provider (if set), unregisters the listener and
-	 * nulls the references to the label provider and editing support. This
-	 * method is called when the underlying widget is disposed. Subclasses may
-	 * extend but must call the super implementation.
-	 */
-	protected void handleDispose() {
-		boolean disposeLabelProvider = listenerRegistered;
-		CellLabelProvider cellLabelProvider = labelProvider;
-		setLabelProvider(null, false);
-		if (disposeLabelProvider) {
-			cellLabelProvider.dispose(viewer, this);
-		}
-		editingSupport = null;
-		listener = null;
-		viewer = null;
-	}
-
-	private void handleDispose(ColumnViewer viewer) {
-		handleDispose();
-		viewer.clearLegacyEditingSetup();
-	}
-
-	/**
-	 * Returns the viewer of this viewer column.
-	 * 
-	 * @return Returns the viewer.
-	 * 
-	 * @since 3.4
-	 */
-	public ColumnViewer getViewer() {
-		return viewer;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerComparator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerComparator.java
deleted file mode 100644
index 893cfd1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerComparator.java
+++ /dev/null
@@ -1,191 +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.jface.viewers;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.util.Policy;
-
-/**
- * A viewer comparator is used by a {@link StructuredViewer} to
- * reorder the elements provided by its content provider.
- * <p>
- * The default <code>compare</code> method compares elements using two steps. 
- * The first step uses the values returned from <code>category</code>. 
- * By default, all elements are in the same category. 
- * The second level is based on a case insensitive compare of the strings obtained 
- * from the content viewer's label provider via <code>ILabelProvider.getText</code>.
- * </p>
- * <p>
- * Subclasses may implement the <code>isSorterProperty</code> method;
- * they may reimplement the <code>category</code> method to provide 
- * categorization; and they may override the <code>compare</code> methods
- * to provide a totally different way of sorting elements.
- * </p>
- * @see IStructuredContentProvider
- * @see StructuredViewer
- * 
- * @since 3.2
- */
-public class ViewerComparator {
-	/**
-	 * The comparator to use to sort a viewer's contents.
-	 */
-	private Comparator comparator;
-
-	/**
-     * Creates a new {@link ViewerComparator}, which uses the default comparator
-     * to sort strings.
-	 *
-	 */
-	public ViewerComparator(){
-		this(null);
-	}
-	
-	/**
-     * Creates a new {@link ViewerComparator}, which uses the given comparator
-     * to sort strings.
-     * 
-	 * @param comparator
-	 */
-	public ViewerComparator(Comparator comparator){
-		this.comparator = comparator;
-	}
-
-	/**
-	 * Returns the comparator used to sort strings.
-	 * 
-	 * @return the comparator used to sort strings
-	 */
-	protected Comparator getComparator() {
-		if (comparator == null){
-			comparator = Policy.getComparator();
-		}
-		return comparator;
-	}
-
-    /**
-     * Returns the category of the given element. The category is a
-     * number used to allocate elements to bins; the bins are arranged
-     * in ascending numeric order. The elements within a bin are arranged
-     * via a second level sort criterion.
-     * <p>
-     * The default implementation of this framework method returns
-     * <code>0</code>. Subclasses may reimplement this method to provide
-     * non-trivial categorization.
-     * </p>
-     *
-     * @param element the element
-     * @return the category
-     */
-    public int category(Object element) {
-        return 0;
-    }
-
-    /**
-     * Returns a negative, zero, or positive number depending on whether
-     * the first element is less than, equal to, or greater than
-     * the second element.
-     * <p>
-     * The default implementation of this method is based on
-     * comparing the elements' categories as computed by the <code>category</code>
-     * framework method. Elements within the same category are further 
-     * subjected to a case insensitive compare of their label strings, either
-     * as computed by the content viewer's label provider, or their 
-     * <code>toString</code> values in other cases. Subclasses may override.
-     * </p>
-     * 
-     * @param viewer the viewer
-     * @param e1 the first element
-     * @param e2 the second element
-     * @return a negative number if the first element is less  than the 
-     *  second element; the value <code>0</code> if the first element is
-     *  equal to the second element; and a positive number if the first
-     *  element is greater than the second element
-     */
-    public int compare(Viewer viewer, Object e1, Object e2) {
-        int cat1 = category(e1);
-        int cat2 = category(e2);
-
-        if (cat1 != cat2) {
-			return cat1 - cat2;
-		}
-    	
-        String name1;
-        String name2;
-
-        if (viewer == null || !(viewer instanceof ContentViewer)) {
-            name1 = e1.toString();
-            name2 = e2.toString();
-        } else {
-            IBaseLabelProvider prov = ((ContentViewer) viewer)
-                    .getLabelProvider();
-            if (prov instanceof ILabelProvider) {
-                ILabelProvider lprov = (ILabelProvider) prov;
-                name1 = lprov.getText(e1);
-                name2 = lprov.getText(e2);
-            } else {
-                name1 = e1.toString();
-                name2 = e2.toString();
-            }
-        }
-        if (name1 == null) {
-			name1 = "";//$NON-NLS-1$
-		}
-        if (name2 == null) {
-			name2 = "";//$NON-NLS-1$
-		}
-
-        // use the comparator to compare the strings
-        return getComparator().compare(name1, name2);
-    }
-
-    /**
-     * Returns whether this viewer sorter would be affected 
-     * by a change to the given property of the given element.
-     * <p>
-     * The default implementation of this method returns <code>false</code>.
-     * Subclasses may reimplement.
-     * </p>
-     *
-     * @param element the element
-     * @param property the property
-     * @return <code>true</code> if the sorting would be affected,
-     *    and <code>false</code> if it would be unaffected
-     */
-    public boolean isSorterProperty(Object element, String property) {
-        return false;
-    }
-
-    /**
-     * Sorts the given elements in-place, modifying the given array.
-     * <p>
-     * The default implementation of this method uses the 
-     * java.util.Arrays#sort algorithm on the given array, 
-     * calling <code>compare</code> to compare elements.
-     * </p>
-     * <p>
-     * Subclasses may reimplement this method to provide a more optimized implementation.
-     * </p>
-     *
-     * @param viewer the viewer
-     * @param elements the elements to sort
-     */
-    public void sort(final Viewer viewer, Object[] elements) {
-        Arrays.sort(elements, new Comparator() {
-            public int compare(Object a, Object b) {
-                return ViewerComparator.this.compare(viewer, a, b);
-            }
-        });
-    }	
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerDropAdapter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerDropAdapter.java
deleted file mode 100644
index e9817a5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerDropAdapter.java
+++ /dev/null
@@ -1,564 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetAdapter;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * This adapter class provides generic drag-and-drop support for a viewer.
- * <p>
- * Subclasses must implement the following methods:
- * <ul>
- *   <li><code>validateDrop</code> - identifies valid drop targets in viewer</li>
- *   <li><code>performDrop</code> - carries out a drop into a viewer</li>
- * </ul>
- * The <code>setFeedbackEnabled</code> method can be called to turn on and off 
- * visual insertion feedback (on by default).
- * </p>
- */
-public abstract class ViewerDropAdapter extends DropTargetAdapter {
-
-    /**
-     * Constant describing the position of the cursor relative 
-     * to the target object.  This means the mouse is positioned
-     * slightly before the target.
-     * @see #getCurrentLocation()
-     */
-    public static final int LOCATION_BEFORE = 1;
-
-    /**
-     * Constant describing the position of the cursor relative 
-     * to the target object.  This means the mouse is positioned
-     * slightly after the target.
-     * @see #getCurrentLocation()
-     */
-    public static final int LOCATION_AFTER = 2;
-
-    /**
-     * Constant describing the position of the cursor relative 
-     * to the target object.  This means the mouse is positioned
-     * directly on the target.
-     * @see #getCurrentLocation()
-     */
-    public static final int LOCATION_ON = 3;
-
-    /**
-     * Constant describing the position of the cursor relative 
-     * to the target object.  This means the mouse is not positioned
-     * over or near any valid target.
-     * @see #getCurrentLocation()
-     */
-    public static final int LOCATION_NONE = 4;
-
-    /**
-     * The viewer to which this drop support has been added.
-     */
-    private Viewer viewer;
-
-    /**
-     * The current operation.
-     */
-    private int currentOperation = DND.DROP_NONE;
-
-    /**
-     * The last valid operation.  We need to remember the last good operation
-     * in the case where the current operation temporarily is not valid (drag over
-     * someplace you can't drop).  
-     */
-    private int lastValidOperation;
-    
-    /**
-     * This is used because we allow the operation 
-     * to be temporarily overridden (for example a move to a copy) for a drop that
-     * happens immediately after the operation is overridden.
-     */
-    private int overrideOperation = -1;
-    
-    /**
-     * The current DropTargetEvent, used only during validateDrop()
-     */
-    private DropTargetEvent currentEvent;
-    
-    /**
-     * The data item currently under the mouse.
-     */
-    private Object currentTarget;
-
-    /**
-     * Information about the position of the mouse relative to the
-     * target (before, on, or after the target.  Location is one of
-     * the <code>LOCATION_* </code> constants defined in this type.
-     */
-    private int currentLocation;
-
-    /**
-     * A flag that allows adapter users to turn the insertion
-     * feedback on or off. Default is <code>true</code>.
-     */
-    private boolean feedbackEnabled = true;
-
-    /**
-     * A flag that allows adapter users to turn auto scrolling
-     * on or off. Default is <code>true</code>.
-     */
-    private boolean scrollEnabled = true;
-
-    /**
-     * A flag that allows adapter users to turn auto
-     * expanding on or off. Default is <code>true</code>.
-     */
-    private boolean expandEnabled = true;
-    
-    /**
-     * A flag that allows adapter users to turn selection feedback
-     *  on or off. Default is <code>true</code>.
-     */
-    private boolean selectFeedbackEnabled = true;
-
-    /**
-     * Creates a new drop adapter for the given viewer.
-     *
-     * @param viewer the viewer
-     */
-    protected ViewerDropAdapter(Viewer viewer) {
-        this.viewer = viewer;
-    }
-
-	/**
-	 * Clears internal state of this drop adapter. This method can be called
-	 * when no DnD operation is underway, to clear internal state from previous
-	 * drop operations.
-	 * 
-	 * @since 3.5
-	 */
-    protected void clearState() {
-    	this.currentTarget = null;
-    }
-
-    /**
-     * Returns the position of the given event's coordinates relative to its target.
-     * The position is determined to be before, after, or on the item, based on
-     * some threshold value.
-     *
-     * @param event the event
-     * @return one of the <code>LOCATION_* </code>constants defined in this class
-     */
-    protected int determineLocation(DropTargetEvent event) {
-        if (!(event.item instanceof Item)) {
-            return LOCATION_NONE;
-        }
-        Item item = (Item) event.item;
-        Point coordinates = new Point(event.x, event.y);
-        coordinates = viewer.getControl().toControl(coordinates);
-        if (item != null) {
-            Rectangle bounds = getBounds(item);
-            if (bounds == null) {
-                return LOCATION_NONE;
-            }
-            if ((coordinates.y - bounds.y) < 5) {
-                return LOCATION_BEFORE;
-            }
-            if ((bounds.y + bounds.height - coordinates.y) < 5) {
-                return LOCATION_AFTER;
-            }
-        }
-        return LOCATION_ON;
-    }
-
-    /**
-     * Returns the target item of the given drop event.
-     *
-     * @param event the event
-     * @return The target of the drop, may be <code>null</code>.
-     */
-    protected Object determineTarget(DropTargetEvent event) {
-        return event.item == null ? null : event.item.getData();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DropTargetAdapter.
-     * The mouse has moved over the drop target.  If the
-     * target item has changed, notify the action and check
-     * that it is still enabled.
-     */
-    private void doDropValidation(DropTargetEvent event) {
-    	//always remember what was previously requested, but not if it
-    	//was overridden
-    	if (event.detail != DND.DROP_NONE && overrideOperation == -1)
-    		lastValidOperation = event.detail;
-    	
-    	currentOperation = lastValidOperation;
-        currentEvent = event;
-        overrideOperation = -1;
-        if (!validateDrop(currentTarget, currentOperation, event.currentDataType)) {
-        	currentOperation = DND.DROP_NONE;
-        }
-
-        //give the right feedback for the override
-        if (overrideOperation != -1)
-        	event.detail = overrideOperation;
-        else
-        	event.detail = currentOperation;
-        currentEvent = null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DropTargetAdapter.
-     * The drag has entered this widget's region.  See
-     * if the drop should be allowed.
-     */
-    public void dragEnter(DropTargetEvent event) {
-        currentTarget = determineTarget(event);
-        doDropValidation(event);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DropTargetAdapter.
-     * The drop operation has changed, see if the action
-     * should still be enabled.
-     */
-    public void dragOperationChanged(DropTargetEvent event) {
-        currentTarget = determineTarget(event);
-        doDropValidation(event);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DropTargetAdapter.
-     * The mouse has moved over the drop target.  If the
-     * target item has changed, notify the action and check
-     * that it is still enabled.
-     */
-    public void dragOver(DropTargetEvent event) {
-    	//use newly revealed item as target if scrolling occurs
-        Object target = determineTarget(event);
-
-        //set the location feedback
-        int oldLocation = currentLocation;
-        currentLocation = determineLocation(event);
-        setFeedback(event, currentLocation);
-
-        //see if anything has really changed before doing validation.
-        if (target != currentTarget || currentLocation != oldLocation) {
-            currentTarget = target;
-            doDropValidation(event);
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DropTargetAdapter.
-     * The user has dropped something on the desktop viewer.
-     */
-    public void drop(DropTargetEvent event) {
-        currentLocation = determineLocation(event);
-    	currentEvent = event;
-
-    	if (overrideOperation != -1)
-    		currentOperation = overrideOperation;
-    	
-        //perform the drop behavior
-        if (!performDrop(event.data)) {
-            event.detail = DND.DROP_NONE;
-        }
-        
-        //reset for next time
-        currentOperation = DND.DROP_NONE;
-        currentEvent = null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DropTargetAdapter.
-     * Last chance for the action to disable itself
-     */
-    public void dropAccept(DropTargetEvent event) {
-    	currentEvent = event;
-    	if (!validateDrop(currentTarget, event.detail, event.currentDataType)) {
-            currentOperation = event.detail = DND.DROP_NONE;
-        }
-    	currentEvent = null;
-    }
-
-    /**
-     * Returns the bounds of the given SWT tree or table item.
-     *
-     * @param item the SWT Item
-     * @return the bounds, or <code>null</code> if it is not a known type of item
-     */
-    protected Rectangle getBounds(Item item) {
-        if (item instanceof TreeItem) {
-            return ((TreeItem) item).getBounds();
-        }
-        if (item instanceof TableItem) {
-            return ((TableItem) item).getBounds(0);
-        }
-        return null;
-    }
-
-    /**
-     * Returns a constant describing the position of the mouse relative to the
-     * target (before, on, or after the target.  
-     *
-     * @return one of the <code>LOCATION_* </code> constants defined in this type
-     */
-    protected int getCurrentLocation() {
-        return currentLocation;
-    }
-
-    /**
-     * Returns the current operation.
-     *
-     * @return a <code>DROP_*</code> constant from class <code>DND</code>
-     *
-     * @see DND#DROP_COPY
-     * @see DND#DROP_MOVE
-     * @see DND#DROP_LINK
-     * @see DND#DROP_NONE
-     */
-    protected int getCurrentOperation() {
-        return currentOperation;
-    }
-
-    /**
-     * Returns the target object currently under the mouse.
-     *
-     * @return the current target object
-     */
-    protected Object getCurrentTarget() {
-        return currentTarget;
-    }
-
-    /**
-     * Returns the current {@link DropTargetEvent}.
-     * 
-     * This may be called only inside of the {@link #validateDrop(Object, int, TransferData)} 
-     * or {@link #performDrop(Object)} methods.
-     * @return the DropTargetEvent
-     * @since 3.5
-     */
-    protected DropTargetEvent getCurrentEvent() {
-    	Assert.isTrue(currentEvent != null);
-    	return currentEvent;
-    }
-    
-    /**
-     * Returns whether visible insertion feedback should be presented to the user.
-     * <p>
-     * Typical insertion feedback is the horizontal insertion bars that appear 
-     * between adjacent items while dragging.
-     * </p>
-     *
-     * @return <code>true</code> if visual feedback is desired, and <code>false</code> if not
-     */
-    public boolean getFeedbackEnabled() {
-        return feedbackEnabled;
-    }
-
-    /**
-     * Returns the object currently selected by the viewer.
-     *
-     * @return the selected object, or <code>null</code> if either no object or 
-     *   multiple objects are selected
-     */
-    protected Object getSelectedObject() {
-        ISelection selection = viewer.getSelection();
-        if (selection instanceof IStructuredSelection && !selection.isEmpty()) {
-            IStructuredSelection structured = (IStructuredSelection) selection;
-            return structured.getFirstElement();
-        }
-        return null;
-    }
-
-    /**
-     * @return the viewer to which this drop support has been added.
-     */
-    protected Viewer getViewer() {
-        return viewer;
-    }
-
-    /**
-     * @deprecated this method should not be used. Exception handling has been 
-     * 	removed from DropTargetAdapter methods overridden by this class.
-     * Handles any exception that occurs during callback, including 
-     * rethrowing behavior.
-     * <p>
-     * [Issue: Implementation prints stack trace and eats exception to avoid
-     *  crashing VA/J.
-     *  Consider conditionalizing the implementation to do one thing in VAJ
-     *  and something more reasonable in other operating environments.
-     * ]
-     * </p>
-     *
-     * @param exception the exception
-     * @param event the event
-     */
-    protected void handleException(Throwable exception, DropTargetEvent event) {
-        // Currently we never rethrow because VA/Java crashes if an SWT
-        // callback throws anything. Generally catching Throwable is bad, but in
-        // this cases it's better than hanging the image.
-        exception.printStackTrace();
-        event.detail = DND.DROP_NONE;
-    }
-
-    /**
-     * Performs any work associated with the drop.
-     * <p>
-     * Subclasses must implement this method to provide drop behavior.
-     * </p>
-     *
-     * @param data the drop data
-     * @return <code>true</code> if the drop was successful, and 
-     *   <code>false</code> otherwise
-     */
-    public abstract boolean performDrop(Object data);
-
-	/**
-	 * Overrides the current operation for a drop that happens immediately
-	 * after the current validateDrop.
-	 * 
-	 * This maybe called only from within a
-	 * {@link #validateDrop(Object, int, TransferData)} method
-	 * 
-	 * 
-	 * @param operation
-	 *            the operation to be used for the drop.
-	 * 
-	 * @see DND#DROP_COPY
-	 * @see DND#DROP_MOVE
-	 * @see DND#DROP_LINK
-	 * @see DND#DROP_NONE
-	 * 
-	 * @since 3.5
-	 */
-	protected void overrideOperation(int operation) {
-		overrideOperation = operation;
-	}
-	
-    /* (non-Javadoc)
-     * Method declared on DropTargetAdapter.
-     * The mouse has moved over the drop target.  If the
-     * target item has changed, notify the action and check
-     * that it is still enabled.
-     */
-    private void setFeedback(DropTargetEvent event, int location) {
-        if (feedbackEnabled) {
-            switch (location) {
-            case LOCATION_BEFORE:
-                event.feedback = DND.FEEDBACK_INSERT_BEFORE;
-                break;
-            case LOCATION_AFTER:
-                event.feedback = DND.FEEDBACK_INSERT_AFTER;
-                break;
-            case LOCATION_ON:
-            default:
-                event.feedback = DND.FEEDBACK_SELECT;
-                break;
-            }
-        }
-        
-         // Explicitly inhibit SELECT feedback if desired
-		if (!selectFeedbackEnabled) {
-			event.feedback &= ~DND.FEEDBACK_SELECT;
-		}
-
-		if (expandEnabled) {
-			event.feedback |= DND.FEEDBACK_EXPAND;
-		}
-		if (scrollEnabled) {
-			event.feedback |= DND.FEEDBACK_SCROLL;
-		}
-    }
-
-    /**
-	 * Sets whether visible insertion feedback should be presented to the user.
-	 * <p>
-	 * Typical insertion feedback is the horizontal insertion bars that appear
-	 * between adjacent items while dragging.
-	 * </p>
-	 * 
-	 * @param value
-	 *            <code>true</code> if visual feedback is desired, and
-	 *            <code>false</code> if not
-	 */
-    public void setFeedbackEnabled(boolean value) {
-        feedbackEnabled = value;
-    }
-
-    /**
-     * Sets whether selection feedback should be provided during dragging.
-     *
-     * @param value <code>true</code> if selection feedback is desired, and
-     *   <code>false</code> if not
-     *   
-     * @since 3.2
-     */
-    public void setSelectionFeedbackEnabled(boolean value) {
-        selectFeedbackEnabled = value;
-    }
-
-    /**
-     * Sets whether auto scrolling and expanding should be provided during dragging.
-     *
-     * @param value <code>true</code> if scrolling and expanding is desired, and
-     *   <code>false</code> if not
-     * @since 2.0
-     */
-    public void setScrollExpandEnabled(boolean value) {
-    	expandEnabled = value;
-    	scrollEnabled = value;
-    }
-
-    /**
-     * Sets whether auto expanding should be provided during dragging.
-     *
-     * @param value <code>true</code> if expanding is desired, and
-     *   <code>false</code> if not
-     * @since 3.4
-     */
-    public void setExpandEnabled(boolean value) {
-        expandEnabled = value;
-    }
-    
-    /**
-     * Sets whether auto scrolling should be provided during dragging.
-     *
-     * @param value <code>true</code> if scrolling is desired, and
-     *   <code>false</code> if not
-     * @since 3.4
-     */
-    public void setScrollEnabled(boolean value) {
-        scrollEnabled = value;
-    }
-
-    /**
-     * Validates dropping on the given object. This method is called whenever some 
-     * aspect of the drop operation changes.
-     * <p>
-     * Subclasses must implement this method to define which drops make sense.
-     * </p>
-     * 
-     * @param target the object that the mouse is currently hovering over, or
-     *   <code>null</code> if the mouse is hovering over empty space
-     * @param operation the current drag operation (copy, move, etc.)
-     * @param transferType the current transfer type
-     * @return <code>true</code> if the drop is valid, and <code>false</code>
-     *   otherwise
-     */
-    public abstract boolean validateDrop(Object target, int operation,
-            TransferData transferType);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerFilter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerFilter.java
deleted file mode 100644
index 910a9d2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerFilter.java
+++ /dev/null
@@ -1,104 +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.jface.viewers;
-
-import java.util.ArrayList;
-
-/**
- * A viewer filter is used by a structured viewer to
- * extract a subset of elements provided by its content provider.
- * <p>
- * Subclasses must implement the <code>select</code> method
- * and may implement the <code>isFilterProperty</code> method.
- * </p>
- * @see IStructuredContentProvider
- * @see StructuredViewer
- */
-public abstract class ViewerFilter {
-    /**
-     * Creates a new viewer filter.
-     */
-    protected ViewerFilter() {
-    }
-
-    /**
-     * Filters the given elements for the given viewer.
-     * The input array is not modified.
-     * <p>
-     * The default implementation of this method calls 
-     * <code>select</code> on each element in the array, 
-     * and returns only those elements for which <code>select</code>
-     * returns <code>true</code>.
-     * </p>
-     * @param viewer the viewer
-     * @param parent the parent element
-     * @param elements the elements to filter
-     * @return the filtered elements
-     */
-    public Object[] filter(Viewer viewer, Object parent, Object[] elements) {
-        int size = elements.length;
-        ArrayList out = new ArrayList(size);
-        for (int i = 0; i < size; ++i) {
-            Object element = elements[i];
-            if (select(viewer, parent, element)) {
-				out.add(element);
-			}
-        }
-        return out.toArray();
-    }
-
-    /**
-     * Filters the given elements for the given viewer.
-     * The input array is not modified.
-     * <p>
-     * The default implementation of this method calls 
-     * {@link #filter(Viewer, Object, Object[])} with the 
-     * parent from the path. Subclasses may override
-     * </p>
-     * @param viewer the viewer
-     * @param parentPath the path of the parent element
-     * @param elements the elements to filter
-     * @return the filtered elements
-     * @since 3.2
-     */
-    public Object[] filter(Viewer viewer, TreePath parentPath, Object[] elements) {
-        return filter(viewer, parentPath.getLastSegment(), elements);
-    }
-    
-    /**
-     * Returns whether this viewer filter would be affected 
-     * by a change to the given property of the given element.
-     * <p>
-     * The default implementation of this method returns <code>false</code>.
-     * Subclasses should reimplement.
-     * </p>
-     *
-     * @param element the element
-     * @param property the property
-     * @return <code>true</code> if the filtering would be affected,
-     *    and <code>false</code> if it would be unaffected
-     */
-    public boolean isFilterProperty(Object element, String property) {
-        return false;
-    }
-
-    /**
-     * Returns whether the given element makes it through this filter.
-     *
-     * @param viewer the viewer
-     * @param parentElement the parent element
-     * @param element the element
-     * @return <code>true</code> if element is included in the
-     *   filtered set, and <code>false</code> if excluded
-     */
-    public abstract boolean select(Viewer viewer, Object parentElement,
-            Object element);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerLabel.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerLabel.java
deleted file mode 100644
index 49b55c6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerLabel.java
+++ /dev/null
@@ -1,414 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.shindl@bestsolution.at> - tooltip support
- *******************************************************************************/
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * The ViewerLabel is the class that is passed to a viewer to handle updates of
- * labels. It keeps track of both original and updates text.
- * 
- * @see IViewerLabelProvider
- * @since 3.0
- */
-public class ViewerLabel {
-
-	// New values for the receiver. Null if nothing has been set.
-	private String newText = null;
-
-	private Image newImage = null;
-
-	private boolean imageUpdated = false;
-
-	private boolean textUpdated = false;
-
-	private Color background = null;
-
-	private Color foreground = null;
-
-	private Font font = null;
-
-	// The initial values for the receiver.
-	private String startText;
-
-	private Image startImage;
-
-	private boolean hasPendingDecorations;
-
-	private String tooltipText;
-
-	private Color tooltipForegroundColor;
-
-	private Color tooltipBackgroundColor;
-
-	private Point tooltipShift;
-
-	/**
-	 * Create a new instance of the receiver with the supplied initial text and
-	 * image.
-	 * 
-	 * @param initialText
-	 * @param initialImage
-	 */
-	public ViewerLabel(String initialText, Image initialImage) {
-		startText = initialText;
-		startImage = initialImage;
-	}
-
-	/**
-	 * Get the image for the receiver. If the new image has been set return it,
-	 * otherwise return the starting image.
-	 * 
-	 * @return Returns the image.
-	 */
-	public final Image getImage() {
-		if (imageUpdated) {
-			return newImage;
-		}
-		return startImage;
-	}
-
-	/**
-	 * Set the image for the receiver.
-	 * 
-	 * @param image
-	 *            The image to set.
-	 */
-	public final void setImage(Image image) {
-		imageUpdated = true;
-		newImage = image;
-	}
-
-	/**
-	 * Get the text for the receiver. If the new text has been set return it,
-	 * otherwise return the starting text.
-	 * 
-	 * @return String or <code>null</code> if there was no initial text and
-	 *         nothing was updated.
-	 */
-	public final String getText() {
-		if (textUpdated) {
-			return newText;
-		}
-		return startText;
-	}
-
-	/**
-	 * Set the text for the receiver.
-	 * 
-	 * @param text
-	 *            String The label to set. This value should not be
-	 *            <code>null</code>.
-	 * @see #hasNewText()
-	 */
-	public final void setText(String text) {
-		newText = text;
-		textUpdated = true;
-	}
-
-	/**
-	 * Return whether or not the image has been set.
-	 * 
-	 * @return boolean. <code>true</code> if the image has been set to
-	 *         something new.
-	 * 
-	 * @since 3.1
-	 */
-	public boolean hasNewImage() {
-
-		// If we started with null any change is an update
-		if (startImage == null) {
-			return newImage != null;
-		}
-
-		if (imageUpdated) {
-			return !(startImage.equals(newImage));
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether or not the text has been set.
-	 * 
-	 * @return boolean. <code>true</code> if the text has been set to
-	 *         something new.
-	 */
-	public boolean hasNewText() {
-
-		// If we started with null any change is an update
-		if (startText == null) {
-			return newText != null;
-		}
-
-		if (textUpdated) {
-			return !(startText.equals(newText));
-		}
-
-		return false;
-	}
-
-	/**
-	 * Return whether or not the background color has been set.
-	 * 
-	 * @return boolean. <code>true</code> if the value has been set.
-	 */
-	public boolean hasNewBackground() {
-		return background != null;
-	}
-
-	/**
-	 * Return whether or not the foreground color has been set.
-	 * 
-	 * @return boolean. <code>true</code> if the value has been set.
-	 * 
-	 * @since 3.1
-	 */
-	public boolean hasNewForeground() {
-		return foreground != null;
-	}
-
-	/**
-	 * Return whether or not the font has been set.
-	 * 
-	 * @return boolean. <code>true</code> if the value has been set.
-	 * 
-	 * @since 3.1
-	 */
-	public boolean hasNewFont() {
-		return font != null;
-	}
-
-	/**
-	 * Get the background Color.
-	 * 
-	 * @return Color or <code>null</code> if no new value was set.
-	 * 
-	 * @since 3.1
-	 */
-	public Color getBackground() {
-		return background;
-	}
-
-	/**
-	 * Set the background Color.
-	 * 
-	 * @param background
-	 *            Color. This value should not be <code>null</code>.
-	 * 
-	 * @since 3.1
-	 */
-	public void setBackground(Color background) {
-		this.background = background;
-	}
-
-	/**
-	 * Get the font.
-	 * 
-	 * @return Font or <code>null</code> if no new value was set.
-	 * 
-	 * @since 3.1
-	 */
-	public Font getFont() {
-		return font;
-	}
-
-	/**
-	 * Set the font.
-	 * 
-	 * @param font
-	 *            Font This value should not be <code>null</code>.
-	 * 
-	 * @since 3.1
-	 */
-	public void setFont(Font font) {
-		this.font = font;
-	}
-
-	/**
-	 * Get the foreground Color.
-	 * 
-	 * @return Color or <code>null</code> if no new value was set.
-	 * 
-	 * @since 3.1
-	 */
-	public Color getForeground() {
-		return foreground;
-	}
-
-	/**
-	 * Set the foreground Color.
-	 * 
-	 * @param foreground
-	 *            Color This value should not be <code>null</code>.
-	 * 
-	 * @since 3.1
-	 */
-	public void setForeground(Color foreground) {
-		this.foreground = foreground;
-	}
-
-	/**
-	 * Set whether or not there are any decorations pending.
-	 * 
-	 * @param hasPendingDecorations
-	 */
-	void setHasPendingDecorations(boolean hasPendingDecorations) {
-		this.hasPendingDecorations = hasPendingDecorations;
-	}
-
-	/**
-	 * @return <code>boolean</code>. <code>true</code> if there are any
-	 *         decorations pending.
-	 */
-	boolean hasPendingDecorations() {
-		return hasPendingDecorations;
-	}
-
-	/**
-	 * Returns the tooltipText.
-	 * 
-	 * @return {@link String} or <code>null</code> if the tool tip text was
-	 *         never set.
-	 * 
-	 * @since 3.3
-	 */
-	public String getTooltipText() {
-		return tooltipText;
-	}
-
-	/**
-	 * Set the tool tip text.
-	 * 
-	 * @param tooltipText
-	 *            The tooltipText {@link String} to set. This value should not
-	 *            be <code>null</code>.
-	 * 
-	 * @since 3.3
-	 */
-	public void setTooltipText(String tooltipText) {
-		this.tooltipText = tooltipText;
-	}
-
-	/**
-	 * Return whether or not the tool tip text has been set.
-	 * 
-	 * @return <code>boolean</code>. <code>true</code> if the tool tip text
-	 *         has been set.
-	 * 
-	 * @since 3.3
-	 */
-	public boolean hasNewTooltipText() {
-		return this.tooltipText != null;
-	}
-
-	/**
-	 * Return the tool tip background color.
-	 * 
-	 * @return {@link Color} or <code>null</code> if the tool tip background
-	 *         color has not been set.
-	 * 
-	 * @since 3.3
-	 */
-	public Color getTooltipBackgroundColor() {
-		return tooltipBackgroundColor;
-	}
-
-	/**
-	 * Set the background {@link Color} for tool tip.
-	 * 
-	 * @param tooltipBackgroundColor
-	 *            The {@link Color} to set. This value should not be
-	 *            <code>null</code>.
-	 * 
-	 * @since 3.3
-	 */
-	public void setTooltipBackgroundColor(Color tooltipBackgroundColor) {
-		this.tooltipBackgroundColor = tooltipBackgroundColor;
-	}
-
-	/**
-	 * Return whether or not the tool tip background color has been set.
-	 * 
-	 * @return <code>boolean</code>. <code>true</code> if the tool tip text
-	 *         has been set.
-	 * 
-	 * @since 3.3
-	 */
-	public boolean hasNewTooltipBackgroundColor() {
-		return tooltipBackgroundColor != null;
-	}
-
-	/**
-	 * Return the foreground {@link Color}.
-	 * 
-	 * @return Returns {@link Color} or <code>null</code> if the tool tip
-	 *         foreground color has not been set.
-	 * 
-	 * @since 3.3
-	 */
-	public Color getTooltipForegroundColor() {
-		return tooltipForegroundColor;
-	}
-
-	/**
-	 * Set the foreground {@link Color} for tool tip.
-	 * 
-	 * @param tooltipForegroundColor
-	 *            The tooltipForegroundColor to set.
-	 *            
-	 * @since 3.3
-	 */
-	public void setTooltipForegroundColor(Color tooltipForegroundColor) {
-		this.tooltipForegroundColor = tooltipForegroundColor;
-	}
-
-	/**
-	 * 
-	 * Return whether or not the tool tip foreground color has been set.
-	 * 
-	 * @return <code>boolean</code>. <code>true</code> if the tool tip foreground
-	 *         has been set.
-	 * 
-	 * @since 3.3
-	 */
-	public boolean hasNewTooltipForegroundColor() {
-		return tooltipForegroundColor != null;
-	}
-
-	/**
-	 * @return Returns the tooltipShift.
-	 * @since 3.3
-	 */
-	public Point getTooltipShift() {
-		return tooltipShift;
-	}
-
-	/**
-	 * @param tooltipShift
-	 *            The tooltipShift to set.
-	 * @since 3.3
-	 */
-	public void setTooltipShift(Point tooltipShift) {
-		this.tooltipShift = tooltipShift;
-	}
-
-	/**
-	 * @return Return whether or not the tool tip shift has been set.
-	 * @since 3.3
-	 */
-	public boolean hasTooltipShift() {
-		return this.tooltipShift != null;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerRow.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerRow.java
deleted file mode 100644
index edce5e5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerRow.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                               - fix in bug: 166346,167325,174355,195908,198035,215069,227421
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-import org.eclipse.jface.util.Policy;
-
-/**
- * ViewerRow is the abstract superclass of the part that represents items in a
- * Table or Tree. Implementors of {@link ColumnViewer} have to provide a
- * concrete implementation for the underlying widget
- * 
- * @since 3.3
- * 
- */
-public abstract class ViewerRow implements Cloneable {
-
-	/**
-	 * Constant denoting the row above the current one (value is 1).
-	 * 
-	 * @see #getNeighbor(int, boolean)
-	 */
-	public static final int ABOVE = 1;
-
-	/**
-	 * Constant denoting the row below the current one (value is 2).
-	 * 
-	 * @see #getNeighbor(int, boolean)
-	 */
-	public static final int BELOW = 2;
-
-	private static final String KEY_TEXT_LAYOUT = Policy.JFACE + "styled_label_key_"; //$NON-NLS-1$
-
-	private static final String KEY_TEXT_LAYOUT_0 = Policy.JFACE + "styled_label_key_0"; //$NON-NLS-1$
-
-	private static String[] cachedDataKeys;
-
-	/**
-	 * Get the bounds of the entry at the columnIndex,
-	 * 
-	 * @param columnIndex
-	 * @return {@link Rectangle}
-	 */
-	public abstract Rectangle getBounds(int columnIndex);
-
-	/**
-	 * Return the bounds for the whole item.
-	 * 
-	 * @return {@link Rectangle}
-	 */
-	public abstract Rectangle getBounds();
-
-	/**
-	 * Return the item for the receiver.
-	 * 
-	 * @return {@link Widget}
-	 */
-	public abstract Widget getItem();
-
-	/**
-	 * Return the number of columns for the receiver.
-	 * 
-	 * @return the number of columns
-	 */
-	public abstract int getColumnCount();
-
-	/**
-	 * Return the image at the columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @return {@link Image} or <code>null</code>
-	 */
-	public abstract Image getImage(int columnIndex);
-
-	/**
-	 * Set the image at the columnIndex
-	 * 
-	 * @param columnIndex
-	 * @param image
-	 */
-	public abstract void setImage(int columnIndex, Image image);
-
-	/**
-	 * Get the text at the columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @return {@link String}
-	 */
-	public abstract String getText(int columnIndex);
-
-	/**
-	 * Set the text at the columnIndex
-	 * 
-	 * @param columnIndex
-	 * @param text
-	 */
-	public abstract void setText(int columnIndex, String text);
-
-	/**
-	 * Get the background at the columnIndex,
-	 * 
-	 * @param columnIndex
-	 * @return {@link Color} or <code>null</code>
-	 */
-	public abstract Color getBackground(int columnIndex);
-
-	/**
-	 * Set the background at the columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @param color
-	 */
-	public abstract void setBackground(int columnIndex, Color color);
-
-	/**
-	 * Get the foreground at the columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @return {@link Color} or <code>null</code>
-	 */
-	public abstract Color getForeground(int columnIndex);
-
-	/**
-	 * Set the foreground at the columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @param color
-	 */
-	public abstract void setForeground(int columnIndex, Color color);
-
-	/**
-	 * Get the font at the columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @return {@link Font} or <code>null</code>
-	 */
-	public abstract Font getFont(int columnIndex);
-
-	/**
-	 * Set the {@link Font} at the columnIndex.
-	 * 
-	 * @param columnIndex
-	 * @param font
-	 */
-	public abstract void setFont(int columnIndex, Font font);
-
-	/**
-	 * Get the ViewerCell at point.
-	 * 
-	 * @param point
-	 * @return @return {@link ViewerCell} or <code>null</code> if the point is
-	 *         not in the bounds of a cell
-	 */
-	public ViewerCell getCell(Point point) {
-		int index = getColumnIndex(point);
-		return getCell(index);
-	}
-
-	/**
-	 * Get the columnIndex of the point.
-	 * 
-	 * @param point
-	 * @return int or -1 if it cannot be found.
-	 */
-	public int getColumnIndex(Point point) {
-		int count = getColumnCount();
-
-		// If there are no columns the column-index is 0
-		if (count == 0) {
-			return 0;
-		}
-
-		for (int i = 0; i < count; i++) {
-			if (getBounds(i).contains(point)) {
-				return i;
-			}
-		}
-
-		return -1;
-	}
-
-	/**
-	 * Get a ViewerCell for the column at index.
-	 * 
-	 * @param column
-	 * @return {@link ViewerCell} or <code>null</code> if the index is negative.
-	 */
-	public ViewerCell getCell(int column) {
-		if (column >= 0)
-			return new ViewerCell((ViewerRow) clone(), column, getElement());
-
-		return null;
-	}
-
-	/**
-	 * Get the Control for the receiver.
-	 * 
-	 * @return {@link Control}
-	 */
-	public abstract Control getControl();
-
-	/**
-	 * Returns a neighboring row, or <code>null</code> if no neighbor exists in
-	 * the given direction. If <code>sameLevel</code> is <code>true</code>, only
-	 * sibling rows (under the same parent) will be considered.
-	 * 
-	 * @param direction
-	 *            the direction {@link #BELOW} or {@link #ABOVE}
-	 * 
-	 * @param sameLevel
-	 *            if <code>true</code>, search only within sibling rows
-	 * @return the row above/below, or <code>null</code> if not found
-	 */
-	public abstract ViewerRow getNeighbor(int direction, boolean sameLevel);
-
-	/**
-	 * The tree path used to identify an element by the unique path
-	 * 
-	 * @return the path
-	 */
-	public abstract TreePath getTreePath();
-
-	public abstract Object clone();
-
-	/**
-	 * @return the model element
-	 */
-	public abstract Object getElement();
-
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result
-				+ ((getItem() == null) ? 0 : getItem().hashCode());
-		return result;
-	}
-
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		final ViewerRow other = (ViewerRow) obj;
-		if (getItem() == null) {
-			if (other.getItem() != null)
-				return false;
-		} else if (!getItem().equals(other.getItem()))
-			return false;
-		return true;
-	}
-
-	/**
-	 * The cell at the current index (as shown in the UI). This can be different
-	 * to the original index when columns are reordered.
-	 * 
-	 * @param visualIndex
-	 *            the current index (as shown in the UI)
-	 * @return the cell at the currently visible index
-	 */
-	ViewerCell getCellAtVisualIndex(int visualIndex) {
-		return getCell(getCreationIndex(visualIndex));
-	}
-
-	/**
-	 * Translate the original column index to the actual one.
-	 * <p>
-	 * <b>Because of backwards API compatibility the default implementation
-	 * returns the original index. Implementators of {@link ColumnViewer} should
-	 * overwrite this method if their widget supports reordered columns</b>
-	 * </p>
-	 * 
-	 * @param creationIndex
-	 *            the original index
-	 * @return the current index (as shown in the UI)
-	 * @since 3.4
-	 */
-	protected int getVisualIndex(int creationIndex) {
-		return creationIndex;
-	}
-
-	/**
-	 * Translate the current column index (as shown in the UI) to the original
-	 * one.
-	 * <p>
-	 * <b>Because of backwards API compatibility the default implementation
-	 * returns the original index. Implementators of {@link ColumnViewer} should
-	 * overwrite this method if their widget supports reordered columns</b>
-	 * </p>
-	 * 
-	 * @param visualIndex
-	 *            the current index (as shown in the UI)
-	 * @return the original index
-	 * @since 3.4
-	 */
-	protected int getCreationIndex(int visualIndex) {
-		return visualIndex;
-	}
-
-	/**
-	 * The location and bounds of the area where the text is drawn depends on
-	 * various things (image displayed, control with SWT.CHECK)
-	 * 
-	 * @param index
-	 *            the column index
-	 * @return the bounds of the of the text area. May return <code>null</code>
-	 *         if the underlying widget implementation doesn't provide this
-	 *         information
-	 * @since 3.4
-	 */
-	public Rectangle getTextBounds(int index) {
-		return null;
-	}
-
-	/**
-	 * Returns the location and bounds of the area where the image is drawn.
-	 * 
-	 * @param index
-	 *            the column index
-	 * @return the bounds of the of the image area. May return <code>null</code>
-	 *         if the underlying widget implementation doesn't provide this
-	 *         information
-	 * @since 3.4
-	 */
-	public Rectangle getImageBounds(int index) {
-		return null;
-	}
-
-	/**
-	 * Set the style ranges to be applied on the text label at the column index
-	 * Note: Requires {@link StyledCellLabelProvider} with owner draw enabled.
-	 * 
-	 * @param columnIndex
-	 *            the index of the column
-	 * @param styleRanges
-	 *            the styled ranges
-	 * 
-	 * @since 3.4
-	 */
-	public void setStyleRanges(int columnIndex, StyleRange[] styleRanges) {
-		getItem().setData(getStyleRangesDataKey(columnIndex), styleRanges);
-	}
-
-	/**
-	 * @param columnIndex
-	 * @return
-	 */
-	private String getStyleRangesDataKey(int columnIndex) {
-		if (columnIndex == 0)
-			return KEY_TEXT_LAYOUT_0;
-
-		if (cachedDataKeys == null) {
-			int size = Math.max(10, columnIndex + 1);
-			cachedDataKeys= new String[size];
-			for (int i = 1; i < cachedDataKeys.length; i++) {
-				cachedDataKeys[i] = KEY_TEXT_LAYOUT + i;
-			}
-		} else if (columnIndex >= cachedDataKeys.length) {
-			String[] newCachedDataKeys = new String[columnIndex + 1];
-			System.arraycopy(cachedDataKeys, 0, newCachedDataKeys, 0, cachedDataKeys.length);
-			for (int i = cachedDataKeys.length; i < newCachedDataKeys.length; i++) {
-				newCachedDataKeys[i] = KEY_TEXT_LAYOUT + i;
-			}
-			cachedDataKeys = newCachedDataKeys;
-		}
-		return cachedDataKeys[columnIndex];
-	}
-
-	/**
-	 * Returns the style ranges to be applied on the text label at the column
-	 * index or <code>null</code> if no style ranges have been set.
-	 * 
-	 * @param columnIndex
-	 *            the index of the column
-	 * @return styleRanges the styled ranges
-	 * 
-	 * @since 3.4
-	 */
-	public StyleRange[] getStyleRanges(int columnIndex) {
-		return (StyleRange[]) getItem().getData(getStyleRangesDataKey(columnIndex));
-	}
-
-	int getWidth(int columnIndex) {
-		return getBounds(columnIndex).width;
-	}
-
-	/**
-	 * Scrolls the cell at this index into view
-	 * <p>
-	 * <b>Because of backwards API compatibility the default implementation is a
-	 * no-op. Implementators of {@link ColumnViewer} should overwrite this
-	 * method if their widget supports reordered columns</b>
-	 * </p>
-	 * 
-	 * @param columnIndex
-	 *            the column index
-	 * @return return <code>true</code> when the cell is scrolled into view
-	 * @since 3.5
-	 */
-	protected boolean scrollCellIntoView(int columnIndex) {
-		return false;
-	}
-
-	/**
-	 * Returns <code>true</code> if the column with the given index is visible
-	 * 
-	 * @param columnIndex
-	 *            the column index
-	 * 
-	 * @return <code>true</code> if the column is visible
-	 * @since 3.5
-	 */
-	protected boolean isColumnVisible(int columnIndex) {
-		return getWidth(columnIndex) > 0;
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerSorter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerSorter.java
deleted file mode 100644
index efa5839..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerSorter.java
+++ /dev/null
@@ -1,74 +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.jface.viewers;
-
-import java.text.Collator; // can't use ICU - Collator used in public API
-
-/**
- * A viewer sorter is used by a {@link StructuredViewer} to reorder the elements 
- * provided by its content provider.
- * <p>
- * The default <code>compare</code> method compares elements using two steps. 
- * The first step uses the values returned from <code>category</code>. 
- * By default, all elements are in the same category. 
- * The second level is based on a case insensitive compare of the strings obtained 
- * from the content viewer's label provider via <code>ILabelProvider.getText</code>.
- * </p>
- * <p>
- * Subclasses may implement the <code>isSorterProperty</code> method;
- * they may reimplement the <code>category</code> method to provide 
- * categorization; and they may override the <code>compare</code> methods
- * to provide a totally different way of sorting elements.
- * </p>
- * <p>
- * It is recommended to use <code>ViewerComparator</code> instead.
- * </p>
- * @see IStructuredContentProvider
- * @see StructuredViewer
- */
-public class ViewerSorter extends ViewerComparator {
-    /**
-     * The collator used to sort strings.
-     * 
-     * @deprecated as of 3.3 Use {@link ViewerComparator#getComparator()}
-     */
-    protected Collator collator;
-
-    /**
-     * Creates a new viewer sorter, which uses the default collator
-     * to sort strings.
-     */
-    public ViewerSorter() {
-        this(Collator.getInstance());
-    }
-
-    /**
-     * Creates a new viewer sorter, which uses the given collator
-     * to sort strings.
-     *
-     * @param collator the collator to use to sort strings
-     */
-    public ViewerSorter(Collator collator) {
-    	super(collator);
-        this.collator = collator;
-    }
-
-    /**
-     * Returns the collator used to sort strings.
-     *
-     * @return the collator used to sort strings
-     * @deprecated as of 3.3 Use {@link ViewerComparator#getComparator()}
-     */
-    public Collator getCollator() {
-        return collator;
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java
deleted file mode 100644
index a95cc4e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/WrappedViewerLabelProvider.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * The WrappedViewerLabelProvider is a label provider that allows
- * {@link ILabelProvider}, {@link IColorProvider} and {@link IFontProvider} to
- * be mapped to a ColumnLabelProvider.
- * 
- * @since 3.3
- * 
- */
-class WrappedViewerLabelProvider extends ColumnLabelProvider {
-
-	private static ILabelProvider defaultLabelProvider = new LabelProvider();
-
-	private ILabelProvider labelProvider = defaultLabelProvider;
-
-	private IColorProvider colorProvider;
-
-	private IFontProvider fontProvider;
-
-	private IViewerLabelProvider viewerLabelProvider;
-
-	private ITreePathLabelProvider treePathLabelProvider;
-
-	/**
-	 * Create a new instance of the receiver based on labelProvider.
-	 * 
-	 * @param labelProvider
-	 */
-	public WrappedViewerLabelProvider(IBaseLabelProvider labelProvider) {
-		super();
-		setProviders(labelProvider);
-	}
-
-	/**
-	 * Set the any providers for the receiver that can be adapted from provider.
-	 * 
-	 * @param provider
-	 *            {@link Object}
-	 */
-	public void setProviders(Object provider) {
-		if (provider instanceof ITreePathLabelProvider)
-			treePathLabelProvider = ((ITreePathLabelProvider) provider);
-
-		if (provider instanceof IViewerLabelProvider)
-			viewerLabelProvider = ((IViewerLabelProvider) provider);
-
-		if (provider instanceof ILabelProvider)
-			labelProvider = ((ILabelProvider) provider);
-
-		if (provider instanceof IColorProvider)
-			colorProvider = (IColorProvider) provider;
-
-		if (provider instanceof IFontProvider)
-			fontProvider = (IFontProvider) provider;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object element) {
-		if (fontProvider == null) {
-			return null;
-		}
-
-		return fontProvider.getFont(element);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-	 */
-	public Color getBackground(Object element) {
-		if (colorProvider == null) {
-			return null;
-		}
-
-		return colorProvider.getBackground(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		return getLabelProvider().getText(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		return getLabelProvider().getImage(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-	 */
-	public Color getForeground(Object element) {
-		if (colorProvider == null) {
-			return null;
-		}
-
-		return colorProvider.getForeground(element);
-	}
-
-	/**
-	 * Get the label provider
-	 * 
-	 * @return {@link ILabelProvider}
-	 */
-	ILabelProvider getLabelProvider() {
-		return labelProvider;
-	}
-
-	/**
-	 * Get the color provider
-	 * 
-	 * @return {@link IColorProvider}
-	 */
-	IColorProvider getColorProvider() {
-		return colorProvider;
-	}
-
-	/**
-	 * Get the font provider
-	 * 
-	 * @return {@link IFontProvider}.
-	 */
-	IFontProvider getFontProvider() {
-		return fontProvider;
-	}
-
-	public void update(ViewerCell cell) {
-		Object element = cell.getElement();
-		if(viewerLabelProvider == null && treePathLabelProvider == null){
-			// inlined super implementation with performance optimizations
-			cell.setText(getText(element));
-			Image image = getImage(element);
-			cell.setImage(image);
-			if (colorProvider != null) {
-				cell.setBackground(getBackground(element));
-				cell.setForeground(getForeground(element));
-			}
-			if (fontProvider != null) {
-				cell.setFont(getFont(element));
-			}
-			return;
-		}
-		
-		ViewerLabel label = new ViewerLabel(cell.getText(), cell.getImage());
-		
-		if (treePathLabelProvider != null) {
-			TreePath treePath = cell.getViewerRow().getTreePath();
-
-			Assert.isNotNull(treePath);
-			treePathLabelProvider.updateLabel(label, treePath);
-		} else if (viewerLabelProvider != null) {
-			viewerLabelProvider.updateLabel(label, element);
-		} 
-		if (!label.hasNewForeground() && colorProvider != null) 
-			label.setForeground(getForeground(element));
-		
-		if (!label.hasNewBackground() && colorProvider != null) 
-			label.setBackground(getBackground(element));
-		
-		if (!label.hasNewFont() && fontProvider != null) 
-			label.setFont(getFont(element));
-		
-		applyViewerLabel(cell, label);
-	}
-
-	private void applyViewerLabel(ViewerCell cell, ViewerLabel label) {
-		if (label.hasNewText()) {
-			cell.setText(label.getText());
-		}
-		if (label.hasNewImage()) {
-			cell.setImage(label.getImage());
-		}
-		if (colorProvider!= null || label.hasNewBackground()) {
-			cell.setBackground(label.getBackground());
-		}
-		if (colorProvider!= null || label.hasNewForeground()) {
-			cell.setForeground(label.getForeground());
-		}
-		if (fontProvider!= null || label.hasNewFont()) {
-			cell.setFont(label.getFont());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractConcurrentModel.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractConcurrentModel.java
deleted file mode 100644
index f493244..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractConcurrentModel.java
+++ /dev/null
@@ -1,101 +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.jface.viewers.deferred;
-
-import org.eclipse.core.runtime.ListenerList;
-
-
-/**
- * Abstract base class for all IConcurrentModel implementations. Clients should
- * subclass this class instead of implementing IConcurrentModel directly. 
- * 
- * @since 3.1
- */
-public abstract class AbstractConcurrentModel implements
-        IConcurrentModel {
-
-    private ListenerList listeners = new ListenerList(); 
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.deferred.IConcurrentContentProvider#addListener(org.eclipse.jface.viewers.deferred.IConcurrentContentProviderListener)
-     */
-    public void addListener(IConcurrentModelListener listener) {
-        listeners.add(listener);
-    }
-    
-    /**
-     * Fires an add notification to all listeners
-     * 
-     * @param added objects added to the set
-     */
-    protected final void fireAdd(Object[] added) {
-        Object[] listenerArray = listeners.getListeners();
-        
-        for (int i = 0; i < listenerArray.length; i++) {
-            IConcurrentModelListener next = (IConcurrentModelListener) listenerArray[i];
-            
-            next.add(added);
-        }
-    }
-
-    /**
-     * Fires a remove notification to all listeners
-     * 
-     * @param removed objects removed from the set
-     */
-    protected final void fireRemove(Object[] removed) {
-        Object[] listenerArray = listeners.getListeners();
-        
-        for (int i = 0; i < listenerArray.length; i++) {
-            IConcurrentModelListener next = (IConcurrentModelListener) listenerArray[i];
-            
-            next.remove(removed);
-        }
-    }
-    
-    /**
-     * Fires an update notification to all listeners
-     * 
-     * @param updated objects that have changed
-     */
-    protected final void fireUpdate(Object[] updated) {
-        Object[] listenerArray = listeners.getListeners();
-        
-        for (int i = 0; i < listenerArray.length; i++) {
-            IConcurrentModelListener next = (IConcurrentModelListener) listenerArray[i];
-            
-            next.update(updated);
-        }
-    }
-    
-    /**
-     * Returns the array of listeners for this model
-     * 
-     * @return the array of listeners for this model 
-     */
-    protected final IConcurrentModelListener[] getListeners() {
-    	Object[] l = listeners.getListeners();
-    	IConcurrentModelListener[] result = new IConcurrentModelListener[l.length];
-    	
-    	for (int i = 0; i < l.length; i++) {
-			result[i] = (IConcurrentModelListener)l[i];
-		}
-    	
-    	return result;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.deferred.IConcurrentContentProvider#removeListener(org.eclipse.jface.viewers.deferred.IConcurrentContentProviderListener)
-     */
-    public void removeListener(IConcurrentModelListener listener) {
-        listeners.remove(listener);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractVirtualTable.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractVirtualTable.java
deleted file mode 100644
index 7c8d6c1..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/AbstractVirtualTable.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.jface.viewers.deferred;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Wrapper for a virtual-table-like widget. Contains all methods needed for lazy updates.
- * The JFace algorithms for deferred or lazy content providers should talk to this class
- * instead of directly to a TableViewer. This will allow them to be used with other virtual
- * viewers and widgets in the future.
- * 
- * <p>
- * For example, if SWT starts to support virtual Lists in the future, it should be possible
- * to create an adapter from <code>AbstractVirtualTable</code> to <code>ListViewer</code> in 
- * order to reuse the existing algorithms for deferred updates. 
- * </p>
- * 
- * <p>
- * This is package visiblity by design. It would only need to be made public if there was
- * a demand to use the deferred content provider algorithms like 
- * <code>BackgroundContentProvider</code> with non-JFace viewers.
- * </p>
- * 
- * @since 3.1
- */
-abstract class AbstractVirtualTable {
-    /**
-     * Tells the receiver that the item at given row has changed. This may indicate
-     * that a different element is now at this row, but does not necessarily indicate
-     * that the element itself has changed. The receiver should request information for
-     * this row the next time it becomes visibile.
-     * 
-     * @param index row to clear
-     */
-    public abstract void clear(int index);
-    
-    /**
-     * Notifies the receiver that the given element is now located at the given index.
-     * 
-     * @param element object located at the row
-     * @param itemIndex row number
-     */
-    public abstract void replace(Object element, int itemIndex);
-    
-    /**
-     * Sets the item count for this table 
-     * 
-     * @param total new total number of items
-     */
-    public abstract void setItemCount(int total);
-    
-    /**
-     * Returns the index of the top item visible in the table
-     * 
-     * @return the index of the top item visible in the table
-     */
-    public abstract int getTopIndex();
-    
-    /**
-     * Returns the number of items currently visible in the table. This is
-     * the size of the currently visible window, not the total size of the table.
-     * 
-     * @return the number of items currently visible in the table
-     */
-    public abstract int getVisibleItemCount();
-    
-    /**
-     * Returns the total number of items in the table
-     * 
-     * @return the total number of items in the table
-     */
-    public abstract int getItemCount();
-    
-    /**
-     * Returns the SWT control that this API is wrappering.
-     * @return Control.
-     */
-    public abstract Control getControl();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/BackgroundContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/BackgroundContentProvider.java
deleted file mode 100644
index c7c776b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/BackgroundContentProvider.java
+++ /dev/null
@@ -1,572 +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.jface.viewers.deferred;
-
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.AcceptAllFilter;
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.deferred.ConcurrentTableUpdator.Range;
-
-/**
- * Contains the algorithm for performing background sorting and filtering in a virtual
- * table. This is the real implementation for <code>DeferredContentProvider</code>.
- * However, this class will work with anything that implements <code>AbstractVirtualTable</code>
- * rather than being tied to a <code>TableViewer</code>.
- * 
- * <p>
- * This is package visiblity since it currently only needs to be used in one place,
- * but it could potentially be made public if there was a need to use the same background
- * sorting algorithm for something other than a TableViewer. 
- * </p>
- * 
- * <p>
- * Information flow is like this:
- * </p>
- * <ol>
- * <li>IConcurrentModel sends unordered elements to BackgroundContentProvider (in a background thread)</li>
- * <li>BackgroundContentProvider sorts, filters, and sends element/index pairs to
- *     ConcurrentTableUpdator (in a background thread)</li>
- * <li>ConcurrentTableUpdator batches the updates and sends them to an AbstractVirtualTable 
- *     (in the UI thread)</li>  
- * </ol>
- * 
- * <p>
- * Internally, sorting is done using a <code>LazySortedCollection</code>. This data structure
- * allows the content provider to locate and sort the visible range without fully sorting
- * all elements in the table. It also supports fast cancellation, allowing the visible range
- * to change in the middle of a sort without discarding partially-sorted information from
- * the previous range.
- * </p>
- * 
- * @since 3.1
- */
-/* package */ final class BackgroundContentProvider {
-    
-	/**
-	 * Sorting message string
-	 */
-    private static final String SORTING = JFaceResources.getString("Sorting"); //$NON-NLS-1$
-
-    /**
-     * Table limit. -1 if unlimited
-     */
-	private int limit = -1;
-	
-	/**
-	 * Model that is currently providing input to this content provider.
-	 */
-    private IConcurrentModel model;
-    
-    /**
-     * Current sort order 
-     */
-    private volatile Comparator sortOrder;
-    
-    /**
-     * True iff the content provider has 
-     */
-    private volatile IFilter filter = AcceptAllFilter.getInstance();
-    
-    /**
-     * Queued changes
-     */
-    private ChangeQueue changeQueue = new ChangeQueue();
-    
-    /**
-     * Listener that gets callbacks from the model
-     */
-    private IConcurrentModelListener listener = new IConcurrentModelListener() {
-    	/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.IConcurrentModelListener#add(java.lang.Object[])
-		 */
-		public void add(Object[] added) {
-			BackgroundContentProvider.this.add(added);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.IConcurrentModelListener#remove(java.lang.Object[])
-		 */
-		public void remove(Object[] removed) {
-			BackgroundContentProvider.this.remove(removed);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.IConcurrentModelListener#setContents(java.lang.Object[])
-		 */
-		public void setContents(Object[] newContents) {
-			BackgroundContentProvider.this.setContents(newContents);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.IConcurrentModelListener#update(java.lang.Object[])
-		 */
-		public void update(Object[] changed) {
-			BackgroundContentProvider.this.update(changed);
-		}
-		
-    };
-
-    /**
-     * Object that posts updates to the UI thread. Must synchronize on
-     * sortMutex when accessing. 
-     */
-    private ConcurrentTableUpdator updator;
-    
-    private IProgressMonitor sortingProgressMonitor = new NullProgressMonitor();
-    private Thread sortThread = null;
-
-	private volatile FastProgressReporter sortMon = new FastProgressReporter();
-
-	private volatile Range range = new Range(0,0);
-    
-    /**
-     * Creates a new background content provider
-     *  
-     * @param table table that will receive updates
-     * @param model data source
-     * @param sortOrder initial sort order
-     */
-    public BackgroundContentProvider(AbstractVirtualTable table, 
-            IConcurrentModel model, Comparator sortOrder) {
-        
-        updator = new ConcurrentTableUpdator(table);
-        this.model = model;
-        this.sortOrder = sortOrder;
-        model.addListener(listener);
-    }
-    
-    /**
-     * Cleans up this content provider, detaches listeners, frees up memory, etc. 
-     * Must be the last public method called on this object.
-     */
-    public void dispose() {
-        cancelSortJob();
-        updator.dispose();
-        model.removeListener(listener);
-    }
-    
-    /**
-     * Force a refresh. Asks the model to re-send its complete contents.
-     */
-    public void refresh() {
-    	if (updator.isDisposed()) {
-    		return;
-    	}
-        model.requestUpdate(listener);
-    }
-
-    /**
-     * Called from sortJob. Sorts the elements defined by sortStart and sortLength.
-     * Schedules a UI update when finished.
-     * 
-     * @param mon monitor where progress will be reported
-     */
-    private void doSort(IProgressMonitor mon) {        
-        
-        // Workaround for some weirdness in the Jobs framework: if you cancel a monitor
-        // for a job that has ended and reschedule that same job, it will start 
-        // the job with a monitor that is already cancelled. We can workaround this by
-        // removing all references to the progress monitor whenever the job terminates,
-        // but this would require additional synchronize blocks (which are slow) and more
-        // complexity. Instead, we just un-cancel the monitor at the start of each job. 
-        mon.setCanceled(false);
-
-       	mon.beginTask(SORTING, 100);
-       	
-        // Create a LazySortedCollection
-        Comparator order = sortOrder;
-        IFilter f = filter;
-        LazySortedCollection collection = new LazySortedCollection(order);
-        
-        // Fill it in with all existing known objects
-        Object[] knownObjects = updator.getKnownObjects();
-        for (int i = 0; i < knownObjects.length; i++) {
-			Object object = knownObjects[i];
-			if (object != null) {
-				collection.add(object);
-			}
-		}
-
-        boolean dirty = false;
-        int prevSize = knownObjects.length;
-        updator.setTotalItems(prevSize);
-        
-		// Start processing changes
-        while(true) {
-        	// If the sort order has changed, build a new LazySortedCollection with
-        	// the new comparator
-        	if (order != sortOrder) {
-        		dirty = true;
-        		order = sortOrder;
-        		// Copy all elements from the old collection to the new one 
-        		LazySortedCollection newCollection = new LazySortedCollection(order);
-        		
-        		Object[] items = collection.getItems(false);
-        		for (int j = 0; j < items.length && order == sortOrder; j++) {
-					Object item = items[j];
-					
-					newCollection.add(item);
-				}
-        		
-        		// If the sort order changed again, re-loop
-				if (order != sortOrder) {
-					continue;
-				}
-				collection = newCollection;
-				continue;
-        	} 
-        	
-        	// If the filter has changed
-        	if (f != filter) {
-        		dirty = true;
-        		f = filter;
-        		
-        		Object[] items = collection.getItems(false);
-        		
-        		// Remove any items that don't pass the new filter
-        		for (int j = 0; j < items.length && f == filter; j++) {
-					Object toTest = items[j];
-					
-					if (!f.select(toTest)) {
-						collection.remove(toTest);
-					}
-				}
-        		continue;
-        	}
-        
-        	// If there are pending changes, process one of them
-        	if (!changeQueue.isEmpty()) {
-        		dirty = true;
-	        	ChangeQueue.Change next = changeQueue.dequeue();
-	        	
-	        	switch(next.getType()) {
-		        	case ChangeQueue.ADD: {
-		            	filteredAdd(collection, next.getElements(), f);
-		        		break;
-		        	}
-		        	case ChangeQueue.REMOVE: {
-		        		Object[] toRemove = next.getElements();
-	
-		                flush(toRemove, collection);
-		                collection.removeAll(toRemove);
-	
-		        		break;
-		        	}
-		        	case ChangeQueue.UPDATE: {
-		        		Object[] items  = next.getElements();
-		        		
-	        	        for (int i = 0; i < items.length; i++) {
-	        	            Object item = items[i];
-	        	            
-	        	            if (collection.contains(item)) {
-	        	                // TODO: write a collection.update(...) method
-	        	                collection.remove(item);
-	        	                collection.add(item);
-	        	                updator.clear(item);        	                
-	        	            }
-	        	        }
-		        	        
-		        		break;
-		        	}
-		        	case ChangeQueue.SET: {
-		        		Object[] items = next.getElements();
-		        		collection.clear();
-		        		filteredAdd(collection, items, f);
-		        	        
-		        		break;
-		        	}
-	        	}
-	        	
-	        	continue;
-        	}
-        	
-	        int totalElements = collection.size();
-            if (limit != -1) {
-                if (totalElements > limit) {
-                    totalElements = limit;
-                }
-            }
-            
-            if (totalElements != prevSize) {
-            	prevSize = totalElements;
-	            // Send the total items to the updator ASAP -- the user may want
-	            // to scroll to a different section of the table, which would
-	            // cause our sort range to change and cause this job to get cancelled.
-		        updator.setTotalItems(totalElements);
-		        dirty = true;
-            }
-            
-            // Terminate loop
-            if (!dirty) {
-            	break;
-            }
-        	
-            try {
-            	ConcurrentTableUpdator.Range updateRange = updator.getVisibleRange();
-            	sortMon = new FastProgressReporter();
-            	range = updateRange;
-            	int sortStart = updateRange.start;
-            	int sortLength = updateRange.length;
-            
-		        if (limit != -1) {
-		            collection.retainFirst(limit, sortMon);
-		        }
-
-		        sortLength = Math.min(sortLength, totalElements - sortStart);
-		        sortLength = Math.max(sortLength, 0);
-		        
-		        Object[] objectsOfInterest = new Object[sortLength];
-		     
-		        collection.getRange(objectsOfInterest, sortStart, true, sortMon);
-		        
-		        // Send the new elements to the table
-		        for (int i = 0; i < sortLength; i++) {
-					Object object = objectsOfInterest[i];
-					updator.replace(object, sortStart + i);
-				}
-		        
-			    objectsOfInterest = new Object[collection.size()];
-			        
-			    collection.getFirst(objectsOfInterest, true, sortMon);
-		        
-		        // Send the new elements to the table
-		        for (int i = 0; i < totalElements; i++) {
-					Object object = objectsOfInterest[i];
-					updator.replace(object, i);
-				}
-
-            } catch (InterruptedException e) {
-            	continue;
-            }
-            
-            dirty = false;
-	    }
-        
-        mon.done();
-    }
-
-	/**
-	 * @param collection
-	 * @param toAdd
-	 */
-	private static void filteredAdd(LazySortedCollection collection, Object[] toAdd, IFilter filter) {
-		if (filter != AcceptAllFilter.getInstance()) { 
-			for (int i = 0; i < toAdd.length; i++) {
-				Object object = toAdd[i];
-				
-				if (filter.select(object)) {
-					collection.add(object);
-				}
-			}
-		} else {
-			collection.addAll(toAdd);
-		}
-	}
-    
-    /**
-     * Sets the sort order for this content provider
-     * 
-     * @param sorter sort order
-     */
-    public void setSortOrder(Comparator sorter) {
-    	Assert.isNotNull(sorter);
-        this.sortOrder = sorter;
-    	sortMon.cancel();
-        refresh();
-    }
-    
-    /**
-     * Sets the filter for this content provider
-     * 
-     * @param toSet filter to set
-     */
-    public void setFilter(IFilter toSet) {
-    	Assert.isNotNull(toSet);
-    	this.filter = toSet;
-    	sortMon.cancel();
-    	refresh();
-    }
-    
-    /**
-     * Sets the maximum table size. Based on the current sort order,
-     * the table will be truncated if it grows beyond this size.
-     * Using a limit improves memory usage and performance, and is
-     * strongly recommended for large tables. 
-     * 
-     * @param limit maximum rows to show in the table or -1 if unbounded
-     */
-    public void setLimit(int limit) {
-        this.limit = limit;
-        refresh();
-    }
-    
-    /**
-     * Returns the maximum table size or -1 if unbounded
-     * 
-     * @return the maximum number of rows in the table or -1 if unbounded
-     */
-    public int getLimit() {
-        return limit;
-    }
-    
-    /**
-     * Checks if currently visible range has changed, and triggers and update
-     * and resort if necessary. Must be called in the UI thread, typically
-     * within a SWT.SetData callback.
-     * @param includeIndex the index that should be included in the visible range.
-     */
-    public void checkVisibleRange(int includeIndex) {
-    	updator.checkVisibleRange(includeIndex);
-		ConcurrentTableUpdator.Range newRange = updator.getVisibleRange();
-		ConcurrentTableUpdator.Range oldRange = range;
-		
-		// If we're in the middle of processing an invalid range, cancel the sort
-		if (newRange.start != oldRange.start || newRange.length != oldRange.length) {
-			sortMon.cancel();
-		}
-    }
-    
-    /**
-     * This lock protects the two boolean variables sortThreadStarted and resortScheduled.
-     */
-    private Object lock = new Object();
-
-    /**
-     * true if the sort thread is running
-     */
-    private boolean sortThreadStarted = false;
-
-    /**
-     * true if we need to sort
-     */
-    private boolean sortScheduled = false;
-    
-	private final class SortThread extends Thread {
-		private SortThread(String name) {
-			super(name);
-		}
-
-		public void run() {
-			loop: while (true) {
-				synchronized (lock) {
-					sortScheduled = false;
-				}
-				try {
-					// this is the main work
-					doSort(sortingProgressMonitor);
-				} catch (Exception ex) {
-					// ignore
-				}
-				synchronized (lock) {
-					if (sortScheduled) {
-						continue loop;
-					}
-					sortThreadStarted = false;
-					break loop;
-				}
-			}
-		}
-	}
-    
-    /**
-     * Must be called whenever the model changes. Dirties this object and triggers a sort
-     * if necessary. 
-     */
-    private void makeDirty() {
-		synchronized (lock) {
-			sortMon.cancel();
-			// request sorting
-			sortScheduled = true;
-			if (!sortThreadStarted) {
-				sortThreadStarted = true;
-				sortThread = new SortThread(SORTING);
-				sortThread.setDaemon(true);
-				sortThread.setPriority(Thread.NORM_PRIORITY - 1);
-				sortThread.start();
-			}
-		}
-	}
-    
-    /**
-	 * Cancels any sort in progress. Note that we try to use the
-	 * FastProgresReporter if possible since this is more responsive than
-	 * cancelling the sort job. However, it is not a problem to cancel in both
-	 * ways.
-	 */
-    private void cancelSortJob() {
-        sortMon.cancel();
-        sortingProgressMonitor.setCanceled(true);
-    }
-    
-    /**
-	 * Called when new elements are added to the model.
-	 * 
-	 * @param toAdd
-	 *            newly added elements
-	 */
-    private void add(Object[] toAdd) {
-    	changeQueue.enqueue(ChangeQueue.ADD, toAdd);
-    	makeDirty();
-    }
-    
-    /**
-     * Called with the complete contents of the model
-     * 
-     * @param contents new contents of the model
-     */
-    private void setContents(Object[] contents) {
-    	changeQueue.enqueue(ChangeQueue.SET, contents);
-    	makeDirty();
-    }
-
-    /**
-     * Called when elements are removed from the model
-     * 
-     * @param toRemove elements removed from the model
-     */
-    private void remove(Object[] toRemove) {
-        changeQueue.enqueue(ChangeQueue.REMOVE, toRemove);
-        makeDirty();
-        refresh();
-    }
-
-    /**
-     * Notifies the updator that the given elements have changed 
-     * 
-     * @param toFlush changed elements
-     * @param collection collection of currently-known elements
-     */
-    private void flush(Object[] toFlush, LazySortedCollection collection) {
-        for (int i = 0; i < toFlush.length; i++) {
-            Object item = toFlush[i];
-            
-            if (collection.contains(item)) {
-                updator.clear(item);
-            }
-        }
-    }
-
-
-    /**
-     * Called when elements in the model change
-     * 
-     * @param items changed items
-     */
-    private void update(Object[] items) {
-        changeQueue.enqueue(ChangeQueue.UPDATE, items);
-        makeDirty();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ChangeQueue.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ChangeQueue.java
deleted file mode 100644
index 575bde3..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ChangeQueue.java
+++ /dev/null
@@ -1,142 +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.jface.viewers.deferred;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * Holds a queue of additions, removals, updates, and SET calls for a
- * BackgroundContentProvider
- */
-final class ChangeQueue {
-	/**
-	 * Represents the addition of an item
-	 * @since 3.1
-	 */
-	public static final int ADD = 0;
-	/**
-	 * Represents the removal of an item
-	 * @since 3.1
-	 */
-	public static final int REMOVE = 1;
-	/**
-	 * Represents a reset of all the items
-	 * @since 3.1
-	 */
-	public static final int SET = 2;
-	/**
-	 * Represents an update of an item
-	 * @since 3.1
-	 */
-	public static final int UPDATE = 3;
-	
-	/**
-	 * 
-	 * @since 3.1
-	 */
-	public static final class Change {
-		private int type;
-		private Object[] elements;
-		
-		/**
-		 * Create a change of the specified type that affects the given elements.
-		 * 
-		 * @param type one of <code>ADD</code>, <code>REMOVE</code>, <code>SET</code>, or <code>UPDATE</code>.
-		 * @param elements the elements affected by the change.
-		 * 
-		 * @since 3.1
-		 */
-		public Change(int type, Object[] elements) {
-			this.type = type;
-			this.elements = elements;
-		}
-		
-		/**
-		 * Get the type of change.
-		 * @return one of <code>ADD</code>, <code>REMOVE</code>, <code>SET</code>, or <code>UPDATE</code>.
-		 * 
-		 * @since 3.1
-		 */
-		public int getType() {
-			return type;
-		}
-		
-		/**
-		 * Return the elements associated with the change.
-		 * @return the elements affected by the change.
-		 * 
-		 * @since 3.1
-		 */
-		public Object[] getElements() {
-			return elements;
-		}
-	}
-	
-	private LinkedList queue = new LinkedList();
-	private int workload = 0;
-	
-	/**
-	 * Create a change of the given type and elements and enqueue it.
-	 * 
-	 * @param type the type of change to be created
-	 * @param elements the elements affected by the change
-	 */
-	public synchronized void enqueue(int type, Object[] elements) {
-		enqueue(new Change(type, elements));
-	}
-	
-	/**
-	 * Add the specified change to the queue
-	 * @param toQueue the change to be added
-	 */
-	public synchronized void enqueue(Change toQueue) {
-		// A SET event makes all previous adds, removes, and sets redundant... so remove
-		// them from the queue
-		if (toQueue.type == SET) {
-			workload = 0;
-			LinkedList newQueue = new LinkedList();
-			for (Iterator iter = queue.iterator(); iter.hasNext();) {
-				Change next = (Change) iter.next();
-				
-				if (next.getType() == ADD || next.getType() == REMOVE || next.getType() == SET) {
-					continue;
-				}
-				
-				newQueue.add(next);
-				workload += next.elements.length;
-			}
-			queue = newQueue;
-		}
-		
-		queue.add(toQueue);
-		workload += toQueue.elements.length;
-	}
-	
-	/**
-	 * Remove the first change from the queue.
-	 * @return the first change
-	 */
-	public synchronized Change dequeue() {
-		Change result = (Change)queue.removeFirst();
-		
-		workload -= result.elements.length;
-		return result;
-	}
-	
-	/**
-	 * Return whether the queue is empty
-	 * @return <code>true</code> if empty, <code>false</code> otherwise
-	 */
-	public synchronized boolean isEmpty() {
-		return queue.isEmpty();
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ConcurrentTableUpdator.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ConcurrentTableUpdator.java
deleted file mode 100644
index b8d8054..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/ConcurrentTableUpdator.java
+++ /dev/null
@@ -1,382 +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.jface.viewers.deferred;
-
-
-
-/**
- * Allows a table to be accessed from a background thread. Provides a table-like public 
- * interface that can accessed from a background thread. As updates arrive from the 
- * background thread, it batches and schedules updates to the real table in the UI thread. 
- * This class can be used with any widget that can be wrapped in the 
- * <code>AbstractVirtualTable</code> interface.  
- * 
- * @since 3.1
- */
-/* package */ final class ConcurrentTableUpdator {
-	/**
-	 * Wrapper for the real table. May only be accessed in the UI thread.
-	 */
-    private AbstractVirtualTable table;
-    
-    /**
-     * The array of objects that have been sent to the UI. Elements are null
-     * if they either haven't been sent yet or have been scheduled for clear. 
-     * Maps indices onto elements.
-     */
-    private Object[] sentObjects = new Object[0];
-    
-    /**
-     * Map of elements to object indices (inverse of the knownObjects array)
-     */
-    private IntHashMap knownIndices = new IntHashMap();
-    
-    /**
-     * Contains all known objects that have been sent here from the background
-     * thread.
-     */
-    private Object[] knownObjects = new Object[0];
-    
-    // Minimum length for the pendingFlushes stack
-    private static final int MIN_FLUSHLENGTH = 64;
-    
-    /**
-     * Array of element indices. Contains elements scheduled to be
-     * cleared. Only the beginning of the array is used. The number
-     * of used elements is stored in lastClear
-     */
-    private int[] pendingClears = new int[MIN_FLUSHLENGTH];
-    
-    /**
-     * Number of pending clears in the pendingClears array (this is normally
-     * used instead of pendingClears.length since the 
-     * pendingClears array is usually larger than the actual number of pending
-     * clears) 
-     */
-    private int lastClear = 0;
-    
-    /**
-     * Last known visible range
-     */    
-    private volatile Range lastRange = new Range(0,0);
-    
-    /**
-     * True iff a UI update has been scheduled
-     */
-    private volatile boolean updateScheduled;
-    
-    /**
-     * True iff this object has been disposed
-     */
-    private volatile boolean disposed = false;
-    
-    /**
-     * Object that holds a start index and length. Allows
-     * the visible range to be returned as an atomic operation.
-     */
-    public final static class Range {
-        int start = 0;
-        int length = 0;
-        
-        /**
-         * @param s
-         * @param l
-         */
-        public Range(int s, int l) {
-            start = s;
-            length = l;
-        }
-    }
-    
-    /**
-     * Runnable that can be posted with an asyncExec to schedule
-     * an update to the real table.  
-     */
-    Runnable uiRunnable = new Runnable() {
-        public void run() {
-            updateScheduled = false;
-            if(!table.getControl().isDisposed()) {
-				updateTable();
-			}
-        }
-    };
-    
-    /**
-     * Creates a new table updator
-     * 
-     * @param table real table to update
-     */
-    public ConcurrentTableUpdator(AbstractVirtualTable table) {
-        this.table = table;
-    }
-    
-    /**
-     * Cleans up the updator object (but not the table itself).
-     */
-    public void dispose() {
-    	disposed = true;
-    }
-    
-    /**
-     * True iff this object has been disposed. 
-     * 
-     * @return true iff dispose() has been called
-     */
-    public boolean isDisposed() {
-    	return disposed;
-    }
-    
-    /**
-     * Returns the currently visible range
-     * 
-     * @return the currently visible range
-     */
-    public Range getVisibleRange() {
-    	return lastRange;
-    }
-    
-    /**
-     * Marks the given object as dirty. Will cause it to be cleared
-     * in the table. 
-     * 
-     * @param toFlush
-     */
-    public void clear(Object toFlush) {
-        synchronized(this) {
-            int currentIdx = knownIndices.get(toFlush, -1);
-
-            // If we've never heard of this object, bail out.
-            if (currentIdx == -1) {
-                return;
-            }
-
-            pushClear(currentIdx);
-        }
-        
-    }
-    
-    /**
-     * Sets the size of the table. Called from a background thread.
-     * 
-     * @param newTotal
-     */
-    public void setTotalItems(int newTotal) {
-        synchronized (this) {
-            if (newTotal != knownObjects.length) {
-                if (newTotal < knownObjects.length) {
-                    // Flush any objects that are being removed as a result of the resize
-                    for (int i = newTotal; i < knownObjects.length; i++) {
-                        Object toFlush = knownObjects[i];
-                        
-                        if (toFlush != null) {
-                        	knownIndices.remove(toFlush);
-                        }
-                    }
-                }
-                
-                int minSize = Math.min(knownObjects.length, newTotal);
-                
-	            Object[] newKnownObjects = new Object[newTotal];
-	            System.arraycopy(knownObjects, 0, newKnownObjects, 0, minSize);
-	            knownObjects = newKnownObjects;
-	            	            
-	            scheduleUIUpdate();
-            }
-        }
-    }
-    
-    /**
-     * Pushes an index onto the clear stack
-     * 
-     * @param toClear row to clear
-     */
-    private void pushClear(int toClear) {
-        
-    	// If beyond the end of the table
-    	if (toClear >= sentObjects.length) {
-    		return;
-    	}
-    	
-    	// If already flushed or never sent
-        if (sentObjects[toClear] == null) {
-        	return;            
-        }
-
-        // Mark as flushed
-        sentObjects[toClear] = null;
-    	
-        if (lastClear >= pendingClears.length) {
-            int newCapacity = Math.min(MIN_FLUSHLENGTH, lastClear * 2);
-            int[] newPendingClears = new int[newCapacity];
-            System.arraycopy(pendingClears, 0, newPendingClears, 0, lastClear);
-            pendingClears = newPendingClears;
-        }
-        
-        pendingClears[lastClear++] = toClear;
-    }
-    
-    /**
-     * Sets the item on the given row to the given value. May be called from a background
-     * thread. Schedules a UI update if necessary
-     * 
-     * @param idx row to change
-     * @param value new value for the given row
-     */
-    public void replace(Object value, int idx) {        
-        // Keep the synchronized block as small as possible, since the UI may
-        // be waiting on it.
-        synchronized(this) {
-            Object oldObject = knownObjects[idx];
-            
-            if (oldObject != value) {
-            	if (oldObject != null) {
-            		knownIndices.remove(oldObject);
-            	}
-            	
-                knownObjects[idx] = value;
-                
-            	if (value != null) {
-	        		int oldIndex = knownIndices.get(value, -1);
-	        		if (oldIndex != -1) {
-	        			knownObjects[oldIndex] = null;
-	        			pushClear(oldIndex);
-	        		}
-	        		
-	        		knownIndices.put(value, idx);
-            	}
-                
-                pushClear(idx);
-                
-                scheduleUIUpdate();
-            }
-        } 
-    }
-
-    /**
-     * Schedules a UI update. Has no effect if an update has already been
-     * scheduled.
-     */
-    private void scheduleUIUpdate() {
-        synchronized(this) {
-	        if (!updateScheduled) {
-	            updateScheduled = true;
-	            if(!table.getControl().isDisposed()) {
-					table.getControl().getDisplay().asyncExec(uiRunnable);
-				}
-	        }
-        }
-    }
-    
-    
-    /**
-     * Called in the UI thread by a SetData callback. Refreshes the
-     * table if necessary. Returns true iff a refresh is needed.
-     * @param includeIndex the index that should be included in the visible range.
-     */
-    public void checkVisibleRange(int includeIndex) {
-        int start = Math.min(table.getTopIndex() - 1, includeIndex);
-        int length = Math.max(table.getVisibleItemCount(), includeIndex - start);
-        Range r = lastRange;
-
-    	if (start != r.start || length != r.length) {
-    		updateTable();
-    	}
-    }
-    
-    /**
-     * Updates the table. Sends any unsent items in the visible range to the table,
-     * and clears any previously-visible items that have not yet been sent to the table.
-     * Must be called from the UI thread.
-     */
-    private void updateTable() {    	
-        
-        synchronized(this) {
-
-        	// Resize the table if necessary
-	        if (sentObjects.length != knownObjects.length) {
-	        	Object[] newSentObjects = new Object[knownObjects.length];
-	        	System.arraycopy(newSentObjects, 0, sentObjects, 0, 
-	        			Math.min(newSentObjects.length, sentObjects.length));
-	        	sentObjects = newSentObjects;
-	            table.setItemCount(newSentObjects.length);
-	        }
-
-	        // Compute the currently visible range
-	        int start = Math.min(table.getTopIndex(), knownObjects.length);
-	        int length = Math.min(table.getVisibleItemCount(), knownObjects.length - start);
-	        int itemCount = table.getItemCount();
-            
-        	int oldStart = lastRange.start;
-        	int oldLen = lastRange.length;
-        	
-        	// Store the visible range. Do it BEFORE sending any table.clear calls,
-        	// since clearing a visible row will result in a SetData callback which
-        	// cause another table update if the visible range is different from
-        	// the stored values -- this could cause infinite recursion.
-        	lastRange = new Range(start, length);
-        	
-			// Re-clear any items in the old range that were never filled in
-			for(int idx = 0; idx < oldLen; idx++) {
-				int row = idx + oldStart;
-				
-				// If this item is no longer visible
-				if (row < itemCount && (row < start || row >= start + length)) {
-					
-					// Note: if we wanted to be really aggressive about clearing
-					// items that are no longer visible, we could clear here unconditionally.
-					// The current way of doing things won't clear a row if its contents are
-					// up-to-date.
-					if (sentObjects[row] == null) {
-						table.clear(row);
-					}
-				}
-			}
-			
-			// Process any pending clears
-	        if (lastClear > 0) {
-				for (int i = 0; i < lastClear; i++) {
-					int row = pendingClears[i];
-		
-					if (row < sentObjects.length) {
-						table.clear(row);
-					}
-				}
-	
-				if (pendingClears.length > MIN_FLUSHLENGTH) {
-					pendingClears = new int[MIN_FLUSHLENGTH];
-				}
-				lastClear = 0;
-	        }
-		    
-	        // Send any unsent items in the visible range
-	        for (int idx = 0; idx < length; idx++) {
-	        	int row = idx + start;
-	        	
-	        	Object obj = knownObjects[row];
-	        	if (obj != null && obj != sentObjects[idx]) {
-	        		table.replace(obj, row);
-	        		sentObjects[idx] = obj;
-	        	}
-	        }
-	        
-        }
-    }
-
-	/**
-	 * Return the array of all known objects that have been sent here from the background
-     * thread.
-	 * @return the array of all known objects
-	 */
-	public Object[] getKnownObjects() {
-		return knownObjects;
-	}
-    
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/DeferredContentProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/DeferredContentProvider.java
deleted file mode 100644
index c2fa302..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/DeferredContentProvider.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers.deferred;
-
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.AcceptAllFilter;
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ILazyContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * Content provider that performs sorting and filtering in a background thread.
- * Requires a <code>TableViewer</code> created with the <code>SWT.VIRTUAL</code>
- * flag and an <code>IConcurrentModel</code> as input.
- * <p>
- * The sorter and filter must be set directly on the content provider.
- * Any sorter or filter on the TableViewer will be ignored. 
- * </p>
- *  
- * <p>
- * The real implementation is in <code>BackgroundContentProvider</code>. This 
- * object is a lightweight wrapper that adapts the algorithm to work with 
- * <code>TableViewer</code>.
- * </p>
- * 
- * @since 3.1
- */
-public class DeferredContentProvider implements ILazyContentProvider {
-
-	private int limit = -1;
-	private BackgroundContentProvider provider;
-	private Comparator sortOrder;
-	private IFilter filter = AcceptAllFilter.getInstance();
-	private AbstractVirtualTable table;
-	
-	private static final class TableViewerAdapter extends AbstractVirtualTable {
-		
-		private TableViewer viewer;
-		
-		/**
-		 * @param viewer
-		 */
-		public TableViewerAdapter(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.AbstractVirtualTable#flushCache(java.lang.Object)
-		 */
-		public void clear(int index) {
-			viewer.clear(index);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.AbstractVirtualTable#replace(java.lang.Object, int)
-		 */
-		public void replace(Object element, int itemIndex) {
-			viewer.replace(element, itemIndex);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.AbstractVirtualTable#setItemCount(int)
-		 */
-		public void setItemCount(int total) {
-			viewer.setItemCount(total);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.AbstractVirtualTable#getItemCount()
-		 */
-		public int getItemCount() {
-			return viewer.getTable().getItemCount();
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.AbstractVirtualTable#getTopIndex()
-		 */
-		public int getTopIndex() {
-			return Math.max(viewer.getTable().getTopIndex() - 1, 0);
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.AbstractVirtualTable#getVisibleItemCount()
-		 */
-		public int getVisibleItemCount() {
-			Table table = viewer.getTable();
-			Rectangle rect = table.getClientArea ();
-			int itemHeight = table.getItemHeight ();
-			int headerHeight = table.getHeaderHeight ();
-			return (rect.height - headerHeight + itemHeight - 1) / (itemHeight + table.getGridLineWidth());
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.deferred.AbstractVirtualTable#getControl()
-		 */
-		public Control getControl() {
-			return viewer.getControl();
-		}
-		
-	}
-
-	/**
-	 * Create a DeferredContentProvider with the given sort order.
-	 * @param sortOrder a comparator that sorts the content.
-	 */
-	public DeferredContentProvider(Comparator sortOrder) {
-		this.sortOrder = sortOrder;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		setProvider(null);
-	}
-
-	/* (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) {
-		if (newInput == null) {
-			setProvider(null);
-			return;
-		}
-		
-		Assert.isTrue(newInput instanceof IConcurrentModel);
-		Assert.isTrue(viewer instanceof TableViewer);
-		IConcurrentModel model = (IConcurrentModel)newInput;
-		
-		this.table = new TableViewerAdapter((TableViewer)viewer);
-		
-		BackgroundContentProvider newProvider = new BackgroundContentProvider(
-				table,
-				model, sortOrder); 
-		
-		setProvider(newProvider);
-		
-		newProvider.setLimit(limit);
-		newProvider.setFilter(filter);
-	}
-	
-	/**
-	 * Sets the sort order for this content provider. This sort order takes priority
-	 * over anything that was supplied to the <code>TableViewer</code>.
-	 * 
-	 * @param sortOrder new sort order. The comparator must be able to support being
-	 * used in a background thread.
-	 */
-	public void setSortOrder(Comparator sortOrder) {
-		Assert.isNotNull(sortOrder);
-		this.sortOrder = sortOrder;
-		if (provider != null) {
-			provider.setSortOrder(sortOrder);
-		}
-	}
-	
-	/**
-	 * Sets the filter for this content provider. This filter takes priority over
-	 * anything that was supplied to the <code>TableViewer</code>. The filter
-	 * must be capable of being used in a background thread.
-	 * 
-	 * @param toSet filter to set
-	 */
-	public void setFilter(IFilter toSet) {
-		this.filter = toSet;
-		if (provider != null) {
-			provider.setFilter(toSet);
-		}
-	}
-	
-	/**
-	 * Sets the maximum number of rows in the table. If the model contains more
-	 * than this number of elements, only the top elements will be shown based on
-	 * the current sort order. 
-	 * 
-	 * @param limit maximum number of rows to show or -1 if unbounded
-	 */
-	public void setLimit(int limit) {
-		this.limit = limit;
-		if (provider != null) {
-			provider.setLimit(limit);
-		}
-	}
-	
-	/**
-	 * Returns the current maximum number of rows or -1 if unbounded
-	 * 
-	 * @return the current maximum number of rows or -1 if unbounded
-	 */
-	public int getLimit() {
-		return limit;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILazyContentProvider#updateElement(int)
-	 */
-	public void updateElement(int element) {
-		if (provider != null) {
-			provider.checkVisibleRange(element);
-		}
-	}
-	
-	private void setProvider(BackgroundContentProvider newProvider) {
-		if (provider != null) {
-			provider.dispose();
-		}
-		
-		provider = newProvider;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/FastProgressReporter.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/FastProgressReporter.java
deleted file mode 100644
index 35a360b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/FastProgressReporter.java
+++ /dev/null
@@ -1,146 +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.jface.viewers.deferred;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * A more efficient alternative to an IProgressMonitor. In particular, the implementation
- * is designed to make isCanceled() run as efficiently as possible. Currently package-visible
- * because the implementation is incomplete.
- * 
- * @since 3.1
- */
-final class FastProgressReporter {
-    private IProgressMonitor monitor;
-    private volatile boolean canceled = false;
-    private int cancelCheck = 0;
-//    private String taskName;
-//    
-//    private int taskDepth = 0;
-//    private int subTaskSize = 1;
-//    private int totalWork = 1;
-//    private int parentWork = 1;
-//    private int monitorUnitsRemaining;
-    
-    private static int CANCEL_CHECK_PERIOD = 40;
-    
-    /**
-     * Constructs a null FastProgressReporter
-     */
-    public FastProgressReporter() {
-    }
-    
-    /**
-     * Constructs a FastProgressReporter that wraps the given progress monitor
-     * 
-     * @param monitor the monitor to wrap
-     * @param totalProgress the total progress to be reported
-     */
-    public FastProgressReporter(IProgressMonitor monitor, int totalProgress) {
-        this.monitor = monitor;
-        //monitorUnitsRemaining = totalProgress;
-        canceled = monitor.isCanceled();
-    }
-    
-//    /**
-//     * Every call to beginTask must have a corresponding call to endTask, with the
-//     * same argument.
-//     * 
-//     * @param totalWork
-//     * @since 3.1
-//     */
-//    public void beginTask(int totalWork) {
-//        
-//        if (monitor == null) {
-//            return;
-//        }
-//        
-//        taskDepth++;
-//
-//        if (totalWork == 0) {
-//            return;
-//        }
-//        
-//        this.totalWork *= totalWork;
-//    }
-//    
-//    public void beginSubTask(int subTaskWork) {
-//        subTaskSize *= subTaskWork;
-//    }
-//    
-//    public void endSubTask(int subTaskWork) {
-//        subTaskSize /= subTaskWork;
-//    }
-//    
-//    public void worked(int amount) {
-//        amount *= subTaskSize;
-//        
-//        if (amount > totalWork) {
-//            amount = totalWork;
-//        }
-//        
-//        int consumed = monitorUnitsRemaining * amount / totalWork;
-//        
-//        if (consumed > 0) {
-//            monitor.worked(consumed);
-//            monitorUnitsRemaining -= consumed;
-//        }
-//        totalWork -= amount;
-//    }
-//    
-//    public void endTask(int totalWork) {        
-//        taskDepth--;
-//        
-//        if (taskDepth == 0) {
-//            if (monitor != null && monitorUnitsRemaining > 0) {
-//                monitor.worked(monitorUnitsRemaining);
-//            }
-//        }
-//        
-//        if (totalWork == 0) {
-//            return;
-//        }
-//        
-//        this.totalWork /= totalWork;
-//
-//    }
-    
-    /**
-     * Return whether the progress monitor has been canceled.
-     * 
-     * @return <code>true</code> if the monitor has been cancelled, <code>false</code> otherwise.
-     */
-    public boolean isCanceled() {
-        if (monitor == null) {
-            return canceled;
-        }
-        
-        cancelCheck++;
-        if (cancelCheck > CANCEL_CHECK_PERIOD) {
-            canceled = monitor.isCanceled();
-            cancelCheck = 0;
-        }
-        return canceled;
-    }
-    
-    /**
-     * Cancel the progress monitor.
-     */
-    public void cancel() {        
-        canceled = true;
-        
-        if (monitor == null) {
-            return;
-        }
-        monitor.setCanceled(true);
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModel.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModel.java
deleted file mode 100644
index 75326f5..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModel.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.viewers.deferred;
-
-
-/**
- * Interface for a set of unordered elements that can fire change notifications.
- * IConcurrentModel returns its contents asynchronous. Rather than implementing 
- * "get" methods, listeners can request an update and the model fires back
- * information at its earliest convenience.
- * 
- * <p>
- * The model is allowed to send back notifications to its listeners in any thread,
- * and the listeners must not assume that the notifications will arrive in the UI
- * thread.
- * </p>
- * 
- * <p>
- * Not intended to be implemented by clients. Clients should subclass 
- * <code>AbstractConcurrentModel</code> instead.
- * </p>
- * 
- * @since 3.1
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IConcurrentModel {
-
-    /**
-     * Requests that the receiver to call the given listener's setContents(...) 
-     * method at its earliest convenience. The receiver is allowed to compute the 
-     * elements asynchronously. That is, it can compute the result in a background 
-     * thread and call setContents(...) once the result is ready. If the result is
-     * too large to return in one batch, it can call setContents with an empty array
-     * followed by a sequence of adds.
-     * <p>
-     * Has no effect if an update is already queued for an identical listener.
-     * </p>
-     * 
-     * @param listener listener whose setContents method should be called. The
-     * listener must have been previously registered with addListener.
-     */
-    public void requestUpdate(IConcurrentModelListener listener);
-    
-    /**
-     * Adds a listener to this model. The listener should be given the model's
-     * current contents (either through setContents or a sequence of adds) at the
-     * receiver's earliest convenience. The receiver will notify the listener
-     * about any changes in state until the listener is removed.
-     * 
-     * <p>
-     * Has no effect if an identical listener is already registered.
-     * </p>
-     * 
-     * @param listener listener to add
-     */
-    public void addListener(IConcurrentModelListener listener);
-    
-    /**
-     * Removes a listener from this model. The receiver will stop sending
-     * notifications to the given listener as soon as possible (although
-     * some additional notifications may still if arrive if the receiver
-     * was in the process of sending notifications in another thread).
-     * Any pending updates for this listener will be cancelled.
-     * <p>
-     * Has no effect if the given listener is not known to this model.
-     * </p>
-     * 
-     * @param listener listener to remove
-     */
-    public void removeListener(IConcurrentModelListener listener);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModelListener.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModelListener.java
deleted file mode 100644
index be9075a..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IConcurrentModelListener.java
+++ /dev/null
@@ -1,52 +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.jface.viewers.deferred;
-
-/**
- * Interface for objects that can listen to changes in an IConcurrentModel.
- * Elements in an IConcurrentModel are unordered.
- * 
- * @since 3.1
- */
-public interface IConcurrentModelListener {
-	
-	/**
-	 * Called when elements are added to the model 
-	 * 
-	 * @param added elements added to the model
-	 */
-    public void add(Object[] added);
-    
-    /**
-     * Called when elements are removed from the model
-     * 
-     * @param removed elements removed from the model
-     */
-    public void remove(Object[] removed);
-    
-    /**
-     * Called when elements in the model have changed
-     * 
-     * @param changed elements that have changed
-     */
-    public void update(Object[] changed);
-    
-    /**
-     * Notifies the receiver about the complete set
-     * of elements in the model. Most models will
-     * not call this method unless the listener explicitly
-     * requests it by calling 
-     * <code>IConcurrentModel.requestUpdate</code>
-     *  
-     * @param newContents contents of the model
-     */
-    public void setContents(Object[] newContents);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IntHashMap.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IntHashMap.java
deleted file mode 100644
index 6b6dd86..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/IntHashMap.java
+++ /dev/null
@@ -1,93 +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.jface.viewers.deferred;
-
-import java.util.HashMap;
-
-/**
- * Represents a map of objects onto ints. This is intended for future optimization:
- * using int primitives would allow for an implementation that doesn't require
- * additional object allocations for Integers. However, the current implementation
- * simply delegates to the Java HashMap class. 
- * 
- * @since 3.1
- */
-/* package */ class IntHashMap {
-    private HashMap map; 
-    
-    /**
-     * @param size
-     * @param loadFactor
-     */
-    public IntHashMap(int size, float loadFactor) {
-        map = new HashMap(size, loadFactor);
-    }
-    
-    /**
-     * 
-     */
-    public IntHashMap() {
-        map = new HashMap();
-    }
-    
-    /**
-     * @param key
-     */
-    public void remove(Object key) {
-        map.remove(key);
-    }
-    
-    /**
-     * @param key
-     * @param value
-     */
-    public void put(Object key, int value) {
-        map.put(key, new Integer(value));
-    }
-    
-    /**
-     * @param key
-     * @return the int value at the given key 
-     */
-    public int get(Object key) {
-        return get(key, 0);
-    }
-    
-    /**
-     * @param key
-     * @param defaultValue
-     * @return the int value at the given key, or the default value if this map does not contain the given key
-     */
-    public int get(Object key, int defaultValue) {
-        Integer result = (Integer)map.get(key);
-        
-        if (result != null) {
-            return result.intValue();
-        }
-        
-        return defaultValue;
-    }
-    
-    /**
-     * @param key
-     * @return <code>true</code> if this map contains the given key, <code>false</code> otherwise
-     */
-    public boolean containsKey(Object key) {
-        return map.containsKey(key);
-    }
-    
-    /**
-     * @return the number of key/value pairs
-     */
-    public int size() {
-    	return map.size();
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/LazySortedCollection.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/LazySortedCollection.java
deleted file mode 100644
index 2384f20..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/LazySortedCollection.java
+++ /dev/null
@@ -1,1432 +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.jface.viewers.deferred;
-
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * This object maintains a collection of elements, sorted by a comparator
- * given in the constructor. The collection is lazily sorted, allowing 
- * more efficient runtimes for most methods. There are several methods on this
- * object that allow objects to be queried by their position in the sorted
- * collection.
- * 
- * <p>
- * This is a modified binary search tree. Each subtree has a value, a left and right subtree, 
- * a count of the number of children, and a set of unsorted children. 
- * Insertion happens lazily. When a new node N is inserted into a subtree T, it is initially 
- * added to the set of unsorted children for T without actually comparing it with the value for T. 
- * </p>
- * <p>
- * The unsorted children will remain in the unsorted set until some subsequent operation requires
- * us to know the exact set of elements in one of the subtrees. At that time, we partition
- * T by comparing all of its unsorted children with T's value and moving them into the left 
- * or right subtrees.
- * </p>
- * 
- * @since 3.1
- */
-public class LazySortedCollection {
-    private final int MIN_CAPACITY = 8;
-    private Object[] contents = new Object[MIN_CAPACITY];
-    private int[] leftSubTree = new int[MIN_CAPACITY];
-    private int[] rightSubTree = new int[MIN_CAPACITY];
-    private int[] nextUnsorted = new int[MIN_CAPACITY];
-    private int[] treeSize = new int[MIN_CAPACITY];
-    private int[] parentTree = new int[MIN_CAPACITY];
-    private int root = -1;
-    private int lastNode = 0;
-    private int firstUnusedNode = -1;
-    
-    private static final float loadFactor = 0.75f;
-    
-    private IntHashMap objectIndices;
-    private Comparator comparator;
-    private static int counter = 0;
-    
-    /**
-     * Disables randomization and enables additional runtime error checking.
-     * Severely degrades performance if set to true. Intended for use in test 
-     * suites only.
-     */
-    public boolean enableDebug = false;
-    
-    // This object is inserted as the value into any node scheduled for lazy removal
-    private Object lazyRemovalFlag = new Object() {
-        public String toString() {
-            return "Lazy removal flag";  //$NON-NLS-1$
-        }
-    };
-    
-    private final static int DIR_LEFT = 0;
-    private final static int DIR_RIGHT = 1;
-    private final static int DIR_UNSORTED = 2;
-    
-    // Direction constants indicating root nodes
-    private final static int DIR_ROOT = 3;
-    private final static int DIR_UNUSED = 4;
-       
-    private final class Edge {
-        private int startNode;
-        private int direction;
-        
-        private Edge() {
-            startNode = -1;
-            direction = -1;
-        }
-        
-        private Edge(int node, int dir) {
-            startNode = node;
-            direction = dir;
-        }
-        
-        private int getStart() {
-            return startNode;
-        }
-        
-        private int getTarget() {
-            if (startNode == -1) {
-                if (direction == DIR_UNSORTED) {
-                    return firstUnusedNode;
-                } else if (direction == DIR_ROOT) {
-                    return root;
-                }
-                return -1;
-            }
-            
-            if (direction == DIR_LEFT) {
-                return leftSubTree[startNode];
-            }
-            if (direction == DIR_RIGHT) {
-                return rightSubTree[startNode];
-            }
-            return nextUnsorted[startNode];
-        }
-        
-        private boolean isNull() {
-            return getTarget() == -1;
-        }
-     
-        /**
-         * Redirects this edge to a new node
-         * @param newNode
-         * @since 3.1
-         */
-        private void setTarget(int newNode) {            
-            if (direction == DIR_LEFT) {
-    	        leftSubTree[startNode] = newNode;
-            } else if (direction == DIR_RIGHT) {
-                rightSubTree[startNode] = newNode;
-            } else if (direction == DIR_UNSORTED) {
-                nextUnsorted[startNode] = newNode;
-            } else if (direction == DIR_ROOT) {
-                root = newNode;
-            } else if (direction == DIR_UNUSED) {
-                firstUnusedNode = newNode;
-            }
-            
-	        if (newNode != -1) {
-	            parentTree[newNode] = startNode;
-	        }
-        }
-        
-        private void advance(int direction) {
-            startNode = getTarget();
-            this.direction = direction;
-        }
-    }
-
-    private void setRootNode(int node) {
-        root = node;
-        if (node != -1) {
-            parentTree[node] = -1;
-        }
-    }
-    
-    /**
-     * Creates a new sorted collection using the given comparator to determine
-     * sort order.
-     * 
-     * @param c comparator that determines the sort order
-     */
-    public LazySortedCollection(Comparator c) {
-        this.comparator = c;
-    }
-    
-    /**
-     * Tests if this object's internal state is valid. Throws a runtime
-     * exception if the state is invalid, indicating a programming error
-     * in this class. This method is intended for use in test
-     * suites and should not be called by clients.
-     */
-    public void testInvariants() {
-        if (!enableDebug) {
-            return;
-        }
-        
-        testInvariants(root);
-    }
-    
-    private void testInvariants(int node) {
-        if (node == -1) {
-            return;
-        }
-        
-        // Get the current tree size (we will later force the tree size
-        // to be recomputed from scratch -- if everything works properly, then
-        // there should be no change.
-        int treeSize = getSubtreeSize(node);
-
-        int left = leftSubTree[node];
-        int right = rightSubTree[node];
-        int unsorted = nextUnsorted[node];
-        
-        if (isUnsorted(node)) {
-            Assert.isTrue(left == -1, "unsorted nodes shouldn't have a left subtree"); //$NON-NLS-1$
-            Assert.isTrue(right == -1, "unsorted nodes shouldn't have a right subtree"); //$NON-NLS-1$
-        }
-        
-        if (left != -1) {
-            testInvariants(left);
-            Assert.isTrue(parentTree[left] == node, "left node has invalid parent pointer"); //$NON-NLS-1$
-        }
-        if (right != -1) {
-            testInvariants(right);
-            Assert.isTrue(parentTree[right] == node, "right node has invalid parent pointer");             //$NON-NLS-1$
-        }
-
-        int previous = node;
-        while (unsorted != -1) {
-            int oldTreeSize = this.treeSize[unsorted];
-            recomputeTreeSize(unsorted);
-            
-            Assert.isTrue(this.treeSize[unsorted] == oldTreeSize, 
-                    "Invalid node size for unsorted node"); //$NON-NLS-1$
-            Assert.isTrue(leftSubTree[unsorted] == -1, "unsorted nodes shouldn't have left subtrees"); //$NON-NLS-1$
-            Assert.isTrue(rightSubTree[unsorted] == -1, "unsorted nodes shouldn't have right subtrees"); //$NON-NLS-1$
-            Assert.isTrue(parentTree[unsorted] == previous, "unsorted node has invalid parent pointer"); //$NON-NLS-1$
-            Assert.isTrue(contents[unsorted] != lazyRemovalFlag, "unsorted nodes should not be lazily removed"); //$NON-NLS-1$
-            previous = unsorted;
-            unsorted = nextUnsorted[unsorted];
-        }
-        
-        // Note that we've already tested that the child sizes are correct... if our size is
-        // correct, then recomputing it now should not cause any change.
-        recomputeTreeSize(node);
-                
-        Assert.isTrue(treeSize == getSubtreeSize(node), "invalid tree size"); //$NON-NLS-1$
-    }
-    
-    private boolean isUnsorted(int node) {
-        int parent = parentTree[node];
-        
-        if (parent != -1) {
-            return nextUnsorted[parent] == node;
-        }
-        
-        return false;
-    }
-    
-    private final boolean isLess(int element1, int element2) {
-        return comparator.compare(contents[element1], contents[element2]) < 0;
-    }
-    
-    /**
-     * Adds the given element to the given subtree. Returns the new
-     * root of the subtree.
-     * 
-     * @param subTree index of the subtree to insert elementToAdd into. If -1, 
-     *                then a new subtree will be created for elementToAdd
-     * @param elementToAdd index of the element to add to the subtree. If -1, this method
-     *                 is a NOP.
-     * @since 3.1
-     */
-    private final int addUnsorted(int subTree, int elementToAdd) {
-        if (elementToAdd == -1) {
-            return subTree;
-        }
-        
-        if (subTree == -1) {
-            nextUnsorted[elementToAdd] = -1;
-            treeSize[elementToAdd] = 1;
-            return elementToAdd;
-        }
-        
-        // If the subTree is empty (ie: it only contains nodes flagged for lazy removal),
-        // chop it off.
-        if (treeSize[subTree] == 0) {
-            removeSubTree(subTree);
-            nextUnsorted[elementToAdd] = -1;
-            treeSize[elementToAdd] = 1;
-            return elementToAdd;
-        }
-        
-        // If neither subtree has any children, add a pseudorandom chance of the
-        // newly added element becoming the new pivot for this node. Note: instead
-        // of a real pseudorandom generator, we simply use a counter here.
-        if (!enableDebug && leftSubTree[subTree] == -1 && rightSubTree[subTree] == -1 
-                && leftSubTree[elementToAdd] == -1 && rightSubTree[elementToAdd] == -1) {
-	        counter--;
-	        
-	        if (counter % treeSize[subTree] == 0) {
-	            // Make the new node into the new pivot 
-	            nextUnsorted[elementToAdd] = subTree;
-	            parentTree[elementToAdd] = parentTree[subTree];
-	            parentTree[subTree] = elementToAdd;
-	            treeSize[elementToAdd] = treeSize[subTree] + 1;
-	            return elementToAdd;
-	        }
-        }
-        
-        int oldNextUnsorted = nextUnsorted[subTree];
-        nextUnsorted[elementToAdd] = oldNextUnsorted;
-        
-        if (oldNextUnsorted == -1) {
-            treeSize[elementToAdd] = 1;
-        } else {
-            treeSize[elementToAdd] = treeSize[oldNextUnsorted] + 1;
-            parentTree[oldNextUnsorted] = elementToAdd;
-        }
-        
-        parentTree[elementToAdd] = subTree;
-        
-        nextUnsorted[subTree] = elementToAdd;
-        treeSize[subTree]++;        
-        return subTree;
-    }
-    
-    /**
-     * Returns the number of elements in the collection
-     * 
-     * @return the number of elements in the collection
-     */
-    public int size() {
-        int result = getSubtreeSize(root);
-        
-        testInvariants();
-        
-        return result;
-    }
-    
-    /**
-     * Given a tree and one of its unsorted children, this sorts the child by moving
-     * it into the left or right subtrees. Returns the next unsorted child or -1 if none
-     * 
-     * @param subTree parent tree
-     * @param toMove child (unsorted) subtree
-     * @since 3.1
-     */
-    private final int partition(int subTree, int toMove) {
-        int result = nextUnsorted[toMove];
-        
-        if (isLess(toMove, subTree)) {
-            int nextLeft = addUnsorted(leftSubTree[subTree], toMove);
-            leftSubTree[subTree] = nextLeft;
-            parentTree[nextLeft] = subTree;
-        } else {
-            int nextRight = addUnsorted(rightSubTree[subTree], toMove);
-            rightSubTree[subTree] = nextRight;
-            parentTree[nextRight] = subTree;
-        }
-        
-        return result;
-    }
-    
-    /**
-     * Partitions the given subtree. Moves all unsorted elements at the given node
-     * to either the left or right subtrees. If the node itself was scheduled for
-     * lazy removal, this will force the node to be removed immediately. Returns
-     * the new subTree.
-     * 
-     * @param subTree
-     * @return the replacement node (this may be different from subTree if the subtree
-     * was replaced during the removal)
-     * @since 3.1
-     */
-    private final int partition(int subTree, FastProgressReporter mon) throws InterruptedException {
-        if (subTree == -1) {
-            return -1;
-        }
-        
-        if (contents[subTree] == lazyRemovalFlag) {
-            subTree = removeNode(subTree);
-            if (subTree == -1) {
-                return -1;
-            }
-        }
-        
-        for (int idx = nextUnsorted[subTree]; idx != -1;) { 
-            idx = partition(subTree, idx);
-            nextUnsorted[subTree] = idx;
-            if (idx != -1) {
-                parentTree[idx] = subTree;
-            }
-            
-            if (mon.isCanceled()) {
-                throw new InterruptedException();
-            }
-        }
-        
-        // At this point, there are no remaining unsorted nodes in this subtree
-        nextUnsorted[subTree] = -1;
-        
-        return subTree;
-    }
-    
-    private final int getSubtreeSize(int subTree) {
-        if (subTree == -1) {
-            return 0;
-        }
-        return treeSize[subTree];
-    }
-    
-    /**
-     * Increases the capacity of this collection, if necessary, so that it can hold the 
-     * given number of elements. This can be used prior to a sequence of additions to
-     * avoid memory reallocation. This cannot be used to reduce the amount 
-     * of memory used by the collection.
-     *
-     * @param newSize capacity for this collection
-     */
-    public final void setCapacity(int newSize) {
-        if (newSize > contents.length) {
-            setArraySize(newSize);
-        }
-    }
-    
-    /**
-     * Adjusts the capacity of the array.
-     * 
-     * @param newCapacity
-     */
-    private final void setArraySize(int newCapacity) {
-        Object[] newContents = new Object[newCapacity];
-        System.arraycopy(contents, 0, newContents, 0, lastNode);
-        contents = newContents;
-        
-        int[] newLeftSubTree = new int[newCapacity];
-        System.arraycopy(leftSubTree, 0, newLeftSubTree, 0, lastNode);
-        leftSubTree = newLeftSubTree;
-        
-        int[] newRightSubTree = new int[newCapacity];
-        System.arraycopy(rightSubTree, 0, newRightSubTree, 0, lastNode);
-        rightSubTree = newRightSubTree;
-        
-        int[] newNextUnsorted = new int[newCapacity];
-        System.arraycopy(nextUnsorted, 0, newNextUnsorted, 0, lastNode);
-        nextUnsorted = newNextUnsorted;
-        
-        int[] newTreeSize = new int[newCapacity];
-        System.arraycopy(treeSize, 0, newTreeSize, 0, lastNode);
-        treeSize = newTreeSize;
-        
-        int[] newParentTree = new int[newCapacity];
-        System.arraycopy(parentTree, 0, newParentTree, 0, lastNode);
-        parentTree = newParentTree;
-    }
-    
-    /**
-     * Creates a new node with the given value. Returns the index of the newly
-     * created node.
-     * 
-     * @param value
-     * @return the index of the newly created node
-     * @since 3.1
-     */
-    private final int createNode(Object value) {
-        int result = -1;
-
-        if (firstUnusedNode == -1) {
-            // If there are no unused nodes from prior removals, then 
-            // we add a node at the end
-            result = lastNode;
-            
-            // If this would cause the array to overflow, reallocate the array 
-            if (contents.length <= lastNode) {
-                setCapacity(lastNode * 2);
-            }
-            
-            lastNode++;
-        } else {
-            // Reuse a node from a prior removal
-            result = firstUnusedNode;
-            firstUnusedNode = nextUnsorted[result];
-        }
-        
-        contents[result] = value;
-        treeSize[result] = 1;
-        
-        // Clear pointers
-        leftSubTree[result] = -1;
-        rightSubTree[result] = -1;
-        nextUnsorted[result] = -1;
-        
-        // As long as we have a hash table of values onto tree indices, incrementally
-        // update the hash table. Note: the table is only constructed as needed, and it
-        // is destroyed whenever the arrays are reallocated instead of reallocating it.
-        if (objectIndices != null) {
-            objectIndices.put(value, result);
-        }
-        
-        return result;
-    }
-    
-    /**
-     * Returns the current tree index for the given object.
-     * 
-     * @param value
-     * @return the current tree index
-     * @since 3.1
-     */
-    private int getObjectIndex(Object value) {
-        // If we don't have a map of values onto tree indices, build the map now.
-        if (objectIndices == null) {
-            int result = -1;
-            
-            objectIndices = new IntHashMap((int)(contents.length / loadFactor) + 1, loadFactor);
-            
-            for (int i = 0; i < lastNode; i++) {
-                Object element = contents[i];
-                
-                if (element != null && element != lazyRemovalFlag) {
-                    objectIndices.put(element, i);
-                    
-                    if (value == element) {
-                        result = i;
-                    }
-                }
-            }
-            
-            return result;
-        }
-        
-        // If we have a map of values onto tree indices, return the result by looking it up in
-        // the map
-        return objectIndices.get(value, -1);
-    }
-    
-    /**
-     * Redirects any pointers from the original to the replacement. If the replacement
-     * causes a change in the number of elements in the parent tree, the changes are
-     * propogated toward the root.
-     * 
-     * @param nodeToReplace
-     * @param replacementNode
-     * @since 3.1
-     */
-    private void replaceNode(int nodeToReplace, int replacementNode) {
-        int parent = parentTree[nodeToReplace];
-        
-        if (parent == -1) {
-            if (root == nodeToReplace) {
-                setRootNode(replacementNode);
-            }
-        } else {
-            if (leftSubTree[parent] == nodeToReplace) {
-                leftSubTree[parent] = replacementNode;
-            } else if (rightSubTree[parent] == nodeToReplace) {
-                rightSubTree[parent] = replacementNode;
-            } else if (nextUnsorted[parent] == nodeToReplace) {
-                nextUnsorted[parent] = replacementNode;
-            }
-            if (replacementNode != -1) {
-                parentTree[replacementNode] = parent;
-            }
-        }
-    }
-    
-    private void recomputeAncestorTreeSizes(int node) {
-        while (node != -1) {
-            int oldSize = treeSize[node];
-            
-            recomputeTreeSize(node);
-            
-            if (treeSize[node] == oldSize) {
-                break;
-            }
-            
-            node = parentTree[node];
-        }        
-    }
-    
-    /**
-     * Recomputes the tree size for the given node.
-     * 
-     * @param node
-     * @since 3.1
-     */
-    private void recomputeTreeSize(int node) {
-        if (node == -1) {
-            return;
-        }
-        treeSize[node] = getSubtreeSize(leftSubTree[node])
-    		+ getSubtreeSize(rightSubTree[node])
-    		+ getSubtreeSize(nextUnsorted[node])
-    		+ (contents[node] == lazyRemovalFlag ? 0 : 1); 
-    }
-    
-    /**
-     * 
-     * @param toRecompute
-     * @param whereToStop
-     * @since 3.1
-     */
-    private void forceRecomputeTreeSize(int toRecompute, int whereToStop) {
-        while (toRecompute != -1 && toRecompute != whereToStop) {
-	        recomputeTreeSize(toRecompute);
-	        
-	        toRecompute = parentTree[toRecompute];
-        }
-    }
-    
-    /**
-     * Destroy the node at the given index in the tree
-     * @param nodeToDestroy
-     * @since 3.1
-     */
-    private void destroyNode(int nodeToDestroy) {
-        // If we're maintaining a map of values onto tree indices, remove this entry from
-        // the map
-        if (objectIndices != null) {
-            Object oldContents = contents[nodeToDestroy];
-            if (oldContents != lazyRemovalFlag) {
-                objectIndices.remove(oldContents);
-            }
-        }
-        
-        contents[nodeToDestroy] = null;
-        leftSubTree[nodeToDestroy] = -1;
-        rightSubTree[nodeToDestroy] = -1;
-        
-        if (firstUnusedNode == -1) {
-            treeSize[nodeToDestroy] = 1;
-        } else {
-            treeSize[nodeToDestroy] = treeSize[firstUnusedNode] + 1;
-            parentTree[firstUnusedNode] = nodeToDestroy;
-        }
-        
-        nextUnsorted[nodeToDestroy] = firstUnusedNode;
-        
-        firstUnusedNode = nodeToDestroy; 
-    }
-    
-    /**
-     * Frees up memory by clearing the list of nodes that have been freed up through removals.
-     * 
-     * @since 3.1
-     */
-    private final void pack() {
-        
-        // If there are no unused nodes, then there is nothing to do
-        if (firstUnusedNode == -1) {
-            return;
-        }
-        
-        int reusableNodes = getSubtreeSize(firstUnusedNode);
-        int nonPackableNodes = lastNode - reusableNodes;
-        
-        // Only pack the array if we're utilizing less than 1/4 of the array (note:
-        // this check is important, or it will change the time bounds for removals)
-        if (contents.length < MIN_CAPACITY || nonPackableNodes > contents.length / 4) {
-            return;
-        }
-        
-        // Rather than update the entire map, just null it out. If it is needed,
-        // it will be recreated lazily later. This will save some memory if the
-        // map isn't needed, and it takes a similar amount of time to recreate the
-        // map as to update all the indices.
-        objectIndices = null;
-        
-        // Maps old index -> new index
-        int[] mapNewIdxOntoOld = new int[contents.length];
-        int[] mapOldIdxOntoNew = new int[contents.length];
-        
-        int nextNewIdx = 0;
-        // Compute the mapping. Determine the new index for each element 
-        for (int oldIdx = 0; oldIdx < lastNode; oldIdx++) {
-            if (contents[oldIdx] != null) {
-                mapOldIdxOntoNew[oldIdx] = nextNewIdx;
-                mapNewIdxOntoOld[nextNewIdx] = oldIdx;
-                nextNewIdx++;
-            } else {
-                mapOldIdxOntoNew[oldIdx] = -1;
-            }
-        }
-        
-        // Make the actual array size double the number of nodes to allow
-        // for expansion.
-        int newNodes = nextNewIdx;
-        int newCapacity = Math.max(newNodes * 2, MIN_CAPACITY);
-        
-        // Allocate new arrays
-        Object[] newContents = new Object[newCapacity];
-        int[] newTreeSize = new int[newCapacity];
-        int[] newNextUnsorted = new int[newCapacity];
-        int[] newLeftSubTree = new int[newCapacity];
-        int[] newRightSubTree = new int[newCapacity];
-        int[] newParentTree = new int[newCapacity];
-        
-        for (int newIdx = 0; newIdx < newNodes; newIdx++) {
-            int oldIdx = mapNewIdxOntoOld[newIdx];
-            newContents[newIdx] = contents[oldIdx];
-            newTreeSize[newIdx] = treeSize[oldIdx];
-            
-            int left = leftSubTree[oldIdx];
-            if (left == -1) {
-                newLeftSubTree[newIdx] = -1;
-            } else {
-                newLeftSubTree[newIdx] = mapOldIdxOntoNew[left];
-            }
-            
-            int right = rightSubTree[oldIdx];
-            if (right == -1) {
-                newRightSubTree[newIdx] = -1;                
-            } else {
-                newRightSubTree[newIdx] = mapOldIdxOntoNew[right];
-            }
-
-            int unsorted = nextUnsorted[oldIdx];
-            if (unsorted == -1) {
-                newNextUnsorted[newIdx] = -1;
-            } else {
-                newNextUnsorted[newIdx] = mapOldIdxOntoNew[unsorted];
-            }
-            
-            int parent = parentTree[oldIdx];
-            if (parent == -1) {
-                newParentTree[newIdx] = -1;
-            } else {
-                newParentTree[newIdx] = mapOldIdxOntoNew[parent];
-            }
-        }
-        
-        contents = newContents;
-        nextUnsorted = newNextUnsorted;
-        treeSize = newTreeSize;
-        leftSubTree = newLeftSubTree;
-        rightSubTree = newRightSubTree;
-        parentTree = newParentTree;
-        
-        if (root != -1) {
-            root = mapOldIdxOntoNew[root];
-        }
-        
-        // All unused nodes have been removed
-        firstUnusedNode = -1;
-        lastNode = newNodes;
-    }
-    
-    /**
-     * Adds the given object to the collection. Runs in O(1) amortized time.
-     * 
-     * @param toAdd object to add
-     */
-    public final void add(Object toAdd) {
-    	Assert.isNotNull(toAdd);
-        // Create the new node
-        int newIdx = createNode(toAdd);
-        
-        // Insert the new node into the root tree
-        setRootNode(addUnsorted(root, newIdx));
-        
-        testInvariants();
-    }
-    
-    /**
-     * Adds all items from the given collection to this collection 
-     * 
-     * @param toAdd objects to add
-     */
-    public final void addAll(Collection toAdd) {
-    	Assert.isNotNull(toAdd);
-        Iterator iter = toAdd.iterator();
-        while (iter.hasNext()) {
-            add(iter.next());
-        }
-        
-        testInvariants();
-    }
-    
-    /**
-     * Adds all items from the given array to the collection
-     * 
-     * @param toAdd objects to add
-     */
-    public final void addAll(Object[] toAdd) {
-    	Assert.isNotNull(toAdd);
-        for (int i = 0; i < toAdd.length; i++) {
-            Object object = toAdd[i];
-            
-            add(object);
-        }
-        
-        testInvariants();
-    }
-    
-    /**
-     * Returns true iff the collection is empty
-     * 
-     * @return true iff the collection contains no elements
-     */
-    public final boolean isEmpty() {
-        boolean result = (root == -1);
-        
-        testInvariants();
-        
-        return result;
-    }
-    
-    /**
-     * Removes the given object from the collection. Has no effect if
-     * the element does not exist in this collection.
-     * 
-     * @param toRemove element to remove
-     */
-    public final void remove(Object toRemove) {
-        internalRemove(toRemove);
-        
-        pack();
-        
-        testInvariants();
-    }
-    
-    /**
-     * Internal implementation of remove. Removes the given element but does not
-     * pack the container after the removal.
-     * 
-     * @param toRemove element to remove
-     */
-    private void internalRemove(Object toRemove) {
-        int objectIndex = getObjectIndex(toRemove);
-        
-        if (objectIndex != -1) {
-            int parent = parentTree[objectIndex];
-            lazyRemoveNode(objectIndex);
-            //Edge parentEdge = getEdgeTo(objectIndex);
-            //parentEdge.setTarget(lazyRemoveNode(objectIndex));
-            recomputeAncestorTreeSizes(parent);
-        }
-        
-        //testInvariants();
-    }
-    
-    /**
-     * Removes all elements in the given array from this collection.
-     * 
-     * @param toRemove elements to remove 
-     */
-    public final void removeAll(Object[] toRemove) {
-    	Assert.isNotNull(toRemove);
-    	
-        for (int i = 0; i < toRemove.length; i++) {
-            Object object = toRemove[i];
-            
-            internalRemove(object);
-        }
-    	pack();
-    }
-    
-    /**
-     * Retains the n smallest items in the collection, removing the rest. When
-     * this method returns, the size of the collection will be n. Note that
-     * this is a no-op if n > the current size of the collection.
-     * 
-     * Temporarily package visibility until the implementation of FastProgressReporter
-     * is finished.
-     * 
-     * @param n number of items to retain
-     * @param mon progress monitor
-     * @throws InterruptedException if the progress monitor is cancelled in another thread
-     */
-    /* package */ final void retainFirst(int n, FastProgressReporter mon) throws InterruptedException {
-        int sz = size();
-        
-        if (n >= sz) {
-            return;
-        }
-        
-        removeRange(n, sz - n, mon);
-        
-        testInvariants();
-    }
-    
-    /**
-     * Retains the n smallest items in the collection, removing the rest. When
-     * this method returns, the size of the collection will be n. Note that
-     * this is a no-op if n > the current size of the collection.
-     * 
-     * @param n number of items to retain
-     */
-    public final void retainFirst(int n) {
-        try {
-            retainFirst(n, new FastProgressReporter());
-        } catch (InterruptedException e) {
-        }
-        
-        testInvariants();
-    }
-    
-    /**
-     * Removes all elements in the given range from this collection.
-     * For example, removeRange(10, 3) would remove the 11th through 13th
-     * smallest items from the collection.
-     * 
-     * @param first 0-based index of the smallest item to remove
-     * @param length number of items to remove
-     */
-    public final void removeRange(int first, int length) {
-        try {
-            removeRange(first, length, new FastProgressReporter());
-        } catch (InterruptedException e) {
-        }
-        
-        testInvariants();
-    }
-    
-    /**
-     * Removes all elements in the given range from this collection.
-     * For example, removeRange(10, 3) would remove the 11th through 13th
-     * smallest items from the collection.
-     * 
-     * Temporarily package visiblity until the implementation of FastProgressReporter is
-     * finished.
-     * 
-     * @param first 0-based index of the smallest item to remove
-     * @param length number of items to remove
-     * @param mon progress monitor
-     * @throws InterruptedException if the progress monitor is cancelled in another thread
-     */
-    /* package */ final void removeRange(int first, int length, FastProgressReporter mon) throws InterruptedException {
-    	removeRange(root, first, length, mon);
-    	
-    	pack();
-    	
-    	testInvariants();
-    }
-    
-    private final void removeRange(int node, int rangeStart, int rangeLength, FastProgressReporter mon) throws InterruptedException {
-    	if (rangeLength == 0) {
-    		return;
-    	}
-    	
-    	int size = getSubtreeSize(node);
-    	
-    	if (size <= rangeStart) {
-    		return;
-    	}
-    	
-    	// If we can chop off this entire subtree without any sorting, do so.
-    	if (rangeStart == 0 && rangeLength >= size) {
-    		removeSubTree(node);
-    		return;
-    	}
-    	try {
-	    	// Partition any unsorted nodes
-    	    node = partition(node, mon);
-	    	
-	    	int left = leftSubTree[node];
-	    	int leftSize = getSubtreeSize(left);
-	    	
-	    	int toRemoveFromLeft = Math.min(leftSize - rangeStart, rangeLength);
-	    	
-	    	// If we're removing anything from the left node
-	    	if (toRemoveFromLeft >= 0) {
-	    		removeRange(leftSubTree[node], rangeStart, toRemoveFromLeft, mon);
-	    		
-	    		// Check if we're removing from both sides
-	    		int toRemoveFromRight = rangeStart + rangeLength - leftSize - 1;
-	    		
-	    		if (toRemoveFromRight >= 0) {
-	    			// Remove from right subtree
-	    			removeRange(rightSubTree[node], 0, toRemoveFromRight, mon);
-	    			
-	    			// ... removing from both sides means we need to remove the node itself too
-	    			removeNode(node);
-	    			return;
-	    		}
-	    	} else {
-	    		// If removing from the right side only
-	    		removeRange(rightSubTree[node], rangeStart - leftSize - 1, rangeLength, mon);
-	    	}
-    	} finally {
-    	    recomputeTreeSize(node);
-    	}
-    }
-    
-    /**
-     * Prunes the given subtree (and all child nodes, sorted or unsorted).
-     * 
-     * @param subTree
-     * @since 3.1
-     */
-    private final void removeSubTree(int subTree) {
-        if (subTree == -1) {
-            return;
-        }
-        
-        // Destroy all unsorted nodes
-        for (int next = nextUnsorted[subTree]; next != -1;) {
-            int current = next;
-            next = nextUnsorted[next];
-            
-            // Destroy this unsorted node
-            destroyNode(current);
-        }
-        
-        // Destroy left subtree
-        removeSubTree(leftSubTree[subTree]);
-        
-        // Destroy right subtree
-        removeSubTree(rightSubTree[subTree]);
-        
-        replaceNode(subTree, -1);
-        // Destroy pivot node
-        destroyNode(subTree);
-    }
-    
-    /**
-     * Schedules the node for removal. If the node can be removed in constant time,
-     * it is removed immediately.
-     * 
-     * @param subTree
-     * @return the replacement node
-     * @since 3.1
-     */
-    private final int lazyRemoveNode(int subTree) {
-        int left = leftSubTree[subTree];
-        int right = rightSubTree[subTree];
-
-        // If this is a leaf node, remove it immediately
-        if (left == -1 && right == -1) {
-            int result = nextUnsorted[subTree];
-            replaceNode(subTree, result);
-            destroyNode(subTree);
-            return result;
-        }
-        
-        // Otherwise, flag it for future removal
-        Object value = contents[subTree];
-        contents[subTree] = lazyRemovalFlag;
-        treeSize[subTree]--;
-        if (objectIndices != null) {
-            objectIndices.remove(value);
-        }
-        
-        return subTree;
-    }
-    
-    /**
-     * Removes the given subtree, replacing it with one of its children.
-     * Returns the new root of the subtree
-     * 
-     * @param subTree
-     * @return the index of the new root
-     * @since 3.1
-     */
-    private final int removeNode(int subTree) {
-        int left = leftSubTree[subTree];
-        int right = rightSubTree[subTree];
-        
-        if (left == -1 || right == -1) {
-            int result = -1;
-            
-            if (left == -1 && right == -1) {
-                // If this is a leaf node, replace it with its first unsorted child
-                result = nextUnsorted[subTree];
-            } else {
-                // Either the left or right child is missing -- replace with the remaining child  
-                if (left == -1) {
-                    result = right;
-                } else {
-                    result = left;
-                }
-
-                try {
-                    result = partition(result, new FastProgressReporter());
-                } catch (InterruptedException e) {
-                    
-                }
-                if (result == -1) {
-                    result = nextUnsorted[subTree];
-                } else {
-	                int unsorted = nextUnsorted[subTree];
-	                nextUnsorted[result] = unsorted;
-	                int additionalNodes = 0;
-	                if (unsorted != -1) {
-	                    parentTree[unsorted] = result;
-	                    additionalNodes = treeSize[unsorted];
-	                }
-	                treeSize[result] += additionalNodes;
-                }
-            }
-            
-            replaceNode(subTree, result);
-            destroyNode(subTree);
-            return result;
-        }
-                
-        // Find the edges that lead to the next-smallest and
-        // next-largest nodes
-        Edge nextSmallest = new Edge(subTree, DIR_LEFT);
-        while (!nextSmallest.isNull()) {
-            nextSmallest.advance(DIR_RIGHT);
-        }
-        
-        Edge nextLargest = new Edge(subTree, DIR_RIGHT);
-        while (!nextLargest.isNull()) {
-            nextLargest.advance(DIR_LEFT);
-        }
-        
-        // Index of the replacement node
-        int replacementNode = -1;
-        
-        // Count of number of nodes moved to the right
-        
-        int leftSize = getSubtreeSize(left);
-        int rightSize = getSubtreeSize(right);
-        
-        // Swap with a child from the larger subtree
-        if (leftSize > rightSize) {
-            replacementNode = nextSmallest.getStart();
-
-            // Move any unsorted nodes that are larger than the replacement node into
-            // the left subtree of the next-largest node
-            Edge unsorted = new Edge(replacementNode, DIR_UNSORTED);
-            while (!unsorted.isNull()) {
-                int target = unsorted.getTarget();
-                
-                if (!isLess(target, replacementNode)) {
-                    unsorted.setTarget(nextUnsorted[target]);
-                    nextLargest.setTarget(addUnsorted(nextLargest.getTarget(), target));
-                } else {
-                    unsorted.advance(DIR_UNSORTED);
-                }
-            }
-            
-            forceRecomputeTreeSize(unsorted.getStart(), replacementNode);
-            forceRecomputeTreeSize(nextLargest.getStart(), subTree);
-        } else {
-            replacementNode = nextLargest.getStart();
-
-            // Move any unsorted nodes that are smaller than the replacement node into
-            // the right subtree of the next-smallest node
-            Edge unsorted = new Edge(replacementNode, DIR_UNSORTED);
-            while (!unsorted.isNull()) {
-                int target = unsorted.getTarget();
-                
-                if (isLess(target, replacementNode)) {
-                    unsorted.setTarget(nextUnsorted[target]);
-                    nextSmallest.setTarget(addUnsorted(nextSmallest.getTarget(), target));
-                } else {
-                    unsorted.advance(DIR_UNSORTED);
-                }
-            }
-            
-            forceRecomputeTreeSize(unsorted.getStart(), replacementNode);
-            forceRecomputeTreeSize(nextSmallest.getStart(), subTree);
-        }
-        
-        // Now all the affected treeSize[...] elements should be updated to reflect the
-        // unsorted nodes that moved. Swap nodes. 
-        Object replacementContent = contents[replacementNode];
-        contents[replacementNode] = contents[subTree];
-        contents[subTree] = replacementContent;
-        
-        if (objectIndices != null) {
-            objectIndices.put(replacementContent, subTree);
-            // Note: currently we don't bother updating the index of the replacement
-            // node since we're going to remove it immediately afterwards and there's
-            // no good reason to search for the index in a method that was given the
-            // index as a parameter...
-            
-            // objectIndices.put(contents[replacementNode], replacementNode)
-        }
-        
-        int replacementParent = parentTree[replacementNode]; 
-        
-        replaceNode(replacementNode, removeNode(replacementNode));
-        //Edge parentEdge = getEdgeTo(replacementNode);
-        //parentEdge.setTarget(removeNode(replacementNode));
-
-        forceRecomputeTreeSize(replacementParent, subTree);
-        recomputeTreeSize(subTree);
-        
-        //testInvariants();
-        
-        return subTree;
-    }
-   
-    /**
-     * Removes all elements from the collection
-     */
-    public final void clear() {
-        lastNode = 0;
-        setArraySize(MIN_CAPACITY);
-        root = -1;
-        firstUnusedNode = -1;
-        objectIndices = null;
-        
-        testInvariants();
-    }
-    
-    /**
-     * Returns the comparator that is determining the sort order for this collection
-     * 
-     * @return comparator for this collection
-     */
-    public Comparator getComparator() {
-        return comparator;
-    }
-    
-    /**
-     * Fills in an array of size n with the n smallest elements from the collection.
-     * Can compute the result in sorted or unsorted order. 
-     * 
-     * Currently package visible until the implementation of FastProgressReporter is finished.
-     * 
-     * @param result array to be filled
-     * @param sorted if true, the result array will be sorted. If false, the result array
-     * may be unsorted. This does not affect which elements appear in the result, only their 
-     * order.
-     * @param mon monitor used to report progress and check for cancellation
-     * @return the number of items inserted into the result array. This will be equal to the minimum
-     * of result.length and container.size()
-     * @throws InterruptedException if the progress monitor is cancelled
-     */
-    /* package */ final int getFirst(Object[] result, boolean sorted, FastProgressReporter mon) throws InterruptedException {
-        int returnValue = getRange(result, 0, sorted, mon);
-        
-        testInvariants();
-        
-        return returnValue;
-    }
-    
-    /**
-     * Fills in an array of size n with the n smallest elements from the collection.
-     * Can compute the result in sorted or unsorted order. 
-     * 
-     * @param result array to be filled
-     * @param sorted if true, the result array will be sorted. If false, the result array
-     * may be unsorted. This does not affect which elements appear in the result. It only
-     * affects their order. Computing an unsorted result is asymptotically faster.
-     * @return the number of items inserted into the result array. This will be equal to the minimum
-     * of result.length and container.size()
-     */
-    public final int getFirst(Object[] result, boolean sorted) {
-        int returnValue = 0;
-        
-        try {
-            returnValue = getFirst(result, sorted, new FastProgressReporter());
-        } catch (InterruptedException e) {
-        }
-        
-        testInvariants();
-        
-        return returnValue;
-    }
-    
-    /**
-     * Given a position defined by k and an array of size n, this fills in the array with
-     * the kth smallest element through to the (k+n)th smallest element. For example, 
-     * getRange(myArray, 10, false) would fill in myArray starting with the 10th smallest item
-     * in the collection. The result can be computed in sorted or unsorted order. Computing the
-     * result in unsorted order is more efficient.
-     * <p>
-     * Temporarily set to package visibility until the implementation of FastProgressReporter
-     * is finished.
-     * </p>
-     * 
-     * @param result array to be filled in
-     * @param rangeStart index of the smallest element to appear in the result
-     * @param sorted true iff the result array should be sorted
-     * @param mon progress monitor used to cancel the operation
-     * @throws InterruptedException if the progress monitor was cancelled in another thread
-     */
-    /* package */ final int getRange(Object[] result, int rangeStart, boolean sorted, FastProgressReporter mon) throws InterruptedException {
-        return getRange(result, 0, rangeStart, root, sorted, mon);
-    }
-    
-    /**
-     * Computes the n through n+k items in this collection.
-     * Computing the result in unsorted order is more efficient. Sorting the result will
-     * not change which elements actually show up in the result. That is, even if the result is
-     * unsorted, it will still contain the same elements as would have been at that range in
-     * a fully sorted collection. 
-     * 
-     * @param result array containing the result
-     * @param rangeStart index of the first element to be inserted into the result array
-     * @param sorted true iff the result will be computed in sorted order
-     * @return the number of items actually inserted into the result array (will be the minimum
-     * of result.length and this.size())
-     */
-    public final int getRange(Object[] result, int rangeStart, boolean sorted) {
-        int returnValue = 0;
-        
-        try {
-            returnValue = getRange(result, rangeStart, sorted, new FastProgressReporter());
-        } catch (InterruptedException e) {
-        }
-        
-        testInvariants();
-        
-        return returnValue;
-    }
-    
-    /**
-     * Returns the item at the given index. Indexes are based on sorted order.
-     * 
-     * @param index index to test
-     * @return the item at the given index
-     */
-    public final Object getItem(int index) {
-        Object[] result = new Object[1];
-        try {
-            getRange(result, index, false, new FastProgressReporter());
-        } catch (InterruptedException e) {
-            // shouldn't happen
-        }
-        Object returnValue = result[0];
-        
-        testInvariants();
-        
-        return returnValue;
-    }
-    
-    /**
-     * Returns the contents of this collection as a sorted or unsorted
-     * array. Computing an unsorted array is more efficient.
-     * 
-     * @param sorted if true, the result will be in sorted order. If false,
-     * the result may be in unsorted order.
-     * @return the contents of this collection as an array.
-     */
-    public final Object[] getItems(boolean sorted) {
-        Object[] result = new Object[size()];
-        
-        getRange(result, 0, sorted);
-        
-        return result;
-    }
-    
-    private final int getRange(Object[] result, int resultIdx, int rangeStart, int node, boolean sorted, FastProgressReporter mon) throws InterruptedException {
-        if (node == -1) {
-            return 0;
-        }
-
-        int availableSpace = result.length - resultIdx;
-        
-        // If we're asking for all children of the current node, simply call getChildren
-        if (rangeStart == 0) {
-            if (treeSize[node] <= availableSpace) {
-                return getChildren(result, resultIdx, node, sorted, mon);
-            }
-        }
-        
-        node = partition(node, mon);
-        if (node == -1) {
-            return 0;
-        }
-        
-        int inserted = 0;
-        
-        int numberLessThanNode = getSubtreeSize(leftSubTree[node]);
-                
-        if (rangeStart < numberLessThanNode) {
-            if (inserted < availableSpace) {
-                inserted += getRange(result, resultIdx, rangeStart, leftSubTree[node], sorted, mon);
-            }
-        }
-        
-        if (rangeStart <= numberLessThanNode) {
-	        if (inserted < availableSpace) {
-	            result[resultIdx + inserted] = contents[node];
-	            inserted++;
-	        }	        
-        } 
-        
-        if (inserted < availableSpace) {
-            inserted += getRange(result, resultIdx + inserted,
-                Math.max(rangeStart - numberLessThanNode - 1, 0), rightSubTree[node], sorted, mon);
-        }
-        
-        return inserted;
-    }
-    
-    /**
-     * Fills in the available space in the given array with all children of the given node.
-     * 
-     * @param result 
-     * @param resultIdx index in the result array where we will begin filling in children
-     * @param node
-     * @return the number of children added to the array
-     * @since 3.1
-     */
-    private final int getChildren(Object[] result, int resultIdx, int node, boolean sorted, FastProgressReporter mon) throws InterruptedException {
-        if (node == -1) {
-            return 0;
-        }
-        
-        int tempIdx = resultIdx;
-        
-        if (sorted) {
-            node = partition(node, mon);
-            if (node == -1) {
-                return 0;
-            }
-        }
-        
-        // Add child nodes smaller than this one
-        if (tempIdx < result.length) {
-            tempIdx += getChildren(result, tempIdx, leftSubTree[node], sorted, mon);
-        }
-        
-        // Add the pivot
-        if (tempIdx < result.length) {
-            Object value = contents[node];
-            if (value != lazyRemovalFlag) {
-                result[tempIdx++] = value;
-            }
-        }
-        
-        // Add child nodes larger than this one
-        if (tempIdx < result.length) {
-            tempIdx += getChildren(result, tempIdx, rightSubTree[node], sorted, mon);
-        }
-        
-        // Add unsorted children (should be empty if the sorted flag was true)
-        for (int unsortedNode = nextUnsorted[node]; unsortedNode != -1 && tempIdx < result.length; 
-        	unsortedNode = nextUnsorted[unsortedNode]) {
-            
-            result[tempIdx++] = contents[unsortedNode];
-        }
-        
-        return tempIdx - resultIdx;
-    }
-
-    /**
-     * Returns true iff this collection contains the given item
-     * 
-     * @param item item to test
-     * @return true iff this collection contains the given item
-     */
-    public boolean contains(Object item) {
-    	Assert.isNotNull(item);
-        boolean returnValue = (getObjectIndex(item) != -1);
-        
-        testInvariants();
-        
-        return returnValue;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/SetModel.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/SetModel.java
deleted file mode 100644
index 26bb3ce..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/SetModel.java
+++ /dev/null
@@ -1,130 +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.jface.viewers.deferred;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-import org.eclipse.core.runtime.Assert;
-
-
-/**
- * Trivial implementation of an <code>IConcurrentModel</code>. Implements 
- * an unordered set of elements that fires off change notifications whenever
- * elements are added or removed from the set. All notifications are sent
- * synchronously.
- * 
- * @since 3.1
- */
-public class SetModel extends AbstractConcurrentModel {
-    
-    private HashSet data = new HashSet();
-    
-    /**
-     * Return the contents of the model.
-     * @return the array of elements
-     * 
-     */
-    public Object[] getElements() {
-        return data.toArray();
-    }
-
-    /**
-     * Sets the contents to the given array of elements
-     * 
-     * @param newContents new contents of this set
-     */
-    public void set(Object[] newContents) {
-    	Assert.isNotNull(newContents);
-    	data.clear();
-        for (int i = 0; i < newContents.length; i++) {
-            Object object = newContents[i];
-            
-            data.add(object);
-        }
-    	
-    	IConcurrentModelListener[] listeners = getListeners();
-    	for (int i = 0; i < listeners.length; i++) {
-			IConcurrentModelListener listener = listeners[i];
-			
-			listener.setContents(newContents);
-		}
-    }
-
-    /**
-     * Empties the set
-     */
-    public void clear() {
-        Object[] removed = data.toArray();
-        data.clear();
-        fireRemove(removed);
-    }
-    
-    /**
-     * Adds the given elements to the set
-     * 
-     * @param toAdd elements to add
-     */
-    public void addAll(Object[] toAdd) {
-    	Assert.isNotNull(toAdd);
-        for (int i = 0; i < toAdd.length; i++) {
-            Object object = toAdd[i];
-            
-            data.add(object);
-        }
-        
-        fireAdd(toAdd);
-    }
-    
-    /**
-     * Adds the given elements to the set. Duplicate elements are ignored.
-     * 
-     * @param toAdd elements to add
-     */
-    public void addAll(Collection toAdd) {
-    	Assert.isNotNull(toAdd);
-        addAll(toAdd.toArray());
-    }
-    
-    /**
-     * Fires a change notification for all elements in the given array
-     * 
-     * @param changed array of elements that have changed
-     */
-    public void changeAll(Object[] changed) {
-    	Assert.isNotNull(changed);
-        fireUpdate(changed);
-    }
-    
-    /**
-     * Removes all of the given elements from the set.
-     * 
-     * @param toRemove elements to remove
-     */
-    public void removeAll(Object[] toRemove) {
-    	Assert.isNotNull(toRemove);
-        for (int i = 0; i < toRemove.length; i++) {
-            Object object = toRemove[i];
-            
-            data.remove(object);
-        }        
-        
-        fireRemove(toRemove);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.deferred.IConcurrentModel#requestUpdate(org.eclipse.jface.viewers.deferred.IConcurrentModelListener)
-     */
-    public void requestUpdate(IConcurrentModelListener listener) {
-    	Assert.isNotNull(listener);
-        listener.setContents(getElements());
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/package.html
deleted file mode 100644
index 10698c4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/deferred/package.html
+++ /dev/null
@@ -1,17 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides a framework for viewers that handle deferred contents. 
-<h2>
-Package Specification</h2>
-<p>The deferred viewers are viewers that can handle concurrent updates from a 
-  variety of Threads.<br>
-  &nbsp; 
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/package.html
deleted file mode 100644
index b2608b4..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/package.html
+++ /dev/null
@@ -1,70 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides a framework for viewers, which are model-based
-content adapters for SWT widgets.
-<h2>
-Package Specification</h2>
-A viewer is a model-based adapter on an SWT widget.&nbsp; Each viewer has
-four parts:
-<blockquote>
-<li>
-an <b>input</b> - the object that serves as the viewer's model</li>
-
-<li>
-a <b>widget</b> - the SWT control through which the viewer's model is displayed</li>
-
-<li>
-a <b>content provider</b> - mediates between the model and viewer</li>
-
-<li>
-a <b>label provider</b> - maps model objects to displayable labels containing
-text and/or an image</li>
-</blockquote>
-This package contains the viewer framework. The viewer framework is an
-independent JFace module. Using it requires a knowledge of SWT, but does
-not require familiarity with any of the other JFace modules. The framework
-consists of abstract base classes for viewers (<tt>Viewer</tt>, <tt>StructuredViewer</tt>,
-<tt>AbstractTreeViewer</tt>) together with concrete viewer classes (<tt>ListViewer</tt>,
-<tt>TreeViewer</tt>,
-<tt>TableViewer</tt>,
-<tt>TableTreeViewer</tt>, <tt>CheckboxTreeViewer</tt>,
-and <tt>CheckboxTableViewer</tt>),
-and various lesser support classes. The concrete structured viewer classes
-are ready-to-use and have built-in support for drag-and-drop, filtering
-(<tt>IViewerFilter</tt> and <tt>ViewerFilter</tt>), and sorting (<tt>IViewerSorter</tt>
-and <tt>ViewerSorter</tt>); these classes may also be subclassed further
-if required.
-<p>In general terms, creating a viewer involves the following steps:
-<ul>
-<li>
-instantiating a viewer on some pre-existing SWT widget,</li>
-
-<li>
-setting the viewer's content provider (an object implementing <tt>IContentProvider</tt>),</li>
-
-<li>
-setting the viewer's label provider (an object implementing
-<tt>ILabelProvider</tt>),</li>
-
-<li>
-and, finally, setting the viewer's input.</li>
-</ul>
-Once a viewer's input is set, the viewer becomes active. As the model changes,
-it is the content provider's responsibility to respond to changes to the
-model by telling the viewer what to change (done by calling add and remove
-methods on the viewer). An existing viewer may be retargeted by giving
-it a different object as input; the viewer is responsible for informing
-the content provider of these kinds of wholesale changes (<tt>IContentProvider.inputChanged</tt>).
-Also, each viewer registers with its label provider for notification of
-changes that would affect what the viewer displays (see <tt>ILabelProviderListener.stateChanged</tt>).
-<p>Note: None of the classes in this package maintain global state.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/ApplicationWindow.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/ApplicationWindow.java
deleted file mode 100644
index 5245b48..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/ApplicationWindow.java
+++ /dev/null
@@ -1,857 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Roman Dawydkin - bug 55116
- *******************************************************************************/
-
-package org.eclipse.jface.window;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.action.CoolBarManager;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.StatusLineManager;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.internal.provisional.action.ICoolBarManager2;
-import org.eclipse.jface.internal.provisional.action.IToolBarManager2;
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.graphics.Font;
-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.CoolBar;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-
-/**
- * An application window is a high-level "main window", with built-in
- * support for an optional menu bar with standard menus, an optional toolbar,
- * and an optional status line.
- * <p>
- * Creating an application window involves the following steps:
- * <ul>
- *   <li>creating an instance of <code>ApplicationWindow</code>
- *   </li>
- *   <li>assigning the window to a window manager (optional)
- *   </li>
- *   <li>opening the window by calling <code>open</code>
- *   </li>
- * </ul>
- * Only on the last step, when the window is told to open, are
- * the window's shell and widget tree created. When the window is
- * closed, the shell and widget tree are disposed of and are no longer
- * referenced, and the window is automatically removed from its window
- * manager. Like all windows, an application window may be reopened.
- * </p>
- * <p>
- * An application window is also a suitable context in which to perform 
- * long-running operations (that is, it implements <code>IRunnableContext</code>).
- * </p>
- */
-public class ApplicationWindow extends Window implements IRunnableContext {
-
-    /**
-     * Menu bar manager, or <code>null</code> if none (default).
-     *
-     * @see #addMenuBar
-     */
-    private MenuManager menuBarManager = null;
-
-    /**
-     * Tool bar manager, or <code>null</code> if none (default).
-     *
-     * @see #addToolBar
-     */
-    private IToolBarManager toolBarManager = null;
-
-    /**
-     * Status line manager, or <code>null</code> if none (default).
-     *
-     * @see #addStatusLine
-     */
-    private StatusLineManager statusLineManager = null;
-
-    /**
-     * Cool bar manager, or <code>null</code> if none (default).
-     * 
-     * @see #addCoolBar
-     * @since 3.0
-     */
-    private ICoolBarManager coolBarManager = null;
-
-    /**
-     * The seperator between the menu bar and the rest of the window.
-     */
-    protected Label seperator1;
-
-    /**
-     * A flag indicating that an operation is running.
-     */
-    private boolean operationInProgress = false;
-
-    /**
-     * Internal application window layout class.
-     * This vertical layout supports a tool bar area (fixed size),
-     * a separator line, the content area (variable size), and a 
-     * status line (fixed size).
-     */
-    /*package*/class ApplicationWindowLayout extends Layout {
-
-        static final int VGAP = 2;
-
-        static final int BAR_SIZE = 23;
-
-        protected Point computeSize(Composite composite, int wHint, int hHint,
-                boolean flushCache) {
-            if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-
-            Point result = new Point(0, 0);
-            Control[] ws = composite.getChildren();
-            for (int i = 0; i < ws.length; i++) {
-                Control w = ws[i];
-
-                boolean hide = false;
-                if (getToolBarControl() == w) {
-                    if (!toolBarChildrenExist()) {
-                        hide = true;
-                        result.y += BAR_SIZE; // REVISIT
-                    }
-                } else if (getCoolBarControl() == w) {
-                    if (!coolBarChildrenExist()) {
-                        hide = true;
-                        result.y += BAR_SIZE;
-                    }
-                } else if (statusLineManager != null
-                        && statusLineManager.getControl() == w) {
-                } else if (i > 0) { /* we assume this window is contents */
-                    hide = false;
-                }
-
-                if (!hide) {
-                    Point e = w.computeSize(wHint, hHint, flushCache);
-                    result.x = Math.max(result.x, e.x);
-                    result.y += e.y + VGAP;
-                }
-            }
-
-            if (wHint != SWT.DEFAULT) {
-				result.x = wHint;
-			}
-            if (hHint != SWT.DEFAULT) {
-				result.y = hHint;
-			}
-            return result;
-        }
-
-        protected void layout(Composite composite, boolean flushCache) {
-            Rectangle clientArea = composite.getClientArea();
-
-            Control[] ws = composite.getChildren();
-            
-            // Lay out the separator, the tool bar control, the cool bar control, the status line, and the page composite.
-            // The following code assumes that the page composite is the last child, and that there are no unexpected other controls.
-
-            for (int i = 0; i < ws.length; i++) {
-                Control w = ws[i];
-
-                if (w == seperator1) { // Separator
-                    Point e = w.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                            flushCache);
-                    w.setBounds(clientArea.x, clientArea.y, clientArea.width,
-                            e.y);
-                    clientArea.y += e.y;
-                    clientArea.height -= e.y;
-                } else if (getToolBarControl() == w) {
-                    if (toolBarChildrenExist()) {
-                        Point e = w.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                                flushCache);
-                        w.setBounds(clientArea.x, clientArea.y,
-                                clientArea.width, e.y);
-                        clientArea.y += e.y + VGAP;
-                        clientArea.height -= e.y + VGAP;
-                    }
-                } else if (getCoolBarControl() == w) {
-                    if (coolBarChildrenExist()) {
-                        Point e = w.computeSize(clientArea.width, SWT.DEFAULT,
-                                flushCache);
-                        w.setBounds(clientArea.x, clientArea.y,
-                                clientArea.width, e.y);
-                        clientArea.y += e.y + VGAP;
-                        clientArea.height -= e.y + VGAP;
-                    }
-                } else if (statusLineManager != null
-                        && statusLineManager.getControl() == w) {
-                    Point e = w.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-                            flushCache);
-                    w.setBounds(clientArea.x, clientArea.y + clientArea.height
-                            - e.y, clientArea.width, e.y);
-                    clientArea.height -= e.y + VGAP;
-                } else {
-                    w.setBounds(clientArea.x, clientArea.y + VGAP,
-                            clientArea.width, clientArea.height - VGAP);
-                }
-            }
-        }
-    }
-
-    /**
-     * Return the top seperator.
-     * @return Label
-     */
-    protected Label getSeperator1() {
-        return seperator1;
-    }
-
-    /**
-     * Create an application window instance, whose shell will be created under the
-     * given parent shell.
-     * Note that the window will have no visual representation (no widgets)
-     * until it is told to open. By default, <code>open</code> does not block.
-     *
-     * @param parentShell the parent shell, or <code>null</code> to create a top-level shell
-     */
-    public ApplicationWindow(Shell parentShell) {
-        super(parentShell);
-    }
-
-    /**
-     * Configures this window to have a menu bar.
-     * Does nothing if it already has one.
-     * This method must be called before this window's shell is created.
-     */
-    protected void addMenuBar() {
-        if ((getShell() == null) && (menuBarManager == null)) {
-            menuBarManager = createMenuManager();
-        }
-    }
-
-    /**
-     * Configures this window to have a status line.
-     * Does nothing if it already has one.
-     * This method must be called before this window's shell is created.
-     */
-    protected void addStatusLine() {
-        if ((getShell() == null) && (statusLineManager == null)) {
-            statusLineManager = createStatusLineManager();
-        }
-    }
-
-    /**
-     * Configures this window to have a tool bar.
-     * Does nothing if it already has one.
-     * This method must be called before this window's shell is created.
-     * @param style swt style bits used to create the Toolbar
-     * @see ToolBarManager#ToolBarManager(int)
-     * @see ToolBar for style bits
-     */
-    protected void addToolBar(int style) {
-        if ((getShell() == null) && (toolBarManager == null)
-                && (coolBarManager == null)) {
-            toolBarManager = createToolBarManager2(style);
-        }
-    }
-
-    /**
-     * Configures this window to have a cool bar.
-     * Does nothing if it already has one.
-     * This method must be called before this window's shell is created.
-     * 
-     * @param style the cool bar style
-     * @since 3.0
-     */
-    protected void addCoolBar(int style) {
-        if ((getShell() == null) && (toolBarManager == null)
-                && (coolBarManager == null)) {
-            coolBarManager = createCoolBarManager2(style);
-        }	
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected boolean canHandleShellCloseEvent() {
-        return super.canHandleShellCloseEvent() && !operationInProgress;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    public boolean close() {
-        if (operationInProgress) {
-			return false;
-		}
-
-        if (super.close()) {
-            if (menuBarManager != null) {
-                menuBarManager.dispose();
-                menuBarManager = null;
-            }
-            if (toolBarManager != null) {
-            	if (toolBarManager instanceof IToolBarManager2) {
-					((IToolBarManager2) toolBarManager).dispose();
-				} else if (toolBarManager instanceof ToolBarManager) {
-					((ToolBarManager) toolBarManager).dispose();
-				}
-                toolBarManager = null;
-            }
-            if (statusLineManager != null) {
-                statusLineManager.dispose();
-                statusLineManager = null;
-            }
-            if (coolBarManager != null) {
-            	if (coolBarManager instanceof ICoolBarManager2) {
-					((ICoolBarManager2) coolBarManager).dispose();
-				} else if (coolBarManager instanceof CoolBarManager) {
-					((CoolBarManager) coolBarManager).dispose();
-				}
-                coolBarManager = null;
-            }
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Extends the super implementation by creating the trim widgets using <code>createTrimWidgets</code>. 
-     */
-    protected void configureShell(Shell shell) {
-
-        super.configureShell(shell);
-
-        createTrimWidgets(shell);
-    }
-
-    /**
-     * Creates the trim widgets around the content area.
-     * 
-     * @param shell the shell
-     * @since 3.0
-     */
-    protected void createTrimWidgets(Shell shell) {
-        if (menuBarManager != null) {
-        	shell.setMenuBar(menuBarManager.createMenuBar((Decorations) shell));
-            menuBarManager.updateAll(true);
-        }
-
-        if (showTopSeperator()) {
-			seperator1 = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
-		}
-
-        // will create either a cool bar or a tool bar
-        createToolBarControl(shell);
-        createCoolBarControl(shell);
-        createStatusLine(shell);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.window.Window#getLayout()
-     */
-    protected Layout getLayout() {
-        return new ApplicationWindowLayout();
-    }
-
-    /**
-     * Returns whether to show a top separator line between the menu bar
-     * and the rest of the window contents.  On some platforms such as the Mac,
-     * the menu is separated from the main window already, so a separator line
-     * is not desired. 
-     * 
-     * @return <code>true</code> to show the top separator, <code>false</code>
-     *   to not show it
-     * @since 3.0
-     */
-    protected boolean showTopSeperator() {
-        return !Util.isMac();
-    }
-
-    /**
-     * Create the status line if required.
-     * @param shell
-     */
-    protected void createStatusLine(Shell shell) {
-        if (statusLineManager != null) {
-            statusLineManager.createControl(shell, SWT.NONE);
-        }
-    }
-
-    /**
-     * Returns a new menu manager for the window.
-     * <p>
-     * Subclasses may override this method to customize the menu manager.
-     * </p>
-     * @return a menu manager
-     */
-    protected MenuManager createMenuManager() {
-        return new MenuManager();
-    }
-
-    /**
-     * Returns a new status line manager for the window.
-     * <p>
-     * Subclasses may override this method to customize the status line manager.
-     * </p>
-     * @return a status line manager
-     */
-    protected StatusLineManager createStatusLineManager() {
-        return new StatusLineManager();
-    }
-
-    /**
-     * Returns a new tool bar manager for the window.
-     * <p>
-     * Subclasses may override this method to customize the tool bar manager.
-     * </p>
-     * @param style swt style bits used to create the Toolbar
-     * 
-     * @return a tool bar manager
-     * @see ToolBarManager#ToolBarManager(int)
-     * @see ToolBar for style bits
-     */
-    protected ToolBarManager createToolBarManager(int style) {
-        return new ToolBarManager(style);
-    }
-    
-    /**
-     * Returns a new tool bar manager for the window. 
-     * <p> 
-     * By default this method calls <code>createToolBarManager</code>.  Subclasses
-     * may override this method to provide an alternative implementation for the
-     * tool bar manager.
-     * </p>
-     * 
-	 * @param style swt style bits used to create the Toolbar
-     *  
-     * @return a tool bar manager
-     * @since 3.2
-     * @see #createToolBarManager(int)
-     */
-    protected IToolBarManager createToolBarManager2(int style) {
-        return createToolBarManager(style);
-    }
-
-    /**
-     * Returns a new cool bar manager for the window.
-     * <p>
-     * Subclasses may override this method to customize the cool bar manager.
-     * </p>
-     * 
-     * @param style swt style bits used to create the Coolbar
-     * 
-     * @return a cool bar manager
-     * @since 3.0
-     * @see CoolBarManager#CoolBarManager(int)
-     * @see CoolBar for style bits
-     */
-    protected CoolBarManager createCoolBarManager(int style) {
-        return new CoolBarManager(style);
-    }
-    
-    /**
-     * Returns a new cool bar manager for the window.
-     * <p>
-     * By default this method calls <code>createCoolBarManager</code>.  Subclasses
-     * may override this method to provide an alternative implementation for the
-     * cool bar manager.
-     * </p>
-     * 
-	 * @param style swt style bits used to create the Coolbar
-     * 
-     * @return a cool bar manager
-     * @since 3.2
-     * @see #createCoolBarManager(int)
-     */
-    protected ICoolBarManager createCoolBarManager2(int style) {
-        return createCoolBarManager(style);
-    }
-
-    /**
-     * Creates the control for the tool bar manager.
-     * <p>
-     * Subclasses may override this method to customize the tool bar manager.
-     * </p>
-     * @param parent the parent used for the control
-     * @return a Control
-     */
-    protected Control createToolBarControl(Composite parent) {
-        if (toolBarManager != null) {
-        	if (toolBarManager instanceof IToolBarManager2) {
-				return ((IToolBarManager2) toolBarManager).createControl2(parent);
-			}
-        	if (toolBarManager instanceof ToolBarManager) {
-				return ((ToolBarManager) toolBarManager).createControl(parent);
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Creates the control for the cool bar manager.
-     * <p>
-     * Subclasses may override this method to customize the cool bar manager.
-     * </p>
-     * @param composite the parent used for the control
-     * 
-     * @return an instance of <code>CoolBar</code>
-     * @since 3.0
-     */
-    protected Control createCoolBarControl(Composite composite) {
-        if (coolBarManager != null) {
-        	if (coolBarManager instanceof ICoolBarManager2) {
-				return ((ICoolBarManager2) coolBarManager).createControl2(composite);
-			}
-        	if (coolBarManager instanceof CoolBarManager) {
-				return ((CoolBarManager) coolBarManager).createControl(composite);
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Returns the default font used for this window.
-     * <p>
-     * The default implementation of this framework method
-     * obtains the symbolic name of the font from the
-     * <code>getSymbolicFontName</code> framework method
-     * and retrieves this font from JFace's font
-     * registry using <code>JFaceResources.getFont</code>.
-     * Subclasses may override to use a different registry,
-     * etc.
-     * </p>
-     *
-     * @return the default font, or <code>null</code> if none
-     */
-    protected Font getFont() {
-        return JFaceResources.getFont(getSymbolicFontName());
-    }
-
-    /**
-     * Returns the menu bar manager for this window (if it has one).
-     *
-     * @return the menu bar manager, or <code>null</code> if
-     *   this window does not have a menu bar
-     * @see #addMenuBar()
-     */
-    public MenuManager getMenuBarManager() {
-        return menuBarManager;
-    }
-
-    /**
-     * Returns the status line manager for this window (if it has one).
-     *
-     * @return the status line manager, or <code>null</code> if
-     *   this window does not have a status line
-     * @see #addStatusLine
-     */
-    protected StatusLineManager getStatusLineManager() {
-        return statusLineManager;
-    }
-
-    /**
-     * Returns the symbolic font name of the font to be
-     * used to display text in this window.
-     * This is not recommended and is included for backwards
-     * compatability.
-     * It is recommended to use the default font provided by
-     * SWT (that is, do not set the font).
-     * 
-     * @return the symbolic font name
-     */
-    public String getSymbolicFontName() {
-        return JFaceResources.TEXT_FONT;
-    }
-
-    /**
-     * Returns the tool bar manager for this window (if it has one).
-     *
-     * @return the tool bar manager, or <code>null</code> if
-     *   this window does not have a tool bar
-     * @see #addToolBar(int)
-     */
-    public ToolBarManager getToolBarManager() {
-    	if (toolBarManager instanceof ToolBarManager) {
-			return (ToolBarManager)toolBarManager;
-		}
-        return null;
-    }
-    
-    /**
-     * Returns the tool bar manager for this window (if it has one).
-     * 
-	 * @return the tool bar manager, or <code>null</code> if
-     *   this window does not have a tool bar
-     * @see #addToolBar(int)
-	 * @since 3.2
-     */
-    public IToolBarManager getToolBarManager2() {
-        return toolBarManager;
-    }
-
-    /**
-     * Returns the cool bar manager for this window.
-     *
-     * @return the cool bar manager, or <code>null</code> if
-     *   this window does not have a cool bar
-     * @see #addCoolBar(int)
-     * @since 3.0
-     */
-    public CoolBarManager getCoolBarManager() {
-    	if (coolBarManager instanceof CoolBarManager) {
-			return (CoolBarManager)coolBarManager;
-		}
-        return null;
-    }
-    
-    /**
-     * Returns the cool bar manager for this window.
-     * 
-	 * @return the cool bar manager, or <code>null</code> if
-     *   this window does not have a cool bar
-     * @see #addCoolBar(int)
-     * @since 3.2
-     */
-    public ICoolBarManager getCoolBarManager2() {
-        return coolBarManager;
-    }
-
-    /**
-     * Returns the control for the window's toolbar.
-     * <p>
-     * Subclasses may override this method to customize the tool bar manager.
-     * </p>
-     * @return a Control
-     */
-    protected Control getToolBarControl() {
-        if (toolBarManager != null) {
-        	if (toolBarManager instanceof IToolBarManager2) {
-				return ((IToolBarManager2) toolBarManager).getControl2();
-			}
-        	if (toolBarManager instanceof ToolBarManager) {
-				return ((ToolBarManager) toolBarManager).getControl();
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Returns the control for the window's cool bar.
-     * <p>
-     * Subclasses may override this method to customize the cool bar manager.
-     * </p>
-     * 
-     * @return an instance of <code>CoolBar</code>
-     * @since 3.0
-     */
-    protected Control getCoolBarControl() {
-        if (coolBarManager != null) {
-        	if (coolBarManager instanceof ICoolBarManager2) {
-				return ((ICoolBarManager2) coolBarManager).getControl2();
-			}
-        	if (coolBarManager instanceof CoolBarManager) {
-				return ((CoolBarManager) coolBarManager).getControl();
-			}
-        }
-        return null;
-    }
-
-    /**
-     * This implementation of IRunnableContext#run(boolean, boolean,
-     * IRunnableWithProgress) blocks until the runnable has been run,
-     * regardless of the value of <code>fork</code>.
-     * It is recommended that <code>fork</code> is set to
-     * true in most cases. If <code>fork</code> is set to <code>false</code>,
-     * the runnable will run in the UI thread and it is the runnable's
-     * responsibility to call <code>Display.readAndDispatch()</code>
-     * to ensure UI responsiveness.
-     */
-    public void run(final boolean fork, boolean cancelable,
-            final IRunnableWithProgress runnable)
-            throws InvocationTargetException, InterruptedException {
-        try {
-            operationInProgress = true;
-            final StatusLineManager mgr = getStatusLineManager();
-            if (mgr == null) {
-                runnable.run(new NullProgressMonitor());
-                return;
-            }
-            boolean cancelWasEnabled = mgr.isCancelEnabled();
-
-            final Control contents = getContents();
-            final Display display = contents.getDisplay();
-            Shell shell = getShell();
-            boolean contentsWasEnabled = contents.getEnabled();
-            MenuManager manager = getMenuBarManager();
-            Menu menuBar = null;
-            if (manager != null) {
-                menuBar = manager.getMenu();
-                manager = null;
-            }
-            boolean menuBarWasEnabled = false;
-            if (menuBar != null) {
-				menuBarWasEnabled = menuBar.getEnabled();
-			}
-
-            Control toolbarControl = getToolBarControl();
-            boolean toolbarWasEnabled = false;
-            if (toolbarControl != null) {
-				toolbarWasEnabled = toolbarControl.getEnabled();
-			}
-
-            Control coolbarControl = getCoolBarControl();
-            boolean coolbarWasEnabled = false;
-            if (coolbarControl != null) {
-				coolbarWasEnabled = coolbarControl.getEnabled();
-			}
-
-            // Disable the rest of the shells on the current display
-            Shell[] shells = display.getShells();
-            boolean[] enabled = new boolean[shells.length];
-            for (int i = 0; i < shells.length; i++) {
-                Shell current = shells[i];
-                if (current == shell) {
-					continue;
-				}
-                if (current != null && !current.isDisposed()) {
-                    enabled[i] = current.getEnabled();
-                    current.setEnabled(false);
-                }
-            }
-
-            Control currentFocus = display.getFocusControl();
-            try {
-                contents.setEnabled(false);
-                if (menuBar != null) {
-					menuBar.setEnabled(false);
-				}
-                if (toolbarControl != null) {
-					toolbarControl.setEnabled(false);
-				}
-                if (coolbarControl != null) {
-					coolbarControl.setEnabled(false);
-				}
-                mgr.setCancelEnabled(cancelable);
-                final Exception[] holder = new Exception[1];
-                BusyIndicator.showWhile(display, new Runnable() {
-                    public void run() {
-                        try {
-                            ModalContext.run(runnable, fork, mgr
-                                    .getProgressMonitor(), display);
-                        } catch (InvocationTargetException ite) {
-                            holder[0] = ite;
-                        } catch (InterruptedException ie) {
-                            holder[0] = ie;
-                        }
-                    }
-                });
-
-                if (holder[0] != null) {
-                    if (holder[0] instanceof InvocationTargetException) {
-                        throw (InvocationTargetException) holder[0];
-                    } else if (holder[0] instanceof InterruptedException) {
-                        throw (InterruptedException) holder[0];
-                    }
-                }
-            } finally {
-                operationInProgress = false;
-                // Enable the rest of the shells on the current display
-                for (int i = 0; i < shells.length; i++) {
-                    Shell current = shells[i];
-                    if (current == shell) {
-						continue;
-					}
-                    if (current != null && !current.isDisposed()) {
-                        current.setEnabled(enabled[i]);
-                    }
-                }
-                if (!contents.isDisposed()) {
-					contents.setEnabled(contentsWasEnabled);
-				}
-                if (menuBar != null && !menuBar.isDisposed()) {
-					menuBar.setEnabled(menuBarWasEnabled);
-				}
-                if (toolbarControl != null && !toolbarControl.isDisposed()) {
-					toolbarControl.setEnabled(toolbarWasEnabled);
-				}
-                if (coolbarControl != null && !coolbarControl.isDisposed()) {
-					coolbarControl.setEnabled(coolbarWasEnabled);
-				}
-                mgr.setCancelEnabled(cancelWasEnabled);
-                if (currentFocus != null && !currentFocus.isDisposed()) {
-                    // It's necessary to restore focus after reenabling the controls
-                    // because disabling them causes focus to jump elsewhere.
-                    // Use forceFocus rather than setFocus to avoid SWT's
-                    // search for children which can take focus, so focus
-                    // ends up back on the actual control that previously had it.
-                    currentFocus.forceFocus();
-                }
-            }
-        } finally {
-            operationInProgress = false;
-        }
-    }
-
-    /**
-     * Sets or clears the message displayed in this window's status
-     * line (if it has one). This method has no effect if the
-     * window does not have a status line.
-     *
-     * @param message the status message, or <code>null</code> to clear it
-     */
-    public void setStatus(String message) {
-        if (statusLineManager != null) {
-            statusLineManager.setMessage(message);
-        }
-    }
-
-    /**
-     * Returns whether or not children exist for the Application Window's
-     * toolbar control.
-     * <p>
-     * @return boolean true if children exist, false otherwise
-     */
-    protected boolean toolBarChildrenExist() {
-        Control toolControl = getToolBarControl();
-        if (toolControl instanceof ToolBar) {
-            return ((ToolBar) toolControl).getItemCount() > 0;
-        }
-        return false;
-    }
-
-    /**
-     * Returns whether or not children exist for this application window's
-     * cool bar control.
-     * 
-     * @return boolean true if children exist, false otherwise
-     * @since 3.0
-     */
-    protected boolean coolBarChildrenExist() {
-        Control coolControl = getCoolBarControl();
-        if (coolControl instanceof CoolBar) {
-            return ((CoolBar) coolControl).getItemCount() > 0;
-        }
-        return false;
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/DefaultToolTip.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/DefaultToolTip.java
deleted file mode 100644
index 226102b..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/DefaultToolTip.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.window;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * Default implementation of ToolTip that provides an iconofied label with font
- * and color controls by subclass.
- * 
- * @since 3.3
- */
-public class DefaultToolTip extends ToolTip {
-	private String text;
-
-	private Color backgroundColor;
-
-	private Font font;
-
-	private Image backgroundImage;
-
-	private Color foregroundColor;
-
-	private Image image;
-
-	private int style = SWT.SHADOW_NONE;
-
-	/**
-	 * Create new instance which add TooltipSupport to the widget
-	 * 
-	 * @param control the control on whose action the tooltip is shown
-	 */
-	public DefaultToolTip(Control control) {
-		super(control);
-	}
-
-	/**
-	 * Create new instance which add TooltipSupport to the widget
-	 * 
-	 * @param control the control to which the tooltip is bound
-	 * @param style style passed to control tooltip behaviour
-	 * @param manualActivation <code>true</code> if the activation is done manually using
-	 *            {@link #show(Point)}
-	 * @see #RECREATE
-	 * @see #NO_RECREATE
-	 */
-	public DefaultToolTip(Control control, int style, boolean manualActivation) {
-		super(control, style, manualActivation);
-	}
-	
-	/**
-	 * Creates the content are of the the tooltip. By default this creates a
-	 * CLabel to display text. To customize the text Subclasses may override the
-	 * following methods
-	 * <ul>
-	 * <li>{@link #getStyle(Event)}</li>
-	 * <li>{@link #getBackgroundColor(Event)}</li>
-	 * <li>{@link #getForegroundColor(Event)}</li>
-	 * <li>{@link #getFont(Event)}</li>
-	 * <li>{@link #getImage(Event)}</li>
-	 * <li>{@link #getText(Event)}</li>
-	 * <li>{@link #getBackgroundImage(Event)}</li>
-	 * </ul>
-	 * 
-	 * @param event
-	 *            the event that triggered the activation of the tooltip
-	 * @param parent
-	 *            the parent of the content area
-	 * @return the content area created
-	 */
-	protected Composite createToolTipContentArea(Event event, Composite parent) {
-		Image image = getImage(event);
-		Image bgImage = getBackgroundImage(event);
-		String text = getText(event);
-		Color fgColor = getForegroundColor(event);
-		Color bgColor = getBackgroundColor(event);
-		Font font = getFont(event);
-
-		CLabel label = new CLabel(parent, getStyle(event));
-		if (text != null) {
-			label.setText(text);
-		}
-
-		if (image != null) {
-			label.setImage(image);
-		}
-
-		if (fgColor != null) {
-			label.setForeground(fgColor);
-		}
-
-		if (bgColor != null) {
-			label.setBackground(bgColor);
-		}
-
-		if (bgImage != null) {
-			label.setBackgroundImage(image);
-		}
-
-		if (font != null) {
-			label.setFont(font);
-		}
-
-		return label;
-	}
-
-	/**
-	 * The style used to create the {@link CLabel} in the default implementation
-	 * 
-	 * @param event
-	 *            the event triggered the popup of the tooltip
-	 * @return the style
-	 */
-	protected int getStyle(Event event) {
-		return style;
-	}
-
-	/**
-	 * The {@link Image} displayed in the {@link CLabel} in the default
-	 * implementation implementation
-	 * 
-	 * @param event
-	 *            the event triggered the popup of the tooltip
-	 * @return the {@link Image} or <code>null</code> if no image should be
-	 *         displayed
-	 */
-	protected Image getImage(Event event) {
-		return image;
-	}
-
-	/**
-	 * The foreground {@link Color} used by {@link CLabel} in the default
-	 * implementation
-	 * 
-	 * @param event
-	 *            the event triggered the popup of the tooltip
-	 * @return the {@link Color} or <code>null</code> if default foreground
-	 *         color should be used
-	 */
-	protected Color getForegroundColor(Event event) {
-		return (foregroundColor == null) ? event.widget.getDisplay()
-				.getSystemColor(SWT.COLOR_INFO_FOREGROUND) : foregroundColor;
-	}
-
-	/**
-	 * The background {@link Color} used by {@link CLabel} in the default
-	 * implementation
-	 * 
-	 * @param event
-	 *            the event triggered the popup of the tooltip
-	 * @return the {@link Color} or <code>null</code> if default background
-	 *         color should be used
-	 */
-	protected Color getBackgroundColor(Event event) {
-		return (backgroundColor == null) ? event.widget.getDisplay()
-				.getSystemColor(SWT.COLOR_INFO_BACKGROUND) : backgroundColor;
-	}
-
-	/**
-	 * The background {@link Image} used by {@link CLabel} in the default
-	 * implementation
-	 * 
-	 * @param event
-	 *            the event triggered the popup of the tooltip
-	 * @return the {@link Image} or <code>null</code> if no image should be
-	 *         displayed in the background
-	 */
-	protected Image getBackgroundImage(Event event) {
-		return backgroundImage;
-	}
-
-	/**
-	 * The {@link Font} used by {@link CLabel} in the default implementation
-	 * 
-	 * @param event
-	 *            the event triggered the popup of the tooltip
-	 * @return the {@link Font} or <code>null</code> if the default font
-	 *         should be used
-	 */
-	protected Font getFont(Event event) {
-		return font;
-	}
-
-	/**
-	 * The text displayed in the {@link CLabel} in the default implementation
-	 * 
-	 * @param event
-	 *            the event triggered the popup of the tooltip
-	 * @return the text or <code>null</code> if no text has to be displayed
-	 */
-	protected String getText(Event event) {
-		return text;
-	}
-
-	/**
-	 * The background {@link Image} used by {@link CLabel} in the default
-	 * implementation
-	 * 
-	 * @param backgroundColor
-	 *            the {@link Color} or <code>null</code> if default background
-	 *            color ({@link SWT#COLOR_INFO_BACKGROUND}) should be used
-	 */
-	public void setBackgroundColor(Color backgroundColor) {
-		this.backgroundColor = backgroundColor;
-	}
-
-	/**
-	 * The background {@link Image} used by {@link CLabel} in the default
-	 * implementation
-	 * 
-	 * @param backgroundImage
-	 *            the {@link Image} or <code>null</code> if no image should be
-	 *            displayed in the background
-	 */
-	public void setBackgroundImage(Image backgroundImage) {
-		this.backgroundImage = backgroundImage;
-	}
-
-	/**
-	 * The {@link Font} used by {@link CLabel} in the default implementation
-	 * 
-	 * @param font
-	 *            the {@link Font} or <code>null</code> if the default font
-	 *            should be used
-	 */
-	public void setFont(Font font) {
-		this.font = font;
-	}
-
-	/**
-	 * The foreground {@link Color} used by {@link CLabel} in the default
-	 * implementation
-	 * 
-	 * @param foregroundColor
-	 *            the {@link Color} or <code>null</code> if default foreground
-	 *            color should be used
-	 */
-	public void setForegroundColor(Color foregroundColor) {
-		this.foregroundColor = foregroundColor;
-	}
-
-	/**
-	 * The {@link Image} displayed in the {@link CLabel} in the default
-	 * implementation implementation
-	 * 
-	 * @param image
-	 *            the {@link Image} or <code>null</code> if no image should be
-	 *            displayed
-	 */
-	public void setImage(Image image) {
-		this.image = image;
-	}
-
-	/**
-	 * The style used to create the {@link CLabel} in the default implementation
-	 * 
-	 * @param style
-	 *            the event triggered the popup of the tooltip
-	 */
-	public void setStyle(int style) {
-		this.style = style;
-	}
-
-	/**
-	 * The text displayed in the {@link CLabel} in the default implementation
-	 * 
-	 * @param text
-	 *            the text or <code>null</code> if no text has to be displayed
-	 */
-	public void setText(String text) {
-		this.text = text;
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/IShellProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/IShellProvider.java
deleted file mode 100644
index 23eb9a8..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/IShellProvider.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.jface.window;
-
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Interface for objects that can return a shell. This is normally used for 
- * opening child windows. An object that wants to open child shells can take 
- * an IShellProvider in its constructor, and the object that implements IShellProvider
- * can dynamically choose where child shells should be opened.  
- * 
- * @since 3.1
- */
-public interface IShellProvider {
-    /**
-     * Returns the current shell (or null if none). This return value may
-     * change over time, and should not be cached.
-     * 
-     * @return the current shell or null if none
-     */
-    Shell getShell();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/SameShellProvider.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/SameShellProvider.java
deleted file mode 100644
index 1ed0e8d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/SameShellProvider.java
+++ /dev/null
@@ -1,49 +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.jface.window;
-
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Standard shell provider that always returns the shell containing the given
- * control. This will always return the correct shell for the control, even if
- * the control is reparented.
- * 
- * @since 3.1
- */
-public class SameShellProvider implements IShellProvider {
-
-    private Control targetControl;
-    
-    /**
-     * Returns a shell provider that always returns the current
-     * shell for the given control.
-     * 
-     * @param targetControl control whose shell will be tracked, or null if getShell() should always
-     * return null
-     */
-    public SameShellProvider(Control targetControl) {
-        this.targetControl = targetControl;
-    }
-    
-    /* (non-javadoc)
-     * @see IShellProvider#getShell()
-     */
-    public Shell getShell() {
-        if (targetControl instanceof Shell) {
-            return (Shell)targetControl;
-        }
-        
-        return targetControl == null? null :targetControl.getShell();
-    }
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/ToolTip.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/ToolTip.java
deleted file mode 100644
index 672f77d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/ToolTip.java
+++ /dev/null
@@ -1,731 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation
- *                                                 bugfix in: 195137, 198089, 225190
- *******************************************************************************/
-
-package org.eclipse.jface.window;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-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.Listener;
-import org.eclipse.swt.widgets.Monitor;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * This class gives implementors to provide customized tooltips for any control.
- * 
- * @since 3.3
- */
-public abstract class ToolTip {
-	private Control control;
-
-	private int xShift = 3;
-
-	private int yShift = 0;
-
-	private int popupDelay = 0;
-
-	private int hideDelay = 0;
-
-	private ToolTipOwnerControlListener listener;
-
-	private HashMap data;
-
-	// Ensure that only one tooltip is active in time
-	private static Shell CURRENT_TOOLTIP;
-
-	/**
-	 * Recreate the tooltip on every mouse move
-	 */
-	public static final int RECREATE = 1;
-
-	/**
-	 * Don't recreate the tooltip as long the mouse doesn't leave the area
-	 * triggering the tooltip creation
-	 */
-	public static final int NO_RECREATE = 1 << 1;
-
-	private TooltipHideListener hideListener = new TooltipHideListener();
-
-	private Listener shellListener;
-
-	private boolean hideOnMouseDown = true;
-
-	private boolean respectDisplayBounds = true;
-
-	private boolean respectMonitorBounds = true;
-
-	private int style;
-
-	private Object currentArea;
-
-	private static final boolean IS_OSX = Util.isCarbon();
-
-	/**
-	 * Create new instance which add TooltipSupport to the widget
-	 * 
-	 * @param control
-	 *            the control on whose action the tooltip is shown
-	 */
-	public ToolTip(Control control) {
-		this(control, RECREATE, false);
-	}
-
-	/**
-	 * @param control
-	 *            the control to which the tooltip is bound
-	 * @param style
-	 *            style passed to control tooltip behavior
-	 * 
-	 * @param manualActivation
-	 *            <code>true</code> if the activation is done manually using
-	 *            {@link #show(Point)}
-	 * @see #RECREATE
-	 * @see #NO_RECREATE
-	 */
-	public ToolTip(Control control, int style, boolean manualActivation) {
-		this.control = control;
-		this.style = style;
-		this.control.addDisposeListener(new DisposeListener() {
-
-			public void widgetDisposed(DisposeEvent e) {
-				data = null;
-				deactivate();
-			}
-
-		});
-
-		this.listener = new ToolTipOwnerControlListener();
-		this.shellListener = new Listener() {
-			public void handleEvent(final Event event) {
-				if (ToolTip.this.control != null
-						&& !ToolTip.this.control.isDisposed()) {
-					ToolTip.this.control.getDisplay().asyncExec(new Runnable() {
-
-						public void run() {
-							// Check if the new active shell is the tooltip
-							// itself
-							if (ToolTip.this.control.getDisplay()
-									.getActiveShell() != CURRENT_TOOLTIP) {
-								toolTipHide(CURRENT_TOOLTIP, event);
-							}
-						}
-
-					});
-				}
-			}
-		};
-
-		if (!manualActivation) {
-			activate();
-		}
-	}
-
-	/**
-	 * Restore arbitrary data under the given key
-	 * 
-	 * @param key
-	 *            the key
-	 * @param value
-	 *            the value
-	 */
-	public void setData(String key, Object value) {
-		if (data == null) {
-			data = new HashMap();
-		}
-		data.put(key, value);
-	}
-
-	/**
-	 * Get the data restored under the key
-	 * 
-	 * @param key
-	 *            the key
-	 * @return data or <code>null</code> if no entry is restored under the key
-	 */
-	public Object getData(String key) {
-		if (data != null) {
-			return data.get(key);
-		}
-		return null;
-	}
-
-	/**
-	 * Set the shift (from the mouse position triggered the event) used to
-	 * display the tooltip.
-	 * <p>
-	 * By default the tooltip is shifted 3 pixels to the right.
-	 * </p>
-	 * 
-	 * @param p
-	 *            the new shift
-	 */
-	public void setShift(Point p) {
-		xShift = p.x;
-		yShift = p.y;
-	}
-
-	/**
-	 * Activate tooltip support for this control
-	 */
-	public void activate() {
-		deactivate();
-		control.addListener(SWT.Dispose, listener);
-		control.addListener(SWT.MouseHover, listener);
-		control.addListener(SWT.MouseMove, listener);
-		control.addListener(SWT.MouseExit, listener);
-		control.addListener(SWT.MouseDown, listener);
-		control.addListener(SWT.MouseWheel, listener);
-	}
-
-	/**
-	 * Deactivate tooltip support for the underlying control
-	 */
-	public void deactivate() {
-		control.removeListener(SWT.Dispose, listener);
-		control.removeListener(SWT.MouseHover, listener);
-		control.removeListener(SWT.MouseMove, listener);
-		control.removeListener(SWT.MouseExit, listener);
-		control.removeListener(SWT.MouseDown, listener);
-		control.removeListener(SWT.MouseWheel, listener);
-	}
-
-	/**
-	 * Return whether the tooltip respects bounds of the display.
-	 * 
-	 * @return <code>true</code> if the tooltip respects bounds of the display
-	 */
-	public boolean isRespectDisplayBounds() {
-		return respectDisplayBounds;
-	}
-
-	/**
-	 * Set to <code>false</code> if display bounds should not be respected or
-	 * to <code>true</code> if the tooltip is should repositioned to not
-	 * overlap the display bounds.
-	 * <p>
-	 * Default is <code>true</code>
-	 * </p>
-	 * 
-	 * @param respectDisplayBounds
-	 */
-	public void setRespectDisplayBounds(boolean respectDisplayBounds) {
-		this.respectDisplayBounds = respectDisplayBounds;
-	}
-
-	/**
-	 * Return whether the tooltip respects bounds of the monitor.
-	 * 
-	 * @return <code>true</code> if tooltip respects the bounds of the monitor
-	 */
-	public boolean isRespectMonitorBounds() {
-		return respectMonitorBounds;
-	}
-
-	/**
-	 * Set to <code>false</code> if monitor bounds should not be respected or
-	 * to <code>true</code> if the tooltip is should repositioned to not
-	 * overlap the monitors bounds. The monitor the tooltip belongs to is the
-	 * same is control's monitor the tooltip is shown for.
-	 * <p>
-	 * Default is <code>true</code>
-	 * </p>
-	 * 
-	 * @param respectMonitorBounds
-	 */
-	public void setRespectMonitorBounds(boolean respectMonitorBounds) {
-		this.respectMonitorBounds = respectMonitorBounds;
-	}
-
-	/**
-	 * Should the tooltip displayed because of the given event.
-	 * <p>
-	 * <b>Subclasses may overwrite this to get custom behavior</b>
-	 * </p>
-	 * 
-	 * @param event
-	 *            the event
-	 * @return <code>true</code> if tooltip should be displayed
-	 */
-	protected boolean shouldCreateToolTip(Event event) {
-		if ((style & NO_RECREATE) != 0) {
-			Object tmp = getToolTipArea(event);
-
-			// No new area close the current tooltip
-			if (tmp == null) {
-				hide();
-				return false;
-			}
-
-			boolean rv = !tmp.equals(currentArea);
-			return rv;
-		}
-
-		return true;
-	}
-
-	/**
-	 * This method is called before the tooltip is hidden
-	 * 
-	 * @param event
-	 *            the event trying to hide the tooltip
-	 * @return <code>true</code> if the tooltip should be hidden
-	 */
-	private boolean shouldHideToolTip(Event event) {
-		if (event != null && event.type == SWT.MouseMove
-				&& (style & NO_RECREATE) != 0) {
-			Object tmp = getToolTipArea(event);
-
-			// No new area close the current tooltip
-			if (tmp == null) {
-				hide();
-				return false;
-			}
-
-			boolean rv = !tmp.equals(currentArea);
-			return rv;
-		}
-
-		return true;
-	}
-
-	/**
-	 * This method is called to check for which area the tooltip is
-	 * created/hidden for. In case of {@link #NO_RECREATE} this is used to
-	 * decide if the tooltip is hidden recreated.
-	 * 
-	 * <code>By the default it is the widget the tooltip is created for but could be any object. To decide if
-	 * the area changed the {@link Object#equals(Object)} method is used.</code>
-	 * 
-	 * @param event
-	 *            the event
-	 * @return the area responsible for the tooltip creation or
-	 *         <code>null</code> this could be any object describing the area
-	 *         (e.g. the {@link Control} onto which the tooltip is bound to, a
-	 *         part of this area e.g. for {@link ColumnViewer} this could be a
-	 *         {@link ViewerCell})
-	 */
-	protected Object getToolTipArea(Event event) {
-		return control;
-	}
-
-	/**
-	 * Start up the tooltip programmatically
-	 * 
-	 * @param location
-	 *            the location relative to the control the tooltip is shown
-	 */
-	public void show(Point location) {
-		Event event = new Event();
-		event.x = location.x;
-		event.y = location.y;
-		event.widget = control;
-		toolTipCreate(event);
-	}
-
-	private Shell toolTipCreate(final Event event) {
-		if (shouldCreateToolTip(event)) {
-			Shell shell = new Shell(control.getShell(), SWT.ON_TOP | SWT.TOOL
-					| SWT.NO_FOCUS);
-			shell.setLayout(new FillLayout());
-
-			toolTipOpen(shell, event);
-
-			return shell;
-		}
-
-		return null;
-	}
-
-	private void toolTipShow(Shell tip, Event event) {
-		if (!tip.isDisposed()) {
-			currentArea = getToolTipArea(event);
-			createToolTipContentArea(event, tip);
-			if (isHideOnMouseDown()) {
-				toolTipHookBothRecursively(tip);
-			} else {
-				toolTipHookByTypeRecursively(tip, true, SWT.MouseExit);
-			}
-
-			tip.pack();
-			Point size = tip.getSize();
-			Point location = fixupDisplayBounds(size, getLocation(size, event));
-
-			// Need to adjust a bit more if the mouse cursor.y == tip.y and
-			// the cursor.x is inside the tip
-			Point cursorLocation = tip.getDisplay().getCursorLocation();
-
-			if (cursorLocation.y == location.y && location.x < cursorLocation.x
-					&& location.x + size.x > cursorLocation.x) {
-				location.y -= 2;
-			}
-
-			tip.setLocation(location);
-			tip.setVisible(true);
-		}
-	}
-
-	private Point fixupDisplayBounds(Point tipSize, Point location) {
-		if (respectDisplayBounds || respectMonitorBounds) {
-			Rectangle bounds;
-			Point rightBounds = new Point(tipSize.x + location.x, tipSize.y
-					+ location.y);
-
-			Monitor[] ms = control.getDisplay().getMonitors();
-
-			if (respectMonitorBounds && ms.length > 1) {
-				// By default present in the monitor of the control
-				bounds = control.getMonitor().getBounds();
-				Point p = new Point(location.x, location.y);
-
-				// Search on which monitor the event occurred
-				Rectangle tmp;
-				for (int i = 0; i < ms.length; i++) {
-					tmp = ms[i].getBounds();
-					if (tmp.contains(p)) {
-						bounds = tmp;
-						break;
-					}
-				}
-
-			} else {
-				bounds = control.getDisplay().getBounds();
-			}
-
-			if (!(bounds.contains(location) && bounds.contains(rightBounds))) {
-				if (rightBounds.x > bounds.x + bounds.width) {
-					location.x -= rightBounds.x - (bounds.x + bounds.width);
-				}
-
-				if (rightBounds.y > bounds.y + bounds.height) {
-					location.y -= rightBounds.y - (bounds.y + bounds.height);
-				}
-
-				if (location.x < bounds.x) {
-					location.x = bounds.x;
-				}
-
-				if (location.y < bounds.y) {
-					location.y = bounds.y;
-				}
-			}
-		}
-
-		return location;
-	}
-
-	/**
-	 * Get the display relative location where the tooltip is displayed.
-	 * Subclasses may overwrite to implement custom positioning.
-	 * 
-	 * @param tipSize
-	 *            the size of the tooltip to be shown
-	 * @param event
-	 *            the event triggered showing the tooltip
-	 * @return the absolute position on the display
-	 */
-	public Point getLocation(Point tipSize, Event event) {
-		return control.toDisplay(event.x + xShift, event.y + yShift);
-	}
-
-	private void toolTipHide(Shell tip, Event event) {
-		if (tip != null && !tip.isDisposed() && shouldHideToolTip(event)) {
-			control.getShell().removeListener(SWT.Deactivate, shellListener);
-			currentArea = null;
-			passOnEvent(tip, event);
-			tip.dispose();
-			CURRENT_TOOLTIP = null;
-			afterHideToolTip(event);
-		}
-	}
-
-	private void passOnEvent(Shell tip, Event event) {
-		if (control != null && !control.isDisposed() && event != null
-				&& event.widget != control && event.type == SWT.MouseDown) {
-			final Display display = control.getDisplay();
-			Point newPt = display.map(tip, null, new Point(event.x, event.y));
-
-			final Event newEvent = new Event();
-			newEvent.button = event.button;
-			newEvent.character = event.character;
-			newEvent.count = event.count;
-			newEvent.data = event.data;
-			newEvent.detail = event.detail;
-			newEvent.display = event.display;
-			newEvent.doit = event.doit;
-			newEvent.end = event.end;
-			newEvent.gc = event.gc;
-			newEvent.height = event.height;
-			newEvent.index = event.index;
-			newEvent.item = event.item;
-			newEvent.keyCode = event.keyCode;
-			newEvent.start = event.start;
-			newEvent.stateMask = event.stateMask;
-			newEvent.text = event.text;
-			newEvent.time = event.time;
-			newEvent.type = event.type;
-			newEvent.widget = event.widget;
-			newEvent.width = event.width;
-			newEvent.x = newPt.x;
-			newEvent.y = newPt.y;
-
-			tip.close();
-			display.asyncExec(new Runnable() {
-				public void run() {
-					if (IS_OSX) {
-						try {
-							Thread.sleep(300);
-						} catch (InterruptedException e) {
-
-						}
-
-						display.post(newEvent);
-						newEvent.type = SWT.MouseUp;
-						display.post(newEvent);
-					} else {
-						display.post(newEvent);
-					}
-				}
-			});
-		}
-	}
-
-	private void toolTipOpen(final Shell shell, final Event event) {
-		// Ensure that only one Tooltip is shown in time
-		if (CURRENT_TOOLTIP != null) {
-			toolTipHide(CURRENT_TOOLTIP, null);
-		}
-
-		CURRENT_TOOLTIP = shell;
-
-		control.getShell().addListener(SWT.Deactivate, shellListener);
-
-		if (popupDelay > 0) {
-			control.getDisplay().timerExec(popupDelay, new Runnable() {
-				public void run() {
-					toolTipShow(shell, event);
-				}
-			});
-		} else {
-			toolTipShow(CURRENT_TOOLTIP, event);
-		}
-
-		if (hideDelay > 0) {
-			control.getDisplay().timerExec(popupDelay + hideDelay,
-					new Runnable() {
-
-						public void run() {
-							toolTipHide(shell, null);
-						}
-					});
-		}
-	}
-
-	private void toolTipHookByTypeRecursively(Control c, boolean add, int type) {
-		if (add) {
-			c.addListener(type, hideListener);
-		} else {
-			c.removeListener(type, hideListener);
-		}
-
-		if (c instanceof Composite) {
-			Control[] children = ((Composite) c).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				toolTipHookByTypeRecursively(children[i], add, type);
-			}
-		}
-	}
-
-	private void toolTipHookBothRecursively(Control c) {
-		c.addListener(SWT.MouseDown, hideListener);
-		c.addListener(SWT.MouseExit, hideListener);
-
-		if (c instanceof Composite) {
-			Control[] children = ((Composite) c).getChildren();
-			for (int i = 0; i < children.length; i++) {
-				toolTipHookBothRecursively(children[i]);
-			}
-		}
-	}
-
-	/**
-	 * Creates the content area of the the tooltip.
-	 * 
-	 * @param event
-	 *            the event that triggered the activation of the tooltip
-	 * @param parent
-	 *            the parent of the content area
-	 * @return the content area created
-	 */
-	protected abstract Composite createToolTipContentArea(Event event,
-			Composite parent);
-
-	/**
-	 * This method is called after a tooltip is hidden.
-	 * <p>
-	 * <b>Subclasses may override to clean up requested system resources</b>
-	 * </p>
-	 * 
-	 * @param event
-	 *            event triggered the hiding action (may be <code>null</code>
-	 *            if event wasn't triggered by user actions directly)
-	 */
-	protected void afterHideToolTip(Event event) {
-
-	}
-
-	/**
-	 * Set the hide delay.
-	 * 
-	 * @param hideDelay
-	 *            the delay before the tooltip is hidden. If <code>0</code>
-	 *            the tooltip is shown until user moves to other item
-	 */
-	public void setHideDelay(int hideDelay) {
-		this.hideDelay = hideDelay;
-	}
-
-	/**
-	 * Set the popup delay.
-	 * 
-	 * @param popupDelay
-	 *            the delay before the tooltip is shown to the user. If
-	 *            <code>0</code> the tooltip is shown immediately
-	 */
-	public void setPopupDelay(int popupDelay) {
-		this.popupDelay = popupDelay;
-	}
-
-	/**
-	 * Return if hiding on mouse down is set.
-	 * 
-	 * @return <code>true</code> if hiding on mouse down in the tool tip is on
-	 */
-	public boolean isHideOnMouseDown() {
-		return hideOnMouseDown;
-	}
-
-	/**
-	 * If you don't want the tool tip to be hidden when the user clicks inside
-	 * the tool tip set this to <code>false</code>. You maybe also need to
-	 * hide the tool tip yourself depending on what you do after clicking in the
-	 * tooltip (e.g. if you open a new {@link Shell})
-	 * 
-	 * @param hideOnMouseDown
-	 *            flag to indicate of tooltip is hidden automatically on mouse
-	 *            down inside the tool tip
-	 */
-	public void setHideOnMouseDown(final boolean hideOnMouseDown) {
-		// Only needed if there's currently a tooltip active
-		if (CURRENT_TOOLTIP != null && !CURRENT_TOOLTIP.isDisposed()) {
-			// Only change if value really changed
-			if (hideOnMouseDown != this.hideOnMouseDown) {
-				control.getDisplay().syncExec(new Runnable() {
-
-					public void run() {
-						if (CURRENT_TOOLTIP != null
-								&& CURRENT_TOOLTIP.isDisposed()) {
-							toolTipHookByTypeRecursively(CURRENT_TOOLTIP,
-									hideOnMouseDown, SWT.MouseDown);
-						}
-					}
-
-				});
-			}
-		}
-
-		this.hideOnMouseDown = hideOnMouseDown;
-	}
-
-	/**
-	 * Hide the currently active tool tip
-	 */
-	public void hide() {
-		toolTipHide(CURRENT_TOOLTIP, null);
-	}
-
-	private class ToolTipOwnerControlListener implements Listener {
-		public void handleEvent(Event event) {
-			switch (event.type) {
-			case SWT.Dispose:
-			case SWT.KeyDown:
-			case SWT.MouseDown:
-			case SWT.MouseMove:
-			case SWT.MouseWheel:
-				toolTipHide(CURRENT_TOOLTIP, event);
-				break;
-			case SWT.MouseHover:
-				toolTipCreate(event);
-				break;
-			case SWT.MouseExit:
-				/*
-				 * Check if the mouse exit happened because we move over the
-				 * tooltip
-				 */
-				if (CURRENT_TOOLTIP != null && !CURRENT_TOOLTIP.isDisposed()) {
-					if (CURRENT_TOOLTIP.getBounds().contains(
-							control.toDisplay(event.x, event.y))) {
-						break;
-					}
-				}
-
-				toolTipHide(CURRENT_TOOLTIP, event);
-				break;
-			}
-		}
-	}
-
-	private class TooltipHideListener implements Listener {
-		public void handleEvent(Event event) {
-			if (event.widget instanceof Control) {
-
-				Control c = (Control) event.widget;
-				Shell shell = c.getShell();
-
-				switch (event.type) {
-				case SWT.MouseDown:
-					if (isHideOnMouseDown()) {
-						toolTipHide(shell, event);
-					}
-					break;
-				case SWT.MouseExit:
-					/*
-					 * Give some insets to ensure we get exit informations from
-					 * a wider area ;-)
-					 */
-					Rectangle rect = shell.getBounds();
-					rect.x += 5;
-					rect.y += 5;
-					rect.width -= 10;
-					rect.height -= 10;
-
-					if (!rect.contains(c.getDisplay().getCursorLocation())) {
-						toolTipHide(shell, event);
-					}
-
-					break;
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/Window.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/Window.java
deleted file mode 100644
index ca01913..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/Window.java
+++ /dev/null
@@ -1,1081 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.window;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.events.ShellListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Monitor;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A JFace window is an object that has no visual representation (no widgets)
- * until it is told to open.
- * <p>
- * Creating a window involves the following steps:
- * <ul>
- * <li>creating an instance of a concrete subclass of <code>Window</code>
- * </li>
- * <li>creating the window's shell and widget tree by calling
- * <code>create</code> (optional)</li>
- * <li>assigning the window to a window manager using
- * <code>WindowManager.add</code> (optional)</li>
- * <li>opening the window by calling <code>open</code></li>
- * </ul>
- * Opening the window will create its shell and widget tree if they have not
- * already been created. When the window is closed, the shell and widget tree
- * are disposed of and are no longer referenced, and the window is automatically
- * removed from its window manager. A window may be reopened.
- * </p>
- * <p>
- * The JFace window framework (this package) consists of this class,
- * <code>Window</code>, the abstract base of all windows, and one concrete
- * window classes (<code>ApplicationWindow</code>) which may also be
- * subclassed. Clients may define additional window subclasses as required.
- * </p>
- * <p>
- * The <code>Window</code> class provides methods that subclasses may 
- * override to configure the window, including:
- * <ul>
- * <li><code>close</code>- extend to free other SWT resources</li>
- * <li><code>configureShell</code>- extend or reimplement to set shell
- * properties before window opens</li>
- * <li><code>createContents</code>- extend or reimplement to create controls
- * before window opens</li>
- * <li><code>getInitialSize</code>- reimplement to give the initial size for
- * the shell</li>
- * <li><code>getInitialLocation</code>- reimplement to give the initial
- * location for the shell</li>
- * <li><code>getShellListener</code>- extend or reimplement to receive shell
- * events</li>
- * <li><code>handleFontChange</code>- reimplement to respond to font changes
- * </li>
- * <li><code>handleShellCloseEvent</code>- extend or reimplement to handle
- * shell closings</li>
- * </ul>
- * </p>
- */
-public abstract class Window implements IShellProvider {
-
-	/**
-	 * Standard return code constant (value 0) indicating that the window was
-	 * opened.
-	 * 
-	 * @see #open
-	 */
-	public static final int OK = 0;
-
-	/**
-	 * Standard return code constant (value 1) indicating that the window was
-	 * canceled.
-	 * 
-	 * @see #open
-	 */
-	public static final int CANCEL = 1;
-
-	/**
-	 * An array of images to be used for the window. It is expected that the
-	 * array will contain the same icon rendered at different resolutions.
-	 */
-	private static Image[] defaultImages;
-
-	/**
-	 * This interface defines a Exception Handler which can be set as a global
-	 * handler and will be called if an exception happens in the event loop.
-	 */
-	public static interface IExceptionHandler {
-		/**
-		 * Handle the exception.
-		 * 
-		 * @param t
-		 *            The exception that occured.
-		 */
-		public void handleException(Throwable t);
-	}
-
-	/**
-	 * Defines a default exception handler.
-	 */
-	private static class DefaultExceptionHandler implements IExceptionHandler {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.window.Window.IExceptionHandler#handleException(java.lang.Throwable)
-		 */
-		public void handleException(Throwable t) {
-			if (t instanceof ThreadDeath) {
-				// Don't catch ThreadDeath as this is a normal occurrence when
-				// the thread dies
-				throw (ThreadDeath) t;
-			}
-			// Try to keep running.
-			t.printStackTrace();
-		}
-	}
-
-	/**
-	 * The exception handler for this application.
-	 */
-	private static IExceptionHandler exceptionHandler = new DefaultExceptionHandler();
-	
-	/**
-	 * The default orientation of the window. By default
-	 * it is SWT#NONE but it can also be SWT#LEFT_TO_RIGHT
-	 * or SWT#RIGHT_TO_LEFT
-	 */
-	private static int orientation = SWT.NONE;
-
-    /**
-     * Object used to locate the default parent for modal shells
-     */
-    private static IShellProvider defaultModalParent = new IShellProvider() {
-        public Shell getShell() {
-            Display d = Display.getCurrent();
-            
-            if (d == null) {
-                return null;
-            }
-
-            Shell parent = d.getActiveShell();
-            
-            // Make sure we don't pick a parent that has a modal child (this can lock the app)
-            if (parent == null) {
-                // If this is a top-level window, then there must not be any open modal windows.
-                parent = getModalChild(Display.getCurrent().getShells());
-            } else {
-                // If we picked a parent with a modal child, use the modal child instead
-                Shell modalChild = getModalChild(parent.getShells());
-                if (modalChild != null) {
-                    parent = modalChild;
-                }
-            }
-            
-            return parent;
-        }
-    };
-    
-	/**
-	 * Object that returns the parent shell.
-	 */
-	private IShellProvider parentShell;
-
-	/**
-	 * Shell style bits.
-	 * 
-	 * @see #setShellStyle
-	 */
-	private int shellStyle = SWT.SHELL_TRIM;
-
-	/**
-	 * Window manager, or <code>null</code> if none.
-	 * 
-	 * @see #setWindowManager
-	 */
-	private WindowManager windowManager;
-
-	/**
-	 * Window shell, or <code>null</code> if none.
-	 */
-	private Shell shell;
-
-	/**
-	 * Top level SWT control, or <code>null</code> if none
-	 */
-	private Control contents;
-
-	/**
-	 * Window return code; initially <code>OK</code>.
-	 * 
-	 * @see #setReturnCode
-	 */
-	private int returnCode = OK;
-
-	/**
-	 * <code>true</code> if the <code>open</code> method should not return
-	 * until the window closes, and <code>false</code> if the
-	 * <code>open</code> method should return immediately; initially
-	 * <code>false</code> (non-blocking).
-	 * 
-	 * @see #setBlockOnOpen
-	 */
-	private boolean block = false;
-
-	/**
-	 * Internal class for informing this window when fonts change.
-	 */
-	private class FontChangeListener implements IPropertyChangeListener {
-		public void propertyChange(PropertyChangeEvent event) {
-			handleFontChange(event);
-		}
-	}
-
-	/**
-	 * Internal font change listener.
-	 */
-	private FontChangeListener fontChangeListener;
-
-	/**
-	 * Internal fields to detect if shell size has been set
-	 */
-	private boolean resizeHasOccurred = false;
-
-	private Listener resizeListener;
- 
-	/**
-	 * Creates a window instance, whose shell will be created under the given
-	 * parent shell. Note that the window will have no visual representation
-	 * until it is told to open. By default, <code>open</code> does not block.
-	 * 
-	 * @param parentShell
-	 *            the parent shell, or <code>null</code> to create a top-level
-	 *            shell. Try passing "(Shell)null" to this method instead of "null"
-     *            if your compiler complains about an ambiguity error.
-	 * @see #setBlockOnOpen
-	 * @see #getDefaultOrientation()
-	 */
-	protected Window(Shell parentShell) {
-        this(new SameShellProvider(parentShell));
-        
-        if(parentShell == null) {
-			setShellStyle(getShellStyle() | getDefaultOrientation());
-		}
-	}
-    
-    /**
-     * Creates a new window which will create its shell as a child of whatever
-     * the given shellProvider returns.
-     * 
-     * @param shellProvider object that will return the current parent shell. Not null.
-     * 
-     * @since 3.1
-     */
-    protected Window(IShellProvider shellProvider) {
-        Assert.isNotNull(shellProvider);
-        this.parentShell = shellProvider;   
-    }
-
-	/**
-	 * Determines if the window should handle the close event or do nothing.
-	 * <p>
-	 * The default implementation of this framework method returns
-	 * <code>true</code>, which will allow the
-	 * <code>handleShellCloseEvent</code> method to be called. Subclasses may
-	 * extend or reimplement.
-	 * </p>
-	 * 
-	 * @return whether the window should handle the close event.
-	 */
-	protected boolean canHandleShellCloseEvent() {
-		return true;
-	}
-
-	/**
-	 * Closes this window, disposes its shell, and removes this window from its
-	 * window manager (if it has one).
-	 * <p>
-	 * This framework method may be extended (<code>super.close</code> must
-	 * be called).
-	 * </p>
-	 * <p>
-	 *  Note that in order to prevent recursive calls to this method 
-	 *  it does not call <code>Shell#close()</code>. As a result <code>ShellListener</code>s 
-	 *  will not receive a <code>shellClosed</code> event.
-	 *  </p>
-	 * 
-	 * @return <code>true</code> if the window is (or was already) closed, and
-	 *         <code>false</code> if it is still open
-	 */
-	public boolean close() {
-		
-		// stop listening for font changes
-		if (fontChangeListener != null) {
-			JFaceResources.getFontRegistry().removeListener(fontChangeListener);
-			fontChangeListener = null;
-		}
-		
-		// remove this window from a window manager if it has one
-		if (windowManager != null) {
-			windowManager.remove(this);
-			windowManager = null;
-		}
-
-		if (shell == null || shell.isDisposed()) {
-			return true;
-		}
-
-		// If we "close" the shell recursion will occur.
-		// Instead, we need to "dispose" the shell to remove it from the
-		// display.
-		shell.dispose();
-		shell = null;
-		contents = null;
-
-		return true;
-	}
-
-	/**
-	 * Configures the given shell in preparation for opening this window in it.
-	 * <p>
-	 * The default implementation of this framework method sets the shell's
-	 * image and gives it a grid layout. Subclasses may extend or reimplement.
-	 * </p>
-	 * 
-	 * @param newShell
-	 *            the shell
-	 */
-	protected void configureShell(Shell newShell) {
-
-		// The single image version of this code had a comment related to bug
-		// 46624,
-		// and some code that did nothing if the stored image was already
-		// disposed.
-		// The equivalent in the multi-image version seems to be to remove the
-		// disposed images from the array passed to the shell.
-		if (defaultImages != null && defaultImages.length > 0) {
-			ArrayList nonDisposedImages = new ArrayList(defaultImages.length);
-			for (int i = 0; i < defaultImages.length; ++i) {
-				if (defaultImages[i] != null && !defaultImages[i].isDisposed()) {
-					nonDisposedImages.add(defaultImages[i]);
-				}
-			}
-
-			if (nonDisposedImages.size() <= 0) {
-				System.err.println("Window.configureShell: images disposed"); //$NON-NLS-1$
-			} else {
-				Image[] array = new Image[nonDisposedImages.size()];
-				nonDisposedImages.toArray(array);
-				newShell.setImages(array);
-			}
-		}
-
-		Layout layout = getLayout();
-		if (layout != null) {
-			newShell.setLayout(layout);
-		}
-	}
-
-	/**
-	 * Creates the layout for the shell. The layout created here will be
-	 * attached to the composite passed into createContents. The default
-	 * implementation returns a GridLayout with no margins. Subclasses that
-	 * change the layout type by overriding this method should also override
-	 * createContents.
-	 * 
-	 * <p>
-	 * A return value of null indicates that no layout should be attached to the
-	 * composite. In this case, the layout may be attached within
-	 * createContents.
-	 * </p>
-	 * 
-	 * @return a newly created Layout or null if no layout should be attached.
-	 * @since 3.0
-	 */
-	protected Layout getLayout() {
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		return layout;
-	}
-
-	/**
-	 * Constrain the shell size to be no larger than the display bounds.
-	 * 
-	 * @since 2.0
-	 */
-	protected void constrainShellSize() {
-		// limit the shell size to the display size
-		Rectangle bounds = shell.getBounds();
-		Rectangle constrained = getConstrainedShellBounds(bounds);
-		if (!bounds.equals(constrained)) {
-			shell.setBounds(constrained);
-		}
-	}
-
-	/**
-	 * Creates this window's widgetry in a new top-level shell.
-	 * <p>
-	 * The default implementation of this framework method creates this window's
-	 * shell (by calling <code>createShell</code>), and its controls (by
-	 * calling <code>createContents</code>), then initializes this window's
-	 * shell bounds (by calling <code>initializeBounds</code>).
-	 * </p>
-	 */
-	public void create() {
-		shell = createShell();
-		contents = createContents(shell);
-
-		//initialize the bounds of the shell to that appropriate for the
-		// contents
-		initializeBounds();
-	}
-
-	/**
-	 * Creates and returns this window's contents. Subclasses may attach any
-	 * number of children to the parent. As a convenience, the return value of
-	 * this method will be remembered and returned by subsequent calls to
-	 * getContents(). Subclasses may modify the parent's layout if they overload
-	 * getLayout() to return null.
-	 * 
-	 * <p>
-	 * It is common practise to create and return a single composite that
-	 * contains the entire window contents.
-	 * </p>
-	 * 
-	 * <p>
-	 * The default implementation of this framework method creates an instance
-	 * of <code>Composite</code>. Subclasses may override.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the parent composite for the controls in this window. The type
-	 *            of layout used is determined by getLayout()
-	 * 
-	 * @return the control that will be returned by subsequent calls to
-	 *         getContents()
-	 */
-	protected Control createContents(Composite parent) {
-		// by default, just create a composite
-		return new Composite(parent, SWT.NONE);
-	}
-
-	/**
-	 * Creates and returns this window's shell.
-	 * <p>
-	 * This method creates a new shell and configures
-	 * it using <code>configureShell</code>. Subclasses
-	 * should  override <code>configureShell</code> if the
-	 * shell needs to be customized.
-	 * </p>
-	 * 
-	 * @return the shell
-	 */
-	protected final Shell createShell() {
-
-		Shell newParent = getParentShell();
-		if(newParent != null &&  newParent.isDisposed()){
-			parentShell = new SameShellProvider(null);
-			newParent = getParentShell();//Find a better parent
-		}
-		
-		//Create the shell
-		Shell newShell = new Shell(newParent, getShellStyle());
-
-		resizeListener = new Listener() {
-			public void handleEvent(Event e) {
-				resizeHasOccurred = true;
-			}
-		};
-
-		newShell.addListener(SWT.Resize, resizeListener);
-		newShell.setData(this);
-
-		//Add a listener
-		newShell.addShellListener(getShellListener());
-
-		//Set the layout
-		configureShell(newShell);
-
-		//Register for font changes
-		if (fontChangeListener == null) {
-			fontChangeListener = new FontChangeListener();
-		}
-		JFaceResources.getFontRegistry().addListener(fontChangeListener);
-
-		return newShell;
-	}
-
-	/**
-	 * Returns the top level control for this window. The parent of this control
-	 * is the shell.
-	 * 
-	 * @return the top level control, or <code>null</code> if this window's
-	 *         control has not been created yet
-	 */
-	protected Control getContents() {
-		return contents;
-	}
-
-	/**
-	 * Returns the default image. This is the image that will be used for
-	 * windows that have no shell image at the time they are opened. There is no
-	 * default image unless one is installed via <code>setDefaultImage</code>.
-	 * 
-	 * @return the default image, or <code>null</code> if none
-	 * @see #setDefaultImage
-	 */
-	public static Image getDefaultImage() {
-		return (defaultImages == null || defaultImages.length < 1) ? null
-				: defaultImages[0];
-	}
-
-	/**
-	 * Returns the array of default images to use for newly opened windows. It
-	 * is expected that the array will contain the same icon rendered at
-	 * different resolutions.
-	 * 
-	 * @see org.eclipse.swt.widgets.Decorations#setImages(org.eclipse.swt.graphics.Image[])
-	 * 
-	 * @return the array of images to be used when a new window is opened
-	 * @see #setDefaultImages
-	 * @since 3.0
-	 */
-	public static Image[] getDefaultImages() {
-		return (defaultImages == null ? new Image[0] : defaultImages);
-	}
-
-	/**
-	 * Returns the initial location to use for the shell. The default
-	 * implementation centers the shell horizontally (1/2 of the difference to
-	 * the left and 1/2 to the right) and vertically (1/3 above and 2/3 below)
-	 * relative to the parent shell, or display bounds if there is no parent
-	 * shell.
-	 * 
-	 * @param initialSize
-	 *            the initial size of the shell, as returned by
-	 *            <code>getInitialSize</code>.
-	 * @return the initial location of the shell
-	 */
-	protected Point getInitialLocation(Point initialSize) {
-		Composite parent = shell.getParent();
-
-		Monitor monitor = shell.getDisplay().getPrimaryMonitor();
-		if (parent != null) {
-			monitor = parent.getMonitor();
-		}
-
-		Rectangle monitorBounds = monitor.getClientArea();
-		Point centerPoint;
-		if (parent != null) {
-			centerPoint = Geometry.centerPoint(parent.getBounds());
-		} else {
-			centerPoint = Geometry.centerPoint(monitorBounds);
-		}
-
-		return new Point(centerPoint.x - (initialSize.x / 2), Math.max(
-				monitorBounds.y, Math.min(centerPoint.y
-						- (initialSize.y * 2 / 3), monitorBounds.y
-						+ monitorBounds.height - initialSize.y)));
-	}
-
-	/**
-	 * Returns the initial size to use for the shell. The default implementation
-	 * returns the preferred size of the shell, using
-	 * <code>Shell.computeSize(SWT.DEFAULT, SWT.DEFAULT, true)</code>.
-	 * 
-	 * @return the initial size of the shell
-	 */
-	protected Point getInitialSize() {
-		return shell.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-	}
-
-    /**
-     * Returns the most specific modal child from the given list of Shells. 
-     * 
-     * @param toSearch shells to search for modal children
-     * @return the most specific modal child, or null if none
-     * 
-     * @since 3.1
-     */
-    private static Shell getModalChild(Shell[] toSearch) {
-        int modal = SWT.APPLICATION_MODAL | SWT.SYSTEM_MODAL | SWT.PRIMARY_MODAL;
-        
-        for (int i = toSearch.length - 1; i >= 0; i--) {
-            Shell shell = toSearch[i];
-            
-            // Check if this shell has a modal child
-            Shell[] children = shell.getShells();
-            Shell modalChild = getModalChild(children);
-            if (modalChild != null) {
-                return modalChild;
-            }
-            
-            // If not, check if this shell is modal itself
-            if (shell.isVisible() && (shell.getStyle() & modal) != 0) {
-                return shell;
-            }
-        }
-        
-        return null;
-    }
-    
-	/**
-	 * Returns parent shell, under which this window's shell is created.
-	 * 
-	 * @return the parent shell, or <code>null</code> if there is no parent
-	 *         shell
-	 */
-	protected Shell getParentShell() {
-        Shell parent = parentShell.getShell();
-        
-        int modal = SWT.APPLICATION_MODAL | SWT.SYSTEM_MODAL | SWT.PRIMARY_MODAL;
-        
-        if ((getShellStyle() & modal) != 0) {
-            // If this is a modal shell with no parent, pick a shell using defaultModalParent.
-            if (parent == null) {
-                parent = defaultModalParent.getShell();
-            }
-        }
-        
-        return parent;
-	}
-
-	/**
-	 * Returns this window's return code. A window's return codes are
-	 * window-specific, although two standard return codes are predefined:
-	 * <code>OK</code> and <code>CANCEL</code>.
-	 * 
-	 * @return the return code
-	 */
-	public int getReturnCode() {
-		return returnCode;
-	}
-
-	/**
-	 * Returns this window's shell.
-	 * 
-	 * @return this window's shell, or <code>null</code> if this window's
-	 *         shell has not been created yet
-	 */
-	public Shell getShell() {
-		return shell;
-	}
-
-	/**
-	 * Returns a shell listener. This shell listener gets registered with this
-	 * window's shell.
-	 * <p>
-	 * The default implementation of this framework method returns a new
-	 * listener that makes this window the active window for its window manager
-	 * (if it has one) when the shell is activated, and calls the framework
-	 * method <code>handleShellCloseEvent</code> when the shell is closed.
-	 * Subclasses may extend or reimplement.
-	 * </p>
-	 * 
-	 * @return a shell listener
-	 */
-	protected ShellListener getShellListener() {
-		return new ShellAdapter() {
-			public void shellClosed(ShellEvent event) {
-				event.doit = false; // don't close now
-				if (canHandleShellCloseEvent()) {
-					handleShellCloseEvent();
-				}
-			}
-		};
-	}
-
-	/**
-	 * Returns the shell style bits.
-	 * <p>
-	 * The default value is <code>SWT.CLOSE|SWT.MIN|SWT.MAX|SWT.RESIZE</code>.
-	 * Subclassers should call <code>setShellStyle</code> to change this
-	 * value, rather than overriding this method.
-	 * </p>
-	 * 
-	 * @return the shell style bits
-	 */
-	protected int getShellStyle() {
-		return shellStyle;
-	}
-
-	/**
-	 * Returns the window manager of this window.
-	 * 
-	 * @return the WindowManager, or <code>null</code> if none
-	 */
-	public WindowManager getWindowManager() {
-		return windowManager;
-	}
-
-	/**
-	 * Notifies of a font property change.
-	 * <p>
-	 * The default implementation of this framework method does nothing.
-	 * Subclasses may reimplement.
-	 * </p>
-	 * 
-	 * @param event
-	 *            the property change event detailing what changed
-	 */
-	protected void handleFontChange(PropertyChangeEvent event) {
-		// do nothing
-	}
-
-	/**
-	 * Notifies that the window's close button was pressed, the close menu was
-	 * selected, or the ESCAPE key pressed.
-	 * <p>
-	 * The default implementation of this framework method sets the window's
-	 * return code to <code>CANCEL</code> and closes the window using
-	 * <code>close</code>. Subclasses may extend or reimplement.
-	 * </p>
-	 */
-	protected void handleShellCloseEvent() {
-		setReturnCode(CANCEL);
-		close();
-	}
-
-	/**
-	 * Initializes the location and size of this window's SWT shell after it has
-	 * been created.
-	 * <p>
-	 * This framework method is called by the <code>create</code> framework
-	 * method. The default implementation calls <code>getInitialSize</code>
-	 * and <code>getInitialLocation</code> and passes the results to
-	 * <code>Shell.setBounds</code>. This is only done if the bounds of the
-	 * shell have not already been modified. Subclasses may extend or
-	 * reimplement.
-	 * </p>
-	 */
-	protected void initializeBounds() {
-		if (resizeListener != null) {
-			shell.removeListener(SWT.Resize, resizeListener);
-		}
-		if (resizeHasOccurred) { // Check if shell size has been set already.
-			return;
-		}
-
-		Point size = getInitialSize();
-		Point location = getInitialLocation(size);
-		shell.setBounds(getConstrainedShellBounds(new Rectangle(location.x,
-				location.y, size.x, size.y)));
-	}
-
-	/**
-	 * Opens this window, creating it first if it has not yet been created.
-	 * <p>
-	 * If this window has been configured to block on open (
-	 * <code>setBlockOnOpen</code>), this method waits until the window is
-	 * closed by the end user, and then it returns the window's return code;
-	 * otherwise, this method returns immediately. A window's return codes are
-	 * window-specific, although two standard return codes are predefined:
-	 * <code>OK</code> and <code>CANCEL</code>.
-	 * </p>
-	 * 
-	 * @return the return code
-	 * 
-	 * @see #create()
-	 */
-	public int open() {
-        
-		if (shell == null || shell.isDisposed()) {
-            shell = null;
-			// create the window
-			create();
-		}
-
-		// limit the shell size to the display size
-		constrainShellSize();
-
-		// open the window
-		shell.open();
-
-		// run the event loop if specified
-		if (block) {
-			runEventLoop(shell);
-		}
-
-		return returnCode;
-	}
-
-	/**
-	 * Runs the event loop for the given shell.
-	 * 
-	 * @param loopShell
-	 *            the shell
-	 */
-	private void runEventLoop(Shell loopShell) {
-
-		//Use the display provided by the shell if possible
-		Display display;
-		if (shell == null) {
-			display = Display.getCurrent();
-		} else {
-			display = loopShell.getDisplay();
-		}
-
-		while (loopShell != null && !loopShell.isDisposed()) {
-			try {
-				if (!display.readAndDispatch()) {
-					display.sleep();
-				}
-			} catch (Throwable e) {
-				exceptionHandler.handleException(e);
-			}
-		}
-		if (!display.isDisposed()) display.update();
-	}
-
-	/**
-	 * Sets whether the <code>open</code> method should block until the window
-	 * closes.
-	 * 
-	 * @param shouldBlock
-	 *            <code>true</code> if the <code>open</code> method should
-	 *            not return until the window closes, and <code>false</code>
-	 *            if the <code>open</code> method should return immediately
-	 */
-	public void setBlockOnOpen(boolean shouldBlock) {
-		block = shouldBlock;
-	}
-
-	/**
-	 * Sets the default image. This is the image that will be used for windows
-	 * that have no shell image at the time they are opened. There is no default
-	 * image unless one is installed via this method.
-	 * 
-	 * @param image
-	 *            the default image, or <code>null</code> if none
-	 */
-	public static void setDefaultImage(Image image) {
-		defaultImages = image == null ? null : new Image[] { image };
-	}
-
-	/**
-	 * Sets the array of default images to use for newly opened windows. It is
-	 * expected that the array will contain the same icon rendered at different
-	 * resolutions.
-	 * 
-	 * @see org.eclipse.swt.widgets.Decorations#setImages(org.eclipse.swt.graphics.Image[])
-	 * 
-	 * @param images
-	 *            the array of images to be used when this window is opened
-	 * @since 3.0
-	 */
-	public static void setDefaultImages(Image[] images) {
-		Image[] newArray = new Image[images.length];
-		System.arraycopy(images, 0, newArray, 0, newArray.length);
-		defaultImages = newArray;
-	}
-	
-	/**
-     * Changes the parent shell. This is only safe to use when the shell is not
-     * yet realized (i.e., created). Once the shell is created, it must be
-     * disposed (i.e., closed) before this method can be called.
-     * 
-     * @param newParentShell
-     *            The new parent shell; this value may be <code>null</code> if
-     *            there is to be no parent.
-     * @since 3.1
-     */
-    protected void setParentShell(final Shell newParentShell) {
-        Assert.isTrue((shell == null), "There must not be an existing shell."); //$NON-NLS-1$
-        parentShell = new SameShellProvider(newParentShell);
-    }
-
-	/**
-	 * Sets this window's return code. The return code is automatically returned
-	 * by <code>open</code> if block on open is enabled. For non-blocking
-	 * opens, the return code needs to be retrieved manually using
-	 * <code>getReturnCode</code>.
-	 * 
-	 * @param code
-	 *            the return code
-	 */
-	protected void setReturnCode(int code) {
-		returnCode = code;
-	}
-
-	/**
-	 * Returns the monitor whose client area contains the given point. If no
-	 * monitor contains the point, returns the monitor that is closest to the
-	 * point. If this is ever made public, it should be moved into a separate
-	 * utility class.
-	 * 
-	 * @param toSearch
-	 *            point to find (display coordinates)
-	 * @param toFind
-	 *            point to find (display coordinates)
-	 * @return the montor closest to the given point
-	 */
-	private static Monitor getClosestMonitor(Display toSearch, Point toFind) {
-		int closest = Integer.MAX_VALUE;
-
-		Monitor[] monitors = toSearch.getMonitors();
-		Monitor result = monitors[0];
-
-		for (int idx = 0; idx < monitors.length; idx++) {
-			Monitor current = monitors[idx];
-
-			Rectangle clientArea = current.getClientArea();
-
-			if (clientArea.contains(toFind)) {
-				return current;
-			}
-
-			int distance = Geometry.distanceSquared(Geometry
-					.centerPoint(clientArea), toFind);
-			if (distance < closest) {
-				closest = distance;
-				result = current;
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * Given the desired position of the window, this method returns an adjusted
-	 * position such that the window is no larger than its monitor, and does not
-	 * extend beyond the edge of the monitor. This is used for computing the
-	 * initial window position, and subclasses can use this as a utility method
-	 * if they want to limit the region in which the window may be moved.
-	 * 
-	 * @param preferredSize
-	 *            the preferred position of the window
-	 * @return a rectangle as close as possible to preferredSize that does not
-	 *         extend outside the monitor
-	 * 
-	 * @since 3.0
-	 */
-	protected Rectangle getConstrainedShellBounds(Rectangle preferredSize) {
-		Rectangle result = new Rectangle(preferredSize.x, preferredSize.y,
-				preferredSize.width, preferredSize.height);
-
-		Monitor mon = getClosestMonitor(getShell().getDisplay(), Geometry
-				.centerPoint(result));
-
-		Rectangle bounds = mon.getClientArea();
-
-		if (result.height > bounds.height) {
-			result.height = bounds.height;
-		}
-
-		if (result.width > bounds.width) {
-			result.width = bounds.width;
-		}
-
-		result.x = Math.max(bounds.x, Math.min(result.x, bounds.x
-				+ bounds.width - result.width));
-		result.y = Math.max(bounds.y, Math.min(result.y, bounds.y
-				+ bounds.height - result.height));
-
-		return result;
-	}
-
-	/**
-	 * Sets the shell style bits. This method has no effect after the shell is
-	 * created.
-	 * <p>
-	 * The shell style bits are used by the framework method
-	 * <code>createShell</code> when creating this window's shell.
-	 * </p>
-	 * 
-	 * @param newShellStyle
-	 *            the new shell style bits
-	 */
-	protected void setShellStyle(int newShellStyle) {
-		shellStyle = newShellStyle;
-	}
-
-	/**
-	 * Sets the window manager of this window.
-	 * <p>
-	 * Note that this method is used by <code>WindowManager</code> to maintain
-	 * a backpointer. Clients must not call the method directly.
-	 * </p>
-	 * 
-	 * @param manager
-	 *            the window manager, or <code>null</code> if none
-	 */
-	public void setWindowManager(WindowManager manager) {
-		windowManager = manager;
-
-		// Code to detect invalid usage
-
-		if (manager != null) {
-			Window[] windows = manager.getWindows();
-			for (int i = 0; i < windows.length; i++) {
-				if (windows[i] == this) {
-					return;
-				}
-			}
-			manager.add(this);
-		}
-	}
-
-	/**
-	 * Sets the exception handler for this application.
-	 * <p>
-	 * Note that the handler may only be set once.  Subsequent calls to this method will be
-	 * ignored.
-	 * <p>
-	 * 
-	 * @param handler
-	 *            the exception handler for the application.
-	 */
-	public static void setExceptionHandler(IExceptionHandler handler) {
-		if (exceptionHandler instanceof DefaultExceptionHandler) {
-			exceptionHandler = handler;
-		}
-	}
-    
-    /**
-     * Sets the default parent for modal Windows. This will be used to locate
-     * the parent for any modal Window constructed with a null parent.
-     * 
-     * @param provider shell provider that will be used to locate the parent shell
-     * whenever a Window is created with a null parent
-     * @since 3.1
-     */
-    public static void setDefaultModalParent(IShellProvider provider) {
-        defaultModalParent = provider;
-    }
-    
-	/**
-	 * Gets the default orientation for windows. If it is not
-	 * set the default value will be unspecified (SWT#NONE).
-	 * 
-	 * 
-	 * @return SWT#NONE, SWT.RIGHT_TO_LEFT or SWT.LEFT_TO_RIGHT
-	 * @see SWT#RIGHT_TO_LEFT
-	 * @see SWT#LEFT_TO_RIGHT
-	 * @see SWT#NONE
-	 * @since 3.1
-	 */
-	public static int getDefaultOrientation() {
-		return orientation;
-
-	}
-
-	/**
-	 * Sets the default orientation of windows.
-	 * @param defaultOrientation one of 
-	 * 	SWT#RIGHT_TO_LEFT, SWT#LEFT_TO_RIGHT ,SWT#NONE
-	 * @see SWT#RIGHT_TO_LEFT
-	 * @see SWT#LEFT_TO_RIGHT
-	 * @see SWT#NONE
-	 * @since 3.1
-	 */
-	public static void setDefaultOrientation(int defaultOrientation) {
-		orientation = defaultOrientation;
-		
-	}
-
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/WindowManager.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/WindowManager.java
deleted file mode 100644
index 5500d56..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/WindowManager.java
+++ /dev/null
@@ -1,161 +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.jface.window;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-
-/**
- * A manager for a group of windows. Window managers are an optional JFace 
- * feature used in applications which create many different windows (dialogs,
- * wizards, etc.) in addition to a main window. A window manager can be used to
- * remember all the windows that an application has created (independent of 
- * whether they are presently open or closed). There can be several window
- * managers, and they can be arranged into a tree. This kind of organization 
- * makes it simple to close whole subgroupings of windows.
- * <p>
- * Creating a window manager is as simple as creating an instance of 
- * <code>WindowManager</code>. Associating a window with a window manager is 
- * done with <code>WindowManager.add(Window)</code>. A window is automatically
- * removed from its window manager as a side effect of closing the window.
- * </p>
- *
- * @see Window
- */
-public class WindowManager {
-
-    /**
-     * List of windows managed by this window manager
-     * (element type: <code>Window</code>).
-     */
-    private ArrayList windows = new ArrayList();
-
-    /**
-     * List of window managers who have this window manager
-     * as their parent (element type: <code>WindowManager</code>).
-     */
-    private List subManagers;
-
-    /**
-     * Creates an empty window manager without a parent window
-     * manager (that is, a root window manager).
-     */
-    public WindowManager() {
-    }
-
-    /**
-     * Creates an empty window manager with the given
-     * window manager as parent.
-     *
-     * @param parent the parent window manager
-     */
-    public WindowManager(WindowManager parent) {
-        Assert.isNotNull(parent);
-        parent.addWindowManager(this);
-    }
-
-    /**
-     * Adds the given window to the set of windows managed by
-     * this window manager. Does nothing is this window is
-     * already managed by this window manager.
-     *
-     * @param window the window
-     */
-    public void add(Window window) {
-        if (!windows.contains(window)) {
-            windows.add(window);
-            window.setWindowManager(this);
-        }
-    }
-
-    /**
-     * Adds the given window manager to the list of
-     * window managers that have this one as a parent.
-     * </p>
-     * @param wm the child window manager
-     */
-    private void addWindowManager(WindowManager wm) {
-        if (subManagers == null) {
-			subManagers = new ArrayList();
-		}
-        if (!subManagers.contains(wm)) {
-            subManagers.add(wm);
-        }
-    }
-
-    /**
-     * Attempts to close all windows managed by this window manager,
-     * as well as windows managed by any descendent window managers.
-     *
-     * @return <code>true</code> if all windows were sucessfully closed, 
-     * and <code>false</code> if any window refused to close
-     */
-    public boolean close() {
-        List t = (List) windows.clone(); // make iteration robust 
-        Iterator e = t.iterator();
-        while (e.hasNext()) {
-            Window window = (Window) e.next();
-            boolean closed = window.close();
-            if (!closed) {
-				return false;
-			}
-        }
-        if (subManagers != null) {
-            e = subManagers.iterator();
-            while (e.hasNext()) {
-                WindowManager wm = (WindowManager) e.next();
-                boolean closed = wm.close();
-                if (!closed) {
-					return false;
-				}
-            }
-        }
-        return true;
-    }
-
-    /**
-     * Returns this window manager's number of windows
-     * 
-     * @return the number of windows
-     * @since 3.0
-     */
-    public int getWindowCount() {
-        return windows.size();
-    }
-
-    /**
-     * Returns this window manager's set of windows.
-     *
-     * @return a possibly empty list of window
-     */
-    public Window[] getWindows() {
-        Window bs[] = new Window[windows.size()];
-        windows.toArray(bs);
-        return bs;
-    }
-
-    /**
-     * Removes the given window from the set of windows managed by
-     * this window manager. Does nothing is this window is
-     * not managed by this window manager.
-     *
-     * @param window the window
-     */
-    public final void remove(Window window) {
-        if (windows.contains(window)) {
-            windows.remove(window);
-            window.setWindowManager(null);
-        }
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/window/package.html
deleted file mode 100644
index 88fed90..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/window/package.html
+++ /dev/null
@@ -1,31 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides a general framework for creating and managing
-windows.
-<h2>
-Package Specification</h2>
-A JFace window is an object that has no visual representation (no widgets)
-until it is told to open. All JFace windows, including dialogs, are instances
-of the abstract class <tt>Window</tt> or a subclass. This package contains
-the base window classes:
-<tt>Window</tt> itself, which provides support
-for a basic windows; and <tt>ApplicationWindow</tt>, which provides ready-to-use
-support for a high-level "main window" with standard menus, tool bar, and
-status line. Both of these classes may be subclassed to define additional
-types of window as required.
-<p>This package also contains <tt>WindowManager</tt>, instance of which
-are used for managing a group of windows. Window managers are useful in
-applications which create many different windows (dialogs, wizards, etc.)
-in addition to a main window. Window managers are not required for simple
-applications.
-<p>The only global state maintained by classes in this package is a default
-image for window title bars (<tt>Window.setDefaultImage</tt>).
-</body>
-</html>
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizard.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizard.java
deleted file mode 100644
index 22602ac..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizard.java
+++ /dev/null
@@ -1,233 +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.jface.wizard;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Interface for a wizard.  A wizard maintains a list of wizard pages,
- * stacked on top of each other in card layout fashion.
- * <p>
- * The class <code>Wizard</code> provides an abstract implementation
- * of this interface. However, clients are also free to implement this 
- * interface if <code>Wizard</code> does not suit their needs.
- * </p>
- * @see Wizard
- */
-public interface IWizard {
-    /**
-     * Adds any last-minute pages to this wizard.
-     * <p>
-     * This method is called just before the wizard becomes visible, to give the 
-     * wizard the opportunity to add any lazily created pages.
-     * </p>
-     */
-    public void addPages();
-
-    /**
-     * Returns whether this wizard could be finished without further user
-     * interaction.
-     * <p>
-     * The result of this method is typically used by the wizard container to enable
-     * or disable the Finish button.
-     * </p>
-     *
-     * @return <code>true</code> if the wizard could be finished,
-     *   and <code>false</code> otherwise
-     */
-    public boolean canFinish();
-
-    /**
-     * Creates this wizard's controls in the given parent control.
-     * <p>
-     * The wizard container calls this method to create the controls
-     * for the wizard's pages before the wizard is opened. This allows
-     * the wizard to size correctly; otherwise a resize may occur when
-     * moving to a new page.
-     * </p>
-     *
-     * @param pageContainer the parent control
-     */
-    public void createPageControls(Composite pageContainer);
-
-    /**
-     * Disposes of this wizard and frees all SWT resources.
-     */
-    public void dispose();
-
-    /**
-     * Returns the container of this wizard.
-     *
-     * @return the wizard container, or <code>null</code> if this
-     *   wizard has yet to be added to a container
-     */
-    public IWizardContainer getContainer();
-
-    /**
-     * Returns the default page image for this wizard.
-     * <p>
-     * This image can be used for pages which do not
-     * supply their own image.
-     * </p>
-     *
-     * @return the default page image
-     */
-    public Image getDefaultPageImage();
-
-    /**
-     * Returns the dialog settings for this wizard.
-     * <p>
-     * The dialog store is used to record state between
-     * wizard invocations (for example, radio button selections,
-     * last directory, etc.).
-     * </p>
-     *
-     * @return the dialog settings, or <code>null</code> if none
-     */
-    public IDialogSettings getDialogSettings();
-
-    /**
-     * Returns the successor of the given page.
-     * <p>
-     * This method is typically called by a wizard page
-     * </p>
-     *
-     * @param page the page
-     * @return the next page, or <code>null</code> if none
-     */
-    public IWizardPage getNextPage(IWizardPage page);
-
-    /**
-     * Returns the wizard page with the given name belonging to this wizard.
-     *
-     * @param pageName the name of the wizard page
-     * @return the wizard page with the given name, or <code>null</code> if none
-     */
-    public IWizardPage getPage(String pageName);
-
-    /**
-     * Returns the number of pages in this wizard.
-     *
-     * @return the number of wizard pages
-     */
-    public int getPageCount();
-
-    /**
-     * Returns all the pages in this wizard.
-     *
-     * @return a list of pages
-     */
-    public IWizardPage[] getPages();
-
-    /**
-     * Returns the predecessor of the given page.
-     * <p>
-     * This method is typically called by a wizard page
-     * </p>
-     *
-     * @param page the page
-     * @return the previous page, or <code>null</code> if none
-     */
-    public IWizardPage getPreviousPage(IWizardPage page);
-
-    /**
-     * Returns the first page to be shown in this wizard.
-     *
-     * @return the first wizard page
-     */
-    public IWizardPage getStartingPage();
-
-    /**
-     * Returns the title bar color for this wizard.
-     *
-     * @return the title bar color
-     */
-    public RGB getTitleBarColor();
-
-    /**
-     * Returns the window title string for this wizard.
-     *
-     * @return the window title string, or <code>null</code> for no title
-     */
-    public String getWindowTitle();
-
-    /**
-     * Returns whether help is available for this wizard.
-     * <p>
-     * The result of this method is typically used by the container to
-     * show or hide the Help button.
-     * </p>
-     *
-     * @return <code>true</code> if help is available,
-     *   and <code>false</code> if this wizard is helpless
-     */
-    public boolean isHelpAvailable();
-
-    /**
-     * Returns whether this wizard needs Previous and Next buttons.
-     * <p>
-     * The result of this method is typically used by the container.
-     * </p>
-     *
-     * @return <code>true</code> if Previous and Next buttons are required,
-     *   and <code>false</code> if none are needed
-     */
-    public boolean needsPreviousAndNextButtons();
-
-    /**
-     * Returns whether this wizard needs a progress monitor.
-     * <p>
-     * The result of this method is typically used by the container.
-     * </p>
-     *
-     * @return <code>true</code> if a progress monitor is required,
-     *   and <code>false</code> if none is needed
-     */
-    public boolean needsProgressMonitor();
-
-    /**
-     * Performs any actions appropriate in response to the user 
-     * having pressed the Cancel button, or refuse if canceling
-     * now is not permitted.
-     *
-     * @return <code>true</code> to indicate the cancel request
-     *   was accepted, and <code>false</code> to indicate
-     *   that the cancel request was refused
-     */
-    public boolean performCancel();
-
-    /**
-     * Performs any actions appropriate in response to the user 
-     * having pressed the Finish button, or refuse if finishing
-     * now is not permitted.
-     *
-     * Normally this method is only called on the container's
-     * current wizard. However if the current wizard is a nested wizard
-     * this method will also be called on all wizards in its parent chain.
-     * Such parents may use this notification to save state etc. However,
-     * the value the parents return from this method is ignored.
-     *
-     * @return <code>true</code> to indicate the finish request
-     *   was accepted, and <code>false</code> to indicate
-     *   that the finish request was refused
-     */
-    public boolean performFinish();
-
-    /**
-     * Sets or clears the container of this wizard.
-     *
-     * @param wizardContainer the wizard container, or <code>null</code> 
-     */
-    public void setContainer(IWizardContainer wizardContainer);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer.java
deleted file mode 100644
index 6708f654..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer.java
+++ /dev/null
@@ -1,115 +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.jface.wizard;
-
-import org.eclipse.jface.operation.IRunnableContext;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Interface for containers that can host a wizard. It displays
- * wizard pages, at most one of which is considered
- * the current page. <code>getCurrentPage</code> returns the
- * current page; <code>showPage</code> programmatically changes the
- * the current page. Note that the pages need not all belong
- * to the same wizard.
- * <p>
- * The class <code>WizardDialog</code> provides a fully functional 
- * implementation of this interface which will meet the needs of
- * most clients. However, clients are also free to implement this 
- * interface if <code>WizardDialog</code> does not suit their needs.
- * </p>
- * <p>
- * Implementors are responsible for disposing of their wizards.
- * </p>
- * 
- * @see org.eclipse.jface.wizard.IWizardContainer2
- */
-public interface IWizardContainer extends IRunnableContext {
-    /**
-     * Returns the current wizard page for this container.
-     *
-     * @return the current wizard page, or <code>null</code> if the container
-     *   is not yet showing the wizard
-     * @see #showPage
-     */
-    public IWizardPage getCurrentPage();
-
-    /**
-     * Returns the shell for this wizard container.
-     *
-     * @return the shell, or <code>null</code> if this wizard
-     *   container does not have a shell
-     */
-    public Shell getShell();
-
-    /**
-     * Makes the given page visible.
-     * <p>
-     * This method should not be use for normal page
-     * sequencing (back, next) which is handled by the 
-     * container itself. It may, however, be used to
-     * move to another page in response to some custom
-     * action such as double clicking in a list.
-     * </p>
-     *
-     * @param page the page to show
-     * @see #getCurrentPage
-     */
-    public void showPage(IWizardPage page);
-
-    /**
-     * Adjusts the enable state of the Back, Next, and Finish 
-     * buttons to reflect the state of the currently active 
-     * page in this container.
-     * <p>
-     * This method is called by the container itself
-     * when its wizard page changes and may be called
-     * by the page at other times to force a button state
-     * update.
-     * </p>
-     */
-    public void updateButtons();
-
-    /**
-     * Updates the message (or error message) shown in the message line to 
-     * reflect the state of the currently active page in this container.
-     * <p>
-     * This method is called by the container itself
-     * when its wizard page changes and may be called
-     * by the page at other times to force a message 
-     * update.
-     * </p>
-     */
-    public void updateMessage();
-
-    /**
-     * Updates the title bar (title, description, and image) to 
-     * reflect the state of the currently active page in this container.
-     * <p>
-     * This method is called by the container itself
-     * when its wizard page changes and may be called
-     * by the page at other times to force a title bar 
-     * update.
-     * </p>
-     */
-    public void updateTitleBar();
-
-    /**
-     * Updates the window title to reflect the state of the current wizard.
-     * <p>
-     * This method is called by the container itself
-     * when its wizard changes and may be called
-     * by the wizard at other times to force a window 
-     * title change.
-     * </p>
-     */
-    public void updateWindowTitle();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer2.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer2.java
deleted file mode 100644
index 042c73d..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardContainer2.java
+++ /dev/null
@@ -1,40 +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.jface.wizard;
-
-/**
- * <p><code>IWizardContainer2</code> is a supplement to 
- * <code>IWizardContainer</code> that adds a method for updating the size of 
- * the wizard shell based on the contents of the current page.</p>
- * 
- * <p>The class <code>WizardDialog</code> provides a fully functional 
- * implementation of this interface which will meet the needs of
- * most clients. However, clients are also free to implement this 
- * interface if <code>WizardDialog</code> does not suit their needs.
- * </p>
- * 
- * @see org.eclipse.jface.wizard.IWizardContainer
- * @since 3.0
- */
-public interface IWizardContainer2 extends IWizardContainer {
-
-    /**
-     * Updates the window size to reflect the state of the current wizard.
-     * <p>
-     * This method is called by the container itself
-     * when its wizard changes and may be called
-     * by the wizard at other times to force a window 
-     * size change.
-     * </p>
-     */
-    public void updateSize();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardNode.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardNode.java
deleted file mode 100644
index 5fd15a6..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardNode.java
+++ /dev/null
@@ -1,77 +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.jface.wizard;
-
-import org.eclipse.swt.graphics.Point;
-
-/**
- * A wizard node acts a placeholder for a real wizard in a wizard 
- * selection page. It is done in such a way that the actual creation
- * of a wizard can be deferred until the wizard is really needed.
- * <p>
- * When a wizard node comes into existence, its wizard may or may
- * not have been created yet; <code>isContentCreated</code> can
- * be used to determine which. A node may be asked for its wizard
- * using <code>getWizard</code>, which will force it to be created
- * if required. Once the client is done with a wizard node, its
- * <code>dispose</code>method must be called to free up the wizard;
- * once disposes, the node should no longer be used.
- * </p>
- * <p>
- * This interface should be implemented by clients wishing to
- * support this kind of wizard placeholder in a wizard selection page.
- * </p>
- *
- * @see WizardSelectionPage
- */
-public interface IWizardNode {
-    /**
-     * Disposes the wizard managed by this node. Does nothing
-     * if the wizard has not been created.
-     * <p>
-     * This is the last message that should ever be sent to this node.
-     * </p>
-     */
-    public void dispose();
-
-    /**
-     * Returns the extent of the wizard for this node.
-     * <p>
-     * If the content has not yet been created, calling this method
-     * does not trigger the creation of the wizard. This allows
-     * this node to suggest an extent in advance of actually creating 
-     * the wizard.
-     * </p>
-     *
-     * @return the extent, or <code>(-1, -1)</code> extent is not known
-     */
-    public Point getExtent();
-
-    /**
-     * Returns the wizard this node stands for.
-     * <p>
-     * If the content has not been created beforehand, calling this
-     * method triggers the creation of the wizard and caches it so that
-     * the identical wizard object is returned on subsequent calls.
-     * </p>
-     *
-     * @return the wizard
-     */
-    public IWizard getWizard();
-
-    /**
-     * Returns whether a wizard has been created for this node.
-     *
-     * @return <code>true</code> if a wizard has been created,
-     *   and <code>false</code> otherwise
-     */
-    public boolean isContentCreated();
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardPage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardPage.java
deleted file mode 100644
index 1f3e9d2..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/IWizardPage.java
+++ /dev/null
@@ -1,96 +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.jface.wizard;
-
-import org.eclipse.jface.dialogs.IDialogPage;
-
-/**
- * Interface for a wizard page.
- * <p>
- * The class <code>WizardPage</code> provides an abstract implementation
- * of this interface. However, clients are also free to implement this 
- * interface if <code>WizardPage</code> does not suit their needs.
- * </p>
- */
-public interface IWizardPage extends IDialogPage {
-    /**
-     * Returns whether the next page could be displayed.
-     *
-     * @return <code>true</code> if the next page could be displayed,
-     *   and <code>false</code> otherwise
-     */
-    public boolean canFlipToNextPage();
-
-    /**
-     * Returns this page's name.
-     *
-     * @return the name of this page
-     */
-    public String getName();
-
-    /**
-     * Returns the wizard page that would to be shown if the user was to
-     * press the Next button.
-     *
-     * @return the next wizard page, or <code>null</code> if none
-     */
-    public IWizardPage getNextPage();
-
-    /**
-     * Returns the wizard page that would to be shown if the user was to
-     * press the Back button.
-     *
-     * @return the previous wizard page, or <code>null</code> if none
-     */
-    public IWizardPage getPreviousPage();
-
-    /**
-     * Returns the wizard that hosts this wizard page.
-     *
-     * @return the wizard, or <code>null</code> if this page has not been
-     *   added to any wizard
-     * @see #setWizard
-     */
-    public IWizard getWizard();
-
-    /**
-     * Returns whether this page is complete or not.
-     * <p>
-     * This information is typically used by the wizard to decide
-     * when it is okay to finish.
-     * </p>
-     *
-     * @return <code>true</code> if this page is complete, and
-     *  <code>false</code> otherwise
-     */
-    public boolean isPageComplete();
-
-    /**
-     * Sets the wizard page that would typically be shown 
-     * if the user was to press the Back button.
-     * <p>
-     * This method is called by the container.
-     * </p>
-     *
-     * @param page the previous wizard page
-     */
-    public void setPreviousPage(IWizardPage page);
-
-    /**
-     * Sets the wizard that hosts this wizard page.
-     * Once established, a page's wizard cannot be changed
-     * to a different wizard.
-     *
-     * @param newWizard the wizard
-     * @see #getWizard
-     */
-    public void setWizard(IWizard newWizard);
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/ProgressMonitorPart.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/ProgressMonitorPart.java
deleted file mode 100644
index 9347caf..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/ProgressMonitorPart.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.wizard;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IProgressMonitorWithBlocking;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.ProgressIndicator;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * A standard implementation of an IProgressMonitor. It consists
- * of a label displaying the task and subtask name, and a
- * progress indicator to show progress. In contrast to
- * <code>ProgressMonitorDialog</code> this class only implements
- * <code>IProgressMonitor</code>.
- */
-public class ProgressMonitorPart extends Composite implements
-        IProgressMonitorWithBlocking {
-
-	/** the label */
-    protected Label fLabel;
-
-    /** the current task name */
-    protected String fTaskName;
-
-    /** the current sub task name */
-    protected String fSubTaskName;
-
-    /** the progress indicator */
-    protected ProgressIndicator fProgressIndicator;
-
-    /** the cancel component */
-    protected Control fCancelComponent;
-
-    /** true if canceled */
-    protected boolean fIsCanceled;
-
-    /** current blocked status */
-    protected IStatus blockedStatus;
-
-    /** the cancel lister attached to the cancel component */
-    protected Listener fCancelListener = new Listener() {
-        public void handleEvent(Event e) {
-            setCanceled(true);
-            if (fCancelComponent != null) {
-				fCancelComponent.setEnabled(false);
-			}
-        }
-    };
-
-    /**
-     * Creates a ProgressMonitorPart.
-     * @param parent The SWT parent of the part.
-     * @param layout The SWT grid bag layout used by the part. A client
-     * can supply the layout to control how the progress monitor part
-     * is layed out. If null is passed the part uses its default layout.
-     */
-    public ProgressMonitorPart(Composite parent, Layout layout) {
-        this(parent, layout, SWT.DEFAULT);
-    }
-
-    /**
-     * Creates a ProgressMonitorPart.
-     * @param parent The SWT parent of the part.
-     * @param layout The SWT grid bag layout used by the part. A client
-     * can supply the layout to control how the progress monitor part
-     * is layed out. If null is passed the part uses its default layout.
-     * @param progressIndicatorHeight The height of the progress indicator in pixel.
-     */
-    public ProgressMonitorPart(Composite parent, Layout layout,
-            int progressIndicatorHeight) {
-        super(parent, SWT.NONE);
-        initialize(layout, progressIndicatorHeight);
-    }
-
-    /**
-     * Attaches the progress monitor part to the given cancel
-     * component.
-     * @param cancelComponent the control whose selection will
-     * trigger a cancel
-     */
-    public void attachToCancelComponent(Control cancelComponent) {
-        Assert.isNotNull(cancelComponent);
-        fCancelComponent = cancelComponent;
-        fCancelComponent.addListener(SWT.Selection, fCancelListener);
-    }
-
-    /**
-     * Implements <code>IProgressMonitor.beginTask</code>.
-     * @see IProgressMonitor#beginTask(java.lang.String, int)
-     */
-    public void beginTask(String name, int totalWork) {
-        fTaskName = name;
-        updateLabel();
-        if (totalWork == IProgressMonitor.UNKNOWN || totalWork == 0) {
-            fProgressIndicator.beginAnimatedTask();
-        } else {
-            fProgressIndicator.beginTask(totalWork);
-        }
-    }
-
-    /**
-     * Implements <code>IProgressMonitor.done</code>.
-     * @see IProgressMonitor#done()
-     */
-    public void done() {
-        fLabel.setText("");//$NON-NLS-1$
-        fProgressIndicator.sendRemainingWork();
-        fProgressIndicator.done();
-    }
-
-    /**
-     * Escapes any occurrence of '&' in the given String so that
-     * it is not considered as a mnemonic
-     * character in SWT ToolItems, MenuItems, Button and Labels.
-     * @param in the original String
-     * @return The converted String
-     */
-    protected static String escapeMetaCharacters(String in) {
-        if (in == null || in.indexOf('&') < 0) {
-			return in;
-		}
-        int length = in.length();
-        StringBuffer out = new StringBuffer(length + 1);
-        for (int i = 0; i < length; i++) {
-            char c = in.charAt(i);
-            if (c == '&') {
-				out.append("&&");//$NON-NLS-1$
-			} else {
-				out.append(c);
-			}
-        }
-        return out.toString();
-    }
-
-    /**
-     * Creates the progress monitor's UI parts and layouts them
-     * according to the given layout. If the layout is <code>null</code>
-     * the part's default layout is used.
-     * @param layout The layout for the receiver.
-     * @param progressIndicatorHeight The suggested height of the indicator
-     */
-    protected void initialize(Layout layout, int progressIndicatorHeight) {
-        if (layout == null) {
-            GridLayout l = new GridLayout();
-            l.marginWidth = 0;
-            l.marginHeight = 0;
-            l.numColumns = 1;
-            layout = l;
-        }
-        setLayout(layout);
-
-        fLabel = new Label(this, SWT.LEFT);
-        fLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-        if (progressIndicatorHeight == SWT.DEFAULT) {
-            GC gc = new GC(fLabel);
-            FontMetrics fm = gc.getFontMetrics();
-            gc.dispose();
-            progressIndicatorHeight = fm.getHeight();
-        }
-
-        fProgressIndicator = new ProgressIndicator(this);
-        GridData gd = new GridData();
-        gd.horizontalAlignment = GridData.FILL;
-        gd.grabExcessHorizontalSpace = true;
-        gd.verticalAlignment = GridData.CENTER;
-        gd.heightHint = progressIndicatorHeight;
-        fProgressIndicator.setLayoutData(gd);
-    }
-
-    /**
-     * Implements <code>IProgressMonitor.internalWorked</code>.
-     * @see IProgressMonitor#internalWorked(double)
-     */
-    public void internalWorked(double work) {
-        fProgressIndicator.worked(work);
-    }
-
-    /**
-     * Implements <code>IProgressMonitor.isCanceled</code>.
-     * @see IProgressMonitor#isCanceled()
-     */
-    public boolean isCanceled() {
-        return fIsCanceled;
-    }
-
-    /**
-     * Detach the progress monitor part from the given cancel
-     * component
-     * @param cc
-     */
-    public void removeFromCancelComponent(Control cc) {
-        Assert.isTrue(fCancelComponent == cc && fCancelComponent != null);
-        fCancelComponent.removeListener(SWT.Selection, fCancelListener);
-        fCancelComponent = null;
-    }
-
-    /**
-     * Implements <code>IProgressMonitor.setCanceled</code>.
-     * @see IProgressMonitor#setCanceled(boolean)
-     */
-    public void setCanceled(boolean b) {
-        fIsCanceled = b;
-    }
-
-    /**
-     * Sets the progress monitor part's font.
-     */
-    public void setFont(Font font) {
-        super.setFont(font);
-        fLabel.setFont(font);
-        fProgressIndicator.setFont(font);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.core.runtime.IProgressMonitor#setTaskName(java.lang.String)
-     */
-    public void setTaskName(String name) {
-        fTaskName = name;
-        updateLabel();
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.core.runtime.IProgressMonitor#subTask(java.lang.String)
-     */
-    public void subTask(String name) {
-        fSubTaskName = name;
-        updateLabel();
-    }
-
-    /**
-     * Updates the label with the current task and subtask names.
-     */
-    protected void updateLabel() {
-        if (blockedStatus == null) {
-            String text = taskLabel();
-            fLabel.setText(text);
-        } else {
-			fLabel.setText(blockedStatus.getMessage());
-		}
-
-        //Force an update as we are in the UI Thread
-        fLabel.update();
-    }
-
-    /**
-     * Return the label for showing tasks
-     * @return String
-     */
-    private String taskLabel() {
-    	boolean hasTask= fTaskName != null && fTaskName.length() > 0;
-    	boolean hasSubtask= fSubTaskName != null && fSubTaskName.length() > 0;
-    	
-		if (hasTask) {
-			if (hasSubtask)
-				return escapeMetaCharacters(JFaceResources.format(
-    					"Set_SubTask", new Object[] { fTaskName, fSubTaskName }));//$NON-NLS-1$
-   			return escapeMetaCharacters(fTaskName);
-   			
-    	} else if (hasSubtask) {
-    		return escapeMetaCharacters(fSubTaskName);
-    	
-    	} else {
-    		return ""; //$NON-NLS-1$
-    	}
-    }
-
-    /**
-     * Implements <code>IProgressMonitor.worked</code>.
-     * @see IProgressMonitor#worked(int)
-     */
-    public void worked(int work) {
-        internalWorked(work);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#clearBlocked()
-     */
-    public void clearBlocked() {
-        blockedStatus = null;
-        updateLabel();
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IProgressMonitorWithBlocking#setBlocked(org.eclipse.core.runtime.IStatus)
-     */
-    public void setBlocked(IStatus reason) {
-        blockedStatus = reason;
-        updateLabel();
-
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/Wizard.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/Wizard.java
deleted file mode 100644
index 3484781..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/Wizard.java
+++ /dev/null
@@ -1,455 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.wizard;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * An abstract base implementation of a wizard. A typical client subclasses
- * <code>Wizard</code> to implement a particular wizard.
- * <p>
- * Subclasses may call the following methods to configure the wizard:
- * <ul>
- * <li><code>addPage</code></li>
- * <li><code>setHelpAvailable</code></li>
- * <li><code>setDefaultPageImageDescriptor</code></li>
- * <li><code>setDialogSettings</code></li>
- * <li><code>setNeedsProgressMonitor</code></li>
- * <li><code>setTitleBarColor</code></li>
- * <li><code>setWindowTitle</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may override these methods if required:
- * <ul>
- * <li>reimplement <code>createPageControls</code></li>
- * <li>reimplement <code>performCancel</code></li>
- * <li>extend <code>addPages</code></li>
- * <li>reimplement <code>performFinish</code></li>
- * <li>extend <code>dispose</code></li>
- * </ul>
- * </p>
- * <p>
- * Note that clients are free to implement <code>IWizard</code> from scratch
- * instead of subclassing <code>Wizard</code>. Correct implementations of
- * <code>IWizard</code> will work with any correct implementation of
- * <code>IWizardPage</code>.
- * </p>
- */
-public abstract class Wizard implements IWizard {
-    /**
-     * Image registry key of the default image for wizard pages (value
-     * <code>"org.eclipse.jface.wizard.Wizard.pageImage"</code>).
-     */
-    public static final String DEFAULT_IMAGE = "org.eclipse.jface.wizard.Wizard.pageImage";//$NON-NLS-1$
-
-    /**
-     * The wizard container this wizard belongs to; <code>null</code> if none.
-     */
-    private IWizardContainer container = null;
-
-    /**
-     * This wizard's list of pages (element type: <code>IWizardPage</code>).
-     */
-    private List pages = new ArrayList();
-
-    /**
-     * Indicates whether this wizard needs a progress monitor.
-     */
-    private boolean needsProgressMonitor = false;
-
-    /**
-     * Indicates whether this wizard needs previous and next buttons even if the
-     * wizard has only one page.
-     */
-    private boolean forcePreviousAndNextButtons = false;
-
-    /**
-     * Indicates whether this wizard supports help.
-     */
-    private boolean isHelpAvailable = false;
-
-    /**
-     * The default page image for pages without one of their one;
-     * <code>null</code> if none.
-     */
-    private Image defaultImage = null;
-
-    /**
-     * The default page image descriptor, used for creating a default page image
-     * if required; <code>null</code> if none.
-     */
-    private ImageDescriptor defaultImageDescriptor = JFaceResources.getImageRegistry().getDescriptor(DEFAULT_IMAGE);
-
-    /**
-     * The color of the wizard title bar; <code>null</code> if none.
-     */
-    private RGB titleBarColor = null;
-
-    /**
-     * The window title string for this wizard; <code>null</code> if none.
-     */
-    private String windowTitle = null;
-
-    /**
-     * The dialog settings for this wizard; <code>null</code> if none.
-     */
-    private IDialogSettings dialogSettings = null;
-
-    /**
-     * Creates a new empty wizard.
-     */
-    protected Wizard() {
-        super();
-    }
-
-    /**
-     * Adds a new page to this wizard. The page is inserted at the end of the
-     * page list.
-     * 
-     * @param page
-     *            the new page
-     */
-    public void addPage(IWizardPage page) {
-        pages.add(page);
-        page.setWizard(this);
-    }
-
-	/**
-     * The <code>Wizard</code> implementation of this <code>IWizard</code>
-     * method does nothing. Subclasses should extend if extra pages need to be
-     * added before the wizard opens. New pages should be added by calling
-     * <code>addPage</code>.
-     */
-    public void addPages() {
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public boolean canFinish() {
-        // Default implementation is to check if all pages are complete.
-        for (int i = 0; i < pages.size(); i++) {
-            if (!((IWizardPage) pages.get(i)).isPageComplete()) {
-				return false;
-			}
-        }
-        return true;
-    }
-
-    /**
-     * The <code>Wizard</code> implementation of this <code>IWizard</code>
-     * method creates all the pages controls using
-     * <code>IDialogPage.createControl</code>. Subclasses should reimplement
-     * this method if they want to delay creating one or more of the pages
-     * lazily. The framework ensures that the contents of a page will be created
-     * before attempting to show it.
-     */
-    public void createPageControls(Composite pageContainer) {
-        // the default behavior is to create all the pages controls
-        for (int i = 0; i < pages.size(); i++) {
-            IWizardPage page = (IWizardPage) pages.get(i);
-            page.createControl(pageContainer);
-            // page is responsible for ensuring the created control is
-            // accessable
-            // via getControl.
-            Assert.isNotNull(page.getControl());
-        }
-    }
-
-    /**
-     * The <code>Wizard</code> implementation of this <code>IWizard</code>
-     * method disposes all the pages controls using
-     * <code>DialogPage.dispose</code>. Subclasses should extend this method
-     * if the wizard instance maintains addition SWT resource that need to be
-     * disposed.
-     */
-    public void dispose() {
-        // notify pages
-        for (int i = 0; i < pages.size(); i++) {
-            ((IWizardPage) pages.get(i)).dispose();
-        }
-        // dispose of image
-        if (defaultImage != null) {
-            JFaceResources.getResources().destroyImage(defaultImageDescriptor);
-            defaultImage = null;
-        }
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public IWizardContainer getContainer() {
-        return container;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public Image getDefaultPageImage() {
-        if (defaultImage == null) {
-            defaultImage = JFaceResources.getResources().createImageWithDefault(defaultImageDescriptor);
-        }
-        return defaultImage;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public IDialogSettings getDialogSettings() {
-        return dialogSettings;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard. The default behavior is to
-     * return the page that was added to this wizard after the given page.
-     */
-    public IWizardPage getNextPage(IWizardPage page) {
-        int index = pages.indexOf(page);
-        if (index == pages.size() - 1 || index == -1) {
-			// last page or page not found
-            return null;
-		}
-        return (IWizardPage) pages.get(index + 1);
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public IWizardPage getPage(String name) {
-        for (int i = 0; i < pages.size(); i++) {
-            IWizardPage page = (IWizardPage) pages.get(i);
-            String pageName = page.getName();
-            if (pageName.equals(name)) {
-				return page;
-			}
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public int getPageCount() {
-        return pages.size();
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public IWizardPage[] getPages() {
-        return (IWizardPage[]) pages.toArray(new IWizardPage[pages.size()]);
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard. The default behavior is to
-     * return the page that was added to this wizard before the given page.
-     */
-    public IWizardPage getPreviousPage(IWizardPage page) {
-        int index = pages.indexOf(page);
-        if (index == 0 || index == -1) {
-			// first page or page not found
-            return null;
-		} 
-		return (IWizardPage) pages.get(index - 1);
-    }
-
-    /**
-     * Returns the wizard's shell if the wizard is visible. Otherwise
-     * <code>null</code> is returned.
-     * 
-     * @return Shell
-     */
-    public Shell getShell() {
-        if (container == null) {
-			return null;
-		}
-        return container.getShell();
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard. By default this is the first
-     * page inserted into the wizard.
-     */
-    public IWizardPage getStartingPage() {
-        if (pages.size() == 0) {
-			return null;
-		}
-        return (IWizardPage) pages.get(0);
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public RGB getTitleBarColor() {
-        return titleBarColor;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public String getWindowTitle() {
-        return windowTitle;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public boolean isHelpAvailable() {
-        return isHelpAvailable;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public boolean needsPreviousAndNextButtons() {
-        return forcePreviousAndNextButtons || pages.size() > 1;
-    }
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public boolean needsProgressMonitor() {
-        return needsProgressMonitor;
-    }
-
-    /**
-     * The <code>Wizard</code> implementation of this <code>IWizard</code>
-     * method does nothing and returns <code>true</code>. Subclasses should
-     * reimplement this method if they need to perform any special cancel
-     * processing for their wizard.
-     */
-    public boolean performCancel() {
-        return true;
-    }
-
-    /**
-     * Subclasses must implement this <code>IWizard</code> method to perform
-     * any special finish processing for their wizard.
-     */
-    public abstract boolean performFinish();
-
-    /*
-     * (non-Javadoc) Method declared on IWizard.
-     */
-    public void setContainer(IWizardContainer wizardContainer) {
-        container = wizardContainer;
-    }
-
-    /**
-     * Sets the default page image descriptor for this wizard.
-     * <p>
-     * This image descriptor will be used to generate an image for a page with
-     * no image of its own; the image will be computed once and cached.
-     * </p>
-     * 
-     * @param imageDescriptor
-     *            the default page image descriptor
-     */
-    public void setDefaultPageImageDescriptor(ImageDescriptor imageDescriptor) {
-        defaultImageDescriptor = imageDescriptor;
-    }
-
-    /**
-     * Sets the dialog settings for this wizard.
-     * <p>
-     * The dialog settings is used to record state between wizard invocations
-     * (for example, radio button selection, last import directory, etc.)
-     * </p>
-     * 
-     * @param settings
-     *            the dialog settings, or <code>null</code> if none
-     * @see #getDialogSettings
-     *  
-     */
-    public void setDialogSettings(IDialogSettings settings) {
-        dialogSettings = settings;
-    }
-
-    /**
-     * Controls whether the wizard needs Previous and Next buttons even if it
-     * currently contains only one page.
-     * <p>
-     * This flag should be set on wizards where the first wizard page adds
-     * follow-on wizard pages based on user input.
-     * </p>
-     * 
-     * @param b
-     *            <code>true</code> to always show Next and Previous buttons,
-     *            and <code>false</code> to suppress Next and Previous buttons
-     *            for single page wizards
-     */
-    public void setForcePreviousAndNextButtons(boolean b) {
-        forcePreviousAndNextButtons = b;
-    }
-
-    /**
-     * Sets whether help is available for this wizard.
-     * <p>
-     * The result of this method is typically used by the container to show or
-     * hide the Help button.
-     * </p>
-     * 
-     * @param b
-     *            <code>true</code> if help is available, and
-     *            <code>false</code> if this wizard is helpless
-     * @see #isHelpAvailable()
-     */
-    public void setHelpAvailable(boolean b) {
-        isHelpAvailable = b;
-    }
-
-    /**
-     * Sets whether this wizard needs a progress monitor.
-     * 
-     * @param b
-     *            <code>true</code> if a progress monitor is required, and
-     *            <code>false</code> if none is needed
-     * @see #needsProgressMonitor()
-     */
-    public void setNeedsProgressMonitor(boolean b) {
-        needsProgressMonitor = b;
-    }
-
-    /**
-     * Sets the title bar color for this wizard.
-     * 
-     * @param color
-     *            the title bar color
-     */
-    public void setTitleBarColor(RGB color) {
-        titleBarColor = color;
-    }
-
-    /**
-     * Sets the window title for the container that hosts this page to the given
-     * string.
-     * 
-     * @param newTitle
-     *            the window title for the container
-     */
-    public void setWindowTitle(String newTitle) {
-        windowTitle = newTitle;
-        if (container != null) {
-			container.updateWindowTitle();
-		}
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java
deleted file mode 100644
index 97e1a59..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardDialog.java
+++ /dev/null
@@ -1,1522 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Gross (schtoo@schtoo.com) - patch for bug 16179
- *******************************************************************************/
-package org.eclipse.jface.wizard;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.dialogs.ControlEnableState;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.IPageChangeProvider;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.IPageChangingListener;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.dialogs.PageChangingEvent;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.ModalContext;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.HelpEvent;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Cursor;
-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.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A dialog to show a wizard to the end user.
- * <p>
- * In typical usage, the client instantiates this class with a particular
- * wizard. The dialog serves as the wizard container and orchestrates the
- * presentation of its pages.
- * <p>
- * The standard layout is roughly as follows: it has an area at the top
- * containing both the wizard's title, description, and image; the actual wizard
- * page appears in the middle; below that is a progress indicator (which is made
- * visible if needed); and at the bottom of the page is message line and a
- * button bar containing Help, Next, Back, Finish, and Cancel buttons (or some
- * subset).
- * </p>
- * <p>
- * Clients may subclass <code>WizardDialog</code>, although this is rarely
- * required.
- * </p>
- */
-public class WizardDialog extends TitleAreaDialog implements IWizardContainer2,
-		IPageChangeProvider {
-	/**
-	 * Image registry key for error message image (value
-	 * <code>"dialog_title_error_image"</code>).
-	 */
-	public static final String WIZ_IMG_ERROR = "dialog_title_error_image"; //$NON-NLS-1$
-
-	// The wizard the dialog is currently showing.
-	private IWizard wizard;
-
-	// Wizards to dispose
-	private ArrayList createdWizards = new ArrayList();
-
-	// Current nested wizards
-	private ArrayList nestedWizards = new ArrayList();
-
-	// The currently displayed page.
-	private IWizardPage currentPage = null;
-
-	// The number of long running operation executed from the dialog.
-	private long activeRunningOperations = 0;
-
-	// The current page message and description
-	private String pageMessage;
-
-	private int pageMessageType = IMessageProvider.NONE;
-
-	private String pageDescription;
-
-	// The progress monitor
-	private ProgressMonitorPart progressMonitorPart;
-
-	private Cursor waitCursor;
-
-	private Cursor arrowCursor;
-
-	private MessageDialog windowClosingDialog;
-
-	// Navigation buttons
-	private Button backButton;
-
-	private Button nextButton;
-
-	private Button finishButton;
-
-	private Button cancelButton;
-
-	private Button helpButton;
-
-	private SelectionAdapter cancelListener;
-
-	private boolean isMovingToPreviousPage = false;
-
-	private Composite pageContainer;
-
-	private PageContainerFillLayout pageContainerLayout = new PageContainerFillLayout(
-			5, 5, 300, 225);
-
-	private int pageWidth = SWT.DEFAULT;
-
-	private int pageHeight = SWT.DEFAULT;
-
-	private static final String FOCUS_CONTROL = "focusControl"; //$NON-NLS-1$
-
-	private boolean lockedUI = false;
-
-	private ListenerList pageChangedListeners = new ListenerList();
-
-	private ListenerList pageChangingListeners = new ListenerList();
-
-	/**
-	 * A layout for a container which includes several pages, like a notebook,
-	 * wizard, or preference dialog. The size computed by this layout is the
-	 * maximum width and height of all pages currently inserted into the
-	 * container.
-	 */
-	protected class PageContainerFillLayout extends Layout {
-		/**
-		 * The margin width; <code>5</code> pixels by default.
-		 */
-		public int marginWidth = 5;
-
-		/**
-		 * The margin height; <code>5</code> pixels by default.
-		 */
-		public int marginHeight = 5;
-
-		/**
-		 * The minimum width; <code>0</code> pixels by default.
-		 */
-		public int minimumWidth = 0;
-
-		/**
-		 * The minimum height; <code>0</code> pixels by default.
-		 */
-		public int minimumHeight = 0;
-
-		/**
-		 * Creates new layout object.
-		 * 
-		 * @param mw
-		 *            the margin width
-		 * @param mh
-		 *            the margin height
-		 * @param minW
-		 *            the minimum width
-		 * @param minH
-		 *            the minimum height
-		 */
-		public PageContainerFillLayout(int mw, int mh, int minW, int minH) {
-			marginWidth = mw;
-			marginHeight = mh;
-			minimumWidth = minW;
-			minimumHeight = minH;
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on Layout.
-		 */
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean force) {
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT) {
-				return new Point(wHint, hHint);
-			}
-			Point result = null;
-			Control[] children = composite.getChildren();
-			if (children.length > 0) {
-				result = new Point(0, 0);
-				for (int i = 0; i < children.length; i++) {
-					Point cp = children[i].computeSize(wHint, hHint, force);
-					result.x = Math.max(result.x, cp.x);
-					result.y = Math.max(result.y, cp.y);
-				}
-				result.x = result.x + 2 * marginWidth;
-				result.y = result.y + 2 * marginHeight;
-			} else {
-				Rectangle rect = composite.getClientArea();
-				result = new Point(rect.width, rect.height);
-			}
-			result.x = Math.max(result.x, minimumWidth);
-			result.y = Math.max(result.y, minimumHeight);
-			if (wHint != SWT.DEFAULT) {
-				result.x = wHint;
-			}
-			if (hHint != SWT.DEFAULT) {
-				result.y = hHint;
-			}
-			return result;
-		}
-
-		/**
-		 * Returns the client area for the given composite according to this
-		 * layout.
-		 * 
-		 * @param c
-		 *            the composite
-		 * @return the client area rectangle
-		 */
-		public Rectangle getClientArea(Composite c) {
-			Rectangle rect = c.getClientArea();
-			rect.x = rect.x + marginWidth;
-			rect.y = rect.y + marginHeight;
-			rect.width = rect.width - 2 * marginWidth;
-			rect.height = rect.height - 2 * marginHeight;
-			return rect;
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on Layout.
-		 */
-		public void layout(Composite composite, boolean force) {
-			Rectangle rect = getClientArea(composite);
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				children[i].setBounds(rect);
-			}
-		}
-
-		/**
-		 * Lays outs the page according to this layout.
-		 * 
-		 * @param w
-		 *            the control
-		 */
-		public void layoutPage(Control w) {
-			w.setBounds(getClientArea(w.getParent()));
-		}
-
-		/**
-		 * Sets the location of the page so that its origin is in the upper left
-		 * corner.
-		 * 
-		 * @param w
-		 *            the control
-		 */
-		public void setPageLocation(Control w) {
-			w.setLocation(marginWidth, marginHeight);
-		}
-	}
-
-	/**
-	 * Creates a new wizard dialog for the given wizard.
-	 * 
-	 * @param parentShell
-	 *            the parent shell
-	 * @param newWizard
-	 *            the wizard this dialog is working on
-	 */
-	public WizardDialog(Shell parentShell, IWizard newWizard) {
-		super(parentShell);
-		setShellStyle(SWT.CLOSE | SWT.MAX | SWT.TITLE | SWT.BORDER
-				| SWT.APPLICATION_MODAL | SWT.RESIZE | getDefaultOrientation());
-		setWizard(newWizard);
-		// since VAJava can't initialize an instance var with an anonymous
-		// class outside a constructor we do it here:
-		cancelListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				cancelPressed();
-			}
-		};
-	}
-
-	/**
-	 * About to start a long running operation triggered through the wizard.
-	 * Shows the progress monitor and disables the wizard's buttons and
-	 * controls.
-	 * 
-	 * @param enableCancelButton
-	 *            <code>true</code> if the Cancel button should be enabled,
-	 *            and <code>false</code> if it should be disabled
-	 * @return the saved UI state
-	 */
-	private Object aboutToStart(boolean enableCancelButton) {
-		Map savedState = null;
-		if (getShell() != null) {
-			// Save focus control
-			Control focusControl = getShell().getDisplay().getFocusControl();
-			if (focusControl != null && focusControl.getShell() != getShell()) {
-				focusControl = null;
-			}
-			boolean needsProgressMonitor = wizard.needsProgressMonitor();
-			cancelButton.removeSelectionListener(cancelListener);
-			// Set the busy cursor to all shells.
-			Display d = getShell().getDisplay();
-			waitCursor = new Cursor(d, SWT.CURSOR_WAIT);
-			setDisplayCursor(waitCursor);
-			// Set the arrow cursor to the cancel component.
-			arrowCursor = new Cursor(d, SWT.CURSOR_ARROW);
-			cancelButton.setCursor(arrowCursor);
-			// Deactivate shell
-			savedState = saveUIState(needsProgressMonitor && enableCancelButton);
-			if (focusControl != null) {
-				savedState.put(FOCUS_CONTROL, focusControl);
-			}
-			// Attach the progress monitor part to the cancel button
-			if (needsProgressMonitor) {
-				progressMonitorPart.attachToCancelComponent(cancelButton);
-				progressMonitorPart.setVisible(true);
-			}
-		}
-		return savedState;
-	}
-
-	/**
-	 * The Back button has been pressed.
-	 */
-	protected void backPressed() {
-		IWizardPage page = currentPage.getPreviousPage();
-		if (page == null) {
-			// should never happen since we have already visited the page
-			return;
-		}
-
-		// set flag to indicate that we are moving back
-		isMovingToPreviousPage = true;
-		// show the page
-		showPage(page);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void buttonPressed(int buttonId) {
-		switch (buttonId) {
-		case IDialogConstants.HELP_ID: {
-			helpPressed();
-			break;
-		}
-		case IDialogConstants.BACK_ID: {
-			backPressed();
-			break;
-		}
-		case IDialogConstants.NEXT_ID: {
-			nextPressed();
-			break;
-		}
-		case IDialogConstants.FINISH_ID: {
-			finishPressed();
-			break;
-		}
-			// The Cancel button has a listener which calls cancelPressed
-			// directly
-		}
-	}
-
-	/**
-	 * Calculates the difference in size between the given page and the page
-	 * container. A larger page results in a positive delta.
-	 * 
-	 * @param page
-	 *            the page
-	 * @return the size difference encoded as a
-	 *         <code>new Point(deltaWidth,deltaHeight)</code>
-	 */
-	private Point calculatePageSizeDelta(IWizardPage page) {
-		Control pageControl = page.getControl();
-		if (pageControl == null) {
-			// control not created yet
-			return new Point(0, 0);
-		}
-		Point contentSize = pageControl.computeSize(SWT.DEFAULT, SWT.DEFAULT,
-				true);
-		Rectangle rect = pageContainerLayout.getClientArea(pageContainer);
-		Point containerSize = new Point(rect.width, rect.height);
-		return new Point(Math.max(0, contentSize.x - containerSize.x), Math
-				.max(0, contentSize.y - containerSize.y));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected void cancelPressed() {
-		if (activeRunningOperations <= 0) {
-			// Close the dialog. The check whether the dialog can be
-			// closed or not is done in <code>okToClose</code>.
-			// This ensures that the check is also evaluated when the user
-			// presses the window's close button.
-			setReturnCode(CANCEL);
-			close();
-		} else {
-			cancelButton.setEnabled(false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.window.Window#close()
-	 */
-	public boolean close() {
-		if (okToClose()) {
-			return hardClose();
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Window.
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		// Register help listener on the shell
-		newShell.addHelpListener(new HelpListener() {
-			public void helpRequested(HelpEvent event) {
-				// call perform help on the current page
-				if (currentPage != null) {
-					currentPage.performHelp();
-				}
-			}
-		});
-	}
-
-	/**
-	 * Creates the buttons for this dialog's button bar.
-	 * <p>
-	 * The <code>WizardDialog</code> implementation of this framework method
-	 * prevents the parent composite's columns from being made equal width in
-	 * order to remove the margin between the Back and Next buttons.
-	 * </p>
-	 * 
-	 * @param parent
-	 *            the parent composite to contain the buttons
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		((GridLayout) parent.getLayout()).makeColumnsEqualWidth = false;
-		if (wizard.isHelpAvailable()) {
-			helpButton = createButton(parent, IDialogConstants.HELP_ID,
-					IDialogConstants.HELP_LABEL, false);
-		}
-		if (wizard.needsPreviousAndNextButtons()) {
-			createPreviousAndNextButtons(parent);
-		}
-		finishButton = createButton(parent, IDialogConstants.FINISH_ID,
-				IDialogConstants.FINISH_LABEL, true);
-		cancelButton = createCancelButton(parent);
-		
-		if (parent.getDisplay().getDismissalAlignment() == SWT.RIGHT) {
-            // Make the default button the right-most button.
-            // See also special code in org.eclipse.jface.dialogs.Dialog#initializeBounds()
-			finishButton.moveBelow(null);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#setButtonLayoutData(org.eclipse.swt.widgets.Button)
-	 */
-	protected void setButtonLayoutData(Button button) {
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
-
-		// On large fonts this can make this dialog huge
-		widthHint = Math.min(widthHint,
-				button.getDisplay().getBounds().width / 5);
-		Point minSize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-		data.widthHint = Math.max(widthHint, minSize.x);
-
-		button.setLayoutData(data);
-	}
-
-	/**
-	 * Creates the Cancel button for this wizard dialog. Creates a standard (<code>SWT.PUSH</code>)
-	 * button and registers for its selection events. Note that the number of
-	 * columns in the button bar composite is incremented. The Cancel button is
-	 * created specially to give it a removeable listener.
-	 * 
-	 * @param parent
-	 *            the parent button bar
-	 * @return the new Cancel button
-	 */
-	private Button createCancelButton(Composite parent) {
-		// increment the number of columns in the button bar
-		((GridLayout) parent.getLayout()).numColumns++;
-		Button button = new Button(parent, SWT.PUSH);
-		button.setText(IDialogConstants.CANCEL_LABEL);
-		setButtonLayoutData(button);
-		button.setFont(parent.getFont());
-		button.setData(new Integer(IDialogConstants.CANCEL_ID));
-		button.addSelectionListener(cancelListener);
-		return button;
-	}
-
-	/**
-	 * Return the cancel button if the id is a the cancel id.
-	 * 
-	 * @param id
-	 *            the button id
-	 * @return the button corresponding to the button id
-	 */
-	protected Button getButton(int id) {
-		if (id == IDialogConstants.CANCEL_ID) {
-			return cancelButton;
-		}
-		return super.getButton(id);
-	}
-
-	/**
-	 * The <code>WizardDialog</code> implementation of this
-	 * <code>Window</code> method calls call <code>IWizard.addPages</code>
-	 * to allow the current wizard to add extra pages, then
-	 * <code>super.createContents</code> to create the controls. It then calls
-	 * <code>IWizard.createPageControls</code> to allow the wizard to
-	 * pre-create their page controls prior to opening, so that the wizard opens
-	 * to the correct size. And finally it shows the first page.
-	 */
-	protected Control createContents(Composite parent) {
-		// Allow the wizard to add pages to itself
-		// Need to call this now so page count is correct
-		// for determining if next/previous buttons are needed
-		wizard.addPages();
-		Control contents = super.createContents(parent);
-		// Allow the wizard pages to precreate their page controls
-		createPageControls();
-		// Show the first page
-		showStartingPage();
-		return contents;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on Dialog.
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		// Build the Page container
-		pageContainer = createPageContainer(composite);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = pageWidth;
-		gd.heightHint = pageHeight;
-		pageContainer.setLayoutData(gd);
-		pageContainer.setFont(parent.getFont());
-		// Insert a progress monitor
-		GridLayout pmlayout = new GridLayout();
-		pmlayout.numColumns = 1;
-		progressMonitorPart = createProgressMonitorPart(composite, pmlayout);
-		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
-		progressMonitorPart.setLayoutData(gridData);
-		progressMonitorPart.setVisible(false);
-		// Build the separator line
-		Label separator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
-		separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		applyDialogFont(progressMonitorPart);
-		return composite;
-	}
-
-	/**
-	 * Create the progress monitor part in the receiver.
-	 * 
-	 * @param composite
-	 * @param pmlayout
-	 * @return ProgressMonitorPart
-	 */
-	protected ProgressMonitorPart createProgressMonitorPart(
-			Composite composite, GridLayout pmlayout) {
-		return new ProgressMonitorPart(composite, pmlayout, SWT.DEFAULT) {
-			String currentTask = null;
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#setBlocked(org.eclipse.core.runtime.IStatus)
-			 */
-			public void setBlocked(IStatus reason) {
-				super.setBlocked(reason);
-				if (!lockedUI) {
-					getBlockedHandler().showBlocked(getShell(), this, reason,
-							currentTask);
-				}
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#clearBlocked()
-			 */
-			public void clearBlocked() {
-				super.clearBlocked();
-				if (!lockedUI) {
-					getBlockedHandler().clearBlocked();
-				}
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#beginTask(java.lang.String,
-			 *      int)
-			 */
-			public void beginTask(String name, int totalWork) {
-				super.beginTask(name, totalWork);
-				currentTask = name;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#setTaskName(java.lang.String)
-			 */
-			public void setTaskName(String name) {
-				super.setTaskName(name);
-				currentTask = name;
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.wizard.ProgressMonitorPart#subTask(java.lang.String)
-			 */
-			public void subTask(String name) {
-				super.subTask(name);
-				// If we haven't got anything yet use this value for more
-				// context
-				if (currentTask == null) {
-					currentTask = name;
-				}
-			}
-		};
-	}
-
-	/**
-	 * Creates the container that holds all pages.
-	 * 
-	 * @param parent
-	 * @return Composite
-	 */
-	private Composite createPageContainer(Composite parent) {
-		Composite result = new Composite(parent, SWT.NULL);
-		result.setLayout(pageContainerLayout);
-		return result;
-	}
-
-	/**
-	 * Allow the wizard's pages to pre-create their page controls. This allows
-	 * the wizard dialog to open to the correct size.
-	 */
-	private void createPageControls() {
-		// Allow the wizard pages to precreate their page controls
-		// This allows the wizard to open to the correct size
-		wizard.createPageControls(pageContainer);
-		// Ensure that all of the created pages are initially not visible
-		IWizardPage[] pages = wizard.getPages();
-		for (int i = 0; i < pages.length; i++) {
-			IWizardPage page = pages[i];
-			if (page.getControl() != null) {
-				page.getControl().setVisible(false);
-			}
-		}
-	}
-
-	/**
-	 * Creates the Previous and Next buttons for this wizard dialog. Creates
-	 * standard (<code>SWT.PUSH</code>) buttons and registers for their
-	 * selection events. Note that the number of columns in the button bar
-	 * composite is incremented. These buttons are created specially to prevent
-	 * any space between them.
-	 * 
-	 * @param parent
-	 *            the parent button bar
-	 * @return a composite containing the new buttons
-	 */
-	private Composite createPreviousAndNextButtons(Composite parent) {
-		// increment the number of columns in the button bar
-		((GridLayout) parent.getLayout()).numColumns++;
-		Composite composite = new Composite(parent, SWT.NONE);
-		// create a layout with spacing and margins appropriate for the font
-		// size.
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 0; // will be incremented by createButton
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = 0;
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_CENTER
-				| GridData.VERTICAL_ALIGN_CENTER);
-		composite.setLayoutData(data);
-		composite.setFont(parent.getFont());
-		backButton = createButton(composite, IDialogConstants.BACK_ID,
-				IDialogConstants.BACK_LABEL, false);
-		nextButton = createButton(composite, IDialogConstants.NEXT_ID,
-				IDialogConstants.NEXT_LABEL, false);
-		return composite;
-	}
-
-	/**
-	 * Creates and return a new wizard closing dialog without openiong it.
-	 * 
-	 * @return MessageDalog
-	 */
-	private MessageDialog createWizardClosingDialog() {
-		MessageDialog result = new MessageDialog(getShell(),
-				JFaceResources.getString("WizardClosingDialog.title"), //$NON-NLS-1$
-				null,
-				JFaceResources.getString("WizardClosingDialog.message"), //$NON-NLS-1$
-				MessageDialog.QUESTION,
-				new String[] { IDialogConstants.OK_LABEL }, 0) {
-			protected int getShellStyle() {
-				return super.getShellStyle() | SWT.SHEET;
-			}
-		};
-		return result;
-	}
-
-	/**
-	 * The Finish button has been pressed.
-	 */
-	protected void finishPressed() {
-		// Wizards are added to the nested wizards list in setWizard.
-		// This means that the current wizard is always the last wizard in the
-		// list.
-		// Note that we first call the current wizard directly (to give it a
-		// chance to
-		// abort, do work, and save state) then call the remaining n-1 wizards
-		// in the
-		// list (to save state).
-		if (wizard.performFinish()) {
-			// Call perform finish on outer wizards in the nested chain
-			// (to allow them to save state for example)
-			for (int i = 0; i < nestedWizards.size() - 1; i++) {
-				((IWizard) nestedWizards.get(i)).performFinish();
-			}
-			// Hard close the dialog.
-			setReturnCode(OK);
-			hardClose();
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public IWizardPage getCurrentPage() {
-		return currentPage;
-	}
-
-	/**
-	 * Returns the progress monitor for this wizard dialog (if it has one).
-	 * 
-	 * @return the progress monitor, or <code>null</code> if this wizard
-	 *         dialog does not have one
-	 */
-	protected IProgressMonitor getProgressMonitor() {
-		return progressMonitorPart;
-	}
-
-	/**
-	 * Returns the wizard this dialog is currently displaying.
-	 * 
-	 * @return the current wizard
-	 */
-	protected IWizard getWizard() {
-		return wizard;
-	}
-
-	/**
-	 * Closes this window.
-	 * 
-	 * @return <code>true</code> if the window is (or was already) closed, and
-	 *         <code>false</code> if it is still open
-	 */
-	private boolean hardClose() {
-		// inform wizards
-		for (int i = 0; i < createdWizards.size(); i++) {
-			IWizard createdWizard = (IWizard) createdWizards.get(i);
-			createdWizard.dispose();
-			// Remove this dialog as a parent from the managed wizard.
-			// Note that we do this after calling dispose as the wizard or
-			// its pages may need access to the container during
-			// dispose code
-			createdWizard.setContainer(null);
-		}
-		return super.close();
-	}
-
-	/**
-	 * The Help button has been pressed.
-	 */
-	protected void helpPressed() {
-		if (currentPage != null) {
-			currentPage.performHelp();
-		}
-	}
-
-	/**
-	 * The Next button has been pressed.
-	 */
-	protected void nextPressed() {
-		IWizardPage page = currentPage.getNextPage();
-		if (page == null) {
-			// something must have happend getting the next page
-			return;
-		}
-
-		// show the next page
-		showPage(page);
-	}
-
-	/**
-	 * Notifies page changing listeners and returns result of page changing
-	 * processing to the sender.
-	 * 
-	 * @param eventType
-	 * @return <code>true</code> if page changing listener completes
-	 *         successfully, <code>false</code> otherwise
-	 */
-	private boolean doPageChanging(IWizardPage targetPage) {
-		PageChangingEvent e = new PageChangingEvent(this, getCurrentPage(),
-				targetPage);
-		firePageChanging(e);
-		// Prevent navigation if necessary
-		return e.doit;
-	}
-
-	/**
-	 * Checks whether it is alright to close this wizard dialog and performed
-	 * standard cancel processing. If there is a long running operation in
-	 * progress, this method posts an alert message saying that the wizard
-	 * cannot be closed.
-	 * 
-	 * @return <code>true</code> if it is alright to close this dialog, and
-	 *         <code>false</code> if it is not
-	 */
-	private boolean okToClose() {
-		if (activeRunningOperations > 0) {
-			synchronized (this) {
-				windowClosingDialog = createWizardClosingDialog();
-			}
-			windowClosingDialog.open();
-			synchronized (this) {
-				windowClosingDialog = null;
-			}
-			return false;
-		}
-		return wizard.performCancel();
-	}
-
-	/**
-	 * Restores the enabled/disabled state of the given control.
-	 * 
-	 * @param w
-	 *            the control
-	 * @param h
-	 *            the map (key type: <code>String</code>, element type:
-	 *            <code>Boolean</code>)
-	 * @param key
-	 *            the key
-	 * @see #saveEnableStateAndSet
-	 */
-	private void restoreEnableState(Control w, Map h, String key) {
-		if (w != null) {
-			Boolean b = (Boolean) h.get(key);
-			if (b != null) {
-				w.setEnabled(b.booleanValue());
-			}
-		}
-	}
-
-	/**
-	 * Restores the enabled/disabled state of the wizard dialog's buttons and
-	 * the tree of controls for the currently showing page.
-	 * 
-	 * @param state
-	 *            a map containing the saved state as returned by
-	 *            <code>saveUIState</code>
-	 * @see #saveUIState
-	 */
-	private void restoreUIState(Map state) {
-		restoreEnableState(backButton, state, "back"); //$NON-NLS-1$
-		restoreEnableState(nextButton, state, "next"); //$NON-NLS-1$
-		restoreEnableState(finishButton, state, "finish"); //$NON-NLS-1$
-		restoreEnableState(cancelButton, state, "cancel"); //$NON-NLS-1$
-		restoreEnableState(helpButton, state, "help"); //$NON-NLS-1$
-		Object pageValue = state.get("page"); //$NON-NLS-1$
-		if (pageValue != null) {
-			((ControlEnableState) pageValue).restore();
-		}
-	}
-
-	/**
-	 * This implementation of IRunnableContext#run(boolean, boolean,
-	 * IRunnableWithProgress) blocks until the runnable has been run, regardless
-	 * of the value of <code>fork</code>. It is recommended that
-	 * <code>fork</code> is set to true in most cases. If <code>fork</code>
-	 * is set to <code>false</code>, the runnable will run in the UI thread
-	 * and it is the runnable's responsibility to call
-	 * <code>Display.readAndDispatch()</code> to ensure UI responsiveness.
-	 * 
-	 * UI state is saved prior to executing the long-running operation and is
-	 * restored after the long-running operation completes executing. Any
-	 * attempt to change the UI state of the wizard in the long-running
-	 * operation will be nullified when original UI state is restored.
-	 * 
-	 */
-	public void run(boolean fork, boolean cancelable,
-			IRunnableWithProgress runnable) throws InvocationTargetException,
-			InterruptedException {
-		// The operation can only be canceled if it is executed in a separate
-		// thread.
-		// Otherwise the UI is blocked anyway.
-		Object state = null;
-		if (activeRunningOperations == 0) {
-			state = aboutToStart(fork && cancelable);
-		}
-		activeRunningOperations++;
-		try {
-			if (!fork) {
-				lockedUI = true;
-			}
-			ModalContext.run(runnable, fork, getProgressMonitor(), getShell()
-					.getDisplay());
-			lockedUI = false;
-		} finally {
-			activeRunningOperations--;
-			// Stop if this is the last one
-			if (state != null) {
-				stopped(state);
-			}
-		}
-	}
-
-	/**
-	 * Saves the enabled/disabled state of the given control in the given map,
-	 * which must be modifiable.
-	 * 
-	 * @param w
-	 *            the control, or <code>null</code> if none
-	 * @param h
-	 *            the map (key type: <code>String</code>, element type:
-	 *            <code>Boolean</code>)
-	 * @param key
-	 *            the key
-	 * @param enabled
-	 *            <code>true</code> to enable the control, and
-	 *            <code>false</code> to disable it
-	 * @see #restoreEnableState(Control, Map, String)
-	 */
-	private void saveEnableStateAndSet(Control w, Map h, String key,
-			boolean enabled) {
-		if (w != null) {
-			h.put(key, w.getEnabled() ? Boolean.TRUE : Boolean.FALSE);
-			w.setEnabled(enabled);
-		}
-	}
-
-	/**
-	 * Captures and returns the enabled/disabled state of the wizard dialog's
-	 * buttons and the tree of controls for the currently showing page. All
-	 * these controls are disabled in the process, with the possible exception
-	 * of the Cancel button.
-	 * 
-	 * @param keepCancelEnabled
-	 *            <code>true</code> if the Cancel button should remain
-	 *            enabled, and <code>false</code> if it should be disabled
-	 * @return a map containing the saved state suitable for restoring later
-	 *         with <code>restoreUIState</code>
-	 * @see #restoreUIState
-	 */
-	private Map saveUIState(boolean keepCancelEnabled) {
-		Map savedState = new HashMap(10);
-		saveEnableStateAndSet(backButton, savedState, "back", false); //$NON-NLS-1$
-		saveEnableStateAndSet(nextButton, savedState, "next", false); //$NON-NLS-1$
-		saveEnableStateAndSet(finishButton, savedState, "finish", false); //$NON-NLS-1$
-		saveEnableStateAndSet(cancelButton, savedState,
-				"cancel", keepCancelEnabled); //$NON-NLS-1$
-		saveEnableStateAndSet(helpButton, savedState, "help", false); //$NON-NLS-1$
-		if (currentPage != null) {
-			savedState
-					.put(
-							"page", ControlEnableState.disable(currentPage.getControl())); //$NON-NLS-1$
-		}
-		return savedState;
-	}
-
-	/**
-	 * Sets the given cursor for all shells currently active for this window's
-	 * display.
-	 * 
-	 * @param c
-	 *            the cursor
-	 */
-	private void setDisplayCursor(Cursor c) {
-		Shell[] shells = getShell().getDisplay().getShells();
-		for (int i = 0; i < shells.length; i++) {
-			shells[i].setCursor(c);
-		}
-	}
-
-	/**
-	 * Sets the minimum page size used for the pages.
-	 * 
-	 * @param minWidth
-	 *            the minimum page width
-	 * @param minHeight
-	 *            the minimum page height
-	 * @see #setMinimumPageSize(Point)
-	 */
-	public void setMinimumPageSize(int minWidth, int minHeight) {
-		Assert.isTrue(minWidth >= 0 && minHeight >= 0);
-		pageContainerLayout.minimumWidth = minWidth;
-		pageContainerLayout.minimumHeight = minHeight;
-	}
-
-	/**
-	 * Sets the minimum page size used for the pages.
-	 * 
-	 * @param size
-	 *            the page size encoded as <code>new Point(width,height)</code>
-	 * @see #setMinimumPageSize(int,int)
-	 */
-	public void setMinimumPageSize(Point size) {
-		setMinimumPageSize(size.x, size.y);
-	}
-
-	/**
-	 * Sets the size of all pages. The given size takes precedence over computed
-	 * sizes.
-	 * 
-	 * @param width
-	 *            the page width
-	 * @param height
-	 *            the page height
-	 * @see #setPageSize(Point)
-	 */
-	public void setPageSize(int width, int height) {
-		pageWidth = width;
-		pageHeight = height;
-	}
-
-	/**
-	 * Sets the size of all pages. The given size takes precedence over computed
-	 * sizes.
-	 * 
-	 * @param size
-	 *            the page size encoded as <code>new Point(width,height)</code>
-	 * @see #setPageSize(int,int)
-	 */
-	public void setPageSize(Point size) {
-		setPageSize(size.x, size.y);
-	}
-
-	/**
-	 * Sets the wizard this dialog is currently displaying.
-	 * 
-	 * @param newWizard
-	 *            the wizard
-	 */
-	protected void setWizard(IWizard newWizard) {
-		wizard = newWizard;
-		wizard.setContainer(this);
-		if (!createdWizards.contains(wizard)) {
-			createdWizards.add(wizard);
-			// New wizard so just add it to the end of our nested list
-			nestedWizards.add(wizard);
-			if (pageContainer != null) {
-				// Dialog is already open
-				// Allow the wizard pages to precreate their page controls
-				// This allows the wizard to open to the correct size
-				createPageControls();
-				// Ensure the dialog is large enough for the wizard
-				updateSizeForWizard(wizard);
-				pageContainer.layout(true);
-			}
-		} else {
-			// We have already seen this wizard, if it is the previous wizard
-			// on the nested list then we assume we have gone back and remove
-			// the last wizard from the list
-			int size = nestedWizards.size();
-			if (size >= 2 && nestedWizards.get(size - 2) == wizard) {
-				nestedWizards.remove(size - 1);
-			} else {
-				// Assume we are going forward to revisit a wizard
-				nestedWizards.add(wizard);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void showPage(IWizardPage page) {
-		if (page == null || page == currentPage) {
-			return;
-		}
-
-		if (!isMovingToPreviousPage) {
-			// remember my previous page.
-			page.setPreviousPage(currentPage);
-		} else {
-			isMovingToPreviousPage = false;
-		}
-
-		// If page changing evaluation unsuccessful, do not change the page
-		if (!doPageChanging(page))
-			return;
-
-		// Update for the new page in a busy cursor if possible
-		if (getContents() == null) {
-			updateForPage(page);
-		} else {
-			final IWizardPage finalPage = page;
-			BusyIndicator.showWhile(getContents().getDisplay(), new Runnable() {
-				public void run() {
-					updateForPage(finalPage);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Update the receiver for the new page.
-	 * 
-	 * @param page
-	 */
-	private void updateForPage(IWizardPage page) {
-		// ensure this page belongs to the current wizard
-		if (wizard != page.getWizard()) {
-			setWizard(page.getWizard());
-		}
-		// ensure that page control has been created
-		// (this allows lazy page control creation)
-		if (page.getControl() == null) {
-			page.createControl(pageContainer);
-			// the page is responsible for ensuring the created control is
-			// accessable
-			// via getControl.
-			Assert.isNotNull(page.getControl(), JFaceResources.format(
-					JFaceResources.getString("WizardDialog.missingSetControl"), //$NON-NLS-1$
-					new Object[] { page.getName() }));
-			// ensure the dialog is large enough for this page
-			updateSize(page);
-		}
-		// make the new page visible
-		IWizardPage oldPage = currentPage;
-		currentPage = page;
-
-		currentPage.setVisible(true);
-		if (oldPage != null) {
-			oldPage.setVisible(false);
-		}
-		// update the dialog controls
-		update();
-	}
-
-	/**
-	 * Shows the starting page of the wizard.
-	 */
-	private void showStartingPage() {
-		currentPage = wizard.getStartingPage();
-		if (currentPage == null) {
-			// something must have happend getting the page
-			return;
-		}
-		// ensure the page control has been created
-		if (currentPage.getControl() == null) {
-			currentPage.createControl(pageContainer);
-			// the page is responsible for ensuring the created control is
-			// accessable
-			// via getControl.
-			Assert.isNotNull(currentPage.getControl());
-			// we do not need to update the size since the call
-			// to initialize bounds has not been made yet.
-		}
-		// make the new page visible
-		currentPage.setVisible(true);
-		// update the dialog controls
-		update();
-	}
-
-	/**
-	 * A long running operation triggered through the wizard was stopped either
-	 * by user input or by normal end. Hides the progress monitor and restores
-	 * the enable state wizard's buttons and controls.
-	 * 
-	 * @param savedState
-	 *            the saved UI state as returned by <code>aboutToStart</code>
-	 * @see #aboutToStart
-	 */
-	private void stopped(Object savedState) {
-		if (getShell() != null && !getShell().isDisposed()) {
-			if (wizard.needsProgressMonitor()) {
-				progressMonitorPart.setVisible(false);
-				progressMonitorPart.removeFromCancelComponent(cancelButton);
-			}
-			Map state = (Map) savedState;
-			restoreUIState(state);
-			cancelButton.addSelectionListener(cancelListener);
-			setDisplayCursor(null);
-			cancelButton.setCursor(null);
-			waitCursor.dispose();
-			waitCursor = null;
-			arrowCursor.dispose();
-			arrowCursor = null;
-			Control focusControl = (Control) state.get(FOCUS_CONTROL);
-			if (focusControl != null && !focusControl.isDisposed()) {
-				focusControl.setFocus();
-			}
-		}
-	}
-
-	/**
-	 * Updates this dialog's controls to reflect the current page.
-	 */
-	protected void update() {
-		// Update the window title
-		updateWindowTitle();
-		// Update the title bar
-		updateTitleBar();
-		// Update the buttons
-		updateButtons();
-
-		// Fires the page change event
-		firePageChanged(new PageChangedEvent(this, getCurrentPage()));
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateButtons() {
-		boolean canFlipToNextPage = false;
-		boolean canFinish = wizard.canFinish();
-		if (backButton != null) {
-			backButton.setEnabled(currentPage.getPreviousPage() != null);
-		}
-		if (nextButton != null) {
-			canFlipToNextPage = currentPage.canFlipToNextPage();
-			nextButton.setEnabled(canFlipToNextPage);
-		}
-		finishButton.setEnabled(canFinish);
-		// finish is default unless it is diabled and next is enabled
-		if (canFlipToNextPage && !canFinish) {
-			getShell().setDefaultButton(nextButton);
-		} else {
-			getShell().setDefaultButton(finishButton);
-		}
-	}
-
-	/**
-	 * Update the message line with the page's description.
-	 * <p>
-	 * A discription is shown only if there is no message or error message.
-	 * </p>
-	 */
-	private void updateDescriptionMessage() {
-		pageDescription = currentPage.getDescription();
-		setMessage(pageDescription);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateMessage() {
-
-		if (currentPage == null) {
-			return;
-		}
-
-		pageMessage = currentPage.getMessage();
-		if (pageMessage != null && currentPage instanceof IMessageProvider) {
-			pageMessageType = ((IMessageProvider) currentPage).getMessageType();
-		} else {
-			pageMessageType = IMessageProvider.NONE;
-		}
-		if (pageMessage == null) {
-			setMessage(pageDescription);
-		} else {
-			setMessage(pageMessage, pageMessageType);
-		}
-		setErrorMessage(currentPage.getErrorMessage());
-	}
-
-	/**
-	 * Changes the shell size to the given size, ensuring that it is no larger
-	 * than the display bounds.
-	 * 
-	 * @param width
-	 *            the shell width
-	 * @param height
-	 *            the shell height
-	 */
-	private void setShellSize(int width, int height) {
-		Rectangle size = getShell().getBounds();
-		size.height = height;
-		size.width = width;
-		getShell().setBounds(getConstrainedShellBounds(size));
-	}
-
-	/**
-	 * Computes the correct dialog size for the current page and resizes its
-	 * shell if nessessary. Also causes the container to refresh its layout.
-	 * 
-	 * @param page
-	 *            the wizard page to use to resize the dialog
-	 * @since 2.0
-	 */
-	protected void updateSize(IWizardPage page) {
-		if (page == null || page.getControl() == null) {
-			return;
-		}
-		updateSizeForPage(page);
-		pageContainerLayout.layoutPage(page.getControl());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.wizard.IWizardContainer2#updateSize()
-	 */
-	public void updateSize() {
-		updateSize(currentPage);
-	}
-
-	/**
-	 * Computes the correct dialog size for the given page and resizes its shell
-	 * if nessessary.
-	 * 
-	 * @param page
-	 *            the wizard page
-	 */
-	private void updateSizeForPage(IWizardPage page) {
-		// ensure the page container is large enough
-		Point delta = calculatePageSizeDelta(page);
-		if (delta.x > 0 || delta.y > 0) {
-			// increase the size of the shell
-			Shell shell = getShell();
-			Point shellSize = shell.getSize();
-			setShellSize(shellSize.x + delta.x, shellSize.y + delta.y);
-			constrainShellSize();
-		}
-	}
-
-	/**
-	 * Computes the correct dialog size for the given wizard and resizes its
-	 * shell if nessessary.
-	 * 
-	 * @param sizingWizard
-	 *            the wizard
-	 */
-	private void updateSizeForWizard(IWizard sizingWizard) {
-		Point delta = new Point(0, 0);
-		IWizardPage[] pages = sizingWizard.getPages();
-		for (int i = 0; i < pages.length; i++) {
-			// ensure the page container is large enough
-			Point pageDelta = calculatePageSizeDelta(pages[i]);
-			delta.x = Math.max(delta.x, pageDelta.x);
-			delta.y = Math.max(delta.y, pageDelta.y);
-		}
-		if (delta.x > 0 || delta.y > 0) {
-			// increase the size of the shell
-			Shell shell = getShell();
-			Point shellSize = shell.getSize();
-			setShellSize(shellSize.x + delta.x, shellSize.y + delta.y);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateTitleBar() {
-		String s = null;
-		if (currentPage != null) {
-			s = currentPage.getTitle();
-		}
-		if (s == null) {
-			s = ""; //$NON-NLS-1$
-		}
-		setTitle(s);
-		if (currentPage != null) {
-			setTitleImage(currentPage.getImage());
-			updateDescriptionMessage();
-		}
-		updateMessage();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IWizardContainer.
-	 */
-	public void updateWindowTitle() {
-		if (getShell() == null) {
-			// Not created yet
-			return;
-		}
-		String title = wizard.getWindowTitle();
-		if (title == null) {
-			title = ""; //$NON-NLS-1$
-		}
-		getShell().setText(title);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#getSelectedPage()
-	 */
-	public Object getSelectedPage() {
-		return getCurrentPage();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialog.IPageChangeProvider#addPageChangedListener()
-	 */
-	public void addPageChangedListener(IPageChangedListener listener) {
-		pageChangedListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialog.IPageChangeProvider#removePageChangedListener()
-	 */
-	public void removePageChangedListener(IPageChangedListener listener) {
-		pageChangedListeners.remove(listener);
-	}
-
-	/**
-	 * Notifies any selection changed listeners that the selected page has
-	 * changed. Only listeners registered at the time this method is called are
-	 * notified.
-	 * 
-	 * @param event
-	 *            a selection changed event
-	 * 
-	 * @see IPageChangedListener#pageChanged
-	 * 
-	 * @since 3.1
-	 */
-	protected void firePageChanged(final PageChangedEvent event) {
-		Object[] listeners = pageChangedListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final IPageChangedListener l = (IPageChangedListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.pageChanged(event);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Adds a listener for page changes to the list of page changing listeners
-	 * registered for this dialog. Has no effect if an identical listener is
-	 * already registered.
-	 * 
-	 * @param listener
-	 *            a page changing listener
-	 * @since 3.3
-	 */
-	public void addPageChangingListener(IPageChangingListener listener) {
-		pageChangingListeners.add(listener);
-	}
-
-	/**
-	 * Removes the provided page changing listener from the list of page
-	 * changing listeners registered for the dialog.
-	 * 
-	 * @param listener
-	 *            a page changing listener
-	 * @since 3.3
-	 */
-	public void removePageChangingListener(IPageChangingListener listener) {
-		pageChangingListeners.remove(listener);
-	}
-
-	/**
-	 * Notifies any page changing listeners that the currently selected dialog
-	 * page is changing. Only listeners registered at the time this method is
-	 * called are notified.
-	 * 
-	 * @param event
-	 *            a selection changing event
-	 * 
-	 * @see IPageChangingListener#handlePageChanging(PageChangingEvent)
-	 * @since 3.3
-	 */
-	protected void firePageChanging(final PageChangingEvent event) {
-		Object[] listeners = pageChangingListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final IPageChangingListener l = (IPageChangingListener) listeners[i];
-			SafeRunnable.run(new SafeRunnable() {
-				public void run() {
-					l.handlePageChanging(event);
-				}
-			});
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardPage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardPage.java
deleted file mode 100644
index 409cbdc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardPage.java
+++ /dev/null
@@ -1,336 +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.jface.wizard;
-
-import org.eclipse.jface.dialogs.DialogPage;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * An abstract base implementation of a wizard page.
- * <p>
- * Subclasses must implement the <code>createControl</code> method
- * to create the specific controls for the wizard page.
- * </p>
- * <p>
- * Subclasses may call the following methods to configure the wizard page:
- * <ul>
- *  <li><code>setDescription</code></li>
- *  <li><code>setErrorMessage</code></li>
- *  <li><code>setImageDescriptor</code></li>
- *  <li><code>setMessage</code></li>
- *  <li><code>setPageComplete</code></li>
- *  <li><code>setPreviousPage</code></li>
- *  <li><code>setTitle</code></li>
- * </ul>
- * </p>
- * <p>
- * Subclasses may override these methods if required:
- * <ul>
- *  <li><code>performHelp</code> - may be reimplemented to display help for the page</li>  
- * <li><code>canFlipToNextPage</code> - may be extended or reimplemented</li>
- *  <li><code>isPageComplete</code> - may be extended </li>
- *  <li><code>setDescription</code> - may be extended </li>
- *  <li><code>setTitle</code> - may be extended </li>
- *  <li><code>dispose</code> - may be extended to dispose additional allocated SWT resources</li>
- * </ul>
- * </p>
- * <p>
- * Note that clients are free to implement <code>IWizardPage</code> from scratch
- * instead of subclassing <code>WizardPage</code>. Correct implementations of
- * <code>IWizardPage</code> will work with any correct implementation of 
- * <code>IWizard</code>.
- * </p>
- */
-public abstract class WizardPage extends DialogPage implements IWizardPage {
-
-    /**
-     * This page's name.
-     */
-    private String name;
-
-    /**
-     * The wizard to which this page belongs; <code>null</code>
-     * if this page has yet to be added to a wizard.
-     */
-    private IWizard wizard = null;
-
-    /**
-     * Indicates whether this page is complete.
-     */
-    private boolean isPageComplete = true;
-
-    /**
-     * The page that was shown right before this page became visible;
-     * <code>null</code> if none.
-     */
-    private IWizardPage previousPage = null;
-
-    /**
-     * Creates a new wizard page with the given name, and
-     * with no title or image.
-     *
-     * @param pageName the name of the page
-     */
-    protected WizardPage(String pageName) {
-        this(pageName, null, (ImageDescriptor) null);
-    }
-
-    /**
-     * Creates a new wizard page with the given name, title, and image.
-     *
-     * @param pageName the name of the page
-     * @param title the title for this wizard page,
-     *   or <code>null</code> if none
-     * @param titleImage the image descriptor for the title of this wizard page,
-     *   or <code>null</code> if none
-     */
-    protected WizardPage(String pageName, String title,
-            ImageDescriptor titleImage) {
-        super(title, titleImage);
-        Assert.isNotNull(pageName); // page name must not be null
-        name = pageName;
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this <code>IWizardPage</code>
-     * method returns <code>true</code> if this page is complete (<code>isPageComplete</code>)
-     * and there is a next page to flip to. Subclasses may override (extend or reimplement).
-     *
-     * @see #getNextPage
-     * @see #isPageComplete()
-     */
-    public boolean canFlipToNextPage() {
-        return isPageComplete() && getNextPage() != null;
-    }
-
-    /**
-     * Returns the wizard container for this wizard page.
-     *
-     * @return the wizard container, or <code>null</code> if this
-     *   wizard page has yet to be added to a wizard, or the
-     *   wizard has yet to be added to a container
-     */
-    protected IWizardContainer getContainer() {
-        if (wizard == null) {
-			return null;
-		}
-        return wizard.getContainer();
-    }
-
-    /**
-     * Returns the dialog settings for this wizard page.
-     *
-     * @return the dialog settings, or <code>null</code> if none
-     */
-    protected IDialogSettings getDialogSettings() {
-        if (wizard == null) {
-			return null;
-		}
-        return wizard.getDialogSettings();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public Image getImage() {
-        Image result = super.getImage();
-
-        if (result == null && wizard != null) {
-			return wizard.getDefaultPageImage();
-		}
-
-        return result;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizardPage.
-     */
-    public String getName() {
-        return name;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizardPage.
-     * The default behavior is to ask the wizard for the next page.
-     */
-    public IWizardPage getNextPage() {
-        if (wizard == null) {
-			return null;
-		}
-        return wizard.getNextPage(this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizardPage.
-     * The default behavior is return the cached previous back or,
-     * lacking that, to ask the wizard for the previous page.
-     */
-    public IWizardPage getPreviousPage() {
-        if (previousPage != null) {
-			return previousPage;
-		}
-
-        if (wizard == null) {
-			return null;
-		}
-
-        return wizard.getPreviousPage(this);
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this method declared on
-     * <code>DialogPage</code> returns the shell of the container.
-     * The advantage of this implementation is that the shell is accessable
-     * once the container is created even though this page's control may not 
-     * yet be created.
-     */
-    public Shell getShell() {
-
-        IWizardContainer container = getContainer();
-        if (container == null) {
-			return null;
-		}
-
-        // Ask the wizard since our contents may not have been created.
-        return container.getShell();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizardPage.
-     */
-    public IWizard getWizard() {
-        return wizard;
-    }
-
-    /**
-     * Returns whether this page is the current one in the wizard's container.
-     *
-     * @return <code>true</code> if the page is active,
-     *  and <code>false</code> otherwise
-     */
-    protected boolean isCurrentPage() {
-        return (getContainer() != null && this == getContainer()
-                .getCurrentPage());
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this <code>IWizard</code> method 
-     * returns the value of an internal state variable set by
-     * <code>setPageComplete</code>. Subclasses may extend.
-     */
-    public boolean isPageComplete() {
-        return isPageComplete;
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this <code>IDialogPage</code>
-     * method extends the <code>DialogPage</code> implementation to update
-     * the wizard container title bar. Subclasses may extend.
-     */
-    public void setDescription(String description) {
-        super.setDescription(description);
-        if (isCurrentPage()) {
-			getContainer().updateTitleBar();
-		}
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this method 
-     * declared on <code>DialogPage</code> updates the container
-     * if this is the current page.
-     */
-    public void setErrorMessage(String newMessage) {
-        super.setErrorMessage(newMessage);
-        if (isCurrentPage()) {
-            getContainer().updateMessage();
-        }
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this method 
-     * declared on <code>DialogPage</code> updates the container
-     * if this page is the current page.
-     */
-    public void setImageDescriptor(ImageDescriptor image) {
-        super.setImageDescriptor(image);
-        if (isCurrentPage()) {
-			getContainer().updateTitleBar();
-		}
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this method 
-     * declared on <code>DialogPage</code> updates the container
-     * if this is the current page.
-     */
-    public void setMessage(String newMessage, int newType) {
-        super.setMessage(newMessage, newType);
-        if (isCurrentPage()) {
-			getContainer().updateMessage();
-		}
-    }
-
-    /**
-     * Sets whether this page is complete. 
-     * <p>
-     * This information is typically used by the wizard to decide
-     * when it is okay to move on to the next page or finish up.
-     * </p>
-     *
-     * @param complete <code>true</code> if this page is complete, and
-     *   and <code>false</code> otherwise
-     * @see #isPageComplete()
-     */
-    public void setPageComplete(boolean complete) {
-        isPageComplete = complete;
-        if (isCurrentPage()) {
-			getContainer().updateButtons();
-		}
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizardPage.
-     */
-    public void setPreviousPage(IWizardPage page) {
-        previousPage = page;
-    }
-
-    /**
-     * The <code>WizardPage</code> implementation of this <code>IDialogPage</code>
-     * method extends the <code>DialogPage</code> implementation to update
-     * the wizard container title bar. Subclasses may extend.
-     */
-    public void setTitle(String title) {
-        super.setTitle(title);
-        if (isCurrentPage()) {
-            getContainer().updateTitleBar();
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWizardPage.
-     */
-    public void setWizard(IWizard newWizard) {
-        wizard = newWizard;
-    }
-
-    /**
-     * Returns a printable representation of this wizard page suitable
-     * only for debug purposes.
-     */
-    public String toString() {
-        return name;
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardSelectionPage.java b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardSelectionPage.java
deleted file mode 100644
index 2fdfd9e..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/WizardSelectionPage.java
+++ /dev/null
@@ -1,140 +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.jface.wizard;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * An abstract implementation of a wizard page that manages a
- * set of embedded wizards.
- * <p>
- * A wizard selection page should present a list of wizard nodes 
- * corresponding to other wizards. When the end user selects one of
- * them from the list, the first page of the selected wizard becomes
- * the next page. The only new methods introduced by this class are 
- * <code>getSelectedNode</code> and <code>setSelectedNode</code>. 
- * Otherwise, the subclass contract is the same as <code>WizardPage</code>.
- * </p>
- */
-public abstract class WizardSelectionPage extends WizardPage {
-
-    /**
-     * The selected node; <code>null</code> if none.
-     */
-    private IWizardNode selectedNode = null;
-
-    /**
-     * List of wizard nodes that have cropped up in the past
-     * (element type: <code>IWizardNode</code>).
-     */
-    private List selectedWizardNodes = new ArrayList();
-
-    /**
-     * Creates a new wizard selection page with the given name, and
-     * with no title or image.
-     *
-     * @param pageName the name of the page
-     */
-    protected WizardSelectionPage(String pageName) {
-        super(pageName);
-        // Cannot finish from this page
-        setPageComplete(false);
-    }
-
-    /**
-     * Adds the given wizard node to the list of selected nodes if
-     * it is not already in the list.
-     *
-     * @param node the wizard node, or <code>null</code>
-     */
-    private void addSelectedNode(IWizardNode node) {
-        if (node == null) {
-			return;
-		}
-
-        if (selectedWizardNodes.contains(node)) {
-			return;
-		}
-
-        selectedWizardNodes.add(node);
-    }
-
-    /**
-     * The <code>WizardSelectionPage</code> implementation of 
-     * this <code>IWizardPage</code> method returns <code>true</code>
-     * if there is a selected node.
-     */
-    public boolean canFlipToNextPage() {
-        return selectedNode != null;
-    }
-
-    /**	
-     * The <code>WizardSelectionPage</code> implementation of an <code>IDialogPage</code>
-     * method disposes of all nested wizards. Subclasses may extend.
-     */
-    public void dispose() {
-        super.dispose();
-        // notify nested wizards
-        for (int i = 0; i < selectedWizardNodes.size(); i++) {
-            ((IWizardNode) selectedWizardNodes.get(i)).dispose();
-        }
-    }
-
-    /**
-     * The <code>WizardSelectionPage</code> implementation of 
-     * this <code>IWizardPage</code> method returns the first page 
-     * of the currently selected wizard if there is one.
-     */
-    public IWizardPage getNextPage() {
-        if (selectedNode == null) {
-			return null;
-		}
-
-        boolean isCreated = selectedNode.isContentCreated();
-
-        IWizard wizard = selectedNode.getWizard();
-
-        if (wizard == null) {
-            setSelectedNode(null);
-            return null;
-        }
-
-        if (!isCreated) {
-			// Allow the wizard to create its pages
-            wizard.addPages();
-		}
-
-        return wizard.getStartingPage();
-    }
-
-    /**
-     * Returns the currently selected wizard node within this page.
-     * 
-     * @return the wizard node, or <code>null</code> if no node is selected
-     */
-    public IWizardNode getSelectedNode() {
-        return selectedNode;
-    }
-
-    /**
-     * Sets or clears the currently selected wizard node within this page. 
-     * 
-     * @param node the wizard node, or <code>null</code> to clear
-     */
-    protected void setSelectedNode(IWizardNode node) {
-        addSelectedNode(node);
-        selectedNode = node;
-        if (isCurrentPage()) {
-			getContainer().updateButtons();
-		}
-    }
-}
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/images/page.gif b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/images/page.gif
deleted file mode 100644
index 4ed90dc..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/images/page.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/package.html b/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/package.html
deleted file mode 100644
index a262485..0000000
--- a/bundles/org.eclipse.jface/src/org/eclipse/jface/wizard/package.html
+++ /dev/null
@@ -1,47 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides a framework for wizards.
-<h2>
-Package Specification</h2>
-A wizard dialog is a specialized window for walking the end user through
-a sequence of steps; each step is presented on a separate page.
-<p>At the most abstract level, the protocol is given by 3 interfaces:
-<ul>
-<li>
-<tt>IWizard</tt> - a wizard consisting of several wizard pages</li>
-
-<li>
-<tt>IWizardPage</tt> - an individual wizard page</li>
-
-<li>
-<tt>IWizardContainer</tt> - the outside world from the point of view of
-a wizard</li>
-</ul>
-A wizard is any object implementing <tt>IWizard</tt>. The abstract base
-class <tt>Wizard</tt> is provided as a starting point; it is simpler to
-subclass <tt>Wizard</tt> than to implement <tt>IWizard</tt> from scratch.
-The main responsibility of a <tt>Wizard</tt> subclass is doing the real
-work when the wizard finishes.
-<p>Similarly, a wizard page is any object implementing <tt>IWizardPage</tt>.
-The abstract base class <tt>WizardPage</tt> is provided as a starting point.
-The main responsibility of a <tt>WizardPage</tt> subclass is providing
-the SWT controls and the backing logic for a single wizard page.
-<p><tt>WizardDialog</tt> is a ready-to-use JFace dialog that is instantiated
-with a wizard and acts as the wizard's container. This dialog has a standard
-layout: an area at the top containing the wizard's title, description,
-and image; the actual wizard page appears in the middle; below it is a
-progress indicator; and at the bottom is an area with a message line and
-a button bar containing Next, Back, Finish, Cancel, and Help buttons.
-<p><tt>WizardSelectionPage</tt>, a special abstract subclass of <tt>WizardPage</tt>,
-allows whole other wizards to be connected to a root page.
-<p>Note: None of the classes in this package maintain global state.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.browser/.classpath b/bundles/org.eclipse.ui.browser/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.browser/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.browser/.cvsignore b/bundles/org.eclipse.ui.browser/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.ui.browser/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/.options b/bundles/org.eclipse.ui.browser/.options
deleted file mode 100644
index 3481178..0000000
--- a/bundles/org.eclipse.ui.browser/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-# Debugging options for the org.eclipse.ui.browser plugin.
-
-# Turn on debugging for the org.eclipse.ui.browser plugin.
-org.eclipse.ui.browser/debug=false
diff --git a/bundles/org.eclipse.ui.browser/.project b/bundles/org.eclipse.ui.browser/.project
deleted file mode 100644
index 417d64a..0000000
--- a/bundles/org.eclipse.ui.browser/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.browser</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 849eb8b..0000000
--- a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Thu Mar 31 17:23:30 EST 2005
-eclipse.preferences.version=1
-encoding//src/org/eclipse/ui/internal/browser/Messages.properties=8859_1
diff --git a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 786358a..0000000
--- a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,24 +0,0 @@
-#Tue May 09 14:44:18 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9571ac6..0000000
--- a/bundles/org.eclipse.ui.browser/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Apr 18 11:27:52 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
diff --git a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF
deleted file mode 100644
index 2fbcb8f..0000000
--- a/bundles/org.eclipse.ui.browser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.browser; singleton:=true
-Bundle-Version: 3.2.400.qualifier
-Bundle-Activator: org.eclipse.ui.internal.browser.WebBrowserUIPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.browser,
- org.eclipse.ui.internal.browser;x-friends:="org.eclipse.ua.tests",
- org.eclipse.ui.internal.browser.browsers;x-internal:=true,
- org.eclipse.ui.internal.browser.macosx;x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.5.0,4.0.0)"
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.ui.browser/about.html b/bundles/org.eclipse.ui.browser/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.browser/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/build.properties b/bundles/org.eclipse.ui.browser/build.properties
deleted file mode 100644
index f301c6e..0000000
--- a/bundles/org.eclipse.ui.browser/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-bin.includes = icons/,\
-               .options,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               .,\
-               META-INF/
-src.includes = about.html,\
-               schema/
-source.. = src/
-output.. = bin/
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif
deleted file mode 100644
index 740e8ca..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_backward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif
deleted file mode 100644
index 1956789..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif
deleted file mode 100644
index d6b3bdc..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_go.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif
deleted file mode 100644
index 77efb69..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_home.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif
deleted file mode 100644
index 0c213c3..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_print.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif
deleted file mode 100644
index 3ca04d0..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif b/bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif
deleted file mode 100644
index 1543a11..0000000
--- a/bundles/org.eclipse.ui.browser/icons/clcl16/nav_stop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif
deleted file mode 100644
index 82b0e87..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_backward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif
deleted file mode 100644
index 3f3e5eb..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif
deleted file mode 100644
index 6df73de..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_go.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif
deleted file mode 100644
index 4d5d56e..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_home.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif
deleted file mode 100644
index 5150ba0..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_print.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif
deleted file mode 100644
index b248482..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif
deleted file mode 100644
index 4345d57..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/nav_stop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif b/bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif
deleted file mode 100644
index 4f6e43a..0000000
--- a/bundles/org.eclipse.ui.browser/icons/dlcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif
deleted file mode 100644
index 740e8ca..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_backward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif
deleted file mode 100644
index 1956789..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif
deleted file mode 100644
index d6b3bdc..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_go.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif
deleted file mode 100644
index 77efb69..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_home.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif
deleted file mode 100644
index 0c213c3..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_print.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif
deleted file mode 100644
index 3ca04d0..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_refresh.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif
deleted file mode 100644
index 1543a11..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/nav_stop.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif b/bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif
deleted file mode 100644
index 870934b..0000000
--- a/bundles/org.eclipse.ui.browser/icons/elcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif
deleted file mode 100644
index c7f06ad..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/1.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif
deleted file mode 100644
index 6c5e636..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/10.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif
deleted file mode 100644
index fcfd068..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/11.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif
deleted file mode 100644
index 354d703..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/12.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif
deleted file mode 100644
index b107a73..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/13.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif
deleted file mode 100644
index 5b4d065..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif
deleted file mode 100644
index 040e21b..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif
deleted file mode 100644
index 554a737..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/4.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif
deleted file mode 100644
index a929896..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/5.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif
deleted file mode 100644
index 402849d..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/6.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif
deleted file mode 100644
index 06c2ff3..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/7.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif
deleted file mode 100644
index 0aa9c48..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/8.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif b/bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif
deleted file mode 100644
index 658fc65..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/busy/9.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif b/bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif
deleted file mode 100644
index de1f948..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/external_browser.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif b/bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif
deleted file mode 100644
index 229c391..0000000
--- a/bundles/org.eclipse.ui.browser/icons/obj16/internal_browser.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/plugin.properties b/bundles/org.eclipse.ui.browser/plugin.properties
deleted file mode 100644
index 8b21ac5..0000000
--- a/bundles/org.eclipse.ui.browser/plugin.properties
+++ /dev/null
@@ -1,38 +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
-###############################################################################
-Plugin.name=Browser Support
-Plugin.providerName=Eclipse.org
-
-browser_extension_point_name=Web Browser
-
-viewWebBrowserTitle=Internal Web Browser
-viewWebBrowserSupportTitle= Web Browser
-preferenceWebBrowserTitle=Web Browser
-preferenceKeywords=HTML Firefox Mozilla Netscape Internet Opera Safari
-
-
-command.openBrowser.name=Open Browser
-command.openBrowser.description=Opens the default web browser.
-commandParameter.openBrowser.url.name=URL
-commandParameter.openBrowser.browserId.name=Browser Id
-commandParameter.openBrowser.name.name=Browser Name
-commandParameter.openBrowser.tooltip.name=Browser Tooltip
-
-browserInternetExplorer=Internet Explorer
-browserNetscape4=Netscape Communicator v4.x
-browserNetscape7=Netscape v7.x
-browserNetscape=Netscape
-browserMozilla=Mozilla
-browserOpera=Opera
-browserKonqueror=Konqueror
-browserGaleon=Galeon
-browserFirefox=Firefox
-browserCamino=Camino
diff --git a/bundles/org.eclipse.ui.browser/plugin.xml b/bundles/org.eclipse.ui.browser/plugin.xml
deleted file mode 100644
index 07866ff..0000000
--- a/bundles/org.eclipse.ui.browser/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.browser/schema/browsers.exsd b/bundles/org.eclipse.ui.browser/schema/browsers.exsd
deleted file mode 100644
index 0c67e2d..0000000
--- a/bundles/org.eclipse.ui.browser/schema/browsers.exsd
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.browser" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.ui.browser" id="browsers" name="Browsers"/>
-      </appinfo>
-      <documentation>
-         For providing web browsers capable of displaying html documents at a given URL.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="browser"/>
-         </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="browser">
-      <annotation>
-         <documentation>
-            An external web browser which will be displayed on the preference page General/Web Browsers providing the os attribute matches and a file is found in at least one of the specified locations.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="0" maxOccurs="unbounded">
-            <element ref="location"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the unique ID of the browser.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="factoryclass" type="string">
-            <annotation>
-               <documentation>
-                  the implementation class for the browser factory. This class must implement the &lt;samp&gt;org.eclipse.ui.browser.BrowserFactory&lt;/samp&gt; interface.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.help.browser.IBrowserFactory"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the browser (translatable).
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="os" type="string">
-            <annotation>
-               <documentation>
-                  comma separated list of operating systems on which to search for this browser at the specified locations. Only browsers with matching OS will be used.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="executable" type="string">
-            <annotation>
-               <documentation>
-                  the executable filename
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="location" type="string">
-      <annotation>
-         <documentation>
-            Default install locations. these locations should not contain the initial path, as it will be substituted with all known drives. (e.g. on Windows, a location of &quot;test.exe&quot; would look for &quot;c:\test.exe&quot;, &quot;d:\test.exe&quot;, etc. for all known drives.
-         </documentation>
-      </annotation>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         3.0 (originally added in release 2.0 as org.eclipse.help.ui.browser)
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         The following is a sample usage of the browsers extension point:
-
-&lt;p&gt;
-&lt;pre&gt;
- &lt;extension point=&quot;org.eclipse.ui.browser.browsers&quot;&gt;
-  &lt;browser
-     id=&quot;org.eclipse.ui.browser.firefox&quot;
-     name=Firefox
-     os=&quot;Win32&quot;
-     executable=&quot;firefox.exe&quot;
-     factoryclass=&quot;org.eclipse.ui.internal.browser.browsers.MozillaFactory&quot;&gt;
-     &lt;location&gt;Program Files\mozilla.org\Firefox\firefox.exe&lt;/location&gt;
-     &lt;location&gt;Program Files\Mozilla Firefox\firefox.exe&lt;/location&gt;
-   &lt;/browser&gt;
- &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiInfo"/>
-      </appinfo>
-      <documentation>
-         The supplied factory class must implement the &lt;samp&gt;org.eclipse.help.browser.IBrowserFactory&lt;/samp&gt; interface.
-Methods in that interface determine whether the factory is available on the given system, i.e. is capable
-of supplying browser instances, and create browser instances that implement IBrowser interface.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         The &lt;samp&gt;org.eclipse.help.base&lt;/samp&gt; and &lt;samp&gt;org.eclipse.help.ui&lt;/samp&gt; plug-ins contain implementation of browsers on common platforms.
-Other plug-ins can provide different implementations.  In the preferences, the user can select the default
-browser from among available browsers.
-      </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/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/browser/BrowserFactory.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/browser/BrowserFactory.java
deleted file mode 100644
index e98d206..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/browser/BrowserFactory.java
+++ /dev/null
@@ -1,41 +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.browser;
-
-import org.eclipse.ui.browser.IWebBrowser;
-/**
- * Implementators of <code>org.eclipse.ui.browser.browsers</code> extension
- * points must provide an implementation of this abstract class.
- * 
- * @since 3.1
- */
-public abstract class BrowserFactory {
-	/**
-	 * Checks whether the factory can work on the user system.
-	 * 
-	 * @return <code>false</code> if the factory can work on this system; for
-	 *    example the required native browser required by browser adapters that
-	 *    it creates is not installed, or <code>true</code> otherwise
-	 */
-	public boolean isAvailable() {
-		return true;
-	}
-
-	/**
-	 * Obtains a new instance of a web browser.
-	 * 
-	 * @param id the browser id
-	 * @param location the browser location
-	 * @param parameters the browser parameters
-	 * @return an instance of IWebBrowser
-	 */
-	public abstract IWebBrowser createBrowser(String id, String location, String parameters);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptor.java
deleted file mode 100644
index 01b4ebd..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptor.java
+++ /dev/null
@@ -1,80 +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.browser;
-
-import org.eclipse.ui.IMemento;
-/**
- * 
- */
-public class BrowserDescriptor implements IBrowserDescriptor {
-	private static final String MEMENTO_NAME = "name"; //$NON-NLS-1$
-	private static final String MEMENTO_LOCATION = "location"; //$NON-NLS-1$
-	private static final String MEMENTO_PARAMETERS = "parameters"; //$NON-NLS-1$
-
-	protected String name;
-	protected String location;
-	protected String parameters;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.browser.IWebBrowser#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.browser.IBrowserDescriptor#getLocation()
-	 */
-	public String getLocation() {
-		return location;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.browser.IBrowserDescriptor#getParameters()
-	 */
-	public String getParameters() {
-		return parameters;
-	}
-	
-	public void delete() {
-		BrowserManager.getInstance().removeWebBrowser(this);
-	}
-
-	public boolean isWorkingCopy() {
-		return false;
-	}
-
-	public IBrowserDescriptorWorkingCopy getWorkingCopy() {
-		return new BrowserDescriptorWorkingCopy(this);
-	}
-
-	protected void setInternal(IBrowserDescriptor browser) {
-		name = browser.getName();
-		location = browser.getLocation();
-		parameters = browser.getParameters();
-	}
-
-	protected void save(IMemento memento) {
-		memento.putString(MEMENTO_NAME, name);
-		memento.putString(MEMENTO_LOCATION, location);
-		memento.putString(MEMENTO_PARAMETERS, parameters);
-	}
-
-	protected void load(IMemento memento) {
-		name = memento.getString(MEMENTO_NAME);
-		location = memento.getString(MEMENTO_LOCATION);
-		parameters = memento.getString(MEMENTO_PARAMETERS);
-	}
-
-	public String toString() {
-		return "External Web browser: " + getName() + " / " + getLocation() + " / " + getParameters();   //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorDialog.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorDialog.java
deleted file mode 100644
index d569769..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorDialog.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     John J Barton 2008, Bug 248516 – [Browser] Update Window > Pref > General >Web Browsers UI
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.io.File;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.osgi.util.NLS;
-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.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-/**
- * 
- */
-public class BrowserDescriptorDialog extends Dialog {
-	protected IBrowserDescriptorWorkingCopy browser;
-	protected boolean isEdit;
-	protected Button newPageCheckbox;
-	protected Button clearHistoryCheckbox;
-	protected Button browseButton;
-	protected Text browserNameTextfield;
-	protected Text browserLocationTextfield;
-	protected Text browserParametersTextfield;
-	private Button okButton;
-	
-	interface StringModifyListener {
-		public void valueChanged(String s);
-	}
-	
-	/**
-	 * @param parentShell
-	 */
-	public BrowserDescriptorDialog(Shell parentShell, IBrowserDescriptorWorkingCopy browser) {
-		super(parentShell);
-		this.browser = browser;
-		isEdit = true;
-		setShellStyle( getShellStyle() | SWT.RESIZE );
-	}
-
-	public BrowserDescriptorDialog(Shell parentShell) {
-		super(parentShell);
-		browser = BrowserManager.getInstance().createExternalWebBrowser();
-		isEdit = false;
-		setShellStyle( getShellStyle() | SWT.RESIZE );
-	}
-
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		
-		if (isEdit)
-			shell.setText(Messages.editExternalBrowser);
-		else
-			shell.setText(Messages.createBrowser);
-	}
-
-	protected Text createText(Composite comp, String txt, final StringModifyListener listener, boolean multiLine) {
-		int style = SWT.BORDER;
-		if (multiLine) style = SWT.BORDER | SWT.V_SCROLL |  SWT.MULTI | SWT.WRAP;  
-		final Text text = new Text(comp, style);
-		if (txt != null)
-			text.setText(txt);
-
-		GridData data = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		data.widthHint = 450;
-		
-		if (multiLine) { // then expand this control as the dialog resizes
-			data.verticalAlignment= SWT.FILL; 
-			data.grabExcessVerticalSpace = true;
-		}
-		
-		GC gc = new GC (text);
-		org.eclipse.swt.graphics.FontMetrics fm = gc.getFontMetrics ();
-		int hHint = 8*fm.getHeight ();
-		gc.dispose ();
-
-		text.setSize(text.computeSize(SWT.DEFAULT , hHint));
-
-		text.setLayoutData(data);
-		if (listener != null)
-			text.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {	
-					listener.valueChanged(text.getText());
-				}
-			});
-		return text;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		Font font = parent.getFont();
-		Composite composite = (Composite) super.createDialogArea(parent);
-		((GridLayout)composite.getLayout()).numColumns = 3;
-		composite.setFont(font);
-		
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, ContextIds.PREF_BROWSER_DIALOG);
-		
-		SWTUtil.createLabel(composite, Messages.name).setFont(font);
-		browserNameTextfield = createText(composite, browser.getName(), new StringModifyListener() {
-			public void valueChanged(String s) {
-				browser.setName(s);
-				validateFields();
-			}
-		}, false);
-		browserNameTextfield.setFont(font);
-		
-		new Label(composite, SWT.NONE);
-	
-		SWTUtil.createLabel(composite, Messages.location).setFont(font);
-		browserLocationTextfield = createText(composite, browser.getLocation(), new StringModifyListener() {
-			public void valueChanged(String s) {
-				browser.setLocation(s);
-				validateFields();
-			}
-		}, false);
-		browserLocationTextfield.setFont(font);
-		
-		browseButton = SWTUtil.createButton(composite, Messages.browse);
-		browseButton.setFont(font);
-		browseButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
-				dialog.setText(Messages.browseMessage);
-				
-				String fname = browserLocationTextfield.getText();
-				
-				dialog.setFileName(fname);
-				fname = dialog.open();
-				
-				if (fname != null)
-					browserLocationTextfield.setText(fname);
-			}
-		});
-		
-		SWTUtil.createLabel(composite, Messages.parameters).setFont(font);
-		browserParametersTextfield = createText(composite, browser.getParameters(), new StringModifyListener() {
-			public void valueChanged(String s) {
-				browser.setParameters(s);
-			}
-		}, true);
-		browserParametersTextfield.setFont(font);
-
-		new Label(composite, SWT.NONE);
-		
-		new Label(composite, SWT.NONE);
-		Label urlLabel = new Label(composite, SWT.NONE);
-		urlLabel.setText(NLS.bind(Messages.parametersMessage, IBrowserDescriptor.URL_PARAMETER));
-		urlLabel.setFont(font);
-		
-		return composite;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-	 */
-	protected void okPressed() {
-		// do simple field validation to at least ensure target directory entered is valid pathname
-		try {
-		File file = new File(browser.getLocation());
-			if(!file.isFile()){
-				WebBrowserUtil.openError(Messages.locationInvalid);
-				return;
-			}
-		}
-		catch(Exception e){
-			WebBrowserUtil.openError(Messages.locationInvalid);
-			return;
-		}
-		
-		browser.save();
-		super.okPressed();
-	}
-	
-	private void setOKButtonEnabled(boolean curIsEnabled) {
-		if (okButton == null)
-			okButton = getButton(IDialogConstants.OK_ID);
-		
-		if (okButton != null)
-			okButton.setEnabled(curIsEnabled);
-	}
-	
-	protected Control createButtonBar(Composite parent) {
-		Control buttonControl = super.createButtonBar(parent);
-		validateFields();
-		return buttonControl;
-	}
-	
-	protected void validateFields() {
-		boolean valid = true;
-		
-		String name = browserNameTextfield.getText();
-		if (name == null || name.trim().length() < 1)
-			valid = false;
-		
-		String location = browserLocationTextfield.getText();
-		if (location == null || location.trim().length() < 1)
-			valid = false;
-		
-		setOKButtonEnabled(valid);
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorWorkingCopy.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorWorkingCopy.java
deleted file mode 100644
index 9df5d7e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserDescriptorWorkingCopy.java
+++ /dev/null
@@ -1,74 +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.browser;
-/**
- * 
- */
-public class BrowserDescriptorWorkingCopy extends BrowserDescriptor implements IBrowserDescriptorWorkingCopy {
-	protected BrowserDescriptor browser;
-
-	// creation
-	public BrowserDescriptorWorkingCopy() {
-		// do nothing
-	}
-
-	// working copy
-	public BrowserDescriptorWorkingCopy(BrowserDescriptor browser) {
-		this.browser = browser;
-		setInternal(browser);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.browser.IBrowserDescriptorWorkingCopy#setName(java.lang.String)
-	 */
-	public void setName(String name) {
-		if (name == null)
-			throw new IllegalArgumentException();
-		this.name = name;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.browser.IBrowserDescriptorWorkingCopy#setLocation(java.lang.String)
-	 */
-	public void setLocation(String location) {
-		this.location = location;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.browser.IBrowserDescriptorWorkingCopy#setParameters(java.lang.String)
-	 */
-	public void setParameters(String params) {
-		this.parameters = params;
-	}
-
-	public boolean isWorkingCopy() {
-		return true;
-	}
-	
-	public IBrowserDescriptorWorkingCopy getWorkingCopy() {
-		return this;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.browser.IBrowserDescriptorWorkingCopy#save()
-	 */
-	public IBrowserDescriptor save() {
-		if (browser != null) {
-			browser.setInternal(this);
-			BrowserManager.getInstance().saveBrowsers();
-		} else {
-			browser = new BrowserDescriptor();
-			browser.setInternal(this);
-			BrowserManager.getInstance().addBrowser(browser);
-		}
-		return browser;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserExt.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserExt.java
deleted file mode 100644
index 322932e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserExt.java
+++ /dev/null
@@ -1,160 +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.browser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.ui.browser.BrowserFactory;
-import org.eclipse.ui.browser.IWebBrowser;
-/**
- * @since 1.0
- */
-public class BrowserExt implements IBrowserExt {
-	private static final String ATTR_FACTORY_CLASS = "factoryclass"; //$NON-NLS-1$
-
-	private IConfigurationElement element;
-
-	private BrowserFactory delegate;
-
-	/**
-	 * BrowserExt constructor comment.
-	 */
-	public BrowserExt(IConfigurationElement element) {
-		super();
-		this.element = element;
-	}
-
-	/**
-	 * Returns the id of this browser.
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getId() {
-		return element.getAttribute("id"); //$NON-NLS-1$
-	}
-
-	public String getName() {
-		String label = element.getAttribute("name"); //$NON-NLS-1$
-		if (label == null)
-			return "n/a"; //$NON-NLS-1$
-		return label;
-	}
-
-	public String getParameters() {
-		return element.getAttribute("parameters"); //$NON-NLS-1$
-	}
-
-	public String getExecutable() {
-		return element.getAttribute("executable"); //$NON-NLS-1$
-	}
-
-	public String getOS() {
-		String os = element.getAttribute("os"); //$NON-NLS-1$
-		if (os == null)
-			os = ""; //$NON-NLS-1$
-		return os;
-	}
-
-	public String[] getDefaultLocations() {
-		List list = new ArrayList();
-		IConfigurationElement[] children = element.getChildren("location"); //$NON-NLS-1$
-		if (children != null) {
-			int size = children.length;
-			for (int i = 0; i < size; i++) {
-				list.add(children[i].getValue());
-			}
-		}
-
-		String[] s = new String[list.size()];
-		list.toArray(s);
-		return s;
-	}
-
-	protected BrowserFactory getDelegate() {
-		if (delegate == null) {
-			if (element.getAttribute(ATTR_FACTORY_CLASS) == null
-					|| element.getAttribute(ATTR_FACTORY_CLASS).length() == 0)
-				return null;
-
-			try {
-				delegate = (BrowserFactory) element
-						.createExecutableExtension(ATTR_FACTORY_CLASS);
-			} catch (Exception e) {
-				Trace
-						.trace(
-								Trace.SEVERE,
-								"Could not create delegate" + toString() + ": " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		return delegate;
-	}
-
-	/**
-	 * Checks whether the factory can work on the user system.
-	 * 
-	 * @return false if the factory cannot work on this system; for example the
-	 *         required native browser required by browser adapters that it
-	 *         creates is not installed
-	 */
-	public boolean isAvailable() {
-		if (delegate == null && (element.getAttribute(ATTR_FACTORY_CLASS) == null
-				|| element.getAttribute(ATTR_FACTORY_CLASS).length() == 0))
-			return true;
-		
-		try {
-			return getDelegate().isAvailable();
-		} catch (Exception e) {
-			Trace
-					.trace(
-							Trace.SEVERE,
-							"Error calling delegate " + toString() + ": " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
-			return false;
-		}
-	}
-
-	/**
-	 * Obtains a new instance of a web browser.
-	 * 
-	 * @return instance of IBrowser
-	 */
-	public IWebBrowser createBrowser(String id, String location,
-			String parameters) {
-		try {
-			return getDelegate().createBrowser(id, location, parameters);
-		} catch (Exception e) {
-			Trace
-					.trace(
-							Trace.SEVERE,
-							"Error calling delegate " + toString() + ": " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
-			return null;
-		}
-	}
-
-	/**
-	 * Return a string representation of this object.
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		String s = "BrowserExt: " + getId() + ", " + getName() + ", " + getOS()  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-				+ ", " + getExecutable() + ", " + getParameters() + ", ";  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-		String[] locations = getDefaultLocations();
-		if (locations != null) {
-			int size = locations.length;
-			for (int i = 0; i < size; i++) {
-				s += locations[i] + ";"; //$NON-NLS-1$
-			}
-		}
-		return s;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserLauncher.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserLauncher.java
deleted file mode 100644
index bf39238..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserLauncher.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.browser;
-
-import java.net.MalformedURLException;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IEditorLauncher;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-public class BrowserLauncher implements IEditorLauncher {
-
-	public BrowserLauncher() {
-		// do nothing
-	}
-
-	public void open(IPath file) {
-		IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
-		try {
-			if (WebBrowserPreference.getBrowserChoice()== WebBrowserPreference.INTERNAL)
-				support.createBrowser(IWorkbenchBrowserSupport.LOCATION_BAR | IWorkbenchBrowserSupport.NAVIGATION_BAR,
-						file.toPortableString(), null, null).openURL(file.toFile().toURL());
-			else
-				support.createBrowser(IWorkbenchBrowserSupport.LOCATION_BAR | IWorkbenchBrowserSupport.NAVIGATION_BAR,
-						DefaultBrowserSupport.SHARED_ID, null, null).openURL(file.toFile().toURL());
-		}
-		catch (MalformedURLException e) {
-			// ignore
-		}
-		catch (PartInitException e) {
-			MessageDialog.openError(PlatformUI.getWorkbench().getDisplay().getActiveShell(),
-					Messages.errorDialogTitle, e.getLocalizedMessage());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserManager.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserManager.java
deleted file mode 100644
index d171e98..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserManager.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Observable;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-/**
- * 
- */
-public class BrowserManager extends Observable {
-	protected List browsers;
-	protected IBrowserDescriptor currentBrowser;
-	
-	private IPreferenceChangeListener pcl;
-	protected boolean ignorePreferenceChanges = false;
-
-	protected static BrowserManager instance;
-	
-	public static BrowserManager getInstance() {
-		if (instance == null)
-			instance = new BrowserManager();
-		return instance;
-	}
-
-	private BrowserManager() {
-		pcl = new IEclipsePreferences.IPreferenceChangeListener() {
-
-			public void preferenceChange(PreferenceChangeEvent event) {
-				String property = event.getKey();
-				if (!ignorePreferenceChanges && property.equals("browsers")) { //$NON-NLS-1$
-					loadBrowsers();
-				}
-				if (!property.equals(WebBrowserPreference.PREF_INTERNAL_WEB_BROWSER_HISTORY)) {
-					setChanged();
-					notifyObservers();
-				}
-			}
-		};
-		
-
-	    InstanceScope instanceScope = new InstanceScope();
-	    IEclipsePreferences prefs = instanceScope.getNode(WebBrowserUIPlugin.PLUGIN_ID);
-	    prefs.addPreferenceChangeListener(pcl);
-	}
-
-	protected static void safeDispose() {
-		if (instance == null)
-			return;
-		instance.dispose();
-	}
-
-	protected void dispose() {
-	    InstanceScope instanceScope = new InstanceScope();
-		IEclipsePreferences prefs = instanceScope.getNode(WebBrowserUIPlugin.PLUGIN_ID);
-		prefs.removePreferenceChangeListener(pcl);
-	}
-
-	public IBrowserDescriptorWorkingCopy createExternalWebBrowser() {
-		return new BrowserDescriptorWorkingCopy();
-	}	
-
-	public List getWebBrowsers() {
-		if (browsers == null)
-			loadBrowsers();
-		return new ArrayList(browsers);
-	}
-
-	protected void loadBrowsers() {
-		Trace.trace(Trace.FINEST, "Loading web browsers"); //$NON-NLS-1$
-		
-		String xmlString = Platform.getPreferencesService().getString
-		    (WebBrowserUIPlugin.PLUGIN_ID,  "browsers", null, null); //$NON-NLS-1$
-		if (xmlString != null && xmlString.length() > 0) {
-			browsers = new ArrayList();
-			
-			try {
-				ByteArrayInputStream in = new ByteArrayInputStream(xmlString.getBytes());
-				Reader reader = new InputStreamReader(in);
-				IMemento memento = XMLMemento.createReadRoot(reader);
-				
-				IMemento system = memento.getChild("system"); //$NON-NLS-1$
-				if (system != null && WebBrowserUtil.canUseSystemBrowser())
-					browsers.add(new SystemBrowserDescriptor());
-				
-				IMemento[] children = memento.getChildren("external"); //$NON-NLS-1$
-				int size = children.length;
-				for (int i = 0; i < size; i++) {
-					BrowserDescriptor browser = new BrowserDescriptor();
-					browser.load(children[i]);
-					browsers.add(browser);
-				}
-				
-				Integer current = memento.getInteger("current"); //$NON-NLS-1$
-				if (current != null) {
-					currentBrowser = (IBrowserDescriptor) browsers.get(current.intValue()); 
-				}
-			} catch (Exception e) {
-				Trace.trace(Trace.WARNING, "Could not load browsers: " + e.getMessage()); //$NON-NLS-1$
-			}
-			
-			IBrowserDescriptor system = new SystemBrowserDescriptor();
-			if (WebBrowserUtil.canUseSystemBrowser() && !browsers.contains(system)) {
-				browsers.add(0, system);
-				currentBrowser = system;
-				saveBrowsers();
-			}
-		} else {
-			setupDefaultBrowsers();
-			saveBrowsers();
-		}
-		
-		if (currentBrowser == null && browsers.size() > 0)
-			currentBrowser = (IBrowserDescriptor) browsers.get(0);
-		setChanged();
-		notifyObservers();
-	}
-
-	protected void saveBrowsers() {
-		try {
-			ignorePreferenceChanges = true;
-			XMLMemento memento = XMLMemento.createWriteRoot("web-browsers"); //$NON-NLS-1$
-
-			Iterator iterator = browsers.iterator();
-			while (iterator.hasNext()) {
-				Object obj = iterator.next();
-				if (obj instanceof BrowserDescriptor) {
-					BrowserDescriptor browser = (BrowserDescriptor) obj;
-					IMemento child = memento.createChild("external"); //$NON-NLS-1$
-					browser.save(child);
-				} else if (obj instanceof SystemBrowserDescriptor) {
-					memento.createChild("system"); //$NON-NLS-1$
-				}
-			}
-			
-			memento.putInteger("current", browsers.indexOf(currentBrowser)); //$NON-NLS-1$
-
-			StringWriter writer = new StringWriter();
-			memento.save(writer);
-			String xmlString = writer.getBuffer().toString();
-			InstanceScope instanceScope = new InstanceScope();
-		    IEclipsePreferences prefs = instanceScope.getNode(WebBrowserUIPlugin.PLUGIN_ID);
-			prefs.put("browsers", xmlString); //$NON-NLS-1$
-			prefs.flush();
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Could not save browsers", e); //$NON-NLS-1$
-		}
-		ignorePreferenceChanges = false;
-	}
-
-	protected void setupDefaultBrowsers() {
-		browsers = new ArrayList();
-
-		// add system browser
-		if (WebBrowserUtil.canUseSystemBrowser()) {
-			IBrowserDescriptor system = new SystemBrowserDescriptor();
-			browsers.add(system);
-		}
-		
-		// handle all the EXTERNAL browsers by criteria and add those too at startup
-		WebBrowserUtil.addFoundBrowsers(browsers);
-		
-		// by default, if internal is there, that is current, else set the first external one
-		if (!browsers.isEmpty() && currentBrowser == null)
-			currentBrowser = (IBrowserDescriptor) browsers.get(0);
-	}
-
-	protected void addBrowser(IBrowserDescriptor browser) {
-		if (browsers == null)
-			loadBrowsers();
-		if (!browsers.contains(browser))
-			browsers.add(browser);
-		if (browsers.size() == 1)
-			setCurrentWebBrowser(browser);
-		
-		saveBrowsers();
-	}
-
-	protected void removeWebBrowser(IBrowserDescriptor browser) {
-		if (browsers == null)
-			loadBrowsers();
-		browsers.remove(browser);
-		
-		if (currentBrowser == null || currentBrowser.equals(browser)) {
-			currentBrowser = null;
-			if (browsers.size() > 0)
-				currentBrowser = (IBrowserDescriptor) browsers.get(0);
-		}
-	}
-
-	public IBrowserDescriptor getCurrentWebBrowser() {
-		if (browsers == null)
-			loadBrowsers();
-
-		if (currentBrowser == null && browsers.size() > 0)
-			return (IBrowserDescriptor) browsers.get(0);
-		
-		return currentBrowser; 
-	}
-
-	public void setCurrentWebBrowser(IBrowserDescriptor wb) {
-		if (wb == null)
-			throw new IllegalArgumentException();
-
-		if (browsers.contains(wb))
-			currentBrowser = wb;
-		else
-			throw new IllegalArgumentException();
-		saveBrowsers();
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserText.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserText.java
deleted file mode 100644
index 0ffca3d..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserText.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-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.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-
-public class BrowserText {
-    private String url;
-
-    private FallbackScrolledComposite scomp;
-
-    private Label title;
-
-    private Label exTitle;
-
-    private Label text;
-
-    private Label sep;
-
-    protected Link link;
-
-    private BrowserViewer viewer;
-
-    private Button button;
-
-    private Text exception;
-
-    private boolean expanded;
-
-    private Throwable ex;
-
-    class ReflowScrolledComposite extends FallbackScrolledComposite {
-        public ReflowScrolledComposite(Composite parent, int style) {
-            super(parent, style);
-        }
-
-        public void reflow(boolean flushCache) {
-            updateWidth(this);
-            super.reflow(flushCache);
-        }
-    }
-
-    public BrowserText(Composite parent, BrowserViewer viewer, Throwable ex) {
-        this.viewer = viewer;
-        this.ex = ex;
-        Color bg = parent.getDisplay()
-                .getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-        scomp = new ReflowScrolledComposite(parent, SWT.V_SCROLL | SWT.H_SCROLL);
-        Composite client = new Composite(scomp, SWT.NULL);
-        fillContent(client, bg);
-        scomp.setContent(client);        
-        scomp.setBackground(bg);
-    }
-
-    private void fillContent(Composite parent, Color bg) {
-        GridLayout layout = new GridLayout();
-        layout.verticalSpacing = 10;
-        parent.setLayout(layout);
-        title = new Label(parent, SWT.WRAP);
-        title.setText(Messages.BrowserText_title);
-        title.setFont(JFaceResources.getHeaderFont());
-        title.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        title.setBackground(bg);
-
-        link = new Link(parent, SWT.WRAP);
-        link.setText(Messages.BrowserText_link);
-        link.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        link.setToolTipText(Messages.BrowserText_tooltip);
-        link.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                BusyIndicator.showWhile(link.getDisplay(), new Runnable() {
-                    public void run() {
-                        doOpenExternal();
-                    }
-                });
-            }
-        });
-        link.setBackground(bg);
-        sep = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-        sep.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        exTitle = new Label(parent, SWT.NULL);
-        exTitle.setBackground(bg);
-        exTitle.setFont(JFaceResources.getBannerFont());
-        exTitle.setText(Messages.BrowserText_dtitle);
-        exTitle.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        text = new Label(parent, SWT.WRAP);
-        text.setText(Messages.BrowserText_text);
-        text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        text.setBackground(bg);
-        button = new Button(parent, SWT.PUSH);
-        updateButtonText();
-        button.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                toggleException();
-            }
-        });
-        exception = new Text(parent, SWT.MULTI);
-        loadExceptionText();
-        GridData gd = new GridData(GridData.FILL_BOTH);
-        gd.exclude = true;
-        exception.setLayoutData(gd);
-    }
-
-    private void loadExceptionText() {
-        StringWriter swriter = new StringWriter();
-        PrintWriter writer = new PrintWriter(swriter);
-        writer.println(ex.getMessage());
-        ex.printStackTrace(writer);
-        writer.close();
-        exception.setText(swriter.toString());
-    }
-
-    protected void toggleException() {
-        expanded = !expanded;
-        updateButtonText();
-        GridData gd = (GridData) exception.getLayoutData();
-        gd.exclude = !expanded;
-        exception.setVisible(expanded);
-        refresh();
-    }
-
-    private void updateButtonText() {
-        if (expanded)
-            button.setText(Messages.BrowserText_button_collapse);
-        else
-            button.setText(Messages.BrowserText_button_expand);
-    }
-
-    protected void updateWidth(Composite parent) {
-        Rectangle area = parent.getClientArea();
-        updateWidth(title, area.width);
-        updateWidth(text, area.width);
-        updateWidth(sep, area.width);
-        updateWidth(link, area.width);
-        updateWidth(exTitle, area.width);
-        updateWidth(exception, area.width);
-    }
-
-    private void updateWidth(Control c, int width) {
-        GridData gd = (GridData) c.getLayoutData();
-        if (gd != null)
-            gd.widthHint = width - 10;
-    }
-
-    protected void doOpenExternal() {
-        IBrowserViewerContainer container = viewer.getContainer();
-        if (container != null)
-            container.openInExternalBrowser(url);
-    }
-
-    public Control getControl() {
-        return scomp;
-    }
-
-    public boolean setUrl(String url) {
-        this.url = url;
-        return true;
-    }
-
-    public void setFocus() {
-        link.setFocus();
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void refresh() {
-        scomp.reflow(true);
-    }
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java
deleted file mode 100644
index a502265..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BrowserViewer.java
+++ /dev/null
@@ -1,953 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    IBM Corporation - Initial API and implementation
- *    Jacek Pospychala - jacek.pospychala@pl.ibm.com - fix for bug 224887
- *******************************************************************************/
-package org.eclipse.ui.internal.browser;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.CloseWindowListener;
-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.TitleEvent;
-import org.eclipse.swt.browser.TitleListener;
-import org.eclipse.swt.browser.VisibilityWindowListener;
-import org.eclipse.swt.browser.WindowEvent;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-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.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * A Web browser widget. It extends the Eclipse SWT Browser widget by adding an
- * optional toolbar complete with a URL combo box, history, back & forward, and
- * refresh buttons.
- * <p>
- * Use the style bits to choose which toolbars are available within the browser
- * composite. You can access the embedded SWT Browser directly using the
- * getBrowser() method.
- * </p>
- * <p>
- * Additional capabilities are available when used as the internal Web browser,
- * including status text and progress on the Eclipse window's status line, or
- * moving the toolbar capabilities up into the main toolbar.
- * </p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>LOCATION_BAR, BUTTON_BAR</dd>
- * <dt><b>Events:</b></dt>
- * <dd>None</dd>
- * </dl>
- * 
- * @since 1.0
- */
-public class BrowserViewer extends Composite {
-    /**
-     * Style parameter (value 1) indicating that the URL and Go button will be
-     * on the local toolbar.
-     */
-    public static final int LOCATION_BAR = 1 << 1;
-
-    /**
-     * Style parameter (value 2) indicating that the toolbar will be available
-     * on the web browser. This style parameter cannot be used without the
-     * LOCATION_BAR style.
-     */
-    public static final int BUTTON_BAR = 1 << 2;
-	 
-	 protected static final String PROPERTY_TITLE = "title"; //$NON-NLS-1$
-
-    private static final int MAX_HISTORY = 50;
-
-    public Clipboard clipboard;
-
-    public Combo combo;
-
-    protected boolean showToolbar;
-
-    protected boolean showURLbar;
-
-    protected ToolItem back;
-
-    protected ToolItem forward;
-
-    protected BusyIndicator busy;
-
-    protected boolean loading;
-
-    protected static java.util.List history;
-
-    protected Browser browser;
-    
-    protected BrowserText text;
-
-    protected boolean newWindow;
-
-    protected IBrowserViewerContainer container;
-
-    protected String title;
-
-    protected int progressWorked = 0;
-	 
-	 protected List propertyListeners;
-
-    /**
-     * Under development - do not use
-     */
-    public static interface ILocationListener {
-        public void locationChanged(String url);
-
-        public void historyChanged(String[] history2);
-    }
-
-    public ILocationListener locationListener;
-
-    /**
-     * Under development - do not use
-     */
-    public static interface IBackNextListener {
-        public void updateBackNextBusy();
-    }
-
-    public IBackNextListener backNextListener;
-
-    /**
-     * Creates a new Web browser given its parent and a style value describing
-     * its behavior and appearance.
-     * <p>
-     * The style value is either one of the style constants defined in the class
-     * header or class <code>SWT</code> which is applicable to instances of
-     * this class, or must be built by <em>bitwise OR</em>'ing together (that
-     * is, using the <code>int</code> "|" operator) two or more of those
-     * <code>SWT</code> style constants. The class description lists the style
-     * constants that are applicable to the class. Style bits are also inherited
-     * from superclasses.
-     * </p>
-     * 
-     * @param parent
-     *            a composite control which will be the parent of the new
-     *            instance (cannot be null)
-     * @param style
-     *            the style of control to construct
-     */
-    public BrowserViewer(Composite parent, int style) {
-        super(parent, SWT.NONE);
-		  
-        if ((style & LOCATION_BAR) != 0)
-            showURLbar = true;
-
-        if ((style & BUTTON_BAR) != 0)
-            showToolbar = true;
-
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = 0;
-        layout.marginWidth = 0;
-        layout.horizontalSpacing = 0;
-        layout.verticalSpacing = 0;
-        layout.numColumns = 1;
-        setLayout(layout);
-        setLayoutData(new GridData(GridData.FILL_BOTH));
-        clipboard = new Clipboard(parent.getDisplay());
-        
-        if (showToolbar || showURLbar) {
-            Composite toolbarComp = new Composite(this, SWT.NONE);
-            toolbarComp.setLayout(new ToolbarLayout());
-            toolbarComp.setLayoutData(new GridData(
-                  GridData.VERTICAL_ALIGN_BEGINNING
-                  | GridData.FILL_HORIZONTAL));
-
-            if (showToolbar)
-                createToolbar(toolbarComp);
-            
-				if (showURLbar)
-                createLocationBar(toolbarComp);
-
-				if (showToolbar | showURLbar) {
-				    busy = new BusyIndicator(toolbarComp, SWT.NONE);
-				    busy.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
-				    busy.addMouseListener(new MouseListener() {
-						public void mouseDoubleClick(MouseEvent e) {
-							// ignore
-						}
-
-						public void mouseDown(MouseEvent e) {
-							setURL("http://www.eclipse.org"); //$NON-NLS-1$
-						}
-
-						public void mouseUp(MouseEvent e) {
-							// ignore
-						}
-				    });
-				}
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                  ContextIds.WEB_BROWSER); 
-        }
-
-        // create a new SWT Web browser widget, checking once again to make sure
-        // we can use it in this environment
-        //if (WebBrowserUtil.canUseInternalWebBrowser())
-        try {
-            this.browser = new Browser(this, SWT.NONE);
-        }
-        catch (SWTError e) {
-            if (e.code!=SWT.ERROR_NO_HANDLES) {
-                WebBrowserUtil.openError(Messages.errorCouldNotLaunchInternalWebBrowser);
-                return;
-            }
-            text = new BrowserText(this, this, e);
-        }
-
-        if (showURLbar)
-            updateHistory();
-        if (showToolbar)
-            updateBackNextBusy();
-
-         if (browser!=null) {
-            browser.setLayoutData(new GridData(GridData.FILL_BOTH));
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(browser,
-                    ContextIds.WEB_BROWSER);
-        }
-        else
-            text.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        addBrowserListeners();
-        //listen();
-    }
-
-    /**
-     * Returns the underlying SWT browser widget.
-     * 
-     * @return the underlying browser
-     */
-    public Browser getBrowser() {
-        return browser;
-    }
-
-    /**
-     * Navigate to the home URL.
-     */
-    public void home() {
-   	 browser.setText(""); //$NON-NLS-1$
-    }
-
-    /**
-     * Loads a URL.
-     * 
-     * @param url
-     *            the URL to be loaded
-     * @return true if the operation was successful and false otherwise.
-     * @exception IllegalArgumentException
-     *                <ul>
-     *                <li>ERROR_NULL_ARGUMENT - if the url is null</li>
-     *                </ul>
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     * @see #getURL()
-     */
-    public void setURL(String url) {
-       setURL(url, true);
-    }
-
-    protected void updateBackNextBusy() {
-        back.setEnabled(isBackEnabled());
-        forward.setEnabled(isForwardEnabled());
-        busy.setBusy(loading);
-
-        if (backNextListener != null)
-            backNextListener.updateBackNextBusy();
-    }
-
-    protected void updateLocation() {
-        if (locationListener != null)
-            locationListener.historyChanged(null);
-
-        if (locationListener != null)
-            locationListener.locationChanged(null);
-    }
-
-    /**
-     *
-     */
-    private void addBrowserListeners() {
-        if (browser==null) return;
-        // respond to ExternalBrowserInstance StatusTextEvents events by
-        // updating the status line
-        browser.addStatusTextListener(new StatusTextListener() {
-            public void changed(StatusTextEvent event) {
-					//System.out.println("status: " + event.text); //$NON-NLS-1$
-                if (container != null) {
-                    IStatusLineManager status = container.getActionBars()
-                            .getStatusLineManager();
-                    status.setMessage(event.text);
-                }
-            }
-        });
-
-        // Add listener for new window creation so that we can instead of
-        // opening a separate
-        // new window in which the session is lost, we can instead open a new
-        // window in a new
-        // shell within the browser area thereby maintaining the session.
-        browser.addOpenWindowListener(new OpenWindowListener() {
-            public void open(WindowEvent event) {
-                Shell shell2 = new Shell(getShell(), SWT.SHELL_TRIM );
-                shell2.setLayout(new FillLayout());
-                shell2.setText(Messages.viewWebBrowserTitle);
-                shell2.setImage(getShell().getImage());
-                if (event.location != null)
-                    shell2.setLocation(event.location);
-                if (event.size != null)
-                    shell2.setSize(event.size);
-				int style = 0;
-				if (showURLbar)
-					style += LOCATION_BAR;
-				if (showToolbar)
-					style += BUTTON_BAR;
-                BrowserViewer browser2 = new BrowserViewer(shell2, style);
-                browser2.newWindow = true;
-                event.browser = browser2.browser;
-            }
-        });
-		  
-		  browser.addVisibilityWindowListener(new VisibilityWindowListener() {
-				public void hide(WindowEvent e) {
-					// ignore
-				}
-				
-				public void show(WindowEvent e) {
-					Browser browser2 = (Browser)e.widget;
-					if (browser2.getParent().getParent() instanceof Shell) {
-						Shell shell = (Shell) browser2.getParent().getParent();
-						if (e.location != null)
-							shell.setLocation(e.location);
-						if (e.size != null)
-							shell.setSize(shell.computeSize(e.size.x, e.size.y));
-						shell.open();
-					}
-				}
-			});
-
-        browser.addCloseWindowListener(new CloseWindowListener() {
-            public void close(WindowEvent event) {
-                // if shell is not null, it must be a secondary popup window,
-                // else its an editor window
-                if (newWindow)
-                    getShell().dispose();
-                else
-                    container.close();
-            }
-        });
-
-        browser.addProgressListener(new ProgressListener() {
-            public void changed(ProgressEvent event) {
-					//System.out.println("progress: " + event.current + ", " + event.total); //$NON-NLS-1$ //$NON-NLS-2$
-                if (event.total == 0)
-                    return;
-
-                boolean done = (event.current == event.total);
-
-                int percentProgress = event.current * 100 / event.total;
-                if (container != null) {
-                    IProgressMonitor monitor = container.getActionBars()
-                            .getStatusLineManager().getProgressMonitor();
-                    if (done) {
-                        monitor.done();
-                        progressWorked = 0;
-                    } else if (progressWorked == 0) {
-                        monitor.beginTask("", event.total); //$NON-NLS-1$
-                        progressWorked = percentProgress;
-                    } else {
-                        monitor.worked(event.current - progressWorked);
-                        progressWorked = event.current;
-                    }
-                }
-
-                if (showToolbar) {
-                    if (!busy.isBusy() && !done)
-                        loading = true;
-                    else if (busy.isBusy() && done) // once the progress hits
-                        // 100 percent, done, set
-                        // busy to false
-                        loading = false;
-
-						  //System.out.println("loading: " + loading); //$NON-NLS-1$
-                    updateBackNextBusy();
-                    updateHistory();
-                }
-            }
-
-            public void completed(ProgressEvent event) {
-                if (container != null) {
-                    IProgressMonitor monitor = container.getActionBars()
-                            .getStatusLineManager().getProgressMonitor();
-                    monitor.done();
-                }
-                if (showToolbar) {
-                    loading = false;
-                    updateBackNextBusy();
-                    updateHistory();
-                }
-            }
-        });
-
-        if (showURLbar) {
-            browser.addLocationListener(new LocationListener() {
-                public void changed(LocationEvent event) {
-                    if (!event.top)
-                        return;
-                    if (combo != null) {
-                        if (!"about:blank".equals(event.location)) { //$NON-NLS-1$
-                            combo.setText(event.location);
-                            addToHistory(event.location);
-                            updateHistory();
-                        }// else
-                        //    combo.setText(""); //$NON-NLS-1$
-                    }
-                }
-
-                public void changing(LocationEvent event) {
-                    // do nothing
-                }
-            });
-        }
-
-        browser.addTitleListener(new TitleListener() {
-            public void changed(TitleEvent event) {
-					 String oldTitle = title;
-                title = event.title;
-					 firePropertyChangeEvent(PROPERTY_TITLE, oldTitle, title);
-            }
-        });
-    }
-	 
-	 /**
-		 * Add a property change listener to this instance.
-		 *
-		 * @param listener java.beans.PropertyChangeListener
-		 */
-		public void addPropertyChangeListener(PropertyChangeListener listener) {
-			if (propertyListeners == null)
-				propertyListeners = new ArrayList();
-			propertyListeners.add(listener);
-		}
-
-		/**
-		 * Remove a property change listener from this instance.
-		 *
-		 * @param listener java.beans.PropertyChangeListener
-		 */
-		public void removePropertyChangeListener(PropertyChangeListener listener) {
-			if (propertyListeners != null)
-				propertyListeners.remove(listener);
-		}
-
-		/**
-		 * Fire a property change event.
-		 */
-		protected void firePropertyChangeEvent(String propertyName, Object oldValue, Object newValue) {
-			if (propertyListeners == null)
-				return;
-
-			PropertyChangeEvent event = new PropertyChangeEvent(this, propertyName, oldValue, newValue);
-			//Trace.trace("Firing: " + event + " " + oldValue);
-			try {
-				int size = propertyListeners.size();
-				PropertyChangeListener[] pcl = new PropertyChangeListener[size];
-				propertyListeners.toArray(pcl);
-				
-				for (int i = 0; i < size; i++)
-					try {
-						pcl[i].propertyChange(event);
-					} catch (Exception e) {
-						// ignore
-					}
-			} catch (Exception e) {
-				// ignore
-			}
-		}
-
-    /**
-     * Navigate to the next session history item. Convenience method that calls
-     * the underlying SWT browser.
-     * 
-     * @return <code>true</code> if the operation was successful and
-     *         <code>false</code> otherwise
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     * @see #back
-     */
-    public boolean forward() {
-        if (browser==null)
-            return false;
-        return browser.forward();
-    }
-
-    /**
-     * Navigate to the previous session history item. Convenience method that
-     * calls the underlying SWT browser.
-     * 
-     * @return <code>true</code> if the operation was successful and
-     *         <code>false</code> otherwise
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     * @see #forward
-     */
-    public boolean back() {
-        if (browser==null)
-            return false;
-        return browser.back();
-    }
-
-    /**
-     * Returns <code>true</code> if the receiver can navigate to the previous
-     * session history item, and <code>false</code> otherwise. Convenience
-     * method that calls the underlying SWT browser.
-     * 
-     * @return the receiver's back command enabled state
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-     *                disposed</li>
-     *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-     *                thread that created the receiver</li>
-     *                </ul>
-     * @see #back
-     */
-    public boolean isBackEnabled() {
-        if (browser==null)
-            return false;
-        return browser.isBackEnabled();
-    }
-
-    /**
-     * Returns <code>true</code> if the receiver can navigate to the next
-     * session history item, and <code>false</code> otherwise. Convenience
-     * method that calls the underlying SWT browser.
-     * 
-     * @return the receiver's forward command enabled state
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-     *                disposed</li>
-     *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-     *                thread that created the receiver</li>
-     *                </ul>
-     * @see #forward
-     */
-    public boolean isForwardEnabled() {
-        if (browser==null)
-            return false;
-        return browser.isForwardEnabled();
-    }
-
-    /**
-     * Stop any loading and rendering activity. Convenience method that calls
-     * the underlying SWT browser.
-     * 
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     */
-    public void stop() {
-        if (browser!=null)
-            browser.stop();
-    }
-
-    /**
-     * 
-     */
-    private boolean navigate(String url) {
-        Trace.trace(Trace.FINER, "Navigate: " + url); //$NON-NLS-1$
-        if (url != null && url.equals(getURL())) {
-            refresh();
-            return true;
-        }
-        if (browser!=null)
-            return browser.setUrl(url);
-        return text.setUrl(url);
-    }
- 
-    /**
-     * Refresh the current page. Convenience method that calls the underlying
-     * SWT browser.
-     * 
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     */
-    public void refresh() {
-        if (browser!=null)
-            browser.refresh();
-        else
-            text.refresh();
-		  try {
-			  Thread.sleep(50);
-		  } catch (Exception e) {
-			  // ignore
-		  }
-    }
-
-    private void setURL(String url, boolean browse) {
-        Trace.trace(Trace.FINEST, "setURL: " + url + " " + browse); //$NON-NLS-1$ //$NON-NLS-2$
-        if (url == null) {
-            home();
-            return;
-        }
-
-        if ("eclipse".equalsIgnoreCase(url)) //$NON-NLS-1$
-            url = "http://www.eclipse.org"; //$NON-NLS-1$
-        else if ("wtp".equalsIgnoreCase(url)) //$NON-NLS-1$
-            url = "http://www.eclipse.org/webtools/"; //$NON-NLS-1$
-
-        if (browse)
-            navigate(url);
-
-        addToHistory(url);
-        updateHistory();
-    }
-
-    protected void addToHistory(String url) {
-        if (history == null)
-            history = WebBrowserPreference.getInternalWebBrowserHistory();
-        int found = -1;
-        int size = history.size();
-        for (int i = 0; i < size; i++) {
-            String s = (String) history.get(i);
-            if (s.equals(url)) {
-                found = i;
-                break;
-            }
-        }
-
-        if (found == -1) {
-            if (size >= MAX_HISTORY)
-                history.remove(size - 1);
-            history.add(0, url);
-            WebBrowserPreference.setInternalWebBrowserHistory(history);
-        } else if (found != 0) {
-            history.remove(found);
-            history.add(0, url);
-            WebBrowserPreference.setInternalWebBrowserHistory(history);
-        }
-    }
-
-    /**
-     *
-     */
-    public void dispose() {
-        super.dispose();
-
-        showToolbar = false;
-
-        if (busy != null)
-            busy.dispose();
-        busy = null;
-
-        browser = null;
-        text = null;
-        if (clipboard!=null)
-        	clipboard.dispose();
-        clipboard=null;
-
-        removeSynchronizationListener();
-    }
-
-    private ToolBar createLocationBar(Composite parent) {
-        combo = new Combo(parent, SWT.DROP_DOWN);
-
-        updateHistory();
-
-        combo.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent we) {
-                try {
-                    if (combo.getSelectionIndex() != -1 && !combo.getListVisible()) {
-                        setURL(combo.getItem(combo.getSelectionIndex()));
-                    }
-                } catch (Exception e) {
-                    // ignore
-                }
-            }
-        });
-        combo.addListener(SWT.DefaultSelection, new Listener() {
-            public void handleEvent(Event e) {
-                setURL(combo.getText());
-            }
-        });
-        
-        ToolBar toolbar = new ToolBar(parent, SWT.FLAT);
-
-        ToolItem go = new ToolItem(toolbar, SWT.NONE);
-        go.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_GO));
-        go.setHotImage(ImageResource.getImage(ImageResource.IMG_CLCL_NAV_GO));
-        go.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_GO));
-        go.setToolTipText(Messages.actionWebBrowserGo);
-        go.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                setURL(combo.getText());
-            }
-        });
-		  
-		  return toolbar;
-    }
-
-    private ToolBar createToolbar(Composite parent) {
-		  ToolBar toolbar = new ToolBar(parent, SWT.FLAT);
-		  
-        // create back and forward actions
-        back = new ToolItem(toolbar, SWT.NONE);
-        back.setImage(ImageResource
-                .getImage(ImageResource.IMG_ELCL_NAV_BACKWARD));
-        back.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_BACKWARD));
-        back.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_BACKWARD));
-        back.setToolTipText(Messages.actionWebBrowserBack);
-        back.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                back();
-            }
-        });
-
-        forward = new ToolItem(toolbar, SWT.NONE);
-        forward.setImage(ImageResource
-                .getImage(ImageResource.IMG_ELCL_NAV_FORWARD));
-        forward.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_FORWARD));
-        forward.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_FORWARD));
-        forward.setToolTipText(Messages.actionWebBrowserForward);
-        forward.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                forward();
-            }
-        });
-
-        // create refresh, stop, and print actions
-        ToolItem stop = new ToolItem(toolbar, SWT.NONE);
-        stop.setImage(ImageResource.getImage(ImageResource.IMG_ELCL_NAV_STOP));
-        stop.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_STOP));
-        stop.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_STOP));
-        stop.setToolTipText(Messages.actionWebBrowserStop);
-        stop.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                stop();
-            }
-        });
-
-        ToolItem refresh = new ToolItem(toolbar, SWT.NONE);
-        refresh.setImage(ImageResource
-                .getImage(ImageResource.IMG_ELCL_NAV_REFRESH));
-        refresh.setHotImage(ImageResource
-                .getImage(ImageResource.IMG_CLCL_NAV_REFRESH));
-        refresh.setDisabledImage(ImageResource
-                .getImage(ImageResource.IMG_DLCL_NAV_REFRESH));
-        refresh.setToolTipText(Messages.actionWebBrowserRefresh);
-        refresh.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                refresh();
-            }
-        });
-		  
-		  return toolbar;
-    }
-
-    /**
-     * Returns the current URL. Convenience method that calls the underlying SWT
-     * browser.
-     * 
-     * @return the current URL or an empty <code>String</code> if there is no
-     *         current URL
-     * @exception SWTException
-     *                <ul>
-     *                <li>ERROR_THREAD_INVALID_ACCESS when called from the
-     *                wrong thread</li>
-     *                <li>ERROR_WIDGET_DISPOSED when the widget has been
-     *                disposed</li>
-     *                </ul>
-     * @see #setURL(String)
-     */
-    public String getURL() {
-        if (browser!=null)
-            return browser.getUrl();
-        return text.getUrl();
-    }
-
-    public boolean setFocus() {
-        if (browser!=null) {
-            browser.setFocus();
-            updateHistory();
-            return true;
-        }
-        return super.setFocus();
-    }
-
-    /**
-     * Update the history list to the global/shared copy.
-     */
-    protected void updateHistory() {
-        if (combo == null)
-            return;
-
-        String temp = combo.getText();
-        if (history == null)
-            history = WebBrowserPreference.getInternalWebBrowserHistory();
-
-        String[] historyList = new String[history.size()];
-        history.toArray(historyList);
-        combo.setItems(historyList);
-
-        combo.setText(temp);
-    }
-
-    public IBrowserViewerContainer getContainer() {
-        return container;
-    }
-
-    public void setContainer(IBrowserViewerContainer container) {
-    	if (container==null && this.container!=null) {
-    		IStatusLineManager manager = this.container.getActionBars().getStatusLineManager();
-    		if (manager!=null) 
-    			manager.getProgressMonitor().done();
-    	}
-        this.container = container;
-    }
-
-    protected File file;
-    protected long timestamp;
-    protected Thread fileListenerThread;
-    protected LocationListener locationListener2;
-    protected Object syncObject = new Object();
-    
-    protected void addSynchronizationListener() {
-   	 if (fileListenerThread != null)
-   		 return;
-   	 
-   	 fileListenerThread = new Thread("Browser file synchronization") { //$NON-NLS-1$
-   		 public void run() {
-   			 while (fileListenerThread != null) {
-   				 try {
-   					 Thread.sleep(2000);
-   				 } catch (Exception e) {
-   					 // ignore
-   				 }
-   				 synchronized (syncObject) {
-						 if (file != null && file.lastModified() != timestamp) {
-	   					 timestamp = file.lastModified();
-	   					 Display.getDefault().syncExec(new Runnable() {
-	 							public void run() {
-	 								refresh();
-	 							}
-	   					 });
-						 }
-					  }
-   			 }
-   		 }
-   	 };
-   	 fileListenerThread.setDaemon(true);
-   	 fileListenerThread.setPriority(Thread.MIN_PRIORITY);
-   	 
-   	 locationListener2 = new LocationListener() {
-          public void changed(LocationEvent event) {
-         	 File temp = getFile(event.location);
-         	 if (temp != null && temp.exists()) {
-         		 synchronized (syncObject) {
-         			 file = temp;
-            		 timestamp = file.lastModified();
-					 }
-         	 } else
-         		 file = null;
-          }
-          
-          public void changing(LocationEvent event) {
-             // do nothing
-         }
-       };
-       browser.addLocationListener(locationListener2);
-       
-       File temp = getFile(browser.getUrl());
-   	 if (temp != null && temp.exists()) {
-   		file = temp;
-      	timestamp = file.lastModified();
-   	 }
-   	 fileListenerThread.start();
-    }
-
-    protected static File getFile(String location) {
-   	 if (location == null)
-   		 return null;
-   	 if (location.startsWith("file:/")) //$NON-NLS-1$
-   		 location = location.substring(6);
-   	 
-   	 return new File(location);
-    }
-
-    protected void removeSynchronizationListener() {
-   	 if (fileListenerThread == null)
-   		 return;
-   	 
-   	 fileListenerThread = null;
-   	 browser.removeLocationListener(locationListener2);
-   	 locationListener2 = null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java
deleted file mode 100644
index 990e118..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/BusyIndicator.java
+++ /dev/null
@@ -1,165 +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.browser;
-
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-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.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-/**
- * An animated image to show busy status of the Web browser.
- */
-public class BusyIndicator extends Canvas {
-	protected Image[] images;
-	protected Image image;
-
-	protected Thread busyThread;
-	protected boolean stop;
-
-	/**
-	 * BusyWidget constructor comment.
-	 * @param parent org.eclipse.swt.widgets.Composite
-	 * @param style int
-	 */
-	public BusyIndicator(Composite parent, int style) {
-		super(parent, style);
-	
-		images = ImageResource.getBusyImages();
-	
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				onPaint(event);
-			}
-		});
-	
-		image = images[0];
-	}
-	
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		return new Point(25, 25);
-	}
-	
-	/**
-	 * Creates a thread to animate the image.
-	 */
-	protected synchronized void createBusyThread() {
-		if (busyThread != null)
-			return;
-	
-		stop = false;
-		busyThread = new Thread() {
-			protected int count;
-			public void run() {
-				try {
-					count = 1;
-					while (!stop) {
-						Display.getDefault().syncExec(new Runnable() {
-							public void run() {
-								if (!stop) {
-									if (count < 13)
-										setImage(images[count]);
-									count++;
-									if (count > 12)
-										count = 1;
-								}
-							}
-						});
-						try {
-							sleep(125);
-						} catch (Exception e) {
-							// ignore
-						}
-					}
-					if (busyThread == null)
-						Display.getDefault().syncExec(new Thread() {
-							public void run() {
-								setImage(images[0]);
-							}
-						});
-				} catch (Exception e) {
-					Trace.trace(Trace.WARNING, "Busy error", e); //$NON-NLS-1$
-				}
-			}
-		};
-	
-		busyThread.setPriority(Thread.NORM_PRIORITY + 2);
-		busyThread.setDaemon(true);
-		busyThread.start();
-	}
-	
-	public void dispose() {
-		stop = true;
-		busyThread = null;
-		super.dispose();
-	}
-	
-	/**
-	 * Return the image or <code>null</code>.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Returns true if it is currently busy.
-	 *
-	 * @return boolean
-	 */
-	public boolean isBusy() {
-		return (busyThread != null);
-	}
-
-	/* 
-	 * Process the paint event
-	 */
-	protected void onPaint(PaintEvent event) {
-		Rectangle rect = getClientArea();
-		if (rect.width == 0 || rect.height == 0)
-			return;
-	
-		GC gc = event.gc;
-		if (image != null)
-			gc.drawImage(image, 2, 2);
-	}
-
-	/**
-	 * Sets the indicators busy count up (true) or down (false) one.
-	 *
-	 * @param busy boolean
-	 */
-	public synchronized void setBusy(boolean busy) {
-		if (busy) {
-			if (busyThread == null)
-				createBusyThread();
-		} else {
-			if (busyThread != null) {
-				stop = true;
-				busyThread = null;
-			}
-		}
-	}
-
-	/**
-	 * Set the image.
-	 * The value <code>null</code> clears it.
-	 */
-	public void setImage(Image image) {
-		if (image != this.image && !isDisposed()) {
-			this.image = image;
-			redraw();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java
deleted file mode 100644
index 0a7c12e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ContextIds.java
+++ /dev/null
@@ -1,19 +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.browser;
-/**
- * Context help id constants.
- */
-public interface ContextIds {
-	public static final String PREF_BROWSER = WebBrowserUIPlugin.PLUGIN_ID + ".browser_preference_page_context"; //$NON-NLS-1$
-	public static final String PREF_BROWSER_DIALOG = WebBrowserUIPlugin.PLUGIN_ID + ".browser_preference_page_dialog_context"; //$NON-NLS-1$
-	public static final String WEB_BROWSER = WebBrowserUIPlugin.PLUGIN_ID + ".browser_context"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java
deleted file mode 100644
index 6af87d3..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/DefaultBrowserSupport.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.util.HashMap;
-import java.util.Observable;
-import java.util.Observer;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.AbstractWorkbenchBrowserSupport;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-/**
- * Implementation of the workbench browser support.
- */
-public class DefaultBrowserSupport extends AbstractWorkbenchBrowserSupport {
-	static final String SHARED_ID = "org.eclipse.ui.browser"; //$NON-NLS-1$
-	static final String DEFAULT_ID_BASE = "org.eclipse.ui.defaultBrowser"; //$NON-NLS-1$
-	private static final String HELP_BROWSER_ID = "org.eclipse.help.ui"; //$NON-NLS-1$
-
-	protected HashMap browserIdMap = new HashMap();
-
-	protected static DefaultBrowserSupport instance;
-
-	public DefaultBrowserSupport() {
-		// do nothing
-		instance = this;
-		BrowserManager.getInstance().addObserver(new Observer() {
-			public void update(Observable o, Object arg) {
-				// TODO I am not sure what we should do here
-				// The preferences have changed so maybe we should
-				// close the opened browsers in addition to clearing
-				// the table
-				browserIdMap.clear();
-			}
-		});
-	}
-
-	protected static DefaultBrowserSupport getInstance() {
-		return instance;
-	}
-
-	protected IWebBrowser getExistingWebBrowser(String browserId) {
-		try {
-			Object obj = browserIdMap.get(browserId);
-			IWebBrowser browser = null;
-			if (obj instanceof IWebBrowser)
-				browser = (IWebBrowser) obj;
-			else if (obj instanceof HashMap) {
-				HashMap wmap = (HashMap) obj;
-				IWorkbenchWindow window = PlatformUI.getWorkbench()
-						.getActiveWorkbenchWindow();
-				if (window != null) {
-					browser = (IWebBrowser) wmap.get(getWindowKey(window));
-				}
-			}
-			if (browser != null)
-				return browser;
-		} catch (Exception e) {
-			// ignore
-		}
-		return null;
-	}
-
-	private Integer getWindowKey(IWorkbenchWindow window) {
-		return new Integer(window.hashCode());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.browser.IWorkbenchBrowserSupport#createBrowser(int,
-	 *      java.lang.String, java.lang.String, java.lang.String)
-	 */
-	public IWebBrowser createBrowser(int style, String browserId, String name,
-			String tooltip) throws PartInitException {
-		if (browserId == null)
-			browserId = getDefaultId();
-		IWebBrowser browser = getExistingWebBrowser(browserId);
-		if (browser != null) {
-			if (browser instanceof InternalBrowserInstance) {
-				InternalBrowserInstance instance2 = (InternalBrowserInstance) browser;
-				instance2.setName(name);
-				instance2.setTooltip(tooltip);
-			}
-			return browser;
-		}
-
-		IWebBrowser webBrowser = null;
-
-		// AS_EXTERNAL will force the external browser regardless of the user
-		// preference
-		// The help editor will open in an editor regardless of the user preferences
-		boolean isHelpEditor = ((style & AS_EDITOR) != 0) && HELP_BROWSER_ID.equals(browserId);
-		if ((style & AS_EXTERNAL) != 0 || 
-		    (WebBrowserPreference.getBrowserChoice() != WebBrowserPreference.INTERNAL && !isHelpEditor)
-		    || !WebBrowserUtil.canUseInternalWebBrowser()) {
-			IBrowserDescriptor ewb = BrowserManager.getInstance()
-					.getCurrentWebBrowser();
-			if (ewb == null)
-				throw new PartInitException(Messages.errorNoBrowser);
-			
-			if (ewb instanceof SystemBrowserDescriptor)
-				webBrowser = new SystemBrowserInstance(browserId);
-			else {
-				IBrowserExt ext = null;
-				if (ewb != null)
-					ext = WebBrowserUIPlugin.findBrowsers(ewb.getLocation());
-				if (ext != null)
-					webBrowser = ext.createBrowser(browserId,
-							ewb.getLocation(), ewb.getParameters());
-				if (webBrowser == null)
-					webBrowser = new ExternalBrowserInstance(browserId, ewb);
-			}
-		} else {
-			if ((style & IWorkbenchBrowserSupport.AS_VIEW) != 0)
-				webBrowser = new InternalBrowserViewInstance(browserId, style,
-						name, tooltip);
-			else
-				webBrowser = new InternalBrowserEditorInstance(browserId,
-						style, name, tooltip);
-		}
-
-		if (webBrowser instanceof InternalBrowserInstance) {
-			// we should only share internal browsers within one
-			// workbench window. Each workbench window can have
-			// a shared browser with the same id
-			IWorkbenchWindow window = PlatformUI.getWorkbench()
-					.getActiveWorkbenchWindow();
-			Integer key = getWindowKey(window);
-			HashMap wmap = (HashMap) browserIdMap.get(browserId);
-			if (wmap == null) {
-				wmap = new HashMap();
-				browserIdMap.put(browserId, wmap);
-			}
-			wmap.put(key, webBrowser);
-		} else {
-			// external and system browsers are shared
-			// for the entire workbench
-			browserIdMap.put(browserId, webBrowser);
-		}
-		return webBrowser;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.browser.IWorkbenchBrowserSupport#createBrowser(java.lang.String)
-	 */
-	public IWebBrowser createBrowser(String browserId) throws PartInitException {
-		return createBrowser(0, browserId, null, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.browser.IWorkbenchBrowserSupport#isInternalWebBrowserAvailable()
-	 */
-	public boolean isInternalWebBrowserAvailable() {
-		return WebBrowserUtil.canUseInternalWebBrowser();
-	}
-
-	protected void removeBrowser(IWebBrowser browser) {
-		String baseId = WebBrowserUtil.decodeId(browser.getId());
-		if (browser instanceof InternalBrowserInstance) {
-			// Remove it from the window map and
-			// also remove the window map itself if it is empty.
-			Integer key = ((InternalBrowserInstance) browser).getWindowKey();
-			Object entry = browserIdMap.get(baseId);
-			if (entry != null && entry instanceof HashMap) {
-				HashMap wmap = (HashMap) entry;
-				wmap.remove(key);
-				if (wmap.isEmpty())
-					browserIdMap.remove(baseId);
-			}
-		} else
-			browserIdMap.remove(baseId);
-	}
-	
-	private String getDefaultId() {
-		String id = null;
-		for (int i = 0; i < Integer.MAX_VALUE; i++) {
-			id = DEFAULT_ID_BASE + i;
-			if (browserIdMap.get(id) == null)
-				break;
-		}
-		return id;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java
deleted file mode 100644
index 996ba41..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ExternalBrowserInstance.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.net.URL;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-
-/**
- * An instance of a running Web browser. rundll32.exe
- * url.dll,FileProtocolHandler www.ibm.com
- */
-public class ExternalBrowserInstance extends AbstractWebBrowser {
-	protected IBrowserDescriptor browser;
-
-	protected Process process;
-
-	public ExternalBrowserInstance(String id, IBrowserDescriptor browser) {
-		super(id);
-		this.browser = browser;
-	}
-
-	public void openURL(URL url) throws PartInitException {
-		String urlText = null;
-
-		if (url != null)
-			urlText = url.toExternalForm();
-
-		// change spaces to "%20"
-		if (urlText != null) { 
-			int index = urlText.indexOf(" "); //$NON-NLS-1$
-			while (index >= 0) {
-				urlText = urlText.substring(0, index)
-						+ "%20" + urlText.substring(index + 1); //$NON-NLS-1$
-				index = urlText.indexOf(" "); //$NON-NLS-1$
-			}
-		}
-
-		String location = browser.getLocation();
-		String parameters = browser.getParameters();
-		Trace
-				.trace(
-						Trace.FINEST,
-						"Launching external Web browser: " + location + " - " + parameters + " - " + urlText); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-		String params = WebBrowserUtil.createParameterString(parameters, urlText);
-
-		try {
-			Trace.trace(Trace.FINEST, "Launching " + location + " " + params); //$NON-NLS-1$//$NON-NLS-2$
-			if (params == null || params.length() == 0)
-				process = Runtime.getRuntime().exec(location);
-			else
-				process = Runtime.getRuntime().exec(location + " " + params); //$NON-NLS-1$
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Could not launch external browser", e); //$NON-NLS-1$
-			WebBrowserUtil.openError(NLS.bind(
-					Messages.errorCouldNotLaunchWebBrowser, urlText));
-		}
-		Thread thread = new Thread() {
-			public void run() {
-				try {
-					process.waitFor();
-					DefaultBrowserSupport.getInstance().removeBrowser(
-							ExternalBrowserInstance.this);
-				} catch (Exception e) {
-					// ignore
-				}
-			}
-		};
-		thread.setDaemon(true);
-		thread.start();
-	}
-
-	public boolean close() {
-		try {
-			process.destroy();
-			return true;
-		} catch (Exception e) {
-			return false;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/FallbackScrolledComposite.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/FallbackScrolledComposite.java
deleted file mode 100644
index 87bc93c..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/FallbackScrolledComposite.java
+++ /dev/null
@@ -1,147 +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.browser;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-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.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-
-public abstract class FallbackScrolledComposite extends ScrolledComposite {
-    private static final int H_SCROLL_INCREMENT = 5;
-
-    private static final int V_SCROLL_INCREMENT = 64;
-
-    /**
-     * Creates the new instance.
-     * 
-     * @param parent
-     *            the parent composite
-     * @param style
-     *            the style to use
-     */
-    public FallbackScrolledComposite(Composite parent, int style) {
-        super(parent, style);
-        addListener(SWT.Resize, new Listener() {
-            public void handleEvent(Event e) {
-                reflow(true);
-            }
-        });
-        setExpandVertical(true);
-        setExpandHorizontal(true);
-        initializeScrollBars();
-    }
-
-    /**
-     * Sets the foreground of the control and its content.
-     * 
-     * @param fg
-     *            the new foreground color
-     */
-    public void setForeground(Color fg) {
-        super.setForeground(fg);
-        if (getContent() != null)
-            getContent().setForeground(fg);
-    }
-
-    /**
-     * Sets the background of the control and its content.
-     * 
-     * @param bg
-     *            the new background color
-     */
-    public void setBackground(Color bg) {
-        super.setBackground(bg);
-        if (getContent() != null)
-            getContent().setBackground(bg);
-    }
-
-    /**
-     * Sets the font of the form. This font will be used to render the title
-     * text. It will not affect the body.
-     */
-    public void setFont(Font font) {
-        super.setFont(font);
-        if (getContent() != null)
-            getContent().setFont(font);
-    }
-
-    /**
-     * Overrides 'super' to pass the proper colors and font
-     */
-    public void setContent(Control content) {
-        super.setContent(content);
-        if (content != null) {
-            content.setForeground(getForeground());
-            content.setBackground(getBackground());
-            content.setFont(getFont());
-        }
-    }
-
-    /**
-     * If content is set, transfers focus to the content.
-     */
-    public boolean setFocus() {
-        if (getContent() != null)
-            return getContent().setFocus();
-        return super.setFocus();
-    }
-
-    /**
-     * Recomputes the body layout and the scroll bars. The method should be used
-     * when changes somewhere in the form body invalidate the current layout
-     * and/or scroll bars.
-     * 
-     * @param flushCache
-     *            if <code>true</code>, drop the cached data
-     */
-    public void reflow(boolean flushCache) {
-        Composite c = (Composite) getContent();
-        Rectangle clientArea = getClientArea();
-        if (c == null)
-            return;
-
-        Point newSize = c
-                .computeSize(clientArea.width, SWT.DEFAULT, flushCache);
-
-        setMinSize(newSize);
-        updatePageIncrement();
-        layout(flushCache);
-    }
-
-    private void updatePageIncrement() {
-        ScrollBar vbar = getVerticalBar();
-        if (vbar != null) {
-            Rectangle clientArea = getClientArea();
-            int increment = clientArea.height - 5;
-            vbar.setPageIncrement(increment);
-        }
-    }
-
-    private void initializeScrollBars() {
-        ScrollBar hbar = getHorizontalBar();
-        if (hbar != null) {
-            hbar.setIncrement(H_SCROLL_INCREMENT);
-        }
-        ScrollBar vbar = getVerticalBar();
-        if (vbar != null) {
-            vbar.setIncrement(V_SCROLL_INCREMENT);
-        }
-        updatePageIncrement();
-    }
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptor.java
deleted file mode 100644
index 9d57daf..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptor.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.browser;
-/**
- * An interface to an external Web browser.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see IBrowserDescriptorWorkingCopy
- * @since 1.0
- */
-public interface IBrowserDescriptor {
-	public static final String URL_PARAMETER = "%URL%"; //$NON-NLS-1$
-
-	/**
-	 * Returns the displayable name of the Web browser.
-	 *  
-	 * @return the name
-	 */
-	public String getName();
-
-	/**
-	 * Returns the absolute path to the location of the Web browser's executable.
-	 * The location is platform specific and may return null if no location has been
-	 * set.
-	 * 
-	 * @return the path to the executable
-	 */
-	public String getLocation();
-
-	/**
-	 * Returns the parameters that should be used to launch the Web browser executable.
-	 * %URL% is used if the URL should be inserted into the parameters. If there are
-	 * no parameters, <code>null</code> is returned.
-	 * 
-	 * @return the parameters
-	 */
-	public String getParameters();
-
-	/**
-	 * Deletes this Web browser. The browser will no longer be available to users.
-	 * This method has no effect if the browser has already been deleted or has never
-	 * been saved.
-	 */
-	public void delete();
-
-	/**
-	 * Returns whether this browser is a working copy. Browsers which return
-	 * <code>true</code> to this method can be safely cast to 
-	 * <code>org.eclipse.ui.internal.browser.IBrowserDescriptorWorkingCopy</code>
-	 * 
-	 * @return whether this browser is a working copy
-	 */
-	public boolean isWorkingCopy();
-
-	/**
-	 * Returns a working copy of this browser. Changes to the working copy will be
-	 * applied to this browser when saved.
-	 * 
-	 * @return a working copy of this browser
-	 */
-	public IBrowserDescriptorWorkingCopy getWorkingCopy();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptorWorkingCopy.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptorWorkingCopy.java
deleted file mode 100644
index e21f991..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserDescriptorWorkingCopy.java
+++ /dev/null
@@ -1,50 +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.browser;
-/**
- * A working copy of an external web browser.
- * <p>
- * This interface is not intended to be implemented by clients.
- * </p>
- * @see org.eclipse.ui.internal.browser.IWebBrowser
- * @see IBrowserDescriptor
- * @since 1.0
- */
-public interface IBrowserDescriptorWorkingCopy extends IBrowserDescriptor {
-	/**
-	 * Renames this browser to the specified name. The new name cannot be <code>null</code>.
-	 * 
-	 * @param name the new name for this browser
-	 */
-	public void setName(String name);
-
-	/**
-	 * Set the location of this browsers executable. The location must not be <code>null</code>.
-	 * 
-	 * @param location the new location
-	 */
-	public void setLocation(String location);
-
-	/**
-	 * Set the parameters for this browser. If there are no parameters, the parameters
-	 * should be null.
-	 * 
-	 * @param params the new parameters
-	 */
-	public void setParameters(String params);
-
-	/**
-	 * Saves the changes to this working copy and returns the resulting web browser.
-	 *
-	 * @return the modified or created browser
-	 */
-	public IBrowserDescriptor save();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserExt.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserExt.java
deleted file mode 100644
index 67d1bc3..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserExt.java
+++ /dev/null
@@ -1,85 +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.browser;
-
-import org.eclipse.ui.browser.IWebBrowser;
-
-/**
- * A 
- * 
- * <p>This interface is not intended to be implemented by clients.</p>
- * 
- * @since 1.0
- */
-public interface IBrowserExt {
-	/**
-	 * Returns the id of this client. Each known client has a distinct id. 
-	 * Ids are intended to be used internally as keys; they are not
-	 * intended to be shown to end users.
-	 * 
-	 * @return the client id
-	 */
-	public String getId();
-
-	/**
-	 * Returns the displayable name for this client.
-	 * <p>
-	 * Note that this name is appropriate for the current locale.
-	 * </p>
-	 *
-	 * @return a displayable name for this client
-	 */
-	public String getName();
-
-	/**
-	 * Returns the parameters for this browser.
-	 *
-	 * @return the parameters for this browser
-	 */
-	public String getParameters();
-
-	/**
-	 * Returns the browser's executable.
-	 *
-	 * @return the browser's executable
-	 */
-	public String getExecutable();
-	
-	/**
-	 * Returns the OSs that this browser is available on.
-	 *
-	 * @return an array of OSs that this browser runs on
-	 */
-	public String getOS();
-	
-	/**
-	 * Returns the default install locations of this browser.
-	 *
-	 * @return the default install locations of this browser
-	 */
-	public String[] getDefaultLocations();
-	
-	/**
-	 * Checks whether the factory can work on the user system.
-	 * 
-	 * @return false if the factory cannot work on this system; for example the
-	 *    required native browser required by browser adapters that it
-	 *    creates is not installed
-	 */
-	public boolean isAvailable();
-
-	/**
-	 * Obtains a new instance of a web browser.
-	 * 
-	 * @return instance of IBrowser
-	 */
-	public IWebBrowser createBrowser(String id, String location, String parameters);
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserViewerContainer.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserViewerContainer.java
deleted file mode 100644
index cb84ff2..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/IBrowserViewerContainer.java
+++ /dev/null
@@ -1,33 +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.browser;
-
-import org.eclipse.ui.IActionBars;
-
-public interface IBrowserViewerContainer {
-    /**
-     * Closes the container from the inside.
-     * @return 
-     */
-    boolean close();
-    /**
-     * Returns the action bars of the container.
-     * @return action bars of the container or <code>null</code> if
-     * not available.
-     */
-    IActionBars getActionBars();
-    /**
-     * Opens the url in the external browser if
-     * internal browser failed to create.
-     * @param url
-     */
-    void openInExternalBrowser(String url);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResource.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResource.java
deleted file mode 100644
index 2346e00..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ImageResource.java
+++ /dev/null
@@ -1,170 +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.browser;
-
-import java.net.URL;
-import java.util.Map;
-import java.util.HashMap;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-/**
- * Utility class to handle image resources.
- */
-public class ImageResource {
-	// the image registry
-	private static ImageRegistry imageRegistry;
-
-	// map of image descriptors since these
-	// will be lost by the image registry
-	private static Map imageDescriptors;
-
-	private static Image[] busyImages;
-
-	private static final String URL_PREFIX = "$nl$/icons/"; //$NON-NLS-1$
-	private static final String URL_CLCL = URL_PREFIX + "clcl16/"; //$NON-NLS-1$
-	private static final String URL_ELCL = URL_PREFIX + "elcl16/"; //$NON-NLS-1$
-	private static final String URL_DLCL = URL_PREFIX + "dlcl16/"; //$NON-NLS-1$
-	private static final String URL_OBJ = URL_PREFIX + "obj16/"; //$NON-NLS-1$
-
-	// --- constants for images ---
-	// toolbar images
-	public static final String IMG_CLCL_NAV_BACKWARD = "IMG_CLCL_NAV_BACKWARD"; //$NON-NLS-1$
-	public static final String IMG_CLCL_NAV_FORWARD = "IMG_CLCL_NAV_FORWARD"; //$NON-NLS-1$
-	public static final String IMG_CLCL_NAV_STOP = "IMG_CLCL_NAV_STOP"; //$NON-NLS-1$
-	public static final String IMG_CLCL_NAV_REFRESH = "IMG_CLCL_NAV_REFRESH"; //$NON-NLS-1$
-	public static final String IMG_CLCL_NAV_GO = "IMG_CLCL_NAV_GO"; //$NON-NLS-1$
-	public static final String IMG_CLCL_NAV_HOME = "IMG_CLCL_NAV_HOME"; //$NON-NLS-1$
-	public static final String IMG_CLCL_NAV_PRINT = "IMG_CLCL_NAV_PRINT"; //$NON-NLS-1$
-
-	public static final String IMG_ELCL_NAV_BACKWARD = "IMG_ELCL_NAV_BACKWARD"; //$NON-NLS-1$
-	public static final String IMG_ELCL_NAV_FORWARD = "IMG_ELCL_NAV_FORWARD"; //$NON-NLS-1$
-	public static final String IMG_ELCL_NAV_STOP = "IMG_ELCL_NAV_STOP"; //$NON-NLS-1$
-	public static final String IMG_ELCL_NAV_REFRESH = "IMG_ELCL_NAV_REFRESH"; //$NON-NLS-1$
-	public static final String IMG_ELCL_NAV_GO = "IMG_ELCL_NAV_GO"; //$NON-NLS-1$
-	public static final String IMG_ELCL_NAV_HOME = "IMG_ELCL_NAV_HOME"; //$NON-NLS-1$
-	public static final String IMG_ELCL_NAV_PRINT = "IMG_ELCL_NAV_PRINT"; //$NON-NLS-1$
-
-	public static final String IMG_DLCL_NAV_BACKWARD = "IMG_DLCL_NAV_BACKWARD"; //$NON-NLS-1$
-	public static final String IMG_DLCL_NAV_FORWARD = "IMG_DLCL_NAV_FORWARD"; //$NON-NLS-1$
-	public static final String IMG_DLCL_NAV_STOP = "IMG_DLCL_NAV_STOP"; //$NON-NLS-1$
-	public static final String IMG_DLCL_NAV_REFRESH = "IMG_DLCL_NAV_REFRESH"; //$NON-NLS-1$
-	public static final String IMG_DLCL_NAV_GO = "IMG_DLCL_NAV_GO"; //$NON-NLS-1$
-	public static final String IMG_DLCL_NAV_HOME = "IMG_DLCL_NAV_HOME"; //$NON-NLS-1$
-	public static final String IMG_DLCL_NAV_PRINT = "IMG_DLCL_NAV_PRINT"; //$NON-NLS-1$
-
-	// general object images
-	public static final String IMG_INTERNAL_BROWSER = "internalBrowser"; //$NON-NLS-1$
-	public static final String IMG_EXTERNAL_BROWSER = "externalBrowser"; //$NON-NLS-1$
-	public static final String IMG_SYSTEM_BROWSER = "systemBrowser"; //$NON-NLS-1$
-
-	/**
-	 * Cannot construct an ImageResource. Use static methods only.
-	 */
-	private ImageResource() {
-		// do nothing
-	}
-
-	/**
-	 * Returns the busy images for the Web browser.
-	 *
-	 * @return org.eclipse.swt.graphics.Image[]
-	 */
-	public static Image[] getBusyImages() {
-		return busyImages;
-	}
-
-	/**
-	 * Return the image with the given key.
-	 *
-	 * @param key java.lang.String
-	 * @return org.eclipse.swt.graphics.Image
-	 */
-	public static Image getImage(String key) {
-		if (imageRegistry == null)
-			initializeImageRegistry();
-		return imageRegistry.get(key);
-	}
-
-	/**
-	 * Return the image descriptor with the given key.
-	 *
-	 * @param key java.lang.String
-	 * @return org.eclipse.jface.resource.ImageDescriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String key) {
-		if (imageRegistry == null)
-			initializeImageRegistry();
-		return (ImageDescriptor) imageDescriptors.get(key);
-	}
-
-	/**
-	 * Initialize the image resources.
-	 */
-	protected static void initializeImageRegistry() {
-		imageRegistry = new ImageRegistry();
-		imageDescriptors = new HashMap();
-	
-		// load Web browser images
-		registerImage(IMG_ELCL_NAV_BACKWARD, URL_ELCL + "nav_backward.gif"); //$NON-NLS-1$
-		registerImage(IMG_ELCL_NAV_FORWARD, URL_ELCL + "nav_forward.gif"); //$NON-NLS-1$
-		registerImage(IMG_ELCL_NAV_STOP, URL_ELCL + "nav_stop.gif"); //$NON-NLS-1$
-		registerImage(IMG_ELCL_NAV_REFRESH, URL_ELCL + "nav_refresh.gif"); //$NON-NLS-1$
-		registerImage(IMG_ELCL_NAV_GO, URL_ELCL + "nav_go.gif"); //$NON-NLS-1$
-		registerImage(IMG_ELCL_NAV_HOME, URL_ELCL + "nav_home.gif"); //$NON-NLS-1$
-		registerImage(IMG_ELCL_NAV_PRINT, URL_ELCL + "nav_print.gif"); //$NON-NLS-1$
-	
-		registerImage(IMG_CLCL_NAV_BACKWARD, URL_CLCL + "nav_backward.gif"); //$NON-NLS-1$
-		registerImage(IMG_CLCL_NAV_FORWARD, URL_CLCL + "nav_forward.gif"); //$NON-NLS-1$
-		registerImage(IMG_CLCL_NAV_STOP, URL_CLCL + "nav_stop.gif"); //$NON-NLS-1$
-		registerImage(IMG_CLCL_NAV_REFRESH, URL_CLCL + "nav_refresh.gif"); //$NON-NLS-1$
-		registerImage(IMG_CLCL_NAV_GO, URL_CLCL + "nav_go.gif"); //$NON-NLS-1$
-		registerImage(IMG_CLCL_NAV_HOME, URL_CLCL + "nav_home.gif"); //$NON-NLS-1$
-		registerImage(IMG_CLCL_NAV_PRINT, URL_CLCL + "nav_print.gif"); //$NON-NLS-1$
-	
-		registerImage(IMG_DLCL_NAV_BACKWARD, URL_DLCL + "nav_backward.gif"); //$NON-NLS-1$
-		registerImage(IMG_DLCL_NAV_FORWARD, URL_DLCL + "nav_forward.gif"); //$NON-NLS-1$
-		registerImage(IMG_DLCL_NAV_STOP, URL_DLCL + "nav_stop.gif"); //$NON-NLS-1$
-		registerImage(IMG_DLCL_NAV_REFRESH, URL_DLCL + "nav_refresh.gif"); //$NON-NLS-1$
-		registerImage(IMG_DLCL_NAV_GO, URL_DLCL + "nav_go.gif"); //$NON-NLS-1$
-		registerImage(IMG_DLCL_NAV_HOME, URL_DLCL + "nav_home.gif"); //$NON-NLS-1$
-		registerImage(IMG_DLCL_NAV_PRINT, URL_DLCL + "nav_print.gif"); //$NON-NLS-1$
-	
-		registerImage(IMG_INTERNAL_BROWSER, URL_OBJ + "internal_browser.gif"); //$NON-NLS-1$
-		registerImage(IMG_EXTERNAL_BROWSER, URL_OBJ + "external_browser.gif"); //$NON-NLS-1$
-		
-		// busy images
-		busyImages = new Image[13];
-		for (int i = 0; i < 13; i++) {
-			registerImage("busy" + i, URL_OBJ + "busy/" + (i+1) + ".gif"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			busyImages[i] = getImage("busy" + i); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Register an image with the registry.
-	 *
-	 * @param key java.lang.String
-	 * @param partialURL java.lang.String
-	 */
-	private static void registerImage(String key, String partialURL) {
-		try {
-			URL url = FileLocator.find(WebBrowserUIPlugin.getInstance().getBundle(), new Path(partialURL), null);
-			ImageDescriptor id = ImageDescriptor.createFromURL(url);
-			imageRegistry.put(key, id);
-			imageDescriptors.put(key, id);
-		} catch (Exception e) {
-			Trace.trace(Trace.WARNING, "Error registering image " + key + " from " + partialURL, e); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserEditorInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserEditorInstance.java
deleted file mode 100644
index d97105f..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserEditorInstance.java
+++ /dev/null
@@ -1,62 +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.browser;
-
-import java.net.URL;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-/**
- * An instance of a running Web browser.
- */
-public class InternalBrowserEditorInstance extends InternalBrowserInstance {
-
-	public InternalBrowserEditorInstance(String id, int style, String name, String tooltip) {
-		super(id, style, name, tooltip);
-	}
-
-	public void openURL(URL url) throws PartInitException {
-		WebBrowserEditorInput input = new WebBrowserEditorInput(url, style);
-		input.setName(this.name);
-		input.setToolTipText(this.tooltip);
-		WebBrowserEditor editor = (WebBrowserEditor)part;
-		
-		IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow();
-		IWorkbenchPage page = null;
-		if (workbenchWindow != null)
-			page = workbenchWindow.getActivePage();
-		
-		if (page == null)
-			throw new PartInitException(Messages.errorCouldNotLaunchInternalWebBrowser);
-		
-		if (editor != null) {
-			editor.init(editor.getEditorSite(), input);
-			page.activate(editor);
-		} else {
-			try {
-				IEditorPart editorPart = page.openEditor(input, WebBrowserEditor.WEB_BROWSER_EDITOR_ID);
-				hookPart(page, editorPart);
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error opening Web browser", e); //$NON-NLS-1$
-			}
-		}
-	}
-
-	public boolean close() {
-		try {
-			return ((WebBrowserEditor)part).close();
-		} catch (Exception e) {
-			return false;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserInstance.java
deleted file mode 100644
index 2d45d2c..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserInstance.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-
-/**
- * An instance of a running Web browser.
- */
-public abstract class InternalBrowserInstance extends AbstractWebBrowser {
-	protected int style;
-
-	protected String name;
-
-	protected String tooltip;
-
-	protected IWorkbenchPart part;
-
-	protected IPartListener listener;
-	
-	private Integer windowKey;
-
-	public InternalBrowserInstance(String id, int style, String name,
-			String tooltip) {
-		super(WebBrowserUtil.encodeStyle(id, style));
-		this.style = style;
-		this.name = name;
-		this.tooltip = tooltip;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	public void setTooltip(String tooltip) {
-		this.tooltip = tooltip;
-	}
-
-	protected void hookPart(final IWorkbenchPage page, IWorkbenchPart part2) {
-		this.part = part2;
-		listener = new IPartListener() {
-			public void partActivated(IWorkbenchPart part3) {
-				// ignore
-			}
-
-			public void partBroughtToTop(IWorkbenchPart part3) {
-				// ignore
-			}
-
-			public void partClosed(IWorkbenchPart part3) {
-				if (part3.equals(InternalBrowserInstance.this.part)) {
-					InternalBrowserInstance.this.part = null;
-					page.removePartListener(listener);
-					DefaultBrowserSupport.getInstance().removeBrowser(
-							InternalBrowserInstance.this);
-				}
-			}
-
-			public void partDeactivated(IWorkbenchPart part3) {
-				// ignore
-			}
-
-			public void partOpened(IWorkbenchPart part3) {
-				// ignore
-			}
-		};
-		page.addPartListener(listener);
-		IWorkbenchWindow window = part.getSite().getWorkbenchWindow();
-		windowKey = new Integer(window.hashCode());
-	}
-
-	public Integer getWindowKey() {
-		return windowKey;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java
deleted file mode 100644
index 2bd9f8e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/InternalBrowserViewInstance.java
+++ /dev/null
@@ -1,47 +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.browser;
-
-import java.net.URL;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-/**
- * An instance of a running Web browser.
- */
-public class InternalBrowserViewInstance extends InternalBrowserInstance {
-	public InternalBrowserViewInstance(String id, int style, String name, String tooltip) {
-		super(WebBrowserUtil.encodeStyle(id, style), style, name, tooltip);
-	}
-
-	public void openURL(URL url) throws PartInitException {
-        IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow();
-        final IWorkbenchPage page = workbenchWindow.getActivePage();
-        WebBrowserView view = (WebBrowserView)part;
-		if (view == null) {
-            try {
-				view = (WebBrowserView)page.showView(WebBrowserView.WEB_BROWSER_VIEW_ID, getId(), IWorkbenchPage.VIEW_CREATE);
-                hookPart(page, view);
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error opening Web browser", e); //$NON-NLS-1$
-			}
-		}
-        if (view!=null) {
-            page.bringToTop(view);
-            view.setURL(url.toExternalForm());
-        }
-	}
-
-	public boolean close() {
-        return ((WebBrowserView)part).close();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java
deleted file mode 100644
index dad379b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.java
+++ /dev/null
@@ -1,68 +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.browser;
-
-import org.eclipse.osgi.util.NLS;
-/**
- * Translated messages.
- */
-public class Messages extends NLS {
-	static {
-		NLS.initializeMessages("org.eclipse.ui.internal.browser.Messages", Messages.class); //$NON-NLS-1$
-	}
-
-	public static String BrowserText_title;
-	public static String BrowserText_link;
-	public static String BrowserText_tooltip;
-	public static String BrowserText_dtitle;
-	public static String BrowserText_text;
-	public static String BrowserText_button_collapse;
-	public static String BrowserText_button_expand;
-
-	public static String errorCouldNotLaunchInternalWebBrowser;
-	public static String actionWebBrowserGo;
-	public static String viewWebBrowserTitle;
-	public static String actionWebBrowserBack;
-	public static String actionWebBrowserForward;
-	public static String actionWebBrowserStop;
-	public static String actionWebBrowserRefresh;
-	public static String dialogResourceDeletedTitle;
-	public static String dialogResourceDeletedMessage;
-	public static String dialogResourceDeletedIgnore;
-	public static String errorInvalidEditorInput;
-	public static String preferenceWebBrowserDescription;
-	public static String prefInternalBrowser;
-	public static String prefExternalBrowser;
-	public static String prefSystemBrowser;
-	public static String browserList;
-	public static String add;
-	public static String edit;
-	public static String remove;
-	public static String search;
-	public static String selectDirectory;
-	public static String directoryDialogTitle;
-	public static String searchingTaskName;
-	public static String searchingNoneFound;
-	public static String preferenceWebBrowserTitle;
-	public static String searching;
-	public static String errorDialogTitle;
-	public static String errorCouldNotLaunchWebBrowser;
-	public static String errorNoBrowser;
-	public static String editExternalBrowser;
-	public static String createBrowser;
-	public static String name;
-	public static String location;
-	public static String parameters;
-	public static String parametersMessage;
-	public static String browse;
-	public static String browseMessage;
-	public static String locationInvalid;
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties
deleted file mode 100644
index 77dd456..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Messages.properties
+++ /dev/null
@@ -1,69 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-BrowserText_title=Embedded browser not available
-BrowserText_link=<a href="open">Open file using the system editor</a>
-BrowserText_tooltip=Open External Editor
-BrowserText_dtitle=Problem Details
-BrowserText_text=The embedded browser widget for this editor cannot be created. It is either not available for your operating system or the system needs to be configured in order to support embedded browser.
-BrowserText_button_collapse=Details<<
-BrowserText_button_expand=Details>>
-
-# --- Internal Web Browser ---
-viewWebBrowserTitle=Web Browser
-
-# Actions
-actionWebBrowserGo=Go to the selected URL
-actionWebBrowserBack=Back to the previous page
-actionWebBrowserForward=Forward to the next page
-actionWebBrowserStop=Stop loading the current page
-actionWebBrowserRefresh=Refresh the current page
-
-# message if a resource is deleted
-dialogResourceDeletedTitle=Web Resource Deleted
-dialogResourceDeletedMessage=The file {0} initially opened in the Web Browser has been deleted from the file system. Do you want to ignore the deletion or close the Web Browser?
-dialogResourceDeletedIgnore=Ignore
-
-# --------------- Preferences ---------------
-
-# Name of the preference pages
-preferenceWebBrowserTitle=Web Browser
-preferenceWebBrowserDescription=Add, remove, or edit installed Web browsers.\nThe selected Web browser will be used by default when Web pages are opened, although some applications may always use the external browser.
-
-# Web Browser preferences
-prefInternalBrowser=Use &internal Web browser
-prefSystemBrowser=Default system Web browser
-prefExternalBrowser=Use e&xternal Web browser
-
-errorDialogTitle=Error
-errorCouldNotLaunchWebBrowser=Could not launch external Web Browser for {0}. Check the Web Browser preferences.
-errorNoBrowser=Could not open a Web browser because there are none configured. Check the Web Browser preferences.
-errorInvalidEditorInput=Could not open Web browser on {0}. Ensure that it is an uncompressed file.
-
-browserList=External &Web browsers:
-add=&New...
-edit=&Edit...
-remove=&Remove
-search=&Search...
-createBrowser=Add External Web Browser
-editExternalBrowser=Edit External Web Browser
-name=&Name:
-location=&Location:
-parameters=&Parameters:
-parametersMessage=Example: -url {0}\n(Use {0} to include the URL)
-browse=&Browse...
-browseMessage=Specify the location of the Web Browser executable
-errorCouldNotLaunchInternalWebBrowser=Could not launch internal Web Browser. Please set an external browser in the Browser preferences.
-searchingTaskName=Searching for Web browsers...
-searching=Found {0} - Searching {1}
-searchingNoneFound=No Web browsers were found.
-selectDirectory=Select a directory to search for Web browsers:
-directoryDialogTitle=Directory Selection
-locationInvalid=The location value is not a valid path name.
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java
deleted file mode 100644
index 7861089..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserHandler.java
+++ /dev/null
@@ -1,66 +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.browser;
-
-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.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-public class OpenBrowserHandler extends AbstractHandler {
-
-	private static final String PARAM_ID_URL = "url"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_BROWSER_ID = "browserId"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_NAME = "name"; //$NON-NLS-1$
-
-	private static final String PARAM_ID_TOOLTIP = "tooltip"; //$NON-NLS-1$
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		String urlText = event.getParameter(PARAM_ID_URL);
-		URL url;
-		if (urlText == null) {
-			url = null;
-		} else {
-			try {
-				url = new URL(urlText);
-			} catch (MalformedURLException ex) {
-				throw new ExecutionException("malformed URL:" + urlText, ex); //$NON-NLS-1$
-			}
-		}
-
-		String browserId = event.getParameter(PARAM_ID_BROWSER_ID);
-		String name = event.getParameter(PARAM_ID_NAME);
-		String tooltip = event.getParameter(PARAM_ID_TOOLTIP);
-
-		try {
-			IWorkbenchBrowserSupport browserSupport = PlatformUI.getWorkbench()
-					.getBrowserSupport();
-			IWebBrowser browser = browserSupport.createBrowser(
-					IWorkbenchBrowserSupport.LOCATION_BAR
-							| IWorkbenchBrowserSupport.NAVIGATION_BAR,
-					browserId, name, tooltip);
-			browser.openURL(url);
-		} catch (PartInitException ex) {
-			throw new ExecutionException("error opening browser", ex); //$NON-NLS-1$
-		}
-
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java
deleted file mode 100644
index 9164082..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/OpenBrowserWorkbenchAction.java
+++ /dev/null
@@ -1,79 +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.browser;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.*;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-/**
- * Action to open the Web broswer.
- */
-public class OpenBrowserWorkbenchAction implements IWorkbenchWindowActionDelegate {
-	/**
-	 * OpenBrowserWorkbenchAction constructor comment.
-	 */
-	public OpenBrowserWorkbenchAction() {
-		super();
-	}
-
-	/**
-	 * Disposes this action delegate.  The implementor should unhook any references
-	 * to itself so that garbage collection can occur.
-	 */
-	public void dispose() {
-		// do nothing
-	}
-
-	/**
-	 * Initializes this action delegate with the workbench window it will work in.
-	 *
-	 * @param window the window that provides the context for this delegate
-	 */
-	public void init(IWorkbenchWindow window) {
-		// do nothing
-	}
-
-	/**
-	 * Performs this action.
-	 * <p>
-	 * This method is called when the delegating action has been triggered.
-	 * Implement this method to do the actual work.
-	 * </p>
-	 *
-	 * @param action the action proxy that handles the presentation portion of the
-	 *   action
-	 */
-	public void run(IAction action) {
-		try {
-			IWorkbenchBrowserSupport browserSupport = WebBrowserUIPlugin.getInstance().getWorkbench().getBrowserSupport();
-			IWebBrowser browser = browserSupport.createBrowser(IWorkbenchBrowserSupport.LOCATION_BAR | IWorkbenchBrowserSupport.NAVIGATION_BAR, null, null, null);
-			browser.openURL(null);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error opening browser", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Notifies this action delegate that the selection in the workbench has changed.
-	 * <p>
-	 * Implementers can use this opportunity to change the availability of the
-	 * action or to modify other presentation properties.
-	 * </p>
-	 *
-	 * @param action the action proxy that handles presentation portion of the action
-	 * @param selection the current selection in the workbench
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java
deleted file mode 100644
index dde786a..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SWTUtil.java
+++ /dev/null
@@ -1,77 +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.browser;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-/**
- * SWT Utility class.
- */
-public class SWTUtil {
-	private static FontMetrics fontMetrics;
-
-	protected static void initializeDialogUnits(Control testControl) {
-		// Compute and store a font metric
-		GC gc = new GC(testControl);
-		gc.setFont(JFaceResources.getDialogFont());
-		fontMetrics = gc.getFontMetrics();
-		gc.dispose();
-	}
-
-	/**
-	 * Returns a width hint for a button control.
-	 */
-	protected static int getButtonWidthHint(Button button) {
-		int widthHint = Dialog.convertHorizontalDLUsToPixels(fontMetrics, IDialogConstants.BUTTON_WIDTH);
-		return Math.max(widthHint, button.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x);
-	}
-
-	/**
-	 * Create a new button with the standard size.
-	 * 
-	 * @param comp a component to add the button to
-	 * @param label the button label
-	 * @return a button
-	 */
-	public static Button createButton(Composite comp, String label) {
-		Button b = new Button(comp, SWT.PUSH);
-		b.setText(label);
-		if (fontMetrics == null)
-			initializeDialogUnits(comp);
-		GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING);
-		data.widthHint = getButtonWidthHint(b);
-		b.setLayoutData(data);
-		return b;
-	}
-	
-	/**
-	 * Create a new standard label.
-	 * 
-	 * @param comp a component to add the label to
-	 * @param text the label text
-	 * @return a label
-	 */
-	public static Label createLabel(Composite comp, String text) {
-		Label label = new Label(comp, SWT.NONE);
-		label.setText(text);
-		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.VERTICAL_ALIGN_BEGINNING));
-		return label;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java
deleted file mode 100644
index 4d19603..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserDescriptor.java
+++ /dev/null
@@ -1,41 +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.browser;
-
-public class SystemBrowserDescriptor implements IBrowserDescriptor {
-	public String getName() {
-		return Messages.prefSystemBrowser;
-	}
-
-	public String getLocation() {
-		return null;
-	}
-
-	public String getParameters() {
-		return null;
-	}
-
-	public void delete() {
-		// ignore
-	}
-
-	public boolean isWorkingCopy() {
-		return false;
-	}
-
-	public IBrowserDescriptorWorkingCopy getWorkingCopy() {
-		return null;
-	}
-	
-	public boolean equals(Object obj) {
-		return obj instanceof SystemBrowserDescriptor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java
deleted file mode 100644
index 4cacdd6..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/SystemBrowserInstance.java
+++ /dev/null
@@ -1,52 +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.browser;
-
-import java.net.URL;
-
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.program.Program;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-
-/**
- * An instance of a running system Web browser.
- */
-public class SystemBrowserInstance extends AbstractWebBrowser {
-	public SystemBrowserInstance(String id) {
-		super(id);
-	}
-
-	public void openURL(URL url) throws PartInitException {
-		String urlText = null;
-
-		if (url != null)
-			urlText = url.toExternalForm();
-
-		// change spaces to "%20"
-		if (urlText != null && !WebBrowserUtil.isWindows()) {
-			int index = urlText.indexOf(" "); //$NON-NLS-1$
-			while (index >= 0) {
-				urlText = urlText.substring(0, index) + "%20" //$NON-NLS-1$
-						+ urlText.substring(index + 1);
-				index = urlText.indexOf(" "); //$NON-NLS-1$
-			}
-		}
-		Trace.trace(Trace.FINEST, "Launching system Web browser: " + urlText); //$NON-NLS-1$
-		Program program = Program.findProgram("html"); //$NON-NLS-1$
-		if (program != null) {
-			if (program.execute(urlText))
-				return;
-		}
-		if (!Program.launch(urlText))
-			throw new PartInitException(NLS.bind(Messages.errorCouldNotLaunchWebBrowser, url.toExternalForm()));
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java
deleted file mode 100644
index ec374f0..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/TextAction.java
+++ /dev/null
@@ -1,141 +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.browser;
-
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.jface.action.Action;
-/**
- * Text actions (cut, copy, paste) for the Web browser.
- */
-public class TextAction extends Action {
-	protected BrowserViewer browser;
-	protected byte type;
-
-	public static final byte CUT = 0;
-	public static final byte COPY = 1;
-	public static final byte PASTE = 2;
-	
-	/**
-	 * TextAction constructor comment.
-	 */
-	protected TextAction(BrowserViewer browser, byte type) {
-		super(type + "!"); //$NON-NLS-1$
-		this.browser = browser;
-		this.type = type;
-	}
-	
-	/**
-	 * Copies the selected text to the clipboard.  The text will be put in the 
-	 * clipboard in plain text format.
-	 * <p>
-	 *
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public void copy() {
-		Point selection = browser.combo.getSelection();
-	
-		int length = selection.y - selection.x;
-		if (length > 0) {
-			TextTransfer plainTextTransfer = TextTransfer.getInstance();
-			try {
-				browser.clipboard.setContents(
-					new String[] { browser.combo.getText().substring(selection.x, selection.y) }, 
-					new Transfer[] { plainTextTransfer });
-			} catch (SWTError error) {
-				// Copy to clipboard failed. This happens when another application 
-				// is accessing the clipboard while we copy. Ignore the error.
-				// Fixes 1GDQAVN
-			}
-		}
-	}
-	
-	/**
-	 * Moves the selected text to the clipboard.  The text will be put in the 
-	 * clipboard in plain text format and RTF format.
-	 * <p>
-	 *
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public void cut(){
-		Point selection = browser.combo.getSelection();
-	
-		if (selection.y > selection.x) {
-			copy();
-			delete();
-		}
-	}
-	
-	/**
-	 * Deletes the character to the right of the caret. Delete the selected text if any.
-	 */
-	public void delete() {
-		Point selection = browser.combo.getSelection();
-		String text = browser.combo.getText();
-	
-		if (selection.x != selection.y) {
-			text = text.substring(0, selection.x) + text.substring(selection.y);
-			browser.combo.setText(text);
-			browser.combo.setSelection(new Point(selection.x, selection.x));
-		}
-	}
-	
-	/** 
-	 * Replaces the selection with the clipboard text or insert the text at 
-	 * the current caret offset if there is no selection. 
-	 * If the widget has the SWT.SINGLE style and the clipboard text contains
-	 * more than one line, only the first line without line delimiters is 
-	 * inserted in the widget.
-	 * <p>
-	 *
-	 * @exception SWTException <ul>
-	 *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-	 *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-	 * </ul>
-	 */
-	public void paste() {
-		TextTransfer transfer = TextTransfer.getInstance();
-		Point selection = browser.combo.getSelection();
-		String text = browser.combo.getText();
-		
-		String newText = (String) browser.clipboard.getContents(transfer);
-		if (newText != null && newText.length() > 0) {
-			text = text.substring(0, selection.x) + newText + text.substring(selection.y);
-			browser.combo.setText(text);
-	
-			// set the selection to the end of the paste
-			int x = selection.x + newText.length();
-			browser.combo.setSelection(new Point(x, x));
-		}
-	}
-	
-	/**
-	 * Implementation of method defined on <code>IAction</code>.
-	 */
-	public void run() {
-		if (browser == null || browser.combo == null)
-			return;
-		if (type == CUT)
-			cut();
-		else if (type == COPY)
-			copy();
-		else if (type == PASTE)
-			paste();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java
deleted file mode 100644
index 18abbe9..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/ToolbarLayout.java
+++ /dev/null
@@ -1,88 +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.browser;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-/**
- * Custom layout for the browser's toolbar.
- */
-public class ToolbarLayout extends Layout {
-	private static final int SPACING = 5;
-	private static final int EXTRA_BUSY_SPACING = 2;
-	private static final int MARGIN = 2;
-
-	/* (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) {
-		if (hHint != SWT.DEFAULT)
-			return new Point(wHint, hHint);
-		
-		Control[] children = composite.getChildren();
-		int h = 0;
-		int size = children.length;
-		for (int i = 0; i < size; i++) {
-			h = Math.max(h, children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT).y);
-		}
-		
-		return new Point(wHint, h + MARGIN * 2);
-	}
-
-	/* (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 r = composite.getClientArea();
-		
-		int size = children.length;
-		Point[] sizes = new Point[size];
-		for (int i = 0; i < size; i++) {
-			sizes[i] = children[i].computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		}
-
-		int h = r.height - MARGIN * 2;
-		
-		// put busy icon at right with a little extra spacing
-		int busy = size - 1;
-		children[busy].setBounds(r.x + r.width - MARGIN - sizes[busy].x,
-				r.y + MARGIN + (h-sizes[busy].y) / 2, 
-				sizes[busy].x, sizes[busy].y);
-		
-		// find combo
-		int combo = -1;
-		int tw = r.width - MARGIN * 2 - (size - 1) * SPACING
-				- sizes[size-1].x - EXTRA_BUSY_SPACING;
-		for (int i = 0; i < size - 1; i++) {
-			if (children[i] instanceof Combo)
-				combo = i;
-			else
-				tw -= sizes[i].x;
-		}
-		if (combo >= 0)
-			sizes[combo].x = tw;
-		
-		// space out other children with their standard size, give combo all
-		// remaining space (if it exists)
-		int x = MARGIN;
-		for (int i = 0; i < size - 1; i++) {
-			children[i].setBounds(r.x + x, r.y + MARGIN + (h-sizes[i].y) / 2,
-					sizes[i].x, sizes[i].y);
-			x += SPACING + sizes[i].x;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java
deleted file mode 100644
index 24c6dda..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/Trace.java
+++ /dev/null
@@ -1,52 +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.browser;
-/**
- * Helper class to route trace output.
- */
-public class Trace {
-	public static int CONFIG = 0;
-	public static int WARNING = 2;
-	public static int SEVERE = 3;
-	public static int FINER = 4;
-	public static int FINEST = 5;
-
-	/**
-	 * Trace constructor comment.
-	 */
-	private Trace() {
-		super();
-	}
-
-	/**
-	 * Trace the given text.
-	 *
-	 * @param s java.lang.String
-	 */
-	public static void trace(int level, String s) {
-		Trace.trace(level, s, null);
-	}
-
-	/**
-	 * Trace the given message and exception.
-	 *
-	 * @param s java.lang.String
-	 * @param t java.lang.Throwable
-	 */
-	public static void trace(int level, String s, Throwable t) {
-		if (!WebBrowserUIPlugin.getInstance().isDebugging())
-			return;
-
-		System.out.println(s);
-		if (t != null)
-			t.printStackTrace();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java
deleted file mode 100644
index dc26129..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditor.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.part.EditorPart;
-/**
- * An integrated Web browser, defined as an editor to make
- * better use of the desktop.
- */
-public class WebBrowserEditor extends EditorPart implements IBrowserViewerContainer {
-	public static final String WEB_BROWSER_EDITOR_ID = "org.eclipse.ui.browser.editor"; //$NON-NLS-1$
-
-	protected BrowserViewer webBrowser;
-	protected String initialURL;
-	protected Image image;
-
-	protected TextAction cutAction;
-	protected TextAction copyAction;
-	protected TextAction pasteAction;
-	
-	private boolean disposed;
-	private boolean lockName;
-
-	/**
-	 * WebBrowserEditor constructor comment.
-	 */
-	public WebBrowserEditor() {
-		super();
-	}
-	
-	/*
-	 * Creates the SWT controls for this workbench part.
-	 */
-	public void createPartControl(Composite parent) {
-		WebBrowserEditorInput input = getWebBrowserEditorInput();
-		
-		int style = 0;
-		if (input == null || input.isLocationBarLocal()) {
-			style += BrowserViewer.LOCATION_BAR;
-		}
-		if (input == null || input.isToolbarLocal()) {
-			style += BrowserViewer.BUTTON_BAR;
-		}
-		webBrowser = new BrowserViewer(parent, style);
-		
-		webBrowser.setURL(initialURL);
-		webBrowser.setContainer(this);
-		
-		if (input == null || input.isLocationBarLocal()) {
-			cutAction = new TextAction(webBrowser, TextAction.CUT);
-			copyAction = new TextAction(webBrowser, TextAction.COPY);
-			pasteAction = new TextAction(webBrowser, TextAction.PASTE);
-		}
-		
-		if (!lockName) {
-			PropertyChangeListener propertyChangeListener = new PropertyChangeListener() {
-				public void propertyChange(PropertyChangeEvent event) {
-					if (BrowserViewer.PROPERTY_TITLE.equals(event.getPropertyName())) {
-						setPartName((String) event.getNewValue());
-					}
-				}
-			};
-			webBrowser.addPropertyChangeListener(propertyChangeListener);
-		}
-	}
-	
-	public void dispose() {
-		if (image != null && !image.isDisposed())
-			image.dispose();
-		image = null;
-
-		super.dispose();
-		// mark this instance as disposed to avoid stale references
-		disposed = true;
-	}
-	
-	public boolean isDisposed() {
-		return disposed;
-	}
-	
-	/* (non-Javadoc)
-	 * Saves the contents of this editor.
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		// do nothing
-	}
-
-	/* (non-Javadoc)
-	 * Saves the contents of this editor to another object.
-	 */
-	public void doSaveAs() {
-		// do nothing
-	}
-	
-	/**
-	 * Returns the copy action.
-	 *
-	 * @return org.eclipse.jface.action.IAction
-	 */
-	public IAction getCopyAction() {
-		return copyAction;
-	}
-	
-	/**
-	 * Returns the cut action.
-	 *
-	 * @return org.eclipse.jface.action.IAction
-	 */
-	public IAction getCutAction() {
-		return cutAction;
-	}
-	
-	/**
-	 * Returns the web editor input, if available. If the input was of
-	 * another type, <code>null</code> is returned.
-	 *
-	 * @return org.eclipse.ui.internal.browser.IWebBrowserEditorInput
-	 */
-	protected WebBrowserEditorInput getWebBrowserEditorInput() {
-		IEditorInput input = getEditorInput();
-		if (input instanceof WebBrowserEditorInput)
-			return (WebBrowserEditorInput) input;
-		return null;
-	}
-
-	/**
-	 * Returns the paste action.
-	 *
-	 * @return org.eclipse.jface.action.IAction
-	 */
-	public IAction getPasteAction() {
-		return pasteAction;
-	}
-
-	/* (non-Javadoc)
-	 * Initializes the editor part with a site and input.
-	 */
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		Trace.trace(Trace.FINEST, "Opening browser: " + input); //$NON-NLS-1$
-		if (input instanceof IPathEditorInput) {
-			IPathEditorInput pei = (IPathEditorInput) input;
-			IPath path = pei.getPath();
-			URL url = null;
-			try {
-				if (path != null)
-					url = path.toFile().toURL();
-				initialURL = url.toExternalForm();
-			} catch (Exception e) {
-				Trace.trace(Trace.SEVERE, "Error getting URL to file"); //$NON-NLS-1$
-			}
-			if (webBrowser != null) {
-				if (initialURL != null)
-					webBrowser.setURL(initialURL);
-				site.getWorkbenchWindow().getActivePage().activate(this);
-			}
-			
-			setPartName(path.lastSegment());
-			if (url != null)
-				setTitleToolTip(url.getFile());
-
-			Image oldImage = image;
-			ImageDescriptor id = ImageResource.getImageDescriptor(ImageResource.IMG_INTERNAL_BROWSER);
-			image = id.createImage();
-
-			setTitleImage(image);
-			if (oldImage != null && !oldImage.isDisposed())
-				oldImage.dispose();
-			//addResourceListener(file);
-		} else if (input instanceof WebBrowserEditorInput) {
-			WebBrowserEditorInput wbei = (WebBrowserEditorInput) input;
-			initialURL = null;
-			if (wbei.getURL() != null)
-				initialURL = wbei.getURL().toExternalForm();
-			if (webBrowser != null) {
-				webBrowser.setURL(initialURL);
-				site.getWorkbenchWindow().getActivePage().activate(this);
-			}
-	
-			setPartName(wbei.getName());
-			setTitleToolTip(wbei.getToolTipText());
-			lockName = wbei.isNameLocked();
-
-			Image oldImage = image;
-			ImageDescriptor id = wbei.getImageDescriptor();
-			image = id.createImage();
-
-			setTitleImage(image);
-			if (oldImage != null && !oldImage.isDisposed())
-				oldImage.dispose();
-		} else {
-		    IPathEditorInput pinput = (IPathEditorInput) input.getAdapter(IPathEditorInput.class);
-			if (pinput != null) {
-				init(site, pinput);
-			} else {
-			    throw new PartInitException(NLS.bind(Messages.errorInvalidEditorInput, input.getName()));
-			}
-		}
-		
-		setSite(site);
-		setInput(input);
-	}
-	
-	/* (non-Javadoc)
-	 * Returns whether the contents of this editor have changed since the last save
-	 * operation.
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * Returns whether the "save as" operation is supported by this editor.
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/**
-	 * Open the input in the internal Web browser.
-	 */
-	public static void open(WebBrowserEditorInput input) {
-		IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow();
-		IWorkbenchPage page = workbenchWindow.getActivePage();
-
-		try {
-			IEditorReference[] editors = page.getEditorReferences();
-			int size = editors.length;
-			for (int i = 0; i < size; i++) {
-				if (WEB_BROWSER_EDITOR_ID.equals(editors[i].getId())) {
-					IEditorPart editor = editors[i].getEditor(true);
-					if (editor != null && editor instanceof WebBrowserEditor) {
-						WebBrowserEditor webEditor = (WebBrowserEditor) editor;
-						WebBrowserEditorInput input2 = webEditor.getWebBrowserEditorInput();
-						if (input2 == null || input.canReplaceInput(input2)) {
-							editor.init(editor.getEditorSite(), input);
-							return;
-						}
-					}
-				}
-			}
-			
-			page.openEditor(input, WebBrowserEditor.WEB_BROWSER_EDITOR_ID);
-		} catch (Exception e) {
-			Trace.trace(Trace.SEVERE, "Error opening Web browser", e); //$NON-NLS-1$
-		}
-	}
-	
-	/*
-	 * Asks this part to take focus within the workbench.
-	 */
-	public void setFocus() {
-		if (webBrowser != null)
-			webBrowser.setFocus();
-	}
-
-	/**
-	 * Close the editor correctly.
-	 */
-	public boolean close() {
-        final boolean [] result = new boolean[1];
-		Display.getDefault().asyncExec(new Runnable() {
-			public void run() {
-				result[0] = getEditorSite().getPage().closeEditor(WebBrowserEditor.this, false);
-			}
-		});
-        return result[0];
-	}
-	
-    public IActionBars getActionBars() {
-        return getEditorSite().getActionBars();
-    }
-
-    public void openInExternalBrowser(String url) {
-        final IEditorInput input = getEditorInput();
-        final String id = getEditorSite().getId();
-        Runnable runnable = new Runnable() {
-            public void run() {
-                doOpenExternalEditor(id, input);
-            }
-        };
-        Display display = getSite().getShell().getDisplay();
-        close();
-        display.asyncExec(runnable);
-    }
-    
-    protected void doOpenExternalEditor(String id, IEditorInput input) {
-        IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry();
-        String name = input.getName();
-        IEditorDescriptor [] editors = registry.getEditors(name);
-        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-
-        String editorId = null;
-        for (int i = 0; i < editors.length; i++) {
-            IEditorDescriptor editor = editors[i];
-            if (editor.getId().equals(id))
-                continue;
-            editorId = editor.getId();
-            break;
-        } 
-        
-        IEditorDescriptor ddesc = registry.getDefaultEditor(name);
-        if (ddesc!=null && ddesc.getId().equals(id)) {
-            int dot = name.lastIndexOf('.');
-            String ext = name;
-            if (dot!= -1)
-                ext = "*."+name.substring(dot+1); //$NON-NLS-1$
-            registry.setDefaultEditor(ext, null);
-        }
- 
-         if (editorId==null) {
-            // no editor
-            // next check with the OS for an external editor
-            if (registry.isSystemExternalEditorAvailable(name))
-                editorId = IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID;
-        }
-
-        if (editorId!=null) {
-            try {
-                page.openEditor(input, editorId);
-                return;
-            } catch (PartInitException e) {
-					// ignore
-            }
-        }
-        
-        // no registered editor - open using browser support
-        try {
-            URL theURL = new URL(webBrowser.getURL());
-            IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport();
-            support.getExternalBrowser().openURL(theURL);
-        }
-        catch (MalformedURLException e) {
-            //TODO handle this
-        }
-        catch (PartInitException e) {
-            //TODO handle this
-        }
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java
deleted file mode 100644
index 5f0295b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorActionBarContributor.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.part.EditorActionBarContributor;
-/**
- * ActionBarContributor for the Web browser.
- * Just adds cut, copy, paste actions.
- */
-public class WebBrowserEditorActionBarContributor extends EditorActionBarContributor {
-	protected WebBrowserEditor editor;
-	protected Action back;
-	protected Action forward;
-	protected Updater updater = new Updater();
-
-	class Updater implements BrowserViewer.IBackNextListener {
-		public void updateBackNextBusy() {
-			if (back == null)
-				return;
-			back.setEnabled(getWebBrowser().isBackEnabled());
-			forward.setEnabled(getWebBrowser().isForwardEnabled());
-			//busy.setBusy(getWebBrowser().loading);
-		}
-	}
-
-	/**
-	 * WebBrowserEditorActionBarContributor constructor comment.
-	 */
-	public WebBrowserEditorActionBarContributor() {
-		super();
-	}
-
-	/*
-	 * Sets the active editor for the contributor.
-	 */
-	public void setActiveEditor(IEditorPart targetEditor) {
-		if (targetEditor instanceof WebBrowserEditor) {
-			editor = (WebBrowserEditor) targetEditor;
-		} else
-			editor = null;
-	}
-	
-	protected BrowserViewer getWebBrowser() {
-		if (editor == null)
-			return null;
-		
-		return editor.webBrowser; 
-	}
-
-	/*
-    * Contributes to the given tool bar.
-    */
-   public void contributeToToolBar(IToolBarManager toolBarManager) {
-   	if (editor == null)
-   		return;
-   	/*WebBrowserEditorInput input = editor.getWebBrowserEditorInput();
-   	if (input.isLocationBarGlobal()) {
-	   	final LocationContributionItem location = new LocationContributionItem();
-	   	toolBarManager.add(location);
-	   
-	   	Action go = new Action() {
-	   		public void run() {
-	   			getWebBrowser().setURL(location.getText());
-	   		}
-	   	};
-	   	go.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_GO));
-	   	go.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_GO));
-	   	go.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_GO));
-	   	go.setToolTipText(Messages.actionWebBrowserGo"));
-	   	toolBarManager.add(go);
-   	}
-   	
-   	if (input.isLocationBarGlobal() && input.isToolbarGlobal()) {
-   		toolBarManager.add(new Separator());
-   	}
-   	
-   	if (input.isToolbarGlobal()) {
-	   	Action favorites = new Action(Messages.actionWebBrowserFavorites"), IAction.AS_DROP_DOWN_MENU) {
-	   		public void run() {
-	   			getWebBrowser().addFavorite();
-	   		}
-	   		public IMenuCreator getMenuCreator() {
-	   			return new IMenuCreator() {
-						public void dispose() {
-							// do nothing
-						}
-	
-						public Menu getMenu(final Control parent) {
-							Menu menu = new Menu(parent);
-							
-							// locked favorites
-							Iterator iterator = WebBrowserUtil.getLockedFavorites().iterator();
-							if (iterator.hasNext()) {
-								while (iterator.hasNext()) {
-									final Favorite f = (Favorite) iterator.next();
-									MenuItem item = new MenuItem(menu, SWT.NONE);
-									item.setText(f.getName());
-									item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
-									item.addSelectionListener(new SelectionAdapter() {
-										public void widgetSelected(SelectionEvent event) {
-											getWebBrowser().setURL(f.getURL());
-										}
-									});
-								}
-								
-								new MenuItem(menu, SWT.SEPARATOR);
-							}
-							
-							iterator = WebBrowserPreference.getInternalWebBrowserFavorites().iterator();
-							if (!iterator.hasNext()) {
-								MenuItem item = new MenuItem(menu, SWT.NONE);
-								item.setText(Messages.actionWebBrowserNoFavorites"));
-							}
-							while (iterator.hasNext()) {
-								final Favorite f = (Favorite) iterator.next();
-								MenuItem item = new MenuItem(menu, SWT.NONE);
-								item.setText(f.getName());
-								item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
-								item.addSelectionListener(new SelectionAdapter() {
-									public void widgetSelected(SelectionEvent event) {
-										getWebBrowser().setURL(f.getURL());
-									}
-								});
-							}
-							
-							new MenuItem(menu, SWT.SEPARATOR);
-					
-							MenuItem item = new MenuItem(menu, SWT.NONE);
-							item.setText(Messages.actionWebBrowserOrganizeFavorites"));
-							item.addSelectionListener(new SelectionAdapter() {
-								public void widgetSelected(SelectionEvent event) {
-									OrganizeFavoritesDialog dialog = new OrganizeFavoritesDialog(parent.getShell());
-									dialog.open();
-								}
-							});
-							return menu;
-						}
-	
-						public Menu getMenu(final Menu parent) {
-							Menu menu = new Menu(parent);
-							
-							// locked favorites
-							Iterator iterator = WebBrowserUtil.getLockedFavorites().iterator();
-							if (iterator.hasNext()) {
-								while (iterator.hasNext()) {
-									final Favorite f = (Favorite) iterator.next();
-									MenuItem item = new MenuItem(menu, SWT.NONE);
-									item.setText(f.getName());
-									item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
-									item.addSelectionListener(new SelectionAdapter() {
-										public void widgetSelected(SelectionEvent event) {
-											getWebBrowser().setURL(f.getURL());
-										}
-									});
-								}
-								
-								new MenuItem(menu, SWT.SEPARATOR);
-							}
-							
-							iterator = WebBrowserPreference.getInternalWebBrowserFavorites().iterator();
-							if (!iterator.hasNext()) {
-								MenuItem item = new MenuItem(menu, SWT.NONE);
-								item.setText(Messages.actionWebBrowserNoFavorites"));
-							}
-							while (iterator.hasNext()) {
-								final Favorite f = (Favorite) iterator.next();
-								MenuItem item = new MenuItem(menu, SWT.NONE);
-								item.setText(f.getName());
-								item.setImage(ImageResource.getImage(ImageResource.IMG_FAVORITE));
-								item.addSelectionListener(new SelectionAdapter() {
-									public void widgetSelected(SelectionEvent event) {
-										getWebBrowser().setURL(f.getURL());
-									}
-								});
-							}
-							
-							new MenuItem(menu, SWT.SEPARATOR);
-					
-							MenuItem item = new MenuItem(menu, SWT.NONE);
-							item.setText(Messages.actionWebBrowserOrganizeFavorites"));
-							item.addSelectionListener(new SelectionAdapter() {
-								public void widgetSelected(SelectionEvent event) {
-									OrganizeFavoritesDialog dialog = new OrganizeFavoritesDialog(parent.getShell());
-									dialog.open();
-								}
-							});
-							return menu;
-						}
-	   			};
-	   		}
-	   	};
-	   	favorites.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_FAVORITES));
-	   	favorites.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_FAVORITES));
-	   	favorites.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_FAVORITES));
-	   	favorites.setToolTipText(Messages.actionWebBrowserFavorites"));
-	   	toolBarManager.add(favorites);
-	   	
-	   	back = new Action() {
-	   		public void run() {
-	   			getWebBrowser().back();
-	   		}
-	   	};
-	   	back.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_BACKWARD));
-			back.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_BACKWARD));
-			back.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_BACKWARD));
-			back.setToolTipText(Messages.actionWebBrowserBack"));
-	   	toolBarManager.add(back);
-	   	
-	   	forward = new Action() {
-	   		public void run() {
-	   			getWebBrowser().forward();
-	   		}
-	   	};
-	   	forward.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_FORWARD));
-	   	forward.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_FORWARD));
-			forward.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_FORWARD));
-			forward.setToolTipText(Messages.actionWebBrowserForward"));
-	   	toolBarManager.add(forward);
-	   	
-	   	Action stop = new Action() {
-	   		public void run() {
-	   			getWebBrowser().stop();
-	   		}
-	   	};
-	   	stop.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_STOP));
-	   	stop.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_STOP));
-	   	stop.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_STOP));
-	   	stop.setToolTipText(Messages.actionWebBrowserStop"));
-	   	toolBarManager.add(stop);
-	   	
-	   	Action refresh = new Action() {
-	   		public void run() {
-	   			getWebBrowser().refresh();
-	   		}
-	   	};
-	   	refresh.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_NAV_REFRESH));
-	   	refresh.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_NAV_REFRESH));
-	   	refresh.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_NAV_REFRESH));
-	   	refresh.setToolTipText(Messages.actionWebBrowserRefresh"));
-	   	toolBarManager.add(refresh);
-   	}*/
-   	
-   	/*toolBarManager.add(new Separator());
-   	
-   	ControlContribution busyCont = new ControlContribution("webbrowser.busy") {
-   	   protected Control createControl(Composite parent) {
-   	   	busy = new BusyIndicator(parent, SWT.NONE);
-   	   	return busy;
-   	   }
-   	};
-   	toolBarManager.add(busyCont);*/
-   }
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorInput.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorInput.java
deleted file mode 100644
index eb2e3e9..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserEditorInput.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-/**
- * The editor input for the integrated web browser.
- */
-public class WebBrowserEditorInput implements IEditorInput,
-		IPersistableElement, IElementFactory {
-	// --- constants to pass into constructor ---
-
-	// if used, the toolbar will be available
-	// public static final int SHOW_TOOLBAR = 1 << 1;
-
-	// public static final int SHOW_GLOBAL_TOOLBAR = 1 << 2;
-
-	// if used, the status bar will be available
-	// public static final int SHOW_STATUSBAR = 1 << 3;
-
-	// if used, the original URL will be saved and
-	// the page can reopen to the same URL after
-	// shutting down
-	// public static final int SAVE_URL = 1 << 5;
-
-	// if used, the browser will be transient and will not appear
-	// in the most recently used file list, nor will it reopen after
-	// restarting Eclipse
-	// public static final int TRANSIENT = 1 << 6;
-
-	private static final String ELEMENT_FACTORY_ID = "org.eclipse.ui.browser.elementFactory"; //$NON-NLS-1$
-
-	private static final String MEMENTO_URL = "url"; //$NON-NLS-1$
-
-	private static final String MEMENTO_STYLE = "style"; //$NON-NLS-1$
-
-	private static final String MEMENTO_ID = "id"; //$NON-NLS-1$
-
-	private static final String MEMENTO_NAME = "name"; //$NON-NLS-1$
-
-	private static final String MEMENTO_TOOLTIP = "tooltip"; //$NON-NLS-1$
-
-	private URL url;
-
-	private int style;
-
-	private String id = null;
-
-	private String name;
-
-	private String tooltip;
-
-	/**
-	 * ExternalBrowserInstance editor input for the homepage.
-	 */
-	public WebBrowserEditorInput() {
-		this(null);
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url) {
-		this(url, 0);
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url, int style) {
-		super();
-		this.url = url;
-		this.style = style;
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url, int style, String browserId) {
-		super();
-		this.url = url;
-		this.style = style;
-		this.id = browserId;
-	}
-
-	/**
-	 * WebBrowserEditorInput constructor comment.
-	 */
-	public WebBrowserEditorInput(URL url, boolean b) {
-		this(url);
-	}
-
-	public void setName(String n) {
-		name = n;
-	}
-
-	public void setToolTipText(String t) {
-		tooltip = t;
-	}
-
-	/**
-	 * Returns true if this page can reuse the browser that the given input is
-	 * being displayed in, or false if it should open up in a new page.
-	 * 
-	 * @param input
-	 *            org.eclipse.ui.internal.browser.IWebBrowserEditorInput
-	 * @return boolean
-	 */
-	public boolean canReplaceInput(WebBrowserEditorInput input) {
-		Trace.trace(Trace.FINEST, "canReplaceInput " + this + " " + input); //$NON-NLS-1$ //$NON-NLS-2$
-		// if ((style & FORCE_NEW_PAGE) != 0)
-		// return false;
-		// if (input.isToolbarVisible() != isToolbarVisible())
-		// return false;
-		// else
-		if (input.isStatusbarVisible() != isStatusbarVisible())
-			return false;
-		else if (id != null) {
-			String bid = input.getBrowserId();
-			return id.equals(bid);
-		} else
-			return false;
-	}
-
-	/**
-	 * Creates an <code>IElement</code> from the state captured within an
-	 * <code>IMemento</code>.
-	 * 
-	 * @param memento
-	 *            a memento containing the state for an element
-	 * @return an element, or <code>null</code> if the element could not be
-	 *         created
-	 */
-	public IAdaptable createElement(IMemento memento) {
-		int style = 0;
-		Integer integer = memento.getInteger(MEMENTO_STYLE);
-		if (integer != null) {
-			style = integer.intValue();
-		}
-
-		URL url = null;
-		String str = memento.getString(MEMENTO_URL);
-		if (str != null) {
-			try {
-				url = new URL(str);
-			}
-			catch (MalformedURLException e) {
-				String msg = "Malformed URL while initializing browser editor"; //$NON-NLS-1$
-				WebBrowserUIPlugin.logError(msg, e);
-			}
-		}
-
-		String id = memento.getString(MEMENTO_ID);
-		String name = memento.getString(MEMENTO_NAME);
-		String tooltip = memento.getString(MEMENTO_TOOLTIP);
-		
-		WebBrowserEditorInput input = new WebBrowserEditorInput(url, style, id);
-		input.setName(name);
-		input.setToolTipText(tooltip);
-		return input;
-	}
-
-	/**
-	 * Tests to see if two input objects are equal in the sense that they can share an
-	 * editor.
-	 * @return true if the url and browser id are equal and the style bits are compatible
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (!(obj instanceof WebBrowserEditorInput))
-			return false;
-		WebBrowserEditorInput other = (WebBrowserEditorInput) obj;
-
-		if (url != null) {
-			if (other.url == null || !url.toExternalForm().equals(other.url.toExternalForm()))	 {
-			    return false;
-			}
-		} else if (other.url != null) {
-		    return false;
-		}
-		return canReplaceInput(other);
-	}
-
-	/*
-	 * Returns whether the editor input exists.
-	 */
-	public boolean exists() {
-		if ((style & IWorkbenchBrowserSupport.PERSISTENT) != 0)
-			return false;
-
-		return true;
-	}
-
-	/**
-	 * 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.
-	 * 
-	 * @param adapter
-	 *            the adapter class to look up
-	 * @return a object castable to the given class, or <code>null</code> if
-	 *         this object does not have an adapter for the given class
-	 */
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-
-	/**
-	 * Returns the ID of an element factory which can be used to recreate this
-	 * object. An element factory extension with this ID must exist within the
-	 * workbench registry.
-	 * 
-	 * @return the element factory ID
-	 */
-	public String getFactoryId() {
-		return ELEMENT_FACTORY_ID;
-	}
-
-	public ImageDescriptor getImageDescriptor() {
-		return ImageResource
-				.getImageDescriptor(ImageResource.IMG_INTERNAL_BROWSER);
-	}
-	
-	/**
-	 * Returns true if the name is locked and cannot be changed.
-	 * 
-	 * @return <code>true</code> if the name of the browser should not change
-	 */
-	protected boolean isNameLocked() {
-		return (name != null);
-	}
-
-	/**
-	 * Returns the name of this editor input for display purposes.
-	 * <p>
-	 * For instance, if the fully qualified input name is
-	 * <code>"a\b\MyFile.gif"</code>, the return value would be just
-	 * <code>"MyFile.gif"</code>.
-	 * 
-	 * @return the file name string
-	 */
-	public String getName() {
-		if (name != null)
-			return name;
-
-		return Messages.viewWebBrowserTitle;
-	}
-
-	/*
-	 * Returns an object that can be used to save the state of this editor
-	 * input. @return the persistable element, or <code>null</code> if this
-	 * editor input cannot be persisted
-	 */
-	public IPersistableElement getPersistable() {
-		if ((style & IWorkbenchBrowserSupport.PERSISTENT) == 0)
-			return null;
-
-		return this;
-	}
-
-	public String getToolTipText() {
-		if (tooltip != null)
-			return tooltip;
-
-		if (url != null)
-			return url.toExternalForm();
-
-		return Messages.viewWebBrowserTitle;
-	}
-
-	/**
-	 * Returns the url.
-	 * 
-	 * @return java.net.URL
-	 */
-	public URL getURL() {
-		return url;
-	}
-
-	/**
-	 * Returns the browser id. Browsers with a set id will always & only be
-	 * replaced by browsers with the same id.
-	 * 
-	 * @return String
-	 */
-	public String getBrowserId() {
-		return id;
-	}
-
-	/**
-	 * Returns true if the status bar should be shown.
-	 * 
-	 * @return boolean
-	 */
-	public boolean isStatusbarVisible() {
-		return (style & IWorkbenchBrowserSupport.STATUS) != 0;
-	}
-
-	/**
-	 * Returns true if the toolbar should be shown.
-	 * 
-	 * @return boolean
-	 */
-	public boolean isLocationBarLocal() {
-		return (style & BrowserViewer.LOCATION_BAR) != 0;
-	}
-
-	/*
-	 * public boolean isLocationBarGlobal() { return (style &
-	 * ExternalBrowserInstance.LOCATION_TOOLBAR) != 0; }
-	 */
-
-	public boolean isToolbarLocal() {
-		return (style & BrowserViewer.BUTTON_BAR) != 0;
-	}
-
-	/*
-	 * public boolean isToolbarGlobal() { return (style &
-	 * ExternalBrowserInstance.BUTTON_TOOLBAR) != 0; }
-	 */
-
-	/**
-	 * Saves the state of an element within a memento.
-	 * 
-	 * @param memento
-	 *            the storage area for element state
-	 */
-	public void saveState(IMemento memento) {
-		memento.putInteger(MEMENTO_STYLE, style);
-		if ((style & IWorkbenchBrowserSupport.PERSISTENT) != 0 && url != null) {
-			memento.putString(MEMENTO_URL, url.toExternalForm());
-		}
-		if (id != null) {
-			memento.putString(MEMENTO_ID, id);
-		}
-		if (name != null) {
-			memento.putString(MEMENTO_NAME, name);
-		}
-		if (tooltip != null) {
-			memento.putString(MEMENTO_TOOLTIP, tooltip);
-		}
-	}
-
-	/**
-	 * Converts this object to a string.
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		return "WebBrowserEditorInput[" + url + " " + style + " " + id + "]";  //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-	}
-	
-	public int hashCode() {
-		int result = 0;
-		if (url != null) {
-			result = result + url.toExternalForm().hashCode();
-		}
-		if (id != null) {
-			result = result + id.hashCode();
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreference.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreference.java
deleted file mode 100644
index e2f575c..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreference.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.PlatformUI;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * Preferences for the Web browser.
- */
-public class WebBrowserPreference {
-	protected static final String PREF_BROWSER_HISTORY = "webBrowserHistory"; //$NON-NLS-1$
-
-	protected static final String PREF_INTERNAL_WEB_BROWSER_HISTORY = "internalWebBrowserHistory"; //$NON-NLS-1$
-
-	protected static final String PREF_BROWSER_CHOICE = "browser-choice"; //$NON-NLS-1$
-
-	private static final String INTERNAL_BROWSER_ID = "org.eclipse.ui.browser.editor"; //$NON-NLS-1$
-
-	private static final String BROWSER_SUPPORT_ID = "org.eclipse.ui.browser.editorSupport"; //$NON-NLS-1$
-
-	public static final int INTERNAL = 0;
-
-	public static final int EXTERNAL = 1;
-
-	/**
-	 * WebBrowserPreference constructor comment.
-	 */
-	private WebBrowserPreference() {
-		super();
-	}
-
-	/**
-	 * Returns the preference store.
-	 * 
-	 * @return the preference store
-	 */
-	protected static IPreferenceStore getPreferenceStore() {
-		return WebBrowserUIPlugin.getInstance().getPreferenceStore();
-	}
-
-	/**
-	 * Returns the Web browser history list.
-	 * 
-	 * @return java.util.List
-	 */
-	public static List getInternalWebBrowserHistory() {
-		String temp = getPreferenceStore().getString(
-				PREF_INTERNAL_WEB_BROWSER_HISTORY);
-		StringTokenizer st = new StringTokenizer(temp, "|*|"); //$NON-NLS-1$
-		List l = new ArrayList();
-		while (st.hasMoreTokens()) {
-			String s = st.nextToken();
-			l.add(s);
-		}
-		return l;
-	}
-
-	/**
-	 * Sets the Web browser history.
-	 * 
-	 * @param list
-	 *            the history
-	 */
-	public static void setInternalWebBrowserHistory(List list) {
-		StringBuffer sb = new StringBuffer();
-		if (list != null) {
-			Iterator iterator = list.iterator();
-			while (iterator.hasNext()) {
-				String s = (String) iterator.next();
-				sb.append(s);
-				sb.append("|*|"); //$NON-NLS-1$
-			}
-		}
-		InstanceScope instanceScope = new InstanceScope();
-		IEclipsePreferences prefs = instanceScope.getNode(WebBrowserUIPlugin.PLUGIN_ID);
-		prefs.put(PREF_INTERNAL_WEB_BROWSER_HISTORY,
-				sb.toString());
-		try {
-			prefs.flush();
-		} catch (BackingStoreException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * Returns whether the internal browser is used by default
-	 * 
-	 * @return true if the internal browser is used by default
-	 */
-	public static boolean isDefaultUseInternalBrowser() {
-		return WebBrowserUtil.canUseInternalWebBrowser();
-	}
-
-	/**
-	 * Returns whether the system browser is used by default
-	 * 
-	 * @return true if the system browser is used by default
-	 */
-	public static boolean isDefaultUseSystemBrowser() {
-		return WebBrowserUtil.canUseSystemBrowser();
-	}
-
-	/**
-	 * Returns whether the internal or external browser is being used
-	 * 
-	 * @return one of <code>INTERNAL</code> or <code>EXTERNAL</code>.
-	 */
-	public static int getBrowserChoice() {
-		int choice = getPreferenceStore().getInt(PREF_BROWSER_CHOICE);
-		if (choice == 2)
-			return EXTERNAL;
-		if (choice == INTERNAL && !WebBrowserUtil.canUseInternalWebBrowser())
-			return EXTERNAL;
-		return choice;
-	}
-
-	/**
-	 * Sets whether the internal, system and external browser is used
-	 * 
-	 * @param choice
-	 *            </code>INTERNAL</code>, <code>SYSTEM</code> and <code>EXTERNAL</code>
-	 */
-	public static void setBrowserChoice(int choice) {
-		InstanceScope instanceScope = new InstanceScope();
-		IEclipsePreferences prefs = instanceScope.getNode(WebBrowserUIPlugin.PLUGIN_ID);
-		prefs.putInt(PREF_BROWSER_CHOICE, choice);
-		try {
-			prefs.flush();
-		} catch (BackingStoreException e) {
-			e.printStackTrace();
-		}
-		updateDefaultEditor(choice);
-	}
-
-	private static void updateDefaultEditor(int choice) {
-		// Toggle from internal editor to browser support
-		// to avoid confusion between default editors and
-		// Web browser preference page
-		IEditorRegistry registry = PlatformUI.getWorkbench()
-				.getEditorRegistry();
-		String oldId = choice == INTERNAL ? BROWSER_SUPPORT_ID
-				: INTERNAL_BROWSER_ID;
-		String newId = choice == INTERNAL ? INTERNAL_BROWSER_ID
-				: BROWSER_SUPPORT_ID;
-
-		String[][] extensions = { { "a.html", "*.html" }, { "a.htm", "*.htm" }, //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				{ "a.shtml", "*.shtml" } };  //$NON-NLS-1$//$NON-NLS-2$
-
-		// For each default editor that matches the oldId, change
-		// the default editor to the newId
-		for (int i = 0; i < extensions.length; i++) {
-			String[] ext = extensions[i];
-			IEditorDescriptor ddesc = registry.getDefaultEditor(ext[0]);
-			if (ddesc != null && ddesc.getId().equals(oldId)) {
-				registry.setDefaultEditor(ext[1], newId);
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreferencePage.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreferencePage.java
deleted file mode 100644
index ea4f72b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserPreferencePage.java
+++ /dev/null
@@ -1,610 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-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.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-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.DirectoryDialog;
-import org.eclipse.swt.widgets.Label;
-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.PlatformUI;
-
-/**
- * The preference page that holds Web browser preferences.
- */
-public class WebBrowserPreferencePage extends PreferencePage implements
-		IWorkbenchPreferencePage {
-	protected Button internal;
-
-	protected Button external;
-
-	protected Table table;
-
-	protected CheckboxTableViewer tableViewer;
-
-	protected Button edit;
-
-	protected Button remove;
-
-	protected Button search;
-
-	protected Label location;
-
-	protected Label parameters;
-	
-	protected IBrowserDescriptor checkedBrowser;
-
-	class BrowserContentProvider implements IStructuredContentProvider {
-		public Object[] getElements(Object inputElement) {
-			List list = new ArrayList();
-			Iterator iterator = BrowserManager.getInstance().getWebBrowsers()
-					.iterator();
-			while (iterator.hasNext()) {
-				IBrowserDescriptor browser = (IBrowserDescriptor) iterator
-						.next();
-				list.add(browser);
-			}
-			return list.toArray();
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			// do nothing
-		}
-
-		public void dispose() {
-			// do nothing
-		}
-	}
-
-	class BrowserTableLabelProvider implements ITableLabelProvider {
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			IBrowserDescriptor browser = (IBrowserDescriptor) element;
-			return notNull(browser.getName());
-		}
-
-		protected String notNull(String s) {
-			if (s == null)
-				return ""; //$NON-NLS-1$
-			return s;
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void addListener(ILabelProviderListener listener) {
-			// do nothing
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-			// do nothing
-		}
-
-		public void dispose() {
-			// do nothing
-		}
-	}
-
-	/**
-	 * WebBrowserPreferencePage constructor comment.
-	 */
-	public WebBrowserPreferencePage() {
-		super();
-	}
-
-	/**
-	 * Create the preference options.
-	 * 
-	 * @param parent
-	 *            org.eclipse.swt.widgets.Composite
-	 * @return org.eclipse.swt.widgets.Control
-	 */
-	protected Control createContents(Composite parent) {
-		initializeDialogUnits(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				ContextIds.PREF_BROWSER);
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(4);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(3);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-		GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
-		composite.setLayoutData(data);
-
-		Label label = new Label(composite, SWT.WRAP);
-		label.setText(Messages.preferenceWebBrowserDescription);
-		data = new GridData(SWT.FILL, SWT.NONE, false, false);
-		data.horizontalSpan = 2;
-		data.widthHint = 275;
-		label.setLayoutData(data);
-
-		internal = new Button(composite, SWT.RADIO);
-		internal.setText(Messages.prefInternalBrowser);
-		data = new GridData(SWT.FILL, SWT.NONE, true, false);
-		data.horizontalSpan = 2;
-		internal.setLayoutData(data);
-
-		if (!WebBrowserUtil.canUseInternalWebBrowser())
-			internal.setEnabled(false);
-
-		external = new Button(composite, SWT.RADIO);
-		external.setText(Messages.prefExternalBrowser);
-		data = new GridData(SWT.FILL, SWT.NONE, true, false);
-		data.horizontalSpan = 2;
-		external.setLayoutData(data);
-
-		label = new Label(composite, SWT.NONE);
-		label.setText(Messages.browserList);
-		data = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.V_SCROLL
-				| SWT.H_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION);
-		data = new GridData(SWT.FILL, SWT.FILL, true, true);
-		table.setLayoutData(data);
-		table.setHeaderVisible(false);
-		table.setLinesVisible(false);
-
-		TableLayout tableLayout = new TableLayout();
-		new TableColumn(table, SWT.NONE);
-		tableLayout.addColumnData(new ColumnWeightData(100));
-		table.setLayout(tableLayout);
-
-		tableViewer = new CheckboxTableViewer(table);
-		tableViewer.setContentProvider(new BrowserContentProvider());
-		tableViewer.setLabelProvider(new BrowserTableLabelProvider());
-		tableViewer.setInput("root"); //$NON-NLS-1$
-
-		// uncheck any other elements that might be checked and leave only the
-		// element checked to remain checked since one can only chose one
-		// brower at a time to be current.
-		tableViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				checkNewDefaultBrowser(e.getElement());
-				checkedBrowser = (IBrowserDescriptor) e.getElement();
-				
-				// if no other browsers are checked, don't allow the single one
-				// currently checked to become unchecked, and lose a current
-				// browser. That is, don't permit unchecking if no other item
-				// is checked which is supposed to be the case.
-				Object[] obj = tableViewer.getCheckedElements();
-				if (obj.length == 0)
-					tableViewer.setChecked(e.getElement(), true);
-			}
-		});
-
-		// set a default, checked browser based on the current browser. If there
-		// is not a current browser, but the first item exists, use that instead.
-		// This will work currently until workbench shutdown, because current
-		// browser is not yet persisted.
-		checkedBrowser = BrowserManager.getInstance().getCurrentWebBrowser();
-		if (checkedBrowser != null)
-			tableViewer.setChecked(checkedBrowser, true);
-		else {
-			Object obj = tableViewer.getElementAt(0);
-			if (obj != null)
-				tableViewer.setChecked(obj, true);
-		}
-
-		tableViewer
-				.addSelectionChangedListener(new ISelectionChangedListener() {
-					public void selectionChanged(SelectionChangedEvent event) {
-						IStructuredSelection sele = ((IStructuredSelection) tableViewer
-								.getSelection());
-						boolean sel = sele.getFirstElement() != null &&
-								!(sele.getFirstElement() instanceof SystemBrowserDescriptor);
-						remove.setEnabled(sel);
-						edit.setEnabled(sel);
-					}
-				});
-
-		tableViewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				IStructuredSelection sel = ((IStructuredSelection) tableViewer
-						.getSelection());
-				Object firstElem = sel.getFirstElement();
-				if (firstElem != null && !(firstElem instanceof SystemBrowserDescriptor)) {
-					IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-							.getFirstElement();
-					IBrowserDescriptorWorkingCopy wc = browser2
-							.getWorkingCopy();
-					BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(
-							getShell(), wc);
-					if (dialog.open() != Window.CANCEL) {
-						try {
-							tableViewer.refresh(wc.save());
-						} catch (Exception ex) {
-							// ignore
-						}
-					}
-				}
-			}
-		});
-
-		table.addKeyListener(new KeyListener() {
-			public void keyPressed(KeyEvent e) {
-				if (e.character == SWT.DEL) {
-					IStructuredSelection sel = ((IStructuredSelection) tableViewer
-							.getSelection());
-					if (sel.getFirstElement() != null) {
-						IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-								.getFirstElement();
-						try {
-							browser2.delete();
-							tableViewer.remove(browser2);
-
-							// need here to ensure that if the item deleted was
-							// checked, ie. was
-							// the current browser, that the new current browser
-							// will be the first in the
-							// list, typically, the internal browser, which
-							// cannot be
-							// deleted, and be current
-							BrowserManager manager = BrowserManager.getInstance();
-							if (browser2 == checkedBrowser) {
-								if (manager.browsers.size() > 0) {
-									checkedBrowser = (IBrowserDescriptor) manager.browsers.get(0);
-									tableViewer.setChecked(checkedBrowser, true);
-								}
-							}
-						} catch (Exception ex) {
-							// ignore
-						}
-					}
-				}
-			}
-
-			public void keyReleased(KeyEvent e) {
-				// ignore
-			}
-		});
-
-		Composite buttonComp = new Composite(composite, SWT.NONE);
-		layout = new GridLayout();
-		layout.horizontalSpacing = 0;
-		layout.verticalSpacing = convertVerticalDLUsToPixels(3);
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 1;
-		buttonComp.setLayout(layout);
-		data = new GridData(GridData.HORIZONTAL_ALIGN_FILL
-				| GridData.VERTICAL_ALIGN_FILL);
-		buttonComp.setLayoutData(data);
-
-		final Button add = SWTUtil.createButton(buttonComp, Messages.add);
-		add.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(
-						getShell());
-				if (dialog.open() == Window.CANCEL)
-					return;
-				tableViewer.refresh();
-				if (checkedBrowser != null)
-					tableViewer.setChecked(checkedBrowser, true);
-			}
-		});
-
-		edit = SWTUtil.createButton(buttonComp, Messages.edit);
-		edit.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				IStructuredSelection sel = ((IStructuredSelection) tableViewer
-						.getSelection());
-				IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-						.getFirstElement();
-				IBrowserDescriptorWorkingCopy wc = browser2.getWorkingCopy();
-				BrowserDescriptorDialog dialog = new BrowserDescriptorDialog(
-						getShell(), wc);
-				if (dialog.open() != Window.CANCEL) {
-					try {
-						tableViewer.refresh(wc.save());
-					} catch (Exception ex) {
-						// ignore
-					}
-				}
-			}
-		});
-
-		remove = SWTUtil.createButton(buttonComp, Messages.remove);
-		remove.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				IStructuredSelection sel = ((IStructuredSelection) tableViewer
-						.getSelection());
-				IBrowserDescriptor browser2 = (IBrowserDescriptor) sel
-						.getFirstElement();
-				try {
-					browser2.delete();
-					tableViewer.remove(browser2);
-
-					// need here to ensure that if the item deleted was checked,
-					// ie. was
-					// the current browser, that the new current browser will be
-					// the first in the
-					// list, typically, the internal browser, which cannot be
-					// deleted, and be current
-					BrowserManager manager = BrowserManager.getInstance();
-					if (browser2 == checkedBrowser) {
-						if (manager.browsers.size() > 0) {
-							checkedBrowser = (IBrowserDescriptor) manager.browsers.get(0);
-							tableViewer.setChecked(checkedBrowser, true);
-						}
-					}
-				} catch (Exception ex) {
-					// ignore
-				}
-			}
-		});
-
-		search = SWTUtil.createButton(buttonComp, Messages.search);
-		data = (GridData) search.getLayoutData();
-		data.verticalIndent = 9;
-		search.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				final List foundBrowsers = new ArrayList();
-				final List existingPaths = WebBrowserUtil
-						.getExternalBrowserPaths();
-
-				// select a target directory for the search
-				DirectoryDialog dialog = new DirectoryDialog(getShell());
-				dialog.setMessage(Messages.selectDirectory);
-				dialog.setText(Messages.directoryDialogTitle);
-
-				String path = dialog.open();
-				if (path == null)
-					return;
-
-				final File rootDir = new File(path);
-				ProgressMonitorDialog pm = new ProgressMonitorDialog(getShell());
-
-				IRunnableWithProgress r = new IRunnableWithProgress() {
-					public void run(IProgressMonitor monitor) {
-						monitor.beginTask(Messages.searchingTaskName,
-								IProgressMonitor.UNKNOWN);
-						search(rootDir, existingPaths, foundBrowsers, monitor);
-						monitor.done();
-					}
-				};
-
-				try {
-					pm.run(true, true, r);
-				} catch (InvocationTargetException ex) {
-					Trace.trace(Trace.SEVERE,
-							"Invocation Exception occured running monitor: " //$NON-NLS-1$
-									+ ex);
-				} catch (InterruptedException ex) {
-					Trace.trace(Trace.SEVERE,
-							"Interrupted exception occured running monitor: " //$NON-NLS-1$
-									+ ex);
-					return;
-				}
-
-				if (pm.getProgressMonitor().isCanceled())
-					return;
-
-				List browsersToCreate = foundBrowsers;
-
-				if (browsersToCreate == null) // cancelled
-					return;
-
-				if (browsersToCreate.isEmpty()) { // no browsers found
-					WebBrowserUtil.openMessage(Messages.searchingNoneFound);
-					return;
-				}
-
-				Iterator iterator = browsersToCreate.iterator();
-				while (iterator.hasNext()) {
-					IBrowserDescriptorWorkingCopy browser2 = (IBrowserDescriptorWorkingCopy) iterator
-							.next();
-					browser2.save();
-				}
-				tableViewer.refresh();
-				
-				if (checkedBrowser != null)
-					tableViewer.setChecked(checkedBrowser, true);
-			}
-		});
-
-		tableViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				checkNewDefaultBrowser(e.getElement());
-				checkedBrowser = (IBrowserDescriptor) e
-						.getElement();
-			}
-		});
-
-		/*external.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent e) {
-				boolean sel = !tableViewer.getSelection().isEmpty();
-				edit.setEnabled(sel);
-				remove.setEnabled(sel);
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// ignore
-			}
-		});*/
-		internal.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.INTERNAL);
-		external.setSelection(WebBrowserPreference.getBrowserChoice() == WebBrowserPreference.EXTERNAL);
-
-		//boolean sel = !tableViewer.getSelection().isEmpty();
-		IStructuredSelection sele = ((IStructuredSelection) tableViewer
-				.getSelection());
-		boolean sel = sele.getFirstElement() != null &&
-				!(sele.getFirstElement() instanceof SystemBrowserDescriptor);
-		edit.setEnabled(sel);
-		remove.setEnabled(sel);
-
-		Dialog.applyDialogFont(composite);
-
-		return composite;
-	}
-
-	/**
-	 * Initializes this preference page using the passed workbench.
-	 * 
-	 * @param workbench
-	 *            the current workbench
-	 */
-	public void init(IWorkbench workbench) {
-		// do nothing
-	}
-
-	/**
-	 * 
-	 */
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible)
-			setTitle(Messages.preferenceWebBrowserTitle);
-	}
-
-	protected Object getSelection(ISelection sel2) {
-		IStructuredSelection sel = (IStructuredSelection) sel2;
-		return sel.getFirstElement();
-	}
-
-	// Uncheck all the items except the current one that was just checked
-	protected void checkNewDefaultBrowser(Object browser) {
-		TableItem[] children = tableViewer.getTable().getItems();
-		for (int i = 0; i < children.length; i++) {
-			TableItem item = children[i];
-
-			if (!(item.getData().equals(browser)))
-				item.setChecked(false);
-		}
-	}
-
-	protected static void search(File directory, List existingPaths,
-			List foundBrowsers, IProgressMonitor monitor) {
-		if (monitor.isCanceled())
-			return;
-
-		monitor.subTask(NLS.bind(Messages.searching,
-				new String[] { Integer.toString(foundBrowsers.size()), directory.getAbsolutePath()}));
-		
-		String[] names = directory.list();
-		List subDirs = new ArrayList();
-
-		for (int i = 0; i < names.length; i++) {
-			if (monitor.isCanceled())
-				return;
-
-			File file = new File(directory, names[i]);
-
-			if (existingPaths.contains(file.getAbsolutePath().toLowerCase()))
-				continue;
-
-			IBrowserDescriptorWorkingCopy wc = WebBrowserUtil
-					.createExternalBrowser(file);
-			if (wc != null)
-				foundBrowsers.add(wc);
-			
-			if (file.isDirectory()) {
-				if (monitor.isCanceled())
-					return;
-				subDirs.add(file);
-			}
-		}
-		while (!subDirs.isEmpty()) {
-			File subDir = (File) subDirs.remove(0);
-			search(subDir, existingPaths, foundBrowsers, monitor);
-			if (monitor.isCanceled()) {
-				return;
-			}
-		}
-	}
-
-	/**
-	 * Performs special processing when this page's Defaults button has been
-	 * pressed.
-	 */
-	protected void performDefaults() {
-		internal.setSelection(WebBrowserPreference
-				.isDefaultUseInternalBrowser());
-		external.setSelection(!WebBrowserPreference.
-				isDefaultUseInternalBrowser());
-		
-		BrowserManager.getInstance().currentBrowser = null;
-		BrowserManager.getInstance().setupDefaultBrowsers();
-		tableViewer.refresh();
-		
-		checkedBrowser = BrowserManager.getInstance().getCurrentWebBrowser();
-		if (checkedBrowser != null)
-			tableViewer.setChecked(checkedBrowser, true);
-		
-		super.performDefaults();
-	}
-
-	/**
-	 * Method declared on IPreferencePage. Subclasses should override
-	 */
-	public boolean performOk() {
-		int choice;
-		if (internal.getSelection())
-			choice = WebBrowserPreference.INTERNAL;
-		else
-			choice = WebBrowserPreference.EXTERNAL;
-		WebBrowserPreference.setBrowserChoice(choice);
-		if (checkedBrowser != null)
-			BrowserManager.getInstance().setCurrentWebBrowser(checkedBrowser);
-
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java
deleted file mode 100644
index 79a969b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUIPlugin.java
+++ /dev/null
@@ -1,154 +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.browser;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-/**
- * The main web browser plugin class.
- */
-public class WebBrowserUIPlugin extends AbstractUIPlugin {
-	// Web browser plugin id
-	public static final String PLUGIN_ID = "org.eclipse.ui.browser"; //$NON-NLS-1$
-
-	// singleton instance of this class
-	private static WebBrowserUIPlugin singleton;
-	
-	// cached copy of all browsers
-	private static List browsers;
-
-	/**
-	 * Create the WebBrowserUIPlugin
-	 */
-	public WebBrowserUIPlugin() {
-		super();
-		singleton = this;
-	}
-
-	/**
-	 * Returns the singleton instance of this plugin.
-	 *
-	 * @return org.eclipse.ui.internal.browser.WebBrowserPlugin
-	 */
-	public static WebBrowserUIPlugin getInstance() {
-		return singleton;
-	}
-
-	/**
-	 * Shuts down this plug-in and saves all plug-in state.
-	 *
-	 * @exception Exception
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		BrowserManager.safeDispose();
-	}
-	
-	/**
-	 * Returns an array of all known browers.
-	 * <p>
-	 * A new array is returned on each call, so clients may store or modify the result.
-	 * </p>
-	 * 
-	 * @return a possibly-empty array of browser instances {@link IClient}
-	 */
-	public static IBrowserExt[] getBrowsers() {
-		if (browsers == null)
-			loadBrowsers();
-		IBrowserExt[] c = new IBrowserExt[browsers.size()];
-		browsers.toArray(c);
-		return c;
-	}
-	
-	public static IBrowserExt findBrowsers(String executable) {
-		IBrowserExt[] browsers2 = getBrowsers();
-		if (browsers2 == null || executable == null)
-			return null;
-		
-		int ind1 = executable.lastIndexOf("/"); //$NON-NLS-1$
-		int ind2 = executable.lastIndexOf("\\"); //$NON-NLS-1$
-		if (ind2 > ind1)
-			ind1 = ind2;
-		executable = executable.substring(ind1 + 1);
-		
-		String os = Platform.getOS();
-		int size = browsers2.length;
-		for (int i = 0; i < size; i++) {
-			if (browsers2[i].getOS().toLowerCase().indexOf(os) != -1) {
-				if (browsers2[i].isAvailable()) {
-					String executable2 = browsers2[i].getExecutable();
-					if (executable.startsWith(executable2))
-						return browsers2[i];
-				}
-			}
-		}
-		return null;
-	}
-	
-	/**
-	 * Load the browsers extension point.
-	 */
-	private static synchronized void loadBrowsers() {
-		if (browsers != null)
-			return;
-		Trace.trace(Trace.CONFIG, "->- Loading .browsers extension point ->-"); //$NON-NLS-1$
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IConfigurationElement[] cf = registry.getConfigurationElementsFor(PLUGIN_ID, "browsers"); //$NON-NLS-1$
-
-		int size = cf.length;
-		browsers = new ArrayList(size);
-		for (int i = 0; i < size; i++) {
-			try {
-				browsers.add(new BrowserExt(cf[i]));
-				Trace.trace(Trace.CONFIG, "  Loaded browser: " + cf[i].getAttribute("id")); //$NON-NLS-1$ //$NON-NLS-2$
-			} catch (Throwable t) {
-				Trace.trace(Trace.SEVERE, "  Could not load browser: " + cf[i].getAttribute("id"), t); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		Trace.trace(Trace.CONFIG, "-<- Done loading .browsers extension point -<-"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * 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) {
-		if (message == null)
-			message = ""; //$NON-NLS-1$
-		Status errorStatus = new Status(IStatus.ERROR, PLUGIN_ID, IStatus.OK,
-				message, ex);
-		WebBrowserUIPlugin.getInstance().getLog().log(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 (WebBrowserUIPlugin.DEBUG) {
-			if (message == null)
-				message = ""; //$NON-NLS-1$
-			Status warningStatus = new Status(IStatus.WARNING, PLUGIN_ID,
-					IStatus.OK, message, null);
-			WebBrowserUIPlugin.getInstance().getLog().log(warningStatus);
-		}
-	}*/
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java
deleted file mode 100644
index 7c708fb..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserUtil.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.program.Program;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.ui.PlatformUI;
-/**
- * Utility class for the Web browser tools.
- */
-public class WebBrowserUtil {
-	private static final String BROWSER_PACKAGE_NAME = "org.eclipse.swt.browser.Browser"; //$NON-NLS-1$
-
-	public static Boolean isInternalBrowserOperational;
-
-	private static final char STYLE_SEP = '-';
-
-	private static final int DEFAULT_STYLE = BrowserViewer.BUTTON_BAR
-			| BrowserViewer.LOCATION_BAR;
-
-	/**
-	 * WebBrowserUtil constructor comment.
-	 */
-	public WebBrowserUtil() {
-		super();
-	}
-
-	/**
-	 * Returns true if we're running on Windows.
-	 * 
-	 * @return boolean
-	 */
-	public static boolean isWindows() {
-		String os = System.getProperty("os.name"); //$NON-NLS-1$
-		if (os != null && os.toLowerCase().indexOf("win") >= 0) //$NON-NLS-1$
-			return true;
-		return false;
-	}
-
-	/**
-	 * Returns true if we're running on linux.
-	 * 
-	 * @return boolean
-	 */
-	public static boolean isLinux() {
-		String os = System.getProperty("os.name"); //$NON-NLS-1$
-		if (os != null && os.toLowerCase().indexOf("lin") >= 0) //$NON-NLS-1$
-			return true;
-		return false;
-	}
-
-	/**
-	 * Open a dialog window.
-	 * 
-	 * @param message
-	 *            java.lang.String
-	 */
-	public static void openError(String message) {
-		Display d = Display.getCurrent();
-		if (d == null)
-			d = Display.getDefault();
-
-		Shell shell = d.getActiveShell();
-		MessageDialog.openError(shell, Messages.errorDialogTitle, message);
-	}
-
-	/**
-	 * Open a dialog window.
-	 * 
-	 * @param message
-	 *            java.lang.String
-	 */
-	public static void openMessage(String message) {
-		Display d = Display.getCurrent();
-		if (d == null)
-			d = Display.getDefault();
-
-		Shell shell = d.getActiveShell();
-		MessageDialog.openInformation(shell, Messages.searchingTaskName,
-				message);
-	}
-
-	/**
-	 * Returns whether it should be possible to use the internal browser or not,
-	 * based on whether or not the org.eclipse.swt.Browser class can be
-	 * found/loaded. If it can it means is is supported on the platform in which
-	 * this plugin is running. If not, disable the ability to use the internal
-	 * browser. This method checks to see if it can new up a new
-	 * ExternalBrowserInstance. If the SWT widget can not be bound to the
-	 * particular operating system it throws an SWTException. We catch that and
-	 * set a boolean flag which represents whether or not we were successfully
-	 * able to create a ExternalBrowserInstance instance or not. If not, don't
-	 * bother adding the Internal Web ExternalBrowserInstance that uses this
-	 * widget. Designed to be attemped only once and the flag set used
-	 * throughout.
-	 * 
-	 * @return boolean
-	 */
-	public static boolean canUseInternalWebBrowser() {
-		// if we have already figured this out, don't do it again.
-		if (isInternalBrowserOperational != null)
-			return isInternalBrowserOperational.booleanValue();
-
-		// check for the class
-		try {
-			Class.forName(BROWSER_PACKAGE_NAME);
-		} catch (ClassNotFoundException e) {
-			isInternalBrowserOperational = new Boolean(false);
-			return false;
-		}
-
-		// try loading it
-		Shell shell = null;
-		try {
-			shell = new Shell(PlatformUI.getWorkbench().getDisplay());
-			new Browser(shell, SWT.NONE);
-			isInternalBrowserOperational = new Boolean(true);
-			return true;
-		} catch (Throwable t) {
-			StringBuffer message = new StringBuffer("Internal browser is not available"); //$NON-NLS-1$
-			message.append(t.getMessage() == null?".":": " + t.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
-			WebBrowserUIPlugin.getInstance().getLog().log(
-					new Status(IStatus.WARNING, WebBrowserUIPlugin.PLUGIN_ID,
-							0, message.toString() , null));
-			isInternalBrowserOperational = new Boolean(false);
-			return false;
-		} finally {
-			if (shell != null)
-				shell.dispose();
-		}
-	}
-
-	public static boolean canUseSystemBrowser() {
-		// Disabling system browser on Solaris due to bug 94497
-		if (Platform.OS_SOLARIS.equals(Platform.getOS()))
-			return false;
-		return Program.findProgram("html") != null; //$NON-NLS-1$
-	}
-
-	public static List getExternalBrowserPaths() {
-		List paths = new ArrayList();
-		Iterator iterator = BrowserManager.getInstance().getWebBrowsers()
-				.iterator();
-		while (iterator.hasNext()) {
-			IBrowserDescriptor wb = (IBrowserDescriptor) iterator.next();
-			if (wb != null && wb.getLocation() != null)
-				paths.add(wb.getLocation().toLowerCase());
-		}
-		return paths;
-	}
-
-	/**
-	 * Add any supported EXTERNAL web browsers found after an arbitrary check in
-	 * specific paths
-	 */
-	public static void addFoundBrowsers(List list) {
-		List paths = getExternalBrowserPaths();
-
-		String os = Platform.getOS();
-		File[] roots = getUsableDrives(File.listRoots());
-		int rootSize = roots.length;
-
-		// Math.min(roots.length, 2); // just check the first two drives
-
-		IBrowserExt[] browsers = WebBrowserUIPlugin.getBrowsers();
-		int size = browsers.length;
-		for (int i = 0; i < size; i++) {
-			if (browsers[i].getDefaultLocations() != null
-					&& browsers[i].getOS().toLowerCase().indexOf(os) >= 0) {
-				for (int k = 0; k < rootSize; k++) {
-					int size2 = browsers[i].getDefaultLocations().length;
-					for (int j = 0; j < size2; j++) {
-						String location = browsers[i].getDefaultLocations()[j];
-						try {
-							File f = new File(roots[k], location);
-							if (!paths.contains(f.getAbsolutePath()
-									.toLowerCase())) {
-								if (f.exists()) {
-									BrowserDescriptor browser = new BrowserDescriptor();
-									browser.name = browsers[i].getName();
-									browser.location = f.getAbsolutePath();
-									browser.parameters = browsers[i]
-											.getParameters();
-									list.add(browser);
-									j += size2;
-								}
-							}
-						} catch (Exception e) {
-							// ignore
-						}
-					}
-				}
-			}
-		}
-	}
-
-	private static File[] getUsableDrives(File[] roots) {
-		if (!Platform.getOS().equals(Platform.OS_WIN32))
-			return roots;
-		ArrayList list = new ArrayList();
-		for (int i = 0; i < roots.length; i++) {
-			String path = roots[i].getAbsolutePath();
-			if (path != null
-					&& (path.toLowerCase().startsWith("a:") || path.toLowerCase().startsWith("b:"))) //$NON-NLS-1$ //$NON-NLS-2$
-				continue;
-			list.add(roots[i]);
-		}
-		return (File[]) list.toArray(new File[list.size()]);
-	}
-
-	/**
-	 * Create an external Web browser if the file matches the default (known)
-	 * browsers.
-	 * 
-	 * @param file
-	 * @return an external browser working copy
-	 */
-	public static IBrowserDescriptorWorkingCopy createExternalBrowser(File file) {
-		if (file == null || !file.isFile())
-			return null;
-
-		String executable = file.getName();
-		IBrowserExt[] browsers = WebBrowserUIPlugin.getBrowsers();
-		int size = browsers.length;
-		for (int i = 0; i < size; i++) {
-			if (executable.equals(browsers[i].getExecutable())) {
-				IBrowserDescriptorWorkingCopy browser = BrowserManager
-						.getInstance().createExternalWebBrowser();
-				browser.setName(browsers[i].getName());
-				browser.setLocation(file.getAbsolutePath());
-				browser.setParameters(browsers[i].getParameters());
-				return browser;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Encodes browser style in the secondary id as id-style
-	 * 
-	 * @param browserId
-	 * @param style
-	 * @return secondaryId
-	 */
-	public static String encodeStyle(String browserId, int style) {
-		return browserId + STYLE_SEP + style;
-	}
-
-	/**
-	 * Decodes secondary id into a browser style.
-	 * 
-	 * @param secondaryId
-	 * @return style
-	 */
-	public static int decodeStyle(String secondaryId) {
-		if (secondaryId != null) {
-			int sep = secondaryId.lastIndexOf(STYLE_SEP);
-			if (sep != -1) {
-				String stoken = secondaryId.substring(sep + 1);
-				try {
-					return Integer.parseInt(stoken);
-				} catch (NumberFormatException e) {
-					// ignore
-				}
-			}
-		}
-		return DEFAULT_STYLE;
-	}
-
-	public static String decodeId(String encodedId) {
-		int sep = encodedId.lastIndexOf(STYLE_SEP);
-		if (sep != -1) {
-			return encodedId.substring(0, sep);
-		}
-		return encodedId;
-	}
-	
-	public static String createParameterString(String parameters, String urlText) {
-		String params = parameters;
-		String url = urlText;
-		if (url == null) {
-			url = ""; //$NON-NLS-1$
-		}
-		if (params == null)
-			params = ""; //$NON-NLS-1$
-
-		int urlIndex = params.indexOf(IBrowserDescriptor.URL_PARAMETER);
-		if (urlIndex >= 0)
-			params = params.substring(0, urlIndex)
-					+ url
-					+ params.substring(urlIndex
-							+ IBrowserDescriptor.URL_PARAMETER.length());
-		else {
-			if (params.length() != 0 && !params.endsWith(" ")) //$NON-NLS-1$
-				params += " "; //$NON-NLS-1$ 
-			params += url;
-		}
-		return params;
-
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserView.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserView.java
deleted file mode 100644
index 39617fc..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserView.java
+++ /dev/null
@@ -1,183 +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.browser;
-
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * A Web browser viewer.
- */
-public class WebBrowserView extends ViewPart implements
-		IBrowserViewerContainer, ISetSelectionTarget {
-	public static final String WEB_BROWSER_VIEW_ID = "org.eclipse.ui.browser.view"; //$NON-NLS-1$
-
-	protected BrowserViewer viewer;
-
-	protected ISelectionListener listener;
-
-	public void createPartControl(Composite parent) {
-		int style = WebBrowserUtil.decodeStyle(getViewSite().getSecondaryId());
-		viewer = new BrowserViewer(parent, style);
-		viewer.setContainer(this);
-
-		/*
-		 * PropertyChangeListener propertyChangeListener = new
-		 * PropertyChangeListener() { public void
-		 * propertyChange(PropertyChangeEvent event) { if
-		 * (BrowserViewer.PROPERTY_TITLE.equals(event.getPropertyName())) {
-		 * setPartName((String) event.getNewValue()); } } };
-		 * viewer.addPropertyChangeListener(propertyChangeListener);
-		 */
-		initDragAndDrop();
-	}
-
-	public void dispose() {
-		if (viewer!=null)
-			viewer.setContainer(null);
-		if (listener != null)
-			removeSelectionListener();
-	}
-
-	public void setURL(String url) {
-		if (viewer != null)
-			viewer.setURL(url);
-	}
-
-	public void setFocus() {
-		viewer.setFocus();
-	}
-
-	public boolean close() {
-		try {
-			getSite().getPage().hideView(this);
-			return true;
-		} catch (Exception e) {
-			return false;
-		}
-	}
-
-	public IActionBars getActionBars() {
-		return getViewSite().getActionBars();
-	}
-
-	public void openInExternalBrowser(String url) {
-		try {
-			URL theURL = new URL(url);
-			IWorkbenchBrowserSupport support = PlatformUI.getWorkbench()
-					.getBrowserSupport();
-			support.getExternalBrowser().openURL(theURL);
-		} catch (MalformedURLException e) {
-			// TODO handle this
-		} catch (PartInitException e) {
-			// TODO handle this
-		}
-	}
-
-	public void addSelectionListener() {
-		if (listener != null)
-			return;
-
-		listener = new ISelectionListener() {
-			public void selectionChanged(IWorkbenchPart part,
-					ISelection selection) {
-				onSelectionChange(selection);
-			}
-		};
-		getSite().getWorkbenchWindow().getSelectionService()
-				.addPostSelectionListener(listener);
-	}
-	
-	private void onSelectionChange(ISelection selection) {
-		if (!(selection instanceof IStructuredSelection))
-			return;
-		IStructuredSelection sel = (IStructuredSelection) selection;
-		Object obj = sel.getFirstElement();
-		if (obj instanceof IAdaptable) {
-			IAdaptable adapt = (IAdaptable) obj;
-			URL url = getURLFromAdaptable(adapt);
-			if (url!=null)
-				setURL(url.toExternalForm());
-		}
-	}
-	
-	private URL getURLFromAdaptable(IAdaptable adapt) {
-		// test for path
-		IPath path = (IPath) adapt.getAdapter(IPath.class);
-		if (path != null) {
-			File file = path.toFile();
-			if (file.exists() && isWebFile(file.getName()))
-				try {
-					return file.toURL();
-				} catch (MalformedURLException e) {
-					return null;
-				}
-		}
-		return (URL)adapt.getAdapter(URL.class);
-	}
-
-	public void removeSelectionListener() {
-		if (listener == null)
-			return;
-		getSite().getWorkbenchWindow().getSelectionService()
-				.removePostSelectionListener(listener);
-		listener = null;
-	}
-
-	/**
-	 * Return true if the filename has a "web" extension.
-	 * 
-	 * @param name
-	 * @return
-	 */
-	protected boolean isWebFile(String name) {
-		return name.endsWith("html") || name.endsWith("htm") || name.endsWith("gif") || //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				name.endsWith("jpg"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Adds drag and drop support to the view.
-	 */
-	protected void initDragAndDrop() {
-		Transfer[] transfers = new Transfer[] {
-		// LocalSelectionTransfer.getInstance(),
-		// ResourceTransfer.getInstance(),
-		FileTransfer.getInstance() };
-
-		DropTarget dropTarget = new DropTarget(viewer, DND.DROP_COPY
-				| DND.DROP_DEFAULT);
-		dropTarget.setTransfer(transfers);
-		dropTarget.addDropListener(new WebBrowserViewDropAdapter(viewer));
-	}
-
-	public void selectReveal(ISelection selection) {
-		onSelectionChange(selection);
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserViewDropAdapter.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserViewDropAdapter.java
deleted file mode 100644
index 8a535a3..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/WebBrowserViewDropAdapter.java
+++ /dev/null
@@ -1,164 +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.browser;
-
-import java.io.File;
-
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetAdapter;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TransferData;
-/**
- *
- */
-public class WebBrowserViewDropAdapter extends DropTargetAdapter {
-   /**
-    * The view to which this drop support has been added.
-    */
-   private BrowserViewer view;
-
-   /**
-    * The current operation.
-    */
-   private int currentOperation = DND.DROP_NONE;
-
-   /**
-    * The last valid operation.
-    */
-   private int lastValidOperation = DND.DROP_NONE;
-   
-   protected WebBrowserViewDropAdapter(BrowserViewer view) {
-		this.view = view;
-	}
-
-   /* (non-Javadoc)
-    * Method declared on DropTargetAdapter.
-    * The mouse has moved over the drop target.  If the
-    * target item has changed, notify the action and check
-    * that it is still enabled.
-    */
-   private void doDropValidation(DropTargetEvent event) {
-       //update last valid operation
-       if (event.detail != DND.DROP_NONE)
-           lastValidOperation = event.detail;
-       
-       //valid drop and set event detail accordingly
-       if (validateDrop(event.detail, event.currentDataType))
-           currentOperation = lastValidOperation;
-       else
-           currentOperation = DND.DROP_NONE;
-       
-       event.detail = currentOperation;
-   }
-
-   /* (non-Javadoc)
-    * Method declared on DropTargetAdapter.
-    * The drop operation has changed, see if the action
-    * should still be enabled.
-    */
-   public void dragOperationChanged(DropTargetEvent event) {
-       doDropValidation(event);
-   }
-
-   /* (non-Javadoc)
-    * Method declared on DropTargetAdapter.
-    * The mouse has moved over the drop target.  If the
-    * target item has changed, notify the action and check
-    * that it is still enabled.
-    */
-   public void dragOver(DropTargetEvent event) {
-       //set the location feedback
-   	 event.feedback = DND.FEEDBACK_SELECT;
-
-       //see if anything has really changed before doing validation.
-       doDropValidation(event);
-   }
-
-   /* (non-Javadoc)
-    * Method declared on DropTargetAdapter.
-    * The user has dropped something on the desktop viewer.
-    */
-   public void drop(DropTargetEvent event) {
-       //perform the drop behaviour
-       if (!performDrop(event.data))
-           event.detail = DND.DROP_NONE;
-       
-       currentOperation = event.detail;
-   }
-
-   /* (non-Javadoc)
-    * Method declared on DropTargetAdapter.
-    * Last chance for the action to disable itself
-    */
-   public void dropAccept(DropTargetEvent event) {
-       if (!validateDrop(event.detail, event.currentDataType))
-           event.detail = DND.DROP_NONE;
-   }
-
-	public void dragEnter(DropTargetEvent event) {
-		if (event.detail == DND.DROP_DEFAULT)
-			event.detail = DND.DROP_COPY;
-
-       doDropValidation(event);
-	}
-
-	/**
-    * Performs any work associated with the drop.
-    * <p>
-    * Subclasses must implement this method to provide drop behavior.
-    * </p>
-    *
-    * @param data the drop data
-    * @return <code>true</code> if the drop was successful, and 
-    *   <code>false</code> otherwise
-    */
-	protected boolean performDrop(Object data) {
-		if (data instanceof String[]) {
-			String[] s = (String[]) data;
-			if (s == null || s.length == 0)
-				return true;
-			File f = new File(s[0]);
-			try {
-				view.setURL(f.toURL().toExternalForm());
-			} catch (Exception e) {
-				// TODO
-			}
-		}
-		
-		return true;
-	}
-
-	/**
-    * Validates dropping on the given object. This method is called whenever some 
-    * aspect of the drop operation changes.
-    * <p>
-    * Subclasses must implement this method to define which drops make sense.
-    * </p>
-    * 
-    * @param target the object that the mouse is currently hovering over, or
-    *   <code>null</code> if the mouse is hovering over empty space
-    * @param operation the current drag operation (copy, move, etc.)
-    * @param transferType the current transfer type
-    * @return <code>true</code> if the drop is valid, and <code>false</code>
-    *   otherwise
-    */
-	protected boolean validateDrop(int operation, TransferData transferType) {
-		if (FileTransfer.getInstance().isSupportedType(transferType))
-			return true;
-		/*if (ResourceTransfer.getInstance().isSupportedType(transferType))
-			return true;
-		if (LocalSelectionTransfer.getInstance().isSupportedType(transferType))
-			return true;*/
-		
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/BrowserLog.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/BrowserLog.java
deleted file mode 100644
index 5980705..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/BrowserLog.java
+++ /dev/null
@@ -1,80 +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.ui.internal.browser.browsers;
-
-import java.io.*;
-import com.ibm.icu.text.DateFormat;
-import com.ibm.icu.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-/**
- * Log for messages output by external browser processes.
- */
-public class BrowserLog {
-	private static BrowserLog instance;
-	private String logFileName;
-	private boolean newSession;
-	DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy kk:mm:ss.SS"); //$NON-NLS-1$
-	String LN = System.getProperty("line.separator"); //$NON-NLS-1$
-	/**
-	 * Constructor
-	 */
-	private BrowserLog() {
-		try {
-			newSession = true;
-			logFileName = WebBrowserUIPlugin.getInstance().getStateLocation().append("browser.log").toOSString(); //$NON-NLS-1$
-		} catch (Exception e) {
-			// can get here if platform is shutting down
-		}
-	}
-	/**
-	 * Obtains singleton
-	 */
-	private static BrowserLog getInstance() {
-		if (instance == null) {
-			instance = new BrowserLog();
-		}
-		return instance;
-	}
-	/**
-	 * Appends a line to the browser.log
-	 */
-	public static synchronized void log(String message) {
-		getInstance().append(message);
-	}
-	private void append(String message) {
-		if (logFileName == null) {
-			return;
-		}
-		Writer outWriter = null;
-		try {
-			outWriter = new BufferedWriter(new OutputStreamWriter(
-					new FileOutputStream(logFileName, true), "UTF-8")); //$NON-NLS-1$
-			if (newSession) {
-				newSession = false;
-				outWriter.write(LN + formatter.format(new Date())
-						+ " NEW SESSION" + LN); //$NON-NLS-1$
-			}
-			outWriter.write(formatter.format(new Date()) + " " + message + LN); //$NON-NLS-1$
-			outWriter.flush();
-			outWriter.close();
-		} catch (Exception e) {
-			if (outWriter != null) {
-				try {
-					outWriter.close();
-				} catch (IOException ioe) {
-					// ignore
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowser.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowser.java
deleted file mode 100644
index 6b220ef..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowser.java
+++ /dev/null
@@ -1,155 +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.ui.internal.browser.browsers;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.osgi.service.environment.Constants;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-import org.eclipse.ui.internal.browser.Messages;
-import org.eclipse.ui.internal.browser.Trace;
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-/**
- * 
- */
-public class DefaultBrowser extends AbstractWebBrowser {
-	protected String location;
-	protected String parameters;
-	
-	public DefaultBrowser(String id, String location, String parameters) {
-		super(id);
-		this.location = location;
-		this.parameters = parameters;
-	}
-
-	/**
-	 * @see org.eclipse.help.browser.IBrowser#displayURL(java.lang.String)
-	 */
-	public void openURL(URL url2) throws PartInitException {
-		String url = url2.toExternalForm();
-		String path = location;
-
-		String[] command = prepareCommand(path, url);
-		Trace.trace(Trace.FINER, "Command: " + command); //$NON-NLS-1$
-
-		try {
-			Process pr = Runtime.getRuntime().exec(command);
-			Thread outConsumer = new StreamConsumer(pr.getInputStream());
-			outConsumer.setName("Custom browser adapter output reader"); //$NON-NLS-1$
-			outConsumer.start();
-			Thread errConsumer = new StreamConsumer(pr.getErrorStream());
-			errConsumer.setName("Custom browser adapter error reader"); //$NON-NLS-1$
-			errConsumer.start();
-		} catch (Exception e) {
-			WebBrowserUIPlugin.logError(
-				"Launching URL \"" //$NON-NLS-1$
-					+ url
-					+ "\" using browser program \"" //$NON-NLS-1$
-					+ path
-					+ "\" has failed.  Specify another browser in help preferences.", //$NON-NLS-1$
-					e);
-			throw new PartInitException(NLS.bind(Messages.errorCouldNotLaunchWebBrowser, path));
-		}
-	}
-
-	/**
-	 * Creates the final command to launch.
-	 * 
-	 * @param path
-	 * @param url
-	 * @return String[]
-	 */
-	protected String[] prepareCommand(String path, String url) {
-		ArrayList tokenList = new ArrayList();
-		//Divide along quotation marks
-		StringTokenizer qTokenizer = new StringTokenizer(path.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) {
-					if (Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS())) {
-						// need to quote URLs on Windows
-						tokenList.add("\"" + quotedString + "\""); //$NON-NLS-1$ //$NON-NLS-2$
-					} else {
-						// quotes prevent launching on Unix 35673
-						tokenList.add(quotedString);
-					}
-				} else {
-					quotedString = ""; //$NON-NLS-1$
-				}
-				withinQuotation = !withinQuotation;
-				continue;
-			} else if (withinQuotation) {
-				quotedString = curToken;
-				continue;
-			} else {
-				//divide unquoted strings along white space
-				StringTokenizer parser = new StringTokenizer(curToken.trim());
-				while (parser.hasMoreTokens()) {
-					tokenList.add(parser.nextToken());
-				}
-			}
-		}
-		// substitute %1 by url
-		boolean substituted = false;
-		for (int i = 0; i < tokenList.size(); i++) {
-			String token = (String) tokenList.get(i);
-			String newToken = doSubstitutions(token, url);
-			if (newToken != null) {
-				tokenList.set(i, newToken);
-				substituted = true;
-			}
-		}
-		// add the url if not substituted already
-		if (!substituted)
-			tokenList.add(url);
-
-		String[] command = new String[tokenList.size()];
-		tokenList.toArray(command);
-		return command;
-	}
-	
-	/**
-	 * Replaces any occurrences of <code>"%1"</code> or <code>%1</code> with
-	 * the URL.
-	 * 
-	 * @param token
-	 *            The token in which the substitutions should be made; must not
-	 *            be <code>null</code>.
-	 * @return The substituted string, if a substitution is made;
-	 *         <code>null</code> if no substitution is made.
-	 */
-	protected String doSubstitutions(String token, String url) {
-		boolean substituted = false;
-		StringBuffer newToken = new StringBuffer(token);
-		String substitutionMarker = "%1"; //$NON-NLS-1$
-		int index = newToken.indexOf(substitutionMarker);
-		while (index != -1) {
-			newToken.replace(index, index + substitutionMarker.length(), url);
-			index = newToken.indexOf(substitutionMarker, index + url.length());
-			substituted = true;
-		}
-
-		if (substituted) {
-			return newToken.toString();
-		}
-
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowserFactory.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowserFactory.java
deleted file mode 100644
index 83275b9..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/DefaultBrowserFactory.java
+++ /dev/null
@@ -1,25 +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.browser.browsers;
-
-import org.eclipse.ui.browser.BrowserFactory;
-import org.eclipse.ui.browser.IWebBrowser;
-/**
- * Produces Custom Browser
- */
-public class DefaultBrowserFactory extends BrowserFactory {
-	/**
-	 * @see org.eclipse.ui.browser.provisional.BrowserFactory#createBrowser()
-	 */
-	public IWebBrowser createBrowser(String id, String location, String parameters) {
-		return new DefaultBrowser(id, location, parameters);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaBrowser.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaBrowser.java
deleted file mode 100644
index b6738cd..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaBrowser.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Shawn Minto, patch for Bug 247731
- *******************************************************************************/
-package org.eclipse.ui.internal.browser.browsers;
-
-import java.io.*;
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-import org.eclipse.ui.internal.browser.WebBrowserUtil;
-/**
- * Browser adapter for browsers supporting -remote openURL command line option
- * i.e. Mozilla and Netscape.
- */
-public class MozillaBrowser extends AbstractWebBrowser {
-	// delay that it takes mozilla to start responding
-	// to remote command after mozilla has been called
-	protected static final int DELAY = 5000;
-
-	protected long browserFullyOpenedAt = 0;
-
-	private BrowserThread lastBrowserThread = null;
-
-	protected String executable;
-	
-	protected boolean firstLaunch = true;
-
-	private String parameters;
-
-	/**
-	 * Constructor
-	 * 
-	 * @executable executable filename to launch
-	 * @executableName name of the program to display when error occurs
-	 */
-	public MozillaBrowser(String id, String executable, String parameters) {
-		super(id);
-		this.executable = executable;
-		if (parameters == null) {
-			this.parameters = ""; //$NON-NLS-1$
-		} else {
-		    this.parameters = parameters;
-		}
-	}
-	
-	String getExecutable() {
-		return executable;
-	}
-
-	/*
-	 * @see IBrowser#displayURL(String)
-	 */
-	public void openURL(URL url2) {
-		String url = null;
-		if (url2 != null) {
-			url = url2.toExternalForm();
-			// change spaces to "%20"
-			if (url != null & WebBrowserUtil.isWindows()) {
-				int index = url.indexOf(" "); //$NON-NLS-1$
-				while (index >= 0) {
-					url = url.substring(0, index) + "%20" //$NON-NLS-1$
-							+ url.substring(index + 1);
-					index = url.indexOf(" "); //$NON-NLS-1$
-				}
-			}
-		}
-		else {
-			url = ""; //$NON-NLS-1$
-		}
-		if (lastBrowserThread != null)
-			lastBrowserThread.exitRequested = true;
-
-		lastBrowserThread = new BrowserThread(url);
-		lastBrowserThread.setDaemon(true);
-		lastBrowserThread.start();
-	}
-
-	private class BrowserThread extends Thread {
-		public boolean exitRequested = false;
-
-		private String url;
-
-		public BrowserThread(String urlName) {
-			this.url = urlName;
-		}
-
-		/**
-		 * @param browserCmd
-		 * @return int 0 if success
-		 */
-		private int openBrowser(String browserCmd) {
-			try {
-				Process pr = Runtime.getRuntime().exec(browserCmd);
-				StreamConsumer outputs = new StreamConsumer(pr.getInputStream());
-				(outputs).start();
-				StreamConsumer errors = new StreamConsumer(pr.getErrorStream());
-				(errors).start();
-				pr.waitFor();
-				int ret = pr.exitValue();
-
-				if (ret == 0 && errorsInOutput(outputs, errors)) {
-					return -1;
-				}
-				return ret;
-			} catch (InterruptedException e) {
-				// ignore
-			} catch (IOException e) {
-				WebBrowserUIPlugin.logError("Launching " + executable //$NON-NLS-1$
-					+ " has failed.", e); //$NON-NLS-1$
-				// TODO: log error
-				/*String msg = HelpBaseResources.getString(
-						"MozillaBrowser.executeFailed", //$NON-NLS-1$
-						executableName);
-				BaseHelpSystem.getDefaultErrorUtil()
-						.displayError(msg, uiThread);*/
-				// return success, so second command does not execute
-				return 0;
-			}
-			return -1;
-		}
-
-		/**
-		 * On some OSes 0 is always returned by netscape -remote. It is
-		 * necessary to examine ouput to find out failure
-		 * 
-		 * @param outputs
-		 * @param errors
-		 * @return @throws
-		 *         InterruptedException
-		 */
-		private boolean errorsInOutput(StreamConsumer outputs,
-				StreamConsumer errors) {
-			try {
-				outputs.join(1000);
-				if (outputs.getLastLine() != null
-						&& (outputs.getLastLine().indexOf(
-								"No running window found") //$NON-NLS-1$
-						>= 0 || outputs.getLastLine().indexOf(
-								"not running on display") //$NON-NLS-1$
-						>= 0)) {
-					return true;
-				}
-				errors.join(1000);
-				if (errors.getLastLine() != null
-						&& (errors.getLastLine().indexOf(
-								"No running window found") //$NON-NLS-1$
-						>= 0 || errors.getLastLine().indexOf(
-								"not running on display") //$NON-NLS-1$
-						>= 0)) {
-					return true;
-				}
-			} catch (InterruptedException ie) {
-				// ignore
-			}
-			return false;
-		}
-
-		public void run() {
-			// if browser is opening, wait until it fully opens
-			waitForBrowser();
-			if (exitRequested)
-				return;
-			if (firstLaunch && Platform.OS_WIN32.equals(Platform.getOS())) {
-				if (openBrowser(executable + " " + WebBrowserUtil.createParameterString(parameters, url)) == 0) //$NON-NLS-1$
-					return;
-				browserFullyOpenedAt = System.currentTimeMillis() + DELAY;
-				return;
-			}
-			if (openBrowser(executable + ' ' + parameters + " -remote openURL(" + url + ")") //$NON-NLS-1$ //$NON-NLS-2$
-					== 0)
-				return;
-			
-			if (exitRequested)
-				return;
-			browserFullyOpenedAt = System.currentTimeMillis() + DELAY;
-			openBrowser(executable + " " + WebBrowserUtil.createParameterString(parameters, url)); //$NON-NLS-1$
-		}
-
-		private void waitForBrowser() {
-			while (System.currentTimeMillis() < browserFullyOpenedAt)
-				try {
-					if (exitRequested)
-						return;
-					Thread.sleep(100);
-				} catch (InterruptedException ie) {
-					// ignore
-				}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaFactory.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaFactory.java
deleted file mode 100644
index 4615879..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/MozillaFactory.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation    
- *     Shawn Minto, patch for Bug 247731
- *******************************************************************************/
-package org.eclipse.ui.internal.browser.browsers;
-
-import org.eclipse.ui.browser.BrowserFactory;
-import org.eclipse.ui.browser.IWebBrowser;
-
-public class MozillaFactory extends BrowserFactory {
-	private MozillaBrowser browserInstance = null;
-	
-	/**
-	 * Constructor.
-	 */
-	public MozillaFactory() {
-		super();
-	}
-	
-	/*
-	 * @see BrowserFactory#isAvailable()
-	 */
-	/*public boolean isAvailable() {
-		try {
-			Process pr = Runtime.getRuntime().exec("which " + executable); //$NON-NLS-1$
-			StreamConsumer outputs = new StreamConsumer(pr.getInputStream());
-			(outputs).start();
-			StreamConsumer errors = new StreamConsumer(pr.getErrorStream());
-			(errors).start();
-			pr.waitFor();
-			
-			int ret = pr.exitValue();
-			if (ret == 0)
-				return !errorsInOutput(outputs, errors);
-			return false;
-		} catch (InterruptedException e) {
-			return false;
-		} catch (IOException e) {
-			// launching which failed, assume browser executable is present
-			return true;
-		}
-	}*/
-	
-	/**
-	 * On some OSes 0 is always returned by "which" command it is necessary to
-	 * examine ouput to find out failure.
-	 * 
-	 * @param outputs
-	 * @param errors
-	 * @return @throws
-	 *         InterruptedException
-	 */
-	/*private boolean errorsInOutput(StreamConsumer outputs, StreamConsumer errors) {
-		try {
-			outputs.join(1000);
-			if (outputs.getLastLine() != null
-				&& outputs.getLastLine()
-					.indexOf("no " + executable + " in") //$NON-NLS-1$ //$NON-NLS-2$
-					>= 0) {
-				return true;
-			}
-			errors.join(1000);
-			if (errors.getLastLine() != null
-					&& errors.getLastLine().indexOf("no " + executable + " in") //$NON-NLS-1$ //$NON-NLS-2$
-					>= 0) {
-				return true;
-			}
-		} catch (InterruptedException ie) {
-			// ignore
-		}
-		return false;
-	}*/
-
-	/*
-	 * @see BrowserFactory#createBrowser()
-	 */
-	public IWebBrowser createBrowser(String id, String location, String parameters) {
-		// Create single browser for all clients
-		if (browserInstance == null || !browserInstance.getExecutable().equals(location)) {
-			browserInstance = new MozillaBrowser(id, location, parameters);
-		}
-		return browserInstance;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/NullBrowser.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/NullBrowser.java
deleted file mode 100644
index 2c84e0e..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/NullBrowser.java
+++ /dev/null
@@ -1,33 +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.browser.browsers;
-
-import java.net.URL;
-
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.browser.AbstractWebBrowser;
-import org.eclipse.ui.internal.browser.Messages;
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-
-public class NullBrowser extends AbstractWebBrowser {
-	public NullBrowser(String id) {
-		super(id);
-	}
-
-	public void openURL(URL url) throws PartInitException {
-		WebBrowserUIPlugin.logError(
-			"There is no browser adapter configured to display " //$NON-NLS-1$
-			+ url
-			+ ".  Ensure that you have a required browser and adapter installed, and that the browser program is available on the system path.", //$NON-NLS-1$
-			null);
-		throw new PartInitException(Messages.errorNoBrowser);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/StreamConsumer.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/StreamConsumer.java
deleted file mode 100644
index 734b46a..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/browsers/StreamConsumer.java
+++ /dev/null
@@ -1,49 +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.browser.browsers;
-
-import java.io.*;
-
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-/**
- * Used to receive output from processes
- */
-public class StreamConsumer extends Thread {
-	BufferedReader bReader;
-
-	private String lastLine;
-
-	public StreamConsumer(InputStream inputStream) {
-		super();
-		setDaemon(true);
-		bReader = new BufferedReader(new InputStreamReader(inputStream));
-	}
-
-	public void run() {
-		try {
-			String line;
-			while (null != (line = bReader.readLine())) {
-				lastLine = line;
-				BrowserLog.log(line);
-			}
-			bReader.close();
-		} catch (IOException ioe) {
-			WebBrowserUIPlugin.logError("Exception occurred reading from web browser.", ioe); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * @return last line obtained or null
-	 */
-	public String getLastLine() {
-		return lastLine;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowser.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowser.java
deleted file mode 100644
index 02cd282..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowser.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.browser.macosx;
-
-import java.io.*;
-import java.net.URL;
-
-import org.eclipse.ui.browser.AbstractWebBrowser;
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-
-public class DefaultBrowser extends AbstractWebBrowser {
-
-	public DefaultBrowser(String id) {
-		super(id);
-	}
-
-	/**
-	 * @see org.eclipse.help.browser.IBrowser#displayURL(String)
-	 */
-	public void openURL(URL url2) {
-		String url = url2.toExternalForm();
-		/*
-		 * Code from Marc-Antoine Parent
-		 */
-		try {
-			Runtime.getRuntime().exec(new String[] { "/usr/bin/osascript", //$NON-NLS-1$
-					"-e", //$NON-NLS-1$
-					"open location \"" + url + "\"" }); //$NON-NLS-1$ //$NON-NLS-2$
-		} catch (IOException ioe) {
-			WebBrowserUIPlugin.logError("Launching \"osascript\" has failed.", ioe); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java
deleted file mode 100644
index 0810f9b..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/DefaultBrowserFactory.java
+++ /dev/null
@@ -1,23 +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.browser.macosx;
-
-import org.eclipse.ui.browser.BrowserFactory;
-import org.eclipse.ui.browser.IWebBrowser;
-
-public class DefaultBrowserFactory extends BrowserFactory {
-	/*
-	 * @see BrowserFactory#createBrowser()
-	 */
-	public IWebBrowser createBrowser(String id, String location, String parameters) {
-		return new DefaultBrowser(id);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java
deleted file mode 100644
index 6d8b876..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowser.java
+++ /dev/null
@@ -1,84 +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.browser.macosx;
-
-import java.util.ArrayList;
-import java.util.StringTokenizer;
-
-import org.eclipse.ui.internal.browser.browsers.DefaultBrowser;
-
-public class SafariBrowser extends DefaultBrowser {
-	
-	public SafariBrowser(String id, String location, String parameters) {
-		super(id, location, parameters);
-		this.location = location;
-		this.parameters = parameters;
-	}
-
-	/**
-	 * Creates the final command to launch.
-	 * 
-	 * @param path
-	 * @param url
-	 * @return String[]
-	 */
-	protected String[] prepareCommand(String path, String url) {
-		if (url != null && url.toLowerCase().startsWith("file:")) { //$NON-NLS-1$
-			url = url.substring(5);
-		}
-		
-		ArrayList tokenList = new ArrayList();
-		//Divide along quotation marks
-		StringTokenizer qTokenizer = new StringTokenizer(path.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) {
-					// quotes prevent launching on Unix 35673
-					tokenList.add(quotedString);
-				} else {
-					quotedString = ""; //$NON-NLS-1$
-				}
-				withinQuotation = !withinQuotation;
-				continue;
-			} else if (withinQuotation) {
-				quotedString = curToken;
-				continue;
-			} else {
-				//divide unquoted strings along white space
-				StringTokenizer parser = new StringTokenizer(curToken.trim());
-				while (parser.hasMoreTokens()) {
-					tokenList.add(parser.nextToken());
-				}
-			}
-		}
-		// substitute %1 by url
-		boolean substituted = false;
-		for (int i = 0; i < tokenList.size(); i++) {
-			String token = (String) tokenList.get(i);
-			String newToken = doSubstitutions(token, url);
-			if (newToken != null) {
-				tokenList.set(i, newToken);
-				substituted = true;
-			}
-		}
-		// add the url if not substituted already
-		if (!substituted)
-			tokenList.add(url);
-
-		String[] command = new String[tokenList.size()];
-		tokenList.toArray(command);
-		return command;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java b/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java
deleted file mode 100644
index 41d8312..0000000
--- a/bundles/org.eclipse.ui.browser/src/org/eclipse/ui/internal/browser/macosx/SafariBrowserFactory.java
+++ /dev/null
@@ -1,23 +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.browser.macosx;
-
-import org.eclipse.ui.browser.BrowserFactory;
-import org.eclipse.ui.browser.IWebBrowser;
-
-public class SafariBrowserFactory extends BrowserFactory {
-	/*
-	 * @see BrowserFactory#createBrowser()
-	 */
-	public IWebBrowser createBrowser(String id, String location, String parameters) {
-		return new SafariBrowser(id, location, parameters);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.carbon/.classpath b/bundles/org.eclipse.ui.carbon/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.ui.carbon/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.carbon/.cvsignore b/bundles/org.eclipse.ui.carbon/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.carbon/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.carbon/.project b/bundles/org.eclipse.ui.carbon/.project
deleted file mode 100644
index 5406e13..0000000
--- a/bundles/org.eclipse.ui.carbon/.project
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.carbon</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.help</project>
-		<project>org.eclipse.ui</project>
-	</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index ef556a6..0000000
--- a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,79 +0,0 @@
-#Mon Feb 06 11:16:35 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9e97fa0..0000000
--- a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Jul 18 11:56:01 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.1\n *\n * ${tags}\n */</template><template context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 42b98f6..0000000
--- a/bundles/org.eclipse.ui.carbon/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:10:56 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.carbon/.template b/bundles/org.eclipse.ui.carbon/.template
deleted file mode 100644
index d65e0f4..0000000
--- a/bundles/org.eclipse.ui.carbon/.template
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<form>
-   <p/><p><b>Tips on working with this plug-in project</b></p><li>For the view of the new plug-in at a glance, go to the <img href="pageImage"/><a href="OverviewPage">Overview</a>.</li><li>You can test the contributions of this plug-in by launching another instance of the workbench. On the <b>Run</b> menu, click <b>Run As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.run">Run-time Workbench</a> from the available choices.</li><li>You can add more functionality to this plug-in by adding extensions using the <a href="action.newExtension">New Extension Wizard</a>.</li><li>The plug-in project contains Java code that you can debug. Place breakpoints in Java classes. On the <b>Run</b> menu, select <b>Debug As</b> and choose <img href="runTimeWorkbenchImage"/><a href="action.debug">Run-time Workbench</a> from the available choices.</li>
-</form>
diff --git a/bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF
deleted file mode 100644
index c5dce85..0000000
--- a/bundles/org.eclipse.ui.carbon/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.ui.carbon; singleton:=true
-Bundle-Version: 4.0.0.qualifier
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui;bundle-version="[3.2.0,4.0.0)"
-Bundle-Localization: fragment-carbon
-Eclipse-PlatformFilter: (osgi.ws=carbon)
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Export-Package: org.eclipse.ui.internal.carbon;x-internal:=true;uses:="org.eclipse.ui"
diff --git a/bundles/org.eclipse.ui.carbon/about.html b/bundles/org.eclipse.ui.carbon/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.carbon/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.carbon/build.properties b/bundles/org.eclipse.ui.carbon/build.properties
deleted file mode 100644
index dba1a92..0000000
--- a/bundles/org.eclipse.ui.carbon/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 = fragment.xml,\
-               fragment-carbon.properties,\
-               META-INF/,\
-               .,\
-               about.html
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.carbon/fragment-carbon.properties b/bundles/org.eclipse.ui.carbon/fragment-carbon.properties
deleted file mode 100644
index cb3a1cf..0000000
--- a/bundles/org.eclipse.ui.carbon/fragment-carbon.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-
-providerName=Eclipse.org
-fragmentName=Eclipse UI MacOS X Enhancements
diff --git a/bundles/org.eclipse.ui.carbon/fragment.xml b/bundles/org.eclipse.ui.carbon/fragment.xml
deleted file mode 100644
index 2a881b8..0000000
--- a/bundles/org.eclipse.ui.carbon/fragment.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<fragment>
-
-   <extension
-         point="org.eclipse.ui.startup">
-      <startup
-            class="org.eclipse.ui.internal.carbon.CarbonUIEnhancer">
-      </startup>
-   </extension>
-   
-</fragment>
diff --git a/bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml b/bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml
deleted file mode 100644
index fe85497..0000000
--- a/bundles/org.eclipse.ui.carbon/scripts/exportplugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<project name="org.eclipse.ui.carbon" default="export" basedir="..">
-
-	<target name="init">
-		<tstamp/>
-		<property name="destdir" value="../../plugin-export" />
-		<property name="tempdir" value="../../tmp" />
-		<property name="plugin" value="org.eclipse.ui.carbon" />
-		<property name="plugin_version"  value="_3.1.0" />
-		<property name="dest"  value="${destdir}/${plugin}${plugin_version}" />
-		<property name="destjar"  value="${destdir}/${plugin}${plugin_version}.jar" />
-	</target>
-
-	<target name="build" depends="init">
-    	<eclipse.incrementalBuild project="${plugin}" kind="incr"/>
-	</target>
-
-	<target name="export" depends="build">
-		<delete dir="${tempdir}" />
-		<mkdir dir="${tempdir}" />
-		<mkdir dir="${destdir}" />
-		<delete file="${destjar}" />
-		<zip zipfile="${tempdir}/carbonsrc.zip">
-		    <fileset dir="src" />
-  		</zip>
-		<zip zipfile="${destjar}">
-			<fileset dir=".">
-			  <include name="fragment.xml" />
-			  <include name="fragment-carbon.properties" />
-			  <include name="META-INF/**" />
-			</fileset>
-			<fileset dir="bin" />
-			<fileset file="${tempdir}/carbonsrc.zip" />
-		</zip>
-		<delete file="${tempdir}/carbonsrc.zip" />
-	</target>
-</project>
diff --git a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java b/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java
deleted file mode 100755
index e216580..0000000
--- a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/CarbonUIEnhancer.java
+++ /dev/null
@@ -1,454 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.carbon;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.internal.Callback;
-import org.eclipse.swt.internal.carbon.HICommand;
-import org.eclipse.swt.internal.carbon.OS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.WorkbenchWindow;
-
-/**
- * The CarbonUIEnhancer provides the standard "About" and "Preference" menu items
- * and links them to the corresponding workbench commands. 
- * This must be done in a MacOS X fragment because SWT doesn't provide an abstraction
- * for the (MacOS X only) application menu and we have to use MacOS specific natives.
- * The fragment is for the org.eclipse.ui plugin because we need access to the
- * Workbench "About" and "Preference" actions.
- * 
- * @noreference this class is not intended to be referenced by any client.
- * @since 4.0
- */
-public class CarbonUIEnhancer implements IStartup {
-
-	/**
-	 * Class that is able to intercept and handle OS events from the toolbar and menu.
-	 * 
-	 * @since 3.1
-	 */
-    class Target {
-    	
-    	/**
-    	 * Process OS toolbar event.
-    	 * 
-    	 * @param nextHandler unused
-    	 * @param theEvent the OS event
-    	 * @param userData unused
-    	 * @return whether or not the event was handled by this processor
-    	 */
-		public int toolbarProc (int nextHandler, int theEvent, int userData) {
-			int eventKind = OS.GetEventKind (theEvent);
-			if (eventKind != OS.kEventWindowToolbarSwitchMode)
-				return OS.eventNotHandledErr;
-			
-			int [] theWindow = new int [1];
-			OS.GetEventParameter (theEvent, OS.kEventParamDirectObject, OS.typeWindowRef, null, 4, null, theWindow);
-			
-			int [] theRoot = new int [1];
-			OS.GetRootControl (theWindow [0], theRoot);
-			Widget widget = Display.getCurrent().findWidget(theRoot [0]);
-			
-			if (!(widget instanceof Shell)) {
-				return OS.eventNotHandledErr;
-			}
-			Shell shell = (Shell) widget;
-			IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
-					.getWorkbenchWindows();
-			for (int i = 0; i < windows.length; i++) {
-				if (windows[i].getShell() == shell) {
-					return runCommand("org.eclipse.ui.ToggleCoolbarAction"); //$NON-NLS-1$
-				}
-			}
-			return OS.eventNotHandledErr;
-		}
-
-		/**
-    	 * Process OS menu event.
-    	 * 
-    	 * @param nextHandler unused
-    	 * @param theEvent the OS event
-    	 * @param userData unused
-    	 * @return whether or not the event was handled by this processor
-    	 */
-        public int commandProc(int nextHandler, int theEvent, int userData) {
-            if (OS.GetEventKind(theEvent) == OS.kEventProcessCommand) {
-                HICommand command = new HICommand();
-                OS.GetEventParameter(theEvent, OS.kEventParamDirectObject,
-                        OS.typeHICommand, null, HICommand.sizeof, null, command);
-                switch (command.commandID) {
-                case kHICommandPreferences:
-                    return runAction("preferences"); //$NON-NLS-1$
-                case kHICommandAbout:
-                    return runAction("about"); //$NON-NLS-1$
-                default:
-                    break;
-                }
-            }
-            return OS.eventNotHandledErr;
-        }
-	}
-
-	private static final int kHICommandPreferences = ('p' << 24) + ('r' << 16) + ('e' << 8) + 'f';
-    private static final int kHICommandAbout = ('a' << 24) + ('b' << 16) + ('o' << 8) + 'u';
-    private static final int kHICommandServices = ('s' << 24) + ('e' << 16) + ('r' << 8) + 'v';
-    private static final int kHICommandHide = ('h' << 24) + ('i' << 16) + ('d' << 8) + 'e';
-    private static final int kHICommandQuit = ('q' << 24) + ('u' << 16) + ('i' << 8) + 't';
-
-    private static final String RESOURCE_BUNDLE = CarbonUIEnhancer.class.getPackage().getName() + ".Messages"; //$NON-NLS-1$
-	
-    private String fAboutActionName;
-    private String fQuitActionName;
-    private String fHideActionName;
-	private int applicationMenuHandle;
-
-    /**
-     * Default constructor
-     */
-    public CarbonUIEnhancer() {
-        IProduct product = Platform.getProduct();
-        String productName = null;
-        if (product != null)
-            productName = product.getName();
-        
-		ResourceBundle resourceBundle = ResourceBundle.getBundle(RESOURCE_BUNDLE);
-		try {
-			if (productName != null) {
-				String format = resourceBundle.getString("AboutAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fAboutActionName= MessageFormat.format(format, new Object[] { productName } );
-			}
-			if (fAboutActionName == null)
-				fAboutActionName = resourceBundle.getString("AboutAction.name"); //$NON-NLS-1$
-		} catch (MissingResourceException e) {
-		}
-		
-		if (fAboutActionName == null)
-			fAboutActionName = "About"; //$NON-NLS-1$
-		
-		if (productName != null) {	
-			try {
-				// prime the format Hide <app name>
-				String format = resourceBundle.getString("HideAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fHideActionName = MessageFormat.format(format,
-							new Object[] { productName });
-
-			} catch (MissingResourceException e) {
-			}
-
-			try {
-				// prime the format Quit <app name>
-				String format = resourceBundle.getString("QuitAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fQuitActionName = MessageFormat.format(format,
-							new Object[] { productName });
-
-			} catch (MissingResourceException e) {
-			}
-		}
-		
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IStartup#earlyStartup()
-     */
-    public void earlyStartup() {
-        final Display display = Display.getDefault();
-        display.syncExec(new Runnable() {
-            public void run() {
-				hookApplicationMenu(display);
-				hookToolbarButtonCallback();
-				hookWorkbenchListener();
-				// modify all shells opened on startup
-				IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
-						.getWorkbenchWindows();
-				for (int i = 0; i < windows.length; i++) {
-					modifyWindowShell(windows[i]);
-				}
-			}
-        });
-    }
-
-    /**
-	 * Hooks a listener that tweaks newly opened workbench window shells with
-	 * the proper OS flags.
-	 * 
-	 * @since 3.2
-	 */
-    protected void hookWorkbenchListener() {
-		PlatformUI.getWorkbench().addWindowListener(new IWindowListener() {
-
-			public void windowActivated(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowDeactivated(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowClosed(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowOpened(IWorkbenchWindow window) {
-				modifyWindowShell(window);
-			}});
-	}
-
-    /**
-	 * Modify the given workbench window shell bits to show the toolbar toggle
-	 * button.
-	 * 
-	 * @param window
-	 *            the window to modify
-	 * @since 3.2
-	 */
-	protected void modifyWindowShell(IWorkbenchWindow window) {
-		// only add the button when either the coolbar or perspectivebar
-		// is initially visible. This is so that RCP apps can choose to use
-		// this fragment without fear that their explicitly invisble bars
-		// can't be shown.
-		boolean coolBarInitiallyVsible = ((WorkbenchWindow) window)
-				.getCoolBarVisible();
-		boolean perspectiveBarInitiallyVsible = ((WorkbenchWindow) window)
-				.getPerspectiveBarVisible();
-
-		if (coolBarInitiallyVsible || perspectiveBarInitiallyVsible) {
-			// modify the newly opened window with the correct OS X
-			// style bits such that it possesses the toolbar button
-			Shell shell = window.getShell();
-			int windowHandle = OS.GetControlOwner(shell.handle);
-			OS.ChangeWindowAttributes(windowHandle,
-					OS.kWindowToolbarButtonAttribute, 0);
-		}
-	}
-	
-	/**
-	 * Hook the window toolbar button to toggle the visibility of the coolbar
-	 * and perspective bar.
-	 * 
-	 * @since 3.2
-	 */
-    protected void hookToolbarButtonCallback() {
-		Object target = new Target();
-		
-	    final Callback commandCallback = new Callback(target, "toolbarProc", 3); //$NON-NLS-1$
-        int commandProc = commandCallback.getAddress();
-        if (commandProc == 0) {
-            commandCallback.dispose();
-            return; // give up
-        }
-        
-        int[] mask = new int[] { OS.kEventClassWindow, OS.kEventWindowToolbarSwitchMode };
-        OS.InstallEventHandler(OS.GetApplicationEventTarget(), commandProc,
-                mask.length / 2, mask, 0, null);
-		
-	}
-
-	/**
-     * See Apple Technical Q&A 1079 (http://developer.apple.com/qa/qa2001/qa1079.html)
-     */
-    private void hookApplicationMenu(Display display) {
-
-        // Callback target
-        Object target = new Target();
-
-        final Callback commandCallback = new Callback(target, "commandProc", 3); //$NON-NLS-1$
-        int commandProc = commandCallback.getAddress();
-        if (commandProc == 0) {
-            commandCallback.dispose();
-            return; // give up
-        }
-
-        // Install event handler for commands
-        int[] mask = new int[] { OS.kEventClassCommand, OS.kEventProcessCommand };
-        OS.InstallEventHandler(OS.GetApplicationEventTarget(), commandProc,
-                mask.length / 2, mask, 0, null);
-
-        // create About Eclipse menu command
-        int[] outMenu = new int[1];
-        short[] outIndex = new short[1];
-        if (OS.GetIndMenuItemWithCommandID(0, kHICommandPreferences, 1, outMenu, outIndex) == OS.noErr
-                && outMenu[0] != 0) {
-            applicationMenuHandle = outMenu[0];
-
-            // add the about action
-            int l = fAboutActionName.length();
-            char buffer[] = new char[l];
-            fAboutActionName.getChars(0, l, buffer, 0);
-            int str = OS.CFStringCreateWithCharacters(OS.kCFAllocatorDefault, buffer, l);
-            OS.InsertMenuItemTextWithCFString(applicationMenuHandle, str, (short) 0, 0, kHICommandAbout);
-            OS.CFRelease(str);
-
-            // rename the hide action if we have an override string
-            if (fHideActionName != null) {
-				renameApplicationMenuItem(kHICommandHide, fHideActionName);
-			}
-            
-            // rename the quit action if we have an override string
-            if (fQuitActionName != null) {
-				renameApplicationMenuItem(kHICommandQuit, fQuitActionName);
-			}
-            
-            // add separator between About & Preferences
-            OS.InsertMenuItemTextWithCFString(applicationMenuHandle, 0, (short) 1, OS.kMenuItemAttrSeparator, 0);
-
-            // enable pref menu
-            OS.EnableMenuCommand(applicationMenuHandle, kHICommandPreferences);
-
-            // disable services menu
-            OS.DisableMenuCommand(applicationMenuHandle, kHICommandServices);
-        }
-
-        // schedule disposal of callback object
-        display.disposeExec(new Runnable() {
-            public void run() {
-                commandCallback.dispose();
-            }
-        });
-    }
-
-	/**
-     * Rename the given application menu item.
-     *
-	 * @param itemConstant the kHI* constant for the menu item
-	 * @param replacementName the new name
-     * @since 3.4
-	 */
-	private void renameApplicationMenuItem(int itemConstant,
-			String replacementName) {
-		int l;
-		char[] buffer;
-		int str;
-		int[] itemMenu = new int[1];
-		short[] itemIndex = new short[1];
-
-		if (OS.GetIndMenuItemWithCommandID(0, itemConstant, 1,
-				itemMenu, itemIndex) == OS.noErr
-				&& itemMenu[0] != 0) {
-
-			l = replacementName.length();
-			buffer = new char[l];
-			replacementName.getChars(0, l, buffer, 0);
-			str = OS.CFStringCreateWithCharacters(
-					OS.kCFAllocatorDefault, buffer, l);
-
-			OS.SetMenuItemTextWithCFString(itemMenu[0],
-					itemIndex[0], str);
-
-			OS.CFRelease(str);
-		}
-	}
-
-    /**
-     * Locate an action with the given id in the current menubar and run it.
-     */
-    private int runAction(String actionId) {
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        if (window != null) {
-        	IMenuManager manager = ((WorkbenchWindow)window).getActionBars().getMenuManager();
-        	IAction action = findAction(actionId, manager);
-        	if (action != null && action.isEnabled()) {
-        		try {
-        			 // disable About and Pref actions;
-                    OS.DisableMenuCommand(applicationMenuHandle, kHICommandPreferences);
-                    OS.DisableMenuCommand(applicationMenuHandle, kHICommandAbout);
-                    action.run();
-        		}
-        		finally {
-        			 // re-enable About and Pref actions;
-        			 OS.EnableMenuCommand(applicationMenuHandle, kHICommandPreferences);
-                     OS.EnableMenuCommand(applicationMenuHandle, kHICommandAbout);
-        		}
-        		return OS.noErr;
-        	}
-        }
-        return OS.eventNotHandledErr;
-       
-    }
-    
-    private int runCommand(String commandId) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return OS.eventNotHandledErr;
-		
-		IWorkbenchWindow activeWorkbenchWindow = workbench
-				.getActiveWorkbenchWindow();
-		if (activeWorkbenchWindow == null)
-			return OS.eventNotHandledErr;
-		
-		IHandlerService commandService = (IHandlerService) activeWorkbenchWindow
-				.getService(IHandlerService.class);
-
-		if (commandService != null) {
-			try {
-				commandService.executeCommand(commandId, null);
-				return OS.noErr;
-			} catch (ExecutionException e) {
-			} catch (NotDefinedException e) {
-			} catch (NotEnabledException e) {
-			} catch (NotHandledException e) {
-			}
-		}
-		return OS.eventNotHandledErr;
-	}
-
-    /**
-	 * Find the action with the given ID by recursivly crawling the provided
-	 * menu manager. If the action cannot be found <code>null</code> is
-	 * returned.
-	 * 
-	 * @param actionId
-	 *            the id to search for
-	 * @param manager
-	 *            the manager to search
-	 * @return the action or <code>null</code>
-	 */
-	private IAction findAction(String actionId, IMenuManager manager) {
-		IContributionItem[] items = manager.getItems();
-		for (int i = 0; i < items.length; i++) {
-			IContributionItem item = items[i];
-			if (item instanceof ActionContributionItem) {
-				ActionContributionItem aci = (ActionContributionItem) item;
-				String id = aci.getId();
-				if (id != null && id.equals(actionId))
-					return aci.getAction();
-			} else if (item instanceof IMenuManager) {
-				IAction found = findAction(actionId, (IMenuManager) item);
-				if (found != null)
-					return found;
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties b/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties
deleted file mode 100755
index 6d5c975..0000000
--- a/bundles/org.eclipse.ui.carbon/src/org/eclipse/ui/internal/carbon/Messages.properties
+++ /dev/null
@@ -1,15 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-AboutAction.format=About {0}
-AboutAction.name=About
-HideAction.format=Hide {0}
-QuitAction.format=Quit {0}
diff --git a/bundles/org.eclipse.ui.cocoa/.classpath b/bundles/org.eclipse.ui.cocoa/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.ui.cocoa/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.cocoa/.project b/bundles/org.eclipse.ui.cocoa/.project
deleted file mode 100644
index cbd97f8..0000000
--- a/bundles/org.eclipse.ui.cocoa/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.cocoa</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/bundles/org.eclipse.ui.cocoa/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.cocoa/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index baba5a5..0000000
--- a/bundles/org.eclipse.ui.cocoa/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Apr 01 16:17:02 EDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.ui.cocoa/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.cocoa/META-INF/MANIFEST.MF
deleted file mode 100644
index 18bbf9a..0000000
--- a/bundles/org.eclipse.ui.cocoa/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.ui.cocoa;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui;bundle-version="[3.5.0,4.0.0)"
-Bundle-Localization: fragment-cocoa
-Eclipse-PlatformFilter: (osgi.ws=cocoa)
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Export-Package: org.eclipse.ui.internal.cocoa
diff --git a/bundles/org.eclipse.ui.cocoa/about.html b/bundles/org.eclipse.ui.cocoa/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.cocoa/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.cocoa/build.properties b/bundles/org.eclipse.ui.cocoa/build.properties
deleted file mode 100644
index 8edfc17..0000000
--- a/bundles/org.eclipse.ui.cocoa/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Adobe Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Adobe Systems, Inc. - initial API and implementation
-#     IBM Corporation - cleanup
-###############################################################################
-source.. = src/
-bin.includes = fragment.xml,\
-               fragment-cocoa.properties,\
-               META-INF/,\
-               .,\
-               about.html
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.cocoa/fragment-cocoa.properties b/bundles/org.eclipse.ui.cocoa/fragment-cocoa.properties
deleted file mode 100644
index 62d5ce9..0000000
--- a/bundles/org.eclipse.ui.cocoa/fragment-cocoa.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Adobe Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Adobe Systems, Inc. - initial API and implementation
-#     IBM Corporation - cleanup
-###############################################################################
-
-providerName=Eclipse.org
-fragmentName=Eclipse UI MacOS X Enhancements
diff --git a/bundles/org.eclipse.ui.cocoa/fragment.xml b/bundles/org.eclipse.ui.cocoa/fragment.xml
deleted file mode 100644
index 69babfe..0000000
--- a/bundles/org.eclipse.ui.cocoa/fragment.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<fragment>
-
-   <extension
-         point="org.eclipse.ui.startup">
-      <startup
-            class="org.eclipse.ui.internal.cocoa.CocoaUIEnhancer">
-      </startup>
-   </extension>
-   
-</fragment>
diff --git a/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/CocoaUIEnhancer.java b/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/CocoaUIEnhancer.java
deleted file mode 100644
index b46e67a..0000000
--- a/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/CocoaUIEnhancer.java
+++ /dev/null
@@ -1,636 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Adobe Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Adobe Systems, Inc. - initial API and implementation
- *     IBM Corporation - cleanup
- *******************************************************************************/
-package org.eclipse.ui.internal.cocoa;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.IProduct;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.internal.C;
-import org.eclipse.swt.internal.Callback;
-import org.eclipse.swt.internal.cocoa.NSApplication;
-import org.eclipse.swt.internal.cocoa.NSButton;
-import org.eclipse.swt.internal.cocoa.NSControl;
-import org.eclipse.swt.internal.cocoa.NSMenu;
-import org.eclipse.swt.internal.cocoa.NSMenuItem;
-import org.eclipse.swt.internal.cocoa.NSString;
-import org.eclipse.swt.internal.cocoa.NSToolbar;
-import org.eclipse.swt.internal.cocoa.NSWindow;
-import org.eclipse.swt.internal.cocoa.OS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.misc.StatusUtil;
-import org.eclipse.ui.statushandlers.StatusManager;
-
-/**
- * The CocoaUIEnhancer provides the standard "About" and "Preference" menu items
- * and links them to the corresponding workbench commands. 
- * This must be done in a MacOS X fragment because SWT doesn't provide an abstraction
- * for the (MacOS X only) application menu and we have to use MacOS specific natives.
- * The fragment is for the org.eclipse.ui plug-in because we need access to the
- * Workbench "About" and "Preference" actions.
- * 
- * @noreference this class is not intended to be referenced by any client.
- * @since 1.0
- */
-public class CocoaUIEnhancer implements IStartup {
-
-	private static final int kAboutMenuItem = 0;
-	private static final int kPreferencesMenuItem = 2;
-	private static final int kServicesMenuItem = 4;
-	private static final int kHideApplicationMenuItem = 6;
-	private static final int kQuitMenuItem = 10;
-	
-	static long sel_toolbarButtonClicked_;
-	static long sel_preferencesMenuItemSelected_;
-	static long sel_aboutMenuItemSelected_;
-
-	private static final long NSWindowToolbarButton = 3;
-	
-	/* This callback is not freed */
-	static Callback proc3Args;
-	static final byte[] SWT_OBJECT = {'S', 'W', 'T', '_', 'O', 'B', 'J', 'E', 'C', 'T', '\0'};
-
-	private void init() throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, NoSuchFieldException {
-		// TODO: These should either move out of Display or be accessible to this class.
-		byte[] types = {'*','\0'};
-		int size = C.PTR_SIZEOF, align = C.PTR_SIZEOF == 4 ? 2 : 3;
-
-		Class clazz = CocoaUIEnhancer.class;
-
-		proc3Args = new Callback(clazz, "actionProc", 3); //$NON-NLS-1$
-		//call getAddress
-		Method getAddress = Callback.class.getMethod("getAddress", new Class[0]);
-		Object object = getAddress.invoke(proc3Args, null);
-		long proc3 = convertToLong(object);
-		if (proc3 == 0) SWT.error (SWT.ERROR_NO_MORE_CALLBACKS);
-
-		//call objc_allocateClassPair
-		Field field = OS.class.getField("class_NSObject");
-		Object fieldObj = field.get(OS.class);
-		object = invokeMethod(OS.class, "objc_allocateClassPair", new Object[] { fieldObj, "SWTCocoaEnhancerDelegate", wrapPointer(0) });
-		long cls = convertToLong(object);
-		
-		invokeMethod(OS.class, "class_addIvar", new Object[] {
-				wrapPointer(cls), SWT_OBJECT, wrapPointer(size),
-				new Byte((byte) align), types });
-
-		// Add the action callback
-		invokeMethod(
-				OS.class,
-				"class_addMethod", new Object[] { wrapPointer(cls), wrapPointer(sel_toolbarButtonClicked_), wrapPointer(proc3), "@:@" }); //$NON-NLS-1$
-		invokeMethod(OS.class, "class_addMethod", new Object[] {
-				wrapPointer(cls),
-				wrapPointer(sel_preferencesMenuItemSelected_),
-				wrapPointer(proc3), "@:@" }); //$NON-NLS-1$
-		invokeMethod(
-				OS.class,
-				"class_addMethod", new Object[] { wrapPointer(cls), wrapPointer(sel_aboutMenuItemSelected_), wrapPointer(proc3), "@:@" }); //$NON-NLS-1$
-
-		invokeMethod(OS.class, "objc_registerClassPair",
-				new Object[] { wrapPointer(cls) });			
-	}	
-
-	SWTCocoaEnhancerDelegate delegate;
-	private long delegateJniRef;
-
-	/**
-	 * Class that is able to intercept and handle OS events from the toolbar and menu.
-	 * 
-	 * @since 3.1
-	 */
-
-    private static final String RESOURCE_BUNDLE = CocoaUIEnhancer.class.getPackage().getName() + ".Messages"; //$NON-NLS-1$
-	
-    private String fAboutActionName;
-    private String fQuitActionName;
-    private String fHideActionName;
-
-    /**
-     * Default constructor
-     */
-    public CocoaUIEnhancer() {
-        IProduct product = Platform.getProduct();
-        String productName = null;
-        if (product != null)
-            productName = product.getName();
-        
-		ResourceBundle resourceBundle = ResourceBundle.getBundle(RESOURCE_BUNDLE);
-		try {
-			if (productName != null) {
-				String format = resourceBundle.getString("AboutAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fAboutActionName= MessageFormat.format(format, new Object[] { productName } );
-			}
-			if (fAboutActionName == null)
-				fAboutActionName = resourceBundle.getString("AboutAction.name"); //$NON-NLS-1$
-		} catch (MissingResourceException e) {
-		}
-		
-		if (fAboutActionName == null)
-			fAboutActionName = "About"; //$NON-NLS-1$
-		
-		if (productName != null) {	
-			try {
-				// prime the format Hide <app name>
-				String format = resourceBundle.getString("HideAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fHideActionName = MessageFormat.format(format,
-							new Object[] { productName });
-
-			} catch (MissingResourceException e) {
-			}
-
-			try {
-				// prime the format Quit <app name>
-				String format = resourceBundle.getString("QuitAction.format"); //$NON-NLS-1$
-				if (format != null)
-					fQuitActionName = MessageFormat.format(format,
-							new Object[] { productName });
-
-			} catch (MissingResourceException e) {
-			}
-		}
-		
-		try {
-			if (sel_toolbarButtonClicked_ == 0) {
-				sel_toolbarButtonClicked_ = registerName("toolbarButtonClicked:"); //$NON-NLS-1$
-				sel_preferencesMenuItemSelected_ = registerName("preferencesMenuItemSelected:"); //$NON-NLS-1$
-				sel_aboutMenuItemSelected_ = registerName("aboutMenuItemSelected:"); //$NON-NLS-1$
-				init();
-			}
-		} catch (Exception e) {
-			// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-			// not expected to happen at all.
-			log(e);
-		}
-    }
-
-    
-    private long registerName(String name) throws IllegalArgumentException, SecurityException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
-    	Class clazz = OS.class;
-    	Object object = invokeMethod(clazz, "sel_registerName", new Object[] {name});
-    	return convertToLong(object);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IStartup#earlyStartup()
-     */
-    public void earlyStartup() {
-        final Display display = Display.getDefault();
-        display.syncExec(new Runnable() {
-            public void run() {
-            	try {
-            		delegate = new SWTCocoaEnhancerDelegate();
-            		delegate.alloc().init();
-            		//call OS.NewGlobalRef
-					Method method = OS.class.getMethod("NewGlobalRef", new Class[] { Object.class });
-					Object object = method.invoke(OS.class, new Object[] {CocoaUIEnhancer.this});
-					delegateJniRef = convertToLong(object);
-            	} catch (Exception e) {
-					// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-					// not expected to happen at all.
-					log(e);
-				}
-        		if (delegateJniRef == 0) SWT.error(SWT.ERROR_NO_HANDLES);
-				try {
-					Field idField = SWTCocoaEnhancerDelegate.class.getField("id");
-					Object idValue = idField.get(delegate);
-					invokeMethod(OS.class, "object_setInstanceVariable",
-							new Object[] { idValue,
-									SWT_OBJECT, wrapPointer(delegateJniRef) });
-
-					hookApplicationMenu();
-					hookWorkbenchListener();
-
-					// schedule disposal of callback object
-					display.disposeExec(new Runnable() {
-						public void run() {
-							if (delegateJniRef != 0) {
-								try {
-									invokeMethod(OS.class, "DeleteGlobalRef", new Object[] {wrapPointer(delegateJniRef)});
-								} catch (Exception e) {
-									// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-									// not expected to happen at all.
-									log(e);
-								}
-							}
-							delegateJniRef = 0;
-
-							if (delegate != null)
-								delegate.release();
-							delegate = null;
-
-						}
-					});
-
-					// modify all shells opened on startup
-					IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
-							.getWorkbenchWindows();
-					for (int i = 0; i < windows.length; i++) {
-						modifyWindowShell(windows[i]);
-					}
-				} catch (Exception e) {
-					// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-					// not expected to happen at all.
-					log(e);
-				}
-			}
-
-        });
-    }
-
-	void log(Exception e) {
-		StatusUtil.handleStatus(e, StatusManager.LOG);
-	}
-
-	/**
-	 * Hooks a listener that tweaks newly opened workbench window shells with
-	 * the proper OS flags.
-	 * 
-	 * @since 3.2
-	 */
-    protected void hookWorkbenchListener() {
-		PlatformUI.getWorkbench().addWindowListener(new IWindowListener() {
-
-			public void windowActivated(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowDeactivated(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowClosed(IWorkbenchWindow window) {
-				// no-op
-			}
-
-			public void windowOpened(IWorkbenchWindow window) {
-				modifyWindowShell(window);
-			}});
-	}
-
-    /**
-	 * Modify the given workbench window shell bits to show the tool bar toggle
-	 * button.
-	 * 
-	 * @param window
-	 *            the window to modify
-	 * @since 3.2
-	 */
-	protected void modifyWindowShell(IWorkbenchWindow window) {
-		// only add the button when either the cool bar or perspective bar
-		// is initially visible. This is so that RCP applications can choose to use
-		// this fragment without fear that their explicitly invisible bars
-		// can't be shown.
-		boolean coolBarInitiallyVsible = ((WorkbenchWindow) window)
-				.getCoolBarVisible();
-		boolean perspectiveBarInitiallyVsible = ((WorkbenchWindow) window)
-				.getPerspectiveBarVisible();
-
-		if (coolBarInitiallyVsible || perspectiveBarInitiallyVsible) {
-			// Add an empty, hidden tool bar to the window.  Without this the
-			// tool bar button at the top right of the window will not appear
-			// even when setShowsToolbarButton(true) is called.
-			NSToolbar dummyBar = new NSToolbar();
-			dummyBar.alloc();
-			dummyBar.initWithIdentifier(NSString.stringWith("SWTToolbar")); //$NON-NLS-1$
-			dummyBar.setVisible(false);
-			
-			Shell shell = window.getShell();
-			NSWindow nsWindow = shell.view.window();
-			nsWindow.setToolbar(dummyBar);
-			dummyBar.release();
-			nsWindow.setShowsToolbarButton(true);
-			
-			// Override the target and action of the toolbar button so we can control it.
-			try {
-				Object fieldValue = wrapPointer(NSWindowToolbarButton);
-				NSButton toolbarButton = (NSButton) invokeMethod(NSWindow.class, nsWindow, "standardWindowButton", new Object[] {fieldValue});
-				if (toolbarButton != null) {
-					toolbarButton.setTarget(delegate);
-					invokeMethod(NSControl.class, toolbarButton, "setAction",
-							new Object[] { wrapPointer(sel_toolbarButtonClicked_) });
-				}
-			} catch (Exception e) {
-				// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-				// not expected to happen at all.
-				log(e);
-			}
-		}
-	}
-	
-    private void hookApplicationMenu() {
-    	try {
-    		// create About Eclipse menu command
-    		NSMenu mainMenu = NSApplication.sharedApplication().mainMenu();
-    		NSMenuItem mainMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, mainMenu, "itemAtIndex", new Object[] {wrapPointer(0)});
-    		NSMenu appMenu = mainMenuItem.submenu();
-
-    		// add the about action
-    		NSMenuItem aboutMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, appMenu, "itemAtIndex", new Object[] {wrapPointer(kAboutMenuItem)});
-    		aboutMenuItem.setTitle(NSString.stringWith(fAboutActionName));
-
-    		// rename the hide action if we have an override string
-    		if (fHideActionName != null) {
-    			NSMenuItem hideMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, appMenu, "itemAtIndex", new Object[] {wrapPointer(kHideApplicationMenuItem)});
-    			hideMenuItem.setTitle(NSString.stringWith(fHideActionName));
-    		}
-
-    		// rename the quit action if we have an override string
-    		if (fQuitActionName != null) {
-    			NSMenuItem quitMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, appMenu, "itemAtIndex", new Object[] {wrapPointer(kQuitMenuItem)});
-    			quitMenuItem.setTitle(NSString.stringWith(fQuitActionName));
-    		}
-
-    		// enable pref menu
-    		NSMenuItem prefMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, appMenu, "itemAtIndex", new Object[] {wrapPointer(kPreferencesMenuItem)});
-    		prefMenuItem.setEnabled(true);
-
-    		// disable services menu
-    		NSMenuItem servicesMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, appMenu, "itemAtIndex", new Object[] {wrapPointer(kServicesMenuItem)});
-    		servicesMenuItem.setEnabled(false);
-
-    		// Register as a target on the prefs and quit items.
-    		prefMenuItem.setTarget(delegate);
-    		invokeMethod(NSMenuItem.class, prefMenuItem, "setAction", new Object[] {wrapPointer(sel_preferencesMenuItemSelected_)});
-    		aboutMenuItem.setTarget(delegate);
-    		invokeMethod(NSMenuItem.class, aboutMenuItem, "setAction", new Object[] {wrapPointer(sel_aboutMenuItemSelected_)});
-    	} catch (Exception e) {
-			// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-			// not expected to happen at all.
-			log(e);
-		}
-    }
-
-	/**
-     * Locate an action with the given id in the current menu bar and run it.
-     */
-    private void runAction(String actionId) {
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        if (window != null) {
-        	IMenuManager manager = ((WorkbenchWindow)window).getActionBars().getMenuManager();
-        	IAction action = findAction(actionId, manager);
-        	if (action != null && action.isEnabled()) {
-        		try {
-        			NSMenu mainMenu = NSApplication.sharedApplication().mainMenu();
-        			NSMenuItem mainMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, mainMenu, "itemAtIndex", new Object[] {wrapPointer(0)});
-        			NSMenu appMenu = mainMenuItem.submenu();
-        			NSMenuItem aboutMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, appMenu, "itemAtIndex", new Object[] {wrapPointer(kAboutMenuItem)});
-        			NSMenuItem prefMenuItem = (NSMenuItem) invokeMethod(NSMenu.class, appMenu, "itemAtIndex", new Object[] {wrapPointer(kPreferencesMenuItem)});
-        			try {
-        				prefMenuItem.setEnabled(false);
-        				aboutMenuItem.setEnabled(false);
-        				action.run();
-        			}
-        			finally {
-        				prefMenuItem.setEnabled(true);
-        				aboutMenuItem.setEnabled(true);
-        			}
-        		} catch (Exception e) {
-					// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-					// not expected to happen at all.
-					log(e);
-				}
-        	}
-        }
-       
-    }
-    
-    private void runCommand(String commandId) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		
-		IWorkbenchWindow activeWorkbenchWindow = workbench
-				.getActiveWorkbenchWindow();
-		if (activeWorkbenchWindow == null)
-			return;
-		
-		IHandlerService commandService = (IHandlerService) activeWorkbenchWindow
-				.getService(IHandlerService.class);
-
-		if (commandService != null) {
-			try {
-				commandService.executeCommand(commandId, null);
-			} catch (ExecutionException e) {
-			} catch (NotDefinedException e) {
-			} catch (NotEnabledException e) {
-			} catch (NotHandledException e) {
-			}
-		}
-	}
-
-    /**
-	 * Find the action with the given ID by recursively crawling the provided
-	 * menu manager. If the action cannot be found <code>null</code> is
-	 * returned.
-	 * 
-	 * @param actionId
-	 *            the id to search for
-	 * @param manager
-	 *            the manager to search
-	 * @return the action or <code>null</code>
-	 */
-	private IAction findAction(String actionId, IMenuManager manager) {
-		IContributionItem[] items = manager.getItems();
-		for (int i = 0; i < items.length; i++) {
-			IContributionItem item = items[i];
-			if (item instanceof ActionContributionItem) {
-				ActionContributionItem aci = (ActionContributionItem) item;
-				String id = aci.getId();
-				if (id != null && id.equals(actionId))
-					return aci.getAction();
-			} else if (item instanceof IMenuManager) {
-				IAction found = findAction(actionId, (IMenuManager) item);
-				if (found != null)
-					return found;
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * Action implementations for the toolbar button and preferences and about menu items
-	 */
-	void toolbarButtonClicked (NSControl source) {
-		try {
-			NSWindow window = source.window();
-			Field idField = NSWindow.class.getField("id");
-			Object idValue = idField.get(window);
-			
-			Display display = Display.getCurrent();
-			Widget widget = (Widget) invokeMethod(Display.class, display, "findWidget", new Object[] { idValue });
-
-			if (!(widget instanceof Shell)) {
-				return;
-			}
-			Shell shell = (Shell) widget;
-			IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
-			.getWorkbenchWindows();
-			for (int i = 0; i < windows.length; i++) {
-				if (windows[i].getShell() == shell) {
-					runCommand("org.eclipse.ui.ToggleCoolbarAction"); //$NON-NLS-1$
-				}
-			}
-		} catch (Exception e) {
-			// theoretically, one of SecurityException,Illegal*Exception,InvocationTargetException,NoSuch*Exception
-			// not expected to happen at all.
-			log(e);
-		}
-	}
-	
-	void preferencesMenuItemSelected() {
-		runAction("preferences"); //$NON-NLS-1$
-	}
-
-	void aboutMenuItemSelected() {
-		runAction("about"); //$NON-NLS-1$
-	}
-
-	static int actionProc(int id, int sel, int arg0) throws Exception {
-		return (int) actionProc((long)id, (long)sel, (long)arg0);
-	}
-
-	static long actionProc(long id, long sel, long arg0) throws Exception {
-		long [] jniRef = OS_object_getInstanceVariable(id, SWT_OBJECT);
-		if (jniRef[0] == 0) return 0;
-		
-		CocoaUIEnhancer delegate = (CocoaUIEnhancer) invokeMethod(OS.class,
-				"JNIGetObject", new Object[] { wrapPointer(jniRef[0]) });
-		
-		if (sel == sel_toolbarButtonClicked_) {
-			NSControl source = new_NSControl(arg0);
-			delegate.toolbarButtonClicked(source);
-		} else if (sel == sel_preferencesMenuItemSelected_) {
-			delegate.preferencesMenuItemSelected();
-		} else if (sel == sel_aboutMenuItemSelected_) {
-			delegate.aboutMenuItemSelected();
-		}
-		
-		return 0;
-	}
-	
-	
-
-	// The following methods reflectively call corresponding methods in the OS
-	// class, using ints or longs as required based on platform.
-
-	private static NSControl new_NSControl(long arg0)
-			throws NoSuchMethodException, InstantiationException,
-			IllegalArgumentException, IllegalAccessException,
-			InvocationTargetException {
-		Class clazz = NSControl.class;
-		Class PTR_CLASS =  C.PTR_SIZEOF == 8 ? long.class : int.class;
-		Constructor constructor = clazz
-				.getConstructor(new Class[] { PTR_CLASS });
-		return (NSControl) constructor.newInstance(new Object[] { wrapPointer(arg0) });
-	}
-	
-	/**
-	 * Specialized method.  It's behavior is isolated and different enough from the usual invocation that custom code is warranted.
-	 */
-	private static long[] OS_object_getInstanceVariable(long delegateId,
-			byte[] name) throws IllegalArgumentException,
-			IllegalAccessException, InvocationTargetException,
-			SecurityException, NoSuchMethodException {
-		Class clazz = OS.class;
-		Method method = null;
-		Class PTR_CLASS =  C.PTR_SIZEOF == 8 ? long.class : int.class;
-		if (PTR_CLASS == long.class) {
-			method = clazz.getMethod("object_getInstanceVariable", new Class[] {
-					long.class, byte[].class, long[].class });
-			long[] resultPtr = new long[1];
-			method.invoke(null, new Object[] { new Long(delegateId), name,
-					resultPtr });
-			return resultPtr;
-		} 
-		else {
-			method = clazz.getMethod("object_getInstanceVariable", new Class[] {
-					int.class, byte[].class, int[].class });
-			int[] resultPtr = new int[1];
-			method.invoke(null, new Object[] { new Integer((int) delegateId),
-					name, resultPtr });
-			return new long[] { resultPtr[0] };
-		}
-	}
-	
-	private long convertToLong(Object object) {
-		if (object instanceof Integer) {
-			Integer i = (Integer) object;
-			return i.longValue();
-		}
-		if (object instanceof Long) {
-			Long l = (Long) object;
-			return l.longValue();
-		}
-		return 0;
-	}
-	
-	private static Object invokeMethod(Class clazz, String methodName,
-			Object[] args) throws IllegalArgumentException,
-			IllegalAccessException, InvocationTargetException,
-			SecurityException, NoSuchMethodException {
-		return invokeMethod(clazz, null, methodName, args);
-	}
-
-	private static Object invokeMethod(Class clazz, Object target,
-			String methodName, Object[] args) throws IllegalArgumentException,
-			IllegalAccessException, InvocationTargetException,
-			SecurityException, NoSuchMethodException {
-		Class[] signature = new Class[args.length];
-		for (int i = 0; i < args.length; i++) {
-			Class thisClass = args[i].getClass();
-			if (thisClass == Integer.class)
-				signature[i] = int.class;
-			else if (thisClass == Long.class)
-				signature[i] = long.class;
-			else if (thisClass == Byte.class)
-				signature[i] = byte.class;
-			else
-				signature[i] = thisClass;
-		}
-		Method method = clazz.getMethod(methodName, signature);
-		return method.invoke(target, args);
-	}
-	
-	private static Object wrapPointer(long value) {
-		Class PTR_CLASS =  C.PTR_SIZEOF == 8 ? long.class : int.class;
-		if (PTR_CLASS == long.class)
-			return new Long(value);
-		else 
-			return new Integer((int)value);
-	}
-}
diff --git a/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/Messages.properties b/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/Messages.properties
deleted file mode 100644
index eaf6446..0000000
--- a/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/Messages.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 Adobe Systems, Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     Adobe Systems, Inc. - initial API and implementation
-#     IBM Corporation - cleanup
-###############################################################################
-
-AboutAction.format=About {0}
-AboutAction.name=About
-HideAction.format=Hide {0}
-QuitAction.format=Quit {0}
diff --git a/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/SWTCocoaEnhancerDelegate.java b/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/SWTCocoaEnhancerDelegate.java
deleted file mode 100644
index f20a674..0000000
--- a/bundles/org.eclipse.ui.cocoa/src/org/eclipse/ui/internal/cocoa/SWTCocoaEnhancerDelegate.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Adobe Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Adobe Systems, Inc. - initial API and implementation
- *     IBM Corporation - cleanup
- *******************************************************************************/
-package org.eclipse.ui.internal.cocoa;
-
-import org.eclipse.swt.internal.cocoa.*;
-
-public class SWTCocoaEnhancerDelegate extends NSObject {
-
-	public SWTCocoaEnhancerDelegate() {
-		super();
-	}
-		
-	public SWTCocoaEnhancerDelegate(int id) {
-		super(id);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.forms/.classpath b/bundles/org.eclipse.ui.forms/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.forms/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.forms/.cvsignore b/bundles/org.eclipse.ui.forms/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.ui.forms/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/.options b/bundles/org.eclipse.ui.forms/.options
deleted file mode 100644
index e6dbf14..0000000
--- a/bundles/org.eclipse.ui.forms/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-org.eclipse.ui.forms/debug=true
-org.eclipse.ui.forms/debug/text=true
-org.eclipse.ui.forms/debug/focus=true
-org.eclipse.ui.forms/debug/textsize=true
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/.project b/bundles/org.eclipse.ui.forms/.project
deleted file mode 100644
index 92c02b3..0000000
--- a/bundles/org.eclipse.ui.forms/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.forms</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.forms/.settings/.api_filters b/bundles/org.eclipse.ui.forms/.settings/.api_filters
deleted file mode 100644
index 7da150a..0000000
--- a/bundles/org.eclipse.ui.forms/.settings/.api_filters
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.ui.forms" version="2">
-    <resource path="src/org/eclipse/ui/forms/editor/FormEditor.java" type="org.eclipse.ui.forms.editor.FormEditor$FormEditorSelectionProvider">
-        <filter id="571473929">
-            <message_arguments>
-                <message_argument value="MultiPageSelectionProvider"/>
-                <message_argument value="FormEditorSelectionProvider"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/forms/editor/FormEditor.java" type="org.eclipse.ui.forms.editor.FormEditor">
-        <filter id="642777099">
-            <message_arguments>
-                <message_argument value="MultiPageEditorPart"/>
-                <message_argument value="FormEditor"/>
-                <message_argument value="getActiveEditor()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 08ca140..0000000
--- a/bundles/org.eclipse.ui.forms/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Mon Feb 05 16:36:24 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=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=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-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.invalidJavadoc=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
-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.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-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=error
-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=error
-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=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF
deleted file mode 100644
index dbf3687..0000000
--- a/bundles/org.eclipse.ui.forms/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %name
-Bundle-SymbolicName: org.eclipse.ui.forms
-Bundle-Version: 3.4.100.qualifier
-Bundle-Vendor: %provider-name
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.forms,
- org.eclipse.ui.forms.editor,
- org.eclipse.ui.forms.events,
- org.eclipse.ui.forms.widgets,
- org.eclipse.ui.internal.forms;x-internal:=true,
- org.eclipse.ui.internal.forms.widgets;x-friends:="org.eclipse.ui.tests.forms"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.jface;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.5.0,4.0.0)";resolution:=optional
-Eclipse-LazyStart: true
-Import-Package: com.ibm.icu.text,
- javax.xml.parsers,
- org.w3c.dom,
- org.xml.sax
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
-Bundle-Activator: org.eclipse.ui.internal.forms.FormsPlugin
diff --git a/bundles/org.eclipse.ui.forms/about.html b/bundles/org.eclipse.ui.forms/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.forms/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/build.properties b/bundles/org.eclipse.ui.forms/build.properties
deleted file mode 100644
index b5a0633..0000000
--- a/bundles/org.eclipse.ui.forms/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-#  Copyright (c) 2003, 2007 IBM Corporation and others.
-#  All rights reserved. This program and the accompanying materials
-#  are made available under the terms of the Eclipse Public License v1.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,\
-               .,\
-               about.html,\
-               META-INF/,\
-               icons/
-source.. = src/
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/1.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/1.png
deleted file mode 100644
index 2147f79..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/1.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/2.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/2.png
deleted file mode 100644
index ac886be..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/2.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/3.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/3.png
deleted file mode 100644
index 0d8986b..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/3.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/4.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/4.png
deleted file mode 100644
index 9d64d75..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/4.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/5.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/5.png
deleted file mode 100644
index 12343e0..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/5.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/6.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/6.png
deleted file mode 100644
index 4d9f686..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/6.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/7.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/7.png
deleted file mode 100644
index 7648d33..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/7.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/icons/progress/ani/8.png b/bundles/org.eclipse.ui.forms/icons/progress/ani/8.png
deleted file mode 100644
index d8eabd7..0000000
--- a/bundles/org.eclipse.ui.forms/icons/progress/ani/8.png
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.forms/plugin.properties b/bundles/org.eclipse.ui.forms/plugin.properties
deleted file mode 100644
index 3bdea13..0000000
--- a/bundles/org.eclipse.ui.forms/plugin.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-#
-# plugin.xml properties
-#
-
-name = Eclipse Forms
-provider-name = Eclipse.org
-
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java
deleted file mode 100644
index 86e797a..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/AbstractFormPart.java
+++ /dev/null
@@ -1,118 +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.forms;
-/**
- * AbstractFormPart implements IFormPart interface and can be used as a
- * convenient base class for concrete form parts. If a method contains
- * code that must be called, look for instructions to call 'super'
- * when overriding.
- * 
- * @see org.eclipse.ui.forms.widgets.Section
- * @since 3.0
- */
-public abstract class AbstractFormPart implements IFormPart {
-	private IManagedForm managedForm;
-	private boolean dirty = false;
-	private boolean stale = true;
-	/**
-	 * @see org.eclipse.ui.forms.IFormPart#initialize(org.eclipse.ui.forms.IManagedForm)
-	 */
-	public void initialize(IManagedForm form) {
-		this.managedForm = form;
-	}
-	/**
-	 * Returns the form that manages this part.
-	 * 
-	 * @return the managed form
-	 */
-	public IManagedForm getManagedForm() {
-		return managedForm;
-	}
-	/**
-	 * Disposes the part. Subclasses should override to release any system
-	 * resources.
-	 */
-	public void dispose() {
-	}
-	/**
-	 * Commits the part. Subclasses should call 'super' when overriding.
-	 * 
-	 * @param onSave
-	 *            <code>true</code> if the request to commit has arrived as a
-	 *            result of the 'save' action.
-	 */
-	public void commit(boolean onSave) {
-		dirty = false;
-	}
-	/**
-	 * Sets the overall form input. Subclases may elect to override the method
-	 * and adjust according to the form input.
-	 * 
-	 * @param input
-	 *            the form input object
-	 * @return <code>false</code>
-	 */
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-	/**
-	 * Instructs the part to grab keyboard focus.
-	 */
-	public void setFocus() {
-	}
-	/**
-	 * Refreshes the section after becoming stale (falling behind data in the
-	 * model). Subclasses must call 'super' when overriding this method.
-	 */
-	public void refresh() {
-		stale = false;
-		// since we have refreshed, any changes we had in the
-		// part are gone and we are not dirty
-		dirty = false;
-	}
-	/**
-	 * Marks the part dirty. Subclasses should call this method as a result of
-	 * user interaction with the widgets in the section.
-	 */
-	public void markDirty() {
-		dirty = true;
-		managedForm.dirtyStateChanged();
-	}
-	/**
-	 * Tests whether the part is dirty i.e. its widgets have state that is
-	 * newer than the data in the model.
-	 * 
-	 * @return <code>true</code> if the part is dirty, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isDirty() {
-		return dirty;
-	}
-	/**
-	 * Tests whether the part is stale i.e. its widgets have state that is
-	 * older than the data in the model.
-	 * 
-	 * @return <code>true</code> if the part is stale, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isStale() {
-		return stale;
-	}
-	/**
-	 * Marks the part stale. Subclasses should call this method as a result of
-	 * model notification that indicates that the content of the section is no
-	 * longer in sync with the model.
-	 */
-	public void markStale() {
-		stale = true;
-		managedForm.staleStateChanged();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java
deleted file mode 100644
index 573f218..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/DetailsPart.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.widgets.ScrolledPageBook;
-/**
- * This managed form part handles the 'details' portion of the 
- * 'master/details' block. It has a page book that manages pages
- * of details registered for the current selection.
- * <p>By default, details part accepts any number of pages.
- * If dynamic page provider is registered, this number may
- * be excessive. To avoid running out of steam (by creating 
- * a large number of pages with widgets on each), maximum
- * number of pages can be set to some reasonable value (e.g. 10).
- * When this number is reached, old pages (those created first)
- * will be removed and disposed as new ones are added. If
- * the disposed pages are needed again after that, they
- * will be created again.
- * 
- * @since 3.0
- */
-public final class DetailsPart implements IFormPart, IPartSelectionListener {
-	private IManagedForm managedForm;
-	private ScrolledPageBook pageBook;
-	private IFormPart masterPart;
-	private IStructuredSelection currentSelection;
-	private Hashtable pages;
-	private IDetailsPageProvider pageProvider;
-	private int pageLimit=Integer.MAX_VALUE;
-	
-	private static class PageBag {
-		private static int counter;
-		private int ticket;
-		private IDetailsPage page;
-		private boolean fixed;
-		
-		public PageBag(IDetailsPage page, boolean fixed) {
-			this.page= page;
-			this.fixed = fixed;
-			this.ticket = ++counter;
-		}
-		public int getTicket() {
-			return ticket;
-		}
-		public IDetailsPage getPage() {
-			return page;
-		}
-		public void dispose() {
-			page.dispose();
-			page=null;
-		}
-		public boolean isFixed() {
-			return fixed;
-		}
-		public static int getCurrentTicket() {
-			return counter;
-		}
-	}
-/**
- * Creates a details part by wrapping the provided page book.
- * @param mform the parent form
- * @param pageBook the page book to wrap
- */	
-	public DetailsPart(IManagedForm mform, ScrolledPageBook pageBook) {
-		this.pageBook = pageBook;
-		pages = new Hashtable();
-		initialize(mform);
-	}
-/**
- * Creates a new details part in the provided form by creating 
- * the page book.
- * @param mform the parent form
- * @param parent the composite to create the page book in
- * @param style the style for the page book
- */
-	public DetailsPart(IManagedForm mform, Composite parent, int style) {
-		this(mform, mform.getToolkit().createPageBook(parent, style|SWT.V_SCROLL|SWT.H_SCROLL));
-	}
-/**
- * Registers the details page to be used for all the objects of
- * the provided object class.
- * @param objectClass an object of type 'java.lang.Class' to be used 
- * as a key for the provided page
- * @param page the page to show for objects of the provided object class
- */
-	public void registerPage(Object objectClass, IDetailsPage page) {
-		registerPage(objectClass, page, true);
-	}
-	
-	private void registerPage(Object objectClass, IDetailsPage page, boolean fixed) {
-		pages.put(objectClass, new PageBag(page, fixed));
-		page.initialize(managedForm);
-	}
-/**
- * Sets the dynamic page provider. The dynamic provider can return
- * different pages for objects of the same class based on their state.
- * @param provider the provider to use
- */
-	public void setPageProvider(IDetailsPageProvider provider) {
-		this.pageProvider = provider;
-	}
-/**
- * Commits the part by committing the current page.
- * @param onSave <code>true</code> if commit is requested as a result
- * of the 'save' action, <code>false</code> otherwise.
- */
-	public void commit(boolean onSave) {
-		IDetailsPage page = getCurrentPage();
-		if (page != null)
-			page.commit(onSave);
-	}
-/**
- * Returns the current page visible in the part.
- * @return the current page
- */
-	public IDetailsPage getCurrentPage() {
-		Control control = pageBook.getCurrentPage();
-		if (control != null) {
-			Object data = control.getData();
-			if (data instanceof IDetailsPage)
-				return (IDetailsPage) data;
-		}
-		return null;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IFormPart#dispose()
-	 */
-	public void dispose() {
-		for (Enumeration enm = pages.elements(); enm.hasMoreElements();) {
-			PageBag pageBag = (PageBag) enm.nextElement();
-			pageBag.dispose();
-		}
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IFormPart#initialize(org.eclipse.ui.forms.IManagedForm)
-	 */
-	public void initialize(IManagedForm form) {
-		this.managedForm = form;
-	}
-/**
- * Tests if the currently visible page is dirty.
- * @return <code>true</code> if the page is dirty, <code>false</code> otherwise.
- */
-	public boolean isDirty() {
-		IDetailsPage page = getCurrentPage();
-		if (page != null)
-			return page.isDirty();
-		return false;
-	}
-/**
- * Tests if the currently visible page is stale and needs refreshing.
- * @return <code>true</code> if the page is stale, <code>false</code> otherwise.
- */	
-	public boolean isStale() {
-		IDetailsPage page = getCurrentPage();
-		if (page != null)
-			return page.isStale();
-		return false;
-	}
-
-/**
- * Refreshes the current page.
- */
-	public void refresh() {
-		IDetailsPage page = getCurrentPage();
-		if (page != null)
-			page.refresh();
-	}
-/**
- * Sets the focus to the currently visible page.
- */
-	public void setFocus() {
-		IDetailsPage page = getCurrentPage();
-		if (page != null)
-			page.setFocus();
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IFormPart#setFormInput(java.lang.Object)
-	 */
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IPartSelectionListener#selectionChanged(org.eclipse.ui.forms.IFormPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IFormPart part, ISelection selection) {
-		this.masterPart = part;
-		if (currentSelection != null) {
-		}
-		if (selection instanceof IStructuredSelection)
-			currentSelection = (IStructuredSelection) selection;
-		else
-			currentSelection = null;
-		update();
-	}
-	private void update() {
-		Object key = null;
-		if (currentSelection != null) {
-			for (Iterator iter = currentSelection.iterator(); iter.hasNext();) {
-				Object obj = iter.next();
-				if (key == null)
-					key = getKey(obj);
-				else if (getKey(obj).equals(key) == false) {
-					key = null;
-					break;
-				}
-			}
-		}
-		showPage(key);
-	}
-	private Object getKey(Object object) {
-		if (pageProvider!=null) {
-			Object key = pageProvider.getPageKey(object);
-			if (key!=null)
-				return key;
-		}
-		return object.getClass();
-	}
-	private void showPage(final Object key) {
-		checkLimit();
-		final IDetailsPage oldPage = getCurrentPage();
-		if (key != null) {
-			PageBag pageBag = (PageBag)pages.get(key);
-			IDetailsPage page = pageBag!=null?pageBag.getPage():null;
-			if (page==null) {
-				// try to get the page dynamically from the provider
-				if (pageProvider!=null) {
-					page = pageProvider.getPage(key);
-					if (page!=null) {
-						registerPage(key, page, false);
-					}
-				}
-			}
-			if (page != null) {
-				final IDetailsPage fpage = page;
-				BusyIndicator.showWhile(pageBook.getDisplay(), new Runnable() {
-					public void run() {
-						if (!pageBook.hasPage(key)) {
-							Composite parent = pageBook.createPage(key);
-							fpage.createContents(parent);
-							parent.setData(fpage);
-						}
-						//commit the current page
-						if (oldPage!=null && oldPage.isDirty())
-							oldPage.commit(false);
-						//refresh the new page
-						if (fpage.isStale())
-							fpage.refresh();
-						fpage.selectionChanged(masterPart, currentSelection);
-						pageBook.showPage(key);
-					}
-				});
-				return;
-			}
-		}
-		// If we are switching from an old page to nothing,
-		// don't loose data 
-		if (oldPage!=null && oldPage.isDirty())
-			oldPage.commit(false);
-		pageBook.showEmptyPage();
-	}
-	private void checkLimit() {
-		if (pages.size() <= getPageLimit()) return;
-		// overflow
-		int currentTicket = PageBag.getCurrentTicket();
-		int cutoffTicket = currentTicket - getPageLimit();
-		for (Enumeration enm=pages.keys(); enm.hasMoreElements();) {
-			Object key = enm.nextElement();
-			PageBag pageBag = (PageBag)pages.get(key);
-			if (pageBag.getTicket()<=cutoffTicket) {
-				// candidate - see if it is active and not fixed
-				if (!pageBag.isFixed() && !pageBag.getPage().equals(getCurrentPage())) {
-					// drop it
-					pageBag.dispose();
-					pages.remove(key);
-					pageBook.removePage(key, false);				
-				}
-			}
-		}
-	}
-	/**
-	 * Returns the maximum number of pages that should be
-	 * maintained in this part. When an attempt is made to
-	 * add more pages, old pages are removed and disposed
-	 * based on the order of creation (the oldest pages
-	 * are removed). The exception is made for the 
-	 * page that should otherwise be disposed but is
-	 * currently active.
-	 * @return maximum number of pages for this part
-	 */
-	public int getPageLimit() {
-		return pageLimit;
-	}
-	/**
-	 * Sets the page limit for this part. 
-	 * @see #getPageLimit()
-	 * @param pageLimit the maximum number of pages that
-	 * should be maintained in this part.
-	 */
-	public void setPageLimit(int pageLimit) {
-		this.pageLimit = pageLimit;
-		checkLimit();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormColors.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormColors.java
deleted file mode 100644
index 6529b6a..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormColors.java
+++ /dev/null
@@ -1,742 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.LocalResourceManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Manages colors that will be applied to forms and form widgets. The colors are
- * chosen to make the widgets look correct in the editor area. If a different
- * set of colors is needed, subclass this class and override 'initialize' and/or
- * 'initializeColors'.
- * 
- * @since 3.0
- */
-public class FormColors {
-	/**
-	 * Key for the form title foreground color.
-	 * 
-	 * @deprecated use <code>IFormColors.TITLE</code>.
-	 */
-	public static final String TITLE = IFormColors.TITLE;
-
-	/**
-	 * Key for the tree/table border color.
-	 * 
-	 * @deprecated use <code>IFormColors.BORDER</code>
-	 */
-	public static final String BORDER = IFormColors.BORDER;
-
-	/**
-	 * Key for the section separator color.
-	 * 
-	 * @deprecated use <code>IFormColors.SEPARATOR</code>.
-	 */
-	public static final String SEPARATOR = IFormColors.SEPARATOR;
-
-	/**
-	 * Key for the section title bar background.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_BG
-	 */
-	public static final String TB_BG = IFormColors.TB_BG;
-
-	/**
-	 * Key for the section title bar foreground.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_FG</code>
-	 */
-	public static final String TB_FG = IFormColors.TB_FG;
-
-	/**
-	 * Key for the section title bar gradient.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_GBG</code>
-	 */
-	public static final String TB_GBG = IFormColors.TB_GBG;
-
-	/**
-	 * Key for the section title bar border.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_BORDER</code>.
-	 */
-	public static final String TB_BORDER = IFormColors.TB_BORDER;
-
-	/**
-	 * Key for the section toggle color. Since 3.1, this color is used for all
-	 * section styles.
-	 * 
-	 * @deprecated use <code>IFormColors.TB_TOGGLE</code>.
-	 */
-	public static final String TB_TOGGLE = IFormColors.TB_TOGGLE;
-
-	/**
-	 * Key for the section toggle hover color.
-	 * 
-	 * @since 3.1
-	 * @deprecated use <code>IFormColors.TB_TOGGLE_HOVER</code>.
-	 */
-	public static final String TB_TOGGLE_HOVER = IFormColors.TB_TOGGLE_HOVER;
-
-	protected Map colorRegistry = new HashMap(10);
-	
-	private LocalResourceManager resources;
-
-	protected Color background;
-
-	protected Color foreground;
-
-	private boolean shared;
-
-	protected Display display;
-
-	protected Color border;
-
-	/**
-	 * Creates form colors using the provided display.
-	 * 
-	 * @param display
-	 *            the display to use
-	 */
-	public FormColors(Display display) {
-		this.display = display;
-		initialize();
-	}
-
-	/**
-	 * Returns the display used to create colors.
-	 * 
-	 * @return the display
-	 */
-	public Display getDisplay() {
-		return display;
-	}
-
-	/**
-	 * Initializes the colors. Subclasses can override this method to change the
-	 * way colors are created. Alternatively, only the color table can be
-	 * modified by overriding <code>initializeColorTable()</code>.
-	 * 
-	 * @see #initializeColorTable
-	 */
-	protected void initialize() {
-		background = display.getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-		foreground = display.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-		initializeColorTable();
-		updateBorderColor();
-	}
-
-	/**
-	 * Allocates colors for the following keys: BORDER, SEPARATOR and
-	 * TITLE. Subclasses can override to allocate these colors differently.
-	 */
-	protected void initializeColorTable() {
-		createTitleColor();
-		createColor(IFormColors.SEPARATOR, getColor(IFormColors.TITLE).getRGB());
-		RGB black = getSystemColor(SWT.COLOR_BLACK);
-		RGB borderRGB = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
-		createColor(IFormColors.BORDER, blend(borderRGB, black, 80));
-	}
-
-	/**
-	 * Allocates colors for the section tool bar (all the keys that start with
-	 * TB). Since these colors are only needed when TITLE_BAR style is used with
-	 * the Section widget, they are not needed all the time and are allocated on
-	 * demand. Consequently, this method will do nothing if the colors have been
-	 * already initialized. Call this method prior to using colors with the TB
-	 * keys to ensure they are available.
-	 */
-	public void initializeSectionToolBarColors() {
-		if (colorRegistry.containsKey(IFormColors.TB_BG))
-			return;
-		createTitleBarGradientColors();
-		createTitleBarOutlineColors();
-		createTwistieColors();
-	}
-
-	/**
-	 * Allocates additional colors for the form header, namely background
-	 * gradients, bottom separator keylines and DND highlights. Since these
-	 * colors are only needed for clients that want to use these particular
-	 * style of header rendering, they are not needed all the time and are
-	 * allocated on demand. Consequently, this method will do nothing if the
-	 * colors have been already initialized. Call this method prior to using
-	 * color keys with the H_ prefix to ensure they are available.
-	 * 
-	 * @since 3.3
-	 */
-	protected void initializeFormHeaderColors() {
-		if (colorRegistry.containsKey(IFormColors.H_BOTTOM_KEYLINE2))
-			return;
-		createFormHeaderColors();
-	}
-
-	/**
-	 * Returns the RGB value of the system color represented by the code
-	 * argument, as defined in <code>SWT</code> class.
-	 * 
-	 * @param code
-	 *            the system color constant as defined in <code>SWT</code>
-	 *            class.
-	 * @return the RGB value of the system color
-	 */
-	public RGB getSystemColor(int code) {
-		return getDisplay().getSystemColor(code).getRGB();
-	}
-
-	/**
-	 * Creates the color for the specified key using the provided RGB object.
-	 * The color object will be returned and also put into the registry. When
-	 * the class is disposed, the color will be disposed with it.
-	 * 
-	 * @param key
-	 *            the unique color key
-	 * @param rgb
-	 *            the RGB object
-	 * @return the allocated color object
-	 */
-	public Color createColor(String key, RGB rgb) {
-		Color c = getResourceManager().createColor(rgb);
-		Color prevC = (Color) colorRegistry.get(key);
-		if (prevC != null && !prevC.isDisposed())
-			getResourceManager().destroyColor(prevC.getRGB());
-		colorRegistry.put(key, c);
-		return c;
-	}
-
-	/**
-	 * Creates a color that can be used for areas of the form that is inactive.
-	 * These areas can contain images, links, controls and other content but are
-	 * considered auxilliary to the main content area.
-	 * 
-	 * <p>
-	 * The color should not be disposed because it is managed by this class.
-	 * 
-	 * @return the inactive form color
-	 * @since 3.1
-	 */
-	public Color getInactiveBackground() {
-		String key = "__ncbg__"; //$NON-NLS-1$
-		Color color = getColor(key);
-		if (color == null) {
-			RGB sel = getSystemColor(SWT.COLOR_LIST_SELECTION);
-			// a blend of 95% white and 5% list selection system color
-			RGB ncbg = blend(sel, getSystemColor(SWT.COLOR_WHITE), 5);
-			color = createColor(key, ncbg);
-		}
-		return color;
-	}
-
-	/**
-	 * Creates the color for the specified key using the provided RGB values.
-	 * The color object will be returned and also put into the registry. If
-	 * there is already another color object under the same key in the registry,
-	 * the existing object will be disposed. When the class is disposed, the
-	 * color will be disposed with it.
-	 * 
-	 * @param key
-	 *            the unique color key
-	 * @param r
-	 *            red value
-	 * @param g
-	 *            green value
-	 * @param b
-	 *            blue value
-	 * @return the allocated color object
-	 */
-	public Color createColor(String key, int r, int g, int b) {
-		return createColor(key, new RGB(r,g,b));
-	}
-
-	/**
-	 * Computes the border color relative to the background. Allocated border
-	 * color is designed to work well with white. Otherwise, stanard widget
-	 * background color will be used.
-	 */
-	protected void updateBorderColor() {
-		if (isWhiteBackground())
-			border = getColor(IFormColors.BORDER);
-		else {
-			border = display.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			Color bg = getImpliedBackground();
-			if (border.getRed() == bg.getRed()
-					&& border.getGreen() == bg.getGreen()
-					&& border.getBlue() == bg.getBlue())
-				border = display.getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW);
-		}
-	}
-
-	/**
-	 * Sets the background color. All the toolkits that use this class will
-	 * share the same background.
-	 * 
-	 * @param bg
-	 *            background color
-	 */
-	public void setBackground(Color bg) {
-		this.background = bg;
-		updateBorderColor();
-		updateFormHeaderColors();
-	}
-
-	/**
-	 * Sets the foreground color. All the toolkits that use this class will
-	 * share the same foreground.
-	 * 
-	 * @param fg
-	 *            foreground color
-	 */
-	public void setForeground(Color fg) {
-		this.foreground = fg;
-	}
-
-	/**
-	 * Returns the current background color.
-	 * 
-	 * @return the background color
-	 */
-	public Color getBackground() {
-		return background;
-	}
-
-	/**
-	 * Returns the current foreground color.
-	 * 
-	 * @return the foreground color
-	 */
-	public Color getForeground() {
-		return foreground;
-	}
-
-	/**
-	 * Returns the computed border color. Border color depends on the background
-	 * and is recomputed whenever the background changes.
-	 * 
-	 * @return the current border color
-	 */
-	public Color getBorderColor() {
-		return border;
-	}
-
-	/**
-	 * Tests if the background is white. White background has RGB value
-	 * 255,255,255.
-	 * 
-	 * @return <samp>true</samp> if background is white, <samp>false</samp>
-	 *         otherwise.
-	 */
-	public boolean isWhiteBackground() {
-		Color bg = getImpliedBackground();
-		return bg.getRed() == 255 && bg.getGreen() == 255
-				&& bg.getBlue() == 255;
-	}
-
-	/**
-	 * Returns the color object for the provided key or <samp>null </samp> if
-	 * not in the registry.
-	 * 
-	 * @param key
-	 *            the color key
-	 * @return color object if found, or <samp>null </samp> if not.
-	 */
-	public Color getColor(String key) {
-		if (key.startsWith(IFormColors.TB_PREFIX))
-			initializeSectionToolBarColors();
-		else if (key.startsWith(IFormColors.H_PREFIX))
-			initializeFormHeaderColors();
-		return (Color) colorRegistry.get(key);
-	}
-
-	/**
-	 * Disposes all the colors in the registry.
-	 */
-	public void dispose() {
-		if (resources != null)
-			resources.dispose();
-		resources = null;
-		colorRegistry = null;
-	}
-
-	/**
-	 * Marks the colors shared. This prevents toolkits that share this object
-	 * from disposing it.
-	 */
-	public void markShared() {
-		this.shared = true;
-	}
-
-	/**
-	 * Tests if the colors are shared.
-	 * 
-	 * @return <code>true</code> if shared, <code>false</code> otherwise.
-	 */
-	public boolean isShared() {
-		return shared;
-	}
-
-	/**
-	 * Blends c1 and c2 based in the provided ratio.
-	 * 
-	 * @param c1
-	 *            first color
-	 * @param c2
-	 *            second color
-	 * @param ratio
-	 *            percentage of the first color in the blend (0-100)
-	 * @return the RGB value of the blended color
-	 * @since 3.1
-	 */
-	public static RGB blend(RGB c1, RGB c2, int ratio) {
-		int r = blend(c1.red, c2.red, ratio);
-		int g = blend(c1.green, c2.green, ratio);
-		int b = blend(c1.blue, c2.blue, ratio);
-		return new RGB(r, g, b);
-	}
-
-	/**
-	 * Tests the source RGB for range.
-	 * 
-	 * @param rgb
-	 *            the tested RGB
-	 * @param from
-	 *            range start (excluding the value itself)
-	 * @param to
-	 *            range end (excluding the value itself)
-	 * @return <code>true</code> if at least one of the primary colors in the
-	 *         source RGB are within the provided range, <code>false</code>
-	 *         otherwise.
-	 * @since 3.1
-	 */
-	public static boolean testAnyPrimaryColor(RGB rgb, int from, int to) {
-		if (testPrimaryColor(rgb.red, from, to))
-			return true;
-		if (testPrimaryColor(rgb.green, from, to))
-			return true;
-		if (testPrimaryColor(rgb.blue, from, to))
-			return true;
-		return false;
-	}
-
-	/**
-	 * Tests the source RGB for range.
-	 * 
-	 * @param rgb
-	 *            the tested RGB
-	 * @param from
-	 *            range start (excluding the value itself)
-	 * @param to
-	 *            tange end (excluding the value itself)
-	 * @return <code>true</code> if at least two of the primary colors in the
-	 *         source RGB are within the provided range, <code>false</code>
-	 *         otherwise.
-	 * @since 3.1
-	 */
-	public static boolean testTwoPrimaryColors(RGB rgb, int from, int to) {
-		int total = 0;
-		if (testPrimaryColor(rgb.red, from, to))
-			total++;
-		if (testPrimaryColor(rgb.green, from, to))
-			total++;
-		if (testPrimaryColor(rgb.blue, from, to))
-			total++;
-		return total >= 2;
-	}
-
-	/**
-	 * Blends two primary color components based on the provided ratio.
-	 * 
-	 * @param v1
-	 *            first component
-	 * @param v2
-	 *            second component
-	 * @param ratio
-	 *            percentage of the first component in the blend
-	 * @return
-	 */
-	private static int blend(int v1, int v2, int ratio) {
-		int b = (ratio * v1 + (100 - ratio) * v2) / 100;
-		return Math.min(255, b);
-	}
-
-	private Color getImpliedBackground() {
-		if (getBackground() != null)
-			return getBackground();
-		return getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-	}
-
-	private static boolean testPrimaryColor(int value, int from, int to) {
-		return value > from && value < to;
-	}
-
-	private void createTitleColor() {
-		/*
-		 * RGB rgb = getSystemColor(SWT.COLOR_LIST_SELECTION); // test too light
-		 * if (testTwoPrimaryColors(rgb, 120, 151)) rgb = blend(rgb, BLACK, 80);
-		 * else if (testTwoPrimaryColors(rgb, 150, 256)) rgb = blend(rgb, BLACK,
-		 * 50); createColor(TITLE, rgb);
-		 */
-		RGB bg = getImpliedBackground().getRGB();
-		RGB listSelection = getSystemColor(SWT.COLOR_LIST_SELECTION);
-		RGB listForeground = getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-		RGB rgb = listSelection;
-
-		// Group 1
-		// Rule: If at least 2 of the LIST_SELECTION RGB values are equal to or
-		// between 0 and 120, then use 100% LIST_SELECTION as it is (no
-		// additions)
-		// Examples: XP Default, Win Classic Standard, Win High Con White, Win
-		// Classic Marine
-		if (testTwoPrimaryColors(listSelection, -1, 121))
-			rgb = listSelection;
-		// Group 2
-		// When LIST_BACKGROUND = white (255, 255, 255) or not black, text
-		// colour = LIST_SELECTION @ 100% Opacity + 50% LIST_FOREGROUND over
-		// LIST_BACKGROUND
-		// Rule: If at least 2 of the LIST_SELECTION RGB values are equal to or
-		// between 121 and 255, then add 50% LIST_FOREGROUND to LIST_SELECTION
-		// foreground colour
-		// Examples: Win Vista, XP Silver, XP Olive , Win Classic Plum, OSX
-		// Aqua, OSX Graphite, Linux GTK
-		else if (testTwoPrimaryColors(listSelection, 120, 256)
-				|| (bg.red == 0 && bg.green == 0 && bg.blue == 0))
-			rgb = blend(listSelection, listForeground, 50);
-		// Group 3
-		// When LIST_BACKGROUND = black (0, 0, 0), text colour = LIST_SELECTION
-		// @ 100% Opacity + 50% LIST_FOREGROUND over LIST_BACKGROUND
-		// Rule: If LIST_BACKGROUND = 0, 0, 0, then add 50% LIST_FOREGROUND to
-		// LIST_SELECTION foreground colour
-		// Examples: Win High Con Black, Win High Con #1, Win High Con #2
-		// (covered in the second part of the OR clause above)
-		createColor(IFormColors.TITLE, rgb);
-	}
-
-	private void createTwistieColors() {
-		RGB rgb = getColor(IFormColors.TITLE).getRGB();
-		RGB white = getSystemColor(SWT.COLOR_WHITE);
-		createColor(TB_TOGGLE, rgb);
-		rgb = blend(rgb, white, 60);
-		createColor(TB_TOGGLE_HOVER, rgb);
-	}
-
-	private void createTitleBarGradientColors() {
-		RGB tbBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		RGB bg = getImpliedBackground().getRGB();
-
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Gradient Bottom = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(tbBg, 179, 256))
-			tbBg = blend(tbBg, bg, 30);
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-		// Gradient Bottom = TITLE_BACKGROUND @ 20% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(tbBg, 120, 180))
-			tbBg = blend(tbBg, bg, 20);
-
-		// Group 3
-		// Rule: Everything else
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-		// Gradient Bottom = TITLE_BACKGROUND @ 10% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else {
-			tbBg = blend(tbBg, bg, 10);
-		}
-
-		createColor(IFormColors.TB_BG, tbBg);
-		
-		// for backward compatibility
-		createColor(TB_GBG, tbBg);
-	}
-
-	private void createTitleBarOutlineColors() {
-		// title bar outline - border color
-		RGB tbBorder = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		RGB bg = getImpliedBackground().getRGB();
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Keyline = TITLE_BACKGROUND @ 70% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(tbBorder, 179, 256))
-			tbBorder = blend(tbBorder, bg, 70);
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-
-		// Keyline = TITLE_BACKGROUND @ 50% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(tbBorder, 120, 180))
-			tbBorder = blend(tbBorder, bg, 50);
-
-		// Group 3
-		// Rule: Everything else
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-
-		// Keyline = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		else {
-			tbBorder = blend(tbBorder, bg, 30);
-		}
-		createColor(FormColors.TB_BORDER, tbBorder);
-	}
-
-	private void updateFormHeaderColors() {
-		if (colorRegistry.containsKey(IFormColors.H_GRADIENT_END)) {
-			disposeIfFound(IFormColors.H_GRADIENT_END);
-			disposeIfFound(IFormColors.H_GRADIENT_START);
-			disposeIfFound(IFormColors.H_BOTTOM_KEYLINE1);
-			disposeIfFound(IFormColors.H_BOTTOM_KEYLINE2);
-			disposeIfFound(IFormColors.H_HOVER_LIGHT);
-			disposeIfFound(IFormColors.H_HOVER_FULL);
-			initializeFormHeaderColors();
-		}
-	}
-
-	private void disposeIfFound(String key) {
-		Color color = getColor(key);
-		if (color != null) {
-			colorRegistry.remove(key);
-			color.dispose();
-		}
-	}
-
-	private void createFormHeaderColors() {
-		createFormHeaderGradientColors();
-		createFormHeaderKeylineColors();
-		createFormHeaderDNDColors();
-	}
-
-	private void createFormHeaderGradientColors() {
-		RGB titleBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		Color bgColor = getImpliedBackground();
-		RGB bg = bgColor.getRGB();
-		RGB bottom, top;
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Gradient Bottom = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(titleBg, 179, 256)) {
-			bottom = blend(titleBg, bg, 30);
-			top = bg;
-		}
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-		// Gradient Bottom = TITLE_BACKGROUND @ 20% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(titleBg, 120, 180)) {
-			bottom = blend(titleBg, bg, 20);
-			top = bg;
-		}
-
-		// Group 3
-		// Rule: If at least 2 of the RGB values are equal to or between 0 and
-		// 120, then apply specified opacity for Group 3
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-		// Gradient Bottom = TITLE_BACKGROUND @ 10% Opacity over LIST_BACKGROUND
-		// Gradient Top = TITLE BACKGROUND @ 0% Opacity over LIST_BACKGROUND
-		else {
-			bottom = blend(titleBg, bg, 10);
-			top = bg;
-		}
-		createColor(IFormColors.H_GRADIENT_END, top);
-		createColor(IFormColors.H_GRADIENT_START, bottom);
-	}
-
-	private void createFormHeaderKeylineColors() {
-		RGB titleBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-		Color bgColor = getImpliedBackground();
-		RGB bg = bgColor.getRGB();
-		RGB keyline2;
-		// H_BOTTOM_KEYLINE1
-		createColor(IFormColors.H_BOTTOM_KEYLINE1, new RGB(255, 255, 255));
-
-		// H_BOTTOM_KEYLINE2
-		// Group 1
-		// Rule: If at least 2 of the RGB values are equal to or between 180 and
-		// 255, then apply specified opacity for Group 1
-		// Examples: Vista, XP Silver, Wn High Con #2
-		// Keyline = TITLE_BACKGROUND @ 70% Opacity over LIST_BACKGROUND
-		if (testTwoPrimaryColors(titleBg, 179, 256))
-			keyline2 = blend(titleBg, bg, 70);
-
-		// Group 2
-		// Rule: If at least 2 of the RGB values are equal to or between 121 and
-		// 179, then apply specified opacity for Group 2
-		// Examples: XP Olive, OSX Graphite, Linux GTK, Wn High Con Black
-		// Keyline = TITLE_BACKGROUND @ 50% Opacity over LIST_BACKGROUND
-		else if (testTwoPrimaryColors(titleBg, 120, 180))
-			keyline2 = blend(titleBg, bg, 50);
-
-		// Group 3
-		// Rule: If at least 2 of the RGB values are equal to or between 0 and
-		// 120, then apply specified opacity for Group 3
-		// Examples: XP Default, Wn Classic Standard, Wn Marine, Wn Plum, OSX
-		// Aqua, Wn High Con White, Wn High Con #1
-
-		// Keyline = TITLE_BACKGROUND @ 30% Opacity over LIST_BACKGROUND
-		else
-			keyline2 = blend(titleBg, bg, 30);
-		// H_BOTTOM_KEYLINE2
-		createColor(IFormColors.H_BOTTOM_KEYLINE2, keyline2);
-	}
-
-	private void createFormHeaderDNDColors() {
-		RGB titleBg = getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
-		Color bgColor = getImpliedBackground();
-		RGB bg = bgColor.getRGB();
-		RGB light, full;
-		// ALL Themes
-		//
-		// Light Highlight
-		// When *near* the 'hot' area
-		// Rule: If near the title in the 'hot' area, show background highlight
-		// TITLE_BACKGROUND_GRADIENT @ 40%
-		light = blend(titleBg, bg, 40);
-		// Full Highlight
-		// When *on* the title area (regions 1 and 2)
-		// Rule: If near the title in the 'hot' area, show background highlight
-		// TITLE_BACKGROUND_GRADIENT @ 60%
-		full = blend(titleBg, bg, 60);
-		// H_DND_LIGHT
-		// H_DND_FULL
-		createColor(IFormColors.H_HOVER_LIGHT, light);
-		createColor(IFormColors.H_HOVER_FULL, full);
-	}
-	
-	private LocalResourceManager getResourceManager() {
-		if (resources == null)
-			resources = new LocalResourceManager(JFaceResources.getResources());
-		return resources;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java
deleted file mode 100644
index f96e914..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/FormDialog.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-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.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.internal.forms.Messages;
-
-/**
- * A general-purpose dialog that hosts a form. Clients should extend the class
- * and override <code>createFormContent(IManagedForm)</code> protected method.
- * <p>
- * Since forms with wrapped text typically don't have a preferred size, it is
- * important to set the initial dialog size upon creation:
- * <p>
- * 
- * <pre>
- * MyFormDialog dialog = new MyFormDialog(shell);
- * dialog.create();
- * dialog.getShell().setSize(500, 500);
- * dialog.open();
- * </pre>
- * 
- * <p>
- * Otherwise, the dialog may open very wide.
- * <p>
- * 
- * @since 3.3
- */
-
-public class FormDialog extends TrayDialog {
-	private FormToolkit toolkit;
-
-	/**
-	 * Creates a new form dialog for a provided parent shell.
-	 * 
-	 * @param shell
-	 *            the parent shell
-	 */
-	public FormDialog(Shell shell) {
-		super(shell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-	}
-
-	/**
-	 * Creates a new form dialog for a provided parent shell provider.
-	 * 
-	 * @param parentShellProvider
-	 *            the parent shell provider
-	 */
-	public FormDialog(IShellProvider parentShellProvider) {
-		super(parentShellProvider);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.TrayDialog#close()
-	 */
-	public boolean close() {
-		boolean rcode = super.close();
-		toolkit.dispose();
-		return rcode;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createDialogArea(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		ScrolledForm sform = toolkit.createScrolledForm(parent);
-		sform.setLayoutData(new GridData(GridData.FILL_BOTH));
-		ManagedForm mform = new ManagedForm(toolkit, sform);
-		createFormContent(mform);
-		applyDialogFont(sform.getBody());
-		return sform;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.TrayDialog#createButtonBar(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createButtonBar(Composite parent) {
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		//Composite sep = new Composite(parent, SWT.NULL);
-		//sep.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW));
-		//gd.heightHint = 1;
-		Label sep = new Label(parent, SWT.HORIZONTAL|SWT.SEPARATOR);
-		sep.setLayoutData(gd);
-		Control bar = super.createButtonBar(parent);
-		return bar;
-	}
-
-	/**
-	 * Configures the dialog form and creates form content. Clients should
-	 * override this method.
-	 * 
-	 * @param mform
-	 *            the dialog form
-	 */
-	protected void createFormContent(IManagedForm mform) {
-		mform.getForm().setText(Messages.FormDialog_defaultTitle);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java
deleted file mode 100644
index 3b3b757..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkGroup.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-
-/**
- * Manages a group of hyperlinks. It tracks activation, updates normal and
- * active colors and updates underline state depending on the underline
- * preference. Hyperlink labels are added to the group after creation and are
- * automatically removed from the group when they are disposed.
- * 
- * @since 3.0
- */
-
-public final class HyperlinkGroup extends HyperlinkSettings {
-	private ArrayList links = new ArrayList();
-	private Hyperlink lastActivated;
-	private Hyperlink lastEntered;
-	private GroupListener listener;
-	private boolean isActiveBackgroundSet;
-	private boolean isActiveForegroundSet;
-	private boolean isBackgroundSet;
-	private boolean isForegroundSet;
-
-	private class GroupListener implements Listener, IHyperlinkListener {
-		
-		private Color previousBackground;
-		private Color previousForeground;
-		
-		public void handleEvent(Event e) {
-			switch (e.type) {
-				case SWT.MouseEnter :
-					onMouseEnter(e);
-					break;
-				case SWT.MouseExit :
-					onMouseExit(e);
-					break;
-				case SWT.MouseDown :
-					onMouseDown(e);
-					break;
-				case SWT.Dispose :
-					unhook((Hyperlink) e.widget);
-					break;
-			}
-		}
-		private void onMouseEnter(Event e) {
-			Hyperlink link = (Hyperlink) e.widget;
-			previousBackground = link.getBackground();
-			previousForeground = link.getForeground();
-			if (isActiveBackgroundSet)
-				link.setBackground(getActiveBackground());
-			if (isActiveForegroundSet)
-				link.setForeground(getActiveForeground());
-			if (getHyperlinkUnderlineMode() == UNDERLINE_HOVER)
-				link.setUnderlined(true);
-			link.setCursor(getHyperlinkCursor());			
-		}
-		private void onMouseExit(Event e) {
-			Hyperlink link = (Hyperlink) e.widget;
-			if (isActiveBackgroundSet)
-				link.setBackground(previousBackground);
-			if (isActiveForegroundSet)
-				link.setForeground(previousForeground);
-			if (getHyperlinkUnderlineMode() == UNDERLINE_HOVER)
-				link.setUnderlined(false);
-		}
-		public void linkActivated(HyperlinkEvent e) {
-		}
-
-		public void linkEntered(HyperlinkEvent e) {
-			Hyperlink link = (Hyperlink) e.widget;
-			if (lastEntered != null) {
-				linkExited(lastEntered);
-			}
-			lastEntered = link;
-		}
-
-		public void linkExited(HyperlinkEvent e) {
-			linkExited((Hyperlink) e.widget);
-		}
-		private void linkExited(Hyperlink link) {
-			link.setCursor(null);
-			if (lastEntered == link)
-				lastEntered = null;
-		}
-	}
-
-	/**
-	 * Creates a hyperlink group.
-	 */
-
-	public HyperlinkGroup(Display display) {
-		super(display);
-		listener = new GroupListener();
-	}
-
-	/**
-	 * Returns the link that has been active the last, or <code>null</code>
-	 * if no link has been active yet or the last active link has been
-	 * disposed.
-	 * 
-	 * @return the last active link or <code>null</code>
-	 */
-	public Hyperlink getLastActivated() {
-		return lastActivated;
-	}
-	/**
-	 * Adds a hyperlink to the group to be jointly managed. Hyperlink will be
-	 * managed until it is disposed. Settings like colors, cursors and modes
-	 * will affect all managed hyperlinks.
-	 * 
-	 * @param link
-	 */
-
-	public void add(Hyperlink link) {
-		if (isBackgroundSet)
-			link.setBackground(getBackground());
-		if (isForegroundSet)
-			link.setForeground(getForeground());
-		if (getHyperlinkUnderlineMode() == UNDERLINE_ALWAYS)
-			link.setUnderlined(true);
-		hook(link);
-	}
-	
-	/**
-	 * Sets the new active hyperlink background for all the links.
-	 * 
-	 * @param newActiveBackground
-	 *            the new active background
-	 */
-	public void setActiveBackground(Color newActiveBackground) {
-		super.setActiveBackground(newActiveBackground);
-		isActiveBackgroundSet = true;
-	}
-	
-	/**
-	 * Sets the new active hyperlink foreground for all the links.
-	 * 
-	 * @param newActiveForeground
-	 *            the new active foreground
-	 */
-	public void setActiveForeground(Color newActiveForeground) {
-		super.setActiveForeground(newActiveForeground);
-		isActiveForegroundSet = true;
-	}
-	
-	/**
-	 * Sets the group background and also sets the background of all the
-	 * currently managed links.
-	 * 
-	 * @param bg
-	 *            the new background
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		isBackgroundSet = true;
-		if (links != null) {
-			for (int i = 0; i < links.size(); i++) {
-				Hyperlink label = (Hyperlink) links.get(i);
-				label.setBackground(bg);
-			}
-		}
-	}
-	/**
-	 * Sets the group foreground and also sets the background of all the
-	 * currently managed links.
-	 * 
-	 * @param fg
-	 *            the new foreground
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		isForegroundSet = true;
-		if (links != null) {
-			for (int i = 0; i < links.size(); i++) {
-				Hyperlink label = (Hyperlink) links.get(i);
-				label.setForeground(fg);
-			}
-		}
-	}
-	/**
-	 * Sets the hyperlink underline mode.
-	 * 
-	 * @param mode
-	 *            the new hyperlink underline mode
-	 * @see HyperlinkSettings
-	 */
-	public void setHyperlinkUnderlineMode(int mode) {
-		super.setHyperlinkUnderlineMode(mode);
-		if (links != null) {
-			for (int i = 0; i < links.size(); i++) {
-				Hyperlink label = (Hyperlink) links.get(i);
-				label.setUnderlined(mode == UNDERLINE_ALWAYS);
-			}
-		}
-	}
-
-	private void hook(Hyperlink link) {
-		link.addListener(SWT.MouseDown, listener);
-		link.addHyperlinkListener(listener);
-		link.addListener(SWT.Dispose, listener);
-		link.addListener(SWT.MouseEnter, listener);
-		link.addListener(SWT.MouseExit, listener);
-		links.add(link);
-	}
-
-	private void unhook(Hyperlink link) {
-		link.removeListener(SWT.MouseDown, listener);
-		link.removeHyperlinkListener(listener);
-		link.removeListener(SWT.MouseEnter, listener);
-		link.removeListener(SWT.MouseExit, listener);
-		if (lastActivated == link)
-			lastActivated = null;
-		if (lastEntered == link)
-			lastEntered = null;
-		links.remove(link);
-	}
-
-	private void onMouseDown(Event e) {
-		if (e.button == 1)
-			return;
-		lastActivated = (Hyperlink) e.widget;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java
deleted file mode 100644
index ab67180..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/HyperlinkSettings.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2000, 2008 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.forms.widgets.*;
-/**
- * Manages color and underline mode settings for a group of hyperlinks. The
- * class is extended by HyperlinkGroup but is otherwise not intended to be
- * subclassed.
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class HyperlinkSettings {
-	/**
-	 * Underline mode to be used when hyperlinks should not be underlined.
-	 */
-	public static final int UNDERLINE_NEVER = 1;
-	/**
-	 * Underline mode to be used when hyperlinks should only be underlined on
-	 * mouse hover.
-	 */
-	public static final int UNDERLINE_HOVER = 2;
-	/**
-	 * Underline mode to be used when hyperlinks should always be underlined.
-	 */
-	public static final int UNDERLINE_ALWAYS = 3;
-	private int hyperlinkUnderlineMode = UNDERLINE_ALWAYS;
-	private Color background;
-	private Color foreground;
-	private Color activeBackground;
-	private Color activeForeground;
-	/**
-	 * The constructor.
-	 * 
-	 * @param display
-	 *            the display to use when creating colors.
-	 */
-	public HyperlinkSettings(Display display) {
-		initializeDefaultForegrounds(display);
-	}
-	/**
-	 * Initializes the hyperlink foregrounds from the JFace defaults set for the
-	 * entire workbench.
-	 * 
-	 * @see JFaceColors
-	 * @param display
-	 *            the display to use when creating colors
-	 */
-	public void initializeDefaultForegrounds(Display display) {
-		Color fg = JFaceColors.getHyperlinkText(display);
-		Color afg = JFaceColors.getActiveHyperlinkText(display);
-		if (fg==null)
-			fg = display.getSystemColor(SWT.COLOR_BLUE);
-		setForeground(fg);
-		setActiveForeground(afg);
-	}
-	/**
-	 * Returns the background to use for the active hyperlink.
-	 * 
-	 * @return active hyperlink background
-	 */
-	public Color getActiveBackground() {
-		return activeBackground;
-	}
-	/**
-	 * Returns the foreground to use for the active hyperlink.
-	 * 
-	 * @return active hyperlink foreground
-	 */
-	public Color getActiveForeground() {
-		return activeForeground;
-	}
-	/**
-	 * Returns the background to use for the normal hyperlink.
-	 * 
-	 * @return normal hyperlink background
-	 */
-	public Color getBackground() {
-		return background;
-	}
-	/**
-	 * Returns the cursor to use when the hyperlink is active. This cursor will
-	 * be shown before hyperlink listeners have been notified of hyperlink
-	 * activation and hidden when the notification method returns.
-	 * 
-	 * @return the busy cursor
-	 */
-	public Cursor getBusyCursor() {
-		return FormsResources.getBusyCursor();
-	}
-	/**
-	 * Returns the cursor to use when over text.
-	 * 
-	 * @return the text cursor
-	 */
-	public Cursor getTextCursor() {
-		return FormsResources.getTextCursor();
-	}
-	/**
-	 * Returns the foreground to use for the normal hyperlink.
-	 * 
-	 * @return the normal hyperlink foreground
-	 */
-	public Color getForeground() {
-		return foreground;
-	}
-	/**
-	 * Returns the cursor to use when hovering over the hyperlink.
-	 * 
-	 * @return the hyperlink cursor
-	 */
-	public Cursor getHyperlinkCursor() {
-		return FormsResources.getHandCursor();
-	}
-	/**
-	 * Returns the underline mode to be used for all the hyperlinks in this
-	 * group.
-	 * 
-	 * @return one of UNDERLINE_NEVER, UNDERLINE_ALWAYS, UNDERLINE_HOVER
-	 */
-	public int getHyperlinkUnderlineMode() {
-		return hyperlinkUnderlineMode;
-	}
-	/**
-	 * Sets the new active hyperlink background for all the links.
-	 * 
-	 * @param newActiveBackground
-	 *            the new active background
-	 */
-	public void setActiveBackground(Color newActiveBackground) {
-		activeBackground = newActiveBackground;
-	}
-	/**
-	 * Sets the new active hyperlink foreground for all the links.
-	 * 
-	 * @param newActiveForeground
-	 *            the new active foreground
-	 */
-	public void setActiveForeground(Color newActiveForeground) {
-		activeForeground = newActiveForeground;
-	}
-	/**
-	 * Sets the new hyperlink background for all the links.
-	 * 
-	 * @param newBackground
-	 *            the new hyperlink background
-	 */
-	public void setBackground(Color newBackground) {
-		background = newBackground;
-	}
-	/**
-	 * Sets the new hyperlink foreground for all the links.
-	 * 
-	 * @param newForeground
-	 *            the new hyperlink foreground
-	 */
-	public void setForeground(Color newForeground) {
-		foreground = newForeground;
-	}
-	/**
-	 * Sets the new hyperlink underline mode for all the links in this group.
-	 * 
-	 * @param mode
-	 *            one of <code>UNDERLINE_NEVER</code>,
-	 *            <code>UNDERLINE_HOVER</code> and
-	 *            <code>UNDERLINE_ALWAYS</code>.
-	 */
-	public void setHyperlinkUnderlineMode(int mode) {
-		hyperlinkUnderlineMode = mode;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.java
deleted file mode 100644
index 067f9cc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPage.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.ui.forms;
-
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * This interface should be implemented by clients providing
- * pages to handle object types in DetailsPart. Most of the
- * life cycle is the same as for the IFormPart. The page is
- * a part selection listener since selections in the master
- * part will be passed to the currently visible page.
- * 
- * @see DetailsPart
- * @see MasterDetailsBlock
- * @since 3.0
- */
-public interface IDetailsPage extends IFormPart, IPartSelectionListener {
-	/**
-	 * Creates the contents of the page in the provided parent.
-	 * @param parent the parent to create the page in
-	 */
-	void createContents(Composite parent);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.java
deleted file mode 100644
index 64cae36..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IDetailsPageProvider.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.ui.forms;
-
-/**
- * The class that implements this interface provides for dynamic
- * computation of page key and the page itself based on the
- * input object. It should be used in situations where
- * using the object class as a static key is not enough
- * i.e. different pages may need to be loaded for objects
- * of the same type depending on their state.
- * 
- * @see DetailsPart
- * @see MasterDetailsBlock
- * @since 3.0
- */
-public interface IDetailsPageProvider {
-/**
- * Returns the page key for the provided object. The assumption is
- * that the provider knows about various object types and
- * is in position to cast the object into a type and call methods
- * on it to determine the matching page key.
- * @param object the input object
- * @return the page key for the provided object
- */
-	Object getPageKey(Object object);
-/**
- * Returns the page for the provided key. This method is the dynamic
- * alternative to registering pages with the details part directly.
- * @param key the page key
- * @return the matching page for the provided key
- */
-	IDetailsPage getPage(Object key);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java
deleted file mode 100644
index 29bf4d3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormColors.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-/**
- * A place to hold all the color constants used in the forms package.
- * 
- * @since 3.3
- */
-
-public interface IFormColors {
-	/**
-	 * A prefix for all the keys.
-	 */
-	String PREFIX = "org.eclipse.ui.forms."; //$NON-NLS-1$
-	/**
-	 * Key for the form title foreground color.
-	 */
-	String TITLE = PREFIX + "TITLE"; //$NON-NLS-1$
-
-	/**
-	 * A prefix for the header color constants.
-	 */
-	String H_PREFIX = PREFIX + "H_"; //$NON-NLS-1$
-	/*
-	 * A prefix for the section title bar color constants.
-	 */
-	String TB_PREFIX = PREFIX + "TB_"; //$NON-NLS-1$	
-	/**
-	 * Key for the form header background gradient ending color.
-	 */
-	String H_GRADIENT_END = H_PREFIX + "GRADIENT_END"; //$NON-NLS-1$
-
-	/**
-	 * Key for the form header background gradient starting color.
-	 * 
-	 */
-	String H_GRADIENT_START = H_PREFIX + "GRADIENT_START"; //$NON-NLS-1$
-	/**
-	 * Key for the form header bottom keyline 1 color.
-	 * 
-	 */
-	String H_BOTTOM_KEYLINE1 = H_PREFIX + "BOTTOM_KEYLINE1"; //$NON-NLS-1$
-	/**
-	 * Key for the form header bottom keyline 2 color.
-	 * 
-	 */
-	String H_BOTTOM_KEYLINE2 = H_PREFIX + "BOTTOM_KEYLINE2"; //$NON-NLS-1$
-	/**
-	 * Key for the form header light hover color.
-	 * 
-	 */
-	String H_HOVER_LIGHT = H_PREFIX + "H_HOVER_LIGHT"; //$NON-NLS-1$
-	/**
-	 * Key for the form header full hover color.
-	 * 
-	 */
-	String H_HOVER_FULL = H_PREFIX + "H_HOVER_FULL"; //$NON-NLS-1$
-
-	/**
-	 * Key for the tree/table border color.
-	 */
-	String BORDER = PREFIX + "BORDER"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section separator color.
-	 */
-	String SEPARATOR = PREFIX + "SEPARATOR"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar background.
-	 */
-	String TB_BG = TB_PREFIX + "BG"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar foreground.
-	 */
-	String TB_FG = TB_PREFIX + "FG"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section title bar gradient.
-	 * @deprecated Since 3.3, this color is not used any more. The 
-	 * tool bar gradient is created starting from {@link #TB_BG} to
-	 * the section background color.
-	 */
-	String TB_GBG = TB_BG;
-
-	/**
-	 * Key for the section title bar border.
-	 */
-	String TB_BORDER = TB_PREFIX + "BORDER"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section toggle color. Since 3.1, this color is used for all
-	 * section styles.
-	 */
-	String TB_TOGGLE = TB_PREFIX + "TOGGLE"; //$NON-NLS-1$
-
-	/**
-	 * Key for the section toggle hover color.
-	 * 
-	 */
-	String TB_TOGGLE_HOVER = TB_PREFIX + "TOGGLE_HOVER"; //$NON-NLS-1$		
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
deleted file mode 100644
index fa23b3b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IFormPart.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-/**
- * Classes that implement this interface can be added to the managed form and
- * take part in the form life cycle. The part is initialized with the form and
- * will be asked to accept focus. The part can receive form input and can elect
- * to do something according to it (for example, select an object that matches
- * the input).
- * <p>
- * The form part has two 'out of sync' states in respect to the model(s) that
- * feed the form: <b>dirty</b> and <b>stale</b>. When a part is dirty, it
- * means that the user interacted with it and now its widgets contain state that
- * is newer than the model. In order to sync up with the model, 'commit' needs
- * to be called. In contrast, the model can change 'under' the form (as a result
- * of some actions outside the form), resulting in data in the model being
- * 'newer' than the content presented in the form. A 'stale' form part is
- * brought in sync with the model by calling 'refresh'. The part is responsible
- * for notifying the form when one of these states change in the part. The form
- * reserves the right to handle this notification in the most appropriate way
- * for the situation (for example, if the form is in a page of the multi-page
- * editor, it may do nothing for stale parts if the page is currently not
- * showing).
- * <p>
- * When the form is disposed, each registered part is disposed as well. Parts
- * are responsible for releasing any system resources they created and for
- * removing themselves as listeners from all event providers.
- * 
- * @see IManagedForm
- * @since 3.0
- * 
- */
-public interface IFormPart {
-	/**
-	 * Initializes the part.
-	 * 
-	 * @param form
-	 *            the managed form that manages the part
-	 */
-	void initialize(IManagedForm form);
-
-	/**
-	 * Disposes the part allowing it to release allocated resources.
-	 */
-	void dispose();
-
-	/**
-	 * Returns true if the part has been modified with respect to the data
-	 * loaded from the model.
-	 * 
-	 * @return true if the part has been modified with respect to the data
-	 *         loaded from the model
-	 */
-	boolean isDirty();
-
-	/**
-	 * If part is displaying information loaded from a model, this method
-	 * instructs it to commit the new (modified) data back into the model.
-	 * 
-	 * @param onSave
-	 *            indicates if commit is called during 'save' operation or for
-	 *            some other reason (for example, if form is contained in a
-	 *            wizard or a multi-page editor and the user is about to leave
-	 *            the page).
-	 */
-	void commit(boolean onSave);
-
-	/**
-	 * Notifies the part that an object has been set as overall form's input.
-	 * The part can elect to react by revealing or selecting the object, or do
-	 * nothing if not applicable.
-	 * 
-	 * @return <code>true</code> if the part has selected and revealed the
-	 *         input object, <code>false</code> otherwise.
-	 */
-	boolean setFormInput(Object input);
-
-	/**
-	 * Instructs form part to transfer focus to the widget that should has focus
-	 * in that part. The method can do nothing (if it has no widgets capable of
-	 * accepting focus).
-	 */
-	void setFocus();
-
-	/**
-	 * Tests whether the form part is stale and needs refreshing. Parts can
-	 * receive notification from models that will make their content stale, but
-	 * may need to delay refreshing to improve performance (for example, there
-	 * is no need to immediately refresh a part on a form that is current on a
-	 * hidden page).
-	 * <p>
-	 * It is important to differentiate 'stale' and 'dirty' states. Part is
-	 * 'dirty' if user interacted with its editable widgets and changed the
-	 * values. In contrast, part is 'stale' when the data it presents in the
-	 * widgets has been changed in the model without direct user interaction.
-	 * 
-	 * @return <code>true</code> if the part needs refreshing,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean isStale();
-
-	/**
-	 * Refreshes the part completely from the information freshly obtained from
-	 * the model. The method will not be called if the part is not stale.
-	 * Otherwise, the part is responsible for clearing the 'stale' flag after
-	 * refreshing itself.
-	 */
-	void refresh();
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java
deleted file mode 100644
index 79159b5..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IManagedForm.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2003, 2008 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * Managed form wraps a form widget and adds life cycle methods for form parts.
- * A form part is a portion of the form that participates in form life cycle
- * events.
- * <p>
- * There is no 1/1 mapping between widgets and form parts. A widget like Section
- * can be a part by itself, but a number of widgets can gather around one form
- * part.
- * <p>
- * This interface should not be extended or implemented. New form instances
- * should be created using ManagedForm.
- * 
- * @see ManagedForm
- * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-public interface IManagedForm {
-	/**
-	 * Initializes the form by looping through the managed parts and
-	 * initializing them. Has no effect if already called once.
-	 * 
-	 * @since 3.1
-	 */
-	public void initialize();
-
-	/**
-	 * Returns the toolkit used by this form.
-	 * 
-	 * @return the toolkit
-	 */
-	public FormToolkit getToolkit();
-
-	/**
-	 * Returns the form widget managed by this form.
-	 * 
-	 * @return the form widget
-	 */
-	public ScrolledForm getForm();
-
-	/**
-	 * Reflows the form as a result of the layout change.
-	 * 
-	 * @param changed
-	 *            if <code>true</code>, discard cached layout information
-	 */
-	public void reflow(boolean changed);
-
-	/**
-	 * A part can use this method to notify other parts that implement
-	 * IPartSelectionListener about selection changes.
-	 * 
-	 * @param part
-	 *            the part that broadcasts the selection
-	 * @param selection
-	 *            the selection in the part
-	 */
-	public void fireSelectionChanged(IFormPart part, ISelection selection);
-
-	/**
-	 * Returns all the parts currently managed by this form.
-	 * 
-	 * @return the managed parts
-	 */
-	IFormPart[] getParts();
-
-	/**
-	 * Adds the new part to the form.
-	 * 
-	 * @param part
-	 *            the part to add
-	 */
-	void addPart(IFormPart part);
-
-	/**
-	 * Removes the part from the form.
-	 * 
-	 * @param part
-	 *            the part to remove
-	 */
-	void removePart(IFormPart part);
-
-	/**
-	 * Sets the input of this page to the provided object.
-	 * 
-	 * @param input
-	 *            the new page input
-	 * @return <code>true</code> if the form contains this object,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean setInput(Object input);
-
-	/**
-	 * Returns the current page input.
-	 * 
-	 * @return page input object or <code>null</code> if not applicable.
-	 */
-	Object getInput();
-
-	/**
-	 * Tests if form is dirty. A managed form is dirty if at least one managed
-	 * part is dirty.
-	 * 
-	 * @return <code>true</code> if at least one managed part is dirty,
-	 *         <code>false</code> otherwise.
-	 */
-	boolean isDirty();
-
-	/**
-	 * Notifies the form that the dirty state of one of its parts has changed.
-	 * The global dirty state of the form can be obtained by calling 'isDirty'.
-	 * 
-	 * @see #isDirty
-	 */
-	void dirtyStateChanged();
-
-	/**
-	 * Commits the dirty form. All pending changes in the widgets are flushed
-	 * into the model.
-	 * 
-	 * @param onSave
-	 */
-	void commit(boolean onSave);
-
-	/**
-	 * Tests if form is stale. A managed form is stale if at least one managed
-	 * part is stale. This can happen when the underlying model changes,
-	 * resulting in the presentation of the part being out of sync with the
-	 * model and needing refreshing.
-	 * 
-	 * @return <code>true</code> if the form is stale, <code>false</code>
-	 *         otherwise.
-	 */
-	boolean isStale();
-
-	/**
-	 * Notifies the form that the stale state of one of its parts has changed.
-	 * The global stale state of the form can be obtained by calling 'isStale'.
-	 */
-	void staleStateChanged();
-
-	/**
-	 * Refreshes the form by refreshing every part that is stale.
-	 */
-	void refresh();
-
-	/**
-	 * Sets the container that owns this form. Depending on the context, the
-	 * container may be wizard, editor page, editor etc.
-	 * 
-	 * @param container
-	 *            the container of this form
-	 */
-	void setContainer(Object container);
-
-	/**
-	 * Returns the container of this form.
-	 * 
-	 * @return the form container
-	 */
-	Object getContainer();
-
-	/**
-	 * Returns the message manager that will keep track of messages in this
-	 * form.
-	 * 
-	 * @return the message manager instance
-	 * @since 3.3
-	 */
-	IMessageManager getMessageManager();
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java
deleted file mode 100644
index 0d165d6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessage.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This interface encapsulates a single message that can be shown in a form.
- * Messages can be associated with controls, or be of a general nature.
- * 
- * @see IMessageManager
- * @since 3.3
- */
-public interface IMessage extends IMessageProvider {
-	/**
-	 * Returns the unique message key
-	 * 
-	 * @return the unique message key
-	 */
-	Object getKey();
-
-	/**
-	 * Returns data for application use
-	 * 
-	 * @return data object
-	 */
-	Object getData();
-
-	/**
-	 * Returns the control this message is associated with.
-	 * 
-	 * @return the control or <code>null</code> if this is a general message.
-	 */
-	Control getControl();
-
-	/**
-	 * Messages that are associated with controls can be shown with a prefix
-	 * that indicates the origin of the message (e.g. the label preceeding the
-	 * control).
-	 * 
-	 * @return the message prefix or <code>null</code> if this is a general
-	 *         message
-	 */
-	String getPrefix();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java
deleted file mode 100644
index c519fa5..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessageManager.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2007, 2008 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.widgets.Form;
-
-/**
- * This interface provides for managing typed messages in a form. Typed messages
- * are messages associated with a type that indicates their severity (error,
- * warning, information). The interface is responsible for:
- * <ul>
- * <li>Bridging the concept of typed messages and control decorations</li>
- * <li>Adding one or more messages per control in a form</li>
- * <li>Rolling the local messages up to the form header</li>
- * <li>Adding one or more general messages to the form header</li>
- * </ul>
- * <p>
- * To use it in a form, do the following:
- * <ol>
- * <li>For each interactive control, add a listener to it to monitor user input</li>
- * <li>Every time the input changes, validate it. If there is a problem, add a
- * message with a unique key to the manager. If there is already a message with
- * the same key in the manager, its type and message text will be replaced (no
- * duplicates). Note that you add can messages with different keys to the same
- * control to track multiple problems with the user input.</li>
- * <li>If the problem has been cleared, remove the message using the key
- * (attempting to remove a message that is not in the manager is safe).</li>
- * <li>If something happens in the form that is not related to any control, use
- * the other <code>addMessage</code> method.</li>
- * </ol>
- * <p>
- * This interface should only be referenced. It must not be implemented or
- * extended.
- * </p>
- * 
- * @since 3.3
- * @see IMessageProvider
- * @see IManagedForm
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
- */
-
-public interface IMessageManager {
-	/**
-	 * Adds a general message that is not associated with any decorated field.
-	 * Note that subsequent calls using the same key will not result in
-	 * duplicate messages. Instead, the previous message with the same key will
-	 * be replaced with the new message.
-	 * 
-	 * @param key
-	 *            a unique message key that will be used to look the message up
-	 *            later
-	 * 
-	 * @param messageText
-	 *            the message to add
-	 * @param data
-	 *            an object for application use (can be <code>null</code>)
-	 * @param type
-	 *            the message type as defined in <code>IMessageProvider</code>.
-	 */
-	void addMessage(Object key, String messageText, Object data, int type);
-
-	/**
-	 * Adds a message that should be associated with the provided control. Note
-	 * that subsequent calls using the same key will not result in duplicate
-	 * messages. Instead, the previous message with the same key will be
-	 * replaced with the new message.
-	 * 
-	 * @param key
-	 *            the unique message key
-	 * @param messageText
-	 *            the message to add
-	 * @param data
-	 *            an object for application use (can be <code>null</code>)
-	 * @param type
-	 *            the message type
-	 * @param control
-	 *            the control to associate the message with
-	 */
-	void addMessage(Object key, String messageText, Object data, int type,
-			Control control);
-
-	/**
-	 * Removes the general message with the provided key. Does nothing if
-	 * message for the key does not exist.
-	 * 
-	 * @param key
-	 *            the key of the message to remove
-	 */
-	void removeMessage(Object key);
-
-	/**
-	 * Removes all the general messages. If there are local messages associated
-	 * with controls, the replacement message may show up drawing user's
-	 * attention to these local messages. Otherwise, the container will clear
-	 * the message area.
-	 */
-	void removeMessages();
-
-	/**
-	 * Removes a keyed message associated with the provided control. Does
-	 * nothing if the message for that key does not exist.
-	 * 
-	 * @param key
-	 *            the id of the message to remove
-	 * @param control
-	 *            the control the message is associated with
-	 */
-	void removeMessage(Object key, Control control);
-
-	/**
-	 * Removes all the messages associated with the provided control. Does
-	 * nothing if there are no messages for this control.
-	 * 
-	 * @param control
-	 *            the control the messages are associated with
-	 */
-	void removeMessages(Control control);
-
-	/**
-	 * Removes all the local field messages and all the general container
-	 * messages.
-	 */
-	void removeAllMessages();
-
-	/**
-	 * Updates the message container with the messages currently in the manager.
-	 * There are two scenarios in which a client may want to use this method:
-	 * <ol>
-	 * <li>When controls previously managed by this manager have been disposed.</li>
-	 * <li>When automatic update has been turned off.</li>
-	 * </ol>
-	 * In all other situations, the manager will keep the form in sync
-	 * automatically.
-	 * 
-	 * @see #setAutoUpdate(boolean)
-	 */
-	void update();
-
-	/**
-	 * Controls whether the form is automatically updated when messages are
-	 * added or removed. By default, auto update is on. Clients can turn it off
-	 * prior to adding or removing a number of messages as a batch. Turning it
-	 * back on will trigger an update.
-	 * 
-	 * @param enabled
-	 *            sets the state of the automatic update
-	 */
-	void setAutoUpdate(boolean enabled);
-
-	/**
-	 * Tests whether the form will be automatically updated when messages are
-	 * added or removed.
-	 * 
-	 * @return <code>true</code> if auto update is active, <code>false</code>
-	 *         otherwise.
-	 */
-	boolean isAutoUpdate();
-
-	/**
-	 * Sets the alternative message prefix provider. The default prefix provider
-	 * is set by the manager.
-	 * 
-	 * @param provider
-	 *            the new prefix provider or <code>null</code> to turn the
-	 *            prefix generation off.
-	 */
-	void setMessagePrefixProvider(IMessagePrefixProvider provider);
-
-	/**
-	 * @return the current prefix provider or <code>null</code> if prefixes
-	 *         are not generated.
-	 */
-	IMessagePrefixProvider getMessagePrefixProvider();
-
-	/**
-	 * Message manager uses SWT.LEFT|SWT.BOTTOM for the default decoration
-	 * position. Use this method to change it.
-	 * 
-	 * @param position
-	 *            the decoration position
-	 * @see ControlDecoration
-	 */
-	void setDecorationPosition(int position);
-
-	/**
-	 * Returns the currently used decoration position for all control messages.
-	 * 
-	 * @return the current decoration position
-	 */
-
-	int getDecorationPosition();
-
-	/**
-	 * When message manager is used in context of a form, and there are
-	 * hyperlink listeners for messages in the header, the hyperlink event will
-	 * carry an object of type <code>IMessage[]</code> as an href. You can use
-	 * this method to create a summary text from this array consistent with the
-	 * tool tip used by the form header.
-	 * 
-	 * @param messages
-	 *            an array of messages
-	 * @return a textual representation of the messages with one message per
-	 *         line.
-	 * @see Form#addMessageHyperlinkListener(org.eclipse.ui.forms.events.IHyperlinkListener)
-	 */
-	String createSummary(IMessage[] messages);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java
deleted file mode 100644
index 5404f6a..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IMessagePrefixProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import org.eclipse.swt.widgets.Control;
-
-/**
- * This interface computes the prefix of a message that is created in the
- * context of a control. Since messages are rolled up to the header in the
- * message manager, it is important to create a prefix to indicate the context
- * of a message in the form. Typically the prefix is computed by looking at the
- * label that preceeds the control, if present. Alternative providers may
- * include other text to further specify the location of the message.
- * 
- * @see IMessageManager
- * @see IMessage
- * @since 3.3
- */
-public interface IMessagePrefixProvider {
-	/**
-	 * Returns the computed prefix for the provided control.
-	 * 
-	 * @param control
-	 *            the control to provide the prefix for
-	 * @return the computed prefix
-	 */
-	String getPrefix(Control control);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java
deleted file mode 100644
index a4ce605..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/IPartSelectionListener.java
+++ /dev/null
@@ -1,33 +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.forms;
-
-import org.eclipse.jface.viewers.ISelection;
-
-/**
- * Form parts can implement this interface if they want to be 
- * notified when another part on the same form changes selection 
- * state.
- * 
- * @see IFormPart
- * @since 3.0
- */
-public interface IPartSelectionListener {
-	/**
-	 * Called when the provided part has changed selection state.
-	 * 
-	 * @param part
-	 *            the selection source
-	 * @param selection
-	 *            the new selection
-	 */
-	public void selectionChanged(IFormPart part, ISelection selection);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java
deleted file mode 100644
index c72b122..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/ManagedForm.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * Managed form wraps a form widget and adds life cycle methods for form parts.
- * A form part is a portion of the form that participates in form life cycle
- * events.
- * <p>
- * There is requirement for 1/1 mapping between widgets and form parts. A widget
- * like Section can be a part by itself, but a number of widgets can join around
- * one form part.
- * <p>
- * Note to developers: this class is left public to allow its use beyond the
- * original intention (inside a multi-page editor's page). You should limit the
- * use of this class to make new instances inside a form container (wizard page,
- * dialog etc.). Clients that need access to the class should not do it
- * directly. Instead, they should do it through IManagedForm interface as much
- * as possible.
- * 
- * @since 3.0
- */
-public class ManagedForm implements IManagedForm {
-	private Object input;
-
-	private ScrolledForm form;
-
-	private FormToolkit toolkit;
-
-	private Object container;
-
-	private boolean ownsToolkit;
-
-	private boolean initialized;
-
-	private Vector parts = new Vector();
-
-	/**
-	 * Creates a managed form in the provided parent. Form toolkit and widget
-	 * will be created and owned by this object.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 */
-	public ManagedForm(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		ownsToolkit = true;
-		form = toolkit.createScrolledForm(parent);
-	}
-
-	/**
-	 * Creates a managed form that will use the provided toolkit and
-	 * 
-	 * @param toolkit
-	 * @param form
-	 */
-	public ManagedForm(FormToolkit toolkit, ScrolledForm form) {
-		this.form = form;
-		this.toolkit = toolkit;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#addPart(org.eclipse.ui.forms.IFormPart)
-	 */
-	public void addPart(IFormPart part) {
-		parts.add(part);
-		part.initialize(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#removePart(org.eclipse.ui.forms.IFormPart)
-	 */
-	public void removePart(IFormPart part) {
-		parts.remove(part);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getParts()
-	 */
-	public IFormPart[] getParts() {
-		return (IFormPart[]) parts.toArray(new IFormPart[parts.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getToolkit()
-	 */
-	public FormToolkit getToolkit() {
-		return toolkit;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getForm()
-	 */
-	public ScrolledForm getForm() {
-		return form;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#reflow(boolean)
-	 */
-	public void reflow(boolean changed) {
-		form.reflow(changed);
-	}
-
-	/**
-	 * A part can use this method to notify other parts that implement
-	 * IPartSelectionListener about selection changes.
-	 * 
-	 * @param part
-	 *            the part that broadcasts the selection
-	 * @param selection
-	 *            the selection in the part
-	 * @see IPartSelectionListener
-	 */
-	public void fireSelectionChanged(IFormPart part, ISelection selection) {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart cpart = (IFormPart) parts.get(i);
-			if (part.equals(cpart))
-				continue;
-			if (cpart instanceof IPartSelectionListener) {
-				((IPartSelectionListener) cpart).selectionChanged(part,
-						selection);
-			}
-		}
-	}
-
-	/**
-	 * Initializes the form by looping through the managed parts and
-	 * initializing them. Has no effect if already called once.
-	 */
-	public void initialize() {
-		if (initialized)
-			return;
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			part.initialize(this);
-		}
-		initialized = true;
-	}
-
-	/**
-	 * Disposes all the parts in this form.
-	 */
-	public void dispose() {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			part.dispose();
-		}
-		if (ownsToolkit) {
-			toolkit.dispose();
-		}
-	}
-
-	/**
-	 * Refreshes the form by refreshes all the stale parts. Since 3.1, this
-	 * method is performed on a UI thread when called from another thread so it
-	 * is not needed to wrap the call in <code>Display.syncExec</code> or
-	 * <code>asyncExec</code>.
-	 */
-	public void refresh() {
-		Thread t = Thread.currentThread();
-		Thread dt = toolkit.getColors().getDisplay().getThread();
-		if (t.equals(dt))
-			doRefresh();
-		else {
-			toolkit.getColors().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					doRefresh();
-				}
-			});
-		}
-	}
-
-	private void doRefresh() {
-		int nrefreshed = 0;
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isStale()) {
-				part.refresh();
-				nrefreshed++;
-			}
-		}
-		if (nrefreshed > 0)
-			form.reflow(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#commit(boolean)
-	 */
-	public void commit(boolean onSave) {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isDirty())
-				part.commit(onSave);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#setInput(java.lang.Object)
-	 */
-	public boolean setInput(Object input) {
-		boolean pageResult = false;
-
-		this.input = input;
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			boolean result = part.setFormInput(input);
-			if (result)
-				pageResult = true;
-		}
-		return pageResult;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getInput()
-	 */
-	public Object getInput() {
-		return input;
-	}
-
-	/**
-	 * Transfers the focus to the first form part.
-	 */
-	public void setFocus() {
-		if (parts.size() > 0) {
-			IFormPart part = (IFormPart) parts.get(0);
-			part.setFocus();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#isDirty()
-	 */
-	public boolean isDirty() {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isDirty())
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#isStale()
-	 */
-	public boolean isStale() {
-		for (int i = 0; i < parts.size(); i++) {
-			IFormPart part = (IFormPart) parts.get(i);
-			if (part.isStale())
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#dirtyStateChanged()
-	 */
-	public void dirtyStateChanged() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#staleStateChanged()
-	 */
-	public void staleStateChanged() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#getContainer()
-	 */
-	public Object getContainer() {
-		return container;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IManagedForm#setContainer(java.lang.Object)
-	 */
-	public void setContainer(Object container) {
-		this.container = container;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IManagedForm#getMessageManager()
-	 */
-	public IMessageManager getMessageManager() {
-		return form.getMessageManager();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/MasterDetailsBlock.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/MasterDetailsBlock.java
deleted file mode 100644
index d9fbbe6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/MasterDetailsBlock.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Roland Tepp (roland@videobet.com) - patch (see Bugzilla #107197) 
- *******************************************************************************/
-package org.eclipse.ui.forms;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.graphics.GC;
-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.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * This class implements the 'master/details' UI pattern suitable for inclusion
- * in a form. The block consists of two parts: 'master' and 'details' in a sash
- * form that allows users to change the relative ratio on the page. The master
- * part needs to be created by the users of this class. The details part is
- * created by the block.
- * <p>
- * The master part is responsible for adding itself as a form part and firing
- * selection events. The details part catches the selection events and tries to
- * load a page registered to handle the selected object(s). The page shows the
- * details of the selected object(s) and allows users to edit them.
- * <p>
- * Details pages can be registered statically using 'registerPage' or
- * dynamically through the use of 'IDetailsPageProvider' in case where different
- * pages need to be shown for objects of the same type depending on their state.
- * <p>
- * Subclasses are required to implement abstract methods of this class. Master
- * part must be created and at least one details page should be registered in
- * order to show details of the objects selected in the master part. Tool bar
- * actions can be optionally added to the tool bar manager.
- * 
- * @see DetailsPart
- * @see IDetailsPage
- * @see IDetailsPageProvider
- * @since 3.0
- */
-public abstract class MasterDetailsBlock {
-	/**
-	 * Details part created by the block. No attempt should be made to access
-	 * this field inside <code>createMasterPart</code> because it has not been
-	 * created yet and will be <code>null</code>.
-	 */
-	protected DetailsPart detailsPart;
-
-	/**
-	 * The form that is the parent of both master and details part. The form
-	 * allows users to change the ratio between the two parts.
-	 */
-	protected SashForm sashForm;
-	
-	static final int DRAGGER_SIZE = 40;
-	
-	class MDSashForm extends SashForm {
-		ArrayList sashes = new ArrayList();
-		Listener listener = new Listener () {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-				case SWT.MouseEnter:
-					e.widget.setData("hover", Boolean.TRUE); //$NON-NLS-1$
-					((Control)e.widget).redraw();
-					break;
-				case SWT.MouseExit:
-					e.widget.setData("hover", null); //$NON-NLS-1$
-					((Control)e.widget).redraw();
-					break;
-				case SWT.Paint:
-					onSashPaint(e);
-				break;
-				case SWT.Resize:
-					hookSashListeners();
-				break;
-				}
-			}
-		};
-		public MDSashForm(Composite parent, int style) {
-			super(parent, style);
-		}
-		
-		public void layout(boolean changed) {
-			super.layout(changed);
-			hookSashListeners();
-		}
-		
-		public void layout(Control [] children) {
-			super.layout(children);
-			hookSashListeners();
-		}
-
-		private void hookSashListeners() {
-			purgeSashes();
-			Control [] children = getChildren();
-			for (int i=0; i<children.length; i++) {
-				if (children[i] instanceof Sash) {
-					Sash sash = (Sash)children[i];
-					if (sashes.contains(sash))
-						continue;
-					sash.addListener(SWT.Paint, listener);
-					sash.addListener(SWT.MouseEnter, listener);
-					sash.addListener(SWT.MouseExit, listener);
-					sashes.add(sash);
-				}
-			}
-		}
-		private void purgeSashes() {
-			for (Iterator iter=sashes.iterator(); iter.hasNext();) {
-				Sash sash = (Sash)iter.next();
-				if (sash.isDisposed())
-					iter.remove();
-			}
-		}
-	}
-
-	/**
-	 * Creates the content of the master/details block inside the managed form.
-	 * This method should be called as late as possible inside the parent part.
-	 * 
-	 * @param managedForm
-	 *            the managed form to create the block in
-	 */
-	public void createContent(IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		createContent(managedForm, form.getBody());
-	}
-	/**
-	 * Creates the content of the master/details block inside the parent composite.
-	 * This method should be called as late as possible inside the parent part.
-	 * 
-	 * @param managedForm
-	 *            the managed form to create the block in
-	 * @since 3.4
-	 */
-	public void createContent(IManagedForm managedForm, Composite parent) {
-		final ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		applyLayout(parent);
-		sashForm = new MDSashForm(parent, SWT.NULL);
-		sashForm.setData("form", managedForm); //$NON-NLS-1$
-		toolkit.adapt(sashForm, false, false);
-		sashForm.setMenu(parent.getMenu());
-		applyLayoutData(sashForm);
-		createMasterPart(managedForm, sashForm);
-		createDetailsPart(managedForm, sashForm);
-		hookResizeListener();
-		createToolBarActions(managedForm);
-		form.updateToolBar();
-	}
-	
-	/**
-	 * Applies layout data to the sash form containing master and detail parts
-	 * of the master/details block.
-	 * 
-	 * <p>The default implementation fills the whole parent composite area.
-	 * Override this method if master/details block is to be placed on a form
-	 * along with other components.</p>
-	 * 
-	 * <p>Implementations that override this method should also override 
-	 * <code>applyLayout(Composite)</code> method implementation.</p>
-	 * 
-	 * @param sashForm The sash form to be laid out on the parent composite.
-	 * @see #applyLayout(Composite)
-	 * @since 3.4
-	 */
-	protected void applyLayoutData(SashForm sashForm) {
-		sashForm.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	/**
-	 * Applies layout to the parent composite of the master/details block.
-	 * 
-	 * <p>The default implementation fills the whole parent composite area.
-	 * Override this method if master/details block is to be placed on a form
-	 * along with other components.</p>
-	 * 
-	 * <p>Implementations that override this method should also override 
-	 * <code>applyLayoutData(SashForm)</code> method implementation.</p>
-	 * 
-	 * @param parent parent composite for the master/details block
-	 * @see #applyLayoutData(SashForm)
-	 * @since 3.4
-	 */
-	protected void applyLayout(final Composite parent) {
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		parent.setLayout(layout);
-	}
-	
-	private void hookResizeListener() {
-		Listener listener = ((MDSashForm)sashForm).listener;
-		Control [] children = sashForm.getChildren();
-		for (int i=0; i<children.length; i++) {
-			if (children[i] instanceof Sash) continue;
-			children[i].addListener(SWT.Resize, listener);
-		}
-	}
-
-	/**
-	 * Implement this method to create a master part in the provided parent.
-	 * Typical master parts are section parts that contain tree or table viewer.
-	 * 
-	 * @param managedForm
-	 *            the parent form
-	 * @param parent
-	 *            the parent composite
-	 */
-	protected abstract void createMasterPart(IManagedForm managedForm,
-			Composite parent);
-
-	/**
-	 * Implement this method to statically register pages for the expected
-	 * object types. This mechanism can be used when there is 1-&gt;1 mapping
-	 * between object classes and details pages.
-	 * 
-	 * @param detailsPart
-	 *            the details part
-	 */
-	protected abstract void registerPages(DetailsPart detailsPart);
-
-	/**
-	 * Implement this method to create form tool bar actions and add them to the
-	 * form tool bar if desired.
-	 * 
-	 * @param managedForm
-	 *            the form that owns the tool bar
-	 */
-	protected abstract void createToolBarActions(IManagedForm managedForm);
-
-	private void createDetailsPart(final IManagedForm mform, Composite parent) {
-		detailsPart = new DetailsPart(mform, parent, SWT.NULL);
-		mform.addPart(detailsPart);
-		registerPages(detailsPart);
-	}
-	
-	private void onSashPaint(Event e) {
-		Sash sash = (Sash)e.widget;
-		IManagedForm form = (IManagedForm)sash.getParent().getData("form"); //$NON-NLS-1$
-		FormColors colors = form.getToolkit().getColors();
-		boolean vertical = (sash.getStyle() & SWT.VERTICAL)!=0;
-		GC gc = e.gc;
-		Boolean hover = (Boolean)sash.getData("hover"); //$NON-NLS-1$
-		gc.setBackground(colors.getColor(IFormColors.TB_BG));
-		gc.setForeground(colors.getColor(IFormColors.TB_BORDER));
-		Point size = sash.getSize();
-		if (vertical) {
-			if (hover!=null)
-				gc.fillRectangle(0, 0, size.x, size.y);
-			//else
-				//gc.drawLine(1, 0, 1, size.y-1);
-		}
-		else {
-			if (hover!=null)
-				gc.fillRectangle(0, 0, size.x, size.y);
-			//else
-				//gc.drawLine(0, 1, size.x-1, 1);				
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java
deleted file mode 100644
index 618a352..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/SectionPart.java
+++ /dev/null
@@ -1,117 +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.ui.forms;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * Section part implements IFormPart interface based on the Section widget. It
- * can either wrap the widget or create one itself.
- * <p>
- * Subclasses should extend <code>SectionPart</code> and implement life cycle
- * methods like <code>refresh</code>, <code>commit</code>,
- * <code>setFocus</code> etc. Note that most of these methods are not empty -
- * calling <code>super</code> is required.
- * 
- * @see Section
- * @since 3.0
- */
-public class SectionPart extends AbstractFormPart {
-	private Section section;
-
-	/**
-	 * Creates a new section part based on the provided section.
-	 * 
-	 * @param section
-	 *            the section to use
-	 */
-	public SectionPart(Section section) {
-		this.section = section;
-		hookListeners();
-	}
-
-	/**
-	 * Creates a new section part inside the provided parent and using the
-	 * provided toolkit. The section part will create the section widget.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param toolkit
-	 *            the toolkit to use
-	 * @param style
-	 *            the section widget style
-	 */
-	public SectionPart(Composite parent, FormToolkit toolkit, int style) {
-		this(toolkit.createSection(parent, style));
-	}
-
-	/**
-	 * Adds listeners to the underlying widget.
-	 */
-	protected void hookListeners() {
-		if ((section.getExpansionStyle() & Section.TWISTIE) != 0
-				|| (section.getExpansionStyle() & Section.TREE_NODE) != 0) {
-			section.addExpansionListener(new ExpansionAdapter() {
-				public void expansionStateChanging(ExpansionEvent e) {
-					SectionPart.this.expansionStateChanging(e.getState());
-				}
-
-				public void expansionStateChanged(ExpansionEvent e) {
-					SectionPart.this.expansionStateChanged(e.getState());
-				}
-			});
-		}
-	}
-
-	/**
-	 * Returns the section widget used in this part.
-	 * 
-	 * @return the section widget
-	 */
-	public Section getSection() {
-		return section;
-	}
-
-	/**
-	 * The section is about to expand or collapse.
-	 * 
-	 * @param expanding
-	 *            <code>true</code> for expansion, <code>false</code> for
-	 *            collapse.
-	 */
-	protected void expansionStateChanging(boolean expanding) {
-	}
-
-	/**
-	 * The section has expanded or collapsed.
-	 * 
-	 * @param expanded
-	 *            <code>true</code> for expansion, <code>false</code> for
-	 *            collapse.
-	 */
-	protected void expansionStateChanged(boolean expanded) {
-		getManagedForm().getForm().reflow(false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.AbstractFormPart#setFocus()
-	 */
-	public void setFocus() {
-		Control client = section.getClient();
-		if (client != null)
-			client.setFocus();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java
deleted file mode 100644
index 60e045e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormEditor.java
+++ /dev/null
@@ -1,654 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.editor;
-
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
-
-/**
- * This class forms a base of multi-page form editors that typically use one or
- * more pages with forms and one page for raw source of the editor input.
- * <p>
- * Pages are added 'lazily' i.e. adding a page reserves a tab for it but does
- * not cause the page control to be created. Page control is created when an
- * attempt is made to select the page in question. This allows editors with
- * several tabs and complex pages to open quickly.
- * <p>
- * Subclasses should extend this class and implement <code>addPages</code>
- * method. One of the two <code>addPage</code> methods should be called to
- * contribute pages to the editor. One adds complete (standalone) editors as
- * nested tabs. These editors will be created right away and will be hooked so
- * that key bindings, selection service etc. is compatible with the one for the
- * standalone case. The other method adds classes that implement
- * <code>IFormPage</code> interface. These pages will be created lazily and
- * they will share the common key binding and selection service. Since 3.1,
- * FormEditor is a page change provider. It allows listeners to attach to it and
- * get notified when pages are changed. This new API in JFace allows dynamic
- * help to update on page changes.
- * 
- * @since 3.0
- */
-public abstract class FormEditor extends MultiPageEditorPart  {
-
-	/**
-	 * An array of pages currently in the editor. Page objects are not limited
-	 * to those that implement <code>IFormPage</code>, hence the size of this
-	 * array matches the number of pages as viewed by the user.
-	 * <p>
-	 * Subclasses can access this field but should not modify it.
-	 */
-	protected Vector pages = new Vector();
-
-	private FormToolkit toolkit;
-
-	private int currentPage = -1;
-
-	private static class FormEditorSelectionProvider extends
-			MultiPageSelectionProvider {
-		private ISelection globalSelection;
-
-		/**
-		 * @param formEditor the editor
-		 */
-		public FormEditorSelectionProvider(FormEditor formEditor) {
-			super(formEditor);
-		}
-
-		public ISelection getSelection() {
-			IEditorPart activeEditor = ((FormEditor) getMultiPageEditor())
-					.getActiveEditor();
-			if (activeEditor != null) {
-				ISelectionProvider selectionProvider = activeEditor.getSite()
-						.getSelectionProvider();
-				if (selectionProvider != null)
-					return selectionProvider.getSelection();
-			}
-			if (globalSelection != null) {
-			    return globalSelection;
-			}
-			return StructuredSelection.EMPTY;
-		}
-
-		/*
-		 * (non-Javadoc) Method declared on <code> ISelectionProvider </code> .
-		 */
-		public void setSelection(ISelection selection) {
-			IEditorPart activeEditor = ((FormEditor) getMultiPageEditor())
-					.getActiveEditor();
-			if (activeEditor != null) {
-				ISelectionProvider selectionProvider = activeEditor.getSite()
-						.getSelectionProvider();
-				if (selectionProvider != null)
-					selectionProvider.setSelection(selection);
-			} else {
-				this.globalSelection = selection;
-				fireSelectionChanged(new SelectionChangedEvent(this,
-						globalSelection));
-			}
-		}
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public FormEditor() {
-	}
-
-	/**
-	 * Overrides super to plug in a different selection provider.
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		setSite(site);
-		setInput(input);
-		site.setSelectionProvider(new FormEditorSelectionProvider(this));
-	}
-
-	/**
-	 * Creates the common toolkit for this editor and adds pages to the editor.
-	 * 
-	 * @see #addPages
-	 */
-	protected void createPages() {
-		addPages();
-	}
-
-	/*
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPageContainer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Composite createPageContainer(Composite parent) {
-		parent = super.createPageContainer(parent);
-		toolkit = createToolkit(parent.getDisplay());
-		return parent;
-	}
-
-	/**
-	 * Creates the form toolkit. The method can be implemented to substitute a
-	 * subclass of the toolkit that should be used for this editor. A typical
-	 * use of this method would be to create the form toolkit using one shared
-	 * <code>FormColors</code> object to share resources across the multiple
-	 * editor instances.
-	 * 
-	 * @param display
-	 *            the display to use when creating the toolkit
-	 * @return the newly created toolkit instance
-	 */
-	protected FormToolkit createToolkit(Display display) {
-		return new FormToolkit(display);
-	}
-
-	/**
-	 * Subclass should implement this method to add pages to the editor using
-	 * 'addPage(IFormPage)' method.
-	 */
-	protected abstract void addPages();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IPageChangeProvider#getSelectedPage()
-	 */
-	public Object getSelectedPage() {
-		return getActivePageInstance();
-	}
-
-	/**
-	 * Adds the form page to this editor. Form page will be loaded lazily. Its
-	 * part control will not be created until it is activated for the first
-	 * time.
-	 * 
-	 * @param page
-	 *            the form page to add
-	 */
-	public int addPage(IFormPage page) throws PartInitException {
-		int i = super.addPage(page.getPartControl());
-		configurePage(i, page);
-		return i;
-	}
-
-	/**
-	 * Adds the form page to this editor at the specified index (0-based). Form
-	 * page will be loaded lazily. Its part control will not be created until it
-	 * is activated for the first time.
-	 * 
-	 * @param index
-	 *            the position to add the page at (0-based)
-	 * @param page
-	 *            the form page to add
-	 * @since 3.1
-	 */
-	public void addPage(int index, IFormPage page) throws PartInitException {
-		super.addPage(index, page.getPartControl());
-		configurePage(index, page);
-		updatePageIndices(index+1);
-	}
-
-	/**
-	 * Adds a simple SWT control as a page. Overrides superclass implementation
-	 * to keep track of pages.
-	 * 
-	 * @param control
-	 *            the page control to add
-	 * @return the 0-based index of the newly added page
-	 */
-	public int addPage(Control control) {
-		int i = super.addPage(control);
-		try {
-			registerPage(-1, control);
-		} catch (PartInitException e) {
-			// cannot happen for controls
-		}
-		return i;
-	}
-
-	/**
-	 * Adds a simple SWT control as a page. Overrides superclass implementation
-	 * to keep track of pages.
-	 * 
-	 * @param control
-	 *            the page control to add
-	 * @param index
-	 *            the index at which to add the page (0-based)
-	 * @since 3.1
-	 */
-	public void addPage(int index, Control control) {
-		super.addPage(index, control);
-		try {
-			registerPage(index, control);
-		} catch (PartInitException e) {
-			// cannot happen for controls
-		}
-		updatePageIndices(index+1);
-	}
-
-	/**
-	 * Tests whether the editor is dirty by checking all the pages that
-	 * implement <code>IFormPage</code>. If none of them is dirty, the method
-	 * delegates further processing to <code>super.isDirty()</code>.
-	 * 
-	 * @return <code>true</code> if any of the pages in the editor are dirty,
-	 *         <code>false</code> otherwise.
-	 * @since 3.1
-	 */
-
-	public boolean isDirty() {
-		if (pages != null) {
-			for (int i = 0; i < pages.size(); i++) {
-				Object page = pages.get(i);
-				if (page instanceof IFormPage) {
-					IFormPage fpage = (IFormPage) page;
-					if (fpage.isDirty())
-						return true;
-				}
-			}
-		}
-		return super.isDirty();
-	}
-	
-	/**
-	 * Commits all dirty pages in the editor. This method should
-	 * be called as a first step of a 'save' operation.
-	 * @param onSave <code>true</code> if commit is performed as part
-	 * of the 'save' operation, <code>false</code> otherwise.
-	 * @since 3.3
-	 */
-
-	protected void commitPages(boolean onSave) {
-		if (pages != null) {
-			for (int i = 0; i < pages.size(); i++) {
-				Object page = pages.get(i);
-				if (page instanceof IFormPage) {
-					IFormPage fpage = (IFormPage)page;
-					IManagedForm mform = fpage.getManagedForm();
-					if (mform != null && mform.isDirty())
-						mform.commit(onSave);
-				}
-			}
-		}	
-	}
-
-	/**
-	 * Adds a complete editor part to the multi-page editor.
-	 * 
-	 * @see MultiPageEditorPart#addPage(IEditorPart, IEditorInput)
-	 */
-	public int addPage(IEditorPart editor, IEditorInput input)
-			throws PartInitException {
-		int index = super.addPage(editor, input);
-		if (editor instanceof IFormPage)
-			configurePage(index, (IFormPage) editor);
-		else
-			registerPage(-1, editor);
-		return index;
-	}
-
-	/**
-	 * Adds a complete editor part to the multi-page editor at the specified
-	 * position.
-	 * 
-	 * @see MultiPageEditorPart#addPage(int, IEditorPart, IEditorInput)
-	 * @since 3.1
-	 */
-	public void addPage(int index, IEditorPart editor, IEditorInput input)
-			throws PartInitException {
-		super.addPage(index, editor, input);
-		if (editor instanceof IFormPage)
-			configurePage(index, (IFormPage) editor);
-		else
-			registerPage(index, editor);
-		updatePageIndices(index+1);
-	}
-
-	/**
-	 * Configures the form page.
-	 * 
-	 * @param index
-	 *            the page index
-	 * @param page
-	 *            the page to configure
-	 * @throws PartInitException
-	 *             if there are problems in configuring the page
-	 */
-	protected void configurePage(int index, IFormPage page)
-			throws PartInitException {
-		setPageText(index, page.getTitle());
-		// setPageImage(index, page.getTitleImage());
-		page.setIndex(index);
-		registerPage(index, page);
-	}
-
-	/**
-	 * Overrides the superclass to remove the page from the page table.
-	 * 
-	 * @param pageIndex
-	 *            the 0-based index of the page in the editor
-	 */
-	public void removePage(int pageIndex) {
-		if (pageIndex >= 0 && pageIndex < pages.size()) {
-			Object page = pages.get(pageIndex);
-			pages.remove(page);
-			if (page instanceof IFormPage) {
-				IFormPage fpage = (IFormPage) page;
-				if (!fpage.isEditor())
-					fpage.dispose();
-			}
-			updatePageIndices(pageIndex);
-		}
-		super.removePage(pageIndex);
-	}
-
-	// fix the page indices after the removal/insertion
-	private void updatePageIndices(int start) {
-		for (int i = start; i < pages.size(); i++) {
-			Object page = pages.get(i);
-			if (page instanceof IFormPage) {
-				IFormPage fpage = (IFormPage) page;
-				fpage.setIndex(i);
-			}
-		}
-	}
-
-	/**
-	 * Called to indicate that the editor has been made dirty or the changes
-	 * have been saved.
-	 */
-	public void editorDirtyStateChanged() {
-		firePropertyChange(PROP_DIRTY);
-	}
-
-	/**
-	 * Disposes the pages and the toolkit after disposing the editor itself.
-	 * Subclasses must call 'super' when reimplementing the method.
-	 */
-	public void dispose() {
-		super.dispose();
-		for (int i = 0; i < pages.size(); i++) {
-			Object page = pages.get(i);
-			if (page instanceof IFormPage) {
-				IFormPage fpage = (IFormPage) page;
-				// don't dispose source pages because they will
-				// be disposed as nested editors by the superclass
-				if (!fpage.isEditor())
-					fpage.dispose();
-			}
-		}
-		pages = null;
-		// toolkit may be null if editor has been instantiated
-		// but never created - see defect #62190
-		if (toolkit != null) {
-			toolkit.dispose();
-			toolkit = null;
-		}
-	}
-
-	/**
-	 * Returns the toolkit owned by this editor.
-	 * 
-	 * @return the toolkit object
-	 */
-	public FormToolkit getToolkit() {
-		return toolkit;
-	}
-
-	/**
-	 * Widens the visibility of the method in the superclass.
-	 * 
-	 * @return the active nested editor
-	 */
-	public IEditorPart getActiveEditor() {
-		return super.getActiveEditor();
-	}
-
-	/**
-	 * Returns the current page index. The value is identical to the value of
-	 * 'getActivePage()' except during the page switch, when this method still
-	 * has the old active page index.
-	 * <p>
-	 * Another important difference is during the editor closing. When the tab
-	 * folder is disposed, 'getActivePage()' will return -1, while this method
-	 * will still return the last active page.
-	 * 
-	 * @see #getActivePage
-	 * @return the currently selected page or -1 if no page is currently
-	 *         selected
-	 */
-	protected int getCurrentPage() {
-		return currentPage;
-	}
-
-	/**
-	 * @see MultiPageEditorPart#pageChange(int)
-	 */
-	protected void pageChange(int newPageIndex) {
-		// fix for windows handles
-		int oldPageIndex = getCurrentPage();
-		if (oldPageIndex != -1 && pages.size() > oldPageIndex
-				&& pages.get(oldPageIndex) instanceof IFormPage
-				&& oldPageIndex != newPageIndex) {
-			// Check the old page
-			IFormPage oldFormPage = (IFormPage) pages.get(oldPageIndex);
-			if (oldFormPage.canLeaveThePage() == false) {
-				setActivePage(oldPageIndex);
-				return;
-			}
-		}
-		// Now is the absolute last moment to create the page control.
-		Object page = pages.get(newPageIndex);
-		if (page instanceof IFormPage) {
-			IFormPage fpage = (IFormPage) page;
-			if (fpage.getPartControl() == null) {
-				fpage.createPartControl(getContainer());
-				setControl(newPageIndex, fpage.getPartControl());
-				fpage.getPartControl().setMenu(getContainer().getMenu());
-			}
-		}
-		if (oldPageIndex != -1 && pages.size() > oldPageIndex
-				&& pages.get(oldPageIndex) instanceof IFormPage) {
-			// Commit old page before activating the new one
-			IFormPage oldFormPage = (IFormPage) pages.get(oldPageIndex);
-			IManagedForm mform = oldFormPage.getManagedForm();
-			if (mform != null)
-				mform.commit(false);
-		}
-		if (pages.size() > newPageIndex
-				&& pages.get(newPageIndex) instanceof IFormPage)
-			((IFormPage) pages.get(newPageIndex)).setActive(true);
-		if (oldPageIndex != -1 && pages.size() > oldPageIndex
-				&& newPageIndex != oldPageIndex && 
-				pages.get(oldPageIndex) instanceof IFormPage)
-			((IFormPage) pages.get(oldPageIndex)).setActive(false);
-		// Call super - this will cause pages to switch
-		super.pageChange(newPageIndex);
-		this.currentPage = newPageIndex;
-	}
-
-	/**
-	 * Sets the active page using the unique page identifier.
-	 * 
-	 * @param pageId
-	 *            the id of the page to switch to
-	 * @return page that was set active or <samp>null </samp> if not found.
-	 */
-	public IFormPage setActivePage(String pageId) {
-		for (int i = 0; i < pages.size(); i++) {
-			Object page = pages.get(i);
-			if (page instanceof IFormPage) {
-				IFormPage fpage = (IFormPage) page;
-				if (fpage.getId().equals(pageId)) {
-					setActivePage(i);
-					return fpage;
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Finds the page instance that has the provided id.
-	 * 
-	 * @param pageId
-	 *            the id of the page to find
-	 * @return page with the matching id or <code>null</code> if not found.
-	 */
-	public IFormPage findPage(String pageId) {
-		for (int i = 0; i < pages.size(); i++) {
-			Object page = pages.get(i);
-			if (page instanceof IFormPage) {
-				IFormPage fpage = (IFormPage) pages.get(i);
-				if (fpage.getId().equals(pageId))
-					return fpage;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Sets the active page using the unique page identifier and sets its input
-	 * to the provided object.
-	 * 
-	 * @param pageId
-	 *            the id of the page to switch to
-	 * @param pageInput
-	 *            the page input
-	 * @return page that was set active or <samp>null </samp> if not found.
-	 */
-	public IFormPage setActivePage(String pageId, Object pageInput) {
-		IFormPage page = setActivePage(pageId);
-		if (page != null) {
-			IManagedForm mform = page.getManagedForm();
-			if (mform != null)
-				mform.setInput(pageInput);
-		}
-		return page;
-	}
-
-	/**
-	 * Iterates through the pages calling similar method until a page is found
-	 * that contains the desired page input.
-	 * 
-	 * @param pageInput
-	 *            the object to select and reveal
-	 * @return the page that accepted the request or <code>null</code> if no
-	 *         page has the desired object.
-	 * @see #setActivePage(String, Object)
-	 */
-	public IFormPage selectReveal(Object pageInput) {
-		for (int i = 0; i < pages.size(); i++) {
-			Object page = pages.get(i);
-			if (page instanceof IFormPage) {
-				IFormPage fpage = (IFormPage) page;
-				if (fpage.selectReveal(pageInput))
-					return fpage;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns active page instance if the currently selected page index is not
-	 * -1, or <code>null</code> if it is.
-	 * 
-	 * @return active page instance if selected, or <code>null</code> if no
-	 *         page is currently active.
-	 */
-	public IFormPage getActivePageInstance() {
-		int index = getActivePage();
-		if (index != -1) {
-			Object page = pages.get(index);
-			if (page instanceof IFormPage)
-				return (IFormPage) page;
-		}
-		return null;
-	}
-
-	/**
-	 * @see MultiPageEditorPart#setActivePage(int)
-	 */
-	protected void setActivePage(int pageIndex) {
-		// fix for window handles problem
-		// this should be called only when the editor is first opened
-		if (pages.size() > pageIndex
-				&& pages.get(pageIndex) instanceof IFormPage) {
-			super.setActivePage(pageIndex);
-			IFormPage activePage = (IFormPage) pages.get(pageIndex);
-			activePage.setActive(true);
-		} else
-			super.setActivePage(pageIndex);
-		updateActionBarContributor(pageIndex);
-	}
-
-	/**
-	 * Notifies action bar contributor about page change.
-	 * 
-	 * @param pageIndex
-	 *            the index of the new page
-	 */
-	protected void updateActionBarContributor(int pageIndex) {
-		// this is to enable the undo/redo actions before a page change has
-		// occurred
-		IEditorActionBarContributor contributor = getEditorSite()
-				.getActionBarContributor();
-		if (contributor != null
-				&& contributor instanceof MultiPageEditorActionBarContributor) {
-			((MultiPageEditorActionBarContributor) contributor)
-					.setActivePage(getEditor(pageIndex));
-		}
-	}
-
-	/**
-	 * Closes the editor programmatically.
-	 * 
-	 * @param save
-	 *            if <code>true</code>, the content should be saved before
-	 *            closing.
-	 */
-	public void close(final boolean save) {
-		Display display = getSite().getShell().getDisplay();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				if (toolkit != null) {
-					getSite().getPage().closeEditor(FormEditor.this, save);
-				}
-			}
-		});
-	}
-
-	private void registerPage(int index, Object page) throws PartInitException {
-		if (!pages.contains(page)) {
-			if (index == -1)
-				pages.add(page);
-			else
-				pages.add(index, page);
-		}
-		if (page instanceof IFormPage) {
-			IFormPage fpage = (IFormPage) page;
-			if (fpage.isEditor() == false)
-				fpage.init(getEditorSite(), getEditorInput());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormPage.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormPage.java
deleted file mode 100644
index c2c53cc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/FormPage.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.editor;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.part.EditorPart;
-/**
- * A base class that all pages that should be added to FormEditor must subclass.
- * Form page has an instance of PageForm that extends managed form. Subclasses
- * should override method 'createFormContent(ManagedForm)' to fill the form with
- * content. Note that page itself can be loaded lazily (on first open).
- * Consequently, the call to create the form content can come after the editor
- * has been opened for a while (in fact, it is possible to open and close the
- * editor and never create the form because no attempt has been made to show the
- * page).
- * 
- * @since 3.0
- */
-public class FormPage extends EditorPart implements IFormPage {
-	private FormEditor editor;
-	private PageForm mform;
-	private int index;
-	private String id;
-	
-	private static class PageForm extends ManagedForm {
-		public PageForm(FormPage page, ScrolledForm form) {
-			super(page.getEditor().getToolkit(), form);
-			setContainer(page);
-		}
-		
-		public FormPage getPage() {
-			return (FormPage)getContainer();
-		}
-		public void dirtyStateChanged() {
-			getPage().getEditor().editorDirtyStateChanged();
-		}
-		public void staleStateChanged() {
-			if (getPage().isActive())
-				refresh();
-		}
-	}
-	/**
-	 * A constructor that creates the page and initializes it with the editor.
-	 * 
-	 * @param editor
-	 *            the parent editor
-	 * @param id
-	 *            the unique identifier
-	 * @param title
-	 *            the page title
-	 */
-	public FormPage(FormEditor editor, String id, String title) {
-		this(id, title);
-		initialize(editor);
-	}
-	/**
-	 * The constructor. The parent editor need to be passed in the
-	 * <code>initialize</code> method if this constructor is used.
-	 * 
-	 * @param id
-	 *            a unique page identifier
-	 * @param title
-	 *            a user-friendly page title
-	 */
-	public FormPage(String id, String title) {
-		this.id = id;
-		setPartName(title);
-	}
-	/**
-	 * Initializes the form page.
-	 * 
-	 * @see IEditorPart#init
-	 */
-	public void init(IEditorSite site, IEditorInput input) {
-		setSite(site);
-		setInput(input);
-	}
-	/**
-	 * Primes the form page with the parent editor instance.
-	 * 
-	 * @param editor
-	 *            the parent editor
-	 */
-	public void initialize(FormEditor editor) {
-		this.editor = editor;
-	}
-	/**
-	 * Returns the parent editor.
-	 * 
-	 * @return parent editor instance
-	 */
-	public FormEditor getEditor() {
-		return editor;
-	}
-	/**
-	 * Returns the managed form owned by this page.
-	 * 
-	 * @return the managed form
-	 */
-	public IManagedForm getManagedForm() {
-		return mform;
-	}
-	/**
-	 * Implements the required method by refreshing the form when set active.
-	 * Subclasses must call super when overriding this method.
-	 */
-	public void setActive(boolean active) {
-		if (active) {
-			// We are switching to this page - refresh it
-			// if needed.
-			if (mform != null)
-				mform.refresh();
-		}
-	}
-	/**
-	 * Tests if the page is active by asking the parent editor if this page is
-	 * the currently active page.
-	 * 
-	 * @return <code>true</code> if the page is currently active,
-	 *         <code>false</code> otherwise.
-	 */
-	public boolean isActive() {
-		return this.equals(editor.getActivePageInstance());
-	}
-	/**
-	 * Creates the part control by creating the managed form using the parent
-	 * editor's toolkit. Subclasses should override
-	 * <code>createFormContent(IManagedForm)</code> to populate the form with
-	 * content.
-	 * 
-	 * @param parent
-	 *            the page parent composite
-	 */
-	public void createPartControl(Composite parent) {
-		ScrolledForm form = editor.getToolkit().createScrolledForm(parent);
-		mform = new PageForm(this, form);
-		BusyIndicator.showWhile(parent.getDisplay(), new Runnable() {
-			public void run() {
-				createFormContent(mform);
-			}
-		});
-	}
-	/**
-	 * Subclasses should override this method to create content in the form
-	 * hosted in this page.
-	 * 
-	 * @param managedForm
-	 *            the form hosted in this page.
-	 */
-	protected void createFormContent(IManagedForm managedForm) {
-	}
-	/**
-	 * Returns the form page control.
-	 * 
-	 * @return managed form's control
-	 */
-	public Control getPartControl() {
-		return mform != null ? mform.getForm() : null;
-	}
-	/**
-	 * Disposes the managed form.
-	 */
-	public void dispose() {
-		if (mform != null)
-			mform.dispose();
-	}
-	/**
-	 * Returns the unique identifier that can be used to reference this page.
-	 * 
-	 * @return the unique page identifier
-	 */
-	public String getId() {
-		return id;
-	}
-	/**
-	 * Returns <code>null</code>- form page has no title image. Subclasses
-	 * may override.
-	 * 
-	 * @return <code>null</code>
-	 */
-	public Image getTitleImage() {
-		return null;
-	}
-	/**
-	 * Sets the focus by delegating to the managed form.
-	 */
-	public void setFocus() {
-		if (mform != null)
-			mform.setFocus();
-	}
-	/**
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		if (mform != null)
-			mform.commit(true);
-	}
-	/**
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-	/**
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-	/**
-	 * Implemented by testing if the managed form is dirty.
-	 * 
-	 * @return <code>true</code> if the managed form is dirty,
-	 *         <code>false</code> otherwise.
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isDirty()
-	 */
-	public boolean isDirty() {
-		return mform != null ? mform.isDirty() : false;
-	}
-	/**
-	 * Preserves the page index.
-	 * 
-	 * @param index
-	 *            the assigned page index
-	 */
-	public void setIndex(int index) {
-		this.index = index;
-	}
-	/**
-	 * Returns the saved page index.
-	 * 
-	 * @return the page index
-	 */
-	public int getIndex() {
-		return index;
-	}
-	/**
-	 * Form pages are not editors.
-	 * 
-	 * @return <code>false</code>
-	 */
-	public boolean isEditor() {
-		return false;
-	}
-	/**
-	 * Attempts to select and reveal the given object by passing the request to
-	 * the managed form.
-	 * 
-	 * @param object
-	 *            the object to select and reveal in the page if possible.
-	 * @return <code>true</code> if the page has been successfully selected
-	 *         and revealed by one of the managed form parts, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean selectReveal(Object object) {
-		if (mform != null)
-			return mform.setInput(object);
-		return false;
-	}
-	/**
-	 * By default, editor will be allowed to flip the page.
-	 * @return <code>true</code>
-	 */
-	public boolean canLeaveThePage() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/IFormPage.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/IFormPage.java
deleted file mode 100644
index a7f4ff9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/IFormPage.java
+++ /dev/null
@@ -1,130 +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.forms.editor;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.forms.IManagedForm;
-/**
- * Interface that all GUI pages need to implement in order
- * to be added to FormEditor part. The interface makes 
- * several assumptions:
- * <ul>
- * <li>The form page has a managed form</li>
- * <li>The form page has a unique id</li>
- * <li>The form page can be GUI but can also wrap a complete
- * editor class (in that case, it should return <code>true</code>
- * from <code>isEditor()</code> method).</li>
- * <li>The form page is lazy i.e. understands that 
- * its part control will be created at the last possible
- * moment.</li>.
- * </ul>
- * <p>Existing editors can be wrapped by implementing
- * this interface. In this case, 'isEditor' should return <code>true</code>.
- * A common editor to wrap in <code>TextEditor</code> that is
- * often added to show the raw source code of the file open into
- * the multi-page editor.
- * 
- * @since 3.0
- */
-public interface IFormPage extends IEditorPart {
-	/**
-	 * @param editor
-	 *            the form editor that this page belongs to
-	 */
-	void initialize(FormEditor editor);
-	/**
-	 * Returns the editor this page belongs to.
-	 * 
-	 * @return the form editor
-	 */
-	FormEditor getEditor();
-	/**
-	 * Returns the managed form of this page, unless this is a source page.
-	 * 
-	 * @return the managed form or <samp>null </samp> if this is a source page.
-	 */
-	IManagedForm getManagedForm();
-	/**
-	 * Indicates whether the page has become the active in the editor. Classes
-	 * that implement this interface may use this method to commit the page (on
-	 * <code>false</code>) or lazily create and/or populate the content on
-	 * <code>true</code>.
-	 * 
-	 * @param active
-	 *            <code>true</code> if page should be visible, <code>false</code>
-	 *            otherwise.
-	 */
-	void setActive(boolean active);
-	/**
-	 * Returns <samp>true </samp> if page is currently active, false if not.
-	 * 
-	 * @return <samp>true </samp> for active page.
-	 */
-	boolean isActive();
-	/**
-	 * Tests if the content of the page is in a state that allows the
-	 * editor to flip to another page. Typically, pages that contain
-	 * raw source with syntax errors should not allow editors to 
-	 * leave them until errors are corrected.
-	 * @return <code>true</code> if the editor can flip to another page,
-	 * <code>false</code> otherwise.
-	 */
-	boolean canLeaveThePage();
-	/**
-	 * Returns the control associated with this page.
-	 * 
-	 * @return the control of this page if created or <samp>null </samp> if the
-	 *         page has not been shown yet.
-	 */
-	Control getPartControl();
-	/**
-	 * Page must have a unique id that can be used to show it without knowing
-	 * its relative position in the editor.
-	 * 
-	 * @return the unique page identifier
-	 */
-	String getId();
-	/**
-	 * Returns the position of the page in the editor.
-	 * 
-	 * @return the zero-based index of the page in the editor.
-	 */
-	int getIndex();
-	/**
-	 * Sets the position of the page in the editor.
-	 * 
-	 * @param index
-	 *            the zero-based index of the page in the editor.
-	 */
-	void setIndex(int index);
-	/**
-	 * Tests whether this page wraps a complete editor that
-	 * can be registered on its own, or represents a page
-	 * that cannot exist outside the multi-page editor context.
-	 * 
-	 * @return <samp>true </samp> if the page wraps an editor,
-	 *         <samp>false </samp> if this is a form page.
-	 */
-	boolean isEditor();
-	/**
-	 * A hint to bring the provided object into focus. If the object is in a
-	 * tree or table control, select it. If it is shown on a scrollable page,
-	 * ensure that it is visible. If the object is not presented in 
-	 * the page, <code>false</code> should be returned to allow another
-	 * page to try.
-	 * 
-	 * @param object
-	 *            object to select and reveal
-	 * @return <code>true</code> if the request was successful, <code>false</code>
-	 *         otherwise.
-	 */
-	boolean selectReveal(Object object);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java
deleted file mode 100644
index 37ac211..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/SharedHeaderFormEditor.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.editor;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.forms.IFormPart;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.ManagedForm;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * A variation of {@link FormEditor}, this editor has a stable header that does
- * not change when pages are switched. Pages that are added to this editor
- * should not have the title or image set.
- * 
- * @since 3.3
- */
-public abstract class SharedHeaderFormEditor extends FormEditor {
-	private HeaderForm headerForm;
-	
-	private boolean wasHeaderActive= true;
-	private Listener activationListener= null;
-
-	private static class HeaderForm extends ManagedForm {
-		public HeaderForm(FormEditor editor, ScrolledForm form) {
-			super(editor.getToolkit(), form);
-			setContainer(editor);
-			if (editor.getEditorInput() != null)
-				setInput(editor.getEditorInput());
-		}
-
-		private FormEditor getEditor() {
-			return (FormEditor) getContainer();
-		}
-
-		public void dirtyStateChanged() {
-			getEditor().editorDirtyStateChanged();
-		}
-
-		public void staleStateChanged() {
-			refresh();
-		}
-	}
-
-	/**
-	 * The default constructor.
-	 */
-
-	public SharedHeaderFormEditor() {
-	}
-
-	/**
-	 * Overrides <code>super</code> to create a form in which to host the tab
-	 * folder. This form will be responsible for creating a common form header. 
-	 * Child pages should not have a header of their own.
-	 * 
-	 * @param parent
-	 *            the page container parent
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#createPageContainer(org.eclipse.swt.widgets.Composite)
-	 */
-
-	protected Composite createPageContainer(Composite parent) {
-		parent = super.createPageContainer(parent);
-		parent.setLayout(new FillLayout());
-		ScrolledForm scform = getToolkit().createScrolledForm(parent);
-		scform.getForm().setData(FormUtil.IGNORE_BODY, Boolean.TRUE);
-		headerForm = new HeaderForm(this, scform);
-		createHeaderContents(headerForm);
-		return headerForm.getForm().getBody();
-	}
-
-	/**
-	 * Returns the form that owns the shared header.
-	 * 
-	 * @return the shared header
-	 */
-
-	public IManagedForm getHeaderForm() {
-		return headerForm;
-	}
-	
-	protected void createPages() {
-		super.createPages();
-		
-		// preempt MultiPageEditorPart#createPartControl(Composite)
-		if (getActivePage() == -1) {
-			// create page control and initialize page, keep focus on header by calling super implementation
-			super.setActivePage(0);
-		}
-	}
-	
-	protected void setActivePage(int pageIndex) {
-		// programmatic focus change
-		wasHeaderActive= false;
-		super.setActivePage(pageIndex);
-	}
-	
-	public void setFocus() {
-		installActivationListener();
-		if (wasHeaderActive)
-			((ManagedForm) getHeaderForm()).setFocus();
-		else {
-			int index= getActivePage();
-			if (index == -1)
-				((ManagedForm) getHeaderForm()).setFocus();
-			else
-				super.setFocus();
-		}
-	}
-	
-	private void installActivationListener() {
-		if (activationListener == null) {
-			activationListener = new Listener() {
-				public void handleEvent(Event event) {
-					boolean wasHeaderActive = event.widget != getContainer();
-					
-					int activePage = getActivePage();
-					if (SharedHeaderFormEditor.this.wasHeaderActive != wasHeaderActive && activePage != -1 && pages.get(activePage) instanceof IEditorPart) {
-						
-						if (wasHeaderActive) {
-							deactivateSite(true, true);
-						} else {
-							activateSite();
-						}
-					}
-					
-					SharedHeaderFormEditor.this.wasHeaderActive = wasHeaderActive;
-				}
-			};
-			getContainer().addListener(SWT.Activate, activationListener);
-			getHeaderForm().getForm().getForm().getHead().addListener(SWT.Activate, activationListener);
-		}
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#dispose()
-	 */
-	public void dispose() {
-		if (headerForm != null) {
-			headerForm.dispose();
-			headerForm = null;
-		}
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#isDirty()
-	 */
-	public boolean isDirty() {
-		return headerForm.isDirty() || super.isDirty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#commitPages(boolean)
-	 */
-	protected void commitPages(boolean onSave) {
-		if (headerForm != null && headerForm.isDirty())
-			headerForm.commit(onSave);
-		super.commitPages(onSave);
-	}
-
-	/**
-	 * Subclasses should extend this method to configure the form that owns the
-	 * shared header. If the header form will contain controls that can change
-	 * the state of the editor, they should be wrapped in an IFormPart so that
-	 * they can participate in the life cycle event management.
-	 * 
-	 * @param headerForm
-	 *            the form that owns the shared header
-	 * @see IFormPart
-	 */
-	protected void createHeaderContents(IManagedForm headerForm) {
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html
deleted file mode 100644
index df243bc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/editor/package.html
+++ /dev/null
@@ -1,13 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Support for forms-based multi-page editors.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.java
deleted file mode 100644
index f483062..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionAdapter.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.ui.forms.events;
-/**
- * This adapter class provides default implementations for the methods
- * described by the <code>ExpansionListener</code> interface.
- * <p>
- * Classes that wish to deal with <code>ExpansionEvent</code>s can extend
- * this class and override only the methods which they are interested in.
- * </p>
- * 
- * @see IExpansionListener
- * @see ExpansionEvent
- * @since 3.0
- */
-public class ExpansionAdapter implements IExpansionListener {
-	/**
-	 * Sent when the link is entered. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void expansionStateChanging(ExpansionEvent e) {
-	}
-	/**
-	 * Sent when the link is exited. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void expansionStateChanged(ExpansionEvent e) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.java
deleted file mode 100644
index e2b34e5..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/ExpansionEvent.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.ui.forms.events;
-import org.eclipse.swt.events.TypedEvent;
-/**
- * Notifies listeners when expandable controls change expansion state.
- * 
- * @since 3.0
- */
-public final class ExpansionEvent extends TypedEvent {
-	private static final long serialVersionUID = 6009335074727417445L;
-	/**
-	 * Creates a new expansion ecent.
-	 * 
-	 * @param obj
-	 *            event source
-	 * @param state
-	 *            the new expansion state
-	 */
-	public ExpansionEvent(Object obj, boolean state) {
-		super(obj);
-		data = state ? Boolean.TRUE : Boolean.FALSE;
-	}
-	/**
-	 * Returns the new expansion state of the widget.
-	 * 
-	 * @return <code>true</code> if the widget is now expaned, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean getState() {
-		return data.equals(Boolean.TRUE) ? true : false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java
deleted file mode 100644
index 4dd56ae..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkAdapter.java
+++ /dev/null
@@ -1,49 +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.forms.events;
-/**
- * This adapter class provides default implementations for the methods
- * described by the <code>HyperlinkListener</code> interface.
- * <p>
- * Classes that wish to deal with <code>HyperlinkEvent</code> s can extend
- * this class and override only the methods which they are interested in.
- * </p>
- * 
- * @see IHyperlinkListener
- * @see HyperlinkEvent
- * @since 3.0
- */
-public class HyperlinkAdapter implements IHyperlinkListener {
-	/**
-	 * Sent when the link is entered. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void linkEntered(HyperlinkEvent e) {
-	}
-	/**
-	 * Sent when the link is exited. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void linkExited(HyperlinkEvent e) {
-	}
-	/**
-	 * Sent when the link is activated. The default behaviour is to do nothing.
-	 * 
-	 * @param e
-	 *            the event
-	 */
-	public void linkActivated(HyperlinkEvent e) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java
deleted file mode 100644
index a8bec77..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/HyperlinkEvent.java
+++ /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
- *******************************************************************************/
-package org.eclipse.ui.forms.events;
-import org.eclipse.swt.events.TypedEvent;
-import org.eclipse.swt.widgets.Widget;
-/**
- * Notifies listeners about a hyperlink change.
- *
- * @since 3.0
- */
-public final class HyperlinkEvent extends TypedEvent {
-	private static final long serialVersionUID = 6009335074727417445L;
-	private String label;
-	private int stateMask;
-	/**
-	 * Creates a new hyperlink
-	 * 
-	 * @param widget
-	 *            event source
-	 * @param href
-	 *            the hyperlink reference that will be followed upon when the
-	 *            hyperlink is activated.
-	 * @param label
-	 *            the name of the hyperlink (the text that is rendered as a
-	 *            link in the source widget).
-	 * @param stateMask
-	 *            the given state mask
-	 */
-	public HyperlinkEvent(Widget widget, Object href, String label, int stateMask) {
-		super(widget);
-		this.widget = widget;
-		this.data = href;
-		this.label = label;
-		this.stateMask = stateMask;
-	}
-	/**
-	 * The hyperlink reference that will be followed when the hyperlink is
-	 * activated.
-	 * 
-	 * @return the hyperlink reference object
-	 */
-	public Object getHref() {
-		return this.data;
-	}
-	/**
-	 * The text of the hyperlink rendered in the source widget.
-	 * 
-	 * @return the hyperlink label
-	 */
-	public String getLabel() {
-		return label;
-	}
-	/**
-	 * Returns the value of the keyboard state mask present when
-	 * the event occured, or SWT.NULL for no modifiers.
-	 * @return the keyboard state mask or <code>SWT.NULL</code>. 
-	 */
-	public int getStateMask() {
-		return stateMask;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.java
deleted file mode 100644
index 771ada3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IExpansionListener.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.ui.forms.events;
-/**
- * Classes that implement this interface will be notified before and after the
- * expandable control's expansion state changes.
- * 
- * @since 3.0
- */
-public interface IExpansionListener {
-	/**
-	 * Notifies the listener that the expandable control is about to change its
-	 * expansion state. The state provided by the event is the new state.
-	 * 
-	 * @param e
-	 *            the expansion event
-	 */
-	void expansionStateChanging(ExpansionEvent e);
-	/**
-	 * Notifies the listener after the expandable control has changed its
-	 * expansion state. The state provided by the event is the new state.
-	 * 
-	 * @param e
-	 *            the expansion event
-	 */
-	void expansionStateChanged(ExpansionEvent e);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java
deleted file mode 100644
index 34c18c4..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/IHyperlinkListener.java
+++ /dev/null
@@ -1,47 +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.forms.events;
-/**
- * Classes that implement this interface will be notified when hyperlinks are
- * entered, exited and activated.
- * 
- * @see org.eclipse.ui.forms.widgets.Hyperlink
- * @see org.eclipse.ui.forms.widgets.ImageHyperlink
- * @see org.eclipse.ui.forms.widgets.FormText
- * @since 3.0
- */
-public interface IHyperlinkListener {
-	/**
-	 * Sent when hyperlink is entered either by mouse entering the link client
-	 * area, or keyboard focus switching to the hyperlink.
-	 * 
-	 * @param e
-	 *            an event containing information about the hyperlink
-	 */
-	void linkEntered(HyperlinkEvent e);
-	/**
-	 * Sent when hyperlink is exited either by mouse exiting the link client
-	 * area, or keyboard focus switching from the hyperlink.
-	 * 
-	 * @param e
-	 *            an event containing information about the hyperlink
-	 */
-	void linkExited(HyperlinkEvent e);
-	/**
-	 * Sent when hyperlink is activated either by mouse click inside the link
-	 * client area, or by pressing 'Enter' key while hyperlink has keyboard
-	 * focus.
-	 * 
-	 * @param e
-	 *            an event containing information about the hyperlink
-	 */
-	void linkActivated(HyperlinkEvent e);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html
deleted file mode 100644
index 56fb041..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/events/package.html
+++ /dev/null
@@ -1,13 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Events and listeners for forms-based parts.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html
deleted file mode 100644
index 6e8c5dc..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/package.html
+++ /dev/null
@@ -1,13 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Forms-based controls for use in views, editors, and wizards.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java
deleted file mode 100644
index 084b1f2..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/AbstractHyperlink.java
+++ /dev/null
@@ -1,349 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Izzet Safer (isafer@ca.ibm.com) - patch (see Bugzilla #250505)
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.internal.forms.widgets.FormsResources;
-
-/**
- * This is the base class for custom hyperlink widget. It is responsible for
- * processing mouse and keyboard events, and converting them into unified
- * hyperlink events. Subclasses are responsible for rendering the hyperlink in
- * the client area.
- * <p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>None</dd>
- * </dl>
- * 
- * @since 3.0
- */
-public abstract class AbstractHyperlink extends Canvas {
-	private boolean hasFocus;
-	boolean paintFocus=true;
-
-	/*
-	 * Armed link is one that will activate on a mouse up event, i.e.
-	 * it has received a mouse down and mouse still on top of it.
-	 */
-	private boolean armed;
-
-	private ListenerList listeners;
-
-	/**
-	 * Amount of the margin width around the hyperlink (default is 1).
-	 */
-	protected int marginWidth = 1;
-
-	/**
-	 * Amount of the margin height around the hyperlink (default is 1).
-	 */
-	protected int marginHeight = 1;
-
-	/**
-	 * Creates a new hyperlink in the provided parent.
-	 * 
-	 * @param parent
-	 *            the control parent
-	 * @param style
-	 *            the widget style
-	 */
-	public AbstractHyperlink(Composite parent, int style) {
-		super(parent, style);
-		addListener(SWT.KeyDown, new Listener() {
-			public void handleEvent(Event e) {
-				if (e.character == '\r') {
-					handleActivate(e);
-				}
-			}
-		});
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				paint(e);
-			}
-		});
-		addListener(SWT.Traverse, new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.detail) {
-				case SWT.TRAVERSE_PAGE_NEXT:
-				case SWT.TRAVERSE_PAGE_PREVIOUS:
-				case SWT.TRAVERSE_ARROW_NEXT:
-				case SWT.TRAVERSE_ARROW_PREVIOUS:
-				case SWT.TRAVERSE_RETURN:
-					e.doit = false;
-					return;
-				}
-				e.doit = true;
-			}
-		});
-		Listener listener = new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-				case SWT.FocusIn:
-					hasFocus = true;
-					handleEnter(e);
-					break;
-				case SWT.FocusOut:
-					hasFocus = false;
-					handleExit(e);
-					break;
-				case SWT.DefaultSelection:
-					handleActivate(e);
-					break;
-				case SWT.MouseEnter:
-					handleEnter(e);
-					break;
-				case SWT.MouseExit:
-					handleExit(e);
-					break;
-				case SWT.MouseDown:
-					handleMouseDown(e);
-					break;
-				case SWT.MouseUp:
-					handleMouseUp(e);
-					break;
-				case SWT.MouseMove:
-					handleMouseMove(e);
-					break;
-				}
-			}
-		};
-		addListener(SWT.MouseEnter, listener);
-		addListener(SWT.MouseExit, listener);
-		addListener(SWT.MouseDown, listener);
-		addListener(SWT.MouseUp, listener);
-		addListener(SWT.MouseMove, listener);
-		addListener(SWT.FocusIn, listener);
-		addListener(SWT.FocusOut, listener);
-		setCursor(FormsResources.getHandCursor());
-	}
-
-	/**
-	 * Adds the event listener to this hyperlink.
-	 * 
-	 * @param listener
-	 *            the event listener to add
-	 */
-	public void addHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			listeners = new ListenerList();
-		listeners.add(listener);
-	}
-
-	/**
-	 * Removes the event listener from this hyperlink.
-	 * 
-	 * @param listener
-	 *            the event listener to remove
-	 */
-	public void removeHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			return;
-		listeners.remove(listener);
-	}
-
-	/**
-	 * Returns the selection state of the control. When focus is gained, the
-	 * state will be <samp>true </samp>; it will switch to <samp>false </samp>
-	 * when the control looses focus.
-	 * 
-	 * @return <code>true</code> if the widget has focus, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean getSelection() {
-		return hasFocus;
-	}
-
-	/**
-	 * Called when hyperlink is entered. Subclasses that override this method
-	 * must call 'super'.
-	 */
-	protected void handleEnter(Event e) {
-		redraw();
-		if (listeners == null)
-			return;
-		int size = listeners.size();
-		HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(),
-				e.stateMask);
-		Object[] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkEntered(he);
-		}
-	}
-
-	/**
-	 * Called when hyperlink is exited. Subclasses that override this method
-	 * must call 'super'.
-	 */
-	protected void handleExit(Event e) {
-		// disarm the link; won't activate on mouseup
-		armed = false;
-		redraw();
-		if (listeners == null)
-			return;
-		int size = listeners.size();
-		HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(),
-				e.stateMask);
-		Object[] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkExited(he);
-		}
-	}
-
-	/**
-	 * Called when hyperlink has been activated. Subclasses that override this
-	 * method must call 'super'.
-	 */
-	protected void handleActivate(Event e) {
-		// disarm link, back to normal state
-		armed = false;
-		if (listeners == null)
-			return;
-		int size = listeners.size();
-		setCursor(FormsResources.getBusyCursor());
-		HyperlinkEvent he = new HyperlinkEvent(this, getHref(), getText(),
-				e.stateMask);
-		Object[] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkActivated(he);
-		}
-		if (!isDisposed()) {
-			setCursor(FormsResources.getHandCursor());
-			triggerAccessible();
-		}
-	}
-
-	void triggerAccessible() {
-		getAccessible().setFocus(ACC.CHILDID_SELF);
-	}
-
-	/**
-	 * Sets the object associated with this hyperlink. Concrete implementation
-	 * of this class can use if to store text, URLs or model objects that need
-	 * to be processed on hyperlink events.
-	 * 
-	 * @param href
-	 *            the hyperlink object reference
-	 */
-	public void setHref(Object href) {
-		setData("href", href); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the object associated with this hyperlink.
-	 * 
-	 * @see #setHref
-	 * @return the hyperlink object reference
-	 */
-	public Object getHref() {
-		return getData("href"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns the textual representation of this hyperlink suitable for showing
-	 * in tool tips or on the status line.
-	 * 
-	 * @return the hyperlink text
-	 */
-	public String getText() {
-		return getToolTipText();
-	}
-
-	/**
-	 * Paints the hyperlink as a reaction to the provided paint event.
-	 * 
-	 * @param gc
-	 *            graphic context
-	 */
-	protected abstract void paintHyperlink(GC gc);
-
-	/**
-	 * Paints the control as a reaction to the provided paint event.
-	 * 
-	 * @param e
-	 *            the paint event
-	 */
-	protected void paint(PaintEvent e) {
-		GC gc = e.gc;
-		Rectangle clientArea = getClientArea();
-		if (clientArea.width == 0 || clientArea.height == 0)
-			return;
-		paintHyperlink(gc);
-		if (paintFocus && hasFocus) {
-			Rectangle carea = getClientArea();
-			gc.setForeground(getForeground());
-			gc.drawFocus(0, 0, carea.width, carea.height);
-		}
-	}
-
-	private void handleMouseDown(Event e) {
-		if (e.button != 1)
-			return;
-		// armed and ready to activate on mouseup
-		armed = true;
-	}
-
-	private void handleMouseUp(Event e) {
-		if (!armed || e.button != 1)
-			return;
-		Point size = getSize();
-		// Filter out mouse up events outside
-		// the link. This can happen when mouse is
-		// clicked, dragged outside the link, then
-		// released.
-		if (e.x < 0)
-			return;
-		if (e.y < 0)
-			return;
-		if (e.x >= size.x)
-			return;
-		if (e.y >= size.y)
-			return;
-		handleActivate(e);
-	}
-
-	private void handleMouseMove(Event e) {
-		// disarm link if we move out of bounds
-		if (armed) {
-			Point size = getSize();
-			armed = (e.x >= 0 && e.y >= 0 && e.x < size.x && e.y < size.y);
-		}
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-
-	public void setEnabled (boolean enabled) {
-		boolean needsRedraw = enabled != getEnabled();
-		super.setEnabled(enabled);
-		if (needsRedraw)
-			redraw();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java
deleted file mode 100644
index 21450d6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayout.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     dinko.ivanov@sap.com - patch #70790
- *     RasmussenJamie@comcast.net - patch for Bug 184345
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-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;
-/**
- * This layout manager arranges children of the composite parent in vertical
- * columns. All the columns are identical size and children are stretched
- * horizontally to fill the column width. The goal is to give layout some
- * reasonable range of column numbers to allow it to handle various parent
- * widths. That way, column number will drop to the lowest number in the range
- * when width decreases, and grow up to the highest number in the range when
- * allowed by the parent width.
- * <p>
- * In addition, the layout attempts to 'fill the space' equally i.e. to avoid
- * large gaps at the and of the last column.
- * <p>
- * Child controls are layed out according to their 'natural' (preferred) size.
- * For 'stretchy' controls that do not have natural preferred size, it is
- * possible to set width and/or height hints using ColumnLayoutData objects.
- * 
- * @see ColumnLayoutData
- * @since 3.0
- */
-public final class ColumnLayout extends Layout implements ILayoutExtension {
-	/**
-	 * Minimum number of columns (default is 1).
-	 */
-	public int minNumColumns = 1;
-	/**
-	 * Maximum number of columns (default is 3).
-	 */
-	public int maxNumColumns = 3;
-	/**
-	 * Horizontal spacing between columns (default is 5).
-	 */
-	public int horizontalSpacing = 5;
-	/**
-	 * Vertical spacing between controls (default is 5).
-	 */
-	public int verticalSpacing = 5;
-	/**
-	 * Top margin (default is 5).
-	 */
-	public int topMargin = 5;
-	/**
-	 * Left margin (default is 5).
-	 */
-	public int leftMargin = 5;
-	/**
-	 * Bottom margin (default is 5).
-	 */
-	public int bottomMargin = 5;
-	/**
-	 * Right margin (default is 5).
-	 */
-	public int rightMargin = 5;
-
-	/**
-	 * Creates a new instance of the column layout.
-	 */
-	public ColumnLayout() {
-	}
-
-	protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-		if (wHint == 0)
-			return computeSize(composite, wHint, hHint, minNumColumns);
-		else if (wHint == SWT.DEFAULT)
-			return computeSize(composite, wHint, hHint, maxNumColumns);
-		else
-			return computeSize(composite, wHint, hHint, -1);
-	}
-
-	private Point computeSize(Composite parent, int wHint, int hHint, int ncolumns) {
-		Control[] children = parent.getChildren();
-		int cwidth = 0;
-		int cheight = 0;
-		Point[] sizes = new Point[children.length];
-
-		int cwHint = SWT.DEFAULT;
-		if (ncolumns != -1) {
-			cwHint = wHint - leftMargin - rightMargin - (ncolumns - 1) * horizontalSpacing;
-			if (cwHint <= 0)
-				cwHint = 0;
-			else
-				cwHint /= ncolumns;
-		}
-
-		for (int i = 0; i < children.length; i++) {
-			sizes[i] = computeControlSize(children[i], cwHint);
-			cwidth = Math.max(cwidth, sizes[i].x);
-			cheight += sizes[i].y;
-		}
-		if (ncolumns == -1) {
-			// must compute
-			ncolumns = (wHint - leftMargin - rightMargin - horizontalSpacing) / (cwidth + horizontalSpacing);
-			ncolumns = Math.min(ncolumns, children.length);
-			ncolumns = Math.max(ncolumns, minNumColumns);
-			ncolumns = Math.min(ncolumns, maxNumColumns);
-		}
-		int perColHeight = cheight / ncolumns;
-		if (cheight % ncolumns != 0)
-			perColHeight++;
-		int colHeight = 0;
-		int[] heights = new int[ncolumns];
-		int ncol = 0;
-		
-		boolean fillIn = false;
-		
-		for (int i = 0; i < sizes.length; i++) {
-			int childHeight = sizes[i].y;
-			if (i>0 && colHeight + childHeight > perColHeight) {
-				heights[ncol] = colHeight;
-				ncol++;
-				if (ncol == ncolumns || fillIn) {
-					// overflow - start filling in
-					fillIn = true;
-					ncol = findShortestColumn(heights);
-				}
-				colHeight = heights[ncol];
-			}
-			if (colHeight > 0)
-				colHeight += verticalSpacing;
-			colHeight += childHeight;
-		}
-		heights[ncol] = Math.max(heights[ncol],colHeight);
-		
-		Point size = new Point(0, 0);
-		for (int i = 0; i < ncolumns; i++) {
-			size.y = Math.max(size.y, heights[i]);
-		}
-		size.x = cwidth * ncolumns + (ncolumns - 1) * horizontalSpacing;
-		size.x += leftMargin + rightMargin;
-		//System.out.println("ColumnLayout: whint="+wHint+", size.x="+size.x);
-		size.y += topMargin + bottomMargin;
-		return size;
-	}
-
-	private Point computeControlSize(Control c, int wHint) {
-		ColumnLayoutData cd = (ColumnLayoutData) c.getLayoutData();
-		int widthHint = cd != null ? cd.widthHint : wHint;
-		int heightHint = cd != null ? cd.heightHint : SWT.DEFAULT;
-		return c.computeSize(widthHint, heightHint);
-	}
-
-	private int findShortestColumn(int[] heights) {
-		int result = 0;
-		int height = Integer.MAX_VALUE;
-		for (int i = 0; i < heights.length; i++) {
-			if (height > heights[i]) {
-				height = heights[i];
-				result = i;
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite,
-	 *      boolean)
-	 */
-	protected void layout(Composite parent, boolean flushCache) {
-		Control[] children = parent.getChildren();
-		Rectangle carea = parent.getClientArea();
-		int cwidth = 0;
-		int cheight = 0;
-		Point[] sizes = new Point[children.length];
-		for (int i = 0; i < children.length; i++) {
-			sizes[i] = computeControlSize(children[i], SWT.DEFAULT);
-			cwidth = Math.max(cwidth, sizes[i].x);
-			cheight += sizes[i].y;
-		}
-		int ncolumns = (carea.width - leftMargin - rightMargin + horizontalSpacing) / (cwidth + horizontalSpacing);
-		ncolumns = Math.min(ncolumns, children.length);		
-		ncolumns = Math.max(ncolumns, minNumColumns);
-		ncolumns = Math.min(ncolumns, maxNumColumns);
-		int realWidth = (carea.width - leftMargin - rightMargin + horizontalSpacing) / ncolumns - horizontalSpacing;
-//		int childrenPerColumn = children.length / ncolumns;
-//		if (children.length % ncolumns != 0)
-//			childrenPerColumn++;
-//		int colWidth = 0;
-
-		int fillWidth = Math.max(cwidth, realWidth);
-		
-		int perColHeight = cheight / ncolumns;
-		if (cheight % ncolumns != 0)
-			perColHeight++;
-		
-		int colHeight = 0;
-		int[] heights = new int[ncolumns];
-		int ncol = 0;
-		int x = leftMargin;
-		boolean fillIn = false;
-		
-		for (int i = 0; i < sizes.length; i++) {
-			Control child = children[i];
-			Point csize = sizes[i];
-			ColumnLayoutData cd = (ColumnLayoutData) child.getLayoutData();
-			int align = cd != null ? cd.horizontalAlignment : ColumnLayoutData.FILL;
-			int childWidth = align == ColumnLayoutData.FILL ? fillWidth : csize.x;
-
-			if (i>0 && colHeight + csize.y > perColHeight) {
-				heights[ncol] = colHeight;
-				if (fillIn || ncol == ncolumns-1) {
-					// overflow - start filling in
-					fillIn = true;
-					ncol = findShortestColumn(heights);
-					
-					x = leftMargin + ncol * (fillWidth + horizontalSpacing);
-
-				}
-				else {
-					ncol++;
-					x += fillWidth + horizontalSpacing;
-				}
-				colHeight = heights[ncol];
-			}
-			if (colHeight > 0)
-				colHeight += verticalSpacing;
-			
-			
-			switch (align) {
-				case ColumnLayoutData.LEFT :
-				case ColumnLayoutData.FILL :
-					child.setBounds(x, topMargin+colHeight, childWidth, csize.y);
-					break;
-				case ColumnLayoutData.RIGHT :
-					child.setBounds(x + fillWidth - childWidth, topMargin+colHeight, childWidth, csize.y);
-					break;
-				case ColumnLayoutData.CENTER :
-					child.setBounds(x + fillWidth / 2 - childWidth / 2, topMargin+colHeight, childWidth, csize.y);
-					break;
-			}
-			
-			colHeight += csize.y;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMaximumWidth(org.eclipse.swt.widgets.Composite,
-	 *      boolean)
-	 */
-	public int computeMaximumWidth(Composite parent, boolean changed) {
-		return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMinimumWidth(org.eclipse.swt.widgets.Composite,
-	 *      boolean)
-	 */
-	public int computeMinimumWidth(Composite parent, boolean changed) {
-		return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java
deleted file mode 100644
index a97ebd6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ColumnLayoutData.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-import org.eclipse.swt.SWT;
-/**
- * This class is used to store layout data for the <code>ColumnLayout</code>
- * class. You can control width and height hints, as well as horizontal
- * alignment using instances of this class. As with other layouts, they are not
- * required to get the default behaviour.
- * 
- * @see ColumnLayout
- * @since 3.0
- */
-public final class ColumnLayoutData {
-	/**
-	 * Width hint that will be used instead of the computed control width when
-	 * used in conjunction with <code>ColumnLayout</code> class (default is
-	 * SWT.DEFAULT).
-	 */
-	public int widthHint = SWT.DEFAULT;
-	/**
-	 * Height hint that will be used instead of the computed control height
-	 * when used in conjunction with <code>ColumnLayout</code> class (default
-	 * is SWT.DEFAULT).
-	 */
-	public int heightHint = SWT.DEFAULT;
-	/**
-	 * Horizontal alignment constant - control will be aligned to the left.
-	 */
-	public static final int LEFT = 1;
-	/**
-	 * Horizontal alignment constant - control will be centered.
-	 */
-	public static final int CENTER = 2;
-	/**
-	 * Horizontal alignment constant - control will be aligned to the right.
-	 */
-	public static final int RIGHT = 3;
-	/**
-	 * Horizontal alignment constant - control will fill the column.
-	 */
-	public static final int FILL = 4;
-	/**
-	 * Horizontal alignment variable (default is FILL).
-	 */
-	public int horizontalAlignment = FILL;
-	/**
-	 * Convinience constructor for the class.
-	 * 
-	 * @param wHint
-	 *            width hint for the control
-	 * @param hHint
-	 *            height hint for the control
-	 */
-	public ColumnLayoutData(int wHint, int hHint) {
-		this.widthHint = wHint;
-		this.heightHint = hHint;
-	}
-	/**
-	 * Convinience constructor for the class.
-	 * 
-	 * @param wHint
-	 *            width hint for the control
-	 */
-	public ColumnLayoutData(int wHint) {
-		this.widthHint = wHint;
-	}
-	/**
-	 * The default constructor.
-	 *  
-	 */
-	public ColumnLayoutData() {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java
deleted file mode 100644
index f0f4ea8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ExpandableComposite.java
+++ /dev/null
@@ -1,1103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Kai Nacke - Fix for Bug 202382
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-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.internal.forms.widgets.FormUtil;
-import org.eclipse.ui.internal.forms.widgets.FormsResources;
-
-/**
- * This composite is capable of expanding or collapsing a single client that is
- * its direct child. The composite renders an expansion toggle affordance
- * (according to the chosen style), and a title that also acts as a hyperlink
- * (can be selected and is traversable). The client is layed out below the title
- * when expanded, or hidden when collapsed.
- * <p>
- * The widget can be instantiated as-is, or subclassed to modify some aspects of
- * it. *
- * <p>
- * Since 3.1, left/right arrow keys can be used to control the expansion state.
- * If several expandable composites are created in the same parent, up/down
- * arrow keys can be used to traverse between them. Expandable text accepts
- * mnemonics and mnemonic activation will toggle the expansion state.
- * 
- * <p>
- * While expandable composite recognize that different styles can be used to
- * render the title bar, and even defines the constants for these styles (<code>TITLE_BAR</code>
- * and <code>SHORT_TITLE_BAR</code> the actual painting is done in the
- * subclasses.
- * 
- * @see Section
- * @since 3.0
- */
-public class ExpandableComposite extends Canvas {
-	/**
-	 * If this style is used, a twistie will be used to render the expansion
-	 * toggle.
-	 */
-	public static final int TWISTIE = 1 << 1;
-
-	/**
-	 * If this style is used, a tree node with either + or - signs will be used
-	 * to render the expansion toggle.
-	 */
-	public static final int TREE_NODE = 1 << 2;
-
-	/**
-	 * If this style is used, the title text will be rendered as a hyperlink
-	 * that can individually accept focus. Otherwise, it will still act like a
-	 * hyperlink, but only the toggle control will accept focus.
-	 */
-	public static final int FOCUS_TITLE = 1 << 3;
-
-	/**
-	 * If this style is used, the client origin will be vertically aligned with
-	 * the title text. Otherwise, it will start at x = 0.
-	 */
-	public static final int CLIENT_INDENT = 1 << 4;
-
-	/**
-	 * If this style is used, computed size of the composite will take the
-	 * client width into consideration only in the expanded state. Otherwise,
-	 * client width will always be taken into acount.
-	 */
-	public static final int COMPACT = 1 << 5;
-
-	/**
-	 * If this style is used, the control will be created in the expanded state.
-	 * This state can later be changed programmatically or by the user if
-	 * TWISTIE or TREE_NODE style is used.
-	 */
-	public static final int EXPANDED = 1 << 6;
-
-	/**
-	 * If this style is used, title bar decoration will be painted behind the
-	 * text.
-	 */
-	public static final int TITLE_BAR = 1 << 8;
-
-	/**
-	 * If this style is used, a short version of the title bar decoration will
-	 * be painted behind the text. This style is useful when a more descrete
-	 * option is needed for the title bar.
-	 * 
-	 * @since 3.1
-	 */
-	public static final int SHORT_TITLE_BAR = 1 << 9;
-
-	/**
-	 * If this style is used, title will not be rendered.
-	 */
-	public static final int NO_TITLE = 1 << 12;
-
-	/**
-	 * By default, text client is right-aligned. If this style is used, it will
-	 * be positioned after the text control and vertically centered with it.
-	 */
-	public static final int LEFT_TEXT_CLIENT_ALIGNMENT = 1 << 13;
-
-	/**
-	 * Width of the margin that will be added around the control (default is 0).
-	 */
-	public int marginWidth = 0;
-
-	/**
-	 * Height of the margin that will be added around the control (default is
-	 * 0).
-	 */
-	public int marginHeight = 0;
-
-	/**
-	 * Vertical spacing between the title area and the composite client control
-	 * (default is 3).
-	 */
-	public int clientVerticalSpacing = 3;
-
-	/**
-	 * Vertical spacing between the title area and the description control
-	 * (default is 0). The description control is normally placed at the new
-	 * line as defined in the font used to render it. This value will be added
-	 * to it.
-	 * 
-	 * @since 3.3
-	 */
-	public int descriptionVerticalSpacing = 0;
-
-	/**
-	 * Horizontal margin around the inside of the title bar area when TITLE_BAR
-	 * or SHORT_TITLE_BAR style is used. This variable is not used otherwise.
-	 * 
-	 * @since 3.3
-	 */
-	public int titleBarTextMarginWidth = 6;
-
-	/**
-	 * The toggle widget used to expand the composite.
-	 */
-	protected ToggleHyperlink toggle;
-
-	/**
-	 * The text label for the title.
-	 */
-	protected Control textLabel;
-
-	/**
-	 * @deprecated this variable was left as protected by mistake. It will be
-	 *             turned into static and hidden in the future versions. Do not
-	 *             use them and do not change its value.
-	 */
-	protected int VGAP = 3;
-	/**
-	 * @deprecated this variable was left as protected by mistake. It will be
-	 *             turned into static and hidden in the future versions. Do not
-	 *             use it and do not change its value.
-	 */
-	protected int GAP = 4;
-
-	static final int IGAP = 4;
-	static final int IVGAP = 3;
-
-	private static final Point NULL_SIZE = new Point(0, 0);
-
-	private static final int VSPACE = 3;
-
-	private static final int SEPARATOR_HEIGHT = 2;
-
-	private int expansionStyle = TWISTIE | FOCUS_TITLE | EXPANDED;
-
-	private boolean expanded;
-
-	private Control textClient;
-
-	private Control client;
-
-	private ListenerList listeners = new ListenerList();
-
-	private Color titleBarForeground;
-
-	private class ExpandableLayout extends Layout implements ILayoutExtension {
-
-		private SizeCache toggleCache = new SizeCache();
-
-		private SizeCache textClientCache = new SizeCache();
-
-		private SizeCache textLabelCache = new SizeCache();
-
-		private SizeCache descriptionCache = new SizeCache();
-
-		private SizeCache clientCache = new SizeCache();
-
-		private void initCache(boolean shouldFlush) {
-			toggleCache.setControl(toggle);
-			textClientCache.setControl(textClient);
-			textLabelCache.setControl(textLabel);
-			descriptionCache.setControl(getDescriptionControl());
-			clientCache.setControl(client);
-
-			if (shouldFlush) {
-				toggleCache.flush();
-				textClientCache.flush();
-				textLabelCache.flush();
-				descriptionCache.flush();
-				clientCache.flush();
-			}
-		}
-
-		protected void layout(Composite parent, boolean changed) {
-			initCache(changed);
-
-			Rectangle clientArea = parent.getClientArea();
-			int thmargin = 0;
-			int tvmargin = 0;
-
-			if (hasTitleBar()) {
-				thmargin = titleBarTextMarginWidth;
-				tvmargin = IVGAP;
-			}
-			int x = marginWidth + thmargin;
-			int y = marginHeight + tvmargin;
-			Point tsize = NULL_SIZE;
-			Point tcsize = NULL_SIZE;
-			if (toggle != null)
-				tsize = toggleCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			int twidth = clientArea.width - marginWidth - marginWidth
-					- thmargin - thmargin;
-			if (tsize.x > 0)
-				twidth -= tsize.x + IGAP;
-			if (textClient != null) {
-				tcsize = textClientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			Point size = NULL_SIZE;
-			if (textLabel != null) {
-				if (tcsize.x > 0 && FormUtil.isWrapControl(textClient)) {
-					size = textLabelCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-					if (twidth < size.x + IGAP + tcsize.x) {
-						twidth -= IGAP;
-						if (textLabel instanceof Label) {
-							GC gc = new GC(textLabel);
-							size = FormUtil.computeWrapSize(gc, ((Label)textLabel).getText(), Math.round(twidth*(size.x/(float)(size.x+tcsize.x))));
-							gc.dispose();
-						} else
-							size = textLabelCache.computeSize(Math.round(twidth*(size.x/(float)(size.x+tcsize.x))), SWT.DEFAULT);
-						tcsize = textClientCache.computeSize(twidth-size.x, SWT.DEFAULT);
-					}
-				}
-				else {
-					if (tcsize.x > 0)
-						twidth -= tcsize.x + IGAP;
-					size = textLabelCache.computeSize(twidth, SWT.DEFAULT);
-				}
-			}
-			if (textLabel instanceof Label) {
-				Point defSize = textLabelCache.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				if (defSize.y == size.y) {
-					// One line - pick the smaller of the two widths
-					size.x = Math.min(defSize.x, size.x);
-				}
-			}
-			if (toggle != null) {
-				GC gc = new GC(ExpandableComposite.this);
-				gc.setFont(getFont());
-				FontMetrics fm = gc.getFontMetrics();
-				int textHeight = fm.getHeight();
-				gc.dispose();
-				if (textClient != null
-						&& (expansionStyle & LEFT_TEXT_CLIENT_ALIGNMENT) != 0) {
-					textHeight = Math.max(textHeight, tcsize.y);
-				}
-				int ty = textHeight / 2 - tsize.y / 2 + 1;
-				ty = Math.max(ty, 0);
-				ty += marginHeight + tvmargin;
-				toggle.setLocation(x, ty);
-				toggle.setSize(tsize);
-				x += tsize.x + IGAP;
-			}
-			if (textLabel != null) {
-				int ty = y;
-				if (textClient != null
-						&& (expansionStyle & LEFT_TEXT_CLIENT_ALIGNMENT) != 0) {
-					if (size.y < tcsize.y)
-						ty = tcsize.y / 2 - size.y / 2 + marginHeight
-								+ tvmargin;
-				}
-				textLabelCache.setBounds(x, ty, size.x, size.y);
-			}
-			if (textClient != null) {
-				int tcx;
-				if ((expansionStyle & LEFT_TEXT_CLIENT_ALIGNMENT) != 0) {
-					tcx = x + size.x + GAP;
-				} else {
-					tcx = clientArea.width - tcsize.x - marginWidth - thmargin;
-				}
-				textClientCache.setBounds(tcx, y, tcsize.x, tcsize.y);
-			}
-			int tbarHeight = 0;
-			if (size.y > 0)
-				tbarHeight = size.y;
-			if (tcsize.y > 0)
-				tbarHeight = Math.max(tbarHeight, tcsize.y);
-			y += tbarHeight;
-			if (hasTitleBar())
-				y += tvmargin;
-			if (getSeparatorControl() != null) {
-				y += VSPACE;
-				getSeparatorControl().setBounds(marginWidth, y,
-						clientArea.width - marginWidth - marginWidth,
-						SEPARATOR_HEIGHT);
-				y += SEPARATOR_HEIGHT;
-				if (expanded)
-					y += VSPACE;
-			}
-			if (expanded) {
-				int areaWidth = clientArea.width - marginWidth - marginWidth
-						- thmargin - thmargin;
-				int cx = marginWidth + thmargin;
-				if ((expansionStyle & CLIENT_INDENT) != 0) {
-					cx = x;
-					areaWidth -= x;
-				}
-				if (client != null) {
-					Point dsize = null;
-					Control desc = getDescriptionControl();
-					if (desc != null) {
-						dsize = descriptionCache.computeSize(areaWidth,
-								SWT.DEFAULT);
-						y += descriptionVerticalSpacing;
-						descriptionCache.setBounds(cx, y, areaWidth, dsize.y);
-						y += dsize.y + clientVerticalSpacing;
-					} else {
-						y += clientVerticalSpacing;
-						if (getSeparatorControl() != null)
-							y -= VSPACE;
-					}
-					int cwidth = areaWidth;
-					int cheight = clientArea.height - marginHeight
-							- marginHeight - y;
-					clientCache.setBounds(cx, y, cwidth, cheight);
-				}
-			}
-		}
-
-		protected Point computeSize(Composite parent, int wHint, int hHint,
-				boolean changed) {
-			initCache(changed);
-
-			int width = 0, height = 0;
-			Point tsize = NULL_SIZE;
-			int twidth = 0;
-			if (toggle != null) {
-				tsize = toggleCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				twidth = tsize.x + IGAP;
-			}
-			int thmargin = 0;
-			int tvmargin = 0;
-
-			if (hasTitleBar()) {
-				thmargin = titleBarTextMarginWidth;
-				tvmargin = IVGAP;
-			}
-			int innerwHint = wHint;
-			if (innerwHint != SWT.DEFAULT)
-				innerwHint -= twidth + marginWidth + marginWidth + thmargin
-						+ thmargin;
-
-			int innertHint = innerwHint;
-
-			Point tcsize = NULL_SIZE;
-			if (textClient != null) {
-				tcsize = textClientCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			Point size = NULL_SIZE;
-
-			if (textLabel != null) {
-				if (tcsize.x > 0 && FormUtil.isWrapControl(textClient)) {
-					size = textLabelCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-					if (innertHint != SWT.DEFAULT && innertHint < size.x + IGAP + tcsize.x) {
-						innertHint -= IGAP;
-						if (textLabel instanceof Label) {
-							GC gc = new GC(textLabel);
-							size = FormUtil.computeWrapSize(gc, ((Label)textLabel).getText(), Math.round(innertHint*(size.x/(float)(size.x+tcsize.x))));
-							gc.dispose();
-						} else
-							size = textLabelCache.computeSize(Math.round(innertHint*(size.x/(float)(size.x+tcsize.x))), SWT.DEFAULT);
-						tcsize = textClientCache.computeSize(innertHint-size.x, SWT.DEFAULT);
-					}
-				} else {
-					if (innertHint != SWT.DEFAULT && tcsize.x > 0)
-						innertHint -= IGAP + tcsize.x;
-					size = textLabelCache.computeSize(innertHint, SWT.DEFAULT);
-				}
-			}
-			if (textLabel instanceof Label) {
-				Point defSize = textLabelCache.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				if (defSize.y == size.y) {
-					// One line - pick the smaller of the two widths
-					size.x = Math.min(defSize.x, size.x);
-				}
-			}
-			if (size.x > 0)
-				width = size.x;
-			if (tcsize.x > 0)
-				width += IGAP + tcsize.x;
-			if (toggle != null)
-				width += twidth;
-			height = tcsize.y > 0 ? Math.max(tcsize.y, size.y) : size.y;
-			if (getSeparatorControl() != null) {
-				height += VSPACE + SEPARATOR_HEIGHT;
-				if (expanded && client != null)
-					height += VSPACE;
-			}
-			// if (hasTitleBar())
-			// height += VSPACE;
-			if ((expanded || (expansionStyle & COMPACT) == 0) && client != null) {
-				int cwHint = wHint;
-				int clientIndent = 0;
-				if ((expansionStyle & CLIENT_INDENT) != 0)
-					clientIndent = twidth;
-
-				if (cwHint != SWT.DEFAULT) {
-					cwHint -= marginWidth + marginWidth + thmargin + thmargin;
-					if ((expansionStyle & CLIENT_INDENT) != 0)
-						if (tcsize.x > 0)
-							cwHint -= twidth;
-				}
-				Point dsize = null;
-				Point csize = clientCache.computeSize(FormUtil.getWidthHint(
-						cwHint, client), SWT.DEFAULT);
-				if (getDescriptionControl() != null) {
-					int dwHint = cwHint;
-					if (dwHint == SWT.DEFAULT) {
-						dwHint = csize.x;
-						if ((expansionStyle & CLIENT_INDENT) != 0)
-							dwHint -= twidth;
-					}
-					dsize = descriptionCache.computeSize(dwHint, SWT.DEFAULT);
-				}
-				if (dsize != null) {
-					width = Math.max(width, dsize.x + clientIndent);
-					if (expanded)
-						height += descriptionVerticalSpacing + dsize.y
-								+ clientVerticalSpacing;
-				} else {
-					height += clientVerticalSpacing;
-					if (getSeparatorControl() != null)
-						height -= VSPACE;
-				}
-				width = Math.max(width, csize.x + clientIndent);
-				if (expanded)
-					height += csize.y;
-			}
-			if (toggle != null)
-				height = height - size.y + Math.max(size.y, tsize.y);
-
-			Point result = new Point(width + marginWidth + marginWidth
-					+ thmargin + thmargin, height + marginHeight + marginHeight
-					+ tvmargin + tvmargin);
-			return result;
-		}
-
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.parts.ILayoutExtension#computeMinimumWidth(org.eclipse.swt.widgets.Composite,
-		 *      boolean)
-		 */
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-	}
-
-	/**
-	 * Creates an expandable composite using a TWISTIE toggle.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            SWT style bits
-	 */
-	public ExpandableComposite(Composite parent, int style) {
-		this(parent, style, TWISTIE);
-	}
-
-	/**
-	 * Creates the expandable composite in the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param style
-	 *            the control style (as expected by SWT subclass)
-	 * @param expansionStyle
-	 *            the style of the expansion widget (TREE_NODE, TWISTIE,
-	 *            CLIENT_INDENT, COMPACT, FOCUS_TITLE,
-	 *            LEFT_TEXT_CLIENT_ALIGNMENT, NO_TITLE)
-	 */
-	public ExpandableComposite(Composite parent, int style, int expansionStyle) {
-		super(parent, style);
-		this.expansionStyle = expansionStyle;
-		if ((expansionStyle & TITLE_BAR) != 0)
-			setBackgroundMode(SWT.INHERIT_DEFAULT);
-		super.setLayout(new ExpandableLayout());
-		if (hasTitleBar()) {
-			this.addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					onPaint(e);
-				}
-			});
-		}
-		if ((expansionStyle & TWISTIE) != 0)
-			toggle = new Twistie(this, SWT.NULL);
-		else if ((expansionStyle & TREE_NODE) != 0)
-			toggle = new TreeNode(this, SWT.NULL);
-		else
-			expanded = true;
-		if ((expansionStyle & EXPANDED) != 0)
-			expanded = true;
-		if (toggle != null) {
-			toggle.setExpanded(expanded);
-			toggle.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					toggleState();
-				}
-			});
-			toggle.addPaintListener(new PaintListener() {
-				public void paintControl(PaintEvent e) {
-					if (textLabel instanceof Label && !isFixedStyle())
-						textLabel.setForeground(toggle.hover ? toggle
-								.getHoverDecorationColor()
-								: getTitleBarForeground());
-				}
-			});
-			toggle.addKeyListener(new KeyAdapter() {
-				public void keyPressed(KeyEvent e) {
-					if (e.keyCode == SWT.ARROW_UP) {
-						verticalMove(false);
-						e.doit = false;
-					} else if (e.keyCode == SWT.ARROW_DOWN) {
-						verticalMove(true);
-						e.doit = false;
-					}
-				}
-			});
-			if ((getExpansionStyle()&FOCUS_TITLE)==0) {
-				toggle.paintFocus=false;
-				toggle.addFocusListener(new FocusListener() {
-					public void focusGained(FocusEvent e) {
-						textLabel.redraw();
-					}
-
-					public void focusLost(FocusEvent e) {
-						textLabel.redraw();
-					}
-				});
-			}
-		}
-		if ((expansionStyle & FOCUS_TITLE) != 0) {
-			Hyperlink link = new Hyperlink(this, SWT.WRAP);
-			link.addHyperlinkListener(new HyperlinkAdapter() {
-				public void linkActivated(HyperlinkEvent e) {
-					programmaticToggleState();
-				}
-			});
-			textLabel = link;
-		} else if ((expansionStyle & NO_TITLE) == 0) {
-			final Label label = new Label(this, SWT.WRAP);
-			if (!isFixedStyle()) {
-				label.setCursor(FormsResources.getHandCursor());
-				Listener listener = new Listener() {
-					public void handleEvent(Event e) {
-						switch (e.type) {
-						case SWT.MouseDown:
-							if (toggle != null)
-								toggle.setFocus();
-							break;
-						case SWT.MouseUp:
-							label.setCursor(FormsResources.getBusyCursor());
-							programmaticToggleState();
-							label.setCursor(FormsResources.getHandCursor());
-							break;
-						case SWT.MouseEnter:
-							if (toggle != null) {
-								label.setForeground(toggle
-										.getHoverDecorationColor());
-								toggle.hover = true;
-								toggle.redraw();
-							}
-							break;
-						case SWT.MouseExit:
-							if (toggle != null) {
-								label.setForeground(getTitleBarForeground());
-								toggle.hover = false;
-								toggle.redraw();
-							}
-							break;
-						case SWT.Paint:
-							if (toggle != null) {
-								paintTitleFocus(e.gc);
-							}
-							break;
-						}
-					}
-				};
-				label.addListener(SWT.MouseDown, listener);
-				label.addListener(SWT.MouseUp, listener);
-				label.addListener(SWT.MouseEnter, listener);
-				label.addListener(SWT.MouseExit, listener);
-				label.addListener(SWT.Paint, listener);
-			}
-			textLabel = label;
-		}
-		if (textLabel != null) {
-			textLabel.setMenu(getMenu());
-			textLabel.addTraverseListener(new TraverseListener() {
-				public void keyTraversed(TraverseEvent e) {
-					if (e.detail == SWT.TRAVERSE_MNEMONIC) {
-						// steal the mnemonic
-						if (!isVisible() || !isEnabled())
-							return;
-						if (FormUtil.mnemonicMatch(getText(), e.character)) {
-							e.doit = false;
-							if (!isFixedStyle()) {
-							    programmaticToggleState();
-							}
-							setFocus();
-						}
-					}
-				}
-			});
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	/**
-	 * Overrides 'super' to pass the menu to the text label.
-	 * 
-	 * @param menu
-	 *            the menu from the parent to attach to this control.
-	 */
-
-	public void setMenu(Menu menu) {
-		if (textLabel != null)
-			textLabel.setMenu(menu);
-		super.setMenu(menu);
-	}
-
-	/**
-	 * Prevents assignment of the layout manager - expandable composite uses its
-	 * own layout.
-	 */
-	public final void setLayout(Layout layout) {
-	}
-
-	/**
-	 * Sets the background of all the custom controls in the expandable.
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		if ((getExpansionStyle() & TITLE_BAR) == 0) {
-			if (textLabel != null)
-				textLabel.setBackground(bg);
-			if (toggle != null)
-				toggle.setBackground(bg);
-		}
-	}
-
-	/**
-	 * Sets the foreground of all the custom controls in the expandable.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		if (textLabel != null)
-			textLabel.setForeground(fg);
-		if (toggle != null)
-			toggle.setForeground(fg);
-	}
-
-	/**
-	 * Sets the color of the toggle control.
-	 * 
-	 * @param c
-	 *            the color object
-	 */
-	public void setToggleColor(Color c) {
-		if (toggle != null)
-			toggle.setDecorationColor(c);
-	}
-
-	/**
-	 * Sets the active color of the toggle control (when the mouse enters the
-	 * toggle area).
-	 * 
-	 * @param c
-	 *            the active color object
-	 */
-	public void setActiveToggleColor(Color c) {
-		if (toggle != null)
-			toggle.setHoverDecorationColor(c);
-	}
-
-	/**
-	 * Sets the fonts of all the custom controls in the expandable.
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		if (textLabel != null)
-			textLabel.setFont(font);
-		if (toggle != null)
-			toggle.setFont(font);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-
-	public void setEnabled(boolean enabled) {
-		if (textLabel != null)
-			textLabel.setEnabled(enabled);
-		if (toggle != null)
-			toggle.setEnabled(enabled);
-		super.setEnabled(enabled);
-	}
-
-	/**
-	 * Sets the client of this expandable composite. The client must not be
-	 * <samp>null </samp> and must be a direct child of this container.
-	 * 
-	 * @param client
-	 *            the client that will be expanded or collapsed
-	 */
-	public void setClient(Control client) {
-		Assert.isTrue(client != null && client.getParent().equals(this));
-		this.client = client;
-	}
-
-	/**
-	 * Returns the current expandable client.
-	 * 
-	 * @return the client control
-	 */
-	public Control getClient() {
-		return client;
-	}
-
-	/**
-	 * Sets the title of the expandable composite. The title will act as a
-	 * hyperlink and activating it will toggle the client between expanded and
-	 * collapsed state.
-	 * 
-	 * @param title
-	 *            the new title string
-	 * @see #getText()
-	 */
-	public void setText(String title) {
-		if (textLabel instanceof Label)
-			((Label) textLabel).setText(title);
-		else if (textLabel instanceof Hyperlink)
-			((Hyperlink) textLabel).setText(title);
-	}
-
-	/**
-	 * Returns the title string.
-	 * 
-	 * @return the title string
-	 * @see #setText(String)
-	 */
-	public String getText() {
-		if (textLabel instanceof Label)
-			return ((Label) textLabel).getText();
-		else if (textLabel instanceof Hyperlink)
-			return ((Hyperlink) textLabel).getText();
-		else
-			return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Tests the expanded state of the composite.
-	 * 
-	 * @return <samp>true </samp> if expanded, <samp>false </samp> if collapsed.
-	 */
-	public boolean isExpanded() {
-		return expanded;
-	}
-
-	/**
-	 * Returns the bitwise-ORed style bits for the expansion control.
-	 * 
-	 * @return the bitwise-ORed style bits for the expansion control
-	 */
-	public int getExpansionStyle() {
-		return expansionStyle;
-	}
-
-	/**
-	 * Programmatically changes expanded state.
-	 * 
-	 * @param expanded
-	 *            the new expanded state
-	 */
-	public void setExpanded(boolean expanded) {
-		internalSetExpanded(expanded);
-		if (toggle != null)
-			toggle.setExpanded(expanded);
-	}
-
-	/**
-	 * Performs the expansion state change for the expandable control.
-	 * 
-	 * @param expanded
-	 *            the expansion state
-	 */
-	protected void internalSetExpanded(boolean expanded) {
-		if (this.expanded != expanded) {
-			this.expanded = expanded;
-			if (getDescriptionControl() != null)
-				getDescriptionControl().setVisible(expanded);
-			if (client != null)
-				client.setVisible(expanded);
-			layout();
-		}
-	}
-
-	/**
-	 * Adds the listener that will be notified when the expansion state changes.
-	 * 
-	 * @param listener
-	 *            the listener to add
-	 */
-	public void addExpansionListener(IExpansionListener listener) {
-		listeners.add(listener);
-	}
-
-	/**
-	 * Removes the expansion listener.
-	 * 
-	 * @param listener
-	 *            the listner to remove
-	 */
-	public void removeExpansionListener(IExpansionListener listener) {
-		listeners.remove(listener);
-	}
-
-	/**
-	 * If TITLE_BAR or SHORT_TITLE_BAR style is used, title bar decoration will
-	 * be painted behind the text in this method. The default implementation
-	 * does nothing - subclasses are responsible for rendering the title area.
-	 * 
-	 * @param e
-	 *            the paint event
-	 */
-	protected void onPaint(PaintEvent e) {
-	}
-
-	/**
-	 * Returns description control that will be placed under the title if
-	 * present.
-	 * 
-	 * @return the description control or <samp>null </samp> if not used.
-	 */
-	protected Control getDescriptionControl() {
-		return null;
-	}
-
-	/**
-	 * Returns the separator control that will be placed between the title and
-	 * the description if present.
-	 * 
-	 * @return the separator control or <samp>null </samp> if not used.
-	 */
-	protected Control getSeparatorControl() {
-		return null;
-	}
-
-	/**
-	 * Computes the size of the expandable composite.
-	 * 
-	 * @see org.eclipse.swt.widgets.Composite#computeSize
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		Point size;
-		ExpandableLayout layout = (ExpandableLayout) getLayout();
-		if (wHint == SWT.DEFAULT || hHint == SWT.DEFAULT) {
-			size = layout.computeSize(this, wHint, hHint, changed);
-		} else {
-			size = new Point(wHint, hHint);
-		}
-		Rectangle trim = computeTrim(0, 0, size.x, size.y);
-		return new Point(trim.width, trim.height);
-	}
-
-	/**
-	 * Returns <samp>true </samp> if the composite is fixed i.e. cannot be
-	 * expanded or collapsed. Fixed control will still contain the title,
-	 * separator and description (if present) as well as the client, but will be
-	 * in the permanent expanded state and the toggle affordance will not be
-	 * shown.
-	 * 
-	 * @return <samp>true </samp> if the control is fixed in the expanded state,
-	 *         <samp>false </samp> if it can be collapsed.
-	 */
-	protected boolean isFixedStyle() {
-		return (expansionStyle & TWISTIE) == 0
-				&& (expansionStyle & TREE_NODE) == 0;
-	}
-
-	/**
-	 * Returns the text client control.
-	 * 
-	 * @return Returns the text client control if specified, or
-	 *         <code>null</code> if not.
-	 */
-	public Control getTextClient() {
-		return textClient;
-	}
-
-	/**
-	 * Sets the text client control. Text client is a control that is a child of
-	 * the expandable composite and is placed to the right of the text. It can
-	 * be used to place small image hyperlinks. If more than one control is
-	 * needed, use Composite to hold them. Care should be taken that the height
-	 * of the control is comparable to the height of the text.
-	 * 
-	 * @param textClient
-	 *            the textClient to set or <code>null</code> if not needed any
-	 *            more.
-	 */
-	public void setTextClient(Control textClient) {
-		if (this.textClient != null)
-			this.textClient.dispose();
-		this.textClient = textClient;
-	}
-
-	/**
-	 * Returns the difference in height between the text and the text client (if
-	 * set). This difference can cause vertical alignment problems when two
-	 * expandable composites are placed side by side, one with and one without
-	 * the text client. Use this method obtain the value to add to either
-	 * <code>descriptionVerticalSpacing</code> (if you have description) or
-	 * <code>clientVerticalSpacing</code> to correct the alignment of the
-	 * expandable without the text client.
-	 * 
-	 * @return the difference in height between the text and the text client or
-	 *         0 if no corrective action is needed.
-	 * @since 3.3
-	 */
-	public int getTextClientHeightDifference() {
-		if (textClient == null || textLabel == null)
-			return 0;
-		int theight = textLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		int tcheight = textClient.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		return Math.max(tcheight - theight, 0);
-	}
-
-	/**
-	 * Tests if this expandable composite renders a title bar around the text.
-	 * 
-	 * @return <code>true</code> for <code>TITLE_BAR</code> or
-	 *         <code>SHORT_TITLE_BAR</code> styles, <code>false</code>
-	 *         otherwise.
-	 */
-	protected boolean hasTitleBar() {
-		return (getExpansionStyle() & TITLE_BAR) != 0
-				|| (getExpansionStyle() & SHORT_TITLE_BAR) != 0;
-	}
-
-	/**
-	 * Sets the color of the title bar foreground when TITLE_BAR style is used.
-	 * 
-	 * @param color
-	 *            the title bar foreground
-	 */
-	public void setTitleBarForeground(Color color) {
-		if (hasTitleBar())
-			titleBarForeground = color;
-		if (textLabel != null)
-			textLabel.setForeground(color);
-	}
-
-	/**
-	 * Returns the title bar foreground when TITLE_BAR style is used.
-	 * 
-	 * @return the title bar foreground
-	 */
-	public Color getTitleBarForeground() {
-		return titleBarForeground;
-	}
-
-	// end of APIs
-
-	private void toggleState() {
-		boolean newState = !isExpanded();
-		fireExpanding(newState, true);
-		internalSetExpanded(newState);
-		fireExpanding(newState, false);
-		if (newState)
-			FormUtil.ensureVisible(this);
-	}
-
-	private void fireExpanding(boolean state, boolean before) {
-		int size = listeners.size();
-		if (size == 0)
-			return;
-		ExpansionEvent e = new ExpansionEvent(this, state);
-		Object [] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IExpansionListener listener = (IExpansionListener) listenerList[i];
-			if (before)
-				listener.expansionStateChanging(e);
-			else
-				listener.expansionStateChanged(e);
-		}
-	}
-
-	private void verticalMove(boolean down) {
-		Composite parent = getParent();
-		Control[] children = parent.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child == this) {
-				ExpandableComposite sibling = getSibling(children, i, down);
-				if (sibling != null && sibling.toggle != null) {
-					sibling.setFocus();
-				}
-				break;
-			}
-		}
-	}
-
-	private ExpandableComposite getSibling(Control[] children, int index,
-			boolean down) {
-		int loc = down ? index + 1 : index - 1;
-		while (loc >= 0 && loc < children.length) {
-			Control c = children[loc];
-			if (c instanceof ExpandableComposite && c.isVisible())
-				return (ExpandableComposite) c;
-			loc = down ? loc + 1 : loc - 1;
-		}
-		return null;
-	}
-
-	private void programmaticToggleState() {
-		if (toggle != null)
-			toggle.setExpanded(!toggle.isExpanded());
-		toggleState();
-	}
-	
-	private void paintTitleFocus(GC gc) {
-		Point size = textLabel.getSize();
-		gc.setBackground(textLabel.getBackground());
-		gc.setForeground(textLabel.getForeground());
-		if (toggle.isFocusControl())
-			gc.drawFocus(0, 0, size.x, size.y);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java
deleted file mode 100644
index f359f84..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Form.java
+++ /dev/null
@@ -1,808 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-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.swt.widgets.Menu;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.internal.forms.MessageManager;
-import org.eclipse.ui.internal.forms.widgets.FormHeading;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * Form is a custom control that renders a title and an optional background
- * image above the body composite. It can be used alone when part of parents
- * that are scrolled. If scrolling is required, use <code>ScrolledForm</code>
- * instead because it has an instance of <code>Form</code> and adds scrolling
- * capability.
- * <p>
- * Form can have a title if set. If not set, title area will not be left empty -
- * form body will be resized to fill the entire form. In addition, an optional
- * title image can be set and is rendered to the left of the title (since 3.2).
- * <p>
- * Form can have a title drop down menu if the menu bar manager is not empty
- * (since 3.3).
- * <p>
- * Form title can support drag and drop if drag and drop support methods are
- * invoked. When used, additional decoration is rendered behind the title to
- * reinforce the drag and drop ability (since 3.3).
- * <p>
- * The form supports status messages. These messages can have various severity
- * (error, warning, info or none). If status hyperlink handler is specified, the
- * messages with the specified severity other than none will be rendered as
- * hyperlinks.
- * <p>
- * Form can have a background image behind the title text. The image is tiled as
- * many times as needed to fill the title area. Alternatively, gradient
- * background can be painted vertically or horizontally.
- * <p>
- * Form can be put in a 'busy' state. While in this state, title image is
- * replaced with an animation that lasts as long as the 'busy' state is active.
- * <p>
- * It is possible to create an optional head client control. When created, this
- * control is placed in the form heading as a second row.
- * <p>
- * Form has a custom layout manager that is wrap-enabled. If a form is placed in
- * a composite whose layout manager implements ILayoutExtension, the body of the
- * form will participate in wrapping as long as its layout manager implements
- * ILayoutExtension as well.
- * <p>
- * Children of the form should typically be created using FormToolkit to match
- * the appearance and behaviour. When creating children, use the form body as a
- * parent by calling 'getBody()' on the form instance. Example:
- * 
- * <pre>
- * FormToolkit toolkit = new FormToolkit(parent.getDisplay());
- * Form form = toolkit.createForm(parent);
- * form.setText(&quot;Sample form&quot;);
- * form.getBody().setLayout(new GridLayout());
- * toolkit.createButton(form.getBody(), &quot;Checkbox&quot;, SWT.CHECK);
- * </pre>
- * 
- * <p>
- * No layout manager has been set on the body. Clients are required to set the
- * desired layout manager explicitly.
- * <p>
- * Although the class is not final, it should not be subclassed.
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class Form extends Composite {
-	private FormHeading head;
-
-	private Composite body;
-
-	private SizeCache bodyCache = new SizeCache();
-
-	private SizeCache headCache = new SizeCache();
-
-	private FormText selectionText;
-
-	private MessageManager messageManager;
-
-	private class FormLayout extends Layout implements ILayoutExtension {
-		public int computeMinimumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, 5, SWT.DEFAULT, flushCache).x;
-		}
-
-		public int computeMaximumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, SWT.DEFAULT, SWT.DEFAULT, flushCache).x;
-		}
-
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			if (flushCache) {
-				bodyCache.flush();
-				headCache.flush();
-			}
-			bodyCache.setControl(body);
-			headCache.setControl(head);
-
-			int width = 0;
-			int height = 0;
-
-			Point hsize = headCache.computeSize(FormUtil.getWidthHint(wHint,
-					head), SWT.DEFAULT);
-			width = Math.max(hsize.x, width);
-			height = hsize.y;
-			
-			boolean ignoreBody=getData(FormUtil.IGNORE_BODY)!=null;
-			
-			Point bsize;
-			if (ignoreBody)
-				bsize = new Point(0,0);
-			else
-				bsize = bodyCache.computeSize(FormUtil.getWidthHint(wHint,
-					body), SWT.DEFAULT);
-			width = Math.max(bsize.x, width);
-			height += bsize.y;
-			return new Point(width, height);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			if (flushCache) {
-				bodyCache.flush();
-				headCache.flush();
-			}
-			bodyCache.setControl(body);
-			headCache.setControl(head);
-			Rectangle carea = composite.getClientArea();
-
-			Point hsize = headCache.computeSize(carea.width, SWT.DEFAULT);
-			headCache.setBounds(0, 0, carea.width, hsize.y);
-			bodyCache
-					.setBounds(0, hsize.y, carea.width, carea.height - hsize.y);
-		}
-	}
-
-	/**
-	 * Creates the form content control as a child of the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 */
-	public Form(Composite parent, int style) {
-		super(parent, SWT.NO_BACKGROUND | style);
-		super.setLayout(new FormLayout());
-		head = new FormHeading(this, SWT.NULL);
-		head.setMenu(parent.getMenu());
-		body = new LayoutComposite(this, SWT.NULL);
-		body.setMenu(parent.getMenu());
-	}
-
-	/**
-	 * Passes the menu to the form body.
-	 * 
-	 * @param menu
-	 *            the parent menu
-	 */
-	public void setMenu(Menu menu) {
-		super.setMenu(menu);
-		head.setMenu(menu);
-		body.setMenu(menu);
-	}
-
-	/**
-	 * Fully delegates the size computation to the internal layout manager.
-	 */
-	public final Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((FormLayout) getLayout()).computeSize(this, wHint, hHint,
-				changed);
-	}
-
-	/**
-	 * Prevents from changing the custom control layout.
-	 */
-	public final void setLayout(Layout layout) {
-	}
-
-	/**
-	 * Returns the title text that will be rendered at the top of the form.
-	 * 
-	 * @return the title text
-	 */
-	public String getText() {
-		return head.getText();
-	}
-
-	/**
-	 * Returns the title image that will be rendered to the left of the title.
-	 * 
-	 * @return the title image or <code>null</code> if not set.
-	 * @since 3.2
-	 */
-	public Image getImage() {
-		return head.getImage();
-	}
-
-	/**
-	 * Sets the foreground color of the form. This color will also be used for
-	 * the body.
-	 * 
-	 * @param fg
-	 *            the foreground color
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		head.setForeground(fg);
-		body.setForeground(fg);
-	}
-
-	/**
-	 * Sets the background color of the form. This color will also be used for
-	 * the body.
-	 * 
-	 * @param bg
-	 *            the background color
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		head.setBackground(bg);
-		body.setBackground(bg);
-	}
-
-	/**
-	 * Sets the font of the header text.
-	 * 
-	 * @param font
-	 *            the new font
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		head.setFont(font);
-	}
-
-	/**
-	 * Sets the text to be rendered at the top of the form above the body as a
-	 * title.
-	 * <p>
-	 * <strong>Note:</strong> Mnemonics are indicated by an '&amp;' that causes
-	 * the next character to be the mnemonic. Mnemonics are not applicable in
-	 * the case of the form title but need to be taken into acount due to the
-	 * usage of the underlying widget that renders mnemonics in the title area.
-	 * The mnemonic indicator character '&amp;' can be escaped by doubling it in
-	 * the string, causing a single '&amp;' to be displayed.
-	 * </p>
-	 * 
-	 * @param text
-	 *            the title text
-	 */
-	public void setText(String text) {
-		head.setText(text);
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Sets the image to be rendered to the left of the title. This image will
-	 * be temporarily hidden in two cases:
-	 * 
-	 * <ol>
-	 * <li>When the form is busy - replaced with a busy animation</li>
-	 * <li>When the form has message set - replaced with the image indicating
-	 * message severity</li>
-	 * </ol>
-	 * 
-	 * @param image
-	 *            the title image or <code>null</code> to show no image.
-	 * @since 3.2
-	 */
-	public void setImage(Image image) {
-		head.setImage(image);
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Sets the background colors to be painted behind the title text in a
-	 * gradient. Note that this method will reset color previously set by
-	 * {@link #setBackground(Color)}. This is necessary for the simulated
-	 * transparency of the heading in all of its children control.
-	 * 
-	 * @param gradientColors
-	 *            the array of colors that form the gradient
-	 * @param percents
-	 *            the partition of the overall space between the gradient colors
-	 * @param vertical
-	 *            of <code>true</code>, the gradient will be rendered
-	 *            vertically, if <code>false</code> the orientation will be
-	 *            horizontal.
-	 */
-
-	public void setTextBackground(Color[] gradientColors, int[] percents,
-			boolean vertical) {
-		head.setTextBackground(gradientColors, percents, vertical);
-	}
-
-	/**
-	 * Returns the optional background image of the form head.
-	 * 
-	 * @return the background image or <code>null</code> if not specified.
-	 */
-	public Image getBackgroundImage() {
-		return head.getHeadingBackgroundImage();
-	}
-
-	/**
-	 * Sets the optional background image to be rendered behind the title
-	 * starting at the position 0,0. If the image is smaller than the container
-	 * in any dimension, it will be tiled.
-	 * 
-	 * As of version 3.2, this method only supports SWT.BITMAP image types. This is
-	 * because the rendering is now delegated to SWT which imposes this restriction
-	 * on background images, 
-	 * 
-	 * @param backgroundImage
-	 *            the head background image.
-	 * 
-	 */
-	public void setBackgroundImage(Image backgroundImage) {
-		head.setHeadingBackgroundImage(backgroundImage);
-	}
-
-	/**
-	 * Returns the tool bar manager that is used to manage tool items in the
-	 * form's title area.
-	 * 
-	 * @return form tool bar manager
-	 */
-	public IToolBarManager getToolBarManager() {
-		return head.getToolBarManager();
-	}
-
-	/**
-	 * Sets the tool bar vertical alignment relative to the header. Can be
-	 * useful when there is more free space at the second row (with the head
-	 * client).
-	 * 
-	 * @param alignment
-	 *            SWT.TOP or SWT.BOTTOM
-	 * @since 3.3
-	 */
-
-	public void setToolBarVerticalAlignment(int alignment) {
-		head.setToolBarAlignment(alignment);
-	}
-
-	/**
-	 * Returns the current tool bar alignment (if used).
-	 * 
-	 * @return SWT.TOP or SWT.BOTTOM
-	 * @since 3.3
-	 */
-
-	public int getToolBarVerticalAlignment() {
-		return head.getToolBarAlignment();
-	}
-
-	/**
-	 * Returns the menu manager that is used to manage title area drop-down menu
-	 * items.
-	 * 
-	 * @return title area drop-down menu manager
-	 * @since 3.3
-	 */
-	public IMenuManager getMenuManager() {
-		return head.getMenuManager();
-	}
-
-	/**
-	 * Updates the local tool bar manager if used. Does nothing if local tool
-	 * bar manager has not been created yet.
-	 */
-	public void updateToolBar() {
-		head.updateToolBar();
-	}
-
-	/**
-	 * Returns the container that occupies the head of the form (the form area
-	 * above the body). Use this container as a parent for the head client.
-	 * 
-	 * @return the head of the form.
-	 * @since 3.2
-	 */
-	public Composite getHead() {
-		return head;
-	}
-
-	/**
-	 * Returns the optional head client if set.
-	 * 
-	 * @return the head client or <code>null</code> if not set.
-	 * @see #setHeadClient(Control)
-	 * @since 3.2
-	 */
-	public Control getHeadClient() {
-		return head.getHeadClient();
-	}
-
-	/**
-	 * Sets the optional head client. Head client is placed after the form
-	 * title. This option causes the tool bar to be placed in the second raw of
-	 * the header (below the head client).
-	 * <p>
-	 * The head client must be a child of the composite returned by
-	 * <code>getHead()</code> method.
-	 * 
-	 * @param headClient
-	 *            the optional child of the head
-	 * @since 3.2
-	 */
-	public void setHeadClient(Control headClient) {
-		head.setHeadClient(headClient);
-		layout();
-	}
-
-	/**
-	 * Returns the container that occupies the body of the form (the form area
-	 * below the title). Use this container as a parent for the controls that
-	 * should be in the form. No layout manager has been set on the form body.
-	 * 
-	 * @return Returns the body of the form.
-	 */
-	public Composite getBody() {
-		return body;
-	}
-
-	/**
-	 * Tests if the background image is tiled to cover the entire area of the
-	 * form heading.
-	 * 
-	 * @return <code>true</code> if heading background image is tiled,
-	 *         <code>false</code> otherwise.
-	 */
-	public boolean isBackgroundImageTiled() {
-		return head.isBackgroundImageTiled();
-	}
-
-	/**
-	 * Sets whether the header background image is repeated to cover the entire
-	 * heading area or not.
-	 * 
-	 * @param backgroundImageTiled
-	 *            set <code>true</code> to tile the image, or
-	 *            <code>false</code> to paint the background image only once
-	 *            at 0,0
-	 */
-	public void setBackgroundImageTiled(boolean backgroundImageTiled) {
-		head.setBackgroundImageTiled(backgroundImageTiled);
-	}
-
-	/**
-	 * Returns the background image alignment.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             either painted at 0,0 and/or tiled.
-	 * @return SWT.LEFT
-	 */
-	public int getBackgroundImageAlignment() {
-		return SWT.LEFT;
-	}
-
-	/**
-	 * Sets the background image alignment.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             always tiled and alignment cannot be controlled.
-	 * @param backgroundImageAlignment
-	 *            The backgroundImageAlignment to set.
-	 * @since 3.1
-	 */
-	public void setBackgroundImageAlignment(int backgroundImageAlignment) {
-	}
-
-	/**
-	 * Tests if background image is clipped.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             always clipped.
-	 * @return true
-	 * @since 3.1
-	 */
-	public boolean isBackgroundImageClipped() {
-		return true;
-	}
-
-	/**
-	 * Sets whether the background image is clipped.
-	 * 
-	 * @deprecated due to the underlying widget limitations, background image is
-	 *             always clipped.
-	 * @param backgroundImageClipped
-	 *            the value to set
-	 * @since 3.1
-	 */
-	public void setBackgroundImageClipped(boolean backgroundImageClipped) {
-	}
-
-	/**
-	 * Tests if the form head separator is visible.
-	 * 
-	 * @return <code>true</code> if the head/body separator is visible,
-	 *         <code>false</code> otherwise
-	 * @since 3.2
-	 */
-	public boolean isSeparatorVisible() {
-		return head.isSeparatorVisible();
-	}
-
-	/**
-	 * If set, adds a separator between the head and body. Since 3.3, the colors
-	 * that are used to render it are {@link IFormColors#H_BOTTOM_KEYLINE1} and
-	 * {@link IFormColors#H_BOTTOM_KEYLINE2}.
-	 * 
-	 * @param addSeparator
-	 *            <code>true</code> to make the separator visible,
-	 *            <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-	public void setSeparatorVisible(boolean addSeparator) {
-		head.setSeparatorVisible(addSeparator);
-	}
-
-	/**
-	 * Returns the color used to render the optional head separator. If gradient
-	 * text background is used additional colors from the gradient will be used
-	 * to render the separator.
-	 * 
-	 * @return separator color or <code>null</code> if not set.
-	 * @since 3.2
-	 * @deprecated use <code>getHeadColor(IFormColors.H_BOTTOM_KEYLINE2)</code>
-	 */
-
-	public Color getSeparatorColor() {
-		return head.getColor(IFormColors.H_BOTTOM_KEYLINE2);
-	}
-
-	/**
-	 * Sets the color to be used to render the optional head separator.
-	 * 
-	 * @param separatorColor
-	 *            the color to render the head separator or <code>null</code>
-	 *            to use the default color.
-	 * @since 3.2
-	 * @deprecated use
-	 *             <code>setHeadColor(IFormColors.H_BOTTOM_KEYLINE2, separatorColor)</code>
-	 */
-	public void setSeparatorColor(Color separatorColor) {
-		head.putColor(IFormColors.H_BOTTOM_KEYLINE2, separatorColor);
-	}
-
-	/**
-	 * Sets the color used to paint an aspect of the form heading.
-	 * 
-	 * @param key
-	 *            a valid form heading color key as defined in
-	 *            {@link IFormColors}. Relevant keys all start with an H_
-	 *            prefix.
-	 * @param color
-	 *            the color to use for the provided key
-	 * @since 3.3
-	 */
-
-	public void setHeadColor(String key, Color color) {
-		head.putColor(key, color);
-	}
-
-	/**
-	 * Returns the color that is currently use to paint an aspect of the form
-	 * heading, or <code>null</code> if not defined.
-	 * 
-	 * @param key
-	 *            the color key
-	 * @return the color object or <code>null</code> if not set.
-	 * @since 3.3
-	 */
-
-	public Color getHeadColor(String key) {
-		return head.getColor(key);
-	}
-
-	/**
-	 * Sets the message for this form. Message text is rendered in the form head
-	 * when shown.
-	 * 
-	 * @param message
-	 *            the message, or <code>null</code> to clear the message
-	 * @see #setMessage(String, int)
-	 * @since 3.2
-	 */
-	public void setMessage(String message) {
-		this.setMessage(message, 0, null);
-	}
-
-	/**
-	 * Sets the message for this form with an indication of what type of message
-	 * it is.
-	 * <p>
-	 * The valid message types are one of <code>NONE</code>,
-	 * <code>INFORMATION</code>,<code>WARNING</code>, or
-	 * <code>ERROR</code> defined in IMessageProvider interface.
-	 * </p>
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @see org.eclipse.jface.dialogs.IMessageProvider
-	 * @since 3.2
-	 */
-
-	public void setMessage(String newMessage, int newType) {
-		this.setMessage(newMessage, newType, null);
-	}
-
-	/**
-	 * Sets the message for this form with an indication of what type of message
-	 * it is.
-	 * <p>
-	 * The valid message types are one of <code>NONE</code>,
-	 * <code>INFORMATION</code>,<code>WARNING</code>, or
-	 * <code>ERROR</code> defined in IMessageProvider interface.
-	 * </p>
-	 * <p>
-	 * In addition to the summary message, this method also sets an array of
-	 * individual messages.
-	 * 
-	 * 
-	 * @param newMessage
-	 *            the message, or <code>null</code> to clear the message
-	 * @param newType
-	 *            the message type
-	 * @param children
-	 *            the individual messages that contributed to the overall
-	 *            message
-	 * @see org.eclipse.jface.dialogs.IMessageProvider
-	 * @since 3.3
-	 */
-
-	public void setMessage(String newMessage, int newType, IMessage[] children) {
-		head.showMessage(newMessage, newType, children);
-		layout();
-	}
-
-	/**
-	 * Adds a message hyperlink listener. If at least one listener is present,
-	 * messages will be rendered as hyperlinks.
-	 * 
-	 * @param listener
-	 * @see #removeMessageHyperlinkListener(IHyperlinkListener)
-	 * @since 3.3
-	 */
-	public void addMessageHyperlinkListener(IHyperlinkListener listener) {
-		head.addMessageHyperlinkListener(listener);
-	}
-
-	/**
-	 * Remove the message hyperlink listener.
-	 * 
-	 * @param listener
-	 * @see #addMessageHyperlinkListener(IHyperlinkListener)
-	 * @since 3.3
-	 */
-	public void removeMessageHyperlinkListener(IHyperlinkListener listener) {
-		head.removeMessageHyperlinkListener(listener);
-	}
-
-	/**
-	 * Tests if the form is in the 'busy' state. Busy form displays 'busy'
-	 * animation in the area of the title image.
-	 * 
-	 * @return <code>true</code> if busy, <code>false</code> otherwise.
-	 * @since 3.2
-	 */
-
-	public boolean isBusy() {
-		return head.isBusy();
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 * @since 3.2
-	 */
-
-	public void setBusy(boolean busy) {
-		head.setBusy(busy);
-	}
-
-	/**
-	 * Adds support for dragging items out of the form title area via a user
-	 * drag-and-drop operation.
-	 * 
-	 * @param operations
-	 *            a bitwise OR of the supported drag and drop operation types (
-	 *            <code>DROP_COPY</code>,<code>DROP_LINK</code>, and
-	 *            <code>DROP_MOVE</code>)
-	 * @param transferTypes
-	 *            the transfer types that are supported by the drag operation
-	 * @param listener
-	 *            the callback that will be invoked to set the drag data and to
-	 *            cleanup after the drag and drop operation finishes
-	 * @see org.eclipse.swt.dnd.DND
-	 * @since 3.3
-	 */
-	public void addTitleDragSupport(int operations, Transfer[] transferTypes,
-			DragSourceListener listener) {
-		head.addDragSupport(operations, transferTypes, listener);
-	}
-
-	/**
-	 * Adds support for dropping items into the form title area via a user
-	 * drag-and-drop operation.
-	 * 
-	 * @param operations
-	 *            a bitwise OR of the supported drag and drop operation types (
-	 *            <code>DROP_COPY</code>,<code>DROP_LINK</code>, and
-	 *            <code>DROP_MOVE</code>)
-	 * @param transferTypes
-	 *            the transfer types that are supported by the drop operation
-	 * @param listener
-	 *            the callback that will be invoked after the drag and drop
-	 *            operation finishes
-	 * @see org.eclipse.swt.dnd.DND
-	 * @since 3.3
-	 */
-	public void addTitleDropSupport(int operations, Transfer[] transferTypes,
-			DropTargetListener listener) {
-		head.addDropSupport(operations, transferTypes, listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-	 */
-	public String getMessage() {
-		return head.getMessage();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-	 */
-	public int getMessageType() {
-		return head.getMessageType();
-	}
-
-	/**
-	 * Returns the children messages that the cause of the summary message
-	 * currently set on the form.
-	 * 
-	 * @return an array of children messages or <code>null</code> if not set.
-	 * @see #setMessage(String, int, IMessage[])
-	 * @since 3.3
-	 */
-	public IMessage[] getChildrenMessages() {
-		return head.getChildrenMessages();
-	}
-
-	void setSelectionText(FormText text) {
-		if (selectionText != null && selectionText != text) {
-			selectionText.clearSelection();
-		}
-		this.selectionText = text;
-	}
-	
-	/**
-	 * Returns the message manager that will keep track of messages in this
-	 * form. 
-	 * 
-	 * @return the message manager instance
-	 * @since org.eclipse.ui.forms 3.4
-	 */
-	public IMessageManager getMessageManager() {
-		if (messageManager == null)
-			messageManager = new MessageManager(this);
-		return messageManager;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java
deleted file mode 100644
index 61f6543..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormText.java
+++ /dev/null
@@ -1,1719 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Martin Donnelly (m2a3@eircom.net) - patch (see Bugzilla #145997) 
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.ListenerList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-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.ScrolledComposite;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MenuEvent;
-import org.eclipse.swt.events.MenuListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-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.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-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.widgets.Canvas;
-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.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.TypedListener;
-
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.internal.forms.Messages;
-import org.eclipse.ui.internal.forms.widgets.ControlSegment;
-import org.eclipse.ui.internal.forms.widgets.FormFonts;
-import org.eclipse.ui.internal.forms.widgets.FormTextModel;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-import org.eclipse.ui.internal.forms.widgets.IFocusSelectable;
-import org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment;
-import org.eclipse.ui.internal.forms.widgets.ImageSegment;
-import org.eclipse.ui.internal.forms.widgets.Locator;
-import org.eclipse.ui.internal.forms.widgets.Paragraph;
-import org.eclipse.ui.internal.forms.widgets.ParagraphSegment;
-import org.eclipse.ui.internal.forms.widgets.SelectionData;
-import org.eclipse.ui.internal.forms.widgets.TextSegment;
-
-/**
- * This class is a read-only text control that is capable of rendering wrapped
- * text. Text can be rendered as-is or by parsing the formatting XML tags.
- * Independently, words that start with http:// can be converted into hyperlinks
- * on the fly.
- * <p>
- * When configured to use formatting XML, the control requires the root element
- * <code>form</code> to be used and requires any ampersand (&amp;) characters in the text to
- * be replaced by the entity <b>&amp;amp;</b>. The following tags can be children of the
- * <code>form</code> element:
- * </p>
- * <ul>
- * <li><b>p </b>- for defining paragraphs. The following attributes are
- * allowed:
- * <ul>
- * <li><b>vspace </b>- if set to 'false', no vertical space will be added
- * (default is 'true')</li>
- * </ul>
- * </li>
- * <li><b>li </b>- for defining list items. The following attributes are
- * allowed:
- * <ul>
- * <li><b>vspace </b>- the same as with the <b>p </b> tag</li>
- * <li><b>style </b>- could be 'bullet' (default), 'text' and 'image'</li>
- * <li><b>value </b>- not used for 'bullet'. For text, it is the value of the
- * text that is rendered as a bullet. For image, it is the href of the image to
- * be rendered as a bullet.</li>
- * <li><b>indent </b>- the number of pixels to indent the text in the list item
- * </li>
- * <li><b>bindent </b>- the number of pixels to indent the bullet itself</li>
- * </ul>
- * </li>
- * </ul>
- * <p>
- * Text in paragraphs and list items will be wrapped according to the width of
- * the control. The following tags can appear as children of either <b>p </b> or
- * <b>li </b> elements:
- * <ul>
- * <li><b>img </b>- to render an image. Element accepts attribute 'href' that
- * is a key to the <code>Image</code> set using 'setImage' method. Vertical
- * position of image relative to surrounding text is optionally controlled by
- * the attribute <b>align</b> that can have values <b>top</b>, <b>middle</b>
- * and <b>bottom</b></li>
- * <li><b>a </b>- to render a hyperlink. Element accepts attribute 'href' that
- * will be provided to the hyperlink listeners via HyperlinkEvent object. The
- * element also accepts 'nowrap' attribute (default is false). When set to
- * 'true', the hyperlink will not be wrapped. Hyperlinks automatically created
- * when 'http://' is encountered in text are not wrapped.</li>
- * <li><b>b </b>- the enclosed text will use bold font.</li>
- * <li><b>br </b>- forced line break (no attributes).</li>
- * <li><b>span </b>- the enclosed text will have the color and font specified
- * in the element attributes. Color is provided using 'color' attribute and is a
- * key to the Color object set by 'setColor' method. Font is provided using
- * 'font' attribute and is a key to the Font object set by 'setFont' method. As with
- * hyperlinks, it is possible to block wrapping by setting 'nowrap' to true
- * (false by default).
- * </li>
- * <li><b>control (new in 3.1)</b> - to place a control that is a child of the
- * text control. Element accepts attribute 'href' that is a key to the Control
- * object set using 'setControl' method. Optionally, attribute 'fill' can be set
- * to <code>true</code> to make the control fill the entire width of the text.
- * Form text is not responsible for creating or disposing controls, it only
- * places them relative to the surrounding text. Similar to <b>img</b>,
- * vertical position of the control can be set using the <b>align</b>
- * attribute. In addition, <b>width</b> and <b>height</b> attributes can
- * be used to force the dimensions of the control. If not used,
- * the preferred control size will be used.
- * </ul>
- * <p>
- * None of the elements can nest. For example, you cannot have <b>b </b> inside
- * a <b>span </b>. This was done to keep everything simple and transparent.
- * Since 3.1, an exception to this rule has been added to support nesting images
- * and text inside the hyperlink tag (<b>a</b>). Image enclosed in the
- * hyperlink tag acts as a hyperlink, can be clicked on and can accept and
- * render selection focus. When both text and image is enclosed, selection and
- * rendering will affect both as a single hyperlink.
- * </p>
- * <p>
- * Since 3.1, it is possible to select text. Text selection can be
- * programmatically accessed and also copied to clipboard. Non-textual objects
- * (images, controls etc.) in the selection range are ignored.
- * <p>
- * Care should be taken when using this control. Form text is not an HTML
- * browser and should not be treated as such. If you need complex formatting
- * capabilities, use Browser widget. If you need editing capabilities and
- * font/color styles of text segments is all you need, use StyleText widget.
- * Finally, if all you need is to wrap text, use SWT Label widget and create it
- * with SWT.WRAP style.
- * 
- * @see FormToolkit
- * @see TableWrapLayout
- * @since 3.0
- */
-public class FormText extends Canvas {
-	/**
-	 * The object ID to be used when registering action to handle URL hyperlinks
-	 * (those that should result in opening the web browser). Value is
-	 * "urlHandler".
-	 */
-	public static final String URL_HANDLER_ID = "urlHandler"; //$NON-NLS-1$
-
-	/**
-	 * Value of the horizontal margin (default is 0).
-	 */
-	public int marginWidth = 0;
-
-	/**
-	 * Value of tue vertical margin (default is 1).
-	 */
-	public int marginHeight = 1;
-
-	// private fields
-	private static final boolean DEBUG_TEXT = false;//"true".equalsIgnoreCase(Platform.getDebugOption(FormUtil.DEBUG_TEXT));
-	private static final boolean DEBUG_TEXTSIZE = false;//"true".equalsIgnoreCase(Platform.getDebugOption(FormUtil.DEBUG_TEXTSIZE));
-
-	private static final boolean DEBUG_FOCUS = false;//"true".equalsIgnoreCase(Platform.getDebugOption(FormUtil.DEBUG_FOCUS));	
-
-	private boolean hasFocus;
-
-	private boolean paragraphsSeparated = true;
-
-	private FormTextModel model;
-
-	private ListenerList listeners;
-
-	private Hashtable resourceTable = new Hashtable();
-
-	private IHyperlinkSegment entered;
-
-	private IHyperlinkSegment armed;
-
-	private boolean mouseFocus = false;
-
-	private boolean controlFocusTransfer = false;
-
-	private boolean inSelection = false;
-
-	private SelectionData selData;
-
-	private static final String INTERNAL_MENU = "__internal_menu__"; //$NON-NLS-1$
-
-	private static final String CONTROL_KEY = "__segment__"; //$NON-NLS-1$
-
-	private class FormTextLayout extends Layout implements ILayoutExtension {
-		public FormTextLayout() {
-		}
-
-		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, 5, SWT.DEFAULT, true).x;
-		}
-
-		/*
-		 * @see Layout#computeSize(Composite, int, int, boolean)
-		 */
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean changed) {
-			long start = 0;
-
-			if (DEBUG_TEXT)
-				start = System.currentTimeMillis();
-			int innerWidth = wHint;
-			if (innerWidth != SWT.DEFAULT)
-				innerWidth -= marginWidth * 2;
-			Point textSize = computeTextSize(innerWidth);
-			int textWidth = textSize.x + 2 * marginWidth;
-			int textHeight = textSize.y + 2 * marginHeight;
-			Point result = new Point(textWidth, textHeight);
-			if (DEBUG_TEXT) {
-				long stop = System.currentTimeMillis();
-				System.out.println("FormText computeSize: " + (stop - start) //$NON-NLS-1$
-						+ "ms"); //$NON-NLS-1$
-			}
-			if (DEBUG_TEXTSIZE) {
-				System.out.println("FormText ("+model.getAccessibleText()+"), computeSize: wHint="+wHint+", result="+result); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			return result;
-		}
-
-		private Point computeTextSize(int wHint) {
-			Paragraph[] paragraphs = model.getParagraphs();
-			GC gc = new GC(FormText.this);
-			gc.setFont(getFont());
-			Locator loc = new Locator();
-			int width = wHint != SWT.DEFAULT ? wHint : 0;
-			FontMetrics fm = gc.getFontMetrics();
-			int lineHeight = fm.getHeight();
-			boolean selectableInTheLastRow = false;
-			for (int i = 0; i < paragraphs.length; i++) {
-				Paragraph p = paragraphs[i];
-				if (i > 0 && getParagraphsSeparated()
-						&& p.getAddVerticalSpace())
-					loc.y += getParagraphSpacing(lineHeight);
-				loc.rowHeight = 0;
-				loc.indent = p.getIndent();
-				loc.x = p.getIndent();
-				ParagraphSegment[] segments = p.getSegments();
-				if (segments.length > 0) {
-					selectableInTheLastRow = false;
-					int pwidth = 0;
-					for (int j = 0; j < segments.length; j++) {
-						ParagraphSegment segment = segments[j];
-						segment.advanceLocator(gc, wHint, loc, resourceTable, false);
-						if (wHint != SWT.DEFAULT) {
-							width = Math.max(width, loc.width);
-						} else {
-							pwidth = Math.max(pwidth, loc.width);
-						}
-						if (segment instanceof IFocusSelectable)
-							selectableInTheLastRow = true;
-					}
-					if (wHint == SWT.DEFAULT)
-						width = Math.max(width, pwidth);
-					loc.y += loc.rowHeight;
-				} else {
-					// empty new line
-					loc.y += lineHeight;
-				}
-			}
-			gc.dispose();
-			if (selectableInTheLastRow)
-				loc.y += 1;
-			return new Point(width, loc.y);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			long start = 0;
-
-			if (DEBUG_TEXT) {
-				start = System.currentTimeMillis();
-			}
-			selData = null;
-			Rectangle carea = composite.getClientArea();
-			if (DEBUG_TEXTSIZE) {
-				System.out.println("FormText layout ("+model.getAccessibleText()+"), carea="+carea); //$NON-NLS-1$ //$NON-NLS-2$
-			}			
-			GC gc = new GC(composite);
-			gc.setFont(getFont());
-			ensureBoldFontPresent(getFont());
-			gc.setForeground(getForeground());
-			gc.setBackground(getBackground());
-
-			Locator loc = new Locator();
-			loc.marginWidth = marginWidth;
-			loc.marginHeight = marginHeight;
-			loc.y = marginHeight;
-			FontMetrics fm = gc.getFontMetrics();
-			int lineHeight = fm.getHeight();
-
-			Paragraph[] paragraphs = model.getParagraphs();
-			IHyperlinkSegment selectedLink = getSelectedLink();
-			for (int i = 0; i < paragraphs.length; i++) {
-				Paragraph p = paragraphs[i];
-				if (i > 0 && paragraphsSeparated && p.getAddVerticalSpace())
-					loc.y += getParagraphSpacing(lineHeight);
-				loc.indent = p.getIndent();
-				loc.resetCaret();
-				loc.rowHeight = 0;
-				p.layout(gc, carea.width, loc, lineHeight, resourceTable,
-						selectedLink);
-			}
-			gc.dispose();
-			if (DEBUG_TEXT) {
-				long stop = System.currentTimeMillis();
-				System.out.println("FormText.layout: " + (stop - start) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-	}
-
-	/**
-	 * Contructs a new form text widget in the provided parent and using the
-	 * styles.
-	 * <p>
-	 * The only valid style bit for <code>FormText</code> is <code>SWT.NO_FOCUS</code>.
-	 * This will cause the widget to always refuse focus.
-	 * 
-	 * @param parent
-	 *            form text parent control
-	 * @param style
-	 *            the widget style
-	 */
-	public FormText(Composite parent, int style) {
-		super(parent, SWT.NO_BACKGROUND | SWT.WRAP | style);
-		setLayout(new FormTextLayout());
-		model = new FormTextModel();
-		addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				model.dispose();
-				disposeResourceTable(true);
-			}
-		});
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				paint(e);
-			}
-		});
-		addListener(SWT.KeyDown, new Listener() {
-			public void handleEvent(Event e) {
-				if (e.character == '\r') {
-					activateSelectedLink();
-					return;
-				}
-			}
-		});
-		addListener(SWT.Traverse, new Listener() {
-			public void handleEvent(Event e) {
-				if (DEBUG_FOCUS)
-					System.out.println("Traversal: " + e); //$NON-NLS-1$
-				switch (e.detail) {
-				case SWT.TRAVERSE_PAGE_NEXT:
-				case SWT.TRAVERSE_PAGE_PREVIOUS:
-				case SWT.TRAVERSE_ARROW_NEXT:
-				case SWT.TRAVERSE_ARROW_PREVIOUS:
-					e.doit = false;
-					return;
-				}
-				if (!model.hasFocusSegments()) {
-					e.doit = true;
-					return;
-				}
-				if (e.detail == SWT.TRAVERSE_TAB_NEXT)
-					e.doit = advance(true);
-				else if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS)
-					e.doit = advance(false);
-				else if (e.detail != SWT.TRAVERSE_RETURN)
-					e.doit = true;
-			}
-		});
-		addFocusListener(new FocusListener() {
-			public void focusGained(FocusEvent e) {
-				if (!hasFocus) {
-					hasFocus = true;
-					if (DEBUG_FOCUS) {
-						System.out.println("FormText: focus gained"); //$NON-NLS-1$
-					}
-					if (!mouseFocus && !controlFocusTransfer) {
-						handleFocusChange();
-					}
-				}
-			}
-
-			public void focusLost(FocusEvent e) {
-				if (DEBUG_FOCUS) {
-					System.out.println("FormText: focus lost"); //$NON-NLS-1$
-				}
-				if (hasFocus) {
-					hasFocus = false;
-					if (!controlFocusTransfer)
-						handleFocusChange();
-				}
-			}
-		});
-		addMouseListener(new MouseListener() {
-			public void mouseDoubleClick(MouseEvent e) {
-			}
-
-			public void mouseDown(MouseEvent e) {
-				// select a link
-				handleMouseClick(e, true);
-			}
-
-			public void mouseUp(MouseEvent e) {
-				// activate a link
-				handleMouseClick(e, false);
-			}
-		});
-		addMouseTrackListener(new MouseTrackListener() {
-			public void mouseEnter(MouseEvent e) {
-				handleMouseMove(e);
-			}
-
-			public void mouseExit(MouseEvent e) {
-				if (entered != null) {
-					exitLink(entered, e.stateMask);
-					paintLinkHover(entered, false);
-					entered = null;
-					setCursor(null);
-				}
-			}
-
-			public void mouseHover(MouseEvent e) {
-				handleMouseHover(e);
-			}
-		});
-		addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent e) {
-				handleMouseMove(e);
-			}
-		});
-		initAccessible();
-		ensureBoldFontPresent(getFont());
-		createMenu();
-		// we will handle traversal of controls, if any
-		setTabList(new Control[] {});
-	}
-
-	/**
-	 * Test for focus.
-	 * 
-	 * @return <samp>true </samp> if the widget has focus.
-	 */
-	public boolean getFocus() {
-		return hasFocus;
-	}
-
-	/**
-	 * Test if the widget is currently processing the text it is about to
-	 * render.
-	 * 
-	 * @return <samp>true </samp> if the widget is still loading the text,
-	 *         <samp>false </samp> otherwise.
-	 * @deprecated not used any more - returns <code>false</code>
-	 */
-	public boolean isLoading() {
-		return false;
-	}
-
-	/**
-	 * Returns the text that will be shown in the control while the real content
-	 * is loading.
-	 * 
-	 * @return loading text message
-	 * @deprecated loading text is not used since 3.1
-	 */
-	public String getLoadingText() {
-		return null;
-	}
-
-	/**
-	 * Sets the text that will be shown in the control while the real content is
-	 * loading. This is significant when content to render is loaded from the
-	 * input stream that was created from a remote URL, and the time to load the
-	 * entire content is nontrivial.
-	 * 
-	 * @param loadingText
-	 *            loading text message
-	 * @deprecated use setText(loadingText, false, false);
-	 */
-	public void setLoadingText(String loadingText) {
-		setText(loadingText, false, false);
-	}
-
-	/**
-	 * If paragraphs are separated, spacing will be added between them.
-	 * Otherwise, new paragraphs will simply start on a new line with no
-	 * spacing.
-	 * 
-	 * @param value
-	 *            <samp>true </samp> if paragraphs are separated, </samp> false
-	 *            </samp> otherwise.
-	 */
-	public void setParagraphsSeparated(boolean value) {
-		paragraphsSeparated = value;
-	}
-
-	/**
-	 * Tests if there is some inter-paragraph spacing.
-	 * 
-	 * @return <samp>true </samp> if paragraphs are separated, <samp>false
-	 *         </samp> otherwise.
-	 */
-	public boolean getParagraphsSeparated() {
-		return paragraphsSeparated;
-	}
-
-	/**
-	 * Registers the image referenced by the provided key.
-	 * <p>
-	 * For <samp>img </samp> tags, an object of a type <samp>Image </samp> must
-	 * be registered using the key equivalent to the value of the <samp>href
-	 * </samp> attribute used in the tag.
-	 * 
-	 * @param key
-	 *            unique key that matches the value of the <samp>href </samp>
-	 *            attribute.
-	 * @param image
-	 *            an object of a type <samp>Image </samp>.
-	 */
-	public void setImage(String key, Image image) {
-		resourceTable.put("i." + key, image); //$NON-NLS-1$
-	}
-
-	/**
-	 * Registers the color referenced by the provided key.
-	 * <p>
-	 * For <samp>span </samp> tags, an object of a type <samp>Color </samp> must
-	 * be registered using the key equivalent to the value of the <samp>color
-	 * </samp> attribute.
-	 * 
-	 * @param key
-	 *            unique key that matches the value of the <samp>color </samp>
-	 *            attribute.
-	 * @param color
-	 *            an object of the type <samp>Color </samp> or <samp>null</samp>
-	 *            if the key needs to be cleared.
-	 */
-	public void setColor(String key, Color color) {
-		String fullKey = "c." + key; //$NON-NLS-1$
-		if (color == null)
-			resourceTable.remove(fullKey);
-		else
-			resourceTable.put(fullKey, color);
-	}
-
-	/**
-	 * Registers the font referenced by the provided key.
-	 * <p>
-	 * For <samp>span </samp> tags, an object of a type <samp>Font </samp> must
-	 * be registered using the key equivalent to the value of the <samp>font
-	 * </samp> attribute.
-	 * 
-	 * @param key
-	 *            unique key that matches the value of the <samp>font </samp>
-	 *            attribute.
-	 * @param font
-	 *            an object of the type <samp>Font </samp> or <samp>null</samp>
-	 *            if the key needs to be cleared.
-	 */
-	public void setFont(String key, Font font) {
-		String fullKey = "f." + key; //$NON-NLS-1$
-		if (font == null)
-			resourceTable.remove(fullKey);
-		else
-			resourceTable.put(fullKey, font);
-		model.clearCache(fullKey);
-	}
-
-	/**
-	 * Registers the control referenced by the provided key.
-	 * <p>
-	 * For <samp>control</samp> tags, an object of a type <samp>Control</samp>
-	 * must be registered using the key equivalent to the value of the
-	 * <samp>control</samp> attribute.
-	 * 
-	 * @param key
-	 *            unique key that matches the value of the <samp>control</samp>
-	 *            attribute.
-	 * @param control
-	 *            an object of the type <samp>Control</samp> or <samp>null</samp>
-	 *            if the existing control at the specified key needs to be
-	 *            removed.
-	 * @since 3.1
-	 */
-	public void setControl(String key, Control control) {
-		String fullKey = "o." + key; //$NON-NLS-1$
-		if (control == null)
-			resourceTable.remove(fullKey);
-		else
-			resourceTable.put(fullKey, control);
-	}
-
-	/**
-	 * Sets the font to use to render the default text (text that does not have
-	 * special font property assigned). Bold font will be constructed from this
-	 * font.
-	 * 
-	 * @param font
-	 *            the default font to use
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		model.clearCache(null);
-		Font boldFont = (Font) resourceTable.get(FormTextModel.BOLD_FONT_ID);
-		if (boldFont != null) {
-			FormFonts.getInstance().markFinished(boldFont);
-			resourceTable.remove(FormTextModel.BOLD_FONT_ID);
-		}
-		ensureBoldFontPresent(getFont());
-	}
-
-	/**
-	 * Sets the provided text. Text can be rendered as-is, or by parsing the
-	 * formatting tags. Optionally, sections of text starting with http:// will
-	 * be converted to hyperlinks.
-	 * 
-	 * @param text
-	 *            the text to render
-	 * @param parseTags
-	 *            if <samp>true </samp>, formatting tags will be parsed.
-	 *            Otherwise, text will be rendered as-is.
-	 * @param expandURLs
-	 *            if <samp>true </samp>, URLs found in the untagged text will be
-	 *            converted into hyperlinks.
-	 */
-	public void setText(String text, boolean parseTags, boolean expandURLs) {
-		disposeResourceTable(false);
-		entered = null;
-		if (parseTags)
-			model.parseTaggedText(text, expandURLs);
-		else
-			model.parseRegularText(text, expandURLs);
-		hookControlSegmentFocus();
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Sets the contents of the stream. Optionally, URLs in untagged text can be
-	 * converted into hyperlinks. The caller is responsible for closing the
-	 * stream.
-	 * 
-	 * @param is
-	 *            stream to render
-	 * @param expandURLs
-	 *            if <samp>true </samp>, URLs found in untagged text will be
-	 *            converted into hyperlinks.
-	 */
-	public void setContents(InputStream is, boolean expandURLs) {
-		entered = null;
-		disposeResourceTable(false);
-		model.parseInputStream(is, expandURLs);
-		hookControlSegmentFocus();
-		layout();
-		redraw();
-	}
-
-	private void hookControlSegmentFocus() {
-		Paragraph[] paragraphs = model.getParagraphs();
-		if (paragraphs == null)
-			return;
-		Listener listener = new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-				case SWT.FocusIn:
-					if (!controlFocusTransfer)
-						syncControlSegmentFocus((Control) e.widget);
-					break;
-				case SWT.Traverse:
-					if (DEBUG_FOCUS)
-						System.out.println("Control traversal: " + e); //$NON-NLS-1$
-					switch (e.detail) {
-					case SWT.TRAVERSE_PAGE_NEXT:
-					case SWT.TRAVERSE_PAGE_PREVIOUS:
-					case SWT.TRAVERSE_ARROW_NEXT:
-					case SWT.TRAVERSE_ARROW_PREVIOUS:
-						e.doit = false;
-						return;
-					}
-					Control c = (Control) e.widget;
-					ControlSegment segment = (ControlSegment) c
-							.getData(CONTROL_KEY);
-					if (e.detail == SWT.TRAVERSE_TAB_NEXT)
-						e.doit = advanceControl(c, segment, true);
-					else if (e.detail == SWT.TRAVERSE_TAB_PREVIOUS)
-						e.doit = advanceControl(c, segment, false);
-					if (!e.doit)
-						e.detail = SWT.TRAVERSE_NONE;
-					break;
-				}
-			}
-		};
-		for (int i = 0; i < paragraphs.length; i++) {
-			Paragraph p = paragraphs[i];
-			ParagraphSegment[] segments = p.getSegments();
-			for (int j = 0; j < segments.length; j++) {
-				if (segments[j] instanceof ControlSegment) {
-					ControlSegment cs = (ControlSegment) segments[j];
-					Control c = cs.getControl(resourceTable);
-					if (c != null) {
-						if (c.getData(CONTROL_KEY) == null) {
-							// first time - hook
-							c.setData(CONTROL_KEY, cs);
-							attachTraverseListener(c, listener);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	private void attachTraverseListener(Control c, Listener listener) {
-		if (c instanceof Composite) {
-			Composite parent = (Composite) c;
-			Control[] children = parent.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				attachTraverseListener(children[i], listener);
-			}
-			if (c instanceof Canvas) {
-				// If Canvas, the control iteself can accept
-				// traverse events and should be monitored
-				c.addListener(SWT.Traverse, listener);
-				c.addListener(SWT.FocusIn, listener);
-			}
-		} else {
-			c.addListener(SWT.Traverse, listener);
-			c.addListener(SWT.FocusIn, listener);
-		}
-	}
-
-	/**
-	 * If we click on the control randomly, our internal book-keeping will be
-	 * off. We need to update the model and mark the control segment and
-	 * currently selected. Hyperlink that may have had focus must also be
-	 * exited.
-	 * 
-	 * @param control
-	 *            the control that got focus
-	 */
-	private void syncControlSegmentFocus(Control control) {
-		ControlSegment cs = null;
-
-		while (control != null) {
-			cs = (ControlSegment) control.getData(CONTROL_KEY);
-			if (cs != null)
-				break;
-			control = control.getParent();
-		}
-		if (cs == null)
-			return;
-		IFocusSelectable current = model.getSelectedSegment();
-		// If the model and the control match, all is well
-		if (current == cs)
-			return;
-		IHyperlinkSegment oldLink = null;
-		if (current != null && current instanceof IHyperlinkSegment) {
-			oldLink = (IHyperlinkSegment) current;
-			exitLink(oldLink, SWT.NULL);
-		}
-		if (DEBUG_FOCUS)
-			System.out.println("Sync control: " + cs + ", oldLink=" + oldLink); //$NON-NLS-1$ //$NON-NLS-2$
-		model.select(cs);
-		if (oldLink != null)
-			paintFocusTransfer(oldLink, null);
-		// getAccessible().setFocus(model.getSelectedSegmentIndex());
-	}
-
-	private boolean advanceControl(Control c, ControlSegment segment,
-			boolean next) {
-		Composite parent = c.getParent();
-		if (parent == this) {
-			// segment-level control
-			IFocusSelectable nextSegment = model.getNextFocusSegment(next);
-			if (nextSegment != null) {
-				controlFocusTransfer = true;
-				super.forceFocus();
-				controlFocusTransfer = false;
-				model.select(segment);
-				return advance(next);
-			}
-			// nowhere to go
-			return setFocusToNextSibling(this, next);
-		}
-		if (setFocusToNextSibling(c, next))
-			return true;
-		// still here - must go one level up
-		segment = (ControlSegment) parent.getData(CONTROL_KEY);
-		return advanceControl(parent, segment, next);
-	}
-
-	private boolean setFocusToNextSibling(Control c, boolean next) {
-		Composite parent = c.getParent();
-		Control[] children = parent.getTabList();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child == c) {
-				// here
-				if (next) {
-					for (int j = i + 1; j < children.length; j++) {
-						Control nc = children[j];
-						if (nc.setFocus())
-							return false;
-					}
-				} else {
-					for (int j = i - 1; j >= 0; j--) {
-						Control pc = children[j];
-						if (pc.setFocus())
-							return false;
-					}
-				}
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Controls whether whitespace inside paragraph and list items is
-	 * normalized. Note that the new value will not affect the current text in
-	 * the control, only subsequent calls to <code>setText</code> or
-	 * <code>setContents</code>.
-	 * <p>
-	 * If normalized:
-	 * <ul>
-	 * <li>all white space characters will be condensed into at most one when
-	 * between words.</li>
-	 * <li>new line characters will be ignored and replaced with one white
-	 * space character</li>
-	 * <li>white space characters after the opening tags and before the closing
-	 * tags will be trimmed</li>
-	 * 
-	 * @param value
-	 *            <code>true</code> if whitespace is normalized,
-	 *            <code>false</code> otherwise.
-	 */
-	public void setWhitespaceNormalized(boolean value) {
-		model.setWhitespaceNormalized(value);
-	}
-
-	/**
-	 * Tests whether whitespace inside paragraph and list item is normalized.
-	 * 
-	 * @see #setWhitespaceNormalized(boolean)
-	 * @return <code>true</code> if whitespace is normalized,
-	 *         <code>false</code> otherwise.
-	 */
-	public boolean isWhitespaceNormalized() {
-		return model.isWhitespaceNormalized();
-	}
-
-	/**
-	 * Disposes the internal menu if created and sets the menu provided as a
-	 * parameter.
-	 * 
-	 * @param menu
-	 *            the menu to associate with this text control
-	 */
-	public void setMenu(Menu menu) {
-		Menu currentMenu = super.getMenu();
-		if (currentMenu != null && INTERNAL_MENU.equals(currentMenu.getData())) {
-			// internal menu set
-			if (menu != null) {
-				currentMenu.dispose();
-				super.setMenu(menu);
-			}
-		} else
-			super.setMenu(menu);
-	}
-
-	private void createMenu() {
-		Menu menu = new Menu(this);
-		final MenuItem copyItem = new MenuItem(menu, SWT.PUSH);
-		copyItem.setText(Messages.FormText_copy);
-
-		SelectionListener listener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (e.widget == copyItem) {
-					copy();
-				}
-			}
-		};
-		copyItem.addSelectionListener(listener);
-		menu.addMenuListener(new MenuListener() {
-			public void menuShown(MenuEvent e) {
-				copyItem.setEnabled(canCopy());
-			}
-
-			public void menuHidden(MenuEvent e) {
-			}
-		});
-		menu.setData(INTERNAL_MENU);
-		super.setMenu(menu);
-	}
-
-	/**
-	 * Returns the hyperlink settings that are in effect for this control.
-	 * 
-	 * @return current hyperlinks settings
-	 */
-	public HyperlinkSettings getHyperlinkSettings() {
-		return model.getHyperlinkSettings();
-	}
-
-	/**
-	 * Sets the hyperlink settings to be used for this control. Settings will
-	 * affect things like hyperlink color, rendering style, cursor etc.
-	 * 
-	 * @param settings
-	 *            hyperlink settings for this control
-	 */
-	public void setHyperlinkSettings(HyperlinkSettings settings) {
-		model.setHyperlinkSettings(settings);
-	}
-
-	/**
-	 * Adds a listener that will handle hyperlink events.
-	 * 
-	 * @param listener
-	 *            the listener to add
-	 */
-	public void addHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			listeners = new ListenerList();
-		listeners.add(listener);
-	}
-
-	/**
-	 * Removes the hyperlink listener.
-	 * 
-	 * @param listener
-	 *            the listener to remove
-	 */
-	public void removeHyperlinkListener(IHyperlinkListener listener) {
-		if (listeners == null)
-			return;
-		listeners.remove(listener);
-	}
-
-	/**
-	 * Adds a selection listener. A Selection event is sent by the widget when
-	 * the selection has changed.
-	 * <p>
-	 * <code>widgetDefaultSelected</code> is not called for FormText.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the listener
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-	 *                thread that created the receiver</li>
-	 *                </ul>
-	 * @exception IllegalArgumentException
-	 *                <ul>
-	 *                <li>ERROR_NULL_ARGUMENT when listener is null</li>
-	 *                </ul>
-	 * @since 3.1
-	 */
-	public void addSelectionListener(SelectionListener listener) {
-		checkWidget();
-		if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-		TypedListener typedListener = new TypedListener(listener);
-		addListener(SWT.Selection, typedListener);
-	}
-
-	/**
-	 * Removes the specified selection listener.
-	 * <p>
-	 * 
-	 * @param listener
-	 *            the listener
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-	 *                thread that created the receiver</li>
-	 *                </ul>
-	 * @exception IllegalArgumentException
-	 *                <ul>
-	 *                <li>ERROR_NULL_ARGUMENT when listener is null</li>
-	 *                </ul>
-	 * @since 3.1
-	 */
-	public void removeSelectionListener(SelectionListener listener) {
-		checkWidget();
-		if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-		removeListener(SWT.Selection, listener);
-	}
-
-	/**
-	 * Returns the selected text.
-	 * <p>
-	 * 
-	 * @return selected text, or an empty String if there is no selection.
-	 * @exception SWTException
-	 *                <ul>
-	 *                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
-	 *                disposed</li>
-	 *                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
-	 *                thread that created the receiver</li>
-	 *                </ul>
-	 * @since 3.1
-	 */
-
-	public String getSelectionText() {
-		checkWidget();
-		if (selData != null)
-			return selData.getSelectionText();
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Tests if the text is selected and can be copied into the clipboard.
-	 * 
-	 * @return <code>true</code> if the selected text can be copied into the
-	 *         clipboard, <code>false</code> otherwise.
-	 * @since 3.1
-	 */
-	public boolean canCopy() {
-		return selData != null && selData.canCopy();
-	}
-
-	/**
-	 * Copies the selected text into the clipboard. Does nothing if no text is
-	 * selected or the text cannot be copied for any other reason.
-	 * 
-	 * @since 3.1
-	 */
-
-	public void copy() {
-		if (!canCopy())
-			return;
-		Clipboard clipboard = new Clipboard(getDisplay());
-		Object[] o = new Object[] { getSelectionText() };
-		Transfer[] t = new Transfer[] { TextTransfer.getInstance() };
-		clipboard.setContents(o, t);
-		clipboard.dispose();
-	}
-
-	/**
-	 * Returns the reference of the hyperlink that currently has keyboard focus,
-	 * or <code>null</code> if there are no hyperlinks in the receiver or no
-	 * hyperlink has focus at the moment.
-	 * 
-	 * @return href of the selected hyperlink or <code>null</code> if none
-	 *         selected.
-	 * @since 3.1
-	 */
-	public Object getSelectedLinkHref() {
-		IHyperlinkSegment link = getSelectedLink();
-		return link != null ? link.getHref() : null;
-	}
-
-	/**
-	 * Returns the text of the hyperlink that currently has keyboard focus, or
-	 * <code>null</code> if there are no hyperlinks in the receiver or no
-	 * hyperlink has focus at the moment.
-	 * 
-	 * @return text of the selected hyperlink or <code>null</code> if none
-	 *         selected.
-	 * @since 3.1
-	 */
-	public String getSelectedLinkText() {
-		IHyperlinkSegment link = getSelectedLink();
-		return link != null ? link.getText() : null;
-	}
-
-	private IHyperlinkSegment getSelectedLink() {
-		IFocusSelectable segment = model.getSelectedSegment();
-		if (segment != null && segment instanceof IHyperlinkSegment)
-			return (IHyperlinkSegment) segment;
-		return null;
-	}
-
-	private void initAccessible() {
-		Accessible accessible = getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				if (e.childID == ACC.CHILDID_SELF)
-					e.result = model.getAccessibleText();
-				else {
-					int linkCount = model.getHyperlinkCount();
-					if (e.childID >= 0 && e.childID < linkCount) {
-						IHyperlinkSegment link = model.getHyperlink(e.childID);
-						e.result = link.getText();
-					}
-				}
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				e.result = getToolTipText();
-				int linkCount = model.getHyperlinkCount();
-				if (e.result == null && e.childID >= 0 && e.childID < linkCount) {
-					IHyperlinkSegment link = model.getHyperlink(e.childID);
-					e.result = link.getText();
-				}
-			}
-		});
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				Point pt = toControl(new Point(e.x, e.y));
-				IHyperlinkSegment link = model.findHyperlinkAt(pt.x, pt.y);
-				if (link != null)
-					e.childID = model.indexOf(link);
-				else
-					e.childID = ACC.CHILDID_SELF;
-			}
-
-			public void getLocation(AccessibleControlEvent e) {
-				Rectangle location = null;
-				if (e.childID != ACC.CHILDID_SELF
-						&& e.childID != ACC.CHILDID_NONE) {
-					int index = e.childID;
-					IHyperlinkSegment link = model.getHyperlink(index);
-					if (link != null) {
-						location = link.getBounds();
-					}
-				}
-				if (location == null) {
-					location = getBounds();
-				}
-				Point pt = 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 getFocus(AccessibleControlEvent e) {
-				int childID = ACC.CHILDID_NONE;
-
-				if (model.hasFocusSegments()) {
-					int selectedIndex = model.getSelectedSegmentIndex();
-					if (selectedIndex != -1) {
-						childID = selectedIndex;
-					}
-				}
-				e.childID = childID;
-			}
-			
-			public void getDefaultAction (AccessibleControlEvent e) {
-				if (model.getHyperlinkCount() > 0) {
-				    e.result = SWT.getMessage ("SWT_Press"); //$NON-NLS-1$
-				} 
-			}
-
-			public void getChildCount(AccessibleControlEvent e) {
-				e.detail = model.getHyperlinkCount();
-			}
-
-			public void getRole(AccessibleControlEvent e) {
-				int role = 0;
-				int childID = e.childID;
-				int linkCount = model.getHyperlinkCount();
-				if (childID == ACC.CHILDID_SELF) { 
-					if (linkCount > 0) {
-					    role = ACC.ROLE_LINK;
-					} else {
-						role = ACC.ROLE_TEXT;
-					}
-				} else if (childID >= 0 && childID < linkCount) {
-					role = ACC.ROLE_LINK;
-				}
-				e.detail = role;
-			}
-
-			public void getSelection(AccessibleControlEvent e) {
-				int selectedIndex = model.getSelectedSegmentIndex();
-				e.childID = (selectedIndex == -1) ? ACC.CHILDID_NONE
-						: selectedIndex;
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				int linkCount = model.getHyperlinkCount();
-				int selectedIndex = model.getSelectedSegmentIndex();
-				int state = 0;
-				int childID = e.childID;
-				if (childID == ACC.CHILDID_SELF) {
-					state = ACC.STATE_NORMAL;
-				} else if (childID >= 0 && childID < linkCount) {
-					state = ACC.STATE_SELECTABLE;
-					if (isFocusControl()) {
-						state |= ACC.STATE_FOCUSABLE;
-					}
-					if (selectedIndex == childID) {
-						state |= ACC.STATE_SELECTED;
-						if (isFocusControl()) {
-							state |= ACC.STATE_FOCUSED;
-						}
-					}
-				}
-				state |= ACC.STATE_READONLY;
-				e.detail = state;
-			}
-
-			public void getChildren(AccessibleControlEvent e) {
-				int linkCount = model.getHyperlinkCount();
-				Object[] children = new Object[linkCount];
-				for (int i = 0; i < linkCount; i++) {
-					children[i] = new Integer(i);
-				}
-				e.children = children;
-			}
-
-			public void getValue(AccessibleControlEvent e) {
-				// e.result = model.getAccessibleText();
-			}
-		});
-	}
-
-	private void startSelection(MouseEvent e) {
-		inSelection = true;
-		selData = new SelectionData(e);
-		redraw();
-		Form form = FormUtil.getForm(this);
-		if (form != null)
-			form.setSelectionText(this);
-	}
-
-	private void endSelection(MouseEvent e) {
-		inSelection = false;
-		if (selData != null) {
-			if (!selData.isEnclosed())
-				selData = null;
-			else
-				computeSelection();
-		}
-		notifySelectionChanged();
-	}
-
-	private void computeSelection() {
-		GC gc = new GC(this);
-		Paragraph[] paragraphs = model.getParagraphs();
-		IHyperlinkSegment selectedLink = getSelectedLink();
-		if (getDisplay().getFocusControl() != this)
-			selectedLink = null;
-		for (int i = 0; i < paragraphs.length; i++) {
-			Paragraph p = paragraphs[i];
-			if (i > 0)
-				selData.markNewLine();
-			p.computeSelection(gc, resourceTable, selectedLink, selData);
-		}
-		gc.dispose();
-	}
-
-	void clearSelection() {
-		selData = null;
-		if (!isDisposed()) {
-			redraw();
-			notifySelectionChanged();
-		}
-	}
-
-	private void notifySelectionChanged() {
-		Event event = new Event();
-		event.widget = this;
-		event.display = this.getDisplay();
-		event.type = SWT.Selection;
-		notifyListeners(SWT.Selection, event);
-		getAccessible().selectionChanged();
-	}
-
-	private void handleDrag(MouseEvent e) {
-		if (selData != null) {
-			ScrolledComposite scomp = FormUtil.getScrolledComposite(this);
-			if (scomp != null) {
-				FormUtil.ensureVisible(scomp, this, e);
-			}
-			selData.update(e);
-			redraw();
-		}
-	}
-
-	private void handleMouseClick(MouseEvent e, boolean down) {
-		if (DEBUG_FOCUS)
-			System.out.println("FormText: mouse click(" + down + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (down) {
-			// select a hyperlink
-			mouseFocus = true;
-			IHyperlinkSegment segmentUnder = model.findHyperlinkAt(e.x, e.y);
-			if (segmentUnder != null) {
-				IHyperlinkSegment oldLink = getSelectedLink();
-				if (getDisplay().getFocusControl() != this) {
-					setFocus();
-				}
-				model.selectLink(segmentUnder);
-				enterLink(segmentUnder, e.stateMask);
-				paintFocusTransfer(oldLink, segmentUnder);
-			}
-			if (e.button == 1) {
-				startSelection(e);
-				armed = segmentUnder;
-			}
-			else {
-			}
-		} else {
-			if (e.button == 1) {
-				endSelection(e);
-				IHyperlinkSegment segmentUnder = model
-						.findHyperlinkAt(e.x, e.y);
-				if (segmentUnder != null && armed == segmentUnder && selData == null) {
-					activateLink(segmentUnder, e.stateMask);
-					armed = null;
-				}
-			}
-			mouseFocus = false;
-		}
-	}
-
-	private void handleMouseHover(MouseEvent e) {
-	}
-
-	private void updateTooltipText(ParagraphSegment segment) {
-		String tooltipText = null;
-		if (segment != null) {
-			tooltipText = segment.getTooltipText();
-		}
-		String currentTooltipText = getToolTipText();
-
-		if ((currentTooltipText != null && tooltipText == null)
-				|| (currentTooltipText == null && tooltipText != null))
-			setToolTipText(tooltipText);
-	}
-
-	private void handleMouseMove(MouseEvent e) {
-		if (inSelection) {
-			handleDrag(e);
-			return;
-		}
-		ParagraphSegment segmentUnder = model.findSegmentAt(e.x, e.y);
-		updateTooltipText(segmentUnder);
-		if (segmentUnder == null) {
-			if (entered != null) {
-				exitLink(entered, e.stateMask);
-				paintLinkHover(entered, false);
-				entered = null;
-			}
-			setCursor(null);
-		} else {
-			if (segmentUnder instanceof IHyperlinkSegment) {
-				IHyperlinkSegment linkUnder = (IHyperlinkSegment) segmentUnder;
-				if (entered!=null && linkUnder!=entered) {
-					// Special case: links are so close that there are 0 pixels between.
-					// Must exit the link before entering the next one.
-					exitLink(entered, e.stateMask);
-					paintLinkHover(entered, false);
-					entered = null;
-				}
-				if (entered == null) {
-					entered = linkUnder;
-					enterLink(linkUnder, e.stateMask);
-					paintLinkHover(entered, true);
-					setCursor(model.getHyperlinkSettings().getHyperlinkCursor());
-				}
-			} else {
-				if (entered != null) {
-					exitLink(entered, e.stateMask);
-					paintLinkHover(entered, false);
-					entered = null;
-				}
-				if (segmentUnder instanceof TextSegment)
-					setCursor(model.getHyperlinkSettings().getTextCursor());
-				else
-					setCursor(null);
-			}
-		}
-	}
-
-	private boolean advance(boolean next) {
-		if (DEBUG_FOCUS)
-			System.out.println("Advance: next=" + next); //$NON-NLS-1$
-		IFocusSelectable current = model.getSelectedSegment();
-		if (current != null && current instanceof IHyperlinkSegment)
-			exitLink((IHyperlinkSegment) current, SWT.NULL);
-		IFocusSelectable newSegment = null;
-		boolean valid = false;
-		// get the next segment that can accept focus. Links
-		// can always accept focus but controls may not
-		while (!valid) {
-			if (!model.traverseFocusSelectableObjects(next))
-				break;
-			newSegment = model.getSelectedSegment();
-			if (newSegment == null)
-				break;
-			valid = setControlFocus(next, newSegment);
-		}
-		IHyperlinkSegment newLink = newSegment instanceof IHyperlinkSegment ? (IHyperlinkSegment) newSegment
-				: null;
-		if (valid)
-			enterLink(newLink, SWT.NULL);
-		IHyperlinkSegment oldLink = current instanceof IHyperlinkSegment ? (IHyperlinkSegment) current
-				: null;
-		if (oldLink != null || newLink != null)
-			paintFocusTransfer(oldLink, newLink);
-		if (newLink != null)
-			ensureVisible(newLink);
-		if (newLink != null)
-			getAccessible().setFocus(model.getSelectedSegmentIndex());
-		return !valid;
-	}
-
-	private boolean setControlFocus(boolean next, IFocusSelectable selectable) {
-		controlFocusTransfer = true;
-		boolean result = selectable.setFocus(resourceTable, next);
-		controlFocusTransfer = false;
-		return result;
-	}
-
-	private void handleFocusChange() {
-		if (DEBUG_FOCUS) {
-			System.out.println("Handle focus change: hasFocus=" + hasFocus //$NON-NLS-1$
-					+ ", mouseFocus=" + mouseFocus); //$NON-NLS-1$
-		}
-		if (hasFocus) {
-			boolean advance = true;
-			if (!mouseFocus) {
-				// if (model.restoreSavedLink() == false)
-				boolean valid = false;
-				IFocusSelectable selectable = null;
-				while (!valid) {
-					if (!model.traverseFocusSelectableObjects(advance))
-						break;
-					selectable = model.getSelectedSegment();
-					if (selectable == null)
-						break;
-					valid = setControlFocus(advance, selectable);
-				}
-				if (selectable != null)
-					ensureVisible(selectable);
-				if (selectable instanceof IHyperlinkSegment) {
-					enterLink((IHyperlinkSegment) selectable, SWT.NULL);
-					paintFocusTransfer(null, (IHyperlinkSegment) selectable);
-				}
-			}
-		} else {
-			paintFocusTransfer(getSelectedLink(), null);
-			model.selectLink(null);
-		}
-		if (!model.hasFocusSegments())
-			redraw();
-	}
-
-	private void enterLink(IHyperlinkSegment link, int stateMask) {
-		if (link == null || listeners == null)
-			return;
-		int size = listeners.size();
-		HyperlinkEvent he = new HyperlinkEvent(this, link.getHref(), link
-				.getText(), stateMask);
-		Object [] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkEntered(he);
-		}
-	}
-
-	private void exitLink(IHyperlinkSegment link, int stateMask) {
-		if (link == null || listeners == null)
-			return;
-		int size = listeners.size();
-		HyperlinkEvent he = new HyperlinkEvent(this, link.getHref(), link
-				.getText(), stateMask);
-		Object [] listenerList = listeners.getListeners();
-		for (int i = 0; i < size; i++) {
-			IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-			listener.linkExited(he);
-		}
-	}
-
-	private void paintLinkHover(IHyperlinkSegment link, boolean hover) {
-		GC gc = new GC(this);
-		HyperlinkSettings settings = getHyperlinkSettings();
-		Color newFg = hover ? settings.getActiveForeground() : settings
-				.getForeground();
-		if (newFg != null)
-			gc.setForeground(newFg);
-		gc.setBackground(getBackground());
-		gc.setFont(getFont());
-		boolean selected = (link == getSelectedLink());
-		((ParagraphSegment) link).paint(gc, hover, resourceTable, selected,
-				selData, null);
-		gc.dispose();
-	}
-
-	private void activateSelectedLink() {
-		IHyperlinkSegment link = getSelectedLink();
-		if (link != null)
-			activateLink(link, SWT.NULL);
-	}
-
-	private void activateLink(IHyperlinkSegment link, int stateMask) {
-		setCursor(model.getHyperlinkSettings().getBusyCursor());
-		if (listeners != null) {
-			int size = listeners.size();
-			HyperlinkEvent e = new HyperlinkEvent(this, link.getHref(), link
-					.getText(), stateMask);
-			Object [] listenerList = listeners.getListeners();
-			for (int i = 0; i < size; i++) {
-				IHyperlinkListener listener = (IHyperlinkListener) listenerList[i];
-				listener.linkActivated(e);
-			}
-		}
-		if (!isDisposed() && model.linkExists(link)) {
-			setCursor(model.getHyperlinkSettings().getHyperlinkCursor());
-		}
-	}
-
-	private void ensureBoldFontPresent(Font regularFont) {
-		Font boldFont = (Font) resourceTable.get(FormTextModel.BOLD_FONT_ID);
-		if (boldFont != null)
-			return;
-		boldFont = FormFonts.getInstance().getBoldFont(getDisplay(), regularFont);
-		resourceTable.put(FormTextModel.BOLD_FONT_ID, boldFont);
-	}
-
-	private void paint(PaintEvent e) {
-		GC gc = e.gc;
-		gc.setFont(getFont());
-		ensureBoldFontPresent(getFont());
-		gc.setForeground(getForeground());
-		gc.setBackground(getBackground());
-		repaint(gc, e.x, e.y, e.width, e.height);
-	}
-
-	private void repaint(GC gc, int x, int y, int width, int height) {
-		Image textBuffer = new Image(getDisplay(), width, height);
-		Color bg = getBackground();
-		Color fg = getForeground();
-		if (!getEnabled()) {
-			bg = getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			fg = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-		}
-		GC textGC = new GC(textBuffer, gc.getStyle());
-		textGC.setForeground(fg);
-		textGC.setBackground(bg);
-		textGC.setFont(getFont());
-		textGC.fillRectangle(0, 0, width, height);
-		Rectangle repaintRegion = new Rectangle(x, y, width, height);
-
-		Paragraph[] paragraphs = model.getParagraphs();
-		IHyperlinkSegment selectedLink = getSelectedLink();
-		if (getDisplay().getFocusControl() != this)
-			selectedLink = null;
-		for (int i = 0; i < paragraphs.length; i++) {
-			Paragraph p = paragraphs[i];
-			p
-					.paint(textGC, repaintRegion, resourceTable, selectedLink,
-							selData);
-		}
-		if (hasFocus && !model.hasFocusSegments())
-			textGC.drawFocus(x, y, width, height);
-		textGC.dispose();
-		gc.drawImage(textBuffer, x, y);
-		textBuffer.dispose();
-	}
-
-	private int getParagraphSpacing(int lineHeight) {
-		return lineHeight / 2;
-	}
-
-	private void paintFocusTransfer(IHyperlinkSegment oldLink,
-			IHyperlinkSegment newLink) {
-		GC gc = new GC(this);
-		Color bg = getBackground();
-		Color fg = getForeground();
-		gc.setFont(getFont());
-		if (oldLink != null) {
-			gc.setBackground(bg);
-			gc.setForeground(fg);
-			oldLink.paintFocus(gc, bg, fg, false, null);
-		}
-		if (newLink != null) {
-			// ensureVisible(newLink);
-			gc.setBackground(bg);
-			gc.setForeground(fg);
-			newLink.paintFocus(gc, bg, fg, true, null);
-		}
-		gc.dispose();
-	}
-
-	private void ensureVisible(IFocusSelectable segment) {
-		if (mouseFocus) {
-			mouseFocus = false;
-			return;
-		}
-		if (segment == null)
-			return;
-		Rectangle bounds = segment.getBounds();
-		ScrolledComposite scomp = FormUtil.getScrolledComposite(this);
-		if (scomp == null)
-			return;
-		Point origin = FormUtil.getControlLocation(scomp, this);
-		origin.x += bounds.x;
-		origin.y += bounds.y;
-		FormUtil.ensureVisible(scomp, origin, new Point(bounds.width,
-				bounds.height));
-	}
-
-	/**
-	 * Overrides the method by fully trusting the layout manager (computed width
-	 * or height may be larger than the provider width or height hints). Callers
-	 * should be prepared that the computed width is larger than the provided
-	 * wHint.
-	 * 
-	 * @see org.eclipse.swt.widgets.Composite#computeSize(int, int, boolean)
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		Point size;
-		FormTextLayout layout = (FormTextLayout) getLayout();
-		if (wHint == SWT.DEFAULT || hHint == SWT.DEFAULT) {
-			size = layout.computeSize(this, wHint, hHint, changed);
-		} else {
-			size = new Point(wHint, hHint);
-		}
-		Rectangle trim = computeTrim(0, 0, size.x, size.y);
-		if (DEBUG_TEXTSIZE)
-			System.out.println("FormText Computed size: "+trim); //$NON-NLS-1$
-		return new Point(trim.width, trim.height);
-	}
-
-	private void disposeResourceTable(boolean disposeBoldFont) {
-		if (disposeBoldFont) {
-			Font boldFont = (Font) resourceTable
-					.get(FormTextModel.BOLD_FONT_ID);
-			if (boldFont != null) {
-				FormFonts.getInstance().markFinished(boldFont);
-				resourceTable.remove(FormTextModel.BOLD_FONT_ID);
-			}
-		}
-		ArrayList imagesToRemove = new ArrayList();
-		for (Enumeration enm = resourceTable.keys(); enm.hasMoreElements();) {
-			String key = (String) enm.nextElement();
-			if (key.startsWith(ImageSegment.SEL_IMAGE_PREFIX)) {
-				Object obj = resourceTable.get(key);
-				if (obj instanceof Image) {
-					Image image = (Image) obj;
-					if (!image.isDisposed()) {
-						image.dispose();
-						imagesToRemove.add(key);
-					}
-				}
-			}
-		}
-		for (int i = 0; i < imagesToRemove.size(); i++) {
-			resourceTable.remove(imagesToRemove.get(i));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-	public void setEnabled(boolean enabled) {
-		super.setEnabled(enabled);
-		redraw();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setFocus()
-	 */
-	public boolean setFocus() {
-		mouseFocus = true;
-		FormUtil.setFocusScrollingEnabled(this, false);
-		boolean result = super.setFocus();
-		mouseFocus = false;
-		FormUtil.setFocusScrollingEnabled(this, true);
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java
deleted file mode 100644
index cea7bba..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/FormToolkit.java
+++ /dev/null
@@ -1,918 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Williamson (eclipse-bugs@magnaworks.com) - patch (see Bugzilla #92545) 
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-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.Button;
-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.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.HyperlinkGroup;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.internal.forms.widgets.FormFonts;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * The toolkit is responsible for creating SWT controls adapted to work in
- * Eclipse forms. In addition to changing their presentation properties (fonts,
- * colors etc.), various listeners are attached to make them behave correctly in
- * the form context.
- * <p>
- * In addition to being the control factory, the toolkit is also responsible for
- * painting flat borders for select controls, managing hyperlink groups and
- * control colors.
- * <p>
- * The toolkit creates some of the most common controls used to populate Eclipse
- * forms. Controls that must be created using their constructors,
- * <code>adapt()</code> method is available to change its properties in the
- * same way as with the supported toolkit controls.
- * <p>
- * Typically, one toolkit object is created per workbench part (for example, an
- * editor or a form wizard). The toolkit is disposed when the part is disposed.
- * To conserve resources, it is possible to create one color object for the
- * entire plug-in and share it between several toolkits. The plug-in is
- * responsible for disposing the colors (disposing the toolkit that uses shared
- * color object will not dispose the colors).
- * <p>
- * FormToolkit is normally instantiated, but can also be subclassed if some of
- * the methods needs to be modified. In those cases, <code>super</code> must
- * be called to preserve normal behaviour.
- * 
- * @since 3.0
- */
-public class FormToolkit {
-	public static final String KEY_DRAW_BORDER = "FormWidgetFactory.drawBorder"; //$NON-NLS-1$
-
-	public static final String TREE_BORDER = "treeBorder"; //$NON-NLS-1$
-
-	public static final String TEXT_BORDER = "textBorder"; //$NON-NLS-1$
-
-	private int borderStyle = SWT.NULL;
-
-	private FormColors colors;
-
-	private int orientation = Window.getDefaultOrientation();
-
-	// private KeyListener deleteListener;
-	private BorderPainter borderPainter;
-
-	private BoldFontHolder boldFontHolder;
-
-	private HyperlinkGroup hyperlinkGroup;
-		
-	private boolean isDisposed = false;
-
-	/* default */
-	VisibilityHandler visibilityHandler;
-
-	/* default */
-	KeyboardHandler keyboardHandler;
-
-	private class BorderPainter implements PaintListener {
-		public void paintControl(PaintEvent event) {
-			Composite composite = (Composite) event.widget;
-			Control[] children = composite.getChildren();
-			for (int i = 0; i < children.length; i++) {
-				Control c = children[i];
-				boolean inactiveBorder = false;
-				boolean textBorder = false;
-				if (!c.isVisible())
-					continue;
-				/*
-				 * if (c.getEnabled() == false && !(c instanceof CCombo))
-				 * continue;
-				 */
-				if (c instanceof Hyperlink)
-					continue;
-				Object flag = c.getData(KEY_DRAW_BORDER);
-				if (flag != null) {
-					if (flag.equals(Boolean.FALSE))
-						continue;
-					if (flag.equals(TREE_BORDER))
-						inactiveBorder = true;
-					else if (flag.equals(TEXT_BORDER))
-						textBorder = true;
-				}
-				if (getBorderStyle() == SWT.BORDER) {
-					if (!inactiveBorder && !textBorder) {
-						continue;
-					}
-					if (c instanceof Text || c instanceof Table
-							|| c instanceof Tree)
-						continue;
-				}
-				if (!inactiveBorder
-						&& (c instanceof Text || c instanceof CCombo || textBorder)) {
-					Rectangle b = c.getBounds();
-					GC gc = event.gc;
-					gc.setForeground(c.getBackground());
-					gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
-							b.height + 1);
-					// gc.setForeground(getBorderStyle() == SWT.BORDER ? colors
-					// .getBorderColor() : colors.getForeground());
-					gc.setForeground(colors.getBorderColor());
-					if (c instanceof CCombo)
-						gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
-								b.height + 1);
-					else
-						gc.drawRectangle(b.x - 1, b.y - 2, b.width + 1,
-								b.height + 3);
-				} else if (inactiveBorder || c instanceof Table
-						|| c instanceof Tree) {
-					Rectangle b = c.getBounds();
-					GC gc = event.gc;
-					gc.setForeground(colors.getBorderColor());
-					gc.drawRectangle(b.x - 1, b.y - 1, b.width + 1,
-							b.height + 1);
-				}
-			}
-		}
-	}
-
-	private static class VisibilityHandler extends FocusAdapter {
-		public void focusGained(FocusEvent e) {
-			Widget w = e.widget;
-			if (w instanceof Control) {
-				FormUtil.ensureVisible((Control) w);
-			}
-		}
-	}
-
-	private static class KeyboardHandler extends KeyAdapter {
-		public void keyPressed(KeyEvent e) {
-			Widget w = e.widget;
-			if (w instanceof Control) {
-				if (e.doit)
-					FormUtil.processKey(e.keyCode, (Control) w);
-			}
-		}
-	}
-
-	private class BoldFontHolder {
-		private Font normalFont;
-
-		private Font boldFont;
-
-		public BoldFontHolder() {
-		}
-
-		public Font getBoldFont(Font font) {
-			createBoldFont(font);
-			return boldFont;
-		}
-
-		private void createBoldFont(Font font) {
-			if (normalFont == null || !normalFont.equals(font)) {
-				normalFont = font;
-				dispose();
-			}
-			if (boldFont == null) {
-				boldFont = FormFonts.getInstance().getBoldFont(colors.getDisplay(),
-						normalFont);
-			}
-		}
-
-		public void dispose() {
-			if (boldFont != null) {
-				FormFonts.getInstance().markFinished(boldFont);
-				boldFont = null;
-			}
-		}
-	}
-
-	/**
-	 * Creates a toolkit that is self-sufficient (will manage its own colors).
-	 * <p>
-	 * Clients that call this method must call {@link #dispose()} when they
-	 * are finished using the toolkit.
-	 * 
-	 */
-	public FormToolkit(Display display) {
-		this(new FormColors(display));
-	}
-
-	/**
-	 * Creates a toolkit that will use the provided (shared) colors. The toolkit
-	 * will dispose the colors if and only if they are <b>not</b> marked as
-	 * shared via the <code>markShared()</code> method.
-	 * <p>
-	 * Clients that call this method must call {@link #dispose()} when they
-	 * are finished using the toolkit.
-	 * 
-	 * @param colors
-	 *            the shared colors
-	 */
-	public FormToolkit(FormColors colors) {
-		this.colors = colors;
-		initialize();
-	}
-
-	/**
-	 * Creates a button as a part of the form.
-	 * 
-	 * @param parent
-	 *            the button parent
-	 * @param text
-	 *            an optional text for the button (can be <code>null</code>)
-	 * @param style
-	 *            the button style (for example, <code>SWT.PUSH</code>)
-	 * @return the button widget
-	 */
-	public Button createButton(Composite parent, String text, int style) {
-		Button button = new Button(parent, style | SWT.FLAT | orientation);
-		if (text != null)
-			button.setText(text);
-		adapt(button, true, true);
-		return button;
-	}
-
-	/**
-	 * Creates the composite as a part of the form.
-	 * 
-	 * @param parent
-	 *            the composite parent
-	 * @return the composite widget
-	 */
-	public Composite createComposite(Composite parent) {
-		return createComposite(parent, SWT.NULL);
-	}
-
-	/**
-	 * Creates the composite as part of the form using the provided style.
-	 * 
-	 * @param parent
-	 *            the composite parent
-	 * @param style
-	 *            the composite style
-	 * @return the composite widget
-	 */
-	public Composite createComposite(Composite parent, int style) {
-		Composite composite = new LayoutComposite(parent, style | orientation);
-		adapt(composite);
-		return composite;
-	}
-
-	/**
-	 * Creats the composite that can server as a separator between various parts
-	 * of a form. Separator height should be controlled by setting the height
-	 * hint on the layout data for the composite.
-	 * 
-	 * @param parent
-	 *            the separator parent
-	 * @return the separator widget
-	 */
-	public Composite createCompositeSeparator(Composite parent) {
-		final Composite composite = new Composite(parent, orientation);
-		composite.addListener(SWT.Paint, new Listener() {
-			public void handleEvent(Event e) {
-				if (composite.isDisposed())
-					return;
-				Rectangle bounds = composite.getBounds();
-				GC gc = e.gc;
-				gc.setForeground(colors.getColor(IFormColors.SEPARATOR));
-				if (colors.getBackground() != null)
-					gc.setBackground(colors.getBackground());
-				gc.fillGradientRectangle(0, 0, bounds.width, bounds.height,
-						false);
-			}
-		});
-		if (parent instanceof Section)
-			((Section) parent).setSeparatorControl(composite);
-		return composite;
-	}
-
-	/**
-	 * Creates a label as a part of the form.
-	 * 
-	 * @param parent
-	 *            the label parent
-	 * @param text
-	 *            the label text
-	 * @return the label widget
-	 */
-	public Label createLabel(Composite parent, String text) {
-		return createLabel(parent, text, SWT.NONE);
-	}
-
-	/**
-	 * Creates a label as a part of the form.
-	 * 
-	 * @param parent
-	 *            the label parent
-	 * @param text
-	 *            the label text
-	 * @param style
-	 *            the label style
-	 * @return the label widget
-	 */
-	public Label createLabel(Composite parent, String text, int style) {
-		Label label = new Label(parent, style | orientation);
-		if (text != null)
-			label.setText(text);
-		adapt(label, false, false);
-		return label;
-	}
-
-	/**
-	 * Creates a hyperlink as a part of the form. The hyperlink will be added to
-	 * the hyperlink group that belongs to this toolkit.
-	 * 
-	 * @param parent
-	 *            the hyperlink parent
-	 * @param text
-	 *            the text of the hyperlink
-	 * @param style
-	 *            the hyperlink style
-	 * @return the hyperlink widget
-	 */
-	public Hyperlink createHyperlink(Composite parent, String text, int style) {
-		Hyperlink hyperlink = new Hyperlink(parent, style | orientation);
-		if (text != null)
-			hyperlink.setText(text);
-		hyperlink.addFocusListener(visibilityHandler);
-		hyperlink.addKeyListener(keyboardHandler);
-		hyperlinkGroup.add(hyperlink);
-		return hyperlink;
-	}
-
-	/**
-	 * Creates an image hyperlink as a part of the form. The hyperlink will be
-	 * added to the hyperlink group that belongs to this toolkit.
-	 * 
-	 * @param parent
-	 *            the hyperlink parent
-	 * @param style
-	 *            the hyperlink style
-	 * @return the image hyperlink widget
-	 */
-	public ImageHyperlink createImageHyperlink(Composite parent, int style) {
-		ImageHyperlink hyperlink = new ImageHyperlink(parent, style
-				| orientation);
-		hyperlink.addFocusListener(visibilityHandler);
-		hyperlink.addKeyListener(keyboardHandler);
-		hyperlinkGroup.add(hyperlink);
-		return hyperlink;
-	}
-
-	/**
-	 * Creates a rich text as a part of the form.
-	 * 
-	 * @param parent
-	 *            the rich text parent
-	 * @param trackFocus
-	 *            if <code>true</code>, the toolkit will monitor focus
-	 *            transfers to ensure that the hyperlink in focus is visible in
-	 *            the form.
-	 * @return the rich text widget
-	 */
-	public FormText createFormText(Composite parent, boolean trackFocus) {
-		FormText engine = new FormText(parent, SWT.WRAP | orientation);
-		engine.marginWidth = 1;
-		engine.marginHeight = 0;
-		engine.setHyperlinkSettings(getHyperlinkGroup());
-		adapt(engine, trackFocus, true);
-		engine.setMenu(parent.getMenu());
-		return engine;
-	}
-
-	/**
-	 * Adapts a control to be used in a form that is associated with this
-	 * toolkit. This involves adjusting colors and optionally adding handlers to
-	 * ensure focus tracking and keyboard management.
-	 * 
-	 * @param control
-	 *            a control to adapt
-	 * @param trackFocus
-	 *            if <code>true</code>, form will be scrolled horizontally
-	 *            and/or vertically if needed to ensure that the control is
-	 *            visible when it gains focus. Set it to <code>false</code> if
-	 *            the control is not capable of gaining focus.
-	 * @param trackKeyboard
-	 *            if <code>true</code>, the control that is capable of
-	 *            gaining focus will be tracked for certain keys that are
-	 *            important to the underlying form (for example, PageUp,
-	 *            PageDown, ScrollUp, ScrollDown etc.). Set it to
-	 *            <code>false</code> if the control is not capable of gaining
-	 *            focus or these particular key event are already used by the
-	 *            control.
-	 */
-	public void adapt(Control control, boolean trackFocus, boolean trackKeyboard) {
-		control.setBackground(colors.getBackground());
-		control.setForeground(colors.getForeground());
-		if (control instanceof ExpandableComposite) {
-			ExpandableComposite ec = (ExpandableComposite) control;
-			if (ec.toggle != null) {
-				if (trackFocus)
-					ec.toggle.addFocusListener(visibilityHandler);
-				if (trackKeyboard)
-					ec.toggle.addKeyListener(keyboardHandler);
-			}
-			if (ec.textLabel != null) {
-				if (trackFocus)
-					ec.textLabel.addFocusListener(visibilityHandler);
-				if (trackKeyboard)
-					ec.textLabel.addKeyListener(keyboardHandler);
-			}
-			return;
-		}
-		if (trackFocus)
-			control.addFocusListener(visibilityHandler);
-		if (trackKeyboard)
-			control.addKeyListener(keyboardHandler);
-	}
-
-	/**
-	 * Adapts a composite to be used in a form associated with this toolkit.
-	 * 
-	 * @param composite
-	 *            the composite to adapt
-	 */
-	public void adapt(Composite composite) {
-		composite.setBackground(colors.getBackground());
-		composite.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent e) {
-				((Control) e.widget).setFocus();
-			}
-		});
-		if (composite.getParent() != null)
-			composite.setMenu(composite.getParent().getMenu());
-	}
-
-	/**
-	 * A helper method that ensures the provided control is visible when
-	 * ScrolledComposite is somewhere in the parent chain. If scroll bars are
-	 * visible and the control is clipped, the client of the scrolled composite
-	 * will be scrolled to reveal the control.
-	 * 
-	 * @param c
-	 *            the control to reveal
-	 */
-	public static void ensureVisible(Control c) {
-		FormUtil.ensureVisible(c);
-	}
-
-	/**
-	 * Creates a section as a part of the form.
-	 * 
-	 * @param parent
-	 *            the section parent
-	 * @param sectionStyle
-	 *            the section style
-	 * @return the section widget
-	 */
-	public Section createSection(Composite parent, int sectionStyle) {
-		Section section = new Section(parent, orientation, sectionStyle);
-		section.setMenu(parent.getMenu());
-		adapt(section, true, true);
-		if (section.toggle != null) {
-			section.toggle.setHoverDecorationColor(colors
-					.getColor(IFormColors.TB_TOGGLE_HOVER));
-			section.toggle.setDecorationColor(colors
-					.getColor(IFormColors.TB_TOGGLE));
-		}
-		section.setFont(boldFontHolder.getBoldFont(parent.getFont()));
-		if ((sectionStyle & Section.TITLE_BAR) != 0
-				|| (sectionStyle & Section.SHORT_TITLE_BAR) != 0) {
-			colors.initializeSectionToolBarColors();
-			section.setTitleBarBackground(colors.getColor(IFormColors.TB_BG));
-			section.setTitleBarBorderColor(colors
-					.getColor(IFormColors.TB_BORDER));
-		}
-		// call setTitleBarForeground regardless as it also sets the label color
-		section.setTitleBarForeground(colors
-				.getColor(IFormColors.TB_TOGGLE));
-		return section;
-	}
-
-	/**
-	 * Creates an expandable composite as a part of the form.
-	 * 
-	 * @param parent
-	 *            the expandable composite parent
-	 * @param expansionStyle
-	 *            the expandable composite style
-	 * @return the expandable composite widget
-	 */
-	public ExpandableComposite createExpandableComposite(Composite parent,
-			int expansionStyle) {
-		ExpandableComposite ec = new ExpandableComposite(parent, orientation,
-				expansionStyle);
-		ec.setMenu(parent.getMenu());
-		adapt(ec, true, true);
-		ec.setFont(boldFontHolder.getBoldFont(ec.getFont()));
-		return ec;
-	}
-
-	/**
-	 * Creates a separator label as a part of the form.
-	 * 
-	 * @param parent
-	 *            the separator parent
-	 * @param style
-	 *            the separator style
-	 * @return the separator label
-	 */
-	public Label createSeparator(Composite parent, int style) {
-		Label label = new Label(parent, SWT.SEPARATOR | style | orientation);
-		label.setBackground(colors.getBackground());
-		label.setForeground(colors.getBorderColor());
-		return label;
-	}
-
-	/**
-	 * Creates a table as a part of the form.
-	 * 
-	 * @param parent
-	 *            the table parent
-	 * @param style
-	 *            the table style
-	 * @return the table widget
-	 */
-	public Table createTable(Composite parent, int style) {
-		Table table = new Table(parent, style | borderStyle | orientation);
-		adapt(table, false, false);
-		// hookDeleteListener(table);
-		return table;
-	}
-
-	/**
-	 * Creates a text as a part of the form.
-	 * 
-	 * @param parent
-	 *            the text parent
-	 * @param value
-	 *            the text initial value
-	 * @return the text widget
-	 */
-	public Text createText(Composite parent, String value) {
-		return createText(parent, value, SWT.SINGLE);
-	}
-
-	/**
-	 * Creates a text as a part of the form.
-	 * 
-	 * @param parent
-	 *            the text parent
-	 * @param value
-	 *            the text initial value
-	 * @param style
-	 *            the text style
-	 * @return the text widget
-	 */
-	public Text createText(Composite parent, String value, int style) {
-		Text text = new Text(parent, borderStyle | style | orientation);
-		if (value != null)
-			text.setText(value);
-		text.setForeground(colors.getForeground());
-		text.setBackground(colors.getBackground());
-		text.addFocusListener(visibilityHandler);
-		return text;
-	}
-
-	/**
-	 * Creates a tree widget as a part of the form.
-	 * 
-	 * @param parent
-	 *            the tree parent
-	 * @param style
-	 *            the tree style
-	 * @return the tree widget
-	 */
-	public Tree createTree(Composite parent, int style) {
-		Tree tree = new Tree(parent, borderStyle | style | orientation);
-		adapt(tree, false, false);
-		// hookDeleteListener(tree);
-		return tree;
-	}
-
-	/**
-	 * Creates a scrolled form widget in the provided parent. If you do not
-	 * require scrolling because there is already a scrolled composite up the
-	 * parent chain, use 'createForm' instead.
-	 * 
-	 * @param parent
-	 *            the scrolled form parent
-	 * @return the form that can scroll itself
-	 * @see #createForm
-	 */
-	public ScrolledForm createScrolledForm(Composite parent) {
-		ScrolledForm form = new ScrolledForm(parent, SWT.V_SCROLL
-				| SWT.H_SCROLL | orientation);
-		form.setExpandHorizontal(true);
-		form.setExpandVertical(true);
-		form.setBackground(colors.getBackground());
-		form.setForeground(colors.getColor(IFormColors.TITLE));
-		form.setFont(JFaceResources.getHeaderFont());
-		return form;
-	}
-
-	/**
-	 * Creates a form widget in the provided parent. Note that this widget does
-	 * not scroll its content, so make sure there is a scrolled composite up the
-	 * parent chain. If you require scrolling, use 'createScrolledForm' instead.
-	 * 
-	 * @param parent
-	 *            the form parent
-	 * @return the form that does not scroll
-	 * @see #createScrolledForm
-	 */
-	public Form createForm(Composite parent) {
-		Form formContent = new Form(parent, orientation);
-		formContent.setBackground(colors.getBackground());
-		formContent.setForeground(colors.getColor(IFormColors.TITLE));
-		formContent.setFont(JFaceResources.getHeaderFont());
-		return formContent;
-	}
-
-	/**
-	 * Takes advantage of the gradients and other capabilities to decorate the
-	 * form heading using colors computed based on the current skin and
-	 * operating system.
-	 * 
-	 * @since 3.3
-	 * @param form
-	 *            the form to decorate
-	 */
-
-	public void decorateFormHeading(Form form) {
-		Color top = colors.getColor(IFormColors.H_GRADIENT_END);
-		Color bot = colors.getColor(IFormColors.H_GRADIENT_START);
-		form.setTextBackground(new Color[] { top, bot }, new int[] { 100 },
-				true);
-		form.setHeadColor(IFormColors.H_BOTTOM_KEYLINE1, colors
-				.getColor(IFormColors.H_BOTTOM_KEYLINE1));
-		form.setHeadColor(IFormColors.H_BOTTOM_KEYLINE2, colors
-				.getColor(IFormColors.H_BOTTOM_KEYLINE2));
-		form.setHeadColor(IFormColors.H_HOVER_LIGHT, colors
-				.getColor(IFormColors.H_HOVER_LIGHT));
-		form.setHeadColor(IFormColors.H_HOVER_FULL, colors
-				.getColor(IFormColors.H_HOVER_FULL));
-		form.setHeadColor(IFormColors.TB_TOGGLE, colors
-				.getColor(IFormColors.TB_TOGGLE));
-		form.setHeadColor(IFormColors.TB_TOGGLE_HOVER, colors
-				.getColor(IFormColors.TB_TOGGLE_HOVER));
-		form.setSeparatorVisible(true);
-	}
-
-	/**
-	 * Creates a scrolled page book widget as a part of the form.
-	 * 
-	 * @param parent
-	 *            the page book parent
-	 * @param style
-	 *            the text style
-	 * @return the scrolled page book widget
-	 */
-	public ScrolledPageBook createPageBook(Composite parent, int style) {
-		ScrolledPageBook book = new ScrolledPageBook(parent, style
-				| orientation);
-		adapt(book, true, true);
-		book.setMenu(parent.getMenu());
-		return book;
-	}
-
-	/**
-	 * Disposes the toolkit.
-	 */
-	public void dispose() {
-		if (isDisposed) {
-			return;
-		}
-		isDisposed = true;
-		if (colors.isShared() == false) {
-			colors.dispose();
-			colors = null;
-		}
-		boldFontHolder.dispose();
-	}
-
-	/**
-	 * Returns the hyperlink group that manages hyperlinks for this toolkit.
-	 * 
-	 * @return the hyperlink group
-	 */
-	public HyperlinkGroup getHyperlinkGroup() {
-		return hyperlinkGroup;
-	}
-
-	/**
-	 * Sets the background color for the entire toolkit. The method delegates
-	 * the call to the FormColors object and also updates the hyperlink group so
-	 * that hyperlinks and other objects are in sync.
-	 * 
-	 * @param bg
-	 *            the new background color
-	 */
-	public void setBackground(Color bg) {
-		hyperlinkGroup.setBackground(bg);
-		colors.setBackground(bg);
-	}
-
-	/**
-	 * Refreshes the hyperlink colors by loading from JFace settings.
-	 */
-	public void refreshHyperlinkColors() {
-		hyperlinkGroup.initializeDefaultForegrounds(colors.getDisplay());
-	}
-
-	/**
-	 * Paints flat borders for widgets created by this toolkit within the
-	 * provided parent. Borders will not be painted if the global border style
-	 * is SWT.BORDER (i.e. if native borders are used). Call this method during
-	 * creation of a form composite to get the borders of its children painted.
-	 * Care should be taken when selection layout margins. At least one pixel
-	 * margin width and height must be chosen to allow the toolkit to paint the
-	 * border on the parent around the widgets.
-	 * <p>
-	 * Borders are painted for some controls that are selected by the toolkit by
-	 * default. If a control needs a border but is not on its list, it is
-	 * possible to force borders in the following ways:
-	 * 
-	 * <pre>
-	 *             widget.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER);
-	 *             
-	 *             or
-	 *             
-	 *             widget.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-	 * </pre>
-	 * <p>
-	 * If borders would normally be painted for a control, but they are not wanted, it
-	 * is possible to suppress them in the following way:
-	 * 
-	 * <pre>
-	 *             widget.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE);
-	 * </pre>
-	 * 
-	 * @param parent
-	 *            the parent that owns the children for which the border needs
-	 *            to be painted.
-	 */
-	public void paintBordersFor(Composite parent) {
-		// if (borderStyle == SWT.BORDER)
-		// return;
-		if (borderPainter == null)
-			borderPainter = new BorderPainter();
-		parent.addPaintListener(borderPainter);
-	}
-
-	/**
-	 * Returns the colors used by this toolkit.
-	 * 
-	 * @return the color object
-	 */
-	public FormColors getColors() {
-		return colors;
-	}
-
-	/**
-	 * Returns the border style used for various widgets created by this
-	 * toolkit. The intent of the toolkit is to create controls with styles that
-	 * yield a 'flat' appearance. On systems where the native borders are
-	 * already flat, we set the style to SWT.BORDER and don't paint the borders
-	 * ourselves. Otherwise, the style is set to SWT.NULL, and borders are
-	 * painted by the toolkit.
-	 * 
-	 * @return the global border style
-	 */
-	public int getBorderStyle() {
-		return borderStyle;
-	}
-
-	/**
-	 * Returns the margin required around the children whose border is being
-	 * painted by the toolkit using {@link #paintBordersFor(Composite)}. Since
-	 * the border is painted around the controls on the parent, a number of
-	 * pixels needs to be reserved for this border. For windowing systems where
-	 * the native border is used, this margin is 0.
-	 * 
-	 * @return the margin in the parent when children have their border painted
-	 * @since 3.3
-	 */
-	public int getBorderMargin() {
-		return getBorderStyle() == SWT.BORDER ? 0 : 2;
-	}
-
-	/**
-	 * Sets the border style to be used when creating widgets. The toolkit
-	 * chooses the correct style based on the platform but this value can be
-	 * changed using this method.
-	 * 
-	 * @param style
-	 *            <code>SWT.BORDER</code> or <code>SWT.NULL</code>
-	 * @see #getBorderStyle
-	 */
-	public void setBorderStyle(int style) {
-		this.borderStyle = style;
-	}
-
-	/**
-	 * A utility method that ensures that the control is visible in the scrolled
-	 * composite. The prerequisite for this method is that the control has a
-	 * class that extends ScrolledComposite somewhere in the parent chain. If
-	 * the control is partially or fully clipped, the composite is scrolled to
-	 * set by setting the origin to the control origin.
-	 * 
-	 * @param c
-	 *            the control to make visible
-	 * @param verticalOnly
-	 *            if <code>true</code>, the scrolled composite will be
-	 *            scrolled only vertically if needed. Otherwise, the scrolled
-	 *            composite origin will be set to the control origin.
-	 * @since 3.1
-	 */
-	public static void setControlVisible(Control c, boolean verticalOnly) {
-		ScrolledComposite scomp = FormUtil.getScrolledComposite(c);
-		if (scomp == null)
-			return;
-		Point location = FormUtil.getControlLocation(scomp, c);
-		scomp.setOrigin(location);
-	}
-
-	private void initialize() {
-		initializeBorderStyle();
-		hyperlinkGroup = new HyperlinkGroup(colors.getDisplay());
-		hyperlinkGroup.setBackground(colors.getBackground());
-		visibilityHandler = new VisibilityHandler();
-		keyboardHandler = new KeyboardHandler();
-		boldFontHolder = new BoldFontHolder();
-	}
-
-	private void initializeBorderStyle() {
-		String osname = System.getProperty("os.name"); //$NON-NLS-1$
-		String osversion = System.getProperty("os.version"); //$NON-NLS-1$
-		if (osname.startsWith("Windows") && "5.1".compareTo(osversion) <= 0) { //$NON-NLS-1$ //$NON-NLS-2$
-			// Skinned widgets used on newer Windows (e.g. XP (5.1), Vista
-			// (6.0))
-			// Check for Windows Classic. If not used, set the style to BORDER
-			RGB rgb = colors.getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			if (rgb.red != 212 || rgb.green != 208 || rgb.blue != 200)
-				borderStyle = SWT.BORDER;
-		} else if (osname.startsWith("Mac")) //$NON-NLS-1$
-			borderStyle = SWT.BORDER;
-	}
-
-	/**
-	 * Returns the orientation that all the widgets created by this toolkit will
-	 * inherit, if set. Can be <code>SWT.NULL</code>,
-	 * <code>SWT.LEFT_TO_RIGHT</code> and <code>SWT.RIGHT_TO_LEFT</code>.
-	 * 
-	 * @return orientation style for this toolkit, or <code>SWT.NULL</code> if
-	 *         not set. The default orientation is inherited from the Window
-	 *         default orientation.
-	 * @see org.eclipse.jface.window.Window#getDefaultOrientation()
-	 * @since 3.1
-	 */
-
-	public int getOrientation() {
-		return orientation;
-	}
-
-	/**
-	 * Sets the orientation that all the widgets created by this toolkit will
-	 * inherit. Can be <code>SWT.NULL</code>, <code>SWT.LEFT_TO_RIGHT</code>
-	 * and <code>SWT.RIGHT_TO_LEFT</code>.
-	 * 
-	 * @param orientation
-	 *            style for this toolkit.
-	 * @since 3.1
-	 */
-
-	public void setOrientation(int orientation) {
-		this.orientation = orientation;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java
deleted file mode 100644
index a75767d..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Hyperlink.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.internal.forms.widgets.*;
-
-/**
- * Hyperlink is a concrete implementation of the abstract base class that draws
- * text in the client area. Text can be wrapped and underlined. Hyperlink is
- * typically added to the hyperlink group so that certain properties are managed
- * for all the hyperlinks that belong to it.
- * <p>
- * Hyperlink can be extended.
- * <p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>SWT.WRAP</dd>
- * </dl>
- * 
- * @see org.eclipse.ui.forms.HyperlinkGroup
- * @since 3.0
- */
-public class Hyperlink extends AbstractHyperlink {
-	private String text;
-	private static final String ELLIPSIS = "..."; //$NON-NLS-1$	
-	private boolean underlined;
-	// The tooltip is used for two purposes - the application can set
-	// a tooltip or the tooltip can be used to display the full text when the
-	// the text has been truncated due to the label being too short.
-	// The appToolTip stores the tooltip set by the application.  Control.tooltiptext 
-	// contains whatever tooltip is currently being displayed.
-	private String appToolTipText;	
-
-	/**
-	 * Creates a new hyperlink control in the provided parent.
-	 * 
-	 * @param parent
-	 *            the control parent
-	 * @param style
-	 *            the widget style
-	 */
-	public Hyperlink(Composite parent, int style) {
-		super(parent, style);
-		initAccessible();
-	}
-
-	protected void initAccessible() {
-		Accessible accessible = getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				e.result = getText();
-				if (e.result == null)
-					getHelp(e);
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				e.result = getToolTipText();
-			}
-		});
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				Point pt = toControl(new Point(e.x, e.y));
-				e.childID = (getBounds().contains(pt)) ? ACC.CHILDID_SELF
-						: ACC.CHILDID_NONE;
-			}
-
-			public void getLocation(AccessibleControlEvent e) {
-				Rectangle location = getBounds();
-				Point pt = 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 = 0;
-			}
-
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_LINK;
-			}
-						
-			public void getDefaultAction (AccessibleControlEvent e) {
-				e.result = SWT.getMessage ("SWT_Press"); //$NON-NLS-1$
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				int state = ACC.STATE_NORMAL;
-				if (Hyperlink.this.getSelection())
-					state = ACC.STATE_SELECTED | ACC.STATE_FOCUSED;
-				e.detail = state;
-			}
-		});
-	}
-
-	/**
-	 * Sets the underlined state. It is not necessary to call this method when
-	 * in a hyperlink group.
-	 * 
-	 * @param underlined
-	 *            if <samp>true </samp>, a line will be drawn below the text for
-	 *            each wrapped line.
-	 */
-	public void setUnderlined(boolean underlined) {
-		this.underlined = underlined;
-		redraw();
-	}
-
-	/**
-	 * Returns the underline state of the hyperlink.
-	 * 
-	 * @return <samp>true </samp> if text is underlined, <samp>false </samp>
-	 *         otherwise.
-	 */
-	public boolean isUnderlined() {
-		return underlined;
-	}
-
-	/**
-	 * Overrides the parent by incorporating the margin.
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		int innerWidth = wHint;
-		if (innerWidth != SWT.DEFAULT)
-			innerWidth -= marginWidth * 2;
-		Point textSize = computeTextSize(innerWidth, hHint);
-		int textWidth = textSize.x + 2 * marginWidth;
-		int textHeight = textSize.y + 2 * marginHeight;
-		return new Point(textWidth, textHeight);
-	}
-
-	/**
-	 * Returns the current hyperlink text.
-	 * 
-	 * @return hyperlink text
-	 */
-	public String getText() {
-		return text;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#getToolTipText()
-	 */
-	public String getToolTipText () {
-		checkWidget();
-		return appToolTipText;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#setToolTipText(java.lang.String)
-	 */
-	public void setToolTipText (String string) {
-		super.setToolTipText (string);
-		appToolTipText = super.getToolTipText();
-	}	
-
-	/**
-	 * Sets the text of this hyperlink.
-	 * 
-	 * @param text
-	 *            the hyperlink text
-	 */
-	public void setText(String text) {
-		if (text != null)
-			this.text = text;
-		else
-			this.text = ""; //$NON-NLS-1$
-		redraw();
-	}
-
-	/**
-	 * Paints the hyperlink text.
-	 * 
-	 * @param gc
-	 *            graphic context
-	 */
-	protected void paintHyperlink(GC gc) {
-		Rectangle carea = getClientArea();
-		Rectangle bounds = new Rectangle(marginWidth, marginHeight, carea.width
-				- marginWidth - marginWidth, carea.height - marginHeight
-				- marginHeight);
-		paintText(gc, bounds);
-	}
-
-	/**
-	 * Paints the hyperlink text in provided bounding rectangle.
-	 * 
-	 * @param gc
-	 *            graphic context
-	 * @param bounds
-	 *            the bounding rectangle in which to paint the text
-	 */
-	protected void paintText(GC gc, Rectangle bounds) {
-		gc.setFont(getFont());
-		Color fg = isEnabled() ? getForeground() : new Color(gc.getDevice(),FormColors.blend(getBackground().getRGB(), getForeground().getRGB(), 70));
-		try {
-			gc.setForeground(fg);
-			if ((getStyle() & SWT.WRAP) != 0) {
-				FormUtil.paintWrapText(gc, text, bounds, underlined);
-			} else {
-				Point totalSize = computeTextSize(SWT.DEFAULT, SWT.DEFAULT);
-				boolean shortenText =false;
-				if (bounds.width<totalSize.x) {
-					// shorten
-					shortenText=true;
-				}
-				int textWidth = Math.min(bounds.width, totalSize.x);
-				int textHeight = totalSize.y;
-				String textToDraw = getText();
-				if (shortenText) {
-					textToDraw = shortenText(gc, getText(), bounds.width);
-					if (appToolTipText == null) {
-						super.setToolTipText(getText());
-					}
-				}
-				else {
-					super.setToolTipText(appToolTipText);
-				}
-				gc.drawText(textToDraw, bounds.x, bounds.y, true);
-				if (underlined) {
-					int descent = gc.getFontMetrics().getDescent();
-					int lineY = bounds.y + textHeight - descent + 1;
-					gc.drawLine(bounds.x, lineY, bounds.x + textWidth, lineY);
-				}
-			}
-		} finally {
-			if (!isEnabled() && fg != null)
-				fg.dispose();
-		}
-	}
-	
-	protected String shortenText(GC gc, String t, int width) {
-		if (t == null) return null;
-		int w = gc.textExtent(ELLIPSIS).x;
-		if (width<=w) return t;
-		int l = t.length();
-		int max = l/2;
-		int min = 0;
-		int mid = (max+min)/2 - 1;
-		if (mid <= 0) return t;
-		while (min < mid && mid < max) {
-			String s1 = t.substring(0, mid);
-			String s2 = t.substring(l-mid, l);
-			int l1 = gc.textExtent(s1).x;
-			int l2 = gc.textExtent(s2).x;
-			if (l1+w+l2 > width) {
-				max = mid;			
-				mid = (max+min)/2;
-			} else if (l1+w+l2 < width) {
-				min = mid;
-				mid = (max+min)/2;
-			} else {
-				min = max;
-			}
-		}
-		if (mid == 0) return t;
-	 	return t.substring(0, mid)+ELLIPSIS+t.substring(l-mid, l);
-	}
-
-	protected Point computeTextSize(int wHint, int hHint) {
-		Point extent;
-		GC gc = new GC(this);
-		gc.setFont(getFont());
-		if ((getStyle() & SWT.WRAP) != 0 && wHint != SWT.DEFAULT) {
-			extent = FormUtil.computeWrapSize(gc, getText(), wHint);
-		} else {
-			extent = gc.textExtent(getText());
-			if ((getStyle() & SWT.WRAP)==0 && wHint!=SWT.DEFAULT)
-				extent.x = wHint;
-		}
-		gc.dispose();
-		return extent;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java
deleted file mode 100644
index 237dd1c..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ILayoutExtension.java
+++ /dev/null
@@ -1,48 +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.forms.widgets;
-import org.eclipse.swt.widgets.Composite;
-/**
- * Classes that extend abstract class Layout and implement this interface can
- * take part in layout computation of the TableWrapLayout manager. This layout
- * uses alternative algorithm that computes columns before rows. It allows it
- * to 'flow' wrapped text proportionally (similar to the way web browser
- * renders tables). Custom layout managers that implement this interface will
- * allow TableWrapLayout to properly compute width hint to pass.
- * 
- * @see TableWrapLayout
- * @see ColumnLayout
- * @since 3.0
- */
-public interface ILayoutExtension {
-	/**
-	 * Computes the minimum width of the parent. All widgets capable of word
-	 * wrapping should return the width of the longest word that cannot be
-	 * broken any further.
-	 * 
-	 * @param parent the parent composite
-	 * @param changed <code>true</code> if the cached information should be
-	 * flushed, <code>false</code> otherwise.
-	 * @return the minimum width of the parent composite
-	 */
-	public int computeMinimumWidth(Composite parent, boolean changed);
-	/**
-	 * Computes the maximum width of the parent. All widgets capable of word
-	 * wrapping should return the length of the entire text with wrapping
-	 * turned off.
-	 * 
-	 * @param parent the parent composite
-	 * @param changed <code>true</code> if the cached information
-	 * should be flushed, <code>false</code> otherwise.
-	 * @return the maximum width of the parent composite
-	 */
-	public int computeMaximumWidth(Composite parent, boolean changed);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java
deleted file mode 100644
index e526db8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ImageHyperlink.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chriss Gross (schtoo@schtoo.com) - fix for 61670
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-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.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * This class extends hyperlink widget by adding the capability to render an
- * image relative to the text. If no text has been set, only image will be
- * shown. Images for hover and active states can be set in addition to the
- * normal state image.
- * <p>
- * When image is taller than the text, additional style can be provided to
- * control vertical alignment (supported values are SWT.TOP, SWT.BOTTOM and
- * SWT.CENTER).
- * <p>
- * The class does not need to be sublassed but it is allowed to do so if some
- * aspect of the image hyperlink needs to be modified.
- * <p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>SWT.WRAP, SWT.BOTTOM, SWT.TOP, SWT.MIDDLE, SWT.LEFT, SWT.RIGHT</dd>
- * </dl>
- * 
- * @since 3.0
- */
-public class ImageHyperlink extends Hyperlink {
-	/**
-	 * Amount of pixels between the image and the text (default is 5).
-	 */
-	public int textSpacing = 5;
-
-	private Image image;
-
-	private Image hoverImage;
-
-	private Image activeImage;
-	
-	private Image disabledImage;
-
-	private int state;
-
-	private static final int HOVER = 1 << 1;
-
-	private static final int ACTIVE = 1 << 2;
-
-	private int verticalAlignment = SWT.CENTER;
-
-	private int horizontalAlignment = SWT.LEFT;
-
-	/**
-	 * Creates the image hyperlink instance.
-	 * 
-	 * @param parent
-	 *            the control parent
-	 * @param style
-	 *            the control style (SWT.WRAP, BOTTOM, TOP, MIDDLE, LEFT, RIGHT)
-	 */
-	public ImageHyperlink(Composite parent, int style) {
-		super(parent, removeAlignment(style));
-		extractAlignment(style);
-		addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (disabledImage != null)
-					disabledImage.dispose();
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.widgets.AbstractHyperlink#paintHyperlink(org.eclipse.swt.events.PaintEvent)
-	 */
-	protected void paintHyperlink(GC gc) {
-		paintHyperlink(gc, getClientArea());
-	}
-	
-	protected void paintHyperlink(GC gc, Rectangle bounds) {
-		Image image = null;
-		if (!isEnabled())
-			image = disabledImage;
-		else {
-			if ((state & ACTIVE) != 0)
-				image = activeImage;
-			else if ((state & HOVER) != 0)
-				image = hoverImage;
-			if (image == null)
-				image = this.image;
-		}
-		Rectangle ibounds = image != null ? image.getBounds() : new Rectangle(0, 0, 0, 0);
-		Point maxsize = computeMaxImageSize();
-		int spacing = image!=null?textSpacing:0;		
-		int textWidth = bounds.width - maxsize.x - spacing
-				- marginWidth - marginWidth;
-		int y = bounds.y+marginHeight + maxsize.y / 2 - ibounds.height / 2;
-
-		if (horizontalAlignment == SWT.LEFT) {
-			int x = bounds.x+marginWidth + maxsize.x / 2 - ibounds.width / 2;
-			int textX = bounds.x + marginWidth + maxsize.x + spacing;
-			if (image != null)
-				gc.drawImage(image, x, y);
-			if (getText() != null)
-				drawText(gc, bounds, textX, textWidth);
-		} else if (horizontalAlignment == SWT.RIGHT) {
-			int x = bounds.x+marginWidth;
-			if (getText() != null) {
-				x += drawText(gc, bounds, x, textWidth);
-			}
-			x += maxsize.x / 2 - ibounds.width / 2 + spacing;
-			if (image != null)
-				gc.drawImage(image, x, y);
-		}
-	}
-
-	private int drawText(GC gc, Rectangle clientArea, int textX, int textWidth) {
-		Point textSize = computeTextSize(textWidth, SWT.DEFAULT);
-		int slotHeight = clientArea.height - marginHeight - marginHeight;
-		int textY;
-		textWidth = textSize.x;
-		int textHeight = textSize.y;
-		if (verticalAlignment == SWT.BOTTOM) {
-			textY = marginHeight + slotHeight - textHeight;
-		} else if (verticalAlignment == SWT.CENTER) {
-			textY = marginHeight + slotHeight / 2 - textHeight / 2;
-		} else {
-			textY = marginHeight;
-		}
-		paintText(gc, new Rectangle(textX, textY, textWidth, textHeight));
-		return textWidth;
-	}
-
-	/**
-	 * Computes the control size by reserving space for images in addition to
-	 * text.
-	 * 
-	 * @param wHint
-	 *            width hint
-	 * @param hHint
-	 *            height hint
-	 * @param changed
-	 *            if <code>true</code>, any cached layout data should be
-	 *            computed anew
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		checkWidget();
-		Point isize = computeMaxImageSize();
-		int spacing = isize.x>0?textSpacing:0;
-		Point textSize = null;
-		if (getText() != null) {
-			int innerWHint = wHint;
-			if (wHint != SWT.DEFAULT) {
-				innerWHint = wHint - 2 * marginWidth - isize.x - spacing;
-			}
-			textSize = super.computeSize(innerWHint, hHint, changed);
-		}
-		int width = isize.x;
-		int height = isize.y;
-		if (textSize != null) {
-			width += spacing;
-			width += textSize.x;
-			height = Math.max(height, textSize.y);
-		}
-		width += 2 * marginWidth;
-		height += 2 * marginHeight;
-		return new Point(width, height);
-	}
-
-	protected void handleEnter(Event e) {
-		state = HOVER;
-		super.handleEnter(e);
-	}
-
-	protected void handleExit(Event e) {
-		state = 0;
-		super.handleExit(e);
-	}
-
-	protected void handleActivate(Event e) {
-		state &= ACTIVE;
-		redraw();
-		super.handleActivate(e);
-		state &= ~ACTIVE;
-		if (!isDisposed())
-			redraw();
-	}
-
-	/**
-	 * Returns active image.
-	 * 
-	 * @return active image or <code>null</code> if not set.
-	 */
-	public Image getActiveImage() {
-		return activeImage;
-	}
-
-	/**
-	 * Sets the image to show when link is activated.
-	 * 
-	 * @param activeImage
-	 * 
-	 */
-	public void setActiveImage(Image activeImage) {
-		this.activeImage = activeImage;
-	}
-
-	/**
-	 * Returns the hover image.
-	 * 
-	 * @return hover image or <code>null</code> if not set.
-	 */
-	public Image getHoverImage() {
-		return hoverImage;
-	}
-
-	/**
-	 * Sets the image to show when link is hover state (on mouse over).
-	 * 
-	 * @param hoverImage
-	 */
-	public void setHoverImage(Image hoverImage) {
-		this.hoverImage = hoverImage;
-	}
-
-	/**
-	 * Returns the image to show in the normal state.
-	 * 
-	 * @return normal image or <code>null</code> if not set.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Sets the image to show when link is in the normal state.
-	 * 
-	 * @param image
-	 */
-	public void setImage(Image image) {
-		this.image = image;
-		if (disabledImage != null)
-			disabledImage.dispose();
-		if (!isEnabled() && image != null && !image.isDisposed())
-			disabledImage = new Image(image.getDevice(), image, SWT.IMAGE_DISABLE);
-	}
-
-	private Point computeMaxImageSize() {
-		int x = 0;
-		int y = 0;
-		if (image != null) {
-			x = Math.max(image.getBounds().width, x);
-			y = Math.max(image.getBounds().height, y);
-		}
-		if (hoverImage != null) {
-			x = Math.max(hoverImage.getBounds().width, x);
-			y = Math.max(hoverImage.getBounds().height, y);
-		}
-		if (activeImage != null) {
-			x = Math.max(activeImage.getBounds().width, x);
-			y = Math.max(activeImage.getBounds().height, y);
-		}
-		return new Point(x, y);
-	}
-
-	private static int removeAlignment(int style) {
-		int resultStyle = style;
-		if ((style & SWT.CENTER) != 0) {
-			resultStyle &= (~SWT.CENTER);
-		}
-		if ((style & SWT.TOP) != 0) {
-			resultStyle &= (~SWT.TOP);
-		}
-		if ((style & SWT.BOTTOM) != 0) {
-			resultStyle &= (~SWT.BOTTOM);
-		}
-		if ((style & SWT.LEFT) != 0) {
-			resultStyle &= (~SWT.LEFT);
-		}
-		if ((style & SWT.RIGHT) != 0) {
-			resultStyle &= (~SWT.RIGHT);
-		}
-		return resultStyle;
-	}
-
-	private void extractAlignment(int style) {
-		if ((style & SWT.CENTER) != 0) {
-			verticalAlignment = SWT.CENTER;
-		} else if ((style & SWT.TOP) != 0) {
-			verticalAlignment = SWT.TOP;
-		} else if ((style & SWT.BOTTOM) != 0) {
-			verticalAlignment = SWT.BOTTOM;
-		}
-		if ((style & SWT.LEFT) != 0) {
-			horizontalAlignment = SWT.LEFT;
-		} else if ((style & SWT.RIGHT) != 0) {
-			horizontalAlignment = SWT.RIGHT;
-		}
-	}
-	
-	public void setEnabled(boolean enabled) {
-		if (!enabled && (disabledImage == null || disabledImage.isDisposed()) && image != null && !image.isDisposed()) {
-			disabledImage = new Image(image.getDevice(), image, SWT.IMAGE_DISABLE);
-		}
-		super.setEnabled(enabled);
-		if (enabled && disabledImage != null) {
-			disabledImage.dispose();
-			disabledImage = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutCache.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutCache.java
deleted file mode 100644
index 7421a70..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutCache.java
+++ /dev/null
@@ -1,120 +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.forms.widgets;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * Caches the preferred sizes of an array of controls
- * 
- * @since 3.0
- */
-public class LayoutCache {
-    private SizeCache[] caches = new SizeCache[0];
-
-    /**
-     * Creates an empty layout cache
-     */
-    public LayoutCache() {
-    }
-
-    /**
-     * Creates a cache for the given array of controls
-     * 
-     * @param controls
-     */
-    public LayoutCache(Control[] controls) {
-        rebuildCache(controls);
-    }
-
-    /**
-     * Returns the size cache for the given control
-     * 
-     * @param idx
-     * @return the size cache for the given control
-     */
-    public SizeCache getCache(int idx) {
-        return caches[idx];
-    }
-
-    /**
-     * Sets the controls that are being cached here. If these are the same
-     * controls that were used last time, this method does nothing. Otherwise,
-     * the cache is flushed and a new cache is created for the new controls.
-     * 
-     * @param controls
-     */
-    public void setControls(Control[] controls) {
-        // If the number of controls has changed, discard the entire cache
-        if (controls.length != caches.length) {
-            rebuildCache(controls);
-            return;
-        }
-
-        for (int idx = 0; idx < controls.length; idx++) {
-            caches[idx].setControl(controls[idx]);
-        }
-    }
-
-    /**
-     * Creates a new size cache for the given set of controls, discarding any
-     * existing cache.
-     * 
-     * @param controls the controls whose size is being cached
-     */
-    private void rebuildCache(Control[] controls) {
-        SizeCache[] newCache = new SizeCache[controls.length];
-
-        for (int idx = 0; idx < controls.length; idx++) {
-            // Try to reuse existing caches if possible
-            if (idx < caches.length) {
-                newCache[idx] = caches[idx];
-                newCache[idx].setControl(controls[idx]);
-            } else {
-                newCache[idx] = new SizeCache(controls[idx]);
-            }
-        }
-
-        caches = newCache;
-    }
-
-    /**
-     * Computes the preferred size of the nth control
-     * 
-     * @param controlIndex index of the control whose size will be computed
-     * @param widthHint width of the control (or SWT.DEFAULT if unknown)
-     * @param heightHint height of the control (or SWT.DEFAULT if unknown)
-     * @return the preferred size of the control
-     */
-    public Point computeSize(int controlIndex, int widthHint, int heightHint) {
-        return caches[controlIndex].computeSize(widthHint, heightHint);
-    }
-
-    /**
-     * Flushes the cache for the given control. This should be called if exactly
-     * one of the controls has changed but the remaining controls remain unmodified
-     * 
-     * @param controlIndex
-     */
-    public void flush(int controlIndex) {
-        caches[controlIndex].flush();
-    }
-
-    /**
-     * Flushes the cache.
-     */
-    public void flush() {
-        for (int idx = 0; idx < caches.length; idx++) {
-            caches[idx].flush();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.java
deleted file mode 100644
index b51cca8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/LayoutComposite.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.forms.widgets;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-/**
- * The class overrides default method for computing size in Composite by
- * accepting size returned from layout managers as-is. The default code accepts
- * width or height hint assuming it is correct. However, it is possible that
- * the computation using the provided width hint results in a real size that is
- * larger. This can result in wrapped text widgets being clipped, asking to
- * render in bounds narrower than the longest word.
- */
-/* package */class LayoutComposite extends Composite {
-	public LayoutComposite(Composite parent, int style) {
-		super(parent, style);
-		setMenu(parent.getMenu());
-	}
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Layout layout = getLayout();
-		if (layout instanceof TableWrapLayout)
-			return ((TableWrapLayout) layout).computeSize(this, wHint, hHint,
-					changed);
-		if (layout instanceof ColumnLayout)
-			return ((ColumnLayout) layout).computeSize(this, wHint, hHint,
-					changed);
-		return super.computeSize(wHint, hHint, changed);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java
deleted file mode 100644
index a83221f..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledForm.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-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.Menu;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.IMessageManager;
-
-/**
- * ScrolledForm is a control that is capable of scrolling an instance of the
- * Form class. It should be created in a parent that will allow it to use all
- * the available area (for example, a shell, a view or an editor).
- * <p>
- * Children of the form should typically be created using FormToolkit to match
- * the appearance and behaviour. When creating children, use a form body as a
- * parent by calling 'getBody()' on the form instance. Example:
- * 
- * <pre>
- * FormToolkit toolkit = new FormToolkit(parent.getDisplay());
- * ScrolledForm form = toolkit.createScrolledForm(parent);
- * form.setText(&quot;Sample form&quot;);
- * form.getBody().setLayout(new GridLayout());
- * toolkit.createButton(form.getBody(), &quot;Checkbox&quot;, SWT.CHECK);
- * </pre>
- * 
- * <p>
- * No layout manager has been set on the body. Clients are required to set the
- * desired layout manager explicitly.
- * <p>
- * Although the class is not final, it is not expected to be be extended.
- * 
- * @since 3.0
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ScrolledForm extends SharedScrolledComposite {
-	private Form content;
-
-	private boolean customMenu;
-
-	public ScrolledForm(Composite parent) {
-		this(parent, SWT.V_SCROLL | SWT.H_SCROLL);
-	}
-
-	/**
-	 * Creates the form control as a child of the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 */
-	public ScrolledForm(Composite parent, int style) {
-		super(parent, style);
-		super.setMenu(parent.getMenu());
-		content = new Form(this, SWT.NULL);
-		super.setContent(content);
-		content.setMenu(getMenu());
-		addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				if (!customMenu)
-					setMenu(null);
-			}
-		});
-	}
-
-	/**
-	 * Passes the menu to the body.
-	 * 
-	 * @param menu
-	 */
-	public void setMenu(Menu menu) {
-		customMenu = true;
-		super.setMenu(menu);
-		if (content != null)
-			content.setMenu(menu);
-	}
-
-	/**
-	 * Returns the title text that will be rendered at the top of the form.
-	 * 
-	 * @return the title text
-	 */
-	public String getText() {
-		return content.getText();
-	}
-
-	/**
-	 * Returns the title image that will be rendered to the left of the title.
-	 * 
-	 * @return the title image
-	 */
-	public Image getImage() {
-		return content.getImage();
-	}
-
-	/**
-	 * Sets the foreground color of the form. This color will also be used for
-	 * the body.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		content.setForeground(fg);
-	}
-
-	/**
-	 * Sets the background color of the form. This color will also be used for
-	 * the body.
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		content.setBackground(bg);
-	}
-
-	/**
-	 * The form sets the content widget. This method should not be called by
-	 * classes that instantiate this widget.
-	 */
-	public final void setContent(Control c) {
-	}
-
-	/**
-	 * Sets the text to be rendered at the top of the form above the body as a
-	 * title.
-	 * <p>
-	 * <strong>Note:</strong> Mnemonics are indicated by an '&amp;' that causes
-	 * the next character to be the mnemonic. Mnemonics are not applicable in
-	 * the case of the form title but need to be taken into acount due to the
-	 * usage of the underlying widget that renders mnemonics in the title area.
-	 * The mnemonic indicator character '&amp;' can be escaped by doubling it in
-	 * the string, causing a single '&amp;' to be displayed.
-	 * </p>
-	 * 
-	 * @param text
-	 *            the title text
-	 */
-	public void setText(String text) {
-		content.setText(text);
-		reflow(true);
-	}
-
-	/**
-	 * Sets the image to be rendered to the left of the title.
-	 * 
-	 * @param image
-	 *            the title image or <code>null</code> for no image.
-	 */
-	public void setImage(Image image) {
-		content.setImage(image);
-		reflow(true);
-	}
-
-	/**
-	 * Returns the optional background image of this form. The image is rendered
-	 * starting at the position 0,0 and is painted behind the title.
-	 * 
-	 * @return Returns the background image.
-	 */
-	public Image getBackgroundImage() {
-		return content.getBackgroundImage();
-	}
-
-	/**
-	 * Sets the optional background image to be rendered behind the title
-	 * starting at the position 0,0.
-	 * 
-	 * @param backgroundImage
-	 *            The backgroundImage to set.
-	 */
-	public void setBackgroundImage(Image backgroundImage) {
-		content.setBackgroundImage(backgroundImage);
-	}
-
-	/**
-	 * Returns the tool bar manager that is used to manage tool items in the
-	 * form's title area.
-	 * 
-	 * @return form tool bar manager
-	 */
-	public IToolBarManager getToolBarManager() {
-		return content.getToolBarManager();
-	}
-
-	/**
-	 * Updates the local tool bar manager if used. Does nothing if local tool
-	 * bar manager has not been created yet.
-	 */
-	public void updateToolBar() {
-		content.updateToolBar();
-	}
-
-	/**
-	 * Returns the container that occupies the body of the form (the form area
-	 * below the title). Use this container as a parent for the controls that
-	 * should be in the form. No layout manager has been set on the form body.
-	 * 
-	 * @return Returns the body of the form.
-	 */
-	public Composite getBody() {
-		return content.getBody();
-	}
-
-	/**
-	 * Returns the instance of the form owned by the scrolled form.
-	 * 
-	 * @return the form instance
-	 */
-	public Form getForm() {
-		return content;
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 * @see Form#setBusy(boolean)
-	 * @since 3.3
-	 */
-
-	public void setBusy(boolean busy) {
-		content.setBusy(busy);
-		reflow(true);
-	}
-
-	/**
-	 * Sets the optional head client.
-	 * 
-	 * @param headClient
-	 *            the optional child of the head
-	 * @see Form#setHeadClient(Control)
-	 * @since 3.3
-	 */
-	public void setHeadClient(Control headClient) {
-		content.setHeadClient(headClient);
-		reflow(true);
-	}
-
-	/**
-	 * Sets the form message.
-	 * 
-	 * @param newMessage
-	 *            the message text or <code>null</code> to reset.
-	 * @param newType
-	 *            as defined in
-	 *            {@link org.eclipse.jface.dialogs.IMessageProvider}.
-	 * @param messages
-	 * 			 an optional array of children that itemize individual
-	 * 			messages or <code>null</code> for a simple message.
-	 * @since 3.3
-	 * @see Form#setMessage(String, int)
-	 */
-	public void setMessage(String newMessage, int newType, IMessage[] messages) {
-		content.setMessage(newMessage, newType, messages);
-		reflow(true);
-	}
-
-	/**
-	 * Sets the form message.
-	 * 
-	 * @param newMessage
-	 *            the message text or <code>null</code> to reset.
-	 * @param newType
-	 *            as defined in
-	 *            {@link org.eclipse.jface.dialogs.IMessageProvider}.
-	 * @since 3.3
-	 */
-	public void setMessage(String newMessage, int newType) {
-		this.setMessage(newMessage, newType, null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-	 */
-	public String getMessage() {
-		return content.getMessage();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-	 */
-	public int getMessageType() {
-		return content.getMessageType();
-	}
-	
-	/**
-	 * Returns the message manager that will keep track of messages in this
-	 * form. 
-	 * 
-	 * @return the message manager instance
-	 * @since org.eclipse.ui.forms 3.4
-	 */
-	public IMessageManager getMessageManager() {
-		return content.getMessageManager();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java
deleted file mode 100644
index 78e053e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledFormText.java
+++ /dev/null
@@ -1,164 +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.forms.widgets;
-import java.io.InputStream;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.*;
-/**
- * ScrolledFormText is a control that is capable of scrolling an instance of
- * the FormText class. It should be created in a parent that will allow it to
- * use all the available area (for example, a shell, a view or an editor). The
- * form text can be created by the class itself, or set from outside. In the
- * later case, the form text instance must be a direct child of the
- * ScrolledFormText instance.
- * <p>
- * The class assumes that text to be rendered contains formatting tags. In case
- * of a string, it will enclose the text in 'form' root element if missing from
- * the text as a convinience. For example:
- * 
- * <pre>
- *  ftext.setText(&quot;&lt;p&gt;Some text here&lt;/&gt;&quot;);
- * </pre>
- * 
- * will not cause an error. The same behavior does not exist for content from
- * the input stream, however - it must be well formed in that case.
- * </p>
-
- * @since 3.0
- * @see FormText
- */
-public class ScrolledFormText extends SharedScrolledComposite {
-	private FormText content;
-	private String text;
-	/**
-	 * Creates the new scrolled text instance in the provided parent
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param createFormText
-	 *            if <code>true</code>, enclosing form text instance will be
-	 *            created in this constructor.
-	 */
-	public ScrolledFormText(Composite parent, boolean createFormText) {
-		this(parent, SWT.V_SCROLL | SWT.H_SCROLL, createFormText);
-	}
-	/**
-	 * Creates the new scrolled text instance in the provided parent
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the style to pass to the scrolled composite
-	 * @param createFormText
-	 *            if <code>true</code>, enclosing form text instance will be
-	 *            created in this constructor.
-	 */
-	public ScrolledFormText(Composite parent, int style, boolean createFormText) {
-		super(parent, style);
-		if (createFormText)
-			setFormText(new FormText(this, SWT.NULL));
-	}
-	/**
-	 * Sets the form text to be managed by this scrolled form text. The
-	 * instance must be a direct child of this class. If this method is used,
-	 * <code>false</code> must be passed in either of the constructors to
-	 * avoid creating form text instance.
-	 * 
-	 * @param formText
-	 *            the form text instance to use.
-	 */
-	public void setFormText(FormText formText) {
-		this.content = formText;
-		super.setContent(content);
-		content.setMenu(getMenu());
-		if (text != null)
-			loadText(text);
-	}
-	/**
-	 * Sets the foreground color of the scrolled form text.
-	 * 
-	 * @param fg
-	 *            the foreground color
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		if (content != null)
-			content.setForeground(fg);
-	}
-	/**
-	 * Sets the background color of the scrolled form text.
-	 * 
-	 * @param bg
-	 *            the background color
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		if (content != null)
-			content.setBackground(bg);
-	}
-	/**
-	 * The class sets the content widget. This method should not be called by
-	 * classes that instantiate this widget.
-	 * 
-	 * @param c
-	 *            content control
-	 */
-	public final void setContent(Control c) {
-	}
-	/**
-	 * Sets the text to be rendered in the scrolled form text. The text must
-	 * contain formatting tags.
-	 * 
-	 * @param text
-	 *            the text to be rendered
-	 */
-	public void setText(String text) {
-		this.text = text;
-		loadText(text);
-		reflow(true);
-	}
-	/**
-	 * Sets the contents to rendered in the scrolled form text. The stream must
-	 * contain formatting tags. The caller is responsible for closing the input
-	 * stream. The call may be long running. For best results, call this method
-	 * from another thread and call 'reflow' when done (but make both calls
-	 * using 'Display.asyncExec' because these calls must be made in the event
-	 * dispatching thread).
-	 * 
-	 * @param is
-	 *            content input stream
-	 */
-	public void setContents(InputStream is) {
-		loadContents(is);
-	}
-	/**
-	 * Returns the instance of the form text.
-	 * 
-	 * @return the form text instance
-	 */
-	public FormText getFormText() {
-		return content;
-	}
-	private void loadText(String text) {
-		if (content != null) {
-			String markup = text;
-			if (!markup.startsWith("<form>")) //$NON-NLS-1$
-				markup = "<form>" + text + "</form>";  //$NON-NLS-1$//$NON-NLS-2$
-			content.setText(markup, true, false);
-		}
-	}
-	private void loadContents(InputStream is) {
-		if (content != null) {
-			content.setContents(is, false);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java
deleted file mode 100644
index f6ffe96..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ScrolledPageBook.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-import java.util.Hashtable;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.internal.forms.widgets.WrappedPageBook;
-/**
- * ScrolledPageBook is a class that is capable of stacking several composites
- * (pages), while showing one at a time. The content is scrolled if there is
- * not enough space to fit it in the client area.
- * 
- * @since 3.0
- */
-public class ScrolledPageBook extends SharedScrolledComposite {
-	private WrappedPageBook pageBook;
-	private Hashtable pages;
-	private Composite emptyPage;
-	private Control currentPage;
-	/**
-	 * Creates a new instance in the provided parent
-	 * 
-	 * @param parent
-	 */
-	public ScrolledPageBook(Composite parent) {
-		this(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-	}
-	/**
-	 * Creates a new instance in the provided parent and with the provided
-	 * style.
-	 * 
-	 * @param parent
-	 *            the control parent
-	 * @param style
-	 *            the style to use
-	 */
-	public ScrolledPageBook(Composite parent, int style) {
-		super(parent, style);
-		pageBook = new WrappedPageBook(this, SWT.NULL);
-		setContent(pageBook);
-		pages = new Hashtable();
-		setExpandHorizontal(true);
-		setExpandVertical(true);
-		this.addListener(SWT.Traverse, new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.detail) {
-					case SWT.TRAVERSE_ESCAPE :
-					case SWT.TRAVERSE_RETURN :
-					case SWT.TRAVERSE_TAB_NEXT :
-					case SWT.TRAVERSE_TAB_PREVIOUS :
-						e.doit = true;
-						break;
-				}
-			}
-		});
-	}
-	/**
-	 * Removes the default size of the composite, allowing the control to
-	 * shrink to the trim.
-	 * 
-	 * @param wHint
-	 *            the width hint
-	 * @param hHint
-	 *            the height hint
-	 * @param changed
-	 *            if <code>true</code>, do not use cached values
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Rectangle trim = computeTrim(0, 0, 10, 10);
-		return new Point(trim.width, trim.height);
-	}
-	/**
-	 * Tests if the page under the provided key is currently in the book.
-	 * 
-	 * @param key
-	 *            the page key
-	 * @return <code>true</code> if page exists, <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean hasPage(Object key) {
-		return pages.containsKey(key);
-	}
-	/**
-	 * Creates a new page for the provided key. Use the returned composite to
-	 * create children in it.
-	 * 
-	 * @param key
-	 *            the page key
-	 * @return the newly created page composite
-	 */
-	public Composite createPage(Object key) {
-		Composite page = createPage();
-		pages.put(key, page);
-		return page;
-	}
-	/**
-	 * Returns the page book container.
-	 * 
-	 * @return the page book container
-	 */
-	public Composite getContainer() {
-		return pageBook;
-	}
-	/**
-	 * Registers a page under the privided key to be managed by the page book.
-	 * The page must be a direct child of the page book container.
-	 * 
-	 * @param key
-	 *            the page key
-	 * @param page
-	 *            the page composite to register
-	 * @see #createPage(Object)
-	 * @see #getContainer
-	 */
-	public void registerPage(Object key, Control page) {
-		pages.put(key, page);
-	}
-	/**
-	 * Removes the page under the provided key from the page book. Does nothing
-	 * if page with that key does not exist.
-	 * 
-	 * @param key
-	 *            the page key.
-	 */
-	public void removePage(Object key) {
-		removePage(key, true);
-	}
-	/**
-	 * Removes the page under the provided key from the page book. Does nothing
-	 * if page with that key does not exist.
-	 * 
-	 * @param key
-	 *            the page key.
-	 * @param showEmptyPage
-	 * 			  if <code>true</code>, shows the empty page
-	 *            after page removal.
-	 */
-	public void removePage(Object key, boolean showEmptyPage) {
-		Control page = (Control) pages.get(key);
-		if (page != null) {
-			pages.remove(key);
-			page.dispose();
-			if (showEmptyPage)
-				showEmptyPage();
-		}
-	}
-	/**
-	 * Shows the page with the provided key and hides the page previously
-	 * showing. Does nothing if the page with that key does not exist.
-	 * 
-	 * @param key
-	 *            the page key
-	 */
-	public void showPage(Object key) {
-		Control page = (Control) pages.get(key);
-		if (page != null) {
-			pageBook.showPage(page);
-			if (currentPage != null && currentPage != page) {
-				// switching pages - force layout
-				if (page instanceof Composite)
-					((Composite) page).layout(false);
-			}
-			currentPage = page;
-		} else {
-			showEmptyPage();
-		}
-		reflow(true);
-	}
-	/**
-	 * Shows a page with no children to be used if the desire is to not show
-	 * any registered page.
-	 */
-	public void showEmptyPage() {
-		if (emptyPage == null) {
-			emptyPage = createPage();
-			emptyPage.setLayout(new GridLayout());
-		}
-		pageBook.showPage(emptyPage);
-		currentPage = emptyPage;
-		reflow(true);
-	}
-	/**
-	 * Sets focus on the current page if shown.
-	 */
-	public boolean setFocus() {
-		if (currentPage != null)
-			return currentPage.setFocus();
-		return super.setFocus();
-	}
-	/**
-	 * Returns the page currently showing.
-	 * 
-	 * @return the current page
-	 */
-	public Control getCurrentPage() {
-		return currentPage;
-	}
-	private Composite createPage() {
-		Composite page = new LayoutComposite(pageBook, SWT.NULL);
-		page.setBackground(getBackground());
-		page.setForeground(getForeground());
-		page.setMenu(pageBook.getMenu());
-		return page;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java
deleted file mode 100644
index 4d620f1..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Section.java
+++ /dev/null
@@ -1,472 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2000, 2009 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies this distribution, and is available at
- *  http://www.eclipse.org/legal/epl-v10.html
- * 
- *  Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Williamson (eclipse-bugs@magnaworks.com) - patch (see Bugzilla #92545) 
- *       
- *******************************************************************************/
-package org.eclipse.ui.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-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.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.internal.forms.widgets.FormImages;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * A variation of the expandable composite that adds optional description below
- * the title. Section is often used as a basic building block in forms because
- * it provides for logical grouping of information.
- * <p>
- * In case of the TITLE_BAR style, Section renders the title bar in a way
- * compatible with the rest of the workbench. Since it is a widget, all the
- * colors must be supplied directly. When created by the form toolkit, these
- * colors are supplied by the toolkit. The toolkit initializes these colors
- * based on the system colors. For this reason, it is recommended to create the
- * section by the toolkit instead of through its own constructor.
- * <p>
- * Since 3.1, it is possible to set a control to be used for section
- * description. If used, <code>DESCRIPTION</code> style should not be set. A
- * typical way to take advantage of the new method is to set an instance of
- * <code>FormText</code> to provide for hyperlinks and images in the
- * description area.
- * 
- * @since 3.0
- */
-public class Section extends ExpandableComposite {
-	/**
-	 * Description style. If used, description will be rendered below the title.
-	 */
-	public static final int DESCRIPTION = 1 << 7;
-
-	private Control descriptionControl;
-
-	private Control separator;
-
-	private Hashtable titleColors;
-
-	private static final String COLOR_BG = "bg"; //$NON-NLS-1$
-
-	private static final String COLOR_GBG = "gbg"; //$NON-NLS-1$
-
-	private static final String COLOR_BORDER = "border"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new section instance in the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the style to use
-	 */
-	public Section(Composite parent, int style) {
-		this(parent, SWT.NULL, style);
-	}
-
-	Section(Composite parent, int cstyle, int style) {
-		super(parent, cstyle | getBackgroundStyle(style), style);
-		int rtl = cstyle & SWT.RIGHT_TO_LEFT;
-		if ((style & DESCRIPTION) != 0) {
-			descriptionControl = new Text(this, SWT.READ_ONLY | SWT.WRAP | rtl);
-		}
-		if ((style & TITLE_BAR) != 0) {
-			Listener listener = new Listener() {
-				public void handleEvent(Event e) {
-					Image image = Section.super.getBackgroundImage();
-					if (image != null) {
-						FormImages.getInstance().markFinished(image);
-					}
-					Section.super.setBackgroundImage(null);
-				}
-			};
-			addListener(SWT.Dispose, listener);
-			addListener(SWT.Resize, listener);
-		}
-	}
-
-	private static int getBackgroundStyle(int estyle) {
-		return ((estyle & TITLE_BAR) != 0) ? SWT.NO_BACKGROUND : SWT.NULL;
-	}
-
-	protected void internalSetExpanded(boolean expanded) {
-		super.internalSetExpanded(expanded);
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			if (!expanded)
-				super.setBackgroundImage(null);
-		}
-		reflow();
-	}
-
-	/**
-	 * Reflows this section and all the parents up the hierarchy until a
-	 * SharedScrolledComposite is reached.
-	 */
-	protected void reflow() {
-		Composite c = this;
-		while (c != null) {
-			c.setRedraw(false);
-			c = c.getParent();
-			if (c instanceof SharedScrolledComposite || c instanceof Shell) {
-				break;
-			}
-		}
-		c = this;
-		while (c != null) {
-			c.layout(true);
-			c = c.getParent();
-			if (c instanceof SharedScrolledComposite) {
-				((SharedScrolledComposite) c).reflow(true);
-				break;
-			}
-		}
-		c = this;
-		while (c != null) {
-			c.setRedraw(true);
-			c = c.getParent();
-			if (c instanceof SharedScrolledComposite || c instanceof Shell) {
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Sets the description text. Has no effect if DESCRIPTION style was not
-	 * used to create the control.
-	 * 
-	 * @param description
-	 */
-	public void setDescription(String description) {
-		if (descriptionControl instanceof Text)
-			((Text) descriptionControl).setText(description);
-	}
-
-	/**
-	 * Returns the current description text.
-	 * 
-	 * @return description text or <code>null</code> if DESCRIPTION style was
-	 *         not used to create the control.
-	 */
-	public String getDescription() {
-		if (descriptionControl instanceof Text)
-			return ((Text) descriptionControl).getText();
-		return null;
-	}
-
-	/**
-	 * Sets the separator control of this section. The separator must not be
-	 * <samp>null </samp> and must be a direct child of this container. If
-	 * defined, separator will be placed below the title text and will remain
-	 * visible regardless of the expansion state.
-	 * 
-	 * @param separator
-	 *            the separator that will be placed below the title text.
-	 */
-	public void setSeparatorControl(Control separator) {
-		Assert.isTrue(separator != null && separator.getParent().equals(this));
-		this.separator = separator;
-	}
-
-	/**
-	 * Returns the control that is used as a separator betweeen the title and
-	 * the client, or <samp>null </samp> if not set.
-	 * 
-	 * @return separator control or <samp>null </samp> if not set.
-	 */
-	public Control getSeparatorControl() {
-		return separator;
-	}
-
-	/**
-	 * Sets the background of the section.
-	 * 
-	 * @param bg
-	 *            the new background
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		if (descriptionControl != null
-				&& (getExpansionStyle() & DESCRIPTION) != 0)
-			descriptionControl.setBackground(bg);
-	}
-
-	/**
-	 * Sets the foreground of the section.
-	 * 
-	 * @param fg
-	 *            the new foreground.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		if (descriptionControl != null
-				&& (getExpansionStyle() & DESCRIPTION) != 0)
-			descriptionControl.setForeground(fg);
-	}
-
-	/**
-	 * Returns the control used to render the description. In 3.1, this method
-	 * was promoted to public.
-	 * 
-	 * @return description control or <code>null</code> if DESCRIPTION style
-	 *         was not used to create the control and description control was
-	 *         not set by the client.
-	 * @see #setDescriptionControl(org.eclipse.swt.widgets.Control)
-	 */
-	public Control getDescriptionControl() {
-		return descriptionControl;
-	}
-
-	/**
-	 * Sets the description control of this section. The control must not be
-	 * <samp>null</samp> and must be a direct child of this container. If
-	 * defined, contol will be placed below the title text and the separator and
-	 * will be hidden int he collapsed state.
-	 * <p>
-	 * This method and <code>DESCRIPTION</code> style are mutually exclusive.
-	 * Use the method only if you want to create the description control
-	 * yourself.
-	 * 
-	 * @since 3.1
-	 * @param descriptionControl
-	 *            the control that will be placed below the title text.
-	 */
-	public void setDescriptionControl(Control descriptionControl) {
-		Assert.isTrue((getExpansionStyle() & DESCRIPTION) == 0);
-		Assert.isTrue(descriptionControl != null
-				&& descriptionControl.getParent().equals(this));
-		this.descriptionControl = descriptionControl;
-	}
-
-	/**
-	 * Sets the color of the title bar border when TITLE_BAR style is used.
-	 * 
-	 * @param color
-	 *            the title bar border color
-	 */
-	public void setTitleBarBorderColor(Color color) {
-		putTitleBarColor(COLOR_BORDER, color);
-	}
-
-	/**
-	 * Sets the color of the title bar background when TITLE_BAR style is used.
-	 * This color is used as a starting color for the vertical gradient.
-	 * 
-	 * @param color
-	 *            the title bar border background
-	 */
-	public void setTitleBarBackground(Color color) {
-		putTitleBarColor(COLOR_BG, color);
-	}
-
-	/**
-	 * Sets the color of the title bar gradient background when TITLE_BAR style
-	 * is used. This color is used at the height where title controls end
-	 * (toggle, tool bar).
-	 * 
-	 * @param color
-	 *            the title bar gradient background
-	 */
-	public void setTitleBarGradientBackground(Color color) {
-		putTitleBarColor(COLOR_GBG, color);
-	}
-
-	/**
-	 * Returns the title bar border color when TITLE_BAR style is used.
-	 * 
-	 * @return the title bar border color
-	 */
-	public Color getTitleBarBorderColor() {
-		if (titleColors == null)
-			return null;
-		return (Color) titleColors.get(COLOR_BORDER);
-	}
-
-	/**
-	 * Returns the title bar gradient background color when TITLE_BAR style is
-	 * used.
-	 * 
-	 * @return the title bar gradient background
-	 */
-	public Color getTitleBarGradientBackground() {
-		if (titleColors == null)
-			return null;
-		if ((getExpansionStyle() & SHORT_TITLE_BAR) != 0)
-			return getBackground();
-		return (Color) titleColors.get(COLOR_GBG);
-	}
-
-	/**
-	 * Returns the title bar background when TITLE_BAR style is used.
-	 * 
-	 * @return the title bar background
-	 */
-	public Color getTitleBarBackground() {
-		if (titleColors == null)
-			return null;
-		return (Color) titleColors.get(COLOR_BG);
-	}
-
-	private void putTitleBarColor(String key, Color color) {
-		if (color == null)
-			return;
-		if (titleColors == null)
-			titleColors = new Hashtable();
-		titleColors.put(key, color);
-	}
-
-	protected void onPaint(PaintEvent e) {
-		Color bg = null;
-		Color fg = null;
-		Color border = null;
-
-		GC gc = e.gc;
-		Image buffer = null;
-		Rectangle bounds = getClientArea();
-
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			buffer = new Image(getDisplay(), bounds.width, bounds.height);
-			buffer.setBackground(getBackground());
-			gc = new GC(buffer);
-		}
-		if (titleColors != null) {
-			bg = (Color) titleColors.get(COLOR_BG);
-			fg = getTitleBarForeground();
-			border = (Color) titleColors.get(COLOR_BORDER);
-		}
-		if (bg == null)
-			bg = getBackground();
-		if (fg == null)
-			fg = getForeground();
-		if (border == null)
-			border = fg;
-		int theight = 0;
-		int gradientheight = 0;
-		int tvmargin = IGAP;
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			Point tsize = null;
-			Point tcsize = null;
-			if (toggle != null)
-				tsize = toggle.getSize();
-			int twidth = bounds.width - marginWidth - marginWidth;
-			if (tsize != null)
-				twidth -= tsize.x + IGAP;
-			if (getTextClient() != null)
-				tcsize = getTextClient().getSize();
-			if (tcsize != null)
-				twidth -= tcsize.x + IGAP;
-			Point size = textLabel == null ? new Point(0,0) : textLabel.getSize();
-			if (tsize != null)
-				theight += Math.max(theight, tsize.y);
-			gradientheight = theight;
-			if (tcsize != null) {
-				theight = Math.max(theight, tcsize.y);
-			}
-			theight = Math.max(theight, size.y);
-			gradientheight = Math.max(gradientheight, size.y);
-			theight += tvmargin + tvmargin;
-			gradientheight += tvmargin + tvmargin;
-		} else {
-			theight = 5;
-		}
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			if (getBackgroundImage() == null)
-				updateHeaderImage(bg, bounds, gradientheight, theight);
-			gc.setBackground(getBackground());
-			gc.fillRectangle(bounds.x, bounds.y, bounds.width, bounds.height);
-			drawBackground(gc, bounds.x, bounds.y, bounds.width, theight);
-			if (marginWidth > 0) {
-				// fix up margins
-				gc.setBackground(getBackground());
-				gc.fillRectangle(0, 0, marginWidth, theight);
-				gc.fillRectangle(bounds.x + bounds.width - marginWidth, 0,
-						marginWidth, theight);
-			}
-		} else if (isExpanded()) {
-			gc.setForeground(bg);
-			gc.setBackground(getBackground());
-			gc.fillGradientRectangle(marginWidth, marginHeight, bounds.width
-					- marginWidth - marginWidth, theight, true);
-		}
-		gc.setBackground(getBackground());
-		FormUtil.setAntialias(gc, SWT.ON);
-		// repair the upper left corner
-		gc.fillPolygon(new int[] { marginWidth, marginHeight, marginWidth,
-				marginHeight + 2, marginWidth + 2, marginHeight });
-		// repair the upper right corner
-		gc.fillPolygon(new int[] { bounds.width - marginWidth - 3,
-				marginHeight, bounds.width - marginWidth, marginHeight,
-				bounds.width - marginWidth, marginHeight + 3 });
-		gc.setForeground(border);
-		if (isExpanded() || (getExpansionStyle() & TITLE_BAR) != 0) {
-			// top left curve
-			gc.drawLine(marginWidth, marginHeight + 2, marginWidth + 2,
-					marginHeight);
-			// top edge
-			gc.drawLine(marginWidth + 2, marginHeight, bounds.width
-					- marginWidth - 3, marginHeight);
-			// top right curve
-			gc.drawLine(bounds.width - marginWidth - 3, marginHeight,
-					bounds.width - marginWidth - 1, marginHeight + 2);
-		} else {
-			// collapsed short title bar
-			// top edge
-			gc.drawLine(marginWidth, marginHeight, bounds.width - 1,
-					marginHeight);
-		}
-		if ((getExpansionStyle() & TITLE_BAR) != 0 || isExpanded()) {
-			// left vertical edge gradient
-			gc.fillGradientRectangle(marginWidth, marginHeight + 2, 1,
-					gradientheight - 2, true);
-			// right vertical edge gradient
-			gc.fillGradientRectangle(bounds.width - marginWidth - 1,
-					marginHeight + 2, 1, gradientheight - 2, true);
-		}
-		if ((getExpansionStyle() & TITLE_BAR) != 0) {
-			// New in 3.3 - edge treatmant
-			gc.setForeground(getBackground());
-			gc.drawPolyline(new int[] { marginWidth + 1,
-					marginHeight + gradientheight - 1, marginWidth + 1,
-					marginHeight + 2, marginWidth + 2, marginHeight + 2,
-					marginWidth + 2, marginHeight + 1,
-					bounds.width - marginWidth - 3, marginHeight + 1,
-					bounds.width - marginWidth - 3, marginHeight + 2,
-					bounds.width - marginWidth - 2, marginHeight + 2,
-					bounds.width - marginWidth - 2,
-					marginHeight + gradientheight - 1 });
-		}
-		if (buffer != null) {
-			gc.dispose();
-			e.gc.drawImage(buffer, 0, 0);
-			buffer.dispose();
-		}
-	}
-
-	private void updateHeaderImage(Color bg, Rectangle bounds, int theight,
-			int realtheight) {
-		Image image = FormImages.getInstance().getGradient(getBackground(), bg, realtheight, theight, marginHeight);
-		super.setBackgroundImage(image);
-	}
-
-	/**
-	 * Background image is used for the title gradient - does nothing.
-	 */
-	public final void setBackgroundImage(Image image) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java
deleted file mode 100644
index 1ed1744..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SharedScrolledComposite.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2000, 2009 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-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.Listener;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * This class is used to provide common scrolling services to a number of
- * controls in the toolkit. Classes that extend it are not required to implement
- * any method.
- * 
- * @since 3.0
- */
-public abstract class SharedScrolledComposite extends ScrolledComposite {
-	private static final int H_SCROLL_INCREMENT = 5;
-
-	private static final int V_SCROLL_INCREMENT = 64;
-	
-	private boolean ignoreLayouts = true;
-
-	private boolean ignoreResizes = false;
-
-	private boolean expandHorizontal = false;
-
-	private boolean expandVertical = false;
-
-	private SizeCache contentCache = new SizeCache();
-
-	private boolean reflowPending = false;
-
-	private boolean delayedReflow = false;
-	
-	/**
-	 * Creates the new instance.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the style to use
-	 */
-	public SharedScrolledComposite(Composite parent, int style) {
-		super(parent, style);
-		addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				if (!ignoreResizes) {
-					scheduleReflow(false);
-				}
-			}
-		});
-		initializeScrollBars();
-	}
-
-	/**
-	 * Sets the foreground of the control and its content.
-	 * 
-	 * @param fg
-	 *            the new foreground color
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		if (getContent() != null)
-			getContent().setForeground(fg);
-	}
-
-	/**
-	 * Sets the background of the control and its content.
-	 * 
-	 * @param bg
-	 *            the new background color
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		if (getContent() != null)
-			getContent().setBackground(bg);
-	}
-
-	/**
-	 * Sets the font of the form. This font will be used to render the title
-	 * text. It will not affect the body.
-	 */
-	public void setFont(Font font) {
-		super.setFont(font);
-		if (getContent() != null)
-			getContent().setFont(font);
-	}
-
-	/**
-	 * Overrides 'super' to pass the proper colors and font
-	 */
-	public void setContent(Control content) {
-		super.setContent(content);
-		if (content != null) {
-			content.setForeground(getForeground());
-			content.setBackground(getBackground());
-			content.setFont(getFont());
-		}
-	}
-
-	/**
-	 * If content is set, transfers focus to the content.
-	 */
-	public boolean setFocus() {
-		boolean result;
-		FormUtil.setFocusScrollingEnabled(this, false);
-		if (getContent() != null)
-			result = getContent().setFocus();
-		else
-			result = super.setFocus();
-		FormUtil.setFocusScrollingEnabled(this, true);
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Composite#layout(boolean)
-	 */
-	public void layout(boolean changed) {
-		if (ignoreLayouts) {
-			return;
-		}
-
-		ignoreLayouts = true;
-		ignoreResizes = true;
-		super.layout(changed);
-		ignoreResizes = false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.custom.ScrolledComposite#setExpandHorizontal(boolean)
-	 */
-	public void setExpandHorizontal(boolean expand) {
-		expandHorizontal = expand;
-		super.setExpandHorizontal(expand);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.custom.ScrolledComposite#setExpandVertical(boolean)
-	 */
-	public void setExpandVertical(boolean expand) {
-		expandVertical = expand;
-		super.setExpandVertical(expand);
-	}
-
-	/**
-	 * Recomputes the body layout and the scroll bars. The method should be used
-	 * when changes somewhere in the form body invalidate the current layout
-	 * and/or scroll bars.
-	 * 
-	 * @param flushCache
-	 *            if <code>true</code>, drop the cached data
-	 */
-	public void reflow(boolean flushCache) {
-		Composite c = (Composite) getContent();
-		Rectangle clientArea = getClientArea();
-		if (c == null)
-			return;
-
-		contentCache.setControl(c);
-		if (flushCache) {
-			contentCache.flush();
-		}
-		Point newSize = contentCache.computeSize(FormUtil.getWidthHint(
-				clientArea.width, c), FormUtil.getHeightHint(clientArea.height,
-				c));
-
-		if (!(expandHorizontal && expandVertical)) {
-			c.setSize(newSize);
-		}
-
-		setMinSize(newSize);
-		FormUtil.updatePageIncrement(this);
-		
-		// reduce vertical scroll increment if necessary
-		ScrollBar vbar = getVerticalBar();
-		if (vbar != null) {
-			if (getClientArea().height - 5 < V_SCROLL_INCREMENT)
-				getVerticalBar().setIncrement(getClientArea().height - 5);
-			else 
-				getVerticalBar().setIncrement(V_SCROLL_INCREMENT);
-		}
-
-		ignoreLayouts = false;
-		layout(flushCache);
-		ignoreLayouts = true;
-		
-		contentCache.layoutIfNecessary();
-	}
-
-	private void updateSizeWhilePending() {
-		Control c = getContent();
-		Rectangle area = getClientArea();
-		setMinSize(area.width, c.getSize().y);
-	}
-
-	private void scheduleReflow(final boolean flushCache) {
-		if (delayedReflow) {
-			if (reflowPending) {
-				updateSizeWhilePending();
-				return;
-			}
-			reflowPending = true;
-			getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					reflowPending = false;
-					if (!isDisposed())
-						reflow(flushCache);
-				}
-			});
-		} else
-			reflow(flushCache);
-	}
-
-	private void initializeScrollBars() {
-		ScrollBar hbar = getHorizontalBar();
-		if (hbar != null) {
-			hbar.setIncrement(H_SCROLL_INCREMENT);
-		}
-		ScrollBar vbar = getVerticalBar();
-		if (vbar != null) {
-			vbar.setIncrement(V_SCROLL_INCREMENT);
-		}
-		FormUtil.updatePageIncrement(this);
-	}
-
-	/**
-	 * Tests if the control uses delayed reflow.
-	 * @return <code>true</code> if reflow requests will
-	 * be delayed, <code>false</code> otherwise. 
-	 */
-	public boolean isDelayedReflow() {
-		return delayedReflow;
-	}
-
-	/**
-	 * Sets the delayed reflow feature. When used,
-	 * it will schedule a reflow on resize requests
-	 * and reject subsequent reflows until the
-	 * scheduled one is performed.
-	 * 
-	 * @param delayedReflow
-	 *            The delayedReflow to set.
-	 */
-	public void setDelayedReflow(boolean delayedReflow) {
-		this.delayedReflow = delayedReflow;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SizeCache.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SizeCache.java
deleted file mode 100644
index a22b207..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/SizeCache.java
+++ /dev/null
@@ -1,532 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.List;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-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.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Scale;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Slider;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.internal.forms.widgets.FormUtil;
-
-/**
- * Caches the preferred size of an SWT control
- * 
- * @since 3.0
- */
-public class SizeCache {
-    private Control control;
-
-    private Point preferredSize;
-
-    private int cachedWidthQuery;
-    private int cachedWidthResult;
-
-    private int cachedHeightQuery;
-    private int cachedHeightResult;
-    
-    private int minimumWidth;
-    private int heightAtMinimumWidth = -1;
-    private int maximumWidth;
-    
-    /**
-     * True iff we should recursively flush all children on the next layout
-     */
-    private boolean flushChildren;
-
-    /**
-     * True iff changing the height hint does not affect the preferred width and changing
-     * the width hint does not change the preferred height
-     */
-    private boolean independentDimensions = false;
-
-    /**
-     * True iff the preferred height for any hint larger than the preferred width will not
-     * change the preferred height.
-     */
-    private boolean preferredWidthOrLargerIsMinimumHeight = false;
-
-    // HACK: these values estimate how much to subtract from the width and height
-    // hints that get passed into computeSize, in order to produce a result
-    // that is exactly the desired size. To be removed once bug 46112 is fixed (note:
-    // bug 46112 is currently flagged as a duplicate, but there is still no workaround).
-    private int widthAdjustment = 0;
-
-    private int heightAdjustment = 0;
-
-    private int minimumHeight;
-
-    private int widthAtMinimumHeight = -1;
-    
-    // If the layout is dirty, this is the size of the control at the time its
-    // layout was dirtied. null if the layout is not dirty.
-    private Point dirtySize = null; 
-
-
-    // END OF HACK
-
-    public SizeCache() {
-        this(null);
-    }
-
-    /**
-     * Creates a cache for size computations on the given control
-     * 
-     * @param control the control for which sizes will be calculated, 
-     * or null to always return (0,0) 
-     */
-    public SizeCache(Control control) {
-        setControl(control);
-    }
-
-    /**
-     * Sets the control whose size is being cached. Does nothing (will not
-     * even flush the cache) if this is the same control as last time. 
-     * 
-     * @param newControl the control whose size is being cached, or null to always return (0,0)
-     */
-    public void setControl(Control newControl) {
-        if (newControl != control) {
-            control = newControl;
-            if (control == null) {
-                independentDimensions = true;
-                preferredWidthOrLargerIsMinimumHeight = false;
-                widthAdjustment = 0;
-                heightAdjustment = 0;
-            } else {
-                independentDimensions = independentLengthAndWidth(control);
-                preferredWidthOrLargerIsMinimumHeight = isPreferredWidthMaximum(control);
-                computeHintOffset(control);
-                flush();
-            }
-        }
-    }
-
-    /**
-     * Returns the control whose size is being cached
-     * 
-     * @return the control whose size is being cached, or null if this cache always returns (0,0)
-     */
-    public Control getControl() {
-        return control;
-    }
-
-    /**
-     * Flush the cache (should be called if the control's contents may have changed since the
-     * last query)
-     */
-    public void flush() {
-        flush(true);
-    }
-
-    public void flush(boolean recursive) {
-        preferredSize = null;
-        cachedWidthQuery = -1;
-        cachedWidthResult = -1;
-        cachedHeightQuery = -1;
-        cachedHeightResult = -1;
-        minimumWidth = -1;
-        maximumWidth = -1;
-        minimumHeight = -1;
-        heightAtMinimumWidth = -1;
-        widthAtMinimumHeight = -1;
-        
-        if (recursive || dirtySize != null) {
-            if (control == null || control.isDisposed()) {
-                dirtySize = new Point(0,0);
-                control = null;
-            } else {
-                dirtySize = control.getSize();
-            }
-        }
-        
-        this.flushChildren = this.flushChildren || recursive;
-    }
-
-    private Point getPreferredSize() {
-        if (preferredSize == null) {
-            preferredSize = controlComputeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-
-        return preferredSize;
-    }
-
-    /**
-     * Computes the preferred size of the control.
-     *  
-     * @param widthHint the known width of the control (pixels) or SWT.DEFAULT if unknown
-     * @param heightHint the known height of the control (pixels) or SWT.DEFAULT if unknown
-     * @return the preferred size of the control
-     */
-    public Point computeSize(int widthHint, int heightHint) {
-        if (control == null || control.isDisposed()) {
-            return new Point(0, 0);
-        }
-        
-        // If we're asking for a result smaller than the minimum width
-        int minWidth = computeMinimumWidth();
-        
-        if (widthHint != SWT.DEFAULT && widthHint + widthAdjustment < minWidth) {
-            if (heightHint == SWT.DEFAULT) {
-                return new Point(minWidth, computeHeightAtMinimumWidth());   
-            }
-            
-            widthHint = minWidth - widthAdjustment;
-        }
-        
-        // If we're asking for a result smaller than the minimum height
-        int minHeight = computeMinimumHeight();
-        
-        if (heightHint != SWT.DEFAULT && heightHint + heightAdjustment < minHeight) {
-            if (widthHint == SWT.DEFAULT) {
-                return new Point(computeWidthAtMinimumHeight(), minHeight);
-            }
-            
-            heightHint = minHeight - heightAdjustment;
-        }
-        
-        // If both dimensions were supplied in the input, compute the trivial result
-        if (widthHint != SWT.DEFAULT && heightHint != SWT.DEFAULT) {                        
-            return new Point(widthHint + widthAdjustment, heightHint + heightAdjustment);
-        }
-
-        // No hints given -- find the preferred size
-        if (widthHint == SWT.DEFAULT && heightHint == SWT.DEFAULT) {
-            return Geometry.copy(getPreferredSize());
-        }
-
-        // If the length and width are independent, compute the preferred size
-        // and adjust whatever dimension was supplied in the input
-        if (independentDimensions) {
-            Point result = Geometry.copy(getPreferredSize());
-
-            if (widthHint != SWT.DEFAULT) {
-                result.x = widthHint + widthAdjustment;
-            }
-
-            if (heightHint != SWT.DEFAULT) {
-                result.y = heightHint + heightAdjustment;
-            }
-
-            return result;
-        }
-
-        // Computing a height
-        if (heightHint == SWT.DEFAULT) {
-            // If we know the control's preferred size
-            if (preferredSize != null) {
-                // If the given width is the preferred width, then return the preferred size
-                if (widthHint + widthAdjustment == preferredSize.x) {
-                    return Geometry.copy(preferredSize);
-                }
-            }
-
-            // If we have a cached height measurement
-            if (cachedHeightQuery != -1) {
-                // If this was measured with the same width hint
-                if (cachedHeightQuery == widthHint) {
-                    return new Point(widthHint + widthAdjustment, cachedHeightResult);
-                }
-            }
-
-            // If this is a control where any hint larger than the
-            // preferred width results in the minimum height, determine if
-            // we can compute the result based on the preferred height
-            if (preferredWidthOrLargerIsMinimumHeight) {
-                // Computed the preferred size (if we don't already know it)
-                getPreferredSize();
-
-                // If the width hint is larger than the preferred width, then
-                // we can compute the result from the preferred width
-                if (widthHint + widthAdjustment >= preferredSize.x) {
-                    return new Point(widthHint + widthAdjustment, preferredSize.y);
-                }
-            }
-
-            // Else we can't find an existing size in the cache, so recompute
-            // it from scratch.
-            Point newHeight = controlComputeSize(widthHint - widthAdjustment, SWT.DEFAULT);
-
-            cachedHeightQuery = heightHint;
-            cachedHeightResult = newHeight.y;
-            
-            return newHeight;
-        }
-
-        // Computing a width
-        if (widthHint == SWT.DEFAULT) {
-            // If we know the control's preferred size
-            if (preferredSize != null) {
-                // If the given height is the preferred height, then return the preferred size
-                if (heightHint + heightAdjustment == preferredSize.y) {
-                    return Geometry.copy(preferredSize);
-                }
-            }
-
-            // If we have a cached width measurement with the same height hint
-            if (cachedWidthQuery == heightHint) {
-                return new Point(cachedWidthResult, heightHint + heightAdjustment);
-            }
-
-            Point widthResult = controlComputeSize(SWT.DEFAULT, heightHint - heightAdjustment);
-
-            cachedWidthQuery = heightHint;
-            cachedWidthResult = widthResult.x;
-            
-            return widthResult;
-        }
-
-        return controlComputeSize(widthHint, heightHint);
-    }
-    
-    /**
-     * Compute the control's size, and ensure that non-default hints are returned verbatim
-     * (this tries to compensate for SWT's hints, which aren't really the outer width of the
-     * control).
-     * 
-     * @param widthHint the horizontal hint
-     * @param heightHint the vertical hint
-     * @return the control's size
-     */
-    public Point computeAdjustedSize(int widthHint, int heightHint) {
-        int adjustedWidthHint = widthHint == SWT.DEFAULT ? SWT.DEFAULT : Math
-                .max(0, widthHint - widthAdjustment);
-        int adjustedHeightHint = heightHint == SWT.DEFAULT ? SWT.DEFAULT : Math
-                .max(0, heightHint - heightAdjustment);
-
-        Point result = computeSize(adjustedWidthHint, adjustedHeightHint);
-
-        // If the amounts we subtracted off the widthHint and heightHint didn't do the trick, then
-        // manually adjust the result to ensure that a non-default hint will return that result verbatim.
-        
-        return result;
-    }
-
-    /**
-     * Returns true if the preferred length of the given control is 
-     * independent of the width and visa-versa. If this returns true,
-     * then changing the widthHint argument to control.computeSize will
-     * never change the resulting height and changing the heightHint
-     * will never change the resulting width. Returns false if unknown.
-     * <p>
-     * This information can be used to improve caching. Incorrectly returning
-     * a value of false may decrease performance, but incorrectly returning 
-     * a value of true will generate incorrect layouts... so always return
-     * false if unsure.
-     * </p>
-     * 
-     * @param control
-     * @return
-     */
-    static boolean independentLengthAndWidth(Control control) {
-        if (control == null || control.isDisposed()) {
-            return true;
-        }
-
-        if (control instanceof Button || control instanceof ProgressBar
-                || control instanceof Sash || control instanceof Scale
-                || control instanceof Slider || control instanceof List
-                || control instanceof Combo || control instanceof Tree) {
-            return true;
-        }
-
-        if (control instanceof Label || control instanceof Text) {
-            return (control.getStyle() & SWT.WRAP) == 0;
-        }
-
-        // Unless we're certain that the control has this property, we should
-        // return false.
-
-        return false;
-    }
-    
-    /**
-     * Try to figure out how much we need to subtract from the hints that we
-     * pass into the given control's computeSize(...) method. This tries to
-     * compensate for bug 46112. To be removed once SWT provides an "official"
-     * way to compute one dimension of a control's size given the other known
-     * dimension.
-     * 
-     * @param control
-     */
-    private void computeHintOffset(Control control) {
-        if (control instanceof Scrollable) {
-            // For scrollables, subtract off the trim size
-            Scrollable scrollable = (Scrollable) control;
-            Rectangle trim = scrollable.computeTrim(0, 0, 0, 0);
-
-            widthAdjustment = trim.width;
-            heightAdjustment = trim.height;
-        } else {
-            // For non-composites, subtract off 2 * the border size
-            widthAdjustment = control.getBorderWidth() * 2;
-            heightAdjustment = widthAdjustment;
-        }
-    }
-
-    private Point controlComputeSize(int widthHint, int heightHint) {
-        Point result = control.computeSize(widthHint, heightHint, flushChildren);
-        flushChildren = false;
-        
-        return result;
-    }
-
-    /**
-     * Returns true only if the control will return a constant height for any
-     * width hint larger than the preferred width. Returns false if there is
-     * any situation in which the control does not have this property.
-     * 
-     * <p>
-     * Note: this method is only important for wrapping controls, and it can
-     * safely return false for anything else. AFAIK, all SWT controls have this
-     * property, but to be safe they will only be added to the list once the
-     * property has been confirmed.
-     * </p> 
-     * 
-     * @param control
-     * @return
-     */
-    private static boolean isPreferredWidthMaximum(Control control) {
-        return (control instanceof ToolBar
-        //|| control instanceof CoolBar
-        || control instanceof Label);
-    }
-    
-    public int computeMinimumWidth() {
-        if (minimumWidth == -1) {
-    		if (control instanceof Composite) {
-    			Layout layout = ((Composite)control).getLayout();
-    			if (layout instanceof ILayoutExtension) {
-    				minimumWidth = ((ILayoutExtension)layout).computeMinimumWidth((Composite)control, flushChildren);
-    				flushChildren = false;
-    			}
-    		}
-        }
-
-        if (minimumWidth == -1) {
-            Point minWidth = controlComputeSize(FormUtil.getWidthHint(5, control), SWT.DEFAULT); 
-            minimumWidth = minWidth.x;
-            heightAtMinimumWidth = minWidth.y;
-        }
-		
-		return minimumWidth;
-    }
-    
-    public int computeMaximumWidth() {
-        if (maximumWidth == -1) {
-    		if (control instanceof Composite) {
-    			Layout layout = ((Composite)control).getLayout();
-    			if (layout instanceof ILayoutExtension) {
-    				maximumWidth = ((ILayoutExtension)layout).computeMaximumWidth((Composite)control, flushChildren);
-    				flushChildren = false;
-    			}
-    		}
-        }
-
-        if (maximumWidth == -1) {
-            maximumWidth = getPreferredSize().x;
-        }
-		
-        return maximumWidth;
-	}
-    
-    private int computeHeightAtMinimumWidth() {
-        int minimumWidth = computeMinimumWidth();
-        
-        if (heightAtMinimumWidth == -1) {
-            heightAtMinimumWidth = controlComputeSize(minimumWidth - widthAdjustment, SWT.DEFAULT).y;
-        }
-        
-        return heightAtMinimumWidth;
-    }
-    
-    private int computeWidthAtMinimumHeight() {
-        int minimumHeight = computeMinimumHeight();
-        
-        if (widthAtMinimumHeight == -1) {
-            widthAtMinimumHeight = controlComputeSize(SWT.DEFAULT, minimumHeight - heightAdjustment).x;
-        }
-        
-        return widthAtMinimumHeight;
-    }
-
-    private int computeMinimumHeight() {
-        if (minimumHeight == -1) {
-            Point sizeAtMinHeight = controlComputeSize(SWT.DEFAULT, 0);
-            
-            minimumHeight = sizeAtMinHeight.y;
-            widthAtMinimumHeight = sizeAtMinHeight.x;
-        }
-        
-        return minimumHeight;
-    }
-    
-    public Point computeMinimumSize() {
-        return new Point(computeMinimumWidth(), computeMinimumHeight());
-    }
-
-    public void setSize(Point newSize) {
-        if (control != null) {
-            control.setSize(newSize);
-        }
-        
-        layoutIfNecessary();
-    }
-    
-    public void setSize(int width, int height) {
-        if (control != null) {
-            control.setSize(width, height);
-        }
-        
-        layoutIfNecessary();        
-    }
-    
-    public void setBounds(int x, int y, int width, int height) {
-        if (control != null) {
-            control.setBounds(x, y, width, height);
-        }
-        
-        layoutIfNecessary();        
-    }
-    
-    public void setBounds(Rectangle bounds) {
-        if (control != null) {
-            control.setBounds(bounds);
-        }
-        
-        layoutIfNecessary();
-    }
-
-    public void layoutIfNecessary() {
-        if (dirtySize != null && control != null && control instanceof Composite) {
-            if (control.getSize().equals(dirtySize)) {
-	            ((Composite)control).layout(flushChildren);
-	            flushChildren = false;
-            }
-        }
-        dirtySize = null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java
deleted file mode 100644
index eb8121e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapData.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * Layout data used in conjunction with <code>TableWrapLayout</code>.
- * Children in a composite that uses this layout should call <samp>setLayoutData
- * </samp> and pass an instance of this class to control physical placement in
- * the parent.
- * 
- * @see TableWrapLayout
- * @since 3.0
- */
-public final class TableWrapData {
-	/**
-	 * The control will be left-justified.
-	 */
-	public static final int LEFT = 1 << 1;
-
-	/**
-	 * The control will be centered horizontally.
-	 */
-	public static final int CENTER = 1 << 2;
-
-	/**
-	 * The control will be right-justified.
-	 */
-	public static final int RIGHT = 1 << 3;
-
-	/**
-	 * The control will be aligned with the top of the cell.
-	 */
-	public static final int TOP = 1 << 4;
-
-	/**
-	 * The control will be centered vertically.
-	 */
-	public static final int MIDDLE = 1 << 5;
-
-	/**
-	 * The control will be aligned with the bottom of the cell.
-	 */
-	public static final int BOTTOM = 1 << 6;
-
-	/**
-	 * The control will have the same width as the column it occupies.
-	 */
-	public static final int FILL = 1 << 7;
-
-	/**
-	 * In addition to filling width or height, the control will take part in
-	 * allocation of any excess space. Note that this constant can only be
-	 * passed to the constructor (cannot be directly assigned to
-	 * <code>align</code> variable).
-	 */
-	public static final int FILL_GRAB = 1 << 8;
-
-	/**
-	 * Number of columns to span (default is 1).
-	 */
-	public int colspan = 1;
-
-	/**
-	 * Number of rows to span (default is 1).
-	 */
-	public int rowspan = 1;
-
-	/**
-	 * Horizontal alignment (LEFT, CENTER, RIGHT or FILL; default is LEFT).
-	 */
-	public int align = LEFT;
-
-	/**
-	 * Vertical alignment (TOP, MIDDLE, BOTTOM or FILL; default is TOP).
-	 */
-	public int valign = TOP;
-
-	/**
-	 * Horizontal indent (default is 0).
-	 */
-	public int indent = 0;
-
-	/**
-	 * Maximum width of the control (default is SWT.DEFAULT).
-	 */
-	public int maxWidth = SWT.DEFAULT;
-
-	/**
-	 * Maximum height of the control (default is SWT.DEFAULT).
-	 */
-	public int maxHeight = SWT.DEFAULT;
-
-	/**
-	 * Height hint of the control (default is SWT.DEFAULT).
-	 */
-	public int heightHint = SWT.DEFAULT;
-
-	/**
-	 * If <code>true</code>, take part in excess horizontal space
-	 * distribution. (default is <code>false</code>).
-	 */
-	public boolean grabHorizontal;
-
-	/**
-	 * If <code>true</code>, will grab any excess vertical space (default is
-	 * <code>false</code>). Note that since TableWrapLayout works top-down
-	 * and does not grows to fill the parent, this only applies to local excess
-	 * space created by fixed-height children that span multiple rows.
-	 */
-	public boolean grabVertical;
-
-	int childIndex;
-
-	boolean isItemData = true;
-
-	int compWidth;
-
-	Point compSize;
-
-	/**
-	 * The default constructor.
-	 */
-	public TableWrapData() {
-	}
-
-	/**
-	 * The convenience constructor - allows passing the horizontal alignment
-	 * style.
-	 * 
-	 * @param align
-	 *            horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB).
-	 */
-	public TableWrapData(int align) {
-		this(align, TOP, 1, 1);
-	}
-
-	/**
-	 * The convenience constructor - allows passing the alignment styles.
-	 * 
-	 * @param align
-	 *            horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB).
-	 * @param valign
-	 *            vertical alignment (TOP, MIDDLE, BOTTOM, FILL or FILL_GRAB).
-	 */
-	public TableWrapData(int align, int valign) {
-		this(align, valign, 1, 1);
-	}
-
-	/**
-	 * The convenience constructor - allows passing the alignment styles, column
-	 * and row spans.
-	 * 
-	 * @param align
-	 *            horizontal alignment (LEFT, CENTER, RIGHT, FILL or FILL_GRAB).
-	 * @param valign
-	 *            vertical alignment (TOP, MIDDLE, BOTTOM, FILL or FILL_GRAB)
-	 * @param rowspan
-	 *            row span (1 or more)
-	 * @param colspan
-	 *            column span (1 or more)
-	 */
-	public TableWrapData(int align, int valign, int rowspan, int colspan) {
-		if (align != LEFT && align != CENTER && align != RIGHT && align != FILL
-				&& align != FILL_GRAB)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "align"); //$NON-NLS-1$
-		if (valign != TOP && valign != MIDDLE && valign != BOTTOM
-				&& valign != FILL && valign != FILL_GRAB)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "valign"); //$NON-NLS-1$
-		if (rowspan < 1)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "rowspan"); //$NON-NLS-1$
-		if (colspan < 1)
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, null, "colspan"); //$NON-NLS-1$
-		if (align == FILL_GRAB) {
-			this.align = FILL;
-			grabHorizontal = true;
-		} else
-			this.align = align;
-		if (valign == FILL_GRAB) {
-			this.valign = FILL;
-			grabVertical = true;
-		} else
-			this.valign = valign;
-		this.rowspan = rowspan;
-		this.colspan = colspan;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java
deleted file mode 100644
index 4ffaab1..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TableWrapLayout.java
+++ /dev/null
@@ -1,869 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2000, 2009 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms.widgets;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * This implementation of the layout algorithm attempts to position controls in
- * the composite using a two-pass autolayout HTML table altorithm recommeded by
- * HTML 4.01 W3C specification (see
- * http://www.w3.org/TR/html4/appendix/notes.html#h-B.5.2.2). The main
- * differences with GridLayout is that it has two passes and that width and
- * height are not calculated in the same pass.
- * <p>
- * The advantage of the algorithm over GridLayout is that it is capable of
- * flowing text controls capable of line wrap. These controls do not have
- * natural 'preferred size'. Instead, they are capable of providing the required
- * height if the width is set. Consequently, this algorithm first calculates the
- * widths that will be assigned to columns, and then passes those widths to the
- * controls to calculate the height. When a composite with this layout is a
- * child of the scrolling composite, they should interact in such a way that
- * reduction in the scrolling composite width results in the reflow and increase
- * of the overall height.
- * <p>
- * If none of the columns contain expandable and wrappable controls, the
- * end-result will be similar to the one provided by GridLayout. The difference
- * will show up for layouts that contain controls whose minimum and maximum
- * widths are not the same.
- * 
- * @see TableWrapData
- * @since 3.0
- */
-public final class TableWrapLayout extends Layout implements ILayoutExtension {
-	/**
-	 * Number of columns to use when positioning children (default is 1).
-	 */
-	public int numColumns = 1;
-
-	/**
-	 * Left margin variable (default is 5).
-	 */
-	public int leftMargin = 5;
-
-	/**
-	 * Right margin variable (default is 5).
-	 */
-	public int rightMargin = 5;
-
-	/**
-	 * Top margin variable (default is 5).
-	 */
-	public int topMargin = 5;
-
-	/**
-	 * Botom margin variable (default is 5).
-	 */
-	public int bottomMargin = 5;
-
-	/**
-	 * Horizontal spacing (default is 5).
-	 */
-	public int horizontalSpacing = 5;
-
-	/**
-	 * Vertical spacing (default is 5).
-	 */
-	public int verticalSpacing = 5;
-
-	/**
-	 * If set to <code>true</code>, all the columns will have the same width.
-	 * Otherwise, column widths will be computed based on controls in them and
-	 * their layout data (default is <code>false</code>).
-	 */
-	public boolean makeColumnsEqualWidth = false;
-
-	private boolean initialLayout = true;
-
-	private Vector grid = null;
-
-	private Hashtable rowspans;
-
-	private int[] minColumnWidths, maxColumnWidths;
-
-	private int widestColumnWidth;
-
-	private int[] growingColumns;
-
-	private int[] growingRows;
-
-	private LayoutCache cache = new LayoutCache();
-
-	private class RowSpan {
-		Control child;
-
-		int row;
-
-		int height;
-
-		int totalHeight;
-
-		public RowSpan(Control child, int column, int row) {
-			this.child = child;
-			this.row = row;
-		}
-
-		/*
-		 * Updates this row span's height with the given one if it is within
-		 * this span.
-		 */
-		public void update(int currentRow, int rowHeight) {
-			TableWrapData td = (TableWrapData) child.getLayoutData();
-			// is currentRow within this span?
-			if (currentRow >= row && currentRow < row + td.rowspan) {
-				totalHeight += rowHeight;
-				if (currentRow > row)
-					totalHeight += verticalSpacing;
-			}
-		}
-
-		public int getRequiredHeightIncrease() {
-			if (totalHeight < height)
-				return height - totalHeight;
-			return 0;
-		}
-	}
-
-	/**
-	 * Implements ILayoutExtension. Should not be called directly.
-	 * 
-	 * @see ILayoutExtension
-	 */
-	public int computeMinimumWidth(Composite parent, boolean changed) {
-
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-
-		cache.setControls(children);
-
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		if (minColumnWidths == null)
-			minColumnWidths = new int[numColumns];
-		for (int i = 0; i < numColumns; i++) {
-			minColumnWidths[i] = 0;
-		}
-		return internalGetMinimumWidth(parent, changed);
-	}
-
-	/**
-	 * Implements ILayoutExtension. Should not be called directly.
-	 * 
-	 * @see ILayoutExtension
-	 */
-	public int computeMaximumWidth(Composite parent, boolean changed) {
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-
-		cache.setControls(children);
-
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		if (maxColumnWidths == null)
-			maxColumnWidths = new int[numColumns];
-		for (int i = 0; i < numColumns; i++) {
-			maxColumnWidths[i] = 0;
-		}
-		return internalGetMaximumWidth(parent, changed);
-	}
-
-	/**
-	 * @see Layout#layout(Composite, boolean)
-	 */
-	protected void layout(Composite parent, boolean changed) {
-
-		Rectangle clientArea = parent.getClientArea();
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-
-		if (children.length == 0)
-			return;
-
-		cache.setControls(children);
-
-		int parentWidth = clientArea.width;
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		resetColumnWidths();
-		int minWidth = internalGetMinimumWidth(parent, changed);
-		int maxWidth = internalGetMaximumWidth(parent, changed);
-		int tableWidth = parentWidth;
-		int[] columnWidths;
-		if (parentWidth <= minWidth) {
-			tableWidth = minWidth;
-			if (makeColumnsEqualWidth) {
-				columnWidths = new int[numColumns];
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = widestColumnWidth;
-				}
-			} else
-				columnWidths = minColumnWidths;
-		} else if (parentWidth > maxWidth) {
-			if (growingColumns.length == 0) {
-				tableWidth = maxWidth;
-				columnWidths = maxColumnWidths;
-			} else {
-				columnWidths = new int[numColumns];
-				int colSpace = tableWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int extra = parentWidth - maxWidth;
-				int colExtra = extra / growingColumns.length;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = maxColumnWidths[i];
-					if (isGrowingColumn(i)) {
-						columnWidths[i] += colExtra;
-					}
-				}
-			}
-		} else {
-			columnWidths = new int[numColumns];
-			if (makeColumnsEqualWidth) {
-				int colSpace = tableWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int col = colSpace / numColumns;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = col;
-				}
-			} else {
-				columnWidths = assignExtraSpace(tableWidth, maxWidth, minWidth);
-			}
-		}
-		int y = topMargin+clientArea.y;
-		int[] rowHeights = computeRowHeights(children, columnWidths, changed);
-		for (int i = 0; i < grid.size(); i++) {
-			int rowHeight = rowHeights[i];
-			int x = leftMargin+clientArea.x;
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData) {
-					Control child = children[td.childIndex];
-					placeControl(child, td, x, y, rowHeights, i);
-				}
-				x += columnWidths[j];
-				if (j < numColumns - 1)
-					x += horizontalSpacing;
-			}
-			y += rowHeight + verticalSpacing;
-		}
-	}
-
-	int[] computeRowHeights(Control[] children, int[] columnWidths,
-			boolean changed) {
-		int[] rowHeights = new int[grid.size()];
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			rowHeights[i] = 0;
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false) {
-					continue;
-				}
-				Control child = children[td.childIndex];
-				int span = td.colspan;
-				int cwidth = 0;
-				for (int k = j; k < j + span; k++) {
-					cwidth += columnWidths[k];
-					if (k < j + span - 1)
-						cwidth += horizontalSpacing;
-				}
-				Point size = computeSize(td.childIndex, cwidth, td.indent, td.maxWidth, td.maxHeight);
-				td.compWidth = cwidth;
-				if (td.heightHint != SWT.DEFAULT) {
-					size = new Point(size.x, td.heightHint);
-				}
-				td.compSize = size;
-				RowSpan rowspan = (RowSpan) rowspans.get(child);
-				if (rowspan == null) {
-					rowHeights[i] = Math.max(rowHeights[i], size.y);
-				} else
-					rowspan.height = size.y;
-			}
-			updateRowSpans(i, rowHeights[i]);
-		}
-		for (Enumeration enm = rowspans.elements(); enm.hasMoreElements();) {
-			RowSpan rowspan = (RowSpan) enm.nextElement();
-			int increase = rowspan.getRequiredHeightIncrease();
-			if (increase == 0)
-				continue;
-			TableWrapData td = (TableWrapData) rowspan.child.getLayoutData();
-			int ngrowing = 0;
-			int[] affectedRows = new int[grid.size()];
-			for (int i = 0; i < growingRows.length; i++) {
-				int growingRow = growingRows[i];
-				if (growingRow >= rowspan.row
-						&& growingRow < rowspan.row + td.rowspan) {
-					affectedRows[ngrowing++] = growingRow;
-				}
-			}
-			if (ngrowing == 0) {
-				ngrowing = 1;
-				affectedRows[0] = rowspan.row + td.rowspan - 1;
-			}
-			increase += increase % ngrowing;
-			int perRowIncrease = increase / ngrowing;
-			for (int i = 0; i < ngrowing; i++) {
-				int growingRow = affectedRows[i];
-				rowHeights[growingRow] += perRowIncrease;
-			}
-		}
-		return rowHeights;
-	}
-
-	boolean isGrowingColumn(int col) {
-		if (growingColumns == null)
-			return false;
-		for (int i = 0; i < growingColumns.length; i++) {
-			if (col == growingColumns[i])
-				return true;
-		}
-		return false;
-	}
-
-	int[] assignExtraSpace(int tableWidth, int maxWidth, int minWidth) {
-		int fixedPart = leftMargin + rightMargin + (numColumns - 1)
-				* horizontalSpacing;
-		int D = maxWidth - minWidth;
-		int W = tableWidth - fixedPart - minWidth;
-		int widths[] = new int[numColumns];
-		int rem = 0;
-		for (int i = 0; i < numColumns; i++) {
-			int cmin = minColumnWidths[i];
-			int cmax = maxColumnWidths[i];
-			int d = cmax - cmin;
-			int extra = D != 0 ? (d * W) / D : 0;
-			if (i < numColumns - 1) {
-				widths[i] = cmin + extra;
-				rem += widths[i];
-			} else {
-				widths[i] = tableWidth - fixedPart - rem;
-			}
-		}
-		return widths;
-	}
-
-	Point computeSize(int childIndex, int width, int indent, int maxWidth, int maxHeight) {
-		int widthArg = width - indent;
-		SizeCache controlCache = cache.getCache(childIndex);
-		if (!isWrap(controlCache.getControl()))
-			widthArg = SWT.DEFAULT;
-		Point size = controlCache.computeSize(widthArg, SWT.DEFAULT);
-		if (maxWidth!=SWT.DEFAULT)
-			size.x = Math.min(size.x, maxWidth);
-		if (maxHeight!=SWT.DEFAULT)
-			size.y = Math.min(size.y, maxHeight);
-		size.x += indent;
-		return size;
-	}
-
-	void placeControl(Control control, TableWrapData td, int x, int y,
-			int[] rowHeights, int row) {
-		int xloc = x + td.indent;
-		int yloc = y;
-		int height = td.compSize.y;
-		int colWidth = td.compWidth - td.indent;
-		int width = td.compSize.x-td.indent;
-		width = Math.min(width, colWidth);
-		int slotHeight = rowHeights[row];
-		RowSpan rowspan = (RowSpan) rowspans.get(control);
-		if (rowspan != null) {
-			slotHeight = 0;
-			for (int i = row; i < row + td.rowspan; i++) {
-				if (i > row)
-					slotHeight += verticalSpacing;
-				slotHeight += rowHeights[i];
-			}
-		}
-		// align horizontally
-		if (td.align == TableWrapData.CENTER) {
-			xloc = x + colWidth / 2 - width / 2;
-		} else if (td.align == TableWrapData.RIGHT) {
-			xloc = x + colWidth - width;
-		} else if (td.align == TableWrapData.FILL) {
-			width = colWidth;
-		}
-		// align vertically
-		if (td.valign == TableWrapData.MIDDLE) {
-			yloc = y + slotHeight / 2 - height / 2;
-		} else if (td.valign == TableWrapData.BOTTOM) {
-			yloc = y + slotHeight - height;
-		} else if (td.valign == TableWrapData.FILL) {
-			height = slotHeight;
-		}
-		control.setBounds(xloc, yloc, width, height);
-	}
-
-	void createGrid(Composite composite) {
-		int row, column, rowFill, columnFill;
-		Control[] children;
-		TableWrapData spacerSpec;
-		Vector growingCols = new Vector();
-		Vector growingRows = new Vector();
-		rowspans = new Hashtable();
-		// 
-		children = composite.getChildren();
-		if (children.length == 0)
-			return;
-		// 
-		grid.addElement(createEmptyRow());
-		row = 0;
-		column = 0;
-		// Loop through the children and place their associated layout specs in
-		// the
-		// grid. Placement occurs left to right, top to bottom (i.e., by row).
-		for (int i = 0; i < children.length; i++) {
-			// Find the first available spot in the grid.
-			Control child = children[i];
-			TableWrapData spec = (TableWrapData) child.getLayoutData();
-			while (((TableWrapData[]) grid.elementAt(row))[column] != null) {
-				column = column + 1;
-				if (column >= numColumns) {
-					row = row + 1;
-					column = 0;
-					if (row >= grid.size()) {
-						grid.addElement(createEmptyRow());
-					}
-				}
-			}
-			// See if the place will support the widget's horizontal span. If
-			// not, go to the
-			// next row.
-			if (column + spec.colspan - 1 >= numColumns) {
-				grid.addElement(createEmptyRow());
-				row = row + 1;
-				column = 0;
-			}
-			// The vertical span for the item will be at least 1. If it is > 1,
-			// add other rows to the grid.
-			if (spec.rowspan > 1) {
-				rowspans.put(child, new RowSpan(child, column, row));
-			}
-			for (int j = 2; j <= spec.rowspan; j++) {
-				if (row + j > grid.size()) {
-					grid.addElement(createEmptyRow());
-				}
-			}
-			// Store the layout spec. Also cache the childIndex. NOTE: That we
-			// assume the children of a
-			// composite are maintained in the order in which they are created
-			// and added to the composite.
-			((TableWrapData[]) grid.elementAt(row))[column] = spec;
-			spec.childIndex = i;
-			if (spec.grabHorizontal) {
-				updateGrowingColumns(growingCols, spec, column);
-			}
-			if (spec.grabVertical) {
-				updateGrowingRows(growingRows, spec, row);
-			}
-			// Put spacers in the grid to account for the item's vertical and
-			// horizontal
-			// span.
-			rowFill = spec.rowspan - 1;
-			columnFill = spec.colspan - 1;
-			for (int r = 1; r <= rowFill; r++) {
-				for (int c = 0; c < spec.colspan; c++) {
-					spacerSpec = new TableWrapData();
-					spacerSpec.isItemData = false;
-					((TableWrapData[]) grid.elementAt(row + r))[column + c] = spacerSpec;
-				}
-			}
-			for (int c = 1; c <= columnFill; c++) {
-				for (int r = 0; r < spec.rowspan; r++) {
-					spacerSpec = new TableWrapData();
-					spacerSpec.isItemData = false;
-					((TableWrapData[]) grid.elementAt(row + r))[column + c] = spacerSpec;
-				}
-			}
-			column = column + spec.colspan - 1;
-		}
-		// Fill out empty grid cells with spacers.
-		for (int k = column + 1; k < numColumns; k++) {
-			spacerSpec = new TableWrapData();
-			spacerSpec.isItemData = false;
-			((TableWrapData[]) grid.elementAt(row))[k] = spacerSpec;
-		}
-		for (int k = row + 1; k < grid.size(); k++) {
-			spacerSpec = new TableWrapData();
-			spacerSpec.isItemData = false;
-			((TableWrapData[]) grid.elementAt(k))[column] = spacerSpec;
-		}
-		growingColumns = new int[growingCols.size()];
-		for (int i = 0; i < growingCols.size(); i++) {
-			growingColumns[i] = ((Integer) growingCols.get(i)).intValue();
-		}
-		this.growingRows = new int[growingRows.size()];
-		for (int i = 0; i < growingRows.size(); i++) {
-			this.growingRows[i] = ((Integer) growingRows.get(i)).intValue();
-		}
-	}
-
-	private void updateGrowingColumns(Vector growingColumns,
-			TableWrapData spec, int column) {
-		int affectedColumn = column + spec.colspan - 1;
-		for (int i = 0; i < growingColumns.size(); i++) {
-			Integer col = (Integer) growingColumns.get(i);
-			if (col.intValue() == affectedColumn)
-				return;
-		}
-		growingColumns.add(new Integer(affectedColumn));
-	}
-
-	private void updateGrowingRows(Vector growingRows, TableWrapData spec,
-			int row) {
-		int affectedRow = row + spec.rowspan - 1;
-		for (int i = 0; i < growingRows.size(); i++) {
-			Integer irow = (Integer) growingRows.get(i);
-			if (irow.intValue() == affectedRow)
-				return;
-		}
-		growingRows.add(new Integer(affectedRow));
-	}
-
-	private TableWrapData[] createEmptyRow() {
-		TableWrapData[] row = new TableWrapData[numColumns];
-		for (int i = 0; i < numColumns; i++)
-			row[i] = null;
-		return row;
-	}
-
-	/**
-	 * @see Layout#computeSize(Composite, int, int, boolean)
-	 */
-	protected Point computeSize(Composite parent, int wHint, int hHint,
-			boolean changed) {
-		Control[] children = parent.getChildren();
-		if (changed) {
-			cache.flush();
-		}
-		if (children.length == 0) {
-			return new Point(0, 0);
-		}
-		cache.setControls(children);
-
-		int parentWidth = wHint;
-		changed = true;
-		initializeIfNeeded(parent, changed);
-		if (initialLayout) {
-			changed = true;
-			initialLayout = false;
-		}
-		if (grid == null || changed) {
-			changed = true;
-			grid = new Vector();
-			createGrid(parent);
-		}
-		resetColumnWidths();
-		int minWidth = internalGetMinimumWidth(parent, changed);
-		int maxWidth = internalGetMaximumWidth(parent, changed);
-		
-		if (wHint == SWT.DEFAULT)
-			parentWidth = maxWidth;
-		
-		int tableWidth = parentWidth;
-		int[] columnWidths;
-		if (parentWidth <= minWidth) {
-			tableWidth = minWidth;
-			if (makeColumnsEqualWidth) {
-				columnWidths = new int[numColumns];
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = widestColumnWidth;
-				}
-			} else
-				columnWidths = minColumnWidths;
-		} else if (parentWidth >= maxWidth) {
-			if (makeColumnsEqualWidth) {
-				columnWidths = new int[numColumns];
-				int colSpace = parentWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int col = colSpace / numColumns;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = col;
-				}
-			} else {
-				tableWidth = maxWidth;
-				columnWidths = maxColumnWidths;
-			}
-		} else {
-			columnWidths = new int[numColumns];
-			if (makeColumnsEqualWidth) {
-				int colSpace = tableWidth - leftMargin - rightMargin;
-				colSpace -= (numColumns - 1) * horizontalSpacing;
-				int col = colSpace / numColumns;
-				for (int i = 0; i < numColumns; i++) {
-					columnWidths[i] = col;
-				}
-			} else {
-				columnWidths = assignExtraSpace(tableWidth, maxWidth, minWidth);
-			}
-		}
-		int totalHeight = 0;
-		int innerHeight = 0;
-		// compute widths
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			// assign widths, calculate heights
-			int rowHeight = 0;
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false) {
-					continue;
-				}
-				Control child = children[td.childIndex];
-				int span = td.colspan;
-				int cwidth = 0;
-				for (int k = j; k < j + span; k++) {
-					if (k > j)
-						cwidth += horizontalSpacing;
-					cwidth += columnWidths[k];
-				}
-				int cy = td.heightHint;
-				if (cy == SWT.DEFAULT) {
-					Point size = computeSize(td.childIndex, cwidth, td.indent, td.maxWidth, td.maxHeight);
-					cy = size.y;
-				}
-				RowSpan rowspan = (RowSpan) rowspans.get(child);
-				if (rowspan != null) {
-					// don't take the height of this child into acount
-					// because it spans multiple rows
-					rowspan.height = cy;
-				} else {
-					rowHeight = Math.max(rowHeight, cy);
-				}
-			}
-			updateRowSpans(i, rowHeight);
-			if (i > 0)
-				innerHeight += verticalSpacing;
-			innerHeight += rowHeight;
-		}
-		if (!rowspans.isEmpty())
-			innerHeight = compensateForRowSpans(innerHeight);
-		totalHeight = topMargin + innerHeight + bottomMargin;
-		return new Point(tableWidth, totalHeight);
-	}
-
-	private void updateRowSpans(int row, int rowHeight) {
-		if (rowspans == null || rowspans.size() == 0)
-			return;
-		for (Enumeration enm = rowspans.elements(); enm.hasMoreElements();) {
-			RowSpan rowspan = (RowSpan) enm.nextElement();
-			rowspan.update(row, rowHeight);
-		}
-	}
-
-	private int compensateForRowSpans(int totalHeight) {
-		for (Enumeration enm = rowspans.elements(); enm.hasMoreElements();) {
-			RowSpan rowspan = (RowSpan) enm.nextElement();
-			totalHeight += rowspan.getRequiredHeightIncrease();
-		}
-		return totalHeight;
-	}
-
-	int internalGetMinimumWidth(Composite parent, boolean changed) {
-		if (changed)
-			//calculateMinimumColumnWidths(parent, true);
-			calculateColumnWidths(parent, minColumnWidths, false, true);
-		int minimumWidth = 0;
-		widestColumnWidth = 0;
-		if (makeColumnsEqualWidth) {
-			for (int i = 0; i < numColumns; i++) {
-				widestColumnWidth = Math.max(widestColumnWidth,
-						minColumnWidths[i]);
-			}
-		}
-		for (int i = 0; i < numColumns; i++) {
-			if (i > 0)
-				minimumWidth += horizontalSpacing;
-			if (makeColumnsEqualWidth)
-				minimumWidth += widestColumnWidth;
-			else
-				minimumWidth += minColumnWidths[i];
-		}
-		// add margins
-		minimumWidth += leftMargin + rightMargin;
-		return minimumWidth;
-	}
-
-	int internalGetMaximumWidth(Composite parent, boolean changed) {
-		if (changed)
-			//calculateMaximumColumnWidths(parent, true);
-			calculateColumnWidths(parent, maxColumnWidths, true, true);
-		int maximumWidth = 0;
-		for (int i = 0; i < numColumns; i++) {
-			if (i > 0)
-				maximumWidth += horizontalSpacing;
-			maximumWidth += maxColumnWidths[i];
-		}
-		// add margins
-		maximumWidth += leftMargin + rightMargin;
-		return maximumWidth;
-	}
-
-	void resetColumnWidths() {
-		if (minColumnWidths == null)
-			minColumnWidths = new int[numColumns];
-		if (maxColumnWidths == null)
-			maxColumnWidths = new int[numColumns];
-		for (int i = 0; i < numColumns; i++) {
-			minColumnWidths[i] = 0;
-		}
-		for (int i = 0; i < numColumns; i++) {
-			maxColumnWidths[i] = 0;
-		}
-	}
-	
-	void calculateColumnWidths(Composite parent, int [] columnWidths, boolean max, boolean changed) {
-		boolean secondPassNeeded=false;
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false)
-					continue;
-				
-				if (td.colspan>1) {
-					// we will not do controls with multiple column span
-					// here - increment and continue
-					secondPassNeeded=true;
-					j+=td.colspan-1;
-					continue;
-				}
-
-				SizeCache childCache = cache.getCache(td.childIndex);
-				// !!
-				int width = max?childCache.computeMaximumWidth():childCache.computeMinimumWidth();
-				if (td.maxWidth!=SWT.DEFAULT)
-					width = Math.min(width, td.maxWidth);
-
-				width += td.indent;
-				columnWidths[j] = Math.max(columnWidths[j], width);
-			}
-		}
-		if (!secondPassNeeded) return;
-		
-		// Second pass for controls with multi-column horizontal span
-		for (int i = 0; i < grid.size(); i++) {
-			TableWrapData[] row = (TableWrapData[]) grid.elementAt(i);
-			for (int j = 0; j < numColumns; j++) {
-				TableWrapData td = row[j];
-				if (td.isItemData == false || td.colspan==1)
-					continue;
-
-				SizeCache childCache = cache.getCache(td.childIndex);
-				int width = max?childCache.computeMaximumWidth():childCache.computeMinimumWidth();
-				if (td.maxWidth!=SWT.DEFAULT)
-					width = Math.min(width, td.maxWidth);
-
-				width += td.indent;
-				// check if the current width is enough to
-				// support the control; if not, add the delta to
-				// the last column or to all the growing columns, if present
-				int current = 0;
-				for (int k = j; k < j + td.colspan; k++) {
-					if (k > j)
-						current += horizontalSpacing;
-					current += columnWidths[k];
-				}
-				if (width <= current) {
-					// we are ok - nothing to do here
-				} else {
-					int ndiv = 0;
-					if (growingColumns != null) {
-						for (int k = j; k < j + td.colspan; k++) {
-							if (isGrowingColumn(k)) {
-								ndiv++;
-							}
-						}
-					}
-					if (ndiv == 0) {
-						// add the delta to the last column
-						columnWidths[j + td.colspan - 1] += width
-								- current;
-					} else {
-						// distribute the delta to the growing
-						// columns
-						int percolumn = (width - current) / ndiv;
-						if ((width - current) % ndiv > 0)
-							percolumn++;
-						for (int k = j; k < j + td.colspan; k++) {
-							if (isGrowingColumn(k))
-								columnWidths[k] += percolumn;
-						}
-					}
-				}
-			}
-		}		
-	}	
-	
-	boolean isWrap(Control control) {
-		if (control instanceof Composite
-				&& ((Composite) control).getLayout() instanceof ILayoutExtension)
-			return true;
-		return (control.getStyle() & SWT.WRAP) != 0;
-	}	
-
-	private void initializeIfNeeded(Composite parent, boolean changed) {
-		if (changed)
-			initialLayout = true;
-		if (initialLayout) {
-			initializeLayoutData(parent);
-			initialLayout = false;
-		}
-	}
-
-	void initializeLayoutData(Composite composite) {
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			Control child = children[i];
-			if (child.getLayoutData() == null) {
-				child.setLayoutData(new TableWrapData());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java
deleted file mode 100644
index f1a5ac8..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/ToggleHyperlink.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.internal.forms.Messages;
-/**
- * A custom selectable control that can be used to control areas that can be
- * expanded or collapsed.
- * <p>
- * This is an abstract class. Subclasses are responsible for rendering the
- * control using decoration and hover decoration color. Control should be
- * rendered based on the current expansion state.
- * <p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>None</dd>
- * </dl>
- * 
- * @since 3.0
- */
-public abstract class ToggleHyperlink extends AbstractHyperlink {
-	protected int innerWidth;
-	protected int innerHeight;
-	protected boolean hover;
-	private boolean expanded;	
-	private Color decorationColor;
-	private Color hoverColor;
-	/**
-	 * Creates a control in a provided composite.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param style
-	 *            the style
-	 */
-	public ToggleHyperlink(Composite parent, int style) {
-		super(parent, style);
-		Listener listener = new Listener() {
-			public void handleEvent(Event e) {
-				switch (e.type) {
-					case SWT.MouseEnter:
-						hover=true;
-						redraw();
-						break;
-					case SWT.MouseExit:
-						hover = false;
-						redraw();
-						break;
-					case SWT.KeyDown:
-						onKeyDown(e);
-						break;
-				}
-			}
-		};
-		addListener(SWT.MouseEnter, listener);
-		addListener(SWT.MouseExit, listener);
-		addListener(SWT.KeyDown, listener);
-		addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				setExpanded(!isExpanded());
-			}
-		});
-		initAccessible();
-	}
-	/**
-	 * Sets the color of the decoration.
-	 * 
-	 * @param decorationColor
-	 */
-	public void setDecorationColor(Color decorationColor) {
-		this.decorationColor = decorationColor;
-	}
-	/**
-	 * Returns the color of the decoration.
-	 * 
-	 * @return decoration color
-	 */
-	public Color getDecorationColor() {
-		return decorationColor;
-	}
-	/**
-	 * Sets the hover color of decoration. Hover color will be used when mouse
-	 * enters the decoration area.
-	 * 
-	 * @param hoverColor
-	 *            the hover color to use
-	 */
-	public void setHoverDecorationColor(Color hoverColor) {
-		this.hoverColor = hoverColor;
-	}
-	/**
-	 * Returns the hover color of the decoration.
-	 * 
-	 * @return the hover color of the decoration.
-	 * @since 3.1
-	 */
-	public Color getHoverDecorationColor() {
-		return hoverColor;
-	}
-	
-	/**
-	 * Returns the hover color of the decoration.
-	 * 
-	 * @return the hover color of the decoration.
-	 * @deprecated use <code>getHoverDecorationColor</code>
-	 * @see #getHoverDecorationColor()
-	 */
-	public Color geHoverDecorationColor() {
-		return hoverColor;
-	}
-	/**
-	 * Computes the size of the control.
-	 * 
-	 * @param wHint
-	 *            width hint
-	 * @param hHint
-	 *            height hint
-	 * @param changed
-	 *            if true, flush any saved layout state
-	 */
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		int width, height;
-		/*
-		if (wHint != SWT.DEFAULT)
-			width = wHint;
-		else */
-			width = innerWidth + 2 * marginWidth;
-		/*
-		if (hHint != SWT.DEFAULT)
-			height = hHint;
-		else */
-			height = innerHeight + 2 * marginHeight;
-		return new Point(width, height);
-	}
-	/**
-	 * Returns the expansion state of the toggle control. When toggle is in the
-	 * normal (downward) state, the value is <samp>true </samp>. Collapsed
-	 * control will return <samp>false </samp>.
-	 * 
-	 * @return <samp>false </samp> if collapsed, <samp>true </samp> otherwise.
-	 */
-	public boolean isExpanded() {
-		return expanded;
-	}
-	/**
-	 * Sets the expansion state of the twistie control
-	 * 
-	 * @param expanded the expansion state
-	 */
-	public void setExpanded(boolean expanded) {
-		this.expanded = expanded;
-		redraw();
-	}
-	private void initAccessible() {
-		getAccessible().addAccessibleListener(new AccessibleAdapter() {
-			public void getHelp(AccessibleEvent e) {
-				e.result = getToolTipText();
-			}
-			public void getName(AccessibleEvent e) {
-				e.result = Messages.ToggleHyperlink_accessibleName;
-			}
-			public void getDescription(AccessibleEvent e) {
-				getName(e);
-			}
-		});
-		getAccessible().addAccessibleControlListener(
-				new AccessibleControlAdapter() {
-					public void getChildAtPoint(AccessibleControlEvent e) {
-						Point testPoint = toControl(new Point(e.x, e.y));
-						if (getBounds().contains(testPoint)) {
-							e.childID = ACC.CHILDID_SELF;
-						}
-					}
-					public void getLocation(AccessibleControlEvent e) {
-						Rectangle location = getBounds();
-						Point pt = 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 getSelection (AccessibleControlEvent e) {
-						if (ToggleHyperlink.this.getSelection()) 
-							e.childID = ACC.CHILDID_SELF;
-					}
-					
-					public void getFocus (AccessibleControlEvent e) {
-						if (ToggleHyperlink.this.getSelection()) 
-							e.childID = ACC.CHILDID_SELF;
-					}					
-					public void getChildCount(AccessibleControlEvent e) {
-						e.detail = 0;
-					}
-					public void getRole(AccessibleControlEvent e) {
-						e.detail = ACC.ROLE_TREE;
-					}
-					public void getState(AccessibleControlEvent e) {
-						e.detail = ToggleHyperlink.this.isExpanded()
-								? ACC.STATE_EXPANDED
-								: ACC.STATE_COLLAPSED;
-					}
-					public void getValue(AccessibleControlEvent e) {
-						if (e.childID == ACC.CHILDID_SELF) {
-							String name = Messages.ToggleHyperlink_accessibleName;
-							if (getParent() instanceof ExpandableComposite) {
-								name = Messages.ToggleHyperlink_accessibleColumn+((ExpandableComposite)getParent()).getText();
-								int index = name.indexOf('&');
-								if (index != -1) {
-									name = name.substring(0, index) + name.substring(index + 1);
-								}
-							}
-							e.result = name;
-						}
-					}
-				});
-	}
-	// set bogus childIDs on link activation to ensure state is read on expand/collapse
-	void triggerAccessible() {
-		getAccessible().setFocus(getAccessibleChildID());
-	}
-	private int getAccessibleChildID() {
-		return ToggleHyperlink.this.isExpanded() ? 1 : 2;
-	}
-	
-	private void onKeyDown(Event e) {
-		if (e.keyCode==SWT.ARROW_RIGHT) {
-			// expand if collapsed
-			if (!isExpanded()) {
-				handleActivate(e);
-			}
-			e.doit=false;
-		}
-		else if (e.keyCode==SWT.ARROW_LEFT) {
-			// collapse if expanded
-			if (isExpanded()) {
-				handleActivate(e);
-			}
-			e.doit=false;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java
deleted file mode 100644
index b3081ef..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/TreeNode.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2000, 2008 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms.widgets;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Composite;
-/**
- * A custom selectable control that can be used to control areas that can be
- * expanded or collapsed. The control control can be toggled between selected
- * and deselected state with a mouse or by pressing 'Enter' while the control
- * has focus.
- * <p>
- * The control is rendered as box with a '+' or '-' sign, depending on the
- * expansion state. Focus indication is rendered around the box when the
- * control has keyboard focus.
- * <p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>None</dd>
- * </dl>
- * 
- * @see Twistie
- * @since 3.0
- */
-public class TreeNode extends ToggleHyperlink {
-	/**
-	 * Creates a control in a provided composite.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param style
-	 *            the style
-	 */
-	public TreeNode(Composite parent, int style) {
-		super(parent, style);
-		innerWidth = 10;
-		innerHeight = 10;
-	}
-	protected void paint(PaintEvent e) {
-		paintHyperlink(e.gc);
-	}
-	protected void paintHyperlink(GC gc) {
-		Rectangle box = getBoxBounds(gc);
-		gc.setForeground(getDisplay().getSystemColor(
-				SWT.COLOR_WIDGET_NORMAL_SHADOW));
-		gc.drawRectangle(box);
-		gc.setForeground(getForeground());
-		gc.drawLine(box.x + 2, box.y + 4, box.x + 6, box.y + 4);
-		if (!isExpanded()) {
-			gc.drawLine(box.x + 4, box.y + 2, box.x + 4, box.y + 6);
-		}
-		if (paintFocus && getSelection()) {
-			gc.setForeground(getForeground());
-			gc.drawFocus(box.x - 1, box.y - 1, box.width + 3, box.height + 3);
-		}
-	}
-	private Rectangle getBoxBounds(GC gc) {
-		int x = 1;
-		int y = 0;
-		gc.setFont(getFont());
-		//int height = gc.getFontMetrics().getHeight();
-		//y = height / 2 - 4;
-		//y = Math.max(y, 0);
-		y = 2;
-		return new Rectangle(x, y, 8, 8);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java
deleted file mode 100644
index 1eda03b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/Twistie.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2000, 2008 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A custom selectable control that can be used to control areas that can be
- * expanded or collapsed. The control control can be toggled between selected
- * and deselected state with a mouse or by pressing 'Enter' while the control
- * has focus.
- * <p>
- * The control is rendered as a triangle that points to the right in the
- * collapsed and down in the expanded state. Triangle color can be changed.
- * <p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>None</dd>
- * </dl>
- * 
- * @see TreeNode
- * @since 3.0
- */
-public class Twistie extends ToggleHyperlink {
-	private static final int[] onPoints = { 0, 2, 8, 2, 4, 6 };
-
-	private static final int[] offPoints = { 2, -1, 2, 8, 6, 4 };
-
-	/**
-	 * Creates a control in a provided composite.
-	 * 
-	 * @param parent
-	 *            the parent
-	 * @param style
-	 *            the style
-	 */
-	public Twistie(Composite parent, int style) {
-		super(parent, style);
-		innerWidth = 9;
-		innerHeight = 9;
-	}
-
-	/*
-	 * @see SelectableControl#paint(GC)
-	 */
-	protected void paintHyperlink(GC gc) {
-		Color bg;
-		if (!isEnabled())
-			bg = getDisplay().getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-		else if (hover && getHoverDecorationColor() != null)
-			bg = getHoverDecorationColor();
-		else if (getDecorationColor() != null)
-			bg = getDecorationColor();
-		else
-			bg = getForeground();
-		gc.setBackground(bg);
-		int[] data;
-		Point size = getSize();
-		int x = (size.x - 9) / 2;
-		int y = (size.y - 9) / 2;
-		if (isExpanded())
-			data = translate(onPoints, x, y);
-		else
-			data = translate(offPoints, x, y);
-		gc.fillPolygon(data);
-		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 += 2) {
-			target[i] = data[i] + x;
-		}
-		for (int i = 1; i < data.length; i += 2) {
-			target[i] = data[i] + y;
-		}
-		return target;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Control#setEnabled(boolean)
-	 */
-	public void setEnabled(boolean enabled) {
-		super.setEnabled(enabled);
-		redraw();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/package.html b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/package.html
deleted file mode 100644
index 2ec1b59..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/forms/widgets/package.html
+++ /dev/null
@@ -1,13 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Custom widgets and controls for forms-based parts.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/FormsPlugin.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/FormsPlugin.java
deleted file mode 100644
index 7fdaec6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/FormsPlugin.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import org.eclipse.ui.internal.forms.widgets.FormsResources;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-public class FormsPlugin extends AbstractUIPlugin {
-
-	public FormsPlugin() {
-	}
-	
-	public void stop(BundleContext context) throws Exception {
-		try {
-			FormsResources.shutdown();
-		} finally {
-			super.stop(context);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/IMessageToolTipManager.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/IMessageToolTipManager.java
deleted file mode 100644
index 95ab2f3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/IMessageToolTipManager.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.widgets.Form;
-
-/**
- * The classes that implement this interface are responsible for managing custom
- * tool tips for message-related controls in the form header. By default, a
- * simple manager is installed by the form that uses the built-in widget tool
- * tips for this purpose. Clients can replace this behaviour with richer tool
- * tips that show images, links and other content.
- * <p>
- * The message-related controls in the header are:
- * <ul>
- * <li>Image label - used to replace the form title image with the message type
- * image</li>
- * <li>Message label - renders the message as a static text.</li>
- * <li>Message hyperlink - renders the message as a hyperlink.</li>
- * </ul>
- * The message manager will be asked to create the tool tip for any and all of
- * the controls listed above in its factory method. After that, it will be asked
- * to update whenever the message information changes in the form. For this
- * reason, the manager is expected to retain references to the tool tips and
- * update them with new content when asked.
- * 
- * @see IMessageManager
- * @see Form
- *      <p>
- *      <strong>EXPERIMENTAL</strong>. This class or interface has been added
- *      as part of a work in progress. There is no guarantee that this API will
- *      work or that it will remain the same. Please do not use this API without
- *      consulting with the Platform UA team.
- *      </p>
- * @since 3.3
- */
-public interface IMessageToolTipManager {
-	/**
-	 * Creates the custom tool tip for the provided control.
-	 * 
-	 * @param control
-	 *            the control for which to create a custom tool tip
-	 * @param imageControl
-	 *            <code>true</code> if the control is used to render the title
-	 *            image, <code>false</code> otherwise.
-	 */
-	void createToolTip(Control control, boolean imageControl);
-
-	/**
-	 * Updates all the managed tool tips. The manager should get the current
-	 * message, message type and optional children messages from the form to
-	 * update the custom tool tips.
-	 */
-	void update();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java
deleted file mode 100644
index bcafee7..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/MessageManager.java
+++ /dev/null
@@ -1,706 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Benjamin Cabe (benjamin.cabe@anyware-tech.com) - patch (see Bugzilla #255466) 
- ******************************************************************************/
-
-package org.eclipse.ui.internal.forms;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Map.Entry;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.IMessagePrefixProvider;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * @see IMessageManager
- */
-
-public class MessageManager implements IMessageManager {
-	private static final DefaultPrefixProvider DEFAULT_PREFIX_PROVIDER = new DefaultPrefixProvider();
-	private ArrayList messages = new ArrayList();
-	private ArrayList oldMessages;
-	private Hashtable decorators = new Hashtable();
-	private Hashtable oldDecorators;
-	private boolean autoUpdate = true;
-	private Form form;
-	private IMessagePrefixProvider prefixProvider = DEFAULT_PREFIX_PROVIDER;
-	private int decorationPosition = SWT.LEFT | SWT.BOTTOM;
-	private static FieldDecoration standardError = FieldDecorationRegistry
-			.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
-	private static FieldDecoration standardWarning = FieldDecorationRegistry
-			.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_WARNING);
-	private static FieldDecoration standardInformation = FieldDecorationRegistry
-	.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION);
-
-	private static final String[] SINGLE_MESSAGE_SUMMARY_KEYS = {
-			Messages.MessageManager_sMessageSummary,
-			Messages.MessageManager_sMessageSummary,
-			Messages.MessageManager_sWarningSummary,
-			Messages.MessageManager_sErrorSummary };
-
-	private static final String[] MULTIPLE_MESSAGE_SUMMARY_KEYS = {
-			Messages.MessageManager_pMessageSummary,
-			Messages.MessageManager_pMessageSummary,
-			Messages.MessageManager_pWarningSummary,
-			Messages.MessageManager_pErrorSummary };
-
-	static class Message implements IMessage {
-		Control control;
-		Object data;
-		Object key;
-		String message;
-		int type;
-		String prefix;
-
-		Message(Object key, String message, int type, Object data) {
-			this.key = key;
-			this.message = message;
-			this.type = type;
-			this.data = data;
-		}
-		
-		private Message(Message message) {
-			this.key = message.key;
-			this.message = message.message;
-			this.type = message.type;
-			this.data = message.data;
-			this.prefix = message.prefix;
-			this.control = message.control;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IMessage#getKey()
-		 */
-		public Object getKey() {
-			return key;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessage()
-		 */
-		public String getMessage() {
-			return message;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IMessageProvider#getMessageType()
-		 */
-		public int getMessageType() {
-			return type;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.messages.IMessage#getControl()
-		 */
-		public Control getControl() {
-			return control;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.messages.IMessage#getData()
-		 */
-		public Object getData() {
-			return data;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.messages.IMessage#getPrefix()
-		 */
-		public String getPrefix() {
-			return prefix;
-		}
-		
-		public boolean equals(Object obj) {
-			if (!(obj instanceof Message))
-				return false;
-			Message msg = (Message) obj;
-			return (msg.getPrefix() == null ? getPrefix() == null : msg.getPrefix().equals(getPrefix())) &&
-					(msg.getControl() == null ? getControl() == null : msg.getControl().equals(getControl())) &&
-					(msg.getMessageType() == getMessageType()) &&
-					(msg.getMessage() == null ? getMessage() == null : msg.getMessage().equals(getMessage())) &&
-					msg.getKey().equals(getKey());
-		}
-	}
-
-	static class DefaultPrefixProvider implements IMessagePrefixProvider {
-
-		public String getPrefix(Control c) {
-			Composite parent = c.getParent();
-			Control[] siblings = parent.getChildren();
-			for (int i = 0; i < siblings.length; i++) {
-				if (siblings[i] == c) {
-					// this is us - go backward until you hit
-					// a label-like widget
-					for (int j = i - 1; j >= 0; j--) {
-						Control label = siblings[j];
-						String ltext = null;
-						if (label instanceof Label) {
-							ltext = ((Label) label).getText();
-						} else if (label instanceof Hyperlink) {
-							ltext = ((Hyperlink) label).getText();
-						} else if (label instanceof CLabel) {
-							ltext = ((CLabel) label).getText();
-						}
-						if (ltext != null) {
-							if (!ltext.endsWith(":")) //$NON-NLS-1$
-								return ltext + ": "; //$NON-NLS-1$
-							return ltext + " "; //$NON-NLS-1$
-						}
-					}
-					break;
-				}
-			}
-			return null;
-		}
-	}
-
-	class ControlDecorator {
-		private ControlDecoration decoration;
-		private ArrayList controlMessages = new ArrayList();
-		private String prefix;
-
-		ControlDecorator(Control control) {
-			this.decoration = new ControlDecoration(control, decorationPosition, form.getBody());
-		}
-		
-		private ControlDecorator (ControlDecorator cd) {
-			this.decoration = cd.decoration;
-			this.prefix = cd.prefix;
-			for (Iterator i = cd.controlMessages.iterator(); i.hasNext();)
-				this.controlMessages.add(new Message((Message)i.next()));
-		}
-
-		public boolean isDisposed() {
-			return decoration.getControl() == null;
-		}
-
-		void updatePrefix() {
-			prefix = null;
-		}
-
-		void updatePosition() {
-			Control control = decoration.getControl();
-			decoration.dispose();
-			this.decoration = new ControlDecoration(control, decorationPosition, form.getBody());
-			update();
-		}
-
-		String getPrefix() {
-			if (prefix == null)
-				createPrefix();
-			return prefix;
-		}
-
-		private void createPrefix() {
-			if (prefixProvider == null) {
-				prefix = ""; //$NON-NLS-1$
-				return;
-			}
-			prefix = prefixProvider.getPrefix(decoration.getControl());
-			if (prefix == null)
-				// make a prefix anyway
-				prefix = ""; //$NON-NLS-1$
-		}
-
-		void addAll(ArrayList target) {
-			target.addAll(controlMessages);
-		}
-
-		void addMessage(Object key, String text, Object data, int type) {
-			Message message = MessageManager.this.addMessage(getPrefix(), key,
-					text, data, type, controlMessages);
-			message.control = decoration.getControl();
-			if (isAutoUpdate())
-				update();
-		}
-
-		boolean removeMessage(Object key) {
-			Message message = findMessage(key, controlMessages);
-			if (message != null) {
-				controlMessages.remove(message);
-				if (isAutoUpdate())
-					update();
-			}
-			return message != null;
-		}
-
-		boolean removeMessages() {
-			if (controlMessages.isEmpty())
-				return false;
-			controlMessages.clear();
-			if (isAutoUpdate())
-				update();
-			return true;
-		}
-
-		public void update() {
-			if (controlMessages.isEmpty()) {
-				decoration.setDescriptionText(null);
-				decoration.hide();
-			} else {
-				ArrayList peers = createPeers(controlMessages);
-				int type = ((IMessage) peers.get(0)).getMessageType();
-				String description = createDetails(createPeers(peers), true);
-				if (type == IMessageProvider.ERROR)
-					decoration.setImage(standardError.getImage());
-				else if (type == IMessageProvider.WARNING)
-					decoration.setImage(standardWarning.getImage());
-				else if (type == IMessageProvider.INFORMATION)
-					decoration.setImage(standardInformation.getImage());
-				decoration.setDescriptionText(description);
-				decoration.show();
-			}
-		}
-		
-		public boolean equals(Object obj) {
-			if (!(obj instanceof ControlDecorator))
-				return false;
-			ControlDecorator cd = (ControlDecorator) obj;
-			if (!cd.decoration.equals(decoration))
-				return false;
-			return cd.getPrefix().equals(getPrefix());
-		}
-		
-		boolean hasSameMessages(ControlDecorator cd) {
-			if (cd.controlMessages.size() != controlMessages.size())
-				return false;
-			if (!cd.controlMessages.containsAll(controlMessages))
-				return false;
-			return true;
-		}
-	}
-
-	/**
-	 * Creates a new instance of the message manager that will work with the
-	 * provided form.
-	 * 
-	 * @param scrolledForm
-	 *            the form to control
-	 */
-	public MessageManager(ScrolledForm scrolledForm) {
-		this.form = scrolledForm.getForm();
-	}
-
-	/**
-	 * Creates a new instance of the message manager that will work with the
-	 * provided form.
-	 * 
-	 * @param form
-	 *            the form to control
-	 * @since org.eclipse.ui.forms 3.4
-	 */
-	public MessageManager(Form form) {
-		this.form = form;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#addMessage(java.lang.Object,
-	 *      java.lang.String, int)
-	 */
-	public void addMessage(Object key, String messageText, Object data, int type) {
-		addMessage(null, key, messageText, data, type, messages);
-		if (isAutoUpdate())
-			updateForm();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#addMessage(java.lang.Object,
-	 *      java.lang.String, int, org.eclipse.swt.widgets.Control)
-	 */
-	public void addMessage(Object key, String messageText, Object data,
-			int type, Control control) {
-		ControlDecorator dec = (ControlDecorator) decorators.get(control);
-
-		if (dec == null) {
-			dec = new ControlDecorator(control);
-			decorators.put(control, dec);
-		}
-		dec.addMessage(key, messageText, data, type);
-		if (isAutoUpdate())
-			updateForm();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessage(java.lang.Object)
-	 */
-	public void removeMessage(Object key) {
-		Message message = findMessage(key, messages);
-		if (message != null) {
-			messages.remove(message);
-			if (isAutoUpdate())
-				updateForm();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessages()
-	 */
-	public void removeMessages() {
-		if (!messages.isEmpty()) {
-			messages.clear();
-			if (isAutoUpdate())
-				updateForm();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessage(java.lang.Object,
-	 *      org.eclipse.swt.widgets.Control)
-	 */
-	public void removeMessage(Object key, Control control) {
-		ControlDecorator dec = (ControlDecorator) decorators.get(control);
-		if (dec == null)
-			return;
-		if (dec.removeMessage(key))
-			if (isAutoUpdate())
-				updateForm();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeMessages(org.eclipse.swt.widgets.Control)
-	 */
-	public void removeMessages(Control control) {
-		ControlDecorator dec = (ControlDecorator) decorators.get(control);
-		if (dec != null) {
-			if (dec.removeMessages()) {
-				if (isAutoUpdate())
-					updateForm();
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#removeAllMessages()
-	 */
-	public void removeAllMessages() {
-		boolean needsUpdate = false;
-		for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) {
-			ControlDecorator control = (ControlDecorator) enm.nextElement();
-			if (control.removeMessages())
-				needsUpdate = true;
-		}
-		if (!messages.isEmpty()) {
-			messages.clear();
-			needsUpdate = true;
-		}
-		if (needsUpdate && isAutoUpdate())
-			updateForm();
-	}
-
-	/*
-	 * Adds the message if it does not already exist in the provided list.
-	 */
-
-	private Message addMessage(String prefix, Object key, String messageText,
-			Object data, int type, ArrayList list) {
-		Message message = findMessage(key, list);
-		if (message == null) {
-			message = new Message(key, messageText, type, data);
-			message.prefix = prefix;
-			list.add(message);
-		} else {
-			message.message = messageText;
-			message.type = type;
-			message.data = data;
-		}
-		return message;
-	}
-
-	/*
-	 * Finds the message with the provided key in the provided list.
-	 */
-
-	private Message findMessage(Object key, ArrayList list) {
-		for (int i = 0; i < list.size(); i++) {
-			Message message = (Message) list.get(i);
-			if (message.getKey().equals(key))
-				return message;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#update()
-	 */
-	public void update() {
-		// Update decorations
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			dec.update();
-		}
-		// Update the form
-		updateForm();
-	}
-
-	/*
-	 * Updates the container by rolling the messages up from the controls.
-	 */
-
-	private void updateForm() {
-		ArrayList mergedList = new ArrayList();
-		mergedList.addAll(messages);
-		for (Enumeration enm = decorators.elements(); enm.hasMoreElements();) {
-			ControlDecorator dec = (ControlDecorator) enm.nextElement();
-			dec.addAll(mergedList);
-		}
-		update(mergedList);
-	}
-
-	private void update(ArrayList mergedList) {
-		pruneControlDecorators();
-		if (form.getHead().getBounds().height == 0 || mergedList.isEmpty() || mergedList == null) {
-			form.setMessage(null, IMessageProvider.NONE);
-			return;
-		}
-		ArrayList peers = createPeers(mergedList);
-		int maxType = ((IMessage) peers.get(0)).getMessageType();
-		String messageText;
-		IMessage[] array = (IMessage[]) peers
-				.toArray(new IMessage[peers.size()]);
-		if (peers.size() == 1 && ((Message) peers.get(0)).prefix == null) {
-			// a single message
-			IMessage message = (IMessage) peers.get(0);
-			messageText = message.getMessage();
-			form.setMessage(messageText, maxType, array);
-		} else {
-			// show a summary message for the message
-			// and list of errors for the details
-			if (peers.size() > 1)
-				messageText = Messages.bind(
-						MULTIPLE_MESSAGE_SUMMARY_KEYS[maxType],
-						new String[] { peers.size() + "" }); //$NON-NLS-1$
-			else
-				messageText = SINGLE_MESSAGE_SUMMARY_KEYS[maxType];
-			form.setMessage(messageText, maxType, array);
-		}
-	}
-
-	private static String getFullMessage(IMessage message) {
-		if (message.getPrefix() == null)
-			return message.getMessage();
-		return message.getPrefix() + message.getMessage();
-	}
-
-	private ArrayList createPeers(ArrayList messages) {
-		ArrayList peers = new ArrayList();
-		int maxType = 0;
-		for (int i = 0; i < messages.size(); i++) {
-			Message message = (Message) messages.get(i);
-			if (message.type > maxType) {
-				peers.clear();
-				maxType = message.type;
-			}
-			if (message.type == maxType)
-				peers.add(message);
-		}
-		return peers;
-	}
-
-	private String createDetails(ArrayList messages, boolean excludePrefix) {
-		StringWriter sw = new StringWriter();
-		PrintWriter out = new PrintWriter(sw);
-
-		for (int i = 0; i < messages.size(); i++) {
-			if (i > 0)
-				out.println();
-			IMessage m = (IMessage) messages.get(i);
-			out.print(excludePrefix ? m.getMessage() : getFullMessage(m));
-		}
-		out.flush();
-		return sw.toString();
-	}
-
-	public static String createDetails(IMessage[] messages) {
-		if (messages == null || messages.length == 0)
-			return null;
-		StringWriter sw = new StringWriter();
-		PrintWriter out = new PrintWriter(sw);
-
-		for (int i = 0; i < messages.length; i++) {
-			if (i > 0)
-				out.println();
-			out.print(getFullMessage(messages[i]));
-		}
-		out.flush();
-		return sw.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#createSummary(org.eclipse.ui.forms.IMessage[])
-	 */
-	public String createSummary(IMessage[] messages) {
-		return createDetails(messages);
-	}
-
-	private void pruneControlDecorators() {
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			if (dec.isDisposed())
-				iter.remove();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#getMessagePrefixProvider()
-	 */
-	public IMessagePrefixProvider getMessagePrefixProvider() {
-		return prefixProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#setMessagePrefixProvider(org.eclipse.ui.forms.IMessagePrefixProvider)
-	 */
-	public void setMessagePrefixProvider(IMessagePrefixProvider provider) {
-		this.prefixProvider = provider;
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			dec.updatePrefix();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#getDecorationPosition()
-	 */
-	public int getDecorationPosition() {
-		return decorationPosition;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#setDecorationPosition(int)
-	 */
-	public void setDecorationPosition(int position) {
-		this.decorationPosition = position;
-		for (Iterator iter = decorators.values().iterator(); iter.hasNext();) {
-			ControlDecorator dec = (ControlDecorator) iter.next();
-			dec.updatePosition();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#isAutoUpdate()
-	 */
-	public boolean isAutoUpdate() {
-		return autoUpdate;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.IMessageManager#setAutoUpdate(boolean)
-	 */
-	public void setAutoUpdate(boolean autoUpdate) {
-		boolean needsCaching = this.autoUpdate && !autoUpdate;
-		boolean needsUpdate = !this.autoUpdate && autoUpdate;
-		this.autoUpdate = autoUpdate;
-		if (needsUpdate && isCacheChanged())
-			update();
-		if (needsCaching) {
-			oldMessages = new ArrayList();
-			for (Iterator i = messages.iterator(); i.hasNext();)
-				oldMessages.add(new Message((Message)i.next()));
-			oldDecorators = new Hashtable();
-			for (Enumeration e = decorators.keys(); e.hasMoreElements();) {
-				Object key = e.nextElement();
-				oldDecorators.put(key, new ControlDecorator((ControlDecorator)decorators.get(key)));
-			}
-		}
-	}
-	
-	private boolean isCacheChanged() {
-		boolean result = false;
-		result = checkMessageCache() || checkDecoratorCache();
-		oldMessages.clear();
-		oldMessages = null;
-		oldDecorators.clear();
-		oldDecorators = null;
-		return result;
-	}
-	
-	private boolean checkMessageCache() {
-		if (oldMessages == null)
-			return false;
-		if (messages.size() != oldMessages.size())
-			return true;
-		if (!oldMessages.containsAll(messages))
-			return true;
-		return false;
-	}
-	
-	private boolean checkDecoratorCache() {
-		if (oldDecorators == null)
-			return false;
-		for (Iterator i = decorators.entrySet().iterator(); i.hasNext();) {
-			Entry next = (Entry)i.next();
-			ControlDecorator cd = (ControlDecorator)next.getValue();
-			ControlDecorator oldCd = (ControlDecorator) oldDecorators.get(cd.decoration.getControl());
-			if ((oldCd == null && cd.controlMessages.size() > 0) || (oldCd != null && !cd.hasSameMessages(oldCd)))
-				return true;
-		}
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
deleted file mode 100644
index df0112b..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.forms.Messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String FormDialog_defaultTitle;
-	public static String FormText_copy;
-	public static String Form_tooltip_minimize;
-	public static String Form_tooltip_restore;
-	/* 
-	 * Message manager
-	 */
-	public static String MessageManager_sMessageSummary;
-	public static String MessageManager_sWarningSummary;
-	public static String MessageManager_sErrorSummary;
-	public static String MessageManager_pMessageSummary;
-	public static String MessageManager_pWarningSummary;
-	public static String MessageManager_pErrorSummary;
-	public static String ToggleHyperlink_accessibleColumn;
-	public static String ToggleHyperlink_accessibleName;		
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties
deleted file mode 100644
index 8dd12fa..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/Messages.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-FormText_copy=&Copy
-Form_tooltip_minimize=Minimize
-FormDialog_defaultTitle=Form Dialog
-Form_tooltip_restore=Restore
-
-#Message manager
-MessageManager_sMessageSummary = 1 message detected
-MessageManager_sWarningSummary = 1 warning detected
-MessageManager_sErrorSummary = 1 error detected
-MessageManager_pMessageSummary = {0} messages detected 
-MessageManager_pWarningSummary = {0} warnings detected
-MessageManager_pErrorSummary = {0} errors detected
-ToggleHyperlink_accessibleName=Expandable
-ToggleHyperlink_accessibleColumn=: 
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java
deleted file mode 100644
index 839e9a7..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/AggregateHyperlinkSegment.java
+++ /dev/null
@@ -1,203 +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.forms.widgets;
-
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * This segment contains a collection of images and links that all belong to one
- * logical hyperlink.
- */
-public class AggregateHyperlinkSegment extends ParagraphSegment implements
-		IHyperlinkSegment {
-	private String href;
-
-	private Vector segments = new Vector();
-
-	public AggregateHyperlinkSegment() {
-	}
-
-	public void add(TextHyperlinkSegment segment) {
-		segments.add(segment);
-	}
-
-	public void add(ImageHyperlinkSegment segment) {
-		segments.add(segment);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#advanceLocator(org.eclipse.swt.graphics.GC,
-	 *      int, org.eclipse.ui.internal.forms.widgets.Locator,
-	 *      java.util.Hashtable, boolean)
-	 */
-	public boolean advanceLocator(GC gc, int wHint, Locator loc,
-			Hashtable objectTable, boolean computeHeightOnly) {
-		boolean newLine = false;
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			if (segment.advanceLocator(gc, wHint, loc, objectTable,
-					computeHeightOnly))
-				newLine = true;
-		}
-		return newLine;
-	}
-
-	/**
-	 * @return Returns the href.
-	 */
-	public String getHref() {
-		return href;
-	}
-
-	/**
-	 * @param href
-	 *            The href to set.
-	 */
-	public void setHref(String href) {
-		this.href = href;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#repaint(org.eclipse.swt.graphics.GC,
-	 *      boolean)
-	 */
-	public void paint(GC gc, boolean hover, Hashtable resourceTable,
-			boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.paint(gc, hover, resourceTable, selected, selData,
-					repaintRegion);
-		}
-	}
-
-	public String getText() {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			buf.append(segment.getText());
-		}
-		return buf.toString();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#paintFocus(org.eclipse.swt.graphics.GC,
-	 *      org.eclipse.swt.graphics.Color, org.eclipse.swt.graphics.Color,
-	 *      boolean)
-	 */
-	public void paintFocus(GC gc, Color bg, Color fg, boolean selected,
-			Rectangle repaintRegion) {
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			segment.paintFocus(gc, bg, fg, selected, repaintRegion);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#getBounds()
-	 */
-	public Rectangle getBounds() {
-		Rectangle bounds = new Rectangle(Integer.MAX_VALUE, Integer.MAX_VALUE,
-				0, 0);
-		// TODO this is wrong
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			Rectangle sbounds = segment.getBounds();
-			bounds.x = Math.min(bounds.x, sbounds.x);
-			bounds.y = Math.min(bounds.y, sbounds.y);
-			bounds.width = Math.max(bounds.width, sbounds.width);
-			bounds.height = Math.max(bounds.height, sbounds.height);
-		}
-		return bounds;
-	}
-
-	public boolean contains(int x, int y) {
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			if (segment.contains(x, y))
-				return true;
-		}
-		return false;
-	}
-
-	public boolean intersects(Rectangle rect) {
-		for (int i = 0; i < segments.size(); i++) {
-			IHyperlinkSegment segment = (IHyperlinkSegment) segments.get(i);
-			if (segment.intersects(rect))
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#layout(org.eclipse.swt.graphics.GC,
-	 *      int, org.eclipse.ui.internal.forms.widgets.Locator,
-	 *      java.util.Hashtable, boolean,
-	 *      org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void layout(GC gc, int width, Locator locator,
-			Hashtable resourceTable, boolean selected) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.layout(gc, width, locator, resourceTable, selected);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#computeSelection(org.eclipse.swt.graphics.GC,
-	 *      java.util.Hashtable, boolean,
-	 *      org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void computeSelection(GC gc, Hashtable resourceTable,
-			SelectionData selData) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.computeSelection(gc, resourceTable, selData);
-		}
-	}
-
-	public void clearCache(String fontId) {
-		for (int i = 0; i < segments.size(); i++) {
-			ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-			segment.clearCache(fontId);
-		}
-	}
-
-	public String getTooltipText() {
-		if (segments.size() > 0)
-			return ((ParagraphSegment) segments.get(0)).getTooltipText();
-		return super.getTooltipText();
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		return true;
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean direction) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java
deleted file mode 100644
index 57bcf54..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BreakSegment.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * This segment serves as break within a paragraph. It has no data -
- * just starts a new line and resets the locator.
- */
-
-public class BreakSegment extends ParagraphSegment {
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.internal.widgets.ParagraphSegment#advanceLocator(org.eclipse.swt.graphics.GC, int, org.eclipse.ui.forms.internal.widgets.Locator, java.util.Hashtable)
-	 */
-	public boolean advanceLocator(GC gc, int wHint, Locator locator,
-			Hashtable objectTable, boolean computeHeightOnly) {
-		if (locator.rowHeight==0) {
-			FontMetrics fm = gc.getFontMetrics();
-			locator.rowHeight = fm.getHeight();
-		}
-		if (computeHeightOnly) locator.collectHeights();		
-		locator.resetCaret();
-		locator.width = locator.x;
-		locator.y += locator.rowHeight;
-		locator.rowHeight = 0;
-		locator.leading = 0;
-		return true;
-	}
-
-	public void paint(GC gc, boolean hover, Hashtable resourceTable, boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		//nothing to paint
-	}
-	public boolean contains(int x, int y) {
-		return false;
-	}
-	public boolean intersects(Rectangle rect) {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#layout(org.eclipse.swt.graphics.GC, int, org.eclipse.ui.internal.forms.widgets.Locator, java.util.Hashtable, boolean, org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void layout(GC gc, int width, Locator locator, Hashtable ResourceTable,
-			boolean selected) {
-		locator.resetCaret();
-		if (locator.rowHeight==0) {
-			FontMetrics fm = gc.getFontMetrics();
-			locator.rowHeight = fm.getHeight();
-		}
-		locator.y += locator.rowHeight;
-		locator.rowHeight = 0;
-		locator.rowCounter++;		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#computeSelection(org.eclipse.swt.graphics.GC, java.util.Hashtable, boolean, org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData) {
-		selData.markNewLine();
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BulletParagraph.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BulletParagraph.java
deleted file mode 100644
index c804e08..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BulletParagraph.java
+++ /dev/null
@@ -1,162 +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.forms.widgets;
-
-import java.util.Hashtable;
-
-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;
-
-public class BulletParagraph extends Paragraph {
-	public static final int CIRCLE = 1;
-
-	public static final int TEXT = 2;
-
-	public static final int IMAGE = 3;
-
-	private int style = CIRCLE;
-
-	private String text;
-
-	private int CIRCLE_DIAM = 5;
-
-	private int SPACING = 10;
-
-	private int indent = -1;
-
-	private int bindent = -1;
-
-	private Rectangle bbounds;
-
-	/**
-	 * Constructor for BulletParagraph.
-	 * 
-	 * @param addVerticalSpace
-	 */
-	public BulletParagraph(boolean addVerticalSpace) {
-		super(addVerticalSpace);
-	}
-
-	public int getIndent() {
-		int ivalue = indent;
-		if (ivalue != -1)
-			return ivalue;
-		switch (style) {
-		case CIRCLE:
-			ivalue = CIRCLE_DIAM + SPACING;
-			break;
-		default:
-			ivalue = 20;
-			break;
-		}
-		return getBulletIndent() + ivalue;
-	}
-
-	public int getBulletIndent() {
-		if (bindent != -1)
-			return bindent;
-		return 0;
-	}
-
-	/*
-	 * @see IBulletParagraph#getBulletStyle()
-	 */
-	public int getBulletStyle() {
-		return style;
-	}
-
-	public void setBulletStyle(int style) {
-		this.style = style;
-	}
-
-	public void setBulletText(String text) {
-		this.text = text;
-	}
-
-	public void setIndent(int indent) {
-		this.indent = indent;
-	}
-
-	public void setBulletIndent(int bindent) {
-		this.bindent = bindent;
-	}
-
-	/*
-	 * @see IBulletParagraph#getBulletText()
-	 */
-	public String getBulletText() {
-		return text;
-	}
-
-	public void layout(GC gc, int width, Locator loc, int lineHeight,
-			Hashtable resourceTable, IHyperlinkSegment selectedLink) {
-		computeRowHeights(gc, width, loc, lineHeight, resourceTable);
-		layoutBullet(gc, loc, lineHeight, resourceTable);
-		super.layout(gc, width, loc, lineHeight, resourceTable, selectedLink);
-	}
-
-	public void paint(GC gc, Rectangle repaintRegion,
-			Hashtable resourceTable, IHyperlinkSegment selectedLink,
-			SelectionData selData) {
-		paintBullet(gc, repaintRegion, resourceTable);
-		super.paint(gc, repaintRegion, resourceTable, selectedLink, selData);
-	}
-
-	private void layoutBullet(GC gc, Locator loc, int lineHeight,
-			Hashtable resourceTable) {
-		int x = loc.x - getIndent() + getBulletIndent();
-		int rowHeight = ((int[]) loc.heights.get(0))[0];
-		if (style == CIRCLE) {
-			int y = loc.y + rowHeight / 2 - CIRCLE_DIAM / 2;
-			bbounds = new Rectangle(x, y, CIRCLE_DIAM, CIRCLE_DIAM);
-		} else if (style == TEXT && text != null) {
-			//int height = gc.getFontMetrics().getHeight();
-			Point textSize = gc.textExtent(text);
-			bbounds = new Rectangle(x, loc.y, textSize.x, textSize.y);
-		} else if (style == IMAGE && text != null) {
-			Image image = (Image) resourceTable.get(text);
-			if (image != null) {
-				Rectangle ibounds = image.getBounds();
-				int y = loc.y + rowHeight / 2 - ibounds.height / 2;
-				bbounds = new Rectangle(x, y, ibounds.width, ibounds.height);
-			}
-		}
-	}
-
-	public void paintBullet(GC gc, Rectangle repaintRegion,
-			Hashtable resourceTable) {
-		if (bbounds == null)
-			return;
-		int x = bbounds.x;
-		int y = bbounds.y;
-		if (repaintRegion != null) {
-			x -= repaintRegion.x;
-			y -= repaintRegion.y;
-		}
-		if (style == CIRCLE) {
-			Color bg = gc.getBackground();
-			Color fg = gc.getForeground();
-			gc.setBackground(fg);
-			gc.fillRectangle(x, y + 1, 5, 3);
-			gc.fillRectangle(x + 1, y, 3, 5);
-			gc.setBackground(bg);
-		} else if (style == TEXT && text != null) {
-			gc.drawText(text, x, y);
-		} else if (style == IMAGE && text != null) {
-			Image image = (Image) resourceTable.get(text);
-			if (image != null)
-				gc.drawImage(image, x, y);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java
deleted file mode 100644
index a3d0126..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/BusyIndicator.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Stefan Mucke - fix for Bug 156456 
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-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.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.osgi.framework.Bundle;
-
-public final class BusyIndicator extends Canvas {
-
-	private static final int MARGIN = 0;	
-	private static final int IMAGE_COUNT = 8;
-	private static final int MILLISECONDS_OF_DELAY = 180; 
-	private Image[] imageCache;
-	private Image image;
-	
-	private Display dpy;
-	private Runnable timer;
-	private boolean busy;
-	private int imageIndex;
-	
-	/**
-	 * BusyWidget constructor comment.
-	 * 
-	 * @param parent
-	 *            org.eclipse.swt.widgets.Composite
-	 * @param style
-	 *            int
-	 */
-	public BusyIndicator(Composite parent, int style) {
-		super(parent, style | SWT.DOUBLE_BUFFERED);
-		
-		dpy = getDisplay();
-		timer = new Runnable() {
-			public void run () {
-				if (isDisposed()) return;
-				redraw();
-				if (!BusyIndicator.this.busy) return;
-				update();
-				if (isDisposed()) return;
-				imageIndex = (imageIndex + 1) % IMAGE_COUNT;
-				dpy.timerExec(MILLISECONDS_OF_DELAY, this);
-			}
-		};
-
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				onPaint(event);
-			}
-		});
-		
-		addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				clearImages();
-			}
-		});
-	}
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-//		checkWidget();
-		Point size = new Point(0, 0);
-		if (image != null) {
-			Rectangle ibounds = image.getBounds();
-			size.x = ibounds.width;
-			size.y = ibounds.height;
-		}
-		if (isBusy()) {
-			Rectangle bounds = getImage(0).getBounds();
-			size.x = Math.max(size.x, bounds.width);
-			size.y = Math.max(size.y, bounds.height);
-		}
-		size.x += MARGIN + MARGIN;
-		size.y += MARGIN + MARGIN;
-		return size;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	/**
-	 * Return the image or <code>null</code>.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Returns true if it is currently busy.
-	 * 
-	 * @return boolean
-	 */
-	public boolean isBusy() {
-		return busy;
-	}
-
-	/*
-	 * Process the paint event
-	 */
-	void onPaint(PaintEvent event) {
-		Rectangle rect = getClientArea();
-		if (rect.width == 0 || rect.height == 0)
-			return;
-
-		Image activeImage;
-		if (isBusy()) {
-			activeImage = getImage(imageIndex);
-		} else {
-			clearImages();
-			activeImage = image;
-		}
-
-		if (activeImage != null) {
-			GC gc = event.gc;
-			Rectangle ibounds = activeImage.getBounds();
-			gc.drawImage(activeImage, rect.width / 2 - ibounds.width / 2,
-					rect.height / 2 - ibounds.height / 2);
-		}
-	}
-
-	/**
-	 * Sets the indicators busy count up (true) or down (false) one.
-	 * 
-	 * @param busy
-	 *            boolean
-	 */
-	public synchronized void setBusy(boolean busy) {
-		if (this.busy == busy) return;
-		this.busy = busy;
-		imageIndex = 0;
-		dpy.asyncExec(timer);
-	}
-
-	/**
-	 * Set the image. The value <code>null</code> clears it.
-	 */
-	public void setImage(Image image) {
-		if (image != this.image && !isDisposed()) {
-			this.image = image;
-			redraw();
-		}
-	}
-	
-	private ImageDescriptor createImageDescriptor(String relativePath) {
-		Bundle bundle = Platform.getBundle("org.eclipse.ui.forms"); //$NON-NLS-1$
-		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;
-		}
-	}
-
-	private Image getImage(int index) {
-		if (imageCache == null) {
-			imageCache = new Image[IMAGE_COUNT];
-		}
-		if (imageCache[index] == null){
-			ImageDescriptor descriptor = createImageDescriptor("$nl$/icons/progress/ani/" + (index + 1) + ".png"); //$NON-NLS-1$ //$NON-NLS-2$
-		    imageCache[index] = descriptor.createImage();
-		}
-		return imageCache[index];
-	}
-	
-	private void clearImages() {
-		if (imageCache != null) {
-			for (int index = 0; index < IMAGE_COUNT; index++) {
-				if (imageCache[index] != null && !imageCache[index].isDisposed()) {
-					imageCache[index].dispose();
-					imageCache[index] = null;
-				}
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java
deleted file mode 100644
index 9afc645..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ControlSegment.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-public class ControlSegment extends ObjectSegment implements IFocusSelectable {
-	private boolean fill;
-	private int width = SWT.DEFAULT;
-	private int height = SWT.DEFAULT;
-	
-	public ControlSegment() {
-	}
-	
-	public void setFill(boolean fill) {
-		this.fill = fill;
-	}
-	
-	public void setWidth(int width) {
-		this.width = width;
-	}
-	
-	public void setHeight(int height) {
-		this.height = height;
-	}
-	
-	public Control getControl(Hashtable resourceTable) {
-		Object obj = resourceTable.get(getObjectId());
-		if (obj instanceof Control) {
-			Control c = (Control)obj;
-			if (!c.isDisposed())
-				return c;
-		}
-		return null;
-	}
-
-	protected Point getObjectSize(Hashtable resourceTable, int wHint) {
-		Control control = getControl(resourceTable);
-		if (control==null)
-			return new Point(0,0);
-		int realWhint = FormUtil.getWidthHint(wHint, control);
-		Point size = control.computeSize(realWhint, SWT.DEFAULT);
-		if (realWhint!=SWT.DEFAULT && fill)
-			size.x = Math.max(size.x, realWhint);
-		if (width !=SWT.DEFAULT)
-			size.x = width;
-		if (height != SWT.DEFAULT)
-			size.y = height;
-		return size;
-	}
-	
-	public void layout(GC gc, int width, Locator loc, Hashtable resourceTable,
-			boolean selected) {
-		super.layout(gc, width, loc, resourceTable, selected);
-		Control control = getControl(resourceTable);
-		if (control!=null)
-			control.setBounds(getBounds());
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean next) {
-		Control c = getControl(resourceTable);
-		if (c!=null) {
-			return setFocus(c, next);
-		}
-		return false;
-	}
-	
-	private boolean setFocus(Control c, boolean direction) {
-		if (c instanceof Composite) {
-			Composite comp = (Composite)c;
-			Control [] tabList = comp.getTabList();
-			if (direction) {
-				for (int i=0; i<tabList.length; i++) {
-					if (setFocus(tabList[i], direction))
-						return true;
-				}
-			}
-			else {
-				for (int i=tabList.length-1; i>=0; i--) {
-					if (setFocus(tabList[i], direction))
-						return true;
-				}
-			}
-			if (!(c instanceof Canvas))
-				return false;
-		}
-		return c.setFocus();
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		Control c = getControl(resourceTable);
-		if (c!=null)
-			return true;
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java
deleted file mode 100644
index b6f6fa7..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormFonts.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.DeviceResourceException;
-import org.eclipse.jface.resource.FontDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.LocalResourceManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-
-public class FormFonts {
-	private static FormFonts instance;
-
-	public static FormFonts getInstance() {
-		if (instance == null)
-			instance = new FormFonts();
-		return instance;
-	}
-	
-	private LocalResourceManager resources;
-	private HashMap descriptors;
-	
-	private FormFonts() {
-	}
-	
-	private class BoldFontDescriptor extends FontDescriptor {
-		private FontData[] fFontData;
-		
-		BoldFontDescriptor (Font font) {
-			fFontData = font.getFontData();
-			for (int i = 0; i < fFontData.length; i++) {
-				fFontData[i].setStyle(fFontData[i].getStyle() | SWT.BOLD);
-			}
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof BoldFontDescriptor) {
-				BoldFontDescriptor desc = (BoldFontDescriptor)obj;
-				if (desc.fFontData.length != fFontData.length)
-					return false;
-				for (int i = 0; i < fFontData.length; i++)
-					if (!fFontData[i].equals(desc.fFontData[i]))
-						return false;
-				return true;
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			int hash = 0;
-			for (int i = 0; i < fFontData.length; i++)
-				hash = hash * 7 + fFontData[i].hashCode();
-			return hash;
-		}
-
-		public Font createFont(Device device) throws DeviceResourceException {
-			return new Font(device, fFontData);
-		}
-
-		public void destroyFont(Font previouslyCreatedFont) {
-			previouslyCreatedFont.dispose();
-		}
-	}
-	
-	public Font getBoldFont(Display display, Font font) {
-		checkHashMaps();
-		BoldFontDescriptor desc = new BoldFontDescriptor(font);
-		Font result = getResourceManager().createFont(desc);
-		descriptors.put(result, desc);
-		return result;
-	}
-	
-	public boolean markFinished(Font boldFont) {
-		checkHashMaps();
-		BoldFontDescriptor desc = (BoldFontDescriptor)descriptors.get(boldFont);
-		if (desc != null) {
-			getResourceManager().destroyFont(desc);
-			if (getResourceManager().find(desc) == null) {
-				descriptors.remove(boldFont);
-				validateHashMaps();
-			}
-			return true;
-			
-		}
-		// if the image was not found, dispose of it for the caller
-		boldFont.dispose();
-		return false;
-	}
-	
-	private LocalResourceManager getResourceManager() {
-		if (resources == null)
-			resources = new LocalResourceManager(JFaceResources.getResources());
-		return resources;
-	}
-
-	private void checkHashMaps() {
-		if (descriptors == null)
-			descriptors = new HashMap();
-	}
-	
-	private void validateHashMaps() {
-		if (descriptors.size() == 0)
-			descriptors = null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java
deleted file mode 100644
index 5146b76..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormHeading.java
+++ /dev/null
@@ -1,1007 +0,0 @@
-/*******************************************************************************
- *  Copyright (c) 2000, 2009 IBM Corporation and others.
- *  All rights reserved. This program and the accompanying materials
- *  are made available under the terms of the Eclipse Public License v1.0
- *  which accompanies 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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-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.widgets.Canvas;
-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.ToolBar;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.Hyperlink;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.SizeCache;
-import org.eclipse.ui.internal.forms.IMessageToolTipManager;
-import org.eclipse.ui.internal.forms.MessageManager;
-
-/**
- * Form header moved out of the form class.
- */
-public class FormHeading extends Canvas {
-	private static final int TITLE_HMARGIN = 1;
-	private static final int SPACING = 5;
-	private static final int VSPACING = 5;
-	private static final int HMARGIN = 6;
-	private static final int VMARGIN = 1;
-	private static final int CLIENT_MARGIN = 1;
-
-	private static final int SEPARATOR = 1 << 1;
-	private static final int BOTTOM_TOOLBAR = 1 << 2;
-	private static final int BACKGROUND_IMAGE_TILED = 1 << 3;
-	private static final int SEPARATOR_HEIGHT = 2;
-	private static final int MESSAGE_AREA_LIMIT = 50;
-	static IMessage[] NULL_MESSAGE_ARRAY = new IMessage[] {};
-
-	public static final String COLOR_BASE_BG = "baseBg"; //$NON-NLS-1$
-
-	private Image backgroundImage;
-
-	private Image gradientImage;
-
-	Hashtable colors = new Hashtable();
-
-	private int flags;
-
-	private GradientInfo gradientInfo;
-
-	private ToolBarManager toolBarManager;
-
-	private SizeCache toolbarCache = new SizeCache();
-
-	private SizeCache clientCache = new SizeCache();
-
-	private SizeCache messageCache = new SizeCache();
-
-	private TitleRegion titleRegion;
-
-	private MessageRegion messageRegion;
-
-	private IMessageToolTipManager messageToolTipManager = new DefaultMessageToolTipManager();
-
-	private Control headClient;
-
-	private class DefaultMessageToolTipManager implements
-			IMessageToolTipManager {
-		public void createToolTip(Control control, boolean imageLabel) {
-		}
-
-		public void update() {
-			String details = getMessageType() == 0 ? null : MessageManager
-					.createDetails(getChildrenMessages());
-			if (messageRegion != null)
-				messageRegion.updateToolTip(details);
-			if (getMessageType() > 0
-					&& (details == null || details.length() == 0))
-				details = getMessage();
-			titleRegion.updateToolTip(details);
-		}
-	}
-
-	private class GradientInfo {
-		Color[] gradientColors;
-
-		int[] percents;
-
-		boolean vertical;
-	}
-
-	private class FormHeadingLayout extends Layout implements ILayoutExtension {
-		public int computeMinimumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, 5, SWT.DEFAULT, flushCache).x;
-		}
-
-		public int computeMaximumWidth(Composite composite, boolean flushCache) {
-			return computeSize(composite, SWT.DEFAULT, SWT.DEFAULT, flushCache).x;
-		}
-
-		public Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			return layout(composite, false, 0, 0, wHint, hHint, flushCache);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			Rectangle rect = composite.getClientArea();
-			layout(composite, true, rect.x, rect.y, rect.width, rect.height,
-					flushCache);
-		}
-
-		private Point layout(Composite composite, boolean move, int x, int y,
-				int width, int height, boolean flushCache) {
-			Point tsize = null;
-			Point msize = null;
-			Point tbsize = null;
-			Point clsize = null;
-
-			if (flushCache) {
-				clientCache.flush();
-				messageCache.flush();
-				toolbarCache.flush();
-			}
-			if (hasToolBar()) {
-				ToolBar tb = toolBarManager.getControl();
-				toolbarCache.setControl(tb);
-				tbsize = toolbarCache.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			if (headClient != null) {
-				clientCache.setControl(headClient);
-				int cwhint = width;
-				if (cwhint != SWT.DEFAULT) {
-					cwhint -= HMARGIN * 2;
-					if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM)
-						cwhint -= tbsize.x + SPACING;
-				}
-				clsize = clientCache.computeSize(cwhint, SWT.DEFAULT);
-			}
-			int totalFlexWidth = width;
-			int flexWidth = totalFlexWidth;
-			if (totalFlexWidth != SWT.DEFAULT) {
-				totalFlexWidth -= TITLE_HMARGIN * 2;
-				// complete right margin
-				if (hasToolBar() && getToolBarAlignment() == SWT.TOP
-						|| hasMessageRegion())
-					totalFlexWidth -= SPACING;
-				// subtract tool bar
-				if (hasToolBar() && getToolBarAlignment() == SWT.TOP)
-					totalFlexWidth -= tbsize.x + SPACING;
-				flexWidth = totalFlexWidth;
-				if (hasMessageRegion()) {
-					// remove message region spacing and divide by 2
-					flexWidth -= SPACING;
-					// flexWidth /= 2;
-				}
-			}
-			/*
-			 * // compute text and message sizes tsize =
-			 * titleRegion.computeSize(flexWidth, SWT.DEFAULT); if (flexWidth !=
-			 * SWT.DEFAULT && tsize.x < flexWidth) flexWidth += flexWidth -
-			 * tsize.x;
-			 * 
-			 * if (hasMessageRegion()) {
-			 * messageCache.setControl(messageRegion.getMessageControl()); msize =
-			 * messageCache.computeSize(flexWidth, SWT.DEFAULT); int maxWidth =
-			 * messageCache.computeSize(SWT.DEFAULT, SWT.DEFAULT).x; if
-			 * (maxWidth < msize.x) { msize.x = maxWidth; // recompute title
-			 * with the reclaimed width int tflexWidth = totalFlexWidth -
-			 * SPACING - msize.x; tsize = titleRegion.computeSize(tflexWidth,
-			 * SWT.DEFAULT); } }
-			 */
-			if (!hasMessageRegion()) {
-				tsize = titleRegion.computeSize(flexWidth, SWT.DEFAULT);
-			} else {
-				// Total flexible area in the first row is flexWidth.
-				// Try natural widths of title and
-				Point tsizeNatural = titleRegion.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				messageCache.setControl(messageRegion.getMessageControl());
-				Point msizeNatural = messageCache.computeSize(SWT.DEFAULT,
-						SWT.DEFAULT);
-				// try to fit all
-				tsize = tsizeNatural;
-				msize = msizeNatural;
-				if (flexWidth != SWT.DEFAULT) {
-					int needed = tsizeNatural.x + msizeNatural.x;
-					if (needed > flexWidth) {
-						// too big - try to limit the message
-						int mwidth = flexWidth - tsizeNatural.x;
-						if (mwidth >= MESSAGE_AREA_LIMIT) {
-							msize.x = mwidth;
-						} else {
-							// message is squeezed to the limit
-							int flex = flexWidth - MESSAGE_AREA_LIMIT;
-							tsize = titleRegion.computeSize(flex, SWT.DEFAULT);
-							msize.x = MESSAGE_AREA_LIMIT;
-						}
-					}
-				}
-			}
-
-			Point size = new Point(width, height);
-			if (!move) {
-				// compute sizes
-				int width1 = 2 * TITLE_HMARGIN;
-				width1 += tsize.x;
-				if (msize != null)
-					width1 += SPACING + msize.x;
-				if (tbsize != null && getToolBarAlignment() == SWT.TOP)
-					width1 += SPACING + tbsize.x;
-				if (msize != null
-						|| (tbsize != null && getToolBarAlignment() == SWT.TOP))
-					width1 += SPACING;
-				size.x = width1;
-				if (clsize != null) {
-					int width2 = clsize.x;
-					if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM)
-						width2 += SPACING + tbsize.x;
-					width2 += 2 * HMARGIN;
-					size.x = Math.max(width1, width2);
-				}
-				// height, first row
-				size.y = tsize.y;
-				if (msize != null)
-					size.y = Math.max(msize.y, size.y);
-				if (tbsize != null && getToolBarAlignment() == SWT.TOP)
-					size.y = Math.max(tbsize.y, size.y);
-				if (size.y > 0)
-					size.y += VMARGIN * 2;
-				// add second row
-				int height2 = 0;
-				if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM)
-					height2 = tbsize.y;
-				if (clsize != null)
-					height2 = Math.max(height2, clsize.y);
-				if (height2 > 0)
-					size.y += VSPACING + height2 + CLIENT_MARGIN;
-				// add separator
-				if (size.y > 0 && isSeparatorVisible())
-					size.y += SEPARATOR_HEIGHT;
-			} else {
-				// position controls
-				int xloc = x;
-				int yloc = y + VMARGIN;
-				int row1Height = tsize.y;
-				if (hasMessageRegion())
-					row1Height = Math.max(row1Height, msize.y);
-				if (hasToolBar() && getToolBarAlignment() == SWT.TOP)
-					row1Height = Math.max(row1Height, tbsize.y);
-				titleRegion.setBounds(xloc,
-				// yloc + row1Height / 2 - tsize.y / 2,
-						yloc, tsize.x, tsize.y);
-				xloc += tsize.x;
-
-				if (hasMessageRegion()) {
-					xloc += SPACING;
-					int messageOffset = 0;
-					if (tsize.y > 0) {
-						// space between title area and title text
-						int titleLeadingSpace = (tsize.y - titleRegion.getFontHeight()) / 2;
-						// space between message control and message text
-						int messageLeadingSpace = (msize.y - messageRegion.getFontHeight()) / 2;
-						// how much to offset the message so baselines align
-						messageOffset = (titleLeadingSpace + titleRegion.getFontBaselineHeight())
-							- (messageLeadingSpace + messageRegion.getFontBaselineHeight());
-					}
-
-					messageRegion
-							.getMessageControl()
-							.setBounds(
-									xloc,
-									tsize.y > 0 ? (yloc + messageOffset)
-											: (yloc + row1Height / 2 - msize.y / 2),
-									msize.x, msize.y);
-					xloc += msize.x;
-				}
-				if (toolBarManager != null)
-					toolBarManager.getControl().setVisible(
-							!toolBarManager.isEmpty());
-				if (tbsize != null && getToolBarAlignment() == SWT.TOP) {
-					ToolBar tbar = toolBarManager.getControl();
-					tbar.setBounds(x + width - 1 - tbsize.x - HMARGIN, yloc
-							+ row1Height - 1 - tbsize.y, tbsize.x, tbsize.y);
-				}
-				// second row
-				xloc = HMARGIN;
-				yloc += row1Height + VSPACING;
-				int tw = 0;
-
-				if (tbsize != null && getToolBarAlignment() == SWT.BOTTOM) {
-					ToolBar tbar = toolBarManager.getControl();
-					tbar.setBounds(x + width - 1 - tbsize.x - HMARGIN, yloc,
-							tbsize.x, tbsize.y);
-					tw = tbsize.x + SPACING;
-				}
-				if (headClient != null) {
-					int carea = width - HMARGIN * 2 - tw;
-					headClient.setBounds(xloc, yloc, carea, clsize.y);
-				}
-			}
-			return size;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	private boolean hasToolBar() {
-		return toolBarManager != null && !toolBarManager.isEmpty();
-	}
-
-	private boolean hasMessageRegion() {
-		return messageRegion != null && !messageRegion.isEmpty();
-	}
-
-	private class MessageRegion {
-		private String message;
-		private int messageType;
-		private CLabel messageLabel;
-		private IMessage[] messages;
-		private Hyperlink messageHyperlink;
-		private ListenerList listeners;
-		private Color fg;
-		private int fontHeight = -1;
-		private int fontBaselineHeight = -1;
-
-		public MessageRegion() {
-		}
-
-		public boolean isDisposed() {
-			Control c = getMessageControl();
-			return c != null && c.isDisposed();
-		}
-
-		public boolean isEmpty() {
-			Control c = getMessageControl();
-			if (c == null)
-				return true;
-			return !c.getVisible();
-		}
-
-		public int getFontHeight() {
-			if (fontHeight == -1) {
-				Control c = getMessageControl();
-				if (c == null)
-					return 0;
-				GC gc = new GC(c.getDisplay());
-				gc.setFont(c.getFont());
-				fontHeight = gc.getFontMetrics().getHeight();
-				gc.dispose();
-			}
-			return fontHeight;
-		}
-
-		public int getFontBaselineHeight() {
-			if (fontBaselineHeight == -1) {
-				Control c = getMessageControl();
-				if (c == null)
-					return 0;
-				GC gc = new GC(c.getDisplay());
-				gc.setFont(c.getFont());
-				FontMetrics fm = gc.getFontMetrics();
-				fontBaselineHeight = fm.getHeight() - fm.getDescent();
-				gc.dispose();
-			}
-			return fontBaselineHeight;
-		}
-
-		public void showMessage(String newMessage, int newType,
-				IMessage[] messages) {
-			Control oldControl = getMessageControl();
-			int oldType = messageType;
-			this.message = newMessage;
-			this.messageType = newType;
-			this.messages = messages;
-			if (newMessage == null) {
-				// clearing of the message
-				if (oldControl != null && oldControl.getVisible())
-					oldControl.setVisible(false);
-				return;
-			}
-			ensureControlExists();
-			if (needHyperlink()) {
-				messageHyperlink.setText(newMessage);
-				messageHyperlink.setHref(messages);
-			} else {
-				messageLabel.setText(newMessage);
-			}
-			if (oldType != newType)
-				updateForeground();
-		}
-
-		public void updateToolTip(String toolTip) {
-			Control control = getMessageControl();
-			if (control != null)
-				control.setToolTipText(toolTip);
-		}
-
-		public String getMessage() {
-			return message;
-		}
-
-		public int getMessageType() {
-			return messageType;
-		}
-
-		public IMessage[] getChildrenMessages() {
-			return messages;
-		}
-
-		public Control getMessageControl() {
-			if (needHyperlink() && messageHyperlink != null)
-				return messageHyperlink;
-			return messageLabel;
-		}
-
-		public Image getMessageImage() {
-			switch (messageType) {
-			case IMessageProvider.INFORMATION:
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_INFO);
-			case IMessageProvider.WARNING:
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_WARNING);
-			case IMessageProvider.ERROR:
-				return JFaceResources.getImage(Dialog.DLG_IMG_MESSAGE_ERROR);
-			default:
-				return null;
-			}
-		}
-
-		public void addMessageHyperlinkListener(IHyperlinkListener listener) {
-			if (listeners == null)
-				listeners = new ListenerList();
-			listeners.add(listener);
-			ensureControlExists();
-			if (messageHyperlink != null)
-				messageHyperlink.addHyperlinkListener(listener);
-			if (listeners.size() == 1)
-				updateForeground();
-		}
-
-		private void removeMessageHyperlinkListener(IHyperlinkListener listener) {
-			if (listeners != null) {
-				listeners.remove(listener);
-				if (messageHyperlink != null)
-					messageHyperlink.removeHyperlinkListener(listener);
-				if (listeners.isEmpty())
-					listeners = null;
-				ensureControlExists();
-				if (listeners == null && !isDisposed())
-					updateForeground();
-			}
-		}
-
-		private void ensureControlExists() {
-			if (needHyperlink()) {
-				if (messageLabel != null)
-					messageLabel.setVisible(false);
-				if (messageHyperlink == null) {
-					messageHyperlink = new Hyperlink(FormHeading.this, SWT.NULL);
-					messageHyperlink.setUnderlined(true);
-					messageHyperlink.setText(message);
-					messageHyperlink.setHref(messages);
-					Object[] llist = listeners.getListeners();
-					for (int i = 0; i < llist.length; i++)
-						messageHyperlink
-								.addHyperlinkListener((IHyperlinkListener) llist[i]);
-					if (messageToolTipManager != null)
-						messageToolTipManager.createToolTip(messageHyperlink, false);
-				} else if (!messageHyperlink.getVisible()) {
-					messageHyperlink.setText(message);
-					messageHyperlink.setHref(messages);
-					messageHyperlink.setVisible(true);
-				}
-			} else {
-				// need a label
-				if (messageHyperlink != null)
-					messageHyperlink.setVisible(false);
-				if (messageLabel == null) {
-					messageLabel = new CLabel(FormHeading.this, SWT.NULL);
-					messageLabel.setText(message);
-					if (messageToolTipManager != null)
-						messageToolTipManager.createToolTip(messageLabel, false);
-				} else if (!messageLabel.getVisible()) {
-					messageLabel.setText(message);
-					messageLabel.setVisible(true);
-				}
-			}
-			layout(true);
-		}
-
-		private boolean needHyperlink() {
-			return messageType > 0 && listeners != null;
-		}
-
-		public void setBackground(Color bg) {
-			if (messageHyperlink != null)
-				messageHyperlink.setBackground(bg);
-			if (messageLabel != null)
-				messageLabel.setBackground(bg);
-		}
-
-		public void setForeground(Color fg) {
-			this.fg = fg;
-		}
-
-		private void updateForeground() {
-			Color theFg;
-
-			switch (messageType) {
-			case IMessageProvider.ERROR:
-				theFg = getDisplay().getSystemColor(SWT.COLOR_RED);
-				break;
-			case IMessageProvider.WARNING:
-				theFg = getDisplay().getSystemColor(SWT.COLOR_DARK_YELLOW);
-				break;
-			default:
-				theFg = fg;
-			}
-			getMessageControl().setForeground(theFg);
-		}
-	}
-
-	/**
-	 * Creates the form content control as a child of the provided parent.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 */
-	public FormHeading(Composite parent, int style) {
-		super(parent, style);
-		setBackgroundMode(SWT.INHERIT_DEFAULT);
-		addListener(SWT.Paint, new Listener() {
-			public void handleEvent(Event e) {
-				onPaint(e.gc);
-			}
-		});
-		addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event e) {
-				if (gradientImage != null) {
-					FormImages.getInstance().markFinished(gradientImage);
-					gradientImage = null;
-				}
-			}
-		});
-		addListener(SWT.Resize, new Listener() {
-			public void handleEvent(Event e) {
-				if (gradientInfo != null
-						|| (backgroundImage != null && !isBackgroundImageTiled()))
-					updateGradientImage();
-			}
-		});
-		addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent e) {
-				updateTitleRegionHoverState(e);
-			}
-		});
-		addMouseTrackListener(new MouseTrackListener() {
-			public void mouseEnter(MouseEvent e) {
-				updateTitleRegionHoverState(e);
-			}
-
-			public void mouseExit(MouseEvent e) {
-				titleRegion.setHoverState(TitleRegion.STATE_NORMAL);
-			}
-
-			public void mouseHover(MouseEvent e) {
-			}
-		});
-		super.setLayout(new FormHeadingLayout());
-		titleRegion = new TitleRegion(this);
-	}
-
-	/**
-	 * Fully delegates the size computation to the internal layout manager.
-	 */
-	public final Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((FormHeadingLayout) getLayout()).computeSize(this, wHint,
-				hHint, changed);
-	}
-
-	/**
-	 * Prevents from changing the custom control layout.
-	 */
-	public final void setLayout(Layout layout) {
-	}
-
-	/**
-	 * Returns the title text that will be rendered at the top of the form.
-	 * 
-	 * @return the title text
-	 */
-	public String getText() {
-		return titleRegion.getText();
-	}
-
-	/**
-	 * Returns the title image that will be rendered to the left of the title.
-	 * 
-	 * @return the title image
-	 * @since 3.2
-	 */
-	public Image getImage() {
-		return titleRegion.getImage();
-	}
-
-	/**
-	 * Sets the background color of the header.
-	 */
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		internalSetBackground(bg);
-	}
-
-	private void internalSetBackground(Color bg) {
-		titleRegion.setBackground(bg);
-		if (messageRegion != null)
-			messageRegion.setBackground(bg);
-		if (toolBarManager != null)
-			toolBarManager.getControl().setBackground(bg);
-		putColor(COLOR_BASE_BG, bg);
-	}
-
-	/**
-	 * Sets the foreground color of the header.
-	 */
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		titleRegion.setForeground(fg);
-		if (messageRegion != null)
-			messageRegion.setForeground(fg);
-	}
-
-	/**
-	 * Sets the text to be rendered at the top of the form above the body as a
-	 * title.
-	 * 
-	 * @param text
-	 *            the title text
-	 */
-	public void setText(String text) {
-		titleRegion.setText(text);
-	}
-
-	public void setFont(Font font) {
-		super.setFont(font);
-		titleRegion.setFont(font);
-	}
-
-	/**
-	 * Sets the image to be rendered to the left of the title.
-	 * 
-	 * @param image
-	 *            the title image or <code>null</code> to show no image.
-	 * @since 3.2
-	 */
-	public void setImage(Image image) {
-		titleRegion.setImage(image);
-		if (messageRegion != null)
-			titleRegion.updateImage(messageRegion.getMessageImage(), true);
-		else
-			titleRegion.updateImage(null, true);
-	}
-
-	public void setTextBackground(Color[] gradientColors, int[] percents,
-			boolean vertical) {
-		if (gradientColors != null) {
-			gradientInfo = new GradientInfo();
-			gradientInfo.gradientColors = gradientColors;
-			gradientInfo.percents = percents;
-			gradientInfo.vertical = vertical;
-			setBackground(null);
-			updateGradientImage();
-		} else {
-			// reset
-			gradientInfo = null;
-			if (gradientImage != null) {
-				FormImages.getInstance().markFinished(gradientImage);
-				gradientImage = null;
-				setBackgroundImage(null);
-			}
-		}
-	}
-
-	public void setHeadingBackgroundImage(Image image) {
-		this.backgroundImage = image;
-		if (image != null)
-			setBackground(null);
-		if (isBackgroundImageTiled()) {
-			setBackgroundImage(image);
-		} else
-			updateGradientImage();
-	}
-
-	public Image getHeadingBackgroundImage() {
-		return backgroundImage;
-	}
-
-	public void setBackgroundImageTiled(boolean tiled) {
-		if (tiled)
-			flags |= BACKGROUND_IMAGE_TILED;
-		else
-			flags &= ~BACKGROUND_IMAGE_TILED;
-		setHeadingBackgroundImage(this.backgroundImage);
-	}
-
-	public boolean isBackgroundImageTiled() {
-		return (flags & BACKGROUND_IMAGE_TILED) != 0;
-	}
-
-	public void setBackgroundImage(Image image) {
-		super.setBackgroundImage(image);
-		if (image != null) {
-			internalSetBackground(null);
-		}
-	}
-
-	/**
-	 * Returns the tool bar manager that is used to manage tool items in the
-	 * form's title area.
-	 * 
-	 * @return form tool bar manager
-	 */
-	public IToolBarManager getToolBarManager() {
-		if (toolBarManager == null) {
-			toolBarManager = new ToolBarManager(SWT.FLAT);
-			ToolBar toolbar = toolBarManager.createControl(this);
-			toolbar.setBackground(getBackground());
-			toolbar.setForeground(getForeground());
-			toolbar.setCursor(FormsResources.getHandCursor());
-			addDisposeListener(new DisposeListener() {
-				public void widgetDisposed(DisposeEvent e) {
-					if (toolBarManager != null) {
-						toolBarManager.dispose();
-						toolBarManager = null;
-					}
-				}
-			});
-		}
-		return toolBarManager;
-	}
-
-	/**
-	 * Returns the menu manager that is used to manage tool items in the form's
-	 * title area.
-	 * 
-	 * @return form drop-down menu manager
-	 * @since 3.3
-	 */
-	public IMenuManager getMenuManager() {
-		return titleRegion.getMenuManager();
-	}
-
-	/**
-	 * Updates the local tool bar manager if used. Does nothing if local tool
-	 * bar manager has not been created yet.
-	 */
-	public void updateToolBar() {
-		if (toolBarManager != null)
-			toolBarManager.update(false);
-	}
-
-	private void onPaint(GC gc) {
-		if (!isSeparatorVisible() && getBackgroundImage() == null)
-			return;
-		Rectangle carea = getClientArea();
-		Image buffer = new Image(getDisplay(), carea.width, carea.height);
-		buffer.setBackground(getBackground());
-		GC igc = new GC(buffer);
-		igc.setBackground(getBackground());
-		igc.fillRectangle(0, 0, carea.width, carea.height);
-		if (getBackgroundImage() != null) {
-			if (gradientInfo != null)
-				drawBackground(igc, carea.x, carea.y, carea.width, carea.height);
-			else {
-				Image bgImage = getBackgroundImage();
-				Rectangle ibounds = bgImage.getBounds();
-				drawBackground(igc, carea.x, carea.y, ibounds.width,
-						ibounds.height);
-			}
-		}
-
-		if (isSeparatorVisible()) {
-			// bg separator
-			if (hasColor(IFormColors.H_BOTTOM_KEYLINE1))
-				igc.setForeground(getColor(IFormColors.H_BOTTOM_KEYLINE1));
-			else
-				igc.setForeground(getBackground());
-			igc.drawLine(carea.x, carea.height - 2, carea.x + carea.width - 1,
-					carea.height - 2);
-			if (hasColor(IFormColors.H_BOTTOM_KEYLINE2))
-				igc.setForeground(getColor(IFormColors.H_BOTTOM_KEYLINE2));
-			else
-				igc.setForeground(getForeground());
-			igc.drawLine(carea.x, carea.height - 1, carea.x + carea.width - 1,
-					carea.height - 1);
-		}
-		igc.dispose();
-		gc.drawImage(buffer, carea.x, carea.y);
-		buffer.dispose();
-	}
-
-	private void updateTitleRegionHoverState(MouseEvent e) {
-		Rectangle titleRect = titleRegion.getBounds();
-		titleRect.width += titleRect.x + 15;
-		titleRect.height += titleRect.y + 15;
-		titleRect.x = 0;
-		titleRect.y = 0;
-		if (titleRect.contains(e.x, e.y))
-			titleRegion.setHoverState(TitleRegion.STATE_HOVER_LIGHT);
-		else
-			titleRegion.setHoverState(TitleRegion.STATE_NORMAL);
-	}
-
-	private void updateGradientImage() {
-		Rectangle rect = getBounds();
-		if (gradientImage != null) {
-			FormImages.getInstance().markFinished(gradientImage);
-			gradientImage = null;
-		}
-		if (gradientInfo != null) {
-			gradientImage = FormImages.getInstance().getGradient(gradientInfo.gradientColors, gradientInfo.percents,
-					gradientInfo.vertical ? rect.height : rect.width, gradientInfo.vertical, getColor(COLOR_BASE_BG));
-		} else if (backgroundImage != null && !isBackgroundImageTiled()) {
-			gradientImage = new Image(getDisplay(), Math.max(rect.width, 1),
-					Math.max(rect.height, 1));
-			gradientImage.setBackground(getBackground());
-			GC gc = new GC(gradientImage);
-			gc.drawImage(backgroundImage, 0, 0);
-			gc.dispose();
-		}
-		setBackgroundImage(gradientImage);
-	}
-
-	public boolean isSeparatorVisible() {
-		return (flags & SEPARATOR) != 0;
-	}
-
-	public void setSeparatorVisible(boolean addSeparator) {
-		if (addSeparator)
-			flags |= SEPARATOR;
-		else
-			flags &= ~SEPARATOR;
-	}
-
-	public void setToolBarAlignment(int alignment) {
-		if (alignment == SWT.BOTTOM)
-			flags |= BOTTOM_TOOLBAR;
-		else
-			flags &= ~BOTTOM_TOOLBAR;
-	}
-
-	public int getToolBarAlignment() {
-		return (flags & BOTTOM_TOOLBAR) != 0 ? SWT.BOTTOM : SWT.TOP;
-	}
-
-	public void addMessageHyperlinkListener(IHyperlinkListener listener) {
-		ensureMessageRegionExists();
-		messageRegion.addMessageHyperlinkListener(listener);
-	}
-
-	public void removeMessageHyperlinkListener(IHyperlinkListener listener) {
-		if (messageRegion != null)
-			messageRegion.removeMessageHyperlinkListener(listener);
-	}
-
-	public String getMessage() {
-		return messageRegion != null ? messageRegion.getMessage() : null;
-	}
-
-	public int getMessageType() {
-		return messageRegion != null ? messageRegion.getMessageType() : 0;
-	}
-
-	public IMessage[] getChildrenMessages() {
-		return messageRegion != null ? messageRegion.getChildrenMessages()
-				: NULL_MESSAGE_ARRAY;
-	}
-
-	private void ensureMessageRegionExists() {
-		// ensure message region exists
-		if (messageRegion == null)
-			messageRegion = new MessageRegion();
-	}
-
-	public void showMessage(String newMessage, int type, IMessage[] messages) {
-		if (messageRegion == null) {
-			// check the trivial case
-			if (newMessage == null)
-				return;
-		} else if (messageRegion.isDisposed())
-			return;
-		ensureMessageRegionExists();
-		messageRegion.showMessage(newMessage, type, messages);
-		titleRegion.updateImage(messageRegion.getMessageImage(), false);
-		if (messageToolTipManager != null)
-			messageToolTipManager.update();
-		layout();
-		redraw();
-	}
-
-	/**
-	 * Tests if the form is in the 'busy' state.
-	 * 
-	 * @return <code>true</code> if busy, <code>false</code> otherwise.
-	 */
-
-	public boolean isBusy() {
-		return titleRegion.isBusy();
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 */
-
-	public void setBusy(boolean busy) {
-		if (titleRegion.setBusy(busy))
-			layout();
-	}
-
-	public Control getHeadClient() {
-		return headClient;
-	}
-
-	public void setHeadClient(Control headClient) {
-		if (headClient != null)
-			Assert.isTrue(headClient.getParent() == this);
-		this.headClient = headClient;
-		layout();
-	}
-
-	public void putColor(String key, Color color) {
-		if (color == null)
-			colors.remove(key);
-		else
-			colors.put(key, color);
-	}
-
-	public Color getColor(String key) {
-		return (Color) colors.get(key);
-	}
-
-	public boolean hasColor(String key) {
-		return colors.containsKey(key);
-	}
-
-	public void addDragSupport(int operations, Transfer[] transferTypes,
-			DragSourceListener listener) {
-		titleRegion.addDragSupport(operations, transferTypes, listener);
-	}
-
-	public void addDropSupport(int operations, Transfer[] transferTypes,
-			DropTargetListener listener) {
-		titleRegion.addDropSupport(operations, transferTypes, listener);
-	}
-
-	public IMessageToolTipManager getMessageToolTipManager() {
-		return messageToolTipManager;
-	}
-
-	public void setMessageToolTipManager(
-			IMessageToolTipManager messageToolTipManager) {
-		this.messageToolTipManager = messageToolTipManager;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java
deleted file mode 100644
index 830f7de..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormImages.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Wang Yizhuo (wangyizhuo@gmail.com) - patch (see Bugzilla #239178) 
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import java.util.Arrays;
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.LocalResourceManager;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.RGB;
-
-public class FormImages {
-	private static FormImages instance;
-
-	public static FormImages getInstance() {
-		if (instance == null)
-			instance = new FormImages();
-		return instance;
-	}
-
-	private LocalResourceManager resources;
-	private HashMap descriptors;
-	
-	private FormImages() {
-	}
-	
-	private abstract class AbstractImageDescriptor extends ImageDescriptor {
-		RGB[] fRGBs;
-		int fLength;
-		
-		AbstractImageDescriptor(Color[] colors, int length) {
-			fRGBs = new RGB[colors.length];
-			for (int i = 0; i < colors.length; i++) {
-				Color color = colors[i];
-				fRGBs[i] = color == null ? null : color.getRGB();
-			}
-			fLength = length;
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof AbstractImageDescriptor) {
-				AbstractImageDescriptor id = (AbstractImageDescriptor)obj;
-				if (id.fRGBs.length == fRGBs.length) {
-					boolean result = id.fLength == fLength;
-					for (int i = 0; i < fRGBs.length && result; i++) {
-						result = result && id.fRGBs[i].equals(fRGBs[i]);
-					}
-					return result;
-				}
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			int hash = 0;
-			for (int i = 0; i < fRGBs.length; i++)
-				hash = hash * 7 + fRGBs[i].hashCode();
-			hash = hash * 7 + fLength;
-			return hash;
-		}
-	}
-	
-	private class SimpleImageDescriptor extends AbstractImageDescriptor{
-		private int fTheight;
-		private int fMarginHeight;
-		
-		SimpleImageDescriptor (Color color1, Color color2,
-				int realtheight, int theight, int marginHeight) {
-			super(new Color[] {color1, color2}, realtheight);
-			fTheight = theight;
-			fMarginHeight = marginHeight;
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof SimpleImageDescriptor) {
-				SimpleImageDescriptor id = (SimpleImageDescriptor) obj;
-				if (super.equals(obj)  &&
-						id.fTheight == fTheight && id.fMarginHeight == fMarginHeight)
-					return true;
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			int hash = super.hashCode();
-			hash = hash * 7 + new Integer(fTheight).hashCode();
-			hash = hash * 7 + new Integer(fMarginHeight).hashCode();
-			return hash;
-		}
-
-		public ImageData getImageData() {
-			return null;
-		}
-		
-		public Image createImage(boolean returnMissingImageOnError,	Device device) {
-			Image image = new Image(device, 1, fLength);
-			Color color1 = new Color(device, fRGBs[0]);
-			Color color2 = new Color(device, fRGBs[1]);
-			image.setBackground(color1);
-			GC gc = new GC(image);
-			gc.setBackground(color1);
-			gc.fillRectangle(0, 0, 1, fLength);
-			gc.setForeground(color2);
-			gc.setBackground(color1);
-			gc.fillGradientRectangle(0, fMarginHeight + 2, 1, fTheight - 2, true);
-			gc.dispose();
-			color1.dispose();
-			color2.dispose();
-			return image;
-		}
-	}
-	
-	private class ComplexImageDescriptor extends AbstractImageDescriptor {
-		RGB fBgRGB;
-		boolean fVertical;
-		int[] fPercents;
-		
-		public ComplexImageDescriptor(Color[] colors, int length,
-				int[] percents, boolean vertical, Color bg) {
-			super(colors, length);
-			fBgRGB = bg == null ? null : bg.getRGB();
-			fVertical = vertical;
-			fPercents = percents;
-		}
-		
-		public boolean equals(Object obj) {
-			if (obj instanceof ComplexImageDescriptor) {
-				ComplexImageDescriptor id = (ComplexImageDescriptor) obj;
-				if (super.equals(obj)  &&
-						id.fVertical == fVertical && Arrays.equals(id.fPercents, fPercents)) {
-					if ((id.fBgRGB == null && fBgRGB == null) ||
-							(id.fBgRGB != null && id.fBgRGB.equals(fBgRGB)))
-						return true;
-					// if the only thing that isn't the same is the background color
-					// still return true if it does not matter (percents add up to 100)
-					int sum = 0;
-					for (int i = 0; i < fPercents.length; i++)
-						sum += fPercents[i];
-					if (sum >= 100)
-						return true;
-				}
-			}
-			return false;
-		}
-		
-		public int hashCode() {
-			int hash = super.hashCode();
-			hash = hash * 7 + new Boolean(fVertical).hashCode();
-			for (int i = 0; i < fPercents.length; i++)
-				hash = hash * 7 + new Integer(fPercents[i]).hashCode();
-			return hash;
-		}
-
-		public ImageData getImageData() {
-			return null;
-		}
-		
-		public Image createImage(boolean returnMissingImageOnError,	Device device) {
-			int width = fVertical ? 1 : fLength;
-			int height = fVertical ? fLength : 1;
-			Image gradient = new Image(device, Math.max(width, 1), Math
-					.max(height, 1));
-			GC gc = new GC(gradient);
-			Color[] colors = new Color[fRGBs.length];
-			for (int i = 0; i < colors.length; i++)
-				colors[i] = new Color(device, fRGBs[i]);
-			Color bg = fBgRGB == null ? null : new Color(device, fBgRGB);
-			drawTextGradient(gc, width, height, colors, fPercents, fVertical, bg);
-			gc.dispose();
-			for (int i = 0; i < colors.length; i++)
-				colors[i].dispose();
-			if (bg != null)
-				bg.dispose();
-			return gradient;
-		}
-
-		private void drawTextGradient(GC gc, int width, int height, Color[] colors,
-				int[] percents, boolean vertical, Color bg) {
-			final Color oldBackground = gc.getBackground();
-			if (colors.length == 1) {
-				if (colors[0] != null)
-					gc.setBackground(colors[0]);
-				gc.fillRectangle(0, 0, width, height);
-			} else {
-				final Color oldForeground = gc.getForeground();
-				Color lastColor = colors[0];
-				if (lastColor == null)
-					lastColor = oldBackground;
-				int pos = 0;
-				for (int i = 0; i < percents.length; ++i) {
-					gc.setForeground(lastColor);
-					lastColor = colors[i + 1];
-					if (lastColor == null)
-						lastColor = oldBackground;
-					gc.setBackground(lastColor);
-					if (vertical) {
-						int gradientHeight = percents[i] * height / 100;
-						
-						gc.fillGradientRectangle(0, pos, width, gradientHeight,
-								true);
-						pos += gradientHeight;
-					} else {
-						int gradientWidth = percents[i] * width / 100;
-						
-						gc.fillGradientRectangle(pos, 0, gradientWidth, height,
-								false);
-						pos += gradientWidth;
-					}
-				}
-				if (vertical && pos < height) {
-					if (bg != null)
-						gc.setBackground(bg);
-					gc.fillRectangle(0, pos, width, height - pos);
-				}
-				if (!vertical && pos < width) {
-					if (bg != null)
-						gc.setBackground(bg);
-					gc.fillRectangle(pos, 0, width - pos, height);
-				}
-				gc.setForeground(oldForeground);
-			}
-		}
-	}
-	
-	public Image getGradient(Color color1, Color color2,
-			int realtheight, int theight, int marginHeight) {
-		if (color1 == null || color1.isDisposed() || color2 == null || color2.isDisposed())
-			return null;
-		AbstractImageDescriptor desc = new SimpleImageDescriptor(color1, color2, realtheight, theight, marginHeight);
-		return getGradient(desc);
-	}
-	
-	public Image getGradient(Color[] colors, int[] percents,
-			int length, boolean vertical, Color bg) {
-		if (colors.length == 0)
-			return null;
-		for (int i = 0; i < colors.length; i++)
-			if (colors[i] == null || colors[i].isDisposed())
-				return null;
-		if (bg != null && bg.isDisposed())
-			return null;
-		AbstractImageDescriptor desc = new ComplexImageDescriptor(colors, length, percents, vertical, bg);
-		return getGradient(desc);
-	}
-	
-	private synchronized Image getGradient(AbstractImageDescriptor desc) {
-		checkHashMaps();
-		Image result = getResourceManager().createImage(desc);
-		descriptors.put(result, desc);
-		return result;
-	}
-	
-	public synchronized boolean markFinished(Image image) {
-		checkHashMaps();
-		AbstractImageDescriptor desc = (AbstractImageDescriptor)descriptors.get(image);
-		if (desc != null) {
-			getResourceManager().destroyImage(desc);
-			if (getResourceManager().find(desc) == null) {
-				descriptors.remove(image);
-				validateHashMaps();
-			}
-			return true;
-		}
-		// if the image was not found, dispose of it for the caller
-		image.dispose();
-		return false;
-	}
-	
-	private LocalResourceManager getResourceManager() {
-		if (resources == null)
-			resources = new LocalResourceManager(JFaceResources.getResources());
-		return resources;
-	}
-
-	private void checkHashMaps() {
-		if (descriptors == null)
-			descriptors = new HashMap();
-	}
-	
-	private void validateHashMaps() {
-		if (descriptors.size() == 0)
-			descriptors = null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormTextModel.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormTextModel.java
deleted file mode 100644
index 1bcf3b6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormTextModel.java
+++ /dev/null
@@ -1,769 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.Vector;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-public class FormTextModel {
-	
-	/*
-	 * This class prevents parse errors from being written to standard output
-	 */
-	public class ParseErrorHandler implements ErrorHandler {
-
-		public void error(SAXParseException arg0) throws SAXException {
-		}
-
-		public void fatalError(SAXParseException arg0) throws SAXException {
-		}
-
-		public void warning(SAXParseException arg0) throws SAXException {
-		}
-	}
-
-	private static final DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
-			.newInstance();
-
-	private boolean whitespaceNormalized = true;
-
-	private Vector paragraphs;
-
-	private IFocusSelectable[] selectableSegments;
-
-	private int selectedSegmentIndex = -1;
-	
-	private int savedSelectedLinkIndex = -1;
-
-	private HyperlinkSettings hyperlinkSettings;
-
-	public static final String BOLD_FONT_ID = "f.____bold"; //$NON-NLS-1$
-
-	//private static final int TEXT_ONLY_LINK = 1;
-
-	//private static final int IMG_ONLY_LINK = 2;
-
-	//private static final int TEXT_AND_IMAGES_LINK = 3;
-
-	public FormTextModel() {
-		reset();
-	}
-
-	/*
-	 * @see ITextModel#getParagraphs()
-	 */
-	public Paragraph[] getParagraphs() {
-		if (paragraphs == null)
-			return new Paragraph[0];
-		return (Paragraph[]) paragraphs
-				.toArray(new Paragraph[paragraphs.size()]);
-	}
-
-	public String getAccessibleText() {
-		if (paragraphs == null)
-			return ""; //$NON-NLS-1$
-		StringBuffer sbuf = new StringBuffer();
-		for (int i = 0; i < paragraphs.size(); i++) {
-			Paragraph paragraph = (Paragraph) paragraphs.get(i);
-			String text = paragraph.getAccessibleText();
-			sbuf.append(text);
-		}
-		return sbuf.toString();
-	}
-
-	/*
-	 * @see ITextModel#parse(String)
-	 */
-	public void parseTaggedText(String taggedText, boolean expandURLs) {
-		if (taggedText == null) {
-			reset();
-			return;
-		}
-		try {
-			InputStream stream = new ByteArrayInputStream(taggedText
-					.getBytes("UTF8")); //$NON-NLS-1$
-			parseInputStream(stream, expandURLs);
-		} catch (UnsupportedEncodingException e) {
-			SWT.error(SWT.ERROR_UNSUPPORTED_FORMAT, e);
-		}
-	}
-
-	public void parseInputStream(InputStream is, boolean expandURLs) {
-
-		documentBuilderFactory.setNamespaceAware(true);
-		documentBuilderFactory.setIgnoringComments(true);
-
-		reset();
-		try {
-			DocumentBuilder parser = documentBuilderFactory
-					.newDocumentBuilder();
-			parser.setErrorHandler(new ParseErrorHandler());
-			InputSource source = new InputSource(is);
-			Document doc = parser.parse(source);
-			processDocument(doc, expandURLs);
-		} catch (ParserConfigurationException e) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, e, " " + e.getMessage()); //$NON-NLS-1$
-		} catch (SAXException e) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT, e, " " + e.getMessage()); //$NON-NLS-1$
-		} catch (IOException e) {
-			SWT.error(SWT.ERROR_IO, e);
-		}
-	}
-
-	private void processDocument(Document doc, boolean expandURLs) {
-		Node root = doc.getDocumentElement();
-		NodeList children = root.getChildNodes();
-		processSubnodes(paragraphs, children, expandURLs);
-	}
-
-	private void processSubnodes(Vector plist, NodeList children, boolean expandURLs) {
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() == Node.TEXT_NODE) {
-				// Make an implicit paragraph
-				String text = getSingleNodeText(child);
-				if (text != null && !isIgnorableWhiteSpace(text, true)) {
-					Paragraph p = new Paragraph(true);
-					p.parseRegularText(text, expandURLs, true,
-							getHyperlinkSettings(), null);
-					plist.add(p);
-				}
-			} else if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String tag = child.getNodeName().toLowerCase();
-				if (tag.equals("p")) { //$NON-NLS-1$
-					Paragraph p = processParagraph(child, expandURLs);
-					if (p != null)
-						plist.add(p);
-				} else if (tag.equals("li")) { //$NON-NLS-1$
-					Paragraph p = processListItem(child, expandURLs);
-					if (p != null)
-						plist.add(p);
-				}
-			}
-		}
-	}
-
-	private Paragraph processParagraph(Node paragraph, boolean expandURLs) {
-		NodeList children = paragraph.getChildNodes();
-		NamedNodeMap atts = paragraph.getAttributes();
-		Node addSpaceAtt = atts.getNamedItem("addVerticalSpace"); //$NON-NLS-1$
-		boolean addSpace = true;
-
-		if (addSpaceAtt == null)
-			addSpaceAtt = atts.getNamedItem("vspace"); //$NON-NLS-1$
-
-		if (addSpaceAtt != null) {
-			String value = addSpaceAtt.getNodeValue();
-			addSpace = value.equalsIgnoreCase("true"); //$NON-NLS-1$
-		}
-		Paragraph p = new Paragraph(addSpace);
-
-		processSegments(p, children, expandURLs);
-		return p;
-	}
-
-	private Paragraph processListItem(Node listItem, boolean expandURLs) {
-		NodeList children = listItem.getChildNodes();
-		NamedNodeMap atts = listItem.getAttributes();
-		Node addSpaceAtt = atts.getNamedItem("addVerticalSpace");//$NON-NLS-1$
-		Node styleAtt = atts.getNamedItem("style");//$NON-NLS-1$
-		Node valueAtt = atts.getNamedItem("value");//$NON-NLS-1$
-		Node indentAtt = atts.getNamedItem("indent");//$NON-NLS-1$
-		Node bindentAtt = atts.getNamedItem("bindent");//$NON-NLS-1$
-		int style = BulletParagraph.CIRCLE;
-		int indent = -1;
-		int bindent = -1;
-		String text = null;
-		boolean addSpace = true;
-
-		if (addSpaceAtt != null) {
-			String value = addSpaceAtt.getNodeValue();
-			addSpace = value.equalsIgnoreCase("true"); //$NON-NLS-1$
-		}
-		if (styleAtt != null) {
-			String value = styleAtt.getNodeValue();
-			if (value.equalsIgnoreCase("text")) { //$NON-NLS-1$
-				style = BulletParagraph.TEXT;
-			} else if (value.equalsIgnoreCase("image")) { //$NON-NLS-1$
-				style = BulletParagraph.IMAGE;
-			} else if (value.equalsIgnoreCase("bullet")) { //$NON-NLS-1$
-				style = BulletParagraph.CIRCLE;
-			}
-		}
-		if (valueAtt != null) {
-			text = valueAtt.getNodeValue();
-			if (style == BulletParagraph.IMAGE)
-				text = "i." + text; //$NON-NLS-1$
-		}
-		if (indentAtt != null) {
-			String value = indentAtt.getNodeValue();
-			try {
-				indent = Integer.parseInt(value);
-			} catch (NumberFormatException e) {
-			}
-		}
-		if (bindentAtt != null) {
-			String value = bindentAtt.getNodeValue();
-			try {
-				bindent = Integer.parseInt(value);
-			} catch (NumberFormatException e) {
-			}
-		}
-
-		BulletParagraph p = new BulletParagraph(addSpace);
-		p.setIndent(indent);
-		p.setBulletIndent(bindent);
-		p.setBulletStyle(style);
-		p.setBulletText(text);
-
-		processSegments(p, children, expandURLs);
-		return p;
-	}
-
-	private void processSegments(Paragraph p, NodeList children,
-			boolean expandURLs) {
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			ParagraphSegment segment = null;
-
-			if (child.getNodeType() == Node.TEXT_NODE) {
-				String value = getSingleNodeText(child);
-
-				if (value != null && !isIgnorableWhiteSpace(value, false)) {
-					p.parseRegularText(value, expandURLs, true,
-							getHyperlinkSettings(), null);
-				}
-			} else if (child.getNodeType() == Node.ELEMENT_NODE) {
-				String name = child.getNodeName();
-				if (name.equalsIgnoreCase("img")) { //$NON-NLS-1$
-					segment = processImageSegment(child);
-				} else if (name.equalsIgnoreCase("a")) { //$NON-NLS-1$
-					segment = processHyperlinkSegment(child,
-							getHyperlinkSettings());
-				} else if (name.equalsIgnoreCase("span")) { //$NON-NLS-1$
-					processTextSegment(p, expandURLs, child);
-				} else if (name.equalsIgnoreCase("b")) { //$NON-NLS-1$
-					String text = getNodeText(child);
-					String fontId = BOLD_FONT_ID;
-					p.parseRegularText(text, expandURLs, true,
-							getHyperlinkSettings(), fontId);
-				} else if (name.equalsIgnoreCase("br")) { //$NON-NLS-1$
-					segment = new BreakSegment();
-				} else if (name.equalsIgnoreCase("control")) { //$NON-NLS-1$
-					segment = processControlSegment(child);
-				}
-			}
-			if (segment != null) {
-				p.addSegment(segment);
-			}
-		}
-	}
-
-	private boolean isIgnorableWhiteSpace(String text, boolean ignoreSpaces) {
-		for (int i = 0; i < text.length(); i++) {
-			char c = text.charAt(i);
-			if (ignoreSpaces && c == ' ')
-				continue;
-			if (c == '\n' || c == '\r' || c == '\f')
-				continue;
-			return false;
-		}
-		return true;
-	}
-
-	private ImageSegment processImageSegment(Node image) {
-		ImageSegment segment = new ImageSegment();
-		processObjectSegment(segment, image, "i."); //$NON-NLS-1$
-		return segment;
-	}
-
-	private ControlSegment processControlSegment(Node control) {
-		ControlSegment segment = new ControlSegment();
-		processObjectSegment(segment, control, "o."); //$NON-NLS-1$
-		Node fill = control.getAttributes().getNamedItem("fill"); //$NON-NLS-1$
-		if (fill!=null) {
-			String value = fill.getNodeValue();
-			boolean doFill = value.equalsIgnoreCase("true"); //$NON-NLS-1$
-			segment.setFill(doFill);
-		}
-		try {
-			Node width = control.getAttributes().getNamedItem("width"); //$NON-NLS-1$
-			if (width!=null) {
-				String value = width.getNodeValue();
-				int doWidth = Integer.parseInt(value);
-				segment.setWidth(doWidth);
-			}
-			Node height = control.getAttributes().getNamedItem("height"); //$NON-NLS-1$
-			if (height!=null) {
-				String value = height.getNodeValue();
-				int doHeight = Integer.parseInt(value);
-				segment.setHeight(doHeight);
-			}
-		}
-		catch (NumberFormatException e) {
-			// ignore invalid width or height
-		}
-		return segment;
-	}
-
-	private void processObjectSegment(ObjectSegment segment, Node object, String prefix) {
-		NamedNodeMap atts = object.getAttributes();
-		Node id = atts.getNamedItem("href"); //$NON-NLS-1$
-		Node align = atts.getNamedItem("align"); //$NON-NLS-1$
-		if (id != null) {
-			String value = id.getNodeValue();
-			segment.setObjectId(prefix + value);
-		}
-		if (align != null) {
-			String value = align.getNodeValue().toLowerCase();
-			if (value.equals("top")) //$NON-NLS-1$
-				segment.setVerticalAlignment(ImageSegment.TOP);
-			else if (value.equals("middle")) //$NON-NLS-1$
-				segment.setVerticalAlignment(ImageSegment.MIDDLE);
-			else if (value.equals("bottom")) //$NON-NLS-1$
-				segment.setVerticalAlignment(ImageSegment.BOTTOM);
-		}
-	}
-
-	private void appendText(String value, StringBuffer buf, int[] spaceCounter) {
-		if (!whitespaceNormalized)
-			buf.append(value);
-		else {
-			for (int j = 0; j < value.length(); j++) {
-				char c = value.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);
-				}
-			}
-		}
-	}
-
-	private String getNormalizedText(String text) {
-		int[] spaceCounter = new int[1];
-		StringBuffer buf = new StringBuffer();
-
-		if (text == null)
-			return null;
-		appendText(text, buf, spaceCounter);
-		return buf.toString();
-	}
-
-	private String getSingleNodeText(Node node) {
-		return getNormalizedText(node.getNodeValue());
-	}
-
-	private String getNodeText(Node node) {
-		NodeList children = node.getChildNodes();
-		StringBuffer buf = new StringBuffer();
-		int[] spaceCounter = new int[1];
-
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() == Node.TEXT_NODE) {
-				String value = child.getNodeValue();
-				appendText(value, buf, spaceCounter);
-			}
-		}
-		return buf.toString().trim();
-	}
-
-	private ParagraphSegment processHyperlinkSegment(Node link,
-			HyperlinkSettings settings) {
-		NamedNodeMap atts = link.getAttributes();
-		String href = null;
-		boolean wrapAllowed = true;
-		String boldFontId = null;
-
-		Node hrefAtt = atts.getNamedItem("href"); //$NON-NLS-1$
-		if (hrefAtt != null) {
-			href = hrefAtt.getNodeValue();
-		}
-		Node boldAtt = atts.getNamedItem("bold"); //$NON-NLS-1$
-		if (boldAtt != null) {
-			boldFontId = BOLD_FONT_ID;
-		}
-		Node nowrap = atts.getNamedItem("nowrap"); //$NON-NLS-1$
-		if (nowrap != null) {
-			String value = nowrap.getNodeValue();
-			if (value != null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
-				wrapAllowed = false;
-		}
-		Object status = checkChildren(link);
-		if (status instanceof Node) {
-			Node child = (Node)status;
-			ImageHyperlinkSegment segment = new ImageHyperlinkSegment();
-			segment.setHref(href);
-			segment.setWordWrapAllowed(wrapAllowed);
-			Node alt = child.getAttributes().getNamedItem("alt"); //$NON-NLS-1$
-			if (alt!=null)
-				segment.setTooltipText(alt.getNodeValue());
-			Node text = child.getAttributes().getNamedItem("text"); //$NON-NLS-1$
-			if (text!=null)
-				segment.setText(text.getNodeValue());
-			processObjectSegment(segment, child, "i."); //$NON-NLS-1$
-			return segment;
-		}  else if (status instanceof String) {
-			String text = (String) status;
-			TextHyperlinkSegment segment = new TextHyperlinkSegment(text,
-					settings, null);
-			segment.setHref(href);
-			segment.setFontId(boldFontId);
-			Node alt = atts.getNamedItem("alt"); //$NON-NLS-1$
-			if (alt!=null)
-				segment.setTooltipText(alt.getNodeValue());			
-			segment.setWordWrapAllowed(wrapAllowed);
-			return segment;
-		} else {
-			AggregateHyperlinkSegment parent = new AggregateHyperlinkSegment();
-			parent.setHref(href);
-			NodeList children = link.getChildNodes();
-			for (int i = 0; i < children.getLength(); i++) {
-				Node child = children.item(i);
-				if (child.getNodeType() == Node.TEXT_NODE) {
-					String value = child.getNodeValue();
-					TextHyperlinkSegment ts = new TextHyperlinkSegment(
-							getNormalizedText(value), settings, null);
-					Node alt = atts.getNamedItem("alt"); //$NON-NLS-1$
-					if (alt!=null)
-						ts.setTooltipText(alt.getNodeValue());
-					ts.setWordWrapAllowed(wrapAllowed);
-					parent.add(ts);
-				} else if (child.getNodeType() == Node.ELEMENT_NODE) {
-					String name = child.getNodeName();
-					if (name.equalsIgnoreCase("img")) { //$NON-NLS-1$
-						ImageHyperlinkSegment is = new ImageHyperlinkSegment();
-						processObjectSegment(is, child, "i."); //$NON-NLS-1$
-						Node alt = child.getAttributes().getNamedItem("alt"); //$NON-NLS-1$
-						if (alt!=null)
-							is.setTooltipText(alt.getNodeValue());
-						parent.add(is);
-						is.setWordWrapAllowed(wrapAllowed);
-					}
-				}
-			}
-			return parent;
-		}
-	}
-
-	private Object checkChildren(Node node) {
-		boolean text = false;
-		Node imgNode = null;
-		//int status = 0;
-
-		NodeList children = node.getChildNodes();
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child.getNodeType() == Node.TEXT_NODE)
-				text = true;
-			else if (child.getNodeType() == Node.ELEMENT_NODE
-					&& child.getNodeName().equalsIgnoreCase("img")) { //$NON-NLS-1$
-				imgNode = child;
-			}
-		}
-		if (text && imgNode == null)
-			return getNodeText(node);
-		else if (!text && imgNode != null)
-			return imgNode;
-		else return null;
-	}
-
-	private void processTextSegment(Paragraph p, boolean expandURLs,
-			Node textNode) {
-		String text = getNodeText(textNode);
-
-		NamedNodeMap atts = textNode.getAttributes();
-		Node font = atts.getNamedItem("font"); //$NON-NLS-1$
-		Node color = atts.getNamedItem("color"); //$NON-NLS-1$
-		boolean wrapAllowed=true;
-		Node nowrap = atts.getNamedItem("nowrap"); //$NON-NLS-1$
-		if (nowrap != null) {
-			String value = nowrap.getNodeValue();
-			if (value != null && value.equalsIgnoreCase("true")) //$NON-NLS-1$
-				wrapAllowed = false;
-		}
-		String fontId = null;
-		String colorId = null;
-		if (font != null) {
-			fontId = "f." + font.getNodeValue(); //$NON-NLS-1$
-		}
-		if (color != null) {
-			colorId = "c." + color.getNodeValue(); //$NON-NLS-1$
-		}
-		p.parseRegularText(text, expandURLs, wrapAllowed, getHyperlinkSettings(), fontId,
-				colorId);
-	}
-
-	public void parseRegularText(String regularText, boolean convertURLs) {
-		reset();
-
-		if (regularText == null)
-			return;
-
-		regularText = getNormalizedText(regularText);
-
-		Paragraph p = new Paragraph(true);
-		paragraphs.add(p);
-		int pstart = 0;
-
-		for (int i = 0; i < regularText.length(); i++) {
-			char c = regularText.charAt(i);
-			if (p == null) {
-				p = new Paragraph(true);
-				paragraphs.add(p);
-			}
-			if (c == '\n') {
-				String text = regularText.substring(pstart, i);
-				pstart = i + 1;
-				p.parseRegularText(text, convertURLs, true, getHyperlinkSettings(),
-						null);
-				p = null;
-			}
-		}
-		if (p != null) {
-			// no new line
-			String text = regularText.substring(pstart);
-			p.parseRegularText(text, convertURLs, true, getHyperlinkSettings(), null);
-		}
-	}
-
-	public HyperlinkSettings getHyperlinkSettings() {
-		// #132723 cannot have null settings
-		if (hyperlinkSettings==null)
-			hyperlinkSettings = new HyperlinkSettings(SWTUtil.getStandardDisplay());
-		return hyperlinkSettings;
-	}
-
-	public void setHyperlinkSettings(HyperlinkSettings settings) {
-		this.hyperlinkSettings = settings;
-	}
-
-	private void reset() {
-		if (paragraphs == null)
-			paragraphs = new Vector();
-		paragraphs.clear();
-		selectedSegmentIndex = -1;
-		savedSelectedLinkIndex = -1;
-		selectableSegments = null;
-	}
-
-	IFocusSelectable[] getFocusSelectableSegments() {
-		if (selectableSegments != null || paragraphs == null)
-			return selectableSegments;
-		Vector result = new Vector();
-		for (int i = 0; i < paragraphs.size(); i++) {
-			Paragraph p = (Paragraph) paragraphs.get(i);
-			ParagraphSegment[] segments = p.getSegments();
-			for (int j = 0; j < segments.length; j++) {
-				if (segments[j] instanceof IFocusSelectable)
-					result.add(segments[j]);
-			}
-		}
-		selectableSegments = (IFocusSelectable[]) result
-				.toArray(new IFocusSelectable[result.size()]);
-		return selectableSegments;
-	}
-	
-	public IHyperlinkSegment getHyperlink(int index) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		if (selectables.length>index) {
-			IFocusSelectable link = selectables[index];
-			if (link instanceof IHyperlinkSegment)
-				return (IHyperlinkSegment)link;
-		}
-		return null;
-	}
-	
-	public IHyperlinkSegment findHyperlinkAt(int x, int y) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		for (int i = 0; i < selectables.length; i++) {
-			IFocusSelectable segment = selectables[i];
-			if (segment instanceof IHyperlinkSegment) {
-				IHyperlinkSegment link = (IHyperlinkSegment)segment;
-				if (link.contains(x, y))
-					return link;
-			}
-		}
-		return null;
-	}
-	
-	public int getHyperlinkCount() {
-		return getFocusSelectableSegments().length;
-	}
-	
-	public int indexOf(IHyperlinkSegment link) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		for (int i = 0; i < selectables.length; i++) {
-			IFocusSelectable segment = selectables[i];
-			if (segment instanceof IHyperlinkSegment) {
-				IHyperlinkSegment l = (IHyperlinkSegment)segment;
-				if (link==l)
-					return i;
-			}
-		}
-		return -1;
-	}
-
-	public ParagraphSegment findSegmentAt(int x, int y) {
-		for (int i = 0; i < paragraphs.size(); i++) {
-			Paragraph p = (Paragraph) paragraphs.get(i);
-			ParagraphSegment segment = p.findSegmentAt(x, y);
-			if (segment != null)
-				return segment;
-		}
-		return null;
-	}
-	
-	public void clearCache(String fontId) {
-		for (int i = 0; i < paragraphs.size(); i++) {
-			Paragraph p = (Paragraph) paragraphs.get(i);
-			p.clearCache(fontId);
-		}
-	}
-
-	public IFocusSelectable getSelectedSegment() {
-		if (selectableSegments==null || selectedSegmentIndex == -1)
-			return null;
-		return selectableSegments[selectedSegmentIndex];
-	}
-	
-	public int getSelectedSegmentIndex() {
-		return selectedSegmentIndex;
-	}
-	
-	public boolean linkExists(IHyperlinkSegment link) {
-		if (selectableSegments==null)
-			return false;
-		for (int i=0; i<selectableSegments.length; i++) {
-			if (selectableSegments[i]==link)
-				return true;
-		}
-		return false;
-	}
-
-	public boolean traverseFocusSelectableObjects(boolean next) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		if (selectables == null)
-			return false;
-		int size = selectables.length;
-		if (next) {
-			selectedSegmentIndex++;
-		} else
-			selectedSegmentIndex--;
-
-		if (selectedSegmentIndex < 0 || selectedSegmentIndex > size - 1) {
-			selectedSegmentIndex = -1;
-		}
-		return selectedSegmentIndex != -1;
-	}
-	
-	public IFocusSelectable getNextFocusSegment(boolean next) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		if (selectables == null)
-			return null;
-		int nextIndex = next?selectedSegmentIndex+1:selectedSegmentIndex-1;
-
-		if (nextIndex < 0 || nextIndex > selectables.length - 1) {
-			return null;
-		}
-		return selectables[nextIndex];
-	}
-	
-	public boolean restoreSavedLink() {
-		if (savedSelectedLinkIndex!= -1) {
-			selectedSegmentIndex = savedSelectedLinkIndex;
-			return true;
-		}
-		return false;
-	}
-
-	public void selectLink(IHyperlinkSegment link) {
-		if (link == null) {
-			savedSelectedLinkIndex = selectedSegmentIndex;	
-			selectedSegmentIndex = -1;
-		}
-		else {
-			select(link);
-
-		}
-	}
-	
-	public void select(IFocusSelectable selectable) {
-		IFocusSelectable[] selectables = getFocusSelectableSegments();
-		selectedSegmentIndex = -1;
-		if (selectables == null)
-			return;
-		for (int i = 0; i < selectables.length; i++) {
-			if (selectables[i].equals(selectable)) {
-				selectedSegmentIndex = i;
-				break;
-			}
-		}
-	}
-
-	public boolean hasFocusSegments() {
-		IFocusSelectable[] segments = getFocusSelectableSegments();
-		if (segments.length > 0)
-			return true;
-		return false;
-	}
-
-	public void dispose() {
-		paragraphs = null;
-		selectedSegmentIndex = -1;
-		savedSelectedLinkIndex = -1;
-		selectableSegments = null;
-	}
-
-	/**
-	 * @return Returns the whitespaceNormalized.
-	 */
-	public boolean isWhitespaceNormalized() {
-		return whitespaceNormalized;
-	}
-
-	/**
-	 * @param whitespaceNormalized
-	 *            The whitespaceNormalized to set.
-	 */
-	public void setWhitespaceNormalized(boolean whitespaceNormalized) {
-		this.whitespaceNormalized = whitespaceNormalized;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java
deleted file mode 100644
index db479e9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormUtil.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chriss Gross (schtoo@schtoo.com) - fix for 61670
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Combo;
-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.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.widgets.ColumnLayout;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-
-import com.ibm.icu.text.BreakIterator;
-
-public class FormUtil {
-	public static final String PLUGIN_ID = "org.eclipse.ui.forms"; //$NON-NLS-1$
-
-	static final int H_SCROLL_INCREMENT = 5;
-
-	static final int V_SCROLL_INCREMENT = 64;
-
-	public static final String DEBUG = PLUGIN_ID + "/debug"; //$NON-NLS-1$
-
-	public static final String DEBUG_TEXT = DEBUG + "/text"; //$NON-NLS-1$
-	public static final String DEBUG_TEXTSIZE = DEBUG + "/textsize"; //$NON-NLS-1$
-
-	public static final String DEBUG_FOCUS = DEBUG + "/focus"; //$NON-NLS-1$
-
-	public static final String FOCUS_SCROLLING = "focusScrolling"; //$NON-NLS-1$
-	
-	public static final String IGNORE_BODY = "__ignore_body__"; //$NON-NLS-1$
-
-	public static Text createText(Composite parent, String label,
-			FormToolkit factory) {
-		return createText(parent, label, factory, 1);
-	}
-
-	public static Text createText(Composite parent, String label,
-			FormToolkit factory, int span) {
-		factory.createLabel(parent, label);
-		Text text = factory.createText(parent, ""); //$NON-NLS-1$
-		int hfill = span == 1 ? GridData.FILL_HORIZONTAL
-				: GridData.HORIZONTAL_ALIGN_FILL;
-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = span;
-		text.setLayoutData(gd);
-		return text;
-	}
-
-	public static Text createText(Composite parent, String label,
-			FormToolkit factory, int span, int style) {
-		Label l = factory.createLabel(parent, label);
-		if ((style & SWT.MULTI) != 0) {
-			GridData gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-			l.setLayoutData(gd);
-		}
-		Text text = factory.createText(parent, "", style); //$NON-NLS-1$
-		int hfill = span == 1 ? GridData.FILL_HORIZONTAL
-				: GridData.HORIZONTAL_ALIGN_FILL;
-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = span;
-		text.setLayoutData(gd);
-		return text;
-	}
-
-	public static Text createText(Composite parent, FormToolkit factory,
-			int span) {
-		Text text = factory.createText(parent, ""); //$NON-NLS-1$
-		int hfill = span == 1 ? GridData.FILL_HORIZONTAL
-				: GridData.HORIZONTAL_ALIGN_FILL;
-		GridData gd = new GridData(hfill | GridData.VERTICAL_ALIGN_CENTER);
-		gd.horizontalSpan = span;
-		text.setLayoutData(gd);
-		return text;
-	}
-
-	public static int computeMinimumWidth(GC gc, String text) {
-		BreakIterator wb = BreakIterator.getWordInstance();
-		wb.setText(text);
-		int last = 0;
-
-		int width = 0;
-
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			String word = text.substring(last, loc);
-			Point extent = gc.textExtent(word);
-			width = Math.max(width, extent.x);
-			last = loc;
-		}
-		String lastWord = text.substring(last);
-		Point extent = gc.textExtent(lastWord);
-		width = Math.max(width, extent.x);
-		return width;
-	}
-
-	public static Point computeWrapSize(GC gc, String text, int wHint) {
-		BreakIterator wb = BreakIterator.getWordInstance();
-		wb.setText(text);
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-
-		int saved = 0;
-		int last = 0;
-		int height = lineHeight;
-		int maxWidth = 0;
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			String word = text.substring(saved, loc);
-			Point extent = gc.textExtent(word);
-			if (extent.x > wHint) {
-				// overflow
-				saved = last;
-				height += extent.y;
-				// switch to current word so maxWidth will accommodate very long single words
-				word = text.substring(last, loc);
-				extent = gc.textExtent(word);
-			}
-			maxWidth = Math.max(maxWidth, extent.x);
-			last = loc;
-		}
-		/*
-		 * Correct the height attribute in case it was calculated wrong due to wHint being less than maxWidth.
-		 * The recursive call proved to be the only thing that worked in all cases. Some attempts can be made
-		 * to estimate the height, but the algorithm needs to be run again to be sure.
-		 */
-		if (maxWidth > wHint)
-			return computeWrapSize(gc, text, maxWidth);
-		return new Point(maxWidth, height);
-	}
-
-	public static void paintWrapText(GC gc, String text, Rectangle bounds) {
-		paintWrapText(gc, text, bounds, false);
-	}
-
-	public static void paintWrapText(GC gc, String text, Rectangle bounds,
-			boolean underline) {
-		BreakIterator wb = BreakIterator.getWordInstance();
-		wb.setText(text);
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-		int descent = fm.getDescent();
-
-		int saved = 0;
-		int last = 0;
-		int y = bounds.y;
-		int width = bounds.width;
-
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			String line = text.substring(saved, loc);
-			Point extent = gc.textExtent(line);
-
-			if (extent.x > width) {
-				// overflow
-				String prevLine = text.substring(saved, last);
-				gc.drawText(prevLine, bounds.x, y, true);
-				if (underline) {
-					Point prevExtent = gc.textExtent(prevLine);
-					int lineY = y + lineHeight - descent + 1;
-					gc
-							.drawLine(bounds.x, lineY, bounds.x + prevExtent.x,
-									lineY);
-				}
-
-				saved = last;
-				y += lineHeight;
-			}
-			last = loc;
-		}
-		// paint the last line
-		String lastLine = text.substring(saved, last);
-		gc.drawText(lastLine, bounds.x, y, true);
-		if (underline) {
-			int lineY = y + lineHeight - descent + 1;
-			Point lastExtent = gc.textExtent(lastLine);
-			gc.drawLine(bounds.x, lineY, bounds.x + lastExtent.x, lineY);
-		}
-	}
-
-	public static ScrolledComposite getScrolledComposite(Control c) {
-		Composite parent = c.getParent();
-
-		while (parent != null) {
-			if (parent instanceof ScrolledComposite) {
-				return (ScrolledComposite) parent;
-			}
-			parent = parent.getParent();
-		}
-		return null;
-	}
-
-	public static void ensureVisible(Control c) {
-		ScrolledComposite scomp = getScrolledComposite(c);
-		if (scomp != null) {
-			Object data = scomp.getData(FOCUS_SCROLLING);
-			if (data == null || !data.equals(Boolean.FALSE))
-				FormUtil.ensureVisible(scomp, c);
-		}
-	}
-
-	public static void ensureVisible(ScrolledComposite scomp, Control control) {
-		// if the control is a FormText we do not need to scroll since it will
-		// ensure visibility of its segments as necessary
-		if (control instanceof FormText)
-			return;
-		Point controlSize = control.getSize();
-		Point controlOrigin = getControlLocation(scomp, control);
-		ensureVisible(scomp, controlOrigin, controlSize);
-	}
-
-	public static void ensureVisible(ScrolledComposite scomp,
-			Point controlOrigin, Point controlSize) {
-		Rectangle area = scomp.getClientArea();
-		Point scompOrigin = scomp.getOrigin();
-
-		int x = scompOrigin.x;
-		int y = scompOrigin.y;
-
-		// horizontal right, but only if the control is smaller
-		// than the client area
-		if (controlSize.x < area.width
-				&& (controlOrigin.x + controlSize.x > scompOrigin.x
-						+ area.width)) {
-			x = controlOrigin.x + controlSize.x - area.width;
-		}
-		// horizontal left - make sure the left edge of
-		// the control is showing
-		if (controlOrigin.x < x) {
-			if (controlSize.x < area.width)
-				x = controlOrigin.x + controlSize.x - area.width;
-			else
-				x = controlOrigin.x;
-		}
-		// vertical bottom
-		if (controlSize.y < area.height
-				&& (controlOrigin.y + controlSize.y > scompOrigin.y
-						+ area.height)) {
-			y = controlOrigin.y + controlSize.y - area.height;
-		}
-		// vertical top - make sure the top of
-		// the control is showing
-		if (controlOrigin.y < y) {
-			if (controlSize.y < area.height)
-				y = controlOrigin.y + controlSize.y - area.height;
-			else
-				y = controlOrigin.y;
-		}
-
-		if (scompOrigin.x != x || scompOrigin.y != y) {
-			// scroll to reveal
-			scomp.setOrigin(x, y);
-		}
-	}
-
-	public static void ensureVisible(ScrolledComposite scomp, Control control,
-			MouseEvent e) {
-		Point controlOrigin = getControlLocation(scomp, control);
-		int rX = controlOrigin.x + e.x;
-		int rY = controlOrigin.y + e.y;
-		Rectangle area = scomp.getClientArea();
-		Point scompOrigin = scomp.getOrigin();
-
-		int x = scompOrigin.x;
-		int y = scompOrigin.y;
-		// System.out.println("Ensure: area="+area+", origin="+scompOrigin+",
-		// cloc="+controlOrigin+", csize="+controlSize+", x="+x+", y="+y);
-
-		// horizontal right
-		if (rX > scompOrigin.x + area.width) {
-			x = rX - area.width;
-		}
-		// horizontal left
-		else if (rX < x) {
-			x = rX;
-		}
-		// vertical bottom
-		if (rY > scompOrigin.y + area.height) {
-			y = rY - area.height;
-		}
-		// vertical top
-		else if (rY < y) {
-			y = rY;
-		}
-
-		if (scompOrigin.x != x || scompOrigin.y != y) {
-			// scroll to reveal
-			scomp.setOrigin(x, y);
-		}
-	}
-
-	public static Point getControlLocation(ScrolledComposite scomp,
-			Control control) {
-		int x = 0;
-		int y = 0;
-		Control content = scomp.getContent();
-		Control currentControl = control;
-		for (;;) {
-			if (currentControl == content)
-				break;
-			Point location = currentControl.getLocation();
-			// if (location.x > 0)
-			// x += location.x;
-			// if (location.y > 0)
-			// y += location.y;
-			x += location.x;
-			y += location.y;
-			currentControl = currentControl.getParent();
-		}
-		return new Point(x, y);
-	}
-
-	static void scrollVertical(ScrolledComposite scomp, boolean up) {
-		scroll(scomp, 0, up ? -V_SCROLL_INCREMENT : V_SCROLL_INCREMENT);
-	}
-
-	static void scrollHorizontal(ScrolledComposite scomp, boolean left) {
-		scroll(scomp, left ? -H_SCROLL_INCREMENT : H_SCROLL_INCREMENT, 0);
-	}
-
-	static void scrollPage(ScrolledComposite scomp, boolean up) {
-		Rectangle clientArea = scomp.getClientArea();
-		int increment = up ? -clientArea.height : clientArea.height;
-		scroll(scomp, 0, increment);
-	}
-
-	static void scroll(ScrolledComposite scomp, int xoffset, int yoffset) {
-		Point origin = scomp.getOrigin();
-		Point contentSize = scomp.getContent().getSize();
-		int xorigin = origin.x + xoffset;
-		int yorigin = origin.y + yoffset;
-		xorigin = Math.max(xorigin, 0);
-		xorigin = Math.min(xorigin, contentSize.x - 1);
-		yorigin = Math.max(yorigin, 0);
-		yorigin = Math.min(yorigin, contentSize.y - 1);
-		scomp.setOrigin(xorigin, yorigin);
-	}
-
-	public static void updatePageIncrement(ScrolledComposite scomp) {
-		ScrollBar vbar = scomp.getVerticalBar();
-		if (vbar != null) {
-			Rectangle clientArea = scomp.getClientArea();
-			int increment = clientArea.height - 5;
-			vbar.setPageIncrement(increment);
-		}
-		ScrollBar hbar = scomp.getHorizontalBar();
-		if (hbar != null) {
-			Rectangle clientArea = scomp.getClientArea();
-			int increment = clientArea.width - 5;
-			hbar.setPageIncrement(increment);
-		}
-	}
-
-	public static void processKey(int keyCode, Control c) {
-		ScrolledComposite scomp = FormUtil.getScrolledComposite(c);
-		if (scomp != null) {
-			if (c instanceof Combo)
-				return;
-			switch (keyCode) {
-			case SWT.ARROW_DOWN:
-				if (scomp.getData("novarrows") == null) //$NON-NLS-1$
-					FormUtil.scrollVertical(scomp, false);
-				break;
-			case SWT.ARROW_UP:
-				if (scomp.getData("novarrows") == null) //$NON-NLS-1$
-					FormUtil.scrollVertical(scomp, true);
-				break;
-			case SWT.ARROW_LEFT:
-				FormUtil.scrollHorizontal(scomp, true);
-				break;
-			case SWT.ARROW_RIGHT:
-				FormUtil.scrollHorizontal(scomp, false);
-				break;
-			case SWT.PAGE_UP:
-				FormUtil.scrollPage(scomp, true);
-				break;
-			case SWT.PAGE_DOWN:
-				FormUtil.scrollPage(scomp, false);
-				break;
-			}
-		}
-	}
-
-	public static boolean isWrapControl(Control c) {
-		if ((c.getStyle() & SWT.WRAP) != 0)
-			return true;
-		if (c instanceof Composite) {
-			return ((Composite) c).getLayout() instanceof ILayoutExtension;
-		}
-		return false;
-	}
-
-	public static int getWidthHint(int wHint, Control c) {
-		boolean wrap = isWrapControl(c);
-		return wrap ? wHint : SWT.DEFAULT;
-	}
-
-	public static int getHeightHint(int hHint, Control c) {
-		if (c instanceof Composite) {
-			Layout layout = ((Composite) c).getLayout();
-			if (layout instanceof ColumnLayout)
-				return hHint;
-		}
-		return SWT.DEFAULT;
-	}
-
-	public static int computeMinimumWidth(Control c, boolean changed) {
-		if (c instanceof Composite) {
-			Layout layout = ((Composite) c).getLayout();
-			if (layout instanceof ILayoutExtension)
-				return ((ILayoutExtension) layout).computeMinimumWidth(
-						(Composite) c, changed);
-		}
-		return c.computeSize(FormUtil.getWidthHint(5, c), SWT.DEFAULT, changed).x;
-	}
-
-	public static int computeMaximumWidth(Control c, boolean changed) {
-		if (c instanceof Composite) {
-			Layout layout = ((Composite) c).getLayout();
-			if (layout instanceof ILayoutExtension)
-				return ((ILayoutExtension) layout).computeMaximumWidth(
-						(Composite) c, changed);
-		}
-		return c.computeSize(SWT.DEFAULT, SWT.DEFAULT, changed).x;
-	}
-
-	public static Form getForm(Control c) {
-		Composite parent = c.getParent();
-		while (parent != null) {
-			if (parent instanceof Form) {
-				return (Form) parent;
-			}
-			parent = parent.getParent();
-		}
-		return null;
-	}
-
-	public static Image createAlphaMashImage(Device device, Image srcImage) {
-		Rectangle bounds = srcImage.getBounds();
-		int alpha = 0;
-		int calpha = 0;
-		ImageData data = srcImage.getImageData();
-		// Create a new image with alpha values alternating
-		// between fully transparent (0) and fully opaque (255).
-		// This image will show the background through the
-		// transparent pixels.
-		for (int i = 0; i < bounds.height; i++) {
-			// scan line
-			alpha = calpha;
-			for (int j = 0; j < bounds.width; j++) {
-				// column
-				data.setAlpha(j, i, alpha);
-				alpha = alpha == 255 ? 0 : 255;
-			}
-			calpha = calpha == 255 ? 0 : 255;
-		}
-		return new Image(device, data);
-	}
-
-	public static boolean mnemonicMatch(String text, char key) {
-		char mnemonic = findMnemonic(text);
-		if (mnemonic == '\0')
-			return false;
-		return Character.toUpperCase(key) == Character.toUpperCase(mnemonic);
-	}
-
-	private static char findMnemonic(String string) {
-		int index = 0;
-		int length = string.length();
-		do {
-			while (index < length && string.charAt(index) != '&')
-				index++;
-			if (++index >= length)
-				return '\0';
-			if (string.charAt(index) != '&')
-				return string.charAt(index);
-			index++;
-		} while (index < length);
-		return '\0';
-	}
-	
-	public static void setFocusScrollingEnabled(Control c, boolean enabled) {
-		ScrolledComposite scomp = null;
-		
-		if (c instanceof ScrolledComposite)
-			scomp = (ScrolledComposite)c;
-		else
-			scomp = getScrolledComposite(c);
-		if (scomp!=null)
-			scomp.setData(FormUtil.FOCUS_SCROLLING, enabled?null:Boolean.FALSE);
-	}
-	
-	public static void setAntialias(GC gc, int style) {
-		if (!gc.getAdvanced()) {
-			gc.setAdvanced(true);
-			if (!gc.getAdvanced())
-				return;
-		}
-		gc.setAntialias(style);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java
deleted file mode 100644
index b0927db..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/FormsResources.java
+++ /dev/null
@@ -1,67 +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.forms.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Utility methods to access shared form-specific resources.
- * <p>
- * All methods declared on this class are static. This
- * class cannot be instantiated.
- * </p>
- * <p>
- * </p>
- */
-public class FormsResources {
-	private static Cursor busyCursor;
-	private static Cursor handCursor;
-	private static Cursor textCursor;
-	
-	public static Cursor getBusyCursor() {
-		if (busyCursor==null)
-			busyCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_WAIT);
-		return busyCursor;
-	}
-	public static Cursor getHandCursor() {
-		if (handCursor==null)
-			handCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_HAND);
-		return handCursor;
-	}
-	public static Cursor getTextCursor() {
-		if (textCursor==null)
-			textCursor = new Cursor(Display.getCurrent(), SWT.CURSOR_IBEAM);
-		return textCursor;
-	}
-	
-	public static int getProgressDelay(int index) {
-		/*
-		if (progressDelays==null)
-			return 0;
-		return progressDelays[index];
-		*/
-		return 100;
-	}
-	
-	public static void shutdown() {
-		if (busyCursor!=null)
-			busyCursor.dispose();
-		if (handCursor!=null)
-			handCursor.dispose();
-		if (textCursor!=null)
-			textCursor.dispose();
-		busyCursor=null;
-		handCursor=null;
-		textCursor=null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java
deleted file mode 100644
index e4b9a76..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IFocusSelectable.java
+++ /dev/null
@@ -1,21 +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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.Rectangle;
-
-public interface IFocusSelectable {
-	boolean isFocusSelectable(Hashtable resourceTable);
-	boolean setFocus(Hashtable resourceTable, boolean direction);
-	Rectangle getBounds();
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java
deleted file mode 100644
index 57d11a9..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/IHyperlinkSegment.java
+++ /dev/null
@@ -1,23 +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
- *     Chriss Gross (schtoo@schtoo.com) - fix for 61670
- *******************************************************************************/
-package org.eclipse.ui.internal.forms.widgets;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.graphics.GC;
-
-public interface IHyperlinkSegment extends IFocusSelectable {
-	String getHref();
-	String getText();
-	void paintFocus(GC gc, Color bg, Color fg, boolean selected, Rectangle repaintRegion);
-	boolean contains(int x, int y);
-	boolean intersects(Rectangle rect);
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java
deleted file mode 100644
index b4afb01..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageHyperlinkSegment.java
+++ /dev/null
@@ -1,118 +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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.*;
-
-public class ImageHyperlinkSegment extends ImageSegment implements
-		IHyperlinkSegment {
-	private String href;
-	private String text;
-
-	private String tooltipText;
-
-	public ImageHyperlinkSegment() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#setHref(java.lang.String)
-	 */
-	public void setHref(String href) {
-		this.href = href;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#getHref()
-	 */
-	public String getHref() {
-		return href;
-	}
-
-	public void paintFocus(GC gc, Color bg, Color fg, boolean selected,
-			Rectangle repaintRegion) {
-		Rectangle bounds = getBounds();
-		if (bounds == null)
-			return;
-		if (selected) {
-			gc.setBackground(bg);
-			gc.setForeground(fg);
-			gc.drawFocus(bounds.x, bounds.y, bounds.width, bounds.height);
-		} else {
-			gc.setForeground(bg);
-			gc.drawRectangle(bounds.x, bounds.y, bounds.width - 1,
-					bounds.height - 1);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#isWordWrapAllowed()
-	 */
-	public boolean isWordWrapAllowed() {
-		return !isNowrap();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#setWordWrapAllowed(boolean)
-	 */
-	public void setWordWrapAllowed(boolean value) {
-		setNowrap(!value);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.IHyperlinkSegment#getText()
-	 */
-	public String getText() {
-		return text!=null?text:""; //$NON-NLS-1$
-	}
-	
-	public void setText(String text) {
-		this.text = text;
-	}
-
-	/**
-	 * @return Returns the tooltipText.
-	 */
-	public String getTooltipText() {
-		return tooltipText;
-	}
-
-	/**
-	 * @param tooltipText
-	 *            The tooltipText to set.
-	 */
-	public void setTooltipText(String tooltipText) {
-		this.tooltipText = tooltipText;
-	}
-	
-	public boolean isSelectable() {
-		return true;
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		return true;
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean direction) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java
deleted file mode 100644
index a8e8613..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ImageSegment.java
+++ /dev/null
@@ -1,136 +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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.*;
-
-/**
- * @version 1.0
- * @author
- */
-public class ImageSegment extends ObjectSegment {
-	public static final String SEL_IMAGE_PREFIX = "isel."; //$NON-NLS-1$
-
-	public Image getImage(Hashtable objectTable) {
-		return getImage(getObjectId(), objectTable);
-	}
-
-	private Image getImage(String key, Hashtable objectTable) {
-		if (key == null)
-			return null;
-		Object obj = objectTable.get(key);
-		if (obj == null)
-			return null;
-		if (obj instanceof Image)
-			return (Image) obj;
-		return null;
-	}
-
-	private Image getSelectedImage(Hashtable objectTable, SelectionData selData) {
-		String key = SEL_IMAGE_PREFIX + getObjectId();
-		Image image = getImage(key, objectTable);
-		if (image==null) {
-			image = FormUtil.createAlphaMashImage(selData.display, getImage(objectTable));
-			if (image!=null)
-				objectTable.put(key, image);
-		}
-		return image;
-	}
-/*
-	private String getSelectedImageId() {
-		if (getObjectId() == null)
-			return null;
-		return SEL_IMAGE_PREFIX + getObjectId();
-	}
-*/
-	
-	public void paint(GC gc, boolean hover, Hashtable resourceTable, boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		Image image = getImage(resourceTable);
-		int iwidth = 0;
-		int iheight = 0;
-		if (image != null) {
-			Rectangle rect = image.getBounds();
-			iwidth = rect.width + (isSelectable()?2:0);
-			iheight = rect.height + (isSelectable()?2:0);
-		} else
-			return;
-		Rectangle bounds = getBounds();
-		int ix = bounds.x+(isSelectable()?1:0);
-		int iy = bounds.y+(isSelectable()?1:0);
-
-		if (selData != null) {
-			int leftOffset = selData.getLeftOffset(bounds.height);
-			int rightOffset = selData.getRightOffset(bounds.height);
-			boolean firstRow = selData.isFirstSelectionRow(bounds.y,
-					bounds.height);
-			boolean lastRow = selData.isLastSelectionRow(bounds.y,
-					bounds.height);
-			boolean selectedRow = selData
-					.isSelectedRow(bounds.y, bounds.height);
-			if (selectedRow) {
-				if ((firstRow && leftOffset > ix) ||
-					(lastRow && rightOffset < ix + iwidth/2)) {
-					drawClipImage(gc, image, ix, iy, repaintRegion);
-				}
-				else {
-					Color savedBg = gc.getBackground();
-					gc.setBackground(selData.bg);
-					int sx = ix;
-					int sy = iy;
-					if (repaintRegion!=null) {
-						sx -= repaintRegion.x;
-						sy -= repaintRegion.y;
-					}
-					gc.fillRectangle(sx, sy, iwidth, iheight);
-					Image selImage = getSelectedImage(resourceTable, selData);
-					gc.drawImage(selImage, sx, sy);
-					gc.setBackground(savedBg);
-				}
-			}
-			else
-				drawClipImage(gc, image, ix, iy, repaintRegion);
-		} else
-			drawClipImage(gc, image, ix, iy, repaintRegion);
-		if (selected) {
-			int fx = bounds.x;
-			int fy = bounds.y;
-			if (repaintRegion!=null) {
-				fx -= repaintRegion.x;
-				fy -= repaintRegion.y;
-			}
-			Color fg = gc.getForeground();
-			gc.setForeground(gc.getBackground());
-			// Clean up to avoid canceling out XOR if it is already
-			// selected.
-			gc.drawRectangle(bounds.x, bounds.y, bounds.width - 1,
-					bounds.height - 1);
-			gc.setForeground(fg);
-			gc.drawFocus(fx, fy, bounds.width, bounds.height);
-		}
-	}
-	private void drawClipImage(GC gc, Image image, int ix, int iy, Rectangle repaintRegion) {
-		if (repaintRegion!=null) {
-			ix -= repaintRegion.x;
-			iy -= repaintRegion.y;
-		}
-		gc.drawImage(image, ix, iy);			
-	}
-
-	protected Point getObjectSize(Hashtable resourceTable, int wHint) {
-		Image image = getImage(resourceTable);
-		if (image==null)
-			return new Point(0, 0);
-		Rectangle ibounds = image.getBounds();
-		return new Point(ibounds.width, ibounds.height);
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java
deleted file mode 100644
index fc098c6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Locator.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.ArrayList;
-
-public class Locator implements Cloneable { 
-	public int indent;
-	public int x, y;
-	public int width;
-	public int leading;
-	public int rowHeight;
-	public int marginWidth;
-	public int marginHeight;
-	public int rowCounter;
-	public ArrayList heights;
-	
-	public void newLine() {
-		resetCaret();
-		y += rowHeight;
-		rowHeight = 0;
-	}
-
-	public Locator create() {
-		try {
-			return (Locator)clone();
-		}
-		catch (CloneNotSupportedException e) {
-			return null;
-		}
-	}
-	public void collectHeights() {
-		heights.add(new int [] { rowHeight, leading} );
-		rowCounter++;
-	}
-	public int getBaseline(int segmentHeight) {
-		return getBaseline(segmentHeight, true);
-
-	}
-	public int getMiddle(int segmentHeight, boolean text) {
-		if (heights!=null && heights.size()>rowCounter) {
-			int [] rdata = (int[])heights.get(rowCounter);
-			int rheight = rdata[0];
-			int rleading = rdata[1];
-			if (text)
-				return y + rheight/2 - segmentHeight/2 - rleading;
-			return y + rheight/2 - segmentHeight/2;
-		}
-		return y;		
-	}
-	public int getBaseline(int segmentHeight, boolean text) {
-		if (heights!=null && heights.size()>rowCounter) {
-			int [] rdata = (int[])heights.get(rowCounter);
-			int rheight = rdata[0];
-			int rleading = rdata[1];
-			if (text)
-				return y + rheight - segmentHeight - rleading;
-			return y + rheight - segmentHeight;
-		}
-		return y;
-	}
-	
-	public void resetCaret() {
-		x = getStartX();
-	}
-	public int getStartX() {
-		return marginWidth + indent;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java
deleted file mode 100644
index fac6680..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ObjectSegment.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.*;
-
-
-public abstract class ObjectSegment extends ParagraphSegment {
-	public static final int TOP = 1;
-
-	public static final int MIDDLE = 2;
-
-	public static final int BOTTOM = 3;
-
-	private int alignment = BOTTOM;
-	private boolean nowrap=false;
-	private Rectangle bounds;
-	private String objectId;
-
-	public int getVerticalAlignment() {
-		return alignment;
-	}
-
-	void setVerticalAlignment(int alignment) {
-		this.alignment = alignment;
-	}
-
-	public String getObjectId() {
-		return objectId;
-	}
-
-	void setObjectId(String objectId) {
-		this.objectId = objectId;
-	}
-	
-	protected abstract Point getObjectSize(Hashtable resourceTable, int wHint);
-
-	public boolean advanceLocator(GC gc, int wHint, Locator loc,
-			Hashtable objectTable, boolean computeHeightOnly) {
-		Point objectSize = getObjectSize(objectTable, wHint);
-		int iwidth = 0;
-		int iheight = 0;
-		boolean newLine = false;
-
-		if (objectSize != null) {
-			iwidth = objectSize.x + (isSelectable()?2:0);
-			iheight = objectSize.y + (isSelectable()?2:0);
-		}
-		if (wHint != SWT.DEFAULT && !nowrap && loc.x + iwidth + loc.marginWidth > wHint) {
-			// new line
-			if (computeHeightOnly)
-				loc.collectHeights();
-			loc.resetCaret();
-			loc.x += iwidth;
-			loc.y += loc.rowHeight;
-			loc.width = loc.x;
-			loc.rowHeight = iheight;
-			loc.leading = 0;
-			newLine = true;
-		} else {
-			loc.x += iwidth;
-			loc.width += iwidth;
-			loc.rowHeight = Math.max(loc.rowHeight, iheight);
-		}
-		return newLine;
-	}
-
-	public boolean contains(int x, int y) {
-		if (bounds==null) 
-			return false;
-		return bounds.contains(x, y);
-	}
-	public boolean intersects(Rectangle rect) {
-		if (bounds==null)
-			return false;
-		return bounds.intersects(rect);
-	}
-
-	public Rectangle getBounds() {
-		return bounds;
-	}
-
-	public boolean isSelectable() {
-		return false;
-	}
-	/**
-	 * @return Returns the nowrap.
-	 */
-	public boolean isNowrap() {
-		return nowrap;
-	}
-	/**
-	 * @param nowrap The nowrap to set.
-	 */
-	public void setNowrap(boolean nowrap) {
-		this.nowrap = nowrap;
-	}
-	public void paint(GC gc, boolean hover, Hashtable resourceTable, boolean selected, SelectionData selData, Rectangle repaintRegion) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#layout(org.eclipse.swt.graphics.GC, int, org.eclipse.ui.internal.forms.widgets.Locator, java.util.Hashtable, boolean, org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void layout(GC gc, int width, Locator loc, Hashtable resourceTable,
-			boolean selected) {
-		Point size = getObjectSize(resourceTable, width);
-
-		int objWidth = 0;
-		int objHeight = 0;
-		if (size != null) {
-			objWidth = size.x + (isSelectable()?2:0);
-			objHeight = size.y + (isSelectable()?2:0);
-		} else
-			return;
-		loc.width = objWidth;
-
-		if (!nowrap && loc.x + objWidth + loc.marginWidth > width) {
-			// new row
-			loc.newLine();
-			loc.rowCounter++;
-		}
-		int ix = loc.x;
-		int iy = loc.y;
-		
-		if (alignment==MIDDLE)
-			iy = loc.getMiddle(objHeight, false);
-		else if (alignment==BOTTOM)
-			iy = loc.getBaseline(objHeight, false);
-		loc.x += objWidth;
-		loc.rowHeight = Math.max(loc.rowHeight, objHeight);
-		bounds = new Rectangle(ix, iy, objWidth, objHeight);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#computeSelection(org.eclipse.swt.graphics.GC, java.util.Hashtable, boolean, org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData) {
-		// TODO we should add this to the selection 
-		// if we want to support rich text
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java
deleted file mode 100644
index 213abf6..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/Paragraph.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.ui.forms.HyperlinkSettings;
-
-/**
- * @version 1.0
- * @author
- */
-public class Paragraph {
-	public static final String[] PROTOCOLS = {"http://", "https://", "ftp://"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-	private Vector segments;
-
-	private boolean addVerticalSpace = true;
-
-	public Paragraph(boolean addVerticalSpace) {
-		this.addVerticalSpace = addVerticalSpace;
-	}
-
-	public int getIndent() {
-		return 0;
-	}
-
-	public boolean getAddVerticalSpace() {
-		return addVerticalSpace;
-	}
-
-	/*
-	 * @see IParagraph#getSegments()
-	 */
-	public ParagraphSegment[] getSegments() {
-		if (segments == null)
-			return new ParagraphSegment[0];
-		return (ParagraphSegment[]) segments
-				.toArray(new ParagraphSegment[segments.size()]);
-	}
-
-	public void addSegment(ParagraphSegment segment) {
-		if (segments == null)
-			segments = new Vector();
-		segments.add(segment);
-	}
-
-	public void parseRegularText(String text, boolean expandURLs, boolean wrapAllowed,
-			HyperlinkSettings settings, String fontId) {
-		parseRegularText(text, expandURLs, wrapAllowed, settings, fontId, null);
-	}
-
-	public void parseRegularText(String text, boolean expandURLs, boolean wrapAllowed,
-			HyperlinkSettings settings, String fontId, String colorId) {
-		if (text.length() == 0)
-			return;
-		if (expandURLs) {
-			int loc = findUrl(text,0);
-
-			if (loc == -1)
-				addSegment(new TextSegment(text, fontId, colorId, wrapAllowed));
-			else {
-				int textLoc = 0;
-				while (loc != -1) {
-					addSegment(new TextSegment(text.substring(textLoc, loc),
-							fontId, colorId, wrapAllowed));
-					boolean added = false;
-					for (textLoc = loc; textLoc < text.length(); textLoc++) {
-						char c = text.charAt(textLoc);
-						if (Character.isSpaceChar(c)) {
-							addHyperlinkSegment(text.substring(loc, textLoc),
-									settings, fontId);
-							added = true;
-							break;
-						}
-					}
-					if (!added) {
-						// there was no space - just end of text
-						addHyperlinkSegment(text.substring(loc), settings,
-								fontId);
-						break;
-					}
-					loc = findUrl(text,textLoc);
-				}
-				if (textLoc < text.length()) {
-					addSegment(new TextSegment(text.substring(textLoc), fontId,
-							colorId, wrapAllowed));
-				}
-			}
-		} else {
-			addSegment(new TextSegment(text, fontId, colorId, wrapAllowed));
-		}
-	}
-	
-	private int findUrl(String text, int startIndex) {
-		int[] locs = new int[PROTOCOLS.length];
-		for (int i = 0; i < PROTOCOLS.length; i++)
-			locs[i] = text.indexOf(PROTOCOLS[i], startIndex);
-		Arrays.sort(locs);
-		for (int i = 0; i < PROTOCOLS.length; i++)
-			if (locs[i] != -1)
-				return locs[i];
-		return -1;
-	}
-
-	private void addHyperlinkSegment(String text, HyperlinkSettings settings,
-			String fontId) {
-		TextHyperlinkSegment hs = new TextHyperlinkSegment(text, settings,
-				fontId);
-		hs.setWordWrapAllowed(false);
-		hs.setHref(text);
-		addSegment(hs);
-	}
-
-	protected void computeRowHeights(GC gc, int width, Locator loc,
-			int lineHeight, Hashtable resourceTable) {
-		ParagraphSegment[] segments = getSegments();
-		// compute heights
-		Locator hloc = loc.create();
-		ArrayList heights = new ArrayList();
-		hloc.heights = heights;
-		hloc.rowCounter = 0;
-		for (int j = 0; j < segments.length; j++) {
-			ParagraphSegment segment = segments[j];
-			segment.advanceLocator(gc, width, hloc, resourceTable, true);
-		}
-		hloc.collectHeights();
-		loc.heights = heights;
-		loc.rowCounter = 0;
-	}
-
-	public void layout(GC gc, int width, Locator loc, int lineHeight,
-			Hashtable resourceTable, IHyperlinkSegment selectedLink) {
-		ParagraphSegment[] segments = getSegments();
-		//int height;
-		if (segments.length > 0) {
-			/*
-			if (segments[0] instanceof TextSegment
-					&& ((TextSegment) segments[0]).isSelectable())
-				loc.x += 1;
-			*/
-			// compute heights
-			if (loc.heights == null)
-				computeRowHeights(gc, width, loc, lineHeight, resourceTable);
-			for (int j = 0; j < segments.length; j++) {
-				ParagraphSegment segment = segments[j];
-				boolean doSelect = false;
-				if (selectedLink != null && segment.equals(selectedLink))
-					doSelect = true;
-				segment.layout(gc, width, loc, resourceTable, doSelect);
-			}
-			loc.heights = null;
-			loc.y += loc.rowHeight;
-		} else {
-			loc.y += lineHeight;
-		}
-	}
-
-	public void paint(GC gc, Rectangle repaintRegion,
-			Hashtable resourceTable, IHyperlinkSegment selectedLink,
-			SelectionData selData) {
-		ParagraphSegment[] segments = getSegments();
-
-		for (int i = 0; i < segments.length; i++) {
-			ParagraphSegment segment = segments[i];
-			if (!segment.intersects(repaintRegion))
-				continue;
-			boolean doSelect = false;
-			if (selectedLink != null && segment.equals(selectedLink))
-				doSelect = true;
-			segment.paint(gc, false, resourceTable, doSelect, selData, repaintRegion);
-		}
-	}
-	
-	public void computeSelection(GC gc,	Hashtable resourceTable, IHyperlinkSegment selectedLink,
-			SelectionData selData) {
-		ParagraphSegment[] segments = getSegments();
-
-		for (int i = 0; i < segments.length; i++) {
-			ParagraphSegment segment = segments[i];
-			//boolean doSelect = false;
-			//if (selectedLink != null && segment.equals(selectedLink))
-				//doSelect = true;
-			segment.computeSelection(gc, resourceTable, selData);
-		}
-	}
-
-	public String getAccessibleText() {
-		ParagraphSegment[] segments = getSegments();
-		StringWriter swriter = new StringWriter();
-		PrintWriter writer = new PrintWriter(swriter);
-		for (int i = 0; i < segments.length; i++) {
-			ParagraphSegment segment = segments[i];
-			if (segment instanceof TextSegment) {
-				String text = ((TextSegment) segment).getText();
-				writer.print(text);
-			}
-		}
-		writer.println();
-		swriter.flush();
-		return swriter.toString();
-	}
-
-	public ParagraphSegment findSegmentAt(int x, int y) {
-		if (segments != null) {
-			for (int i = 0; i < segments.size(); i++) {
-				ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-				if (segment.contains(x, y))
-					return segment;
-			}
-		}
-		return null;
-	}
-	public void clearCache(String fontId) {
-		if (segments != null) {
-			for (int i = 0; i < segments.size(); i++) {
-				ParagraphSegment segment = (ParagraphSegment) segments.get(i);
-				segment.clearCache(fontId);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ParagraphSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ParagraphSegment.java
deleted file mode 100644
index 150f15e..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/ParagraphSegment.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.graphics.GC;
-
-/**
- * @version 	1.0
- * @author
- */
-public abstract class ParagraphSegment {
-	/**
-	 * Moves the locator according to the content of this segment.
-	 * @param gc
-	 * @param wHint
-	 * @param loc
-	 * @param objectTable
-	 * @param computeHeightOnly
-	 * @return <code>true</code> if text wrapped to the new line, <code>false</code> otherwise.
-	 */
-	public abstract boolean advanceLocator(GC gc, int wHint, Locator loc, Hashtable objectTable, boolean computeHeightOnly);
-	/**
-	 * Computes bounding rectangles and row heights of this segments.
-	 * @param gc
-	 * @param width
-	 * @param loc
-	 * @param resourceTable
-	 * @param selected
-	 */
-	public abstract void layout(GC gc, int width, Locator loc, Hashtable resourceTable, boolean selected);
-	/**
-	 * Paints this segment.
-	 * @param gc
-	 * @param hover
-	 * @param resourceTable
-	 * @param selected
-	 * @param selData
-	 * @param region
-	 */
-	public abstract void paint(GC gc, boolean hover, Hashtable resourceTable, boolean selected, SelectionData selData, Rectangle region);
-	/**
-	 * Paints this segment.
-	 * @param gc
-	 * @param resourceTable
-	 * @param selData
-	 */
-	public abstract void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData);	
-	/**
-	 * Tests if the coordinates are contained in one of the
-	 * bounding rectangles of this segment.
-	 * @param x
-	 * @param y
-	 * @return true if inside the bounding rectangle, false otherwise.
-	 */
-	public abstract boolean contains(int x, int y);
-	/**
-	 * Tests if the source rectangle intersects with
-	 * one of the bounding rectangles of this segment.
-	 * @param rect
-	 * @return true if the two rectangles intersect, false otherwise.
-	 */
-	public abstract boolean intersects(Rectangle rect);
-	/**
-	 * Returns the tool tip of this segment or <code>null</code>
-	 * if not defined.
-	 * @return tooltip or <code>null</code>.
-	 */
-	public String getTooltipText() {
-		return null;
-	}
-	/**
-	 * Clears the text metrics cache for the provided font id.
-	 * @param fontId the id of the font that the cache is kept for.
-	 * 
-	 */
-	public void clearCache(String fontId) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SWTUtil.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SWTUtil.java
deleted file mode 100644
index 8351965..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SWTUtil.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.ui.internal.forms.widgets;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.widgets.Caret;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Utility class to simplify access to some SWT resources. 
- */
-public class SWTUtil {
-
-	/**
-	 * Returns the standard display to be used. The method first checks, if
-	 * the thread calling this method has an associated disaply. If so, this
-	 * display is returned. Otherwise the method returns the default display.
-	 */
-	public static Display getStandardDisplay() {
-		Display display;
-		display = Display.getCurrent();
-		if (display == null)
-			display = Display.getDefault();
-		return display;
-	}
-
-	/**
-	 * Returns the shell for the given widget. If the widget doesn't represent
-	 * a SWT object that manage a shell, <code>null</code> is returned.
-	 * 
-	 * @return the shell for the given widget
-	 */
-	public static Shell getShell(Widget widget) {
-		if (widget instanceof Control)
-			return ((Control) widget).getShell();
-		if (widget instanceof Caret)
-			return ((Caret) widget).getParent().getShell();
-		if (widget instanceof DragSource)
-			return ((DragSource) widget).getControl().getShell();
-		if (widget instanceof DropTarget)
-			return ((DropTarget) widget).getControl().getShell();
-		if (widget instanceof Menu)
-			return ((Menu) widget).getParent().getShell();
-		if (widget instanceof ScrollBar)
-			return ((ScrollBar) widget).getParent().getShell();
-
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SelectionData.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SelectionData.java
deleted file mode 100644
index c73a6bf..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/SelectionData.java
+++ /dev/null
@@ -1,141 +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.forms.widgets;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Display;
-
-public class SelectionData {
-	public Display display;
-	public Color bg;
-	public Color fg;
-	private Point start;
-	private Point stop;
-	private ArrayList segments;
-	private boolean newLineNeeded;
-	
-	public SelectionData(MouseEvent e) {
-		display = e.display;
-		segments = new ArrayList();
-		start = new Point(e.x, e.y);
-		stop = new Point(e.x, e.y);
-		bg = e.display.getSystemColor(SWT.COLOR_LIST_SELECTION);
-		fg = e.display.getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT);
-	}
-	
-	public void markNewLine() {
-		newLineNeeded=true;
-	}
-	public void addSegment(String text) {
-		if (newLineNeeded) {
-			segments.add(System.getProperty("line.separator")); //$NON-NLS-1$
-			newLineNeeded=false;
-		}
-		segments.add(text);
-	}
-
-	public void update(MouseEvent e) {
-		//Control c = (Control)e.widget;
-		stop.x = e.x;
-		stop.y = e.y;
-	}
-	public void reset() {
-		segments.clear();
-	}
-	public String getSelectionText() {
-		StringBuffer buf = new StringBuffer();
-		for (int i=0; i<segments.size(); i++) {
-			buf.append((String)segments.get(i));
-		}
-		return buf.toString();
-	}
-	public boolean canCopy() {
-		return segments.size()>0;
-	}
-	
-	private int getTopOffset() {
-		return start.y<stop.y?start.y:stop.y;
-	}
-	private int getBottomOffset() {
-		return start.y>stop.y?start.y:stop.y;
-	}
-	public int getLeftOffset(Locator locator) {
-		return isInverted(locator)? stop.x:start.x;
-	}
-	public int getLeftOffset(int rowHeight) {
-		return isInverted(rowHeight) ? stop.x:start.x;
-	}
-	public int getRightOffset(Locator locator) {
-		return isInverted(locator)? start.x: stop.x;
-	}
-	public int getRightOffset(int rowHeight) {
-		return isInverted(rowHeight) ? start.x:stop.x;
-	}
-	private boolean isInverted(Locator locator) {
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return isInverted(rowHeight);
-	}
-	private boolean isInverted(int rowHeight) {
-		int deltaY = start.y - stop.y;
-		if (Math.abs(deltaY) > rowHeight) {
-			// inter-row selection
-			return deltaY>0;
-		}
-		// intra-row selection
-		return start.x > stop.x; 
-	}
-	public boolean isEnclosed() {
-		return !start.equals(stop);
-	}
-
-	public boolean isSelectedRow(Locator locator) {
-		if (!isEnclosed())
-			return false;
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return isSelectedRow(locator.y, rowHeight);
-	}
-	public boolean isSelectedRow(int y, int rowHeight) {
-		if (!isEnclosed())
-			return false;
-		return (y + rowHeight >= getTopOffset() &&
-				y <= getBottomOffset());
-	}
-	public boolean isFirstSelectionRow(Locator locator) {
-		if (!isEnclosed())
-			return false;
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return (locator.y + rowHeight >= getTopOffset() &&
-				locator.y <= getTopOffset());
-	}
-	public boolean isFirstSelectionRow(int y, int rowHeight) {
-		if (!isEnclosed())
-			return false;
-		return (y + rowHeight >= getTopOffset() &&
-				y <= getTopOffset());
-	}
-	public boolean isLastSelectionRow(Locator locator) {
-		if (!isEnclosed())
-			return false;
-		int rowHeight = ((int [])locator.heights.get(locator.rowCounter))[0];
-		return (locator.y + rowHeight >=getBottomOffset() && 
-				locator.y <= getBottomOffset());
-	}
-	public boolean isLastSelectionRow(int y, int rowHeight) {
-		if (!isEnclosed())
-			return false;
-		return (y + rowHeight >=getBottomOffset() && 
-				y <= getBottomOffset());
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.java
deleted file mode 100644
index c363299..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextHyperlinkSegment.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.Hashtable;
-
-import org.eclipse.swt.graphics.*;
-import org.eclipse.ui.forms.HyperlinkSettings;
-
-/**
- * @version 1.0
- * @author
- */
-public class TextHyperlinkSegment extends TextSegment implements
-		IHyperlinkSegment {
-	private String href;
-
-	private String tooltipText;
-
-	//private static final String LINK_FG = "c.___link_fg";
-
-	private HyperlinkSettings settings;
-
-	public TextHyperlinkSegment(String text, HyperlinkSettings settings,
-			String fontId) {
-		super(text, fontId);
-		this.settings = settings;
-	}
-
-	/*
-	 * @see IObjectReference#getObjectId()
-	 */
-	public String getHref() {
-		return href;
-	}
-
-	public void setHref(String href) {
-		this.href = href;
-	}
-
-	/*
-	 * public void paint(GC gc, int width, Locator locator, Hashtable
-	 * resourceTable, boolean selected, SelectionData selData) {
-	 * resourceTable.put(LINK_FG, settings.getForeground());
-	 * setColorId(LINK_FG); super.paint(gc, width, locator, resourceTable,
-	 * selected, selData); }
-	 */
-
-	public void paint(GC gc, boolean hover, Hashtable resourceTable,
-			boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		boolean rolloverMode = settings.getHyperlinkUnderlineMode() == HyperlinkSettings.UNDERLINE_HOVER;
-		underline = settings.getHyperlinkUnderlineMode() == HyperlinkSettings.UNDERLINE_ALWAYS;
-		Color savedFg = gc.getForeground();
-		Color newFg = hover ? settings.getActiveForeground() : settings.getForeground();
-		if (newFg!=null)
-			gc.setForeground(newFg); 
-		super.paint(gc, hover, resourceTable, selected, rolloverMode, selData, repaintRegion);
-		gc.setForeground(savedFg);
-	}
-	
-	protected void drawString(GC gc, String s, int clipX, int clipY) {
-		gc.drawString(s, clipX, clipY, false);
-	}
-
-	public String getTooltipText() {
-		return tooltipText;
-	}
-
-	public void setTooltipText(String tooltip) {
-		this.tooltipText = tooltip;
-	}
-	
-	public boolean isSelectable() {
-		return true;
-	}
-
-	public boolean isFocusSelectable(Hashtable resourceTable) {
-		return true;
-	}
-
-	public boolean setFocus(Hashtable resourceTable, boolean direction) {
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java
deleted file mode 100644
index 0a904ed..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TextSegment.java
+++ /dev/null
@@ -1,730 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-
-import com.ibm.icu.text.BreakIterator;
-
-/**
- * @version 1.0
- * @author
- */
-public class TextSegment extends ParagraphSegment {
-	private String colorId;
-
-	private String fontId;
-
-	private String text;
-
-	protected boolean underline;
-
-	private boolean wrapAllowed = true;
-
-	protected Vector areaRectangles = new Vector();
-
-	private TextFragment[] textFragments;
-
-	class AreaRectangle {
-		Rectangle rect;
-
-		int from, to;
-
-		public AreaRectangle(Rectangle rect, int from, int to) {
-			this.rect = rect;
-			this.from = from;
-			this.to = to;
-		}
-
-		public boolean contains(int x, int y) {
-			return rect.contains(x, y);
-		}
-
-		public boolean intersects(Rectangle region) {
-			return rect.intersects(region);
-		}
-
-		public String getText() {
-			if (from == 0 && to == -1)
-				return TextSegment.this.getText();
-			if (from > 0 && to == -1)
-				return TextSegment.this.getText().substring(from);
-			return TextSegment.this.getText().substring(from, to);
-		}
-	}
-
-	static class SelectionRange {
-		public int start;
-
-		public int stop;
-
-		public SelectionRange() {
-			reset();
-		}
-
-		public void reset() {
-			start = -1;
-			stop = -1;
-		}
-	}
-
-	static class TextFragment {
-		short index;
-
-		short length;
-
-		public TextFragment(short index, short length) {
-			this.index = index;
-			this.length = length;
-		}
-	}
-
-	public TextSegment(String text, String fontId) {
-		this(text, fontId, null, true);
-	}
-
-	public TextSegment(String text, String fontId, String colorId) {
-		this(text, fontId, colorId, true);
-	}
-	
-	public TextSegment(String text, String fontId, String colorId, boolean wrapAllowed) {
-		this.text = cleanup(text);
-		this.fontId = fontId;
-		this.colorId = colorId;
-		this.wrapAllowed = wrapAllowed;
-	}	
-
-	private String cleanup(String text) {
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < text.length(); i++) {
-			char c = text.charAt(i);
-			if (c == '\n' || c == '\r' || c == '\f') {
-				if (i > 0)
-					buf.append(' ');
-			} else
-				buf.append(c);
-		}
-		return buf.toString();
-	}
-
-	public void setWordWrapAllowed(boolean value) {
-		wrapAllowed = value;
-	}
-
-	public boolean isWordWrapAllowed() {
-		return wrapAllowed;
-	}
-
-	public boolean isSelectable() {
-		return false;
-	}
-
-	public String getColorId() {
-		return colorId;
-	}
-
-	public String getText() {
-		return text;
-	}
-
-	void setText(String text) {
-		this.text = cleanup(text);
-		textFragments = null;
-	}
-
-	void setColorId(String colorId) {
-		this.colorId = colorId;
-	}
-
-	void setFontId(String fontId) {
-		this.fontId = fontId;
-		textFragments = null;
-	}
-
-	public boolean contains(int x, int y) {
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle ar = (AreaRectangle) areaRectangles.get(i);
-			if (ar.contains(x, y))
-				return true;
-			if (i<areaRectangles.size()-1) {
-				// test the gap
-				Rectangle top = ar.rect;
-				Rectangle bot = ((AreaRectangle)areaRectangles.get(i+1)).rect;
-				if (y >= top.y+top.height && y < bot.y) {
-					// in the gap
-					int left = Math.max(top.x, bot.x);
-					int right = Math.min(top.x+top.width, bot.x+bot.width);
-					if (x>=left && x<=right) {
-						return true;
-					}
-				}
-			}
-		}
-		return false;
-	}
-
-	public boolean intersects(Rectangle rect) {
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle ar = (AreaRectangle) areaRectangles.get(i);
-			if (ar.intersects(rect))
-				return true;
-			if (i<areaRectangles.size()-1) {
-				// test the gap
-				Rectangle top = ar.rect;
-				Rectangle bot = ((AreaRectangle)areaRectangles.get(i+1)).rect;
-				if (top.y+top.height < bot.y) {
-					int y = top.y+top.height;
-					int height = bot.y-y;
-					int left = Math.max(top.x, bot.x);
-					int right = Math.min(top.x+top.width, bot.x+bot.width);
-					Rectangle gap = new Rectangle(left, y, right-left, height);
-					if (gap.intersects(rect))
-						return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public Rectangle getBounds() {
-		int x = 0, y = 0;
-		int width = 0, height = 0;
-
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle ar = (AreaRectangle) areaRectangles.get(i);
-			if (i == 0) {
-				x = ar.rect.x;
-				y = ar.rect.y;
-			} else
-				x = Math.min(ar.rect.x, x);
-			width = Math.max(ar.rect.width, width);
-			height += ar.rect.height;
-		}
-		return new Rectangle(x, y, width, height);
-	}
-
-	public boolean advanceLocator(GC gc, int wHint, Locator locator,
-			Hashtable objectTable, boolean computeHeightOnly) {
-		Font oldFont = null;
-		if (fontId != null) {
-			oldFont = gc.getFont();
-			Font newFont = (Font) objectTable.get(fontId);
-			if (newFont != null)
-				gc.setFont(newFont);
-		}
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-		boolean newLine = false;
-
-		if (wHint == SWT.DEFAULT || !wrapAllowed) {
-			Point extent = gc.textExtent(text);
-			int totalExtent = locator.x+extent.x;
-			if (isSelectable())
-				totalExtent+=1;
-
-			if (wHint != SWT.DEFAULT && totalExtent + locator.marginWidth > wHint) {
-				// new line
-				locator.resetCaret();
-				locator.y += locator.rowHeight;
-				if (computeHeightOnly)
-					locator.collectHeights();
-				locator.rowHeight = 0;
-				locator.leading = 0;
-				newLine = true;
-			}
-			int width = extent.x;
-			if (isSelectable())
-				width += 1;
-			locator.x += width;
-			locator.width = locator.x;
-			locator.rowHeight = Math.max(locator.rowHeight, extent.y);
-			locator.leading = Math.max(locator.leading, fm.getLeading());
-			return newLine;
-		}
-
-		computeTextFragments(gc);
-
-		int width = 0;
-		Point lineExtent = new Point(0, 0);
-
-		for (int i = 0; i < textFragments.length; i++) {
-			TextFragment textFragment = textFragments[i];
-			int currentExtent = locator.x + lineExtent.x;
-			
-			if (isSelectable())
-				currentExtent += 1;
-
-			// i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0) means:
-			// only wrap on the first fragment if we are not at the start of a line
-			if ((i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0)) && currentExtent + textFragment.length > wHint) {
-				// overflow
-				int lineWidth = currentExtent;
-				locator.rowHeight = Math.max(locator.rowHeight, lineExtent.y);
-				locator.leading = Math.max(locator.leading, fm.getLeading());
-				if (computeHeightOnly)
-					locator.collectHeights();
-				locator.x = locator.indent;
-				locator.y += locator.rowHeight;
-				locator.rowHeight = 0;
-				locator.leading = 0;
-				lineExtent.x = 0;
-				lineExtent.y = 0;
-				width = Math.max(width, lineWidth);
-				newLine = true;
-			}
-			lineExtent.x += textFragment.length;
-			lineExtent.y = Math.max(lineHeight, lineExtent.y);
-		}
-		int lineWidth = lineExtent.x;
-		if (isSelectable())
-			lineWidth += 1;
-		locator.x += lineWidth;
-		locator.width = width;
-		locator.rowHeight = Math.max(locator.rowHeight, lineExtent.y);
-		locator.leading = Math.max(locator.leading, fm.getLeading());
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-		return newLine;
-	}
-
-	/**
-	 * @param gc
-	 * @param width
-	 * @param locator
-	 * @param selected
-	 * @param selData
-	 * @param color
-	 * @param fm
-	 * @param lineHeight
-	 * @param descent
-	 */
-	private void layoutWithoutWrapping(GC gc, int width, Locator locator,
-			boolean selected, FontMetrics fm, int lineHeight, int descent) {
-		Point extent = gc.textExtent(text);
-		int ewidth = extent.x;
-		if (isSelectable())
-			ewidth += 1;
-		if (locator.x + ewidth > width-locator.marginWidth) {
-			// new line
-			locator.resetCaret();
-			locator.y += locator.rowHeight;
-			locator.rowHeight = 0;
-			locator.rowCounter++;
-		}
-		int ly = locator.getBaseline(fm.getHeight() - fm.getLeading());
-		//int lineY = ly + lineHeight - descent + 1;
-		Rectangle br = new Rectangle(locator.x, ly, ewidth,
-				lineHeight - descent + 3);
-		areaRectangles.add(new AreaRectangle(br, 0, -1));
-		locator.x += ewidth;
-		locator.width = ewidth;
-		locator.rowHeight = Math.max(locator.rowHeight, extent.y);
-	}
-
-	protected int convertOffsetToStringIndex(GC gc, String s, int x,
-			int swidth, int selOffset) {
-		int index = s.length();
-		while (index > 0 && x + swidth > selOffset) {
-			index--;
-			String ss = s.substring(0, index);
-			swidth = gc.textExtent(ss).x;
-		}
-		return index;
-	}
-
-	public void paintFocus(GC gc, Color bg, Color fg, boolean selected,
-			Rectangle repaintRegion) {
-		if (areaRectangles == null)
-			return;
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle areaRectangle = (AreaRectangle) areaRectangles.get(i);
-			Rectangle br = areaRectangle.rect;
-			int bx = br.x;
-			int by = br.y;
-			if (repaintRegion != null) {
-				bx -= repaintRegion.x;
-				by -= repaintRegion.y;
-			}
-			if (selected) {
-				gc.setBackground(bg);
-				gc.setForeground(fg);
-				gc.drawFocus(bx, by, br.width, br.height);
-			} else {
-				gc.setForeground(bg);
-				gc.drawRectangle(bx, by, br.width - 1, br.height - 1);
-			}
-		}
-	}
-
-	public void paint(GC gc, boolean hover, Hashtable resourceTable,
-			boolean selected, SelectionData selData, Rectangle repaintRegion) {
-		this.paint(gc, hover, resourceTable, selected, false, selData,
-				repaintRegion);
-	}
-
-	protected void paint(GC gc, boolean hover, Hashtable resourceTable,
-			boolean selected, boolean rollover, SelectionData selData,
-			Rectangle repaintRegion) {
-		Font oldFont = null;
-		Color oldColor = null;
-		Color oldBg = null;
-
-		// apply segment-specific font, color and background
-		if (fontId != null) {
-			oldFont = gc.getFont();
-			Font newFont = (Font) resourceTable.get(fontId);
-			if (newFont != null)
-				gc.setFont(newFont);
-		}
-		if (!hover && colorId != null) {
-			oldColor = gc.getForeground();
-			Color newColor = (Color) resourceTable.get(colorId);
-			if (newColor != null)
-				gc.setForeground(newColor);
-		}
-		oldBg = gc.getBackground();
-
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-		int descent = fm.getDescent();
-
-		// paint area rectangles of the segment
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle areaRectangle = (AreaRectangle) areaRectangles.get(i);
-			Rectangle rect = areaRectangle.rect;
-			String text = areaRectangle.getText();
-			Point extent = gc.textExtent(text);
-			int textX = rect.x + (isSelectable()?1:0);
-			int lineY = rect.y + lineHeight - descent + 1;
-			paintString(gc, text, extent.x, textX, rect.y, lineY, selData,
-					rect, hover, rollover, repaintRegion);
-			if (selected) {
-				int fx = rect.x;
-				int fy = rect.y;
-				if (repaintRegion != null) {
-					fx -= repaintRegion.x;
-					fy -= repaintRegion.y;
-				}
-				//To avoid partially cancelling the focus by painting over
-				//X-ORed pixels, first cancel it yourself
-				Color fg = gc.getForeground();
-				gc.setForeground(oldBg);
-				gc.drawRectangle(fx, fy, rect.width - 1, rect.height - 1);
-				gc.setForeground(fg);
-				gc.drawFocus(fx, fy, rect.width, rect.height);
-			}
-		}
-		// restore GC resources
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-		if (oldColor != null) {
-			gc.setForeground(oldColor);
-		}
-		if (oldBg != null) {
-			gc.setBackground(oldBg);
-		}
-	}
-
-	public void computeSelection(GC gc, Hashtable resourceTable, SelectionData selData) {
-		Font oldFont = null;
-
-		if (fontId != null) {
-			oldFont = gc.getFont();
-			Font newFont = (Font) resourceTable.get(fontId);
-			if (newFont != null)
-				gc.setFont(newFont);
-		}
-
-		for (int i = 0; i < areaRectangles.size(); i++) {
-			AreaRectangle areaRectangle = (AreaRectangle) areaRectangles.get(i);
-			Rectangle rect = areaRectangle.rect;
-			String text = areaRectangle.getText();
-			Point extent = gc.textExtent(text);
-			computeSelection(gc, text, extent.x, selData,
-					rect);
-		}
-		// restore GC resources
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-	}
-
-	private void paintString(GC gc, String s, int swidth, int x, int y,
-			int lineY, SelectionData selData, Rectangle bounds, boolean hover,
-			boolean rolloverMode, Rectangle repaintRegion) {
-		// repaints one area rectangle
-		if (selData != null && selData.isEnclosed()) {
-			Color savedBg = gc.getBackground();
-			Color savedFg = gc.getForeground();
-			int leftOffset = selData.getLeftOffset(bounds.height);
-			int rightOffset = selData.getRightOffset(bounds.height);
-			boolean firstRow = selData.isFirstSelectionRow(bounds.y,
-					bounds.height);
-			boolean lastRow = selData.isLastSelectionRow(bounds.y,
-					bounds.height);
-			boolean selectedRow = selData
-					.isSelectedRow(bounds.y, bounds.height);
-
-			int sstart = -1;
-			int sstop = -1;
-
-			if ((firstRow && x + swidth < leftOffset)
-					|| (lastRow && x > rightOffset)) {
-				paintStringSegment(gc, s, gc.textExtent(s).x, x, y, lineY,
-						hover, rolloverMode, repaintRegion);
-				return;
-			}
-
-			if (firstRow && bounds.x + swidth > leftOffset) {
-				sstart = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-						leftOffset);
-			}
-			if (lastRow && bounds.x + swidth > rightOffset) {
-				sstop = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-						rightOffset);
-			}
-
-			if (firstRow && sstart != -1) {
-				String left = s.substring(0, sstart);
-				int width = gc.textExtent(left).x;
-				paintStringSegment(gc, left, width, x, y, lineY, hover,
-						rolloverMode, repaintRegion);
-				x += width;
-			}
-			if (selectedRow) {
-				int lindex = sstart != -1 ? sstart : 0;
-				int rindex = sstop != -1 ? sstop : s.length();
-				String mid = s.substring(lindex, rindex);
-				Point extent = gc.textExtent(mid);
-				gc.setForeground(selData.fg);
-				gc.setBackground(selData.bg);
-				gc.fillRectangle(x, y, extent.x, extent.y);
-				paintStringSegment(gc, mid, extent.x, x, y, lineY, hover,
-						rolloverMode, repaintRegion);
-				x += extent.x;
-				gc.setForeground(savedFg);
-				gc.setBackground(savedBg);
-			} else {
-				paintStringSegment(gc, s, gc.textExtent(s).x, x, y, lineY,
-						hover, rolloverMode, repaintRegion);
-			}
-			if (lastRow && sstop != -1) {
-				String right = s.substring(sstop);
-				paintStringSegment(gc, right, gc.textExtent(right).x, x, y,
-						lineY, hover, rolloverMode, repaintRegion);
-			}
-		} else {
-			paintStringSegment(gc, s, gc.textExtent(s).x, x, y, lineY, hover,
-					rolloverMode, repaintRegion);
-		}
-	}
-
-	private void computeSelection(GC gc, String s, int swidth, SelectionData selData, Rectangle bounds) {
-		int leftOffset = selData.getLeftOffset(bounds.height);
-		int rightOffset = selData.getRightOffset(bounds.height);
-		boolean firstRow = selData.isFirstSelectionRow(bounds.y, bounds.height);
-		boolean lastRow = selData.isLastSelectionRow(bounds.y, bounds.height);
-		boolean selectedRow = selData.isSelectedRow(bounds.y, bounds.height);
-
-		int sstart = -1;
-		int sstop = -1;
-
-		if (firstRow && bounds.x + swidth > leftOffset) {
-			sstart = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-					leftOffset);
-		}
-		if (lastRow && bounds.x + swidth > rightOffset) {
-			sstop = convertOffsetToStringIndex(gc, s, bounds.x, swidth,
-					rightOffset);
-		}
-
-		if (selectedRow) {
-			int lindex = sstart != -1 ? sstart : 0;
-			int rindex = sstop != -1 ? sstop : s.length();
-			String mid = s.substring(lindex, rindex);
-			selData.addSegment(mid);
-		}
-	}
-
-	/**
-	 * @param gc
-	 * @param s
-	 * @param x
-	 * @param y
-	 * @param lineY
-	 * @param hover
-	 * @param rolloverMode
-	 */
-	private void paintStringSegment(GC gc, String s, int swidth, int x, int y,
-			int lineY, boolean hover, boolean rolloverMode,
-			Rectangle repaintRegion) {
-		boolean reverse = false;
-		int clipX = x;
-		int clipY = y;
-		int clipLineY = lineY;
-		if (repaintRegion != null) {
-			clipX -= repaintRegion.x;
-			clipY -= repaintRegion.y;
-			clipLineY -= repaintRegion.y;
-		}
-		if (rolloverMode && !hover)
-			reverse = true;
-		if (reverse) {
-			drawUnderline(gc, swidth, clipX, clipLineY, hover, rolloverMode);
-			drawString(gc, s, clipX, clipY);
-		} else {
-			drawString(gc, s, clipX, clipY);
-			drawUnderline(gc, swidth, clipX, clipLineY, hover, rolloverMode);
-		}
-	}
-	
-	protected void drawString(GC gc, String s, int clipX, int clipY) {
-		gc.drawString(s, clipX, clipY, true);
-	}
-
-	private void drawUnderline(GC gc, int swidth, int x, int y, boolean hover,
-			boolean rolloverMode) {
-		if (underline || rolloverMode) {
-			Color saved = null;
-			if (rolloverMode && !hover) {
-				saved = gc.getForeground();
-				gc.setForeground(gc.getBackground());
-			}
-			gc.drawLine(x, y, x + swidth-1, y);
-			if (saved != null)
-				gc.setForeground(saved);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.forms.widgets.ParagraphSegment#layout(org.eclipse.swt.graphics.GC,
-	 *      int, org.eclipse.ui.internal.forms.widgets.Locator,
-	 *      java.util.Hashtable, boolean,
-	 *      org.eclipse.ui.internal.forms.widgets.SelectionData)
-	 */
-	public void layout(GC gc, int width, Locator locator,
-			Hashtable resourceTable, boolean selected) {
-		Font oldFont = null;
-
-		areaRectangles.clear();
-
-		if (fontId != null) {
-			oldFont = gc.getFont();
-			Font newFont = (Font) resourceTable.get(fontId);
-			if (newFont != null)
-				gc.setFont(newFont);
-		}
-		FontMetrics fm = gc.getFontMetrics();
-		int lineHeight = fm.getHeight();
-		int descent = fm.getDescent();
-
-		if (!wrapAllowed) {
-			layoutWithoutWrapping(gc, width, locator, selected, fm, lineHeight,
-					descent);
-		} else {
-			int lineStart = 0;
-			int lastLoc = 0;
-			Point lineExtent = new Point(0, 0);
-			computeTextFragments(gc);
-			int rightEdge = width-locator.marginWidth;
-			for (int i = 0; i < textFragments.length; i++) {
-				TextFragment fragment = textFragments[i];
-				int breakLoc = fragment.index;
-				if (breakLoc == 0)
-					continue;
-				// (i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0)) means:
-				// only wrap on the first fragment if we are not at the start of a line
-				if ((i != 0 || locator.x > locator.getStartX() + (isSelectable() ? 1 : 0)) && locator.x + lineExtent.x + fragment.length > rightEdge) {
-					// overflow
-					int lineWidth = locator.x + lineExtent.x;
-					if (isSelectable())
-						lineWidth += 1;
-					int ly = locator.getBaseline(lineHeight - fm.getLeading());
-					Rectangle br = new Rectangle(isSelectable()?
-							locator.x - 1:locator.x, ly,
-							isSelectable()?lineExtent.x + 1:lineExtent.x, lineHeight - descent + 3);
-					areaRectangles
-							.add(new AreaRectangle(br, lineStart, lastLoc));
-
-					locator.rowHeight = Math.max(locator.rowHeight,
-							lineExtent.y);
-					locator.resetCaret();
-					if (isSelectable())
-						locator.x += 1;					
-					locator.y += locator.rowHeight;
-					locator.rowCounter++;
-					locator.rowHeight = 0;
-					lineStart = lastLoc;
-					lineExtent.x = 0;
-					lineExtent.y = 0;
-				}
-				lastLoc = breakLoc;
-				lineExtent.x += fragment.length;
-				lineExtent.y = Math.max(lineHeight, lineExtent.y);
-			}
-			//String lastLine = text.substring(lineStart, lastLoc);
-			int ly = locator.getBaseline(lineHeight - fm.getLeading());
-			int lastWidth = lineExtent.x;
-			if (isSelectable())
-				lastWidth += 1;
-			Rectangle br = new Rectangle(isSelectable()?locator.x - 1:locator.x, ly, 
-					isSelectable()?lineExtent.x + 1:lineExtent.x,
-					lineHeight - descent + 3);
-			//int lineY = ly + lineHeight - descent + 1;
-			areaRectangles.add(new AreaRectangle(br, lineStart, lastLoc));
-			locator.x += lastWidth;
-			locator.rowHeight = Math.max(locator.rowHeight, lineExtent.y);
-		}
-		if (oldFont != null) {
-			gc.setFont(oldFont);
-		}
-	}
-
-	private void computeTextFragments(GC gc) {
-		if (textFragments != null)
-			return;
-		ArrayList list = new ArrayList();
-		BreakIterator wb = BreakIterator.getLineInstance();
-		wb.setText(getText());
-		int cursor = 0;
-		for (int loc = wb.first(); loc != BreakIterator.DONE; loc = wb.next()) {
-			if (loc == 0)
-				continue;
-			String word = text.substring(cursor, loc);
-			Point extent = gc.textExtent(word);
-			list.add(new TextFragment((short) loc, (short) extent.x));
-			cursor = loc;
-		}
-		textFragments = (TextFragment[]) list.toArray(new TextFragment[list
-				.size()]);
-	}
-	
-	public void clearCache(String fontId) {
-		if (fontId==null && (this.fontId==null||this.fontId.equals(FormTextModel.BOLD_FONT_ID)))
-			textFragments = null;
-		else if (fontId!=null && this.fontId!=null && fontId.equals(this.fontId))
-			textFragments = null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TitleRegion.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TitleRegion.java
deleted file mode 100644
index a910810..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/TitleRegion.java
+++ /dev/null
@@ -1,535 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceEffect;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontMetrics;
-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.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-import org.eclipse.ui.forms.widgets.SizeCache;
-import org.eclipse.ui.forms.widgets.Twistie;
-import org.eclipse.ui.internal.forms.IMessageToolTipManager;
-
-/**
- * Form heading title.
- */
-public class TitleRegion extends Canvas {
-	public static final int STATE_NORMAL = 0;
-	public static final int STATE_HOVER_LIGHT = 1;
-	public static final int STATE_HOVER_FULL = 2;
-	private int hoverState;
-	private static final int HMARGIN = 1;
-	private static final int VMARGIN = 5;
-	private static final int SPACING = 5;
-	private static final int ARC_WIDTH = 20;
-	private static final int ARC_HEIGHT = 20;
-	private Image image;
-	private BusyIndicator busyLabel;
-	private Label titleLabel;
-	private SizeCache titleCache;
-	private int fontHeight = -1;
-	private int fontBaselineHeight = -1;
-	private MenuHyperlink menuHyperlink;
-	private MenuManager menuManager;
-	private boolean dragSupport;
-	private int dragOperations;
-	private Transfer[] dragTransferTypes;
-	private DragSourceListener dragListener;
-	private DragSource dragSource;
-	private Image dragImage;
-
-	private class HoverListener implements MouseTrackListener,
-			MouseMoveListener {
-
-		public void mouseEnter(MouseEvent e) {
-			setHoverState(STATE_HOVER_FULL);
-		}
-
-		public void mouseExit(MouseEvent e) {
-			setHoverState(STATE_NORMAL);
-		}
-
-		public void mouseHover(MouseEvent e) {
-		}
-
-		public void mouseMove(MouseEvent e) {
-			if (e.button > 0)
-				setHoverState(STATE_NORMAL);
-			else
-				setHoverState(STATE_HOVER_FULL);
-		}
-	}
-
-	private class MenuHyperlink extends Twistie {
-		private boolean firstTime = true;
-
-		public MenuHyperlink(Composite parent, int style) {
-			super(parent, style);
-			setExpanded(true);
-		}
-
-		public void setExpanded(boolean expanded) {
-			if (firstTime) {
-				super.setExpanded(expanded);
-				firstTime = false;
-			} else {
-				Menu menu = menuManager.createContextMenu(menuHyperlink);
-				menu.setVisible(true);
-			}
-		}
-	}
-
-	private class TitleRegionLayout extends Layout implements ILayoutExtension {
-
-		protected Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			return layout(composite, false, 0, 0, wHint, hHint, flushCache);
-		}
-
-		protected void layout(Composite composite, boolean flushCache) {
-			Rectangle carea = composite.getClientArea();
-			layout(composite, true, carea.x, carea.y, carea.width,
-					carea.height, flushCache);
-		}
-
-		private Point layout(Composite composite, boolean move, int x, int y,
-				int width, int height, boolean flushCache) {
-			int iwidth = width == SWT.DEFAULT ? SWT.DEFAULT : width - HMARGIN
-					* 2;
-			Point bsize = null;
-			Point tsize = null;
-			Point msize = null;
-
-			if (busyLabel != null) {
-				bsize = busyLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			if (menuManager != null) {
-				menuHyperlink.setVisible(!menuManager.isEmpty()
-						&& titleLabel.getVisible());
-				if (menuHyperlink.getVisible())
-					msize = menuHyperlink.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			}
-			if (flushCache)
-				titleCache.flush();
-			titleCache.setControl(titleLabel);
-			int twidth = iwidth == SWT.DEFAULT ? iwidth : iwidth - SPACING * 2;
-			if (bsize != null && twidth != SWT.DEFAULT)
-				twidth -= bsize.x + SPACING;
-			if (msize != null && twidth != SWT.DEFAULT)
-				twidth -= msize.x + SPACING;
-			if (titleLabel.getVisible()) {
-				tsize = titleCache.computeSize(twidth, SWT.DEFAULT);
-				if (twidth != SWT.DEFAULT) {
-					// correct for the case when width hint is larger
-					// than the maximum width - this is when the text
-					// can be rendered on one line with width to spare
-					int maxWidth = titleCache.computeSize(SWT.DEFAULT,
-							SWT.DEFAULT).x;
-					tsize.x = Math.min(tsize.x, maxWidth);
-					// System.out.println("twidth="+twidth+",
-					// tsize.x="+tsize.x); //$NON-NLS-1$//$NON-NLS-2$
-				}
-			} else
-				tsize = new Point(0, 0);
-			Point size = new Point(width, height);
-			if (!move) {
-				// compute size
-				size.x = tsize.x > 0 ? HMARGIN * 2 + SPACING * 2 + tsize.x : 0;
-				size.y = tsize.y;
-				if (bsize != null) {
-					size.x += bsize.x + SPACING;
-					size.y = Math.max(size.y, bsize.y);
-				}
-				if (msize != null) {
-					size.x += msize.x + SPACING;
-					size.y = Math.max(size.y, msize.y);
-				}
-				if (size.y > 0)
-					size.y += VMARGIN * 2;
-				// System.out.println("Compute size: width="+width+",
-				// size.x="+size.x); //$NON-NLS-1$ //$NON-NLS-2$
-			} else {
-				// position controls
-				int xloc = x + HMARGIN + SPACING;
-				int yloc = y + VMARGIN;
-				if (bsize != null) {
-					busyLabel.setBounds(xloc,
-							// yloc + height / 2 - bsize.y / 2,
-							yloc + (getFontHeight() >= bsize.y ? getFontHeight() : bsize.y) - 1 - bsize.y,
-							bsize.x, bsize.y);
-					xloc += bsize.x + SPACING;
-				}
-				if (titleLabel.getVisible()) {
-					int tw = width - HMARGIN * 2 - SPACING * 2;
-					if (bsize != null)
-						tw -= bsize.x + SPACING;
-					if (msize != null)
-						tw -= msize.x + SPACING;
-					titleLabel.setBounds(xloc,
-					// yloc + height / 2 - tsize.y / 2,
-							yloc, tw, tsize.y);
-					// System.out.println("tw="+tw); //$NON-NLS-1$
-					xloc += tw + SPACING;
-				}
-				if (msize != null) {
-					menuHyperlink.setBounds(xloc, yloc
-							+ getFontHeight() / 2 - msize.y / 2,
-							msize.x, msize.y);
-				}
-			}
-			return size;
-		}
-
-		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;
-		}
-	}
-
-	public TitleRegion(Composite parent) {
-		super(parent, SWT.NULL);
-		titleLabel = new Label(this, SWT.WRAP);
-		titleLabel.setVisible(false);
-		titleCache = new SizeCache();
-		super.setLayout(new TitleRegionLayout());
-		hookHoverListeners();
-		addListener(SWT.Dispose, new Listener() {
-			public void handleEvent(Event e) {
-				if (dragImage != null) {
-					dragImage.dispose();
-					dragImage = null;
-				}
-			}
-		});
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.swt.widgets.Control#forceFocus()
-	 */
-	public boolean forceFocus() {
-		return false;
-	}
-
-	private Color getColor(String key) {
-		return (Color) ((FormHeading) getParent()).colors.get(key);
-	}
-
-	private void hookHoverListeners() {
-		HoverListener listener = new HoverListener();
-		addMouseTrackListener(listener);
-		addMouseMoveListener(listener);
-		titleLabel.addMouseTrackListener(listener);
-		titleLabel.addMouseMoveListener(listener);
-		addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				onPaint(e);
-			}
-		});
-	}
-
-	private void onPaint(PaintEvent e) {
-		if (hoverState == STATE_NORMAL)
-			return;
-		GC gc = e.gc;
-		Rectangle carea = getClientArea();
-		gc.setBackground(getHoverBackground());
-		int savedAntialias = gc.getAntialias();
-		FormUtil.setAntialias(gc, SWT.ON);
-		gc.fillRoundRectangle(carea.x + HMARGIN, carea.y + 2, carea.width
-				- HMARGIN * 2, carea.height - 4, ARC_WIDTH, ARC_HEIGHT);
-		FormUtil.setAntialias(gc, savedAntialias);
-	}
-
-	private Color getHoverBackground() {
-		if (hoverState == STATE_NORMAL)
-			return null;
-		Color color = getColor(hoverState == STATE_HOVER_FULL ? IFormColors.H_HOVER_FULL
-				: IFormColors.H_HOVER_LIGHT);
-		if (color == null)
-			color = getDisplay()
-					.getSystemColor(
-							hoverState == STATE_HOVER_FULL ? SWT.COLOR_WIDGET_BACKGROUND
-									: SWT.COLOR_WIDGET_LIGHT_SHADOW);
-		return color;
-	}
-
-	public void setHoverState(int state) {
-		if (dragSource == null || this.hoverState == state)
-			return;
-		this.hoverState = state;
-		Color color = getHoverBackground();
-		titleLabel.setBackground(color != null ? color
-				: getColor(FormHeading.COLOR_BASE_BG));
-		if (busyLabel != null)
-			busyLabel.setBackground(color != null ? color
-					: getColor(FormHeading.COLOR_BASE_BG));
-		if (menuHyperlink != null)
-			menuHyperlink.setBackground(color != null ? color
-					: getColor(FormHeading.COLOR_BASE_BG));
-		redraw();
-	}
-
-	/**
-	 * Fully delegates the size computation to the internal layout manager.
-	 */
-	public final Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((TitleRegionLayout) getLayout()).computeSize(this, wHint,
-				hHint, changed);
-	}
-
-	public final void setLayout(Layout layout) {
-		// do nothing
-	}
-
-	public Image getImage() {
-		return image;
-	}
-
-	public void setImage(Image image) {
-		this.image = image;
-	}
-
-	public void updateImage(Image newImage, boolean doLayout) {
-		Image theImage = newImage != null ? newImage : this.image;
-
-		if (theImage != null) {
-			ensureBusyLabelExists();
-		} else if (busyLabel != null) {
-			if (!busyLabel.isBusy()) {
-				busyLabel.dispose();
-				busyLabel = null;
-			}
-		}
-		if (busyLabel != null) {
-			busyLabel.setImage(theImage);
-		}
-		if (doLayout)
-			layout();
-	}
-
-	public void updateToolTip(String toolTip) {
-		if (busyLabel != null)
-			busyLabel.setToolTipText(toolTip);
-	}
-
-	public void setBackground(Color bg) {
-		super.setBackground(bg);
-		titleLabel.setBackground(bg);
-		if (busyLabel != null)
-			busyLabel.setBackground(bg);
-		if (menuHyperlink != null)
-			menuHyperlink.setBackground(bg);
-	}
-
-	public void setForeground(Color fg) {
-		super.setForeground(fg);
-		titleLabel.setForeground(fg);
-		if (menuHyperlink != null)
-			menuHyperlink.setForeground(fg);
-	}
-
-	public void setText(String text) {
-		if (text != null)
-			titleLabel.setText(text);
-		titleLabel.setVisible(text != null);
-		layout();
-		redraw();
-	}
-
-	public String getText() {
-		return titleLabel.getText();
-	}
-
-	public void setFont(Font font) {
-		super.setFont(font);
-		titleLabel.setFont(font);
-		fontHeight = -1;
-		fontBaselineHeight = -1;
-		layout();
-	}
-
-	private void ensureBusyLabelExists() {
-		if (busyLabel == null) {
-			busyLabel = new BusyIndicator(this, SWT.NULL);
-			busyLabel.setBackground(getColor(FormHeading.COLOR_BASE_BG));
-			HoverListener listener = new HoverListener();
-			busyLabel.addMouseTrackListener(listener);
-			busyLabel.addMouseMoveListener(listener);
-			if (menuManager != null)
-				busyLabel.setMenu(menuManager.createContextMenu(this));
-			if (dragSupport)
-				addDragSupport(busyLabel, dragOperations, dragTransferTypes, dragListener);
-			IMessageToolTipManager mng = ((FormHeading) getParent())
-					.getMessageToolTipManager();
-			if (mng != null)
-				mng.createToolTip(busyLabel, true);
-		}
-	}
-
-	private void createMenuHyperlink() {
-		menuHyperlink = new MenuHyperlink(this, SWT.NULL);
-		menuHyperlink.setBackground(getColor(FormHeading.COLOR_BASE_BG));
-		menuHyperlink.setDecorationColor(getForeground());
-		menuHyperlink.setHoverDecorationColor(getDisplay().getSystemColor(SWT.COLOR_LIST_FOREGROUND));
-		HoverListener listener = new HoverListener();
-		menuHyperlink.addMouseTrackListener(listener);
-		menuHyperlink.addMouseMoveListener(listener);
-		if (dragSupport)
-			addDragSupport(menuHyperlink, dragOperations, dragTransferTypes, dragListener);
-	}
-
-	/**
-	 * Sets the form's busy state. Busy form will display 'busy' animation in
-	 * the area of the title image.
-	 * 
-	 * @param busy
-	 *            the form's busy state
-	 */
-
-	public boolean setBusy(boolean busy) {
-		if (busy)
-			ensureBusyLabelExists();
-		else if (busyLabel == null)
-			return false;
-		if (busy == busyLabel.isBusy())
-			return false;
-		busyLabel.setBusy(busy);
-		if (busyLabel.getImage() == null) {
-			layout();
-			return true;
-		}
-		return false;
-	}
-
-	public boolean isBusy() {
-		return busyLabel != null && busyLabel.isBusy();
-	}
-
-	/*
-	 * Returns the complete height of the font.
-	 */
-	public int getFontHeight() {
-		if (fontHeight == -1) {
-			Font font = getFont();
-			GC gc = new GC(getDisplay());
-			gc.setFont(font);
-			FontMetrics fm = gc.getFontMetrics();
-			fontHeight = fm.getHeight();
-			gc.dispose();
-		}
-		return fontHeight;
-	}
-
-	/*
-	 * Returns the height of the font starting at the baseline,
-	 * i.e. without the descent.
-	 */
-	public int getFontBaselineHeight() {
-		if (fontBaselineHeight == -1) {
-			Font font = getFont();
-			GC gc = new GC(getDisplay());
-			gc.setFont(font);
-			FontMetrics fm = gc.getFontMetrics();
-			fontBaselineHeight = fm.getHeight() - fm.getDescent();
-			gc.dispose();
-		}
-		return fontBaselineHeight;
-	}
-
-	public IMenuManager getMenuManager() {
-		if (menuManager == null) {
-			menuManager = new MenuManager();
-			Menu menu = menuManager.createContextMenu(this);
-			setMenu(menu);
-			titleLabel.setMenu(menu);
-			if (busyLabel != null)
-				busyLabel.setMenu(menu);
-			createMenuHyperlink();
-		}
-		return menuManager;
-	}
-
-	public void addDragSupport(int operations, Transfer[] transferTypes,
-			DragSourceListener listener) {
-		dragSupport = true;
-		dragOperations = operations;
-		dragTransferTypes = transferTypes;
-		dragListener = listener;
-		dragSource = addDragSupport(titleLabel, operations, transferTypes,
-				listener);
-		addDragSupport(this, operations, transferTypes, listener);
-		if (busyLabel != null)
-			addDragSupport(busyLabel, operations, transferTypes, listener);
-		if (menuHyperlink != null)
-			addDragSupport(menuHyperlink, operations, transferTypes, listener);
-	}
-
-	private DragSource addDragSupport(Control control, int operations,
-			Transfer[] transferTypes, DragSourceListener listener) {
-		DragSource source = new DragSource(control, operations);
-		source.setTransfer(transferTypes);
-		source.addDragListener(listener);
-		source.setDragSourceEffect(new DragSourceEffect(control) {
-			public void dragStart(DragSourceEvent event) {
-				event.image = createDragEffectImage();
-			}
-		});
-		return source;
-	}
-
-	private Image createDragEffectImage() {
-		/*
-		 * if (dragImage != null) { dragImage.dispose(); } GC gc = new GC(this);
-		 * Point size = getSize(); dragImage = new Image(getDisplay(), size.x,
-		 * size.y); gc.copyArea(dragImage, 0, 0); gc.dispose(); return
-		 * dragImage;
-		 */
-		return null;
-	}
-
-	public void addDropSupport(int operations, Transfer[] transferTypes,
-			DropTargetListener listener) {
-		final DropTarget target = new DropTarget(this, operations);
-		target.setTransfer(transferTypes);
-		target.addDropListener(listener);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java b/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
deleted file mode 100644
index 964a4f3..0000000
--- a/bundles/org.eclipse.ui.forms/src/org/eclipse/ui/internal/forms/widgets/WrappedPageBook.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.widgets;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.widgets.ILayoutExtension;
-
-/**
- * A pagebook is a composite control where only a single control is visible at
- * a time. It is similar to a notebook, but without tabs.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- */
-public class WrappedPageBook extends Composite {
-	class PageBookLayout extends Layout implements ILayoutExtension {
-		protected Point computeSize(Composite composite, int wHint, int hHint,
-				boolean flushCache) {
-			if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
-				return new Point(wHint, hHint);
-			Point result = null;
-			if (currentPage != null) {
-				result = currentPage.computeSize(wHint, hHint, flushCache);
-			} else {
-				result = new Point(0, 0);
-			}
-			return result;
-		}
-		protected void layout(Composite composite, boolean flushCache) {
-			if (currentPage != null) {
-				currentPage.setBounds(composite.getClientArea());
-			}
-		}
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMaximumWidth(org.eclipse.swt.widgets.Composite,
-		 *      boolean)
-		 */
-		public int computeMaximumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, SWT.DEFAULT, SWT.DEFAULT, changed).x;
-		}
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.forms.widgets.ILayoutExtension#computeMinimumWidth(org.eclipse.swt.widgets.Composite,
-		 *      boolean)
-		 */
-		public int computeMinimumWidth(Composite parent, boolean changed) {
-			return computeSize(parent, 0, SWT.DEFAULT, changed).x;
-		}
-	}
-	/**
-	 * The current control; <code>null</code> if none.
-	 */
-	private Control currentPage = null;
-	/**
-	 * Creates a new empty pagebook.
-	 * 
-	 * @param parent
-	 *            the parent composite
-	 * @param style
-	 *            the SWT style bits
-	 */
-	public WrappedPageBook(Composite parent, int style) {
-		super(parent, style);
-		setLayout(new PageBookLayout());
-	}
-	/**
-	 * Shows the given page. This method has no effect if the given page is not
-	 * contained in this pagebook.
-	 * 
-	 * @param page
-	 *            the page to show
-	 */
-	public void showPage(Control page) {
-		if (page == currentPage)
-			return;
-		if (page.getParent() != this)
-			return;
-		Control oldPage = currentPage;
-		currentPage = page;
-		// show new page
-		if (page != null) {
-			if (!page.isDisposed()) {
-				//page.setVisible(true);
-				layout(true);
-				page.setVisible(true);
-			}
-		}
-		// hide old *after* new page has been made visible in order to avoid
-		// flashing
-		if (oldPage != null && !oldPage.isDisposed())
-			oldPage.setVisible(false);
-	}
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		return ((PageBookLayout) getLayout()).computeSize(this, wHint, hHint,
-				changed);
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/.classpath b/bundles/org.eclipse.ui.ide.application/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.ui.ide.application/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.ide.application/.project b/bundles/org.eclipse.ui.ide.application/.project
deleted file mode 100644
index 716e130..0000000
--- a/bundles/org.eclipse.ui.ide.application/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.ide.application</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d1f7f5a..0000000
--- a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Thu Apr 03 13:18:13 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index c25b294..0000000
--- a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:18:42 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 498f3ae..0000000
--- a/bundles/org.eclipse.ui.ide.application/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:11:37 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
deleted file mode 100644
index 047fd42..0000000
--- a/bundles/org.eclipse.ui.ide.application/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.ide.application;singleton:=true
-Bundle-Version: 1.0.100.qualifier
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Bundle-ClassPath: e4-ide-application.jar,
- .
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.ui.navigator.resources;bundle-version="[3.2.100,4.0.0)",
- org.eclipse.core.net;bundle-version="[1.0.0,2.0.0)"
-Export-Package: org.eclipse.ui.internal.ide.application;x-internal:=true,
- org.eclipse.ui.internal.ide.application.dialogs;x-internal:=true
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.ide.application/about.html b/bundles/org.eclipse.ui.ide.application/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.ide.application/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide.application/build.properties b/bundles/org.eclipse.ui.ide.application/build.properties
deleted file mode 100644
index 4f5c84b..0000000
--- a/bundles/org.eclipse.ui.ide.application/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html,\
-               icons/
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif b/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif
deleted file mode 100755
index c984fba..0000000
--- a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/configs.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif b/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif
deleted file mode 100755
index 5080599..0000000
--- a/bundles/org.eclipse.ui.ide.application/icons/full/elcl16/usearch_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif b/bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif
deleted file mode 100644
index 1b8fe00..0000000
--- a/bundles/org.eclipse.ui.ide.application/icons/full/eview16/resource_persp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.ide.application/plugin.properties b/bundles/org.eclipse.ui.ide.application/plugin.properties
deleted file mode 100644
index 7ee1e4d..0000000
--- a/bundles/org.eclipse.ui.ide.application/plugin.properties
+++ /dev/null
@@ -1,25 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Eclipse IDE UI Application
-Plugin.providerName = Eclipse.org
-
-PreferencePages.Startup = Startup and Shutdown
-PreferencePages.Startup.Workspaces = Workspaces
-
-Perspective.resourcePerspective = Resource
-Perspective.resourceDescription = This perspective is designed to provide general resource viewing and navigation. 
-
-updateMenu.label = &Software Updates
-actionSets.updates.label = &Find and Install...
-actionSets.configManager.label = &Manage Configuration...
-
-projectConfigure.label = Configure
-projectConfigure.mnemonic = g
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.ide.application/plugin.xml b/bundles/org.eclipse.ui.ide.application/plugin.xml
deleted file mode 100644
index ee32e3d..0000000
--- a/bundles/org.eclipse.ui.ide.application/plugin.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-    <extension
-         id="org.eclipse.ui.ide.workbench"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.internal.ide.application.IDEApplication">
-         </run>
-      </application>
-   </extension>
-    <extension
-          point="org.eclipse.ui.preferencePages">
-     <page
-            name="%PreferencePages.Startup"
-            category="org.eclipse.ui.preferencePages.Workbench"
-            class="org.eclipse.ui.internal.ide.application.dialogs.IDEStartupPreferencePage"
-            id="org.eclipse.ui.preferencePages.Startup">
-         <keywordReference id="org.eclipse.ui.ide.startupAndShutdown"/>
-      </page>
-     <page
-            name="%PreferencePages.Startup.Workspaces"
-            category="org.eclipse.ui.preferencePages.Startup"
-            class="org.eclipse.ui.internal.ide.application.dialogs.RecentWorkspacesPreferencePage"
-            id="org.eclipse.ui.preferencePages.Startup.Workspaces">
-         <keywordReference id="org.eclipse.ui.ide.recentWorkspaces"/>
-      </page>
-    </extension>
-     <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="%Perspective.resourcePerspective"
-            icon="$nl$/icons/full/eview16/resource_persp.gif"
-            class="org.eclipse.ui.internal.ide.application.ResourcePerspective"
-            id="org.eclipse.ui.resourcePerspective">
-         <description>
-            %Perspective.resourceDescription
-         </description>
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.ui.resourcePerspective">
-         <showInPart
-               id="org.eclipse.ui.navigator.ProjectExplorer">
-         </showInPart>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:file?after=open.ext">
-         <command
-               commandId="org.eclipse.ui.file.restartWorkbench"
-               id="org.eclipse.ui.file.restartWorkbench"
-               style="push">
-         </command>
-      </menuContribution>
-      <menuContribution
-             locationURI="menu:help?after=additions">
-       <menu id="org.eclipse.update.ui.updateMenu" label="%updateMenu.label">
-               <command
-                     commandId="org.eclipse.ui.update.findAndInstallUpdates"
-                     helpContextId="org.eclipse.update.ui.newUpdates"
-                     icon="icons/full/elcl16/usearch_obj.gif"
-                     label="%actionSets.updates.label"
-                     style="push">
-               </command>
-               <command
-                     commandId="org.eclipse.ui.update.manageConfiguration"
-                     helpContextId="org.eclipse.update.ui.newUpdates"
-                     icon="icons/full/elcl16/configs.gif"
-                     label="%actionSets.configManager.label"
-                     style="push">
-               </command>
-       </menu>
-       </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.popup.any?after=additions">
-         <menu
-               id="org.eclipse.ui.projectConfigure"
-               label="%projectConfigure.label"
-               mnemonic="%projectConfigure.mnemonic">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="activeMenuSelection">
-                  <iterate
-                        ifEmpty="false">
-                     <adapt
-                           type="org.eclipse.core.resources.IProject">
-                        <test
-                              property="org.eclipse.core.resources.open"
-                              value="true">
-                        </test>
-                     </adapt>
-                  </iterate>
-               </with>
-            </visibleWhen>
-            <separator
-                  name="additions"
-                  visible="false">
-            </separator>
-         </menu>
-      </menuContribution>
-   </extension>
-</plugin>
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
deleted file mode 100644
index 036bc68..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEApplication.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.ide.application;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.service.datalocation.Location;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.ide.ChooseWorkspaceData;
-import org.eclipse.ui.internal.ide.ChooseWorkspaceDialog;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.StatusUtil;
-
-/**
- * The "main program" for the Eclipse IDE.
- * 
- * @since 3.0
- */
-public class IDEApplication implements IApplication, IExecutableExtension {
-
-	/**
-	 * The name of the folder containing metadata information for the workspace.
-	 */
-    public static final String METADATA_FOLDER = ".metadata"; //$NON-NLS-1$
-
-    private static final String VERSION_FILENAME = "version.ini"; //$NON-NLS-1$
-
-    private static final String WORKSPACE_VERSION_KEY = "org.eclipse.core.runtime"; //$NON-NLS-1$
-
-    private static final String WORKSPACE_VERSION_VALUE = "1"; //$NON-NLS-1$
-
-    private static final String PROP_EXIT_CODE = "eclipse.exitcode"; //$NON-NLS-1$
-
-    /**
-     * A special return code that will be recognized by the launcher and used to
-     * restart the workbench.
-     */
-    private static final Integer EXIT_RELAUNCH = new Integer(24);
-
-    /**
-     * The ID of the application plug-in
-     */
-	public static final String PLUGIN_ID = "org.eclipse.ui.ide.application"; //$NON-NLS-1$
-
-    /**
-     * Creates a new IDE application.
-     */
-    public IDEApplication() {
-        // There is nothing to do for IDEApplication
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext context)
-     */
-    public Object start(IApplicationContext appContext) throws Exception {
-        Display display = createDisplay();
-
-        try {
-
-        	// look and see if there's a splash shell we can parent off of
-        	Shell shell = WorkbenchPlugin.getSplashShell(display);
-        	if (shell != null) {
-        		// should should set the icon and message for this shell to be the 
-        		// same as the chooser dialog - this will be the guy that lives in
-        		// the task bar and without these calls you'd have the default icon 
-        		// with no message.
-        		shell.setText(ChooseWorkspaceDialog.getWindowTitle());
-        		shell.setImages(Dialog.getDefaultImages());
-        	}
-           
-            if (!checkInstanceLocation(shell)) {
-            	WorkbenchPlugin.unsetSplashShell(display);
-                Platform.endSplash();
-                return EXIT_OK;
-            }
-
-            // create the workbench with this advisor and run it until it exits
-            // N.B. createWorkbench remembers the advisor, and also registers
-            // the workbench globally so that all UI plug-ins can find it using
-            // PlatformUI.getWorkbench() or AbstractUIPlugin.getWorkbench()
-            int returnCode = PlatformUI.createAndRunWorkbench(display,
-                    new IDEWorkbenchAdvisor());
-
-            // the workbench doesn't support relaunch yet (bug 61809) so
-            // for now restart is used, and exit data properties are checked
-            // here to substitute in the relaunch return code if needed
-            if (returnCode != PlatformUI.RETURN_RESTART) {
-				return EXIT_OK;
-			}
-
-            // if the exit code property has been set to the relaunch code, then
-            // return that code now, otherwise this is a normal restart
-            return EXIT_RELAUNCH.equals(Integer.getInteger(PROP_EXIT_CODE)) ? EXIT_RELAUNCH
-                    : EXIT_RESTART;
-        } finally {
-            if (display != null) {
-				display.dispose();
-			}
-            Location instanceLoc = Platform.getInstanceLocation();
-            if (instanceLoc != null)
-            	instanceLoc.release();
-        }
-    }
-
-    /**
-     * Creates the display used by the application.
-     * 
-     * @return the display used by the application
-     */
-    protected Display createDisplay() {
-        return PlatformUI.createDisplay();
-    }
-
-    /* (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) {
-        // There is nothing to do for IDEApplication
-    }
-
-    /**
-     * Return true if a valid workspace path has been set and false otherwise.
-     * Prompt for and set the path if possible and required.
-     * 
-     * @return true if a valid instance location has been set and false
-     *         otherwise
-     */
-    private boolean checkInstanceLocation(Shell shell) {
-        // -data @none was specified but an ide requires workspace
-        Location instanceLoc = Platform.getInstanceLocation();
-        if (instanceLoc == null) {
-            MessageDialog
-                    .openError(
-                            shell,
-                            IDEWorkbenchMessages.IDEApplication_workspaceMandatoryTitle,
-                            IDEWorkbenchMessages.IDEApplication_workspaceMandatoryMessage);
-            return false;
-        }
-
-        // -data "/valid/path", workspace already set
-        if (instanceLoc.isSet()) {
-            // make sure the meta data version is compatible (or the user has
-            // chosen to overwrite it).
-            if (!checkValidWorkspace(shell, instanceLoc.getURL())) {
-				return false;
-			}
-
-            // at this point its valid, so try to lock it and update the
-            // metadata version information if successful
-            try {
-                if (instanceLoc.lock()) {
-                    writeWorkspaceVersion();
-                    return true;
-                }
-                
-                // we failed to create the directory.  
-                // Two possibilities:
-                // 1. directory is already in use
-                // 2. directory could not be created
-                File workspaceDirectory = new File(instanceLoc.getURL().getFile());
-                if (workspaceDirectory.exists()) {
-	                MessageDialog.openError(
-	                        shell,
-	                        IDEWorkbenchMessages.IDEApplication_workspaceCannotLockTitle,
-	                        IDEWorkbenchMessages.IDEApplication_workspaceCannotLockMessage);
-                } else {
-                	MessageDialog.openError(
-                			shell, 
-                			IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetTitle,
-                			IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetMessage);
-                }
-            } catch (IOException e) {
-                IDEWorkbenchPlugin.log("Could not obtain lock for workspace location", //$NON-NLS-1$
-                        e);            	
-                MessageDialog
-                .openError(
-                        shell,
-                        IDEWorkbenchMessages.InternalError,
-                        e.getMessage());                
-            }            
-            return false;
-        }
-
-        // -data @noDefault or -data not specified, prompt and set
-        ChooseWorkspaceData launchData = new ChooseWorkspaceData(instanceLoc
-                .getDefault());
-
-        boolean force = false;
-        while (true) {
-            URL workspaceUrl = promptForWorkspace(shell, launchData, force);
-            if (workspaceUrl == null) {
-				return false;
-			}
-
-            // if there is an error with the first selection, then force the
-            // dialog to open to give the user a chance to correct
-            force = true;
-
-            try {
-                // the operation will fail if the url is not a valid
-                // instance data area, so other checking is unneeded
-                if (instanceLoc.setURL(workspaceUrl, true)) {
-                    launchData.writePersistedData();
-                    writeWorkspaceVersion();
-                    return true;
-                }
-            } catch (IllegalStateException e) {
-                MessageDialog
-                        .openError(
-                                shell,
-                                IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetTitle,
-                                IDEWorkbenchMessages.IDEApplication_workspaceCannotBeSetMessage);
-                return false;
-            }
-
-            // by this point it has been determined that the workspace is
-            // already in use -- force the user to choose again
-            MessageDialog.openError(shell, IDEWorkbenchMessages.IDEApplication_workspaceInUseTitle, 
-                    IDEWorkbenchMessages.IDEApplication_workspaceInUseMessage);
-        }
-    }
-
-    /**
-     * Open a workspace selection dialog on the argument shell, populating the
-     * argument data with the user's selection. Perform first level validation
-     * on the selection by comparing the version information. This method does
-     * not examine the runtime state (e.g., is the workspace already locked?).
-     * 
-     * @param shell
-     * @param launchData
-     * @param force
-     *            setting to true makes the dialog open regardless of the
-     *            showDialog value
-     * @return An URL storing the selected workspace or null if the user has
-     *         canceled the launch operation.
-     */
-    private URL promptForWorkspace(Shell shell, ChooseWorkspaceData launchData,
-			boolean force) {
-        URL url = null;
-        do {
-        	// okay to use the shell now - this is the splash shell
-            new ChooseWorkspaceDialog(shell, launchData, false, true).prompt(force);
-            String instancePath = launchData.getSelection();
-            if (instancePath == null) {
-				return null;
-			}
-
-            // the dialog is not forced on the first iteration, but is on every
-            // subsequent one -- if there was an error then the user needs to be
-            // allowed to fix it
-            force = true;
-
-            // 70576: don't accept empty input
-            if (instancePath.length() <= 0) {
-                MessageDialog
-                .openError(
-                        shell,
-                        IDEWorkbenchMessages.IDEApplication_workspaceEmptyTitle,
-                        IDEWorkbenchMessages.IDEApplication_workspaceEmptyMessage);
-                continue;
-            }
-
-            // create the workspace if it does not already exist
-            File workspace = new File(instancePath);
-            if (!workspace.exists()) {
-				workspace.mkdir();
-			}
-
-            try {
-                // Don't use File.toURL() since it adds a leading slash that Platform does not
-                // handle properly.  See bug 54081 for more details.  
-                String path = workspace.getAbsolutePath().replace(
-                        File.separatorChar, '/');
-                url = new URL("file", null, path); //$NON-NLS-1$
-            } catch (MalformedURLException e) {
-                MessageDialog
-                        .openError(
-                                shell,
-                                IDEWorkbenchMessages.IDEApplication_workspaceInvalidTitle,
-                                IDEWorkbenchMessages.IDEApplication_workspaceInvalidMessage);
-                continue;
-            }
-        } while (!checkValidWorkspace(shell, url));
-
-        return url;
-    }
-
-    /**
-     * Return true if the argument directory is ok to use as a workspace and
-     * false otherwise. A version check will be performed, and a confirmation
-     * box may be displayed on the argument shell if an older version is
-     * detected.
-     * 
-     * @return true if the argument URL is ok to use as a workspace and false
-     *         otherwise.
-     */
-    private boolean checkValidWorkspace(Shell shell, URL url) {
-        // a null url is not a valid workspace
-        if (url == null) {
-			return false;
-		}
-
-        String version = readWorkspaceVersion(url);
-
-        // if the version could not be read, then there is not any existing
-        // workspace data to trample, e.g., perhaps its a new directory that
-        // is just starting to be used as a workspace
-        if (version == null) {
-			return true;
-		}
-
-        final int ide_version = Integer.parseInt(WORKSPACE_VERSION_VALUE);
-        int workspace_version = Integer.parseInt(version);
-
-        // equality test is required since any version difference (newer
-        // or older) may result in data being trampled
-        if (workspace_version == ide_version) {
-			return true;
-		}
-
-        // At this point workspace has been detected to be from a version
-        // other than the current ide version -- find out if the user wants
-        // to use it anyhow.
-        String title = IDEWorkbenchMessages.IDEApplication_versionTitle;
-        String message = NLS.bind(IDEWorkbenchMessages.IDEApplication_versionMessage, url.getFile());
-
-        MessageBox mbox = new MessageBox(shell, SWT.OK | SWT.CANCEL
-                | SWT.ICON_WARNING | SWT.APPLICATION_MODAL);
-        mbox.setText(title);
-        mbox.setMessage(message);
-        return mbox.open() == SWT.OK;
-    }
-
-    /**
-     * Look at the argument URL for the workspace's version information. Return
-     * that version if found and null otherwise.
-     */
-    private static String readWorkspaceVersion(URL workspace) {
-        File versionFile = getVersionFile(workspace, false);
-        if (versionFile == null || !versionFile.exists()) {
-			return null;
-		}
-
-        try {
-            // Although the version file is not spec'ed to be a Java properties
-            // file, it happens to follow the same format currently, so using
-            // Properties to read it is convenient.
-            Properties props = new Properties();
-            FileInputStream is = new FileInputStream(versionFile);
-            try {
-                props.load(is);
-            } finally {
-                is.close();
-            }
-
-            return props.getProperty(WORKSPACE_VERSION_KEY);
-        } catch (IOException e) {
-            IDEWorkbenchPlugin.log("Could not read version file", new Status( //$NON-NLS-1$
-                    IStatus.ERROR, IDEWorkbenchPlugin.IDE_WORKBENCH,
-                    IStatus.ERROR,
-                    e.getMessage() == null ? "" : e.getMessage(), //$NON-NLS-1$, 
-                    e));
-            return null;
-        }
-    }
-
-    /**
-     * Write the version of the metadata into a known file overwriting any
-     * existing file contents. Writing the version file isn't really crucial,
-     * so the function is silent about failure
-     */
-    private static void writeWorkspaceVersion() {
-        Location instanceLoc = Platform.getInstanceLocation();
-        if (instanceLoc == null || instanceLoc.isReadOnly()) {
-			return;
-		}
-
-        File versionFile = getVersionFile(instanceLoc.getURL(), true);
-        if (versionFile == null) {
-			return;
-		}
-
-        OutputStream output = null;
-        try {
-            String versionLine = WORKSPACE_VERSION_KEY + '='
-                    + WORKSPACE_VERSION_VALUE;
-
-            output = new FileOutputStream(versionFile);
-            output.write(versionLine.getBytes("UTF-8")); //$NON-NLS-1$
-        } catch (IOException e) {
-            IDEWorkbenchPlugin.log("Could not write version file", //$NON-NLS-1$
-                    StatusUtil.newStatus(IStatus.ERROR, e.getMessage(), e));
-        } finally {
-            try {
-                if (output != null) {
-					output.close();
-				}
-            } catch (IOException e) {
-                // do nothing
-            }
-        }
-    }
-
-    /**
-     * The version file is stored in the metadata area of the workspace. This
-     * method returns an URL to the file or null if the directory or file does
-     * not exist (and the create parameter is false).
-     * 
-     * @param create
-     *            If the directory and file does not exist this parameter
-     *            controls whether it will be created.
-     * @return An url to the file or null if the version file does not exist or
-     *         could not be created.
-     */
-    private static File getVersionFile(URL workspaceUrl, boolean create) {
-        if (workspaceUrl == null) {
-			return null;
-		}
-
-        try {
-            // make sure the directory exists
-            File metaDir = new File(workspaceUrl.getPath(), METADATA_FOLDER);
-            if (!metaDir.exists() && (!create || !metaDir.mkdir())) {
-				return null;
-			}
-
-            // make sure the file exists
-            File versionFile = new File(metaDir, VERSION_FILENAME);
-            if (!versionFile.exists()
-                    && (!create || !versionFile.createNewFile())) {
-				return null;
-			}
-
-            return versionFile;
-        } catch (IOException e) {
-            // cannot log because instance area has not been set
-            return null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.equinox.app.IApplication#stop()
-     */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java
deleted file mode 100644
index 8e8fbd8..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEIdleHelper.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.ide.application;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.Policy;
-
-/**
- * The idle helper detects when the system is idle in order to perform garbage 
- * collection in a way that minimizes impact on responsiveness of the UI.
- * The algorithm for determining when to perform a garbage collection
- * is as follows:
- * 
- *  - Never gc if there is a test harness present
- *  - Don't gc if background jobs are running
- *  - Don't gc if the keyboard or mouse have been active within IDLE_INTERVAL
- *  - Don't gc if there has been a GC within the minimum gc interval (system property PROP_GC_INTERVAL)
- *  - After a gc, don't gc again until (duration * GC_DELAY_MULTIPLIER) has elapsed.
- *    For example, if a GC takes 100ms and the multiplier is 60, don't gc for at least five seconds
- *  - Never gc again if any single gc takes longer than system property PROP_GC_MAX
- */
-class IDEIdleHelper {
-
-	/**
-	 * The default minimum time between garbage collections.
-	 */
-	private static final int DEFAULT_GC_INTERVAL = 60000;
-
-	/**
-	 * The default maximum duration for a garbage collection, beyond which
-	 * the explicit gc mechanism is automatically disabled.
-	 */
-	private static final int DEFAULT_GC_MAX = 8000;
-
-	/**
-	 * The multiple of the last gc duration before we will consider doing
-	 * another one.
-	 */
-	private static final int GC_DELAY_MULTIPLIER = 60;
-
-	/**
-	 * The time interval of no keyboard or mouse events after which the system 
-	 * is considered idle.
-	 */
-	private static final int IDLE_INTERVAL = 5000;
-
-	/**
-	 * The name of the boolean system property that specifies whether explicit
-	 * garbage collection is enabled.
-	 */
-	private static final String PROP_GC = "ide.gc"; //$NON-NLS-1$
-
-	/**
-	 * The name of the integer system property that specifies the minimum time 
-	 * interval in milliseconds between garbage collections.
-	 */
-	private static final String PROP_GC_INTERVAL = "ide.gc.interval"; //$NON-NLS-1$
-
-	/**
-	 * The name of the integer system property that specifies the maximum 
-	 * duration for a garbage collection. If this duration is ever exceeded, the 
-	 * explicit gc mechanism is disabled for the remainder of the session.
-	 */
-	private static final String PROP_GC_MAX = "ide.gc.max"; //$NON-NLS-1$
-
-	protected IWorkbenchConfigurer configurer;
-
-	private Listener idleListener;
-
-	/**
-	 * The last time we garbage collected.
-	 */
-	private long lastGC = System.currentTimeMillis();
-
-	/**
-	 * The maximum gc duration. If this value is exceeded, the
-	 * entire explicit gc mechanism is disabled.
-	 */
-	private int maxGC = DEFAULT_GC_MAX;
-	/**
-	 * The minimum time interval until the next garbage collection
-	 */
-	private int minGCInterval = DEFAULT_GC_INTERVAL;
-
-	/**
-	 * The time interval until the next garbage collection
-	 */
-	private int nextGCInterval = DEFAULT_GC_INTERVAL;
-	
-	private Job gcJob;
-
-	private Runnable handler;	
-	
-	/**
-	 * Creates and initializes the idle handler
-	 * @param aConfigurer The workbench configurer.
-	 */
-	IDEIdleHelper(IWorkbenchConfigurer aConfigurer) {
-		this.configurer = aConfigurer;
-		//don't gc while running tests because performance tests are sensitive to timing (see bug 121562)
-		if (PlatformUI.getTestableObject().getTestHarness() != null) {
-			return;
-		}
-		String enabled = System.getProperty(PROP_GC);
-		//gc is turned on by default if property is missing
-		if (enabled != null && enabled.equalsIgnoreCase(Boolean.FALSE.toString())) {
-			return;
-		}
-		//init gc interval
-		Integer prop = Integer.getInteger(PROP_GC_INTERVAL);
-		if (prop != null && prop.intValue() >= 0) {
-			minGCInterval = nextGCInterval = prop.intValue();
-		}
-
-		//init max gc interval
-		prop = Integer.getInteger(PROP_GC_MAX);
-		if (prop != null) {
-			maxGC = prop.intValue();
-		}
-		
-		createGarbageCollectionJob();
-
-		//hook idle handler
-		final Display display = configurer.getWorkbench().getDisplay();
-		handler = new Runnable() {
-					public void run() {
-						if (!display.isDisposed() && !configurer.getWorkbench().isClosing()) {
-							int nextInterval;
-							final long start = System.currentTimeMillis();
-							//don't garbage collect if background jobs are running
-							if (!Job.getJobManager().isIdle()) {
-								nextInterval = IDLE_INTERVAL;
-							} else if ((start - lastGC) < nextGCInterval) {
-								//don't garbage collect if we have collected within the specific interval
-								nextInterval = nextGCInterval - (int) (start - lastGC);
-							} else {
-								gcJob.schedule();
-								nextInterval = minGCInterval;
-							}
-							display.timerExec(nextInterval, this);
-						}
-					}
-				};
-		idleListener = new Listener() {
-			public void handleEvent(Event event) {
-				display.timerExec(IDLE_INTERVAL, handler);
-			}
-		};
-		display.addFilter(SWT.KeyUp, idleListener);
-		display.addFilter(SWT.MouseUp, idleListener);
-	}
-
-	/**
-	 * Creates the job that performs garbage collection
-	 */
-	private void createGarbageCollectionJob() {
-		gcJob = new Job(IDEWorkbenchMessages.IDEIdleHelper_backgroundGC) {
-			protected IStatus run(IProgressMonitor monitor) {
-				final Display display = configurer.getWorkbench().getDisplay();
-				if (display != null && !display.isDisposed()) {
-					final long start = System.currentTimeMillis();
-					System.gc();
-					System.runFinalization();
-					lastGC = start;
-					final int duration = (int) (System.currentTimeMillis() - start);
-					if (Policy.DEBUG_GC) {
-						System.out.println("Explicit GC took: " + duration); //$NON-NLS-1$
-					}
-					if (duration > maxGC) {
-						if (Policy.DEBUG_GC) {
-							System.out.println("Further explicit GCs disabled due to long GC"); //$NON-NLS-1$
-						}
-						shutdown();
-					} else {
-						//if the gc took a long time, ensure the next gc doesn't happen for awhile
-						nextGCInterval = Math.max(minGCInterval, GC_DELAY_MULTIPLIER * duration);
-						if (Policy.DEBUG_GC) {
-							System.out.println("Next GC to run in: " + nextGCInterval); //$NON-NLS-1$
-						}
-					}
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		gcJob.setSystem(true);
-	}
-
-	/**
-	 * Shuts down the idle helper, removing any installed listeners, etc.
-	 */
-	void shutdown() {
-		if (idleListener == null) {
-			return;
-		}
-		final Display display = configurer.getWorkbench().getDisplay();
-		if (display != null && !display.isDisposed()) {
-			try {
-				display.asyncExec(new Runnable() {
-					public void run() {
-						display.timerExec(-1, handler);
-						display.removeFilter(SWT.KeyUp, idleListener);
-						display.removeFilter(SWT.MouseUp, idleListener);
-					}
-				});
-			} catch (SWTException ex) {
-				// ignore (display might be disposed)
-			}			
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java
deleted file mode 100644
index 28edee1..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java
+++ /dev/null
@@ -1,831 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.ide.application;
-
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.core.internal.resources.Workspace;
-import org.eclipse.core.net.proxy.IProxyService;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.ProgressMonitorWrapper;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.TrayDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ISelectionConversionService;
-import org.eclipse.ui.internal.PluginActionBuilder;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.ide.AboutInfo;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-import org.eclipse.ui.internal.ide.IDESelectionConversionService;
-import org.eclipse.ui.internal.ide.IDEWorkbenchActivityHelper;
-import org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.undo.WorkspaceUndoMonitor;
-import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.ui.statushandlers.AbstractStatusHandler;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.Version;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * IDE-specified workbench advisor which configures the workbench for use as an
- * IDE.
- * <p>
- * Note: This class replaces <code>org.eclipse.ui.internal.Workbench</code>.
- * </p>
- * 
- * @since 3.0
- */
-public class IDEWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String WORKBENCH_PREFERENCE_CATEGORY_ID = "org.eclipse.ui.preferencePages.Workbench"; //$NON-NLS-1$
-
-	/**
-	 * The dialog setting key to access the known installed features since the
-	 * last time the workbench was run.
-	 */
-	private static final String INSTALLED_FEATURES = "installedFeatures"; //$NON-NLS-1$
-
-	private static IDEWorkbenchAdvisor workbenchAdvisor = null;
-
-	/**
-	 * Contains the workspace location if the -showlocation command line
-	 * argument is specified, or <code>null</code> if not specified.
-	 */
-	private String workspaceLocation = null;
-
-	/**
-	 * Ordered map of versioned feature ids -> info that are new for this
-	 * session; <code>null</code> if uninitialized. Key type:
-	 * <code>String</code>, Value type: <code>AboutInfo</code>.
-	 */
-	private Map newlyAddedBundleGroups;
-
-	/**
-	 * Array of <code>AboutInfo</code> for all new installed features that
-	 * specify a welcome perspective.
-	 */
-	private AboutInfo[] welcomePerspectiveInfos = null;
-
-	/**
-	 * Helper for managing activites in response to workspace changes.
-	 */
-	private IDEWorkbenchActivityHelper activityHelper = null;
-
-	/**
-	 * Helper for managing work that is performed when the system is otherwise
-	 * idle.
-	 */
-	private IDEIdleHelper idleHelper;
-
-	private Listener settingsChangeListener;
-	
-	/**
-	 * Support class for monitoring workspace changes and periodically
-	 * validating the undo history
-	 */
-	private WorkspaceUndoMonitor workspaceUndoMonitor;
-
-	/**
-	 * The IDE workbench error handler.
-	 */
-	private AbstractStatusHandler ideWorkbenchErrorHandler;
-
-	/**
-	 * Creates a new workbench advisor instance.
-	 */
-	public IDEWorkbenchAdvisor() {
-		super();
-		if (workbenchAdvisor != null) {
-			throw new IllegalStateException();
-		}
-		workbenchAdvisor = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize
-	 */
-	public void initialize(IWorkbenchConfigurer configurer) {
-
-		PluginActionBuilder.setAllowIdeLogging(true);
-		
-		// make sure we always save and restore workspace state
-		configurer.setSaveAndRestore(true);
-
-		// register workspace adapters
-		IDE.registerAdapters();
-
-		// get the command line arguments
-		String[] cmdLineArgs = Platform.getCommandLineArgs();
-
-		// include the workspace location in the title
-		// if the command line option -showlocation is specified
-		for (int i = 0; i < cmdLineArgs.length; i++) {
-			if ("-showlocation".equalsIgnoreCase(cmdLineArgs[i])) { //$NON-NLS-1$
-				String name = null;
-				if (cmdLineArgs.length > i + 1) {
-					name = cmdLineArgs[i + 1];
-				}
-				if (name != null && name.indexOf("-") == -1) { //$NON-NLS-1$
-					workspaceLocation = name;
-				} else {
-					workspaceLocation = Platform.getLocation().toOSString();
-				}
-				break;
-			}
-		}
-
-		// register shared images
-		declareWorkbenchImages();
-
-		// initialize the activity helper
-		activityHelper = IDEWorkbenchActivityHelper.getInstance();
-
-		// initialize idle handler
-		idleHelper = new IDEIdleHelper(configurer);
-		
-		// initialize the workspace undo monitor
-		workspaceUndoMonitor = WorkspaceUndoMonitor.getInstance();
-
-		// show Help button in JFace dialogs
-		TrayDialog.setDialogHelpAvailable(true);
-
-		Policy.setComparator(Collator.getInstance());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
-	 */
-	public void preStartup() {
-
-		// Suspend background jobs while we startup
-		Job.getJobManager().suspend();
-
-		// Register the build actions
-		IProgressService service = PlatformUI.getWorkbench()
-				.getProgressService();
-		ImageDescriptor newImage = IDEInternalWorkbenchImages
-				.getImageDescriptor(IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC);
-		service.registerIconForFamily(newImage,
-				ResourcesPlugin.FAMILY_MANUAL_BUILD);
-		service.registerIconForFamily(newImage,
-				ResourcesPlugin.FAMILY_AUTO_BUILD);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postStartup()
-	 */
-	public void postStartup() {
-		try {
-			refreshFromLocal();
-			activateProxyService();
-			((Workbench) PlatformUI.getWorkbench()).registerService(
-					ISelectionConversionService.class,
-					new IDESelectionConversionService());
-
-			initializeSettingsChangeListener();
-			Display.getCurrent().addListener(SWT.Settings,
-					settingsChangeListener);
-		} finally {// Resume background jobs after we startup
-			Job.getJobManager().resume();
-		}
-	}
-
-	/**
-	 * Activate the proxy service by obtaining it.
-	 */
-	private void activateProxyService() {
-		Bundle bundle = Platform.getBundle("org.eclipse.ui.ide"); //$NON-NLS-1$
-		Object proxyService = null;
-		if (bundle != null) {
-			ServiceReference ref = bundle.getBundleContext().getServiceReference(IProxyService.class.getName());
-			if (ref != null)
-				proxyService = bundle.getBundleContext().getService(ref);
-		}
-		if (proxyService == null) {
-			IDEWorkbenchPlugin.log("Proxy service could not be found."); //$NON-NLS-1$
-		}	
-	}
-
-	/**
-	 * Initialize the listener for settings changes.
-	 */
-	private void initializeSettingsChangeListener() {
-		settingsChangeListener = new Listener() {
-
-			boolean currentHighContrast = Display.getCurrent()
-					.getHighContrast();
-
-			public void handleEvent(org.eclipse.swt.widgets.Event event) {
-				if (Display.getCurrent().getHighContrast() == currentHighContrast)
-					return;
-
-				currentHighContrast = !currentHighContrast;
-
-				// make sure they really want to do this
-				if (new MessageDialog(null,
-						IDEWorkbenchMessages.SystemSettingsChange_title, null,
-						IDEWorkbenchMessages.SystemSettingsChange_message,
-						MessageDialog.QUESTION, new String[] {
-								IDEWorkbenchMessages.SystemSettingsChange_yes,
-								IDEWorkbenchMessages.SystemSettingsChange_no },
-						1).open() == Window.OK) {
-					PlatformUI.getWorkbench().restart();
-				}
-			}
-		};
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postShutdown
-	 */
-	public void postShutdown() {
-		if (activityHelper != null) {
-			activityHelper.shutdown();
-			activityHelper = null;
-		}
-		if (idleHelper != null) {
-			idleHelper.shutdown();
-			idleHelper = null;
-		}
-		if (workspaceUndoMonitor != null) {
-			workspaceUndoMonitor.shutdown();
-			workspaceUndoMonitor = null;
-		}
-		if (IDEWorkbenchPlugin.getPluginWorkspace() != null) {
-			disconnectFromWorkspace();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preShutdown()
-	 */
-	public boolean preShutdown() {
-		Display.getCurrent().removeListener(SWT.Settings,
-				settingsChangeListener);
-		return super.preShutdown();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)
-	 */
-	public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-			IWorkbenchWindowConfigurer configurer) {
-		return new IDEWorkbenchWindowAdvisor(this, configurer);
-	}
-
-	/**
-	 * Return true if the intro plugin is present and false otherwise.
-	 * 
-	 * @return boolean
-	 */
-	public boolean hasIntro() {
-		return getWorkbenchConfigurer().getWorkbench().getIntroManager()
-				.hasIntro();
-	}
-
-	private void refreshFromLocal() {
-		String[] commandLineArgs = Platform.getCommandLineArgs();
-		IPreferenceStore store = IDEWorkbenchPlugin.getDefault()
-				.getPreferenceStore();
-		boolean refresh = store
-				.getBoolean(IDEInternalPreferences.REFRESH_WORKSPACE_ON_STARTUP);
-		if (!refresh) {
-			return;
-		}
-
-		// Do not refresh if it was already done by core on startup.
-		for (int i = 0; i < commandLineArgs.length; i++) {
-			if (commandLineArgs[i].equalsIgnoreCase("-refresh")) { //$NON-NLS-1$
-				return;
-			}
-		}
-
-		final IContainer root = ResourcesPlugin.getWorkspace().getRoot();
-		Job job = new WorkspaceJob(IDEWorkbenchMessages.Workspace_refreshing) {
-			public IStatus runInWorkspace(IProgressMonitor monitor)
-					throws CoreException {
-				root.refreshLocal(IResource.DEPTH_INFINITE, monitor);
-				return Status.OK_STATUS;
-			}
-		};
-		job.setRule(root);
-		job.schedule();
-	}
-
-	/**
-	 * Disconnect from the core workspace.
-	 */
-	private void disconnectFromWorkspace() {
-		// save the workspace
-		final MultiStatus status = new MultiStatus(
-				IDEWorkbenchPlugin.IDE_WORKBENCH, 1,
-				IDEWorkbenchMessages.ProblemSavingWorkbench, null);
-		try {
-			final ProgressMonitorJobsDialog p = new ProgressMonitorJobsDialog(null) {
-
-				/*
-				 * (non-Javadoc)
-				 * @see org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog#createDetailsButton(org.eclipse.swt.widgets.Composite)
-				 */
-				protected void createButtonsForButtonBar(Composite parent) {
-					super.createButtonsForButtonBar(parent);
-					registerCancelButtonListener();
-				}
-
-				public void registerCancelButtonListener() {
-					cancel.addSelectionListener(new SelectionAdapter() {
-						public void widgetSelected(SelectionEvent e) {
-							subTaskLabel.setText(""); //$NON-NLS-1$
-						}
-					});
-				}
-			};
-
-			IRunnableWithProgress runnable = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) {
-					try {
-						monitor = new ProgressMonitorWrapper(monitor) {
-							private double total = 0;
-
-							/*
-							 * (non-Javadoc)
-							 * @see org.eclipse.core.runtime.ProgressMonitorWrapper#internalWorked(double)
-							 */
-							public void internalWorked(double work) {
-								super.internalWorked(work);
-								total += work;
-								updateProgressDetails();
-							}
-
-							/*
-							 * (non-Javadoc)
-							 * @see org.eclipse.core.runtime.ProgressMonitorWrapper#worked(int)
-							 */
-							public void worked(int work) {
-								super.worked(work);
-								total += work;
-								updateProgressDetails();
-							}
-
-							public void beginTask(String name, int totalWork) {
-								super.beginTask(name, totalWork);
-								subTask(IDEWorkbenchMessages.IDEWorkbenchAdvisor_preHistoryCompaction);
-							}
-
-							private void updateProgressDetails() {
-								if (!isCanceled() && Math.abs(total - 4.0) < 0.0001 /* right before history compacting */){
-									subTask(IDEWorkbenchMessages.IDEWorkbenchAdvisor_cancelHistoryPruning);
-									p.setCancelable(true);
-								}
-								if (Math.abs(total - 5.0) < 0.0001 /* history compacting finished */) {
-									subTask(IDEWorkbenchMessages.IDEWorkbenchAdvisor_postHistoryCompaction);
-									p.setCancelable(false);
-								}
-							}
-						};
-
-						status.merge(((Workspace) ResourcesPlugin
-								.getWorkspace()).save(true, true, monitor));
-					} catch (CoreException e) {
-						status.merge(e.getStatus());
-					}
-				}
-			};
-
-			p.run(true, false, runnable);
-		} catch (InvocationTargetException e) {
-			status
-					.merge(new Status(IStatus.ERROR,
-							IDEWorkbenchPlugin.IDE_WORKBENCH, 1,
-							IDEWorkbenchMessages.InternalError, e
-									.getTargetException()));
-		} catch (InterruptedException e) {
-			status.merge(new Status(IStatus.ERROR,
-					IDEWorkbenchPlugin.IDE_WORKBENCH, 1,
-					IDEWorkbenchMessages.InternalError, e));
-		}
-		ErrorDialog.openError(null,
-				IDEWorkbenchMessages.ProblemsSavingWorkspace, null, status,
-				IStatus.ERROR | IStatus.WARNING);
-		if (!status.isOK()) {
-			IDEWorkbenchPlugin.log(
-					IDEWorkbenchMessages.ProblemsSavingWorkspace, status);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getDefaultPageInput
-	 */
-	public IAdaptable getDefaultPageInput() {
-		return ResourcesPlugin.getWorkspace().getRoot();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor
-	 */
-	public String getInitialWindowPerspectiveId() {
-		int index = PlatformUI.getWorkbench().getWorkbenchWindowCount() - 1;
-
-		String perspectiveId = null;
-		AboutInfo[] welcomeInfos = getWelcomePerspectiveInfos();
-		if (index >= 0 && welcomeInfos != null && index < welcomeInfos.length) {
-			perspectiveId = welcomeInfos[index].getWelcomePerspectiveId();
-		}
-		if (perspectiveId == null) {
-			perspectiveId = IDE.RESOURCE_PERSPECTIVE_ID;
-		}
-		return perspectiveId;
-	}
-
-	/**
-	 * Returns the map of versioned feature ids -> info object for all installed
-	 * features. The format of the versioned feature id (the key of the map) is
-	 * featureId + ":" + versionId.
-	 * 
-	 * @return map of versioned feature ids -> info object (key type:
-	 *         <code>String</code>, value type: <code>AboutInfo</code>)
-	 * @since 3.0
-	 */
-	private Map computeBundleGroupMap() {
-		// use tree map to get predicable order
-		Map ids = new TreeMap();
-
-		IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
-		for (int i = 0; i < providers.length; ++i) {
-			IBundleGroup[] groups = providers[i].getBundleGroups();
-			for (int j = 0; j < groups.length; ++j) {
-				IBundleGroup group = groups[j];
-				AboutInfo info = new AboutInfo(group);
-
-				String version = info.getVersionId();
-				version = version == null ? "0.0.0" //$NON-NLS-1$
-						: new Version(version).toString();
-				String versionedFeature = group.getIdentifier() + ":" + version; //$NON-NLS-1$
-
-				ids.put(versionedFeature, info);
-			}
-		}
-
-		return ids;
-	}
-
-	/**
-	 * Returns the ordered map of versioned feature ids -> AboutInfo that are
-	 * new for this session.
-	 * 
-	 * @return ordered map of versioned feature ids (key type:
-	 *         <code>String</code>) -> infos (value type:
-	 *         <code>AboutInfo</code>).
-	 */
-	public Map getNewlyAddedBundleGroups() {
-		if (newlyAddedBundleGroups == null) {
-			newlyAddedBundleGroups = createNewBundleGroupsMap();
-		}
-		return newlyAddedBundleGroups;
-	}
-
-	/**
-	 * Updates the old features setting and returns a map of new features.
-	 */
-	private Map createNewBundleGroupsMap() {
-		// retrieve list of installed bundle groups from last session
-		IDialogSettings settings = IDEWorkbenchPlugin.getDefault()
-				.getDialogSettings();
-		String[] previousFeaturesArray = settings.getArray(INSTALLED_FEATURES);
-
-		// get a map of currently installed bundle groups and store it for next
-		// session
-		Map bundleGroups = computeBundleGroupMap();
-		String[] currentFeaturesArray = new String[bundleGroups.size()];
-		bundleGroups.keySet().toArray(currentFeaturesArray);
-		settings.put(INSTALLED_FEATURES, currentFeaturesArray);
-
-		// remove the previously known from the current set
-		if (previousFeaturesArray != null) {
-			for (int i = 0; i < previousFeaturesArray.length; ++i) {
-				bundleGroups.remove(previousFeaturesArray[i]);
-			}
-		}
-
-		return bundleGroups;
-	}
-
-	/**
-	 * Declares all IDE-specific workbench images. This includes both "shared"
-	 * images (named in {@link IDE.SharedImages}) and internal images (named in
-	 * {@link org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages}).
-	 * 
-	 * @see IWorkbenchConfigurer#declareImage
-	 */
-	private void declareWorkbenchImages() {
-
-		final String ICONS_PATH = "$nl$/icons/full/";//$NON-NLS-1$
-		final String PATH_ELOCALTOOL = ICONS_PATH + "elcl16/"; // Enabled //$NON-NLS-1$
-
-		// toolbar
-		// icons.
-		final String PATH_DLOCALTOOL = ICONS_PATH + "dlcl16/"; // Disabled //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// toolbar
-		// icons.
-		final String PATH_ETOOL = ICONS_PATH + "etool16/"; // Enabled toolbar //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons.
-		final String PATH_DTOOL = ICONS_PATH + "dtool16/"; // Disabled toolbar //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons.
-		final String PATH_OBJECT = ICONS_PATH + "obj16/"; // Model object //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons
-		final String PATH_WIZBAN = ICONS_PATH + "wizban/"; // Wizard //$NON-NLS-1$
-		// //$NON-NLS-1$
-		// icons
-
-		Bundle ideBundle = Platform.getBundle(IDEWorkbenchPlugin.IDE_WORKBENCH);
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC, PATH_ETOOL
-						+ "build_exec.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_HOVER,
-				PATH_ETOOL + "build_exec.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_BUILD_EXEC_DISABLED,
-				PATH_DTOOL + "build_exec.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC, PATH_ETOOL
-						+ "search_src.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_HOVER,
-				PATH_ETOOL + "search_src.gif", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_SEARCH_SRC_DISABLED,
-				PATH_DTOOL + "search_src.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_NEXT_NAV, PATH_ETOOL
-						+ "next_nav.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_PREVIOUS_NAV, PATH_ETOOL
-						+ "prev_nav.gif", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_NEWPRJ_WIZ, PATH_WIZBAN
-						+ "newprj_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFOLDER_WIZ,
-				PATH_WIZBAN + "newfolder_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFILE_WIZ, PATH_WIZBAN
-						+ "newfile_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTDIR_WIZ,
-				PATH_WIZBAN + "importdir_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_IMPORTZIP_WIZ,
-				PATH_WIZBAN + "importzip_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTDIR_WIZ,
-				PATH_WIZBAN + "exportdir_wiz.png", false); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_EXPORTZIP_WIZ,
-				PATH_WIZBAN + "exportzip_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_WIZBAN_RESOURCEWORKINGSET_WIZ,
-				PATH_WIZBAN + "workset_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_DLGBAN_SAVEAS_DLG, PATH_WIZBAN
-						+ "saveas_wiz.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_DLGBAN_QUICKFIX_DLG, PATH_WIZBAN
-						+ "quick_fix.png", false); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJ_PROJECT,
-				PATH_OBJECT + "prj_obj.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED, PATH_OBJECT
-						+ "cprj_obj.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OPEN_MARKER,
-				PATH_ELOCALTOOL + "gotoobj_tsk.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ELCL_QUICK_FIX_ENABLED,
-				PATH_ELOCALTOOL + "smartmode_co.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_DLCL_QUICK_FIX_DISABLED,
-				PATH_DLOCALTOOL + "smartmode_co.gif", true); //$NON-NLS-1$
-
-		// task objects
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_HPRIO_TSK,
-		// PATH_OBJECT+"hprio_tsk.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_MPRIO_TSK,
-		// PATH_OBJECT+"mprio_tsk.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_LPRIO_TSK,
-		// PATH_OBJECT+"lprio_tsk.gif");
-
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_TASK_TSK,
-				PATH_OBJECT + "taskmrk_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle, IDE.SharedImages.IMG_OBJS_BKMRK_TSK,
-				PATH_OBJECT + "bkmrk_tsk.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_COMPLETE_TSK, PATH_OBJECT
-						+ "complete_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_INCOMPLETE_TSK, PATH_OBJECT
-						+ "incomplete_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_ITEM, PATH_OBJECT
-						+ "welcome_item.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_WELCOME_BANNER, PATH_OBJECT
-						+ "welcome_banner.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_ERROR_PATH, PATH_OBJECT
-						+ "error_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_WARNING_PATH, PATH_OBJECT
-						+ "warn_tsk.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_OBJS_INFO_PATH, PATH_OBJECT
-						+ "info_tsk.gif", true); //$NON-NLS-1$
-
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_LCL_FLAT_LAYOUT, PATH_ELOCALTOOL
-						+ "flatLayout.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_LCL_HIERARCHICAL_LAYOUT,
-				PATH_ELOCALTOOL + "hierarchicalLayout.gif", true); //$NON-NLS-1$
-		declareWorkbenchImage(ideBundle,
-				IDEInternalWorkbenchImages.IMG_ETOOL_PROBLEM_CATEGORY,
-				PATH_ETOOL + "problem_category.gif", true); //$NON-NLS-1$
-	
-		// synchronization indicator objects
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_WBET_STAT,
-		// PATH_OVERLAY+"wbet_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_SBET_STAT,
-		// PATH_OVERLAY+"sbet_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_CONFLICT_STAT,
-		// PATH_OVERLAY+"conflict_stat.gif");
-
-		// content locality indicator objects
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_NOTLOCAL_STAT,
-		// PATH_STAT+"notlocal_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_LOCAL_STAT,
-		// PATH_STAT+"local_stat.gif");
-		// declareRegistryImage(IDEInternalWorkbenchImages.IMG_OBJS_FILLLOCAL_STAT,
-		// PATH_STAT+"filllocal_stat.gif");
-	}
-
-	/**
-	 * Declares an IDE-specific workbench image.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic name of the image
-	 * @param path
-	 *            the path of the image file; this path is relative to the base
-	 *            of the IDE plug-in
-	 * @param shared
-	 *            <code>true</code> if this is a shared image, and
-	 *            <code>false</code> if this is not a shared image
-	 * @see IWorkbenchConfigurer#declareImage
-	 */
-	private void declareWorkbenchImage(Bundle ideBundle, String symbolicName,
-			String path, boolean shared) {
-		URL url = FileLocator.find(ideBundle, new Path(path), null);
-		ImageDescriptor desc = ImageDescriptor.createFromURL(url);
-		getWorkbenchConfigurer().declareImage(symbolicName, desc, shared);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getMainPreferencePageId
-	 */
-	public String getMainPreferencePageId() {
-		// indicate that we want the Workench preference page to be prominent
-		return WORKBENCH_PREFERENCE_CATEGORY_ID;
-	}
-
-	/**
-	 * @return the workspace location string, or <code>null</code> if the
-	 *         location is not being shown
-	 */
-	public String getWorkspaceLocation() {
-		return workspaceLocation;
-	}
-
-	/**
-	 * @return the welcome perspective infos, or <code>null</code> if none or
-	 *         if they should be ignored due to the new intro being present
-	 */
-	public AboutInfo[] getWelcomePerspectiveInfos() {
-		if (welcomePerspectiveInfos == null) {
-			// support old welcome perspectives if intro plugin is not present
-			if (!hasIntro()) {
-				Map m = getNewlyAddedBundleGroups();
-				ArrayList list = new ArrayList(m.size());
-				for (Iterator i = m.values().iterator(); i.hasNext();) {
-					AboutInfo info = (AboutInfo) i.next();
-					if (info != null && info.getWelcomePerspectiveId() != null
-							&& info.getWelcomePageURL() != null) {
-						list.add(info);
-					}
-				}
-				welcomePerspectiveInfos = new AboutInfo[list.size()];
-				list.toArray(welcomePerspectiveInfos);
-			}
-		}
-		return welcomePerspectiveInfos;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getWorkbenchErrorHandler()
-	 */
-	public synchronized AbstractStatusHandler getWorkbenchErrorHandler() {
-		if (ideWorkbenchErrorHandler == null) {
-			ideWorkbenchErrorHandler = new IDEWorkbenchErrorHandler(
-					getWorkbenchConfigurer());
-		}
-		return ideWorkbenchErrorHandler;
-	}
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java
deleted file mode 100644
index 70dfade..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,673 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.ide.application;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-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.jface.action.ToolBarManager;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.graphics.Color;
-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.Label;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IPageListener;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PerspectiveAdapter;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.internal.ide.AboutInfo;
-import org.eclipse.ui.internal.ide.EditorAreaDropAdapter;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.WorkbenchActionBuilder;
-import org.eclipse.ui.internal.ide.dialogs.WelcomeEditorInput;
-import org.eclipse.ui.part.EditorInputTransfer;
-import org.eclipse.ui.part.MarkerTransfer;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-/**
- * Window-level advisor for the IDE.
- */
-public class IDEWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-	private static final String WELCOME_EDITOR_ID = "org.eclipse.ui.internal.ide.dialogs.WelcomeEditor"; //$NON-NLS-1$
-
-	private IDEWorkbenchAdvisor wbAdvisor;
-	private boolean editorsAndIntrosOpened = false;
-	private IEditorPart lastActiveEditor = null;
-	private IPerspectiveDescriptor lastPerspective = null;
-
-	private IWorkbenchPage lastActivePage;
-	private String lastEditorTitle = ""; //$NON-NLS-1$
-
-	private IPropertyListener editorPropertyListener = new IPropertyListener() {
-		public void propertyChanged(Object source, int propId) {
-			if (propId == IWorkbenchPartConstants.PROP_TITLE) {
-				if (lastActiveEditor != null) {
-					String newTitle = lastActiveEditor.getTitle();
-					if (!lastEditorTitle.equals(newTitle)) {
-						recomputeTitle();
-					}
-				}
-			}
-		}
-	};
-
-	private IAdaptable lastInput;
-
-	private IWorkbenchAction openPerspectiveAction;
-
-	/**
-	 * Crates a new IDE workbench window advisor.
-	 * 
-	 * @param wbAdvisor
-	 *            the workbench advisor
-	 * @param configurer
-	 *            the window configurer
-	 */
-	public IDEWorkbenchWindowAdvisor(IDEWorkbenchAdvisor wbAdvisor,
-			IWorkbenchWindowConfigurer configurer) {
-		super(configurer);
-		this.wbAdvisor = wbAdvisor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)
-	 */
-	public ActionBarAdvisor createActionBarAdvisor(
-			IActionBarConfigurer configurer) {
-		return new WorkbenchActionBuilder(configurer);
-	}
-
-	/**
-	 * Returns the workbench.
-	 * 
-	 * @return the workbench
-	 */
-	private IWorkbench getWorkbench() {
-		return getWindowConfigurer().getWorkbenchConfigurer().getWorkbench();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preWindowShellClose
-	 */
-	public boolean preWindowShellClose() {
-		if (getWorkbench().getWorkbenchWindowCount() > 1) {
-			return true;
-		}
-		// the user has asked to close the last window, while will cause the
-		// workbench to close in due course - prompt the user for confirmation
-		IPreferenceStore store = IDEWorkbenchPlugin.getDefault()
-				.getPreferenceStore();
-		boolean promptOnExit = store
-				.getBoolean(IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW);
-
-		if (promptOnExit) {
-			String message;
-
-			String productName = null;
-			IProduct product = Platform.getProduct();
-			if (product != null) {
-				productName = product.getName();
-			}
-			if (productName == null) {
-				message = IDEWorkbenchMessages.PromptOnExitDialog_message0;
-			} else {
-				message = NLS.bind(
-						IDEWorkbenchMessages.PromptOnExitDialog_message1,
-						productName);
-			}
-
-			MessageDialogWithToggle dlg = MessageDialogWithToggle
-					.openOkCancelConfirm(getWindowConfigurer().getWindow()
-							.getShell(),
-							IDEWorkbenchMessages.PromptOnExitDialog_shellTitle,
-							message,
-							IDEWorkbenchMessages.PromptOnExitDialog_choice,
-							false, null, null);
-			if (dlg.getReturnCode() != IDialogConstants.OK_ID) {
-				return false;
-			}
-			if (dlg.getToggleState()) {
-				store
-						.setValue(
-								IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW,
-								false);
-				IDEWorkbenchPlugin.getDefault().savePluginPreferences();
-			}
-		}
-
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preWindowOpen
-	 */
-	public void preWindowOpen() {
-		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-
-		// show the shortcut bar and progress indicator, which are hidden by
-		// default
-		configurer.setShowPerspectiveBar(true);
-		configurer.setShowFastViewBars(true);
-		configurer.setShowProgressIndicator(true);
-
-		// add the drag and drop support for the editor area
-		configurer.addEditorAreaTransfer(EditorInputTransfer.getInstance());
-		configurer.addEditorAreaTransfer(ResourceTransfer.getInstance());
-		configurer.addEditorAreaTransfer(FileTransfer.getInstance());
-		configurer.addEditorAreaTransfer(MarkerTransfer.getInstance());
-		configurer.configureEditorAreaDropListener(new EditorAreaDropAdapter(
-				configurer.getWindow()));
-
-		hookTitleUpdateListeners(configurer);
-	}
-
-	/**
-	 * Hooks the listeners needed on the window
-	 * 
-	 * @param configurer
-	 */
-	private void hookTitleUpdateListeners(IWorkbenchWindowConfigurer configurer) {
-		// hook up the listeners to update the window title
-		configurer.getWindow().addPageListener(new IPageListener() {
-			public void pageActivated(IWorkbenchPage page) {
-				updateTitle(false);
-			}
-
-			public void pageClosed(IWorkbenchPage page) {
-				updateTitle(false);
-			}
-
-			public void pageOpened(IWorkbenchPage page) {
-				// do nothing
-			}
-		});
-		configurer.getWindow().addPerspectiveListener(new PerspectiveAdapter() {
-			public void perspectiveActivated(IWorkbenchPage page,
-					IPerspectiveDescriptor perspective) {
-				updateTitle(false);
-			}
-
-			public void perspectiveSavedAs(IWorkbenchPage page,
-					IPerspectiveDescriptor oldPerspective,
-					IPerspectiveDescriptor newPerspective) {
-				updateTitle(false);
-			}
-
-			public void perspectiveDeactivated(IWorkbenchPage page,
-					IPerspectiveDescriptor perspective) {
-				updateTitle(false);
-			}
-		});
-		configurer.getWindow().getPartService().addPartListener(
-				new IPartListener2() {
-					public void partActivated(IWorkbenchPartReference ref) {
-						if (ref instanceof IEditorReference) {
-							updateTitle(false);
-						}
-					}
-
-					public void partBroughtToTop(IWorkbenchPartReference ref) {
-						if (ref instanceof IEditorReference) {
-							updateTitle(false);
-						}
-					}
-
-					public void partClosed(IWorkbenchPartReference ref) {
-						updateTitle(false);
-					}
-
-					public void partDeactivated(IWorkbenchPartReference ref) {
-						// do nothing
-					}
-
-					public void partOpened(IWorkbenchPartReference ref) {
-						// do nothing
-					}
-
-					public void partHidden(IWorkbenchPartReference ref) {
-						if (ref.getPart(false) == lastActiveEditor
-								&& lastActiveEditor != null) {
-							updateTitle(true);
-						}
-					}
-
-					public void partVisible(IWorkbenchPartReference ref) {
-						if (ref.getPart(false) == lastActiveEditor
-								&& lastActiveEditor != null) {
-							updateTitle(false);
-						}
-					}
-
-					public void partInputChanged(IWorkbenchPartReference ref) {
-						// do nothing
-					}
-				});
-	}
-
-	private String computeTitle() {
-		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-		IWorkbenchPage currentPage = configurer.getWindow().getActivePage();
-		IEditorPart activeEditor = null;
-		if (currentPage != null) {
-			activeEditor = lastActiveEditor;
-		}
-
-		String title = null;
-		IProduct product = Platform.getProduct();
-		if (product != null) {
-			title = product.getName();
-		}
-		if (title == null) {
-			title = ""; //$NON-NLS-1$
-		}
-
-		if (currentPage != null) {
-			if (activeEditor != null) {
-				lastEditorTitle = activeEditor.getTitleToolTip();
-				title = NLS.bind(
-						IDEWorkbenchMessages.WorkbenchWindow_shellTitle,
-						lastEditorTitle, title);
-			}
-			IPerspectiveDescriptor persp = currentPage.getPerspective();
-			String label = ""; //$NON-NLS-1$
-			if (persp != null) {
-				label = persp.getLabel();
-			}
-			IAdaptable input = currentPage.getInput();
-			if (input != null && !input.equals(wbAdvisor.getDefaultPageInput())) {
-				label = currentPage.getLabel();
-			}
-			if (label != null && !label.equals("")) { //$NON-NLS-1$ 
-				title = NLS.bind(
-						IDEWorkbenchMessages.WorkbenchWindow_shellTitle, label,
-						title);
-			}
-		}
-
-		String workspaceLocation = wbAdvisor.getWorkspaceLocation();
-		if (workspaceLocation != null) {
-			title = NLS.bind(IDEWorkbenchMessages.WorkbenchWindow_shellTitle,
-					title, workspaceLocation);
-		}
-
-		return title;
-	}
-
-	private void recomputeTitle() {
-		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-		String oldTitle = configurer.getTitle();
-		String newTitle = computeTitle();
-		if (!newTitle.equals(oldTitle)) {
-			configurer.setTitle(newTitle);
-		}
-	}
-
-	/**
-	 * Updates the window title. Format will be: [pageInput -]
-	 * [currentPerspective -] [editorInput -] [workspaceLocation -] productName
-	 * @param editorHidden TODO
-	 */
-	private void updateTitle(boolean editorHidden) {
-		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-		IWorkbenchWindow window = configurer.getWindow();
-		IEditorPart activeEditor = null;
-		IWorkbenchPage currentPage = window.getActivePage();
-		IPerspectiveDescriptor persp = null;
-		IAdaptable input = null;
-
-		if (currentPage != null) {
-			activeEditor = currentPage.getActiveEditor();
-			persp = currentPage.getPerspective();
-			input = currentPage.getInput();
-		}
-		
-		if (editorHidden) {
-			activeEditor = null;
-		}
-
-		// Nothing to do if the editor hasn't changed
-		if (activeEditor == lastActiveEditor && currentPage == lastActivePage
-				&& persp == lastPerspective && input == lastInput) {
-			return;
-		}
-
-		if (lastActiveEditor != null) {
-			lastActiveEditor.removePropertyListener(editorPropertyListener);
-		}
-
-		lastActiveEditor = activeEditor;
-		lastActivePage = currentPage;
-		lastPerspective = persp;
-		lastInput = input;
-
-		if (activeEditor != null) {
-			activeEditor.addPropertyListener(editorPropertyListener);
-		}
-
-		recomputeTitle();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postWindowRestore
-	 */
-	public void postWindowRestore() throws WorkbenchException {
-		IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-		IWorkbenchWindow window = configurer.getWindow();
-
-		int index = getWorkbench().getWorkbenchWindowCount() - 1;
-
-		AboutInfo[] welcomePerspectiveInfos = wbAdvisor
-				.getWelcomePerspectiveInfos();
-		if (index >= 0 && welcomePerspectiveInfos != null
-				&& index < welcomePerspectiveInfos.length) {
-			// find a page that exist in the window
-			IWorkbenchPage page = window.getActivePage();
-			if (page == null) {
-				IWorkbenchPage[] pages = window.getPages();
-				if (pages != null && pages.length > 0) {
-					page = pages[0];
-				}
-			}
-
-			// if the window does not contain a page, create one
-			String perspectiveId = welcomePerspectiveInfos[index]
-					.getWelcomePerspectiveId();
-			if (page == null) {
-				IAdaptable root = wbAdvisor.getDefaultPageInput();
-				page = window.openPage(perspectiveId, root);
-			} else {
-				IPerspectiveRegistry reg = getWorkbench()
-						.getPerspectiveRegistry();
-				IPerspectiveDescriptor desc = reg
-						.findPerspectiveWithId(perspectiveId);
-				if (desc != null) {
-					page.setPerspective(desc);
-				}
-			}
-
-			// set the active page and open the welcome editor
-			window.setActivePage(page);
-			page.openEditor(new WelcomeEditorInput(
-					welcomePerspectiveInfos[index]), WELCOME_EDITOR_ID, true);
-		}
-	}
-
-	/**
-	 * Tries to open the intro, if one exists and otherwise will open the legacy
-	 * Welcome pages.
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#openIntro()
-	 */
-	public void openIntro() {
-		if (editorsAndIntrosOpened) {
-			return;
-		}
-
-		editorsAndIntrosOpened = true;
-
-		// don't try to open the welcome editors if there is an intro
-		if (wbAdvisor.hasIntro()) {
-			super.openIntro();
-		} else {
-			openWelcomeEditors(getWindowConfigurer().getWindow());
-			// save any preferences changes caused by the above actions
-			IDEWorkbenchPlugin.getDefault().savePluginPreferences();
-		}
-	}
-
-	/*
-	 * Open the welcome editor for the primary feature and for any newly
-	 * installed features.
-	 */
-	private void openWelcomeEditors(IWorkbenchWindow window) {
-		if (IDEWorkbenchPlugin.getDefault().getPreferenceStore().getBoolean(
-				IDEInternalPreferences.WELCOME_DIALOG)) {
-			// show the welcome page for the product the first time the
-			// workbench opens
-			IProduct product = Platform.getProduct();
-			if (product == null) {
-				return;
-			}
-
-			AboutInfo productInfo = new AboutInfo(product);
-			URL url = productInfo.getWelcomePageURL();
-			if (url == null) {
-				return;
-			}
-
-			IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(
-					IDEInternalPreferences.WELCOME_DIALOG, false);
-			openWelcomeEditor(window, new WelcomeEditorInput(productInfo), null);
-		} else {
-			// Show the welcome page for any newly installed features
-			List welcomeFeatures = new ArrayList();
-			for (Iterator it = wbAdvisor.getNewlyAddedBundleGroups().entrySet()
-					.iterator(); it.hasNext();) {
-				Map.Entry entry = (Map.Entry) it.next();
-				AboutInfo info = (AboutInfo) entry.getValue();
-
-				if (info != null && info.getWelcomePageURL() != null) {
-					welcomeFeatures.add(info);
-					// activate the feature plug-in so it can run some install
-					// code
-					String pi = info.getBrandingBundleId();
-					if (pi != null) {
-						// Start the bundle if there is one
-						Bundle bundle = Platform.getBundle(pi);
-						if (bundle != null) {
-							try {
-								bundle.start(Bundle.START_TRANSIENT);
-							} catch (BundleException exception) {
-								StatusManager
-										.getManager()
-										.handle(
-												new Status(
-														IStatus.ERROR,
-														IDEApplication.PLUGIN_ID,
-														"Failed to load feature", exception));//$NON-NLS-1$
-							}
-						}
-					}
-				}
-			}
-
-			int wCount = getWorkbench().getWorkbenchWindowCount();
-			for (int i = 0; i < welcomeFeatures.size(); i++) {
-				AboutInfo newInfo = (AboutInfo) welcomeFeatures.get(i);
-				String id = newInfo.getWelcomePerspectiveId();
-				// Other editors were already opened in postWindowRestore(..)
-				if (id == null || i >= wCount) {
-					openWelcomeEditor(window, new WelcomeEditorInput(newInfo),
-							id);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Open a welcome editor for the given input
-	 */
-	private void openWelcomeEditor(IWorkbenchWindow window,
-			WelcomeEditorInput input, String perspectiveId) {
-		if (getWorkbench().getWorkbenchWindowCount() == 0) {
-			// Something is wrong, there should be at least
-			// one workbench window open by now.
-			return;
-		}
-
-		IWorkbenchWindow win = window;
-		if (perspectiveId != null) {
-			try {
-				win = getWorkbench().openWorkbenchWindow(perspectiveId,
-						wbAdvisor.getDefaultPageInput());
-				if (win == null) {
-					win = window;
-				}
-			} catch (WorkbenchException e) {
-				IDEWorkbenchPlugin
-						.log(
-								"Error opening window with welcome perspective.", e.getStatus()); //$NON-NLS-1$
-				return;
-			}
-		}
-
-		if (win == null) {
-			win = getWorkbench().getWorkbenchWindows()[0];
-		}
-
-		IWorkbenchPage page = win.getActivePage();
-		String id = perspectiveId;
-		if (id == null) {
-			id = getWorkbench().getPerspectiveRegistry()
-					.getDefaultPerspective();
-		}
-
-		if (page == null) {
-			try {
-				page = win.openPage(id, wbAdvisor.getDefaultPageInput());
-			} catch (WorkbenchException e) {
-				ErrorDialog.openError(win.getShell(),
-						IDEWorkbenchMessages.Problems_Opening_Page, e
-								.getMessage(), e.getStatus());
-			}
-		}
-		if (page == null) {
-			return;
-		}
-
-		if (page.getPerspective() == null) {
-			try {
-				page = getWorkbench().showPerspective(id, win);
-			} catch (WorkbenchException e) {
-				ErrorDialog
-						.openError(
-								win.getShell(),
-								IDEWorkbenchMessages.Workbench_openEditorErrorDialogTitle,
-								IDEWorkbenchMessages.Workbench_openEditorErrorDialogMessage,
-								e.getStatus());
-				return;
-			}
-		}
-
-		page.setEditorAreaVisible(true);
-
-		// see if we already have an editor
-		IEditorPart editor = page.findEditor(input);
-		if (editor != null) {
-			page.activate(editor);
-			return;
-		}
-
-		try {
-			page.openEditor(input, WELCOME_EDITOR_ID);
-		} catch (PartInitException e) {
-			ErrorDialog
-					.openError(
-							win.getShell(),
-							IDEWorkbenchMessages.Workbench_openEditorErrorDialogTitle,
-							IDEWorkbenchMessages.Workbench_openEditorErrorDialogMessage,
-							e.getStatus());
-		}
-		return;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#createEmptyWindowContents(org.eclipse.ui.application.IWorkbenchWindowConfigurer,
-	 *      org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createEmptyWindowContents(Composite parent) {
-		final IWorkbenchWindow window = getWindowConfigurer().getWindow();
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setLayout(new GridLayout(2, false));
-		Display display = composite.getDisplay();
-		Color bgCol = display
-				.getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND);
-		composite.setBackground(bgCol);
-		Label label = new Label(composite, SWT.WRAP);
-		label.setForeground(display
-				.getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
-		label.setBackground(bgCol);
-		label.setFont(JFaceResources.getFontRegistry().getBold(
-				JFaceResources.DEFAULT_FONT));
-		String msg = IDEWorkbenchMessages.IDEWorkbenchAdvisor_noPerspective;
-		label.setText(msg);
-		ToolBarManager toolBarManager = new ToolBarManager();
-		// TODO: should obtain the open perspective action from ActionFactory
-		openPerspectiveAction = ActionFactory.OPEN_PERSPECTIVE_DIALOG
-				.create(window);
-		toolBarManager.add(openPerspectiveAction);
-		ToolBar toolBar = toolBarManager.createControl(composite);
-		toolBar.setBackground(bgCol);
-		return composite;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#dispose()
-	 */
-	public void dispose() {
-		if (openPerspectiveAction!=null) {
-			openPerspectiveAction.dispose();
-			openPerspectiveAction = null;
-		}
-		super.dispose();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java
deleted file mode 100644
index 237618b..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/ResourcePerspective.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Remy Chi Jian Suen <remy.suen@gmail.com>
- *     		- Bug 44162 [Wizards]  Define constants for wizard ids of new.file, new.folder, and new.project
- *     Remy Chi Jian Suen - Bug 208804 [CommonNavigator] change "Navigator" view perspective links
-  *******************************************************************************/
-package org.eclipse.ui.internal.ide.application;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.navigator.resources.ProjectExplorer;
-import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard;
-
-/**
- */
-public class ResourcePerspective implements IPerspectiveFactory {
-	
-    /**
-     * Constructs a new Default layout engine.
-     */
-    public ResourcePerspective() {
-        super();
-    }
-
-    /**
-     * Defines the initial layout for a perspective.  
-     *
-     * Implementors of this method may add additional views to a
-     * perspective.  The perspective already contains an editor folder
-     * with <code>ID = ILayoutFactory.ID_EDITORS</code>.  Add additional views
-     * to the perspective in reference to the editor folder.
-     *
-     * This method is only called when a new perspective is created.  If
-     * an old perspective is restored from a persistence file then
-     * this method is not called.
-     *
-     * @param layout the factory used to add views to the perspective
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        defineActions(layout);
-        defineLayout(layout);
-    }
-
-    /**
-     * Defines the initial actions for a page.  
-     * @param layout The layout we are filling
-     */
-    public void defineActions(IPageLayout layout) {
-        // Add "new wizards".
-        layout.addNewWizardShortcut(BasicNewFolderResourceWizard.WIZARD_ID);
-        layout.addNewWizardShortcut(BasicNewFileResourceWizard.WIZARD_ID);
-
-        // Add "show views".
-        layout.addShowViewShortcut(ProjectExplorer.VIEW_ID);
-        layout.addShowViewShortcut(IPageLayout.ID_BOOKMARKS);
-        layout.addShowViewShortcut(IPageLayout.ID_OUTLINE);
-        layout.addShowViewShortcut(IPageLayout.ID_PROP_SHEET);
-        layout.addShowViewShortcut(IPageLayout.ID_PROBLEM_VIEW);
-        layout.addShowViewShortcut(IPageLayout.ID_PROGRESS_VIEW);
-        layout.addShowViewShortcut(IPageLayout.ID_TASK_LIST);
-
-        layout.addActionSet(IPageLayout.ID_NAVIGATE_ACTION_SET);
-    }
-
-    /**
-     * Defines the initial layout for a page.  
-     * @param layout The layout we are filling
-     */
-    public void defineLayout(IPageLayout layout) {
-        // Editors are placed for free.
-        String editorArea = layout.getEditorArea();
-
-        // Top left.
-        IFolderLayout topLeft = layout.createFolder(
-                "topLeft", IPageLayout.LEFT, (float) 0.26, editorArea);//$NON-NLS-1$
-        topLeft.addView(ProjectExplorer.VIEW_ID);
-        topLeft.addPlaceholder(IPageLayout.ID_BOOKMARKS);
-
-        // Add a placeholder for the old navigator to maintain compatibility
-        topLeft.addPlaceholder("org.eclipse.ui.views.ResourceNavigator"); //$NON-NLS-1$
-
-        // Bottom left.
-        IFolderLayout bottomLeft = layout.createFolder(
-                "bottomLeft", IPageLayout.BOTTOM, (float) 0.50,//$NON-NLS-1$
-                "topLeft");//$NON-NLS-1$
-        bottomLeft.addView(IPageLayout.ID_OUTLINE);
-
-        // Bottom right.
-		IFolderLayout bottomRight = layout.createFolder(
-                "bottomRight", IPageLayout.BOTTOM, (float) 0.66,//$NON-NLS-1$
-                editorArea);
-		
-		bottomRight.addView(IPageLayout.ID_TASK_LIST);
-		
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java
deleted file mode 100644
index 3f93b97..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/IDEStartupPreferencePage.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Eric Rizzo - removed "prompt for workspace on startup" checkbox
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application.dialogs;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-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.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.dialogs.StartupPreferencePage;
-import org.eclipse.ui.internal.ide.IDEInternalPreferences;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-
-/**
- * Extends the Startup and Shutdown preference page with IDE-specific settings.
- * 
- * Note: want IDE settings to appear in main Workbench preference page (via subclassing),
- *   however the superclass, StartupPreferencePage, is internal
- * @since 3.0
- */
-public class IDEStartupPreferencePage extends StartupPreferencePage implements
-        IWorkbenchPreferencePage {
-
-    private Button refreshButton;
-
-    private Button exitPromptButton;
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.preference.PreferencePage
-     */
-    protected Control createContents(Composite parent) {
-
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				IWorkbenchHelpContextIds.STARTUP_PREFERENCE_PAGE);
-
-        Composite composite = createComposite(parent);
-
-        createRefreshWorkspaceOnStartupPref(composite);
-        createExitPromptPref(composite);
-
-        Label space = new Label(composite,SWT.NONE);
-		space.setLayoutData(new GridData());
-        
-        createEarlyStartupSelection(composite);
-
-        return composite;
-    }
-
-    /**
-     * The default button has been pressed.
-     */
-    protected void performDefaults() {
-        IPreferenceStore store = getIDEPreferenceStore();
-
-        refreshButton
-                .setSelection(store
-                        .getDefaultBoolean(IDEInternalPreferences.REFRESH_WORKSPACE_ON_STARTUP));
-        exitPromptButton
-                .setSelection(store
-                        .getDefaultBoolean(IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW));
-
-        super.performDefaults();
-    }
-
-    /**
-     * The user has pressed Ok. Store/apply this page's values appropriately.
-     */
-    public boolean performOk() {
-        IPreferenceStore store = getIDEPreferenceStore();
-
-        // store the refresh workspace on startup setting
-        store.setValue(IDEInternalPreferences.REFRESH_WORKSPACE_ON_STARTUP,
-                refreshButton.getSelection());
-
-        // store the exit prompt on last window close setting
-        store.setValue(IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW,
-                exitPromptButton.getSelection());
-
-        IDEWorkbenchPlugin.getDefault().savePluginPreferences();
-
-        return super.performOk();
-    }
-
-    protected void createRefreshWorkspaceOnStartupPref(Composite composite) {
-        refreshButton = new Button(composite, SWT.CHECK);
-        refreshButton.setText(IDEWorkbenchMessages.StartupPreferencePage_refreshButton);
-        refreshButton.setFont(composite.getFont());
-        refreshButton.setSelection(getIDEPreferenceStore().getBoolean(
-                IDEInternalPreferences.REFRESH_WORKSPACE_ON_STARTUP));
-    }
-
-    protected void createExitPromptPref(Composite composite) {
-        exitPromptButton = new Button(composite, SWT.CHECK);
-        exitPromptButton.setText(IDEWorkbenchMessages.StartupPreferencePage_exitPromptButton);
-        exitPromptButton.setFont(composite.getFont());
-        exitPromptButton.setSelection(getIDEPreferenceStore().getBoolean(
-                IDEInternalPreferences.EXIT_PROMPT_ON_CLOSE_LAST_WINDOW));
-    }
-
-    /**
-     * Returns the IDE preference store.
-     */
-    protected IPreferenceStore getIDEPreferenceStore() {
-        return IDEWorkbenchPlugin.getDefault().getPreferenceStore();
-    }
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/RecentWorkspacesPreferencePage.java b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/RecentWorkspacesPreferencePage.java
deleted file mode 100644
index 7860a35..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/dialogs/RecentWorkspacesPreferencePage.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Eric Rizzo and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Eric Rizzo - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.ide.application.dialogs;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.Dialog;
-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.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.ide.ChooseWorkspaceData;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-
-/**
- * Preference page for editing the list of recent workspaces and whether or not
- * the user is prompted at startup.
- * 
- * @since 3.5
- */
-public class RecentWorkspacesPreferencePage extends PreferencePage
-	implements IWorkbenchPreferencePage {
-
-	private static final int MIN_WORKSPACS = 5;
-	private static final int MAX_WORKSPACES = 99;
-	private static final int MAX_WORKSPACES_DIGIT_COUNT = 2;
-
-	private ChooseWorkspaceData workspacesData;
-
-	private Button promptOption;
-	private Spinner maxWorkspacesField;
-	private List workspacesList;
-	private Button removeButton;
-
-
-	public void init(IWorkbench workbench) {
-		workspacesData = new ChooseWorkspaceData(Platform.getInstanceLocation().getURL());
-	}
-
-	public Control createContents(Composite parent) {
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				IWorkbenchHelpContextIds.WORKSPACES_PREFERENCE_PAGE);
-
-		Composite container = new Composite(parent, SWT.NULL);
-		final GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		gridLayout.marginHeight = 0;
-		gridLayout.marginWidth = 0;
-		container.setLayout(gridLayout);
-
-		createPromptOption(container);
-		createMaxWorkspacesField(container);
-		createWorkspacesList(container);
-		
-		Dialog.applyDialogFont(container);
-
-		return container;
-	}
-
-
-	protected void createPromptOption(Composite parent) {
-		promptOption = new Button(parent, SWT.CHECK);
-		promptOption.setText(IDEWorkbenchMessages.RecentWorkspacesPreferencePage_PromptAtStartup_label);
-		promptOption.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
-
-		promptOption.setSelection(workspacesData.getShowDialog());
-		promptOption.addSelectionListener(new SelectionAdapter(){
-				public void widgetSelected(SelectionEvent event) {
-					workspacesData.toggleShowDialog();
-				}
-			});
-	}
-
-
-	protected void createMaxWorkspacesField(Composite parent) {
-		final Label maxWorkspacesLabel = new Label(parent, SWT.NONE);
-		maxWorkspacesLabel.setText(IDEWorkbenchMessages.RecentWorkspacesPreferencePage_NumberOfWorkspaces_label);
-		maxWorkspacesField = new Spinner(parent, SWT.BORDER);
-		maxWorkspacesField.setTextLimit(MAX_WORKSPACES_DIGIT_COUNT);
-		maxWorkspacesField.setMinimum(MIN_WORKSPACS);
-		maxWorkspacesField.setMaximum(MAX_WORKSPACES);
-
-		maxWorkspacesField.setSelection(workspacesData.getRecentWorkspaces().length);
-	}
-
-
-	protected void createWorkspacesList(Composite parent) {
-		final Group recentWorkspacesGroup = new Group(parent, SWT.NONE);
-		recentWorkspacesGroup.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-		recentWorkspacesGroup.setText(IDEWorkbenchMessages.RecentWorkspacesPreferencePage_RecentWorkspacesList_label);
-		final GridLayout gridLayout_1 = new GridLayout();
-		gridLayout_1.numColumns = 2;
-		recentWorkspacesGroup.setLayout(gridLayout_1);
-		
-		workspacesList = new List(recentWorkspacesGroup, SWT.BORDER | SWT.MULTI);
-		final GridData gd_workspacesList = new GridData(SWT.FILL, SWT.FILL, true, true);
-		workspacesList.setLayoutData(gd_workspacesList);
-		
-		removeButton = new Button(recentWorkspacesGroup, SWT.NONE);
-		final GridData gd_removeButton = new GridData(SWT.CENTER, SWT.TOP, false, false);
-		removeButton.setLayoutData(gd_removeButton);
-		removeButton.setText(IDEWorkbenchMessages.RecentWorkspacesPreferencePage_RemoveButton_label);
-		removeButton.setEnabled(false);
-
-		removeButton.addSelectionListener(new SelectionAdapter(){
-				public void widgetSelected(SelectionEvent event) {
-					removeSelectedWorkspaces();
-					updateRemoveButton();
-				}
-			});
-
-		workspacesList.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent event) {
-					updateRemoveButton();
-				}
-			});
-
-		String[] recentWorkspaces = workspacesData.getRecentWorkspaces();
-		for (int i = 0; i < recentWorkspaces.length; i++) {
-			String aWorkspace = recentWorkspaces[i];
-			if (aWorkspace != null) {
-				workspacesList.add(aWorkspace);
-			}
-		}
-	}
-
-
-	protected void removeSelectedWorkspaces() {
-		// This would be a lot less code if we could use Jakarta CollectionUtils and/or ArrayUtils
-
-		int[] selected = workspacesList.getSelectionIndices();
-		java.util.List workspaces = new ArrayList(Arrays.asList(workspacesList.getItems()));
-
-		// Iterate bottom-up because removal changes indices in the list
-		for (int i = selected.length-1; i >= 0; i--) {
-			workspaces.remove(selected[i]);
-		}
-
-		String[] newItems = new String[workspaces.size()];
-		workspaces.toArray(newItems);
-		workspacesList.setItems(newItems);
-	}
-
-
-	protected void performDefaults() {
-		promptOption.setSelection(true);
-		super.performDefaults();
-	}
-
-
-	public boolean performOk() {
-		int maxWorkspaces = maxWorkspacesField.getSelection();
-		String[] workspaces = new String[maxWorkspaces];
-		String[] listItems = workspacesList.getItems();
-
-		if (maxWorkspaces < listItems.length) {
-			// TODO: maybe alert the user that the list will be truncated?
-			System.arraycopy(listItems, 0, workspaces, 0, maxWorkspaces);
-		} else  {
-			System.arraycopy(listItems, 0, workspaces, 0, listItems.length);
-		}
-
-		workspacesData.setRecentWorkspaces(workspaces);
-		workspacesData.writePersistedData();
-		return true;
-	}
-
-
-	protected void updateRemoveButton() {
-		removeButton.setEnabled(workspacesList.getSelectionCount() > 0);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/package.html b/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/package.html
deleted file mode 100644
index 052a46e..0000000
--- a/bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/package.html
+++ /dev/null
@@ -1,19 +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">
-<title>Package-level Javadoc</title>
-</head>
-
-<body>
-
-Internal implementation of the IDE- application of the Eclipse Platform User
-Interface.
-<h2>Package Specification</h2>
-This package does not contain any API.
-
-</body>
-
-</html>
diff --git a/bundles/org.eclipse.ui.navigator.resources/.classpath b/bundles/org.eclipse.ui.navigator.resources/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.navigator.resources/.cvsignore b/bundles/org.eclipse.ui.navigator.resources/.cvsignore
deleted file mode 100644
index 66fef7b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-doc
-temp.folder
-wbnavigator.jar
-build.xml
diff --git a/bundles/org.eclipse.ui.navigator.resources/.project b/bundles/org.eclipse.ui.navigator.resources/.project
deleted file mode 100644
index adf410f..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.navigator.resources</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.navigator.resources/.settings/.api_filters b/bundles/org.eclipse.ui.navigator.resources/.settings/.api_filters
deleted file mode 100755
index bcfb5f8..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/.api_filters
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<component id="org.eclipse.ui.navigator.resources" version="2">
-    <resource path="src/org/eclipse/ui/navigator/resources/ProjectExplorer.java" type="org.eclipse.ui.navigator.resources.ProjectExplorer">
-        <filter id="642777099">
-            <message_arguments>
-                <message_argument value="CommonNavigator"/>
-                <message_argument value="ProjectExplorer"/>
-                <message_argument value="setWorkingSetLabel(String)"/>
-            </message_arguments>
-        </filter>
-        <filter id="642777099">
-            <message_arguments>
-                <message_argument value="CommonNavigator"/>
-                <message_argument value="ProjectExplorer"/>
-                <message_argument value="getWorkingSetLabel()"/>
-            </message_arguments>
-        </filter>
-        <filter id="642777099">
-            <message_arguments>
-                <message_argument value="CommonNavigator"/>
-                <message_argument value="ProjectExplorer"/>
-                <message_argument value="getRootMode()"/>
-            </message_arguments>
-        </filter>
-        <filter id="642777099">
-            <message_arguments>
-                <message_argument value="CommonNavigator"/>
-                <message_argument value="ProjectExplorer"/>
-                <message_argument value="setRootMode(int)"/>
-            </message_arguments>
-        </filter>
-        <filter id="640712815">
-            <message_arguments>
-                <message_argument value="CommonViewer"/>
-                <message_argument value="ProjectExplorer"/>
-                <message_argument value="getFrameList()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionSorter.java" type="org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionSorter">
-        <filter id="571473929">
-            <message_arguments>
-                <message_argument value="ResourceSorter"/>
-                <message_argument value="ResourceExtensionSorter"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsContentProvider.java" type="org.eclipse.ui.internal.navigator.workingsets.WorkingSetsContentProvider">
-        <filter id="640712815">
-            <message_arguments>
-                <message_argument value="CommonNavigator"/>
-                <message_argument value="WorkingSetsContentProvider"/>
-                <message_argument value="getRootMode()"/>
-            </message_arguments>
-        </filter>
-        <filter id="640712815">
-            <message_arguments>
-                <message_argument value="CommonNavigator"/>
-                <message_argument value="WorkingSetsContentProvider"/>
-                <message_argument value="setRootMode(int)"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetActionProvider.java" type="org.eclipse.ui.internal.navigator.resources.actions.WorkingSetActionProvider$WorkingSetManagerListener">
-        <filter id="640712815">
-            <message_arguments>
-                <message_argument value="CommonViewer"/>
-                <message_argument value="WorkingSetManagerListener"/>
-                <message_argument value="getFrameList()"/>
-            </message_arguments>
-        </filter>
-        <filter id="640712815">
-            <message_arguments>
-                <message_argument value="CommonNavigator"/>
-                <message_argument value="WorkingSetManagerListener"/>
-                <message_argument value="setWorkingSetLabel(String)"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/internal/navigator/resources/actions/TextActionHandler.java" type="org.eclipse.ui.internal.navigator.resources.actions.TextActionHandler">
-        <filter id="571473929">
-            <message_arguments>
-                <message_argument value="TextActionHandler"/>
-                <message_argument value="TextActionHandler"/>
-            </message_arguments>
-        </filter>
-    </resource>
-    <resource path="src/org/eclipse/ui/navigator/resources/GoIntoActionProvider.java" type="org.eclipse.ui.navigator.resources.GoIntoActionProvider">
-        <filter id="640712815">
-            <message_arguments>
-                <message_argument value="CommonViewer"/>
-                <message_argument value="GoIntoActionProvider"/>
-                <message_argument value="getFrameList()"/>
-            </message_arguments>
-        </filter>
-    </resource>
-</component>
diff --git a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index a66cd9a..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Feb 21 13:59:06 EST 2006
-eclipse.preferences.version=1
-encoding//src/org/eclipse/ui/internal/navigator/resources/plugin/messages.properties=8859_1
diff --git a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9bf5c93..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,353 +0,0 @@
-#Wed Jan 21 20:28:23 PST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-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.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-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=0
-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=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-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_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=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=80
-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_annotation_declaration_header=true
-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_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not 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_annotation_declaration=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_parenthesized_expression_in_throw=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=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-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=1
-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
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 9152862..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Wed Jan 21 20:28:23 PST 2009
-eclipse.preferences.version=1
-formatter_profile=_CNF
-formatter_settings_version=11
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.api.tools.prefs b/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.api.tools.prefs
deleted file mode 100644
index 70ef1e5..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.api.tools.prefs
+++ /dev/null
@@ -1,91 +0,0 @@
-#Thu Jan 22 12:30:17 PST 2009
-ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
-ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
-ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
-API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
-CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
-CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
-CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
-CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
-CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
-ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
-ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
-ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
-FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
-FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
-FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
-FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
-ILLEGAL_EXTEND=Error
-ILLEGAL_IMPLEMENT=Error
-ILLEGAL_INSTANTIATE=Error
-ILLEGAL_OVERRIDE=Error
-ILLEGAL_REFERENCE=Error
-INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
-INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
-INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
-INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-INVALID_JAVADOC_TAG=Error
-INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
-LEAK_EXTEND=Error
-LEAK_FIELD_DECL=Error
-LEAK_IMPLEMENT=Error
-LEAK_METHOD_PARAM=Error
-LEAK_METHOD_RETURN_TYPE=Error
-METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
-METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
-METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
-METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
-METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
-METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
-METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
-TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
-UNUSED_PROBLEM_FILTERS=Warning
-eclipse.preferences.version=1
-incompatible_api_component_version=Error
-incompatible_api_component_version_include_major_without_breaking_change=Disabled
-incompatible_api_component_version_include_minor_without_api_change=Disabled
-invalid_since_tag_version=Error
-malformed_since_tag=Error
-missing_since_tag=Error
-report_api_breakage_when_major_version_incremented=Disabled
-report_resolution_errors_api_component=Warning
diff --git a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d8d62f0..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,25 +0,0 @@
-#Thu Aug 14 02:41:03 PDT 2008
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.discouraged-class=1
-compilers.p.illegal-att-value=0
-compilers.p.internal=1
-compilers.p.missing-packages=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
deleted file mode 100644
index 97daee3..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.navigator.resources; singleton:=true
-Bundle-Version: 3.4.100.qualifier
-Bundle-Activator: org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.navigator.resources;x-internal:=true,
- org.eclipse.ui.internal.navigator.resources.actions;x-internal:=true,
- org.eclipse.ui.internal.navigator.resources.plugin;x-internal:=true,
- org.eclipse.ui.internal.navigator.resources.workbench;x-internal:=true,
- org.eclipse.ui.internal.navigator.workingsets;x-internal:=true,
- org.eclipse.ui.navigator.resources
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jface;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.ui.navigator;bundle-version="[3.2.1,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.views.properties.tabbed;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.ui.navigator.resources/about.html b/bundles/org.eclipse.ui.navigator.resources/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/build.properties b/bundles/org.eclipse.ui.navigator.resources/build.properties
deleted file mode 100644
index 9ac718e..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/build.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-source.. = src/
-bin.includes = plugin.xml,\
-               icons/,\
-               .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.. = bin/
-src.includes = about.html
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/collapseall.gif
deleted file mode 100644
index 0bae56c..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/synced.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/synced.gif
deleted file mode 100644
index f865f3a..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/filenav_nav.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/filenav_nav.gif
deleted file mode 100644
index 91b9d5a..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/filenav_nav.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/collapseall.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/filter_ps.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/filter_ps.gif
deleted file mode 100644
index a4c9e60..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/synced.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/synced.gif
deleted file mode 100644
index 870934b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/eview16/resource_persp.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/eview16/resource_persp.gif
deleted file mode 100644
index 1b8fe00..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/eview16/resource_persp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/obj16/workingsets.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/obj16/workingsets.gif
deleted file mode 100644
index fa8c9f7..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/obj16/workingsets.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/error_co.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/error_co.gif
deleted file mode 100644
index 8612eaf..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/error_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/warning_co.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/warning_co.gif
deleted file mode 100644
index 3af228c..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/warning_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/plugin.properties b/bundles/org.eclipse.ui.navigator.resources/plugin.properties
deleted file mode 100644
index aaf4430..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/plugin.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Navigator Workbench Components
-Plugin.providerName = Eclipse.org 
-
-resource.extension.name=Resources
-resourceGoTo.extension.name=Resources Go To
-workingsets.extension.name=Working Sets
-Common_Resource_Navigator=Project Explorer
- 
-filters.startsWithDot.name=.* resources
-filters.startsWithDot.description=Hides resources that begin with "."
-filters.endsWithClass.name=*.class resources
-filters.endsWithClass.description=Hides resources that end with ".class"
-filters.closedProject.name=Closed projects
-filters.closedProject.description=Hides closed projects
-
-Resource=Resource
diff --git a/bundles/org.eclipse.ui.navigator.resources/plugin.xml b/bundles/org.eclipse.ui.navigator.resources/plugin.xml
deleted file mode 100644
index 37043e0..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/plugin.xml
+++ /dev/null
@@ -1,377 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
- 
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.navigator.resources.ProjectExplorer"
-            icon="$nl$/icons/full/eview16/resource_persp.gif"
-            id="org.eclipse.ui.navigator.ProjectExplorer"
-            name="%Common_Resource_Navigator"/>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-       <viewer
-             viewerId="org.eclipse.ui.navigator.ProjectExplorer">
-          <popupMenu
-                allowsPlatformContributions="true"
-                id="org.eclipse.ui.navigator.ProjectExplorer#PopupMenu">  
-             <insertionPoint name="group.new"/>
-             <insertionPoint
-                   name="group.open"
-                   separator="true"/>
-             <insertionPoint name="group.openWith"/>   
-             <insertionPoint name="group.edit"
-                   separator="true"/>   
-             <insertionPoint name="group.reorganize" />         
-             <insertionPoint
-                   name="group.port"
-                   separator="true"/>     
-             <insertionPoint
-                   name="group.build"
-                   separator="true"/> 
-             <insertionPoint
-                   name="group.generate"
-                   separator="true"/> 
-             <insertionPoint
-                   name="group.search"
-                   separator="true"/>              
-             <insertionPoint
-                   name="additions"
-                   separator="true"/>              
-             <insertionPoint
-                   name="group.properties"
-                   separator="true"/>
-             
-          </popupMenu>
-       </viewer>
-       <viewerContentBinding 
-             viewerId="org.eclipse.ui.navigator.ProjectExplorer">
-          <includes>
-       	      <contentExtension pattern="org.eclipse.ui.navigator.resourceContent" />		       	      
-	          <contentExtension pattern="org.eclipse.ui.navigator.resources.filters.*"/>
-           <contentExtension pattern="org.eclipse.ui.navigator.resources.linkHelper"/>
-           <contentExtension pattern="org.eclipse.ui.navigator.resources.workingSets"/>
-          </includes>
-       </viewerContentBinding>
-       <viewerActionBinding
-            viewerId="org.eclipse.ui.navigator.ProjectExplorer">
-         <includes>
-             <actionExtension pattern="org.eclipse.ui.navigator.resources.*" />
-         </includes>
-       </viewerActionBinding>
-       <dragAssistant
-             class="org.eclipse.ui.navigator.resources.ResourceDragAdapterAssistant"
-             viewerId="org.eclipse.ui.navigator.ProjectExplorer"/>
-       
-   </extension>
-   
-<!-- Resource Content  -->
-   <extension  
-         point="org.eclipse.ui.navigator.navigatorContent">
-      <navigatorContent
-            name="%resource.extension.name"
-            priority="low"
-            icon="$nl$/icons/full/eview16/resource_persp.gif"
-            activeByDefault="true"
-			            contentProvider="org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionContentProvider"
-            			labelProvider="org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionLabelProvider"			
-            id="org.eclipse.ui.navigator.resourceContent">         
-         <enablement>
-		         <or>         
-		            <adapt type="org.eclipse.core.resources.IProject" /> 
-		            <instanceof 
-		                  	value="org.eclipse.core.resources.IResource" /> 
-		         </or>
-         </enablement>
-         
-        <commonSorter
-              class="org.eclipse.ui.internal.navigator.resources.workbench.ResourceExtensionSorter"
-              id="org.eclipse.ui.navigator.resources.sorters.defaultSorter">
-           <parentExpression>
-           		  <or>           
-		            <instanceof value="org.eclipse.core.resources.IResource" /> 
-		         </or>
-		   </parentExpression>
-        </commonSorter>
-        <dropAssistant
-              class="org.eclipse.ui.navigator.resources.ResourceDropAdapterAssistant"
-              id="org.eclipse.ui.navigator.resources.resourceDropAdapter">
-           <possibleDropTargets>
-              <or>
-                 <adapt type="org.eclipse.core.resources.IProject"/>
-                 <adapt type="org.eclipse.core.resources.IFolder"/>
-                 <adapt type="org.eclipse.core.resources.IFile"/>
-              </or>
-           </possibleDropTargets>
-        </dropAssistant>        
-
-        <actionProvider
-              class="org.eclipse.ui.internal.navigator.resources.actions.EditActionProvider"
-              id="org.eclipse.ui.navigator.resources.actions.EditActions"/>         
-        <actionProvider
-              class="org.eclipse.ui.internal.navigator.resources.actions.RefactorActionProvider"
-              id="org.eclipse.ui.navigator.resources.actions.RefactorActions"/>         
-                      
-	      <!-- Menu Shortcut Actions for Wizards -->
-	      <commonWizard
-	        		type="new"
-					wizardId="org.eclipse.ui.wizards.new.folder">
-				<enablement>
-					<or>
-						<adapt type="org.eclipse.core.resources.IFile" />	
-						<adapt type="org.eclipse.core.resources.IFolder" />
-	         			<adapt type="org.eclipse.core.resources.IProject" /> 
-	               		<adapt type="org.eclipse.core.resources.IWorkspaceRoot" />	
-					</or>
-		         </enablement>
-			</commonWizard>   
-	        <commonWizard
-	            type="new"
-	            wizardId="org.eclipse.ui.wizards.new.file">
-				<enablement>
-					<or>
-						<adapt type="org.eclipse.core.resources.IFile" />	
-						<adapt type="org.eclipse.core.resources.IFolder" />
-	         			<adapt type="org.eclipse.core.resources.IProject" /> 
-	               		<adapt type="org.eclipse.core.resources.IWorkspaceRoot" />	
-					</or>
-		         </enablement>
-			</commonWizard>              
-      </navigatorContent>
-      <actionProvider 
-      			id="org.eclipse.ui.navigator.resources.OpenActions"
-				class="org.eclipse.ui.internal.navigator.resources.actions.OpenActionProvider">
-			<enablement>
-				<or>
-					<adapt type="org.eclipse.core.resources.IFile" /> 	
-				</or>
-			</enablement>
-		</actionProvider>
-      <actionProvider
-            class="org.eclipse.ui.internal.navigator.resources.actions.GotoActionProvider"
-            id="org.eclipse.ui.navigator.resources.GotoActions">
-			<enablement>
-				<or>
-					<adapt type="org.eclipse.core.resources.IResource" /> 	
-					<adapt type="org.eclipse.ui.IWorkingSet" /> 	
-				</or>
-			</enablement>
-      </actionProvider>
-      <actionProvider
-            class="org.eclipse.ui.navigator.resources.GoIntoActionProvider"
-            id="org.eclipse.ui.navigator.resources.GoIntoActions">
-			<enablement>
-				<and>
-					<or>
-						<and>
-							<adapt type="org.eclipse.core.resources.IProject" />
-							<test property="org.eclipse.core.resources.open" 
-                            	value="true"/>
-						</and>
-						<adapt type="org.eclipse.core.resources.IFolder" /> 	
-						<adapt type="org.eclipse.ui.IWorkingSet" /> 	
-					</or>
-				</and>
-			</enablement>
-      </actionProvider>
-      
-      <!-- Action Providers --> 
-		<actionProvider 
-        		id="org.eclipse.ui.navigator.resources.PortingActions"
-				class="org.eclipse.ui.internal.navigator.resources.actions.PortingActionProvider">
-			<enablement> 
-			    <or>
-					<adapt type="org.eclipse.core.resources.IResource" />	 
-					<adapt type="java.util.Collection"> 
-						<count value="0" />
-					</adapt>
-				</or>	 
-			</enablement>
-		</actionProvider>
-        <actionProvider
-            	class="org.eclipse.ui.internal.navigator.resources.actions.NewActionProvider"
-            	id="org.eclipse.ui.navigator.resources.NewActions"> 
-        	<enablement> 
-        			<or>
-						<adapt type="org.eclipse.core.resources.IResource" />	 
-						<adapt type="java.util.Collection"> 
-							<count value="0" />
-						</adapt>
-					</or>
-	         </enablement>
-		</actionProvider> 
-        <actionProvider
-              class="org.eclipse.ui.internal.navigator.resources.actions.PropertiesActionProvider"
-              id="org.eclipse.ui.navigator.resources.PropertiesActionProvider">
-           <enablement>
-        	  <instanceof value="org.eclipse.core.runtime.IAdaptable" />
-           </enablement>
-        </actionProvider>
-        <actionProvider
-              class="org.eclipse.ui.internal.navigator.resources.actions.WorkManagementActionProvider"
-              id="org.eclipse.ui.navigator.resources.WorkManagementActionProvider">
-           <enablement>
-              <adapt type="org.eclipse.core.resources.IResource"/>
-           </enablement>
-        </actionProvider>
-        
-        <actionProvider
-              class="org.eclipse.ui.internal.navigator.resources.actions.ResourceMgmtActionProvider"
-              id="org.eclipse.ui.navigator.resources.ResourceMgmtActions">
-           <enablement>
-                <or>
-					<adapt type="org.eclipse.core.resources.IResource" />	 
-					<adapt type="java.util.Collection"> 
-						<count value="0" />
-					</adapt>
-				</or>
-           </enablement>
-        </actionProvider> 
-        
-        <actionProvider 
-      			id="org.eclipse.ui.navigator.resources.UndoRedoActionProvider"
-				class="org.eclipse.ui.internal.navigator.resources.actions.UndoRedoActionProvider">
-			<enablement> 
-				<!-- 'true' -->
-   				<or/>
-			</enablement>
-		</actionProvider>
-
-      <!-- Expression Filters -->  
-      <commonFilter
-            id="org.eclipse.ui.navigator.resources.filters.startsWithDot"
-            name="%filters.startsWithDot.name"
-            description="%filters.startsWithDot.description"
-            activeByDefault="true"
-            >
-         <filterExpression>
-         	<and>
-	            <adapt type="org.eclipse.core.resources.IResource">
-            		<test property="org.eclipse.core.resources.name" value=".*"/>
-            	</adapt>	            
-	        </and>
-         </filterExpression>
-      </commonFilter>
-      <commonFilter  
-            id="org.eclipse.ui.navigator.resources.filters.endsWithClass"
-            name="%filters.endsWithClass.name"
-            description="%filters.endsWithClass.description"
-            activeByDefault="false"
-            >
-         <filterExpression>
-         	<and>
-	            <instanceof value="org.eclipse.core.resources.IFile"/>
-            	<test property="org.eclipse.core.resources.name" value="*.class"/>	            
-	        </and>
-         </filterExpression>
-      </commonFilter> 
-      <commonFilter
-            id="org.eclipse.ui.navigator.resources.filters.closedProject"
-            name="%filters.closedProject.name"
-            description="%filters.closedProject.description" 
-            activeByDefault="false"
-           >
-         <filterExpression>
-         	<and>
-	            <instanceof value="org.eclipse.core.resources.IProject"/>
-            	<test property="org.eclipse.core.resources.open" value="false"/>	            
-	        </and>
-         </filterExpression>
-      </commonFilter>
-      <actionProvider
-            class="org.eclipse.ui.internal.navigator.resources.actions.WorkingSetActionProvider"
-            id="org.eclipse.ui.navigator.resources.WorkingSetActions">
-           <enablement>
-                <or>
-					<adapt type="org.eclipse.core.resources.IResource" />	 
-					<adapt type="java.util.Collection"> 
-						<count value="0" />
-					</adapt>
-				</or>
-           </enablement>            
-      </actionProvider>
-      <navigatorContent
-            activeByDefault="true"
-            contentProvider="org.eclipse.ui.internal.navigator.workingsets.WorkingSetsContentProvider"
-            icon="$nl$/icons/full/obj16/workingsets.gif"
-            id="org.eclipse.ui.navigator.resources.workingSets"
-            labelProvider="org.eclipse.ui.internal.navigator.workingsets.WorkingSetsLabelProvider"
-            name="%workingsets.extension.name"
-            priority="higher">
-         <triggerPoints>
-            <instanceof value="org.eclipse.ui.IWorkingSet"/>
-         </triggerPoints>
-         <possibleChildren>
-            <instanceof value="java.lang.Object"/>
-         </possibleChildren>
-         <commonSorter
-               class="org.eclipse.ui.internal.navigator.workingsets.WorkingSetSorter"
-               id="org.eclipse.ui.navigator.resources.workingSets.sorter"/>  
-      </navigatorContent>
-      
-   </extension>
-    <extension
-          point="org.eclipse.core.runtime.adapters">
-       <factory
-             adaptableType="org.eclipse.ui.navigator.CommonNavigator"
-            class="org.eclipse.ui.internal.navigator.resources.workbench.TabbedPropertySheetAdapterFactory">
-         <adapter type="org.eclipse.ui.views.properties.IPropertySheetPage"/>
-      </factory>
-    </extension>
-    <extension
-          point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-       <propertyContributor
-             contributorId="org.eclipse.ui.navigator.ProjectExplorer"
-             labelProvider="org.eclipse.ui.internal.navigator.resources.workbench.TabbedPropertySheetTitleProvider">
-          <propertyCategory category="general"/>
-          <propertyCategory category="core"/>
-          <propertyCategory category="appearance"/>
-          <propertyCategory category="resource"/>
-          <propertyCategory category="advanced"/>
-       </propertyContributor>
-    </extension>
-    <extension
-          point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-       <propertyTabs contributorId="org.eclipse.ui.navigator.ProjectExplorer">
-          <propertyTab
-                label="%Resource"
-                category="resource"
-                id="CommonNavigator.tab.Resource"/>
-       </propertyTabs>
-    </extension>
-    <extension
-          point="org.eclipse.ui.views.properties.tabbed.propertySections">
-       <propertySections contributorId="org.eclipse.ui.navigator.ProjectExplorer">
-          <propertySection
-                class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
-                id="CommonNavigator.section.Resource"
-                tab="CommonNavigator.tab.Resource">
-             <input type="java.lang.Object"/>
-          </propertySection>
-       </propertySections>
-    </extension>
-    <extension
-          point="org.eclipse.ui.navigator.linkHelper">
-       <linkHelper
-             class="org.eclipse.ui.internal.navigator.resources.workbench.ResourceLinkHelper"
-             id="org.eclipse.ui.navigator.resources.linkHelper">
-          <selectionEnablement>
-             <instanceof value="org.eclipse.core.resources.IFile"/>
-          </selectionEnablement>
-          <editorInputEnablement>
-             <instanceof value="org.eclipse.ui.IFileEditorInput"/>
-          </editorInputEnablement>
-       </linkHelper>
-    </extension>
-	<extension
-      point="org.eclipse.ui.perspectiveExtensions">
-    	<perspectiveExtension targetID = "org.eclipse.ui.resourcePerspective">
-		    <showInPart id = "org.eclipse.ui.navigator.ProjectExplorer"/>
-    	</perspectiveExtension>
-   	</extension>    
-</plugin> 
diff --git a/bundles/org.eclipse.ui.navigator.resources/prepareforpii.xml b/bundles/org.eclipse.ui.navigator.resources/prepareforpii.xml
deleted file mode 100644
index b2cc36f..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/prepareforpii.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<project name="PrepareForPII" default="main" basedir=".">
-		
-	<!-- Setup temp variables -->
-	<target name="init">
-		<property name="nlsDir" value="d:/NLS/Corona/0526"/>
-		<property name="plugin" value="org.eclipse.ui.workbench.navigator"/>
-		<property name="plugindir" value="d:/workspaceCorona/${plugin}"/>
-		<property name="outputDir" value="${nlsDir}/${plugin}"/>
-		
-	
-	</target>
-
-	<!-- Create the destination dir -->
-	<target name="nlsDir" depends="init">
-		<mkdir dir="${nlsDir}"/>
-	</target>
-	
-	<!-- Create the destination dir -->
-	<target name="plugindir" depends="nlsDir">
-		<delete dir="${outputDir}"/>
-		<mkdir dir="${outputDir}"/>
-	</target>
-
-	<!-- Move the files to the correct locations in the workspace. -->
-	<target name="main" depends="plugindir">
-		<messageIdGen folderPath = "${plugindir}" componentId = "E" />
-		
-		<copy todir = "${outputDir}/property_files" >
-			 <fileset dir="${plugindir}/property_files">
-           	  <include name="**/*.properties"/>
-  			 </fileset>
-  		</copy>
-  		
-		<copy file="${plugindir}/plugin.properties" todir="${outputDir}"/>
-  		
-	</target>
-</project>
diff --git a/bundles/org.eclipse.ui.navigator.resources/scripts/src.jardesc b/bundles/org.eclipse.ui.navigator.resources/scripts/src.jardesc
deleted file mode 100644
index 6d2b77c..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/scripts/src.jardesc
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<jardesc>
-	<jar path="C:/dev/workspaces/general-purpose-navigator/org.eclipse.ui.workbench.navigator/wbnavigator.jar"/>
-	<options compress="true"
-		descriptionLocation="/org.eclipse.ui.workbench.navigator/scripts/src.jardesc"
-		exportErrors="true" exportWarnings="true" logErrors="true"
-		logWarnings="true" overwrite="false" saveDescription="true" useSourceFolders="false"/>
-	<manifest generateManifest="false"
-		manifestLocation="/org.eclipse.ui.workbench.navigator/src/META-INF/MANIFEST.MF"
-		manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="false">
-		<sealing sealJar="false"><packagesToSeal/><packagesToUnSeal/></sealing>
-	</manifest>
-	<selectedElements exportClassFiles="true" exportJavaFiles="false">
-		<javaElement handleIdentifier="=org.eclipse.ui.workbench.navigator/src"/>
-	</selectedElements>
-</jardesc>
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/ResourceToItemsMapper.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/ResourceToItemsMapper.java
deleted file mode 100755
index 5bfa784..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/ResourceToItemsMapper.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Stack;
-
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonViewerMapper;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Adds a supplemental map for the CommonViewer to efficiently handle resource
- * changes.  When objects are added to the Viewer's map, this is called to see
- * if there is an associated resource.  If so, it's added to the map here.
- * When resource change notifications happen, this map is checked, and if the
- * resource is found, this class causes the Viewer to be updated.  If the 
- * resource is not found, the notification can be ignored because the object
- * corresponding to the resource is not present in the viewer.
- * 
- */
-public class ResourceToItemsMapper implements ICommonViewerMapper {
-
-	private static final int NUMBER_LIST_REUSE = 10;
-
-	// map from resource to item
-	private HashMap _resourceToItem;
-	private Stack _reuseLists;
-
-	private CommonViewer _commonViewer;
-
-	public ResourceToItemsMapper(CommonViewer viewer) {
-		_resourceToItem = new HashMap();
-		_reuseLists = new Stack();
-
-		_commonViewer = viewer;
-		viewer.setMapper(this);
-	}
-
-	public void addToMap(Object element, Item item) {
-		IResource resource = getCorrespondingResource(element);
-		if (resource != null) {
-			Object existingMapping = _resourceToItem.get(resource);
-			if (existingMapping == null) {
-				_resourceToItem.put(resource, item);
-			} else if (existingMapping instanceof Item) {
-				if (existingMapping != item) {
-					List list = getNewList();
-					list.add(existingMapping);
-					list.add(item);
-					_resourceToItem.put(resource, list);
-				}
-			} else { // List
-				List list = (List) existingMapping;
-				if (!list.contains(item)) {
-					list.add(item);
-				}
-			}
-		}
-	}
-
-	public void removeFromMap(Object element, Item item) {
-		IResource resource = getCorrespondingResource(element);
-		if (resource != null) {
-			Object existingMapping = _resourceToItem.get(resource);
-			if (existingMapping == null) {
-				return;
-			} else if (existingMapping instanceof Item) {
-				_resourceToItem.remove(resource);
-			} else { // List
-				List list = (List) existingMapping;
-				list.remove(item);
-				if (list.isEmpty()) {
-					_resourceToItem.remove(list);
-					releaseList(list);
-				}
-			}
-		}
-	}
-
-	public void clearMap() {
-		_resourceToItem.clear();
-	}
-
-	public boolean isEmpty() {
-		return _resourceToItem.isEmpty();
-	}
-
-	private List getNewList() {
-		if (!_reuseLists.isEmpty()) {
-			return (List) _reuseLists.pop();
-		}
-		return new ArrayList(2);
-	}
-
-	private void releaseList(List list) {
-		if (_reuseLists.size() < NUMBER_LIST_REUSE) {
-			_reuseLists.push(list);
-		}
-	}
-
-	public boolean handlesObject(Object object) {
-		return object instanceof IResource;
-	}
-	
-
-	/**
-	 * Must be called from the UI thread.
-	 * 
-	 * @param changedResource
-	 *            Changed resource
-	 */
-	public void objectChanged(Object changedResource) {
-		Object obj = _resourceToItem.get(changedResource);
-		if (obj == null) {
-			// not mapped
-		} else if (obj instanceof Item) {
-			updateItem((Item) obj);
-		} else { // List of Items
-			List list = (List) obj;
-			for (int k = 0; k < list.size(); k++) {
-				updateItem((Item) list.get(k));
-			}
-		}
-	}
-
-	private void updateItem(Item item) {
-		if (!item.isDisposed()) {
-			_commonViewer.doUpdateItem(item);
-		}
-	}
-
-	private static IResource getCorrespondingResource(Object element) {
-		if (element instanceof IResource)
-			return (IResource) element;
-		if (element instanceof IAdaptable)
-			return (IResource) ((IAdaptable) element).getAdapter(IResource.class);
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/CopyAction.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/CopyAction.java
deleted file mode 100644
index 7c1239b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/CopyAction.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.SelectionListenerAction;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-
-/**
- * Standard action for copying the currently selected resources to the clipboard.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 2.0
- */
-/*package*/class CopyAction extends SelectionListenerAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID + ".CopyAction"; //$NON-NLS-1$
-
-    /**
-     * The shell in which to show any dialogs.
-     */
-    private Shell shell;
-
-    /**
-     * System clipboard
-     */
-    private Clipboard clipboard;
-
-    /**
-     * Associated paste action. May be <code>null</code>
-     */
-    private PasteAction pasteAction;
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     * @param clipboard a platform clipboard
-     */
-    public CopyAction(Shell shell, Clipboard clipboard) {
-        super(WorkbenchNavigatorMessages.CopyAction_Cop_); 
-        Assert.isNotNull(shell);
-        Assert.isNotNull(clipboard);
-        this.shell = shell;
-        this.clipboard = clipboard;
-        setToolTipText(WorkbenchNavigatorMessages.CopyAction_Copy_selected_resource_s_); 
-        setId(CopyAction.ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this, "CopyHelpId"); //$NON-NLS-1$
-				// TODO INavigatorHelpContextIds.COPY_ACTION);
-    }
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     * @param clipboard a platform clipboard
-     * @param pasteAction a paste action
-     * 
-     * @since 2.0
-     */
-    public CopyAction(Shell shell, Clipboard clipboard, PasteAction pasteAction) {
-        this(shell, clipboard);
-        this.pasteAction = pasteAction;
-    }
-
-    /**
-     * The <code>CopyAction</code> implementation of this method defined 
-     * on <code>IAction</code> copies the selected resources to the 
-     * clipboard.
-     */
-    public void run() {
-        List selectedResources = getSelectedResources();
-        IResource[] resources = (IResource[]) selectedResources
-                .toArray(new IResource[selectedResources.size()]);
-
-        // Get the file names and a string representation
-        final int length = resources.length;
-        int actualLength = 0;
-        String[] fileNames = new String[length];
-        StringBuffer buf = new StringBuffer();
-        for (int i = 0; i < length; i++) {
-            IPath location = resources[i].getLocation();
-            // location may be null. See bug 29491.
-            if (location != null) {
-				fileNames[actualLength++] = location.toOSString();
-			}
-            if (i > 0) {
-				buf.append("\n"); //$NON-NLS-1$
-			}
-            buf.append(resources[i].getName());
-        }
-        // was one or more of the locations null?
-        if (actualLength < length) {
-            String[] tempFileNames = fileNames;
-            fileNames = new String[actualLength];
-            for (int i = 0; i < actualLength; i++) {
-				fileNames[i] = tempFileNames[i];
-			}
-        }
-        setClipboard(resources, fileNames, buf.toString());
-
-        // update the enablement of the paste action
-        // workaround since the clipboard does not suppot callbacks
-        if (pasteAction != null && pasteAction.getStructuredSelection() != null) {
-			pasteAction.selectionChanged(pasteAction.getStructuredSelection());
-		}
-    }
-
-    /**
-     * Set the clipboard contents. Prompt to retry if clipboard is busy.
-     * 
-     * @param resources the resources to copy to the clipboard
-     * @param fileNames file names of the resources to copy to the clipboard
-     * @param names string representation of all names
-     */
-    private void setClipboard(IResource[] resources, String[] fileNames,
-            String names) {
-        try {
-            // set the clipboard contents
-            if (fileNames.length > 0) {
-                clipboard.setContents(new Object[] { resources, fileNames,
-                        names },
-                        new Transfer[] { ResourceTransfer.getInstance(),
-                                FileTransfer.getInstance(),
-                                TextTransfer.getInstance() });
-            } else {
-                clipboard.setContents(new Object[] { resources, names },
-                        new Transfer[] { ResourceTransfer.getInstance(),
-                                TextTransfer.getInstance() });
-            }
-        } catch (SWTError e) {
-            if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) {
-				throw e;
-			}
-            if (MessageDialog
-                    .openQuestion(
-                            shell,
-                            "Problem with copy title", // TODO ResourceNavigatorMessages.CopyToClipboardProblemDialog_title,  //$NON-NLS-1$
-                            "Problem with copy.")) { //$NON-NLS-1$
-				setClipboard(resources, fileNames, names);
-			}
-        }
-    }
-
-    /**
-     * The <code>CopyAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables this action if 
-     * one or more resources of compatible types are selected.
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        if (!super.updateSelection(selection)) {
-			return false;
-		}
-
-        if (getSelectedNonResources().size() > 0) {
-			return false;
-		}
-
-        List selectedResources = getSelectedResources();
-        if (selectedResources.size() == 0) {
-			return false;
-		}
-
-        boolean projSelected = selectionIsOfType(IResource.PROJECT);
-        boolean fileFoldersSelected = selectionIsOfType(IResource.FILE
-                | IResource.FOLDER);
-        if (!projSelected && !fileFoldersSelected) {
-			return false;
-		}
-
-        // selection must be homogeneous
-        if (projSelected && fileFoldersSelected) {
-			return false;
-		}
-
-        // must have a common parent	
-        IContainer firstParent = ((IResource) selectedResources.get(0))
-                .getParent();
-        if (firstParent == null) {
-			return false;
-		}
-
-        Iterator resourcesEnum = selectedResources.iterator();
-        while (resourcesEnum.hasNext()) {
-            IResource currentResource = (IResource) resourcesEnum.next();
-            if (!currentResource.getParent().equals(firstParent)) {
-				return false;
-			}
-            // resource location must exist
-            if (currentResource.getLocationURI() == null) {
-				return false;
-			}
-        }
-
-        return true;
-    }
-
-}
-
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionGroup.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionGroup.java
deleted file mode 100644
index e237446..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionGroup.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchCommandConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.actions.DeleteResourceAction;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-
-/**
- * @since 3.2
- * 
- */
-public class EditActionGroup extends ActionGroup {
-
-	private Clipboard clipboard;
-
-	private CopyAction copyAction;
-
-	private DeleteResourceAction deleteAction;
-
-	private PasteAction pasteAction;
-
-	private TextActionHandler textActionHandler;
-
-	private Shell shell;
-
-	/**
-	 * 
-	 * @param aShell
-	 */
-	public EditActionGroup(Shell aShell) {
-		shell = aShell;
-		makeActions();
-	}
-
-	public void dispose() {
-		if (clipboard != null) {
-			clipboard.dispose();
-			clipboard = null;
-		}
-		super.dispose();
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();
-
-		boolean anyResourceSelected = !selection.isEmpty()
-				&& ResourceSelectionUtil.allResourcesAreOfType(selection, IResource.PROJECT | IResource.FOLDER | IResource.FILE);
-
-		copyAction.selectionChanged(selection);
-		menu.appendToGroup(ICommonMenuConstants.GROUP_EDIT, copyAction);
-		pasteAction.selectionChanged(selection);
-		// menu.insertAfter(copyAction.getId(), pasteAction);
-		menu.appendToGroup(ICommonMenuConstants.GROUP_EDIT, pasteAction);
-
-		if (anyResourceSelected) {
-			deleteAction.selectionChanged(selection);
-			// menu.insertAfter(pasteAction.getId(), deleteAction);
-			menu.appendToGroup(ICommonMenuConstants.GROUP_EDIT, deleteAction);
-		}
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-
-		if (textActionHandler == null) {
-			textActionHandler = new TextActionHandler(actionBars); // hook
-																	// handlers
-		}
-		textActionHandler.setCopyAction(copyAction);
-		textActionHandler.setPasteAction(pasteAction);
-		textActionHandler.setDeleteAction(deleteAction);
-		// renameAction.setTextActionHandler(textActionHandler);
-		updateActionBars();
-
-		textActionHandler.updateActionBars();
-	}
-
-	/**
-	 * Handles a key pressed event by invoking the appropriate action.
-	 * 
-	 * @param event
-	 *            The Key Event
-	 */
-	public void handleKeyPressed(KeyEvent event) {
-		if (event.character == SWT.DEL && event.stateMask == 0) {
-			if (deleteAction.isEnabled()) {
-				deleteAction.run();
-			}
-
-			// Swallow the event.
-			event.doit = false;
-		}
-	}
-
-	protected void makeActions() {
-		clipboard = new Clipboard(shell.getDisplay());
-
-		pasteAction = new PasteAction(shell, clipboard);
-		ISharedImages images = PlatformUI.getWorkbench().getSharedImages();
-		pasteAction.setDisabledImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE_DISABLED));
-		pasteAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
-		pasteAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_PASTE);
-
-		copyAction = new CopyAction(shell, clipboard, pasteAction);
-		copyAction.setDisabledImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_COPY_DISABLED));
-		copyAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-		copyAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_COPY);
-
-		IShellProvider sp = new IShellProvider() {
-			public Shell getShell() {
-				return shell;
-			}
-		};
-
-		deleteAction = new DeleteResourceAction(sp);
-		deleteAction.setDisabledImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE_DISABLED));
-		deleteAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_DELETE));
-		deleteAction.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_DELETE);
-	}
-
-	public void updateActionBars() {
-		IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();
-
-		copyAction.selectionChanged(selection);
-		pasteAction.selectionChanged(selection);
-		deleteAction.selectionChanged(selection);
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionProvider.java
deleted file mode 100644
index 8d58dba..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/EditActionProvider.java
+++ /dev/null
@@ -1,60 +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.navigator.resources.actions;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-/**
- * @since 3.2
- *
- */
-public class EditActionProvider extends CommonActionProvider {
-	 
-	private EditActionGroup editGroup;
-
-	private ICommonActionExtensionSite site;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite anActionSite) {
-		site = anActionSite;
-		editGroup = new EditActionGroup(site.getViewSite().getShell());
- 
-	}
-
-	public void dispose() { 
-		editGroup.dispose();
-	}
-
-	public void fillActionBars(IActionBars actionBars) { 
-		editGroup.fillActionBars(actionBars);
-	}
-
-	public void fillContextMenu(IMenuManager menu) { 
-		editGroup.fillContextMenu(menu);
-	}
-
-	public void setContext(ActionContext context) { 
-		editGroup.setContext(context);
-	}
-
-	public void updateActionBars() { 
-		editGroup.updateActionBars();
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoActionProvider.java
deleted file mode 100755
index 28c80cc..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoActionProvider.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Oakland Software (Francis Upton - francisu@ieee.org) 
- *        bug 214271 Undo/redo not enabled if nothing selected
- ******************************************************************************/
-
-package org.eclipse.ui.internal.navigator.resources.actions;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-/**
- * @since 3.3
- * 
- */
-public class GotoActionProvider extends CommonActionProvider {
-
-	private GotoResourceAction gotoAction;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite anActionSite) {
-		gotoAction = new GotoResourceAction(anActionSite.getViewSite().getShell(), (CommonViewer)anActionSite.getStructuredViewer());
-	}
-
-
-	public void fillActionBars(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler(
-				IWorkbenchActionConstants.GO_TO_RESOURCE, gotoAction);
-		updateActionBars();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceAction.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceAction.java
deleted file mode 100755
index 87fb857..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.INavigatorHelpContextIds;
-
-/**
- * Implements the go to resource action. Opens a dialog and set the navigator
- * selection with the resource selected by the user.
- */
-public class GotoResourceAction extends Action {
-
-	protected Shell shell;
-
-	protected TreeViewer viewer;
-
-	/**
-	 * @param shell
-	 * @param viewer
-	 */
-	public GotoResourceAction(Shell shell, TreeViewer viewer) {
-		this.shell = shell;
-		this.viewer = viewer;
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				INavigatorHelpContextIds.GOTO_RESOURCE_ACTION);
-	}
-
-	/**
-	 * Collect all resources in the workbench open a dialog asking the user to
-	 * select a resource and change the selection in the navigator.
-	 */
-	public void run() {
-		GotoResourceDialog dialog = new GotoResourceDialog(shell,
-				ResourcesPlugin.getWorkspace().getRoot(), IResource.FILE
-						| IResource.FOLDER | IResource.PROJECT);
-		dialog.open();
-		Object[] result = dialog.getResult();
-		if (result == null || result.length == 0
-				|| result[0] instanceof IResource == false) {
-			return;
-		}
-
-		IResource selection = (IResource) result[0];
-		viewer.setSelection(new StructuredSelection(selection), true);
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceDialog.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceDialog.java
deleted file mode 100755
index bfd2c89..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/GotoResourceDialog.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog;
-import org.eclipse.ui.internal.navigator.INavigatorHelpContextIds;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-
-/**
- * Shows a list of resources to the user with a text entry field for a string
- * pattern used to filter the list of resources.
- * 
- */
-/* package */class GotoResourceDialog extends FilteredResourcesSelectionDialog {
-
-	/**
-	 * Creates a new instance of the class.
-	 */
-	protected GotoResourceDialog(Shell parentShell, IContainer container,
-			int typesMask) {
-		super(parentShell, false, container, typesMask);
-		setTitle(WorkbenchNavigatorMessages.GotoResourceDialog_GoToTitle);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parentShell,
-				INavigatorHelpContextIds.GOTO_RESOURCE_DIALOG);
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/NewActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/NewActionProvider.java
deleted file mode 100644
index aa40f4a..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/NewActionProvider.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.NewExampleAction;
-import org.eclipse.ui.actions.NewProjectAction;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-import org.eclipse.ui.navigator.WizardActionGroup;
-import org.eclipse.ui.wizards.IWizardCategory;
-import org.eclipse.ui.wizards.IWizardRegistry;
-
-/**
- * Provides the new (artifact creation) menu options for a context menu.
- * 
- * <p>
- * The added submenu has the following structure
- * </p>
- * 
- * <ul>
- * <li>a new generic project wizard shortcut action, </li>
- * <li>a separator, </li>
- * <li>a set of context senstive wizard shortcuts (as defined by
- * <b>org.eclipse.ui.navigator.commonWizard</b>), </li>
- * <li>another separator, </li>
- * <li>a generic examples wizard shortcut action, and finally </li>
- * <li>a generic "Other" new wizard shortcut action</li>
- * </ul>
- * 
- * @since 3.2
- * 
- */
-public class NewActionProvider extends CommonActionProvider {
-
-	private static final String FULL_EXAMPLES_WIZARD_CATEGORY = "org.eclipse.ui.Examples"; //$NON-NLS-1$
-
-	private static final String NEW_MENU_NAME = "common.new.menu";//$NON-NLS-1$
-
-	private ActionFactory.IWorkbenchAction showDlgAction;
-
-	private IAction newProjectAction;
-
-	private IAction newExampleAction;
-
-	private WizardActionGroup newWizardActionGroup;
-
-	private boolean contribute = false;
-
-	public void init(ICommonActionExtensionSite anExtensionSite) {
-
-		if (anExtensionSite.getViewSite() instanceof ICommonViewerWorkbenchSite) {
-			IWorkbenchWindow window = ((ICommonViewerWorkbenchSite) anExtensionSite.getViewSite()).getWorkbenchWindow();
-			showDlgAction = ActionFactory.NEW.create(window);
-			newProjectAction = new NewProjectAction(window);
-			newExampleAction = new NewExampleAction(window);
-
-			newWizardActionGroup = new WizardActionGroup(window, PlatformUI.getWorkbench().getNewWizardRegistry(), WizardActionGroup.TYPE_NEW, anExtensionSite.getContentService());
-
-			contribute = true;
-		}
-	}
-
-	/**
-	 * Adds a submenu to the given menu with the name "group.new" see
-	 * {@link ICommonMenuConstants#GROUP_NEW}). The submenu contains the following structure:
-	 * 
-	 * <ul>
-	 * <li>a new generic project wizard shortcut action, </li>
-	 * <li>a separator, </li>
-	 * <li>a set of context senstive wizard shortcuts (as defined by
-	 * <b>org.eclipse.ui.navigator.commonWizard</b>), </li>
-	 * <li>another separator, </li>
-	 * <li>a generic examples wizard shortcut action, and finally </li>
-	 * <li>a generic "Other" new wizard shortcut action</li>
-	 * </ul>
-	 */
-	public void fillContextMenu(IMenuManager menu) {
-		IMenuManager submenu = new MenuManager(
-				WorkbenchNavigatorMessages.NewActionProvider_NewMenu_label,
-				NEW_MENU_NAME);
-		if(!contribute) {
-			return;
-		}
-		// Add new project wizard shortcut
-		submenu.add(newProjectAction);
-		submenu.add(new Separator());
-
-		// fill the menu from the commonWizard contributions
-		newWizardActionGroup.setContext(getContext());
-		newWizardActionGroup.fillContextMenu(submenu);
-
-		submenu.add(new Separator(ICommonMenuConstants.GROUP_ADDITIONS));
-
-		// if there are examples, then add them to the end of the menu
-		if (hasExamples()) {
-			submenu.add(new Separator());
-			submenu.add(newExampleAction);
-		}
-
-		// Add other ..
-		submenu.add(new Separator());
-		submenu.add(showDlgAction);
-
-		// append the submenu after the GROUP_NEW group.
-		menu.insertAfter(ICommonMenuConstants.GROUP_NEW, submenu);
-	}
-
-	/**
-	 * Return whether or not any examples are in the current install.
-	 * 
-	 * @return True if there exists a full examples wizard category.
-	 */
-	private boolean hasExamples() {
-		IWizardRegistry newRegistry = PlatformUI.getWorkbench().getNewWizardRegistry();
-		IWizardCategory category = newRegistry.findCategory(FULL_EXAMPLES_WIZARD_CATEGORY);
-		return category != null;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionGroup#dispose()
-	 */
-	public void dispose() {
-		if (showDlgAction!=null) {
-			showDlgAction.dispose();
-			showDlgAction = null;
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/OpenActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/OpenActionProvider.java
deleted file mode 100644
index 3561746..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/OpenActionProvider.java
+++ /dev/null
@@ -1,122 +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.navigator.resources.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.OpenFileAction;
-import org.eclipse.ui.actions.OpenWithMenu;
-import org.eclipse.ui.internal.navigator.AdaptabilityUtility;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionConstants;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-
-/**
- * Provides the open and open with menus for IResources.
- * 
- * @since 3.2
- * 
- */
-public class OpenActionProvider extends CommonActionProvider {
-
-	private OpenFileAction openFileAction;
-
-	private ICommonViewerWorkbenchSite viewSite = null;
-
-	private boolean contribute = false;
-
-	public void init(ICommonActionExtensionSite aConfig) {
-		if (aConfig.getViewSite() instanceof ICommonViewerWorkbenchSite) {
-			viewSite = (ICommonViewerWorkbenchSite) aConfig.getViewSite();
-			openFileAction = new OpenFileAction(viewSite.getPage());
-			contribute = true;
-		}
-	}
-
-	public void fillContextMenu(IMenuManager aMenu) {
-		if (!contribute || getContext().getSelection().isEmpty()) {
-			return;
-		}
-
-		IStructuredSelection selection = (IStructuredSelection) getContext()
-				.getSelection();
-
-		openFileAction.selectionChanged(selection);
-		if (openFileAction.isEnabled()) {
-			aMenu.insertAfter(ICommonMenuConstants.GROUP_OPEN, openFileAction);
-		}
-		addOpenWithMenu(aMenu);
-	}
-
-	public void fillActionBars(IActionBars theActionBars) {
-		if (!contribute) {
-			return;
-		}
-		IStructuredSelection selection = (IStructuredSelection) getContext()
-				.getSelection();
-		if (selection.size() == 1
-				&& selection.getFirstElement() instanceof IFile) {
-			openFileAction.selectionChanged(selection);
-			theActionBars.setGlobalActionHandler(ICommonActionConstants.OPEN,
-					openFileAction);
-		}
-
-	}
-
-	private void addOpenWithMenu(IMenuManager aMenu) {
-		IStructuredSelection ss = (IStructuredSelection) getContext()
-				.getSelection();
-
-		if (ss == null || ss.size() != 1) {
-			return;
-		}
-
-		Object o = ss.getFirstElement();
-
-		// first try IResource
-		IAdaptable openable = (IAdaptable) AdaptabilityUtility.getAdapter(o,
-				IResource.class);
-		// otherwise try ResourceMapping
-		if (openable == null) {
-			openable = (IAdaptable) AdaptabilityUtility.getAdapter(o,
-					ResourceMapping.class);
-		} else if (((IResource) openable).getType() != IResource.FILE) {
-			openable = null;
-		}
-
-		if (openable != null) {
-			// Create a menu flyout.
-			IMenuManager submenu = new MenuManager(
-					WorkbenchNavigatorMessages.OpenActionProvider_OpenWithMenu_label,
-					ICommonMenuConstants.GROUP_OPEN_WITH);
-			submenu.add(new GroupMarker(ICommonMenuConstants.GROUP_TOP));
-			submenu.add(new OpenWithMenu(viewSite.getPage(), openable)); 
-			submenu.add(new GroupMarker(ICommonMenuConstants.GROUP_ADDITIONS));
-
-			// Add the submenu.
-			if (submenu.getItems().length > 2 && submenu.isEnabled()) {
-				aMenu.appendToGroup(ICommonMenuConstants.GROUP_OPEN_WITH,
-						submenu);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java
deleted file mode 100644
index 4c0e958..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PasteAction.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CopyFilesAndFoldersOperation;
-import org.eclipse.ui.actions.CopyProjectOperation;
-import org.eclipse.ui.actions.SelectionListenerAction;
-import org.eclipse.ui.part.ResourceTransfer;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-
-/**
- * Standard action for pasting resources on the clipboard to the selected resource's location.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @since 2.0
- */
-/*package*/class PasteAction extends SelectionListenerAction {
-
-    /**
-     * The id of this action.
-     */
-    public static final String ID = PlatformUI.PLUGIN_ID + ".PasteAction";//$NON-NLS-1$
-
-    /**
-     * The shell in which to show any dialogs.
-     */
-    private Shell shell;
-
-    /**
-     * System clipboard
-     */
-    private Clipboard clipboard;
-
-    /**
-     * Creates a new action.
-     *
-     * @param shell the shell for any dialogs
-     * @param clipboard the clipboard
-     */
-    public PasteAction(Shell shell, Clipboard clipboard) {
-        super(WorkbenchNavigatorMessages.PasteAction_Past_); 
-        Assert.isNotNull(shell);
-        Assert.isNotNull(clipboard);
-        this.shell = shell;
-        this.clipboard = clipboard;
-        setToolTipText(WorkbenchNavigatorMessages.PasteAction_Paste_selected_resource_s_); 
-        setId(PasteAction.ID);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this, "HelpId"); //$NON-NLS-1$
-				// TODO INavigatorHelpContextIds.PASTE_ACTION);
-    }
-
-    /**
-     * Returns the actual target of the paste action. Returns null
-     * if no valid target is selected.
-     * 
-     * @return the actual target of the paste action
-     */
-    private IResource getTarget() {
-        List selectedResources = getSelectedResources();
-
-        for (int i = 0; i < selectedResources.size(); i++) {
-            IResource resource = (IResource) selectedResources.get(i);
-
-            if (resource instanceof IProject && !((IProject) resource).isOpen()) {
-				return null;
-			}
-            if (resource.getType() == IResource.FILE) {
-				resource = resource.getParent();
-			}
-            if (resource != null) {
-				return resource;
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Returns whether any of the given resources are linked resources.
-     * 
-     * @param resources resource to check for linked type. may be null
-     * @return true=one or more resources are linked. false=none of the 
-     * 	resources are linked
-     */
-    private boolean isLinked(IResource[] resources) {
-        for (int i = 0; i < resources.length; i++) {
-            if (resources[i].isLinked()) {
-				return true;
-			}
-        }
-        return false;
-    }
-
-    /**
-     * Implementation of method defined on <code>IAction</code>.
-     */
-    public void run() {
-        // try a resource transfer
-        ResourceTransfer resTransfer = ResourceTransfer.getInstance();
-        IResource[] resourceData = (IResource[]) clipboard
-                .getContents(resTransfer);
-
-        if (resourceData != null && resourceData.length > 0) {
-            if (resourceData[0].getType() == IResource.PROJECT) {
-                // enablement checks for all projects
-                for (int i = 0; i < resourceData.length; i++) {
-                    CopyProjectOperation operation = new CopyProjectOperation(
-                            this.shell);
-                    operation.copyProject((IProject) resourceData[i]);
-                }
-            } else {
-                // enablement should ensure that we always have access to a container
-                IContainer container = getContainer();
-
-                CopyFilesAndFoldersOperation operation = new CopyFilesAndFoldersOperation(
-                        this.shell);
-                operation.copyResources(resourceData, container);
-            }
-            return;
-        }
-
-        // try a file transfer
-        FileTransfer fileTransfer = FileTransfer.getInstance();
-        String[] fileData = (String[]) clipboard.getContents(fileTransfer);
-
-        if (fileData != null) {
-            // enablement should ensure that we always have access to a container
-            IContainer container = getContainer();
-
-            CopyFilesAndFoldersOperation operation = new CopyFilesAndFoldersOperation(
-                    this.shell);
-            operation.copyFiles(fileData, container);
-        }
-    }
-
-    /**
-     * Returns the container to hold the pasted resources.
-     */
-    private IContainer getContainer() {
-        List selection = getSelectedResources();
-        if (selection.get(0) instanceof IFile) {
-			return ((IFile) selection.get(0)).getParent();
-		}
-        return (IContainer) selection.get(0);
-    }
-
-    /**
-     * The <code>PasteAction</code> implementation of this
-     * <code>SelectionListenerAction</code> method enables this action if 
-     * a resource compatible with what is on the clipboard is selected.
-     * 
-     * -Clipboard must have IResource or java.io.File
-     * -Projects can always be pasted if they are open
-     * -Workspace folder may not be copied into itself
-     * -Files and folders may be pasted to a single selected folder in open 
-     * 	project or multiple selected files in the same folder 
-     */
-    protected boolean updateSelection(IStructuredSelection selection) {
-        if (!super.updateSelection(selection)) {
-			return false;
-		}
-
-        final IResource[][] clipboardData = new IResource[1][];
-        shell.getDisplay().syncExec(new Runnable() {
-            public void run() {
-                // clipboard must have resources or files
-                ResourceTransfer resTransfer = ResourceTransfer.getInstance();
-                clipboardData[0] = (IResource[]) clipboard
-                        .getContents(resTransfer);
-            }
-        });
-        IResource[] resourceData = clipboardData[0];
-        boolean isProjectRes = resourceData != null && resourceData.length > 0
-                && resourceData[0].getType() == IResource.PROJECT;
-
-        if (isProjectRes) {
-            for (int i = 0; i < resourceData.length; i++) {
-                // make sure all resource data are open projects
-                // can paste open projects regardless of selection
-                if (resourceData[i].getType() != IResource.PROJECT
-                        || ((IProject) resourceData[i]).isOpen() == false) {
-					return false;
-				}
-            }
-            return true;
-        }
-
-        if (getSelectedNonResources().size() > 0) {
-			return false;
-		}
-
-        IResource targetResource = getTarget();
-        // targetResource is null if no valid target is selected (e.g., open project) 
-        // or selection is empty	
-        if (targetResource == null) {
-			return false;
-		}
-
-        // can paste files and folders to a single selection (file, folder, 
-        // open project) or multiple file selection with the same parent
-        List selectedResources = getSelectedResources();
-        if (selectedResources.size() > 1) {
-            for (int i = 0; i < selectedResources.size(); i++) {
-                IResource resource = (IResource) selectedResources.get(i);
-                if (resource.getType() != IResource.FILE) {
-					return false;
-				}
-                if (!targetResource.equals(resource.getParent())) {
-					return false;
-				}
-            }
-        }
-        if (resourceData != null) {
-            // linked resources can only be pasted into projects
-            if (isLinked(resourceData)
-                && targetResource.getType() != IResource.PROJECT
-                && targetResource.getType() != IResource.FOLDER) {
-				return false;
-			}
-
-            if (targetResource.getType() == IResource.FOLDER) {
-                // don't try to copy folder to self
-                for (int i = 0; i < resourceData.length; i++) {
-                    if (targetResource.equals(resourceData[i])) {
-						return false;
-					}
-                }
-            }
-            return true;
-        }
-        TransferData[] transfers = clipboard.getAvailableTypes();
-        FileTransfer fileTransfer = FileTransfer.getInstance();
-        for (int i = 0; i < transfers.length; i++) {
-            if (fileTransfer.isSupportedType(transfers[i])) {
-				return true;
-			}
-        }
-        return false;
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java
deleted file mode 100644
index b6bd89b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PortingActionProvider.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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> - Collapse all action
- *      Sebastian Davids <sdavids@gmx.de> - Images for menu items
- *******************************************************************************/
-package org.eclipse.ui.internal.navigator.resources.actions;
-
-import java.net.URL;
-import java.util.Collections;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ExportResourcesAction;
-import org.eclipse.ui.actions.ImportResourcesAction;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-import org.eclipse.ui.navigator.WizardActionGroup;
-
-/**
- * Adds actions for Import/Export wizards. The group is smart, in that it will
- * either add actions for Import and Export, or if there are context sensitive
- * options available (as defined by <b>org.eclipse.ui.navigator.commonWizard</b>),
- * then it will compound these options into a submenu with the appropriate lead
- * text ("Import" or "Export").
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
- */
-public class PortingActionProvider extends CommonActionProvider {
-
-	private static final String COMMON_NAVIGATOR_IMPORT_MENU = "common.import.menu"; //$NON-NLS-1$
-
-	private static final String COMMON_NAVIGATOR_EXPORT_MENU = "common.export.menu"; //$NON-NLS-1$	
-
-	private ImportResourcesAction importAction;
-
-	private ExportResourcesAction exportAction;
-
-	private WizardActionGroup importWizardActionGroup;
-
-	private WizardActionGroup exportWizardActionGroup;
-
-	private boolean disposed = false;
-
-	private boolean contribute= false;
-
-	public void init(ICommonActionExtensionSite anExtensionSite) {
-
-		Assert.isTrue(!disposed);
-
-		if (anExtensionSite.getViewSite() instanceof ICommonViewerWorkbenchSite) {
-
-			IWorkbenchWindow window = ((ICommonViewerWorkbenchSite) anExtensionSite
-					.getViewSite()).getWorkbenchWindow();
-			importAction = new ImportResourcesAction(window);
-			exportAction = new ExportResourcesAction(window);
-			importWizardActionGroup = new WizardActionGroup(window, PlatformUI
-					.getWorkbench().getImportWizardRegistry(),
-					WizardActionGroup.TYPE_IMPORT, anExtensionSite.getContentService());
-			exportWizardActionGroup = new WizardActionGroup(window, PlatformUI
-					.getWorkbench().getExportWizardRegistry(),
-					WizardActionGroup.TYPE_EXPORT, anExtensionSite.getContentService());
-			contribute = true;
-		}
-	}
-
-	/**
-	 * Extends the superclass implementation to dispose the subgroups.
-	 */
-	public void dispose() {
-		if(!contribute) {
-			return;
-		}
-		importWizardActionGroup.dispose();
-		exportWizardActionGroup.dispose();
-		importAction = null;
-		exportAction = null;
-		disposed = true;
-	}
-
-	public void fillContextMenu(IMenuManager aMenu) {
-		if(!contribute) {
-			return;
-		}
-
-		Assert.isTrue(!disposed);
-
-		ISelection selection = getContext().getSelection();
-		if (!(selection instanceof IStructuredSelection) || ((IStructuredSelection) selection).size() > 1) {
-			addSimplePortingMenus(aMenu);
-		} else {
-			addImportMenu(aMenu);
-			addExportMenu(aMenu);
-		}
-	}
-
-	/**
-	 * Returns the image descriptor with the given relative path.
-	 */
-	protected ImageDescriptor getImageDescriptor(String relativePath) {
-		String iconPath = "icons/full/"; //$NON-NLS-1$ 
-		URL url = FileLocator.find(WorkbenchNavigatorPlugin.getDefault().getBundle(), new Path(iconPath + relativePath), Collections.EMPTY_MAP);
-		if (url == null) {
-			return ImageDescriptor.getMissingImageDescriptor();
-		}
-		return ImageDescriptor.createFromURL(url);
-	}
-
-	private void addSimplePortingMenus(IMenuManager aMenu) {
-		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, importAction);
-		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, exportAction);
-	}
-
-	private void addImportMenu(IMenuManager aMenu) {
-
-		importWizardActionGroup.setContext(getContext());
-		if (importWizardActionGroup.getWizardActionIds().length == 0) {
-			aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, importAction);
-			return;
-		}
-
-		IMenuManager submenu = new MenuManager(
-				WorkbenchNavigatorMessages.PortingActionProvider_ImportResourcesMenu_label,
-				COMMON_NAVIGATOR_IMPORT_MENU);
-		importWizardActionGroup.fillContextMenu(submenu);
-
-		submenu.add(new Separator(ICommonMenuConstants.GROUP_ADDITIONS));
-		submenu.add(new Separator());
-		submenu.add(importAction);
-		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, submenu);
-	}
-
-	private void addExportMenu(IMenuManager aMenu) {
-
-		exportWizardActionGroup.setContext(getContext());
-		if (exportWizardActionGroup.getWizardActionIds().length == 0) {
-			aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, exportAction);
-			return;
-		}
-		IMenuManager submenu = new MenuManager(
-				WorkbenchNavigatorMessages.PortingActionProvider_ExportResourcesMenu_label,
-				COMMON_NAVIGATOR_EXPORT_MENU);
-		exportWizardActionGroup.fillContextMenu(submenu);
-
-		submenu.add(new Separator(ICommonMenuConstants.GROUP_ADDITIONS));
-		submenu.add(new Separator());
-		submenu.add(exportAction);
-		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, submenu);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PropertiesActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PropertiesActionProvider.java
deleted file mode 100644
index c0295d6..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/PropertiesActionProvider.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchCommandConstants;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.dialogs.PropertyDialogAction;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-
-/**
- * Adds the properties action to the menu.
- * 
- * @since 3.2
- * 
- */
-public class PropertiesActionProvider extends CommonActionProvider {
-
-	private PropertyDialogAction propertiesAction;
-	private ISelectionProvider delegateSelectionProvider;
-
-	public void init(final ICommonActionExtensionSite aSite) {
-		
-		delegateSelectionProvider = new DelegateSelectionProvider( aSite.getViewSite().getSelectionProvider());
-		propertiesAction = new PropertyDialogAction(new IShellProvider() {
-			public Shell getShell() {
-				return aSite.getViewSite().getShell();
-			}
-		},delegateSelectionProvider);
-		propertiesAction.setActionDefinitionId(IWorkbenchCommandConstants.FILE_PROPERTIES); 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void fillContextMenu(IMenuManager menu) {
-		super.fillContextMenu(menu);
-
-		if (propertiesAction.isApplicableForSelection()) {
-			menu.appendToGroup(ICommonMenuConstants.GROUP_PROPERTIES,
-					propertiesAction);
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars
-	 * )
-	 */
-	public void fillActionBars(IActionBars actionBars) {
-		super.fillActionBars(actionBars);
-
-		actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(),
-				propertiesAction);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#setContext(org.eclipse.ui.actions.ActionContext)
-	 */
-	public void setContext(ActionContext context) {
-		super.setContext(context);
-
-		propertiesAction.selectionChanged(delegateSelectionProvider
-				.getSelection());
-
-	}
-
-	private class DelegateIAdaptable implements IAdaptable {
-
-		private Object delegate;
-
-		private DelegateIAdaptable(Object o) {
-			delegate = o;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			if (adapter.isInstance(delegate) || delegate == null) {
-				return delegate;
-			}
-			return Platform.getAdapterManager().getAdapter(delegate, adapter);
-		}
-	}
-
-	private class DelegateSelectionProvider implements ISelectionProvider {
-
-		private ISelectionProvider delegate;
-
-		private DelegateSelectionProvider(ISelectionProvider s) {
-			delegate = s;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-		 */
-		public void addSelectionChangedListener(
-				ISelectionChangedListener listener) {
-			delegate.addSelectionChangedListener(listener);
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-		 */
-		public ISelection getSelection() {
-			if (delegate.getSelection() instanceof IStructuredSelection) {
-				IStructuredSelection sSel = (IStructuredSelection) delegate
-						.getSelection();
-				if (sSel.getFirstElement() instanceof IAdaptable) {
-					return sSel;
-				}
-
-				return new StructuredSelection(new DelegateIAdaptable(sSel
-						.getFirstElement()));
-			}
-			return delegate.getSelection();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-		 */
-		public void removeSelectionChangedListener(
-				ISelectionChangedListener listener) {
-			delegate.removeSelectionChangedListener(listener);
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-		 */
-		public void setSelection(ISelection selection) {
-			delegate.setSelection(selection);
-
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionGroup.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionGroup.java
deleted file mode 100644
index f25a5c1..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionGroup.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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> - Images for menu items (27481)
- *******************************************************************************/
-package org.eclipse.ui.internal.navigator.resources.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchCommandConstants;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.actions.MoveResourceAction;
-import org.eclipse.ui.actions.RenameResourceAction;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-
-/**
- * This is the action group for refactor actions, including global action
- * handlers for copy, paste and delete.
- * 
- * @since 2.0
- */
-public class RefactorActionGroup extends ActionGroup {
-
-	private RenameResourceAction renameAction;
-
-	private MoveResourceAction moveAction;
-
-	private Shell shell;
-
-	private Tree tree;
-
-	/**
-	 * 
-	 * @param aShell
-	 * @param aTree
-	 */
-	public RefactorActionGroup(Shell aShell, Tree aTree) {
-		shell = aShell;
-		tree = aTree;
-		makeActions();
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();
-
-		boolean anyResourceSelected = !selection.isEmpty()
-				&& ResourceSelectionUtil.allResourcesAreOfType(selection, IResource.PROJECT | IResource.FOLDER | IResource.FILE);
-
-		if (anyResourceSelected) {
-			moveAction.selectionChanged(selection);
-			menu.appendToGroup(ICommonMenuConstants.GROUP_REORGANIZE, moveAction);
-			renameAction.selectionChanged(selection);
-			menu.insertAfter(moveAction.getId(), renameAction);
-		}
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-
-		// renameAction.setTextActionHandler(textActionHandler);
-		updateActionBars();
-
-		actionBars.setGlobalActionHandler(ActionFactory.MOVE.getId(), moveAction);
-		actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
-	}
-
-	/**
-	 * Handles a key pressed event by invoking the appropriate action.
-	 * 
-	 * @param event
-	 *            The Key Event
-	 */
-	public void handleKeyPressed(KeyEvent event) {
-
-		if (event.keyCode == SWT.F2 && event.stateMask == 0) {
-			if (renameAction.isEnabled()) {
-				renameAction.run();
-			}
-
-			// Swallow the event.
-			event.doit = false;
-		}
-	}
-
-	protected void makeActions() {
-		IShellProvider sp = new IShellProvider() {
-			public Shell getShell() {
-				return shell;
-			}
-		};
-
-		moveAction = new MoveResourceAction(sp);
-		moveAction.setActionDefinitionId(IWorkbenchCommandConstants.FILE_MOVE);
-
-		renameAction = new RenameResourceAction(sp, tree);
-		renameAction.setActionDefinitionId(IWorkbenchCommandConstants.FILE_RENAME);
-	}
-
-	public void updateActionBars() {
-		IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();
-
-		moveAction.selectionChanged(selection);
-		renameAction.selectionChanged(selection);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionProvider.java
deleted file mode 100644
index 2662ffe..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/RefactorActionProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Oakland Software (Francis Upton - francisu@ieee.org) 
- *        bug 214271 Undo/redo not enabled if nothing selected
- ******************************************************************************/
-
-package org.eclipse.ui.internal.navigator.resources.actions;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-/**
- * @since 3.2
- * 
- */
-public class RefactorActionProvider extends CommonActionProvider {
-
-	private RefactorActionGroup refactorGroup;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite anActionSite) {
-		refactorGroup = new RefactorActionGroup(anActionSite.getViewSite().getShell(), (Tree)anActionSite.getStructuredViewer().getControl());
-	}
-
-	public void dispose() {
-		refactorGroup.dispose();
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-		refactorGroup.fillActionBars(actionBars);
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		refactorGroup.fillContextMenu(menu);
-	}
-
-	public void setContext(ActionContext context) {
-		refactorGroup.setContext(context);
-	}
-
-	public void updateActionBars() {
-		refactorGroup.updateActionBars();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java
deleted file mode 100644
index 2b22914..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceMgmtActionProvider.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Iterator;
-
-import org.eclipse.osgi.util.NLS;
-
-import org.eclipse.swt.widgets.Shell;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.window.IShellProvider;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchCommandConstants;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.BuildAction;
-import org.eclipse.ui.actions.CloseResourceAction;
-import org.eclipse.ui.actions.CloseUnrelatedProjectsAction;
-import org.eclipse.ui.actions.OpenResourceAction;
-import org.eclipse.ui.actions.RefreshAction;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-
-/**
- * @since 3.2
- * 
- */
-public class ResourceMgmtActionProvider extends CommonActionProvider {
-
-	private BuildAction buildAction;
-
-	private OpenResourceAction openProjectAction;
-
-	private CloseResourceAction closeProjectAction;
-
-	private CloseUnrelatedProjectsAction closeUnrelatedProjectsAction;
-
-	private RefreshAction refreshAction;
-
-	private Shell shell;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator
-	 * .ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite aSite) {
-		super.init(aSite);
-		shell = aSite.getViewSite().getShell();
-		makeActions();
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler(ActionFactory.REFRESH.getId(), refreshAction);
-		actionBars.setGlobalActionHandler(IDEActionFactory.BUILD_PROJECT.getId(), buildAction);
-		actionBars.setGlobalActionHandler(IDEActionFactory.OPEN_PROJECT.getId(), openProjectAction);
-		actionBars.setGlobalActionHandler(IDEActionFactory.CLOSE_PROJECT.getId(), closeProjectAction);
-		actionBars.setGlobalActionHandler(IDEActionFactory.CLOSE_UNRELATED_PROJECTS.getId(), closeUnrelatedProjectsAction);
-		updateActionBars();
-	}
-
-	/**
-	 * Adds the build, open project, close project and refresh resource actions
-	 * to the context menu.
-	 * <p>
-	 * The following conditions apply: build-only projects selected, auto build
-	 * disabled, at least one builder present open project-only projects
-	 * selected, at least one closed project close project-only projects
-	 * selected, at least one open project refresh-no closed project selected
-	 * </p>
-	 * <p>
-	 * Both the open project and close project action may be on the menu at the
-	 * same time.
-	 * </p>
-	 * <p>
-	 * No disabled action should be on the context menu.
-	 * </p>
-	 * 
-	 * @param menu
-	 *            context menu to add actions to
-	 */
-	public void fillContextMenu(IMenuManager menu) {
-		IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();
-		boolean isProjectSelection = true;
-		boolean hasOpenProjects = false;
-		boolean hasClosedProjects = false;
-		boolean hasBuilder = true; // false if any project is closed or does not
-									// have builder
-		Iterator resources = selection.iterator();
-
-		while (resources.hasNext() && (!hasOpenProjects || !hasClosedProjects || hasBuilder || isProjectSelection)) {
-			Object next = resources.next();
-			IProject project = null;
-
-			if (next instanceof IProject) {
-				project = (IProject) next;
-			} else if (next instanceof IAdaptable) {
-				project = (IProject) ((IAdaptable) next).getAdapter(IProject.class);
-			}
-
-			if (project == null) {
-				isProjectSelection = false;
-				continue;
-			}
-			if (project.isOpen()) {
-				hasOpenProjects = true;
-				if (hasBuilder && !hasBuilder(project)) {
-					hasBuilder = false;
-				}
-			} else {
-				hasClosedProjects = true;
-				hasBuilder = false;
-			}
-		}
-		if (!selection.isEmpty() && isProjectSelection && !ResourcesPlugin.getWorkspace().isAutoBuilding() && hasBuilder) {
-			// Allow manual incremental build only if auto build is off.
-			buildAction.selectionChanged(selection);
-			menu.appendToGroup(ICommonMenuConstants.GROUP_BUILD, buildAction);
-		}
-		if (!hasClosedProjects) {
-			refreshAction.selectionChanged(selection);
-			menu.appendToGroup(ICommonMenuConstants.GROUP_BUILD, refreshAction);
-		}
-		if (isProjectSelection) {
-			if (hasClosedProjects) {
-				openProjectAction.selectionChanged(selection);
-				menu.appendToGroup(ICommonMenuConstants.GROUP_BUILD, openProjectAction);
-			}
-			if (hasOpenProjects) {
-				closeProjectAction.selectionChanged(selection);
-				menu.appendToGroup(ICommonMenuConstants.GROUP_BUILD, closeProjectAction);
-				closeUnrelatedProjectsAction.selectionChanged(selection);
-				menu.appendToGroup(ICommonMenuConstants.GROUP_BUILD, closeUnrelatedProjectsAction);
-			}
-		}
-	}
-
-	/**
-	 * Returns whether there are builders configured on the given project.
-	 * 
-	 * @return <code>true</code> if it has builders, <code>false</code> if not,
-	 *         or if this could not be determined
-	 */
-	boolean hasBuilder(IProject project) {
-		try {
-			ICommand[] commands = project.getDescription().getBuildSpec();
-			if (commands.length > 0) {
-				return true;
-			}
-		} catch (CoreException e) {
-			// Cannot determine if project has builders. Project is closed
-			// or does not exist. Fall through to return false.
-		}
-		return false;
-	}
-
-	protected void makeActions() {
-		IShellProvider sp = new IShellProvider() {
-			public Shell getShell() {
-				return shell;
-			}
-		};
-
-		openProjectAction = new OpenResourceAction(sp);
-
-		closeProjectAction = new CloseResourceAction(sp);
-
-		closeUnrelatedProjectsAction = new CloseUnrelatedProjectsAction(sp);
-
-		refreshAction = new RefreshAction(sp) {
-			public void run() {
-				final IStatus[] errorStatus = new IStatus[1];
-				errorStatus[0] = Status.OK_STATUS;
-				final WorkspaceModifyOperation op = (WorkspaceModifyOperation) createOperation(errorStatus);
-				WorkspaceJob job = new WorkspaceJob("refresh") { //$NON-NLS-1$
-
-					public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
-						try {
-							op.run(monitor);
-							if (shell != null && !shell.isDisposed()) {
-								shell.getDisplay().asyncExec(new Runnable() {
-									public void run() {
-										StructuredViewer viewer = getActionSite().getStructuredViewer();
-										if (viewer != null && viewer.getControl() != null && !viewer.getControl().isDisposed()) {
-											viewer.refresh();
-										}
-									}
-								});
-							}
-						} catch (InvocationTargetException e) {
-							String msg = NLS.bind(WorkbenchNavigatorMessages.ResourceMgmtActionProvider_logTitle, getClass().getName(), e.getTargetException());
-							throw new CoreException(new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, IStatus.ERROR, msg, e.getTargetException()));
-						} catch (InterruptedException e) {
-							return Status.CANCEL_STATUS;
-						}
-						return errorStatus[0];
-					}
-
-				};
-				ISchedulingRule rule = op.getRule();
-				if (rule != null) {
-					job.setRule(rule);
-				}
-				job.setUser(true);
-				job.schedule();
-			}
-		};
-		refreshAction.setDisabledImageDescriptor(getImageDescriptor("dlcl16/refresh_nav.gif"));//$NON-NLS-1$
-		refreshAction.setImageDescriptor(getImageDescriptor("elcl16/refresh_nav.gif"));//$NON-NLS-1$
-		refreshAction.setActionDefinitionId(IWorkbenchCommandConstants.FILE_REFRESH);
-
-		buildAction = new BuildAction(sp, IncrementalProjectBuilder.INCREMENTAL_BUILD);
-		buildAction.setActionDefinitionId(IWorkbenchCommandConstants.PROJECT_BUILD_PROJECT);
-	}
-
-	/**
-	 * Returns the image descriptor with the given relative path.
-	 */
-	protected ImageDescriptor getImageDescriptor(String relativePath) {
-		return IDEWorkbenchPlugin.getIDEImageDescriptor(relativePath);
-
-	}
-
-	public void updateActionBars() {
-		IStructuredSelection selection = (IStructuredSelection) getContext().getSelection();
-		refreshAction.selectionChanged(selection);
-		buildAction.selectionChanged(selection);
-		openProjectAction.selectionChanged(selection);
-		closeUnrelatedProjectsAction.selectionChanged(selection);
-		closeProjectAction.selectionChanged(selection);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceSelectionUtil.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceSelectionUtil.java
deleted file mode 100644
index d708ad6..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/ResourceSelectionUtil.java
+++ /dev/null
@@ -1,111 +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.ui.internal.navigator.resources.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * Provides utilities for checking the validity of selections.
- * <p>
- * This class provides static methods only; it is not intended to be instantiated
- * or subclassed.
- * @since 2.0
- * </p>
- */
-public class ResourceSelectionUtil {
-    /* (non-Javadoc)
-     * Private constructor to block instantiation.
-     */
-    private ResourceSelectionUtil() {
-    }
-
-    /**
-     * Returns whether the types of the resources in the given selection are among 
-     * the specified resource types.
-     * 
-     * @param selection the selection
-     * @param resourceMask resource mask formed by bitwise OR of resource type
-     *   constants (defined on <code>IResource</code>)
-     * @return <code>true</code> if all selected elements are resources of the right
-     *  type, and <code>false</code> if at least one element is either a resource
-     *  of some other type or a non-resource
-     * @see IResource#getType()
-     */
-    public static boolean allResourcesAreOfType(IStructuredSelection selection,
-            int resourceMask) {
-        Iterator resources = selection.iterator();
-        while (resources.hasNext()) {
-            Object next = resources.next();
-            if (!(next instanceof IResource)) {
-				return false;
-			}
-            if (!resourceIsType((IResource) next, resourceMask)) {
-				return false;
-			}
-        }
-        return true;
-    }
-
-    /**
-     * Returns the selection adapted to IResource. Returns null
-     * if any of the entries are not adaptable.
-     * 
-     * @param selection the selection
-     * @param resourceMask resource mask formed by bitwise OR of resource type
-     *   constants (defined on <code>IResource</code>)
-     * @return IStructuredSelection or null if any of the entries are not adaptable.
-     * @see IResource#getType()
-     */
-    public static IStructuredSelection allResources(
-            IStructuredSelection selection, int resourceMask) {
-        Iterator adaptables = selection.iterator();
-        List result = new ArrayList();
-        while (adaptables.hasNext()) {
-            Object next = adaptables.next();
-            if (next instanceof IAdaptable) {
-                Object resource = ((IAdaptable) next)
-                        .getAdapter(IResource.class);
-                if (resource == null) {
-					return null;
-				} else if (resourceIsType((IResource) resource, resourceMask)) {
-					result.add(resource);
-				}
-            } else {
-				return null;
-			}
-        }
-        return new StructuredSelection(result);
-
-    }
-
-    /**
-     * Returns whether the type of the given resource is among the specified 
-     * resource types.
-     * 
-     * @param resource the resource
-     * @param resourceMask resource mask formed by bitwise OR of resource type
-     *   constants (defined on <code>IResource</code>)
-     * @return <code>true</code> if the resources has a matching type, and 
-     *   <code>false</code> otherwise
-     * @see IResource#getType()
-     */
-    public static boolean resourceIsType(IResource resource, int resourceMask) {
-        return (resource.getType() & resourceMask) != 0;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/TextActionHandler.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/TextActionHandler.java
deleted file mode 100644
index 33b194f..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/TextActionHandler.java
+++ /dev/null
@@ -1,565 +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.ui.internal.navigator.resources.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-
-/**
- * Handles the redirection of the global Cut, Copy, Paste, and
- * Select All actions to either the current inline text control
- * or the part's supplied action handler.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p><p>
- * Example usage:
- * <pre>
- * textActionHandler = new TextActionHandler(this.getViewSite().getActionBars());
- * textActionHandler.addText((Text)textCellEditor1.getControl());
- * textActionHandler.addText((Text)textCellEditor2.getControl());
- * textActionHandler.setSelectAllAction(selectAllAction);
- * </pre>
- * </p>
- */
-public class TextActionHandler extends org.eclipse.ui.actions.TextActionHandler {
-    private DeleteActionHandler textDeleteAction = new DeleteActionHandler();
-
-    private CutActionHandler textCutAction = new CutActionHandler();
-
-    private CopyActionHandler textCopyAction = new CopyActionHandler();
-
-    private PasteActionHandler textPasteAction = new PasteActionHandler();
-
-    private SelectAllActionHandler textSelectAllAction = new SelectAllActionHandler();
-
-    private IAction deleteAction;
-
-    private IAction cutAction;
-
-    private IAction copyAction;
-
-    private IAction pasteAction;
-
-    private IAction selectAllAction;
-
-    private IPropertyChangeListener deleteActionListener = new PropertyChangeListener(
-            textDeleteAction);
-
-    private IPropertyChangeListener cutActionListener = new PropertyChangeListener(
-            textCutAction);
-
-    private IPropertyChangeListener copyActionListener = new PropertyChangeListener(
-            textCopyAction);
-
-    private IPropertyChangeListener pasteActionListener = new PropertyChangeListener(
-            textPasteAction);
-
-    private IPropertyChangeListener selectAllActionListener = new PropertyChangeListener(
-            textSelectAllAction);
-
-    private Listener textControlListener = new TextControlListener();
-
-    private Text activeTextControl;
-
-    private MouseAdapter mouseAdapter = new MouseAdapter() {
-        public void mouseUp(MouseEvent e) {
-            updateActionsEnableState();
-        }
-    };
-
-    private KeyAdapter keyAdapter = new KeyAdapter() {
-        public void keyReleased(KeyEvent e) {
-            updateActionsEnableState();
-        }
-    };
-
-	private IActionBars actionBars;
-
-    private class TextControlListener implements Listener {
-        public void handleEvent(Event event) {
-            switch (event.type) {
-            case SWT.Activate:
-                activeTextControl = (Text) event.widget;
-                updateActionsEnableState();
-                break;
-            case SWT.Deactivate:
-                activeTextControl = null;
-                updateActionsEnableState();
-                break;
-            default:
-                break;
-            }
-        }
-    }
-
-    private class PropertyChangeListener implements IPropertyChangeListener {
-        private IAction actionHandler;
-
-        protected PropertyChangeListener(IAction actionHandler) {
-            super();
-            this.actionHandler = actionHandler;
-        }
-
-        public void propertyChange(PropertyChangeEvent event) {
-            if (activeTextControl != null) {
-				return;
-			}
-            if (event.getProperty().equals(IAction.ENABLED)) {
-                Boolean bool = (Boolean) event.getNewValue();
-                actionHandler.setEnabled(bool.booleanValue());
-            }
-        }
-    }
-
-    private class DeleteActionHandler extends Action {
-        protected DeleteActionHandler() {
-            super("Delete"); // TODO IDEWorkbenchMessages.Delete); //$NON-NLS-1$
-            setId("TextDeleteActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this, "DeleteHelpId"); //$NON-NLS-1$
-					// TODO IIDEHelpContextIds.TEXT_DELETE_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-				String text = activeTextControl.getText();
-				Point selection = activeTextControl.getSelection();
-				if (selection.y == selection.x) {
-					++selection.y;
-				}
-				if (selection.y > text.length()) {
-					return;
-				}
-				StringBuffer buf = new StringBuffer(text.substring(0,
-						selection.x));
-				buf.append(text.substring(selection.y));
-				activeTextControl.setText(buf.toString());
-				activeTextControl.setSelection(selection.x, selection.x);
-				updateActionsEnableState();
-				return;
-			}
-            if (deleteAction != null) {
-                deleteAction.runWithEvent(event);
-                return;
-            }
-        }
-
-        /**
-         * Update state.
-         */
-        public void updateEnabledState() {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                setEnabled(activeTextControl.getSelectionCount() > 0
-                        || activeTextControl.getCaretPosition() < activeTextControl
-                                .getCharCount());
-                return;
-            }
-            if (deleteAction != null) {
-                setEnabled(deleteAction.isEnabled());
-                return;
-            }
-            setEnabled(false);
-        }
-    }
-
-    private class CutActionHandler extends Action {
-        protected CutActionHandler() {
-            super("Cut"); // TODO IDEWorkbenchMessages.Cut); //$NON-NLS-1$
-            setId("TextCutActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this, "CutHelpId"); //$NON-NLS-1$
-					// TODO IIDEHelpContextIds.TEXT_CUT_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.cut();
-                updateActionsEnableState();
-                return;
-            }
-            if (cutAction != null) {
-                cutAction.runWithEvent(event);
-                return;
-            }
-        }
-
-        /**
-         * Update state.
-         */
-        public void updateEnabledState() {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                setEnabled(activeTextControl.getSelectionCount() > 0);
-                return;
-            }
-            if (cutAction != null) {
-                setEnabled(cutAction.isEnabled());
-                return;
-            }
-            setEnabled(false);
-        }
-    }
-
-    private class CopyActionHandler extends Action {
-        protected CopyActionHandler() {
-            super("Copy"); // TODO IDEWorkbenchMessages.Copy); //$NON-NLS-1$
-            setId("TextCopyActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this, "CopyHelpId"); //$NON-NLS-1$
-					// TODO IIDEHelpContextIds.TEXT_COPY_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.copy();
-                updateActionsEnableState();
-                return;
-            }
-            if (copyAction != null) {
-                copyAction.runWithEvent(event);
-                return;
-            }
-        }
-
-        /**
-         * Update the state.
-         */
-        public void updateEnabledState() {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                setEnabled(activeTextControl.getSelectionCount() > 0);
-                return;
-            }
-            if (copyAction != null) {
-                setEnabled(copyAction.isEnabled());
-                return;
-            }
-            setEnabled(false);
-        }
-    }
-
-    private class PasteActionHandler extends Action {
-        protected PasteActionHandler() {
-            super("Paste"); // TODO IDEWorkbenchMessages.Paste); //$NON-NLS-1$
-            setId("TextPasteActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this, "PasteHelpId"); //$NON-NLS-1$
-					// TODO IIDEHelpContextIds.TEXT_PASTE_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.paste();
-                updateActionsEnableState();
-                return;
-            }
-            if (pasteAction != null) {
-                pasteAction.runWithEvent(event);
-                return;
-            }
-        }
-
-        /**
-         * Update the state
-         */
-        public void updateEnabledState() {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                setEnabled(true);
-                return;
-            }
-            if (pasteAction != null) {
-                setEnabled(pasteAction.isEnabled());
-                return;
-            }
-            setEnabled(false);
-        }
-    }
-
-    private class SelectAllActionHandler extends Action {
-        protected SelectAllActionHandler() {
-            super("Select All"); // TODO IDEWorkbenchMessages.TextAction_selectAll); //$NON-NLS-1$
-            setId("TextSelectAllActionHandler");//$NON-NLS-1$
-            setEnabled(false);
-            PlatformUI.getWorkbench().getHelpSystem().setHelp(this, "SelectAllHelpId"); //$NON-NLS-1$
-					// TODO IIDEHelpContextIds.TEXT_SELECT_ALL_ACTION);
-        }
-
-        public void runWithEvent(Event event) {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                activeTextControl.selectAll();
-                updateActionsEnableState();
-                return;
-            }
-            if (selectAllAction != null) {
-                selectAllAction.runWithEvent(event);
-                return;
-            }
-        }
-
-        /**
-         * Update the state.
-         */
-        public void updateEnabledState() {
-            if (activeTextControl != null && !activeTextControl.isDisposed()) {
-                setEnabled(true);
-                return;
-            }
-            if (selectAllAction != null) {
-                setEnabled(selectAllAction.isEnabled());
-                return;
-            }
-            setEnabled(false);
-        }
-    }
-
-    /**
-     * Creates a <code>Text</code> control action handler
-     * for the global Cut, Copy, Paste, Delete, and Select All 
-     * of the action bar.
-     *
-     * @param theActionBars the action bar to register global
-     *    action handlers for Cut, Copy, Paste, Delete, 
-     * 	  and Select All
-     */
-    public TextActionHandler(IActionBars theActionBars) {
-        super(theActionBars);
-        actionBars = theActionBars;
-        updateActionBars();
-    }
-
-    /**
-	 * 
-	 */
-	public void updateActionBars() {
-		actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(),
-                textCutAction);
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
-                textCopyAction);
-		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(),
-                textPasteAction);
-		actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
-                textSelectAllAction);
-		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(),
-                textDeleteAction);
-	}
-
-	/**
-     * Add a <code>Text</code> control to the handler
-     * so that the Cut, Copy, Paste, Delete, and Select All 
-     * actions are redirected to it when active.
-     *
-     * @param textControl the inline <code>Text</code> control
-     */
-    public void addText(Text textControl) {
-        if (textControl == null) {
-			return;
-		}
-
-        activeTextControl = textControl;
-        textControl.addListener(SWT.Activate, textControlListener);
-        textControl.addListener(SWT.Deactivate, textControlListener);
-
-        // We really want a selection listener but it is not supported so we
-        // use a key listener and a mouse listener to know when selection changes
-        // may have occured
-        textControl.addKeyListener(keyAdapter);
-        textControl.addMouseListener(mouseAdapter);
-
-    }
-
-    /**
-     * Dispose of this action handler
-     */
-    public void dispose() {
-        setCutAction(null);
-        setCopyAction(null);
-        setPasteAction(null);
-        setSelectAllAction(null);
-        setDeleteAction(null);
-    }
-
-    /**
-     * Removes a <code>Text</code> control from the handler
-     * so that the Cut, Copy, Paste, Delete, and Select All 
-     * actions are no longer redirected to it when active.
-     *
-     * @param textControl the inline <code>Text</code> control
-     */
-    public void removeText(Text textControl) {
-        if (textControl == null) {
-			return;
-		}
-
-        textControl.removeListener(SWT.Activate, textControlListener);
-        textControl.removeListener(SWT.Deactivate, textControlListener);
-
-        textControl.removeMouseListener(mouseAdapter);
-        textControl.removeKeyListener(keyAdapter);
-
-        activeTextControl = null;
-        updateActionsEnableState();
-    }
-
-    /**
-     * Set the default <code>IAction</code> handler for the Copy
-     * action. This <code>IAction</code> is run only if no active
-     * inline text control.
-     *
-     * @param action the <code>IAction</code> to run for the
-     *    Copy action, or <code>null</code> if not interested.
-     */
-    public void setCopyAction(IAction action) {
-        if (copyAction == action) {
-			return;
-		}
-
-        if (copyAction != null) {
-			copyAction.removePropertyChangeListener(copyActionListener);
-		}
-
-        copyAction = action;
-
-        if (copyAction != null) {
-			copyAction.addPropertyChangeListener(copyActionListener);
-		}
-
-        textCopyAction.updateEnabledState();
-    }
-
-    /**
-     * Set the default <code>IAction</code> handler for the Cut
-     * action. This <code>IAction</code> is run only if no active
-     * inline text control.
-     *
-     * @param action the <code>IAction</code> to run for the
-     *    Cut action, or <code>null</code> if not interested.
-     */
-    public void setCutAction(IAction action) {
-        if (cutAction == action) {
-			return;
-		}
-
-        if (cutAction != null) {
-			cutAction.removePropertyChangeListener(cutActionListener);
-		}
-
-        cutAction = action;
-
-        if (cutAction != null) {
-			cutAction.addPropertyChangeListener(cutActionListener);
-		}
-
-        textCutAction.updateEnabledState();
-    }
-
-    /**
-     * Set the default <code>IAction</code> handler for the Paste
-     * action. This <code>IAction</code> is run only if no active
-     * inline text control.
-     *
-     * @param action the <code>IAction</code> to run for the
-     *    Paste action, or <code>null</code> if not interested.
-     */
-    public void setPasteAction(IAction action) {
-        if (pasteAction == action) {
-			return;
-		}
-
-        if (pasteAction != null) {
-			pasteAction.removePropertyChangeListener(pasteActionListener);
-		}
-
-        pasteAction = action;
-
-        if (pasteAction != null) {
-			pasteAction.addPropertyChangeListener(pasteActionListener);
-		}
-
-        textPasteAction.updateEnabledState();
-    }
-
-    /**
-     * Set the default <code>IAction</code> handler for the Select All
-     * action. This <code>IAction</code> is run only if no active
-     * inline text control.
-     *
-     * @param action the <code>IAction</code> to run for the
-     *    Select All action, or <code>null</code> if not interested.
-     */
-    public void setSelectAllAction(IAction action) {
-        if (selectAllAction == action) {
-			return;
-		}
-
-        if (selectAllAction != null) {
-			selectAllAction
-                    .removePropertyChangeListener(selectAllActionListener);
-		}
-
-        selectAllAction = action;
-
-        if (selectAllAction != null) {
-			selectAllAction.addPropertyChangeListener(selectAllActionListener);
-		}
-
-        textSelectAllAction.updateEnabledState();
-    }
-
-    /**
-     * Set the default <code>IAction</code> handler for the Delete
-     * action. This <code>IAction</code> is run only if no active
-     * inline text control.
-     *
-     * @param action the <code>IAction</code> to run for the
-     *    Delete action, or <code>null</code> if not interested.
-     */
-    public void setDeleteAction(IAction action) {
-        if (deleteAction == action) {
-			return;
-		}
-
-        if (deleteAction != null) {
-			deleteAction.removePropertyChangeListener(deleteActionListener);
-		}
-
-        deleteAction = action;
-
-        if (deleteAction != null) {
-			deleteAction.addPropertyChangeListener(deleteActionListener);
-		}
-
-        textDeleteAction.updateEnabledState();
-    }
-
-    /**
-     * Update the enable state of the Cut, Copy,
-     * Paste, Delete, and Select All action handlers
-     */
-    private void updateActionsEnableState() {
-        textCutAction.updateEnabledState();
-        textCopyAction.updateEnabledState();
-        textPasteAction.updateEnabledState();
-        textSelectAllAction.updateEnabledState();
-        textDeleteAction.updateEnabledState();
-    }
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/UndoRedoActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/UndoRedoActionProvider.java
deleted file mode 100644
index ea15c80..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/UndoRedoActionProvider.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation 
- *       (was originally RefactorActionProvider.java)
- *     Oakland Software (Francis Upton - francisu@ieee.org) 
- *        bug 214271 Undo/redo not enabled if nothing selected
- ******************************************************************************/
-
-package org.eclipse.ui.internal.navigator.resources.actions;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-import org.eclipse.ui.operations.UndoRedoActionGroup;
-
-/**
- * @since 3.4
- * 
- */
-public class UndoRedoActionProvider extends CommonActionProvider {
-
-	private UndoRedoActionGroup undoRedoGroup;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite anActionSite) {
-		IUndoContext workspaceContext = (IUndoContext) ResourcesPlugin
-				.getWorkspace().getAdapter(IUndoContext.class);
-		undoRedoGroup = new UndoRedoActionGroup(((ICommonViewerWorkbenchSite) anActionSite.getViewSite()).getSite(),
-				workspaceContext, true);
-	}
-
-	public void dispose() {
-		undoRedoGroup.dispose();
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-		undoRedoGroup.fillActionBars(actionBars);
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		undoRedoGroup.fillContextMenu(menu);
-	}
-
-	public void setContext(ActionContext context) {
-		undoRedoGroup.setContext(context);
-	}
-
-	public void updateActionBars() {
-		undoRedoGroup.updateActionBars();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkManagementActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkManagementActionProvider.java
deleted file mode 100644
index 5eaa640..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkManagementActionProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.AddBookmarkAction;
-import org.eclipse.ui.actions.AddTaskAction;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-/**
- * Supports Add Task and Add Bookmark actions.
- * 
- * @since 3.2
- * 
- */
-public class WorkManagementActionProvider extends CommonActionProvider {
-
-	private AddTaskAction addTaskAction;
-
-	private AddBookmarkAction addBookmarkAction;
-
-	public void init(ICommonActionExtensionSite aSite) {
-		final Shell shell = aSite.getViewSite().getShell();
-		IShellProvider sp = new IShellProvider() {
-			public Shell getShell() {
-				return shell;
-			}
-		};
-		addBookmarkAction = new AddBookmarkAction(sp, true);
-		addTaskAction = new AddTaskAction(sp);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars
-	 * )
-	 */
-	public void fillActionBars(IActionBars actionBars) {
-		super.fillActionBars(actionBars);
-		actionBars.setGlobalActionHandler(IDEActionFactory.BOOKMARK.getId(), addBookmarkAction);
-		actionBars.setGlobalActionHandler(IDEActionFactory.ADD_TASK.getId(), addTaskAction);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.actions.ActionGroup#setContext(org.eclipse.ui.actions.
-	 * ActionContext)
-	 */
-	public void setContext(ActionContext context) {
-		super.setContext(context);
-		if (context != null && context.getSelection() instanceof IStructuredSelection) {
-			IStructuredSelection sSel = (IStructuredSelection) context.getSelection();
-			addBookmarkAction.selectionChanged(sSel);
-			addTaskAction.selectionChanged(sSel);
-		} else {
-			addBookmarkAction.selectionChanged(StructuredSelection.EMPTY);
-			addTaskAction.selectionChanged(StructuredSelection.EMPTY);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetActionProvider.java
deleted file mode 100644
index 9b20547..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetActionProvider.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     anton.leherbauer@windriver.com - bug 212389 [CommonNavigator] working set issues: 
- *         missing project, window working set inconsistency
- *******************************************************************************/
-
-package org.eclipse.ui.internal.navigator.resources.actions;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IAggregateWorkingSet;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ResourceWorkingSetFilter;
-import org.eclipse.ui.actions.WorkingSetFilterActionGroup;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.internal.navigator.workingsets.WorkingSetsContentProvider;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.IExtensionActivationListener;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * @since 3.2
- * 
- */
-public class WorkingSetActionProvider extends CommonActionProvider {
-
-	private static final String TAG_CURRENT_WORKING_SET_NAME = "currentWorkingSetName"; //$NON-NLS-1$
-
-	private boolean contributedToViewMenu = false;
-
-	private CommonViewer viewer;
-
-	private INavigatorContentService contentService;
-
-	private WorkingSetFilterActionGroup workingSetActionGroup;
-	private WorkingSetRootModeActionGroup workingSetRootModeActionGroup;
-
-	private Object originalViewerInput = ResourcesPlugin.getWorkspace().getRoot();
-
-	private IExtensionStateModel extensionStateModel;
-
-	private final ResourceWorkingSetFilter workingSetFilter = new ResourceWorkingSetFilter();
-	private boolean filterAdded;
-
-	private boolean emptyWorkingSet;
-	private IWorkingSet workingSet;
-
-	private IPropertyChangeListener topLevelModeListener;
-
-	/**
-	 * Provides a smart listener to monitor changes to the Working Set Manager.
-	 * 
-	 */
-	public class WorkingSetManagerListener implements IPropertyChangeListener {
-
-		private boolean listening = false;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see
-		 * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org
-		 * .eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			String property = event.getProperty();
-			Object newValue = event.getNewValue();
-			Object oldValue = event.getOldValue();
-
-			String newLabel = null;
-			if (IWorkingSetManager.CHANGE_WORKING_SET_REMOVE.equals(property) && oldValue == workingSet) {
-				newLabel = ""; //$NON-NLS-1$
-				setWorkingSet(null);
-			} else if (IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE.equals(property) && newValue == workingSet) {
-				newLabel = workingSet.getLabel();
-			} else if (IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE.equals(property) && newValue == workingSet) {
-				if (workingSet.isAggregateWorkingSet() && workingSet.isEmpty()) {
-					// act as if the working set has been made null
-					if (!emptyWorkingSet) {
-						emptyWorkingSet = true;
-						workingSetFilter.setWorkingSet(null);
-						newLabel = null;
-					}
-				} else {
-					// we've gone from empty to non-empty on our set.
-					// Restore it.
-					if (emptyWorkingSet) {
-						emptyWorkingSet = false;
-						workingSetFilter.setWorkingSet(workingSet);
-						newLabel = workingSet.getLabel();
-					}
-				}
-			}
-			if (viewer != null) {
-				if (newLabel != null)
-					viewer.getCommonNavigator().setWorkingSetLabel(newLabel);
-				viewer.getFrameList().reset();
-				viewer.refresh();
-			}
-		}
-
-		/**
-		 * Begin listening to the correct source if not already listening.
-		 */
-		public synchronized void listen() {
-			if (!listening) {
-				PlatformUI.getWorkbench().getWorkingSetManager().addPropertyChangeListener(managerChangeListener);
-				listening = true;
-			}
-		}
-
-		/**
-		 * Begin listening to the correct source if not already listening.
-		 */
-		public synchronized void ignore() {
-			if (listening) {
-				PlatformUI.getWorkbench().getWorkingSetManager().removePropertyChangeListener(managerChangeListener);
-				listening = false;
-			}
-		}
-	}
-
-	private IPropertyChangeListener filterChangeListener = new IPropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent event) {
-			IWorkingSet newWorkingSet = (IWorkingSet) event.getNewValue();
-
-			setWorkingSet(newWorkingSet);
-			if (newWorkingSet != null) {
-				if (!contentService.isActive(WorkingSetsContentProvider.EXTENSION_ID)) {
-					contentService.getActivationService().activateExtensions(
-							new String[] { WorkingSetsContentProvider.EXTENSION_ID }, false);
-					contentService.getActivationService().persistExtensionActivations();
-				}
-				if (newWorkingSet.isAggregateWorkingSet()) {
-					IAggregateWorkingSet agWs = (IAggregateWorkingSet) newWorkingSet;
-					IWorkingSet[] comps = agWs.getComponents();
-					if (comps.length > 1) {
-						viewer.getCommonNavigator().setWorkingSetLabel(
-								WorkbenchNavigatorMessages.WorkingSetActionProvider_multipleWorkingSets);
-					} else if (comps.length > 0) {
-						viewer.getCommonNavigator().setWorkingSetLabel(comps[0].getLabel());
-					} else {
-						viewer.getCommonNavigator().setWorkingSetLabel(null);
-					}
-				} else
-					viewer.getCommonNavigator().setWorkingSetLabel(workingSet.getLabel());
-			} else {
-				viewer.getCommonNavigator().setWorkingSetLabel(null);
-			}
-
-			viewer.getFrameList().reset();
-		}
-	};
-
-	private WorkingSetManagerListener managerChangeListener = new WorkingSetManagerListener();
-
-	private IExtensionActivationListener activationListener = new IExtensionActivationListener() {
-
-		private IWorkingSet savedWorkingSet;
-
-		public void onExtensionActivation(String aViewerId, String[] theNavigatorExtensionIds, boolean isActive) {
-
-			for (int i = 0; i < theNavigatorExtensionIds.length; i++) {
-				if (WorkingSetsContentProvider.EXTENSION_ID.equals(theNavigatorExtensionIds[i])) {
-					if (isActive) {
-						extensionStateModel = contentService.findStateModel(WorkingSetsContentProvider.EXTENSION_ID);
-						workingSetRootModeActionGroup.setStateModel(extensionStateModel);
-						extensionStateModel.addPropertyChangeListener(topLevelModeListener);
-
-						if (savedWorkingSet != null) {
-							setWorkingSet(savedWorkingSet);
-							workingSetActionGroup.setWorkingSet(savedWorkingSet);
-						}
-						managerChangeListener.listen();
-
-					} else {
-						savedWorkingSet = workingSet;
-						setWorkingSet(null);
-						viewer.getCommonNavigator().setWorkingSetLabel(null);
-						managerChangeListener.ignore();
-						workingSetActionGroup.setWorkingSet(null);
-						workingSetRootModeActionGroup.setShowTopLevelWorkingSets(false);
-						extensionStateModel.removePropertyChangeListener(topLevelModeListener);
-
-					}
-				}
-			}
-		}
-
-	};
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator
-	 * .ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite aSite) {
-		viewer = (CommonViewer) aSite.getStructuredViewer();
-		contentService = aSite.getContentService();
-
-		extensionStateModel = contentService.findStateModel(WorkingSetsContentProvider.EXTENSION_ID);
-
-		workingSetActionGroup = new WorkingSetFilterActionGroup(aSite.getViewSite().getShell(), filterChangeListener);
-		workingSetRootModeActionGroup = new WorkingSetRootModeActionGroup(viewer, extensionStateModel);
-
-		topLevelModeListener = new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				setWorkingSet(workingSet);
-				viewer.getFrameList().reset();
-			}
-		};
-
-		if (contentService.isActive(WorkingSetsContentProvider.EXTENSION_ID)) {
-			managerChangeListener.listen();
-			extensionStateModel.addPropertyChangeListener(topLevelModeListener);
-		}
-
-		contentService.getActivationService().addExtensionActivationListener(activationListener);
-
-	}
-
-	/**
-	 * Restores the working set filter from the persistence store.
-	 */
-	protected void initWorkingSetFilter(String workingSetName) {
-		IWorkingSet workingSet = null;
-
-		if (workingSetName != null && workingSetName.length() > 0) {
-			IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager();
-			workingSet = workingSetManager.getWorkingSet(workingSetName);
-		} else if (PlatformUI.getPreferenceStore().getBoolean(
-				IWorkbenchPreferenceConstants.USE_WINDOW_WORKING_SET_BY_DEFAULT)) {
-			// use the window set by default if the global preference is set
-			workingSet = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getAggregateWorkingSet();
-		}
-
-		if (workingSet != null) {
-			workingSetFilter.setWorkingSet(workingSet);
-			internalSetWorkingSet(workingSet);
-			workingSetActionGroup.setWorkingSet(workingSet);
-		}
-	}
-
-	/**
-	 * Set current active working set.
-	 * 
-	 * @param workingSet
-	 *            working set to be activated, may be <code>null</code>
-	 */
-	protected void setWorkingSet(IWorkingSet workingSet) {
-		internalSetWorkingSet(workingSet);
-
-		workingSetFilter.setWorkingSet(emptyWorkingSet ? null : workingSet);
-
-		if (viewer != null) {
-			if (workingSet == null || emptyWorkingSet
-					|| !extensionStateModel.getBooleanProperty(WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS)) {
-				if (viewer.getInput() != originalViewerInput) {
-					viewer.setInput(originalViewerInput);
-				}
-				if (!filterAdded) {
-					viewer.addFilter(workingSetFilter);
-					filterAdded = true;
-				} else {
-					viewer.refresh();
-				}
-			} else {
-				viewer.removeFilter(workingSetFilter);
-				filterAdded = false;
-				if (!workingSet.isAggregateWorkingSet()) {
-					IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager();
-					viewer.setInput(workingSetManager.createAggregateWorkingSet(
-							"", "", new IWorkingSet[] { workingSet })); //$NON-NLS-1$ //$NON-NLS-2$
-				} else {
-					viewer.setInput(workingSet);
-				}
-			}
-		}
-	}
-
-	private void internalSetWorkingSet(IWorkingSet workingSet) {
-		this.workingSet = workingSet;
-		emptyWorkingSet = workingSet != null && workingSet.isAggregateWorkingSet() && workingSet.isEmpty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.navigator.CommonActionProvider#restoreState(org.eclipse
-	 * .ui.IMemento)
-	 */
-	public void restoreState(IMemento aMemento) {
-		super.restoreState(aMemento);
-
-		boolean showWorkingSets = true;
-		if (aMemento != null) {
-			Integer showWorkingSetsInt = aMemento.getInteger(WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS);
-			showWorkingSets = showWorkingSetsInt == null || showWorkingSetsInt.intValue() == 1;
-			extensionStateModel.setBooleanProperty(WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS,
-					showWorkingSets);
-			workingSetRootModeActionGroup.setShowTopLevelWorkingSets(showWorkingSets);
-
-			String lastWorkingSetName = aMemento.getString(TAG_CURRENT_WORKING_SET_NAME);
-			initWorkingSetFilter(lastWorkingSetName);
-		} else {
-			showWorkingSets = false;
-
-			extensionStateModel.setBooleanProperty(WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS,
-					showWorkingSets);
-			workingSetRootModeActionGroup.setShowTopLevelWorkingSets(showWorkingSets);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.navigator.CommonActionProvider#saveState(org.eclipse.ui
-	 * .IMemento)
-	 */
-	public void saveState(IMemento aMemento) {
-		super.saveState(aMemento);
-
-		if (aMemento != null) {
-			int showWorkingSets = extensionStateModel
-					.getBooleanProperty(WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS) ? 1 : 0;
-			aMemento.putInteger(WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS, showWorkingSets);
-
-			if (workingSet != null) {
-				aMemento.putString(TAG_CURRENT_WORKING_SET_NAME, workingSet.getName());
-			}
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars
-	 * )
-	 */
-	public void fillActionBars(IActionBars actionBars) {
-		if (!contributedToViewMenu) {
-			try {
-				super.fillActionBars(actionBars);
-				workingSetActionGroup.fillActionBars(actionBars);
-				if (workingSetRootModeActionGroup != null) {
-					workingSetRootModeActionGroup.fillActionBars(actionBars);
-				}
-			} finally {
-				contributedToViewMenu = true;
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.ActionGroup#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		workingSetActionGroup.dispose();
-		if (workingSetRootModeActionGroup != null) {
-			workingSetRootModeActionGroup.dispose();
-		}
-
-		managerChangeListener.ignore();
-		extensionStateModel.removePropertyChangeListener(topLevelModeListener);
-
-		contentService.getActivationService().removeExtensionActivationListener(activationListener);
-	}
-
-	/**
-	 * This is used only for the tests.
-	 * 
-	 * @return a PropertyChangeListener
-	 */
-	public IPropertyChangeListener getFilterChangeListener() {
-		return filterChangeListener;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetRootModeActionGroup.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetRootModeActionGroup.java
deleted file mode 100644
index 35dfac6..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/actions/WorkingSetRootModeActionGroup.java
+++ /dev/null
@@ -1,259 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin;
-import org.eclipse.ui.internal.navigator.workingsets.WorkingSetsContentProvider;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-
-/**
- * 
- * Provides the radio buttons at the top of the view menu that control the root
- * of the ProjectExplorer, which is either working sets of projects.  When the
- * state is changed through the actions, the WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS
- * property in the extension state model is updated.
- * 
- * This is installed by the WorkingSetActionProvider.
- * 
- * @since 3.2
- * 
- */
-public class WorkingSetRootModeActionGroup extends ActionGroup {
-
-	private IExtensionStateModel stateModel;
-	private StructuredViewer structuredViewer;
-
-	private boolean hasContributedToViewMenu = false;
-	private IAction workingSetsAction = null;
-	private IAction projectsAction = null;
-	private IAction[] actions;
-	private int currentSelection;
-	private MenuItem[] items;
-
-	private class TopLevelContentAction extends Action  {
-
-		private final boolean groupWorkingSets;
-
-		/**
-		 * Construct an Action that represents a toggle-able state between
-		 * Showing top level Working Sets and Projects.
-		 * 
-		 * @param toGroupWorkingSets
-		 */
-		public TopLevelContentAction(boolean toGroupWorkingSets) {
-			super("", AS_RADIO_BUTTON); //$NON-NLS-1$
-			groupWorkingSets = toGroupWorkingSets;
-		}
-
-		/*
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			if (stateModel
-					.getBooleanProperty(WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS) != groupWorkingSets) {
-				stateModel.setBooleanProperty(
-						WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS,
-						groupWorkingSets);
-
-				structuredViewer.getControl().setRedraw(false);
-				try {
-					structuredViewer.refresh();
-				} finally {
-					structuredViewer.getControl().setRedraw(true);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Create an action group that will listen to the stateModel and update the
-	 * structuredViewer when necessary.
-	 * 
-	 * @param aStructuredViewer
-	 * @param aStateModel
-	 */
-	public WorkingSetRootModeActionGroup(StructuredViewer aStructuredViewer,
-			IExtensionStateModel aStateModel) {
-		super();
-		structuredViewer = aStructuredViewer;
-		stateModel = aStateModel;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see ActionGroup#fillActionBars(IActionBars)
-	 */
-	public void fillActionBars(IActionBars actionBars) {
-		// Can happen if called here before we get the first call 
-		// to setShowTopLevelWorkingSets().  See bug 275197.
-		if (actions == null)
-			return;
-		synchronized (this) {
-			if (!hasContributedToViewMenu) {
-				contributeToViewMenu(actionBars.getMenuManager()); 
-				hasContributedToViewMenu = true;
-			}
-		}
-	}
-
-	private void contributeToViewMenu(IMenuManager viewMenu) {
-
-		IMenuManager topLevelSubMenu = new MenuManager(
-				WorkbenchNavigatorMessages.WorkingSetRootModeActionGroup_Top_Level_Element_);
-		addActions(topLevelSubMenu);
-		viewMenu.insertBefore(IWorkbenchActionConstants.MB_ADDITIONS,
-				topLevelSubMenu);
-	}
-
-	/**
-	 * Adds the actions to the given menu manager.
-	 */
-	protected void addActions(IMenuManager viewMenu) {
-
-		viewMenu.add(new Separator());
-		items = new MenuItem[actions.length];
-
-		for (int i = 0; i < actions.length; i++) {
-			final int j = i;
-
-			viewMenu.add(new ContributionItem() {
-
-				public void fill(Menu menu, int index) {
-
-					int style = SWT.CHECK;
-					if ((actions[j].getStyle() & IAction.AS_RADIO_BUTTON) != 0)
-						style = SWT.RADIO;
-
-					final MenuItem mi = new MenuItem(menu, style, index);
-					items[j] = mi;
-					mi.setText(actions[j].getText());
-					mi.setSelection(currentSelection == j);
-					mi.addSelectionListener(new SelectionAdapter() {
-
-						public void widgetSelected(SelectionEvent e) {
-							if (currentSelection == j) {
-								items[currentSelection].setSelection(true);
-								return;
-							}
-							actions[j].run();
-
-							// Update checked state
-							items[currentSelection].setSelection(false);
-							currentSelection = j;
-							items[currentSelection].setSelection(true);
-						}
-
-					});
-
-				}
-
-				public boolean isDynamic() {
-					return false;
-				}
-			});
-		}
-	}
-
-	private IAction[] createActions() {
-
-		ISharedImages sharedImages = PlatformUI.getWorkbench()
-				.getSharedImages();
-
-		projectsAction = new TopLevelContentAction(false);
-		projectsAction
-				.setText(WorkbenchNavigatorMessages.WorkingSetRootModeActionGroup_Project_);
-		projectsAction.setImageDescriptor(sharedImages
-				.getImageDescriptor(IDE.SharedImages.IMG_OBJ_PROJECT));
-
-		workingSetsAction = new TopLevelContentAction(true);
-		workingSetsAction
-				.setText(WorkbenchNavigatorMessages.WorkingSetRootModeActionGroup_Working_Set_);
-		workingSetsAction.setImageDescriptor(WorkbenchNavigatorPlugin
-				.getDefault().getImageRegistry().getDescriptor(
-						"full/obj16/workingsets.gif")); //$NON-NLS-1$
-
-		return new IAction[] { projectsAction, workingSetsAction };
-	}
-
-	/**
-	 * Toggle whether top level working sets should be displayed as a group or
-	 * collapse to just show their contents.
-	 * 
-	 * @param showTopLevelWorkingSets
-	 */
-	public void setShowTopLevelWorkingSets(boolean showTopLevelWorkingSets) {
-		if (actions == null) {
-			actions = createActions();
-			setActions(actions, showTopLevelWorkingSets ? 1 /*
-															 * Show Top Level
-															 * Working Sets
-															 */
-					: 0);
-		}
-		workingSetsAction.setChecked(showTopLevelWorkingSets);
-		projectsAction.setChecked(!showTopLevelWorkingSets);
-
-		if (items != null) {
-			for (int i = 0; i < items.length; i++) {
-				if(items[i] != null && actions[i] != null)
-					items[i].setSelection(actions[i].isChecked());
-			}
-		}
-		if (stateModel != null) {
-			stateModel.setBooleanProperty(
-					WorkingSetsContentProvider.SHOW_TOP_LEVEL_WORKING_SETS,
-					showTopLevelWorkingSets);
-		}
-
-	}
-
-	/**
-	 * Configure the actions that are displayed in the menu by this ActionGroup.
-	 * 
-	 * @param theActions
-	 *            An array of possible actions.
-	 * @param selected
-	 *            The index of the "enabled" action.
-	 */
-	private void setActions(IAction[] theActions, int selected) {
-		actions = theActions;
-		currentSelection = selected;
-
-	}
-
-	/**
-	 * @param sStateModel
-	 */
-	public void setStateModel(IExtensionStateModel sStateModel) {
-		stateModel = sStateModel;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java
deleted file mode 100644
index 67fd4c5..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/NavigatorUIPluginImages.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.plugin;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collections;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.navigator.NavigatorPlugin;
-
-/**
- * Handles all images and icons for the ui.
- * 
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as part
- * of a work in progress. There is a guarantee neither that this API will work
- * nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * 
- * @since 3.2
- */
-public class NavigatorUIPluginImages {
-
-	private static URL fgIconLocation;
-
-	// Create image registry
-	private final static ImageRegistry NAVIGATORUIPLUGIN_REGISTRY = NavigatorPlugin.getDefault().getImageRegistry();
-
-	// Create the icon location
-	static {
-		String pathSuffix = "icons/full/"; //$NON-NLS-1$ 
-		fgIconLocation = FileLocator.find(NavigatorPlugin.getDefault().getBundle(), new Path(pathSuffix), Collections.EMPTY_MAP);
-	}
-
-	/**
-	 * Gets the current image.
-	 * 
-	 * @param key
-	 *            - Name of the icon.
-	 * @return Image
-	 */
-	public static Image get(String key) {
-		return NAVIGATORUIPLUGIN_REGISTRY.get(key);
-	}
-
-	/**
-	 * Create and returns a image descriptor.
-	 * 
-	 * @param prefix
-	 *            - Icon dir structure.
-	 * @param name
-	 *            - The name of the icon.
-	 * @return ImageDescriptor
-	 */
-	private static ImageDescriptor create(String prefix, String name) {
-		return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
-	}
-
-	/**
-	 * Creates the icon url
-	 * 
-	 * @param prefix
-	 *            - Icon dir structure.
-	 * @param name
-	 *            - The name of the icon.
-	 * @return URL
-	 */
-	private static URL makeIconFileURL(String prefix, String name) {
-		StringBuffer buffer = new StringBuffer(prefix);
-		buffer.append(name);
-		try {
-			return new URL(fgIconLocation, buffer.toString());
-		} catch (MalformedURLException ex) {
-
-			return null;
-		}
-	}
-
-	/**
-	 * Sets the three image descriptors for enabled, disabled, and hovered to an
-	 * action. The actions are retrieved from the *lcl16 folders.
-	 * 
-	 * @param action
-	 *            the action
-	 * @param iconName
-	 *            the icon name
-	 */
-	public static void setLocalImageDescriptors(IAction action, String iconName) {
-		setImageDescriptors(action, "lcl16/", iconName); //$NON-NLS-1$
-	}
-
-	/**
-	 * Sets all available image descriptors for the given action.
-	 * 
-	 * @param action
-	 *            - The action associated with the icon.
-	 * @param type
-	 *            - The type of icon.
-	 * @param relPath
-	 *            - The relative path of the icon.
-	 */
-	public static void setImageDescriptors(IAction action, String type, String relPath) {
-		// /*relPath= relPath.substring(NAVIGATORUI_NAME_PREFIX_LENGTH);*/
-		// action.setDisabledImageDescriptor(create("d" + type, relPath));
-		// //$NON-NLS-1$
-		// action.setHoverImageDescriptor(create("c" + type, relPath));
-		// //$NON-NLS-1$
-		action.setImageDescriptor(create("e" + type, relPath)); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorMessages.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorMessages.java
deleted file mode 100644
index d73093b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorMessages.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.plugin;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Utility class which helps managing messages
- * 
- * 
- * @since 3.2
- */
-public class WorkbenchNavigatorMessages extends NLS {
-	/** The bundle properties file */
-	public static final String BUNDLE_NAME = "org.eclipse.ui.internal.navigator.resources.plugin.messages"; //$NON-NLS-1$
-
-	public static String PortingActionProvider_ImportResourcesMenu_label;
-
-	public static String PortingActionProvider_ExportResourcesMenu_label;
-
-	public static String NewActionProvider_NewMenu_label;
-
-	public static String OpenActionProvider_OpenWithMenu_label;
-
-	public static String DropAdapter_title;
-	public static String DropAdapter_problemImporting;
-	public static String DropAdapter_problemsMoving;
-	public static String DropAdapter_targetMustBeResource;
-	public static String DropAdapter_canNotDropIntoClosedProject;
-	public static String DropAdapter_resourcesCanNotBeSiblings;
-	public static String DropAdapter_canNotDropProjectIntoProject;
-	public static String DropAdapter_dropOperationErrorOther;
-
-	public static String MoveResourceAction_title;
-	public static String MoveResourceAction_checkMoveMessage;
-	
-	public static String ResourceMgmtActionProvider_logTitle;
-
-	public static String WorkingSetRootModeActionGroup_Top_Level_Element_;
-	public static String WorkingSetRootModeActionGroup_Project_;
-	public static String WorkingSetRootModeActionGroup_Working_Set_;
-	public static String WorkingSetActionProvider_multipleWorkingSets;
-	
-	public static String CopyAction_Cop_;
-	public static String CopyAction_Copy_selected_resource_s_;
-	
-	public static String PasteAction_Past_;
-	public static String PasteAction_Paste_selected_resource_s_;
-
-	public static String GotoResourceDialog_GoToTitle;
-
-	public static String ProjectExplorer_toolTip;
-	public static String ProjectExplorer_toolTip2;
-	public static String ProjectExplorer_toolTip3;
-	
-	public static String ProjectExplorerPart_workspace;
-	public static String ProjectExplorerPart_workingSetModel;
-	
-	
-	static {
-		initializeMessages(BUNDLE_NAME, WorkbenchNavigatorMessages.class);
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorPlugin.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorPlugin.java
deleted file mode 100644
index 656b409..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/WorkbenchNavigatorPlugin.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.plugin;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The main plugin class for the workbench Navigator.
- * 
- * @since 3.2
- */
-public class WorkbenchNavigatorPlugin extends AbstractUIPlugin {
-	// The shared instance.
-	private static WorkbenchNavigatorPlugin plugin;
-
-	/** The plugin id */
-	public static String PLUGIN_ID = "org.eclipse.ui.navigator.resources"; //$NON-NLS-1$
-
-	/**
-	 * Creates a new instance of the receiver
-	 */
-	public WorkbenchNavigatorPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * @return the shared instance.
-	 */
-	public static WorkbenchNavigatorPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * @return the workspace instance.
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	/**
-	 * Logs errors.
-	 * @param message The message to log
-	 * @param status The status to log
-	 */
-	public static void log(String message, IStatus status) {
-		if (message != null) {
-			getDefault().getLog().log(
-					new Status(IStatus.ERROR, PLUGIN_ID, 0, message, null));
-			System.err.println(message + "\nReason:"); //$NON-NLS-1$
-		}
-		if(status != null) {
-			getDefault().getLog().log(status);
-			System.err.println(status.getMessage());
-		}
-	}
-
-	/**
-	 * Create a status associated with this plugin.
-	 * 
-	 * @param severity
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 * @return A status configured with this plugin's id and the given
-	 *         parameters.
-	 */
-	public static IStatus createStatus(int severity, int aCode,
-			String aMessage, Throwable exception) {
-		return new Status(severity, PLUGIN_ID, aCode,
-				aMessage != null ? aMessage : "No message.", exception); //$NON-NLS-1$
-	}
-
-	/**
-	 * 
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 * @return A status configured with this plugin's id and the given
-	 *         parameters.
-	 */
-	public static IStatus createErrorStatus(int aCode, String aMessage,
-			Throwable exception) {
-		return createStatus(IStatus.ERROR, aCode, aMessage, exception);
-	}
-	
-
-	/**
-	 *  
-	 * @param aMessage
-	 * @param exception
-	 * @return A status configured with this plugin's id and the given
-	 *         parameters.
-	 */
-	public static IStatus createErrorStatus(String aMessage,	Throwable exception) {
-		return createStatus(IStatus.ERROR, 0, aMessage, exception);
-	}
-	
-	/**
-	 *  
-	 * @param aMessage 
-	 * @return A status configured with this plugin's id and the given
-	 *         parameters.
-	 */
-	public static IStatus createErrorStatus(String aMessage) {
-		return createStatus(IStatus.ERROR, 0, aMessage, null);
-	}
-	
-	
-	/**
-	 *  
-	 * @param aMessage 
-	 * @return A status configured with this plugin's id and the given
-	 *         parameters.
-	 */
-	public static IStatus createInfoStatus(String aMessage) {
-		return createStatus(IStatus.INFO, 0, aMessage, null);
-	}
-	
-	
-	/**
-	 *  
-	 * @param aMessage 
-	 * @return A status configured with this plugin's id and the given
-	 *         parameters.
-	 */
-	public static IStatus createWarningStatus(String aMessage) {
-		return createStatus(IStatus.WARNING, 0, aMessage, null);
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/messages.properties b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/messages.properties
deleted file mode 100644
index d851329..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/plugin/messages.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-#String externalization, key=value
-#Tue Aug 15 11:29:14 EDT 2006
-DropAdapter_title=Drag and Drop Problem
-OpenActionProvider_OpenWithMenu_label=Open With
-WorkingSetRootModeActionGroup_Top_Level_Element_=&Top Level Elements
-WorkingSetRootModeActionGroup_Project_=Projects
-DropAdapter_resourcesCanNotBeSiblings=Resources cannot be siblings of projects
-PortingActionProvider_ImportResourcesMenu_label=&Import
-MoveResourceAction_title=Check Move
-PortingActionProvider_ExportResourcesMenu_label=E&xport
-WorkingSetRootModeActionGroup_Working_Set_=Working Sets
-DropAdapter_targetMustBeResource=Target must be a resource
-DropAdapter_problemImporting=Problems occurred while importing resources.
-MoveResourceAction_checkMoveMessage=''{0}'' is read only. Do you still wish to move it?
-DropAdapter_canNotDropIntoClosedProject=Cannot drop a resource into closed project
-DropAdapter_canNotDropProjectIntoProject=Cannot drop a project into another project
-DropAdapter_problemsMoving=Problems occurred while moving resources.
-DropAdapter_dropOperationErrorOther=An error occurred during the drop operation.
-NewActionProvider_NewMenu_label=&New
-CopyAction_Cop_=Copy
-CopyAction_Copy_selected_resource_s_=Copy selected resource(s)
-PasteAction_Past_=Paste
-PasteAction_Paste_selected_resource_s_=Paste selected resource(s)
-GotoResourceDialog_GoToTitle=Go To Resource
-WorkingSetActionProvider_multipleWorkingSets=Multiple Working Sets
-ProjectExplorer_toolTip= Working Set: {0}
-ProjectExplorer_toolTip2= {0} - Working Set: {1}
-ProjectExplorer_toolTip3= {0}/{1}
-ProjectExplorerPart_workspace=Workspace
-ProjectExplorerPart_workingSetModel=Working Sets
-ResourceMgmtActionProvider_logTitle=Exception in {0}. run: {1}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionContentProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionContentProvider.java
deleted file mode 100644
index 37c68dc..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionContentProvider.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.workbench;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-
-/**
- * @since 3.2
- */
-public class ResourceExtensionContentProvider extends WorkbenchContentProvider {
- 
-	private static final Object[] NO_CHILDREN = new Object[0];
-	private Viewer viewer;
-	
-	/**
-	 *  
-	 */
-	public ResourceExtensionContentProvider() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.BaseWorkbenchContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object element) {
-		return super.getChildren(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.BaseWorkbenchContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object element) {
-		if(element instanceof IResource)
-			return super.getChildren(element);
-		return NO_CHILDREN;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.model.BaseWorkbenchContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		try {
-			if (element instanceof IContainer) {
-				IContainer c = (IContainer) element;
-				if (!c.isAccessible())
-					return false;
-				return c.members().length > 0;
-			}
-		} catch (CoreException ex) {
-			WorkbenchNavigatorPlugin.getDefault().getLog().log(
-					new Status(IStatus.ERROR, WorkbenchNavigatorPlugin.PLUGIN_ID, 0, ex.getMessage(), ex));
-			return false;
-		}
-
-		return super.hasChildren(element);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.model.WorkbenchContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 
-		super.inputChanged(viewer, oldInput, newInput);
-		this.viewer = viewer;
-	}
-
-
-	/**
-	 * Process the resource delta.
-	 * 
-	 * @param delta
-	 */
-	protected void processDelta(IResourceDelta delta) {		
-
-		Control ctrl = viewer.getControl();
-		if (ctrl == null || ctrl.isDisposed()) {
-			return;
-		}
-		
-		
-		final Collection runnables = new ArrayList();
-		processDelta(delta, runnables);
-
-		if (runnables.isEmpty()) {
-			return;
-		}
-
-		//Are we in the UIThread? If so spin it until we are done
-		if (ctrl.getDisplay().getThread() == Thread.currentThread()) {
-			runUpdates(runnables);
-		} else {
-			ctrl.getDisplay().asyncExec(new Runnable(){
-				/* (non-Javadoc)
-				 * @see java.lang.Runnable#run()
-				 */
-				public void run() {
-					//Abort if this happens after disposes
-					Control ctrl = viewer.getControl();
-					if (ctrl == null || ctrl.isDisposed()) {
-						return;
-					}
-					
-					runUpdates(runnables);
-				}
-			});
-		}
-
-	}
-	
-	/**
-	 * Process a resource delta. Add any runnables
-	 */
-	private void processDelta(IResourceDelta delta, Collection runnables) {
-		//he widget may have been destroyed
-		// by the time this is run. Check for this and do nothing if so.
-		Control ctrl = viewer.getControl();
-		if (ctrl == null || ctrl.isDisposed()) {
-			return;
-		}
-
-		// Get the affected resource
-		final IResource resource = delta.getResource();
-	
-		// If any children have changed type, just do a full refresh of this
-		// parent,
-		// since a simple update on such children won't work,
-		// and trying to map the change to a remove and add is too dicey.
-		// The case is: folder A renamed to existing file B, answering yes to
-		// overwrite B.
-		IResourceDelta[] affectedChildren = delta
-				.getAffectedChildren(IResourceDelta.CHANGED);
-		for (int i = 0; i < affectedChildren.length; i++) {
-			if ((affectedChildren[i].getFlags() & IResourceDelta.TYPE) != 0) {
-				runnables.add(getRefreshRunnable(resource));
-				return;
-			}
-		}
-
-		// Check the flags for changes the Navigator cares about.
-		// See ResourceLabelProvider for the aspects it cares about.
-		// Notice we don't care about F_CONTENT or F_MARKERS currently.
-		int changeFlags = delta.getFlags();
-		if ((changeFlags & (IResourceDelta.OPEN | IResourceDelta.SYNC
-				| IResourceDelta.TYPE | IResourceDelta.DESCRIPTION)) != 0) {
-//			Runnable updateRunnable =  new Runnable(){
-//				public void run() {
-//					((StructuredViewer) viewer).update(resource, null);
-//				}
-//			};
-//			runnables.add(updateRunnable);
-			
-			/* support the Closed Projects filter; 
-			 * when a project is closed, it may need to be removed from the view.
-			 */
-			runnables.add(getRefreshRunnable(resource.getParent()));
-		}
-		// Replacing a resource may affect its label and its children
-		if ((changeFlags & IResourceDelta.REPLACED) != 0) {
-			runnables.add(getRefreshRunnable(resource));
-			return;
-		}
-
-
-		// Handle changed children .
-		for (int i = 0; i < affectedChildren.length; i++) {
-			processDelta(affectedChildren[i], runnables);
-		}
-
-		// @issue several problems here:
-		//  - should process removals before additions, to avoid multiple equal
-		// elements in viewer
-		//   - Kim: processing removals before additions was the indirect cause of
-		// 44081 and its varients
-		//   - Nick: no delta should have an add and a remove on the same element,
-		// so processing adds first is probably OK
-		//  - using setRedraw will cause extra flashiness
-		//  - setRedraw is used even for simple changes
-		//  - to avoid seeing a rename in two stages, should turn redraw on/off
-		// around combined removal and addition
-		//   - Kim: done, and only in the case of a rename (both remove and add
-		// changes in one delta).
-
-		IResourceDelta[] addedChildren = delta
-				.getAffectedChildren(IResourceDelta.ADDED);
-		IResourceDelta[] removedChildren = delta
-				.getAffectedChildren(IResourceDelta.REMOVED);
-
-		if (addedChildren.length == 0 && removedChildren.length == 0) {
-			return;
-		}
-
-		final Object[] addedObjects;
-		final Object[] removedObjects;
-
-		// Process additions before removals as to not cause selection
-		// preservation prior to new objects being added
-		// Handle added children. Issue one update for all insertions.
-		int numMovedFrom = 0;
-		int numMovedTo = 0;
-		if (addedChildren.length > 0) {
-			addedObjects = new Object[addedChildren.length];
-			for (int i = 0; i < addedChildren.length; i++) {
-				addedObjects[i] = addedChildren[i].getResource();
-				if ((addedChildren[i].getFlags() & IResourceDelta.MOVED_FROM) != 0) {
-					++numMovedFrom;
-				}
-			}
-		} else {
-			addedObjects = new Object[0];
-		}
-
-		// Handle removed children. Issue one update for all removals.
-		if (removedChildren.length > 0) {
-			removedObjects = new Object[removedChildren.length];
-			for (int i = 0; i < removedChildren.length; i++) {
-				removedObjects[i] = removedChildren[i].getResource();
-				if ((removedChildren[i].getFlags() & IResourceDelta.MOVED_TO) != 0) {
-					++numMovedTo;
-				}
-			}
-		} else {
-			removedObjects = new Object[0];
-		}
-		// heuristic test for items moving within same folder (i.e. renames)
-		final boolean hasRename = numMovedFrom > 0 && numMovedTo > 0;
-		
-		Runnable addAndRemove = new Runnable(){
-			public void run() {
-				if (viewer instanceof AbstractTreeViewer) {
-					AbstractTreeViewer treeViewer = (AbstractTreeViewer) viewer;
-					// Disable redraw until the operation is finished so we don't
-					// get a flash of both the new and old item (in the case of
-					// rename)
-					// Only do this if we're both adding and removing files (the
-					// rename case)
-					if (hasRename) {
-						treeViewer.getControl().setRedraw(false);
-					}
-					try {
-						if (addedObjects.length > 0) {
-							treeViewer.add(resource, addedObjects);
-						}
-						if (removedObjects.length > 0) {
-							treeViewer.remove(removedObjects);
-						}
-					}
-					finally {
-						if (hasRename) {
-							treeViewer.getControl().setRedraw(true);
-						}
-					}
-				} else {
-					((StructuredViewer) viewer).refresh(resource);
-				}
-			}
-		};
-		runnables.add(addAndRemove);
-	}
-	
-	/**
-	 * Return a runnable for refreshing a resource.
-	 * @param resource
-	 * @return Runnable
-	 */
-	private Runnable getRefreshRunnable(final IResource resource) {
-		return new Runnable(){
-			public void run() {
-				((StructuredViewer) viewer).refresh(resource);
-			}
-		};
-	}
-	
-	/**
-	 * Run all of the runnables that are the widget updates
-	 * @param runnables
-	 */
-	private void runUpdates(Collection runnables) {
-		Iterator runnableIterator = runnables.iterator();
-		while(runnableIterator.hasNext()){
-			((Runnable)runnableIterator.next()).run();
-		}
-		
-	}
-	
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionLabelProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionLabelProvider.java
deleted file mode 100644
index 860de43..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionLabelProvider.java
+++ /dev/null
@@ -1,50 +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.navigator.resources.workbench;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonLabelProvider;
-
-/**
- * <p>
- * <strong>EXPERIMENTAL</strong>. This class or interface has been added as
- * part of a work in progress. There is a guarantee neither that this API will
- * work nor that it will remain the same. Please do not use this API without
- * consulting with the Platform/UI team.
- * </p>
- * @since 3.2
- */
-public class ResourceExtensionLabelProvider extends WorkbenchLabelProvider implements ICommonLabelProvider {
- 
- 
-	public void init(ICommonContentExtensionSite aConfig) {
-		//init
-	}
-
- 
-	public String getDescription(Object anElement) {
-
-		if (anElement instanceof IResource) {
-			return ((IResource) anElement).getFullPath().makeRelative().toString();
-		}
-		return null;
-	}
-
-	public void restoreState(IMemento aMemento) { 
-		
-	}
-
-	public void saveState(IMemento aMemento) { 
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionSorter.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionSorter.java
deleted file mode 100644
index a3c7904..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceExtensionSorter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.workbench;
-
-// Sadly, there is nothing that can be done about these warnings, as
-// the INavigatorSorterService has a method that returns a ViewerSorter, so
-// we can't convert this to a ViewerComparator.
-import org.eclipse.ui.views.navigator.ResourceSorter;
-
-/**
- * TODO - This refers to the deprecated ResourceSorter, however we are stuck with this
- * for the time being because the CommonSorter extension point uses a ViewerSorter.
- * We should provide an option for a ViewerComparator and then we can remove this
- * class.
- * 
- * @since 3.2
- * 
- */
-public class ResourceExtensionSorter extends ResourceSorter {
-
-	/**
-	 * Construct a sorter that uses the name of the resource as its sorting
-	 * criteria.
-	 * 
-	 */
-	public ResourceExtensionSorter() {
-		super(ResourceSorter.NAME);
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceLinkHelper.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceLinkHelper.java
deleted file mode 100644
index a374dbd..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/ResourceLinkHelper.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.workbench;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.navigator.ILinkHelper;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * 
- * Links IFileEditorInput to IFiles, and vice versa.
- * 
- * @since 3.2
- *
- */
-public class ResourceLinkHelper implements ILinkHelper {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.ILinkHelper#findSelection(org.eclipse.ui.IEditorInput)
-	 */
-	public IStructuredSelection findSelection(IEditorInput anInput) {
-		IFile file = ResourceUtil.getFile(anInput);
-		if (file != null) {
-			return new StructuredSelection(file);
-		}
-		return StructuredSelection.EMPTY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.ILinkHelper#activateEditor(org.eclipse.ui.IWorkbenchPage, org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void activateEditor(IWorkbenchPage aPage,
-			IStructuredSelection aSelection) {
-		if (aSelection == null || aSelection.isEmpty())
-			return;
-		if (aSelection.getFirstElement() instanceof IFile) {
-			IEditorInput fileInput = new FileEditorInput((IFile) aSelection.getFirstElement());
-			IEditorPart editor = null;
-			if ((editor = aPage.findEditor(fileInput)) != null)
-				aPage.bringToTop(editor);
-		}
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetAdapterFactory.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetAdapterFactory.java
deleted file mode 100644
index baac984..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetAdapterFactory.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.workbench;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.resources.ProjectExplorer;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An property sheet page adapter factory for the Project Explorer.
- *  
- * @since 3.2
- */
-public class TabbedPropertySheetAdapterFactory
-    implements IAdapterFactory {
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object,
-     *      java.lang.Class)
-     */
-    public Object getAdapter(Object adaptableObject, Class adapterType) {
-
-        if (adaptableObject instanceof CommonNavigator) {
-        	if (!((CommonNavigator)adaptableObject).getViewSite().getId().equals(ProjectExplorer.VIEW_ID))
-        		return null;
-        	if (IPropertySheetPage.class == adapterType)
-                return new TabbedPropertySheetPage(
-                    new TabbedPropertySheetProjectExplorerContributor(
-                        (CommonNavigator) adaptableObject));
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-     */
-    public Class[] getAdapterList() {
-        return new Class[] {IPropertySheetPage.class};
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetProjectExplorerContributor.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetProjectExplorerContributor.java
deleted file mode 100644
index 2eb2b3e..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetProjectExplorerContributor.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.navigator.resources.workbench;
-
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-
-/**
- * A tabbed property view contributor for the Project Explorer.
- * 
- * @since 3.2
- */
-public class TabbedPropertySheetProjectExplorerContributor implements
-		ITabbedPropertySheetPageContributor {
-	
-	private final String contributorId;
-	
-	protected TabbedPropertySheetProjectExplorerContributor(CommonNavigator aCommonNavigator) {
-		contributorId = aCommonNavigator.getViewSite().getId();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
-	 */
-	public String getContributorId() { 
-		return contributorId;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetTitleProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetTitleProvider.java
deleted file mode 100644
index 2a7371e..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/resources/workbench/TabbedPropertySheetTitleProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources.workbench;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-import org.eclipse.ui.navigator.INavigatorContentService;
-import org.eclipse.ui.navigator.resources.ProjectExplorer;
-
-/**
- * Defines a label provider for the title bar in the tabbed properties view.
- * 
- * @since 3.2
- */
-public class TabbedPropertySheetTitleProvider extends LabelProvider {
-
-	private ILabelProvider labelProvider;
-
-	private IDescriptionProvider descriptionProvider;
-
-	/**
-	 * Constructor for CommonNavigatorTitleProvider.
-	 */
-	public TabbedPropertySheetTitleProvider() {
-		super();
-		IWorkbenchPart part = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow().getActivePage().findView(ProjectExplorer.VIEW_ID);
-
-		INavigatorContentService contentService = (INavigatorContentService) part
-				.getAdapter(INavigatorContentService.class);
-
-		if (contentService != null) {
-			labelProvider = contentService.createCommonLabelProvider();
-			descriptionProvider = contentService
-					.createCommonDescriptionProvider();
-		} else {
-			WorkbenchNavigatorPlugin.log(
-					"Could not acquire INavigatorContentService from part (\"" //$NON-NLS-1$
-							+ part.getTitle() + "\").", null); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object object) {
-		return labelProvider != null ? labelProvider.getImage(object) : null;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object object) {
-		return descriptionProvider != null ? descriptionProvider
-				.getDescription(object) : null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetSorter.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetSorter.java
deleted file mode 100644
index 8f0417e..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetSorter.java
+++ /dev/null
@@ -1,37 +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.navigator.workingsets;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * @since 3.2
- *
- */
-public class WorkingSetSorter extends ViewerSorter {
-  
-	public int compare(Viewer viewer, Object e1, Object e2) {
-		if(viewer instanceof StructuredViewer) {			
-			 ILabelProvider labelProvider = (ILabelProvider) ((StructuredViewer)viewer).getLabelProvider();
-			 String text1 = labelProvider.getText(e1);
-			 String text2 = labelProvider.getText(e2);
-			 if(text1 != null) {			
-				 return text1.compareTo(text2);
-			 }
-		}
-		return -1;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsContentProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsContentProvider.java
deleted file mode 100644
index 2dc235c..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsContentProvider.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.workingsets;
-
-import java.util.Map;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.Viewer;
-
-import org.eclipse.ui.IAggregateWorkingSet;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.internal.navigator.NavigatorContentService;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonContentExtensionSite;
-import org.eclipse.ui.navigator.ICommonContentProvider;
-import org.eclipse.ui.navigator.IExtensionStateModel;
-import org.eclipse.ui.navigator.resources.ProjectExplorer;
-
-/**
- * Provides children and parents for IWorkingSets.
- * 
- * @since 3.2.1
- * 
- */
-public class WorkingSetsContentProvider implements ICommonContentProvider {
-
-	/**
-	 * The extension id for the WorkingSet extension.
-	 */
-	public static final String EXTENSION_ID = "org.eclipse.ui.navigator.resources.workingSets"; //$NON-NLS-1$
-
-	/**
-	 * A key used by the Extension State Model to keep track of whether top level Working Sets or
-	 * Projects should be shown in the viewer.
-	 */
-	public static final String SHOW_TOP_LEVEL_WORKING_SETS = EXTENSION_ID + ".showTopLevelWorkingSets"; //$NON-NLS-1$
-
-
-	private static final Object[] NO_CHILDREN = new Object[0];
-
-	private WorkingSetHelper helper;
-	private IAggregateWorkingSet workingSetRoot;
-	private IExtensionStateModel extensionStateModel;
-	private CommonNavigator projectExplorer;
-	private CommonViewer viewer;
-	
-	private IPropertyChangeListener rootModeListener = new IPropertyChangeListener() {
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			if(SHOW_TOP_LEVEL_WORKING_SETS.equals(event.getProperty())) {
-				updateRootMode();
-			}
-		}
-
-	};
-	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.ICommonContentProvider#init(org.eclipse.ui.navigator.ICommonContentExtensionSite)
-	 */
-	public void init(ICommonContentExtensionSite aConfig) {
-		NavigatorContentService cs = (NavigatorContentService) aConfig.getService();
-		viewer = (CommonViewer) cs.getViewer();
-		projectExplorer = viewer.getCommonNavigator();
-		
-		extensionStateModel = aConfig.getExtensionStateModel();
-		extensionStateModel.addPropertyChangeListener(rootModeListener);
-		updateRootMode();
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.IMementoAware#restoreState(org.eclipse.ui.IMemento)
-	 */
-	public void restoreState(IMemento aMemento) {
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.IMementoAware#saveState(org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IMemento aMemento) {
-		
-	}
-
-	public Object[] getChildren(Object parentElement) {
-		if (parentElement instanceof IWorkingSet) {
-			IWorkingSet workingSet = (IWorkingSet) parentElement;
-			if (workingSet.isAggregateWorkingSet()) {
-				switch (projectExplorer.getRootMode()) {
-					case ProjectExplorer.WORKING_SETS :
-						return ((IAggregateWorkingSet) workingSet).getComponents();
-					case ProjectExplorer.PROJECTS :
-						return getWorkingSetElements(workingSet);
-				}
-			}
-			return getWorkingSetElements(workingSet);
-		}
-		return NO_CHILDREN;
-	}
-
-	private IAdaptable[] getWorkingSetElements(IWorkingSet workingSet) {
-		IAdaptable[] children = workingSet.getElements();
-		for (int i = 0; i < children.length; i++) {
-			Object resource = children[i].getAdapter(IResource.class);
-			if (resource instanceof IProject)
-				children[i] = (IProject) resource;
-		}
-		return children;
-	}
-
-	public Object getParent(Object element) {
-		if (helper != null)
-			return helper.getParent(element);
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		return true;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	public void dispose() {
-		helper = null;
-		extensionStateModel.removePropertyChangeListener(rootModeListener);
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (newInput instanceof IWorkingSet) {
-			IWorkingSet rootSet = (IWorkingSet) newInput;
-			helper = new WorkingSetHelper(rootSet);
-		}
-	}
- 
-	private void updateRootMode() {
-		if( extensionStateModel.getBooleanProperty(SHOW_TOP_LEVEL_WORKING_SETS) )
-			projectExplorer.setRootMode(ProjectExplorer.WORKING_SETS);
-		else
-			projectExplorer.setRootMode(ProjectExplorer.PROJECTS);
-	}
-
-	protected class WorkingSetHelper {
-
-		private final IWorkingSet workingSet;
-		private final Map parents = new WeakHashMap();
-
-		/**
-		 * Create a Helper class for the given working set
-		 * 
-		 * @param set
-		 *            The set to use to build the item to parent map.
-		 */
-		public WorkingSetHelper(IWorkingSet set) {
-			workingSet = set;
-
-			if (workingSet.isAggregateWorkingSet()) {
-				IAggregateWorkingSet aggregateSet = (IAggregateWorkingSet) workingSet;
-				if (workingSetRoot == null)
-					workingSetRoot = aggregateSet;
-
-				IWorkingSet[] components = aggregateSet.getComponents();
-
-				for (int componentIndex = 0; componentIndex < components.length; componentIndex++) {
-					IAdaptable[] elements = getWorkingSetElements(components[componentIndex]);
-					for (int elementsIndex = 0; elementsIndex < elements.length; elementsIndex++) {
-						parents.put(elements[elementsIndex], components[componentIndex]);
-					}
-					parents.put(components[componentIndex], aggregateSet);
-
-				}
-			} else {
-				IAdaptable[] elements = getWorkingSetElements(workingSet);
-				for (int elementsIndex = 0; elementsIndex < elements.length; elementsIndex++) {
-					parents.put(elements[elementsIndex], workingSet);
-				}
-			}
-		}
-
-		/**
-		 * 
-		 * @param element
-		 *            An element from the viewer
-		 * @return The parent associated with the element, if any.
-		 */
-		public Object getParent(Object element) {
-			if (element instanceof IWorkingSet && element != workingSetRoot)
-				return workingSetRoot;
-			return parents.get(element);
-		}
-	}
-	
-
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java
deleted file mode 100644
index 6da3a8b..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/internal/navigator/workingsets/WorkingSetsLabelProvider.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.workingsets;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * Provides a text label and icon for Working Sets.
- * 
- */
-public class WorkingSetsLabelProvider implements ILabelProvider {
-
-	private WorkbenchLabelProvider labelProvider = new WorkbenchLabelProvider();
-
-	public Image getImage(Object element) {
-		if (element instanceof IWorkingSet)
-			return labelProvider.getImage(element);
-		return null;
-	}
-
-	public String getText(Object element) {
-		if (element instanceof IWorkingSet)
-			return ((IWorkingSet) element).getLabel();
-		return null;
-	}
-
-	public void addListener(ILabelProviderListener listener) {
-	}
-
-	public void dispose() {
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/GoIntoActionProvider.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/GoIntoActionProvider.java
deleted file mode 100644
index 63cb38e..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/GoIntoActionProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Oakland Software (Francis Upton - francisu@ieee.org) 
- *        bug 214271 Undo/redo not enabled if nothing selected
- ******************************************************************************/
-
-package org.eclipse.ui.navigator.resources;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.internal.navigator.framelist.GoIntoAction;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.CommonViewer;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-
-/**
- * Provides the Go Into action for the {@link ProjectExplorer}
- * 
- * @since 3.4
- * 
- */
-public class GoIntoActionProvider extends CommonActionProvider {
-
-	private GoIntoAction goIntoAction;
-
-	public void init(ICommonActionExtensionSite anActionSite) {
-		anActionSite.getViewSite().getShell();
-		CommonViewer viewer = (CommonViewer) anActionSite.getStructuredViewer();
-		goIntoAction = new GoIntoAction(viewer.getFrameList());
-	}
-
-	public void dispose() {
-		goIntoAction.dispose();
-	}
-
-	public void fillActionBars(IActionBars actionBars) {
-		actionBars.setGlobalActionHandler(IWorkbenchActionConstants.GO_INTO, goIntoAction);
-	}
-
-	public void fillContextMenu(IMenuManager menu) {
-		menu.appendToGroup("group.new", goIntoAction); //$NON-NLS-1$
-	}
-
-	public void updateActionBars() {
-		goIntoAction.update();
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ProjectExplorer.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ProjectExplorer.java
deleted file mode 100644
index 6490107..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ProjectExplorer.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IAggregateWorkingSet;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.navigator.framelist.Frame;
-import org.eclipse.ui.internal.navigator.framelist.FrameList;
-import org.eclipse.ui.internal.navigator.framelist.TreeFrame;
-import org.eclipse.ui.internal.navigator.resources.ResourceToItemsMapper;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.INavigatorContentService;
-
-/**
- * 
- * @see CommonNavigator
- * @see INavigatorContentService
- * @since 3.2
- * 
- */
-public final class ProjectExplorer extends CommonNavigator {
-
-	/**
-	 * Provides a constant for the standard instance of the Common Navigator.
-	 * 
-	 * @see PlatformUI#getWorkbench()
-	 * @see IWorkbench#getActiveWorkbenchWindow()
-	 * @see IWorkbenchWindow#getActivePage()
-	 * 
-	 * @see IWorkbenchPage#findView(String)
-	 * @see IWorkbenchPage#findViewReference(String)
-	 */
-	public static final String VIEW_ID = IPageLayout.ID_PROJECT_EXPLORER;
-
-	/**
-	 * @since 3.4
-	 */
-	public static final int WORKING_SETS = 0;
-
-	/**
-	 * @since 3.4
-	 */
-	public static final int PROJECTS = 1;
-
-	private int rootMode;
-
-	/**
-	 * Used only in the case of top level = PROJECTS and only when some
-	 * working sets are selected. 
-	 */
-	private String workingSetLabel;
-
-	public void createPartControl(Composite aParent) {
-		super.createPartControl(aParent);
-		
-		if (!false)
-			getCommonViewer().setMapper(new ResourceToItemsMapper(getCommonViewer()));
-	}	
-	
-	/**
-	 * The superclass does not deal with the content description, handle it
-	 * here.
-	 * 
-	 * @noreference
-	 */
-	public void updateTitle() {
-		super.updateTitle();
-		Object input = getCommonViewer().getInput();
-
-		if (input == null || input instanceof IAggregateWorkingSet) {
-			setContentDescription(""); //$NON-NLS-1$
-			return;
-		}
-
-		if (!(input instanceof IResource)) {
-			if (input instanceof IAdaptable) {
-				IWorkbenchAdapter wbadapter = (IWorkbenchAdapter) ((IAdaptable) input)
-						.getAdapter(IWorkbenchAdapter.class);
-				if (wbadapter != null) {
-					setContentDescription(wbadapter.getLabel(input));
-					return;
-				}
-			}
-			setContentDescription(input.toString());
-			return;
-		}
-
-		IResource res = (IResource) input;
-		setContentDescription(res.getName());
-	}
-
-	/**
-	 * Returns the tool tip text for the given element.
-	 * 
-	 * @param element
-	 *            the element
-	 * @return the tooltip
-	 * @noreference
-	 */
-	public String getFrameToolTipText(Object element) {
-		String result;
-		if (!(element instanceof IResource)) {
-			if (element instanceof IAggregateWorkingSet) {
-				result = WorkbenchNavigatorMessages.ProjectExplorerPart_workingSetModel;
-			} else if (element instanceof IWorkingSet) {
-				result = ((IWorkingSet) element).getLabel();
-			} else {
-				result = super.getFrameToolTipText(element);
-			}
-		} else {
-			IPath path = ((IResource) element).getFullPath();
-			if (path.isRoot()) {
-				result = WorkbenchNavigatorMessages.ProjectExplorerPart_workspace;
-			} else {
-				result = path.makeRelative().toString();
-			}
-		}
-
-		if (rootMode == PROJECTS) {
-			if (workingSetLabel == null)
-				return result;
-			if (result.length() == 0)
-				return NLS.bind(WorkbenchNavigatorMessages.ProjectExplorer_toolTip,
-						new String[] { workingSetLabel });
-			return NLS.bind(WorkbenchNavigatorMessages.ProjectExplorer_toolTip2, new String[] {
-					result, workingSetLabel });
-		}
-
-		// Working set mode. During initialization element and viewer can
-		// be null.
-		if (element != null && !(element instanceof IWorkingSet)
-				&& getCommonViewer() != null) {
-			FrameList frameList = getCommonViewer().getFrameList();
-			// Happens during initialization
-			if (frameList == null)
-				return result;
-			int index = frameList.getCurrentIndex();
-			IWorkingSet ws = null;
-			while (index >= 0) {
-				Frame frame = frameList.getFrame(index);
-				if (frame instanceof TreeFrame) {
-					Object input = ((TreeFrame) frame).getInput();
-					if (input instanceof IWorkingSet && !(input instanceof IAggregateWorkingSet)) {
-						ws = (IWorkingSet) input;
-						break;
-					}
-				}
-				index--;
-			}
-			if (ws != null) {
-				return NLS.bind(WorkbenchNavigatorMessages.ProjectExplorer_toolTip3,
-						new String[] { ws.getLabel(), result });
-			}
-			return result;
-		}
-		return result;
-
-	}
-
-	/**
-	 * @param mode
-	 * @noreference This method is not intended to be referenced by clients.
-	 * @since 3.4
-	 */
-	public void setRootMode(int mode) {
-		rootMode = mode;
-	}
-
-	/**
-	 * @return the root mode
-	 * @noreference This method is not intended to be referenced by clients.
-	 * @since 3.4
-	 */
-	public int getRootMode() {
-		return rootMode;
-	}
-
-	/**
-	 * @param label
-	 * @noreference This method is not intended to be referenced by clients.
-	 * @since 3.4
-	 */
-	public void setWorkingSetLabel(String label) {
-		workingSetLabel = label;
-	}
-
-	/**
-	 * @return the working set label
-	 * @noreference This method is not intended to be referenced by clients.
-	 * @since 3.4
-	 */
-	public String getWorkingSetLabel() {
-		return workingSetLabel;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDragAdapterAssistant.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDragAdapterAssistant.java
deleted file mode 100644
index 363946f..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDragAdapterAssistant.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Anton Leherbauer (Wind River Systems) - http://bugs.eclipse.org/247294
- ******************************************************************************/
-
-package org.eclipse.ui.navigator.resources;
-
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.ui.internal.navigator.Policy;
-import org.eclipse.ui.navigator.CommonDragAdapterAssistant;
-import org.eclipse.ui.navigator.INavigatorDnDService;
-import org.eclipse.ui.part.ResourceTransfer;
-
-/**
- * Clients may reference this class in the <b>dragAssistant</b> element of a
- * <b>org.eclipse.ui.navigator.viewer</b> extension point.
- * 
- * <p>
- * Clients may not extend or instantiate this class for any purpose other than
- * {@link INavigatorDnDService#bindDragAssistant(CommonDragAdapterAssistant)}.
- * Clients may have no direct dependencies on the contract of this class.
- * </p>
- * 
- * @since 3.2
- * @noextend This class is not intended to be subclassed by clients.
- * 
- */
-public class ResourceDragAdapterAssistant extends
-		CommonDragAdapterAssistant {
-
-	private static final Transfer[] SUPPORTED_TRANSFERS = new Transfer[] {
-			ResourceTransfer.getInstance(),
-			FileTransfer.getInstance() };
-
-	private static final Class IRESOURCE_TYPE = IResource.class;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDragAdapterAssistant#getSupportedTransferTypes()
-	 */
-	public Transfer[] getSupportedTransferTypes() {
-		return SUPPORTED_TRANSFERS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDragAdapterAssistant#setDragData(org.eclipse.swt.dnd.DragSourceEvent,
-	 *      org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public boolean setDragData(DragSourceEvent anEvent,
-			IStructuredSelection aSelection) {
-
-		IResource[] resources = getSelectedResources(aSelection);
-		if (resources.length > 0) {
-			if (ResourceTransfer.getInstance().isSupportedType(anEvent.dataType)) {
-				anEvent.data = resources;
-				if (Policy.DEBUG_DND) {
-					System.out
-							.println("ResourceDragAdapterAssistant.dragSetData set ResourceTransfer"); //$NON-NLS-1$
-				}
-				return true;
-			} 
-				
-			if (FileTransfer.getInstance().isSupportedType(anEvent.dataType)) {
-				// Get the path of each file and set as the drag data
-				final int length = resources.length;
-				int actualLength = 0;
-				String[] fileNames = new String[length];
-				for (int i = 0; i < length; i++) {
-					IPath location = resources[i].getLocation();
-					// location may be null. See bug 29491.
-					if (location != null) {
-						fileNames[actualLength++] = location.toOSString();
-					}
-				}
-				if (actualLength > 0) { 
-					// was one or more of the locations null?
-					if (actualLength < length) {
-						String[] tempFileNames = fileNames;
-						fileNames = new String[actualLength];
-						for (int i = 0; i < actualLength; i++)
-							fileNames[i] = tempFileNames[i];
-					}
-					anEvent.data = fileNames;
-		
-					if (Policy.DEBUG_DND)
-						System.out
-								.println("ResourceDragAdapterAssistant.dragSetData set FileTransfer"); //$NON-NLS-1$
-					return true;
-				}
-			}
-		}
-		return false;
-
-	}
-
-	private IResource[] getSelectedResources(IStructuredSelection aSelection) {
-		Set resources = new LinkedHashSet();
-		IResource resource = null;
-		for (Iterator iter = aSelection.iterator(); iter.hasNext();) {
-			Object selected = iter.next();
-			resource = adaptToResource(selected);
-			if (resource != null) {
-				resources.add(resource);
-		}
-		}
-		return (IResource[]) resources.toArray(new IResource[resources.size()]);
-	}
-
-	private IResource adaptToResource(Object selected) {
-		IResource resource;
-		if (selected instanceof IResource) {
-			resource = (IResource) selected;
-		} else if (selected instanceof IAdaptable) {
-			resource = (IResource) ((IAdaptable) selected)
-					.getAdapter(IRESOURCE_TYPE);
-		} else {
-			resource = (IResource) Platform.getAdapterManager().getAdapter(
-					selected, IRESOURCE_TYPE);
-		}
-		return resource;
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java
deleted file mode 100644
index 7737392..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/ResourceDropAdapterAssistant.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.navigator.resources;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CopyFilesAndFoldersOperation;
-import org.eclipse.ui.actions.MoveFilesAndFoldersOperation;
-import org.eclipse.ui.actions.ReadOnlyStateChecker;
-import org.eclipse.ui.internal.navigator.Policy;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages;
-import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin;
-import org.eclipse.ui.navigator.CommonDropAdapter;
-import org.eclipse.ui.navigator.CommonDropAdapterAssistant;
-import org.eclipse.ui.part.ResourceTransfer;
-
-/**
- *  
- * Clients may reference this class in the <b>dropAssistant</b> element of a
- * <b>org.eclipse.ui.navigator.navigatorContent</b> extension point.
- * 
- * <p>
- * Clients may not extend or instantiate this class for any purpose.
- * Clients may have no direct dependencies on the contract of this class.
- * </p>
- * 
- * @since 3.2
- * 
- */ 
-public class ResourceDropAdapterAssistant extends CommonDropAdapterAssistant {
-
-	private static final IResource[] NO_RESOURCES = new IResource[0];
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#isSupportedType(org.eclipse.swt.dnd.TransferData)
-	 */
-	public boolean isSupportedType(TransferData aTransferType) {
-		return super.isSupportedType(aTransferType)
-				|| FileTransfer.getInstance().isSupportedType(aTransferType);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#validateDrop(java.lang.Object,
-	 *      int, org.eclipse.swt.dnd.TransferData)
-	 */
-	public IStatus validateDrop(Object target, int aDropOperation,
-			TransferData transferType) {
-
-		if (!(target instanceof IResource)) {
-			return WorkbenchNavigatorPlugin
-					.createStatus(
-							IStatus.INFO,
-							0,
-							WorkbenchNavigatorMessages.DropAdapter_targetMustBeResource,
-							null);
-		}
-		IResource resource = (IResource) target;
-		if (!resource.isAccessible()) {
-			return WorkbenchNavigatorPlugin
-					.createErrorStatus(
-							0,
-							WorkbenchNavigatorMessages.DropAdapter_canNotDropIntoClosedProject,
-							null);
-		}
-		IContainer destination = getActualTarget(resource);
-		if (destination.getType() == IResource.ROOT) {
-			return WorkbenchNavigatorPlugin
-					.createErrorStatus(
-							0,
-							WorkbenchNavigatorMessages.DropAdapter_resourcesCanNotBeSiblings,
-							null);
-		}
-		String message = null;
-		// drag within Eclipse?
-		if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
-			IResource[] selectedResources = getSelectedResources();
-			
-			boolean bProjectDrop = false;
-			for (int iRes = 0; iRes < selectedResources.length; iRes++) {
-				IResource res = selectedResources[iRes];
-				if(res instanceof IProject) {
-					bProjectDrop = true;
-				}
-			}
-			if(bProjectDrop) {
-				// drop of projects not supported on other IResources
-				// "Path for project must have only one segment."
-				message = WorkbenchNavigatorMessages.DropAdapter_canNotDropProjectIntoProject;
-			} else {
-				if (selectedResources.length == 0) {
-					message = WorkbenchNavigatorMessages.DropAdapter_dropOperationErrorOther;
-				} else {
-					CopyFilesAndFoldersOperation operation;
-					if (aDropOperation == DND.DROP_COPY) {
-						if (Policy.DEBUG_DND) {
-							System.out
-									.println("ResourceDropAdapterAssistant.validateDrop validating COPY."); //$NON-NLS-1$
-						}
-	
-						operation = new CopyFilesAndFoldersOperation(getShell());
-					} else {
-						if (Policy.DEBUG_DND) {
-							System.out
-									.println("ResourceDropAdapterAssistant.validateDrop validating MOVE."); //$NON-NLS-1$
-						}
-						operation = new MoveFilesAndFoldersOperation(getShell());
-					}
-					message = operation.validateDestination(destination,
-							selectedResources);
-				}
-			}
-		} // file import?
-		else if (FileTransfer.getInstance().isSupportedType(transferType)) {
-			String[] sourceNames = (String[]) FileTransfer.getInstance()
-					.nativeToJava(transferType);
-			if (sourceNames == null) {
-				// source names will be null on Linux. Use empty names to do
-				// destination validation.
-				// Fixes bug 29778
-				sourceNames = new String[0];
-			}
-			CopyFilesAndFoldersOperation copyOperation = new CopyFilesAndFoldersOperation(
-					getShell());
-			message = copyOperation.validateImportDestination(destination,
-					sourceNames);
-		}
-		if (message != null) {
-			return WorkbenchNavigatorPlugin.createErrorStatus(0, message, null);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handleDrop(CommonDropAdapter,
-	 *      DropTargetEvent, Object)
-	 */
-	public IStatus handleDrop(CommonDropAdapter aDropAdapter,
-			DropTargetEvent aDropTargetEvent, Object aTarget) {
-
-		if (Policy.DEBUG_DND) {
-			System.out
-					.println("ResourceDropAdapterAssistant.handleDrop (begin)"); //$NON-NLS-1$
-		}
-
-		// alwaysOverwrite = false;
-		if (aDropAdapter.getCurrentTarget() == null
-				|| aDropTargetEvent.data == null) {
-			return Status.CANCEL_STATUS;
-		}
-		IStatus status = null;
-		IResource[] resources = null;
-		TransferData currentTransfer = aDropAdapter.getCurrentTransfer();
-		if (LocalSelectionTransfer.getTransfer().isSupportedType(
-				currentTransfer)) {
-			resources = getSelectedResources();
-			aDropTargetEvent.detail = DND.DROP_NONE;
-		} else if (ResourceTransfer.getInstance().isSupportedType(
-				currentTransfer)) {
-			resources = (IResource[]) aDropTargetEvent.data;
-		}
-
-		if (FileTransfer.getInstance().isSupportedType(currentTransfer)) {
-			status = performFileDrop(aDropAdapter, aDropTargetEvent.data);
-		} else if (resources != null && resources.length > 0) {
-			if (aDropAdapter.getCurrentOperation() == DND.DROP_COPY) {
-				if (Policy.DEBUG_DND) {
-					System.out
-							.println("ResourceDropAdapterAssistant.handleDrop executing COPY."); //$NON-NLS-1$
-				}
-				status = performResourceCopy(aDropAdapter, getShell(),
-						resources);
-			} else {
-				if (Policy.DEBUG_DND) {
-					System.out
-							.println("ResourceDropAdapterAssistant.handleDrop executing MOVE."); //$NON-NLS-1$
-				}
-
-				status = performResourceMove(aDropAdapter, resources);
-			}
-		}
-		openError(status);
-		IContainer target = getActualTarget((IResource) aDropAdapter
-				.getCurrentTarget());
-		if (target != null && target.isAccessible()) {
-			try {
-				target.refreshLocal(IResource.DEPTH_ONE, null);
-			} catch (CoreException e) {
-			}
-		}
-		return status;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#validatePluginTransferDrop(org.eclipse.jface.viewers.IStructuredSelection,
-	 *      java.lang.Object)
-	 */
-	public IStatus validatePluginTransferDrop(
-			IStructuredSelection aDragSelection, Object aDropTarget) {
-		if (!(aDropTarget instanceof IResource)) {
-			return WorkbenchNavigatorPlugin
-					.createStatus(
-							IStatus.INFO,
-							0,
-							WorkbenchNavigatorMessages.DropAdapter_targetMustBeResource,
-							null);
-		}
-		IResource resource = (IResource) aDropTarget;
-		if (!resource.isAccessible()) {
-			return WorkbenchNavigatorPlugin
-					.createErrorStatus(
-							0,
-							WorkbenchNavigatorMessages.DropAdapter_canNotDropIntoClosedProject,
-							null);
-		}
-		IContainer destination = getActualTarget(resource);
-		if (destination.getType() == IResource.ROOT) {
-			return WorkbenchNavigatorPlugin
-					.createErrorStatus(
-							0,
-							WorkbenchNavigatorMessages.DropAdapter_resourcesCanNotBeSiblings,
-							null);
-		}
-
-		IResource[] selectedResources = getSelectedResources(aDragSelection);
-
-		String message = null;
-		if (selectedResources.length == 0) {
-			message = WorkbenchNavigatorMessages.DropAdapter_dropOperationErrorOther;
-		} else {
-			MoveFilesAndFoldersOperation operation;
-
-			operation = new MoveFilesAndFoldersOperation(getShell());
-			message = operation.validateDestination(destination,
-					selectedResources);
-		}
-		if (message != null) {
-			return WorkbenchNavigatorPlugin.createErrorStatus(0, message, null);
-		}
-		return Status.OK_STATUS;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.CommonDropAdapterAssistant#handlePluginTransferDrop(org.eclipse.jface.viewers.IStructuredSelection, java.lang.Object)
-	 */
-	public IStatus handlePluginTransferDrop(IStructuredSelection aDragSelection, Object aDropTarget) {
-
-		IContainer target = getActualTarget((IResource) aDropTarget);
-		IResource[] resources = getSelectedResources(aDragSelection);
-		
-		MoveFilesAndFoldersOperation operation = new MoveFilesAndFoldersOperation(
-				 getShell());
-		operation.copyResources(resources, target);
-
-		if (target != null && target.isAccessible()) {
-			try {
-				target.refreshLocal(IResource.DEPTH_ONE, null);
-			} catch (CoreException e) {
-			}
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Returns the actual target of the drop, given the resource under the
-	 * mouse. If the mouse target is a file, then the drop actually occurs in
-	 * its parent. If the drop location is before or after the mouse target and
-	 * feedback is enabled, the target is also the parent.
-	 */
-	private IContainer getActualTarget(IResource mouseTarget) {
-
-		/* if cursor is on a file, return the parent */
-		if (mouseTarget.getType() == IResource.FILE) {
-			return mouseTarget.getParent();
-		}
-		/* otherwise the mouseTarget is the real target */
-		return (IContainer) mouseTarget;
-	}
-
-	/**
-	 * Returns the resource selection from the LocalSelectionTransfer.
-	 * 
-	 * @return the resource selection from the LocalSelectionTransfer
-	 */
-	private IResource[] getSelectedResources() {
-
-		ISelection selection = LocalSelectionTransfer.getTransfer()
-				.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			return getSelectedResources((IStructuredSelection)selection);
-		} 
-		return NO_RESOURCES;
-	}
-
-	/**
-	 * Returns the resource selection from the LocalSelectionTransfer.
-	 * 
-	 * @return the resource selection from the LocalSelectionTransfer
-	 */
-	private IResource[] getSelectedResources(IStructuredSelection selection) {
-		ArrayList selectedResources = new ArrayList();
-
-		for (Iterator i = selection.iterator(); i.hasNext();) {
-			Object o = i.next();
-			if (o instanceof IResource) {
-				selectedResources.add(o);
-			} else if (o instanceof IAdaptable) {
-				IAdaptable a = (IAdaptable) o;
-				IResource r = (IResource) a.getAdapter(IResource.class);
-				if (r != null) {
-					selectedResources.add(r);
-				}
-			}
-		}
-		return (IResource[]) selectedResources
-				.toArray(new IResource[selectedResources.size()]);
-	}
-
-	/**
-	 * Performs a resource copy
-	 */
-	private IStatus performResourceCopy(CommonDropAdapter dropAdapter,
-			Shell shell, IResource[] sources) {
-		MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1,
-				WorkbenchNavigatorMessages.DropAdapter_problemsMoving, null);
-		mergeStatus(problems, validateTarget(dropAdapter.getCurrentTarget(),
-				dropAdapter.getCurrentTransfer(), dropAdapter
-						.getCurrentOperation()));
-
-		IContainer target = getActualTarget((IResource) dropAdapter
-				.getCurrentTarget());
-		CopyFilesAndFoldersOperation operation = new CopyFilesAndFoldersOperation(
-				shell);
-		operation.copyResources(sources, target);
-
-		return problems;
-	}
-
-	/**
-	 * Performs a resource move
-	 */
-	private IStatus performResourceMove(CommonDropAdapter dropAdapter,
-			IResource[] sources) {
-		MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1,
-				WorkbenchNavigatorMessages.DropAdapter_problemsMoving, null);
-		mergeStatus(problems, validateTarget(dropAdapter.getCurrentTarget(),
-				dropAdapter.getCurrentTransfer(), dropAdapter
-						.getCurrentOperation()));
-
-		IContainer target = getActualTarget((IResource) dropAdapter
-				.getCurrentTarget());
-		ReadOnlyStateChecker checker = new ReadOnlyStateChecker(getShell(),
-				WorkbenchNavigatorMessages.MoveResourceAction_title,
-				WorkbenchNavigatorMessages.MoveResourceAction_checkMoveMessage);
-		sources = checker.checkReadOnlyResources(sources);
-		MoveFilesAndFoldersOperation operation = new MoveFilesAndFoldersOperation(
-				getShell());
-		operation.copyResources(sources, target);
-
-		return problems;
-	}
-
-	/**
-	 * Performs a drop using the FileTransfer transfer type.
-	 */
-	private IStatus performFileDrop(CommonDropAdapter anAdapter, Object data) {
-		MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 0,
-				WorkbenchNavigatorMessages.DropAdapter_problemImporting, null);
-		mergeStatus(problems,
-				validateTarget(anAdapter.getCurrentTarget(), anAdapter
-						.getCurrentTransfer(), anAdapter.getCurrentOperation()));
-
-		final IContainer target = getActualTarget((IResource) anAdapter
-				.getCurrentTarget());
-		final String[] names = (String[]) data;
-		// Run the import operation asynchronously.
-		// Otherwise the drag source (e.g., Windows Explorer) will be blocked
-		// while the operation executes. Fixes bug 16478.
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				getShell().forceActive();
-				CopyFilesAndFoldersOperation operation = new CopyFilesAndFoldersOperation(
-						getShell());
-				operation.copyFiles(names, target);
-			}
-		});
-		return problems;
-	}
-
-	/**
-	 * Ensures that the drop target meets certain criteria
-	 */
-	private IStatus validateTarget(Object target, TransferData transferType,
-			int dropOperation) {
-		if (!(target instanceof IResource)) {
-			return WorkbenchNavigatorPlugin
-					.createInfoStatus(WorkbenchNavigatorMessages.DropAdapter_targetMustBeResource);
-		}
-		IResource resource = (IResource) target;
-		if (!resource.isAccessible()) {
-			return WorkbenchNavigatorPlugin
-					.createErrorStatus(WorkbenchNavigatorMessages.DropAdapter_canNotDropIntoClosedProject);
-		}
-		IContainer destination = getActualTarget(resource);
-		if (destination.getType() == IResource.ROOT) {
-			return WorkbenchNavigatorPlugin
-					.createErrorStatus(WorkbenchNavigatorMessages.DropAdapter_resourcesCanNotBeSiblings);
-		}
-		String message = null;
-		// drag within Eclipse?
-		if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType)) {
-			IResource[] selectedResources = getSelectedResources();
-
-			if (selectedResources.length == 0) {
-				message = WorkbenchNavigatorMessages.DropAdapter_dropOperationErrorOther;
-			} else {
-				CopyFilesAndFoldersOperation operation;
-				if (dropOperation == DND.DROP_COPY) {
-					operation = new CopyFilesAndFoldersOperation(getShell());
-				} else {
-					operation = new MoveFilesAndFoldersOperation(getShell());
-				}
-				message = operation.validateDestination(destination,
-						selectedResources);
-			}
-		} // file import?
-		else if (FileTransfer.getInstance().isSupportedType(transferType)) {
-			String[] sourceNames = (String[]) FileTransfer.getInstance()
-					.nativeToJava(transferType);
-			if (sourceNames == null) {
-				// source names will be null on Linux. Use empty names to do
-				// destination validation.
-				// Fixes bug 29778
-				sourceNames = new String[0];
-			}
-			CopyFilesAndFoldersOperation copyOperation = new CopyFilesAndFoldersOperation(
-					getShell());
-			message = copyOperation.validateImportDestination(destination,
-					sourceNames);
-		}
-		if (message != null) {
-			return WorkbenchNavigatorPlugin.createErrorStatus(message);
-		}
-		return Status.OK_STATUS;
-	}
-
-	/**
-	 * Adds the given status to the list of problems. Discards OK statuses. If
-	 * the status is a multi-status, only its children are added.
-	 */
-	private void mergeStatus(MultiStatus status, IStatus toMerge) {
-		if (!toMerge.isOK()) {
-			status.merge(toMerge);
-		}
-	}
-
-	/**
-	 * Opens an error dialog if necessary. Takes care of complex rules necessary
-	 * for making the error dialog look nice.
-	 */
-	private void openError(IStatus status) {
-		if (status == null) {
-			return;
-		}
-
-		String genericTitle = WorkbenchNavigatorMessages.DropAdapter_title;
-		int codes = IStatus.ERROR | IStatus.WARNING;
-
-		// simple case: one error, not a multistatus
-		if (!status.isMultiStatus()) {
-			ErrorDialog
-					.openError(getShell(), genericTitle, null, status, codes);
-			return;
-		}
-
-		// one error, single child of multistatus
-		IStatus[] children = status.getChildren();
-		if (children.length == 1) {
-			ErrorDialog.openError(getShell(), status.getMessage(), null,
-					children[0], codes);
-			return;
-		}
-		// several problems
-		ErrorDialog.openError(getShell(), genericTitle, null, status, codes);
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/package.html b/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/package.html
deleted file mode 100644
index 97fe4e7..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/src/org/eclipse/ui/navigator/resources/package.html
+++ /dev/null
@@ -1,11 +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">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides reusable components for clients that need to expand on the capabilities
-provided by the reference Common Navigator Resources extension.
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.navigator.resources/test.txt b/bundles/org.eclipse.ui.navigator.resources/test.txt
deleted file mode 100644
index 30d74d2..0000000
--- a/bundles/org.eclipse.ui.navigator.resources/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-test
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.presentations.r21/.classpath b/bundles/org.eclipse.ui.presentations.r21/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.presentations.r21/.cvsignore b/bundles/org.eclipse.ui.presentations.r21/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.presentations.r21/.project b/bundles/org.eclipse.ui.presentations.r21/.project
deleted file mode 100644
index 5da924d..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.project
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.presentations.r21</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.ui</project>
-	</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0db0d73..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,90 +0,0 @@
-#Mon Oct 29 10:37:38 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-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.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 29e9857..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Oct 29 10:37:42 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 77b65f8..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:11:51 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.presentations.r21/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.presentations.r21/META-INF/MANIFEST.MF
deleted file mode 100644
index b744e77..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ui.presentations.r21; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.ui.internal.presentations.r21.R21PresentationPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.presentations;x-internal:=true,
- org.eclipse.ui.internal.presentations.r21;x-internal:=true,
- org.eclipse.ui.internal.presentations.r21.widgets;x-internal:=true
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.2.0,4.0.0)"
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.ui.presentations.r21/README.TXT b/bundles/org.eclipse.ui.presentations.r21/README.TXT
deleted file mode 100644
index 33b17e3..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/README.TXT
+++ /dev/null
@@ -1,15 +0,0 @@
-The r21presentation plugin provides an R2.1 style look and feel for
-Eclipse.  This look and feel is accomplished entirely through the
-Presentations API, no changes are needed to the base eclipse release.
-
-Use:
-
-1. Ensure the plugin is installed (look in your eclipse/plugins
-   directory for org.eclipse.ui.presentations.r21_3.0.0).
-2. Add the contents of the r21presentation.ini file to your primary
-   plugin's "plugin_customization.ini" file.  In the basic Eclipse
-   IDE, this file is located in plugins/org.eclipse.platform_3.0.0.
-3. Resolve any conflicts in the plugin_customization.ini file to favour
-   the settings for this project.  E.g., DOCK_PERSPECTIVE_BAR is set
-   to "topRight" in the basic platform but should be "left" for the
-   R21 presentation.
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.presentations.r21/about.html b/bundles/org.eclipse.ui.presentations.r21/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.presentations.r21/build.properties b/bundles/org.eclipse.ui.presentations.r21/build.properties
deleted file mode 100644
index eccd880..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/build.properties
+++ /dev/null
@@ -1,20 +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
-###############################################################################
-
-bin.includes = plugin.properties,\
-               plugin.xml,\
-               .,\
-               r21presentation.ini,\
-               README.TXT,\
-               about.html,\
-               META-INF/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.ui.presentations.r21/plugin.properties b/bundles/org.eclipse.ui.presentations.r21/plugin.properties
deleted file mode 100644
index 516f332..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/plugin.properties
+++ /dev/null
@@ -1,14 +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
-###############################################################################
-pluginName= R21 Presentation Plug-in
-providerName= Eclipse.org
-
-Presentation.r21.name=Eclipse 2.1 Style Presentation
diff --git a/bundles/org.eclipse.ui.presentations.r21/plugin.xml b/bundles/org.eclipse.ui.presentations.r21/plugin.xml
deleted file mode 100644
index dd5bcd3..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/plugin.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            name="%Presentation.r21.name"
-            class="org.eclipse.ui.internal.presentations.R21PresentationFactory"
-            id="org.eclipse.ui.internal.r21presentationFactory">
-      </factory>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.presentations.r21/r21presentation.ini b/bundles/org.eclipse.ui.presentations.r21/r21presentation.ini
deleted file mode 100644
index be8c8e3..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/r21presentation.ini
+++ /dev/null
@@ -1,18 +0,0 @@
-# R21 presentation settings: copy these values to your product's
-# plugin_customization.ini file before starting eclipse
-#
-# Its possible that platform has its own setting for some of these
-# values.  Be sure to resolve conflicts to favour the values in this
-# file.
-
-# use the R2.1 style
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.internal.r21presentationFactory
-
-# put the view tabs on the bottom (1024 == SWT.BOTTOM)
-org.eclipse.ui.workbench/VIEW_TAB_POSITION=1024
-
-# put the perspective switcher on the left
-org.eclipse.ui/DOCK_PERSPECTIVE_BAR=left
-
-# put the fast view bar on the left
-org.eclipse.ui/initialFastViewBarLocation=left
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java
deleted file mode 100644
index 13f9041..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21BasicStackPresentation.java
+++ /dev/null
@@ -1,1217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - some contributions (bug fixes and enhancements)
- *******************************************************************************/
-package org.eclipse.ui.internal.presentations;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.presentations.r21.R21Colors;
-import org.eclipse.ui.internal.presentations.r21.R21PresentationMessages;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabItem;
-import org.eclipse.ui.internal.presentations.r21.widgets.R21PaneFolder;
-import org.eclipse.ui.internal.util.Util;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IPresentationSerializer;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * Base class for StackPresentations that display IPresentableParts in a
- * CTabFolder.
- * 
- * @since 3.0
- */
-public class R21BasicStackPresentation extends StackPresentation {
-
-	private R21PaneFolder paneFolder;
-
-	private IPresentablePart current;
-
-	private boolean activeState = false;
-
-	private MenuManager systemMenuManager = new MenuManager();
-
-	private CLabel titleLabel;
-
-	private boolean shellActive = true;
-
-	private final static String TAB_DATA = R21BasicStackPresentation.class
-			.getName()
-			+ ".partId"; //$NON-NLS-1$
-
-	// private PaneFolderButtonListener buttonListener = new
-	// PaneFolderButtonListener() {
-	// public void stateButtonPressed(int buttonId) {
-	// getSite().setState(buttonId);
-	// }
-	//
-	// public void closeButtonPressed(CTabItem item) {
-	// IPresentablePart part = getPartForTab(item);
-	//			
-	// getSite().close(part);
-	// }
-	// };
-	//	
-	private MouseListener mouseListener = new MouseAdapter() {
-		public void mouseDown(MouseEvent e) {
-			if (e.widget instanceof Control) {
-				Control ctrl = (Control) e.widget;
-				Point globalPos = ctrl.toDisplay(new Point(e.x, e.y));
-
-				// PR#1GDEZ25 - If selection will change in mouse up ignore
-				// mouse down.
-				// Else, set focus.
-				CTabItem newItem = paneFolder.getItem(paneFolder.getControl()
-						.toControl(globalPos));
-				if (newItem != null) {
-					CTabItem oldItem = paneFolder.getSelection();
-					if (newItem != oldItem) {
-						return;
-					}
-				}
-				if (current != null) {
-					current.setFocus();
-				}
-			}
-		}
-
-		public void mouseDoubleClick(MouseEvent e) {
-			if (getSite().getState() == IStackPresentationSite.STATE_MAXIMIZED) {
-				getSite().setState(IStackPresentationSite.STATE_RESTORED);
-			} else {
-				getSite().setState(IStackPresentationSite.STATE_MAXIMIZED);
-			}
-		}
-	};
-
-	private MouseListener titleMouseListener = new MouseAdapter() {
-		public void mouseDown(MouseEvent e) {
-			if (e.widget instanceof Control) {
-				Control ctrl = (Control) e.widget;
-				Point globalPos = ctrl.toDisplay(new Point(0, titleLabel
-						.getBounds().height));
-
-				if ((e.button == 1) && overImage(e.x)) {
-					showSystemMenu(globalPos);
-				}
-			}
-		}
-	};
-
-	private Listener menuListener = new Listener() {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			Point pos = new Point(event.x, event.y);
-
-			showSystemMenu(pos);
-		}
-	};
-
-	private Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-
-			Point localPos = new Point(event.x, event.y);
-			CTabItem tabUnderPointer = paneFolder.getItem(localPos);
-
-			// Drags on the title area drag the selected part only
-			if (tabUnderPointer == null) {
-				if (paneFolder.getTabPosition() == SWT.BOTTOM
-						&& localPos.y < paneFolder.getControl().getBounds().height
-								- paneFolder.getTabHeight()) {
-					tabUnderPointer = paneFolder.getSelection();
-				} else if (paneFolder.getTabPosition() == SWT.TOP
-						&& localPos.y > paneFolder.getTabHeight()) {
-					tabUnderPointer = paneFolder.getSelection();
-				}
-			}
-
-			// Not in a tab, not in a title area, must be dragging the whole
-			// stack
-			if (tabUnderPointer == null) {
-				getSite().dragStart(
-						paneFolder.getControl().toDisplay(localPos), false);
-				return;
-			}
-
-			IPresentablePart part = getPartForTab(tabUnderPointer);
-
-			if (getSite().isPartMoveable(part)) {
-				getSite().dragStart(part,
-						paneFolder.getControl().toDisplay(localPos), false);
-			}
-		}
-	};
-
-	private Listener selectionListener = new Listener() {
-		public void handleEvent(Event e) {
-			IPresentablePart item = getPartForTab((CTabItem) e.item);
-
-			if (item != null) {
-				getSite().selectPart(item);
-			}
-		}
-	};
-
-	private Listener resizeListener = new Listener() {
-		public void handleEvent(Event e) {
-			setControlSize();
-		}
-	};
-
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-		public void propertyChanged(Object source, int property) {
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;
-				childPropertyChanged(part, property);
-			}
-		}
-	};
-
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof CTabItem) {
-				CTabItem item = (CTabItem) e.widget;
-
-				IPresentablePart part = getPartForTab(item);
-
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-
-	/** the shell listener for upgrading the gradient */
-	private ShellAdapter shellListener = new ShellAdapter() {
-
-		public void shellActivated(ShellEvent event) {
-			shellActive = true;
-			updateGradient();
-		}
-
-		public void shellDeactivated(ShellEvent event) {
-			shellActive = false;
-			updateGradient();
-		}
-	};
-
-	private ToolBar viewToolBar;
-
-	private ToolItem pullDownButton;
-
-	private ToolItem closeButton;
-
-	/**
-	 * @param control
-	 * @param stackSite
-	 */
-	public R21BasicStackPresentation(R21PaneFolder control,
-			IStackPresentationSite stackSite) {
-		super(stackSite);
-		paneFolder = control;
-
-		shellActive = paneFolder.getControl().getShell().equals(
-				control.getControl().getDisplay().getActiveShell());
-
-		// tabFolder.setMinimizeVisible(stackSite.supportsState(IStackPresentationSite.STATE_MINIMIZED));
-		// tabFolder.setMaximizeVisible(stackSite.supportsState(IStackPresentationSite.STATE_MAXIMIZED));
-		//				
-		titleLabel = new CLabel(paneFolder.getControl(), SWT.SHADOW_NONE);
-		titleLabel.setVisible(false);
-		titleLabel.moveAbove(null);
-		titleLabel.addMouseListener(titleMouseListener);
-		titleLabel.addMouseListener(mouseListener);
-		titleLabel.addListener(SWT.MenuDetect, menuListener);
-		PresentationUtil.addDragListener(titleLabel, dragListener);
-
-		// ColorSchemeService.setViewTitleFont(this, titleLabel);
-
-		viewToolBar = new ToolBar(control.getControl(), SWT.HORIZONTAL
-				| SWT.FLAT);
-		viewToolBar.moveAbove(null);
-
-		pullDownButton = new ToolItem(viewToolBar, SWT.PUSH);
-		// Image img =
-		// WorkbenchImages.getImage(IWorkbenchGraphicConstants.IMG_LCL_VIEW_MENU);
-		Image hoverImage = WorkbenchImages
-				.getImage(IWorkbenchGraphicConstants.IMG_LCL_VIEW_MENU);
-		pullDownButton.setDisabledImage(null); // TODO: comment this out?
-		// PR#1GE56QT - Avoid creation of unnecessary image.
-		pullDownButton.setImage(hoverImage);
-		pullDownButton.setToolTipText(R21PresentationMessages
-				.getString("BasicStackPresentation.menu.tooltip")); //$NON-NLS-1$
-		pullDownButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				showPaneMenu();
-			}
-		});
-
-		// listener to switch between visible tabItems
-		paneFolder.getControl().addListener(SWT.Selection, selectionListener);
-
-		// listener to resize visible components
-		paneFolder.getControl().addListener(SWT.Resize, resizeListener);
-
-		// listen for mouse down on tab to set focus.
-		paneFolder.getControl().addMouseListener(mouseListener);
-
-		paneFolder.getControl().addListener(SWT.MenuDetect, menuListener);
-
-		// tabFolder.addButtonListener(buttonListener);
-
-		PresentationUtil.addDragListener(paneFolder.getControl(), dragListener);
-
-		// add the shell listener to track shell activations
-		// TODO: check if workaround can be removed (see bug 55458)
-		paneFolder.getControl().getShell().addShellListener(shellListener);
-
-		// Uncomment to allow dragging from the title label
-		// PresentationUtil.addDragListener(titleLabel, new Listener() {
-		// public void handleEvent(Event event) {
-		// if (layout.isTrimOnTop()) {
-		// Point localPos = new Point(event.x, event.y);
-		// getSite().dragStart(titleLabel.toDisplay(localPos), false);
-		// }
-		// }
-		// });
-
-		// // Compute the tab height
-		// int tabHeight = viewToolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT).y;
-		//
-		// // Enforce a minimum tab height
-		// if (tabHeight < 20) {
-		// tabHeight = 20;
-		// }
-		// paneFolder.setTabHeight(tabHeight);
-		//		
-		populateSystemMenu(systemMenuManager);
-	}
-
-	/*
-	 * Return true if <code>x</code> is over the label image.
-	 */
-	private boolean overImage(int x) {
-		return x < titleLabel.getImage().getBounds().width;
-	}
-
-	/**
-	 * @param systemMenuManager
-	 */
-	private void populateSystemMenu(IMenuManager systemMenuManager) {
-
-		systemMenuManager.add(new GroupMarker("misc")); //$NON-NLS-1$
-		systemMenuManager.add(new GroupMarker("restore")); //$NON-NLS-1$
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuRestore(getSite())));
-
-		systemMenuManager.add(new SystemMenuMove(getSite(), getPaneName()));
-		systemMenuManager.add(new GroupMarker("size")); //$NON-NLS-1$
-		systemMenuManager.add(new GroupMarker("state")); //$NON-NLS-1$
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuMinimize(getSite())));
-
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuMaximize(getSite())));
-		systemMenuManager.add(new Separator("close")); //$NON-NLS-1$
-		systemMenuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuClose(getSite())));
-
-		getSite().addSystemActions(systemMenuManager);
-	}
-
-	protected String getPaneName() {
-		return R21PresentationMessages.getString("BasicStackPresentation.pane"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Displays the view menu as a popup
-	 */
-	public void showPaneMenu() {
-		IPartMenu menu = getPartMenu();
-
-		if (menu != null) {
-			Rectangle bounds = DragUtil.getDisplayBounds(viewToolBar);
-			menu.showMenu(new Point(bounds.x, bounds.y + bounds.height));
-		}
-	}
-
-	/**
-	 * Returns the currently selected part, or <code>null</code>.
-	 * 
-	 * @return the currently selected part, or <code>null</code>
-	 */
-	protected IPresentablePart getCurrent() {
-		return current;
-	}
-
-	/**
-	 * Returns the index of the tab for the given part, or returns
-	 * tabFolder.getItemCount() if there is no such tab.
-	 * 
-	 * @param part
-	 *            part being searched for
-	 * @return the index of the tab for the given part, or the number of tabs if
-	 *         there is no such tab
-	 */
-	private final int indexOf(IPresentablePart part) {
-		if (part == null) {
-			return paneFolder.getItemCount();
-		}
-
-		CTabItem[] items = paneFolder.getItems();
-
-		for (int idx = 0; idx < items.length; idx++) {
-			IPresentablePart tabPart = getPartForTab(items[idx]);
-
-			if (part == tabPart) {
-				return idx;
-			}
-		}
-
-		return items.length;
-	}
-
-	/**
-	 * Returns the tab for the given part, or null if there is no such tab
-	 * 
-	 * @param part
-	 *            the part being searched for
-	 * @return the tab for the given part, or null if there is no such tab
-	 */
-	protected final CTabItem getTab(IPresentablePart part) {
-		CTabItem[] items = paneFolder.getItems();
-
-		int idx = indexOf(part);
-
-		if (idx < items.length) {
-			return items[idx];
-		}
-
-		return null;
-	}
-
-	/**
-	 * @param part
-	 * @param property
-	 */
-	protected void childPropertyChanged(IPresentablePart part, int property) {
-
-		CTabItem tab = getTab(part);
-		initTab(tab, part);
-
-		switch (property) {
-		case IPresentablePart.PROP_BUSY:
-			break;
-		case IPresentablePart.PROP_HIGHLIGHT_IF_BACK:
-			// FontRegistry registry =
-			// PlatformUI.getWorkbench().
-			// getThemeManager().getCurrentTheme().
-			// getFontRegistry();
-			//	     	
-			// if(!getCurrent().equals(part))//Set bold if it does currently
-			// have focus
-			// tab.setFont(registry.getBold(IWorkbenchThemeConstants.TAB_TEXT_FONT));
-			// break;
-		case IPresentablePart.PROP_TOOLBAR:
-		case IPresentablePart.PROP_PANE_MENU:
-		case IPresentablePart.PROP_TITLE:
-			setControlSize();
-			break;
-		}
-	}
-
-	protected final IPresentablePart getPartForTab(CTabItem item) {
-		IPresentablePart part = (IPresentablePart) item.getData(TAB_DATA);
-
-		return part;
-	}
-
-	/**
-	 * Returns the underlying tab folder for this presentation.
-	 * 
-	 * @return the tab folder
-	 */
-	protected R21PaneFolder getPaneFolder() {
-		return paneFolder;
-	}
-
-	/**
-	 * Returns true iff the underlying tab folder has been disposed.
-	 * 
-	 * @return true if disposed
-	 */
-	public boolean isDisposed() {
-		return paneFolder == null || paneFolder.isDisposed();
-	}
-
-	/**
-	 * Update the tab folder's colours to match the current theme settings and
-	 * active state
-	 */
-	protected void updateGradient() {
-
-		if (isDisposed()) {
-			return;
-		}
-
-		Color fgColor;
-		Color[] bgColors;
-		int[] bgPercents;
-		boolean vertical = false;
-		if (isActive()) {
-			if (getShellActivated()) {
-				fgColor = R21Colors.getSystemColor(SWT.COLOR_TITLE_FOREGROUND);
-				bgColors = R21Colors.getActiveViewGradient();
-				bgPercents = R21Colors.getActiveViewGradientPercents();
-			} else {
-				fgColor = R21Colors
-						.getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND);
-				bgColors = R21Colors.getDeactivatedViewGradient();
-				bgPercents = R21Colors.getDeactivatedViewGradientPercents();
-			}
-
-		} else {
-			fgColor = R21Colors.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-			bgColors = null;
-			bgPercents = null;
-		}
-
-		drawGradient(fgColor, bgColors, bgPercents, vertical);
-
-		// Color fgColor;
-		// ITheme currentTheme =
-		// PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
-		// FontRegistry fontRegistry = currentTheme.getFontRegistry();
-		// ColorRegistry colorRegistry = currentTheme.getColorRegistry();
-		// Color [] bgColors = new Color[2];
-		// int [] percent = new int[1];
-		// boolean vertical;
-
-		// if (isActive()){
-		//        	
-		// CTabItem item = getPaneFolder().getSelection();
-		// if(item != null && !getPartForTab(item).isBusy()){
-		// Font tabFont =
-		// fontRegistry.get(IWorkbenchThemeConstants.TAB_TEXT_FONT);
-		// // item.setFont(tabFont);
-		// }
-		//            
-		// fgColor =
-		// colorRegistry.get(IWorkbenchThemeConstants.ACTIVE_TAB_TEXT_COLOR);
-		// bgColors[0] =
-		// colorRegistry.get(IWorkbenchThemeConstants.ACTIVE_TAB_BG_START);
-		// bgColors[1] =
-		// colorRegistry.get(IWorkbenchThemeConstants.ACTIVE_TAB_BG_END);
-		// percent[0] =
-		// currentTheme.getInt(IWorkbenchThemeConstants.ACTIVE_TAB_PERCENT);
-		// vertical =
-		// currentTheme.getBoolean(IWorkbenchThemeConstants.ACTIVE_TAB_VERTICAL);
-		// } else {
-		// fgColor =
-		// colorRegistry.get(IWorkbenchThemeConstants.INACTIVE_TAB_TEXT_COLOR);
-		// bgColors[0] =
-		// colorRegistry.get(IWorkbenchThemeConstants.INACTIVE_TAB_BG_START);
-		// bgColors[1] =
-		// colorRegistry.get(IWorkbenchThemeConstants.INACTIVE_TAB_BG_END);
-		// percent[0] =
-		// currentTheme.getInt(IWorkbenchThemeConstants.INACTIVE_TAB_PERCENT);
-		// vertical =
-		// currentTheme.getBoolean(IWorkbenchThemeConstants.INACTIVE_TAB_VERTICAL);
-		// }
-		//      
-		//		
-		// drawGradient(fgColor, bgColors, bgPercents, false);
-	}
-
-	/**
-	 * Draws the applicable gradient on the title area
-	 * 
-	 * @param fgColor
-	 * @param bgColors
-	 * @param percentages
-	 * @param vertical
-	 */
-	public void drawGradient(Color fgColor, Color[] bgColors,
-			int[] percentages, boolean vertical) {
-		// paneFolder.setSelectionForeground(fgColor);
-		// paneFolder.setSelectionBackground(bgColors, percentages, vertical);
-
-		if (titleLabel == null || viewToolBar == null) {
-			return;
-		}
-
-		titleLabel.setBackground(bgColors, percentages, vertical);
-		titleLabel.setForeground(fgColor);
-
-		titleLabel.update();
-	}
-
-	/**
-	 * @return true if active
-	 */
-	public boolean isActive() {
-		return activeState;
-	}
-
-	/**
-	 * Set the size of a page in the folder.
-	 * 
-	 * TODO: Kim here...I had to make this public so that the when the font was
-	 * updated via the color scheme service it could relayout the
-	 * presentation... calling control.getLayout() doesn't do the trick.
-	 */
-	public void setControlSize() {
-		// Set up the top-right controls
-		// List topRight = new ArrayList(3);
-
-		if (current != null) {
-			paneFolder.setTopLeft(titleLabel);
-			titleLabel.setText(current.getTitle());
-			titleLabel.setImage(current.getTitleImage());
-			titleLabel.setVisible(true);
-
-			// set tooltip (https://bugs.eclipse.org/bugs/show_bug.cgi?id=67513)
-			String toolTipText = current.getTitleToolTip();
-			titleLabel.setToolTipText(toolTipText
-					.equals(Util.ZERO_LENGTH_STRING) ? null : toolTipText);
-			
-		}
-
-		Control currentToolbar = getCurrentToolbar();
-		paneFolder.setTopCenter(currentToolbar);
-
-		IPartMenu partMenu = getPartMenu();
-
-		if (partMenu != null) {
-			pullDownButton.setEnabled(true);
-		} else {
-			pullDownButton.setEnabled(false);
-		}
-		paneFolder.setTopRight(viewToolBar);
-		viewToolBar.setVisible(true);
-
-		paneFolder.layout(true);
-
-		if (current != null) {
-			Rectangle clientArea = paneFolder.getClientArea();
-			Rectangle bounds = paneFolder.getControl().getBounds();
-			clientArea.x += bounds.x;
-			clientArea.y += bounds.y;
-
-			current.setBounds(clientArea);
-		}
-
-	}
-
-	/**
-	 * Returns the IPartMenu for the currently selected part, or null if the
-	 * current part does not have a menu.
-	 * 
-	 * @return the IPartMenu for the currently selected part or null if none
-	 */
-	protected IPartMenu getPartMenu() {
-		IPresentablePart part = getCurrentPart();
-		if (part == null) {
-			return null;
-		}
-
-		return part.getMenu();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#dispose()
-	 */
-	public void dispose() {
-		if (isDisposed()) {
-			return;
-		}
-
-		// remove shell listener
-		paneFolder.getControl().getShell().removeShellListener(shellListener);
-
-		PresentationUtil.removeDragListener(paneFolder.getControl(),
-				dragListener);
-		PresentationUtil.removeDragListener(titleLabel, dragListener);
-
-		systemMenuManager.dispose();
-		systemMenuManager.removeAll();
-		paneFolder.getControl().dispose();
-		paneFolder = null;
-
-		titleLabel.dispose();
-		titleLabel = null;
-
-		viewToolBar.dispose();
-	}
-
-	/**
-	 * @param isActive
-	 */
-	public void setActive(boolean isActive) {
-		activeState = isActive;
-		updateGradient();
-	}
-
-	/**
-	 * Return whether the window's shell is activated
-	 */
-	/* package */boolean getShellActivated() {
-		return shellActive;
-	}
-
-	/**
-	 * Returns the top level window.
-	 * @return the window
-	 */
-	public Window getWindow() {
-		Control ctrl = getControl();
-		if (ctrl != null) {
-			Object data = ctrl.getShell().getData();
-			if (data instanceof Window) {
-				return (Window) data;
-			}
-		}
-		return null;
-	}
-
-	private CTabItem createPartTab(IPresentablePart part, int tabIndex) {
-		CTabItem tabItem;
-
-		int style = SWT.NONE;
-
-		if (getSite().isCloseable(part)) {
-			style |= SWT.CLOSE;
-		}
-
-		tabItem = paneFolder.createItem(style, tabIndex);
-
-		tabItem.setData(TAB_DATA, part);
-
-		part.addPropertyListener(childPropertyChangeListener);
-		tabItem.addDisposeListener(tabDisposeListener);
-
-		initTab(tabItem, part);
-
-		return tabItem;
-	}
-
-	// Create a close button in the title bar for the argument part (if needed).
-	private void updateCloseButton() {
-		// remove the close button if needed
-		if (current == null || !getSite().isCloseable(current)) {
-			if (closeButton != null) {
-				closeButton.dispose();
-				closeButton = null;
-
-				paneFolder.flush();
-			}
-			return;
-		}
-
-		// a close button is needed, so if its already there, we're done
-		if (closeButton != null) {
-			return;
-		}
-
-		// otherwise create it
-		closeButton = new ToolItem(viewToolBar, SWT.PUSH);
-		closeButton.setDisabledImage(null);
-		closeButton.setImage(WorkbenchImages
-				.getImage(IWorkbenchGraphicConstants.IMG_LCL_CLOSE_VIEW));
-		closeButton.setToolTipText(R21PresentationMessages
-				.getString("BasicStackPresentation.close.tooltip")); //$NON-NLS-1$
-		closeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				close(getCurrent());
-			}
-		});
-
-		paneFolder.flush();
-	}
-
-	/**
-	 * Initializes a tab for the given part. Sets the text, icon, tool tip, etc.
-	 * This will also be called whenever a relevant property changes in the part
-	 * to reflect those changes in the tab. Subclasses may override to change
-	 * the appearance of tabs for a particular part.
-	 * 
-	 * @param tabItem
-	 *            tab for the part
-	 * @param part
-	 *            the part being displayed
-	 */
-	protected void initTab(CTabItem tabItem, IPresentablePart part) {
-		tabItem.setText(part.getName());
-
-		// tabItem.setImage(part.getTitleImage());
-
-		// String toolTipText = part.getTitleToolTip();
-		// if (!toolTipText.equals(Util.ZERO_LENGTH_STRING)) {
-		// tabItem.setToolTipText(toolTipText);
-		// }
-
-		// FontRegistry registry =
-		// PlatformUI.getWorkbench().
-		// getThemeManager().getCurrentTheme().
-		// getFontRegistry();
-		//		
-		// if(part.isBusy())
-		// tabItem.setFont(registry.getItalic(IWorkbenchThemeConstants.TAB_TEXT_FONT));
-		// else{
-		// tabItem.setFont(registry.get(IWorkbenchThemeConstants.TAB_TEXT_FONT));
-		// }
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#addPart(org.eclipse.ui.internal.skins.IPresentablePart,
-	 *      org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void addPart(IPresentablePart newPart, Object cookie) {
-
-		int idx;
-
-		if (cookie instanceof Integer) {
-			idx = ((Integer) cookie).intValue();
-		} else {
-			// Select a location for newly inserted parts
-			idx = paneFolder.getItemCount();
-		}
-
-		addPart(newPart, idx);
-	}
-
-	/**
-	 * Adds the given presentable part to this presentation at the given index.
-	 * Does nothing if a tab already exists for the given part.
-	 * 
-	 * @param newPart
-	 * @param index
-	 */
-	public void addPart(IPresentablePart newPart, int index) {
-		// If we already have a tab for this part, do nothing
-		if (getTab(newPart) != null) {
-			return;
-		}
-		createPartTab(newPart, index);
-
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#removePart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void removePart(IPresentablePart oldPart) {
-		if (current == oldPart) {
-			titleLabel.setImage(null);
-			current = null;
-		}
-
-		CTabItem item = getTab(oldPart);
-		if (item == null) {
-			return;
-		}
-		oldPart.setVisible(false);
-
-		item.dispose();
-
-		// Layout the folder again in case there is only one item
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#selectPart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void selectPart(IPresentablePart toSelect) {
-		if (toSelect == current) {
-			return;
-		}
-
-		IPresentablePart oldPart = current;
-
-		current = toSelect;
-
-		if (current != null) {
-			paneFolder.setSelection(indexOf(current));
-			current.setVisible(true);
-			updateCloseButton();
-			setControlSize();
-		}
-
-		if (oldPart != null) {
-			oldPart.setVisible(false);
-		}
-	}
-
-	/**
-	 * @return the current part
-	 */
-	public IPresentablePart getCurrentPart() {
-		return current;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setBounds(org.eclipse.swt.graphics.Rectangle)
-	 */
-	public void setBounds(Rectangle bounds) {
-		if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-			bounds = Geometry.copy(bounds);
-			bounds.height = computePreferredSize(false, Integer.MAX_VALUE,
-					bounds.width, Integer.MAX_VALUE);
-		}
-
-		paneFolder.getControl().setBounds(bounds);
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#computeMinimumSize()
-	 */
-	public Point computeMinimumSize() {
-		Point result = Geometry.getSize(paneFolder.computeTrim(0, 0, 0, 0));
-
-		result.x += 100;
-
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setVisible(boolean)
-	 */
-	public void setVisible(boolean isVisible) {
-		if (current != null) {
-			current.setVisible(isVisible);
-		}
-		paneFolder.getControl().setVisible(isVisible);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setState(int)
-	 */
-	public void setState(int state) {
-		// tabFolder.setState(state);
-	}
-
-	/**
-	 * @return the menu manager
-	 */
-	public IMenuManager getSystemMenuManager() {
-		return systemMenuManager;
-	}
-
-	/**
-	 * @param point
-	 */
-	protected void showSystemMenu(Point point) {
-		Menu aMenu = systemMenuManager.createContextMenu(paneFolder
-				.getControl().getParent());
-		systemMenuManager.update(true);
-		aMenu.setLocation(point.x, point.y);
-		aMenu.setVisible(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#getControl()
-	 */
-	public Control getControl() {
-		return paneFolder.getControl();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#dragOver(org.eclipse.swt.widgets.Control,
-	 *      org.eclipse.swt.graphics.Point)
-	 */
-	public StackDropResult dragOver(Control currentControl, Point location) {
-
-		// Determine which tab we're currently dragging over
-		Point localPos = paneFolder.getControl().toControl(location);
-		final CTabItem tabUnderPointer = paneFolder.getItem(localPos);
-
-		// This drop target only deals with tabs... if we're not dragging over
-		// a tab, exit.
-		if (tabUnderPointer == null) {
-			return null;
-		}
-
-		// workaround when left tab is dragged over next
-		int dragOverIndex = paneFolder.indexOf(tabUnderPointer);
-
-		return new StackDropResult(Geometry.toDisplay(paneFolder.getControl(),
-				tabUnderPointer.getBounds()), new Integer(dragOverIndex));
-	}
-
-	/**
-	 * Returns the toolbar control for the currently selected part, or null if
-	 * none (not all parts have a toolbar).
-	 * 
-	 * @return the current toolbar or null if none
-	 */
-	protected Control getCurrentToolbar() {
-		IPresentablePart part = getCurrentPart();
-		if (part == null) {
-			return null;
-		}
-
-		return part.getToolBar();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#showSystemMenu()
-	 */
-	public void showSystemMenu() {
-		IPresentablePart part = getCurrentPart();
-		if (part != null) {
-			Rectangle bounds = DragUtil.getDisplayBounds(paneFolder
-					.getControl());
-
-			int idx = paneFolder.getSelectionIndex();
-			if (idx > -1) {
-				CTabItem item = paneFolder.getItem(idx);
-				Rectangle itemBounds = item.getBounds();
-
-				bounds.x += itemBounds.x;
-				bounds.y += itemBounds.y;
-			}
-
-			Point location = new Point(bounds.x, bounds.y
-					+ paneFolder.getTabHeight());
-			showSystemMenu(location);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#getTabList(IPresentablePart)
-	 */
-	public Control[] getTabList(IPresentablePart part) {
-		ArrayList list = new ArrayList();
-		if (paneFolder.getTabPosition() == SWT.BOTTOM) {
-			if (part.getToolBar() != null) {
-				list.add(part.getToolBar());
-			}
-			if (part.getControl() != null) {
-				list.add(part.getControl());
-			}
-			if (getPaneFolder() != null) {
-				list.add(getPaneFolder().getControl());
-			}
-		} else {
-			if (getPaneFolder() != null) {
-				list.add(getPaneFolder().getControl());
-			}
-			if (part.getToolBar() != null) {
-				list.add(part.getToolBar());
-			}
-			if (part.getControl() != null) {
-				list.add(part.getControl());
-			}
-		}
-		return (Control[]) list.toArray(new Control[list.size()]);
-	}
-
-	/**
-	 * @param parentShell 
-	 * @param x 
-	 * @param y 
-	 */
-	protected void showList(Shell parentShell, int x, int y) {
-		// final R21PaneFolder tabFolder = getTabFolder();
-		//
-		// int shellStyle = SWT.RESIZE | SWT.ON_TOP | SWT.NO_TRIM;
-		// int tableStyle = SWT.V_SCROLL | SWT.H_SCROLL;
-		// final BasicStackList editorList = new
-		// BasicStackList(tabFolder.getControl().getShell(),
-		// shellStyle, tableStyle);
-		// editorList.setInput(this);
-		// Point size = editorList.computeSizeHint();
-		//        
-		// Rectangle bounds = Display.getCurrent().getBounds();
-		// if (x + size.x > bounds.width) x = bounds.width - size.x;
-		// if (y + size.y > bounds.height) y = bounds.height - size.y;
-		// editorList.setLocation(new Point(x, y));
-		// editorList.setVisible(true);
-		// editorList.setFocus();
-		// editorList.getTableViewer().getTable().getShell().addListener(
-		// SWT.Deactivate, new Listener() {
-		//
-		// public void handleEvent(Event event) {
-		// editorList.setVisible(false);
-		// }
-		// });
-	}
-
-	/*
-	 * Shows the list of tabs at the top left corner of the editor
-	 */
-	protected void showListDefaultLocation() {
-		R21PaneFolder tabFolder = getPaneFolder();
-		Shell shell = tabFolder.getControl().getShell();
-		Rectangle clientArea = tabFolder.getClientArea();
-		Point location = tabFolder.getControl().getDisplay().map(
-				tabFolder.getControl(), null, clientArea.x, clientArea.y);
-		showList(shell, location.x, location.y);
-	}
-
-	void setSelection(CTabItem tabItem) {
-		getSite().selectPart(getPartForTab(tabItem));
-	}
-
-	void close(IPresentablePart presentablePart) {
-		getSite().close(new IPresentablePart[] { presentablePart });
-	}
-
-	Image getLabelImage(IPresentablePart presentablePart) {
-		return presentablePart.getTitleImage();
-	}
-
-	/**
-	 * @param presentablePart
-	 * @param includePath  
-	 */
-	String getLabelText(IPresentablePart presentablePart, boolean includePath) {
-		String title = presentablePart.getTitle().trim();
-		return title;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#setActive(int)
-	 */
-	public void setActive(int newState) {
-		setActive(newState == AS_ACTIVE_FOCUS);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#restoreState(org.eclipse.ui.presentations.IPresentationSerializer,
-	 *      org.eclipse.ui.IMemento)
-	 */
-	public void restoreState(IPresentationSerializer serializer,
-			IMemento savedState) {
-		IMemento[] parts = savedState.getChildren(IWorkbenchConstants.TAG_PART);
-
-		for (int idx = 0; idx < parts.length; idx++) {
-			String id = parts[idx].getString(IWorkbenchConstants.TAG_ID);
-
-			if (id != null) {
-				IPresentablePart part = serializer.getPart(id);
-
-				if (part != null) {
-					addPart(part, getPaneFolder().getItemCount());
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#saveState(org.eclipse.ui.presentations.IPresentationSerializer,
-	 *      org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IPresentationSerializer context, IMemento memento) {
-		super.saveState(context, memento);
-
-		List parts = getPresentableParts();
-
-		Iterator iter = parts.iterator();
-		while (iter.hasNext()) {
-			IPresentablePart next = (IPresentablePart) iter.next();
-
-			IMemento childMem = memento
-					.createChild(IWorkbenchConstants.TAG_PART);
-			childMem.putString(IWorkbenchConstants.TAG_ID, context.getId(next));
-		}
-	}
-
-	/**
-	 * Returns the List of IPresentablePart currently in this presentation
-	 */
-	private List getPresentableParts() {
-		Assert.isTrue(!isDisposed());
-
-		CTabItem[] items = getPaneFolder().getItems();
-		List result = new ArrayList(items.length);
-
-		for (int idx = 0; idx < getPaneFolder().getItemCount(); idx++) {
-			result.add(getPartForTab(items[idx]));
-		}
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21EditorStackPresentation.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21EditorStackPresentation.java
deleted file mode 100644
index c50a355..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21EditorStackPresentation.java
+++ /dev/null
@@ -1,1007 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-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.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IPreferenceConstants;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.presentations.r21.R21Colors;
-import org.eclipse.ui.internal.presentations.r21.R21PresentationMessages;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolder;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolderEvent;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolderListener;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabItem;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IPresentationSerializer;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * A stack presentation for editors using a widget set that is close to what was
- * provided in 2.1.
- * <p>
- * EXPERIMENTAL
- * </p>
- * 
- * @since 3.0
- */
-public class R21EditorStackPresentation extends StackPresentation {
-
-	/** the tab folder */
-	private CTabFolder tabFolder;
-
-	/** the drag listener */
-	private Listener dragListener = new Listener() {
-
-		public void handleEvent(Event event) {
-			Point localPos = new Point(event.x, event.y);
-			CTabItem tabUnderPointer = tabFolder.getItem(localPos);
-
-			if (tabUnderPointer == null) {
-				// drag the entire stack
-				if (getSite().isStackMoveable()) {
-					getSite().dragStart(tabFolder.toDisplay(localPos), false);
-				}
-				return;
-			}
-
-			IPresentablePart part = getPartForTab(tabUnderPointer);
-
-			if (getSite().isPartMoveable(part)) {
-				// drag the part
-				getSite().dragStart(part, tabFolder.toDisplay(localPos), false);
-			}
-		}
-	};
-
-	/** the listener that will close the tab */
-	private CTabFolderListener closeListener = new CTabFolderListener() {
-
-		public void itemClosed(CTabFolderEvent e) {
-			CTabItem item = (CTabItem) e.item;
-			if (null != item) {
-				e.doit = false; // otherwise tab is auto disposed on return
-				getSite().close(new IPresentablePart[] { getPartForTab(item) });
-			}
-		}
-	};
-
-	/** the current part */
-	private IPresentablePart current;
-
-	/** the system menu */
-	private MenuManager systemMenuManager = new MenuManager();
-
-	/** the shared preference store */
-	private static IPreferenceStore preferenceStore = WorkbenchPlugin
-			.getDefault().getPreferenceStore();
-
-	// don't reset this dynamically, so just keep the information static.
-	// see bug:
-	// 75422 [Presentations] Switching presentation to R21 switches immediately,
-	// but only partially
-	private static int tabPos = PlatformUI.getPreferenceStore()
-			.getInt(IWorkbenchPreferenceConstants.EDITOR_TAB_POSITION);
-
-	/** the tab item property holding the part */
-	private final static String TAB_DATA = R21EditorStackPresentation.class
-			.getName()
-			+ ".partId"; //$NON-NLS-1$
-
-	/** the mouse listener for setting focus */
-	private MouseListener mouseListener = new MouseAdapter() {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDown(MouseEvent e) {
-			if (e.widget instanceof Control) {
-				Control ctrl = (Control) e.widget;
-
-				Point globalPos = ctrl.toDisplay(new Point(e.x, e.y));
-
-				CTabItem newItem = tabFolder.getItem(tabFolder
-						.toControl(globalPos));
-				if (newItem != null) {
-
-					// show menu over icon
-					if ((e.button == 1) && overImage(newItem, e.x)) {
-						getSite().selectPart(getPartForTab(newItem));
-						showSystemMenu();
-					}
-
-					// PR#1GDEZ25 - If selection will change in mouse up ignore
-					// mouse down.
-					CTabItem oldItem = tabFolder.getSelection();
-					if (newItem != oldItem) {
-						return;
-					}
-				}
-
-				// set focus
-				if (current != null) {
-					current.setFocus();
-				}
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.events.MouseAdapter#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseDoubleClick(MouseEvent e) {
-			if (getSite().getState() == IStackPresentationSite.STATE_MAXIMIZED) {
-				getSite().setState(IStackPresentationSite.STATE_RESTORED);
-			} else {
-				getSite().setState(IStackPresentationSite.STATE_MAXIMIZED);
-			}
-		}
-	};
-
-	/**
-	 * Return true if <code>x</code> is over the tab item image.
-	 * 
-	 * @return true if <code>x</code> is over the tab item image
-	 */
-	static boolean overImage(CTabItem item, int x) {
-		Rectangle imageBounds = item.getImage().getBounds();
-		return x < (item.getBounds().x + imageBounds.x + imageBounds.width);
-	}
-
-	/** the menu listener for showing the menu */
-	private Listener menuListener = new Listener() {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			Point pos = new Point(event.x, event.y);
-			showSystemMenu(pos);
-		}
-	};
-
-	/** the selection listener */
-	private Listener selectionListener = new Listener() {
-
-		public void handleEvent(Event e) {
-			IPresentablePart item = getPartForTab((CTabItem) e.item);
-			if (item != null) {
-				getSite().selectPart(item);
-			}
-		}
-	};
-
-	private Listener resizeListener = new Listener() {
-
-		public void handleEvent(Event e) {
-			setControlSize();
-		}
-	};
-
-	/** a property change listener for the parts */
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-
-		public void propertyChanged(Object source, int property) {
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;
-				childPropertyChanged(part, property);
-			}
-		}
-	};
-
-	/** a dispose listener to do some cleanups when a tab is disposed */
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof CTabItem) {
-				CTabItem item = (CTabItem) e.widget;
-				IPresentablePart part = getPartForTab(item);
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-
-	/** the shell listener for upgrading the gradient */
-	private ShellAdapter shellListener = new ShellAdapter() {
-
-		public void shellActivated(ShellEvent event) {
-			updateGradient();
-		}
-
-		public void shellDeactivated(ShellEvent event) {
-			updateGradient();
-		}
-	};
-
-	/**
-	 * Create a new presentation stack.
-	 * 
-	 * @param parent
-	 *            the parent widget
-	 * @param stackSite
-	 *            the site
-	 */
-	public R21EditorStackPresentation(Composite parent,
-			IStackPresentationSite stackSite) {
-		super(stackSite);
-
-		// create the tab folder
-		tabFolder = new CTabFolder(parent, tabPos | SWT.BORDER);
-
-		// minimum tab width
-		tabFolder.MIN_TAB_WIDTH = preferenceStore
-				.getInt(IPreferenceConstants.EDITOR_TAB_WIDTH);
-
-		// prevent close button and scroll buttons from taking focus
-		tabFolder.setTabList(new Control[0]);
-
-		// enable close button in tab folder
-		tabFolder.addCTabFolderListener(closeListener);
-
-		// listener to switch between visible tabItems
-		tabFolder.addListener(SWT.Selection, selectionListener);
-
-		// listener to resize visible components
-		tabFolder.addListener(SWT.Resize, resizeListener);
-
-		// listen for mouse down on tab to set focus, show system menu and
-		// maximize/restore.
-		tabFolder.addMouseListener(mouseListener);
-
-		// the menu
-		tabFolder.addListener(SWT.MenuDetect, menuListener);
-
-		// register drag listener
-		PresentationUtil.addDragListener(tabFolder, dragListener);
-
-		// add the shell listener to track shell activations
-		// TODO: check if workaround can be removed (see bug 55458)
-		tabFolder.getShell().addShellListener(shellListener);
-
-		// initialize system menu
-		populateSystemMenu(systemMenuManager);
-	}
-
-	/**
-	 * Initializes the specified menu manager.
-	 * 
-	 * @param menuManager
-	 */
-	private void populateSystemMenu(IMenuManager menuManager) {
-
-		menuManager.add(new GroupMarker("misc")); //$NON-NLS-1$
-		menuManager.add(new GroupMarker("restore")); //$NON-NLS-1$
-		menuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuRestore(getSite())));
-		menuManager.add(new SystemMenuMove(getSite(), getPaneName()));
-		menuManager.add(new GroupMarker("size")); //$NON-NLS-1$
-		menuManager.add(new GroupMarker("state")); //$NON-NLS-1$
-		// systemMenuManager.add(new UpdatingActionContributionItem(new
-		// SystemMenuMinimize(getSite())));
-		menuManager.add(new UpdatingActionContributionItem(
-				new SystemMenuMaximize(getSite())));
-		menuManager.add(new Separator("close")); //$NON-NLS-1$
-		menuManager.add(new UpdatingActionContributionItem(new SystemMenuClose(
-				getSite())));
-
-		getSite().addSystemActions(menuManager);
-	}
-
-	/**
-	 * Returns the index of the tab for the given part, or returns
-	 * tabFolder.getItemCount() if there is no such tab.
-	 * 
-	 * @param part
-	 *            part being searched for
-	 * @return the index of the tab for the given part, or the number of tabs if
-	 *         there is no such tab
-	 */
-	private final int indexOf(IPresentablePart part) {
-		if (part == null) {
-			return tabFolder.getItemCount();
-		}
-
-		CTabItem[] items = tabFolder.getItems();
-		for (int idx = 0; idx < items.length; idx++) {
-			if (part == getPartForTab(items[idx])) {
-				return idx;
-			}
-		}
-
-		return items.length;
-	}
-
-	/**
-	 * Returns the tab for the given part, or null if there is no such tab
-	 * 
-	 * @param part
-	 *            the part being searched for
-	 * @return the tab for the given part, or null if there is no such tab
-	 */
-	protected final CTabItem getTab(IPresentablePart part) {
-		CTabItem[] items = tabFolder.getItems();
-		int idx = indexOf(part);
-		return idx < items.length ? items[idx] : null;
-	}
-
-	/**
-	 * @param part
-	 * @param property
-	 */
-	protected void childPropertyChanged(IPresentablePart part, int property) {
-		initTab(getTab(part), part);
-	}
-
-	protected final IPresentablePart getPartForTab(CTabItem item) {
-		return (IPresentablePart) item.getData(TAB_DATA);
-	}
-
-	protected CTabFolder getTabFolder() {
-		return tabFolder;
-	}
-
-	/**
-	 * Answer whether the receiver is disposed.
-	 * 
-	 * @return boolean <code>true</code> if disposed
-	 */
-	public boolean isDisposed() {
-		return tabFolder == null || tabFolder.isDisposed();
-	}
-
-	/**
-	 * Set the size of a page in the folder.
-	 */
-	private void setControlSize() {
-		if (current != null && tabFolder != null) {
-			current.setBounds(calculatePageBounds(tabFolder));
-		}
-	}
-
-	/**
-	 * Calculate the bounds of the client area inside the folder
-	 * 
-	 * @param folder
-	 * @return Rectangle the bounds of the client
-	 */
-	public static Rectangle calculatePageBounds(CTabFolder folder) {
-		if (folder == null) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-
-		Rectangle bounds = folder.getBounds();
-		Rectangle offset = folder.getClientArea();
-		bounds.x += offset.x;
-		bounds.y += offset.y;
-		bounds.width = offset.width;
-		bounds.height = offset.height;
-		return bounds;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#dispose()
-	 */
-	public void dispose() {
-		if (isDisposed()) {
-			return;
-		}
-
-		// remove shell listener
-		tabFolder.getShell().removeShellListener(shellListener);
-
-		// remove close listener
-		tabFolder.removeCTabFolderListener(closeListener);
-
-		// remove drag listener
-		PresentationUtil.removeDragListener(tabFolder, dragListener);
-
-		// dispose system menu manager
-		systemMenuManager.dispose();
-		systemMenuManager.removeAll();
-
-		// dispose tab folder
-		tabFolder.dispose();
-		tabFolder = null;
-	}
-
-	/** the active state */
-	private int activeState = AS_INACTIVE;
-
-	/**
-	 * Update the tab folder's colours to match the current theme settings and
-	 * active state
-	 */
-	private void updateGradient() {
-
-		if (isDisposed()) {
-			return;
-		}
-
-		Color fgColor;
-		Color[] bgColors;
-		int[] bgPercents;
-		boolean vertical = false;
-		if (activeState == AS_ACTIVE_FOCUS) {
-			if (getShellActivated()) {
-				fgColor = R21Colors.getSystemColor(SWT.COLOR_TITLE_FOREGROUND);
-				bgColors = R21Colors.getActiveEditorGradient();
-				bgPercents = R21Colors.getActiveEditorGradientPercents();
-			} else {
-				fgColor = R21Colors
-						.getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND);
-				bgColors = R21Colors.getDeactivatedEditorGradient();
-				bgPercents = R21Colors.getDeactivatedEditorGradientPercents();
-			}
-
-		} else if (activeState == AS_ACTIVE_NOFOCUS) {
-			fgColor = R21Colors.getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-			bgColors = R21Colors.getActiveNoFocusEditorGradient();
-			bgPercents = R21Colors.getActiveNoFocusEditorGradientPercents();
-		} else {
-			fgColor = null;
-			bgColors = null;
-			bgPercents = null;
-		}
-
-		drawGradient(fgColor, bgColors, bgPercents, vertical);
-	}
-
-	/**
-	 * Sets the gradient for the selected tab
-	 * 
-	 * @param fgColor
-	 * @param bgColors
-	 * @param percentages
-	 * @param vertical
-	 */
-	protected void drawGradient(Color fgColor, Color[] bgColors,
-			int[] percentages, boolean vertical) {
-		tabFolder.setSelectionForeground(fgColor);
-		tabFolder.setSelectionBackground(bgColors, percentages);
-		tabFolder.update();
-	}
-
-	/**
-	 * Return whether the window's shell is activated
-	 */
-	/* package */boolean getShellActivated() {
-		Window window = getWindow();
-		if (window instanceof WorkbenchWindow) {
-			return ((WorkbenchWindow) window).getShellActivated();
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the top level window.
-	 * 
-	 * @return Window the window for the receiver
-	 */
-	public Window getWindow() {
-		Control ctrl = getControl();
-		if (ctrl != null) {
-			Object data = ctrl.getShell().getData();
-			if (data instanceof Window) {
-				return (Window) data;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Creates the tab item for the specified part.
-	 * 
-	 * @param part
-	 * @param tabIndex
-	 * @return the tab item for the part
-	 */
-	private CTabItem createPartTab(IPresentablePart part, int tabIndex) {
-		CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE, tabIndex);
-		tabItem.setData(TAB_DATA, part);
-		part.addPropertyListener(childPropertyChangeListener);
-		tabItem.addDisposeListener(tabDisposeListener);
-		initTab(tabItem, part);
-		return tabItem;
-	}
-
-	/**
-	 * Initializes a tab for the given part. Sets the text, icon, tool tip, etc.
-	 * This will also be called whenever a relevant property changes in the part
-	 * to reflect those changes in the tab. Subclasses may override to change
-	 * the appearance of tabs for a particular part.
-	 * 
-	 * @param tabItem
-	 *            tab for the part
-	 * @param part
-	 *            the part being displayed
-	 */
-	protected void initTab(CTabItem tabItem, IPresentablePart part) {
-
-		// set tab text and tooltip
-		tabItem.setText(getLabelText(part, true, false));
-		tabItem.setToolTipText(getLabelToolTipText(part));
-
-		// set tab image
-		tabItem.setImage(getLabelImage(part));
-
-		// following code allows a disabled image
-		// but the result was distracting: didn't see any disabled image
-
-		// Image image = getLabelImage(part);
-		// boolean useColorIcons = false; // should we use a preference setting?
-		//
-		// if (image == null || image.isDisposed()) {
-		// // normal image
-		// tabItem.setImage(null);
-		// // disabled image
-		// if (!useColorIcons) {
-		// Image disableImage = tabItem.getDisabledImage();
-		// if (disableImage != null) {
-		// disableImage.dispose();
-		// tabItem.setDisabledImage(null);
-		// }
-		// }
-		// } else if (!image.equals(tabItem.getImage())) {
-		// // normal image
-		// tabItem.setImage(image);
-		// // disabled image
-		// if (!useColorIcons) {
-		// Image disableImage = tabItem.getDisabledImage();
-		// if (disableImage != null)
-		// disableImage.dispose();
-		// Display display = tabItem.getDisplay();
-		// disableImage = new Image(display, image, SWT.IMAGE_DISABLE);
-		// tabItem.setDisabledImage(disableImage);
-		// }
-		// }
-
-	}
-
-	/**
-	 * Returns the label text that should be used for the tab item for the
-	 * specified part
-	 * 
-	 * @param presentablePart
-	 * @param dirtyLeft
-	 * @param includePath
-	 * @return a formated label text
-	 */
-	String getLabelText(IPresentablePart presentablePart, boolean dirtyLeft,
-			boolean includePath) {
-		String title = presentablePart.getName().trim();
-		String text = title;
-
-		if (includePath) {
-			String titleTooltip = presentablePart.getTitleToolTip().trim();
-
-			if (titleTooltip.endsWith(title)) {
-				titleTooltip = titleTooltip.substring(0,
-						titleTooltip.lastIndexOf(title)).trim();
-			}
-
-			if (titleTooltip.endsWith("\\")) { //$NON-NLS-1$
-				titleTooltip = titleTooltip.substring(0,
-						titleTooltip.lastIndexOf("\\")).trim(); //$NON-NLS-1$
-			}
-
-			if (titleTooltip.endsWith("/")) { //$NON-NLS-1$
-				titleTooltip = titleTooltip.substring(0,
-						titleTooltip.lastIndexOf("/")).trim(); //$NON-NLS-1$
-			}
-
-			if (titleTooltip.length() >= 1) {
-				text += " - " + titleTooltip; //$NON-NLS-1$
-			}
-		}
-
-		if (presentablePart.isDirty()) {
-			if (dirtyLeft) {
-				text = "* " + text; //$NON-NLS-1$
-			} else {
-				text = text + " *"; //$NON-NLS-1$
-			}
-		}
-
-		return text;
-	}
-
-	/**
-	 * Returns the image used for the tab item
-	 * 
-	 * @param presentablePart
-	 * @return an image
-	 */
-	Image getLabelImage(IPresentablePart presentablePart) {
-		return presentablePart.getTitleImage();
-	}
-
-	/**
-	 * Returns the tool tip text used for the tab item
-	 * 
-	 * @param presentablePart
-	 * @return a tool tip text
-	 */
-	String getLabelToolTipText(IPresentablePart presentablePart) {
-		return presentablePart.getTitleToolTip();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#addPart(org.eclipse.ui.internal.skins.IPresentablePart,
-	 *      org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void addPart(IPresentablePart newPart, Object cookie) {
-
-		int idx;
-
-		if (cookie instanceof Integer) {
-			idx = ((Integer) cookie).intValue();
-		} else {
-			// Select a location for newly inserted parts
-			idx = tabFolder.getItemCount();
-		}
-
-		addPart(newPart, idx);
-	}
-
-	/**
-	 * Adds the given presentable part to this presentation at the given index.
-	 * Does nothing if a tab already exists for the given part.
-	 * 
-	 * @param newPart
-	 * @param index
-	 */
-	public void addPart(IPresentablePart newPart, int index) {
-		// If we already have a tab for this part, do nothing
-		if (getTab(newPart) != null) {
-			return;
-		}
-		createPartTab(newPart, index);
-
-		// setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#removePart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void removePart(IPresentablePart oldPart) {
-		if (current == oldPart) {
-			current = null;
-		}
-
-		CTabItem item = getTab(oldPart);
-		if (item == null) {
-			return;
-		}
-		oldPart.setVisible(false);
-
-		item.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#selectPart(org.eclipse.ui.internal.skins.IPresentablePart)
-	 */
-	public void selectPart(IPresentablePart toSelect) {
-		if (toSelect == current) {
-			return;
-		}
-		
-		IPresentablePart oldPart = current;
-
-		current = toSelect;
-		
-		if (current != null) {
-			tabFolder.setSelection(indexOf(current));
-			current.setVisible(true);
-			setControlSize();
-
-		}
-
-		if (oldPart != null) {
-			oldPart.setVisible(false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setBounds(org.eclipse.swt.graphics.Rectangle)
-	 */
-	public void setBounds(Rectangle bounds) {
-		tabFolder.setBounds(bounds);
-		setControlSize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#computeMinimumSize()
-	 */
-	public Point computeMinimumSize() {
-		return Geometry.getSize(tabFolder.computeTrim(0, 0, 0, 0));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setVisible(boolean)
-	 */
-	public void setVisible(boolean isVisible) {
-		if (current != null) {
-			current.setVisible(isVisible);
-		}
-
-		getTabFolder().setVisible(isVisible);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#setState(int)
-	 */
-	public void setState(int state) {
-		// tabFolder.setMinimized(state == IPresentationSite.STATE_MINIMIZED);
-		// tabFolder.setMaximized(state == IPresentationSite.STATE_MAXIMIZED);
-	}
-
-	/**
-	 * Returns the system menu manager.
-	 * 
-	 * @return the system menu manager
-	 */
-	public IMenuManager getSystemMenuManager() {
-		return systemMenuManager;
-	}
-
-	/**
-	 * Shows the system context menu at the specified location
-	 * 
-	 * @param point
-	 */
-	protected void showSystemMenu(Point point) {
-		Menu aMenu = systemMenuManager.createContextMenu(tabFolder.getParent());
-		systemMenuManager.update(true);
-		aMenu.setLocation(point.x, point.y);
-		aMenu.setVisible(true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.Presentation#getControl()
-	 */
-	public Control getControl() {
-		return tabFolder;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.skins.StackPresentation#dragOver(org.eclipse.swt.widgets.Control,
-	 *      org.eclipse.swt.graphics.Point)
-	 */
-	public StackDropResult dragOver(Control currentControl, Point location) {
-
-		// Determine which tab we're currently dragging over
-		Point localPos = tabFolder.toControl(location);
-		final CTabItem tabUnderPointer = tabFolder.getItem(localPos);
-
-		// This drop target only deals with tabs... if we're not dragging over
-		// a tab, exit.
-		if (tabUnderPointer == null) {
-			return null;
-		}
-
-		// workaround when left tab is dragged over next
-		int dragOverIndex = tabFolder.indexOf(tabUnderPointer);
-
-		return new StackDropResult(Geometry.toDisplay(tabFolder,
-				tabUnderPointer.getBounds()), new Integer(dragOverIndex));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#showSystemMenu()
-	 */
-	public void showSystemMenu() {
-		if (null != current) {
-			// switch to the editor
-			CTabItem item = getTab(current);
-			getSite().selectPart(getCurrentPart());
-			Rectangle bounds = item.getBounds();
-			int y = bounds.height;
-			if (getTabFolder().getTabPosition() == SWT.BOTTOM) {
-				y += bounds.y;
-			}
-			showSystemMenu(getTabFolder().toDisplay(bounds.x, y));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#showPaneMenu()
-	 */
-	public void showPaneMenu() {
-		IPartMenu menu = getPartMenu();
-
-		if (null != menu) {
-			CTabItem tab = getTab(getCurrentPart());
-
-			if (null != tab && null != tab.getControl()) {
-				Rectangle bounds = DragUtil.getDisplayBounds(tab.getControl());
-				menu.showMenu(new Point(bounds.x, bounds.y + bounds.height));
-			}
-		}
-	}
-
-	/**
-	 * Returns the IPartMenu for the currently selected part, or null if the
-	 * current part does not have a menu.
-	 * 
-	 * @return the IPartMenu for the currently selected part or null if none
-	 */
-	protected IPartMenu getPartMenu() {
-		IPresentablePart part = getCurrentPart();
-		if (part == null) {
-			return null;
-		}
-
-		return part.getMenu();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#getTabList(IPresentablePart)
-	 */
-	public Control[] getTabList(IPresentablePart part) {
-		ArrayList list = new ArrayList();
-		if (getControl() != null) {
-			list.add(getControl());
-		}
-		if (part.getToolBar() != null) {
-			list.add(part.getToolBar());
-		}
-		if (part.getControl() != null) {
-			list.add(part.getControl());
-		}
-		return (Control[]) list.toArray(new Control[list.size()]);
-	}
-
-	/**
-	 * @return the current part
-	 */
-	public IPresentablePart getCurrentPart() {
-		return current;
-	}
-
-	protected String getPaneName() {
-		return R21PresentationMessages.getString("EditorPane.moveEditor"); //$NON-NLS-1$ 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.presentations.StackPresentation#setActive(int)
-	 */
-	public void setActive(int newState) {
-		activeState = newState;
-		updateGradient();
-	}
-	
-    /**
-     * Restores a presentation from a previously stored state
-     * 
-     * @param serializer (not null)
-     * @param savedState (not null)
-     */
-    public void restoreState(IPresentationSerializer serializer, IMemento savedState) {
-        IMemento[] parts = savedState.getChildren(IWorkbenchConstants.TAG_PART);
-        
-        for (int idx = 0; idx < parts.length; idx++) {
-            String id = parts[idx].getString(IWorkbenchConstants.TAG_ID);
-            
-            if (id != null) {
-                IPresentablePart part = serializer.getPart(id);
-                
-                if (part != null) {
-                    addPart(part, tabFolder.getItemCount());
-                }
-            } 
-        }
-    }
-    
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.StackPresentation#saveState(org.eclipse.ui.presentations.IPresentationSerializer, org.eclipse.ui.IMemento)
-     */
-    public void saveState(IPresentationSerializer context, IMemento memento) {
-        super.saveState(context, memento);
-        
-        List parts = getPresentableParts();
-        
-        Iterator iter = parts.iterator();
-        while (iter.hasNext()) {
-            IPresentablePart next = (IPresentablePart)iter.next();
-            
-            IMemento childMem = memento.createChild(IWorkbenchConstants.TAG_PART);
-            childMem.putString(IWorkbenchConstants.TAG_ID, context.getId(next));
-        }
-    }
-    
-    /**
-     * Returns the List of IPresentablePart currently in this presentation
-     */
-    private List getPresentableParts() {
-        Assert.isTrue(!isDisposed());
-        
-        CTabItem[] items = tabFolder.getItems();
-        List result = new ArrayList(items.length);
-        
-        for (int idx = 0; idx < tabFolder.getItemCount(); idx++) {
-            result.add(getPartForTab(items[idx]));
-        }
-        
-        return result;
-    }
-    }
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21PresentationFactory.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21PresentationFactory.java
deleted file mode 100644
index 04f2b83..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21PresentationFactory.java
+++ /dev/null
@@ -1,48 +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.presentations;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-import org.eclipse.ui.presentations.WorkbenchPresentationFactory;
-
-/**
- * A presentation factory that creates a look similar to previous verisons of eclipse.
- */
-public class R21PresentationFactory extends WorkbenchPresentationFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.AbstractPresentationFactory
-     */
-    public StackPresentation createEditorPresentation(Composite parent,
-            IStackPresentationSite site) {
-        return new R21EditorStackPresentation(parent, site);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.AbstractPresentationFactory
-     */
-    public StackPresentation createViewPresentation(Composite parent,
-            IStackPresentationSite site) {
-        return new R21ViewStackPresentation(parent, site);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.presentations.AbstractPresentationFactory
-     */
-    public StackPresentation createStandaloneViewPresentation(Composite parent,
-            IStackPresentationSite site, boolean showTitle) {
-        // TODO: honour showTitle
-        return new R21ViewStackPresentation(parent, site);
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java
deleted file mode 100644
index 348bc92..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/R21ViewStackPresentation.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.presentations.r21.R21PresentationMessages;
-import org.eclipse.ui.internal.presentations.r21.widgets.CTabFolderEvent;
-import org.eclipse.ui.internal.presentations.r21.widgets.R21PaneFolder;
-import org.eclipse.ui.internal.presentations.r21.widgets.R21PaneFolderButtonListener;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * Controls the appearance of views stacked into the workbench.
- * 
- * @since 3.0
- */
-public class R21ViewStackPresentation extends R21BasicStackPresentation {
-
-   	// don't reset this dynamically, so just keep the information static.
-	// see bug:
-	//   75422 [Presentations] Switching presentation to R21 switches immediately, but only partially
-    private static int tabPos = PlatformUI.getPreferenceStore().getInt(IWorkbenchPreferenceConstants.VIEW_TAB_POSITION);
-  
-    private R21PaneFolderButtonListener showListListener = new R21PaneFolderButtonListener() {
-
-        public void showList(CTabFolderEvent event) {
-            event.doit = false;
-            showListDefaultLocation();
-        }
-    };
-
-    /**
-	 * Create a new view stack presentation.
-	 *
-     * @param parent
-     * @param newSite
-     */
-    public R21ViewStackPresentation(Composite parent,
-            IStackPresentationSite newSite) {
-
-        super(new R21PaneFolder(parent, SWT.BORDER), newSite);
-        R21PaneFolder tabFolder = getPaneFolder();
-
-        tabFolder.addButtonListener(showListListener);
-
-        tabFolder.setTabPosition(tabPos);
-        updateGradient();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.skins.Presentation#setActive(boolean)
-     */
-    public void setActive(boolean isActive) {
-        super.setActive(isActive);
-
-        updateGradient();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.presentations.DefaultPartPresentation#getPartMenu()
-     */
-    protected String getPaneName() {
-        return R21PresentationMessages.getString("ViewPane.moveView"); //$NON-NLS-1$ 
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java
deleted file mode 100644
index 157c602..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21Colors.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations.r21;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * This class manages the R21 workbench colors (they are fixed).
- */
-public class R21Colors {
-
-    static private boolean init = false;
-
-    static private HashMap colorMap;
-
-    static private HashMap systemColorMap;
-
-    static private Color workbenchColors[];
-
-    static private Color[] activeViewGradient;
-
-    static private Color[] deactivatedViewGradient;
-
-    static private Color[] activeEditorGradient;
-
-    static private Color[] activeNoFocusEditorGradient;
-
-    static private Color[] deactivatedEditorGradient;
-
-    static private int[] activeViewPercentages;
-
-    static private int[] deactivatedViewPercentages;
-
-    static private int[] activeEditorPercentages;
-
-    static private int[] activeNoFocusEditorPercentages;
-
-    static private int[] deactivatedEditorPercentages;
-
-    static private final String CLR_VIEW_GRAD_START = "clrViewGradStart";//$NON-NLS-1$
-
-    static private final String CLR_VIEW_GRAD_END = "clrViewGradEnd";//$NON-NLS-1$
-
-    static private final String CLR_EDITOR_GRAD_START = "clrEditorGradStart";//$NON-NLS-1$
-
-    static private final String CLR_EDITOR_GRAD_END = "clrEditorGradEnd";//$NON-NLS-1$
-
-    /**
-     * Dispose all color pre-allocated by the workbench.
-     */
-    private static void disposeWorkbenchColors() {
-        for (int i = 0; i < workbenchColors.length; i++) {
-            workbenchColors[i].dispose();
-        }
-    }
-
-    /**
-     * Returns the active editor gradient.
-     * @return an array of colors
-     */
-    static public Color[] getActiveEditorGradient() {
-        return activeEditorGradient;
-    }
-
-    /**
-     * Returns the active editor gradient end color.
-     * @return the color
-     */
-    static public Color getActiveEditorGradientEnd() {
-        Color clr = (Color) systemColorMap.get(CLR_EDITOR_GRAD_END);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the active editor gradient percents.
-     * @return an array of ints
-     */
-    static public int[] getActiveEditorGradientPercents() {
-        return activeEditorPercentages;
-    }
-
-    /**
-     * Returns the active editor gradient start color.
-     * @return the color
-     */
-    static public Color getActiveEditorGradientStart() {
-        Color clr = (Color) systemColorMap.get(CLR_EDITOR_GRAD_START);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the active no focus editor gradient.
-     * @return an array of colors
-     */
-    static public Color[] getActiveNoFocusEditorGradient() {
-        return activeNoFocusEditorGradient;
-    }
-
-    /**
-     * Returns the active no focus editor gradient percents.
-     * @return an array of ints
-     */
-    static public int[] getActiveNoFocusEditorGradientPercents() {
-        return activeNoFocusEditorPercentages;
-    }
-
-    /**
-     * Returns the active gradient for views.
-     * @return an arry of colors
-     */
-    static public Color[] getActiveViewGradient() {
-        return activeViewGradient;
-    }
-
-    /**
-     * Returns the active view gradient end color.
-     * @return the color
-     */
-    static public Color getActiveViewGradientEnd() {
-        Color clr = (Color) systemColorMap.get(CLR_VIEW_GRAD_END);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the active view gradient percents.
-     * @return an arry of ints
-     */
-    static public int[] getActiveViewGradientPercents() {
-        return activeViewPercentages;
-    }
-
-    /**
-     * Returns the active view gradient start color.
-     * @return the color
-     */
-    static public Color getActiveViewGradientStart() {
-        Color clr = (Color) systemColorMap.get(CLR_VIEW_GRAD_START);
-        Assert.isNotNull(clr);
-        return clr;
-    }
-
-    /**
-     * Returns the gradient for editors when the window is deactivated.
-     * @return an array of colors
-     */
-    static public Color[] getDeactivatedEditorGradient() {
-        return deactivatedEditorGradient;
-    }
-
-    /**
-     * Returns the editor gradient percents when the window is deactivated.
-     * @return an array of ints
-     */
-    static public int[] getDeactivatedEditorGradientPercents() {
-        return deactivatedEditorPercentages;
-    }
-
-    /**
-     * Returns the gradient for views when the window is deactivated.
-     * @return an array of colors
-     */
-    static public Color[] getDeactivatedViewGradient() {
-        return deactivatedViewGradient;
-    }
-
-    /**
-     * Returns the view gradient percents when the window is deactivated.
-     * @return an array of ints
-     */
-    static public int[] getDeactivatedViewGradientPercents() {
-        return deactivatedViewPercentages;
-    }
-
-    /**
-     * Returns a color identified by an RGB value.
-     * @param rgbValue 
-     * @return the color 
-     */
-    static public Color getColor(RGB rgbValue) {
-        Color clr = (Color) colorMap.get(rgbValue);
-        if (clr == null) {
-            Display disp = Display.getDefault();
-            clr = new Color(disp, rgbValue);
-            colorMap.put(rgbValue, clr);
-        }
-        return clr;
-    }
-
-    /**
-     * Returns a system color identified by a SWT constant.
-     * @param swtId 
-     * @return the color
-     */
-    static public Color getSystemColor(int swtId) {
-        Integer bigInt = new Integer(swtId);
-        Color clr = (Color) systemColorMap.get(bigInt);
-        if (clr == null) {
-            Display disp = Display.getDefault();
-            clr = disp.getSystemColor(swtId);
-            systemColorMap.put(bigInt, clr);
-        }
-        return clr;
-    }
-
-    /**
-     * Initialize all colors used in the workbench in case the OS is using a 256
-     * color palette making sure the workbench colors are allocated.
-     * 
-     * This list comes from the designers.
-     */
-    private static void initWorkbenchColors(Display d) {
-        if (workbenchColors != null) {
-			return;
-		}
-
-        workbenchColors = new Color[] {
-        //Product pallet
-                new Color(d, 255, 255, 255), new Color(d, 255, 251, 240),
-                new Color(d, 223, 223, 191), new Color(d, 223, 191, 191),
-                new Color(d, 192, 220, 192), new Color(d, 192, 192, 192),
-                new Color(d, 191, 191, 191), new Color(d, 191, 191, 159),
-                new Color(d, 191, 159, 191), new Color(d, 160, 160, 164),
-                new Color(d, 159, 159, 191), new Color(d, 159, 159, 159),
-                new Color(d, 159, 159, 127), new Color(d, 159, 127, 159),
-                new Color(d, 159, 127, 127), new Color(d, 128, 128, 128),
-                new Color(d, 127, 159, 159), new Color(d, 127, 159, 127),
-                new Color(d, 127, 127, 159), new Color(d, 127, 127, 127),
-                new Color(d, 127, 127, 95), new Color(d, 127, 95, 127),
-                new Color(d, 127, 95, 95), new Color(d, 95, 127, 127),
-                new Color(d, 95, 127, 95), new Color(d, 95, 95, 127),
-                new Color(d, 95, 95, 95), new Color(d, 95, 95, 63),
-                new Color(d, 95, 63, 95), new Color(d, 95, 63, 63),
-                new Color(d, 63, 95, 95), new Color(d, 63, 95, 63),
-                new Color(d, 63, 63, 95), new Color(d, 0, 0, 0),
-                //wizban pallet
-                new Color(d, 195, 204, 224), new Color(d, 214, 221, 235),
-                new Color(d, 149, 168, 199), new Color(d, 128, 148, 178),
-                new Color(d, 106, 128, 158), new Color(d, 255, 255, 255),
-                new Color(d, 0, 0, 0), new Color(d, 0, 0, 0),
-                //Perspective
-                new Color(d, 132, 130, 132), new Color(d, 143, 141, 138),
-                new Color(d, 171, 168, 165),
-                //PreferenceDialog and TitleAreaDialog
-                new Color(d, 230, 226, 221) };
-    }
-
-    /**
-     * Disposes of the colors. Ignore all system colors as they do not need to
-     * be disposed.
-     */
-    static public void shutdown() {
-        if (!init) {
-			return;
-		}
-
-        disposeWorkbenchColors();
-
-        Iterator iter = colorMap.values().iterator();
-        while (iter.hasNext()) {
-            Color clr = (Color) iter.next();
-            if (clr != null) {
-                clr.dispose();
-            }
-        }
-
-        colorMap.clear();
-        systemColorMap.clear();
-        init = false;
-    }
-
-    /**
-     * Initializes the colors.
-     */
-    static public void startup() {
-        if (init) {
-			return;
-		}
-
-        // Initialize the caches first.
-        init = true;
-        colorMap = new HashMap(10);
-        systemColorMap = new HashMap(10);
-
-        initWorkbenchColors(Display.getDefault());
-        // Define active view gradient using same OS title gradient colors.
-        Color clr1 = getSystemColor(SWT.COLOR_TITLE_BACKGROUND);
-        Color clr2 = getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT);
-        Color clr3 = getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-        systemColorMap.put(CLR_VIEW_GRAD_START, clr1);
-        systemColorMap.put(CLR_VIEW_GRAD_END, clr3);
-        activeViewGradient = new Color[] { clr1, clr2, clr3 };
-        activeViewPercentages = new int[] { 50, 100 };
-
-        // Define active editor gradient using same OS title gradient colors.
-        systemColorMap.put(CLR_EDITOR_GRAD_START, clr1);
-        systemColorMap.put(CLR_EDITOR_GRAD_END, null); // use widget default
-        // background
-        activeEditorGradient = new Color[] { clr1, clr2, null, null };
-        activeEditorPercentages = new int[] { 50, 90, 100 };
-
-        // Define active no focus editor gradient
-        activeNoFocusEditorGradient = new Color[] { getSystemColor(SWT.COLOR_LIST_BACKGROUND) };
-        activeNoFocusEditorPercentages = new int[0];
-
-        // Define view gradient for deactivated window using same OS title
-        // gradient colors.
-        clr1 = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND);
-        clr2 = getSystemColor(SWT.COLOR_TITLE_INACTIVE_BACKGROUND_GRADIENT);
-        clr3 = getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-        deactivatedViewGradient = new Color[] { clr1, clr2, clr3 };
-        deactivatedViewPercentages = new int[] { 70, 100 };
-
-        // Define editor gradient for deactivated window using same OS title
-        // gradient colors.
-        deactivatedEditorGradient = new Color[] { clr1, clr2, null, null };
-        deactivatedEditorPercentages = new int[] { 70, 95, 100 };
-
-        // Preload.
-        getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
-        getSystemColor(SWT.COLOR_BLACK);
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationMessages.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationMessages.java
deleted file mode 100644
index 9ef639c..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationMessages.java
+++ /dev/null
@@ -1,73 +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.presentations.r21;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps managing messages
- */
-public abstract class R21PresentationMessages {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.internal.presentations.r21.messages"; //$NON-NLS-1$
-
-    private static ResourceBundle bundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    /**
-     * Returns the formatted message for the given key in the resource bundle.
-     * 
-     * @param key
-     *            the resource name
-     * @param args
-     *            the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the key is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return key;
-        }
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the default value is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @param def
-     *            the default value
-     * @return the string
-     */
-    public static String getString(String key, String def) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return def;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java
deleted file mode 100644
index 4217209..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/R21PresentationPlugin.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations.r21;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class R21PresentationPlugin extends AbstractUIPlugin {
-    //The shared instance.
-    private static R21PresentationPlugin plugin;
-
-    //Resource bundle.
-    private ResourceBundle resourceBundle;
-
-    /**
-     * The constructor.
-     */
-    public R21PresentationPlugin() {
-        super();
-        plugin = this;
-        try {
-            resourceBundle = ResourceBundle
-                    .getBundle("org.eclipse.ui.internal.r21presentation.R21lookPluginResources"); //$NON-NLS-1$
-        } catch (MissingResourceException x) {
-            resourceBundle = null;
-        }
-    }
-
-    /**
-     * Returns the shared instance.
-     * @return the plug-in
-     */
-    public static R21PresentationPlugin getDefault() {
-        return plugin;
-    }
-
-    /**
-     * Returns the string from the plugin's resource bundle,
-     * or 'key' if not found.
-     * @param key 
-     * @return the string
-     */
-    public static String getResourceString(String key) {
-        ResourceBundle bundle = R21PresentationPlugin.getDefault()
-                .getResourceBundle();
-        try {
-            return (bundle != null) ? bundle.getString(key) : key;
-        } catch (MissingResourceException e) {
-            return key;
-        }
-    }
-
-    /**
-     * Returns the plugin's resource bundle,
-     * @return the resource bundle
-     */
-    public ResourceBundle getResourceBundle() {
-        return resourceBundle;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-     */
-    public void start(BundleContext context) throws Exception {
-        super.start(context);
-        R21Colors.startup();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-     */
-    public void stop(BundleContext context) throws Exception {
-        super.stop(context);
-        R21Colors.shutdown();
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/messages.properties b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/messages.properties
deleted file mode 100644
index db4b916..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/messages.properties
+++ /dev/null
@@ -1,19 +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.r21presentation
-
-BasicStackPresentation.menu.tooltip=Menu
-BasicStackPresentation.close.tooltip=Close
-BasicStackPresentation.pane=&Pane
-
-ViewPane.moveView=&View
-EditorPane.moveEditor=&Editor
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java
deleted file mode 100644
index 2311c56..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolder.java
+++ /dev/null
@@ -1,2574 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations.r21.widgets;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-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.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-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.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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.TypedListener;
-
-/**
- * Instances of this class implement the notebook user interface
- * metaphor.  It allows the user to select a notebook page from
- * set of pages.
- * <p>
- * The item children that may be added to instances of this class
- * must be of type <code>CTabItem</code>.
- * <code>Control</code> children are created and then set into a
- * tab item using <code>CTabItem#setControl</code>.
- * </p><p>
- * Note that although this class is a subclass of <code>Composite</code>,
- * it does not make sense to set a layout on it.
- * </p><p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>TOP, BOTTOM, FLAT</dd>
- * <dt><b>Events:</b></dt>
- * <dd>Selection</dd>
- * <dd>"CTabFolder"</dd>
- * </dl>
- * <p>
- * Note: Only one of the styles TOP and BOTTOM 
- * may be specified.
- * </p><p>
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- * </p>
- */
-
-public class CTabFolder extends Composite {
-
-    /**
-     * marginWidth specifies the number of pixels of horizontal margin
-     * that will be placed along the left and right edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginWidth = 0;
-
-    /**
-     * marginHeight specifies the number of pixels of vertical margin
-     * that will be placed along the top and bottom edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginHeight = 0;
-
-    /**
-     * Color of innermost line of drop shadow border.
-     */
-    public static RGB borderInsideRGB = new RGB(132, 130, 132);
-
-    /**
-     * Color of middle line of drop shadow border.
-     */
-    public static RGB borderMiddleRGB = new RGB(143, 141, 138);
-
-    /**
-     * Color of outermost line of drop shadow border.
-     */
-    public static RGB borderOutsideRGB = new RGB(171, 168, 165);
-
-    /**
-     * A multiple of the tab height that specifies the minimum width to which a tab 
-     * will be compressed before scrolling arrows are used to navigate the tabs.
-     */
-    public int MIN_TAB_WIDTH = 3;
-
-    /* sizing, positioning */
-    int xClient, yClient;
-
-    boolean onBottom = false;
-
-    boolean fixedTabHeight;
-
-    int tabHeight;
-
-    /* item management */
-    private CTabItem items[] = new CTabItem[0];
-
-    private int selectedIndex = -1;
-
-    int topTabIndex = -1; // index of the left most visible tab.
-
-    /* External Listener management */
-    private CTabFolderListener[] tabListeners = new CTabFolderListener[0];
-
-    /* Color appearance */
-    Image backgroundImage;
-
-    Color[] gradientColors;
-
-    int[] gradientPercents;
-
-    Color selectionForeground;
-
-    Color background;
-
-    // internal constants
-    private static final int DEFAULT_WIDTH = 64;
-
-    private static final int DEFAULT_HEIGHT = 64;
-
-    // scrolling arrows
-    private ToolBar arrowBar;
-
-    private Image arrowLeftImage;
-
-    private Image arrowRightImage;
-
-    private Control topRight;
-
-    // close button
-    boolean showClose = false;
-
-    private Image closeImage;
-
-    ToolBar closeBar;
-
-    private ToolBar inactiveCloseBar;
-
-    private CTabItem inactiveItem;
-
-    // borders
-    boolean showBorders = false;
-
-    private int borderBottom = 0;
-
-    private int borderLeft = 0;
-
-    private int borderRight = 0;
-
-    private int borderTop = 0;
-
-    private Color borderColor1;
-
-    private Color borderColor2;
-
-    private Color borderColor3;
-
-    // when disposing CTabFolder, don't try to layout the items or 
-    // change the selection as each child is destroyed.
-    private boolean inDispose = false;
-
-    // keep track of size changes in order to redraw only affected area
-    // on Resize
-    private Point oldSize;
-
-    private Font oldFont;
-
-    // insertion marker
-    int insertionIndex = -2; // Index of insert marker.  Marker always shown after index.
-
-    // -2 means no insert marker
-
-    // tool tip
-    private Shell tip;
-
-    private Label label;
-
-    private boolean showToolTip = false;
-
-    private CTabItem toolTipItem;
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * and a style value describing its behavior and appearance.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a widget which will be the parent of the new instance (cannot be null)
-     * @param style the style of widget to construct
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT#TOP
-     * @see SWT#BOTTOM
-     * @see SWT#FLAT
-     * @see #getStyle()
-     */
-    public CTabFolder(Composite parent, int style) {
-        super(parent, checkStyle(style));
-
-        onBottom = (getStyle() & SWT.BOTTOM) != 0;
-
-        borderColor1 = new Color(getDisplay(), borderInsideRGB);
-        borderColor2 = new Color(getDisplay(), borderMiddleRGB);
-        borderColor3 = new Color(getDisplay(), borderOutsideRGB);
-
-        // tool tip support
-        tip = new Shell(getShell(), SWT.ON_TOP);
-        label = new Label(tip, SWT.CENTER);
-
-        // Add all listeners
-        Listener listener = new Listener() {
-            public void handleEvent(Event event) {
-                switch (event.type) {
-                case SWT.Dispose:
-                    onDispose();
-                    break;
-                case SWT.Paint:
-                    onPaint(event);
-                    break;
-                case SWT.Resize:
-                    onResize();
-                    break;
-                case SWT.MouseDoubleClick:
-                    onMouseDoubleClick(event);
-                    break;
-                case SWT.MouseDown:
-                    onMouseDown(event);
-                    break;
-                case SWT.MouseExit:
-                    onMouseExit(event);
-                    break;
-                case SWT.MouseHover:
-                    onMouseHover(event);
-                    break;
-                case SWT.MouseMove:
-                    onMouseMove(event);
-                    break;
-                case SWT.FocusIn:
-                    onFocus(event);
-                    break;
-                case SWT.FocusOut:
-                    onFocus(event);
-                    break;
-                case SWT.KeyDown:
-                    onKeyDown(event);
-                    break;
-                case SWT.Traverse:
-                    onTraverse(event);
-                    break;
-                }
-            }
-        };
-
-        int[] folderEvents = new int[] { SWT.Dispose, SWT.Paint, SWT.Resize,
-                SWT.MouseDoubleClick, SWT.MouseDown, SWT.MouseExit,
-                SWT.MouseHover, SWT.MouseMove, SWT.FocusIn, SWT.FocusOut,
-                SWT.KeyDown, SWT.Traverse, };
-        for (int i = 0; i < folderEvents.length; i++) {
-            addListener(folderEvents[i], listener);
-        }
-
-        createArrowBar();
-        createCloseBar();
-
-        setBorderVisible((style & SWT.BORDER) != 0);
-
-        initAccessible();
-
-    }
-
-    private static int checkStyle(int style) {
-        int mask = SWT.TOP | SWT.BOTTOM | SWT.FLAT | SWT.LEFT_TO_RIGHT
-                | SWT.RIGHT_TO_LEFT;
-        style = style & mask;
-        // TOP and BOTTOM are mutually exlusive.
-        // TOP is the default
-        if ((style & SWT.TOP) != 0) {
-			style = style & ~(SWT.TOP | SWT.BOTTOM) | SWT.TOP;
-		}
-        // reduce the flash by not redrawing the entire area on a Resize event
-        style |= SWT.NO_REDRAW_RESIZE;
-        return style;
-    }
-
-    /**	 
-     * Adds the listener to receive events.
-     * <p>
-     *
-     * @param listener the listener
-     *
-     * @exception SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     * 		<li>ERROR_NULL_ARGUMENT when listener is null</li>
-     *	</ul>
-     */
-    public void addSelectionListener(SelectionListener listener) {
-        checkWidget();
-        if (listener == null) {
-            SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        }
-        TypedListener typedListener = new TypedListener(listener);
-        addListener(SWT.Selection, typedListener);
-        addListener(SWT.DefaultSelection, typedListener);
-    }
-
-    /**
-     * Adds the listener to the collection of listeners who will
-     * be notified when a tab item is closed.
-     *
-     * @param listener the listener which should be notified
-     *
-     * @exception IllegalArgumentException <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *      <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
-     * </ul>
-     *
-     * @see CTabFolderListener
-     * @see #removeCTabFolderListener
-     */
-    public void addCTabFolderListener(CTabFolderListener listener) {
-        checkWidget();
-        if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        // add to array
-        CTabFolderListener[] newTabListeners = new CTabFolderListener[tabListeners.length + 1];
-        System.arraycopy(tabListeners, 0, newTabListeners, 0,
-                tabListeners.length);
-        tabListeners = newTabListeners;
-        tabListeners[tabListeners.length - 1] = listener;
-        showClose = true;
-        setButtonBounds();
-    }
-
-    private void closeNotify(CTabItem item, int time) {
-        if (item == null) {
-			return;
-		}
-
-        CTabFolderEvent event = new CTabFolderEvent(this);
-        event.widget = this;
-        event.time = time;
-        event.item = item;
-        event.doit = true;
-        if (tabListeners != null) {
-            for (int i = 0; i < tabListeners.length; i++) {
-                tabListeners[i].itemClosed(event);
-            }
-        }
-        if (event.doit) {
-            item.dispose();
-        }
-    }
-
-    public Point computeSize(int wHint, int hHint, boolean changed) {
-        checkWidget();
-        int minWidth = 0;
-        int minHeight = 0;
-
-        // preferred width of tab area to show all tabs
-        GC gc = new GC(this);
-        for (int i = 0; i < items.length; i++) {
-            minWidth += items[i].preferredWidth(gc);
-        }
-        gc.dispose();
-
-        // preferred size of controls in tab items
-        for (int i = 0; i < items.length; i++) {
-            Control control = items[i].getControl();
-            if (control != null && !control.isDisposed()) {
-                Point size = control.computeSize(wHint, hHint);
-                minWidth = Math.max(minWidth, size.x);
-                minHeight = Math.max(minHeight, size.y);
-            }
-        }
-        if (minWidth == 0) {
-			minWidth = DEFAULT_WIDTH;
-		}
-        if (minHeight == 0) {
-			minHeight = DEFAULT_HEIGHT;
-		}
-
-        if (wHint != SWT.DEFAULT) {
-			minWidth = wHint;
-		}
-        if (hHint != SWT.DEFAULT) {
-			minHeight = hHint;
-		}
-
-        Rectangle trim = computeTrim(0, 0, minWidth, minHeight);
-        return new Point(trim.width, trim.height);
-    }
-
-    public Rectangle computeTrim(int x, int y, int width, int height) {
-        checkWidget();
-        if (items.length == 0) {
-            if (!showBorders) {
-				return new Rectangle(x, y, width, height);
-			}
-            int trimX = x - borderRight - 1;
-            int trimY = y - borderBottom - 1;
-            int trimWidth = width + borderRight + 2;
-            int trimHeight = height + borderBottom + 2;
-            return new Rectangle(trimX, trimY, trimWidth, trimHeight);
-        }
-		int trimX = x - marginWidth - borderLeft;
-		int trimY = y - marginHeight - tabHeight - borderTop - 1;
-		// -1 is for the line at the bottom of the tabs
-		if (onBottom) {
-		    trimY = y - marginHeight - borderTop;
-		}
-		int trimWidth = width + borderLeft + borderRight + 2 * marginWidth;
-		int trimHeight = height + borderTop + borderBottom + 2
-		        * marginHeight + tabHeight + 1;
-		return new Rectangle(trimX, trimY, trimWidth, trimHeight);
-    }
-
-    /**
-     * Create the specified item at 'index'.
-     */
-    void createItem(CTabItem item, int index) {
-        if (0 > index || index > getItemCount()) {
-            SWT.error(SWT.ERROR_INVALID_RANGE);
-        }
-        // grow by one and rearrange the array.
-        CTabItem[] newItems = new CTabItem[items.length + 1];
-        System.arraycopy(items, 0, newItems, 0, index);
-        newItems[index] = item;
-        System.arraycopy(items, index, newItems, index + 1, items.length
-                - index);
-        items = newItems;
-
-        item.parent = this;
-
-        if (selectedIndex >= index) {
-            selectedIndex++;
-        }
-        if (items.length == 1) {
-            topTabIndex = 0;
-            resetTabSize(true);
-        } else {
-            setItemBounds();
-            showItem(item);
-        }
-
-        if (items.length == 1) {
-            redraw();
-        } else {
-            redrawTabArea(-1);
-        }
-    }
-
-    private void createArrowBar() {
-        // create arrow buttons for scrolling 
-        arrowBar = new ToolBar(this, SWT.FLAT);
-        arrowBar.setVisible(false);
-        arrowBar.setBackground(background);
-        ToolItem scrollLeft = new ToolItem(arrowBar, SWT.PUSH);
-        scrollLeft.setEnabled(false);
-        ToolItem scrollRight = new ToolItem(arrowBar, SWT.PUSH);
-        scrollRight.setEnabled(false);
-
-        scrollLeft.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                scroll_scrollLeft();
-            }
-        });
-        scrollRight.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                scroll_scrollRight();
-            }
-        });
-
-    }
-
-    private void createCloseBar() {
-        closeBar = new ToolBar(this, SWT.FLAT);
-        closeBar.setVisible(false);
-        if (gradientColors != null && gradientColors.length > 0) {
-            closeBar.setBackground(gradientColors[gradientColors.length - 1]);
-        } else {
-            closeBar.setBackground(background);
-        }
-        ToolItem closeItem = new ToolItem(closeBar, SWT.PUSH);
-
-        inactiveCloseBar = new ToolBar(this, SWT.FLAT);
-        inactiveCloseBar.setVisible(false);
-        inactiveCloseBar.setBackground(background);
-        ToolItem inactiveCloseItem = new ToolItem(inactiveCloseBar, SWT.PUSH);
-
-        closeItem.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                closeNotify(getSelection(), event.time);
-            }
-        });
-        inactiveCloseItem.addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                closeNotify(inactiveItem, event.time);
-                inactiveCloseBar.setVisible(false);
-                inactiveItem = null;
-            }
-        });
-        inactiveCloseBar.addListener(SWT.MouseExit, new Listener() {
-            public void handleEvent(Event event) {
-                if (inactiveItem != null) {
-                    Rectangle itemBounds = inactiveItem.getBounds();
-                    if (itemBounds.contains(event.x, event.y)) {
-						return;
-					}
-                }
-                inactiveCloseBar.setVisible(false);
-                inactiveItem = null;
-            }
-        });
-
-    }
-
-    /**
-     * Destroy the specified item.
-     */
-    void destroyItem(CTabItem item) {
-        if (inDispose) {
-			return;
-		}
-
-        int index = indexOf(item);
-        if (index == -1) {
-			return; // should this trigger an error?
-		}
-
-        insertionIndex = -2;
-
-        if (items.length == 1) {
-            items = new CTabItem[0];
-            selectedIndex = -1;
-            topTabIndex = 0;
-
-            Control control = item.getControl();
-            if (control != null && !control.isDisposed()) {
-                control.setVisible(false);
-            }
-            closeBar.setVisible(false);
-            if (!fixedTabHeight) {
-				tabHeight = 0;
-			}
-            redraw();
-            return;
-        }
-
-        // shrink by one and rearrange the array.
-        CTabItem[] newItems = new CTabItem[items.length - 1];
-        System.arraycopy(items, 0, newItems, 0, index);
-        System.arraycopy(items, index + 1, newItems, index, items.length
-                - index - 1);
-        items = newItems;
-
-        if (topTabIndex == items.length) {
-            --topTabIndex;
-        }
-
-        // move the selection if this item is selected
-        if (selectedIndex == index) {
-            Control control = item.getControl();
-            if (control != null && !control.isDisposed()) {
-                control.setVisible(false);
-            }
-            selectedIndex = -1;
-            setSelection(Math.max(0, index - 1), true);
-        } else if (selectedIndex > index) {
-            selectedIndex--;
-        }
-
-        setItemBounds();
-        redrawTabArea(-1);
-    }
-
-    private void onKeyDown(Event e) {
-        if (e.keyCode != SWT.ARROW_LEFT && e.keyCode != SWT.ARROW_RIGHT) {
-			return;
-		}
-        int leadKey = (getStyle() & SWT.MIRRORED) != 0 ? SWT.ARROW_RIGHT
-                : SWT.ARROW_LEFT;
-        if (e.keyCode == leadKey) {
-            if (selectedIndex > 0) {
-                setSelection(selectedIndex - 1, true);
-            }
-        } else {
-            if (selectedIndex < items.length - 1) {
-                setSelection(selectedIndex + 1, true);
-            }
-        }
-    }
-
-    /**
-     * Dispose the items of the receiver
-     */
-    private void onDispose() {
-        /*
-         * Usually when an item is disposed, destroyItem will change the size of the items array, 
-         * reset the bounds of all the tabs and manage the widget associated with the tab.
-         * Since the whole folder is being disposed, this is not necessary.  For speed
-         * the inDispose flag is used to skip over this part of the item dispose.
-         */
-        inDispose = true;
-
-        int length = items.length;
-        for (int i = 0; i < length; i++) {
-            if (items[i] != null) {
-                items[i].dispose();
-            }
-        }
-
-        // clean up resources
-        if (tip != null && !tip.isDisposed()) {
-            tip.dispose();
-            tip = null;
-            label = null;
-        }
-
-        if (arrowLeftImage != null) {
-			arrowLeftImage.dispose();
-		}
-        arrowLeftImage = null;
-        if (arrowRightImage != null) {
-			arrowRightImage.dispose();
-		}
-        arrowRightImage = null;
-        if (closeImage != null) {
-			closeImage.dispose();
-		}
-        closeImage = null;
-
-        gradientColors = null;
-        gradientPercents = null;
-        backgroundImage = null;
-
-        if (borderColor1 != null) {
-			borderColor1.dispose();
-		}
-        borderColor1 = null;
-
-        if (borderColor2 != null) {
-			borderColor2.dispose();
-		}
-        borderColor2 = null;
-
-        if (borderColor3 != null) {
-			borderColor3.dispose();
-		}
-        borderColor3 = null;
-    }
-
-    /**
-	 * @param e  
-	 */
-    private void onFocus(Event e) {
-        checkWidget();
-        if (selectedIndex >= 0) {
-            redrawTabArea(selectedIndex);
-        } else {
-            setSelection(0, true);
-        }
-    }
-
-    /** 
-     * Draw a border around the receiver.
-     */
-    private void drawBorder(GC gc) {
-
-        Rectangle d = super.getClientArea();
-
-        if (showBorders) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 1, d.y + d.height
-                        - 1);
-            } else {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 3, d.y + d.height
-                        - 3);
-
-                gc.setForeground(borderColor2);
-                gc.drawLine(d.x + 1, d.y + d.height - 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-                gc.drawLine(d.x + d.width - 2, d.y + 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-
-                gc.setForeground(borderColor3);
-                gc.drawLine(d.x + 2, d.y + d.height - 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-                gc.drawLine(d.x + d.width - 1, d.y + 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-
-                // fill in corners with parent's background
-                gc.setForeground(getParent().getBackground());
-                gc.drawLine(d.x + d.width - 2, d.y, d.x + d.width - 1, d.y);
-                gc.drawLine(d.x + d.width - 1, d.y + 1, d.x + d.width - 1,
-                        d.y + 1);
-
-                gc.drawLine(d.x, d.y + d.height - 2, d.x, d.y + d.height - 2);
-                gc.drawLine(d.x, d.y + d.height - 1, d.x + 1, d.y + d.height
-                        - 1);
-
-                gc.drawLine(d.x + d.width - 1, d.y + d.height - 1, d.x
-                        + d.width - 1, d.y + d.height - 1);
-            }
-
-        }
-
-        // draw a separator line
-        if (items.length > 0) {
-            int lineY = d.y + borderTop + tabHeight;
-            if (onBottom) {
-                lineY = d.y + d.height - borderBottom - tabHeight - 1;
-            }
-            gc.setForeground(borderColor1);
-            gc.drawLine(d.x + borderLeft, lineY, d.x + d.width - borderRight,
-                    lineY);
-        }
-
-        gc.setForeground(getForeground());
-    }
-
-    public Rectangle getClientArea() {
-        checkWidget();
-        Point size = getSize();
-        if (items.length == 0) {
-            if (!showBorders) {
-				return super.getClientArea();
-			}
-            int width = size.x - borderRight - 2;
-            int height = size.y - borderBottom - 2;
-            return new Rectangle(borderRight + 1, borderBottom + 1, width,
-                    height);
-        }
-		int width = size.x - 2 * marginWidth - borderLeft - borderRight;
-		int height = size.y - 2 * marginHeight - borderTop - borderBottom
-		        - tabHeight - 1;
-		return new Rectangle(xClient, yClient, width, height);
-    }
-
-    /**
-     * Returns the height of the tab
-     * 
-     * @return the height of the tab
-     * 
-     * @exception SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *	</ul>
-     */
-    public int getTabHeight() {
-        checkWidget();
-        return tabHeight;
-    }
-
-    /**
-     * Return the tab that is located at the specified index.
-     * @param index 
-     * 
-     * @return the item at the specified index
-     */
-    public CTabItem getItem(int index) {
-        //checkWidget();
-        if (index < 0 || index >= items.length) {
-			SWT.error(SWT.ERROR_INVALID_RANGE);
-		}
-        return items[index];
-    }
-
-    /**
-     * Gets the item at a point in the widget.
-     * <p>
-     * @param pt 
-     *
-     * @return the item at a point
-     */
-    public CTabItem getItem(Point pt) {
-        //checkWidget();
-        if (items.length == 0) {
-			return null;
-		}
-        int lastItem = getLastItem();
-        lastItem = Math.min(items.length - 1, lastItem + 1);
-        for (int i = topTabIndex; i <= lastItem; i++) {
-            Rectangle bounds = items[i].getBounds();
-            if (bounds.contains(pt)) {
-				return items[i];
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Return the number of tabs in the folder.
-     * 
-     * @return the number of tabs in the folder
-     */
-    public int getItemCount() {
-        //checkWidget();
-        return items.length;
-    }
-
-    /**
-     * Return the tab items.
-     * 
-     * @return the tab items
-     */
-    public CTabItem[] getItems() {
-        //checkWidget();
-        CTabItem[] tabItems = new CTabItem[items.length];
-        System.arraycopy(items, 0, tabItems, 0, items.length);
-        return tabItems;
-    }
-
-    private int getLastItem() {
-        if (items.length == 0) {
-			return -1;
-		}
-        Rectangle area = getClientArea();
-        if (area.width <= 0) {
-			return 0;
-		}
-        Rectangle toolspace = getToolSpace();
-        if (toolspace.width == 0) {
-			return items.length - 1;
-		}
-        int width = area.width - toolspace.width;
-        int index = topTabIndex;
-        int tabWidth = items[index].width;
-        while (index < items.length - 1) {
-            tabWidth += items[index + 1].width;
-            if (tabWidth > width) {
-				break;
-			}
-            index++;
-        }
-        return index;
-    }
-
-    /**
-     * Return the selected tab item, or an empty array if there
-     * is no selection.
-     * 
-     * @return the selected tab item
-     */
-    public CTabItem getSelection() {
-        //checkWidget();
-        if (selectedIndex == -1) {
-			return null;
-		}
-        return items[selectedIndex];
-    }
-
-    /**
-     * Return the index of the selected tab item, or -1 if there
-     * is no selection.
-     * 
-     * @return the index of the selected tab item or -1
-     */
-    public int getSelectionIndex() {
-        //checkWidget();
-        return selectedIndex;
-    }
-
-    private Rectangle getToolSpace() {
-        boolean showArrows = scroll_leftVisible() || scroll_rightVisible();
-        if (!showArrows && topRight == null) {
-			return new Rectangle(0, 0, 0, 0);
-		}
-        Rectangle toolspace;
-        if (showArrows) {
-            toolspace = arrowBar.getBounds();
-            toolspace.width += borderRight;
-            if (topRight != null) {
-				toolspace.width += topRight.getSize().x;
-			}
-        } else {
-            toolspace = topRight.getBounds();
-            toolspace.width += borderRight;
-        }
-        return toolspace;
-    }
-
-    /**
-     * Returns the control in the top right corner of the tab folder. 
-     * Typically this is a close button or a composite with a menu and close button.
-     *
-     * @since 2.1
-     *
-     * @return the control in the top right corner of the tab folder or null
-     * 
-     * @exception  SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *	</ul>
-     */
-    public Control getTopRight() {
-        checkWidget();
-        return topRight;
-    }
-
-    /**
-     * Return the index of the specified tab or -1 if the tab is not 
-     * in the receiver.
-     * @param item 
-     * 
-     * @return the index of the specified tab item or -1
-     * 
-     * @exception SWTError <ul>
-     *      <li>ERROR_NULL_ARGUMENT when the item is null</li>
-     *	</ul>
-     */
-    public int indexOf(CTabItem item) {
-        //checkWidget();
-        if (item == null) {
-            SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        }
-        for (int i = 0; i < items.length; i++) {
-            if (items[i] == item) {
-				return i;
-			}
-        }
-        return -1;
-    }
-
-    private void initAccessible() {
-        final Accessible accessible = getAccessible();
-        accessible.addAccessibleListener(new AccessibleAdapter() {
-            public void getName(AccessibleEvent e) {
-                String name = null;
-                int childID = e.childID;
-                if (childID >= 0 && childID < items.length) {
-                    name = items[childID].getText();
-                    int index = name.indexOf('&');
-                    if (index > 0) {
-                        name = name.substring(0, index)
-                                + name.substring(index + 1);
-                    }
-                }
-                e.result = name;
-            }
-
-            public void getHelp(AccessibleEvent e) {
-                String help = null;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    help = getToolTipText();
-                } else if (childID >= 0 && childID < items.length) {
-                    help = items[childID].getToolTipText();
-                }
-                e.result = help;
-            }
-
-            public void getKeyboardShortcut(AccessibleEvent e) {
-                String shortcut = null;
-                int childID = e.childID;
-                if (childID >= 0 && childID < items.length) {
-                    String text = items[childID].getText();
-                    if (text != null) {
-                        char mnemonic = getMnemonic(text);
-                        if (mnemonic != '\0') {
-                            shortcut = "Alt+" + mnemonic; //$NON-NLS-1$
-                        }
-                    }
-                }
-                e.result = shortcut;
-            }
-        });
-
-        accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-            public void getChildAtPoint(AccessibleControlEvent e) {
-                Point testPoint = toControl(new Point(e.x, e.y));
-                int childID = ACC.CHILDID_NONE;
-                for (int i = 0; i < items.length; i++) {
-                    if (items[i].getBounds().contains(testPoint)) {
-                        childID = i;
-                        break;
-                    }
-                }
-                if (childID == ACC.CHILDID_NONE) {
-                    Rectangle location = getBounds();
-                    location.height = location.height - getClientArea().height;
-                    if (location.contains(testPoint)) {
-                        childID = ACC.CHILDID_SELF;
-                    }
-                }
-                e.childID = childID;
-            }
-
-            public void getLocation(AccessibleControlEvent e) {
-                Rectangle location = null;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    location = getBounds();
-                }
-                if (childID >= 0 && childID < items.length) {
-                    location = items[childID].getBounds();
-                }
-                if (location != null) {
-                    Point pt = 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 = items.length;
-            }
-
-            public void getDefaultAction(AccessibleControlEvent e) {
-                String action = null;
-                int childID = e.childID;
-                if (childID >= 0 && childID < items.length) {
-                    action = "Switch"; //$NON-NLS-1$
-                }
-                e.result = action;
-            }
-
-            public void getFocus(AccessibleControlEvent e) {
-                int childID = ACC.CHILDID_NONE;
-                if (isFocusControl()) {
-                    if (selectedIndex == -1) {
-                        childID = ACC.CHILDID_SELF;
-                    } else {
-                        childID = selectedIndex;
-                    }
-                }
-                e.childID = childID;
-            }
-
-            public void getRole(AccessibleControlEvent e) {
-                int role = 0;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    role = ACC.ROLE_TABFOLDER;
-                } else if (childID >= 0 && childID < items.length) {
-                    role = ACC.ROLE_TABITEM;
-                }
-                e.detail = role;
-            }
-
-            public void getSelection(AccessibleControlEvent e) {
-                e.childID = (selectedIndex == -1) ? ACC.CHILDID_NONE
-                        : selectedIndex;
-            }
-
-            public void getState(AccessibleControlEvent e) {
-                int state = 0;
-                int childID = e.childID;
-                if (childID == ACC.CHILDID_SELF) {
-                    state = ACC.STATE_NORMAL;
-                } else if (childID >= 0 && childID < items.length) {
-                    state = ACC.STATE_SELECTABLE;
-                    if (isFocusControl()) {
-                        state |= ACC.STATE_FOCUSABLE;
-                    }
-                    if (selectedIndex == childID) {
-                        state |= ACC.STATE_SELECTED;
-                        if (isFocusControl()) {
-                            state |= ACC.STATE_FOCUSED;
-                        }
-                    }
-                }
-                e.detail = state;
-            }
-
-            public void getChildren(AccessibleControlEvent e) {
-                Object[] children = new Object[items.length];
-                for (int i = 0; i < items.length; i++) {
-                    children[i] = new Integer(i);
-                }
-                e.children = children;
-            }
-        });
-
-        addListener(SWT.Selection, new Listener() {
-            public void handleEvent(Event event) {
-                if (isFocusControl()) {
-                    if (selectedIndex == -1) {
-                        accessible.setFocus(ACC.CHILDID_SELF);
-                    } else {
-                        accessible.setFocus(selectedIndex);
-                    }
-                }
-            }
-        });
-
-        addListener(SWT.FocusIn, new Listener() {
-            public void handleEvent(Event event) {
-                if (selectedIndex == -1) {
-                    accessible.setFocus(ACC.CHILDID_SELF);
-                } else {
-                    accessible.setFocus(selectedIndex);
-                }
-            }
-        });
-    }
-
-    private void setButtonBounds() {
-
-        updateArrowBar();
-        updateCloseBar();
-
-        Rectangle area = super.getClientArea();
-
-        int offset = 0;
-        if (topRight != null) {
-            Point size = topRight.computeSize(SWT.DEFAULT, tabHeight);
-            int x = area.x + area.width - borderRight - size.x;
-            int y = onBottom ? area.y + area.height - borderBottom - size.y
-                    : area.y + borderTop;
-            topRight.setBounds(x, y, size.x, size.y);
-            offset = size.x;
-        }
-        boolean leftVisible = scroll_leftVisible();
-        boolean rightVisible = scroll_rightVisible();
-        if (leftVisible || rightVisible) {
-            Point size = arrowBar.computeSize(SWT.DEFAULT, tabHeight);
-            int x = area.x + area.width - borderRight - size.x - offset;
-            int y = (onBottom) ? area.y + area.height - borderBottom - size.y
-                    : area.y + borderTop;
-
-            arrowBar.setBounds(x, y, size.x, size.y);
-            ToolItem[] items = arrowBar.getItems();
-            items[0].setEnabled(leftVisible);
-            items[1].setEnabled(rightVisible);
-            arrowBar.setVisible(true);
-        } else {
-            arrowBar.setVisible(false);
-        }
-
-        // When the close button is right at the edge of the Tab folder, hide it because
-        // otherwise it may block off a part of the border on the right
-        if (showClose) {
-            inactiveCloseBar.setVisible(false);
-            CTabItem item = getSelection();
-            if (item == null) {
-                closeBar.setVisible(false);
-            } else {
-                int toolbarHeight = tabHeight - CTabItem.TOP_MARGIN
-                        - CTabItem.BOTTOM_MARGIN + 2; // +2 to ignore gap between focus rectangle
-                Point size = closeBar.computeSize(SWT.DEFAULT, toolbarHeight);
-                int x = item.x + item.width - size.x - 2; // -2 to not overlap focus rectangle and trim
-                int y = item.y + Math.max(0, (item.height - toolbarHeight) / 2);
-                closeBar.setBounds(x, y, size.x, toolbarHeight);
-                Rectangle toolspace = getToolSpace();
-                Point folderSize = getSize();
-                boolean visible = (toolspace.width == 0 || x < toolspace.x)
-                        && x + size.x < folderSize.x - borderRight;
-                closeBar.setVisible(visible);
-            }
-        }
-    }
-
-    private boolean setItemLocation() {
-        if (items.length == 0) {
-			return false;
-		}
-        Rectangle area = super.getClientArea();
-        int x = area.x;
-        int y = area.y + borderTop;
-        if (onBottom) {
-			y = Math.max(0, area.y + area.height - borderBottom - tabHeight);
-		}
-
-        boolean changed = false;
-        for (int i = topTabIndex - 1; i >= 0; i--) {
-            // if the first visible tab is not the first tab
-            CTabItem tab = items[i];
-            x -= tab.width;
-            if (!changed && (tab.x != x || tab.y != y)) {
-				changed = true;
-			}
-            // layout tab items from right to left thus making them invisible
-            tab.x = x;
-            tab.y = y;
-        }
-
-        x = area.x + borderLeft;
-        for (int i = topTabIndex; i < items.length; i++) {
-            // continue laying out remaining, visible items left to right 
-            CTabItem tab = items[i];
-            tab.x = x;
-            tab.y = y;
-            x = x + tab.width;
-        }
-        setButtonBounds();
-        return changed;
-    }
-
-    private void setLastItem(int index) {
-        if (index < 0 || index > items.length - 1) {
-			return;
-		}
-        Rectangle area = getClientArea();
-        if (area.width <= 0) {
-			return;
-		}
-        int maxWidth = area.width;
-        Rectangle toolspace = getToolSpace();
-        if (toolspace.width > 0) {
-            maxWidth -= toolspace.width;
-        }
-        int tabWidth = items[index].width;
-        while (index > 0) {
-            tabWidth += items[index - 1].width;
-            if (tabWidth > maxWidth) {
-				break;
-			}
-            index--;
-        }
-        topTabIndex = index;
-        setItemLocation();
-        redrawTabArea(-1);
-    }
-
-    /**
-     * Layout the items and store the client area size.
-     */
-    boolean setItemBounds() {
-        boolean changed = false;
-        if (isDisposed()) {
-			return changed;
-		}
-        Rectangle area = super.getClientArea();
-
-        xClient = area.x + borderLeft + marginWidth;
-        if (onBottom) {
-            yClient = area.y + borderTop + marginHeight;
-        } else {
-            yClient = area.y + borderTop + tabHeight + 1 + marginHeight;
-            // +1 is for the line at the bottom of the tabs
-        }
-
-        if (area.width <= 0 || area.height <= 0 || items.length == 0) {
-			return changed;
-		}
-
-        int[] widths = new int[items.length];
-        GC gc = new GC(this);
-        for (int i = 0; i < items.length; i++) {
-            widths[i] = items[i].preferredWidth(gc);
-        }
-        gc.dispose();
-
-        int oldAverageWidth = 0;
-        int averageWidth = (area.width - borderLeft - borderRight)
-                / items.length;
-        while (averageWidth > oldAverageWidth) {
-            int width = area.width - borderLeft - borderRight;
-            int count = items.length;
-            for (int i = 0; i < items.length; i++) {
-                if (widths[i] < averageWidth) {
-                    width -= widths[i];
-                    count--;
-                }
-            }
-            oldAverageWidth = averageWidth;
-            if (count > 0) {
-                averageWidth = width / count;
-            }
-        }
-        averageWidth = Math.max(averageWidth, MIN_TAB_WIDTH * tabHeight);
-        for (int i = 0; i < items.length; i++) {
-            if (widths[i] > averageWidth) {
-                widths[i] = averageWidth;
-            }
-        }
-
-        int totalWidth = 0;
-        for (int i = 0; i < items.length; i++) {
-            CTabItem tab = items[i];
-            if (tab.height != tabHeight || tab.width != widths[i]) {
-				changed = true;
-			}
-            tab.height = tabHeight;
-            tab.width = widths[i];
-            totalWidth += widths[i];
-        }
-
-        int areaWidth = area.x + area.width - borderRight;
-        if (totalWidth <= areaWidth) {
-            topTabIndex = 0;
-        }
-        if (setItemLocation()) {
-			changed = true;
-		}
-
-        // Is there a gap after last item showing
-        if (correctLastItem()) {
-			changed = true;
-		}
-        return changed;
-    }
-
-    private boolean onMnemonic(Event event) {
-        char key = event.character;
-        for (int i = 0; i < items.length; i++) {
-            if (items[i] != null) {
-                char mnemonic = getMnemonic(items[i].getText());
-                if (mnemonic != '\0') {
-                    if (Character.toUpperCase(key) == Character
-                            .toUpperCase(mnemonic)) {
-                        setSelection(i, true);
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    /** 
-     * Paint the receiver.
-     */
-    private void onPaint(Event event) {
-        Font font = getFont();
-        if (oldFont == null || !oldFont.equals(font)) {
-            oldFont = font;
-            resetTabSize(true);
-        }
-        GC gc = event.gc;
-        Rectangle rect = super.getClientArea();
-        if (items.length == 0) {
-            if (showBorders) {
-                if ((getStyle() & SWT.FLAT) != 0) {
-                    gc.setForeground(borderColor1);
-                    gc.drawRectangle(rect.x, rect.y, rect.x + rect.width - 1,
-                            rect.y + rect.height - 1);
-                } else {
-                    gc.setForeground(borderColor1);
-                    gc.drawRectangle(rect.x, rect.y, rect.x + rect.width - 3,
-                            rect.y + rect.height - 3);
-
-                    // fill in right and bottom edges with parent's background
-                    gc.setBackground(getParent().getBackground());
-                    gc.fillRectangle(rect.x + rect.width - 2, rect.y, 2,
-                            rect.height);
-                    gc.fillRectangle(rect.x, rect.y + rect.height - 2,
-                            rect.width, 2);
-                }
-                gc.setForeground(getForeground());
-            }
-            return;
-        }
-
-        // redraw the Border
-        drawBorder(gc);
-
-        rect.x += borderLeft;
-        rect.y += borderTop;
-        rect.width -= borderLeft + borderRight;
-        rect.height -= borderTop + borderBottom;
-        Rectangle clip = gc.getClipping();
-        gc.setClipping(clip.intersection(rect));
-
-        // Draw the unselected tabs first.
-        for (int i = 0; i < items.length; i++) {
-            if (i != selectedIndex
-                    && event.getBounds().intersects(items[i].getBounds())) {
-                items[i].onPaint(gc, false);
-            }
-        }
-        // Selected tab comes last
-        if (selectedIndex != -1) {
-            items[selectedIndex].onPaint(gc, true);
-        }
-
-        // draw insertion mark
-        if (insertionIndex > -2) {
-            gc.setForeground(getDisplay().getSystemColor(
-                    SWT.COLOR_LIST_SELECTION));
-            if (insertionIndex == -1) {
-                Rectangle bounds = items[0].getBounds();
-                gc.drawLine(bounds.x, bounds.y, bounds.x, bounds.y
-                        + bounds.height - 1);
-                gc.drawLine(bounds.x - 2, bounds.y, bounds.x + 2, bounds.y);
-                gc.drawLine(bounds.x - 1, bounds.y + 1, bounds.x + 1,
-                        bounds.y + 1);
-                gc.drawLine(bounds.x - 1, bounds.y + bounds.height - 2,
-                        bounds.x + 1, bounds.y + bounds.height - 2);
-                gc.drawLine(bounds.x - 2, bounds.y + bounds.height - 1,
-                        bounds.x + 2, bounds.y + bounds.height - 1);
-
-            } else {
-                Rectangle bounds = items[insertionIndex].getBounds();
-                gc.drawLine(bounds.x + bounds.width, bounds.y, bounds.x
-                        + bounds.width, bounds.y + bounds.height - 1);
-                gc.drawLine(bounds.x + bounds.width - 2, bounds.y, bounds.x
-                        + bounds.width + 2, bounds.y);
-                gc.drawLine(bounds.x + bounds.width - 1, bounds.y + 1, bounds.x
-                        + bounds.width + 1, bounds.y + 1);
-                gc.drawLine(bounds.x + bounds.width - 1, bounds.y
-                        + bounds.height - 2, bounds.x + bounds.width + 1,
-                        bounds.y + bounds.height - 2);
-                gc.drawLine(bounds.x + bounds.width - 2, bounds.y
-                        + bounds.height - 1, bounds.x + bounds.width + 2,
-                        bounds.y + bounds.height - 1);
-            }
-        }
-
-        gc.setForeground(getForeground());
-        gc.setBackground(getBackground());
-    }
-
-    private void redrawTabArea(int index) {
-        int x = 0, y = 0, width = 0, height = 0;
-        if (index == -1) {
-            Rectangle area = super.getClientArea();
-            if (area.width == 0 || area.height == 0) {
-				return;
-			}
-            width = area.x + area.width - borderLeft - borderRight;
-            height = tabHeight + 1; // +1 causes top line between content and tabs to be redrawn
-            x = area.x + borderLeft;
-            y = area.y + borderTop;
-            if (onBottom) {
-                y = Math.max(0, area.y + area.height - borderBottom - height);
-            }
-        } else {
-            CTabItem item = items[index];
-            x = item.x;
-            y = item.y;
-            Rectangle area = super.getClientArea();
-            width = area.x + area.width - x;
-            height = item.height;
-        }
-        redraw(x, y, width, height, false);
-    }
-
-    /**	 
-     * Removes the listener.
-     *
-     * @param listener the listener
-     *
-     * @exception SWTError
-     *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>
-     * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
-     */
-    public void removeSelectionListener(SelectionListener listener) {
-        checkWidget();
-        if (listener == null) {
-            SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        }
-        removeListener(SWT.Selection, listener);
-        removeListener(SWT.DefaultSelection, listener);
-    }
-
-    /**	 
-     * Removes the listener.
-     *
-     * @param listener the listener
-     *
-     * @exception SWTError
-     *	<ul><li>ERROR_THREAD_INVALID_ACCESS	when called from the wrong thread</li>
-     * 		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     * 		<li>ERROR_NULL_ARGUMENT when listener is null</li></ul>
-     */
-    public void removeCTabFolderListener(CTabFolderListener listener) {
-        checkWidget();
-        if (listener == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        if (tabListeners.length == 0) {
-			return;
-		}
-        int index = -1;
-        for (int i = 0; i < tabListeners.length; i++) {
-            if (listener == tabListeners[i]) {
-                index = i;
-                break;
-            }
-        }
-        if (index == -1) {
-			return;
-		}
-        if (tabListeners.length == 1) {
-            tabListeners = new CTabFolderListener[0];
-            showClose = false;
-            setButtonBounds();
-            return;
-        }
-        CTabFolderListener[] newTabListeners = new CTabFolderListener[tabListeners.length - 1];
-        System.arraycopy(tabListeners, 0, newTabListeners, 0, index);
-        System.arraycopy(tabListeners, index + 1, newTabListeners, index,
-                tabListeners.length - index - 1);
-        tabListeners = newTabListeners;
-    }
-
-    /**
-     * The widget was resized. Adjust the size of the currently selected page.
-     */
-    private void onResize() {
-
-        if (items.length == 0) {
-            redraw();
-            return;
-        }
-
-        if (setItemBounds()) {
-            redrawTabArea(-1);
-        }
-
-        Point size = getSize();
-        if (oldSize == null) {
-            redraw();
-        } else {
-            if (onBottom && size.y != oldSize.y) {
-                redraw();
-            } else {
-                int x1 = Math.min(size.x, oldSize.x);
-                if (size.x != oldSize.x) {
-					x1 -= 10;
-				}
-                int y1 = Math.min(size.y, oldSize.y);
-                if (size.y != oldSize.y) {
-					y1 -= 10;
-				}
-                int x2 = Math.max(size.x, oldSize.x);
-                int y2 = Math.max(size.y, oldSize.y);
-                redraw(0, y1, x2 + 10, y2 - y1, false);
-                redraw(x1, 0, x2 - x1, y2, false);
-            }
-        }
-        oldSize = size;
-
-        // resize content
-        if (selectedIndex != -1) {
-            Control control = items[selectedIndex].getControl();
-            if (control != null && !control.isDisposed()) {
-                control.setBounds(getClientArea());
-            }
-        }
-    }
-
-    public void setBackground(Color color) {
-        super.setBackground(color);
-        background = color;
-        // init inactive close button
-        inactiveCloseBar.setBackground(color);
-
-        // init scroll buttons
-        arrowBar.setBackground(color);
-
-        //init topRight control
-        if (topRight != null) {
-			topRight.setBackground(color);
-		}
-
-        // init close button
-        if (gradientColors == null) {
-            closeBar.setBackground(color);
-        }
-    }
-
-    /**
-     * Specify a gradient of colours to be draw in the background of the selected tab.
-     * For example to draw a gradient that varies from dark blue to blue and then to
-     * white, use the following call to setBackground:
-     * <pre>
-     *	cfolder.setBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE), 
-     *		                           display.getSystemColor(SWT.COLOR_BLUE),
-     *		                           display.getSystemColor(SWT.COLOR_WHITE), 
-     *		                           display.getSystemColor(SWT.COLOR_WHITE)},
-     *		               new int[] {25, 50, 100});
-     * </pre>
-     *
-     * @param colors an array of Color that specifies the colors to appear in the gradient 
-     *               in order of appearance left to right.  The value <code>null</code> clears the
-     *               background gradient. The value <code>null</code> can be used inside the array of 
-     *               Color to specify the background color.
-     * @param percents an array of integers between 0 and 100 specifying the percent of the width 
-     *                 of the widget at which the color should change.  The size of the percents array must be one 
-     *                 less than the size of the colors array.
-     * 
-     * @exception SWTError <ul>
-     *		<li>ERROR_THREAD_INVALID_ACCESS when called from the wrong thread</li>
-     *		<li>ERROR_WIDGET_DISPOSED when the widget has been disposed</li>
-     *	</ul>
-     */
-
-    public void setSelectionBackground(Color[] colors, int[] percents) {
-        checkWidget();
-        if (colors != null) {
-            if (percents == null || percents.length != colors.length - 1) {
-                SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-            }
-            if (getDisplay().getDepth() < 15) {
-                // Don't use gradients on low color displays
-                colors = new Color[] { colors[0] };
-                percents = new int[] {};
-            }
-            for (int i = 0; i < percents.length; i++) {
-                if (percents[i] < 0 || percents[i] > 100) {
-                    SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-                }
-                if (i > 0 && percents[i] < percents[i - 1]) {
-                    SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-                }
-            }
-        }
-
-        // Are these settings the same as before?
-        if (backgroundImage == null) {
-            if ((gradientColors != null) && (colors != null)
-                    && (gradientColors.length == colors.length)) {
-                boolean same = false;
-                for (int i = 0; i < gradientColors.length; i++) {
-                    if (gradientColors[i] == null) {
-                        same = colors[i] == null;
-                    } else {
-                        same = gradientColors[i].equals(colors[i]);
-                    }
-                    if (!same) {
-						break;
-					}
-                }
-                if (same) {
-                    for (int i = 0; i < gradientPercents.length; i++) {
-                        same = gradientPercents[i] == percents[i];
-                        if (!same) {
-							break;
-						}
-                    }
-                }
-                if (same) {
-					return;
-				}
-            }
-        } else {
-            backgroundImage = null;
-        }
-        // Store the new settings
-        if (colors == null) {
-            gradientColors = null;
-            gradientPercents = null;
-            closeBar.setBackground(background);
-        } else {
-            gradientColors = new Color[colors.length];
-            for (int i = 0; i < colors.length; ++i) {
-				gradientColors[i] = colors[i];
-			}
-            gradientPercents = new int[percents.length];
-            for (int i = 0; i < percents.length; ++i) {
-				gradientPercents[i] = percents[i];
-			}
-            if (getDisplay().getDepth() < 15) {
-				closeBar.setBackground(background);
-			} else {
-				closeBar
-                        .setBackground(gradientColors[gradientColors.length - 1]);
-			}
-        }
-
-        // Refresh with the new settings
-        if (selectedIndex > -1) {
-			redrawTabArea(selectedIndex);
-		}
-    }
-
-    /**
-     * Set the image to be drawn in the background of the selected tab.
-     * 
-     * @param image the image to be drawn in the background
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setSelectionBackground(Image image) {
-        checkWidget();
-        if (image == backgroundImage) {
-			return;
-		}
-        if (image != null) {
-            gradientColors = null;
-            gradientPercents = null;
-        }
-        backgroundImage = image;
-        redrawTabArea(selectedIndex);
-    }
-
-    /**
-     * Toggle the visibility of the border
-     * 
-     * @param show true if the border should be displayed
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setBorderVisible(boolean show) {
-        checkWidget();
-        //	if (showBorders == show) return;
-
-        showBorders = show;
-        if (showBorders) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                borderBottom = borderTop = borderLeft = borderRight = 1;
-            } else {
-                borderLeft = borderTop = 1;
-                borderRight = borderBottom = 3;
-            }
-        } else {
-            borderBottom = borderTop = borderLeft = borderRight = 0;
-        }
-        oldSize = null;
-        notifyListeners(SWT.Resize, new Event());
-    }
-
-    public void setFont(Font font) {
-        checkWidget();
-        if (font != null && font.equals(getFont())) {
-			return;
-		}
-        super.setFont(font);
-        oldFont = getFont();
-        resetTabSize(true);
-    }
-
-    /**
-     * Set the foreground color of the selected tab.
-     * 
-     * @param color the color of the text displayed in the selected tab
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setSelectionForeground(Color color) {
-        checkWidget();
-        if (selectionForeground == color) {
-			return;
-		}
-        if (color == null) {
-			color = getForeground();
-		}
-        selectionForeground = color;
-        if (selectedIndex > -1) {
-            redrawTabArea(selectedIndex);
-        }
-    }
-
-    /**
-     * Display an insert marker before or after the specified tab item. 
-     * 
-     * A value of null will clear the mark.
-     * 
-     * @param item the item with which the mark is associated or null
-     * 
-     * @param after true if the mark should be displayed after the specified item
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setInsertMark(CTabItem item, boolean after) {
-        checkWidget();
-        int index = -1;
-        if (item != null) {
-            index = indexOf(item);
-        }
-        setInsertMark(index, after);
-    }
-
-    /**
-     * Display an insert marker before or after the specified tab item.
-     * 
-     * A value of -1 will clear the mark.
-     * 
-     * @param index the index of the item with which the mark is associated or null
-     * 
-     * @param after true if the mark should be displayed after the specified item
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setInsertMark(int index, boolean after) {
-        checkWidget();
-        if (index < -1 || index >= getItemCount()) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-
-        if (index == -1) {
-            index = -2;
-        } else {
-            index = after ? index : --index;
-        }
-
-        if (insertionIndex == index) {
-			return;
-		}
-        int oldIndex = insertionIndex;
-        insertionIndex = index;
-        if (index > -1) {
-			redrawTabArea(index);
-		}
-        if (oldIndex > 1) {
-			redrawTabArea(oldIndex);
-		}
-    }
-
-    /**
-     * Set the selection to the tab at the specified index.
-     * 
-     * @param index the index of the tab item to be selected
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setSelection(int index) {
-        checkWidget();
-        if (index < 0 || index >= items.length) {
-			return;
-		}
-        if (selectedIndex == index) {
-			return;
-		}
-
-        int oldIndex = selectedIndex;
-        selectedIndex = index;
-
-        Control control = items[index].control;
-        if (control != null && !control.isDisposed()) {
-            control.setBounds(getClientArea());
-            control.setVisible(true);
-        }
-
-        if (oldIndex != -1) {
-            control = items[oldIndex].control;
-            if (control != null && !control.isDisposed()) {
-                control.setVisible(false);
-            }
-        }
-        showItem(items[selectedIndex]);
-        setButtonBounds();
-        redrawTabArea(-1);
-    }
-
-    /**
-     * Set the control that appears in the top right corner of the tab folder.
-     * Typically this is a close button or a composite with a Menu and close button. 
-     * The topRight control is optional.  Setting the top right control to null will remove it from the tab folder.
-     *
-     * @since 2.1
-     * 
-     * @param control the control to be displayed in the top right corner or null
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this CTabFolder</li>
-     * </ul>
-     */
-    public void setTopRight(Control control) {
-        checkWidget();
-        if (control != null && control.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        topRight = control;
-        resetTabSize(true);
-    }
-
-    /**
-     * Shows the item.  If the item is already showing in the receiver,
-     * this method simply returns.  Otherwise, the items are scrolled until
-     * the item is visible.
-     *
-     * @param item the item to be shown
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the item is null</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the item has been disposed</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     *
-     * @see CTabFolder#showSelection()
-     * 
-     * @since 2.0
-     */
-    public void showItem(CTabItem item) {
-        checkWidget();
-        if (item == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        if (item.isDisposed()) {
-			SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-		}
-
-        int index = indexOf(item);
-        if (index < topTabIndex) {
-            topTabIndex = index;
-            setItemLocation();
-            redrawTabArea(-1);
-            return;
-        }
-        Rectangle area = getClientArea();
-        if (area.width <= 0) {
-            topTabIndex = index;
-            return;
-        }
-        int rightEdge = area.x + area.width;
-        Rectangle rect = getToolSpace();
-        if (rect.width > 0) {
-            rightEdge -= rect.width;
-        }
-        if (item.x + item.width < rightEdge) {
-			return;
-		}
-        setLastItem(index);
-    }
-
-    /**
-     * Shows the selection.  If the selection is already showing in the receiver,
-     * this method simply returns.  Otherwise, the items are scrolled until
-     * the selection is visible.
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     *
-     * @see CTabFolder#showItem(CTabItem)
-     * 
-     * @since 2.0
-     * 
-     */
-    public void showSelection() {
-        checkWidget();
-        if (selectedIndex != -1) {
-            showItem(getSelection());
-        }
-    }
-
-    char getMnemonic(String string) {
-        int index = 0;
-        int length = string.length();
-        do {
-            while ((index < length) && (string.charAt(index) != '&')) {
-				index++;
-			}
-            if (++index >= length) {
-				return '\0';
-			}
-            if (string.charAt(index) != '&') {
-				return string.charAt(index);
-			}
-            index++;
-        } while (index < length);
-        return '\0';
-    }
-
-    /**
-     * Set the selection to the tab at the specified item.
-     * 
-     * @param item the tab item to be selected
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_NULL_ARGUMENT - if argument is null</li>
-     * </ul>
-     */
-    public void setSelection(CTabItem item) {
-        checkWidget();
-        if (item == null) {
-			SWT.error(SWT.ERROR_NULL_ARGUMENT);
-		}
-        int index = indexOf(item);
-        setSelection(index);
-    }
-
-    /**
-     * Set the selection to the tab at the specified index.
-     */
-    private void setSelection(int index, boolean notify) {
-        int oldSelectedIndex = selectedIndex;
-        setSelection(index);
-        if (notify && selectedIndex != oldSelectedIndex && selectedIndex != -1) {
-            Event event = new Event();
-            event.item = getItem(selectedIndex);
-            notifyListeners(SWT.Selection, event);
-        }
-    }
-
-    private Image scaleImage(Image image, int oldSize, int newSize) {
-        Display display = getDisplay();
-        Color foreground = getForeground();
-        Color black = display.getSystemColor(SWT.COLOR_BLACK);
-        Color background = getBackground();
-        PaletteData palette = new PaletteData(new RGB[] { foreground.getRGB(),
-                background.getRGB(), black.getRGB() });
-        ImageData imageData = new ImageData(newSize, newSize, 4, palette);
-        imageData.transparentPixel = 1;
-        Image temp = new Image(display, imageData);
-        GC gc = new GC(temp);
-        gc.setBackground(background);
-        gc.fillRectangle(0, 0, newSize, newSize);
-        gc.drawImage(image, 0, 0, oldSize, oldSize, 0, 0, newSize, newSize);
-        gc.dispose();
-        return temp;
-    }
-
-    private void updateCloseBar() {
-        //Temporary code - need a better way to determine toolBar trim
-        int toolbarTrim = 4;
-        if (Util.isPhoton()) {
-			toolbarTrim = 6;
-		}
-        if (Util.isGtk()) {
-			toolbarTrim = 8;
-		}
-
-        int maxHeight = tabHeight - CTabItem.TOP_MARGIN
-                - CTabItem.BOTTOM_MARGIN - toolbarTrim;
-        if (maxHeight < 3) {
-			return;
-		}
-        int imageHeight = (maxHeight < 9) ? 9 : maxHeight;
-
-        if (closeImage != null && closeImage.getBounds().height == imageHeight) {
-			return;
-		}
-
-        if (closeBar != null) {
-			closeBar.dispose();
-		}
-        closeBar = null;
-        if (inactiveCloseBar != null) {
-			inactiveCloseBar.dispose();
-		}
-        inactiveCloseBar = null;
-        createCloseBar();
-
-        ToolItem closeItem = closeBar.getItems()[0];
-        ToolItem inactiveCloseItem = inactiveCloseBar.getItems()[0];
-
-        if (closeImage != null) {
-			closeImage.dispose();
-		}
-
-        Display display = getDisplay();
-        Color foreground = getForeground();
-        Color black = display.getSystemColor(SWT.COLOR_BLACK);
-        Color background = getBackground();
-
-        PaletteData palette = new PaletteData(new RGB[] { foreground.getRGB(),
-                background.getRGB(), black.getRGB() });
-        ImageData imageData = new ImageData(imageHeight, imageHeight, 4,
-                palette);
-        imageData.transparentPixel = 1;
-        closeImage = new Image(display, imageData);
-        GC gc = new GC(closeImage);
-        gc.setBackground(background);
-        gc.fillRectangle(0, 0, imageHeight, imageHeight);
-        gc.setForeground(black);
-
-        //draw an 9x8 'x' centered in image
-        int h = (imageHeight / 2) * 2;
-        int inset = (h - 8) / 2;
-        gc.drawLine(inset, inset, h - inset - 1, h - inset - 1);
-        gc.drawLine(inset + 1, inset, h - inset, h - inset - 1);
-        gc.drawLine(inset, h - inset - 1, h - inset - 1, inset);
-        gc.drawLine(inset + 1, h - inset - 1, h - inset, inset);
-
-        gc.dispose();
-
-        if (maxHeight < imageHeight) {
-            //rescale image
-            Image temp = scaleImage(closeImage, imageHeight, maxHeight);
-            closeImage.dispose();
-            closeImage = temp;
-        }
-        closeItem.setImage(closeImage);
-        inactiveCloseItem.setImage(closeImage);
-    }
-
-    private void updateArrowBar() {
-        //Temporary code - need a better way to determine toolBar trim
-        int toolbarTrim = 6; // Windows needs 6, photon needs 6, gtk needs 8
-        if (Util.isGtk()) {
-			toolbarTrim = 8;
-		}
-
-        int maxHeight = tabHeight - toolbarTrim;
-        if (maxHeight < 3) {
-			return;
-		}
-        int imageHeight = (maxHeight < 9) ? 9 : maxHeight;
-
-        if (arrowLeftImage != null
-                && arrowLeftImage.getBounds().height == imageHeight) {
-			return;
-		}
-
-        if (arrowBar != null) {
-			arrowBar.dispose();
-		}
-        arrowBar = null;
-        if (arrowLeftImage != null) {
-			arrowLeftImage.dispose();
-		}
-        if (arrowRightImage != null) {
-			arrowRightImage.dispose();
-		}
-
-        createArrowBar();
-        ToolItem[] items = arrowBar.getItems();
-        ToolItem left = items[0];
-        ToolItem right = items[1];
-
-        Display display = getDisplay();
-        Color foreground = getForeground();
-        Color black = display.getSystemColor(SWT.COLOR_BLACK);
-        Color background = getBackground();
-
-        PaletteData palette = new PaletteData(new RGB[] { foreground.getRGB(),
-                background.getRGB(), black.getRGB() });
-        ImageData imageData = new ImageData(7, imageHeight, 4, palette);
-        imageData.transparentPixel = 1;
-        arrowLeftImage = new Image(display, imageData);
-        GC gc = new GC(arrowLeftImage);
-        gc.setBackground(background);
-        gc.fillRectangle(0, 0, 7, imageHeight);
-        gc.setBackground(black);
-        //draw a 9x5 '<' centered vertically in image
-        int h = (imageHeight / 2) * 2;
-        int midpoint = h / 2 - 1;
-        int[] pointArr = new int[] { 6, midpoint - 5, 1, midpoint, 6,
-                midpoint + 5, };
-        gc.fillPolygon(pointArr);
-        gc.dispose();
-
-        palette = new PaletteData(new RGB[] { foreground.getRGB(),
-                background.getRGB(), black.getRGB() });
-        imageData = new ImageData(7, imageHeight, 4, palette);
-        imageData.transparentPixel = 1;
-        arrowRightImage = new Image(display, imageData);
-        gc = new GC(arrowRightImage);
-        gc.setBackground(background);
-        gc.fillRectangle(0, 0, 7, imageHeight);
-        gc.setBackground(black);
-        //draw a 9x5 '>' centered vertically in image
-        pointArr = new int[] { 1, midpoint - 5, 6, midpoint, 1, midpoint + 5, };
-        gc.fillPolygon(pointArr);
-        gc.dispose();
-
-        if (maxHeight < imageHeight) {
-            //rescale image
-            Image leftTemp = scaleImage(arrowLeftImage, imageHeight, maxHeight);
-            arrowLeftImage.dispose();
-            arrowLeftImage = leftTemp;
-
-            Image rightTemp = scaleImage(arrowRightImage, imageHeight,
-                    maxHeight);
-            arrowRightImage.dispose();
-            arrowRightImage = rightTemp;
-        }
-        left.setImage(arrowLeftImage);
-        right.setImage(arrowRightImage);
-    }
-
-    private void onMouseDoubleClick(Event event) {
-        Event e = new Event();
-        e.item = getItem(new Point(event.x, event.y));
-        notifyListeners(SWT.DefaultSelection, e);
-    }
-
-    /** 
-     * A mouse button was pressed down. 
-     * If a tab was hit select the tab.
-     */
-    private void onMouseDown(Event event) {
-        for (int i = 0; i < items.length; i++) {
-            if (items[i].getBounds().contains(new Point(event.x, event.y))) {
-                if (i == selectedIndex) {
-                    showSelection();
-                    return;
-                }
-                forceFocus();
-                setSelection(i, true);
-                if (isFocusControl()) {
-					setFocus();
-				}
-                return;
-            }
-        }
-    }
-
-    private void onMouseExit(Event event) {
-        Rectangle inactiveBounds = inactiveCloseBar.getBounds();
-        if (inactiveBounds.contains(event.x, event.y)) {
-			return;
-		}
-        inactiveCloseBar.setVisible(false);
-        inactiveItem = null;
-
-        showToolTip = false;
-        toolTipItem = null;
-        if (tip != null && !tip.isDisposed() && tip.isVisible()) {
-			tip.setVisible(false);
-		}
-    }
-
-    private void onMouseHover(Event event) {
-        if (tip == null || tip.isDisposed()) {
-			return;
-		}
-        showToolTip = true;
-        showToolTip(event.x, event.y);
-    }
-
-    private void showToolTip(int x, int y) {
-        CTabItem item = getItem(new Point(x, y));
-        if (item != null) {
-            if (item == toolTipItem) {
-				return;
-			}
-            toolTipItem = item;
-            String tooltip = item.getToolTipText();
-            if (tooltip != null && tooltip.length() > 0) {
-                Display display = tip.getDisplay();
-                label.setForeground(display
-                        .getSystemColor(SWT.COLOR_INFO_FOREGROUND));
-                label.setBackground(display
-                        .getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-                label.setText(tooltip);
-                Point labelSize = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-                labelSize.x += 2;
-                labelSize.y += 2;
-                label.setSize(labelSize);
-                tip.pack();
-                /*
-                 * On some platforms, there is a minimum size for a shell  
-                 * which may be greater than the label size.
-                 * To avoid having the background of the tip shell showing
-                 * around the label, force the label to fill the entire client area.
-                 */
-                Rectangle area = tip.getClientArea();
-                label.setSize(area.width, area.height);
-                /*
-                 * Position the tooltip and ensure that it is not located off
-                 * the screen.
-                 */
-                Point pt = new Point(item.x + item.width / 4, item.y
-                        + item.height + 2);
-                pt = toDisplay(pt);
-                Rectangle rect = display.getBounds();
-                Point tipSize = tip.getSize();
-                pt.x = Math.max(0, Math.min(pt.x, rect.width - tipSize.x));
-                pt.y = Math.max(0, Math.min(pt.y, rect.height - tipSize.y));
-                tip.setLocation(pt);
-                tip.setVisible(true);
-                return;
-            }
-        }
-
-        toolTipItem = null;
-        if (tip != null && !tip.isDisposed() && tip.isVisible()) {
-			tip.setVisible(false);
-		}
-    }
-
-    private void onMouseMove(Event event) {
-        if (showToolTip) {
-            showToolTip(event.x, event.y);
-        }
-
-        if (!showClose) {
-			return;
-		}
-
-        CTabItem item = null;
-        for (int i = 0; i < items.length; i++) {
-            Rectangle rect = items[i].getBounds();
-            if (rect.contains(new Point(event.x, event.y))) {
-                item = items[i];
-                break;
-            }
-        }
-        if (item == inactiveItem) {
-			return;
-		}
-
-        inactiveCloseBar.setVisible(false);
-        inactiveItem = null;
-
-        if (item == null || item == getSelection()) {
-			return;
-		}
-
-        int toolbarHeight = tabHeight - CTabItem.TOP_MARGIN
-                - CTabItem.BOTTOM_MARGIN + 2; // +2 to ignore gap between focus rectangle
-        Point size = inactiveCloseBar.computeSize(SWT.DEFAULT, toolbarHeight);
-        int x = item.x + item.width - size.x - 2; // -2 to not overlap focus rectangle and trim
-        int y = item.y + Math.max(0, (item.height - toolbarHeight) / 2);
-        Rectangle toolspace = getToolSpace();
-        Point folderSize = getSize();
-        if ((toolspace.width == 0 || x < toolspace.x)
-                && x + size.x < folderSize.x - borderRight) {
-            inactiveCloseBar.setBounds(x, y, size.x, toolbarHeight);
-            inactiveCloseBar.setVisible(true);
-            inactiveItem = item;
-        }
-    }
-
-    private void onTraverse(Event event) {
-        switch (event.detail) {
-        case SWT.TRAVERSE_ESCAPE:
-        // TEMPORARY CODE See bug report 17372
-        //		case SWT.TRAVERSE_RETURN:
-        case SWT.TRAVERSE_TAB_NEXT:
-        case SWT.TRAVERSE_TAB_PREVIOUS:
-            event.doit = true;
-            break;
-        case SWT.TRAVERSE_MNEMONIC:
-            event.doit = onMnemonic(event);
-            if (event.doit) {
-				event.detail = SWT.TRAVERSE_NONE;
-			}
-            break;
-        case SWT.TRAVERSE_PAGE_NEXT:
-        case SWT.TRAVERSE_PAGE_PREVIOUS:
-            event.doit = onPageTraversal(event);
-            if (event.doit) {
-				event.detail = SWT.TRAVERSE_NONE;
-			}
-            break;
-        }
-    }
-
-    private boolean onPageTraversal(Event event) {
-        int count = getItemCount();
-        if (count == 0) {
-			return false;
-		}
-        int index = getSelectionIndex();
-        if (index == -1) {
-            index = 0;
-        } else {
-            int offset = (event.detail == SWT.TRAVERSE_PAGE_NEXT) ? 1 : -1;
-            index = (index + offset + count) % count;
-        }
-        setSelection(index, true);
-        return true;
-    }
-
-    /**
-     * Answer true if not all tabs can be visible in the receive
-     * thus requiring the scroll buttons to be visible.
-     */
-    private boolean scroll_leftVisible() {
-        return topTabIndex > 0;
-    }
-
-    /**
-     * Answer true if not all tabs can be visible in the receive
-     * thus requiring the scroll buttons to be visible.
-     */
-    private boolean scroll_rightVisible() {
-        // only show Scroll buttons if there is more than one item
-        // and if we are not already at the last item
-        if (items.length < 2) {
-			return false;
-		}
-        Rectangle area = getClientArea();
-        int rightEdge = area.x + area.width;
-        if (rightEdge <= 0) {
-			return false;
-		}
-        if (topTabIndex > 0) {
-            rightEdge -= arrowBar.getSize().x;
-        }
-        if (topRight != null) {
-            rightEdge -= topRight.getSize().x;
-        }
-        CTabItem item = items[items.length - 1];
-        return (item.x + item.width > rightEdge);
-    }
-
-    /**
-     * Scroll the tab items to the left.
-     */
-    private void scroll_scrollLeft() {
-        if (items.length == 0) {
-			return;
-		}
-        setLastItem(topTabIndex - 1);
-    }
-
-    /**
-     * Scroll the tab items to the right.
-     */
-    private void scroll_scrollRight() {
-        int lastIndex = getLastItem();
-        topTabIndex = lastIndex + 1;
-        setItemLocation();
-        correctLastItem();
-        redrawTabArea(-1);
-    }
-
-    private boolean correctLastItem() {
-        Rectangle area = getClientArea();
-        int rightEdge = area.x + area.width;
-        if (rightEdge <= 0) {
-			return false;
-		}
-        Rectangle toolspace = getToolSpace();
-        if (toolspace.width > 0) {
-            rightEdge -= toolspace.width;
-        }
-        CTabItem item = items[items.length - 1];
-        if (item.x + item.width < rightEdge) {
-            setLastItem(items.length - 1);
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * Specify a fixed height for the tab items.  If no height is specified,
-     * the default height is the height of the text or the image, whichever 
-     * is greater. Specifying a height of 0 will revert to the default height.
-     * 
-     * @param height the pixel value of the height or 0
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if called with a height of less than 0</li>
-     * </ul>
-     */
-    public void setTabHeight(int height) {
-        checkWidget();
-        if (height < 0) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        fixedTabHeight = true;
-        if (tabHeight == height) {
-			return;
-		}
-        tabHeight = height;
-        oldSize = null;
-        notifyListeners(SWT.Resize, new Event());
-    }
-
-    void resetTabSize(boolean checkHeight) {
-        int oldHeight = tabHeight;
-        if (!fixedTabHeight && checkHeight) {
-            int tempHeight = 0;
-            GC gc = new GC(this);
-            for (int i = 0; i < items.length; i++) {
-                tempHeight = Math.max(tempHeight, items[i].preferredHeight(gc));
-            }
-            gc.dispose();
-            if (topRight != null) {
-				tempHeight = Math.max(tempHeight, topRight.computeSize(
-                        SWT.DEFAULT, SWT.DEFAULT).y);
-			}
-            tabHeight = tempHeight;
-        }
-
-        if (tabHeight != oldHeight) {
-            oldSize = null;
-            notifyListeners(SWT.Resize, new Event());
-        } else {
-            setItemBounds();
-            redraw();
-        }
-    }
-
-    /**
-     * 
-     * @param position 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the position value is not either SWT.TOP or SWT.BOTTOM</li>
-     * </ul>
-     * 
-     * UNDER CONSTRUCTION
-     * @since 3.0
-     */
-    public void setTabPosition(int position) {
-        checkWidget();
-        if (position != SWT.TOP && position != SWT.BOTTOM) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (onBottom != (position == SWT.BOTTOM)) {
-            onBottom = position == SWT.BOTTOM;
-            setBorderVisible(showBorders);
-            resetTabSize(true);
-            //		updateTabHeight(true);
-            //		Rectangle rectBefore = getClientArea();
-            //		updateItems();
-            //		Rectangle rectAfter = getClientArea();
-            //		if (!rectBefore.equals(rectAfter)) {
-            //			notifyListeners(SWT.Resize, new Event());
-            //		}
-            //		setItemBounds();
-            //		redrawTabArea(-1);
-            //		redraw();
-        }
-    }
-
-    /**
-     * @return one of {@link SWT#TOP} or {@link SWT#BOTTOM}
-     */
-    public int getTabPosition() {
-        if (onBottom) {
-			return SWT.BOTTOM;
-		}
-        return SWT.TOP;
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.java
deleted file mode 100644
index 7b4a880..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderEvent.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations.r21.widgets;
-
-import org.eclipse.swt.events.TypedEvent;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- *
- */
-public class CTabFolderEvent extends TypedEvent {
-
-    /**
-     * Generated serial version UID for this class.
-     * @since 3.1
-     */
-    private static final long serialVersionUID = 3258688793199719730L;
-
-    /**
-     * 
-     */
-    public Widget item;
-
-    /**
-     * 
-     */
-    public boolean doit;
-
-    CTabFolderEvent(Widget w) {
-        super(w);
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java
deleted file mode 100644
index 4d07e63..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabFolderListener.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations.r21.widgets;
-
-/**
- */
-public interface CTabFolderListener {
-    /**
-     * @param event
-     */
-    public void itemClosed(CTabFolderEvent event);
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java
deleted file mode 100644
index 594e014..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/CTabItem.java
+++ /dev/null
@@ -1,623 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations.r21.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- */
-public class CTabItem extends Item {
-    CTabFolder parent;
-
-    int x, y, width, height = 0;
-
-    String toolTipText;
-
-    Control control; // the tab page
-
-    private Image disabledImage;
-
-    // internal constants
-    static final int LEFT_MARGIN = 4;
-
-    static final int RIGHT_MARGIN = 4;
-
-    static final int TOP_MARGIN = 3;
-
-    static final int BOTTOM_MARGIN = 3;
-
-    private static final int INTERNAL_SPACING = 2;
-
-    private static final String ellipsis = "..."; //$NON-NLS-1$
-
-    String shortenedText;
-
-    int shortenedTextWidth;
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * (which must be a <code>CTabFolder</code>) and a style value
-     * describing its behavior and appearance. The item is added
-     * to the end of the items maintained by its parent.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a CTabFolder which will be the parent of the new instance (cannot be null)
-     * @param style the style of control to construct
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT
-     * @see Widget#getStyle
-     */
-    public CTabItem(CTabFolder parent, int style) {
-        this(parent, style, parent.getItemCount());
-    }
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * (which must be a <code>CTabFolder</code>), a style value
-     * describing its behavior and appearance, and the index
-     * at which to place it in the items maintained by its parent.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a CTabFolder which will be the parent of the new instance (cannot be null)
-     * @param style the style of control to construct
-     * @param index the index to store the receiver in its parent
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT
-     * @see Widget#getStyle
-     */
-    public CTabItem(CTabFolder parent, int style, int index) {
-        super(parent, checkStyle(style));
-        parent.createItem(this, index);
-    }
-
-    /**
-	 * @param style  
-	 */
-    private static int checkStyle(int style) {
-        return SWT.NONE;
-    }
-
-    public void dispose() {
-        if (isDisposed()) {
-			return;
-		}
-        parent.destroyItem(this);
-        super.dispose();
-        parent = null;
-        control = null;
-        toolTipText = null;
-    }
-
-    /**
-     * Returns a rectangle describing the receiver's size and location
-     * relative to its parent.
-     *
-     * @return the receiver's bounding column rectangle
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public Rectangle getBounds() {
-        //checkWidget();
-        return new Rectangle(x, y, width, height);
-    }
-
-    /**
-     * Gets the control that is displayed in the content are of the tab item.
-     *
-     * @return the control
-     *
-     * @exception SWTError(ERROR_THREAD_INVALID_ACCESS)
-     *	when called from the wrong thread
-     * @exception SWTError(ERROR_WIDGET_DISPOSED)
-     *	when the widget has been disposed
-     */
-    public Control getControl() {
-        checkWidget();
-        return control;
-    }
-
-    public Display getDisplay() {
-        if (parent == null) {
-			SWT.error(SWT.ERROR_WIDGET_DISPOSED);
-		}
-        return parent.getDisplay();
-    }
-
-    /**
-     * Get the image displayed in the tab if the tab is disabled.
-     * 
-     * @return the disabled image or null
-     */
-    public Image getDisabledImage() {
-        //checkWidget();
-        return disabledImage;
-    }
-
-    /**
-     * Returns the receiver's parent, which must be a <code>CTabFolder</code>.
-     *
-     * @return the receiver's parent
-     */
-    public CTabFolder getParent() {
-        //checkWidget();
-        return parent;
-    }
-
-    /**
-     * Returns the receiver's tool tip text, or null if it has
-     * not been set.
-     *
-     * @return the receiver's tool tip text
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public String getToolTipText() {
-        checkWidget();
-        return toolTipText;
-    }
-
-    /**
-     * Paint the receiver.
-     */
-    void onPaint(GC gc, boolean isSelected) {
-
-        if (width == 0 || height == 0) {
-			return;
-		}
-
-        Display display = getDisplay();
-        Color highlightShadow = display
-                .getSystemColor(SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW);
-        Color normalShadow = display
-                .getSystemColor(SWT.COLOR_WIDGET_NORMAL_SHADOW);
-
-        int index = parent.indexOf(this);
-
-        if (isSelected) {
-
-            Rectangle bounds = null;
-            if (!parent.onBottom) {
-                if (index == parent.topTabIndex) {
-                    bounds = new Rectangle(x + 1, y + 1, width - 2, height - 1);
-                } else {
-                    bounds = new Rectangle(x + 2, y + 1, width - 3, height - 1);
-                }
-            } else {
-                if (index == parent.topTabIndex) {
-                    bounds = new Rectangle(x + 1, y + 1, width - 2, height - 2);
-                } else {
-                    bounds = new Rectangle(x + 2, y + 1, width - 3, height - 2);
-                }
-            }
-            if (parent.backgroundImage != null) {
-                // draw a background image behind the text
-                Rectangle imageRect = parent.backgroundImage.getBounds();
-                gc.drawImage(parent.backgroundImage, 0, 0, imageRect.width,
-                        imageRect.height, bounds.x, bounds.y, bounds.width,
-                        bounds.height);
-            } else if (parent.gradientColors != null) {
-                // draw a gradient behind the text
-                Color oldBackground = gc.getBackground();
-                if (parent.gradientColors.length == 1) {
-                    if (parent.gradientColors[0] != null) {
-						gc.setBackground(parent.gradientColors[0]);
-					}
-                    gc.fillRectangle(bounds.x, bounds.y, bounds.width,
-                            bounds.height);
-                } else {
-                    Color oldForeground = gc.getForeground();
-                    Color lastColor = parent.gradientColors[0];
-                    if (lastColor == null) {
-						lastColor = oldBackground;
-					}
-                    for (int i = 0, pos = 0; i < parent.gradientPercents.length; ++i) {
-                        gc.setForeground(lastColor);
-                        lastColor = parent.gradientColors[i + 1];
-                        if (lastColor == null) {
-							lastColor = oldBackground;
-						}
-                        gc.setBackground(lastColor);
-                        int gradientWidth = (parent.gradientPercents[i]
-                                * bounds.width / 100)
-                                - pos;
-                        gc.fillGradientRectangle(bounds.x + pos, bounds.y,
-                                gradientWidth, bounds.height, false);
-                        pos += gradientWidth;
-                    }
-                    gc.setForeground(oldForeground);
-                }
-                gc.setBackground(oldBackground);
-            }
-
-            // draw tab lines
-            if (!parent.onBottom) {
-                gc.setForeground(normalShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 1, y, x + 1, y);
-                    gc.drawLine(x, y + 1, x, y + height - 2);
-                    gc.drawLine(x, y + height - 1, x, y + height - 1);
-                }
-                gc.drawLine(x + width - 1, y, x + width - 1, y);
-                gc.drawLine(x + width, y + 1, x + width, y + height - 2);
-                gc.drawLine(x + width, y + height - 1, x + width, y + height
-                        - 1);
-
-                gc.setForeground(highlightShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 2, y, x + 2, y);
-                    gc.drawLine(x + 1, y + 1, x + 1, y + height - 2);
-                    gc.drawLine(x + 1, y + height - 1, x + 1, y + height - 1);
-                } else {
-                    gc.drawLine(x, y, x, y + height - 1);
-                }
-
-                gc.drawLine(x + width - 2, y, x + width - 2, y);
-                gc
-                        .drawLine(x + width - 1, y + 1, x + width - 1, y
-                                + height - 2);
-                gc.drawLine(x + width - 1, y + height - 1, x + width - 1, y
-                        + height - 1);
-
-                // light line across top
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 3, y, x + width - 3, y);
-                } else {
-                    gc.drawLine(x + 1, y, x + width - 3, y);
-                }
-            } else {
-                gc.setForeground(normalShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x, y, x, y);
-                    gc.drawLine(x, y + 1, x, y + height - 2);
-                    gc.drawLine(x + 1, y + height - 1, x + 1, y + height - 1);
-                }
-                gc.drawLine(x + width, y, x + width, y);
-                gc.drawLine(x + width, y + 1, x + width, y + height - 2);
-                gc.drawLine(x + width - 1, y + height - 1, x + width - 1, y
-                        + height - 1);
-
-                gc.setForeground(highlightShadow);
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 1, y, x + 1, y);
-                    gc.drawLine(x + 1, y + 1, x + 1, y + height - 2);
-                    gc.drawLine(x + 2, y + height - 1, x + 2, y + height - 1);
-                } else {
-                    gc.drawLine(x, y, x, y + height - 1);
-                }
-
-                gc.drawLine(x + width - 1, y, x + width - 1, y);
-                gc
-                        .drawLine(x + width - 1, y + 1, x + width - 1, y
-                                + height - 2);
-                gc.drawLine(x + width - 2, y + height - 1, x + width - 2, y
-                        + height - 1);
-
-                // light line across top and bottom
-                if (index != parent.topTabIndex) {
-                    gc.drawLine(x + 1, y, x + width - 2, y);
-                    gc.drawLine(x + 2, y + height - 1, x + width - 3, y
-                            + height - 1);
-                } else {
-                    gc.drawLine(x + 1, y, x + width - 2, y);
-                    gc.drawLine(x + 1, y + height - 1, x + width - 3, y
-                            + height - 1);
-                }
-            }
-            if (parent.isFocusControl()) {
-                // draw a focus rectangle
-                int x1, y1, width1, height1;
-                if (!parent.onBottom) {
-                    if (index == parent.topTabIndex) {
-                        x1 = x + 1;
-                        y1 = y + 1;
-                        width1 = width - 2;
-                        height1 = height - 1;
-                    } else {
-                        x1 = x + 2;
-                        y1 = y + 1;
-                        width1 = width - 3;
-                        height1 = height - 1;
-                    }
-                } else {
-                    if (index == parent.topTabIndex) {
-                        x1 = x + 1;
-                        y1 = y + 1;
-                        width1 = width - 2;
-                        height1 = height - 2;
-                    } else {
-                        x1 = x + 2;
-                        y1 = y + 1;
-                        width1 = width - 3;
-                        height1 = height - 2;
-                    }
-                }
-                gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
-                gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
-                gc.drawFocus(x1, y1, width1, height1);
-            }
-        } else {
-            // draw tab lines for unselected items
-            gc.setForeground(normalShadow);
-            if (!parent.onBottom) {
-                if (index != parent.topTabIndex
-                        && index != parent.getSelectionIndex() + 1) {
-                    gc.drawLine(x, y, x, y + (height / 2));
-                }
-            } else {
-                if (index != parent.topTabIndex
-                        && index != parent.getSelectionIndex() + 1) {
-                    gc.drawLine(x, y + (height / 2), x, y + height - 1);
-                }
-            }
-
-        }
-
-        // draw Image
-        int xDraw = x + LEFT_MARGIN;
-
-        Image image = getImage();
-        if (!isSelected && image != null) {
-            Image temp = getDisabledImage();
-            if (temp != null) {
-                image = temp;
-            }
-        }
-        if (image != null) {
-            Rectangle imageBounds = image.getBounds();
-            int imageX = xDraw;
-            int imageHeight = Math.min(height - BOTTOM_MARGIN - TOP_MARGIN,
-                    imageBounds.height);
-            int imageY = y + (height - imageHeight) / 2;
-            int imageWidth = imageBounds.width * imageHeight
-                    / imageBounds.height;
-            gc.drawImage(image, imageBounds.x, imageBounds.y,
-                    imageBounds.width, imageBounds.height, imageX, imageY,
-                    imageWidth, imageHeight);
-            xDraw += imageWidth + INTERNAL_SPACING;
-        }
-
-        // draw Text
-        int textWidth = x + width - xDraw - RIGHT_MARGIN;
-        if (isSelected && parent.showClose) {
-            textWidth = x + width - xDraw - parent.closeBar.getSize().x
-                    - RIGHT_MARGIN;
-        }
-        if (shortenedText == null || shortenedTextWidth != textWidth) {
-            shortenedText = shortenText(gc, getText(), textWidth);
-            shortenedTextWidth = textWidth;
-        }
-        String text = shortenedText;
-
-        if (isSelected && parent.selectionForeground != null) {
-            gc.setForeground(parent.selectionForeground);
-        } else {
-            gc.setForeground(parent.getForeground());
-        }
-        int textY = y + (height - gc.textExtent(text, SWT.DRAW_MNEMONIC).y) / 2;
-        gc.drawText(text, xDraw, textY, SWT.DRAW_TRANSPARENT
-                | SWT.DRAW_MNEMONIC);
-
-        gc.setForeground(parent.getForeground());
-    }
-
-    private static String shortenText(GC gc, String text, int width) {
-        if (gc.textExtent(text, SWT.DRAW_MNEMONIC).x <= width) {
-			return text;
-		}
-
-        int ellipseWidth = gc.textExtent(ellipsis, SWT.DRAW_MNEMONIC).x;
-        int length = text.length();
-        int end = length - 1;
-        while (end > 0) {
-            text = text.substring(0, end);
-            int l1 = gc.textExtent(text, SWT.DRAW_MNEMONIC).x;
-            if (l1 + ellipseWidth <= width) {
-                return text + ellipsis;
-            }
-            end--;
-        }
-        return text + ellipsis;
-    }
-
-    /**
-     * Answer the preferred height of the receiver for the GC.
-     */
-    int preferredHeight(GC gc) {
-        Image image = getImage();
-        int height = 0;
-        if (image != null) {
-			height = image.getBounds().height;
-		}
-        String text = getText();
-        height = Math.max(height, gc.textExtent(text, SWT.DRAW_MNEMONIC).y);
-        return height + TOP_MARGIN + BOTTOM_MARGIN;
-    }
-
-    /**
-     * Answer the preferred width of the receiver for the GC.
-     */
-    int preferredWidth(GC gc) {
-        int width = 0;
-        Image image = getImage();
-        if (image != null) {
-			width += image.getBounds().width;
-		}
-        String text = getText();
-        if (text != null) {
-            if (image != null) {
-				width += INTERNAL_SPACING;
-			}
-            width += gc.textExtent(text, SWT.DRAW_MNEMONIC).x;
-        }
-        if (parent.showClose) {
-			width += INTERNAL_SPACING + preferredHeight(gc); // closebar will be square and will fill preferred height
-		}
-        return width + LEFT_MARGIN + RIGHT_MARGIN;
-    }
-
-    /**
-     * Sets the control that is used to fill the client area of
-     * the tab folder when the user selects the tab item.
-     * <p>
-     * @param control the new control (or null)
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_INVALID_ARGUMENT - if the control has been disposed</li> 
-     *    <li>ERROR_INVALID_PARENT - if the control is not in the same widget tree</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setControl(Control control) {
-        checkWidget();
-        if (control != null) {
-            if (control.isDisposed()) {
-				SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-			}
-            if (control.getParent() != parent) {
-				SWT.error(SWT.ERROR_INVALID_PARENT);
-			}
-        }
-        if (this.control != null && !this.control.isDisposed()) {
-            this.control.setVisible(false);
-        }
-        this.control = control;
-        if (this.control != null) {
-            int index = parent.indexOf(this);
-            if (index == parent.getSelectionIndex()) {
-                this.control.setBounds(parent.getClientArea());
-                this.control.setVisible(true);
-            } else {
-                this.control.setVisible(false);
-            }
-        }
-    }
-
-    public void setImage(Image image) {
-        checkWidget();
-        if (image != null && image.equals(getImage())) {
-			return;
-		}
-        super.setImage(image);
-        parent.resetTabSize(true);
-    }
-
-    /**
-     * Sets the image that is displayed if the tab item is disabled.
-     * Null will clear the image.
-     * 
-     * @param image the image to be displayed when the item is disabled or null
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setDisabledImage(Image image) {
-        checkWidget();
-        if (image != null && image.equals(getDisabledImage())) {
-			return;
-		}
-        disabledImage = image;
-        parent.redraw();
-    }
-
-    /**
-     * Set the widget text.
-     * <p>
-     * This method sets the widget label.  The label may include
-     * mnemonic characters but must not contain line delimiters.
-     *
-     * @param string the new label for the widget
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the text is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setText(String string) {
-        checkWidget();
-        if (string.equals(getText())) {
-			return;
-		}
-        super.setText(string);
-        shortenedText = null;
-        shortenedTextWidth = 0;
-        parent.resetTabSize(false);
-    }
-
-    /**
-     * Sets the receiver's tool tip text to the argument, which
-     * may be null indicating that no tool tip text should be shown.
-     *
-     * @param string the new tool tip text (or null)
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setToolTipText(String string) {
-        checkWidget();
-        toolTipText = string;
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolder.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolder.java
deleted file mode 100644
index 0a67928..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolder.java
+++ /dev/null
@@ -1,487 +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.presentations.r21.widgets;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.graphics.Color;
-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.ui.internal.layout.SizeCache;
-import org.eclipse.ui.internal.presentations.util.ProxyControl;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * This class implements the tab folders that contains can contain two toolbars and
- * status text. Wherever possible, the toolbars are aligned with the tabs. 
- * If there is not enough room beside the tabs, the toolbars are aligned with the status text. This
- * is the same tab folder that is used to arrange views and editors in Eclipse. 
- * <p>
- * This is closely related to DefaultPartPresentation, but they have different responsibilities. This
- * is essentially a CTabFolder that can manage a toolbar. It should not depend on 
- * data structures from the workbench, and its public interface should only use SWT objects or
- * listeners. DefaultPartPresentation uses a PaneFolder to arrange views or editors. Knowledge
- * of higher-level data structures should go there. 
- * </p>
- * <p>
- * Although it is not actually a control, the public interface is much like 
- * an SWT control. Implementation-wise, this is actually a combination of a CTabFolder and 
- * a ViewForm. It encapsulates the details of moving the toolbar between the CTabFolder and
- * the ViewForm, and provides a simpler interface to the ViewForm/CTabFolder. 
- * </p>
- * 
- * @since 3.0
- */
-public final class R21PaneFolder {
-    // Tab folder and associated proxy controls
-    private CTabFolder tabFolder;
-
-    //	private Control titleAreaProxy;	
-
-    // View form and associated proxy controls
-    private ViewForm viewForm;
-
-    private ProxyControl contentProxy;
-
-    private ProxyControl viewFormTopLeftProxy;
-
-    private ProxyControl viewFormTopRightProxy;
-
-    private ProxyControl viewFormTopCenterProxy;
-
-    // Cached sizes of the top-right and top-center controls
-    private SizeCache topRightCache = new SizeCache();
-
-    private SizeCache topCenterCache = new SizeCache();
-
-    private SizeCache topLeftCache = new SizeCache();
-
-    private int tabPos;
-
-    private boolean putTrimOnTop = false;
-
-    /**
-     * List of PaneFolderButtonListener
-     */
-    private List buttonListeners = new ArrayList(1);
-
-    private int state = IStackPresentationSite.STATE_RESTORED;
-
-    /**
-     * State of the folder at the last mousedown event. This is used to prevent
-     * a mouseup over the minimize or maximize buttons from undoing a state change 
-     * that was caused by the mousedown.
-     */
-    private int mousedownState = -1;
-
-    //	// CTabFolder listener
-    //	private CTabFolder2Adapter expandListener = new CTabFolder2Adapter() {
-    //		public void minimize(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyButtonListeners(IStackPresentationSite.STATE_MINIMIZED);
-    //		}
-    //		
-    //		public void restore(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyButtonListeners(IStackPresentationSite.STATE_RESTORED);
-    //		}
-    //		
-    //		public void maximize(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyButtonListeners(IStackPresentationSite.STATE_MAXIMIZED);
-    //		}
-    //		
-    //		/* (non-Javadoc)
-    //		 * @see org.eclipse.swt.custom.CTabFolder2Adapter#close(org.eclipse.swt.custom.CTabFolderEvent)
-    //		 */
-    //		public void close(CTabFolderEvent event) {
-    //			event.doit = false;
-    //			notifyCloseListeners((CTabItem)event.item);
-    //		}
-    //		
-    //		public void showList(CTabFolderEvent event) {
-    //			notifyShowListeners(event);
-    //		}
-    //		
-    //	};
-    //	
-    private MouseListener mouseListener = new MouseAdapter() {
-        public void mouseDown(MouseEvent e) {
-            mousedownState = getState();
-        }
-
-        public void mouseDoubleClick(MouseEvent e) {
-        }
-    };
-
-    /**
-     * Creates a pane folder. This will create exactly one child control in the
-     * given parent.
-     * 
-     * @param parent
-     * @param flags
-     */
-    public R21PaneFolder(Composite parent, int flags) {
-        // Initialize tab folder
-        {
-            tabFolder = new CTabFolder(parent, flags);
-
-            //			// Create a proxy control to measure the title area of the tab folder
-            //			titleAreaProxy = new Composite(tabFolder, SWT.NONE);
-            //			titleAreaProxy.setVisible(false);
-            //			tabFolder.setTopRight(titleAreaProxy, SWT.FILL);
-
-            //			tabFolder.addCTabFolder2Listener(expandListener);
-            //			
-            tabFolder.addMouseListener(mouseListener);
-        }
-
-        // Initialize view form
-        {
-            viewForm = new ViewForm(tabFolder, SWT.NONE);
-
-            // Only attach these to the viewForm when there's actuall a control to display
-            viewFormTopLeftProxy = new ProxyControl(viewForm);
-            viewFormTopCenterProxy = new ProxyControl(viewForm);
-            viewFormTopRightProxy = new ProxyControl(viewForm);
-
-            contentProxy = new ProxyControl(viewForm);
-            viewForm.setContent(contentProxy.getControl());
-        }
-    }
-
-    /**
-     * Return the main control for this pane folder
-     * 
-     * @return Composite the control
-     */
-    public Composite getControl() {
-        return tabFolder;
-    }
-
-    /**
-     * Sets the top-center control (usually a toolbar), or null if none.
-     * Note that the control can have any parent.
-     * 
-     * @param topCenter the top-center control or null if none
-     */
-    public void setTopCenter(Control topCenter) {
-        topCenterCache.setControl(topCenter);
-        if (topCenter != null) {
-            if (!putTrimOnTop) {
-                viewFormTopCenterProxy.setTarget(topCenterCache);
-                viewForm.setTopCenter(viewFormTopCenterProxy.getControl());
-            }
-        } else {
-            if (!putTrimOnTop) {
-                viewForm.setTopCenter(null);
-            }
-        }
-    }
-
-    /**
-     * Sets the top-right control (usually a dropdown), or null if none
-     * 
-     * @param topRight
-     */
-    public void setTopRight(Control topRight) {
-        topRightCache.setControl(topRight);
-        if (topRight != null) {
-            if (!putTrimOnTop) {
-                viewFormTopRightProxy.setTarget(topRightCache);
-                viewForm.setTopRight(viewFormTopRightProxy.getControl());
-            }
-        } else {
-            if (!putTrimOnTop) {
-                viewForm.setTopRight(null);
-            }
-        }
-    }
-
-    /**
-     * Sets the top-left control (usually a title label), or null if none
-     * 
-     * @param topLeft
-     */
-    public void setTopLeft(Control topLeft) {
-        if (topLeftCache.getControl() != topLeft) {
-            topLeftCache.setControl(topLeft);
-            // The top-left control always goes directly in the ViewForm
-            if (topLeft != null) {
-                viewFormTopLeftProxy.setTarget(topLeftCache);
-                viewForm.setTopLeft(viewFormTopLeftProxy.getControl());
-            } else {
-                viewFormTopLeftProxy.setTargetControl(null);
-                viewForm.setTopLeft(null);
-            }
-        }
-    }
-
-    /**
-     * Flush all of this folder's size caches to ensure they will be re-computed
-     * on the next layout.
-     */
-    public void flush() {
-        topLeftCache.flush();
-        topRightCache.flush();
-        topCenterCache.flush();
-    }
-
-    /**
-     * Layout the receiver, flusing the cache if needed.
-     * 
-     * @param flushCache
-     */
-    public void layout(boolean flushCache) {
-        // Flush the cached sizes if necessary
-        if (flushCache) {
-			flush();
-		}
-
-        Rectangle tabFolderClientArea = tabFolder.getClientArea();
-
-        // Hide tabs if there is only one
-        if (tabFolder.getItemCount() < 2) {
-            //Rectangle tabFolderBounds = tabFolder.getBounds();
-
-            int delta = getTabHeight() + 1;
-            tabFolderClientArea.height += delta;
-
-            if (getTabPosition() == SWT.TOP) {
-                tabFolderClientArea.y -= delta;
-            }
-        }
-
-        viewForm.setBounds(tabFolderClientArea);
-        viewFormTopRightProxy.layout();
-        viewFormTopLeftProxy.layout();
-        viewFormTopCenterProxy.layout();
-    }
-
-    /**
-     * Returns the client area for this PaneFolder, relative to the pane folder's control.
-     * 
-     * @return Rectangle the client area 
-     */
-    public Rectangle getClientArea() {
-        Rectangle bounds = contentProxy.getControl().getBounds();
-
-        Rectangle formArea = viewForm.getBounds();
-
-        bounds.x += formArea.x;
-        bounds.y += formArea.y;
-
-        return bounds;
-    }
-
-    /**
-     * Returns the current state of the folder (as shown on the button icons)
-     * 
-     * @return one of the IStackPresentationSite.STATE_* constants
-     */
-    public int getState() {
-        return state;
-    }
-
-    /**
-     * @param buttonId one of the IStackPresentationSite.STATE_* constants
-     */
-    protected void notifyButtonListeners(int buttonId) {
-        if (mousedownState == getState()) {
-            Iterator iter = buttonListeners.iterator();
-
-            while (iter.hasNext()) {
-                R21PaneFolderButtonListener listener = (R21PaneFolderButtonListener) iter
-                        .next();
-
-                listener.stateButtonPressed(buttonId);
-            }
-        }
-    }
-
-    /**
-     * Notifies all listeners that the user clicked on the chevron
-     * 
-     * @param event
-     */
-    protected void notifyShowListeners(CTabFolderEvent event) {
-        Iterator iter = buttonListeners.iterator();
-
-        while (iter.hasNext()) {
-            R21PaneFolderButtonListener listener = (R21PaneFolderButtonListener) iter
-                    .next();
-
-            listener.showList(event);
-        }
-    }
-
-    /**
-     * Notifies all listeners that the close button was pressed
-     * 
-     * @param tabItem
-     */
-    protected void notifyCloseListeners(CTabItem tabItem) {
-        Iterator iter = buttonListeners.iterator();
-
-        while (iter.hasNext()) {
-            R21PaneFolderButtonListener listener = (R21PaneFolderButtonListener) iter
-                    .next();
-
-            listener.closeButtonPressed(tabItem);
-        }
-    }
-
-    /**
-     * @param listener
-     */
-    public void addButtonListener(R21PaneFolderButtonListener listener) {
-        buttonListeners.add(listener);
-    }
-
-    /**
-     * @param listener
-     */
-    public void removeButtonListener(R21PaneFolderButtonListener listener) {
-        buttonListeners.remove(listener);
-    }
-
-    /**
-     * @param newTabPosition
-     */
-    public void setTabPosition(int newTabPosition) {
-        tabPos = newTabPosition;
-        tabFolder.setTabPosition(tabPos);
-    }
-
-    /**
-     * @return int the postion of the tab
-     */
-    public int getTabPosition() {
-        return tabPos;
-    }
-
-    /**
-     * @return boolean <code>true</code> if the receiver has been disposed
-     */
-    public boolean isDisposed() {
-        return tabFolder == null || tabFolder.isDisposed();
-    }
-
-    /**
-     * @param style
-     * @param index
-     * @return CTabItem the created item
-     */
-    public CTabItem createItem(int style, int index) {
-        return new CTabItem(tabFolder, style, index);
-    }
-
-    // The remainder of the methods in this class redirect directly to CTabFolder methods
-
-    /**
-     * @param selection
-     */
-    public void setSelection(int selection) {
-        tabFolder.setSelection(selection);
-    }
-
-    /**
-     * @param i
-     * @param j
-     * @param k
-     * @param l
-     * @return Rectangle the trim rectangle
-     */
-    public Rectangle computeTrim(int i, int j, int k, int l) {
-        return tabFolder.computeTrim(i, j, k, l);
-    }
-
-    /**
-     * @param fgColor
-     */
-    public void setSelectionForeground(Color fgColor) {
-        tabFolder.setSelectionForeground(fgColor);
-    }
-
-    /**
-     * @param idx
-     * @return CTabItem the indexed item
-     */
-    public CTabItem getItem(int idx) {
-        return tabFolder.getItem(idx);
-    }
-
-    /**
-     * @return int the selected items index
-     */
-    public int getSelectionIndex() {
-        return tabFolder.getSelectionIndex();
-    }
-
-    /**
-     * @return int the height of the tabs
-     */
-    public int getTabHeight() {
-        return tabFolder.getTabHeight();
-    }
-
-    /**
-     * @param toFind
-     * @return int the index of the item to find
-     */
-    public int indexOf(CTabItem toFind) {
-        return tabFolder.indexOf(toFind);
-    }
-
-    /**
-     * @param height
-     */
-    public void setTabHeight(int height) {
-        tabFolder.setTabHeight(height);
-    }
-
-    /**
-     * @return int the item count
-     */
-    public int getItemCount() {
-        return tabFolder.getItemCount();
-    }
-
-    /**
-     * @return CTabItem the items
-     */
-    public CTabItem[] getItems() {
-        return tabFolder.getItems();
-    }
-
-    /**
-     * @param toGet
-     * @return CTabItem the indexed item
-     */
-    public CTabItem getItem(Point toGet) {
-        return tabFolder.getItem(toGet);
-    }
-
-    /**
-     * @return CTabItem the selected item
-     */
-    public CTabItem getSelection() {
-        return tabFolder.getSelection();
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java
deleted file mode 100644
index 5316e12..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/R21PaneFolderButtonListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.presentations.r21.widgets;
-
-/**
- * This listener receives notifications when the user clicks on one of
- * the buttons (minimize, maximize, or restore) on a pane folder.  
- * 
- * @since 3.0
- */
-public abstract class R21PaneFolderButtonListener {
-
-    /**
-     * Called when the minimize, maximize, or restore buttons are pressed.
-     *   
-     * @param buttonId one of the IStackPresentationSite.STATE_* constants
-     */
-    public void stateButtonPressed(int buttonId) {
-    }
-
-    /**
-     * Called when a close button is pressed.
-     *   
-     * @param item the tab whose close button was pressed
-     */
-    public void closeButtonPressed(CTabItem item) {
-    }
-
-    /**
-     * 
-     * @param event 
-     * @since 3.0
-     */
-    public void showList(CTabFolderEvent event) {
-    }
-}
diff --git a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/ViewForm.java b/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/ViewForm.java
deleted file mode 100644
index 21920da..0000000
--- a/bundles/org.eclipse.ui.presentations.r21/src/org/eclipse/ui/internal/presentations/r21/widgets/ViewForm.java
+++ /dev/null
@@ -1,696 +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.ui.internal.presentations.r21.widgets;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-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.Event;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * Instances of this class implement a Composite that lays out three
- * children horizontally and allows programmatic control of layout and
- * border parameters. ViewForm is used in the workbench to implement a
- * view's label/menu/toolbar local bar.
- * <p>
- * Note that although this class is a subclass of <code>Composite</code>,
- * it does not make sense to set a layout on it.
- * </p><p>
- * <dl>
- * <dt><b>Styles:</b></dt>
- * <dd>BORDER, FLAT</dd>
- * <dt><b>Events:</b></dt>
- * <dd>(None)</dd>
- * </dl>
- * <p>
- * IMPORTANT: This class is <em>not</em> intended to be subclassed.
- * </p>
- */
-
-public class ViewForm extends Composite {
-
-    /**
-     * marginWidth specifies the number of pixels of horizontal margin
-     * that will be placed along the left and right edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginWidth = 0;
-
-    /**
-     * marginHeight specifies the number of pixels of vertical margin
-     * that will be placed along the top and bottom edges of the form.
-     *
-     * The default value is 0.
-     */
-    public int marginHeight = 0;
-
-    /**
-     * Color of innermost line of drop shadow border.
-     */
-    public static RGB borderInsideRGB = new RGB(132, 130, 132);
-
-    /**
-     * Color of middle line of drop shadow border.
-     */
-    public static RGB borderMiddleRGB = new RGB(143, 141, 138);
-
-    /**
-     * Color of outermost line of drop shadow border.
-     */
-    public static RGB borderOutsideRGB = new RGB(171, 168, 165);
-
-    // SWT widgets
-    private Control topLeft;
-
-    private Control topCenter;
-
-    private Control topRight;
-
-    private Control content;
-
-    // Configuration and state info
-    private boolean separateTopCenter = false;
-
-    private int drawLine1 = -1;
-
-    private int drawLine2 = -1;
-
-    private boolean showBorder = false;
-
-    private int BORDER_TOP = 0;
-
-    private int BORDER_BOTTOM = 0;
-
-    private int BORDER_LEFT = 0;
-
-    private int BORDER_RIGHT = 0;
-
-    private Color borderColor1;
-
-    private Color borderColor2;
-
-    private Color borderColor3;
-
-    private Rectangle oldArea;
-
-    private static final int OFFSCREEN = -200;
-
-    /**
-     * Constructs a new instance of this class given its parent
-     * and a style value describing its behavior and appearance.
-     * <p>
-     * The style value is either one of the style constants defined in
-     * class <code>SWT</code> which is applicable to instances of this
-     * class, or must be built by <em>bitwise OR</em>'ing together 
-     * (that is, using the <code>int</code> "|" operator) two or more
-     * of those <code>SWT</code> style constants. The class description
-     * lists the style constants that are applicable to the class.
-     * Style bits are also inherited from superclasses.
-     * </p>
-     *
-     * @param parent a widget which will be the parent of the new instance (cannot be null)
-     * @param style the style of widget to construct
-     *
-     * @exception IllegalArgumentException <ul>
-     *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
-     * </ul>
-     * @exception SWTException <ul>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
-     * </ul>
-     *
-     * @see SWT#BORDER
-     * @see SWT#FLAT
-     * @see #getStyle()
-     */
-    public ViewForm(Composite parent, int style) {
-        super(parent, checkStyle(style));
-
-        borderColor1 = new Color(getDisplay(), borderInsideRGB);
-        borderColor2 = new Color(getDisplay(), borderMiddleRGB);
-        borderColor3 = new Color(getDisplay(), borderOutsideRGB);
-        setBorderVisible((style & SWT.BORDER) != 0);
-
-        addPaintListener(new PaintListener() {
-            public void paintControl(PaintEvent event) {
-                onPaint(event.gc);
-            }
-        });
-        addControlListener(new ControlAdapter() {
-            public void controlResized(ControlEvent e) {
-                onResize();
-            }
-        });
-
-        addListener(SWT.Dispose, new Listener() {
-            public void handleEvent(Event e) {
-                onDispose();
-            }
-        });
-    }
-
-    /**
-     * Check the style bits to ensure that no invalid styles are applied.
-     * @private
-     */
-    private static int checkStyle(int style) {
-        int mask = SWT.FLAT | SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT;
-        return style & mask | SWT.NO_REDRAW_RESIZE;
-    }
-
-    public Point computeSize(int wHint, int hHint, boolean changed) {
-        checkWidget();
-        // size of title bar area
-        Point leftSize = new Point(0, 0);
-        if (topLeft != null) {
-            leftSize = topLeft.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-            leftSize.x += 1; // +1 for highlight line
-        }
-        Point centerSize = new Point(0, 0);
-        if (topCenter != null) {
-            centerSize = topCenter.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point rightSize = new Point(0, 0);
-        if (topRight != null) {
-            rightSize = topRight.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point size = new Point(0, 0);
-        // calculate width of title bar
-        if (separateTopCenter
-                || (wHint != SWT.DEFAULT && leftSize.x + centerSize.x
-                        + rightSize.x > wHint)) {
-            size.x = leftSize.x + rightSize.x;
-            size.x = Math.max(centerSize.x, size.x);
-            size.y = Math.max(leftSize.y, rightSize.y) + 1; // +1 for highlight line
-            if (topCenter != null) {
-                size.y += centerSize.y;
-            }
-        } else {
-            size.x = leftSize.x + centerSize.x + rightSize.x;
-            size.y = Math.max(leftSize.y, Math.max(centerSize.y, rightSize.y)) + 1; // +1 for highlight line
-        }
-
-        if (content != null) {
-            Point contentSize = new Point(0, 0);
-            contentSize = content.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-            size.x = Math.max(size.x, contentSize.x);
-            size.y += contentSize.y + 1; // +1 for line bewteen content and header
-        }
-
-        size.x += 2 * marginWidth;
-        size.y += 2 * marginHeight;
-
-        if (wHint != SWT.DEFAULT) {
-			size.x = wHint;
-		}
-        if (hHint != SWT.DEFAULT) {
-			size.y = hHint;
-		}
-
-        Rectangle trim = computeTrim(0, 0, size.x, size.y);
-        return new Point(trim.width, trim.height);
-    }
-
-    public Rectangle computeTrim(int x, int y, int width, int height) {
-        checkWidget();
-        int trimX = x - BORDER_LEFT;
-        int trimY = y - BORDER_TOP;
-        int trimWidth = width + BORDER_LEFT + BORDER_RIGHT;
-        int trimHeight = height + BORDER_TOP + BORDER_BOTTOM;
-        return new Rectangle(trimX, trimY, trimWidth, trimHeight);
-    }
-
-    public Rectangle getClientArea() {
-        checkWidget();
-        Rectangle clientArea = super.getClientArea();
-        clientArea.x += BORDER_LEFT;
-        clientArea.y += BORDER_TOP;
-        clientArea.width -= BORDER_LEFT + BORDER_RIGHT;
-        clientArea.height -= BORDER_TOP + BORDER_BOTTOM;
-        return clientArea;
-    }
-
-    /**
-     * Returns the content area.
-     * 
-     * @return the control in the content area of the pane or null
-     */
-    public Control getContent() {
-        //checkWidget();
-        return content;
-    }
-
-    /**
-     * Returns Control that appears in the top center of the pane.
-     * Typically this is a toolbar.
-     * 
-     * @return the control in the top center of the pane or null
-     */
-    public Control getTopCenter() {
-        //checkWidget();
-        return topCenter;
-    }
-
-    /**
-     * Returns the Control that appears in the top left corner of the pane.
-     * Typically this is a label such as CLabel.
-     * 
-     * @return the control in the top left corner of the pane or null
-     */
-    public Control getTopLeft() {
-        //checkWidget();
-        return topLeft;
-    }
-
-    /**
-     * Returns the control in the top right corner of the pane.
-     * Typically this is a Close button or a composite with a Menu and Close button.
-     * 
-     * @return the control in the top right corner of the pane or null
-     */
-    public Control getTopRight() {
-        //checkWidget();
-        return topRight;
-    }
-
-    public void layout(boolean changed) {
-        checkWidget();
-        Rectangle rect = getClientArea();
-
-        drawLine1 = -1;
-        drawLine2 = -1;
-
-        Point leftSize = new Point(0, 0);
-        if (topLeft != null && !topLeft.isDisposed()) {
-            leftSize = topLeft.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point centerSize = new Point(0, 0);
-        if (topCenter != null && !topCenter.isDisposed()) {
-            centerSize = topCenter.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-        Point rightSize = new Point(0, 0);
-        if (topRight != null && !topRight.isDisposed()) {
-            rightSize = topRight.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        }
-
-        int minTopWidth = leftSize.x + centerSize.x + rightSize.x + 2
-                * marginWidth + 1; // +1 for highlight line	
-        int height = rect.y + marginHeight;
-
-        boolean top = false;
-        if (separateTopCenter || minTopWidth > rect.width) {
-            int topHeight = Math.max(rightSize.y, leftSize.y);
-            if (topRight != null && !topRight.isDisposed()) {
-                top = true;
-                topRight.setBounds(rect.x + rect.width - marginWidth
-                        - rightSize.x, rect.y + 1 + marginHeight, rightSize.x,
-                        topHeight);
-                height += 1 + topHeight; // +1 for highlight line
-            }
-            if (topLeft != null && !topLeft.isDisposed()) {
-                top = true;
-                leftSize = topLeft.computeSize(rect.width - 2 * marginWidth
-                        - rightSize.x - 1, SWT.DEFAULT);
-                topLeft.setBounds(rect.x + 1 + marginWidth, rect.y + 1
-                        + marginHeight, leftSize.x, topHeight);
-                height = Math
-                        .max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line
-            }
-            if (topCenter != null && !topCenter.isDisposed()) {
-                top = true;
-                if (height > rect.y + marginHeight) {
-                    drawLine1 = height;
-                    height += 1; // +1 for divider line
-                }
-                centerSize = topCenter.computeSize(
-                        rect.width - 2 * marginWidth, SWT.DEFAULT);
-                topCenter.setBounds(rect.x + rect.width - marginWidth
-                        - centerSize.x, height, centerSize.x, centerSize.y);
-                height += centerSize.y;
-
-            }
-        } else {
-            int topHeight = Math.max(rightSize.y, Math.max(centerSize.y,
-                    leftSize.y));
-            if (topRight != null && !topRight.isDisposed()) {
-                top = true;
-                topRight.setBounds(rect.x + rect.width - marginWidth
-                        - rightSize.x, rect.y + marginHeight + 1, // +1 for highlight line
-                        rightSize.x, topHeight);
-                height += 1 + topHeight; // +1 for highlight line
-            }
-            if (topCenter != null && !topCenter.isDisposed()) {
-                top = true;
-                topCenter.setBounds(rect.x + rect.width - marginWidth
-                        - rightSize.x - centerSize.x,
-                        rect.y + marginHeight + 1, // +1 for highlight line
-                        centerSize.x, topHeight);
-                height = Math
-                        .max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line                    
-            }
-            if (topLeft != null && !topLeft.isDisposed()) {
-                top = true;
-                leftSize = topLeft.computeSize(rect.width - 2 * marginWidth
-                        - rightSize.x - centerSize.x - 1, topHeight);
-                topLeft.setBounds(rect.x + marginWidth + 1, // +1 for highlight line
-                        rect.y + marginHeight + 1, // +1 for highlight line
-                        leftSize.x, topHeight);
-                height = Math
-                        .max(height, rect.y + marginHeight + 1 + topHeight); // +1 for highlight line
-            }
-        }
-
-        if (content != null && !content.isDisposed()) {
-            if (top) {
-                drawLine2 = height;
-                height += 1; // +1 for divider line
-            }
-            content
-                    .setBounds(rect.x + marginWidth, height, rect.width - 2
-                            * marginWidth, rect.y + rect.height - height
-                            - marginHeight);
-        }
-    }
-
-    private void onDispose() {
-        if (borderColor1 != null) {
-            borderColor1.dispose();
-        }
-        borderColor1 = null;
-
-        if (borderColor2 != null) {
-            borderColor2.dispose();
-        }
-        borderColor2 = null;
-
-        if (borderColor3 != null) {
-            borderColor3.dispose();
-        }
-        borderColor3 = null;
-
-        topLeft = null;
-        topCenter = null;
-        topRight = null;
-        content = null;
-        oldArea = null;
-    }
-
-    /**
-     * Draws the focus border.
-     */
-    private void onPaint(GC gc) {
-        Rectangle d = super.getClientArea();
-
-        if (showBorder) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 1, d.y + d.height
-                        - 1);
-            } else {
-                gc.setForeground(borderColor1);
-                gc.drawRectangle(d.x, d.y, d.x + d.width - 3, d.y + d.height
-                        - 3);
-
-                gc.setForeground(borderColor2);
-                gc.drawLine(d.x + 1, d.y + d.height - 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-                gc.drawLine(d.x + d.width - 2, d.y + 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-
-                gc.setForeground(borderColor3);
-                gc.drawLine(d.x + 2, d.y + d.height - 1, d.x + d.width - 2, d.y
-                        + d.height - 1);
-                gc.drawLine(d.x + d.width - 1, d.y + 2, d.x + d.width - 1, d.y
-                        + d.height - 2);
-            }
-        }
-
-        if (drawLine1 != -1) {
-            // top seperator line
-            gc.setForeground(borderColor1);
-            gc.drawLine(d.x + BORDER_LEFT, drawLine1, d.x + d.width
-                    - BORDER_RIGHT, drawLine1);
-        }
-        if (drawLine2 != -1) {
-            // content separator line
-            gc.setForeground(borderColor1);
-            gc.drawLine(d.x + BORDER_LEFT, drawLine2, d.x + d.width
-                    - BORDER_RIGHT, drawLine2);
-        }
-        // highlight on top
-        int y = drawLine1;
-        if (y == -1) {
-            y = drawLine2;
-        }
-        if (y != -1) {
-            gc.setForeground(getDisplay().getSystemColor(
-                    SWT.COLOR_WIDGET_HIGHLIGHT_SHADOW));
-            gc.drawLine(d.x + BORDER_LEFT + marginWidth, d.y + BORDER_TOP
-                    + marginHeight, d.x + BORDER_LEFT + marginWidth, y - 1);
-            gc.drawLine(d.x + BORDER_LEFT + marginWidth, d.y + BORDER_TOP
-                    + marginHeight, d.x + d.width - BORDER_RIGHT - marginWidth
-                    - 1, d.y + BORDER_TOP + marginHeight);
-        }
-
-        gc.setForeground(getForeground());
-    }
-
-    private void onResize() {
-        layout();
-
-        Rectangle area = super.getClientArea();
-        if (oldArea == null || oldArea.width == 0 || oldArea.height == 0) {
-            redraw();
-        } else {
-            int width = 0;
-            if (oldArea.width < area.width) {
-                width = area.width - oldArea.width + BORDER_RIGHT;
-            } else if (oldArea.width > area.width) {
-                width = BORDER_RIGHT;
-            }
-            redraw(area.x + area.width - width, area.y, width, area.height,
-                    false);
-
-            int height = 0;
-            if (oldArea.height < area.height) {
-                height = area.height - oldArea.height + BORDER_BOTTOM;
-            }
-            if (oldArea.height > area.height) {
-                height = BORDER_BOTTOM;
-            }
-            redraw(area.x, area.y + area.height - height, area.width, height,
-                    false);
-        }
-        oldArea = area;
-    }
-
-    /**
-     * Sets the content.
-     * Setting the content to null will remove it from 
-     * the pane - however, the creator of the content must dispose of the content.
-     * 
-     * @param content the control to be displayed in the content area or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setContent(Control content) {
-        checkWidget();
-        if (content != null && content.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.content != null && !this.content.isDisposed()) {
-            this.content.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.content = content;
-        layout();
-    }
-
-    /**
-     * Set the widget font.
-     * This will apply the font to the topLeft, topRight and topCenter widgets.
-     */
-    public void setFont(Font f) {
-        super.setFont(f);
-        if (topLeft != null && !topLeft.isDisposed()) {
-			topLeft.setFont(f);
-		}
-        if (topCenter != null && !topCenter.isDisposed()) {
-			topCenter.setFont(f);
-		}
-        if (topRight != null && !topRight.isDisposed()) {
-			topRight.setFont(f);
-		}
-
-        layout();
-    }
-
-    /**
-     * Sets the layout which is associated with the receiver to be
-     * the argument which may be null.
-     * <p>
-     * Note : ViewForm does not use a layout class to size and position its children.
-     * </p>
-     *
-     * @param layout the receiver's new layout or null
-     *
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setLayout(Layout layout) {
-        checkWidget();
-        return;
-    }
-
-    /**
-     * Set the control that appears in the top center of the pane.
-     * Typically this is a toolbar.
-     * The topCenter is optional.  Setting the topCenter to null will remove it from 
-     * the pane - however, the creator of the topCenter must dispose of the topCenter.
-     * 
-     * @param topCenter the control to be displayed in the top center or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setTopCenter(Control topCenter) {
-        checkWidget();
-        if (topCenter != null && topCenter.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.topCenter != null && !this.topCenter.isDisposed()) {
-            this.topCenter.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.topCenter = topCenter;
-        layout();
-    }
-
-    /**
-     * Set the control that appears in the top left corner of the pane.
-     * Typically this is a label such as CLabel.
-     * The topLeft is optional.  Setting the top left control to null will remove it from 
-     * the pane - however, the creator of the control must dispose of the control.
-     * 
-     * @param c the control to be displayed in the top left corner or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setTopLeft(Control c) {
-        checkWidget();
-        if (c != null && c.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.topLeft != null && !this.topLeft.isDisposed()) {
-            this.topLeft.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.topLeft = c;
-        layout();
-    }
-
-    /**
-     * Set the control that appears in the top right corner of the pane.
-     * Typically this is a Close button or a composite with a Menu and Close button.
-     * The topRight is optional.  Setting the top right control to null will remove it from 
-     * the pane - however, the creator of the control must dispose of the control.
-     * 
-     * @param c the control to be displayed in the top right corner or null
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     *    <li>ERROR_INVALID_ARGUMENT - if the control is not a child of this ViewForm</li>
-     * </ul>
-     */
-    public void setTopRight(Control c) {
-        checkWidget();
-        if (c != null && c.getParent() != this) {
-            SWT.error(SWT.ERROR_INVALID_ARGUMENT);
-        }
-        if (this.topRight != null && !this.topRight.isDisposed()) {
-            this.topRight.setBounds(OFFSCREEN, OFFSCREEN, 0, 0);
-        }
-        this.topRight = c;
-        layout();
-    }
-
-    /**
-     * Specify whether the border should be displayed or not.
-     * 
-     * @param show true if the border should be displayed
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setBorderVisible(boolean show) {
-        checkWidget();
-        if (showBorder == show) {
-			return;
-		}
-
-        showBorder = show;
-        if (showBorder) {
-            if ((getStyle() & SWT.FLAT) != 0) {
-                BORDER_LEFT = BORDER_TOP = BORDER_RIGHT = BORDER_BOTTOM = 1;
-            } else {
-                BORDER_LEFT = BORDER_TOP = 1;
-                BORDER_RIGHT = BORDER_BOTTOM = 3;
-            }
-        } else {
-            BORDER_BOTTOM = BORDER_TOP = BORDER_LEFT = BORDER_RIGHT = 0;
-        }
-
-        layout();
-        redraw();
-    }
-
-    /**
-     * If true, the topCenter will always appear on a separate line by itself, otherwise the 
-     * topCenter will appear in the top row if there is room and will be moved to the second row if
-     * required.
-     * 
-     * @param show true if the topCenter will always appear on a separate line by itself
-     * 
-     * @exception SWTException <ul>
-     *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
-     *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
-     * </ul>
-     */
-    public void setTopCenterSeparate(boolean show) {
-        checkWidget();
-        separateTopCenter = show;
-        layout();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/.classpath b/bundles/org.eclipse.ui.tutorials.rcp.part1/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/.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/bundles/org.eclipse.ui.tutorials.rcp.part1/.cvsignore b/bundles/org.eclipse.ui.tutorials.rcp.part1/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/.project b/bundles/org.eclipse.ui.tutorials.rcp.part1/.project
deleted file mode 100644
index e6589e0..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tutorials.rcp.part1</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/bundles/org.eclipse.ui.tutorials.rcp.part1/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.tutorials.rcp.part1/META-INF/MANIFEST.MF
deleted file mode 100644
index 200e474..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Part1 Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tutorials.rcp.part1; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.ui.tutorials.rcp.part1.Part1Plugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/build.properties b/bundles/org.eclipse.ui.tutorials.rcp.part1/build.properties
deleted file mode 100644
index 2b0d95b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/part1.product b/bundles/org.eclipse.ui.tutorials.rcp.part1/part1.product
deleted file mode 100644
index e8c972a..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/part1.product
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="RCP Tutorial 1" id="org.eclipse.ui.tutorials.rcp.part1.product" application="org.eclipse.ui.tutorials.rcp.part1.application" useFeatures="false">
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <plugins>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.tutorials.rcp.part1"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/plugin.xml b/bundles/org.eclipse.ui.tutorials.rcp.part1/plugin.xml
deleted file mode 100644
index df1d470..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.tutorials.rcp.part1.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Part1 Perspective"
-            class="org.eclipse.ui.tutorials.rcp.part1.Perspective"
-            id="org.eclipse.ui.tutorials.rcp.part1.perspective">
-      </perspective>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.tutorials.rcp.part1.application"
-            name="RCP Tutorial 1"/>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Application.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Application.java
deleted file mode 100644
index 4b7822e..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Application.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IPlatformRunnable {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IPlatformRunnable.EXIT_RESTART;
-			}
-			return IPlatformRunnable.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationActionBarAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 5da3f82..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-
-    protected void makeActions(IWorkbenchWindow window) {
-    }
-
-    protected void fillMenuBar(IMenuManager menuBar) {
-    }
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 58cd3e5..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.tutorials.rcp.part1.perspective";
-
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index e6d5b32..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(400, 300));
-        configurer.setShowCoolBar(false);
-        configurer.setShowStatusLine(false);
-        configurer.setTitle("Hello RCP");
-    }
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Part1Plugin.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Part1Plugin.java
deleted file mode 100644
index b2ed123..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Part1Plugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class Part1Plugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static Part1Plugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public Part1Plugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static Part1Plugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tutorials.rcp.part1", path);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Perspective.java b/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Perspective.java
deleted file mode 100644
index 0680b93..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part1/src/org/eclipse/ui/tutorials/rcp/part1/Perspective.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part1;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/.classpath b/bundles/org.eclipse.ui.tutorials.rcp.part2/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/.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/bundles/org.eclipse.ui.tutorials.rcp.part2/.cvsignore b/bundles/org.eclipse.ui.tutorials.rcp.part2/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/.project b/bundles/org.eclipse.ui.tutorials.rcp.part2/.project
deleted file mode 100644
index 240ce3a..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tutorials.rcp.part2</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/bundles/org.eclipse.ui.tutorials.rcp.part2/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.tutorials.rcp.part2/META-INF/MANIFEST.MF
deleted file mode 100644
index 54860e8..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Part2 Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tutorials.rcp.part2; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.ui.tutorials.rcp.part2.Part2Plugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/build.properties b/bundles/org.eclipse.ui.tutorials.rcp.part2/build.properties
deleted file mode 100644
index 2b0d95b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/part2.product b/bundles/org.eclipse.ui.tutorials.rcp.part2/part2.product
deleted file mode 100644
index 8aa4fef..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/part2.product
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="RCP Tutorial 2" id="org.eclipse.ui.tutorials.rcp.part2.product" application="org.eclipse.ui.tutorials.rcp.part2.application" useFeatures="false">
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <plugins>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.tutorials.rcp.part2"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/plugin.xml b/bundles/org.eclipse.ui.tutorials.rcp.part2/plugin.xml
deleted file mode 100644
index ea7415b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/plugin.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.tutorials.rcp.part2.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Part2 Perspective"
-            class="org.eclipse.ui.tutorials.rcp.part2.Perspective"
-            id="org.eclipse.ui.tutorials.rcp.part2.perspective">
-      </perspective>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.tutorials.rcp.part2.application"
-            name="RCP Tutorial 2"/>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Application.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Application.java
deleted file mode 100644
index 6292541..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Application.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IPlatformRunnable {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IPlatformRunnable.EXIT_RESTART;
-			}
-			return IPlatformRunnable.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationActionBarAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 351bc6d..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-
-    protected void makeActions(IWorkbenchWindow window) {
-    }
-
-    protected void fillMenuBar(IMenuManager menuBar) {
-    }
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index a76ee8b..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.tutorials.rcp.part2.perspective";
-
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 2d9d918..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(400, 300));
-        configurer.setShowCoolBar(false);
-        configurer.setShowStatusLine(false);
-        configurer.setTitle("Hello RCP");
-    }
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Part2Plugin.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Part2Plugin.java
deleted file mode 100644
index aac1f4e..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Part2Plugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class Part2Plugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static Part2Plugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public Part2Plugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static Part2Plugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tutorials.rcp.part2", path);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Perspective.java b/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Perspective.java
deleted file mode 100644
index 913f0a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part2/src/org/eclipse/ui/tutorials/rcp/part2/Perspective.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part2;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/.classpath b/bundles/org.eclipse.ui.tutorials.rcp.part3/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/.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/bundles/org.eclipse.ui.tutorials.rcp.part3/.cvsignore b/bundles/org.eclipse.ui.tutorials.rcp.part3/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/.project b/bundles/org.eclipse.ui.tutorials.rcp.part3/.project
deleted file mode 100644
index 0f0612a..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tutorials.rcp.part3</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/bundles/org.eclipse.ui.tutorials.rcp.part3/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.tutorials.rcp.part3/META-INF/MANIFEST.MF
deleted file mode 100644
index 42daae3..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Part3 Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tutorials.rcp.part3; singleton:=true
-Bundle-Version: 1.0.0
-Bundle-Activator: org.eclipse.ui.tutorials.rcp.part3.Part3Plugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/build.properties b/bundles/org.eclipse.ui.tutorials.rcp.part3/build.properties
deleted file mode 100644
index 7493b25..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               plugin.properties,\
-               product_lg.gif,\
-               splash.bmp
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.icns b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.icns
deleted file mode 100644
index 1e92ccc..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample.icns
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample2.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample3.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample3.gif
deleted file mode 100644
index b949ac9..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/icons/sample3.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/part3.product b/bundles/org.eclipse.ui.tutorials.rcp.part3/part3.product
deleted file mode 100644
index 0fcf82e..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/part3.product
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="RCP Tutorial 3" id="org.eclipse.ui.tutorials.rcp.part3.product" application="org.eclipse.ui.tutorials.rcp.part3.application" useFeatures="false">
-
-   <aboutInfo>
-      <image path="/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif"/>
-      <text>
-         RCP Tutorial 3
-Version 1.0.0
-by Ed Burnette
-
-For more information on Eclipse and the
-Rich Client Platform visit:
-http://www.eclipse.org
-
-Copyrights and other legal stuff goes here.
-      </text>
-   </aboutInfo>
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <windowImages/>
-
-
-   <launcher>
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <plugins>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.tutorials.rcp.part3"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.properties b/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.properties
deleted file mode 100644
index 77a85f2..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-aboutText=This RCP Application was generated from\n\
-the PDE Plug-in Project wizard.\n\n\
-This sample shows how to:\n\
-- add a top-level menu and toolbar with actions\n\
-- add keybindings to actions\n\
-- create views that can't be closed and\n\
-  multiple instances of the same view\n\
-- perspectives with placeholders for new views\n\
-- use the default about dialog\n\
-- create a product definition\n
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.xml b/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.xml
deleted file mode 100644
index da19e7c..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/plugin.xml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         id="application"
-         point="org.eclipse.core.runtime.applications">
-      <application>
-         <run
-               class="org.eclipse.ui.tutorials.rcp.part3.Application">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Part3 Perspective"
-            class="org.eclipse.ui.tutorials.rcp.part3.Perspective"
-            id="org.eclipse.ui.tutorials.rcp.part3.perspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            name="Message"
-            allowMultiple="true"
-            icon="icons/sample2.gif"
-            class="org.eclipse.ui.tutorials.rcp.part3.View"
-            id="org.eclipse.ui.tutorials.rcp.part3.view">
-      </view>
-      <view
-            name="Mailboxes"
-            allowMultiple="true"
-            icon="icons/sample3.gif"
-            class="org.eclipse.ui.tutorials.rcp.part3.NavigationView"
-            id="org.eclipse.ui.tutorials.rcp.part3.navigationView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Mail"
-            id="org.eclipse.ui.tutorials.rcp.part3.category">
-      </category>
-      <command
-            name="Open Mailbox"
-            description="Opens a mailbox"
-            categoryId="org.eclipse.ui.tutorials.rcp.part3.category"
-            id="org.eclipse.ui.tutorials.rcp.part3.open">
-      </command>
-      <command
-            name="Open Message Dialog"
-            description="Open a message dialog"
-            categoryId="org.eclipse.ui.tutorials.rcp.part3.category"
-            id="org.eclipse.ui.tutorials.rcp.part3.openMessage">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.ui.tutorials.rcp.part3.open"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+2">
-      </key>
-      <key
-            commandId="org.eclipse.ui.tutorials.rcp.part3.openMessage"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+3">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+X">
-      </key>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.tutorials.rcp.part3.application"
-            name="RCP Tutorial 3">
-         <property
-               name="aboutImage"
-               value="product_lg.gif"/>
-         <property
-               name="aboutText"
-               value="RCP Tutorial 3&#x0A;Version 1.0.0&#x0A;by Ed Burnette&#x0A;&#x0A;For more information on Eclipse and the&#x0A;Rich Client Platform visit:&#x0A;http://www.eclipse.org&#x0A;&#x0A;Copyrights and other legal stuff goes here."/>
-      </product>
-   </extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif b/bundles/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/splash.bmp b/bundles/org.eclipse.ui.tutorials.rcp.part3/splash.bmp
deleted file mode 100644
index 99ea60d..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Application.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Application.java
deleted file mode 100644
index 2e1c6eb..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Application.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class controls all aspects of the application's execution
- */
-public class Application implements IPlatformRunnable {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IPlatformRunnable#run(java.lang.Object)
-	 */
-	public Object run(Object args) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IPlatformRunnable.EXIT_RESTART;
-			}
-			return IPlatformRunnable.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationActionBarAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationActionBarAdvisor.java
deleted file mode 100644
index e500bf1..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.ICoolBarManager;
-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.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * An action bar advisor is responsible for creating, adding, and disposing of the
- * actions added to a workbench window. Each window will be populated with
- * new actions.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-    // Actions - important to allocate these only in makeActions, and then use them
-    // in the fill methods.  This ensures that the actions aren't recreated
-    // when fillActionBars is called with FILL_PROXY.
-    private IWorkbenchAction exitAction;
-    private IWorkbenchAction aboutAction;
-    private IWorkbenchAction newWindowAction;
-    private OpenViewAction openViewAction;
-    private Action messagePopupAction;
-    
-
-    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-    }
-    
-    protected void makeActions(final IWorkbenchWindow window) {
-        // Creates the actions and registers them.
-        // Registering is needed to ensure that key bindings work.
-        // The corresponding commands keybindings are defined in the plugin.xml file.
-        // Registering also provides automatic disposal of the actions when
-        // the window is closed.
-
-        exitAction = ActionFactory.QUIT.create(window);
-        register(exitAction);
-        
-        aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-        
-        newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        register(newWindowAction);
-        
-        openViewAction = new OpenViewAction(window, "Open Another Message View", View.ID);
-        register(openViewAction);
-        
-        messagePopupAction = new MessagePopupAction("Open Message", window);
-        register(messagePopupAction);
-    }
-    
-    protected void fillMenuBar(IMenuManager menuBar) {
-        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);
-        MenuManager helpMenu = new MenuManager("&Help", IWorkbenchActionConstants.M_HELP);
-        
-        menuBar.add(fileMenu);
-        // Add a group marker indicating where action set menus will appear.
-        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuBar.add(helpMenu);
-        
-        // File
-        fileMenu.add(newWindowAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(messagePopupAction);
-        fileMenu.add(openViewAction);
-        fileMenu.add(new Separator());
-        fileMenu.add(exitAction);
-        
-        // Help
-        helpMenu.add(aboutAction);
-    }
-    
-    protected void fillCoolBar(ICoolBarManager coolBar) {
-        IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-        coolBar.add(new ToolBarContributionItem(toolbar, "main"));   
-        toolbar.add(openViewAction);
-        toolbar.add(messagePopupAction);
-    }
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index fb51c0f..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * This workbench advisor creates the window advisor, and specifies
- * the perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-	
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.tutorials.rcp.part3.perspective";
-
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new ApplicationWorkbenchWindowAdvisor(configurer);
-    }
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	} 
-	
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchWindowAdvisor.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 432df34..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(600, 400));
-        configurer.setShowCoolBar(true);
-        configurer.setShowStatusLine(false);
-    }
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ICommandIds.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ICommandIds.java
deleted file mode 100644
index 8e7ea30..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/ICommandIds.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-/**
- * Interface defining the application's command IDs.
- * Key bindings can be defined for specific commands.
- * To associate an action with a command, use IAction.setActionDefinitionId(commandId).
- *
- * @see org.eclipse.jface.action.IAction#setActionDefinitionId(String)
- */
-public interface ICommandIds {
-
-    public static final String CMD_OPEN = "org.eclipse.ui.tutorials.rcp.part3.open";
-    public static final String CMD_OPEN_MESSAGE = "org.eclipse.ui.tutorials.rcp.part3.openMessage";
-    
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/MessagePopupAction.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/MessagePopupAction.java
deleted file mode 100644
index 7d011ae..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/MessagePopupAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-
-
-public class MessagePopupAction extends Action {
-
-    private final IWorkbenchWindow window;
-
-    MessagePopupAction(String text, IWorkbenchWindow window) {
-        super(text);
-        this.window = window;
-        // The id is used to refer to the action in a menu or toolbar
-        setId(ICommandIds.CMD_OPEN_MESSAGE);
-        // Associate the action with a pre-defined command, to allow key bindings.
-        setActionDefinitionId(ICommandIds.CMD_OPEN_MESSAGE);
-        setImageDescriptor(org.eclipse.ui.tutorials.rcp.part3.Part3Plugin.getImageDescriptor("/icons/sample3.gif"));
-    }
-
-    public void run() {
-        MessageDialog.openInformation(window.getShell(), "Open", "Open Message Dialog!");
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/NavigationView.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/NavigationView.java
deleted file mode 100644
index 1e72e1f..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/NavigationView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-public class NavigationView extends ViewPart {
-	public static final String ID = "org.eclipse.ui.tutorials.rcp.part3.navigationView";
-	private TreeViewer viewer;
-	 
-	class TreeObject {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject[] getChildren() {
-			return (TreeObject[]) children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-
-        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-        
-		public void dispose() {
-		}
-        
-		public Object[] getElements(Object parent) {
-			return getChildren(parent);
-		}
-        
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-        
-		public Object[] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-
-        public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-	}
-	
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-    /**
-     * We will set up a dummy model to initialize tree heararchy. In real
-     * code, you will connect to a real model and expose its hierarchy.
-     */
-    private TreeObject createDummyModel() {
-        TreeObject to1 = new TreeObject("Inbox");
-        TreeObject to2 = new TreeObject("Drafts");
-        TreeObject to3 = new TreeObject("Sent");
-        TreeParent p1 = new TreeParent("me@this.com");
-        p1.addChild(to1);
-        p1.addChild(to2);
-        p1.addChild(to3);
-
-        TreeObject to4 = new TreeObject("Inbox");
-        TreeParent p2 = new TreeParent("other@aol.com");
-        p2.addChild(to4);
-
-        TreeParent root = new TreeParent("");
-        root.addChild(p1);
-        root.addChild(p2);
-        return root;
-    }
-
-	/**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(createDummyModel());
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/OpenViewAction.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/OpenViewAction.java
deleted file mode 100644
index 96fad50..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/OpenViewAction.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-
-public class OpenViewAction extends Action {
-	
-	private final IWorkbenchWindow window;
-	private int instanceNum = 0;
-	private final String viewId;
-	
-	public OpenViewAction(IWorkbenchWindow window, String label, String viewId) {
-		this.window = window;
-		this.viewId = viewId;
-        setText(label);
-        // The id is used to refer to the action in a menu or toolbar
-		setId(ICommandIds.CMD_OPEN);
-        // Associate the action with a pre-defined command, to allow key bindings.
-		setActionDefinitionId(ICommandIds.CMD_OPEN);
-		setImageDescriptor(org.eclipse.ui.tutorials.rcp.part3.Part3Plugin.getImageDescriptor("/icons/sample2.gif"));
-	}
-	
-	public void run() {
-		if(window != null) {	
-			try {
-				window.getActivePage().showView(viewId, Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				MessageDialog.openError(window.getShell(), "Error", "Error opening view:" + e.getMessage());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Part3Plugin.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Part3Plugin.java
deleted file mode 100644
index c8b7d98..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Part3Plugin.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class Part3Plugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static Part3Plugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public Part3Plugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static Part3Plugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tutorials.rcp.part3", path);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Perspective.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Perspective.java
deleted file mode 100644
index 91c7171..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/Perspective.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(false);
-		
-		layout.addStandaloneView(NavigationView.ID,  false, IPageLayout.LEFT, 0.25f, editorArea);
-		IFolderLayout folder = layout.createFolder("messages", IPageLayout.TOP, 0.5f, editorArea);
-		folder.addPlaceholder(View.ID + ":*");
-		folder.addView(View.ID);
-		
-		layout.getViewLayout(NavigationView.ID).setCloseable(false);
-	}
-}
diff --git a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/View.java b/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/View.java
deleted file mode 100644
index 36fc658..0000000
--- a/bundles/org.eclipse.ui.tutorials.rcp.part3/src/org/eclipse/ui/tutorials/rcp/part3/View.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package org.eclipse.ui.tutorials.rcp.part3;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.ViewPart;
-
-public class View extends ViewPart {
-
-	public static final String ID = "org.eclipse.ui.tutorials.rcp.part3.view";
-	
-	public void createPartControl(Composite parent) {
-		Composite top = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		top.setLayout(layout);
-		// top banner
-		Composite banner = new Composite(top, SWT.NONE);
-		banner.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL, GridData.VERTICAL_ALIGN_BEGINNING, true, false));
-		layout = new GridLayout();
-		layout.marginHeight = 5;
-		layout.marginWidth = 10;
-		layout.numColumns = 2;
-		banner.setLayout(layout);
-		
-		// setup bold font
-		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);    
-		
-		Label l = new Label(banner, SWT.WRAP);
-		l.setText("Subject:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("This is a message about the cool Eclipse RCP!");
-		
-		l = new Label(banner, SWT.WRAP);
-		l.setText("From:");
-		l.setFont(boldFont);
-    
-		final Link link = new Link(banner, SWT.NONE);
-		link.setText("<a>nicole@mail.org</a>");
-		link.addSelectionListener(new SelectionAdapter() {    
-			public void widgetSelected(SelectionEvent e) {
-				MessageDialog.openInformation(getSite().getShell(), "Not Implemented", "Imagine the address book or a new message being created now.");
-			}    
-		});
-    
-		l = new Label(banner, SWT.WRAP);
-		l.setText("Date:");
-		l.setFont(boldFont);
-		l = new Label(banner, SWT.WRAP);
-		l.setText("10:34 am");
-		// message contents
-		Text text = new Text(top, SWT.MULTI | SWT.WRAP);
-		text.setText("This RCP Application was generated from the PDE Plug-in Project wizard. This sample shows how to:\n"+
-						"- add a top-level menu and toolbar with actions\n"+
-						"- add keybindings to actions\n" +
-						"- create views that can't be closed and\n"+
-						"  multiple instances of the same view\n"+
-						"- perspectives with placeholders for new views\n"+
-						"- use the default about dialog\n"+
-						"- create a product definition\n");
-		text.setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-
-	public void setFocus() {
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.classpath b/bundles/org.eclipse.ui.views.properties.tabbed/.classpath
deleted file mode 100644
index ce0c7a5..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.cvsignore b/bundles/org.eclipse.ui.views.properties.tabbed/.cvsignore
deleted file mode 100644
index f0a691e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-doc
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.project b/bundles/org.eclipse.ui.views.properties.tabbed/.project
deleted file mode 100644
index a1d39d5..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.views.properties.tabbed</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9a50745..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Tue Sep 11 09:39:14 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b323b7f..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Wed Jul 02 15:17:10 EDT 2008
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.5\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template></templates>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d8e8469..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:12:29 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views.properties.tabbed/META-INF/MANIFEST.MF
deleted file mode 100644
index d6657a7..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.views.properties.tabbed;singleton:=true
-Bundle-Version: 3.5.0.qualifier
-Bundle-Activator: org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.views.properties.tabbed;x-internal:=true,
- org.eclipse.ui.internal.views.properties.tabbed.l10n;x-internal:=true,
- org.eclipse.ui.internal.views.properties.tabbed.view;x-internal:=true,
- org.eclipse.ui.views.properties.tabbed
-Require-Bundle: org.eclipse.ui.forms;bundle-version="[3.3.0,4.0.0)";visibility:=reexport,
- org.eclipse.ui.views;bundle-version="[3.2.0,4.0.0)";visibility:=reexport,
- org.eclipse.ui;bundle-version="[3.3.0,4.0.0)";visibility:=reexport,
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)"
-Import-Package: com.ibm.icu.text
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
-Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/about.html b/bundles/org.eclipse.ui.views.properties.tabbed/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/build.properties b/bundles/org.eclipse.ui.views.properties.tabbed/build.properties
deleted file mode 100644
index a4efc20..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               plugin.properties,\
-               .,\
-               META-INF/,\
-               about.html
-src.includes = about.html,\
-               schema/
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties b/bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties
deleted file mode 100644
index be38cad..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 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
-###############################################################################
-Plugin.name = Tabbed Properties View
-Plugin.providerName = Eclipse.org
-
-ExtPoint.propertyContributor = Property Contributor
-ExtPoint.propertyTabs = Property Tabs
-ExtPoint.propertySections = Property Sections
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml b/bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml
deleted file mode 100644
index 848ec50..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/plugin.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension-point id="propertyContributor" name="%ExtPoint.propertyContributor" schema="schema/propertyContributor.exsd"/>
-   <extension-point id="propertyTabs" name="%ExtPoint.propertyTabs" schema="schema/propertyTabs.exsd"/>
-   <extension-point id="propertySections" name="%ExtPoint.propertySections" schema="schema/propertySections.exsd"/>
-
-</plugin>
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd b/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd
deleted file mode 100644
index 21166c6..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyContributor.exsd
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.views.properties.tabbed">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.views.properties.tabbed" id="propertyContributor" name="Property Contributor"/>
-      </appInfo>
-      <documentation>
-         Describes a workbench part that is a contributor of properties to be displayed within tabs in the tabbed property sheet page.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="propertyContributor"/>
-         </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>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertyContributor">
-      <complexType>
-         <sequence>
-            <element ref="propertyCategory" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="contributorId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique identifier of the property sheet page contributor.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="typeMapper" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the type mapper, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.ITypeMapper&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.ITypeMapper"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="labelProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the label provider for the title for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.jface.viewers.ILabelProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ILabelProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="actionProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the action provider for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.IActionProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.IActionProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="sectionDescriptorProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the section descriptor provider for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="tabDescriptorProvider" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements the tab descriptor provider for the property sheet page, i.e. implements &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="overridableTabListContentProvider" type="boolean">
-            <annotation>
-               <documentation>
-                  If true then this contributor will override the list of tabs by using sections that extend &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.AbstractOverridableTabListPropertySection&lt;/tt&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertyCategory">
-      <complexType>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  A category used to group tabs.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.views.properties.tabbed.propertyContributor&quot;&gt;
-      &lt;propertyContributor
-            contributorId=&quot;org.eclipse.ui.tests.views.properties.tabbed.views.TestsView&quot;
-            labelProvider=&quot;org.eclipse.ui.tests.views.properties.tabbed.views.LabelProvider&quot;
-            typeMapper=&quot;org.eclipse.ui.tests.views.properties.tabbed.views.TypeMapper&quot;&gt;
-         &lt;propertyCategory category=&quot;first&quot;&gt;
-         &lt;/propertyCategory&gt;
-         &lt;propertyCategory category=&quot;second&quot;&gt;
-         &lt;/propertyCategory&gt;
-      &lt;/propertyContributor&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </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) 2005, 2006 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/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd b/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd
deleted file mode 100644
index bd77cfc..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertySections.exsd
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.views.properties.tabbed">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.views.properties.tabbed" id="propertySections" name="Property Sections"/>
-      </appInfo>
-      <documentation>
-         Describes a list of sections to be displayed within tabs that will be contributed to the tabbed property sheet page.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="propertySections"/>
-         </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>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertySections">
-      <complexType>
-         <sequence>
-            <element ref="propertySection" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="contributorId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique identifier of the property sheet page contributor.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertySection">
-      <complexType>
-         <sequence>
-            <element ref="input" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="tab" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The tab in which this section appears.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id for the section.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class that implements the section, i.e. extends &lt;tt&gt;org.eclipse.ui.views.properties.tabbed.AbstractPropertySection&lt;/tt&gt;
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.ui.views.properties.tabbed.AbstractPropertySection"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="afterSection" type="string">
-            <annotation>
-               <documentation>
-                  When there is more than one section in a tab, sections are sorted by the afterSection attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="filter" type="string">
-            <annotation>
-               <documentation>
-                  The class that implements a section filter, i.e. implements &lt;tt&gt;org.eclipse.jface.viewers.IFilter&lt;/tt&gt;.
-A filter is used to override the type mapper and input for the selection. When a filter is specified, type mapper and input are ignored.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.IFilter"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="enablesFor" type="string">
-            <annotation>
-               <documentation>
-                  a value indicating the selection count which must be met to enable the section. If specified and the condition is not met, the section is not displayed. If omitted, the section enablement is not affected. The following attribute formats are currently supported: 
-    &lt;table border=&quot;0&quot; width=&quot;80%&quot;&gt;
-      &lt;tr&gt;
- &lt;td valign=&quot;top&quot; width=&quot;25&quot;&gt;&lt;/td&gt;
-        &lt;td valign=&quot;top&quot; nowrap&gt;&lt;b&gt;n&lt;/b&gt;&lt;/td&gt;
-        &lt;td valign=&quot;top&quot;&gt;- a precise number of items selected.&amp;nbsp;
-          For example: enablesFor=&amp;quot; 1&amp;quot; enables the section only when 1
-          item is selected&lt;/td&gt;
-      &lt;/tr&gt;
-    &lt;/table&gt;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="input">
-      <complexType>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The selected class or interface that will enable the display on the section in the tab.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.tests.views.properties.tabbed.propertySections&quot;&gt;
-      &lt;propertySections contributorId=&quot;org.eclipse.ui.views.properties.tabbed.views.TestsView&quot;&gt;
-         &lt;propertySection
-               class=&quot;org.eclipse.ui.tests.views.properties.tabbed.sections.NameSection&quot;
-               enablesFor=&quot;1&quot;
-               id=&quot;propertySection1&quot;
-               tab=&quot;propertyTab1&quot;&gt;
-            &lt;input type=&quot;org.eclipse.ui.tests.views.properties.tabbed.model.Element&quot;&gt;
-            &lt;/input&gt;
-         &lt;/propertySection&gt;
-      &lt;/propertySections&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </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) 2005, 2006 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/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd b/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd
deleted file mode 100644
index 63bcd13..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/schema/propertyTabs.exsd
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.views.properties.tabbed" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.ui.views.properties.tabbed" id="propertyTabs" name="Property Tabs"/>
-      </appinfo>
-      <documentation>
-         Describes a list of tabs that will be contributed to the tabbed property sheet page.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="propertyTabs"/>
-         </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>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertyTabs">
-      <complexType>
-         <sequence>
-            <element ref="propertyTab" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="contributorId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique identifier of the property sheet page contributor.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertyTab">
-      <complexType>
-         <attribute name="label" type="string" use="required">
-         	<annotation>
-            	<appInfo>
-                  <meta.attribute translatable="true"/>
-               	</appInfo>
-               <documentation>
-                  The label to be displayed on the tab.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="category" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The category used to group tabs.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="afterTab" type="string">
-            <annotation>
-               <documentation>
-                  When there is more than one tab in a category, tabs are sorted by the afterTab attribute.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The unique id for the tab.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="indented" type="boolean">
-            <annotation>
-               <documentation>
-                  If &lt;code&gt;true&lt;/code&gt;, then this tab is idented. This is meant to indicate subtabs or categories of the parent tab.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="image" type="string">
-            <annotation>
-               <documentation>
-                  If an image is provided, the icon image is displayed on the tab when the tab is active.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.ui.views.properties.tabbed.propertyTabs&quot;&gt;
-      &lt;propertyTabs contributorId=&quot;org.eclipse.ui.tests.views.properties.tabbed.views.TestsView&quot;&gt;
-         &lt;propertyTab
-               category=&quot;first&quot;
-               id=&quot;propertyTab1&quot;
-               label=&quot;Name&quot;&gt;
-         &lt;/propertyTab&gt;
-         &lt;propertyTab
-               afterTab=&quot;propertyTab1&quot;
-               category=&quot;first&quot;
-               id=&quot;propertyTab2&quot;
-               label=&quot;Project&quot;&gt;
-         &lt;/propertyTab&gt;
-         &lt;propertyTab
-               category=&quot;second&quot;
-               id=&quot;propertyTab8&quot;
-               label=&quot;Message&quot;&gt;
-         &lt;/propertyTab&gt;
-      &lt;/propertyTabs&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         Copyright (c) 2005, 2008 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/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewPlugin.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewPlugin.java
deleted file mode 100755
index 0f1447f..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewPlugin.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The common ui properties plug-in.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyViewPlugin
-	extends AbstractUIPlugin {
-
-	private static TabbedPropertyViewPlugin plugin;
-
-    /**
-     * Constructor for TabbedPropertyViewPlugin.
-     */
-	public TabbedPropertyViewPlugin() {
-		super();
-		plugin = this;
-	}
-
-    /**
-     * Retrieve the plug-in class for this plug-in.
-     * @return the plug-in class for this plug-in.
-     */
-	public static TabbedPropertyViewPlugin getPlugin() {
-		return plugin;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewStatusCodes.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewStatusCodes.java
deleted file mode 100755
index eafad48..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/TabbedPropertyViewStatusCodes.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-/**
- * A list of status codes for this plug-in.
- * 
- * @author Anthony Hunter
- */
-public final class TabbedPropertyViewStatusCodes {
-
-	/**
-	 * This class should not be instantiated since it is a static constant
-	 * class.
-	 */
-	private TabbedPropertyViewStatusCodes() {
-		/* not used */
-	}
-
-	/**
-	 * Status code indicating that everything is OK.
-	 */
-	public static final int OK = 0;
-
-	/**
-	 * Status code indicating that a tab was not found for the given tab id.
-	 */
-	public static final int NO_TAB_ERROR = 1;
-
-	/**
-	 * Status code indicating that issue was found loading the section extension
-	 * configuration element.
-	 */
-	public static final int SECTION_ERROR = 2;
-
-	/**
-	 * Status code indicating that issue was found loading the tab extension
-	 * configuration element.
-	 */
-	public static final int TAB_ERROR = 3;
-
-	/**
-	 * Status code indicating that issue was found loading the contributor
-	 * extension configuration element.
-	 */
-	public static final int CONTRIBUTOR_ERROR = 4;
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.java
deleted file mode 100755
index e0af002..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.l10n;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Message Bundle class for the tabbed properties view plug-in.
- * 
- * @author Anthony Hunter
- * 
- */
-public final class TabbedPropertyMessages
-	extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages";//$NON-NLS-1$
-
-	/**
-	 * Constructor for TabbedPropertyMessages.
-	 */
-	private TabbedPropertyMessages() {
-		// private constructor
-	}
-
-    /**
-     * Message when a property section extension is in error.
-     */
-	public static String SectionDescriptor_Section_error;
-
-	/**
-     * Message when a property section extension causes a class not found exception.
-     */
-	public static String SectionDescriptor_class_not_found_error;
-	
-    /**
-     * Message when a property tab extension is in error.
-     */
-	public static String TabDescriptor_Tab_error;
-
-    /**
-     * Message when a property tab extension has an unknown category.
-     */
-	public static String TabDescriptor_Tab_unknown_category;
-
-    /**
-     * Message when a non existing tab is found in a property section extension.
-     */
-	public static String TabbedPropertyRegistry_Non_existing_tab;
-
-    /**
-     * Message when a property contributor extension is in error.
-     */
-	public static String TabbedPropertyRegistry_contributor_error;
-
-    /**
-     * No properties available message.
-     */
-	public static String TabbedPropertyList_properties_not_available;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, TabbedPropertyMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties
deleted file mode 100755
index 01c6477..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/l10n/TabbedPropertyMessages.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-SectionDescriptor_Section_error=Section in {0} must provide an id and a tab.
-SectionDescriptor_class_not_found_error=Section {0} declares non-existing filter or section class.
-TabDescriptor_Tab_error=Tab in {0} must provide an id, label and category.
-TabDescriptor_Tab_unknown_category=Tab in {0} declares non-existing category {1}.
-TabbedPropertyRegistry_Non_existing_tab=Section {0} declares non-existing tab {1}.
-TabbedPropertyRegistry_contributor_error=Contributor {0} cannot be created.
-TabbedPropertyList_properties_not_available=Properties are not available.
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java
deleted file mode 100644
index 84c70eb..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/OverridableTabListContentProvider.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.AbstractOverridableTabListPropertySection;
-import org.eclipse.ui.views.properties.tabbed.IOverridableTabListContentProvider;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-import org.eclipse.ui.views.properties.tabbed.ITabSelectionListener;
-import org.eclipse.ui.views.properties.tabbed.TabContents;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An extended implementation of the content provider for the tabbed property
- * sheet page's list of tabs.
- * <p>
- * This implementation allows the section to override the list of what tabs are
- * displayed, rather than using the default list of tabs from the tabbed
- * property registry.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverridableTabListContentProvider extends TabListContentProvider
-		implements IOverridableTabListContentProvider, ITabSelectionListener {
-
-	/**
-	 * Constructor for OverrideTabListContentProvider.
-	 * 
-	 * @param registry
-	 *            the tabbed property registry.
-	 */
-	public OverridableTabListContentProvider(TabbedPropertyRegistry registry) {
-		super(registry);
-	}
-
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	private TabbedPropertyViewer tabbedPropertyViewer;
-
-	/**
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		if (tabbedPropertySheetPage.getCurrentTab() == null) {
-			/*
-			 * In this case, return the default list of tabs from the registry.
-			 * The contributor will not have had a chance to load and override
-			 * the tabs.
-			 */
-			return registry.getTabDescriptors(currentPart,
-					(ISelection) inputElement);
-		}
-		return getOverrideTabs(inputElement);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.views.properties.tabbed.view.TabListContentProvider#dispose()
-	 */
-	public void dispose() {
-		stopListening();
-		this.tabbedPropertyViewer = null;
-		this.currentPart = null;
-		this.tabbedPropertySheetPage = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.internal.views.properties.tabbed.view.TabListContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (tabbedPropertyViewer == null) {
-			Assert.isTrue(viewer instanceof TabbedPropertyViewer);
-			init((TabbedPropertyViewer) viewer);
-		}
-	}
-
-	/**
-	 * Initialize the content provider for a tabbed property viewer.
-	 * 
-	 * @param newTabbedPropertyViewer
-	 *            a tabbed property viewer.
-	 */
-	private void init(TabbedPropertyViewer newTabbedPropertyViewer) {
-		this.tabbedPropertyViewer = newTabbedPropertyViewer;
-		currentPart = tabbedPropertyViewer.getWorkbenchPart();
-		if (currentPart.getAdapter(IPropertySheetPage.class) != null) {
-			tabbedPropertySheetPage = (TabbedPropertySheetPage) currentPart
-					.getAdapter(IPropertySheetPage.class);
-		} else {
-			/*
-			 * Is the part is a IContributedContentsView for the contributor,
-			 * for example, outline view.
-			 */
-			IContributedContentsView view = (IContributedContentsView) currentPart
-					.getAdapter(IContributedContentsView.class);
-			if (view != null) {
-				IWorkbenchPart part = view.getContributingPart();
-				if (part != null) {
-					tabbedPropertySheetPage = (TabbedPropertySheetPage) part
-							.getAdapter(IPropertySheetPage.class);
-				}
-			}
-		}
-		Assert
-				.isNotNull(
-						tabbedPropertySheetPage,
-						"DynamicTabListContentProvider could not find the TabbedPropertySheetPage for the active part");//$NON-NLS-1$
-		startListening();
-	}
-
-	/**
-	 * Start listening to tab selection change events.
-	 */
-	private void startListening() {
-		tabbedPropertySheetPage.addTabSelectionListener(this);
-	}
-
-	/**
-	 * Stop listening to tab selection change events.
-	 */
-	private void stopListening() {
-		tabbedPropertySheetPage.removeTabSelectionListener(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabSelectionListener#tabSelected(org.eclipse.ui.views.properties.tabbed.ITabDescriptor)
-	 */
-	public void tabSelected(ITabDescriptor tabDescriptor) {
-		AbstractOverridableTabListPropertySection section = getOverridableTabListPropertySection();
-		Assert.isNotNull(section);
-		int selectedIndex = tabbedPropertyViewer.getSelectionIndex();
-		section.selectTab(selectedIndex);
-	}
-
-	/**
-	 * set the selected tab from the list of tabs provided by the section.
-	 */
-	private void setSelectedTab() {
-		TabDescriptor currentSelectedTabInList = null;
-		IStructuredSelection selectionFromList = (IStructuredSelection) tabbedPropertyViewer
-				.getSelection();
-		if (!selectionFromList.equals(StructuredSelection.EMPTY)) {
-			currentSelectedTabInList = (TabDescriptor) selectionFromList
-					.getFirstElement();
-		}
-		AbstractOverridableTabListPropertySection section = getOverridableTabListPropertySection();
-		if (section == null) {
-			if (currentSelectedTabInList == null) {
-				/*
-				 * make sure there is a selected tab in the list.
-				 */
-				TabDescriptor newSelectedTab = (TabDescriptor) tabbedPropertyViewer
-						.getElementAt(0);
-				if (newSelectedTab != null) {
-					tabbedPropertyViewer.setSelection(new StructuredSelection(
-							newSelectedTab), true);
-				}
-			}
-			return;
-		}
-		ITabItem[] dynamicTabItems = section.getTabs();
-		if (dynamicTabItems == null) {
-			/*
-			 * if the section does not provide overridden tabs, return.
-			 */
-			return;
-		}
-		int selectedTabIndex = -1;
-		for (int i = 0; i < dynamicTabItems.length; i++) {
-			if (dynamicTabItems[i].isSelected()) {
-				selectedTabIndex = i;
-			}
-		}
-		if (currentSelectedTabInList == null ||
-				!currentSelectedTabInList.getText().equals(
-						dynamicTabItems[selectedTabIndex].getText())) {
-			TabDescriptor newSelectedTab = (TabDescriptor) tabbedPropertyViewer
-					.getElementAt(selectedTabIndex);
-			tabbedPropertyViewer.setSelection(new StructuredSelection(
-					newSelectedTab), true);
-		}
-	}
-
-	/**
-	 * Get the list of tabs to display in the tabbed property sheet page.
-	 * 
-	 * @param inputElement
-	 *            The current input element.
-	 * @return the list of tabs.
-	 */
-	private ITabDescriptor[] getOverrideTabs(Object inputElement) {
-		ITabDescriptor tabDescriptors[] = registry.getTabDescriptors(
-				currentPart, (ISelection) inputElement);
-		if (tabDescriptors == TabbedPropertyRegistry.EMPTY_DESCRIPTOR_ARRAY) {
-			/*
-			 * We clone the dynamic tabs from the single tab in the registry. If
-			 * the registry has no tabs for the selection, return.
-			 */
-			return tabDescriptors;
-		}
-		AbstractOverridableTabListPropertySection section = getOverridableTabListPropertySection();
-		Assert.isNotNull(section);
-		ITabItem[] tabItems = section.getTabs();
-		if (tabItems == null) {
-			/*
-			 * if the section does not provide overridden tabs, return the
-			 * default tabs from the registry.
-			 */
-			return tabDescriptors;
-		}
-		ITabDescriptor[] overrideTabDescriptors = new ITabDescriptor[tabItems.length];
-		TabDescriptor target = (TabDescriptor) tabDescriptors[0];
-		for (int i = 0; i < tabItems.length; i++) {
-			TabDescriptor cloneTabDescriptor = (TabDescriptor) target.clone();
-			cloneTabDescriptor.setLabel(tabItems[i].getText());
-			cloneTabDescriptor.setImage(tabItems[i].getImage());
-			cloneTabDescriptor.setIndented(tabItems[i].isIndented());
-			cloneTabDescriptor.setSelected(tabItems[i].isSelected());
-			overrideTabDescriptors[i] = cloneTabDescriptor;
-			// System.out.print("override " + i + " [" +  //$NON-NLS-1$//$NON-NLS-2$
-			// tabItems[i].getText() + "]");//$NON-NLS-1$
-			// if (tabItems[i].isSelected()) {
-			// System.out.print(" selected");//$NON-NLS-1$
-			// }
-			// System.out.println("");//$NON-NLS-1$
-		}
-		return overrideTabDescriptors;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabListContentProvider#overrideTabs()
-	 */
-	public void overrideTabs() {
-		stopListening();
-		Object input = tabbedPropertyViewer.getInput();
-		tabbedPropertyViewer.setInput(input);
-		setSelectedTab();
-		startListening();
-	}
-
-	/**
-	 * Get the section implementation that provides the list of tabs. In our
-	 * implementation, all the sections provide the list of tabs, so we select
-	 * the first section from the tab descriptor.
-	 * 
-	 * @return the section.
-	 */
-	private AbstractOverridableTabListPropertySection getOverridableTabListPropertySection() {
-		TabContents tab = tabbedPropertySheetPage.getCurrentTab();
-		Assert.isNotNull(tab);
-		if (tab != null) {
-			ISection section = tab.getSectionAtIndex(0);
-			if (section instanceof AbstractOverridableTabListPropertySection) {
-				return (AbstractOverridableTabListPropertySection) section;
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java
deleted file mode 100755
index 5489912..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/SectionDescriptor.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewStatusCodes;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-import com.ibm.icu.text.MessageFormat;
-
-/**
- * Represents the default implementation of a section descriptor on the tabbed
- * property sections extensions. This implementation assumes that we are
- * interested in selected objects in an IStructuredSelection.
- * 
- * @author Anthony Hunter
- */
-public class SectionDescriptor extends AbstractSectionDescriptor {
-
-	private static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	private static final String ATT_TARGET_TAB = "tab"; //$NON-NLS-1$
-
-	private static final String ATT_AFTER_SECTION = "afterSection"; //$NON-NLS-1$
-
-	private static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	private static final String ATT_SECTION_FILTER = "filter"; //$NON-NLS-1$	
-
-	private static final String ATT_SECTION_ENABLES_FOR = "enablesFor"; //$NON-NLS-1$	
-
-	private static final String ATT_INPUT_TYPE = "type"; //$NON-NLS-1$
-
-	private static final String ELEMENT_INPUT = "input"; //$NON-NLS-1$
-
-	private String id;
-
-	private String targetTab;
-
-	private String afterSection;
-
-	private ArrayList inputTypes;
-
-	private IFilter filter;
-
-	private int enablesFor = ENABLES_FOR_ANY;
-
-	private IConfigurationElement configurationElement;
-
-	/**
-	 * Constructor for the section descriptor.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element for the section descriptor.
-	 * @param typeMapper
-	 *            The type mapper.
-	 */
-	protected SectionDescriptor(IConfigurationElement configurationElement,
-			ITypeMapper typeMapper) {
-		super(typeMapper);
-		this.configurationElement = configurationElement;
-
-		id = getConfigurationElement().getAttribute(ATT_ID);
-		targetTab = getConfigurationElement().getAttribute(ATT_TARGET_TAB);
-		afterSection = getConfigurationElement()
-				.getAttribute(ATT_AFTER_SECTION);
-		if (getConfigurationElement().getAttribute(ATT_SECTION_ENABLES_FOR) != null) {
-			String enablesForStr = getConfigurationElement().getAttribute(
-					ATT_SECTION_ENABLES_FOR);
-			int enablesForTest = Integer.parseInt(enablesForStr);
-			if (enablesForTest > 0) {
-				enablesFor = enablesForTest;
-			}
-		}
-
-		if (id == null || targetTab == null) {
-			// the section id and tab are mandatory - log error
-			handleSectionError(null);
-		}
-	}
-
-	/**
-	 * Handle the section error when an issue is found loading from the
-	 * configuration element.
-	 * 
-	 * @param exception
-	 *            an optional CoreException
-	 */
-	private void handleSectionError(CoreException exception) {
-		String pluginId = getConfigurationElement().getDeclaringExtension()
-				.getNamespaceIdentifier();
-		String message = TabbedPropertyMessages.SectionDescriptor_Section_error;
-		if (exception == null) {
-			message = MessageFormat.format(
-					TabbedPropertyMessages.SectionDescriptor_Section_error,
-					new Object[] { pluginId });
-		} else {
-			message = MessageFormat
-					.format(
-							TabbedPropertyMessages.SectionDescriptor_class_not_found_error,
-							new Object[] { pluginId });
-		}
-		IStatus status = new Status(IStatus.ERROR, pluginId,
-				TabbedPropertyViewStatusCodes.SECTION_ERROR, message, exception);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getId()
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getFilter()
-	 */
-	public IFilter getFilter() {
-		if (filter == null) {
-			try {
-				if (getConfigurationElement().getAttribute(ATT_SECTION_FILTER) != null) {
-					filter = (IFilter) configurationElement
-							.createExecutableExtension(ATT_SECTION_FILTER);
-				}
-			} catch (CoreException exception) {
-				handleSectionError(exception);
-			}
-		}
-		return filter;
-	}
-
-	/**
-	 * Retrieves the value for section enablement which is a precise number of
-	 * items selected. For example: enablesFor=" 4" enables the action only when
-	 * 4 items are selected. If not specified, enable for all selections.
-	 * 
-	 * @return the value for section enablement.
-	 */
-	public int getEnablesFor() {
-		return enablesFor;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getTargetTab()
-	 */
-	public String getTargetTab() {
-		return targetTab;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getAfterSection()
-	 */
-	public String getAfterSection() {
-		if (afterSection == null) {
-			return super.getAfterSection();
-		}
-		return afterSection;
-	}
-
-	/**
-	 * Creates an instance of a section described by this descriptor
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getSectionClass()
-	 */
-	public ISection getSectionClass() {
-		ISection section = null;
-		try {
-			section = (ISection) getConfigurationElement()
-					.createExecutableExtension(ATT_CLASS);
-		} catch (CoreException exception) {
-			handleSectionError(exception);
-		}
-
-		return section;
-	}
-
-	/**
-	 * Gets the input types that are valid for this section.
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getInputTypes()
-	 */
-	public List getInputTypes() {
-		if (inputTypes == null) {
-			inputTypes = new ArrayList();
-			IConfigurationElement[] elements = getConfigurationElement()
-					.getChildren(ELEMENT_INPUT);
-			for (int i = 0; i < elements.length; i++) {
-				IConfigurationElement element = elements[i];
-				inputTypes.add(element.getAttribute(ATT_INPUT_TYPE));
-			}
-		}
-
-		return inputTypes;
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return getId();
-	}
-
-	/**
-	 * @return Returns the configurationElement.
-	 */
-	private IConfigurationElement getConfigurationElement() {
-		return configurationElement;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java
deleted file mode 100755
index e47cd18..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabDescriptor.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewStatusCodes;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-
-import com.ibm.icu.text.MessageFormat;
-
-/**
- * Represents the default implementation of a tab descriptor on the tabbed
- * property tabs extensions.
- * 
- * @author Anthony Hunter
- */
-public class TabDescriptor extends AbstractTabDescriptor {
-
-	private static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	private static final String ATT_LABEL = "label"; //$NON-NLS-1$
-
-	private static final String ATT_IMAGE = "image"; //$NON-NLS-1$
-
-	private static final String ATT_INDENTED = "indented"; //$NON-NLS-1$
-
-	private static final String ATT_CATEGORY = "category"; //$NON-NLS-1$
-
-	private static final String ATT_AFTER_TAB = "afterTab"; //$NON-NLS-1$
-
-	private final static String TAB_ERROR = TabbedPropertyMessages.TabDescriptor_Tab_error;
-
-	private String id;
-
-	private String label;
-
-	private Image image;
-
-	private boolean selected;
-
-	private boolean indented;
-
-	private String category;
-
-	private String afterTab;
-
-	/**
-	 * Constructor for TabDescriptor.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element for the tab descriptor.
-	 */
-	public TabDescriptor(IConfigurationElement configurationElement) {
-		super();
-		if (configurationElement != null) {
-			id = configurationElement.getAttribute(ATT_ID);
-			label = configurationElement.getAttribute(ATT_LABEL);
-			String imageString = configurationElement.getAttribute(ATT_IMAGE);
-			if (imageString != null) {
-				image = AbstractUIPlugin.imageDescriptorFromPlugin(
-						configurationElement.getDeclaringExtension()
-								.getNamespaceIdentifier(), imageString)
-						.createImage();
-			}
-			String indentedString = configurationElement
-					.getAttribute(ATT_INDENTED);
-			indented = indentedString != null && indentedString.equals("true"); //$NON-NLS-1$
-			category = configurationElement.getAttribute(ATT_CATEGORY);
-			afterTab = configurationElement.getAttribute(ATT_AFTER_TAB);
-			if (id == null || label == null || category == null) {
-				// the tab id, label and category are mandatory - log error
-				handleTabError(configurationElement, null);
-			}
-		}
-		selected = false;
-	}
-
-	/**
-	 * Get the unique identifier for the tab.
-	 * 
-	 * @return the unique identifier for the tab.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getLabel() {
-		return label;
-	}
-
-	/**
-	 * Get the identifier of the tab after which this tab should be displayed.
-	 * When two or more tabs belong to the same category, they are sorted by the
-	 * after tab values.
-	 * 
-	 * @return the identifier of the tab.
-	 */
-	public String getAfterTab() {
-		if (afterTab == null) {
-			return super.getAfterTab();
-		}
-		return afterTab;
-	}
-
-	/**
-	 * Get the category this tab belongs to.
-	 * 
-	 * @return Get the category this tab belongs to.
-	 */
-	public String getCategory() {
-		return category;
-	}
-
-	/**
-	 * Returns whether the given section was added to this tab. The section can
-	 * be appended if its tab attribute matches the tab id. The afterSection
-	 * attribute indicates the order in which the section should be appended.
-	 * 
-	 * @param target
-	 *            the section descriptor to append.
-	 */
-	protected boolean append(ISectionDescriptor target) {
-		if (!target.getTargetTab().equals(id)) {
-			return false;
-		}
-
-		if (insertSectionDescriptor(target)) {
-			return true;
-		}
-
-		getSectionDescriptors().add(target);
-		return true;
-	}
-
-	/**
-	 * Insert the section descriptor into the section descriptor list.
-	 * 
-	 * @param target
-	 *            the section descriptor to insert.
-	 * @return <code>true</code> if the target descriptor was added to the
-	 *         descriptors list.
-	 */
-	private boolean insertSectionDescriptor(ISectionDescriptor target) {
-		if (target.getAfterSection().equals(TOP)) {
-			getSectionDescriptors().add(0, target);
-			return true;
-		}
-		for (int i = 0; i < getSectionDescriptors().size(); i++) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) getSectionDescriptors()
-					.get(i);
-			if (target.getAfterSection().equals(descriptor.getId())) {
-				getSectionDescriptors().add(i + 1, target);
-				return true;
-			} else if (descriptor.getAfterSection().equals(target.getId())) {
-				getSectionDescriptors().add(i, target);
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return getId();
-	}
-
-	/**
-	 * Handle the tab error when an issue is found loading from the
-	 * configuration element.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element
-	 * @param exception
-	 *            an optional CoreException
-	 */
-	private void handleTabError(IConfigurationElement configurationElement,
-			CoreException exception) {
-		String pluginId = configurationElement.getDeclaringExtension()
-				.getNamespaceIdentifier();
-		String message = MessageFormat.format(TAB_ERROR,
-				new Object[] { pluginId });
-		IStatus status = new Status(IStatus.ERROR, pluginId,
-				TabbedPropertyViewStatusCodes.TAB_ERROR, message, exception);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * Set the image for the tab.
-	 * 
-	 * @param image
-	 *            the image for the tab.
-	 */
-	protected void setImage(Image image) {
-		this.image = image;
-	}
-
-	/**
-	 * Set the indicator to determine if the tab should be displayed as
-	 * indented.
-	 * 
-	 * @param indented
-	 *            <code>true</code> if the tab should be displayed as
-	 *            indented.
-	 */
-	protected void setIndented(boolean indented) {
-		this.indented = indented;
-	}
-
-	/**
-	 * Set the indicator to determine if the tab should be the selected tab in
-	 * the list.
-	 * 
-	 * @param selected
-	 *            <code>true</code> if the tab should be the selected tab in
-	 *            the list.
-	 */
-	protected void setSelected(boolean selected) {
-		this.selected = selected;
-	}
-
-	/**
-	 * Set the text label for the tab.
-	 * 
-	 * @param label
-	 *            the text label for the tab.
-	 */
-	protected void setLabel(String label) {
-		this.label = label;
-	}
-
-	/**
-	 * Get the image for the tab.
-	 * 
-	 * @return the image for the tab.
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * Determine if the tab is selected.
-	 * 
-	 * @return <code>true</code> if the tab is selected.
-	 */
-	public boolean isSelected() {
-		return selected;
-	}
-
-	/**
-	 * Determine if the tab should be displayed as indented.
-	 * 
-	 * @return <code>true</code> if the tab should be displayed as indented.
-	 */
-	public boolean isIndented() {
-		return indented;
-	}
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getText() {
-		return label;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java
deleted file mode 100755
index 14c1771..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabListContentProvider.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * The default implementation of the content provider for the 
- * tabbed property sheet page's list of tabs.
- * 
- * @author Anthony Hunter
- */
-public class TabListContentProvider
-	implements IStructuredContentProvider {
-	
-	protected TabbedPropertyRegistry registry;
-
-	protected IWorkbenchPart currentPart;
-	
-	/**
-	 * Constructor for TabListContentProvider.
-	 * @param registry the tabbed property registry.
-	 */
-	public TabListContentProvider(TabbedPropertyRegistry registry) {
-		this.registry = registry;
-	}
-	
-	/**
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		Assert.isTrue(inputElement instanceof ISelection);
-			return registry
-			.getTabDescriptors(currentPart, (ISelection) inputElement);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		/* not used */
-	}
-
-	/**
-	 * @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) {
-		this.currentPart = ((TabbedPropertyViewer)viewer).getWorkbenchPart();
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java
deleted file mode 100755
index 1fb31e7..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyComposite.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-
-/**
- * Composite responsible for drawing the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyComposite
-	extends Composite {
-
-	private TabbedPropertySheetWidgetFactory factory;
-
-	private Composite mainComposite;
-
-	private Composite leftComposite;
-
-	private ScrolledComposite scrolledComposite;
-
-	private Composite tabComposite;
-
-	private TabbedPropertyTitle title;
-
-	private TabbedPropertyList listComposite;
-
-	private boolean displayTitle;
-
-	/**
-	 * Constructor for a TabbedPropertyComposite
-	 * 
-	 * @param parent
-	 *            the parent widget.
-	 * @param factory
-	 *            the widget factory.
-	 * @param displayTitle
-	 *            if <code>true</code>, then the title bar will be displayed.
-	 */
-	public TabbedPropertyComposite(Composite parent,
-			TabbedPropertySheetWidgetFactory factory, boolean displayTitle) {
-		super(parent, SWT.NO_FOCUS);
-		this.factory = factory;
-		this.displayTitle = displayTitle;
-
-		createMainComposite();
-	}
-
-	/**
-	 * Create the main composite.
-	 */
-	protected void createMainComposite() {
-		mainComposite = factory.createComposite(this, SWT.NO_FOCUS);
-		mainComposite.setLayout(new FormLayout());
-		FormData formData = new FormData();
-		formData.left = new FormAttachment(0, 0);
-		formData.right = new FormAttachment(100, 0);
-		formData.top = new FormAttachment(0, 0);
-		formData.bottom = new FormAttachment(100, 0);
-		mainComposite.setLayoutData(formData);
-
-		createMainContents();
-	}
-
-	/**
-	 * Create the contents in the main composite.
-	 */
-	protected void createMainContents() {
-        if (displayTitle) {
-            title = new TabbedPropertyTitle(mainComposite, factory);
-
-            FormData data = new FormData();
-            data.left = new FormAttachment(0, 0);
-            data.right = new FormAttachment(100, 0);
-            data.top = new FormAttachment(0, 0);
-            title.setLayoutData(data);
-        }
-
-		leftComposite = factory.createComposite(mainComposite, SWT.NO_FOCUS);
-		leftComposite.setLayout(new FormLayout());
-
-		scrolledComposite = factory.createScrolledComposite(mainComposite, SWT.H_SCROLL
-			| SWT.V_SCROLL | SWT.NO_FOCUS);
-
-		FormData formData = new FormData();
-		formData.left = new FormAttachment(leftComposite, 0);
-		formData.right = new FormAttachment(100, 0);
-        if (displayTitle) {
-            formData.top = new FormAttachment(title, 0);
-        } else {
-            formData.top = new FormAttachment(0, 0);
-        }
-		formData.bottom = new FormAttachment(100, 0);
-		scrolledComposite.setLayoutData(formData);
-
-		formData = new FormData();
-		formData.left = new FormAttachment(0, 0);
-		formData.right = new FormAttachment(scrolledComposite, 0);
-        if (displayTitle) {
-            formData.top = new FormAttachment(title, 0);
-        } else {
-            formData.top = new FormAttachment(0, 0);
-        }
-		formData.bottom = new FormAttachment(100, 0);
-		leftComposite.setLayoutData(formData);
-
-        tabComposite = factory.createComposite(scrolledComposite, SWT.NO_FOCUS);
-        tabComposite.setLayout(new FormLayout());
-
-		scrolledComposite.setContent(tabComposite);
-		scrolledComposite.setAlwaysShowScrollBars(false);
-		scrolledComposite.setExpandVertical(true);
-		scrolledComposite.setExpandHorizontal(true);
-
-		listComposite = new TabbedPropertyList(leftComposite, factory);
-		formData = new FormData();
-		formData.left = new FormAttachment(0, 0);
-		formData.right = new FormAttachment(100, 0);
-		formData.top = new FormAttachment(0, 0);
-		formData.bottom = new FormAttachment(100, 0);
-		listComposite.setLayoutData(formData);
-	}
-
-	/**
-	 * Get the tabbed property list, which is the list of tabs on the left hand
-	 * side of this composite.
-	 * 
-	 * @return the tabbed property list.
-	 */
-	public TabbedPropertyList getList() {
-		return listComposite;
-	}
-
-	/**
-	 * Get the tabbed property title bar.
-	 * 
-	 * @return the tabbed property title bar or <code>null</code> if not used.
-	 */
-	public TabbedPropertyTitle getTitle() {
-		return title;
-	}
-
-	/**
-	 * Get the tab composite where sections display their property contents.
-	 * 
-	 * @return the tab composite.
-	 */
-	public Composite getTabComposite() {
-		return tabComposite;
-	}
-
-	/**
-	 * Get the scrolled composite which surrounds the title bar and tab
-	 * composite.
-	 * 
-	 * @return the scrolled composite.
-	 */
-	public ScrolledComposite getScrolledComposite() {
-		return scrolledComposite;
-	}
-
-	/**
-	 * Get the widget factory.
-	 * 
-	 * @return the widget factory.
-	 */
-	protected TabbedPropertySheetWidgetFactory getFactory() {
-		return factory;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Widget#dispose()
-	 */
-	public void dispose() {
-		listComposite.dispose();
-		if (displayTitle) {
-			title.dispose();
-		}
-		super.dispose();
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java
deleted file mode 100755
index 468f1d5..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyList.java
+++ /dev/null
@@ -1,1045 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Mariot Chauvin <mariot.chauvin@obeo.fr> - bug 259553
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties.tabbed.view;
-
-import org.eclipse.jface.resource.JFaceResources;
-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.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.FontMetrics;
-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.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-
-/**
- * Shows the list of tabs in the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyList
-	extends Composite {
-
-	private static final ListElement[] ELEMENTS_EMPTY = new ListElement[0];
-
-	protected static final int NONE = -1;
-
-	protected static final int INDENT = 7;
-
-	private boolean focus = false;
-
-	private ListElement[] elements;
-
-	private int selectedElementIndex = NONE;
-
-	private int topVisibleIndex = NONE;
-
-	private int bottomVisibleIndex = NONE;
-
-	private TopNavigationElement topNavigationElement;
-
-	private BottomNavigationElement bottomNavigationElement;
-
-	private int widestLabelIndex = NONE;
-
-	private int tabsThatFitInComposite = NONE;
-
-	private Color widgetForeground;
-
-	private Color widgetBackground;
-
-	private Color widgetNormalShadow;
-
-	private Color widgetDarkShadow;
-
-	private Color listBackground;
-
-	private Color hoverGradientStart;
-
-	private Color hoverGradientEnd;
-
-	private Color defaultGradientStart;
-
-	private Color defaultGradientEnd;
-
-	private Color indentedDefaultBackground;
-
-	private Color indentedHoverBackground;
-
-	private Color navigationElementShadowStroke;
-
-	private Color bottomNavigationElementShadowStroke1;
-
-	private Color bottomNavigationElementShadowStroke2;
-
-	private TabbedPropertySheetWidgetFactory factory;
-
-	/**
-	 * One of the tabs in the tabbed property list.
-	 */
-	public class ListElement extends Canvas {
-
-		private ITabItem tab;
-
-		private int index;
-
-		private boolean selected;
-
-		private boolean hover;
-
-		/**
-		 * Constructor for ListElement.
-		 * 
-		 * @param parent
-		 *            the parent Composite.
-		 * @param tab
-		 *            the tab item for the element.
-		 * @param index
-		 *            the index in the list.
-		 */
-		public ListElement(Composite parent, final ITabItem tab, int index) {
-			super(parent, SWT.NO_FOCUS);
-			this.tab = tab;
-			hover = false;
-			selected = false;
-			this.index = index;
-
-			addPaintListener(new PaintListener() {
-
-				public void paintControl(PaintEvent e) {
-					paint(e);
-				}
-			});
-			addMouseListener(new MouseAdapter() {
-
-				public void mouseUp(MouseEvent e) {
-					if (!selected) {
-						select(getIndex(ListElement.this));
-						/*
-						 * We set focus to the tabbed property composite so that
-						 * focus is moved to the appropriate widget in the
-						 * section.
-						 */
-						Composite tabbedPropertyComposite = getParent();
-						while (!(tabbedPropertyComposite instanceof TabbedPropertyComposite)) {
-							tabbedPropertyComposite = tabbedPropertyComposite
-								.getParent();
-						}
-						tabbedPropertyComposite.setFocus();
-					}
-				}
-			});
-			addMouseMoveListener(new MouseMoveListener() {
-
-				public void mouseMove(MouseEvent e) {
-					if (!hover) {
-						hover = true;
-						redraw();
-					}
-				}
-			});
-			addMouseTrackListener(new MouseTrackAdapter() {
-
-				public void mouseExit(MouseEvent e) {
-					hover = false;
-					redraw();
-				}
-			});
-		}
-
-		/**
-		 * Set selected value for this element.
-		 * 
-		 * @param selected
-		 *            the selected value.
-		 */
-		public void setSelected(boolean selected) {
-			this.selected = selected;
-			redraw();
-		}
-
-		/**
-		 * Paint the element.
-		 * 
-		 * @param e
-		 *            the paint event.
-		 */
-		private void paint(PaintEvent e) {
-			/*
-			 * draw the top two lines of the tab, same for selected, hover and
-			 * default
-			 */
-			Rectangle bounds = getBounds();
-			e.gc.setForeground(widgetNormalShadow);
-			e.gc.drawLine(0, 0, bounds.width - 1, 0);
-			e.gc.setForeground(listBackground);
-			e.gc.drawLine(0, 1, bounds.width - 1, 1);
-
-			/* draw the fill in the tab */
-			if (selected) {
-				e.gc.setBackground(listBackground);
-				e.gc.fillRectangle(0, 2, bounds.width, bounds.height - 1);
-			} else if (hover && tab.isIndented()) {
-				e.gc.setBackground(indentedHoverBackground);
-				e.gc.fillRectangle(0, 2, bounds.width - 1, bounds.height - 1);
-			} else if (hover) {
-				e.gc.setForeground(hoverGradientStart);
-				e.gc.setBackground(hoverGradientEnd);
-				e.gc.fillGradientRectangle(0, 2, bounds.width - 1,
-						bounds.height - 1, true);
-			} else if (tab.isIndented()) {
-				e.gc.setBackground(indentedDefaultBackground);
-				e.gc.fillRectangle(0, 2, bounds.width - 1, bounds.height - 1);
-			} else {
-				e.gc.setForeground(defaultGradientStart);
-				e.gc.setBackground(defaultGradientEnd);
-				e.gc.fillGradientRectangle(0, 2, bounds.width - 1,
-						bounds.height - 1, true);
-			}
-
-			if (!selected) {
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(bounds.width - 1, 1, bounds.width - 1,
-						bounds.height + 1);
-			}
-
-			int textIndent = INDENT;
-			FontMetrics fm = e.gc.getFontMetrics();
-			int height = fm.getHeight();
-			int textMiddle = (bounds.height - height) / 2;
-
-			if (selected && tab.getImage() != null
-				&& !tab.getImage().isDisposed()) {
-				/* draw the icon for the selected tab */
-				if (tab.isIndented()) {
-					textIndent = textIndent + INDENT;
-				} else {
-					textIndent = textIndent - 3;
-				}
-				e.gc.drawImage(tab.getImage(), textIndent, textMiddle - 1);
-				textIndent = textIndent + 16 + 5;
-			} else if (tab.isIndented()) {
-				textIndent = textIndent + INDENT;
-			}
-
-			/* draw the text */
-			e.gc.setForeground(widgetForeground);
-			if (selected) {
-				/* selected tab is bold font */
-				e.gc.setFont(JFaceResources.getFontRegistry().getBold(
-						JFaceResources.DEFAULT_FONT));
-			}
-			e.gc.drawText(tab.getText(), textIndent, textMiddle, true);
-			if (((TabbedPropertyList) getParent()).focus && selected) {
-				/* draw a line if the tab has focus */
-				Point point = e.gc.textExtent(tab.getText());
-				e.gc.drawLine(textIndent, bounds.height - 4, textIndent
-					+ point.x, bounds.height - 4);
-			}
-
-			/* draw the bottom line on the tab for selected and default */
-			if (!hover) {
-				e.gc.setForeground(listBackground);
-				e.gc.drawLine(0, bounds.height - 1, bounds.width - 2,
-						bounds.height - 1);
-			}
-		}
-
-		/**
-		 * Get the tab item.
-		 * 
-		 * @return the tab item.
-		 */
-		public ITabItem getTabItem() {
-			return tab;
-		}
-
-		public String toString() {
-			return tab.getText();
-		}
-	}
-
-	/**
-	 * The top navigation element in the tabbed property list. It looks like a
-	 * scroll button when scrolling is needed or is just a spacer when no
-	 * scrolling is required.
-	 */
-	public class TopNavigationElement extends Canvas {
-
-		/**
-		 * Constructor for TopNavigationElement.
-		 * 
-		 * @param parent
-		 *            the parent Composite.
-		 */
-		public TopNavigationElement(Composite parent) {
-			super(parent, SWT.NO_FOCUS);
-			addPaintListener(new PaintListener() {
-
-				public void paintControl(PaintEvent e) {
-					paint(e);
-				}
-			});
-			addMouseListener(new MouseAdapter() {
-
-				public void mouseUp(MouseEvent e) {
-					if (isUpScrollRequired()) {
-						bottomVisibleIndex--;
-						if (topVisibleIndex != 0) {
-							topVisibleIndex--;
-						}
-						layoutTabs();
-						topNavigationElement.redraw();
-						bottomNavigationElement.redraw();
-					}
-				}
-			});
-		}
-
-		/**
-		 * Paint the element.
-		 * 
-		 * @param e
-		 *            the paint event.
-		 */
-		private void paint(PaintEvent e) {
-			e.gc.setBackground(widgetBackground);
-			e.gc.setForeground(widgetForeground);
-			Rectangle bounds = getBounds();
-
-			if (elements.length != 0) {
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(bounds.width - 1, 0, bounds.width - 1,
-					bounds.height - 1);
-			} else {
-				e.gc.setBackground(listBackground);
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				int textIndent = INDENT;
-				FontMetrics fm = e.gc.getFontMetrics();
-				int height = fm.getHeight();
-				int textMiddle = (bounds.height - height) / 2;
-				e.gc.setForeground(widgetForeground);
-				String properties_not_available = TabbedPropertyMessages.TabbedPropertyList_properties_not_available;
-				e.gc.drawText(properties_not_available, textIndent, textMiddle);
-			}
-
-			if (isUpScrollRequired()) {
-				e.gc.setForeground(widgetDarkShadow);
-				int middle = bounds.width / 2;
-				e.gc.drawLine(middle + 1, 3, middle + 5, 7);
-				e.gc.drawLine(middle, 3, middle - 4, 7);
-				e.gc.drawLine(middle - 3, 7, middle + 4, 7);
-
-				e.gc.setForeground(listBackground);
-				e.gc.drawLine(middle, 4, middle + 1, 4);
-				e.gc.drawLine(middle - 1, 5, middle + 2, 5);
-				e.gc.drawLine(middle - 2, 6, middle + 3, 6);
-
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(0, 0, bounds.width - 2, 0);
-				e.gc.setForeground(navigationElementShadowStroke);
-				e.gc.drawLine(0, 1, bounds.width - 2, 1);
-				e.gc.drawLine(0, bounds.height - 1, bounds.width - 2,
-						bounds.height - 1);
-			}
-		}
-	}
-
-	/**
-	 * The top navigation element in the tabbed property list. It looks like a
-	 * scroll button when scrolling is needed or is just a spacer when no
-	 * scrolling is required.
-	 */
-	public class BottomNavigationElement extends Canvas {
-
-		/**
-		 * Constructor for BottomNavigationElement.
-		 * 
-		 * @param parent
-		 *            the parent Composite.
-		 */
-		public BottomNavigationElement(Composite parent) {
-			super(parent, SWT.NO_FOCUS);
-			addPaintListener(new PaintListener() {
-
-				public void paintControl(PaintEvent e) {
-					paint(e);
-				}
-			});
-			addMouseListener(new MouseAdapter() {
-
-				public void mouseUp(MouseEvent e) {
-					if (isDownScrollRequired()) {
-						topVisibleIndex++;
-						if (bottomVisibleIndex != elements.length - 1) {
-							bottomVisibleIndex++;
-						}
-						layoutTabs();
-						topNavigationElement.redraw();
-						bottomNavigationElement.redraw();
-					}
-				}
-			});
-		}
-
-		/**
-		 * Paint the element.
-		 * 
-		 * @param e
-		 *            the paint event.
-		 */
-		private void paint(PaintEvent e) {
-			e.gc.setBackground(widgetBackground);
-			e.gc.setForeground(widgetForeground);
-			Rectangle bounds = getBounds();
-
-			if (elements.length != 0) {
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(bounds.width - 1, 0, bounds.width - 1,
-						bounds.height - 1);
-				e.gc.drawLine(0, 0, bounds.width - 1, 0);
-
-				e.gc.setForeground(bottomNavigationElementShadowStroke1);
-				e.gc.drawLine(0, 1, bounds.width - 2, 1);
-				e.gc.setForeground(bottomNavigationElementShadowStroke2);
-				e.gc.drawLine(0, 2, bounds.width - 2, 2);
-			} else {
-				e.gc.setBackground(listBackground);
-				e.gc.fillRectangle(0, 0, bounds.width, bounds.height);
-			}
-
-			if (isDownScrollRequired()) {
-				e.gc.setForeground(widgetDarkShadow);
-				int middle = bounds.width / 2;
-				int bottom = bounds.height - 3;
-				e.gc.drawLine(middle + 1, bottom, middle + 5, bottom - 4);
-				e.gc.drawLine(middle, bottom, middle - 4, bottom - 4);
-				e.gc.drawLine(middle - 3, bottom - 4, middle + 4, bottom - 4);
-
-				e.gc.setForeground(listBackground);
-				e.gc.drawLine(middle, bottom - 1, middle + 1, bottom - 1);
-				e.gc.drawLine(middle - 1, bottom - 2, middle + 2, bottom - 2);
-				e.gc.drawLine(middle - 2, bottom - 3, middle + 3, bottom - 3);
-
-				e.gc.setForeground(widgetNormalShadow);
-				e.gc.drawLine(0, bottom - 7, bounds.width - 2, bottom - 7);
-				e.gc.setForeground(navigationElementShadowStroke);
-				e.gc.drawLine(0, bottom + 2, bounds.width - 2, bottom + 2);
-				e.gc.drawLine(0, bottom - 6, bounds.width - 2, bottom - 6);
-			}
-		}
-	}
-
-	/**
-	 * Constructor for TabbedPropertyList.
-	 * 
-	 * @param parent
-	 *            the parent widget.
-	 * @param factory
-	 *            the widget factory.
-	 */
-	public TabbedPropertyList(Composite parent,
-			TabbedPropertySheetWidgetFactory factory) {
-		super(parent, SWT.NO_FOCUS);
-		this.factory = factory;
-		removeAll();
-		setLayout(new FormLayout());
-		initColours();
-		initAccessible();
-		topNavigationElement = new TopNavigationElement(this);
-		bottomNavigationElement = new BottomNavigationElement(this);
-
-		this.addFocusListener(new FocusListener() {
-
-			public void focusGained(FocusEvent e) {
-				focus = true;
-				int i = getSelectionIndex();
-				if (i >= 0) {
-					elements[i].redraw();
-				}
-			}
-
-			public void focusLost(FocusEvent e) {
-				focus = false;
-				int i = getSelectionIndex();
-				if (i >= 0) {
-					elements[i].redraw();
-				}
-			}
-		});
-		this.addControlListener(new ControlAdapter() {
-
-			public void controlResized(ControlEvent e) {
-				computeTopAndBottomTab();
-			}
-		});
-		this.addTraverseListener(new TraverseListener() {
-
-			public void keyTraversed(TraverseEvent e) {
-				if (e.detail == SWT.TRAVERSE_ARROW_PREVIOUS
-					|| e.detail == SWT.TRAVERSE_ARROW_NEXT) {
-					int nMax = elements.length - 1;
-					int nCurrent = getSelectionIndex();
-					if (e.detail == SWT.TRAVERSE_ARROW_PREVIOUS) {
-						nCurrent -= 1;
-						nCurrent = Math.max(0, nCurrent);
-					} else if (e.detail == SWT.TRAVERSE_ARROW_NEXT) {
-						nCurrent += 1;
-						nCurrent = Math.min(nCurrent, nMax);
-					}
-					select(nCurrent);
-					redraw();
-				} else {
-					e.doit = true;
-				}
-			}
-		});
-	}
-
-	/**
-	 * Calculate the number of tabs that will fit in the tab list composite.
-	 */
-	protected void computeTabsThatFitInComposite() {
-		tabsThatFitInComposite = Math
-			.round((getSize().y - 22) / getTabHeight());
-		if (tabsThatFitInComposite <= 0) {
-			tabsThatFitInComposite = 1;
-		}
-	}
-
-	/**
-	 * Returns the element with the given index from this list viewer. Returns
-	 * <code>null</code> if the index is out of range.
-	 * 
-	 * @param index
-	 *            the zero-based index
-	 * @return the element at the given index, or <code>null</code> if the
-	 *         index is out of range
-	 */
-	public Object getElementAt(int index) {
-		if (index >= 0 && index < elements.length) {
-			return elements[index];
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the zero-relative index of the item which is currently selected
-	 * in the receiver, or -1 if no item is selected.
-	 * 
-	 * @return the index of the selected item
-	 */
-	public int getSelectionIndex() {
-		return selectedElementIndex;
-	}
-
-	/**
-	 * Removes all elements from this list.
-	 */
-	public void removeAll() {
-		if (elements != null) {
-			for (int i = 0; i < elements.length; i++) {
-				elements[i].dispose();
-			}
-		}
-		elements = ELEMENTS_EMPTY;
-		selectedElementIndex = NONE;
-		widestLabelIndex = NONE;
-		topVisibleIndex = NONE;
-		bottomVisibleIndex = NONE;
-	}
-
-	/**
-	 * Sets the new list elements.
-	 * 
-	 * @param children
-	 */
-	public void setElements(Object[] children) {
-		if (elements != ELEMENTS_EMPTY) {
-			removeAll();
-		}
-		elements = new ListElement[children.length];
-		if (children.length == 0) {
-			widestLabelIndex = NONE;
-		} else {
-			widestLabelIndex = 0;
-			for (int i = 0; i < children.length; i++) {
-				elements[i] = new ListElement(this, (ITabItem) children[i], i);
-				elements[i].setVisible(false);
-				elements[i].setLayoutData(null);
-
-				if (i != widestLabelIndex) {
-					String label = ((ITabItem) children[i]).getText();
-					int width = getTextDimension(label).x;
-					if (((ITabItem) children[i]).isIndented()) {
-						width = width + INDENT;
-					}
-					if (width > getTextDimension(((ITabItem) children[widestLabelIndex])
-							.getText()).x) {
-						widestLabelIndex = i;
-					}
-				}
-			}
-		}
-
-		computeTopAndBottomTab();
-	}
-
-	/**
-	 * Selects one of the elements in the list.
-	 * 
-	 * @param index
-	 *            the index of the element to select.
-	 */
-	protected void select(int index) {
-		if (getSelectionIndex() == index) {
-			/*
-			 * this index is already selected.
-			 */
-			return;
-		}
-		if (index >= 0 && index < elements.length) {
-			int lastSelected = getSelectionIndex();
-			elements[index].setSelected(true);
-			selectedElementIndex = index;
-			if (lastSelected != NONE) {
-				elements[lastSelected].setSelected(false);
-				if (getSelectionIndex() != elements.length - 1) {
-					/*
-					 * redraw the next tab to fix the border by calling
-					 * setSelected()
-					 */
-					elements[getSelectionIndex() + 1].setSelected(false);
-				}
-			}
-			topNavigationElement.redraw();
-			bottomNavigationElement.redraw();
-
-			if (selectedElementIndex < topVisibleIndex
-				|| selectedElementIndex > bottomVisibleIndex) {
-				computeTopAndBottomTab();
-			}
-		}
-		notifyListeners(SWT.Selection, new Event());
-	}
-
-	/**
-	 * Deselects all the elements in the list.
-	 */
-	public void deselectAll() {
-		if (getSelectionIndex() != NONE) {
-			elements[getSelectionIndex()].setSelected(false);
-			selectedElementIndex = NONE;
-		}
-	}
-
-	private int getIndex(ListElement element) {
-		return element.index;
-	}
-
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		Point result = super.computeSize(hHint, wHint, changed);
-		if (widestLabelIndex == -1) {
-			String properties_not_available = TabbedPropertyMessages.TabbedPropertyList_properties_not_available;
-			result.x = getTextDimension(properties_not_available).x + INDENT;
-		} else {
-			ITabItem widestTab = elements[widestLabelIndex].getTabItem();
-			int width = getTextDimension(widestTab.getText()).x + INDENT;
-			/*
-			 * To anticipate for the icon placement we should always keep the
-			 * space available after the label. So when the active tab includes
-			 * an icon the width of the tab doesn't change.
-			 */
-			if (widestTab.getImage() != null) {
-				width = width + 16 + 4;
-			}
-			if (widestTab.isIndented()) {
-				width = width + 10;
-			}
-			/*
-			 * Add 10 pixels to the right of the longest string as a margin.
-			 */
-			result.x = width + 10;
-		}
-		return result;
-	}
-
-	/**
-	 * Get the dimensions of the provided string.
-	 * 
-	 * @param text
-	 *            the string.
-	 * @return the dimensions of the provided string.
-	 */
-	private Point getTextDimension(String text) {
-		GC gc = new GC(this);
-		gc.setFont(JFaceResources.getFontRegistry().getBold(
-				JFaceResources.DEFAULT_FONT));
-		Point point = gc.textExtent(text);
-		point.x++;
-		gc.dispose();
-		return point;
-	}
-
-	/**
-	 * Initialize the colours used in the list.
-	 */
-	private void initColours() {
-		/*
-		 * Colour 3 COLOR_LIST_BACKGROUND
-		 */
-		listBackground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_LIST_BACKGROUND);
-
-		/*
-		 * Colour 13 COLOR_WIDGET_BACKGROUND
-		 */
-		widgetBackground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_BACKGROUND);
-
-		/*
-		 * Colour 15 COLOR_WIDGET_DARK_SHADOW
-		 */
-		widgetDarkShadow = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_DARK_SHADOW);
-
-		/*
-		 * Colour 16 COLOR_WIDGET_FOREGROUND
-		 */
-		widgetForeground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_FOREGROUND);
-
-		/*
-		 * Colour 19 COLOR_WIDGET_NORMAL_SHADOW
-		 */
-		widgetNormalShadow = Display.getCurrent().getSystemColor(
-				SWT.COLOR_WIDGET_NORMAL_SHADOW);
-
-		RGB infoBackground = Display.getCurrent().getSystemColor(
-				SWT.COLOR_INFO_BACKGROUND).getRGB();
-		RGB white = Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)
-				.getRGB();
-		RGB black = Display.getCurrent().getSystemColor(SWT.COLOR_BLACK)
-				.getRGB();
-
-		/*
-		 * gradient in the default tab: start colour WIDGET_NORMAL_SHADOW 100% +
-		 * white 20% + INFO_BACKGROUND 60% end colour WIDGET_NORMAL_SHADOW 100% +
-		 * INFO_BACKGROUND 40%
-		 */
-		defaultGradientStart = factory.getColors().createColor(
-				"TabbedPropertyList.defaultTabGradientStart", //$NON-NLS-1$
-				FormColors.blend(infoBackground, FormColors.blend(white,
-						widgetNormalShadow.getRGB(), 20), 60));
-		defaultGradientEnd = factory.getColors().createColor(
-				"TabbedPropertyList.defaultTabGradientEnd", //$NON-NLS-1$
-				FormColors.blend(infoBackground, widgetNormalShadow.getRGB(),
-						40));
-
-		navigationElementShadowStroke = factory.getColors().createColor(
-				"TabbedPropertyList.shadowStroke", //$NON-NLS-1$
-				FormColors.blend(white, widgetNormalShadow.getRGB(), 55));
-		bottomNavigationElementShadowStroke1 = factory.getColors().createColor(
-				"TabbedPropertyList.tabShadowStroke1", //$NON-NLS-1$
-				FormColors.blend(black, widgetBackground.getRGB(), 10));
-		bottomNavigationElementShadowStroke2 = factory.getColors().createColor(
-				"TabbedPropertyList.tabShadowStroke2", //$NON-NLS-1$
-				FormColors.blend(black, widgetBackground.getRGB(), 5));
-
-		/*
-		 * gradient in the hover tab: start colour WIDGET_BACKGROUND 100% +
-		 * white 20% end colour WIDGET_BACKGROUND 100% + WIDGET_NORMAL_SHADOW
-		 * 10%
-		 */
-		hoverGradientStart = factory.getColors().createColor(
-				"TabbedPropertyList.hoverBackgroundGradientStart", //$NON-NLS-1$
-				FormColors.blend(white, widgetBackground.getRGB(), 20));
-		hoverGradientEnd = factory.getColors().createColor(
-				"TabbedPropertyList.hoverBackgroundGradientEnd", //$NON-NLS-1$
-				FormColors.blend(widgetNormalShadow.getRGB(), widgetBackground
-						.getRGB(), 10));
-
-		indentedDefaultBackground = factory.getColors().createColor(
-				"TabbedPropertyList.indentedDefaultBackground", //$NON-NLS-1$
-				FormColors.blend(white, widgetBackground.getRGB(), 10));
-		indentedHoverBackground = factory.getColors().createColor(
-				"TabbedPropertyList.indentedHoverBackground", //$NON-NLS-1$
-				FormColors.blend(white, widgetBackground.getRGB(), 75));
-	}
-
-	/**
-	 * Get the height of a tab. The height of the tab is the height of the text
-	 * plus buffer.
-	 * 
-	 * @return the height of a tab.
-	 */
-	private int getTabHeight() {
-		int tabHeight = getTextDimension("").y + INDENT; //$NON-NLS-1$ 
-		if (tabsThatFitInComposite == 1) {
-			/*
-			 * if only one tab will fix, reduce the size of the tab height so
-			 * that the navigation elements fit.
-			 */
-			int ret = getBounds().height - 20;
-			return (ret > tabHeight) ? tabHeight
-				: (ret < 5) ? 5
-					: ret;
-		}
-		return tabHeight;
-	}
-
-	/**
-	 * Determine if a downward scrolling is required.
-	 * 
-	 * @return true if downward scrolling is required.
-	 */
-	private boolean isDownScrollRequired() {
-		return elements.length > tabsThatFitInComposite
-			&& bottomVisibleIndex != elements.length - 1;
-	}
-
-	/**
-	 * Determine if an upward scrolling is required.
-	 * 
-	 * @return true if upward scrolling is required.
-	 */
-	private boolean isUpScrollRequired() {
-		return elements.length > tabsThatFitInComposite && topVisibleIndex != 0;
-	}
-
-	/**
-	 * Based on available space, figure out the top and bottom tabs in the list.
-	 */
-	private void computeTopAndBottomTab() {
-		computeTabsThatFitInComposite();
-		if (elements.length == 0) {
-			/*
-			 * no tabs to display.
-			 */
-			topVisibleIndex = 0;
-			bottomVisibleIndex = 0;
-		} else if (tabsThatFitInComposite >= elements.length) {
-			/*
-			 * all the tabs fit.
-			 */
-			topVisibleIndex = 0;
-			bottomVisibleIndex = elements.length - 1;
-		} else if (getSelectionIndex() == NONE) {
-			/*
-			 * there is no selected tab yet, assume that tab one would
-			 * be selected for now.
-			 */
-			topVisibleIndex = 0;
-			bottomVisibleIndex = tabsThatFitInComposite - 1;
-		} else if (getSelectionIndex() + tabsThatFitInComposite > elements.length) {
-			/*
-			 * the selected tab is near the bottom.
-			 */
-			bottomVisibleIndex = elements.length - 1;
-			topVisibleIndex = bottomVisibleIndex - tabsThatFitInComposite + 1;
-		} else {
-			/*
-			 * the selected tab is near the top.
-			 */
-			topVisibleIndex = selectedElementIndex;
-			bottomVisibleIndex = selectedElementIndex + tabsThatFitInComposite
-				- 1;
-		}
-		layoutTabs();
-	}
-
-	/**
-	 * Layout the tabs.
-	 */
-	private void layoutTabs() {
-		//System.out.println("TabFit " + tabsThatFitInComposite + " length "
-		//	+ elements.length + " top " + topVisibleIndex + " bottom "
-		//	+ bottomVisibleIndex);
-		if (tabsThatFitInComposite == NONE || elements.length == 0) {
-			FormData formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(0, 0);
-			formData.height = getTabHeight();
-			topNavigationElement.setLayoutData(formData);
-
-			formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(topNavigationElement, 0);
-			formData.bottom = new FormAttachment(100, 0);
-			bottomNavigationElement.setLayoutData(formData);
-		} else {
-
-			FormData formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(0, 0);
-			formData.height = 10;
-			topNavigationElement.setLayoutData(formData);
-
-			/*
-			 * use nextElement to attach the layout to the previous canvas
-			 * widget in the list.
-			 */
-			Canvas nextElement = topNavigationElement;
-
-			for (int i = 0; i < elements.length; i++) {
-				//System.out.print(i + " [" + elements[i].getText() + "]");
-				if (i < topVisibleIndex || i > bottomVisibleIndex) {
-					/*
-					 * this tab is not visible
-					 */
-					elements[i].setLayoutData(null);
-					elements[i].setVisible(false);
-				} else {
-					/*
-					 * this tab is visible.
-					 */
-					//System.out.print(" visible");
-					formData = new FormData();
-					formData.height = getTabHeight();
-					formData.left = new FormAttachment(0, 0);
-					formData.right = new FormAttachment(100, 0);
-					formData.top = new FormAttachment(nextElement, 0);
-					nextElement = elements[i];
-					elements[i].setLayoutData(formData);
-					elements[i].setVisible(true);
-				}
-
-				//if (i == selectedElementIndex) {
-				//	System.out.print(" selected");
-				//}
-				//System.out.println("");
-			}
-			formData = new FormData();
-			formData.left = new FormAttachment(0, 0);
-			formData.right = new FormAttachment(100, 0);
-			formData.top = new FormAttachment(nextElement, 0);
-			formData.bottom = new FormAttachment(100, 0);
-			formData.height = 10;
-			bottomNavigationElement.setLayoutData(formData);
-		}
-		//System.out.println("");
-
-		// layout so that we have enough space for the new labels
-		Composite grandparent = getParent().getParent();
-		grandparent.layout(true);
-		layout(true);
-	}
-
-	/**
-	 * Initialize the accessibility adapter.
-	 */
-	private void initAccessible() {
-		final Accessible accessible = getAccessible();
-		accessible.addAccessibleListener(new AccessibleAdapter() {
-
-			public void getName(AccessibleEvent e) {
-				if (getSelectionIndex() != NONE) {
-					e.result = elements[getSelectionIndex()].getTabItem()
-							.getText();
-				}
-			}
-
-			public void getHelp(AccessibleEvent e) {
-				if (getSelectionIndex() != NONE) {
-					e.result = elements[getSelectionIndex()].getTabItem()
-							.getText();
-				}
-			}
-		});
-
-		accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
-
-			public void getChildAtPoint(AccessibleControlEvent e) {
-				Point pt = toControl(new Point(e.x, e.y));
-				e.childID = (getBounds().contains(pt)) ? ACC.CHILDID_SELF
-					: ACC.CHILDID_NONE;
-			}
-
-			public void getLocation(AccessibleControlEvent e) {
-				if (getSelectionIndex() != NONE) {
-					Rectangle location = elements[getSelectionIndex()]
-						.getBounds();
-					Point pt = 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 = 0;
-			}
-
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_TABITEM;
-			}
-
-			public void getState(AccessibleControlEvent e) {
-				e.detail = ACC.STATE_NORMAL | ACC.STATE_SELECTABLE
-					| ACC.STATE_SELECTED | ACC.STATE_FOCUSED
-					| ACC.STATE_FOCUSABLE;
-			}
-		});
-
-		addListener(SWT.Selection, new Listener() {
-
-			public void handleEvent(Event event) {
-				if (isFocusControl()) {
-					accessible.setFocus(ACC.CHILDID_SELF);
-				}
-			}
-		});
-
-		addListener(SWT.FocusIn, new Listener() {
-
-			public void handleEvent(Event event) {
-				accessible.setFocus(ACC.CHILDID_SELF);
-			}
-		});
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java
deleted file mode 100755
index a6b3c33..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistry.java
+++ /dev/null
@@ -1,540 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewStatusCodes;
-import org.eclipse.ui.internal.views.properties.tabbed.l10n.TabbedPropertyMessages;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.IActionProvider;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-import com.ibm.icu.text.MessageFormat;
-
-/**
- * Provides information about the tabbed property extension points. Each tabbed
- * property registry is associated with a unique contributor ID.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyRegistry {
-
-	private final static String NO_TAB_ERROR = TabbedPropertyMessages.TabbedPropertyRegistry_Non_existing_tab;
-
-	private final static String CONTRIBUTOR_ERROR = TabbedPropertyMessages.TabbedPropertyRegistry_contributor_error;
-
-	private final static String TAB_ERROR = TabbedPropertyMessages.TabDescriptor_Tab_unknown_category;
-
-	// extension point constants
-	private static final String EXTPT_CONTRIBUTOR = "propertyContributor"; //$NON-NLS-1$
-
-	private static final String EXTPT_TABS = "propertyTabs"; //$NON-NLS-1$
-
-	private static final String EXTPT_SECTIONS = "propertySections"; //$NON-NLS-1$
-
-	private static final String ELEMENT_TAB = "propertyTab"; //$NON-NLS-1$
-
-	private static final String ELEMENT_SECTION = "propertySection"; //$NON-NLS-1$
-
-	private static final String ELEMENT_PROPERTY_CATEGORY = "propertyCategory"; //$NON-NLS-1$
-
-	private static final String ATT_CATEGORY = "category"; //$NON-NLS-1$
-
-	private static final String ATT_CONTRIBUTOR_ID = "contributorId"; //$NON-NLS-1$
-
-	private static final String ATT_TYPE_MAPPER = "typeMapper"; //$NON-NLS-1$	
-
-	private static final String ATT_LABEL_PROVIDER = "labelProvider"; //$NON-NLS-1$
-
-	private static final String ATT_ACTION_PROVIDER = "actionProvider"; //$NON-NLS-1$
-
-	private static final String ATT_SECTION_DESCRIPTOR_PROVIDER = "sectionDescriptorProvider"; //$NON-NLS-1$
-
-	private static final String ATT_TAB_DESCRIPTOR_PROVIDER = "tabDescriptorProvider"; //$NON-NLS-1$
-
-	private static final String ATT_OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER = "overridableTabListContentProvider"; //$NON-NLS-1$
-
-	private static final String TOP = "top"; //$NON-NLS-1$
-
-	protected String contributorId;
-
-	protected IConfigurationElement contributorConfigurationElement;
-
-	protected List propertyCategories;
-
-	protected ILabelProvider labelProvider;
-
-	protected IActionProvider actionProvider;
-
-	protected ITypeMapper typeMapper;
-
-	protected ISectionDescriptorProvider sectionDescriptorProvider;
-
-	protected ITabDescriptorProvider tabDescriptorProvider;
-
-	protected ITabDescriptor[] tabDescriptors;
-
-	protected static final AbstractTabDescriptor[] EMPTY_DESCRIPTOR_ARRAY = new TabDescriptor[0];
-
-	protected boolean overridableTabListContentProvider = false;
-
-	/**
-	 * There is one details registry for each contributor type.
-	 */
-	protected TabbedPropertyRegistry(String id) {
-		this.contributorId = id;
-		this.propertyCategories = new ArrayList();
-		IConfigurationElement[] extensions = getConfigurationElements(EXTPT_CONTRIBUTOR);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement configurationElement = extensions[i];
-			String contributor = configurationElement
-					.getAttribute(ATT_CONTRIBUTOR_ID);
-			if (contributor == null || !id.equals(contributor)) {
-				continue;
-			}
-			this.contributorConfigurationElement = configurationElement;
-			try {
-				if (configurationElement.getAttribute(ATT_LABEL_PROVIDER) != null) {
-					labelProvider = (ILabelProvider) configurationElement
-							.createExecutableExtension(ATT_LABEL_PROVIDER);
-				}
-				if (configurationElement.getAttribute(ATT_ACTION_PROVIDER) != null) {
-					actionProvider = (IActionProvider) configurationElement
-							.createExecutableExtension(ATT_ACTION_PROVIDER);
-				}
-				if (configurationElement.getAttribute(ATT_TYPE_MAPPER) != null) {
-					typeMapper = (ITypeMapper) configurationElement
-							.createExecutableExtension(ATT_TYPE_MAPPER);
-				}
-				if (configurationElement
-						.getAttribute(ATT_SECTION_DESCRIPTOR_PROVIDER) != null) {
-					sectionDescriptorProvider = (ISectionDescriptorProvider) configurationElement
-							.createExecutableExtension(ATT_SECTION_DESCRIPTOR_PROVIDER);
-				}
-				if (configurationElement
-						.getAttribute(ATT_TAB_DESCRIPTOR_PROVIDER) != null) {
-					tabDescriptorProvider = (ITabDescriptorProvider) configurationElement
-							.createExecutableExtension(ATT_TAB_DESCRIPTOR_PROVIDER);
-				}
-				if (configurationElement
-						.getAttribute(ATT_OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER) != null) {
-					String attributeBoolean = configurationElement
-							.getAttribute(ATT_OVERRIDABLE_TAB_LIST_CONTENT_PROVIDER);
-					overridableTabListContentProvider = attributeBoolean
-							.equals("true");//$NON-NLS-1$
-				}
-			} catch (CoreException exception) {
-				handleConfigurationError(id, exception);
-			}
-			addPropertyCategories(configurationElement);
-		}
-		if (propertyCategories == null || contributorId == null ||
-				contributorConfigurationElement == null) {
-			handleConfigurationError(id, null);
-			this.contributorId = null;
-		}
-	}
-
-	/**
-	 * Gets the categories that are valid for this contributor.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element for this contributor.
-	 */
-	private void addPropertyCategories(
-			IConfigurationElement configurationElement) {
-		IConfigurationElement[] elements = configurationElement
-				.getChildren(ELEMENT_PROPERTY_CATEGORY);
-		for (int i = 0; i < elements.length; i++) {
-			IConfigurationElement element = elements[i];
-			propertyCategories.add(element.getAttribute(ATT_CATEGORY));
-		}
-	}
-
-	/**
-	 * Handle the error when an issue is found loading from the configuration
-	 * element.
-	 * 
-	 * @param id
-	 *            the configuration id.
-	 * @param exception
-	 *            an optional CoreException
-	 */
-	private void handleConfigurationError(String id, CoreException exception) {
-		String message = MessageFormat.format(CONTRIBUTOR_ERROR,
-				new Object[] { id });
-		IStatus status = new Status(IStatus.ERROR, TabbedPropertyViewPlugin
-				.getPlugin().getBundle().getSymbolicName(),
-				TabbedPropertyViewStatusCodes.CONTRIBUTOR_ERROR, message,
-				exception);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * Reads property section extensions. Returns all section descriptors for
-	 * the current contributor id or an empty array if none is found.
-	 */
-	protected ISectionDescriptor[] readSectionDescriptors() {
-		List result = new ArrayList();
-		IConfigurationElement[] extensions = getConfigurationElements(EXTPT_SECTIONS);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement extension = extensions[i];
-			IConfigurationElement[] sections = extension
-					.getChildren(ELEMENT_SECTION);
-			for (int j = 0; j < sections.length; j++) {
-				IConfigurationElement section = sections[j];
-				ISectionDescriptor descriptor = new SectionDescriptor(section,
-						typeMapper);
-				result.add(descriptor);
-			}
-		}
-		return (ISectionDescriptor[]) result
-				.toArray(new ISectionDescriptor[result.size()]);
-	}
-
-	/**
-	 * Returns the configuration elements targeted for the given extension point
-	 * and the current contributor id. The elements are also sorted by plugin
-	 * prerequisite order.
-	 */
-	protected IConfigurationElement[] getConfigurationElements(
-			String extensionPointId) {
-		if (contributorId == null) {
-			return new IConfigurationElement[0];
-		}
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint(
-						TabbedPropertyViewPlugin.getPlugin().getBundle()
-								.getSymbolicName(), extensionPointId);
-		IConfigurationElement[] extensions = point.getConfigurationElements();
-		List unordered = new ArrayList(extensions.length);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement extension = extensions[i];
-			if (!extension.getName().equals(extensionPointId)) {
-				continue;
-			}
-			String contributor = extension.getAttribute(ATT_CONTRIBUTOR_ID);
-			if (!contributorId.equals(contributor)) {
-				continue;
-			}
-			unordered.add(extension);
-		}
-		return (IConfigurationElement[]) unordered
-				.toArray(new IConfigurationElement[unordered.size()]);
-	}
-
-	/**
-	 * Returns the index of the given element in the array.
-	 */
-	private int getIndex(Object[] array, Object target) {
-		for (int i = 0; i < array.length; i++) {
-			if (array[i].equals(target)) {
-				return i;
-			}
-		}
-		return -1; // should never happen
-	}
-
-	/**
-	 * Returns all section descriptors for the provided selection.
-	 * 
-	 * @param part
-	 *            the workbench part containing the selection
-	 * @param selection
-	 *            the current selection.
-	 * @return all section descriptors.
-	 */
-	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
-			ISelection selection) {
-		if (selection == null || selection.isEmpty()) {
-			return EMPTY_DESCRIPTOR_ARRAY;
-		}
-
-		ITabDescriptor[] allDescriptors = null;
-		if (tabDescriptorProvider == null) {
-			allDescriptors = getAllTabDescriptors();
-		} else {
-			allDescriptors = tabDescriptorProvider.getTabDescriptors(part,
-					selection);
-		}
-
-		ITabDescriptor[] result = filterTabDescriptors(allDescriptors, part,
-				selection);
-		return result;
-	}
-
-	/**
-	 * Filters out the tab descriptors that do not have any sections for the
-	 * given input.
-	 */
-	protected ITabDescriptor[] filterTabDescriptors(
-			ITabDescriptor[] descriptors, IWorkbenchPart part,
-			ISelection selection) {
-		List result = new ArrayList();
-		for (int i = 0; i < descriptors.length; i++) {
-			ITabDescriptor descriptor = adaptDescriptorFor(descriptors[i],
-					part, selection);
-			if (!descriptor.getSectionDescriptors().isEmpty()) {
-				result.add(descriptor);
-			}
-		}
-		if (result.size() == 0) {
-			return EMPTY_DESCRIPTOR_ARRAY;
-		}
-		return (ITabDescriptor[]) result.toArray(new ITabDescriptor[result
-				.size()]);
-	}
-
-	/**
-	 * Given a property tab descriptor remove all its section descriptors that
-	 * do not apply to the given input object.
-	 */
-	protected ITabDescriptor adaptDescriptorFor(ITabDescriptor target,
-			IWorkbenchPart part, ISelection selection) {
-		List filteredSectionDescriptors = new ArrayList();
-		List descriptors = target.getSectionDescriptors();
-		for (Iterator iter = descriptors.iterator(); iter.hasNext();) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) iter.next();
-			if (descriptor.appliesTo(part, selection)) {
-				filteredSectionDescriptors.add(descriptor);
-			}
-		}
-		AbstractTabDescriptor result = (AbstractTabDescriptor) ((AbstractTabDescriptor) target)
-				.clone();
-		result.setSectionDescriptors(filteredSectionDescriptors);
-		return result;
-	}
-
-	/**
-	 * Reads property tab extensions. Returns all tab descriptors for the
-	 * current contributor id or an empty array if none is found.
-	 */
-	protected ITabDescriptor[] getAllTabDescriptors() {
-		if (tabDescriptors == null) {
-			List temp = readTabDescriptors();
-			populateWithSectionDescriptors(temp);
-			temp = sortTabDescriptorsByCategory(temp);
-			temp = sortTabDescriptorsByAfterTab(temp);
-			tabDescriptors = (TabDescriptor[]) temp
-					.toArray(new TabDescriptor[temp.size()]);
-		}
-		return tabDescriptors;
-	}
-
-	/**
-	 * Reads property tab extensions. Returns all tab descriptors for the
-	 * current contributor id or an empty list if none is found.
-	 */
-	protected List readTabDescriptors() {
-		List result = new ArrayList();
-		IConfigurationElement[] extensions = getConfigurationElements(EXTPT_TABS);
-		for (int i = 0; i < extensions.length; i++) {
-			IConfigurationElement extension = extensions[i];
-			IConfigurationElement[] tabs = extension.getChildren(ELEMENT_TAB);
-			for (int j = 0; j < tabs.length; j++) {
-				IConfigurationElement tab = tabs[j];
-				TabDescriptor descriptor = new TabDescriptor(tab);
-				if (getIndex(propertyCategories.toArray(), descriptor
-						.getCategory()) == -1) {
-					/* tab descriptor has unknown category */
-					handleTabError(tab, descriptor.getCategory() == null ? "" //$NON-NLS-1$
-							: descriptor.getCategory());
-				} else {
-					result.add(descriptor);
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Populates the given tab descriptors with section descriptors.
-	 */
-	protected void populateWithSectionDescriptors(List aTabDescriptors) {
-		ISectionDescriptor[] sections = null;
-		if (sectionDescriptorProvider != null) {
-			sections = sectionDescriptorProvider.getSectionDescriptors();
-		} else {
-			sections = readSectionDescriptors();
-		}
-		for (int i = 0; i < sections.length; i++) {
-			ISectionDescriptor section = sections[i];
-			appendToTabDescriptor(section, aTabDescriptors);
-		}
-	}
-
-	/**
-	 * Appends the given section to a tab from the list.
-	 */
-	protected void appendToTabDescriptor(ISectionDescriptor section,
-			List aTabDescriptors) {
-		for (Iterator i = aTabDescriptors.iterator(); i.hasNext();) {
-			TabDescriptor tab = (TabDescriptor) i.next();
-			if (tab.append(section)) {
-				return;
-			}
-		}
-		// could not append the section to any of the existing tabs - log error
-		String message = MessageFormat.format(NO_TAB_ERROR, new Object[] {
-				section.getId(), section.getTargetTab() });
-		IStatus status = new Status(IStatus.ERROR, TabbedPropertyViewPlugin
-				.getPlugin().getBundle().getSymbolicName(),
-				TabbedPropertyViewStatusCodes.NO_TAB_ERROR, message, null);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-
-	/**
-	 * Sorts the tab descriptors in the given list according to category.
-	 */
-	protected List sortTabDescriptorsByCategory(List descriptors) {
-		Collections.sort(descriptors, new Comparator() {
-
-			public int compare(Object arg0, Object arg1) {
-				TabDescriptor one = (TabDescriptor) arg0;
-				TabDescriptor two = (TabDescriptor) arg1;
-				String categoryOne = one.getCategory();
-				String categoryTwo = two.getCategory();
-				int categoryOnePosition = getIndex(
-						propertyCategories.toArray(), categoryOne);
-				int categoryTwoPosition = getIndex(
-						propertyCategories.toArray(), categoryTwo);
-				return categoryOnePosition - categoryTwoPosition;
-			}
-		});
-		return descriptors;
-	}
-
-	/**
-	 * Sorts the tab descriptors in the given list according to afterTab.
-	 */
-	protected List sortTabDescriptorsByAfterTab(List tabs) {
-		if (tabs.size() == 0 || propertyCategories == null) {
-			return tabs;
-		}
-		List sorted = new ArrayList();
-		int categoryIndex = 0;
-		for (int i = 0; i < propertyCategories.size(); i++) {
-			List categoryList = new ArrayList();
-			String category = (String) propertyCategories.get(i);
-			int topOfCategory = categoryIndex;
-			int endOfCategory = categoryIndex;
-			while (endOfCategory < tabs.size() &&
-					((TabDescriptor) tabs.get(endOfCategory)).getCategory()
-							.equals(category)) {
-				endOfCategory++;
-			}
-			for (int j = topOfCategory; j < endOfCategory; j++) {
-				TabDescriptor tab = (TabDescriptor) tabs.get(j);
-				if (tab.getAfterTab().equals(TOP)) {
-					categoryList.add(0, tabs.get(j));
-				} else {
-					categoryList.add(tabs.get(j));
-				}
-			}
-			Collections.sort(categoryList, new Comparator() {
-
-				public int compare(Object arg0, Object arg1) {
-					TabDescriptor one = (TabDescriptor) arg0;
-					TabDescriptor two = (TabDescriptor) arg1;
-					if (two.getAfterTab().equals(one.getId())) {
-						return -1;
-					} else if (one.getAfterTab().equals(two.getId())) {
-						return 1;
-					} else {
-						return 0;
-					}
-				}
-			});
-			for (int j = 0; j < categoryList.size(); j++) {
-				sorted.add(categoryList.get(j));
-			}
-			categoryIndex = endOfCategory;
-		}
-		return sorted;
-	}
-
-	/**
-	 * Gets the type mapper for the contributor.
-	 * 
-	 * @return the type mapper for the contributor.
-	 */
-	public ITypeMapper getTypeMapper() {
-		return typeMapper;
-	}
-
-	/**
-	 * Gets the label provider for the contributor.
-	 * 
-	 * @return the label provider for the contributor.
-	 */
-	public ILabelProvider getLabelProvider() {
-		return labelProvider;
-	}
-
-	/**
-	 * Gets the action provider for the contributor.
-	 * 
-	 * @return the action provider for the contributor.
-	 */
-	public IActionProvider getActionProvider() {
-		return actionProvider;
-	}
-
-	/**
-	 * Gets the tab list content provider for the contributor.
-	 * 
-	 * @return the tab list content provider for the contributor.
-	 */
-	public IStructuredContentProvider getTabListContentProvider() {
-		if (overridableTabListContentProvider) {
-			return new OverridableTabListContentProvider(this);
-		}
-		return new TabListContentProvider(this);
-	}
-
-	/**
-	 * Handle the tab error when an issue is found loading from the
-	 * configuration element.
-	 * 
-	 * @param configurationElement
-	 *            the configuration element
-	 */
-	private void handleTabError(IConfigurationElement configurationElement,
-			String category) {
-		String pluginId = configurationElement.getDeclaringExtension()
-				.getNamespaceIdentifier();
-		String message = MessageFormat.format(TAB_ERROR, new Object[] {
-				pluginId, category });
-		IStatus status = new Status(IStatus.ERROR, pluginId,
-				TabbedPropertyViewStatusCodes.TAB_ERROR, message, null);
-		TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java
deleted file mode 100755
index 60119c2..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryClassSectionFilter.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-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.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * Provides a section filtering mechanism where the selection is an
- * IStructuredSelection and filtering is based on class.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyRegistryClassSectionFilter {
-
-	private ITypeMapper typeMapper = null;
-
-	/**
-	 * Constructor for TabbedPropertyRegistryClassSectionFilter
-	 * 
-	 * @param typeMapper
-	 *            the type mapper.
-	 */
-	public TabbedPropertyRegistryClassSectionFilter(ITypeMapper typeMapper) {
-		super();
-		this.typeMapper = typeMapper;
-	}
-
-	/**
-	 * Verifies if the property section extension represented by sectionElement
-	 * applies to the given input.
-	 * 
-	 * @param descriptor
-	 *            the section descriptor.
-	 * @param selection
-	 *            the selection.
-	 * @return <code>true</code> if this section applies to the current
-	 *         selection.
-	 */
-	public boolean appliesToSelection(ISectionDescriptor descriptor,
-			ISelection selection) {
-
-		if (selection instanceof IStructuredSelection &&
-				selection.isEmpty() == false) {
-
-			if (descriptor.getEnablesFor() != ISectionDescriptor.ENABLES_FOR_ANY &&
-					((IStructuredSelection) selection).size() != descriptor
-							.getEnablesFor()) {
-				/**
-				 * enablesFor does not match the size of the selection, do not
-				 * display section.
-				 */
-				return false;
-			}
-
-			IFilter filter = descriptor.getFilter();
-
-			if (filter != null) {
-				for (Iterator i = ((IStructuredSelection) selection).iterator(); i
-						.hasNext();) {
-					Object object = i.next();
-
-					if (filter != null && filter.select(object) == false) {
-						/**
-						 * filter fails so section does not apply to the
-						 * selection, do not display section.
-						 */
-						return false;
-					}
-				}
-				/**
-				 * filter passes for all objects in the selection.
-				 */
-				return true;
-			}
-
-			Set effectiveTypes = new HashSet();
-
-			for (Iterator i = ((IStructuredSelection) selection).iterator(); i
-					.hasNext();) {
-
-				Object object = i.next();
-
-				Class remapType = object.getClass();
-				if (typeMapper != null) {
-					remapType = typeMapper.mapType(object);
-				}
-
-				if (effectiveTypes.add(remapType)) {
-
-					// the effective types of the selection
-					if (appliesToEffectiveType(descriptor, remapType) == false) {
-						return false;
-					}
-				}
-			}
-		} else {
-			/* Bug 245690 selection is not a IStructuredSelection */
-			if (descriptor.getFilter() != null) {
-				return descriptor.getFilter().select(selection);
-			}
-		}
-
-		return true;
-	}
-
-	private boolean appliesToEffectiveType(ISectionDescriptor descriptor,
-			Class inputClass) {
-
-		ArrayList classTypes = getClassTypes(inputClass);
-
-		List sectionInputTypes = descriptor.getInputTypes();
-		for (Iterator j = sectionInputTypes.iterator(); j.hasNext();) {
-			String type = (String) j.next();
-			if (classTypes.contains(type)) {
-				// found a match
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Returns the classes and interfaces the given target class
-	 * extends/implements.
-	 */
-	protected ArrayList getClassTypes(Class target) {
-		ArrayList result = new ArrayList();
-		// add classes
-		List classes = computeClassOrder(target);
-		for (Iterator i = classes.iterator(); i.hasNext();) {
-			result.add(((Class) i.next()).getName());
-		}
-		// add interfaces
-		result.addAll(computeInterfaceOrder(classes));
-		return result;
-	}
-
-	private List computeClassOrder(Class target) {
-		List result = new ArrayList(4);
-		Class clazz = target;
-		while (clazz != null) {
-			result.add(clazz);
-			clazz = clazz.getSuperclass();
-		}
-		return result;
-	}
-
-	private List computeInterfaceOrder(List classes) {
-		List result = new ArrayList(4);
-		Map seen = new HashMap(4);
-		for (Iterator iter = classes.iterator(); iter.hasNext();) {
-			Class[] interfaces = ((Class) iter.next()).getInterfaces();
-			internalComputeInterfaceOrder(interfaces, result, seen);
-		}
-		return result;
-	}
-
-	private void internalComputeInterfaceOrder(Class[] interfaces, List result,
-			Map seen) {
-		List newInterfaces = new ArrayList(seen.size());
-		for (int i = 0; i < interfaces.length; i++) {
-			Class interfac = interfaces[i];
-			if (seen.get(interfac) == null) {
-				result.add(interfac.getName());
-				seen.put(interfac, interfac);
-				newInterfaces.add(interfac);
-			}
-		}
-		for (Iterator iter = newInterfaces.iterator(); iter.hasNext();) {
-			internalComputeInterfaceOrder(
-					((Class) iter.next()).getInterfaces(), result, seen);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java
deleted file mode 100755
index 53714da..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyRegistryFactory.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-
-/**
- * tabbed property registry factory. Caches the tabbed property registry by
- * tabbed property contributor ID.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyRegistryFactory {
-
-	class CacheData {
-		TabbedPropertyRegistry registry;
-		List references;
-	}
-
-	/**
-	 * singleton instance of this class
-	 */
-	private static TabbedPropertyRegistryFactory INSTANCE = new TabbedPropertyRegistryFactory();
-
-	/**
-	 * get the singleton instance of this class.
-	 * 
-	 * @return the TabbedPropertyRegistryFactory instance.
-	 */
-	public static TabbedPropertyRegistryFactory getInstance() {
-		return INSTANCE;
-	}
-
-	/**
-	 * private constructor.
-	 */
-	private TabbedPropertyRegistryFactory() {
-		super();
-		idToCacheData = new HashMap();
-	}
-
-	protected Map idToCacheData; // cache
-
-	/**
-	 * Creates a registry for the given contributor.
-	 * 
-	 * @param target
-	 *            the contributor.
-	 * @return a registry for the given contributor.
-	 */
-	public TabbedPropertyRegistry createRegistry(
-			ITabbedPropertySheetPageContributor target) {
-		/**
-		 * Get the contributor id from the ITabbedPropertySheetPageContributor
-		 * interface
-		 */
-		String key = target.getContributorId();
-		CacheData data = (CacheData) idToCacheData.get(key);
-		if (data == null) {
-			data = new CacheData();
-			data.registry = new TabbedPropertyRegistry(key);
-			data.references = new ArrayList(5);
-			idToCacheData.put(key, data);
-		}
-		data.references.add(target);
-		// keeps track of contributor using the same registry
-		return data.registry;
-	}
-
-	/**
-	 * Indicates that the given contributor no longer needs a registry. The
-	 * registry will be disposed when no other contributor of the same type
-	 * needs it.
-	 * 
-	 * @param target
-	 *            the contributor;
-	 */
-	public void disposeRegistry(ITabbedPropertySheetPageContributor target) {
-		/**
-		 * Get the contributor id from the ITabbedPropertySheetPageContributor
-		 * interface
-		 */
-		String key = target.getContributorId();
-		CacheData data = (CacheData) idToCacheData.get(key);
-		if (data != null) {
-			data.references.remove(target);
-			if (data.references.isEmpty()) {
-				idToCacheData.remove(key);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java
deleted file mode 100755
index e9fd1a8..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyTitle.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-
-/**
- * The title in the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertyTitle
-	extends Composite {
-
-	private CLabel label;
-
-	private Image image = null;
-
-	private String text = null;
-	
-	private static final String BLANK = ""; //$NON-NLS-1$
-
-	private static final String TITLE_FONT = "org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyTitle"; //$NON-NLS-1$
-	
-	private TabbedPropertySheetWidgetFactory factory;
-
-	/**
-	 * Constructor for TabbedPropertyTitle.
-	 * 
-	 * @param parent
-	 *            the parent composite.
-	 * @param factory
-	 *            the widget factory for the tabbed property sheet
-	 */
-	public TabbedPropertyTitle(Composite parent,
-			TabbedPropertySheetWidgetFactory factory) {
-		super(parent, SWT.NO_FOCUS);
-		this.factory = factory;
-
-		this.addPaintListener(new PaintListener() {
-
-			public void paintControl(PaintEvent e) {
-				if (image == null && (text == null || text.equals(BLANK))) {
-					label.setVisible(false);
-				} else {
-					label.setVisible(true);
-					drawTitleBackground(e);
-				}
-			}
-		});
-
-		factory.getColors().initializeSectionToolBarColors();
-		setBackground(factory.getColors().getBackground());
-		setForeground(factory.getColors().getForeground());
-
-		FormLayout layout = new FormLayout();
-		layout.marginWidth = 1;
-		layout.marginHeight = 2;
-		setLayout(layout);
-
-		Font font;
-		if (! JFaceResources.getFontRegistry().hasValueFor(TITLE_FONT)) {
-			FontData[] fontData = JFaceResources.getFontRegistry().getBold(
-					JFaceResources.DEFAULT_FONT).getFontData();
-			/* title font is 2pt larger than that used in the tabs. */  
-			fontData[0].setHeight(fontData[0].getHeight() + 2);
-			JFaceResources.getFontRegistry().put(TITLE_FONT, fontData);
-		}
-		font = JFaceResources.getFont(TITLE_FONT);
-		
-		label = factory.createCLabel(this, BLANK);
-		label.setBackground(new Color[] {
-				factory.getColors().getColor(IFormColors.H_GRADIENT_END),
-				factory.getColors().getColor(IFormColors.H_GRADIENT_START) },
-				new int[] { 100 }, true);
-		label.setFont(font);
-		label.setForeground(factory.getColors().getColor(IFormColors.TITLE));
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.top = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.bottom = new FormAttachment(100, 0);
-		label.setLayoutData(data);
-
-		/*
-		 * setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-		 * ISharedImages.IMG_OBJ_ELEMENT));
-		 */
-	}
-
-	/**
-	 * @param e
-	 */
-	protected void drawTitleBackground(PaintEvent e) {
-		Rectangle bounds = getClientArea();
-		label.setBackground(new Color[] {
-				factory.getColors().getColor(IFormColors.H_GRADIENT_END),
-				factory.getColors().getColor(IFormColors.H_GRADIENT_START) },
-				new int[] { 100 }, true);
-		Color bg = factory.getColors().getColor(IFormColors.H_GRADIENT_END);
-		Color gbg = factory.getColors().getColor(IFormColors.H_GRADIENT_START);
-		GC gc = e.gc;
-		gc.setForeground(bg);
-		gc.setBackground(gbg);
-		gc.fillGradientRectangle(bounds.x, bounds.y, bounds.width,
-				bounds.height, true);
-		// background bottom separator
-		gc.setForeground(factory.getColors().getColor(
-				IFormColors.H_BOTTOM_KEYLINE1));
-		gc.drawLine(bounds.x, bounds.height - 2, bounds.x + bounds.width - 1,
-				bounds.height - 2);
-		gc.setForeground(factory.getColors().getColor(
-				IFormColors.H_BOTTOM_KEYLINE2));
-		gc.drawLine(bounds.x, bounds.height - 1, bounds.x + bounds.width - 1,
-				bounds.height - 1);
-	}
-
-	/**
-	 * Set the text label.
-	 * 
-	 * @param text
-	 *            the text label.
-	 * @param image
-	 *            the image for the label.
-	 */
-	public void setTitle(String text, Image image) {
-		this.text = text;
-		this.image = image;
-		if (text != null) {
-			label.setText(text);
-		} else {
-			label.setText(BLANK); 
-		}
-		label.setImage(image);
-		redraw();
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java
deleted file mode 100755
index 5c5da17..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/internal/views/properties/tabbed/view/TabbedPropertyViewer.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Viewer representing the property sheet page. On the left side it 
- * contains a list of tabs and on the right side it contains the
- * current selected tab.
- * 
- * @author Anthony Hunter 
- */
-public class TabbedPropertyViewer extends StructuredViewer {
-
-	protected TabbedPropertyList list;
-	protected List elements;
-	protected IWorkbenchPart part;
-
-	/**
-	 * Constructor for TabbedPropertyViewer.
-	 * 
-	 * @param list
-	 *            the TabbedPropertyList.
-	 */
-	public TabbedPropertyViewer(TabbedPropertyList list) {
-		this.list = list;
-		hookControl(list);
-		elements = new ArrayList();
-	}
-
-	/**
-	 * Returns the element with the given index from this list viewer.
-	 * Returns <code>null</code> if the index is out of range.
-	 *
-	 * @param index the zero-based index
-	 * @return the element at the given index, or <code>null</code> if the
-	 *   index is out of range
-	 */
-	public Object getElementAt(int index) {
-		if (index >= 0 && index < elements.size()) {
-			return elements.get(index);
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the zero-relative index of the item which is currently
-	 * selected in the receiver, or -1 if no item is selected.
-	 *
-	 * @return the index of the selected item
-	 */
-	public int getSelectionIndex() {
-		return list.getSelectionIndex();
-	}
-
-	protected Widget doFindInputItem(Object element) {
-		/* not implemented */
-		return null;
-	}
-
-	protected Widget doFindItem(Object element) {
-		/* not implemented */
-		return null;
-	}
-
-	protected void doUpdateItem(Widget item, Object element, boolean fullMap) {
-		/* not implemented */
-	}
-
-	protected List getSelectionFromWidget() {
-		int index = list.getSelectionIndex();
-		if (index == TabbedPropertyList.NONE) {
-			return Collections.EMPTY_LIST;
-		}
-		List result = new ArrayList(1);
-		result.add(getElementAt(index));
-		return result;
-	}
-
-	protected void internalRefresh(Object element) {
-		/* not implemented */
-	}
-
-	public void reveal(Object element) {
-		/* not implemented */
-	}
-
-	/**
-	 * We do not consider multiple selections. Only the first
-	 * element will represent the selection.
-	 */
-	protected void setSelectionToWidget(List l, boolean reveal) {
-		if (l == null || l.size() == 0) { // clear selection
-			list.deselectAll();
-		} else {
-			Object object = l.get(0);
-			int index = -1;
-			for (int i = 0; i < elements.size(); i++) {
-				if (elements.get(i) == object) {
-					index = i;
-				}
-			}
-			Assert.isTrue(index != -1, "Could not set the selected tab in the tabbed property viewer");//$NON-NLS-1$
-			list.select(index);
-		}
-	}
-
-	public Control getControl() {
-		return list;
-	}
-
-	protected void inputChanged(Object input, Object oldInput) {
-		elements.clear();
-		Object[] children = getSortedChildren(getRoot());
-		list.removeAll();
-		for (int i = 0; i < children.length; i++) {
-			elements.add(children[i]);
-			mapElement(children[i], list);
-		}
-		list.setElements(children);
-	}
-
-	/**
-	 * Set the input for viewer.
-	 * 
-	 * @param part
-	 *            the workbench part.
-	 * @param selection
-	 *            the selection in the workbench part.
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		this.part = part;
-		setInput(selection);
-	}
-
-	/**
-	 * Get the current workbench part.
-	 * 
-	 * @return the current workbench part.
-	 */
-	public IWorkbenchPart getWorkbenchPart() {
-		return part;
-	}
-
-	/**
-	 * Returns the elements in this list viewer.
-
-	 * @return the elements in this list viewer.
-	 * @since 3.5
-	 */
-	public List getElements() {
-		return elements;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java
deleted file mode 100644
index 1b8b45a..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractOverridableTabListPropertySection.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-/**
- * An abstract implementation of a section in a tab that overrides the tabs that
- * are provided by the tabbed property registry with a new list of tabs.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class AbstractOverridableTabListPropertySection
-	extends AbstractPropertySection
-	implements IOverridableTabList {
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabList#getTabs()
-	 */
-	public ITabItem[] getTabs() {
-		return new ITabItem[] {};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabList#selectTab(int)
-	 */
-	public void selectTab(int tab) {
-		/* no default implementation */
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java
deleted file mode 100644
index ae5276e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractPropertySection.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * An abstract implementation of a section in a tab in the tabbed property sheet
- * page.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractPropertySection
-	implements ISection {
-
-	/**
-	 * The standard label width when labels for sections line up on the left
-	 * hand side of the composite.
-	 */
-	public static final int STANDARD_LABEL_WIDTH = 85;
-
-	/**
-	 * The tabbed property sheet page
-	 */
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	/**
-	 * The current workbench selection.
-	 */
-	private ISelection selection;
-
-	/**
-	 * The current active workbench part.
-	 */
-	private IWorkbenchPart part;
-
-	/**
-	 * Get the widget factory for the property sheet page.
-	 * 
-	 * @return the widget factory.
-	 */
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return tabbedPropertySheetPage.getWidgetFactory();
-	}
-
-	/**
-	 * Get the current workbench selection.
-	 * 
-	 * @return the current workbench selection.
-	 */
-	public ISelection getSelection() {
-		return selection;
-	}
-
-	/**
-	 * @return Returns the part.
-	 */
-	public IWorkbenchPart getPart() {
-		return part;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		this.tabbedPropertySheetPage = aTabbedPropertySheetPage;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		this.selection = selection;
-		this.part = part;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#aboutToBeShown()
-	 */
-	public void aboutToBeShown() {
-		/* empty default implementation */
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#aboutToBeHidden()
-	 */
-	public void aboutToBeHidden() {
-		/* empty default implementation */
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
-	 */
-	public void dispose() {
-		/* empty default implementation */
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#getMinimumHeight()
-	 */
-	public int getMinimumHeight() {
-		return SWT.DEFAULT;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace() {
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
-	 */
-	public void refresh() {
-		/* empty default implementation */
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java
deleted file mode 100644
index 54c34c5..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractSectionDescriptor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistryClassSectionFilter;
-
-/**
- * An abstract implementation of a section descriptor for the tabbed property
- * view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public abstract class AbstractSectionDescriptor implements ISectionDescriptor {
-
-	private TabbedPropertyRegistryClassSectionFilter classFilter;
-
-	/**
-	 * Constructor for AbstractSectionDescriptor.
-	 */
-	public AbstractSectionDescriptor() {
-		super();
-		classFilter = new TabbedPropertyRegistryClassSectionFilter(null);
-	}
-
-	/**
-	 * Constructor for AbstractSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the type mapper for the section.
-	 */
-	public AbstractSectionDescriptor(ITypeMapper typeMapper) {
-		super();
-		classFilter = new TabbedPropertyRegistryClassSectionFilter(typeMapper);
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
-		return classFilter.appliesToSelection(this, selection);
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getAfterSection()
-	 */
-	public String getAfterSection() {
-		return TOP;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getEnablesFor()
-	 */
-	public int getEnablesFor() {
-		return ENABLES_FOR_ANY;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getFilter()
-	 */
-	public IFilter getFilter() {
-		return null;
-	}
-
-	public List getInputTypes() {
-		return new ArrayList();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java
deleted file mode 100644
index 124733f..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTabDescriptor.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.internal.views.properties.tabbed.TabbedPropertyViewPlugin;
-
-/**
- * An abstract implementation of a tab descriptor for the tabbed property view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public abstract class AbstractTabDescriptor implements ITabDescriptor,
-		Cloneable {
-
-	private List sectionDescriptors;
-
-	/**
-	 * Constructor for AbstractTabDescriptor.
-	 */
-	public AbstractTabDescriptor() {
-		super();
-		sectionDescriptors = new ArrayList(5);
-	}
-
-	/*
-	 * @see java.lang.Object#clone()
-	 */
-	public Object clone() {
-		try {
-			return super.clone();
-		} catch (CloneNotSupportedException exception) {
-			IStatus status = new Status(IStatus.ERROR, TabbedPropertyViewPlugin
-					.getPlugin().getBundle().getSymbolicName(), 666, exception
-					.getMessage(), exception);
-			TabbedPropertyViewPlugin.getPlugin().getLog().log(status);
-		}
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabDescriptor#createTab()
-	 */
-	public TabContents createTab() {
-		List sections = new ArrayList(getSectionDescriptors().size());
-		for (Iterator iter = getSectionDescriptors().iterator(); iter.hasNext();) {
-			ISectionDescriptor descriptor = (ISectionDescriptor) iter.next();
-			ISection section = descriptor.getSectionClass();
-			sections.add(section);
-		}
-		TabContents tab = new TabContents();
-		tab.setSections((ISection[]) sections.toArray(new ISection[sections
-				.size()]));
-		return tab;
-	}
-
-	/*
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object object) {
-		if (this == object) {
-			return true;
-		}
-
-		if (this.getClass() == object.getClass()) {
-			AbstractTabDescriptor descriptor = (AbstractTabDescriptor) object;
-			if (this.getCategory().equals(descriptor.getCategory()) &&
-					this.getId().equals(descriptor.getId()) &&
-					this.getSectionDescriptors().size() == descriptor
-							.getSectionDescriptors().size()) {
-
-				Iterator i = this.getSectionDescriptors().iterator();
-				Iterator j = descriptor.getSectionDescriptors().iterator();
-
-				// the order is important here - so as long as the sizes of the
-				// lists are the same and id of the section at the same
-				// positions are the same - the lists are the same
-				while (i.hasNext()) {
-					ISectionDescriptor source = (ISectionDescriptor) i.next();
-					ISectionDescriptor target = (ISectionDescriptor) j.next();
-					if (!source.getId().equals(target.getId())) {
-						return false;
-					}
-				}
-
-				return true;
-			}
-
-		}
-
-		return false;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabDescriptor#getAfterTab()
-	 */
-	public String getAfterTab() {
-		return TOP;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#getImage()
-	 */
-	public Image getImage() {
-		return null;
-	}
-
-	/**
-	 * Get the list of section descriptors for the tab.
-	 * 
-	 * @return the list of section descriptors for the tab.
-	 */
-	public List getSectionDescriptors() {
-		return sectionDescriptors;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#getText()
-	 */
-	public String getText() {
-		return getLabel();
-	}
-
-	/*
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-
-		int hashCode = getCategory().hashCode();
-		hashCode ^= getId().hashCode();
-		Iterator i = this.getSectionDescriptors().iterator();
-		while (i.hasNext()) {
-			ISectionDescriptor section = (ISectionDescriptor) i.next();
-			hashCode ^= section.getId().hashCode();
-		}
-		return hashCode;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#isIndented()
-	 */
-	public boolean isIndented() {
-		return false;
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#isSelected()
-	 */
-	public boolean isSelected() {
-		return false;
-	}
-
-	/**
-	 * Set the list of section descriptors for the tab.
-	 * 
-	 * @param sectionDescriptors
-	 *            the list of section descriptors for the tab.
-	 */
-	public void setSectionDescriptors(List sectionDescriptors) {
-		this.sectionDescriptors = sectionDescriptors;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java
deleted file mode 100644
index a2503d8..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AbstractTypeMapper.java
+++ /dev/null
@@ -1,25 +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.views.properties.tabbed;
-
-/**
- * Default implementation of a type mapper.
- * 
- * @author Anthony Hunter
- */
-public class AbstractTypeMapper
-    implements ITypeMapper {
-
-    public Class mapType(Object object) {
-        return object.getClass();
-    }
-
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java
deleted file mode 100644
index ffc9acf..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/AdvancedPropertySection.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-/**
- * An advanced section that is intended to show the original table format properties view
- * provided by base Eclipse.
- * 
- * @author Anthony Hunter 
- */
-public class AdvancedPropertySection
-	extends AbstractPropertySection {
-
-	/**
-	 * The Property Sheet Page.
-	 */
-	protected PropertySheetPage page;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			final TabbedPropertySheetPage atabbedPropertySheetPage) {
-		super.createControls(parent, atabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-		page = new PropertySheetPage();
-
-		page.createControl(composite);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(100, 0);
-		page.getControl().setLayoutData(data);
-		
-		page.getControl().addControlListener(new ControlAdapter() {
-
-			public void controlResized(ControlEvent e) {
-				atabbedPropertySheetPage.resizeScrolledComposite();
-			}
-		});
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		super.setInput(part, selection);
-		page.selectionChanged(part, selection);
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-
-		if (page != null) {
-			page.dispose();
-			page = null;
-		}
-
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
-	 */
-	public void refresh() {
-		page.refresh();
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace() {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java
deleted file mode 100644
index f44d417..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IActionProvider.java
+++ /dev/null
@@ -1,51 +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.views.properties.tabbed;
-
-import org.eclipse.ui.IActionBars;
-
-/**
- * Allows a tabbed properties view to make contributions to action bars.
- * <p>
- * An action provider is called when the tabbed properties view becomes the
- * active view. It is at this point where the action provider can override the
- * action bars.
- * </p>
- * <p>
- * Normally {@link TabbedPropertySheetPage#setActionBars(IActionBars)} is
- * sufficient, but this is only called once and is not sufficient for a
- * contributor that is selection based. An example is the Project Explorer where
- * different providers contribute different action sets and properties
- * configurations.
- * </p>
- * <p>
- * The most frequent use of setActionBars() is to retarget the global actions
- * for undo and redo based on the active tabbed properties view contributor.
- * </p>
- * 
- * @author Anthony Hunter
- * @since 3.2.1
- */
-public interface IActionProvider {
-
-    /**
-     * Allows the page to make contributions to the given action bars. The
-     * contributions will be visible when the page is visible.
-     * 
-     * @param contributor
-     *            the tabbed property sheet page contributor.
-     * @param actionBars
-     *            the action bars for this page
-     */
-    public void setActionBars(ITabbedPropertySheetPageContributor contributor,
-            IActionBars actionBars);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java
deleted file mode 100644
index 8ba2c7e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabList.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-/**
- * Represents a list of tabs. Used by a section that overrides the tabs that are
- * provided by the tabbed property registry with a new list of tabs.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverridableTabList {
-
-	/**
-	 * Returns the list of tabs.
-	 * 
-	 * @return the list of tabs.
-	 */
-	public ITabItem[] getTabs();
-
-	/**
-	 * Select the tab at the provided index.
-	 * 
-	 * @param index
-	 *            the index in the list of tabs to select.
-	 */
-	public void selectTab(int index);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java
deleted file mode 100644
index 76991cd..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/IOverridableTabListContentProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-
-/**
- * A content provider for the tabbed property sheet page's list of tabs. Used by
- * a section that overrides the tabs that are provided by the tabbed property
- * registry with a new list of tabs.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
-
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverridableTabListContentProvider extends IStructuredContentProvider {
-
-	/**
-	 * Override the tabs displayed in the tab list with a new list of tabs.
-	 */
-	public void overrideTabs();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java
deleted file mode 100644
index ddc6388..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISection.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Represents a section of properties for a given input.
- * <p>
- * The lifecycle of an ISection is as follows:
- * <ul>
- * <li><code>ISection.createControls()</code></li>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.aboutToBeShown()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * <li><code>ISection.aboutToBeHidden()</code></li>
- * <li><code>ISection.dispose()</code></li>
- * </ul>
- * </p>
- * <p>
- * Implementors of this class should be aware that a section instance might be
- * reused for different input objects (as long as they are valid section
- * inputs). It means that <code>ISection.setInput</code> can be called at any
- * time between <code>ISection.createControls</code> and
- * <code>ISection.dispose</code>.
- * </p>
- * <p>
- * When an input change event occurs, such as a tab selection or a workbench
- * selection change, an ISection is sent:
- * <ul>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * </ul>
- * </p>
- * <p>
- * When an part activation event occurs, such as the contributor part activation
- * event, an ISection is sent:
- * <ul>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.aboutToBeShown()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * <li><code>ISection.setInput()</code></li>
- * <li><code>ISection.refresh()</code></li>
- * </ul>
- * This is because both a tab selection event and an input selection event have
- * occurred.
- * </p>
- * <p>
- * This interface should not be extended or implemented. New section instances
- * should be created using <code>AbstractPropertySection</code>.
- * </p>
- * @see org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage
- * 
- * @author Anthony Hunter
- */
-public interface ISection {
-
-	/**
-	 * Creates the controls for the section.
-	 * <p>
-	 * Clients should take advantage of the widget factory provided by the
-	 * framework to achieve a common look between property sections.
-	 * </p>
-	 * @see org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage#getWidgetFactory()
-	 * 
-	 * @param parent
-	 *            the parent composite for the section.
-	 * @param tabbedPropertySheetPage
-	 *            the tabbed property sheet page.
-	 */
-	public abstract void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage);
-
-	/**
-	 * Notifies the section that the workbench selection has changed. 
-	 * @param part The active workench part.
-	 * @param selection The active selection in the workbench part.
-	 */
-	public abstract void setInput(IWorkbenchPart part, ISelection selection);
-
-	/**
-	 * Notifies the section that its controls are about to be shown. It is
-	 * expected that sections enable domain related functions in this method,
-	 * most commonly add listeners.
-	 * <p>
-	 * Since the controls are not visible, the section should wait for the
-	 * refresh() before updating the section controls.
-	 * </p>
-	 */
-	public abstract void aboutToBeShown();
-
-	/**
-	 * Notifies the section that its controls are about to be hidden. It is
-	 * expected that sections disable domain related functions in this method,
-	 * most commonly remove listeners.
-	 */
-	public abstract void aboutToBeHidden();
-
-	/**
-	 * Dispose this section.
-	 */
-	public abstract void dispose();
-
-	/**
-	 * Returns the minimum height needed by this section. A return value of
-	 * <code>SWT.DEFAULT</code> indicates that no minimum height is defined.
-	 * 
-	 * @return the minimum height needed by this section.
-	 */
-	public abstract int getMinimumHeight();
-
-	/**
-	 * Determine whether this section would like extra height space in case
-	 * there is some left. Normally this is true when the section is the last to
-	 * be displayed on a tab or is the only section on a tab.
-	 * @return <code>true</code> if this section would like extra height space.
-	 */
-	public abstract boolean shouldUseExtraSpace();
-
-	/**
-	 * Refresh the contents of the controls displayed in this section.
-	 */
-	public abstract void refresh();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java
deleted file mode 100644
index ad1ed18..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptor.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Represents a section descriptor on the tabbed property sections extensions.
- * <p>
- * This interface should not be extended or implemented. New instances should be
- * created using <code>AbstractSectionDescriptor</code>.
- * </p>
- * 
- * @author Anthony Hunter
- */
-public interface ISectionDescriptor {
-
-	/**
-	 * If enabledFor is not specified in the descriptor, enable for any
-	 * selection.
-	 */
-	public final int ENABLES_FOR_ANY = -1;
-
-	/**
-	 * If afterSection is not specified in the descriptor, we default to be the
-	 * top section.
-	 * @since 3.4
-	 */
-	public static final String TOP = "top"; //$NON-NLS-1$
-
-	/**
-	 * Get the unique identifier for the section.
-	 * 
-	 * @return the unique identifier for the section.
-	 */
-	public String getId();
-
-	/**
-	 * Get the section filter instance for this section. Return null if no
-	 * filter for this section.
-	 * 
-	 * @return the section filter instance.
-	 */
-	public IFilter getFilter();
-
-	/**
-	 * Get the valid input types for this section.
-	 * 
-	 * @return the valid input types for this section.
-	 */
-	public List getInputTypes();
-
-	/**
-	 * Get the class that implements this section.
-	 * 
-	 * @return the class that implements this section.
-	 */
-	public ISection getSectionClass();
-
-	/**
-	 * Get the target tab where this section will appear.
-	 * 
-	 * @return the target tab where this section will appear.
-	 */
-	public String getTargetTab();
-
-	/**
-	 * Get the value for section enablement which is a precise number of items
-	 * selected. For example: enablesFor="1" enables the section only when one
-	 * item is selected. If not specified, enable for any selection and return
-	 * ENABLES_FOR_ANY.
-	 * 
-	 * @return the value for section enablement.
-	 */
-	public int getEnablesFor();
-
-	/**
-	 * Determines if this section applies to the selection.
-	 * 
-	 * @param part
-	 *            the current workbench part.
-	 * @param selection
-	 *            the selection.
-	 * @return <code>true</code> if this section applies to the current
-	 *         selection.
-	 */
-	public boolean appliesTo(IWorkbenchPart part, ISelection selection);
-
-	/**
-	 * Get the section identifier below which this section is displayed.
-	 * <code>"top"</code> is returned if this section is the top most section
-	 * or if there is one section in the tab.
-	 * 
-	 * @return the section identifier.
-	 */
-	public String getAfterSection();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java
deleted file mode 100644
index e47aeb4..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ISectionDescriptorProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-/**
- * Represents a section descriptor provider for tabbed property sections.
- * 
- * @author Anthony Hunter
- */
-public interface ISectionDescriptorProvider {
-
-	/**
-	 * Returns all section descriptors for the contributor.
-	 * @return all section descriptors.
-	 */
-	public ISectionDescriptor[] getSectionDescriptors();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java
deleted file mode 100644
index 2680e3f..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptor.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import java.util.List;
-
-/**
- * Represents a tab descriptor for the tabbed property view.
- * <p>
- * This interface should not be extended or implemented. New instances should be
- * created using <code>AbstractTabDescriptor</code>.
- * </p>
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface ITabDescriptor extends ITabItem {
-
-	/**
-	 * If afterTab is not specified in the descriptor, we default to be the top
-	 * tab.
-	 */
-	public static final String TOP = "top"; //$NON-NLS-1$
-
-	/**
-	 * Instantiate this tab's sections.
-	 * 
-	 * @return The tab contents for this section.
-	 */
-	public TabContents createTab();
-
-	/**
-	 * Get the identifier of the tab after which this tab should be displayed.
-	 * When two or more tabs belong to the same category, they are sorted by the
-	 * after tab values.
-	 * 
-	 * @return the identifier of the tab.
-	 */
-	public String getAfterTab();
-
-	/**
-	 * Get the category this tab belongs to.
-	 * 
-	 * @return Get the category this tab belongs to.
-	 */
-	public String getCategory();
-
-	/**
-	 * Get the unique identifier for the tab.
-	 * 
-	 * @return the unique identifier for the tab.
-	 */
-	public String getId();
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getLabel();
-
-	/**
-	 * Get the list of section descriptors for the tab.
-	 * 
-	 * @return the list of section descriptors for the tab.
-	 */
-	public List getSectionDescriptors();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java
deleted file mode 100644
index 3583d4e..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabDescriptorProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Represents a tab descriptor provider for the tabbed property view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface ITabDescriptorProvider {
-
-	/**
-	 * Returns all tab descriptors.
-	 * 
-	 * @param part
-	 *            the workbench part containing the selection
-	 * @param selection
-	 *            the current selection.
-	 * @return all section descriptors.
-	 */
-	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
-			ISelection selection);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java
deleted file mode 100644
index 9cd387c..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabItem.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Represents a tab to be displayed in the tab list in the tabbed property sheet
- * page.
- * 
- * @author Anthony Hunter 
- */
-public interface ITabItem {
-
-	/**
-	 * Get the icon image for the tab.
-	 * 
-	 * @return the icon image for the tab.
-	 */
-	public Image getImage();
-
-	/**
-	 * Get the text label for the tab.
-	 * 
-	 * @return the text label for the tab.
-	 */
-	public String getText();
-
-	/**
-	 * Determine if this tab is selected.
-	 * 
-	 * @return <code>true</code> if this tab is selected.
-	 */
-	public boolean isSelected();
-
-	/**
-	 * Determine if this tab is indented.
-	 * 
-	 * @return <code>true</code> if this tab is indented.
-	 */
-	public boolean isIndented();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java
deleted file mode 100644
index ac662c7..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabSelectionListener.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-/**
- * A listener interested in tab selection events that occur for the tabbed
- * property sheet page.
- * 
- * @author Anthony Hunter 
- */
-public interface ITabSelectionListener {
-
-	/**
-	 * Notifies this listener that the selected tab has changed.
-	 * 
-	 * @param tabDescriptor
-	 *            the selected tab descriptor.
-	 * @since 3.4
-	 */
-	public void tabSelected(ITabDescriptor tabDescriptor);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java
deleted file mode 100644
index 8b9395c..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertyConstants.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-/**
- * Constants used by the implementors of ITabbedPropertySection.
- * 
- * @author Anthony Hunter 
- */
-public interface ITabbedPropertyConstants {
-
-	/**
-	 * These horizontal margin around the composite.
-	 * Each section should use a margin of 0, 0.
-	 */
-	public static final int HMARGIN = 6;
-	
-	/**
-	 * These horizontal margin around the composite.
-	 */
-	public static final int VMARGIN = 6;
-
-	/**
-	 * Horizontal space to leave between related widgets. 
-	 * Each section should use these values for spacing its widgets. 
-	 * For example, you can use +/- HSPACE as the offset of a left or 
-	 * right FlatFormAttachment.
-	 * 
-	 * The tabbed property composite also inserts VSPACE pixels between 
-	 * section composites if more than one section is displayed.  
-	 */
-	public static final int HSPACE = 5;
-	
-	/**
-	 * Horizontal space to leave between related widgets.
-	 */ 
-	public static final int VSPACE = 4;
-
-	/**
-	 * Space to leave between the center of the property tab and the closest
-	 * widget to the left or right. I.e. for a property tab whose widgets are
-	 * logically divided into two halves, the total space between the halves
-	 * should be 2*CENTER_SPACE.
-	 */
-	public static final int CENTER_SPACE = 10;
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java
deleted file mode 100644
index 3b5b009..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITabbedPropertySheetPageContributor.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-/**
- * Interface for a workbench part to contribute content to the tabbed property
- * view.
- * <p>
- * It is expected that the contributor ID is unique for a configuration of tabs
- * and sections. Editors and views can share a configuration by sharing a
- * contributor ID. Editors and views cannot share tabs and sections from
- * multiple contributors.
- * </p>
- * <p>
- * As a workaround, if all the elements in a structured selection implement
- * ITabbedPropertySheetPageContributor and they all return the same unique
- * contributor ID, then that configuration of tabs and sections will be used by
- * the tabbed property view for that selection.
- * </p>
- * 
- * @author Anthony Hunter
- */
-public interface ITabbedPropertySheetPageContributor {
-
-	/**
-	 * Returns the contributor ID for the tabbed property sheet page.
-	 * 
-	 * @return the contributor ID for the tabbed property sheet page.
-	 */
-	public String getContributorId();
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java
deleted file mode 100644
index 66939d8..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/ITypeMapper.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-/**
- * Allows property sheet page contributors to map the input object type to a
- * domain model type. The domain model type is then used for matching against
- * the input attribute of the propertySection extension.
- * <p>
- * The type mapper is most frequently used to return the type of the model
- * object when selecting a view object in a workbench part. For example, nodes
- * in a tree may all be TreeObjects in a structured selection. The type mapper
- * will take the tree node and return the type of the model object the node
- * represents.
- * </p>
- * <p>
- * This interface should not be extended or implemented. New type mapper instances
- * should be created using <code>AbstractTypeMapper</code>.
- * </p>
- * 
- * @author Anthony Hunter
- */
-public interface ITypeMapper {
-
-	/**
-	 * Map the input object to a domain model type.
-	 * 
-	 * @param object
-	 *            the input object.
-	 * @return the type of the input object, mapped to the domain type if
-	 *         required.
-	 */
-	public Class mapType(Object object);
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java
deleted file mode 100644
index ec95fde..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabContents.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * A property tab is composed by one or more property sections and is used to
- * categorize sections.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public final class TabContents {
-
-    private ISection[] sections;
-
-    private boolean controlsCreated;
-
-    /**
-     * 
-     */
-    public TabContents() {
-        controlsCreated = false;
-    }
-
-    /**
-     * Retrieve a numbered index for the section.
-     * @param section the section.
-     * @return the section index.
-     */
-    public int getSectionIndex(ISection section) {
-        for (int i = 0; i < sections.length; i++) {
-			if (section == sections[i]) {
-				return i;
-			}
-		}
-        return -1;
-    }
-
-    /**
-     * Retrieve the section at a numbered index.
-     * @param i a numbered index.
-     * @return the section.
-     */
-    public ISection getSectionAtIndex(int i) {
-        if (i >= 0 && i < sections.length) {
-			return sections[i];
-		}
-        return null;
-    }
-
-    /**
-     * Retrieve the sections on the tab.
-     * 
-     * @return the sections on the tab.
-     */
-    public ISection[] getSections() {
-        return sections;
-    }
-
-    /**
-     * Creates page's sections controls.
-     * 
-     * @param parent
-     * @param page
-     */
-    public void createControls(Composite parent,
-            final TabbedPropertySheetPage page) {
-        Composite pageComposite = page.getWidgetFactory().createComposite(
-            parent, SWT.NO_FOCUS);
-        GridLayout layout = new GridLayout();
-        layout.marginWidth = 0;
-        layout.marginHeight = 0;
-        layout.verticalSpacing = 0;
-        pageComposite.setLayout(layout);
-
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            final Composite sectionComposite = page.getWidgetFactory()
-                .createComposite(pageComposite, SWT.NO_FOCUS);
-            sectionComposite.setLayout(new FillLayout());
-            int style = (section.shouldUseExtraSpace()) ? GridData.FILL_BOTH
-                : GridData.FILL_HORIZONTAL;
-            GridData data = new GridData(style);
-            data.heightHint = section.getMinimumHeight();
-            sectionComposite.setLayoutData(data);
-
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.createControls(sectionComposite, page);
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-        controlsCreated = true;
-    }
-
-    /**
-     * Dispose of page's sections controls.
-     */
-    public void dispose() {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.dispose();
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Sends the lifecycle event to the page's sections.
-     */
-    public void aboutToBeShown() {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.aboutToBeShown();
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Sends the lifecycle event to the page's sections.
-     */
-    public void aboutToBeHidden() {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.aboutToBeHidden();
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Sets page's sections input objects.
-     * 
-     * @param part
-     * @param selection
-     */
-    public void setInput(final IWorkbenchPart part, final ISelection selection) {
-        for (int i = 0; i < sections.length; i++) {
-            final ISection section = sections[i];
-            ISafeRunnable runnable = new SafeRunnable() {
-
-                public void run()
-                    throws Exception {
-                    section.setInput(part, selection);
-                }
-            };
-            SafeRunnable.run(runnable);
-        }
-    }
-
-    /**
-     * Set the sections for the tab.
-     * 
-     * @param sections the sections for the tab.
-     */
-    public void setSections(ISection[] sections) {
-        this.sections = sections;
-    }
-
-    /**
-     * Determine if the controls have been created.
-     * 
-     * @return <code>true</code> if controls have been created.
-     */
-    public boolean controlsHaveBeenCreated() {
-        return controlsCreated;
-    }
-
-    /**
-     * If controls have been created, refresh all sections on the page.
-     */
-    public void refresh() {
-        if (controlsCreated) {
-            for (int i = 0; i < sections.length; i++) {
-                final ISection section = sections[i];
-                ISafeRunnable runnable = new SafeRunnable() {
-
-                    public void run()
-                        throws Exception {
-                        section.refresh();
-                    }
-                };
-                SafeRunnable.run(runnable);
-            }
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
deleted file mode 100644
index c3b14caac2..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetPage.java
+++ /dev/null
@@ -1,1055 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties.tabbed;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyComposite;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistry;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyRegistryFactory;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyTitle;
-import org.eclipse.ui.internal.views.properties.tabbed.view.TabbedPropertyViewer;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.part.Page;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheet;
-
-/**
- * A property sheet page that provides a tabbed UI.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertySheetPage
-	extends Page
-	implements IPropertySheetPage, ILabelProviderListener {
-
-	// widgets
-	private TabbedPropertyComposite tabbedPropertyComposite;
-
-	private TabbedPropertySheetWidgetFactory widgetFactory;
-
-	private ITabbedPropertySheetPageContributor contributor;
-
-	private TabbedPropertyRegistry registry;
-
-	private ITabbedPropertySheetPageContributor selectionContributor = null;
-
-	/**
-	 * The currently active contributor id, which may not match the contributor
-	 * id from the workbench part that created this instance.
-	 */
-	private String currentContributorId;
-
-	protected IStructuredContentProvider tabListContentProvider;
-
-	private ISelection currentSelection;
-
-	private boolean activePropertySheet;
-
-	private TabbedPropertyViewer tabbedPropertyViewer;
-
-	private TabContents currentTab;
-
-	private Map descriptorToTab;
-
-	private Map tabToComposite;
-
-	private List selectionQueue;
-
-	private boolean selectionQueueLocked;
-
-	private List tabSelectionListeners;
-
-	private IWorkbenchWindow cachedWorkbenchWindow;
-
-	private boolean hasTitleBar;
-
-	/**
-	 * a listener that is interested in part activation events.
-	 */
-	private IPartListener partActivationListener = new IPartListener() {
-
-		public void partActivated(IWorkbenchPart part) {
-			handlePartActivated(part);
-		}
-
-		public void partBroughtToTop(IWorkbenchPart part) {
-		}
-
-		public void partClosed(IWorkbenchPart part) {
-		}
-
-		public void partDeactivated(IWorkbenchPart part) {
-		}
-
-		public void partOpened(IWorkbenchPart part) {
-		}
-	};
-
-	private class TabbedPropertySheetPageContributorFromSelection
-		implements ITabbedPropertySheetPageContributor {
-
-		private String contributorId;
-
-		/**
-		 * Constructor that takes in a contributor id taken from a selection.
-		 * 
-		 * @param contributorId
-		 *            the contributor id.
-		 */
-		public TabbedPropertySheetPageContributorFromSelection(
-				String contributorId) {
-			super();
-			this.contributorId = contributorId;
-		}
-
-		/**
-		 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
-		 */
-		public String getContributorId() {
-			return contributorId;
-		}
-
-	}
-
-	/**
-	 * Label provider for the ListViewer.
-	 */
-	class TabbedPropertySheetPageLabelProvider
-		extends LabelProvider {
-
-		public String getText(Object element) {
-			if (element instanceof ITabDescriptor) {
-				return ((ITabDescriptor) element).getLabel();
-			}
-			return null;
-		}
-	}
-
-	/**
-	 * SelectionChangedListener for the ListViewer.
-	 */
-	class SelectionChangedListener
-		implements ISelectionChangedListener {
-
-		/**
-		 * Shows the tab associated with the selection.
-		 */
-		public void selectionChanged(SelectionChangedEvent event) {
-			IStructuredSelection selection = (IStructuredSelection) event
-				.getSelection();
-			TabContents tab = null;
-			ITabDescriptor descriptor = (ITabDescriptor) selection
-					.getFirstElement();
-
-			if (descriptor == null) {
-				// pretend the tab is empty.
-				hideTab(currentTab);
-			} else {
-				// create tab if necessary
-				// can not cache based on the id - tabs may have the same id,
-				// but different section depending on the selection
-				tab = (TabContents) descriptorToTab.get(descriptor);
-
-				if (tab != currentTab) {
-					hideTab(currentTab);
-				}
-
-				Composite tabComposite = (Composite) tabToComposite.get(tab);
-				if (tabComposite == null) {
-					tabComposite = createTabComposite();
-					tab.createControls(tabComposite,
-						TabbedPropertySheetPage.this);
-					// tabAreaComposite.layout(true);
-					tabToComposite.put(tab, tabComposite);
-				}
-				// force widgets to be resized
-				tab.setInput(tabbedPropertyViewer.getWorkbenchPart(),
-					(ISelection) tabbedPropertyViewer.getInput());
-
-				// store tab selection
-				storeCurrentTabSelection(descriptor.getLabel());
-
-				if (tab != currentTab) {
-					showTab(tab);
-				}
-
-				tab.refresh();
-			}
-			tabbedPropertyComposite.getTabComposite().layout(true);
-			currentTab = tab;
-			resizeScrolledComposite();
-
-			if (descriptor != null) {
-				handleTabSelection(descriptor);
-			}
-		}
-
-		/**
-		 * Shows the given tab.
-		 */
-		private void showTab(TabContents target) {
-			if (target != null) {
-				Composite tabComposite = (Composite) tabToComposite.get(target);
-				if (tabComposite != null) {
-					/**
-					 * the following method call order is important - do not
-					 * change it or the widgets might be drawn incorrectly
-					 */
-					tabComposite.moveAbove(null);
-					target.aboutToBeShown();
-					tabComposite.setVisible(true);
-				}
-			}
-		}
-
-		/**
-		 * Hides the given tab.
-		 */
-		private void hideTab(TabContents target) {
-			if (target != null) {
-				Composite tabComposite = (Composite) tabToComposite.get(target);
-				if (tabComposite != null) {
-					target.aboutToBeHidden();
-					tabComposite.setVisible(false);
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * create a new tabbed property sheet page.
-	 * 
-	 * @param tabbedPropertySheetPageContributor
-	 *            the tabbed property sheet page contributor.
-	 */
-	public TabbedPropertySheetPage(
-			ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor) {
-		this(tabbedPropertySheetPageContributor, true);
-	}
-	
-	/**
-	 * create a new tabbed property sheet page.
-	 *
-	 * @param tabbedPropertySheetPageContributor
-	 *            the tabbed property sheet page contributor.	  
-	 * @param showTitleBar
-	 *            boolean indicating if the title bar should be shown; 
-	 *            default value is <code>true</code> 	
-	 * @since 3.5
-	 */
-	public TabbedPropertySheetPage(
-			ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor,
-			boolean showTitleBar) {
-		hasTitleBar = showTitleBar;
-		contributor = tabbedPropertySheetPageContributor;
-		tabToComposite = new HashMap();
-		selectionQueue = new ArrayList(10);
-		tabSelectionListeners = new ArrayList();
-		initContributor(contributor.getContributorId());
-	}
-
-	/**
-	 * Handle the part activated event.
-	 * 
-	 * @param part
-	 *            the new activated part.
-	 */
-	protected void handlePartActivated(IWorkbenchPart part) {
-		/*
-		 * The properties view has been activated and the current page is this
-		 * instance of TabbedPropertySheetPage
-		 */
-		boolean thisActivated = part instanceof PropertySheet
-			&& ((PropertySheet) part).getCurrentPage() == this;
-
-		/*
-		 * When the active part changes and the part does not provide a
-		 * selection that affects this property sheet page, the PropertySheet
-		 * does not send us a selectionChanged() event. We need to be informed
-		 * of these events since we want to send aboutToBeHidden() and
-		 * aboutToBeShown() when the property sheet is hidden or shown.
-		 */
-        if (!thisActivated && !part.equals(contributor)
-                && !part.getSite().getId().equals(contributor.getContributorId())) {
-			/*
-			 * Is the part is a IContributedContentsView for the contributor,
-			 * for example, outline view.
-			 */
-			IContributedContentsView view = (IContributedContentsView) part
-				.getAdapter(IContributedContentsView.class);
-			if (view == null
-				|| (view.getContributingPart() != null && !view
-					.getContributingPart().equals(contributor))) {
-				if (activePropertySheet) {
-					if (currentTab != null) {
-						currentTab.aboutToBeHidden();
-					}
-					activePropertySheet = false;
-				}
-				return;
-			}
-		}
-		if (!activePropertySheet && currentTab != null) {
-			currentTab.aboutToBeShown();
-			currentTab.refresh();
-		}
-		activePropertySheet = true;
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		widgetFactory = new TabbedPropertySheetWidgetFactory();
-		tabbedPropertyComposite = new TabbedPropertyComposite(parent,
-			widgetFactory, hasTitleBar);
-		widgetFactory.paintBordersFor(tabbedPropertyComposite);
-		tabbedPropertyComposite.setLayout(new FormLayout());
-		FormData formData = new FormData();
-		formData.left = new FormAttachment(0, 0);
-		formData.right = new FormAttachment(100, 0);
-		formData.top = new FormAttachment(0, 0);
-		formData.bottom = new FormAttachment(100, 0);
-		tabbedPropertyComposite.setLayoutData(formData);
-
-		tabbedPropertyViewer = new TabbedPropertyViewer(tabbedPropertyComposite
-			.getList());
-		tabbedPropertyViewer.setContentProvider(tabListContentProvider);
-		tabbedPropertyViewer
-			.setLabelProvider(new TabbedPropertySheetPageLabelProvider());
-		tabbedPropertyViewer
-			.addSelectionChangedListener(new SelectionChangedListener());
-
-		tabbedPropertyComposite.getScrolledComposite().addControlListener(
-				new ControlAdapter() {
-
-					public void controlResized(ControlEvent e) {
-						resizeScrolledComposite();
-					}
-				});
-
-		/**
-		 * Add a part activation listener.
-		 */
-		cachedWorkbenchWindow = getSite().getWorkbenchWindow();
-		cachedWorkbenchWindow.getPartService().addPartListener(
-				partActivationListener);
-
-		/**
-		 * Add a label provider change listener.
-		 */
-		if (hasTitleBar) {
-			registry.getLabelProvider().addListener(this);
-		}
-	}
-
-	/**
-	 * Initialize the contributor with the provided contributor id.
-	 * 
-	 * @param contributorId
-	 *            the contributor id.
-	 */
-	private void initContributor(String contributorId) {
-		descriptorToTab = new HashMap();
-		if (contributor.getContributorId().equals(contributorId)) {
-			/**
-			 * default contributor from the workbench part.
-			 */
-			registry = TabbedPropertyRegistryFactory.getInstance()
-				.createRegistry(contributor);
-		} else {
-			/**
-			 * selection contributor.
-			 */
-			selectionContributor = new TabbedPropertySheetPageContributorFromSelection(
-				contributorId);
-			registry = TabbedPropertyRegistryFactory.getInstance()
-				.createRegistry(selectionContributor);
-		}
-		currentContributorId = contributorId;
-		tabListContentProvider = getTabListContentProvider();
-		hasTitleBar = hasTitleBar && registry.getLabelProvider() != null;
-
-		if (tabbedPropertyViewer != null) {
-			tabbedPropertyViewer.setContentProvider(tabListContentProvider);
-		}
-
-		/**
-		 * Add a label provider change listener.
-		 */
-		if (hasTitleBar) {
-			registry.getLabelProvider().addListener(this);
-		}
-
-	}
-
-	/**
-	 * Gets the tab list content provider for the contributor.
-	 * 
-	 * @return the tab list content provider for the contributor.
-	 */
-	protected IStructuredContentProvider getTabListContentProvider() {
-		return registry.getTabListContentProvider();
-	}
-
-	/**
-	 * Dispose the contributor with the provided contributor id. This happens on
-	 * part close as well as when contributors switch between the workbench
-	 * part and contributor from a selection.
-	 */
-	private void disposeContributor() {
-		/**
-		 * If the current tab is about to be disposed we have to call
-		 * aboutToBeHidden
-		 */
-		if (currentTab != null) {
-			currentTab.aboutToBeHidden();
-			currentTab = null;
-		}
-
-		disposeTabs(descriptorToTab.values());
-		descriptorToTab = new HashMap();
-
-		/**
-		 * Remove the label provider change listener.
-		 */
-		if (hasTitleBar && registry != null) {
-			registry.getLabelProvider().removeListener(this);
-		}
-
-		if (selectionContributor != null) {
-			/**
-			 * remove the selection contributed registry.
-			 */
-			TabbedPropertyRegistryFactory.getInstance().disposeRegistry(
-				selectionContributor);
-			selectionContributor = null;
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#dispose()
-	 */
-	public void dispose() {
-
-		disposeContributor();
-
-		if (widgetFactory != null) {
-			widgetFactory.dispose();
-			widgetFactory = null;
-		}
-		/**
-		 * Remove the part activation listener.
-		 */
-		if (cachedWorkbenchWindow != null) {
-			cachedWorkbenchWindow.getPartService().removePartListener(
-				partActivationListener);
-			cachedWorkbenchWindow = null;
-		}
-
-		if (registry != null) {
-			TabbedPropertyRegistryFactory.getInstance().disposeRegistry(
-				contributor);
-			registry = null;
-		}
-        
-        contributor = null;
-        currentSelection = null;
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#getControl()
-	 */
-	public Control getControl() {
-		return tabbedPropertyComposite;
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void setActionBars(IActionBars actionBars) {
-		// Override the undo and redo global action handlers
-		// to use the contributor action handlers
-        IActionBars partActionBars = null;
-		if (contributor instanceof IEditorPart) {
-			IEditorPart editorPart = (IEditorPart) contributor;
-            partActionBars = editorPart.getEditorSite().getActionBars();
-		} else if (contributor instanceof IViewPart) {
-            IViewPart viewPart = (IViewPart) contributor;
-            partActionBars = viewPart.getViewSite().getActionBars();
-        } 
-        
-        if (partActionBars != null) {
-            IAction action = partActionBars.getGlobalActionHandler(ActionFactory.UNDO
-                .getId());
-            if (action != null) {
-                actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), action);
-            }
-            action = partActionBars.getGlobalActionHandler(ActionFactory.REDO
-                .getId()); 
-            if (action != null) {
-                actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), action);
-            }
-        }
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.IPage#setFocus()
-	 */
-	public void setFocus() {
-		getControl().setFocus();
-	}
-
-	/**
-	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		setInput(part, selection);
-	}
-
-	/**
-	 * Stores the current tab label in the selection queue. Tab labels are used
-	 * to carry the tab context from one input object to another. The queue
-	 * specifies the selection priority. So if the first tab in the queue is not
-	 * available for the input we try the second tab and so on. If none of the
-	 * tabs are available we default to the first tab available for the input.
-	 */
-	private void storeCurrentTabSelection(String label) {
-		if (!selectionQueueLocked) {
-			selectionQueue.remove(label);
-			selectionQueue.add(0, label);
-		}
-	}
-
-	/**
-	 * Resize the scrolled composite enclosing the sections, which may result in the 
-	 * addition or removal of scroll bars.
-	 * 
-	 * @since 3.5
-	 */
-	public void resizeScrolledComposite() {
-		Point currentTabSize = new Point(0, 0);
-		if (currentTab != null) {
-			Composite sizeReference = (Composite) tabToComposite
-				.get(currentTab);
-			if (sizeReference != null) {
-				currentTabSize = sizeReference.computeSize(SWT.DEFAULT, SWT.DEFAULT); 
-			}
-		}
-		tabbedPropertyComposite.getScrolledComposite().setMinSize(
-				currentTabSize);
-
-		ScrollBar verticalScrollBar = tabbedPropertyComposite
-				.getScrolledComposite().getVerticalBar();
-		if (verticalScrollBar != null) {
-			Rectangle clientArea = tabbedPropertyComposite
-					.getScrolledComposite().getClientArea();
-			int increment = clientArea.height - 5;
-			verticalScrollBar.setPageIncrement(increment);
-		}
-
-		ScrollBar horizontalScrollBar = tabbedPropertyComposite
-				.getScrolledComposite().getHorizontalBar();
-		if (horizontalScrollBar != null) {
-			Rectangle clientArea = tabbedPropertyComposite
-					.getScrolledComposite().getClientArea();
-			int increment = clientArea.width - 5;
-			horizontalScrollBar.setPageIncrement(increment);
-		}
-	}
-
-	private void disposeTabs(Collection tabs) {
-		for (Iterator iter = tabs.iterator(); iter.hasNext();) {
-			TabContents tab = (TabContents) iter.next();
-			Composite composite = (Composite) tabToComposite.remove(tab);
-			tab.dispose();
-			if (composite != null) {
-				composite.dispose();
-			}
-		}
-	}
-
-	/**
-	 * Returns the last known selected tab for the given input.
-	 */
-	private int getLastTabSelection(IWorkbenchPart part, ISelection input) {
-		ITabDescriptor[] descriptors = registry.getTabDescriptors(part, input);
-		if (descriptors.length != 0) {
-			for (Iterator iter = selectionQueue.iterator(); iter.hasNext();) {
-				String text = (String) iter.next();
-				for (int i = 0; i < descriptors.length; i++) {
-					if (text.equals(descriptors[i].getLabel())) {
-						return i;
-					}
-				}
-			}
-		}
-		return 0;
-	}
-
-	/**
-	 * Update the current tabs to represent the given input object. When tabs
-	 * apply for both the old and new input they are reused otherwise they are
-	 * disposed. If the current visible tab will not be reused (i.e. will be
-	 * disposed) we have to send it an aboutToBeHidden() message.
-	 * @since 3.4
-	 */
-	protected void updateTabs(ITabDescriptor[] descriptors) {
-		Map newTabs = new HashMap(descriptors.length * 2);
-		boolean disposingCurrentTab = (currentTab != null);
-		for (int i = 0; i < descriptors.length; i++) {
-			TabContents tab = (TabContents) descriptorToTab
-					.remove(descriptors[i]);
-
-			if (tab != null && tab.controlsHaveBeenCreated()) {
-				if (tab == currentTab) {
-					disposingCurrentTab = false;
-				}
-			} else {
-				tab = createTab(descriptors[i]);
-			}
-
-			newTabs.put(descriptors[i], tab);
-		}
-		if (disposingCurrentTab) {
-			/**
-			 * If the current tab is about to be disposed we have to call
-			 * aboutToBeHidden
-			 */
-			currentTab.aboutToBeHidden();
-			currentTab = null;
-		}
-		disposeTabs(descriptorToTab.values());
-		descriptorToTab = newTabs;
-	}
-
-	/**
-	 * Create the tab contents for the provided tab descriptor.
-	 * 
-	 * @param tabDescriptor
-	 *            the tab descriptor.
-	 * @return the tab contents.
-	 * @since 3.4
-	 */
-	protected TabContents createTab(ITabDescriptor tabDescriptor) {
-		return tabDescriptor.createTab();
-	}
-
-	/**
-	 * Helper method for creating property tab composites.
-	 * 
-	 * @return the property tab composite.
-	 */
-	private Composite createTabComposite() {
-		Composite result = widgetFactory.createComposite(
-			tabbedPropertyComposite.getTabComposite(), SWT.NO_FOCUS);
-		result.setVisible(false);
-		result.setLayout(new FillLayout());
-		FormData data = new FormData();
-		if (hasTitleBar) {
-			data.top = new FormAttachment(tabbedPropertyComposite.getTitle(), 0);
-		} else {
-			data.top = new FormAttachment(0, 0);
-		}
-		data.bottom = new FormAttachment(100, 0);
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		result.setLayoutData(data);
-		return result;
-	}
-
-	private void setInput(IWorkbenchPart part, ISelection selection) {
-		if (selection.equals(currentSelection)) {
-			return;
-		}
-
-		this.currentSelection = selection;
-
-		// see if the selection provides a new contributor
-		validateRegistry(selection);
-		ITabDescriptor[] descriptors = registry.getTabDescriptors(part,
-				currentSelection);
-		// If there are no descriptors for the given input we do not need to
-		// touch the tab objects. We might reuse them for the next valid
-		// input.
-		if (descriptors.length > 0) {
-			updateTabs(descriptors);
-		}
-		// update tabs list
-		tabbedPropertyViewer.setInput(part, currentSelection);
-		int lastTabSelectionIndex = getLastTabSelection(part, currentSelection);
-		Object selectedTab = tabbedPropertyViewer
-			.getElementAt(lastTabSelectionIndex);
-		selectionQueueLocked = true;
-		try {
-			if (selectedTab == null) {
-				tabbedPropertyViewer.setSelection(null);
-			} else {
-				tabbedPropertyViewer.setSelection(new StructuredSelection(
-					selectedTab));
-			}
-		} finally {
-			selectionQueueLocked = false;
-		}
-		refreshTitleBar();
-	}
-
-	/**
-	 * Refresh the currently active tab.
-	 */
-	public void refresh() {
-		currentTab.refresh();
-	}
-
-	/**
-	 * Get the currently active tab.
-	 * 
-	 * @return the currently active tab.
-	 * @since 3.4
-	 */
-	public TabContents getCurrentTab() {
-		return currentTab;
-	}
-
-	/**
-	 * Handle the tab selected change event.
-	 * 
-	 * @param tabDescriptor
-	 *            the new selected tab.
-	 */
-	private void handleTabSelection(ITabDescriptor tabDescriptor) {
-		if (selectionQueueLocked) {
-			/*
-			 * don't send tab selection events for non user changes.
-			 */
-			return;
-		}
-		for (Iterator i = tabSelectionListeners.iterator(); i.hasNext();) {
-			ITabSelectionListener listener = (ITabSelectionListener) i.next();
-			listener.tabSelected(tabDescriptor);
-		}
-	}
-
-	/**
-	 * Add a tab selection listener.
-	 * 
-	 * @param listener
-	 *            a tab selection listener.
-	 */
-	public void addTabSelectionListener(ITabSelectionListener listener) {
-		tabSelectionListeners.add(listener);
-	}
-
-	/**
-	 * Remove a tab selection listener.
-	 * 
-	 * @param listener
-	 *            a tab selection listener.
-	 */
-	public void removeTabSelectionListener(ITabSelectionListener listener) {
-		tabSelectionListeners.remove(listener);
-	}
-
-	/**
-	 * Override the tabs with a new set of tabs. The tab list is obtained from
-	 * the {@link AbstractOverridableTabListPropertySection} by the
-	 * {@link IOverridableTabListContentProvider}.
-	 * @since 3.4
-	 */
-	public void overrideTabs() {
-		if (tabListContentProvider instanceof IOverridableTabListContentProvider) {
-			IOverridableTabListContentProvider overridableTabListContentProvider = (IOverridableTabListContentProvider) tabListContentProvider;
-			overridableTabListContentProvider.overrideTabs();
-		}
-	}
-
-	/**
-	 * Get the widget factory.
-	 * 
-	 * @return the widget factory.
-	 */
-	public TabbedPropertySheetWidgetFactory getWidgetFactory() {
-		return widgetFactory;
-	}
-
-	/**
-	 * Update the title bar of the contributor has a label provider.
-	 */
-	private void refreshTitleBar() {
-		if (hasTitleBar) {
-			TabbedPropertyTitle title = tabbedPropertyComposite.getTitle();
-			if (currentTab == null) {
-				/**
-				 * No tabs are shown so hide the title bar, otherwise you see
-				 * "No properties available" and a title bar for the selection.
-				 */
-				title.setTitle(null, null);
-			} else {
-				String text = registry.getLabelProvider().getText(
-					currentSelection);
-				Image image = registry.getLabelProvider().getImage(
-					currentSelection);
-				title.setTitle(text, image);
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProviderListener#labelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)
-	 */
-	public void labelProviderChanged(LabelProviderChangedEvent event) {
-		refreshTitleBar();
-	}
-
-    /**
-     * Retrieve the contributor from the selection.
-     * 
-     * @param object -
-     *            the selected element
-     * @return the TabbedPropertySheetPageContributor or null if not applicable
-     */
-    private ITabbedPropertySheetPageContributor getTabbedPropertySheetPageContributor(
-            Object object) {
-        if (object instanceof ITabbedPropertySheetPageContributor) {
-            return (ITabbedPropertySheetPageContributor) object;
-        }
-
-        if (object instanceof IAdaptable
-            && ((IAdaptable) object)
-                .getAdapter(ITabbedPropertySheetPageContributor.class) != null) {
-            return (ITabbedPropertySheetPageContributor) (((IAdaptable) object)
-                .getAdapter(ITabbedPropertySheetPageContributor.class));
-        }
-
-        if (Platform.getAdapterManager().hasAdapter(object,
-            ITabbedPropertySheetPageContributor.class.getName())) {
-            return (ITabbedPropertySheetPageContributor) Platform
-                .getAdapterManager().loadAdapter(object,
-                    ITabbedPropertySheetPageContributor.class.getName());
-        }
-
-        return null;
-	}
-
-	/**
-	 * The workbench part creates this instance of the TabbedPropertySheetPage
-	 * and implements ITabbedPropertySheetPageContributor which is unique
-	 * contributor id. This unique contributor id is used to load a registry
-	 * with the extension point This id matches the registry.
-	 * <p>
-	 * It is possible for elements in a selection to implement
-	 * ITabbedPropertySheetPageContributor to provide a different contributor id
-	 * and thus a differenent registry.
-	 * 
-	 * @param selection
-	 *            the current selection in the active workbench part.
-	 */
-	private void validateRegistry(ISelection selection) {
-		if (selection == null) {
-			return;
-		}
-
-		if (!(selection instanceof IStructuredSelection)) {
-			return;
-		}
-
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		if (structuredSelection.size() == 0) {
-			return;
-		}
-
-        ITabbedPropertySheetPageContributor newContributor = getTabbedPropertySheetPageContributor(structuredSelection.getFirstElement());
-        
-		if (newContributor == null) {
-			/**
-			 * selection does not implement or adapt ITabbedPropertySheetPageContributor.
-			 */
-			newContributor = contributor;
-		}
-		
-        String selectionContributorId = newContributor.getContributorId();
-		if (selectionContributorId.equals(currentContributorId)) {
-			/**
-			 * selection has the same contributor id as current, so leave
-			 * existing registry.
-			 */
-			return;
-		}
-
-		/**
-		 * Selection implements ITabbedPropertySheetPageContributor different
-		 * than current contributor id, so make sure all elements implement the
-		 * new id. If all contributor id do not match, then fall back to default
-		 * contributor from the workbench part.
-		 */
-		Iterator i = structuredSelection.iterator();
-        i.next();
-		while (i.hasNext()) {
-            newContributor = getTabbedPropertySheetPageContributor(i.next());
-			if (newContributor == null || !newContributor.getContributorId().equals(selectionContributorId)) {
-				/**
-				 * fall back to use the default contributor id from the
-				 * workbench part.
-				 */
-				if (selectionContributor != null) {
-					disposeContributor();
-					currentContributorId = contributor.getContributorId();
-					initContributor(currentContributorId);
-				}
-				return;
-			}
-		}
-
-		/**
-		 * All the elements in the selection implement a new contributor id, so
-		 * use that id.
-		 */
-		disposeContributor();
-		currentContributorId = selectionContributorId;
-		initContributor(currentContributorId);
-        overrideActionBars();
-	}
-
-    /**
-     * Override the action bars for the selection based contributor.
-     */
-    private void overrideActionBars() {
-        if (registry.getActionProvider() != null ) {
-            IActionProvider actionProvider = registry.getActionProvider();
-            actionProvider.setActionBars(contributor, getSite().getActionBars());
-        }
-    }
-
-	/**
-	 * Returns the currently selected tab.
-	 * 
-	 * @return the currently selected tab or <code>null</code> if there is no
-	 *         tab selected.
-	 * @since 3.5
-	 */
-	public ITabDescriptor getSelectedTab() {
-		int selectedTab = tabbedPropertyViewer.getSelectionIndex();
-		if (selectedTab != -1) {
-			Object object = tabbedPropertyViewer.getElementAt(selectedTab);
-			if (object instanceof ITabDescriptor) {
-				return (ITabDescriptor) object;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the list of currently active tabs.
-	 * 
-	 * @return the currently active tabs.
-	 * @since 3.5
-	 */
-	public ITabDescriptor[] getActiveTabs() {
-		List elements = tabbedPropertyViewer.getElements();
-		if (elements != null && elements.size() > 0) {
-			ITabDescriptor[] tabDescriptors = (ITabDescriptor[]) elements
-					.toArray(new ITabDescriptor[0]);
-			return tabDescriptors;
-		}
-		return new ITabDescriptor[] {};
-	}
-	
-	/**
-	 * Set the currently selected tab to be that of the provided tab id.
-	 * 
-	 * @param id
-	 *            The string id of the tab to select.
-	 * @since 3.5
-	 */
-	public void setSelectedTab(String id) {
-		List elements = tabbedPropertyViewer.getElements();
-		if (elements != null && elements.size() > 0) {
-			for (Iterator i = elements.iterator(); i.hasNext();) {
-				ITabDescriptor tabDescriptor = (ITabDescriptor) i.next();
-				if (tabDescriptor.getId() != null &&
-						tabDescriptor.getId().equals(id)) {
-					tabbedPropertyViewer.setSelection(new StructuredSelection(
-							tabDescriptor), true);
-				}
-			}
-		}
-	}
-	
-	/**
-     * Returns text of the properties title for given selection. If selection is null,
-     * then currentSelection is used
-     * 
-	 * @param selection Selection whose properties title text is to be returned 
-     * @return String representing title text.
-	 * @since 3.5
-     */	
-    public String getTitleText(ISelection selection) {
-    	if (selection == null) {
-    		selection = currentSelection;
-    	}
-    	return registry.getLabelProvider().getText(selection);
-    }
-    
-    /**
-     * Returns the title image for given selection. If selection is null,
-     * then currentSelection is used. 
-     * 
-     * @param selection Selection whose properties title image is to be returned
-     * @return Image that is used as a title image.
-     * @since 3.5
-     */
-    public Image getTitleImage(ISelection selection) {
-    	if (selection == null) {
-    		selection = currentSelection;
-    	}
-		return registry.getLabelProvider().getImage(selection);
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java
deleted file mode 100644
index dedd4c9..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/TabbedPropertySheetWidgetFactory.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.views.properties.tabbed;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * A FormToolkit customized for use by tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class TabbedPropertySheetWidgetFactory
-    extends FormToolkit {
-
-    /**
-     * private constructor.
-     */
-    public TabbedPropertySheetWidgetFactory() {
-        super(Display.getCurrent());
-    }
-
-    /**
-     * Creates the tab folder as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the tab folder style.
-     * @return the tab folder
-     */
-    public CTabFolder createTabFolder(Composite parent, int style) {
-        CTabFolder tabFolder = new CTabFolder(parent, style);
-        return tabFolder;
-    }
-
-    /**
-     * Creates the tab item as a part of the tab folder.
-     * 
-     * @param tabFolder
-     *            the parent.
-     * @param style
-     *            the tab folder style.
-     * @return the tab item.
-     */
-    public CTabItem createTabItem(CTabFolder tabFolder, int style) {
-        CTabItem tabItem = new CTabItem(tabFolder, style);
-        return tabItem;
-    }
-
-    /**
-     * Creates the list as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the list style.
-     * @return the list.
-     */
-    public List createList(Composite parent, int style) {
-        List list = new org.eclipse.swt.widgets.List(parent, style);
-        return list;
-    }
-
-    public Composite createComposite(Composite parent, int style) {
-        Composite c = super.createComposite(parent, style);
-        paintBordersFor(c);
-        return c;
-    }
-
-    public Composite createComposite(Composite parent) {
-        Composite c = createComposite(parent, SWT.NONE);
-        return c;
-    }
-
-    /**
-     * Creates a plain composite as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the composite style.
-     * @return the composite.
-     */
-    public Composite createPlainComposite(Composite parent, int style) {
-        Composite c = super.createComposite(parent, style);
-        c.setBackground(parent.getBackground());
-        paintBordersFor(c);
-        return c;
-    }
-
-    /**
-     * Creates a scrolled composite as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @param style
-     *            the composite style.
-     * @return the composite.
-     */
-    public ScrolledComposite createScrolledComposite(Composite parent, int style) {
-        ScrolledComposite scrolledComposite = new ScrolledComposite(parent,
-            style);
-        return scrolledComposite;
-    }
-
-    /**
-     * Creates a combo box as a part of the form.
-     * 
-     * @param parent
-     *            the combo box parent.
-     * @param comboStyle
-     *            the combo box style.
-     * @return the combo box.
-     */
-    public CCombo createCCombo(Composite parent, int comboStyle) {
-        CCombo combo = new CCombo(parent, comboStyle);
-        adapt(combo, true, false);
-        // Bugzilla 145837 - workaround for no borders on Windows XP
-		if (getBorderStyle() == SWT.BORDER) {
-			combo.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
-		}
-        return combo;
-    }
-
-    /**
-     * Creates a combo box as a part of the form.
-     * 
-     * @param parent
-     *            the combo box parent.
-     * @return the combo box.
-     */
-    public CCombo createCCombo(Composite parent) {
-        return createCCombo(parent, SWT.FLAT | SWT.READ_ONLY);
-    }
-
-    /**
-     * Creates a group as a part of the form.
-     * 
-     * @param parent
-     *            the group parent.
-     * @param text
-     *            the group title.
-     * @return the composite.
-     */
-    public Group createGroup(Composite parent, String text) {
-        Group group = new Group(parent, SWT.SHADOW_NONE);
-        group.setText(text);
-        group.setBackground(getColors().getBackground());
-        group.setForeground(getColors().getForeground());
-        return group;
-    }
-
-    /**
-     * Creates a flat form composite as a part of the form.
-     * 
-     * @param parent
-     *            the composite parent.
-     * @return the composite.
-     */
-    public Composite createFlatFormComposite(Composite parent) {
-        Composite composite = createComposite(parent);
-        FormLayout layout = new FormLayout();
-        layout.marginWidth = ITabbedPropertyConstants.HSPACE + 2;
-        layout.marginHeight = ITabbedPropertyConstants.VSPACE;
-        layout.spacing = ITabbedPropertyConstants.VMARGIN + 1;
-        composite.setLayout(layout);
-        return composite;
-    }
-
-    /**
-     * Creates a label as a part of the form.
-     * 
-     * @param parent
-     *            the label parent.
-     * @param text
-     *            the label text.
-     * @return the label.
-     */
-    public CLabel createCLabel(Composite parent, String text) {
-        return createCLabel(parent, text, SWT.NONE);
-    }
-
-    /**
-     * Creates a label as a part of the form.
-     * 
-     * @param parent
-     *            the label parent.
-     * @param text
-     *            the label text.
-     * @param style
-     *            the label style.
-     * @return the label.
-     */
-    public CLabel createCLabel(Composite parent, String text, int style) {
-        final CLabel label = new CLabel(parent, style);
-        label.setBackground(parent.getBackground());
-        label.setText(text);
-        return label;
-    }
-
-    public void dispose() {
-        if (getColors() != null) {
-            super.dispose();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html b/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html
deleted file mode 100644
index a6397e0..0000000
--- a/bundles/org.eclipse.ui.views.properties.tabbed/src/org/eclipse/ui/views/properties/tabbed/package.html
+++ /dev/null
@@ -1,14 +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">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the Tabbed Properties framework. This allows client views and editors to
-provide a tabbed property sheet page to the Properties view. 
-See TabbedPropertySheetPage.
-The tabs and sections to show for the selected element(s) in the source part are
-defined by extensions to this plug-in's extension points.
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.views/.classpath b/bundles/org.eclipse.ui.views/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.views/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.views/.cvsignore b/bundles/org.eclipse.ui.views/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.views/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.views/.project b/bundles/org.eclipse.ui.views/.project
deleted file mode 100644
index 770eaa2..0000000
--- a/bundles/org.eclipse.ui.views/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.views</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 852d566..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,93 +0,0 @@
-#Wed Apr 30 16:16:06 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-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.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index f27cfb9..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 08:59:34 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 0f029be..0000000
--- a/bundles/org.eclipse.ui.views/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,26 +0,0 @@
-#Wed Apr 30 16:16:06 EDT 2008
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.discouraged-class=1
-compilers.p.illegal-att-value=0
-compilers.p.internal=1
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
deleted file mode 100644
index ac4d62c..0000000
--- a/bundles/org.eclipse.ui.views/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ui.views; singleton:=true
-Bundle-Version: 3.4.0.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.ui.internal.views.ViewsPlugin
-Bundle-ActivationPolicy: lazy
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.internal.views;x-internal:=true,
- org.eclipse.ui.internal.views.contentoutline;x-internal:=true,
- org.eclipse.ui.internal.views.properties; ui.views="split"; mandatory:="ui.views"; x-internal:=true,
- org.eclipse.ui.views.contentoutline,
- org.eclipse.ui.views.properties; ui.views="split"; mandatory:="ui.views"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.help;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.3.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.views/about.html b/bundles/org.eclipse.ui.views/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.views/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views/build.properties b/bundles/org.eclipse.ui.views/build.properties
deleted file mode 100644
index bbfa0a5..0000000
--- a/bundles/org.eclipse.ui.views/build.properties
+++ /dev/null
@@ -1,18 +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
-###############################################################################
-bin.includes = icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               .,\
-               META-INF/
-src.includes = about.html
-source.. = src/
diff --git a/bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif b/bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif
deleted file mode 100644
index 641ba72..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/dlcl16/defaults_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif b/bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif
deleted file mode 100644
index ba6d891..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/dlcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif b/bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif
deleted file mode 100644
index 62bdbe2..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/dlcl16/tree_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif b/bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif
deleted file mode 100644
index c064899..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/elcl16/defaults_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif b/bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif
deleted file mode 100644
index 6fe6f0e..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/elcl16/filter_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/elcl16/new.gif b/bundles/org.eclipse.ui.views/icons/full/elcl16/new.gif
deleted file mode 100644
index 7aea894..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/elcl16/new.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/elcl16/tree_mode.gif b/bundles/org.eclipse.ui.views/icons/full/elcl16/tree_mode.gif
deleted file mode 100644
index dda8bae..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/elcl16/tree_mode.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/eview16/outline_co.gif b/bundles/org.eclipse.ui.views/icons/full/eview16/outline_co.gif
deleted file mode 100644
index 0dc862c..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/eview16/outline_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/icons/full/eview16/prop_ps.gif b/bundles/org.eclipse.ui.views/icons/full/eview16/prop_ps.gif
deleted file mode 100644
index d11c996..0000000
--- a/bundles/org.eclipse.ui.views/icons/full/eview16/prop_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.ui.views/plugin.properties b/bundles/org.eclipse.ui.views/plugin.properties
deleted file mode 100644
index d8f2dc9..0000000
--- a/bundles/org.eclipse.ui.views/plugin.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName= Views
-providerName= Eclipse.org
-
-Views.PropertySheet = Properties
-Views.NewPropertySheet = New Properties View
-Views.ContentOutline = Outline
-
diff --git a/bundles/org.eclipse.ui.views/plugin.xml b/bundles/org.eclipse.ui.views/plugin.xml
deleted file mode 100644
index 8a52e3d..0000000
--- a/bundles/org.eclipse.ui.views/plugin.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   
-     <extension
-         point="org.eclipse.ui.views">
-      <view
-            allowMultiple="true"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.views.properties.PropertySheet"
-            icon="$nl$/icons/full/eview16/prop_ps.gif"
-            id="org.eclipse.ui.views.PropertySheet"
-            name="%Views.PropertySheet">
-      </view>
-      <view
-            name="%Views.ContentOutline"
-            icon="$nl$/icons/full/eview16/outline_co.gif"
-            category="org.eclipse.ui"
-            class="org.eclipse.ui.views.contentoutline.ContentOutline"
-            id="org.eclipse.ui.views.ContentOutline">
-      </view>
-   </extension>
-     <extension
-           point="org.eclipse.ui.menus">
-		<menuContribution
-				locationURI="popup:org.eclipse.ui.menus.showInMenu">
-			<command
-				commandId="org.eclipse.ui.views.properties.NewPropertySheetCommand"
-				icon="platform:/plugin/org.eclipse.ui.views/icons/full/eview16/prop_ps.gif"
-				label="%Views.PropertySheet"
-				style="push">
-	        </command>
-		</menuContribution>
-  <menuContribution
-        locationURI="menu:org.eclipse.ui.views.PropertySheet">
-     <command
-           commandId="org.eclipse.ui.views.properties.NewPropertySheetCommand"
-           icon="icons/full/elcl16/new.gif"
-           label="%Views.NewPropertySheet"
-           style="push">
-     </command>
-  </menuContribution>
-	</extension>
-     <extension
-           point="org.eclipse.ui.commands">
-        <command
-              defaultHandler="org.eclipse.ui.views.properties.NewPropertySheetHandler"
-              id="org.eclipse.ui.views.properties.NewPropertySheetCommand"
-              name="%Views.PropertySheet">
-        </command>
-     </extension>
-   
-</plugin>
diff --git a/bundles/org.eclipse.ui.views/scripts/exportplugin.xml b/bundles/org.eclipse.ui.views/scripts/exportplugin.xml
deleted file mode 100644
index 5e71e54..0000000
--- a/bundles/org.eclipse.ui.views/scripts/exportplugin.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<project name="Eclipse Views" default="export" basedir="..">
-	<target name="init">
-		<tstamp/>
-		<property name="destdir" value="../../plugin-export" />
-		<property name="plugin"  value="org.eclipse.ui.views" />
-		<property name="version"  value="_2.1.0" />
-		<property name="dest"  value="${destdir}/${plugin}${version}" />
-	</target>
-
-	<target name="build" depends="init">
-    	<eclipse.incrementalBuild project="${plugin}" kind="incr"/>
-	</target>
-
-	<target name="export" depends="build">
-		<mkdir dir="${destdir}" />
-		<delete dir="${dest}" />
-		<mkdir dir="${dest}" />
-		<jar 
-			jarfile="${dest}/views.jar"
-			basedir="bin"
-		/>
-		<copy file="plugin.xml" todir="${dest}"/>
-		<copy file="plugin.properties" todir="${dest}"/>
-		<zip zipfile="${dest}/viewssrc.zip">
-		    <fileset dir="src" />
-		    <fileset dir="extensions" />
-  		</zip>				
-	</target>
-</project>
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/ViewsPlugin.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/ViewsPlugin.java
deleted file mode 100644
index e23b672..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/ViewsPlugin.java
+++ /dev/null
@@ -1,125 +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.ui.internal.views;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * The plug-in runtime class for the views UI plug-in (id <code>"org.eclipse.ui.views"</code>).
- * <p>
- * This class provides static methods and fields only; it is not intended to be
- * instantiated or subclassed by clients.
- * </p>
- * 
- * @since 2.1
- */
-public final class ViewsPlugin extends AbstractUIPlugin {
-    /**
-     * Views UI plug-in id (value <code>"org.eclipse.ui.views"</code>).
-     */
-    public static final String PLUGIN_ID = "org.eclipse.ui.views"; //$NON-NLS-1$
-	
-	private final static String ICONS_PATH = "$nl$/icons/full/";//$NON-NLS-1$
-
-    private static ViewsPlugin instance;
-
-    /**
-     * Returns the singleton instance.
-     * 
-     * @return the singleton instance.
-     */
-    public static ViewsPlugin getDefault() {
-        return instance;
-    }
-
-    /**
-     * Creates a new instance of the receiver.
-     * 
-     * @see org.eclipse.core.runtime.Plugin#Plugin()
-     */
-    public ViewsPlugin() {
-        super();
-        instance = this;
-    }
-	
-	/**
-	 * Get the workbench image with the given path relative to
-	 * ICON_PATH.
-	 * @param relativePath
-	 * @return ImageDescriptor
-	 */
-	public static ImageDescriptor getViewImageDescriptor(String relativePath){
-		return imageDescriptorFromPlugin(PLUGIN_ID, ICONS_PATH + relativePath);
-	}
-    
-    /**
-     * If it is possible to adapt the given object to the given type, this
-     * returns the adapter. Performs the following checks:
-     * 
-     * <ol>
-     * <li>Returns <code>sourceObject</code> if it is an instance of the
-     * adapter type.</li>
-     * <li>If sourceObject implements IAdaptable, it is queried for adapters.</li>
-     * <li>If sourceObject is not an instance of PlatformObject (which would have
-     * already done so), the adapter manager is queried for adapters</li>
-     * </ol>
-     * 
-     * Otherwise returns null.
-     * 
-     * @param sourceObject
-     *            object to adapt, or null
-     * @param adapter
-     *            type to adapt to
-     * @param activatePlugins 
-     *            true if IAdapterManager.loadAdapter should be used (may trigger plugin activation)
-     * @return a representation of sourceObject that is assignable to the
-     *         adapter type, or null if no such representation exists
-     */
-    public static Object getAdapter(Object sourceObject, Class adapter, boolean activatePlugins) {
-    	Assert.isNotNull(adapter);
-        if (sourceObject == null) {
-            return null;
-        }
-        if (adapter.isInstance(sourceObject)) {
-            return sourceObject;
-        }
-
-        if (sourceObject instanceof IAdaptable) {
-            IAdaptable adaptable = (IAdaptable) sourceObject;
-
-            Object result = adaptable.getAdapter(adapter);
-            if (result != null) {
-                // Sanity-check
-                Assert.isTrue(adapter.isInstance(result));
-                return result;
-            }
-        } 
-        
-        if (!(sourceObject instanceof PlatformObject)) {
-        	Object result;
-        	if (activatePlugins) {
-        		result = Platform.getAdapterManager().loadAdapter(sourceObject, adapter.getName());
-        	} else {
-        		result = Platform.getAdapterManager().getAdapter(sourceObject, adapter);
-        	}
-            if (result != null) {
-                return result;
-            }
-        }
-
-        return null;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.java
deleted file mode 100644
index e038dcc..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/ContentOutlineMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.internal.views.contentoutline;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * ContentOutlineMessages is the message class for the messages used in the content outline.
- *
- */
-public class ContentOutlineMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.contentoutline.messages";//$NON-NLS-1$
-
-	// ==============================================================================
-	// Outline View
-	// ==============================================================================
-	/** */
-	public static String ContentOutline_noOutline;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ContentOutlineMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/messages.properties b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/messages.properties
deleted file mode 100644
index 2e229b9..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/messages.properties
+++ /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.views.contentoutline
-
-
-# ==============================================================================
-# Outline View
-# ==============================================================================
-ContentOutline_noOutline = An outline is not available.
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/package.html b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/package.html
deleted file mode 100644
index 87324c3..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/contentoutline/package.html
+++ /dev/null
@@ -1,13 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the internal support for the Content Outline view.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.java
deleted file mode 100644
index 150f50f..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/PropertiesMessages.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM - Initial API and implementation
- * Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- *******************************************************************************/
-package org.eclipse.ui.internal.views.properties;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- */
-public class PropertiesMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.internal.views.properties.messages";//$NON-NLS-1$
-
-	// package: org.eclipse.ui.views.properties
-
-	// ==============================================================================
-	// Properties View
-	// ==============================================================================
-
-	/** */
-	public static String Categories_text;
-	/** */
-	public static String Categories_toolTip;
-
-	/** */
-	public static String Columns_text;
-	/** */
-	public static String Columns_toolTip;
-	
-	/** */
-	public static String CopyProperty_text;
-
-	/** */
-	public static String Defaults_text;
-	/** */
-	public static String Defaults_toolTip;
-
-	/** */
-	public static String Filter_text;
-	/** */
-	public static String Filter_toolTip;
-
-	/** */
-	public static String Selection_description;
-	/** */
-	public static String Pin_text;
-	/** */
-	public static String Pin_toolTip;
-
-	/** */
-	public static String PropertyViewer_property;
-	/** */
-	public static String PropertyViewer_value;
-	/** */
-	public static String PropertyViewer_misc;
-
-	/** */
-	public static String CopyToClipboardProblemDialog_title;
-	/** */
-	public static String CopyToClipboardProblemDialog_message;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, PropertiesMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/messages.properties b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/messages.properties
deleted file mode 100644
index 97ba2b4..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/internal/views/properties/messages.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies 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.views.properties
-
-# ==============================================================================
-# Properties View
-# ==============================================================================
-
-Categories_text = Show &Categories
-Categories_toolTip = Show Categories
-
-Columns_text = Co&lumns...
-Columns_toolTip = Configure Columns
-
-CopyProperty_text = &Copy
-
-Defaults_text = &Restore Default Value
-Defaults_toolTip = Restore Default Value
-
-Filter_text = Show &Advanced Properties
-Filter_toolTip = Show Advanced Properties
-
-Selection_description = Selection from {0}
-Pin_text = &Pin to Selection
-Pin_toolTip = Pins this property view to the current selection
-
-PropertyViewer_property = Property
-PropertyViewer_value = Value
-PropertyViewer_misc = Misc
-
-CopyToClipboardProblemDialog_title=Problem Copying to Clipboard
-CopyToClipboardProblemDialog_message=There was a problem when accessing the system clipboard. Retry?
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java
deleted file mode 100644
index ec48552..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutline.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.contentoutline;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.ViewsPlugin;
-import org.eclipse.ui.internal.views.contentoutline.ContentOutlineMessages;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-
-/**
- * Main class for the Content Outline View.
- * <p>
- * This standard view has id <code>"org.eclipse.ui.views.ContentOutline"</code>.
- * </p>
- * When a <b>content outline view</b> notices an editor being activated, it 
- * asks the editor whether it has a <b>content outline page</b> to include
- * in the outline view. This is done using <code>getAdapter</code>:
- * <pre>
- * IEditorPart editor = ...;
- * IContentOutlinePage outlinePage = (IContentOutlinePage) editor.getAdapter(IContentOutlinePage.class);
- * if (outlinePage != null) {
- *    // editor wishes to contribute outlinePage to content outline view
- * }
- * </pre>
- * If the editor supports a content outline page, the editor instantiates
- * and configures the page, and returns it. This page is then added to the 
- * content outline view (a pagebook which presents one page at a time) and 
- * immediately made the current page (the content outline view need not be
- * visible). If the editor does not support a content outline page, the content
- * outline view shows a special default page which makes it clear to the user
- * that the content outline view is disengaged. A content outline page is free
- * to report selection events; the content outline view forwards these events 
- * along to interested parties. When the content outline view notices a
- * different editor being activated, it flips to the editor's corresponding
- * content outline page. When the content outline view notices an editor being
- * closed, it destroys the editor's corresponding content outline page.
- * </p>
- * <p>
- * The workbench will automatically instantiate this class when a Content
- * Outline view is needed for a workbench window. This class was not intended
- * to be instantiated or subclassed by clients.
- * </p>
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ContentOutline extends PageBookView implements ISelectionProvider,
-        ISelectionChangedListener {
-
-
-
-    /**
-     * The plugin prefix.
-     */
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    /**
-     * Help context id used for the content outline view
-     * (value <code>"org.eclipse.ui.content_outline_context"</code>).
-     */
-    public static final String CONTENT_OUTLINE_VIEW_HELP_CONTEXT_ID = PREFIX
-            + "content_outline_context";//$NON-NLS-1$
-
-    /**
-     * Message to show on the default page.
-     */
-    private String defaultText =ContentOutlineMessages.ContentOutline_noOutline; 
-
-    /**
-     * Creates a content outline view with no content outline pages.
-     */
-    public ContentOutline() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        getSelectionProvider().addSelectionChangedListener(listener);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected IPage createDefaultPage(PageBook book) {
-        MessagePage page = new MessagePage();
-        initPage(page);
-        page.createControl(book);
-        page.setMessage(defaultText);
-        return page;
-    }
-
-    /**
-     * The <code>PageBookView</code> implementation of this <code>IWorkbenchPart</code>
-     * method creates a <code>PageBook</code> control with its default page showing.
-     */
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getPageBook(),
-                CONTENT_OUTLINE_VIEW_HELP_CONTEXT_ID);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected PageRec doCreatePage(IWorkbenchPart part) {
-        // Try to get an outline page.
-        Object obj = ViewsPlugin.getAdapter(part, IContentOutlinePage.class, false);
-        if (obj instanceof IContentOutlinePage) {
-            IContentOutlinePage page = (IContentOutlinePage) obj;
-            if (page instanceof IPageBookViewPage) {
-				initPage((IPageBookViewPage) page);
-			}
-            page.createControl(getPageBook());
-            return new PageRec(part, page);
-        }
-        // There is no content outline
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected void doDestroyPage(IWorkbenchPart part, PageRec rec) {
-        IContentOutlinePage page = (IContentOutlinePage) rec.page;
-        page.dispose();
-        rec.dispose();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable.
-     */
-    public Object getAdapter(Class key) {
-        if (key == IContributedContentsView.class) {
-			return new IContributedContentsView() {
-                public IWorkbenchPart getContributingPart() {
-                    return getContributingEditor();
-                }
-            };
-		}
-        return super.getAdapter(key);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected IWorkbenchPart getBootstrapPart() {
-        IWorkbenchPage page = getSite().getPage();
-        if (page != null) {
-			return page.getActiveEditor();
-		}
-
-        return null;
-    }
-
-    /**
-     * Returns the editor which contributed the current 
-     * page to this view.
-     *
-     * @return the editor which contributed the current page
-     * or <code>null</code> if no editor contributed the current page
-     */
-    private IWorkbenchPart getContributingEditor() {
-        return getCurrentContributingPart();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public ISelection getSelection() {
-        // get the selection from the selection provider
-        return getSelectionProvider().getSelection();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     * We only want to track editors.
-     */
-    protected boolean isImportant(IWorkbenchPart part) {
-        //We only care about editors
-        return (part instanceof IEditorPart);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     * Treat this the same as part activation.
-     */
-    public void partBroughtToTop(IWorkbenchPart part) {
-        partActivated(part);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        getSelectionProvider().removeSelectionChangedListener(listener);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionChangedListener.
-     */
-    public void selectionChanged(SelectionChangedEvent event) {
-        getSelectionProvider().selectionChanged(event);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void setSelection(ISelection selection) {
-        getSelectionProvider().setSelection(selection);
-    }
-
-    /**
-     * The <code>ContentOutline</code> implementation of this <code>PageBookView</code> method
-     * extends the behavior of its parent to use the current page as a selection provider.
-     * 
-     * @param pageRec the page record containing the page to show
-     */
-    protected void showPageRec(PageRec pageRec) {
-        IPageSite pageSite = getPageSite(pageRec.page);
-        ISelectionProvider provider = pageSite.getSelectionProvider();
-        if (provider == null && (pageRec.page instanceof IContentOutlinePage)) {
-			// This means that the page did not set a provider during its initialization 
-            // so for backward compatibility we will set the page itself as the provider.
-            pageSite.setSelectionProvider((IContentOutlinePage) pageRec.page);
-		}
-        super.showPageRec(pageRec);
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java
deleted file mode 100644
index 5bf036c..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/ContentOutlinePage.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.contentoutline;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.part.Page;
-
-/**
- * An abstract base class for content outline pages.
- * <p>
- * Clients who are defining an editor may elect to provide a corresponding
- * content outline page. This content outline page will be presented to the
- * user via the standard Content Outline View (the user decides whether their
- * workbench window contains this view) whenever that editor is active.
- * This class should be subclassed.
- * </p>
- * <p>
- * Internally, each content outline page consists of a standard tree viewer; 
- * selections made in the tree viewer are reported as selection change events 
- * by the page (which is a selection provider). The tree viewer is not created 
- * until <code>createPage</code> is called; consequently, subclasses must extend
- * <code>createControl</code> to configure the tree viewer with a proper content 
- * provider, label provider, and input element.
- * </p>
- * <p>
- * Note that those wanting to use a control other than internally created
- * <code>TreeViewer</code> will need to implement 
- * <code>IContentOutlinePage</code> directly rather than subclassing this class.
- * </p> 
- */
-public abstract class ContentOutlinePage extends Page implements
-        IContentOutlinePage, ISelectionChangedListener {
-    private ListenerList selectionChangedListeners = new ListenerList();
-
-    private TreeViewer treeViewer;
-
-    /**
-     * Create a new content outline page.
-     */
-    protected ContentOutlinePage() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        selectionChangedListeners.add(listener);
-    }
-
-    /**
-     * The <code>ContentOutlinePage</code> implementation of this 
-     * <code>IContentOutlinePage</code> method creates a tree viewer. Subclasses
-     * must extend this method configure the tree viewer with a proper content 
-     * provider, label provider, and input element.
-     * @param parent
-     */
-    public void createControl(Composite parent) {
-        treeViewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL
-                | SWT.V_SCROLL);
-        treeViewer.addSelectionChangedListener(this);
-    }
-
-    /**
-     * Fires a selection changed event.
-     *
-     * @param selection the new selection
-     */
-    protected void fireSelectionChanged(ISelection selection) {
-        // create an event
-        final SelectionChangedEvent event = new SelectionChangedEvent(this,
-                selection);
-
-        // fire the event
-        Object[] listeners = selectionChangedListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
-            SafeRunner.run(new SafeRunnable() {
-                public void run() {
-                    l.selectionChanged(event);
-                }
-            });
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPage (and Page).
-     */
-    public Control getControl() {
-        if (treeViewer == null) {
-			return null;
-		}
-        return treeViewer.getControl();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public ISelection getSelection() {
-        if (treeViewer == null) {
-			return StructuredSelection.EMPTY;
-		}
-        return treeViewer.getSelection();
-    }
-
-    /**
-     * Returns this page's tree viewer.
-     *
-     * @return this page's tree viewer, or <code>null</code> if 
-     *   <code>createControl</code> has not been called yet
-     */
-    protected TreeViewer getTreeViewer() {
-        return treeViewer;
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.part.IPageBookViewPage#init(org.eclipse.ui.part.IPageSite)
-     */
-    public void init(IPageSite pageSite) {
-        super.init(pageSite);
-        pageSite.setSelectionProvider(this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        selectionChangedListeners.remove(listener);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionChangeListener.
-     * Gives notification that the tree selection has changed.
-     */
-    public void selectionChanged(SelectionChangedEvent event) {
-        fireSelectionChanged(event.getSelection());
-    }
-
-    /**
-     * Sets focus to a part in the page.
-     */
-    public void setFocus() {
-        treeViewer.getControl().setFocus();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionProvider.
-     */
-    public void setSelection(ISelection selection) {
-        if (treeViewer != null) {
-			treeViewer.setSelection(selection);
-		}
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.java
deleted file mode 100644
index 6893210..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/IContentOutlinePage.java
+++ /dev/null
@@ -1,49 +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.ui.views.contentoutline;
-
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.part.IPage;
-
-/**
- * Marker-style interface for a content outline page. This interface defines
- * the minimum requirement for pages within the content outline view, namely
- * they must be pages (implement <code>IPage</code>) and provide selections
- * (implement <code>ISelectionProvider</code>).
- * <p>
- * Access to a content outline page begins when an editor is activated. When
- * activation occurs, the content outline view will ask the editor for its
- * content outline page. This is done by invoking 
- * <code>getAdapter(IContentOutlinePage.class)</code> on the editor.  
- * If the editor returns a page, the view then creates the controls for that
- * page (using <code>createControl</code>) and makes the page visible.
- * </p>
- * <p>
- * Clients may implement this interface from scratch, or subclass the
- * abstract base class <code>ContentOutlinePage</code>.
- * </p>
- * <p> 
- * Note that this interface extends <code>ISelectionProvider</code>.
- * This is no longer required in the case of implementors who also 
- * implement <code>IPageBookViewPage</code> (or extend <code>Page</code>)
- * as they are now passed an <code>IPageSite</code> during their initialization 
- * and this site can be configured with a selection provider. 
- * However to avoid a breaking change 
- *  1) this interface will continue to extend ISelectionProvider 
- *  2) if an IContentOutlinePage does not set a selection provider for its 
- * site, the ContentOutline will continue to use the page itself for 
- * this purpose. 
- * </p> 
- *
- * @see ContentOutlinePage
- */
-public interface IContentOutlinePage extends IPage, ISelectionProvider {
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/package.html b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/package.html
deleted file mode 100644
index 70d2165..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/contentoutline/package.html
+++ /dev/null
@@ -1,14 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the standard Content Outline view which can
-show the active editor's custom outline for the document being edited.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CategoriesAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CategoriesAction.java
deleted file mode 100644
index 6e949e3..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CategoriesAction.java
+++ /dev/null
@@ -1,43 +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.views.properties;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action hides or shows categories in the <code>PropertySheetViewer</code>.
- */
-/*package*/class CategoriesAction extends PropertySheetAction {
-    /**
-     * Creates the Categories action. This action is used to show
-     * or hide categories properties.
-     * @param viewer the viewer
-     * @param name the name
-     */
-    public CategoriesAction(PropertySheetViewer viewer, String name) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem()
-                .setHelp(this, IPropertiesHelpContextIds.CATEGORIES_ACTION);
-    }
-
-    /**
-     * Toggles the display of categories for the properties.
-     */
-    public void run() {
-        PropertySheetViewer ps = getPropertySheet();
-        ps.deactivateCellEditor();
-        if (isChecked()) {
-            ps.showCategories();
-        } else {
-            ps.hideCategories();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.java
deleted file mode 100644
index 4d001c7..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ColorPropertyDescriptor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColorCellEditor;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Descriptor for a property that has a color value which should be edited
- * with a color cell editor.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IPropertyDescriptor pd = new ColorPropertyDescriptor("fg", "Foreground Color");
- * </pre>
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ColorPropertyDescriptor extends PropertyDescriptor {
-    /**
-     * Creates an property descriptor with the given id and display name.
-     * 
-     * @param id the id of the property
-     * @param displayName the name to display for the property
-     */
-    public ColorPropertyDescriptor(Object id, String displayName) {
-        super(id, displayName);
-    }
-
-    /**
-     * The <code>ColorPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method creates and returns a new
-     * <code>ColorCellEditor</code>.
-     * <p>
-     * The editor is configured with the current validator if there is one.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        CellEditor editor = new ColorCellEditor(parent);
-        if (getValidator() != null) {
-			editor.setValidator(getValidator());
-		}
-        return editor;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java
deleted file mode 100644
index ff41832..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxLabelProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-import org.eclipse.jface.viewers.LabelProvider;
-
-/**
- * An <code>ILabelProvider</code> that assists in rendering labels for 
- * <code>ComboBoxPropertyDescriptors</code>.  The label for a given 
- * <code>Integer</code> value is the <code>String</code> at the value in 
- * the provided values array.  
- * 
- * @since 3.0
- */
-public class ComboBoxLabelProvider extends LabelProvider {
-
-    /**
-     * The array of String labels.
-     */
-    private String[] values;
-
-    /**
-     * @param values the possible label values that this 
-     * <code>ILabelProvider</code> may return.
-     */
-    public ComboBoxLabelProvider(String[] values) {
-        this.values = values;
-    }
-
-    /**
-     * @return the possible label values that this 
-     * <code>ILabelProvider</code> may return.
-     */
-    public String[] getValues() {
-        return values;
-    }
-
-    /**
-     * @param values the possible label values that this 
-     * <code>ILabelProvider</code> may return.
-     */
-    public void setValues(String[] values) {
-        this.values = values;
-    }
-
-    /**
-     * Returns the <code>String</code> that maps to the given 
-     * <code>Integer</code> offset in the values array.
-     * 
-     * @param element an <code>Integer</code> object whose value is a valid 
-     * location within the values array of the receiver
-     * @return a <code>String</code> from the provided values array, or the 
-     * empty <code>String</code> 
-     * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-     */
-    public String getText(Object element) {
-        if (element == null) {
-            return ""; //$NON-NLS-1$
-        }
-
-        if (element instanceof Integer) {
-            int index = ((Integer) element).intValue();
-            if (index >= 0 && index < values.length) {
-                return values[index];
-            }
-			return ""; //$NON-NLS-1$
-        }
-
-        return ""; //$NON-NLS-1$
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.java
deleted file mode 100644
index c431968..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ComboBoxPropertyDescriptor.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Descriptor for a property that has a value which should be edited
- * with a combo box cell editor.  This class provides a default 
- * <code>ILabelProvider</code> that will render the label of the given 
- * descriptor as the <code>String</code> found in the labels array at the 
- * currently selected index.
- * <p>
- * The value of the property is a 0-based <code>Integer</code> index into
- * the labels array. 
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * String[] values = {"Top left", "Top right", "Bottom left", "Bottom right"};
- * IPropertyDescriptor pd = new ComboBoxPropertyDescriptor("origin", "Origin", values);
- * </pre>
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class ComboBoxPropertyDescriptor extends PropertyDescriptor {
-
-    /**
-     * The labels to display in the combo box
-     */
-    private String[] labels;
-
-    /**
-     * Creates an property descriptor with the given id, display name, and list
-     * of value labels to display in the combo box cell editor.
-     * 
-     * @param id the id of the property
-     * @param displayName the name to display for the property
-     * @param labelsArray the labels to display in the combo box
-     */
-    public ComboBoxPropertyDescriptor(Object id, String displayName,
-            String[] labelsArray) {
-        super(id, displayName);
-        labels = labelsArray;
-    }
-
-    /**
-     * The <code>ComboBoxPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method creates and returns a new
-     * <code>ComboBoxCellEditor</code>.
-     * <p>
-     * The editor is configured with the current validator if there is one.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        CellEditor editor = new ComboBoxCellEditor(parent, labels,
-                SWT.READ_ONLY);
-        if (getValidator() != null) {
-			editor.setValidator(getValidator());
-		}
-        return editor;
-    }
-
-    /**
-     * The <code>ComboBoxPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setProvider</code> method or, if no value has been set
-     * it returns a <code>ComboBoxLabelProvider</code> created from the 
-     * valuesArray of this <code>ComboBoxPropertyDescriptor</code>.
-     *
-     * @see #setLabelProvider(ILabelProvider)
-     */
-    public ILabelProvider getLabelProvider() {
-        if (isLabelProviderSet()) {
-			return super.getLabelProvider();
-		}
-		return new ComboBoxLabelProvider(labels);
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CopyPropertyAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CopyPropertyAction.java
deleted file mode 100644
index c851042..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/CopyPropertyAction.java
+++ /dev/null
@@ -1,98 +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.ui.views.properties;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-
-/**
- * Copies a property to the clipboard.
- */
-/*package*/class CopyPropertyAction extends PropertySheetAction {
-    /**
-     * System clipboard
-     */
-    private Clipboard clipboard;
-
-    /**
-     * Creates the action.
-     * 
-     * @param viewer the viewer
-     * @param name the name
-     * @param clipboard the clipboard
-     */
-    public CopyPropertyAction(PropertySheetViewer viewer, String name,
-            Clipboard clipboard) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-                IPropertiesHelpContextIds.COPY_PROPERTY_ACTION);
-        this.clipboard = clipboard;
-    }
-
-    /**
-     * Performs this action.
-     */
-    public void run() {
-        // Get the selected property
-        IStructuredSelection selection = (IStructuredSelection) getPropertySheet()
-                .getSelection();
-        if (selection.isEmpty()) {
-			return;
-		}
-        // Assume single selection
-        IPropertySheetEntry entry = (IPropertySheetEntry) selection
-                .getFirstElement();
-
-        // Place text on the clipboard
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(entry.getDisplayName());
-        buffer.append("\t"); //$NON-NLS-1$
-        buffer.append(entry.getValueAsString());
-
-        setClipboard(buffer.toString());
-    }
-
-    /** 
-     * Updates enablement based on the current selection.
-     * 
-     * @param sel the selection
-     */
-    public void selectionChanged(IStructuredSelection sel) {
-        setEnabled(!sel.isEmpty());
-    }
-
-    private void setClipboard(String text) {
-        try {
-            Object[] data = new Object[] { text };
-            Transfer[] transferTypes = new Transfer[] { TextTransfer
-                    .getInstance() };
-            clipboard.setContents(data, transferTypes);
-        } catch (SWTError e) {
-            if (e.code != DND.ERROR_CANNOT_SET_CLIPBOARD) {
-				throw e;
-			}
-            if (MessageDialog.openQuestion(getPropertySheet().getControl()
-                    .getShell(), PropertiesMessages.CopyToClipboardProblemDialog_title,
-                    PropertiesMessages.CopyToClipboardProblemDialog_message)) {
-				setClipboard(text);
-			}
-        }
-    }
-}
-
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/DefaultsAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/DefaultsAction.java
deleted file mode 100644
index f14cc19..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/DefaultsAction.java
+++ /dev/null
@@ -1,43 +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.views.properties;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action resets the <code>PropertySheetViewer</code> values back
- * to the default values.
- *
- * [Issue: should listen for selection changes in the viewer and set enablement]
- */
-/*package*/class DefaultsAction extends PropertySheetAction {
-    /**
-     * Create the Defaults action. This action is used to set
-     * the properties back to their default values.
-     * 
-     * @param viewer the viewer
-     * @param name the name
-     */
-    public DefaultsAction(PropertySheetViewer viewer, String name) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IPropertiesHelpContextIds.DEFAULTS_ACTION);
-    }
-
-    /**
-     * Reset the properties to their default values.
-     */
-    public void run() {
-        getPropertySheet().deactivateCellEditor();
-        getPropertySheet().resetProperties();
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/FilterAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/FilterAction.java
deleted file mode 100644
index e9c344d..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/FilterAction.java
+++ /dev/null
@@ -1,46 +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.views.properties;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This action hides or shows expert properties in the <code>PropertySheetViewer</code>.
- */
-/*package*/class FilterAction extends PropertySheetAction {
-    /**
-     * Create the Filter action. This action is used to show
-     * or hide expert properties.
-     * 
-     * @param viewer the viewer
-     * @param name the name
-     */
-    public FilterAction(PropertySheetViewer viewer, String name) {
-        super(viewer, name);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IPropertiesHelpContextIds.FILTER_ACTION);
-    }
-
-    /**
-     * Toggle the display of expert properties.
-     */
-
-    public void run() {
-        PropertySheetViewer ps = getPropertySheet();
-        ps.deactivateCellEditor();
-        if (isChecked()) {
-            ps.showExpert();
-        } else {
-            ps.hideExpert();
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.java
deleted file mode 100644
index fffb571..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/ICellEditorActivationListener.java
+++ /dev/null
@@ -1,33 +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.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-
-/**
- * A listener which is notified when a cell editor is 
- * activated/deactivated
- */
-/*package*/interface ICellEditorActivationListener {
-    /**
-     * Notifies that the cell editor has been activated
-     *
-     * @param cellEditor the cell editor which has been activated
-     */
-    public void cellEditorActivated(CellEditor cellEditor);
-
-    /**
-     * Notifies that the cell editor has been deactivated
-     *
-     * @param cellEditor the cell editor which has been deactivated
-     */
-    public void cellEditorDeactivated(CellEditor cellEditor);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.java
deleted file mode 100644
index 3d17781..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertiesHelpContextIds.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Help context ids for the properties view.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- * </p>
- * 
- */
-/*package*/interface IPropertiesHelpContextIds {
-    public static final String PREFIX = PlatformUI.PLUGIN_ID + "."; //$NON-NLS-1$
-
-    // Actions
-    public static final String CATEGORIES_ACTION = PREFIX
-            + "properties_categories_action_context"; //$NON-NLS-1$
-
-    public static final String DEFAULTS_ACTION = PREFIX
-            + "properties_defaults_action_context"; //$NON-NLS-1$
-
-    public static final String FILTER_ACTION = PREFIX
-            + "properties_filter_action_context"; //$NON-NLS-1$
-
-    public static final String COPY_PROPERTY_ACTION = PREFIX
-            + "properties_copy_action_context"; //$NON-NLS-1$
-
-    public static final String PIN_ACTION = PREFIX
-    		+ "properties_pin_action_context"; //$NON-NLS-1$;
-    
-    // Views
-    public static final String PROPERTY_SHEET_VIEW = PREFIX
-            + "property_sheet_view_context"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertyDescriptor.java
deleted file mode 100644
index 40d7c9b..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertyDescriptor.java
+++ /dev/null
@@ -1,151 +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.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A descriptor for a property to be presented by a standard property sheet page
- * (<code>PropertySheetPage</code>). These descriptors originate with property 
- * sources (<code>IPropertySource</code>).
- * <p>
- * A property descriptor carries the following information:
- * <ul>
- *   <li>property id (required)</li>
- *   <li>display name (required)</li>
- *   <li>brief description of the property (optional)</li>
- *   <li>category for grouping related properties (optional)</li>
- *   <li>label provider used to display the property value (optional)</li>
- *   <li>cell editor for changing the property value (optional)</li>
- *   <li>help context id (optional)</li>
- * </ul>
- * </p>
- * <p>
- * Clients may implement this interface to provide specialized property 
- * descriptors; however, there are standard implementations declared in
- * this package that take care of the most common cases:
- * <ul>
- *   <li><code>PropertyDescriptor - read-only property</li>
- *   <li><code>TextPropertyDescriptor</code> - edits with a 
- *      <code>TextCellEditor</code></li>
- *   <li><code>CheckboxPropertyDescriptor - edits with a 
- *      <code>CheckboxCellEditor</code></code></li>
- *   <li><code>ComboBoxPropertyDescriptor - edits with a
- *      <code>ComboBoxCellEditor</code></code></li>
- *   <li><code>ColorPropertyDescriptor - edits with a 
- *      <code>ColorCellEditor</code></code></li>
- * </ul>
- * </p>
- *
- * @see IPropertySource#getPropertyDescriptors
- */
-public interface IPropertyDescriptor {
-    /**
-     * Creates and returns a new cell editor for editing this property. Returns 
-     * <code>null</code> if the property is not editable.
-     *
-     * @param parent the parent widget for the cell editor
-     * @return the cell editor for this property, or <code>null</code> if this
-     *  property cannot be edited
-     */
-    public CellEditor createPropertyEditor(Composite parent);
-
-    /**
-     * Returns the name of the category to which this property belongs. Properties
-     * belonging to the same category are grouped together visually. This localized 
-     * string is shown to the user
-     * 
-     * @return the category name, or <code>null</code> if the default category is to
-     *   be used
-     */
-    public String getCategory();
-
-    /**
-     * Returns a brief description of this property. This localized string is shown 
-     * to the user when this property is selected.
-     * 
-     * @return a brief description, or <code>null</code> if none
-     */
-    public String getDescription();
-
-    /**
-     * Returns the display name for this property. This localized string is shown to
-     * the user as the name of this property.
-     * 
-     * @return a displayable name
-     */
-    public String getDisplayName();
-
-    /**
-     * Returns a list of filter types to which this property belongs.
-     * The user is able to toggle the filters to show/hide properties belonging to
-     * a filter type.
-     * <p>
-     * Valid values for these flags are declared as constants on 
-     *  <code>IPropertySheetEntry</code>
-     * </p> 
-     * @return a list of filter types to which this property belongs, or
-     *   <code>null</code> if none
-     */
-    public String[] getFilterFlags();
-
-    /**
-     * Returns the help context id for this property or 
-     * <code>null</code> if this property has no help context id.
-     * <p>
-     * NOTE: Help support system API's changed since 2.0 and arrays
-     * of contexts are no longer supported.
-     * </p>
-     * <p>
-     * Thus the only valid non-<code>null</code> return type for this method
-     * is a <code>String</code> representing a context id. The previously
-     * valid return types are deprecated. The plural name for this method
-     * is unfortunate.
-     * </p>
-     * 
-     * @return the help context id for this entry
-     */
-    public Object getHelpContextIds();
-
-    /**
-     * Returns the id for this property. This object is
-     * used internally to distinguish one property descriptor 
-     * from another.
-     *
-     * @return the property id
-     */
-    public Object getId();
-
-    /**
-     * Returns the label provider for this property. The label provider is used
-     * to obtain the text (and possible image) for displaying the <it>value</it>
-     * of this property.
-     *
-     * @return the label provider used to display this property
-     */
-    public ILabelProvider getLabelProvider();
-
-    /**
-     * Returns whether this property descriptor and the given one are compatible.
-     * <p>
-     * The property sheet uses this method during multiple selection to determine
-     * whether two property descriptors with the same id are in fact the same 
-     * property and can be displayed as a single entry in the property sheet.
-     * </p>
-     *
-     * @param anotherProperty the other property descriptor 
-     * @return <code>true</code> if the property descriptors are compatible, and 
-     *   <code>false</code> otherwise
-     */
-    public boolean isCompatibleWith(IPropertyDescriptor anotherProperty);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java
deleted file mode 100644
index 9d67f17..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntry.java
+++ /dev/null
@@ -1,170 +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.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * <code>IPropertySheetEntry</code> describes the model interface for the
- * property sheet.
- * <p>
- * May be implemented when supplying a custom root entry to a property page.
- * </p>
- */
-public interface IPropertySheetEntry {
-
-    /**
-     * The filter id for expert properties
-     */
-    public String FILTER_ID_EXPERT = "org.eclipse.ui.views.properties.expert"; //$NON-NLS-1$
-
-    /**
-     * Adds the given listener to this entry's collection of listeners.
-     * 
-     * @param listener
-     *            the listener to add
-     */
-    public void addPropertySheetEntryListener(
-            IPropertySheetEntryListener listener);
-
-    /**
-     * Apply the current cell editor value.
-     */
-    public void applyEditorValue();
-
-    /**
-     * Called when the entry is no longer needed
-     */
-    public void dispose();
-
-    /**
-     * Returns the entry's category.
-     * 
-     * @return the entry's category
-     */
-    public String getCategory();
-
-    /**
-     * Returns the child entries for this entry.
-     * 
-     * @return the child entries for this entry
-     */
-    public IPropertySheetEntry[] getChildEntries();
-
-    /**
-     * Return a short description of the property sheet entry. Typically this
-     * description is shown in a status line when the entry is selected.
-     * 
-     * @return the entry's description
-     */
-    public String getDescription();
-
-    /**
-     * Returns the name used to display the property.
-     * 
-     * @return the name used to display the property
-     */
-    public String getDisplayName();
-
-    /**
-     * Return the <code>CellEditor</code> used to edit the property.
-     * 
-     * @param parent
-     *            the parent widget for the editor
-     * @return the <code>CellEditor</code> used to edit the property
-     */
-    CellEditor getEditor(Composite parent);
-
-    /**
-     * Returns the error text to display if the value is invalid.
-     * 
-     * @return the error text to display when the value is invalid or
-     *         <code>null</code>
-     */
-    public String getErrorText();
-
-    /**
-     * Return the filter ids used to group entries into levels such as Expert.
-     * Valid values are defined as constants on this interface.
-     * 
-     * @return the filter ids used to group entries into levels such as Expert.
-     */
-    public String[] getFilters();
-
-    /**
-     * Returns the help context id for this entry, or <code>null</code> if
-     * this entry has no help context id.
-     * <p>
-     * NOTE: Help support system API's changed since 2.0 and arrays of contexts
-     * are no longer supported.
-     * </p>
-     * <p>
-     * Thus the only valid non- <code>null</code> return type for this method
-     * is a <code>String</code> representing a context id. The previously
-     * valid return types are deprecated. The plural name for this method is
-     * unfortunate.
-     * </p>
-     * 
-     * @return the help context id for this entry
-     */
-    public Object getHelpContextIds();
-
-    /**
-     * Returns the image for the property value, if there is one. This image is
-     * managed by the entry it came from. Callers of this method must never
-     * dispose the returned image.
-     * 
-     * @return the image for this property value or <code>null</code>
-     */
-    public Image getImage();
-
-    /**
-     * Returns the value of the objects expressed as a String.
-     * 
-     * @return the value of the objects expressed as a String
-     */
-    public String getValueAsString();
-
-    /**
-     * Returns <code>true</code> if the entry has children.
-     * 
-     * @return <code>true</code> if the entry has children
-     */
-    public boolean hasChildEntries();
-
-    /**
-     * Removes the given listener from this entry's collection of listeners.
-     * 
-     * @param listener
-     *            the listener to remove
-     */
-    public void removePropertySheetEntryListener(
-            IPropertySheetEntryListener listener);
-
-    /**
-     * Resets the property value to its default value if it has been changed.
-     * <p>
-     * Does nothing if the notion of a default value is not meaningful for 
-     * the property.
-     * </p>
-     */
-    void resetPropertyValue();
-
-    /**
-     * Sets the objects which represent the property values for this entry. In
-     * the case of the root entry these objects are the input to the viewer.
-     * 
-     * @param values the values for this entry
-     */
-    public void setValues(Object[] values);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.java
deleted file mode 100644
index 12b79d2..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetEntryListener.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-/**
- * Listener for changes in objects of type 
- * <code>IPropertySheetEntry</code>.
- * <p>
- * This interface is public since it appears in the api
- * of <code>IPropertySheetEntry</code>.  It is not intended
- * to be implemented outside of this package.
- * <p>
- * @noimplement This interface is not intended to be implemented by clients.
- */
-public interface IPropertySheetEntryListener {
-    /**
-     * A node's children have changed (children added or removed) 
-     *
-     * @param node the node whose's children have changed
-     */
-    void childEntriesChanged(IPropertySheetEntry node);
-
-    /**
-     * A entry's error message has changed
-     *
-     * @param entry the entry whose's error message has changed
-     */
-    void errorMessageChanged(IPropertySheetEntry entry);
-
-    /**
-     * A entry's value has changed 
-     *
-     * @param entry the entry whose's value has changed
-     */
-    void valueChanged(IPropertySheetEntry entry);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java
deleted file mode 100644
index f43126a..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySheetPage.java
+++ /dev/null
@@ -1,30 +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.ui.views.properties;
-
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.part.IPage;
-
-/**
- * Interface for a property sheet page that appears in a property sheet view.
- * This interface defines the minimum requirement for pages within the
- * property sheet view, namely they must be pages (implement <code>IPage</code>)
- * be prepared to contribute actions to the property sheet view's tool bar
- * and status line, and listen for selection changes in the active part.
- * <p>
- * Clients may implement this interface from scratch if the property sheet
- * viewer's default page is unsuitable for displaying a part's properties.
- * </p>
- *
- * @see PropertySheetPage
- */
-public interface IPropertySheetPage extends IPage, ISelectionListener {
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource.java
deleted file mode 100644
index 0bbf203..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource.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
- *     Gunnar Wagenknecht - fix for bug 21756 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=21756)
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-/**
- * Interface to an object which is capable of supplying properties for display
- * by the standard property sheet page implementation (<code>PropertySheetPage</code>).
- * <p>
- * This interface should be implemented by clients.
- * <code>PropertySheetPage</code> discovers the properties to display from
- * currently selected elements. Elements that implement
- * <code>IPropertySource</code> directly are included, as are elements that
- * implement <code>IAdaptable</code> and have an <code>IPropertySource</code>
- * adapter. Clients should implement this interface for any newly-defined
- * elements that are to have properties displayable by
- * <code>PropertySheetPage</code>. Note that in the latter case, the client
- * will also need to register a suitable adapter factory with the platform's
- * adapter manager (<code>Platform.getAdapterManager</code>).
- * </p>
- * 
- * @see org.eclipse.core.runtime.IAdaptable
- * @see org.eclipse.core.runtime.Platform#getAdapterManager()
- * @see org.eclipse.ui.views.properties.PropertySheetPage
- * @see org.eclipse.ui.views.properties.IPropertySource2
- */
-public interface IPropertySource {
-
-	/**
-	 * Returns a value for this property source that can be edited in a property
-	 * sheet.
-	 * <p>
-	 * This value is used when this <code>IPropertySource</code> is appearing
-	 * in the property sheet as the value of a property of some other
-	 * <code>IPropertySource</code>
-	 * </p>
-	 * <p>
-	 * This value is passed as the input to a cell editor opening on an
-	 * <code>IPropertySource</code>.
-	 * </p>
-	 * <p>
-	 * This value is also used when an <code>IPropertySource</code> is being
-	 * used as the value in a <code>setPropertyValue</code> message. The
-	 * reciever of the message would then typically use the editable value to
-	 * update the original property source or construct a new instance.
-	 * </p>
-	 * <p>
-	 * For example an email address which is a property source may have an
-	 * editable value which is a string so that it can be edited in a text cell
-	 * editor. The email address would also have a constructor or setter that
-	 * takes the edited string so that an appropriate instance can be created or
-	 * the original instance modified when the edited value is set.
-	 * </p>
-	 * <p>
-	 * This behavior is important for another reason. When the property sheet is
-	 * showing properties for more than one object (multiple selection), a
-	 * property sheet entry will display and edit a single value (typically
-	 * coming from the first selected object). After a property has been edited
-	 * in a cell editor, the same value is set as the property value for all of
-	 * the objects. This is fine for primitive types but otherwise all of the
-	 * objects end up with a reference to the same value. Thus by creating an
-	 * editable value and using it to update the state of the original property
-	 * source object, one is able to edit several property source objects at
-	 * once (multiple selection).
-	 * 
-	 * @return a value that can be edited
-	 */
-	public Object getEditableValue();
-
-	/**
-	 * Returns the list of property descriptors for this property source. The
-	 * <code>getPropertyValue</code> and <code>setPropertyValue</code>
-	 * methods are used to read and write the actual property values by
-	 * specifying the property ids from these property descriptors.
-	 * <p>
-	 * Implementors should cache the descriptors as they will be asked for the
-	 * descriptors with any edit/update. Since descriptors provide cell editors,
-	 * returning the same descriptors if possible allows for efficient updating.
-	 * </p>
-	 * 
-	 * @return the property descriptors
-	 */
-	public IPropertyDescriptor[] getPropertyDescriptors();
-
-	/**
-	 * Returns the value of the property with the given id if it has one.
-	 * Returns <code>null</code> if the property's value is <code>null</code>
-	 * value or if this source does not have the specified property.
-	 * 
-	 * @see #setPropertyValue
-	 * @param id
-	 *            the id of the property being set
-	 * @return the value of the property, or <code>null</code>
-	 */
-	public Object getPropertyValue(Object id);
-
-	/**
-	 * Returns whether the value of the property with the given id has changed
-	 * from its default value. Returns <code>false</code> if this source does
-	 * not have the specified property.
-	 * <p>
-	 * If the notion of default value is not meaningful for the specified
-	 * property then <code>false</code> is returned.
-	 * </p>
-	 * 
-	 * @param id
-	 *            the id of the property
-	 * @return <code>true</code> if the value of the specified property has
-	 *         changed from its original default value, <code>false</code> if
-	 *         the specified property does not have a meaningful default value,
-	 *         and <code>false</code> if this source does not have the
-	 *         specified property
-	 * @see IPropertySource2#isPropertyResettable(Object)
-	 * @see #resetPropertyValue(Object)
-	 */
-	public boolean isPropertySet(Object id);
-
-	/**
-	 * Resets the property with the given id to its default value if possible.
-	 * <p>
-	 * Does nothing if the notion of a default value is not meaningful for the
-	 * specified property, or if the property's value cannot be changed, or if
-	 * this source does not have the specified property.
-	 * </p>
-	 * <p>
-	 * Callers will check if this <code>IPropertySource</code> implements
-	 * <code>IPropertySource2</code> and this method will only be called if
-	 * <code>IPropertySource2#isPropertyResettable(Object)</code> returns
-	 * <code>true</code> for the property with the given id.
-	 * </p>
-	 * 
-	 * @param id
-	 *            the id of the property being reset
-	 * @see #isPropertySet(Object)
-	 * @see IPropertySource2#isPropertyResettable(Object)
-	 */
-	public void resetPropertyValue(Object id);
-
-	/**
-	 * Sets the property with the given id if possible. Does nothing if the
-	 * property's value cannot be changed or if this source does not have the
-	 * specified property.
-	 * <p>
-	 * In general, a property source should not directly reference the value
-	 * parameter unless it is an atomic object that can be shared, such as a
-	 * string.
-	 * </p>
-	 * <p>
-	 * An important reason for this is that several property sources with
-	 * compatible descriptors could be appearing in the property sheet at the
-	 * same time. An editor produces a single edited value which is passed as
-	 * the value parameter of this message to all the property sources. Thus to
-	 * avoid a situation where all of the property sources reference the same
-	 * value they should use the value parameter to create a new instance of the
-	 * real value for the given property.
-	 * </p>
-	 * <p>
-	 * There is another reason why a level of indirection is useful. The real
-	 * value of property may be a type that cannot be edited with a standard
-	 * cell editor. However instead of returning the real value in
-	 * <code>getPropertyValue</code>, the value could be converted to a
-	 * <code>String</code> which could be edited with a standard cell editor.
-	 * The edited value will be passed to this method which can then turn it
-	 * back into the real property value.
-	 * </p>
-	 * <p>
-	 * Another variation on returning a value other than the real property value
-	 * in <code>getPropertyValue</code> is to return a value which is an
-	 * <code>IPropertySource</code> (or for which the property sheet can
-	 * obtain an <code>IPropertySource</code>). In this case the value to
-	 * edit is obtained from the child property source using
-	 * <code>getEditableValue</code>. It is this editable value that will be
-	 * passed back via this method when it has been editted
-	 * </p>
-	 * 
-	 * @see #getPropertyValue
-	 * @see #getEditableValue
-	 * @param id
-	 *            the id of the property being set
-	 * @param value
-	 *            the new value for the property; <code>null</code> is allowed
-	 */
-	public void setPropertyValue(Object id, Object value);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource2.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource2.java
deleted file mode 100644
index ca973ae..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySource2.java
+++ /dev/null
@@ -1,68 +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:
- *     Gunnar Wagenknecht - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-/**
- * Extension to the standard <code>IPropertySource</code> interface.
- * <p>
- * This interface provides extended API to <code>IPropertySource</code> to
- * allow an easier indication of properties that have a default value and can be
- * resetted.
- * </p>
- * 
- * @since 3.0
- * @see org.eclipse.ui.views.properties.IPropertySource
- */
-public interface IPropertySource2 extends IPropertySource {
-
-    /**
-     * Returns whether the value of the property with the specified id is
-     * resettable to a default value.
-     * 
-     * @param id
-     *            the id of the property
-     * @return <code>true</code> if the property with the specified id has a
-     *         meaningful default value to which it can be resetted, and
-     *         <code>false</code> otherwise
-     * @see IPropertySource#resetPropertyValue(Object)
-     * @see IPropertySource#isPropertySet(Object)
-     */
-    boolean isPropertyResettable(Object id);
-
-    /**
-     * <code>IPropertySource2</code> overrides the specification of this <code>IPropertySource</code> 
-     * method to return <code>true</code> instead of <code>false</code> if the specified 
-     * property does not have a meaningful default value.
-     * <code>isPropertyResettable</code> will only be called if <code>isPropertySet</code> returns
-     * <code>true</code>.
-     * <p> 
-     * Returns whether the value of the property with the given id has changed
-     * from its default value. Returns <code>false</code> if this source does
-     * not have the specified property.
-     * </p>
-     * <p>
-     * If the notion of default value is not meaningful for the specified
-     * property then <code>true</code> is returned.
-     * </p>
-     * 
-     * @param id
-     *            the id of the property
-     * @return <code>true</code> if the value of the specified property has
-     *         changed from its original default value, <code>true</code> if
-     *         the specified property does not have a meaningful default value,
-     *         and <code>false</code> if this source does not have the
-     *         specified property
-     * @see IPropertySource2#isPropertyResettable(Object)
-     * @see #resetPropertyValue(Object)
-     * @since 3.1
-     */
-    public boolean isPropertySet(Object id);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySourceProvider.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySourceProvider.java
deleted file mode 100644
index 9b79b13..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/IPropertySourceProvider.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.ui.views.properties;
-
-/**
- * Interface used by {@link org.eclipse.ui.views.properties.PropertySheetEntry}
- * to obtain an {@link org.eclipse.ui.views.properties.IPropertySource} for a
- * given object.
- * <p>
- * This interface may be implemented by clients.
- * </p>
- */
-public interface IPropertySourceProvider {
-	
-	/**
-	 * Returns a property source for the given object.
-	 * 
-	 * @param object
-	 *            the object
-	 * @return the property source for the object passed in (maybe
-	 *         <code>null</code>)
-	 */
-	public IPropertySource getPropertySource(Object object);
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/NewPropertySheetHandler.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/NewPropertySheetHandler.java
deleted file mode 100644
index 3641422..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/NewPropertySheetHandler.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.ShowInContext;
-
-/**
- * @since 3.4
- */
-public class NewPropertySheetHandler extends AbstractHandler {
-
-	/**
-	 * Command id
-	 */
-	public static final String ID = "org.eclipse.ui.views.properties.NewPropertySheetCommand"; //$NON-NLS-1$
-
-	/**
-	 * Whether new PVs are pinned when newly opened
-	 */
-	private static final boolean PIN_NEW_PROPERTY_VIEW = Boolean.valueOf(System.getProperty("org.eclipse.ui.views.properties.pinNewPV", Boolean.FALSE.toString())).booleanValue(); //$NON-NLS-1$
-
-	/**
-	 * First tries to find a suitable instance to reuse for the given context,
-	 * then creates a new instance if necessary.
-	 * 
-	 * @param event
-	 * @return an instance for the given context
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchPart activePart = HandlerUtil.getActivePartChecked(event);
-
-		PropertyShowInContext context = getShowInContext(event);
-		try {
-			PropertySheet sheet = findPropertySheet(event, context);
-			sheet.show(context);
-			if (activePart instanceof PropertySheet) {
-				PropertySheet parent = (PropertySheet) activePart;
-				parent.setPinned(true);
-			} else if(!sheet.isPinned()) {
-				sheet.setPinned(PIN_NEW_PROPERTY_VIEW);
-			}
-		} catch (PartInitException e) {
-			throw new ExecutionException("Part could not be initialized", e); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * @param event
-	 *            {@link ExecutionEvent} for which the
-	 *            {@link PropertyShowInContext} is requested
-	 * @return a {@link PropertyShowInContext} containing the the
-	 *         {@link ISelection} and {@link IWorkbenchPart} for the given
-	 *         {@link ExecutionEvent}
-	 * @throws ExecutionException
-	 */
-	protected PropertyShowInContext getShowInContext(ExecutionEvent event)
-			throws ExecutionException {
-		IWorkbenchPart activePart = HandlerUtil.getActivePartChecked(event);
-		if (activePart instanceof PropertySheet) {
-			PropertySheet sheet = (PropertySheet) activePart;
-			return (PropertyShowInContext) sheet.getShowInContext();
-		}
-		IShowInSource adapter = (IShowInSource) activePart
-				.getAdapter(IShowInSource.class);
-		if (adapter != null) {
-			ShowInContext showInContext = adapter.getShowInContext();
-			return new PropertyShowInContext(activePart, showInContext);
-		}
-		return new PropertyShowInContext(activePart, HandlerUtil
-				.getShowInSelection(event));
-	}
-
-	/**
-	 * Returns a PropertySheet instance
-	 * 
-	 * @param event
-	 * @param context
-	 *            a {@link ShowInContext} to handle
-	 * @return a PropertySheet that can handle the given {@link ShowInContext}
-	 * @throws PartInitException
-	 * @throws ExecutionException
-	 */
-	protected PropertySheet findPropertySheet(ExecutionEvent event,
-			PropertyShowInContext context) throws PartInitException,
-			ExecutionException {
-		IWorkbenchPage page = HandlerUtil.getActivePartChecked(event).getSite()
-				.getPage();
-		String secondaryId = null;
-		if (HandlerUtil.getActivePart(event) instanceof PropertySheet) {
-			secondaryId = Long.toString(System.currentTimeMillis());
-		} else {
-			IViewReference[] refs = page.getViewReferences();
-			for (int i = 0; i < refs.length; i++) {
-				IViewReference viewReference = refs[i];
-				if (IPageLayout.ID_PROP_SHEET.equals(viewReference.getId())) {
-					secondaryId = Long.toString(System.currentTimeMillis());
-					PropertySheet sheet = (PropertySheet) viewReference
-							.getView(true);
-					if (!sheet.isPinned()
-							|| (sheet.isPinned() && sheet.getShowInContext()
-									.equals(context))) {
-						secondaryId = sheet.getViewSite().getSecondaryId();
-						break;
-					}
-				}
-			}
-		}
-		return (PropertySheet) page.showView(IPageLayout.ID_PROP_SHEET,
-				secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PinPropertySheetAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PinPropertySheetAction.java
deleted file mode 100644
index 4d2d8df..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PinPropertySheetAction.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-
-/**
- * Pins the properties view instance to the current selection.
- * 
- * @since 3.4
- */
-public class PinPropertySheetAction extends Action {
-
-	public PinPropertySheetAction() {
-		super(PropertiesMessages.Pin_text, IAction.AS_CHECK_BOX);
-
-		setId(PinPropertySheetAction.class.getName()
-				+ "#" + Long.toString(System.currentTimeMillis())); //$NON-NLS-1$
-		setToolTipText(PropertiesMessages.Pin_toolTip);
-		setImageDescriptor(WorkbenchImages
-				.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_PIN_EDITOR));
-		setDisabledImageDescriptor(WorkbenchImages
-				.getImageDescriptor(IWorkbenchGraphicConstants.IMG_ETOOL_PIN_EDITOR_DISABLED));
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this,
-				IPropertiesHelpContextIds.PIN_ACTION);
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyColumnLabelProvider.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyColumnLabelProvider.java
deleted file mode 100644
index 1db706d..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyColumnLabelProvider.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   Ed Merks, IBM - Initial API and implementation (bug 220843)
- *
- */
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * A column label provider that returns label text and images based on a
- * {@link IPropertySourceProvider}, forwarding requests for text and image to
- * the label provider returned from the property descriptor for the given
- * property id.
- * 
- * @see IPropertyDescriptor#getLabelProvider()
- * 
- * @since 3.3
- * 
- * @see PropertyEditingSupport
- */
-public class PropertyColumnLabelProvider extends ColumnLabelProvider {
-	protected IPropertySourceProvider propertySourceProvider;
-	protected Object propertyID;
-
-	/**
-	 * Creates a new instance based on the given property source provider and
-	 * property id.
-	 * 
-	 * @param propertySourceProvider
-	 *            the property source provider
-	 * @param propertyID
-	 *            the property id
-	 */
-	public PropertyColumnLabelProvider(
-			IPropertySourceProvider propertySourceProvider, Object propertyID) {
-		this.propertySourceProvider = propertySourceProvider;
-		this.propertyID = propertyID;
-	}
-
-	public String getText(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return propertyDescriptor.getLabelProvider().getText(
-						propertySource.getPropertyValue(propertyID));
-			}
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	public Image getImage(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return propertyDescriptor.getLabelProvider().getImage(
-						propertySource.getPropertyValue(propertyID));
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
deleted file mode 100644
index ab02701..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyDescriptor.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Standard implementation for property descriptors.
- * <p>
- * The required attributes of property descriptors (id and display name) are
- * passed to the constructor; the optional attributes can be configured using
- * the various set methods (all have reasonable default values):
- * <ul>
- *   <li><code>setDescription</code></li>
- *   <li><code>setCategory</code></li>
- *   <li><code>setLabelProvider</code></li>
- *   <li><code>setHelpContexts</code></li>
- * </ul>
- * Subclasses should reimplement <code>getPropertyEditor</code> to provide a
- * cell editor for changing the value; otherwise the property will be 
- * effectively read only.
- * </p>
- * <p>
- * There are several concrete subclasses provided in this package that cover
- * the most common cases:
- * <ul>
- *   <li><code>TextPropertyDescriptor</code> - edits with a 
- *      <code>TextCellEditor</code></li>
- *   <li><code>ComboBoxPropertyDescriptor - edits with a
- *      <code>ComboBoxCellEditor</code></code></li>
- *   <li><code>ColorPropertyDescriptor - edits with a 
- *      <code>ColorCellEditor</code></code></li>
- * </ul>
- * </p>
- */
-public class PropertyDescriptor implements IPropertyDescriptor {
-
-    /**
-     * The property id.
-     */
-    private Object id;
-
-    /**
-     * The name to display for the property.
-     */
-    private String display;
-
-    /**
-     * Category name, or <code>null</code> if none (the default).
-     */
-    private String category = null;
-
-    /**
-     * Description of the property, or <code>null</code> if none (the default). 
-     */
-    private String description = null;
-
-    /**
-     * The help context ids, or <code>null</code> if none (the default). 
-     */
-    private Object helpIds;
-
-    /**
-     * The flags used to filter the property.
-     */
-    private String[] filterFlags;
-
-    /**
-     * The object that provides the property value's text and image, or 
-     * <code>null</code> if the default label provider is used (the default).
-     */
-    private ILabelProvider labelProvider = null;
-
-    /**
-     * The object to validate the values in the cell editor, or <code>null</code>
-     * if none (the default).
-     */
-    private ICellEditorValidator validator;
-
-    /**
-     * Indicates if the descriptor is compatible with other descriptors of this
-     * type. <code>false</code> by default.
-     */
-    private boolean incompatible = false;
-
-    /**
-     * Creates a new property descriptor with the given id and display name
-     * @param id 
-     * @param displayName 
-     */
-    public PropertyDescriptor(Object id, String displayName) {
-        Assert.isNotNull(id);
-        Assert.isNotNull(displayName);
-        this.id = id;
-        this.display = displayName;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns <code>null</code>.
-     * <p>
-     * Since no cell editor is returned, the property is read only.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        return null;
-    }
-
-    /**
-     * Returns <code>true</code> if this property descriptor is to be always 
-     * considered incompatible with any other property descriptor.
-     * This prevents a property from displaying during multiple 
-     * selection.
-     *
-     * @return <code>true</code> to indicate always incompatible
-     */
-    protected boolean getAlwaysIncompatible() {
-        return incompatible;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setCategory</code> method. If unset, this method returns
-     * <code>null</code> indicating the default category.
-     *
-     * @see #setCategory
-     */
-    public String getCategory() {
-        return category;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setDescription</code> method. If unset, this method returns
-     * <code>null</code> indicating no description.
-     *
-     * @see #setDescription
-     */
-    public String getDescription() {
-        return description;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value supplied
-     * on the constructor.
-     */
-    public String getDisplayName() {
-        return display;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setFilterFlags</code> method. If unset, this method returns
-     * <code>null</code>.
-     * <p>
-     * Valid values for these flags are declared as constants on 
-     *  <code>IPropertySheetEntry</code>
-     */
-    public String[] getFilterFlags() {
-        return filterFlags;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setHelpContextId</code> method. If unset, this method returns
-     * <code>null</code>.
-     *
-     * @see #setHelpContextIds
-     */
-    public Object getHelpContextIds() {
-        return helpIds;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value supplied
-     * on the constructor.
-     */
-    public Object getId() {
-        return id;
-    }
-
-    /**
-     * The <code>PropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns the value set by
-     * the <code>setProvider</code> method or, if no value has been set
-     * it returns a <code>LabelProvider</code>
-     *
-     * @see #setLabelProvider
-     */
-    public ILabelProvider getLabelProvider() {
-        if (labelProvider != null) {
-			return labelProvider;
-		}
-		return new LabelProvider();
-    }
-
-    /**
-     * Returns the input validator for editing the property.
-     *
-     * @return the validator used to verify correct values for this property,
-     *   or <code>null</code>
-     */
-    protected ICellEditorValidator getValidator() {
-        return validator;
-    }
-
-    /** 
-     * Returns whether a label provider has been set on the receiver.
-     * @return whether a label provider has been set on the receiver.
-     * @see #setLabelProvider
-     * @since 3.0
-     */
-    public boolean isLabelProviderSet() {
-        return labelProvider != null;
-    }
-
-    /**
-     * The <code>SimplePropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method returns true if the other
-     * property has the same id and category and <code>getAlwaysIncompatible()</code>
-     * returns false
-     */
-    public boolean isCompatibleWith(IPropertyDescriptor anotherProperty) {
-        if (getAlwaysIncompatible()) {
-			return false;
-		}
-
-        // Compare id		
-        Object id1 = getId();
-        Object id2 = anotherProperty.getId();
-        if (!id1.equals(id2)) {
-			return false;
-		}
-
-        // Compare Category (may be null)
-        if (getCategory() == null) {
-            if (anotherProperty.getCategory() != null) {
-				return false;
-			}
-        } else {
-            if (!getCategory().equals(anotherProperty.getCategory())) {
-				return false;
-			}
-        }
-
-        return true;
-    }
-
-    /**
-     * Sets a flag indicating whether this property descriptor is to be always 
-     * considered incompatible with any other property descriptor.
-     * Setting this flag prevents a property from displaying during multiple 
-     * selection.
-     *
-     * @param flag <code>true</code> to indicate always incompatible
-     */
-    public void setAlwaysIncompatible(boolean flag) {
-        incompatible = flag;
-    }
-
-    /**
-     * Sets the category for this property descriptor.
-     * 
-     * @param category the category for the descriptor, or <code>null</code> if none
-     * @see #getCategory
-     */
-    public void setCategory(String category) {
-        this.category = category;
-    }
-
-    /**
-     * Sets the description for this property descriptor.
-     * The description should be limited to a single line so that it can be
-     * displayed in the status line.
-     * 
-     * @param description the description, or <code>null</code> if none
-     * @see #getDescription
-     */
-    public void setDescription(String description) {
-        this.description = description;
-    }
-
-    /**
-     * Sets the the filter flags for this property descriptor.
-     * The description should be limited to a single line so that it can be
-     * displayed in the status line.
-     * <p>
-     * Valid values for these flags are declared as constants on 
-     *  <code>IPropertySheetEntry</code>
-     * </p>
-     * 
-     * @param value the filter flags
-     * @see #getFilterFlags
-     */
-    public void setFilterFlags(String value[]) {
-        filterFlags = value;
-    }
-
-    /**
-     * Sets the help context id for this property descriptor.
-     *
-     * NOTE: Help support system API's changed since 2.0 and arrays
-     * of contexts are no longer supported.
-     * </p>
-     * <p>
-     * Thus the only valid parameter type for this method
-     * is a <code>String</code> representing a context id. 
-     * The previously valid parameter types are deprecated. 
-     * The plural name for this method is unfortunate.
-     * </p>
-     * 
-     * @param contextIds the help context ids, or <code>null</code> if none
-     * @see #getHelpContextIds
-     */
-    public void setHelpContextIds(Object contextIds) {
-        helpIds = contextIds;
-    }
-
-    /**
-     * Sets the label provider for this property descriptor.
-     * <p>
-     * If no label provider is set an instance of <code>LabelProvider</code>
-     * will be created as the default when needed.
-     * </p>
-     * 
-     * @param provider the label provider for the descriptor, or 
-     *   <code>null</code> if the default label provider should be used
-     * @see #getLabelProvider
-     */
-    public void setLabelProvider(ILabelProvider provider) {
-        labelProvider = provider;
-    }
-
-    /**
-     * Sets the input validator for the cell editor for this property descriptor.
-     * <p>
-     * [Issue: This method should be unnecessary is the cell editor's own
-     *  validator is used.
-     * ]
-     * </p>
-     * 
-     * @param validator the cell input validator, or <code>null</code> if none
-     */
-    public void setValidator(ICellEditorValidator validator) {
-        this.validator = validator;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java
deleted file mode 100644
index f43dff7..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyEditingSupport.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved.   This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   Ed Merks, IBM - Initial API and implementation (bug 220843)
- *
- */
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * A concrete subclass of {@link EditingSupport} that implements cell editing
- * support for column-based viewers (such as e.g. {@link TreeViewer} or
- * {@link TableViewer}) based on an {@link IPropertySourceProvider},
- * forwarding requests to the {@link IPropertySource} or
- * {@link IPropertyDescriptor} for the given property ID.
- * 
- * @since 3.3
- * 
- * @see PropertyColumnLabelProvider
- */
-public class PropertyEditingSupport extends EditingSupport {
-	protected IPropertySourceProvider propertySourceProvider;
-	protected Object propertyID;
-
-	/**
-	 * Creates a new instance to be used with the given viewer, based on the
-	 * given property source provider and property ID.
-	 * 
-	 * @param viewer
-	 *            the column viewer
-	 * @param propertySourceProvider
-	 *            the property source provider
-	 * @param propertyID
-	 *            the property ID
-	 */
-	public PropertyEditingSupport(ColumnViewer viewer,
-			IPropertySourceProvider propertySourceProvider, Object propertyID) {
-		super(viewer);
-		this.propertySourceProvider = propertySourceProvider;
-		this.propertyID = propertyID;
-	}
-
-	protected boolean canEdit(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	protected CellEditor getCellEditor(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		IPropertyDescriptor[] propertyDescriptors = propertySource
-				.getPropertyDescriptors();
-		for (int i = 0; i < propertyDescriptors.length; i++) {
-			IPropertyDescriptor propertyDescriptor = propertyDescriptors[i];
-			if (propertyID.equals(propertyDescriptor.getId())) {
-				return propertyDescriptor
-						.createPropertyEditor((Composite) getViewer()
-								.getControl());
-			}
-		}
-		return null;
-	}
-
-	protected Object getValue(Object object) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		Object value = propertySource.getPropertyValue(propertyID);
-		IPropertySource valuePropertySource = propertySourceProvider
-				.getPropertySource(value);
-		if (valuePropertySource != null) {
-			value = valuePropertySource.getEditableValue();
-		}
-		return value;
-	}
-
-	protected void setValue(Object object, Object value) {
-		IPropertySource propertySource = propertySourceProvider
-				.getPropertySource(object);
-		propertySource.setPropertyValue(propertyID, value);
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
deleted file mode 100644
index d35ef3b..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheet.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-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.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.views.ViewsPlugin;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.IPageBookViewPage;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.IShowInTarget;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-import org.eclipse.ui.part.ShowInContext;
-
-/**
- * Main class for the Property Sheet View.
- * <p>
- * This standard view has id <code>"org.eclipse.ui.views.PropertySheet"</code>.
- * </p>
- * <p>
- * Note that property <it>sheets</it> and property sheet pages are not the
- * same thing as property <it>dialogs</it> and their property pages (the property
- * pages extension point is for contributing property pages to property dialogs).
- * Within the property sheet view, all pages are <code>IPropertySheetPage</code>s.
- * </p>
- * <p>
- * Property sheet pages are discovered by the property sheet view automatically
- * when a part is first activated. The property sheet view asks the active part
- * for its property sheet page; this is done by invoking 
- * <code>getAdapter(IPropertySheetPage.class)</code> on the part. If the part 
- * returns a page, the property sheet view then creates the controls for that
- * property sheet page (using <code>createControl</code>), and adds the page to 
- * the property sheet view. Whenever this part becomes active, its corresponding
- * property sheet page is shown in the property sheet view (which may or may not
- * be visible at the time). A part's property sheet page is discarded when the
- * part closes. The property sheet view has a default page (an instance of 
- * <code>PropertySheetPage</code>) which services all parts without a property
- * sheet page of their own.
- * </p>
- * <p>
- * The workbench will automatically instantiates this class when a Property
- * Sheet view is needed for a workbench window. This class is not intended
- * to be instantiated or subclassed by clients.
- * </p>
- *
- * @see IPropertySheetPage
- * @see PropertySheetPage
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class PropertySheet extends PageBookView implements ISelectionListener, IShowInTarget, IShowInSource {
-    /**
-     * No longer used but preserved to avoid api change
-     */
-    public static final String HELP_CONTEXT_PROPERTY_SHEET_VIEW = IPropertiesHelpContextIds.PROPERTY_SHEET_VIEW;
-
-    /**
-     * The initial selection when the property sheet opens
-     */
-    private ISelection bootstrapSelection;
-
-    /**
-     * The current selection of the property sheet
-     */
-    private ISelection currentSelection;
-
-    /**
-     * The current part for which this property sheets is active
-     */
-	private IWorkbenchPart currentPart;
-
-	/**
-	 * Whether this property sheet instance is pinned or not 
-	 */
-	private IAction pinPropertySheetAction;
-	
-    /**
-     * Creates a property sheet view.
-     */
-    public PropertySheet() {
-        super();
-        pinPropertySheetAction = new PinPropertySheetAction();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     * Returns the default property sheet page.
-     */
-    protected IPage createDefaultPage(PageBook book) {
-        IPageBookViewPage page = (IPageBookViewPage) ViewsPlugin.getAdapter(this,
-                IPropertySheetPage.class, false);
-        if(page == null) {
-        	page = new PropertySheetPage();
-        }
-        initPage(page);
-        page.createControl(book);
-        return page;
-    }
-
-	/**
-     * The <code>PropertySheet</code> implementation of this <code>IWorkbenchPart</code>
-     * method creates a <code>PageBook</code> control with its default page showing.
-     */
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-         
-        pinPropertySheetAction.addPropertyChangeListener(new IPropertyChangeListener(){
-			public void propertyChange(PropertyChangeEvent event) {
-				if (IAction.CHECKED.equals(event.getProperty())) {
-					updateContentDescription();
-				}
-			}
-		});
-		IMenuManager menuManager = getViewSite().getActionBars()
-				.getMenuManager();
-		menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		menuManager.add(pinPropertySheetAction);
-
-		IToolBarManager toolBarManager = getViewSite().getActionBars()
-				.getToolBarManager();
-		menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-		toolBarManager.add(pinPropertySheetAction);
-		
-        getSite().getPage().getWorkbenchWindow().getWorkbench().getHelpSystem()
-				.setHelp(getPageBook(),
-						IPropertiesHelpContextIds.PROPERTY_SHEET_VIEW);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void dispose() {
-        // run super.
-        super.dispose();
-
-        // remove ourselves as a selection listener
-        getSite().getPage().removeSelectionListener(this);
-        
-        currentPart = null;
-        currentSelection = null;
-        pinPropertySheetAction = null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected PageRec doCreatePage(IWorkbenchPart part) {
-        // Get a custom property sheet page but not if the part is also a
-		// PropertySheet. In this case the child property sheet would
-		// accidentally reuse the parent's property sheet page.
-    	if(part instanceof PropertySheet) {
-    		return null;
-    	}
-        IPropertySheetPage page = (IPropertySheetPage) ViewsPlugin.getAdapter(part,
-                IPropertySheetPage.class, false);
-        if (page != null) {
-            if (page instanceof IPageBookViewPage) {
-				initPage((IPageBookViewPage) page);
-			}
-            page.createControl(getPageBook());
-            return new PageRec(part, page);
-        }
-
-        // Use the default page		
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     */
-    protected void doDestroyPage(IWorkbenchPart part, PageRec rec) {
-        IPropertySheetPage page = (IPropertySheetPage) rec.page;
-        page.dispose();
-        rec.dispose();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     * Returns the active part on the same workbench page as this property 
-     * sheet view.
-     */
-    protected IWorkbenchPart getBootstrapPart() {
-        IWorkbenchPage page = getSite().getPage();
-        if (page != null) {
-            bootstrapSelection = page.getSelection();
-            return page.getActivePart();
-        } 
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     */
-    public void init(IViewSite site) throws PartInitException {
-   		site.getPage().addSelectionListener(this);
-   		super.init(site);
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.part.ViewPart#saveState(org.eclipse.ui.IMemento)
-	 * since 3.4
-	 */
-	public void saveState(IMemento memento) {
-		// close all but the primary/parent property sheet
-		String secondaryId = getViewSite().getSecondaryId();
-		if (null == secondaryId) {
-			super.saveState(memento);
-		} else {
-			getViewSite().getPage().hideView(this);
-		}
-	}
-
-    /* (non-Javadoc)
-     * Method declared on PageBookView.
-     * The property sheet may show properties for any view other than this view.
-     */
-    protected boolean isImportant(IWorkbenchPart part) {
-		// See Bug 252887...explicitly exclude the Help view as a
-		// participant
-		boolean isHelpView = "org.eclipse.help.ui.HelpView".equals(part.getSite().getId()); //$NON-NLS-1$
-		
-		// Don't interfere with other property views
-		boolean isPropertyView = getSite().getId().equals(part.getSite().getId());
-		
-		return !isPinned() && !isPropertyView && !isHelpView;
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#partClosed(org.eclipse.ui.IWorkbenchPart)
-	 * since 3.4
-	 */
-	public void partClosed(IWorkbenchPart part) {
-		if (isPinned() && part.equals(currentPart)) {
-			pinPropertySheetAction.setChecked(false);
-		}
-		super.partClosed(part);
-	}
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.PageBookView#partVisible(org.eclipse.ui.IWorkbenchPart)
-	 * since 3.4
-	 */
-	protected void partVisible(IWorkbenchPart part) {
-	    super.partVisible(part);
-	}
-	
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.PageBookView#partHidden(org.eclipse.ui.IWorkbenchPart)
-     * since 3.4
-     */
-    protected void partHidden(IWorkbenchPart part) {
-        // if we are pinned, then we are not interested if parts are hidden, if
-        // our target part is hidden, we should still show whatever content we
-        // have been pinned on
-        if (!isPinned()) {
-            super.partHidden(part);     
-        }
-    }	
-    
-	/**
-     * The <code>PropertySheet</code> implementation of this <code>IPartListener</code>
-     * method first sees if the active part is an <code>IContributedContentsView</code>
-     * adapter and if so, asks it for its contributing part.
-     */
-    public void partActivated(IWorkbenchPart part) {
-    	// Look for a declaratively-contributed adapter - including not yet loaded adapter factories.
-    	// See bug 86362 [PropertiesView] Can not access AdapterFactory, when plugin is not loaded.
-        IContributedContentsView view = (IContributedContentsView) ViewsPlugin.getAdapter(part,
-                IContributedContentsView.class, true);
-        IWorkbenchPart source = null;
-        if (view != null) {
-			source = view.getContributingPart();
-		}
-        if (source != null) {
-			super.partActivated(source);
-		} else {
-			super.partActivated(part);
-		}
-
-        if(isImportant(part)) {
-        	currentPart = part;
-        	// reset the selection (to allow selectionChanged() accept part change for empty selections)
-        	currentSelection = null;
-        }
-        
-        // When the view is first opened, pass the selection to the page		
-        if (bootstrapSelection != null) {
-            IPropertySheetPage page = (IPropertySheetPage) getCurrentPage();
-            if (page != null) {
-				page.selectionChanged(part, bootstrapSelection);
-			}
-            bootstrapSelection = null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionListener.
-     * Notify the current page that the selection has changed.
-     */
-    public void selectionChanged(IWorkbenchPart part, ISelection sel) {
-        // we ignore null selection, or if we are pinned, or our own selection or same selection
-		if (sel == null || !isImportant(part) || sel.equals(currentSelection)) {
-			return;
-		}
-		
-		// we ignore selection if we are hidden OR selection is coming from another source as the last one
-		if(part == null || !part.equals(currentPart)){
-		    return;
-		}
-        
-        currentPart = part;
-        currentSelection = sel;
-        
-        // pass the selection to the page		
-        IPropertySheetPage page = (IPropertySheetPage) getCurrentPage();
-        if (page != null) {
-			page.selectionChanged(currentPart, currentSelection);
-		}
-        
-        updateContentDescription();
-    }
-
-	private void updateContentDescription() {
-		if (isPinned() && currentPart != null) {
-			setContentDescription(NLS.bind(PropertiesMessages.Selection_description, currentPart.getTitle()));
-		} else {
-			setContentDescription(""); //$NON-NLS-1$
-		}
-	}
-    
-    /**
-	 * The <code>PropertySheet</code> implementation of this
-	 * <code>PageBookView</code> method handles the <code>ISaveablePart</code>
-	 * adapter case by calling <code>getSaveablePart()</code>.
-	 * 
-	 * @since 3.2
-	 */
-	protected Object getViewAdapter(Class key) {
-		if (ISaveablePart.class.equals(key)) {
-			return getSaveablePart();
-		}
-		return super.getViewAdapter(key);
-	}
-
-	/**
-	 * Returns an <code>ISaveablePart</code> that delegates to the source part
-	 * for the current page if it implements <code>ISaveablePart</code>, or
-	 * <code>null</code> otherwise.
-	 * 
-	 * @return an <code>ISaveablePart</code> or <code>null</code>
-	 * @since 3.2
-	 */
-	protected ISaveablePart getSaveablePart() {
-		IWorkbenchPart part = getCurrentContributingPart();
-		if (part instanceof ISaveablePart) {
-			return (ISaveablePart) part;
-		}
-		return null;
-	}
-	
-	/**
-	 * @return whether this property sheet is currently pinned
-	 * @since 3.4
-	 */
-	public boolean isPinned() {
-		return pinPropertySheetAction != null && pinPropertySheetAction.isChecked();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.4
-	 */
-	public ShowInContext getShowInContext() {
-		return new PropertyShowInContext(currentPart, currentSelection);
-	}
-	
-	/**
-	 * {@inheritDoc}
-	 * 
-	 * @since 3.4
-	 */
-	public boolean show(ShowInContext aContext) {
-		if (!isPinned()
-				&& aContext instanceof PropertyShowInContext) {
-			PropertyShowInContext context = (PropertyShowInContext) aContext;
-			partActivated(context.getPart());
-			selectionChanged(context.getPart(), context.getSelection());
-			return true;
-		}
-		return false;
-	}
-
-	/***
-	 * @param pinned Whether this sheet should be pinned
-	 * @since 3.4
-	 */
-	public void setPinned(boolean pinned) {
-		pinPropertySheetAction.setChecked(pinned);
-		updateContentDescription();
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetAction.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetAction.java
deleted file mode 100644
index 238a95b..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-import org.eclipse.jface.action.Action;
-
-/**
- * This is the base class of all the local actions used
- * in the PropertySheet.
- */
-/*package*/abstract class PropertySheetAction extends Action {
-    protected PropertySheetViewer viewer;
-
-    private String id;
-
-    /**
-     * Create a PropertySheetViewer action.
-     */
-    protected PropertySheetAction(PropertySheetViewer viewer, String name) {
-        super(name);
-        this.id = name;
-        this.viewer = viewer;
-    }
-
-    /**
-     * Return the unique action ID that will be
-     * used in contribution managers.
-     */
-    public String getId() {
-        return id;
-    }
-
-    /**
-     * Return the PropertySheetViewer
-     * @return the PropertySheetViewer
-     */
-    public PropertySheetViewer getPropertySheet() {
-        return viewer;
-    }
-
-    /**
-     * Set the unique ID that should be used
-     * in the contribution managers.
-     */
-    public void setId(String newId) {
-        id = newId;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java
deleted file mode 100644
index 1ab9876..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetCategory.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A category in a PropertySheet used to group <code>IPropertySheetEntry</code>
- * entries so they are displayed together.
- */
-/*package*/class PropertySheetCategory {
-    private String categoryName;
-
-    private List entries = new ArrayList();
-
-    private boolean shouldAutoExpand = true;
-
-    /**
-     * Create a PropertySheet category with name.
-     * @param name 
-     */
-    public PropertySheetCategory(String name) {
-        categoryName = name;
-    }
-
-    /**
-     * Add an <code>IPropertySheetEntry</code> to the list
-     * of entries in this category. 
-     * @param entry 
-     */
-    public void addEntry(IPropertySheetEntry entry) {
-        entries.add(entry);
-    }
-
-    /**
-     * Return the category name.
-     * @return the category name
-     */
-    public String getCategoryName() {
-        return categoryName;
-    }
-
-    /**
-     * Returns <code>true</code> if this category should be automatically 
-     * expanded. The default value is <code>true</code>.
-     * 
-     * @return <code>true</code> if this category should be automatically 
-     * expanded, <code>false</code> otherwise
-     */
-    public boolean getAutoExpand() {
-        return shouldAutoExpand;
-    }
-
-    /**
-     * Sets if this category should be automatically 
-     * expanded.
-     * @param autoExpand 
-     */
-    public void setAutoExpand(boolean autoExpand) {
-        shouldAutoExpand = autoExpand;
-    }
-
-    /**
-     * Returns the entries in this category.
-     *
-     * @return the entries in this category
-     */
-    public IPropertySheetEntry[] getChildEntries() {
-        return (IPropertySheetEntry[]) entries
-                .toArray(new IPropertySheetEntry[entries.size()]);
-    }
-
-    /**
-     * Removes all of the entries in this category.
-     * Doing so allows us to reuse this category entry.
-     */
-    public void removeAllEntries() {
-        entries = new ArrayList();
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
deleted file mode 100644
index c95bfd5..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetEntry.java
+++ /dev/null
@@ -1,791 +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
- *     Gunnar Wagenknecht - fix for bug 21756 [PropertiesView] property view sorting
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.internal.views.ViewsPlugin;
-
-/**
- * <code>PropertySheetEntry</code> is an implementation of
- * <code>IPropertySheetEntry</code> which uses <code>IPropertySource</code>
- * and <code>IPropertyDescriptor</code> to interact with domain model objects.
- * <p>
- * Every property sheet entry has a single descriptor (except the root entry
- * which has none). This descriptor determines what property of its objects it
- * will display/edit.
- * </p>
- * <p>
- * Entries do not listen for changes in their objects. Since there is no
- * restriction on properties being independent, a change in one property may
- * affect other properties. The value of a parent's property may also change. As
- * a result we are forced to refresh the entire entry tree when a property
- * changes value.
- * </p>
- * 
- * @since 3.0 (was previously internal)
- */
-public class PropertySheetEntry extends EventManager implements
-		IPropertySheetEntry {
-
-	/**
-	 * The values we are displaying/editing. These objects repesent the value of
-	 * one of the properties of the values of our parent entry. Except for the
-	 * root entry where they represent the input (selected) objects.
-	 */
-	private Object[] values = new Object[0];
-
-	/**
-	 * The property sources for the values we are displaying/editing.
-	 */
-	private Map sources = new HashMap(0);
-
-	/**
-	 * The value of this entry is defined as the the first object in its value
-	 * array or, if that object is an <code>IPropertySource</code>, the value
-	 * it returns when sent <code>getEditableValue</code>
-	 */
-	private Object editValue;
-
-	private PropertySheetEntry parent;
-
-	private IPropertySourceProvider propertySourceProvider;
-
-	private IPropertyDescriptor descriptor;
-
-	private CellEditor editor;
-
-	private String errorText;
-
-	private PropertySheetEntry[] childEntries = null;
-
-	/**
-	 * Create the CellEditorListener for this entry. It listens for value
-	 * changes in the CellEditor, and cancel and finish requests.
-	 */
-	private ICellEditorListener cellEditorListener = new ICellEditorListener() {
-		public void editorValueChanged(boolean oldValidState,
-				boolean newValidState) {
-			if (!newValidState) {
-				// currently not valid so show an error message
-				setErrorText(editor.getErrorMessage());
-			} else {
-				// currently valid
-				setErrorText(null);
-			}
-		}
-
-		public void cancelEditor() {
-			setErrorText(null);
-		}
-
-		public void applyEditorValue() {
-			PropertySheetEntry.this.applyEditorValue();
-		}
-	};
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void addPropertySheetEntryListener(
-			IPropertySheetEntryListener listener) {
-		addListenerObject(listener);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void applyEditorValue() {
-		if (editor == null) {
-			return;
-		}
-
-		// Check if editor has a valid value
-		if (!editor.isValueValid()) {
-			setErrorText(editor.getErrorMessage());
-			return;
-		}
-
-		setErrorText(null);
-
-		// See if the value changed and if so update
-		Object newValue = editor.getValue();
-		boolean changed = false;
-		if (values.length > 1) {
-			changed = true;
-		} else if (editValue == null) {
-			if (newValue != null) {
-				changed = true;
-			}
-		} else if (!editValue.equals(newValue)) {
-			changed = true;
-		}
-
-		// Set the editor value
-		if (changed) {
-			setValue(newValue);
-		}
-	}
-
-	/**
-	 * Return the unsorted intersection of all the
-	 * <code>IPropertyDescriptor</code>s for the objects.
-	 * 
-	 * @return List
-	 */
-	private List computeMergedPropertyDescriptors() {
-		if (values.length == 0) {
-			return new ArrayList(0);
-		}
-
-		IPropertySource firstSource = getPropertySource(values[0]);
-		if (firstSource == null) {
-			return new ArrayList(0);
-		}
-
-		if (values.length == 1) {
-			return Arrays.asList(firstSource.getPropertyDescriptors());
-		}
-
-		// get all descriptors from each object
-		Map[] propertyDescriptorMaps = new Map[values.length];
-		for (int i = 0; i < values.length; i++) {
-			Object object = values[i];
-			IPropertySource source = getPropertySource(object);
-			if (source == null) {
-				// if one of the selected items is not a property source
-				// then we show no properties
-				return new ArrayList(0);
-			}
-			// get the property descriptors keyed by id
-			propertyDescriptorMaps[i] = computePropertyDescriptorsFor(source);
-		}
-
-		// intersect
-		Map intersection = propertyDescriptorMaps[0];
-		for (int i = 1; i < propertyDescriptorMaps.length; i++) {
-			// get the current ids
-			Object[] ids = intersection.keySet().toArray();
-			for (int j = 0; j < ids.length; j++) {
-				Object object = propertyDescriptorMaps[i].get(ids[j]);
-				if (object == null ||
-				// see if the descriptors (which have the same id) are
-						// compatible
-						!((IPropertyDescriptor) intersection.get(ids[j]))
-								.isCompatibleWith((IPropertyDescriptor) object)) {
-					intersection.remove(ids[j]);
-				}
-			}
-		}
-
-		// sorting is handled in the PropertySheetViewer, return unsorted (in
-		// the original order)
-		ArrayList result = new ArrayList(intersection.size());
-		IPropertyDescriptor[] firstDescs = firstSource.getPropertyDescriptors();
-		for (int i = 0; i < firstDescs.length; i++) {
-			IPropertyDescriptor desc = firstDescs[i];
-			if (intersection.containsKey(desc.getId())) {
-				result.add(desc);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns an map of property descritptors (keyed on id) for the given
-	 * property source.
-	 * 
-	 * @param source
-	 *            a property source for which to obtain descriptors
-	 * @return a table of decriptors keyed on their id
-	 */
-	private Map computePropertyDescriptorsFor(IPropertySource source) {
-		IPropertyDescriptor[] descriptors = source.getPropertyDescriptors();
-		Map result = new HashMap(descriptors.length * 2 + 1);
-		for (int i = 0; i < descriptors.length; i++) {
-			result.put(descriptors[i].getId(), descriptors[i]);
-		}
-		return result;
-	}
-
-	/**
-	 * Create our child entries.
-	 */
-	private void createChildEntries() {
-		// get the current descriptors
-		List descriptors = computeMergedPropertyDescriptors();
-
-		// rebuild child entries using old when possible
-		PropertySheetEntry[] newEntries = new PropertySheetEntry[descriptors
-				.size()];
-		for (int i = 0; i < descriptors.size(); i++) {
-			IPropertyDescriptor d = (IPropertyDescriptor) descriptors.get(i);
-			// create new entry
-			PropertySheetEntry entry = createChildEntry();
-			entry.setDescriptor(d);
-			entry.setParent(this);
-			entry.setPropertySourceProvider(propertySourceProvider);
-			entry.refreshValues();
-			newEntries[i] = entry;
-		}
-		// only assign if successful
-		childEntries = newEntries;
-	}
-
-	/**
-	 * Factory method to create a new child <code>PropertySheetEntry</code>
-	 * instance.
-	 * <p>
-	 * Subclasses may overwrite to create new instances of their own class.
-	 * </p>
-	 * 
-	 * @return a new <code>PropertySheetEntry</code> instance for the
-	 *         descriptor passed in
-	 * @since 3.1
-	 */
-	protected PropertySheetEntry createChildEntry() {
-		return new PropertySheetEntry();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void dispose() {
-		if (editor != null) {
-			editor.dispose();
-			editor = null;
-		}
-		// recursive call to dispose children
-		PropertySheetEntry[] entriesToDispose = childEntries;
-		childEntries = null;
-		if (entriesToDispose != null) {
-			for (int i = 0; i < entriesToDispose.length; i++) {
-				// an error in a property source may cause refreshChildEntries
-				// to fail. Since the Workbench handles such errors we
-				// can be left in a state where a child entry is null.
-				if (entriesToDispose[i] != null) {
-					entriesToDispose[i].dispose();
-				}
-			}
-		}
-	}
-
-	/**
-	 * The child entries of this entry have changed (children added or removed).
-	 * Notify all listeners of the change.
-	 */
-	private void fireChildEntriesChanged() {
-		Object[] array = getListeners();
-		for (int i = 0; i < array.length; i++) {
-			IPropertySheetEntryListener listener = (IPropertySheetEntryListener) array[i];
-			listener.childEntriesChanged(this);
-		}
-	}
-
-	/**
-	 * The error message of this entry has changed. Notify all listeners of the
-	 * change.
-	 */
-	private void fireErrorMessageChanged() {
-		Object[] array = getListeners();
-		for (int i = 0; i < array.length; i++) {
-			IPropertySheetEntryListener listener = (IPropertySheetEntryListener) array[i];
-			listener.errorMessageChanged(this);
-		}
-	}
-
-	/**
-	 * The values of this entry have changed. Notify all listeners of the
-	 * change.
-	 */
-	private void fireValueChanged() {
-		Object[] array = getListeners();
-		for (int i = 0; i < array.length; i++) {
-			IPropertySheetEntryListener listener = (IPropertySheetEntryListener) array[i];
-			listener.valueChanged(this);
-		}
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getCategory() {
-		return descriptor.getCategory();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public IPropertySheetEntry[] getChildEntries() {
-		if (childEntries == null) {
-			createChildEntries();
-		}
-		return childEntries;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getDescription() {
-		return descriptor.getDescription();
-	}
-
-	/**
-	 * Returns the descriptor for this entry.
-	 * 
-	 * @return the descriptor for this entry
-	 * @since 3.1 (was previously private)
-	 */
-	protected IPropertyDescriptor getDescriptor() {
-		return descriptor;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getDisplayName() {
-		return descriptor.getDisplayName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.IPropertySheetEntry#getEditor(org.eclipse.swt.widgets.Composite)
-	 */
-	public CellEditor getEditor(Composite parent) {
-
-		if (editor == null) {
-			editor = descriptor.createPropertyEditor(parent);
-			if (editor != null) {
-				editor.addListener(cellEditorListener);
-			}
-		}
-		if (editor != null) {
-			editor.setValue(editValue);
-			setErrorText(editor.getErrorMessage());
-		}
-		return editor;
-	}
-
-	/**
-	 * Returns the edit value for the object at the given index.
-	 * 
-	 * @param index
-	 *            the value object index
-	 * @return the edit value for the object at the given index
-	 */
-	protected Object getEditValue(int index) {
-		Object value = values[index];
-		IPropertySource source = getPropertySource(value);
-		if (source != null) {
-			value = source.getEditableValue();
-		}
-		return value;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getErrorText() {
-		return errorText;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getFilters()[] {
-		return descriptor.getFilterFlags();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public Object getHelpContextIds() {
-		return descriptor.getHelpContextIds();
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public Image getImage() {
-		ILabelProvider provider = descriptor.getLabelProvider();
-		if (provider == null) {
-			return null;
-		}
-		return provider.getImage(editValue);
-	}
-
-	/**
-	 * Returns the parent of this entry.
-	 * 
-	 * @return the parent entry, or <code>null</code> if it has no parent
-	 * @since 3.1
-	 */
-	protected PropertySheetEntry getParent() {
-		return parent;
-	}
-
-	/**
-	 * Returns an property source for the given object.
-	 * 
-	 * @param object
-	 *            an object for which to obtain a property source or
-	 *            <code>null</code> if a property source is not available
-	 * @return an property source for the given object
-	 * @since 3.1 (was previously private)
-	 */
-	protected IPropertySource getPropertySource(Object object) {
-		if (sources.containsKey(object))
-			return (IPropertySource) sources.get(object);
-
-		IPropertySource result = null;
-		IPropertySourceProvider provider = propertySourceProvider;
-
-		if (provider == null && object != null) {
-			provider = (IPropertySourceProvider) ViewsPlugin.getAdapter(object, 
-                    IPropertySourceProvider.class, false);
-        }
-
-		if (provider != null) {
-			result = provider.getPropertySource(object);
-		} else {
-            result = (IPropertySource)ViewsPlugin.getAdapter(object, IPropertySource.class, false);
-        }
-
-		sources.put(object, result);
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public String getValueAsString() {
-		if (editValue == null) {
-			return "";//$NON-NLS-1$
-		}
-		ILabelProvider provider = descriptor.getLabelProvider();
-		if (provider == null) {
-			return editValue.toString();
-		}
-		String text = provider.getText(editValue);
-		if (text == null) {
-			return "";//$NON-NLS-1$
-		}
-		return text;
-	}
-
-	/**
-	 * Returns the value objects of this entry.
-	 * 
-	 * @return the value objects of this entry
-	 * @since 3.1 (was previously private)
-	 */
-	public Object[] getValues() {
-		return values;
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public boolean hasChildEntries() {
-		if (childEntries != null && childEntries.length > 0) {
-			return true;
-		}
-		// see if we could have entires if we were asked
-		return computeMergedPropertyDescriptors().size() > 0;
-	}
-
-	/**
-	 * Update our child entries. This implementation tries to reuse child
-	 * entries if possible (if the id of the new descriptor matches the
-	 * descriptor id of the old entry).
-	 */
-	private void refreshChildEntries() {
-		if (childEntries == null) {
-			// no children to refresh
-			return;
-		}
-
-		// get the current descriptors
-		List descriptors = computeMergedPropertyDescriptors();
-
-		// cache old entries by their descriptor id
-		Map entryCache = new HashMap(childEntries.length * 2 + 1);
-		for (int i = 0; i < childEntries.length; i++) {
-			PropertySheetEntry childEntry = childEntries[i];
-			if (childEntry != null) {
-				entryCache.put(childEntry.getDescriptor().getId(), childEntry);
-			}
-		}
-
-		// create a list of entries to dispose
-		List entriesToDispose = new ArrayList(Arrays.asList(childEntries));
-
-		// clear the old entries
-		this.childEntries = null;
-
-		// rebuild child entries using old when possible
-		PropertySheetEntry[] newEntries = new PropertySheetEntry[descriptors
-				.size()];
-		boolean entriesChanged = descriptors.size() != entryCache.size();
-		for (int i = 0; i < descriptors.size(); i++) {
-			IPropertyDescriptor d = (IPropertyDescriptor) descriptors.get(i);
-			// see if we have an entry matching this descriptor
-			PropertySheetEntry entry = (PropertySheetEntry) entryCache.get(d
-					.getId());
-			if (entry != null) {
-				// reuse old entry
-				entry.setDescriptor(d);
-				entriesToDispose.remove(entry);
-			} else {
-				// create new entry
-				entry = createChildEntry();
-				entry.setDescriptor(d);
-				entry.setParent(this);
-				entry.setPropertySourceProvider(propertySourceProvider);
-				entriesChanged = true;
-			}
-			entry.refreshValues();
-			newEntries[i] = entry;
-		}
-
-		// only assign if successful
-		this.childEntries = newEntries;
-
-		if (entriesChanged) {
-			fireChildEntriesChanged();
-		}
-
-		// Dispose of entries which are no longer needed
-		for (int i = 0; i < entriesToDispose.size(); i++) {
-			((IPropertySheetEntry) entriesToDispose.get(i)).dispose();
-		}
-	}
-
-	/**
-	 * Refresh the entry tree from the root down.
-	 * 
-	 * @since 3.1 (was previously private)
-	 */
-	protected void refreshFromRoot() {
-		if (parent == null) {
-			refreshChildEntries();
-		} else {
-			parent.refreshFromRoot();
-		}
-	}
-
-	/**
-	 * Update our value objects. We ask our parent for the property values based
-	 * on our descriptor.
-	 */
-	private void refreshValues() {
-		// get our parent's value objects
-		Object[] currentSources = parent.getValues();
-
-		// loop through the objects getting our property value from each
-		Object[] newValues = new Object[currentSources.length];
-		for (int i = 0; i < currentSources.length; i++) {
-			IPropertySource source = parent
-					.getPropertySource(currentSources[i]);
-			newValues[i] = source.getPropertyValue(descriptor.getId());
-		}
-
-		// set our new values
-		setValues(newValues);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void removePropertySheetEntryListener(
-			IPropertySheetEntryListener listener) {
-		removeListenerObject(listener);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPropertySheetEntry.
-	 */
-	public void resetPropertyValue() {
-		if (parent == null) {
-			// root does not have a default value
-			return;
-		}
-
-		// Use our parent's values to reset our values.
-		boolean change = false;
-		Object[] objects = parent.getValues();
-		for (int i = 0; i < objects.length; i++) {
-			IPropertySource source = getPropertySource(objects[i]);
-			if (source.isPropertySet(descriptor.getId())) {
-				// fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=21756
-				if (source instanceof IPropertySource2) {
-					IPropertySource2 extendedSource = (IPropertySource2) source;
-					// continue with next if property is not resettable
-					if (!extendedSource
-							.isPropertyResettable(descriptor.getId())) {
-						continue;
-					}
-				}
-				source.resetPropertyValue(descriptor.getId());
-				change = true;
-			}
-		}
-		if (change) {
-			refreshFromRoot();
-		}
-	}
-
-	/**
-	 * Set the descriptor.
-	 * 
-	 * @param newDescriptor
-	 */
-	private void setDescriptor(IPropertyDescriptor newDescriptor) {
-		// if our descriptor is changing, we have to get rid
-		// of our current editor if there is one
-		if (descriptor != newDescriptor && editor != null) {
-			editor.dispose();
-			editor = null;
-		}
-		descriptor = newDescriptor;
-	}
-
-	/**
-	 * Set the error text. This should be set to null when the current value is
-	 * valid, otherwise it should be set to a error string
-	 */
-	private void setErrorText(String newErrorText) {
-		errorText = newErrorText;
-		// inform listeners
-		fireErrorMessageChanged();
-	}
-
-	/**
-	 * Sets the parent of the entry to be propertySheetEntry.
-	 * 
-	 * @param propertySheetEntry
-	 */
-	private void setParent(PropertySheetEntry propertySheetEntry) {
-		parent = propertySheetEntry;
-	}
-
-	/**
-	 * Sets a property source provider for this entry. This provider is used to
-	 * obtain an <code>IPropertySource</code> for each of this entries
-	 * objects. If no provider is set then a default provider is used.
-	 * 
-	 * @param provider
-	 *            IPropertySourceProvider
-	 */
-	public void setPropertySourceProvider(IPropertySourceProvider provider) {
-		propertySourceProvider = provider;
-	}
-
-	/**
-	 * Set the value for this entry.
-	 * <p>
-	 * We set the given value as the value for all our value objects. We then
-	 * call our parent to update the property we represent with the given value.
-	 * We then trigger a model refresh.
-	 * <p>
-	 * 
-	 * @param newValue
-	 *            the new value
-	 */
-	private void setValue(Object newValue) {
-		// Set the value
-		for (int i = 0; i < values.length; i++) {
-			values[i] = newValue;
-		}
-
-		// Inform our parent
-		parent.valueChanged(this);
-
-		// Refresh the model
-		refreshFromRoot();
-	}
-
-	/**
-	 * The <code>PropertySheetEntry</code> implmentation of this method
-	 * declared on<code>IPropertySheetEntry</code> will obtain an editable
-	 * value for the given objects and update the child entries.
-	 * <p>
-	 * Updating the child entries will typically call this method on the child
-	 * entries and thus the entire entry tree is updated
-	 * </p>
-	 * 
-	 * @param objects
-	 *            the new values for this entry
-	 */
-	public void setValues(Object[] objects) {
-		values = objects;
-		sources = new HashMap(values.length * 2 + 1);
-
-		if (values.length == 0) {
-			editValue = null;
-		} else {
-			// set the first value object as the entry's value
-			Object newValue = values[0];
-
-			// see if we should convert the value to an editable value
-			IPropertySource source = getPropertySource(newValue);
-			if (source != null) {
-				newValue = source.getEditableValue();
-			}
-			editValue = newValue;
-		}
-
-		// update our child entries
-		refreshChildEntries();
-
-		// inform listeners that our value changed
-		fireValueChanged();
-	}
-
-	/**
-	 * The value of the given child entry has changed. Therefore we must set
-	 * this change into our value objects.
-	 * <p>
-	 * We must inform our parent so that it can update its value objects
-	 * </p>
-	 * <p>
-	 * Subclasses may override to set the property value in some custom way.
-	 * </p>
-	 * 
-	 * @param child
-	 *            the child entry that changed its value
-	 */
-	protected void valueChanged(PropertySheetEntry child) {
-		for (int i = 0; i < values.length; i++) {
-			IPropertySource source = getPropertySource(values[i]);
-			source.setPropertyValue(child.getDescriptor().getId(), child
-					.getEditValue(i));
-		}
-
-		// inform our parent
-		if (parent != null) {
-			parent.valueChanged(this);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java
deleted file mode 100644
index 286411b..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetPage.java
+++ /dev/null
@@ -1,593 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - fix for bug 21756 [PropertiesView] property view sorting
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.help.IContext;
-import org.eclipse.jface.action.Action;
-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.util.ConfigureColumns;
-import org.eclipse.jface.viewers.CellEditor;
-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.window.SameShellProvider;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.HelpEvent;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.IContextComputer;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.internal.views.ViewsPlugin;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-import org.eclipse.ui.part.CellEditorActionHandler;
-import org.eclipse.ui.part.Page;
-
-/**
- * The standard implementation of property sheet page which presents
- * a table of property names and values obtained from the current selection
- * in the active workbench part.
- * <p>
- * This page obtains the information about what properties to display from
- * the current selection (which it tracks).
- * </p>
- * <p>
- * The model for this page is a hierarchy of <code>IPropertySheetEntry</code>.
- * The page may be configured with a custom model by setting the root entry.
- * <p>
- * If no root entry is set then a default model is created which uses the
- * <code>IPropertySource</code> interface to obtain the properties of
- * the current selection. This requires that the selected objects provide an
- * <code>IPropertySource</code> adapter (or implement
- * <code>IPropertySource</code> directly). This restiction can be overcome
- * by providing this page with an <code>IPropertySourceProvider</code>. If
- * supplied, this provider will be used by the default model to obtain a
- * property source for the current selection
- * </p>
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- *
- * @see IPropertySource
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class PropertySheetPage extends Page implements IPropertySheetPage, IAdaptable {
-    /**
-     * Help context id
-     * (value <code>"org.eclipse.ui.property_sheet_page_help_context"</code>).
-     */
-    public static final String HELP_CONTEXT_PROPERTY_SHEET_PAGE = "org.eclipse.ui.property_sheet_page_help_context"; //$NON-NLS-1$
-
-    private PropertySheetViewer viewer;
-    
-    private PropertySheetSorter sorter;
-
-    private IPropertySheetEntry rootEntry;
-
-    private IPropertySourceProvider provider;
-
-    private DefaultsAction defaultsAction;
-
-    private FilterAction filterAction;
-
-    private CategoriesAction categoriesAction;
-
-    private CopyPropertyAction copyAction;
-
-    private ICellEditorActivationListener cellEditorActivationListener;
-
-    private CellEditorActionHandler cellEditorActionHandler;
-
-    private Clipboard clipboard;
-
-	private IWorkbenchPart sourcePart;
-
-	/**
-	 * Part listener which cleans up this page when the source part is closed.
-	 * This is hooked only when there is a source part.
-	 * 
-	 * @since 3.2
-	 */
-	private class PartListener implements IPartListener {
-		public void partActivated(IWorkbenchPart part) {
-		}
-
-		public void partBroughtToTop(IWorkbenchPart part) {
-		}
-
-		public void partClosed(IWorkbenchPart part) {
-			if (sourcePart == part) {
-				if (sourcePart != null)
-					sourcePart.getSite().getPage().removePartListener(partListener);
-				sourcePart = null;
-				if (viewer != null && !viewer.getControl().isDisposed()) {
-					viewer.setInput(new Object[0]);
-				}
-			}
-		}
-
-		public void partDeactivated(IWorkbenchPart part) {
-		}
-
-		public void partOpened(IWorkbenchPart part) {
-		}
-	}
-	
-	private PartListener partListener = new PartListener();
-
-	private Action columnsAction;
-	
-    /**
-     * Creates a new property sheet page.
-     */
-    public PropertySheetPage() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on <code>IPage</code>.
-     */
-    public void createControl(Composite parent) {
-        // create a new viewer
-        viewer = new PropertySheetViewer(parent);
-        viewer.setSorter(sorter);
-        
-        // set the model for the viewer
-        if (rootEntry == null) {
-            // create a new root
-            PropertySheetEntry root = new PropertySheetEntry();
-            if (provider != null) {
-				// set the property source provider
-                root.setPropertySourceProvider(provider);
-			}
-            rootEntry = root;
-        }
-        viewer.setRootEntry(rootEntry);
-        viewer.addActivationListener(getCellEditorActivationListener());
-        // add a listener to track when the entry selection changes
-        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                handleEntrySelection(event.getSelection());
-            }
-        });
-        initDragAndDrop();
-        makeActions();
-
-        // Create the popup menu for the page.
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.add(copyAction);
-        menuMgr.add(new Separator());
-        menuMgr.add(defaultsAction);
-        Menu menu = menuMgr.createContextMenu(viewer.getControl());
-        viewer.getControl().setMenu(menu);
-
-        // Set help on the viewer
-        viewer.getControl().addHelpListener(new HelpListener() {
-            /*
-             * @see HelpListener#helpRequested(HelpEvent)
-             */
-            public void helpRequested(HelpEvent e) {
-                // Get the context for the selected item
-                IStructuredSelection selection = (IStructuredSelection) viewer
-                        .getSelection();
-                if (!selection.isEmpty()) {
-                    IPropertySheetEntry entry = (IPropertySheetEntry) selection
-                            .getFirstElement();
-                    Object helpContextId = entry.getHelpContextIds();
-                    if (helpContextId != null) {
-                    	IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-                    	
-                        // Since 2.0 the only valid type for helpContextIds
-                        // is a String (a single id).
-                        if (helpContextId instanceof String) {
-                            helpSystem.displayHelp((String) helpContextId);
-                            return;
-                        }
-
-                        // For backward compatibility we have to handle
-                        // and array of contexts (Strings and/or IContexts)
-                        // or a context computer.
-                        Object context= getFirstContext(helpContextId, e);
-                        if (context instanceof IContext) {
-							helpSystem.displayHelp((IContext) context);
-						} else if (context instanceof String) {
-							helpSystem.displayHelp((String) context);
-						}
-                        return;
-                    }
-                }
-
-                // No help for the selection so show page help
-                PlatformUI.getWorkbench().getHelpSystem().displayHelp(HELP_CONTEXT_PROPERTY_SHEET_PAGE);
-            }
-
-			/**
-			 * Returns the first help context.
-			 * 
-			 * @param helpContext the help context which is either an array of contexts (strings
-			 *            and/or {@linkplain IContext}s) or an {@link IContextComputer}
-			 * 
-			 * @param e the help event
-			 * @return the first context which is either a <code>String</code>, {@link IContext} or
-			 *         <code>null</code> if none
-			 * @deprecated As of 2.0, nested contexts are no longer supported by the help support
-			 *             system
-			 */
-			private Object getFirstContext(Object helpContext, HelpEvent e) {
-				Object[] contexts;
-				if (helpContext instanceof IContextComputer) {
-				    // get local contexts
-					contexts= ((IContextComputer)helpContext)
-				            .getLocalContexts(e);
-				} else {
-					contexts= (Object[])helpContext;
-				}
-
-				if (contexts.length > 0)
-					return contexts[0];
-				return null;
-			}
-        });
-    }
-
-    /**
-     * The <code>PropertySheetPage</code> implementation of this <code>IPage</code> method
-     * disposes of this page's entries.
-     */
-    public void dispose() {
-        super.dispose();
-        if (sourcePart != null) {
-        	sourcePart.getSite().getPage().removePartListener(partListener);
-        }
-        if (rootEntry != null) {
-            rootEntry.dispose();
-            rootEntry = null;
-        }
-        if (clipboard != null) {
-            clipboard.dispose();
-            clipboard = null;
-        }
-    }
-
-    /**
-     * The <code>PropertySheetPage</code> implementation of this <code>IAdaptable</code> method
-     * handles the <code>ISaveablePart</code> adapter by delegating to the source part.
-     * 
-     * @since 3.2
-     */
-    public Object getAdapter(Class adapter) {
-		if (ISaveablePart.class.equals(adapter)) {
-			return getSaveablePart();
-		}
-    	return null;
-    }
-    
-	/**
-	 * Returns an <code>ISaveablePart</code> that delegates to the source part
-	 * for the current page if it implements <code>ISaveablePart</code>, or
-	 * <code>null</code> otherwise.
-	 * 
-	 * @return an <code>ISaveablePart</code> or <code>null</code>
-	 * @since 3.2
-	 */
-	protected ISaveablePart getSaveablePart() {
-		if (sourcePart instanceof ISaveablePart) {
-			return (ISaveablePart) sourcePart;
-		}
-		return null;
-	}
-    
-    /**
-     * Returns the cell editor activation listener for this page
-     * @return ICellEditorActivationListener the cell editor activation listener for this page
-     */
-    private ICellEditorActivationListener getCellEditorActivationListener() {
-        if (cellEditorActivationListener == null) {
-            cellEditorActivationListener = new ICellEditorActivationListener() {
-                public void cellEditorActivated(CellEditor cellEditor) {
-                    if (cellEditorActionHandler != null) {
-						cellEditorActionHandler.addCellEditor(cellEditor);
-					}
-                }
-
-                public void cellEditorDeactivated(CellEditor cellEditor) {
-                    if (cellEditorActionHandler != null) {
-						cellEditorActionHandler.removeCellEditor(cellEditor);
-					}
-                }
-            };
-        }
-        return cellEditorActivationListener;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPage (and Page).
-     */
-    public Control getControl() {
-        if (viewer == null) {
-			return null;
-		}
-        return viewer.getControl();
-    }
-
-    /**
-     * Handles a selection change in the entry table.
-     *
-     * @param selection the new selection
-     */
-    public void handleEntrySelection(ISelection selection) {
-        if (defaultsAction != null) {
-            if (selection.isEmpty()) {
-                defaultsAction.setEnabled(false);
-                return;
-            }
-            // see if item is editable
-            boolean editable = viewer.getActiveCellEditor() != null;
-            defaultsAction.setEnabled(editable);
-        }
-    }
-
-    /**
-     * Adds drag and drop support.
-     */
-    protected void initDragAndDrop() {
-        int operations = DND.DROP_COPY;
-        Transfer[] transferTypes = new Transfer[] { TextTransfer.getInstance() };
-        DragSourceListener listener = new DragSourceAdapter() {
-            public void dragSetData(DragSourceEvent event) {
-                performDragSetData(event);
-            }
-
-            public void dragFinished(DragSourceEvent event) {
-                //Nothing to do here
-            }
-        };
-        DragSource dragSource = new DragSource(
-                viewer.getControl(), operations);
-        dragSource.setTransfer(transferTypes);
-        dragSource.addDragListener(listener);
-    }
-
-    /**
-     * The user is attempting to drag.  Add the appropriate
-     * data to the event.
-     * @param event The event sent from the drag and drop support.
-     */
-    void performDragSetData(DragSourceEvent event) {
-        // Get the selected property
-        IStructuredSelection selection = (IStructuredSelection) viewer
-                .getSelection();
-        if (selection.isEmpty()) {
-			return;
-		}
-        // Assume single selection
-        IPropertySheetEntry entry = (IPropertySheetEntry) selection
-                .getFirstElement();
-
-        // Place text as the data
-        StringBuffer buffer = new StringBuffer();
-        buffer.append(entry.getDisplayName());
-        buffer.append("\t"); //$NON-NLS-1$
-        buffer.append(entry.getValueAsString());
-
-        event.data = buffer.toString();
-    }
-
-    /**
-     * Make action objects.
-     */
-    private void makeActions() {
-        ISharedImages sharedImages = PlatformUI.getWorkbench()
-                .getSharedImages();
-
-        // Restore Default Value
-        defaultsAction = new DefaultsAction(viewer, "defaults"); //$NON-NLS-1$
-        defaultsAction.setText(PropertiesMessages.Defaults_text);
-        defaultsAction.setToolTipText(PropertiesMessages.Defaults_toolTip);
-        defaultsAction
-                .setImageDescriptor(ViewsPlugin.getViewImageDescriptor("elcl16/defaults_ps.gif")); //$NON-NLS-1$
-        defaultsAction
-                .setDisabledImageDescriptor(ViewsPlugin.getViewImageDescriptor("dlcl16/defaults_ps.gif")); //$NON-NLS-1$
-        defaultsAction.setEnabled(false);
-
-        // Show Advanced Properties
-        filterAction = new FilterAction(viewer, "filter"); //$NON-NLS-1$
-        filterAction.setText(PropertiesMessages.Filter_text);
-        filterAction.setToolTipText(PropertiesMessages.Filter_toolTip);
-        filterAction
-                .setImageDescriptor(ViewsPlugin.getViewImageDescriptor("elcl16/filter_ps.gif")); //$NON-NLS-1$
-        filterAction.setChecked(false);
-
-        // Show Categories
-        categoriesAction = new CategoriesAction(viewer, "categories"); //$NON-NLS-1$
-        categoriesAction.setText(PropertiesMessages.Categories_text);
-        categoriesAction.setToolTipText(PropertiesMessages.Categories_toolTip);
-        categoriesAction
-                .setImageDescriptor(ViewsPlugin.getViewImageDescriptor("elcl16/tree_mode.gif")); //$NON-NLS-1$
-        categoriesAction.setChecked(true);
-
-        // Columns...
-        columnsAction = new Action(PropertiesMessages.Columns_text){
-        	public void run() {
-        		Tree tree = (Tree) viewer.getControl();
-        		ConfigureColumns.forTree(tree, new SameShellProvider(tree));
-        	}
-		};
-        columnsAction.setToolTipText(PropertiesMessages.Columns_toolTip);
-        
-        // Copy
-        Shell shell = viewer.getControl().getShell();
-        clipboard = new Clipboard(shell.getDisplay());
-        copyAction = new CopyPropertyAction(viewer, "copy", clipboard); //$NON-NLS-1$
-        copyAction.setText(PropertiesMessages.CopyProperty_text);
-        copyAction.setImageDescriptor(sharedImages
-                .getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPage (and Page).
-     */
-    public void makeContributions(IMenuManager menuManager,
-            IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-
-        // add actions to the tool bar
-        toolBarManager.add(categoriesAction);
-        toolBarManager.add(filterAction);
-        toolBarManager.add(defaultsAction);
-
-        // add actions to the menu
-        menuManager.add(categoriesAction);
-        menuManager.add(filterAction);
-        menuManager.add(columnsAction);
-
-        // set status line manager into the viewer
-        viewer.setStatusLineManager(statusLineManager);
-    }
-
-    /**
-     * Updates the model for the viewer.
-     * <p>
-     * Note that this means ensuring that the model reflects the state
-     * of the current viewer input.
-     * </p>
-     */
-    public void refresh() {
-        if (viewer == null) {
-			return;
-		}
-        // calling setInput on the viewer will cause the model to refresh
-        viewer.setInput(viewer.getInput());
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionListener.
-     */
-    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-        if (viewer == null) {
-			return;
-		}
-
-        if (sourcePart != null) {
-        	sourcePart.getSite().getPage().removePartListener(partListener);
-        	sourcePart = null;
-        }
-        
-        // change the viewer input since the workbench selection has changed.
-        if (selection instanceof IStructuredSelection) {
-        	sourcePart = part;
-            viewer.setInput(((IStructuredSelection) selection).toArray());
-        }
-
-        if (sourcePart != null) {
-        	sourcePart.getSite().getPage().addPartListener(partListener);
-        }
-    }
-
-    /**
-     * The <code>PropertySheetPage</code> implementation of this <code>IPage</code> method
-     * calls <code>makeContributions</code> for backwards compatibility with
-     * previous versions of <code>IPage</code>.
-     * <p>
-     * Subclasses may reimplement.
-     * </p>
-     */
-    public void setActionBars(IActionBars actionBars) {
-        super.setActionBars(actionBars);
-        cellEditorActionHandler = new CellEditorActionHandler(actionBars);
-        cellEditorActionHandler.setCopyAction(copyAction);
-    }
-
-    /**
-     * Sets focus to a part in the page.
-     */
-    public void setFocus() {
-        viewer.getControl().setFocus();
-    }
-
-    /**
-     * Sets the given property source provider as
-     * the property source provider.
-     * <p>
-     * Calling this method is only valid if you are using
-     * this page's default root entry.
-     * </p>
-     * @param newProvider the property source provider
-     */
-    public void setPropertySourceProvider(IPropertySourceProvider newProvider) {
-        provider = newProvider;
-        if (rootEntry instanceof PropertySheetEntry) {
-            ((PropertySheetEntry) rootEntry)
-                    .setPropertySourceProvider(provider);
-            // the following will trigger an update
-            viewer.setRootEntry(rootEntry);
-        }
-    }
-
-    /**
-     * Sets the given entry as the model for the page.
-     *
-     * @param entry the root entry
-     */
-    public void setRootEntry(IPropertySheetEntry entry) {
-        rootEntry = entry;
-        if (viewer != null) {
-			// the following will trigger an update
-            viewer.setRootEntry(rootEntry);
-		}
-    }
-
-    /**
-	 * Sets the sorter used for sorting categories and entries in the viewer
-	 * of this page.
-	 * <p>
-	 * The default sorter sorts categories and entries alphabetically.
-	 * </p>
-	 * @param sorter the sorter to set (<code>null</code> will reset to the
-	 * default sorter)
-     * @since 3.1
-	 */
-	protected void setSorter(PropertySheetSorter sorter) {
-		this.sorter = sorter;
-        if (viewer != null) {
-        	viewer.setSorter(sorter);
-        	
-        	// the following will trigger an update
-        	if(null != viewer.getRootEntry()) {
-				viewer.setRootEntry(rootEntry);
-			}
-        }
-	}
-
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java
deleted file mode 100644
index 1a958b9..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetSorter.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 Gunnar Wagenknecht and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Gunnar Wagenknecht - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.views.properties;
-
-import java.text.Collator; // can't use ICU, in public API
-import java.util.Arrays;
-import java.util.Comparator;
-
-/**
- * Class used by {@link org.eclipse.ui.views.properties.PropertySheetPage} to
- * sort properties.
- * <p>
- * The default implementation sorts alphabetically. Subclasses may overwrite to
- * implement custom sorting.
- * </p>
- *
- * @since 3.1
- */
-public class PropertySheetSorter  {
-
-	/**
-	 * The collator used to sort strings.
-	 */
-	private Collator collator;
-
-	/**
-	 * Creates a new sorter, which uses the default collator to sort strings.
-	 */
-	public PropertySheetSorter() {
-		this(Collator.getInstance());
-	}
-
-	/**
-	 * Creates a new sorter, which uses the given collator to sort strings.
-	 * 
-	 * @param collator
-	 *            the collator to use to sort strings
-	 */
-	public PropertySheetSorter(Collator collator) {
-		this.collator = collator;
-	}
-
-	/**
-	 * Returns a negative, zero, or positive number depending on whether the
-	 * first element is less than, equal to, or greater than the second element.
-	 * <p>
-	 * The default implementation of this method uses the collator to
-	 * compare the display names. Subclasses may override.
-	 * </p>
-	 * 
-	 * @param entryA
-	 *            the first element
-	 * @param entryB
-	 *            the second element
-	 * @return a negative number if the first element is less than the second
-	 *         element; the value <code>0</code> if the first element is equal
-	 *         to the second element; and a positive number if the first element
-	 *         is greater than the second element
-	 */
-	public int compare(IPropertySheetEntry entryA, IPropertySheetEntry entryB) {
-		return getCollator().compare(entryA.getDisplayName(),
-				entryB.getDisplayName());
-	}
-
-	/**
-	 * Returns a negative, zero, or positive number depending on whether the
-	 * first element is less than, equal to, or greater than the second element.
-	 * <p>
-	 * The default implementation of this method uses the collator to
-	 * compare the strings. Subclasses may override.
-	 * </p>
-	 * 
-	 * @param categoryA
-	 *            the first element
-	 * @param categoryB
-	 *            the second element
-	 * @return a negative number if the first element is less than the second
-	 *         element; the value <code>0</code> if the first element is equal
-	 *         to the second element; and a positive number if the first element
-	 *         is greater than the second element
-	 */
-	public int compareCategories(String categoryA, String categoryB) {
-		return getCollator().compare(categoryA, categoryB);
-	}
-
-	/**
-	 * Returns the collator used to sort strings.
-	 * 
-	 * @return the collator used to sort strings
-	 */
-	protected Collator getCollator() {
-		return collator;
-	}
-
-	/**
-	 * Sorts the given elements in-place, modifying the given array.
-	 * <p>
-	 * The default implementation of this method uses the java.util.Arrays#sort
-	 * algorithm on the given array, calling <code>compare</code> to compare
-	 * elements.
-	 * </p>
-	 * <p>
-	 * Subclasses may reimplement this method to provide a more optimized
-	 * implementation.
-	 * </p>
-	 * 
-	 * @param entries
-	 *            the elements to sort
-	 */
-	public void sort(IPropertySheetEntry[] entries) {
-		Arrays.sort(entries, new Comparator() {
-			public int compare(Object a, Object b) {
-				return PropertySheetSorter.this.compare(
-						(IPropertySheetEntry) a, (IPropertySheetEntry) b);
-			}
-		});
-	}
-
-	/**
-	 * Sorts the given categories in-place, modifying the given array.
-	 * 
-	 * @param categories
-	 *            the categories to sort
-	 */
-	void sort(PropertySheetCategory[] categories) {
-		Arrays.sort(categories, new Comparator() {
-			public int compare(Object a, Object b) {
-				return PropertySheetSorter.this.compareCategories(
-						((PropertySheetCategory) a).getCategoryName(),
-						((PropertySheetCategory) b).getCategoryName());
-			}
-		});
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetViewer.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetViewer.java
deleted file mode 100644
index 514f64f..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertySheetViewer.java
+++ /dev/null
@@ -1,1389 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Gunnar Wagenknecht - fix for bug 21756 [PropertiesView] property view sorting
- *******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-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.ListenerList;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TreeEditor;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TreeEvent;
-import org.eclipse.swt.events.TreeListener;
-import org.eclipse.swt.graphics.Image;
-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.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.internal.views.properties.PropertiesMessages;
-
-/**
- * The PropertySheetViewer displays the properties of objects. The model for the
- * viewer consists of a hierarchy of <code>IPropertySheetEntry</code>.
- * <p>
- * This viewer also supports the optional catogorization of the first level
- * <code>IPropertySheetEntry</code> s by using instances of
- * <code>PropertySheetCategory</code>.
- *  
- */
-/* package */
-class PropertySheetViewer extends Viewer {
-    // The input objects for the viewer
-    private Object[] input;
-
-    // The root entry of the viewer
-    private IPropertySheetEntry rootEntry;
-
-    // The current categories
-    private PropertySheetCategory[] categories;
-
-    // SWT widgets
-    private Tree tree;
-
-    /**
-     * Maintain a map from the PropertySheet entry to its
-     * corresponding TreeItem. This is used in 'findItem' to
-     * greatly increase the performance.
-     */
-    private HashMap entryToItemMap = new HashMap();
-    
-    private TreeEditor treeEditor;
-
-    private static String[] columnLabels = {
-            PropertiesMessages.PropertyViewer_property, PropertiesMessages.PropertyViewer_value };
-
-    private static String MISCELLANEOUS_CATEGORY_NAME = PropertiesMessages.PropertyViewer_misc;
-
-    // Cell editor support.
-    private int columnToEdit = 1;
-
-    private CellEditor cellEditor;
-
-    private IPropertySheetEntryListener entryListener;
-
-    private ICellEditorListener editorListener;
-
-    // Flag to indicate if categories (if any) should be shown
-    private boolean isShowingCategories = true;
-
-    // Flag to indicate expert properties should be shown
-    private boolean isShowingExpertProperties = false;
-
-    // The status line manager for showing messages
-    private IStatusLineManager statusLineManager;
-
-    // Cell editor activation listeners
-    private ListenerList activationListeners = new ListenerList();
-    
-    // the property sheet sorter
-    private PropertySheetSorter sorter = new PropertySheetSorter();
-
-    /**
-     * Creates a property sheet viewer on a newly-created tree control
-     * under the given parent. The viewer has no input, and no root entry.
-     * 
-     * @param parent
-     *            the parent control
-     */
-    public PropertySheetViewer(Composite parent) {
-        tree = new Tree(parent, SWT.FULL_SELECTION | SWT.SINGLE
-                | SWT.HIDE_SELECTION);
-
-        // configure the widget
-        tree.setLinesVisible(true);
-        tree.setHeaderVisible(true);
-
-        // configure the columns
-        addColumns();
-
-        // add our listeners to the widget
-        hookControl();
-
-        // create a new tree editor
-        treeEditor = new TreeEditor(tree);
-
-        // create the entry and editor listener
-        createEntryListener();
-        createEditorListener();
-    }
-
-    /**
-     * Activate a cell editor for the given selected tree item.
-     * 
-     * @param item
-     *            the selected tree item
-     */
-    private void activateCellEditor(TreeItem item) {
-        // ensure the cell editor is visible
-        tree.showSelection();
-
-        // Get the entry for this item
-        IPropertySheetEntry activeEntry = (IPropertySheetEntry) item.getData();
-
-        // Get the cell editor for the entry.
-        // Note that the editor parent must be the Tree control
-        cellEditor = activeEntry.getEditor(tree);
-
-        if (cellEditor == null) {
-			// unable to create the editor
-            return;
-		}
-
-        // activate the cell editor
-        cellEditor.activate();
-
-        // if the cell editor has no control we can stop now
-        Control control = cellEditor.getControl();
-        if (control == null) {
-            cellEditor.deactivate();
-            cellEditor = null;
-            return;
-        }
-
-        // add our editor listener
-        cellEditor.addListener(editorListener);
-
-        // set the layout of the tree editor to match the cell editor
-        CellEditor.LayoutData layout = cellEditor.getLayoutData();
-        treeEditor.horizontalAlignment = layout.horizontalAlignment;
-        treeEditor.grabHorizontal = layout.grabHorizontal;
-        treeEditor.minimumWidth = layout.minimumWidth;
-        treeEditor.setEditor(control, item, columnToEdit);
-
-        // set the error text from the cel editor
-        setErrorMessage(cellEditor.getErrorMessage());
-
-        // give focus to the cell editor
-        cellEditor.setFocus();
-
-        // notify of activation
-        fireCellEditorActivated(cellEditor);
-    }
-
-    /**
-     * Adds a cell editor activation listener. Has no effect if an identical
-     * activation listener is already registered.
-     * 
-     * @param listener
-     *            a cell editor activation listener
-     */
-    /* package */
-    void addActivationListener(ICellEditorActivationListener listener) {
-        activationListeners.add(listener);
-    }
-
-    /**
-     * Add columns to the tree and set up the layout manager accordingly.
-     */
-    private void addColumns() {
-
-        // create the columns
-        TreeColumn[] columns = tree.getColumns();
-        for (int i = 0; i < columnLabels.length; i++) {
-            String string = columnLabels[i];
-            if (string != null) {
-                TreeColumn column;
-                if (i < columns.length) {
-					column = columns[i];
-				} else {
-					column = new TreeColumn(tree, 0);
-				}
-                column.setText(string);
-            }
-        }
-
-        tree.addControlListener(new ControlAdapter() {
-            public void controlResized(ControlEvent e) {
-                Rectangle area = tree.getClientArea();
-                TreeColumn[] columns = tree.getColumns();
-                if (area.width > 0) {
-                    columns[0].setWidth(area.width * 40 / 100);
-                    columns[1].setWidth(area.width - columns[0].getWidth() - 4);
-                    tree.removeControlListener(this);
-                }
-            }
-        });
-
-    }
-
-    /**
-     * Asks the entry currently being edited to apply its current cell editor
-     * value.
-     */
-    private void applyEditorValue() {
-        TreeItem treeItem = treeEditor.getItem();
-        // treeItem can be null when view is opened
-        if (treeItem == null || treeItem.isDisposed()) {
-			return;
-		}
-        IPropertySheetEntry entry = (IPropertySheetEntry) treeItem.getData();
-        entry.applyEditorValue();
-    }
-
-    /**
-     * Creates the child items for the given widget (item or tree). This
-     * method is called when the item is expanded for the first time or when an
-     * item is assigned as the root of the tree.
-     * @param widget TreeItem or Tree to create the children in.
-     */
-    private void createChildren(Widget widget) {
-        // get the current child items
-        TreeItem[] childItems = getChildItems(widget);
-
-        if (childItems.length > 0) {
-            Object data = childItems[0].getData();
-            if (data != null) {
-				// children already there!
-                return;
-			}
-            // remove the dummy
-            childItems[0].dispose();
-        }
-
-        // get the children and create their tree items
-        Object node = widget.getData();
-        List children = getChildren(node);
-        if (children.isEmpty()) {
-			// this item does't actually have any children
-            return;
-		}
-        for (int i = 0; i < children.size(); i++) {
-            // create a new tree item
-            createItem(children.get(i), widget, i);
-        }
-    }
-
-    /**
-     * Creates a new cell editor listener.
-     */
-    private void createEditorListener() {
-        editorListener = new ICellEditorListener() {
-            public void cancelEditor() {
-                deactivateCellEditor();
-            }
-
-            public void editorValueChanged(boolean oldValidState,
-                    boolean newValidState) {
-                //Do nothing
-            }
-
-            public void applyEditorValue() {
-                //Do nothing
-            }
-        };
-    }
-
-    /**
-     * Creates a new property sheet entry listener.
-     */
-    private void createEntryListener() {
-        entryListener = new IPropertySheetEntryListener() {
-            public void childEntriesChanged(IPropertySheetEntry entry) {
-                // update the children of the given entry
-                if (entry == rootEntry) {
-					updateChildrenOf(entry, tree);
-				} else {
-                    TreeItem item = findItem(entry);
-                    if (item != null) {
-						updateChildrenOf(entry, item);
-					}
-                }
-            }
-
-            public void valueChanged(IPropertySheetEntry entry) {
-                // update the given entry
-                TreeItem item = findItem(entry);
-                if (item != null) {
-					updateEntry(entry, item);
-				}
-            }
-
-            public void errorMessageChanged(IPropertySheetEntry entry) {
-                // update the error message
-                setErrorMessage(entry.getErrorText());
-            }
-        };
-    }
-
-    /**
-     * Creates a new tree item, sets the given entry or category (node)in
-     * its user data field, and adds a listener to the node if it is an entry.
-     * 
-     * @param node
-     *            the entry or category associated with this item
-     * @param parent
-     *            the parent widget
-     * @param index
-     *            indicates the position to insert the item into its parent
-     */
-    private void createItem(Object node, Widget parent, int index) {
-        // create the item
-        TreeItem item;
-        if (parent instanceof TreeItem) {
-			item = new TreeItem((TreeItem) parent, SWT.NONE, index);
-		} else {
-			item = new TreeItem((Tree) parent, SWT.NONE, index);
-		}
-
-        // set the user data field
-        item.setData(node);
-        
-        // Cache the entry <-> tree item relationship 
-        entryToItemMap.put(node, item);
-        
-        // Always ensure that if the tree item goes away that it's
-        // removed from the cache
-        item.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				Object possibleEntry = e.widget.getData();
-				if (possibleEntry != null)
-					entryToItemMap.remove(possibleEntry);
-			}
-        });        
-
-        // add our listener
-        if (node instanceof IPropertySheetEntry) {
-			((IPropertySheetEntry) node)
-                    .addPropertySheetEntryListener(entryListener);
-		}
-
-        // update the visual presentation
-        if (node instanceof IPropertySheetEntry) {
-			updateEntry((IPropertySheetEntry) node, item);
-		} else {
-			updateCategory((PropertySheetCategory) node, item);
-		}
-    }
-
-    /**
-     * Deactivate the currently active cell editor.
-     */
-    /* package */
-    void deactivateCellEditor() {
-        treeEditor.setEditor(null, null, columnToEdit);
-        if (cellEditor != null) {
-            cellEditor.deactivate();
-            fireCellEditorDeactivated(cellEditor);
-            cellEditor.removeListener(editorListener);
-            cellEditor = null;
-        }
-        // clear any error message from the editor
-        setErrorMessage(null);
-    }
-
-    /**
-     * Sends out a selection changed event for the entry tree to all registered
-     * listeners.
-     */
-    private void entrySelectionChanged() {
-        SelectionChangedEvent changeEvent = new SelectionChangedEvent(this,
-                getSelection());
-        fireSelectionChanged(changeEvent);
-    }
-
-    /**
-     * Return a tree item in the property sheet that has the same entry in
-     * its user data field as the supplied entry. Return <code>null</code> if
-     * there is no such item.
-     * 
-     * @param entry
-     *            the entry to serach for
-     * @return the TreeItem for the entry or <code>null</code> if
-     * there isn't one.
-     */
-    private TreeItem findItem(IPropertySheetEntry entry) {
-        // Iterate through treeItems to find item
-        TreeItem[] items = tree.getItems();
-        for (int i = 0; i < items.length; i++) {
-            TreeItem item = items[i];
-            TreeItem findItem = findItem(entry, item);
-            if (findItem != null) {
-				return findItem;
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Return a tree item in the property sheet that has the same entry in
-     * its user data field as the supplied entry. Return <code>null</code> if
-     * there is no such item.
-     * 
-     * @param entry
-     *            the entry to search for
-     * @param item
-     *            the item look in
-     * @return the TreeItem for the entry or <code>null</code> if
-     * there isn't one.
-     */
-    private TreeItem findItem(IPropertySheetEntry entry, TreeItem item) {
-    	// If we can find the TreeItem in the cache, just return it
-    	Object mapItem = entryToItemMap.get(entry);
-    	if (mapItem != null && mapItem instanceof TreeItem)
-    		return (TreeItem) mapItem;
-    	
-        // compare with current item
-        if (entry == item.getData()) {
-			return item;
-		}
-
-        // recurse over children
-        TreeItem[] items = item.getItems();
-        for (int i = 0; i < items.length; i++) {
-            TreeItem childItem = items[i];
-            TreeItem findItem = findItem(entry, childItem);
-            if (findItem != null) {
-				return findItem;
-			}
-        }
-        return null;
-    }
-
-    /**
-     * Notifies all registered cell editor activation listeners of a cell editor
-     * activation.
-     * 
-     * @param activatedCellEditor
-     *            the activated cell editor
-     */
-    private void fireCellEditorActivated(CellEditor activatedCellEditor) {
-        Object[] listeners = activationListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((ICellEditorActivationListener) listeners[i])
-                    .cellEditorActivated(activatedCellEditor);
-        }
-    }
-
-    /**
-     * Notifies all registered cell editor activation listeners of a cell editor
-     * deactivation.
-     * 
-     * @param activatedCellEditor
-     *            the deactivated cell editor
-     */
-    private void fireCellEditorDeactivated(CellEditor activatedCellEditor) {
-        Object[] listeners = activationListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((ICellEditorActivationListener) listeners[i])
-                    .cellEditorDeactivated(activatedCellEditor);
-        }
-    }
-
-    /**
-     * Returns the active cell editor of this property sheet viewer or
-     * <code>null</code> if no cell editor is active.
-     * 
-     * @return the active cell editor
-     */
-    public CellEditor getActiveCellEditor() {
-        return cellEditor;
-    }
-
-    private TreeItem[] getChildItems(Widget widget) {
-        if (widget instanceof Tree) {
-            return ((Tree) widget).getItems();
-        }
-        else if (widget instanceof TreeItem) {
-            return ((TreeItem) widget).getItems();
-        }
-        // shouldn't happen
-        return new TreeItem[0];
-    }
-    
-    /**
-     * Returns the sorted children of the given category or entry
-     *
-     * @param node a category or entry
-     * @return the children of the given category or entry
-     *  (element type <code>IPropertySheetEntry</code> or 
-     *  <code>PropertySheetCategory</code>)
-     */
-    private List getChildren(Object node) {
-        // cast the entry or category
-        IPropertySheetEntry entry = null;
-        PropertySheetCategory category = null;
-        if (node instanceof IPropertySheetEntry) {
-			entry = (IPropertySheetEntry) node;
-		} else {
-			category = (PropertySheetCategory) node;
-		}
-
-        // get the child entries or categories
-        List children;
-        if (category == null) {
-			children = getChildren(entry);
-		} else {
-			children = getChildren(category);
-		}
-
-        return children;
-    }
-
-    /**
-     * Returns the child entries of the given entry
-     * @param entry The entry to search
-     * 
-     * @return the children of the given entry (element type
-     *         <code>IPropertySheetEntry</code>)
-     */
-    private List getChildren(IPropertySheetEntry entry) {
-        // if the entry is the root and we are showing categories, and we have
-        // more than the
-        // defualt category, return the categories
-        if (entry == rootEntry && isShowingCategories) {
-            if (categories.length > 1
-                    || (categories.length == 1 && !categories[0]
-                            .getCategoryName().equals(
-                                    MISCELLANEOUS_CATEGORY_NAME))) {
-				return Arrays.asList(categories);
-			}
-        }
-
-        // return the sorted & filtered child entries
-        return getSortedEntries(getFilteredEntries(entry.getChildEntries()));
-    }
-
-    /**
-     * Returns the child entries of the given category
-     * 
-     * @param category The category to search
-     * 
-     * @return the children of the given category (element type
-     *         <code>IPropertySheetEntry</code>)
-     */
-    private List getChildren(PropertySheetCategory category) {
-        return getSortedEntries(getFilteredEntries(category.getChildEntries()));
-    }
-
-    /*
-     * (non-Javadoc) Method declared on Viewer.
-     */
-    public Control getControl() {
-        return tree;
-    }
-
-    /**
-     * Returns the entries which match the current filter.
-     *
-     * @param entries the entries to filter
-     * @return the entries which match the current filter
-     *  (element type <code>IPropertySheetEntry</code>)
-     */
-    private List getFilteredEntries(IPropertySheetEntry[] entries) {
-        // if no filter just return all entries
-        if (isShowingExpertProperties) {
-			return Arrays.asList(entries);
-		}
-
-        // check each entry for the filter
-        List filteredEntries = new ArrayList(entries.length);
-        for (int i = 0; i < entries.length; i++) {
-            IPropertySheetEntry entry = entries[i];
-            if (entry != null) {
-                String[] filters = entry.getFilters();
-                boolean expert = false;
-                if (filters != null) {
-                    for (int j = 0; j < filters.length; j++) {
-                        if (filters[j].equals(IPropertySheetEntry.FILTER_ID_EXPERT)) {
-                            expert = true;
-                            break;
-                        }
-                    }
-                }
-                if (!expert) {
-					filteredEntries.add(entry);
-				}
-            }
-        }
-        return filteredEntries;
-    }
-    
-    /**
-	 * Returns a sorted list of <code>IPropertySheetEntry</code> entries.
-	 * 
-	 * @param unsortedEntries
-	 *            unsorted list of <code>IPropertySheetEntry</code>
-	 * @return a sorted list of the specified entries
-	 */
-	private List getSortedEntries(List unsortedEntries) {
-		IPropertySheetEntry[] propertySheetEntries = (IPropertySheetEntry[]) unsortedEntries
-				.toArray(new IPropertySheetEntry[unsortedEntries.size()]);
-		sorter.sort(propertySheetEntries);
-		return Arrays.asList(propertySheetEntries);
-	}
-    
-
-    /**
-	 * The <code>PropertySheetViewer</code> implementation of this method
-	 * declared on <code>IInputProvider</code> returns the objects for which
-	 * the viewer is currently showing properties. It returns an
-	 * <code>Object[]</code> or <code>null</code>.
-	 */
-    public Object getInput() {
-        return input;
-    }
-
-    /**
-     * Returns the root entry for this property sheet viewer. The root entry is
-     * not visible in the viewer.
-     * 
-     * @return the root entry or <code>null</code>.
-     */
-    public IPropertySheetEntry getRootEntry() {
-        return rootEntry;
-    }
-
-    /**
-     * The <code>PropertySheetViewer</code> implementation of this
-     * <code>ISelectionProvider</code> method returns the result as a
-     * <code>StructuredSelection</code>.
-     * <p>
-     * Note that this method only includes <code>IPropertySheetEntry</code> in
-     * the selection (no categories).
-     * </p>
-     */
-    public ISelection getSelection() {
-        if (tree.getSelectionCount() == 0) {
-			return StructuredSelection.EMPTY;
-		}
-        TreeItem[] sel = tree.getSelection();
-        List entries = new ArrayList(sel.length);
-        for (int i = 0; i < sel.length; i++) {
-            TreeItem ti = sel[i];
-            Object data = ti.getData();
-            if (data instanceof IPropertySheetEntry) {
-				entries.add(data);
-			}
-        }
-        return new StructuredSelection(entries);
-    }
-
-    /**
-     * Selection in the viewer occurred. Check if there is an active cell
-     * editor. If yes, deactivate it and check if a new cell editor must be
-     * activated.
-     * 
-     * @param selection
-     *            the TreeItem that is selected
-     */
-    private void handleSelect(TreeItem selection) {
-        // deactivate the current cell editor
-        if (cellEditor != null) {
-            applyEditorValue();
-            deactivateCellEditor();
-        }
-
-        if (selection == null) {
-            setMessage(null);
-            setErrorMessage(null);
-        } else {
-            Object object = selection.getData();
-            if (object instanceof IPropertySheetEntry) {
-                // get the entry for this item
-                IPropertySheetEntry activeEntry = (IPropertySheetEntry) object;
-
-                // display the description for the item
-                setMessage(activeEntry.getDescription());
-
-                // activate a cell editor on the selection
-                activateCellEditor(selection);
-            }
-        }
-        entrySelectionChanged();
-    }
-
-    /**
-     * The expand icon for a node in this viewer has been selected to collapse a
-     * subtree. Deactivate the cell editor
-     * 
-     * @param event
-     *            the SWT tree event
-     */
-    private void handleTreeCollapse(TreeEvent event) {
-        if (cellEditor != null) {
-            applyEditorValue();
-            deactivateCellEditor();
-        }
-    }
-
-    /**
-     * The expand icon for a node in this viewer has been selected to expand the
-     * subtree. Create the children 1 level deep.
-     * <p>
-     * Note that we use a "dummy" item (no user data) to show a "+" icon beside
-     * an item which has children before the item is expanded now that it is
-     * being expanded we have to create the real child items
-     * </p>
-     * 
-     * @param event
-     *            the SWT tree event
-     */
-    private void handleTreeExpand(TreeEvent event) {
-        createChildren(event.item);
-    }
-
-    /**
-     * Hides the categories.
-     */
-    /* package */
-    void hideCategories() {
-        isShowingCategories = false;
-        categories = null;
-        refresh();
-    }
-
-    /**
-     * Hides the expert properties.
-     */
-    /* package */
-    void hideExpert() {
-        isShowingExpertProperties = false;
-        refresh();
-    }
-
-    /**
-     * Establish this viewer as a listener on the control
-     */
-    private void hookControl() {
-        // Handle selections in the Tree
-        // Part1: Double click only (allow traversal via keyboard without
-        // activation
-        tree.addSelectionListener(new SelectionAdapter() {
-            /* (non-Javadoc)
-             * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-             */
-            public void widgetSelected(SelectionEvent e) {
-            	// The viewer only owns the status line when there is
-            	// no 'active' cell editor
-            	if (cellEditor == null || !cellEditor.isActivated()) {
-					updateStatusLine(e.item);
-				}
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetDefaultSelected(SelectionEvent e) {
-				if (e.item instanceof TreeItem)
-					handleSelect((TreeItem) e.item);
-            }
-        });
-        // Part2: handle single click activation of cell editor
-        tree.addMouseListener(new MouseAdapter() {
-            public void mouseDown(MouseEvent event) {
-                // only activate if there is a cell editor
-                Point pt = new Point(event.x, event.y);
-                TreeItem item = tree.getItem(pt);
-                if (item != null) {
-                    handleSelect(item);
-                }
-            }
-        });
-
-        // Add a tree listener to expand and collapse which
-        // allows for lazy creation of children
-        tree.addTreeListener(new TreeListener() {
-            public void treeExpanded(final TreeEvent event) {
-                handleTreeExpand(event);
-            }
-
-            public void treeCollapsed(final TreeEvent event) {
-                handleTreeCollapse(event);
-            }
-        });
-
-        // Refresh the tree when F5 pressed
-        tree.addKeyListener(new KeyAdapter() {
-            public void keyReleased(KeyEvent e) {
-                if (e.character == SWT.ESC) {
-					deactivateCellEditor();
-				} else if (e.keyCode == SWT.F5) {
-					// The following will simulate a reselect
-                    setInput(getInput());
-				}
-            }
-        });
-    }
-
-    /**
-     * Update the status line based on the data of item.
-     * @param item
-     */
-    protected void updateStatusLine(Widget item) {
-    	setMessage(null);
-    	setErrorMessage(null);
-    	
-    	// Update the status line
-    	if (item != null) {
-    		if (item.getData() instanceof PropertySheetEntry) {
-    			PropertySheetEntry psEntry = (PropertySheetEntry) item.getData();
-    			
-    			// For entries, show the description if any, else show the label
-    			String desc = psEntry.getDescription();
-    			if (desc != null && desc.length() > 0) {
-					setMessage(psEntry.getDescription());
-				} else {
-					setMessage(psEntry.getDisplayName());
-				}
-    		}
-    			
-    		else if (item.getData() instanceof PropertySheetCategory) {
-    			PropertySheetCategory psCat = (PropertySheetCategory) item.getData();
-    			setMessage(psCat.getCategoryName());
-    		}
-    	}
-	}
-
-    /**
-     * Updates all of the items in the tree.
-     * <p>
-     * Note that this means ensuring that the tree items reflect the state of
-     * the model (entry tree) it does not mean telling the model to update
-     * itself.
-     * </p>
-     */
-    public void refresh() {
-        if (rootEntry != null) {
-            updateChildrenOf(rootEntry, tree);
-        }
-    }
-
-    /**
-     * Removes the given cell editor activation listener from this viewer. Has
-     * no effect if an identical activation listener is not registered.
-     * 
-     * @param listener
-     *            a cell editor activation listener
-     */
-    /* package */
-    void removeActivationListener(ICellEditorActivationListener listener) {
-        activationListeners.remove(listener);
-    }
-
-    /**
-     * Remove the given item from the tree. Remove our listener if the
-     * item's user data is a an entry then set the user data to null
-     * 
-     * @param item
-     *            the item to remove
-     */
-    private void removeItem(TreeItem item) {
-        Object data = item.getData();
-        if (data instanceof IPropertySheetEntry) {
-			((IPropertySheetEntry) data)
-                    .removePropertySheetEntryListener(entryListener);
-		}
-        item.setData(null);
-        
-        // We explicitly remove the entry from the map since it's data has been null'd
-        entryToItemMap.remove(data);
-
-        item.dispose();
-    }
-
-    /**
-     * Reset the selected properties to their default values.
-     */
-    public void resetProperties() {
-        // Determine the selection
-        IStructuredSelection selection = (IStructuredSelection) getSelection();
-
-        // Iterate over entries and reset them
-        Iterator itr = selection.iterator();
-        while (itr.hasNext()) {
-			((IPropertySheetEntry) itr.next()).resetPropertyValue();
-		}
-    }
-
-    /**
-     * Sets the error message to be displayed in the status line.
-     * 
-     * @param errorMessage
-     *            the message to be displayed, or <code>null</code>
-     */
-    private void setErrorMessage(String errorMessage) {
-        // show the error message
-        if (statusLineManager != null) {
-			statusLineManager.setErrorMessage(errorMessage);
-		}
-    }
-
-    /**
-     * The <code>PropertySheetViewer</code> implementation of this method
-     * declared on <code>Viewer</code> method sets the objects for which the
-     * viewer is currently showing properties.
-     * <p>
-     * The input must be an <code>Object[]</code> or <code>null</code>.
-     * </p>
-     * 
-     * @param newInput
-     *            the input of this viewer, or <code>null</code> if none
-     */
-    public void setInput(Object newInput) {
-        // need to save any changed value when user clicks elsewhere
-        applyEditorValue();
-        // deactivate our cell editor
-        deactivateCellEditor();
-
-        // set the new input to the root entry
-        input = (Object[]) newInput;
-        if (input == null) {
-			input = new Object[0];
-		}
-
-        if (rootEntry != null) {
-            rootEntry.setValues(input);
-            // ensure first level children are visible
-            updateChildrenOf(rootEntry, tree);
-        }
-        
-        // Clear any previous StatusLine messages
-    	updateStatusLine(null);
-    }
-
-    /**
-     * Sets the message to be displayed in the status line. This message is
-     * displayed when there is no error message.
-     * 
-     * @param message
-     *            the message to be displayed, or <code>null</code>
-     */
-    private void setMessage(String message) {
-        // show the message
-        if (statusLineManager != null) {
-			statusLineManager.setMessage(message);
-		}
-    }
-
-    /**
-     * Sets the root entry for this property sheet viewer. The root entry is not
-     * visible in the viewer.
-     * 
-     * @param root
-     *            the root entry
-     */
-    public void setRootEntry(IPropertySheetEntry root) {
-        // If we have a root entry, remove our entry listener
-        if (rootEntry != null) {
-			rootEntry.removePropertySheetEntryListener(entryListener);
-		}
-
-        rootEntry = root;
-
-        // Set the root as user data on the tree
-        tree.setData(rootEntry);
-
-        // Add an IPropertySheetEntryListener to listen for entry change
-        // notifications
-        rootEntry.addPropertySheetEntryListener(entryListener);
-
-        // Pass our input to the root, this will trigger entry change
-        // callbacks to update this viewer
-        setInput(input);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.viewers.Viewer#setSelection(org.eclipse.jface.viewers.ISelection, boolean)
-     */
-    public void setSelection(ISelection selection, boolean reveal) {
-        //Do nothing by default
-    }
-
-    /**
-	 * Sets the sorter for this viewer.
-	 * <p>
-	 * The default sorter sorts categories and entries alphabetically. 
-	 * A viewer update needs to be triggered after the sorter has changed.
-	 * </p>
-	 * @param sorter the sorter to set (<code>null</code> will reset to the
-	 * default sorter)
-     * @since 3.1
-	 */
-	public void setSorter(PropertySheetSorter sorter) {
-		if (null == sorter) {
-			sorter = new PropertySheetSorter();
-		}
-		this.sorter = sorter;
-	}
-
-    /**
-     * Sets the status line manager this view will use to show messages.
-     * 
-     * @param manager
-     *            the status line manager
-     */
-    public void setStatusLineManager(IStatusLineManager manager) {
-        statusLineManager = manager;
-    }
-
-    /**
-     * Shows the categories.
-     */
-    /* package */
-    void showCategories() {
-        isShowingCategories = true;
-        refresh();
-    }
-
-    /**
-     * Shows the expert properties.
-     */
-    /* package */
-    void showExpert() {
-        isShowingExpertProperties = true;
-        refresh();
-    }
-
-    /**
-     * Updates the categories. Reuses old categories if possible.
-     */
-    private void updateCategories() {
-        // lazy initialize
-        if (categories == null) {
-			categories = new PropertySheetCategory[0];
-		}
-
-        // get all the filtered child entries of the root
-        List childEntries = getFilteredEntries(rootEntry.getChildEntries());
-
-        // if the list is empty, just set an empty categories array
-        if (childEntries.size() == 0) {
-            categories = new PropertySheetCategory[0];
-            return;
-        }
-
-        // cache old categories by their descriptor name
-        Map categoryCache = new HashMap(categories.length * 2 + 1);
-        for (int i = 0; i < categories.length; i++) {
-            categories[i].removeAllEntries();
-            categoryCache.put(categories[i].getCategoryName(), categories[i]);
-        }
-
-        // create a list of categories to get rid of
-        List categoriesToRemove = new ArrayList(Arrays.asList(categories));
-
-        // Determine the categories
-        PropertySheetCategory misc = (PropertySheetCategory) categoryCache
-                .get(MISCELLANEOUS_CATEGORY_NAME);
-        if (misc == null) {
-			misc = new PropertySheetCategory(MISCELLANEOUS_CATEGORY_NAME);
-		}
-        boolean addMisc = false;
-
-        for (int i = 0; i < childEntries.size(); i++) {
-            IPropertySheetEntry childEntry = (IPropertySheetEntry) childEntries
-                    .get(i);
-            String categoryName = childEntry.getCategory();
-            if (categoryName == null) {
-                misc.addEntry(childEntry);
-                addMisc = true;
-                categoriesToRemove.remove(misc);
-            } else {
-                PropertySheetCategory category = (PropertySheetCategory) categoryCache
-                        .get(categoryName);
-                if (category == null) {
-                    category = new PropertySheetCategory(categoryName);
-                    categoryCache.put(categoryName, category);
-                } else {
-                    categoriesToRemove.remove(category);
-                }
-                category.addEntry(childEntry);
-            }
-        }
-
-        // Add the PSE_MISC category if it has entries
-        if (addMisc) {
-			categoryCache.put(MISCELLANEOUS_CATEGORY_NAME, misc);
-		}
-        
-        // Sort the categories.
-        // Rather than just sorting categoryCache.values(), we'd like the original order to be preserved
-        // (with misc added at the end, if needed) before passing to the sorter.
-        ArrayList categoryList = new ArrayList();
-        Set seen = new HashSet(childEntries.size());
-        for (int i = 0; i < childEntries.size(); i++) {
-            IPropertySheetEntry childEntry = (IPropertySheetEntry) childEntries
-                    .get(i);
-            String categoryName = childEntry.getCategory();
-            if (categoryName != null && !seen.contains(categoryName)) {
-                seen.add(categoryName);
-                PropertySheetCategory category = (PropertySheetCategory) categoryCache
-                        .get(categoryName);
-                if (category != null) { 
-                    categoryList.add(category);
-                }
-            }
-        }
-        if (addMisc && !seen.contains(MISCELLANEOUS_CATEGORY_NAME)) {
-            categoryList.add(misc);
-        }
-        
-        PropertySheetCategory[] categoryArray = (PropertySheetCategory[]) categoryList
-        	.toArray(new PropertySheetCategory[categoryList.size()]);
-        sorter.sort(categoryArray);
-        categories = categoryArray;
-    }
-
-    /**
-     * Update the category (but not its parent or children).
-     * 
-     * @param category
-     *            the category to update
-     * @param item
-     *            the tree item for the given entry
-     */
-    private void updateCategory(PropertySheetCategory category,
-            TreeItem item) {
-        // ensure that backpointer is correct
-        item.setData(category);
-        
-        // Update the map accordingly
-        entryToItemMap.put(category, item);
-
-        // Update the name and value columns
-        item.setText(0, category.getCategoryName());
-        item.setText(1, ""); //$NON-NLS-1$
-
-        // update the "+" icon
-        if (category.getAutoExpand()) {
-            // we auto expand categories when they first appear
-            createChildren(item);
-            item.setExpanded(true);
-            category.setAutoExpand(false);
-        } else {
-            // we do not want to auto expand categories if the user has
-            // collpased them
-            updatePlus(category, item);
-        }
-    }
-
-    /**
-     * Update the child entries or categories of the given entry or category. If
-     * the given node is the root entry and we are showing categories then the
-     * child entries are categories, otherwise they are entries.
-     * 
-     * @param node
-     *            the entry or category whose children we will update
-     * @param widget
-     *            the widget for the given entry, either a
-     *            <code>TableTree</code> if the node is the root node or a
-     *            <code>TreeItem</code> otherwise.
-     */
-    private void updateChildrenOf(Object node, Widget widget) {
-        // cast the entry or category
-        IPropertySheetEntry entry = null;
-        PropertySheetCategory category = null;
-        if (node instanceof IPropertySheetEntry) {
-			entry = (IPropertySheetEntry) node;
-		} else {
-			category = (PropertySheetCategory) node;
-		}
-
-        // get the current child tree items
-        TreeItem[] childItems = getChildItems(widget);
-
-        // optimization! prune collapsed subtrees
-        TreeItem item = null;
-        if (widget instanceof TreeItem) {
-            item = (TreeItem) widget;
-        }
-        if (item != null && !item.getExpanded()) {
-            // remove all children
-            for (int i = 0; i < childItems.length; i++) {
-                if (childItems[i].getData() != null) {
-                    removeItem(childItems[i]);
-                }
-            }
-
-            // append a dummy if necessary
-            if (category != null || entry.hasChildEntries()) {
-                // may already have a dummy
-                // It is either a category (which always has at least one child)
-                // or an entry with chidren.
-                // Note that this test is not perfect, if we have filtering on
-                // then there in fact may be no entires to show when the user
-                // presses the "+" expand icon. But this is an acceptable
-                // compromise.
-                childItems = getChildItems(widget);
-                if (childItems.length == 0) {
-                    new TreeItem(item, SWT.NULL);
-                }
-            }
-            return;
-        }
-
-        // get the child entries or categories
-        if (node == rootEntry && isShowingCategories) {
-			// update the categories
-            updateCategories();
-		}
-        List children = getChildren(node);
-
-        // remove items
-        Set set = new HashSet(childItems.length * 2 + 1);
-
-        for (int i = 0; i < childItems.length; i++) {
-            Object data = childItems[i].getData();
-            if (data != null) {
-                Object e = data;
-                int ix = children.indexOf(e);
-                if (ix < 0) { // not found
-                    removeItem(childItems[i]);
-                } else { // found
-                    set.add(e);
-                }
-            } else if (data == null) { // the dummy
-                childItems[i].dispose();
-            }
-        }
-
-        // WORKAROUND
-        int oldCnt = -1;
-        if (widget == tree) {
-			oldCnt = tree.getItemCount();
-		}
-
-        // add new items
-        int newSize = children.size();
-        for (int i = 0; i < newSize; i++) {
-            Object el = children.get(i);
-            if (!set.contains(el)) {
-				createItem(el, widget, i);
-			}
-        }
-
-        // WORKAROUND
-        if (widget == tree && oldCnt == 0 && tree.getItemCount() == 1) {
-            tree.setRedraw(false);
-            tree.setRedraw(true);
-        }
-
-        // get the child tree items after our changes
-        childItems = getChildItems(widget);
-
-        // update the child items
-        // This ensures that the children are in the correct order
-        // are showing the correct values.
-        for (int i = 0; i < newSize; i++) {
-            Object el = children.get(i);
-            if (el instanceof IPropertySheetEntry) {
-				updateEntry((IPropertySheetEntry) el, childItems[i]);
-			} else {
-                updateCategory((PropertySheetCategory) el, childItems[i]);
-                updateChildrenOf(el, childItems[i]);
-            }
-        }
-        // The tree's original selection may no longer apply after the update,
-        // so fire the selection changed event.
-        entrySelectionChanged();
-    }
-
-    /**
-     * Update the given entry (but not its children or parent)
-     * 
-     * @param entry
-     *            the entry we will update
-     * @param item
-     *            the tree item for the given entry
-     */
-    private void updateEntry(IPropertySheetEntry entry, TreeItem item) {
-        // ensure that backpointer is correct
-        item.setData(entry);
-        
-        // update the map accordingly
-        entryToItemMap.put(entry, item);
-
-        // update the name and value columns
-        item.setText(0, entry.getDisplayName());
-        item.setText(1, entry.getValueAsString());
-        Image image = entry.getImage();
-        if (item.getImage(1) != image) {
-			item.setImage(1, image);
-		}
-
-        // update the "+" icon
-        updatePlus(entry, item);
-    }
-
-    /**
-     * Updates the "+"/"-" icon of the tree item from the given entry
-     * or category.
-     *
-     * @param node the entry or category
-     * @param item the tree item being updated
-     */
-    private void updatePlus(Object node, TreeItem item) {
-        // cast the entry or category
-        IPropertySheetEntry entry = null;
-        PropertySheetCategory category = null;
-        if (node instanceof IPropertySheetEntry) {
-			entry = (IPropertySheetEntry) node;
-		} else {
-			category = (PropertySheetCategory) node;
-		}
-
-        boolean hasPlus = item.getItemCount() > 0;
-        boolean needsPlus = category != null || entry.hasChildEntries();
-        boolean removeAll = false;
-        boolean addDummy = false;
-
-        if (hasPlus != needsPlus) {
-            if (needsPlus) {
-                addDummy = true;
-            } else {
-                removeAll = true;
-            }
-        }
-        if (removeAll) {
-            // remove all children
-            TreeItem[] items = item.getItems();
-            for (int i = 0; i < items.length; i++) {
-                removeItem(items[i]);
-            }
-        }
-
-        if (addDummy) {
-            new TreeItem(item, SWT.NULL); // append a dummy to create the
-            // plus sign
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyShowInContext.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyShowInContext.java
deleted file mode 100644
index d1fbf61..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/PropertyShowInContext.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.views.properties;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.ShowInContext;
-
-/**
- * @since 3.4
- * 
- */
-public class PropertyShowInContext extends ShowInContext {
-
-	private IWorkbenchPart part;
-
-	/**
-	 * @param aPart
-	 * @param selection
-	 */
-	public PropertyShowInContext(IWorkbenchPart aPart, ISelection selection) {
-		super(null, selection);
-		part = aPart;
-	}
-
-	/**
-	 * @param aPart
-	 * @param aShowInContext
-	 */
-	public PropertyShowInContext(IWorkbenchPart aPart,
-			ShowInContext aShowInContext) {
-		super(aShowInContext.getInput(), aShowInContext.getSelection());
-		part = aPart;
-	}
-
-	/**
-	 * @return Returns the part.
-	 */
-	public IWorkbenchPart getPart() {
-		return part;
-	}
-
-	/**
-	 * @param part
-	 *            The part to set.
-	 */
-	public void setPart(IWorkbenchPart part) {
-		this.part = part;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((part == null) ? 0 : part.hashCode())
-				+ ((getSelection() == null) ? 0 : getSelection().hashCode())
-				+ ((getInput() == null) ? 0 : getInput().hashCode());
-		return result;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		PropertyShowInContext other = (PropertyShowInContext) obj;
-		// part needs to be equal
-		if (part == null) {
-			if (other.part != null)
-				return false;
-		} else if (!part.equals(other.part))
-			return false;
-		// selection needs to be equal
-		if (getSelection() == null) {
-			if (other.getSelection() != null)
-				return false;
-		} else if (!getSelection().equals(other.getSelection()))
-			return false;
-		// input needs to be equal, but only if both are really set.
-		// E.g. the property sheet doesn't have an input set if not created by ShowIn > ...
-		if (getInput() == null || other.getInput() == null) {
-				return true;
-		} else if (!getInput().equals(other.getInput()))
-			return false;
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java
deleted file mode 100644
index c9ff7c4..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/TextPropertyDescriptor.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.views.properties;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Descriptor for a property that has a value which should be edited with a 
- * text cell editor.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * <p>
- * Example:
- * <pre>
- * IPropertyDescriptor pd = new TextPropertyDescriptor("surname", "Last Name");
- * </pre>
- * </p>
- * @noextend This class is not intended to be subclassed by clients.
- */
-public class TextPropertyDescriptor extends PropertyDescriptor {
-    /**
-     * Creates an property descriptor with the given id and display name.
-     * 
-     * @param id the id of the property
-     * @param displayName the name to display for the property
-     */
-    public TextPropertyDescriptor(Object id, String displayName) {
-        super(id, displayName);
-    }
-
-    /**
-     * The <code>TextPropertyDescriptor</code> implementation of this 
-     * <code>IPropertyDescriptor</code> method creates and returns a new
-     * <code>TextCellEditor</code>.
-     * <p>
-     * The editor is configured with the current validator if there is one.
-     * </p>
-     */
-    public CellEditor createPropertyEditor(Composite parent) {
-        CellEditor editor = new TextCellEditor(parent);
-        if (getValidator() != null) {
-			editor.setValidator(getValidator());
-		}
-        return editor;
-    }
-}
diff --git a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/package.html b/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/package.html
deleted file mode 100644
index 1a6a1b5..0000000
--- a/bundles/org.eclipse.ui.views/src/org/eclipse/ui/views/properties/package.html
+++ /dev/null
@@ -1,14 +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="Mozilla/4.5 [en] (Win98; I) [Netscape]">
-   <title>Package-level Javadoc</title>
-</head>
-<body>
-Provides the standard Property Sheet view which displays
-custom properties of the active workbench part's current selection.
-<br>&nbsp;
-</body>
-</html>
diff --git a/bundles/org.eclipse.ui.win32/.classpath b/bundles/org.eclipse.ui.win32/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.win32/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.win32/.cvsignore b/bundles/org.eclipse.ui.win32/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.win32/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.win32/.project b/bundles/org.eclipse.ui.win32/.project
deleted file mode 100644
index 9e21dbf..0000000
--- a/bundles/org.eclipse.ui.win32/.project
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.win32</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.boot</project>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.help</project>
-		<project>org.eclipse.ui</project>
-		<project>org.eclipse.ui.ide</project>
-		<project>org.eclipse.ui.views</project>
-		<project>org.eclipse.update.core</project>
-	</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 59e432f..0000000
--- a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Tue Sep 11 09:39:08 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8d20c9f..0000000
--- a/bundles/org.eclipse.ui.win32/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:21:10 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.1\n *\n * ${tags}\n */</template><template context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/bundles/org.eclipse.ui.win32/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.win32/META-INF/MANIFEST.MF
deleted file mode 100644
index fc72144..0000000
--- a/bundles/org.eclipse.ui.win32/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.ui.win32
-Bundle-Version: 3.2.100.qualifier
-Bundle-ClassPath: .
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui.ide;bundle-version="[3.2.0,4.0.0)"
-Bundle-Localization: fragment-win32
-Export-Package: org.eclipse.ui.internal.editorsupport.win32;x-internal:=true
-Eclipse-PlatformFilter: (osgi.ws=win32)
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.ui.win32/about.html b/bundles/org.eclipse.ui.win32/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.win32/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.win32/build.properties b/bundles/org.eclipse.ui.win32/build.properties
deleted file mode 100644
index f15b424..0000000
--- a/bundles/org.eclipse.ui.win32/build.properties
+++ /dev/null
@@ -1,16 +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
-###############################################################################
-source..=src/
-src.includes=about.html
-bin.includes = .,\
-               META-INF/,\
-               fragment-win32.properties,\
-               about.html
diff --git a/bundles/org.eclipse.ui.win32/fragment-win32.properties b/bundles/org.eclipse.ui.win32/fragment-win32.properties
deleted file mode 100644
index 1d259fc..0000000
--- a/bundles/org.eclipse.ui.win32/fragment-win32.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-
-providerName=Eclipse.org
-fragmentName=Eclipse UI Win32 Enhancements
diff --git a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java b/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java
deleted file mode 100644
index f4af7d1..0000000
--- a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleEditor.java
+++ /dev/null
@@ -1,738 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.editorsupport.win32;
-
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceColors;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.ole.win32.OLE;
-import org.eclipse.swt.ole.win32.OleAutomation;
-import org.eclipse.swt.ole.win32.OleClientSite;
-import org.eclipse.swt.ole.win32.OleFrame;
-import org.eclipse.swt.ole.win32.Variant;
-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.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.ide.ResourceUtil;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.part.EditorPart;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- */
-public class OleEditor extends EditorPart {
-
-    /**
-     * The resource listener updates the receiver when
-     * a change has occurred.
-     */
-    private IResourceChangeListener resourceListener = new IResourceChangeListener() {
-
-        /*
-         * @see IResourceChangeListener#resourceChanged(IResourceChangeEvent)
-         */
-        public void resourceChanged(IResourceChangeEvent event) {
-            IResourceDelta mainDelta = event.getDelta();
-            if (mainDelta == null)
-                return;
-            IResourceDelta affectedElement = mainDelta.findMember(resource
-                    .getFullPath());
-            if (affectedElement != null)
-                processDelta(affectedElement);
-        }
-
-        /*
-         * Process the delta for the receiver
-         */
-        private boolean processDelta(final IResourceDelta delta) {
-
-            Runnable changeRunnable = null;
-
-            switch (delta.getKind()) {
-            case IResourceDelta.REMOVED:
-                if ((IResourceDelta.MOVED_TO & delta.getFlags()) != 0) {
-                    changeRunnable = new Runnable() {
-                        public void run() {
-                            IPath path = delta.getMovedToPath();
-                            IFile newFile = delta.getResource().getWorkspace()
-                                    .getRoot().getFile(path);
-                            if (newFile != null) {
-                                sourceChanged(newFile);
-                            }
-                        }
-                    };
-                } else {
-                    changeRunnable = new Runnable() {
-                        public void run() {
-                            sourceDeleted = true;
-                            getSite().getPage().closeEditor(OleEditor.this,
-                                    true);
-                        }
-                    };
-
-                }
-
-                break;
-            }
-
-            if (changeRunnable != null)
-                update(changeRunnable);
-
-            return true; // because we are sitting on files anyway
-        }
-
-    };
-
-    private OleFrame clientFrame;
-
-    private OleClientSite clientSite;
-
-    private File source;
-
-    private IFile resource;
-
-    private Image oleTitleImage;
-
-    //The sourceDeleted flag makes sure that the receiver is not
-    //dirty when shutting down
-    boolean sourceDeleted = false;
-
-    //The sourceChanged flag indicates whether or not the save from the ole component
-    //can be used or if the input changed
-    boolean sourceChanged = false;
-
-    /**
-     * Keep track of whether we have an active client so we do not
-     * deactivate multiple times
-     */
-    private boolean clientActive = false;
-
-    /**
-     * Keep track of whether we have activated OLE or not as some applications
-     * will only allow single activations.
-     */
-    private boolean oleActivated = false;
-
-    private IPartListener partListener = new IPartListener() {
-        public void partActivated(IWorkbenchPart part) {
-            activateClient(part);
-        }
-
-        public void partBroughtToTop(IWorkbenchPart part) {
-        }
-
-        public void partClosed(IWorkbenchPart part) {
-        }
-
-        public void partOpened(IWorkbenchPart part) {
-        }
-
-        public void partDeactivated(IWorkbenchPart part) {
-            deactivateClient(part);
-        }
-    };
-
-    private static final String RENAME_ERROR_TITLE = OleMessages
-            .getString("OleEditor.errorSaving"); //$NON-NLS-1$
-
-    private static final String OLE_EXCEPTION_TITLE = OleMessages
-            .getString("OleEditor.oleExceptionTitle"); //$NON-NLS-1$
-
-    private static final String OLE_EXCEPTION_MESSAGE = OleMessages
-            .getString("OleEditor.oleExceptionMessage"); //$NON-NLS-1$
-
-    private static final String OLE_CREATE_EXCEPTION_MESSAGE = OleMessages
-            .getString("OleEditor.oleCreationExceptionMessage"); //$NON-NLS-1$
-
-    private static final String OLE_CREATE_EXCEPTION_REASON = OleMessages
-            .getString("OleEditor.oleCreationExceptionReason"); //$NON-NLS-1$
-
-    private static final String SAVE_ERROR_TITLE = OleMessages
-            .getString("OleEditor.savingTitle"); //$NON-NLS-1$
-
-    private static final String SAVE_ERROR_MESSAGE = OleMessages
-            .getString("OleEditor.savingMessage"); //$NON-NLS-1$
-
-    /**
-     * Return a new ole editor.
-     */
-    public OleEditor() {
-        //Do nothing
-    }
-
-    private void activateClient(IWorkbenchPart part) {
-        if (part == this) {
-            oleActivate();
-            this.clientActive = true;
-        }
-    }
-
-    /**
-     * createPartControl method comment.
-     */
-    public void createPartControl(Composite parent) {
-
-        // Create a frame.
-        clientFrame = new OleFrame(parent, SWT.CLIP_CHILDREN);
-        clientFrame.setBackground(JFaceColors.getBannerBackground(clientFrame
-                .getDisplay()));
-
-        initializeWorkbenchMenus();
-
-        createClientSite();
-        updateDirtyFlag();
-    }
-
-    /**
-     * Create the client site for the receiver
-     */
-
-    private void createClientSite() {
-        //If there was an OLE Error or nothing has been created yet
-        if (clientFrame == null || clientFrame.isDisposed())
-            return;
-        // Create a OLE client site.
-        try {
-            clientSite = new OleClientSite(clientFrame, SWT.NONE, source);
-        } catch (SWTException exception) {
-
-            IStatus errorStatus = new Status(IStatus.ERROR,
-                    WorkbenchPlugin.PI_WORKBENCH, IStatus.ERROR,
-                    OLE_CREATE_EXCEPTION_REASON, exception);
-            //ErrorDialog.openError(null, OLE_EXCEPTION_TITLE, OLE_CREATE_EXCEPTION_REASON, errorStatus);
-            ErrorDialog.openError(null, OLE_EXCEPTION_TITLE, OLE_CREATE_EXCEPTION_MESSAGE, errorStatus);
-            return;
-        }
-        clientSite.setBackground(JFaceColors.getBannerBackground(clientFrame
-                .getDisplay()));
-
-    }
-
-    private void deactivateClient(IWorkbenchPart part) {
-        //Check the client active flag. Set it to false when we have deactivated
-        //to prevent multiple de-activations.
-        if (part == this && clientActive) {
-            if (clientSite != null)
-                clientSite.deactivateInPlaceClient();
-            this.clientActive = false;
-            this.oleActivated = false;
-        }
-    }
-
-    /**
-     * Display an error dialog with the supplied title and message.
-     * @param title
-     * @param message
-     */
-    private void displayErrorDialog(String title, String message) {
-        Shell parent = null;
-        if (getClientSite() != null)
-            parent = getClientSite().getShell();
-        MessageDialog.openError(parent, title, message);
-    }
-
-    /**
-     * @see IWorkbenchPart#dispose
-     */
-    public void dispose() {
-        if (resource != null) {
-            ResourcesPlugin.getWorkspace().removeResourceChangeListener(
-                    resourceListener);
-            resource = null;
-        }
-
-        //can dispose the title image because it was created in init
-        if (oleTitleImage != null) {
-            oleTitleImage.dispose();
-            oleTitleImage = null;
-        }
-
-        if (getSite() != null && getSite().getPage() != null)
-            getSite().getPage().removePartListener(partListener);
-
-    }
-
-    /**
-     *	Print this object's contents
-     */
-    public void doPrint() {
-        if (clientSite == null)
-            return;
-        BusyIndicator.showWhile(clientSite.getDisplay(), new Runnable() {
-            public void run() {
-                clientSite.exec(OLE.OLECMDID_PRINT,
-                        OLE.OLECMDEXECOPT_PROMPTUSER, null, null);
-                // note: to check for success: above == SWTOLE.S_OK
-            }
-        });
-    }
-
-    /**
-     *	Save the viewer's contents to the source file system file
-     */
-    public void doSave(final IProgressMonitor monitor) {
-        if (clientSite == null)
-            return;
-        BusyIndicator.showWhile(clientSite.getDisplay(), new Runnable() {
-
-            /*
-             *  (non-Javadoc)
-             * @see java.lang.Runnable#run()
-             */
-            public void run() {
-
-                //Do not try and use the component provided save if the source has
-                //changed in Eclipse
-                if (!sourceChanged) {
-                    int result = clientSite.queryStatus(OLE.OLECMDID_SAVE);
-                    if ((result & OLE.OLECMDF_ENABLED) != 0) {
-                        result = clientSite.exec(OLE.OLECMDID_SAVE,
-                                OLE.OLECMDEXECOPT_PROMPTUSER, null, null);
-                        if (result == OLE.S_OK) {
-                            try {
-                                resource.refreshLocal(IResource.DEPTH_ZERO,
-                                        monitor);
-                            } catch (CoreException ex) {
-                                //Do nothing on a failed refresh
-                            }
-                            return;
-                        }
-                        displayErrorDialog(OLE_EXCEPTION_TITLE,
-                                OLE_EXCEPTION_MESSAGE + String.valueOf(result));
-                        return;
-                    }
-                }
-                if (saveFile(source)) {
-                    try {
-                    	if (resource != null)
-                    		resource.refreshLocal(IResource.DEPTH_ZERO, monitor);
-                    } catch (CoreException ex) {
-                        //Do nothing on a failed refresh
-                    }
-                } else
-                    displayErrorDialog(SAVE_ERROR_TITLE, SAVE_ERROR_MESSAGE
-                            + source.getName());
-            }
-        });
-    }
-
-    /**
-     *	Save the viewer's contents into the provided resource.
-     */
-    public void doSaveAs() {
-        if (clientSite == null)
-            return;
-        WorkspaceModifyOperation op = saveNewFileOperation();
-        Shell shell = clientSite.getShell();
-        try {
-            new ProgressMonitorDialog(shell).run(false, true, op);
-        } catch (InterruptedException interrupt) {
-            //Nothing to reset so do nothing
-        } catch (InvocationTargetException invocationException) {
-            MessageDialog.openError(shell, RENAME_ERROR_TITLE,
-                    invocationException.getTargetException().getMessage());
-        }
-
-    }
-
-    /**
-     *	Answer self's client site
-     *
-     *	@return org.eclipse.swt.ole.win32.OleClientSite
-     */
-    public OleClientSite getClientSite() {
-        return clientSite;
-    }
-
-    /**
-     *	Answer the file system representation of self's input element
-     *
-     *	@return java.io.File
-     */
-    public File getSourceFile() {
-        return source;
-    }
-
-    private void handleWord() {
-        OleAutomation dispInterface = new OleAutomation(clientSite);
-        // Get Application
-        int[] appId = dispInterface
-                .getIDsOfNames(new String[] { "Application" }); //$NON-NLS-1$
-        if (appId != null) {
-            Variant pVarResult = dispInterface.getProperty(appId[0]);
-            if (pVarResult != null) {
-                OleAutomation application = pVarResult.getAutomation();
-                int[] dispid = application
-                        .getIDsOfNames(new String[] { "DisplayScrollBars" }); //$NON-NLS-1$
-                if (dispid != null) {
-                    Variant rgvarg = new Variant(true);
-                    application.setProperty(dispid[0], rgvarg);
-                }
-                application.dispose();
-            }
-        }
-        dispInterface.dispose();
-    }
-
-    /* (non-Javadoc)
-     * Initializes the editor when created from scratch.
-     * 
-     * This method is called soon after part construction and marks 
-     * the start of the extension lifecycle.  At the end of the
-     * extension lifecycle <code>shutdown</code> will be invoked
-     * to terminate the lifecycle.
-     *
-     * @param container an interface for communication with the part container
-     * @param input The initial input element for the editor.  In most cases
-     *    it is an <code>IFile</code> but other types are acceptable.
-     * @see IWorkbenchPart#shutdown
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-    	
-    	validatePathEditorInput(input);
-
-        // Save input.
-        setSite(site);
-        setInputWithNotify(input);
-
-        // Update titles.
-        setPartName(input.getName());
-        setTitleToolTip(input.getToolTipText());
-        ImageDescriptor desc = input.getImageDescriptor();
-        if (desc != null) {
-            oleTitleImage = desc.createImage();
-            setTitleImage(oleTitleImage);
-        }
-
-        // Listen for part activation.
-        site.getPage().addPartListener(partListener);
-
-    }
-    
-    /**
-     * Validates the given input
-     * 
-     * @param input the editor input to validate
-     * @throws PartInitException if the editor input is not OK
-     */
-    private boolean validatePathEditorInput(IEditorInput input) throws PartInitException {
-        // Check input type.
-    	IPathEditorInput pathEditorInput = (IPathEditorInput)input.getAdapter(IPathEditorInput.class);
-        if (pathEditorInput == null)
-            throw new PartInitException(OleMessages.format(
-                    "OleEditor.invalidInput", new Object[] { input })); //$NON-NLS-1$
-        
-        IPath path = pathEditorInput.getPath();
-
-        //Cannot create this with a file and no physical location
-        if (!(new File(path.toOSString()).exists()))
-            throw new PartInitException(
-                    OleMessages
-                            .format(
-                                    "OleEditor.noFileInput", new Object[] { path.toOSString() })); //$NON-NLS-1$
-        return true;
-    }
-    
-    /**
-     *	Initialize the workbench menus for proper merging
-     */
-    protected void initializeWorkbenchMenus() {
-        //If there was an OLE Error or nothing has been created yet
-        if (clientFrame == null || clientFrame.isDisposed())
-            return;
-        // Get the browser menu bar.  If one does not exist then
-        // create it.
-        Shell shell = clientFrame.getShell();
-        Menu menuBar = shell.getMenuBar();
-        if (menuBar == null) {
-            menuBar = new Menu(shell, SWT.BAR);
-            shell.setMenuBar(menuBar);
-        }
-
-        // Swap the file and window menus.
-        MenuItem[] windowMenu = new MenuItem[1];
-        MenuItem[] fileMenu = new MenuItem[1];
-        Vector containerItems = new Vector();
-
-        IWorkbenchWindow window = getSite().getWorkbenchWindow();
-
-        for (int i = 0; i < menuBar.getItemCount(); i++) {
-            MenuItem item = menuBar.getItem(i);
-            String id = ""; //$NON-NLS-1$
-            if (item.getData() instanceof IMenuManager)
-                id = ((IMenuManager) item.getData()).getId();
-            if (id.equals(IWorkbenchActionConstants.M_FILE))
-                fileMenu[0] = item;
-            else if (id.equals(IWorkbenchActionConstants.M_WINDOW))
-                windowMenu[0] = item;
-            else {
-                if (window.isApplicationMenu(id)) {
-                    containerItems.addElement(item);
-                }
-            }
-        }
-        MenuItem[] containerMenu = new MenuItem[containerItems.size()];
-        containerItems.copyInto(containerMenu);
-        clientFrame.setFileMenus(fileMenu);
-        clientFrame.setContainerMenus(containerMenu);
-        clientFrame.setWindowMenus(windowMenu);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isDirty()
-     */
-    public boolean isDirty() {
-        /*Return only if we have a clientSite which is dirty 
-         as this can be asked before anything is opened*/
-        return clientSite != null && clientSite.isDirty();
-    }
-
-    /* 
-     * (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {
-        return true;
-    }
-
-    /**
-     *Since we don't know when a change has been made, always answer true
-     * @return <code>false</code> if it was not opened and <code>true</code> 
-     * only if it is dirty
-     */
-    public boolean isSaveNeeded() {
-        return isDirty();
-    }
-
-    /**
-     * Save the supplied file using the SWT API.
-     * @param file java.io.File
-     * @return <code>true</code> if the save was successful
-     */
-    private boolean saveFile(File file) {
-
-        File tempFile = new File(file.getAbsolutePath() + ".tmp"); //$NON-NLS-1$
-        file.renameTo(tempFile);
-        boolean saved = false;
-        if (OLE.isOleFile(file) || usesStorageFiles(clientSite.getProgramID())) {
-            saved = clientSite.save(file, true);
-        } else {
-            saved = clientSite.save(file, false);
-        }
-
-        if (saved) {
-            // save was successful so discard the backup
-            tempFile.delete();
-            return true;
-        }
-        // save failed so restore the backup
-        tempFile.renameTo(file);
-        return false;
-    }
-
-    /**
-     * Save the new File using the client site.
-     * @return WorkspaceModifyOperation
-     */
-    private WorkspaceModifyOperation saveNewFileOperation() {
-
-        return new WorkspaceModifyOperation() {
-            public void execute(final IProgressMonitor monitor)
-                    throws CoreException {
-                SaveAsDialog dialog = new SaveAsDialog(clientFrame.getShell());
-                IFile sFile = ResourceUtil.getFile(getEditorInput());
-                if (sFile != null) {
-                    dialog.setOriginalFile(sFile);
-                    dialog.open();
-    
-                    IPath newPath = dialog.getResult();
-                    if (newPath == null)
-                        return;
-    
-                    if (dialog.getReturnCode() == Window.OK) {
-                        String projectName = newPath.segment(0);
-                        newPath = newPath.removeFirstSegments(1);
-                        IProject project = resource.getWorkspace().getRoot()
-                                .getProject(projectName);
-                        newPath = project.getLocation().append(newPath);
-                        File newFile = newPath.toFile();
-                        if (saveFile(newFile)) {
-                            IFile newResource = resource.getWorkspace().getRoot()
-                                    .getFileForLocation(newPath);
-                            if (newResource != null) {
-                                sourceChanged(newResource);
-                                newResource.refreshLocal(IResource.DEPTH_ZERO,
-                                        monitor);
-                            }
-                        } else {
-                            displayErrorDialog(SAVE_ERROR_TITLE, SAVE_ERROR_MESSAGE
-                                    + newFile.getName());
-                            return;
-                        }
-                    }
-                }
-            }
-        };
-
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        //Do not take focus
-    }
-
-    /**
-     * Make ole active so that the controls are rendered.
-     */
-    private void oleActivate() {
-        //If there was an OLE Error or nothing has been created yet
-        if (clientSite == null || clientFrame == null
-                || clientFrame.isDisposed())
-            return;
-
-        if (!oleActivated) {
-            clientSite.doVerb(OLE.OLEIVERB_SHOW);
-            oleActivated = true;
-            String progId = clientSite.getProgramID();
-            if (progId != null && progId.startsWith("Word.Document")) { //$NON-NLS-1$
-                handleWord();
-            }
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.EditorPart#setInputWithNotify(org.eclipse.ui.IEditorInput)
-     */
-    protected void setInputWithNotify(IEditorInput input) {
-    	IPathEditorInput pathEditorInput = (IPathEditorInput)input.getAdapter(IPathEditorInput.class);
-    	if (pathEditorInput != null)
-    		source = new File(pathEditorInput.getPath().toOSString());
-    	
-        if (input instanceof IFileEditorInput) {
-        	if (resource == null)
-        		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceListener);
-        	resource = ((IFileEditorInput)input).getFile();
-        } else if (resource != null) {
-        	ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceListener);
-        	resource = null;
-        }
-        
-        super.setInputWithNotify(input);
-    }
-
-    /**
-     * See if it is one of the known types that use OLE Storage.
-     * @param progID the type to test
-     * @return <code>true</code> if it is one of the known types
-     */
-    private static boolean usesStorageFiles(String progID) {
-        return (progID != null && (progID.startsWith("Word.", 0) //$NON-NLS-1$
-                || progID.startsWith("MSGraph", 0) //$NON-NLS-1$
-                || progID.startsWith("PowerPoint", 0) //$NON-NLS-1$
-        || progID.startsWith("Excel", 0))); //$NON-NLS-1$
-    }
-
-    /**
-     * The source has changed to the newFile. Update
-     * editors and set any required flags
-     * @param newFile The file to get the new contents from.
-     */
-    private void sourceChanged(IFile newFile) {
-
-        FileEditorInput newInput = new FileEditorInput(newFile);
-        setInputWithNotify(newInput);
-        sourceChanged = true;
-        setPartName(newInput.getName());
-
-    }
-
-    /* 
-     * See IEditorPart.isSaveOnCloseNeeded() 
-     */
-    public boolean isSaveOnCloseNeeded() {
-        return !sourceDeleted && super.isSaveOnCloseNeeded();
-    }
-
-    /**
-     * Posts the update code "behind" the running operation.
-     *
-     * @param runnable the update code
-     */
-    private void update(Runnable runnable) {
-        IWorkbench workbench = PlatformUI.getWorkbench();
-        IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
-        if (windows != null && windows.length > 0) {
-            Display display = windows[0].getShell().getDisplay();
-            display.asyncExec(runnable);
-        } else
-            runnable.run();
-    }
-
-    private boolean isDirty = false;
-    private void updateDirtyFlag() {
-    	final Runnable dirtyFlagUpdater = new Runnable() {
-			public void run() {
-				if (clientSite == null || resource == null) return;
-				boolean dirty = isDirty(); 
-				if (isDirty != dirty) {
-					isDirty = dirty;
-					firePropertyChange(PROP_DIRTY);
-				}
-				clientSite.getDisplay().timerExec(1000, this);
-			}
-    	};
-    	dirtyFlagUpdater.run();
-    }
-}
diff --git a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleMessages.java b/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleMessages.java
deleted file mode 100644
index 91f658d..0000000
--- a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/OleMessages.java
+++ /dev/null
@@ -1,76 +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.editorsupport.win32;
-
-import com.ibm.icu.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps managing messages
- */
-public class OleMessages {
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.internal.editorsupport.win32.messages";//$NON-NLS-1$
-
-    private static ResourceBundle bundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private OleMessages() {
-        // prevent instantiation of class
-    }
-
-    /**
-     * Returns the formatted message for the given key in the resource bundle.
-     * 
-     * @param key
-     *            the resource name
-     * @param args
-     *            the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the key is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return key;
-        }
-    }
-
-    /**
-     * Returns the resource object with the given key in the resource bundle. If
-     * there isn't any value under the given key, the default value is returned.
-     * 
-     * @param key
-     *            the resource name
-     * @param def
-     *            the default value
-     * @return the string
-     */
-    public static String getString(String key, String def) {
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return def;
-        }
-    }
-}
diff --git a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/messages.properties b/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/messages.properties
deleted file mode 100644
index 13507d7..0000000
--- a/bundles/org.eclipse.ui.win32/src/org/eclipse/ui/internal/editorsupport/win32/messages.properties
+++ /dev/null
@@ -1,20 +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
-###############################################################################
-
-OleEditor.errorSaving = Exception saving file
-OleEditor.oleExceptionTitle = OLE Exception
-OleEditor.oleExceptionMessage = OLE Error Saving 
-OleEditor.oleCreationExceptionMessage = Cannot create the in-place editor
-OleEditor.oleCreationExceptionReason = This is probably because there is no OLE editor registered against the type of file you were trying to open.
-OleEditor.savingTitle = Error Saving
-OleEditor.savingMessage = Could not save 
-OleEditor.invalidInput = Invalid Input: {0}.  Input must adapt to IFile
-OleEditor.noFileInput = Invalid Input: {0}.  Input must also exist in the filesystem
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.classpath b/bundles/org.eclipse.ui.workbench.compatibility/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.cvsignore b/bundles/org.eclipse.ui.workbench.compatibility/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.project b/bundles/org.eclipse.ui.workbench.compatibility/.project
deleted file mode 100644
index 85354bd..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.project
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.workbench.compatibility</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.core.runtime.compatibility</project>
-		<project>org.eclipse.help</project>
-		<project>org.eclipse.jface</project>
-		<project>org.eclipse.swt</project>
-		<project>org.eclipse.ui.workbench</project>
-	</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8bbcd5e..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,71 +0,0 @@
-#Tue Sep 11 09:38:54 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 2341629..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 08:58:52 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 7f9ef27..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 23 11:21:27 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF
deleted file mode 100644
index 539ec02..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,11 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %fragmentName
-Bundle-SymbolicName: org.eclipse.ui.workbench.compatibility
-Bundle-Version: 3.2.0.qualifier
-Bundle-Vendor: %providerName
-Fragment-Host: org.eclipse.ui.workbench;bundle-version="[3.0.0,4.0.0)"
-Bundle-Localization: fragment-compatibility
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ClassPath: compatibility.jar
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/about.html b/bundles/org.eclipse.ui.workbench.compatibility/about.html
deleted file mode 100644
index 4602330..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/build.properties b/bundles/org.eclipse.ui.workbench.compatibility/build.properties
deleted file mode 100644
index 2bb5ca5..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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.compatibility.jar=src/
-src.includes=about.html
-bin.includes = fragment-compatibility.properties,\
-               about.html,\
-               compatibility.jar,\
-               META-INF/
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/fragment-compatibility.properties b/bundles/org.eclipse.ui.workbench.compatibility/fragment-compatibility.properties
deleted file mode 100644
index f667586..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/fragment-compatibility.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-providerName=Eclipse.org
-fragmentName=Workbench Compatibility
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java b/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java
deleted file mode 100644
index 5db7cbb..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/CompatibleWorkbenchPage.java
+++ /dev/null
@@ -1,183 +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;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Internal class used in providing increased binary compatibility for pre-3.0
- * plug-ins. This declaration masks the empty class of the same name declared in
- * the Workbench proper. This class implements IWorkbenchPage that existed in
- * 2.1 but were removed in 3.0 because they referenced resource API.
- * <p>
- * Plug-ins should not refer to this type or its containing fragment from their
- * class path. It is intended only to provide binary compatibility for pre-3.0
- * plug-ins, and should not be referenced at development time.
- * </p>
- * 
- * @since 3.0
- */
-public class CompatibleWorkbenchPage implements ICompatibleWorkbenchPage {
-
-    /**
-     * openEditor(IFile) is declared on IWorkbenchPage in 2.1. This method was
-     * removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IFile input) throws PartInitException {
-        // invoke org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage, IFile,
-        // boolean);
-        return openEditor(new Class[] { IWorkbenchPage.class, IFile.class,
-                boolean.class },
-                new Object[] { this, input, new Boolean(true) });
-    }
-
-    /**
-     * openEditor(IFile,String) is declared on IWorkbenchPage in 2.1. This
-     * method was removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IFile input, String editorID)
-            throws PartInitException {
-        return openEditor(input, editorID, true);
-    }
-
-    /**
-     * openEditor(IFile,String,boolean) is declared on IWorkbenchPage in 2.1.
-     * This method was removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IFile input, String editorID, boolean activate)
-            throws PartInitException {
-        return ((IWorkbenchPage) this).openEditor(getFileEditorInput(input),
-                editorID);
-    }
-
-    /**
-     * openEditor(IMarker) is declared on IWorkbenchPage in 2.1. This method was
-     * removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IMarker marker) throws PartInitException {
-        return openEditor(marker, true);
-    }
-
-    /**
-     * openEditor(IMarker,boolean) is declared on IWorkbenchPage in 2.1. This
-     * method was removed in 3.0 because it references resource API.
-     */
-    public IEditorPart openEditor(IMarker marker, boolean activate)
-            throws PartInitException {
-        // invoke org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage, IMarker,
-        // boolean);
-        return openEditor(new Class[] { IWorkbenchPage.class, IMarker.class,
-                boolean.class }, new Object[] { this, marker,
-                new Boolean(activate) });
-    }
-
-    /**
-     * openSystemEditor(IFile) is declared on IWorkbenchPage in 2.1. This method
-     * was removed in 3.0 because it references resource API.
-     */
-    public void openSystemEditor(IFile file) throws PartInitException {
-        ((IWorkbenchPage) this).openEditor(getFileEditorInput(file),
-                IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID);
-
-    }
-
-    /*
-     * Implementation support: Use reflection for the following code pattern:
-     * new org.eclipse.ui.part.FileEditorInput(file) The class FileEditorInput
-     * is found in the org.eclipse.ui.ide plug-in.
-     */
-    private IEditorInput getFileEditorInput(IFile file)
-            throws PartInitException {
-        IPluginDescriptor desc = Platform.getPluginRegistry()
-                .getPluginDescriptor("org.eclipse.ui.ide"); //$NON-NLS-1$		
-        Exception problem;
-        try {
-            Class clazz = desc.getPluginClassLoader().loadClass(
-                    "org.eclipse.ui.part.FileEditorInput"); //$NON-NLS-1$
-            Constructor constructor = clazz
-                    .getConstructor(new Class[] { IFile.class });
-            return (IEditorInput) constructor
-                    .newInstance(new Object[] { file });
-        } catch (NullPointerException e) {
-            problem = e;
-        } catch (ClassNotFoundException e) {
-            problem = e;
-        } catch (NoSuchMethodException e) {
-            problem = e;
-        } catch (IllegalArgumentException e) {
-            problem = e;
-        } catch (IllegalAccessException e) {
-            problem = e;
-        } catch (InvocationTargetException e) {
-            problem = e;
-        } catch (InstantiationException e) {
-            problem = e;
-        }
-        IStatus status = new Status(
-                IStatus.ERROR,
-                WorkbenchPlugin.PI_WORKBENCH,
-                0,
-                "openEditor() compatibility support failed - new FileEditorInput(file)", problem); //$NON-NLS-1$
-        WorkbenchPlugin.log(status.getMessage(), status);
-        throw new PartInitException(status);
-    }
-
-    /*
-     * Implementation support: Use reflection to invoke the appropriate static
-     * openEditor(...) method on IDE The IDE class is found in the
-     * org.eclipse.ui.ide plug-in.
-     */
-    private IEditorPart openEditor(Class[] argTypes, Object[] args)
-            throws PartInitException {
-        IPluginDescriptor desc = Platform.getPluginRegistry()
-                .getPluginDescriptor("org.eclipse.ui.ide"); //$NON-NLS-1$
-        Throwable problem;
-        try {
-            Class clazz = desc.getPluginClassLoader().loadClass(
-                    "org.eclipse.ui.ide.IDE"); //$NON-NLS-1$
-            Method method = clazz.getMethod("openEditor", argTypes); //$NON-NLS-1$
-            return (IEditorPart) method.invoke(null, args);
-        } catch (NullPointerException e) {
-            problem = e;
-        } catch (ClassNotFoundException e) {
-            problem = e;
-        } catch (NoSuchMethodException e) {
-            problem = e;
-        } catch (IllegalArgumentException e) {
-            problem = e;
-        } catch (IllegalAccessException e) {
-            problem = e;
-        } catch (InvocationTargetException e) {
-            problem = e;
-        }
-        IStatus status = new Status(
-                IStatus.ERROR,
-                WorkbenchPlugin.PI_WORKBENCH,
-                0,
-                "openEditor() compatibility support failed - IDE.openEditor()", problem); //$NON-NLS-1$
-        WorkbenchPlugin.log(status.getMessage(), status);
-        throw new PartInitException(status);
-    }
-}
diff --git a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java b/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java
deleted file mode 100644
index 1258328..0000000
--- a/bundles/org.eclipse.ui.workbench.compatibility/src/org/eclipse/ui/internal/ICompatibleWorkbenchPage.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Internal interface used in providing increased binary compatibility for
- * pre-3.0 plug-ins. This declaration masks the empty interface of the same name
- * declared in the Workbench proper. This interface declares IWorkbenchPage that
- * existed in 2.1 but were removed in 3.0 because they referenced resource API.
- * <p>
- * Plug-ins should not refer to this type or its containing fragment from their
- * class path. It is intended only to provide binary compatibility for pre-3.0
- * plug-ins, and should not be referenced at development time.
- * </p>
- * 
- * @since 3.0
- */
-public interface ICompatibleWorkbenchPage {
-
-    /**
-     * Opens an editor on the given file resource.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is activated; otherwise, a new editor is opened.
-     * <p>
-     * <p>
-     * An appropriate editor for the input is determined using a multistep
-     * process.
-     * </p>
-     * <ol>
-     * <li>The workbench editor registry is consulted to determine if an editor
-     * extension has been registered for the file type. If so, an instance of
-     * the editor extension is opened on the file. See
-     * <code>IEditorRegistry.getDefaultEditor(IFile)</code>.
-     * <li>Next, the native operating system will be consulted to determine if
-     * a native editor exists for the file type. If so, a new process is started
-     * and the native editor is opened on the file.
-     * <li>If all else fails the file will be opened in a default text editor.
-     * </li>
-     * </ol>
-     * </p>
-     * 
-     * @param input
-     *            the file to edit
-     * @return an open and active editor, or <code>null</code> if a system
-     *         editor was opened
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IFile)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IFile input) throws PartInitException;
-
-    /**
-     * Opens an editor on the given file resource.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is brought to front; otherwise, a new editor is opened. If
-     * <code>activate == true</code> the editor will be activated.
-     * <p>
-     * <p>
-     * The editor type is determined by mapping <code>editorId</code> to an
-     * editor extension registered with the workbench. An editor id is passed
-     * rather than an editor object to prevent the accidental creation of more
-     * than one editor for the same input. It also guarantees a consistent
-     * lifecycle for editors, regardless of whether they are created by the user
-     * or restored from saved data.
-     * </p>
-     * 
-     * @param input
-     *            the file to edit
-     * @param editorId
-     *            the id of the editor extension to use or null
-     * @param activate
-     *            if <code>true</code> the editor will be activated
-     * @return an open and active editor
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IFile,String,boolean)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IFile input, String editorId, boolean activate)
-            throws PartInitException;
-
-    /**
-     * Opens an editor on the given file resource.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is activated; otherwise, a new editor is opened.
-     * <p>
-     * <p>
-     * The editor type is determined by mapping <code>editorId</code> to an
-     * editor extension registered with the workbench. An editor id is passed
-     * rather than an editor object to prevent the accidental creation of more
-     * than one editor for the same input. It also guarantees a consistent
-     * lifecycle for editors, regardless of whether they are created by the user
-     * or restored from saved data.
-     * </p>
-     * 
-     * @param editorId
-     *            the id of the editor extension to use
-     * @param input
-     *            the file to edit
-     * @return an open and active editor
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IFile,String)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IFile input, String editorId)
-            throws PartInitException;
-
-    /**
-     * Opens an editor on the file resource of the given marker.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is activated; otherwise, a new editor is opened. The cursor and selection
-     * state of the editor is then updated from information recorded in the
-     * marker.
-     * <p>
-     * <p>
-     * If the marker contains an <code>EDITOR_ID_ATTR</code> attribute the
-     * attribute value will be used to determine the editor type to be opened.
-     * If not, the registered editor for the marker resource will be used.
-     * </p>
-     * 
-     * @param marker
-     *            the marker to open
-     * @return an open and active editor, or null if a system editor was opened
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IMarker)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IMarker marker) throws PartInitException;
-
-    /**
-     * Opens an editor on the file resource of the given marker.
-     * <p>
-     * If this page already has an editor open on the target object that editor
-     * is brought to front; otherwise, a new editor is opened. If
-     * <code>activate == true</code> the editor will be activated. The cursor
-     * and selection state of the editor are then updated from information
-     * recorded in the marker.
-     * <p>
-     * <p>
-     * If the marker contains an <code>EDITOR_ID_ATTR</code> attribute the
-     * attribute value will be used to determine the editor type to be opened.
-     * If not, the registered editor for the marker resource will be used.
-     * </p>
-     * 
-     * @param marker
-     *            the marker to open
-     * @param activate
-     *            if <code>true</code> the editor will be activated
-     * @return an open editor, or null if a system editor was opened
-     * @exception PartInitException
-     *                if the editor could not be initialized
-     * @deprecated In 3.0 this resource-specific method moved from this
-     *             interface to
-     *             <code>org.eclipse.ui.ide.IDE.openEditor(IWorkbenchPage,IMarker,boolean)</code>.
-     *             This method should not be referenced at development time. See
-     *             the class comment for more details.
-     */
-    public IEditorPart openEditor(IMarker marker, boolean activate)
-            throws PartInitException;
-
-    /**
-     * Opens an operating system editor on a given file. Once open, the
-     * workbench has no knowledge of the editor or the state of the file being
-     * edited. Users are expected to perform a "Local Refresh" from the
-     * workbench user interface.
-     * 
-     * @param input
-     *            the file to edit
-     * @exception PartInitException
-     *                if the editor could not be opened.
-     * @deprecated In 3.0 this resource-specific method was removed. Use
-     *             <code>openEditor(new FileEditorInput(file), IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID)</code>
-     *             instead. This method should not be referenced at development
-     *             time. See the class comment for more details.
-     */
-    public void openSystemEditor(IFile input) throws PartInitException;
-}
diff --git a/bundles/org.eclipse.ui/buildnotes_workbench.html b/bundles/org.eclipse.ui/buildnotes_workbench.html
index 45bf600..5dafe56 100644
--- a/bundles/org.eclipse.ui/buildnotes_workbench.html
+++ b/bundles/org.eclipse.ui/buildnotes_workbench.html
@@ -12,6 +12,20 @@
 <h1>Eclipse Platform Build Notes (3.5)<br>
 JFace and Workbench</h1>
 
+<p>Integration Build (August 24, 2009, 11:26 p.m.)</p>
+  <p>Problem reports updated</p>
+  <p>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=269869">Bug 269869</a>. [Markers] No "Restore Defaults" button in filter dialog for ProblemsView (NEW)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=275039">Bug 275039</a>. [Markers] Configure contents "Match all/any configuration" wording ambiguous (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=278064">Bug 278064</a>. [FastView] Ability to hide fast view toolbar (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=283162">Bug 283162</a>. [DataBinding] 3.4 org.eclipse.jface.tests.databinding bundle has a higher version than 3.5 (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=283283">Bug 283283</a>. [WorkingSets] WorkingSetManager hides exception message (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=284650">Bug 284650</a>. [CommonNavigator] Misleading JavaDoc of the INavigatorContentService (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=286121">Bug 286121</a>. [DataBinding] API error in ObservableTracker (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=287138">Bug 287138</a>. [CommonNavigator] Add tests simulating CDT/JDT to CNF (FIXED)<br>
+<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=287471">Bug 287471</a>. [ActionSets] Actionsets leak when opening/closing perspectives (FIXED)<br>
+  </p>
+
 <p>Integration Build (August 18, 2009, 12:12 a.m.)</p>
   <p>Problem reports updated</p>
   <p>
diff --git a/examples/org.eclipse.jface.snippets/.classpath b/examples/org.eclipse.jface.snippets/.classpath
deleted file mode 100644
index e60736f..0000000
--- a/examples/org.eclipse.jface.snippets/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="Eclipse JFace Snippets"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.jface.snippets/.project b/examples/org.eclipse.jface.snippets/.project
deleted file mode 100644
index 5d39725..0000000
--- a/examples/org.eclipse.jface.snippets/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jface.snippets</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/examples/org.eclipse.jface.snippets/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.jface.snippets/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6c26f15..0000000
--- a/examples/org.eclipse.jface.snippets/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Mon Oct 16 20:55:38 GMT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet012DialogWithImageButtons.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet012DialogWithImageButtons.java
deleted file mode 100644
index 6830303..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet012DialogWithImageButtons.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate a dialog with image buttons.
- *
- */
-public class Snippet012DialogWithImageButtons {
-	private ImageRegistry registry;
-	
-	public Snippet012DialogWithImageButtons(final Shell shell) {
-		
-		Dialog dia = new Dialog(shell) {
-			private ImageDescriptor getImageDescriptor(String path) {
-				if( registry == null ) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-				
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if( desc == null ) {
-					desc = ImageDescriptor.createFromFile(Snippet012DialogWithImageButtons.class, path);
-					registry.put(path, desc);
-				}
-				
-				return desc;
-			}
-			
-			protected Button createButton(Composite parent, int id, String label, boolean defaultButton) {
-				Button b = super.createButton(parent, id, label, defaultButton);
-				if( id == IDialogConstants.OK_ID ) {
-					b.setImage(getImageDescriptor("filesave.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-				} else {
-					b.setImage(getImageDescriptor("cancel.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-					return b;
-				}
-				
-				return b;
-			}
-		};
-		dia.open();
-	}
-	
-	public static void main(String[] args) {
-		
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		
-		shell.open ();
-		
-		new Snippet012DialogWithImageButtons(shell);
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java
deleted file mode 100644
index e6eb0d6..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet058VistaProgressBars.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IProgressMonitorWithBlocking;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-
-public class Snippet058VistaProgressBars {
-
-	/**
-	 * Open a progress monitor dialog and switch the blocking.
-	 * 
-	 * @param args
-	 */
-	public static void main(String[] args) {
-
-		Display display = new Display();
-
-		final ProgressMonitorDialog dialog = new ProgressMonitorDialog(null);
-
-		try {
-			dialog.run(true, true, new IRunnableWithProgress() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
-				 */
-				public void run(IProgressMonitor monitor)
-						throws InvocationTargetException, InterruptedException {
-
-					IProgressMonitorWithBlocking blocking = (IProgressMonitorWithBlocking) monitor;
-
-					blocking.beginTask("Vista Coolness", 100);
-					for (int i = 0; i < 10; i++) {
-						blocking.setBlocked(new Status(IStatus.WARNING,
-								"Blocked", "This is blocked on Vista"));
-						blocking.worked(5);
-						spin(dialog.getShell().getDisplay());
-						blocking.clearBlocked();
-						blocking.worked(5);
-						spin(dialog.getShell().getDisplay());
-						if (monitor.isCanceled())
-							return;
-					}
-					blocking.done();
-				}
-			});
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-
-		display.dispose();
-	}
-
-	private static void spin(final Display display) {
-		display.syncExec(new Runnable() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see java.lang.Runnable#run()
-			 */
-			public void run() {
-				long endTime = System.currentTimeMillis() + 1000;
-
-				while (System.currentTimeMillis() < endTime)
-					display.readAndDispatch();
-
-			}
-		});
-
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java
deleted file mode 100644
index cfaa030..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet059VistaProgressIndicator.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import org.eclipse.jface.dialogs.ProgressIndicator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate the progress indicator on Vista showing paused and
- * errors
- * 
- */
-public class Snippet059VistaProgressIndicator {
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new GridLayout());
-		shell.setSize(300, 100);
-
-		ProgressIndicator indicator = new ProgressIndicator(shell,
-				SWT.HORIZONTAL);
-		indicator.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));
-		indicator.setBackground(shell.getDisplay().getSystemColor(
-				SWT.COLOR_CYAN));
-
-		shell.open();
-
-		indicator.beginTask(200);
-		indicator.showNormal();
-		indicator.worked(50);
-		spin(display);
-		indicator.showPaused();
-		indicator.worked(50);
-		spin(display);
-		indicator.showError();
-		indicator.worked(50);
-		spin(display);
-		
-		indicator.done();
-
-		display.dispose();
-
-	}
-
-	private static void spin(Display display) {
-		long endTime = System.currentTimeMillis() + 1000;
-		while(System.currentTimeMillis() < endTime)
-			display.readAndDispatch();
-		
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java
deleted file mode 100644
index a39da91..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/Snippet060DialogWithURLImageButtons.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.dialogs;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate a dialog with image buttons.
- * 
- */
-public class Snippet060DialogWithURLImageButtons {
-	private ImageRegistry registry;
-
-	public Snippet060DialogWithURLImageButtons(final Shell shell) {
-
-		Dialog dia = new Dialog(shell) {
-			private ImageDescriptor getImageDescriptor(String path) {
-				if (registry == null) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if (desc == null) {
-
-					desc = ImageDescriptor
-							.createFromURL(Snippet060DialogWithURLImageButtons.class
-									.getResource(path));
-					registry.put(path, desc);
-				}
-
-				return desc;
-			}
-
-			protected Button createButton(Composite parent, int id,
-					String label, boolean defaultButton) {
-				Button b = super.createButton(parent, id, label, defaultButton);
-				if (id == IDialogConstants.OK_ID) {
-
-					URL url;
-					try {
-						url = new URL(
-								"http://www.eclipse.org/home/images/enterprise.gif");
-						b.setImage(ImageDescriptor.createFromURL(url)
-								.createImage()); //$NON-NLS-1$
-					} catch (MalformedURLException e) {
-						e.printStackTrace();
-					}
-
-					// reset the button layout
-					setButtonLayoutData(b);
-				} else {
-					b.setImage(getImageDescriptor("cancel.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-					return b;
-				}
-
-				return b;
-			}
-		};
-		dia.open();
-	}
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		shell.open();
-
-		new Snippet060DialogWithURLImageButtons(shell);
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png
deleted file mode 100644
index 1cabc6e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/cancel.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png
deleted file mode 100644
index 41b3f43..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/dialogs/filesave.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java
deleted file mode 100644
index 1418107..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet013GridLayoutFactory.java
+++ /dev/null
@@ -1,145 +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.jface.snippets.layout;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.LayoutConstants;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * @since 3.3
- */
-public class Snippet013GridLayoutFactory {
-
-	public static Shell createShell1() {
-		Shell shell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
-		{ // Populate the shell
-			Label text = new Label(shell, SWT.WRAP);
-			text
-					.setText("This is a layout test. This text should wrap in the test. You could call it a text test.");
-			GridDataFactory.generate(text, 2, 1);
-
-			List theList = new List(shell, SWT.H_SCROLL | SWT.V_SCROLL
-					| SWT.BORDER);
-
-			theList.add("Hello");
-			theList.add("World");
-			GridDataFactory.defaultsFor(theList).hint(300, 300)
-					.applyTo(theList);
-
-			Composite buttonBar = new Composite(shell, SWT.NONE);
-			{ // Populate buttonBar
-				Button add = new Button(buttonBar, SWT.PUSH);
-				add.setText("Add");
-				Button remove = new Button(buttonBar, SWT.PUSH);
-				remove.setText("Remove");
-			}
-			GridLayoutFactory.fillDefaults().generateLayout(buttonBar);
-		}
-		GridLayoutFactory.fillDefaults().numColumns(2).margins(
-				LayoutConstants.getMargins()).generateLayout(shell);
-
-		return shell;
-	}
-
-	public static Shell createShell3() {
-		Shell shell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
-		{ // Populate the shell
-
-			Text text = new Text(shell, SWT.WRAP | SWT.BORDER);
-			text
-					.setText("This shell has asymmetric margins. The left, right, top, and bottom margins should be 0, 10, 40, and 80 pixels respectively");
-
-			Rectangle margins = Geometry.createDiffRectangle(0, 10, 40, 80);
-
-			GridLayoutFactory.fillDefaults().extendedMargins(margins)
-					.generateLayout(shell);
-
-		}
-
-		return shell;
-	}
-
-	public static Shell createShell2() {
-		Shell shell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
-		{ // Populate the shell
-
-			Label text = new Label(shell, SWT.NONE);
-			text.setText("Name:");
-			new Text(shell, SWT.BORDER);
-
-			Label quest = new Label(shell, SWT.NONE);
-			quest.setText("Quest:");
-			CCombo combo = new CCombo(shell, SWT.BORDER);
-			combo.add("I seek the holy grail");
-			combo.add("What? I don't know that");
-			combo.add("All your base are belong to us");
-
-			Label colour = new Label(shell, SWT.NONE);
-			colour.setText("Color:");
-			new Text(shell, SWT.BORDER);
-
-			Composite buttonBar = new Composite(shell, SWT.NONE);
-			{ // Populate buttonBar
-				Button add = new Button(buttonBar, SWT.PUSH);
-				add.setText("Okay");
-				Button remove = new Button(buttonBar, SWT.PUSH);
-				remove.setText("Cancel");
-
-				GridLayoutFactory.fillDefaults().numColumns(2).generateLayout(
-						buttonBar);
-			}
-			GridDataFactory.fillDefaults().span(2, 1).align(SWT.RIGHT,
-					SWT.BOTTOM).applyTo(buttonBar);
-
-			GridLayoutFactory.fillDefaults().numColumns(2).margins(
-					LayoutConstants.getMargins()).generateLayout(shell);
-		}
-
-		return shell;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = createShell1();
-		shell.pack();
-		shell.open();
-
-		Shell shell2 = createShell2();
-		shell2.pack();
-		shell2.open();
-
-		Shell shell3 = createShell3();
-		shell3.pack();
-		shell3.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java
deleted file mode 100755
index 9be6c21..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet016TableLayout.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.layout;
-
-
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.viewers.ColumnWeightData;
-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.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * A simple TableViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3M3
- */
-public class Snippet016TableLayout {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	private class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return columnIndex + " - " + element;
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet016TableLayout(Composite comp) {
-		final TableViewer v = new TableViewer(new Table(comp, SWT.BORDER));
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.getTable().setHeaderVisible(true);
-
-		TableColumnLayout ad = new TableColumnLayout();
-		comp.setLayout(ad);
-		
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setText("Column 1");
-		column.setMoveable(true);
-		ad.setColumnData(column, new ColumnWeightData(90, 290));
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setText("Column 2");
-		column.setMoveable(true);
-		ad.setColumnData(column, new ColumnWeightData(10, 200));
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		//shell.setSize(400, 150);
-		shell.setLayout(new FillLayout());
-		
-		new Snippet016TableLayout(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java
deleted file mode 100644
index 14e605f..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/layout/Snippet027TreeLayout.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.layout;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.layout.TreeColumnLayout;
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet027TreeLayout {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.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) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet027TreeLayout(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.getTree().setHeaderVisible(true);
-		v.getTree().setLinesVisible(true);
-		
-		TreeColumnLayout ad = new TreeColumnLayout();
-		shell.setLayout(ad);
-		
-		TreeColumn column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		ad.setColumnData(column, new ColumnWeightData(50, 100));
-		
-		column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		ad.setColumnData(column,new ColumnWeightData(50, 100));
-		
-
-		
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet027TreeLayout(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java
deleted file mode 100644
index ee5071b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/Snippet057FileImageDescriptors.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.resources;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A snippet to demonstrate a dialog with image buttons.
- * 
- */
-public class Snippet057FileImageDescriptors {
-	private ImageRegistry registry;
-
-	public Snippet057FileImageDescriptors(final Shell shell) {
-
-		Dialog dia = new Dialog(shell) {
-			private ImageDescriptor getImageDescriptorFromClass(String path) {
-				if (registry == null) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if (desc == null) {
-					desc = ImageDescriptor.createFromFile(
-							Snippet057FileImageDescriptors.class, path);
-					registry.put(path, desc);
-				}
-
-				return desc;
-			}
-
-			private ImageDescriptor getImageDescriptorFromFile(String path) {
-				if (registry == null) {
-					registry = new ImageRegistry(shell.getDisplay());
-				}
-
-				ImageDescriptor desc = registry.getDescriptor(path);
-				if (desc == null) {
-					URL classPath = Snippet057FileImageDescriptors.class
-							.getResource(path);
-					Class bogus = null;
-					desc = ImageDescriptor.createFromFile(bogus, classPath
-							.getFile());
-
-					registry.put(path, desc);
-				}
-
-				return desc;
-			}
-
-			protected Button createButton(Composite parent, int id,
-					String label, boolean defaultButton) {
-				Button b = super.createButton(parent, id, label, defaultButton);
-				if (id == IDialogConstants.OK_ID) {
-					b
-							.setImage(getImageDescriptorFromClass(
-									"filesave.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-				} else {
-					b
-							.setImage(getImageDescriptorFromFile("cancel.png").createImage()); //$NON-NLS-1$
-					// reset the button layout
-					setButtonLayoutData(b);
-					return b;
-				}
-
-				return b;
-			}
-		};
-		dia.open();
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		shell.open();
-
-		new Snippet057FileImageDescriptors(shell);
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png
deleted file mode 100644
index 1cabc6e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/cancel.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png
deleted file mode 100644
index 41b3f43..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/resources/filesave.png
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java
deleted file mode 100644
index 343a626..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/AbstractCellCursor.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * @since 3.3
- *
- */
-public abstract class AbstractCellCursor extends Canvas {
-	private ViewerCell[] cells = new ViewerCell[0];
-	
-	private ColumnViewer viewer;
-	
-	private int activationTime = 0;
-	
-	private boolean inFocusRequest = false;
-	
-	/**
-	 * @param viewer
-	 * @param style
-	 */
-	public AbstractCellCursor(ColumnViewer viewer, int style) {
-		super((Composite) viewer.getControl(),style);
-		this.viewer = viewer;
-		
-		Listener l = new Listener() {
-
-			public void handleEvent(Event event) {
-				switch (event.type) {
-				case SWT.Paint:
-					paint(event);
-					break;
-				case SWT.KeyDown:
-					getParent().notifyListeners(SWT.KeyDown, event);
-					ArrayList list = new ArrayList();
-					for( int i = 0; i < cells.length; i++ ) {
-						list.add(cells[i].getElement());
-					}
-					AbstractCellCursor.this.viewer.setSelection(new StructuredSelection(list));
-					
-					break;
-				case SWT.MouseDown:
-					if( event.time < activationTime ) {
-						Event cEvent = copyEvent(event);
-						cEvent.type = SWT.MouseDoubleClick;
-						getParent().notifyListeners(SWT.MouseDoubleClick, cEvent);
-					} else {
-						getParent().notifyListeners(SWT.MouseDown, copyEvent(event));
-					}
-					break;
-				case SWT.MouseDoubleClick:
-					getParent().notifyListeners(SWT.MouseDoubleClick, copyEvent(event));
-					break;
-				case SWT.FocusIn:
-					if( isVisible() ) {
-						inFocusRequest = true;
-						if( ! inFocusRequest ) {
-							forceFocus();
-						}
-						inFocusRequest = false;
-					}
-				default:
-					break;
-				}
-			}
-		};
-		
-		addListener(SWT.Paint, l);
-		addListener(SWT.KeyDown, l);
-		addListener(SWT.MouseDown, l);
-		addListener(SWT.MouseDoubleClick, l);
-		getParent().addListener(SWT.FocusIn,l);
-	}
-	
-	/**
-	 * @param cell
-	 * @param eventTime 
-	 */
-	public void setSelection(ViewerCell cell, int eventTime) {
-		this.cells = new ViewerCell[] { cell };
-		setBounds(cell.getBounds());
-		forceFocus();
-		redraw();
-		activationTime = eventTime + getDisplay().getDoubleClickTime();
-	}
-	
-	/**
-	 * @return the cells who should be highlighted
-	 */
-	protected ViewerCell[] getSelectedCells() {
-		return cells;
-	}
-	
-	private Event copyEvent(Event event) {
-		Event cEvent = new Event();
-		cEvent.button = event.button;
-		cEvent.character = event.character;
-		cEvent.count = event.count;
-		cEvent.data = event.data;
-		cEvent.detail = event.detail;
-		cEvent.display = event.display;
-		cEvent.doit = event.doit;
-		cEvent.end = event.end;
-		cEvent.gc = event.gc;
-		cEvent.height = event.height;
-		cEvent.index = event.index;
-		cEvent.item = getSelectedCells()[0].getControl();
-		cEvent.keyCode = event.keyCode;
-		cEvent.start = event.start;
-		cEvent.stateMask = event.stateMask;
-		cEvent.text = event.text;
-		cEvent.time = event.time;
-		cEvent.type = event.type;
-		cEvent.widget = event.widget;
-		cEvent.width = event.width;
-		Point p = viewer.getControl().toControl(toDisplay(event.x, event.y));
-		cEvent.x = p.x;
-		cEvent.y = p.y;
-		
-		return cEvent;
-	}
-	
-	/**
-	 * @param event
-	 */
-	protected abstract void paint(Event event);
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java
deleted file mode 100644
index 9d927a3..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/BooleanCellEditor.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerRow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * @since 3.4
- *
- */
-public class BooleanCellEditor extends CellEditor {
-	private Button button;
-	private ViewerRow row;
-	private int index;
-	private String restoredText;
-	private Image restoredImage;
-	private KeyListener macSelectionListener = new KeyListener(){
-	
-		public void keyReleased(KeyEvent e) {
-			
-		}
-	
-		public void keyPressed(KeyEvent e) {
-			if( e.character == ' ' ) {
-				button.setSelection(!button.getSelection());	
-			}
-		}
-	};
-
-	private boolean changeOnActivation;
-	
-	/**
-	 * @param parent
-	 */
-	public BooleanCellEditor(Composite parent) {
-		super(parent);
-	}
-
-	/**
-	 * @param parent
-	 * @param style
-	 */
-	public BooleanCellEditor(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	public LayoutData getLayoutData() {
-		LayoutData data = super.getLayoutData();
-		data.horizontalAlignment=SWT.CENTER;
-		data.grabHorizontal = false;
-		return data;
-	}
-
-	protected Control createControl(Composite parent) {
-		Font font = parent.getFont();
-		Color bg = parent.getBackground();
-
-		button = new Button(parent, getStyle() | SWT.CHECK);
-		button.setFont(font);
-		button.setBackground(bg);
-
-		button.addKeyListener(new KeyAdapter() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.KeyAdapter#keyReleased(org.eclipse.swt.events.KeyEvent)
-			 */
-			public void keyReleased(KeyEvent e) {
-				if( e.character == SWT.ESC ) {
-					fireCancelEditor();
-				}
-			}
-
-		});
-
-		return button;
-	}
-
-	protected Object doGetValue() {
-		return new Boolean(button.getSelection());
-	}
-
-	protected void doSetValue(Object value) {
-		boolean selection = Boolean.TRUE.equals(value);
-		button.setSelection(selection);
-	}
-
-	protected void doSetFocus() {
-		if (button != null) {
-			button.setFocus();
-		}
-	}
-
-	protected void deactivate(ColumnViewerEditorDeactivationEvent event) {
-		super.deactivate(event);
-		if( event.eventType == ColumnViewerEditorDeactivationEvent.EDITOR_CANCELED ) {
-			row.setImage(index, restoredImage);
-			row.setText(index, restoredText);
-		}
-
-//TODO Add a way to enable key traversal when CheckBoxes don't get focus
-//		if( Util.isMac() ) {
-//			button.getParent().removeKeyListener(macSelectionListener);
-//		}
-		
-		row = null;
-		restoredImage = null;
-		restoredText = null;
-	}
-
-	public void activate(ColumnViewerEditorActivationEvent activationEvent) {
-		ViewerCell cell = (ViewerCell)activationEvent.getSource();
-		index = cell.getColumnIndex();
-		row = (ViewerRow) cell.getViewerRow().clone();
-		restoredImage = row.getImage(index);
-		restoredText = row.getText(index);
-		row.setImage(index, null);
-		row.setText(index, ""); //$NON-NLS-1$
-		
-    	if (activationEvent.eventType != ColumnViewerEditorActivationEvent.TRAVERSAL && changeOnActivation) {
-    		button.setSelection(!button.getSelection());
-    	}
-    	
-//TODO Add a way to enable key traversal when CheckBoxes don't get focus
-//    	if( Util.isMac() ) {
-//    		button.getParent().addKeyListener(macSelectionListener);
-//    	}
-    	
-    	super.activate(activationEvent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.CellEditor#getDoubleClickTimeout()
-	 */
-	protected int getDoubleClickTimeout() {
-		return 0;
-	}
-    
-    public void setChangeOnActivation(boolean changeOnActivation) {
-    	this.changeOnActivation = changeOnActivation;
-    }
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java
deleted file mode 100644
index 49395bf..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/CursorCellHighlighter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationListener;
-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
-import org.eclipse.jface.viewers.FocusCellHighlighter;
-import org.eclipse.jface.viewers.ViewerCell;
-
-
-
-/**
- * @since 3.3
- * 
- */
-public class CursorCellHighlighter extends FocusCellHighlighter {
-	private ColumnViewer viewer;
-
-	private AbstractCellCursor cursor;
-
-	/**
-	 * @param viewer
-	 * @param cursor
-	 */
-	public CursorCellHighlighter(ColumnViewer viewer,
-			AbstractCellCursor cursor) {
-		super(viewer);
-		this.viewer = viewer;
-		this.cursor = cursor;
-	}
-
-	protected void focusCellChanged(ViewerCell cell) {
-		super.focusCellChanged(cell);
-		if( ! viewer.isCellEditorActive() ) {
-			System.err.println("SHOW EDITOR"); //$NON-NLS-1$
-			cursor.setSelection(cell, 0); //TODO THE TIME
-			cursor.setVisible(true);
-		}
-	}
-	
-	protected void init() {
-		hookListener();
-	}
-
-	private void hookListener() {
-		ColumnViewerEditorActivationListener listener = new ColumnViewerEditorActivationListener() {
-
-			public void afterEditorActivated(
-					ColumnViewerEditorActivationEvent event) {
-				
-			}
-
-			public void afterEditorDeactivated(
-					ColumnViewerEditorDeactivationEvent event) {
-				cursor.setVisible(true);
-				cursor.setSelection(getFocusCell(), 0); //TODO THE TIME
-			}
-
-			public void beforeEditorActivated(
-					ColumnViewerEditorActivationEvent event) {
-				cursor.setVisible(false);
-			}
-
-			public void beforeEditorDeactivated(
-					ColumnViewerEditorDeactivationEvent event) {
-				
-			}
-		};
-		
-		viewer.getColumnViewerEditor().addEditorActivationListener(listener);
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java
deleted file mode 100644
index 0725c4b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/FocusBorderCellHighlighter.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.FocusCellHighlighter;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerRow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-public class FocusBorderCellHighlighter extends FocusCellHighlighter {
-	private ViewerCell oldCell;
-
-	/**
-	 * @param viewer
-	 *            the viewer
-	 */
-	public FocusBorderCellHighlighter(ColumnViewer viewer) {
-		super(viewer);
-		hookListener(viewer);
-	}
-
-	private void markFocusedCell(Event event, ViewerCell cell) {
-		GC gc = event.gc;
-
-		Rectangle rect = event.getBounds();
-		gc.drawFocus(rect.x, rect.y, rect.width, rect.height);
-
-		event.detail &= ~SWT.SELECTED;
-	}
-
-	private void removeSelectionInformation(Event event, ViewerCell cell) {
-
-	}
-
-	private void hookListener(final ColumnViewer viewer) {
-
-		Listener listener = new Listener() {
-
-			public void handleEvent(Event event) {
-				if ((event.detail & SWT.SELECTED) > 0) {
-					ViewerCell focusCell = getFocusCell();
-					ViewerRow row = focusCell.getViewerRow();
-
-					Assert
-							.isNotNull(row,
-									"Internal structure invalid. Item without associated row is not possible."); //$NON-NLS-1$
-
-					ViewerCell cell = row.getCell(event.index);
-
-					if (focusCell == null || !cell.equals(focusCell)) {
-						removeSelectionInformation(event, cell);
-					} else {
-						markFocusedCell(event, cell);
-					}
-				}
-			}
-
-		};
-		viewer.getControl().addListener(SWT.EraseItem, listener);
-	}
-
-	/**
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color
-	 */
-	protected Color getSelectedCellBackgroundColor(ViewerCell cell) {
-		return null;
-	}
-
-	/**
-	 * @param cell
-	 *            the cell which is colored
-	 * @return the color
-	 */
-	protected Color getSelectedCellForegroundColor(ViewerCell cell) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.FocusCellHighlighter#focusCellChanged(org.eclipse.jface.viewers.ViewerCell)
-	 */
-	protected void focusCellChanged(ViewerCell cell) {
-		super.focusCellChanged(cell);
-
-		// Redraw new area
-		if (cell != null) {
-			Rectangle rect = cell.getBounds();
-			int x = cell.getColumnIndex() == 0 ? 0 : rect.x;
-			int width = cell.getColumnIndex() == 0 ? rect.x + rect.width
-					: rect.width;
-			cell.getControl().redraw(x, rect.y, width, rect.height, true);
-		}
-
-		if (oldCell != null) {
-			Rectangle rect = oldCell.getBounds();
-			int x = oldCell.getColumnIndex() == 0 ? 0 : rect.x;
-			int width = oldCell.getColumnIndex() == 0 ? rect.x + rect.width
-					: rect.width;
-			oldCell.getControl().redraw(x, rect.y, width, rect.height, true);
-		}
-
-		this.oldCell = cell;
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java
deleted file mode 100644
index 017b19a..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet001TableViewer.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TableViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet001TableViewer {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet001TableViewer(Shell shell) {
-		final TableViewer v = new TableViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet001TableViewer(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java
deleted file mode 100644
index 68c6fcf..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet002TreeViewer.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet002TreeViewer {
-	private class MyContentProvider implements ITreeContentProvider {
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel)inputElement).child.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) {
-			
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if( element == null) {
-				return null;
-			}
-			
-			return ((MyModel)element).parent;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel)element).child.size() > 0;
-		}
-		
-	}
-	
-	public class MyModel {
-		public MyModel parent;
-		public ArrayList child = new ArrayList();
-		public int counter;
-		
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			String rv = "Item ";
-			if( parent != null ) {
-				rv = parent.toString() + ".";
-			}
-			
-			rv += counter;
-			
-			return rv;
-		}
-	}
-	
-	public Snippet002TreeViewer(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-	
-	private MyModel createModel() {
-		
-		MyModel root = new MyModel(0,null);
-		root.counter = 0;
-		
-		MyModel tmp;
-		for( int i = 1; i < 10; i++ ) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for( int j = 1; j < i; j++ ) {
-				tmp.child.add(new MyModel(j,tmp));
-			}
-		}
-		
-		return root;
-	}
-	
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet002TreeViewer(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java
deleted file mode 100644
index 4dbd122..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet003TableLabelProvider.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-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.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of ITableLabelProvider using images and labels
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet003TableLabelProvider {
-	private static Image[] images;
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public class MyLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if( columnIndex == 1 ) {
-				return images[((MyModel)element).counter%4];
-			}
-			
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-		
-	}
-	
-	private static Image createImage(Display display, int red, int green, int blue) {
-		Color color = new Color(display,red,green,blue);
-		Image image = new Image(display,10,10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-		
-		return image;
-	}
-	
-	public Snippet003TableLabelProvider(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		
-		TableColumn column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		
-		images = new Image[4];
-		images[0] = createImage(display,0,0,255);
-		images[1] = createImage(display,0,255,255);
-		images[2] = createImage(display,0,255,0);
-		images[3] = createImage(display,255,0,255);
-		
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet003TableLabelProvider(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		for( int i = 0; i < images.length; i++ ) {
-			images[i].dispose();
-		}
-		
-		display.dispose ();
-		
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java
deleted file mode 100644
index cfd639b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet004HideSelection.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Snippet that hides the selection when nothing is selected.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet004HideSelection {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-			
-		}
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet004HideSelection(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().addMouseListener(new MouseAdapter() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.MouseAdapter#mouseDown(org.eclipse.swt.events.MouseEvent)
-			 */
-			public void mouseDown(MouseEvent e) {
-				if( v.getTable().getItem(new Point(e.x,e.y)) == null ) {
-					v.setSelection(new StructuredSelection());
-				}
-			}
-			
-		});
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet004HideSelection(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java
deleted file mode 100644
index 46fd640..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet005TreeCustomMenu.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-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.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Customized context menu based on TreeItem-Selection
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet005TreeCustomMenu {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.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) {
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public Snippet005TreeCustomMenu(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-
-		final Action a = new Action("") {
-		};
-		final MenuManager mgr = new MenuManager();
-		mgr.setRemoveAllWhenShown(true);
-
-		mgr.addMenuListener(new IMenuListener() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
-			 */
-			public void menuAboutToShow(IMenuManager manager) {
-				IStructuredSelection selection = (IStructuredSelection) v
-						.getSelection();
-				if (!selection.isEmpty()) {
-					a.setText("Action for "
-							+ ((MyModel) selection.getFirstElement())
-									.toString());
-					mgr.add(a);
-				}
-			}
-		});
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet005TreeCustomMenu(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java
deleted file mode 100644
index 80c99f6..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet006TableMultiLineCells.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-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.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class Snippet006TableMultiLineCells {
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display, SWT.CLOSE);
-		shell.setSize(400, 400);
-		shell.setLayout(new GridLayout());
-
-		Snippet006TableMultiLineCells example = new Snippet006TableMultiLineCells();
-		example.createPartControl(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-		display.dispose();
-	}
-
-	class LineEntry {
-
-		String line;
-
-		int columnWidth;
-
-		/**
-		 * Create a new instance of the receiver with name text constrained to a
-		 * column of width.
-		 * 
-		 * @param text
-		 * @param width
-		 */
-		LineEntry(String text, int width) {
-			line = text;
-			columnWidth = width;
-		}
-
-		/**
-		 * Get the height of the event.
-		 * 
-		 * @param index
-		 * @return int
-		 */
-		public int getHeight(Event event) {
-			event.gc.setLineWidth(columnWidth);
-			return event.gc.textExtent(line).y;
-
-		}
-
-		/**
-		 * Get the width of the event.
-		 * 
-		 * @param index
-		 * @return
-		 */
-		public int getWidth(Event event) {
-
-			return columnWidth;
-		}
-
-		/**
-		 * Get the font we are using.
-		 * 
-		 * @return Font
-		 */
-		protected Font getFont() {
-			return JFaceResources.getFont(JFaceResources.HEADER_FONT);
-		}
-
-		/**
-		 * @param event
-		 */
-		public void draw(Event event) {
-			event.gc.drawText(line, event.x, event.y);
-
-		}
-	}
-
-	private TableViewer viewer;
-
-	private LineEntry[] entries;
-
-	public Snippet006TableMultiLineCells() {
-		String[] lines = new String[] {
-				"This day is called the feast of Crispian:",
-				"He that outlives this day, \n and comes safe home,",
-				"Will stand a tip-toe when the day is named,",
-				"And rouse him at the name of Crispian.",
-				"He that shall live this day,\n and see old age,",
-				"Will yearly on the vigil feast his neighbours,",
-				"And say 'To-morrow is Saint Crispian:'",
-				"Then will he strip his sleeve and show his scars.",
-				"And say 'These wounds I had on Crispin's day.'",
-				"Old men forget:\n yet all shall be forgot,",
-				"But he'll remember with advantages",
-				"What feats he did that day:\n then shall our names.",
-				"Familiar in his mouth as household words",
-				"Harry the king, Bedford and Exeter,",
-				"Warwick and Talbot,\n Salisbury and Gloucester,",
-				"Be in their flowing cups freshly remember'd.",
-				"This story shall the good man teach his son;",
-				"And Crispin Crispian shall ne'er go by,",
-				"From this day to the ending of the world,",
-				"But we in it shall be remember'd;",
-				"We few,\n we happy few,\n we band of brothers;",
-				"For he to-day that sheds his blood with me",
-				"Shall be my brother;\n be he ne'er so vile,",
-				"This day shall gentle his condition:",
-				"And gentlemen in England now a-bed",
-				"Shall think themselves accursed they were not here,",
-				"And hold their manhoods cheap whiles any speaks",
-				"That fought with us upon Saint Crispin's day." };
-
-		entries = new LineEntry[lines.length];
-		for (int i = 0; i < lines.length; i++) {
-			entries[i] = new LineEntry(lines[i], 35);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.FULL_SELECTION);
-
-		viewer.setContentProvider(new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return entries;
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
-					Object oldInput, Object newInput) {
-			}
-
-		});
-		createColumns();
-
-		viewer.setLabelProvider(new OwnerDrawLabelProvider() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#measure(org.eclipse.swt.widgets.Event, java.lang.Object)
-			 */
-			protected void measure(Event event, Object element) {
-				LineEntry line = (LineEntry) element;
-				Point size = event.gc.textExtent(line.line);
-				event.width = viewer.getTable().getColumn(event.index).getWidth();
-				int lines = size.x / event.width + 1;
-				event.height = size.y * lines;
-
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#paint(org.eclipse.swt.widgets.Event,
-			 *      java.lang.Object)
-			 */
-			protected void paint(Event event, Object element) {
-
-				LineEntry entry = (LineEntry) element;
-				event.gc.drawText(entry.line, event.x, event.y, true);
-			}
-		});
-		viewer.setInput(this);
-
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-
-		viewer.getControl().setLayoutData(data);
-		OwnerDrawLabelProvider.setUpOwnerDraw(viewer);
-
-		viewer.setSelection(new StructuredSelection(entries[1]));
-	}
-
-	/**
-	 * Create the columns to be used in the tree.
-	 */
-	private void createColumns() {
-		TableLayout layout = new TableLayout();
-		viewer.getTable().setLayout(layout);
-		viewer.getTable().setHeaderVisible(true);
-		viewer.getTable().setLinesVisible(true);
-
-		TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, 0);
-		layout.addColumnData(new ColumnPixelData(350));
-		tc.setText("Lines");
-
-	}
-
-	public void setFocus() {
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java
deleted file mode 100644
index 2912f83..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet007FullSelection.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-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.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * TableViewer: Hide full selection
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet007FullSelection {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet007FullSelection(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				TableItem item = (TableItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				v.update(item.getData(), null);
-			}
-			
-		});
-		v.setColumnProperties(new String[] { "column1", "column2" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()),new TextCellEditor(v.getTable()) });
-		
-		TableColumn column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(100);
-		column.setText("Column 1");
-		
-		column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(100);
-		column.setText("Column 2");
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		
-		v.getTable().addListener(SWT.EraseItem, new Listener() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-				event.detail &= ~SWT.SELECTED;
-			}
-		});
-		
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet007FullSelection(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java
deleted file mode 100644
index b275ed9..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet008RevealElement.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Scroll a Viewer 99th element
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet008RevealElement {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet008RevealElement(Shell shell) {
-		final TableViewer v = new TableViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.reveal(model[99]);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[100];
-		
-		for( int i = 0; i < 100; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet008RevealElement(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java
deleted file mode 100644
index 46f6549..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet009CellEditors.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Edit cell values in a table
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet009CellEditors {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet009CellEditors(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(new ICellModifier() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-			 */
-			public boolean canModify(Object element, String property) {
-				return ((MyModel)element).counter % 2 == 0;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-			 */
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-			 */
-			public void modify(Object element, String property, Object value) {
-				TableItem item = (TableItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				v.update(item.getData(), null);
-			}
-			
-		});
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()) });
-		
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet009CellEditors(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java
deleted file mode 100644
index 05db09f..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet010OwnerDraw.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     oliver.schaefer@mbtech-services.com - Fix for Bug 225051 [Snippets] Snippet010OwnerDraw - Wrong german flag
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.TextLayout;
-import org.eclipse.swt.graphics.TextStyle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class Snippet010OwnerDraw {
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-		Shell shell = new Shell(display, SWT.CLOSE);
-		shell.setSize(400, 400);
-		shell.setLayout(new GridLayout());
-
-		Snippet010OwnerDraw example = new Snippet010OwnerDraw();
-		example.createPartControl(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		display.dispose();
-	}
-
-	private static int COLUMN_COUNT = 3;
-
-	class CountryEntry {
-
-		String name;
-
-		String cupYear;
-
-		private String baseName;
-
-		/**
-		 * Create a new instance of the receiver.
-		 * 
-		 * @param countryName
-		 * @param worldCupYear
-		 */
-		CountryEntry(String countryName, String englishName, String worldCupYear) {
-			name = countryName;
-			cupYear = worldCupYear;
-			baseName = englishName;
-		}
-
-		/**
-		 * @param index
-		 * @return
-		 */
-		public int getHeight(Event event) {
-			switch (event.index) {
-			case 0:
-				return event.gc.textExtent(name).y;
-			case 1:
-				return 50;
-			case 2:
-				return event.gc.textExtent(cupYear).y;
-			default:
-				return 10;
-			}
-		}
-
-		/**
-		 * @param index
-		 * @return
-		 */
-		public int getWidth(Event event) {
-
-			switch (event.index) {
-			case 0:
-				return event.gc.textExtent(getDisplayString().toString()).x + 4;
-
-			case 1:
-				return 200;
-
-			case 2:
-				return event.gc.textExtent(cupYear).x + 5;
-
-			default:
-				return 10;
-			}
-		}
-
-		/**
-		 * Draw the flag in bounds.
-		 * 
-		 * @param event
-		 */
-		protected void drawFlag(Event event) {
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_BLUE));
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			event.gc.fillRectangle(bounds);
-		}
-
-		/**
-		 * Draw the cup year
-		 * 
-		 * @param event
-		 */
-		private void drawCupYear(Event event) {
-			event.gc.drawText(cupYear, event.x, event.y);
-
-		}
-
-		/**
-		 * Draw the name of the receiver.
-		 * 
-		 * @param event
-		 */
-		protected void drawName(Event event) {
-
-			StringBuffer buffer = getDisplayString();
-
-			Display display = viewer.getControl().getDisplay();
-			TextLayout layout = new TextLayout(display);
-			layout.setText(buffer.toString());
-
-			TextStyle plain = new TextStyle(JFaceResources
-					.getFont(JFaceResources.DEFAULT_FONT), display
-					.getSystemColor(SWT.COLOR_LIST_FOREGROUND), display
-					.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-
-			TextStyle italic = new TextStyle(JFaceResources.getFontRegistry()
-					.getItalic(JFaceResources.DEFAULT_FONT), display
-					.getSystemColor(SWT.COLOR_BLUE), display
-					.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-
-			layout.setStyle(plain, 0, name.length() - 1);
-			layout.setStyle(italic, name.length(), buffer.length() - 1);
-
-			layout.draw(event.gc, event.x, event.y);
-
-		}
-
-		/**
-		 * @return
-		 */
-		private StringBuffer getDisplayString() {
-			StringBuffer buffer = new StringBuffer();
-			buffer.append(name);
-			buffer.append(" (");
-			buffer.append(baseName);
-			buffer.append(")");
-			return buffer;
-		}
-
-		/**
-		 * @param event
-		 */
-		public void draw(Event event) {
-
-			switch (event.index) {
-			case 0:
-				drawName(event);
-				break;
-			case 1:
-				drawFlag(event);
-				break;
-			case 2:
-				drawCupYear(event);
-				break;
-
-			default:
-				break;
-			}
-
-		}
-	}
-
-	private class GermanyEntry extends CountryEntry {
-
-		GermanyEntry() {
-			super("Deutschland", "Germany", "1954 1974 1990");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			int stripeHeight = bounds.height / 3;
-			Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
-					stripeHeight);
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_BLACK));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_YELLOW));
-			event.gc.fillRectangle(stripe);
-
-		}
-
-	}
-
-	private class AustriaEntry extends CountryEntry {
-
-		AustriaEntry() {
-			super("\u00D6sterreich", "Austria", "TBD");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			int stripeHeight = bounds.height / 3;
-			Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
-					stripeHeight);
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_WHITE));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-		}
-	}
-
-	private class EnglandEntry extends CountryEntry {
-		EnglandEntry() {
-			super("Blighty", "England", "1966");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-
-			event.gc.setBackground(viewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(new Rectangle(bounds.width / 2 + bounds.x
-					- 5, bounds.y, 10, bounds.height));
-			event.gc.fillRectangle(new Rectangle(bounds.x, bounds.height / 2
-					+ bounds.y - 5, bounds.width, 10));
-
-		}
-	}
-
-	private TableViewer viewer;
-
-	private CountryEntry[] entries;
-
-	public Snippet010OwnerDraw() {
-		entries = new CountryEntry[3];
-		entries[0] = new AustriaEntry();
-		entries[1] = new GermanyEntry();
-		entries[2] = new EnglandEntry();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.FULL_SELECTION);
-
-		viewer.setContentProvider(new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return entries;
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
-					Object oldInput, Object newInput) {
-			}
-
-		});
-		createColumns();
-
-		viewer.setLabelProvider(new OwnerDrawLabelProvider() {
-	
-
-			protected void measure(Event event, Object element) {
-				CountryEntry country = (CountryEntry) element;
-
-				event.setBounds(new Rectangle(event.x, event.y, country.getWidth(event),
-						country.getHeight(event)));
-
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.OwnerDrawLabelProvider#paint(org.eclipse.swt.widgets.Event,
-			 *      java.lang.Object)
-			 */
-			protected void paint(Event event, Object element) {
-				CountryEntry entry = (CountryEntry) element;
-				entry.draw(event);
-
-			}
-		});
-		
-		OwnerDrawLabelProvider.setUpOwnerDraw(viewer);
-		viewer.setInput(this);
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-
-		viewer.getControl().setLayoutData(data);
-
-		viewer.setSelection(new StructuredSelection(entries[1]));
-	}
-
-	/**
-	 * Create the columns to be used in the tree.
-	 */
-	private void createColumns() {
-		TableLayout layout = new TableLayout();
-		viewer.getTable().setLayout(layout);
-		viewer.getTable().setHeaderVisible(true);
-		viewer.getTable().setLinesVisible(true);
-
-		for (int i = 0; i < COLUMN_COUNT; i++) {
-			TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, i);
-			layout.addColumnData(new ColumnPixelData(100));
-			tc.setText(getTitleFor(i));
-		}
-		;
-	}
-
-	/**
-	 * @param i
-	 * @return
-	 */
-	private String getTitleFor(int i) {
-		switch (i) {
-		case 0:
-			return "Name";
-		case 1:
-			return "Flag";
-		case 2:
-			return "World Cup Year";
-		}
-		return "Unknown";
-	}
-
-	public void setFocus() {
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java
deleted file mode 100644
index 9602606..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet011CustomTooltips.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     IBM - Improvement for Bug 159625 [Snippets] Update Snippet011CustomTooltips to reflect new API
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore New API: JFace custom tooltips drawing.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3
- */
-public class Snippet011CustomTooltips {
-	private static class MyContentProvider implements
-			IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return new String[] { "one", "two", "three", "four", "five", "six",
-					"seven", "eight", "nine", "ten" };
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		TableViewer v = new TableViewer(shell, SWT.FULL_SELECTION);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		v.setContentProvider(new MyContentProvider());
-		ColumnViewerToolTipSupport.enableFor(v,ToolTip.NO_RECREATE);
-		
-		CellLabelProvider labelProvider = new CellLabelProvider() {
-
-			public String getToolTipText(Object element) {
-				return "Tooltip (" + element + ")";
-			}
-
-			public Point getToolTipShift(Object object) {
-				return new Point(5, 5);
-			}
-
-			public int getToolTipDisplayDelayTime(Object object) {
-				return 2000;
-			}
-
-			public int getToolTipTimeDisplayed(Object object) {
-				return 5000;
-			}
-
-			public void update(ViewerCell cell) {
-				cell.setText(cell.getElement().toString());
-
-			}
-		};
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.setLabelProvider(labelProvider);
-		column.getColumn().setText("Column 1");
-		column.getColumn().setWidth(100);
-
-		v.setInput("");
-
-		shell.setSize(200, 200);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-		display.dispose();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java
deleted file mode 100644
index 1de89ef..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet013TableViewerNoMandatoryLabelProvider.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-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.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of none mandatory interfaces of ITableFontProvider and
- * ITableColorProvider
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet013TableViewerNoMandatoryLabelProvider {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet013TableViewerNoMandatoryLabelProvider(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet013TableViewerNoMandatoryLabelProvider(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java
deleted file mode 100644
index e3c8aae..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet014TreeViewerNoMandatoryLabelProvider.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet014TreeViewerNoMandatoryLabelProvider {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.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) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet014TreeViewerNoMandatoryLabelProvider(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		
-		TreeColumn column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet014TreeViewerNoMandatoryLabelProvider(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java
deleted file mode 100644
index 0732027..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet015CustomTooltipsForTree.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore New API: JFace custom tooltips drawing.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3M2
- */
-public class Snippet015CustomTooltipsForTree {
-	private static class MyContentProvider implements ITreeContentProvider {
-
-		private static final String ROOT = "Root";
-
-		public Object[] getElements(Object inputElement) {
-			return new Object[]{ROOT};
-		}
-
-		public void dispose() {
-			
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-			
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			if(parentElement.equals(ROOT))
-				return new String[] { "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
-			return new Object[0];
-		}
-
-		public Object getParent(Object element) {
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			return element.equals(ROOT);
-		}
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display ();
-		Shell shell = new Shell (display);
-	    shell.setLayout(new FillLayout());
-	    
-	    TreeViewer v = new TreeViewer(shell,SWT.FULL_SELECTION);
-	    v.getTree().setLinesVisible(true);
-	    v.getTree().setHeaderVisible(true);
-	    ColumnViewerToolTipSupport.enableFor(v);
-	    
-	    v.setContentProvider(new MyContentProvider());
-	    
-	    CellLabelProvider labelProvider = new CellLabelProvider() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipText(java.lang.Object)
-			 */
-			public String getToolTipText(Object element) {
-				return "Tooltip (" + element + ")";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipShift(java.lang.Object)
-			 */
-			public Point getToolTipShift(Object object) {
-				return new Point(5,5);
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipDisplayDelayTime(java.lang.Object)
-			 */
-			public int getToolTipDisplayDelayTime(Object object) {
-				return 2000;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ViewerLabelProvider#getTooltipTimeDisplayed(java.lang.Object)
-			 */
-			public int getToolTipTimeDisplayed(Object object) {
-				return 5000;
-			}
-			
-			public void update(ViewerCell cell) {
-				cell.setText(cell.getElement().toString());
-				
-			}
-	    };
-	    
-	    
-	    v.setLabelProvider(labelProvider);
-	    v.setInput("");
-	    
-	    shell.setSize(200,200);
-	    shell.open ();
-	    
-	    while (!shell.isDisposed()) {
-	        if (!display.readAndDispatch ()) {
-	        	display.sleep ();
-	        }
-	    }
-	    
-	    display.dispose ();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java
deleted file mode 100644
index 12080b2..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet017TableViewerHideShowColumns.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-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.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of none mandatory interfaces of ITableFontProvider and
- * ITableColorProvider
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.2
- */
-public class Snippet017TableViewerHideShowColumns {
-	private class ShrinkThread extends Thread {
-		private int width = 0;
-		private TableColumn column;
-		
-		public ShrinkThread(int width, TableColumn column) {
-			super();
-			this.width = width;
-			this.column = column;
-		}
-		
-		public void run() {
-			column.getDisplay().syncExec(new Runnable() {
-
-				public void run() {
-					column.setData("restoredWidth", new Integer(width));
-				}
-			});
-			
-			for( int i = width; i >= 0; i-- ) {
-				final int index = i;
-				column.getDisplay().syncExec(new Runnable() {
-
-					public void run() {
-						column.setWidth(index);
-					}
-					
-				});
-			}
-		}
-	};
-	
-	private class ExpandThread extends Thread {
-		private int width = 0;
-		private TableColumn column;
-		
-		public ExpandThread(int width, TableColumn column) {
-			super();
-			this.width = width;
-			this.column = column;
-		}
-		
-		public void run() {
-			for( int i = 0; i <= width; i++ ) {
-				final int index = i;
-				column.getDisplay().syncExec(new Runnable() {
-
-					public void run() {
-						column.setWidth(index);
-					}
-					
-				});
-			}
-		}
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-	}
-
-	public Snippet017TableViewerHideShowColumns(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 3");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		addMenu(v);
-	}
-
-	private void addMenu(TableViewer v) {
-		final MenuManager mgr = new MenuManager();
-		Action action;
-		
-		for( int i = 0; i < v.getTable().getColumnCount(); i++ ) {
-			final TableColumn column = v.getTable().getColumn(i);
-			
-			action = new Action(v.getTable().getColumn(i).getText(),SWT.CHECK) {
-				public void runWithEvent(Event event) {
-					if( ! isChecked() ) {
-						ShrinkThread t = new ShrinkThread(column.getWidth(),column);
-						t.run();
-					} else {
-						ExpandThread t = new ExpandThread(((Integer)column.getData("restoredWidth")).intValue(),column);
-						t.run();
-					}
-				}
-				
-			};
-			action.setChecked(true);
-			mgr.add(action);
-		}
-		
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-	
-	
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet017TableViewerHideShowColumns(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java
deleted file mode 100644
index 5c90d00..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet018TableViewerAddRemoveColumnsWithEditing.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-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.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-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.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example of adding and removing columns in conjunction with JFace-Viewers
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.2
- */
-public class Snippet018TableViewerAddRemoveColumnsWithEditing {
-
-	public class Person {
-		public String givenname;
-
-		public String surname;
-
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-		public String getValue(String name) {
-			Field field;
-			try {
-				field = getClass().getDeclaredField(name);
-				return (String) field.get(this);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-
-			return "ERROR";
-		}
-
-		public void setValue(String name, String value) {
-			Field field;
-			try {
-				field = getClass().getDeclaredField(name);
-				field.set(this, value);
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		private TableViewer viewer;
-
-		public MyLabelProvider(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return ((Person) element)
-					.getValue(viewer.getColumnProperties()[columnIndex]
-							.toString());
-		}
-	}
-
-	public class MyCellModifier implements ICellModifier {
-		private TableViewer viewer;
-
-		public MyCellModifier(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		public Object getValue(Object element, String property) {
-			return ((Person) element).getValue(property);
-		}
-
-		public void modify(Object element, String property, Object value) {
-			((Person) ((Item) element).getData()).setValue(property, value
-					.toString());
-			viewer.update(((Item) element).getData(), null);
-		}
-
-	}
-
-	private int activeColumn = -1;
-
-	public Snippet018TableViewerAddRemoveColumnsWithEditing(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider(v));
-		v.setContentProvider(new MyContentProvider());
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new MyCellModifier(v));
-
-		v.setColumnProperties(new String[] { "givenname", "surname" });
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Givenname");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Surname");
-
-		Person[] model = createModel();
-
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		addMenu(v);
-		triggerColumnSelectedColumn(v);
-	}
-
-	private void triggerColumnSelectedColumn(final TableViewer v) {
-		v.getTable().addMouseListener(new MouseAdapter() {
-
-			public void mouseDown(MouseEvent e) {
-				int x = 0;
-				for (int i = 0; i < v.getTable().getColumnCount(); i++) {
-					x += v.getTable().getColumn(i).getWidth();
-					if (e.x <= x) {
-						activeColumn = i;
-						break;
-					}
-				}
-			}
-
-		});
-	}
-
-	private void addMenu(final TableViewer v) {
-		final MenuManager mgr = new MenuManager();
-
-		final Action insertEmailBefore = new Action("Insert E-Mail before") {
-			public void run() {
-				addEmailColumn(v, activeColumn);
-			}
-		};
-
-		final Action insertEmailAfter = new Action("Insert E-Mail after") {
-			public void run() {
-				addEmailColumn(v, activeColumn + 1);
-			}
-		};
-
-		final Action removeEmail = new Action("Remove E-Mail") {
-			public void run() {
-				removeEmailColumn(v);
-			}
-		};
-
-		mgr.setRemoveAllWhenShown(true);
-		mgr.addMenuListener(new IMenuListener() {
-
-			public void menuAboutToShow(IMenuManager manager) {
-				if (v.getTable().getColumnCount() == 2) {
-					manager.add(insertEmailBefore);
-					manager.add(insertEmailAfter);
-				} else {
-					manager.add(removeEmail);
-				}
-			}
-
-		});
-
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-
-	private void removeEmailColumn(TableViewer v) {
-		int emailIndex = -1;
-		for (int i = 0; i < v.getColumnProperties().length; i++) {
-			if (v.getColumnProperties()[i].toString().equals("email")) {
-				emailIndex = i;
-				break;
-			}
-		}
-
-		ArrayList list = new ArrayList(Arrays.asList(v.getCellEditors()));
-		list.remove(emailIndex);
-		CellEditor[] editors = new CellEditor[list.size()];
-		list.toArray(editors);
-		v.setCellEditors(editors);
-
-		list = new ArrayList(Arrays.asList(v.getColumnProperties()));
-		list.remove(emailIndex);
-		String[] columnProperties = new String[list.size()];
-		list.toArray(columnProperties);
-		v.setColumnProperties(columnProperties);
-
-		v.getTable().getColumn(emailIndex).dispose();
-
-		v.refresh();
-	}
-
-	private void addEmailColumn(TableViewer v, int columnIndex) {
-		ArrayList list = new ArrayList(Arrays.asList(v.getCellEditors()));
-		list.add(columnIndex, new TextCellEditor(v.getTable()));
-		CellEditor[] editors = new CellEditor[list.size()];
-		list.toArray(editors);
-		v.setCellEditors(editors);
-
-		list = new ArrayList(Arrays.asList(v.getColumnProperties()));
-		list.add(columnIndex, "email");
-		String[] columnProperties = new String[list.size()];
-		list.toArray(columnProperties);
-		v.setColumnProperties(columnProperties);
-
-		// 1. Add new column
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE,
-				columnIndex);
-		column.setText("E-Mail");
-
-		// 2. Update the viewer
-		v.refresh();
-
-		// 3. Make the colum visible
-		column.setWidth(200);
-	}
-
-	private Person[] createModel() {
-		Person[] persons = new Person[3];
-		persons[0] = new Person("Tom", "Schindl", "tom.schindl@bestsolution.at");
-		persons[1] = new Person("Boris", "Bokowski",
-				"boris_bokowski@ca.ibm.com");
-		persons[2] = new Person("Tod", "Creasey", "tod_creasey@ca.ibm.com");
-
-		return persons;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet018TableViewerAddRemoveColumnsWithEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java
deleted file mode 100644
index 5b2b731..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI.java
+++ /dev/null
@@ -1,316 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-
-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.util.ConfigureColumns;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.SameShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore the new API added in 3.3 and see how easily you can create reusable
- * components
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.2
- */
-public class Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI {
-
-	public class Person {
-		public String givenname;
-
-		public String surname;
-
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	
-
-	private class GivenNameLabelProvider extends ColumnLabelProvider {
-		public String getText(Object element) {
-			return ((Person) element).givenname;
-		}
-	}
-	
-	private class GivenNameEditing extends EditingSupport {
-		private TextCellEditor cellEditor;
-		
-		public GivenNameEditing(TableViewer viewer) {
-			super(viewer);
-			cellEditor = new TextCellEditor(viewer.getTable());
-		}
-		
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-		
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected Object getValue(Object element) {
-			return ((Person) element).givenname;
-		}
-
-		protected void setValue(Object element, Object value) {
-			((Person) element).givenname = value.toString();
-			getViewer().update(element, null);
-		}
-	}
-	
-	private class SurNameLabelProvider extends ColumnLabelProvider {
-		public String getText(Object element) {
-			return ((Person) element).surname;
-		}
-	}
-	
-	private class SurNameEditing extends EditingSupport {
-		private TextCellEditor cellEditor;
-		
-		public SurNameEditing( TableViewer viewer ) {
-			super(viewer);
-			cellEditor = new TextCellEditor(viewer.getTable());
-		}
-		
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-		
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected Object getValue(Object element) {
-			return ((Person) element).surname;
-		}
-
-		protected void setValue(Object element, Object value) {
-			((Person) element).surname = value.toString();
-			getViewer().update(element, null);
-		}
-	}
-	
-	private class EmailLabelProvider extends ColumnLabelProvider {
-		public String getText(Object element) {
-			return ((Person) element).email;
-		}
-	}
-	
-	private class EmailEditing extends EditingSupport {
-		private TextCellEditor cellEditor;
-		
-		public EmailEditing( TableViewer viewer ) {
-			super(viewer);
-			cellEditor = new TextCellEditor(viewer.getTable());
-		}
-		
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-		
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected Object getValue(Object element) {
-			return ((Person) element).email;
-		}
-
-		protected void setValue(Object element, Object value) {
-			((Person) element).email = value.toString();
-			getViewer().update(element, null);
-		}
-	}
-	
-	private int activeColumn = -1;
-	
-	private TableViewerColumn column;
-	
-	public Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-
-		TableViewerColumn column = new TableViewerColumn(v,SWT.NONE);
-		column.setLabelProvider(new GivenNameLabelProvider());
-		column.setEditingSupport(new GivenNameEditing(v));
-		
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-
-		column = new TableViewerColumn(v,SWT.NONE);
-		column.setLabelProvider(new SurNameLabelProvider());
-		column.setEditingSupport(new SurNameEditing(v));
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(true);
-
-		Person[] model = createModel();
-
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		addMenu(v);
-		triggerColumnSelectedColumn(v);
-	}
-
-	private void triggerColumnSelectedColumn(final TableViewer v) {
-		v.getTable().addMouseListener(new MouseAdapter() {
-
-			public void mouseDown(MouseEvent e) {
-				int x = 0;
-				for (int i = 0; i < v.getTable().getColumnCount(); i++) {
-					x += v.getTable().getColumn(i).getWidth();
-					if (e.x <= x) {
-						activeColumn = i;
-						break;
-					}
-				}
-			}
-
-		});
-	}
-
-	private void removeEmailColumn(TableViewer v) {
-		column.getColumn().dispose();
-		v.refresh();
-	}
-
-	private void addEmailColumn(TableViewer v, int columnIndex) {
-		column = new TableViewerColumn(v, SWT.NONE, columnIndex);
-		column.setLabelProvider(new EmailLabelProvider());
-		column.setEditingSupport(new EmailEditing(v));
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setResizable(false);
-
-		v.refresh();
-
-		column.getColumn().setWidth(200);
-
-	}
-
-	private void addMenu(final TableViewer v) {
-		final MenuManager mgr = new MenuManager();
-
-		final Action insertEmailBefore = new Action("Insert E-Mail before") {
-			public void run() {
-				addEmailColumn(v, activeColumn);
-			}
-		};
-
-		final Action insertEmailAfter = new Action("Insert E-Mail after") {
-			public void run() {
-				addEmailColumn(v, activeColumn + 1);
-			}
-		};
-
-		final Action removeEmail = new Action("Remove E-Mail") {
-			public void run() {
-				removeEmailColumn(v);
-			}
-		};
-
-		final Action configureColumns = new Action("Configure Columns...") {
-			public void run() {
-				ConfigureColumns.forTable(v.getTable(), new SameShellProvider(v.getControl()));
-			}
-		};
-		
-		mgr.setRemoveAllWhenShown(true);
-		mgr.addMenuListener(new IMenuListener() {
-
-			public void menuAboutToShow(IMenuManager manager) {
-				if (v.getTable().getColumnCount() == 2) {
-					manager.add(insertEmailBefore);
-					manager.add(insertEmailAfter);
-				} else {
-					manager.add(removeEmail);
-				}
-				manager.add(configureColumns);
-			}
-
-		});
-
-		v.getControl().setMenu(mgr.createContextMenu(v.getControl()));
-	}
-
-	private Person[] createModel() {
-		Person[] persons = new Person[3];
-		persons[0] = new Person("Tom", "Schindl", "tom.schindl@bestsolution.at");
-		persons[1] = new Person("Boris", "Bokowski",
-				"boris_bokowski@ca.ibm.com");
-		persons[2] = new Person("Tod", "Creasey", "tod_creasey@ca.ibm.com");
-
-		return persons;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet019TableViewerAddRemoveColumnsWithEditingNewAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java
deleted file mode 100644
index 66ee74a..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet021CellEditorsOnDoubleClick.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     Dinko Ivanov - bug 164365
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-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.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Editor Activation on DoubleClick instead of single.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet021CellEditorsOnDoubleClick {
-	private class MyCellModifier implements ICellModifier {
-		
-		private TableViewer viewer;
-		
-		private boolean enabled;
-		
-		public void setEnabled(boolean enabled) {
-			this.enabled = enabled;
-		}
-
-
-		public void setViewer(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public boolean canModify(Object element, String property) {
-			return enabled && ((MyModel) element).counter % 2 == 0;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public Object getValue(Object element, String property) {
-			return ((MyModel) element).counter + "";
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
-		 *      java.lang.String, java.lang.Object)
-		 */
-		public void modify(Object element, String property, Object value) {
-			TableItem item = (TableItem) element;
-			((MyModel) item.getData()).counter = Integer.parseInt(value
-					.toString());
-			viewer.update(item.getData(), null);
-		}
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet021CellEditorsOnDoubleClick(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		final MyCellModifier modifier = new MyCellModifier();
-		
-		table.addListener(SWT.MouseDown, new Listener() {
-
-			public void handleEvent(Event event) {
-				modifier.setEnabled(false);
-			}
-
-		});
-
-		final TableViewer v = new TableViewer(table);
-
-		table.addListener(SWT.MouseDoubleClick, new Listener() {
-
-			public void handleEvent(Event event) {
-				modifier.setEnabled(true);
-				TableItem[] selection = table.getSelection();
-
-				if (selection.length != 1) {
-					return;
-				}
-
-				TableItem item = table.getSelection()[0];
-
-				for (int i = 0; i < table.getColumnCount(); i++) {
-					if (item.getBounds(i).contains(event.x, event.y)) {
-						v.editElement(item.getData(), i);
-						modifier.setEnabled(false);
-						break;
-					}
-				}
-			}
-
-		});
-
-		modifier.setViewer(v);
-		
-		TableColumn column = new TableColumn(table, SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(modifier);
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()) });
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet021CellEditorsOnDoubleClick(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java
deleted file mode 100644
index 744f526..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet022TableViewerRefreshNoScroll.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-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.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * A simple TableViewer to demonstrating how viewers could be refresh and
- * scrolling avoided in 3.2. In 3.3 implementors should consider using the
- * {@link StructuredViewer#refresh(boolean, boolean)} instead.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet022TableViewerRefreshNoScroll {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			ArrayList list = (ArrayList) inputElement;
-			list.add(new MyModel(list.size()));
-			return list.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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet022TableViewerRefreshNoScroll(Shell shell) {
-		shell.setLayout(new GridLayout(2, false));
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel(100));
-		v.getTable().setLinesVisible(true);
-		v.getTable().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("Refresh with Scrolling");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.refresh();
-			}
-
-		});
-
-		b = new Button(shell, SWT.PUSH);
-		b.setText("Refresh with NO-Scrolling");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.getTable().setTopIndex(0);
-				IStructuredSelection selection = (IStructuredSelection) v
-						.getSelection();
-				v.getTable().deselectAll();
-				v.refresh();
-				if (!selection.isEmpty()) {
-					int[] indices = new int[selection.size()];
-
-					Iterator it = selection.iterator();
-					TableItem[] items = v.getTable().getItems();
-					Object modelElement;
-
-					int counter = 0;
-					while (it.hasNext()) {
-						modelElement = it.next();
-						for (int i = 0; i < items.length; i++) {
-							if (items[i].getData() == modelElement) {
-								indices[counter++] = i;
-							}
-						}
-					}
-
-					if (counter < indices.length) {
-						System.arraycopy(items, 0, indices = new int[counter],
-								0, counter);
-					}
-
-					v.getTable().select(indices);
-				}
-			}
-
-		});
-	}
-
-	private ArrayList createModel(int size) {
-		ArrayList elements = new ArrayList();
-
-		for (int i = 0; i < size; i++) {
-			elements.add(new MyModel(i));
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		new Snippet022TableViewerRefreshNoScroll(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java
deleted file mode 100644
index c6f1a46..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet024TableViewerExploreNewAPI.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example usage of ITableLabelProvider using images and labels
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet024TableViewerExploreNewAPI {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-		private TextCellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			this.editor = new TextCellEditor(viewer.getTable());
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			doSetValue(element, value);
-			getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-	}
-
-	public Snippet024TableViewerExploreNewAPI(Shell shell) {
-		TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).email;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-
-		Person[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org");
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet024TableViewerExploreNewAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java
deleted file mode 100644
index 684fe38..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet025TabEditing.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Edit cell values in a table
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet025TabEditing {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet025TabEditing(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		TableColumn tc = new TableColumn(v.getTable(),SWT.NONE);
-		tc.setWidth(100);
-		tc.setText("Column 1");
-		
-		tc = new TableColumn(v.getTable(),SWT.NONE);
-		tc.setWidth(200);
-		tc.setText("Column 2");
-		
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(new ICellModifier() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-			 */
-			public boolean canModify(Object element, String property) {
-				return ((MyModel)element).counter % 2 == 0;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-			 */
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-			 */
-			public void modify(Object element, String property, Object value) {
-				TableItem item = (TableItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				v.update(item.getData(), null);
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] { "column1", "column2" });
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()) });
-		TableViewerEditor.create(v,new ColumnViewerEditorActivationStrategy(v),ColumnViewerEditor.TABBING_HORIZONTAL|ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR|ColumnViewerEditor.TABBING_VERTICAL);
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet025TabEditing(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java
deleted file mode 100644
index 4cba4b5..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet026TreeViewerTabEditing.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet026TreeViewerTabEditing {
-	public Snippet026TreeViewerTabEditing(final Shell shell) {
-		Button b = new Button(shell,SWT.PUSH);
-		b.setText("Remove column");
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-		b.addSelectionListener(new SelectionListener() {
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				v.getTree().getColumn(1).dispose();
-			}
-			
-		});
-				 
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-		
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-
-		TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return false;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 2 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-		
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 3 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-		
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet026TreeViewerTabEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java
deleted file mode 100644
index 2363d85..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet027ComboBoxCellEditors.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     Dinko Ivanov - bug 164365
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-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.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * This snippet represents usage of the ComboBoxCell-Editor
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet027ComboBoxCellEditors {
-	private class MyCellModifier implements ICellModifier {
-
-		private TableViewer viewer;
-
-		public MyCellModifier(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public Object getValue(Object element, String property) {
-			// We need to calculate back to the index
-			return new Integer(((MyModel) element).counter / 10);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
-		 *      java.lang.String, java.lang.Object)
-		 */
-		public void modify(Object element, String property, Object value) {
-			TableItem item = (TableItem) element;
-			// We get the index and need to calculate the real value
-			((MyModel) item.getData()).counter = ((Integer) value).intValue() * 10;
-			viewer.update(item.getData(), null);
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet027ComboBoxCellEditors(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		final TableViewer v = new TableViewer(table);
-		final MyCellModifier modifier = new MyCellModifier(v);
-
-		TableColumn column = new TableColumn(table, SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(modifier);
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new ComboBoxCellEditor(
-				v.getTable(), new String[] { "Zero", "Ten", "Twenty", "Thirty",
-						"Fourty", "Fifty", "Sixty", "Seventy", "Eighty",
-						"Ninety" }) });
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i * 10);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet027ComboBoxCellEditors(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java
deleted file mode 100644
index 6b47105..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet029VirtualTableViewer.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-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.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TableViewer to demonstrate the usage of a standard content provider
- * with a virtual table
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet029VirtualTableViewer {
-	private class MyContentProvider implements IStructuredContentProvider {
-		private MyModel[] elements;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return elements;
-		}
-
-		/*
-		 * (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) {
-			this.elements = (MyModel[]) newInput;
-		}
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet029VirtualTableViewer(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.VIRTUAL);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setUseHashlookup(true);
-		MyModel[] model = createModel();
-		v.setInput(model);
-
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10000];
-
-		for (int i = 0; i < 10000; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet029VirtualTableViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java
deleted file mode 100644
index 7356701..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet030VirtualLazyTableViewer.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ILazyContentProvider;
-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.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TableViewer to demonstrate usage of an ILazyContentProvider. You can
- * compare this snippet to the Snippet029VirtualTableViewer to see the small but
- * needed difference.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet030VirtualLazyTableViewer {
-	private class MyContentProvider implements ILazyContentProvider {
-		private TableViewer viewer;
-		private MyModel[] elements;
-
-		public MyContentProvider(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			this.elements = (MyModel[]) newInput;
-		}
-
-		public void updateElement(int index) {
-			viewer.replace(elements[index], index);
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet030VirtualLazyTableViewer(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.VIRTUAL);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider(v));
-		v.setUseHashlookup(true);
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.setItemCount(model.length); // This is the difference when using a
-		// ILazyContentProvider
-
-		v.getTable().setLinesVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10000];
-
-		for (int i = 0; i < 10000; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet030VirtualLazyTableViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java
deleted file mode 100644
index 116b133..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet031TableViewerCustomTooltipsMultiSelection.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Adam Neal and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Adam Neal - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-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.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * A simple TableViewer to demonstrate how custom tooltips could be created easily while preserving 
- * the multiple selection.
- * 
- * This is a modified example taken from Tom Schindl's Snippet023TreeViewerCustomTooltips.java
- * 
- * This code is for users pre 3.3 others could use newly added tooltip support in {@link CellLabelProvider}
-
- * @author Adam Neal <Adam_Neal@ca.ibm.com>
- * 
- */
-public class Snippet031TableViewerCustomTooltipsMultiSelection {
-	public class MyLableProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			if (element instanceof MyModel) {
-				switch (columnIndex) {
-					case 0: return ((MyModel)element).col1;
-					case 1: return ((MyModel)element).col2;
-				}
-			}
-			return "";
-		}
-
-		public void addListener(ILabelProviderListener listener) {
-			/* Ignore */
-		}
-
-		public void dispose() {
-			/* Ignore */
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-			/* Ignore */
-		}
-		
-	}
-	
-	public class MyModel {
-		public String col1, col2;
-
-		public MyModel(String c1, String c2) {
-			col1 = c1;
-			col2 = c2;
-		}
-		
-		public String toString() {
-			return col1 + col2;
-		}
-
-	}
-
-	public Snippet031TableViewerCustomTooltipsMultiSelection(Shell shell) {
-		final Table table = new Table(shell, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.FULL_SELECTION);
-		table.setHeaderVisible(true);
-        table.setLinesVisible(true);
-        
-		final TableViewer v = new TableViewer(table);
-		TableColumn tableColumn1 = new TableColumn(table, SWT.NONE);
-		TableColumn tableColumn2 = new TableColumn(table, SWT.NONE);
-		
-		String column1 = "Column 1", column2 = "Column 2";
-		/* Setup the table  columns */
-        tableColumn1.setText(column1);
-        tableColumn2.setText(column2);
-        tableColumn1.pack();
-        tableColumn2.pack();
-        
-        v.setColumnProperties(new String[] { column1, column2 });
-		v.setLabelProvider(new MyLableProvider());
-		v.setContentProvider(new ArrayContentProvider());
-		v.setInput(createModel());
-		
-		/**
-	     * The listener that gets added to the table.  This listener is responsible for creating the tooltips
-	     * when hovering over a cell item. This listener will listen for the following events:
-	     *  <li>SWT.KeyDown		- to remove the tooltip</li>
-	     *  <li>SWT.Dispose		- to remove the tooltip</li>
-	     *  <li>SWT.MouseMove	- to remove the tooltip</li>
-	     *  <li>SWT.MouseHover	- to set the tooltip</li>
-	     */
-	    Listener tableListener = new Listener () {
-	    	Shell tooltip = null;
-	    	Label label = null;
-	    	
-	    	/*
-	    	 * (non-Javadoc)
-	    	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-	    	 */
-	    	public void handleEvent (Event event) {
-			   switch (event.type) {
-				   	case SWT.KeyDown:
-				   	case SWT.Dispose:
-				   	case SWT.MouseMove: {
-				   		if (tooltip == null) break;
-				   		tooltip.dispose ();
-				   		tooltip = null;
-				   		label = null;
-				   		break;
-				   	}
-				   	case SWT.MouseHover: {
-				   		Point coords = new Point(event.x, event.y);
-						TableItem item = table.getItem(coords);
-				   		if (item != null) {
-				   			int columnCount = table.getColumnCount();
-							for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) {
-				   				if (item.getBounds(columnIndex).contains(coords)) {
-				   					/* Dispose of the old tooltip (if one exists */
-				   					if (tooltip != null  && !tooltip.isDisposed ()) tooltip.dispose ();
-				   					
-				   					/* Create a new Tooltip */
-				   					tooltip = new Shell (table.getShell(), SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
-				   					tooltip.setBackground (table.getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-				   					FillLayout layout = new FillLayout ();
-				   					layout.marginWidth = 2;
-				   					tooltip.setLayout (layout);
-				   					label = new Label (tooltip, SWT.NONE);
-				   					label.setForeground (table.getDisplay().getSystemColor (SWT.COLOR_INFO_FOREGROUND));
-				   					label.setBackground (table.getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-				   					
-				   					/* Store the TableItem with the label so we can pass the mouse event later */
-				   					label.setData ("_TableItem_", item);
-				   					
-				   					/* Set the tooltip text */
-			   						label.setText("Tooltip: " + item.getData() + " : " + columnIndex);
-			   						
-			   						/* Setup Listeners to remove the tooltip and transfer the received mouse events */
-				   					label.addListener (SWT.MouseExit, tooltipLabelListener);
-				   					label.addListener (SWT.MouseDown, tooltipLabelListener);
-				   					
-				   					/* Set the size and position of the tooltip */
-				   					Point size = tooltip.computeSize (SWT.DEFAULT, SWT.DEFAULT);
-				   					Rectangle rect = item.getBounds (columnIndex);
-				   					Point pt = table.toDisplay (rect.x, rect.y);
-				   					tooltip.setBounds (pt.x, pt.y, size.x, size.y);
-				   					
-				   					/* Show it */
-				   					tooltip.setVisible (true);
-				   					break;
-				   				}
-				   			}
-				   		}
-				   	}
-			   }
-	    	}
-		};
-		
-		table.addListener (SWT.Dispose, tableListener);
-		table.addListener (SWT.KeyDown, tableListener);
-		table.addListener (SWT.MouseMove, tableListener);
-		table.addListener (SWT.MouseHover, tableListener);
-	}
-	
-	   /**
-	    * This listener is added to the tooltip so that it can either dispose itself if the mouse
-	    * exits the tooltip or so it can pass the selection event through to the table.
-	    */
-	    final TooltipLabelListener tooltipLabelListener = new TooltipLabelListener();
-	    final class TooltipLabelListener implements Listener {
-	        private boolean isCTRLDown(Event e) {
-	        	return (e.stateMask & SWT.CTRL) != 0;
-	        }
-		   /*
-		    * (non-Javadoc)
-		    * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		    */
-		   public void handleEvent (Event event) {
-			   Label label = (Label)event.widget;
-			   Shell shell = label.getShell ();
-			   switch (event.type) {
-				   	case SWT.MouseDown:	/* Handle a user Click */
-				   		/* Extract our Data */
-				   		Event e = new Event ();
-				   		e.item = (TableItem) label.getData ("_TableItem_");
-				   		Table table = ((TableItem) e.item).getParent();
-				   		
-				   		/* Construct the new Selection[] to show */
-				   		TableItem [] newSelection = null;
-				   		if (isCTRLDown(event)) {
-				   			/* We have 2 scenario's.  
-				   			 * 	1) We are selecting an already selected element - so remove it from the selected indices
-				   			 *  2) We are selecting a non-selected element - so add it to the selected indices
-				   			 */
-				   			TableItem[] sel = table.getSelection();
-				   			for (int i = 0; i < sel.length; ++i) {
-				   				if (e.item.equals(sel[i])) {
-				   					// We are de-selecting this element
-				   					newSelection = new TableItem[sel.length - 1];
-				   					System.arraycopy(sel, 0, newSelection, 0, i);
-				   					System.arraycopy(sel, i+1, newSelection, i, sel.length - i - 1);
-				   					break;
-				   				}
-		   					}
-				   			
-				   			/*
-				   			 * If we haven't created the newSelection[] yet, than we are adding the newly selected element
-				   			 * into the list of selected indicies
-				   			 */
-				   			if (newSelection == null) {
-				   				newSelection = new TableItem[sel.length + 1];
-				   				System.arraycopy(sel, 0, newSelection, 0, sel.length);
-				   				newSelection[sel.length] = (TableItem) e.item;
-				   			}
-				   			
-				   		} else {
-				   			/* CTRL is not down, so we simply select the single element */
-				   			newSelection = new TableItem[] { (TableItem) e.item };
-				   		}
-				   		/* Set the new selection of the table and notify the listeners */
-				   		table.setSelection (newSelection);
-				   		table.notifyListeners (SWT.Selection, e);
-				   		
-				   		/* Remove the Tooltip */
-				   		shell.dispose ();
-				   		table.setFocus();
-				   		break;
-				   	case SWT.MouseExit:
-				   		shell.dispose ();
-				   		break;
-			   }
-	    }};
-	    	
-	    
-		
-	private List createModel() {
-		ArrayList list = new ArrayList();
-		list.add(new MyModel("A", "B"));
-		list.add(new MyModel("C", "D"));
-		list.add(new MyModel("E", "F"));
-		return list;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet031TableViewerCustomTooltipsMultiSelection(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java
deleted file mode 100644
index 1fab42e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet032TableTreeViewer.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableTreeViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet032TableTreeViewer {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.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) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-	
-	private class MyModifier implements ICellModifier {
-		private TableTreeViewer v;
-		
-		public MyModifier(TableTreeViewer v) {
-			this.v = v;
-		}
-		
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		public Object getValue(Object element, String property) {
-			return ((MyModel)element).counter + "";
-		}
-
-		public void modify(Object element, String property, Object value) {
-			((MyModel)((Item)element).getData()).counter = Integer.parseInt(value.toString());
-			v.update(((Item)element).getData(), null);
-		}
-		
-	}
-
-	public Snippet032TableTreeViewer(Shell shell) {
-		final TableTreeViewer v = new TableTreeViewer(shell, SWT.FULL_SELECTION);
-		
-		TableColumn column = new TableColumn(v.getTableTree().getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TableColumn(v.getTableTree().getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		v.getTableTree().getTable().setHeaderVisible(true);
-		v.getTableTree().getTable().setLinesVisible(true);
-		
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTableTree().getTable()), new TextCellEditor(v.getTableTree().getTable()) });
-		v.setColumnProperties(new String[] { "column1", "column2" });
-		v.setCellModifier(new MyModifier(v));
-		
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet032TableTreeViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java
deleted file mode 100644
index 7589284..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet033CellEditorPerRowPre33.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckboxCellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Snippet to present editor different CellEditors within one column in 3.2
- * for 3.3 and above please use the new EditingSupport class
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet033CellEditorPerRowPre33 {
-	private class MyCellModifier implements ICellModifier {
-		
-		private TableViewer viewer;
-		
-		private boolean enabled = true;
-
-		public void setViewer(TableViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public boolean canModify(Object element, String property) {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
-		 *      java.lang.String)
-		 */
-		public Object getValue(Object element, String property) {
-			if( element instanceof MyModel3 ) {
-				return new Boolean(((MyModel3)element).checked);
-			} else if( element instanceof MyModel2 ) {
-				return new Integer(((MyModel) element).counter);
-			} else {
-				return ((MyModel) element).counter + "";
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
-		 *      java.lang.String, java.lang.Object)
-		 */
-		public void modify(Object element, String property, Object value) {
-			TableItem item = (TableItem) element;
-			
-			if( item.getData() instanceof MyModel3 ) {
-				((MyModel3) item.getData()).checked=((Boolean)value).booleanValue();
-			} else {
-				((MyModel) item.getData()).counter = Integer.parseInt(value
-						.toString());
-			}
-			
-			viewer.update(item.getData(), null);
-		}
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyModel2 extends MyModel {
-
-		public MyModel2(int counter) {
-			super(counter);
-		}
-
-		public String toString() {
-			return "Special Item " + this.counter;
-		}
-	}
-	
-	public class MyModel3 extends MyModel {
-		public boolean checked;
-		
-		public MyModel3(int counter) {
-			super(counter);
-		}
-
-		public String toString() {
-			return "Special Item " + this.counter;
-		}
-	}
-	
-	
-	public class DelegatingEditor extends CellEditor {
-		
-		private StructuredViewer viewer;
-		
-		private CellEditor delegatingTextEditor;
-		
-		private CellEditor delegatingDropDownEditor;
-		
-		private CellEditor activeEditor;
-		
-		private CellEditor delegatingCheckBoxEditor;
-		
-		private class DelegatingListener implements ICellEditorListener {
-
-			public void applyEditorValue() {
-				fireApplyEditorValue();
-			}
-
-			public void cancelEditor() {
-				fireCancelEditor();
-			}
-
-			public void editorValueChanged(boolean oldValidState,
-					boolean newValidState) {
-				fireEditorValueChanged(oldValidState, newValidState);
-			}
-			
-		}
-		
-		public DelegatingEditor(StructuredViewer viewer, Composite parent) {
-			super(parent);
-			this.viewer = viewer;
-			DelegatingListener l = new DelegatingListener();
-			this.delegatingTextEditor = new TextCellEditor(parent);
-			this.delegatingTextEditor.addListener(l);
-			
-			String[] elements = new String[10];
-			
-			for (int i = 0; i < 10; i++) {
-				elements[i] = i+"";
-			}
-			
-			this.delegatingDropDownEditor = new ComboBoxCellEditor(parent,elements);
-			this.delegatingDropDownEditor.addListener(l);
-			
-			this.delegatingCheckBoxEditor = new CheckboxCellEditor(parent);
-			this.delegatingCheckBoxEditor.addListener(l);
-		}
-		
-		protected Control createControl(Composite parent) {
-			return null;
-		}
-
-		protected Object doGetValue() {
-			return activeEditor.getValue();
-		}
-
-		protected void doSetFocus() {
-			activeEditor.setFocus();
-		}
-
-		public void activate() {
-			if( activeEditor != null ) {
-				activeEditor.activate();
-			}
-		}
-
-		protected void doSetValue(Object value) {
-			
-			if( ((IStructuredSelection)this.viewer.getSelection()).getFirstElement() instanceof MyModel3 ) {
-				activeEditor = delegatingCheckBoxEditor;
-			} else if( ((IStructuredSelection)this.viewer.getSelection()).getFirstElement() instanceof MyModel2 ) {
-				activeEditor = delegatingDropDownEditor;
-			} else {
-				activeEditor = delegatingTextEditor;
-			}
-			
-			activeEditor.setValue(value);
-		}
-		
-		public void deactivate() {
-			if( activeEditor != null ) {
-				Control control = activeEditor.getControl();
-				if (control != null && !control.isDisposed()) {
-					control.setVisible(false);
-				}
-			}
-		}
-		
-		public void dispose() {
-			
-		}
-		
-		public Control getControl() {
-			return activeEditor.getControl();
-		}
-	}
-	
-	public Snippet033CellEditorPerRowPre33(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		final MyCellModifier modifier = new MyCellModifier();
-		
-		final TableViewer v = new TableViewer(table);
-		modifier.setViewer(v);
-		
-		TableColumn column = new TableColumn(table, SWT.NONE);
-		column.setWidth(200);
-
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setCellModifier(modifier);
-		v.setColumnProperties(new String[] { "column1" });
-		v.setCellEditors(new CellEditor[] { new DelegatingEditor(v,v.getTable()) });
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-	}
-
-	private class MyLabelProvider extends LabelProvider {
-		public Image getImage(Object element) {
-			if( element instanceof MyModel3 ) {
-				if( ((MyModel3)element).checked ) {
-					return JFaceResources.getImage("IMG_1");
-				} else {
-					return JFaceResources.getImage("IMG_2");
-				}
-				
-			}
-			return super.getImage(element);
-		}
-		
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[30];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel3(i);
-		}
-		
-		for (int i = 0; i < 10; i++) {
-			elements[i+10] = new MyModel(i);
-		}
-
-		for (int i = 0; i < 10; i++) {
-			elements[i+20] = new MyModel2(i);
-		}
-		
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		JFaceResources.getImageRegistry().put("IMG_1", ImageDescriptor.createFromURL(Snippet033CellEditorPerRowPre33.class.getClassLoader().getResource("org/eclipse/jface/snippets/dialogs/cancel.png")));
-		JFaceResources.getImageRegistry().put("IMG_2", ImageDescriptor.createFromURL(Snippet033CellEditorPerRowPre33.class.getClassLoader().getResource("org/eclipse/jface/snippets/dialogs/filesave.png")));
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet033CellEditorPerRowPre33(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java
deleted file mode 100644
index 4dfacf2..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet034CellEditorPerRowNewAPI.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl<tom.schindl@bestsolution.at> - initial API and implementation
- *     Wayne Beaton - bug 185540
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * Snippet to present editor different CellEditors within one column in 3.2
- * for 3.3 and above please use the new EditingSupport class
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet034CellEditorPerRowNewAPI {
-	private class MyEditingSupport extends EditingSupport {
-		private CellEditor textEditor;
-		
-		private CellEditor dropDownEditor;
-		
-		public MyEditingSupport(TableViewer viewer) {
-			super(viewer);
-			textEditor = new TextCellEditor(viewer.getTable());
-			
-			String[] elements = new String[10];
-			
-			for (int i = 0; i < 10; i++) {
-				elements[i] = i+"";
-			}
-			
-			dropDownEditor = new ComboBoxCellEditor(viewer.getTable(),elements);
-		}
-
-		protected boolean canEdit(Object element) {
-			return ((MyModel) element).counter % 2 == 0;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			if( element instanceof MyModel2 ) {
-				return dropDownEditor;
-			} else {
-				return textEditor;
-			}
-		}
-
-		protected Object getValue(Object element) {
-			if( element instanceof MyModel2 ) {
-				return new Integer(((MyModel) element).counter);
-			} else {
-				return ((MyModel) element).counter + "";
-			}
-		}
-
-		protected void setValue(Object element, Object value) {
-			((MyModel)element).counter = Integer.parseInt(value.toString());
-			getViewer().update(element, null);
-		}
-		
-	}
-	
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyModel2 extends MyModel {
-
-		public MyModel2(int counter) {
-			super(counter);
-		}
-
-		public String toString() {
-			return "Special Item " + this.counter;
-		}
-	}
-	
-	public Snippet034CellEditorPerRowNewAPI(Shell shell) {
-		final Table table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		
-		final TableViewer v = new TableViewer(table);
-		v.getTable().setLinesVisible(true);
-		
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return element.toString();
-			}
-			
-		});
-		
-		column.setEditingSupport(new MyEditingSupport(v));
-		
-		v.setContentProvider(new MyContentProvider());
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[20];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		for (int i = 0; i < 10; i++) {
-			elements[i+10] = new MyModel2(i);
-		}
-		
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet034CellEditorPerRowNewAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java
deleted file mode 100644
index aa7d430..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet035TableCursorCellHighlighter.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example usage of none mandatory interfaces of ITableFontProvider and
- * ITableColorProvider
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet035TableCursorCellHighlighter {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-	
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet035TableCursorCellHighlighter(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER|SWT.HIDE_SELECTION|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-				
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] {"1","2"});
-		
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,new CursorCellHighlighter(v,new TableCursor(v)));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TableViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet035TableCursorCellHighlighter(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java
deleted file mode 100644
index 6d0e5fa..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet036FocusBorderCellHighlighter.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example of a different focus cell rendering with a simply focus border
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet036FocusBorderCellHighlighter {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-	
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			return null;
-		}
-
-	}
-
-	public Snippet036FocusBorderCellHighlighter(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()), new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-				
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] {"1","2","3"});
-		
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,new FocusBorderCellHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TableViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setMoveable(true);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setMoveable(true);
-		column.setText("Column 2");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setMoveable(true);
-		column.setText("Column 3");
-
-		
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet036FocusBorderCellHighlighter(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java
deleted file mode 100644
index d47bb2b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet037FancyCustomTooltips.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     IBM - Improvement for Bug 159625 [Snippets] Update Snippet011CustomTooltips to reflect new API
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Explore New API: JFace custom tooltips drawing.
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 3.3
- */
-public class Snippet037FancyCustomTooltips {
-	private static class MyContentProvider implements
-			IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return new String[] { "one", "two", "three", "four", "five", "six",
-					"seven", "eight", "nine", "ten" };
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-	}
-
-	private static class FancyToolTipSupport extends ColumnViewerToolTipSupport {
-
-		protected FancyToolTipSupport(ColumnViewer viewer, int style,
-				boolean manualActivation) {
-			super(viewer, style, manualActivation);
-		}
-		
-		
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			Composite comp = new Composite(parent,SWT.NONE);
-			GridLayout l = new GridLayout(1,false);
-			l.horizontalSpacing=0;
-			l.marginWidth=0;
-			l.marginHeight=0;
-			l.verticalSpacing=0;
-			
-			comp.setLayout(l);
-			Browser browser = new Browser(comp,SWT.BORDER);
-			browser.setText(getText(event));
-			browser.setLayoutData(new GridData(200,150));
-			
-			
-			return comp;
-		}
-
-		public boolean isHideOnMouseDown() {
-			return false;
-		}
-
-
-		public static final void enableFor(ColumnViewer viewer, int style) {
-			new FancyToolTipSupport(viewer,style,false);
-		}
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		final Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		TableViewer v = new TableViewer(shell, SWT.FULL_SELECTION);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		v.setContentProvider(new MyContentProvider());
-		FancyToolTipSupport.enableFor(v,ToolTip.NO_RECREATE);
-		
-		CellLabelProvider labelProvider = new CellLabelProvider() {
-
-			public String getToolTipText(Object element) {
-				return "<html><body>Tooltip (" + element + ")<br /><a href='http://www.bestsolution.at' target='_NEW'>www.bestsolution.at</a></body></html>";
-			}
-
-			public Point getToolTipShift(Object object) {
-				return new Point(5, 5);
-			}
-
-			public int getToolTipDisplayDelayTime(Object object) {
-				return 2000;
-			}
-
-			public int getToolTipTimeDisplayed(Object object) {
-				return 5000;
-			}
-
-			public void update(ViewerCell cell) {
-				cell.setText(cell.getElement().toString());
-			}
-		};
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.setLabelProvider(labelProvider);
-		column.getColumn().setText("Column 1");
-		column.getColumn().setWidth(100);
-
-		v.setInput("");
-
-		shell.setSize(200, 200);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-		display.dispose();
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java
deleted file mode 100644
index c61c310..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet038TreeViewerInlinelEditingOldAPI.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * A simple TreeViewer to demonstrate usage of inline editing
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet038TreeViewerInlinelEditingOldAPI {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.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) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-	}
-
-	public Snippet038TreeViewerInlinelEditingOldAPI(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell,SWT.FULL_SELECTION);
-		
-		TreeColumn column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-		
-		column = new TreeColumn(v.getTree(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-		
-		v.setCellEditors(new CellEditor[]{new TextCellEditor(v.getTree()), new TextCellEditor(v.getTree())});
-		v.setColumnProperties(new String[]{"col1","col2"});
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter+"";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				((MyModel)((TreeItem)element).getData()).counter = Integer.parseInt(value.toString());
-				v.update(((TreeItem)element).getData(), null);
-			}
-			
-		});
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet038TreeViewerInlinelEditingOldAPI(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java
deleted file mode 100644
index 463ad2c..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet039ListViewer.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrate a simple ListViewer
- */
-public class Snippet039ListViewer {
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])inputElement;
-		}
-
-		public void dispose() {
-			
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			
-		}
-		
-	}
-	
-	public class MyModel {
-		public int counter;
-		
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-		
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-	
-	public Snippet039ListViewer(Shell shell) {
-		final ListViewer v = new ListViewer(shell,SWT.H_SCROLL|SWT.V_SCROLL);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		MyModel[] model = createModel();
-		v.setInput(model);	
-	}
-	
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-		
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-		
-		return elements;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet039ListViewer(shell);
-		shell.open ();
-		
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-		
-		display.dispose ();
-
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java
deleted file mode 100644
index 6b271ac..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet040TableViewerSorting.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example usage of ViewerComparator in tables to allow sorting
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet040TableViewerSorting {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-		private TextCellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			this.editor = new TextCellEditor(viewer.getTable());
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			doSetValue(element, value);
-			getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-	}
-
-	public Snippet040TableViewerSorting(Shell shell) {
-		TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-		
-		ColumnViewerSorter cSorter = new ColumnViewerSorter(v,column) {
-
-			protected int doCompare(Viewer viewer, Object e1, Object e2) {
-				Person p1 = (Person) e1;
-				Person p2 = (Person) e2;
-				return p1.givenname.compareToIgnoreCase(p2.givenname);
-			}
-			
-		};
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-		
-		new ColumnViewerSorter(v,column) {
-
-			protected int doCompare(Viewer viewer, Object e1, Object e2) {
-				Person p1 = (Person) e1;
-				Person p2 = (Person) e2;
-				return p1.surname.compareToIgnoreCase(p2.surname);
-			}
-			
-		};
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).email;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-		
-		new ColumnViewerSorter(v,column) {
-
-			protected int doCompare(Viewer viewer, Object e1, Object e2) {
-				Person p1 = (Person) e1;
-				Person p2 = (Person) e2;
-				return p1.email.compareToIgnoreCase(p2.email);
-			}
-			
-		};
-
-		Person[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		cSorter.setSorter(cSorter, ColumnViewerSorter.ASC);
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org");
-
-		return elements;
-	}
-
-	private static abstract class ColumnViewerSorter extends ViewerComparator {
-		public static final int ASC = 1;
-		
-		public static final int NONE = 0;
-		
-		public static final int DESC = -1;
-		
-		private int direction = 0;
-		
-		private TableViewerColumn column;
-		
-		private ColumnViewer viewer;
-		
-		public ColumnViewerSorter(ColumnViewer viewer, TableViewerColumn column) {
-			this.column = column;
-			this.viewer = viewer;
-			this.column.getColumn().addSelectionListener(new SelectionAdapter() {
-
-				public void widgetSelected(SelectionEvent e) {
-					if( ColumnViewerSorter.this.viewer.getComparator() != null ) {
-						if( ColumnViewerSorter.this.viewer.getComparator() == ColumnViewerSorter.this ) {
-							int tdirection = ColumnViewerSorter.this.direction;
-							
-							if( tdirection == ASC ) {
-								setSorter(ColumnViewerSorter.this, DESC);
-							} else if( tdirection == DESC ) {
-								setSorter(ColumnViewerSorter.this, NONE);
-							}
-						} else {
-							setSorter(ColumnViewerSorter.this, ASC);
-						}
-					} else {
-						setSorter(ColumnViewerSorter.this, ASC);
-					}
-				}
-			});
-		}
-		
-		public void setSorter(ColumnViewerSorter sorter, int direction) {
-			if( direction == NONE ) {
-				column.getColumn().getParent().setSortColumn(null);
-				column.getColumn().getParent().setSortDirection(SWT.NONE);
-				viewer.setComparator(null);
-			} else {
-				column.getColumn().getParent().setSortColumn(column.getColumn());
-				sorter.direction = direction;
-				
-				if( direction == ASC ) {
-					column.getColumn().getParent().setSortDirection(SWT.DOWN);
-				} else {
-					column.getColumn().getParent().setSortDirection(SWT.UP);
-				}
-				
-				if( viewer.getComparator() == sorter ) {
-					viewer.refresh();
-				} else {
-					viewer.setComparator(sorter);
-				}
-				
-			}
-		}
-
-		public int compare(Viewer viewer, Object e1, Object e2) {
-			return direction * doCompare(viewer, e1, e2);
-		}
-		
-		protected abstract int doCompare(Viewer viewer, Object e1, Object e2);
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet040TableViewerSorting(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java
deleted file mode 100644
index a6337e4..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet041TableViewerAlternatingColors.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerFilter;
-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.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Demonstrate alternating row colors using new Jace 3.3 API 
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet041TableViewerAlternatingColors {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-		
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	private class OptimizedIndexSearcher {
-		private int lastIndex = 0;
-		
-		public boolean isEven(TableItem item) {
-			TableItem[] items = item.getParent().getItems();
-			
-			// 1. Search the next ten items
-			for( int i = lastIndex; i < items.length && lastIndex + 10 > i; i++ ) {
-				if( items[i] == item ) {
-					lastIndex = i;
-					return lastIndex % 2 == 0;
-				}
-			}
-			
-			// 2. Search the previous ten items
-			for( int i = lastIndex; i < items.length && lastIndex - 10 > i; i-- ) {
-				if( items[i] == item ) {
-					lastIndex = i;
-					return lastIndex % 2 == 0;
-				}
-			}
-			
-			// 3. Start from the beginning
-			for( int i = 0; i < items.length; i++ ) {
-				if( items[i] == item ) {
-					lastIndex = i;
-					return lastIndex % 2 == 0;
-				}
-			}
-		
-			return false;
-		}
-	}
-	
-	public Snippet041TableViewerAlternatingColors(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION|SWT.VIRTUAL);
-		v.setContentProvider(new MyContentProvider());
-
-		final OptimizedIndexSearcher searcher = new OptimizedIndexSearcher();
-		
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-			boolean even = true;
-			
-			public Color getBackground(Object element) {
-				if( even ) {
-					return null;
-				} else {
-					return v.getTable().getDisplay().getSystemColor(SWT.COLOR_GRAY);
-				}
-			}
-			
-			public void update(ViewerCell cell) {
-				even = searcher.isEven((TableItem)cell.getItem());
-				super.update(cell);
-			}
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-			boolean even = true;
-
-			public Color getBackground(Object element) {
-				if( even ) {
-					return null;
-				} else {
-					return v.getTable().getDisplay().getSystemColor(SWT.COLOR_GRAY);
-				}
-			}
-			
-			public void update(ViewerCell cell) {
-				even = searcher.isEven((TableItem)cell.getItem());
-				super.update(cell);
-			}
-			
-		});
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-		
-		final ViewerFilter filter = new ViewerFilter() {
-
-			public boolean select(Viewer viewer, Object parentElement,
-					Object element) {
-				return ((MyModel)element).counter % 2 == 0;
-			}
-			
-		};
-		
-		Button b = new Button(shell,SWT.PUSH);
-		b.addSelectionListener(new SelectionAdapter() {
-			boolean b = true;
-			
-			public void widgetSelected(SelectionEvent e) {
-				if( b ) {
-					v.setFilters(new ViewerFilter[] {filter});
-					b = false;
-				} else {
-					v.setFilters(new ViewerFilter[0]);
-					b = true;
-				}
-			}
-			
-		});
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[100000];
-
-		for (int i = 0; i < 100000; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet041TableViewerAlternatingColors(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java
deleted file mode 100644
index 6e84840..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet042ToolTipSupportFor32API.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
-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.jface.window.DefaultToolTip;
-import org.eclipse.jface.window.ToolTip;
-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.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Example usage of ToolTips with the OLD viewer API but similar to
- * {@link ColumnViewerToolTipSupport}
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet042ToolTipSupportFor32API {
-	private static Image[] images;
-
-	private static class Cell {
-		private Item item;
-		private int index;
-
-		public Cell(Item item, int index) {
-			this.item = item;
-			this.index = index;
-		}
-
-		public Object getData() {
-			return item.getData();
-		}
-
-		public int hashCode() {
-			final int prime = 31;
-			int result = 1;
-			result = prime * result + index;
-			result = prime * result + ((item == null) ? 0 : item.hashCode());
-			return result;
-		}
-
-		public boolean equals(Object obj) {
-			if (this == obj)
-				return true;
-			if (obj == null)
-				return false;
-			if (getClass() != obj.getClass())
-				return false;
-			final Cell other = (Cell) obj;
-			if (index != other.index)
-				return false;
-			if (item == null) {
-				if (other.item != null)
-					return false;
-			} else if (!item.equals(other.item))
-				return false;
-			return true;
-		}
-
-	}
-
-	private static class ToolTipSupport extends DefaultToolTip {
-		private Cell cell;
-		private ColumnViewer viewer;
-
-		protected ToolTipSupport(ColumnViewer viewer, int style,
-				boolean manualActivation) {
-			super(viewer.getControl(), style, manualActivation);
-			this.viewer = viewer;
-		}
-
-		protected Object getToolTipArea(Event event) {
-			Table table = (Table) event.widget;
-			int columns = table.getColumnCount();
-			Point point = new Point(event.x, event.y);
-			TableItem item = table.getItem(point);
-
-			if (item != null) {
-				for (int i = 0; i < columns; i++) {
-					if (item.getBounds(i).contains(point)) {
-						this.cell = new Cell(item, i);
-						return cell;
-					}
-				}
-			}
-
-			return null;
-		}
-
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			Composite comp = new Composite(parent, SWT.NONE);
-			comp.setLayout(new FillLayout());
-			Button b = new Button(comp, SWT.PUSH);
-			b.setText(((ITableLabelProvider) viewer.getLabelProvider())
-					.getColumnText(cell.getData(), cell.index));
-			b.setImage(((ITableLabelProvider) viewer.getLabelProvider())
-					.getColumnImage(cell.getData(), cell.index));
-
-			return comp;
-		}
-
-		public static void enableFor(ColumnViewer viewer) {
-			new ToolTipSupport(viewer, ToolTip.NO_RECREATE, false);
-		}
-	}
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if (columnIndex == 1) {
-				return images[((MyModel) element).counter % 4];
-			}
-
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-	}
-
-	private static Image createImage(Display display, int red, int green,
-			int blue) {
-		Color color = new Color(display, red, green, blue);
-		Image image = new Image(display, 10, 10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet042ToolTipSupportFor32API(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		ToolTipSupport.enableFor(v);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		images = new Image[4];
-		images[0] = createImage(display, 0, 0, 255);
-		images[1] = createImage(display, 0, 255, 255);
-		images[2] = createImage(display, 0, 255, 0);
-		images[3] = createImage(display, 255, 0, 255);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet042ToolTipSupportFor32API(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		for (int i = 0; i < images.length; i++) {
-			images[i].dispose();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java
deleted file mode 100644
index eece057b..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet043NoColumnTreeViewerKeyboardEditing.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrates how to use keyboard-editing support in a TreeViewer with no column
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet043NoColumnTreeViewerKeyboardEditing {
-	public Snippet043NoColumnTreeViewerKeyboardEditing(final Shell shell) {
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("BBB");
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		b.addSelectionListener(new SelectionListener() {
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				MyModel root = (MyModel) v.getInput();
-				TreePath path = new TreePath(new Object[] { root,
-						root.child.get(1),
-						((MyModel) root.child.get(1)).child.get(0) });
-				v.editElement(path, 0);
-			}
-
-		});
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTree()) });
-		v.setColumnProperties(new String[] { "col1" });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return ((MyModel) element).counter + "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				element = ((Item) element).getData();
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-
-		});
-
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(
-				v, new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TreeViewerEditor.create(v, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet043NoColumnTreeViewerKeyboardEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java
deleted file mode 100644
index 787aec0..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet044NoColumnTableViewerKeyboardEditing.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrates how to use keyboard-editing support in a TableViewer with no column
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet044NoColumnTableViewerKeyboardEditing {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-	
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			return null;
-		}
-
-	}
-
-	public Snippet044NoColumnTableViewerKeyboardEditing(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-				
-			}
-			
-		});
-		
-		v.setColumnProperties(new String[] {"1"});
-		
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,new FocusBorderCellHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TableViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet044NoColumnTableViewerKeyboardEditing(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java
deleted file mode 100644
index 76073f0..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet045TableViewerFillFromBackgroundThread.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-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.jface.viewers.ViewerComparator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example how to fill a {@link TableViewer} from the background without
- * blocking the UI
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet045TableViewerFillFromBackgroundThread {
-	private static int COUNTER = 0;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((List) inputElement).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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider, ITableFontProvider, ITableColorProvider {
-		FontRegistry registry = new FontRegistry();
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-		public Font getFont(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return registry.getBold(Display.getCurrent().getSystemFont()
-						.getFontData()[0].getName());
-			}
-			return null;
-		}
-
-		public Color getBackground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 0) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-		public Color getForeground(Object element, int columnIndex) {
-			if (((MyModel) element).counter % 2 == 1) {
-				return Display.getCurrent().getSystemColor(SWT.COLOR_RED);
-			}
-			return null;
-		}
-
-	}
-
-	public Snippet045TableViewerFillFromBackgroundThread(final Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		final ArrayList model = new ArrayList();
-		v.setInput(model);
-		v.setComparator(new ViewerComparator() {
-			public int compare(Viewer viewer, Object e1, Object e2) {
-				MyModel m1 = (MyModel) e1;
-				MyModel m2 = (MyModel) e2;
-				return m2.counter - m1.counter;
-			}
-
-		});
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		TimerTask task = new TimerTask() {
-
-			public void run() {
-				shell.getDisplay().syncExec(new Runnable() {
-
-					public void run() {
-						MyModel el = new MyModel(++COUNTER);
-						v.add(el);
-						model.add(el);
-					}
-				});
-			}
-		};
-
-		Timer timer = new Timer(true);
-		timer.scheduleAtFixedRate(task, 1000, 1000);
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet045TableViewerFillFromBackgroundThread(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java
deleted file mode 100644
index b7b32d3..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet046UpdateViewerFromBackgroundThread.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-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.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example how to update a viewer from a long running task
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet046UpdateViewerFromBackgroundThread {
-	private static Image[] images;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[])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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-		public boolean finished;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if( columnIndex == 0 ) {
-				return images[((MyModel)element).finished?0:1];
-			}
-
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-	}
-
-	private static Image createImage(Display display, int red, int green, int blue) {
-		Color color = new Color(display,red,green,blue);
-		Image image = new Image(display,10,10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet046UpdateViewerFromBackgroundThread(Shell shell) {
-		final TableViewer v = new TableViewer(shell,SWT.BORDER|SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(),SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		final MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		Button b = new Button(shell,SWT.PUSH);
-		b.setText("Start Long Task");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				final Thread t = new Thread() {
-
-					public void run() {
-						for( int i = 0; i < model.length; i++ ) {
-							if( v.getTable().isDisposed()) {
-								return;
-							}
-							final int j = i;
-							v.getTable().getDisplay().asyncExec(new Runnable() {
-
-								public void run() {
-									model[j].finished = true;
-									v.update(model[j], null);
-								}
-
-							});
-							try {
-								Thread.sleep(1000);
-							} catch (InterruptedException e) {
-								e.printStackTrace();
-							}
-						}
-					}
-				};
-				t.start();
-			}
-		});
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for( int i = 0; i < 10; i++ ) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display ();
-
-		images = new Image[2];
-		images[0] = createImage(display,0,255,0);
-		images[1] = createImage(display,255,0,0);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet046UpdateViewerFromBackgroundThread(shell);
-		shell.open ();
-
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-
-		for( int i = 0; i < images.length; i++ ) {
-			images[i].dispose();
-		}
-
-		display.dispose ();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java
deleted file mode 100644
index 0dcc4ef..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet047VirtualLazyTreeViewer.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ILazyTreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage of an ILazyContentProvider.
- * 
- */
-public class Snippet047VirtualLazyTreeViewer {
-	private class MyContentProvider implements ILazyTreeContentProvider {
-		private TreeViewer viewer;
-		private IntermediateNode[] elements;
-
-		public MyContentProvider(TreeViewer viewer) {
-			this.viewer = viewer;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			this.elements = (IntermediateNode[]) newInput;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element instanceof LeafNode)
-				return ((LeafNode) element).parent;
-			return elements;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#updateChildCount(java.lang.Object,
-		 *      int)
-		 */
-		public void updateChildCount(Object element, int currentChildCount) {
-			
-			int length = 0;
-			if (element instanceof IntermediateNode) {
-				IntermediateNode node = (IntermediateNode) element;
-				length =  node.children.length;
-			} 
-			if(element == elements)
-				length = elements.length;
-			viewer.setChildCount(element, length);
-			
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#updateElement(java.lang.Object,
-		 *      int)
-		 */
-		public void updateElement(Object parent, int index) {
-			
-			Object element;
-			if (parent instanceof IntermediateNode) 
-				element = ((IntermediateNode) parent).children[index];
-			
-			else
-				element =  elements[index];
-			viewer.replace(parent, index, element);
-			updateChildCount(element, -1);
-			
-		}
-
-	}
-
-	public class LeafNode {
-		public int counter;
-		public IntermediateNode parent;
-
-		public LeafNode(int counter, IntermediateNode parent) {
-			this.counter = counter;
-			this.parent = parent;
-		}
-
-		public String toString() {
-			return "Leaf " + this.counter;
-		}
-	}
-
-	public class IntermediateNode {
-		public int counter;
-		public LeafNode[] children = new LeafNode[0];
-
-		public IntermediateNode(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Node " + this.counter;
-		}
-
-		public void generateChildren(int i) {
-			children = new LeafNode[i];
-			for (int j = 0; j < i; j++) {
-				children[j] = new LeafNode(j, this);
-			}
-
-		}
-	}
-
-	public Snippet047VirtualLazyTreeViewer(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.VIRTUAL | SWT.BORDER);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider(v));
-		v.setUseHashlookup(true);
-		IntermediateNode[] model = createModel();
-		v.setInput(model);
-		v.getTree().setItemCount(model.length);
-
-	}
-
-	private IntermediateNode[] createModel() {
-		IntermediateNode[] elements = new IntermediateNode[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new IntermediateNode(i);
-			elements[i].generateChildren(1000);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet047VirtualLazyTreeViewer(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java
deleted file mode 100644
index f8a13e1..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet048TreeViewerTabWithCheckboxFor3_3.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CheckboxCellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerRow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Demonstrate how to work-around 3.3.1 limitation when it comes to TAB-Traversal and
- * checkbox editors. 3.4 will hopefully provide provide an out-of-the-box fix see bug 198502
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet048TreeViewerTabWithCheckboxFor3_3 {
-	public Snippet048TreeViewerTabWithCheckboxFor3_3(final Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-
-		final TreeViewerFocusCellManager mgr = new TreeViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && ( event.keyCode == SWT.CR || event.character == ' ' ))
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TreeViewerEditor.create(v, mgr, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-		final CheckboxCellEditor checkboxCellEditor = new CheckboxCellEditor(v.getTree());
-
-		TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return false;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 2 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-				.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((MyModel)element).bool + "";
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return checkboxCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return new Boolean(((MyModel) element).bool);
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).bool = ((Boolean)value).booleanValue();
-				v.update(element, null);
-			}
-		});
-
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-		v.getControl().addTraverseListener(new TraverseListener() {
-
-			public void keyTraversed(TraverseEvent e) {
-				if( (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) && mgr.getFocusCell().getColumnIndex() == 2 ) {
-					ColumnViewerEditor editor = v.getColumnViewerEditor();
-					ViewerCell cell = mgr.getFocusCell();
-
-					try {
-						Method m = ColumnViewerEditor.class.getDeclaredMethod("processTraverseEvent", new Class[] {int.class,ViewerRow.class,TraverseEvent.class});
-						m.setAccessible(true);
-						m.invoke(editor, new Object[] { new Integer(cell.getColumnIndex()), cell.getViewerRow(), e });
-					} catch (SecurityException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (NoSuchMethodException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (IllegalArgumentException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (IllegalAccessException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					} catch (InvocationTargetException e1) {
-						// TODO Auto-generated catch block
-						e1.printStackTrace();
-					}
-				}
-			}
-
-		});
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet048TreeViewerTabWithCheckboxFor3_3(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public boolean bool;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java
deleted file mode 100644
index 5c76c9f..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet049StyledCellLabelProvider.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Krkoska - initial API and implementation (bug 188333)
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import java.io.File;
-import java.text.MessageFormat;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StyledCellLabelProvider;
-import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.StyledString.Styler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.TextStyle;
-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.Shell;
-
-/**
- * Using a {@link StyledCellLabelProvider} on table viewer.
- */
-
-public class Snippet049StyledCellLabelProvider {
-	
-	
-	private static final int SHELL_WIDTH= 400;
-	private static final Display DISPLAY= Display.getDefault();
-
-
-	public static void main(String[] args) {
-
-		JFaceResources.getColorRegistry().put(JFacePreferences.COUNTER_COLOR, new RGB(0,127,174));
-		
-		Shell shell= new Shell(DISPLAY, SWT.CLOSE | SWT.RESIZE);
-		shell.setSize(SHELL_WIDTH, 400);
-		shell.setLayout(new GridLayout(1, false));
-
-		Snippet049StyledCellLabelProvider example= new Snippet049StyledCellLabelProvider();
-		Control composite= example.createPartControl(shell);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-		
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!DISPLAY.readAndDispatch()) {
-				DISPLAY.sleep();
-			}
-		}
-		DISPLAY.dispose();
-	}
-
-	public Snippet049StyledCellLabelProvider() {
-	}
-
-	public Composite createPartControl(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NONE);
-
-		composite.setLayout(new GridLayout(1, true));
-
-		Label label= new Label(composite, SWT.NONE);
-		label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
-		label.setText("Viewer with a StyledCellLabelProvider:"); //$NON-NLS-1$
-		
-		final TableViewer tableViewer= new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-
-		// Multi-font support only works in JFace 3.5 and above (specifically, 3.5 M4 and above).
-		// With JFace 3.4, the font information (bold in this example) will be ignored.
-		FontData[] boldFontData= getModifiedFontData(tableViewer.getTable().getFont().getFontData(), SWT.BOLD);
-
-		Font boldFont = new Font(Display.getCurrent(), boldFontData);
-		ExampleLabelProvider labelProvider= new ExampleLabelProvider(boldFont);
-		FileSystemContentProvider contentProvider= new FileSystemContentProvider();
-		
-		tableViewer.setContentProvider(contentProvider);
-		tableViewer.setLabelProvider(labelProvider);
-
-		GridData data= new GridData(GridData.FILL, GridData.FILL, true, true);
-		tableViewer.getControl().setLayoutData(data);
-		tableViewer.setInput(new Object());
-
-		return composite;
-	}
-	
-	private static FontData[] getModifiedFontData(FontData[] originalData, int additionalStyle) {
-		FontData[] styleData = new FontData[originalData.length];
-		for (int i = 0; i < styleData.length; i++) {
-			FontData base = originalData[i];
-			styleData[i] = new FontData(base.getName(), base.getHeight(), base.getStyle() | additionalStyle);
-		}
-       	return styleData;
-    }
-	
-	private static class ExampleLabelProvider extends StyledCellLabelProvider {
-
-		private static int IMAGE_SIZE= 16;
-		private static final Image IMAGE1= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_WARNING).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-		private static final Image IMAGE2= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_ERROR).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-
-		private final Styler fBoldStyler; 
-		
-		public ExampleLabelProvider(final Font boldFont) {
-			fBoldStyler= new Styler() {
-				public void applyStyles(TextStyle textStyle) {
-					textStyle.font= boldFont;
-				}
-			};
-		}
-		
-		public void update(ViewerCell cell) {
-			Object element= cell.getElement();
-			
-			if (element instanceof File) {
-				File file= (File) element;
-				
-				// Multi-font support only works in JFace 3.5 and above (specifically, 3.5 M4 and above).
-				// With JFace 3.4, the font information (bold in this example) will be ignored.
-				Styler style= file.isDirectory() ? fBoldStyler: null;
-				StyledString styledString= new StyledString(file.getName(), style);
-				String decoration = MessageFormat.format(" ({0} bytes)", new Object[] { new Long(file.length()) }); //$NON-NLS-1$
-				styledString.append(decoration, StyledString.COUNTER_STYLER);
-				
-				cell.setText(styledString.toString());
-				cell.setStyleRanges(styledString.getStyleRanges());
-				
-				if (file.isDirectory()) {
-					cell.setImage(IMAGE1);
-				} else {
-					cell.setImage(IMAGE2);
-				}
-			} else {
-				cell.setText("Unknown element"); //$NON-NLS-1$
-			}
-
-			super.update(cell);
-		}
-		
-		protected void measure(Event event, Object element) {
-			super.measure(event, element);
-		}
-	}
-
-	private static class FileSystemContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object element) {
-			File[] roots = File.listRoots();
-			for (int i = 0; i < roots.length; i++) {
-				File[] list = roots[i].listFiles();
-				if (list != null && list.length > 0) {
-					return list;
-				}
-			}
-			return roots;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java
deleted file mode 100644
index bd5f4b5..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet050DelegatingStyledCellLabelProvider.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Krkoska - initial API and implementation (bug 188333)
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import java.io.File;
-import java.text.DateFormat;
-import java.text.MessageFormat;
-import java.util.Date;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-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.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-
-/**
- * Using a {@link DelegatingStyledCellLabelProvider} on tree viewer with multiple columns. Compare the result with a native tree viewer.
- */
-public class Snippet050DelegatingStyledCellLabelProvider {
-	
-	
-	private static final int SHELL_WIDTH= 640;
-	private static final Display DISPLAY= Display.getDefault();
-
-
-	public static void main(String[] args) {
-		
-		JFaceResources.getColorRegistry().put(JFacePreferences.COUNTER_COLOR, new RGB(0,127,174));
-		
-		
-
-		Shell shell= new Shell(DISPLAY, SWT.CLOSE | SWT.RESIZE);
-		shell.setSize(SHELL_WIDTH, 300);
-		shell.setLayout(new GridLayout(1, false));
-
-		Snippet050DelegatingStyledCellLabelProvider example= new Snippet050DelegatingStyledCellLabelProvider();
-		example.createPartControl(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!DISPLAY.readAndDispatch()) {
-				DISPLAY.sleep();
-			}
-		}
-		DISPLAY.dispose();
-	}
-
-	public Snippet050DelegatingStyledCellLabelProvider() {
-	}
-
-	public void createPartControl(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NONE);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		composite.setLayout(new GridLayout(2, true));
-		
-		final DelegatingStyledCellLabelProvider styledCellLP1= new DelegatingStyledCellLabelProvider(new NameAndSizeLabelProvider());
-		final DelegatingStyledCellLabelProvider styledCellLP2= new DelegatingStyledCellLabelProvider(new ModifiedDateLabelProvider());
-		final ColumnViewer ownerDrawViewer= createViewer("Owner draw viewer:", composite, styledCellLP1, styledCellLP2); //$NON-NLS-1$
-
-		CellLabelProvider normalLP1= new NameAndSizeLabelProvider();
-		CellLabelProvider normalLP2= new ModifiedDateLabelProvider();
-		final ColumnViewer normalViewer= createViewer("Normal viewer:", composite, normalLP1, normalLP2); //$NON-NLS-1$
-
-		Composite buttons= new Composite(parent, SWT.NONE);
-		buttons.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-		buttons.setLayout(new GridLayout(3, false));
-		
-		
-		Button button1= new Button(buttons, SWT.PUSH);
-		button1.setText("Refresh Viewers"); //$NON-NLS-1$
-		button1.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				ownerDrawViewer.refresh();
-				normalViewer.refresh();
-			}
-		});
-		
-		final Button button2= new Button(buttons, SWT.CHECK);
-		button2.setText("Owner draw on column 1"); //$NON-NLS-1$
-		button2.setSelection(true);
-		button2.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				boolean newState= button2.getSelection();
-				styledCellLP1.setOwnerDrawEnabled(newState);
-				ownerDrawViewer.refresh();
-			}
-		});
-		
-		final Button button3= new Button(buttons, SWT.CHECK);
-		button3.setText("Owner draw on column 2"); //$NON-NLS-1$
-		button3.setSelection(true);
-		button3.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				boolean newState= button3.getSelection();
-				styledCellLP2.setOwnerDrawEnabled(newState);
-				ownerDrawViewer.refresh();
-			}
-		});
-	}
-	
-	private static class FileSystemRoot {
-		public File[] getRoots() {
-			return File.listRoots();
-		}
-	}
-
-	private ColumnViewer createViewer(String description, Composite parent, CellLabelProvider labelProvider1, CellLabelProvider labelProvider2) {
-
-		Composite composite= new Composite(parent, SWT.NONE);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-		composite.setLayout(new GridLayout(1, true));
-
-		Label label= new Label(composite, SWT.NONE);
-		label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
-		label.setText(description);
-
-		TreeViewer treeViewer= new TreeViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		treeViewer.getTree().setHeaderVisible(true);
-		treeViewer.setContentProvider(new FileSystemContentProvider());
-		
-		TreeViewerColumn tvc1 = new TreeViewerColumn(treeViewer, SWT.NONE);
-		tvc1.getColumn().setText("Name"); //$NON-NLS-1$
-		tvc1.getColumn().setWidth(200);
-		tvc1.setLabelProvider(labelProvider1);
-
-		TreeViewerColumn tvc2 = new TreeViewerColumn(treeViewer, SWT.NONE);
-		tvc2.getColumn().setText("Date Modified"); //$NON-NLS-1$
-		tvc2.getColumn().setWidth(200);
-		tvc2.setLabelProvider(labelProvider2);
-		
-		GridData data= new GridData(GridData.FILL, GridData.FILL, true, true);
-		treeViewer.getControl().setLayoutData(data);
-
-		treeViewer.setInput(new FileSystemRoot());
-
-		return treeViewer;
-	}
-
-	/**
-	 * A simple label provider
-	 */
-	private static class NameAndSizeLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider {
-		
-		private static int IMAGE_SIZE= 16;
-		private static final Image IMAGE1= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_WARNING).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-		private static final Image IMAGE2= new Image(DISPLAY, DISPLAY.getSystemImage(SWT.ICON_ERROR).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-
-		public Image getImage(Object element) {
-			if (element instanceof File) {
-				File file= (File) element;
-				if (file.isDirectory()) {
-					return IMAGE1;
-				} else {
-					return IMAGE2;
-				}
-			}
-			return null;
-		}
-
-		public String getText(Object element) {
-			return getStyledText(element).toString();
-		}
-
-		public StyledString getStyledText(Object element) {
-			StyledString styledString= new StyledString();
-			if (element instanceof File) {
-				File file= (File) element;
-				if (file.getName().length() == 0) {
-					styledString.append(file.getAbsolutePath());
-				} else {
-					styledString.append(file.getName());
-				}
-				if (file.isFile()) {
-					String decoration= MessageFormat.format(" ({0} bytes)", new Object[] { new Long(file.length()) }); //$NON-NLS-1$
-					styledString.append(decoration, StyledString.COUNTER_STYLER);
-				}
-			}	
-			return styledString;
-		}
-	}
-	
-	private static class ModifiedDateLabelProvider extends ColumnLabelProvider implements IStyledLabelProvider {
-		public String getText(Object element) {
-			return getStyledText(element).toString();
-		}
-		
-		public StyledString getStyledText(Object element) {
-			StyledString styledString= new StyledString();
-			if (element instanceof File) {
-				File file= (File) element;
-				
-				String date= DateFormat.getDateInstance().format(new Date(file.lastModified()));
-				styledString.append(date);
-				
-				styledString.append(' ');
-				
-				String time = DateFormat.getTimeInstance(3).format(new Date(file.lastModified()));
-				styledString.append(time, StyledString.COUNTER_STYLER);
-			}
-			return styledString;
-		}
-	}
-	
-	private static class FileSystemContentProvider implements ITreeContentProvider {
-
-		public Object[] getChildren(Object element) {
-			if (element instanceof File) {
-				File file= (File) element;
-				if (file.isDirectory()) {
-					File[] listFiles= file.listFiles();
-					if (listFiles != null) {
-						return listFiles;
-					}
-				}
-			} else if (element instanceof FileSystemRoot) {
-				return ((FileSystemRoot) element).getRoots();
-			}
-			return new Object[0];
-		}
-
-		public Object getParent(Object element) {
-			if (element instanceof File) {
-				File file= (File) element;
-				return file.getParentFile();
-			}
-			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) {
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java
deleted file mode 100644
index 095b8fe..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet051TableCenteredImage.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-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.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Example showing how to center an image using an owner draw label provider
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet051TableCenteredImage {
-	private static Image[] images;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	private abstract class CenterImageLabelProvider extends
-			OwnerDrawLabelProvider {
-
-		protected void measure(Event event, Object element) {
-		}
-
-		protected void paint(Event event, Object element) {
-
-			Image img = getImage(element);
-
-			if (img != null) {
-				Rectangle bounds = ((TableItem) event.item)
-						.getBounds(event.index);
-				Rectangle imgBounds = img.getBounds();
-				bounds.width /= 2;
-				bounds.width -= imgBounds.width / 2;
-				bounds.height /= 2;
-				bounds.height -= imgBounds.height / 2;
-
-				int x = bounds.width > 0 ? bounds.x + bounds.width : bounds.x;
-				int y = bounds.height > 0 ? bounds.y + bounds.height : bounds.y;
-
-				event.gc.drawImage(img, x, y);
-			}
-		}
-
-		protected abstract Image getImage(Object element);
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	private static Image createImage(Display display, int red, int green,
-			int blue) {
-		Color color = new Color(display, red, green, blue);
-		Image image = new Image(display, 10, 10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet051TableCenteredImage(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new CenterImageLabelProvider() {
-
-			protected Image getImage(Object element) {
-				return images[((MyModel) element).counter % 4];
-			}
-
-		});
-
-		// OwnerDrawLabelProvider.setUpOwnerDraw(v);
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		images = new Image[4];
-		images[0] = createImage(display, 0, 0, 255);
-		images[1] = createImage(display, 0, 255, 255);
-		images[2] = createImage(display, 0, 255, 0);
-		images[3] = createImage(display, 255, 0, 255);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet051TableCenteredImage(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		for (int i = 0; i < images.length; i++) {
-			images[i].dispose();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java
deleted file mode 100644
index 7d3c521..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet052DouleClickCellEditor.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Shows how to setup a Viewer to start cell editing on double click
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet052DouleClickCellEditor {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public static boolean flag = true;
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet052DouleClickCellEditor(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-		v.setCellEditors(new CellEditor[] { new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()),
-				new TextCellEditor(v.getTable()) });
-		v.setCellModifier(new ICellModifier() {
-
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Column " + property + " => " + element.toString();
-			}
-
-			public void modify(Object element, String property, Object value) {
-
-			}
-
-		});
-
-		v.setColumnProperties(new String[] { "1", "2", "3" });
-
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TableViewerEditor.create(v, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider());
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider());
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider());
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet052DouleClickCellEditor(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java
deleted file mode 100644
index e4b0eb3..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet053StartEditorWithContextMenu.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Marcel and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Marcel <emmpeegee@gmail.com> - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- *
- */
-public class Snippet053StartEditorWithContextMenu implements SelectionListener {
-
-	private TreeViewer viewer;
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel)inputElement).child.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) {
-
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if( element == null) {
-				return null;
-			}
-
-			return ((MyModel)element).parent;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel)element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-		public ArrayList child = new ArrayList();
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if( parent != null ) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public Snippet053StartEditorWithContextMenu(Shell shell) {
-		viewer = new TreeViewer(shell, SWT.BORDER);
-		viewer.setContentProvider(new MyContentProvider());
-		viewer.setCellEditors(new CellEditor[] {new TextCellEditor(viewer.getTree())});
-		viewer.setColumnProperties(new String[] { "name" });
-		viewer.setCellModifier(new ICellModifier() {
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, java.lang.String)
-			 */
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, java.lang.String)
-			 */
-			public Object getValue(Object element, String property) {
-				return ((MyModel)element).counter + "";
-			}
-
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, java.lang.String, java.lang.Object)
-			 */
-			public void modify(Object element, String property, Object value) {
-				TreeItem item = (TreeItem)element;
-				((MyModel)item.getData()).counter = Integer.parseInt(value.toString());
-				viewer.update(item.getData(), null);
-			}
-
-		});
-
-		TreeViewerEditor.create(viewer, new ColumnViewerEditorActivationStrategy(viewer) {
-			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		}, ColumnViewerEditor.DEFAULT);
-
-		Menu menu = new Menu(viewer.getControl());
-		MenuItem renameItem = new MenuItem(menu, SWT.PUSH);
-		renameItem.addSelectionListener(this);
-		renameItem.setText("Rename");
-		viewer.getTree().setMenu(menu);
-
-		viewer.setInput(createModel());
-	}
-
-	public void widgetDefaultSelected(SelectionEvent e) {
-	}
-
-	public void widgetSelected(SelectionEvent e) {
-		IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
-		if (selection != null) {
-			viewer.editElement(selection.getFirstElement(), 0);
-		}
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0,null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for( int i = 1; i < 10; i++ ) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for( int j = 1; j < i; j++ ) {
-				tmp.child.add(new MyModel(j,tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display ();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet053StartEditorWithContextMenu(shell);
-		shell.open ();
-
-		while (!shell.isDisposed ()) {
-			if (!display.readAndDispatch ()) display.sleep ();
-		}
-
-		display.dispose ();
-	}
-}
-
-
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java
deleted file mode 100644
index 0afa406..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet054NativeControlsInViewers.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Example how to place native controls into a viewer with the new JFace-API
- * because has the potential to eat up all your handles you should think about
- * alternate approaches e.g. takeing a screenshot of the control
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet054NativeControlsInViewers {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public Snippet054NativeControlsInViewers(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-		v.getTable().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,2,1));
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return element.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new CellLabelProvider() {
-
-			public void update(ViewerCell cell) {
-				final TableItem item = (TableItem) cell.getItem();
-				DisposeListener listener = new DisposeListener() {
-
-					public void widgetDisposed(DisposeEvent e) {
-						if( item.getData("EDITOR") != null ) {
-							TableEditor editor = (TableEditor) item.getData("EDITOR");
-							editor.getEditor().dispose();
-							editor.dispose();
-						}
-					}
-
-				};
-
-				if (item.getData("EDITOR") != null) {
-					TableEditor editor = (TableEditor) item.getData("EDITOR");
-					editor.getEditor().dispose();
-					editor.dispose();
-				}
-
-				if( item.getData("DISPOSELISTNER") != null ) {
-					item.removeDisposeListener((DisposeListener) item.getData("DISPOSELISTNER"));
-				}
-
-				TableEditor editor = new TableEditor(item.getParent());
-				item.setData("EDITOR", editor);
-				Composite comp = new Composite(item.getParent(), SWT.NONE);
-				comp.setBackground(item.getParent().getBackground());
-				comp.setBackgroundMode(SWT.INHERIT_DEFAULT);
-				RowLayout l = new RowLayout();
-				l.marginHeight = 0;
-				l.marginWidth = 0;
-				l.marginTop = 0;
-				l.marginBottom = 0;
-				comp.setLayout(l);
-				Button rad = new Button(comp, SWT.RADIO);
-				Button rad1 = new Button(comp, SWT.RADIO);
-				Button rad2 = new Button(comp, SWT.RADIO);
-
-				editor.grabHorizontal = true;
-				editor.setEditor(comp, item, 1);
-
-				item.addDisposeListener(listener);
-				item.setData("DISPOSELISTNER",listener);
-			}
-
-		});
-
-		MyModel[] model = createModel(10);
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		Button b = new Button(shell,SWT.PUSH);
-		b.setText("Modify input");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.setInput(createModel((int)(Math.random() * 10)));
-			}
-
-		});
-
-		b = new Button(shell,SWT.PUSH);
-		b.setText("Refresh");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				v.refresh();
-			}
-
-		});
-	}
-
-	private MyModel[] createModel(int amount) {
-		MyModel[] elements = new MyModel[amount];
-
-		for (int i = 0; i < amount; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new GridLayout(2,true));
-		new Snippet054NativeControlsInViewers(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java
deleted file mode 100644
index 75ceda3..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet055HideShowColumn.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-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.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet055HideShowColumn {
-	public Snippet055HideShowColumn(final Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,2,1));
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(
-				v, new FocusCellOwnerDrawHighlighter(v));
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TreeViewerEditor.create(v, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-
-		TreeViewerColumn column_1 = new TreeViewerColumn(v, SWT.NONE);
-		column_1.getColumn().setWidth(200);
-		column_1.getColumn().setMoveable(true);
-		column_1.getColumn().setText("Column 1");
-		column_1.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column_1.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		final TreeViewerColumn column_2 = new TreeViewerColumn(v, SWT.NONE);
-		column_2.getColumn().setWidth(200);
-		column_2.getColumn().setMoveable(true);
-		column_2.getColumn().setText("Column 2");
-		column_2.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 2 => " + element.toString();
-			}
-
-		});
-		column_2.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		TreeViewerColumn column_3 = new TreeViewerColumn(v, SWT.NONE);
-		column_3.getColumn().setWidth(200);
-		column_3.getColumn().setMoveable(true);
-		column_3.getColumn().setText("Column 3");
-		column_3.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 3 => " + element.toString();
-			}
-
-		});
-		column_3.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("Edit-Element");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				MyModel root = (MyModel) v.getInput();
-				TreePath path = new TreePath(new Object[] { root,
-						root.child.get(1),
-						((MyModel) root.child.get(1)).child.get(0) });
-				v.editElement(path, 0);
-			}
-
-		});
-
-		b = new Button(shell, SWT.PUSH);
-		b.setText("Hide/Show 2nd Column");
-		b.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		b.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				column_2.getColumn().setWidth(0);
-			}
-		});
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new GridLayout(2,true));
-		new Snippet055HideShowColumn(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java
deleted file mode 100644
index 6d2841e..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet056BooleanCellEditor.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * A simple TreeViewer to demonstrate usage
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet056BooleanCellEditor {
-	public Snippet056BooleanCellEditor(final Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLinesVisible(true);
-		v.getTree().setHeaderVisible(true);
-
-		FocusCellOwnerDrawHighlighter h = new FocusCellOwnerDrawHighlighter(v) {
-
-			protected Color getSelectedCellBackgroundColorNoFocus(
-					ViewerCell cell) {
-				return shell.getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND);
-			}
-
-			protected Color getSelectedCellForegroundColorNoFocus(
-					ViewerCell cell) {
-				return shell.getDisplay().getSystemColor(SWT.COLOR_WIDGET_FOREGROUND);
-			}
-		};
-
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(v,h);
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v);
-
-		TreeViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-		final BooleanCellEditor booleanCellEditor = new BooleanCellEditor(v.getTree());
-
-		TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 1");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 1 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 2");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((MyModel) element).flag+"";
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return booleanCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return new Boolean(((MyModel) element).flag);
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).flag = ((Boolean)value).booleanValue();
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Column 3");
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return "Column 3 => " + element.toString();
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((MyModel) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((MyModel) element).counter = Integer
-						.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		MyModel subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new MyModel(j, tmp);
-				subItem.child.add(new MyModel(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet056BooleanCellEditor(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((MyModel) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public boolean flag;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-			this.flag = counter % 2 == 0;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java
deleted file mode 100644
index 7b2e2a4..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet057TableViewerSkipHiddenCells.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example of showing how easy cell-navigation with hidden cells is in 3.4
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- */
-public class Snippet057TableViewerSkipHiddenCells {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-
-		public Person(String givenname, String surname, String email) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-
-		private TextCellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			editor = new TextCellEditor(viewer.getTable());
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			this.doSetValue(element, value);
-			this.getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-
-	}
-
-	public Snippet057TableViewerSkipHiddenCells(Shell shell) {
-
-		final TableViewer tableviewer = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		tableviewer.setContentProvider(new MyContentProvider());
-		MenuManager mgr = new MenuManager();
-		mgr.add(new Action("toggle surname visibility") {
-
-			public void run() {
-				if( tableviewer.getTable().getColumn(1).getWidth() == 0) {
-					tableviewer.getTable().getColumn(1).setWidth(200);
-				} else {
-					tableviewer.getTable().getColumn(1).setWidth(0);	
-				}
-				
-			}
-			
-		});
-		tableviewer.getControl().setMenu(mgr.createContextMenu(tableviewer.getControl())); 
-
-		// Column 1
-		TableViewerColumn column = new TableViewerColumn(tableviewer, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(false);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(tableviewer) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-
-		// Column 2 is zero-width hidden
-		column = new TableViewerColumn(tableviewer, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(false);
-		column.getColumn().setResizable(false);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(tableviewer) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-
-		// column 3
-		column = new TableViewerColumn(tableviewer, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(false);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(tableviewer) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).email;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-
-		Person[] model = this.createModel();
-		tableviewer.setInput(model);
-		tableviewer.getTable().setLinesVisible(true);
-		tableviewer.getTable().setHeaderVisible(true);
-
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(
-				tableviewer, new FocusCellOwnerDrawHighlighter(tableviewer));
-
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				tableviewer) {
-
-			protected boolean isEditorActivationEvent(
-
-			ColumnViewerEditorActivationEvent event) {
-
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
-						&& event.keyCode == SWT.CR
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-
-			}
-
-		};
-
-		TableViewerEditor.create(tableviewer, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org");
-
-		return elements;
-
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet057TableViewerSkipHiddenCells(shell);
-		shell.open();
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-
-		display.dispose();
-
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet058CellNavigationIn34.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet058CellNavigationIn34.java
deleted file mode 100644
index df7e1f1..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet058CellNavigationIn34.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *     Niels Lippke - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CellNavigationStrategy;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationListener;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example for full feature cell navigation until bug 230955 is fixed
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>, Niels Lippke <niels.lippke@airpas.com>
- * 
- */
-public class Snippet058CellNavigationIn34 {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-		public String gender;
-
-		public Person(String givenname, String surname, String email, String gender) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-			this.gender = gender;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-		private CellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			this.editor = new TextCellEditor(viewer.getTable());
-		}
-		
-		public AbstractEditingSupport(TableViewer viewer, CellEditor editor) {
-			super(viewer);
-			this.editor = editor;
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			doSetValue(element, value);
-			getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-	}
-
-	public Snippet058CellNavigationIn34(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Surname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {				
-				return ((Person) element).email;	
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Gender");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).gender;
-			}
-
-		});
-		
-		ComboBoxCellEditor editor = new ComboBoxCellEditor(((TableViewer) v).getTable(), new String[] {"M","F"});
-		editor.setActivationStyle(ComboBoxCellEditor.DROP_DOWN_ON_TRAVERSE_ACTIVATION | 
-				ComboBoxCellEditor.DROP_DOWN_ON_PROGRAMMATIC_ACTIVATION |
-				ComboBoxCellEditor.DROP_DOWN_ON_MOUSE_ACTIVATION |
-				ComboBoxCellEditor.DROP_DOWN_ON_KEY_ACTIVATION);
-		
-		column.setEditingSupport(new AbstractEditingSupport(v, editor) {
-
-			protected Object getValue(Object element) {
-				if (((Person) element).gender.equals("M"))
-					return new Integer(0);
-				return new Integer(1);
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				if (((Integer) value).intValue() == 0) {
-					((Person) element).gender = "M";
-				} else {
-					((Person) element).gender = "F";
-				}
-			}
-
-		});
-		
-		CellNavigationStrategy naviStrat = new CellNavigationStrategy() {
-
-			public ViewerCell findSelectedCell(ColumnViewer viewer,
-					ViewerCell currentSelectedCell, Event event) {
-				ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);
-				
-				if( cell != null ) {
-					v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex()));
-				}
-				
-				return cell;
-			}
-			
-		};
-		
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(v,new FocusCellOwnerDrawHighlighter(v),naviStrat);
-		
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-		
-		TableViewerEditor.create(v, focusCellManager, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
-				| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-				| ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);
-		
-		v.getColumnViewerEditor().addEditorActivationListener(new ColumnViewerEditorActivationListener() {
-
-			public void afterEditorActivated(
-					ColumnViewerEditorActivationEvent event) {
-				
-			}
-
-			public void afterEditorDeactivated(
-					ColumnViewerEditorDeactivationEvent event) {
-				
-			}
-
-			public void beforeEditorActivated(
-					ColumnViewerEditorActivationEvent event) {
-				ViewerCell cell = (ViewerCell) event.getSource();
-				v.getTable().showColumn(v.getTable().getColumn(cell.getColumnIndex()));
-			}
-
-			public void beforeEditorDeactivated(
-					ColumnViewerEditorDeactivationEvent event) {
-				
-			}
-			
-		});
-		
-		Person[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at", "M");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com","M");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com","M");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org","M");
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet058CellNavigationIn34(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet059CellNavigationIn33.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet059CellNavigationIn33.java
deleted file mode 100644
index e9b1630..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet059CellNavigationIn33.java
+++ /dev/null
@@ -1,865 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.List;
-
-import org.eclipse.jface.viewers.AbstractTableViewer;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.CellNavigationStrategy;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationListener;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.ColumnViewerEditorDeactivationEvent;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.ViewerColumn;
-import org.eclipse.jface.viewers.ViewerRow;
-import org.eclipse.jface.viewers.CellEditor.LayoutData;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableEditor;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * Example for full feature cell navigation in 3.3. This snippet uses internal
- * API by reflection so its not guaranteed to work for ever. The problem of
- * invisible cells is fixed in 3.4. The problem with horizontal scrolling is
- * going to be fixed in 3.5.
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- *
- */
-public class Snippet059CellNavigationIn33 {
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return (Person[]) inputElement;
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-
-	public class Person {
-		public String givenname;
-		public String surname;
-		public String email;
-		public String gender;
-
-		public Person(String givenname, String surname, String email,
-				String gender) {
-			this.givenname = givenname;
-			this.surname = surname;
-			this.email = email;
-			this.gender = gender;
-		}
-
-	}
-
-	protected abstract class AbstractEditingSupport extends EditingSupport {
-		private CellEditor editor;
-
-		public AbstractEditingSupport(TableViewer viewer) {
-			super(viewer);
-			this.editor = new TextCellEditor(viewer.getTable());
-		}
-
-		public AbstractEditingSupport(TableViewer viewer, CellEditor editor) {
-			super(viewer);
-			this.editor = editor;
-		}
-
-		protected boolean canEdit(Object element) {
-			return true;
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return editor;
-		}
-
-		protected void setValue(Object element, Object value) {
-			doSetValue(element, value);
-			getViewer().update(element, null);
-		}
-
-		protected abstract void doSetValue(Object element, Object value);
-	}
-
-	public Snippet059CellNavigationIn33(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setContentProvider(new MyContentProvider());
-
-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Givenname");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).givenname;
-			}
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).givenname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).givenname = value.toString();
-			}
-
-		});
-
-		final TableViewerColumn columnA = new TableViewerColumn(v, SWT.NONE);
-		columnA.getColumn().setWidth(200);
-		columnA.getColumn().setText("Surname");
-		columnA.getColumn().setMoveable(true);
-		columnA.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).surname;
-			}
-
-		});
-
-		columnA.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).surname;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).surname = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("E-Mail");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).email;
-			}
-
-		});
-
-		column.setEditingSupport(new AbstractEditingSupport(v) {
-
-			protected Object getValue(Object element) {
-				return ((Person) element).email;
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				((Person) element).email = value.toString();
-			}
-
-		});
-
-		column = new TableViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setText("Gender");
-		column.getColumn().setMoveable(true);
-		column.setLabelProvider(new ColumnLabelProvider() {
-
-			public String getText(Object element) {
-				return ((Person) element).gender;
-			}
-
-		});
-
-		ComboBoxCellEditor editor = new ComboBoxCellEditor(((TableViewer) v)
-				.getTable(), new String[] { "M", "F" });
-		column.setEditingSupport(new AbstractEditingSupport(v, editor) {
-
-			protected Object getValue(Object element) {
-				if (((Person) element).gender.equals("M"))
-					return new Integer(0);
-				return new Integer(1);
-			}
-
-			protected void doSetValue(Object element, Object value) {
-				if (((Integer) value).intValue() == 0) {
-					((Person) element).gender = "M";
-				} else {
-					((Person) element).gender = "F";
-				}
-			}
-
-		});
-
-		CellNavigationStrategy naviStrat = new CellNavigationStrategy() {
-
-			private ViewerCell internalFindSelectedCell(ColumnViewer viewer,
-					ViewerCell currentSelectedCell, Event event) {
-				switch (event.keyCode) {
-				case SWT.ARROW_UP:
-					if (currentSelectedCell != null) {
-						return getNeighbor(currentSelectedCell,
-								ViewerCell.ABOVE, false);
-					}
-					break;
-				case SWT.ARROW_DOWN:
-					if (currentSelectedCell != null) {
-						return getNeighbor(currentSelectedCell,
-								ViewerCell.BELOW, false);
-					}
-					break;
-				case SWT.ARROW_LEFT:
-					if (currentSelectedCell != null) {
-						return getNeighbor(currentSelectedCell,
-								ViewerCell.LEFT, true);
-					}
-					break;
-				case SWT.ARROW_RIGHT:
-					if (currentSelectedCell != null) {
-						return getNeighbor(currentSelectedCell,
-								ViewerCell.RIGHT, true);
-					}
-					break;
-				}
-
-				return null;
-			}
-
-			public ViewerCell findSelectedCell(ColumnViewer viewer,
-					ViewerCell currentSelectedCell, Event event) {
-				ViewerCell cell = internalFindSelectedCell(viewer,
-						currentSelectedCell, event);
-
-				if (cell != null) {
-					TableColumn t = v.getTable().getColumn(
-							cell.getColumnIndex());
-					v.getTable().showColumn(t);
-				}
-
-				return cell;
-			}
-
-		};
-
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(
-				v, new FocusCellOwnerDrawHighlighter(v));
-		try {
-			Field f = focusCellManager.getClass().getSuperclass()
-					.getDeclaredField("navigationStrategy");
-			f.setAccessible(true);
-			f.set(focusCellManager, naviStrat);
-		} catch (SecurityException e) {
-			e.printStackTrace();
-		} catch (NoSuchFieldException e) {
-			e.printStackTrace();
-		} catch (IllegalArgumentException e) {
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		}
-
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v) {
-			protected boolean isEditorActivationEvent(
-					ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.CR)
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
-			}
-		};
-
-		TableViewerEditor.create(v, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		v.getColumnViewerEditor().addEditorActivationListener(
-				new ColumnViewerEditorActivationListener() {
-
-					public void afterEditorActivated(
-							ColumnViewerEditorActivationEvent event) {
-
-					}
-
-					public void afterEditorDeactivated(
-							ColumnViewerEditorDeactivationEvent event) {
-
-					}
-
-					public void beforeEditorActivated(
-							ColumnViewerEditorActivationEvent event) {
-						ViewerCell cell = (ViewerCell) event.getSource();
-						v.getTable().showColumn(
-								v.getTable().getColumn(cell.getColumnIndex()));
-					}
-
-					public void beforeEditorDeactivated(
-							ColumnViewerEditorDeactivationEvent event) {
-
-					}
-
-				});
-
-		v.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		final Button b = new Button(shell, SWT.PUSH);
-		b.setText("Hide");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				if (columnA.getColumn().getWidth() == 0) {
-					b.setText("Hide");
-					columnA.getColumn().setWidth(200);
-				} else {
-					b.setText("Show");
-					columnA.getColumn().setWidth(0);
-				}
-			}
-		});
-
-		Person[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-	}
-
-	private Person[] createModel() {
-		Person[] elements = new Person[4];
-		elements[0] = new Person("Tom", "Schindl",
-				"tom.schindl@bestsolution.at", "M");
-		elements[1] = new Person("Boris", "Bokowski",
-				"Boris_Bokowski@ca.ibm.com", "M");
-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com",
-				"M");
-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org", "M");
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new GridLayout());
-		new Snippet059CellNavigationIn33(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-
-	}
-
-	public static class TableViewerEditor extends ColumnViewerEditor {
-		/**
-		 * This viewer's table editor.
-		 */
-		private TableEditor tableEditor;
-
-		private TableViewerFocusCellManager focusCellManager;
-
-		private int feature;
-
-		/**
-		 * @param viewer
-		 *            the viewer the editor is attached to
-		 * @param focusCellManager
-		 *            the cell focus manager if one used or <code>null</code>
-		 * @param editorActivationStrategy
-		 *            the strategy used to decide about the editor activation
-		 * @param feature
-		 *            the feature mask
-		 */
-		TableViewerEditor(TableViewer viewer,
-				TableViewerFocusCellManager focusCellManager,
-				ColumnViewerEditorActivationStrategy editorActivationStrategy,
-				int feature) {
-			super(viewer, editorActivationStrategy, feature);
-			this.feature = feature;
-			tableEditor = new TableEditor(viewer.getTable());
-			this.focusCellManager = focusCellManager;
-		}
-
-		/**
-		 * Create a customized editor with focusable cells
-		 *
-		 * @param viewer
-		 *            the viewer the editor is created for
-		 * @param focusCellManager
-		 *            the cell focus manager if one needed else
-		 *            <code>null</code>
-		 * @param editorActivationStrategy
-		 *            activation strategy to control if an editor activated
-		 * @param feature
-		 *            bit mask controlling the editor
-		 *            <ul>
-		 *            <li>{@link ColumnViewerEditor#DEFAULT}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-		 *            </ul>
-		 * @see #create(TableViewer, ColumnViewerEditorActivationStrategy, int)
-		 */
-		public static void create(TableViewer viewer,
-				TableViewerFocusCellManager focusCellManager,
-				ColumnViewerEditorActivationStrategy editorActivationStrategy,
-				int feature) {
-			TableViewerEditor editor = new TableViewerEditor(viewer,
-					focusCellManager, editorActivationStrategy, feature);
-			viewer.setColumnViewerEditor(editor);
-			if (focusCellManager != null) {
-				try {
-					Method m = focusCellManager.getClass().getSuperclass()
-							.getDeclaredMethod("init", null);
-					m.setAccessible(true);
-					m.invoke(focusCellManager, null);
-				} catch (SecurityException e) {
-					e.printStackTrace();
-				} catch (IllegalArgumentException e) {
-					e.printStackTrace();
-				} catch (IllegalAccessException e) {
-					e.printStackTrace();
-				} catch (NoSuchMethodException e) {
-					e.printStackTrace();
-				} catch (InvocationTargetException e) {
-					e.printStackTrace();
-				}
-				// focusCellManager.init();
-			}
-		}
-
-		/**
-		 * Create a customized editor whose activation process is customized
-		 *
-		 * @param viewer
-		 *            the viewer the editor is created for
-		 * @param editorActivationStrategy
-		 *            activation strategy to control if an editor activated
-		 * @param feature
-		 *            bit mask controlling the editor
-		 *            <ul>
-		 *            <li>{@link ColumnViewerEditor#DEFAULT}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_CYCLE_IN_ROW}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_HORIZONTAL}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_MOVE_TO_ROW_NEIGHBOR}</li>
-		 *            <li>{@link ColumnViewerEditor#TABBING_VERTICAL}</li>
-		 *            </ul>
-		 */
-		public static void create(TableViewer viewer,
-				ColumnViewerEditorActivationStrategy editorActivationStrategy,
-				int feature) {
-			create(viewer, null, editorActivationStrategy, feature);
-		}
-
-		protected void setEditor(Control w, Item item, int columnNumber) {
-			tableEditor.setEditor(w, (TableItem) item, columnNumber);
-		}
-
-		protected void setLayoutData(LayoutData layoutData) {
-			tableEditor.grabHorizontal = layoutData.grabHorizontal;
-			tableEditor.horizontalAlignment = layoutData.horizontalAlignment;
-			tableEditor.minimumWidth = layoutData.minimumWidth;
-		}
-
-		public ViewerCell getFocusCell() {
-			if (focusCellManager != null) {
-				return focusCellManager.getFocusCell();
-			}
-
-			return super.getFocusCell();
-		}
-
-		protected void updateFocusCell(ViewerCell focusCell,
-				ColumnViewerEditorActivationEvent event) {
-			// Update the focus cell when we activated the editor with these 2
-			// events
-			if (event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
-					|| event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL) {
-
-				if (focusCellManager != null) {
-					try {
-						Method m = AbstractTableViewer.class.getDeclaredMethod(
-								"getSelectionFromWidget", null);
-						m.setAccessible(true);
-						List l = (List) m.invoke(getViewer(), null);
-
-						if (focusCellManager != null) {
-							m = focusCellManager.getClass().getSuperclass()
-									.getDeclaredMethod("setFocusCell",
-											new Class[] { ViewerCell.class });
-							m.setAccessible(true);
-							m.invoke(focusCellManager,
-									new Object[] { focusCell });
-						}
-
-						if (!l.contains(focusCell.getElement())) {
-							getViewer().setSelection(
-									new StructuredSelection(focusCell
-											.getElement()));
-						}
-
-					} catch (SecurityException e) {
-						e.printStackTrace();
-					} catch (IllegalArgumentException e) {
-						e.printStackTrace();
-					} catch (IllegalAccessException e) {
-						e.printStackTrace();
-					} catch (NoSuchMethodException e) {
-						e.printStackTrace();
-					} catch (InvocationTargetException e) {
-						e.printStackTrace();
-					}
-
-				}
-			}
-		}
-
-		protected void processTraverseEvent(int columnIndex, ViewerRow row,
-				TraverseEvent event) {
-			ViewerCell cell2edit = null;
-
-			if (event.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
-				event.doit = false;
-
-				if ((event.stateMask & SWT.CTRL) == SWT.CTRL
-						&& (feature & TABBING_VERTICAL) == TABBING_VERTICAL) {
-					cell2edit = searchCellAboveBelow(row, getViewer(), columnIndex, true);
-				} else if ((feature & TABBING_HORIZONTAL) == TABBING_HORIZONTAL) {
-					cell2edit = searchPreviousCell(row, row.getCell(columnIndex),
-							row.getCell(columnIndex), getViewer());
-				}
-			} else if (event.detail == SWT.TRAVERSE_TAB_NEXT) {
-				event.doit = false;
-
-				if ((event.stateMask & SWT.CTRL) == SWT.CTRL
-						&& (feature & TABBING_VERTICAL) == TABBING_VERTICAL) {
-					cell2edit = searchCellAboveBelow(row, getViewer(), columnIndex,
-							false);
-				} else if ((feature & TABBING_HORIZONTAL) == TABBING_HORIZONTAL) {
-					cell2edit = searchNextCell(row, row.getCell(columnIndex), row
-							.getCell(columnIndex), getViewer());
-				}
-			}
-
-			System.err.println("NEXT CELL: " + cell2edit);
-
-			if (cell2edit != null) {
-				getViewer().getControl().setRedraw(false);
-				ColumnViewerEditorActivationEvent acEvent = new ColumnViewerEditorActivationEvent(
-						cell2edit, event);
-
-				try {
-					Method m = ColumnViewer.class.getDeclaredMethod("triggerEditorActivationEvent", new Class[] { ColumnViewerEditorActivationEvent.class });
-					m.setAccessible(true);
-					m.invoke(getViewer(), new Object[] {acEvent});
-				} catch (SecurityException e) {
-					e.printStackTrace();
-				} catch (NoSuchMethodException e) {
-					e.printStackTrace();
-				} catch (IllegalArgumentException e) {
-					e.printStackTrace();
-				} catch (IllegalAccessException e) {
-					e.printStackTrace();
-				} catch (InvocationTargetException e) {
-					e.printStackTrace();
-				}
-
-				getViewer().getControl().setRedraw(true);
-			}
-		}
-
-		private ViewerCell searchCellAboveBelow(ViewerRow row, ColumnViewer viewer,
-				int columnIndex, boolean above) {
-			ViewerCell rv = null;
-
-			ViewerRow newRow = null;
-
-			if (above) {
-				newRow = row.getNeighbor(ViewerRow.ABOVE, false);
-			} else {
-				newRow = row.getNeighbor(ViewerRow.BELOW, false);
-			}
-
-			try {
-			if (newRow != null) {
-				Method m = ColumnViewer.class.getDeclaredMethod("getViewerColumn", new Class[] { int.class });
-				m.setAccessible(true);
-				ViewerColumn column = (ViewerColumn) m.invoke(viewer, new Object[] { new Integer(columnIndex) });
-				m = ViewerColumn.class.getDeclaredMethod("getEditingSupport", null);
-				m.setAccessible(true);
-
-				EditingSupport es = (EditingSupport) m.invoke(column, null);
-
-				if (column != null
-						&& es != null) {
-					m = EditingSupport.class.getDeclaredMethod("canEdit", new Class[] { Object.class });
-					m.setAccessible(true);
-					Boolean b = (Boolean) m.invoke(es, new Object[] {newRow.getItem().getData()});
-					if( b.booleanValue() ) {
-						rv = newRow.getCell(columnIndex);
-					}
-
-				} else {
-					rv = searchCellAboveBelow(newRow, viewer, columnIndex, above);
-				}
-			}
-			} catch( Exception e ) {
-				e.printStackTrace();
-			}
-
-			return rv;
-		}
-
-		private ViewerCell searchPreviousCell(ViewerRow row,
-				ViewerCell currentCell, ViewerCell originalCell, ColumnViewer viewer) {
-			ViewerCell rv = null;
-			ViewerCell previousCell;
-
-			if (currentCell != null) {
-				previousCell = getNeighbor(currentCell,ViewerCell.LEFT, true);
-			} else {
-				if (row.getColumnCount() != 0) {
-					previousCell = row.getCell(getCreationIndex(row,row
-							.getColumnCount() - 1));
-				} else {
-					previousCell = row.getCell(0);
-				}
-
-			}
-
-			// No endless loop
-			if (originalCell.equals(previousCell)) {
-				return null;
-			}
-
-			if (previousCell != null) {
-				if (isCellEditable(viewer, previousCell)) {
-					rv = previousCell;
-				} else {
-					rv = searchPreviousCell(row, previousCell, originalCell, viewer);
-				}
-			} else {
-				if ((feature & TABBING_CYCLE_IN_ROW) == TABBING_CYCLE_IN_ROW) {
-					rv = searchPreviousCell(row, null, originalCell, viewer);
-				} else if ((feature & TABBING_MOVE_TO_ROW_NEIGHBOR) == TABBING_MOVE_TO_ROW_NEIGHBOR) {
-					ViewerRow rowAbove = row.getNeighbor(ViewerRow.ABOVE, false);
-					if (rowAbove != null) {
-						rv = searchPreviousCell(rowAbove, null, originalCell,
-								viewer);
-					}
-				}
-			}
-
-			return rv;
-		}
-
-		private ViewerCell searchNextCell(ViewerRow row, ViewerCell currentCell,
-				ViewerCell originalCell, ColumnViewer viewer) {
-			ViewerCell rv = null;
-
-			ViewerCell nextCell;
-
-			if (currentCell != null) {
-				nextCell = getNeighbor(currentCell,ViewerCell.RIGHT, true);
-			} else {
-				nextCell = row.getCell(getCreationIndex(row,0));
-			}
-
-			// No endless loop
-			if (originalCell.equals(nextCell)) {
-				return null;
-			}
-
-			if (nextCell != null) {
-				if (isCellEditable(viewer, nextCell)) {
-					rv = nextCell;
-				} else {
-					rv = searchNextCell(row, nextCell, originalCell, viewer);
-				}
-			} else {
-				if ((feature & TABBING_CYCLE_IN_ROW) == TABBING_CYCLE_IN_ROW) {
-					rv = searchNextCell(row, null, originalCell, viewer);
-				} else if ((feature & TABBING_MOVE_TO_ROW_NEIGHBOR) == TABBING_MOVE_TO_ROW_NEIGHBOR) {
-					ViewerRow rowBelow = row.getNeighbor(ViewerRow.BELOW, false);
-					if (rowBelow != null) {
-						rv = searchNextCell(rowBelow, null, originalCell, viewer);
-					}
-				}
-			}
-
-			return rv;
-		}
-
-		private boolean isCellEditable(ColumnViewer viewer, ViewerCell cell) {
-			try {
-				Method m = ColumnViewer.class.getDeclaredMethod("getViewerColumn", new Class[] { int.class });
-				m.setAccessible(true);
-				ViewerColumn column = (ViewerColumn) m.invoke(viewer, new Object[] { new Integer(cell.getColumnIndex()) });
-				m = ViewerColumn.class.getDeclaredMethod("getEditingSupport", null);
-				m.setAccessible(true);
-
-				EditingSupport es = (EditingSupport) m.invoke(column, null);
-
-				if( column != null && es != null ) {
-					m = EditingSupport.class.getDeclaredMethod("canEdit", new Class[] { Object.class });
-					m.setAccessible(true);
-//					return true;
-					Boolean b = (Boolean) m.invoke(es, new Object[] {cell.getElement()});
-					return b.booleanValue();
-				}
-			} catch(Exception e) {
-				e.printStackTrace();
-			}
-			return false;
-		}
-	}
-
-
-
-	// Reimplementation of ViewerCell-Methods
-	private static int getVisualIndex(ViewerRow row, int creationIndex) {
-		TableItem item = (TableItem) row.getItem();
-		int[] order = item.getParent().getColumnOrder();
-
-		for (int i = 0; i < order.length; i++) {
-			if (order[i] == creationIndex) {
-				return i;
-			}
-		}
-		return creationIndex;
-	}
-
-	private static int getCreationIndex(ViewerRow row, int visualIndex) {
-		TableItem item = (TableItem) row.getItem();
-		if (item != null && !item.isDisposed() /*
-												 * && hasColumns() &&
-												 * isValidOrderIndex(visualIndex)
-												 */) {
-			return item.getParent().getColumnOrder()[visualIndex];
-		}
-		return visualIndex;
-	}
-
-	private static ViewerCell getCellAtVisualIndex(ViewerRow row,
-			int visualIndex) {
-		return getCell(row, getCreationIndex(row, visualIndex));
-	}
-
-	private static boolean isVisible(ViewerCell cell) {
-		return getWidth(cell) > 0;
-	}
-
-	private static int getWidth(ViewerCell cell) {
-		TableItem item = (TableItem) cell.getViewerRow().getItem();
-		return item.getParent().getColumn(cell.getColumnIndex())
-				.getWidth();
-	}
-
-	private static ViewerCell getCell(ViewerRow row, int index) {
-		return row.getCell(index);
-	}
-
-	private static ViewerCell getNeighbor(ViewerCell currentCell,
-			int directionMask, boolean sameLevel) {
-		ViewerRow row;
-
-		if ((directionMask & ViewerCell.ABOVE) == ViewerCell.ABOVE) {
-			row = currentCell.getViewerRow().getNeighbor(
-					ViewerRow.ABOVE, sameLevel);
-		} else if ((directionMask & ViewerCell.BELOW) == ViewerCell.BELOW) {
-			row = currentCell.getViewerRow().getNeighbor(
-					ViewerRow.BELOW, sameLevel);
-		} else {
-			row = currentCell.getViewerRow();
-		}
-
-		if (row != null) {
-			int columnIndex;
-			columnIndex = getVisualIndex(row, currentCell
-					.getColumnIndex());
-
-			int modifier = 0;
-
-			if ((directionMask & ViewerCell.LEFT) == ViewerCell.LEFT) {
-				modifier = -1;
-			} else if ((directionMask & ViewerCell.RIGHT) == ViewerCell.RIGHT) {
-				modifier = 1;
-			}
-
-			columnIndex += modifier;
-
-			if (columnIndex >= 0 && columnIndex < row.getColumnCount()) {
-				ViewerCell cell = getCellAtVisualIndex(row, columnIndex);
-				if (cell != null) {
-					while (cell != null
-							&& columnIndex < row.getColumnCount() - 1
-							&& columnIndex > 0) {
-						if (isVisible(cell)) {
-							break;
-						}
-
-						columnIndex += modifier;
-						cell = getCellAtVisualIndex(row, columnIndex);
-						if (cell == null) {
-							break;
-						}
-					}
-				}
-
-				return cell;
-			}
-		}
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet060TextCellEditorWithContentProposal.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet060TextCellEditorWithContentProposal.java
deleted file mode 100644
index 365939f..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet060TextCellEditorWithContentProposal.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Software Competence Center Hagenberg (SCCH) GmbH
- * Copyright (c) 2008 Mario Winterer
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.IContentProposalListener2;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.fieldassist.SimpleContentProposalProvider;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.FocusCellHighlighter;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.jface.viewers.TableViewerEditor;
-import org.eclipse.jface.viewers.TableViewerFocusCellManager;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-
-/**
- * Shows how to attach content assist to a text cell editor.
- * 
- * @author Mario Winterer
- */
-public class Snippet060TextCellEditorWithContentProposal {
-	private static class Color {
-		public String name;
-
-		public Color(String name) {
-			this.name = name;
-		}
-
-		public String toString() {
-			return name;
-		}
-	}
-
-	public static class TextCellEditorWithContentProposal extends TextCellEditor {
-
-		private ContentProposalAdapter contentProposalAdapter;
-		private boolean popupOpen = false; // true, iff popup is currently open
-
-		public TextCellEditorWithContentProposal(Composite parent, IContentProposalProvider contentProposalProvider,
-				KeyStroke keyStroke, char[] autoActivationCharacters) {
-			super(parent);
-
-			enableContentProposal(contentProposalProvider, keyStroke, autoActivationCharacters);
-		}
-
-		private void enableContentProposal(IContentProposalProvider contentProposalProvider, KeyStroke keyStroke,
-				char[] autoActivationCharacters) {
-			contentProposalAdapter = new ContentProposalAdapter(text, new TextContentAdapter(),
-					contentProposalProvider, keyStroke, autoActivationCharacters);
-
-			// Listen for popup open/close events to be able to handle focus events correctly
-			contentProposalAdapter.addContentProposalListener(new IContentProposalListener2() {
-
-				public void proposalPopupClosed(ContentProposalAdapter adapter) {
-					popupOpen = false;
-				}
-
-				public void proposalPopupOpened(ContentProposalAdapter adapter) {
-					popupOpen = true;
-				}
-			});
-		}
-
-		/**
-		 * Return the {@link ContentProposalAdapter} of this cell editor.
-		 * 
-		 * @return the {@link ContentProposalAdapter}
-		 */
-		public ContentProposalAdapter getContentProposalAdapter() {
-			return contentProposalAdapter;
-		}
-
-		protected void focusLost() {
-			if (!popupOpen) {
-				// Focus lost deactivates the cell editor.
-				// This must not happen if focus lost was caused by activating
-				// the completion proposal popup.
-				super.focusLost();
-			}
-		}
-
-		protected boolean dependsOnExternalFocusListener() {
-			// Always return false;
-			// Otherwise, the ColumnViewerEditor will install an additional focus listener
-			// that cancels cell editing on focus lost, even if focus gets lost due to
-			// activation of the completion proposal popup. See also bug 58777.
-			return false;
-		}
-	}
-
-	private static class ColorNameEditingSupport extends EditingSupport {
-		private TextCellEditorWithContentProposal cellEditor;
-
-		public ColorNameEditingSupport(TableViewer viewer) {
-			super(viewer);
-
-			IContentProposalProvider contentProposalProvider = new SimpleContentProposalProvider(new String[] { "red",
-					"green", "blue" });
-			cellEditor = new TextCellEditorWithContentProposal(viewer.getTable(), contentProposalProvider, null, null);
-		}
-
-		protected boolean canEdit(Object element) {
-			return (element instanceof Color);
-		}
-
-		protected CellEditor getCellEditor(Object element) {
-			return cellEditor;
-		}
-
-		protected Object getValue(Object element) {
-			return ((Color) element).name;
-		}
-
-		protected void setValue(Object element, Object value) {
-			((Color) element).name = value.toString();
-			getViewer().update(element, null);
-		}
-
-	}
-
-	public Snippet060TextCellEditorWithContentProposal(Shell shell) {
-		final TableViewer viewer = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);
-		final Table table = viewer.getTable();
-		table.setLinesVisible(true);
-		table.setHeaderVisible(true);
-
-		final TableViewerColumn colorColumn = new TableViewerColumn(viewer, SWT.LEFT);
-		colorColumn.getColumn().setText("Color name");
-		colorColumn.getColumn().setWidth(200);
-		colorColumn.setLabelProvider(new ColumnLabelProvider());
-		colorColumn.setEditingSupport(new ColorNameEditingSupport(viewer));
-
-		viewer.setContentProvider(new ArrayContentProvider());
-
-		ColumnViewerEditorActivationStrategy activationSupport = new ColumnViewerEditorActivationStrategy(viewer) {
-			protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
-				return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
-						|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
-						|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC
-						|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == KeyLookupFactory
-								.getDefault().formalKeyLookup(IKeyLookup.ENTER_NAME));
-			}
-		};
-		activationSupport.setEnableEditorActivationWithKeyboard(true);
-
-		/*
-		 * Without focus highlighter, keyboard events will not be delivered to
-		 * ColumnViewerEditorActivationStragety#isEditorActivationEvent(...) (see above)
-		 */
-		FocusCellHighlighter focusCellHighlighter = new FocusCellOwnerDrawHighlighter(viewer);
-		TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, focusCellHighlighter);
-
-		TableViewerEditor.create(viewer, focusCellManager, activationSupport, ColumnViewerEditor.TABBING_VERTICAL
-				| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		viewer.setInput(createModel());
-	}
-
-	private Color[] createModel() {
-		return new Color[] { new Color("red"), new Color("green") };
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet060TextCellEditorWithContentProposal(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet061FakedNativeCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet061FakedNativeCellEditor.java
deleted file mode 100644
index d7e680f..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet061FakedNativeCellEditor.java
+++ /dev/null
@@ -1,439 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl<tom.schindl@bestsolution.at> - initial API and implementation
- *     Florian Potschka<signalrauschen@gmail.com> - in bug 260061
- *     Alexander Ljungberg<siker@norwinter.com> - in bug 260061
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnViewerEditor;
-import org.eclipse.jface.viewers.ColumnViewerEditorActivationStrategy;
-import org.eclipse.jface.viewers.EditingSupport;
-import org.eclipse.jface.viewers.FocusCellOwnerDrawHighlighter;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.OwnerDrawLabelProvider;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewerEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.TreeViewerColumn;
-import org.eclipse.jface.viewers.TreeViewerFocusCellManager;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-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.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * A simple TreeViewer to demonstrate usage
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet061FakedNativeCellEditor {
-	public abstract class EmulatedNativeCheckBoxLabelProvider extends
-			OwnerDrawLabelProvider {
-		private static final String CHECKED_KEY = "CHECKED";
-		private static final String UNCHECK_KEY = "UNCHECKED";
-
-		public EmulatedNativeCheckBoxLabelProvider(ColumnViewer viewer) {
-			if (JFaceResources.getImageRegistry().getDescriptor(CHECKED_KEY) == null) {
-				JFaceResources.getImageRegistry().put(UNCHECK_KEY,
-						makeShot(viewer.getControl(), false));
-				JFaceResources.getImageRegistry().put(CHECKED_KEY,
-						makeShot(viewer.getControl(), true));
-			}
-		}
-
-		private Image makeShot(Control control, boolean type) {
-			// Hopefully no platform uses exactly this color because we'll make
-			// it transparent in the image.
-			Color greenScreen = new Color(control.getDisplay(), 222, 223, 224);
-
-			Shell shell = new Shell(control.getShell(), SWT.NO_TRIM);
-			
-			// otherwise we have a default gray color
-			shell.setBackground(greenScreen);
-
-			if( Util.isMac() ) {
-				Button button2 = new Button(shell, SWT.CHECK);
-				Point bsize = button2.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				
-				// otherwise an image is stretched by width
-				bsize.x = Math.max(bsize.x - 1, bsize.y - 1);
-				bsize.y = Math.max(bsize.x - 1, bsize.y - 1);
-				button2.setSize(bsize);
-				button2.setLocation(100, 100);				
-			}
-			
-			Button button = new Button(shell, SWT.CHECK);
-			button.setBackground(greenScreen);
-			button.setSelection(type);
-
-			// otherwise an image is located in a corner
-			button.setLocation(1, 1);
-			Point bsize = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			
-			// otherwise an image is stretched by width
-			bsize.x = Math.max(bsize.x - 1, bsize.y - 1);
-			bsize.y = Math.max(bsize.x - 1, bsize.y - 1);
-			button.setSize(bsize);
-			
-			shell.setSize(bsize);
-
-			shell.open();
-			
-			GC gc = new GC(shell);
-			Image image = new Image(control.getDisplay(), bsize.x, bsize.y);
-			gc.copyArea(image, 0, 0);
-			gc.dispose();
-			shell.close();
-
-			ImageData imageData = image.getImageData();
-			imageData.transparentPixel = imageData.palette.getPixel(greenScreen
-					.getRGB());
-
-			Image img = new Image(control.getDisplay(), imageData);
-			image.dispose();
-			
-			return img;
-		}
-
-		public Image getImage(Object element) {
-			if (isChecked(element)) {
-				return JFaceResources.getImageRegistry().get(CHECKED_KEY);
-			} else {
-				return JFaceResources.getImageRegistry().get(UNCHECK_KEY);
-			}
-		}
-
-		protected void measure(Event event, Object element) {
-			event.height = getImage(element).getBounds().height;
-		}
-
-		protected void paint(Event event, Object element) {
-
-			Image img = getImage(element);
-
-			if (img != null) {
-				Rectangle bounds;
-
-				if (event.item instanceof TableItem) {
-					bounds = ((TableItem) event.item).getBounds(event.index);
-				} else {
-					bounds = ((TreeItem) event.item).getBounds(event.index);
-				}
-
-				Rectangle imgBounds = img.getBounds();
-				bounds.width /= 2;
-				bounds.width -= imgBounds.width / 2;
-				bounds.height /= 2;
-				bounds.height -= imgBounds.height / 2;
-
-				int x = bounds.width > 0 ? bounds.x + bounds.width : bounds.x;
-				int y = bounds.height > 0 ? bounds.y + bounds.height : bounds.y;
-
-				if (SWT.getPlatform().equals("carbon")) {
-					event.gc.drawImage(img, x + 2, y - 1);
-				} else {
-					event.gc.drawImage(img, x, y - 1);
-				}
-
-			}
-		}
-
-		protected abstract boolean isChecked(Object element);
-	}
-
-	public Snippet061FakedNativeCellEditor(final Shell shell) {
-		final TreeViewer v = new TreeViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.getTree().setLinesVisible(true);
-		v.getTree().setBackgroundMode(SWT.INHERIT_DEFAULT);
-		v.getTree().setHeaderVisible(true);
-
-		FocusCellOwnerDrawHighlighter h = new FocusCellOwnerDrawHighlighter(v) {
-
-			protected Color getSelectedCellBackgroundColorNoFocus(
-					ViewerCell cell) {
-				return shell.getDisplay().getSystemColor(
-						SWT.COLOR_LIST_SELECTION);
-			}
-
-			protected Color getSelectedCellForegroundColorNoFocus(
-					ViewerCell cell) {
-				return shell.getDisplay().getSystemColor(
-						SWT.COLOR_WIDGET_FOREGROUND);
-			}
-		};
-
-		TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(
-				v, h);
-		ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(
-				v);
-
-		TreeViewerEditor.create(v, focusCellManager, actSupport,
-				ColumnViewerEditor.TABBING_HORIZONTAL
-						| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
-						| ColumnViewerEditor.TABBING_VERTICAL
-						| ColumnViewerEditor.KEYBOARD_ACTIVATION);
-
-		final TextCellEditor textCellEditor = new TextCellEditor(v.getTree());
-		final BooleanCellEditor booleanCellEditor = new BooleanCellEditor(v
-				.getTree());
-		booleanCellEditor.setChangeOnActivation(true);
-
-		TreeViewerColumn column = new TreeViewerColumn(v, SWT.NONE);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("File");
-		column.setLabelProvider(new OwnerDrawLabelProvider() {
-
-			protected void measure(Event event, Object element) {
-
-			}
-
-			protected void paint(Event event, Object element) {
-				((TreeItem) event.item).setText(element.toString());
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return textCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return ((File) element).counter + "";
-			}
-
-			protected void setValue(Object element, Object value) {
-				((File) element).counter = Integer.parseInt(value.toString());
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.CENTER);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Read");
-		column.setLabelProvider(new EmulatedNativeCheckBoxLabelProvider(v) {
-
-			protected boolean isChecked(Object element) {
-				return ((File) element).read;
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return booleanCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return new Boolean(((File) element).read);
-			}
-
-			protected void setValue(Object element, Object value) {
-				((File) element).read = ((Boolean) value).booleanValue();
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.CENTER);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Write");
-		column.setLabelProvider(new EmulatedNativeCheckBoxLabelProvider(v) {
-
-			protected boolean isChecked(Object element) {
-				return ((File) element).write;
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return booleanCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return new Boolean(((File) element).write);
-			}
-
-			protected void setValue(Object element, Object value) {
-				((File) element).write = ((Boolean) value).booleanValue();
-				v.update(element, null);
-			}
-		});
-
-		column = new TreeViewerColumn(v, SWT.CENTER);
-		column.getColumn().setWidth(200);
-		column.getColumn().setMoveable(true);
-		column.getColumn().setText("Execute");
-		column.setLabelProvider(new EmulatedNativeCheckBoxLabelProvider(v) {
-
-			protected boolean isChecked(Object element) {
-				return ((File) element).execute;
-			}
-
-		});
-		column.setEditingSupport(new EditingSupport(v) {
-			protected boolean canEdit(Object element) {
-				return true;
-			}
-
-			protected CellEditor getCellEditor(Object element) {
-				return booleanCellEditor;
-			}
-
-			protected Object getValue(Object element) {
-				return new Boolean(((File) element).execute);
-			}
-
-			protected void setValue(Object element, Object value) {
-				((File) element).execute = ((Boolean) value).booleanValue();
-				v.update(element, null);
-			}
-		});
-
-		v.setContentProvider(new MyContentProvider());
-
-		v.setInput(createModel());
-	}
-
-	private File createModel() {
-
-		File root = new File(0, null);
-		root.counter = 0;
-
-		File tmp;
-		File subItem;
-		for (int i = 1; i < 10; i++) {
-			tmp = new File(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				subItem = new File(j, tmp);
-				subItem.child.add(new File(j * 100, subItem));
-				tmp.child.add(subItem);
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		try {
-			Display display = new Display();
-
-			Shell shell = new Shell(display);
-			shell.setLayout(new FillLayout());
-			new Snippet061FakedNativeCellEditor(shell);
-			shell.open();
-
-			while (!shell.isDisposed()) {
-				if (!display.readAndDispatch())
-					display.sleep();
-			}
-
-			display.dispose();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	private class MyContentProvider implements ITreeContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((File) inputElement).child.toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-			return ((File) element).parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((File) element).child.size() > 0;
-		}
-
-	}
-
-	public class File {
-		public File parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public boolean read;
-		public boolean write;
-		public boolean execute;
-
-		public File(int counter, File parent) {
-			this.parent = parent;
-			this.counter = counter;
-			this.read = counter % 2 == 0;
-			this.write = counter % 3 == 0;
-			this.execute = counter % 4 == 0;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet62TextAndDialogCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet62TextAndDialogCellEditor.java
deleted file mode 100644
index 00b7ea6..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/Snippet62TextAndDialogCellEditor.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 Eric Rizzo and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Eric Rizzo - initial implementation

- *******************************************************************************/

-

-package org.eclipse.jface.snippets.viewers;

-

-import org.eclipse.jface.viewers.CellEditor;

-import org.eclipse.jface.viewers.ColumnLabelProvider;

-import org.eclipse.jface.viewers.EditingSupport;

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.TableViewer;

-import org.eclipse.jface.viewers.TableViewerColumn;

-import org.eclipse.jface.viewers.TextCellEditor;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.jface.viewers.ViewerCell;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.layout.FillLayout;

-import org.eclipse.swt.widgets.Display;

-import org.eclipse.swt.widgets.Shell;

-

-/**

- * Demonstrates usage of {@link TextAndDialogCellEditor}. The email column uses the

- * TextAndDialogCellEditor; othe columns use ordinary {@link TextCellEditor}s.

- * 

- * @author Eric Rizzo

- * 

- */

-public class Snippet62TextAndDialogCellEditor {

-

-	private class MyContentProvider implements IStructuredContentProvider {

-

-		public Object[] getElements(Object inputElement) {

-			return (Person[]) inputElement;

-		}

-

-		public void dispose() {

-			// noting to do

-		}

-

-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {

-			// noting to do

-		}

-

-	}

-

-	public class Person {

-		public String givenname;

-		public String surname;

-		public String email;

-

-		public Person(String givenname, String surname, String email) {

-			this.givenname = givenname;

-			this.surname = surname;

-			this.email = email;

-		}

-

-		public String toString() {

-			return '[' + givenname + ' ' + surname + ' ' + email + ']';

-		}

-	}

-

-	protected abstract class AbstractEditingSupport extends EditingSupport {

-		private CellEditor editor;

-

-		public AbstractEditingSupport(TableViewer viewer, CellEditor anEditor) {

-			super(viewer);

-			this.editor = anEditor;

-		}

-

-		protected boolean canEdit(Object element) {

-			return editor != null;

-		}

-

-		protected CellEditor getCellEditor(Object element) {

-			return editor;

-		}

-

-		protected void setValue(Object element, Object value) {

-			doSetValue(element, value);

-			getViewer().update(element, null);

-		}

-

-		protected abstract void doSetValue(Object element, Object value);

-	}

-

-	public Snippet62TextAndDialogCellEditor(Shell shell) {

-		TableViewer v = new TableViewer(shell, SWT.BORDER | SWT.FULL_SELECTION);

-		v.setContentProvider(new MyContentProvider());

-

-		TableViewerColumn column = new TableViewerColumn(v, SWT.NONE);

-		column.getColumn().setWidth(200);

-		column.getColumn().setText("Givenname");

-		column.getColumn().setMoveable(true);

-		column.setLabelProvider(new ColumnLabelProvider() {

-

-			public String getText(Object element) {

-				return ((Person) element).givenname;

-			}

-		});

-

-		column.setEditingSupport(new AbstractEditingSupport(v, new TextCellEditor(v.getTable())) {

-

-			protected Object getValue(Object element) {

-				return ((Person) element).givenname;

-			}

-

-			protected void doSetValue(Object element, Object value) {

-				((Person) element).givenname = value.toString();

-			}

-

-		});

-

-		column = new TableViewerColumn(v, SWT.NONE);

-		column.getColumn().setWidth(200);

-		column.getColumn().setText("Surname");

-		column.getColumn().setMoveable(true);

-		column.setLabelProvider(new ColumnLabelProvider() {

-

-			public String getText(Object element) {

-				return ((Person) element).surname;

-			}

-

-		});

-

-		column.setEditingSupport(new AbstractEditingSupport(v, new TextCellEditor(v.getTable())) {

-			protected Object getValue(Object element) {

-				return ((Person) element).surname;

-			}

-

-			protected void doSetValue(Object element, Object value) {

-				((Person) element).surname = value.toString();

-			}

-

-		});

-

-		column = new TableViewerColumn(v, SWT.NONE);

-		column.getColumn().setWidth(200);

-		column.getColumn().setText("E-Mail");

-		column.getColumn().setMoveable(true);

-		column.setLabelProvider(new ColumnLabelProvider() {

-			public String getText(Object element) {

-				return ((Person) element).email;

-			}

-

-		});

-		

-

-		TextAndDialogCellEditor cellEditor = new TextAndDialogCellEditor(v.getTable());

-		cellEditor.setDialogMessage("Enter email address");

-		column.setEditingSupport(new AbstractEditingSupport(v, cellEditor) {

-

-			protected Object getValue(Object element) {

-				return ((Person) element).email;

-			}

-

-			protected void doSetValue(Object element, Object value) {

-				((Person) element).email = value.toString();

-			}

-

-			// Print out the model after each edit to verify its values are updated correctly

-			protected void saveCellEditorValue(CellEditor cellEditor, ViewerCell cell) {

-				super.saveCellEditorValue(cellEditor, cell);

-				System.out.println(cell.getElement());

-			}

-		});

-

-		Person[] model = createModel();

-		v.setInput(model);

-		v.getTable().setLinesVisible(true);

-		v.getTable().setHeaderVisible(true);

-	}

-

-	private Person[] createModel() {

-		Person[] elements = new Person[4];

-		elements[0] = new Person("Tom", "Schindl",

-				"tom.schindl@bestsolution.at");

-		elements[1] = new Person("Boris", "Bokowski",

-				"Boris_Bokowski@ca.ibm.com");

-		elements[2] = new Person("Tod", "Creasey", "Tod_Creasey@ca.ibm.com");

-		elements[3] = new Person("Wayne", "Beaton", "wayne@eclipse.org");

-

-		return elements;

-	}

-

-	/**

-	 * @param args

-	 */

-	public static void main(String[] args) {

-		Display display = new Display();

-

-		Shell shell = new Shell(display);

-		shell.setLayout(new FillLayout());

-		new Snippet62TextAndDialogCellEditor(shell);

-		shell.open();

-

-		while (!shell.isDisposed()) {

-			if (!display.readAndDispatch())

-				display.sleep();

-		}

-

-		display.dispose();

-

-	}

-

-}

diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java
deleted file mode 100644
index 5a91549..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TableCursor.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.viewers;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.AbstractTableViewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-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.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Table;
-
-
-public class TableCursor extends AbstractCellCursor {
-	
-	public TableCursor(AbstractTableViewer viewer) {
-		super(viewer,SWT.NONE);
-	}
-	
-	protected void paint(Event event) {
-		if (getSelectedCells().length == 1 && getSelectedCells()[0] == null) return;
-		ViewerCell cell = getSelectedCells()[0];
-		
-		GC gc = event.gc;
-		Display display = getDisplay();
-		gc.setBackground(getBackground());
-		gc.setForeground(getForeground());
-		gc.fillRectangle(event.x, event.y, event.width, event.height);
-		int x = 0;
-		Point size = getSize();
-		Image image = cell.getImage();
-		if (image != null) {
-			Rectangle imageSize = image.getBounds();
-			int imageY = (size.y - imageSize.height) / 2;
-			gc.drawImage(image, x, imageY);
-			x += imageSize.width;
-		}
-		String text = cell.getText();
-		if (text != "") { //$NON-NLS-1$
-			Rectangle bounds = cell.getBounds();
-			Point extent = gc.stringExtent(text);
-			// Temporary code - need a better way to determine table trim
-			if (Util.isWin32()) {
-				if (((Table)getParent()).getColumnCount() == 0 || cell.getColumnIndex() == 0) {
-					x += 2; 
-				} else {
-					int alignmnent = ((Table)getParent()).getColumn(cell.getColumnIndex()).getAlignment();
-					switch (alignmnent) {
-						case SWT.LEFT:
-							x += 6;
-							break;
-						case SWT.RIGHT:
-							x = bounds.width - extent.x - 6;
-							break;
-						case SWT.CENTER:
-							x += (bounds.width - x - extent.x) / 2;
-							break;
-					}
-				}
-			}  else {
-				if (((Table)getParent()).getColumnCount() == 0) {
-					x += 5; 
-				} else {
-					int alignmnent = ((Table)getParent()).getColumn(cell.getColumnIndex()).getAlignment();
-					switch (alignmnent) {
-						case SWT.LEFT:
-							x += 5;
-							break;
-						case SWT.RIGHT:
-							x = bounds.width- extent.x - 2;
-							break;
-						case SWT.CENTER:
-							x += (bounds.width - x - extent.x) / 2 + 2;
-							break;
-					}
-				}
-			}
-			int textY = (size.y - extent.y) / 2;
-			gc.drawString(text, x, textY);
-		}
-		if (isFocusControl()) {
-			gc.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
-			gc.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
-			gc.drawFocus(0, 0, size.x, size.y);
-		}
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TextAndDialogCellEditor.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TextAndDialogCellEditor.java
deleted file mode 100644
index a6eb255..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/viewers/TextAndDialogCellEditor.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************

- * Copyright (c) 2006 Eric Rizzo and others.

- * All rights reserved. This program and the accompanying materials

- * are made available under the terms of the Eclipse Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/epl-v10.html

- *

- * Contributors:

- *     Eric Rizzo - initial implementation

- *******************************************************************************/

-package org.eclipse.jface.snippets.viewers;

-

-import java.text.MessageFormat;

-

-import org.eclipse.jface.dialogs.InputDialog;

-import org.eclipse.jface.viewers.DialogCellEditor;

-import org.eclipse.jface.window.Window;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.events.FocusAdapter;

-import org.eclipse.swt.events.FocusEvent;

-import org.eclipse.swt.events.KeyAdapter;

-import org.eclipse.swt.events.KeyEvent;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.Text;

-

-/**

- * A CellEditor that is a blending of DialogCellEditor and TextCellEditor. The user can either type

- * directly into the Text or use the button to open a Dialog for editing the cell's value.

- * 

- */

-public class TextAndDialogCellEditor extends DialogCellEditor {

-

-	private Text textField;

-	private String dialogMessage;

-	private String dialogTitle;

-

-

-	public TextAndDialogCellEditor(Composite parent) {

-		super(parent);

-	}

-

-

-	public void setDialogMessage(String dialogMessage) {

-		this.dialogMessage = dialogMessage;

-	}

-

-

-	public void setDialogTitle(String dialogTitle) {

-		this.dialogTitle = dialogTitle;

-	}

-

-

-	protected Control createContents(Composite cell) {

-		textField = new Text(cell, SWT.NONE);

-		textField.setFont(cell.getFont());

-		textField.setBackground(cell.getBackground());

-		textField.addFocusListener(new FocusAdapter() {

-				public void focusLost(FocusEvent event) {

-					 setValueToModel();

-				}

-			});

-

-		textField.addKeyListener(new KeyAdapter() {

-				public void keyPressed(KeyEvent event) {

-					keyReleaseOccured(event);

-				}

-			});

-

-		return textField;

-	}

-

-	protected void keyReleaseOccured(KeyEvent keyEvent) {

-		if (keyEvent.keyCode == SWT.CR || keyEvent.keyCode == SWT.KEYPAD_CR) { // Enter key

-			setValueToModel();

-		}

-		super.keyReleaseOccured(keyEvent);

-	}

-

-	protected void setValueToModel() {

-	 	String newValue = textField.getText();

-        boolean newValidState = isCorrect(newValue);

-        if (newValidState) {

-            markDirty();

-            doSetValue(newValue);

-        } else {

-            // try to insert the current value into the error message.

-            setErrorMessage(MessageFormat.format(getErrorMessage(), new Object[] { newValue.toString() }));

-        }

-	}

-

-	protected void updateContents(Object value) {

-		if (textField == null) {

-			return;

-		}

-

-        String text = "";

-        if (value != null) {

-			text = value.toString();

-		}

-        textField.setText(text);

-		

-	}

-

-	protected void doSetFocus() {

-		// Overridden to set focus to the Text widget instead of the Button.

-		textField.setFocus();

-		textField.selectAll();

-	}

-

-

-	protected Object openDialogBox(Control cellEditorWindow) {

-		InputDialog dialog = new InputDialog(cellEditorWindow.getShell(), dialogTitle, dialogMessage, getDialogInitialValue(), null);

-		if (dialog.open() == Window.OK) {

-			return dialog.getValue();

-		} else {

-			return null;

-		}

-	}

-

-	protected String getDialogInitialValue() {

-		Object value = getValue();

-		if (value == null) {

-			return null;

-		} else {

-			return value.toString();

-		}

-	}

-}

diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java
deleted file mode 100644
index 1d3dcfc..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet020CustomizedControlTooltips.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.window;
-
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.window.DefaultToolTip;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-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.Link;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-/**
- * Demonstrate usage of custom toolstips for controls
- * 
- * @author Tom Schindl
- * 
- */
-public class Snippet020CustomizedControlTooltips {
-	protected class MyToolTip extends ToolTip {
-		
-		private Shell parentShell;
-		
-		private String headerText = "ToolTip-Header";
-		
-		public static final String HEADER_BG_COLOR = Policy.JFACE + ".TOOLTIP_HEAD_BG_COLOR";
-		
-		public static final String HEADER_FG_COLOR = Policy.JFACE + ".TOOLTIP_HEAD_FG_COLOR";
-		
-		public static final String HEADER_FONT = Policy.JFACE + ".TOOLTIP_HEAD_FONT";
-		
-		public static final String HEADER_CLOSE_ICON = Policy.JFACE + ".TOOLTIP_CLOSE_ICON";
-		public static final String HEADER_HELP_ICON = Policy.JFACE + ".TOOLTIP_HELP_ICON";
-		
-		public MyToolTip(Control control) {
-			super(control);
-			this.parentShell = control.getShell();
-		}
-
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			Composite comp = new Composite(parent,SWT.NONE);
-			
-			GridLayout gl = new GridLayout(1,false);
-			gl.marginBottom=0;
-			gl.marginTop=0;
-			gl.marginHeight=0;
-			gl.marginWidth=0;
-			gl.marginLeft=0;
-			gl.marginRight=0;
-			gl.verticalSpacing=1;
-			comp.setLayout(gl);
-			
-			Composite topArea = new Composite(comp,SWT.NONE);
-			GridData data = new GridData(SWT.FILL,SWT.FILL,true,false);
-			data.widthHint=200;
-			topArea.setLayoutData(data);
-			topArea.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			
-			gl = new GridLayout(2,false);
-			gl.marginBottom=2;
-			gl.marginTop=2;
-			gl.marginHeight=0;
-			gl.marginWidth=0;
-			gl.marginLeft=5;
-			gl.marginRight=2;
-			
-			topArea.setLayout(gl);
-			
-			Label l = new Label(topArea,SWT.NONE);
-			l.setText(headerText);
-			l.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			l.setFont(JFaceResources.getFontRegistry().get(HEADER_FONT));
-			l.setForeground(JFaceResources.getColorRegistry().get(HEADER_FG_COLOR));
-			l.setLayoutData(new GridData(GridData.FILL_BOTH));
-			
-			Composite iconComp = new Composite(topArea,SWT.NONE);
-			iconComp.setLayoutData(new GridData());
-			iconComp.setLayout(new GridLayout(2,false));
-			iconComp.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			
-			gl = new GridLayout(2,false);
-			gl.marginBottom=0;
-			gl.marginTop=0;
-			gl.marginHeight=0;
-			gl.marginWidth=0;
-			gl.marginLeft=0;
-			gl.marginRight=0;
-			iconComp.setLayout(gl);
-			
-			Label helpIcon = new Label(iconComp,SWT.NONE);
-			helpIcon.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			helpIcon.setImage(JFaceResources.getImage(HEADER_HELP_ICON));
-			helpIcon.addMouseListener(new MouseAdapter() {
-
-				public void mouseDown(MouseEvent e) {
-					hide();
-					openHelp();
-				}
-			});
-			
-			
-			Label closeIcon = new Label(iconComp,SWT.NONE);
-			closeIcon.setBackground(JFaceResources.getColorRegistry().get(HEADER_BG_COLOR));
-			closeIcon.setImage(JFaceResources.getImage(HEADER_CLOSE_ICON));
-			closeIcon.addMouseListener(new MouseAdapter() {
-
-				public void mouseDown(MouseEvent e) {
-					parentShell.setFocus();
-					hide();
-				}
-			});
-			
-			createContentArea(comp).setLayoutData(new GridData(GridData.FILL_BOTH));
-			
-			return comp;
-		}
-		
-		protected Composite createContentArea(Composite parent) {
-			return new Composite(parent,SWT.NONE);
-		}
-		
-		protected void openHelp() {
-			parentShell.setFocus();
-		}
-	}
-
-	public Snippet020CustomizedControlTooltips(final Shell parent) {
-		JFaceResources.getColorRegistry().put(MyToolTip.HEADER_BG_COLOR, new RGB(255,255,255));
-		JFaceResources.getFontRegistry().put(MyToolTip.HEADER_FONT, JFaceResources.getFontRegistry().getBold(JFaceResources.getDefaultFont().getFontData()[0].getName()).getFontData());
-
-		
-		JFaceResources.getImageRegistry().put(MyToolTip.HEADER_CLOSE_ICON,ImageDescriptor.createFromFile(Snippet020CustomizedControlTooltips.class, "showerr_tsk.gif"));
-		JFaceResources.getImageRegistry().put(MyToolTip.HEADER_HELP_ICON,ImageDescriptor.createFromFile(Snippet020CustomizedControlTooltips.class, "linkto_help.gif"));
-		
-		Text text = new Text(parent,SWT.BORDER);
-		text.setText("Hello World");
-
-		MyToolTip myTooltipLabel = new MyToolTip(text) {
-
-			protected Composite createContentArea(Composite parent) {
-				Composite comp = super.createContentArea(parent);
-				comp.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-				FillLayout layout = new FillLayout();
-				layout.marginWidth=5;
-				comp.setLayout(layout);
-				Link l = new Link(comp,SWT.NONE);
-				l.setText("This a custom tooltip you can: \n- pop up any control you want\n- define delays\n - ... \nGo and get Eclipse M4 from <a>http://www.eclipse.org</a>");
-				l.setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_INFO_BACKGROUND));
-				l.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						openURL();
-					}
-				});
-				return comp;
-			}
-			
-			protected void openURL() {
-				MessageBox box = new MessageBox(parent,SWT.ICON_INFORMATION);
-				box.setText("Eclipse.org");
-				box.setMessage("Here is where we'd open the URL.");
-				box.open();
-			}
-
-			protected void openHelp() {
-				MessageBox box = new MessageBox(parent,SWT.ICON_INFORMATION);
-				box.setText("Info");
-				box.setMessage("Here is where we'd show some information.");
-				box.open();
-			}
-			
-		};
-		myTooltipLabel.setShift(new Point(-5, -5));
-		myTooltipLabel.setHideOnMouseDown(false);
-		myTooltipLabel.activate();
-
-		text = new Text(parent,SWT.BORDER);
-		text.setText("Hello World");
-		DefaultToolTip toolTip = new DefaultToolTip(text);
-		toolTip.setText("Hello World\nHello World");
-		toolTip.setBackgroundColor(parent.getDisplay().getSystemColor(SWT.COLOR_RED));
-		
-		Button b = new Button(parent,SWT.PUSH);
-		b.setText("Popup on press");
-		
-		final DefaultToolTip toolTipDelayed = new DefaultToolTip(b,ToolTip.RECREATE,true);
-		toolTipDelayed.setText("Hello World\nHello World");
-		toolTipDelayed.setBackgroundColor(parent.getDisplay().getSystemColor(SWT.COLOR_RED));
-		toolTipDelayed.setHideDelay(2000);
-		
-		b.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				toolTipDelayed.show(new Point(0,0));
-			}
-		});
-		
-		
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new RowLayout());
-		new Snippet020CustomizedControlTooltips(shell);
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java
deleted file mode 100755
index 8af2088..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet023TreeViewerCustomTooltips.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.window;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-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.TreeItem;
-
-/**
- * A simple TreeViewer to demonstrate how custom tooltips could be created
- * easily. This is an extended version from
- * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet125.java
- * 
- * This code is for users pre 3.3 others could use newly added tooltip support in
- * {@link CellLabelProvider}
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet023TreeViewerCustomTooltips {
-	private class MyContentProvider implements ITreeContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return ((MyModel) inputElement).child.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) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			return getElements(parentElement);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element == null) {
-				return null;
-			}
-
-			return ((MyModel) element).parent;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-			return ((MyModel) element).child.size() > 0;
-		}
-
-	}
-
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-
-	public Snippet023TreeViewerCustomTooltips(Shell shell) {
-		final TreeViewer v = new TreeViewer(shell);
-		v.setLabelProvider(new LabelProvider());
-		v.setContentProvider(new MyContentProvider());
-		v.setInput(createModel());
-		v.getTree().setToolTipText("");
-
-		final Listener labelListener = new Listener () {
-			public void handleEvent (Event event) {
-				Label label = (Label)event.widget;
-				Shell shell = label.getShell ();
-				switch (event.type) {
-					case SWT.MouseDown:
-						Event e = new Event ();
-						e.item = (TreeItem) label.getData ("_TABLEITEM");
-						// Assuming table is single select, set the selection as if
-						// the mouse down event went through to the table
-						v.getTree().setSelection (new TreeItem [] {(TreeItem) e.item});
-						v.getTree().notifyListeners (SWT.Selection, e);
-						shell.dispose ();
-						v.getTree().setFocus();
-						break;
-					case SWT.MouseExit:
-						shell.dispose ();
-						break;
-				}
-			}
-		};
-		
-		Listener treeListener = new Listener () {
-			Shell tip = null;
-			Label label = null;
-			public void handleEvent (Event event) {
-				switch (event.type) {
-					case SWT.Dispose:
-					case SWT.KeyDown:
-					case SWT.MouseMove: {
-						if (tip == null) break;
-						tip.dispose ();
-						tip = null;
-						label = null;
-						break;
-					}
-					case SWT.MouseHover: {
-						Point coords = new Point(event.x, event.y);
-						TreeItem item = v.getTree().getItem(coords);
-						if (item != null) {
-							int columns = v.getTree().getColumnCount();
-
-							for (int i = 0; i < columns || i == 0; i++) {
-								if (item.getBounds(i).contains(coords)) {
-									if (tip != null  && !tip.isDisposed ()) tip.dispose ();
-									tip = new Shell (v.getTree().getShell(), SWT.ON_TOP | SWT.NO_FOCUS | SWT.TOOL);
-									tip.setBackground (v.getTree().getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-									FillLayout layout = new FillLayout ();
-									layout.marginWidth = 2;
-									tip.setLayout (layout);
-									label = new Label (tip, SWT.NONE);
-									label.setForeground (v.getTree().getDisplay().getSystemColor (SWT.COLOR_INFO_FOREGROUND));
-									label.setBackground (v.getTree().getDisplay().getSystemColor (SWT.COLOR_INFO_BACKGROUND));
-									label.setData ("_TABLEITEM", item);
-									label.setText ("Tooltip: " + item.getData()+ " => Column: " + i);
-									label.addListener (SWT.MouseExit, labelListener);
-									label.addListener (SWT.MouseDown, labelListener);
-									Point size = tip.computeSize (SWT.DEFAULT, SWT.DEFAULT);
-									Rectangle rect = item.getBounds (i);
-									Point pt = v.getTree().toDisplay (rect.x, rect.y);
-									tip.setBounds (pt.x, pt.y, size.x, size.y);
-									tip.setVisible (true);
-									break;
-								}
-							}
-						}
-					}
-				}
-			}
-		};
-		v.getTree().addListener (SWT.Dispose, treeListener);
-		v.getTree().addListener (SWT.KeyDown, treeListener);
-		v.getTree().addListener (SWT.MouseMove, treeListener);
-		v.getTree().addListener (SWT.MouseHover, treeListener);
-	}
-
-	private MyModel createModel() {
-
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 10; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		return root;
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet023TreeViewerCustomTooltips(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java
deleted file mode 100644
index b3ba771..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/Snippet031TableStaticTooltip.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Tom Schindl and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Tom Schindl - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.snippets.window;
-
-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.jface.window.DefaultToolTip;
-import org.eclipse.jface.window.ToolTip;
-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.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Example how one can create a tooltip which is not recreated for every table
- * cell
- * 
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * 
- */
-public class Snippet031TableStaticTooltip {
-	private static Image[] images;
-
-	private class MyContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return (MyModel[]) 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) {
-
-		}
-
-	}
-
-	public class MyModel {
-		public int counter;
-
-		public MyModel(int counter) {
-			this.counter = counter;
-		}
-
-		public String toString() {
-			return "Item " + this.counter;
-		}
-	}
-
-	public class MyLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			if (columnIndex == 1) {
-				return images[((MyModel) element).counter % 4];
-			}
-
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			return "Column " + columnIndex + " => " + element.toString();
-		}
-
-	}
-
-	private static Image createImage(Display display, int red, int green,
-			int blue) {
-		Color color = new Color(display, red, green, blue);
-		Image image = new Image(display, 10, 10);
-		GC gc = new GC(image);
-		gc.setBackground(color);
-		gc.fillRectangle(0, 0, 10, 10);
-		gc.dispose();
-
-		return image;
-	}
-
-	public Snippet031TableStaticTooltip(Shell shell) {
-		final TableViewer v = new TableViewer(shell, SWT.BORDER
-				| SWT.FULL_SELECTION);
-		v.setLabelProvider(new MyLabelProvider());
-		v.setContentProvider(new MyContentProvider());
-
-		TableColumn column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 1");
-
-		column = new TableColumn(v.getTable(), SWT.NONE);
-		column.setWidth(200);
-		column.setText("Column 2");
-
-		MyModel[] model = createModel();
-		v.setInput(model);
-		v.getTable().setLinesVisible(true);
-		v.getTable().setHeaderVisible(true);
-
-		DefaultToolTip toolTip = new DefaultToolTip(v.getControl(),
-				ToolTip.NO_RECREATE, false);
-		toolTip.setText("Hello World\nHello World");
-		toolTip.setBackgroundColor(v.getTable().getDisplay().getSystemColor(
-				SWT.COLOR_RED));
-		toolTip.setShift(new Point(10, 5));
-	}
-
-	private MyModel[] createModel() {
-		MyModel[] elements = new MyModel[10];
-
-		for (int i = 0; i < 10; i++) {
-			elements[i] = new MyModel(i);
-		}
-
-		return elements;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		images = new Image[4];
-		images[0] = createImage(display, 0, 0, 255);
-		images[1] = createImage(display, 0, 255, 255);
-		images[2] = createImage(display, 0, 255, 0);
-		images[3] = createImage(display, 255, 0, 255);
-
-		Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-		new Snippet031TableStaticTooltip(shell);
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		for (int i = 0; i < images.length; i++) {
-			images[i].dispose();
-		}
-
-		display.dispose();
-
-	}
-
-}
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif
deleted file mode 100644
index 86550fe..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/linkto_help.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif
deleted file mode 100644
index 2ff6678..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/window/showerr_tsk.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java b/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java
deleted file mode 100644
index 20b649c..0000000
--- a/examples/org.eclipse.jface.snippets/Eclipse JFace Snippets/org/eclipse/jface/snippets/wizard/Snippet047WizardWithLongRunningOperation.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.snippets.wizard;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-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.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Example how to load data from a background thread into a TableViewer
- *
- * @author Tom Schindl <tom.schindl@bestsolution.at>
- * @since 1.0
- */
-public class Snippet047WizardWithLongRunningOperation {
-
-	private static class MyWizard extends Wizard {
-
-		private int loadingType;
-
-		public MyWizard(int loadingType) {
-			this.loadingType = loadingType;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.wizard.Wizard#addPages()
-		 */
-		public void addPages() {
-			addPage(new MyWizardPage("Standard Page"));
-			addPage(new MyWizardPageThread("Thread Page", loadingType));
-		}
-
-		public boolean performFinish() {
-			return true;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 *
-		 * @see org.eclipse.jface.wizard.Wizard#canFinish()
-		 */
-		public boolean canFinish() {
-			IWizardPage[] pages = getPages();
-			for (int i = 0; i < pages.length; i++) {
-				if (!pages[i].isPageComplete()) {
-					return false;
-				}
-			}
-
-			return true;
-		}
-
-	};
-
-	private static class MyWizardPage extends WizardPage {
-
-		protected MyWizardPage(String pageName) {
-			super(pageName);
-			setTitle(pageName);
-		}
-
-		public void createControl(Composite parent) {
-			Composite comp = new Composite(parent, SWT.NONE);
-			setControl(comp);
-		}
-	}
-
-	private static class MyWizardPageThread extends WizardPage {
-		private int loadingType;
-		private boolean loading = true;
-		private TableViewer v;
-
-		protected MyWizardPageThread(String pageName, int loadingType) {
-			super(pageName);
-			this.loadingType = loadingType;
-			setTitle(pageName);
-		}
-
-		public void createControl(final Composite parent) {
-			final Composite comp = new Composite(parent, SWT.NONE);
-			comp.setLayout(new GridLayout(1, false));
-
-			v = new TableViewer(comp, SWT.FULL_SELECTION);
-			v.setContentProvider(new ArrayContentProvider());
-			v.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
-			v.addSelectionChangedListener(new ISelectionChangedListener() {
-
-				public void selectionChanged(SelectionChangedEvent event) {
-					getWizard().getContainer().updateButtons();
-				}
-
-			});
-
-			final Composite barContainer = new Composite(comp, SWT.NONE);
-			barContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			barContainer.setLayout(new GridLayout(2, false));
-
-			Label l = new Label(barContainer, SWT.NONE);
-			l.setText("Loading Data");
-
-			final ProgressBar bar = new ProgressBar(barContainer,
-					(loadingType == 1) ? SWT.INDETERMINATE : SWT.NONE);
-			bar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			if (loadingType == 2) {
-				bar.setMaximum(10);
-			}
-
-			setControl(comp);
-
-			Thread t = new Thread() {
-
-				public void run() {
-					if (loadingType == 1) {
-						try {
-							Thread.sleep(10000);
-							final ArrayList ms = new ArrayList();
-							for (int i = 0; i < 10; i++) {
-								ms.add(new MyModel(i));
-							}
-
-							if (v.getTable().isDisposed()) {
-								return;
-							}
-
-							parent.getDisplay().asyncExec(new Runnable() {
-
-								public void run() {
-									v.setInput(ms);
-									((GridData) barContainer.getLayoutData()).exclude = true;
-									comp.layout(true);
-								}
-
-							});
-						} catch (InterruptedException e) {
-							// TODO Auto-generated catch block
-							e.printStackTrace();
-						}
-					} else {
-						final ArrayList ms = new ArrayList();
-						parent.getDisplay().syncExec(new Runnable() {
-
-							public void run() {
-								v.setInput(ms);
-							}
-
-						});
-
-						for (int i = 0; i < 10; i++) {
-							final int j = i;
-							if (v.getTable().isDisposed()) {
-								return;
-							}
-							parent.getDisplay().asyncExec(new Runnable() {
-
-								public void run() {
-									MyModel tmp = new MyModel(j);
-									v.add(tmp);
-									ms.add(tmp);
-									bar.setSelection(j + 1);
-								}
-							});
-
-							try {
-								Thread.sleep(1000);
-							} catch (InterruptedException e) {
-								// TODO Auto-generated catch block
-								e.printStackTrace();
-							}
-						}
-
-						parent.getDisplay().asyncExec(new Runnable() {
-
-							public void run() {
-								((GridData) barContainer.getLayoutData()).exclude = true;
-								comp.layout(true);
-							}
-
-						});
-					}
-
-					parent.getDisplay().syncExec(new Runnable() {
-
-						public void run() {
-							loading = false;
-							getWizard().getContainer().updateButtons();
-						}
-
-					});
-				}
-
-			};
-
-			t.start();
-		}
-
-		public boolean isPageComplete() {
-			return !loading && !v.getSelection().isEmpty();
-		}
-
-	}
-
-	private static class MyModel {
-		private int index;
-
-		public MyModel(int index) {
-			this.index = index;
-		}
-
-		public String toString() {
-			return "Item-" + index;
-		}
-	}
-
-	public static void main(String[] args) {
-		Display display = new Display();
-
-		final Shell shell = new Shell(display);
-		shell.setLayout(new FillLayout());
-
-		Button b = new Button(shell, SWT.PUSH);
-		b.setText("Load in one Chunk");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				WizardDialog dialog = new WizardDialog(shell, new MyWizard(1));
-				dialog.open();
-			}
-
-		});
-
-		b = new Button(shell, SWT.PUSH);
-		b.setText("Load Item by Item");
-		b.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				WizardDialog dialog = new WizardDialog(shell, new MyWizard(2));
-				dialog.open();
-			}
-
-		});
-
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch())
-				display.sleep();
-		}
-
-		display.dispose();
-	}
-}
diff --git a/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF b/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
deleted file mode 100644
index 6f9a9e3..0000000
--- a/examples/org.eclipse.jface.snippets/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JFace Snippets Plug-in
-Bundle-SymbolicName: org.eclipse.jface.snippets
-Bundle-Version: 3.3.0.qualifier
-Bundle-Vendor: Eclipse.org
-Require-Bundle: org.eclipse.jface,
- org.eclipse.jface.databinding,
- org.eclipse.core.runtime
-Export-Package: org.eclipse.jface.snippets.dialogs,
- org.eclipse.jface.snippets.layout,
- org.eclipse.jface.snippets.viewers,
- org.eclipse.jface.snippets.window
diff --git a/examples/org.eclipse.jface.snippets/build.properties b/examples/org.eclipse.jface.snippets/build.properties
deleted file mode 100644
index c907c60..0000000
--- a/examples/org.eclipse.jface.snippets/build.properties
+++ /dev/null
@@ -1,14 +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
-###############################################################################
-source.. = Eclipse JFace Snippets/
-output.. = bin/
-bin.includes = META-INF/,\
-               .
diff --git a/examples/org.eclipse.ui.examples.contributions/.classpath b/examples/org.eclipse.ui.examples.contributions/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.contributions/.project b/examples/org.eclipse.ui.examples.contributions/.project
deleted file mode 100644
index 1f60479..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.contributions</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/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index a49b5f1..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,59 +0,0 @@
-#Mon Nov 27 18:05:52 GMT 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 455940f..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Sun Mar 09 10:51:28 EDT 2008
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.4\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index d8e8469..0000000
--- a/examples/org.eclipse.ui.examples.contributions/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Nov 16 14:12:29 EST 2004
-compilers.p.unused-element-or-attribute=1
-compilers.p.unresolved-ex-points=0
-compilers.p.deprecated=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unknown-class=1
-compilers.p.unknown-attribute=0
-compilers.p.no-required-att=0
-eclipse.preferences.version=1
-compilers.p.unresolved-import=0
-compilers.p.not-externalized-att=0
-compilers.p.illegal-att-value=0
-compilers.use-project=true
diff --git a/examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF
deleted file mode 100644
index 4be57e1..0000000
--- a/examples/org.eclipse.ui.examples.contributions/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %contributions.Activator.name
-Bundle-SymbolicName: org.eclipse.ui.examples.contributions; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-Activator: org.eclipse.ui.examples.contributions.Activator
-Require-Bundle: org.eclipse.ui;bundle-version="[3.3.0,4.0.0)",
- org.eclipse.core.runtime,
- org.eclipse.core.expressions;bundle-version="[3.3.0,4.0.0)"
-Bundle-Vendor: %contributions.Activator.providerName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.ui.examples.contributions/about.html b/examples/org.eclipse.ui.examples.contributions/about.html
deleted file mode 100755
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.contributions/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.contributions/build.properties b/examples/org.eclipse.ui.examples.contributions/build.properties
deleted file mode 100644
index 858ae6b..0000000
--- a/examples/org.eclipse.ui.examples.contributions/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               about.html,\
-               plugin.properties
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif b/examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif
deleted file mode 100755
index ce8bdb9..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/change_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/editor.gif b/examples/org.eclipse.ui.examples.contributions/icons/editor.gif
deleted file mode 100755
index c48d9a9..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/editor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif b/examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif
deleted file mode 100644
index 7aea894..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/new_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/perspective.gif b/examples/org.eclipse.ui.examples.contributions/icons/perspective.gif
deleted file mode 100644
index 008fd7a..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/perspective.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/sample.gif b/examples/org.eclipse.ui.examples.contributions/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/icons/sample2.gif b/examples/org.eclipse.ui.examples.contributions/icons/sample2.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/examples/org.eclipse.ui.examples.contributions/icons/sample2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/info.product b/examples/org.eclipse.ui.examples.contributions/info.product
deleted file mode 100644
index 1d3d278..0000000
--- a/examples/org.eclipse.ui.examples.contributions/info.product
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="%info.product.name" id="org.eclipse.ui.examples.contributions.product" application="org.eclipse.ui.examples.contributions.application" useFeatures="false">
-
-   <aboutInfo>
-      <image path="product_lg.gif"/>
-      <text>
-         RCP Info product modified from the RCP Mail template
-      </text>
-   </aboutInfo>
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
-   </launcherArgs>
-
-   <windowImages i16="icons/sample2.gif"/>
-
-
-   <launcher>
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-
-   <vm>
-   </vm>
-
-   <plugins>
-      <plugin id="com.ibm.icu"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.databinding"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
-      <plugin id="org.eclipse.equinox.app"/>
-      <plugin id="org.eclipse.equinox.common"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.jface.databinding"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.examples.contributions"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/examples/org.eclipse.ui.examples.contributions/plugin.properties b/examples/org.eclipse.ui.examples.contributions/plugin.properties
deleted file mode 100644
index abf2551..0000000
--- a/examples/org.eclipse.ui.examples.contributions/plugin.properties
+++ /dev/null
@@ -1,74 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-contributions.Activator.name =  Command Contribution Examples
-contributions.Activator.providerName = Eclipse.org
-
-contributions.commands.category.name = Info Category
-contributions.commands.category.desc = Group info example contributions
-contributions.commands.globalCommand.name = Global Command
-contributions.globalActionSet.label = Global Action Set
-contributions.menus.globalMenu.label = Global Menu
-contributions.menus.globalMenu.mnemonic = M
-contributions.menus.globalCommand.mnemonic = G
-contributions.toolbars.globalCommand.tooltip = Say hello to the world
-
-contributions.viewCategory.name = View Contributions
-contributions.view.name = Info View
-contributions.view.count.name = Count Entries
-contributions.view.count.desc = Count the entries in the active view
-contributions.view.count.mnemonic = o
-contributions.view.swap.name = Swap Entries
-contributions.view.swap.tooltip = Swap the two selected entries
-contributions.view.refresh.mnemonic = R
-contributions.view.edit.name = Edit
-contributions.view.edit.mnemonic = E
-contributions.view.context.name = Info View Context
-
-contributions.editor.name = Info Editor
-contributions.editor.about.name = About Info Editor 
-contributions.editor.reset.name = Reset
-contributions.editor.reset.mnemonic = R
-contributions.editor.menu.label = Info
-contributions.editor.menu.mnemonic = I
-contributions.editor.delta.name = Show Delta
-contributions.editor.delta.tooltip = Show which fields have changed from the model
-
-
-CmdLabel=Test Trim Cmd
-Trim.item=Trim Item
-TrimItem.toolTip=TrimItem ToolTip
-Trim2.item=Trim Item 2
-TrimItem2.toolTip=TrimItem 2 ToolTip
-
-application.name = Contribution Application
-info.perspective.name = Info Perspective
-info.product.name = RCP Info Product
-menu.file.label = File
-menu.file.mnemonic = F
-menu.window.label = Window
-menu.window.mnemonic = W
-menu.help.label = Help
-menu.help.mnemonic = H
-person.category.name = Person
-person.wizard.name = Person
-scheme.info.name = Info Scheme
-command.new.tooltip = New Person
-command.exit.mnemonic = x
-command.newWindow.mnemonic = N
-command.aboutAction.mnemonic = A
-command.refresh.mnemonic = f
-command.activate.name = Activate Editor
-commandParameter.activate.index.name = Person index
-command.adminRights.name = Has Admin Rights
-command.adminRights.mnemonic = H
-command.login.name = Login
-command.login.mnemonic = L
-command.aboutXml.label = About XML
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.contributions/plugin.xml b/examples/org.eclipse.ui.examples.contributions/plugin.xml
deleted file mode 100644
index 96fe1f8..0000000
--- a/examples/org.eclipse.ui.examples.contributions/plugin.xml
+++ /dev/null
@@ -1,739 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-
-   <!-- A command with a default handler, effectively global but it can -->
-   <!-- be overriden by part contributions -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="%contributions.commands.category.name"
-            description="%contributions.commands.category.desc"
-            id="org.eclipse.ui.examples.contributions.commands.category">
-      </category>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            defaultHandler="org.eclipse.ui.examples.contributions.handlers.GlobalMenuHandler"
-            id="org.eclipse.ui.examples.contributions.commands.globalCommand"
-            name="%contributions.commands.globalCommand.name">
-      </command>
-   </extension>
-   
-   <!-- Binding CTRL+6 to the global command -->
-   <extension
-         point="org.eclipse.ui.bindings">
-      <scheme
-            id="org.eclipse.ui.examples.contributions.scheme"
-            name="%scheme.info.name">
-      </scheme>
-      <key
-            commandId="org.eclipse.ui.examples.contributions.commands.globalCommand"
-            contextId="org.eclipse.ui.contexts.window"
-            sequence="M1+6"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.exit"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+Q">
-      </key>
-      <key
-            commandId="org.eclipse.ui.window.newWindow"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+N">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.save"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+S">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.saveAll"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+SHIFT+S">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.close"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+W">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.closeAll"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+SHIFT+W">
-      </key>
-      <key
-            commandId="org.eclipse.ui.window.showViewMenu"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+F10">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.refresh"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="F5">
-      </key>
-   </extension>
-   
-   <!-- placing the global command in the main menu and main toolbar with a -->
-   <!-- condition.  You can do it without a condition but that's extremely  -->
-   <!-- uncommon. You can treat an actionSet like a context within the --> 
-   <!-- condition. -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            id="org.eclipse.ui.examples.contributions.globalActionSet"
-            label="%contributions.globalActionSet.label"
-            visible="false">
-      </actionSet>
-   </extension>
-   
-   <!-- You can reuse expressions for conditions by defining them once -->
-   <extension
-         point="org.eclipse.core.expressions.definitions">
-      <definition
-            id="org.eclipse.ui.examples.contributions.inGlobalActionSet">
-         <with
-               variable="activeContexts">
-            <iterate
-                  operator="or">
-               <equals
-                     value="org.eclipse.ui.examples.contributions.globalActionSet">
-               </equals>
-            </iterate>
-         </with>
-      </definition>
-      <definition
-            id="org.eclipse.ui.examples.contributions.view.inView">
-         <with
-               variable="activePartId">
-            <equals
-                  value="org.eclipse.ui.examples.contributions.view">
-            </equals>
-         </with>
-      </definition>
-      <definition
-            id="org.eclipse.ui.examples.contributions.view.activeEditor">
-         <with
-               variable="activeEditorId">
-            <equals
-                  value="org.eclipse.ui.examples.contributions.editor">
-            </equals>
-         </with>
-      </definition>
-   </extension>
-   
-   <!-- menus are defined hierarchically from a root, and separate from -->
-   <!-- toolbars. -->
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
-         <menu
-               label="%contributions.menus.globalMenu.label"
-               mnemonic="%contributions.menus.globalMenu.label"
-               id="org.eclipse.ui.examples.contributions.menus.globalMenu">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.commands.globalCommand"
-                  mnemonic="%contributions.menus.globalCommand.mnemonic"
-                  id="org.eclipse.ui.examples.contributions.menus.globalCommand">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.inGlobalActionSet">
-                  </reference>
-               </visibleWhen>
-            </command>
-            <separator
-                  name="additions"
-                  visible="false">
-            </separator>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.toolbars.sampleToolbar">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.commands.globalCommand"
-                  icon="icons/sample.gif"
-                  tooltip="%contributions.toolbars.globalCommand.tooltip"
-                  id="org.eclipse.ui.examples.contributions.toolbars.globalCommand">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.inGlobalActionSet">
-                  </reference>
-               </visibleWhen>
-            </command>
-            <separator
-                  name="additions"
-                  visible="false">
-            </separator>
-         </toolbar>
-      </menuContribution>
-   </extension>
-   
-   <!-- Create a view and some view commands -->
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.ui.examples.contributions.viewCategory"
-            name="%contributions.viewCategory.name">
-      </category>
-      <view
-            category="org.eclipse.ui.examples.contributions.viewCategory"
-            class="org.eclipse.ui.examples.contributions.view.InfoView"
-            id="org.eclipse.ui.examples.contributions.view"
-            name="%contributions.view.name">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.count"
-            description="%contributions.view.count.desc"
-            name="%contributions.view.count.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.swap"
-            name="%contributions.view.swap.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.edit"
-            name="%contributions.view.edit.name">
-      </command>
-      <command
-            id="org.eclipse.ui.examples.contributions.editor.infoAbout"
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            name="%contributions.editor.about.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.view.adminRights"
-            name="%command.adminRights.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            defaultHandler="org.eclipse.ui.examples.contributions.view.LoginHandler"
-            id="org.eclipse.ui.examples.contributions.view.login"
-            name="%command.login.name">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.examples.contributions.view?after=additions">
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.count"
-               mnemonic="%contributions.view.count.mnemonic">
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.edit"
-               mnemonic="%contributions.view.edit.mnemonic">
-         </command>
-         <command
-               commandId="org.eclipse.ui.file.refresh"
-               mnemonic="%contributions.view.refresh.mnemonic">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.examples.contributions.view?after=additions">
-         <command
-               commandId="org.eclipse.ui.newWizard"
-               icon="icons/new_wiz.gif"
-               style="push"
-               tooltip="%command.new.tooltip">
-            <parameter
-                  name="newWizardId"
-                  value="org.eclipse.ui.examples.contributions.wizard.newPerson">
-            </parameter>
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.swap"
-               label="%contributions.view.swap.name"
-               tooltip="%contributions.view.swap.tooltip">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.examples.contributions.view?after=additions">
-         <command
-               commandId="org.eclipse.ui.file.refresh"
-               mnemonic="%contributions.view.refresh.mnemonic">
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.login"
-               mnemonic="%command.login.mnemonic"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.adminRights"
-               mnemonic="%command.adminRights.mnemonic"
-               style="toggle">
-            <visibleWhen
-                  checkEnabled="true">
-            </visibleWhen>
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.popup.any?after=additions">
-         <command
-               commandId="org.eclipse.ui.examples.contributions.view.edit"
-               mnemonic="%contributions.view.edit.mnemonic">
-            <visibleWhen>
-               <with
-                     variable="activeMenuSelection">
-                  <iterate>
-                     <adapt
-                           type="org.eclipse.ui.examples.contributions.model.Person">
-                     </adapt>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:help?after=additions">
-         <command
-               commandId="org.eclipse.ui.examples.contributions.editor.infoAbout"
-               style="push">
-            <visibleWhen
-                  checkEnabled="true">
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.RefreshInfoHandler"
-            commandId="org.eclipse.ui.file.refresh">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.inView">
-            </reference>
-         </activeWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.SwapInfoHandler"
-            commandId="org.eclipse.ui.examples.contributions.view.swap">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.inView">
-            </reference>
-         </activeWhen>
-         <enabledWhen>
-            <with
-                  variable="selection">
-               <count
-                     value="2">
-               </count>
-            </with>
-         </enabledWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.EditInfoHandler"
-            commandId="org.eclipse.ui.examples.contributions.view.edit">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.inView">
-            </reference>
-         </activeWhen>
-         <enabledWhen>
-            <with
-                  variable="selection">
-               <count
-                     value="1">
-               </count>
-            </with>
-         </enabledWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.handlers.InfoAboutHandler"
-            commandId="org.eclipse.ui.examples.contributions.editor.infoAbout">
-         <enabledWhen>
-            <with
-                  variable="activePart">
-               <instanceof
-                     value="org.eclipse.ui.examples.contributions.view.InfoView">
-               </instanceof>
-            </with>
-         </enabledWhen>
-      </handler>
-      <handler
-            class="org.eclipse.ui.examples.contributions.view.AdminHandler"
-            commandId="org.eclipse.ui.examples.contributions.view.adminRights">
-         <enabledWhen>
-            <and>
-               <count
-                     value="1">
-               </count>
-               <iterate>
-                  <instanceof
-                        value="org.eclipse.ui.examples.contributions.model.Person">
-                  </instanceof>
-               </iterate>
-               <with
-                     variable="org.eclipse.ui.examples.contributions.user">
-                  <test
-                        property="org.eclipse.ui.examples.contributions.user.isAdmin"
-                        value="true">
-                  </test>
-               </with>
-            </and>
-         </enabledWhen>
-      </handler>
-   </extension>
-   <extension
-         point="org.eclipse.ui.contexts">
-      <context
-            id="org.eclipse.ui.examples.contributions.view.context"
-            name="%contributions.view.context.name"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.ui.examples.contributions.view.edit"
-            contextId="org.eclipse.ui.examples.contributions.view.context"
-            sequence="M1+O"
-            schemeId="org.eclipse.ui.examples.contributions.scheme">
-      </key>
-      <key
-            commandId="org.eclipse.ui.newWizard"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.examples.contributions.scheme"
-            sequence="CTRL+SHIFT+P">
-            <parameter
-                  id="newWizardId"
-                  value="org.eclipse.ui.examples.contributions.wizard.newPerson">
-            </parameter>
-      </key>
-   </extension>
-   
-   <!-- Add an editor for the Person model and some commands -->
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            class="org.eclipse.ui.examples.contributions.editor.InfoEditor"
-            icon="icons/editor.gif"
-            id="org.eclipse.ui.examples.contributions.editor"
-            name="%contributions.editor.name">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.editor.reset"
-            name="%contributions.editor.reset.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            id="org.eclipse.ui.examples.contributions.editor.delta"
-            name="%contributions.editor.delta.name">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.examples.contributions.commands.category"
-            defaultHandler="org.eclipse.ui.examples.contributions.editor.ActivateEditorHandler"
-            id="org.eclipse.ui.examples.contributions.editor.activate"
-            name="%command.activate.name">
-         <commandParameter
-               id="org.eclipse.ui.examples.contributions.editor.activate.index"
-               name="%commandParameter.activate.index.name"
-               optional="false"
-               typeId="org.eclipse.ui.examples.contributions.IntegerType">
-         </commandParameter>
-      </command>
-      <commandParameterType
-            converter="org.eclipse.ui.examples.contributions.editor.IntegerTypeConverter"
-            id="org.eclipse.ui.examples.contributions.IntegerType"
-            type="java.lang.Integer">
-      </commandParameterType>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
-         <menu
-               id="org.eclipse.ui.examples.contributions.editor.menu"
-               label="%contributions.editor.menu.label"
-               mnemonic="%contributions.editor.menu.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.editor.reset"
-                  mnemonic="%contributions.editor.reset.mnemonic">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.view.activeEditor">
-                  </reference>
-               </visibleWhen>
-            </command>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.editor.toolbar">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.editor.delta"
-                  icon="icons/change_obj.gif"
-                  tooltip="%contributions.editor.delta.tooltip">
-               <visibleWhen>
-                  <reference
-                        definitionId="org.eclipse.ui.examples.contributions.view.activeEditor">
-                  </reference>
-               </visibleWhen>
-            </command>
-         </toolbar>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.ui.examples.contributions.editor.DeltaInfoHandler"
-            commandId="org.eclipse.ui.examples.contributions.editor.delta">
-         <activeWhen>
-            <reference
-                  definitionId="org.eclipse.ui.examples.contributions.view.activeEditor">
-            </reference>
-         </activeWhen>
-      </handler>
-   </extension>
-   
-   <!-- adding a control and commands to the trim -->
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.trim.status">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.verticalTrim">
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.item2"
-                  icon="icons/editor.gif"
-                  id="contributions.trimItem"
-                  label="%Trim.item"
-                  tooltip="%TrimItem.toolTip">
-            </command>
-            <control
-                  class="org.eclipse.ui.examples.contributions.ExampleControlContribution"
-                  id="contributions.controlContrib1">
-            </control>
-            <command
-                  commandId="org.eclipse.ui.examples.contributions.item2"
-                  icon="icons/editor.gif"
-                  id="contributions.trimItem2"
-                  label="%Trim2.item"
-                  tooltip="%TrimItem2.toolTip">
-            </command>
-         </toolbar>
-      </menuContribution>
-      <!-- this is an example of an object contribution -->
-      <menuContribution
-            locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
-         <command
-               commandId="org.eclipse.ui.help.aboutAction"
-               label="%command.aboutXml.label"
-               style="push">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="activeMenuSelection">
-                  <count
-                        value="1">
-                  </count>
-                  <iterate>
-                     <!-- I know it can't find this, just ignore it -->
-                     <adapt
-                           type="org.eclipse.core.resources.IFile">
-                        <test
-                              property="org.eclipse.core.resources.name"
-                              value="*.xml">
-                        </test>
-                        <test
-                              property="org.eclipse.core.resources.contentTypeId"
-                              value="org.eclipse.ant.core.antBuildFile">
-                        </test>
-                     </adapt>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.eclipse.ui.examples.contributions.item2"
-            name="%CmdLabel">
-      </command>
-   </extension>
-   <extension
-         id="application"
-         name="%application.name"
-         point="org.eclipse.core.runtime.applications">
-      <application
-            cardinality="singleton-global"
-            thread="main"
-            visible="true">
-         <run
-               class="org.eclipse.ui.examples.contributions.rcp.ContributionApplication">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.ui.examples.contributions.rcp.Perspective"
-            fixed="true"
-            icon="icons/perspective.gif"
-            id="org.eclipse.ui.examples.contributions.perspective"
-            name="%info.perspective.name">
-      </perspective>
-   </extension>
-   <extension
-         id="product"
-         point="org.eclipse.core.runtime.products">
-      <product
-            application="org.eclipse.ui.examples.contributions.application"
-            name="%info.product.name">
-         <property
-               name="windowImages"
-               value="icons/sample2.gif">
-         </property>
-         <property
-               name="aboutText"
-               value="RCP Info product modified from the RCP Mail template">
-         </property>
-         <property
-               name="aboutImage"
-               value="product_lg.gif">
-         </property>
-         <property
-               name="appName"
-               value="%info.product.name">
-         </property>
-      </product>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               id="file"
-               label="%menu.file.label"
-               mnemonic="%menu.file.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.file.refresh"
-                  mnemonic="%command.refresh.mnemonic"
-                  style="push">
-            </command>
-            <separator
-                  name="sep1"
-                  visible="true">
-            </separator>
-            <command
-                  commandId="org.eclipse.ui.file.exit"
-                  mnemonic="%command.exit.mnemonic"
-                  style="push">
-            </command>
-         </menu>
-         <separator
-               name="additions"
-               visible="false">
-         </separator>
-         <menu
-               id="window"
-               label="%menu.window.label"
-               mnemonic="%menu.window.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.window.newWindow"
-                  mnemonic="%command.newWindow.mnemonic"
-                  style="push">
-            </command>
-            <separator
-                  name="sep1"
-                  visible="true">
-            </separator>
-            <dynamic
-                  class="org.eclipse.ui.examples.contributions.editor.DynamicEditorList"
-                  id="org.eclipse.ui.tutorials.commands.dynamicEditorList">
-            </dynamic>
-         </menu>
-         <menu
-               id="help"
-               label="%menu.help.label"
-               mnemonic="%menu.help.mnemonic">
-            <command
-                  commandId="org.eclipse.ui.help.aboutAction"
-                  mnemonic="%command.aboutAction.mnemonic"
-                  style="push">
-            </command>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.main.toolbar">
-         <toolbar
-               id="org.eclipse.ui.examples.contributions.group.file">
-            <command
-                  commandId="org.eclipse.ui.file.save"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.file.saveAll"
-                  style="push">
-            </command>
-         </toolbar>
-         <separator
-               name="additions"
-               visible="false">
-         </separator>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.services">
-      <serviceFactory
-            factoryClass="org.eclipse.ui.examples.contributions.model.PersonServiceFactory">
-         <service
-               serviceClass="org.eclipse.ui.examples.contributions.model.IPersonService"/>
-      </serviceFactory>
-      <sourceProvider
-            provider="org.eclipse.ui.examples.contributions.model.UserSourceProvider">
-         <variable
-               name="org.eclipse.ui.examples.contributions.user"
-               priorityLevel="activeSite">
-         </variable>
-      </sourceProvider>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            id="org.eclipse.ui.examples.contributions.wizardCategory"
-            name="%person.category.name">
-      </category>
-      <wizard
-            category="org.eclipse.ui.examples.contributions.wizardCategory"
-            class="org.eclipse.ui.examples.contributions.model.PersonWizard"
-            id="org.eclipse.ui.examples.contributions.wizard.newPerson"
-            name="%person.wizard.name">
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.eclipse.ui.examples.contributions.model.UserPropertyTester"
-            id="org.eclipse.ui.examples.contributions.user.propertyTester"
-            namespace="org.eclipse.ui.examples.contributions.user"
-            properties="isAdmin,id"
-            type="org.eclipse.ui.examples.contributions.model.Person">
-      </propertyTester>
-   </extension>
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.contributions/plugin_customization.ini b/examples/org.eclipse.ui.examples.contributions/plugin_customization.ini
deleted file mode 100644
index 589ade4..0000000
--- a/examples/org.eclipse.ui.examples.contributions/plugin_customization.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.examples.contributions.scheme
-org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = false
diff --git a/examples/org.eclipse.ui.examples.contributions/product_lg.gif b/examples/org.eclipse.ui.examples.contributions/product_lg.gif
deleted file mode 100644
index bd95e28..0000000
--- a/examples/org.eclipse.ui.examples.contributions/product_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/splash.bmp b/examples/org.eclipse.ui.examples.contributions/splash.bmp
deleted file mode 100644
index d7d2e30..0000000
--- a/examples/org.eclipse.ui.examples.contributions/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java
deleted file mode 100644
index 4451e57..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/Activator.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle.
- * 
- * @since 3.3
- */
-public class Activator extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.ui.examples.contributions"; //$NON-NLS-1$
-
-	// The shared instance
-	private static Activator plugin;
-
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-		DEBUG_COMMANDS = getDebugOption("/trace/commands"); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 * 
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given plug-in
-	 * relative path
-	 * 
-	 * @param path
-	 *            the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-	
-	/**
-	 * Piggy back of off org.eclipse.ui/trace/commands
-	 */
-	public static boolean DEBUG_COMMANDS = false;
-	
-	private static boolean getDebugOption(String option) {
-        return "true".equalsIgnoreCase(Platform.getDebugOption(PlatformUI.PLUGIN_ID + option)); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java
deleted file mode 100644
index c1f1ce3..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ContributionMessages.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Externalized messages for the code in this plugin.
- * 
- * @since 3.3
- */
-public class ContributionMessages extends NLS {
-
-	private static final String BUNDLE_NAME = "org.eclipse.ui.examples.contributions.messages";//$NON-NLS-1$
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, ContributionMessages.class);
-	}
-	public static String DeltaInfoHandler_found;
-	public static String DeltaInfoHandler_notFound;
-	public static String DeltaInfoHandler_shellTitle;
-	public static String DynamicEditorList_label;
-	public static String EditInfoHandler_failed_to_open;
-	public static String InfoEditor_givenname;
-	public static String InfoEditor_surname;
-	public static String InfoView_about_msg;
-	public static String InfoView_countElements;
-	public static String PersonWizardPage_descriptoin;
-	public static String PersonWizardPage_error_alreadyExists;
-	public static String PersonWizardPage_error_missingGivenname;
-	public static String PersonWizardPage_error_missingSurname;
-	public static String PersonWizardPage_id_label;
-	public static String PersonWizardPage_title;
-	public static String SampleHandler_hello_msg;
-	public static String SampleHandler_plugin_name;
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java
deleted file mode 100644
index 4516fe3..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/ExampleControlContribution.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
-
-/**
- * Moved from org.eclipse.ui.examples.readmetool
- * 
- * @since 3.3
- */
-public class ExampleControlContribution extends
-		WorkbenchWindowControlContribution {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createControl(Composite parent) {
-		// Create a composite to place the label in
-		Composite comp = new Composite(parent, SWT.NONE);
-
-		// Give some room around the control
-		FillLayout layout = new FillLayout();
-		layout.marginHeight = 2;
-		layout.marginWidth = 2;
-		comp.setLayout(layout);
-
-		// Create a label for the trim.
-		Label ccCtrl = new Label(comp, SWT.BORDER | SWT.CENTER);
-		ccCtrl.setBackground(parent.getDisplay().getSystemColor(
-				SWT.COLOR_DARK_BLUE));
-		ccCtrl.setForeground(parent.getDisplay()
-				.getSystemColor(SWT.COLOR_WHITE));
-		ccCtrl.setText(" Ctrl Contrib (" + getSideName(getCurSide()) + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		ccCtrl.setToolTipText("Ctrl Contrib Tooltip"); //$NON-NLS-1$
-
-		return comp;
-	}
-
-	private String getSideName(int side) {
-		if (side == SWT.TOP)
-			return "Top"; //$NON-NLS-1$
-		if (side == SWT.BOTTOM)
-			return "Bottom"; //$NON-NLS-1$
-		if (side == SWT.LEFT)
-			return "Left"; //$NON-NLS-1$
-		if (side == SWT.RIGHT)
-			return "Right"; //$NON-NLS-1$
-
-		return "Unknown Side"; //$NON-NLS-1$
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java
deleted file mode 100644
index 94f8281..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/ActivateEditorHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.editor;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Activate an already open editor (although technically this would open a new
- * one as well)
- * 
- * @since 3.4
- */
-public class ActivateEditorHandler extends AbstractHandler {
-	public static final String ID = "org.eclipse.ui.examples.contributions.editor.activate"; //$NON-NLS-1$
-	public static final String PARM_EDITOR = "org.eclipse.ui.examples.contributions.editor.activate.index"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-		Object index = event.getObjectParameterForExecution(PARM_EDITOR);
-		if (!(index instanceof Integer)) {
-			throw new ExecutionException("Invalid index: " + index); //$NON-NLS-1$
-		}
-		PersonInput input = new PersonInput(((Integer) index).intValue());
-		try {
-			window.getActivePage().openEditor(input, InfoEditor.ID, true);
-		} catch (PartInitException e) {
-			throw new ExecutionException("Failed to activate editor", e); //$NON-NLS-1$
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java
deleted file mode 100644
index 9c32bb4..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DeltaInfoHandler.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.editor;
-
-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.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Show if there is any delta from the model for the active editor.
- * 
- * @since 3.3
- */
-public class DeltaInfoHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		InfoEditor editor = (InfoEditor) HandlerUtil
-				.getActiveEditorChecked(event);
-		Person local = editor.getCurrentPerson();
-
-		IPersonService service = (IPersonService) editor.getSite().getService(
-				IPersonService.class);
-		Person model = service.getPerson(local.getId());
-
-		boolean delta = false;
-		StringBuffer buf = new StringBuffer();
-		buf.append(ContributionMessages.InfoEditor_surname);
-		if (!model.getSurname().equals(local.getSurname())) {
-			delta = true;
-			buf.append(' ');
-			buf.append(model.getSurname());
-			buf.append(", "); //$NON-NLS-1$
-			buf.append(local.getSurname());
-		}
-		buf.append(" - "); //$NON-NLS-1$
-		buf.append(ContributionMessages.InfoEditor_givenname);
-		if (!model.getGivenname().equals(local.getGivenname())) {
-			delta = true;
-			buf.append(' ');
-			buf.append(model.getGivenname());
-			buf.append(", "); //$NON-NLS-1$
-			buf.append(local.getGivenname());
-		}
-		buf.append(" - "); //$NON-NLS-1$
-		if (delta) {
-			buf.append(ContributionMessages.DeltaInfoHandler_found);
-		} else {
-			buf.append(ContributionMessages.DeltaInfoHandler_notFound);
-		}
-		MessageDialog.openInformation(editor.getSite().getShell(),
-				ContributionMessages.DeltaInfoHandler_shellTitle, buf
-						.toString());
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java
deleted file mode 100644
index fd680da..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/DynamicEditorList.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.editor;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.CommandContributionItemParameter;
-
-/**
- * Provide a dynamic list of open editors to activate.
- * 
- * @since 3.4
- */
-public class DynamicEditorList extends CompoundContributionItem {
-	private static final IContributionItem[] EMPTY = new IContributionItem[0];
-
-	private static class NobodyHereContribution extends ContributionItem {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.ContributionItem#fill(org.eclipse.swt.widgets.Menu,
-		 *      int)
-		 */
-		public void fill(Menu menu, int index) {
-			MenuItem item = new MenuItem(menu, SWT.NONE, index);
-			item.setText(ContributionMessages.DynamicEditorList_label);
-			item.setEnabled(false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
-	 */
-	protected IContributionItem[] getContributionItems() {
-		// maybe we can find a better way for contributed IContributionItems
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (window == null) {
-			return EMPTY;
-		}
-
-		IWorkbenchPage page = window.getActivePage();
-		if (page == null) {
-			return EMPTY;
-		}
-		IEditorReference[] editors = page.getEditorReferences();
-		ArrayList menuList = new ArrayList();
-
-		int editorNum = 1;
-		for (int i = 0; i < editors.length && editorNum < 10; i++) {
-			try {
-				if (editors[i].getId().equals(InfoEditor.ID)) {
-					menuList.add(createItem(editorNum++, editors[i]));
-				}
-			} catch (PartInitException e) {
-			}
-
-		}
-		if (menuList.isEmpty()) {
-			menuList.add(new NobodyHereContribution());
-		}
-		return (IContributionItem[]) menuList
-				.toArray(new IContributionItem[menuList.size()]);
-	}
-
-	private IContributionItem createItem(int i, IEditorReference ref)
-			throws PartInitException {
-		CommandContributionItemParameter p = new CommandContributionItemParameter(
-				PlatformUI.getWorkbench(), null, ActivateEditorHandler.ID,
-				CommandContributionItem.STYLE_PUSH);
-		p.parameters = new HashMap();
-		PersonInput editorInput = (PersonInput) ref.getEditorInput();
-		p.parameters.put(ActivateEditorHandler.PARM_EDITOR, new Integer(
-				editorInput.getIndex()));
-		String menuNum = Integer.toString(i);
-		p.label = menuNum + " " + ref.getTitle(); //$NON-NLS-1$
-		p.mnemonic = menuNum;
-		return new CommandContributionItem(p);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java
deleted file mode 100644
index 16557f4..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/InfoEditor.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.editor;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * Edit a person.
- * 
- * @since 3.3
- */
-public class InfoEditor extends EditorPart {
-	public static final String ID = "org.eclipse.ui.examples.contributions.editor"; //$NON-NLS-1$
-	private static final String EDITOR_RESET_ID = "org.eclipse.ui.examples.contributions.editor.reset"; //$NON-NLS-1$
-
-	private Person person;
-	private Text surnameText;
-	private Text givennameText;
-	private boolean dirty = false;
-	private IHandler resetHandler;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		monitor.beginTask(getPartName(), 3);
-		person.setSurname(surnameText.getText());
-		monitor.worked(1);
-		person.setGivenname(givennameText.getText());
-		monitor.worked(1);
-		IPersonService service = (IPersonService) getSite().getService(
-				IPersonService.class);
-		service.updatePerson(person);
-		monitor.worked(1);
-		monitor.done();
-		setDirty(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		// nothing
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
-	 *      org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		setSite(site);
-		setInput(input);
-		if (!(input instanceof PersonInput)) {
-			throw new PartInitException("Not a person"); //$NON-NLS-1$
-		}
-		PersonInput pinput = (PersonInput) input;
-		IPersonService service = (IPersonService) getSite().getService(
-				IPersonService.class);
-		person = service.getPerson(pinput.getIndex());
-		if (person == null) {
-			throw new PartInitException("person does not exist"); //$NON-NLS-1$
-		}
-		setPartName("Person - " + pinput.getIndex()); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		return dirty;
-	}
-
-	private void setDirty(boolean d) {
-		dirty = d;
-		firePropertyChange(ISaveablePart.PROP_DIRTY);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		KeyListener keyListener = new KeyListener() {
-			public void keyPressed(KeyEvent e) {
-				if ((e.keyCode & SWT.MODIFIER_MASK) == 0) {
-					setDirty(true);
-				}
-			}
-
-			public void keyReleased(KeyEvent e) {
-				// nothing
-			}
-		};
-
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout(2, false);
-		composite.setLayout(gridLayout);
-
-		Label l = new Label(composite, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_surname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		surnameText = new Text(composite, SWT.SINGLE);
-		GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		surnameText.setLayoutData(gridData);
-		surnameText.addKeyListener(keyListener);
-
-		l = new Label(composite, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_givenname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		givennameText = new Text(composite, SWT.SINGLE);
-		gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		givennameText.setLayoutData(gridData);
-		givennameText.addKeyListener(keyListener);
-
-		updateText();
-
-		createHandlers();
-	}
-
-	/**
-	 * Set our text field to the person text.
-	 */
-	private void updateText() {
-		surnameText.setText(person.getSurname());
-		givennameText.setText(person.getGivenname());
-	}
-
-	/**
-	 * Instantiate any handlers specific to this view and activate them.
-	 */
-	private void createHandlers() {
-		IHandlerService handlerService = (IHandlerService) getSite()
-				.getService(IHandlerService.class);
-		resetHandler = new AbstractHandler() {
-			public Object execute(ExecutionEvent event) {
-				updateText();
-				setDirty(false);
-				return null;
-			}
-		};
-		handlerService.activateHandler(EDITOR_RESET_ID, resetHandler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		surnameText.setFocus();
-	}
-
-	public Person getCurrentPerson() {
-		person.setSurname(surnameText.getText());
-		person.setGivenname(givennameText.getText());
-		return person;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java
deleted file mode 100644
index c376fdc..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/editor/IntegerTypeConverter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.editor;
-
-import org.eclipse.core.commands.AbstractParameterValueConverter;
-import org.eclipse.core.commands.ParameterValueConversionException;
-
-/**
- * Convert between Integer and String for a command parameter type.
- * 
- * @since 3.4
- */
-public class IntegerTypeConverter extends AbstractParameterValueConverter {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.AbstractParameterValueConverter#convertToObject(java.lang.String)
-	 */
-	public Object convertToObject(String parameterValue)
-			throws ParameterValueConversionException {
-		try {
-			return Integer.decode(parameterValue);
-		} catch (NumberFormatException e) {
-			throw new ParameterValueConversionException("Failed to decode", e); //$NON-NLS-1$
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.AbstractParameterValueConverter#convertToString(java.lang.Object)
-	 */
-	public String convertToString(Object parameterValue)
-			throws ParameterValueConversionException {
-		if (!(parameterValue instanceof Integer)) {
-			throw new ParameterValueConversionException("Failed to convert"); //$NON-NLS-1$
-		}
-		return parameterValue.toString();
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java
deleted file mode 100644
index fb53ae6..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/GlobalMenuHandler.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.jface.dialogs.MessageDialog;
-
-/**
- * Our sample handler extends AbstractHandler, an IHandler base class.
- * 
- * @see org.eclipse.core.commands.IHandler
- * @see org.eclipse.core.commands.AbstractHandler
- * @since 3.3
- */
-public class GlobalMenuHandler extends AbstractHandler {
-	/**
-	 * The constructor.
-	 */
-	public GlobalMenuHandler() {
-	}
-
-	/**
-	 * the command has been executed, so extract extract the needed information
-	 * from the application context.
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-		MessageDialog.openInformation(window.getShell(),
-				ContributionMessages.SampleHandler_plugin_name,
-				ContributionMessages.SampleHandler_hello_msg);
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java
deleted file mode 100644
index ca4992d..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/handlers/InfoAboutHandler.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.handlers;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Opens a blank dialog with the InfoView title. The handler should only be
- * active when the activePart is an InfoView part.
- * <p>
- * This is used for the menu contribution example.
- * </p>
- * 
- * @since 3.4
- *
- */
-public class InfoAboutHandler extends AbstractHandler {
-
-	/**
-	 * A blank dialog. This is activated by the About InfoView menu
-	 * contribution. The handler is active when the InfoView part is active.
-	 * 
-	 * @since 3.4
-	 * 
-	 */
-	private final class InfoAboutDialog extends Dialog {
-		private InfoAboutDialog(Shell parentShell) {
-			super(parentShell);
-		}
-
-		protected void configureShell(Shell newShell) {
-			super.configureShell(newShell);
-			newShell.setText(ContributionMessages.InfoView_about_msg);
-		}
-	}
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-		Dialog dialog = new InfoAboutDialog(window.getShell());
-		dialog.open();
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties
deleted file mode 100644
index ec57136..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/messages.properties
+++ /dev/null
@@ -1,27 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-SampleHandler_plugin_name=Command Contribution Examples
-SampleHandler_hello_msg=Hello, Eclipse world
-InfoView_countElements=There are {0} model elements
-InfoView_about_msg=About InfoView
-EditInfoHandler_failed_to_open=Failed to open model editor
-InfoEditor_surname=Surname:
-InfoEditor_givenname=Given name:
-DeltaInfoHandler_found=Delta found\!
-DeltaInfoHandler_notFound=No delta found\!
-DeltaInfoHandler_shellTitle=Delta
-DynamicEditorList_label=Nobody here
-PersonWizardPage_descriptoin=Create a new Person
-PersonWizardPage_error_alreadyExists=Person ''{0}'' already exists
-PersonWizardPage_error_missingGivenname=Must supply a given name
-PersonWizardPage_error_missingSurname=Must supply a surname
-PersonWizardPage_id_label=Employee ID
-PersonWizardPage_title=New Person
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java
deleted file mode 100644
index d819dc1..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/IPersonService.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import java.util.Collection;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-/**
- * An example service to manage People.
- * 
- * @since 3.4
- */
-public interface IPersonService {
-	/**
-	 * Fired when a new person is created.
-	 */
-	public static final String PROP_ADD = "add"; //$NON-NLS-1$
-
-	/**
-	 * Fired when a Person is updated by the service.
-	 */
-	public static final String PROP_CHANGE = "change"; //$NON-NLS-1$
-
-	/**
-	 * The collection of people.
-	 * 
-	 * @return an unmodifiable Collection. For looking, not touching. Will not
-	 *         be <code>null</code>.
-	 */
-	public Collection getPeople();
-
-	/**
-	 * Return the person identified by <code>id</code>.
-	 * 
-	 * @param id
-	 *            a valid ID
-	 * @return a copy of the person, or <code>null</code> if not found.
-	 */
-	public Person getPerson(int id);
-
-	/**
-	 * Update the person in this service. If this person does not exist in the
-	 * service it does nothing.
-	 * 
-	 * @param person
-	 *            the person to update. Must not be <code>null</code>.
-	 */
-	public void updatePerson(Person person);
-
-	/**
-	 * Create a person object for this id. Does nothing if a person already
-	 * exists for this id. The returned person has default values for most
-	 * attributes, and the person's ID is set to <code>id</code>.
-	 * 
-	 * @param id
-	 *            the id for the person.
-	 * @return a copy of the person, or <code>null</code> if a person already
-	 *         exists.
-	 */
-	public Person createPerson(int id);
-
-	/**
-	 * Listen for changes to people managed by this service.
-	 * <p>
-	 * Note: this services cleans up listeners when it is disposed.
-	 * </p>
-	 * 
-	 * @param listener
-	 *            the property change listener. Has no effect if an identical
-	 *            listener is already registered. Must not be <code>null</code>
-	 * @see #PROP_ADD
-	 * @see #PROP_CHANGE
-	 * @see IPersonService#removePersonChangeListener(IPropertyChangeListener)
-	 */
-	public void addPersonChangeListener(IPropertyChangeListener listener);
-
-	/**
-	 * Remove the change listener.
-	 * 
-	 * @param listener
-	 *            the property change listener. Has no effect if it is not
-	 *            already registered. Must not be <code>null</code>.
-	 */
-	public void removePersonChangeListener(IPropertyChangeListener listener);
-
-	/**
-	 * Log this person into the system. This is in effect until anoteher person
-	 * is logged in.
-	 * 
-	 * @param person
-	 *            the person to log in. May be <code>null</code>.
-	 */
-	public void login(Person person);
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java
deleted file mode 100644
index 6da9bf5..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/Person.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-/**
- * A simple model object that is mutable.
- * 
- * @since 3.3
- */
-public class Person {
-
-	private int id;
-	private String surname;
-	private String givenname;
-	private boolean admin = false;
-
-
-	Person(int id, String sn, String gn) {
-		surname = sn;
-		givenname = gn;
-		this.id = id;
-	}
-
-	public String getSurname() {
-		return surname;
-	}
-
-	public void setSurname(String surname) {
-		this.surname = surname;
-	}
-
-	public int getId() {
-		return id;
-	}
-
-	public String getGivenname() {
-		return givenname;
-	}
-
-	public void setGivenname(String givenname) {
-		this.givenname = givenname;
-	}
-	
-	public boolean hasAdminRights() {
-		return admin;
-	}
-	
-	public void setAdminRights(boolean admin) {
-		this.admin = admin;
-	}
-
-	public String toString() {
-		StringBuffer buf = new StringBuffer(surname);
-		buf.append(", "); //$NON-NLS-1$
-		buf.append(givenname);
-		buf.append(" ("); //$NON-NLS-1$
-		buf.append(id);
-		if (admin) {
-			buf.append("-adm"); //$NON-NLS-1$
-		}
-		buf.append(")"); //$NON-NLS-1$
-		return buf.toString();
-	}
-
-	protected Person copy() {
-		return new Person(id, surname, givenname);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return id;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof Person) {
-			Person p = (Person) o;
-			return p.givenname == givenname && p.id == id
-					&& p.surname == surname;
-		}
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java
deleted file mode 100644
index 2f31dd8..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonInput.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * The editor input for looking up a person.
- * 
- * @since 3.3
- */
-public class PersonInput implements IEditorInput {
-	private int index;
-
-	public PersonInput(int i) {
-		index = i;
-	}
-
-	public int getIndex() {
-		return index;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return "" + index; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return getName();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return index;
-	}
-	
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof PersonInput) {
-			return index == ((PersonInput)o).index; 
-		}
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java
deleted file mode 100644
index fa451a2..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonService.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.services.IDisposable;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.services.ISourceProviderService;
-
-/**
- * Example implementation of the person service.
- * 
- * @since 3.4
- */
-public class PersonService implements IPersonService, IDisposable {
-
-	private static final int ME = 1114;
-	private Map people = new TreeMap();
-	private IServiceLocator serviceLocator;
-	private ListenerList listeners = new ListenerList(ListenerList.IDENTITY);
-
-	public PersonService(IServiceLocator locator) {
-		serviceLocator = locator;
-		serviceLocator.hasService(IHandlerService.class);
-		fillModel();
-	}
-
-	private static final String[] datafill = {
-			"Webster", "Paul", "Doe", "John", "Doe", "Jane", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-			"Public", "John", "Public", "Jane" }; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
-
-	private void fillModel() {
-		int i = ME;
-		for (int j = 0; j < datafill.length; j += 2) {
-			Integer iid = new Integer(i++);
-			Person p = new Person(iid.intValue(), datafill[j], datafill[j + 1]);
-			if (p.getId() == ME) {
-				p.setAdminRights(true);
-			}
-			people.put(iid, p);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#addPersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPersonChangeListener(IPropertyChangeListener listener) {
-		listeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPeople()
-	 */
-	public Collection getPeople() {
-		return Collections.unmodifiableCollection(people.values());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPerson(int)
-	 */
-	public Person getPerson(int id) {
-		Person p = (Person) people.get(new Integer(id));
-		if (p == null) {
-			return null;
-		}
-		return p.copy();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#removePersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePersonChangeListener(IPropertyChangeListener listener) {
-		listeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#updatePerson(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void updatePerson(Person person) {
-		Assert.isNotNull(person);
-		Person p = (Person) people.get(new Integer(person.getId()));
-		if (p == null) {
-			Assert.isNotNull(p, "Must update a real person"); //$NON-NLS-1$
-		}
-		if (person.equals(p)) {
-			return;
-		}
-		Person oldVal = p.copy();
-		p.setGivenname(person.getGivenname());
-		p.setSurname(person.getSurname());
-		firePersonChange(PROP_CHANGE, oldVal, person);
-	}
-
-	/**
-	 * @param oldVal
-	 * @param person
-	 */
-	private void firePersonChange(String property, Person oldVal, Person person) {
-		if (listeners.isEmpty()) {
-			return;
-		}
-		PropertyChangeEvent event = new PropertyChangeEvent(this, property,
-				oldVal, person);
-		Object[] array = listeners.getListeners();
-		for (int i = 0; i < array.length; i++) {
-			((IPropertyChangeListener) array[i]).propertyChange(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#createPerson(int)
-	 */
-	public Person createPerson(int id) {
-		Integer iid = new Integer(id);
-		if (people.containsKey(iid)) {
-			return null;
-		}
-		Person person = new Person(id, "surname", "givenname"); //$NON-NLS-1$//$NON-NLS-2$
-		people.put(iid, person);
-		firePersonChange(PROP_ADD, null, person);
-		return person;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.services.IDisposable#dispose()
-	 */
-	public void dispose() {
-		// we'd save stuff here, maybe, if we cared
-		listeners.clear();
-		serviceLocator = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#login(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void login(Person person) {
-		ISourceProviderService sources = (ISourceProviderService) serviceLocator
-				.getService(ISourceProviderService.class);
-		// should do some more checks
-		UserSourceProvider userProvider = (UserSourceProvider) sources
-				.getSourceProvider(UserSourceProvider.USER);
-		userProvider.login(person);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java
deleted file mode 100644
index f079c73..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import org.eclipse.ui.services.AbstractServiceFactory;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Supply the person service to the IServiceLocator framework.
- * 
- * @since 3.4
- */
-public class PersonServiceFactory extends AbstractServiceFactory {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.services.AbstractServiceFactory#create(java.lang.Class,
-	 *      org.eclipse.ui.services.IServiceLocator,
-	 *      org.eclipse.ui.services.IServiceLocator)
-	 */
-	public Object create(Class serviceInterface, IServiceLocator parentLocator,
-			IServiceLocator locator) {
-		if (!IPersonService.class.equals(serviceInterface)) {
-			return null;
-		}
-		Object parentService = parentLocator.getService(IPersonService.class);
-		if (parentService == null) {
-			// the global level person service implementation
-			return new PersonService(locator);
-		}
-		return new PersonServiceSlave(locator, (IPersonService) parentService);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java
deleted file mode 100644
index 3bb67b6..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonServiceSlave.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import java.util.Collection;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.services.IDisposable;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Example implementation that cleans up listeners when the IServiceLocator
- * (site, window, etc) is disposed. It delegates to its parent for the actual
- * behaviour.
- * 
- * @since 3.4
- */
-public class PersonServiceSlave implements IPersonService, IDisposable {
-
-	private IServiceLocator serviceLocator;
-	private IPersonService parentService;
-	private ListenerList localListeners = new ListenerList(
-			ListenerList.IDENTITY);
-
-	public PersonServiceSlave(IServiceLocator locator, IPersonService parent) {
-		serviceLocator = locator;
-		parentService = parent;
-		serviceLocator.hasService(IHandlerService.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#addPersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPersonChangeListener(IPropertyChangeListener listener) {
-		localListeners.add(listener);
-		parentService.addPersonChangeListener(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPeople()
-	 */
-	public Collection getPeople() {
-		return parentService.getPeople();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#getPerson(int)
-	 */
-	public Person getPerson(int id) {
-		return parentService.getPerson(id);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#removePersonChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePersonChangeListener(IPropertyChangeListener listener) {
-		localListeners.remove(listener);
-		parentService.removePersonChangeListener(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#updatePerson(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void updatePerson(Person person) {
-		parentService.updatePerson(person);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#createPerson(int)
-	 */
-	public Person createPerson(int id) {
-		return parentService.createPerson(id);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.services.IDisposable#dispose()
-	 */
-	public void dispose() {
-		Object[] array = localListeners.getListeners();
-		localListeners.clear();
-		for (int i = 0; i < array.length; i++) {
-			parentService
-					.removePersonChangeListener((IPropertyChangeListener) array[i]);
-		}
-		serviceLocator = null;
-		parentService = null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.examples.contributions.model.IPersonService#login(org.eclipse.ui.examples.contributions.model.Person)
-	 */
-	public void login(Person person) {
-		parentService.login(person);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java
deleted file mode 100644
index 8c2089f..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizard.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * Use the service to create a person.
- * 
- * @since 3.4
- */
-public class PersonWizard extends Wizard implements INewWizard {
-	private PersonWizardPage mainPage;
-	private IWorkbench workbench;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.wizard.Wizard#addPages()
-	 */
-	public void addPages() {
-		mainPage = new PersonWizardPage(workbench);
-		addPage(mainPage);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
-	 */
-	public boolean performFinish() {
-		return mainPage.finish();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
-	 *      org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		this.workbench = workbench;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java
deleted file mode 100644
index 6454053..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/PersonWizardPage.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import org.eclipse.jface.wizard.WizardPage;
-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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * Create a Person, fill in the correct fields.
- * 
- * @since 3.4
- */
-public class PersonWizardPage extends WizardPage implements Listener {
-
-	private IServiceLocator locator;
-	private Text surnameText;
-	private Text givennameText;
-	private Text idText;
-
-	/**
-	 * @param pageName
-	 */
-	public PersonWizardPage(IServiceLocator locator) {
-		super("personWizardPage"); //$NON-NLS-1$
-		this.locator = locator;
-		setTitle(ContributionMessages.PersonWizardPage_title);
-		setDescription(ContributionMessages.PersonWizardPage_descriptoin);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		initializeDialogUnits(parent);
-		// top level group
-		Composite topLevel = new Composite(parent, SWT.NONE);
-		GridLayout gridLayout = new GridLayout(2, false);
-		topLevel.setLayout(gridLayout);
-
-		Label l = new Label(topLevel, SWT.RIGHT);
-		l.setText(ContributionMessages.PersonWizardPage_id_label);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		idText = new Text(topLevel, SWT.SINGLE);
-		GridData gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		idText.setLayoutData(gridData);
-		idText.addListener(SWT.FocusOut, this);
-		idText.addListener(SWT.KeyUp, this);
-
-		l = new Label(topLevel, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_surname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		surnameText = new Text(topLevel, SWT.SINGLE);
-		gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		surnameText.setLayoutData(gridData);
-		surnameText.addListener(SWT.FocusOut, this);
-		surnameText.addListener(SWT.KeyUp, this);
-
-		l = new Label(topLevel, SWT.RIGHT);
-		l.setText(ContributionMessages.InfoEditor_givenname);
-		l.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
-		givennameText = new Text(topLevel, SWT.SINGLE);
-		gridData = new GridData(SWT.FILL, SWT.CENTER, true, false);
-		givennameText.setLayoutData(gridData);
-		givennameText.addListener(SWT.FocusOut, this);
-		givennameText.addListener(SWT.KeyUp, this);
-
-		setControl(topLevel);
-		setPageComplete(validatePage());
-		setErrorMessage(null);
-		setMessage(null);
-	}
-
-	private boolean validatePage() {
-		if (getId() == 0) {
-			return false;
-		}
-		IPersonService service = (IPersonService) locator
-				.getService(IPersonService.class);
-		if (service.getPerson(getId()) != null) {
-			setErrorMessage(NLS.bind(
-					ContributionMessages.PersonWizardPage_error_alreadyExists,
-					new Integer(getId())));
-			return false;
-		}
-		if (getSurname() == null || getSurname().length() == 0) {
-			setErrorMessage(ContributionMessages.PersonWizardPage_error_missingSurname);
-			return false;
-		}
-		if (getGivenname() == null || getGivenname().length() == 0) {
-			setErrorMessage(ContributionMessages.PersonWizardPage_error_missingGivenname);
-			return false;
-		}
-		setErrorMessage(null);
-		return true;
-	}
-
-	int getId() {
-		try {
-			return Integer.parseInt(idText.getText());
-		} catch (NumberFormatException e) {
-		}
-		return 0;
-	}
-
-	String getGivenname() {
-		return givennameText.getText();
-	}
-
-	String getSurname() {
-		return surnameText.getText();
-	}
-
-	boolean finish() {
-		IPersonService service = (IPersonService) locator
-				.getService(IPersonService.class);
-		Person person = service.createPerson(getId());
-		if (person == null) {
-			return false;
-		}
-		person.setGivenname(getGivenname());
-		person.setSurname(getSurname());
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void handleEvent(Event event) {
-		// this plus validatePage() are blunt force validation.
-		setPageComplete(validatePage());
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java
deleted file mode 100644
index d1fcec5..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserPropertyTester.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import org.eclipse.core.expressions.PropertyTester;
-
-/**
- * Test properties of a Person object provided as a variable.
- * 
- * @since 3.4
- */
-public class UserPropertyTester extends PropertyTester {
-	private final static String IS_ADMIN = "isAdmin"; //$NON-NLS-1$
-	private final static String ID = "id"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object,
-	 *      java.lang.String, java.lang.Object[], java.lang.Object)
-	 */
-	public boolean test(Object receiver, String property, Object[] args,
-			Object expectedValue) {
-		if (!(receiver instanceof Person)) {
-			return false;
-		}
-		Person person = (Person) receiver;
-		if (property.equals(IS_ADMIN) && expectedValue instanceof Boolean) {
-			boolean value = ((Boolean) expectedValue).booleanValue();
-			return person.hasAdminRights() == value;
-		}
-		if (property.equals(ID) && expectedValue instanceof Integer) {
-			int value = ((Integer) expectedValue).intValue();
-			return person.getId() == value;
-		}
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java
deleted file mode 100644
index 7e61eba..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/model/UserSourceProvider.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.model;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ui.AbstractSourceProvider;
-import org.eclipse.ui.ISources;
-
-/**
- * An example of provide a Person as a variable to the evaluation service.
- * 
- * @since 3.4
- */
-public class UserSourceProvider extends AbstractSourceProvider {
-	public static final String USER = "org.eclipse.ui.examples.contributions.user"; //$NON-NLS-1$
-	private static final String[] PROVIDED_SOURCE_NAMES = new String[] { USER };
-	private static final Object GUEST = new Object();
-
-	private Person user = null;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#dispose()
-	 */
-	public void dispose() {
-		user = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#getCurrentState()
-	 */
-	public Map getCurrentState() {
-		Map m = new HashMap();
-		m.put(USER, getCurrentUser());
-		return m;
-	}
-
-	private Object getCurrentUser() {
-		return user == null ? GUEST : user;
-	}
-
-	public void login(Person person) {
-		user = person;
-		// I'm not sure whether this has to be accurate, so use the matching
-		// declaration priority <<1 for now
-		fireSourceChanged(ISources.ACTIVE_SITE << 1, USER, getCurrentUser());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#getProvidedSourceNames()
-	 */
-	public String[] getProvidedSourceNames() {
-		return PROVIDED_SOURCE_NAMES;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java
deleted file mode 100644
index 0f29f2b..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationActionBarAdvisor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.rcp;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * The action bar advisor must still be used sometimes to register workbench
- * actions that have not been converted into handlers.
- */
-public class ApplicationActionBarAdvisor extends ActionBarAdvisor {
-
-	private IWorkbenchAction openWindow;
-	private IWorkbenchAction save;
-	private IWorkbenchAction saveAll;
-
-	public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
-		super(configurer);
-	}
-
-	protected void makeActions(final IWorkbenchWindow window) {
-		// register any actions that need to be there as
-		// default handlers for commands.
-
-		openWindow = ActionFactory.OPEN_NEW_WINDOW.create(window);
-		register(openWindow);
-
-		save = ActionFactory.SAVE.create(window);
-		register(save);
-
-		saveAll = ActionFactory.SAVE_ALL.create(window);
-		register(saveAll);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.ActionBarAdvisor#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-		openWindow = null;
-		save = null;
-		saveAll = null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java
deleted file mode 100644
index 9ec2ca3..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchAdvisor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.rcp;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IExecutionListenerWithChecks;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.examples.contributions.Activator;
-
-/**
- * This workbench advisor creates the window advisor, and specifies the
- * perspective id for the initial window.
- */
-public class ApplicationWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	private static final String PERSPECTIVE_ID = "org.eclipse.ui.examples.contributions.perspective"; //$NON-NLS-1$
-
-	public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-			IWorkbenchWindowConfigurer configurer) {
-		return new ApplicationWorkbenchWindowAdvisor(configurer);
-	}
-
-	public String getInitialWindowPerspectiveId() {
-		return PERSPECTIVE_ID;
-	}
-
-	public void postStartup() {
-		if (!Activator.DEBUG_COMMANDS) {
-			return;
-		}
-		ICommandService service = (ICommandService) getWorkbenchConfigurer()
-				.getWorkbench().getService(ICommandService.class);
-		service.addExecutionListener(new IExecutionListenerWithChecks() {
-
-			public void notHandled(String commandId,
-					NotHandledException exception) {
-				System.out.println("commandId = " + commandId //$NON-NLS-1$
-						+ " : not handled"); //$NON-NLS-1$
-			}
-
-			public void postExecuteFailure(String commandId,
-					ExecutionException exception) {
-				System.out.println("commandId = " + commandId + " : failed"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			public void postExecuteSuccess(String commandId, Object returnValue) {
-				System.out.println("commandId = " + commandId + " : success " //$NON-NLS-1$ //$NON-NLS-2$
-						+ returnValue);
-			}
-
-			public void preExecute(String commandId, ExecutionEvent event) {
-				System.out.println("commandId = " + commandId + " : parms " //$NON-NLS-1$ //$NON-NLS-2$
-						+ event.getParameters().keySet());
-			}
-
-			public void notDefined(String commandId,
-					NotDefinedException exception) {
-				System.out.println("commandId = " + commandId //$NON-NLS-1$
-						+ " : not defined"); //$NON-NLS-1$
-			}
-
-			public void notEnabled(String commandId,
-					NotEnabledException exception) {
-				System.out.println("commandId = " + commandId //$NON-NLS-1$
-						+ " : not enabled"); //$NON-NLS-1$
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java
deleted file mode 100644
index 4f5219e..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ApplicationWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.rcp;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * Some initial workbench window configuration.
- * 
- * @since 3.4
- */
-public class ApplicationWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    public ApplicationWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new ApplicationActionBarAdvisor(configurer);
-    }
-    
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(800, 300));
-        configurer.setShowCoolBar(true);
-        configurer.setShowStatusLine(false);
-    }
-    
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java
deleted file mode 100644
index f7a244b..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/ContributionApplication.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.rcp;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @since 3.4
- *
- */
-public class ContributionApplication implements IApplication {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
-			if (returnCode == PlatformUI.RETURN_RESTART) {
-				return IApplication.EXIT_RESTART;
-			}
-			return IApplication.EXIT_OK;
-		} finally {
-			display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java
deleted file mode 100644
index 5400b87..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/rcp/Perspective.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.rcp;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.examples.contributions.view.InfoView;
-
-public class Perspective implements IPerspectiveFactory {
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		layout.setEditorAreaVisible(true);
-		
-		layout.addStandaloneView(InfoView.ID,  true, IPageLayout.LEFT, 0.25f, editorArea);
-		
-		layout.getViewLayout(InfoView.ID).setCloseable(false);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java
deleted file mode 100644
index c49072a..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/AdminHandler.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.view;
-
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.menus.UIElement;
-import org.eclipse.ui.services.IEvaluationService;
-
-/**
- * Allow the admin rights to be updated.
- * 
- * @since 3.4
- */
-public class AdminHandler extends AbstractHandler implements IElementUpdater {
-	private static final String ID = "org.eclipse.ui.examples.contributions.view.adminRights"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.commands.IElementUpdater#updateElement(org.eclipse.ui.menus.UIElement,
-	 *      java.util.Map)
-	 */
-	public void updateElement(UIElement element, Map parameters) {
-		IEvaluationService service = (IEvaluationService) PlatformUI
-				.getWorkbench().getService(IEvaluationService.class);
-		if (service == null) {
-			return;
-		}
-		ISelection sel = (ISelection) service.getCurrentState().getVariable(
-				ISources.ACTIVE_MENU_SELECTION_NAME);
-		if (!(sel instanceof IStructuredSelection)) {
-			return;
-		}
-		IStructuredSelection ssel = (IStructuredSelection) sel;
-		if (ssel.isEmpty()) {
-			return;
-		}
-		Object o = ssel.getFirstElement();
-		if (!(o instanceof Person)) {
-			return;
-		}
-		element.setChecked(((Person) o).hasAdminRights());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) {
-		ISelection sel = HandlerUtil.getActiveMenuSelection(event);
-		if (!(sel instanceof IStructuredSelection)) {
-			return null;
-		}
-		IStructuredSelection ssel = (IStructuredSelection) sel;
-		if (ssel.isEmpty()) {
-			return null;
-		}
-		Object o = ssel.getFirstElement();
-		if (!(o instanceof Person)) {
-			return null;
-		}
-		Person p = (Person) o;
-		p.setAdminRights(!p.hasAdminRights());
-		IPersonService service = (IPersonService) PlatformUI.getWorkbench()
-				.getService(IPersonService.class);
-		service.updatePerson(p);
-		ICommandService commands = (ICommandService) PlatformUI.getWorkbench()
-				.getService(ICommandService.class);
-		commands.refreshElements(ID, null);
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java
deleted file mode 100644
index 1c6c5c7..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/EditInfoHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.view;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.examples.contributions.model.PersonInput;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * open an element for editing.
- * 
- * @since 3.3
- */
-public class EditInfoHandler extends AbstractHandler {
-	
-	public static final String ID = "org.eclipse.ui.examples.contributions.view.edit"; //$NON-NLS-1$
-
-	private static final String EDITOR_ID = "org.eclipse.ui.examples.contributions.editor"; //$NON-NLS-1$
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event);
-		if (window == null) {
-			return null;
-		}
-		// this is written to check a context menu selection, and if not take
-		// the standard application context selection.
-		ISelection sel = HandlerUtil.getActiveMenuSelection(event);
-		if (sel == null) {
-			sel = HandlerUtil.getCurrentSelection(event);
-		}
-		if (sel instanceof IStructuredSelection && !sel.isEmpty()) {
-			IStructuredSelection selection = (IStructuredSelection) sel;
-			Person person = (Person) selection.getFirstElement();
-			PersonInput input = new PersonInput(person.getId());
-			try {
-				window.getActivePage().openEditor(input, EDITOR_ID);
-			} catch (PartInitException e) {
-				throw new ExecutionException(
-						ContributionMessages.EditInfoHandler_failed_to_open, e);
-			}
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java
deleted file mode 100644
index 68ac740..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/InfoView.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.view;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.examples.contributions.ContributionMessages;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Our example view.
- * 
- * @since 3.3
- */
-public class InfoView extends ViewPart {
-	public static final String ID = "org.eclipse.ui.examples.contributions.view"; //$NON-NLS-1$
-
-	private static final String VIEW_COUNT_ID = "org.eclipse.ui.examples.contributions.view.count"; //$NON-NLS-1$
-	private static final String VIEW_CONTEXT_ID = "org.eclipse.ui.examples.contributions.view.context"; //$NON-NLS-1$
-	private ListViewer viewer;
-	private IHandler countHandler;
-	private ArrayList viewerInput;
-
-	private IPropertyChangeListener personListener = new IPropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent event) {
-			if (IPersonService.PROP_CHANGE.equals(event.getProperty())) {
-				refresh();
-			} else if (IPersonService.PROP_ADD.equals(event.getProperty())) {
-				viewerInput.add(event.getNewValue());
-				viewer.add(event.getNewValue());
-			}
-		}
-	};
-
-	private static class ContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (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) {
-			// nothing to do here
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			if (inputElement instanceof List) {
-				return ((List) inputElement).toArray();
-			}
-			return null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new ListViewer(parent);
-		viewer.setContentProvider(new ContentProvider());
-		viewer.setLabelProvider(new LabelProvider());
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				editSelection();
-			}
-		});
-		IPersonService service = (IPersonService) getSite().getService(
-				IPersonService.class);
-		viewerInput = new ArrayList(service.getPeople());
-		service.addPersonChangeListener(personListener);
-		viewer.setInput(viewerInput);
-		getSite().setSelectionProvider(viewer);
-
-		MenuManager contextMenu = new MenuManager();
-		contextMenu.setRemoveAllWhenShown(true);
-
-		getSite().registerContextMenu(contextMenu, viewer);
-		Control control = viewer.getControl();
-		Menu menu = contextMenu.createContextMenu(control);
-		control.setMenu(menu);
-
-		activateContext();
-		createHandlers();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-
-	/**
-	 * Activate a context that this view uses. It will be tied to this view
-	 * activation events and will be removed when the view is disposed.
-	 */
-	private void activateContext() {
-		IContextService contextService = (IContextService) getSite()
-				.getService(IContextService.class);
-		// this will get cleaned up automatically when the site
-		// is disposed
-		contextService.activateContext(VIEW_CONTEXT_ID);
-	}
-
-	/**
-	 * Instantiate any handlers specific to this view and activate them.
-	 */
-	private void createHandlers() {
-		IHandlerService handlerService = (IHandlerService) getSite()
-				.getService(IHandlerService.class);
-		countHandler = new AbstractHandler() {
-			public Object execute(ExecutionEvent event) {
-				List elements = (List) viewer.getInput();
-				MessageDialog.openInformation(getSite().getShell(),
-						ContributionMessages.SampleHandler_plugin_name,
-						NLS.bind(ContributionMessages.InfoView_countElements,
-								new Integer(elements.size())));
-				return null;
-			}
-		};
-		handlerService.activateHandler(VIEW_COUNT_ID, countHandler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		if (countHandler != null) {
-			// we must dispose our handlers, although in this case it will
-			// be a no-op
-			countHandler.dispose();
-			countHandler = null;
-		}
-		super.dispose();
-	}
-
-	/**
-	 * Swap the 2 given elements from the model.
-	 * 
-	 * @param p1
-	 * @param p2
-	 */
-	public void swap(Person p1, Person p2) {
-		List elements = viewerInput;
-		int i1 = elements.indexOf(p1);
-		int i2 = elements.indexOf(p2);
-		Collections.swap(elements, i1, i2);
-		viewer.refresh();
-	}
-
-	/**
-	 * Refresh the viewer from the model.
-	 */
-	public void refresh() {
-		viewer.refresh();
-	}
-
-	private void editSelection() {
-		IHandlerService handlerService = (IHandlerService) getSite()
-				.getService(IHandlerService.class);
-		try {
-			handlerService.executeCommand(EditInfoHandler.ID, null);
-		} catch (ExecutionException e) {
-			// perhaps some logging here
-		} catch (NotDefinedException e) {
-		} catch (NotEnabledException e) {
-		} catch (NotHandledException e) {
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java
deleted file mode 100644
index 40d5d6f..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/LoginHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.view;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.examples.contributions.model.IPersonService;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Allow login as the selected user. If you are doing this for real, I would
- * suggest checking their credentials!
- * 
- * @since 3.4
- */
-public class LoginHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchPart part = HandlerUtil.getActivePartChecked(event);
-		ISelection sel = HandlerUtil.getActiveMenuSelection(event);
-		if (sel == null) {
-			sel = HandlerUtil.getCurrentSelection(event);
-		}
-		if (sel instanceof IStructuredSelection && !sel.isEmpty()) {
-			IStructuredSelection selection = (IStructuredSelection) sel;
-			Person person = (Person) selection.getFirstElement();
-			IPersonService service = (IPersonService) part.getSite()
-					.getService(IPersonService.class);
-			service.login(person);
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java
deleted file mode 100644
index a35ea14..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/RefreshInfoHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.view;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Request the view refresh from the model.
- * 
- * @since 3.3
- */
-public class RefreshInfoHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		InfoView view = (InfoView) HandlerUtil.getActivePartChecked(event);
-		view.refresh();
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java b/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java
deleted file mode 100644
index 08f41d0..0000000
--- a/examples/org.eclipse.ui.examples.contributions/src/org/eclipse/ui/examples/contributions/view/SwapInfoHandler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.contributions.view;
-
-import java.util.Iterator;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.examples.contributions.model.Person;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * Swap 2 elements around in the the view.
- * 
- * @since 3.3
- */
-public class SwapInfoHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		InfoView view = (InfoView) HandlerUtil.getActivePartChecked(event);
-		ISelection sel = HandlerUtil.getCurrentSelection(event);
-		if (sel instanceof IStructuredSelection) {
-			IStructuredSelection selection = (IStructuredSelection) sel;
-			if (selection.size() != 2) {
-				return null;
-			}
-			Iterator i = selection.iterator();
-			Person p1 = (Person) i.next();
-			Person p2 = (Person) i.next();
-			view.swap(p1, p2);
-		}
-		return null;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.classpath b/examples/org.eclipse.ui.examples.fieldassist/.classpath
deleted file mode 100644
index 203998a..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples Field Assist"/>
-	<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/examples/org.eclipse.ui.examples.fieldassist/.cvsignore b/examples/org.eclipse.ui.examples.fieldassist/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.project b/examples/org.eclipse.ui.examples.fieldassist/.project
deleted file mode 100644
index 440e70b..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.fieldassist</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/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 8630599..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:19:47 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.4
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0cb7d76..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Tue Oct 18 15:15:38 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index a26a239..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Oct 18 16:45:19 EDT 2005
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java
deleted file mode 100644
index d6f0772..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistPlugin.java
+++ /dev/null
@@ -1,58 +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.examples.fieldassist;
-
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class FieldAssistPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static FieldAssistPlugin plugin;
-	
-	// Our own content assist decorator (which adds the key binding)
-	static String DEC_CONTENTASSIST = "org.eclipse.ui.examples.fieldassist.contentAssistDecoration";
-	
-	/**
-	 * The constructor.
-	 */
-	public FieldAssistPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 * 
-	 * @return the shared plugin instance
-	 */
-	public static FieldAssistPlugin getDefault() {
-		return plugin;
-	}
-}
-
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java
deleted file mode 100644
index f3995df..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/FieldAssistTestDialog.java
+++ /dev/null
@@ -1,855 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 132479 - [FieldAssist] Field assist example improvements
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.StatusDialog;
-import org.eclipse.jface.fieldassist.AutoCompleteField;
-import org.eclipse.jface.fieldassist.ComboContentAdapter;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.ControlDecoration;
-import org.eclipse.jface.fieldassist.FieldDecoration;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.fieldassist.IContentProposal;
-import org.eclipse.jface.fieldassist.IContentProposalProvider;
-import org.eclipse.jface.fieldassist.IControlContentAdapter;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MenuDetectEvent;
-import org.eclipse.swt.events.MenuDetectListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-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.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.examples.fieldassist.preferences.PreferenceConstants;
-
-/**
- * Example dialog that shows different field assist capabilities.
- */
-public class FieldAssistTestDialog extends StatusDialog {
-
-	class SpinnerContentAdapter implements IControlContentAdapter {
-		// We are only implementing this for our internal use, not for
-		// content assist, so many of the methods are ignored.
-		public String getControlContents(Control control) {
-			return new Integer(((Spinner) control).getSelection()).toString();
-		}
-
-		public void setControlContents(Control control, String text,
-				int cursorPosition) {
-			// ignore
-		}
-
-		public void insertControlContents(Control control, String text,
-				int cursorPosition) {
-			// ignore
-		}
-
-		public int getCursorPosition(Control control) {
-			// ignore
-			return 0;
-		}
-
-		public Rectangle getInsertionBounds(Control control) {
-			return control.getBounds();
-		}
-
-		public void setCursorPosition(Control control, int index) {
-			// ignore
-		}
-	}
-
-	abstract class SmartField {
-		ControlDecoration controlDecoration;
-
-		Control control;
-
-		IControlContentAdapter contentAdapter;
-
-		FieldDecoration errorDecoration, warningDecoration;
-
-		SmartField(ControlDecoration dec, Control control,
-				IControlContentAdapter adapter) {
-			this.controlDecoration = dec;
-			this.contentAdapter = adapter;
-			this.control = control;
-		}
-
-		boolean isRequiredField() {
-			return true;
-		}
-
-		boolean hasQuickFix() {
-			return false;
-		}
-
-		void quickFix() {
-			// do nothing
-		}
-
-		boolean hasContentAssist() {
-			return false;
-		}
-
-		void dispose() {
-			// do nothing
-		}
-
-		FieldDecoration getErrorDecoration() {
-			if (errorDecoration == null) {
-				FieldDecoration standardError;
-				if (hasQuickFix()) {
-					standardError = FieldDecorationRegistry.getDefault()
-							.getFieldDecoration(
-									FieldDecorationRegistry.DEC_ERROR_QUICKFIX);
-				} else {
-					standardError = FieldDecorationRegistry.getDefault()
-							.getFieldDecoration(
-									FieldDecorationRegistry.DEC_ERROR);
-				}
-				if (getErrorMessage() == null) {
-					errorDecoration = standardError;
-				} else {
-					errorDecoration = new FieldDecoration(standardError
-							.getImage(), getErrorMessage());
-				}
-			}
-			return errorDecoration;
-
-		}
-
-		FieldDecoration getWarningDecoration() {
-			if (warningDecoration == null) {
-				FieldDecoration standardWarning = FieldDecorationRegistry
-						.getDefault().getFieldDecoration(
-								FieldDecorationRegistry.DEC_WARNING);
-				if (getWarningMessage() == null) {
-					warningDecoration = standardWarning;
-				} else {
-					warningDecoration = new FieldDecoration(standardWarning
-							.getImage(), getWarningMessage());
-				}
-			}
-			return warningDecoration;
-		}
-
-		String getContents() {
-			return contentAdapter.getControlContents(control);
-		}
-
-		void setContents(String contents) {
-			contentAdapter.setControlContents(control, contents, contents
-					.length());
-		}
-
-		abstract boolean isValid();
-
-		abstract boolean isWarning();
-
-		String getErrorMessage() {
-			return null;
-		}
-
-		String getWarningMessage() {
-			return null;
-		}
-
-	}
-
-	class UserField extends SmartField {
-		Menu quickFixMenu;
-
-		UserField(ControlDecoration dec, Control control,
-				IControlContentAdapter adapter) {
-			super(dec, control, adapter);
-		}
-
-		boolean isValid() {
-			String contents = getContents();
-			for (int i = 0; i < contents.length(); i++) {
-				if (!Character.isLetter(contents.charAt(i))) {
-					return false;
-				}
-			}
-			return true;
-		}
-
-		String getErrorMessage() {
-			return TaskAssistExampleMessages.ExampleDialog_UserError;
-		}
-
-		boolean isWarning() {
-			return getContents().equals(
-					TaskAssistExampleMessages.ExampleDialog_WarningName);
-		}
-
-		String getWarningMessage() {
-			return TaskAssistExampleMessages.ExampleDialog_UserWarning;
-		}
-
-		boolean hasContentAssist() {
-			return true;
-		}
-
-		boolean hasQuickFix() {
-			return true;
-		}
-
-		void quickFix() {
-			String contents = getContents();
-			StringBuffer lettersOnly = new StringBuffer();
-			int length = contents.length();
-			for (int i = 0; i < length;) {
-				char ch = contents.charAt(i++);
-				if (Character.isLetter(ch)) {
-					lettersOnly.append(ch);
-				}
-			}
-			setContents(lettersOnly.toString());
-		}
-
-		void dispose() {
-			if (quickFixMenu != null) {
-				quickFixMenu.dispose();
-				quickFixMenu = null;
-			}
-		}
-	}
-
-	class AgeField extends SmartField {
-
-		AgeField(ControlDecoration dec, Control control,
-				IControlContentAdapter adapter) {
-			super(dec, control, adapter);
-		}
-
-		boolean isValid() {
-			// We seed the spinner with valid values always.
-			return true;
-		}
-
-		boolean isWarning() {
-			Spinner spinner = (Spinner) control;
-			return spinner.getSelection() > 65;
-		}
-
-		String getWarningMessage() {
-			return TaskAssistExampleMessages.ExampleDialog_AgeWarning;
-		}
-	}
-
-	String[] validUsers = { "tom", "dick", "harry", "ferdinand", "tim", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-			"teresa", "tori", "daniela", "aaron", "kevin", "tod", "mike", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
-			"kim", "eric", "paul", "todd" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
-	String triggerKey;
-
-	String username;
-
-	boolean showErrorDecoration, showErrorMessage, showWarningDecoration,
-			showRequiredFieldDecoration, showRequiredFieldLabelIndicator,
-			showSecondaryPopup, showContentAssist;
-
-	int marginWidth;
-
-	UserField textField, comboField;
-
-	/**
-	 * Open the example dialog.
-	 * 
-	 * @param parent
-	 *            the parent shell
-	 * @param username
-	 *            the default username
-	 */
-	public FieldAssistTestDialog(Shell parent, String username) {
-		super(parent);
-		setTitle(TaskAssistExampleMessages.ExampleDialog_Title);
-		this.username = username;
-		getPreferenceValues();
-	}
-
-	protected Control createDialogArea(Composite parent) {
-
-		Composite outer = (Composite) super.createDialogArea(parent);
-
-		initializeDialogUnits(outer);
-		createSecurityGroup(outer);
-
-		// Create a simple field to show how field assist can be used for
-		// autocomplete.
-		Group autoComplete = new Group(outer, SWT.NONE);
-		autoComplete.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		autoComplete.setLayout(layout);
-		autoComplete
-				.setText(TaskAssistExampleMessages.ExampleDialog_AutoCompleteGroup);
-
-		Label label = new Label(autoComplete, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_UserName);
-
-		// Create an auto-complete field representing a user name
-		Text text = new Text(autoComplete, SWT.BORDER);
-		text.setLayoutData(getFieldGridData());
-		new AutoCompleteField(text, new TextContentAdapter(), validUsers);
-
-		// Another one to test combos
-		label = new Label(autoComplete, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_ComboUserName);
-
-		Combo combo = new Combo(autoComplete, SWT.BORDER | SWT.DROP_DOWN);
-		combo.setText(username);
-		combo.setItems(validUsers);
-		combo.setLayoutData(getFieldGridData());
-		new AutoCompleteField(combo, new ComboContentAdapter(), validUsers);
-
-		Dialog.applyDialogFont(outer);
-
-		return outer;
-	}
-
-	private void getPreferenceValues() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		showErrorMessage = store
-				.getBoolean(PreferenceConstants.PREF_SHOWERRORMESSAGE);
-		showErrorDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWERRORDECORATION);
-		showWarningDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWWARNINGDECORATION);
-		showRequiredFieldDecoration = store
-				.getBoolean(PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION);
-		showRequiredFieldLabelIndicator = store
-				.getBoolean(PreferenceConstants.PREF_SHOWREQUIREDFIELDLABELINDICATOR);
-		showSecondaryPopup = store
-				.getBoolean(PreferenceConstants.PREF_SHOWSECONDARYPOPUP);
-		showContentAssist = store
-				.getBoolean(PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE);
-		triggerKey = store.getString(PreferenceConstants.PREF_CONTENTASSISTKEY);
-		marginWidth = store
-				.getInt(PreferenceConstants.PREF_DECORATOR_MARGINWIDTH);
-	}
-
-	FieldDecoration getCueDecoration() {
-		// We use our own decoration which is based on the JFace version.
-		FieldDecorationRegistry registry = FieldDecorationRegistry.getDefault();
-		FieldDecoration dec = registry
-				.getFieldDecoration(FieldAssistPlugin.DEC_CONTENTASSIST);
-		if (dec == null) {
-			// Get the standard one. We use its image and our own customized
-			// text.
-			FieldDecoration standardDecoration = registry
-					.getFieldDecoration(FieldDecorationRegistry.DEC_CONTENT_PROPOSAL);
-			registry.registerFieldDecoration(
-					FieldAssistPlugin.DEC_CONTENTASSIST, NLS.bind(
-							TaskAssistExampleMessages.Decorator_ContentAssist,
-							triggerKey), standardDecoration.getImage());
-			dec = registry
-					.getFieldDecoration(FieldAssistPlugin.DEC_CONTENTASSIST);
-		}
-		return dec;
-	}
-
-	FieldDecoration getWarningDecoration() {
-		return FieldDecorationRegistry.getDefault().getFieldDecoration(
-				FieldDecorationRegistry.DEC_WARNING);
-	}
-
-	void handleModify(SmartField smartField) {
-		// Error indicator supercedes all others
-		if (!smartField.isValid()) {
-			showError(smartField);
-		} else {
-			hideError(smartField);
-			if (smartField.isWarning()) {
-				showWarning(smartField);
-			} else {
-				hideWarning(smartField);
-				if (showContentAssist && smartField.hasContentAssist()) {
-					showContentAssistDecoration(smartField, true);
-				} else {
-					showContentAssistDecoration(smartField, false);
-					showRequiredFieldDecoration(smartField,
-							showRequiredFieldDecoration);
-				}
-			}
-		}
-	}
-
-	GridData getFieldGridData() {
-		int margin = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		GridData data = new GridData();
-		data.horizontalAlignment = SWT.FILL;
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH + margin;
-		data.horizontalIndent = margin;
-		data.grabExcessHorizontalSpace = true;
-		return data;
-
-	}
-	
-	GridData getMultiLineTextFieldGridData() {
-		int margin = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		GridData data = new GridData();
-		data.horizontalAlignment = SWT.FILL;
-		data.verticalAlignment = SWT.FILL;
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH + margin;
-		data.heightHint = JFaceResources.getDialogFont().getFontData()[0].getHeight()*5;
-		data.horizontalIndent = margin;
-		data.grabExcessHorizontalSpace = true;
-		data.grabExcessVerticalSpace = true;
-		return data;
-
-	}
-
-	void showError(SmartField smartField) {
-		FieldDecoration dec = smartField.getErrorDecoration();
-		if (showErrorMessage) {
-			updateStatus(new Status(IStatus.ERROR,
-					"org.eclipse.examples.contentassist", 0, dec //$NON-NLS-1$
-							.getDescription(), null));
-		}
-		if (showErrorDecoration) {
-			showErrorDecoration(smartField, true);
-		}
-	}
-
-	void hideError(SmartField smartField) {
-		if (showErrorMessage) {
-			this.updateStatus(Status.OK_STATUS);
-		}
-		if (showErrorDecoration) {
-			showErrorDecoration(smartField, false);
-		}
-	}
-
-	void showWarning(SmartField smartField) {
-		if (showWarningDecoration) {
-			showWarningDecoration(smartField, true);
-		}
-	}
-
-	void hideWarning(SmartField smartField) {
-		if (showWarningDecoration) {
-			showWarningDecoration(smartField, false);
-		}
-	}
-
-	void installContentProposalAdapter(Control control,
-			IControlContentAdapter contentAdapter) {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		boolean propagate = store
-				.getBoolean(PreferenceConstants.PREF_CONTENTASSISTKEY_PROPAGATE);
-		KeyStroke keyStroke;
-		char[] autoActivationCharacters = null;
-		int autoActivationDelay = store
-				.getInt(PreferenceConstants.PREF_CONTENTASSISTDELAY);
-
-		if (triggerKey.equals(PreferenceConstants.PREF_CONTENTASSISTKEYAUTO)) {
-			// null means automatically assist when character typed
-			keyStroke = null;
-		} else if (triggerKey
-				.equals(PreferenceConstants.PREF_CONTENTASSISTKEYAUTOSUBSET)) {
-			keyStroke = null;
-			autoActivationCharacters = new char[] { 't', 'd' };
-		} else {
-			try {
-				keyStroke = KeyStroke.getInstance(triggerKey);
-			} catch (ParseException e) {
-				keyStroke = KeyStroke.getInstance(SWT.F10);
-			}
-		}
-
-		ContentProposalAdapter adapter = new ContentProposalAdapter(control,
-				contentAdapter, getContentProposalProvider(), keyStroke,
-				autoActivationCharacters) {
-			public void closeProposalPopup() {
-				closeProposalPopup();
-			}
-		};
-		adapter.setAutoActivationDelay(autoActivationDelay);
-		adapter.setPropagateKeys(propagate);
-		adapter.setFilterStyle(getContentAssistFilterStyle());
-		adapter.setProposalAcceptanceStyle(getContentAssistAcceptance());
-	}
-
-	private IContentProposalProvider getContentProposalProvider() {
-		return new IContentProposalProvider() {
-			public IContentProposal[] getProposals(String contents, int position) {
-				IContentProposal[] proposals = new IContentProposal[validUsers.length];
-				for (int i = 0; i < validUsers.length; i++) {
-					final String user = validUsers[i];
-					proposals[i] = new IContentProposal() {
-						public String getContent() {
-							return user;
-						}
-
-						public String getLabel() {
-							return user;
-						}
-
-						public String getDescription() {
-							if (showSecondaryPopup && !user.equals("tori"))  //$NON-NLS-1$
-								return MessageFormat
-										.format(
-												TaskAssistExampleMessages.ExampleDialog_ProposalDescription,
-												new String[] { user });
-							return null;
-						}
-
-						public int getCursorPosition() {
-							return user.length();
-						}
-					};
-				}
-				return proposals;
-			}
-		};
-	}
-
-	private int getContentAssistAcceptance() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		String acceptanceStyle = store
-				.getString(PreferenceConstants.PREF_CONTENTASSISTRESULT);
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTRESULT_INSERT))
-			return ContentProposalAdapter.PROPOSAL_INSERT;
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTRESULT_REPLACE))
-			return ContentProposalAdapter.PROPOSAL_REPLACE;
-		return ContentProposalAdapter.PROPOSAL_IGNORE;
-	}
-
-	private int getContentAssistFilterStyle() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		String acceptanceStyle = store
-				.getString(PreferenceConstants.PREF_CONTENTASSISTFILTER);
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTFILTER_CHAR))
-			return ContentProposalAdapter.FILTER_CHARACTER;
-		if (acceptanceStyle
-				.equals(PreferenceConstants.PREF_CONTENTASSISTFILTER_CUMULATIVE))
-			return ContentProposalAdapter.FILTER_CUMULATIVE;
-		return ContentProposalAdapter.FILTER_NONE;
-	}
-
-	void addRequiredFieldIndicator(Label label) {
-		String text = label.getText();
-		// This concatenation could be done by a field assist helper.
-		text = text.concat("*"); //$NON-NLS-1$
-		label.setText(text);
-	}
-
-	FieldDecoration getRequiredFieldDecoration() {
-		return FieldDecorationRegistry.getDefault().getFieldDecoration(
-				FieldDecorationRegistry.DEC_REQUIRED);
-	}
-
-	int getDecorationLocationBits() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		int bits = 0;
-		String vert = store
-				.getString(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION);
-		if (vert
-				.equals(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_BOTTOM)) {
-			bits = SWT.BOTTOM;
-		} else if (vert
-				.equals(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_CENTER)) {
-			bits = SWT.CENTER;
-		} else {
-			bits = SWT.TOP;
-		}
-
-		String horz = store
-				.getString(PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION);
-		if (horz
-				.equals(PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_RIGHT)) {
-			bits |= SWT.RIGHT;
-		} else {
-			bits |= SWT.LEFT;
-		}
-		return bits;
-	}
-
-	void createSecurityGroup(Composite parent) {
-
-		Group main = new Group(parent, SWT.NONE);
-		main.setLayoutData(new GridData(GridData.FILL_BOTH));
-		main.setText(TaskAssistExampleMessages.ExampleDialog_SecurityGroup);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-		main.setLayout(layout);
-
-		Label label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_UserName);
-
-		// Create a field representing a user name
-		Text text = new Text(main, SWT.BORDER);
-		ControlDecoration dec = new ControlDecoration(text,
-				getDecorationLocationBits());
-		dec.setMarginWidth(marginWidth);
-		dec.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				MessageDialog
-						.openInformation(
-								getShell(),
-								TaskAssistExampleMessages.ExampleDialog_SelectionTitle,
-								TaskAssistExampleMessages.ExampleDialog_SelectionMessage);
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// Nothing on default select
-			}
-		});
-
-		textField = new UserField(dec, text, new TextContentAdapter());
-		dec.addMenuDetectListener(new MenuDetectListener() {
-			public void menuDetected(MenuDetectEvent event) {
-				// no quick fix if we aren't in error state.
-				if (textField.isValid()) {
-					return;
-				}
-				if (textField.quickFixMenu == null) {
-					textField.quickFixMenu = createQuickFixMenu(textField);
-				}
-				textField.quickFixMenu.setLocation(event.x, event.y);
-				textField.quickFixMenu.setVisible(true);
-			}
-		});
-		if (showRequiredFieldLabelIndicator && textField.isRequiredField()) {
-			addRequiredFieldIndicator(label);
-		}
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(textField);
-			}
-		});
-
-		text.setText(username);
-		installContentProposalAdapter(text, new TextContentAdapter());
-		text.setLayoutData(getFieldGridData());
-
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_ComboUserName);
-
-		// Create a combo field representing a user name
-		Combo combo = new Combo(main, SWT.BORDER | SWT.DROP_DOWN);
-		dec = new ControlDecoration(combo, getDecorationLocationBits());
-		dec.setMarginWidth(marginWidth);
-		comboField = new UserField(dec, combo, new ComboContentAdapter());
-
-		dec.addMenuDetectListener(new MenuDetectListener() {
-			public void menuDetected(MenuDetectEvent event) {
-				// no quick fix if we aren't in error state.
-				if (comboField.isValid()) {
-					return;
-				}
-				if (comboField.quickFixMenu == null) {
-					comboField.quickFixMenu = createQuickFixMenu(comboField);
-				}
-				comboField.quickFixMenu.setLocation(event.x, event.y);
-				comboField.quickFixMenu.setVisible(true);
-			}
-		});
-		dec.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent event) {
-				MessageDialog
-						.openInformation(
-								getShell(),
-								TaskAssistExampleMessages.ExampleDialog_DefaultSelectionTitle,
-								TaskAssistExampleMessages.ExampleDialog_DefaultSelectionMessage);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				// Do nothing on selection
-			}
-		});
-
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		combo.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(comboField);
-			}
-		});
-
-		combo.setText(username);
-		combo.setItems(validUsers);
-		combo.setLayoutData(getFieldGridData());
-		installContentProposalAdapter(combo, new ComboContentAdapter());
-
-		// Create a spinner representing a user age
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_Age);
-
-		Spinner spinner = new Spinner(main, SWT.BORDER);
-		dec = new ControlDecoration(spinner, getDecorationLocationBits());
-		dec.setMarginWidth(marginWidth);
-
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		final SmartField spinnerField = new AgeField(dec, spinner,
-				new SpinnerContentAdapter());
-		spinner.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent event) {
-				handleModify(spinnerField);
-			}
-		});
-		spinner.setSelection(40);
-		spinner.setLayoutData(getFieldGridData());
-
-		// This field has no decorator
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.ExampleDialog_Password);
-		text = new Text(main, SWT.BORDER | SWT.PASSWORD);
-		text.setText("******"); //$NON-NLS-1$
-		text.setLayoutData(getFieldGridData());
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		
-		// This tests multi-line text popup placement
-		label = new Label(main, SWT.LEFT);
-		label.setText(TaskAssistExampleMessages.FieldAssistTestDialog_Comments);
-		text = new Text(main, SWT.BORDER | SWT.MULTI | SWT.WRAP);
-		text.setText(TaskAssistExampleMessages.FieldAssistTestDialog_CommentsDefaultContent); 
-		text.setLayoutData(getMultiLineTextFieldGridData());
-		if (showRequiredFieldLabelIndicator) {
-			addRequiredFieldIndicator(label);
-		}
-		installContentProposalAdapter(text, new TextContentAdapter());
-
-	}
-
-	Menu createQuickFixMenu(final SmartField field) {
-		Menu newMenu = new Menu(field.control);
-		MenuItem item = new MenuItem(newMenu, SWT.PUSH);
-		item
-				.setText(TaskAssistExampleMessages.ExampleDialog_DecorationMenuItem);
-		item.addSelectionListener(new SelectionListener() {
-			public void widgetSelected(SelectionEvent event) {
-				field.quickFix();
-			}
-
-			public void widgetDefaultSelected(SelectionEvent event) {
-
-			}
-		});
-		return newMenu;
-	}
-
-	void showErrorDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = smartField.getErrorDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(false);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	void showWarningDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = smartField.getWarningDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(false);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	void showRequiredFieldDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = getRequiredFieldDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(false);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	void showContentAssistDecoration(SmartField smartField, boolean show) {
-		FieldDecoration dec = getCueDecoration();
-		ControlDecoration cd = smartField.controlDecoration;
-		if (show) {
-			cd.setImage(dec.getImage());
-			cd.setDescriptionText(dec.getDescription());
-			cd.setShowOnlyOnFocus(true);
-			cd.show();
-		} else {
-			cd.hide();
-		}
-	}
-
-	public boolean close() {
-		textField.dispose();
-		comboField.dispose();
-		return super.close();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#isResizable()
-	 */
-	protected boolean isResizable() {
-		return true;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java
deleted file mode 100644
index 55c47d2..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/TaskAssistExampleMessages.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.fieldassist;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Message class for the undo example.
- * 
- */
-public class TaskAssistExampleMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.examples.fieldassist.messages";//$NON-NLS-1$
-
-	public static String Preferences_ContentAssistKey;
-	public static String Preferences_ContentAssistKeyPropagate;
-	public static String Preferences_ContentAssistResult;
-	public static String Preferences_ContentAssistResultReplace;
-	public static String Preferences_ContentAssistResultInsert;
-	public static String Preferences_ContentAssistResultNone;
-	public static String Preferences_ContentAssistFilter;
-	public static String Preferences_ContentAssistFilterCumulative;
-	public static String Preferences_ContentAssistFilterCharacter;
-	public static String Preferences_ContentAssistFilterNone;
-	public static String Preferences_ShowSecondaryPopup;
-	public static String Preferences_ContentAssistDelay;
-	public static String Preferences_ErrorIndicator;
-	public static String Preferences_ShowErrorMessage;
-	public static String Preferences_ShowErrorDecorator;
-	public static String Preferences_ShowWarningDecorator;
-	public static String Preferences_ShowProposalCue;
-	public static String Preferences_RequiredFieldIndicator;
-	public static String Preferences_ShowRequiredFieldDecorator;
-	public static String Preferences_ShowRequiredFieldLabelIndicator;
-	public static String Preferences_Description;
-	public static String Preferences_ContentAssistDescription;
-	public static String Preferences_DecoratorDetails;
-	public static String Preferences_DecoratorImpl;
-	public static String Preferences_DecoratorVert;
-	public static String Preferences_DecoratorTop;
-	public static String Preferences_DecoratorCenter;
-	public static String Preferences_DecoratorBottom;
-	public static String Preferences_DecoratorHorz;
-	public static String Preferences_DecoratorLeft;
-	public static String Preferences_DecoratorRight;
-	public static String Preferences_DecoratorMargin;
-	public static String Decorator_Warning;
-	public static String Decorator_Error;
-	public static String Decorator_ContentAssist;
-
-	public static String ExampleDialog_UserError;
-	public static String ExampleDialog_WarningName;
-	public static String ExampleDialog_UserWarning;
-	public static String ExampleDialog_AgeWarning;
-	public static String ExampleDialog_Title;
-	public static String ExampleDialog_SecurityGroup;
-	public static String ExampleDialog_AutoCompleteGroup;
-	public static String ExampleDialog_UserName;
-	public static String ExampleDialog_ComboUserName;
-	public static String ExampleDialog_Age;
-	public static String ExampleDialog_Password;
-	public static String ExampleDialog_ProposalDescription;
-	public static String ExampleDialog_DefaultSelectionTitle;
-	public static String ExampleDialog_DefaultSelectionMessage;
-	public static String ExampleDialog_SelectionTitle;
-	public static String ExampleDialog_SelectionMessage;
-
-	public static String FieldAssistTestDialog_Comments;
-
-	public static String FieldAssistTestDialog_CommentsDefaultContent;
-	public static String ExampleDialog_DecorationMenuItem;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, TaskAssistExampleMessages.class);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java
deleted file mode 100644
index f07fc86..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/actions/TestDialogAction.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.fieldassist.actions;
-
-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.examples.fieldassist.FieldAssistTestDialog;
-
-/**
- * Our sample action implements workbench action delegate. The action proxy will
- * be created by the workbench and shown in the UI. When the user tries to use
- * the action, this delegate will be created and execution will be delegated to
- * it.
- * 
- * @see IWorkbenchWindowActionDelegate
- */
-public class TestDialogAction implements IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-
-	/**
-	 * The constructor.
-	 */
-	public TestDialogAction() {
-	}
-
-	/**
-	 * The action has been activated. The argument of the method represents the
-	 * 'real' action sitting in the workbench UI.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#run
-	 */
-	public void run(IAction action) {
-		new FieldAssistTestDialog(window.getShell(), "tom").open();
-	}
-
-	/**
-	 * Selection in the workbench has been changed. We can change the state of
-	 * the 'real' action here if we want, but this can only happen after the
-	 * delegate has been created.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#selectionChanged
-	 */
-	public void selectionChanged(IAction action, ISelection selection) {
-	}
-
-	/**
-	 * We can use this method to dispose of any system resources we previously
-	 * allocated.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#dispose
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * We will cache window object in order to be able to provide parent shell
-	 * for the dialog.
-	 * 
-	 * @see IWorkbenchWindowActionDelegate#init
-	 */
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties
deleted file mode 100644
index 5dece35..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/messages.properties
+++ /dev/null
@@ -1,67 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 132479 - [FieldAssist] Field assist example improvements
-###############################################################################
-
-########### Preferences ###########################
-Preferences_RequiredFieldIndicator = Showing Required Fields:
-Preferences_ShowRequiredFieldLabelIndicator = Show required field indicator in field's label
-Preferences_ShowRequiredFieldDecorator = Decorate required fields
-Preferences_ContentAssistKey = Content Assist Key:
-Preferences_ContentAssistKeyPropagate = Propagate keystrokes to control when popup is active
-Preferences_ShowProposalCue = Decorate fields that have content assist
-Preferences_ShowSecondaryPopup = Show a secondary popup further describing the proposal
-Preferences_ContentAssistDelay = Delay (in milliseconds) when content assist is auto-activated:
-Preferences_ErrorIndicator = Showing Errors:
-Preferences_ShowErrorMessage = Show errors in status area of dialog
-Preferences_ShowErrorDecorator = Decorate fields that have errors
-Preferences_ShowWarningDecorator = Decorate fields that have warnings
-Preferences_Description = This page controls the decorations used in the example dialog.
-Preferences_DecoratorDetails = Other Decorators:
-Preferences_DecoratorImpl = Decorator implementation class:
-Preferences_DecoratorVert = Vertical location:
-Preferences_DecoratorTop = SWT.TOP
-Preferences_DecoratorCenter = SWT.CENTER
-Preferences_DecoratorBottom = SWT.BOTTOM
-Preferences_DecoratorHorz = Horizontal location:
-Preferences_DecoratorLeft = SWT.LEFT
-Preferences_DecoratorRight = SWT.RIGHT
-Preferences_DecoratorMargin = Margin width:
-Preferences_ContentAssistDescription = This page controls the behavior of the content assist.
-Preferences_ContentAssistResult = When a content proposal is chosen:
-Preferences_ContentAssistResultReplace = Replace field content
-Preferences_ContentAssistResultInsert = Insert into field content
-Preferences_ContentAssistResultNone = Custom behavior (none)
-Preferences_ContentAssistFilter = When typing while popup is open:
-Preferences_ContentAssistFilterCumulative = Filter popup content with cumulative typing (deprecated)
-Preferences_ContentAssistFilterCharacter = Filter popup according to last character typed
-Preferences_ContentAssistFilterNone = No filtering
-Decorator_Warning = User name bob is too casual
-Decorator_Error = User name can only contain letters
-Decorator_ContentAssist = Content assist available for this field, press {0}
-ExampleDialog_UserError=User name must only contain letters.  Use QuickFix Menu.
-ExampleDialog_WarningName=bob
-ExampleDialog_UserWarning=Bob is entirely too casual a name.
-ExampleDialog_AgeWarning=May be eligible for senior citizen user status
-ExampleDialog_Title=Field Assist Example
-ExampleDialog_SecurityGroup=&Security info
-ExampleDialog_AutoCompleteGroup=&Autocomplete examples
-ExampleDialog_UserName=&User name:
-ExampleDialog_ComboUserName=&Combo user name:
-ExampleDialog_Age=&Age:
-ExampleDialog_Password=&Password:
-ExampleDialog_ProposalDescription={0} is a wonderful choice and you should seriously consider it.
-ExampleDialog_DefaultSelectionTitle=Default Selection
-ExampleDialog_DefaultSelectionMessage=The decoration was double clicked.
-ExampleDialog_SelectionTitle=Selection
-ExampleDialog_SelectionMessage=The decoration was selected.
-FieldAssistTestDialog_Comments=Comments:
-FieldAssistTestDialog_CommentsDefaultContent=This field is here simply to demonstrate multi-line text and popup placement.  Try invoking content proposals in autoactivate and regular mode (insert and replace) and make sure the popup comes up where you think it should.
-ExampleDialog_DecorationMenuItem=Remove illegal characters
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java
deleted file mode 100644
index f7b9b89..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/ContentAssistPreferencePage.java
+++ /dev/null
@@ -1,122 +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.examples.fieldassist.preferences;
-
-import org.eclipse.jface.preference.*;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.examples.fieldassist.FieldAssistPlugin;
-import org.eclipse.ui.examples.fieldassist.TaskAssistExampleMessages;
-
-/**
- * This class represents a preference page that is contributed to the
- * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>,
- * we can use the field support built into JFace that allows us to create a page
- * that is small and knows how to save, restore and apply itself.
- * <p>
- * This page is used to modify preferences only. They are stored in the
- * preference store that belongs to the main plug-in class. That way,
- * preferences can be accessed directly via the preference store.
- */
-
-public class ContentAssistPreferencePage extends FieldEditorPreferencePage
-		implements IWorkbenchPreferencePage {
-
-	/**
-	 *  Create a ContentAssistPreferencePage
-	 */
-	public ContentAssistPreferencePage() {
-		super(GRID);
-		setPreferenceStore(FieldAssistPlugin.getDefault().getPreferenceStore());
-		setDescription(TaskAssistExampleMessages.Preferences_ContentAssistDescription);
-	}
-
-	/**
-	 * Creates the field editors. Field editors are abstractions of the common
-	 * GUI blocks needed to manipulate various types of preferences. Each field
-	 * editor knows how to save and
-	 */
-	public void createFieldEditors() {
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTKEY,
-				TaskAssistExampleMessages.Preferences_ContentAssistKey,
-				1,
-				new String[][] {
-						{ PreferenceConstants.PREF_CONTENTASSISTKEY1,
-								PreferenceConstants.PREF_CONTENTASSISTKEY1 },
-						{ PreferenceConstants.PREF_CONTENTASSISTKEY2,
-								PreferenceConstants.PREF_CONTENTASSISTKEY2 },
-						{ PreferenceConstants.PREF_CONTENTASSISTKEYAUTO,
-								PreferenceConstants.PREF_CONTENTASSISTKEYAUTO },
-						{ PreferenceConstants.PREF_CONTENTASSISTKEYAUTOSUBSET,
-								PreferenceConstants.PREF_CONTENTASSISTKEYAUTOSUBSET }, },
-				getFieldEditorParent()));
-		
-		IntegerFieldEditor editor = new IntegerFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTDELAY,
-				TaskAssistExampleMessages.Preferences_ContentAssistDelay,
-				getFieldEditorParent());
-		editor.setValidRange(0, 10000);
-		addField(editor);
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTKEY_PROPAGATE,
-				TaskAssistExampleMessages.Preferences_ContentAssistKeyPropagate,
-				getFieldEditorParent()));
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWSECONDARYPOPUP,
-				TaskAssistExampleMessages.Preferences_ShowSecondaryPopup,
-				getFieldEditorParent()));
-
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTRESULT,
-				TaskAssistExampleMessages.Preferences_ContentAssistResult,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistResultReplace,
-								PreferenceConstants.PREF_CONTENTASSISTRESULT_REPLACE },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistResultInsert,
-								PreferenceConstants.PREF_CONTENTASSISTRESULT_INSERT },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistResultNone,
-								PreferenceConstants.PREF_CONTENTASSISTRESULT_NONE } },
-				getFieldEditorParent()));
-		
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_CONTENTASSISTFILTER,
-				TaskAssistExampleMessages.Preferences_ContentAssistFilter,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistFilterCharacter,
-								PreferenceConstants.PREF_CONTENTASSISTFILTER_CHAR },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistFilterCumulative,
-								PreferenceConstants.PREF_CONTENTASSISTFILTER_CUMULATIVE },
-						{
-								TaskAssistExampleMessages.Preferences_ContentAssistFilterNone,
-								PreferenceConstants.PREF_CONTENTASSISTFILTER_NONE } },
-				getFieldEditorParent()));
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java
deleted file mode 100644
index 4d4071e..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/FieldAssistPreferencePage.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 132479 - [FieldAssist] Field assist example improvements
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist.preferences;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.examples.fieldassist.FieldAssistPlugin;
-import org.eclipse.ui.examples.fieldassist.TaskAssistExampleMessages;
-
-/**
- * This class represents a preference page that is contributed to the
- * Preferences dialog. By subclassing <samp>FieldEditorPreferencePage</samp>,
- * we can use the field support built into JFace that allows us to create a page
- * that is small and knows how to save, restore and apply itself.
- * <p>
- * This page is used to modify preferences only. They are stored in the
- * preference store that belongs to the main plug-in class. That way,
- * preferences can be accessed directly via the preference store.
- */
-
-public class FieldAssistPreferencePage extends FieldEditorPreferencePage
-		implements IWorkbenchPreferencePage {
-
-	/**
-	 * Create the FieldAssistPreferencePage
-	 */
-	public FieldAssistPreferencePage() {
-		super(GRID);
-		setPreferenceStore(FieldAssistPlugin.getDefault().getPreferenceStore());
-		setDescription(TaskAssistExampleMessages.Preferences_Description);
-	}
-
-	/**
-	 * Creates the field editors. Field editors are abstractions of the common
-	 * GUI blocks needed to manipulate various types of preferences. Each field
-	 * editor knows how to save and
-	 */
-	public void createFieldEditors() {
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION,
-				TaskAssistExampleMessages.Preferences_DecoratorVert,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorTop,
-								PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_TOP },
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorCenter,
-								PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_CENTER },
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorBottom,
-								PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_BOTTOM } },
-				getFieldEditorParent()));
-
-		addField(new RadioGroupFieldEditor(
-				PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION,
-				TaskAssistExampleMessages.Preferences_DecoratorHorz,
-				1,
-				new String[][] {
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorLeft,
-								PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_LEFT },
-						{
-								TaskAssistExampleMessages.Preferences_DecoratorRight,
-								PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_RIGHT } },
-				getFieldEditorParent()));
-
-		IntegerFieldEditor editor = new IntegerFieldEditor(
-				PreferenceConstants.PREF_DECORATOR_MARGINWIDTH,
-				TaskAssistExampleMessages.Preferences_DecoratorMargin,
-				getFieldEditorParent());
-		editor.setValidRange(0, 10);
-		addField(editor);
-
-		Label label = new Label(getFieldEditorParent(), SWT.WRAP);
-		label.setText(TaskAssistExampleMessages.Preferences_ErrorIndicator);
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWERRORMESSAGE,
-				TaskAssistExampleMessages.Preferences_ShowErrorMessage,
-				getFieldEditorParent()));
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWERRORDECORATION,
-				TaskAssistExampleMessages.Preferences_ShowErrorDecorator,
-				getFieldEditorParent()));
-
-		label = new Label(getFieldEditorParent(), SWT.WRAP);
-		label
-				.setText(TaskAssistExampleMessages.Preferences_RequiredFieldIndicator);
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDLABELINDICATOR,
-				TaskAssistExampleMessages.Preferences_ShowRequiredFieldLabelIndicator,
-				getFieldEditorParent()));
-
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION,
-				TaskAssistExampleMessages.Preferences_ShowRequiredFieldDecorator,
-				getFieldEditorParent()));
-
-		label = new Label(getFieldEditorParent(), SWT.WRAP);
-		label.setText(TaskAssistExampleMessages.Preferences_DecoratorDetails);
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWWARNINGDECORATION,
-				TaskAssistExampleMessages.Preferences_ShowWarningDecorator,
-				getFieldEditorParent()));
-		addField(new BooleanFieldEditor(
-				PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE,
-				TaskAssistExampleMessages.Preferences_ShowProposalCue,
-				getFieldEditorParent()));
-
-		Dialog.applyDialogFont(getFieldEditorParent());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java
deleted file mode 100644
index 4d7bf21..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceConstants.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.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 132479 - [FieldAssist] Field assist example improvements
- *******************************************************************************/
-package org.eclipse.ui.examples.fieldassist.preferences;
-
-/**
- * Constant definitions for plug-in preferences
- */
-public class PreferenceConstants {	
-	public static final String PREF_DECORATOR_VERTICALLOCATION = "prefDecoratorVerticalLocation";
-	public static final String PREF_DECORATOR_VERTICALLOCATION_TOP = "prefDecoratorVerticalTop";
-	public static final String PREF_DECORATOR_VERTICALLOCATION_CENTER = "prefDecoratorVerticalCenter";
-	public static final String PREF_DECORATOR_VERTICALLOCATION_BOTTOM = "prefDecoratorVerticalBottom";
-	public static final String PREF_DECORATOR_HORIZONTALLOCATION = "prefDecoratorHorizontalLocation";
-	public static final String PREF_DECORATOR_HORIZONTALLOCATION_LEFT = "prefDecoratorHorizontalLeft";
-	public static final String PREF_DECORATOR_HORIZONTALLOCATION_RIGHT = "prefDecoratorHorizontalRight";
-	
-	public static final String PREF_DECORATOR_MARGINWIDTH = "prefDecoratorMarginWidth";
-
-	public static final String PREF_SHOWERRORDECORATION = "prefShowErrorDecoration";
-	public static final String PREF_SHOWERRORMESSAGE = "prefShowErrorMessage";
-	
-	public static final String PREF_SHOWWARNINGDECORATION = "prefShowWarningDecoration";
-	
-	public static final String PREF_SHOWREQUIREDFIELDDECORATION = "prefShowRequiredFieldDecoration";
-	public static final String PREF_SHOWREQUIREDFIELDLABELINDICATOR = "prefShowRequiredFieldLabelIndicator";	
-	
-	public static final String PREF_SHOWCONTENTPROPOSALCUE = "prefShowContentProposalCue";	
-
-	public static final String PREF_SHOWSECONDARYPOPUP = "prefShowSecondaryPopup";
-	public static final String PREF_CONTENTASSISTKEY_PROPAGATE = "prefContentAssistKeyPropagate";
-	public static final String PREF_CONTENTASSISTDELAY = "prefContentAssistDelay";
-
-	public static final String PREF_CONTENTASSISTKEY = "prefContentAssistKey";
-	public static final String PREF_CONTENTASSISTKEY1 = "Ctrl+Space";
-	public static final String PREF_CONTENTASSISTKEY2 = "*";
-	public static final String PREF_CONTENTASSISTKEYAUTO = "Alphanumeric key (on auto-activate delay)";
-	public static final String PREF_CONTENTASSISTKEYAUTOSUBSET = "t, d (on auto-activate delay)";
-	
-	public static final String PREF_CONTENTASSISTRESULT = "prefContentResult";
-	public static final String PREF_CONTENTASSISTRESULT_REPLACE = "replace";
-	public static final String PREF_CONTENTASSISTRESULT_INSERT = "insert";
-	public static final String PREF_CONTENTASSISTRESULT_NONE = "none";
-	
-	public static final String PREF_CONTENTASSISTFILTER = "prefContentAssistFilter";
-	public static final String PREF_CONTENTASSISTFILTER_CUMULATIVE = "cumulative filter";
-	public static final String PREF_CONTENTASSISTFILTER_CHAR = "character filter";
-	public static final String PREF_CONTENTASSISTFILTER_NONE = "none";
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java b/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java
deleted file mode 100644
index e4c3c13..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/Eclipse UI Examples Field Assist/org/eclipse/ui/examples/fieldassist/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.fieldassist.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.ui.examples.fieldassist.FieldAssistPlugin;
-
-/**
- * Class used to initialize default preference values.
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = FieldAssistPlugin.getDefault()
-				.getPreferenceStore();
-		store.setDefault(PreferenceConstants.PREF_SHOWERRORDECORATION, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWERRORMESSAGE, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWWARNINGDECORATION, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWREQUIREDFIELDDECORATION,
-				false);
-		store.setDefault(
-				PreferenceConstants.PREF_SHOWREQUIREDFIELDLABELINDICATOR, true);
-		store.setDefault(PreferenceConstants.PREF_SHOWCONTENTPROPOSALCUE, true);
-		store.setDefault(PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION,
-				PreferenceConstants.PREF_DECORATOR_HORIZONTALLOCATION_LEFT);
-		store.setDefault(PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION,
-				PreferenceConstants.PREF_DECORATOR_VERTICALLOCATION_CENTER);
-		store.setDefault(PreferenceConstants.PREF_DECORATOR_MARGINWIDTH, 0);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTKEY,
-				PreferenceConstants.PREF_CONTENTASSISTKEY1);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTKEY_PROPAGATE,
-				false);
-		store.setDefault(PreferenceConstants.PREF_SHOWSECONDARYPOPUP, true);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTDELAY, 1000);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTRESULT,
-				PreferenceConstants.PREF_CONTENTASSISTRESULT_REPLACE);
-		store.setDefault(PreferenceConstants.PREF_CONTENTASSISTFILTER,
-				PreferenceConstants.PREF_CONTENTASSISTFILTER_CHAR);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
deleted file mode 100644
index de8dca4..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,10 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.fieldassist; singleton:=true
-Bundle-Version: 1.1.0
-Bundle-Activator: org.eclipse.ui.examples.fieldassist.FieldAssistPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
-Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.ui.examples.fieldassist/about.html b/examples/org.eclipse.ui.examples.fieldassist/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.fieldassist/build.properties b/examples/org.eclipse.ui.examples.fieldassist/build.properties
deleted file mode 100644
index 0cf35a9..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-source.. = Eclipse UI Examples Field Assist/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               .,\
-               META-INF/
-
-src.includes = about.html
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +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="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html b/examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html
deleted file mode 100644
index d437456..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/doc-html/ui_fieldassist_ex.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0//en">
-<html>
-<head>
-<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2006. 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>Workbench - Field Assist Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Field Assist</b></h2>
-
-<h3>
-Introduction</h3>
-The Field Assist example shows how to use the support provided in <code>org.eclipse.jface.fieldassist</code>
-to provide task assistance in text fields.  An example dialog shows how to set up field decorations
-to indicate required fields, fields with errors and warnings, and fields that supply content assist or quick
-fix.  The 
-example also includes a preference page that 
-allows you to configure the decorations and the content assist support.
-<h3>
-Running the example</h3>
-When the plug-in is installed, you should see a FieldAssist action
-on the action bar.  Choose the menu item "Open Field Assist Dialog..."
-This will launch the field assist dialog.  The dialog can be configured
-using the example preferences.  
-<h4>
-Setting Field Assist Preferences</h4>
-<p>
-Two preference pages are provided for setting up the way the dialog
-behaves.  The <b>Field Assist Example Preferences</b> page allows you
-to configure how the dialog annotates fields with errors and warnings,
-required fields, and content assist.  A combination of decorations 
-can be used to annotate the fields.  This preference
-page is intended to show what is possible when configuring decorations.
-It is geared more toward the programmer trying out field assist, and
-is not intended to be an example of a good preference page for letting
-end users control the annotations.
-</p>
-<p>The <b>Content Assist
-Preferences</b> page allows you to configure how the content assist is 
-installed on the dialog text field.  Most of the options provided in the
-field assist API (ContentProposalAdapter) are configurable on this page.
-Note that it is possible to configure the content assist for an undesirable
-user experience.  For example, setting content assist to auto-activate on all
-characters using a long delay is not desirable.  It can be confusing
-to use cumulative proposal filtering when the filter keys are not propagated
-back to the control.  The purpose of exposing the API in the preference page is
-to allow the field assist programmer to try all possible combinations.
-It is not expected that any of these preferences would ever be exposed to
-an end user, but rather that the developer chooses the best combination of
-these values to provide a certain style of content assist.
-</p>
-<h4>Using the dialog</h4>
-<p>
-The example dialog shows several different ways to configure
-decorations and content proposal behavior in the first
-dialog group (Security group):
-<ul>
-<li> The <b>User name</b> field is configured as a required field with content
-assist.  This field is considered in error when a non-alphabetic character
-is typed in the field.  A quick fix menu is installed on the error decoration
-that allows the user to strip non-alphabetic characters.  The field is
-considered in a warning mode when the name "bob"
-is typed in the field.  This field also installs a default select (double-click) listener on
-the decoration to demonstrate the decoration listener interface.</li>
-<li>The <b>Combo user name</b> field is configured similarly, but uses a combo box 
-instead of a text field, and installs a selection (single click) listener on
-the decoration rather than a default select listener.</li>
-<li>The <b>Age</b> field demonstrates the use of a Spinner widget with decorations.
-It is configured as a required field, but does not provide an error state.  It
-is considered in a warning mode when an age greater than 65 is set.</li>
-<li>The <b>Password</b> field does not use any decorations or content assist.
-It is merely provided to demonstrate that non-decorated fields can be easily aligned
-with decorated fields.</li>
-</ul>
-</p>
-<p>
-The second dialog group shows how to use the AutoCompleteField to
-get automatic field completion without using a content assist key or
-decorator.
-</p>
-<h4>Example source code</h4>
-<p>
-The example dialog is not very complex, but is intended to demonstrate how to
-program field assist.  Some notes about the source code follow:
-<ul>
-<li>When using ControlDecoration, the layout code must ensure that there is
-enough margin space around the decoration to render the decoration.
-<li>The example plug-in registers standard field decorators for indicating
-the availability of content assist, marking a field as required, or marking
-a field that has an error with quick fix or warning.  In cases where a standard decorator
-description is used in all fields, the actual decorations from the registry are
-used.  In cases where the field provides a unique description of an error or warning, 
-a unique decoration containing the text is managed by the field. </li>
-<li>SmartField and its subclasses are used to provide field-specific 
-validation, error and warning messages, content retrieval, and optional quick fix for
-the different fields in the dialog.  We expect that applications provide
-similar frameworks (such as data binding) to achieve this goal.  SmartField
-is intended to show a simple technique for validating different fields inside
-a dialog.  It is not considered a robust example of a semantic field definition
-framework.</li>
-</ul>
-</p>
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif b/examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.fieldassist/plugin.properties b/examples/org.eclipse.ui.examples.fieldassist/plugin.properties
deleted file mode 100644
index dad4c04..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/plugin.properties
+++ /dev/null
@@ -1,18 +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
-###############################################################################
-Plugin.name = Field Assist Example
-Plugin.providerName = Eclipse.org
-MainPreferences.Name = Field Assist Example Preferences
-ContentAssistPreferences.Name = Content Assist Preferences
-Actions.ActionSetName = Field Assist Example Action Set
-Actions.ExampleMenu = Fiel&d Assist 
-Actions.TestDialogName = &Field Assist Test Dialog...
-Actions.TestDialogTooltip = Open a dialog that tests the field assist API
diff --git a/examples/org.eclipse.ui.examples.fieldassist/plugin.xml b/examples/org.eclipse.ui.examples.fieldassist/plugin.xml
deleted file mode 100644
index 1e0aa76..0000000
--- a/examples/org.eclipse.ui.examples.fieldassist/plugin.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%Actions.ActionSetName"
-            visible="true"
-            id="org.eclipse.ui.examples.fieldassist.actionSet">
-         <menu
-               label="%Actions.ExampleMenu"
-               id="exampleMenu">
-            <separator
-                  name="exampleGroup">
-            </separator>
-         </menu>
-         <action
-               label="%Actions.TestDialogName"
-               icon="icons/sample.gif"
-               class="org.eclipse.ui.examples.fieldassist.actions.TestDialogAction"
-               tooltip="%Actions.TestDialogTooltip"
-               menubarPath="exampleMenu/exampleGroup"
-               toolbarPath="exampleGroup"
-               id="org.eclipse.ui.examples.fieldassist.actions.ExampleAction">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%MainPreferences.Name"
-            class="org.eclipse.ui.examples.fieldassist.preferences.FieldAssistPreferencePage"
-            id="org.eclipse.ui.examples.fieldassist.preferences.FieldAssistPreferencePage">
-      </page>
-     <page
-            name="%ContentAssistPreferences.Name"
-            class="org.eclipse.ui.examples.fieldassist.preferences.ContentAssistPreferencePage"
-            category="org.eclipse.ui.examples.fieldassist.preferences.FieldAssistPreferencePage"
-            id="org.eclipse.ui.examples.fieldassist.preferences.ContentAssistPreferencePage">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.ui.examples.fieldassist.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.job/.classpath b/examples/org.eclipse.ui.examples.job/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.ui.examples.job/.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/examples/org.eclipse.ui.examples.job/.cvsignore b/examples/org.eclipse.ui.examples.job/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.job/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.job/.project b/examples/org.eclipse.ui.examples.job/.project
deleted file mode 100644
index bf9091f..0000000
--- a/examples/org.eclipse.ui.examples.job/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.job</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF
deleted file mode 100644
index 108ff21..0000000
--- a/examples/org.eclipse.ui.examples.job/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Progress Examples Plug-in
-Bundle-SymbolicName: org.eclipse.ui.examples.job; singleton:=true
-Bundle-Version: 3.0.0
-Bundle-ClassPath: ProgressExamples.jar
-Bundle-Activator: org.eclipse.ui.examples.jobs.ProgressExamplesPlugin
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.examples.jobs,
- org.eclipse.ui.examples.jobs.actions,
- org.eclipse.ui.examples.jobs.views
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors
-Eclipse-AutoStart: true
diff --git a/examples/org.eclipse.ui.examples.job/README.TXT b/examples/org.eclipse.ui.examples.job/README.TXT
deleted file mode 100644
index b835369..0000000
--- a/examples/org.eclipse.ui.examples.job/README.TXT
+++ /dev/null
@@ -1,38 +0,0 @@
-This examples plug-in demonstrates the following features:

-

-1. deferred tree/table population

-    - serialized children fetch jobs or concurrent

-    - batching updates to the collector

-    - (optional) different ways of showing progress replacing current pending node (e.g. changing parent's label / image)

-    

-2. progress view

-    - cancellation

-    - showing progress, sub tasks

-    - showing errors

-    - progress groups

-    - appearing/disapearing as floating window

-    - system jobs aren't shown

-    

-3. requestInUI

-    - post a request

-    - post a request then cancel before user has launched it

-    - post a request, cancel, and replace with another

-    - post a request and allow the user to cancel without running the request

-    

-4. blocked foreground operation

-    - run a background job that locks the workspace

-    - run a foreground job that requires workspace (expect blocked dialog with progress view embeded)

-    - open an editor and type then save (progress dialog should show blocked)

-    

-5. workbench part support for progress

-    - run a job in the context of a view/editor

-    - get busy cursor plus animating something

-    - view or editor adding their own custom behavior when job is run

-    

-6. Creating progress groups

-    - that are run serialized

-    - that are run concurrently

-    - cancel one sub job

-    - parent is updated correctly

-    

-7. running action via busyCursorWhile
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/about.html b/examples/org.eclipse.ui.examples.job/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.job/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/build.properties b/examples/org.eclipse.ui.examples.job/build.properties
deleted file mode 100644
index 384a829..0000000
--- a/examples/org.eclipse.ui.examples.job/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-source.ProgressExamples.jar = src/
-bin.includes = plugin.xml,\
-               icons/,\
-               *.jar,\
-               ProgressExamples.jar,\
-               META-INF/
diff --git a/examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt b/examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt
deleted file mode 100644
index 6d52538..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/Responsive UIs.ppt
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc b/examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc
deleted file mode 100644
index 235f922..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/eclipse-con-talk_2.doc
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/doc/responsive_ui.html b/examples/org.eclipse.ui.examples.job/doc/responsive_ui.html
deleted file mode 100644
index d1060f4..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/responsive_ui.html
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-  <title></title>
-</head>
- <body>
- 
-<h1>Towards a more responsive Eclipse UI</h1>
- 
-<font size="-1">Last modified: June 2, 2003</font> 
-<p>Eclipse is well known as a powerful integrated development environment,
-but it is perceived by users as sometimes being unwieldy or unresponsive
-to work with. The goal of this work is to uncover the underlying causes of
-the unresponsiveness and provide Eclipse developers with the tools they need
-to focus on making their code responsive.  </p>
- 
-<p>To begin with, it is important to note that, responsiveness is not the
-same as performance, and to some extent they are contradictory:</p>
- 
-<p>The <i>performance</i> of an application is a measure of how much work
-it can do in a given length of time. For example, the Eclipse Platform can
-operate on thousands of files per minute on a typical desktop system. One
-way to achieve high performance is to ensure that all available resources 
-are dedicated to each task until it is complete. Since most modern window
-systems require applications to regularly call system code to keep their
-user interfaces active, dedicating all processing resources to a non-user-interface
-task will cause the user interface to become unresponsive.</p>
- 
-<p>The <i>responsiveness</i> of an application is a measure of how often
-its user interface is in a state where the user can interact with it, how
-often those interactions can trigger new tasks being initiated, and how often
-the information the user interface is displaying accurately reflects the state
-of the system it is modeling. Implementing a responsive system will require
-the system resources to be split across multiple concurrent tasks, so although
-the user will typically be more productive, the time it takes the system
-to complete a particular task will be longer (i.e. Its performance on <u>that
-task</u> will be lower).</p>
- 
-<p>In order to increase the responsiveness of the Eclipse Platform we will
-be looking at the following two areas:</p>
- 
-<ol>
- 	<li>
-    <p>all of the user interface "features" of the 	Eclipse Platform will
-be investigated to remove any inherent 	limitations which prevent them from
-being used in a responsive 	fashion. We have not begun work on this aspect
-of the problem, so it 	is difficult to provide any definitive examples. However,
-some 	likely candidates for investigation, at least, would be:</p>
- </li>
-</ol>
-<ul>
- 	<li>
-    <p>the startup sequence, since the time between when the user 	starts
-the application and when they can start working is very 	important to their
-perception of its responsiveness.</p>
- 	</li>
-  <li>
-    <p>SWT widgets like the Table, Tree, and List whose API make it 	difficult
-to code in an "on demand" style where the 	contents are requested by the
-widget when they are required for 	display, rather than up front by the application.</p>
- 	</li>
-  <li>
-    <p>the Java text editor, which takes significantly longer to get 	to
-the point where the contents can be edited than the simple text 	editor.</p>
- </li>
-</ul>
- 
-<ol start="2">
- 	<li>
-    <p>certain operations like builds and searches which currently 	run synchronously
-and block the user (at the UI) from doing other 	work until they are completed
-will be modified to run asynchronously 	in the background. Implementing this
-requires an improved 	concurrency architecture. The remainder of this document
-describes 	the work which has been done so far in that area.</p>
- </li>
-</ol>
- 
-<h2>Overview of current problems</h2>
- 
-<ul>
- <li> Use of modal progress dialogs is pervasive in the UI, preventing the
-user from doing any other work (or even browsing) while long running tasks
-are processing. </li>
- <li> Very long running operations only update the UI once at the very end.
-For example, when searching, no search results are available for viewing
-until the entire search is complete.  When importing or checking out large
-projects, the project doesn't appear in the UI until every file in the project
-has been created. </li>
- <li> Many components have their own mechanism for managing background activity.
- Examples include: search indexing, UI decoration, Java editor reconciling,
-and workspace snapshot. Each component should not have to roll their own
-concurrency architecture for off-loading work into background threads. </li>
- <li>The current workspace lock is heavy handed.  There is a single write
-lock for the entire  workspace, and it is generally acquired for significant
-periods of time.  This can block other processes for several minutes.  When
-the lock is acquired, no other threads can modify the workspace in any way. 
-  </li>
- <li> The workspace locking mechanism is currently tied to the mechanism
-for batching workspace changes.  We widely advertise that compound workspace
-changes should be done within an IWorkspaceRunnable.  The workspace is always
-locked for the duration of the IWorkspaceRunnable even if it is not making
-changes to the workspace. </li>
- <li> Various plugins have their own locking mechanisms.  Since plugins don't
-always know about each other, these locks can conflict in unforeseeable ways,
-making Eclipse prone to deadlock. </li>
- 
-  <p> </p>
-</ul>
-  
-<h2>Proposed solutions</h2>
- 
-<h3>Job scheduling mechanism</h3>
- 
-<p> Platform core (runtime plugin) will introduce a new job manager API for
-background work.  This API will allow clients to: </p>
-<ul>
- <li> Schedule <i>Job</i> instances, units of runnable background activity.
-Jobs can be scheduled either for immediate execution, or execution after
-some specified delay.  The platform will maintain a queue for waiting jobs,
-and will manage a pool of worker threads for running the jobs. </li>
- <li> Specify job scheduling priority, as well as explicit dependencies between
-jobs (Job A must run after Job B but before Job C, etc). </li>
- <li> Specify job scheduling rules, which will allow implicit constraints
-to be created between jobs that don't know about each other.  For example,
-a Job can say: "While I'm running, I require exclusive access to resource
-X.  Don't run me until it's safe to do so, and don't run any other jobs that
-might conflict with me until I'm done".  The constraint system will be generic
-at the level of the job scheduling API, but other plugins can introduce standard
-constraints that apply to their components. </li>
- <li> Query, cancel and change priority of jobs that are waiting to run.  This
-allows clients to cancel jobs that have become irrelevant before they had
-a chance to run. (Example: cancel pending indexing or decoration jobs on
-a project when the project is deleted). </li>
- <li> Group jobs into families, and query, cancel, and manage entire job
-families as a unit. </li>
- <li> Register for notification when jobs are scheduled, started, finished,
-canceled, etc.  Clients can register for notification on a single job, or
-on all jobs. </li>
- <li> Provide a mechanism to allow jobs to carry their work over to another
- thread and finish asynchronously.  This is needed to allow jobs to asyncExec
- into the UI, but maintain scheduling rules and avoid notifiying listeners until
- the async block has returned.
- </li>
- <li> Add listeners to be hooked to the progress monitor callbacks of the
-running jobs.  This allows the UI to report progress on jobs that would otherwise
-have no way of connecting with the UI (such as indexing or snapshot jobs). 
-  </li>
- 
-</ul>
- 
-<p> This scheduling mechanism will replace most (if not all) existing background
-thread mechanisms in the SDK.  This includes: editor reconcilers, UI decoration, 
-search and Java indexing, workspace snapshot, and various threads used in the launch/debug
-framework: JDI thread for communicating with the VM, threads for monitoring
-input and output streams, debug view update thread, and the thread waiting
- for VM termination. </p>
- 
-<p> Also, the scheduling facility will make it easier for more components
-to off-load work into background threads, in order to free up the UI thread
-for responding to the user.  This includes all jobs that currently run in
-the context of a modal progress indicator, but also other processing work
-that currently executes in the UI.  Examples of activity that can be offloaded
-into jobs: decorating editors (marker ruler, overview ruler), type hierarchy
-computation, structure compare in compare editors, auto-refresh with file
-system, etc.  </p>
-   
-<h3>New UI look and feel for long running activity</h3>
- 
-<p> Long running operations will generally be run without a modal progress indicator 
-  by scheduling them with the core job manager API.   Most jobs currently using a
-  modal progress dialog will switch to this new non-modal way of running.
-  The platform UI will provide a view from which users can see the list of waiting and 
-  running background jobs, along with their current progress. This is a view rather than 
-  a dialog so the user can continue to manipulate the UI while background jobs are 
-  running. This view will likely take the form of a tree so that expanding a job will
-  give more detailed progress information.  The UI will also provide some ubiquitous 
-  feedback device (much like the page loading indicator in popular web browsers or the 
-  Macintosh user interface), that will indicate when background activity is happening. 
- </p>
-<p>Users will be able to cancel any background activity from the progress view. 
-  Users will also be able to pause, resume, or fast forward (increase priority 
-  of) any waiting job. Since we can never know which of several background jobs 
-  the user is most anxious to complete, this puts some power in the user's hands 
-  to influence the order of execution of waiting background jobs.</p>
-
-<p>
-  The platform UI will introduce a special job called a UI job, which is simply a job that 
-  needs to be run in the UI Thread. We define this type of job as a convenience for those 
-  who do not want to keep looking for a Display to asyncExec in.  Casting UI work
-  as jobs will allow the framework to control scheduling based on priority and user 
-  defined scheduling rules.  Note that although UI jobs should generally be brief
-  in duration, they may require locks and thus the framework must have a strategy
-  for avoiding deadlock when the UI thread is waiting for a lock.
- 
-<h3>Minimize use of long term workspace locks</h3>
- 
-<p> We will actively discourage clients from acquiring the workspace lock
-for indefinite periods of time.  <code>IWorkspaceRunnable</code> is the current
-mechanism that allows clients to lock the workspace for the duration of a
-runnable.  This API will be deprecated.   Clients that require exclusive
-access to portions of the workspace should  schedule background jobs with
-appropriate scheduling rules.  Scheduling rules can  specify smaller portions
-of the workspace, allowing clients to "lock" only the resources  they need.
-Longer running workspace API methods will be broken up as much as  possible
-to avoid locking the workspace for extended periods.  Clients that do not 
-run as jobs, or that run as jobs without the appropriate scheduling rules,
-will have to be tolerant of concurrent modifications to the workspace. </p>
-  
-<h3>New resource change notification and autobuild strategy</h3>
- 
-<p> The current mechanism for batching resource changes and auto-building
-is based on the <code>IWorkspaceRunnable</code> API.  This approach has two
-problems: </p>
-<ol>
- <li> Clients sometimes forget to use it, which results in severe performance
-problems because notifications and auto-builds happen more often than necessary. 
-  </li>
- <li> This can become too coarse-grained for long running operations.  If
-the user begins an operation that will take several minutes, it would be
-nice to perform some incremental updates (notifications) while the operation
-is still running. </li>
- 
-</ol>
- 
-<p></p>
- 
-<p> The resources plugin will adopt new heuristics for when builds and notifications 
-should happen.  These heuristics will likely require some fine-tuning and
-may need to be customizable, but generally: </p>
-<ul>
- <li>Resource change notifications will always start within a bounded  period
-after the workspace has changed (such as five seconds). This will ensure notifications
-occur periodically during long operations. </li>
- <li> Notification will begin immediately if there have been no workspace
-changing jobs in the job queue for a short period (such as 500 milliseconds).
- This ensures timely  user feedback when background activity has stopped.
- There will be a lower bound on the frequency of notifications to prevent
-listeners from hogging the CPU. </li>
- <li>There will be API for forcing an immediate notification if clients know
-it is either necessary or desirable for a notification to occur.  (actually,
-this mechanism  has existed since Eclipse 1.0 in the method <code>IWorkspace.checkpoint</code>). 
-UI actions will use this for indicating when a user action has completed.
- Other clients that absolutely depend on the results of notifications can
-also use this mechanism  (for example clients that depend on the java model
-being up to date). </li>
- <li> Autobuilds will begin (if needed) when the work queue has been idle
-for a sufficient period of time (such as 1 second).  If a background job
-that requires write access to the workspace is scheduled before autobuild
-completes, then auto-build will be canceled automatically.  Existing builders
-will need to improve their cancelation behaviour so that a minimal amount
-of work is lost. </li>
- <li> There will still be a mechanism to allow users or API clients to force
-a build to occur, and these explicit builds will not be canceled automatically
-by conflicting background activity. </li>
- <li> Both builders and listeners could adapt automatically if they start
-interfering with ongoing work by increasing their wait period. This would
-allow builders and listeners to adapt to changes in activity levels. </li>
- 
-</ul>
- 
-<p></p>
- 
-<p> Unless explicitly requested, builds and resource change listeners will
-always be run  asynchronously in a different thread from the one that initiated
-the change.  This will improve the responsiveness of workspace changing operations
-that are initiated from the UI thread. </p>
- 
-<h3>Centralized locking mechanism</h3>
- 
-<p> Platform core (runtime plugin) will introduce a smart locking facility.
- Clients that  require exclusive access to a code region should use these
-locks as a replacement for  Java object monitors in code that may interact
-with other locks.  This will allow the platform to detect and break potential
-deadlocks.  Note that these locks are orthogonal to the job scheduling rules
-described earlier.  Job scheduling rules typically ensure that only non conflicting
-jobs are running, but cannot guarantee protection from malicious or incorrect
-code. </p>
-  These locks will have the following features: 
-<ul>
- <li>They will be reentrant.  A single thread can acquire a given lock more
-than once, and it will only be released when the number of acquires equals
-the number of releases. </li>
- <li>They will automatically manage interaction with the SWT synchronizer
-to avoid  deadlocking in the face of a syncExec.  I.e., if the UI thread
-tries to acquire a lock, and another thread holding that lock tries to perform
-a syncExec, the UI thread will service the syncExec work and then continue
-to wait for the lock. </li>
- <li>They will avoid deadlocking with each other.  I.e., if thread A acquires
-lock 1, then waits on lock 2, while thread B acquires lock 2 and waits on
-lock 1, deadlock would normally ensue.  The platform locking facility will
-employ a release and wait protocol to ensure that threads waiting for locks
-do not block other threads. </li>
- 
-</ul>
-   
-<h2>Milestone targets</h2>
- 
-<ul>
- <li> M1: Core runtime job manager API defined and implemented.  UI API defined
-with reference implementation.  Prototype UI implementation of progress view
-and progress animation. All components should begin looking into thread safety
-issues with their API. </li>
- <li>M2: In a branch, a significant subset of the Eclipse platform converted
-to use the new mechanisms. Ongoing work in all components to become thread 
-safe and to port existing components to job manager API (reconciler, indexer,
-decorator, debug events). </li>
- <li> M3: all platform work moved from branch to HEAD at beginning of M3
-cycle.  Goal for end of M3 is some level of stability across entire SDK
-in new concurrent world.  All  component API must be thread safe. </li>
- 
-</ul>
-<p>
- This schedule is aggressive but the intent is to wrap up platform work by
-end of M3.  This allows plenty of time to shake out threading bugs and allow
-other components to stabilize by M4. 
-</p>
-
-(Plan item bug reference: <a
- href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=36957">36957</a>)<br>
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/doc/usecases.txt b/examples/org.eclipse.ui.examples.job/doc/usecases.txt
deleted file mode 100644
index f90c3ef..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/usecases.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-Basic concurrency use cases.  Some are overlapping, but each requires
-a different level of concurrency support.  Roughly ordered by perceived
-implementation difficulty.  1. and 2. are currently support in Eclipse 2.1,
-but we need to keep them in mind with any new story.
-
-1. Allow decoration tasks to continue in background without affecting
-   UI responsiveness or ability to modify resources.
-   
-   Examples:
-     a) User performs a CVS update.  While CVS is computing and updating 
-        new decorations in various views, the user wants to continue viewing
-        and modifying resources.  Duplicate decoration work should be detected
-        and avoided (don't decorate the same resource twice if possible).
-     b) User is typing in an editor.  Computation of effects such as
-        "red sea", and bracket matching should happen in the background
-        without affecting responsiveness.
-
-2. Very long running operations that do not modify resources, but must
-   be stoppable, and joinable.
-   
-   Examples:
-     a) User imports a JAR file.  This triggers an indexing job in the background.
-        User can continue to view and modify resources while indexing happens.
-        If the user deletes the JAR, or modifies it, duplicate or superfluous
-        background jobs should be canceled automatically.
-     b) User imports a JAR file.  This triggers an indexing job in the background.
-        User then requests a type hierarchy.  Priority of any index jobs
-        required by the type hierarchy should be bumped up and completed
-        immediately.
-
-3. Allow browsing during long operation
-
-  Example:
-    The user has started some long running background task (checkout,
-    import, build, etc).  They want a live UI so they can browse resources
-    (get children, get contents, dirty editors) while they wait for the long 
-    operation to finish.
-    
-  Deluxe:
-    The background task can complete in chunks, allowing the user to browse
-    and modify resources that were involved in the operation.  I.e., they
-    can edit imported resources before the import has completed.
-
-4. Allow edit during long running read-only operations
-  
-  Example:
-    The user starts a search.  Since searches don't modify resources,
-    the user may want to modify (add, delete, change) resources while
-    the search is happening.  This may or may not affect the search
-    results.
-
-5. Concurrent edit.
-
-  Examples:
-    a) The user does a CVS update on project A while project B is being deleted.
-    b) The user does a CVS update on project A while that same project is
-    being compiled, deleted, etc.  This is the extreme concurrency example.  
-
-    
-6. Allow preemption and restart on long-running operation.
-
-  Examples:
-  	a) The Mcq example.  User hits save on a file, and build starts.  User
-  	   realizes that there is an error, and they modify and save again.
-  	   They want to cancel the currently running build and start a new one.
-  	b) User selects a revision in the CVS repositories view, and hits
-  	   checkout.  While checkout is running, user realizes they chose
-  	   the wrong version, and they want to checkout a different one instead.
-  	   They want to cancel the current checkout and pre-empt with another.
-  	   
diff --git a/examples/org.eclipse.ui.examples.job/doc/workspace-lock.html b/examples/org.eclipse.ui.examples.job/doc/workspace-lock.html
deleted file mode 100644
index 83f19f3..0000000
--- a/examples/org.eclipse.ui.examples.job/doc/workspace-lock.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-<h1>Workspace lock granularity</h1>
-<h2>The problem</h2>
-<ul>
-<li>The current workspace lock is heavy handed.  There is a single write lock for the entire 
-workspace, and it is generally acquired for significant periods of time.  This can block
-other processes for several minutes.  When the lock is acquired, no other threads
-can write to the workspace in any way. The write lock does not interfere with workspace
-readers, which are always allowed to proceed.
-</li>
-<p>
-<li>
-Processes often don't know in advance whether writes are necessary, so often the 
-lock is acquired for long periods even when no writing occurs (for example on searches).
-</li>
-<p>
-<li>
-The workspace locking mechanism is currently tied to the mechanism for batching
-workspace changes.  We widely advertise that compound workspace changes should
-be done within an IWorkspaceRunnable.  The workspace is always locked for the
-duration of the IWorkspaceRunnable even if it is not making changes to the workspace.
-</li>
-<p>
-<li>
-In the absence of other sync mechanisms, other clients use the workspace lock
-for working with operations that don't necessarily even operate on resources.
-</li>
-<p>
-<li>
-To avoid deadlock, many clients acquire the workspace lock "just in case", before
-acquiring their own private lock mechanism.
-</li>
-<p>
-<li>
-Although this problem is most evident with the workspace lock, there are other
-heavy-handed locks in Eclipse with which the same issues appear (the CVS lock is
-another example).
-</li>
-</ul>
-
-<h2>Proposed Solution</h2>
-<p>
-The current workspace lock is very coarse-grained both in how long the lock is held,
-and the scope of the resources that are locked by it.  To achieve better concurrency
-in the workspace, we need to attack the lock's physical granularity, its temporal
-granularity, or some combination of the two.
-</p>
-<p>
-We can improve the lock's temporal granularity by removing any public, general way 
-of locking for an arbitrary period of time. I.e., we make the simple change of not 
-acquiring the lock for IWorkspaceRunnables. (or even better, deprecate IWorkspaceRunnable entirely).
-</p>
-<p>
-Internally, the workspace would continue to use a single lock in critical regions to ensure
-the integrity of individual API calls.  However, a systematic effort would be made to
-break down the duration of locking within those calls, where possible.  For example,
-a best-effort copy method does not need to lock the workspace for its entire duration,
-but only for each unit of work where a new resource is created at the destination.
-</p>
-<p>
-The underlying design rule is to prevent an atomic operation from locking
-the workspace for a long period of time.  Without the presence of long term locks, 
-long running concurrent operations will interleave their access to the workspace, 
-enabling several workspace-modifying operations to run at the same time.
-</p>
-<p>
-This solution is optimistic. It assumes that concurrent writes to the same set 
-of resources in a conflicting manner are relatively rare. One could in fact go further, and
-say that if concurrent operations are modifying the same resources at the same time,
-then it is either a user or programming error, and the concurrent tasks should just fail.
-Serves them right for trying to do contradictory things on the same set of resources.
-</p>
-<p>
-However, this philosophy is not acceptable without a very strong visual indication
-to the user of what is happening and when it will be finished.  I.e., if we had a progress
-dialog saying, "Resource X is being modified, and I will let you know when I'm done",
-then it might be acceptable to blame the user if they start a conflicting task before
-it finishes.  Some of the drawbacks of this approach are:
-<ol style="a">
-<li>The dialog is a distraction to the user in the cases where the user
-doesn't care when the task ends and is not waiting for its result</li>
-<li>This interaction style puts the onus on the user to avoid making mistakes.  </li>
-<li>In many cases the user doesn't know what resources are modified by a given 
-operation. I.e., it is unrealistic to assume that users can compute the intersection
-between the set of resources that all current background threads may modify
-and the set of resources that might be modified by another task they are thinking
-of starting.</li>
-<li>The penalty to the user for making a mistake can be severe.  For example,
-if the user starts a CVS commit operation, and then, thinking the commit is about done,
-decides to delete the project, they will be unhappy if the deletion started before
-the commit finished.</li>
-</ol>
-<p>
-So, how do we schedule concurrent jobs in a way that prevents conflicts without
-employing a single long term lock? We can introduce a scheme where
-jobs can specify in advance whether they need exclusive access to a resource.
-That is, each job can optionally supply a <i>scheduling rule</i> that is used by
-the job scheduler when making decisions about which jobs to run.  The API for these 
-rules would look something like this:
-<pre>
-public interface ISchedulingRule {
-	public boolean isConflicting(ISchedulingRule);
-}
-</pre>
-<p>
-While these rules would remain generic at the job scheduling level, the workspace
-can introduce some standard rules.  For example, a rule could request an array
-of resources, or the entire workspace.  In this way, finer-grained portions of the workspace
-can be effectively locked by a job.
-</p>
-<p>
-The contract on these rules would be as follows: the job scheduling mechanism 
-guarantees that a job won't be started if there is a job currently running that conflicts
-with its scheduling rule.  This scheduling rule would be orthogonal to any locking 
-mechanism, thus avoiding some of the problems discussed earlier with regard
-to pre-specification of locks. We still need to revisit our previous objections to
-pre-specified locks to see how they apply to scheduling rules:
-<ul>
-<li>Scheduling performance. The scheduling rules need to be resolved every time
-a job is to be run.  It is true that this will still impose an overhead on scheduling.
-Most of the time, however, there will be few or no jobs running so very little rule
-analysis is needed.  As the number of concurrent operations grows, the cost will
-increase.  However, this has the nice property that it is fast most of the time, and 
-only starts to slow down in the uncommon case where the system is already very busy anyway.
-</li>
-<li>How to know what rules to use?  In some cases it is hard to predict what resources
-will be changed by a given unit of work.  When third party API is called, there is often
-no contract saying what will be touched.  This is still an issue.  In the worst case,
-clients will err on the side of caution and specify that the entire workspace is needed.
-We will need to educate users to specify rules carefully, and if necessary to break
-jobs up into separate units with different rules.  We will introduce a way of creating
-composite jobs that will be run in a specific order, but each job can have its
-own scheduling rules.
-</li>
-<li>How to enforce that rules are followed?  The proposal is that we don't enforce
-anything.  That is, a job can request arbitrary locks regardless of what rules were
-stated.  To avoid deadlock, lock ordering with release and wait (described earlier)
-will be used.  The theory is that if jobs are well behaved and specify their rules
-correctly, deadlock will be rare, so release and wait will rarely be necessary.  To put
-it another way, the penalty for not specifying your rules correctly is that you might
-have some locks taken away from you when you don't expect it.  This is a much
-more palatable failure mode than throwing an exception, for example.
-</li>
-<li>Pre-allocation can be wasteful if resources are only actually needed for a short
-period of time.  This is still a potential problem with scheduling rules.  Job writers
-will have to take this into consideration when designing jobs and their rules.  If a 
-job only needs access to a resource briefly at the end of a long operation, it can
-be coded as two jobs with different rules.  This is an area where scheduling rules
-introduce a new complication that clients need to be aware of.
-</li>
-</ul>
-<p>
-Scheduling rules may not be necessary at all in cases where contention is not likely,
-or where the job is written in such a way that concurrent changes are tolerated.
-if clients are confident that no contention is likely, they don't need to specify any
-rules.  A good example for this is search.  Search may create search result markers
-on arbitrary resources.  However, search could be implemented to not have
-any scheduling rules, and it could be tolerant of concurrent changes and deletion.
-Since it only creates search markers, it doesn't care if those markers are changed
-or deleted after they are created.  Thus it is possible that search can be implemented without
-using any scheduling rules at all, even though it may potentially make modifications
-to an arbitrary set of resources.  Another example of this is CVS metadata files.  Since
-the CVS client is the only one that ever views or modifies the CVS metadata files,
-it may not need to create a scheduling rule for them.
-</p>
-<p>
-Finally, when there is contention between jobs, we need a
-mechanism for giving more value to jobs initiated by users versus background jobs 
-that the user is not waiting on results for.  Each job belongs to a priority class that
-can be used to manage this interaction.  User initiated jobs belong to the INTERACTIVE
-priority class. To avoid blocking interactive jobs for unacceptable periods of time, we
-can employ various policies to ensure the job gets run, such as:
-<ul>
-<li>Only start non-interactive jobs when NO interactive jobs are running</li>
-<li>If an interactive job is waiting to be run, and its rule conflicts with a currently
-running non-interactive job, the non-interactive job may be canceled to let the interactive
-job proceed.</li>
-<li>If an interactive job is waiting on a lock held by a non-interactive job, 
-the non-interactive job may be canceled to let the interactive job proceed.</li>
-</ul>
-
-<h3>Locking issues</h3>
-<h4>Is the UI thread allowed to acquire locks?</h4>
-<b>Reasons for "No":</b><br>
-<p>
-Clearly there is a deadlock risk due to the interaction with syncExec.
-We can handle this risk in the same way that we handle it in Eclipse 2.1.  By ensuring
-the core locking mechanism and the SWT synchronizer are aware of each other, we
-can avoid potential deadlocks by servicing syncExecs in the UI thread in the case
-where the UI thread is waiting on an acquired lock.  
-</p>
-<p>
-Not allowing locks in the UI thread would also help improve UI responsiveness.  
-If the UI thread is waiting on a lock, it cannot be processing the event queue, and thus
-the UI will fail to paint.
-</p>
-<p>
-If we don't allow locks in the UI thread, then we can easily add the extra restriction
-that locks must be acquired from within the context of currently running jobs.  This
-would give us a story for cleaning up misbehaving locks.  I.e., if someone acquires
-a lock but fails to release it, we can release it automatically when the job completes.
-</p>
-<b>Reasons for "Yes":</b><br>
-<p>
-The main drawback is that this would be unweildy to program with.  Some operations
-that acquire locks may actually be very fast.  Forcing the UI to fork a 
-job every time a lock is needed may be overkill in many cases.  If third party code is 
-called from the UI, the caller may not know if locks will be acquired deep down in the 
-call stack.  To be defensive, the UI would have to fork jobs whenever third party
-code is called.
-</p>
-<p>
-Another problem is how this rule would be enforced.  Throwing an exception when
-the UI thread attempts to acquire a lock would result in unacceptable runtime errors.
-</p>
-<h4>Do we expose locks?</h4>
-<p>
-Do we allow third party clients to directly acquire, for example, the workspace lock?
-The answer to this question must be "No", if we don't have the restriction that jobs
-be acquired within running jobs.  Otherwise, we would have no way of cleaning up
-locks that clients acquire but fail to release.  Is this acceptable?  Do we know of 
-any cases where clients will need to acquire the workspace lock, given that we have
-a system of rules to prevent conflicting jobs from running concurrently?
-</p>
-
-
-
-</body>	
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/icons/job_view.gif b/examples/org.eclipse.ui.examples.job/icons/job_view.gif
deleted file mode 100644
index 81fb7b4..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/job_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/icons/sample.gif b/examples/org.eclipse.ui.examples.job/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/icons/suspend.gif b/examples/org.eclipse.ui.examples.job/icons/suspend.gif
deleted file mode 100644
index 0d71e42..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/suspend.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/icons/tree_view.gif b/examples/org.eclipse.ui.examples.job/icons/tree_view.gif
deleted file mode 100644
index ce8bdb9..0000000
--- a/examples/org.eclipse.ui.examples.job/icons/tree_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.job/plugin.xml b/examples/org.eclipse.ui.examples.job/plugin.xml
deleted file mode 100644
index 229c50a..0000000
--- a/examples/org.eclipse.ui.examples.job/plugin.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="Progress Examples"
-            id="ProgressExamples">
-      </category>
-      <view
-            name="Lazy Trees"
-            icon="icons/tree_view.gif"
-            category="ProgressExamples"
-            class="org.eclipse.ui.examples.jobs.views.LazyTreeView"
-            id="org.eclipse.ui.examples.jobs.views.LazyTreeView">
-      </view>
-      <view
-            name="Job Factory"
-            icon="icons/job_view.gif"
-            category="ProgressExamples"
-            class="org.eclipse.ui.examples.jobs.views.JobsView"
-            id="org.eclipse.ui.examples.jobs.views.JobsView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.ui.resourcePerspective">
-         <view
-               ratio="0.5"
-               relative="org.eclipse.ui.views.TaskList"
-               id="org.eclipse.ui.examples.jobs.views.LazyTreeView"
-               relationship="right">
-         </view>
-         <view
-               ratio="0.5"
-               relative="org.eclipse.ui.views.TaskList"
-               id="org.eclipse.ui.examples.jobs.views.JobsView"
-               relationship="right">
-         </view>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="Job Example Actions"
-            visible="true"
-            id="ProgressExamples.actionSet">
-         <menu
-               label="&amp;Job"
-               id="sampleMenu">
-            <separator
-                  name="sampleGroup">
-            </separator>
-         </menu>
-         <action
-               label="&amp;Suspend Job Manager"
-               icon="icons/suspend.gif"
-               style="toggle"
-               class="org.eclipse.ui.examples.jobs.actions.SuspendJobManagerAction"
-               tooltip="Suspend the job manager"
-               menubarPath="sampleMenu/sampleGroup"
-               toolbarPath="sampleGroup"
-               id="org.eclipse.ui.examples.jobs.actions.SuspendJobManagerAction">
-         </action>
-         <action
-               label="&amp;Dump Job Information"
-               icon="icons/sample.gif"
-               class="org.eclipse.ui.examples.jobs.actions.DebugJobManagerAction"
-               tooltip="Dump job information"
-               menubarPath="sampleMenu/sampleGroup"
-			   id="org.eclipse.ui.examples.jobs.actions.DebugJobManagerAction">
-         </action>
-      </actionSet>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/BusyShowWhileDialog.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/BusyShowWhileDialog.java
deleted file mode 100644
index d6ef321..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/BusyShowWhileDialog.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package org.eclipse.ui.examples.jobs;
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.IconAndMessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.progress.ProgressManager;
-/**
- *BusyShowWhileDialog is a test of busyShowWhile in a modal dialog.
- */
-public class BusyShowWhileDialog extends IconAndMessageDialog {
-	/**
-	 * @param parentShell
-	 * @todo Generated comment
-	 */
-	public BusyShowWhileDialog(Shell parentShell) {
-		super(parentShell);
-		message = "Busy While Test"; //$NON-NLS-1$
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IconAndMessageDialog#getImage()
-	 */
-	protected Image getImage() {
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.Dialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createButtonsForButtonBar(Composite parent) {
-		super.createButtonsForButtonBar(parent);
-		Button detailsButton = createButton(parent, 4, "Start busy show while", false); //$NON-NLS-1$
-		detailsButton.addSelectionListener(new SelectionListener() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				try {
-					ProgressManager.getInstance().busyCursorWhile(new IRunnableWithProgress() {
-						/* (non-Javadoc)
-						 * @see org.eclipse.jface.operation.IRunnableWithProgress#run(org.eclipse.core.runtime.IProgressMonitor)
-						 */
-						public void run(IProgressMonitor monitor) throws InvocationTargetException,
-								InterruptedException {
-							long time = System.currentTimeMillis();
-							long delay = PlatformUI.getWorkbench().getProgressService().getLongOperationTime();
-							long end = time + delay + delay;
-							while (end > System.currentTimeMillis()) {
-								final Shell myShell = BusyShowWhileDialog.this.getShell();
-								myShell.getDisplay().asyncExec(new Runnable() {
-									/* (non-Javadoc)
-									 * @see java.lang.Runnable#run()
-									 */
-									public void run() {
-										if(myShell.isDisposed())
-											return;
-										myShell.getDisplay().sleep();
-										myShell.setText(String.valueOf(System.currentTimeMillis()));
-									}
-								});
-							}
-						}
-					});
-				} catch (InvocationTargetException error) {
-					error.printStackTrace();
-				} catch (InterruptedException error) {
-					//ignore - in this context it means cancelation
-				}
-			}
-			/* (non-Javadoc)
-			 * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetDefaultSelected(SelectionEvent e) {
-				//do nothing
-			}
-		});
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/ProgressExamplesPlugin.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/ProgressExamplesPlugin.java
deleted file mode 100644
index 0533c2f..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/ProgressExamplesPlugin.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.ui.examples.jobs;
-
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.examples.jobs.views.ProgressExampleAdapterFactory;
-import org.eclipse.ui.examples.jobs.views.SlowElement;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class ProgressExamplesPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static ProgressExamplesPlugin plugin;
-	public static String ID = "org.eclipse.ui.examples.job";
-	
-	/**
-	 * The constructor.
-	 */
-	public ProgressExamplesPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static ProgressExamplesPlugin getDefault() {
-		return plugin;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		IAdapterManager m = Platform.getAdapterManager();
-		IAdapterFactory f = new ProgressExampleAdapterFactory();
-		m.registerAdapters(f, SlowElement.class);
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java
deleted file mode 100644
index 6e500e1..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJob.java
+++ /dev/null
@@ -1,122 +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.examples.jobs;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ui.progress.IProgressConstants;
-
-/**
- * Base class for a simple test job with configurable parameters
- */
-public class TestJob extends Job {
-	/**
-	 * A family identifier for all test jobs
-	 */
-	public static final Object FAMILY_TEST_JOB = new Object();
-	/**
-	 * Total duration that the test job should sleep, in milliseconds.
-	 */
-	private long duration;
-	/**
-	 * Whether the test job should fail.
-	 */
-	private boolean failure;
-	/**
-	 * Whether the job should report unknown progress.
-	 */
-	private boolean unknown;
-	private boolean reschedule;
-	private long rescheduleWait;
-
-	/**
-	 * Creates a new test job
-	 * 
-	 * @param duration
-	 *            Total time that the test job should sleep, in milliseconds.
-	 * @param lock
-	 *            Whether the job should use a workspace scheduling rule
-	 * @param failure
-	 *            Whether the job should fail
-	 * @param indeterminate
-	 *            Whether the job should report indeterminate progress
-	 * @param rescheduleWait
-	 * @param reschedule
-	 */
-	public TestJob(long duration, boolean lock, boolean failure,
-			boolean indeterminate, boolean reschedule, long rescheduleWait) {
-		super("Test job"); //$NON-NLS-1$
-		this.duration = duration;
-		this.failure = failure;
-		this.unknown = indeterminate;
-		this.reschedule = reschedule;
-		this.rescheduleWait = rescheduleWait;
-		setProperty(IProgressConstants.ICON_PROPERTY, ProgressExamplesPlugin
-				.imageDescriptorFromPlugin(ProgressExamplesPlugin.ID,
-						"icons/sample.gif"));
-		if (lock)
-			setRule(ResourcesPlugin.getWorkspace().getRoot());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.jobs.InternalJob#belongsTo(java.lang.Object)
-	 */
-	public boolean belongsTo(Object family) {
-		if (family instanceof TestJob) {
-			return true;
-		}
-		return family == FAMILY_TEST_JOB;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.internal.jobs.InternalJob#run(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus run(IProgressMonitor monitor) {
-		if (failure) {
-			MultiStatus result = new MultiStatus(
-					"org.eclipse.ui.examples.jobs", 1, "This is the MultiStatus message", new RuntimeException("This is the MultiStatus exception")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			result
-					.add(new Status(
-							IStatus.ERROR,
-							"org.eclipse.ui.examples.jobs", 1, "This is the child status message", new RuntimeException("This is the child exception"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			return result;
-		}
-		final long sleep = 10;
-		int ticks = (int) (duration / sleep);
-		if (this.unknown)
-			monitor.beginTask(toString(), IProgressMonitor.UNKNOWN);
-		else
-			monitor.beginTask(toString(), ticks);
-		try {
-			for (int i = 0; i < ticks; i++) {
-				if (monitor.isCanceled())
-					return Status.CANCEL_STATUS;
-				monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-				try {
-					Thread.sleep(sleep);
-				} catch (InterruptedException e) {
-					return Status.CANCEL_STATUS;
-				}
-				monitor.worked(1);
-			}
-		} finally {
-			if (reschedule)
-				schedule(rescheduleWait);
-			monitor.done();
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java
deleted file mode 100644
index d8759f0..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/TestJobRule.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.ui.examples.jobs;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-
-/**
- * TestJobRule is a scheduling rules that makes all jobs sequential.
- *
- */
-public class TestJobRule implements ISchedulingRule {
-	private int jobOrder;
-
-	public TestJobRule(int order) {
-		jobOrder = order;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule)
-	 */
-	public boolean contains(ISchedulingRule rule) {
-		if (rule instanceof IResource || rule instanceof TestJobRule)
-			return true;
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule)
-	 */
-	public boolean isConflicting(ISchedulingRule rule) {
-		if (!(rule instanceof TestJobRule))
-			return false;
-		return ((TestJobRule) rule).getJobOrder() >= jobOrder;
-	}
-
-	/**
-	 * Return the order of this rule.
-	 * @return
-	 */
-	public int getJobOrder() {
-		return jobOrder;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java
deleted file mode 100644
index c38aa63..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/UITestJob.java
+++ /dev/null
@@ -1,57 +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.examples.jobs;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.ui.progress.UIJob;
-/**
- * Base class for a simple test UI job with configurable parameters
- */
-public class UITestJob extends UIJob {
-	private long duration;
-	private boolean failure;
-	private boolean unknown;
-	public UITestJob(long duration, boolean lock, boolean failure, boolean indeterminate) {
-		super("Test job"); //$NON-NLS-1$
-		this.duration = duration;
-		this.failure = failure;
-		this.unknown = indeterminate;
-		
-		if (lock)
-			setRule(ResourcesPlugin.getWorkspace().getRoot());
-	}
-	public IStatus runInUIThread(IProgressMonitor monitor) {
-		if (failure)
-			throw new RuntimeException();
-		final long sleep = 10;
-		int ticks = (int) (duration / sleep);
-		if(unknown)
-			monitor.beginTask(toString(), IProgressMonitor.UNKNOWN);
-		else
-			monitor.beginTask(toString(), ticks);
-		try {
-			for (int i = 0; i < ticks; i++) {
-				if (monitor.isCanceled())
-					return Status.CANCEL_STATUS;
-				monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-				try {
-					Thread.sleep(sleep);
-				} catch (InterruptedException e) {
-					return Status.CANCEL_STATUS;
-				}
-				monitor.worked(1);
-			}
-		} finally {
-			monitor.done();
-		}
-		return Status.OK_STATUS;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java
deleted file mode 100644
index b9c406f..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/CreateJobsAction.java
+++ /dev/null
@@ -1,102 +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.examples.jobs.actions;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IInputValidator;
-import org.eclipse.jface.dialogs.InputDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.examples.jobs.TestJob;
-
-/**
- * Test action that creates a number of fake jobs, and then waits until they complete.
- */
-public class CreateJobsAction implements IWorkbenchWindowActionDelegate {
-	static final long DELAY = 100;
-
-	private IWorkbenchWindow window;
-
-	private long askForDuration() {
-		InputDialog dialog = new InputDialog(window.getShell(), "How long?", "Enter the number of milliseconds per job", "1000", new IInputValidator() { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					public String isValid(String newText) {
-						try {
-							Long.parseLong(newText);
-						} catch (NumberFormatException e) {
-							return "Not a number"; //$NON-NLS-1$
-						}
-						return null;
-					}
-				});
-		if (dialog.open() == Window.CANCEL)
-			throw new OperationCanceledException();
-		return Long.parseLong(dialog.getValue());
-	}
-
-	private boolean askForExclusive() {
-		MessageDialog dialog = new MessageDialog(window.getShell(), "Likes to be left alone?", //$NON-NLS-1$
-				null, "Press yes if the jobs should be run one at a time, and no otherwise", //$NON-NLS-1$
-				MessageDialog.QUESTION, new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL}, 1 // no is the default
-		);
-		return dialog.open() == 0;
-	}
-
-	private boolean askForFailure() {
-		MessageDialog dialog = new MessageDialog(window.getShell(), "Born to fail?", //$NON-NLS-1$
-				null, "Should the jobs return an error status?", //$NON-NLS-1$
-				MessageDialog.QUESTION, new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL}, 1 // no is the default
-		);
-		return dialog.open() == 0;
-	}
-
-	private int askForJobCount() {
-		InputDialog dialog = new InputDialog(window.getShell(), "How much work?", "Enter the number of jobs to run", "100", new IInputValidator() { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					public String isValid(String newText) {
-						try {
-							Integer.parseInt(newText);
-						} catch (NumberFormatException e) {
-							return "Not a number"; //$NON-NLS-1$
-						}
-						return null;
-					}
-				});
-		if (dialog.open() == Window.CANCEL)
-			throw new OperationCanceledException();
-		return Integer.parseInt(dialog.getValue());
-	}
-
-	public void dispose() {
-		//do nothing
-	}
-
-	public void init(IWorkbenchWindow window) {
-		this.window = window;
-	}
-
-	public void run(IAction action) {
-		int jobCount = askForJobCount();
-		long duration = askForDuration();
-		boolean exclusive = askForExclusive();
-		boolean failure = askForFailure();
-		for (int i = 0; i < jobCount; i++) {
-			new TestJob(duration, exclusive, failure, false, false, 0).schedule(DELAY);
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java
deleted file mode 100644
index 0272248..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/DebugJobManagerAction.java
+++ /dev/null
@@ -1,50 +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.examples.jobs.actions;
-
-import org.eclipse.core.internal.jobs.JobManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * This class is not really sample code.  This action is used to gather debugging
- * information about the internal state of the background job scheduling 
- * mechanism.
- */
-public class DebugJobManagerAction implements IWorkbenchWindowActionDelegate {
-	public DebugJobManagerAction() {
-		super();
-	}
-	public void dispose() {
-		//
-	}
-
-	public void init(IWorkbenchWindow window) {
-		//
-	}
-
-	public void run(IAction action) {
-		System.out.println("**** BEGIN DUMP JOB MANAGER INFORMATION ****"); //$NON-NLS-1$
-		Job[] jobs = Platform.getJobManager().find(null);
-		for (int i = 0; i < jobs.length; i++) {
-			System.out.println("" + jobs[i].getClass().getName() + " state: " + JobManager.printState(jobs[i].getState())); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		System.out.println("**** END DUMP JOB MANAGER INFORMATION ****"); //$NON-NLS-1$
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		//
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java
deleted file mode 100644
index 7d36c26..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/ForegroundAction.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-public class ForegroundAction implements IWorkbenchWindowActionDelegate {
-	public void run(IAction action) {
-		try {
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) {
-					//no-op
-				}
-			}, null);
-		} catch (OperationCanceledException e) {
-			e.printStackTrace();
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-	}
-	public void selectionChanged(IAction action, ISelection selection) {
-		//do nothing
-	}
-	public void dispose() {
-		//do nothing
-	}
-	public void init(IWorkbenchWindow window) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java
deleted file mode 100644
index f0b9ac4..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/JobAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.WorkspaceJob;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * Our sample action implements workbench action delegate.
- * The action proxy will be created by the workbench and
- * shown in the UI. When the user tries to use the action,
- * this delegate will be created and execution will be 
- * delegated to it.
- * @see IWorkbenchWindowActionDelegate
- */
-public class JobAction implements IWorkbenchWindowActionDelegate {
-	public void run(IAction action) {
-		final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		Job job = new WorkspaceJob("Background job") { //$NON-NLS-1$
-			public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
-				monitor.beginTask("Doing something in background", 100); //$NON-NLS-1$
-				for (int i = 0; i < 100; i++) {
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-						return Status.CANCEL_STATUS;
-					}
-					monitor.worked(1);
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		job.setRule(workspace.getRoot());
-		job.schedule();
-	}
-	public void selectionChanged(IAction action, ISelection selection) {
-		//do nothing
-	}
-	public void dispose() {
-		//do nothing
-	}
-	public void init(IWorkbenchWindow window) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java
deleted file mode 100644
index bab1674..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/actions/SuspendJobManagerAction.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.eclipse.ui.examples.jobs.actions;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * Toggles the suspend/resume state of the job manager.
- */
-public class SuspendJobManagerAction implements IWorkbenchWindowActionDelegate {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		try {
-			if (action.isChecked())
-				Platform.getJobManager().suspend();
-			else
-				Platform.getJobManager().resume();
-		} catch (OperationCanceledException e) {
-			//thrown if the user cancels the attempt to suspend
-			e.printStackTrace();
-		}
-	}
-	/* (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) {
-		//do nothing
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-		//do nothing
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-		//do nothing
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java
deleted file mode 100644
index cd45227..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/DeferredContentProvider.java
+++ /dev/null
@@ -1,58 +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.examples.jobs.views;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.model.BaseWorkbenchContentProvider;
-import org.eclipse.ui.progress.DeferredTreeContentManager;
-
-public class DeferredContentProvider extends BaseWorkbenchContentProvider {
-
-	private DeferredTreeContentManager manager;
-	
-	/* (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) {
-		if (viewer instanceof AbstractTreeViewer) {
-			manager = new DeferredTreeContentManager(this, (AbstractTreeViewer) viewer);
-		}
-		super.inputChanged(viewer, oldInput, newInput);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		// the + box will always appear, but then disappear
-		// if not needed after you first click on it.
-		if (manager != null) {
-			if (manager.isDeferredAdapter(element))
-				return manager.mayHaveChildren(element);
-		}
-
-		return super.hasChildren(element);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.model.WorkbenchContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object element) {
-		if (manager != null) {
-			Object[] children = manager.getChildren(element);
-			if(children != null) {
-				return children;
-			}
-		}
-		return super.getChildren(element);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
deleted file mode 100644
index f484f67..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/JobsView.java
+++ /dev/null
@@ -1,649 +0,0 @@
-package org.eclipse.ui.examples.jobs.views;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-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.*;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.examples.jobs.TestJob;
-import org.eclipse.ui.examples.jobs.TestJobRule;
-import org.eclipse.ui.examples.jobs.UITestJob;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.progress.IProgressConstants;
-import org.eclipse.ui.progress.IProgressService;
-
-/**
- * A view that allows a user to create jobs of various types, and interact with
- * and test other job-related APIs.
- */
-public class JobsView extends ViewPart {
-	private Combo durationField;
-	private Button lockField, failureField, threadField, systemField,
-			userField, groupField, rescheduleField, keepField, keepOneField,
-			unknownField, gotoActionField;
-	private Text quantityField, delayField, rescheduleDelay;
-	private Button schedulingRuleField;
-	private Button noPromptField;
-
-	protected void busyCursorWhile() {
-		try {
-			final long duration = getDuration();
-			final boolean shouldLock = lockField.getSelection();
-			PlatformUI.getWorkbench().getProgressService().busyCursorWhile(
-					new IRunnableWithProgress() {
-						public void run(IProgressMonitor monitor) {
-							if (shouldLock)
-								doRunInWorkspace(duration, monitor);
-							else
-								doRun(duration, monitor);
-						}
-
-					});
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			// ignore - interrupt means cancel in this context
-		}
-	}
-
-	protected void createJobs() {
-		int jobCount = Integer.parseInt(quantityField.getText());
-		boolean ui = threadField.getSelection();
-		long duration = getDuration();
-		boolean lock = lockField.getSelection();
-		boolean failure = failureField.getSelection();
-		boolean noPrompt = noPromptField.getSelection();
-		boolean system = systemField.getSelection();
-		boolean useGroup = groupField.getSelection();
-		boolean unknown = unknownField.getSelection();
-		boolean user = userField.getSelection();
-		boolean reschedule = rescheduleField.getSelection();
-		final long rescheduleWait = Long.parseLong(rescheduleDelay.getText());
-		boolean keep = keepField.getSelection();
-		boolean keepOne = keepOneField.getSelection();
-		boolean gotoAction = gotoActionField.getSelection();
-		boolean schedulingRule = schedulingRuleField.getSelection();
-
-		int groupIncrement = IProgressMonitor.UNKNOWN;
-		IProgressMonitor group = new NullProgressMonitor();
-		int total = IProgressMonitor.UNKNOWN;
-
-		if (jobCount > 1) {
-			total = 100;
-			groupIncrement = 100 / jobCount;
-		}
-
-		if (useGroup) {
-			group = Platform.getJobManager().createProgressGroup();
-			group.beginTask("Group", total); //$NON-NLS-1$
-		}
-
-		long delay = Integer.parseInt(delayField.getText());
-		for (int i = 0; i < jobCount; i++) {
-			Job result;
-			if (ui)
-				result = new UITestJob(duration, lock, failure, unknown);
-			else
-				result = new TestJob(duration, lock, failure, unknown,
-						reschedule, rescheduleWait);
-
-			result.setProperty(IProgressConstants.KEEP_PROPERTY, Boolean
-					.valueOf(keep));
-			result.setProperty(IProgressConstants.KEEPONE_PROPERTY, Boolean
-					.valueOf(keepOne));
-			result.setProperty(
-					IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY,
-					Boolean.valueOf(noPrompt));
-			if (gotoAction)
-				result.setProperty(IProgressConstants.ACTION_PROPERTY,
-						new Action("Pop up a dialog") { //$NON-NLS-1$
-							public void run() {
-								MessageDialog
-										.openInformation(
-												getSite().getShell(),
-												"Goto Action", "The job can have an action associated with it"); //$NON-NLS-1$ //$NON-NLS-2$
-							}
-						});
-
-			result.setProgressGroup(group, groupIncrement);
-			result.setSystem(system);
-			result.setUser(user);
-
-			if (schedulingRule)
-				result.setRule(new TestJobRule(i));
-			result.schedule(delay);
-		}
-	}
-
-	/**
-	 * @see ViewPart#createPartControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		Composite body = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.makeColumnsEqualWidth = false;
-		body.setLayout(layout);
-
-		createEntryFieldGroup(body);
-		createPushButtonGroup(body);
-		createCheckboxGroup(body);
-	}
-
-	/**
-	 * Create all push button parts for the jobs view.
-	 * 
-	 * @param parent
-	 */
-	private void createPushButtonGroup(Composite parent) {
-		Composite group = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		group.setLayout(layout);
-		group.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// create jobs
-		Button create = new Button(group, SWT.PUSH);
-		create.setText("Create jobs"); //$NON-NLS-1$
-		create
-				.setToolTipText("Creates and schedules jobs according to above parameters"); //$NON-NLS-1$
-		create.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		create.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				createJobs();
-			}
-		});
-
-		// touch workspace
-		Button touch = new Button(group, SWT.PUSH);
-		touch.setText("Touch workspace"); //$NON-NLS-1$
-		touch.setToolTipText("Modifies the workspace in the UI thread"); //$NON-NLS-1$
-		touch.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		touch.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				touchWorkspace();
-			}
-		});
-		// busy cursor while
-		Button busyWhile = new Button(group, SWT.PUSH);
-		busyWhile.setText("busyCursorWhile"); //$NON-NLS-1$
-		busyWhile.setToolTipText("Uses IProgressService.busyCursorWhile"); //$NON-NLS-1$
-		busyWhile.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		busyWhile.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				busyCursorWhile();
-			}
-		});
-		// progress monitor dialog with fork=false
-		Button noFork = new Button(group, SWT.PUSH);
-		noFork.setText("runInUI"); //$NON-NLS-1$
-		noFork.setToolTipText("Uses IProgressService.runInUI"); //$NON-NLS-1$
-		noFork.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		noFork.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				progressNoFork();
-			}
-		});
-
-		// progress monitor dialog with fork=false
-		Button exception = new Button(group, SWT.PUSH);
-		exception.setText("Runtime Exception"); //$NON-NLS-1$
-		exception.setToolTipText("NullPointerException when running"); //$NON-NLS-1$
-		exception.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		exception.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				jobWithRuntimeException();
-			}
-		});
-
-		// join the running test jobs
-		Button join = new Button(group, SWT.PUSH);
-		join.setText("Join Test Jobs"); //$NON-NLS-1$
-		join.setToolTipText("IJobManager.join() on test jobs"); //$NON-NLS-1$
-		join.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		join.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				joinTestJobs();
-			}
-		});
-
-		// join the running test jobs
-		Button window = new Button(group, SWT.PUSH);
-		window.setText("Runnable in Window"); //$NON-NLS-1$
-		window
-				.setToolTipText("Using a runnable context in the workbench window"); //$NON-NLS-1$
-		window.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		window.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				runnableInWindow();
-			}
-		});
-
-		// join the running test jobs
-		Button sleep = new Button(group, SWT.PUSH);
-		sleep.setText("Sleep"); //$NON-NLS-1$
-		sleep.setToolTipText("Calls sleep() on all TestJobs"); //$NON-NLS-1$
-		sleep.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		sleep.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				doSleep();
-			}
-		});
-
-		// join the running test jobs
-		Button wake = new Button(group, SWT.PUSH);
-		wake.setText("WakeUp"); //$NON-NLS-1$
-		wake.setToolTipText("Calls wakeUp() on all TestJobs"); //$NON-NLS-1$
-		wake.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		wake.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				doWakeUp();
-			}
-		});
-
-		// show in dialog
-		Button showInDialog = new Button(group, SWT.PUSH);
-		showInDialog.setText("showInDialog"); //$NON-NLS-1$
-		showInDialog.setToolTipText("Uses IProgressService.showInDialog"); //$NON-NLS-1$
-		showInDialog.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		showInDialog.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				showInDialog();
-			}
-		});
-
-	}
-
-	/**
-	 * Test the showInDialog API
-	 * 
-	 */
-	protected void showInDialog() {
-
-		Job showJob = new Job("Show In Dialog") {//$NON-NLS-1$
-			protected IStatus run(IProgressMonitor monitor) {
-				monitor.beginTask("Run in dialog", 100);//$NON-NLS-1$
-
-				for (int i = 0; i < 100; i++) {
-					if (monitor.isCanceled())
-						return Status.CANCEL_STATUS;
-					try {
-						Thread.sleep(100);
-					} catch (InterruptedException e) {
-						return Status.CANCEL_STATUS;
-					}
-					monitor.worked(1);
-
-				}
-				return Status.OK_STATUS;
-
-			}
-		};
-		showJob.schedule();
-		PlatformUI.getWorkbench().getProgressService().showInDialog(
-				getSite().getShell(), showJob);
-
-	}
-
-	/**
-	 * Wakes up all sleeping test jobs.
-	 */
-	protected void doWakeUp() {
-		Platform.getJobManager().wakeUp(TestJob.FAMILY_TEST_JOB);
-	}
-
-	/**
-	 * Puts to sleep all waiting test jobs.
-	 */
-	protected void doSleep() {
-		Platform.getJobManager().sleep(TestJob.FAMILY_TEST_JOB);
-	}
-
-	/**
-	 * @param body
-	 */
-	private void createEntryFieldGroup(Composite body) {
-		// duration
-		Label label = new Label(body, SWT.NONE);
-		label.setText("Duration:"); //$NON-NLS-1$
-		durationField = new Combo(body, SWT.DROP_DOWN | SWT.READ_ONLY);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		durationField.setLayoutData(data);
-		durationField.add("0"); //$NON-NLS-1$
-		durationField.add("1 millisecond"); //$NON-NLS-1$
-		durationField.add("1 second"); //$NON-NLS-1$
-		durationField.add("10 seconds"); //$NON-NLS-1$
-		durationField.add("1 minute"); //$NON-NLS-1$
-		durationField.add("10 minutes"); //$NON-NLS-1$
-		durationField.select(4);
-
-		// delay
-		label = new Label(body, SWT.NONE);
-		label.setText("Start delay (ms):"); //$NON-NLS-1$
-		delayField = new Text(body, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		delayField.setLayoutData(data);
-		delayField.setText("0"); //$NON-NLS-1$
-
-		// quantity
-		label = new Label(body, SWT.NONE);
-		label.setText("Quantity:"); //$NON-NLS-1$
-		quantityField = new Text(body, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		quantityField.setLayoutData(data);
-		quantityField.setText("1"); //$NON-NLS-1$
-
-		// reschedule delay
-		label = new Label(body, SWT.NONE);
-		label.setText("Reschedule Delay (ms):"); //$NON-NLS-1$
-		rescheduleDelay = new Text(body, SWT.BORDER);
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		data.widthHint = IDialogConstants.ENTRY_FIELD_WIDTH;
-		rescheduleDelay.setLayoutData(data);
-		rescheduleDelay.setText("1000"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates all of the checkbox buttons.
-	 */
-	private void createCheckboxGroup(Composite parent) {
-		Composite group = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		group.setLayout(layout);
-		group.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// lock
-		lockField = new Button(group, SWT.CHECK);
-		lockField.setText("Lock the workspace"); //$NON-NLS-1$
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		lockField.setLayoutData(data);
-
-		// system
-		systemField = new Button(group, SWT.CHECK);
-		systemField.setText("System job"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		systemField.setLayoutData(data);
-
-		// thread
-		threadField = new Button(group, SWT.CHECK);
-		threadField.setText("Run in UI thread"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		threadField.setLayoutData(data);
-
-		// groups
-		groupField = new Button(group, SWT.CHECK);
-		groupField.setText("Run in Group"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		groupField.setLayoutData(data);
-
-		// reschedule
-		rescheduleField = new Button(group, SWT.CHECK);
-		rescheduleField.setText("Reschedule"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		rescheduleField.setLayoutData(data);
-
-		// keep
-		keepField = new Button(group, SWT.CHECK);
-		keepField.setText("Keep"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		keepField.setLayoutData(data);
-
-		// keep one
-		keepOneField = new Button(group, SWT.CHECK);
-		keepOneField.setText("KeepOne"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		keepOneField.setLayoutData(data);
-
-		// IProgressMonitor.UNKNOWN
-		unknownField = new Button(group, SWT.CHECK);
-		unknownField.setText("Indeterminate Progress"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		unknownField.setLayoutData(data);
-
-		// whether the job is a user job
-		userField = new Button(group, SWT.CHECK);
-		userField.setText("User job"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		userField.setLayoutData(data);
-
-		// whether the job has a goto action
-		gotoActionField = new Button(group, SWT.CHECK);
-		gotoActionField.setText("Goto action"); //$NON-NLS-1$
-		data = new GridData(GridData.FILL_HORIZONTAL);
-		gotoActionField.setLayoutData(data);
-
-		// whether the job should use a scheduling rule
-		schedulingRuleField = new Button(group, SWT.CHECK);
-		schedulingRuleField.setText("Schedule sequentially"); //$NON-NLS-1$
-		schedulingRuleField
-				.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// failure
-		failureField = new Button(group, SWT.CHECK);
-		failureField.setText("Fail"); //$NON-NLS-1$
-		failureField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		// failure
-		noPromptField = new Button(group, SWT.CHECK);
-		noPromptField.setText("No Prompt"); //$NON-NLS-1$
-		noPromptField
-				.setToolTipText("Set the IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY to true");
-		noPromptField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-	}
-
-	protected void doRun(long duration, IProgressMonitor monitor) {
-		final long sleep = 10;
-		int ticks = (int) (duration / sleep);
-		monitor.beginTask(
-				"Spinning inside IProgressService.busyCursorWhile", ticks); //$NON-NLS-1$
-		monitor.setTaskName("Spinning inside IProgressService.busyCursorWhile"); //$NON-NLS-1$
-		for (int i = 0; i < ticks; i++) {
-			monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-			if (monitor.isCanceled())
-				return;
-			try {
-				Thread.sleep(sleep);
-			} catch (InterruptedException e) {
-				// ignore
-			}
-			monitor.worked(1);
-		}
-	}
-
-	protected void doRunInWorkspace(final long duration,
-			IProgressMonitor monitor) {
-		try {
-			ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
-				public void run(IProgressMonitor monitor) throws CoreException {
-					doRun(duration, monitor);
-				}
-			}, monitor);
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-	}
-
-	protected long getDuration() {
-		switch (durationField.getSelectionIndex()) {
-		case 0:
-			return 0;
-		case 1:
-			return 1;
-		case 2:
-			return 1000;
-		case 3:
-			return 10000;
-		case 4:
-			return 60000;
-		case 5:
-		default:
-			return 600000;
-		}
-	}
-
-	protected void jobWithRuntimeException() {
-		Job runtimeExceptionJob = new Job("Job with Runtime exception") { //$NON-NLS-1$
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected IStatus run(IProgressMonitor monitor) {
-				throw new NullPointerException();
-			}
-		};
-		runtimeExceptionJob.schedule();
-	}
-
-	/**
-	 * Example usage of the IJobManager.join method.
-	 */
-	protected void joinTestJobs() {
-		try {
-			// note that when a null progress monitor is used when in the UI
-			// thread, the workbench will create a default progress monitor
-			// that reports progress in a modal dialog with details area
-			PlatformUI.getWorkbench().getProgressService().busyCursorWhile(
-					new IRunnableWithProgress() {
-						public void run(IProgressMonitor monitor)
-								throws InterruptedException {
-							Job.getJobManager().join(TestJob.FAMILY_TEST_JOB,
-									monitor);
-						}
-					});
-		} catch (InterruptedException e) {
-			// thrown if the user interrupts the join by canceling the progress
-			// monitor
-			// A UI component should swallow the exception and finish the action
-			// or operation. A lower level component should just propagate the
-			// exception
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// Thrown when the operation running within busyCursorWhile throws
-			// an
-			// exception. This should either be propagated or displayed to the
-			// user
-			e.printStackTrace();
-		}
-	}
-
-	protected void progressNoFork() {
-		try {
-			final long duration = getDuration();
-			final boolean shouldLock = lockField.getSelection();
-			IProgressService progressService = PlatformUI.getWorkbench()
-					.getProgressService();
-			progressService.runInUI(progressService,
-					new IRunnableWithProgress() {
-						public void run(IProgressMonitor monitor)
-								throws InterruptedException {
-							if (shouldLock)
-								doRunInWorkspace(duration, monitor);
-							else
-								doRun(duration, monitor);
-						}
-					}, ResourcesPlugin.getWorkspace().getRoot());
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * @see ViewPart#setFocus()
-	 */
-	public void setFocus() {
-		if (durationField != null && !durationField.isDisposed())
-			durationField.setFocus();
-	}
-
-	protected void touchWorkspace() {
-		// create an asyncExec to touch the workspace the specific number of
-		// times
-		int jobCount = Integer.parseInt(quantityField.getText());
-		for (int i = 0; i < jobCount; i++) {
-			getSite().getShell().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					try {
-						ResourcesPlugin.getWorkspace().run(
-								new IWorkspaceRunnable() {
-									public void run(IProgressMonitor monitor) {
-										// no-op
-									}
-								}, null);
-					} catch (OperationCanceledException e) {
-						// ignore
-					} catch (CoreException e) {
-						e.printStackTrace();
-					}
-				}
-			});
-		}
-	}
-
-	/**
-	 * Run a workspace runnable in the application window.
-	 * 
-	 */
-
-	public void runnableInWindow() {
-
-		final long time = getDuration();
-		final long sleep = 10;
-		IRunnableWithProgress runnableTest = new WorkspaceModifyOperation() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected void execute(IProgressMonitor monitor)
-					throws CoreException, InvocationTargetException,
-					InterruptedException {
-				int ticks = (int) (time / sleep);
-				monitor.beginTask(
-						"Spinning inside ApplicationWindow.run()", ticks); //$NON-NLS-1$
-				monitor.setTaskName("Spinning inside ApplicationWindow.run()"); //$NON-NLS-1$
-				for (int i = 0; i < ticks; i++) {
-					monitor.subTask("Processing tick #" + i); //$NON-NLS-1$
-					if (monitor.isCanceled())
-						return;
-					try {
-						Thread.sleep(sleep);
-					} catch (InterruptedException e) {
-						// ignore
-					}
-					monitor.worked(1);
-				}
-			}
-
-		};
-		try {
-			PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(true,
-					true, runnableTest);
-
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java
deleted file mode 100644
index 43f74b8..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/LazyTreeView.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package org.eclipse.ui.examples.jobs.views;
-import org.eclipse.jface.viewers.TreeViewer;
-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.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.ViewPart;
-/**
- * This sample class demonstrates how to plug-in a new workbench view. The view
- * shows data obtained from the model. The sample creates a dummy model on the
- * fly, but a real implementation would connect to the model available either
- * in this or another plug-in (e.g. the workspace). The view is connected to
- * the model using a content provider.
- * <p>
- * The view uses a label provider to define how model objects should be
- * presented in the view. Each view can present the same model objects using
- * different labels and icons, if needed. Alternatively, a single label
- * provider can be shared between views in order to ensure that objects of the
- * same type are presented in the same way everywhere.
- * <p>
- */
-public class LazyTreeView extends ViewPart {
-	protected TreeViewer viewer;
-	protected Button serializeButton, batchButton;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite top) {
-		Composite parent = new Composite(top, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		parent.setLayout(layout);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.grabExcessHorizontalSpace = true;
-		data.grabExcessVerticalSpace = true;
-		parent.setLayoutData(data);
-//		parent.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
-		serializeButton = new Button(parent, SWT.CHECK | SWT.FLAT);
-		serializeButton.setText("Serialize fetch jobs"); //$NON-NLS-1$
-//		serializeButton.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
-		serializeButton.setSelection(SlowElementAdapter.isSerializeFetching());
-		serializeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				SlowElementAdapter.setSerializeFetching(serializeButton.getSelection());
-			}
-		});
-		serializeButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		batchButton = new Button(parent, SWT.CHECK | SWT.FLAT);
-		batchButton.setText("Batch returned children"); //$NON-NLS-1$
-//		batchButton.setBackground(WorkbenchColors.getSystemColor(SWT.COLOR_WHITE));
-		serializeButton.setSelection(SlowElementAdapter.isBatchFetchedChildren());
-		batchButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				SlowElementAdapter.setBatchFetchedChildren(batchButton.getSelection());
-			}
-		});
-		batchButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		viewer.setContentProvider(new DeferredContentProvider());
-		viewer.setLabelProvider(new WorkbenchLabelProvider());
-		viewer.setInput(new SlowElement("root")); //$NON-NLS-1$
-		viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
-	}
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java
deleted file mode 100644
index 4ee8a54..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/ProgressExampleAdapterFactory.java
+++ /dev/null
@@ -1,39 +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.examples.jobs.views;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-
-public class ProgressExampleAdapterFactory implements IAdapterFactory {
-	private SlowElementAdapter slowElementAdapter = new SlowElementAdapter();
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
-	 */
-	public Object getAdapter(Object object, Class type) {
-		if(object instanceof SlowElement) {
-			if(type == SlowElement.class || type == IDeferredWorkbenchAdapter.class || type == IWorkbenchAdapter.class)
-				return slowElementAdapter;
-		}
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[] {
-				SlowElement.class, IDeferredWorkbenchAdapter.class, IWorkbenchAdapter.class
-				};
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java
deleted file mode 100644
index e2f2d3a..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElement.java
+++ /dev/null
@@ -1,51 +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.examples.jobs.views;
-
-import java.util.*;
-
-import org.eclipse.core.runtime.PlatformObject;
-
-public class SlowElement extends PlatformObject {
-	private String name;
-	private SlowElement parent;
-
-	SlowElement(String name) {
-		this(null, name, null);	
-	}
-	
-	SlowElement(String name, SlowElement[] children) {
-		this(null, name, children);	
-	}
-	
-	SlowElement(SlowElement parent, String name, SlowElement[] children) {
-		this.name = name;
-		this.parent = parent;
-	}
-	
-	public String getName() {
-		return name;
-	}
-	
-	public SlowElement getParent() {
-		return parent;
-	}
-	
-	public SlowElement[] getChildren() {
-		Random r = new Random();
-		int random = r.nextInt(15);
-		List children = new ArrayList();
-		for(int i = 0; i < random; i++) {
-			children.add(new SlowElement("child" + i)); //$NON-NLS-1$
-		}
-		return (SlowElement[]) children.toArray(new SlowElement[children.size()]);
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.java b/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.java
deleted file mode 100644
index 9b589cb..0000000
--- a/examples/org.eclipse.ui.examples.job/src/org/eclipse/ui/examples/jobs/views/SlowElementAdapter.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.ui.examples.jobs.views;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.progress.IDeferredWorkbenchAdapter;
-import org.eclipse.ui.progress.IElementCollector;
-
-public class SlowElementAdapter implements IDeferredWorkbenchAdapter {
-
-	private static boolean serializeFetching = false;
-	private static boolean batchFetchedChildren = false;
-
-	final ISchedulingRule mutexRule = new ISchedulingRule() {
-		public boolean isConflicting(ISchedulingRule rule) {
-			return rule == mutexRule;
-		}
-		public boolean contains(ISchedulingRule rule) {
-			return rule == mutexRule;
-		}
-	};
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#fetchDeferredChildren(java.lang.Object,
-	 *           org.eclipse.jface.progress.IElementCollector,
-	 *           org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void fetchDeferredChildren(Object object, IElementCollector collector, IProgressMonitor monitor) {
-		if (object instanceof SlowElement) {
-			Object[] children = ((SlowElement) object).getChildren();
-			if (isBatchFetchedChildren()) {
-				sleep(4000);
-				collector.add(children, monitor);
-			} else {
-				for (int i = 0; i < children.length; i++) {
-					if (monitor.isCanceled()) {
-						return;
-					}
-					collector.add(children[i], monitor);
-					sleep(4000);
-				}
-			}
-		}
-	}
-
-	private void sleep(long mills) {
-		try {
-			Thread.sleep(1000);
-		} catch (InterruptedException e) {
-			//ignore
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#isContainer()
-	 */
-	public boolean isContainer() {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.progress.IDeferredWorkbenchAdapter#getRule(java.lang.Object)
-	 */
-	public ISchedulingRule getRule(final Object object) {
-		if (isSerializeFetching())
-			return mutexRule;
-		// Allow several SlowElement parents to fetch children concurrently
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object object) {
-		if (object instanceof SlowElement) {
-			return ((SlowElement) object).getChildren();
-		}
-		return new Object[0];
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-	 */
-	public ImageDescriptor getImageDescriptor(Object object) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-	 */
-	public String getLabel(Object o) {
-		if (o instanceof SlowElement) {
-			return ((SlowElement) o).getName();
-		}
-		return "unknown"; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object o) {
-		if (o instanceof SlowElement) {
-			return ((SlowElement) o).getParent();
-		}
-		return null;
-	}
-
-	/**
-	 * @return Returns the batchFetchedChildren.
-	 */
-	public static boolean isBatchFetchedChildren() {
-		return batchFetchedChildren;
-	}
-
-	/**
-	 * @param batchFetchedChildren
-	 *                   The batchFetchedChildren to set.
-	 */
-	public static void setBatchFetchedChildren(boolean batchFetchedChildren) {
-		SlowElementAdapter.batchFetchedChildren = batchFetchedChildren;
-	}
-
-	/**
-	 * @return Returns the serializeFetching.
-	 */
-	public static boolean isSerializeFetching() {
-		return serializeFetching;
-	}
-
-	/**
-	 * @param serializeFetching
-	 *                   The serializeFetching to set.
-	 */
-	public static void setSerializeFetching(boolean serializeFetching) {
-		SlowElementAdapter.serializeFetching = serializeFetching;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.classpath b/examples/org.eclipse.ui.examples.multipageeditor/.classpath
deleted file mode 100644
index d6156ef..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples MultiPageEditor"/>
-	<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/examples/org.eclipse.ui.examples.multipageeditor/.cvsignore b/examples/org.eclipse.ui.examples.multipageeditor/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.project b/examples/org.eclipse.ui.examples.multipageeditor/.project
deleted file mode 100644
index 741355f..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.multipageeditor</name>
-	<comment></comment>
-	<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/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9fa9102..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,78 +0,0 @@
-#Mon Jan 15 21:15:54 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 14ac2d9..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Feb 06 11:16:57 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index ceb6314..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:53:58 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java
deleted file mode 100644
index bff85f7..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MessageUtil.java
+++ /dev/null
@@ -1,58 +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.ui.examples.multipageeditor;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps with managing messages.
- */
-/* package */class MessageUtil {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.examples.multipageeditor.messages";//$NON-NLS-1$
-
-    private static ResourceBundle fgResourceBundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private MessageUtil() {
-        // prevent instantiation of class
-    }
-
-    /**
-     * Returns the formatted message for the given key in
-     * the resource bundle. 
-     *
-     * @param key the resource name
-     * @param args the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in
-     * the resource bundle. If there isn't any value under
-     * the given key, the key is returned, surrounded by '!'s.
-     *
-     * @param key the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return fgResourceBundle.getString(key);
-        } catch (MissingResourceException e) {
-            return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java
deleted file mode 100644
index 1da18a2..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageContributor.java
+++ /dev/null
@@ -1,84 +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.ui.examples.multipageeditor;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * Manages the installation/deinstallation of global actions for multi-page editors.
- * Responsible for the redirection of global actions to the active editor.
- * Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
- */
-public class MultiPageContributor extends MultiPageEditorActionBarContributor {
-    private IEditorPart activeEditorPart;
-
-    /**
-     * Creates a multi-page contributor.
-     */
-    public MultiPageContributor() {
-        super();
-    }
-
-    /**
-     * Returns the action registed with the given text editor.
-     * @return IAction or null if editor is null.
-     */
-    protected IAction getAction(ITextEditor editor, String actionID) {
-        return (editor == null ? null : editor.getAction(actionID));
-    }
-
-    /* (non-JavaDoc)
-     * Method declared in MultiPageEditorActionBarContributor.
-     */
-    public void setActivePage(IEditorPart part) {
-        if (activeEditorPart == part)
-            return;
-
-        activeEditorPart = part;
-
-        IActionBars actionBars = getActionBars();
-        if (actionBars != null) {
-
-            ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part
-                    : null;
-
-            actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(),
-                    getAction(editor, ActionFactory.DELETE.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
-                    getAction(editor, ActionFactory.UNDO.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
-                    getAction(editor, ActionFactory.REDO.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(),
-                    getAction(editor, ActionFactory.CUT.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(),
-                    getAction(editor, ActionFactory.COPY.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(),
-                    getAction(editor, ActionFactory.PASTE.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(),
-                    getAction(editor, ActionFactory.SELECT_ALL.getId()));
-            actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(),
-                    getAction(editor, ActionFactory.FIND.getId()));
-            actionBars.setGlobalActionHandler(
-                    IDEActionFactory.BOOKMARK.getId(), getAction(editor,
-                            IDEActionFactory.BOOKMARK.getId()));
-            actionBars.setGlobalActionHandler(
-                    IDEActionFactory.ADD_TASK.getId(), getAction(editor,
-                            IDEActionFactory.ADD_TASK.getId()));
-            actionBars.updateActionBars();
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java
deleted file mode 100644
index ad83804..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/MultiPageEditorExample.java
+++ /dev/null
@@ -1,236 +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.ui.examples.multipageeditor;
-
-import java.io.StringWriter;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.FillLayout;
-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.FontDialog;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.ui.part.MultiPageEditorPart;
-
-/**
- * An example showing how to create a multi-page editor.
- * This example has 3 pages:
- * <ul>
- * <li>page 0 contains a nested text editor.
- * <li>page 1 allows you to change the font used in page 2
- * <li>page 2 shows the words in page 0 in sorted order
- * </ul>
- */
-public class MultiPageEditorExample extends MultiPageEditorPart implements
-        IGotoMarker {
-
-    /** The text editor used in page 0. */
-    private TextEditor editor;
-
-    /** The index of the page containing the text editor */
-    private int editorIndex = 0;
-
-    /** The font chosen in page 1. */
-    private Font font;
-
-    /** The text widget used in page 2. */
-    private StyledText text;
-
-    /**
-     * Creates a multi-page editor example.
-     */
-    public MultiPageEditorExample() {
-        super();
-    }
-
-    /**
-     * Creates page 0 of the multi-page editor,
-     * which contains a text editor.
-     */
-    void createPage0() {
-        try {
-            editor = new TextEditor();
-            editorIndex = addPage(editor, getEditorInput());
-            setPageText(editorIndex, MessageUtil.getString("Source")); //$NON-NLS-1$
-        } catch (PartInitException e) {
-            ErrorDialog
-                    .openError(
-                            getSite().getShell(),
-                            MessageUtil.getString("ErrorCreatingNestedEditor"), null, e.getStatus()); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Creates page 1 of the multi-page editor,
-     * which allows you to change the font used in page 2.
-     */
-    void createPage1() {
-
-        Composite composite = new Composite(getContainer(), SWT.NONE);
-        GridLayout layout = new GridLayout();
-        composite.setLayout(layout);
-        layout.numColumns = 2;
-
-        Button fontButton = new Button(composite, SWT.NONE);
-        GridData gd = new GridData(GridData.BEGINNING);
-        gd.horizontalSpan = 2;
-        fontButton.setLayoutData(gd);
-        fontButton.setText(MessageUtil.getString("ChangeFont")); //$NON-NLS-1$
-
-        fontButton.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent event) {
-                setFont();
-            }
-        });
-
-        int index = addPage(composite);
-        setPageText(index, MessageUtil.getString("Properties")); //$NON-NLS-1$
-    }
-
-    /**
-     * Creates page 2 of the multi-page editor,
-     * which shows the sorted text.
-     */
-    void createPage2() {
-        Composite composite = new Composite(getContainer(), SWT.NONE);
-        FillLayout layout = new FillLayout();
-        composite.setLayout(layout);
-        text = new StyledText(composite, SWT.H_SCROLL | SWT.V_SCROLL);
-        text.setEditable(false);
-
-        int index = addPage(composite);
-        setPageText(index, MessageUtil.getString("Preview")); //$NON-NLS-1$
-    }
-
-    /**
-     * Creates the pages of the multi-page editor.
-     */
-    protected void createPages() {
-        createPage0();
-        createPage1();
-        createPage2();
-    }
-
-    /**
-     * Saves the multi-page editor's document.
-     */
-    public void doSave(IProgressMonitor monitor) {
-        getEditor(0).doSave(monitor);
-    }
-
-    /**
-     * Saves the multi-page editor's document as another file.
-     * Also updates the text for page 0's tab, and updates this multi-page editor's input
-     * to correspond to the nested editor's.
-     */
-    public void doSaveAs() {
-        IEditorPart editor = getEditor(0);
-        editor.doSaveAs();
-        setPageText(0, editor.getTitle());
-        setInput(editor.getEditorInput());
-    }
-
-    /**
-     * The <code>MultiPageEditorExample</code> implementation of this method
-     * checks that the input is an instance of <code>IFileEditorInput</code>.
-     */
-    public void init(IEditorSite site, IEditorInput editorInput)
-            throws PartInitException {
-        if (!(editorInput instanceof IFileEditorInput))
-            throw new PartInitException(MessageUtil.getString("InvalidInput")); //$NON-NLS-1$
-        super.init(site, editorInput);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IEditorPart.
-     */
-    public boolean isSaveAsAllowed() {
-        return true;
-    }
-
-    /**
-     * Calculates the contents of page 2 when the it is activated.
-     */
-    protected void pageChange(int newPageIndex) {
-        super.pageChange(newPageIndex);
-        if (newPageIndex == 2) {
-            sortWords();
-        }
-    }
-
-    /**
-     * Sets the font related data to be applied to the text in page 2.
-     */
-    void setFont() {
-        FontDialog fontDialog = new FontDialog(getSite().getShell());
-        fontDialog.setFontList(text.getFont().getFontData());
-        FontData fontData = fontDialog.open();
-        if (fontData != null) {
-            if (font != null)
-                font.dispose();
-            font = new Font(text.getDisplay(), fontData);
-            text.setFont(font);
-        }
-    }
-
-    /**
-     * Sorts the words in page 0, and shows them in page 2.
-     */
-    void sortWords() {
-
-        String editorText = editor.getDocumentProvider().getDocument(
-                editor.getEditorInput()).get();
-
-        StringTokenizer tokenizer = new StringTokenizer(editorText,
-                " \t\n\r\f!@#$%^&*()-_=+`~[]{};:'\",.<>/?|\\"); //$NON-NLS-1$
-        ArrayList editorWords = new ArrayList();
-        while (tokenizer.hasMoreTokens()) {
-            editorWords.add(tokenizer.nextToken());
-        }
-
-        Collections.sort(editorWords, Collator.getInstance());
-        StringWriter displayText = new StringWriter();
-        for (int i = 0; i < editorWords.size(); i++) {
-            displayText.write(((String) editorWords.get(i)));
-            displayText.write("\n"); //$NON-NLS-1$
-        }
-        text.setText(displayText.toString());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ide.IGotoMarker
-     */
-    public void gotoMarker(IMarker marker) {
-        setActivePage(editorIndex);
-        IDE.gotoMarker(editor, marker);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties b/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties
deleted file mode 100644
index 2e5a083..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/Eclipse UI Examples MultiPageEditor/org/eclipse/ui/examples/multipageeditor/messages.properties
+++ /dev/null
@@ -1,16 +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
-###############################################################################
-ErrorCreatingNestedEditor=Error creating nested text editor
-ChangeFont=Change Font...
-InvalidInput=Invalid Input: Must be IFileEditorInput
-Preview=Preview
-Properties=Properties
-Source=Source
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF
deleted file mode 100644
index 12aa946..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.multipageeditor; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-ClassPath: multipageeditor.jar
-Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.examples.multipageeditor
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime.compatibility,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.text
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/about.html b/examples/org.eclipse.ui.examples.multipageeditor/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/build.properties b/examples/org.eclipse.ui.examples.multipageeditor/build.properties
deleted file mode 100644
index 9e02f46..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-source.multipageeditor.jar = Eclipse UI Examples MultiPageEditor/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +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="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html b/examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html
deleted file mode 100644
index 7dad38e..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/doc-html/ui_multipageeditor_ex.html
+++ /dev/null
@@ -1,51 +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">
-   <title>Desktop - Multi-page Editor Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Multi-page Editor</b></h2>
-
-<h3>
-Introduction</h3>
-The&nbsp; Multi Page Editor Example adds an editor for files with the .mpe
-extension. It shows how to create an editor that uses multiple pages by
-defining both an editor and a page contributor that can add entries to
-an action bar.
-<h3>
-Running the example</h3>
-To start using the Multi-page Editor Example, create a new file with .mpe
-extension.&nbsp; Select the file, bring up the popup menu, select the Open
-With menu and from the sub-menu select the Multi Page Editor Example menu
-item. You can then select the different editors by selecting the different
-tabs.
-<h4>
-<b>Creating a new mpe file</b></h4>
-Create a new file with file extension .mpe.&nbsp; From the File menu, select
-New and then select Other... from the sub-menu.&nbsp; Click on Simple in
-the wizard, then select
-<br>File in the list on the left.&nbsp; Click on Next to supply the file
-name (make sure the extension is .mpe) and the folder in which the file
-should be contained.
-<br>&nbsp;
-<h3>
-Details</h3>
-The&nbsp; Multi Page Editor Example demonstrates how to create an multi
-page editor with a custom page contributor.
-<p>The Multi Page Editor Example is constructed with two extensions - a
-document contributor (MultiPageContributor) and an editor (MultiPageEditor).
-The document contributor is a subclass of <tt>org.eclipse.ui.part.MultiPageEditorActionBarContributor</tt>
-and defines the actions that are added to an editor when the <tt>setActivePage</tt>
-method is called. The editor is an <tt>org.eclipse.ui.part.MultiPageEditorPart</tt>
-that creates 3 pages whose activation is handled by the <tt>pageChange</tt>
-method that in turn sends <tt>setActivePage</tt>
-to the contributor. These two classes do not refer to each other directly
-- the contributor for the editor is set using the contributorClass tag
-in the plugin.xml
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif b/examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif
deleted file mode 100644
index f962255..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/icons/copy.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/plugin.properties b/examples/org.eclipse.ui.examples.multipageeditor/plugin.properties
deleted file mode 100644
index 19e2475..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/plugin.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-Plugin.name = Multi-Page Editor Example
-Plugin.providerName = Eclipse.org
-Editors.MultiPageEditorExample = Multi-Page Editor Example
diff --git a/examples/org.eclipse.ui.examples.multipageeditor/plugin.xml b/examples/org.eclipse.ui.examples.multipageeditor/plugin.xml
deleted file mode 100644
index 377e097..0000000
--- a/examples/org.eclipse.ui.examples.multipageeditor/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%Editors.MultiPageEditorExample"
-            icon="icons/copy.gif"
-            extensions="mpe"
-            contributorClass="org.eclipse.ui.examples.multipageeditor.MultiPageContributor"
-            class="org.eclipse.ui.examples.multipageeditor.MultiPageEditorExample"
-            id="org.eclipse.ui.examples.multipageeditor.MultiPageEditorExample">
-      </editor>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.navigator/.classpath b/examples/org.eclipse.ui.examples.navigator/.classpath
deleted file mode 100644
index 7398f97..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry path="src" kind="src"/>
-	<classpathentry path="org.eclipse.jdt.launching.JRE_CONTAINER" kind="con"/>
-	<classpathentry path="org.eclipse.pde.core.requiredPlugins" kind="con"/>
-	<classpathentry path="bin" kind="output"/>
-</classpath>
diff --git a/examples/org.eclipse.ui.examples.navigator/.project b/examples/org.eclipse.ui.examples.navigator/.project
deleted file mode 100644
index cbc0eeb..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.navigator</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/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index da48a0d..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Thu Oct 20 14:37:10 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.4
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index d2f2d8a..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Thu Oct 20 14:37:10 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index be90646..0000000
--- a/examples/org.eclipse.ui.examples.navigator/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,28 +0,0 @@
-#Fri Mar 06 16:09:03 PST 2009
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=1
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.illegal-att-value=0
-compilers.p.internal=1
-compilers.p.missing-packages=2
-compilers.p.missing-version-export-package=2
-compilers.p.missing-version-import-package=2
-compilers.p.missing-version-require-bundle=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
deleted file mode 100644
index f75010d..0000000
--- a/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Navigator_Examples
-Bundle-SymbolicName: org.eclipse.ui.examples.navigator;singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.navigator,
- org.eclipse.ui.views,
- org.eclipse.ui,
- org.eclipse.ui.ide,
- org.eclipse.ui.workbench,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.jface.text
-Bundle-Activator: org.eclipse.ui.internal.examples.navigator.Activator
diff --git a/examples/org.eclipse.ui.examples.navigator/about.html b/examples/org.eclipse.ui.examples.navigator/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.navigator/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.navigator/build.properties b/examples/org.eclipse.ui.examples.navigator/build.properties
deleted file mode 100644
index edb0f5e..0000000
--- a/examples/org.eclipse.ui.examples.navigator/build.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 = META-INF/,\
-               .,\
-               plugin.xml,\
-               plugin.properties
-src.includes = about.html
-jars.compile.order = .
-source.. = src/
-output.. = bin/
diff --git a/examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif b/examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif
deleted file mode 100644
index b6922ac..0000000
--- a/examples/org.eclipse.ui.examples.navigator/icons/delete_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif b/examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif
deleted file mode 100644
index 4b98a62..0000000
--- a/examples/org.eclipse.ui.examples.navigator/icons/filenav_nav.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif b/examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif
deleted file mode 100644
index d11c996..0000000
--- a/examples/org.eclipse.ui.examples.navigator/icons/prop_ps.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.navigator/plugin.properties b/examples/org.eclipse.ui.examples.navigator/plugin.properties
deleted file mode 100644
index c9cee89..0000000
--- a/examples/org.eclipse.ui.examples.navigator/plugin.properties
+++ /dev/null
@@ -1,13 +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
-###############################################################################
-
-Navigator_Examples=Common Navigator Examples
-Common_Navigator_Example=Common Navigator Example 
diff --git a/examples/org.eclipse.ui.examples.navigator/plugin.xml b/examples/org.eclipse.ui.examples.navigator/plugin.xml
deleted file mode 100644
index 37b290e..0000000
--- a/examples/org.eclipse.ui.examples.navigator/plugin.xml
+++ /dev/null
@@ -1,174 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <!-- Phase 1 -->
-   <!-- Declare the view part to hold the default implementation --> 
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.ui.examples.navigator.category"
-            name="Common Navigator Examples"/>
-      <view
-            allowMultiple="false"
-            class="org.eclipse.ui.navigator.CommonNavigator"
-            icon="icons/filenav_nav.gif"
-            id="org.eclipse.ui.examples.navigator.view"
-            name="Example View"/>
-   </extension>
-   
-   <!-- Declare the viewer configuration, and the default content/action bindings -->
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewer viewerId="org.eclipse.ui.examples.navigator.view">
-         <popupMenu
-                allowsPlatformContributions="true"
-                id="org.eclipse.ui.examples.navigator.view#PopupMenu">  
-             <insertionPoint name="group.new"/>
-             <insertionPoint
-                   name="group.open"
-                   separator="true"/>
-             <insertionPoint name="group.openWith"/>   
-             <insertionPoint name="group.edit"
-                   separator="true"/>   
-             <insertionPoint name="group.reorganize" />         
-             <insertionPoint
-                   name="group.port"
-                   separator="true"/>     
-             <insertionPoint
-                   name="group.build"
-                   separator="true"/> 
-             <insertionPoint
-                   name="group.generate"
-                   separator="true"/> 
-             <insertionPoint
-                   name="group.search"
-                   separator="true"/>              
-             <insertionPoint
-                   name="additions"
-                   separator="true"/>              
-             <insertionPoint
-                   name="group.properties"
-                   separator="true"/>             
-          </popupMenu>
-      </viewer>
-      <viewerContentBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <contentExtension pattern="org.eclipse.ui.navigator.resourceContent"/>
-            <contentExtension pattern="org.eclipse.ui.navigator.resources.filters.*"/> 
-            <contentExtension pattern="org.eclipse.ui.examples.navigator.filters.*"/> 
-         </includes>
-      </viewerContentBinding>
-      <viewerActionBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <actionExtension pattern="org.eclipse.ui.navigator.resources.*"/>
-         </includes>
-      </viewerActionBinding>
-   </extension>
-   
-   <!-- Declare a simple filter example that uses core expressions -->
-   <extension
-         point="org.eclipse.ui.navigator.navigatorContent">
-      <commonFilter
-            id="org.eclipse.ui.examples.navigator.filters.hideNonJavaProjects"
-            name="Hide non-Java Projects">
-         <filterExpression>
-            <not>
-               <adapt type="org.eclipse.core.resources.IProject">
-                  <test
-                        property="org.eclipse.core.resources.projectNature"
-                        value="org.eclipse.jdt.core.javanature"/>
-               </adapt>
-            </not>
-         </filterExpression>
-      </commonFilter>
-   </extension>
-  
-  <!-- Phase 2 -->
-  <!-- Declare a content extension that renders the contents of a properties file -->
-  <extension
-         point="org.eclipse.ui.navigator.navigatorContent">
-         
-      <navigatorContent 
-            id="org.eclipse.ui.examples.navigator.propertiesContent" 
-            name="Properties File Contents"
-            contentProvider="org.eclipse.ui.examples.navigator.PropertiesContentProvider"
-            labelProvider="org.eclipse.ui.examples.navigator.PropertiesLabelProvider" 
-            activeByDefault="true"
-            icon="icons/prop_ps.gif"
-            priority="normal" >
-         <triggerPoints>
-         	<or>
-	            <and>
-	               <instanceof value="org.eclipse.core.resources.IResource"/>
-	               <test
-	                     forcePluginActivation="true"
-	                     property="org.eclipse.core.resources.extension"
-	                     value="properties"/>
-	            </and>
-				<instanceof value="org.eclipse.ui.examples.navigator.PropertiesTreeData"/>
-			</or>
-         </triggerPoints>
-         <possibleChildren>
-            <or>
-               <instanceof value="org.eclipse.ui.examples.navigator.PropertiesTreeData"/> 
-            </or>
-         </possibleChildren>
-         <actionProvider
-               class="org.eclipse.ui.examples.navigator.actions.PropertyActionProvider"
-               id="org.eclipse.ui.examples.navigator.properties.actions.OpenProvider"/>
-      </navigatorContent>
-   </extension>
-   
-   <!-- Bind the Properties content extension to the viewer -->
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewerContentBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <contentExtension pattern="org.eclipse.ui.examples.navigator.propertiesContent"/>
-         </includes>
-      </viewerContentBinding>
-   </extension>
-   
-   <!-- Contribute an Object Contribution to delete individual properties in the view -->
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            adaptable="false"
-            id="org.eclipse.ui.examples.navigator.actions.propertiesResource"
-            objectClass="org.eclipse.ui.examples.navigator.PropertiesTreeData">
-         <action
-               class="org.eclipse.ui.examples.navigator.actions.DeletePropertyAction"
-               enablesFor="1"
-               helpContextId="org.eclipse.ui.edit.delete"
-               icon="icons/delete_obj.gif"
-               id="org.eclipse.ui.examples.navigator.actions.deleteProperty"
-               label="Delete Property"
-               menubarPath="group.edit"
-               tooltip="Delete a specific property"/>
-      </objectContribution> 
-   </extension>
-   
-   <!-- 
-   	Bind the Action Provider independently 
-   <extension
-         point="org.eclipse.ui.navigator.navigatorContent">         
-     <actionProvider
-           class="org.eclipse.ui.examples.navigator.actions.PropertyActionProvider"
-           id="org.eclipse.ui.examples.navigator.properties.actions.OpenProvider"/> 
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.navigator.viewer">
-      <viewerActionBinding viewerId="org.eclipse.ui.examples.navigator.view">
-         <includes>
-            <actionExtension 
-            	pattern="org.eclipse.ui.examples.navigator.properties.actions.*"/>
-         </includes>
-      </viewerActionBinding>
-   </extension> 
-   
-   -->
-  
-  
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java
deleted file mode 100644
index 8e9ebab..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesContentProvider.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation.
- * Licensed Material - Property of IBM. All rights reserved.
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.navigator;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * Provides the properties contained in a *.properties file as children of that
- * file in a Common Navigator.  
- * @since 3.2 
- */
-public class PropertiesContentProvider implements ITreeContentProvider,
-		IResourceChangeListener, IResourceDeltaVisitor {
-  
-	private static final Object[] NO_CHILDREN = new Object[0];
-
-	private static final Object PROPERTIES_EXT = "properties"; //$NON-NLS-1$
-
-	private final Map/*<IFile, PropertiesTreeData[]>*/ cachedModelMap = new HashMap();
-
-	private StructuredViewer viewer;
-	
-	/**
-	 * Create the PropertiesContentProvider instance.
-	 * 
-	 * Adds the content provider as a resource change listener to track changes on disk.
-	 *
-	 */
-	public PropertiesContentProvider() {
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	/**
-	 * Return the model elements for a *.properties IFile or
-	 * NO_CHILDREN for otherwise.
-	 */
-	public Object[] getChildren(Object parentElement) {  
-		Object[] children = null;
-		if (parentElement instanceof PropertiesTreeData) { 
-			children = NO_CHILDREN;
-		} else if(parentElement instanceof IFile) {
-			/* possible model file */
-			IFile modelFile = (IFile) parentElement;
-			if(PROPERTIES_EXT.equals(modelFile.getFileExtension())) {				
-				children = (PropertiesTreeData[]) cachedModelMap.get(modelFile);
-				if(children == null && updateModel(modelFile) != null) {
-					children = (PropertiesTreeData[]) cachedModelMap.get(modelFile);
-				}
-			}
-		}   
-		return children != null ? children : NO_CHILDREN;
-	}  
-
-	/**
-	 * Load the model from the given file, if possible.  
-	 * @param modelFile The IFile which contains the persisted model 
-	 */ 
-	private synchronized Properties updateModel(IFile modelFile) { 
-		
-		if(PROPERTIES_EXT.equals(modelFile.getFileExtension()) ) {
-			Properties model = new Properties();
-			if (modelFile.exists()) {
-				try {
-					model.load(modelFile.getContents()); 
-					
-					String propertyName; 
-					List properties = new ArrayList();
-					for(Enumeration names = model.propertyNames(); names.hasMoreElements(); ) {
-						propertyName = (String) names.nextElement();
-						properties.add(new PropertiesTreeData(propertyName,  model.getProperty(propertyName), modelFile));
-					}
-					PropertiesTreeData[] propertiesTreeData = (PropertiesTreeData[])
-						properties.toArray(new PropertiesTreeData[properties.size()]);
-					
-					cachedModelMap.put(modelFile, propertiesTreeData);
-					return model; 
-				} catch (IOException e) {
-				} catch (CoreException e) {
-				}
-			} else {
-				cachedModelMap.remove(modelFile);
-			}
-		}
-		return null; 
-	}
-
-	public Object getParent(Object element) {
-		if (element instanceof PropertiesTreeData) {
-			PropertiesTreeData data = (PropertiesTreeData) element;
-			return data.getFile();
-		} 
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {		
-		if (element instanceof PropertiesTreeData) {
-			return false;		
-		} else if(element instanceof IFile) {
-			return PROPERTIES_EXT.equals(((IFile) element).getFileExtension());
-		}
-		return false;
-	}
-
-	public Object[] getElements(Object inputElement) {
-		return getChildren(inputElement);
-	}
-
-	public void dispose() {
-		cachedModelMap.clear();
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this); 
-	}
-
-	public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) {
-		if (oldInput != null && !oldInput.equals(newInput))
-			cachedModelMap.clear();
-		viewer = (StructuredViewer) aViewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
-	 */
-	public void resourceChanged(IResourceChangeEvent event) {
-
-		IResourceDelta delta = event.getDelta();
-		try {
-			delta.accept(this);
-		} catch (CoreException e) { 
-			e.printStackTrace();
-		} 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
-	 */
-	public boolean visit(IResourceDelta delta) {
-
-		IResource source = delta.getResource();
-		switch (source.getType()) {
-		case IResource.ROOT:
-		case IResource.PROJECT:
-		case IResource.FOLDER:
-			return true;
-		case IResource.FILE:
-			final IFile file = (IFile) source;
-			if (PROPERTIES_EXT.equals(file.getFileExtension())) {
-				updateModel(file);
-				new UIJob("Update Properties Model in CommonViewer") {  //$NON-NLS-1$
-					public IStatus runInUIThread(IProgressMonitor monitor) {
-						if (viewer != null && !viewer.getControl().isDisposed())
-							viewer.refresh(file);
-						return Status.OK_STATUS;						
-					}
-				}.schedule();
-			}
-			return false;
-		}
-		return false;
-	} 
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java
deleted file mode 100644
index 2ce582f..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesLabelProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation.
- * Licensed Material - Property of IBM. All rights reserved.
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.navigator;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.navigator.IDescriptionProvider;
-
-/**
- * Provides a label and icon for objects of type {@link PropertiesTreeData}. 
- * @since 3.2 
- */
-public class PropertiesLabelProvider extends LabelProvider implements
-		ILabelProvider, IDescriptionProvider {
-  
-
-	public Image getImage(Object element) {
-		if (element instanceof PropertiesTreeData)
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_INFO_TSK); 
-		return null;
-	}
-
-	public String getText(Object element) {
-		if (element instanceof PropertiesTreeData) {
-			PropertiesTreeData data = (PropertiesTreeData) element;
-			return data.getName() + "= " + data.getValue(); //$NON-NLS-1$
-		}  
-		return null;
-	}
-
-	public String getDescription(Object anElement) {
-		if (anElement instanceof PropertiesTreeData) {
-			PropertiesTreeData data = (PropertiesTreeData) anElement;
-			return "Property: " + data.getName(); //$NON-NLS-1$
-		}
-		return null;
-	}
-  
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java
deleted file mode 100644
index 60dc4dc..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/PropertiesTreeData.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation.
- * Licensed Material - Property of IBM. All rights reserved.
- * US Government Users Restricted Rights - Use, duplication or disclosure
- * restricted by GSA ADP Schedule Contract with IBM Corp.
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.navigator;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * Provides a simple model of a name=value pair from a *.properties file.
- * 
- * @since 3.2
- */
-public class PropertiesTreeData { 
-
-	private IFile container; 
-	private String name;  
-	private String value;
-
-	/**
-	 * Create a property with the given name and value contained by the given file. 
-	 *  
-	 * @param aName The name of the property.
-	 * @param aValue The value of the property.
-	 * @param aFile The file that defines this property.
-	 */
-	public PropertiesTreeData(String aName, String aValue, IFile aFile) { 
-		name = aName;
-		value = aValue;
-		container = aFile; 
-	} 
- 
-	/**
-	 * The name of this property.
-	 * @return The name of this property.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Return the value of the property in the file.  
-	 * @return The value of the property in the file.
-	 */
-	public String getValue() {
-		return value;
-	}
-
-	/**
-	 * The IFile that defines this property.  
-	 * @return The IFile that defines this property.
-	 */
-	public IFile getFile() { 
-		return container;
-	}
-
-	public int hashCode() {
-		return name.hashCode();
-	}
-
-	public boolean equals(Object obj) {
-		return obj instanceof PropertiesTreeData
-				&& ((PropertiesTreeData) obj).getName().equals(name);
-	} 
-
-	public String toString() {
-		StringBuffer toString = 
-				new StringBuffer(getName()).append(":").append(getValue()); //$NON-NLS-1$
-		return toString.toString();
-	}
-
-
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java
deleted file mode 100644
index a2cf6b5..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/DeletePropertyAction.java
+++ /dev/null
@@ -1,141 +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.examples.navigator.actions;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionDelegate;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.examples.navigator.PropertiesTreeData;
-import org.eclipse.ui.internal.examples.navigator.Activator;
-
-/**
- * A sample action that can delete a PropertiesTreeData item from a property file. 
- * 
- * @since 3.2
- */
-public class DeletePropertyAction extends ActionDelegate {
-	
-	private IStructuredSelection selection = StructuredSelection.EMPTY;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IAction action, ISelection sel) {
-		if(sel instanceof IStructuredSelection)
-			selection = (IStructuredSelection) sel;
-		else 
-			selection = StructuredSelection.EMPTY;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		  
-		WorkspaceModifyOperation deletePropertyOperation = new WorkspaceModifyOperation() {
-			/* (non-Javadoc)
-			 * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
-			 */
-			protected void execute(IProgressMonitor monitor) throws CoreException {
-				// In production code, you should always externalize strings, but this is an example.
-				monitor.beginTask("Deleting property from selection", 5); //$NON-NLS-1$ 
-				try {
-					if(selection.size() == 1) {
-						
-						 Object firstElement = selection.getFirstElement();
-						 if(firstElement instanceof PropertiesTreeData) {
-							 PropertiesTreeData data = (PropertiesTreeData) firstElement;
-							 
-							 IFile propertiesFile = data.getFile();
-							 monitor.worked(1);
-							 
-							 if(propertiesFile != null && propertiesFile.isAccessible()) {
-								 
-								 try {
-									// load the model 
-									 Properties properties = new Properties();
-									 properties.load(propertiesFile.getContents());
-									 monitor.worked(1);  
-									 
-									 // delete the property 
-									 properties.remove(data.getName());
-									 monitor.worked(1);
-									 
-									 // persist the model to a temporary storage medium (byte[])
-									 ByteArrayOutputStream output = new ByteArrayOutputStream();
-									 properties.store(output, null);
-									 monitor.worked(1);
-									 
-									 // set the contents of the properties file 
-									 propertiesFile.setContents(
-											 			new ByteArrayInputStream(output.toByteArray()), 
-											 					IResource.FORCE | IResource.KEEP_HISTORY, monitor);
-									 monitor.worked(1);
-								} catch (IOException e) {
-									 // handle error gracefully 
-									Activator.logError(0, "Could not delete property!", e); //$NON-NLS-1$
-									MessageDialog.openError(Display.getDefault().getActiveShell(), 
-							 				"Error Deleting Property",  //$NON-NLS-1$
-							 				"Could not delete property!");   //$NON-NLS-1$
-								}
-									 
-							 } else // shouldn't happen, but handle error condition 
-								 MessageDialog.openError(Display.getDefault().getActiveShell(), 
-										 				"Error Deleting Property",  //$NON-NLS-1$
-										 				"The properties file was not accessible!");   //$NON-NLS-1$
-							 
-						 } else // shouldn't happen, but handle error condition 
-							 MessageDialog.openError(Display.getDefault().getActiveShell(), 
-						 				"Error Deleting Property",  //$NON-NLS-1$
-						 				"The element that was selected was not of the right type.");   //$NON-NLS-1$
-					 } else // shouldn't happen, but handle error condition 
-						 MessageDialog.openError(Display.getDefault().getActiveShell(), 
-					 				"Error Deleting Property",  //$NON-NLS-1$
-					 				"An invalid number of properties were selected.");   //$NON-NLS-1$
-				} finally {
-					monitor.done();
-				}
-			}
-		};		
-		try {
-			PlatformUI.getWorkbench().getProgressService().run(true, false, deletePropertyOperation);
-		} catch (InvocationTargetException e) { 
-			// handle error gracefully			
-			Activator.logError(0, "Could not delete property!", e); //$NON-NLS-1$
-			MessageDialog.openError(Display.getDefault().getActiveShell(), 
-	 				"Error Deleting Property",  //$NON-NLS-1$
-	 				"Could not delete property!");   //$NON-NLS-1$
-		} catch (InterruptedException e) {
-			 // handle error gracefully
-			Activator.logError(0, "Could not delete property!", e); //$NON-NLS-1$
-			MessageDialog.openError(Display.getDefault().getActiveShell(), 
-	 				"Error Deleting Property",  //$NON-NLS-1$
-	 				"Could not delete property!");   //$NON-NLS-1$
-		}
-		 
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java
deleted file mode 100644
index 35a8d2d..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/OpenPropertyAction.java
+++ /dev/null
@@ -1,122 +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.examples.navigator.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.FindReplaceDocumentAdapter;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.navigator.PropertiesTreeData;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.examples.navigator.Activator;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * @since 3.2
- *
- */
-public class OpenPropertyAction extends Action {
-	
-	private IWorkbenchPage page;
-	private PropertiesTreeData data;
-	private ISelectionProvider provider; 
-
-
-	/**
-	 * Construct the OpenPropertyAction with the given page. 
-	 * @param p The page to use as context to open the editor.
-	 * @param selectionProvider The selection provider 
-	 */
-	public OpenPropertyAction(IWorkbenchPage p, ISelectionProvider selectionProvider) {
-		setText("Open Property"); //$NON-NLS-1$
-		page = p;
-		provider = selectionProvider;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.Action#isEnabled()
-	 */
-	public boolean isEnabled() {
-		ISelection selection = provider.getSelection();
-		if(!selection.isEmpty()) {
-			IStructuredSelection sSelection = (IStructuredSelection) selection;
-			if(sSelection.size() == 1 && 
-			   sSelection.getFirstElement() instanceof PropertiesTreeData) 
-			{
-				data = ((PropertiesTreeData)sSelection.getFirstElement()); 				
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() { 
-		/* In production code, you should always externalize strings, 
-		 * 	but this is an example. */
-		try {
-			if(isEnabled()) {
-				IFile propertiesFile = data.getFile();
-				IEditorPart editor = IDE.openEditor(page, propertiesFile); 
-				
-				if (editor instanceof ITextEditor) {
-					ITextEditor textEditor = (ITextEditor) editor;
-					
-					IDocumentProvider documentProvider = 
-						textEditor.getDocumentProvider();
-					IDocument document = 
-						documentProvider.getDocument(editor.getEditorInput());
-					
-					FindReplaceDocumentAdapter searchAdapter = 
-						new FindReplaceDocumentAdapter(document);
-					
-					try {
-						String searchText = data.getName()+"="; //$NON-NLS-1$ 
-						IRegion region = searchAdapter.find(0, 
-															searchText, 
-															true /* forwardSearch */, 
-															true /* caseSensitive */, 
-															false /* wholeWord */, 
-															false /* regExSearch */); 
-						
-						((ITextEditor)editor).selectAndReveal(region.getOffset(), region.getLength());
-						
-					} catch (BadLocationException e) {
-						Activator.logError(0, "Could not open property!", e); //$NON-NLS-1$
-						MessageDialog.openError(Display.getDefault().getActiveShell(), 
-				 				"Error Opening Property",  //$NON-NLS-1$
-				 				"Could not open property!");   //$NON-NLS-1$
-					}
-					return;
-				}
-			} 
-		} catch (PartInitException e) { 
-			Activator.logError(0, "Could not open property!", e); //$NON-NLS-1$
-			MessageDialog.openError(Display.getDefault().getActiveShell(), 
-	 				"Error Opening Property",  //$NON-NLS-1$
-	 				"Could not open property!");   //$NON-NLS-1$
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java
deleted file mode 100644
index 7b77d54..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/examples/navigator/actions/PropertyActionProvider.java
+++ /dev/null
@@ -1,70 +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.examples.navigator.actions;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionConstants;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonMenuConstants;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-
-/**
- * @since 3.2
- *
- */
-public class PropertyActionProvider extends CommonActionProvider {
-	
-	private OpenPropertyAction openAction;
-
-	/**
-	 * Construct Property Action provider.
-	 */
-	public PropertyActionProvider() { 		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.navigator.CommonActionProvider#init(org.eclipse.ui.navigator.ICommonActionExtensionSite)
-	 */
-	public void init(ICommonActionExtensionSite aSite) {
-	
-		ICommonViewerSite viewSite = aSite.getViewSite();
-		if(viewSite instanceof ICommonViewerWorkbenchSite) {
-			ICommonViewerWorkbenchSite workbenchSite = 
-				(ICommonViewerWorkbenchSite) viewSite;
-			openAction = 
-				new OpenPropertyAction(workbenchSite.getPage(), 
-										workbenchSite.getSelectionProvider());
-		}
-	}	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void fillActionBars(IActionBars actionBars) { 
-		/* Set up the property open action when enabled. */
-		if(openAction.isEnabled())
-			actionBars.setGlobalActionHandler(ICommonActionConstants.OPEN, openAction);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void fillContextMenu(IMenuManager menu) {
-		if(openAction.isEnabled())
-			menu.appendToGroup(ICommonMenuConstants.GROUP_OPEN, openAction);		
-	}
-	
-	
-}
diff --git a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java b/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.java
deleted file mode 100644
index 02cd914..0000000
--- a/examples/org.eclipse.ui.examples.navigator/src/org/eclipse/ui/internal/examples/navigator/Activator.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.examples.navigator;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
-	/** The plug-in ID */
-	public static final String PLUGIN_ID = "org.eclipse.ui.examples.navigator"; //$NON-NLS-1$
-	  
-	// The shared instance
-	private static Activator plugin;  
-	/**
-	 * The constructor
-	 */
-	public Activator() {
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context); 
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);  
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	} 
-
-	/**
-	 * Record an error against this plugin's log. 
-	 * 
-	 * @param aCode
-	 * @param aMessage
-	 * @param anException
-	 */
-	public static void logError(int aCode, String aMessage,
-			Throwable anException) {
-		getDefault().getLog().log(
-				createErrorStatus(aCode, aMessage, anException));
-	}
-
-	/**
-	 * 
-	 * Record a message against this plugin's log. 
-	 * 
-	 * @param severity
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 */
-	public static void log(int severity, int aCode, String aMessage,
-			Throwable exception) {
-		log(createStatus(severity, aCode, aMessage, exception));
-	}
-
-	/**
-	 * 
-	 * Record a status against this plugin's log. 
-	 * 
-	 * @param aStatus
-	 */
-	public static void log(IStatus aStatus) {
-		getDefault().getLog().log(aStatus);
-	}
-
-	/**
-	 * Create a status associated with this plugin.
-	 *  
-	 * @param severity
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 * @return A status configured with this plugin's id and the given parameters.
-	 */
-	public static IStatus createStatus(int severity, int aCode,
-			String aMessage, Throwable exception) {
-		return new Status(severity, PLUGIN_ID, aCode,
-				aMessage != null ? aMessage : "No message.", exception); //$NON-NLS-1$
-	}
-
-	/**
-	 * 
-	 * @param aCode
-	 * @param aMessage
-	 * @param exception
-	 * @return A status configured with this plugin's id and the given parameters.
-	 */
-	public static IStatus createErrorStatus(int aCode, String aMessage,
-			Throwable exception) {
-		return createStatus(IStatus.ERROR, aCode, aMessage, exception);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/.classpath b/examples/org.eclipse.ui.examples.presentation/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.ui.examples.presentation/.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/examples/org.eclipse.ui.examples.presentation/.cvsignore b/examples/org.eclipse.ui.examples.presentation/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.presentation/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.presentation/.project b/examples/org.eclipse.ui.examples.presentation/.project
deleted file mode 100644
index caf64e4..0000000
--- a/examples/org.eclipse.ui.examples.presentation/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.presentation</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/examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini b/examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini
deleted file mode 100644
index 6cb8033..0000000
--- a/examples/org.eclipse.ui.examples.presentation/BareBonesPresentation.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-# use the Bare-bones presentation style
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.examples.presentation.barebones
diff --git a/examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini b/examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini
deleted file mode 100644
index 30e3cb0..0000000
--- a/examples/org.eclipse.ui.examples.presentation/WrappedTabsPresentation.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-# use the Wrapped-Tabs presentation style
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.examples.presentation.wrappedtabs
diff --git a/examples/org.eclipse.ui.examples.presentation/about.html b/examples/org.eclipse.ui.examples.presentation/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.presentation/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.presentation/build.properties b/examples/org.eclipse.ui.examples.presentation/build.properties
deleted file mode 100644
index 31f3e08..0000000
--- a/examples/org.eclipse.ui.examples.presentation/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-source.presentation.jar = src/
-output.presentation.jar = bin/
-bin.includes = plugin.xml,\
-               presentation.jar,\
-               icons/
-src.includes = icons/,\
-               src/,\
-               doc/,\
-               plugin.xml
diff --git a/examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt b/examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt
deleted file mode 100644
index 6add476..0000000
--- a/examples/org.eclipse.ui.examples.presentation/eclipsecon2005-presentationsAPI.ppt
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/close_view.gif b/examples/org.eclipse.ui.examples.presentation/icons/close_view.gif
deleted file mode 100644
index 44b6151..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/close_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF b/examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF
deleted file mode 100644
index 5858e4a..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/hide_toolbar.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/max_view.gif b/examples/org.eclipse.ui.examples.presentation/icons/max_view.gif
deleted file mode 100644
index 94ed448..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/max_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/min_view.gif b/examples/org.eclipse.ui.examples.presentation/icons/min_view.gif
deleted file mode 100644
index bd2ed2d..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/min_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF b/examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF
deleted file mode 100644
index 942d60c..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/restore_view.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF b/examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF
deleted file mode 100644
index eda10ab..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/show_toolbar.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF b/examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF
deleted file mode 100644
index 21ec7f1..0000000
--- a/examples/org.eclipse.ui.examples.presentation/icons/view_menu.GIF
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.presentation/plugin.xml b/examples/org.eclipse.ui.examples.presentation/plugin.xml
deleted file mode 100644
index 18da18c..0000000
--- a/examples/org.eclipse.ui.examples.presentation/plugin.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<!-- =================================================================================== -->
-<!-- Presentation Example Manifest						 					                                 -->
-<!-- =================================================================================== -->
-<plugin
-   id="org.eclipse.ui.examples.presentation"
-   name="Presentation Example"
-   version="1.0.7"
-   provider-name="Eclipse.org"
-   class="org.eclipse.ui.examples.presentation.PresentationPlugin">
-
-<!-- =================================================================================== -->
-<!-- Libraries					 					                                 -->
-<!-- =================================================================================== -->
-
-   <runtime>
-      <library name="presentation.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-
-<!-- =================================================================================== -->
-<!-- Imports						 					                                 -->
-<!-- =================================================================================== -->
-  
-<requires>
-  <import plugin="org.eclipse.ui"/>
-  <import plugin="org.eclipse.core.runtime"/>
-</requires>
-
-<!-- =================================================================================== -->
-<!-- Presentation Extensions						 					                                 -->
-<!-- =================================================================================== -->
-
-   <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            class="org.eclipse.ui.examples.presentation.barebones.BareBonesPresentationFactory"
-            name="Bare-bones presentation"
-            id="org.eclipse.ui.examples.presentation.barebones"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            class="org.eclipse.ui.examples.presentation.wrappedtabs.WrappedTabsPresentationFactory"
-            name="Wrapped tabs presentation"
-            id="org.eclipse.ui.examples.presentation.wrappedtabs"/>
-   </extension>
-      <extension
-         point="org.eclipse.ui.presentationFactories">
-      <factory
-            class="org.eclipse.ui.internal.presentations.defaultpresentation.NativePresentationFactory"
-            name="Native Tabs"
-            id="org.eclipse.ui.internal.presentations.defaultpresentation.NativePresentationFactory"/>
-      <factory
-            class="org.eclipse.ui.examples.presentation.baretittle.BareTitlePresentationFactory"
-            id="org.eclipse.ui.examples.presentation.factory1"
-            name="Simple Title"/>
-      <factory
-            class="org.eclipse.ui.examples.presentation.sidewinder.SideWinderPresentationFactory"
-            id="org.eclipse.ui.examples.presentation.factory2"
-            name="Side Winder"/>
-   </extension>
-
-<!-- =================================================================================== -->
-<!-- Themes						 					                                 -->
-<!-- =================================================================================== -->
-
-<extension point="org.eclipse.ui.themes">
-	<themeElementCategory
-    	id="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-       	label="WrappedTabs Presentation"/>
-    <categoryPresentationBinding
-            categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-            presentationId="org.eclipse.ui.examples.presentation.wrappedtabs">
-      </categoryPresentationBinding>
-	<colorDefinition 
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_focus"
-        categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-        label="Border Color (Focus)"
-        value="COLOR_WIDGET_BORDER">
-        <description>
-        This color is used for the forground color of the stack border when it has focus.
-        </description>
-      </colorDefinition>
-      <colorDefinition 
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_nofocus"
-        categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"
-        label="Border Color (No-Focus)"
-        value="COLOR_WIDGET_NORMAL_SHADOW">
-        <description>
-        This color is used for the forground color of the stack border when it doesn't have focus.
-        </description>
-      </colorDefinition>  
-      <fontDefinition
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.font"
-        categoryId="org.eclipse.ui.examples.presentation.wrappedtabstheme"        
-        label="Tab Font"
-        defaultsTo="org.eclipse.jface.textfont">
-        <description>
-        This font is used to display the part selection tabs.
-        </description>
-      </fontDefinition>  
-      <data
-       name="org.eclipse.ui.examples.presentation.wrappedtabstheme.bordersize"
-       value="1"/>
-       
-       <theme
-        id="org.eclipse.ui.examples.presentation.wrappedtabstheme.harsh"
-        name="Harsh Wrapped Tabs Theme">
-        <colorOverride
-         id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_focus"
-         value="COLOR_CYAN"/>
-        <colorOverride
-         id="org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_nofocus"
-         value="COLOR_MAGENTA"/>
-      <data
-           name="org.eclipse.ui.examples.presentation.wrappedtabstheme.bordersize"
-           value="5"/>      
-      </theme> 
-</extension> 
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java
deleted file mode 100644
index 0e21c87..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationExamplesPlugin.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.eclipse.ui.examples.presentation;
-
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class PresentationExamplesPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static PresentationExamplesPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * The constructor.
-	 */
-	public PresentationExamplesPlugin() {
-		super();
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle.getBundle("org.eclipse.ui.examples.presentation.PresentationExamplesPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static PresentationExamplesPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = PresentationExamplesPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java
deleted file mode 100644
index 3f929c8..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationImages.java
+++ /dev/null
@@ -1,39 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-
-
-/**
- * @since 3.0
- */
-public class PresentationImages {	
-	public static final String CLOSE_VIEW = "close_view.gif";
-	public static final String MIN_VIEW = "min_view.gif";
-	public static final String MAX_VIEW = "max_view.gif";
-	public static final String RESTORE_VIEW = "restore_view.gif";
-	public static final String VIEW_MENU = "view_menu.gif";
-	public static final String SHOW_TOOLBAR = "show_toolbar.gif";
-	public static final String HIDE_TOOLBAR = "hide_toolbar.gif";
-	
-	private PresentationImages() {
-	}
-	
-	public static Image getImage(String imageName) {
-		return PresentationPlugin.getDefault().getImage(imageName);
-	}
-	
-	public static ImageDescriptor getImageDescriptor(String imageName) {
-		return PresentationPlugin.getDefault().getImageDescriptor(imageName);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java
deleted file mode 100644
index c11e638..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/PresentationPlugin.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package org.eclipse.ui.examples.presentation;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class PresentationPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static PresentationPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	
-	/**
-	 * The constructor.
-	 */
-	public PresentationPlugin() {
-		super();
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle.getBundle("org.eclipse.ui.examples.presentation.PresentationPluginResources"); //$NON-NLS-1$
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-	
-	/**
-	 * Returns the given image. The image will be managed by the plugin's
-	 * image registry.
-	 * 
-	 * @param imageName a pathname relative to the icons directory of
-	 * this project.
-	 */
-	public Image getImage(String imageName) {
-		ImageRegistry reg = getImageRegistry();
-		
-		Image result = reg.get(imageName);
-		
-		if (result != null) {
-			return result;
-		}
-		
-		result = getImageDescriptor(imageName).createImage();
-		
-		reg.put(imageName, result);
-		
-		return result;
-	}
-
-	/**
-	 * Returns the given image descriptor. The caller will be responsible
-	 * for deallocating the image if it creates the image from the descriptor
-	 * 
-	 * @param imageName is a pathname relative to the icons directory 
-	 * within this project.
-	 */
-	public ImageDescriptor getImageDescriptor(String imageName) {		
-		ImageDescriptor desc;
-		try {
-			desc =
-				ImageDescriptor.createFromURL(
-					new URL(
-							plugin.getBundle().getEntry("/"), //$NON-NLS-1$
-							"icons/" + imageName)); //$NON-NLS-1$
-		} catch (MalformedURLException e) {
-			desc = ImageDescriptor.getMissingImageDescriptor();
-		}
-					
-		return desc;
-	}
-	
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static PresentationPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = PresentationPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java
deleted file mode 100644
index 0272339..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPartPresentation.java
+++ /dev/null
@@ -1,167 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.barebones;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-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.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * Bare-bones stack presentation. The currently selected part fills the entire
- * presentation area, and all other parts are invisible. Does not provide a 
- * system menu, pane menu, trim, drag/drop, toolbars, or any way to switch 
- * parts.
- */
-public class BareBonesPartPresentation extends StackPresentation {
-
-/**
- * Main widget for the presentation
- */
-private Composite presentationControl;
-
-/**
- * Currently selected part
- */
-private IPresentablePart current;
-
-/**
- * Creates a new bare-bones part presentation, given the parent composite and 
- * an IStackPresentationSite interface that will be used to communicate with 
- * the workbench.
- * 
- * @param stackSite interface to the workbench
- */
-public BareBonesPartPresentation(Composite parent, 
-		IStackPresentationSite stackSite) {
-	super(stackSite);		
-	
-	// Create a top-level control for the presentation.
-	presentationControl = new Composite(parent, SWT.NONE);
-	
-	// Add a dispose listener. This will call the presentationDisposed()
-	// method when the widget is destroyed.
-	presentationControl.addDisposeListener(new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			presentationDisposed();
-		}
-	});
-}
-
-public void dispose() {
-	// Dispose the main presentation widget. This will cause 
-	// presentationDisposed to be called, which will do the real cleanup.
-	presentationControl.dispose();
-}
-
-/**
- * Perform any cleanup. This method should remove any listeners that were
- * attached to other objects. This gets called when the presentation
- * widget is disposed. This is safer than cleaning up in the dispose() 
- * method, since this code will run even if some unusual circumstance 
- * destroys the Shell without first calling dispose().
- */
-protected void presentationDisposed() {
-	// Remove any listeners that were attached to any IPresentableParts or
-	// global Eclipse resources. This is necessary in order to prevent
-	// memory leaks. Currently, there is nothing to do.
-}
-
-public void setBounds(Rectangle bounds) {
-	// Set the bounds of the presentation widget
-	presentationControl.setBounds(bounds);
-	
-	// Update the bounds of the currently visible part
-	updatePartBounds();
-}
-
-private void updatePartBounds() {
-	if (current != null) {
-		current.setBounds(presentationControl.getBounds());
-	}
-}
-
-public Point computeMinimumSize() {
-	return new Point(16,16);
-}
-
-public void setVisible(boolean isVisible) {
-	
-	// Make the presentation widget visible
-	presentationControl.setVisible(isVisible);
-	
-	// Make the currently visible part visible
-	if (current != null) {
-		current.setVisible(isVisible);
-	}
-
-	if (isVisible) {
-		// Restore the bounds of the currently visible part. 
-		// IPartPresentations can be used by multiple StackPresentations,
-		// although only one such presentation is ever visible at a time.
-		// It is possible that some other presentation has changed the
-		// bounds of the part since it was last visible, so we need to
-		// update the part's bounds when the presentation becomes visible.
-		updatePartBounds();
-	}
-}
-
-public void selectPart(IPresentablePart toSelect) {
-	// Ignore redundant selections
-	if (toSelect == current) {
-		return;
-	}
-	
-	// If there was an existing part selected, make it invisible
-	if (current != null) {
-		current.setVisible(false);
-	}
-	
-	// Select the new part
-	current = toSelect;
-	
-	// Ordering is important here. We need to make the part
-	// visible before updating its bounds, or the call to setBounds
-	// may be ignored.
-	
-	if (current != null) {
-		// Make the newly selected part visible
-		current.setVisible(true);
-	}
-	
-	// Update the bounds of the newly selected part
-	updatePartBounds();
-}
-
-public Control[] getTabList(IPresentablePart part) {
-	return new Control[] {part.getControl()};
-}
-
-public Control getControl() {
-	return presentationControl;
-}
-
-// Methods that don't do anything yet
-public void setActive(int newState) {}
-public void setState(int state) {}
-public void addPart(IPresentablePart newPart, Object cookie) {}
-public void removePart(IPresentablePart oldPart) {}
-public StackDropResult dragOver(Control currentControl, Point location) {return null;}
-public void showSystemMenu() {}
-public void showPaneMenu() {}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java
deleted file mode 100644
index 10455e3..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/barebones/BareBonesPresentationFactory.java
+++ /dev/null
@@ -1,37 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.barebones;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * Presentation factory for the bare-bones presentation
- */
-public class BareBonesPresentationFactory extends AbstractPresentationFactory {
-
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new BareBonesPartPresentation(parent, site);
-	}
-
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new BareBonesPartPresentation(parent, site);
-	}
-	
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new BareBonesPartPresentation(parent, site);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.java
deleted file mode 100644
index 4c26dfe..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitlePresentationFactory.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.baretittle;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.*;
-
-/**
- * @since 3.0
- */
-public class BareTitlePresentationFactory extends AbstractPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createEditorPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new WorkbenchPresentationFactory().createEditorPresentation(parent, site);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new BareTitleStackPresentation(parent, site);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createStandaloneViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite, boolean)
-	 */
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new BareTitleStackPresentation(parent, site);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java
deleted file mode 100644
index a18a0d9..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/baretittle/BareTitleStackPresentation.java
+++ /dev/null
@@ -1,233 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.baretittle;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.presentations.*;
-
-public class BareTitleStackPresentation extends StackPresentation {
-
-	private static final String PART_DATA = "part";
-	
-	private static final int TITLE_HEIGHT = 22;
-	
-	private boolean activeFocus = false;
-	
-	/**
-	 * Main widget for the presentation
-	 */
-	private Composite presentationControl;
-	private Composite titleArea;
-	private Composite contentArea;
-	
-	/**
-	 * Currently selected part
-	 */
-	private IPresentablePart current;
-		
-	/**
-	 * close button
-	 */
-	private ToolItem close;
-	
-	/**
-	 * View menu button
-	 */
-	private ToolItem viewMenu;
-	
-	/**
-	 * Minimize button
-	 */
-	private ToolItem minView;
-	
-	private MouseListener mouseListener = new MouseAdapter() {		
-		// If we single-click on an empty space on the toolbar, move focus to the
-		// active control
-		public void mouseDown(MouseEvent e) {
-			if (current != null) {
-				current.setFocus();
-			}
-		}
-	};
-		
-	/** 
-	 * Drag listener for regions outside the toolbar
-	 */
-	Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point loc = new Point(event.x, event.y);
-			Control ctrl = (Control)event.widget;
-			
-			getSite().dragStart(ctrl.toDisplay(loc), false);
-		}
-	};
-	
-	public BareTitleStackPresentation(Composite parent, IStackPresentationSite stackSite) {
-		super(stackSite);
-		
-		// Create a top-level control for the presentation.
-		presentationControl = new Composite(parent, SWT.NONE);
-		titleArea = new Composite(presentationControl, SWT.NONE);
-		contentArea = new Composite(presentationControl, SWT.NONE);
-		titleArea.addMouseListener(mouseListener);
-		PresentationUtil.addDragListener(titleArea, dragListener);
-		
-		// Add a dispose listener. This will call the presentationDisposed()
-		// method when the widget is destroyed.
-		presentationControl.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				presentationDisposed();
-			}
-		});
-
-		presentationControl.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				Rectangle clientArea = presentationControl.getClientArea();			
-				e.gc.setLineWidth(1);				
-				e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_GRAY));
-				e.gc.drawRectangle(clientArea.x, clientArea.y, clientArea.width-1, clientArea.height-1);
-				Rectangle contentAreaBounds = contentArea.getBounds();
-				int ypos = contentAreaBounds.y - 1;				
-				e.gc.drawLine(clientArea.x, ypos, clientArea.x + clientArea.width - 1, ypos);
-			}			
-		});
-		
-		titleArea.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				Rectangle titleRect = titleArea.getClientArea();
-				GC gc = e.gc;
-				e.gc.setBackground(e.display.getSystemColor(SWT.COLOR_GRAY));
-				if(activeFocus)
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLUE));
-				else 
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_WHITE));
-				e.gc.fillGradientRectangle(titleRect.x, titleRect.y, titleRect.x + titleRect.width, titleRect.y + titleRect.height, true);
-				
-				if(current != null) {
-				int textWidth = titleRect.width - 1;
-				if (textWidth > 0) {
-					Font gcFont = gc.getFont();
-					gc.setFont(presentationControl.getFont());
-					String text = current.getTitle();
-					
-					Point extent = gc.textExtent(text, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);	
-					int textY = titleRect.y + (titleRect.height - extent.y) / 2;
-					
-					if(activeFocus)					
-						gc.setForeground(e.display.getSystemColor(SWT.COLOR_WHITE));
-					else 
-						gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLACK));
-					gc.setFont(JFaceResources.getBannerFont());
-					gc.drawText(text, titleRect.x + 3, textY, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);					
-				}				
-			}
-			}
-		});
-		layout();
-	}
-
-	protected void presentationDisposed() {
-	    // Remove any listeners that were attached to any
-		// global Eclipse resources. This is necessary in order to prevent
-		// memory leaks.
-	}
-	
-	protected int getBorderWidth() {
-		return 1;
-	}
-	
-	public void layout() {
-		// Determine the inner bounds of the presentation
-		Rectangle presentationClientArea = presentationControl.getClientArea();
-		presentationClientArea.x += getBorderWidth();
-		presentationClientArea.width -= getBorderWidth() * 2;
-		presentationClientArea.y += getBorderWidth();
-		presentationClientArea.height -= getBorderWidth() * 2;
-		titleArea.setBounds(presentationClientArea.x, presentationClientArea.y, presentationClientArea.width, presentationClientArea.y + TITLE_HEIGHT);
-		int yy = TITLE_HEIGHT  + 2;
-		contentArea.setBounds(presentationClientArea.x, presentationClientArea.y + yy, presentationClientArea.width, presentationClientArea.height - yy);
-		
-		titleArea.setBackground(titleArea.getDisplay().getSystemColor(SWT.COLOR_DARK_GREEN));
-		contentArea.setBackground(titleArea.getDisplay().getSystemColor(SWT.COLOR_DARK_RED));
-		
-		// Position the view's widgets
-		if (current != null) {
-			Rectangle clientRectangle = contentArea.getBounds();
-			Point clientAreaStart = presentationControl.getParent().toControl(
-					presentationControl.toDisplay(clientRectangle.x, clientRectangle.y));
-			// current isn't parented by this widget hierarchy, the coordinates must be
-			// relative to the workbench window. The workbench window parents every
-			// part.
-			current.setBounds(new Rectangle(clientAreaStart.x, 
-					clientAreaStart.y,
-					clientRectangle.width, 
-					clientRectangle.height));
-		}
-		
-	}
-	
-	public void setBounds(Rectangle bounds) {
-		presentationControl.setBounds(bounds);
-		layout();
-	}
-
-	public void dispose() {
-	}
-
-	public void setActive(int newState) {
-		activeFocus = (newState == AS_ACTIVE_FOCUS);
-		titleArea.redraw();
-	}
-
-	public void setVisible(boolean isVisible) {
-	}
-
-	public void setState(int state) {
-	}
-
-	public Control getControl() {
-		return presentationControl;
-	}
-
-	public void addPart(IPresentablePart newPart, Object cookie) {
-		newPart.setBounds(contentArea.getBounds());
-		this.current = newPart;
-		layout();
-	}
-
-	public void removePart(IPresentablePart oldPart) {
-	}
-
-	public void selectPart(IPresentablePart toSelect) {
-	}
-
-	public StackDropResult dragOver(Control currentControl, Point location) {
-		return null;
-	}
-
-	public void showSystemMenu() {
-	}
-
-	public void showPaneMenu() {
-	}
-
-	public Control[] getTabList(IPresentablePart part) {
-		if(current != null) {
-			return new Control[] {current.getControl()};
-		} else {
-			return new Control[0];
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java
deleted file mode 100644
index 9196b36..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/ClosePartContributionItem.java
+++ /dev/null
@@ -1,52 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-public class ClosePartContributionItem extends ContributionItem {
-	private SideWinderItemViewPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.close(new IPresentablePart[] {presentation.getCurrent()});
-		}
-	};
-	
-	public ClosePartContributionItem(SideWinderItemViewPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.NONE, index);
-		item.setText("Close");
-		item.addSelectionListener(selectionListener);
-		
-		IPresentablePart current = presentation.getCurrent();
-		item.setEnabled(current != null);
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java
deleted file mode 100644
index c1cced7..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/PartItem.java
+++ /dev/null
@@ -1,226 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-public class PartItem extends Canvas implements PaintListener {
-
-	private String text;
-	private Image image;
-	private boolean selected;
-	private boolean focus = false;
-	private IPresentablePart part;
-	
-	private static final int VERT_SPACING = 5;
-	private static final int HORIZ_SPACING = 3;
-	
-	int[] SIMPLE_TOP_LEFT_CORNER = new int[] {0,4, 4,0};
-	int[] SIMPLE_TOP_RIGHT_CORNER = new int[] {0,0, 0,0};
-	
-	//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};
-	private boolean showImage;
-	private boolean showText;
-	
-	public PartItem(Composite parent, IPresentablePart part) {
-		super(parent, SWT.NONE);
-		addPaintListener(this);
-		this.part = part;
-	}
-
-	public void paintControl(PaintEvent e) {
-		Rectangle titleRect = getClientArea();
-		int x = titleRect.x + VERT_SPACING;
-		int y = titleRect.y + HORIZ_SPACING;
-		GC gc = e.gc;
-		setBackground(getParent().getBackground());
-		fill(gc, titleRect.x, titleRect.y, titleRect.width - 1, titleRect.height);
-		
-		Image image = getImage();
-		if (image != null && showImage) {
-			Rectangle imageBounds = image.getBounds();
-				int imageX = x;
-				int imageHeight = imageBounds.height;
-				int imageY = (titleRect.height - imageHeight) / 2;
-				int imageWidth = imageBounds.width * imageHeight / imageBounds.height;
-				gc.drawImage(image, 
-					         imageBounds.x, imageBounds.y, imageBounds.width, imageBounds.height,
-					         imageX, imageY, imageWidth, imageHeight);
-				x += imageWidth + VERT_SPACING;		
-		}
-		
-		int textWidth = titleRect.width - 1;
-		if (textWidth > 0 && text != null && showText) {
-			Font gcFont = gc.getFont();
-			gc.setFont(getFont());
-			Point extent = gc.textExtent(text, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);	
-			int textY = titleRect.y + (titleRect.height - extent.y) / 2;
-			
-			if(selected)					
-				gc.setForeground(e.display.getSystemColor(SWT.COLOR_WHITE));
-			else 
-				gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLACK));
-			gc.setFont(JFaceResources.getDefaultFont());
-			gc.drawText(text, x, textY, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);	
-		}
-		
-	}	
-	
-	public Point computeSize(int wHint, int hHint) {
-		int width = VERT_SPACING; int height = HORIZ_SPACING;
-		GC gc = new GC(this);
-		if(image != null && showImage) {
-			Rectangle imageBounds = image.getBounds();			
-			height = imageBounds.height + HORIZ_SPACING;
-			width += imageBounds.width + VERT_SPACING;
-		}
-		
-		if(text != null && showText) {
-			Point extent = gc.textExtent(text, SWT.DRAW_TRANSPARENT | SWT.DRAW_MNEMONIC);
-			width += extent.x + VERT_SPACING;
-			height = Math.max(height, extent.y) + HORIZ_SPACING;
-		}
-		
-		if (wHint != SWT.DEFAULT) width = wHint;
-		if (hHint != SWT.DEFAULT) height = hHint;
-		gc.dispose();
-		return new Point(width, height);
-	}
-	
-	private void fill(GC gc, int x, int y, int width, int height) {
-		int[] left = SIMPLE_TOP_LEFT_CORNER;
-		int[] right = SIMPLE_TOP_RIGHT_CORNER;
-		int[] shape = new int[left.length + right.length + 4];
-		int index = 0;
-		shape[index++] = x;
-		shape[index++] = y + height + 1;
-		for (int i = 0; i < left.length / 2; i++) {
-			shape[index++] = x + left[2 * i];
-			shape[index++] = y + left[2 * i + 1];
-		}
-		for (int i = 0; i < right.length / 2; i++) {
-			shape[index++] = x + width + right[2 * i];
-			shape[index++] = y + right[2 * i + 1];
-		}
-		shape[index++] = x + width;
-		shape[index++] = y + height + 1;
-		
-		// Fill in background
-		Region clipping = new Region();
-		gc.getClipping(clipping);
-		Region region = new Region();
-		region.add(shape);
-		region.intersect(clipping);
-		gc.setClipping(region);
-		
-		gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_GRAY));
-		
-		Color fg = null;
-		if(part.isDirty())
-			fg = getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY);
-		else if(!selected)
-			fg = getDisplay().getSystemColor(SWT.COLOR_WHITE);
-		//else if(focus)
-			//fg = getDisplay().getSystemColor(SWT.COLOR_BLUE);
-		else 
-			fg = getDisplay().getSystemColor(SWT.COLOR_BLUE);
-		
-		gc.setForeground(fg);
-		
-		gc.fillGradientRectangle(x, y, x + width, y + height, true);
-		//gc.fillRectangle(x, y, x + width, y + height);
-		
-		
-		region.dispose();
-		clipping.dispose();
-		
-		gc.setClipping((Rectangle)null);
-		gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
-		gc.drawPolyline(shape);
-		
-		
-		// Fill in parent background for non-rectangular shape
-		Region r = new Region();
-		r.add(new Rectangle(x, y, width + 1, height + 1));
-		r.subtract(shape);
-		gc.setBackground(getParent().getBackground());
-		//fillRegion(gc, r);
-		r.dispose();
-	}
-	
-	static void fillRegion(GC gc, Region region) {
-		// NOTE: region passed in to this function will be modified
-		Region clipping = new Region();
-		gc.getClipping(clipping);
-		region.intersect(clipping);
-		gc.setClipping(region);
-		gc.fillRectangle(region.getBounds());
-		gc.setClipping(clipping);
-		clipping.dispose();
-	}
-	
-	public Point computeSize(int wHint, int hHint, boolean changed) {
-		return computeSize(wHint, hHint);
-	}
-	
-	public void setText(String text) {
-		this.text = text;
-		redraw();
-	}
-	
-	public String getText() {
-		return this.text;
-	}
-	
-	public void setImage(Image image) {
-		this.image = image;
-	}
-	
-	public Image getImage() {
-		return this.image;	
-	}
-	
-	public void setSelected(boolean selected) {
-		this.selected = selected;
-		redraw();
-	}
-	
-	public boolean getSelected() {
-		return this.selected;
-	}
-	
-	public boolean isFocus() {
-		return focus;
-	}
-	
-	public void setFocus(boolean focus) {
-		this.focus = focus;
-	}
-
-	public void setShowImage(boolean showImage) {
-		this.showImage = showImage;
-	}
-
-	public void setShowText(boolean showText) {
-		this.showText = showText;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java
deleted file mode 100644
index 78a02d5..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderItemViewPresentation.java
+++ /dev/null
@@ -1,650 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.examples.presentation.wrappedtabs.ProxyControl;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-
-public class SideWinderItemViewPresentation extends StackPresentation {
-
-	private static final String PART_DATA = "part";
-	
-	private static final int TITLE_HEIGHT = 22;
-	
-	private boolean activeFocus = false;
-	
-	/**
-	 * Main widget for the presentation
-	 */
-	private Composite presentationControl;
-	private Composite titleArea;
-	private Composite clientArea;
-	private Composite statusLineArea;
-	private ViewForm contentArea;
-	private ProxyControl toolbarProxy;
-	
-	/**
-	 * Currently selected part
-	 */
-	private IPresentablePart current;
-		
-	/**
-	 * close button
-	 */
-	private ToolItem close;
-	
-	/**
-	 * View menu button
-	 */
-	private ToolItem viewMenu;
-	
-	/**
-	 * Minimize button
-	 */
-	private ToolItem minView;
-	
-	
-	private int style = SWT.VERTICAL | SWT.LEFT;
-	
-	private boolean titleAreaHiden = false;
-	
-	/**
-	 * This listener responds to selection events in all tool items.
-	 */
-	private MouseListener mouseListener = new MouseAdapter() {		
-		// If we single-click on an empty space on the toolbar, move focus to the
-		// active control
-		public void mouseDown(MouseEvent e) {
-			PartItem toolItem = (PartItem) e.widget;
-			IPresentablePart item = getPartForTab(toolItem);
-			if (item != null) {
-				// Clicking on the active tab should give focus to the current
-				// part
-				if (item == current) {
-					item.setFocus();
-				}
-				getSite().selectPart(item);
-				selectPart(item);
-				Point toDisplay = toolItem.toDisplay(new Point(e.x, e.y));
-				if (e.button == 3) {
-					showSystemMenu(toDisplay);
-				} else {
-					Image image = toolItem.getImage();
-					if (image != null) {
-						if (image.getBounds().contains(e.x, e.y)) {
-							showPaneMenu(toDisplay);
-						}
-					}
-				}
-			}
-		}
-	};
-	
-	/**
-	 * Listener attached to all child parts. It responds to changes in part properties
-	 */
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-		public void propertyChanged(Object source, int property) {			
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;				
-				updatePartItem(getPartItem(part), part);
-			}
-		}	
-	};
-	
-	/**
-	 * Listener attached to all tool items. It removes listeners from the associated
-	 * part when the tool item is destroyed. This is required to prevent memory leaks.
-	 */
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof ToolItem) {
-				PartItem item = (PartItem)e.widget;
-				
-				IPresentablePart part = getPartForTab(item);
-				
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-		
-	/** 
-	 * Drag listener for regions outside the toolbar
-	 */
-	Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point loc = new Point(event.x, event.y);
-			Control ctrl = (Control)event.widget;
-			
-			getSite().dragStart(ctrl.toDisplay(loc), false);
-		}
-	};
-	
-	private Listener menuListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point globalPos = new Point(event.x, event.y);
-					showSystemMenu(globalPos);
-					return;
-		}
-	};
-
-	private boolean showText;
-
-	private boolean showImage;
-	
-	private MenuManager systemMenuManager= new MenuManager();
-
-	private Listener hideTitleListener = new Listener() {
-
-		public void handleEvent(Event event) {
-			if (!titleAreaHiden) {
-				titleAreaHiden = true;
-				layout();
-			}
-		}
-	};
-	private Listener showTitleListener = new Listener() {
-
-		public void handleEvent(Event event) {
-			if (titleAreaHiden) {
-				titleAreaHiden = false;
-				layout();
-			}
-		}
-	};
-	
-	public SideWinderItemViewPresentation(Composite parent, IStackPresentationSite stackSite, boolean showText, boolean showImage, int style) {
-		super(stackSite);
-		this.showText = showText;
-		this.showImage = showImage;
-		this.style = style;
-		
-		// Create a top-level control for the presentation.
-		presentationControl = new Composite(parent, SWT.NONE);
-		titleArea = new Composite(presentationControl, SWT.NONE);
-		
-		//statusLineArea = new Composite(titleArea, SWT.NONE);
-		//HeapStatusContributionItem item = new HeapStatusContributionItem(PlatformUI.getPreferenceStore());
-		//item.fill(statusLineArea);
-		
-		contentArea = new ViewForm(presentationControl, SWT.NONE);
-		clientArea = new Composite(contentArea, SWT.NONE);
-		clientArea.setVisible(false);
-		
-		contentArea.setContent(clientArea);
-		toolbarProxy = new ProxyControl(contentArea);
-
-		PresentationUtil.addDragListener(titleArea, dragListener);
-		titleArea.addListener(SWT.MenuDetect, menuListener);
-		//titleArea.addListener(SWT.MouseEnter, showTitleListener);
-		//titleArea.addListener(SWT.MouseExit, hideTitleListener);
-		
-		RowLayout rowLayout = new RowLayout ();
-		rowLayout.marginLeft = 0;
-		rowLayout.marginRight = 0;
-		rowLayout.marginTop = 0;
-		rowLayout.marginBottom = 0;
-		rowLayout.type = style;
-		//rowLayout.justify = true;
-		if((style & SWT.VERTICAL) != 0) {
-			rowLayout.fill = true;
-		}
-		rowLayout.spacing = 0;
-		titleArea.setLayout (rowLayout);
-		
-		// Add a dispose listener. This will call the presentationDisposed()
-		// method when the widget is destroyed.
-		presentationControl.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				presentationDisposed();
-			}
-		});
-
-		presentationControl.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				int borderWidth = getBorderWidth();
-				Rectangle clientArea = presentationControl.getClientArea();			
-				e.gc.setLineWidth(borderWidth);			
-				if(activeFocus)
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_BLUE));
-				else 
-					e.gc.setForeground(e.display.getSystemColor(SWT.COLOR_DARK_GRAY));
-				e.gc.drawRectangle(clientArea.x, clientArea.y, clientArea.width, clientArea.height);
-				Rectangle contentAreaBounds = contentArea.getBounds();
-				int ypos = contentAreaBounds.y - 1;				
-				//e.gc.drawLine(clientArea.x, ypos, clientArea.x + clientArea.width, ypos);
-			}			
-		});			
-		createSystemMenu();
-		update();
-	}
-
-	public IPresentablePart getCurrent() {
-		return current;
-	}
-	
-	protected void presentationDisposed() {
-	    // Remove any listeners that were attached to any
-		// global Eclipse resources. This is necessary in order to prevent
-		// memory leaks.
-	}
-	
-	protected int getBorderWidth() {
-		return 2;
-	}
-	
-	public void showSystemMenu(Point displayPos) {
-		Menu aMenu = systemMenuManager.createContextMenu(titleArea);
-		systemMenuManager.update(true);
-		aMenu.setLocation(displayPos.x, displayPos.y);
-		aMenu.setVisible(true);		
-	}
-	
-	private final void createSystemMenu() {
-		getSite().addSystemActions(systemMenuManager);
-		// This example presentation includes the part list at the end of the system menu
-		systemMenuManager.add(new Separator());
-		systemMenuManager.add(new ClosePartContributionItem(this));
-		systemMenuManager.add(new Separator());
-		
-		
-		Action topAction = new Action("Top", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.TOP;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.TOP) != 0);
-				update();
-			}			
-		};
-		topAction.setChecked((style & SWT.TOP) != 0);
-		systemMenuManager.add(topAction);	
-		
-		Action bottomAction = new Action("Bottom", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.BOTTOM;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.BOTTOM) != 0);
-				update();
-			}			
-		};
-		bottomAction.setChecked((style & SWT.BOTTOM) != 0);
-		systemMenuManager.add(bottomAction);	
-		
-		Action rightAction = new Action("Right", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.RIGHT;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.RIGHT) != 0);
-				update();
-			}			
-		};
-		rightAction.setChecked((style & SWT.RIGHT) != 0);
-		systemMenuManager.add(rightAction);	
-		
-		Action leftAction = new Action("Left", IAction.AS_RADIO_BUTTON) {
-			public void run() {
-				SideWinderItemViewPresentation.this.style = SWT.LEFT;
-				setChecked((SideWinderItemViewPresentation.this.style & SWT.LEFT) != 0);
-				update();
-			}			
-		};		
-		leftAction.setChecked((style & SWT.VERTICAL) != 0);	
-		systemMenuManager.add(leftAction);	
-		
-		systemMenuManager.add(new Separator());
-		Action textAction = new Action("Text", IAction.AS_CHECK_BOX) {
-			public void run() {
-				SideWinderItemViewPresentation.this.showText = isChecked();
-				setChecked(SideWinderItemViewPresentation.this.showText);
-				update();
-			}
-		};
-		textAction.setChecked(showText);
-		systemMenuManager.add(textAction);	
-		Action imageAction = new Action("Image", IAction.AS_CHECK_BOX) {
-			public void run() {
-				SideWinderItemViewPresentation.this.showImage = isChecked();
-				setChecked(isChecked());
-				update();
-			}
-		};
-		imageAction.setChecked(showImage);
-		systemMenuManager.add(imageAction);	
-	}
-	
-	protected void update() {
-		Control[] items = titleArea.getChildren();	
-		for (int idx = 0; idx < items.length; idx++) {
-			if(items[idx] instanceof PartItem) {
-			PartItem item = (PartItem)items[idx];	
-			item.setShowImage(showImage);
-			item.setShowText(showText);
-			item.setFocus(activeFocus);
-			}
-		}
-		int type = SWT.VERTICAL;
-		if ((style & SWT.TOP) != 0 || (style & SWT.BOTTOM) != 0) {
-			type = SWT.HORIZONTAL;
-		}		
-		RowLayout rowLayout = ((RowLayout)titleArea.getLayout());
-		rowLayout.type = type;
-		rowLayout.fill = type == SWT.VERTICAL;
-		
-		layout();
-		presentationControl.redraw();
-		//titleArea.redraw();
-		//titleArea.layout();
-		//contentArea.layout();
-	}
-
-	public void close(IPresentablePart[] parts) {
-		getSite().close(parts);
-	}
-	
-	public void layout() {
-		// Determine the inner bounds of the presentation
-		Rectangle presentationClientArea = presentationControl.getClientArea();
-		presentationClientArea.x += getBorderWidth();
-		presentationClientArea.width -= getBorderWidth() * 2;
-		presentationClientArea.y += getBorderWidth();
-		presentationClientArea.height -= getBorderWidth() * 2;
-		
-		if ((style & SWT.TOP) != 0 || (style & SWT.BOTTOM) != 0) {
-			Point p = titleArea.computeSize(presentationClientArea.width, SWT.DEFAULT);
-			int yy = 0;
-			int x = 0;
-			int y = 0;
-			if((style & SWT.TOP) != 0) {
-				x = presentationClientArea.x;
-				y = presentationClientArea.y;
-				yy = p.y + 1;
-			} else {
-				x = presentationClientArea.x;
-				y = presentationClientArea.height - p.y;
-				yy = presentationClientArea.y;
-			}
-			if(titleAreaHiden)
-				p.y = 3;
-			titleArea.setBounds(x, y, presentationClientArea.width, p.y);
-			contentArea.setBounds(presentationClientArea.x, yy, presentationClientArea.width, presentationClientArea.height - p.y);
-		} else {
-			Point p = titleArea.computeSize(SWT.DEFAULT, presentationClientArea.height);
-			int xx = 0;
-			int x = 0;
-			int y = 0;
-			if((style & SWT.RIGHT) != 0) {
-				x = presentationClientArea.width - p.x;
-				y = presentationClientArea.y;
-				xx = presentationClientArea.x;
-			} else {
-				x = presentationClientArea.x;
-				y = presentationClientArea.y;
-				xx = p.x +1;
-			}	
-			if(titleAreaHiden)
-				p.x = 3;
-			titleArea.setBounds(x, y, p.x, presentationClientArea.height);
-			contentArea.setBounds(xx, presentationClientArea.y, presentationClientArea.width - p.x, presentationClientArea.height);
-		}
-				
-		//Rectangle r = titleArea.getBounds();
-		//Point p = titleArea.computeSize(SWT.DEFAULT, r.height);
-		//statusLineArea.setBounds(r);
-		
-		titleArea.setBackground(titleArea.getDisplay().getSystemColor(SWT.COLOR_GRAY));
-				
-		// Position the view's widgets
-		if (current != null) {
-			Control toolbar = current.getToolBar();
-			if(toolbar != null) {
-				toolbarProxy.setTargetControl(current.getToolBar());
-				contentArea.setTopCenter(toolbarProxy.getControl());
-			} else { 
-				contentArea.setTopCenter(null);
-			}
-			contentArea.layout();
-			
-			Rectangle clientRectangle = clientArea.getBounds();
-			Point clientAreaStart = presentationControl.getParent().toControl(
-					contentArea.toDisplay(clientRectangle.x, clientRectangle.y));
-			// current isn't parented by this widget hierarchy, the coordinates must be
-			// relative to the workbench window. The workbench window parents every
-			// part.
-			current.setBounds(new Rectangle(clientAreaStart.x, 
-					clientAreaStart.y,
-					clientRectangle.width, 
-					clientRectangle.height));
-		}		
-	}
-	
-	public void setBounds(Rectangle bounds) {
-		presentationControl.setBounds(bounds);
-		layout();
-	}
-
-	public void dispose() {
-	}
-
-	public void setActive(int newState) {
-		activeFocus = (newState == AS_ACTIVE_FOCUS);
-		Control[] items = titleArea.getChildren();	
-		for (int idx = 0; idx < items.length; idx++) {
-			if(items[idx] instanceof PartItem) {
-			PartItem item = (PartItem)items[idx];	
-			item.setFocus(activeFocus);
-			}
-		}
-		presentationControl.redraw();
-	}
-
-	public void setVisible(boolean isVisible) {
-		presentationControl.setVisible(isVisible);
-		
-		// Make the currently visible part visible
-		if (current != null) {
-			current.setVisible(isVisible);			
-		}
-
-		if (isVisible) {
-			// Restore the bounds of the currently visible part. 
-			// IPartPresentations can be used by multiple StackPresentations,
-			// although only one such presentation is ever visible at a time.
-			// It is possible that some other presentation has changed the
-			// bounds of the part since it was last visible, so we need to
-			// update the part's bounds when the presentation becomes visible.
-			layout();
-		}
-	}
-
-	public void setState(int state) {
-	}
-
-	public Control getControl() {
-		return presentationControl;
-	}
-
-	public void addPart(IPresentablePart newPart, Object cookie) {
-		// Ignore the cookie for now, since we don't support drag-and-drop yet.
-		PartItem item = new PartItem(titleArea, newPart);
-		
-		// Attach the newPart pointer to the ToolItem. This is used for getPartForTab
-		// to determine which part is associated with the tool item
-		item.setData(PART_DATA, newPart);
-		
-		// Attach a property change listener to the part. This will update the ToolItem
-		// to reflect changes in the part.
-		newPart.addPropertyListener(childPropertyChangeListener);
-		
-		// Attach a dispose listener to the item. This removes the above property
-		// change listener from the part when the item is destroyed. This prevents
-		// memory leaks.
-		item.addDisposeListener(tabDisposeListener);
-		
-		// Listen to selection events in the new tool item
-		item.addMouseListener(mouseListener);
-		
-		PresentationUtil.addDragListener(item, new Listener() {
-			public void handleEvent(Event event) {
-				Point loc = new Point(event.x, event.y);
-				PartItem item = (PartItem)event.widget;
-				if (item != null) {
-				   // Move the current part
-				   IPresentablePart draggedItem = getPartForTab(item);
-				   draggedItem.setFocus();
-				getSite().dragStart(draggedItem, item.toDisplay(loc), false);
-				}
-			}
-		});
-
-		// Initialize the tab for this part
-		updatePartItem(item, newPart);
-			
-		newPart.setBounds(clientArea.getBounds());
-		titleArea.layout();
-		titleArea.redraw();
-		update();		
-	}
-	
-	protected void updatePartItem(PartItem item, IPresentablePart part) {
-		String tabName = part.getTitle();
-		if(item == null) return;
-		if (!tabName.equals(item.getText())) {
-			item.setText(tabName);
-		}
-		
-		if (!(part.getTitleToolTip().equals(item.getToolTipText()))) {
-			item.setToolTipText(part.getTitleToolTip());
-		}
-
-		item.setImage(part.getTitleImage());
-		item.setShowImage(showImage);
-		item.setShowText(showText);
-		titleArea.layout(true);
-		titleArea.redraw();
-		item.redraw();
-	}
-	
-	protected final PartItem getPartItem(IPresentablePart part) {
-		if (!titleArea.isDisposed()) {
-			Control[] items = titleArea.getChildren();
-			for (int idx = 0; idx < items.length; idx++) {
-				Control item = items[idx];
-				if (!item.isDisposed() && getPartForTab(item) == part) {
-					return (PartItem) item;
-				}
-			}
-		}
-		return null;
-	}
-	
-	protected final IPresentablePart getPartForTab(Control item) {
-		return (IPresentablePart)item.getData(PART_DATA);
-	}
-
-	public void removePart(IPresentablePart oldPart) {
-		PartItem item = getPartItem(oldPart);
-		if(item != null) {
-			item.dispose();
-			titleArea.layout();
-			titleArea.redraw();
-		}
-	}
-
-	public void selectPart(IPresentablePart toSelect) {
-		if (toSelect == current) {
-			return;
-		}
-		
-		if(current !=null) {
-			current.setVisible(false);
-		}
-		
-		// Select the new part
-		current = toSelect;
-		
-		// Ordering is important here. We need to make the part
-		// visible before updating its bounds, or the call to setBounds
-		// may be ignored.
-		
-		if (current != null) {
-			// Make the newly selected part visible
-			current.setVisible(true);
-			Control[] items = titleArea.getChildren();
-			for (int idx = 0; idx < items.length; idx++) {
-				if(items[idx] instanceof PartItem) {
-				PartItem item = (PartItem)items[idx];
-				item.setSelected(getPartForTab(item) == current);
-				}
-			}
-		}
-		// Update the bounds of the newly selected part
-		layout();
-	}
-
-	public StackDropResult dragOver(Control currentControl, Point location) {
-		return null;
-	}
-
-	public void showSystemMenu() {
-	}
-
-	public void showPaneMenu() {
-		
-	}
-	
-	public void showPaneMenu(Point location) {
-		if (current == null) {
-			return;
-		}
-		
-		IPartMenu menu = current.getMenu();
-		
-		if (menu == null) {
-			return;
-		}
-
-		menu.showMenu(location);
-	}
-
-	public Control[] getTabList(IPresentablePart part) {
-		if(current != null) {
-			return new Control[] {current.getControl()};
-		} else {
-			return new Control[0];
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java
deleted file mode 100644
index c4ad6fd..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/sidewinder/SideWinderPresentationFactory.java
+++ /dev/null
@@ -1,45 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.sidewinder;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.*;
-
-/**
- * @since 3.0
- */
-public class SideWinderPresentationFactory extends AbstractPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createEditorPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new SideWinderItemViewPresentation(parent, site, true, true, SWT.HORIZONTAL | SWT.TOP);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new SideWinderItemViewPresentation(parent, site,  false, true, SWT.HORIZONTAL | SWT.TOP);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createStandaloneViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite, boolean)
-	 */
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new SideWinderItemViewPresentation(parent, site, false, true, SWT.HORIZONTAL | SWT.TOP);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java
deleted file mode 100644
index 7a9310b..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ChangeStackStateContributionItem.java
+++ /dev/null
@@ -1,63 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * Contributions for supporting maximizing, minimizing, and restoring the state of
- * a stack presentation.
- * 
- * @since 3.0
- */
-public class ChangeStackStateContributionItem extends ContributionItem {
-
-	private IStackPresentationSite site;
-	
-	public ChangeStackStateContributionItem(IStackPresentationSite site) {
-		this.site = site;
-	}
-
-    public void dispose() {
-    	super.dispose();
-    }
-    
-    public void fill(Menu menu, int index) {
-		if(site.supportsState(IStackPresentationSite.STATE_MAXIMIZED) && site.getState() != IStackPresentationSite.STATE_MAXIMIZED) {
-			MenuItem item1 = new MenuItem(menu, SWT.PUSH, index);
-			item1.setText("&Maximize");
-			item1.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					site.setState(IStackPresentationSite.STATE_MAXIMIZED);
-				}
-			});
-		}
-		if(site.getState() != IStackPresentationSite.STATE_RESTORED)  {
-			MenuItem item = new MenuItem(menu, SWT.PUSH, index);
-			item.setText("&Restore");
-			item.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					site.setState(IStackPresentationSite.STATE_RESTORED);
-				}
-			});
-		}		
-    }
-    
-	public boolean isDynamic() {
-		return true;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java
deleted file mode 100644
index bdbf993..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseAllContributionItem.java
+++ /dev/null
@@ -1,55 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-
-/**
- * @since 3.0
- */
-public class CloseAllContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.close(presentation.getParts());
-		}
-	};
-	
-	public CloseAllContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-    	if (presentation.getParts().length > 1) {
-			MenuItem item = new MenuItem(menu, SWT.NONE, index);
-			item.setText("Close all");
-			item.addSelectionListener(selectionListener);
-    	}
-    }
-    
-    public boolean isDynamic() {
-    	// Returning true here ensures that the fill(...) method will be called whenever
-    	// the context menu opens
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java
deleted file mode 100644
index 00fa19a..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseContributionItem.java
+++ /dev/null
@@ -1,55 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-/**
- * @since 3.0
- */
-public class CloseContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.close(new IPresentablePart[] {presentation.getCurrent()});
-		}
-	};
-	
-	public CloseContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.NONE, index);
-		item.setText("Close");
-		item.addSelectionListener(selectionListener);
-		
-		IPresentablePart current = presentation.getCurrent();
-		item.setEnabled(current != null);
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java
deleted file mode 100644
index 3be37ea..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/CloseOthersContributionItem.java
+++ /dev/null
@@ -1,66 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-/**
- * @since 3.0
- */
-public class CloseOthersContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			IPresentablePart current = presentation.getCurrent();
-			List parts = Arrays.asList(presentation.getParts());
-			List otherParts = new LinkedList();
-			otherParts.addAll(parts);
-			otherParts.remove(current);
-			presentation.close((IPresentablePart[]) otherParts.toArray(new IPresentablePart[otherParts.size()]));
-		}
-	};
-	
-	public CloseOthersContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-    	if (presentation.getParts().length > 1) {
-			MenuItem item = new MenuItem(menu, SWT.NONE, index);
-			item.setText("Close others");
-			item.addSelectionListener(selectionListener);
-			
-			IPresentablePart current = presentation.getCurrent();
-			item.setEnabled(current != null);
-    	}
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java
deleted file mode 100644
index 52ae5c5..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/PartListContributionItem.java
+++ /dev/null
@@ -1,91 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-
-/**
- * @since 3.0
- */
-public class PartListContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation;
-	private IStackPresentationSite site;
-	
-	private static final String DATA_ITEM = "org.eclipse.ui.examples.presentation.wrappedtabs.PartListContributionItem.DATA_ITEM"; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			MenuItem item = (MenuItem)e.widget;
-			
-			IPresentablePart part = (IPresentablePart)item.getData(DATA_ITEM);
-			
-			if (part != null) {
-				site.selectPart(part);
-			}
-		}
-	};
-	
-	public PartListContributionItem(WrappedTabsPartPresentation presentation, IStackPresentationSite site) {
-		this.presentation = presentation;
-		this.site = site;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        site = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-    	IPresentablePart[] parts = presentation.getParts();
-    	
-    	// Don't include a part list if there's only one part
-    	if (parts.length <= 1) {
-    		return;
-    	}
-    	
-    	new MenuItem(menu, SWT.SEPARATOR, index++);
-    	
-    	Arrays.sort(parts, new Comparator() {
-			public int compare(Object arg0, Object arg1) {
-				IPresentablePart part0 = (IPresentablePart)arg0;
-				IPresentablePart part1 = (IPresentablePart)arg1;
-				
-				return part0.getName().compareToIgnoreCase(part1.getName());
-			}
-    	});
-    	
-    	for (int i = 0; i < parts.length; i++) {
-			IPresentablePart part = parts[i];
-			
-			MenuItem item = new MenuItem(menu, SWT.NONE, index++);
-			item.setText(part.getName());
-			item.setImage(part.getTitleImage());
-			item.addSelectionListener(selectionListener);
-			item.setData(DATA_ITEM, part);
-		}
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java
deleted file mode 100644
index b9fbf3f..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ProxyControl.java
+++ /dev/null
@@ -1,261 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-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.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.dnd.SwtUtil;
-
-/**
- * A ProxyControl is an invisible control whose size and position are linked
- * with some target control. That is, when the dummy control is asked for its
- * preferred size it returns the preferred size of the target. Changing the
- * bounds of the dummy control also changes the bounds of the target. This allows 
- * any Composite to lay out a control that isn't one of its children.
- * 
- * <p>
- * For example, imagine you have a ViewForm and a ToolBar that share the same parent
- * and you want the ToolBar to be located in the upper-right corner of the ViewForm.
- * If the ToolBar were a child of the ViewForm, this could be done easily by calling
- * viewForm.setTopRight(toolBar). However, this is impossible since ViewForm.setTopRight
- * will only accept a child control. Instead, we create a ProxyControl as a child
- * of the viewForm, and set the toolbar as its target. The ViewForm will treat
- * the ProxyControl just like any other child, but it will actually be arranging the
- * ToolBar. 
- * </p>
- * <p>For example:
- * </p>
- * <code>
- *      // Create a ViewForm and a ToolBar that are siblings
- * 		ViewForm viewForm = new ViewForm(parent, SWT.NONE);
- * 		ToolBar toolBar = new ToolBar(parent, SWT.NONE);
- * 
- *      // Allow the ViewForm to control the position of the ToolBar by creating
- *      // a ProxyControl in the ViewForm that targets the ToolBar.
- * 		ProxyControl toolBarProxy = new ProxyControl(viewForm);
- * 		toolBarProxy.setTarget(toolBar);
- * 		viewForm.setTopRight(toolBarProxy.getControl());
- * </code>
- * 
- * <p>
- * This is intended to simplify management of view toolbars in the presentation API.
- * Presentation objects have no control over where the view toolbars are created in
- * the widget hierarchy, but they may wish to control the position of the view toolbars
- * using traditional SWT layouts and composites. 
- * </p>
- */
-public class ProxyControl {
-    
-    /**
-     * Invisible dummy control 
-     */
-	private Composite control;
-	
-	/**
-	 * Target control (possibly null)
-	 */
-	private Control target;
-	
-	/**
-	 * Most specific common ancestor between the target and the proxy controls
-	 */
-	private Control commonAncestor;
-	
-	/**
-	 * Visibility state of the proxy control the last time it had a non-null target.
-	 * Note: when the target is set to null, we force the proxy to become invisible
-	 * and use this variable to remember the initial state when we get a new non-null
-	 * target.
-	 */
-	private boolean visible = true;
-	
-	/**
-	 * Dispose listener. Breaks the link between the target and the proxy if either
-	 * control is disposed.
-	 */
-	private DisposeListener disposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget == target || e.widget == control) {
-				setTargetControl(null);
-			}
-		}
-	};
-	
-	private Listener visibilityListener = new Listener() {
-
-        public void handleEvent(Event event) {
-            if (target != null) {
-                visible = control.getVisible();
-                target.setVisible(visible);
-            }
-        }
-	    
-	};
-	
-	/**
-	 * Movement listener. Updates the bounds of the target to match the 
-	 * bounds of the dummy control.
-	 */
-	private ControlListener controlListener = new ControlListener() {
-
-		public void controlMoved(ControlEvent e) {
-			ProxyControl.this.layout();
-		}
-
-		public void controlResized(ControlEvent e) {
-		    //if (e.widget == control) {
-		     //   ProxyControl.this.layout();
-		    //}
-		}
-		
-	};
-	
-	/**
-	 * Creates a new ProxyControl as a child of the given parent. This is an invisible dummy
-	 * control. If given a target, the ProxyControl will update the bounds of the target to
-	 * match the bounds of the dummy control.
-	 * 
-	 * @param parent parent composite
-	 */
-	public ProxyControl(Composite parent) {
-	    // Create the invisible dummy composite
-		control = new Composite(parent, SWT.NO_BACKGROUND);
-		control.setVisible(false);
-		
-		// Attach a layout to the dummy composite. This is used to make the preferred
-		// size of the dummy match the preferred size of the target.
-		control.setLayout(new Layout() {
-			protected void layout (Composite composite, boolean flushCache) {
-			    ProxyControl.this.layout();
-			    // does nothing. The bounds of the target are updated by the controlListener
-			}
-			
-			protected Point computeSize (Composite composite, int wHint, int hHint, boolean flushCache) {
-				if (target == null) {
-				    // Note: If we returned (0,0), SWT would ignore the result and use a default value.
-					return new Point(1,1);
-				}
-				
-				return target.computeSize(wHint, hHint);
-			}
-		});
-		
-		// Attach listeners to the dummy
-		control.addDisposeListener(disposeListener);
-		control.addListener(SWT.Show, visibilityListener);
-		control.addListener(SWT.Hide, visibilityListener);
-	}
-	
-	/**
-	 * Sets the control whose position will be managed by this proxy
-	 * 
-	 * @param target the control, or null if none
-	 */
-	public void setTargetControl(Control target) {
-		if (this.target != target) {
-
-		    if (this.target != null) {
-		        for (Control next = control; next != commonAncestor && next != null; next = next.getParent()) {
-		            next.removeControlListener(controlListener);
-		        }
-		        commonAncestor = null;
-		        
-			    // If we already had a target, detach the dispose listener 
-			    // (prevents memory leaks due to listeners)
-				if (!this.target.isDisposed()) {
-					this.target.removeDisposeListener(disposeListener);
-				}				
-		    }
-			
-			if (this.target == null && target != null) {
-			    // If we had previously forced the dummy control invisible, restore its visibility
-			    control.setVisible(visible);
-			}
-			
-			this.target = target;
-			
-			if (target != null) {
-			    commonAncestor = SwtUtil.findCommonAncestor(this.target, control);
-		        for (Control next = control; next != null && next != commonAncestor; next = next.getParent()) {
-		            next.addControlListener(controlListener);
-		        }
-			    
-			    // Make the new target's visiblity match the visibility of the dummy control
-			    target.setVisible(control.getVisible());
-				// Add a dispose listener. Ensures that the target is cleared
-				// if it is ever disposed.
-				target.addDisposeListener(disposeListener);
-			} else {
-			    control.setVisible(false);
-			}
-		}
-	}
-	
-	/**
-	 * Returns the target control (the control whose size is being managed)
-	 * 
-	 * @return the target control (or null)
-	 */
-	public Control getTargetControl() {
-		if (target == null) {
-			return null;
-		}
-		
-		return target;
-	}
-	
-	/**
-	 * Returns the proxy control
-	 * 
-	 * @return the proxy control (not null)
-	 */
-	public Control getControl() {
-		return control;
-	}
-	
-	public Control getTarget() {
-	    return target;
-	}
-	
-	/**
-	 * Moves the target control on top of the dummy control.
-	 */
-	public void layout() {
-		if (getTargetControl() == null) {
-			return;
-		}
-		
-		// Compute the unclipped bounds of the target in display coordinates
-		Rectangle displayBounds = Geometry.toDisplay(control.getParent(), control.getBounds());
-		
-		// Clip the bounds of the target so that it doesn't go outside the dummy control's parent
-		Rectangle clippingRegion = DragUtil.getDisplayBounds(control.getParent());
-		displayBounds = displayBounds.intersection(clippingRegion);
-		
-		// Compute the bounds of the target, in the local coordinate system of its parent
-		Rectangle targetBounds = Geometry.toControl(getTargetControl().getParent(), displayBounds);
-		
-		// Move the target
-		getTargetControl().setBounds(targetBounds);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java
deleted file mode 100644
index 299de04..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/ShowToolbarContributionItem.java
+++ /dev/null
@@ -1,58 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-/**
- * @since 3.0
- */
-public class ShowToolbarContributionItem extends ContributionItem {
-	private WrappedTabsPartPresentation presentation;
-	
-	private static final String DATA_ITEM = "org.eclipse.ui.examples.presentation.wrappedtabs.PartListContributionItem.DATA_ITEM"; 
-	
-	private SelectionAdapter selectionListener = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			presentation.showToolbar(((MenuItem)e.widget).getSelection());
-		}
-	};
-	
-	public ShowToolbarContributionItem(WrappedTabsPartPresentation presentation) {
-		this.presentation = presentation;
-	}
-
-    public void dispose() {
-    	super.dispose();
-        presentation = null;
-        selectionListener = null;
-    }
-    
-    public void fill(Menu menu, int index) {
-		MenuItem item = new MenuItem(menu, SWT.CHECK, index);
-		item.setText("S&how toolbar");
-		item.addSelectionListener(selectionListener);
-		item.setSelection(presentation.isShowingToolbar());
-		
-		IPresentablePart current = presentation.getCurrent();
-		item.setEnabled(current != null && current.getToolBar() != null);
-    }
-    
-    public boolean isDynamic() {
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java
deleted file mode 100644
index 0790f20..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPartPresentation.java
+++ /dev/null
@@ -1,1116 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-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.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.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.examples.presentation.PresentationImages;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IPresentationSerializer;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.PresentationUtil;
-import org.eclipse.ui.presentations.StackDropResult;
-import org.eclipse.ui.presentations.StackPresentation;
-import org.eclipse.ui.themes.ITheme;
-
-/**
- * @since 3.0
- */
-public class WrappedTabsPartPresentation extends StackPresentation {
-
-	private static class DropLocation {
-		int insertionPosition = 0;
-		IPresentablePart part;
-		boolean before;
-	}
-	
-	private static final String PART_DATA = "part";
-	
-	private boolean activeFocus = false;
-	
-	/**
-	 * Main widget for the presentation
-	 */
-	private Composite presentationControl;
-	
-	/**
-	 * Currently selected part
-	 */
-	private IPresentablePart current;
-	
-	/**
-	 * ToolBar that will be used to select the active presentable part 
-	 */
-	private ToolBar toolBar;
-	
-	/**
-	 * ToolBar that will contain close, minimize, etc.
-	 */
-	private ToolBar upperRight;
-	
-	/**
-	 * close button
-	 */
-	private ToolItem close;
-	
-	/**
-	 * View menu button
-	 */
-	private ToolItem viewMenu;
-	
-	/**
-	 * Minimize button
-	 */
-	private ToolItem minView;
-
-	/**
-	 * Show/hide toolbar button
-	 */
-	private ToolItem showToolbar;
-	
-	private ToolBar titleIconToolbar;
-	
-	/**
-	 * Title icon
-	 */
-	private ToolItem titleIcon;
-	
-	private MenuManager systemMenuManager = new MenuManager();
-	private ViewForm contentArea;
-	
-	private Label contentDescription;
-	private Composite contentDescriptionWrapper;
-	
-	private Composite clientArea;
-	
-	private ProxyControl toolbarProxy;
-	
-	/**
-	 * Listener attached to all child parts. It responds to changes in part properties
-	 */
-	private IPropertyListener childPropertyChangeListener = new IPropertyListener() {
-		public void propertyChanged(Object source, int property) {
-			
-			if (source instanceof IPresentablePart) {
-				IPresentablePart part = (IPresentablePart) source;
-				
-				childPropertyChanged(part, property);
-			}
-		}	
-	};
-
-	/** 
-	 * Drag listener for regions outside the toolbar
-	 */
-	Listener dragListener = new Listener() {
-		public void handleEvent(Event event) {
-			Point loc = new Point(event.x, event.y);
-			Control ctrl = (Control)event.widget;
-			
-			getSite().dragStart(ctrl.toDisplay(loc), false);
-		}
-	};
-	
-	/**
-	 * Listener attached to all tool items. It removes listeners from the associated
-	 * part when the tool item is destroyed. This is required to prevent memory leaks.
-	 */
-	private DisposeListener tabDisposeListener = new DisposeListener() {
-		public void widgetDisposed(DisposeEvent e) {
-			if (e.widget instanceof ToolItem) {
-				ToolItem item = (ToolItem)e.widget;
-				
-				IPresentablePart part = getPartForTab(item);
-				
-				part.removePropertyListener(childPropertyChangeListener);
-			}
-		}
-	};
-	
-	/**
-	 * This listener responds to selection events in all tool items.
-	 */
-	SelectionAdapter tabItemSelectionAdapter = new SelectionAdapter() {
-		public void widgetSelected(SelectionEvent e) {
-			ToolItem toolItem = (ToolItem) e.widget;
-			IPresentablePart item = getPartForTab(toolItem);
-			if (item != null) {
-				// Clicking on the active tab should give focus to the current part
-				if (item == current) {
-					item.setFocus();
-				}
-				getSite().selectPart(item);
-			}
-			toolItem.setSelection(true);
-		}
-	};
-	
-	/**
-	 * Listener to changes made to the current theme. The presentation will
-	 * redraw when the theme changes.
-	 */
-	private IPropertyChangeListener themeChangeListener = new IPropertyChangeListener() {	
-		public void propertyChange(PropertyChangeEvent event) {
-			if(! presentationControl.isDisposed()) {
-				toolBar.setFont(PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getFontRegistry().get(WrappedTabsThemeConstants.TAB_FONT));
-				layout();
-				presentationControl.redraw();
-			}
-		}
-	};
-	
-	private Listener menuListener = new Listener() {
-		/* (non-Javadoc)
-		 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-		 */
-		public void handleEvent(Event event) {
-			Point globalPos = new Point(event.x, event.y);
-			
-			if (event.widget == toolBar) {
-				Point localPos = toolBar.toControl(globalPos);
-				ToolItem item = toolBar.getItem(localPos);
-					
-				if (item != null) {
-					IPresentablePart part = getPartForTab(item);
-					getSite().selectPart(part);
-					showSystemMenu(globalPos);
-					return;
-				}
-			}
-            
-            IPresentablePart part = getCurrent();
-            if (part != null) {
-                showSystemMenu(globalPos);
-            }
-		}
-	};
-	
-	private MouseListener mouseListener = new MouseAdapter() {
-		
-		// If we single-click on an empty space on the toolbar, move focus to the
-		// active control
-		public void mouseDown(MouseEvent e) {
-			Point p = new Point(e.x, e.y);
-			
-			// Ignore double-clicks if we're currently over a toolbar item
-			if (isOverToolItem(e)) {
-				return;
-			}
-			
-			if (current != null) {
-				current.setFocus();
-			}
-		}
-		
-		public boolean isOverToolItem(MouseEvent e) {
-			Point p = new Point(e.x, e.y);
-			Control control = (Control)e.widget;
-			
-			if (control instanceof ToolBar) {
-				ToolItem item = ((ToolBar)control).getItem(p);
-				
-				if (item != null) {
-					return true;
-				}
-			} 
-			
-			return false;
-			
-		}
-		
-		// If we double-click on the toolbar, maximize the presentation
-		public void mouseDoubleClick(MouseEvent e) {
-			
-			// Ignore double-clicks if we're currently over a toolbar item
-			if (isOverToolItem(e) && e.widget == upperRight) {
-				return;
-			}
-			
-			if (getSite().getState() == IStackPresentationSite.STATE_MAXIMIZED) {
-				getSite().setState(IStackPresentationSite.STATE_RESTORED);
-			} else {
-				getSite().setState(IStackPresentationSite.STATE_MAXIMIZED);
-			}
-		}
-	};
-	
-	private boolean showIconOnTabs;
-	private static final int SPACING_WIDTH = 2;
-
-	private static final String SHOWING_TOOLBAR = "showing_toolbar";
-
-	private static final String TAG_PART = "part";
-	private static final String TAG_ID = "id";
-	private static final String TAG_TOOLBAR = "showing_toolbar";
-	
-	/**
-	 * Creates a new bare-bones part presentation, given the parent composite and 
-	 * an IStackPresentationSite interface that will be used to communicate with 
-	 * the workbench.
-	 * 
-	 * @param stackSite interface to the workbench
-	 */
-	public WrappedTabsPartPresentation(Composite parent, 
-			IStackPresentationSite stackSite, boolean showIconOnTabs) {
-		super(stackSite);		
-		
-		this.showIconOnTabs = showIconOnTabs;
-		
-		// Create a top-level control for the presentation.
-		presentationControl = new Composite(parent, SWT.NONE);
-		
-		// Add a dispose listener. This will call the presentationDisposed()
-		// method when the widget is destroyed.
-		presentationControl.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				presentationDisposed();
-			}
-		});
-		
-		upperRight = new ToolBar(presentationControl, SWT.RIGHT | SWT.FLAT);
-		//initPresentationWidget(upperRight);
-		
-		titleIconToolbar = new ToolBar(presentationControl, SWT.RIGHT | SWT.FLAT);
-		titleIcon = new ToolItem(titleIconToolbar, SWT.PUSH);
-        
-        titleIconToolbar.addListener(SWT.MouseDown, new Listener() {
-            public void handleEvent(Event event) {
-                showPaneMenu();
-            }
-        });
-		titleIconToolbar.addListener(SWT.MenuDetect, menuListener);
-		
-		titleIconToolbar.setVisible(!showIconOnTabs);
-		
-		toolBar = new ToolBar(presentationControl, SWT.WRAP | SWT.RIGHT | SWT.FLAT);
-		toolBar.addListener(SWT.MenuDetect, menuListener);
-		toolBar.addMouseListener(mouseListener);
-		toolBar.setFont(PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getFontRegistry().get(WrappedTabsThemeConstants.TAB_FONT));
-		
-		// Add drag listener to the toolbar
-		PresentationUtil.addDragListener(toolBar, new Listener() {
-			public void handleEvent(Event event) {
-				Point loc = new Point(event.x, event.y);
-				ToolItem item = toolBar.getItem(loc);
-				
-				if (item != null) {
-					// Move the current part
-					IPresentablePart draggedItem = getPartForTab(item);
-					draggedItem.setFocus();
-					getSite().dragStart(draggedItem, toolBar.toDisplay(loc), false);
-				} else {
-					// Move the stack
-					getSite().dragStart(toolBar.toDisplay(loc), false);
-				}
-			}
-			
-		});
-		
-		presentationControl.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent e) {
-				Rectangle clientArea = presentationControl.getClientArea();			
-				e.gc.setLineWidth(getBorderWidth());
-				
-				e.gc.setForeground(getBorderColor());
-				e.gc.drawRectangle(clientArea.x, clientArea.y, clientArea.width-1, clientArea.height-1);
-				Rectangle contentAreaBounds = contentArea.getBounds();
-				int ypos = contentAreaBounds.y - 1;
-				e.gc.drawLine(clientArea.x, ypos, clientArea.x + clientArea.width - 1, ypos);
-			}
-			
-		});
-		initPresentationWidget(presentationControl);
-		
-		contentArea = new ViewForm(presentationControl, SWT.FLAT);
-		initPresentationWidget(contentArea);
-		contentDescriptionWrapper = new Composite(contentArea, SWT.NONE);
-		
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 4;
-		layout.marginHeight = 2;
-		contentDescriptionWrapper.setLayout(layout);
-		
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
-		
-		contentDescription = new Label(contentDescriptionWrapper, SWT.NONE);
-		initPresentationWidget(contentDescription);
-		contentDescription.setLayoutData(data);
-
-		clientArea = new Composite(contentArea, SWT.NONE);
-		clientArea.setVisible(false);
-		
-		contentArea.setContent(clientArea);
-		toolbarProxy = new ProxyControl(contentArea);
-		
-		createButtonBar();
-		
-		createSystemMenu();
-		
-		PlatformUI.getWorkbench().getThemeManager().addPropertyChangeListener(themeChangeListener);
-	}
-	
-	private void initPresentationWidget(Control toInitialize) {
-		PresentationUtil.addDragListener(toInitialize, dragListener);
-		toInitialize.addListener(SWT.MenuDetect, menuListener);
-		toInitialize.addMouseListener(mouseListener);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.StackPresentation#restoreState(org.eclipse.ui.presentations.IPresentationSerializer, org.eclipse.ui.IMemento)
-	 */
-	public void restoreState(IPresentationSerializer serializer, IMemento savedState) {
-		IMemento[] parts = savedState.getChildren(TAG_PART);
-		
-		for (int idx = 0; idx < parts.length; idx++) {
-			String id = parts[idx].getString(TAG_ID);
-			
-			if (id != null) {
-				IPresentablePart part = serializer.getPart(id);
-				
-				if (part != null) {
-					addPart(part, null);
-					
-					Integer hasToolbar = parts[idx].getInteger(TAG_TOOLBAR);
-					showToolbar(part, hasToolbar != null && hasToolbar.intValue() != 0);
-				}
-			}
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.StackPresentation#saveState(org.eclipse.ui.presentations.IPresentationSerializer, org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IPresentationSerializer context, IMemento memento) {
-		super.saveState(context, memento);
-		
-		IPresentablePart[] parts = getParts();
-		
-		for (int i = 0; i < parts.length; i++) {
-			IPresentablePart part = parts[i];
-
-			IMemento childMem = memento.createChild(TAG_PART);
-			childMem.putString(TAG_ID, context.getId(part));
-			childMem.putInteger(TAG_TOOLBAR, isShowingToolbar(part) ? 1 : 0);
-		}
-	}
-	
-	public IPresentablePart[] getParts() {
-		ToolItem[] items = toolBar.getItems();
-		IPresentablePart[] result = new IPresentablePart[items.length];
-		
-		for (int idx = 0; idx < items.length; idx++) {
-			ToolItem item = items[idx];
-			
-			IPresentablePart next = getPartForTab(item);
-			
-			result[idx] = next;
-		}
-		
-		return result;
-	}
-	
-	private final void createSystemMenu() {
-		getSite().addSystemActions(systemMenuManager);
-		systemMenuManager.add(new ChangeStackStateContributionItem(getSite()));
-		systemMenuManager.add(new ShowToolbarContributionItem(this));
-		// This example presentation includes the part list at the end of the system menu
-		systemMenuManager.add(new Separator());
-		systemMenuManager.add(new CloseContributionItem(this));
-		systemMenuManager.add(new CloseOthersContributionItem(this));
-		systemMenuManager.add(new CloseAllContributionItem(this));
-		systemMenuManager.add(new PartListContributionItem(this, getSite()));
-	}
-	
-	private void createButtonBar() {
-		viewMenu = new ToolItem(upperRight, SWT.PUSH);
-        upperRight.addListener(SWT.MouseDown, new Listener() {
-            public void handleEvent(Event event) {
-                Point p = new Point(event.x, event.y);
-                Rectangle r = viewMenu.getBounds();
-                
-                if (r.contains(p)) {
-                    showSystemMenu();
-                }
-            }
-        });
-		viewMenu.setImage(PresentationImages.getImage(PresentationImages.VIEW_MENU));
-	
-		showToolbar = new ToolItem(upperRight, SWT.PUSH);        
-        showToolbar.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                showToolbar(!isShowingToolbar());
-            }
-        });
-        	
-		if (getSite().supportsState(IStackPresentationSite.STATE_MINIMIZED)) {
-			minView = new ToolItem(upperRight, SWT.PUSH);
-			minView.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (current != null) {
-						if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-							getSite().setState(IStackPresentationSite.STATE_RESTORED);
-						} else {
-							getSite().setState(IStackPresentationSite.STATE_MINIMIZED);
-						}	
-					}
-				}				
-			});
-		}
-		
-		close = new ToolItem(upperRight, SWT.PUSH);
-		close.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (current != null) {
-					getSite().close(new IPresentablePart[] {current});
-				}
-			}
-			
-		});
-		close.setImage(PresentationImages.getImage(PresentationImages.CLOSE_VIEW));
-		
-		updateToolbarImages();
-	}
-	
-	private void updateToolbarImages() {
-		if (isShowingToolbar()) {
-			showToolbar.setImage(PresentationImages.getImage(PresentationImages.HIDE_TOOLBAR));
-		} else {
-			showToolbar.setImage(PresentationImages.getImage(PresentationImages.SHOW_TOOLBAR));
-		}
-
-		if (minView != null) {
-			String minImage = (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) ?
-					PresentationImages.RESTORE_VIEW : PresentationImages.MIN_VIEW;
-			minView.setImage(PresentationImages.getImage(minImage));
-		}
-		
-		upperRight.pack(true);
-		upperRight.redraw();
-	}
-	
-	public void refreshButtonBarEnablement() {
-		close.setEnabled(current != null && getSite().isCloseable(current));
-		titleIcon.setEnabled(current != null && current.getMenu() != null);
-		showToolbar.setEnabled(current != null && current.getToolBar() != null);
-	}
-
-	public void dispose() {
-		// Dispose the main presentation widget. This will cause 
-		// presentationDisposed to be called, which will do the real cleanup.
-		presentationControl.dispose();
-	}
-	
-	/**
-	 * Perform any cleanup. This method should remove any listeners that were
-	 * attached to other objects. This gets called when the presentation
-	 * widget is disposed. This is safer than cleaning up in the dispose() 
-	 * method, since this code will run even if some unusual circumstance 
-	 * destroys the Shell without first calling dispose().
-	 */
-	protected void presentationDisposed() {
-	    // Remove any listeners that were attached to any
-		// global Eclipse resources. This is necessary in order to prevent
-		// memory leaks.
-		PlatformUI.getWorkbench().getThemeManager().removePropertyChangeListener(themeChangeListener);
-	}
-
-	public void setBounds(Rectangle bounds) {
-		Rectangle newBounds = Geometry.copy(bounds);
-		
-		if (newBounds.width == 0) {
-			// Workaround a bug in the Eclipse 3.0 release: minimized presentations will be
-			// given a width of 0.
-			newBounds.width = presentationControl.getBounds().width;
-		}
-		
-		if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-			newBounds.height = computeMinimumSize().y;
-		}
-		
-		// Set the bounds of the presentation widge
-		presentationControl.setBounds(newBounds);
-		
-		// Update the bounds of the currently visible part
-		layout();
-	}
-	
-	/**
-	 * Lay out the presentation's widgets
-	 */
-	private void layout() {
-		
-		// Determine the inner bounds of the presentation
-		Rectangle presentationClientArea = presentationControl.getClientArea();
-		presentationClientArea.x += getBorderWidth();
-		presentationClientArea.width -= getBorderWidth() * 2;
-		presentationClientArea.y += getBorderWidth();
-		presentationClientArea.height -= getBorderWidth() * 2;
-		
-		// Position the upper-right toolbar
-		Point upperRightSize = upperRight.getSize();
-		int upperRightStartX = presentationClientArea.x + presentationClientArea.width - upperRightSize.x - SPACING_WIDTH;
-
-		Rectangle upperRightBounds = new Rectangle(upperRightStartX,
-				presentationClientArea.y + SPACING_WIDTH, upperRightSize.x, upperRightSize.y);
-		
-		upperRight.setBounds(upperRightBounds);
-		
-		int tabStart = presentationClientArea.x + SPACING_WIDTH + 1;
-		int verticalSpaceRequired = 0;
-		if (!showIconOnTabs) {
-			Point upperLeftSize;
-
-			upperLeftSize = titleIconToolbar.getSize();
-			Rectangle upperLeftBounds = new Rectangle(presentationClientArea.x + SPACING_WIDTH, 
-					presentationClientArea.y + SPACING_WIDTH,
-					upperLeftSize.x, upperLeftSize.y);
-			
-			titleIconToolbar.setBounds(upperLeftBounds);
-
-			tabStart = upperLeftBounds.x + upperLeftBounds.width + SPACING_WIDTH;
-			verticalSpaceRequired = upperLeftSize.y;
-		} 
-		
-		int availableTabWidth = upperRightStartX - tabStart - SPACING_WIDTH;
-		
-		Point toolbarSize = toolBar.computeSize(availableTabWidth, SWT.DEFAULT);
-		int minToolbarWidth = WrappedTabsUtil.getMaximumItemWidth(toolBar);
-				
-		toolBar.setBounds(tabStart,
-				presentationClientArea.y + SPACING_WIDTH, 
-				availableTabWidth, toolbarSize.y);
-		
-		verticalSpaceRequired = Math.max(verticalSpaceRequired, upperRightSize.y);
-		verticalSpaceRequired = Math.max(verticalSpaceRequired, toolbarSize.y);
-		
-		int verticalOffset = presentationClientArea.y + verticalSpaceRequired + getBorderWidth() + 2 * SPACING_WIDTH;
-		
-		contentArea.setBounds(presentationClientArea.x, verticalOffset, 
-				presentationClientArea.width, presentationClientArea.height - verticalOffset);
-		
-		if (isShowingToolbar()) {
-			contentArea.setTopLeft(contentDescriptionWrapper);
-			contentArea.setTopCenter(toolbarProxy.getControl());
-		} else {
-			contentArea.setTopLeft(null);
-			contentArea.setTopCenter(null);
-		}
-		
-		contentArea.layout();
-		
-		// Position the view's widgets
-		if (current != null) {
-			Rectangle clientRectangle = clientArea.getBounds();
-			Point clientAreaStart = presentationControl.getParent().toControl(
-					contentArea.toDisplay(clientRectangle.x, clientRectangle.y));
-			
-			current.setBounds(new Rectangle(clientAreaStart.x, 
-					clientAreaStart.y,
-					clientRectangle.width, 
-					clientRectangle.height));
-		}
-		
-	}
-
-	private int getBorderWidth() {
-		return PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getInt(WrappedTabsThemeConstants.BORDER_SIZE);
-	}
-
-	public Point computeMinimumSize() {
-		Point minSize = new Point(100, 16);
-		Point upperLeftSize = titleIconToolbar.getSize();
-		Point toolBarSize = toolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT, false);
-		
-		int BORDER_WIDTH = getBorderWidth();
-		Point result = new Point(minSize.x + upperLeftSize.x + 3 * SPACING_WIDTH + 2 * BORDER_WIDTH, 
-				Math.max(Math.max(upperLeftSize.y, minSize.y), toolBarSize.y) 
-				+ 2 * SPACING_WIDTH + 2 * BORDER_WIDTH);
-		
-		return result;
-	}
-
-	public void setVisible(boolean isVisible) {
-		
-		// Make the presentation widget visible
-		presentationControl.setVisible(isVisible);
-		
-		// Make the currently visible part visible
-		if (current != null) {
-			current.setVisible(isVisible);
-			if (current.getToolBar() != null) {
-				current.getToolBar().setVisible(isVisible && isShowingToolbar());
-			}
-		}
-
-		if (isVisible) {
-			// Restore the bounds of the currently visible part. 
-			// IPartPresentations can be used by multiple StackPresentations,
-			// although only one such presentation is ever visible at a time.
-			// It is possible that some other presentation has changed the
-			// bounds of the part since it was last visible, so we need to
-			// update the part's bounds when the presentation becomes visible.
-			layout();
-		}
-	}
-
-	private void clearSelection() {
-		// If there was an existing part selected, make it invisible
-		if (current != null) {
-			current.setVisible(false);
-		}
-
-		current = null;
-	}
-	
-	public void currentPartChanged() {
-		boolean layoutNeeded = false;
-		
-		if (titleIcon.getImage() != current.getTitleImage()) {
-			titleIcon.setImage(current.getTitleImage());
-			titleIcon.setDisabledImage(current.getTitleImage());
-			titleIconToolbar.pack(true);
-			titleIconToolbar.redraw();
-			
-			layoutNeeded = true;
-		}
-		
-		if (!contentDescription.getText().equals(current.getTitleStatus())) {
-			contentDescription.setText(current.getTitleStatus());
-			
-			layoutNeeded = true;
-		}
-			
-		if (current.getToolBar() != null) {
-			if (isShowingToolbar()) {
-				current.getToolBar().setVisible(true);
-				layoutNeeded = true;
-			} else {
-				current.getToolBar().setVisible(false);
-			}
-			
-			toolbarProxy.setTargetControl(current.getToolBar());
-		}
-		
-		if (layoutNeeded) {
-			layout();
-		}
-	}
-	
-	public void selectPart(IPresentablePart toSelect) {
-		// Ignore redundant selections
-		if (toSelect == current) {
-			return;
-		}
-		
-		clearSelection();
-		
-		// Select the new part
-		current = toSelect;
-		
-		// Ordering is important here. We need to make the part
-		// visible before updating its bounds, or the call to setBounds
-		// may be ignored.
-		
-		if (current != null) {
-			// Make the newly selected part visible
-			current.setVisible(true);
-			
-			ToolItem[] items = toolBar.getItems();
-			
-			for (int idx = 0; idx < items.length; idx++) {
-				ToolItem item = items[idx];
-				
-				item.setSelection(getPartForTab(item) == current);
-			}
-			
-			currentPartChanged();
-		}
-		
-		refreshButtonBarEnablement();
-		updateToolbarImages();
-		
-		// Update the bounds of the newly selected part
-		layout();
-	}
-
-	public Control[] getTabList(IPresentablePart part) {
-		return new Control[] {part.getControl()};
-	}
-
-	public Control getControl() {
-		return presentationControl;
-	}
-
-	private int indexOf(IPresentablePart part) {
-		ToolItem item = getTab(part);
-		
-		if (item == null) {
-			return -1;
-		}
-		
-		return toolBar.indexOf(item); 
-	}
-	
-	public void addPart(IPresentablePart newPart, Object cookie) {
-		if (getTab(newPart) != null) {
-			return;
-		}
-		
-		int position = toolBar.getItemCount();
-		
-		// If this part is being added due to a drag/drop operation,
-		// determine the correct insertion position
-		if (cookie instanceof DropLocation) {
-			DropLocation location = (DropLocation)cookie;
-			
-			position = indexOf(location.part);
-			
-			// If we can't find the tab, then fall back to the
-			// insertionPosition field
-			if (position == -1) {
-				position = location.insertionPosition;
-			} else {
-				if (!location.before) {
-					position++;
-				}
-			}
-		}
-		
-		// Ignore the cookie for now, since we don't support drag-and-drop yet.
-		ToolItem toolItem = new ToolItem(toolBar, SWT.RADIO, position);
-		
-		// Attach the newPart pointer to the ToolItem. This is used for getPartForTab
-		// to determine which part is associated with the tool item
-		toolItem.setData(PART_DATA, newPart);
-		
-		// Attach a property change listener to the part. This will update the ToolItem
-		// to reflect changes in the part.
-		newPart.addPropertyListener(childPropertyChangeListener);
-		
-		// Attach a dispose listener to the item. This removes the above property
-		// change listener from the part when the item is destroyed. This prevents
-		// memory leaks.
-		toolItem.addDisposeListener(tabDisposeListener);
-		
-		// Listen to selection events in the new tool item
-		toolItem.addSelectionListener(tabItemSelectionAdapter);
-		
-		// Initialize the tab for this part
-		initTab(toolItem, newPart);
-		
-		layout();
-		
-		toolBar.layout(true);
-		presentationControl.redraw();
-	}
-
-	protected void initTab(ToolItem item, IPresentablePart part) {
-		String tabName = getTabText(part);
-		
-		if (!tabName.equals(item.getText())) {
-			item.setText(tabName);
-		}
-		
-		if (!(part.getTitleToolTip().equals(item.getToolTipText()))) {
-			item.setToolTipText(part.getTitleToolTip());
-		}
-
-		if (showIconOnTabs && part.getTitleImage() != item.getImage()) {
-			item.setImage(part.getTitleImage());
-		}
-		
-	}
-	
-	/**
-	 * Returns the decorated tab text for the given part. By default, we attach 
-	 * a star to indicate dirty tabs.
-	 * 
-	 * @param part part whose text is being computed
-	 * @return the decorated tab text for the given part
-	 */
-	protected String getTabText(IPresentablePart part) {
-		String result = part.getName();
-		
-		if (part.isDirty()) {
-			result = "*" + result;
-		}
-		
-		return result;
-	}
-	
-	/**
-	 * Removes the given part from the stack.
-	 * 
-	 * @param oldPart the part to remove (not null)
-	 */
-	public void removePart(IPresentablePart oldPart) {
-		// If we're removing the currently selected part, clear the selection
-		if (oldPart == current) {
-			clearSelection();
-			refreshButtonBarEnablement();
-		}
-		
-		ToolItem item = getTab(oldPart);
-		
-		// Don't need to do anything if the part has already been removed
-		if (item == null) {
-			return;
-		}
-		
-		// Dispose the tab. The dispose listener on the item
-		// will handle all the cleanup.
-		item.dispose();
-		
-		layout();
-		
-		presentationControl.redraw();
-	}
-
-	/**
-	 * Called whenever a property changes for one of the parts in this
-	 * presentation. 
-	 * 
-	 * @param part
-	 * @param property
-	 */
-	protected void childPropertyChanged(IPresentablePart part, int property) {
-		ToolItem toolItem = getTab(part);
-		
-		// If there is no tab for this part, just ignore the property change
-		if (toolItem == null) {
-			return;
-		}
-		
-		initTab(toolItem, part);
-		
-		if (part == current) {
-			currentPartChanged();
-		}
-	}
-
-	/**
-	 * Returns the tab associated with the given part or null if none 
-	 * 
-	 * @param part the part to check for
-	 * @return the tab associated with the given part or null if none
-	 */
-	protected final ToolItem getTab(IPresentablePart part) {
-		ToolItem[] items = toolBar.getItems();
-		
-		for (int idx = 0; idx < items.length; idx++) {
-			ToolItem item = items[idx];
-			
-			if (getPartForTab(item) == part) {
-				return item;
-			}
-		}
-			
-		return null;
-	}
-	
-	/**
-	 * Returns the part associated with the given tab, or null if none.
-	 * 
-	 * @param item the tab to query
-	 * @return the part associated with the given tab or null if none
-	 */
-	protected final IPresentablePart getPartForTab(ToolItem item) {
-		return (IPresentablePart)item.getData(PART_DATA);
-	}
-	
-	public StackDropResult dragOver(Control currentControl, Point location) {		
-		Point localCoordinates = toolBar.toControl(location);
-		
-		// Ignore drag operations that aren't on top of the toolbar we're using
-		// for tabs.
-		if (toolBar.getClientArea().contains(localCoordinates)) {
-			DropLocation dropLocation = new DropLocation();
-			
-			ToolItem item = toolBar.getItem(localCoordinates);
-			
-			if (item == null) {
-				item = toolBar.getItem(toolBar.getItemCount() - 1);
-			}
-			
-			Rectangle itemBounds = item.getBounds();
-			dropLocation.before = (localCoordinates.x - itemBounds.x < itemBounds.width / 2);
-			dropLocation.part = getPartForTab(item);
-			// Also store the current index of the part we're dragging over. We will use
-			// the index if the part no longer exists at the time the drop occurs (ie:
-			// if we're dragging an item over itself)
-			dropLocation.insertionPosition = toolBar.indexOf(item);
-			
-			Point displayCoordinates = toolBar.toDisplay(itemBounds.x, itemBounds.y);
-			
-			Rectangle bounds = new Rectangle(displayCoordinates.x, displayCoordinates.y, 
-					4, itemBounds.height);
-			if (!dropLocation.before) {
-				bounds.x += itemBounds.width;
-			}
-			
-			return new StackDropResult(bounds, dropLocation);
-		}
-		
-		return null;
-	}
-	
-	public void setActive(int newState) {
-		activeFocus = (newState == AS_ACTIVE_FOCUS);
-		presentationControl.redraw();
-	}
-	
-	public void setState(int state) {
-		updateToolbarImages();
-	}
-	
-	public void showPaneMenu(Point location) {
-		if (current == null) {
-			return;
-		}
-		
-		IPartMenu menu = current.getMenu();
-		
-		if (menu == null) {
-			return;
-		}
-
-		menu.showMenu(location);
-	}
-	
-	public void showPaneMenu() {	
-		Rectangle bounds = titleIconToolbar.getBounds();
-		Point location = titleIconToolbar.getParent().toDisplay(bounds.x, bounds.y + bounds.height);
-		
-		showPaneMenu(location);
-	}
-	
-	public void showSystemMenu() {
-		Rectangle bounds = viewMenu.getBounds();
-		Point displayPos = viewMenu.getParent().toDisplay(bounds.x, bounds.y + bounds.height);
-    	
-		showSystemMenu(displayPos);
-	}
-	
-	public void showSystemMenu(Point displayPos) {
-		Menu aMenu = systemMenuManager.createContextMenu(presentationControl);
-		systemMenuManager.update(true);
-		aMenu.setLocation(displayPos.x, displayPos.y);
-		aMenu.setVisible(true);		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.StackPresentation#showPartList()
-	 */
-	public void showPartList() {
-		
-		// The part list opens when the user presses ctrl-e to open the list
-		// of editors. In this presentation, the part list is part of the system menu,
-		// so opening the part list is equivalent to opening the system menu.
-		showSystemMenu();
-	}
-
-	protected void showToolbar(IPresentablePart part, boolean shouldShow) {
-		
-		if (shouldShow != isShowingToolbar(part)) {
-			ToolItem tab = getTab(part);
-			tab.setData(SHOWING_TOOLBAR, shouldShow ? SHOWING_TOOLBAR : null);
-			
-			if (part == current) {
-				Control toolbar = part.getToolBar();
-				if (toolbar != null) {
-					toolbar.setVisible(shouldShow);
-				}
-				
-				layout();
-		
-				updateToolbarImages();
-				
-				if (getSite().getState() == IStackPresentationSite.STATE_MINIMIZED) {
-					getSite().setState(IStackPresentationSite.STATE_RESTORED);
-				}
-			}
-		}
-	}
-	
-	/**
-	 * @param selection
-	 */
-	public void showToolbar(boolean selection) {
-		if (current != null) {
-			showToolbar(current, selection);
-		}
-	}
-	
-	public IPresentablePart getCurrent() {
-		return current;
-	}
-	
-	private boolean isShowingToolbar(IPresentablePart part) {
-		ToolItem tab = getTab(part);
-		return tab.getData(SHOWING_TOOLBAR) != null;
-	}
-	
-	public boolean isShowingToolbar() {
-		if (current == null) {
-			return false;
-		}
-		
-		return isShowingToolbar(current);		
-	}
-
-	/**
-	 * @param parts
-	 */
-	public void close(IPresentablePart[] parts) {
-		getSite().close(parts);
-	}
-	
-	private Color getBorderColor() {
-		ITheme current = PlatformUI.getWorkbench().getThemeManager().getCurrentTheme();
-		if(activeFocus) {
-			return current.getColorRegistry().get(WrappedTabsThemeConstants.BORDER_COLOR_FOCUS);
-		} else {
-			return current.getColorRegistry().get(WrappedTabsThemeConstants.BORDER_COLOR_NOFOCUS);
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java
deleted file mode 100644
index 7e20edc..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsPresentationFactory.java
+++ /dev/null
@@ -1,47 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-
-/**
- * @since 3.0
- */
-public class WrappedTabsPresentationFactory extends AbstractPresentationFactory {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createEditorPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createEditorPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new WrappedTabsPartPresentation(parent, site, true);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite)
-	 */
-	public StackPresentation createViewPresentation(Composite parent,
-			IStackPresentationSite site) {
-		return new WrappedTabsPartPresentation(parent, site, false);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.AbstractPresentationFactory#createStandaloneViewPresentation(org.eclipse.swt.widgets.Composite, org.eclipse.ui.presentations.IStackPresentationSite, boolean)
-	 */
-	public StackPresentation createStandaloneViewPresentation(Composite parent,
-			IStackPresentationSite site, boolean showTitle) {
-		return new WrappedTabsPartPresentation(parent, site, false);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java
deleted file mode 100644
index 6aad8a0..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsThemeConstants.java
+++ /dev/null
@@ -1,25 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-/**
- * Theme presentation constants
- * 
- * @since 3.0
- */
-public class WrappedTabsThemeConstants {
-	public final static String ID = "org.eclipse.ui.examples.presentation.wrappedtabstheme"; //$NON-NLS-1$
-	
-	public final static String TAB_FONT = "org.eclipse.ui.examples.presentation.wrappedtabstheme.font"; //$NON-NLS-1$
-	public final static String BORDER_COLOR_FOCUS = "org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_focus"; //$NON-NLS-1$
-	public final static String BORDER_COLOR_NOFOCUS = "org.eclipse.ui.examples.presentation.wrappedtabstheme.foreground_nofocus"; //$NON-NLS-1$
-	public final static String BORDER_SIZE = "org.eclipse.ui.examples.presentation.wrappedtabstheme.bordersize"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.java b/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.java
deleted file mode 100644
index 7d8db35..0000000
--- a/examples/org.eclipse.ui.examples.presentation/src/org/eclipse/ui/examples/presentation/wrappedtabs/WrappedTabsUtil.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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.examples.presentation.wrappedtabs;
-
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-
-/**
- * @since 3.0
- */
-public class WrappedTabsUtil {
-	private WrappedTabsUtil() {
-		
-	}
-	
-	/**
-	 * Returns the width of the widest ToolItem in the given toolbar
-	 * 
-	 * @param toMeasure toolbar to measure
-	 * @return the width (pixels) of the widest ToolItem in the given toolbar
-	 */
-	public static int getMaximumItemWidth(ToolBar toMeasure) {
-		int maxWidth = 0;
-		ToolItem items[] = toMeasure.getItems();
-		
-		for (int i = 0; i < items.length; i++) {
-			ToolItem item = items[i];
-			
-			maxWidth = Math.max(maxWidth, item.getBounds().width);
-		}
-		
-		return maxWidth;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.classpath b/examples/org.eclipse.ui.examples.propertysheet/.classpath
deleted file mode 100644
index ad14fb0..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples PropertySheet"/>
-	<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/examples/org.eclipse.ui.examples.propertysheet/.cvsignore b/examples/org.eclipse.ui.examples.propertysheet/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.project b/examples/org.eclipse.ui.examples.propertysheet/.project
deleted file mode 100644
index 12f1ec2..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.propertysheet</name>
-	<comment></comment>
-	<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/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 36e5b57..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,78 +0,0 @@
-#Mon Jan 15 21:12:52 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 21abc82..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Mon Jan 15 17:29:04 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 632cb55..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:54:15 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java
deleted file mode 100644
index 02cf675..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Address.java
+++ /dev/null
@@ -1,377 +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.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * Example IPropertySource who itself is NOT editable, but whose children are.
- * The values of the children determine the value of the address.
- */
-public class Address implements IPropertySource {
-
-    //properties
-    private String city;
-
-    private Integer province;
-
-    private String postalCode;
-
-    private StreetAddress street;
-
-    //Property unique keys
-    public static final String P_ID_STREET = "Address.Street"; //$NON-NLS-1$
-
-    public static final String P_ID_CITY = "Address.City"; //$NON-NLS-1$
-
-    public static final String P_ID_PROVINCE = "Address.Province"; //$NON-NLS-1$
-
-    public static final String P_ID_POSTALCODE = "Address.PostalCode"; //$NON-NLS-1$
-
-    //Property display keys
-    public static final String P_STREET = MessageUtil.getString("Street"); //$NON-NLS-1$
-
-    public static final String P_CITY = MessageUtil.getString("City"); //$NON-NLS-1$
-
-    public static final String P_PROVINCE = MessageUtil.getString("Province"); //$NON-NLS-1$
-
-    public static final String P_POSTALCODE = MessageUtil
-            .getString("PostalCode"); //$NON-NLS-1$
-
-    public static final String P_DESCRIPTORS = "properties"; //$NON-NLS-1$
-
-    //default values	
-    private static final StreetAddress STREET_DEFAULT = new StreetAddress();
-
-    private static final String CITY_DEFAULT = MessageUtil
-            .getString("unspecified_city"); //$NON-NLS-1$
-
-    private static final Integer PROVINCE_DEFAULT = new Integer(0);
-
-    private static final String POSTALCODE_DEFAULT = "A1B2C3"; //$NON-NLS-1$
-
-    //
-    static private class ProvinceLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] provinceValues = new String[] {
-                    MessageUtil.getString("British_Columbia"), MessageUtil.getString("Alberta"), MessageUtil.getString("Saskatchewan"), MessageUtil.getString("Manitoba"), MessageUtil.getString("Ontario"), MessageUtil.getString("Quebec"), MessageUtil.getString("Newfoundland"), MessageUtil.getString("Prince_Edward_Island"), MessageUtil.getString("Nova_Scotia"), MessageUtil.getString("New_Brunswick"), MessageUtil.getString("Yukon"), MessageUtil.getString("North_West_Territories"), MessageUtil.getString("Nunavut") }; //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-            return provinceValues[((Integer) element).intValue()];
-        }
-    }
-
-    //
-    private static Vector descriptors;
-
-    private static String[] provinceValues;
-    static {
-        descriptors = new Vector();
-        provinceValues = new String[] {
-                MessageUtil.getString("British_Columbia"), MessageUtil.getString("Alberta"), MessageUtil.getString("Saskatchewan"), MessageUtil.getString("Manitoba"), MessageUtil.getString("Ontario"), MessageUtil.getString("Quebec"), MessageUtil.getString("Newfoundland"), MessageUtil.getString("Prince_Edward_Island"), MessageUtil.getString("Nova_Scotia"), MessageUtil.getString("New_Brunswick"), MessageUtil.getString("Yukon"), MessageUtil.getString("North_West_Territories"), MessageUtil.getString("Nunavut") }; //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        descriptors.addElement(new PropertyDescriptor(P_ID_STREET, P_STREET));
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_CITY, P_CITY));
-
-        //PostalCode
-        PropertyDescriptor propertyDescriptor = new TextPropertyDescriptor(
-                P_ID_POSTALCODE, P_POSTALCODE);
-        //add custom validator to propertyDescriptor limiting postalcode
-        //values to XYXYXY, where X is a letter and Y is a digit
-        propertyDescriptor.setValidator(new ICellEditorValidator() {
-            public String isValid(Object value) {
-                if (value == null)
-                    return MessageUtil.getString("postal_code_is_incomplete"); //$NON-NLS-1$
-
-                //
-                String testPostalCode = ((String) value).toUpperCase();
-                final int length = testPostalCode.length();
-                final char space = ' ';
-
-                //removes white space
-                StringBuffer postalCodeBuffer = new StringBuffer(6);
-                char current;
-                for (int i = 0; i < length; i++) {
-                    current = testPostalCode.charAt(i);
-                    if (current != space)
-                        postalCodeBuffer.append(current);
-                }
-                testPostalCode = postalCodeBuffer.toString();
-
-                //check for proper length
-                if (testPostalCode.length() != 6) {
-                    return MessageUtil.getString("postal_code_is_incomplete"); //$NON-NLS-1$
-                }
-
-                //check for proper format
-                if (testPostalCode.charAt(1) < '0'
-                        || testPostalCode.charAt(1) > '9'
-                        || testPostalCode.charAt(3) < '0'
-                        || testPostalCode.charAt(3) > '9'
-                        || testPostalCode.charAt(5) < '0'
-                        || testPostalCode.charAt(5) > '9'
-                        || testPostalCode.charAt(0) < 'A'
-                        || testPostalCode.charAt(0) > 'Z'
-                        || testPostalCode.charAt(2) < 'A'
-                        || testPostalCode.charAt(2) > 'Z'
-                        || testPostalCode.charAt(4) < 'A'
-                        || testPostalCode.charAt(4) > 'Z') {
-                    //fail
-                    return MessageUtil
-                            .format(
-                                    "_is_an_invalid_format_for_a_postal_code", new Object[] { testPostalCode }); //$NON-NLS-1$
-                }
-
-                //all pass
-                return null;
-            }
-        });
-        descriptors.addElement(propertyDescriptor);
-
-        //
-        ComboBoxPropertyDescriptor desc = new ComboBoxPropertyDescriptor(
-                P_ID_PROVINCE, P_PROVINCE, provinceValues);
-        desc.setLabelProvider(new ProvinceLabelProvider());
-        descriptors.addElement(desc);
-    }
-
-    /**
-     * Address Default Constructor
-     */
-    Address() {
-        super();
-    }
-
-    /**
-     * Creates a new address.
-     *
-     * @param street the street 
-     * @param city the city
-     * @param province the province
-     * @param postalCode has the form XYXYXY: where X is a letter and Y is a digit
-     * @exception IllegalArgumentException, if postalcode not in above form
-     */
-    public Address(StreetAddress street, String city, Integer province,
-            String postalCode) {
-        super();
-        setStreet(street);
-        setCity(city);
-        setPostalCode(postalCode);
-        setProvince(province);
-    }
-
-    /**
-     * Returns the city
-     */
-    private String getCity() {
-        if (city == null)
-            city = CITY_DEFAULT;
-        return city;
-    }
-
-    /* 
-     * Standard Accessor
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the postal code
-     */
-    private String getPostalCode() {
-        if (postalCode == null)
-            postalCode = POSTALCODE_DEFAULT;
-        return postalCode;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Address</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_CITY returns java.lang.String
-     * 	2) P_POSTALCODE returns java.lang.String
-     *  3) P_PROVINCE returns java.lang.String
-     *	4) P_STREET returns StreetAddress
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_PROVINCE))
-            return getProvince();
-        if (propKey.equals(P_ID_STREET))
-            return getStreet();
-        if (propKey.equals(P_ID_CITY))
-            return getCity();
-        if (propKey.equals(P_ID_POSTALCODE))
-            return getPostalCode();
-        return null;
-    }
-
-    /**
-     * Returns the province
-     */
-    private Integer getProvince() {
-        if (province == null)
-            province = PROVINCE_DEFAULT;
-        return province;
-    }
-
-    /**
-     * Returns the street
-     */
-    public StreetAddress getStreet() {
-        if (street == null)
-            street = new StreetAddress();
-        return street;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (property.equals(P_ID_PROVINCE))
-            return getProvince() != PROVINCE_DEFAULT;
-        if (property.equals(P_ID_STREET))
-            return !STREET_DEFAULT.equals(getStreet());
-        if (property.equals(P_ID_CITY))
-            return getCity() != CITY_DEFAULT;
-        if (property.equals(P_ID_POSTALCODE))
-            return getPostalCode() != POSTALCODE_DEFAULT;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (P_ID_POSTALCODE.equals(property)) {
-            setPostalCode(POSTALCODE_DEFAULT);
-            return;
-        }
-        if (P_ID_CITY.equals(property)) {
-            setCity(CITY_DEFAULT);
-            return;
-        }
-        if (P_ID_PROVINCE.equals(property)) {
-            setProvince(PROVINCE_DEFAULT);
-            return;
-        }
-        if (P_ID_STREET.equals(property)) {
-            setStreet(new StreetAddress());
-            return;
-        }
-    }
-
-    /**
-     * Sets the city
-     */
-    private void setCity(String newCity) {
-        city = newCity;
-    }
-
-    /**
-     * Sets the postal code
-     */
-    private void setPostalCode(String newPostalCode) {
-        //validation in ICellEditorValidator registered in PropertyDescriptor
-        this.postalCode = newPostalCode.toUpperCase();
-    }
-
-    /** 
-     * The <code>Address</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     * 	1) P_CITY expects java.lang.String
-     * 	2) P_POSTALCODE expects java.lang.String
-     *  3) P_PROVINCE expects java.lang.String
-     * 
-     * <p>P_ID_STREET is not set here since it is referenced 
-     * and set directly in StreetAddress.
-     * According to IPropertySource, StreetAddress.getEditableValue
-     * should return a String which will be passed to this method  
-     * as the value. A new StreetAddress object should then be 
-     * created from the string. 
-     * An alternative would be to return the StreetAddress 
-     * directly in StreetAddress.getEditableValue and define a 
-     * cell editor for the StreetAddress property.
-     * This was ommitted for the sake of simplicity. 
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (P_ID_POSTALCODE.equals(name)) {
-            setPostalCode((String) value);
-            return;
-        }
-        if (P_ID_CITY.equals(name)) {
-            setCity((String) value);
-            return;
-        }
-        if (P_ID_PROVINCE.equals(name)) {
-            setProvince((Integer) value);
-            return;
-        }
-    }
-
-    /**
-     * Sets the province
-     */
-    private void setProvince(Integer newProvince) {
-        province = newProvince;
-    }
-
-    /**
-     * Sets the street
-     */
-    private void setStreet(StreetAddress newStreet) {
-        street = newStreet;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet.
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer outStringBuffer = new StringBuffer();
-        final String comma_space = ", "; //$NON-NLS-1$
-        final String space = " "; //$NON-NLS-1$
-        if (!getStreet().equals(STREET_DEFAULT)) {
-            outStringBuffer.append(getStreet());
-            outStringBuffer.append(comma_space);
-        }
-
-        outStringBuffer.append(getCity());
-        outStringBuffer.append(space);
-        outStringBuffer.append(provinceValues[getProvince().intValue()]);
-        outStringBuffer.append(comma_space);
-        outStringBuffer.append(getPostalCode());
-
-        return outStringBuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java
deleted file mode 100644
index f1b77ac..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Birthday.java
+++ /dev/null
@@ -1,274 +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.ui.examples.propertysheet;
-
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * Example IPropertySource who itself is NOT editable, but whose children are.
- * The values of the children determine the value of the birthday.
- */
-public class Birthday implements IPropertySource {
-
-    //Properties
-    private Integer day, month, year;
-
-    //Property unique keys
-    public static final String P_ID_DAY = "Birthday.day"; //$NON-NLS-1$
-
-    public static final String P_ID_MONTH = "Birthday.month"; //$NON-NLS-1$
-
-    public static final String P_ID_YEAR = "Birthday.year"; //$NON-NLS-1$
-
-    //Property display keys
-    public static final String P_DAY = MessageUtil.getString("day"); //$NON-NLS-1$
-
-    public static final String P_MONTH = MessageUtil.getString("month"); //$NON-NLS-1$
-
-    public static final String P_YEAR = MessageUtil.getString("year"); //$NON-NLS-1$
-
-    //default values	
-    private static final Integer DAY_DEFAULT = new Integer(1);
-
-    private static final Integer MONTH_DEFAULT = new Integer(1);
-
-    private static final Integer YEAR_DEFAULT = new Integer(2000);
-
-    //static date formater
-    private static final DateFormat formatter = new SimpleDateFormat(
-            "EEEE, MMMM d, yyyy"); //$NON-NLS-1$
-
-    static private class DayLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] dayValues = new String[] {
-                    "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }; //$NON-NLS-31$ //$NON-NLS-30$ //$NON-NLS-29$ //$NON-NLS-28$ //$NON-NLS-27$ //$NON-NLS-26$ //$NON-NLS-25$ //$NON-NLS-24$ //$NON-NLS-23$ //$NON-NLS-22$ //$NON-NLS-21$ //$NON-NLS-20$ //$NON-NLS-19$ //$NON-NLS-18$ //$NON-NLS-17$ //$NON-NLS-16$ //$NON-NLS-15$ //$NON-NLS-14$ //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-            return dayValues[((Integer) element).intValue()];
-        }
-    }
-
-    static private class MonthLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] monthValues = new String[] {
-                    MessageUtil.getString("January"), MessageUtil.getString("February"), MessageUtil.getString("March"), MessageUtil.getString("April"), MessageUtil.getString("May"), MessageUtil.getString("June"), MessageUtil.getString("July"), MessageUtil.getString("August"), MessageUtil.getString("September"), MessageUtil.getString("October"), MessageUtil.getString("November"), MessageUtil.getString("December") }; //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-            return monthValues[((Integer) element).intValue()];
-        }
-    }
-
-    //
-    private static Vector descriptors;
-    static {
-        descriptors = new Vector();
-
-        ///
-        String[] dayValues = new String[] {
-                "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31" }; //$NON-NLS-31$ //$NON-NLS-30$ //$NON-NLS-29$ //$NON-NLS-28$ //$NON-NLS-27$ //$NON-NLS-26$ //$NON-NLS-25$ //$NON-NLS-24$ //$NON-NLS-23$ //$NON-NLS-22$ //$NON-NLS-21$ //$NON-NLS-20$ //$NON-NLS-19$ //$NON-NLS-18$ //$NON-NLS-17$ //$NON-NLS-16$ //$NON-NLS-15$ //$NON-NLS-14$ //$NON-NLS-13$ //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        ComboBoxPropertyDescriptor days = new ComboBoxPropertyDescriptor(
-                P_ID_DAY, P_DAY, dayValues);
-        days.setLabelProvider(new DayLabelProvider());
-        descriptors.addElement(days);
-
-        ///
-        String[] monthValues = new String[] {
-                MessageUtil.getString("January"), MessageUtil.getString("February"), MessageUtil.getString("March"), MessageUtil.getString("April"), MessageUtil.getString("May"), MessageUtil.getString("June"), MessageUtil.getString("July"), MessageUtil.getString("August"), MessageUtil.getString("September"), MessageUtil.getString("October"), MessageUtil.getString("November"), MessageUtil.getString("December") }; //$NON-NLS-12$ //$NON-NLS-11$ //$NON-NLS-10$ //$NON-NLS-9$ //$NON-NLS-8$ //$NON-NLS-7$ //$NON-NLS-6$ //$NON-NLS-5$ //$NON-NLS-4$ //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        ComboBoxPropertyDescriptor months = new ComboBoxPropertyDescriptor(
-                P_ID_MONTH, P_MONTH, monthValues);
-        months.setLabelProvider(new MonthLabelProvider());
-        descriptors.addElement(months);
-
-        ///
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_YEAR, P_YEAR));
-    }
-
-    /**
-     * Address Default Constructor
-     */
-    Birthday() {
-        super();
-    }
-
-    /**
-     * Convenience Address Constructor
-     */
-    public Birthday(int day, int month, int year) {
-        super();
-        setDay(new Integer(day));
-        setMonth(new Integer(month));
-        setYear(new Integer(year));
-    }
-
-    /**
-     * Returns the day
-     */
-    private Integer getDay() {
-        if (day == null)
-            day = DAY_DEFAULT;
-        return day;
-    }
-
-    /**
-     * Standard Accessor
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the month
-     */
-    private Integer getMonth() {
-        if (month == null)
-            month = MONTH_DEFAULT;
-        return month;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Birthday</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_DAY returns java.lang.Integer
-     * 	2) P_MONTH returns java.lang.Integer
-     *  3) P_YEAR returns java.lang.Integer
-     *	4) P_STREET returns java.lang.String
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_DAY))
-            return new Integer(getDay().intValue() - 1);
-        if (propKey.equals(P_ID_MONTH))
-            return new Integer(getMonth().intValue() - 1);
-        if (propKey.equals(P_ID_YEAR))
-            return getYear().toString();
-        return null;
-    }
-
-    /**
-     * Returns the year
-     */
-    private Integer getYear() {
-        if (year == null)
-            year = YEAR_DEFAULT;
-        return year;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (P_ID_DAY.equals(property))
-            return getDay() != DAY_DEFAULT;
-        if (P_ID_MONTH.equals(property))
-            return getMonth() != MONTH_DEFAULT;
-        if (P_ID_YEAR.equals(property))
-            return getYear() != YEAR_DEFAULT;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (P_ID_DAY.equals(property)) {
-            setDay(DAY_DEFAULT);
-            return;
-        }
-        if (P_ID_MONTH.equals(property)) {
-            setMonth(MONTH_DEFAULT);
-            return;
-        }
-        if (P_ID_YEAR.equals(property)) {
-            setYear(YEAR_DEFAULT);
-            return;
-        }
-    }
-
-    /**
-     * Sets the day
-     */
-    private void setDay(Integer newDay) {
-        day = newDay;
-    }
-
-    /**
-     * Sets the month
-     */
-    private void setMonth(Integer newMonth) {
-        month = newMonth;
-    }
-
-    /** 
-     * The <code>Birthday</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     * 	1) P_DAY expects java.lang.Integer
-     * 	2) P_MONTH expects java.lang.Integer
-     *  3) P_YEAR expects java.lang.Integer
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (P_ID_DAY.equals(name)) {
-            setDay(new Integer(((Integer) value).intValue() + 1));
-            return;
-        }
-        if (P_ID_MONTH.equals(name)) {
-            setMonth(new Integer(((Integer) value).intValue() + 1));
-            return;
-        }
-        if (P_ID_YEAR.equals(name)) {
-            try {
-                setYear(new Integer((String) value));
-            } catch (NumberFormatException e) {
-                setYear(YEAR_DEFAULT);
-            }
-            return;
-        }
-    }
-
-    /**
-     * Sets the year
-     */
-    private void setYear(Integer newYear) {
-        year = newYear;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet.
-     * @return java.lang.String
-     */
-    public String toString() {
-        Date bday = (new GregorianCalendar(getYear().intValue(), getMonth()
-                .intValue() - 1, getDay().intValue())).getTime();
-        return formatter.format(bday);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java
deleted file mode 100644
index 2320280..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddress.java
+++ /dev/null
@@ -1,215 +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.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-/**
- * Example IPropertySource is editable and whose childern properties are itself not editable.
- * The values of "userid" and "mailserver" are parsed from setting "email"
- */
-public class EmailAddress implements IPropertySource {
-
-    //Property-Value
-    private String userid;
-
-    private String domain;
-
-    //Default Property-Value
-    private static final String USERID_DEFAULT = MessageUtil
-            .getString("unknownUser"); //$NON-NLS-1$
-
-    private static final String DOMAIN_DEFAULT = MessageUtil
-            .getString("unknownDomain"); //$NON-NLS-1$
-
-    //Property unique keys
-    public static final String P_ID_USERID = "EmailAddress.userid"; //$NON-NLS-1$
-
-    public static final String P_ID_DOMAIN = "EmailAddress.domain"; //$NON-NLS-1$
-
-    //Property display keys
-    public static final String P_USERID = MessageUtil.getString("userid"); //$NON-NLS-1$
-
-    public static final String P_DOMAIN = MessageUtil.getString("domain"); //$NON-NLS-1$
-
-    //Property-Descriptors
-    private static Vector descriptors;
-
-    static {
-        descriptors = new Vector(2, 2);
-        //non-editable child properties --> provide no editors
-        descriptors.addElement(new PropertyDescriptor(P_ID_USERID, P_USERID));
-        descriptors.addElement(new PropertyDescriptor(P_ID_DOMAIN, P_DOMAIN));
-    }
-
-    /**
-     * EmailAddress Default Constructor
-     */
-    public EmailAddress() {
-        super();
-    }
-
-    /**
-     * Convience EmailAddress constructor.
-     * Calls setEmailAddress() to parse emailAddress
-     * @param emailAddress java.lang.String, in the form userid@domain
-     * @throws java.lang.IllegalArgumentException, if does not subscribe to form
-     */
-    public EmailAddress(String emailAddress) throws IllegalArgumentException {
-        super();
-        setEmailAddress(emailAddress);
-
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /**
-     * Returns the domain
-     */
-    private String getDomain() {
-        if (domain == null)
-            domain = DOMAIN_DEFAULT;
-        return domain;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>EmailAddress</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_USERID returns String, values before "@"
-     *	2) P_DOMAIN returns String, values after "@"
-     *
-     * Observe the available properties must always equal those listed
-     * in the property descriptors
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_USERID))
-            return getUserid();
-        if (propKey.equals(P_ID_DOMAIN))
-            return getDomain();
-        return null;
-    }
-
-    /**
-     * Returns the userid
-     */
-    private String getUserid() {
-        if (userid == null)
-            userid = USERID_DEFAULT;
-        return userid;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        return;
-    }
-
-    /**
-     * Sets the domain
-     */
-    private void setDomain(java.lang.String newDomain) {
-        domain = newDomain;
-    }
-
-    /**
-     * Parses emailAddress into domain and userid. Throws SetPropertyVetoException
-     * if emailAddress does not contain an userid and domain seperated by '@'.
-     *
-     * @param emailAddress the email address
-     * @throws IllegalArgumentException
-     */
-    private void setEmailAddress(String emailAddress)
-            throws IllegalArgumentException {
-        if (emailAddress == null)
-            throw new IllegalArgumentException(MessageUtil
-                    .getString("emailaddress_cannot_be_set_to_null")); //$NON-NLS-1$
-        int index = emailAddress.indexOf('@');
-        int length = emailAddress.length();
-        if (index > 0 && index < length) {
-            setUserid(emailAddress.substring(0, index));
-            setDomain(emailAddress.substring(index + 1));
-            return;
-        }
-        throw new IllegalArgumentException(
-                MessageUtil
-                        .getString("invalid_email_address_format_should_have_been_validated")); //$NON-NLS-1$
-    }
-
-    /** 
-     * The <code>Address</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     *	1) P_USERID, expects String
-     *	2) P_DOMAIN, expects String
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (name.equals(P_ID_USERID)) {
-            setUserid((String) value);
-            return;
-        }
-        if (name.equals(P_ID_DOMAIN)) {
-            setDomain((String) value);
-            return;
-        }
-    }
-
-    /**
-     * Sets the userid
-     */
-    private void setUserid(String newUserid) {
-        userid = newUserid;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet.
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer strbuffer = new StringBuffer(getUserid());
-        strbuffer.append('@');
-        strbuffer.append(getDomain());
-        return strbuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java
deleted file mode 100644
index 8625f80..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/EmailAddressValidator.java
+++ /dev/null
@@ -1,38 +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.ui.examples.propertysheet;
-
-import org.eclipse.jface.viewers.ICellEditorValidator;
-
-/**
- * Validator for email addresses
- */
-public class EmailAddressValidator implements ICellEditorValidator {
-    /** 
-     * The <code>EmailAddressValidator</code> implementation of this
-     * <code>ICellEditorValidator</code> method 
-     * determines if the value is a valid email address.
-     * (check to see if it is non-null and contains an @)
-     */
-    public String isValid(Object value) {
-        if (value == null) {
-            return MessageUtil.getString("email_address_is_incomplete"); //$NON-NLS-1$
-        }
-        String emailAddress = (String) value;
-        int index = emailAddress.indexOf('@');
-        int length = emailAddress.length();
-        if (index > 0 && index < length) {
-            return null;
-        }
-        return MessageUtil
-                .getString("email_address_does_not_have_a_valid_format"); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java
deleted file mode 100644
index 0fb7653..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/GroupElement.java
+++ /dev/null
@@ -1,178 +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.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * A Group Element
- */
-public class GroupElement extends OrganizationElement {
-    public static String P_USERS = "users"; //$NON-NLS-1$
-
-    public static String P_SUBGROUPS = "subgroups"; //$NON-NLS-1$
-
-    public static String P_CONTENTS = "contents"; //$NON-NLS-1$
-
-    private Vector subGroups;
-
-    private Vector users;
-
-    // must be synchronized to contain both the references of subGroups and users
-    private Vector contents;
-
-    /**
-     * Constructor.
-     * Creates a new GroupElement within the passed parent GroupElement,
-     * gives it the passed name property, sets Icon.
-     *
-     * @param name the name 
-     * @param parent the parent
-     */
-    public GroupElement(String name, GroupElement parent) {
-        super(name, parent);
-    }
-
-    /**
-     * Adds an OrganizationElement to this GroupElement.
-     *
-     * @param userGroup The Organization Element
-     */
-    public void add(OrganizationElement userGroup) {
-        if (userGroup.isUser() || userGroup.isGroup()) {
-            getContents().add(userGroup);
-        }
-        if (userGroup.isGroup()) {
-            getSubGroups().add(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-            userGroup.setParent(this);
-        }
-        if (userGroup.isUser()) {
-            getUsers().add(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-            userGroup.setParent(this);
-        }
-
-    }
-
-    /**
-     * Creates a new <code>GroupElement</code>
-     * nested in this <code>GroupElement<code>
-     *
-     * @param name the name of the sub group
-     */
-    public GroupElement createSubGroup(String name) {
-        GroupElement newGroup = new GroupElement(name, this);
-        add(newGroup);
-        return newGroup;
-    }
-
-    /**
-     * Creates a new <code>UserElement</code>
-     *
-     * @param the name of the user element
-     */
-    public UserElement createUser(String name) {
-        UserElement newUser = new UserElement(name, this);
-        add(newUser);
-        return newUser;
-    }
-
-    /**
-     * Deletes an OrganizationElement from this GroupElement.
-     *
-     * @param userGroup the Organization Element
-     */
-    public void delete(OrganizationElement userGroup) {
-        if (userGroup.isUser() || userGroup.isGroup()) {
-            getContents().remove(userGroup);
-        }
-        if (userGroup.isGroup()) {
-            getSubGroups().remove(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-        }
-        if (userGroup.isUser()) {
-            getUsers().remove(userGroup);
-            // synchronizes backpointer of userGroup: defensive
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object o) {
-        return getContents().toArray();
-    }
-
-    /**
-     * Returns the content
-     */
-    private Vector getContents() {
-        if (contents == null)
-            contents = new Vector();
-        return contents;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the error message
-     */
-    public String getErrorMessage() {
-        return null;
-    }
-
-    /**
-     * Returns the subgroups
-     */
-    private Vector getSubGroups() {
-        if (subGroups == null)
-            subGroups = new Vector();
-        return subGroups;
-    }
-
-    /**
-     * Returns the users
-     */
-    private Vector getUsers() {
-        if (users == null)
-            users = new Vector();
-        return users;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on OrganizationElement
-     */
-    public boolean isGroup() {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getForeground(java.lang.Object)
-     */
-    public RGB getForeground(Object element) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getBackground(java.lang.Object)
-     */
-    public RGB getBackground(Object element) {
-        return null;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java
deleted file mode 100644
index 6ee8086..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/IUserConstants.java
+++ /dev/null
@@ -1,27 +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.ui.examples.propertysheet;
-
-/**
- * This interface contains constants for use only within the
- * property sheet example.
- */
-public interface IUserConstants {
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.propertysheet"; //$NON-NLS-1$
-
-    public static final String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
-
-    public static final String P_CONTENT_OUTLINE = PREFIX + "content_outline"; //$NON-NLS-1$
-
-    public static final String EXTENSION = "usr"; //$NON-NLS-1$
-
-    public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java
deleted file mode 100644
index 41c020a..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/MessageUtil.java
+++ /dev/null
@@ -1,57 +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.ui.examples.propertysheet;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps with managing messages.
- */
-/* package */class MessageUtil {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.examples.propertysheet.messages";//$NON-NLS-1$
-
-    private static ResourceBundle fgResourceBundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private MessageUtil() {
-    }
-
-    /**
-     * Returns the formatted message for the given key in
-     * the resource bundle. 
-     *
-     * @param key the resource name
-     * @param args the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in
-     * the resource bundle. If there isn't any value under
-     * the given key, the key is returned, surrounded by '!'s.
-     *
-     * @param key the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return fgResourceBundle.getString(key);
-        } catch (MissingResourceException e) {
-            return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java
deleted file mode 100644
index a3e76ca..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/Name.java
+++ /dev/null
@@ -1,243 +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.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * Example IPropertySource whose value as well as its children are editable.
- */
-public class Name implements IPropertySource {
-    private String firstName = ""; //$NON-NLS-1$
-
-    private String lastName = ""; //$NON-NLS-1$
-
-    private String initial = ""; //$NON-NLS-1$
-
-    // property unique keys
-    public static String P_ID_FIRSTNAME = "Name.FirstName"; //$NON-NLS-1$
-
-    public static String P_ID_LASTNAME = "Name.LastName"; //$NON-NLS-1$
-
-    public static String P_ID_MIDDLENAME = "Name.Middle"; //$NON-NLS-1$
-
-    // property display keys
-    public static String P_FIRSTNAME = MessageUtil.getString("FirstName"); //$NON-NLS-1$
-
-    public static String P_LASTNAME = MessageUtil.getString("LastName"); //$NON-NLS-1$
-
-    public static String P_MIDDLENAME = MessageUtil.getString("Middle"); //$NON-NLS-1$
-
-    // default values
-    //
-    private static final String FIRSTNAME_DEFAULT = null;
-
-    private static final String LASTNAME_DEFAULT = null;
-
-    private static final String MIDDLENAME_DEFAULT = null;
-
-    public static final String P_DESCRIPTORS = "properties"; //$NON-NLS-1$
-
-    static private Vector descriptors;
-    static {
-        descriptors = new Vector();
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_FIRSTNAME,
-                P_FIRSTNAME));
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_LASTNAME,
-                P_LASTNAME));
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_MIDDLENAME,
-                P_MIDDLENAME));
-    }
-
-    /**
-     * Creates a new Name.
-     * @param name String in the form "firstname initial lastname"
-     */
-    public Name(String name) {
-        int index1, index2;
-        index1 = name.indexOf(' ');
-        if (index1 < 0)
-            index1 = name.length();
-        index2 = name.lastIndexOf(' ');
-        if (index2 > 0)
-            lastName = name.substring(index2 + 1);
-        firstName = name.substring(0, index1);
-        if (index1 < index2)
-            initial = name.substring(index1 + 1, index2);
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the first name
-     */
-    private String getFirstName() {
-        return firstName;
-    }
-
-    /**
-     * Returns the initial
-     */
-    private String getInitial() {
-        return initial;
-    }
-
-    /**
-     * Returns the last name
-     */
-    private String getLastName() {
-        return lastName;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_FIRSTNAME returns String, firstname
-     * 	2) P_LASTNAME returns String, lastname
-     *  3) P_MIDDLENAME returns String, middle
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (P_ID_FIRSTNAME.equals(propKey))
-            return getFirstName();
-        if (P_ID_LASTNAME.equals(propKey))
-            return getLastName();
-        if (P_ID_MIDDLENAME.equals(propKey))
-            return getInitial();
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object key) {
-        if (key.equals(P_ID_FIRSTNAME))
-            return getFirstName() != FIRSTNAME_DEFAULT;
-        if (key.equals(P_ID_LASTNAME))
-            return getLastName() != LASTNAME_DEFAULT;
-        if (key.equals(P_ID_MIDDLENAME))
-            return getInitial() != MIDDLENAME_DEFAULT;
-        return false;
-    }
-
-    /**
-     * Implemented as part of IPropertySource framework. Sets the specified property 
-     * to its default value.
-     * 
-     * @see 	IPropertySource#resetPropertyValue(Object)
-     * @param 	property 	The property to reset.
-     */
-    public void resetPropertyValue(Object property) {
-        if (P_ID_FIRSTNAME.equals(property)) {
-            setFirstName(FIRSTNAME_DEFAULT);
-            return;
-        }
-        if (P_ID_LASTNAME.equals(property)) {
-            setLastName(LASTNAME_DEFAULT);
-            return;
-        }
-        if (P_ID_MIDDLENAME.equals(property)) {
-            setInitial(MIDDLENAME_DEFAULT);
-            return;
-        }
-    }
-
-    /**
-     * Sets the first name
-     */
-    private void setFirstName(String newFirstName) {
-        firstName = newFirstName;
-    }
-
-    /**
-     * Sets the initial
-     */
-    private void setInitial(String newInitial) {
-        initial = newInitial;
-    }
-
-    /**
-     * Sets the last name
-     */
-    private void setLastName(String newLastName) {
-        lastName = newLastName;
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     *	1) P_FIRST, expects String, sets the firstname of this OrganizationElement
-     *  2) P_MIDDLENAME, expects String, sets middlename of this OrganizationElement
-     *  3) P_LASTNAME, expects String, sets lastname of this OrganizationElement
-     */
-    public void setPropertyValue(Object propName, Object val) {
-        if (P_ID_FIRSTNAME.equals(propName)) {
-            setFirstName((String) val);
-            return;
-        }
-        if (P_ID_LASTNAME.equals(propName)) {
-            setLastName((String) val);
-            return;
-        }
-        if (P_ID_MIDDLENAME.equals(propName)) {
-            setInitial((String) val);
-            return;
-        }
-    }
-
-    /**
-     * The value as displayed in the Property Sheet. Will not print default values
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer outStringBuffer = new StringBuffer();
-        if (getFirstName() != FIRSTNAME_DEFAULT) {
-            outStringBuffer.append(getFirstName());
-            outStringBuffer.append(" "); //$NON-NLS-1$
-        }
-        if (getInitial() != MIDDLENAME_DEFAULT) {
-            outStringBuffer.append(getInitial());
-            outStringBuffer.append(" "); //$NON-NLS-1$
-        }
-        if (getLastName() != LASTNAME_DEFAULT) {
-            outStringBuffer.append(getLastName());
-        }
-
-        return outStringBuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java
deleted file mode 100644
index d536e8d..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/OrganizationElement.java
+++ /dev/null
@@ -1,203 +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.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * An Organization Element
- */
-public abstract class OrganizationElement implements IAdaptable,
-        IPropertySource, IWorkbenchAdapter {
-    //
-    private GroupElement parent;
-
-    private String name;
-
-    private ImageDescriptor imageDescriptor;
-
-    //
-    private static Vector descriptors;
-    static {
-        descriptors = new Vector();
-        PropertyDescriptor name = new TextPropertyDescriptor(
-                IBasicPropertyConstants.P_TEXT, MessageUtil.getString("name")); //$NON-NLS-1$
-        descriptors.addElement(name);
-    }
-
-    /**
-     * Constructor.
-     * Creates a new OrganizationElement within the passed parent GroupElement,
-     *
-     * @param name the name 
-     * @param parent the parent
-     */
-    OrganizationElement(String name, GroupElement parent) {
-        this.name = name;
-        this.parent = parent;
-    }
-
-    /**
-     * Deletes this OrganizationElement from its parentGroup
-     */
-    public void delete() {
-        parent.delete(this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IPropertySource.class) {
-            return this;
-        }
-        if (adapter == IWorkbenchAdapter.class) {
-            return this;
-        }
-        return null;
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        return imageDescriptor;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public String getLabel(Object o) {
-        return getName();
-    }
-
-    /**
-     * Returns the name
-     */
-    String getName() {
-        return name;
-    }
-
-    /**
-     * Returns the parent
-     */
-    public Object getParent(Object o) {
-        return parent;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>OrganizationElement</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_NAME returns String, name of this element
-     *  this property key is defined in <code>IBasicPropertyConstants</code>
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(IBasicPropertyConstants.P_TEXT))
-            return getName();
-        return null;
-    }
-
-    /**
-     * Hook. Implemented by <code>GroupElement</code> for use instead of instanceof
-     * @return boolean
-     */
-    public boolean isGroup() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        return false;
-    }
-
-    /**
-     * Hook. Implemented by <code>UserElement</code> for use instead of instanceof
-     * @return boolean
-     */
-    public boolean isUser() {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-    }
-
-    /**
-     * Sets the image descriptor
-     */
-    void setImageDescriptor(ImageDescriptor desc) {
-        imageDescriptor = desc;
-    }
-
-    /**
-     * Sets the name
-     */
-    void setName(String newName) {
-        name = newName;
-    }
-
-    /**
-     * Sets this instance's parent back pointer.
-     */
-    void setParent(GroupElement newParent) {
-        parent = newParent;
-    }
-
-    /** 
-     * The <code>OrganizationElement</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     * defines the following Setable properties
-     *
-     *	1) P_NAME, expects String, sets the name of this OrganizationElement
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (name.equals(IBasicPropertyConstants.P_TEXT)) {
-            setName((String) value);
-            return;
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java
deleted file mode 100644
index 49b9773..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PopupMenuActionDelegate.java
+++ /dev/null
@@ -1,48 +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.ui.examples.propertysheet;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Action delegate for handling popup menu actions.
- */
-public class PopupMenuActionDelegate implements IObjectActionDelegate {
-
-    private IWorkbenchPart part;
-
-    /** (non-Javadoc)
-     * Method declared on IDropActionDelegate
-     */
-    public void run(IAction action) {
-        MessageDialog.openInformation(this.part.getSite().getShell(),
-                MessageUtil.getString("Property_Sheet_Example"), //$NON-NLS-1$
-                MessageUtil.getString("Popup_Menu_Action_executed")); //$NON-NLS-1$
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        //Ignored for this example
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IObjectActionDelegate
-     */
-    public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-        this.part = targetPart;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java
deleted file mode 100644
index b90da25..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetContentOutlinePage.java
+++ /dev/null
@@ -1,64 +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.ui.examples.propertysheet;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-
-/**
- * Page for the content outliner
- */
-public class PropertySheetContentOutlinePage extends ContentOutlinePage {
-
-    private IAdaptable model;
-
-    /**
-     * Create a new instance of the reciver using adapatable
-     * as the model.
-     */
-    public PropertySheetContentOutlinePage(IAdaptable adaptable) {
-        this.model = adaptable;
-    }
-
-    /** 
-     * Creates the control and registers the popup menu for this page
-     * Menu id "org.eclipse.ui.examples.propertysheet.outline"
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        TreeViewer viewer = getTreeViewer();
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.setInput(this.model);
-        viewer.expandAll();
-
-        // Configure the context menu.
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-                + "-end")); //$NON-NLS-1$
-
-        Menu menu = menuMgr.createContextMenu(viewer.getTree());
-        viewer.getTree().setMenu(menu);
-        // Be sure to register it so that other plug-ins can add actions.
-        getSite()
-                .registerContextMenu(
-                        "org.eclipse.ui.examples.propertysheet.outline", menuMgr, viewer); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java
deleted file mode 100644
index df93199..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/PropertySheetPlugin.java
+++ /dev/null
@@ -1,41 +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
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74526)
- *******************************************************************************/
-package org.eclipse.ui.examples.propertysheet;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * This is the top-level class of the property sheet example.
- *
- * @see AbstractUIPlugin for additional information on UI plugins
- */
-public class PropertySheetPlugin extends AbstractUIPlugin {
-    // Default instance of the receiver
-    private static PropertySheetPlugin inst;
-
-    /**
-     * Create the PropertySheet plugin and cache its default instance
-     */
-    public PropertySheetPlugin() {
-        if (inst == null)
-            inst = this;
-    }
-
-    /**
-     * Returns the plugin singleton.
-     *
-     * @return the default PropertySheetPlugin instance
-     */
-    static public PropertySheetPlugin getDefault() {
-        return inst;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java
deleted file mode 100644
index 8202b75..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/StreetAddress.java
+++ /dev/null
@@ -1,275 +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.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * PropertySource containing street information pertenant to Address
- */
-public class StreetAddress implements IPropertySource {
-
-    //properties
-    private Integer buildNo;
-
-    private String aptBox;
-
-    private String streetName;
-
-    //default property values
-    private static final Integer BUILD_NO_DEFAULT = new Integer(0);
-
-    private static final String APTBOX_DEFAULT = MessageUtil
-            .getString("unspecified"); //$NON-NLS-1$
-
-    private static final String STREETNAME_DEFAULT = MessageUtil
-            .getString("unspecified"); //$NON-NLS-1$
-
-    //property unique keys
-    public static final String P_ID_BUILD_NO = "Street.buildingNo"; //$NON-NLS-1$
-
-    public static final String P_ID_APTBOX = "Street.aptNo"; //$NON-NLS-1$
-
-    public static final String P_ID_STREET = "Street.street"; //$NON-NLS-1$
-
-    //property display keys
-    public static final String P_BUILD_NO = MessageUtil
-            .getString("building_number"); //$NON-NLS-1$
-
-    public static final String P_APTBOX = MessageUtil
-            .getString("apt.no_or_box.no"); //$NON-NLS-1$
-
-    public static final String P_STREET = MessageUtil.getString("street"); //$NON-NLS-1$
-
-    //
-    private static Vector descriptors;
-
-    static {
-        descriptors = new Vector();
-        descriptors.addElement(new TextPropertyDescriptor(P_ID_BUILD_NO,
-                P_BUILD_NO));
-        descriptors
-                .addElement(new TextPropertyDescriptor(P_ID_APTBOX, P_APTBOX));
-        descriptors
-                .addElement(new TextPropertyDescriptor(P_ID_STREET, P_STREET));
-    }
-
-    /**
-     * Street Default Constructor.
-     */
-    public StreetAddress() {
-        super();
-    }
-
-    /**
-     * Convenience Street constructor. AptBox set to default
-     */
-    public StreetAddress(int buildNo, String streetName) {
-        super();
-        setBuildNo(new Integer(buildNo));
-        setStreetName(streetName);
-    }
-
-    /**
-     * Convenience Street constructor.
-     */
-    public StreetAddress(int buildNo, String aptBox, String streetName) {
-        super();
-        setBuildNo(new Integer(buildNo));
-        setAptBox(aptBox);
-        setStreetName(streetName);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object
-     */
-    public boolean equals(Object ob) {
-        return toString().equals(ob.toString());
-    }
-
-    /**
-     * the appartment number
-     */
-    private String getAptBox() {
-        if (aptBox == null)
-            aptBox = APTBOX_DEFAULT;
-        return aptBox;
-    }
-
-    /**
-     * Returns the building number
-     */
-    private Integer getBuildNo() {
-        if (buildNo == null)
-            buildNo = BUILD_NO_DEFAULT;
-        return buildNo;
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    private static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     * 	1) P_BUILD_NO returns java.lang.Integer
-     * 	2) P_APTBOX returns java.lang.String
-     *	3) P_STREET returns java.lang.String
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_BUILD_NO))
-            return getBuildNo().toString();
-        if (propKey.equals(P_ID_APTBOX))
-            return getAptBox();
-        if (propKey.equals(P_ID_STREET))
-            return getStreetName();
-        return null;
-    }
-
-    /**
-     * Returns the street name
-     */
-    private String getStreetName() {
-        if (streetName == null)
-            streetName = STREETNAME_DEFAULT;
-        return streetName;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Object
-     */
-    public int hashCode() {
-        return toString().hashCode();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (property.equals(P_ID_BUILD_NO))
-            return getBuildNo() != BUILD_NO_DEFAULT;
-        if (property.equals(P_ID_APTBOX))
-            return getAptBox() != APTBOX_DEFAULT;
-        if (property.equals(P_ID_STREET))
-            return getStreetName() != STREETNAME_DEFAULT;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (property.equals(P_ID_BUILD_NO)) {
-            setBuildNo(BUILD_NO_DEFAULT);
-            return;
-        }
-        if (property.equals(P_ID_APTBOX)) {
-            setAptBox(APTBOX_DEFAULT);
-            return;
-        }
-        if (property.equals(P_ID_STREET)) {
-            setStreetName(STREETNAME_DEFAULT);
-            return;
-        }
-    }
-
-    /**
-     * Sets the appartment number
-     */
-    private void setAptBox(String newAptBox) {
-        aptBox = newAptBox;
-    }
-
-    /**
-     * Sets the building number
-     */
-    private void setBuildNo(Integer newBuildNo) {
-        buildNo = newBuildNo;
-    }
-
-    /** 
-     * The <code>Name</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     * 	1) P_BUILD_NO expects java.lang.Integer
-     * 	2) P_APTBOX expects java.lang.String
-     *	3) P_STREET expects java.lang.String
-     */
-    public void setPropertyValue(Object name, Object value) {
-        if (name.equals(P_ID_BUILD_NO)) {
-            try {
-                setBuildNo(new Integer(Integer.parseInt((String) value)));
-            } catch (NumberFormatException e) {
-                setBuildNo(BUILD_NO_DEFAULT);
-            }
-            return;
-        }
-        if (name.equals(P_ID_APTBOX)) {
-            setAptBox((String) value);
-            return;
-        }
-        if (name.equals(P_ID_STREET)) {
-            setStreetName((String) value);
-            return;
-        }
-    }
-
-    /**
-     * Sets the street name
-     */
-    private void setStreetName(String newStreetName) {
-        streetName = newStreetName;
-    }
-
-    /**
-     * The value as displayed in the Property Sheet. Will not print default values
-     * @return java.lang.String
-     */
-    public String toString() {
-        StringBuffer outStringBuffer = new StringBuffer();
-        if (!getAptBox().equals(APTBOX_DEFAULT)) {
-            outStringBuffer.append(getAptBox());
-            outStringBuffer.append(", "); //$NON-NLS-1$
-        }
-        if (!getBuildNo().equals(BUILD_NO_DEFAULT)) {
-            outStringBuffer.append(getBuildNo());
-            outStringBuffer.append(" "); //$NON-NLS-1$
-        }
-        if (!getStreetName().equals(STREETNAME_DEFAULT)) {
-            outStringBuffer.append(getStreetName());
-        }
-        return outStringBuffer.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java
deleted file mode 100644
index 9c726b4..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserEditor.java
+++ /dev/null
@@ -1,74 +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.ui.examples.propertysheet;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-/**
- * This class implements the User editor.
- */
-public class UserEditor extends TextEditor {
-    private ContentOutlinePage userContentOutline;
-
-    /**
-     * UserEditor default Constructor
-     */
-    public UserEditor() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on WorkbenchPart
-     */
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-        getSourceViewer().setDocument(
-                new Document(MessageUtil.getString("Editor_instructions"))); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter.equals(IContentOutlinePage.class)) {
-            return getContentOutline();
-        }
-        if (adapter.equals(IPropertySheetPage.class)) {
-            return getPropertySheet();
-        }
-        return super.getAdapter(adapter);
-    }
-
-    /**
-     * Returns the content outline.
-     */
-    protected ContentOutlinePage getContentOutline() {
-        if (userContentOutline == null) {
-            //Create a property outline page using the parsed result of passing in the document provider.
-            userContentOutline = new PropertySheetContentOutlinePage(
-                    new UserFileParser().parse(getDocumentProvider()));
-        }
-        return userContentOutline;
-    }
-
-    /**
-     * Returns the property sheet.
-     */
-    protected IPropertySheetPage getPropertySheet() {
-        return new PropertySheetPage();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java
deleted file mode 100644
index fa5cc4a..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserElement.java
+++ /dev/null
@@ -1,615 +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.ui.examples.propertysheet;
-
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.ICellEditorValidator;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.views.properties.ColorPropertyDescriptor;
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySheetEntry;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- * A User Element
- */
-public class UserElement extends OrganizationElement {
-
-    // Properties
-    private Name fullName;
-
-    private Address address;
-
-    private String phoneNumber;
-
-    private EmailAddress emailAddress;
-
-    private Boolean coop;
-
-    private Birthday birthday;
-
-    private Float salary;
-
-    private RGB hairColor;
-
-    private RGB eyeColor;
-
-    // Property default values
-    private Name fullName_Default;
-
-    private Address address_Default;
-
-    private String phoneNumber_Default = "555-1111"; //$NON-NLS-1$
-
-    private EmailAddress emailAddress_Default;
-
-    private Boolean coop_Default;
-
-    private Birthday birthday_Default;
-
-    private Float salary_Default;
-
-    private RGB hairColor_Default;
-
-    private RGB eyeColor_Default;
-
-    // Property unique keys
-    public static final String P_ID_PHONENUMBER = "User.phonenumber"; //$NON-NLS-1$
-
-    public static final String P_ID_ADDRESS = "User.address"; //$NON-NLS-1$
-
-    public static final String P_ID_FULLNAME = "User.fullname"; //$NON-NLS-1$
-
-    public static final String P_ID_EMAIL = "User.email"; //$NON-NLS-1$
-
-    public static final String P_ID_COOP = "User.coop student"; //$NON-NLS-1$
-
-    public static final String P_ID_BDAY = "User.birthday"; //$NON-NLS-1$
-
-    public static final String P_ID_SALARY = "User.salary"; //$NON-NLS-1$
-
-    public static final String P_ID_HAIRCOLOR = "User.haircolor"; //$NON-NLS-1$
-
-    public static final String P_ID_EYECOLOR = "User.eyecolor"; //$NON-NLS-1$
-
-    // Property display keys
-    public static final String P_PHONENUMBER = MessageUtil
-            .getString("phonenumber"); //$NON-NLS-1$
-
-    public static final String P_ADDRESS = MessageUtil.getString("address"); //$NON-NLS-1$
-
-    public static final String P_FULLNAME = MessageUtil.getString("fullname"); //$NON-NLS-1$
-
-    public static final String P_EMAIL = MessageUtil.getString("email"); //$NON-NLS-1$
-
-    public static final String P_COOP = MessageUtil.getString("coop_student"); //$NON-NLS-1$
-
-    public static final String P_BDAY = MessageUtil.getString("birthday"); //$NON-NLS-1$
-
-    public static final String P_SALARY = MessageUtil.getString("salary"); //$NON-NLS-1$
-
-    public static final String P_HAIRCOLOR = MessageUtil.getString("haircolor"); //$NON-NLS-1$
-
-    public static final String P_EYECOLOR = MessageUtil.getString("eyecolor"); //$NON-NLS-1$
-
-    // Help context ids
-    private static final String PHONE_NUMBER_CONTEXT = "org.eclipse.ui.examples.propertysheet.phone_number_context"; //$NON-NLS-1$
-
-    private static final String ADDRESS_CONTEXT = "org.eclipse.ui.examples.propertysheet.address_context"; //$NON-NLS-1$
-
-    private static final String FULL_NAME_CONTEXT = "org.eclipse.ui.examples.propertysheet.full_name_context"; //$NON-NLS-1$
-
-    private static final String EMAIL_CONTEXT = "org.eclipse.ui.examples.propertysheet.email_context"; //$NON-NLS-1$
-
-    private static final String COOP_CONTEXT = "org.eclipse.ui.examples.propertysheet.coop_context"; //$NON-NLS-1$
-
-    private static final String BIRTHDAY_CONTEXT = "org.eclipse.ui.examples.propertysheet.birthday_context"; //$NON-NLS-1$
-
-    private static final String SALARY_CONTEXT = "org.eclipse.ui.examples.propertysheet.salary_context"; //$NON-NLS-1$
-
-    private static final String HAIR_COLOR__CONTEXT = "org.eclipse.ui.examples.propertysheet.hair_color_context"; //$NON-NLS-1$
-
-    private static final String EYE_COLOR_CONTEXT = "org.eclipse.ui.examples.propertysheet.eye_color_context"; //$NON-NLS-1$
-
-    // Property Category
-    public static final String P_CONTACTINFO = MessageUtil.getString("contact"); //$NON-NLS-1$
-
-    public static final String P_PERSONELINFO = MessageUtil
-            .getString("personel"); //$NON-NLS-1$
-
-    public static final String P_PERSONALINFO = MessageUtil
-            .getString("personal"); //$NON-NLS-1$
-
-    // Property Values
-    public static final Integer P_VALUE_TRUE = new Integer(0);
-
-    public static final Integer P_VALUE_FALSE = new Integer(1);
-
-    public static final String P_VALUE_TRUE_LABEL = MessageUtil
-            .getString("true"); //$NON-NLS-1$
-
-    public static final String P_VALUE_FALSE_LABEL = MessageUtil
-            .getString("false"); //$NON-NLS-1$
-
-    static private class BooleanLabelProvider extends LabelProvider {
-        public String getText(Object element) {
-            String[] values = new String[] { P_VALUE_TRUE_LABEL,
-                    P_VALUE_FALSE_LABEL };
-            return values[((Integer) element).intValue()];
-        }
-    }
-
-    //
-    static private Vector descriptors;
-    static {
-        descriptors = new Vector();
-        PropertyDescriptor propertyDescriptor;
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_PHONENUMBER,
-                P_PHONENUMBER);
-        propertyDescriptor.setCategory(P_CONTACTINFO);
-        propertyDescriptor.setHelpContextIds(PHONE_NUMBER_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new PropertyDescriptor(P_ID_ADDRESS, P_ADDRESS);
-        propertyDescriptor.setCategory(P_CONTACTINFO);
-        propertyDescriptor.setHelpContextIds(ADDRESS_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_EMAIL, P_EMAIL);
-        propertyDescriptor.setCategory(P_CONTACTINFO);
-        propertyDescriptor.setHelpContextIds(EMAIL_CONTEXT);
-        propertyDescriptor.setValidator(new EmailAddressValidator());
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_FULLNAME,
-                P_FULLNAME);
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        propertyDescriptor.setHelpContextIds(FULL_NAME_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new PropertyDescriptor(P_ID_BDAY, P_BDAY);
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        propertyDescriptor.setHelpContextIds(BIRTHDAY_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new ComboBoxPropertyDescriptor(P_ID_COOP, P_COOP,
-                new String[] { P_VALUE_TRUE_LABEL, P_VALUE_FALSE_LABEL });
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        propertyDescriptor.setHelpContextIds(COOP_CONTEXT);
-        propertyDescriptor.setLabelProvider(new BooleanLabelProvider());
-        descriptors.addElement(propertyDescriptor);
-
-        ///
-        propertyDescriptor = new TextPropertyDescriptor(P_ID_SALARY, P_SALARY);
-        //add custom validator to propertyDescriptor limiting salary values to be
-        //greator than zero
-        propertyDescriptor.setHelpContextIds(new Object[] { SALARY_CONTEXT });
-        propertyDescriptor
-                .setFilterFlags(new String[] { IPropertySheetEntry.FILTER_ID_EXPERT });
-        propertyDescriptor.setValidator(new ICellEditorValidator() {
-            public String isValid(Object value) {
-                if (value == null)
-                    return MessageUtil.getString("salary_is_invalid"); //$NON-NLS-1$
-                //
-                Float trySalary;
-                try {
-                    trySalary = new Float(Float.parseFloat((String) value));
-                } catch (NumberFormatException e) {
-                    return MessageUtil.getString("salary_is_invalid"); //$NON-NLS-1$
-                }
-                if (trySalary.floatValue() < 0.0)
-                    return MessageUtil
-                            .getString("salary_must_be_greator_than_zero"); //$NON-NLS-1$
-                return null;
-            }
-        });
-        propertyDescriptor.setCategory(P_PERSONELINFO);
-        descriptors.addElement(propertyDescriptor);
-
-        /// HairColor
-        propertyDescriptor = new ColorPropertyDescriptor(P_ID_HAIRCOLOR,
-                P_HAIRCOLOR);
-        propertyDescriptor.setCategory(P_PERSONALINFO);
-        propertyDescriptor.setHelpContextIds(HAIR_COLOR__CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        /// EyeColor
-        propertyDescriptor = new ColorPropertyDescriptor(P_ID_EYECOLOR,
-                P_EYECOLOR);
-        propertyDescriptor.setCategory(P_PERSONALINFO);
-        propertyDescriptor.setHelpContextIds(EYE_COLOR_CONTEXT);
-        descriptors.addElement(propertyDescriptor);
-
-        //gets descriptors from parent, warning name-space collision may occur
-        Vector parentDescriptors = OrganizationElement.getDescriptors();
-        for (int i = 0; i < parentDescriptors.size(); i++) {
-            descriptors.addElement(parentDescriptors.elementAt(i));
-        }
-    }
-
-    /**
-     * Constructor. Default visibility only called from GroupElement.createSubGroup()
-     * Creates a new UserElement within the passed parent GroupElement,
-     * *
-     * @param name the name 
-     * @param parent the parent
-     */
-    UserElement(String name, GroupElement parent) {
-        super(name, parent);
-    }
-
-    /**
-     * Returns the address
-     */
-    private Address getAddress() {
-        if (address == null)
-            address = new Address();
-        return address;
-    }
-
-    /**
-     * Returns the birthday
-     */
-    private Birthday getBirthday() {
-        if (birthday == null)
-            birthday = new Birthday();
-        return birthday;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object o) {
-        return new Object[0];
-    }
-
-    /**
-     * Returns the coop
-     */
-    private Boolean getCoop() {
-        if (coop == null)
-            coop = new Boolean(false);
-        return coop;
-    }
-
-    /**
-     * Returns the descriptors
-     */
-    static Vector getDescriptors() {
-        return descriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this.toString();
-    }
-
-    /**
-     * Returns the email address
-     */
-    EmailAddress getEmailAddress() {
-        if (emailAddress == null)
-            emailAddress = new EmailAddress();
-        return emailAddress;
-    }
-
-    /**
-     * Returns the eye color
-     */
-    private RGB getEyeColor() {
-        if (eyeColor == null)
-            eyeColor = new RGB(60, 60, 60);
-        return eyeColor;
-    }
-
-    /**
-     * Returns the full name
-     */
-    private Name getFullName() {
-        if (fullName == null)
-            fullName = new Name(getName());
-        return fullName;
-    }
-
-    /**
-     * Returns the hair color
-     */
-    private RGB getHairColor() {
-        if (hairColor == null)
-            hairColor = new RGB(255, 255, 255);
-        return hairColor;
-    }
-
-    /**
-     * Returns the phone number
-     */
-    private String getPhoneNumber() {
-        return phoneNumber;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        return (IPropertyDescriptor[]) getDescriptors().toArray(
-                new IPropertyDescriptor[getDescriptors().size()]);
-    }
-
-    /** 
-     * The <code>Userment</code> implementation of this
-     * <code>IPropertySource</code> method returns the following properties
-     *
-     *	1) P_ADDRESS returns Address (IPropertySource), the address of this user
-     * 	2) P_FULLNAME returns Name (IPropertySource), the full name of this user
-     *  3) P_PHONENUMBER returns String, the phone number of this user
-     *  4) P_EMAIL returns EmailAddress (IPropertySource), the email address of this user
-     *  5) P_COOP returns Boolean, whether the individual is a coop student or not
-     *  6) P_BDAY returns Birthday
-     *  7) P_SALARY return java.lang.Float
-     *  8) P_HAIRCOLOR, expects RGB
-     *  9) P_EYECOLOR, expects RGB
-     */
-    public Object getPropertyValue(Object propKey) {
-        if (propKey.equals(P_ID_ADDRESS))
-            return getAddress();
-        if (propKey.equals(P_ID_FULLNAME))
-            return getFullName();
-        if (propKey.equals(P_ID_PHONENUMBER))
-            return getPhoneNumber();
-        if (propKey.equals(P_ID_EMAIL))
-            return getEmailAddress();
-        if (propKey.equals(P_ID_COOP))
-            return getCoop().equals(Boolean.TRUE) ? P_VALUE_TRUE
-                    : P_VALUE_FALSE;
-        if (propKey.equals(P_ID_BDAY))
-            return getBirthday();
-        if (propKey.equals(P_ID_SALARY))
-            return getSalary().toString();
-        if (propKey.equals(P_ID_HAIRCOLOR))
-            return getHairColor();
-        if (propKey.equals(P_ID_EYECOLOR))
-            return getEyeColor();
-        return super.getPropertyValue(propKey);
-    }
-
-    /**
-     * Returns the salary
-     */
-    private Float getSalary() {
-        if (salary == null)
-            salary = new Float(0);
-        return salary;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        if (property.equals(P_ID_ADDRESS))
-            return getAddress() != address_Default;
-        if (property.equals(P_ID_FULLNAME))
-            return getFullName() != fullName_Default;
-        if (property.equals(P_ID_PHONENUMBER))
-            return getPhoneNumber() != phoneNumber_Default;
-        if (property.equals(P_ID_EMAIL))
-            return getEmailAddress() != emailAddress_Default;
-        if (property.equals(P_ID_COOP))
-            return getCoop() != coop_Default;
-        if (property.equals(P_ID_BDAY))
-            return getBirthday() != birthday_Default;
-        if (property.equals(P_ID_SALARY))
-            return getSalary() != salary_Default;
-        if (property.equals(P_ID_HAIRCOLOR))
-            return getHairColor() != hairColor_Default;
-        if (property.equals(P_ID_EYECOLOR))
-            return getEyeColor() != eyeColor_Default;
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on OrganizationElement
-     */
-    public boolean isUser() {
-        return true;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        if (property.equals(P_ID_ADDRESS)) {
-            setAddress(address_Default);
-            return;
-        }
-        if (property.equals(P_ID_FULLNAME)) {
-            setFullName(fullName_Default);
-            return;
-        }
-        if (property.equals(P_ID_PHONENUMBER)) {
-            setPhoneNumber(phoneNumber_Default);
-            return;
-        }
-        if (property.equals(P_ID_EMAIL)) {
-            setEmailAddress(emailAddress_Default);
-            return;
-        }
-        if (property.equals(P_ID_COOP)) {
-            setCoop(coop_Default);
-        }
-        if (property.equals(P_ID_BDAY)) {
-            setBirthday(birthday_Default);
-            return;
-        }
-        if (property.equals(P_ID_SALARY)) {
-            setSalary(salary_Default);
-            return;
-        }
-        if (property.equals(P_ID_HAIRCOLOR)) {
-            setHairColor(hairColor_Default);
-            return;
-        }
-        if (property.equals(P_ID_EYECOLOR)) {
-            setEyeColor(eyeColor_Default);
-            return;
-        }
-        super.resetPropertyValue(property);
-    }
-
-    /**
-     * Sets the address
-     */
-    public void setAddress(Address newAddress) {
-        address = newAddress;
-    }
-
-    /**
-     * Sets the birthday
-     */
-    public void setBirthday(Birthday newBirthday) {
-        birthday = new Birthday();
-    }
-
-    /**
-     * Sets the coop
-     */
-    public void setCoop(Boolean newCoop) {
-        coop = newCoop;
-    }
-
-    /**
-     *Sets the email address
-     */
-    public void setEmailAddress(EmailAddress newEmailAddress) {
-        emailAddress = newEmailAddress;
-    }
-
-    /**
-     * Sets eye color
-     */
-    public void setEyeColor(RGB newEyeColor) {
-        eyeColor = newEyeColor;
-    }
-
-    /**
-     * Sets full name
-     */
-    public void setFullName(Name newFullName) {
-        fullName = newFullName;
-    }
-
-    /**
-     * Sets hair color
-     */
-    public void setHairColor(RGB newHairColor) {
-        hairColor = newHairColor;
-    }
-
-    /**
-     * Sets phone number
-     */
-    public void setPhoneNumber(String newPhoneNumber) {
-        phoneNumber = newPhoneNumber;
-    }
-
-    /** 
-     * The <code>OrganizationElement</code> implementation of this
-     * <code>IPropertySource</code> method 
-     * defines the following Setable properties
-     *
-     *	1) P_ADDRESS, expects Address
-     *	2) P_FULLNAME, expects Name
-     *	3) P_PHONENUMBER, expects String
-     *  4) P_EMAIL, expects EmailAddress.
-     *  5) P_BOOLEAN, expects Boolean, whether the individual is a coop student or not
-     *  6) P_BDAY, expects Birthday
-     *  7) P_SALARY, expects java.lang.Float
-     *  8) P_HAIRCOLOR, expects RGB
-     *  9) P_EYECOLOR, expects RGB
-     */
-    public void setPropertyValue(Object propKey, Object val) {
-        // need to convert from String to domain objects
-        if (propKey.equals(P_ID_ADDRESS)) {
-            //setAddress((Address)val);
-            return;
-        }
-        if (propKey.equals(P_ID_FULLNAME)) {
-            setFullName(new Name((String) val));
-            return;
-        }
-        if (propKey.equals(P_ID_PHONENUMBER)) {
-            setPhoneNumber((String) val);
-            return;
-        }
-        if (propKey.equals(P_ID_EMAIL)) {
-            setEmailAddress(new EmailAddress((String) val));
-            return;
-        }
-        if (propKey.equals(P_ID_COOP)) {
-            setCoop(((Integer) val).equals(P_VALUE_TRUE) ? Boolean.TRUE
-                    : Boolean.FALSE);
-        }
-        if (propKey.equals(P_ID_BDAY)) {
-            //setBirthday((Birthday)val);
-            return;
-        }
-        if (propKey.equals(P_ID_SALARY)) {
-            try {
-                setSalary(new Float(Float.parseFloat((String) val)));
-            } catch (NumberFormatException e) {
-                setSalary(salary_Default);
-            }
-            return;
-        }
-        if (propKey.equals(P_ID_HAIRCOLOR)) {
-            setHairColor((RGB) val);
-            return;
-        }
-        if (propKey.equals(P_ID_EYECOLOR)) {
-            setEyeColor((RGB) val);
-            return;
-        }
-        super.setPropertyValue(propKey, val);
-    }
-
-    /**
-     * Sets the salary
-     */
-    void setSalary(Float newSalary) {
-        salary = newSalary;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getForeground(java.lang.Object)
-     */
-    public RGB getForeground(Object element) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getBackground(java.lang.Object)
-     */
-    public RGB getBackground(Object element) {
-        return null;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java
deleted file mode 100644
index fc45ba6..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/UserFileParser.java
+++ /dev/null
@@ -1,135 +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.ui.examples.propertysheet;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-
-/**
- * This class is an example of the implementation of a simple parser.
- */
-public class UserFileParser {
-    /**
-     * Return the fabricated result for this example.
-     *
-     */
-    private static IAdaptable getFabricatedResult() {
-        // returns fabricated input. 
-        GroupElement root = new GroupElement(
-                MessageUtil.getString("Everybody"), null); //$NON-NLS-1$
-        GroupElement userGroup = root.createSubGroup(MessageUtil
-                .getString("Company_Inc")); //$NON-NLS-1$
-        GroupElement ottGroup = userGroup.createSubGroup(MessageUtil
-                .getString("Waterloo_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("Toronto_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("Hamilton_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("London_Lab")); //$NON-NLS-1$
-        userGroup.createSubGroup(MessageUtil.getString("Grimsby_Lab")); //$NON-NLS-1$
-        GroupElement uiTeam = ottGroup.createSubGroup(MessageUtil
-                .getString("Team1")); //$NON-NLS-1$
-        //
-        UserElement user1 = uiTeam.createUser("richard"); //$NON-NLS-1$
-        user1.setFullName(new Name(MessageUtil.getString("Richard_Zokol"))); //$NON-NLS-1$
-        user1.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("rzokol@company.com"))); //$NON-NLS-1$
-        user1.setPhoneNumber("x789"); //$NON-NLS-1$
-        user1
-                .setAddress(new Address(
-                        new StreetAddress(232, MessageUtil
-                                .getString("Champlain")), MessageUtil.getString("Hull"), new Integer(5), MessageUtil.getString("A1B2C3"))); //$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$
-        user1.setBirthday(new Birthday(18, 1, 1981));
-        user1.setCoop(new Boolean(true));
-        user1.setHairColor(new RGB(0, 0, 0));
-        user1.setEyeColor(new RGB(0, 0, 0));
-        //
-        UserElement user2 = uiTeam.createUser("george"); //$NON-NLS-1$
-        user2.setFullName(new Name(MessageUtil.getString("George_Knudson"))); //$NON-NLS-1$
-        user2.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("gknudson@company.com"))); //$NON-NLS-1$
-        user2.setPhoneNumber("x678"); //$NON-NLS-1$
-        user2
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Toronto"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        user2.setBirthday(new Birthday(7, 5, 1978));
-        user2.setCoop(new Boolean(true));
-        user2.setHairColor(new RGB(0, 0, 0));
-        user2.setEyeColor(new RGB(0, 0, 0));
-
-        //
-        UserElement user3 = uiTeam.createUser("arnold"); //$NON-NLS-1$
-        user3.setFullName(new Name(MessageUtil.getString("Arnold_Palmer"))); //$NON-NLS-1$
-        user3.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("apalmer@company.com"))); //$NON-NLS-1$
-        user3.setPhoneNumber("x567"); //$NON-NLS-1$
-        user3
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        user3.setBirthday(new Birthday(11, 23, 1962));
-        user3.setHairColor(new RGB(0, 0, 0));
-        user3.setEyeColor(new RGB(0, 0, 0));
-
-        //
-        UserElement user4 = uiTeam.createUser("lee"); //$NON-NLS-1$
-        user4.setFullName(new Name(MessageUtil.getString("Lee_Trevino"))); //$NON-NLS-1$
-        user4.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("ltrevino@company.com"))); //$NON-NLS-1$
-        user4.setPhoneNumber("x456"); //$NON-NLS-1$
-        user4
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        //
-        UserElement user5 = uiTeam.createUser("tiger"); //$NON-NLS-1$
-        user5.setFullName(new Name(MessageUtil.getString("Tiger_Woods"))); //$NON-NLS-1$
-        user5.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("twoods@company.com"))); //$NON-NLS-1$
-        user5.setPhoneNumber("x345"); //$NON-NLS-1$
-        user5
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        //
-        UserElement user6 = uiTeam.createUser("jack"); //$NON-NLS-1$
-        user6.setFullName(new Name(MessageUtil.getString("Jack_Nicklaus"))); //$NON-NLS-1$
-        user6.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("jnicklaus@company.com"))); //$NON-NLS-1$
-        user6.setPhoneNumber("x234 "); //$NON-NLS-1$
-        user6
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-        //
-        UserElement greg = uiTeam.createUser("weslock"); //$NON-NLS-1$
-        greg.setFullName(new Name(MessageUtil.getString("Weslock"))); //$NON-NLS-1$
-        greg.setEmailAddress(new EmailAddress(MessageUtil
-                .getString("weslock@company.com"))); //$NON-NLS-1$
-        greg.setPhoneNumber("x123"); //$NON-NLS-1$
-        greg
-                .setAddress(new Address(
-                        new StreetAddress(),
-                        MessageUtil.getString("Ottawa"), new Integer(4), MessageUtil.getString("A1B2C3"))); //$NON-NLS-2$ //$NON-NLS-1$
-
-        return root;
-    }
-
-    /**
-     * Parse the input given by the argument. For this example we do no parsing and return
-     * a fabricated result.
-     *
-     */
-    public IAdaptable parse(IDocumentProvider documentProvider) {
-
-        return getFabricatedResult();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties b/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties
deleted file mode 100644
index edf96bc..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/Eclipse UI Examples PropertySheet/org/eclipse/ui/examples/propertysheet/messages.properties
+++ /dev/null
@@ -1,108 +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
-###############################################################################
-Alberta=Alberta
-British_Columbia=British Columbia
-City=City
-Manitoba=Manitoba
-New_Brunswick=New Brunswick
-Newfoundland=Newfoundland
-North_West_Territories=North West Territories
-Nova_Scotia=Nova Scotia
-Nunavut=Nunavut
-Ontario=Ontario
-PostalCode=PostalCode
-Prince_Edward_Island=Prince Edward Island
-Province=Province
-Quebec=Quebec
-Saskatchewan=Saskatchewan
-Street=Street
-Yukon=Yukon
-_is_an_invalid_format_for_a_postal_code={0} is an invalid format for a postal code
-postal_code_is_incomplete=postal code is incomplete
-unspecified_city=unspecified city
-April=April
-August=August
-December=December
-February=February
-January=January
-July=July
-June=June
-March=March
-May=May
-November=November
-October=October
-September=September
-day=day
-month=month
-year=year
-domain=domain
-emailaddress_cannot_be_set_to_null=emailaddress cannot be set to null
-invalid_email_address_format_should_have_been_validated=invalid email address format, should have been validated
-unknownDomain=unknownDomain
-unknownUser=unknownUser
-userid=userid
-email_address_does_not_have_a_valid_format=email address does not have a valid format
-email_address_is_incomplete=email address is incomplete
-FirstName=FirstName
-LastName=LastName
-Middle=Middle
-name=name
-apt.no_or_box.no=apt.no or box.no
-building_number=building number
-street=street
-unspecified=unspecified
-Editor_instructions=Click on the items in the content outline\nto see their properties
-address=address
-birthday=birthday
-contact=contact
-coop_student=coop student
-email=email
-eyecolor=eyecolor
-false=false
-fullname=fullname
-haircolor=haircolor
-personal=personal
-personel=personel
-phonenumber=phonenumber
-salary=salary
-salary_is_invalid=salary is invalid
-salary_must_be_greator_than_zero=salary must be greator than zero
-true=true
-A1B2C3=A1B2C3
-Arnold_Palmer=Arnold Palmer
-Champlain=Champlain
-Company_Inc=Company Inc.
-Everybody=Everybody
-George_Knudson=George Knudson
-Grimsby_Lab=Grimsby Lab
-Hamilton_Lab=Hamilton Lab
-Hull=Hull
-Jack_Nicklaus=Jack Nicklaus
-Lee_Trevino=Lee Trevino
-London_Lab=London Lab
-Ottawa=Ottawa
-Richard_Zokol=Richard Zokol
-Team1=Team1
-Tiger_Woods=Tiger Woods
-Toronto=Toronto
-Toronto_Lab=Toronto Lab
-Waterloo_Lab=Waterloo Lab
-Weslock=Weslock
-apalmer@company.com=apalmer@company.com
-gknudson@company.com=gknudson@company.com
-jnicklaus@company.com=jnicklaus@company.com
-ltrevino@company.com=ltrevino@company.com
-rzokol@company.com=rzokol@company.com
-twoods@company.com=twoods@company.com
-weslock@company.com=weslock@company.com
-Popup_Menu_Action_executed=Popup Menu Action executed
-Property_Sheet_Example=Property Sheet Example
-
diff --git a/examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml b/examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml
deleted file mode 100644
index 0a1ed0a..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/HelpContexts.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<contexts>
-
-   <context  id="phone_number_context" >
-      <description>Help for phone number</description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="address_context" >
-      <description>Help for address </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="full_name_context" >
-      <description>Help for full name </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="email_context" >
-      <description>Help for email address </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="coop_context" >
-      <description>Help for coop </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="birthday_context" >
-      <description>Help for birthday </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="salary_context" >
-      <description>Help for salary </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="hair_color_context" >
-      <description>Help for hair color </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-   <context  id="eye_color_context" >
-      <description>Help for eye color </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 1"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 2"/>
-   </context>
-
-</contexts>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF
deleted file mode 100644
index 518284f..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.propertysheet; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-ClassPath: propertysheet.jar
-Bundle-Activator: org.eclipse.ui.examples.propertysheet.PropertySheetPlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.views,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.text,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.propertysheet/about.html b/examples/org.eclipse.ui.examples.propertysheet/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.propertysheet/build.properties b/examples/org.eclipse.ui.examples.propertysheet/build.properties
deleted file mode 100644
index fb15c08..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/build.properties
+++ /dev/null
@@ -1,23 +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
-###############################################################################
-source.propertysheet.jar = Eclipse UI Examples PropertySheet/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               doc.zip,\
-               HelpContexts.xml,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +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="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html b/examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html
deleted file mode 100644
index 54205b2..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/doc-html/ui_propertysheet_ex.html
+++ /dev/null
@@ -1,48 +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">
-   <title>Desktop - Property Sheet Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Property Sheet</b></h2>
-
-<h3>
-Introduction</h3>
-The Property Sheet Example adds an editor for files with the .usr extension
-and also demonstrates how to add properties and outline views on a file.
-<br>&nbsp;
-<h3>
-Running the example</h3>
-To start using the Property Sheet Example, create a file with extension
-.usr.&nbsp;&nbsp; Open the file and the Outline and Properties views to
-see the example in action.&nbsp; Click on items in the Outline view and
-look in the Properties view for details of the selected item in the Outline
-view.&nbsp; The people items in the list show the most detail in the Properties
-view.
-<h4>
-<b>Creating a new usr file</b></h4>
-Create a new file with file extension .usr.&nbsp; From the File menu, select
-New and then select Other... from the sub-menu.&nbsp; Click on Simple in
-the wizard, then select
-<br>File in the list on the left.&nbsp; Click on Next to supply the file
-name (make sure the extension is .usr) and the folder in which the file
-should be contained.
-<br>&nbsp;
-<h3>
-Details</h3>
-The Property Sheet Example demonstrates how to provide properties to the
-Property Sheet View.
-<p>The tree viewer of the Content Outline View contains and presents OrganizationElements.
-When an element is selected in the Content Outline View the Workspace will
-invoke <tt>getAdapter</tt>
-on the selected OrganizationElement. If an adapter is requested for IPropertySource,
-the OrganizationElement returns itself as it impements IPropertySource
-The Property Sheet View then use the Organization Element as it source.
-<br>&nbsp;
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.propertysheet/doc.zip b/examples/org.eclipse.ui.examples.propertysheet/doc.zip
deleted file mode 100644
index 41e8aa9..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/doc.zip
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif b/examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif
deleted file mode 100644
index 64d7907..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/icons/obj16/usereditor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.propertysheet/plugin.properties b/examples/org.eclipse.ui.examples.propertysheet/plugin.properties
deleted file mode 100644
index 4842080..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/plugin.properties
+++ /dev/null
@@ -1,14 +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
-###############################################################################
-Plugin.name = User File Editor
-Plugin.providerName = Eclipse.org
-Editors.UserEditor = User File Editor
-PopupMenus.action = Show Action
diff --git a/examples/org.eclipse.ui.examples.propertysheet/plugin.xml b/examples/org.eclipse.ui.examples.propertysheet/plugin.xml
deleted file mode 100644
index d834a9e..0000000
--- a/examples/org.eclipse.ui.examples.propertysheet/plugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%Editors.UserEditor"
-            icon="icons/obj16/usereditor.gif"
-            extensions="usr"
-            class="org.eclipse.ui.examples.propertysheet.UserEditor"
-            id="org.eclipse.ui.examples.propertysheet.UserEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.ui.examples.propertysheet.UserElement"
-            id="org.eclipse.ui.examples.propertysheet">
-         <action
-               label="%PopupMenus.action"
-               class="org.eclipse.ui.examples.propertysheet.PopupMenuActionDelegate"
-               menubarPath="additions"
-               enablesFor="1"
-               id="org.eclipse.ui.examples.propertysheet.action1">
-         </action>
-      </objectContribution>
-   </extension>
-   <extension
-         point="org.eclipse.help.contexts">
-      <contexts
-            file="HelpContexts.xml">
-      </contexts>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.classpath b/examples/org.eclipse.ui.examples.rcp.browser/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.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/examples/org.eclipse.ui.examples.rcp.browser/.cvsignore b/examples/org.eclipse.ui.examples.rcp.browser/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.project b/examples/org.eclipse.ui.examples.rcp.browser/.project
deleted file mode 100644
index 72f5949..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.rcp.browser</name>
-	<comment></comment>
-	<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/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index e9e4d26..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:20:27 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 19dd0a9..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:17:40 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/Browser.product b/examples/org.eclipse.ui.examples.rcp.browser/Browser.product
deleted file mode 100644
index cf1dee7..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/Browser.product
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?pde version="3.1"?>
-
-<product name="%productName" id="org.eclipse.ui.examples.rcp.browser.product" application="org.eclipse.ui.examples.rcp.browser.app" useFeatures="false">
-
-   <aboutInfo>
-      <image path="icons/eclipse_lg.gif"/>
-      <text>
-         %aboutText
-      </text>
-   </aboutInfo>
-
-   <configIni use="default"/>
-
-   <launcherArgs>
-   </launcherArgs>
-
-   <windowImages small="icons/eclipse.gif" large="icons/eclipse32.gif"/>
-
-
-   <launcher name="browser">
-      <solaris/>
-      <win useIco="false">
-         <bmp/>
-      </win>
-   </launcher>
-
-   <plugins includeFragments="false">
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.help"/>
-      <plugin id="org.eclipse.jface"/>
-      <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.swt"/>
-      <plugin id="org.eclipse.swt.carbon.macosx.ppc"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ia64"/>
-      <plugin id="org.eclipse.swt.gtk.linux.ppc"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86"/>
-      <plugin id="org.eclipse.swt.gtk.linux.x86_64"/>
-      <plugin id="org.eclipse.swt.gtk.solaris.sparc"/>
-      <plugin id="org.eclipse.swt.motif.aix.ppc"/>
-      <plugin id="org.eclipse.swt.motif.hpux.ia64_32"/>
-      <plugin id="org.eclipse.swt.motif.hpux.PA_RISC"/>
-      <plugin id="org.eclipse.swt.motif.linux.x86"/>
-      <plugin id="org.eclipse.swt.motif.solaris.sparc"/>
-      <plugin id="org.eclipse.swt.photon.qnx.x86"/>
-      <plugin id="org.eclipse.swt.win32.wce_ppc.arm"/>
-      <plugin id="org.eclipse.swt.win32.win32.x86"/>
-      <plugin id="org.eclipse.ui"/>
-      <plugin id="org.eclipse.ui.examples.rcp.browser"/>
-      <plugin id="org.eclipse.ui.workbench"/>
-   </plugins>
-
-</product>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF
deleted file mode 100644
index 7b8ee01..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ui.examples.rcp.browser; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-ClassPath: browser.jar
-Bundle-Activator: org.eclipse.ui.examples.rcp.browser.BrowserPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/about.html b/examples/org.eclipse.ui.examples.rcp.browser/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/build.properties b/examples/org.eclipse.ui.examples.rcp.browser/build.properties
deleted file mode 100644
index 17534b0..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-bin.includes = icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               about.html,\
-               readme.html,\
-               splash.bmp,\
-               META-INF/
-source.browser.jar = src/
-src.includes = about.html,\
-               readme.html
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif
deleted file mode 100644
index 05626b1..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt16.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif
deleted file mode 100644
index b432f88..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt32.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif
deleted file mode 100644
index 20d9ad2..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/alt_about.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif
deleted file mode 100644
index 6ca37e0..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif
deleted file mode 100644
index f71a8f6..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse32.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif b/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif
deleted file mode 100644
index 27c0838..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/icons/eclipse_lg.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/plugin.properties b/examples/org.eclipse.ui.examples.rcp.browser/plugin.properties
deleted file mode 100644
index 76d0a44..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/plugin.properties
+++ /dev/null
@@ -1,24 +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
-###############################################################################
-pluginName= Browser Example
-providerName= Eclipse.org
-
-productName= Browser Example
-appName= Browser Example App
-perspectives.browser.name= Browser Example
-views.category.name= Browser Example
-views.browser.name= Browser
-views.history.name= History
-
-swtAppName= BrowserExample
-aboutText= Browser Example \n\n\
-(c) Copyright Eclipse contributors and others 2003, 2004.  All rights reserved.\n\
-Visit http://www.eclipse.org/platform
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/plugin.xml b/examples/org.eclipse.ui.examples.rcp.browser/plugin.xml
deleted file mode 100644
index ae8d123..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/plugin.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.core.runtime.applications"
-         id="app"
-         name="%appName">
-      <application>
-         <run
-            class="org.eclipse.ui.examples.rcp.browser.BrowserApp">
-         </run>
-      </application>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            id="org.eclipse.ui.examples.rcp.browser.browserPerspective"
-            name="%perspectives.browser.name"
-            class="org.eclipse.ui.examples.rcp.browser.BrowserPerspectiveFactory"
-			fixed="false"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            id="org.eclipse.ui.examples.rcp.browser"
-            name="%views.category.name"/>
-      <view
-            id="org.eclipse.ui.examples.rcp.browser.browserView"
-            name="%views.browser.name"
-            icon="icons/eclipse.gif"
-            class="org.eclipse.ui.examples.rcp.browser.BrowserView"
-            category="org.eclipse.ui.examples.rcp.browser"
-            allowMultiple="true"/>
-      <view
-            id="org.eclipse.ui.examples.rcp.browser.historyView"
-            name="%views.history.name"
-            icon="icons/eclipse.gif"
-            class="org.eclipse.ui.examples.rcp.browser.HistoryView"
-            category="org.eclipse.ui.examples.rcp.browser"/>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.products"
-         id="product">
-      <product
-            name="%productName"
-            application="org.eclipse.ui.examples.rcp.browser.app">
-         <property
-               name="appName"
-               value="%swtAppName"/>
-         <property
-               name="windowImages"
-               value="icons/eclipse.gif,icons/eclipse32.gif"/>
-         <property
-               name="aboutText"
-               value="%aboutText"/>
-         <property
-               name="aboutImage"
-               value="icons/eclipse_lg.gif"/>
-         <property
-               name="preferenceCustomization"
-               value="plugin_customization.ini"/>
-      </product>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            name="Browser"
-            id="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Back"
-            id="org.eclipse.ui.examples.rcp.browser.commands.back"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Forward"
-            id="org.eclipse.ui.examples.rcp.browser.commands.forward"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Stop"
-            id="org.eclipse.ui.examples.rcp.browser.commands.stop"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Refresh"
-            id="org.eclipse.ui.examples.rcp.browser.commands.refresh"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="New Tab"
-            id="org.eclipse.ui.examples.rcp.browser.commands.newTab"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="History"
-            id="org.eclipse.ui.examples.rcp.browser.commands.history"/>
-      <command
-            categoryId="org.eclipse.ui.examples.rcp.browser.commands.browserCategory"
-            name="Easter Egg"
-            id="org.eclipse.ui.examples.rcp.browser.commands.easterEgg"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <scheme
-            name="Browser Keys"
-            id="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.back"
-            sequence="M3+ARROW_LEFT"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.forward"
-            sequence="M3+ARROW_RIGHT"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.stop"
-            sequence="ESC"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.refresh"
-            sequence="F5"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.newTab"
-            sequence="M1+T"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.history"
-            sequence="M1+H"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-      <key
-            commandId="org.eclipse.ui.examples.rcp.browser.commands.easterEgg"
-            sequence="M1+M2+E"
-            schemeId="org.eclipse.ui.examples.rcp.browser.keyConfiguration"/>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer class="org.eclipse.ui.examples.rcp.browser.BrowserPreferenceInitializer"/>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini b/examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini
deleted file mode 100644
index e5ffb06..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/plugin_customization.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-org.eclipse.ui/DOCK_PERSPECTIVE_BAR=topRight
-org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.examples.rcp.browser.keyConfiguration
-org.eclipse.ui/presentationFactoryId=org.eclipse.ui.examples.presentation.customtoolbar
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/readme.html b/examples/org.eclipse.ui.examples.rcp.browser/readme.html
deleted file mode 100644
index 1f21ad5..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/readme.html
+++ /dev/null
@@ -1,54 +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>Eclipse RCP Browser Example</title>
-<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
-</head>
-<body lang="EN-US">
-<h2>Eclipse RCP Browser Example</h2>
- 
-<p>Last updated May 21, 2004</p>	
-
-<h3>Description</h3>
-<p>This is an example of a simple Eclipse Rich Client Platform (RCP) application.
-It is a bare bones web browser, using the SWT Browser control.
-</p>
-<p>
-The code is in package <code>org.eclipse.ui.examples.browser</code>, and consists
-of an application class (<code>BrowserApp</code>), a workbench advisor for 
-configuring the workbench (<code>BrowserAdvisor</code>), and a single perspective 
-(<code>BrowserPerspectiveFactory</code>) containing a single view (<code>BrowserView</code>).
-</p>
-<p>
-The application defines several built-in actions in the menu and toolbar that are
-typical for web browsers (Back, Forward, Stop, Refresh).  These are added in 
-<code>BrowserActionBuilder</code> when a new window is opened (see 
-<code>BrowserAdvisor.fillActionBars(...)</code>).  These actions are defined as 
-retargetable actions, for which the view registers handling actions.
-</p>
-<p>
-The view consists of an address bar (a <code>Label</code> and a <code>Text</code>
-control) and the <code>Browser</code> control.  To handle status and progress
-events, it simply passes on the relevant events from the <code>Browser</code> 
-control to the Workbench status line.
-
-<h3>Running the example</h3>
-To run the RCP Browser example from within the Eclipse SDK:
-<ol>
-<li>Load project org.eclipse.ui.examples.rcp.browser
-from the Eclipse repository into a self-hosting workspace.</li>
-<li>Create a new "Run-time workbench" launch configuration called "Browser Example".</li>
-<li>On the "Arguments" tab, select "Run a product" and choose select "org.eclipse.ui.examples.rcp.browser.product" from the drop-down.</li>
-<li>On the "Plug-ins" tab, configure it to include only the 
-  required plug-ins:
-  <ul>
-  <li>Press "Deselect All"</li>
-  <li>Check "org.eclipse.ui.examples.rcp.browser"</li>
-  <li>Press "Add Required Plug-ins"</li>
-  <li>Check "org.eclipse.update.configurator"</li>
-  </ul>
-</li>
-<li>Run or debug the launch config.</li>
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/splash.bmp b/examples/org.eclipse.ui.examples.rcp.browser/splash.bmp
deleted file mode 100644
index 6507770..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/splash.bmp
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java
deleted file mode 100644
index 60960dd..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserActionBarAdvisor.java
+++ /dev/null
@@ -1,178 +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.examples.rcp.browser;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.ICoolBarManager;
-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.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-
-/**
- * Builds the actions and populates the menubar and toolbar when a new window
- * is opened.
- * This work is factored into a separate class to avoid cluttering 
- * <code>BrowserAdvisor</code>
- * <p>
- * This adds several actions to the menus and toolbar that are typical for 
- * web browsers (e.g. Back, Forward, Stop, Refresh).  These are defined as 
- * retargetable actions, for which the <code>BrowserView</code> registers 
- * handling actions.
- * 
- * @since 3.1
- */
-public class BrowserActionBarAdvisor extends ActionBarAdvisor {
-
-	private IAction newWindowAction, newTabAction, quitAction, historyAction, aboutAction;
-    private RetargetAction backAction, forwardAction, stopAction, refreshAction; 
-
-    public BrowserActionBarAdvisor(IActionBarConfigurer configurer) {
-        super(configurer);
-	}
-    
-	protected void makeActions(final IWorkbenchWindow window) {
-        ISharedImages images = window.getWorkbench().getSharedImages();
-		
-		newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window);
-        newWindowAction.setText("&New Window");
-        register(newWindowAction);
-		
-		newTabAction = new Action("New &Tab") { //$NON-NLS-1$
-		    int counter = 0;
-		    { setId("newTab");
-              setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "newTab"); } //$NON-NLS-1$
-            public void run() {
-                try {
-                    String secondaryId = Integer.toString(++counter);
-                    IWorkbenchPage page = window.getActivePage();
-                    if (page != null) {
-                        page.showView(IBrowserConstants.BROWSER_VIEW_ID, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
-                    }
-                } catch (PartInitException e) {
-                    e.printStackTrace();
-                }
-            }
-		};
-        register(newTabAction);
-		
-		quitAction = ActionFactory.QUIT.create(window);
-        register(quitAction);
-		
-        backAction = new RetargetAction("back", "&Back");
-        backAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "back"); //$NON-NLS-1$
-		backAction.setToolTipText("Back");
-		backAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_BACK));
-		window.getPartService().addPartListener(backAction);
-        register(backAction);
-		
-        forwardAction = new RetargetAction("forward", "&Forward");
-        forwardAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "forward"); //$NON-NLS-1$
-		forwardAction.setToolTipText("Forward");
-		forwardAction.setImageDescriptor(images.getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD));
-		window.getPartService().addPartListener(forwardAction);
-		register(forwardAction);
-		
-		stopAction = new RetargetAction("stop", "Sto&p");
-        stopAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "stop"); //$NON-NLS-1$
-		stopAction.setToolTipText("Stop");
-		window.getPartService().addPartListener(stopAction);
-		register(stopAction);
-		
-		refreshAction = new RetargetAction("refresh", "&Refresh");
-        refreshAction.setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "refresh"); //$NON-NLS-1$
-		refreshAction.setToolTipText("Refresh");
-		window.getPartService().addPartListener(refreshAction);
-		register(refreshAction);
-		
-		historyAction = new Action("History", IAction.AS_CHECK_BOX) { //$NON-NLS-1$
-		    { setId("history");
-              setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "history"); } //$NON-NLS-1$
-		    public void run() {
-		        try {
-		            IWorkbenchPage page = window.getActivePage();
-		            if (page != null) {
-		                IViewPart historyView = page.findView(IBrowserConstants.HISTORY_VIEW_ID);
-		                if (historyView == null) {
-		                    page.showView(IBrowserConstants.HISTORY_VIEW_ID);
-		                    setChecked(true);
-		                }
-		                else {
-		                    page.hideView(historyView);
-		                    setChecked(false);
-		                }
-		            }
-                } catch (PartInitException e) {
-                    e.printStackTrace();
-                }
-		    }
-		};
-        register(historyAction);
-
-		aboutAction = ActionFactory.ABOUT.create(window);
-        register(aboutAction);
-	}
-
-	protected void fillMenuBar(IMenuManager menuBar) {
-		IMenuManager fileMenu = new MenuManager("&File", "file");  //$NON-NLS-2$
-		menuBar.add(fileMenu);
-        fileMenu.add(newWindowAction);
-        fileMenu.add(newTabAction);
-		fileMenu.add(new Separator());
-        fileMenu.add(quitAction);
-		
-		IMenuManager viewMenu = new MenuManager("&View", "view");  //$NON-NLS-2$
-		menuBar.add(viewMenu);
-        viewMenu.add(backAction);
-        viewMenu.add(forwardAction);
-        viewMenu.add(stopAction);
-        viewMenu.add(refreshAction);
-		viewMenu.add(new Separator("views")); //$NON-NLS-1$
-        viewMenu.add(historyAction);
-
-		IMenuManager helpMenu = new MenuManager("&Help", "help");  //$NON-NLS-2$
-		menuBar.add(helpMenu);
-        helpMenu.add(aboutAction);
-	}
-
-	protected void fillCoolBar(ICoolBarManager coolBar) {
-		IToolBarManager toolBar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
-		coolBar.add(new ToolBarContributionItem(toolBar, "standard")); //$NON-NLS-1$
-		
-		// For the Back and Forward actions, force their text to be shown on the toolbar,
-		// not just their image.  For the remaining actions, the ActionContributionItem
-		// is created implicitly with the default presentation mode.
-		ActionContributionItem backCI = new ActionContributionItem(backAction);
-		backCI.setMode(ActionContributionItem.MODE_FORCE_TEXT);
-		toolBar.add(backCI);
-		
-		ActionContributionItem forwardCI = new ActionContributionItem(forwardAction);
-		forwardCI.setMode(ActionContributionItem.MODE_FORCE_TEXT);
-		toolBar.add(forwardCI);
-
-		toolBar.add(stopAction);
-		toolBar.add(refreshAction);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java
deleted file mode 100644
index f214ba5..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserAdvisor.java
+++ /dev/null
@@ -1,58 +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.examples.rcp.browser;
-
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * The workbench advisor for the browser example.
- * Configures the workbench as needed for the browser example, including
- * specifying the default perspective id.
- * Creates the workbench window advisor for configuring each new window 
- * as it is being opened.
- * 
- * @since 3.0
- */
-public class BrowserAdvisor extends WorkbenchAdvisor {
-
-	/**
-	 * Constructs a new <code>BrowserAdvisor</code>.
-	 */
-	public BrowserAdvisor() {
-		// do nothing
-	}
-	
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchAdvisor
-     */
-    public void initialize(IWorkbenchConfigurer configurer) {
-        super.initialize(configurer);
-//        configurer.setSaveAndRestore(true);
-    }
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor
-	 */
-	public String getInitialWindowPerspectiveId() {
-		return IBrowserConstants.BROWSER_PERSPECTIVE_ID;
-	}
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchAdvisor
-     */
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-            IWorkbenchWindowConfigurer configurer) {
-        return new BrowserWindowAdvisor(configurer);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java
deleted file mode 100644
index 9f75650..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserApp.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.rcp.browser;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * The application class for the RCP Browser Example.
- * Creates and runs the Workbench, passing a <code>BrowserAdvisor</code>
- * as the workbench advisor.
- * 
- * @issue Couldn't run without initial perspective -- it failed with NPE 
- *   on WorkbenchWindow.openPage (called from Workbench.openFirstTimeWindow).  Advisor is currently required to override 
- *   getInitialWindowPerspectiveId.
- * 
- * @issue If shortcut bar is hidden, and last view in perspective is closed, there's no way to get it open again.
- * 
- * @since 3.0
- */
-public class BrowserApp implements IApplication {
-	
-	/**
-	 * Constructs a new <code>BrowserApp</code>.
-	 */
-	public BrowserApp() {
-		// do nothing
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
-	 */
-	public Object start(IApplicationContext context) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			int code = PlatformUI.createAndRunWorkbench(display,
-					new BrowserAdvisor());
-			// exit the application with an appropriate return code
-			return code == PlatformUI.RETURN_RESTART
-					? EXIT_RESTART
-					: EXIT_OK;
-		} finally {
-			if (display != null)
-				display.dispose();
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.equinox.app.IApplication#stop()
-	 */
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java
deleted file mode 100644
index 1a36c5e..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPerspectiveFactory.java
+++ /dev/null
@@ -1,41 +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.examples.rcp.browser;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IViewLayout;
-
-/**
- * The perspective factory for the RCP Browser Example's perspective.
- * 
- * @since 3.0
- */
-public class BrowserPerspectiveFactory implements IPerspectiveFactory {
-
-	/**
-	 * Constructs a new <code>BrowserPerspectiveFactory</code>.
-	 */
-	public BrowserPerspectiveFactory() {
-		// do nothing
-	}
-
-	/**
-	 * Creates the initial layout of the Browser perspective.
-	 */
-	public void createInitialLayout(IPageLayout layout) {
-		layout.addView(IBrowserConstants.BROWSER_VIEW_ID, IPageLayout.RIGHT, .25f, IPageLayout.ID_EDITOR_AREA);
-		layout.addPlaceholder(IBrowserConstants.HISTORY_VIEW_ID, IPageLayout.LEFT, .3f, IPageLayout.ID_EDITOR_AREA); //$NON-NLS-1$
-		IViewLayout historyLayout = layout.getViewLayout(IBrowserConstants.HISTORY_VIEW_ID);
-		historyLayout.setCloseable(true);
-		layout.setEditorAreaVisible(false);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java
deleted file mode 100644
index dca29a8..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPlugin.java
+++ /dev/null
@@ -1,72 +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.examples.rcp.browser;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Plug-in class for the browser example.
- */
-public class BrowserPlugin extends AbstractUIPlugin {
-    private static BrowserPlugin DEFAULT;
-    
-    public BrowserPlugin() {
-        DEFAULT = this;
-    }
-
-    public static BrowserPlugin getDefault() {
-        return DEFAULT;
-    }
-
-    /**
-     * Logs the given throwable.
-     * 
-     * @param t the throwable to log
-     */
-    public void log(Throwable t) {
-        String msg = t.getMessage();
-        if (msg == null)
-            msg = t.toString();
-        IStatus status = new Status(IStatus.ERROR, getBundle().getSymbolicName(), 0, msg, t);
-        getLog().log(status);
-    }
-    
-    /**
-     * Returns a list of all views and editors in the given page,
-     * excluding any secondary views like the History view.
-     * 
-     * @param page the workbench page
-     * @return a list of all non-secondary parts in the page
-     */
-    public static List getNonSecondaryParts(IWorkbenchPage page) {
-        ArrayList list = new ArrayList();
-        list.addAll(Arrays.asList(page.getViewReferences()));
-        list.addAll(Arrays.asList(page.getEditorReferences()));
-        for (Iterator i = list.iterator(); i.hasNext();) {
-            IWorkbenchPartReference ref = (IWorkbenchPartReference) i.next();
-            if (ref instanceof ISecondaryPart) {
-                i.remove();
-            }
-        }
-        return list;
-    }
-    
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java
deleted file mode 100644
index 243ed5e..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserPreferenceInitializer.java
+++ /dev/null
@@ -1,33 +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.examples.rcp.browser;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-
-/**
- * Preference initializer for the browser preferences.
- */
-public class BrowserPreferenceInitializer extends AbstractPreferenceInitializer {
-
-    public BrowserPreferenceInitializer() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-     */
-    public void initializeDefaultPreferences() {
-        Preferences prefs = BrowserPlugin.getDefault().getPluginPreferences();
-        prefs.setDefault(IBrowserConstants.PREF_HOME_PAGE, "http://eclipse.org");  //$NON-NLS-1$
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java
deleted file mode 100644
index 4b65de7..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserView.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.rcp.browser;
-
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.commands.ActionHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.CloseWindowListener;
-import org.eclipse.swt.browser.LocationAdapter;
-import org.eclipse.swt.browser.LocationEvent;
-import org.eclipse.swt.browser.OpenWindowListener;
-import org.eclipse.swt.browser.ProgressAdapter;
-import org.eclipse.swt.browser.ProgressEvent;
-import org.eclipse.swt.browser.StatusTextEvent;
-import org.eclipse.swt.browser.StatusTextListener;
-import org.eclipse.swt.browser.TitleEvent;
-import org.eclipse.swt.browser.TitleListener;
-import org.eclipse.swt.browser.WindowEvent;
-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.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.ViewPart;
-
-
-/**
- * The Browser view.  This consists of a <code>Browser</code> control, and an
- * address bar consisting of a <code>Label</code> and a <code>Text</code> 
- * control.  This registers handling actions for the retargetable actions added 
- * by <code>BrowserActionBuilder</code> (Back, Forward, Stop, Refresh).  
- * This also hooks listeners on the Browser control for status and progress
- * messages, and redirects these to the status line.
- * 
- * @since 3.0
- */
-public class BrowserView extends ViewPart {
-	
-    /**
-	 * Debug flag.  When true, status and progress messages are sent to the
-	 * console in addition to the status line.
-	 */
-	private static final boolean DEBUG = false;
-	
-	private Browser browser;
-	private Text location;
-	private String initialUrl;
-	
-	private Action backAction = new Action("Back") {
-		public void run() {
-			browser.back();
-		}
-	};
-	
-	private Action forwardAction = new Action("Forward") {
-		public void run() {
-			browser.forward();
-		}
-	};
-
-	private Action stopAction = new Action("Stop") {
-		public void run() {
-			browser.stop();
-			// cancel any partial progress.
-			getViewSite().getActionBars().getStatusLineManager().getProgressMonitor().done();
-		}
-	};
-
-	private Action refreshAction = new Action("Refresh") {
-		public void run() {
-			browser.refresh();
-		}
-	};
-	
-	/**
-	 * The easter egg action.  
-	 * See the corresponding command and key binding in the plugin.xml,
-	 * and how it's registered in createBrowser.
-	 */
-	private Action easterEggAction = new Action() {
-	    { setActionDefinitionId(IBrowserConstants.COMMAND_PREFIX + "easterEgg"); } //$NON-NLS-1$
-	    public void run() {
-	        browser.execute("window.confirm('You found the easter egg!')");
-	    }
-	};
-	
-    /**
-     * Finds the first browser view in the given window.
-     * 
-     * @param window the window
-     * @return the first found browser view, or <code>null</code> if none found
-     */
-    private static BrowserView findBrowser(IWorkbenchWindow window) {
-        IWorkbenchPage page = window.getActivePage();
-        IViewPart view = page.findView(IBrowserConstants.BROWSER_VIEW_ID);
-        if (view != null) {
-            return (BrowserView) view;
-        }
-        IViewReference[] refs = page.getViewReferences();
-        for (int i = 0; i < refs.length; i++) {
-            if (IBrowserConstants.BROWSER_VIEW_ID.equals(refs[i].getId())) {
-                return (BrowserView) refs[i].getPart(true);
-            }
-        }
-        return null;
-    }
-    
-	/**
-	 * Constructs a new <code>BrowserView</code>.
-	 */
-	public BrowserView() {
-	    initialUrl = BrowserPlugin.getDefault().getPluginPreferences().getString(IBrowserConstants.PREF_HOME_PAGE);
-	}
-	
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        super.init(site);
-        if (memento != null) {
-	        String u = memento.getString(IBrowserConstants.MEMENTO_URL);
-	        if (u != null) {
-	            initialUrl = u;
-	        }
-        }
-    }
-    
-    public void saveState(IMemento memento) {
-        memento.putString(IBrowserConstants.MEMENTO_URL, browser.getUrl());
-    }
-    
-	public void createPartControl(Composite parent) {
-		browser = createBrowser(parent, getViewSite().getActionBars());
-		browser.setUrl(initialUrl);
-	}
-
-	public void setFocus() {
-		if (browser != null && !browser.isDisposed()) {
-			browser.setFocus();
-		}
-	}
-	
-	private Browser createBrowser(Composite parent, final IActionBars actionBars) {
-		
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		parent.setLayout(gridLayout);
-		
-		Label labelAddress = new Label(parent, SWT.NONE);
-		labelAddress.setText("A&ddress");
-		
-		location = new Text(parent, SWT.BORDER);
-		GridData data = new GridData();
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		location.setLayoutData(data);
-
-		browser = new Browser(parent, SWT.NONE);
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		data.grabExcessHorizontalSpace = true;
-		data.grabExcessVerticalSpace = true;
-		browser.setLayoutData(data);
-
-		browser.addProgressListener(new ProgressAdapter() {
-			IProgressMonitor monitor = actionBars.getStatusLineManager().getProgressMonitor();
-			boolean working = false;
-			int workedSoFar;
-			public void changed(ProgressEvent event) {
-				if (DEBUG) {
-					System.out.println("changed: " + event.current + "/" + event.total);
-				}
-				if (event.total == 0) return;
-				if (!working) {
-					if (event.current == event.total) return;
-					monitor.beginTask("", event.total); //$NON-NLS-1$
-					workedSoFar = 0;
-					working = true;
-				}
-				monitor.worked(event.current - workedSoFar);
-				workedSoFar = event.current;
-			}
-			public void completed(ProgressEvent event) {
-				if (DEBUG) {
-					System.out.println("completed: " + event.current + "/" + event.total);
-				}
-				monitor.done();
-				working = false;
-			}
-		});
-		browser.addStatusTextListener(new StatusTextListener() {
-			IStatusLineManager status = actionBars.getStatusLineManager(); 
-			public void changed(StatusTextEvent event) {
-				if (DEBUG) {
-					System.out.println("status: " + event.text);
-				}
-				status.setMessage(event.text);
-			}
-		});
-		browser.addLocationListener(new LocationAdapter() {
-			public void changed(LocationEvent event) {
-			    if (event.top)
-			        location.setText(event.location);
-			}
-		});
-		browser.addTitleListener(new TitleListener() {
-            public void changed(TitleEvent event) {
-                setPartName(event.title);
-            }
-        });
-        browser.addOpenWindowListener(new OpenWindowListener() {
-            public void open(WindowEvent event) {
-                BrowserView.this.openWindow(event);
-            }
-        });
-        // TODO: should handle VisibilityWindowListener.show and .hide events
-        browser.addCloseWindowListener(new CloseWindowListener() {
-            public void close(WindowEvent event) {
-                BrowserView.this.close();
-            }
-        });
-		location.addSelectionListener(new SelectionAdapter() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				browser.setUrl(location.getText());
-			}
-		});
-		
-		// Hook the navigation actons as handlers for the retargetable actions
-		// defined in BrowserActionBuilder.
-		actionBars.setGlobalActionHandler("back", backAction); //$NON-NLS-1$
-		actionBars.setGlobalActionHandler("forward", forwardAction); //$NON-NLS-1$
-		actionBars.setGlobalActionHandler("stop", stopAction); //$NON-NLS-1$
-		actionBars.setGlobalActionHandler("refresh", refreshAction); //$NON-NLS-1$
-		
-		// Register the easter egg action with the key binding service,
-		// allowing it to be invoked directly via keypress, 
-		// without requiring the action to be visible in the UI.
-		// Note that the address field needs to have focus for this to work, 
-		// or any control other than the browser widget, due to 
-		// <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=69919">bug 69919</a>.
-		IHandlerService hs = (IHandlerService) getSite().getService(
-				IHandlerService.class);
-		IHandler easterHandler = new ActionHandler(easterEggAction);
-		hs.activateHandler(easterEggAction.getActionDefinitionId(), easterHandler);
-		return browser;
-	}
-
-    /**
-     * Opens a new browser window.
-     * 
-     * @param event the open window event
-     */
-    private void openWindow(WindowEvent event) {
-        try {
-            IWorkbench workbench = getSite().getWorkbenchWindow().getWorkbench();
-            IWorkbenchWindow window = workbench.openWorkbenchWindow(IBrowserConstants.BROWSER_PERSPECTIVE_ID, null);
-            Shell shell = window.getShell();
-            if (event.location != null)
-                shell.setLocation(event.location);
-            if (event.size != null)
-                shell.setLocation(event.size);
-            BrowserView view = findBrowser(window);
-            Assert.isNotNull(view);
-            event.browser = view.browser;
-        } catch (WorkbenchException e) {
-            BrowserPlugin.getDefault().log(e);
-        }
-    }
-    
-    /**
-     * Closes this browser view.  Closes the window too if there
-     * are no non-secondary parts open.
-     */
-    private void close() {
-        IWorkbenchPage page = getSite().getPage();
-        IWorkbenchWindow window = page.getWorkbenchWindow();
-        page.hideView(this);
-        if (BrowserPlugin.getNonSecondaryParts(page).size() == 0) {
-            page.closePerspective(page.getPerspective(), true, true);
-        }
-        if (window.getActivePage() == null) {
-            window.close();
-        }
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserWindowAdvisor.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserWindowAdvisor.java
deleted file mode 100644
index b2e484e..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/BrowserWindowAdvisor.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.rcp.browser;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-
-/**
- * Configures the browser window using the given window configurer.
- * 
- * @since 3.1
- */
-public class BrowserWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    /**
-     * Creates a new browser window advisor.
-     * 
-     * @param configurer the window configurer
-     */
-    public BrowserWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchAdvisor
-     */
-    public void preWindowOpen() {
-        IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-        configurer.setInitialSize(new Point(800, 600));
-        
-        // Default window title is the product name, so don't need to set it
-        // explicitly anymore.
-//      configurer.setTitle("Browser Example");
-        
-//      configurer.setShowFastViewBars(true);
-    }
-
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)
-     */
-    public ActionBarAdvisor createActionBarAdvisor(
-            IActionBarConfigurer actionBarConfigurer) {
-        return new BrowserActionBarAdvisor(actionBarConfigurer);
-    }
-    
-//  Uncomment the code below for a custom window layout (add back the missing imports using Ctrl+Shift+O) 
-/*    
-      public void createWindowContents(Shell shell) {
-          IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-          Menu menuBar = configurer.createMenuBar();
-          shell.setMenuBar(menuBar);
-          
-          GridLayout shellLayout = new GridLayout();
-          shellLayout.marginWidth = 0;
-          shellLayout.marginHeight = 0;
-          shellLayout.verticalSpacing = 0;
-          shell.setLayout(shellLayout);
-    
-          if (!Util.isMac()) {
-              Label sep1 = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
-              sep1.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-          }
-          Control coolBar = configurer.createCoolBarControl(shell);
-          coolBar.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-    
-          Label sep2 = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
-          sep2.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-          
-          Control pageComposite = configurer.createPageComposite(shell);
-          pageComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
-    
-          Label sep3 = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);
-          sep3.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-          Control statusLine = configurer.createStatusLineControl(shell);
-          statusLine.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
-          shell.layout(true);
-      }
-*/
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/HistoryView.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/HistoryView.java
deleted file mode 100644
index 6ac0d4e..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/HistoryView.java
+++ /dev/null
@@ -1,260 +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.examples.rcp.browser;
-
-import java.util.ArrayList;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.*;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.*;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.SWT;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Mockup of a browser history view.
- * For now, it's just the sample view generated by PDE.
- */
-public class HistoryView extends ViewPart implements ISecondaryPart {
-	private TreeViewer viewer;
-	private DrillDownAdapter drillDownAdapter;
-	private Action action1;
-	private Action action2;
-	private Action doubleClickAction;
-
-	/*
-	 * The content provider class is responsible for
-	 * providing objects to the view. It can wrap
-	 * existing objects in adapters or simply return
-	 * objects as-is. These objects may be sensitive
-	 * to the current input of the view, or ignore
-	 * it and always show the same content 
-	 * (like Task List, for example).
-	 */
-	 
-	class TreeObject implements IAdaptable {
-		private String name;
-		private TreeParent parent;
-		
-		public TreeObject(String name) {
-			this.name = name;
-		}
-		public String getName() {
-			return name;
-		}
-		public void setParent(TreeParent parent) {
-			this.parent = parent;
-		}
-		public TreeParent getParent() {
-			return parent;
-		}
-		public String toString() {
-			return getName();
-		}
-		public Object getAdapter(Class key) {
-			return null;
-		}
-	}
-	
-	class TreeParent extends TreeObject {
-		private ArrayList children;
-		public TreeParent(String name) {
-			super(name);
-			children = new ArrayList();
-		}
-		public void addChild(TreeObject child) {
-			children.add(child);
-			child.setParent(this);
-		}
-		public void removeChild(TreeObject child) {
-			children.remove(child);
-			child.setParent(null);
-		}
-		public TreeObject [] getChildren() {
-			return (TreeObject [])children.toArray(new TreeObject[children.size()]);
-		}
-		public boolean hasChildren() {
-			return children.size()>0;
-		}
-	}
-
-	class ViewContentProvider implements IStructuredContentProvider, 
-										   ITreeContentProvider {
-		private TreeParent invisibleRoot;
-
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-		public void dispose() {
-		}
-		public Object[] getElements(Object parent) {
-			if (parent.equals(getViewSite())) {
-				if (invisibleRoot==null) initialize();
-				return getChildren(invisibleRoot);
-			}
-			return getChildren(parent);
-		}
-		public Object getParent(Object child) {
-			if (child instanceof TreeObject) {
-				return ((TreeObject)child).getParent();
-			}
-			return null;
-		}
-		public Object [] getChildren(Object parent) {
-			if (parent instanceof TreeParent) {
-				return ((TreeParent)parent).getChildren();
-			}
-			return new Object[0];
-		}
-		public boolean hasChildren(Object parent) {
-			if (parent instanceof TreeParent)
-				return ((TreeParent)parent).hasChildren();
-			return false;
-		}
-/*
- * We will set up a dummy model to initialize tree heararchy.
- * In a real code, you will connect to a real model and
- * expose its hierarchy.
- */
-		private void initialize() {
-			TreeObject to1 = new TreeObject("Leaf 1");
-			TreeObject to2 = new TreeObject("Leaf 2");
-			TreeObject to3 = new TreeObject("Leaf 3");
-			TreeParent p1 = new TreeParent("Parent 1");
-			p1.addChild(to1);
-			p1.addChild(to2);
-			p1.addChild(to3);
-			
-			TreeObject to4 = new TreeObject("Leaf 4");
-			TreeParent p2 = new TreeParent("Parent 2");
-			p2.addChild(to4);
-			
-			TreeParent root = new TreeParent("Root");
-			root.addChild(p1);
-			root.addChild(p2);
-			
-			invisibleRoot = new TreeParent("");
-			invisibleRoot.addChild(root);
-		}
-	}
-	class ViewLabelProvider extends LabelProvider {
-
-		public String getText(Object obj) {
-			return obj.toString();
-		}
-		public Image getImage(Object obj) {
-			String imageKey = ISharedImages.IMG_OBJ_ELEMENT;
-			if (obj instanceof TreeParent)
-			   imageKey = ISharedImages.IMG_OBJ_FOLDER;
-			return PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);
-		}
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public HistoryView() {
-	}
-
-	/**
-	 * This is a callback that will allow us
-	 * to create the viewer and initialize it.
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		drillDownAdapter = new DrillDownAdapter(viewer);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(getViewSite());
-		makeActions();
-		hookContextMenu();
-		hookDoubleClickAction();
-	}
-
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu");
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				HistoryView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, viewer);
-	}
-
-
-
-	private void fillContextMenu(IMenuManager manager) {
-		manager.add(action1);
-		manager.add(action2);
-		manager.add(new Separator());
-		drillDownAdapter.addNavigationActions(manager);
-		// Other plug-ins can contribute there actions here
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-	
-
-	private void makeActions() {
-		action1 = new Action() {
-			public void run() {
-				showMessage("Action 1 executed");
-			}
-		};
-		action1.setText("Action 1");
-		action1.setToolTipText("Action 1 tooltip");
-		action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
-			getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
-		
-		action2 = new Action() {
-			public void run() {
-				showMessage("Action 2 executed");
-			}
-		};
-		action2.setText("Action 2");
-		action2.setToolTipText("Action 2 tooltip");
-		action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
-				getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
-		doubleClickAction = new Action() {
-			public void run() {
-				ISelection selection = viewer.getSelection();
-				Object obj = ((IStructuredSelection)selection).getFirstElement();
-				showMessage("Double-click detected on "+obj.toString());
-			}
-		};
-	}
-
-	private void hookDoubleClickAction() {
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				doubleClickAction.run();
-			}
-		});
-	}
-	private void showMessage(String message) {
-		MessageDialog.openInformation(
-			viewer.getControl().getShell(),
-			"History",
-			message);
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/IBrowserConstants.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/IBrowserConstants.java
deleted file mode 100644
index d507f73..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/IBrowserConstants.java
+++ /dev/null
@@ -1,54 +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.examples.rcp.browser;
-
-/**
- * Interface defining constants for use in the browser example.
- */
-public interface IBrowserConstants {
-
-    /**
-     * ID of the RCP Browser Example plug-in.
-     */
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.rcp.browser"; //$NON-NLS-1$
-    
-    /**
-     * ID of the Browser perspective.
-     */
-    public static final String BROWSER_PERSPECTIVE_ID = PLUGIN_ID + ".browserPerspective"; //$NON-NLS-1$
-    
-    /**
-     * ID of the Browser view.
-     */
-    public static final String BROWSER_VIEW_ID = PLUGIN_ID + ".browserView"; //$NON-NLS-1$
-
-    /**
-     * ID of the History view.
-     */
-    public static final String HISTORY_VIEW_ID = PLUGIN_ID + ".historyView"; //$NON-NLS-1$
-
-    /**
-     * Common prefix for command ids.
-     */
-    public static final String COMMAND_PREFIX = PLUGIN_ID + ".commands."; //$NON-NLS-1$
-    
-    /**
-     * Preference key for the home page URL (property is String-valued).
-     */
-    public static final String PREF_HOME_PAGE = "homePage"; //$NON-NLS-1$
-
-    /**
-     * Memento attribute name for the browser URL (attribute is String-valued).
-     */
-    public static final String MEMENTO_URL = "url"; //$NON-NLS-1$
-    
-}
diff --git a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java b/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java
deleted file mode 100644
index 4e2c1bb..0000000
--- a/examples/org.eclipse.ui.examples.rcp.browser/src/org/eclipse/ui/examples/rcp/browser/ISecondaryPart.java
+++ /dev/null
@@ -1,21 +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.examples.rcp.browser;
-
-/**
- * Marks a workbench part implementation as being a secondary part.
- * A secondary part is one that exists only to support the browser,
- * and should not be considered when determining whether to close
- * a window whose last browser has been closed.
- */
-public interface ISecondaryPart {
-    // marker interface only; no behaviour
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/.classpath b/examples/org.eclipse.ui.examples.readmetool/.classpath
deleted file mode 100644
index d0ff700..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples Readme Tool"/>
-	<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/examples/org.eclipse.ui.examples.readmetool/.cvsignore b/examples/org.eclipse.ui.examples.readmetool/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.readmetool/.project b/examples/org.eclipse.ui.examples.readmetool/.project
deleted file mode 100644
index 208a260..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.readmetool</name>
-	<comment></comment>
-	<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/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 6a0c68d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:12:33 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 595f8b1..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Wed May 30 11:19:45 EDT 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e5fd2a4..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:54:24 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java
deleted file mode 100644
index 7a57110..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AdaptableList.java
+++ /dev/null
@@ -1,123 +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.ui.examples.readmetool;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * A list of adaptable objects.  This is a generic list that can
- * be used to display an arbitrary set of adaptable objects in the workbench.
- * Also implements the IWorkbenchAdapter interface for simple display
- * and navigation.
- */
-public class AdaptableList implements IWorkbenchAdapter, IAdaptable {
-    protected List children = new ArrayList();
-
-    /**
-     * Creates a new adaptable list with the given children.
-     */
-    public AdaptableList() {
-        // do nothing
-    }
-
-    /**
-     * Creates a new adaptable list with the given children.
-     */
-    public AdaptableList(IAdaptable[] newChildren) {
-        for (int i = 0; i < newChildren.length; i++) {
-            children.add(newChildren[i]);
-        }
-    }
-
-    /**
-     * Adds all the adaptable objects in the given enumeration to this list.
-     * Returns this list.
-     */
-    public AdaptableList add(Iterator iterator) {
-        while (iterator.hasNext()) {
-            add((IAdaptable) iterator.next());
-        }
-        return this;
-    }
-
-    /**
-     * Adds the given adaptable object to this list.
-     * Returns this list.
-     */
-    public AdaptableList add(IAdaptable adaptable) {
-        children.add(adaptable);
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IWorkbenchAdapter.class)
-            return this;
-        return null;
-    }
-
-    /**
-     * Returns the elements in this list.
-     */
-    public Object[] getChildren() {
-        return children.toArray();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object o) {
-        return children.toArray();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public String getLabel(Object object) {
-        return object == null ? "" : object.toString(); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object getParent(Object object) {
-        return null;
-    }
-
-    /**
-     * Removes the given adaptable object from this list.
-     */
-    public void remove(IAdaptable adaptable) {
-        children.remove(adaptable);
-    }
-
-    /**
-     * Returns the number of items in the list
-     */
-    public int size() {
-        return children.size();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java
deleted file mode 100644
index fa5f42d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddReadmeMarkerAction.java
+++ /dev/null
@@ -1,121 +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
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74528)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.MarkerUtilities;
-import org.osgi.framework.Bundle;
-
-/**
- * Action for creating a readme marker with a specfic id 
- * attribute value.
- */
-public class AddReadmeMarkerAction extends Action {
-    private ITextEditor textEditor;
-
-    private Object[][] customAttributes;
-
-    private String message;
-
-    private final static String MARKER_TYPE = "org.eclipse.ui.examples.readmetool.readmemarker"; //$NON-NLS-1$
-
-    /**
-     * Creates a new action for the given text editor.
-     *
-     * @param editor the text editor
-     * @param label the label for the action
-     * @param attributes the custom attributes for this marker
-     * @param message the message for the marker
-     */
-    public AddReadmeMarkerAction(ITextEditor editor, String label,
-            Object[][] attributes, String message) {
-        textEditor = editor;
-        setText(label);
-        this.customAttributes = attributes;
-        this.message = message;
-    }
-
-    /*
-     * @see IAction#run()
-     */
-    public void run() {
-        Map attributes = new HashMap(11);
-
-        ITextSelection selection = (ITextSelection) textEditor
-                .getSelectionProvider().getSelection();
-        if (!selection.isEmpty()) {
-
-            int start = selection.getOffset();
-            int length = selection.getLength();
-
-            if (length < 0) {
-                length = -length;
-                start -= length;
-            }
-
-            MarkerUtilities.setCharStart(attributes, start);
-            MarkerUtilities.setCharEnd(attributes, start + length);
-
-            // marker line numbers are 1-based
-            int line = selection.getStartLine();
-            MarkerUtilities.setLineNumber(attributes, line == -1 ? -1
-                    : line + 1);
-
-            // set custom attribute values
-            for (int i = 0; i < customAttributes.length; i++) {
-                attributes.put(customAttributes[i][0], customAttributes[i][1]);
-            }
-
-            MarkerUtilities.setMessage(attributes, message);
-        }
-
-        try {
-            MarkerUtilities
-                    .createMarker(getResource(), attributes, MARKER_TYPE);
-        } catch (CoreException x) {
-            Bundle bundle = ReadmePlugin.getDefault().getBundle();
-            Platform.getLog(bundle).log(x.getStatus());
-
-            Shell shell = textEditor.getSite().getShell();
-            String title = MessageUtil
-                    .getString("Add_readme_marker_error_title"); //$NON-NLS-1$
-            String msg = MessageUtil
-                    .getString("Add_readme_marker_error_message"); //$NON-NLS-1$
-
-            ErrorDialog.openError(shell, title, msg, x.getStatus());
-        }
-    }
-
-    /** 
-     * Returns the resource on which to create the marker, 
-     * or <code>null</code> if there is no applicable resource. This
-     * queries the editor's input using <code>getAdapter(IResource.class)</code>.
-     *
-     * @return the resource to which to attach the newly created marker
-     */
-    protected IResource getResource() {
-        IEditorInput input = textEditor.getEditorInput();
-        return (IResource) ((IAdaptable) input).getAdapter(IResource.class);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java
deleted file mode 100644
index 21f23b2..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/AddSentenceResolution.java
+++ /dev/null
@@ -1,90 +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.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
-
-/**
- * A resolution which inserts a sentence into the readme file 
- */
-public class AddSentenceResolution implements IMarkerResolution {
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolution.
-     */
-    public String getLabel() {
-        return MessageUtil.getString("Add_Sentence"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolution.
-     */
-    public void run(IMarker marker) {
-        // Se if there is an open editor on the file containing the marker
-        IWorkbenchWindow w = PlatformUI.getWorkbench()
-                .getActiveWorkbenchWindow();
-        if (w == null)
-            return;
-        IWorkbenchPage page = w.getActivePage();
-        if (page == null)
-            return;
-        IFileEditorInput input = new FileEditorInput((IFile) marker
-                .getResource());
-        IEditorPart editorPart = page.findEditor(input);
-
-        if (editorPart == null) {
-            // open an editor
-            try {
-                editorPart = IDE.openEditor(page, (IFile) marker.getResource(),
-                        true);
-            } catch (PartInitException e) {
-                MessageDialog.openError(w.getShell(), MessageUtil
-                        .getString("Resolution_Error"), //$NON-NLS-1$
-                        MessageUtil.getString("Unable_to_open_file_editor")); //$NON-NLS-1$
-            }
-        }
-        if (editorPart == null || !(editorPart instanceof ReadmeEditor))
-            return;
-        // insert the sentence
-        ReadmeEditor editor = (ReadmeEditor) editorPart;
-        IDocument doc = editor.getDocumentProvider().getDocument(
-                editor.getEditorInput());
-        String s = MessageUtil.getString("Simple_sentence"); //$NON-NLS-1$
-        try {
-            doc.replace(marker.getAttribute(IMarker.CHAR_START, -1), 0, s);
-        } catch (BadLocationException e) {
-            // ignore
-            return;
-        }
-        // delete the marker
-        try {
-            marker.delete();
-        } catch (CoreException e) {
-            e.printStackTrace();
-            // ignore
-        }
-
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java
deleted file mode 100644
index dc224b7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DefaultSectionsParser.java
+++ /dev/null
@@ -1,169 +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.ui.examples.readmetool;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Hashtable;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * This class is a simple parser implementing the IReadmeFileParser
- * interface. It parses a Readme file into sections based on the
- * existence of numbered section tags in the input. A line beginning
- * with a number followed by a dot will be taken as a section indicator
- * (for example, 1., 2., or 12.). 
- * As well, a line beginning with a subsection-style series of numbers
- * will also be taken as a section indicator, and can be used to 
- * indicate subsections (for example, 1.1, or 1.1.12).
- */
-public class DefaultSectionsParser implements IReadmeFileParser {
-    /**
-     * Returns the mark element that is the logical parent
-     * of the given mark number.  Each dot in a mark number
-     * represents a parent-child separation.  For example,
-     * the parent of 1.2 is 1, the parent of 1.4.1 is 1.4.
-     * Returns null if there is no appropriate parent.
-     */
-    protected IAdaptable getParent(Hashtable toc, String number) {
-        int lastDot = number.lastIndexOf('.');
-        if (lastDot < 0)
-            return null;
-        String parentNumber = number.substring(0, lastDot);
-        return (IAdaptable) toc.get(parentNumber);
-    }
-
-    /**
-     * Returns a string containing the contents of the given
-     * file.  Returns an empty string if there were any errors
-     * reading the file.
-     */
-    protected String getText(IFile file) {
-        try {
-            InputStream in = file.getContents();
-            ByteArrayOutputStream out = new ByteArrayOutputStream();
-            byte[] buf = new byte[1024];
-            int read = in.read(buf);
-            while (read > 0) {
-                out.write(buf, 0, read);
-                read = in.read(buf);
-            }
-            return out.toString();
-        } catch (CoreException e) {
-            // do nothing
-        } catch (IOException e) {
-            // do nothing
-        }
-        return ""; //$NON-NLS-1$
-    }
-
-    /**
-     * Parses the input given by the argument.
-     *
-     * @param file  the element containing the input text
-     * @return an element collection representing the parsed input
-     */
-    public MarkElement[] parse(IFile file) {
-        Hashtable markTable = new Hashtable(40);
-        Vector topLevel = new Vector();
-        String s = getText(file);
-        int start = 0;
-        int end = -1;
-        int lineno = 0;
-        int lastlineno = 0;
-        MarkElement lastme = null;
-        int ix;
-
-        // parse content for headings
-        ix = s.indexOf('\n', start);
-        while (ix != -1) {
-            start = end + 1;
-            end = ix = s.indexOf('\n', start);
-            lineno++;
-            if (ix != -1) {
-                // skip blanks
-                while (s.charAt(start) == ' ' || s.charAt(start) == '\t') {
-                    start++;
-                }
-                if (Character.isDigit(s.charAt(start))) {
-                    if (lastme != null) {
-                        lastme.setNumberOfLines(lineno - lastlineno - 1);
-                    }
-                    lastlineno = lineno;
-                    String markName = parseHeading(s, start, end);
-
-                    //get the parent mark, if any.
-                    String markNumber = parseNumber(markName);
-                    IAdaptable parent = getParent(markTable, markNumber);
-                    if (parent == null)
-                        parent = file;
-
-                    MarkElement me = new MarkElement(parent, markName, start,
-                            end - start);
-                    lastme = me;
-
-                    markTable.put(markNumber, me);
-                    if (parent == file) {
-                        topLevel.add(me);
-                    }
-                }
-            }
-        }
-        if (lastme != null) {
-            // set the number of lines for the last section
-            lastme.setNumberOfLines(lineno - lastlineno - 1);
-        }
-        MarkElement[] results = new MarkElement[topLevel.size()];
-        topLevel.copyInto(results);
-        return results;
-    }
-
-    /**
-     * Creates a section name from the buffer and trims trailing
-     * space characters.
-     *
-     * @param buffer  the string from which to create the section name
-     * @param start  the start index
-     * @param end  the end index
-     * @return a section name
-     */
-    private String parseHeading(String buffer, int start, int end) {
-        while (Character.isWhitespace(buffer.charAt(end - 1)) && end > start) {
-            end--;
-        }
-        return buffer.substring(start, end);
-    }
-
-    /**
-     * Returns the number for this heading.  A heading consists
-     * of a number (an arbitrary string of numbers and dots), followed by
-     * arbitrary text.
-     */
-    protected String parseNumber(String heading) {
-        int start = 0;
-        int end = heading.length();
-        char c;
-        do {
-            c = heading.charAt(start++);
-        } while ((c == '.' || Character.isDigit(c)) && start < end);
-
-        //disregard trailing dots
-        while (heading.charAt(start - 1) == '.' && start > 0) {
-            start--;
-        }
-        return heading.substring(0, start);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java
deleted file mode 100644
index 50489ad..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/DirtyStateContribution.java
+++ /dev/null
@@ -1,100 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.action.ControlContribution;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPropertyListener;
-
-/**
- * This class demonstrates the contribution of a custom control to the 
- * status line for the readme editor.  The control shows the
- * dirty status of the editor.
- */
-public class DirtyStateContribution extends ControlContribution implements
-        IPropertyListener {
-    private Composite composite;
-
-    private Label label;
-
-    private IEditorPart activeEditor;
-
-    /**
-     * Creates a new DirtyStateContribution.
-     */
-    protected DirtyStateContribution() {
-        super("DirtyState"); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ControlContribution
-     */
-    protected Control createControl(Composite parent) {
-        // If the composite is good just return it.
-        if (composite != null && !composite.isDisposed())
-            return composite;
-
-        // Create composite for border.
-        composite = new Composite(parent, SWT.BORDER);
-        composite.setData(this);
-
-        // Create label inside composite.	
-        label = new Label(composite, SWT.NONE);
-        label.setSize(80, 15);
-
-        updateState();
-        return composite;
-    }
-
-    /**
-     * Called when an editor is activated.
-     *
-     * @see ReadmeEditorActionBarContributor#setActiveEditor(IEditorPart)
-     */
-    public void editorChanged(IEditorPart part) {
-        if (activeEditor != null) {
-            activeEditor.removePropertyListener(this);
-        }
-        activeEditor = part;
-        if (activeEditor != null) {
-            activeEditor.addPropertyListener(this);
-        }
-        updateState();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertyListener
-     */
-    public void propertyChanged(Object source, int propID) {
-        if (source instanceof IEditorPart)
-            updateState();
-    }
-
-    /**
-     * Updates the state of the label.
-     */
-    private void updateState() {
-        if (label == null || label.isDisposed())
-            return;
-
-        boolean saveNeeded = false;
-        if (activeEditor != null)
-            saveNeeded = activeEditor.isDirty();
-        if (saveNeeded)
-            label.setText(MessageUtil.getString("Save_Needed")); //$NON-NLS-1$
-        else
-            label.setText(MessageUtil.getString("Clean")); //$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java
deleted file mode 100644
index 09cbf35..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/EditorActionDelegate.java
+++ /dev/null
@@ -1,75 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * This class is used to demonstrate editor action extensions.
- * An extension should be defined in the readme plugin.xml.
- */
-public class EditorActionDelegate implements IEditorActionDelegate {
-    private IEditorPart editor;
-
-    /**
-     * Creates a new EditorActionDelegate.
-     */
-    public EditorActionDelegate() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void run(IAction action) {
-        MessageDialog.openInformation(editor.getSite().getShell(), MessageUtil
-                .getString("Readme_Editor"), //$NON-NLS-1$
-                MessageUtil.getString("Editor_Action_executed")); //$NON-NLS-1$
-    }
-
-    /** 
-     * The <code>EditorActionDelegate</code> implementation of this
-     * <code>IActionDelegate</code> method does nothing.
-     *
-     * Selection in the workbench has changed. Plugin provider
-     * can use it to change the availability of the action
-     * or to modify other presentation properties.
-     *
-     * <p>Action delegate cannot be notified about
-     * selection changes before it is loaded. For that reason,
-     * control of action's enable state should also be performed
-     * through simple XML rules defined for the extension
-     * point. These rules allow enable state control before
-     * the delegate has been loaded.</p>
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        // do nothing
-    }
-
-    /** 
-     * The <code>EditorActionDelegate</code> implementation of this
-     * <code>IEditorActionDelegate</code> method remembers the active editor.
-     *
-     * The matching editor has been activated. Notification
-     * guarantees that only editors that match the type for which 
-     * this action has been registered will be tracked.
-     *
-     * @param action action proxy that represents this delegate in the workbench
-     * @param editor the matching editor that has been activated
-     */
-    public void setActiveEditor(IAction action, IEditorPart editor) {
-        this.editor = editor;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java
deleted file mode 100644
index dda2fe7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeConstants.java
+++ /dev/null
@@ -1,97 +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.ui.examples.readmetool;
-
-/**
- * This interface contains constants for use only within the
- * Readme example.
- */
-public interface IReadmeConstants {
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.readmetool"; //$NON-NLS-1$
-
-    public static final String PREFIX = PLUGIN_ID + "."; //$NON-NLS-1$
-
-    public static final String P_CONTENT_OUTLINE = PREFIX + "content_outline"; //$NON-NLS-1$
-
-    public static final String P_SECTIONS = PREFIX + "sections"; //$NON-NLS-1$
-
-    public static final String EXTENSION = "readme"; //$NON-NLS-1$
-
-    public static final String TAG_PARSER = "parser"; //$NON-NLS-1$
-
-    public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-    public static final String PP_SECTION_PARSER = "sectionParser"; //$NON-NLS-1$
-
-    // Global actions
-    public static final String RETARGET2 = PREFIX + "retarget2"; //$NON-NLS-1$
-
-    public static final String LABELRETARGET3 = PREFIX + "labelretarget3"; //$NON-NLS-1$
-
-    public static final String ACTION_SET_RETARGET4 = "org_eclipse_ui_examples_readmetool_readmeRetargetAction"; //$NON-NLS-1$
-
-    public static final String ACTION_SET_LABELRETARGET5 = "org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction"; //$NON-NLS-1$
-
-    // Preference constants
-    public static final String PRE_CHECK1 = PREFIX + "check1"; //$NON-NLS-1$
-
-    public static final String PRE_CHECK2 = PREFIX + "check2"; //$NON-NLS-1$
-
-    public static final String PRE_CHECK3 = PREFIX + "check3"; //$NON-NLS-1$
-
-    public static final String PRE_RADIO_CHOICE = PREFIX + "radio_choice"; //$NON-NLS-1$
-
-    public static final String PRE_TEXT = PREFIX + "text"; //$NON-NLS-1$
-
-    // Help context ids
-    public static final String EDITOR_ACTION1_CONTEXT = PREFIX
-            + "editor_action1_context"; //$NON-NLS-1$
-
-    public static final String EDITOR_ACTION2_CONTEXT = PREFIX
-            + "editor_action2_context"; //$NON-NLS-1$
-
-    public static final String EDITOR_ACTION3_CONTEXT = PREFIX
-            + "editor_action3_context"; //$NON-NLS-1$
-
-    public static final String SECTIONS_VIEW_CONTEXT = PREFIX
-            + "sections_view_context"; //$NON-NLS-1$
-
-    public static final String PREFERENCE_PAGE_CONTEXT = PREFIX
-            + "preference_page_context"; //$NON-NLS-1$
-
-    public static final String PROPERTY_PAGE_CONTEXT = PREFIX
-            + "property_page_context"; //$NON-NLS-1$
-
-    public static final String PROPERTY_PAGE2_CONTEXT = PREFIX
-            + "property_page2_context"; //$NON-NLS-1$
-
-    public static final String EDITOR_CONTEXT = PREFIX + "editor_context"; //$NON-NLS-1$
-
-    public static final String SECTIONS_DIALOG_CONTEXT = PREFIX
-            + "sections_dialog_context"; //$NON-NLS-1$
-
-    public static final String CONTENT_OUTLINE_PAGE_CONTEXT = PREFIX
-            + "content_outline_page_context"; //$NON-NLS-1$
-
-    public static final String CREATION_WIZARD_PAGE_CONTEXT = PREFIX
-            + "creation_wizard_page_context"; //$NON-NLS-1$
-
-    // Marker attributes
-    public static final String MARKER_ATT_ID = PREFIX + "id"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_LEVEL = PREFIX + "level"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_DEPT = PREFIX + "department"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_CODE = PREFIX + "code"; //$NON-NLS-1$
-
-    public static final String MARKER_ATT_LANG = PREFIX + "language"; //$NON-NLS-1$
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java
deleted file mode 100644
index ce00f30..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/IReadmeFileParser.java
+++ /dev/null
@@ -1,29 +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.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * This interface is used as API for the Readme parser extension 
- * point. The default implementation simply looks for lines
- * in the file that start with a number and assumes that they
- * represent sections. Tools are allowed to replace this 
- * algorithm by defining an extension and supplying an 
- * alternative that implements this interface.
- */
-public interface IReadmeFileParser {
-    /**
-     * Parses the contents of the provided file
-     * and generates a collection of sections.
-     */
-    public MarkElement[] parse(IFile readmeFile);
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java
deleted file mode 100644
index 7a5d8d8..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElement.java
+++ /dev/null
@@ -1,151 +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.ui.examples.readmetool;
-
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.views.properties.IPropertySource;
-
-/**
- * This class represents a marked location in the Readme
- * file text.  
- *
- * TIP: By implementing the <code>IWorkbenchAdapter</code> interface,
- * we can easily add objects of this type to viewers and parts in
- * the workbench.  When a viewer contains <code>IWorkbenchAdapter</code>,
- * the generic <code>WorkbenchContentProvider</code> and
- * <code>WorkbenchLabelProvider</code> can be used to provide
- * navigation and display for that viewer.
- */
-public class MarkElement implements IWorkbenchAdapter, IAdaptable {
-    private String headingName;
-
-    private IAdaptable parent;
-
-    private int offset;
-
-    private int numberOfLines;
-
-    private int length;
-
-    private Vector children;
-
-    /**
-     * Creates a new MarkElement and stores parent element and
-     * location in the text.
-     *
-     * @param parent  the parent of this element
-     * @param heading text corresponding to the heading
-     * @param offset  the offset into the Readme text
-     * @param length  the length of the element
-     */
-    public MarkElement(IAdaptable parent, String heading, int offset, int length) {
-        this.parent = parent;
-        if (parent instanceof MarkElement) {
-            ((MarkElement) parent).addChild(this);
-        }
-        this.headingName = heading;
-        this.offset = offset;
-        this.length = length;
-    }
-
-    /**
-     * Adds a child to this element
-     */
-    private void addChild(MarkElement child) {
-        if (children == null) {
-            children = new Vector();
-        }
-        children.add(child);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IWorkbenchAdapter.class)
-            return this;
-        if (adapter == IPropertySource.class)
-            return new MarkElementProperties(this);
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object[] getChildren(Object object) {
-        if (children != null) {
-            return children.toArray();
-        }
-        return new Object[0];
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        IWorkbenchAdapter parentElement = (IWorkbenchAdapter) parent
-                .getAdapter(IWorkbenchAdapter.class);
-        if (parentElement != null) {
-            return parentElement.getImageDescriptor(object);
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public String getLabel(Object o) {
-        return headingName;
-    }
-
-    /**
-     * Returns the number of characters in this section.
-     */
-    public int getLength() {
-        return length;
-    }
-
-    /**
-     * Returns the number of lines in the element.
-     *
-     * @return the number of lines in the element
-     */
-    public int getNumberOfLines() {
-        return numberOfLines;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchAdapter
-     */
-    public Object getParent(Object o) {
-        return null;
-    }
-
-    /**
-     * Returns the offset of this section in the file.
-     */
-    public int getStart() {
-        return offset;
-    }
-
-    /**
-     * Sets the number of lines in the element
-     *
-     * @param newNumberOfLines  the number of lines in the element
-     */
-    public void setNumberOfLines(int newNumberOfLines) {
-        numberOfLines = newNumberOfLines;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java
deleted file mode 100644
index 58379e5..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MarkElementProperties.java
+++ /dev/null
@@ -1,106 +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.ui.examples.readmetool;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-/**
- * This class encapsulates property sheet properties
- * for MarkElement.  This will display properties for
- * the MarkElement when selected in the readme editor's
- * content outline.
- */
-public class MarkElementProperties implements IPropertySource {
-    protected MarkElement element;
-
-    protected static final String PROPERTY_LINECOUNT = "lineno"; //$NON-NLS-1$
-
-    protected static final String PROPERTY_START = "start"; //$NON-NLS-1$
-
-    protected static final String PROPERTY_LENGTH = "length"; //$NON-NLS-1$
-
-    /**
-     * Creates a new MarkElementProperties.
-     *
-     * @param element  the element whose properties this instance represents
-     */
-    public MarkElementProperties(MarkElement element) {
-        super();
-        this.element = element;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getEditableValue() {
-        return this;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public IPropertyDescriptor[] getPropertyDescriptors() {
-        // Create the property vector.
-        IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[3];
-
-        // Add each property supported.
-        PropertyDescriptor descriptor;
-
-        descriptor = new PropertyDescriptor(PROPERTY_LINECOUNT, MessageUtil
-                .getString("Line_count")); //$NON-NLS-1$
-        propertyDescriptors[0] = descriptor;
-        descriptor = new PropertyDescriptor(PROPERTY_START, MessageUtil
-                .getString("Title_start")); //$NON-NLS-1$
-        propertyDescriptors[1] = descriptor;
-        descriptor = new PropertyDescriptor(PROPERTY_LENGTH, MessageUtil
-                .getString("Title_length")); //$NON-NLS-1$
-        propertyDescriptors[2] = descriptor;
-
-        // Return it.
-        return propertyDescriptors;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public Object getPropertyValue(Object name) {
-        if (name.equals(PROPERTY_LINECOUNT))
-            return new Integer(element.getNumberOfLines());
-        if (name.equals(PROPERTY_START))
-            return new Integer(element.getStart());
-        if (name.equals(PROPERTY_LENGTH))
-            return new Integer(element.getLength());
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public boolean isPropertySet(Object property) {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void resetPropertyValue(Object property) {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IPropertySource
-     */
-    public void setPropertyValue(Object name, Object value) {
-        // do nothing
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java
deleted file mode 100644
index 44e2ce1..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/MessageUtil.java
+++ /dev/null
@@ -1,58 +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.ui.examples.readmetool;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Utility class which helps with managing messages.
- */
-/* package */class MessageUtil {
-
-    private static final String RESOURCE_BUNDLE = "org.eclipse.ui.examples.readmetool.messages";//$NON-NLS-1$
-
-    private static ResourceBundle fgResourceBundle = ResourceBundle
-            .getBundle(RESOURCE_BUNDLE);
-
-    private MessageUtil() {
-        // prevent instantiation of class
-    }
-
-    /**
-     * Returns the formatted message for the given key in
-     * the resource bundle. 
-     *
-     * @param key the resource name
-     * @param args the message arguments
-     * @return the string
-     */
-    public static String format(String key, Object[] args) {
-        return MessageFormat.format(getString(key), args);
-    }
-
-    /**
-     * Returns the resource object with the given key in
-     * the resource bundle. If there isn't any value under
-     * the given key, the key is returned, surrounded by '!'s.
-     *
-     * @param key the resource name
-     * @return the string
-     */
-    public static String getString(String key) {
-        try {
-            return fgResourceBundle.getString(key);
-        } catch (MissingResourceException e) {
-            return "!" + key + "!";//$NON-NLS-2$ //$NON-NLS-1$
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java
deleted file mode 100644
index 89b5cc3..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/PopupMenuActionDelegate.java
+++ /dev/null
@@ -1,48 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * Action delegate for handling popup menu actions on a readme file.
- */
-public class PopupMenuActionDelegate implements IObjectActionDelegate {
-
-    private IWorkbenchPart part;
-
-    /** (non-Javadoc)
-     * Method declared on IDropActionDelegate
-     */
-    public void run(IAction action) {
-        MessageDialog.openInformation(this.part.getSite().getShell(),
-                MessageUtil.getString("Readme_Example"), //$NON-NLS-1$
-                MessageUtil.getString("Popup_Menu_Action_executed")); //$NON-NLS-1$
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        //Ignored for this example
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IObjectActionDelegate
-     */
-    public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-        this.part = targetPart;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java
deleted file mode 100644
index ff4ab63..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlineDragListener.java
+++ /dev/null
@@ -1,71 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.dnd.DragSourceAdapter;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.ui.part.PluginTransfer;
-import org.eclipse.ui.part.PluginTransferData;
-
-/**
- * A drag listener for the readme editor's content outline page.
- * Allows dragging of content segments into views that support
- * the <code>TextTransfer</code> or <code>PluginTransfer</code> transfer types.
- */
-public class ReadmeContentOutlineDragListener extends DragSourceAdapter {
-    private ReadmeContentOutlinePage page;
-
-    /**
-     * Creates a new drag listener for the given page.
-     */
-    public ReadmeContentOutlineDragListener(ReadmeContentOutlinePage page) {
-        this.page = page;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on DragSourceListener
-     */
-    public void dragSetData(DragSourceEvent event) {
-        if (PluginTransfer.getInstance().isSupportedType(event.dataType)) {
-            byte[] segmentData = getSegmentText().getBytes();
-            event.data = new PluginTransferData(ReadmeDropActionDelegate.ID,
-                    segmentData);
-            return;
-        }
-        if (TextTransfer.getInstance().isSupportedType(event.dataType)) {
-            event.data = getSegmentText();
-            return;
-        }
-    }
-
-    /**
-     * Returns the text of the currently selected readme segment.
-     */
-    private String getSegmentText() {
-        StringBuffer result = new StringBuffer();
-        ISelection selection = page.getSelection();
-        if (selection instanceof org.eclipse.jface.viewers.IStructuredSelection) {
-            Object[] selected = ((IStructuredSelection) selection).toArray();
-            result.append("\n"); //$NON-NLS-1$
-            for (int i = 0; i < selected.length; i++) {
-                if (selected[i] instanceof MarkElement) {
-                    result.append(((MarkElement) selected[i])
-                            .getLabel(selected[i]));
-                    result.append("\n"); //$NON-NLS-1$
-                }
-            }
-        }
-        return result.toString();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java
deleted file mode 100644
index e25ee80..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeContentOutlinePage.java
+++ /dev/null
@@ -1,151 +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.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.PluginTransfer;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-
-/**
- * Content outline page for the readme editor.
- */
-public class ReadmeContentOutlinePage extends ContentOutlinePage {
-    protected IFile input;
-
-    class OutlineAction extends Action {
-        private Shell shell;
-
-        public OutlineAction(String label) {
-            super(label);
-            getTreeViewer().addSelectionChangedListener(
-                    new ISelectionChangedListener() {
-                        public void selectionChanged(SelectionChangedEvent event) {
-                            setEnabled(!event.getSelection().isEmpty());
-                        }
-                    });
-        }
-
-        public void setShell(Shell shell) {
-            this.shell = shell;
-        }
-
-        public void run() {
-            MessageDialog.openInformation(shell, MessageUtil
-                    .getString("Readme_Outline"), //$NON-NLS-1$
-                    MessageUtil.getString("ReadmeOutlineActionExecuted")); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Creates a new ReadmeContentOutlinePage.
-     */
-    public ReadmeContentOutlinePage(IFile input) {
-        super();
-        this.input = input;
-    }
-
-    /**  
-     * Creates the control and registers the popup menu for this page
-     * Menu id "org.eclipse.ui.examples.readmetool.outline"
-     */
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-                IReadmeConstants.CONTENT_OUTLINE_PAGE_CONTEXT);
-
-        TreeViewer viewer = getTreeViewer();
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.setInput(getContentOutline(input));
-        initDragAndDrop();
-
-        // Configure the context menu.
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-                + "-end")); //$NON-NLS-1$
-
-        Menu menu = menuMgr.createContextMenu(viewer.getTree());
-        viewer.getTree().setMenu(menu);
-        // Be sure to register it so that other plug-ins can add actions.
-        getSite().registerContextMenu(
-                "org.eclipse.ui.examples.readmetool.outline", menuMgr, viewer); //$NON-NLS-1$
-
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.RETARGET2,
-                new OutlineAction(MessageUtil.getString("Outline_Action2"))); //$NON-NLS-1$
-
-        OutlineAction action = new OutlineAction(MessageUtil
-                .getString("Outline_Action3")); //$NON-NLS-1$
-        action.setToolTipText(MessageUtil.getString("Readme_Outline_Action3")); //$NON-NLS-1$
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.LABELRETARGET3, action);
-        action = new OutlineAction(MessageUtil.getString("Outline_Action4")); //$NON-NLS-1$
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.ACTION_SET_RETARGET4, action);
-        action = new OutlineAction(MessageUtil.getString("Outline_Action5")); //$NON-NLS-1$
-        action.setToolTipText(MessageUtil.getString("Readme_Outline_Action5")); //$NON-NLS-1$
-        getSite().getActionBars().setGlobalActionHandler(
-                IReadmeConstants.ACTION_SET_LABELRETARGET5, action);
-    }
-
-    /**
-     * Gets the content outline for a given input element.
-     * Returns the outline (a list of MarkElements), or null
-     * if the outline could not be generated.
-     */
-    private IAdaptable getContentOutline(IAdaptable input) {
-        return ReadmeModelFactory.getInstance().getContentOutline(input);
-    }
-
-    /**
-     * Initializes drag and drop for this content outline page.
-     */
-    private void initDragAndDrop() {
-        int ops = DND.DROP_COPY | DND.DROP_MOVE;
-        Transfer[] transfers = new Transfer[] { TextTransfer.getInstance(),
-                PluginTransfer.getInstance() };
-        getTreeViewer().addDragSupport(ops, transfers,
-                new ReadmeContentOutlineDragListener(this));
-    }
-
-    /**
-     * Forces the page to update its contents.
-     *
-     * @see ReadmeEditor#doSave(IProgressMonitor)
-     */
-    public void update() {
-        getControl().setRedraw(false);
-        getTreeViewer().setInput(getContentOutline(input));
-        getTreeViewer().expandAll();
-        getControl().setRedraw(true);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java
deleted file mode 100644
index 71f7460..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationPage.java
+++ /dev/null
@@ -1,204 +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.examples.readmetool;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
-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.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * This class is the only page of the Readme file resource creation wizard.  
- * It subclasses the standard file resource creation page class, 
- * and consequently inherits the file resource creation functionality.
- *
- * This page provides users with the choice of creating sample headings for
- * sections and subsections.  Additionally, the option is presented to open
- * the file immediately for editing after creation.
- */
-public class ReadmeCreationPage extends WizardNewFileCreationPage {
-    private IWorkbench workbench;
-
-    // widgets
-    private Button sectionCheckbox;
-
-    private Button subsectionCheckbox;
-
-    private Button openFileCheckbox;
-
-    // constants
-    private static int nameCounter = 1;
-
-    /**
-     * Creates the page for the readme creation wizard.
-     *
-     * @param workbench  the workbench on which the page should be created
-     * @param selection  the current selection
-     */
-    public ReadmeCreationPage(IWorkbench workbench,
-            IStructuredSelection selection) {
-        super("sampleCreateReadmePage1", selection); //$NON-NLS-1$
-        this.setTitle(MessageUtil.getString("Create_Readme_File")); //$NON-NLS-1$
-        this.setDescription(MessageUtil
-                .getString("Create_a_new_Readme_file_resource")); //$NON-NLS-1$
-        this.workbench = workbench;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IDialogPage.
-     */
-    public void createControl(Composite parent) {
-        // inherit default container and name specification widgets
-        super.createControl(parent);
-        Composite composite = (Composite) getControl();
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(composite,
-				IReadmeConstants.CREATION_WIZARD_PAGE_CONTEXT);
-
-        this.setFileName("sample" + nameCounter + ".readme"); //$NON-NLS-1$ //$NON-NLS-2$
-
-        // sample section generation group
-        Group group = new Group(composite, SWT.NONE);
-        group.setLayout(new GridLayout());
-        group.setText(MessageUtil
-                .getString("Automatic_sample_section_generation")); //$NON-NLS-1$
-        group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-                | GridData.HORIZONTAL_ALIGN_FILL));
-
-        // sample section generation checkboxes
-        sectionCheckbox = new Button(group, SWT.CHECK);
-        sectionCheckbox.setText(MessageUtil
-                .getString("Generate_sample_section_titles")); //$NON-NLS-1$
-        sectionCheckbox.setSelection(true);
-        sectionCheckbox.addListener(SWT.Selection, this);
-
-        subsectionCheckbox = new Button(group, SWT.CHECK);
-        subsectionCheckbox.setText(MessageUtil
-                .getString("Generate_sample_subsection_titles")); //$NON-NLS-1$
-        subsectionCheckbox.setSelection(true);
-        subsectionCheckbox.addListener(SWT.Selection, this);
-
-        // open file for editing checkbox
-        openFileCheckbox = new Button(composite, SWT.CHECK);
-        openFileCheckbox.setText(MessageUtil
-                .getString("Open_file_for_editing_when_done")); //$NON-NLS-1$
-        openFileCheckbox.setSelection(true);
-
-        setPageComplete(validatePage());
-
-    }
-
-    /**
-     * Creates a new file resource as requested by the user. If everything
-     * is OK then answer true. If not, false will cause the dialog
-     * to stay open.
-     *
-     * @return whether creation was successful
-     * @see ReadmeCreationWizard#performFinish()
-     */
-    public boolean finish() {
-        // create the new file resource
-        IFile newFile = createNewFile();
-        if (newFile == null)
-            return false; // ie.- creation was unsuccessful
-
-        // Since the file resource was created fine, open it for editing
-        // if requested by the user
-        try {
-            if (openFileCheckbox.getSelection()) {
-                IWorkbenchWindow dwindow = workbench.getActiveWorkbenchWindow();
-                IWorkbenchPage page = dwindow.getActivePage();
-                if (page != null) {
-                    IDE.openEditor(page, newFile, true);
-                }
-            }
-        } catch (PartInitException e) {
-            e.printStackTrace();
-            return false;
-        }
-        nameCounter++;
-        return true;
-    }
-
-    /** 
-     * The <code>ReadmeCreationPage</code> implementation of this
-     * <code>WizardNewFileCreationPage</code> method 
-     * generates sample headings for sections and subsections in the
-     * newly-created Readme file according to the selections of self's
-     * checkbox widgets
-     */
-    protected InputStream getInitialContents() {
-        if (!sectionCheckbox.getSelection())
-            return null;
-
-        StringBuffer sb = new StringBuffer();
-        sb.append(MessageUtil.getString("SAMPLE_README_FILE")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_1")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_1_BODY_1")); //$NON-NLS-1$
-
-        if (subsectionCheckbox.getSelection()) {
-            sb.append(MessageUtil.getString("Subsection_1_1")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_1_1_Body_1")); //$NON-NLS-1$
-        }
-
-        sb.append(MessageUtil.getString("SECTION_2")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_2_BODY_1")); //$NON-NLS-1$
-        sb.append(MessageUtil.getString("SECTION_2_BODY_2")); //$NON-NLS-1$
-
-        if (subsectionCheckbox.getSelection()) {
-            sb.append(MessageUtil.getString("Subsection_2_1")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_2_1_BODY_1")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_2_2")); //$NON-NLS-1$
-            sb.append(MessageUtil.getString("Subsection_2_2_BODY_1")); //$NON-NLS-1$
-        }
-
-        return new ByteArrayInputStream(sb.toString().getBytes());
-    }
-
-    /** (non-Javadoc)
-     * Method declared on WizardNewFileCreationPage.
-     */
-    protected String getNewFileLabel() {
-        return MessageUtil.getString("Readme_file_name"); //$NON-NLS-1$
-    }
-
-    /** (non-Javadoc)
-     * Method declared on WizardNewFileCreationPage.
-     */
-    public void handleEvent(Event e) {
-        Widget source = e.widget;
-
-        if (source == sectionCheckbox) {
-            if (!sectionCheckbox.getSelection())
-                subsectionCheckbox.setSelection(false);
-            subsectionCheckbox.setEnabled(sectionCheckbox.getSelection());
-        }
-
-        super.handleEvent(e);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java
deleted file mode 100644
index 615d1dc..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeCreationWizard.java
+++ /dev/null
@@ -1,53 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * This class implements the interface required by the workbench
- * for all 'New' wizards.  This wizard creates readme files.
- */
-public class ReadmeCreationWizard extends Wizard implements INewWizard {
-    private IStructuredSelection selection;
-
-    private IWorkbench workbench;
-
-    private ReadmeCreationPage mainPage;
-
-    /** (non-Javadoc)
-     * Method declared on Wizard.
-     */
-    public void addPages() {
-        mainPage = new ReadmeCreationPage(workbench, selection);
-        addPage(mainPage);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IWorkbenchWizard
-     */
-    public void init(IWorkbench workbench, IStructuredSelection selection) {
-        this.workbench = workbench;
-        this.selection = selection;
-        setWindowTitle(MessageUtil.getString("New_Readme_File")); //$NON-NLS-1$
-        setDefaultPageImageDescriptor(ReadmeImages.README_WIZARD_BANNER);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IWizard
-     */
-    public boolean performFinish() {
-        return mainPage.finish();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java
deleted file mode 100644
index e4b7cf4..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeDropActionDelegate.java
+++ /dev/null
@@ -1,47 +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.ui.examples.readmetool;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.part.IDropActionDelegate;
-
-/**
- * Adapter for handling the dropping of readme segments into
- * another plugin.  In this case, we expect the segments
- * to be dropped onto <code>IFile</code> object, or an adapter 
- * that supports <code>IFile</code>.
- */
-public class ReadmeDropActionDelegate implements IDropActionDelegate {
-    public static final String ID = "org_eclipse_ui_examples_readmetool_drop_actions"; //$NON-NLS-1$
-
-    /** (non-Javadoc)
-     * Method declared on IDropActionDelegate
-     */
-    public boolean run(Object source, Object target) {
-        if (source instanceof byte[] && target instanceof IFile) {
-            IFile file = (IFile) target;
-            try {
-                file.appendContents(new ByteArrayInputStream((byte[]) source),
-                        false, true, null);
-            } catch (CoreException e) {
-                System.out
-                        .println(MessageUtil
-                                .getString("Exception_in_readme_drop_adapter") + e.getStatus().getMessage()); //$NON-NLS-1$
-                return false;
-            }
-            return true;
-        }
-        return false;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java
deleted file mode 100644
index 58e08d5..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditor.java
+++ /dev/null
@@ -1,208 +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.ui.examples.readmetool;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.dnd.IDragAndDropService;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-/**
- * This class implements the Readme editor.  Since the readme
- * editor is mostly just a text editor, there is very little
- * implemented in this actual class.  It can be regarded as
- * simply decorating the text editor with a content outline.
- */
-public class ReadmeEditor extends TextEditor {
-    protected ReadmeContentOutlinePage page;
-
-    /**
-     * Creates a new ReadmeEditor.
-     */
-    public ReadmeEditor() {
-        super();
-    }
-
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.texteditor.StatusTextEditor#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		
-		StyledText tw = getSourceViewer().getTextWidget();
-		
-		// Add a 'TextTransfer' drop target to the editor
-		int ops = DND.DROP_DEFAULT | DND.DROP_COPY;
-		Transfer[] transfers = { TextTransfer.getInstance() };
-		DropTargetListener editorListener = new DropTargetListener() {
-
-			public void dragEnter(DropTargetEvent event) {
-				event.detail = DND.DROP_COPY;
-			}
-
-			public void dragLeave(DropTargetEvent event) {
-			}
-
-			public void dragOperationChanged(DropTargetEvent event) {
-				event.detail = DND.DROP_COPY;
-			}
-
-			public void dragOver(DropTargetEvent event) {
-				event.feedback = DND.FEEDBACK_SCROLL | DND.FEEDBACK_SELECT;
-			}
-
-			public void drop(DropTargetEvent event) {
-		        if (TextTransfer.getInstance().isSupportedType(event.currentDataType)) {
-					String text = (String) event.data;
-					getSourceViewer().getTextWidget().insert(text);
-				} 
-			}
-
-			public void dropAccept(DropTargetEvent event) {
-			}
-			
-		};
-		
-		IDragAndDropService dtSvc = (IDragAndDropService) getSite().getService(IDragAndDropService.class);
-		dtSvc.addMergedDropTarget(tw, ops, transfers, editorListener);
-	}
-	
-    /** (non-Javadoc)
-     * Method declared on IEditorPart
-     */
-    public void doSave(IProgressMonitor monitor) {
-        super.doSave(monitor);
-        if (page != null)
-            page.update();
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IAdaptable
-     */
-    public Object getAdapter(Class key) {
-        if (key.equals(IContentOutlinePage.class)) {
-            IEditorInput input = getEditorInput();
-            if (input instanceof IFileEditorInput) {
-                page = new ReadmeContentOutlinePage(((IFileEditorInput) input)
-                        .getFile());
-                return page;
-            }
-        }
-        return super.getAdapter(key);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on AbstractTextEditor
-     */
-    protected void editorContextMenuAboutToShow(IMenuManager parentMenu) {
-        super.editorContextMenuAboutToShow(parentMenu);
-        parentMenu.add(new Separator());
-        IMenuManager subMenu = new MenuManager(MessageUtil.getString("Add")); //$NON-NLS-1$
-        parentMenu.add(subMenu);
-        if (subMenu != null) {
-            // Add readme actions with various attributes
-            Object[][] att = new Object[][] { { IReadmeConstants.MARKER_ATT_ID,
-                    new Integer(1234) } };
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "1", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " id=1234")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] { { IReadmeConstants.MARKER_ATT_LEVEL,
-                    new Integer(7) } };
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "2", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " level=7")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] {
-                    { IReadmeConstants.MARKER_ATT_LEVEL, new Integer(7) },
-                    { IReadmeConstants.MARKER_ATT_DEPT, "infra" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "3", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " level=7, department=infra")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] { { IReadmeConstants.MARKER_ATT_CODE, "red" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "4", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " code=red")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] { { IReadmeConstants.MARKER_ATT_LANG,
-                    "english" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "5", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " language=english")); //$NON-NLS-1$ //$NON-NLS-2$
-
-            att = new Object[][] {
-                    { IReadmeConstants.MARKER_ATT_ID, new Integer(1234) },
-                    { IReadmeConstants.MARKER_ATT_LEVEL, new Integer(7) },
-                    { IReadmeConstants.MARKER_ATT_DEPT, "infra" }, //$NON-NLS-1$
-                    { IReadmeConstants.MARKER_ATT_CODE, "red" }, //$NON-NLS-1$
-                    { IReadmeConstants.MARKER_ATT_LANG, "english" } }; //$NON-NLS-1$
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "6", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + //$NON-NLS-1$
-                                    " id=1234, level=7, department=infra, code=red, language=english")); //$NON-NLS-1$
-
-            att = new Object[0][0];
-            subMenu
-                    .add(new AddReadmeMarkerAction(
-                            this,
-                            MessageUtil
-                                    .getString("Add_readme_marker_action_label") + "7", //$NON-NLS-1$ //$NON-NLS-2$
-                            att,
-                            MessageUtil
-                                    .getString("Readme_marker_message_example") + " No attributes specified")); //$NON-NLS-1$ //$NON-NLS-2$
-        }
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java
deleted file mode 100644
index 58c466a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeEditorActionBarContributor.java
+++ /dev/null
@@ -1,219 +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.examples.readmetool;
-
-import org.eclipse.jface.action.Action;
-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.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.LabelRetargetAction;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.texteditor.BasicTextEditorActionContributor;
-
-/**
- * This class demonstrates action contribution for the readme editor.
- * A number of menu, toolbar, and status line contributions are defined
- * in the workbench window.  These actions are shared among all 
- * readme editors, and are only visible when a readme editor is 
- * active.  Otherwise, they are invisible.
- */
-public class ReadmeEditorActionBarContributor extends
-        BasicTextEditorActionContributor {
-    private EditorAction action1;
-
-    private RetargetAction action2;
-
-    private LabelRetargetAction action3;
-
-    private EditorAction handler2;
-
-    private EditorAction handler3;
-
-    private EditorAction handler4;
-
-    private EditorAction handler5;
-
-    private DirtyStateContribution dirtyStateContribution;
-
-    class EditorAction extends Action {
-        private Shell shell;
-
-        private IEditorPart activeEditor;
-
-        public EditorAction(String label) {
-            super(label);
-        }
-
-        public void setShell(Shell shell) {
-            this.shell = shell;
-        }
-
-        public void run() {
-            String editorName = MessageUtil.getString("Empty_Editor_Name"); //$NON-NLS-1$
-            if (activeEditor != null)
-                editorName = activeEditor.getTitle();
-            MessageDialog
-                    .openInformation(
-                            shell,
-                            MessageUtil.getString("Readme_Editor"), //$NON-NLS-1$
-                            MessageUtil
-                                    .format(
-                                            "ReadmeEditorActionExecuted", new Object[] { getText(), editorName })); //$NON-NLS-1$
-        }
-
-        public void setActiveEditor(IEditorPart part) {
-            activeEditor = part;
-        }
-    }
-
-    /**
-     * Creates a new ReadmeEditorActionBarContributor.
-     */
-    public ReadmeEditorActionBarContributor() {
-        action1 = new EditorAction(MessageUtil.getString("Editor_Action1")); //$NON-NLS-1$
-        action1.setToolTipText(MessageUtil.getString("Readme_Editor_Action1")); //$NON-NLS-1$
-        action1
-                .setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_DISABLE);
-        action1.setImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_ENABLE);
-        action1.setHoverImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE);
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(action1, IReadmeConstants.EDITOR_ACTION1_CONTEXT);
-
-        action2 = new RetargetAction(IReadmeConstants.RETARGET2, MessageUtil
-                .getString("Editor_Action2")); //$NON-NLS-1$
-        action2.setToolTipText(MessageUtil.getString("Readme_Editor_Action2")); //$NON-NLS-1$
-        action2
-                .setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_DISABLE);
-        action2.setImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_ENABLE);
-        action2.setHoverImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE);
-
-        action3 = new LabelRetargetAction(IReadmeConstants.LABELRETARGET3,
-                MessageUtil.getString("Editor_Action3")); //$NON-NLS-1$
-        action3
-                .setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_DISABLE);
-        action3.setImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_ENABLE);
-        action3.setHoverImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE);
-
-        handler2 = new EditorAction(MessageUtil.getString("Editor_Action2")); //$NON-NLS-1$
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(action2, IReadmeConstants.EDITOR_ACTION2_CONTEXT);
-
-        handler3 = new EditorAction(MessageUtil.getString("Editor_Action3")); //$NON-NLS-1$
-        handler3.setToolTipText(MessageUtil.getString("Readme_Editor_Action3")); //$NON-NLS-1$
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(action3, IReadmeConstants.EDITOR_ACTION3_CONTEXT);
-
-        handler4 = new EditorAction(MessageUtil.getString("Editor_Action4")); //$NON-NLS-1$
-        handler5 = new EditorAction(MessageUtil.getString("Editor_Action5")); //$NON-NLS-1$
-        handler5.setToolTipText(MessageUtil.getString("Readme_Editor_Action5")); //$NON-NLS-1$
-
-        dirtyStateContribution = new DirtyStateContribution();
-    }
-
-    /** (non-Javadoc)
-     * Method declared on EditorActionBarContributor
-     */
-    public void contributeToMenu(IMenuManager menuManager) {
-        // Run super.
-        super.contributeToMenu(menuManager);
-
-        // Editor-specitic menu
-        MenuManager readmeMenu = new MenuManager(MessageUtil
-                .getString("Readme_Menu")); //$NON-NLS-1$
-        // It is important to append the menu to the
-        // group "additions". This group is created
-        // between "Project" and "Tools" menus
-        // for this purpose.
-        menuManager.insertAfter("additions", readmeMenu); //$NON-NLS-1$
-        readmeMenu.add(action1);
-        readmeMenu.add(action2);
-        readmeMenu.add(action3);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on EditorActionBarContributor
-     */
-    public void contributeToStatusLine(IStatusLineManager statusLineManager) {
-        // Run super.
-        super.contributeToStatusLine(statusLineManager);
-        // Test status line.	
-        statusLineManager.setMessage(MessageUtil.getString("Editor_is_active")); //$NON-NLS-1$
-        statusLineManager.add(dirtyStateContribution);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on EditorActionBarContributor
-     */
-    public void contributeToToolBar(IToolBarManager toolBarManager) {
-        // Run super.
-        super.contributeToToolBar(toolBarManager);
-
-        // Add toolbar stuff.
-        toolBarManager.add(new Separator("ReadmeEditor")); //$NON-NLS-1$
-        toolBarManager.add(action1);
-        toolBarManager.add(action2);
-        toolBarManager.add(action3);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IEditorActionBarContributor
-     */
-    public void dispose() {
-        // Remove retarget actions as page listeners
-        getPage().removePartListener(action2);
-        getPage().removePartListener(action3);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IEditorActionBarContributor
-     */
-    public void init(IActionBars bars, IWorkbenchPage page) {
-        super.init(bars, page);
-        bars.setGlobalActionHandler(IReadmeConstants.RETARGET2, handler2);
-        bars.setGlobalActionHandler(IReadmeConstants.LABELRETARGET3, handler3);
-        bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_RETARGET4,
-                handler4);
-        bars.setGlobalActionHandler(IReadmeConstants.ACTION_SET_LABELRETARGET5,
-                handler5);
-
-        // Hook retarget actions as page listeners
-        page.addPartListener(action2);
-        page.addPartListener(action3);
-        IWorkbenchPart activePart = page.getActivePart();
-        if (activePart != null) {
-            action2.partActivated(activePart);
-            action3.partActivated(activePart);
-        }
-    }
-
-    /** (non-Javadoc)
-     * Method declared on IEditorActionBarContributor
-     */
-    public void setActiveEditor(IEditorPart editor) {
-        // Run super.
-        super.setActiveEditor(editor);
-
-        // Target shared actions to new editor
-        action1.setActiveEditor(editor);
-        handler2.setActiveEditor(editor);
-        handler3.setActiveEditor(editor);
-        handler4.setActiveEditor(editor);
-        handler5.setActiveEditor(editor);
-        dirtyStateContribution.editorChanged(editor);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java
deleted file mode 100644
index fa02051..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage.java
+++ /dev/null
@@ -1,192 +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.ui.examples.readmetool;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Canvas;
-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.dialogs.PropertyPage;
-
-/**
- * This page will be added to the property page dialog
- * when the "Properties..." popup menu item is selected
- * for Readme files. 
- */
-public class ReadmeFilePropertyPage extends PropertyPage {
-
-    /**
-     * Utility method that creates a new composite and
-     * sets up its layout data.
-     *
-     * @param parent  the parent of the composite
-     * @param numColumns  the number of columns in the new composite
-     * @return the newly-created composite
-     */
-    protected Composite createComposite(Composite parent, int numColumns) {
-        Composite composite = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numColumns;
-        composite.setLayout(layout);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-        return composite;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public Control createContents(Composite parent) {
-
-        // ensure the page has no special buttons
-        noDefaultAndApplyButton();
-        Composite panel = createComposite(parent, 2);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-				IReadmeConstants.PROPERTY_PAGE_CONTEXT);
-
-        // layout the page
-
-        IResource resource = (IResource) getElement();
-        IStatus result = null;
-        if (resource.getType() == IResource.FILE) {
-            Label label = createLabel(panel, MessageUtil.getString("File_name")); //$NON-NLS-1$
-            label = createLabel(panel, resource.getName());
-            grabExcessSpace(label);
-
-            //
-            createLabel(panel, MessageUtil.getString("Path")); //$NON-NLS-1$
-            label = createLabel(panel, resource.getFullPath().setDevice(null)
-                    .toString());
-            grabExcessSpace(label);
-
-            //
-            createLabel(panel, MessageUtil.getString("Size")); //$NON-NLS-1$
-            InputStream contentStream = null;
-            try {
-                IFile file = (IFile) resource;
-                contentStream = file.getContents();
-                Reader in = new InputStreamReader(contentStream);
-                int chunkSize = contentStream.available();
-                StringBuffer buffer = new StringBuffer(chunkSize);
-                char[] readBuffer = new char[chunkSize];
-                int n = in.read(readBuffer);
-
-                while (n > 0) {
-                    buffer.append(readBuffer);
-                    n = in.read(readBuffer);
-                }
-
-                contentStream.close();
-                label = createLabel(panel, Integer.toString(buffer.length()));
-            } catch (CoreException e) {
-                result = e.getStatus();
-                String message = result.getMessage();
-                if (message == null)
-                    label = createLabel(panel, MessageUtil.getString("<Unknown>")); //$NON-NLS-1$
-                else
-                    label = createLabel(panel, message);
-            } catch (IOException e) {
-                label = createLabel(panel, MessageUtil.getString("<Unknown>")); //$NON-NLS-1$
-            } finally {
-                if (contentStream != null) {
-                    try {
-                        contentStream.close();
-                    } catch (IOException e) {
-                        // do nothing
-                    }
-                }
-            }
-            grabExcessSpace(label);
-            createLabel(panel, MessageUtil.getString("Number_of_sections")); //$NON-NLS-1$
-            // We will get the sections property and simply
-            // report number of elements found.
-            IAdaptable sections = getSections(resource);
-            if (sections instanceof AdaptableList) {
-                AdaptableList list = (AdaptableList) sections;
-                label = createLabel(panel, String.valueOf(list.size()));
-                grabExcessSpace(label);
-            }
-        }
-
-        //
-        Label label = createLabel(panel, MessageUtil
-                .getString("Additional_information")); //$NON-NLS-1$
-        grabExcessSpace(label);
-        GridData gd = (GridData) label.getLayoutData();
-        gd.horizontalSpan = 2;
-        return new Canvas(panel, 0);
-    }
-
-    /**
-     * Utility method that creates a new label and sets up its layout data.
-     *
-     * @param parent  the parent of the label
-     * @param text  the text of the label
-     * @return the newly-created label
-     */
-    protected Label createLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(text);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Returns the readme sections for this resource, or null
-     * if not applicable (resource is not a readme file).
-     */
-    private AdaptableList getSections(IAdaptable adaptable) {
-        if (adaptable instanceof IFile)
-            return ReadmeModelFactory.getInstance().getSections(
-                    (IFile) adaptable);
-        return null;
-    }
-
-    /**
-     * Sets this control to grab any excess horizontal space
-     * left in the window.
-     *
-     * @param control  the control for which to grab excess space
-     */
-    private void grabExcessSpace(Control control) {
-        GridData gd = (GridData) control.getLayoutData();
-        if (gd != null) {
-            gd.grabExcessHorizontalSpace = true;
-        }
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public boolean performOk() {
-        // nothing to do - read-only page
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java
deleted file mode 100644
index dd2ee3a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeFilePropertyPage2.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.readmetool;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Canvas;
-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.dialogs.PropertyPage;
-
-/**
- * This page will be added to the property page dialog
- * when "Properties..." popup menu item is selected
- * for Readme files. 
- *
- * This page demonstrates conditional property pages which look
- * different depending on the state of the element. In this example,
- * the arbitrary condition chosen is whether the Readme file is
- * greater than 256 bytes in length. If it is smaller than 256 bytes
- * in length, this will be a placeholder page containing 
- * a simple message. If it is 256 bytes or larger, additional 
- * information will be provided. This information is determined at
- * runtime.
- *
- * This class may be reused to implement a conditional property page.
- * The getPageIndex() method tests the condition and returns the
- * index of the page to create. The createPage*() methods are called
- * upon to create the actual pages.
- */
-public class ReadmeFilePropertyPage2 extends PropertyPage {
-
-    /**
-     * Utility method that creates a new composite and
-     * sets up its layout data.
-     *
-     * @param parent  the parent of the composite
-     * @param numColumns  the number of columns in the new composite
-     * @return the newly-created composite
-     */
-    protected Composite createComposite(Composite parent, int numColumns) {
-        Composite composite = new Composite(parent, SWT.NULL);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numColumns;
-        composite.setLayout(layout);
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-        return composite;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public Control createContents(Composite parent) {
-        // ensure the page has no special buttons
-        noDefaultAndApplyButton();
-        Composite panel = createComposite(parent, 2);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
-				IReadmeConstants.PROPERTY_PAGE2_CONTEXT);
-
-        // layout the page
-        int page = getPageIndex();
-        switch (page) {
-        case 1:
-            createPageOne(panel);
-            break;
-        case 2:
-            createPageTwo(panel);
-            break;
-        default:
-        }
-        return new Canvas(panel, 0);
-    }
-
-    /**
-     * Utility method that creates a new label and sets up
-     * its layout data.
-     *
-     * @param parent  the parent of the label
-     * @param text  the text of the label
-     * @return the newly-created label
-     */
-    protected Label createLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(text);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Creates the first version of the page. This is a placeholder page which
-     * notified the user that the page is not available.
-     *
-     * @param panel  the panel in which to create the page
-     */
-    protected void createPageOne(Composite panel) {
-        Label l = createLabel(panel, MessageUtil
-                .getString("Additional_Readme_properties_not_available.")); //$NON-NLS-1$
-        GridData gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("This_illustrates_a_property_page_that_is_dynamically_determined")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("not_to_be_available_based_on_the_state_of_the_object.")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-    }
-
-    /**
-     * Creates the second version of the page. This page might contain more information
-     * about the file or other information.
-     *
-     * @param panel  the panel in which to create the page
-     */
-    protected void createPageTwo(Composite panel) {
-        Label l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("The_size_of_the_Readme_file_is_at_least_256_bytes.")); //$NON-NLS-1$
-        GridData gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("Had_it_been_less_than_256_bytes_this_page_would_be_a_placeholder_page.")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(panel, MessageUtil.getString("Additional_information")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(
-                panel,
-                MessageUtil
-                        .getString("This_illustrates_a_property_page_that_is_dynamically_determined")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-        l = createLabel(panel, MessageUtil
-                .getString("to_be_available_based_on_the_state_of_the_object.")); //$NON-NLS-1$
-        gd = (GridData) l.getLayoutData();
-        gd.horizontalSpan = 2;
-        gd.grabExcessHorizontalSpace = true;
-    }
-
-    /**
-     * Returns which page to display. This implementation
-     * answers 1 if the size of the Readme file is less than 256 bytes
-     * and 2 otherwise.
-     *
-     * @return the index of the page to display
-     */
-    protected int getPageIndex() {
-        IResource resource = (IResource) getElement();
-
-        if (resource.getType() == IResource.FILE) {
-            InputStream contentStream = null;
-            int length = 0;
-            try {
-                IFile file = (IFile) resource;
-                contentStream = file.getContents();
-                Reader in = new InputStreamReader(contentStream);
-                int chunkSize = contentStream.available();
-                StringBuffer buffer = new StringBuffer(chunkSize);
-                char[] readBuffer = new char[chunkSize];
-                int n = in.read(readBuffer);
-
-                while (n > 0) {
-                    buffer.append(readBuffer);
-                    n = in.read(readBuffer);
-                }
-
-                contentStream.close();
-                length = buffer.length();
-            } catch (CoreException e) {
-                length = 0;
-            } catch (IOException e) {
-                // do nothing
-            } finally {
-                if (contentStream != null) {
-                    try {
-                        contentStream.close();
-                    } catch (IOException e) {
-                        // do nothing
-                    }
-                }
-            }
-
-            if (length < 256)
-                return 1;
-            return 2;
-        }
-
-        return 0;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public boolean performOk() {
-        // nothing to do - read-only page
-        return true;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java
deleted file mode 100644
index 8c1ce7a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeImages.java
+++ /dev/null
@@ -1,88 +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
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74526)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * Convenience class for storing references to image descriptors
- * used by the readme tool.
- */
-public class ReadmeImages {
-    static final URL BASE_URL = ReadmePlugin.getDefault().getBundle().getEntry("/"); //$NON-NLS-1$
-
-    static final ImageDescriptor EDITOR_ACTION1_IMAGE;
-
-    static final ImageDescriptor EDITOR_ACTION2_IMAGE;
-
-    static final ImageDescriptor EDITOR_ACTION3_IMAGE;
-
-    static final ImageDescriptor EDITOR_ACTION1_IMAGE_DISABLE;
-
-    static final ImageDescriptor EDITOR_ACTION2_IMAGE_DISABLE;
-
-    static final ImageDescriptor EDITOR_ACTION3_IMAGE_DISABLE;
-
-    static final ImageDescriptor EDITOR_ACTION1_IMAGE_ENABLE;
-
-    static final ImageDescriptor EDITOR_ACTION2_IMAGE_ENABLE;
-
-    static final ImageDescriptor EDITOR_ACTION3_IMAGE_ENABLE;
-
-    static final ImageDescriptor README_WIZARD_BANNER;
-
-    static {
-        String iconPath = "icons/"; //$NON-NLS-1$
-
-        String prefix = iconPath + "ctool16/"; //$NON-NLS-1$
-        EDITOR_ACTION1_IMAGE = createImageDescriptor(prefix + "action1.gif"); //$NON-NLS-1$
-        EDITOR_ACTION2_IMAGE = createImageDescriptor(prefix + "action2.gif"); //$NON-NLS-1$
-        EDITOR_ACTION3_IMAGE = createImageDescriptor(prefix + "action3.gif"); //$NON-NLS-1$
-
-        prefix = iconPath + "dtool16/"; //$NON-NLS-1$
-        EDITOR_ACTION1_IMAGE_DISABLE = createImageDescriptor(prefix
-                + "action1.gif"); //$NON-NLS-1$
-        EDITOR_ACTION2_IMAGE_DISABLE = createImageDescriptor(prefix
-                + "action2.gif"); //$NON-NLS-1$
-        EDITOR_ACTION3_IMAGE_DISABLE = createImageDescriptor(prefix
-                + "action3.gif"); //$NON-NLS-1$
-
-        prefix = iconPath + "etool16/"; //$NON-NLS-1$
-        EDITOR_ACTION1_IMAGE_ENABLE = createImageDescriptor(prefix
-                + "action1.gif"); //$NON-NLS-1$
-        EDITOR_ACTION2_IMAGE_ENABLE = createImageDescriptor(prefix
-                + "action2.gif"); //$NON-NLS-1$
-        EDITOR_ACTION3_IMAGE_ENABLE = createImageDescriptor(prefix
-                + "action3.gif"); //$NON-NLS-1$
-
-        prefix = iconPath + "wizban/"; //$NON-NLS-1$
-        README_WIZARD_BANNER = createImageDescriptor(prefix
-                + "newreadme_wiz.gif"); //$NON-NLS-1$
-    }
-
-    /**
-     * Utility method to create an <code>ImageDescriptor</code>
-     * from a path to a file.
-     */
-    private static ImageDescriptor createImageDescriptor(String path) {
-        try {
-            URL url = new URL(BASE_URL, path);
-            return ImageDescriptor.createFromURL(url);
-        } catch (MalformedURLException e) {
-            // do nothing
-        }
-        return ImageDescriptor.getMissingImageDescriptor();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java
deleted file mode 100644
index 5bd3108..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeMarkerResolutionGenerator.java
+++ /dev/null
@@ -1,38 +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.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IMarkerResolutionGenerator2;
-
-/**
- * Creates resolutions for readme markers.
- */
-public class ReadmeMarkerResolutionGenerator implements
-        IMarkerResolutionGenerator2 {
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolutionGenerator.
-     */
-    public IMarkerResolution[] getResolutions(IMarker marker) {
-        return new IMarkerResolution[] { new AddSentenceResolution() };
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IMarkerResolutionGenerator2.
-     */
-    public boolean hasResolutions(IMarker marker) {
-        return true;
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java
deleted file mode 100644
index 641735d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeModelFactory.java
+++ /dev/null
@@ -1,183 +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
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74526)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-
-/**
- * Creates the sections used in the <code>ContentOutline</code>
- *
- * @see ReadmeContentOutlinePage#getContentOutline(IAdaptable)
- */
-public class ReadmeModelFactory {
-    private static ReadmeModelFactory instance = new ReadmeModelFactory();
-
-    private boolean registryLoaded = false;
-
-    IReadmeFileParser parser = null;
-
-    /**
-     * Creates a new ReadmeModelFactory.
-     */
-    private ReadmeModelFactory() {
-        // do nothing
-    }
-
-    /**
-     * Adds all mark elements to the list for the subtree rooted
-     * at the given mark element.
-     */
-    protected void addSections(AdaptableList list, MarkElement element) {
-        list.add(element);
-        Object[] children = element.getChildren(element);
-        for (int i = 0; i < children.length; ++i) {
-            addSections(list, (MarkElement) children[i]);
-        }
-    }
-
-    /**
-     * Returns the content outline for the given Readme file.
-     *
-     * @param adaptable  the element for which to return the content outline
-     * @return the content outline for the argument
-     */
-    public AdaptableList getContentOutline(IAdaptable adaptable) {
-        return new AdaptableList(getToc((IFile) adaptable));
-    }
-
-    /**
-     * Returns the singleton readme adapter.
-     */
-    public static ReadmeModelFactory getInstance() {
-        return instance;
-    }
-
-    /**
-     * Returns a list of all sections in this readme file.
-     *
-     * @param file  the file for which to return section heading and subheadings
-     * @return A list containing headings and subheadings
-     */
-    public AdaptableList getSections(IFile file) {
-        MarkElement[] topLevel = getToc(file);
-        AdaptableList list = new AdaptableList();
-        for (int i = 0; i < topLevel.length; i++) {
-            addSections(list, topLevel[i]);
-        }
-        return list;
-    }
-
-    /**
-     * Convenience method.  Looks for a readme file in the selection,
-     * and if one is found, returns the sections for it.  Returns null
-     * if there is no readme file in the selection.
-     */
-    public AdaptableList getSections(ISelection sel) {
-        // If sel is not a structured selection just return.
-        if (!(sel instanceof IStructuredSelection))
-            return null;
-        IStructuredSelection structured = (IStructuredSelection) sel;
-
-        //if the selection is a readme file, get its sections.
-        Object object = structured.getFirstElement();
-        if (object instanceof IFile) {
-            IFile file = (IFile) object;
-            String extension = file.getFileExtension();
-            if (extension != null
-                    && extension.equals(IReadmeConstants.EXTENSION)) {
-                return getSections(file);
-            }
-        }
-
-        //the selected object is not a readme file
-        return null;
-    }
-
-    /**
-     * Parses the contents of the Readme file by looking for lines 
-     * that start with a number.
-     *
-     * @param file  the file representing the Readme file
-     * @return an element collection representing the table of contents
-     */
-    private MarkElement[] getToc(IFile file) {
-        if (registryLoaded == false)
-            loadParser();
-        return parser.parse(file);
-    }
-
-    /**
-     * Loads the parser from the registry by searching for
-     * extensions that satisfy our published extension point.
-     * For the sake of simplicity, we will pick the last extension,
-     * allowing tools to override what is used. In a more
-     * elaborate tool, all the extensions would be processed.
-     */
-    private void loadParser() {
-        IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(
-                IReadmeConstants.PLUGIN_ID, IReadmeConstants.PP_SECTION_PARSER);
-        if (point != null) {
-            IExtension[] extensions = point.getExtensions();
-            for (int i = 0; i < extensions.length; i++) {
-                IExtension currentExtension = extensions[i];
-                // in a real application, we would collection
-                // the entire list and probably expose it
-                // as a drop-down list. For the sake
-                // of simplicity, we will pick the last extension only.
-                if (i == extensions.length - 1) {
-                    IConfigurationElement[] configElements = currentExtension
-                            .getConfigurationElements();
-                    for (int j = 0; j < configElements.length; j++) {
-                        IConfigurationElement config = configElements[i];
-                        if (config.getName()
-                                .equals(IReadmeConstants.TAG_PARSER)) {
-                            // process the first 'parser' element and stop
-                            processParserElement(config);
-                            break;
-                        }
-                    }
-                }
-            }
-        }
-        if (parser == null)
-            parser = new DefaultSectionsParser();
-        registryLoaded = true;
-    }
-
-    /**
-     * Tries to create the Readme file parser. If an error occurs during
-     * the creation of the parser, print an error and set the parser
-     * to null.
-     *
-     * @param element  the element to process
-     */
-    private void processParserElement(IConfigurationElement element) {
-        try {
-            parser = (IReadmeFileParser) element
-                    .createExecutableExtension(IReadmeConstants.ATT_CLASS);
-        } catch (CoreException e) {
-            // since this is an example just write to the console
-            System.out
-                    .println(MessageUtil
-                            .getString("Unable_to_create_file_parser") + e.getStatus().getMessage()); //$NON-NLS-1$
-            parser = null;
-        }
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java
deleted file mode 100644
index 6c67f57..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePlugin.java
+++ /dev/null
@@ -1,47 +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
- *     Joe Bowbeer (jozart@blarg.net) - removed dependency on runtime compatibility layer (bug 74528)
- *******************************************************************************/
-package org.eclipse.ui.examples.readmetool;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * This is the top-level class of the Readme plugin tool.
- *
- * @see AbstractUIPlugin for additional information on UI plugins
- */
-public class ReadmePlugin extends AbstractUIPlugin {
-    
-    public static final String PLUGIN_ID = "org.eclipse.ui.examples.readmetool"; //$NON-NLS-1$
-    
-    /**
-     * Default instance of the receiver
-     */ 
-    private static ReadmePlugin inst;
-
-    /**
-     * Creates the Readme plugin and caches its default instance
-     */
-    public ReadmePlugin() {
-        if (inst == null)
-            inst = this;
-    }
-
-    /**
-     * Gets the plugin singleton.
-     *
-     * @return the default ReadmePlugin instance
-     */
-    static public ReadmePlugin getDefault() {
-        return inst;
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java
deleted file mode 100644
index 6df33ad..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferenceInitializer.java
+++ /dev/null
@@ -1,40 +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.examples.readmetool;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/**
- * Initializes the preferences for the readme plug-in.
- * 
- * @since 3.0
- */
-public class ReadmePreferenceInitializer extends AbstractPreferenceInitializer {
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-     */
-    public void initializeDefaultPreferences() {
-        // These settings will show up when the Readme preference page
-        // is shown for the first time.
-        IPreferenceStore store = ReadmePlugin.getDefault().getPreferenceStore();
-        store.setDefault(IReadmeConstants.PRE_CHECK1, true);
-        store.setDefault(IReadmeConstants.PRE_CHECK2, true);
-        store.setDefault(IReadmeConstants.PRE_CHECK3, false);
-        store.setDefault(IReadmeConstants.PRE_RADIO_CHOICE, 2);
-        store.setDefault(IReadmeConstants.PRE_TEXT, MessageUtil
-                .getString("Default_text")); //$NON-NLS-1$
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java
deleted file mode 100644
index ba8d286..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmePreferencePage.java
+++ /dev/null
@@ -1,359 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * This class implements a sample preference page that is 
- * added to the preference dialog based on the registration.
- */
-public class ReadmePreferencePage extends PreferencePage implements
-        IWorkbenchPreferencePage, SelectionListener, ModifyListener {
-    private Button radioButton1;
-
-    private Button radioButton2;
-
-    private Button radioButton3;
-
-    private Button checkBox1;
-
-    private Button checkBox2;
-
-    private Button checkBox3;
-
-    private Text textField;
-
-    /**
-     * Creates an new checkbox instance and sets the default
-     * layout data.
-     *
-     * @param group  the composite in which to create the checkbox
-     * @param label  the string to set into the checkbox
-     * @return the new checkbox
-     */
-    private Button createCheckBox(Composite group, String label) {
-        Button button = new Button(group, SWT.CHECK | SWT.LEFT);
-        button.setText(label);
-        button.addSelectionListener(this);
-        GridData data = new GridData();
-        button.setLayoutData(data);
-        return button;
-    }
-
-    /**
-     * Creates composite control and sets the default layout data.
-     *
-     * @param parent  the parent of the new composite
-     * @param numColumns  the number of columns for the new composite
-     * @return the newly-created coposite
-     */
-    private Composite createComposite(Composite parent, int numColumns) {
-        Composite composite = new Composite(parent, SWT.NULL);
-
-        //GridLayout
-        GridLayout layout = new GridLayout();
-        layout.numColumns = numColumns;
-        composite.setLayout(layout);
-
-        //GridData
-        GridData data = new GridData();
-        data.verticalAlignment = GridData.FILL;
-        data.horizontalAlignment = GridData.FILL;
-        composite.setLayoutData(data);
-        return composite;
-    }
-
-    /** (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    protected Control createContents(Composite parent) {
-    	PlatformUI.getWorkbench().getHelpSystem().setHelp(parent,
-				IReadmeConstants.PREFERENCE_PAGE_CONTEXT);
-
-        //composite_textField << parent
-        Composite composite_textField = createComposite(parent, 2);
-        createLabel(composite_textField, MessageUtil.getString("Text_Field")); //$NON-NLS-1$
-        textField = createTextField(composite_textField);
-        createPushButton(composite_textField, MessageUtil.getString("Change")); //$NON-NLS-1$
-
-        //composite_tab << parent
-        Composite composite_tab = createComposite(parent, 2);
-        createLabel(composite_tab, MessageUtil
-                .getString("Radio_Button_Options")); //$NON-NLS-1$
-
-        //
-        tabForward(composite_tab);
-        //radio button composite << tab composite
-        Composite composite_radioButton = createComposite(composite_tab, 1);
-        radioButton1 = createRadioButton(composite_radioButton, MessageUtil
-                .getString("Radio_button_1")); //$NON-NLS-1$
-        radioButton2 = createRadioButton(composite_radioButton, MessageUtil
-                .getString("Radio_button_2")); //$NON-NLS-1$
-        radioButton3 = createRadioButton(composite_radioButton, MessageUtil
-                .getString("Radio_button_3")); //$NON-NLS-1$
-
-        //composite_tab2 << parent
-        Composite composite_tab2 = createComposite(parent, 2);
-        createLabel(composite_tab2, MessageUtil.getString("Check_Box_Options")); //$NON-NLS-1$
-
-        //
-        tabForward(composite_tab2);
-        //composite_checkBox << composite_tab2
-        Composite composite_checkBox = createComposite(composite_tab2, 1);
-        checkBox1 = createCheckBox(composite_checkBox, MessageUtil
-                .getString("Check_box_1")); //$NON-NLS-1$
-        checkBox2 = createCheckBox(composite_checkBox, MessageUtil
-                .getString("Check_box_2")); //$NON-NLS-1$
-        checkBox3 = createCheckBox(composite_checkBox, MessageUtil
-                .getString("Check_box_3")); //$NON-NLS-1$
-
-        initializeValues();
-
-        //font = null;
-        return new Composite(parent, SWT.NULL);
-    }
-
-    /**
-     * Utility method that creates a label instance
-     * and sets the default layout data.
-     *
-     * @param parent  the parent for the new label
-     * @param text  the text for the new label
-     * @return the new label
-     */
-    private Label createLabel(Composite parent, String text) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(text);
-        GridData data = new GridData();
-        data.horizontalSpan = 2;
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        return label;
-    }
-
-    /**
-     * Utility method that creates a push button instance
-     * and sets the default layout data.
-     *
-     * @param parent  the parent for the new button
-     * @param label  the label for the new button
-     * @return the newly-created button
-     */
-    private Button createPushButton(Composite parent, String label) {
-        Button button = new Button(parent, SWT.PUSH);
-        button.setText(label);
-        button.addSelectionListener(this);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        button.setLayoutData(data);
-        return button;
-    }
-
-    /**
-     * Utility method that creates a radio button instance
-     * and sets the default layout data.
-     *
-     * @param parent  the parent for the new button
-     * @param label  the label for the new button
-     * @return the newly-created button
-     */
-    private Button createRadioButton(Composite parent, String label) {
-        Button button = new Button(parent, SWT.RADIO | SWT.LEFT);
-        button.setText(label);
-        button.addSelectionListener(this);
-        GridData data = new GridData();
-        button.setLayoutData(data);
-        return button;
-    }
-
-    /**
-     * Create a text field specific for this application
-     *
-     * @param parent  the parent of the new text field
-     * @return the new text field
-     */
-    private Text createTextField(Composite parent) {
-        Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-        text.addModifyListener(this);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        data.grabExcessHorizontalSpace = true;
-        data.verticalAlignment = GridData.CENTER;
-        data.grabExcessVerticalSpace = false;
-        text.setLayoutData(data);
-        return text;
-    }
-
-    /** 
-     * The <code>ReadmePreferencePage</code> implementation of this
-     * <code>PreferencePage</code> method 
-     * returns preference store that belongs to the our plugin.
-     * This is important because we want to store
-     * our preferences separately from the workbench.
-     */
-    protected IPreferenceStore doGetPreferenceStore() {
-        return ReadmePlugin.getDefault().getPreferenceStore();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPreferencePage
-     */
-    public void init(IWorkbench workbench) {
-        // do nothing
-    }
-
-    /**
-     * Initializes states of the controls using default values
-     * in the preference store.
-     */
-    private void initializeDefaults() {
-        IPreferenceStore store = getPreferenceStore();
-        checkBox1.setSelection(store
-                .getDefaultBoolean(IReadmeConstants.PRE_CHECK1));
-        checkBox2.setSelection(store
-                .getDefaultBoolean(IReadmeConstants.PRE_CHECK2));
-        checkBox3.setSelection(store
-                .getDefaultBoolean(IReadmeConstants.PRE_CHECK3));
-
-        radioButton1.setSelection(false);
-        radioButton2.setSelection(false);
-        radioButton3.setSelection(false);
-        int choice = store.getDefaultInt(IReadmeConstants.PRE_RADIO_CHOICE);
-        switch (choice) {
-        case 1:
-            radioButton1.setSelection(true);
-            break;
-        case 2:
-            radioButton2.setSelection(true);
-            break;
-        case 3:
-            radioButton3.setSelection(true);
-            break;
-        }
-        textField.setText(store.getDefaultString(IReadmeConstants.PRE_TEXT));
-    }
-
-    /**
-     * Initializes states of the controls from the preference store.
-     */
-    private void initializeValues() {
-        IPreferenceStore store = getPreferenceStore();
-        checkBox1.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK1));
-        checkBox2.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK2));
-        checkBox3.setSelection(store.getBoolean(IReadmeConstants.PRE_CHECK3));
-
-        int choice = store.getInt(IReadmeConstants.PRE_RADIO_CHOICE);
-        switch (choice) {
-        case 1:
-            radioButton1.setSelection(true);
-            break;
-        case 2:
-            radioButton2.setSelection(true);
-            break;
-        case 3:
-            radioButton3.setSelection(true);
-            break;
-        }
-        textField.setText(store.getString(IReadmeConstants.PRE_TEXT));
-    }
-
-    /** (non-Javadoc)
-     * Method declared on ModifyListener
-     */
-    public void modifyText(ModifyEvent event) {
-        //Do nothing on a modification in this example
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    protected void performDefaults() {
-        super.performDefaults();
-        initializeDefaults();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PreferencePage
-     */
-    public boolean performOk() {
-        storeValues();
-        ReadmePlugin.getDefault().savePluginPreferences();
-        return true;
-    }
-
-    /**
-     * Stores the values of the controls back to the preference store.
-     */
-    private void storeValues() {
-        IPreferenceStore store = getPreferenceStore();
-        store.setValue(IReadmeConstants.PRE_CHECK1, checkBox1.getSelection());
-        store.setValue(IReadmeConstants.PRE_CHECK2, checkBox2.getSelection());
-        store.setValue(IReadmeConstants.PRE_CHECK3, checkBox3.getSelection());
-
-        int choice = 1;
-
-        if (radioButton2.getSelection())
-            choice = 2;
-        else if (radioButton3.getSelection())
-            choice = 3;
-
-        store.setValue(IReadmeConstants.PRE_RADIO_CHOICE, choice);
-        store.setValue(IReadmeConstants.PRE_TEXT, textField.getText());
-    }
-
-    /**
-     * Creates a tab of one horizontal spans.
-     *
-     * @param parent  the parent in which the tab should be created
-     */
-    private void tabForward(Composite parent) {
-        Label vfiller = new Label(parent, SWT.LEFT);
-        GridData gridData = new GridData();
-        gridData = new GridData();
-        gridData.horizontalAlignment = GridData.BEGINNING;
-        gridData.grabExcessHorizontalSpace = false;
-        gridData.verticalAlignment = GridData.CENTER;
-        gridData.grabExcessVerticalSpace = false;
-        vfiller.setLayoutData(gridData);
-    }
-
-    /** (non-Javadoc)
-     * Method declared on SelectionListener
-     */
-    public void widgetDefaultSelected(SelectionEvent event) {
-        //Handle a default selection. Do nothing in this example
-    }
-
-    /** (non-Javadoc)
-     * Method declared on SelectionListener
-     */
-    public void widgetSelected(SelectionEvent event) {
-        //Do nothing on selection in this example;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java
deleted file mode 100644
index 249ee5a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ReadmeSectionsView.java
+++ /dev/null
@@ -1,82 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * This class demonstrates a simple view containing a single viewer.
- */
-public class ReadmeSectionsView extends ViewPart implements ISelectionListener {
-    ListViewer viewer;
-
-    /**
-     * Creates a new ReadmeSectionsView .
-     */
-    public ReadmeSectionsView() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart
-     */
-    public void createPartControl(Composite parent) {
-        viewer = new ListViewer(parent);
-
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(viewer.getControl(),
-				IReadmeConstants.SECTIONS_VIEW_CONTEXT);
-
-        // if the objects in the viewer implement IWorkbenchAdapter,
-        // these generic content and label providers can be used.
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-
-        // add myself as a global selection listener
-        getSite().getPage().addSelectionListener(this);
-
-        // prime the selection
-        selectionChanged(null, getSite().getPage().getSelection());
-    }
-
-    /**
-     * The <code>ReadmeSectionView</code> implementation of this 
-     * <code>IWorkbenchPart</code> method runs super
-     * and removes itself from the global selection listener. 
-     */
-    public void dispose() {
-        super.dispose();
-        getSite().getPage().removeSelectionListener(this);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ISelectionListener
-     */
-    public void selectionChanged(IWorkbenchPart part, ISelection sel) {
-        //if the selection is a readme file, get its sections.
-        AdaptableList input = ReadmeModelFactory.getInstance().getSections(sel);
-        viewer.setInput(input);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart
-     */
-    public void setFocus() {
-        viewer.getControl().setFocus();
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java
deleted file mode 100644
index 670bdb5..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/SectionsDialog.java
+++ /dev/null
@@ -1,67 +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.ui.examples.readmetool;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-
-/**
- * This dialog is an example of a detached window launched
- * from an action in the workbench.
- */
-public class SectionsDialog extends Dialog {
-    protected IAdaptable input;
-
-    /**
-     * Creates a new SectionsDialog.
-     */
-    public SectionsDialog(Shell parentShell, IAdaptable input) {
-        super(parentShell);
-        this.input = input;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        newShell.setText(MessageUtil.getString("Readme_Sections")); //$NON-NLS-1$
-        PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell,
-				IReadmeConstants.SECTIONS_DIALOG_CONTEXT);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog
-     */
-    protected Control createDialogArea(Composite parent) {
-        Composite composite = (Composite) super.createDialogArea(parent);
-
-        List list = new List(composite, SWT.BORDER);
-        GridData data = new GridData(GridData.FILL_BOTH);
-        list.setLayoutData(data);
-        ListViewer viewer = new ListViewer(list);
-        viewer.setContentProvider(new WorkbenchContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.setInput(input);
-
-        return composite;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java
deleted file mode 100644
index a0ba8ad..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/ViewActionDelegate.java
+++ /dev/null
@@ -1,54 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * This class is used to demonstrate view action extensions.
- * An extension should be defined in the readme plugin.xml.
- */
-public class ViewActionDelegate implements IViewActionDelegate {
-    public IViewPart view;
-
-    /**
-     * Creates a new ViewActionDelegate.
-     */
-    public ViewActionDelegate() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewActionDelegate
-     */
-    public void init(IViewPart view) {
-        this.view = view;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void run(org.eclipse.jface.action.IAction action) {
-        MessageDialog.openInformation(view.getSite().getShell(), MessageUtil
-                .getString("Readme_Editor"), //$NON-NLS-1$
-                MessageUtil.getString("View_Action_executed")); //$NON-NLS-1$
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IActionDelegate
-     */
-    public void selectionChanged(org.eclipse.jface.action.IAction action,
-            org.eclipse.jface.viewers.ISelection selection) {
-        // do nothing
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java
deleted file mode 100644
index 7438d70..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/WindowActionDelegate.java
+++ /dev/null
@@ -1,68 +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.ui.examples.readmetool;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * This class shows how <code>IActionDelegate</code> implementations
- * should be used for global action registration for menu 
- * and tool bars. Action proxy object is created in the 
- * workbench based on presentation information in the plugin.xml
- * file. Delegate is not loaded until the first time the user
- * presses the button or selects the menu. Based on the action
- * availability, it is possible that the button will disable
- * instead of executing.
- */
-public class WindowActionDelegate implements IWorkbenchWindowActionDelegate {
-    private IWorkbenchWindow window;
-
-    private ISelection selection;
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchActionDelegate
-     */
-    public void dispose() {
-        // do nothing
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchActionDelegate
-     */
-    public void init(IWorkbenchWindow window) {
-        this.window = window;
-    }
-
-    /** 
-     * The <code>WindowActionDelegate</code> implementation of this
-     * <code>IActionDelegate</code> method 
-     * launches a stand-alone dialog that contains a list of sections for
-     * the selected readme file in the navigator.
-     */
-    public void run(IAction action) {
-        SectionsDialog dialog = new SectionsDialog(window.getShell(),
-                ReadmeModelFactory.getInstance().getSections(selection));
-        dialog.open();
-    }
-
-    /** 
-     * The <code>WindowActionDelegate</code> implementation of this
-     * <code>IActionDelegate</code> method 
-     * does nothing - we will let simple rules in the XML
-     * config file react to selections.
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        this.selection = selection;
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties b/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties
deleted file mode 100644
index afd71d4..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/Eclipse UI Examples Readme Tool/org/eclipse/ui/examples/readmetool/messages.properties
+++ /dev/null
@@ -1,96 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Add=&Add
-Clean=Clean
-Save_Needed=Save Needed
-Editor_Action_executed=Editor Action executed
-Readme_Editor=Readme Editor
-Readme_Outline=Readme Outline
-Line_count=Line count
-Title_length=Title length
-Title_start=Title start
-Popup_Menu_Action_executed=Popup Menu Action executed
-Readme_Example=Readme Example
-Automatic_sample_section_generation=Automatic sample section generation
-Create_Readme_File=Create Readme File
-Create_a_new_Readme_file_resource=Create a new Readme file resource.
-Generate_sample_section_titles=&Generate sample section titles
-Generate_sample_subsection_titles=Generate sample subsection &titles
-Open_file_for_editing_when_done=&Open file for editing when done
-Readme_file_name=&Readme file name:
-SAMPLE_README_FILE=\n\n     SAMPLE README FILE\n\n
-SECTION_1=1. SECTION 1\n
-SECTION_1_BODY_1=This text is a placeholder for the section body.\n
-SECTION_2=2. SECTION 2\n
-SECTION_2_BODY_1=This text is a placeholder for the section body. It is\n
-SECTION_2_BODY_2=a bit longer in order to span two lines.\n
-Subsection_1_1=\ \ \ 1.1 Subsection\n
-Subsection_1_1_Body_1=\ \ \ This text is a placeholder for the subsection body\n
-Subsection_2_1=\ \ \ 2.1 Subsection\n
-Subsection_2_1_BODY_1=\ \ \ This text is a placeholder for the subsection body\n
-Subsection_2_2=\ \ \ 2.2 Subsection\n
-Subsection_2_2_BODY_1=\ \ \ This text is a placeholder for the subsection body\n
-New_Readme_File=New Readme File
-Exception_in_readme_drop_adapter=Exception in readme drop adapter: 
-Editor_Action1=Editor Action &1
-Editor_Action2=Editor Action &2
-Editor_Action3=Editor Action &3
-Editor_Action4=Editor Action &4
-Editor_Action5=Editor Action &5
-Outline_Action2=Outline Action &2
-Outline_Action3=Outline Action &3
-Outline_Action4=Outline Action &4
-Outline_Action5=Outline Action &5
-Editor_is_active=Editor is active
-Empty_Editor_Name=Empty
-Readme_Editor_Action1=Readme Editor Action 1
-Readme_Editor_Action2=Readme Retarget Editor Action 2
-Readme_Editor_Action3=Readme Label Retarget Editor Action 3
-Readme_Editor_Action5=Readme Label Retarget Editor Action 5
-Readme_Outline_Action3=Readme Label Retarget Outline Action 3
-Readme_Outline_Action5=Readme Label Retarget Outline Action 5
-Readme_Menu=&Readme
-ReadmeEditorActionExecuted=Readme Editor Action executed: {0} for: {1}
-ReadmeOutlineActionExecuted=Readme Outline Action executed
-<Unknown>=<Unknown>
-<file_contents_not_local>=<file contents not local>
-Additional_information=Additional information about the Readme file can go here.
-File_name=File name:
-Number_of_sections=Number of sections:
-Path=Path: 
-Size=Size: 
-Additional_Readme_properties_not_available.=Additional Readme properties not available.
-Had_it_been_less_than_256_bytes_this_page_would_be_a_placeholder_page.=Had it been less than 256 bytes, this page would be a placeholder page.
-The_size_of_the_Readme_file_is_at_least_256_bytes.=The size of the Readme file is at least 256 bytes.
-This_illustrates_a_property_page_that_is_dynamically_determined=This illustrates a property page that is dynamically determined
-not_to_be_available_based_on_the_state_of_the_object.=not to be available based on the state of the object.
-to_be_available_based_on_the_state_of_the_object.=to be available based on the state of the object.
-Unable_to_create_file_parser=Unable to create file parser.
-Default_text=Default text
-Change=Chan&ge
-Check_Box_Options=Check Box Options
-Check_box_1=&Check box 1
-Check_box_2=C&heck box 2
-Check_box_3=Check bo&x 3
-Radio_Button_Options=Radio Button Options
-Radio_button_1=&Radio button 1
-Radio_button_2=Rad&io button 2
-Radio_button_3=Radio b&utton 3
-Text_Field=&Text Field
-Readme_Sections=Readme Sections
-View_Action_executed=View Action executed
-Add_Sentence=Add Sentence
-Resolution_Error=Resolution Error
-Unable_to_open_file_editor=Unable to open file editor
-Simple_sentence=This is a simple sentence.\n
-Readme_marker_message_example=Readme marker example 
-Add_readme_marker_action_label=Readme Marker Example &
-View_Command_executed=View Command executed
diff --git a/examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml b/examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml
deleted file mode 100644
index bf2b580..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/HelpContexts.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<contexts>
-
-   <context  id="open_browser_action_context" >
-      <description>Opens the readme browser </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="view_action_context" >
-      <description>Runs a readme view action <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action_context" >
-      <description>Runs a readme editor action <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action1_context" >
-      <description>Runs readme editor action 1 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action2_context" >
-      <description>Runs readme editor action 2 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="editor_action3_context" >
-      <description>Runs readme editor action 3 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="sections_view_context" >
-      <description>Readme sections view <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="sections_dialog_context" >
-      <description>Readme sections dialog <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="preference_page_context" >
-      <description>Readme preference page <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="property_page_context" >
-      <description>Readme property page <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-   <context  id="property_page2_context" >
-      <description>Readme property page2 <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="editor_context" >
-      <description>Readme editor <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="content_outline_page_context" >
-      <description>Readme editor content outline <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="creation_wizard_page_context" >
-      <description>Readme file creation wizard <b>Help</b> </description>
-      <topic href="contexts/RelatedContext3.html"  label="Help Related Topic 3 - Temporary"/>
-      <topic href="contexts/RelatedContext4.html"  label="Help Related Topic 4 - Temporary"/>
-   </context>
-
-   <context  id="marker_example1_context" >
-      <description>Readme marker example 1 <b>Help</b> id = 1234 </description>
-   </context>
-   <context  id="marker_example2_context" >
-      <description>Readme marker example 2 <b>Help</b> level = 7 </description>
-   </context>
-   <context  id="marker_example3_context" >
-      <description>Readme marker example 3 <b>Help</b> level = 7, department = infra </description>
-   </context>
-   <context  id="marker_example4_context" >
-      <description>Readme marker example 4 <b>Help</b> code = red </description>
-   </context>
-   <context  id="marker_example5_context" >
-      <description>Readme marker example 5 <b>Help</b> language = english </description>
-   </context>
-   <context  id="marker_example6_context" >
-      <description>Readme marker example 6 <b>Help</b> id = 1234, level = 7, department = infra, code = red, language = english </description>
-   </context>
-   <context  id="marker_example7_context" >
-      <description>Readme marker example 7 <b>Help</b> No attributes specified </description>
-   </context>
-</contexts>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF
deleted file mode 100644
index 90fbb5f..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.readmetool; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-ClassPath: readmetool.jar
-Bundle-Activator: org.eclipse.ui.examples.readmetool.ReadmePlugin
-Bundle-Vendor: %Plugin.providerName
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.views,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.text,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.editors
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.ui.examples.readmetool
diff --git a/examples/org.eclipse.ui.examples.readmetool/about.html b/examples/org.eclipse.ui.examples.readmetool/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.readmetool/build.properties b/examples/org.eclipse.ui.examples.readmetool/build.properties
deleted file mode 100644
index e23fed7..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/build.properties
+++ /dev/null
@@ -1,24 +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
-###############################################################################
-source.readmetool.jar = Eclipse UI Examples Readme Tool/
-
-bin.includes = doc/,\
-               doc-html/,\
-               icons/,\
-               about.html,\
-               doc.zip,\
-               HelpContexts.xml,\
-               plugin.properties,\
-               plugin.xml,\
-               *.jar,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm b/examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc-html/hglegal.htm
+++ /dev/null
@@ -1,15 +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="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html b/examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html
deleted file mode 100644
index e624f8b..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc-html/ui_readmetool_ex.html
+++ /dev/null
@@ -1,166 +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." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Workbench - Readme Tool Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Readme Tool</b></h2>
-
-<h3>
-Introduction</h3>
-The Readme editor shows how to define your own extension points for use
-by other plugins. It also shows how to create extensions for resource popup
-menu entries, new resource wizards, file editors on an extension (.readme),
-a custom view and property pages.
-<h3>
-Running the example</h3>
-To start using this example create a file with the .readme extension using
-the file creation wizard or create one using the example creation wizard.
-The additional&nbsp; view provided by this example can be seen by selecting
-Window > Show View > Other and expanding the Readme section. The
-view action can be seen by clicking on the readme icon on the Navigator
-View.
-<h4>
-Creating a new readme file</h4>
-Create a new file with file extension .readme.&nbsp; From the File menu,
-select New and then select Other... from the sub menu.&nbsp; Click on Simple
-in the wizard, then select File in the list on the left.&nbsp; Click on
-Next to supply the file name (make sure the extension is .readme) and the
-folder in which the file should be contained.
-<h4>
-Example creation wizards</h4>
-From the File menu, select New and from the sub menu select Example...&nbsp;
-Now select Example Creation Wizards. Select Readme File. Click Next. Select
-the folder in which you want the file to be created. Type the name of the
-file with a .readme extension. Click Finish.
-<h4>
-Readme view extension action</h4>
-In the Navigator View, select a file with extension .readme. If there isn't
-one create a file with that extension. On the local toolbar of the Navigator
-View, you will see a button whose hover help says Run Readme View Extension.&nbsp;
-Click on this button.&nbsp; A dialog will popup saying View Action executed.
-<h4>
-Popup menus</h4>
-In the Navigator View, select a file with extension .readme.&nbsp; If there
-isn't one create a file with that extension.&nbsp; Select the file to bring
-up the popup menu.&nbsp; Notice there is a menu item that says Show Readme
-Action in the popup menu.&nbsp; Choose this menu item to open a dialog
-that says Popup Menu Action Executed.
-<h4>
-Preference page</h4>
-From the Window menu, select Preferences.&nbsp; Click on the page called
-Readme Example.&nbsp; This shows an example of a preference page.
-<h4>
-Property page</h4>
-In the Navigator View, select a file with extension .readme.&nbsp; If there
-isn't one create a file with that extension.&nbsp; Select the file to bring
-up the popup menu, then select the Properties menu item.&nbsp; Click on
-the page called Readme Tool to see an example of a property page.
-<h4>
-Readme file editor</h4>
-The Readme File Editor is the default editor for files of type *.readme.&nbsp;
-Create a file with extension .readme and open the file by double clicking
-on it, or by bringing up the popup menu,&nbsp; selecting Open With, then
-selecting Readme File Editor from the sub menu.&nbsp; Notice the editor
-has an icon with a pencil.&nbsp; This is the editor that the readme tool
-uses by default for files of type *.readme.
-<h4>
-Readme Editor Actions</h4>
-This demonstrates an example of actions that are applicable only to a particular
-editor.&nbsp; When a readme file editor has focus, notice 4 additional
-tool bar buttons - Run Readme Editor Extension, Readme Editor Action 1,
-Readme Editor Action 2, Readme Editor Action 3.
-<p>A pull down menu named Readme appears when a readme file editor has
-focus.&nbsp; It contains the actions previously described: Readme Editor
-Action 1, Readme Editor Action 2, Readme Editor Action 3.
-<h4>
-Readme sections view</h4>
-To see this Readme Sections view, from the Window menu select Show
-View, then select Other... from the sub menu.&nbsp; Expand the Readme item
-and then select Readme Sections.&nbsp; This will show a list of the sections
-in the current *.readme file when a .readme file is selected in the Navigator
-View.&nbsp; You can also see the structure of a *.readme file in the Outline
-view.
-<p>A file with extension .readme can be broken down into sections when
-each section begins with a number.&nbsp; For example, if the following
-text were entered into the readme file editor, the readme tool would detect
-2 sections.&nbsp; To see how sections are detected in the readme tool,
-type some text in the readme file editor, save the file by either typing
-CTRL-S or selecting&nbsp; File->Save. Open the Readme Sections view and
-select the .readme file in the Navigator View.
-<p>Example text:
-<p>99.1 This is my first section
-<br>This is some text in my first section.
-<p>99.1.1 This is a sub section
-<br>This is some text in my sub-section.
-<h4>Drag and Drop</h4>
-<p>The Drag and Drop functionality can be seen by selecting a section in the
-Outline View and dragging the selection over top of a text file. The contents of
-the selection will be appended to the file.
-<h4>
-Help contribution</h4>
-The readme tool example also demonstrates how to use and implement context
-help on all of the extensions it supplies - a view, various actions and
-a wizard page.&nbsp; To get context help on an action, hover over the menu
-item, but do no select it, then hit the F1 key.&nbsp; You can also get
-context sensitive (F1) help on the Readme Sections view and the Example
-Creation Wizards page (in the New wizard).
-<br>&nbsp;
-<h3>
-Details</h3>
-The Readme Tool example declares one extension point and supplies a number
-of extensions.&nbsp; The extensions supplied are quite comprehensive in
-understanding how the Workbench functions, as it utilizes a number of the
-more interesting extension points declared by the workbench.&nbsp; Supplied
-extensions included in this example are views and view actions, preference
-pages, property pages, wizards, editors and editor actions, popup menus,
-action sets, help contributions, help contexts, and drop actions.
-<p>This example also supplies an extension point declared in the plug-in..
-The class IReadmeFileParser is required for any plug-in that uses the org.eclipse.ui.examples.readmetool.sectionParser
-extension that this example defines. The class DefaultSectionParser is
-an example implementation of IReadmeFileParser.
-<p>The class ReadmeEditor implements IEditorPart and is defined as an editor
-on files with the extension .readme in the plugin.xml using the org.eclipse.ui.editors
-extension point. The class ReadmeSectionsView implements IViewPart and
-is defined as a view using the org.eclipse.ui.views extension point. This
-extension point also defines a category for the view for use in view selection.
-<p>Two types of preference settings are defined in this example, workbench
-preferences and resource properties. The workbench preference is defined
-in class ReadmePreferencePage which implements IWorkbenchPreferencePage
-so that it will be added to the Window-&gt;Preferences dialog. The class
-is defined in the extension point org.eclipse.ui.preferencePages in the
-plugin.xml. The two resource properties pages are ReadmeFilePropertyPage
-and ReadmeFilePropertyPage2 both of which implement IWorkbenchPropertyPage.
-They are both defined to be invoked on the IFile type by the objectClass
-tag in the plugin.xml in the org.eclipse.ui.propertyPages extension point.
-<p>The class ReadmeCreationWizard implements INewWizard and is defined
-in the org.eclipse.ui.newWizards extension point in the plugin.xml. This
-extension point also defines the category that the wizard that is shown
-when the user selects File-&gt;New-&gt;Example....
-<p>Several action stubs are added to this example. The action set declares
-a menu labeled Readme File Editor<b> </b>to be included in the workbench
-window menu bar using the extension point org.eclipse.ui.actionSets. It
-also defines an action for the workbench toolbar and menu bar using the
-tags toolbarPath and menubarPath. It uses the class WindowActionDelegate
-which implements IWorkbenchWindowActionDelegate to implement the action.
-The action for the popup menu is defined as an objectContribution by the
-class PopupMenuActionDelegate in&nbsp; the extension point org.eclipse.ui.popupMenus.
-PopupMenuActionDelegate implements IObjectActionDelegate and uses the IWorkbenchPart
-provided to open a message dialog. The view action ViewActionDelegate is
-defined in the extension point org.eclipse.ui.viewActions and implements
-IViewActionDelegate. The View it appears in is defined by the tag targetID
-which in this example is org.eclipse.ui.views.ResourceNavigator. The editor
-action is defined by the class EditorActionDelegate which implements IEditorActionDelegate
-and is added using the org.eclipse.ui.editorActions extension point. The
-editor that it is applied to is defined by the tag targetID which in this
-example is defined on org.eclipse.ui.examples.readmetool.ReadmeEditor.<p>The
-class ReadmeDropActionDelegate implements IDropDelegate. IDropDelegates are
-informed every time there is a drop action performed in the workbench . The
-extension point for this action is org.eclipse.ui.dropActions.
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc.zip b/examples/org.eclipse.ui.examples.readmetool/doc.zip
deleted file mode 100644
index 41e8aa9..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc.zip
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm b/examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm
deleted file mode 100644
index a41081e..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc/hglegal.htm
+++ /dev/null
@@ -1,15 +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="GENERATOR" content="Mozilla/4.73 [en] (Win98; U) [Netscape]">
-   <title>Legal Notices</title>
-</head>
-<body>
-
-<h3>
-<a NAME="Notices"></a>Notices</h3>
-(c) Copyright IBM Corp. 2000, 2001. All Rights Reserved.
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html b/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html
deleted file mode 100644
index 986462a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool.html
+++ /dev/null
@@ -1,27 +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." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>Readme Tool Extension Points</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center>
-<h1>
-Readme Tool</h1></center>
-The Readme Tool is provided as an example for tool developers. It demonstrates
-the extension of various aspects of the workbench, both visually and functionally.
-As well, the Readme Tool provides extension points of its own.
-<p>
-<hr WIDTH="100%">
-<h1>
-Extension Points</h1>
-The following extension points can be used to extend the Readme Tool:
-<ul>
-<li>
-<a href="org_eclipse_ui_examples_readmetool_sectionParser.html">org.eclipse.ui.readmetool.sectionParser</a></li>
-</ul>
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html b/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html
deleted file mode 100644
index b197e80..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/doc/org_eclipse_ui_examples_readmetool_sectionParser.html
+++ /dev/null
@@ -1,65 +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." >
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <title>README Tool Extension Points</title>
-</head>
-<body link="#0000FF" vlink="#800080">
-
-<center>
-<h1>
-Section Parser</h1></center>
-<b><i>Identifier: </i></b>org.eclipse.ui.examples.readmetool.sectionParser
-<p><b><i>Description: </i></b>This extension point allows tools to provide
-a parser for Readme files which identifies the sections of the file.
-The sections determined by this parser will show up in the outliner when a
-Readme file is open in the editor. The sections will also appear in the 
-"Readme sections" view.
-<p>The default section parser provided with the Readme Tool is a simple parser
-which considers sections to be numbered at the beginning of a line. Top-level
-sections are signified by a number followed by a period, such as in the following
-regular expression: "[0-9]+\.". Examples are "1.", "0.", and "12345.".
-Subsections are signified by the regular expression: "([0-9]+\.)+[0-9]+". Examples
-of subsections are "1.1", "1.1.1.1", and "123.456.7890". Any level of subsection
-nesting may occur. Section and subsection markers must occur before any other
-non-whitespace characters on a line.
-<p><b><i>Configuration Markup:</i></b>
-<p><tt>&nbsp;&nbsp; &lt;!ATTLIST sectionParser</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name &nbsp;CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id &nbsp;&nbsp; CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class CDATA #REQUIRED</tt>
-<br><tt>&nbsp;&nbsp; ></tt>
-<ul>
-<li>
-<b>name</b> - a string describing this contribution.</li>
-
-<li>
-<b>id</b> - a unique identifier that can be used to reference this extension.</li>
-
-<li>
-<b>class</b> - a fully qualified name of the class which provides this extension.</li>
-</ul>
-
-<b><i>Examples:</i></b>
-<p>The following is an example of a sectionParser extension point:
-<p><tt>&nbsp;&nbsp;&lt;extension point="org.eclipse.ui.examples.readmetool.sectionParser"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;parser</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="Custom README Section Parser"</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="com.xyz.CustomSectionParser"</tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.xyz.CustomSectionParser"></tt>
-<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/parser></tt>
-<br><tt>&nbsp;&nbsp;&lt;/extension></tt>
-<p>In the example above, the class com.xyz.CustomSectionParser will be used as
-the section parser for Readme files.
-<p><b><i>API Information: </i></b>Value of the action attribute <b>class</b>
-must be a fully qualified class name of a Java class that implements the interface
-org.eclipse.ui.examples.readmetool.IReadmeFileParser. This interface is loaded as 
-late as possible to avoid loading the entire tool before it is really needed.
-<p><b><i>Supplied Implementation: </i></b>As described above, the default section
-parser uses a simple grammar of sections identified by numbers followed by periods,
-and subsections identified by the pattern of a number followed by a period, repeated
-an arbitrary number of times, and ending with a number.
-
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif
deleted file mode 100644
index 91077ef..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action1.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif
deleted file mode 100644
index c2a3e17..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif
deleted file mode 100644
index 9c14f74..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/action3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif b/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif
deleted file mode 100644
index 6d40439..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/ctool16/openbrwsr.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif
deleted file mode 100644
index 0c50830..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action1.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif
deleted file mode 100644
index 3f978df..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif
deleted file mode 100644
index f9f1e95..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/action3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif b/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif
deleted file mode 100644
index 02a2df8..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/dtool16/openbrwsr.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif
deleted file mode 100644
index 55fb1a6..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action1.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif
deleted file mode 100644
index f801d2e..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action2.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif
deleted file mode 100644
index 5e199b1..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/action3.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif b/examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif
deleted file mode 100644
index bdbe8ca..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/etool16/openbrwsr.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif b/examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif
deleted file mode 100644
index c48d9a9..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/editor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif b/examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif
deleted file mode 100644
index 293826d..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/newreadme_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif b/examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif
deleted file mode 100644
index 64d7907..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/obj16/usereditor.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif b/examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif
deleted file mode 100644
index 008fd7a..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/view16/sections.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif b/examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif
deleted file mode 100644
index 3265aaf..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/icons/wizban/newreadme_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.readmetool/plugin.properties b/examples/org.eclipse.ui.examples.readmetool/plugin.properties
deleted file mode 100644
index 3d02a7c..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/plugin.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-###############################################################################
-# Copyright (c) 2000, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Readme File Editing Tool
-Plugin.providerName = Eclipse.org
-ExtPoint.sectionParser = Section parser for Readme file editor
-SectionParser.name = Default section parser for Readme tool
-ActionSet.name = ReadMe Actions
-ActionSet.menu = Readme &File Editor
-ReadmeAction.label = &Open Readme Browser
-ReadmeAction.tooltip = Open Readme Browser
-ReadmeRetargetAction.label = &Open Readme Browser (Retarget)
-ReadmeRetargetAction.tooltip = Open Readme Browser (Retarget)
-ReadmeRelabelRetargetAction.label = &Open Readme Browser (Retarget - Label Update)
-ReadmeRelabelRetargetAction.tooltip = Open Readme Browser (Retarget - Label Update)
-NewWizard.category = Example Creation Wizards
-NewWizard.name = Readme File
-NewWizard.desc = An example of a wizard that creates sample Readme file
-Editors.ReadmeEditor = Readme File Editor
-Views.category = &Readme
-Views.ReadmeSections = Readme Sections
-PreferencePage.name = Readme Example
-PropertiesPage.filePage = Readme Tool
-PropertiesPage.filePage2 = More Readme Info
-PopupMenus.action = &Show Readme Action
-PopupMenu.ResourceNav.label = &Readme View Extension
-PopupMenu.ResourceNav.tooltip = Run Readme View Extension
-Editors.Action.label = &Readme Editor Extension
-Editors.Action.tooltip = Run Readme Editor Extension
-ReadmeMarker.name = Readme Marker
-CmdLabel=Test Trim Cmd
-Trim.item=Trim Item
-TrimItem.toolTip=TrimItem ToolTip
-Trim2.item=Trim Item 2
-TrimItem2.toolTip=TrimItem 2 ToolTip
-
-Readme.commands.category=Readme Commands
-Readme.viewCmd.name=View Message
-Readme.viewCmd.mnemonic=M
-Readme.viewCmd.tooltip = Run Readme View Command
-
diff --git a/examples/org.eclipse.ui.examples.readmetool/plugin.xml b/examples/org.eclipse.ui.examples.readmetool/plugin.xml
deleted file mode 100644
index 21c94a8..0000000
--- a/examples/org.eclipse.ui.examples.readmetool/plugin.xml
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- ================================================================== -->
-<!--         org.eclipse.ui.examples.readmetool.IReadmeFileParser       -->
-<!-- Extension Implementation: must implement                           -->
-<!--          the file's section and subsection structure               -->
-<!-- Purpose: Provide a custom parser for Readme files which determines -->
-<!-- Extension point: org.eclipse.ui.examples.readmetool.sectionParser  -->
-<!-- ================================================================== -->
-   <extension-point id="sectionParser" name="%ExtPoint.sectionParser"/>
-
-   <extension
-         point="org.eclipse.ui.examples.readmetool.sectionParser">
-      <parser
-            name="%SectionParser.name"
-            class="org.eclipse.ui.examples.readmetool.DefaultSectionsParser"
-            id="org.eclipse.ui.examples.readmetool.DefaultSectionsParser">
-      </parser>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="%ActionSet.name"
-            visible="false"
-            id="org_eclipse_ui_examples_readmetool_actionSet">
-         <menu
-               label="%ActionSet.menu"
-               path="window/additions"
-               id="org_eclipse_ui_examples_readmetool">
-            <separator
-                  name="slot1">
-            </separator>
-            <separator
-                  name="slot2">
-            </separator>
-            <separator
-                  name="slot3">
-            </separator>
-         </menu>
-         <action
-               id="org_eclipse_ui_examples_readmetool_readmeAction"
-               toolbarPath="readme"
-               class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
-               enablesFor="1"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               label="%ReadmeAction.label"
-               menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
-               tooltip="%ReadmeAction.tooltip">
-            <selection
-                  name="*.readme"
-                  class="org.eclipse.core.resources.IFile">
-            </selection>
-         </action>
-         <action
-               label="%ReadmeRetargetAction.label"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               tooltip="%ReadmeRetargetAction.tooltip"
-               retarget="true"
-               menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
-               toolbarPath="readme"
-               id="org_eclipse_ui_examples_readmetool_readmeRetargetAction">
-         </action>
-         <action
-               allowLabelUpdate="true"
-               id="org_eclipse_ui_examples_readmetool_readmeRelabelRetargetAction"
-               toolbarPath="readme"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               label="%ReadmeRelabelRetargetAction.label"
-               menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
-               retarget="true"
-               tooltip="%ReadmeRelabelRetargetAction.tooltip">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            name="%NewWizard.category"
-            parentCategory="org.eclipse.ui.Examples"
-            id="org.eclipse.ui.examples.readmetool.new">
-      </category>
-      <wizard
-            name="%NewWizard.name"
-            icon="$nl$/icons/obj16/newreadme_wiz.gif"
-            category="org.eclipse.ui.Examples/org.eclipse.ui.examples.readmetool.new"
-            class="org.eclipse.ui.examples.readmetool.ReadmeCreationWizard"
-            id="org.eclipse.ui.examples.readmetool.wizards.new.file">
-         <description>
-            %NewWizard.desc
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%Editors.ReadmeEditor"
-            icon="$nl$/icons/obj16/editor.gif"
-            extensions="readme"
-            contributorClass="org.eclipse.ui.examples.readmetool.ReadmeEditorActionBarContributor"
-            class="org.eclipse.ui.examples.readmetool.ReadmeEditor"
-            id="org.eclipse.ui.examples.readmetool.ReadmeEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.category"
-            id="org.eclipse.ui.examples.readmetool">
-      </category>
-      <view
-            name="%Views.ReadmeSections"
-            icon="$nl$/icons/view16/sections.gif"
-            category="org.eclipse.ui.examples.readmetool"
-            class="org.eclipse.ui.examples.readmetool.ReadmeSectionsView"
-            id="org.eclipse.ui.examples.readmetool.views.SectionsView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%PreferencePage.name"
-            class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage"
-            id="org.eclipse.ui.examples.readmetool.Page1">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            name="%PropertiesPage.filePage"
-            nameFilter="*.readme"
-            class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage"
-            id="org.eclipse.ui.examples.readmetool.FilePage">
-         <enabledWhen>
-            <instanceof
-                  value="org.eclipse.core.resources.IFile">
-            </instanceof>
-         </enabledWhen>
-      </page>
-      <page
-            name="%PropertiesPage.filePage2"
-            nameFilter="*.readme"
-            class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2"
-            id="org.eclipse.ui.examples.readmetool.FilePage2">
-         <enabledWhen>
-            <instanceof
-                  value="org.eclipse.core.resources.IFile">
-            </instanceof>
-         </enabledWhen>
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IFile"
-            nameFilter="*.readme"
-            id="org.eclipse.ui.examples.readmetool">
-         <action
-               label="%PopupMenus.action"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               class="org.eclipse.ui.examples.readmetool.PopupMenuActionDelegate"
-               menubarPath="additions"
-               enablesFor="1"
-               id="org.eclipse.ui.examples.readmetool.action1">
-         </action>
-      </objectContribution>
-      <viewerContribution
-            targetID="org.eclipse.ui.examples.readmetool.outline"
-            id="org.eclipse.ui.examples.readmetool2">
-         <action
-               label="%PopupMenus.action"
-               icon="$nl$/icons/ctool16/openbrwsr.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
-               class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
-               menubarPath="additions"
-               id="org.eclipse.ui.examples.readmetool.action1">
-         </action>
-      </viewerContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.viewActions">
-      <viewContribution
-            targetID="org.eclipse.ui.navigator.ProjectExplorer"
-            id="org.eclipse.ui.examples.readmetool.vc1">
-         <action
-               id="org.eclipse.ui.examples.readmetool.va1"
-               toolbarPath="additions"
-               class="org.eclipse.ui.examples.readmetool.ViewActionDelegate"
-               enablesFor="1"
-               icon="$nl$/icons/obj16/editor.gif"
-               helpContextId="org.eclipse.ui.examples.readmetool.view_action_context"
-               label="%PopupMenu.ResourceNav.label"
-               menubarPath="additions"
-               tooltip="%PopupMenu.ResourceNav.tooltip">
-            <selection
-                  name="*.readme"
-                  class="org.eclipse.core.resources.IFile">
-            </selection>
-         </action>
-      </viewContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editorActions">
-      <editorContribution
-            targetID="org.eclipse.ui.examples.readmetool.ReadmeEditor"
-            id="org.eclipse.ui.examples.readmetool.ec1">
-         <action
-               label="%Editors.Action.label"
-               icon="$nl$/icons/obj16/editor.gif"
-               tooltip="%Editors.Action.tooltip"
-               class="org.eclipse.ui.examples.readmetool.EditorActionDelegate"
-               toolbarPath="ReadmeEditor"
-               id="org.eclipse.ui.examples.readmetool.ea1">
-         </action>
-      </editorContribution>
-   </extension>
-   <extension
-         point="org.eclipse.help.contexts">
-      <contexts
-            file="HelpContexts.xml">
-      </contexts>
-   </extension>
-   <extension
-         point="org.eclipse.ui.dropActions">
-      <action
-            class="org.eclipse.ui.examples.readmetool.ReadmeDropActionDelegate"
-            id="org_eclipse_ui_examples_readmetool_drop_actions">
-      </action>
-   </extension>
-   <extension
-         id="readmemarker"
-         name="%ReadmeMarker.name"
-         point="org.eclipse.core.resources.markers">
-      <super
-            type="org.eclipse.core.resources.taskmarker">
-      </super>
-      <super
-            type="org.eclipse.core.resources.textmarker">
-      </super>
-      <persistent
-            value="true">
-      </persistent>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.id">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.level">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.department">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.code">
-      </attribute>
-      <attribute
-            name="org.eclipse.ui.examples.readmetool.language">
-      </attribute>
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerHelp">
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example1_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.id"
-               value="1234">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example2_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example3_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.department"
-               value="infra">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example4_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.code"
-               value="red">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example5_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.language"
-               value="english">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example6_context">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.id"
-               value="1234">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.department"
-               value="infra">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.code"
-               value="red">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.language"
-               value="english">
-         </attribute>
-      </markerHelp>
-      <markerHelp
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            helpContextId="org.eclipse.ui.examples.readmetool.marker_example7_context">
-      </markerHelp>
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerResolution">
-      <markerResolutionGenerator
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.id"
-               value="1234">
-         </attribute>
-      </markerResolutionGenerator>
-      <markerResolutionGenerator
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.level"
-               value="7">
-         </attribute>
-      </markerResolutionGenerator>
-      <markerResolutionGenerator
-            markerType="org.eclipse.ui.examples.readmetool.readmemarker"
-            class="org.eclipse.ui.examples.readmetool.ReadmeMarkerResolutionGenerator">
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.code"
-               value="red">
-         </attribute>
-         <attribute
-               name="org.eclipse.ui.examples.readmetool.language"
-               value="english">
-         </attribute>
-      </markerResolutionGenerator>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer class="org.eclipse.ui.examples.readmetool.ReadmePreferenceInitializer"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSetPartAssociations">
-      <actionSetPartAssociation targetID="org_eclipse_ui_examples_readmetool_actionSet">
-         <part id="org.eclipse.ui.examples.readmetool.ReadmeEditor"/>
-      </actionSetPartAssociation>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.undo/.classpath b/examples/org.eclipse.ui.examples.undo/.classpath
deleted file mode 100644
index a3734f5..0000000
--- a/examples/org.eclipse.ui.examples.undo/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse UI Examples Undo"/>
-	<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/examples/org.eclipse.ui.examples.undo/.cvsignore b/examples/org.eclipse.ui.examples.undo/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.undo/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.undo/.project b/examples/org.eclipse.ui.examples.undo/.project
deleted file mode 100644
index bfd3d88..0000000
--- a/examples/org.eclipse.ui.examples.undo/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.undo</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/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index b325f3b..0000000
--- a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Jan 15 21:20:44 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.4
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0cb7d76..0000000
--- a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Tue Oct 18 15:15:38 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index a26a239..0000000
--- a/examples/org.eclipse.ui.examples.undo/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Oct 18 16:45:19 EDT 2005
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java
deleted file mode 100644
index 549f659..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/AddBoxOperation.java
+++ /dev/null
@@ -1,62 +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.examples.undo;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An operation that adds a box.
- */
-public class AddBoxOperation extends BoxOperation {
-
-	/**
-	 * Create a box
-	 * @param label
-	 * @param context
-	 * @param boxes
-	 * @param box
-	 * @param canvas
-	 */
-	public AddBoxOperation(String label, IUndoContext context, Boxes boxes, Box box, Canvas canvas) {
-		super(label, context, boxes, box, canvas);
-	}
-
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info) {
-		boxes.add(box);
-		canvas.redraw(box.x1, box.y1, box.x2, box.y2, false);
-		return Status.OK_STATUS;
-	}
-	
-	public boolean canUndo() {
-		return boxes.contains(box);
-	}
-	
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info) {
-		boxes.remove(box);
-		canvas.redraw(box.x1, box.y1, box.x2, box.y2, false);
-		return Status.OK_STATUS;
-	}
-	
-	public boolean canRedo() {
-		return !boxes.contains(box);
-	}
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) {
-		return execute(monitor, info);
-	}
-
-
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java
deleted file mode 100644
index cff1a4d..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Box.java
+++ /dev/null
@@ -1,84 +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.examples.undo;
-
-
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-
-/**
- * 2D Box that can move itself, hit-test, and draw.
- */
-public class Box  {
-	
-	/*
-	 * The location of the box.
-	 */
-	public int x1, y1, x2, y2;
-	
-	/*
-	 * Constructs a box, defined by any two diametrically 
-	 * opposing corners.
-	 */
-	public Box(int x1, int y1, int x2, int y2) {
-		super();
-		set(x1, y1, x2, y2);
-	}
-	
-	/*
-	 * Move the box to a new origin.
-	 */
-	public void move(Point origin) {
-		set(origin.x, origin.y, origin.x + getWidth(), origin.y + getHeight());
-	}
-	
-	/*
-	 * Draw the box with the specified gc.
-	 */
-	public void draw(GC gc) {
-		gc.drawRectangle(x1, y1, x2-x1, y2-y1);
-	}
-	
-	/*
-	 * Set the position of the box
-	 */
-	private void set(int x1, int y1, int x2, int y2) {
-		this.x1 = Math.min(x1, x2);
-		this.y1 = Math.min(y1, y2);
-		this.x2 = Math.max(x1, x2);
-		this.y2 = Math.max(y1, y2);
-	}
-	
-	/*
-	 * Return true if this box contains the point specified by
-	 * the x and y.
-	 */
-	public boolean contains(int x, int y) {
-		return x >= x1 && 
-			x <= x2 && 
-			y >= y1 && 
-			y <= y2;
-	}
-	
-	/*
-	 * Answer the width of the box
-	 */
-	public int getWidth() {
-		return x2 - x1;
-	}
-	
-	/*
-	 * Answer the height of the box
-	 */
-	public int getHeight() {
-		return y2 - y1;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java
deleted file mode 100644
index a0524eb..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/BoxOperation.java
+++ /dev/null
@@ -1,53 +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.examples.undo;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An undoable operation that represents a change to a box.
- */
-public abstract class BoxOperation extends AbstractOperation {
-	
-	/*
-	 * The box involved in the operation
-	 */
-	Box box;
-	
-	/*
-	 * The group of boxes involved in the operation
-	 */
-	Boxes boxes;
-	
-	/*
-	 * The canvas to update or draw on during an operation
-	 */
-	Canvas canvas;
-
-	public BoxOperation(String label, IUndoContext undoContext, Boxes boxes, Box box, Canvas canvas) {
-		super (label);
-		addContext(undoContext);
-		this.boxes = boxes;
-		this.box = box;
-		this.canvas = canvas;
-	}
-	
-	/*
-	 * Show the specified prompt in an info dialog.
-	 */
-	void showMessage(String message) {
-		MessageDialog.openInformation(canvas.getShell(),
-				UndoExampleMessages.BoxView_Title, message);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java
deleted file mode 100644
index f299237..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/Boxes.java
+++ /dev/null
@@ -1,101 +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.examples.undo;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.swt.graphics.GC;
-
-/**
- * A collection of boxes
- */
-public class Boxes  {
-	
-	/*
-	 * The "model," a list of boxes
-	 */
-	private List boxes = new ArrayList();
-	
-	/*
-	 * Constructs a box collection
-	 */
-	public Boxes() {
-		super();
-	}
-	
-	/*
-	 * Add the specified box to the group of boxes.
-	 */
-	public void add(Box box) {
-		boxes.add(box);
-	}
-	
-	/*
-	 * Remove the specified box from the group of boxes.
-	 */
-	public void remove(Box box) {
-		boxes.remove(box);
-	}
-	
-	/*
-	 * Clear all the boxes from the list of boxes.
-	 */
-	public void clear() {
-		boxes = new ArrayList();
-	}
-	
-	/*
-	 * Return true if the group of boxes contains the specified box.
-	 */
-	public boolean contains(Box box) {
-		return boxes.contains(box);
-	}
-	
-	/*
-	 * Draw the boxes with the specified gc.
-	 */
-	public void draw(GC gc) {
-		for (int i = 0; i < boxes.size(); i++) {
-			((Box) boxes.get(i)).draw(gc);
-		}
-	}
-		
-	/*
-	 * Return the box containing the specified x and y, or null
-	 * if no box contains the point.
-	 */
-	public Box getBox(int x, int y) {
-		for (int i=0; i< boxes.size(); i++) {
-			Box box = (Box)boxes.get(i);
-			if (box.contains(x, y)) {
-				return box;
-			}
-		}
-		return null;
-	}
-	
-	/*
-	 * Return the list of boxes known by this group of boxes.
-	 */
-	public List getBoxes() {
-		return boxes;
-	}
-	
-	/*
-	 * Set the list of boxes known by this group of boxes.
-	 */
-	public void setBoxes(List boxes) {
-		this.boxes = boxes;
-	}
-	
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java
deleted file mode 100644
index bd4d84e..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/ClearBoxesOperation.java
+++ /dev/null
@@ -1,66 +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.examples.undo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An operation that adds a box.
- */
-public class ClearBoxesOperation extends BoxOperation {
-
-	/*
-	 * The boxes that are saved after clearing
-	 */
-	private List savedBoxes = new ArrayList();
-	
-	public ClearBoxesOperation(String label, IUndoContext context, Boxes boxes, Canvas canvas) {
-		super(label, context, boxes, null, canvas);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info){
-		savedBoxes = boxes.getBoxes();
-		boxes.clear();
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info) {
-		return execute(monitor, info);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info) {
-		boxes.setBoxes(savedBoxes);
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java
deleted file mode 100644
index 714d380..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/MoveBoxOperation.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.undo;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-
-/**
- * An operation that adds a box.
- */
-public class MoveBoxOperation extends BoxOperation {
-
-	/*
-	 * The point the box should move to/from.
-	 */
-	private Point origin;
-	private Point target;
-	
-	public MoveBoxOperation(String label, IUndoContext context, Box box, Canvas canvas, Point newOrigin) {
-		super(label, context, null, box, canvas);
-		origin = new Point(box.x1, box.y1);
-		target = new Point(newOrigin.x, newOrigin.y);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus execute(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (box==null) {
-			throw new ExecutionException("box ix null");
-		}
-		box.move(target);
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus redo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		return execute(monitor, info);
-	}
-
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus undo(IProgressMonitor monitor, IAdaptable info)
-			throws ExecutionException {
-		if (box==null) {
-			throw new ExecutionException("box ix null");
-		}
-		box.move(origin);
-		canvas.redraw();
-		return Status.OK_STATUS;
-	}
-	
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.core.commands.operations.IUndoableOperation#getLabel()
-	 */
-	public String getLabel() {
-		final StringBuffer stringBuffer = new StringBuffer();
-		stringBuffer.append(super.getLabel());
-		stringBuffer.append("["); //$NON-NLS-1$
-		stringBuffer.append("("); //$NON-NLS-1$
-		stringBuffer.append(new Integer(origin.x).toString());
-		stringBuffer.append(", "); //$NON-NLS-1$
-		stringBuffer.append(new Integer(origin.y).toString());
-		stringBuffer.append(')');
-		stringBuffer.append(", "); //$NON-NLS-1$
-		stringBuffer.append("("); //$NON-NLS-1$
-		stringBuffer.append(new Integer(target.x).toString());
-		stringBuffer.append(", "); //$NON-NLS-1$
-		stringBuffer.append(new Integer(target.y).toString());
-		stringBuffer.append(')');
-		stringBuffer.append(']');
-		return stringBuffer.toString();
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java
deleted file mode 100644
index 4cd9023..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/PromptingUserApprover.java
+++ /dev/null
@@ -1,129 +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.examples.undo;
-
-import org.eclipse.core.commands.operations.IOperationApprover;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.examples.undo.preferences.PreferenceConstants;
-
-/**
- * An operation approver that prompts the user to see whether an undo or redo
- * should continue. An example preference is checked to determine if prompting
- * should occur.
- */
-public final class PromptingUserApprover implements IOperationApprover {
-
-	private IUndoContext context;
-
-	/*
-	 * Create the operation approver.
-	 */
-	public PromptingUserApprover(IUndoContext context) {
-		super();
-		this.context = context;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedRedoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus proceedRedoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable uiInfo) {
-
-		// return immediately if the operation is not relevant
-		if (!operation.hasContext(context))
-			return Status.OK_STATUS;
-
-		// allow the operation if we are not prompting
-		boolean prompt = UndoPlugin.getDefault().getPreferenceStore()
-				.getBoolean(PreferenceConstants.PREF_CONFIRMUNDO);
-		if (!prompt)
-			return Status.OK_STATUS;
-		return prompt(false, operation, uiInfo);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.operations.IOperationApprover#proceedUndoing(org.eclipse.core.commands.operations.IUndoableOperation,
-	 *      org.eclipse.core.commands.operations.IOperationHistory,
-	 *      org.eclipse.core.runtime.IAdaptable)
-	 */
-	public IStatus proceedUndoing(IUndoableOperation operation,
-			IOperationHistory history, IAdaptable uiInfo) {
-
-		// return immediately if the operation is not relevant
-		if (!operation.hasContext(context))
-			return Status.OK_STATUS;
-
-		// allow the operation if we are not prompting
-		boolean prompt = UndoPlugin.getDefault().getPreferenceStore()
-				.getBoolean(PreferenceConstants.PREF_CONFIRMUNDO);
-		if (!prompt)
-			return Status.OK_STATUS;
-		return prompt(true, operation, uiInfo);
-	}
-
-	/*
-	 * Prompt the user as to whether to continue the undo or redo, and return an
-	 * OK_STATUS if we should continue, or a CANCEL_STATUS if we should not.
-	 */
-	private IStatus prompt(boolean undoing, IUndoableOperation operation,
-			IAdaptable uiInfo) {
-		boolean createdShell = false;
-		Shell shell = getShell(uiInfo);
-		if (shell == null) {
-			if (shell == null) {
-				createdShell = true;
-				shell = new Shell();
-			}
-		}
-		String command = undoing ? UndoExampleMessages.BoxView_Undo
-				: UndoExampleMessages.BoxView_Redo;
-		String message = NLS.bind(UndoExampleMessages.BoxView_ConfirmUndo, command,
-				operation.getLabel());
-		MessageDialogWithToggle dialog = MessageDialogWithToggle
-				.openOkCancelConfirm(shell, UndoExampleMessages.BoxView_Title,
-						message, UndoExampleMessages.UndoPreferences_DoNotConfirm, false, null, null);
-		UndoPlugin.getDefault().getPreferenceStore().setValue(PreferenceConstants.PREF_CONFIRMUNDO, !dialog.getToggleState());
-
-		if (createdShell)
-			shell.dispose();
-		if (dialog.getReturnCode() == Window.OK)
-			return Status.OK_STATUS;
-		return Status.CANCEL_STATUS;
-	}
-
-	/*
-	 * Return the shell described by the supplied uiInfo, or null if no shell is
-	 * described.
-	 */
-	Shell getShell(IAdaptable uiInfo) {
-		if (uiInfo != null) {
-			Shell shell = (Shell) uiInfo.getAdapter(Shell.class);
-			if (shell != null)
-				return shell;
-		}
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java
deleted file mode 100644
index 678524a..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoExampleMessages.java
+++ /dev/null
@@ -1,53 +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 - Initial API and implementation
- **********************************************************************/
-package org.eclipse.ui.examples.undo;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Message class for the undo example.
- *
- */
-public class UndoExampleMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.ui.examples.undo.messages";//$NON-NLS-1$
-
-	public static String UndoPreferences_Description;
-	public static String UndoPreferences_HistoryLimit;
-	public static String UndoPreferences_ConfirmUndo;
-	public static String UndoPreferences_ShowDebug;
-	public static String UndoPreferences_DoNotConfirm;
-	
-	public static String UndoHistoryView_ContextFilterDialog;
-	public static String UndoHistoryView_ChooseContextMessage;
-	public static String UndoHistoryView_FilterText;
-	public static String UndoHistoryView_FilterToolTipText;
-	public static String UndoHistoryView_OperationInvalid;
-	public static String UndoHistoryView_OperationException;
-	public static String UndoHistoryView_UndoSelected;
-	public static String UndoHistoryView_UndoSelectedToolTipText;
-	public static String UndoHistoryView_RefreshList;
-	public static String UndoHistoryView_RefreshListToolTipText;
-	public static String UndoHistoryView_InfoDialogTitle;
-
-	public static String BoxView_Title;
-	public static String BoxView_ClearBoxes;
-	public static String BoxView_ClearBoxesToolTipText;
-	public static String BoxView_Move;
-	public static String BoxView_Add;
-	public static String BoxView_ConfirmUndo;
-	public static String BoxView_Undo;
-	public static String BoxView_Redo;
-	
-    static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, UndoExampleMessages.class);
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java
deleted file mode 100644
index 8180980..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/UndoPlugin.java
+++ /dev/null
@@ -1,64 +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.examples.undo;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UndoPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static UndoPlugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public UndoPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static UndoPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.examples.undo2", path);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties
deleted file mode 100644
index 2c2dad1..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/messages.properties
+++ /dev/null
@@ -1,41 +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
-###############################################################################
-
-########### Undo Preferences ###########################
-UndoPreferences_Description = Undo Example Preferences
-UndoPreferences_HistoryLimit = Undo history limit
-UndoPreferences_ConfirmUndo = Confirm all undo operations
-UndoPreferences_ShowDebug = Show debug labels in undo history view
-UndoPreferences_DoNotConfirm = Do not prompt for undo or redo again
-
-########### Undo History View ##########################
-UndoHistoryView_ContextFilterDialog = Context Filter Dialog
-UndoHistoryView_ChooseContextMessage = Choose the Context for the view
-UndoHistoryView_FilterText = Filter on...
-UndoHistoryView_FilterToolTipText = Set the undo context used to filter the operation history
-UndoHistoryView_UndoSelected = Undo selected
-UndoHistoryView_UndoSelectedToolTipText = Undo the selected operation
-UndoHistoryView_RefreshList = Refresh list
-UndoHistoryView_RefreshListToolTipText = Refresh and redraw the list
-UndoHistoryView_OperationInvalid = The selected operation cannot be undone in its current state
-UndoHistoryView_OperationException = An error occurred while trying to undo this operation
-UndoHistoryView_InfoDialogTitle = Undo History Example Information
-
-########### Box View ##########################
-BoxView_Title = Box View
-BoxView_ClearBoxes = Delete all boxes
-BoxView_ClearBoxesToolTipText = Delete all of the boxes from the view
-BoxView_Move = Move Box
-BoxView_Add = Add Box
-BoxView_ConfirmUndo = Are you sure you want to {0} "{1}"?
-BoxView_Undo = Undo
-BoxView_Redo = Redo
-
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java
deleted file mode 100644
index 209f680..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceConstants.java
+++ /dev/null
@@ -1,22 +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.examples.undo.preferences;
-
-/**
- * Constant definitions for plug-in preferences
- */
-public class PreferenceConstants {
-
-	public static final String PREF_UNDOLIMIT = "prefUndoLimit";
-	public static final String PREF_SHOWDEBUG = "prefShowDebug";
-	public static final String PREF_CONFIRMUNDO = "prefConfirmUndo";
-	
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java
deleted file mode 100644
index b706daf..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/PreferenceInitializer.java
+++ /dev/null
@@ -1,38 +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.examples.undo.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-
-import org.eclipse.ui.examples.undo.UndoPlugin;
-
-/**
- * Class used to initialize default preference values.
- */
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = UndoPlugin.getDefault()
-				.getPreferenceStore();
-		store.setDefault(PreferenceConstants.PREF_CONFIRMUNDO, true);
-		store.setDefault(PreferenceConstants.PREF_UNDOLIMIT,
-				25);
-		store.setDefault(PreferenceConstants.PREF_SHOWDEBUG, false);
-		
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java
deleted file mode 100644
index df35f35..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/preferences/UndoPreferencePage.java
+++ /dev/null
@@ -1,65 +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.examples.undo.preferences;
-
-import org.eclipse.jface.preference.*;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.examples.undo.UndoExampleMessages;
-import org.eclipse.ui.examples.undo.UndoPlugin;
-
-/**
- * This class is used to define preferences that control how
- * undo occurs.  It demonstrates the use of preferences to configure
- * the operation history in different ways.
- */
-
-public class UndoPreferencePage
-	extends FieldEditorPreferencePage
-	implements IWorkbenchPreferencePage {
-
-	public UndoPreferencePage() {
-		super(GRID);
-		setPreferenceStore(UndoPlugin.getDefault().getPreferenceStore());
-		setDescription(UndoExampleMessages.UndoPreferences_Description);
-	}
-	
-	/**
-	 * Creates the field editors. 
-	 */
-	public void createFieldEditors() {
-		
-		addField(
-				new IntegerFieldEditor(
-					PreferenceConstants.PREF_UNDOLIMIT,
-					UndoExampleMessages.UndoPreferences_HistoryLimit,
-					getFieldEditorParent()));
-
-		addField(
-				new BooleanFieldEditor(
-					PreferenceConstants.PREF_SHOWDEBUG,
-					UndoExampleMessages.UndoPreferences_ShowDebug,
-					getFieldEditorParent()));
-
-		addField(
-			new BooleanFieldEditor(
-				PreferenceConstants.PREF_CONFIRMUNDO,
-				UndoExampleMessages.UndoPreferences_ConfirmUndo,
-				getFieldEditorParent()));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-	
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java
deleted file mode 100644
index 761bc9a..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/BoxView.java
+++ /dev/null
@@ -1,462 +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.examples.undo.views;
-
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.swt.widgets.Composite;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.examples.undo.AddBoxOperation;
-import org.eclipse.ui.examples.undo.Box;
-import org.eclipse.ui.examples.undo.Boxes;
-import org.eclipse.ui.examples.undo.ClearBoxesOperation;
-import org.eclipse.ui.examples.undo.MoveBoxOperation;
-import org.eclipse.ui.examples.undo.PromptingUserApprover;
-import org.eclipse.ui.examples.undo.UndoExampleMessages;
-import org.eclipse.ui.examples.undo.UndoPlugin;
-import org.eclipse.ui.examples.undo.preferences.PreferenceConstants;
-import org.eclipse.ui.operations.RedoActionHandler;
-import org.eclipse.ui.operations.UndoActionHandler;
-import org.eclipse.ui.part.ViewPart;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IOperationApprover;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.ObjectUndoContext;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-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.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.SWT;
-
-public class BoxView extends ViewPart {
-	/*
-	 * The canvas to paint the boxes on.
-	 */
-	private Canvas paintCanvas;
-
-	/*
-	 * The gc used for drawing the rubber band.
-	 */
-	private GC gc;
-
-	/*
-	 * The model, a group of boxes
-	 */
-	private Boxes boxes = new Boxes();
-
-	/*
-	 * Undo and redo actions
-	 */
-	private UndoActionHandler undoAction;
-
-	private RedoActionHandler redoAction;
-
-	private IAction clearBoxesAction;
-
-	/*
-	 * Private undo context for box operations
-	 */
-	private IUndoContext undoContext;
-
-	/*
-	 * Operation approver for approving undo and redo
-	 */
-	private IOperationApprover operationApprover;
-
-	/*
-	 * Property change listener for the undo limit preference.
-	 */
-	private IPropertyChangeListener propertyChangeListener;
-
-	/*
-	 * True if a click-drag is in progress
-	 */
-	private boolean dragInProgress = false;
-
-	/*
-	 * True if a click-move is in progress
-	 */
-	private boolean moveInProgress = false;
-
-	/*
-	 * The box that is being moved.
-	 */
-	private Box movingBox;
-
-	/*
-	 * The diff between a moving box and the track position.
-	 */
-	int diffX, diffY;
-
-	/*
-	 * The position of the first click in a click-drag
-	 */
-	private Point anchorPosition = new Point(-1, -1);
-
-	/*
-	 * A temporary point in a drag or move operation
-	 */
-	private Point tempPosition = new Point(-1, -1);
-
-	/*
-	 * The rubber band position (the last recorded temp position)
-	 */
-	private Point rubberbandPosition = new Point(-1, -1);
-
-	/*
-	 * Construct a BoxView.
-	 */
-	public BoxView() {
-		super();
-		initializeOperationHistory();
-	}
-
-	/*
-	 * Create the canvas on which boxes are drawn and hook up all actions and
-	 * listeners.
-	 */
-	public void createPartControl(Composite parent) {
-		paintCanvas = new Canvas(parent, SWT.BORDER | SWT.V_SCROLL
-				| SWT.H_SCROLL | SWT.NO_REDRAW_RESIZE);
-
-		// set up a GC for drawing the tracking rectangle
-		gc = new GC(paintCanvas);
-		gc.setForeground(paintCanvas.getForeground());
-		gc.setLineStyle(SWT.LINE_SOLID);
-
-		// add listeners
-		addListeners();
-
-		// create actions and hook them up to the menus and toolbar
-		makeActions();
-		hookContextMenu();
-		createGlobalActionHandlers();
-		contributeToActionBars();
-	}
-
-	/*
-	 * Add listeners to the canvas.
-	 */
-	private void addListeners() {
-		paintCanvas.addMouseListener(new MouseAdapter() {
-			public void mouseDown(MouseEvent event) {
-				if (event.button != 1)
-					return;
-				if (dragInProgress || moveInProgress)
-					return; // spurious event
-
-				tempPosition.x = event.x;
-				tempPosition.y = event.y;
-				Box box = boxes.getBox(event.x, event.y);
-				if (box != null) {
-					moveInProgress = true;
-					movingBox = box;
-					anchorPosition.x = box.x1;
-					anchorPosition.y = box.y1;
-					diffX = event.x - box.x1;
-					diffY = event.y - box.y1;
-				} else {
-					dragInProgress = true;
-					anchorPosition.x = event.x;
-					anchorPosition.y = event.y;
-				}
-			}
-
-			public void mouseUp(MouseEvent event) {
-				if (event.button != 1) {
-					resetDrag(true); // abort if right or middle mouse button
-					// pressed
-					return;
-				}
-				if (anchorPosition.x == -1)
-					return; // spurious event
-
-				if (dragInProgress) {
-					Box box = new Box(anchorPosition.x, anchorPosition.y,
-							tempPosition.x, tempPosition.y);
-					if (box.getWidth() > 0 && box.getHeight() > 0) {
-						try {
-							getOperationHistory().execute(
-									new AddBoxOperation(
-											UndoExampleMessages.BoxView_Add,
-											undoContext, boxes, box, paintCanvas),
-									null, null);
-						} catch (ExecutionException e) {
-						}
-						dragInProgress = false;
-					}
-				} else if (moveInProgress) {
-					try {
-						getOperationHistory().execute(
-								new MoveBoxOperation(
-										UndoExampleMessages.BoxView_Move,
-										undoContext, movingBox, paintCanvas,
-										anchorPosition), null, null);
-					} catch (ExecutionException e) {
-					}
-					moveInProgress = false;
-					movingBox = null;
-				}
-				resetDrag(false);
-
-				// redraw everything to clean up the tracking rectangle
-				paintCanvas.redraw();
-			}
-
-			public void mouseDoubleClick(MouseEvent event) {
-			}
-		});
-		paintCanvas.addMouseMoveListener(new MouseMoveListener() {
-			public void mouseMove(MouseEvent event) {
-				if (dragInProgress) {
-					clearRubberBandSelection();
-					tempPosition.x = event.x;
-					tempPosition.y = event.y;
-					addRubberBandSelection();
-				} else if (moveInProgress) {
-					clearRubberBandSelection();
-					anchorPosition.x = event.x - diffX;
-					anchorPosition.y = event.y - diffY;
-					tempPosition.x = anchorPosition.x + movingBox.getWidth();
-					tempPosition.y = anchorPosition.y + movingBox.getHeight();
-					addRubberBandSelection();
-				}
-			}
-		});
-		paintCanvas.addPaintListener(new PaintListener() {
-			public void paintControl(PaintEvent event) {
-				event.gc.setForeground(paintCanvas.getForeground());
-				boxes.draw(event.gc);
-			}
-		});
-
-		paintCanvas.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				// dispose the gc
-				gc.dispose();
-				// dispose listeners
-				removeListeners();
-			}
-		});
-
-		// listen for a change in the undo limit
-		propertyChangeListener = new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty() == PreferenceConstants.PREF_UNDOLIMIT) {
-					int limit = UndoPlugin.getDefault().getPreferenceStore()
-							.getInt(PreferenceConstants.PREF_UNDOLIMIT);
-					getOperationHistory().setLimit(undoContext, limit);
-				}
-			}
-		};
-		UndoPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(
-				propertyChangeListener);
-
-	}
-
-	/*
-	 * Remove listeners that were registered. Since the control is being
-	 * disposed, we are only removing non-control listeners.
-	 */
-	private void removeListeners() {
-		UndoPlugin.getDefault().getPreferenceStore()
-				.removePropertyChangeListener(propertyChangeListener);
-		getOperationHistory().removeOperationApprover(operationApprover);
-	}
-
-	/*
-	 * Hook a listener on the menu showing so we can fill the context menu with
-	 * our actions.
-	 */
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu");
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				BoxView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(paintCanvas);
-		paintCanvas.setMenu(menu);
-	}
-
-	/*
-	 * Add our actions to the action bars.
-	 */
-	private void contributeToActionBars() {
-		IActionBars bars = getViewSite().getActionBars();
-		fillLocalPullDown(bars.getMenuManager());
-		fillLocalToolBar(bars.getToolBarManager());
-	}
-
-	/*
-	 * Add our undo and redo actions to the local pulldown.
-	 */
-	private void fillLocalPullDown(IMenuManager manager) {
-		manager.add(undoAction);
-		manager.add(redoAction);
-		manager.add(new Separator());
-		manager.add(clearBoxesAction);
-	}
-
-	/*
-	 * Add our undo and redo actions to the context menu.
-	 */
-	private void fillContextMenu(IMenuManager manager) {
-		manager.add(undoAction);
-		manager.add(redoAction);
-		manager.add(new Separator());
-		manager.add(clearBoxesAction);
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-
-	/*
-	 * Add actions to the local toolbar.
-	 */
-	private void fillLocalToolBar(IToolBarManager manager) {
-		manager.add(clearBoxesAction);
-	}
-
-	/*
-	 * Make any local actions used in the view.
-	 */
-	private void makeActions() {
-		clearBoxesAction = new Action() {
-			public void run() {
-				try {
-					getOperationHistory().execute(
-							new ClearBoxesOperation(
-									UndoExampleMessages.BoxView_ClearBoxes,
-									undoContext, boxes, paintCanvas), null,
-							null);
-				} catch (ExecutionException e) {
-				}
-			}
-		};
-		clearBoxesAction.setText(UndoExampleMessages.BoxView_ClearBoxes);
-		clearBoxesAction
-				.setToolTipText(UndoExampleMessages.BoxView_ClearBoxesToolTipText);
-		clearBoxesAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_DELETE));
-	}
-
-	/*
-	 * Create the global undo and redo action handlers.
-	 */
-	private void createGlobalActionHandlers() {
-		// set up action handlers that operate on the current context
-		undoAction = new UndoActionHandler(this.getSite(), undoContext);
-		redoAction = new RedoActionHandler(this.getSite(), undoContext);
-		IActionBars actionBars = getViewSite().getActionBars();
-		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
-				undoAction);
-		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
-				redoAction);
-	}
-
-	/*
-	 * Set focus to the canvas.
-	 */
-	public void setFocus() {
-		paintCanvas.setFocus();
-	}
-
-	/*
-	 * Reset the drag operation.
-	 */
-	private void resetDrag(boolean clearRubberband) {
-		if (clearRubberband) {
-			clearRubberBandSelection();
-		}
-		dragInProgress = false;
-		moveInProgress = false;
-		movingBox = null;
-		anchorPosition.x = anchorPosition.y = tempPosition.x = tempPosition.y = rubberbandPosition.x = rubberbandPosition.y = -1;
-	}
-
-	/*
-	 * Clear the existing rubber band selection.
-	 */
-	private void clearRubberBandSelection() {
-		gc.setForeground(paintCanvas.getBackground());
-		gc.drawRectangle(anchorPosition.x, anchorPosition.y,
-				rubberbandPosition.x - anchorPosition.x, rubberbandPosition.y
-						- anchorPosition.y);
-		paintCanvas.redraw(anchorPosition.x, anchorPosition.y,
-				rubberbandPosition.x - anchorPosition.x, rubberbandPosition.y
-						- anchorPosition.y, false);
-		paintCanvas.update();
-		rubberbandPosition = new Point(-1, -1);
-		gc.setForeground(paintCanvas.getForeground());
-	}
-
-	/*
-	 * Show a rubber band selection.
-	 */
-	private void addRubberBandSelection() {
-		rubberbandPosition = tempPosition;
-		gc.drawRectangle(anchorPosition.x, anchorPosition.y,
-				rubberbandPosition.x - anchorPosition.x, rubberbandPosition.y
-						- anchorPosition.y);
-	}
-
-	/*
-	 * Initialize the workbench operation history for our undo context.
-	 */
-	private void initializeOperationHistory() {
-		// create a unique undo context to 
-		// represent this view's undo history
-		undoContext = new ObjectUndoContext(this);
-
-		// set the undo limit for this context based on the preference
-		int limit = UndoPlugin.getDefault().getPreferenceStore().getInt(
-				PreferenceConstants.PREF_UNDOLIMIT);
-		getOperationHistory().setLimit(undoContext, limit);
-
-		// Install an operation approver for this undo context that prompts
-		// according to a user preference.
-		operationApprover = new PromptingUserApprover(undoContext);
-		getOperationHistory().addOperationApprover(operationApprover);
-	}
-
-	/*
-	 * Get the operation history from the workbench.
-	 */
-	private IOperationHistory getOperationHistory() {
-		return PlatformUI.getWorkbench().getOperationSupport()
-				.getOperationHistory();
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java b/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java
deleted file mode 100644
index a952dac..0000000
--- a/examples/org.eclipse.ui.examples.undo/Eclipse UI Examples Undo/org/eclipse/ui/examples/undo/views/UndoHistoryView.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.undo.views;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.dialogs.ElementListSelectionDialog;
-import org.eclipse.ui.examples.undo.UndoExampleMessages;
-import org.eclipse.ui.examples.undo.UndoPlugin;
-import org.eclipse.ui.examples.undo.preferences.PreferenceConstants;
-import org.eclipse.ui.operations.RedoActionHandler;
-import org.eclipse.ui.operations.UndoActionHandler;
-import org.eclipse.ui.part.*;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.commands.operations.OperationHistoryFactory;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IOperationHistoryListener;
-import org.eclipse.core.commands.operations.OperationHistoryEvent;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.jface.action.*;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.*;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.SWT;
-
-/**
- * This view shows what operations are being added to the operations history for
- * undo. The view can be filtered by any operation context. A null operation
- * context indicates that the view should not be filtered.
- * 
- * <p>
- * Selecting undo or redo from the context menu or the edit menu will perform a
- * linear undo in the current context of the view. Selecting "Undo selected"
- * allows experimentation with direct undo. Operations that are undoable may be
- * undone independently of their order in the history.
- */
-
-public class UndoHistoryView extends ViewPart implements
-		ISelectionChangedListener {
-	private TableViewer viewer;
-
-	private Action filterAction;
-
-	private Action doubleClickAction;
-
-	private Action selectiveUndoAction;
-
-	private Action refreshListAction;
-
-	private IOperationHistory history = OperationHistoryFactory
-			.getOperationHistory();
-
-	private IUndoContext fContext = IOperationHistory.GLOBAL_UNDO_CONTEXT;
-
-	private UndoActionHandler undoAction;
-
-	private RedoActionHandler redoAction;
-	
-	private boolean showDebug = UndoPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOWDEBUG);
-	private IPropertyChangeListener propertyChangeListener;
-
-	/*
-	 * The content provider shows the operations in the undo portion of the
-	 * operation history.  The histor is filtered by the currently selected
-	 * undo context.
-	 */
-
-	class ViewContentProvider implements IStructuredContentProvider,
-			IOperationHistoryListener {
-
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-			// we never change inputs, so we just use this as a place to add our
-			// listener.
-			history.addOperationHistoryListener(this);
-		}
-
-		public void dispose() {
-			history.removeOperationHistoryListener(this);
-		}
-
-		public Object[] getElements(Object input) {
-			// show the items in the operations history.
-			return history.getUndoHistory(fContext);
-		}
-
-		public void historyNotification(OperationHistoryEvent event) {
-			if (viewer.getTable().isDisposed())
-				return;
-			Display display = viewer.getTable().getDisplay();
-			switch (event.getEventType()) {
-			case OperationHistoryEvent.OPERATION_ADDED:
-			case OperationHistoryEvent.OPERATION_REMOVED:
-			case OperationHistoryEvent.UNDONE:
-			case OperationHistoryEvent.REDONE:
-				if (event.getOperation().hasContext(fContext)
-						&& display != null) {
-					display.syncExec(new Runnable() {
-						public void run() {
-							// refresh all labels in case any operation has
-							// changed dynamically
-							// without notifying the operation history.
-							if (!viewer.getTable().isDisposed())
-								viewer.refresh(true);
-						}
-					});
-				}
-				break;
-			}
-		}
-	}
-
-	/*
-	 * A simple label provider that uses a preference to determine
-	 * whether the simple label or the debugging label (toString()) 
-	 * for an operation is shown.
-	 */
-	class ViewLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		public String getColumnText(Object obj, int index) {
-			return getText(obj);
-		}
-
-		public Image getColumnImage(Object obj, int index) {
-			return getImage(obj);
-		}
-
-		public String getText(Object obj) {
-			if (!showDebug && obj instanceof IUndoableOperation)
-				return ((IUndoableOperation)obj).getLabel();
-			return obj.toString();
-		}
-	}
-
-	/*
-	 * Create a table viewer to show the list of operations.
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.SINGLE | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setInput(getViewSite());
-		makeActions();
-		hookContextMenu();
-		hookDoubleClickAction();
-		addListeners();
-		createGlobalActionHandlers();
-	}
-	
-	/*
-	 * Add any listeners needed by this view.
-	 */
-	private void addListeners() {
-		propertyChangeListener = new IPropertyChangeListener(){
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty() == PreferenceConstants.PREF_SHOWDEBUG) {
-					showDebug = UndoPlugin.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.PREF_SHOWDEBUG);
-					viewer.refresh();
-				}
-			}
-		};
-		UndoPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(propertyChangeListener);
-		viewer.getControl().addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				removeListeners();
-			}
-		});
-	}
-	
-	/*
-	 * Remove listeners that were added to this view.
-	 */
-	private void removeListeners() {
-		UndoPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(propertyChangeListener);	
-	}
-
-
-	/*
-	 * Create global action handlers to control undo and redo. We use the action
-	 * handlers rather than the UndoRedoActionGroup because this view
-	 * dynamically sets the undo context of the handlers. Most views that simply
-	 * desire an undo and redo menu action for their undo context can use
-	 * UndoRedoActionGroup.
-	 */
-	private void createGlobalActionHandlers() {
-		// set up action handlers that operate on the current context
-		undoAction = new UndoActionHandler(this.getSite(), fContext);
-		redoAction = new RedoActionHandler(this.getSite(), fContext);
-		IActionBars actionBars = getViewSite().getActionBars();
-		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(),
-				undoAction);
-		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(),
-				redoAction);
-	}
-
-	/*
-	 * Put up a dialog that shows all of the available undo contexts and allow
-	 * the user to select one.
-	 */
-	private IUndoContext selectContext() {
-		// This would be better implemented as a view filter, but for now, we 
-		// will use a dialog that collects the available undo contexts.
-		List input = new ArrayList();
-		IUndoableOperation[] operations = history
-				.getUndoHistory(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		for (int i = 0; i < operations.length; i++) {
-			IUndoContext[] contexts = operations[i].getContexts();
-			for (int j = 0; j < contexts.length; j++) {
-				if (!input.contains(contexts[j])) {
-					input.add(contexts[j]);
-				}
-			}
-		}
-		input.add(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-
-		ILabelProvider labelProvider = new LabelProvider() {
-			public String getText(Object element) {
-				return ((IUndoContext) element).getLabel();
-			}
-		};
-
-		ElementListSelectionDialog dialog = new ElementListSelectionDialog(
-				getSite().getShell(), labelProvider);
-		dialog.setMultipleSelection(false);
-		dialog.setTitle(UndoExampleMessages.UndoHistoryView_ContextFilterDialog); 
-		dialog.setMessage(UndoExampleMessages.UndoHistoryView_ChooseContextMessage); 
-		dialog.setElements(input.toArray());
-		dialog.setInitialSelections(new Object[] { fContext });
-		if (dialog.open() == Window.OK) {
-			Object[] contexts = dialog.getResult();
-			if (contexts[0] instanceof IUndoContext)
-				return (IUndoContext) contexts[0];
-			return null;
-		}
-		return null;
-	}
-
-	/*
-	 * Reset the undo context on which the history is filtered.
-	 */
-	public void setContext(IUndoContext context) {
-		fContext = context;
-		// setting the context into the actions updates the menu labels, etc.
-		redoAction.setContext(context);
-		undoAction.setContext(context);
-		// need to refresh the viewer
-		viewer.refresh(false);
-	}
-
-	/*
-	 * Hook the context menu for the view
-	 */
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu");
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				UndoHistoryView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, viewer);
-	}
-
-	/*
-	 * Fill the context menu for the view.
-	 */
-	private void fillContextMenu(IMenuManager manager) {
-		// First add the global undo/redo actions
-		undoAction.update();
-		redoAction.update();
-		manager.add(undoAction);
-		manager.add(redoAction);
-		manager.add(new Separator());
-		
-		// Now add our specialized actions
-		manager.add(selectiveUndoAction);
-		manager.add(filterAction);
-		manager.add(refreshListAction);
-
-		ISelection selection = viewer.getSelection();
-		if (!selection.isEmpty()) {
-			IUndoableOperation operation = (IUndoableOperation) ((IStructuredSelection) selection)
-					.getFirstElement();
-			selectiveUndoAction.setEnabled(operation.canUndo());
-		} else {
-			selectiveUndoAction.setEnabled(false);
-		}
-
-		// Other plug-ins can contribute actions here
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-
-	/*
-	 * Create the actions for the view.
-	 */
-	private void makeActions() {
-		filterAction = new Action() {
-			public void run() {
-				IUndoContext context = selectContext();
-				if (fContext != context && context != null) {
-					setContext(context);
-				}
-			}
-		};
-		filterAction.setText(UndoExampleMessages.UndoHistoryView_FilterText);
-		filterAction.setToolTipText(UndoExampleMessages.UndoHistoryView_FilterToolTipText);
-		filterAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_OBJS_INFO_TSK));
-
-		selectiveUndoAction = new Action() {
-			public void run() {
-				ISelection selection = viewer.getSelection();
-				IUndoableOperation operation = (IUndoableOperation) ((IStructuredSelection) selection)
-						.getFirstElement();
-				if (operation.canUndo()) {
-					try {
-						history.undoOperation(operation, null, undoAction);
-					} catch (ExecutionException e) {
-						showMessage(UndoExampleMessages.UndoHistoryView_OperationException);
-					}
-				} else {
-					showMessage(UndoExampleMessages.UndoHistoryView_OperationInvalid);
-				}
-			}
-		};
-		selectiveUndoAction.setText(UndoExampleMessages.UndoHistoryView_UndoSelected);
-		selectiveUndoAction.setToolTipText(UndoExampleMessages.UndoHistoryView_UndoSelectedToolTipText);
-		selectiveUndoAction.setImageDescriptor(PlatformUI.getWorkbench()
-				.getSharedImages().getImageDescriptor(
-						ISharedImages.IMG_TOOL_UNDO));
-
-		refreshListAction = new Action() {
-			public void run() {
-				if (!viewer.getTable().isDisposed())
-					viewer.refresh(true);
-			}
-		};
-		refreshListAction.setText(UndoExampleMessages.UndoHistoryView_RefreshList);
-		refreshListAction.setToolTipText(UndoExampleMessages.UndoHistoryView_RefreshListToolTipText);
-
-		doubleClickAction = new Action() {
-			public void run() {
-				ISelection selection = viewer.getSelection();
-				IUndoableOperation operation = (IUndoableOperation) ((IStructuredSelection) selection)
-						.getFirstElement();
-				StringBuffer buf = new StringBuffer(operation.getLabel());
-				buf.append("\n");
-				buf.append("Enabled=");	//$NON-NLS-1$
-				buf.append(new Boolean(operation.canUndo()).toString());
-				buf.append("\n");
-				buf.append(operation.getClass().toString());
-				showMessage(buf.toString());
-
-			}
-		};
-	}
-
-	/*
-	 * Register a double click action with the double click event.
-	 */
-	private void hookDoubleClickAction() {
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				doubleClickAction.run();
-			}
-		});
-	}
-
-	/*
-	 * Show an info message
-	 */
-	private void showMessage(String message) {
-		MessageDialog.openInformation(viewer.getControl().getShell(),
-				UndoExampleMessages.UndoHistoryView_InfoDialogTitle, message);
-	}
-
-	/*
-	 * The selection has changed.
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		ISelection selection = viewer.getSelection();
-		boolean enabled = !selection.isEmpty();
-		selectiveUndoAction.setEnabled(enabled);
-	}
-
-	/*
-	 * Pass the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF
deleted file mode 100644
index cf582ab..0000000
--- a/examples/org.eclipse.ui.examples.undo/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.undo; singleton:=true
-Bundle-Version: 3.2.100.qualifier
-Bundle-Activator: org.eclipse.ui.examples.undo.UndoPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.jface.text
-Bundle-Vendor: %Plugin.providerName
-Bundle-ActivationPolicy: lazy
diff --git a/examples/org.eclipse.ui.examples.undo/about.html b/examples/org.eclipse.ui.examples.undo/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.undo/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.undo/build.properties b/examples/org.eclipse.ui.examples.undo/build.properties
deleted file mode 100644
index dae444f..0000000
--- a/examples/org.eclipse.ui.examples.undo/build.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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.. = Eclipse UI Examples Undo/
-
-bin.includes = doc-html/,\
-               icons/,\
-               about.html,\
-               plugin.properties,\
-               plugin.xml,\
-               .,\
-               META-INF/
-
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html b/examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html
deleted file mode 100644
index f24f028..0000000
--- a/examples/org.eclipse.ui.examples.undo/doc-html/ui_undo_ex.html
+++ /dev/null
@@ -1,90 +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">
-   <title>Undo Example</title>
-</head>
-<body>
-
-<h2>
-<b>Example - Undo</b></h2>
-
-<h3>Introduction</h3>
-<p>
-The Undo Example adds two views to the workbench.  The <b>Box View</b> is a rudimentary
-view that allows the user to create boxes by clicking into empty space and dragging the mouse
-to form a box.  Boxes can be moved by selecting a box and dragging it around.  The user
-may undo and redo any operations performed in the box view.  The <b>Undo History
-View</b> shows the undo history maintained by the workbench operations history.
-</p>
-<h3>Features demonstrated in the example</h3>
-<ul>
-<li>Creating an <tt>IUndoableOperation</tt> inside an action (Delete all boxes) to perform the action's
-work .</li>
-<li>Creating an <tt>IUndoableOperation</tt> based on an operation implied by a gesture (Adding
-and moving boxes).</li>
-<li>Using a local <tt>IUndoContext</tt> to keep undo operations local to a particular view.</li>
-<li>Using the platform undo and redo action handlers to provide undo and redo in a view.</li>
-<li>Providing a user preference for setting the undo limit for a particular undo context.</li>
-<li>Using an <tt>IOperationApprover</tt> to install additional policy (Prompt before undo) in
-the operation history.</li>
-<li>Using <tt>IOperationHistory</tt> protocol to show undo history for different
-undo contexts (Undo History View).</li>
-</ul>
-<h3>Features not demonstrated</h3>
-<ul>
-<li>Since the example is focused on simple undo, the BoxView code is kept
-to a minimum.  Therefore, it does not provide the expected graphical editor features such as
-selection, resize and selection handles, color and line style attributes, etc.  For the same
-reason, advanced features in the undo framework are not shown.</li>
-<li>There is no example of assigning multiple undo contexts in order to share operations between
-views or editors.</li>
-<li>There is no example of using composite undo operations.</li>
-</ul>
-<h3>Running the example</h3>
-<p>
-From Eclipse's <strong>Window</strong> menu select <strong>Show View</strong> &gt; <strong>Other...</strong>.  
-In the <strong>Show View</strong> dialog, expand <strong>Undo Examples</strong> and select
-the view named <strong>Box View</strong>. The box view will appear.
-</p>
-<p>
-Likewise, from the <strong>Window</strong> menu select <strong>Show View</strong> &gt; <strong>Other...</strong>.  
-In the <strong>Show View</strong> dialog, expand <strong>Undo Examples</strong> and select
-the view named <strong>Undo History View</strong>. A view containing the undo history will appear.
-This view can be used alongside the Box View to watch the undo history as boxes are added or moved.  It
-can also be used independently of the Box View to follow the undo history for any view or editor that
-uses the workbench operations history to track undoable operations.
-</p>
-<h3>Details</h3>
-<h4>Box View</h4>
-<p>Click in the box view and drag the mouse to create a box that follows the mouse.  Clicking inside an
-existing box and dragging the mouse will move the box to a new location.  Note the operations that appear
-in the <strong>Undo</strong> and <strong>Redo</strong> menus as boxes are added and moved.  The box view
-can be cleared by selecting <strong>Delete all boxes</strong> from the context menu or the view's local
-menu and toolbar.  This operation can also be undone.
-</p>
-<h4>Undo History View</h4>
-<p>The Undo History View shows the operations available for undo in all undo contexts.  To view the history
-in a particular undo context, select <strong>Filter on...</strong> from the view's context menu.
-This will filter the undo history on a particular undo context.  The view can be used to view the undo history
-for the Box View, for SDK text editors, and for undoable operations that affect the workspace, such as
-refactoring operations.  Undo and redo can be performed from the Undo History View's menus.  <b>Undo selected</b>
-will attempt to undo the selected operation in the undo history, regardless of its position in the operation history.
-Depending on the operation in question, this may or may not be allowed.  For example, the Box View allows all add and
-move operations to be undone or redone even if they aren't the most recently performed operation.  Text editors
-will prompt if an attempt is made to undo a typing operation that is not the most recent.
-</p>
-<h4>Example Preferences</h4>
-<p>Preferences are provided that affect the operation of both views.  
-From Eclipse's <strong>Window</strong> menu select <strong>Preferences</strong> &gt; <strong>Undo Preferences</strong>.  
-<ul>
-<li><strong>Undo history limit</strong> controls how many undoable operations are kept in the history for the Box View.</li>
-<li><strong>Show debug labels in undo history view</strong> controls whether the simple label shown in the undo menu is
-used for displaying operations, or a debug label that includes information such as the assigned undo context(s).</li>
-<li><strong>Confirm all undo operations</strong> controls whether prompting occurs before undoing or redoing an operation.
-This preference is used by the operation approver installed by the example.</li>
-</ul>
-</p>
-</body>
-</html>
diff --git a/examples/org.eclipse.ui.examples.undo/icons/sample.gif b/examples/org.eclipse.ui.examples.undo/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.undo/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.undo/plugin.properties b/examples/org.eclipse.ui.examples.undo/plugin.properties
deleted file mode 100644
index 651f78e..0000000
--- a/examples/org.eclipse.ui.examples.undo/plugin.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Undo Example
-Plugin.providerName = Eclipse.org
-Views.historyView = Undo History View
-Views.boxView = Box View
-Views.Category = Undo Examples
-Preferences.Undo = Undo Preferences
diff --git a/examples/org.eclipse.ui.examples.undo/plugin.xml b/examples/org.eclipse.ui.examples.undo/plugin.xml
deleted file mode 100644
index 37f1aa5..0000000
--- a/examples/org.eclipse.ui.examples.undo/plugin.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="%Preferences.Undo"
-            class="org.eclipse.ui.examples.undo.preferences.UndoPreferencePage"
-            id="org.eclipse.ui.examples.undo.preferences.UndoPreferencePage">
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.ui.examples.undo.preferences.PreferenceInitializer">
-      </initializer>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.Category"
-            id="org.eclipse.ui.examples.undo">
-      </category>
-      <view
-            name="%Views.boxView"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.examples.undo"
-            class="org.eclipse.ui.examples.undo.views.BoxView"
-            id="org.eclipse.ui.examples.undo.views.BoxView">
-      </view>
-   </extension>
-   
-         <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.Category"
-            id="org.eclipse.ui.examples.undo"/>
-      <view
-            class="org.eclipse.ui.examples.undo.views.UndoHistoryView"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.examples.undo"
-            name="%Views.historyView"
-            id="org.eclipse.ui.examples.undo.views.UndoHistoryView"/>
-   </extension>
-   
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.classpath b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.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/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project
deleted file mode 100644
index 7626b41..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.views.properties.tabbed.article</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/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 682f531..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:18:08 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index cbc1d39..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:18:08 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e5fd2a4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Tue Jan 10 16:54:24 EST 2006
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/META-INF/MANIFEST.MF
deleted file mode 100644
index 3de362e..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,12 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.examples.views.properties.tabbed.article; singleton:=true
-Bundle-Version: 3.2.1.qualifier
-Bundle-Activator: org.eclipse.ui.examples.views.properties.tabbed.article.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.ui.views.properties.tabbed
-Eclipse-LazyStart: true
-Bundle-Vendor: %Plugin.providerName
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/about.html b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/build.properties b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/build.properties
deleted file mode 100644
index 2288d96..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/build.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = plugin.xml,\
-               META-INF/,\
-               .,\
-               icons/,\
-               plugin.properties,\
-               about.html
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/icons/sample.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.properties b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.properties
deleted file mode 100644
index 53caeb5..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Tabbed Properties View Article Example
-Plugin.providerName = Eclipse.org
-
-Views.category.name = Tabbed Properties View
-Views.example.name = Tabbed Properties Example View
-
-propertyTabs.Advanced.label = Advanced
-propertyTabs.Button.label = Button
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.xml b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.xml
deleted file mode 100644
index 4e77ea3..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/plugin.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.category.name"
-            id="org.eclipse.ui.views.properties.tabbed">
-      </category>
-      <view
-            name="%Views.example.name"
-            category="org.eclipse.ui.views.properties.tabbed"
-            icon="icons/sample.gif"
-            class="org.eclipse.ui.examples.views.properties.tabbed.article.views.SampleView"
-            id="org.eclipse.ui.examples.views.properties.tabbed.article.views.SampleView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor contributorId="org.eclipse.ui.examples.views.properties.tabbed.article.views.SampleView">
-         <propertyCategory category="sample"/>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.eclipse.ui.examples.views.properties.tabbed.article.views.SampleView">
-         <propertyTab
-               category="sample"
-               id="ButtonTab"
-               label="%propertyTabs.Button.label"/>
-         <propertyTab
-               afterTab="ButtonTab"
-               category="sample"
-               id="AdvancedTab"
-               label="%propertyTabs.Advanced.label"/>
-      </propertyTabs>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections contributorId="org.eclipse.ui.examples.views.properties.tabbed.article.views.SampleView">
-         <propertySection
-               class="org.eclipse.ui.examples.views.properties.tabbed.article.views.LabelSection"
-               id="LabelSection"
-               tab="ButtonTab">
-            <input type="org.eclipse.ui.examples.views.properties.tabbed.article.views.ButtonElement"/>
-         </propertySection>
-         <propertySection
-               afterSection="LabelSection"
-               class="org.eclipse.ui.examples.views.properties.tabbed.article.views.SizeSection"
-               id="SizeSection"
-               tab="ButtonTab">
-            <input type="org.eclipse.ui.examples.views.properties.tabbed.article.views.ButtonElement"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
-               id="AdvancedSection"
-               tab="AdvancedTab">
-            <input type="org.eclipse.ui.examples.views.properties.tabbed.article.views.ButtonElement"/>
-         </propertySection>
-         <propertySection
-               afterSection="SizeSection"
-               class="org.eclipse.ui.examples.views.properties.tabbed.article.views.FontSection"
-               id="FontSection"
-               tab="ButtonTab">
-            <input type="org.eclipse.ui.examples.views.properties.tabbed.article.views.ButtonElement"/>
-         </propertySection>
-      </propertySections>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/Activator.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/Activator.java
deleted file mode 100644
index b30f7ae..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/Activator.java
+++ /dev/null
@@ -1,73 +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.examples.views.properties.tabbed.article;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * Activator for this plug-in.
- * 
- * @author Anthony Hunter
- */
-public class Activator
-    extends AbstractUIPlugin {
-
-    // The shared instance.
-    private static Activator plugin;
-
-    /**
-     * The constructor.
-     */
-    public Activator() {
-        plugin = this;
-    }
-
-    /**
-     * This method is called upon plug-in activation
-     */
-    public void start(BundleContext context)
-        throws Exception {
-        super.start(context);
-    }
-
-    /**
-     * This method is called when the plug-in is stopped
-     */
-    public void stop(BundleContext context)
-        throws Exception {
-        super.stop(context);
-        plugin = null;
-    }
-
-    /**
-     * Returns the shared instance.
-     * 
-     * @return the shared instance.
-     */
-    public static Activator getDefault() {
-        return plugin;
-    }
-
-    /**
-     * Returns an image descriptor for the image file at the given plug-in
-     * relative path.
-     * 
-     * @param path
-     *            the path
-     * @return the image descriptor
-     */
-    public static ImageDescriptor getImageDescriptor(String path) {
-        return AbstractUIPlugin.imageDescriptorFromPlugin(
-            "org.eclipse.ui.examples.views.properties.tabbed.article", path);//$NON-NLS-1$
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElement.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElement.java
deleted file mode 100644
index cb9159e..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElement.java
+++ /dev/null
@@ -1,97 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.core.runtime.IAdaptable;

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.ui.model.IWorkbenchAdapter;

-import org.eclipse.ui.views.properties.IPropertySource;

-

-/**

- * This class represents a Button Element in the Sample View

- * 

- * TIP: By implementing the <code>IWorkbenchAdapter</code> interface, we can

- * easily add objects of this type to viewers and parts in the workbench. When a

- * viewer contains <code>IWorkbenchAdapter</code>, the generic

- * <code>WorkbenchContentProvider</code> and

- * <code>WorkbenchLabelProvider</code> can be used to provide navigation and

- * display for that viewer.

- */

-public class ButtonElement

-    implements IWorkbenchAdapter, IAdaptable {

-

-    private String headingName;

-

-    private Button ctl;

-

-    /**

-     * Creates a new ButtonElement.

-     * 

-     * @param initBtn

-     *            the control of this element

-     * @param heading

-     *            text corresponding to the heading

-     */

-    public ButtonElement(Button initBtn, String heading) {

-        this.headingName = heading;

-        this.ctl = initBtn;

-    }

-

-    /*

-     * (non-Javadoc) Method declared on IAdaptable

-     */

-    public Object getAdapter(Class adapter) {

-        if (adapter == IWorkbenchAdapter.class)

-            return this;

-        if (adapter == IPropertySource.class)

-            return new ButtonElementProperties(this);

-        return null;

-    }

-

-    /*

-     * (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 headingName;

-    }

-

-    /*

-     * (non-Javadoc) Method declared on IWorkbenchAdapter

-     */

-    public Object getParent(Object o) {

-        return null;

-    }

-

-    /**

-     * Retrieve the control for this element.

-     * 

-     * @return the control for this element.

-     */

-    public Button getControl() {

-        return ctl;

-    }

-

-    /**

-     * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(Object)

-     */

-    public Object[] getChildren(Object o) {

-        return null;

-    }

-

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElementProperties.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElementProperties.java
deleted file mode 100644
index 7114d84..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/ButtonElementProperties.java
+++ /dev/null
@@ -1,191 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.swt.graphics.Font;

-import org.eclipse.swt.graphics.FontData;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.ui.views.properties.IPropertyDescriptor;

-import org.eclipse.ui.views.properties.IPropertySource;

-import org.eclipse.ui.views.properties.PropertyDescriptor;

-import org.eclipse.ui.views.properties.TextPropertyDescriptor;

-

-/**

- * The property source provider for a button element.

- * 

- * @author Anthony Hunter

- */

-public class ButtonElementProperties

-    implements IPropertySource {

-

-    final protected ButtonElement element;

-

-    protected static final String PROPERTY_FONT = "font"; //$NON-NLS-1$

-

-    protected static final String PROPERTY_SIZE = "size"; //$NON-NLS-1$

-

-    protected static final String PROPERTY_TEXT = "text"; //$NON-NLS-1$

-

-    private final Object PropertiesTable[][] = {

-        {PROPERTY_FONT, new FontPropertyDescriptor(PROPERTY_FONT, "Font")},//$NON-NLS-1$

-        {PROPERTY_SIZE, new PropertyDescriptor(PROPERTY_SIZE, "Size")},//$NON-NLS-1$

-        {PROPERTY_TEXT, new TextPropertyDescriptor(PROPERTY_TEXT, "Text")}, //$NON-NLS-1$

-    };

-

-    String strFont = "";//$NON-NLS-1$

-

-    Point ptSize = null;

-

-    String strText = "";//$NON-NLS-1$

-

-    protected void firePropertyChanged(String propName, Object value) {

-        Button ctl = element.getControl();

-

-        if (ctl == null) {

-            // the GUIView is probably hidden in this case

-            return;

-        }

-

-        if (propName.equals(PROPERTY_FONT)) {

-            /**

-             * Font oldfont = ctl.getFont(); if (oldfont != null) {

-             * oldfont.dispose(); }

-             */

-            ctl

-                .setFont(new Font(ctl.getDisplay(),

-                    new FontData((String) value)));

-            return;

-        }

-        if (propName.equals(PROPERTY_TEXT)) {

-            ctl.setText((String) value);

-            return;

-        }

-

-    }

-

-    protected void initProperties() {

-        Button ctl = element.getControl();

-

-        if (ctl == null) {

-            // the GUIView is probably hidden in this case

-            return;

-        }

-

-        strText = ctl.getText();

-        /**

-         * Font font = ctl.getFont(); if (font != null) { strFont =

-         * font.getFontData().toString(); }

-         */

-        ptSize = ctl.getSize();

-    }

-

-    /**

-     * Creates a new ButtonElementProperties.

-     * 

-     * @param element

-     *            the element whose properties this instance represents

-     */

-    public ButtonElementProperties(ButtonElement element) {

-        super();

-        this.element = element;

-        initProperties();

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertySource#getEditableValue()

-     */

-    public Object getEditableValue() {

-        return this;

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()

-     */

-    public IPropertyDescriptor[] getPropertyDescriptors() {

-        // Create the property vector.

-        IPropertyDescriptor[] propertyDescriptors = new IPropertyDescriptor[PropertiesTable.length];

-

-        for (int i = 0; i < PropertiesTable.length; i++) {

-            // Add each property supported.

-

-            PropertyDescriptor descriptor;

-

-            descriptor = (PropertyDescriptor) PropertiesTable[i][1];

-            propertyDescriptors[i] = descriptor;

-            descriptor.setCategory("Basic");//$NON-NLS-1$

-        }

-

-        // Return it.

-        return propertyDescriptors;

-

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(Object)

-     */

-    public Object getPropertyValue(Object name) {

-        if (name.equals(PROPERTY_FONT))

-            return strFont;

-        if (name.equals(PROPERTY_SIZE))

-            return new SizePropertySource(element, ptSize);

-        if (name.equals(PROPERTY_TEXT))

-            return strText;

-

-        return null;

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(Object)

-     */

-    public boolean isPropertySet(Object id) {

-        return false;

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertySource#resetPropertyValue(Object)

-     */

-    public void resetPropertyValue(Object id) {

-        //

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertySource#setPropertyValue(Object,

-     *      Object)

-     */

-    public void setPropertyValue(Object name, Object value) {

-        firePropertyChanged((String) name, value);

-

-        if (name.equals(PROPERTY_FONT)) {

-            strFont = (String) value;

-            return;

-        }

-        if (name.equals(PROPERTY_TEXT)) {

-            strText = (String) value;

-            return;

-        }

-        if (name.equals(PROPERTY_SIZE)) {

-            SizePropertySource sizeProp = (SizePropertySource) value;

-            ptSize = sizeProp.getValue();

-        }

-

-    }

-

-    /**

-     * Returns the mocha element.

-     * 

-     * @return MochaElement

-     */

-    public ButtonElement getButtonElement() {

-        return element;

-    }

-

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/CheckBoxPropertyDescriptor.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/CheckBoxPropertyDescriptor.java
deleted file mode 100644
index 31bb51f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/CheckBoxPropertyDescriptor.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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.jface.viewers.CellEditor;

-import org.eclipse.jface.viewers.CheckboxCellEditor;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.ui.views.properties.PropertyDescriptor;

-

-/**

- * A checkbox property descriptor.

- * 

- * @author Anthony Hunter

- */

-public class CheckBoxPropertyDescriptor

-    extends PropertyDescriptor {

-

-    /**

-     * Constructs a new property descriptor with the given id and display name.

-     * 

-     * @param id

-     *            the id for the descriptor.

-     * @param displayName

-     *            the display name for the descriptor.

-     */

-    public CheckBoxPropertyDescriptor(Object id, String displayName) {

-        super(id, displayName);

-    }

-

-    public CellEditor createPropertyEditor(Composite parent) {

-        CellEditor editor = new CheckboxCellEditor(parent);

-        if (getValidator() != null)

-            editor.setValidator(getValidator());

-        return editor;

-    }

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontDialogCellEditor.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontDialogCellEditor.java
deleted file mode 100644
index e29d6a2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontDialogCellEditor.java
+++ /dev/null
@@ -1,60 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.jface.viewers.DialogCellEditor;

-import org.eclipse.swt.graphics.FontData;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.swt.widgets.FontDialog;

-import org.eclipse.ui.PlatformUI;

-

-/**

- * a new Font dialog cell editor.

- * 

- * @author Anthony Hunter

- */

-public class FontDialogCellEditor

-    extends DialogCellEditor {

-

-    /**

-     * Creates a new Font dialog cell editor parented under the given control.

-     * The cell editor value is <code>null</code> initially, and has no

-     * validator.

-     * 

-     * @param parent

-     *            the parent control

-     */

-    protected FontDialogCellEditor(Composite parent) {

-        super(parent);

-    }

-

-    /**

-     * @see org.eclipse.jface.viewers.DialogCellEditor#openDialogBox(Control)

-     */

-    protected Object openDialogBox(Control cellEditorWindow) {

-        FontDialog ftDialog = new FontDialog(PlatformUI.getWorkbench()

-            .getActiveWorkbenchWindow().getShell());

-

-        String value = (String) getValue();

-

-        if ((value != null) && (value.length() > 0)) {

-            ftDialog.setFontList(new FontData[] {new FontData(value)});

-        }

-        FontData fData = ftDialog.open();

-

-        if (fData != null) {

-            value = fData.toString();

-        }

-        return value;

-    }

-

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontPropertyDescriptor.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontPropertyDescriptor.java
deleted file mode 100644
index e67d03d..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontPropertyDescriptor.java
+++ /dev/null
@@ -1,47 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.jface.viewers.CellEditor;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.ui.views.properties.PropertyDescriptor;

-

-/**

- * A font property descriptor.

- * 

- * @author Anthony Hunter

- */

-public class FontPropertyDescriptor

-    extends PropertyDescriptor {

-

-    /**

-     * Creates an property descriptor with the given id and display name.

-     * 

-     * @param id

-     *            the id of the property

-     * @param displayName

-     *            the name to display for the property

-     */

-    public FontPropertyDescriptor(Object id, String displayName) {

-        super(id, displayName);

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertyDescriptor#createPropertyEditor(Composite)

-     */

-    public CellEditor createPropertyEditor(Composite parent) {

-        CellEditor editor = new FontDialogCellEditor(parent);

-        if (getValidator() != null)

-            editor.setValidator(getValidator());

-        return editor;

-    }

-

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontSection.java
deleted file mode 100644
index 37d12ef..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/FontSection.java
+++ /dev/null
@@ -1,137 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.jface.resource.StringConverter;

-import org.eclipse.jface.util.Assert;

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.CLabel;

-import org.eclipse.swt.events.SelectionAdapter;

-import org.eclipse.swt.events.SelectionEvent;

-import org.eclipse.swt.graphics.FontData;

-import org.eclipse.swt.graphics.GC;

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.layout.FormAttachment;

-import org.eclipse.swt.layout.FormData;

-import org.eclipse.swt.widgets.Button;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.FontDialog;

-import org.eclipse.swt.widgets.Shell;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.IWorkbenchPart;

-import org.eclipse.ui.PlatformUI;

-import org.eclipse.ui.views.properties.IPropertySource;

-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;

-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;

-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;

-

-/**

- * The font section on the button tab.

- * 

- * @author Anthony Hunter

- */

-public class FontSection

-    extends AbstractPropertySection {

-

-    Text fontText;

-

-    private ButtonElement buttonElement;

-

-    public void setInput(IWorkbenchPart part, ISelection selection) {

-        super.setInput(part, selection);

-        Assert.isTrue(selection instanceof IStructuredSelection);

-        Object input = ((IStructuredSelection) selection).getFirstElement();

-        Assert.isTrue(input instanceof ButtonElement);

-        this.buttonElement = (ButtonElement) input;

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,

-     *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)

-     */

-    public void createControls(Composite parent,

-            TabbedPropertySheetPage tabbedPropertySheetPage) {

-        super.createControls(parent, tabbedPropertySheetPage);

-        Composite composite = getWidgetFactory()

-            .createFlatFormComposite(parent);

-        FormData data;

-

-        Shell shell = new Shell();

-        GC gc = new GC(shell);

-        gc.setFont(shell.getFont());

-        Point point = gc.textExtent("");//$NON-NLS-1$

-        int buttonHeight = point.y + 5;

-        gc.dispose();

-        shell.dispose();

-

-        CLabel fontLabel = getWidgetFactory().createCLabel(composite, "Font:"); //$NON-NLS-1$

-        fontText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$

-        fontText.setEditable(false);

-        Button fontButton = getWidgetFactory().createButton(composite,

-            "Change...", SWT.PUSH); //$NON-NLS-1$

-        fontButton.addSelectionListener(new SelectionAdapter() {

-

-            public void widgetSelected(SelectionEvent event) {

-                FontDialog ftDialog = new FontDialog(PlatformUI.getWorkbench()

-                    .getActiveWorkbenchWindow().getShell());

-

-                FontData fontdata = buttonElement.getControl().getFont()

-                    .getFontData()[0];

-                String value = fontdata.toString();

-

-                if ((value != null) && (value.length() > 0)) {

-                    ftDialog.setFontList(new FontData[] {new FontData(value)});

-                }

-                FontData fData = ftDialog.open();

-

-                if (fData != null) {

-                    value = fData.toString();

-

-                    ButtonElementProperties properties = (ButtonElementProperties) buttonElement

-                        .getAdapter(IPropertySource.class);

-                    properties.setPropertyValue(

-                        ButtonElementProperties.PROPERTY_FONT, value);

-                    fontText.setText(StringConverter.asString(fData));

-                }

-            }

-        });

-

-        data = new FormData();

-        data.left = new FormAttachment(0, 0);

-        data.right = new FormAttachment(fontText,

-            -ITabbedPropertyConstants.HSPACE);

-        data.top = new FormAttachment(0, 0);

-        fontLabel.setLayoutData(data);

-

-        data = new FormData();

-        data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);

-        data.right = new FormAttachment(fontButton,

-            -ITabbedPropertyConstants.HSPACE);

-        data.top = new FormAttachment(0, 0);

-        fontText.setLayoutData(data);

-

-        data = new FormData();

-        data.right = new FormAttachment(100, 0);

-        data.top = new FormAttachment(0, 0);

-        data.height = buttonHeight;

-        fontButton.setLayoutData(data);

-    }

-

-    /*

-     * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()

-     */

-    public void refresh() {

-        FontData fontdata = buttonElement.getControl().getFont().getFontData()[0];

-        fontText.setText(StringConverter.asString(fontdata));

-    }

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/LabelSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/LabelSection.java
deleted file mode 100644
index 2fec15f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/LabelSection.java
+++ /dev/null
@@ -1,92 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.jface.util.Assert;

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.swt.SWT;

-import org.eclipse.swt.custom.CLabel;

-import org.eclipse.swt.events.ModifyEvent;

-import org.eclipse.swt.events.ModifyListener;

-import org.eclipse.swt.layout.FormAttachment;

-import org.eclipse.swt.layout.FormData;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.IWorkbenchPart;

-import org.eclipse.ui.views.properties.IPropertySource;

-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;

-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;

-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;

-

-/**

- * The Label section on the Button tab.

- * 

- * @author Anthony Hunter

- */

-public class LabelSection

-    extends AbstractPropertySection {

-

-    private Text labelText;

-

-    private ButtonElement buttonElement;

-

-    private ModifyListener listener = new ModifyListener() {

-

-        public void modifyText(ModifyEvent arg0) {

-            ButtonElementProperties properties = (ButtonElementProperties) buttonElement

-                .getAdapter(IPropertySource.class);

-            properties.setPropertyValue(ButtonElementProperties.PROPERTY_TEXT,

-                labelText.getText());

-        }

-    };

-

-    public void setInput(IWorkbenchPart part, ISelection selection) {

-        super.setInput(part, selection);

-        Assert.isTrue(selection instanceof IStructuredSelection);

-        Object input = ((IStructuredSelection) selection).getFirstElement();

-        Assert.isTrue(input instanceof ButtonElement);

-        this.buttonElement = (ButtonElement) input;

-    }

-

-    public void createControls(Composite parent,

-            TabbedPropertySheetPage aTabbedPropertySheetPage) {

-        super.createControls(parent, aTabbedPropertySheetPage);

-        Composite composite = getWidgetFactory()

-            .createFlatFormComposite(parent);

-        FormData data;

-

-        labelText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$

-        data = new FormData();

-        data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);

-        data.right = new FormAttachment(100, 0);

-        data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);

-        labelText.setLayoutData(data);

-        labelText.addModifyListener(listener);

-

-        CLabel labelLabel = getWidgetFactory()

-            .createCLabel(composite, "Label:"); //$NON-NLS-1$

-        data = new FormData();

-        data.left = new FormAttachment(0, 0);

-        data.right = new FormAttachment(labelText,

-            -ITabbedPropertyConstants.HSPACE);

-        data.top = new FormAttachment(labelText, 0, SWT.CENTER);

-        labelLabel.setLayoutData(data);

-    }

-

-    public void refresh() {

-        labelText.removeModifyListener(listener);

-        ButtonElementProperties properties = (ButtonElementProperties) buttonElement

-            .getAdapter(IPropertySource.class);

-        labelText.setText(properties.strText);

-        labelText.addModifyListener(listener);

-    }

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SampleView.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SampleView.java
deleted file mode 100644
index 12afc00..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SampleView.java
+++ /dev/null
@@ -1,105 +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.examples.views.properties.tabbed.article.views;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * Sample view for the example.
- * 
- * @author Anthony Hunter
- *
- */
-public class SampleView
-    extends ViewPart
-    implements ITabbedPropertySheetPageContributor {
-
-    private ListViewer viewer;
-
-    private Group grp1;
-
-    /**
-     * The constructor.
-     */
-    public SampleView() {
-        //
-    }
-
-    /**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-    public void createPartControl(Composite parent) {
-        // create all the GUI controls
-        // create two groups
-        viewer = new ListViewer(parent, SWT.SINGLE);
-
-        grp1 = new Group(parent, SWT.NONE);
-        grp1.setText("Preview");//$NON-NLS-1$
-        RowLayout rowLayout = new RowLayout();
-        grp1.setLayout(rowLayout);
-
-        Button btn = new Button(grp1, SWT.PUSH);
-        btn.setText("Hello");//$NON-NLS-1$
-
-        // fill in the element
-        ArrayList ctlList = new ArrayList();
-        ButtonElement btnEl = new ButtonElement(btn, "Button");//$NON-NLS-1$
-        ctlList.add(btnEl);
-
-        viewer.setContentProvider(new ArrayContentProvider());
-        viewer.setLabelProvider(new WorkbenchLabelProvider());
-        viewer.setInput(ctlList);
-        getSite().setSelectionProvider(viewer);
-
-    }
-
-    /**
-     * Passing the focus request to the viewer's control.
-     */
-    public void setFocus() {
-        viewer.getControl().setFocus();
-    }
-
-    /**
-     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(Class)
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IPropertySheetPage.class)
-            return new TabbedPropertySheetPage(this);
-        return super.getAdapter(adapter);
-    }
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchPart#dispose()
-     */
-    public void dispose() {
-        super.dispose();
-    }
-
-    public String getContributorId() {
-        return getSite().getId();
-    }
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizePropertySource.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizePropertySource.java
deleted file mode 100644
index b206193..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizePropertySource.java
+++ /dev/null
@@ -1,141 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.swt.graphics.Point;

-import org.eclipse.swt.widgets.Control;

-import org.eclipse.ui.views.properties.IPropertyDescriptor;

-import org.eclipse.ui.views.properties.IPropertySource;

-import org.eclipse.ui.views.properties.TextPropertyDescriptor;

-

-/**

- * Property source for the size properties.

- * 

- * @author Anthony Hunter

- */

-public class SizePropertySource

-    implements IPropertySource {

-

-    protected ButtonElement element;

-

-    /**

-     * The width.

-     */

-    public static String ID_WIDTH = "Width"; //$NON-NLS-1$

-

-    /**

-     * The height.

-     */

-    public static String ID_HEIGHT = "Height"; //$NON-NLS-1$

-

-    protected static IPropertyDescriptor[] descriptors;

-

-    static {

-        descriptors = new IPropertyDescriptor[] {

-            new TextPropertyDescriptor(ID_WIDTH, "width"),//$NON-NLS-1$

-            new TextPropertyDescriptor(ID_HEIGHT, "height")//$NON-NLS-1$

-        };

-    }

-

-    protected Point point = null;

-

-    /**

-     * The constructor for SizePropertySource.

-     * 

-     * @param m_element

-     *            the button element.

-     * @param point

-     *            the size of the button element.

-     */

-    public SizePropertySource(ButtonElement m_element, Point point) {

-        this.point = new Point(point.x, point.y);

-        element = m_element;

-    }

-

-    /**

-     * Fire a property change event.

-     * 

-     * @param propName

-     *            the name of the property change.

-     */

-    protected void firePropertyChanged() {

-        Control ctl = element.getControl();

-

-        if (ctl == null) {

-            // the GUIView is probably hidden in this case

-            return;

-        }

-        ctl.setSize(point);

-    }

-

-    public Object getEditableValue() {

-        return this;

-    }

-

-    public IPropertyDescriptor[] getPropertyDescriptors() {

-        return descriptors;

-    }

-

-    public Object getPropertyValue(Object propName) {

-        if (ID_WIDTH.equals(propName)) {

-            return new String(new Integer(point.x).toString());

-        }

-        if (ID_HEIGHT.equals(propName)) {

-            return new String(new Integer(point.y).toString());

-        }

-        return null;

-    }

-

-    /**

-     * Retrieve the value of the size property.

-     * 

-     * @return the value of the size property.

-     */

-    public Point getValue() {

-        return new Point(point.x, point.y);

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.IPropertySource#isPropertySet(Object)

-     */

-    public boolean isPropertySet(Object propName) {

-        if (ID_WIDTH.equals(propName) || ID_HEIGHT.equals(propName))

-            return true;

-        return false;

-    }

-

-    public void resetPropertyValue(Object propName) {

-        //

-    }

-

-    public void setPropertyValue(Object propName, Object value) {

-        int newInt;

-        try {

-            newInt = Integer.parseInt((String) value);

-        } catch (NumberFormatException e) {

-            newInt = -1;

-        }

-

-        if (newInt > 0) {

-            if (ID_WIDTH.equals(propName)) {

-                point.x = newInt;

-            } else if (ID_HEIGHT.equals(propName)) {

-                point.y = newInt;

-            }

-        }

-        firePropertyChanged();

-    }

-

-    public String toString() {

-        return point.toString();

-    }

-

-}

diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizeSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizeSection.java
deleted file mode 100644
index c938e7d..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.article/src/org/eclipse/ui/examples/views/properties/tabbed/article/views/SizeSection.java
+++ /dev/null
@@ -1,128 +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.examples.views.properties.tabbed.article.views;

-

-import org.eclipse.jface.util.Assert;

-import org.eclipse.jface.viewers.ISelection;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.swt.custom.CLabel;

-import org.eclipse.swt.events.ModifyEvent;

-import org.eclipse.swt.events.ModifyListener;

-import org.eclipse.swt.layout.FormAttachment;

-import org.eclipse.swt.layout.FormData;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.swt.widgets.Text;

-import org.eclipse.ui.IWorkbenchPart;

-import org.eclipse.ui.views.properties.IPropertySource;

-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;

-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;

-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;

-

-/**

- * The size section on the button tab.

- * 

- * @author Anthony Hunter

- */

-public class SizeSection

-    extends AbstractPropertySection {

-

-    private Text widthText;

-

-    private Text heightText;

-

-    private ButtonElement buttonElement;

-

-    private ModifyListener listener = new ModifyListener() {

-

-        public void modifyText(ModifyEvent arg0) {

-            ButtonElementProperties properties = (ButtonElementProperties) buttonElement

-                .getAdapter(IPropertySource.class);

-            SizePropertySource sizePropertySource = (SizePropertySource) properties

-                .getPropertyValue(ButtonElementProperties.PROPERTY_SIZE);

-            sizePropertySource.setPropertyValue(SizePropertySource.ID_HEIGHT,

-                heightText.getText());

-            sizePropertySource.setPropertyValue(SizePropertySource.ID_WIDTH,

-                widthText.getText());

-        }

-    };

-

-    public void setInput(IWorkbenchPart part, ISelection selection) {

-        super.setInput(part, selection);

-        Assert.isTrue(selection instanceof IStructuredSelection);

-        Object input = ((IStructuredSelection) selection).getFirstElement();

-        Assert.isTrue(input instanceof ButtonElement);

-        this.buttonElement = (ButtonElement) input;

-    }

-

-    /**

-     * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,

-     *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)

-     */

-    public void createControls(Composite parent,

-            TabbedPropertySheetPage tabbedPropertySheetPage) {

-        super.createControls(parent, tabbedPropertySheetPage);

-        Composite composite = getWidgetFactory()

-            .createFlatFormComposite(parent);

-        FormData data;

-

-        CLabel widthLabel = getWidgetFactory()

-            .createCLabel(composite, "Width:"); //$NON-NLS-1$

-        widthText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$

-        CLabel heightLabel = getWidgetFactory().createCLabel(composite,

-            "Height:"); //$NON-NLS-1$

-        heightText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$

-

-        data = new FormData();

-        data.left = new FormAttachment(0, 0);

-        data.right = new FormAttachment(widthText,

-            -ITabbedPropertyConstants.HSPACE);

-        data.top = new FormAttachment(0, 0);

-        widthLabel.setLayoutData(data);

-

-        data = new FormData();

-        data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);

-        data.right = new FormAttachment(heightLabel,

-            -ITabbedPropertyConstants.HSPACE);

-        data.top = new FormAttachment(0, 0);

-        widthText.setLayoutData(data);

-

-        data = new FormData();

-        data.left = new FormAttachment(50, 0);

-        // data.right = new FormAttachment(heightText,

-        // -ITabbedPropertyConstants.HSPACE);

-        data.top = new FormAttachment(0, 0);

-        heightLabel.setLayoutData(data);

-

-        data = new FormData();

-        data.left = new FormAttachment(heightLabel,

-            ITabbedPropertyConstants.HSPACE);

-        data.right = new FormAttachment(100, 0);

-        data.top = new FormAttachment(0, 0);

-        heightText.setLayoutData(data);

-

-        heightText.addModifyListener(listener);

-        widthText.addModifyListener(listener);

-    }

-

-    /*

-     * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()

-     */

-    public void refresh() {

-        heightText.removeModifyListener(listener);

-        widthText.removeModifyListener(listener);

-        ButtonElementProperties properties = (ButtonElementProperties) buttonElement

-            .getAdapter(IPropertySource.class);

-        widthText.setText(Integer.toString(properties.ptSize.x));

-        heightText.setText(Integer.toString(properties.ptSize.y));

-        heightText.addModifyListener(listener);

-        widthText.addModifyListener(listener);

-    }

-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.classpath b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.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/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.cvsignore b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.project b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.project
deleted file mode 100644
index 2a990e3..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.views.properties.tabbed.hockeyleague</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/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d192053..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,78 +0,0 @@
-#Mon Feb 06 11:18:18 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 4ba0331..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-#Tue Jan 31 19:05:26 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.2\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index b5e946b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Tue Jan 31 19:06:32 EST 2006
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/META-INF/MANIFEST.MF
deleted file mode 100644
index d130c83..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,23 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.ui.examples.views.properties.tabbed.hockeyleague; singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePlugin$Implementation
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.ui.examples.views.properties.tabbed.hockeyleague,
- org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl,
- org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.provider,
- org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.util
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources;visibility:=reexport,
- org.eclipse.emf.ecore;visibility:=reexport,
- org.eclipse.emf.edit;visibility:=reexport,
- org.eclipse.emf.ecore.xmi;visibility:=reexport,
- org.eclipse.ui.ide;visibility:=reexport,
- org.eclipse.ui,
- org.eclipse.emf.edit.ui,
- org.eclipse.ui.views.properties.tabbed
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/about.html b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/build.properties b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/build.properties
deleted file mode 100644
index c762af9..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/build.properties
+++ /dev/null
@@ -1,22 +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
-###############################################################################
-
-bin.includes = .,\
-               model/,\
-               META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               about.html,\
-               icons/
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateDefence_playerStats_PlayerStats.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateDefence_playerStats_PlayerStats.gif
deleted file mode 100644
index e2dee68..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateDefence_playerStats_PlayerStats.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateForward_playerStats_PlayerStats.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateForward_playerStats_PlayerStats.gif
deleted file mode 100644
index e2dee68..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateForward_playerStats_PlayerStats.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateGoalie_goalieStats_GoalieStats.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateGoalie_goalieStats_GoalieStats.gif
deleted file mode 100644
index e2dee68..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateGoalie_goalieStats_GoalieStats.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateLeague_teams_Team.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateLeague_teams_Team.gif
deleted file mode 100644
index bff88cb..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateLeague_teams_Team.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_arena_Arena.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_arena_Arena.gif
deleted file mode 100644
index 6accb2c..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_arena_Arena.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_defencemen_Defence.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_defencemen_Defence.gif
deleted file mode 100644
index 464f798..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_defencemen_Defence.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_forwards_Forward.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_forwards_Forward.gif
deleted file mode 100644
index e0592df..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_forwards_Forward.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_goalies_Goalie.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_goalies_Goalie.gif
deleted file mode 100644
index 4cfbb15..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/ctool16/CreateTeam_goalies_Goalie.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Arena.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Arena.gif
deleted file mode 100644
index 6accb2c..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Arena.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Defence.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Defence.gif
deleted file mode 100644
index 464f798..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Defence.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Forward.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Forward.gif
deleted file mode 100644
index e0592df..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Forward.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Goalie.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Goalie.gif
deleted file mode 100644
index 4cfbb15..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Goalie.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/GoalieStats.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/GoalieStats.gif
deleted file mode 100644
index e2dee68..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/GoalieStats.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Height.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Height.gif
deleted file mode 100644
index aa8f0a7..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Height.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueModelFile.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueModelFile.gif
deleted file mode 100644
index 415a3b6..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueModelFile.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueObject.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueObject.gif
deleted file mode 100644
index ed87474..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/HockeyleagueObject.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/League.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/League.gif
deleted file mode 100644
index b93bab8..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/League.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Player.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Player.gif
deleted file mode 100644
index fe89f46..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Player.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/PlayerStats.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/PlayerStats.gif
deleted file mode 100644
index e2dee68..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/PlayerStats.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Team.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Team.gif
deleted file mode 100644
index bff88cb..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Team.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Weight.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Weight.gif
deleted file mode 100644
index 5d660e7..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/obj16/Weight.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/wizban/NewHockeyleague.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/wizban/NewHockeyleague.gif
deleted file mode 100644
index acfcd36..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/full/wizban/NewHockeyleague.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/hockeyleague.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/hockeyleague.gif
deleted file mode 100644
index b93bab8..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/icons/hockeyleague.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.ecore b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.ecore
deleted file mode 100644
index 88973c1..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.ecore
+++ /dev/null
@@ -1,107 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="hockeyleague"
-    nsURI="http:///org/eclipse/ui/views/properties/tabbed/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore"
-    nsPrefix="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague">
-  <eClassifiers xsi:type="ecore:EClass" name="Arena" eSuperTypes="#//HockeyleagueObject">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="capacity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Defence" eSuperTypes="#//Player">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="position" eType="#//DefencePositionKind"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="playerStats" upperBound="-1"
-        eType="#//PlayerStats" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Forward" eSuperTypes="#//Player">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="position" eType="#//ForwardPositionKind"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="playerStats" upperBound="-1"
-        eType="#//PlayerStats" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Goalie" eSuperTypes="#//Player">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="goalieStats" upperBound="-1"
-        eType="#//GoalieStats" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="GoalieStats">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="year" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="team" eType="#//Team"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="gamesPlayedIn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="minutesPlayedIn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="goalsAgainstAverage" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="wins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="losses" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ties" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="emptyNetGoals" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shutouts" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="goalsAgainst" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="saves" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="penaltyMinutes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="goals" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="assists" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="HockeyleagueObject" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="League" eSuperTypes="#//HockeyleagueObject">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="headoffice" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="teams" upperBound="-1"
-        eType="#//Team" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Player" abstract="true" eSuperTypes="#//HockeyleagueObject">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="birthplace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="number" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="heightMesurement" eType="#//HeightKind"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="heightValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="weightMesurement" eType="#//WeightKind"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="weightValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shot" eType="#//ShotKind"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="birthdate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="PlayerStats">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="year" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="team" eType="#//Team"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="gamesPlayedIn" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="goals" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="assists" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="plusMinus" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="penaltyMinutes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="powerPlayGoals" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shortHandedGoals" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="gameWinningGoals" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shots" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="shotPercentage" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Team" eSuperTypes="#//HockeyleagueObject">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="forwards" upperBound="-1"
-        eType="#//Forward" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="defencemen" upperBound="-1"
-        eType="#//Defence" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="goalies" upperBound="-1"
-        eType="#//Goalie" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="arena" eType="#//Arena"
-        containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="DefencePositionKind">
-    <eLiterals name="left_defence"/>
-    <eLiterals name="right_defence" value="1"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="ForwardPositionKind">
-    <eLiterals name="left_wing"/>
-    <eLiterals name="right_wing" value="1"/>
-    <eLiterals name="center" value="2"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="HeightKind">
-    <eLiterals name="inches"/>
-    <eLiterals name="centimeters" value="1"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="ShotKind">
-    <eLiterals name="left"/>
-    <eLiterals name="right" value="1"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="WeightKind">
-    <eLiterals name="pounds"/>
-    <eLiterals name="kilograms" value="1"/>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.genmodel b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.genmodel
deleted file mode 100644
index 3719e49..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/model/hockeyleague.genmodel
+++ /dev/null
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<genmodel:GenModel xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src"
-    modelPluginID="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague" modelName="Hockeyleague"
-    nonNLSMarkers="true" importerID="org.eclipse.emf.importer.ecore">
-  <foreignModel>hockeyleague.ecore</foreignModel>
-  <genPackages prefix="Hockeyleague" basePackage="org.eclipse.ui.examples.views.properties.tabbed"
-      disposableProviderFactory="true" ecorePackage="hockeyleague.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="hockeyleague.ecore#//DefencePositionKind">
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//DefencePositionKind/left_defence"/>
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//DefencePositionKind/right_defence"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="hockeyleague.ecore#//ForwardPositionKind">
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//ForwardPositionKind/left_wing"/>
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//ForwardPositionKind/right_wing"/>
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//ForwardPositionKind/center"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="hockeyleague.ecore#//HeightKind">
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//HeightKind/inches"/>
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//HeightKind/centimeters"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="hockeyleague.ecore#//ShotKind">
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//ShotKind/left"/>
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//ShotKind/right"/>
-    </genEnums>
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="hockeyleague.ecore#//WeightKind">
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//WeightKind/pounds"/>
-      <genEnumLiterals ecoreEnumLiteral="hockeyleague.ecore#//WeightKind/kilograms"/>
-    </genEnums>
-    <genClasses ecoreClass="hockeyleague.ecore#//Arena">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Arena/address"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Arena/capacity"/>
-    </genClasses>
-    <genClasses ecoreClass="hockeyleague.ecore#//Defence">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Defence/position"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//Defence/playerStats"/>
-    </genClasses>
-    <genClasses ecoreClass="hockeyleague.ecore#//Forward">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Forward/position"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//Forward/playerStats"/>
-    </genClasses>
-    <genClasses ecoreClass="hockeyleague.ecore#//Goalie">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//Goalie/goalieStats"/>
-    </genClasses>
-    <genClasses ecoreClass="hockeyleague.ecore#//GoalieStats">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/year"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//GoalieStats/team"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/gamesPlayedIn"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/minutesPlayedIn"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/goalsAgainstAverage"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/wins"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/losses"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/ties"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/emptyNetGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/shutouts"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/goalsAgainst"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/saves"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/penaltyMinutes"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/goals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/assists"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//GoalieStats/points"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="hockeyleague.ecore#//HockeyleagueObject">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//HockeyleagueObject/name"/>
-    </genClasses>
-    <genClasses ecoreClass="hockeyleague.ecore#//League">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//League/headoffice"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//League/teams"/>
-    </genClasses>
-    <genClasses image="false" ecoreClass="hockeyleague.ecore#//Player">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/birthplace"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/number"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/heightMesurement"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/heightValue"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/weightMesurement"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/weightValue"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/shot"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//Player/birthdate"/>
-    </genClasses>
-    <genClasses ecoreClass="hockeyleague.ecore#//PlayerStats">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/year"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//PlayerStats/team"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/gamesPlayedIn"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/goals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/assists"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/points"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/plusMinus"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/penaltyMinutes"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/powerPlayGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/shortHandedGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/gameWinningGoals"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/shots"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute hockeyleague.ecore#//PlayerStats/shotPercentage"/>
-    </genClasses>
-    <genClasses ecoreClass="hockeyleague.ecore#//Team">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//Team/forwards"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//Team/defencemen"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//Team/goalies"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference hockeyleague.ecore#//Team/arena"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.properties b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.properties
deleted file mode 100644
index a11a61f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.properties
+++ /dev/null
@@ -1,149 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-
-pluginName = Tabbed Properties View
-providerName = Eclipse.org
-
-_UI_CreateChild_text = {0}
-_UI_CreateChild_text2 = {1} {0}
-_UI_CreateChild_text3 = {1}
-_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
-_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
-_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
-
-_UI_PropertyDescriptor_description = The {0} of the {1}
-
-_UI_Arena_type = Arena
-_UI_Defence_type = Defence
-_UI_Forward_type = Forward
-_UI_Goalie_type = Goalie
-_UI_GoalieStats_type = Goalie Stats
-_UI_HockeyleagueObject_type = Object
-_UI_League_type = League
-_UI_Player_type = Player
-_UI_PlayerStats_type = Player Stats
-_UI_Team_type = Team
-_UI_Unknown_type = Object
-
-_UI_Unknown_datatype= Value
-
-_UI_Arena_address_feature = Address
-_UI_Arena_capacity_feature = Capacity
-_UI_Defence_position_feature = Position
-_UI_Defence_playerStats_feature = Player Stats
-_UI_Forward_position_feature = Position
-_UI_Forward_playerStats_feature = Player Stats
-_UI_Goalie_goalieStats_feature = Goalie Stats
-_UI_GoalieStats_year_feature = Year
-_UI_GoalieStats_team_feature = Team
-_UI_GoalieStats_gamesPlayedIn_feature = Games Played In
-_UI_GoalieStats_minutesPlayedIn_feature = Minutes Played In
-_UI_GoalieStats_goalsAgainstAverage_feature = Goals Against Average
-_UI_GoalieStats_wins_feature = Wins
-_UI_GoalieStats_losses_feature = Losses
-_UI_GoalieStats_ties_feature = Ties
-_UI_GoalieStats_emptyNetGoals_feature = Empty Net Goals
-_UI_GoalieStats_shutouts_feature = Shutouts
-_UI_GoalieStats_goalsAgainst_feature = Goals Against
-_UI_GoalieStats_saves_feature = Saves
-_UI_GoalieStats_penaltyMinutes_feature = Penalty Minutes
-_UI_GoalieStats_goals_feature = Goals
-_UI_GoalieStats_assists_feature = Assists
-_UI_GoalieStats_points_feature = Points
-_UI_HockeyleagueObject_name_feature = Name
-_UI_League_headoffice_feature = Headoffice
-_UI_League_teams_feature = Teams
-_UI_Player_birthplace_feature = Birthplace
-_UI_Player_number_feature = Number
-_UI_Player_heightMesurement_feature = Height Mesurement
-_UI_Player_heightValue_feature = Height Value
-_UI_Player_weightMesurement_feature = Weight Mesurement
-_UI_Player_weightValue_feature = Weight Value
-_UI_Player_shot_feature = Shot
-_UI_Player_birthdate_feature = Birthdate
-_UI_PlayerStats_year_feature = Year
-_UI_PlayerStats_team_feature = Team
-_UI_PlayerStats_gamesPlayedIn_feature = Games Played In
-_UI_PlayerStats_goals_feature = Goals
-_UI_PlayerStats_assists_feature = Assists
-_UI_PlayerStats_points_feature = Points
-_UI_PlayerStats_plusMinus_feature = Plus Minus
-_UI_PlayerStats_penaltyMinutes_feature = Penalty Minutes
-_UI_PlayerStats_powerPlayGoals_feature = Power Play Goals
-_UI_PlayerStats_shortHandedGoals_feature = Short Handed Goals
-_UI_PlayerStats_gameWinningGoals_feature = Game Winning Goals
-_UI_PlayerStats_shots_feature = Shots
-_UI_PlayerStats_shotPercentage_feature = Shot Percentage
-_UI_Team_forwards_feature = Forwards
-_UI_Team_defencemen_feature = Defencemen
-_UI_Team_goalies_feature = Goalies
-_UI_Team_arena_feature = Arena
-_UI_Unknown_feature = Unspecified
-
-_UI_DefencePositionKind_left_defence_literal = left_defence
-_UI_DefencePositionKind_right_defence_literal = right_defence
-_UI_ForwardPositionKind_left_wing_literal = left_wing
-_UI_ForwardPositionKind_right_wing_literal = right_wing
-_UI_ForwardPositionKind_center_literal = center
-_UI_HeightKind_inches_literal = inches
-_UI_HeightKind_centimeters_literal = centimeters
-_UI_ShotKind_left_literal = left
-_UI_ShotKind_right_literal = right
-_UI_WeightKind_pounds_literal = pounds
-_UI_WeightKind_kilograms_literal = kilograms
-
-_UI_HockeyleagueEditor_menu = &Hockeyleague Editor
-
-_UI_CreateChild_menu_item = &New Child
-_UI_CreateSibling_menu_item = N&ew Sibling
-
-_UI_ShowPropertiesView_menu_item = Show &Properties View
-_UI_RefreshViewer_menu_item = &Refresh
-
-_UI_SelectionPage_label = Selection
-_UI_ParentPage_label = Parent
-_UI_ListPage_label = List
-_UI_TreePage_label = Tree
-_UI_TablePage_label = Table
-_UI_TreeWithColumnsPage_label = Tree with Columns
-_UI_ObjectColumn_label = Object
-_UI_SelfColumn_label = Self
-
-_UI_NoObjectSelected = Selected Nothing
-_UI_SingleObjectSelected = Selected Object: {0}
-_UI_MultiObjectSelected = Selected {0} Objects
-
-_UI_OpenEditorError_label = Open Editor
-
-_UI_Wizard_category = Example EMF Model Creation Wizards
-
-_UI_CreateModelError_message = Problems encountered in file "{0}"
-
-_UI_HockeyleagueModelWizard_label = Hockeyleague Model
-_UI_HockeyleagueModelWizard_description = Create a new Hockeyleague model
-
-_UI_HockeyleagueEditor_label = Hockeyleague Model Editor
-
-_UI_HockeyleagueEditorFilenameDefaultBase = My
-_UI_HockeyleagueEditorFilenameExtensions = hockeyleague
-
-_UI_Wizard_label = New
-
-_WARN_FilenameExtension = The file name must end in ''.{0}''
-_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
-
-_UI_ModelObject = &Model Object
-_UI_XMLEncoding = &XML Encoding
-_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
-_UI_Wizard_initial_object_description = Select a model object to create
-
-_UI_FileConflict_label = File Conflict
-_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor.  Do you wish to discard this editor's changes?
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.xml b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.xml
deleted file mode 100644
index 224f19f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/plugin.xml
+++ /dev/null
@@ -1,304 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<plugin>
-
-  <extension point="org.eclipse.emf.ecore.generated_package">
-    <package 
-       uri = "http:///org/eclipse/ui/views/properties/tabbed/examples/hockeyleague.ecore" 
-       class = "org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage"
-       genModel = "model/hockeyleague.genmodel" /> 
-  </extension>
-
-  <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
-    <factory 
-       uri = "http:///org/eclipse/ui/views/properties/tabbed/examples/hockeyleague.ecore" 
-       class = "org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.provider.HockeyleagueItemProviderAdapterFactory" 
-       supportedTypes = 
-         "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
-          org.eclipse.emf.edit.provider.IStructuredItemContentProvider
-          org.eclipse.emf.edit.provider.ITreeItemContentProvider
-          org.eclipse.emf.edit.provider.IItemLabelProvider
-          org.eclipse.emf.edit.provider.IItemPropertySource" />
-  </extension>
-
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            name="Tabbed Properties View Examples"
-            parentCategory="org.eclipse.ui.Examples"
-            id="org.eclipse.ui.views.properties.tabbed">
-      </category>
-      <wizard
-            name="Tabbed Properties View Hockey League Example Project"
-            icon="icons/hockeyleague.gif"
-            category="org.eclipse.ui.Examples/org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.wizards.NewHockeyleagueProjectWizard"
-            project="true"
-            id="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.wizards.NewHockeyleagueProjectWizard">
-         <description>
-            Create a new Tabbed Properties View Hockey League Example Project
-         </description>
-      </wizard>
-      <wizard
-            name="Tabbed Properties View Hockey League Example File"
-            icon="icons/hockeyleague.gif"
-            category="org.eclipse.ui.Examples/org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.wizards.NewHockeyleagueFileWizard"
-            id="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.wizards.NewHockeyleagueFileWizard">
-         <description>
-            Create a new Tabbed Properties View Hockey League Example File
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="Hockey League Editor"
-            icon="icons/hockeyleague.gif"
-            extensions="hockeyleague"
-            contributorClass="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueActionBarContributor"
-            class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor"
-            id="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            labelProvider="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.HockeyleagueLabelProvider"
-            contributorId="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-         <propertyCategory
-               category="advanced">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs
-            contributorId="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague">
-         <propertyTab
-               label="Advanced"
-               category="advanced"
-               id="hockeyleague.tab.Advanced">
-         </propertyTab>
-         <propertyTab
-               label="General"
-               category="default"
-               id="hockeyleague.tab.General">
-         </propertyTab>
-         <propertyTab
-               label="Born"
-               category="default"
-               afterTab="hockeyleague.tab.General"
-               id="hockeyleague.tab.Born">
-         </propertyTab>
-         <propertyTab
-               label="Measurements"
-               category="default"
-               afterTab="hockeyleague.tab.Born"
-               id="hockeyleague.tab.Measurements">
-         </propertyTab>
-         <propertyTab
-               label="Forwards"
-               category="default"
-               afterTab="hockeyleague.tab.Measurements"
-               id="hockeyleague.tab.Forwards">
-         </propertyTab>
-         <propertyTab
-               label="Defencemen"
-               category="default"
-               afterTab="hockeyleague.tab.Measurements"
-               id="hockeyleague.tab.Defencemen">
-         </propertyTab>
-         <propertyTab
-               label="Goalies"
-               category="default"
-               afterTab="hockeyleague.tab.Measurements"
-               id="hockeyleague.tab.Goalies">
-         </propertyTab>
-         <propertyTab
-               label="Statistics"
-               category="default"
-               afterTab="hockeyleague.tab.Measurements"
-               id="hockeyleague.tab.Statistics">
-         </propertyTab>
-         <propertyTab
-               label="Teams"
-               category="default"
-               afterTab="hockeyleague.tab.General"
-               id="hockeyleague.tab.Teams">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections
-            contributorId="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague">
-         <propertySection
-               tab="hockeyleague.tab.General"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.NamePropertySection"
-               id="hockeyleague.section.Name">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Advanced"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AdvancedPropertySection"
-               id="hockeyleague.section.Advanced">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject">
-            </input>
-            <input type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats"/>
-            <input type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats"/>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.General"
-               afterSection="hockeyleague.section.Name"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AddressPropertySection"
-               id="hockeyleague.section.Address">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.General"
-               afterSection="hockeyleague.section.Name"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.HeadOfficePropertySection"
-               id="hockeyleague.section.Headoffice">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.General"
-               afterSection="hockeyleague.section.Name"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.NumberPropertySection"
-               id="hockeyleague.section.Number">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.General"
-               afterSection="hockeyleague.section.Number"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.ShotPropertySection"
-               id="hockeyleague.section.Shot">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.General"
-               afterSection="hockeyleague.section.Address"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.CapacityPropertySection"
-               id="hockeyleague.section.Capacity">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Born"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.BirthDatePropertySection"
-               id="hockeyleague.section.BirthDate">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Born"
-               afterSection="hockeyleague.section.BirthDate"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.BirthPlacePropertySection"
-               id="hockeyleague.section.BirthPlace">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Measurements"
-               afterSection="hockeyleague.section.Weight"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.HeightPropertySection"
-               id="hockeyleague.section.Height">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Measurements"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.WeightPropertySection"
-               id="hockeyleague.section.Weight">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Forwards"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.ForwardsPropertySection"
-               id="hockeyleague.section.Forwards">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Goalies"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.GoaliesPropertySection"
-               id="hockeyleague.section.Goalies">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Defencemen"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.DefencemenPropertySection"
-               id="hockeyleague.section.Defencemen">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Teams"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.TeamsPropertySection"
-               id="hockeyleague.section.Teams">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.Statistics"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.PlayerStatsPropertySection"
-               id="hockeyleague.section.PlayerStats">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward">
-            </input>
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.General"
-               afterSection="hockeyleague.section.Shot"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.ForwardPositionPropertySection"
-               id="hockeyleague.section.ForwardPosition">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="hockeyleague.tab.General"
-               afterSection="hockeyleague.section.Shot"
-               class="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.DefencePositionPropertySection"
-               id="hockeyleague.section.DefencePosition">
-            <input
-                  type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence">
-            </input>
-         </propertySection>
-      </propertySections>
-   </extension>
-</plugin>
-
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Arena.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Arena.java
deleted file mode 100644
index 33db219..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Arena.java
+++ /dev/null
@@ -1,84 +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.examples.views.properties.tabbed.hockeyleague;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Arena</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getAddress <em>Address</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getCapacity <em>Capacity</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getArena()
- * @model
- * @generated
- */
-public interface Arena extends HockeyleagueObject {
-	/**
-	 * Returns the value of the '<em><b>Address</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Address</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Address</em>' attribute.
-	 * @see #setAddress(String)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getArena_Address()
-	 * @model
-	 * @generated
-	 */
-	String getAddress();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getAddress <em>Address</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Address</em>' attribute.
-	 * @see #getAddress()
-	 * @generated
-	 */
-	void setAddress(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Capacity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Capacity</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Capacity</em>' attribute.
-	 * @see #setCapacity(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getArena_Capacity()
-	 * @model
-	 * @generated
-	 */
-	int getCapacity();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getCapacity <em>Capacity</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Capacity</em>' attribute.
-	 * @see #getCapacity()
-	 * @generated
-	 */
-	void setCapacity(int value);
-
-} // Arena
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Defence.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Defence.java
deleted file mode 100644
index a15edb2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Defence.java
+++ /dev/null
@@ -1,78 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Defence</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence#getPosition <em>Position</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence#getPlayerStats <em>Player Stats</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getDefence()
- * @model
- * @generated
- */
-public interface Defence extends Player {
-	/**
-	 * Returns the value of the '<em><b>Position</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Position</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Position</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind
-	 * @see #setPosition(DefencePositionKind)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getDefence_Position()
-	 * @model
-	 * @generated
-	 */
-	DefencePositionKind getPosition();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence#getPosition <em>Position</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Position</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind
-	 * @see #getPosition()
-	 * @generated
-	 */
-	void setPosition(DefencePositionKind value);
-
-	/**
-	 * Returns the value of the '<em><b>Player Stats</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Player Stats</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Player Stats</em>' containment reference list.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getDefence_PlayerStats()
-	 * @model type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats" containment="true"
-	 * @generated
-	 */
-	EList getPlayerStats();
-
-} // Defence
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/DefencePositionKind.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/DefencePositionKind.java
deleted file mode 100644
index dbfa2e9..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/DefencePositionKind.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Defence Position Kind</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getDefencePositionKind()
- * @model
- * @generated
- */
-public final class DefencePositionKind extends AbstractEnumerator {
-	/**
-	 * The '<em><b>Left defence</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Left defence</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #LEFT_DEFENCE_LITERAL
-	 * @model name="left_defence"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int LEFT_DEFENCE = 0;
-
-	/**
-	 * The '<em><b>Right defence</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Right defence</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #RIGHT_DEFENCE_LITERAL
-	 * @model name="right_defence"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int RIGHT_DEFENCE = 1;
-
-	/**
-	 * The '<em><b>Left defence</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #LEFT_DEFENCE
-	 * @generated
-	 * @ordered
-	 */
-	public static final DefencePositionKind LEFT_DEFENCE_LITERAL = new DefencePositionKind(LEFT_DEFENCE, "left_defence", "left_defence"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Right defence</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #RIGHT_DEFENCE
-	 * @generated
-	 * @ordered
-	 */
-	public static final DefencePositionKind RIGHT_DEFENCE_LITERAL = new DefencePositionKind(RIGHT_DEFENCE, "right_defence", "right_defence"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * An array of all the '<em><b>Defence Position Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final DefencePositionKind[] VALUES_ARRAY =
-		new DefencePositionKind[] {
-			LEFT_DEFENCE_LITERAL,
-			RIGHT_DEFENCE_LITERAL,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Defence Position Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Defence Position Kind</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static DefencePositionKind get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			DefencePositionKind result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Defence Position Kind</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static DefencePositionKind getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			DefencePositionKind result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Defence Position Kind</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static DefencePositionKind get(int value) {
-		switch (value) {
-			case LEFT_DEFENCE: return LEFT_DEFENCE_LITERAL;
-			case RIGHT_DEFENCE: return RIGHT_DEFENCE_LITERAL;
-		}
-		return null;
-	}
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private DefencePositionKind(int value, String name, String literal) {
-		super(value, name, literal);
-	}
-
-} //DefencePositionKind
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Forward.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Forward.java
deleted file mode 100644
index 3ebed14..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Forward.java
+++ /dev/null
@@ -1,78 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Forward</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward#getPosition <em>Position</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward#getPlayerStats <em>Player Stats</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getForward()
- * @model
- * @generated
- */
-public interface Forward extends Player {
-	/**
-	 * Returns the value of the '<em><b>Position</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Position</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Position</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind
-	 * @see #setPosition(ForwardPositionKind)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getForward_Position()
-	 * @model
-	 * @generated
-	 */
-	ForwardPositionKind getPosition();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward#getPosition <em>Position</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Position</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind
-	 * @see #getPosition()
-	 * @generated
-	 */
-	void setPosition(ForwardPositionKind value);
-
-	/**
-	 * Returns the value of the '<em><b>Player Stats</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Player Stats</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Player Stats</em>' containment reference list.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getForward_PlayerStats()
-	 * @model type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats" containment="true"
-	 * @generated
-	 */
-	EList getPlayerStats();
-
-} // Forward
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ForwardPositionKind.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ForwardPositionKind.java
deleted file mode 100644
index 36eea3b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ForwardPositionKind.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Forward Position Kind</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getForwardPositionKind()
- * @model
- * @generated
- */
-public final class ForwardPositionKind extends AbstractEnumerator {
-	/**
-	 * The '<em><b>Left wing</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Left wing</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #LEFT_WING_LITERAL
-	 * @model name="left_wing"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int LEFT_WING = 0;
-
-	/**
-	 * The '<em><b>Right wing</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Right wing</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #RIGHT_WING_LITERAL
-	 * @model name="right_wing"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int RIGHT_WING = 1;
-
-	/**
-	 * The '<em><b>Center</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Center</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #CENTER_LITERAL
-	 * @model name="center"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int CENTER = 2;
-
-	/**
-	 * The '<em><b>Left wing</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #LEFT_WING
-	 * @generated
-	 * @ordered
-	 */
-	public static final ForwardPositionKind LEFT_WING_LITERAL = new ForwardPositionKind(LEFT_WING, "left_wing", "left_wing"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Right wing</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #RIGHT_WING
-	 * @generated
-	 * @ordered
-	 */
-	public static final ForwardPositionKind RIGHT_WING_LITERAL = new ForwardPositionKind(RIGHT_WING, "right_wing", "right_wing"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Center</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #CENTER
-	 * @generated
-	 * @ordered
-	 */
-	public static final ForwardPositionKind CENTER_LITERAL = new ForwardPositionKind(CENTER, "center", "center"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * An array of all the '<em><b>Forward Position Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final ForwardPositionKind[] VALUES_ARRAY =
-		new ForwardPositionKind[] {
-			LEFT_WING_LITERAL,
-			RIGHT_WING_LITERAL,
-			CENTER_LITERAL,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Forward Position Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Forward Position Kind</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ForwardPositionKind get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ForwardPositionKind result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Forward Position Kind</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ForwardPositionKind getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ForwardPositionKind result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Forward Position Kind</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ForwardPositionKind get(int value) {
-		switch (value) {
-			case LEFT_WING: return LEFT_WING_LITERAL;
-			case RIGHT_WING: return RIGHT_WING_LITERAL;
-			case CENTER: return CENTER_LITERAL;
-		}
-		return null;
-	}
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private ForwardPositionKind(int value, String name, String literal) {
-		super(value, name, literal);
-	}
-
-} //ForwardPositionKind
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Goalie.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Goalie.java
deleted file mode 100644
index 6e287c5..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Goalie.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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Goalie</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie#getGoalieStats <em>Goalie Stats</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalie()
- * @model
- * @generated
- */
-public interface Goalie extends Player {
-	/**
-	 * Returns the value of the '<em><b>Goalie Stats</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Goalie Stats</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Goalie Stats</em>' containment reference list.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalie_GoalieStats()
-	 * @model type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats" containment="true"
-	 * @generated
-	 */
-	EList getGoalieStats();
-
-} // Goalie
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/GoalieStats.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/GoalieStats.java
deleted file mode 100644
index f2eed7a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/GoalieStats.java
+++ /dev/null
@@ -1,463 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Goalie Stats</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getYear <em>Year</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTeam <em>Team</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGamesPlayedIn <em>Games Played In</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getMinutesPlayedIn <em>Minutes Played In</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainstAverage <em>Goals Against Average</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getWins <em>Wins</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getLosses <em>Losses</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTies <em>Ties</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getEmptyNetGoals <em>Empty Net Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getShutouts <em>Shutouts</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainst <em>Goals Against</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getSaves <em>Saves</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPenaltyMinutes <em>Penalty Minutes</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoals <em>Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getAssists <em>Assists</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPoints <em>Points</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats()
- * @model
- * @generated
- */
-public interface GoalieStats extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Year</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Year</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Year</em>' attribute.
-	 * @see #setYear(String)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Year()
-	 * @model
-	 * @generated
-	 */
-	String getYear();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getYear <em>Year</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Year</em>' attribute.
-	 * @see #getYear()
-	 * @generated
-	 */
-	void setYear(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Team</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Team</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Team</em>' reference.
-	 * @see #setTeam(Team)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Team()
-	 * @model
-	 * @generated
-	 */
-	Team getTeam();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTeam <em>Team</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Team</em>' reference.
-	 * @see #getTeam()
-	 * @generated
-	 */
-	void setTeam(Team value);
-
-	/**
-	 * Returns the value of the '<em><b>Games Played In</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Games Played In</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Games Played In</em>' attribute.
-	 * @see #setGamesPlayedIn(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_GamesPlayedIn()
-	 * @model
-	 * @generated
-	 */
-	int getGamesPlayedIn();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGamesPlayedIn <em>Games Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Games Played In</em>' attribute.
-	 * @see #getGamesPlayedIn()
-	 * @generated
-	 */
-	void setGamesPlayedIn(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Minutes Played In</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Minutes Played In</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Minutes Played In</em>' attribute.
-	 * @see #setMinutesPlayedIn(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_MinutesPlayedIn()
-	 * @model
-	 * @generated
-	 */
-	int getMinutesPlayedIn();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getMinutesPlayedIn <em>Minutes Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Minutes Played In</em>' attribute.
-	 * @see #getMinutesPlayedIn()
-	 * @generated
-	 */
-	void setMinutesPlayedIn(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Goals Against Average</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Goals Against Average</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Goals Against Average</em>' attribute.
-	 * @see #setGoalsAgainstAverage(float)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_GoalsAgainstAverage()
-	 * @model
-	 * @generated
-	 */
-	float getGoalsAgainstAverage();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainstAverage <em>Goals Against Average</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Goals Against Average</em>' attribute.
-	 * @see #getGoalsAgainstAverage()
-	 * @generated
-	 */
-	void setGoalsAgainstAverage(float value);
-
-	/**
-	 * Returns the value of the '<em><b>Wins</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Wins</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Wins</em>' attribute.
-	 * @see #setWins(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Wins()
-	 * @model
-	 * @generated
-	 */
-	int getWins();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getWins <em>Wins</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Wins</em>' attribute.
-	 * @see #getWins()
-	 * @generated
-	 */
-	void setWins(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Losses</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Losses</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Losses</em>' attribute.
-	 * @see #setLosses(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Losses()
-	 * @model
-	 * @generated
-	 */
-	int getLosses();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getLosses <em>Losses</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Losses</em>' attribute.
-	 * @see #getLosses()
-	 * @generated
-	 */
-	void setLosses(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Ties</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Ties</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Ties</em>' attribute.
-	 * @see #setTies(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Ties()
-	 * @model
-	 * @generated
-	 */
-	int getTies();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTies <em>Ties</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Ties</em>' attribute.
-	 * @see #getTies()
-	 * @generated
-	 */
-	void setTies(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Empty Net Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Empty Net Goals</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Empty Net Goals</em>' attribute.
-	 * @see #setEmptyNetGoals(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_EmptyNetGoals()
-	 * @model
-	 * @generated
-	 */
-	int getEmptyNetGoals();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getEmptyNetGoals <em>Empty Net Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Empty Net Goals</em>' attribute.
-	 * @see #getEmptyNetGoals()
-	 * @generated
-	 */
-	void setEmptyNetGoals(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Shutouts</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Shutouts</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Shutouts</em>' attribute.
-	 * @see #setShutouts(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Shutouts()
-	 * @model
-	 * @generated
-	 */
-	int getShutouts();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getShutouts <em>Shutouts</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Shutouts</em>' attribute.
-	 * @see #getShutouts()
-	 * @generated
-	 */
-	void setShutouts(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Goals Against</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Goals Against</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Goals Against</em>' attribute.
-	 * @see #setGoalsAgainst(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_GoalsAgainst()
-	 * @model
-	 * @generated
-	 */
-	int getGoalsAgainst();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainst <em>Goals Against</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Goals Against</em>' attribute.
-	 * @see #getGoalsAgainst()
-	 * @generated
-	 */
-	void setGoalsAgainst(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Saves</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Saves</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Saves</em>' attribute.
-	 * @see #setSaves(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Saves()
-	 * @model
-	 * @generated
-	 */
-	int getSaves();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getSaves <em>Saves</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Saves</em>' attribute.
-	 * @see #getSaves()
-	 * @generated
-	 */
-	void setSaves(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Penalty Minutes</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Penalty Minutes</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Penalty Minutes</em>' attribute.
-	 * @see #setPenaltyMinutes(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_PenaltyMinutes()
-	 * @model
-	 * @generated
-	 */
-	int getPenaltyMinutes();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPenaltyMinutes <em>Penalty Minutes</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Penalty Minutes</em>' attribute.
-	 * @see #getPenaltyMinutes()
-	 * @generated
-	 */
-	void setPenaltyMinutes(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Goals</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Goals</em>' attribute.
-	 * @see #setGoals(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Goals()
-	 * @model
-	 * @generated
-	 */
-	int getGoals();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoals <em>Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Goals</em>' attribute.
-	 * @see #getGoals()
-	 * @generated
-	 */
-	void setGoals(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Assists</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Assists</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Assists</em>' attribute.
-	 * @see #setAssists(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Assists()
-	 * @model
-	 * @generated
-	 */
-	int getAssists();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getAssists <em>Assists</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Assists</em>' attribute.
-	 * @see #getAssists()
-	 * @generated
-	 */
-	void setAssists(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Points</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Points</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Points</em>' attribute.
-	 * @see #setPoints(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getGoalieStats_Points()
-	 * @model
-	 * @generated
-	 */
-	int getPoints();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPoints <em>Points</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Points</em>' attribute.
-	 * @see #getPoints()
-	 * @generated
-	 */
-	void setPoints(int value);
-
-} // GoalieStats
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HeightKind.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HeightKind.java
deleted file mode 100644
index d45fdb4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HeightKind.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Height Kind</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getHeightKind()
- * @model
- * @generated
- */
-public final class HeightKind extends AbstractEnumerator {
-	/**
-	 * The '<em><b>Inches</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Inches</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #INCHES_LITERAL
-	 * @model name="inches"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int INCHES = 0;
-
-	/**
-	 * The '<em><b>Centimeters</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Centimeters</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #CENTIMETERS_LITERAL
-	 * @model name="centimeters"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int CENTIMETERS = 1;
-
-	/**
-	 * The '<em><b>Inches</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #INCHES
-	 * @generated
-	 * @ordered
-	 */
-	public static final HeightKind INCHES_LITERAL = new HeightKind(INCHES, "inches", "inches"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Centimeters</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #CENTIMETERS
-	 * @generated
-	 * @ordered
-	 */
-	public static final HeightKind CENTIMETERS_LITERAL = new HeightKind(CENTIMETERS, "centimeters", "centimeters"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * An array of all the '<em><b>Height Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final HeightKind[] VALUES_ARRAY =
-		new HeightKind[] {
-			INCHES_LITERAL,
-			CENTIMETERS_LITERAL,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Height Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Height Kind</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static HeightKind get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			HeightKind result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Height Kind</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static HeightKind getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			HeightKind result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Height Kind</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static HeightKind get(int value) {
-		switch (value) {
-			case INCHES: return INCHES_LITERAL;
-			case CENTIMETERS: return CENTIMETERS_LITERAL;
-		}
-		return null;
-	}
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private HeightKind(int value, String name, String literal) {
-		super(value, name, literal);
-	}
-
-} //HeightKind
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueFactory.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueFactory.java
deleted file mode 100644
index d796d2b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueFactory.java
+++ /dev/null
@@ -1,113 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Factory</b> for the model.
- * It provides a create method for each non-abstract class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage
- * @generated
- */
-public interface HockeyleagueFactory extends EFactory {
-	/**
-	 * The singleton instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	HockeyleagueFactory eINSTANCE = org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleagueFactoryImpl.init();
-
-	/**
-	 * Returns a new object of class '<em>Arena</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Arena</em>'.
-	 * @generated
-	 */
-	Arena createArena();
-
-	/**
-	 * Returns a new object of class '<em>Defence</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Defence</em>'.
-	 * @generated
-	 */
-	Defence createDefence();
-
-	/**
-	 * Returns a new object of class '<em>Forward</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Forward</em>'.
-	 * @generated
-	 */
-	Forward createForward();
-
-	/**
-	 * Returns a new object of class '<em>Goalie</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Goalie</em>'.
-	 * @generated
-	 */
-	Goalie createGoalie();
-
-	/**
-	 * Returns a new object of class '<em>Goalie Stats</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Goalie Stats</em>'.
-	 * @generated
-	 */
-	GoalieStats createGoalieStats();
-
-	/**
-	 * Returns a new object of class '<em>League</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>League</em>'.
-	 * @generated
-	 */
-	League createLeague();
-
-	/**
-	 * Returns a new object of class '<em>Player Stats</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Player Stats</em>'.
-	 * @generated
-	 */
-	PlayerStats createPlayerStats();
-
-	/**
-	 * Returns a new object of class '<em>Team</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Team</em>'.
-	 * @generated
-	 */
-	Team createTeam();
-
-	/**
-	 * Returns the package supported by this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the package supported by this factory.
-	 * @generated
-	 */
-	HockeyleaguePackage getHockeyleaguePackage();
-
-} //HockeyleagueFactory
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueObject.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueObject.java
deleted file mode 100644
index acb0766..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleagueObject.java
+++ /dev/null
@@ -1,58 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Object</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject#getName <em>Name</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getHockeyleagueObject()
- * @model abstract="true"
- * @generated
- */
-public interface HockeyleagueObject extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Name</em>' attribute.
-	 * @see #setName(String)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getHockeyleagueObject_Name()
-	 * @model
-	 * @generated
-	 */
-	String getName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject#getName <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Name</em>' attribute.
-	 * @see #getName()
-	 * @generated
-	 */
-	void setName(String value);
-
-} // HockeyleagueObject
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePackage.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePackage.java
deleted file mode 100644
index 304b2dc..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePackage.java
+++ /dev/null
@@ -1,2339 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory
- * @model kind="package"
- * @generated
- */
-public interface HockeyleaguePackage extends EPackage {
-	/**
-	 * The package name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNAME = "hockeyleague"; //$NON-NLS-1$
-
-	/**
-	 * The package namespace URI.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_URI = "http:///org/eclipse/ui/views/properties/tabbed/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore"; //$NON-NLS-1$
-
-	/**
-	 * The package namespace name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	String eNS_PREFIX = "org.eclipse.ui.examples.views.properties.tabbed.hockeyleague"; //$NON-NLS-1$
-
-	/**
-	 * The singleton instance of the package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	HockeyleaguePackage eINSTANCE = org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl.init();
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleagueObjectImpl <em>Object</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleagueObjectImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getHockeyleagueObject()
-	 * @generated
-	 */
-	int HOCKEYLEAGUE_OBJECT = 5;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HOCKEYLEAGUE_OBJECT__NAME = 0;
-
-	/**
-	 * The number of structural features of the '<em>Object</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int HOCKEYLEAGUE_OBJECT_FEATURE_COUNT = 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ArenaImpl <em>Arena</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ArenaImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getArena()
-	 * @generated
-	 */
-	int ARENA = 0;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARENA__NAME = HOCKEYLEAGUE_OBJECT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Address</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARENA__ADDRESS = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Capacity</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARENA__CAPACITY = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Arena</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int ARENA_FEATURE_COUNT = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl <em>Player</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getPlayer()
-	 * @generated
-	 */
-	int PLAYER = 7;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__NAME = HOCKEYLEAGUE_OBJECT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Birthplace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__BIRTHPLACE = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Number</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__NUMBER = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Height Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__HEIGHT_MESUREMENT = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Height Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__HEIGHT_VALUE = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Weight Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__WEIGHT_MESUREMENT = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 4;
-
-	/**
-	 * The feature id for the '<em><b>Weight Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__WEIGHT_VALUE = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 5;
-
-	/**
-	 * The feature id for the '<em><b>Shot</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__SHOT = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Birthdate</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER__BIRTHDATE = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 7;
-
-	/**
-	 * The number of structural features of the '<em>Player</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_FEATURE_COUNT = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 8;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.DefenceImpl <em>Defence</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.DefenceImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getDefence()
-	 * @generated
-	 */
-	int DEFENCE = 1;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__NAME = PLAYER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Birthplace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__BIRTHPLACE = PLAYER__BIRTHPLACE;
-
-	/**
-	 * The feature id for the '<em><b>Number</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__NUMBER = PLAYER__NUMBER;
-
-	/**
-	 * The feature id for the '<em><b>Height Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__HEIGHT_MESUREMENT = PLAYER__HEIGHT_MESUREMENT;
-
-	/**
-	 * The feature id for the '<em><b>Height Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__HEIGHT_VALUE = PLAYER__HEIGHT_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Weight Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__WEIGHT_MESUREMENT = PLAYER__WEIGHT_MESUREMENT;
-
-	/**
-	 * The feature id for the '<em><b>Weight Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__WEIGHT_VALUE = PLAYER__WEIGHT_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Shot</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__SHOT = PLAYER__SHOT;
-
-	/**
-	 * The feature id for the '<em><b>Birthdate</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__BIRTHDATE = PLAYER__BIRTHDATE;
-
-	/**
-	 * The feature id for the '<em><b>Position</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__POSITION = PLAYER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Player Stats</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE__PLAYER_STATS = PLAYER_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Defence</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int DEFENCE_FEATURE_COUNT = PLAYER_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ForwardImpl <em>Forward</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ForwardImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getForward()
-	 * @generated
-	 */
-	int FORWARD = 2;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__NAME = PLAYER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Birthplace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__BIRTHPLACE = PLAYER__BIRTHPLACE;
-
-	/**
-	 * The feature id for the '<em><b>Number</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__NUMBER = PLAYER__NUMBER;
-
-	/**
-	 * The feature id for the '<em><b>Height Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__HEIGHT_MESUREMENT = PLAYER__HEIGHT_MESUREMENT;
-
-	/**
-	 * The feature id for the '<em><b>Height Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__HEIGHT_VALUE = PLAYER__HEIGHT_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Weight Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__WEIGHT_MESUREMENT = PLAYER__WEIGHT_MESUREMENT;
-
-	/**
-	 * The feature id for the '<em><b>Weight Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__WEIGHT_VALUE = PLAYER__WEIGHT_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Shot</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__SHOT = PLAYER__SHOT;
-
-	/**
-	 * The feature id for the '<em><b>Birthdate</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__BIRTHDATE = PLAYER__BIRTHDATE;
-
-	/**
-	 * The feature id for the '<em><b>Position</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__POSITION = PLAYER_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Player Stats</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD__PLAYER_STATS = PLAYER_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Forward</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int FORWARD_FEATURE_COUNT = PLAYER_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieImpl <em>Goalie</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getGoalie()
-	 * @generated
-	 */
-	int GOALIE = 3;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__NAME = PLAYER__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Birthplace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__BIRTHPLACE = PLAYER__BIRTHPLACE;
-
-	/**
-	 * The feature id for the '<em><b>Number</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__NUMBER = PLAYER__NUMBER;
-
-	/**
-	 * The feature id for the '<em><b>Height Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__HEIGHT_MESUREMENT = PLAYER__HEIGHT_MESUREMENT;
-
-	/**
-	 * The feature id for the '<em><b>Height Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__HEIGHT_VALUE = PLAYER__HEIGHT_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Weight Mesurement</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__WEIGHT_MESUREMENT = PLAYER__WEIGHT_MESUREMENT;
-
-	/**
-	 * The feature id for the '<em><b>Weight Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__WEIGHT_VALUE = PLAYER__WEIGHT_VALUE;
-
-	/**
-	 * The feature id for the '<em><b>Shot</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__SHOT = PLAYER__SHOT;
-
-	/**
-	 * The feature id for the '<em><b>Birthdate</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__BIRTHDATE = PLAYER__BIRTHDATE;
-
-	/**
-	 * The feature id for the '<em><b>Goalie Stats</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE__GOALIE_STATS = PLAYER_FEATURE_COUNT + 0;
-
-	/**
-	 * The number of structural features of the '<em>Goalie</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_FEATURE_COUNT = PLAYER_FEATURE_COUNT + 1;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl <em>Goalie Stats</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getGoalieStats()
-	 * @generated
-	 */
-	int GOALIE_STATS = 4;
-
-	/**
-	 * The feature id for the '<em><b>Year</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__YEAR = 0;
-
-	/**
-	 * The feature id for the '<em><b>Team</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__TEAM = 1;
-
-	/**
-	 * The feature id for the '<em><b>Games Played In</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__GAMES_PLAYED_IN = 2;
-
-	/**
-	 * The feature id for the '<em><b>Minutes Played In</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__MINUTES_PLAYED_IN = 3;
-
-	/**
-	 * The feature id for the '<em><b>Goals Against Average</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__GOALS_AGAINST_AVERAGE = 4;
-
-	/**
-	 * The feature id for the '<em><b>Wins</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__WINS = 5;
-
-	/**
-	 * The feature id for the '<em><b>Losses</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__LOSSES = 6;
-
-	/**
-	 * The feature id for the '<em><b>Ties</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__TIES = 7;
-
-	/**
-	 * The feature id for the '<em><b>Empty Net Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__EMPTY_NET_GOALS = 8;
-
-	/**
-	 * The feature id for the '<em><b>Shutouts</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__SHUTOUTS = 9;
-
-	/**
-	 * The feature id for the '<em><b>Goals Against</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__GOALS_AGAINST = 10;
-
-	/**
-	 * The feature id for the '<em><b>Saves</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__SAVES = 11;
-
-	/**
-	 * The feature id for the '<em><b>Penalty Minutes</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__PENALTY_MINUTES = 12;
-
-	/**
-	 * The feature id for the '<em><b>Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__GOALS = 13;
-
-	/**
-	 * The feature id for the '<em><b>Assists</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__ASSISTS = 14;
-
-	/**
-	 * The feature id for the '<em><b>Points</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS__POINTS = 15;
-
-	/**
-	 * The number of structural features of the '<em>Goalie Stats</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GOALIE_STATS_FEATURE_COUNT = 16;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.LeagueImpl <em>League</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.LeagueImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getLeague()
-	 * @generated
-	 */
-	int LEAGUE = 6;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LEAGUE__NAME = HOCKEYLEAGUE_OBJECT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Headoffice</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LEAGUE__HEADOFFICE = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Teams</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LEAGUE__TEAMS = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>League</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LEAGUE_FEATURE_COUNT = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 2;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl <em>Player Stats</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getPlayerStats()
-	 * @generated
-	 */
-	int PLAYER_STATS = 8;
-
-	/**
-	 * The feature id for the '<em><b>Year</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__YEAR = 0;
-
-	/**
-	 * The feature id for the '<em><b>Team</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__TEAM = 1;
-
-	/**
-	 * The feature id for the '<em><b>Games Played In</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__GAMES_PLAYED_IN = 2;
-
-	/**
-	 * The feature id for the '<em><b>Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__GOALS = 3;
-
-	/**
-	 * The feature id for the '<em><b>Assists</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__ASSISTS = 4;
-
-	/**
-	 * The feature id for the '<em><b>Points</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__POINTS = 5;
-
-	/**
-	 * The feature id for the '<em><b>Plus Minus</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__PLUS_MINUS = 6;
-
-	/**
-	 * The feature id for the '<em><b>Penalty Minutes</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__PENALTY_MINUTES = 7;
-
-	/**
-	 * The feature id for the '<em><b>Power Play Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__POWER_PLAY_GOALS = 8;
-
-	/**
-	 * The feature id for the '<em><b>Short Handed Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__SHORT_HANDED_GOALS = 9;
-
-	/**
-	 * The feature id for the '<em><b>Game Winning Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__GAME_WINNING_GOALS = 10;
-
-	/**
-	 * The feature id for the '<em><b>Shots</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__SHOTS = 11;
-
-	/**
-	 * The feature id for the '<em><b>Shot Percentage</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS__SHOT_PERCENTAGE = 12;
-
-	/**
-	 * The number of structural features of the '<em>Player Stats</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PLAYER_STATS_FEATURE_COUNT = 13;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl <em>Team</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getTeam()
-	 * @generated
-	 */
-	int TEAM = 9;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEAM__NAME = HOCKEYLEAGUE_OBJECT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Forwards</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEAM__FORWARDS = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Defencemen</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEAM__DEFENCEMEN = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Goalies</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEAM__GOALIES = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Arena</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEAM__ARENA = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 3;
-
-	/**
-	 * The number of structural features of the '<em>Team</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TEAM_FEATURE_COUNT = HOCKEYLEAGUE_OBJECT_FEATURE_COUNT + 4;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind <em>Defence Position Kind</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getDefencePositionKind()
-	 * @generated
-	 */
-	int DEFENCE_POSITION_KIND = 10;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind <em>Forward Position Kind</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getForwardPositionKind()
-	 * @generated
-	 */
-	int FORWARD_POSITION_KIND = 11;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind <em>Height Kind</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getHeightKind()
-	 * @generated
-	 */
-	int HEIGHT_KIND = 12;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind <em>Shot Kind</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getShotKind()
-	 * @generated
-	 */
-	int SHOT_KIND = 13;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind <em>Weight Kind</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getWeightKind()
-	 * @generated
-	 */
-	int WEIGHT_KIND = 14;
-
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena <em>Arena</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Arena</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena
-	 * @generated
-	 */
-	EClass getArena();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getAddress <em>Address</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Address</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getAddress()
-	 * @see #getArena()
-	 * @generated
-	 */
-	EAttribute getArena_Address();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getCapacity <em>Capacity</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Capacity</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena#getCapacity()
-	 * @see #getArena()
-	 * @generated
-	 */
-	EAttribute getArena_Capacity();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence <em>Defence</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Defence</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence
-	 * @generated
-	 */
-	EClass getDefence();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence#getPosition <em>Position</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Position</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence#getPosition()
-	 * @see #getDefence()
-	 * @generated
-	 */
-	EAttribute getDefence_Position();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence#getPlayerStats <em>Player Stats</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Player Stats</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence#getPlayerStats()
-	 * @see #getDefence()
-	 * @generated
-	 */
-	EReference getDefence_PlayerStats();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward <em>Forward</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Forward</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward
-	 * @generated
-	 */
-	EClass getForward();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward#getPosition <em>Position</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Position</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward#getPosition()
-	 * @see #getForward()
-	 * @generated
-	 */
-	EAttribute getForward_Position();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward#getPlayerStats <em>Player Stats</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Player Stats</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward#getPlayerStats()
-	 * @see #getForward()
-	 * @generated
-	 */
-	EReference getForward_PlayerStats();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie <em>Goalie</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Goalie</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie
-	 * @generated
-	 */
-	EClass getGoalie();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie#getGoalieStats <em>Goalie Stats</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Goalie Stats</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie#getGoalieStats()
-	 * @see #getGoalie()
-	 * @generated
-	 */
-	EReference getGoalie_GoalieStats();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats <em>Goalie Stats</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Goalie Stats</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats
-	 * @generated
-	 */
-	EClass getGoalieStats();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getYear <em>Year</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Year</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getYear()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Year();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTeam <em>Team</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Team</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTeam()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EReference getGoalieStats_Team();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGamesPlayedIn <em>Games Played In</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Games Played In</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGamesPlayedIn()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_GamesPlayedIn();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getMinutesPlayedIn <em>Minutes Played In</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Minutes Played In</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getMinutesPlayedIn()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_MinutesPlayedIn();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainstAverage <em>Goals Against Average</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Goals Against Average</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainstAverage()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_GoalsAgainstAverage();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getWins <em>Wins</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Wins</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getWins()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Wins();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getLosses <em>Losses</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Losses</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getLosses()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Losses();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTies <em>Ties</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Ties</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getTies()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Ties();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getEmptyNetGoals <em>Empty Net Goals</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Empty Net Goals</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getEmptyNetGoals()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_EmptyNetGoals();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getShutouts <em>Shutouts</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Shutouts</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getShutouts()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Shutouts();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainst <em>Goals Against</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Goals Against</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoalsAgainst()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_GoalsAgainst();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getSaves <em>Saves</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Saves</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getSaves()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Saves();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPenaltyMinutes <em>Penalty Minutes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Penalty Minutes</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPenaltyMinutes()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_PenaltyMinutes();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoals <em>Goals</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Goals</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getGoals()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Goals();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getAssists <em>Assists</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Assists</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getAssists()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Assists();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPoints <em>Points</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Points</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats#getPoints()
-	 * @see #getGoalieStats()
-	 * @generated
-	 */
-	EAttribute getGoalieStats_Points();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject <em>Object</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Object</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject
-	 * @generated
-	 */
-	EClass getHockeyleagueObject();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject#getName <em>Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Name</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject#getName()
-	 * @see #getHockeyleagueObject()
-	 * @generated
-	 */
-	EAttribute getHockeyleagueObject_Name();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League <em>League</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>League</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League
-	 * @generated
-	 */
-	EClass getLeague();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League#getHeadoffice <em>Headoffice</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Headoffice</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League#getHeadoffice()
-	 * @see #getLeague()
-	 * @generated
-	 */
-	EAttribute getLeague_Headoffice();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League#getTeams <em>Teams</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Teams</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League#getTeams()
-	 * @see #getLeague()
-	 * @generated
-	 */
-	EReference getLeague_Teams();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player <em>Player</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Player</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player
-	 * @generated
-	 */
-	EClass getPlayer();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthplace <em>Birthplace</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Birthplace</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthplace()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_Birthplace();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getNumber <em>Number</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Number</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getNumber()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_Number();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightMesurement <em>Height Mesurement</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Height Mesurement</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightMesurement()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_HeightMesurement();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightValue <em>Height Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Height Value</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightValue()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_HeightValue();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightMesurement <em>Weight Mesurement</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Weight Mesurement</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightMesurement()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_WeightMesurement();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightValue <em>Weight Value</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Weight Value</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightValue()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_WeightValue();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getShot <em>Shot</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Shot</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getShot()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_Shot();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthdate <em>Birthdate</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Birthdate</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthdate()
-	 * @see #getPlayer()
-	 * @generated
-	 */
-	EAttribute getPlayer_Birthdate();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats <em>Player Stats</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Player Stats</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats
-	 * @generated
-	 */
-	EClass getPlayerStats();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getYear <em>Year</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Year</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getYear()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_Year();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getTeam <em>Team</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Team</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getTeam()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EReference getPlayerStats_Team();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGamesPlayedIn <em>Games Played In</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Games Played In</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGamesPlayedIn()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_GamesPlayedIn();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGoals <em>Goals</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Goals</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGoals()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_Goals();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getAssists <em>Assists</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Assists</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getAssists()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_Assists();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPoints <em>Points</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Points</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPoints()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_Points();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPlusMinus <em>Plus Minus</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Plus Minus</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPlusMinus()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_PlusMinus();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPenaltyMinutes <em>Penalty Minutes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Penalty Minutes</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPenaltyMinutes()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_PenaltyMinutes();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPowerPlayGoals <em>Power Play Goals</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Power Play Goals</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPowerPlayGoals()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_PowerPlayGoals();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShortHandedGoals <em>Short Handed Goals</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Short Handed Goals</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShortHandedGoals()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_ShortHandedGoals();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGameWinningGoals <em>Game Winning Goals</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Game Winning Goals</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGameWinningGoals()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_GameWinningGoals();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShots <em>Shots</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Shots</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShots()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_Shots();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShotPercentage <em>Shot Percentage</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Shot Percentage</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShotPercentage()
-	 * @see #getPlayerStats()
-	 * @generated
-	 */
-	EAttribute getPlayerStats_ShotPercentage();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team <em>Team</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Team</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team
-	 * @generated
-	 */
-	EClass getTeam();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getForwards <em>Forwards</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Forwards</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getForwards()
-	 * @see #getTeam()
-	 * @generated
-	 */
-	EReference getTeam_Forwards();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getDefencemen <em>Defencemen</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Defencemen</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getDefencemen()
-	 * @see #getTeam()
-	 * @generated
-	 */
-	EReference getTeam_Defencemen();
-
-	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getGoalies <em>Goalies</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Goalies</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getGoalies()
-	 * @see #getTeam()
-	 * @generated
-	 */
-	EReference getTeam_Goalies();
-
-	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getArena <em>Arena</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Arena</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getArena()
-	 * @see #getTeam()
-	 * @generated
-	 */
-	EReference getTeam_Arena();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind <em>Defence Position Kind</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Defence Position Kind</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind
-	 * @generated
-	 */
-	EEnum getDefencePositionKind();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind <em>Forward Position Kind</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Forward Position Kind</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind
-	 * @generated
-	 */
-	EEnum getForwardPositionKind();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind <em>Height Kind</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Height Kind</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind
-	 * @generated
-	 */
-	EEnum getHeightKind();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind <em>Shot Kind</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Shot Kind</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind
-	 * @generated
-	 */
-	EEnum getShotKind();
-
-	/**
-	 * Returns the meta object for enum '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind <em>Weight Kind</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Weight Kind</em>'.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind
-	 * @generated
-	 */
-	EEnum getWeightKind();
-
-	/**
-	 * Returns the factory that creates the instances of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the factory that creates the instances of the model.
-	 * @generated
-	 */
-	HockeyleagueFactory getHockeyleagueFactory();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * Defines literals for the meta objects that represent
-	 * <ul>
-	 *   <li>each class,</li>
-	 *   <li>each feature of each class,</li>
-	 *   <li>each enum,</li>
-	 *   <li>and each data type</li>
-	 * </ul>
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	interface Literals {
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ArenaImpl <em>Arena</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ArenaImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getArena()
-		 * @generated
-		 */
-		EClass ARENA = eINSTANCE.getArena();
-
-		/**
-		 * The meta object literal for the '<em><b>Address</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ARENA__ADDRESS = eINSTANCE.getArena_Address();
-
-		/**
-		 * The meta object literal for the '<em><b>Capacity</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute ARENA__CAPACITY = eINSTANCE.getArena_Capacity();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.DefenceImpl <em>Defence</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.DefenceImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getDefence()
-		 * @generated
-		 */
-		EClass DEFENCE = eINSTANCE.getDefence();
-
-		/**
-		 * The meta object literal for the '<em><b>Position</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute DEFENCE__POSITION = eINSTANCE.getDefence_Position();
-
-		/**
-		 * The meta object literal for the '<em><b>Player Stats</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference DEFENCE__PLAYER_STATS = eINSTANCE.getDefence_PlayerStats();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ForwardImpl <em>Forward</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ForwardImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getForward()
-		 * @generated
-		 */
-		EClass FORWARD = eINSTANCE.getForward();
-
-		/**
-		 * The meta object literal for the '<em><b>Position</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute FORWARD__POSITION = eINSTANCE.getForward_Position();
-
-		/**
-		 * The meta object literal for the '<em><b>Player Stats</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference FORWARD__PLAYER_STATS = eINSTANCE.getForward_PlayerStats();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieImpl <em>Goalie</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getGoalie()
-		 * @generated
-		 */
-		EClass GOALIE = eINSTANCE.getGoalie();
-
-		/**
-		 * The meta object literal for the '<em><b>Goalie Stats</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference GOALIE__GOALIE_STATS = eINSTANCE.getGoalie_GoalieStats();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl <em>Goalie Stats</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getGoalieStats()
-		 * @generated
-		 */
-		EClass GOALIE_STATS = eINSTANCE.getGoalieStats();
-
-		/**
-		 * The meta object literal for the '<em><b>Year</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__YEAR = eINSTANCE.getGoalieStats_Year();
-
-		/**
-		 * The meta object literal for the '<em><b>Team</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference GOALIE_STATS__TEAM = eINSTANCE.getGoalieStats_Team();
-
-		/**
-		 * The meta object literal for the '<em><b>Games Played In</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__GAMES_PLAYED_IN = eINSTANCE.getGoalieStats_GamesPlayedIn();
-
-		/**
-		 * The meta object literal for the '<em><b>Minutes Played In</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__MINUTES_PLAYED_IN = eINSTANCE.getGoalieStats_MinutesPlayedIn();
-
-		/**
-		 * The meta object literal for the '<em><b>Goals Against Average</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__GOALS_AGAINST_AVERAGE = eINSTANCE.getGoalieStats_GoalsAgainstAverage();
-
-		/**
-		 * The meta object literal for the '<em><b>Wins</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__WINS = eINSTANCE.getGoalieStats_Wins();
-
-		/**
-		 * The meta object literal for the '<em><b>Losses</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__LOSSES = eINSTANCE.getGoalieStats_Losses();
-
-		/**
-		 * The meta object literal for the '<em><b>Ties</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__TIES = eINSTANCE.getGoalieStats_Ties();
-
-		/**
-		 * The meta object literal for the '<em><b>Empty Net Goals</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__EMPTY_NET_GOALS = eINSTANCE.getGoalieStats_EmptyNetGoals();
-
-		/**
-		 * The meta object literal for the '<em><b>Shutouts</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__SHUTOUTS = eINSTANCE.getGoalieStats_Shutouts();
-
-		/**
-		 * The meta object literal for the '<em><b>Goals Against</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__GOALS_AGAINST = eINSTANCE.getGoalieStats_GoalsAgainst();
-
-		/**
-		 * The meta object literal for the '<em><b>Saves</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__SAVES = eINSTANCE.getGoalieStats_Saves();
-
-		/**
-		 * The meta object literal for the '<em><b>Penalty Minutes</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__PENALTY_MINUTES = eINSTANCE.getGoalieStats_PenaltyMinutes();
-
-		/**
-		 * The meta object literal for the '<em><b>Goals</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__GOALS = eINSTANCE.getGoalieStats_Goals();
-
-		/**
-		 * The meta object literal for the '<em><b>Assists</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__ASSISTS = eINSTANCE.getGoalieStats_Assists();
-
-		/**
-		 * The meta object literal for the '<em><b>Points</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute GOALIE_STATS__POINTS = eINSTANCE.getGoalieStats_Points();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleagueObjectImpl <em>Object</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleagueObjectImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getHockeyleagueObject()
-		 * @generated
-		 */
-		EClass HOCKEYLEAGUE_OBJECT = eINSTANCE.getHockeyleagueObject();
-
-		/**
-		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute HOCKEYLEAGUE_OBJECT__NAME = eINSTANCE.getHockeyleagueObject_Name();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.LeagueImpl <em>League</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.LeagueImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getLeague()
-		 * @generated
-		 */
-		EClass LEAGUE = eINSTANCE.getLeague();
-
-		/**
-		 * The meta object literal for the '<em><b>Headoffice</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute LEAGUE__HEADOFFICE = eINSTANCE.getLeague_Headoffice();
-
-		/**
-		 * The meta object literal for the '<em><b>Teams</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference LEAGUE__TEAMS = eINSTANCE.getLeague_Teams();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl <em>Player</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getPlayer()
-		 * @generated
-		 */
-		EClass PLAYER = eINSTANCE.getPlayer();
-
-		/**
-		 * The meta object literal for the '<em><b>Birthplace</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__BIRTHPLACE = eINSTANCE.getPlayer_Birthplace();
-
-		/**
-		 * The meta object literal for the '<em><b>Number</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__NUMBER = eINSTANCE.getPlayer_Number();
-
-		/**
-		 * The meta object literal for the '<em><b>Height Mesurement</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__HEIGHT_MESUREMENT = eINSTANCE.getPlayer_HeightMesurement();
-
-		/**
-		 * The meta object literal for the '<em><b>Height Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__HEIGHT_VALUE = eINSTANCE.getPlayer_HeightValue();
-
-		/**
-		 * The meta object literal for the '<em><b>Weight Mesurement</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__WEIGHT_MESUREMENT = eINSTANCE.getPlayer_WeightMesurement();
-
-		/**
-		 * The meta object literal for the '<em><b>Weight Value</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__WEIGHT_VALUE = eINSTANCE.getPlayer_WeightValue();
-
-		/**
-		 * The meta object literal for the '<em><b>Shot</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__SHOT = eINSTANCE.getPlayer_Shot();
-
-		/**
-		 * The meta object literal for the '<em><b>Birthdate</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER__BIRTHDATE = eINSTANCE.getPlayer_Birthdate();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl <em>Player Stats</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getPlayerStats()
-		 * @generated
-		 */
-		EClass PLAYER_STATS = eINSTANCE.getPlayerStats();
-
-		/**
-		 * The meta object literal for the '<em><b>Year</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__YEAR = eINSTANCE.getPlayerStats_Year();
-
-		/**
-		 * The meta object literal for the '<em><b>Team</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PLAYER_STATS__TEAM = eINSTANCE.getPlayerStats_Team();
-
-		/**
-		 * The meta object literal for the '<em><b>Games Played In</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__GAMES_PLAYED_IN = eINSTANCE.getPlayerStats_GamesPlayedIn();
-
-		/**
-		 * The meta object literal for the '<em><b>Goals</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__GOALS = eINSTANCE.getPlayerStats_Goals();
-
-		/**
-		 * The meta object literal for the '<em><b>Assists</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__ASSISTS = eINSTANCE.getPlayerStats_Assists();
-
-		/**
-		 * The meta object literal for the '<em><b>Points</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__POINTS = eINSTANCE.getPlayerStats_Points();
-
-		/**
-		 * The meta object literal for the '<em><b>Plus Minus</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__PLUS_MINUS = eINSTANCE.getPlayerStats_PlusMinus();
-
-		/**
-		 * The meta object literal for the '<em><b>Penalty Minutes</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__PENALTY_MINUTES = eINSTANCE.getPlayerStats_PenaltyMinutes();
-
-		/**
-		 * The meta object literal for the '<em><b>Power Play Goals</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__POWER_PLAY_GOALS = eINSTANCE.getPlayerStats_PowerPlayGoals();
-
-		/**
-		 * The meta object literal for the '<em><b>Short Handed Goals</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__SHORT_HANDED_GOALS = eINSTANCE.getPlayerStats_ShortHandedGoals();
-
-		/**
-		 * The meta object literal for the '<em><b>Game Winning Goals</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__GAME_WINNING_GOALS = eINSTANCE.getPlayerStats_GameWinningGoals();
-
-		/**
-		 * The meta object literal for the '<em><b>Shots</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__SHOTS = eINSTANCE.getPlayerStats_Shots();
-
-		/**
-		 * The meta object literal for the '<em><b>Shot Percentage</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PLAYER_STATS__SHOT_PERCENTAGE = eINSTANCE.getPlayerStats_ShotPercentage();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl <em>Team</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getTeam()
-		 * @generated
-		 */
-		EClass TEAM = eINSTANCE.getTeam();
-
-		/**
-		 * The meta object literal for the '<em><b>Forwards</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TEAM__FORWARDS = eINSTANCE.getTeam_Forwards();
-
-		/**
-		 * The meta object literal for the '<em><b>Defencemen</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TEAM__DEFENCEMEN = eINSTANCE.getTeam_Defencemen();
-
-		/**
-		 * The meta object literal for the '<em><b>Goalies</b></em>' containment reference list feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TEAM__GOALIES = eINSTANCE.getTeam_Goalies();
-
-		/**
-		 * The meta object literal for the '<em><b>Arena</b></em>' containment reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference TEAM__ARENA = eINSTANCE.getTeam_Arena();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind <em>Defence Position Kind</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getDefencePositionKind()
-		 * @generated
-		 */
-		EEnum DEFENCE_POSITION_KIND = eINSTANCE.getDefencePositionKind();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind <em>Forward Position Kind</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getForwardPositionKind()
-		 * @generated
-		 */
-		EEnum FORWARD_POSITION_KIND = eINSTANCE.getForwardPositionKind();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind <em>Height Kind</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getHeightKind()
-		 * @generated
-		 */
-		EEnum HEIGHT_KIND = eINSTANCE.getHeightKind();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind <em>Shot Kind</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getShotKind()
-		 * @generated
-		 */
-		EEnum SHOT_KIND = eINSTANCE.getShotKind();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind <em>Weight Kind</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind
-		 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleaguePackageImpl#getWeightKind()
-		 * @generated
-		 */
-		EEnum WEIGHT_KIND = eINSTANCE.getWeightKind();
-
-	}
-
-} //HockeyleaguePackage
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePlugin.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePlugin.java
deleted file mode 100644
index c5753bf..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/HockeyleaguePlugin.java
+++ /dev/null
@@ -1,96 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.common.EMFPlugin;
-
-import org.eclipse.emf.common.util.ResourceLocator;
-
-/**
- * This is the central singleton for the Hockeyleague edit plugin.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public final class HockeyleaguePlugin extends EMFPlugin {
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final HockeyleaguePlugin INSTANCE = new HockeyleaguePlugin();
-
-	/**
-	 * Keep track of the singleton.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static Implementation plugin;
-
-	/**
-	 * Create the instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleaguePlugin() {
-		super
-		  (new ResourceLocator [] {
-		   });
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	public ResourceLocator getPluginResourceLocator() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the singleton instance of the Eclipse plugin.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the singleton instance.
-	 * @generated
-	 */
-	public static Implementation getPlugin() {
-		return plugin;
-	}
-
-	/**
-	 * The actual implementation of the Eclipse <b>Plugin</b>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static class Implementation extends EclipsePlugin {
-		/**
-		 * Creates an instance.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public Implementation() {
-			super();
-
-			// Remember the static instance.
-			//
-			plugin = this;
-		}
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/League.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/League.java
deleted file mode 100644
index e2c0fa2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/League.java
+++ /dev/null
@@ -1,75 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>League</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League#getHeadoffice <em>Headoffice</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League#getTeams <em>Teams</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getLeague()
- * @model
- * @generated
- */
-public interface League extends HockeyleagueObject {
-	/**
-	 * Returns the value of the '<em><b>Headoffice</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Headoffice</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Headoffice</em>' attribute.
-	 * @see #setHeadoffice(String)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getLeague_Headoffice()
-	 * @model
-	 * @generated
-	 */
-	String getHeadoffice();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League#getHeadoffice <em>Headoffice</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Headoffice</em>' attribute.
-	 * @see #getHeadoffice()
-	 * @generated
-	 */
-	void setHeadoffice(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Teams</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Teams</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Teams</em>' containment reference list.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getLeague_Teams()
-	 * @model type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team" containment="true"
-	 * @generated
-	 */
-	EList getTeams();
-
-} // League
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Player.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Player.java
deleted file mode 100644
index 7aa5045e..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Player.java
+++ /dev/null
@@ -1,255 +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.examples.views.properties.tabbed.hockeyleague;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Player</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthplace <em>Birthplace</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getNumber <em>Number</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightMesurement <em>Height Mesurement</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightValue <em>Height Value</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightMesurement <em>Weight Mesurement</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightValue <em>Weight Value</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getShot <em>Shot</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthdate <em>Birthdate</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer()
- * @model abstract="true"
- * @generated
- */
-public interface Player extends HockeyleagueObject {
-	/**
-	 * Returns the value of the '<em><b>Birthplace</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Birthplace</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Birthplace</em>' attribute.
-	 * @see #setBirthplace(String)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_Birthplace()
-	 * @model
-	 * @generated
-	 */
-	String getBirthplace();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthplace <em>Birthplace</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Birthplace</em>' attribute.
-	 * @see #getBirthplace()
-	 * @generated
-	 */
-	void setBirthplace(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Number</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Number</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Number</em>' attribute.
-	 * @see #setNumber(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_Number()
-	 * @model
-	 * @generated
-	 */
-	int getNumber();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getNumber <em>Number</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Number</em>' attribute.
-	 * @see #getNumber()
-	 * @generated
-	 */
-	void setNumber(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Height Mesurement</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Height Mesurement</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Height Mesurement</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind
-	 * @see #setHeightMesurement(HeightKind)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_HeightMesurement()
-	 * @model
-	 * @generated
-	 */
-	HeightKind getHeightMesurement();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightMesurement <em>Height Mesurement</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Height Mesurement</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind
-	 * @see #getHeightMesurement()
-	 * @generated
-	 */
-	void setHeightMesurement(HeightKind value);
-
-	/**
-	 * Returns the value of the '<em><b>Height Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Height Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Height Value</em>' attribute.
-	 * @see #setHeightValue(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_HeightValue()
-	 * @model
-	 * @generated
-	 */
-	int getHeightValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getHeightValue <em>Height Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Height Value</em>' attribute.
-	 * @see #getHeightValue()
-	 * @generated
-	 */
-	void setHeightValue(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Weight Mesurement</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Weight Mesurement</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Weight Mesurement</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind
-	 * @see #setWeightMesurement(WeightKind)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_WeightMesurement()
-	 * @model
-	 * @generated
-	 */
-	WeightKind getWeightMesurement();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightMesurement <em>Weight Mesurement</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Weight Mesurement</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind
-	 * @see #getWeightMesurement()
-	 * @generated
-	 */
-	void setWeightMesurement(WeightKind value);
-
-	/**
-	 * Returns the value of the '<em><b>Weight Value</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Weight Value</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Weight Value</em>' attribute.
-	 * @see #setWeightValue(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_WeightValue()
-	 * @model
-	 * @generated
-	 */
-	int getWeightValue();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getWeightValue <em>Weight Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Weight Value</em>' attribute.
-	 * @see #getWeightValue()
-	 * @generated
-	 */
-	void setWeightValue(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Shot</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Shot</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Shot</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind
-	 * @see #setShot(ShotKind)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_Shot()
-	 * @model
-	 * @generated
-	 */
-	ShotKind getShot();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getShot <em>Shot</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Shot</em>' attribute.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind
-	 * @see #getShot()
-	 * @generated
-	 */
-	void setShot(ShotKind value);
-
-	/**
-	 * Returns the value of the '<em><b>Birthdate</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Birthdate</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Birthdate</em>' attribute.
-	 * @see #setBirthdate(String)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayer_Birthdate()
-	 * @model
-	 * @generated
-	 */
-	String getBirthdate();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player#getBirthdate <em>Birthdate</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Birthdate</em>' attribute.
-	 * @see #getBirthdate()
-	 * @generated
-	 */
-	void setBirthdate(String value);
-
-} // Player
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/PlayerStats.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/PlayerStats.java
deleted file mode 100644
index 545f5c2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/PlayerStats.java
+++ /dev/null
@@ -1,382 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Player Stats</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getYear <em>Year</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getTeam <em>Team</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGamesPlayedIn <em>Games Played In</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGoals <em>Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getAssists <em>Assists</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPoints <em>Points</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPlusMinus <em>Plus Minus</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPenaltyMinutes <em>Penalty Minutes</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPowerPlayGoals <em>Power Play Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShortHandedGoals <em>Short Handed Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGameWinningGoals <em>Game Winning Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShots <em>Shots</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShotPercentage <em>Shot Percentage</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats()
- * @model
- * @generated
- */
-public interface PlayerStats extends EObject {
-	/**
-	 * Returns the value of the '<em><b>Year</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Year</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Year</em>' attribute.
-	 * @see #setYear(String)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_Year()
-	 * @model
-	 * @generated
-	 */
-	String getYear();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getYear <em>Year</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Year</em>' attribute.
-	 * @see #getYear()
-	 * @generated
-	 */
-	void setYear(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Team</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Team</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Team</em>' reference.
-	 * @see #setTeam(Team)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_Team()
-	 * @model
-	 * @generated
-	 */
-	Team getTeam();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getTeam <em>Team</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Team</em>' reference.
-	 * @see #getTeam()
-	 * @generated
-	 */
-	void setTeam(Team value);
-
-	/**
-	 * Returns the value of the '<em><b>Games Played In</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Games Played In</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Games Played In</em>' attribute.
-	 * @see #setGamesPlayedIn(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_GamesPlayedIn()
-	 * @model
-	 * @generated
-	 */
-	int getGamesPlayedIn();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGamesPlayedIn <em>Games Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Games Played In</em>' attribute.
-	 * @see #getGamesPlayedIn()
-	 * @generated
-	 */
-	void setGamesPlayedIn(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Goals</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Goals</em>' attribute.
-	 * @see #setGoals(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_Goals()
-	 * @model
-	 * @generated
-	 */
-	int getGoals();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGoals <em>Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Goals</em>' attribute.
-	 * @see #getGoals()
-	 * @generated
-	 */
-	void setGoals(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Assists</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Assists</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Assists</em>' attribute.
-	 * @see #setAssists(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_Assists()
-	 * @model
-	 * @generated
-	 */
-	int getAssists();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getAssists <em>Assists</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Assists</em>' attribute.
-	 * @see #getAssists()
-	 * @generated
-	 */
-	void setAssists(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Points</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Points</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Points</em>' attribute.
-	 * @see #setPoints(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_Points()
-	 * @model
-	 * @generated
-	 */
-	int getPoints();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPoints <em>Points</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Points</em>' attribute.
-	 * @see #getPoints()
-	 * @generated
-	 */
-	void setPoints(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Plus Minus</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Plus Minus</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Plus Minus</em>' attribute.
-	 * @see #setPlusMinus(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_PlusMinus()
-	 * @model
-	 * @generated
-	 */
-	int getPlusMinus();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPlusMinus <em>Plus Minus</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Plus Minus</em>' attribute.
-	 * @see #getPlusMinus()
-	 * @generated
-	 */
-	void setPlusMinus(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Penalty Minutes</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Penalty Minutes</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Penalty Minutes</em>' attribute.
-	 * @see #setPenaltyMinutes(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_PenaltyMinutes()
-	 * @model
-	 * @generated
-	 */
-	int getPenaltyMinutes();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPenaltyMinutes <em>Penalty Minutes</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Penalty Minutes</em>' attribute.
-	 * @see #getPenaltyMinutes()
-	 * @generated
-	 */
-	void setPenaltyMinutes(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Power Play Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Power Play Goals</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Power Play Goals</em>' attribute.
-	 * @see #setPowerPlayGoals(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_PowerPlayGoals()
-	 * @model
-	 * @generated
-	 */
-	int getPowerPlayGoals();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getPowerPlayGoals <em>Power Play Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Power Play Goals</em>' attribute.
-	 * @see #getPowerPlayGoals()
-	 * @generated
-	 */
-	void setPowerPlayGoals(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Short Handed Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Short Handed Goals</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Short Handed Goals</em>' attribute.
-	 * @see #setShortHandedGoals(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_ShortHandedGoals()
-	 * @model
-	 * @generated
-	 */
-	int getShortHandedGoals();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShortHandedGoals <em>Short Handed Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Short Handed Goals</em>' attribute.
-	 * @see #getShortHandedGoals()
-	 * @generated
-	 */
-	void setShortHandedGoals(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Game Winning Goals</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Game Winning Goals</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Game Winning Goals</em>' attribute.
-	 * @see #setGameWinningGoals(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_GameWinningGoals()
-	 * @model
-	 * @generated
-	 */
-	int getGameWinningGoals();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getGameWinningGoals <em>Game Winning Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Game Winning Goals</em>' attribute.
-	 * @see #getGameWinningGoals()
-	 * @generated
-	 */
-	void setGameWinningGoals(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Shots</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Shots</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Shots</em>' attribute.
-	 * @see #setShots(int)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_Shots()
-	 * @model
-	 * @generated
-	 */
-	int getShots();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShots <em>Shots</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Shots</em>' attribute.
-	 * @see #getShots()
-	 * @generated
-	 */
-	void setShots(int value);
-
-	/**
-	 * Returns the value of the '<em><b>Shot Percentage</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Shot Percentage</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Shot Percentage</em>' attribute.
-	 * @see #setShotPercentage(float)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getPlayerStats_ShotPercentage()
-	 * @model
-	 * @generated
-	 */
-	float getShotPercentage();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats#getShotPercentage <em>Shot Percentage</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Shot Percentage</em>' attribute.
-	 * @see #getShotPercentage()
-	 * @generated
-	 */
-	void setShotPercentage(float value);
-
-} // PlayerStats
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ShotKind.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ShotKind.java
deleted file mode 100644
index 84ac4e0..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ShotKind.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Shot Kind</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getShotKind()
- * @model
- * @generated
- */
-public final class ShotKind extends AbstractEnumerator {
-	/**
-	 * The '<em><b>Left</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Left</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #LEFT_LITERAL
-	 * @model name="left"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int LEFT = 0;
-
-	/**
-	 * The '<em><b>Right</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Right</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #RIGHT_LITERAL
-	 * @model name="right"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int RIGHT = 1;
-
-	/**
-	 * The '<em><b>Left</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #LEFT
-	 * @generated
-	 * @ordered
-	 */
-	public static final ShotKind LEFT_LITERAL = new ShotKind(LEFT, "left", "left"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Right</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #RIGHT
-	 * @generated
-	 * @ordered
-	 */
-	public static final ShotKind RIGHT_LITERAL = new ShotKind(RIGHT, "right", "right"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * An array of all the '<em><b>Shot Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final ShotKind[] VALUES_ARRAY =
-		new ShotKind[] {
-			LEFT_LITERAL,
-			RIGHT_LITERAL,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Shot Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Shot Kind</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ShotKind get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ShotKind result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Shot Kind</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ShotKind getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			ShotKind result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Shot Kind</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static ShotKind get(int value) {
-		switch (value) {
-			case LEFT: return LEFT_LITERAL;
-			case RIGHT: return RIGHT_LITERAL;
-		}
-		return null;
-	}
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private ShotKind(int value, String name, String literal) {
-		super(value, name, literal);
-	}
-
-} //ShotKind
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Team.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Team.java
deleted file mode 100644
index 41f59e2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/Team.java
+++ /dev/null
@@ -1,109 +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.examples.views.properties.tabbed.hockeyleague;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Team</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getForwards <em>Forwards</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getDefencemen <em>Defencemen</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getGoalies <em>Goalies</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getArena <em>Arena</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getTeam()
- * @model
- * @generated
- */
-public interface Team extends HockeyleagueObject {
-	/**
-	 * Returns the value of the '<em><b>Forwards</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Forwards</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Forwards</em>' containment reference list.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getTeam_Forwards()
-	 * @model type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward" containment="true"
-	 * @generated
-	 */
-	EList getForwards();
-
-	/**
-	 * Returns the value of the '<em><b>Defencemen</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Defencemen</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Defencemen</em>' containment reference list.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getTeam_Defencemen()
-	 * @model type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence" containment="true"
-	 * @generated
-	 */
-	EList getDefencemen();
-
-	/**
-	 * Returns the value of the '<em><b>Goalies</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Goalies</em>' containment reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Goalies</em>' containment reference list.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getTeam_Goalies()
-	 * @model type="org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie" containment="true"
-	 * @generated
-	 */
-	EList getGoalies();
-
-	/**
-	 * Returns the value of the '<em><b>Arena</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Arena</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Arena</em>' containment reference.
-	 * @see #setArena(Arena)
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getTeam_Arena()
-	 * @model containment="true"
-	 * @generated
-	 */
-	Arena getArena();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team#getArena <em>Arena</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Arena</em>' containment reference.
-	 * @see #getArena()
-	 * @generated
-	 */
-	void setArena(Arena value);
-
-} // Team
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/WeightKind.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/WeightKind.java
deleted file mode 100644
index c9b0f12..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/WeightKind.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.AbstractEnumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>Weight Kind</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#getWeightKind()
- * @model
- * @generated
- */
-public final class WeightKind extends AbstractEnumerator {
-	/**
-	 * The '<em><b>Pounds</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Pounds</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #POUNDS_LITERAL
-	 * @model name="pounds"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int POUNDS = 0;
-
-	/**
-	 * The '<em><b>Kilograms</b></em>' literal value.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of '<em><b>Kilograms</b></em>' literal object isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @see #KILOGRAMS_LITERAL
-	 * @model name="kilograms"
-	 * @generated
-	 * @ordered
-	 */
-	public static final int KILOGRAMS = 1;
-
-	/**
-	 * The '<em><b>Pounds</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #POUNDS
-	 * @generated
-	 * @ordered
-	 */
-	public static final WeightKind POUNDS_LITERAL = new WeightKind(POUNDS, "pounds", "pounds"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * The '<em><b>Kilograms</b></em>' literal object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #KILOGRAMS
-	 * @generated
-	 * @ordered
-	 */
-	public static final WeightKind KILOGRAMS_LITERAL = new WeightKind(KILOGRAMS, "kilograms", "kilograms"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	/**
-	 * An array of all the '<em><b>Weight Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static final WeightKind[] VALUES_ARRAY =
-		new WeightKind[] {
-			POUNDS_LITERAL,
-			KILOGRAMS_LITERAL,
-		};
-
-	/**
-	 * A public read-only list of all the '<em><b>Weight Kind</b></em>' enumerators.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-	/**
-	 * Returns the '<em><b>Weight Kind</b></em>' literal with the specified literal value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static WeightKind get(String literal) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			WeightKind result = VALUES_ARRAY[i];
-			if (result.toString().equals(literal)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Weight Kind</b></em>' literal with the specified name.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static WeightKind getByName(String name) {
-		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-			WeightKind result = VALUES_ARRAY[i];
-			if (result.getName().equals(name)) {
-				return result;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the '<em><b>Weight Kind</b></em>' literal with the specified integer value.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static WeightKind get(int value) {
-		switch (value) {
-			case POUNDS: return POUNDS_LITERAL;
-			case KILOGRAMS: return KILOGRAMS_LITERAL;
-		}
-		return null;
-	}
-
-	/**
-	 * Only this class can construct instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private WeightKind(int value, String name, String literal) {
-		super(value, name, literal);
-	}
-
-} //WeightKind
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ArenaImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ArenaImpl.java
deleted file mode 100644
index c8d2d4c..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ArenaImpl.java
+++ /dev/null
@@ -1,218 +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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Arena</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ArenaImpl#getAddress <em>Address</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ArenaImpl#getCapacity <em>Capacity</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ArenaImpl extends HockeyleagueObjectImpl implements Arena {
-	/**
-	 * The default value of the '{@link #getAddress() <em>Address</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAddress()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String ADDRESS_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getAddress() <em>Address</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAddress()
-	 * @generated
-	 * @ordered
-	 */
-	protected String address = ADDRESS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getCapacity() <em>Capacity</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCapacity()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int CAPACITY_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getCapacity() <em>Capacity</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getCapacity()
-	 * @generated
-	 * @ordered
-	 */
-	protected int capacity = CAPACITY_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ArenaImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.ARENA;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getAddress() {
-		return address;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAddress(String newAddress) {
-		String oldAddress = address;
-		address = newAddress;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.ARENA__ADDRESS, oldAddress, address));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getCapacity() {
-		return capacity;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCapacity(int newCapacity) {
-		int oldCapacity = capacity;
-		capacity = newCapacity;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.ARENA__CAPACITY, oldCapacity, capacity));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.ARENA__ADDRESS:
-				return getAddress();
-			case HockeyleaguePackage.ARENA__CAPACITY:
-				return new Integer(getCapacity());
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.ARENA__ADDRESS:
-				setAddress((String)newValue);
-				return;
-			case HockeyleaguePackage.ARENA__CAPACITY:
-				setCapacity(((Integer)newValue).intValue());
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.ARENA__ADDRESS:
-				setAddress(ADDRESS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.ARENA__CAPACITY:
-				setCapacity(CAPACITY_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.ARENA__ADDRESS:
-				return ADDRESS_EDEFAULT == null ? address != null : !ADDRESS_EDEFAULT.equals(address);
-			case HockeyleaguePackage.ARENA__CAPACITY:
-				return capacity != CAPACITY_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (address: "); //$NON-NLS-1$
-		result.append(address);
-		result.append(", capacity: "); //$NON-NLS-1$
-		result.append(capacity);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ArenaImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/DefenceImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/DefenceImpl.java
deleted file mode 100644
index c436c52..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/DefenceImpl.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Defence</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.DefenceImpl#getPosition <em>Position</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.DefenceImpl#getPlayerStats <em>Player Stats</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class DefenceImpl extends PlayerImpl implements Defence {
-	/**
-	 * The default value of the '{@link #getPosition() <em>Position</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPosition()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final DefencePositionKind POSITION_EDEFAULT = DefencePositionKind.LEFT_DEFENCE_LITERAL;
-
-	/**
-	 * The cached value of the '{@link #getPosition() <em>Position</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPosition()
-	 * @generated
-	 * @ordered
-	 */
-	protected DefencePositionKind position = POSITION_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getPlayerStats() <em>Player Stats</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPlayerStats()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList playerStats;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DefenceImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.DEFENCE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DefencePositionKind getPosition() {
-		return position;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPosition(DefencePositionKind newPosition) {
-		DefencePositionKind oldPosition = position;
-		position = newPosition == null ? POSITION_EDEFAULT : newPosition;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.DEFENCE__POSITION, oldPosition, position));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getPlayerStats() {
-		if (playerStats == null) {
-			playerStats = new EObjectContainmentEList(PlayerStats.class, this, HockeyleaguePackage.DEFENCE__PLAYER_STATS);
-		}
-		return playerStats;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case HockeyleaguePackage.DEFENCE__PLAYER_STATS:
-				return ((InternalEList)getPlayerStats()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.DEFENCE__POSITION:
-				return getPosition();
-			case HockeyleaguePackage.DEFENCE__PLAYER_STATS:
-				return getPlayerStats();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.DEFENCE__POSITION:
-				setPosition((DefencePositionKind)newValue);
-				return;
-			case HockeyleaguePackage.DEFENCE__PLAYER_STATS:
-				getPlayerStats().clear();
-				getPlayerStats().addAll((Collection)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.DEFENCE__POSITION:
-				setPosition(POSITION_EDEFAULT);
-				return;
-			case HockeyleaguePackage.DEFENCE__PLAYER_STATS:
-				getPlayerStats().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.DEFENCE__POSITION:
-				return position != POSITION_EDEFAULT;
-			case HockeyleaguePackage.DEFENCE__PLAYER_STATS:
-				return playerStats != null && !playerStats.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (position: "); //$NON-NLS-1$
-		result.append(position);
-		result.append(')');
-		return result.toString();
-	}
-
-} //DefenceImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ForwardImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ForwardImpl.java
deleted file mode 100644
index 91d248a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/ForwardImpl.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Forward</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ForwardImpl#getPosition <em>Position</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.ForwardImpl#getPlayerStats <em>Player Stats</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ForwardImpl extends PlayerImpl implements Forward {
-	/**
-	 * The default value of the '{@link #getPosition() <em>Position</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPosition()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final ForwardPositionKind POSITION_EDEFAULT = ForwardPositionKind.LEFT_WING_LITERAL;
-
-	/**
-	 * The cached value of the '{@link #getPosition() <em>Position</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPosition()
-	 * @generated
-	 * @ordered
-	 */
-	protected ForwardPositionKind position = POSITION_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getPlayerStats() <em>Player Stats</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPlayerStats()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList playerStats;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ForwardImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.FORWARD;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ForwardPositionKind getPosition() {
-		return position;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPosition(ForwardPositionKind newPosition) {
-		ForwardPositionKind oldPosition = position;
-		position = newPosition == null ? POSITION_EDEFAULT : newPosition;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.FORWARD__POSITION, oldPosition, position));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getPlayerStats() {
-		if (playerStats == null) {
-			playerStats = new EObjectContainmentEList(PlayerStats.class, this, HockeyleaguePackage.FORWARD__PLAYER_STATS);
-		}
-		return playerStats;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case HockeyleaguePackage.FORWARD__PLAYER_STATS:
-				return ((InternalEList)getPlayerStats()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.FORWARD__POSITION:
-				return getPosition();
-			case HockeyleaguePackage.FORWARD__PLAYER_STATS:
-				return getPlayerStats();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.FORWARD__POSITION:
-				setPosition((ForwardPositionKind)newValue);
-				return;
-			case HockeyleaguePackage.FORWARD__PLAYER_STATS:
-				getPlayerStats().clear();
-				getPlayerStats().addAll((Collection)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.FORWARD__POSITION:
-				setPosition(POSITION_EDEFAULT);
-				return;
-			case HockeyleaguePackage.FORWARD__PLAYER_STATS:
-				getPlayerStats().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.FORWARD__POSITION:
-				return position != POSITION_EDEFAULT;
-			case HockeyleaguePackage.FORWARD__PLAYER_STATS:
-				return playerStats != null && !playerStats.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (position: "); //$NON-NLS-1$
-		result.append(position);
-		result.append(')');
-		return result.toString();
-	}
-
-} //ForwardImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieImpl.java
deleted file mode 100644
index 4760ad2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieImpl.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Goalie</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieImpl#getGoalieStats <em>Goalie Stats</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class GoalieImpl extends PlayerImpl implements Goalie {
-	/**
-	 * The cached value of the '{@link #getGoalieStats() <em>Goalie Stats</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoalieStats()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList goalieStats;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GoalieImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.GOALIE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getGoalieStats() {
-		if (goalieStats == null) {
-			goalieStats = new EObjectContainmentEList(GoalieStats.class, this, HockeyleaguePackage.GOALIE__GOALIE_STATS);
-		}
-		return goalieStats;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE__GOALIE_STATS:
-				return ((InternalEList)getGoalieStats()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE__GOALIE_STATS:
-				return getGoalieStats();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE__GOALIE_STATS:
-				getGoalieStats().clear();
-				getGoalieStats().addAll((Collection)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE__GOALIE_STATS:
-				getGoalieStats().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE__GOALIE_STATS:
-				return goalieStats != null && !goalieStats.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //GoalieImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieStatsImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieStatsImpl.java
deleted file mode 100644
index 8cf8a18..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/GoalieStatsImpl.java
+++ /dev/null
@@ -1,983 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Goalie Stats</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getYear <em>Year</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getTeam <em>Team</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getGamesPlayedIn <em>Games Played In</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getMinutesPlayedIn <em>Minutes Played In</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getGoalsAgainstAverage <em>Goals Against Average</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getWins <em>Wins</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getLosses <em>Losses</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getTies <em>Ties</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getEmptyNetGoals <em>Empty Net Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getShutouts <em>Shutouts</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getGoalsAgainst <em>Goals Against</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getSaves <em>Saves</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getPenaltyMinutes <em>Penalty Minutes</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getGoals <em>Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getAssists <em>Assists</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.GoalieStatsImpl#getPoints <em>Points</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class GoalieStatsImpl extends EObjectImpl implements GoalieStats {
-	/**
-	 * The default value of the '{@link #getYear() <em>Year</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getYear()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String YEAR_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getYear() <em>Year</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getYear()
-	 * @generated
-	 * @ordered
-	 */
-	protected String year = YEAR_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getTeam() <em>Team</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTeam()
-	 * @generated
-	 * @ordered
-	 */
-	protected Team team;
-
-	/**
-	 * The default value of the '{@link #getGamesPlayedIn() <em>Games Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGamesPlayedIn()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int GAMES_PLAYED_IN_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getGamesPlayedIn() <em>Games Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGamesPlayedIn()
-	 * @generated
-	 * @ordered
-	 */
-	protected int gamesPlayedIn = GAMES_PLAYED_IN_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getMinutesPlayedIn() <em>Minutes Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMinutesPlayedIn()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int MINUTES_PLAYED_IN_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getMinutesPlayedIn() <em>Minutes Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMinutesPlayedIn()
-	 * @generated
-	 * @ordered
-	 */
-	protected int minutesPlayedIn = MINUTES_PLAYED_IN_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getGoalsAgainstAverage() <em>Goals Against Average</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoalsAgainstAverage()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final float GOALS_AGAINST_AVERAGE_EDEFAULT = 0.0F;
-
-	/**
-	 * The cached value of the '{@link #getGoalsAgainstAverage() <em>Goals Against Average</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoalsAgainstAverage()
-	 * @generated
-	 * @ordered
-	 */
-	protected float goalsAgainstAverage = GOALS_AGAINST_AVERAGE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getWins() <em>Wins</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWins()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int WINS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getWins() <em>Wins</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWins()
-	 * @generated
-	 * @ordered
-	 */
-	protected int wins = WINS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getLosses() <em>Losses</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLosses()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int LOSSES_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getLosses() <em>Losses</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLosses()
-	 * @generated
-	 * @ordered
-	 */
-	protected int losses = LOSSES_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getTies() <em>Ties</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTies()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int TIES_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getTies() <em>Ties</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTies()
-	 * @generated
-	 * @ordered
-	 */
-	protected int ties = TIES_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getEmptyNetGoals() <em>Empty Net Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEmptyNetGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int EMPTY_NET_GOALS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getEmptyNetGoals() <em>Empty Net Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getEmptyNetGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected int emptyNetGoals = EMPTY_NET_GOALS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getShutouts() <em>Shutouts</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShutouts()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int SHUTOUTS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getShutouts() <em>Shutouts</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShutouts()
-	 * @generated
-	 * @ordered
-	 */
-	protected int shutouts = SHUTOUTS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getGoalsAgainst() <em>Goals Against</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoalsAgainst()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int GOALS_AGAINST_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getGoalsAgainst() <em>Goals Against</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoalsAgainst()
-	 * @generated
-	 * @ordered
-	 */
-	protected int goalsAgainst = GOALS_AGAINST_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getSaves() <em>Saves</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSaves()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int SAVES_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getSaves() <em>Saves</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getSaves()
-	 * @generated
-	 * @ordered
-	 */
-	protected int saves = SAVES_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPenaltyMinutes() <em>Penalty Minutes</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPenaltyMinutes()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int PENALTY_MINUTES_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getPenaltyMinutes() <em>Penalty Minutes</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPenaltyMinutes()
-	 * @generated
-	 * @ordered
-	 */
-	protected int penaltyMinutes = PENALTY_MINUTES_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getGoals() <em>Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int GOALS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getGoals() <em>Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected int goals = GOALS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getAssists() <em>Assists</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAssists()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int ASSISTS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getAssists() <em>Assists</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAssists()
-	 * @generated
-	 * @ordered
-	 */
-	protected int assists = ASSISTS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPoints() <em>Points</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPoints()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int POINTS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getPoints() <em>Points</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPoints()
-	 * @generated
-	 * @ordered
-	 */
-	protected int points = POINTS_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GoalieStatsImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.GOALIE_STATS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getYear() {
-		return year;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setYear(String newYear) {
-		String oldYear = year;
-		year = newYear;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__YEAR, oldYear, year));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Team getTeam() {
-		if (team != null && team.eIsProxy()) {
-			InternalEObject oldTeam = (InternalEObject)team;
-			team = (Team)eResolveProxy(oldTeam);
-			if (team != oldTeam) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, HockeyleaguePackage.GOALIE_STATS__TEAM, oldTeam, team));
-			}
-		}
-		return team;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Team basicGetTeam() {
-		return team;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setTeam(Team newTeam) {
-		Team oldTeam = team;
-		team = newTeam;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__TEAM, oldTeam, team));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getGamesPlayedIn() {
-		return gamesPlayedIn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGamesPlayedIn(int newGamesPlayedIn) {
-		int oldGamesPlayedIn = gamesPlayedIn;
-		gamesPlayedIn = newGamesPlayedIn;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__GAMES_PLAYED_IN, oldGamesPlayedIn, gamesPlayedIn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getMinutesPlayedIn() {
-		return minutesPlayedIn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setMinutesPlayedIn(int newMinutesPlayedIn) {
-		int oldMinutesPlayedIn = minutesPlayedIn;
-		minutesPlayedIn = newMinutesPlayedIn;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__MINUTES_PLAYED_IN, oldMinutesPlayedIn, minutesPlayedIn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public float getGoalsAgainstAverage() {
-		return goalsAgainstAverage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGoalsAgainstAverage(float newGoalsAgainstAverage) {
-		float oldGoalsAgainstAverage = goalsAgainstAverage;
-		goalsAgainstAverage = newGoalsAgainstAverage;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST_AVERAGE, oldGoalsAgainstAverage, goalsAgainstAverage));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getWins() {
-		return wins;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setWins(int newWins) {
-		int oldWins = wins;
-		wins = newWins;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__WINS, oldWins, wins));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getLosses() {
-		return losses;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setLosses(int newLosses) {
-		int oldLosses = losses;
-		losses = newLosses;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__LOSSES, oldLosses, losses));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getTies() {
-		return ties;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setTies(int newTies) {
-		int oldTies = ties;
-		ties = newTies;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__TIES, oldTies, ties));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getEmptyNetGoals() {
-		return emptyNetGoals;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setEmptyNetGoals(int newEmptyNetGoals) {
-		int oldEmptyNetGoals = emptyNetGoals;
-		emptyNetGoals = newEmptyNetGoals;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__EMPTY_NET_GOALS, oldEmptyNetGoals, emptyNetGoals));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getShutouts() {
-		return shutouts;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setShutouts(int newShutouts) {
-		int oldShutouts = shutouts;
-		shutouts = newShutouts;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__SHUTOUTS, oldShutouts, shutouts));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getGoalsAgainst() {
-		return goalsAgainst;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGoalsAgainst(int newGoalsAgainst) {
-		int oldGoalsAgainst = goalsAgainst;
-		goalsAgainst = newGoalsAgainst;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST, oldGoalsAgainst, goalsAgainst));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getSaves() {
-		return saves;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSaves(int newSaves) {
-		int oldSaves = saves;
-		saves = newSaves;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__SAVES, oldSaves, saves));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getPenaltyMinutes() {
-		return penaltyMinutes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPenaltyMinutes(int newPenaltyMinutes) {
-		int oldPenaltyMinutes = penaltyMinutes;
-		penaltyMinutes = newPenaltyMinutes;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__PENALTY_MINUTES, oldPenaltyMinutes, penaltyMinutes));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getGoals() {
-		return goals;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGoals(int newGoals) {
-		int oldGoals = goals;
-		goals = newGoals;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__GOALS, oldGoals, goals));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getAssists() {
-		return assists;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAssists(int newAssists) {
-		int oldAssists = assists;
-		assists = newAssists;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__ASSISTS, oldAssists, assists));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getPoints() {
-		return points;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPoints(int newPoints) {
-		int oldPoints = points;
-		points = newPoints;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.GOALIE_STATS__POINTS, oldPoints, points));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE_STATS__YEAR:
-				return getYear();
-			case HockeyleaguePackage.GOALIE_STATS__TEAM:
-				if (resolve) return getTeam();
-				return basicGetTeam();
-			case HockeyleaguePackage.GOALIE_STATS__GAMES_PLAYED_IN:
-				return new Integer(getGamesPlayedIn());
-			case HockeyleaguePackage.GOALIE_STATS__MINUTES_PLAYED_IN:
-				return new Integer(getMinutesPlayedIn());
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST_AVERAGE:
-				return new Float(getGoalsAgainstAverage());
-			case HockeyleaguePackage.GOALIE_STATS__WINS:
-				return new Integer(getWins());
-			case HockeyleaguePackage.GOALIE_STATS__LOSSES:
-				return new Integer(getLosses());
-			case HockeyleaguePackage.GOALIE_STATS__TIES:
-				return new Integer(getTies());
-			case HockeyleaguePackage.GOALIE_STATS__EMPTY_NET_GOALS:
-				return new Integer(getEmptyNetGoals());
-			case HockeyleaguePackage.GOALIE_STATS__SHUTOUTS:
-				return new Integer(getShutouts());
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST:
-				return new Integer(getGoalsAgainst());
-			case HockeyleaguePackage.GOALIE_STATS__SAVES:
-				return new Integer(getSaves());
-			case HockeyleaguePackage.GOALIE_STATS__PENALTY_MINUTES:
-				return new Integer(getPenaltyMinutes());
-			case HockeyleaguePackage.GOALIE_STATS__GOALS:
-				return new Integer(getGoals());
-			case HockeyleaguePackage.GOALIE_STATS__ASSISTS:
-				return new Integer(getAssists());
-			case HockeyleaguePackage.GOALIE_STATS__POINTS:
-				return new Integer(getPoints());
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE_STATS__YEAR:
-				setYear((String)newValue);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__TEAM:
-				setTeam((Team)newValue);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GAMES_PLAYED_IN:
-				setGamesPlayedIn(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__MINUTES_PLAYED_IN:
-				setMinutesPlayedIn(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST_AVERAGE:
-				setGoalsAgainstAverage(((Float)newValue).floatValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__WINS:
-				setWins(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__LOSSES:
-				setLosses(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__TIES:
-				setTies(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__EMPTY_NET_GOALS:
-				setEmptyNetGoals(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__SHUTOUTS:
-				setShutouts(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST:
-				setGoalsAgainst(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__SAVES:
-				setSaves(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__PENALTY_MINUTES:
-				setPenaltyMinutes(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS:
-				setGoals(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__ASSISTS:
-				setAssists(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__POINTS:
-				setPoints(((Integer)newValue).intValue());
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE_STATS__YEAR:
-				setYear(YEAR_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__TEAM:
-				setTeam((Team)null);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GAMES_PLAYED_IN:
-				setGamesPlayedIn(GAMES_PLAYED_IN_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__MINUTES_PLAYED_IN:
-				setMinutesPlayedIn(MINUTES_PLAYED_IN_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST_AVERAGE:
-				setGoalsAgainstAverage(GOALS_AGAINST_AVERAGE_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__WINS:
-				setWins(WINS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__LOSSES:
-				setLosses(LOSSES_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__TIES:
-				setTies(TIES_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__EMPTY_NET_GOALS:
-				setEmptyNetGoals(EMPTY_NET_GOALS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__SHUTOUTS:
-				setShutouts(SHUTOUTS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST:
-				setGoalsAgainst(GOALS_AGAINST_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__SAVES:
-				setSaves(SAVES_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__PENALTY_MINUTES:
-				setPenaltyMinutes(PENALTY_MINUTES_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS:
-				setGoals(GOALS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__ASSISTS:
-				setAssists(ASSISTS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.GOALIE_STATS__POINTS:
-				setPoints(POINTS_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.GOALIE_STATS__YEAR:
-				return YEAR_EDEFAULT == null ? year != null : !YEAR_EDEFAULT.equals(year);
-			case HockeyleaguePackage.GOALIE_STATS__TEAM:
-				return team != null;
-			case HockeyleaguePackage.GOALIE_STATS__GAMES_PLAYED_IN:
-				return gamesPlayedIn != GAMES_PLAYED_IN_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__MINUTES_PLAYED_IN:
-				return minutesPlayedIn != MINUTES_PLAYED_IN_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST_AVERAGE:
-				return goalsAgainstAverage != GOALS_AGAINST_AVERAGE_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__WINS:
-				return wins != WINS_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__LOSSES:
-				return losses != LOSSES_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__TIES:
-				return ties != TIES_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__EMPTY_NET_GOALS:
-				return emptyNetGoals != EMPTY_NET_GOALS_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__SHUTOUTS:
-				return shutouts != SHUTOUTS_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST:
-				return goalsAgainst != GOALS_AGAINST_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__SAVES:
-				return saves != SAVES_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__PENALTY_MINUTES:
-				return penaltyMinutes != PENALTY_MINUTES_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__GOALS:
-				return goals != GOALS_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__ASSISTS:
-				return assists != ASSISTS_EDEFAULT;
-			case HockeyleaguePackage.GOALIE_STATS__POINTS:
-				return points != POINTS_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (year: "); //$NON-NLS-1$
-		result.append(year);
-		result.append(", gamesPlayedIn: "); //$NON-NLS-1$
-		result.append(gamesPlayedIn);
-		result.append(", minutesPlayedIn: "); //$NON-NLS-1$
-		result.append(minutesPlayedIn);
-		result.append(", goalsAgainstAverage: "); //$NON-NLS-1$
-		result.append(goalsAgainstAverage);
-		result.append(", wins: "); //$NON-NLS-1$
-		result.append(wins);
-		result.append(", losses: "); //$NON-NLS-1$
-		result.append(losses);
-		result.append(", ties: "); //$NON-NLS-1$
-		result.append(ties);
-		result.append(", emptyNetGoals: "); //$NON-NLS-1$
-		result.append(emptyNetGoals);
-		result.append(", shutouts: "); //$NON-NLS-1$
-		result.append(shutouts);
-		result.append(", goalsAgainst: "); //$NON-NLS-1$
-		result.append(goalsAgainst);
-		result.append(", saves: "); //$NON-NLS-1$
-		result.append(saves);
-		result.append(", penaltyMinutes: "); //$NON-NLS-1$
-		result.append(penaltyMinutes);
-		result.append(", goals: "); //$NON-NLS-1$
-		result.append(goals);
-		result.append(", assists: "); //$NON-NLS-1$
-		result.append(assists);
-		result.append(", points: "); //$NON-NLS-1$
-		result.append(points);
-		result.append(')');
-		return result.toString();
-	}
-
-} //GoalieStatsImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueFactoryImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueFactoryImpl.java
deleted file mode 100644
index 025562b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueFactoryImpl.java
+++ /dev/null
@@ -1,323 +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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.*;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class HockeyleagueFactoryImpl extends EFactoryImpl implements HockeyleagueFactory {
-	/**
-	 * Creates the default factory implementation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public static HockeyleagueFactory init() {
-		try {
-			HockeyleagueFactory theHockeyleagueFactory = (HockeyleagueFactory)EPackage.Registry.INSTANCE.getEFactory("http:///org/eclipse/ui/views/properties/tabbed/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ecore"); //$NON-NLS-1$ 
-			if (theHockeyleagueFactory != null) {
-				return theHockeyleagueFactory;
-			}
-		}
-		catch (Exception exception) {
-			EcorePlugin.INSTANCE.log(exception);
-		}
-		return new HockeyleagueFactoryImpl();
-	}
-
-	/**
-	 * Creates an instance of the factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueFactoryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EObject create(EClass eClass) {
-		switch (eClass.getClassifierID()) {
-			case HockeyleaguePackage.ARENA: return createArena();
-			case HockeyleaguePackage.DEFENCE: return createDefence();
-			case HockeyleaguePackage.FORWARD: return createForward();
-			case HockeyleaguePackage.GOALIE: return createGoalie();
-			case HockeyleaguePackage.GOALIE_STATS: return createGoalieStats();
-			case HockeyleaguePackage.LEAGUE: return createLeague();
-			case HockeyleaguePackage.PLAYER_STATS: return createPlayerStats();
-			case HockeyleaguePackage.TEAM: return createTeam();
-			default:
-				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object createFromString(EDataType eDataType, String initialValue) {
-		switch (eDataType.getClassifierID()) {
-			case HockeyleaguePackage.DEFENCE_POSITION_KIND:
-				return createDefencePositionKindFromString(eDataType, initialValue);
-			case HockeyleaguePackage.FORWARD_POSITION_KIND:
-				return createForwardPositionKindFromString(eDataType, initialValue);
-			case HockeyleaguePackage.HEIGHT_KIND:
-				return createHeightKindFromString(eDataType, initialValue);
-			case HockeyleaguePackage.SHOT_KIND:
-				return createShotKindFromString(eDataType, initialValue);
-			case HockeyleaguePackage.WEIGHT_KIND:
-				return createWeightKindFromString(eDataType, initialValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertToString(EDataType eDataType, Object instanceValue) {
-		switch (eDataType.getClassifierID()) {
-			case HockeyleaguePackage.DEFENCE_POSITION_KIND:
-				return convertDefencePositionKindToString(eDataType, instanceValue);
-			case HockeyleaguePackage.FORWARD_POSITION_KIND:
-				return convertForwardPositionKindToString(eDataType, instanceValue);
-			case HockeyleaguePackage.HEIGHT_KIND:
-				return convertHeightKindToString(eDataType, instanceValue);
-			case HockeyleaguePackage.SHOT_KIND:
-				return convertShotKindToString(eDataType, instanceValue);
-			case HockeyleaguePackage.WEIGHT_KIND:
-				return convertWeightKindToString(eDataType, instanceValue);
-			default:
-				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Arena createArena() {
-		ArenaImpl arena = new ArenaImpl();
-		return arena;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Defence createDefence() {
-		DefenceImpl defence = new DefenceImpl();
-		return defence;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Forward createForward() {
-		ForwardImpl forward = new ForwardImpl();
-		return forward;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Goalie createGoalie() {
-		GoalieImpl goalie = new GoalieImpl();
-		return goalie;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GoalieStats createGoalieStats() {
-		GoalieStatsImpl goalieStats = new GoalieStatsImpl();
-		return goalieStats;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public League createLeague() {
-		LeagueImpl league = new LeagueImpl();
-		return league;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PlayerStats createPlayerStats() {
-		PlayerStatsImpl playerStats = new PlayerStatsImpl();
-		return playerStats;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Team createTeam() {
-		TeamImpl team = new TeamImpl();
-		return team;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DefencePositionKind createDefencePositionKindFromString(EDataType eDataType, String initialValue) {
-		DefencePositionKind result = DefencePositionKind.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertDefencePositionKindToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ForwardPositionKind createForwardPositionKindFromString(EDataType eDataType, String initialValue) {
-		ForwardPositionKind result = ForwardPositionKind.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertForwardPositionKindToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HeightKind createHeightKindFromString(EDataType eDataType, String initialValue) {
-		HeightKind result = HeightKind.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertHeightKindToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ShotKind createShotKindFromString(EDataType eDataType, String initialValue) {
-		ShotKind result = ShotKind.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertShotKindToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WeightKind createWeightKindFromString(EDataType eDataType, String initialValue) {
-		WeightKind result = WeightKind.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertWeightKindToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleaguePackage getHockeyleaguePackage() {
-		return (HockeyleaguePackage)getEPackage();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @deprecated
-	 * @generated
-	 */
-	public static HockeyleaguePackage getPackage() {
-		return HockeyleaguePackage.eINSTANCE;
-	}
-
-} //HockeyleagueFactoryImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueObjectImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueObjectImpl.java
deleted file mode 100644
index 080c1e4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleagueObjectImpl.java
+++ /dev/null
@@ -1,165 +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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Object</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.HockeyleagueObjectImpl#getName <em>Name</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class HockeyleagueObjectImpl extends EObjectImpl implements HockeyleagueObject {
-	/**
-	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String name = NAME_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected HockeyleagueObjectImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.HOCKEYLEAGUE_OBJECT;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setName(String newName) {
-		String oldName = name;
-		name = newName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.HOCKEYLEAGUE_OBJECT__NAME, oldName, name));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.HOCKEYLEAGUE_OBJECT__NAME:
-				return getName();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.HOCKEYLEAGUE_OBJECT__NAME:
-				setName((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.HOCKEYLEAGUE_OBJECT__NAME:
-				setName(NAME_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.HOCKEYLEAGUE_OBJECT__NAME:
-				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (name: "); //$NON-NLS-1$
-		result.append(name);
-		result.append(')');
-		return result.toString();
-	}
-
-} //HockeyleagueObjectImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleaguePackageImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleaguePackageImpl.java
deleted file mode 100644
index b8dc923..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/HockeyleaguePackageImpl.java
+++ /dev/null
@@ -1,1050 +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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class HockeyleaguePackageImpl extends EPackageImpl implements HockeyleaguePackage {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass arenaEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass defenceEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass forwardEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass goalieEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass goalieStatsEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass hockeyleagueObjectEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass leagueEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass playerEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass playerStatsEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass teamEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum defencePositionKindEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum forwardPositionKindEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum heightKindEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum shotKindEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EEnum weightKindEEnum = null;
-
-	/**
-	 * Creates an instance of the model <b>Package</b>, registered with
-	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
-	 * package URI value.
-	 * <p>Note: the correct way to create the package is via the static
-	 * factory method {@link #init init()}, which also performs
-	 * initialization of the package, or returns the registered package,
-	 * if one already exists.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.emf.ecore.EPackage.Registry
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage#eNS_URI
-	 * @see #init()
-	 * @generated
-	 */
-	private HockeyleaguePackageImpl() {
-		super(eNS_URI, HockeyleagueFactory.eINSTANCE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static boolean isInited = false;
-
-	/**
-	 * Creates, registers, and initializes the <b>Package</b> for this
-	 * model, and for any others upon which it depends.  Simple
-	 * dependencies are satisfied by calling this method on all
-	 * dependent packages before doing anything else.  This method drives
-	 * initialization for interdependent packages directly, in parallel
-	 * with this package, itself.
-	 * <p>Of this package and its interdependencies, all packages which
-	 * have not yet been registered by their URI values are first created
-	 * and registered.  The packages are then initialized in two steps:
-	 * meta-model objects for all of the packages are created before any
-	 * are initialized, since one package's meta-model objects may refer to
-	 * those of another.
-	 * <p>Invocation of this method will not affect any packages that have
-	 * already been initialized.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #eNS_URI
-	 * @see #createPackageContents()
-	 * @see #initializePackageContents()
-	 * @generated
-	 */
-	public static HockeyleaguePackage init() {
-		if (isInited) return (HockeyleaguePackage)EPackage.Registry.INSTANCE.getEPackage(HockeyleaguePackage.eNS_URI);
-
-		// Obtain or create and register package
-		HockeyleaguePackageImpl theHockeyleaguePackage = (HockeyleaguePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof HockeyleaguePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new HockeyleaguePackageImpl());
-
-		isInited = true;
-
-		// Create package meta-data objects
-		theHockeyleaguePackage.createPackageContents();
-
-		// Initialize created meta-data
-		theHockeyleaguePackage.initializePackageContents();
-
-		// Mark meta-data to indicate it can't be changed
-		theHockeyleaguePackage.freeze();
-
-		return theHockeyleaguePackage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getArena() {
-		return arenaEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getArena_Address() {
-		return (EAttribute)arenaEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getArena_Capacity() {
-		return (EAttribute)arenaEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getDefence() {
-		return defenceEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getDefence_Position() {
-		return (EAttribute)defenceEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getDefence_PlayerStats() {
-		return (EReference)defenceEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getForward() {
-		return forwardEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getForward_Position() {
-		return (EAttribute)forwardEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getForward_PlayerStats() {
-		return (EReference)forwardEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getGoalie() {
-		return goalieEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getGoalie_GoalieStats() {
-		return (EReference)goalieEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getGoalieStats() {
-		return goalieStatsEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Year() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getGoalieStats_Team() {
-		return (EReference)goalieStatsEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_GamesPlayedIn() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_MinutesPlayedIn() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_GoalsAgainstAverage() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Wins() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Losses() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Ties() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_EmptyNetGoals() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Shutouts() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(9);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_GoalsAgainst() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(10);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Saves() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(11);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_PenaltyMinutes() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(12);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Goals() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(13);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Assists() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(14);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getGoalieStats_Points() {
-		return (EAttribute)goalieStatsEClass.getEStructuralFeatures().get(15);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getHockeyleagueObject() {
-		return hockeyleagueObjectEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getHockeyleagueObject_Name() {
-		return (EAttribute)hockeyleagueObjectEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getLeague() {
-		return leagueEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getLeague_Headoffice() {
-		return (EAttribute)leagueEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getLeague_Teams() {
-		return (EReference)leagueEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPlayer() {
-		return playerEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_Birthplace() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_Number() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_HeightMesurement() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_HeightValue() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_WeightMesurement() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_WeightValue() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_Shot() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayer_Birthdate() {
-		return (EAttribute)playerEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getPlayerStats() {
-		return playerStatsEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_Year() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPlayerStats_Team() {
-		return (EReference)playerStatsEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_GamesPlayedIn() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_Goals() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_Assists() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(4);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_Points() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(5);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_PlusMinus() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_PenaltyMinutes() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(7);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_PowerPlayGoals() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(8);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_ShortHandedGoals() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(9);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_GameWinningGoals() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(10);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_Shots() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(11);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPlayerStats_ShotPercentage() {
-		return (EAttribute)playerStatsEClass.getEStructuralFeatures().get(12);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EClass getTeam() {
-		return teamEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTeam_Forwards() {
-		return (EReference)teamEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTeam_Defencemen() {
-		return (EReference)teamEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTeam_Goalies() {
-		return (EReference)teamEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getTeam_Arena() {
-		return (EReference)teamEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getDefencePositionKind() {
-		return defencePositionKindEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getForwardPositionKind() {
-		return forwardPositionKindEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getHeightKind() {
-		return heightKindEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getShotKind() {
-		return shotKindEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EEnum getWeightKind() {
-		return weightKindEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueFactory getHockeyleagueFactory() {
-		return (HockeyleagueFactory)getEFactoryInstance();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isCreated = false;
-
-	/**
-	 * Creates the meta-model objects for the package.  This method is
-	 * guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPackageContents() {
-		if (isCreated) return;
-		isCreated = true;
-
-		// Create classes and their features
-		arenaEClass = createEClass(ARENA);
-		createEAttribute(arenaEClass, ARENA__ADDRESS);
-		createEAttribute(arenaEClass, ARENA__CAPACITY);
-
-		defenceEClass = createEClass(DEFENCE);
-		createEAttribute(defenceEClass, DEFENCE__POSITION);
-		createEReference(defenceEClass, DEFENCE__PLAYER_STATS);
-
-		forwardEClass = createEClass(FORWARD);
-		createEAttribute(forwardEClass, FORWARD__POSITION);
-		createEReference(forwardEClass, FORWARD__PLAYER_STATS);
-
-		goalieEClass = createEClass(GOALIE);
-		createEReference(goalieEClass, GOALIE__GOALIE_STATS);
-
-		goalieStatsEClass = createEClass(GOALIE_STATS);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__YEAR);
-		createEReference(goalieStatsEClass, GOALIE_STATS__TEAM);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__GAMES_PLAYED_IN);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__MINUTES_PLAYED_IN);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__GOALS_AGAINST_AVERAGE);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__WINS);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__LOSSES);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__TIES);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__EMPTY_NET_GOALS);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__SHUTOUTS);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__GOALS_AGAINST);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__SAVES);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__PENALTY_MINUTES);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__GOALS);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__ASSISTS);
-		createEAttribute(goalieStatsEClass, GOALIE_STATS__POINTS);
-
-		hockeyleagueObjectEClass = createEClass(HOCKEYLEAGUE_OBJECT);
-		createEAttribute(hockeyleagueObjectEClass, HOCKEYLEAGUE_OBJECT__NAME);
-
-		leagueEClass = createEClass(LEAGUE);
-		createEAttribute(leagueEClass, LEAGUE__HEADOFFICE);
-		createEReference(leagueEClass, LEAGUE__TEAMS);
-
-		playerEClass = createEClass(PLAYER);
-		createEAttribute(playerEClass, PLAYER__BIRTHPLACE);
-		createEAttribute(playerEClass, PLAYER__NUMBER);
-		createEAttribute(playerEClass, PLAYER__HEIGHT_MESUREMENT);
-		createEAttribute(playerEClass, PLAYER__HEIGHT_VALUE);
-		createEAttribute(playerEClass, PLAYER__WEIGHT_MESUREMENT);
-		createEAttribute(playerEClass, PLAYER__WEIGHT_VALUE);
-		createEAttribute(playerEClass, PLAYER__SHOT);
-		createEAttribute(playerEClass, PLAYER__BIRTHDATE);
-
-		playerStatsEClass = createEClass(PLAYER_STATS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__YEAR);
-		createEReference(playerStatsEClass, PLAYER_STATS__TEAM);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__GAMES_PLAYED_IN);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__GOALS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__ASSISTS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__POINTS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__PLUS_MINUS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__PENALTY_MINUTES);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__POWER_PLAY_GOALS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__SHORT_HANDED_GOALS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__GAME_WINNING_GOALS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__SHOTS);
-		createEAttribute(playerStatsEClass, PLAYER_STATS__SHOT_PERCENTAGE);
-
-		teamEClass = createEClass(TEAM);
-		createEReference(teamEClass, TEAM__FORWARDS);
-		createEReference(teamEClass, TEAM__DEFENCEMEN);
-		createEReference(teamEClass, TEAM__GOALIES);
-		createEReference(teamEClass, TEAM__ARENA);
-
-		// Create enums
-		defencePositionKindEEnum = createEEnum(DEFENCE_POSITION_KIND);
-		forwardPositionKindEEnum = createEEnum(FORWARD_POSITION_KIND);
-		heightKindEEnum = createEEnum(HEIGHT_KIND);
-		shotKindEEnum = createEEnum(SHOT_KIND);
-		weightKindEEnum = createEEnum(WEIGHT_KIND);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private boolean isInitialized = false;
-
-	/**
-	 * Complete the initialization of the package and its meta-model.  This
-	 * method is guarded to have no affect on any invocation but its first.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void initializePackageContents() {
-		if (isInitialized) return;
-		isInitialized = true;
-
-		// Initialize package
-		setName(eNAME);
-		setNsPrefix(eNS_PREFIX);
-		setNsURI(eNS_URI);
-
-		// Add supertypes to classes
-		arenaEClass.getESuperTypes().add(this.getHockeyleagueObject());
-		defenceEClass.getESuperTypes().add(this.getPlayer());
-		forwardEClass.getESuperTypes().add(this.getPlayer());
-		goalieEClass.getESuperTypes().add(this.getPlayer());
-		leagueEClass.getESuperTypes().add(this.getHockeyleagueObject());
-		playerEClass.getESuperTypes().add(this.getHockeyleagueObject());
-		teamEClass.getESuperTypes().add(this.getHockeyleagueObject());
-
-		// Initialize classes and features; add operations and parameters
-		initEClass(arenaEClass, Arena.class, "Arena", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getArena_Address(), ecorePackage.getEString(), "address", null, 0, 1, Arena.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getArena_Capacity(), ecorePackage.getEInt(), "capacity", null, 0, 1, Arena.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(defenceEClass, Defence.class, "Defence", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getDefence_Position(), this.getDefencePositionKind(), "position", null, 0, 1, Defence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getDefence_PlayerStats(), this.getPlayerStats(), null, "playerStats", null, 0, -1, Defence.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(forwardEClass, Forward.class, "Forward", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getForward_Position(), this.getForwardPositionKind(), "position", null, 0, 1, Forward.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getForward_PlayerStats(), this.getPlayerStats(), null, "playerStats", null, 0, -1, Forward.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(goalieEClass, Goalie.class, "Goalie", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEReference(getGoalie_GoalieStats(), this.getGoalieStats(), null, "goalieStats", null, 0, -1, Goalie.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(goalieStatsEClass, GoalieStats.class, "GoalieStats", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Year(), ecorePackage.getEString(), "year", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getGoalieStats_Team(), this.getTeam(), null, "team", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_GamesPlayedIn(), ecorePackage.getEInt(), "gamesPlayedIn", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_MinutesPlayedIn(), ecorePackage.getEInt(), "minutesPlayedIn", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_GoalsAgainstAverage(), ecorePackage.getEFloat(), "goalsAgainstAverage", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Wins(), ecorePackage.getEInt(), "wins", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Losses(), ecorePackage.getEInt(), "losses", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Ties(), ecorePackage.getEInt(), "ties", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_EmptyNetGoals(), ecorePackage.getEInt(), "emptyNetGoals", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Shutouts(), ecorePackage.getEInt(), "shutouts", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_GoalsAgainst(), ecorePackage.getEInt(), "goalsAgainst", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Saves(), ecorePackage.getEInt(), "saves", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_PenaltyMinutes(), ecorePackage.getEInt(), "penaltyMinutes", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Goals(), ecorePackage.getEInt(), "goals", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Assists(), ecorePackage.getEInt(), "assists", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getGoalieStats_Points(), ecorePackage.getEInt(), "points", null, 0, 1, GoalieStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(hockeyleagueObjectEClass, HockeyleagueObject.class, "HockeyleagueObject", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getHockeyleagueObject_Name(), ecorePackage.getEString(), "name", null, 0, 1, HockeyleagueObject.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(leagueEClass, League.class, "League", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getLeague_Headoffice(), ecorePackage.getEString(), "headoffice", null, 0, 1, League.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getLeague_Teams(), this.getTeam(), null, "teams", null, 0, -1, League.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(playerEClass, Player.class, "Player", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getPlayer_Birthplace(), ecorePackage.getEString(), "birthplace", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayer_Number(), ecorePackage.getEInt(), "number", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayer_HeightMesurement(), this.getHeightKind(), "heightMesurement", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayer_HeightValue(), ecorePackage.getEInt(), "heightValue", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayer_WeightMesurement(), this.getWeightKind(), "weightMesurement", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayer_WeightValue(), ecorePackage.getEInt(), "weightValue", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayer_Shot(), this.getShotKind(), "shot", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayer_Birthdate(), ecorePackage.getEString(), "birthdate", null, 0, 1, Player.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(playerStatsEClass, PlayerStats.class, "PlayerStats", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_Year(), ecorePackage.getEString(), "year", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getPlayerStats_Team(), this.getTeam(), null, "team", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_GamesPlayedIn(), ecorePackage.getEInt(), "gamesPlayedIn", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_Goals(), ecorePackage.getEInt(), "goals", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_Assists(), ecorePackage.getEInt(), "assists", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_Points(), ecorePackage.getEInt(), "points", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_PlusMinus(), ecorePackage.getEInt(), "plusMinus", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_PenaltyMinutes(), ecorePackage.getEInt(), "penaltyMinutes", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_PowerPlayGoals(), ecorePackage.getEInt(), "powerPlayGoals", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_ShortHandedGoals(), ecorePackage.getEInt(), "shortHandedGoals", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_GameWinningGoals(), ecorePackage.getEInt(), "gameWinningGoals", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_Shots(), ecorePackage.getEInt(), "shots", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEAttribute(getPlayerStats_ShotPercentage(), ecorePackage.getEFloat(), "shotPercentage", null, 0, 1, PlayerStats.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		initEClass(teamEClass, Team.class, "Team", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
-		initEReference(getTeam_Forwards(), this.getForward(), null, "forwards", null, 0, -1, Team.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getTeam_Defencemen(), this.getDefence(), null, "defencemen", null, 0, -1, Team.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getTeam_Goalies(), this.getGoalie(), null, "goalies", null, 0, -1, Team.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-		initEReference(getTeam_Arena(), this.getArena(), null, "arena", null, 0, 1, Team.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); //$NON-NLS-1$
-
-		// Initialize enums and add enum literals
-		initEEnum(defencePositionKindEEnum, DefencePositionKind.class, "DefencePositionKind"); //$NON-NLS-1$
-		addEEnumLiteral(defencePositionKindEEnum, DefencePositionKind.LEFT_DEFENCE_LITERAL);
-		addEEnumLiteral(defencePositionKindEEnum, DefencePositionKind.RIGHT_DEFENCE_LITERAL);
-
-		initEEnum(forwardPositionKindEEnum, ForwardPositionKind.class, "ForwardPositionKind"); //$NON-NLS-1$
-		addEEnumLiteral(forwardPositionKindEEnum, ForwardPositionKind.LEFT_WING_LITERAL);
-		addEEnumLiteral(forwardPositionKindEEnum, ForwardPositionKind.RIGHT_WING_LITERAL);
-		addEEnumLiteral(forwardPositionKindEEnum, ForwardPositionKind.CENTER_LITERAL);
-
-		initEEnum(heightKindEEnum, HeightKind.class, "HeightKind"); //$NON-NLS-1$
-		addEEnumLiteral(heightKindEEnum, HeightKind.INCHES_LITERAL);
-		addEEnumLiteral(heightKindEEnum, HeightKind.CENTIMETERS_LITERAL);
-
-		initEEnum(shotKindEEnum, ShotKind.class, "ShotKind"); //$NON-NLS-1$
-		addEEnumLiteral(shotKindEEnum, ShotKind.LEFT_LITERAL);
-		addEEnumLiteral(shotKindEEnum, ShotKind.RIGHT_LITERAL);
-
-		initEEnum(weightKindEEnum, WeightKind.class, "WeightKind"); //$NON-NLS-1$
-		addEEnumLiteral(weightKindEEnum, WeightKind.POUNDS_LITERAL);
-		addEEnumLiteral(weightKindEEnum, WeightKind.KILOGRAMS_LITERAL);
-
-		// Create resource
-		createResource(eNS_URI);
-	}
-
-} //HockeyleaguePackageImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/LeagueImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/LeagueImpl.java
deleted file mode 100644
index 73bf24e..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/LeagueImpl.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>League</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.LeagueImpl#getHeadoffice <em>Headoffice</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.LeagueImpl#getTeams <em>Teams</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class LeagueImpl extends HockeyleagueObjectImpl implements League {
-	/**
-	 * The default value of the '{@link #getHeadoffice() <em>Headoffice</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeadoffice()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String HEADOFFICE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getHeadoffice() <em>Headoffice</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeadoffice()
-	 * @generated
-	 * @ordered
-	 */
-	protected String headoffice = HEADOFFICE_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getTeams() <em>Teams</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTeams()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList teams;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LeagueImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.LEAGUE;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getHeadoffice() {
-		return headoffice;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setHeadoffice(String newHeadoffice) {
-		String oldHeadoffice = headoffice;
-		headoffice = newHeadoffice;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.LEAGUE__HEADOFFICE, oldHeadoffice, headoffice));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getTeams() {
-		if (teams == null) {
-			teams = new EObjectContainmentEList(Team.class, this, HockeyleaguePackage.LEAGUE__TEAMS);
-		}
-		return teams;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case HockeyleaguePackage.LEAGUE__TEAMS:
-				return ((InternalEList)getTeams()).basicRemove(otherEnd, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.LEAGUE__HEADOFFICE:
-				return getHeadoffice();
-			case HockeyleaguePackage.LEAGUE__TEAMS:
-				return getTeams();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.LEAGUE__HEADOFFICE:
-				setHeadoffice((String)newValue);
-				return;
-			case HockeyleaguePackage.LEAGUE__TEAMS:
-				getTeams().clear();
-				getTeams().addAll((Collection)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.LEAGUE__HEADOFFICE:
-				setHeadoffice(HEADOFFICE_EDEFAULT);
-				return;
-			case HockeyleaguePackage.LEAGUE__TEAMS:
-				getTeams().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.LEAGUE__HEADOFFICE:
-				return HEADOFFICE_EDEFAULT == null ? headoffice != null : !HEADOFFICE_EDEFAULT.equals(headoffice);
-			case HockeyleaguePackage.LEAGUE__TEAMS:
-				return teams != null && !teams.isEmpty();
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (headoffice: "); //$NON-NLS-1$
-		result.append(headoffice);
-		result.append(')');
-		return result.toString();
-	}
-
-} //LeagueImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerImpl.java
deleted file mode 100644
index a37d89a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerImpl.java
+++ /dev/null
@@ -1,545 +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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Player</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getBirthplace <em>Birthplace</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getNumber <em>Number</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getHeightMesurement <em>Height Mesurement</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getHeightValue <em>Height Value</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getWeightMesurement <em>Weight Mesurement</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getWeightValue <em>Weight Value</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getShot <em>Shot</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerImpl#getBirthdate <em>Birthdate</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class PlayerImpl extends HockeyleagueObjectImpl implements Player {
-	/**
-	 * The default value of the '{@link #getBirthplace() <em>Birthplace</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBirthplace()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String BIRTHPLACE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getBirthplace() <em>Birthplace</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBirthplace()
-	 * @generated
-	 * @ordered
-	 */
-	protected String birthplace = BIRTHPLACE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getNumber() <em>Number</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNumber()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int NUMBER_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getNumber() <em>Number</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getNumber()
-	 * @generated
-	 * @ordered
-	 */
-	protected int number = NUMBER_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getHeightMesurement() <em>Height Mesurement</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeightMesurement()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final HeightKind HEIGHT_MESUREMENT_EDEFAULT = HeightKind.INCHES_LITERAL;
-
-	/**
-	 * The cached value of the '{@link #getHeightMesurement() <em>Height Mesurement</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeightMesurement()
-	 * @generated
-	 * @ordered
-	 */
-	protected HeightKind heightMesurement = HEIGHT_MESUREMENT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getHeightValue() <em>Height Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeightValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int HEIGHT_VALUE_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getHeightValue() <em>Height Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getHeightValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected int heightValue = HEIGHT_VALUE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getWeightMesurement() <em>Weight Mesurement</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWeightMesurement()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final WeightKind WEIGHT_MESUREMENT_EDEFAULT = WeightKind.POUNDS_LITERAL;
-
-	/**
-	 * The cached value of the '{@link #getWeightMesurement() <em>Weight Mesurement</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWeightMesurement()
-	 * @generated
-	 * @ordered
-	 */
-	protected WeightKind weightMesurement = WEIGHT_MESUREMENT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getWeightValue() <em>Weight Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWeightValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int WEIGHT_VALUE_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getWeightValue() <em>Weight Value</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getWeightValue()
-	 * @generated
-	 * @ordered
-	 */
-	protected int weightValue = WEIGHT_VALUE_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getShot() <em>Shot</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShot()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final ShotKind SHOT_EDEFAULT = ShotKind.LEFT_LITERAL;
-
-	/**
-	 * The cached value of the '{@link #getShot() <em>Shot</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShot()
-	 * @generated
-	 * @ordered
-	 */
-	protected ShotKind shot = SHOT_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getBirthdate() <em>Birthdate</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBirthdate()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String BIRTHDATE_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getBirthdate() <em>Birthdate</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBirthdate()
-	 * @generated
-	 * @ordered
-	 */
-	protected String birthdate = BIRTHDATE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PlayerImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.PLAYER;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getBirthplace() {
-		return birthplace;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBirthplace(String newBirthplace) {
-		String oldBirthplace = birthplace;
-		birthplace = newBirthplace;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__BIRTHPLACE, oldBirthplace, birthplace));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getNumber() {
-		return number;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setNumber(int newNumber) {
-		int oldNumber = number;
-		number = newNumber;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__NUMBER, oldNumber, number));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HeightKind getHeightMesurement() {
-		return heightMesurement;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setHeightMesurement(HeightKind newHeightMesurement) {
-		HeightKind oldHeightMesurement = heightMesurement;
-		heightMesurement = newHeightMesurement == null ? HEIGHT_MESUREMENT_EDEFAULT : newHeightMesurement;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__HEIGHT_MESUREMENT, oldHeightMesurement, heightMesurement));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getHeightValue() {
-		return heightValue;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setHeightValue(int newHeightValue) {
-		int oldHeightValue = heightValue;
-		heightValue = newHeightValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__HEIGHT_VALUE, oldHeightValue, heightValue));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public WeightKind getWeightMesurement() {
-		return weightMesurement;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setWeightMesurement(WeightKind newWeightMesurement) {
-		WeightKind oldWeightMesurement = weightMesurement;
-		weightMesurement = newWeightMesurement == null ? WEIGHT_MESUREMENT_EDEFAULT : newWeightMesurement;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__WEIGHT_MESUREMENT, oldWeightMesurement, weightMesurement));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getWeightValue() {
-		return weightValue;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setWeightValue(int newWeightValue) {
-		int oldWeightValue = weightValue;
-		weightValue = newWeightValue;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__WEIGHT_VALUE, oldWeightValue, weightValue));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ShotKind getShot() {
-		return shot;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setShot(ShotKind newShot) {
-		ShotKind oldShot = shot;
-		shot = newShot == null ? SHOT_EDEFAULT : newShot;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__SHOT, oldShot, shot));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getBirthdate() {
-		return birthdate;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBirthdate(String newBirthdate) {
-		String oldBirthdate = birthdate;
-		birthdate = newBirthdate;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER__BIRTHDATE, oldBirthdate, birthdate));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER__BIRTHPLACE:
-				return getBirthplace();
-			case HockeyleaguePackage.PLAYER__NUMBER:
-				return new Integer(getNumber());
-			case HockeyleaguePackage.PLAYER__HEIGHT_MESUREMENT:
-				return getHeightMesurement();
-			case HockeyleaguePackage.PLAYER__HEIGHT_VALUE:
-				return new Integer(getHeightValue());
-			case HockeyleaguePackage.PLAYER__WEIGHT_MESUREMENT:
-				return getWeightMesurement();
-			case HockeyleaguePackage.PLAYER__WEIGHT_VALUE:
-				return new Integer(getWeightValue());
-			case HockeyleaguePackage.PLAYER__SHOT:
-				return getShot();
-			case HockeyleaguePackage.PLAYER__BIRTHDATE:
-				return getBirthdate();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER__BIRTHPLACE:
-				setBirthplace((String)newValue);
-				return;
-			case HockeyleaguePackage.PLAYER__NUMBER:
-				setNumber(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER__HEIGHT_MESUREMENT:
-				setHeightMesurement((HeightKind)newValue);
-				return;
-			case HockeyleaguePackage.PLAYER__HEIGHT_VALUE:
-				setHeightValue(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER__WEIGHT_MESUREMENT:
-				setWeightMesurement((WeightKind)newValue);
-				return;
-			case HockeyleaguePackage.PLAYER__WEIGHT_VALUE:
-				setWeightValue(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER__SHOT:
-				setShot((ShotKind)newValue);
-				return;
-			case HockeyleaguePackage.PLAYER__BIRTHDATE:
-				setBirthdate((String)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER__BIRTHPLACE:
-				setBirthplace(BIRTHPLACE_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER__NUMBER:
-				setNumber(NUMBER_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER__HEIGHT_MESUREMENT:
-				setHeightMesurement(HEIGHT_MESUREMENT_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER__HEIGHT_VALUE:
-				setHeightValue(HEIGHT_VALUE_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER__WEIGHT_MESUREMENT:
-				setWeightMesurement(WEIGHT_MESUREMENT_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER__WEIGHT_VALUE:
-				setWeightValue(WEIGHT_VALUE_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER__SHOT:
-				setShot(SHOT_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER__BIRTHDATE:
-				setBirthdate(BIRTHDATE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER__BIRTHPLACE:
-				return BIRTHPLACE_EDEFAULT == null ? birthplace != null : !BIRTHPLACE_EDEFAULT.equals(birthplace);
-			case HockeyleaguePackage.PLAYER__NUMBER:
-				return number != NUMBER_EDEFAULT;
-			case HockeyleaguePackage.PLAYER__HEIGHT_MESUREMENT:
-				return heightMesurement != HEIGHT_MESUREMENT_EDEFAULT;
-			case HockeyleaguePackage.PLAYER__HEIGHT_VALUE:
-				return heightValue != HEIGHT_VALUE_EDEFAULT;
-			case HockeyleaguePackage.PLAYER__WEIGHT_MESUREMENT:
-				return weightMesurement != WEIGHT_MESUREMENT_EDEFAULT;
-			case HockeyleaguePackage.PLAYER__WEIGHT_VALUE:
-				return weightValue != WEIGHT_VALUE_EDEFAULT;
-			case HockeyleaguePackage.PLAYER__SHOT:
-				return shot != SHOT_EDEFAULT;
-			case HockeyleaguePackage.PLAYER__BIRTHDATE:
-				return BIRTHDATE_EDEFAULT == null ? birthdate != null : !BIRTHDATE_EDEFAULT.equals(birthdate);
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (birthplace: "); //$NON-NLS-1$
-		result.append(birthplace);
-		result.append(", number: "); //$NON-NLS-1$
-		result.append(number);
-		result.append(", heightMesurement: "); //$NON-NLS-1$
-		result.append(heightMesurement);
-		result.append(", heightValue: "); //$NON-NLS-1$
-		result.append(heightValue);
-		result.append(", weightMesurement: "); //$NON-NLS-1$
-		result.append(weightMesurement);
-		result.append(", weightValue: "); //$NON-NLS-1$
-		result.append(weightValue);
-		result.append(", shot: "); //$NON-NLS-1$
-		result.append(shot);
-		result.append(", birthdate: "); //$NON-NLS-1$
-		result.append(birthdate);
-		result.append(')');
-		return result.toString();
-	}
-
-} //PlayerImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerStatsImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerStatsImpl.java
deleted file mode 100644
index 916190d..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/PlayerStatsImpl.java
+++ /dev/null
@@ -1,821 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.EObjectImpl;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Player Stats</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getYear <em>Year</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getTeam <em>Team</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getGamesPlayedIn <em>Games Played In</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getGoals <em>Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getAssists <em>Assists</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getPoints <em>Points</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getPlusMinus <em>Plus Minus</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getPenaltyMinutes <em>Penalty Minutes</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getPowerPlayGoals <em>Power Play Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getShortHandedGoals <em>Short Handed Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getGameWinningGoals <em>Game Winning Goals</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getShots <em>Shots</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.PlayerStatsImpl#getShotPercentage <em>Shot Percentage</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class PlayerStatsImpl extends EObjectImpl implements PlayerStats {
-	/**
-	 * The default value of the '{@link #getYear() <em>Year</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getYear()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String YEAR_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getYear() <em>Year</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getYear()
-	 * @generated
-	 * @ordered
-	 */
-	protected String year = YEAR_EDEFAULT;
-
-	/**
-	 * The cached value of the '{@link #getTeam() <em>Team</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTeam()
-	 * @generated
-	 * @ordered
-	 */
-	protected Team team;
-
-	/**
-	 * The default value of the '{@link #getGamesPlayedIn() <em>Games Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGamesPlayedIn()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int GAMES_PLAYED_IN_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getGamesPlayedIn() <em>Games Played In</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGamesPlayedIn()
-	 * @generated
-	 * @ordered
-	 */
-	protected int gamesPlayedIn = GAMES_PLAYED_IN_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getGoals() <em>Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int GOALS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getGoals() <em>Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected int goals = GOALS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getAssists() <em>Assists</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAssists()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int ASSISTS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getAssists() <em>Assists</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getAssists()
-	 * @generated
-	 * @ordered
-	 */
-	protected int assists = ASSISTS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPoints() <em>Points</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPoints()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int POINTS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getPoints() <em>Points</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPoints()
-	 * @generated
-	 * @ordered
-	 */
-	protected int points = POINTS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPlusMinus() <em>Plus Minus</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPlusMinus()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int PLUS_MINUS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getPlusMinus() <em>Plus Minus</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPlusMinus()
-	 * @generated
-	 * @ordered
-	 */
-	protected int plusMinus = PLUS_MINUS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPenaltyMinutes() <em>Penalty Minutes</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPenaltyMinutes()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int PENALTY_MINUTES_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getPenaltyMinutes() <em>Penalty Minutes</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPenaltyMinutes()
-	 * @generated
-	 * @ordered
-	 */
-	protected int penaltyMinutes = PENALTY_MINUTES_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getPowerPlayGoals() <em>Power Play Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPowerPlayGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int POWER_PLAY_GOALS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getPowerPlayGoals() <em>Power Play Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getPowerPlayGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected int powerPlayGoals = POWER_PLAY_GOALS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getShortHandedGoals() <em>Short Handed Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShortHandedGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int SHORT_HANDED_GOALS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getShortHandedGoals() <em>Short Handed Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShortHandedGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected int shortHandedGoals = SHORT_HANDED_GOALS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getGameWinningGoals() <em>Game Winning Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGameWinningGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int GAME_WINNING_GOALS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getGameWinningGoals() <em>Game Winning Goals</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGameWinningGoals()
-	 * @generated
-	 * @ordered
-	 */
-	protected int gameWinningGoals = GAME_WINNING_GOALS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getShots() <em>Shots</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShots()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final int SHOTS_EDEFAULT = 0;
-
-	/**
-	 * The cached value of the '{@link #getShots() <em>Shots</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShots()
-	 * @generated
-	 * @ordered
-	 */
-	protected int shots = SHOTS_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getShotPercentage() <em>Shot Percentage</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShotPercentage()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final float SHOT_PERCENTAGE_EDEFAULT = 0.0F;
-
-	/**
-	 * The cached value of the '{@link #getShotPercentage() <em>Shot Percentage</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getShotPercentage()
-	 * @generated
-	 * @ordered
-	 */
-	protected float shotPercentage = SHOT_PERCENTAGE_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PlayerStatsImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.PLAYER_STATS;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getYear() {
-		return year;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setYear(String newYear) {
-		String oldYear = year;
-		year = newYear;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__YEAR, oldYear, year));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Team getTeam() {
-		if (team != null && team.eIsProxy()) {
-			InternalEObject oldTeam = (InternalEObject)team;
-			team = (Team)eResolveProxy(oldTeam);
-			if (team != oldTeam) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, HockeyleaguePackage.PLAYER_STATS__TEAM, oldTeam, team));
-			}
-		}
-		return team;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Team basicGetTeam() {
-		return team;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setTeam(Team newTeam) {
-		Team oldTeam = team;
-		team = newTeam;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__TEAM, oldTeam, team));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getGamesPlayedIn() {
-		return gamesPlayedIn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGamesPlayedIn(int newGamesPlayedIn) {
-		int oldGamesPlayedIn = gamesPlayedIn;
-		gamesPlayedIn = newGamesPlayedIn;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__GAMES_PLAYED_IN, oldGamesPlayedIn, gamesPlayedIn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getGoals() {
-		return goals;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGoals(int newGoals) {
-		int oldGoals = goals;
-		goals = newGoals;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__GOALS, oldGoals, goals));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getAssists() {
-		return assists;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setAssists(int newAssists) {
-		int oldAssists = assists;
-		assists = newAssists;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__ASSISTS, oldAssists, assists));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getPoints() {
-		return points;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPoints(int newPoints) {
-		int oldPoints = points;
-		points = newPoints;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__POINTS, oldPoints, points));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getPlusMinus() {
-		return plusMinus;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPlusMinus(int newPlusMinus) {
-		int oldPlusMinus = plusMinus;
-		plusMinus = newPlusMinus;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__PLUS_MINUS, oldPlusMinus, plusMinus));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getPenaltyMinutes() {
-		return penaltyMinutes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPenaltyMinutes(int newPenaltyMinutes) {
-		int oldPenaltyMinutes = penaltyMinutes;
-		penaltyMinutes = newPenaltyMinutes;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__PENALTY_MINUTES, oldPenaltyMinutes, penaltyMinutes));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getPowerPlayGoals() {
-		return powerPlayGoals;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setPowerPlayGoals(int newPowerPlayGoals) {
-		int oldPowerPlayGoals = powerPlayGoals;
-		powerPlayGoals = newPowerPlayGoals;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__POWER_PLAY_GOALS, oldPowerPlayGoals, powerPlayGoals));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getShortHandedGoals() {
-		return shortHandedGoals;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setShortHandedGoals(int newShortHandedGoals) {
-		int oldShortHandedGoals = shortHandedGoals;
-		shortHandedGoals = newShortHandedGoals;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__SHORT_HANDED_GOALS, oldShortHandedGoals, shortHandedGoals));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getGameWinningGoals() {
-		return gameWinningGoals;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setGameWinningGoals(int newGameWinningGoals) {
-		int oldGameWinningGoals = gameWinningGoals;
-		gameWinningGoals = newGameWinningGoals;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__GAME_WINNING_GOALS, oldGameWinningGoals, gameWinningGoals));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public int getShots() {
-		return shots;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setShots(int newShots) {
-		int oldShots = shots;
-		shots = newShots;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__SHOTS, oldShots, shots));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public float getShotPercentage() {
-		return shotPercentage;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setShotPercentage(float newShotPercentage) {
-		float oldShotPercentage = shotPercentage;
-		shotPercentage = newShotPercentage;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.PLAYER_STATS__SHOT_PERCENTAGE, oldShotPercentage, shotPercentage));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER_STATS__YEAR:
-				return getYear();
-			case HockeyleaguePackage.PLAYER_STATS__TEAM:
-				if (resolve) return getTeam();
-				return basicGetTeam();
-			case HockeyleaguePackage.PLAYER_STATS__GAMES_PLAYED_IN:
-				return new Integer(getGamesPlayedIn());
-			case HockeyleaguePackage.PLAYER_STATS__GOALS:
-				return new Integer(getGoals());
-			case HockeyleaguePackage.PLAYER_STATS__ASSISTS:
-				return new Integer(getAssists());
-			case HockeyleaguePackage.PLAYER_STATS__POINTS:
-				return new Integer(getPoints());
-			case HockeyleaguePackage.PLAYER_STATS__PLUS_MINUS:
-				return new Integer(getPlusMinus());
-			case HockeyleaguePackage.PLAYER_STATS__PENALTY_MINUTES:
-				return new Integer(getPenaltyMinutes());
-			case HockeyleaguePackage.PLAYER_STATS__POWER_PLAY_GOALS:
-				return new Integer(getPowerPlayGoals());
-			case HockeyleaguePackage.PLAYER_STATS__SHORT_HANDED_GOALS:
-				return new Integer(getShortHandedGoals());
-			case HockeyleaguePackage.PLAYER_STATS__GAME_WINNING_GOALS:
-				return new Integer(getGameWinningGoals());
-			case HockeyleaguePackage.PLAYER_STATS__SHOTS:
-				return new Integer(getShots());
-			case HockeyleaguePackage.PLAYER_STATS__SHOT_PERCENTAGE:
-				return new Float(getShotPercentage());
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER_STATS__YEAR:
-				setYear((String)newValue);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__TEAM:
-				setTeam((Team)newValue);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__GAMES_PLAYED_IN:
-				setGamesPlayedIn(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__GOALS:
-				setGoals(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__ASSISTS:
-				setAssists(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__POINTS:
-				setPoints(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__PLUS_MINUS:
-				setPlusMinus(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__PENALTY_MINUTES:
-				setPenaltyMinutes(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__POWER_PLAY_GOALS:
-				setPowerPlayGoals(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__SHORT_HANDED_GOALS:
-				setShortHandedGoals(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__GAME_WINNING_GOALS:
-				setGameWinningGoals(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__SHOTS:
-				setShots(((Integer)newValue).intValue());
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__SHOT_PERCENTAGE:
-				setShotPercentage(((Float)newValue).floatValue());
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER_STATS__YEAR:
-				setYear(YEAR_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__TEAM:
-				setTeam((Team)null);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__GAMES_PLAYED_IN:
-				setGamesPlayedIn(GAMES_PLAYED_IN_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__GOALS:
-				setGoals(GOALS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__ASSISTS:
-				setAssists(ASSISTS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__POINTS:
-				setPoints(POINTS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__PLUS_MINUS:
-				setPlusMinus(PLUS_MINUS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__PENALTY_MINUTES:
-				setPenaltyMinutes(PENALTY_MINUTES_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__POWER_PLAY_GOALS:
-				setPowerPlayGoals(POWER_PLAY_GOALS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__SHORT_HANDED_GOALS:
-				setShortHandedGoals(SHORT_HANDED_GOALS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__GAME_WINNING_GOALS:
-				setGameWinningGoals(GAME_WINNING_GOALS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__SHOTS:
-				setShots(SHOTS_EDEFAULT);
-				return;
-			case HockeyleaguePackage.PLAYER_STATS__SHOT_PERCENTAGE:
-				setShotPercentage(SHOT_PERCENTAGE_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.PLAYER_STATS__YEAR:
-				return YEAR_EDEFAULT == null ? year != null : !YEAR_EDEFAULT.equals(year);
-			case HockeyleaguePackage.PLAYER_STATS__TEAM:
-				return team != null;
-			case HockeyleaguePackage.PLAYER_STATS__GAMES_PLAYED_IN:
-				return gamesPlayedIn != GAMES_PLAYED_IN_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__GOALS:
-				return goals != GOALS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__ASSISTS:
-				return assists != ASSISTS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__POINTS:
-				return points != POINTS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__PLUS_MINUS:
-				return plusMinus != PLUS_MINUS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__PENALTY_MINUTES:
-				return penaltyMinutes != PENALTY_MINUTES_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__POWER_PLAY_GOALS:
-				return powerPlayGoals != POWER_PLAY_GOALS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__SHORT_HANDED_GOALS:
-				return shortHandedGoals != SHORT_HANDED_GOALS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__GAME_WINNING_GOALS:
-				return gameWinningGoals != GAME_WINNING_GOALS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__SHOTS:
-				return shots != SHOTS_EDEFAULT;
-			case HockeyleaguePackage.PLAYER_STATS__SHOT_PERCENTAGE:
-				return shotPercentage != SHOT_PERCENTAGE_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (year: "); //$NON-NLS-1$
-		result.append(year);
-		result.append(", gamesPlayedIn: "); //$NON-NLS-1$
-		result.append(gamesPlayedIn);
-		result.append(", goals: "); //$NON-NLS-1$
-		result.append(goals);
-		result.append(", assists: "); //$NON-NLS-1$
-		result.append(assists);
-		result.append(", points: "); //$NON-NLS-1$
-		result.append(points);
-		result.append(", plusMinus: "); //$NON-NLS-1$
-		result.append(plusMinus);
-		result.append(", penaltyMinutes: "); //$NON-NLS-1$
-		result.append(penaltyMinutes);
-		result.append(", powerPlayGoals: "); //$NON-NLS-1$
-		result.append(powerPlayGoals);
-		result.append(", shortHandedGoals: "); //$NON-NLS-1$
-		result.append(shortHandedGoals);
-		result.append(", gameWinningGoals: "); //$NON-NLS-1$
-		result.append(gameWinningGoals);
-		result.append(", shots: "); //$NON-NLS-1$
-		result.append(shots);
-		result.append(", shotPercentage: "); //$NON-NLS-1$
-		result.append(shotPercentage);
-		result.append(')');
-		return result.toString();
-	}
-
-} //PlayerStatsImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/TeamImpl.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/TeamImpl.java
deleted file mode 100644
index ba28a25..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/impl/TeamImpl.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.impl;
-
-
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Team</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl#getForwards <em>Forwards</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl#getDefencemen <em>Defencemen</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl#getGoalies <em>Goalies</em>}</li>
- *   <li>{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.impl.TeamImpl#getArena <em>Arena</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class TeamImpl extends HockeyleagueObjectImpl implements Team {
-	/**
-	 * The cached value of the '{@link #getForwards() <em>Forwards</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getForwards()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList forwards;
-
-	/**
-	 * The cached value of the '{@link #getDefencemen() <em>Defencemen</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDefencemen()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList defencemen;
-
-	/**
-	 * The cached value of the '{@link #getGoalies() <em>Goalies</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getGoalies()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList goalies;
-
-	/**
-	 * The cached value of the '{@link #getArena() <em>Arena</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getArena()
-	 * @generated
-	 * @ordered
-	 */
-	protected Arena arena;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TeamImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EClass eStaticClass() {
-		return HockeyleaguePackage.Literals.TEAM;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getForwards() {
-		if (forwards == null) {
-			forwards = new EObjectContainmentEList(Forward.class, this, HockeyleaguePackage.TEAM__FORWARDS);
-		}
-		return forwards;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getDefencemen() {
-		if (defencemen == null) {
-			defencemen = new EObjectContainmentEList(Defence.class, this, HockeyleaguePackage.TEAM__DEFENCEMEN);
-		}
-		return defencemen;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EList getGoalies() {
-		if (goalies == null) {
-			goalies = new EObjectContainmentEList(Goalie.class, this, HockeyleaguePackage.TEAM__GOALIES);
-		}
-		return goalies;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Arena getArena() {
-		return arena;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetArena(Arena newArena, NotificationChain msgs) {
-		Arena oldArena = arena;
-		arena = newArena;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.TEAM__ARENA, oldArena, newArena);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setArena(Arena newArena) {
-		if (newArena != arena) {
-			NotificationChain msgs = null;
-			if (arena != null)
-				msgs = ((InternalEObject)arena).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HockeyleaguePackage.TEAM__ARENA, null, msgs);
-			if (newArena != null)
-				msgs = ((InternalEObject)newArena).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HockeyleaguePackage.TEAM__ARENA, null, msgs);
-			msgs = basicSetArena(newArena, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, HockeyleaguePackage.TEAM__ARENA, newArena, newArena));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case HockeyleaguePackage.TEAM__FORWARDS:
-				return ((InternalEList)getForwards()).basicRemove(otherEnd, msgs);
-			case HockeyleaguePackage.TEAM__DEFENCEMEN:
-				return ((InternalEList)getDefencemen()).basicRemove(otherEnd, msgs);
-			case HockeyleaguePackage.TEAM__GOALIES:
-				return ((InternalEList)getGoalies()).basicRemove(otherEnd, msgs);
-			case HockeyleaguePackage.TEAM__ARENA:
-				return basicSetArena(null, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case HockeyleaguePackage.TEAM__FORWARDS:
-				return getForwards();
-			case HockeyleaguePackage.TEAM__DEFENCEMEN:
-				return getDefencemen();
-			case HockeyleaguePackage.TEAM__GOALIES:
-				return getGoalies();
-			case HockeyleaguePackage.TEAM__ARENA:
-				return getArena();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case HockeyleaguePackage.TEAM__FORWARDS:
-				getForwards().clear();
-				getForwards().addAll((Collection)newValue);
-				return;
-			case HockeyleaguePackage.TEAM__DEFENCEMEN:
-				getDefencemen().clear();
-				getDefencemen().addAll((Collection)newValue);
-				return;
-			case HockeyleaguePackage.TEAM__GOALIES:
-				getGoalies().clear();
-				getGoalies().addAll((Collection)newValue);
-				return;
-			case HockeyleaguePackage.TEAM__ARENA:
-				setArena((Arena)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.TEAM__FORWARDS:
-				getForwards().clear();
-				return;
-			case HockeyleaguePackage.TEAM__DEFENCEMEN:
-				getDefencemen().clear();
-				return;
-			case HockeyleaguePackage.TEAM__GOALIES:
-				getGoalies().clear();
-				return;
-			case HockeyleaguePackage.TEAM__ARENA:
-				setArena((Arena)null);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case HockeyleaguePackage.TEAM__FORWARDS:
-				return forwards != null && !forwards.isEmpty();
-			case HockeyleaguePackage.TEAM__DEFENCEMEN:
-				return defencemen != null && !defencemen.isEmpty();
-			case HockeyleaguePackage.TEAM__GOALIES:
-				return goalies != null && !goalies.isEmpty();
-			case HockeyleaguePackage.TEAM__ARENA:
-				return arena != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //TeamImpl
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ArenaItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ArenaItemProvider.java
deleted file mode 100644
index 5f5b77c..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ArenaItemProvider.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ArenaItemProvider
-	extends HockeyleagueObjectItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ArenaItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addAddressPropertyDescriptor(object);
-			addCapacityPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Address feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addAddressPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Arena_address_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Arena_address_feature", "_UI_Arena_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.ARENA__ADDRESS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Capacity feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addCapacityPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Arena_capacity_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Arena_capacity_feature", "_UI_Arena_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.ARENA__CAPACITY,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns Arena.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Arena")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((Arena)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Arena_type") : //$NON-NLS-1$
-			getString("_UI_Arena_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Arena.class)) {
-			case HockeyleaguePackage.ARENA__ADDRESS:
-			case HockeyleaguePackage.ARENA__CAPACITY:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/DefenceItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/DefenceItemProvider.java
deleted file mode 100644
index a84d24d..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/DefenceItemProvider.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class DefenceItemProvider
-	extends PlayerItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public DefenceItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addPositionPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Position feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPositionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Defence_position_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Defence_position_feature", "_UI_Defence_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.DEFENCE__POSITION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(HockeyleaguePackage.Literals.DEFENCE__PLAYER_STATS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Defence.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Defence")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((Defence)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Defence_type") : //$NON-NLS-1$
-			getString("_UI_Defence_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Defence.class)) {
-			case HockeyleaguePackage.DEFENCE__POSITION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case HockeyleaguePackage.DEFENCE__PLAYER_STATS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.DEFENCE__PLAYER_STATS,
-				 HockeyleagueFactory.eINSTANCE.createPlayerStats()));
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ForwardItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ForwardItemProvider.java
deleted file mode 100644
index 827b64b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/ForwardItemProvider.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class ForwardItemProvider
-	extends PlayerItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ForwardItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addPositionPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Position feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPositionPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Forward_position_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Forward_position_feature", "_UI_Forward_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.FORWARD__POSITION,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(HockeyleaguePackage.Literals.FORWARD__PLAYER_STATS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Forward.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Forward")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((Forward)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Forward_type") : //$NON-NLS-1$
-			getString("_UI_Forward_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Forward.class)) {
-			case HockeyleaguePackage.FORWARD__POSITION:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case HockeyleaguePackage.FORWARD__PLAYER_STATS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.FORWARD__PLAYER_STATS,
-				 HockeyleagueFactory.eINSTANCE.createPlayerStats()));
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieItemProvider.java
deleted file mode 100644
index 650fcc1..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieItemProvider.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class GoalieItemProvider
-	extends PlayerItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GoalieItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(HockeyleaguePackage.Literals.GOALIE__GOALIE_STATS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Goalie.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Goalie")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((Goalie)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Goalie_type") : //$NON-NLS-1$
-			getString("_UI_Goalie_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Goalie.class)) {
-			case HockeyleaguePackage.GOALIE__GOALIE_STATS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.GOALIE__GOALIE_STATS,
-				 HockeyleagueFactory.eINSTANCE.createGoalieStats()));
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieStatsItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieStatsItemProvider.java
deleted file mode 100644
index 08e394a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/GoalieStatsItemProvider.java
+++ /dev/null
@@ -1,515 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePlugin;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class GoalieStatsItemProvider
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public GoalieStatsItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addYearPropertyDescriptor(object);
-			addTeamPropertyDescriptor(object);
-			addGamesPlayedInPropertyDescriptor(object);
-			addMinutesPlayedInPropertyDescriptor(object);
-			addGoalsAgainstAveragePropertyDescriptor(object);
-			addWinsPropertyDescriptor(object);
-			addLossesPropertyDescriptor(object);
-			addTiesPropertyDescriptor(object);
-			addEmptyNetGoalsPropertyDescriptor(object);
-			addShutoutsPropertyDescriptor(object);
-			addGoalsAgainstPropertyDescriptor(object);
-			addSavesPropertyDescriptor(object);
-			addPenaltyMinutesPropertyDescriptor(object);
-			addGoalsPropertyDescriptor(object);
-			addAssistsPropertyDescriptor(object);
-			addPointsPropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Year feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addYearPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_year_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_year_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__YEAR,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Team feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addTeamPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_team_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_team_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__TEAM,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Games Played In feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGamesPlayedInPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_gamesPlayedIn_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_gamesPlayedIn_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__GAMES_PLAYED_IN,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Minutes Played In feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addMinutesPlayedInPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_minutesPlayedIn_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_minutesPlayedIn_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__MINUTES_PLAYED_IN,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Goals Against Average feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGoalsAgainstAveragePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_goalsAgainstAverage_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_goalsAgainstAverage_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__GOALS_AGAINST_AVERAGE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Wins feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addWinsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_wins_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_wins_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__WINS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Losses feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addLossesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_losses_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_losses_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__LOSSES,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Ties feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addTiesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_ties_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_ties_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__TIES,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Empty Net Goals feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addEmptyNetGoalsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_emptyNetGoals_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_emptyNetGoals_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__EMPTY_NET_GOALS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Shutouts feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addShutoutsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_shutouts_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_shutouts_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__SHUTOUTS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Goals Against feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGoalsAgainstPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_goalsAgainst_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_goalsAgainst_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__GOALS_AGAINST,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Saves feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addSavesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_saves_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_saves_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__SAVES,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Penalty Minutes feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPenaltyMinutesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_penaltyMinutes_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_penaltyMinutes_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__PENALTY_MINUTES,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Goals feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGoalsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_goals_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_goals_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__GOALS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Assists feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addAssistsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_assists_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_assists_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__ASSISTS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Points feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPointsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_GoalieStats_points_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_GoalieStats_points_feature", "_UI_GoalieStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.GOALIE_STATS__POINTS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns GoalieStats.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/GoalieStats")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((GoalieStats)object).getYear();
-		return label == null || label.length() == 0 ?
-			getString("_UI_GoalieStats_type") : //$NON-NLS-1$
-			getString("_UI_GoalieStats_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(GoalieStats.class)) {
-			case HockeyleaguePackage.GOALIE_STATS__YEAR:
-			case HockeyleaguePackage.GOALIE_STATS__GAMES_PLAYED_IN:
-			case HockeyleaguePackage.GOALIE_STATS__MINUTES_PLAYED_IN:
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST_AVERAGE:
-			case HockeyleaguePackage.GOALIE_STATS__WINS:
-			case HockeyleaguePackage.GOALIE_STATS__LOSSES:
-			case HockeyleaguePackage.GOALIE_STATS__TIES:
-			case HockeyleaguePackage.GOALIE_STATS__EMPTY_NET_GOALS:
-			case HockeyleaguePackage.GOALIE_STATS__SHUTOUTS:
-			case HockeyleaguePackage.GOALIE_STATS__GOALS_AGAINST:
-			case HockeyleaguePackage.GOALIE_STATS__SAVES:
-			case HockeyleaguePackage.GOALIE_STATS__PENALTY_MINUTES:
-			case HockeyleaguePackage.GOALIE_STATS__GOALS:
-			case HockeyleaguePackage.GOALIE_STATS__ASSISTS:
-			case HockeyleaguePackage.GOALIE_STATS__POINTS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ResourceLocator getResourceLocator() {
-		return HockeyleaguePlugin.INSTANCE;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueItemProviderAdapterFactory.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueItemProviderAdapterFactory.java
deleted file mode 100644
index e41e6d7..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueItemProviderAdapterFactory.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.edit.provider.ChangeNotifier;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.IChangeNotifier;
-import org.eclipse.emf.edit.provider.IDisposable;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.INotifyChangedListener;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.util.HockeyleagueAdapterFactory;
-
-/**
- * This is the factory that is used to provide the interfaces needed to support Viewers.
- * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
- * The adapters also support Eclipse property sheets.
- * Note that most of the adapters are shared among multiple instances.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class HockeyleagueItemProviderAdapterFactory extends HockeyleagueAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
-	/**
-	 * This keeps track of the root adapter factory that delegates to this adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ComposedAdapterFactory parentAdapterFactory;
-
-	/**
-	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IChangeNotifier changeNotifier = new ChangeNotifier();
-
-	/**
-	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection supportedTypes = new ArrayList();
-
-	/**
-	 * This constructs an instance.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueItemProviderAdapterFactory() {
-		supportedTypes.add(IEditingDomainItemProvider.class);
-		supportedTypes.add(IStructuredItemContentProvider.class);
-		supportedTypes.add(ITreeItemContentProvider.class);
-		supportedTypes.add(IItemLabelProvider.class);
-		supportedTypes.add(IItemPropertySource.class);
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ArenaItemProvider arenaItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createArenaAdapter() {
-		if (arenaItemProvider == null) {
-			arenaItemProvider = new ArenaItemProvider(this);
-		}
-
-		return arenaItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected DefenceItemProvider defenceItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createDefenceAdapter() {
-		if (defenceItemProvider == null) {
-			defenceItemProvider = new DefenceItemProvider(this);
-		}
-
-		return defenceItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ForwardItemProvider forwardItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createForwardAdapter() {
-		if (forwardItemProvider == null) {
-			forwardItemProvider = new ForwardItemProvider(this);
-		}
-
-		return forwardItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GoalieItemProvider goalieItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createGoalieAdapter() {
-		if (goalieItemProvider == null) {
-			goalieItemProvider = new GoalieItemProvider(this);
-		}
-
-		return goalieItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected GoalieStatsItemProvider goalieStatsItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createGoalieStatsAdapter() {
-		if (goalieStatsItemProvider == null) {
-			goalieStatsItemProvider = new GoalieStatsItemProvider(this);
-		}
-
-		return goalieStatsItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected LeagueItemProvider leagueItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createLeagueAdapter() {
-		if (leagueItemProvider == null) {
-			leagueItemProvider = new LeagueItemProvider(this);
-		}
-
-		return leagueItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PlayerStatsItemProvider playerStatsItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createPlayerStatsAdapter() {
-		if (playerStatsItemProvider == null) {
-			playerStatsItemProvider = new PlayerStatsItemProvider(this);
-		}
-
-		return playerStatsItemProvider;
-	}
-
-	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TeamItemProvider teamItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter createTeamAdapter() {
-		if (teamItemProvider == null) {
-			teamItemProvider = new TeamItemProvider(this);
-		}
-
-		return teamItemProvider;
-	}
-
-	/**
-	 * This returns the root adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ComposeableAdapterFactory getRootAdapterFactory() {
-		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
-	}
-
-	/**
-	 * This sets the composed adapter factory that contains this factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
-		this.parentAdapterFactory = parentAdapterFactory;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isFactoryForType(Object type) {
-		return supportedTypes.contains(type) || super.isFactoryForType(type);
-	}
-
-	/**
-	 * This implementation substitutes the factory itself as the key for the adapter.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Adapter adapt(Notifier notifier, Object type) {
-		return super.adapt(notifier, this);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object adapt(Object object, Object type) {
-		if (isFactoryForType(type)) {
-			Object adapter = super.adapt(object, type);
-			if (!(type instanceof Class) || (((Class)type).isInstance(adapter))) {
-				return adapter;
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * This adds a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void addListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.addListener(notifyChangedListener);
-	}
-
-	/**
-	 * This removes a listener.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void removeListener(INotifyChangedListener notifyChangedListener) {
-		changeNotifier.removeListener(notifyChangedListener);
-	}
-
-	/**
-	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void fireNotifyChanged(Notification notification) {
-		changeNotifier.fireNotifyChanged(notification);
-
-		if (parentAdapterFactory != null) {
-			parentAdapterFactory.fireNotifyChanged(notification);
-		}
-	}
-
-	/**
-	 * This disposes all of the item providers created by this factory. 
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void dispose() {
-		if (arenaItemProvider != null) arenaItemProvider.dispose();
-		if (defenceItemProvider != null) defenceItemProvider.dispose();
-		if (forwardItemProvider != null) forwardItemProvider.dispose();
-		if (goalieItemProvider != null) goalieItemProvider.dispose();
-		if (goalieStatsItemProvider != null) goalieStatsItemProvider.dispose();
-		if (leagueItemProvider != null) leagueItemProvider.dispose();
-		if (playerStatsItemProvider != null) playerStatsItemProvider.dispose();
-		if (teamItemProvider != null) teamItemProvider.dispose();
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueObjectItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueObjectItemProvider.java
deleted file mode 100644
index fd25ae3..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/HockeyleagueObjectItemProvider.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePlugin;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class HockeyleagueObjectItemProvider
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueObjectItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addNamePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Name feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNamePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_HockeyleagueObject_name_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_HockeyleagueObject_name_feature", "_UI_HockeyleagueObject_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.HOCKEYLEAGUE_OBJECT__NAME,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((HockeyleagueObject)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_HockeyleagueObject_type") : //$NON-NLS-1$
-			getString("_UI_HockeyleagueObject_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(HockeyleagueObject.class)) {
-			case HockeyleaguePackage.HOCKEYLEAGUE_OBJECT__NAME:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ResourceLocator getResourceLocator() {
-		return HockeyleaguePlugin.INSTANCE;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/LeagueItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/LeagueItemProvider.java
deleted file mode 100644
index 6b74918..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/LeagueItemProvider.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class LeagueItemProvider
-	extends HockeyleagueObjectItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public LeagueItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addHeadofficePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Headoffice feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addHeadofficePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_League_headoffice_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_League_headoffice_feature", "_UI_League_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.LEAGUE__HEADOFFICE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(HockeyleaguePackage.Literals.LEAGUE__TEAMS);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns League.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/League")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((League)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_League_type") : //$NON-NLS-1$
-			getString("_UI_League_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(League.class)) {
-			case HockeyleaguePackage.LEAGUE__HEADOFFICE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-			case HockeyleaguePackage.LEAGUE__TEAMS:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.LEAGUE__TEAMS,
-				 HockeyleagueFactory.eINSTANCE.createTeam()));
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerItemProvider.java
deleted file mode 100644
index 184646e..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerItemProvider.java
+++ /dev/null
@@ -1,303 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class PlayerItemProvider
-	extends HockeyleagueObjectItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PlayerItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addBirthplacePropertyDescriptor(object);
-			addNumberPropertyDescriptor(object);
-			addHeightMesurementPropertyDescriptor(object);
-			addHeightValuePropertyDescriptor(object);
-			addWeightMesurementPropertyDescriptor(object);
-			addWeightValuePropertyDescriptor(object);
-			addShotPropertyDescriptor(object);
-			addBirthdatePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Birthplace feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addBirthplacePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_birthplace_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_birthplace_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__BIRTHPLACE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Number feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addNumberPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_number_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_number_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__NUMBER,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Height Mesurement feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addHeightMesurementPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_heightMesurement_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_heightMesurement_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__HEIGHT_MESUREMENT,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Height Value feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addHeightValuePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_heightValue_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_heightValue_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__HEIGHT_VALUE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Weight Mesurement feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addWeightMesurementPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_weightMesurement_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_weightMesurement_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__WEIGHT_MESUREMENT,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Weight Value feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addWeightValuePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_weightValue_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_weightValue_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__WEIGHT_VALUE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Shot feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addShotPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_shot_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_shot_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__SHOT,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Birthdate feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addBirthdatePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_Player_birthdate_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_Player_birthdate_feature", "_UI_Player_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER__BIRTHDATE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((Player)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Player_type") : //$NON-NLS-1$
-			getString("_UI_Player_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Player.class)) {
-			case HockeyleaguePackage.PLAYER__BIRTHPLACE:
-			case HockeyleaguePackage.PLAYER__NUMBER:
-			case HockeyleaguePackage.PLAYER__HEIGHT_MESUREMENT:
-			case HockeyleaguePackage.PLAYER__HEIGHT_VALUE:
-			case HockeyleaguePackage.PLAYER__WEIGHT_MESUREMENT:
-			case HockeyleaguePackage.PLAYER__WEIGHT_VALUE:
-			case HockeyleaguePackage.PLAYER__SHOT:
-			case HockeyleaguePackage.PLAYER__BIRTHDATE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerStatsItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerStatsItemProvider.java
deleted file mode 100644
index df1add3..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/PlayerStatsItemProvider.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePlugin;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class PlayerStatsItemProvider
-	extends ItemProviderAdapter
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public PlayerStatsItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-			addYearPropertyDescriptor(object);
-			addTeamPropertyDescriptor(object);
-			addGamesPlayedInPropertyDescriptor(object);
-			addGoalsPropertyDescriptor(object);
-			addAssistsPropertyDescriptor(object);
-			addPointsPropertyDescriptor(object);
-			addPlusMinusPropertyDescriptor(object);
-			addPenaltyMinutesPropertyDescriptor(object);
-			addPowerPlayGoalsPropertyDescriptor(object);
-			addShortHandedGoalsPropertyDescriptor(object);
-			addGameWinningGoalsPropertyDescriptor(object);
-			addShotsPropertyDescriptor(object);
-			addShotPercentagePropertyDescriptor(object);
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This adds a property descriptor for the Year feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addYearPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_year_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_year_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__YEAR,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Team feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addTeamPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_team_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_team_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__TEAM,
-				 true,
-				 false,
-				 true,
-				 null,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Games Played In feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGamesPlayedInPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_gamesPlayedIn_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_gamesPlayedIn_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__GAMES_PLAYED_IN,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Goals feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGoalsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_goals_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_goals_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__GOALS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Assists feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addAssistsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_assists_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_assists_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__ASSISTS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Points feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPointsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_points_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_points_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__POINTS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Plus Minus feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPlusMinusPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_plusMinus_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_plusMinus_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__PLUS_MINUS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Penalty Minutes feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPenaltyMinutesPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_penaltyMinutes_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_penaltyMinutes_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__PENALTY_MINUTES,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Power Play Goals feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addPowerPlayGoalsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_powerPlayGoals_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_powerPlayGoals_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__POWER_PLAY_GOALS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Short Handed Goals feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addShortHandedGoalsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_shortHandedGoals_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_shortHandedGoals_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__SHORT_HANDED_GOALS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Game Winning Goals feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGameWinningGoalsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_gameWinningGoals_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_gameWinningGoals_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__GAME_WINNING_GOALS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Shots feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addShotsPropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_shots_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_shots_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__SHOTS,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.INTEGRAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This adds a property descriptor for the Shot Percentage feature.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addShotPercentagePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_PlayerStats_shotPercentage_feature"), //$NON-NLS-1$
-				 getString("_UI_PropertyDescriptor_description", "_UI_PlayerStats_shotPercentage_feature", "_UI_PlayerStats_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				 HockeyleaguePackage.Literals.PLAYER_STATS__SHOT_PERCENTAGE,
-				 true,
-				 false,
-				 false,
-				 ItemPropertyDescriptor.REAL_VALUE_IMAGE,
-				 null,
-				 null));
-	}
-
-	/**
-	 * This returns PlayerStats.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/PlayerStats")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((PlayerStats)object).getYear();
-		return label == null || label.length() == 0 ?
-			getString("_UI_PlayerStats_type") : //$NON-NLS-1$
-			getString("_UI_PlayerStats_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(PlayerStats.class)) {
-			case HockeyleaguePackage.PLAYER_STATS__YEAR:
-			case HockeyleaguePackage.PLAYER_STATS__GAMES_PLAYED_IN:
-			case HockeyleaguePackage.PLAYER_STATS__GOALS:
-			case HockeyleaguePackage.PLAYER_STATS__ASSISTS:
-			case HockeyleaguePackage.PLAYER_STATS__POINTS:
-			case HockeyleaguePackage.PLAYER_STATS__PLUS_MINUS:
-			case HockeyleaguePackage.PLAYER_STATS__PENALTY_MINUTES:
-			case HockeyleaguePackage.PLAYER_STATS__POWER_PLAY_GOALS:
-			case HockeyleaguePackage.PLAYER_STATS__SHORT_HANDED_GOALS:
-			case HockeyleaguePackage.PLAYER_STATS__GAME_WINNING_GOALS:
-			case HockeyleaguePackage.PLAYER_STATS__SHOTS:
-			case HockeyleaguePackage.PLAYER_STATS__SHOT_PERCENTAGE:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-	}
-
-	/**
-	 * Return the resource locator for this item provider's resources.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ResourceLocator getResourceLocator() {
-		return HockeyleaguePlugin.INSTANCE;
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/TeamItemProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/TeamItemProvider.java
deleted file mode 100644
index ea2dc94..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/provider/TeamItemProvider.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.provider;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
-import org.eclipse.emf.edit.provider.IItemLabelProvider;
-import org.eclipse.emf.edit.provider.IItemPropertySource;
-import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
-import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ViewerNotification;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * This is the item provider adapter for a {@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team} object.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
-public class TeamItemProvider
-	extends HockeyleagueObjectItemProvider
-	implements
-		IEditingDomainItemProvider,
-		IStructuredItemContentProvider,
-		ITreeItemContentProvider,
-		IItemLabelProvider,
-		IItemPropertySource {
-	/**
-	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public TeamItemProvider(AdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	/**
-	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public List getPropertyDescriptors(Object object) {
-		if (itemPropertyDescriptors == null) {
-			super.getPropertyDescriptors(object);
-
-		}
-		return itemPropertyDescriptors;
-	}
-
-	/**
-	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
-	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
-	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Collection getChildrenFeatures(Object object) {
-		if (childrenFeatures == null) {
-			super.getChildrenFeatures(object);
-			childrenFeatures.add(HockeyleaguePackage.Literals.TEAM__FORWARDS);
-			childrenFeatures.add(HockeyleaguePackage.Literals.TEAM__DEFENCEMEN);
-			childrenFeatures.add(HockeyleaguePackage.Literals.TEAM__GOALIES);
-			childrenFeatures.add(HockeyleaguePackage.Literals.TEAM__ARENA);
-		}
-		return childrenFeatures;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
-		// Check the type of the specified child object and return the proper feature to use for
-		// adding (see {@link AddCommand}) it as a child.
-
-		return super.getChildFeature(object, child);
-	}
-
-	/**
-	 * This returns Team.gif.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/Team")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String getText(Object object) {
-		String label = ((Team)object).getName();
-		return label == null || label.length() == 0 ?
-			getString("_UI_Team_type") : //$NON-NLS-1$
-			getString("_UI_Team_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached
-	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void notifyChanged(Notification notification) {
-		updateChildren(notification);
-
-		switch (notification.getFeatureID(Team.class)) {
-			case HockeyleaguePackage.TEAM__FORWARDS:
-			case HockeyleaguePackage.TEAM__DEFENCEMEN:
-			case HockeyleaguePackage.TEAM__GOALIES:
-			case HockeyleaguePackage.TEAM__ARENA:
-				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
-				return;
-		}
-		super.notifyChanged(notification);
-	}
-
-	/**
-	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
-	 * that can be created under this object.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void collectNewChildDescriptors(Collection newChildDescriptors, Object object) {
-		super.collectNewChildDescriptors(newChildDescriptors, object);
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.TEAM__FORWARDS,
-				 HockeyleagueFactory.eINSTANCE.createForward()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.TEAM__DEFENCEMEN,
-				 HockeyleagueFactory.eINSTANCE.createDefence()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.TEAM__GOALIES,
-				 HockeyleagueFactory.eINSTANCE.createGoalie()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(HockeyleaguePackage.Literals.TEAM__ARENA,
-				 HockeyleagueFactory.eINSTANCE.createArena()));
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/actions/HockeyleagueCreateChildAction.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/actions/HockeyleagueCreateChildAction.java
deleted file mode 100644
index c522581..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/actions/HockeyleagueCreateChildAction.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.examples.views.properties.tabbed.hockeyleague.ui.actions;
-
-import org.eclipse.emf.edit.command.AddCommand;
-import org.eclipse.emf.edit.command.CreateChildCommand;
-import org.eclipse.emf.edit.command.SetCommand;
-import org.eclipse.emf.edit.ui.action.CreateChildAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.dialogs.HockeyleagueSetDefaultsDialog;
-
-/**
- * Create child action for the Tabbed Properties View Hockey League Example.
- * 
- * @author Anthony Hunter
- */
-public class HockeyleagueCreateChildAction extends CreateChildAction {
-	public HockeyleagueCreateChildAction(IEditorPart editorPart,
-			ISelection selection, Object descriptor) {
-		super(editorPart, selection, descriptor);
-	}
-
-	public void run() {
-		CreateChildCommand createChildCommand = (CreateChildCommand) this.command;
-		HockeyleagueSetDefaultsDialog dialog;
-		if (createChildCommand.getCommand() instanceof AddCommand) {
-			AddCommand addCommand = (AddCommand) createChildCommand.getCommand();
-			dialog = new HockeyleagueSetDefaultsDialog(Display.getCurrent()
-					.getActiveShell(), addCommand);
-		} else if (createChildCommand.getCommand() instanceof SetCommand) {
-			SetCommand setCommand = (SetCommand) createChildCommand.getCommand();
-			dialog = new HockeyleagueSetDefaultsDialog(Display.getCurrent()
-					.getActiveShell(), setCommand);
-		} else {
-			dialog = null;
-		}
-		dialog.open();
-		if (dialog.getReturnCode() == Window.CANCEL) {
-			return;
-		}
-		super.run();
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/dialogs/HockeyleagueSetDefaultsDialog.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/dialogs/HockeyleagueSetDefaultsDialog.java
deleted file mode 100644
index adf7d05..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/dialogs/HockeyleagueSetDefaultsDialog.java
+++ /dev/null
@@ -1,310 +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.examples.views.properties.tabbed.hockeyleague.ui.dialogs;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.command.AddCommand;
-import org.eclipse.emf.edit.command.SetCommand;
-import org.eclipse.jface.dialogs.Dialog;
-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.Combo;
-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.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind;
-
-/**
- * A defaults dialog that allows for data entry for the Tabbed Properties View
- * Hockey League Example.
- * 
- * @author Anthony Hunter
- */
-public class HockeyleagueSetDefaultsDialog
-	extends Dialog {
-
-	private class DefaultValue {
-
-		protected Method method;
-
-		protected String label;
-
-		protected Object value;
-
-		protected Object widget;
-
-		protected DefaultValue(Method method) {
-			this.method = method;
-			label = method.getName().substring(3) + ":";//$NON-NLS-1$
-		}
-
-		public String toString() {
-			return method.toString();
-		}
-	}
-
-	private EObject owner = null;
-
-	private EObject child = null;
-
-	private ArrayList defaultValues = null;
-
-	public HockeyleagueSetDefaultsDialog(Shell parentShell,
-			AddCommand addCommand) {
-		super(parentShell);
-		Collection collection = addCommand.getCollection();
-		this.owner = addCommand.getOwner();
-		this.child = (EObject) collection.iterator().next();
-		this.defaultValues = getDefaultValues(child);
-	}
-
-	public HockeyleagueSetDefaultsDialog(Shell parentShell,
-			SetCommand setCommand) {
-		super(parentShell);
-		this.owner = setCommand.getOwner();
-		this.child = (EObject) setCommand.getValue();
-		this.defaultValues = getDefaultValues(child);
-	}
-
-	protected void configureShell(Shell shell) {
-		super.configureShell(shell);
-		shell.setText("Add New " + child.eClass().getName()); //$NON-NLS-1$
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite composite = (Composite) super.createDialogArea(parent);
-		Group group = createGroup(composite, child.eClass().getName(), 2);
-		for (Iterator i = defaultValues.iterator(); i.hasNext();) {
-			DefaultValue defaultValue = (DefaultValue) i.next();
-			Label label = createLabel(group, defaultValue.label);
-			label.setToolTipText(""); //$NON-NLS-1$
-			Class setType = defaultValue.method.getParameterTypes()[0];
-			if (setType.equals(String.class)) {
-				defaultValue.widget = createTextField(group);
-				((Text) defaultValue.widget).setText(defaultValue.method
-					.getName().substring(3));
-			} else if (setType.equals(int.class)) {
-				defaultValue.widget = createTextField(group);
-				((Text) defaultValue.widget).setText("0");//$NON-NLS-1$
-			} else if (setType.equals(float.class)) {
-				defaultValue.widget = createTextField(group);
-				((Text) defaultValue.widget).setText("0.0F");//$NON-NLS-1$
-			} else if (setType.equals(Boolean.class)) {
-				defaultValue.widget = createCheckBox(group, "Yes"); //$NON-NLS-1$
-			} else if (setType.equals(DefencePositionKind.class)) {
-				defaultValue.widget = createCombo(group, new String[] {
-					DefencePositionKind.LEFT_DEFENCE_LITERAL.getName(),
-					DefencePositionKind.RIGHT_DEFENCE_LITERAL.getName()});
-			} else if (setType.equals(ForwardPositionKind.class)) {
-				defaultValue.widget = createCombo(group, new String[] {
-					ForwardPositionKind.LEFT_WING_LITERAL.getName(),
-					ForwardPositionKind.RIGHT_WING_LITERAL.getName(),
-					ForwardPositionKind.CENTER_LITERAL.getName()});
-			} else if (setType.equals(WeightKind.class)) {
-				defaultValue.widget = createCombo(group, new String[] {
-					WeightKind.POUNDS_LITERAL.getName(),
-					WeightKind.KILOGRAMS_LITERAL.getName()});
-			} else if (setType.equals(ShotKind.class)) {
-				defaultValue.widget = createCombo(group, new String[] {
-					ShotKind.LEFT_LITERAL.getName(),
-					ShotKind.RIGHT_LITERAL.getName()});
-			} else if (setType.equals(HeightKind.class)) {
-				defaultValue.widget = createCombo(group, new String[] {
-					HeightKind.INCHES_LITERAL.getName(),
-					HeightKind.CENTIMETERS_LITERAL.getName()});
-			} else if (setType.equals(Team.class)) {
-				League league = (League) owner.eResource().getContents().get(0);
-				Team[] teams = (Team[]) league.getTeams().toArray();
-				String[] teamNames = new String[teams.length];
-				for (int t = 0; t < teams.length; t++) {
-					teamNames[t] = teams[t].getName();
-				}
-				defaultValue.widget = createCombo(group, teamNames);
-			} else {
-				defaultValue.widget = createLabel(group, "N/A");//$NON-NLS-1$
-			}
-		}
-		return composite;
-	}
-
-	protected Group createGroup(Composite parent, String text, int numColumns) {
-		Group composite = new Group(parent, SWT.NONE);
-		composite.setText(text);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		layout.makeColumnsEqualWidth = false;
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		composite.setLayoutData(data);
-		return composite;
-	}
-
-	protected Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(text);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-		return label;
-	}
-
-	protected Text createTextField(Composite parent) {
-		Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		data.verticalAlignment = GridData.CENTER;
-		data.grabExcessVerticalSpace = false;
-		data.widthHint = 250;
-		text.setLayoutData(data);
-		return text;
-	}
-
-	protected Button createCheckBox(Composite group, String label) {
-		Button button = new Button(group, SWT.CHECK | SWT.LEFT);
-		button.setText(label);
-		GridData data = new GridData();
-		button.setLayoutData(data);
-		return button;
-	}
-
-	protected Combo createCombo(Composite parent, String[] items) {
-		Combo combo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
-		combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		combo.setFont(parent.getFont());
-		combo.setItems(items);
-		combo.select(0);
-		return combo;
-	}
-
-	protected void okPressed() {
-		for (Iterator i = defaultValues.iterator(); i.hasNext();) {
-			DefaultValue defaultValue = (DefaultValue) i.next();
-			Class setType = defaultValue.method.getParameterTypes()[0];
-			if (setType.equals(String.class)) {
-				defaultValue.value = ((Text) defaultValue.widget).getText();
-			} else if (setType.equals(int.class)) {
-				String text = ((Text) defaultValue.widget).getText();
-				defaultValue.value = Integer.valueOf(text);
-			} else if (setType.equals(float.class)) {
-				String text = ((Text) defaultValue.widget).getText();
-				defaultValue.value = Float.valueOf(text);
-			} else if (setType.equals(DefencePositionKind.class)) {
-				switch (((Combo) defaultValue.widget).getSelectionIndex()) {
-					case DefencePositionKind.LEFT_DEFENCE:
-						defaultValue.value = DefencePositionKind.LEFT_DEFENCE_LITERAL;
-						break;
-					case DefencePositionKind.RIGHT_DEFENCE:
-						defaultValue.value = DefencePositionKind.RIGHT_DEFENCE_LITERAL;
-						break;
-				}
-			} else if (setType.equals(ForwardPositionKind.class)) {
-				switch (((Combo) defaultValue.widget).getSelectionIndex()) {
-					case ForwardPositionKind.LEFT_WING:
-						defaultValue.value = ForwardPositionKind.LEFT_WING_LITERAL;
-						break;
-					case ForwardPositionKind.CENTER:
-						defaultValue.value = ForwardPositionKind.CENTER_LITERAL;
-						break;
-					case ForwardPositionKind.RIGHT_WING:
-						defaultValue.value = ForwardPositionKind.RIGHT_WING_LITERAL;
-						break;
-				}
-			} else if (setType.equals(WeightKind.class)) {
-				switch (((Combo) defaultValue.widget).getSelectionIndex()) {
-					case WeightKind.KILOGRAMS:
-						defaultValue.value = WeightKind.KILOGRAMS_LITERAL;
-						break;
-					case WeightKind.POUNDS:
-						defaultValue.value = WeightKind.POUNDS_LITERAL;
-						break;
-				}
-			} else if (setType.equals(ShotKind.class)) {
-				switch (((Combo) defaultValue.widget).getSelectionIndex()) {
-					case ShotKind.LEFT:
-						defaultValue.value = ShotKind.LEFT_LITERAL;
-						break;
-					case ShotKind.RIGHT:
-						defaultValue.value = ShotKind.RIGHT_LITERAL;
-						break;
-				}
-			} else if (setType.equals(HeightKind.class)) {
-				switch (((Combo) defaultValue.widget).getSelectionIndex()) {
-					case HeightKind.CENTIMETERS:
-						defaultValue.value = HeightKind.CENTIMETERS_LITERAL;
-						break;
-					case HeightKind.INCHES:
-						defaultValue.value = HeightKind.INCHES_LITERAL;
-						break;
-				}
-			} else if (setType.equals(Team.class)) {
-				League league = (League) owner.eResource().getContents().get(0);
-				Team[] teams = (Team[]) league.getTeams().toArray();
-				defaultValue.value = teams[((Combo) defaultValue.widget)
-					.getSelectionIndex()];
-			} else if (setType.equals(Boolean.class)) {
-				defaultValue.value = ((Button) defaultValue.widget)
-					.getSelection() ? Boolean.TRUE
-					: Boolean.FALSE;
-			}
-		}
-		setDefaultValues(defaultValues, child);
-		super.okPressed();
-	}
-
-	private ArrayList getDefaultValues(EObject aChild) {
-		ArrayList ret = new ArrayList();
-		Class childClassImpl = aChild.getClass();
-		Method[] methods = childClassImpl.getMethods();
-		for (int i = 0; i < methods.length; i++) {
-			if (methods[i].getName().startsWith("set")) {//$NON-NLS-1$
-				Class setType = methods[i].getParameterTypes()[0];
-				if (!setType.equals(Class.class)
-					&& !setType.equals(Arena.class)
-					&& !setType.equals(EList.class)) {
-					ret.add(new DefaultValue(methods[i]));
-				}
-			}
-		}
-		return ret;
-	}
-
-	private void setDefaultValues(ArrayList defaultValues, EObject child) {
-		for (Iterator i = defaultValues.iterator(); i.hasNext();) {
-			DefaultValue defaultValue = (DefaultValue) i.next();
-			try {
-				defaultValue.method.invoke(child,
-					new Object[] {defaultValue.value});
-			} catch (Exception e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueActionBarContributor.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueActionBarContributor.java
deleted file mode 100644
index 97e6aa2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueActionBarContributor.java
+++ /dev/null
@@ -1,423 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.ui.editor;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-import org.eclipse.emf.edit.ui.action.ControlAction;
-import org.eclipse.emf.edit.ui.action.CreateChildAction;
-import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-import org.eclipse.emf.edit.ui.action.LoadResourceAction;
-import org.eclipse.emf.edit.ui.action.ValidateAction;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-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.SubContributionItem;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePlugin;
-
-/**
- * This is the action bar contributor for the Hockeyleague model editor.
- * <!-- begin-user-doc -->
- * @author Anthony Hunter
- * <!-- end-user-doc -->
- * @generated
- */
-public class HockeyleagueActionBarContributor
-	extends EditingDomainActionBarContributor
-	implements ISelectionChangedListener {
-	/**
-	 * This keeps track of the active editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IEditorPart activeEditorPart;
-
-	/**
-	 * This keeps track of the current selection provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelectionProvider selectionProvider;
-
-	/**
-	 * This action opens the Properties view.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IAction showPropertiesViewAction =
-		new Action(HockeyleaguePlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) //$NON-NLS-1$
-		{
-			public void run() {
-				try {
-					getPage().showView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$
-				}
-				catch (PartInitException exception) {
-					HockeyleaguePlugin.INSTANCE.log(exception);
-				}
-			}
-		};
-
-	/**
-	 * This action refreshes the viewer of the current editor if the editor
-	 * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IAction refreshViewerAction =
-		new Action(HockeyleaguePlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) //$NON-NLS-1$
-		{
-			public boolean isEnabled() {
-				return activeEditorPart instanceof IViewerProvider;
-			}
-
-			public void run() {
-				if (activeEditorPart instanceof IViewerProvider) {
-					Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
-					if (viewer != null) {
-						viewer.refresh();
-					}
-				}
-			}
-		};
-
-	/**
-	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
-	 * generated for the current selection by the item provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection createChildActions;
-
-	/**
-	 * This is the menu manager into which menu contribution items should be added for CreateChild actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IMenuManager createChildMenuManager;
-
-	/**
-	 * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
-	 * generated for the current selection by the item provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection createSiblingActions;
-
-	/**
-	 * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IMenuManager createSiblingMenuManager;
-
-	/**
-	 * This creates an instance of the contributor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueActionBarContributor() {
-		super(ADDITIONS_LAST_STYLE);
-		loadResourceAction = new LoadResourceAction();
-		validateAction = new ValidateAction();
-		controlAction = new ControlAction();
-	}
-
-	/**
-	 * This adds Separators for editor additions to the tool bar.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void contributeToToolBar(IToolBarManager toolBarManager) {
-		toolBarManager.add(new Separator("hockeyleague-settings")); //$NON-NLS-1$
-		toolBarManager.add(new Separator("hockeyleague-additions")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This adds to the menu bar a menu and some separators for editor additions,
-	 * as well as the sub-menus for object creation items.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void contributeToMenu(IMenuManager menuManager) {
-		super.contributeToMenu(menuManager);
-
-		IMenuManager submenuManager = new MenuManager(HockeyleaguePlugin.INSTANCE.getString("_UI_HockeyleagueEditor_menu"), "org.eclipse.ui.examples.views.properties.tabbed.hockeyleagueMenuID"); //$NON-NLS-1$ //$NON-NLS-2$
-		menuManager.insertAfter("additions", submenuManager); //$NON-NLS-1$
-		submenuManager.add(new Separator("settings")); //$NON-NLS-1$
-		submenuManager.add(new Separator("actions")); //$NON-NLS-1$
-		submenuManager.add(new Separator("additions")); //$NON-NLS-1$
-		submenuManager.add(new Separator("additions-end")); //$NON-NLS-1$
-
-		// Prepare for CreateChild item addition or removal.
-		//
-		createChildMenuManager = new MenuManager(HockeyleaguePlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
-		submenuManager.insertBefore("additions", createChildMenuManager); //$NON-NLS-1$
-
-		// Prepare for CreateSibling item addition or removal.
-		//
-		createSiblingMenuManager = new MenuManager(HockeyleaguePlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
-		submenuManager.insertBefore("additions", createSiblingMenuManager); //$NON-NLS-1$
-
-		// Force an update because Eclipse hides empty menus now.
-		//
-		submenuManager.addMenuListener
-			(new IMenuListener() {
-				 public void menuAboutToShow(IMenuManager menuManager) {
-					 menuManager.updateAll(true);
-				 }
-			 });
-
-		addGlobalActions(submenuManager);
-	}
-
-	/**
-	 * When the active editor changes, this remembers the change and registers with it as a selection provider.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setActiveEditor(IEditorPart part) {
-		super.setActiveEditor(part);
-		activeEditorPart = part;
-
-		// Switch to the new selection provider.
-		//
-		if (selectionProvider != null) {
-			selectionProvider.removeSelectionChangedListener(this);
-		}
-		if (part == null) {
-			selectionProvider = null;
-		}
-		else {
-			selectionProvider = part.getSite().getSelectionProvider();
-			selectionProvider.addSelectionChangedListener(this);
-
-			// Fake a selection changed event to update the menus.
-			//
-			if (selectionProvider.getSelection() != null) {
-				selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
-			}
-		}
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
-	 * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
-	 * that can be added to the selected object and updating the menus accordingly.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		// Remove any menu items for old selection.
-		//
-		if (createChildMenuManager != null) {
-			depopulateManager(createChildMenuManager, createChildActions);
-		}
-		if (createSiblingMenuManager != null) {
-			depopulateManager(createSiblingMenuManager, createSiblingActions);
-		}
-
-		// Query the new selection for appropriate new child/sibling descriptors
-		//
-		Collection newChildDescriptors = null;
-		Collection newSiblingDescriptors = null;
-
-		ISelection selection = event.getSelection();
-		if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
-			Object object = ((IStructuredSelection)selection).getFirstElement();
-
-			EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
-
-			newChildDescriptors = domain.getNewChildDescriptors(object, null);
-			newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
-		}
-
-		// Generate actions for selection; populate and redraw the menus.
-		//
-		createChildActions = generateCreateChildActions(newChildDescriptors, selection);
-		createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
-
-		if (createChildMenuManager != null) {
-			populateManager(createChildMenuManager, createChildActions, null);
-			createChildMenuManager.update(true);
-		}
-		if (createSiblingMenuManager != null) {
-			populateManager(createSiblingMenuManager, createSiblingActions, null);
-			createSiblingMenuManager.update(true);
-		}
-	}
-
-	/**
-	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
-	 * and returns the collection of these actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection generateCreateChildActions(Collection descriptors, ISelection selection) {
-		Collection actions = new ArrayList();
-		if (descriptors != null) {
-			for (Iterator i = descriptors.iterator(); i.hasNext(); ) {
-				actions.add(new CreateChildAction(activeEditorPart, selection, i.next()));
-			}
-		}
-		return actions;
-	}
-
-	/**
-	 * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
-	 * and returns the collection of these actions.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection generateCreateSiblingActions(Collection descriptors, ISelection selection) {
-		Collection actions = new ArrayList();
-		if (descriptors != null) {
-			for (Iterator i = descriptors.iterator(); i.hasNext(); ) {
-				actions.add(new CreateSiblingAction(activeEditorPart, selection, i.next()));
-			}
-		}
-		return actions;
-	}
-
-	/**
-	 * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
-	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
-	 * by inserting them before the specified contribution item <code>contributionID</code>.
-	 * If <code>contributionID</code> is <code>null</code>, they are simply added.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void populateManager(IContributionManager manager, Collection actions, String contributionID) {
-		if (actions != null) {
-			for (Iterator i = actions.iterator(); i.hasNext(); ) {
-				IAction action = (IAction)i.next();
-				if (contributionID != null) {
-					manager.insertBefore(contributionID, action);
-				}
-				else {
-					manager.add(action);
-				}
-			}
-		}
-	}
-		
-	/**
-	 * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
-	 * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void depopulateManager(IContributionManager manager, Collection actions) {
-		if (actions != null) {
-			IContributionItem[] items = manager.getItems();
-			for (int i = 0; i < items.length; i++) {
-				// Look into SubContributionItems
-				//
-				IContributionItem contributionItem = items[i];
-				while (contributionItem instanceof SubContributionItem) {
-					contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
-				}
-
-				// Delete the ActionContributionItems with matching action.
-				//
-				if (contributionItem instanceof ActionContributionItem) {
-					IAction action = ((ActionContributionItem)contributionItem).getAction();
-					if (actions.contains(action)) {
-						manager.remove(contributionItem);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * This populates the pop-up menu before it appears.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void menuAboutToShow(IMenuManager menuManager) {
-		super.menuAboutToShow(menuManager);
-		MenuManager submenuManager = null;
-
-		submenuManager = new MenuManager(HockeyleaguePlugin.INSTANCE.getString("_UI_CreateChild_menu_item")); //$NON-NLS-1$
-		populateManager(submenuManager, createChildActions, null);
-		menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
-
-		submenuManager = new MenuManager(HockeyleaguePlugin.INSTANCE.getString("_UI_CreateSibling_menu_item")); //$NON-NLS-1$
-		populateManager(submenuManager, createSiblingActions, null);
-		menuManager.insertBefore("edit", submenuManager); //$NON-NLS-1$
-	}
-
-	/**
-	 * This inserts global actions before the "additions-end" separator.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void addGlobalActions(IMenuManager menuManager) {
-		menuManager.insertAfter("additions-end", new Separator("ui-actions")); //$NON-NLS-1$ //$NON-NLS-2$
-		menuManager.insertAfter("ui-actions", showPropertiesViewAction); //$NON-NLS-1$
-
-		refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());		
-		menuManager.insertAfter("ui-actions", refreshViewerAction); //$NON-NLS-1$
-
-		super.addGlobalActions(menuManager);
-	}
-
-	/**
-	 * This ensures that a delete action will clean up all references to deleted objects.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean removeAllReferencesOnDelete() {
-		return true;
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueEditor.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueEditor.java
deleted file mode 100644
index e28534f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/editor/HockeyleagueEditor.java
+++ /dev/null
@@ -1,1741 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.ui.editor;
-
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EventObject;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.common.command.BasicCommandStack;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.common.command.CommandStack;
-import org.eclipse.emf.common.command.CommandStackListener;
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.ui.MarkerHelper;
-import org.eclipse.emf.common.ui.ViewerPane;
-import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
-import org.eclipse.emf.common.ui.viewer.IViewerProvider;
-import org.eclipse.emf.common.util.BasicDiagnostic;
-import org.eclipse.emf.common.util.Diagnostic;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EValidator;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EContentAdapter;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.emf.edit.domain.IEditingDomainProvider;
-import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
-import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
-import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
-import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
-import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
-import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
-import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
-import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
-import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
-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.dialogs.MessageDialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePlugin;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.provider.HockeyleagueItemProviderAdapterFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.HockeyleaguePropertySheetPage;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-
-/**
- * This is an example of a Hockeyleague model editor.
- * <!-- begin-user-doc -->
- * @author Anthony Hunter
- * <!-- end-user-doc -->
- * @generated
- */
-public class HockeyleagueEditor
-	extends MultiPageEditorPart
-	implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker, ITabbedPropertySheetPageContributor {
-	/**
-	 * This keeps track of the editing domain that is used to track all changes to the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected AdapterFactoryEditingDomain editingDomain;
-
-	/**
-	 * This is the one adapter factory used for providing views of the model.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ComposedAdapterFactory adapterFactory;
-
-	/**
-	 * This is the content outline page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IContentOutlinePage contentOutlinePage;
-
-	/**
-	 * This is a kludge...
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IStatusLineManager contentOutlineStatusLineManager;
-
-	/**
-	 * This is the content outline page's viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer contentOutlineViewer;
-
-	/**
-	 * This is the property sheet page.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	protected TabbedPropertySheetPage propertySheetPage;
-
-	/**
-	 * This is the viewer that shadows the selection in the content outline.
-	 * The parent relation must be correctly defined for this to work.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer selectionViewer;
-
-	/**
-	 * This inverts the roll of parent and child in the content provider and show parents as a tree.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer parentViewer;
-
-	/**
-	 * This shows how a tree view works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewer;
-
-	/**
-	 * This shows how a list view works.
-	 * A list viewer doesn't support icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ListViewer listViewer;
-
-	/**
-	 * This shows how a table view works.
-	 * A table can be used as a list with icons.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TableViewer tableViewer;
-
-	/**
-	 * This shows how a tree view with columns works.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected TreeViewer treeViewerWithColumns;
-
-	/**
-	 * This keeps track of the active viewer pane, in the book.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ViewerPane currentViewerPane;
-
-	/**
-	 * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Viewer currentViewer;
-
-	/**
-	 * This listens to which ever viewer is active.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelectionChangedListener selectionChangedListener;
-
-	/**
-	 * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection selectionChangedListeners = new ArrayList();
-
-	/**
-	 * This keeps track of the selection of the editor as a whole.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ISelection editorSelection = StructuredSelection.EMPTY;
-
-	/**
-	 * The MarkerHelper is responsible for creating workspace resource markers presented
-	 * in Eclipse's Problems View.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected MarkerHelper markerHelper = new EditUIMarkerHelper();
-
-	/**
-	 * This listens for when the outline becomes active
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IPartListener partListener =
-		new IPartListener() {
-			public void partActivated(IWorkbenchPart p) {
-				if (p instanceof ContentOutline) {
-					if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
-						getActionBarContributor().setActiveEditor(HockeyleagueEditor.this);
-
-						setCurrentViewer(contentOutlineViewer);
-					}
-				}
-				else if (p instanceof PropertySheet) {
-					if (((PropertySheet)p).getCurrentPage() == getPropertySheetPage()) {
-						getActionBarContributor().setActiveEditor(HockeyleagueEditor.this);
-						handleActivate();
-					}
-				}
-				else if (p == HockeyleagueEditor.this) {
-					handleActivate();
-				}
-			}
-			public void partBroughtToTop(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partClosed(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partDeactivated(IWorkbenchPart p) {
-				// Ignore.
-			}
-			public void partOpened(IWorkbenchPart p) {
-				// Ignore.
-			}
-		};
-
-	/**
-	 * Resources that have been removed since last activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection removedResources = new ArrayList();
-
-	/**
-	 * Resources that have been changed since last activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection changedResources = new ArrayList();
-
-	/**
-	 * Resources that have been saved.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Collection savedResources = new ArrayList();
-
-	/**
-	 * Map to store the diagnostic associated with a resource.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected Map resourceToDiagnosticMap = new LinkedHashMap();
-
-	/**
-	 * Controls whether the problem indication should be updated.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean updateProblemIndication = true;
-
-	/**
-	 * Adapter used to update the problem indication when resources are demanded loaded.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected EContentAdapter problemIndicationAdapter = 
-		new EContentAdapter() {
-			public void notifyChanged(Notification notification) {
-				if (notification.getNotifier() instanceof Resource) {
-					switch (notification.getFeatureID(Resource.class)) {
-						case Resource.RESOURCE__IS_LOADED:
-						case Resource.RESOURCE__ERRORS:
-						case Resource.RESOURCE__WARNINGS: {
-							Resource resource = (Resource)notification.getNotifier();
-							Diagnostic diagnostic = analyzeResourceProblems(resource, null);
-							if (diagnostic.getSeverity() != Diagnostic.OK) {
-								resourceToDiagnosticMap.put(resource, diagnostic);
-							}
-							else {
-								resourceToDiagnosticMap.remove(resource);
-							}
-
-							if (updateProblemIndication) {
-								getSite().getShell().getDisplay().asyncExec
-									(new Runnable() {
-										 public void run() {
-											 updateProblemIndication();
-										 }
-									 });
-							}
-							break;
-						}
-					}
-				}
-				else {
-					super.notifyChanged(notification);
-				}
-			}
-
-			protected void setTarget(Resource target) {
-				basicSetTarget(target);
-			}
-
-			protected void unsetTarget(Resource target) {
-				basicUnsetTarget(target);
-			}
-		};
-
-	/**
-	 * This listens for workspace changes.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected IResourceChangeListener resourceChangeListener =
-		new IResourceChangeListener() {
-			public void resourceChanged(IResourceChangeEvent event) {
-				IResourceDelta delta = event.getDelta();
-				try {
-					class ResourceDeltaVisitor implements IResourceDeltaVisitor {
-						protected ResourceSet resourceSet = editingDomain.getResourceSet();
-						protected Collection changedResources = new ArrayList();
-						protected Collection removedResources = new ArrayList();
-
-						public boolean visit(IResourceDelta delta) {
-							if (delta.getResource().getType() == IResource.FILE) {
-								if (delta.getKind() == IResourceDelta.REMOVED ||
-								    delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
-									Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
-									if (resource != null) {
-										if (delta.getKind() == IResourceDelta.REMOVED) {
-											removedResources.add(resource);
-										}
-										else if (!savedResources.remove(resource)) {
-											changedResources.add(resource);
-										}
-									}
-								}
-							}
-
-							return true;
-						}
-
-						public Collection getChangedResources() {
-							return changedResources;
-						}
-
-						public Collection getRemovedResources() {
-							return removedResources;
-						}
-					}
-
-					final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
-					delta.accept(visitor);
-
-					if (!visitor.getRemovedResources().isEmpty()) {
-						getSite().getShell().getDisplay().asyncExec
-							(new Runnable() {
-								 public void run() {
-									 removedResources.addAll(visitor.getRemovedResources());
-									 if (!isDirty()) {
-										 getSite().getPage().closeEditor(HockeyleagueEditor.this, false);
-									 }
-								 }
-							 });
-					}
-
-					if (!visitor.getChangedResources().isEmpty()) {
-						getSite().getShell().getDisplay().asyncExec
-							(new Runnable() {
-								 public void run() {
-									 changedResources.addAll(visitor.getChangedResources());
-									 if (getSite().getPage().getActiveEditor() == HockeyleagueEditor.this) {
-										 handleActivate();
-									 }
-								 }
-							 });
-					}
-				}
-				catch (CoreException exception) {
-					HockeyleaguePlugin.INSTANCE.log(exception);
-				}
-			}
-		};
-
-	/**
-	 * Handles activation of the editor or it's associated views.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void handleActivate() {
-		// Recompute the read only state.
-		//
-		if (editingDomain.getResourceToReadOnlyMap() != null) {
-		  editingDomain.getResourceToReadOnlyMap().clear();
-
-		  // Refresh any actions that may become enabled or disabled.
-		  //
-		  setSelection(getSelection());
-		}
-
-		if (!removedResources.isEmpty()) {
-			if (handleDirtyConflict()) {
-				getSite().getPage().closeEditor(HockeyleagueEditor.this, false);
-			}
-			else {
-				removedResources.clear();
-				changedResources.clear();
-				savedResources.clear();
-			}
-		}
-		else if (!changedResources.isEmpty()) {
-			changedResources.removeAll(savedResources);
-			handleChangedResources();
-			changedResources.clear();
-			savedResources.clear();
-		}
-	}
-
-	/**
-	 * Handles what to do with changed resources on activation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void handleChangedResources() {
-		if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
-			if (isDirty()) {
-				changedResources.addAll(editingDomain.getResourceSet().getResources());
-			}
-			editingDomain.getCommandStack().flush();
-
-			updateProblemIndication = false;
-			for (Iterator i = changedResources.iterator(); i.hasNext(); ) {
-				Resource resource = (Resource)i.next();
-				if (resource.isLoaded()) {
-					resource.unload();
-					try {
-						resource.load(Collections.EMPTY_MAP);
-					}
-					catch (IOException exception) {
-						if (!resourceToDiagnosticMap.containsKey(resource)) {
-							resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-						}
-					}
-				}
-			}
-
-
-			updateProblemIndication = true;
-			updateProblemIndication();
-		}
-	}
-  
-	/**
-	 * Updates the problems indication with the information described in the specified diagnostic.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void updateProblemIndication() {
-		if (updateProblemIndication) {
-			BasicDiagnostic diagnostic =
-				new BasicDiagnostic
-					(Diagnostic.OK,
-					 "org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.editor", //$NON-NLS-1$
-					 0,
-					 null,
-					 new Object [] { editingDomain.getResourceSet() });
-			for (Iterator i = resourceToDiagnosticMap.values().iterator(); i.hasNext(); ) {
-				Diagnostic childDiagnostic = (Diagnostic)i.next();
-				if (childDiagnostic.getSeverity() != Diagnostic.OK) {
-					diagnostic.add(childDiagnostic);
-				}
-			}
-
-			int lastEditorPage = getPageCount() - 1;
-			if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
-				((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
-				if (diagnostic.getSeverity() != Diagnostic.OK) {
-					setActivePage(lastEditorPage);
-				}
-			}
-			else if (diagnostic.getSeverity() != Diagnostic.OK) {
-				ProblemEditorPart problemEditorPart = new ProblemEditorPart();
-				problemEditorPart.setDiagnostic(diagnostic);
-				problemEditorPart.setMarkerHelper(markerHelper);
-				try {
-					addPage(++lastEditorPage, problemEditorPart, getEditorInput());
-					setPageText(lastEditorPage, problemEditorPart.getPartName());
-					setActivePage(lastEditorPage);
-					showTabs();
-				}
-				catch (PartInitException exception) {
-					HockeyleaguePlugin.INSTANCE.log(exception);
-				}
-			}
-
-			if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
-				markerHelper.deleteMarkers(editingDomain.getResourceSet());
-				if (diagnostic.getSeverity() != Diagnostic.OK) {
-					try {
-						markerHelper.createMarkers(diagnostic);
-					}
-					catch (CoreException exception) {
-						HockeyleaguePlugin.INSTANCE.log(exception);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Shows a dialog that asks if conflicting changes should be discarded.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean handleDirtyConflict() {
-		return
-			MessageDialog.openQuestion
-				(getSite().getShell(),
-				 getString("_UI_FileConflict_label"), //$NON-NLS-1$
-				 getString("_WARN_FileConflict")); //$NON-NLS-1$
-	}
-
-	/**
-	 * This creates a model editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueEditor() {
-		super();
-		initializeEditingDomain();
-	}
-
-	/**
-	 * This sets up the editing domain for the model editor.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void initializeEditingDomain() {
-		// Create an adapter factory that yields item providers.
-		//
-		adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
-
-		adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
-		adapterFactory.addAdapterFactory(new HockeyleagueItemProviderAdapterFactory());
-		adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
-
-		// Create the command stack that will notify this editor as commands are executed.
-		//
-		BasicCommandStack commandStack = new BasicCommandStack();
-
-		// Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
-		//
-		commandStack.addCommandStackListener
-			(new CommandStackListener() {
-				 public void commandStackChanged(final EventObject event) {
-					 getContainer().getDisplay().asyncExec
-						 (new Runnable() {
-							  public void run() {
-								  firePropertyChange(IEditorPart.PROP_DIRTY);
-
-								  // Try to select the affected objects.
-								  //
-								  Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
-								  if (mostRecentCommand != null) {
-									  setSelectionToViewer(mostRecentCommand.getAffectedObjects());
-								  }
-								  if (getPropertySheetPage() != null && !getPropertySheetPage().getControl().isDisposed()) {
-									  getPropertySheetPage().refresh();
-								  }
-							  }
-						  });
-				 }
-			 });
-
-		// Create the editing domain with a special command stack.
-		//
-		editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap());
-	}
-
-	/**
-	 * This is here for the listener to be able to call it.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void firePropertyChange(int action) {
-		super.firePropertyChange(action);
-	}
-
-	/**
-	 * This sets the selection into whichever viewer is active.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSelectionToViewer(Collection collection) {
-		final Collection theSelection = collection;
-		// Make sure it's okay.
-		//
-		if (theSelection != null && !theSelection.isEmpty()) {
-			Runnable runnable =
-				new Runnable() {
-					public void run() {
-						// Try to select the items in the current content viewer of the editor.
-						//
-						if (currentViewer != null) {
-							currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
-						}
-					}
-				};
-			getSite().getShell().getDisplay().asyncExec(runnable);
-		}
-	}
-
-	/**
-	 * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
-	 * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
-	 * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EditingDomain getEditingDomain() {
-		return editingDomain;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
-			super(adapterFactory);
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public Object [] getElements(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public Object [] getChildren(Object object) {
-			Object parent = super.getParent(object);
-			return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public boolean hasChildren(Object object) {
-			Object parent = super.getParent(object);
-			return parent != null;
-		}
-
-		/**
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		public Object getParent(Object object) {
-			return null;
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCurrentViewerPane(ViewerPane viewerPane) {
-		if (currentViewerPane != viewerPane) {
-			if (currentViewerPane != null) {
-				currentViewerPane.showFocus(false);
-			}
-			currentViewerPane = viewerPane;
-		}
-		setCurrentViewer(currentViewerPane.getViewer());
-	}
-
-	/**
-	 * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
-	 * is the current one.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setCurrentViewer(Viewer viewer) {
-		// If it is changing...
-		//
-		if (currentViewer != viewer) {
-			if (selectionChangedListener == null) {
-				// Create the listener on demand.
-				//
-				selectionChangedListener =
-					new ISelectionChangedListener() {
-						// This just notifies those things that are affected by the section.
-						//
-						public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
-							setSelection(selectionChangedEvent.getSelection());
-						}
-					};
-			}
-
-			// Stop listening to the old one.
-			//
-			if (currentViewer != null) {
-				currentViewer.removeSelectionChangedListener(selectionChangedListener);
-			}
-
-			// Start listening to the new one.
-			//
-			if (viewer != null) {
-				viewer.addSelectionChangedListener(selectionChangedListener);
-			}
-
-			// Remember it.
-			//
-			currentViewer = viewer;
-
-			// Set the editors selection based on the current viewer's selection.
-			//
-			setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
-		}
-	}
-
-	/**
-	 * This returns the viewer as required by the {@link IViewerProvider} interface.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Viewer getViewer() {
-		return currentViewer;
-	}
-
-	/**
-	 * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void createContextMenuFor(StructuredViewer viewer) {
-		MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
-		contextMenu.add(new Separator("additions")); //$NON-NLS-1$
-		contextMenu.setRemoveAllWhenShown(true);
-		contextMenu.addMenuListener(this);
-		Menu menu= contextMenu.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(contextMenu, viewer);
-
-		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
-		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
-		viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
-	}
-
-	/**
-	 * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createModel() {
-		// Assumes that the input is a file object.
-		//
-		IFileEditorInput modelFile = (IFileEditorInput)getEditorInput();
-		URI resourceURI = URI.createPlatformResourceURI(modelFile.getFile().getFullPath().toString(), true);
-		Exception exception = null;
-		Resource resource = null;
-		try {
-			// Load the resource through the editing domain.
-			//
-			resource = editingDomain.getResourceSet().getResource(resourceURI, true);
-		}
-		catch (Exception e) {
-			exception = e;
-			resource = editingDomain.getResourceSet().getResource(resourceURI, false);
-		}
-
-		Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
-		if (diagnostic.getSeverity() != Diagnostic.OK) {
-			resourceToDiagnosticMap.put(resource,  analyzeResourceProblems(resource, exception));
-		}
-		editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
-	}
-
-	/**
-	 * Returns a diagnostic describing the errors and warnings listed in the resource
-	 * and the specified exception (if any).
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
-		if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
-			BasicDiagnostic basicDiagnostic =
-				new BasicDiagnostic
-					(Diagnostic.ERROR,
-					 "org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.editor", //$NON-NLS-1$
-					 0,
-					 getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
-					 new Object [] { exception == null ? (Object)resource : exception });
-			basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
-			return basicDiagnostic;
-		}
-		else if (exception != null) {
-			return
-				new BasicDiagnostic
-					(Diagnostic.ERROR,
-					 "org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.editor", //$NON-NLS-1$
-					 0,
-					 getString("_UI_CreateModelError_message", resource.getURI()), //$NON-NLS-1$
-					 new Object[] { exception });
-		}
-		else {
-			return Diagnostic.OK_INSTANCE;
-		}
-	}
-
-	/**
-	 * This is the method used by the framework to install your own controls.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void createPages() {
-		// Creates the model from the editor input
-		//
-		createModel();
-
-		// Only creates the other pages if there is something that can be edited
-		//
-		if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
-			// Create a page for the selection tree view.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), HockeyleagueEditor.this) {
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				selectionViewer = (TreeViewer)viewerPane.getViewer();
-				selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-
-				selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-				selectionViewer.setInput(editingDomain.getResourceSet());
-				selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-				viewerPane.setTitle(editingDomain.getResourceSet());
-
-				new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
-
-				createContextMenuFor(selectionViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
-			}
-
-			// Create a page for the parent tree view.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), HockeyleagueEditor.this) {
-						public Viewer createViewer(Composite composite) {
-							Tree tree = new Tree(composite, SWT.MULTI);
-							TreeViewer newTreeViewer = new TreeViewer(tree);
-							return newTreeViewer;
-						}
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				parentViewer = (TreeViewer)viewerPane.getViewer();
-				parentViewer.setAutoExpandLevel(30);
-				parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
-				parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(parentViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ParentPage_label")); //$NON-NLS-1$
-			}
-
-			// This is the page for the list viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), HockeyleagueEditor.this) {
-						public Viewer createViewer(Composite composite) {
-							return new ListViewer(composite);
-						}
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				listViewer = (ListViewer)viewerPane.getViewer();
-				listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(listViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_ListPage_label")); //$NON-NLS-1$
-			}
-
-			// This is the page for the tree viewer
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), HockeyleagueEditor.this) {
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				treeViewer = (TreeViewer)viewerPane.getViewer();
-				treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
-
-				createContextMenuFor(treeViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreePage_label")); //$NON-NLS-1$
-			}
-
-			// This is the page for the table viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), HockeyleagueEditor.this) {
-						public Viewer createViewer(Composite composite) {
-							return new TableViewer(composite);
-						}
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-				tableViewer = (TableViewer)viewerPane.getViewer();
-
-				Table table = tableViewer.getTable();
-				TableLayout layout = new TableLayout();
-				table.setLayout(layout);
-				table.setHeaderVisible(true);
-				table.setLinesVisible(true);
-
-				TableColumn objectColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(3, 100, true));
-				objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
-				objectColumn.setResizable(true);
-
-				TableColumn selfColumn = new TableColumn(table, SWT.NONE);
-				layout.addColumnData(new ColumnWeightData(2, 100, true));
-				selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
-				selfColumn.setResizable(true);
-
-				tableViewer.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
-				tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(tableViewer);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TablePage_label")); //$NON-NLS-1$
-			}
-
-			// This is the page for the table tree viewer.
-			//
-			{
-				ViewerPane viewerPane =
-					new ViewerPane(getSite().getPage(), HockeyleagueEditor.this) {
-						public Viewer createViewer(Composite composite) {
-							return new TreeViewer(composite);
-						}
-						public void requestActivation() {
-							super.requestActivation();
-							setCurrentViewerPane(this);
-						}
-					};
-				viewerPane.createControl(getContainer());
-
-				treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
-
-				Tree tree = treeViewerWithColumns.getTree();
-				tree.setLayoutData(new FillLayout());
-				tree.setHeaderVisible(true);
-				tree.setLinesVisible(true);
-
-				TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
-				objectColumn.setText(getString("_UI_ObjectColumn_label")); //$NON-NLS-1$
-				objectColumn.setResizable(true);
-				objectColumn.setWidth(250);
-
-				TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
-				selfColumn.setText(getString("_UI_SelfColumn_label")); //$NON-NLS-1$
-				selfColumn.setResizable(true);
-				selfColumn.setWidth(200);
-
-				treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"}); //$NON-NLS-1$ //$NON-NLS-2$
-				treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-				treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-
-				createContextMenuFor(treeViewerWithColumns);
-				int pageIndex = addPage(viewerPane.getControl());
-				setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label")); //$NON-NLS-1$
-			}
-
-			getSite().getShell().getDisplay().asyncExec
-				(new Runnable() {
-					 public void run() {
-						 setActivePage(0);
-					 }
-				 });
-		}
-
-		// Ensures that this editor will only display the page's tab
-		// area if there are more than one page
-		//
-		getContainer().addControlListener
-			(new ControlAdapter() {
-				boolean guard = false;
-				public void controlResized(ControlEvent event) {
-					if (!guard) {
-						guard = true;
-						hideTabs();
-						guard = false;
-					}
-				}
-			 });
-
-		getSite().getShell().getDisplay().asyncExec
-			(new Runnable() {
-				 public void run() {
-					 updateProblemIndication();
-				 }
-			 });
-	}
-
-	/**
-	 * If there is just one page in the multi-page editor part,
-	 * this hides the single tab at the bottom.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void hideTabs() {
-		if (getPageCount() <= 1) {
-			setPageText(0, ""); //$NON-NLS-1$
-			if (getContainer() instanceof CTabFolder) {
-				((CTabFolder)getContainer()).setTabHeight(1);
-				Point point = getContainer().getSize();
-				getContainer().setSize(point.x, point.y + 6);
-			}
-		}
-	}
-
-	/**
-	 * If there is more than one page in the multi-page editor part,
-	 * this shows the tabs at the bottom.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void showTabs() {
-		if (getPageCount() > 1) {
-			setPageText(0, getString("_UI_SelectionPage_label")); //$NON-NLS-1$
-			if (getContainer() instanceof CTabFolder) {
-				((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
-				Point point = getContainer().getSize();
-				getContainer().setSize(point.x, point.y - 6);
-			}
-		}
-	}
-
-	/**
-	 * This is used to track the active viewer.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void pageChange(int pageIndex) {
-		super.pageChange(pageIndex);
-
-		if (contentOutlinePage != null) {
-			handleContentOutlineSelection(contentOutlinePage.getSelection());
-		}
-	}
-
-	/**
-	 * This is how the framework determines which interfaces we implement.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Object getAdapter(Class key) {
-		if (key.equals(IContentOutlinePage.class)) {
-			return showOutlineView() ? getContentOutlinePage() : null;
-		}
-		else if (key.equals(IPropertySheetPage.class)) {
-			return getPropertySheetPage();
-		}
-		else if (key.equals(IGotoMarker.class)) {
-			return this;
-		}
-		else {
-			return super.getAdapter(key);
-		}
-	}
-
-	/**
-	 * This accesses a cached version of the content outliner.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IContentOutlinePage getContentOutlinePage() {
-		if (contentOutlinePage == null) {
-			// The content outline is just a tree.
-			//
-			class MyContentOutlinePage extends ContentOutlinePage {
-				public void createControl(Composite parent) {
-					super.createControl(parent);
-					contentOutlineViewer = getTreeViewer();
-					contentOutlineViewer.addSelectionChangedListener(this);
-
-					// Set up the tree viewer.
-					//
-					contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
-					contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
-					contentOutlineViewer.setInput(editingDomain.getResourceSet());
-
-					// Make sure our popups work.
-					//
-					createContextMenuFor(contentOutlineViewer);
-
-					if (!editingDomain.getResourceSet().getResources().isEmpty()) {
-					  // Select the root object in the view.
-					  //
-					  contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
-					}
-				}
-
-				public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-					super.makeContributions(menuManager, toolBarManager, statusLineManager);
-					contentOutlineStatusLineManager = statusLineManager;
-				}
-
-				public void setActionBars(IActionBars actionBars) {
-					super.setActionBars(actionBars);
-					getActionBarContributor().shareGlobalActions(this, actionBars);
-				}
-			}
-
-			contentOutlinePage = new MyContentOutlinePage();
-
-			// Listen to selection so that we can handle it is a special way.
-			//
-			contentOutlinePage.addSelectionChangedListener
-				(new ISelectionChangedListener() {
-					 // This ensures that we handle selections correctly.
-					 //
-					 public void selectionChanged(SelectionChangedEvent event) {
-						 handleContentOutlineSelection(event.getSelection());
-					 }
-				 });
-		}
-
-		return contentOutlinePage;
-	}
-
-	/**
-	 * This accesses a cached version of the property sheet.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated NOT
-	 */
-	public TabbedPropertySheetPage getPropertySheetPage() {
-		if (propertySheetPage == null || propertySheetPage.getControl() == null) {
-			propertySheetPage = new HockeyleaguePropertySheetPage(this);
-		}
-
-		return propertySheetPage;
-	}
-
-	/**
-	 * This deals with how we want selection in the outliner to affect the other views.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void handleContentOutlineSelection(ISelection selection) {
-		if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
-			Iterator selectedElements = ((IStructuredSelection)selection).iterator();
-			if (selectedElements.hasNext()) {
-				// Get the first selected element.
-				//
-				Object selectedElement = selectedElements.next();
-
-				// If it's the selection viewer, then we want it to select the same selection as this selection.
-				//
-				if (currentViewerPane.getViewer() == selectionViewer) {
-					ArrayList selectionList = new ArrayList();
-					selectionList.add(selectedElement);
-					while (selectedElements.hasNext()) {
-						selectionList.add(selectedElements.next());
-					}
-
-					// Set the selection to the widget.
-					//
-					selectionViewer.setSelection(new StructuredSelection(selectionList));
-				}
-				else {
-					// Set the input to the widget.
-					//
-					if (currentViewerPane.getViewer().getInput() != selectedElement) {
-						currentViewerPane.getViewer().setInput(selectedElement);
-						currentViewerPane.setTitle(selectedElement);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * This is for implementing {@link IEditorPart} and simply tests the command stack.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isDirty() {
-		return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
-	}
-
-	/**
-	 * This is for implementing {@link IEditorPart} and simply saves the model file.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void doSave(IProgressMonitor progressMonitor) {
-		// Save only resources that have actually changed.
-		//
-		final Map saveOptions = new HashMap();
-
-		// Do the work within an operation because this is a long running activity that modifies the workbench.
-		//
-		WorkspaceModifyOperation operation =
-			new WorkspaceModifyOperation() {
-				// This is the method that gets invoked when the operation runs.
-				//
-				public void execute(IProgressMonitor monitor) {
-					// Save the resources to the file system.
-					//
-					boolean first = true;
-					for (Iterator i = editingDomain.getResourceSet().getResources().iterator(); i.hasNext(); ) {
-						Resource resource = (Resource)i.next();
-						if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
-							try {
-								resource.save(saveOptions);
-								savedResources.add(resource);
-							}
-							catch (Exception exception) {
-								resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
-							}
-							first = false;
-						}
-					}
-				}
-			};
-
-		updateProblemIndication = false;
-		try {
-			// This runs the options, and shows progress.
-			//
-			new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
-
-			// Refresh the necessary state.
-			//
-			((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
-			firePropertyChange(IEditorPart.PROP_DIRTY);
-		}
-		catch (Exception exception) {
-			// Something went wrong that shouldn't.
-			//
-			HockeyleaguePlugin.INSTANCE.log(exception);
-		}
-		updateProblemIndication = true;
-		updateProblemIndication();
-	}
-
-	/**
-	 * This returns whether something has been persisted to the URI of the specified resource.
-	 * The implementation uses the URI converter from the editor's resource set to try to open an input stream. 
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean isPersisted(Resource resource) {
-		boolean result = false;
-		try {
-			InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
-			if (stream != null) {
-				result = true;
-				stream.close();
-			}
-		}
-		catch (IOException e) {
-			// Ignore
-		}
-		return result;
-	}
-
-	/**
-	 * This always returns true because it is not currently supported.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public boolean isSaveAsAllowed() {
-		return true;
-	}
-
-	/**
-	 * This also changes the editor's input.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void doSaveAs() {
-		SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
-		saveAsDialog.open();
-		IPath path = saveAsDialog.getResult();
-		if (path != null) {
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-			if (file != null) {
-				doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
-			}
-		}
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected void doSaveAs(URI uri, IEditorInput editorInput) {
-		((Resource)editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
-		setInputWithNotify(editorInput);
-		setPartName(editorInput.getName());
-		IProgressMonitor progressMonitor =
-			getActionBars().getStatusLineManager() != null ?
-				getActionBars().getStatusLineManager().getProgressMonitor() :
-				new NullProgressMonitor();
-		doSave(progressMonitor);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void gotoMarker(IMarker marker) {
-		try {
-			if (marker.getType().equals(EValidator.MARKER)) {
-				String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
-				if (uriAttribute != null) {
-					URI uri = URI.createURI(uriAttribute);
-					EObject eObject = editingDomain.getResourceSet().getEObject(uri, true);
-					if (eObject != null) {
-					  setSelectionToViewer(Collections.singleton(editingDomain.getWrapper(eObject)));
-					}
-				}
-			}
-		}
-		catch (CoreException exception) {
-			HockeyleaguePlugin.INSTANCE.log(exception);
-		}
-	}
-
-	/**
-	 * This is called during startup.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void init(IEditorSite site, IEditorInput editorInput) {
-		setSite(site);
-		setInputWithNotify(editorInput);
-		setPartName(editorInput.getName());
-		site.setSelectionProvider(this);
-		site.getPage().addPartListener(partListener);
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setFocus() {
-		if (currentViewerPane != null) {
-			currentViewerPane.setFocus();
-		}
-		else {
-			getControl(getActivePage()).setFocus();
-		}
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.add(listener);
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.remove(listener);
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public ISelection getSelection() {
-		return editorSelection;
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
-	 * Calling this result will notify the listeners.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setSelection(ISelection selection) {
-		editorSelection = selection;
-
-		for (Iterator listeners = selectionChangedListeners.iterator(); listeners.hasNext(); ) {
-			ISelectionChangedListener listener = (ISelectionChangedListener)listeners.next();
-			listener.selectionChanged(new SelectionChangedEvent(this, selection));
-		}
-		setStatusLineManager(selection);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setStatusLineManager(ISelection selection) {
-		IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
-			contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
-
-		if (statusLineManager != null) {
-			if (selection instanceof IStructuredSelection) {
-				Collection collection = ((IStructuredSelection)selection).toList();
-				switch (collection.size()) {
-					case 0: {
-						statusLineManager.setMessage(getString("_UI_NoObjectSelected")); //$NON-NLS-1$
-						break;
-					}
-					case 1: {
-						String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
-						statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text)); //$NON-NLS-1$
-						break;
-					}
-					default: {
-						statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size()))); //$NON-NLS-1$
-						break;
-					}
-				}
-			}
-			else {
-				statusLineManager.setMessage(""); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * This looks up a string in the plugin's plugin.properties file.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static String getString(String key) {
-		return HockeyleaguePlugin.INSTANCE.getString(key);
-	}
-
-	/**
-	 * This looks up a string in plugin.properties, making a substitution.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private static String getString(String key, Object s1) {
-		return HockeyleaguePlugin.INSTANCE.getString(key, new Object [] { s1 });
-	}
-
-	/**
-	 * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void menuAboutToShow(IMenuManager menuManager) {
-		((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EditingDomainActionBarContributor getActionBarContributor() {
-		return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public IActionBars getActionBars() {
-		return getActionBarContributor().getActionBars();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public AdapterFactory getAdapterFactory() {
-		return adapterFactory;
-	}
-
-	/**
-	 * 
-	 */
-	public String getContributorId() {
-		return "org.eclipse.ui.examples.views.properties.tabbed.hockeyleague";//$NON-NLS-1$
-	}
-
-	/**
-	 * <!-- begin-user-doc --> 
-	 * <!-- end-user-doc -->
-	 * 
-	 * @generated
-	 */
-	public void dispose() {
-		updateProblemIndication = false;
-
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
-
-		getSite().getPage().removePartListener(partListener);
-
-		adapterFactory.dispose();
-
-		if (getActionBarContributor().getActiveEditor() == this) {
-			getActionBarContributor().setActiveEditor(null);
-		}
-
-		if (getPropertySheetPage() != null) {
-			getPropertySheetPage().dispose();
-		}
-
-		if (contentOutlinePage != null) {
-			contentOutlinePage.dispose();
-		}
-
-		super.dispose();
-	}
-
-	/**
-	 * Returns whether the outline view should be presented to the user.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected boolean showOutlineView() {
-		return true;
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleagueLabelProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleagueLabelProvider.java
deleted file mode 100644
index ea0bb60..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleagueLabelProvider.java
+++ /dev/null
@@ -1,144 +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.examples.views.properties.tabbed.hockeyleague.ui.properties;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor;
-
-/**
- * Label provider for the title bar for the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class HockeyleagueLabelProvider
-	extends LabelProvider {
-
-	private AdapterFactoryLabelProvider adapterFactoryLabelProvider;
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		if (element == null || element.equals(StructuredSelection.EMPTY)) {
-			return null;
-		}
-		if (element instanceof IStructuredSelection) {
-			IStructuredSelection structuredSelection = (IStructuredSelection) element;
-			if (areDifferentTypes(structuredSelection)) {
-				return null;
-			}
-			element = structuredSelection.getFirstElement();
-		}
-		if (element instanceof EObject || element instanceof Resource) {
-			return getAdapterFactoryLabelProvider().getImage(element);
-		}
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		if (element == null || element.equals(StructuredSelection.EMPTY)) {
-			return null;
-		}
-		int size = 1;
-		if (element instanceof IStructuredSelection) {
-			IStructuredSelection structuredSelection = (IStructuredSelection) element;
-			if (areDifferentTypes(structuredSelection)) {
-				return structuredSelection.size() + " items selected";//$NON-NLS-1$
-			}
-			element = structuredSelection.getFirstElement();
-			size = structuredSelection.size();
-		}
-		if (element instanceof EObject) {
-			String split[] = getAdapterFactoryLabelProvider().getText(element)
-				.split(" ");//$NON-NLS-1$
-			StringBuffer type = new StringBuffer();
-			StringBuffer name = new StringBuffer();
-			for (int i = 0; i < split.length; i++) {
-				if (i == 0) {
-					type.append('\u00AB');
-					type.append(split[i]);
-					if (!(element instanceof PlayerStats || element instanceof GoalieStats)) {
-						type.append('\u00BB');
-					}
-				} else if ((i == 1 && (element instanceof PlayerStats || element instanceof GoalieStats))) {
-					type.append(' ');
-					type.append(split[i]);
-					type.append('\u00BB');
-				} else {
-					name.append(split[i]);
-					name.append(' ');
-				}
-			}
-			if (size == 1) {
-				type.append(' ');
-				type.append(name);
-			} else {
-				type.append(' ');
-				type.append(Integer.toString(size));
-				type.append(" selected");//$NON-NLS-1$
-			}
-			return type.toString();
-		} else if (element instanceof Resource) {
-			return "\u00ABResource\u00BB";//$NON-NLS-1$
-		}
-		return null;
-	}
-
-	/**
-	 * @return
-	 */
-	private AdapterFactoryLabelProvider getAdapterFactoryLabelProvider() {
-		if (adapterFactoryLabelProvider == null) {
-			adapterFactoryLabelProvider = new AdapterFactoryLabelProvider(
-				((HockeyleagueEditor) PlatformUI.getWorkbench()
-					.getActiveWorkbenchWindow().getActivePage()
-					.getActiveEditor()).getAdapterFactory());
-		}
-		return adapterFactoryLabelProvider;
-	}
-
-	/**
-	 * Determine there are objects in the structured selection of different
-	 * types.
-	 * 
-	 * @param structuredSelection
-	 *            the structured selection.
-	 * @return true if there are objects of different types in the selection.
-	 */
-	private boolean areDifferentTypes(IStructuredSelection structuredSelection) {
-		if (structuredSelection.size() == 1) {
-			return false;
-		}
-		Iterator i = structuredSelection.iterator();
-		Object element = i.next();
-		for (; i.hasNext();) {
-			if (i.next().getClass() != element.getClass()) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleaguePropertySheetPage.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleaguePropertySheetPage.java
deleted file mode 100644
index 306c543..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/HockeyleaguePropertySheetPage.java
+++ /dev/null
@@ -1,58 +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.examples.views.properties.tabbed.hockeyleague.ui.properties;
-
-import org.eclipse.emf.common.notify.AdapterFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * This is the property sheet page for the Hockeyleague model editor.
- * 
- * @author Anthony Hunter
- */
-public class HockeyleaguePropertySheetPage
-	extends TabbedPropertySheetPage {
-
-	/**
-	 * the hockey league model editor.
-	 */
-	protected HockeyleagueEditor editor;
-
-	/**
-	 * Contructor for this property sheet page.
-	 * 
-	 * @param tabbedPropertySheetPageContributor
-	 *            the editor contributor of the property sheet page.
-	 */
-	public HockeyleaguePropertySheetPage(HockeyleagueEditor editor) {
-		super(editor);
-		this.editor = editor;
-	}
-
-	/**
-	 * Get the EMF AdapterFactory for this editor.
-	 * 
-	 * @return the EMF AdapterFactory for this editor.
-	 */
-	public HockeyleagueEditor getEditor() {
-		return editor;
-	}
-
-	/**
-	 * Get the EMF AdapterFactory for this editor.
-	 * 
-	 * @return the EMF AdapterFactory for this editor.
-	 */
-	public AdapterFactory getAdapterFactory() {
-		return editor.getAdapterFactory();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/TextChangeHelper.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/TextChangeHelper.java
deleted file mode 100644
index 3718510..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/TextChangeHelper.java
+++ /dev/null
@@ -1,114 +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.examples.views.properties.tabbed.hockeyleague.ui.properties;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * TextChangeHelper notifies the listner of text lifecycle events 
- * on behalf of the widget(s) it listens to. 
- * 
- * @author Anthony Hunter 
- */
-public abstract class TextChangeHelper implements Listener {
-	
-	private boolean nonUserChange;
-
-	/**
-	 * Marks the start of a programmatic change to the widget contents.
-	 * Clients must call startNonUserChange() before directly setting 
-	 * the widget contents to avoid unwanted lifecycle events.
-	 * @throws IllegalArgumentException if a programmatic change is 
-	 * already in progress.
-	 */
-	public void startNonUserChange() {
-		if (nonUserChange)
-			throw new IllegalStateException("we already started a non user change");//$NON-NLS-1$
-		nonUserChange = true;
-	}
-
-	/**
-	 * Clients who call startNonUserChange() should call 
-	 * finishNonUserChange() as soon as possible after the change is done.
-	 * @throws IllegalArgumentException if no change is in progress.
-	 */
-	public void finishNonUserChange() {
-		if (!nonUserChange)
-			throw new IllegalStateException("we are not in a non user change");//$NON-NLS-1$
-		nonUserChange = false;
-	}
-
-	/**
-	 * Determine if a programmatic change is in progress.
-	 * @return <code>true</code> if a programmatic change is in progress.
-	 */
-	public boolean isNonUserChange() {
-		return nonUserChange;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void handleEvent(Event event) {
-		switch (event.type) {
-			case SWT.KeyDown :
-				if (event.character == SWT.CR)
-					textChanged((Control)event.widget);
-				break;
-			case SWT.FocusOut :
-				textChanged((Control)event.widget);
-				break;
-		}
-	}
-
-	/**
-	 * Abstract method notified when a text field has been changed.
-	 * @param control the given control.
-	 */
-	public abstract void textChanged(Control control);
-
-	/**
-	 * Registers this helper with the given control to listen for events
-	 * which indicate that a change is in progress (or done).
-	 * @param control the given control.
-	 */
-	public void startListeningTo(Control control) {
-		control.addListener(SWT.FocusOut, this);
-		control.addListener(SWT.Modify, this);
-	}
-
-	/**
-	 * Registers this helper with the given control to listen for the
-	 * Enter key.  When Enter is pressed, the change is considered done 
-	 * (this is only appropriate for single-line Text widgets).
-	 * @param control the given control.
-	 */
-	public void startListeningForEnter(Control control) {
-		// NOTE: KeyDown rather than KeyUp, because of similar usage in CCombo. 
-		control.addListener(SWT.KeyDown, this);
-	}
-
-	/**
-	 * Unregisters this helper from a control previously passed to
-	 * startListeningTo() and/or startListeningForEnter().
-	 * @param control the given control.
-	 */
-	public void stopListeningTo(Control control) {
-		if ((control != null) && !control.isDisposed()) {
-			control.removeListener(SWT.FocusOut, this);
-			control.removeListener(SWT.Modify, this);
-			control.removeListener(SWT.KeyDown, this);
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractEnumerationPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractEnumerationPropertySection.java
deleted file mode 100644
index 5a08f79..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractEnumerationPropertySection.java
+++ /dev/null
@@ -1,166 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.common.command.CompoundCommand;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.command.SetCommand;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An abstract implementation of a section with a enumeration field using a
- * combo box (pulldown).
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractEnumerationPropertySection
-	extends AbstractHockeyleaguePropertySection {
-
-	/**
-	 * the combo box control for the section.
-	 */
-	protected CCombo combo;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-		FormData data;
-
-		combo = getWidgetFactory().createCCombo(composite); 
-		data = new FormData();
-		data.left = new FormAttachment(0, getStandardLabelWidth(composite,
-			new String[] {getLabelText()}));
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
-		combo.setLayoutData(data);
-
-		CLabel nameLabel = getWidgetFactory().createCLabel(composite,
-			getLabelText());
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(combo, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(combo, 0, SWT.CENTER);
-		nameLabel.setLayoutData(data);
-
-		combo.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent event) {
-				handleComboModified();
-			}
-		});
-	}
-
-	/**
-	 * Handle the combo modified event.
-	 */
-	protected void handleComboModified() {
-
-		int index = combo.getSelectionIndex();
-		boolean equals = isEqual(index);
-		if (!equals) {
-			EditingDomain editingDomain = ((HockeyleagueEditor) getPart())
-				.getEditingDomain();
-			Object value = getFeatureValue(index);
-			if (eObjectList.size() == 1) {
-				/* apply the property change to single selected object */
-				editingDomain.getCommandStack().execute(
-					SetCommand.create(editingDomain, eObject, getFeature(),
-						value));
-			} else {
-				CompoundCommand compoundCommand = new CompoundCommand();
-				/* apply the property change to all selected elements */
-				for (Iterator i = eObjectList.iterator(); i.hasNext();) {
-					EObject nextObject = (EObject) i.next();
-					compoundCommand.append(SetCommand.create(editingDomain,
-						nextObject, getFeature(), value));
-				}
-				editingDomain.getCommandStack().execute(compoundCommand);
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
-	 */
-	public void refresh() {
-		combo.setItems(getEnumerationFeatureValues());
-		combo.setText(getFeatureAsText());
-	}
-
-	/**
-	 * Determine if the provided index of the enumeration is equal to the
-	 * current setting of the enumeration property.
-	 * 
-	 * @param index
-	 *            the new index in the enumeration.
-	 * @return <code>true</code> if the new index value is equal to the
-	 *         current property setting.
-	 */
-	protected abstract boolean isEqual(int index);
-
-	/**
-	 * Get the feature for the combo field for the section.
-	 * 
-	 * @return the feature for the text.
-	 */
-	protected abstract EAttribute getFeature();
-
-	/**
-	 * Get the enumeration values of the feature for the combo field for the
-	 * section.
-	 * 
-	 * @return the list of values of the feature as text.
-	 */
-	protected abstract String[] getEnumerationFeatureValues();
-
-	/**
-	 * Get the value of the feature as text for the combo field for the section.
-	 * 
-	 * @return the value of the feature as text.
-	 */
-	protected abstract String getFeatureAsText();
-
-	/**
-	 * Get the new value of the feature for the text field for the section.
-	 * 
-	 * @param index
-	 *            the new index in the enumeration.
-	 * @return the new value of the feature.
-	 */
-	protected abstract Object getFeatureValue(int index);
-
-	/**
-	 * Get the label for the combo field for the section.
-	 * 
-	 * @return the label for the text field.
-	 */
-	protected abstract String getLabelText();
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractHockeyleaguePropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractHockeyleaguePropertySection.java
deleted file mode 100644
index 1d4e2dc..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractHockeyleaguePropertySection.java
+++ /dev/null
@@ -1,100 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.HockeyleaguePropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An abstract implementation of a section in a tab in the tabbed property sheet
- * page for the hockey league example.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractHockeyleaguePropertySection
-	extends AbstractPropertySection {
-
-	/**
-	 * the property sheet page for this section.
-	 */
-	protected HockeyleaguePropertySheetPage propertySheetPage;
-
-	/**
-	 * The current selected object or the first object in the selection when
-	 * multiple objects are selected.
-	 */
-	protected EObject eObject;
-
-	/**
-	 * The list of current selected objects.
-	 */
-	protected List eObjectList;
-
-	/**
-	 * Get the standard label width when labels for sections line up on the left
-	 * hand side of the composite. We line up to a fixed position, but if a
-	 * string is wider than the fixed position, then we use that widest string.
-	 * 
-	 * @param parent
-	 *            The parent composite used to create a GC.
-	 * @param labels
-	 *            The list of labels.
-	 * @return the standard label width.
-	 */
-	protected int getStandardLabelWidth(Composite parent, String[] labels) {
-		int standardLabelWidth = STANDARD_LABEL_WIDTH;
-		GC gc = new GC(parent);
-		int indent = gc.textExtent("XXX").x; //$NON-NLS-1$
-		for (int i = 0; i < labels.length; i++) {
-			int width = gc.textExtent(labels[i]).x;
-			if (width + indent > standardLabelWidth) {
-				standardLabelWidth = width + indent;
-			}
-		}
-		gc.dispose();
-		return standardLabelWidth;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		this.propertySheetPage = (HockeyleaguePropertySheetPage) aTabbedPropertySheetPage;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#setInput(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		super.setInput(part, selection);
-		if (!(selection instanceof IStructuredSelection)) {
-			return;
-		}
-		if (((IStructuredSelection) selection).getFirstElement() instanceof EObject) {
-			eObject = (EObject) ((IStructuredSelection) selection)
-				.getFirstElement();
-			eObjectList = ((IStructuredSelection) selection).toList();
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractIntegerPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractIntegerPropertySection.java
deleted file mode 100644
index 86f6708..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractIntegerPropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-/**
- * An abstract implementation of a section for a field with a String property
- * value.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractIntegerPropertySection
-	extends AbstractTextPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#isEqual(java.lang.String)
-	 */
-	protected boolean isEqual(String newText) {
-		try {
-			Integer.parseInt(newText);
-		} catch (NumberFormatException e) {
-			refresh();
-			return true;
-		}
-		Integer integer = new Integer(Integer.parseInt(newText)); 
-		return getFeatureInteger().equals(integer);
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeatureAsText()
-	 */
-	protected String getFeatureAsText() {
-		return getFeatureInteger().toString();
-	}
-
-	/**
-	 * Get the text value of the feature for the text field for the section.
-	 * 
-	 * @return the text value of the feature.
-	 */
-	protected abstract Integer getFeatureInteger();
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeatureValue(java.lang.String)
-	 */
-	protected Object getFeatureValue(String newText) {
-		return new Integer(Integer.parseInt(newText));
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractMeasurementPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractMeasurementPropertySection.java
deleted file mode 100644
index 056970b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractMeasurementPropertySection.java
+++ /dev/null
@@ -1,185 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.common.command.CompoundCommand;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.command.SetCommand;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An abstract implementation of a section for measurements. There is a text
- * field for the mesurement value and a radio box for the measurement units. For
- * example, weight in either pounds or kilograms.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractMeasurementPropertySection
-	extends AbstractIntegerPropertySection {
-
-	/**
-	 * the left radio button for the section.
-	 */
-	protected Button radioLeft;
-
-	/**
-	 * the right radio button for the section.
-	 */
-	protected Button radioRight;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-
-		String[] labels = getEnumerationLabels();
-
-		radioLeft = getWidgetFactory().createButton(composite, labels[0],
-			SWT.RADIO);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
-		radioLeft.setLayoutData(data);
-
-		radioRight = getWidgetFactory().createButton(composite, labels[1],
-			SWT.RADIO);
-		data = new FormData();
-		data.left = new FormAttachment(radioLeft,
-			ITabbedPropertyConstants.HSPACE);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
-		radioRight.setLayoutData(data);
-
-		SelectionListener selectionListener = new SelectionListener() {
-
-			public void widgetSelected(SelectionEvent e) {
-				handleRadioModified(((Button) e.getSource()));
-			}
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-		};
-
-		radioLeft.addSelectionListener(selectionListener);
-		radioRight.addSelectionListener(selectionListener);
-	}
-
-	/**
-	 * Handle the radio box modified event.
-	 */
-	protected void handleRadioModified(Button button) {
-
-		int index;
-		if (button == radioLeft) {
-			index = 0;
-		} else {
-			index = 1;
-		}
-		boolean equals = isEnumerationEqual(index);
-		if (!equals) {
-			EditingDomain editingDomain = ((HockeyleagueEditor) getPart())
-				.getEditingDomain();
-			Object value = getEnumerationFeatureValue(index);
-			if (eObjectList.size() == 1) {
-				/* apply the property change to single selected object */
-				editingDomain.getCommandStack().execute(
-					SetCommand.create(editingDomain, eObject,
-						getEnumerationFeature(), value));
-			} else {
-				CompoundCommand compoundCommand = new CompoundCommand();
-				/* apply the property change to all selected elements */
-				for (Iterator i = eObjectList.iterator(); i.hasNext();) {
-					EObject nextObject = (EObject) i.next();
-					compoundCommand.append(SetCommand.create(editingDomain,
-						nextObject, getEnumerationFeature(), value));
-				}
-				editingDomain.getCommandStack().execute(compoundCommand);
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
-	 */
-	public void refresh() {
-		super.refresh();
-		if (getEnumerationIndex() == 0) {
-			radioLeft.setSelection(true);
-			radioRight.setSelection(false);
-		} else {
-			radioLeft.setSelection(false);
-			radioRight.setSelection(true);
-		}
-
-	}
-
-	/**
-	 * Determine if the provided index of the enumeration is equal to the
-	 * current setting of the enumeration property.
-	 * 
-	 * @param index
-	 *            the new index in the enumeration.
-	 * @return <code>true</code> if the new index value is equal to the
-	 *         current property setting.
-	 */
-	protected abstract boolean isEnumerationEqual(int index);
-
-	/**
-	 * Get the feature for the enumeration field for the section.
-	 * 
-	 * @return the feature for the text.
-	 */
-	protected abstract EAttribute getEnumerationFeature();
-
-	/**
-	 * Get the enumeration values of the feature for the radio field for the
-	 * section.
-	 * 
-	 * @return the list of values of the feature as text.
-	 */
-	protected abstract String[] getEnumerationLabels();
-
-	/**
-	 * Get the index value of the feature for the radio field for the section.
-	 * 
-	 * @return the index value of the feature.
-	 */
-	protected abstract int getEnumerationIndex();
-
-	/**
-	 * Get the new value of the feature for the text field for the section.
-	 * 
-	 * @param index
-	 *            the new index in the enumeration.
-	 * @return the new value of the feature.
-	 */
-	protected abstract Object getEnumerationFeatureValue(int index);
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractPlayersPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractPlayersPropertySection.java
deleted file mode 100644
index f977017..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractPlayersPropertySection.java
+++ /dev/null
@@ -1,73 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-
-/**
- * The abstract implementation for a players table section.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractPlayersPropertySection
-	extends AbstractTablePropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getColumnLabelText()
-	 */
-	protected List getColumnLabelText() {
-		ArrayList ret = new ArrayList();
-		ret.add("Name");//$NON-NLS-1$
-		ret.add("Jersey Number");//$NON-NLS-1$
-		ret.add("Shot");//$NON-NLS-1$
-		ret.addAll(getAdditionalColumnLabelText());
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getKeyForRow(java.lang.Object)
-	 */
-	protected String getKeyForRow(Object object) {
-		return ((Player) object).getName();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getValuesForRow(java.lang.Object)
-	 */
-	protected List getValuesForRow(Object object) {
-		ArrayList ret = new ArrayList();
-		ret.add(((Player) object).getName());
-		ret.add(Integer.toString(((Player) object).getNumber()));
-		ret.add(((Player) object).getShot().getName());
-		ret.addAll(getAdditionalValuesForRow(object));
-		return ret;
-	}
-
-	/**
-	 * Get the labels for the additional columns for the table.
-	 * 
-	 * @return the labels for the columns.
-	 */
-	protected abstract List getAdditionalColumnLabelText();
-	
-	/**
-	 * Get the additional values for the row in the table.
-	 * 
-	 * @param object
-	 *            an object in the row of the table.
-	 * @return the list of string values for the row.
-	 */
-	protected abstract List getAdditionalValuesForRow(Object object);
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractStringPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractStringPropertySection.java
deleted file mode 100644
index 3185108..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractStringPropertySection.java
+++ /dev/null
@@ -1,47 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-
-/**
- * An abstract implementation of a section for a field with a String property
- * value.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractStringPropertySection
-	extends AbstractTextPropertySection {
-	
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#isEqual(java.lang.String)
-	 */
-	protected boolean isEqual(String newText) {
-		return getFeatureAsText().equals(newText);
-	}
-	
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeatureAsText()
-	 */
-	protected String getFeatureAsText() {
-		String string = (String)eObject.eGet(getFeature());
-		if (string == null) {
-			return "";//$NON-NLS-1$
-		}
-		return string;
-	}
-	
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeatureValue(java.lang.String)
-	 */
-	protected Object getFeatureValue(String newText) {
-		return newText;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTablePropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTablePropertySection.java
deleted file mode 100644
index 245b7e0..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTablePropertySection.java
+++ /dev/null
@@ -1,279 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.edit.command.AddCommand;
-import org.eclipse.emf.edit.command.RemoveCommand;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.dialogs.HockeyleagueSetDefaultsDialog;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An abstract implementation of a section with a table field with add and
- * remove buttons.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractTablePropertySection
-	extends AbstractHockeyleaguePropertySection {
-
-	/**
-	 * the table control for the section.
-	 */
-	protected Table table;
-
-	/**
-	 * the title columns for the section.
-	 */
-	protected List columns;
-
-	/**
-	 * the add button for the section.
-	 */
-	protected Button addButton;
-
-	/**
-	 * the remove button for the section.
-	 */
-	protected Button removeButton;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-		FormData data;
-
-		table = getWidgetFactory().createTable(composite,
-			SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-
-		List labels = getColumnLabelText();
-		columns = new ArrayList();
-
-		for (Iterator i = labels.iterator(); i.hasNext();) {
-			TableColumn column = new TableColumn(table, SWT.NONE);
-			column.setText((String) i.next());
-			columns.add(column);
-		}
-
-		Shell shell = new Shell();
-		GC gc = new GC(shell);
-		gc.setFont(shell.getFont());
-		Point point = gc.textExtent("");//$NON-NLS-1$
-		int buttonHeight = point.y + 11;
-		gc.dispose();
-		shell.dispose();
-
-		addButton = getWidgetFactory().createButton(composite,
-			MessageFormat.format("Add {0}...",//$NON-NLS-1$
-				new String[] {getButtonLabelText()}), SWT.PUSH);
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(100, 0);
-		data.top = new FormAttachment(100, -buttonHeight);
-		addButton.setLayoutData(data);
-		addButton.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent event) {
-				EditingDomain editingDomain = ((HockeyleagueEditor) getPart())
-					.getEditingDomain();
-				AddCommand addCommand = (AddCommand) AddCommand.create(
-					editingDomain, eObject, getFeature(), getNewChild());
-				HockeyleagueSetDefaultsDialog dialog = new HockeyleagueSetDefaultsDialog(
-					PlatformUI.getWorkbench().getActiveWorkbenchWindow()
-						.getShell(), addCommand);
-				dialog.open();
-				if (dialog.getReturnCode() == Window.CANCEL) {
-					return;
-				}
-				editingDomain.getCommandStack().execute(addCommand);
-			}
-		});
-
-		removeButton = getWidgetFactory().createButton(composite,
-			MessageFormat.format("Delete {0}",//$NON-NLS-1$
-				new String[] {getButtonLabelText()}), SWT.PUSH);
-		data = new FormData();
-		data.left = new FormAttachment(addButton,
-			ITabbedPropertyConstants.VSPACE, SWT.BOTTOM);
-		data.bottom = new FormAttachment(100, 0);
-		data.top = new FormAttachment(100, -buttonHeight);
-		removeButton.setLayoutData(data);
-		removeButton.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent event) {
-				EditingDomain editingDomain = ((HockeyleagueEditor) getPart())
-					.getEditingDomain();
-				Object object = table.getSelection()[0].getData();
-				editingDomain.getCommandStack().execute(
-					RemoveCommand.create(editingDomain, object));
-			}
-		});
-
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
-		data.bottom = new FormAttachment(addButton,
-			-ITabbedPropertyConstants.VSPACE);
-		data.width = 400;
-		table.setLayoutData(data);
-
-		table.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent event) {
-				removeButton.setEnabled(true);
-			}
-		});
-		table.addMouseListener(new MouseAdapter() {
-
-			public void mouseDoubleClick(MouseEvent e) {
-				Object object = table.getSelection()[0].getData();
-				propertySheetPage.getEditor().getViewer().setSelection(
-					new StructuredSelection(object), true);
-				propertySheetPage.getEditor().setFocus();
-			}
-		});
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace() {
-		return true;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#refresh()
-	 */
-	public void refresh() {
-		table.removeAll();
-		removeButton.setEnabled(false);
-
-		for (Iterator i = getOwnedRows().iterator(); i.hasNext();) {
-			Object next = i.next();
-			String key = getKeyForRow(next);
-
-			// find index (for sorting purposes)
-			int k = 0;
-			int size = table.getItemCount();
-			while (k < size) {
-				String currentKey = table.getItem(k).getText();
-				if (key.compareToIgnoreCase(currentKey) < 0) {
-					break;
-				}
-				k++;
-			}
-
-			// create the table item
-			TableItem item = new TableItem(table, SWT.NONE, k);
-			String[] values = new String[columns.size()];
-			List valuesForRow = getValuesForRow(next);
-			for (int j = 0; j < columns.size(); j++) {
-				values[j] = (String) valuesForRow.get(j);
-			}
-			item.setText(values);
-			item.setData(next);
-		}
-
-		for (Iterator i = columns.iterator(); i.hasNext();) {
-			((TableColumn) i.next()).pack();
-		}
-	}
-
-	/**
-	 * Get the text for the labels that will be used for the Add and Remove
-	 * buttons.
-	 * 
-	 * @return the label text.
-	 */
-	protected abstract String getButtonLabelText();
-
-	/**
-	 * Get the row objects for the table.
-	 * 
-	 * @return the list of the row objects.
-	 */
-	protected abstract List getOwnedRows();
-
-	/**
-	 * Get the feature for the table field for the section.
-	 * 
-	 * @return the feature for the table.
-	 */
-	protected abstract EReference getFeature();
-
-	/**
-	 * Get the key for the table that is used for sorting. Usually the table is
-	 * sorted by Name or some key string..
-	 * 
-	 * @param object
-	 *            an object in the row of the table.
-	 * @return the string for the key.
-	 */
-	protected abstract String getKeyForRow(Object object);
-
-	/**
-	 * Get the values for the row in the table.
-	 * 
-	 * @param object
-	 *            an object in the row of the table.
-	 * @return the list of string values for the row.
-	 */
-	protected abstract List getValuesForRow(Object object);
-
-	/**
-	 * Get the labels for the columns for the table.
-	 * 
-	 * @return the labels for the columns.
-	 */
-	protected abstract List getColumnLabelText();
-
-	/**
-	 * Get a new child instance for the result of clicking the add button.
-	 * 
-	 * @return a new child instance.
-	 */
-	protected abstract Object getNewChild();
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTextPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTextPropertySection.java
deleted file mode 100644
index 5be7e85..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AbstractTextPropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.Iterator;
-
-import org.eclipse.emf.common.command.CompoundCommand;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.edit.command.SetCommand;
-import org.eclipse.emf.edit.domain.EditingDomain;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.editor.HockeyleagueEditor;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.TextChangeHelper;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An abstract implementation of a section with a text field.
- * 
- * @author Anthony Hunter
- */
-public abstract class AbstractTextPropertySection
-	extends AbstractHockeyleaguePropertySection {
-
-	/**
-	 * the text control for the section.
-	 */
-	protected Text text;
-
-	/**
-	 * A helper to listen for events that indicate that a text field has been
-	 * changed.
-	 */
-	protected TextChangeHelper listener;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-		FormData data;
-
-		text = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, getStandardLabelWidth(composite,
-			new String[] {getLabelText()}));
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
-		text.setLayoutData(data);
-
-		CLabel nameLabel = getWidgetFactory().createCLabel(composite,
-			getLabelText());
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(text, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(text, 0, SWT.CENTER);
-		nameLabel.setLayoutData(data);
-
-		listener = new TextChangeHelper() {
-
-			public void textChanged(Control control) {
-				handleTextModified();
-			}
-		};
-		listener.startListeningTo(text);
-		listener.startListeningForEnter(text);
-	}
-
-	/**
-	 * Handle the text modified event.
-	 */
-	protected void handleTextModified() {
-		String newText = text.getText();
-		boolean equals = isEqual(newText);
-		if (!equals) {
-			EditingDomain editingDomain = ((HockeyleagueEditor) getPart())
-				.getEditingDomain();
-			Object value = getFeatureValue(newText);
-			if (eObjectList.size() == 1) {
-				/* apply the property change to single selected object */
-				editingDomain.getCommandStack().execute(
-					SetCommand.create(editingDomain, eObject, getFeature(),
-						value));
-			} else {
-				CompoundCommand compoundCommand = new CompoundCommand();
-				/* apply the property change to all selected elements */
-				for (Iterator i = eObjectList.iterator(); i.hasNext();) {
-					EObject nextObject = (EObject) i.next();
-					compoundCommand.append(SetCommand.create(editingDomain,
-						nextObject, getFeature(), value));
-				}
-				editingDomain.getCommandStack().execute(compoundCommand);
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		text.setText(getFeatureAsText());
-	}
-
-	/**
-	 * Determine if the provided string value is an equal representation of the
-	 * current setting of the text property.
-	 * 
-	 * @param newText
-	 *            the new string value.
-	 * @return <code>true</code> if the new string value is equal to the
-	 *         current property setting.
-	 */
-	protected abstract boolean isEqual(String newText);
-
-	/**
-	 * Get the feature for the text field for the section.
-	 * 
-	 * @return the feature for the text.
-	 */
-	protected abstract EAttribute getFeature();
-
-	/**
-	 * Get the value of the feature as text for the text field for the section.
-	 * 
-	 * @return the value of the feature as text.
-	 */
-	protected abstract String getFeatureAsText();
-
-	/**
-	 * Get the new value of the feature for the text field for the section.
-	 * 
-	 * @param newText
-	 *            the new value of the feature as a string.
-	 * @return the new value of the feature.
-	 */
-	protected abstract Object getFeatureValue(String newText);
-
-	/**
-	 * Get the label for the text field for the section.
-	 * 
-	 * @return the label for the text field.
-	 */
-	protected abstract String getLabelText();
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AddressPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AddressPropertySection.java
deleted file mode 100644
index 7dc1eb1..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AddressPropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * A section for the address property of a selected Arena Object.
- * 
- * @author Anthony Hunter
- */
-public class AddressPropertySection
-	extends AbstractStringPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getArena_Address();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Address:"; //$NON-NLS-1$
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AdvancedPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AdvancedPropertySection.java
deleted file mode 100644
index 7d4b75d..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/AdvancedPropertySection.java
+++ /dev/null
@@ -1,37 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.HockeyleaguePropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * Advanced property section.
- * 
- * @author Anthony Hunter
- */
-public class AdvancedPropertySection
-	extends org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ISection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		HockeyleaguePropertySheetPage hockeyleaguePropertySheetPage = (HockeyleaguePropertySheetPage) tabbedPropertySheetPage;
-		page.setPropertySourceProvider(new AdapterFactoryContentProvider(
-			hockeyleaguePropertySheetPage.getAdapterFactory()));
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthDatePropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthDatePropertySection.java
deleted file mode 100644
index b5da321..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthDatePropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * A section for the birth date property of a selected player Object.
- * 
- * @author Anthony Hunter
- */
-public class BirthDatePropertySection
-	extends AbstractStringPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_Birthdate();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Birth Date:";//$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthPlacePropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthPlacePropertySection.java
deleted file mode 100644
index 6234258..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/BirthPlacePropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * A section for the birth place property of a selected player Object.
- * 
- * @author Anthony Hunter
- */
-public class BirthPlacePropertySection
-	extends AbstractStringPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_Birthplace();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Birth Place:";//$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/CapacityPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/CapacityPropertySection.java
deleted file mode 100644
index d58b543..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/CapacityPropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-
-/**
- * A section for the capacity property of a selected Arena Object.
- * 
- * @author Anthony Hunter
- */
-public class CapacityPropertySection
-	extends AbstractIntegerPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getArena_Capacity();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getFeatureText()
-	 */
-	protected Integer getFeatureInteger() {
-		Arena arena = (Arena) eObject;
-		return new Integer(arena.getCapacity());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Capacity:";//$NON-NLS-1$
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencePositionPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencePositionPropertySection.java
deleted file mode 100644
index eeeadf5..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencePositionPropertySection.java
+++ /dev/null
@@ -1,75 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * A section for the position property of a selected defence player Object.
- * 
- * @author Anthony Hunter
- */
-public class DefencePositionPropertySection
-	extends AbstractEnumerationPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getDefence_Position();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeatureAsText()
-	 */
-	protected String getFeatureAsText() {
-		return ((Defence) eObject).getPosition().getName();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeatureValue(int)
-	 */
-	protected Object getFeatureValue(int index) {
-		return DefencePositionKind.VALUES.get(index);
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Position:";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#isEqual(int)
-	 */
-	protected boolean isEqual(int index) {
-		return DefencePositionKind.VALUES.get(index).equals(
-			((Defence) eObject).getPosition());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getEnumerationFeatureValues()
-	 */
-	protected String[] getEnumerationFeatureValues() {
-		List values = DefencePositionKind.VALUES;
-		String[] ret = new String[values.size()];
-		for (int i = 0; i < values.size(); i++) {
-			ret[i] = ((DefencePositionKind) values.get(i)).getName();
-		}
-		return ret;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencemenPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencemenPropertySection.java
deleted file mode 100644
index 9da352d..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/DefencemenPropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * The defencemen section.
- * 
- * @author Anthony Hunter
- */
-public class DefencemenPropertySection
-	extends AbstractPlayersPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getButtonLabelText()
-	 */
-	protected String getButtonLabelText() {
-		return "Defenceman";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getOwnedRows()
-	 */
-	protected List getOwnedRows() {
-		ArrayList ret = new ArrayList();
-		for (Iterator i = ((Team) eObject).getDefencemen().iterator(); i
-			.hasNext();) {
-			ret.add(i.next());
-		}
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractPlayersPropertySection#getAdditionalColumnLabelText()
-	 */
-	protected List getAdditionalColumnLabelText() {
-		ArrayList ret = new ArrayList();
-		ret.add("Position");//$NON-NLS-1$
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractPlayersPropertySection#getAdditionalValuesForRow(java.lang.Object)
-	 */
-	protected List getAdditionalValuesForRow(Object object) {
-		ArrayList ret = new ArrayList();
-		ret.add(((Defence) object).getPosition().getName());
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getFeature()
-	 */
-	protected EReference getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getTeam_Defencemen();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getNewChild()
-	 */
-	protected Object getNewChild() {
-		return HockeyleagueFactory.eINSTANCE.createDefence();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardPositionPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardPositionPropertySection.java
deleted file mode 100644
index 521f84e..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardPositionPropertySection.java
+++ /dev/null
@@ -1,75 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * A section for the position property of a selected forward Object.
- * 
- * @author Anthony Hunter
- */
-public class ForwardPositionPropertySection
-	extends AbstractEnumerationPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getForward_Position();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeatureAsText()
-	 */
-	protected String getFeatureAsText() {
-		return ((Forward) eObject).getPosition().getName();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeatureValue(int)
-	 */
-	protected Object getFeatureValue(int index) {
-		return ForwardPositionKind.VALUES.get(index);
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Position:";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#isEqual(int)
-	 */
-	protected boolean isEqual(int index) {
-		return ForwardPositionKind.VALUES.get(index).equals(
-			((Forward) eObject).getPosition());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getEnumerationFeatureValues()
-	 */
-	protected String[] getEnumerationFeatureValues() {
-		List values = ForwardPositionKind.VALUES;
-		String[] ret = new String[values.size()];
-		for (int i = 0; i < values.size(); i++) {
-			ret[i] = ((ForwardPositionKind) values.get(i)).getName();
-		}
-		return ret;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardsPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardsPropertySection.java
deleted file mode 100644
index e8e0818..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ForwardsPropertySection.java
+++ /dev/null
@@ -1,82 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-
-/**
- * The forwards section.
- * 
- * @author Anthony Hunter
- */
-public class ForwardsPropertySection
-	extends AbstractPlayersPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getButtonLabelText()
-	 */
-	protected String getButtonLabelText() {
-		return "Forward";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getOwnedRows()
-	 */
-	protected List getOwnedRows() {
-		ArrayList ret = new ArrayList();
-		for (Iterator i = ((Team) eObject).getForwards().iterator(); i
-			.hasNext();) {
-			ret.add(i.next());
-		}
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractPlayersPropertySection#getAdditionalColumnLabelText()
-	 */
-	protected List getAdditionalColumnLabelText() {
-		ArrayList ret = new ArrayList();
-		ret.add("Position");//$NON-NLS-1$
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractPlayersPropertySection#getAdditionalValuesForRow(java.lang.Object)
-	 */
-	protected List getAdditionalValuesForRow(Object object) {
-		ArrayList ret = new ArrayList();
-		ret.add(((Forward) object).getPosition().getName());
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getFeature()
-	 */
-	protected EReference getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getTeam_Forwards();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getNewChild()
-	 */
-	protected Object getNewChild() {
-		return HockeyleagueFactory.eINSTANCE.createForward();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/GoaliesPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/GoaliesPropertySection.java
deleted file mode 100644
index d4baf2e..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/GoaliesPropertySection.java
+++ /dev/null
@@ -1,75 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * The goalies section.
- * 
- * @author Anthony Hunter
- */
-public class GoaliesPropertySection
-	extends AbstractPlayersPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getButtonLabelText()
-	 */
-	protected String getButtonLabelText() {
-		return "Goalie";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getOwnedRows()
-	 */
-	protected List getOwnedRows() {
-		ArrayList ret = new ArrayList();
-		for (Iterator i = ((Team) eObject).getGoalies().iterator(); i.hasNext();) {
-			ret.add(i.next());
-		}
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractPlayersPropertySection#getAdditionalColumnLabelText()
-	 */
-	protected List getAdditionalColumnLabelText() {
-		return new ArrayList();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractPlayersPropertySection#getAdditionalValuesForRow(java.lang.Object)
-	 */
-	protected List getAdditionalValuesForRow(Object object) {
-		return new ArrayList();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getFeature()
-	 */
-	protected EReference getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getTeam_Goalies();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getNewChild()
-	 */
-	protected Object getNewChild() {
-		return HockeyleagueFactory.eINSTANCE.createGoalie();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeadOfficePropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeadOfficePropertySection.java
deleted file mode 100644
index b0c6979..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeadOfficePropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-
-/**
- * A section for the head office property of a selected League Object.
- * 
- * @author Anthony Hunter
- */
-public class HeadOfficePropertySection
-	extends AbstractStringPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getLeague_Headoffice();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Head Office:"; //$NON-NLS-1$
-	}
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeightPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeightPropertySection.java
deleted file mode 100644
index 769d032..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/HeightPropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-
-/**
- * A section for the height property of a selected player Object.
- * 
- * @author Anthony Hunter
- */
-public class HeightPropertySection
-	extends AbstractMeasurementPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#isEnumerationEqual(int)
-	 */
-	protected boolean isEnumerationEqual(int index) {
-		return HeightKind.VALUES.get(index).equals(
-			((Player) eObject).getHeightMesurement());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationFeature()
-	 */
-	protected EAttribute getEnumerationFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_HeightMesurement();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationLabels()
-	 */
-	protected String[] getEnumerationLabels() {
-		List values = HeightKind.VALUES;
-		String[] ret = new String[values.size()];
-		for (int i = 0; i < values.size(); i++) {
-			ret[i] = ((HeightKind) values.get(i)).getName();
-		}
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationIndex()
-	 */
-	protected int getEnumerationIndex() {
-		return ((Player) eObject).getHeightMesurement().getValue();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationFeatureValue(int)
-	 */
-	protected Object getEnumerationFeatureValue(int index) {
-		return HeightKind.VALUES.get(index);
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractIntegerPropertySection#getFeatureInteger()
-	 */
-	protected Integer getFeatureInteger() {
-		return new Integer(((Player) eObject).getHeightValue());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_HeightValue();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Height:";//$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NamePropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NamePropertySection.java
deleted file mode 100644
index 491e8c6..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NamePropertySection.java
+++ /dev/null
@@ -1,37 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-
-/**
- * A section for the name property of a selected HockeyleagueObject.
- * 
- * @author Anthony Hunter
- */
-public class NamePropertySection
-	extends AbstractStringPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Name:"; //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getHockeyleagueObject_Name();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NumberPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NumberPropertySection.java
deleted file mode 100644
index 8a57364..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/NumberPropertySection.java
+++ /dev/null
@@ -1,46 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-
-/**
- * A section for the jersey number property of a selected player Object.
- * 
- * @author Anthony Hunter
- */
-public class NumberPropertySection
-	extends AbstractIntegerPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_Number();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getFeatureText()
-	 */
-	protected Integer getFeatureInteger() {
-		return new Integer(((Player) eObject).getNumber());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractStringPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Jersey Number:";//$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/PlayerStatsPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/PlayerStatsPropertySection.java
deleted file mode 100644
index d5d3b4d..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/PlayerStatsPropertySection.java
+++ /dev/null
@@ -1,93 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-
-/**
- * The player stats section.
- * 
- * @author Anthony Hunter
- */
-public class PlayerStatsPropertySection
-	extends AbstractTablePropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getColumnLabelText()
-	 */
-	protected List getColumnLabelText() {
-		ArrayList ret = new ArrayList();
-		ret.add("Year");//$NON-NLS-1$
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getKeyForRow(java.lang.Object)
-	 */
-	protected String getKeyForRow(Object object) {
-		return ((PlayerStats) object).getYear();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getValuesForRow(java.lang.Object)
-	 */
-	protected List getValuesForRow(Object object) {
-		ArrayList ret = new ArrayList();
-		ret.add(((PlayerStats) object).getYear());
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getButtonLabelText()
-	 */
-	protected String getButtonLabelText() {
-		return "Player Stats";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getOwnedRows()
-	 */
-	protected List getOwnedRows() {
-
-		ArrayList ret = new ArrayList();
-		for (Iterator i = (eObject instanceof Defence) ? ((Defence) eObject)
-			.getPlayerStats().iterator()
-			: ((Forward) eObject).getPlayerStats().iterator(); i.hasNext();) {
-			ret.add(i.next());
-		}
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getFeature()
-	 */
-	protected EReference getFeature() {
-		return (eObject instanceof Defence) ? HockeyleaguePackage.eINSTANCE
-			.getDefence_PlayerStats()
-			: HockeyleaguePackage.eINSTANCE.getForward_PlayerStats();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getNewChild()
-	 */
-	protected Object getNewChild() {
-		return HockeyleagueFactory.eINSTANCE.createPlayerStats();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ShotPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ShotPropertySection.java
deleted file mode 100644
index 156919f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/ShotPropertySection.java
+++ /dev/null
@@ -1,74 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind;
-
-/**
- * A section for the shot property of a selected player Object.
- * 
- * @author Anthony Hunter
- */
-public class ShotPropertySection
-	extends AbstractEnumerationPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_Shot();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeatureAsText()
-	 */
-	protected String getFeatureAsText() {
-		return ((Player) eObject).getShot().getName();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getFeatureValue(int)
-	 */
-	protected Object getFeatureValue(int index) {
-		return ShotKind.VALUES.get(index);
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Shot:";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#isEqual(int)
-	 */
-	protected boolean isEqual(int index) {
-		return ShotKind.VALUES.get(index).equals(((Player) eObject).getShot());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractEnumerationPropertySection#getEnumerationFeatureValues()
-	 */
-	protected String[] getEnumerationFeatureValues() {
-		List values = ShotKind.VALUES;
-		String[] ret = new String[values.size()];
-		for (int i = 0; i < values.size(); i++) {
-			ret[i] = ((ShotKind) values.get(i)).getName();
-		}
-		return ret;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/TeamsPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/TeamsPropertySection.java
deleted file mode 100644
index b6b3303..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/TeamsPropertySection.java
+++ /dev/null
@@ -1,87 +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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-
-/**
- * The teams section in the teams tab for a league.
- * 
- * @author Anthony Hunter
- */
-public class TeamsPropertySection
-	extends AbstractTablePropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getColumnLabelText()
-	 */
-	protected List getColumnLabelText() {
-		ArrayList ret = new ArrayList();
-		ret.add("Name");//$NON-NLS-1$
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getKeyForRow(java.lang.Object)
-	 */
-	protected String getKeyForRow(Object object) {
-		return ((Team) object).getName();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getValuesForRow(java.lang.Object)
-	 */
-	protected List getValuesForRow(Object object) {
-		ArrayList ret = new ArrayList();
-		ret.add(((Team) object).getName());
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getButtonLabelText()
-	 */
-	protected String getButtonLabelText() {
-		return "Team";//$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getOwnedRows()
-	 */
-	protected List getOwnedRows() {
-		ArrayList ret = new ArrayList();
-		for (Iterator i = ((League) eObject).getTeams().iterator(); i.hasNext();) {
-			ret.add(i.next());
-		}
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getFeature()
-	 */
-	protected EReference getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getLeague_Teams();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTablePropertySection#getNewChild()
-	 */
-	protected Object getNewChild() {
-		return HockeyleagueFactory.eINSTANCE.createTeam();
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/WeightPropertySection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/WeightPropertySection.java
deleted file mode 100644
index ee68e1a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/properties/sections/WeightPropertySection.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.examples.views.properties.tabbed.hockeyleague.ui.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind;
-
-/**
- * A section for the weight property of a selected player Object.
- * 
- * @author Anthony Hunter
- */
-public class WeightPropertySection
-	extends AbstractMeasurementPropertySection {
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#isEnumerationEqual(int)
-	 */
-	protected boolean isEnumerationEqual(int index) {
-		return WeightKind.VALUES.get(index).equals(
-			((Player) eObject).getWeightMesurement());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationFeature()
-	 */
-	protected EAttribute getEnumerationFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_WeightMesurement();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationLabels()
-	 */
-	protected String[] getEnumerationLabels() {
-		List values = WeightKind.VALUES;
-		String[] ret = new String[values.size()];
-		for (int i = 0; i < values.size(); i++) {
-			ret[i] = ((WeightKind) values.get(i)).getName();
-		}
-		return ret;
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationIndex()
-	 */
-	protected int getEnumerationIndex() {
-		return ((Player) eObject).getWeightMesurement().getValue();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractMeasurementPropertySection#getEnumerationFeatureValue(int)
-	 */
-	protected Object getEnumerationFeatureValue(int index) {
-		return WeightKind.VALUES.get(index);
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractIntegerPropertySection#getFeatureInteger()
-	 */
-	protected Integer getFeatureInteger() {
-		return new Integer(((Player) eObject).getWeightValue());
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getFeature()
-	 */
-	protected EAttribute getFeature() {
-		return HockeyleaguePackage.eINSTANCE.getPlayer_WeightValue();
-	}
-
-	/**
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ui.properties.sections.AbstractTextPropertySection#getLabelText()
-	 */
-	protected String getLabelText() {
-		return "Weight:";//$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizard.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizard.java
deleted file mode 100644
index db9038f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizard.java
+++ /dev/null
@@ -1,209 +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.examples.views.properties.tabbed.hockeyleague.ui.wizards;
-
-import java.util.Collections;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-
-/**
- * This is the wizard to create a new Hockeyleague model file.
- * 
- * @author Anthony Hunter
- */
-public class NewHockeyleagueFileWizard
-	extends BasicNewResourceWizard {
-
-	private NewHockeyleagueFileWizardPage mainPage;
-
-	private IStructuredSelection selection;
-
-	private IWorkbench workbench;
-
-	/**
-	 * The framework calls this to create the contents of the wizard.
-	 */
-	public void addPages() {
-		// Create a page, set the title, and the initial model file name.
-		//
-		mainPage = new NewHockeyleagueFileWizardPage("Whatever", selection); //$NON-NLS-1$
-		mainPage.setTitle("Hockey League Example File"); //$NON-NLS-1$
-		mainPage.setDescription("Create a new Tabbed Properties View Hockey League Example File"); //$NON-NLS-1$
-		mainPage.setFileName("example.hockeyleague"); //$NON-NLS-1$
-		addPage(mainPage);
-
-		// Try and get the resource selection to determine a current directory
-		// for the file dialog.
-		//
-		if (selection != null && !selection.isEmpty()) {
-			// Get the resource...
-			//
-			Object selectedElement = selection.iterator().next();
-			if (selectedElement instanceof IResource) {
-				// Get the resource parent, if its a file.
-				//
-				IResource selectedResource = (IResource) selectedElement;
-				if (selectedResource.getType() == IResource.FILE) {
-					selectedResource = selectedResource.getParent();
-				}
-
-				// This gives us a directory...
-				//
-				if (selectedResource instanceof IFolder
-					|| selectedResource instanceof IProject) {
-					// Set this for the container.
-					//
-					mainPage.setContainerFullPath(selectedResource
-						.getFullPath());
-
-					// Make up a unique new name here.
-					//
-					String defaultFilename = "example"; //$NON-NLS-1$
-					String defaultExtension = "hockeyleague"; //$NON-NLS-1$
-					String modelFilename = defaultFilename + "." //$NON-NLS-1$
-						+ defaultExtension;
-					for (int i = 1; ((IContainer) selectedResource)
-						.findMember(modelFilename) != null; ++i) {
-						modelFilename = defaultFilename + i + "." //$NON-NLS-1$
-							+ defaultExtension;
-					}
-					mainPage.setFileName(modelFilename);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Method declared on IWorkbenchWizard.
-	 */
-	public void init(IWorkbench aWorkbench,
-			IStructuredSelection currentSelection) {
-		super.init(aWorkbench, currentSelection);
-		this.workbench = aWorkbench;
-		this.selection = currentSelection;
-		setWindowTitle("New Hockey League File"); //$NON-NLS-1$
-		setNeedsProgressMonitor(true);
-	}
-
-	/**
-	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
-	 */
-	public boolean performFinish() {
-		try {
-			// Remember the file.
-			//
-			final IFile hockeyleagueFile = getHockeyleagueFile();
-
-			// Do the work within an operation.
-			//
-			WorkspaceModifyOperation operation = new WorkspaceModifyOperation() {
-
-				protected void execute(IProgressMonitor progressMonitor) {
-					try {
-						ResourceSet resourceSet = new ResourceSetImpl();
-
-						URI fileURI = URI
-							.createPlatformResourceURI(hockeyleagueFile
-								.getFullPath().toString());
-
-						Resource resource = resourceSet.createResource(fileURI);
-
-						// Add the initial model object to the contents.
-						//
-						EObject rootObject = createInitialModel();
-						if (rootObject != null) {
-							resource.getContents().add(rootObject);
-						}
-
-						// Save the contents of the resource to the file system.
-						//
-						resource.save(Collections.EMPTY_MAP);
-					} catch (Exception exception) {
-						exception.printStackTrace();
-					} finally {
-						progressMonitor.done();
-					}
-				}
-			};
-
-			getContainer().run(false, false, operation);
-
-			// Select the new file resource in the current view.
-			//
-			IWorkbenchWindow workbenchWindow = workbench
-				.getActiveWorkbenchWindow();
-			IWorkbenchPage page = workbenchWindow.getActivePage();
-			final IWorkbenchPart activePart = page.getActivePart();
-			if (activePart instanceof ISetSelectionTarget) {
-				final ISelection targetSelection = new StructuredSelection(
-					hockeyleagueFile);
-				getShell().getDisplay().asyncExec(new Runnable() {
-
-					public void run() {
-						((ISetSelectionTarget) activePart)
-							.selectReveal(targetSelection);
-					}
-				});
-			}
-
-			// Open an editor on the new file.
-			//
-			try {
-				IDE.openEditor(page, hockeyleagueFile, true);
-			} catch (PartInitException exception) {
-				MessageDialog.openError(workbenchWindow.getShell(),
-					"Open Editor", exception.getMessage()); //$NON-NLS-1$
-				return false;
-			}
-
-			return true;
-		} catch (Exception exception) {
-			exception.printStackTrace();
-			return false;
-		}
-	}
-
-	public IFile getHockeyleagueFile() {
-		return mainPage.getHockeyleagueFile();
-	}
-
-	private EObject createInitialModel() {
-		EClass eClass = HockeyleaguePackage.eINSTANCE.getLeague();
-		EObject rootObject = HockeyleagueFactory.eINSTANCE.create(eClass);
-		return rootObject;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizardPage.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizardPage.java
deleted file mode 100644
index f96d351..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueFileWizardPage.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.examples.views.properties.tabbed.hockeyleague.ui.wizards;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-
-/**
- * This is the wizard page to create a new Hockeyleague model file.
- * 
- * @author Anthony Hunter
- */
-public class NewHockeyleagueFileWizardPage
-	extends WizardNewFileCreationPage {
-
-	/**
-	 * The Hockey league file.
-	 */
-	protected IFile hockeyleagueFile;
-
-	/**
-	 * @param pageName
-	 * @param selection
-	 */
-	public NewHockeyleagueFileWizardPage(String pageName,
-			IStructuredSelection selection) {
-		super(pageName, selection);
-	}
-
-	/**
-	 * The framework calls this to see if the file is correct.
-	 */
-	protected boolean validatePage() {
-		if (super.validatePage()) {
-			// Make sure the file ends in ".hockeyleague".
-			//
-			String requiredExtStatic = "hockeyleague"; //$NON-NLS-1$
-			String enteredExt = new Path(getFileName()).getFileExtension();
-			if (enteredExt == null
-				|| !(enteredExt.equals(requiredExtStatic))) {
-				setErrorMessage(MessageFormat.format(
-					"The filename must end in \".{0}\"",//$NON-NLS-1$
-					new Object[] {requiredExtStatic}));
-				return false;
-			} else {
-				return true;
-			}
-		} else {
-			return false;
-		}
-	}
-
-	/**
-	 * Store the dialog field settings upon completion.
-	 */
-	public boolean performFinish() {
-		hockeyleagueFile = getHockeyleagueFile();
-		return true;
-	}
-
-	/**
-	 */
-	public IFile getHockeyleagueFile() {
-		return hockeyleagueFile == null ? ResourcesPlugin.getWorkspace()
-			.getRoot().getFile(getContainerFullPath().append(getFileName()))
-			: hockeyleagueFile;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueProjectWizard.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueProjectWizard.java
deleted file mode 100644
index 2d35c9a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/ui/wizards/NewHockeyleagueProjectWizard.java
+++ /dev/null
@@ -1,512 +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.examples.views.properties.tabbed.hockeyleague.ui.wizards;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.text.MessageFormat;
-import java.util.Collections;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.DefencePositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ForwardPositionKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HeightKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueFactory;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePlugin;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.ShotKind;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.WeightKind;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-
-/**
- * This is the wizard to create a new Hockeyleague example project.
- * 
- * @author Anthony Hunter
- */
-public class NewHockeyleagueProjectWizard
-	extends BasicNewResourceWizard {
-
-	private WizardNewProjectCreationPage mainPage;
-
-	private IWorkbench workbench;
-
-	/**
-	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
-	 *      org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void init(IWorkbench aWorkbench,
-			IStructuredSelection currentSelection) {
-		super.init(workbench, currentSelection);
-		this.workbench = aWorkbench;
-		setWindowTitle("New Hockey League Project"); //$NON-NLS-1$
-		setNeedsProgressMonitor(true);
-	}
-
-	/**
-	 * @see org.eclipse.jface.wizard.IWizard#addPages()
-	 */
-	public void addPages() {
-		super.addPages();
-		mainPage = new WizardNewProjectCreationPage("basicNewProjectPage");//$NON-NLS-1$
-		mainPage.setTitle("Hockey League Example Project"); //$NON-NLS-1$
-		mainPage.setDescription("Create a new Tabbed Properties View Hockey League Example Project"); //$NON-NLS-1$
-		this.addPage(mainPage);
-	}
-
-	/**
-	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
-	 */
-	public boolean performFinish() {
-		// get a project handle
-		final IProject newProjectHandle = mainPage.getProjectHandle();
-		IPath newPath = null;
-		if (!mainPage.useDefaults())
-			newPath = mainPage.getLocationPath();
-		final IPath newProjectPath = newPath;
-		final IFile[] newFile = new IFile[1];
-
-		// create the new project operation
-		WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
-
-			protected void execute(IProgressMonitor monitor)
-				throws CoreException {
-				try {
-					monitor.beginTask("Creating New Project", 3000);//$NON-NLS-1$
-
-					monitor.setTaskName("Create a project descriptor");//$NON-NLS-1$
-					monitor.worked(1000);
-					IWorkspace workspace = ResourcesPlugin.getWorkspace();
-					final IProjectDescription description = workspace
-						.newProjectDescription(newProjectHandle.getName());
-					description.setLocation(newProjectPath);
-
-					monitor.setTaskName("Create the new project");//$NON-NLS-1$
-					newProjectHandle.create(description,
-						new SubProgressMonitor(monitor, 1000));
-
-					if (monitor.isCanceled())
-						throw new OperationCanceledException();
-
-					monitor.setTaskName("Open the new project");//$NON-NLS-1$
-					newProjectHandle
-						.open(new SubProgressMonitor(monitor, 1000));
-
-					if (monitor.isCanceled())
-						throw new OperationCanceledException();
-
-					monitor.setTaskName("Create the new file");//$NON-NLS-1$
-					monitor.worked(1000);
-					newFile[0] = newProjectHandle
-						.getFile("example.hockeyleague");//$NON-NLS-1$
-					ResourceSet resourceSet = new ResourceSetImpl();
-
-					URI fileURI = URI.createPlatformResourceURI(newFile[0]
-						.getFullPath().toString());
-
-					Resource resource = resourceSet.createResource(fileURI);
-
-					// Add the initial model object to the contents.
-					//
-					createInitialModel(resource);
-
-					try {
-						// Save the contents of the resource to the file system.
-						//
-						resource.save(Collections.EMPTY_MAP);
-					} catch (IOException e) {
-						e.printStackTrace();
-					}
-
-				} finally {
-					monitor.done();
-				}
-			}
-		};
-
-		// run the new project creation operation
-		try {
-			getContainer().run(true, true, op);
-		} catch (InterruptedException e) {
-			return false;
-		} catch (InvocationTargetException e) {
-			// ie.- one of the steps resulted in a core exception
-			Throwable t = e.getTargetException();
-			if (t instanceof CoreException) {
-				ErrorDialog.openError(getShell(), "Creation Problems", //$NON-NLS-1$
-					null, // no special message
-					((CoreException) t).getStatus());
-			} else {
-				// CoreExceptions are handled above, but unexpected runtime
-				// exceptions and errors may still occur.
-				HockeyleaguePlugin.getPlugin().getLog().log(
-					new Status(IStatus.ERROR, "HockeyleaguePlugin", 0, t//$NON-NLS-1$
-						.toString(), t));
-				MessageDialog.openError(getShell(), "Creation Problems", //$NON-NLS-1$
-					MessageFormat.format("Internal error: {0}", //$NON-NLS-1$
-						new Object[] {t.getMessage()}));
-			}
-			return false;
-		}
-
-		// Select the new file resource in the current view.
-		//
-		IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-		IWorkbenchPage page = workbenchWindow.getActivePage();
-		final IWorkbenchPart activePart = page.getActivePart();
-		if (activePart instanceof ISetSelectionTarget) {
-			final ISelection targetSelection = new StructuredSelection(
-				newFile[0]);
-			getShell().getDisplay().asyncExec(new Runnable() {
-
-				public void run() {
-					((ISetSelectionTarget) activePart)
-						.selectReveal(targetSelection);
-				}
-			});
-		}
-
-		// Open an editor on the new file.
-		//
-		try {
-			IDE.openEditor(page, newFile[0], true);
-		} catch (PartInitException exception) {
-			MessageDialog.openError(workbenchWindow.getShell(), "Open Editor",//$NON-NLS-1$
-				exception.getMessage());
-			return false;
-		}
-
-		return true;
-	}
-
-	private EObject createInitialModel(Resource resource) {
-		HockeyleagueFactory hockeyleagueFactory = HockeyleagueFactory.eINSTANCE;
-
-		/* Global Hockey League */
-		League league = hockeyleagueFactory.createLeague();
-		league.setName("Global Hockey League");//$NON-NLS-1$
-		league
-			.setHeadoffice("99 Bee Street, Toronto, Ontario, Canada, M5J 1Y7");//$NON-NLS-1$
-		resource.getContents().add(league);
-
-		/* Toronto Storm */
-		Arena arena = hockeyleagueFactory.createArena();
-		arena.setAddress("40 Buy Street, Toronto, Ontario, Canada, M5J 1C3");//$NON-NLS-1$
-		arena.setCapacity(18918);
-		arena.setName("Storm Centre");//$NON-NLS-1$
-		resource.getContents().add(arena);
-
-		Team torontoStorm = hockeyleagueFactory.createTeam();
-		torontoStorm.setName("Toronto Storm");//$NON-NLS-1$
-		torontoStorm.setArena(arena);
-		createPlayers(torontoStorm);
-		resource.getContents().add(torontoStorm);
-
-		/* Montreal Eagles */
-		arena = hockeyleagueFactory.createArena();
-		arena
-			.setAddress("1010 de La Gauchetiere Street, Montreal, Quebec, Canada, H3B B7B");//$NON-NLS-1$
-		arena.setCapacity(22000);
-		arena.setName("Global Centre");//$NON-NLS-1$
-		resource.getContents().add(arena);
-
-		Team montrealEagles = hockeyleagueFactory.createTeam();
-		montrealEagles.setName("Montreal Eagles");//$NON-NLS-1$
-		montrealEagles.setArena(arena);
-		createPlayers(montrealEagles);
-		resource.getContents().add(montrealEagles);
-
-		/* Ottawa Lions */
-		arena = hockeyleagueFactory.createArena();
-		arena.setAddress("1001 Atlas Drive, Ottawa, Ontario, Canada, K2V 1L8");//$NON-NLS-1$
-		arena.setCapacity(19000);
-		arena.setName("Ottawa Memorial Arena");//$NON-NLS-1$
-		resource.getContents().add(arena);
-
-		Team ottawaLions = hockeyleagueFactory.createTeam();
-		ottawaLions.setName("Ottawa Lions");//$NON-NLS-1$
-		ottawaLions.setArena(arena);
-		createPlayers(ottawaLions);
-		resource.getContents().add(ottawaLions);
-
-		/* Vancouver Tigers */
-		arena = hockeyleagueFactory.createArena();
-		arena
-			.setAddress("200 Griffins Way, Vancouver, British Columbia, Canada, V6B 9M2");//$NON-NLS-1$
-		arena.setCapacity(18500);
-		arena.setName("Century Place");//$NON-NLS-1$
-		resource.getContents().add(arena);
-
-		Team vancouverTigers = hockeyleagueFactory.createTeam();
-		vancouverTigers.setName("Vancouver Tigers");//$NON-NLS-1$
-		vancouverTigers.setArena(arena);
-		createPlayers(vancouverTigers);
-		resource.getContents().add(vancouverTigers);
-
-		league.getTeams().add(torontoStorm);
-		league.getTeams().add(montrealEagles);
-		league.getTeams().add(ottawaLions);
-		league.getTeams().add(vancouverTigers);
-		return league;
-	}
-
-	/**
-	 */
-	private void createPlayers(Team team) {
-		createGoalie(team);
-		createLeftWing(team);
-		createCenter(team);
-		createRightWing(team);
-		createRightDefence(team);
-		createLeftDefence(team);
-	}
-
-	private void createRightDefence(Team team) {
-		HockeyleagueFactory hockeyleagueFactory = HockeyleagueFactory.eINSTANCE;
-		Defence defence = hockeyleagueFactory.createDefence();
-		defence.setName("Josef Kraft");//$NON-NLS-1$
-		defence.setBirthdate("September 2, 1980");//$NON-NLS-1$
-		defence.setBirthplace("Plzen, Czechoslovakia");//$NON-NLS-1$
-		defence.setHeightMesurement(HeightKind.INCHES_LITERAL);
-		defence.setHeightValue(74);
-		defence.setWeightMesurement(WeightKind.POUNDS_LITERAL);
-		defence.setWeightValue(224);
-		defence.setNumber(15);
-		defence.setShot(ShotKind.RIGHT_LITERAL);
-		defence.setPosition(DefencePositionKind.RIGHT_DEFENCE_LITERAL);
-
-		PlayerStats playerStats = hockeyleagueFactory.createPlayerStats();
-		playerStats.setYear("2004");//$NON-NLS-1$
-		playerStats.setTeam(team);
-		playerStats.setGamesPlayedIn(67);
-		playerStats.setGoals(28);
-		playerStats.setAssists(63);
-		playerStats.setPoints(91);
-		playerStats.setPlusMinus(-25);
-		playerStats.setPenaltyMinutes(43);
-		playerStats.setPowerPlayGoals(14);
-		playerStats.setShortHandedGoals(0);
-		playerStats.setGameWinningGoals(0);
-		playerStats.setShots(235);
-		playerStats.setShotPercentage(11.9F);
-		playerStats.setGameWinningGoals(4);
-		defence.getPlayerStats().add(playerStats);
-
-		team.getDefencemen().add(defence);
-	}
-
-	private void createLeftDefence(Team team) {
-		HockeyleagueFactory hockeyleagueFactory = HockeyleagueFactory.eINSTANCE;
-		Defence defence = hockeyleagueFactory.createDefence();
-		defence.setName("Tom Orpik");//$NON-NLS-1$
-		defence.setBirthdate("March 20, 1975");//$NON-NLS-1$
-		defence.setBirthplace("Cayuga, Ontario, Canada");//$NON-NLS-1$
-		defence.setHeightMesurement(HeightKind.INCHES_LITERAL);
-		defence.setHeightValue(74);
-		defence.setWeightMesurement(WeightKind.POUNDS_LITERAL);
-		defence.setWeightValue(224);
-		defence.setNumber(15);
-		defence.setShot(ShotKind.LEFT_LITERAL);
-		defence.setPosition(DefencePositionKind.LEFT_DEFENCE_LITERAL);
-
-		PlayerStats playerStats = hockeyleagueFactory.createPlayerStats();
-		playerStats.setYear("2004");//$NON-NLS-1$
-		playerStats.setTeam(team);
-		playerStats.setGamesPlayedIn(67);
-		playerStats.setGoals(28);
-		playerStats.setAssists(63);
-		playerStats.setPoints(91);
-		playerStats.setPlusMinus(-25);
-		playerStats.setPenaltyMinutes(43);
-		playerStats.setPowerPlayGoals(14);
-		playerStats.setShortHandedGoals(0);
-		playerStats.setGameWinningGoals(0);
-		playerStats.setShots(235);
-		playerStats.setShotPercentage(11.9F);
-		playerStats.setGameWinningGoals(4);
-		defence.getPlayerStats().add(playerStats);
-
-		team.getDefencemen().add(defence);
-	}
-
-	private void createCenter(Team team) {
-		HockeyleagueFactory hockeyleagueFactory = HockeyleagueFactory.eINSTANCE;
-		Forward forward = hockeyleagueFactory.createForward();
-		forward.setName("Tom Orpik");//$NON-NLS-1$
-		forward.setBirthdate("March 20, 1975");//$NON-NLS-1$
-		forward.setBirthplace("Cayuga, Ontario, Canada");//$NON-NLS-1$
-		forward.setHeightMesurement(HeightKind.INCHES_LITERAL);
-		forward.setHeightValue(74);
-		forward.setWeightMesurement(WeightKind.POUNDS_LITERAL);
-		forward.setWeightValue(224);
-		forward.setNumber(15);
-		forward.setShot(ShotKind.RIGHT_LITERAL);
-		forward.setPosition(ForwardPositionKind.CENTER_LITERAL);
-
-		PlayerStats playerStats = hockeyleagueFactory.createPlayerStats();
-		playerStats.setYear("2004");//$NON-NLS-1$
-		playerStats.setTeam(team);
-		playerStats.setGamesPlayedIn(67);
-		playerStats.setGoals(28);
-		playerStats.setAssists(63);
-		playerStats.setPoints(91);
-		playerStats.setPlusMinus(-25);
-		playerStats.setPenaltyMinutes(43);
-		playerStats.setPowerPlayGoals(14);
-		playerStats.setShortHandedGoals(0);
-		playerStats.setGameWinningGoals(0);
-		playerStats.setShots(235);
-		playerStats.setShotPercentage(11.9F);
-		playerStats.setGameWinningGoals(4);
-		forward.getPlayerStats().add(playerStats);
-
-		team.getForwards().add(forward);
-	}
-
-	private void createLeftWing(Team team) {
-		HockeyleagueFactory hockeyleagueFactory = HockeyleagueFactory.eINSTANCE;
-		Forward forward = hockeyleagueFactory.createForward();
-		forward.setName("Chris Sargeant");//$NON-NLS-1$
-		forward.setBirthdate("February 16, 1973");//$NON-NLS-1$
-		forward.setBirthplace("Cayuga, Ontario, Canada");//$NON-NLS-1$
-		forward.setHeightMesurement(HeightKind.INCHES_LITERAL);
-		forward.setHeightValue(75);
-		forward.setWeightMesurement(WeightKind.POUNDS_LITERAL);
-		forward.setWeightValue(198);
-		forward.setNumber(22);
-		forward.setShot(ShotKind.RIGHT_LITERAL);
-		forward.setPosition(ForwardPositionKind.RIGHT_WING_LITERAL);
-
-		PlayerStats playerStats = hockeyleagueFactory.createPlayerStats();
-		playerStats.setYear("2004");//$NON-NLS-1$
-		playerStats.setTeam(team);
-		playerStats.setGamesPlayedIn(67);
-		playerStats.setGoals(28);
-		playerStats.setAssists(63);
-		playerStats.setPoints(91);
-		playerStats.setPlusMinus(-25);
-		playerStats.setPenaltyMinutes(43);
-		playerStats.setPowerPlayGoals(14);
-		playerStats.setShortHandedGoals(0);
-		playerStats.setGameWinningGoals(0);
-		playerStats.setShots(235);
-		playerStats.setShotPercentage(11.9F);
-		playerStats.setGameWinningGoals(4);
-		forward.getPlayerStats().add(playerStats);
-
-		team.getForwards().add(forward);
-	}
-
-	private void createRightWing(Team team) {
-		HockeyleagueFactory hockeyleagueFactory = HockeyleagueFactory.eINSTANCE;
-		Forward forward = hockeyleagueFactory.createForward();
-		forward.setName("Martin Smyth");//$NON-NLS-1$
-		forward.setBirthdate("January 24, 1983");//$NON-NLS-1$
-		forward.setBirthplace("Calgary, Alberta, Canada");//$NON-NLS-1$
-		forward.setHeightMesurement(HeightKind.INCHES_LITERAL);
-		forward.setHeightValue(71);
-		forward.setWeightMesurement(WeightKind.POUNDS_LITERAL);
-		forward.setWeightValue(192);
-		forward.setNumber(14);
-		forward.setShot(ShotKind.LEFT_LITERAL);
-		forward.setPosition(ForwardPositionKind.LEFT_WING_LITERAL);
-
-		PlayerStats playerStats = hockeyleagueFactory.createPlayerStats();
-		playerStats.setYear("2004");//$NON-NLS-1$
-		playerStats.setTeam(team);
-		playerStats.setGamesPlayedIn(80);
-		playerStats.setGoals(45);
-		playerStats.setAssists(35);
-		playerStats.setPoints(80);
-		playerStats.setPlusMinus(8);
-		playerStats.setPenaltyMinutes(34);
-		playerStats.setPowerPlayGoals(14);
-		playerStats.setShortHandedGoals(0);
-		playerStats.setGameWinningGoals(10);
-		playerStats.setShots(229);
-		playerStats.setShotPercentage(19.7F);
-		playerStats.setGameWinningGoals(10);
-		forward.getPlayerStats().add(playerStats);
-
-		team.getForwards().add(forward);
-	}
-
-	private void createGoalie(Team team) {
-		HockeyleagueFactory hockeyleagueFactory = HockeyleagueFactory.eINSTANCE;
-		Goalie goalie = hockeyleagueFactory.createGoalie();
-		goalie.setName("Jaugues Leblanc");//$NON-NLS-1$
-		goalie.setBirthdate("July 7, 1979");//$NON-NLS-1$
-		goalie.setBirthplace("Laval, Quebec, Canada");//$NON-NLS-1$
-		goalie.setHeightMesurement(HeightKind.INCHES_LITERAL);
-		goalie.setHeightValue(71);
-		goalie.setWeightMesurement(WeightKind.POUNDS_LITERAL);
-		goalie.setWeightValue(192);
-		goalie.setNumber(29);
-		goalie.setShot(ShotKind.LEFT_LITERAL);
-
-		GoalieStats goalieStats = hockeyleagueFactory.createGoalieStats();
-		goalieStats.setYear("2004");//$NON-NLS-1$
-		goalieStats.setTeam(team);
-		goalieStats.setGamesPlayedIn(67);
-		goalieStats.setWins(39);
-		goalieStats.setLosses(20);
-		goalieStats.setTies(7);
-		goalieStats.setMinutesPlayedIn(3943);
-		goalieStats.setGoalsAgainst(142);
-		goalieStats.setSaves(1591);
-		goalieStats.setGoalsAgainstAverage(2.64F);
-		goalieStats.setShutouts(4);
-		goalieStats.setGoals(0);
-		goalieStats.setAssists(1);
-		goalieStats.setPoints(1);
-		goalieStats.setPenaltyMinutes(6);
-		goalieStats.setEmptyNetGoals(1);
-		goalie.getGoalieStats().add(goalieStats);
-
-		team.getGoalies().add(goalie);
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueAdapterFactory.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueAdapterFactory.java
deleted file mode 100644
index 88ad990..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueAdapterFactory.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.util;
-
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage
- * @generated
- */
-public class HockeyleagueAdapterFactory extends AdapterFactoryImpl {
-	/**
-	 * The cached model package.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static HockeyleaguePackage modelPackage;
-
-	/**
-	 * Creates an instance of the adapter factory.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueAdapterFactory() {
-		if (modelPackage == null) {
-			modelPackage = HockeyleaguePackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Returns whether this factory is applicable for the type of the object.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-	 * <!-- end-user-doc -->
-	 * @return whether this factory is applicable for the type of the object.
-	 * @generated
-	 */
-	public boolean isFactoryForType(Object object) {
-		if (object == modelPackage) {
-			return true;
-		}
-		if (object instanceof EObject) {
-			return ((EObject)object).eClass().getEPackage() == modelPackage;
-		}
-		return false;
-	}
-
-	/**
-	 * The switch that delegates to the <code>createXXX</code> methods.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected HockeyleagueSwitch modelSwitch =
-		new HockeyleagueSwitch() {
-			public Object caseArena(Arena object) {
-				return createArenaAdapter();
-			}
-			public Object caseDefence(Defence object) {
-				return createDefenceAdapter();
-			}
-			public Object caseForward(Forward object) {
-				return createForwardAdapter();
-			}
-			public Object caseGoalie(Goalie object) {
-				return createGoalieAdapter();
-			}
-			public Object caseGoalieStats(GoalieStats object) {
-				return createGoalieStatsAdapter();
-			}
-			public Object caseHockeyleagueObject(HockeyleagueObject object) {
-				return createHockeyleagueObjectAdapter();
-			}
-			public Object caseLeague(League object) {
-				return createLeagueAdapter();
-			}
-			public Object casePlayer(Player object) {
-				return createPlayerAdapter();
-			}
-			public Object casePlayerStats(PlayerStats object) {
-				return createPlayerStatsAdapter();
-			}
-			public Object caseTeam(Team object) {
-				return createTeamAdapter();
-			}
-			public Object defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
-
-	/**
-	 * Creates an adapter for the <code>target</code>.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param target the object to adapt.
-	 * @return the adapter for the <code>target</code>.
-	 * @generated
-	 */
-	public Adapter createAdapter(Notifier target) {
-		return (Adapter)modelSwitch.doSwitch((EObject)target);
-	}
-
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena <em>Arena</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Arena
-	 * @generated
-	 */
-	public Adapter createArenaAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence <em>Defence</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Defence
-	 * @generated
-	 */
-	public Adapter createDefenceAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward <em>Forward</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Forward
-	 * @generated
-	 */
-	public Adapter createForwardAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie <em>Goalie</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Goalie
-	 * @generated
-	 */
-	public Adapter createGoalieAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats <em>Goalie Stats</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.GoalieStats
-	 * @generated
-	 */
-	public Adapter createGoalieStatsAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject <em>Object</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleagueObject
-	 * @generated
-	 */
-	public Adapter createHockeyleagueObjectAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League <em>League</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.League
-	 * @generated
-	 */
-	public Adapter createLeagueAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player <em>Player</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Player
-	 * @generated
-	 */
-	public Adapter createPlayerAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats <em>Player Stats</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.PlayerStats
-	 * @generated
-	 */
-	public Adapter createPlayerStatsAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team <em>Team</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.Team
-	 * @generated
-	 */
-	public Adapter createTeamAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for the default case.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @generated
-	 */
-	public Adapter createEObjectAdapter() {
-		return null;
-	}
-
-} //HockeyleagueAdapterFactory
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueSwitch.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueSwitch.java
deleted file mode 100644
index cba6e01..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.hockeyleague/src/org/eclipse/ui/examples/views/properties/tabbed/hockeyleague/util/HockeyleagueSwitch.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.examples.views.properties.tabbed.hockeyleague.util;
-
-
-import java.util.List;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.*;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
- * to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- * @see org.eclipse.ui.examples.views.properties.tabbed.hockeyleague.HockeyleaguePackage
- * @generated
- */
-public class HockeyleagueSwitch {
-	/**
-	 * The cached model package
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected static HockeyleaguePackage modelPackage;
-
-	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public HockeyleagueSwitch() {
-		if (modelPackage == null) {
-			modelPackage = HockeyleaguePackage.eINSTANCE;
-		}
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	public Object doSwitch(EObject theEObject) {
-		return doSwitch(theEObject.eClass(), theEObject);
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	protected Object doSwitch(EClass theEClass, EObject theEObject) {
-		if (theEClass.eContainer() == modelPackage) {
-			return doSwitch(theEClass.getClassifierID(), theEObject);
-		}
-		else {
-			List eSuperTypes = theEClass.getESuperTypes();
-			return
-				eSuperTypes.isEmpty() ?
-					defaultCase(theEObject) :
-					doSwitch((EClass)eSuperTypes.get(0), theEObject);
-		}
-	}
-
-	/**
-	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the first non-null result returned by a <code>caseXXX</code> call.
-	 * @generated
-	 */
-	protected Object doSwitch(int classifierID, EObject theEObject) {
-		switch (classifierID) {
-			case HockeyleaguePackage.ARENA: {
-				Arena arena = (Arena)theEObject;
-				Object result = caseArena(arena);
-				if (result == null) result = caseHockeyleagueObject(arena);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.DEFENCE: {
-				Defence defence = (Defence)theEObject;
-				Object result = caseDefence(defence);
-				if (result == null) result = casePlayer(defence);
-				if (result == null) result = caseHockeyleagueObject(defence);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.FORWARD: {
-				Forward forward = (Forward)theEObject;
-				Object result = caseForward(forward);
-				if (result == null) result = casePlayer(forward);
-				if (result == null) result = caseHockeyleagueObject(forward);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.GOALIE: {
-				Goalie goalie = (Goalie)theEObject;
-				Object result = caseGoalie(goalie);
-				if (result == null) result = casePlayer(goalie);
-				if (result == null) result = caseHockeyleagueObject(goalie);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.GOALIE_STATS: {
-				GoalieStats goalieStats = (GoalieStats)theEObject;
-				Object result = caseGoalieStats(goalieStats);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.HOCKEYLEAGUE_OBJECT: {
-				HockeyleagueObject hockeyleagueObject = (HockeyleagueObject)theEObject;
-				Object result = caseHockeyleagueObject(hockeyleagueObject);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.LEAGUE: {
-				League league = (League)theEObject;
-				Object result = caseLeague(league);
-				if (result == null) result = caseHockeyleagueObject(league);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.PLAYER: {
-				Player player = (Player)theEObject;
-				Object result = casePlayer(player);
-				if (result == null) result = caseHockeyleagueObject(player);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.PLAYER_STATS: {
-				PlayerStats playerStats = (PlayerStats)theEObject;
-				Object result = casePlayerStats(playerStats);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case HockeyleaguePackage.TEAM: {
-				Team team = (Team)theEObject;
-				Object result = caseTeam(team);
-				if (result == null) result = caseHockeyleagueObject(team);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			default: return defaultCase(theEObject);
-		}
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Arena</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Arena</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseArena(Arena object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Defence</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Defence</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseDefence(Defence object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Forward</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Forward</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseForward(Forward object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Goalie</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Goalie</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseGoalie(Goalie object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Goalie Stats</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Goalie Stats</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseGoalieStats(GoalieStats object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Object</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Object</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseHockeyleagueObject(HockeyleagueObject object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>League</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>League</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseLeague(League object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Player</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Player</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object casePlayer(Player object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Player Stats</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Player Stats</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object casePlayerStats(PlayerStats object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Team</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Team</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public Object caseTeam(Team object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch, but this is the last case anyway.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-	 * @generated
-	 */
-	public Object defaultCase(EObject object) {
-		return null;
-	}
-
-} //HockeyleagueSwitch
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.classpath b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.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/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.cvsignore b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.project b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.project
deleted file mode 100644
index 64e15f3..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.examples.views.properties.tabbed.logic</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/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 662a6cc..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 06 11:18:30 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=error
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-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.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 0b94798..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:18:33 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.2\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 5b8aef4..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Tue Jan 31 19:06:57 EST 2006
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=1
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/META-INF/MANIFEST.MF
deleted file mode 100644
index e8138af..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,15 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Logic Plug-in
-Bundle-SymbolicName: org.eclipse.ui.examples.views.properties.tabbed.logic;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Activator: org.eclipse.ui.examples.views.properties.tabbed.logic.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.gef.examples.logic,
- org.eclipse.ui.views.properties.tabbed,
- org.eclipse.gef,
- org.eclipse.core.resources,
- org.eclipse.ui.ide
-Eclipse-LazyStart: true
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/about.html b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/about.html
deleted file mode 100644
index 4602330..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/build.properties b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/build.properties
deleted file mode 100644
index cb3487b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/build.properties
+++ /dev/null
@@ -1,19 +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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               icons/,\
-               plugin.properties
-src.includes = about.html
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logic.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logic.gif
deleted file mode 100644
index ca05b78..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logic.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logicbanner.gif b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logicbanner.gif
deleted file mode 100644
index 6a4deba..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/icons/logicbanner.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.properties b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.properties
deleted file mode 100644
index d47c7bd..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.properties
+++ /dev/null
@@ -1,203 +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
-###############################################################################
-Plugin.name = IBM Rational Common UI Properties Logic Example
-Plugin.providerName = IBM Rational
-
-Logic_example_graphical_editor_name = Logic Graphical Editor
-GEF_example_wizard_category_name = GEF (Graphical Editing Framework)
-Logic_example_wizard_name = Logic Diagram
-Logic_example_wizard_description=An example of a wizard that creates sample Logic file
-
-##############################################
-# PasteTemplateAction Class
-##############################################
-PasteAction.ActionToolTipText_UI_=Paste
-PasteAction.ActionLabelText_UI_=&Paste
-PasteAction.ActionDeleteCommandName_UI_=Paste
-
-##############################################
-# ZoomAction Class
-##############################################
-ZoomAction.ZoomIn.ActionToolTipText_UI_=Zoom In
-ZoomAction.ZoomIn.ActionLabelText_UI_=Zoom In
-ZoomAction.ZoomOut.ActionToolTipText_UI_=Zoom Out
-ZoomAction.ZoomOut.ActionLabelText_UI_=Zoom Out
-
-##############################################
-# View Menu
-##############################################
-ViewMenu.LabelText_UI_=&View
-
-##############################################
-# Property Source Cell Editor Validators
-##############################################
-CellEditorValidator.NotANumberMessage=Not a number
-
-##############################################
-# Palette Customizer
-##############################################
-PaletteCustomizer.InvalidCharMessage=Name contains invalid character: *
-
-##############################################
-# Model information
-##############################################
-Wire.LabelText=Wire
-LED.LabelText=LED
-LogicDiagram.LabelText=Logic Diagram
-Circuit.LabelText=Circuit
-AndGate.LabelText=And Gate
-OrGate.LabelText=Or Gate
-XORGate.LabelText=XOR Gate
-GroundOutput.LabelText=Ground
-LiveOutput.LabelText=Positive Voltage
-
-##############################################
-# PropertyDescriptors and PropertySources
-##############################################
-PropertyDescriptor.Label.Text=Text
-PropertyDescriptor.LogicSubPart.Size=Size
-PropertyDescriptor.LogicSubPart.Location=Location
-PropertyDescriptor.LED.Value=Value
-PropertyDescriptor.LogicDiagram.ConnectionRouter=Connection Router
-PropertyDescriptor.LogicDiagram.Manual=Manual
-PropertyDescriptor.LogicDiagram.Manhattan=Manhattan
-
-DimensionPropertySource.Property.Width.Label=Width
-DimensionPropertySource.Property.Height.Label=Height
-LocationPropertySource.Property.X.Label=X
-LocationPropertySource.Property.Y.Label=Y
-
-##############################################
-# Actions (IncrementDecrementAction)
-##############################################
-IncrementDecrementAction.Increment.ActionLabelText=Increment
-IncrementDecrementAction.Increment.ActionToolTipText=Increment LED
-IncrementDecrementAction.Decrement.ActionLabelText=Decrement
-IncrementDecrementAction.Decrement.ActionToolTipText=Decrement LED
-
-##############################################
-# Actions (AlignmentAction)
-##############################################
-AlignmentAction.AlignSubmenu.ActionLabelText=&Align
-
-##############################################
-# EditPolicies
-##############################################
-LogicXYLayoutEditPolicy.AddCommandLabelText=Reparenting LogicSubpart
-LogicXYLayoutEditPolicy.CreateCommandLabelText=Creating LogicSubpart
-LogicElementEditPolicy.OrphanCommandLabelText=Reparenting LogicSubpart
-IncrementDecrementCommand.LabelText=Logic Value Change
-LogicNullConstraintEditPolicy.OrphanCommandLabelText=Reparenting LogicSubpart
-LogicContainerEditPolicy.OrphanCommandLabelText=Orphan children
-
-##############################################
-# Wizard Page
-##############################################
-CreateLogicPage1.Title=Create Logic File
-CreateLogicPage1.Description=Create a new Logic file resource.
-CreateLogicPage1.ModelNames.GroupName=Logic Model Samples
-CreateLogicPage1.ModelNames.EmptyModelName=E&mpty Model
-CreateLogicPage1.ModelNames.HalfAdderModelName=Half-Adder Model
-CreateLogicPage1.ModelNames.FullAdderModelName=Full-Adder Model
-CreateLogicPage1.ModelNames.FourBitAdderModelName=F&our-bit Adder Model
-
-##############################################
-# LogicPlugin and Tools
-##############################################
-LogicPlugin.Category.ComplexParts.Label=Canned Parts
-LogicPlugin.Category.Components.Label=Components
-LogicPlugin.Category.ControlGroup.Label=Control Group
-LogicPlugin.Tool.CreationTool.LiveGroundStack.Label=Live & Ground Stack
-LogicPlugin.Tool.CreationTool.LiveGroundStack.Description=A stack containg the live output and ground parts
-LogicPlugin.Tool.CreationTool.LogicLabel=Label
-LogicPlugin.Tool.CreationTool.Label.Label=Label
-LogicPlugin.Tool.CreationTool.Label.Description=Creates labels (they support renaming, resizing, dragging, cut and paste, etc.)
-LogicPlugin.Tool.CreationTool.FlowContainer.Label=Flow Container
-LogicPlugin.Tool.CreationTool.FlowContainer.Description=Creates a container that can hold other circuit components
-LogicPlugin.Tool.CreationTool.HalfAdder.Label=HalfAdder
-LogicPlugin.Tool.CreationTool.HalfAdder.Description=Creates a circuit representing a half-adder
-LogicPlugin.Tool.CreationTool.FullAdder.Label=FullAdder
-LogicPlugin.Tool.CreationTool.FullAdder.Description=Creates a circuit representing a full-adder (uses two half-adders)
-LogicPlugin.Tool.CreationTool.LED.Label=LED
-LogicPlugin.Tool.CreationTool.LED.Description=Creates an LED which is used to read voltage input/output
-LogicPlugin.Tool.CreationTool.Circuit.Label=Circuit
-LogicPlugin.Tool.CreationTool.Circuit.Description=Create a circuit.  It can be connected to external circuits/parts, and can have an intricate design as well.
-LogicPlugin.Tool.CreationTool.ORGate.Label=Or Gate
-LogicPlugin.Tool.CreationTool.ORGate.Description=Create a gate that performs the logical OR operation
-LogicPlugin.Tool.CreationTool.XORGate.Label=XOR Gate
-LogicPlugin.Tool.CreationTool.XORGate.Description=Creates a gate that can perform the logical XOR operation
-LogicPlugin.Tool.CreationTool.ANDGate.Label=And Gate
-LogicPlugin.Tool.CreationTool.ANDGate.Description=Creates a gate that can perform the logical AND operation
-LogicPlugin.Tool.CreationTool.LiveOutput.Label=V+
-LogicPlugin.Tool.CreationTool.LiveOutput.Description=Creates a voltage positive node, which is an electrical equivalent of logical 'true'
-LogicPlugin.Tool.CreationTool.Ground.Label=Ground
-LogicPlugin.Tool.CreationTool.Ground.Description=Creates a ground node, which is an electrical equivalent of logical 'false'
-LogicPlugin.Tool.SelectionTool.SelectionTool.Label=Selection
-LogicPlugin.Tool.SelectionTool.SelectionTool.Description=Selection Tool can be used to select a figure in the editor.
-LogicPlugin.Tool.MarqueeSelectionTool.MarqueeSelectionTool.Label=Marquee
-LogicPlugin.Tool.MarqueeSelectionTool.MarqueeSelectionTool.Description=Marquee Selection Tool can be used to select multiple parts in the editor.
-LogicPlugin.Tool.ConnectionCreationTool.ConnectionCreationTool.Label=Connection
-LogicPlugin.Tool.ConnectionCreationTool.ConnectionCreationTool.Description=Connection tool can be used to connect the various circuit parts.
-
-##############################################
-# Commands
-##############################################
-AddChildCommand.Label=Add child to parent
-AddCommand.Label=Add command
-AddCommand.Description=Add
-
-ConnectionCommand.Label=wire connection
-ConnectionCommand.Description=Connection change
-
-CloneCommand.Label=Clone Object
-CloneCommand.Description=Clone
-
-CreateCommand.Label=Create Object
-CreateCommand.Description=Create
-
-OrphanChildCommand.Label=Orphan LogicSubpart
-
-ReorderPartCommand.Label=Reorder Subpart
-ReorderPartCommand.Description=Reorder
-
-SetLocationCommand.Description=Move Object
-SetLocationCommand.Label.Location=Move Object
-SetLocationCommand.Label.Resize=Resize Object
-SetMultipleLocationCommand.Description=Move Objects
-SetMultipleLocationCommand.Label.Location=Move Objects
-SetMultipleLocationCommand.Label.Resize=Resize Objects
-
-DeleteCommand.Label=Delete Object
-DeleteCommand.Description=Delete Object
-DeleteMultipleCommand.Label=Delete Objects
-DeleteMultipleCommand.Description=Delete Objects
-
-###############################################
-# Used by LogicEditor
-##############################################\
-GraphicalEditor.FILE_DELETED_TITLE_UI_ = File Deleted
-GraphicalEditor.FILE_DELETED_WITHOUT_SAVE_INFO_ = IWAG0001I The file has been deleted from the file system.  Do you want to save your changes or close the editor without saving?
-GraphicalEditor.SAVE_BUTTON_UI_ = Save
-GraphicalEditor.CLOSE_BUTTON_UI_ = Close
-
-###############################################
-# Exceptions
-###############################################
-LogicEditPart.CreateChild.Exception.Runtime_EXC_=This object has no children
-
-
-###############################################
-# Rulers and Guides
-###############################################
-CreateGuideCommand_Label=Create Guide
-DeleteGuideCommand_Label=Delete Guide
-MoveGuideCommand_Label=Move Guide
-
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.xml b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.xml
deleted file mode 100644
index 94d159f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/plugin.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-     <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            default="true"
-            name="Tabbed Properties View Example Logic Editor"
-            extensions="tabbedpropertieslogic"
-            icon="icons/logic.gif"
-            class="org.eclipse.ui.examples.views.properties.tabbed.logic.TabbedPropertiesLogicEditor"
-            contributorClass="org.eclipse.gef.examples.logicdesigner.actions.LogicActionBarContributor"
-            id="org.eclipse.ui.examples.views.properties.tabbed.logic.TabbedPropertiesLogicEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <category
-            name="Tabbed Properties View Examples"
-            parentCategory="org.eclipse.ui.Examples"
-            id="org.eclipse.ui.views.properties.tabbed">
-      </category>
-      <wizard
-            name="Tabbed Properties View Logic Example File"
-            icon="icons/logic.gif"
-            category="org.eclipse.ui.Examples/org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.examples.views.properties.tabbed.logic.LogicCreationWizard"
-            id="org.eclipse.ui.examples.views.properties.tabbed.logic.LogicCreationWizard">
-         <description>
-            Create a new Tabbed Properties View Logic Example file
-         </description>
-         <selection
-               class="org.eclipse.core.resources.IResource">
-         </selection>
-      </wizard>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            typeMapper="org.eclipse.ui.examples.views.properties.tabbed.logic.properties.LogicElementTypeMapper"
-            contributorId="org.eclipse.ui.examples.views.properties.tabbed.logic.TabbedPropertiesLogicEditor"
-            labelProvider="org.eclipse.ui.examples.views.properties.tabbed.logic.properties.LogicElementLabelProvider">
-         <propertyCategory
-               category="element">
-         </propertyCategory>
-         <propertyCategory
-               category="other">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs
-            contributorId="org.eclipse.ui.examples.views.properties.tabbed.logic.TabbedPropertiesLogicEditor">
-         <propertyTab
-               label="Advanced"
-               category="other"
-               afterTab="logic.tab.Size"
-               id="logic.tab.Advanced">
-         </propertyTab>
-         <propertyTab
-               label="Location"
-               category="other"
-               id="logic.tab.Location">
-         </propertyTab>
-         <propertyTab
-               label="Size"
-               category="other"
-               afterTab="logic.tab.Location"
-               id="logic.tab.Size">
-         </propertyTab>
-         <propertyTab
-               label="Element"
-               category="element"
-               id="logic.tab.Element">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections
-            contributorId="org.eclipse.ui.examples.views.properties.tabbed.logic.TabbedPropertiesLogicEditor">
-         <propertySection
-               tab="logic.tab.Element"
-               class="org.eclipse.ui.examples.views.properties.tabbed.logic.properties.ValueSection"
-               afterSection="logic.section.Name"
-               id="logic.section.Value">
-            <input
-                  type="org.eclipse.gef.examples.logicdesigner.model.LED">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="logic.tab.Advanced"
-               class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
-               id="logic.section.Advanced">
-            <input
-                  type="org.eclipse.gef.examples.logicdesigner.model.LogicElement">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="logic.tab.Element"
-               class="org.eclipse.ui.examples.views.properties.tabbed.logic.properties.NameSection"
-               id="logic.section.Name">
-            <input
-                  type="org.eclipse.gef.examples.logicdesigner.model.LogicElement">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="logic.tab.Location"
-               class="org.eclipse.ui.examples.views.properties.tabbed.logic.properties.LocationSection"
-               id="logic.section.Location">
-            <input
-                  type="org.eclipse.gef.examples.logicdesigner.model.LogicSubpart">
-            </input>
-         </propertySection>
-         <propertySection
-               tab="logic.tab.Size"
-               filter="org.eclipse.ui.examples.views.properties.tabbed.logic.properties.LogicElementSizeFilter"
-               class="org.eclipse.ui.examples.views.properties.tabbed.logic.properties.SizeSection"
-               id="logic.section.Size">
-            <input
-                  type="org.eclipse.gef.examples.logicdesigner.model.LogicSubpart">
-            </input>
-         </propertySection>
-      </propertySections>
-   </extension>
-
-</plugin>
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/Activator.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/Activator.java
deleted file mode 100644
index 74a5914..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/Activator.java
+++ /dev/null
@@ -1,71 +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.examples.views.properties.tabbed.logic;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class Activator
-	extends AbstractUIPlugin {
-
-	// The shared instance.
-	private static Activator plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public Activator() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context)
-		throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context)
-		throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 * 
-	 * @return the shared instance.
-	 */
-	public static Activator getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given plug-in
-	 * relative path.
-	 * 
-	 * @param path
-	 *            the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin(
-			"org.eclipse.ui.examples.views.properties.tabbed.logic", path);//$NON-NLS-1$
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicCreationWizard.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicCreationWizard.java
deleted file mode 100644
index cd13407..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicCreationWizard.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.examples.views.properties.tabbed.logic;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-public class LogicCreationWizard
-    extends Wizard
-    implements INewWizard {
-
-    private LogicWizardPage1 logicPage = null;
-
-    private IStructuredSelection selection;
-
-    private IWorkbench workbench;
-
-    public void addPages() {
-        logicPage = new LogicWizardPage1(workbench, selection);
-        addPage(logicPage);
-    }
-
-    public void init(IWorkbench aWorkbench,
-            IStructuredSelection currentSelection) {
-        workbench = aWorkbench;
-        selection = currentSelection;
-    }
-
-    public boolean performFinish() {
-        return logicPage.finish();
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicWizardPage1.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicWizardPage1.java
deleted file mode 100644
index 407d96f..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/LogicWizardPage1.java
+++ /dev/null
@@ -1,154 +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.examples.views.properties.tabbed.logic;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.ObjectOutputStream;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Group;
-import org.eclipse.swt.widgets.Label;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.ui.ide.IDE;
-
-import org.eclipse.gef.examples.logicdesigner.model.LogicDiagram;
-import org.eclipse.gef.examples.logicdesigner.model.LogicDiagramFactory;
-
-public class LogicWizardPage1
-    extends WizardNewFileCreationPage
-    implements SelectionListener {
-
-    private IWorkbench workbench;
-
-    private static int exampleCount = 1;
-
-    private Button model1 = null;
-
-    private Button model2 = null;
-
-    private int modelSelected = 1;
-
-    public LogicWizardPage1(IWorkbench aWorkbench,
-            IStructuredSelection selection) {
-        super("sampleLogicPage1", selection); //$NON-NLS-1$
-        this.setTitle("Tabbed Properties View Logic Example");//$NON-NLS-1$
-        this
-            .setDescription("Create a new Tabbed Properties View Logic Example file");//$NON-NLS-1$
-        this.setImageDescriptor(ImageDescriptor.createFromFile(getClass(),
-            "icons/logicbanner.gif")); //$NON-NLS-1$
-        this.workbench = aWorkbench;
-    }
-
-    public void createControl(Composite parent) {
-        super.createControl(parent);
-        this
-            .setFileName("emptyModel" + exampleCount + ".tabbedpropertieslogic"); //$NON-NLS-2$//$NON-NLS-1$
-
-        Composite composite = (Composite) getControl();
-
-        // sample section generation group
-        Group group = new Group(composite, SWT.NONE);
-        group.setLayout(new GridLayout());
-        group.setText("Logic Model Samples"); //$NON-NLS-1$
-        group.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL
-            | GridData.HORIZONTAL_ALIGN_FILL));
-
-        // sample section generation checkboxes
-        model1 = new Button(group, SWT.RADIO);
-        model1.setText("E&mpty Model");//$NON-NLS-1$
-        model1.addSelectionListener(this);
-        model1.setSelection(true);
-
-        model2 = new Button(group, SWT.RADIO);
-        model2.setText("F&our-bit Adder Model");//$NON-NLS-1$
-        model2.addSelectionListener(this);
-
-        new Label(composite, SWT.NONE);
-
-        setPageComplete(validatePage());
-    }
-
-    protected InputStream getInitialContents() {
-        LogicDiagram ld = new LogicDiagram();
-        if (modelSelected == 2)
-            ld = (LogicDiagram) LogicDiagramFactory.createLargeModel();
-        ByteArrayInputStream bais = null;
-        try {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            ObjectOutputStream oos = new ObjectOutputStream(baos);
-            oos.writeObject(ld);
-            oos.flush();
-            oos.close();
-            baos.close();
-            bais = new ByteArrayInputStream(baos.toByteArray());
-            bais.close();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return bais;
-    }
-
-    public boolean finish() {
-        IFile newFile = createNewFile();
-        if (newFile == null)
-            return false; // ie.- creation was unsuccessful
-
-        // Since the file resource was created fine, open it for editing
-        // iff requested by the user
-        try {
-            IWorkbenchWindow dwindow = workbench.getActiveWorkbenchWindow();
-            IWorkbenchPage page = dwindow.getActivePage();
-            if (page != null)
-                IDE.openEditor(page, newFile, true);
-        } catch (org.eclipse.ui.PartInitException e) {
-            e.printStackTrace();
-            return false;
-        }
-        exampleCount++;
-        return true;
-    }
-
-    /**
-     * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-     */
-    public void widgetSelected(SelectionEvent e) {
-        if (e.getSource() == model1) {
-            modelSelected = 1;
-            setFileName("emptyModel" + exampleCount + ".tabbedpropertieslogic"); //$NON-NLS-2$//$NON-NLS-1$
-        } else {
-            modelSelected = 2;
-            setFileName("fourBitAdder" + exampleCount + ".tabbedpropertieslogic"); //$NON-NLS-2$//$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Empty method
-     */
-    public void widgetDefaultSelected(SelectionEvent e) {
-        //
-    }
-
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/TabbedPropertiesLogicEditor.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/TabbedPropertiesLogicEditor.java
deleted file mode 100644
index a789382..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/TabbedPropertiesLogicEditor.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.examples.views.properties.tabbed.logic;
-
-import org.eclipse.gef.examples.logicdesigner.LogicEditor;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-public class TabbedPropertiesLogicEditor
-    extends LogicEditor
-    implements ITabbedPropertySheetPageContributor {
-
-    private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-    protected void initializeGraphicalViewer() {
-        super.initializeGraphicalViewer();
-        this.tabbedPropertySheetPage = new TabbedPropertySheetPage(this);
-    }
-
-    public String getContributorId() {
-        return getSite().getId();
-    }
-
-    public Object getAdapter(Class type) {
-        if (type == IPropertySheetPage.class)
-            return tabbedPropertySheetPage;
-        return super.getAdapter(type);
-    }
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/AbstractSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/AbstractSection.java
deleted file mode 100644
index eb0b72b..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/AbstractSection.java
+++ /dev/null
@@ -1,75 +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.examples.views.properties.tabbed.logic.properties;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.examples.logicdesigner.model.LogicElement;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-
-/**
- * Abstract class for a section in a tab in the properties view.
- * 
- * @author Anthony Hunter 
- */
-public abstract class AbstractSection
-	extends AbstractPropertySection implements PropertyChangeListener {
-
-	private LogicElement element;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#setInput(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		super.setInput(part, selection);
-		Assert.isTrue(selection instanceof IStructuredSelection);
-		Object input = ((IStructuredSelection)selection).getFirstElement();
-		Assert.isTrue(input instanceof EditPart);
-		Object model = ((EditPart) input).getModel();
-		Assert.isTrue(model instanceof LogicElement);
-		this.element = (LogicElement) model;
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#aboutToBeShown()
-	 */
-	public void aboutToBeShown() {
-		getElement().addPropertyChangeListener(this);
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#aboutToBeHidden()
-	 */
-	public void aboutToBeHidden() {
-		getElement().removePropertyChangeListener(this);
-	}
-
-	/**
-	 * Get the element.
-	 * @return the element.
-	 */
-	public LogicElement getElement() {
-		return element;
-	}
-
-	/**
-	 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
-	 */
-	public void propertyChange(PropertyChangeEvent evt) {
-		refresh();
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LocationSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LocationSection.java
deleted file mode 100644
index 3049fa2..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LocationSection.java
+++ /dev/null
@@ -1,114 +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.examples.views.properties.tabbed.logic.properties;
-
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.examples.logicdesigner.model.LogicSubpart;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-
-/**
- * The location section on the location tab.
- * 
- * @author Anthony Hunter 
- */
-public class LocationSection extends AbstractSection {
-	private Text xText;
-	private Text yText;
-
-	/**
-	 * A helper to listen for events that indicate that a text
-	 * field has been changed.
-	 */
-	private TextChangeHelper listener = new TextChangeHelper() {
-		public void textChanged(Control control) {
-			Point point = new Point();
-			point.x = Integer.parseInt(xText.getText());
-			point.y = Integer.parseInt(yText.getText());
-			((LogicSubpart) getElement()).setLocation(point);
-		}
-	};
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		Composite composite =
-			getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		xText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		xText.setLayoutData(data);
-
-		CLabel xLabel = getWidgetFactory().createCLabel(composite, "X:"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right =
-			new FormAttachment(xText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(xText, 0, SWT.CENTER);
-		xLabel.setLayoutData(data);
-
-		yText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(xText, 0, SWT.LEFT);
-		data.right = new FormAttachment(xText, 0, SWT.RIGHT);
-		data.top =
-			new FormAttachment(
-				xText,
-				ITabbedPropertyConstants.VSPACE,
-				SWT.BOTTOM);
-		yText.setLayoutData(data);
-
-		CLabel yLabel = getWidgetFactory().createCLabel(composite, "Y:"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right =
-			new FormAttachment(yText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(yText, 0, SWT.CENTER);
-		yLabel.setLayoutData(data);
-
-		listener.startListeningForEnter(xText);
-		listener.startListeningTo(xText);
-		listener.startListeningForEnter(yText);
-		listener.startListeningTo(yText);
-	}
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		Assert.isTrue(getElement() instanceof LogicSubpart);
-		listener.startNonUserChange();
-		try {
-			Point point = ((LogicSubpart) getElement()).getLocation();
-			xText.setText(Integer.toString(point.x));
-			yText.setText(Integer.toString(point.y));
-		} finally {
-			listener.finishNonUserChange();
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementLabelProvider.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementLabelProvider.java
deleted file mode 100644
index 57ea088..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementLabelProvider.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.examples.views.properties.tabbed.logic.properties;
-
-import java.util.Iterator;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.examples.logicdesigner.model.Circuit;
-import org.eclipse.gef.examples.logicdesigner.model.LogicElement;
-import org.eclipse.gef.examples.logicdesigner.model.LogicSubpart;
-import org.eclipse.gef.examples.logicdesigner.model.Wire;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * Label provider for the title bar for the tabbed property sheet page.
- * 
- * @author Anthony Hunter
- */
-public class LogicElementLabelProvider
-	extends LabelProvider {
-
-	private ITypeMapper typeMapper;
-
-	/**
-	 * constructor.
-	 */
-	public LogicElementLabelProvider() {
-		super();
-		typeMapper = new LogicElementTypeMapper();
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object objects) {
-		if (objects == null || objects.equals(StructuredSelection.EMPTY)) {
-			return null;
-		}
-		final boolean multiple[] = {false};
-		Object object = getObject(objects, multiple);
-		if (object == null) {
-			ImageDescriptor imageDescriptor = ImageDescriptor.createFromFile(
-				Circuit.class, "icons/comp.gif");//$NON-NLS-1$
-			return imageDescriptor.createImage();
-		} else {
-			if (!(object instanceof EditPart)) {
-				return null;
-			}
-			LogicElement element = (LogicElement) ((EditPart) object)
-				.getModel();
-			if (element instanceof Wire) {
-				ImageDescriptor imageDescriptor = ImageDescriptor
-					.createFromFile(Circuit.class, "icons/connection16.gif");//$NON-NLS-1$
-				return imageDescriptor.createImage();
-			}
-			return ((LogicSubpart) element).getIconImage();
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object objects) {
-		if (objects == null || objects.equals(StructuredSelection.EMPTY)) {
-			return "No items selected";//$NON-NLS-1$
-		}
-		final boolean multiple[] = {false};
-		final Object object = getObject(objects, multiple);
-		if (object == null || ((IStructuredSelection) objects).size() > 1) {
-			return ((IStructuredSelection) objects).size() + " items selected";//$NON-NLS-1$
-		} else {
-			String name = typeMapper.mapType(object).getName();
-			return name.substring(name.lastIndexOf('.') + 1);
-		}
-	}
-
-	/**
-	 * Determine if a multiple object selection has been passed to the label
-	 * provider. If the objects is a IStructuredSelection, see if all the
-	 * objects in the selection are the same and if so, we want to provide
-	 * labels for the common selected element.
-	 * 
-	 * @param objects
-	 *            a single object or a IStructuredSelection.
-	 * @param multiple
-	 *            first element in the array is true if there is multiple
-	 *            unequal selected elements in a IStructuredSelection.
-	 * @return the object to get labels for.
-	 */
-	private Object getObject(Object objects, boolean multiple[]) {
-		Assert.isNotNull(objects);
-		Object object = null;
-		if (objects instanceof IStructuredSelection) {
-			IStructuredSelection selection = (IStructuredSelection) objects;
-			object = selection.getFirstElement();
-			if (selection.size() == 1) {
-				// one element selected
-				multiple[0] = false;
-				return object;
-			}
-			// multiple elements selected
-			multiple[0] = true;
-			Class firstClass = typeMapper.mapType(object);
-			// determine if all the objects in the selection are the same type
-			if (selection.size() > 1) {
-				for (Iterator i = selection.iterator(); i.hasNext();) {
-					Object next = i.next();
-					Class nextClass = typeMapper.mapType(next);
-					if (!nextClass.equals(firstClass)) {
-						// two elements not equal == multiple selected unequal
-						multiple[0] = false;
-						object = null;
-						break;
-					}
-				}
-			}
-		} else {
-			multiple[0] = false;
-			object = objects;
-		}
-		return object;
-	}
-
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementSizeFilter.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementSizeFilter.java
deleted file mode 100644
index 92390c6..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementSizeFilter.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.examples.views.properties.tabbed.logic.properties;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.examples.logicdesigner.model.LogicElement;
-import org.eclipse.gef.examples.logicdesigner.model.LogicSubpart;
-import org.eclipse.jface.viewers.IFilter;
-
-/**
- * Filter for the size section, do not display when the size cannot be modified.
- * 
- * @author Anthony Hunter
- */
-public class LogicElementSizeFilter
-	implements IFilter {
-
-	/**
-	 * @inheritDoc
-	 */
-	public boolean select(Object object) {
-		if (object instanceof EditPart) {
-			LogicElement element = (LogicElement) ((EditPart) object)
-				.getModel();
-			if (element instanceof LogicSubpart) {
-				Dimension dimension = ((LogicSubpart) element).getSize();
-				if (dimension.width != -1 && dimension.height != -1) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementTypeMapper.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementTypeMapper.java
deleted file mode 100644
index 5e2edcf..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/LogicElementTypeMapper.java
+++ /dev/null
@@ -1,36 +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.examples.views.properties.tabbed.logic.properties;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * Type mapper for the logic example. We want to get the GEF model
- * object from the selected element in the outline view and the diagram.
- * We can then filter on the model object type.
- * 
- * @author Anthony Hunter 
- */
-public class LogicElementTypeMapper
-	implements ITypeMapper {
-
-	/**
-	 * @inheritDoc 
-	 */
-	public Class mapType(Object object) {
-		Class type = object.getClass();
-		if (object instanceof EditPart) {
-			type = ((EditPart) object).getModel().getClass();
-		}
-		return type;
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/NameSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/NameSection.java
deleted file mode 100644
index 8942956..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/NameSection.java
+++ /dev/null
@@ -1,66 +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.examples.views.properties.tabbed.logic.properties;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * The name section on the element tab.
- * 
- * @author Anthony Hunter
- */
-public class NameSection
-	extends AbstractSection {
-
-	Text nameText;
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-		FormData data;
-
-		nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		nameText.setEditable(false);
-		data = new FormData();
-		data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		nameText.setLayoutData(data);
-
-		CLabel nameLabel = getWidgetFactory().createCLabel(composite, "Name:"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(nameText,
-			-ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(nameText, 0, SWT.CENTER);
-		nameLabel.setLayoutData(data);
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		nameText.setText((getElement()).toString());
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/SizeSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/SizeSection.java
deleted file mode 100644
index 6dd109a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/SizeSection.java
+++ /dev/null
@@ -1,117 +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.examples.views.properties.tabbed.logic.properties;
-
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.examples.logicdesigner.model.LogicSubpart;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * The size section on the size tab. TODO: Properties View for Aurora (Anthony
- * Hunter)
- * 
- * @author Anthony Hunter
- */
-public class SizeSection
-	extends AbstractSection {
-
-	Text widthText;
-
-	Text heightText;
-
-	/**
-	 * A helper to listen for events that indicate that a text field has been
-	 * changed.
-	 */
-	private TextChangeHelper listener = new TextChangeHelper() {
-
-		public void textChanged(Control control) {
-			Dimension dimension = new Dimension();
-			dimension.width = Integer.parseInt(widthText.getText());
-			dimension.height = Integer.parseInt(heightText.getText());
-			((LogicSubpart) getElement()).setSize(dimension);
-		}
-	};
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-			.createFlatFormComposite(parent);
-		FormData data;
-
-		widthText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		widthText.setLayoutData(data);
-
-		CLabel widthLabel = getWidgetFactory()
-			.createCLabel(composite, "Width:"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(widthText,
-			-ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(widthText, 0, SWT.CENTER);
-		widthLabel.setLayoutData(data);
-
-		heightText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(widthText, 0, SWT.LEFT);
-		data.right = new FormAttachment(widthText, 0, SWT.RIGHT);
-		data.top = new FormAttachment(widthText,
-			ITabbedPropertyConstants.VSPACE, SWT.BOTTOM);
-		heightText.setLayoutData(data);
-
-		CLabel heightLabel = getWidgetFactory().createCLabel(composite,
-			"Height:"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(heightText,
-			-ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(heightText, 0, SWT.CENTER);
-		heightLabel.setLayoutData(data);
-
-		listener.startListeningForEnter(heightText);
-		listener.startListeningTo(heightText);
-		listener.startListeningForEnter(widthText);
-		listener.startListeningTo(widthText);
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		Assert.isTrue(getElement() instanceof LogicSubpart);
-		listener.startNonUserChange();
-		try {
-			Dimension dimension = ((LogicSubpart) getElement()).getSize();
-			widthText.setText(Integer.toString(dimension.width));
-			heightText.setText(Integer.toString(dimension.height));
-		} finally {
-			listener.finishNonUserChange();
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/TextChangeHelper.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/TextChangeHelper.java
deleted file mode 100644
index c9a566a..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/TextChangeHelper.java
+++ /dev/null
@@ -1,108 +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.examples.views.properties.tabbed.logic.properties;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-
-/**
- * TextChangeHelper notifies the listner of text lifecycle events 
- * on behalf of the widget(s) it listens to. 
- * 
- * @author Anthony Hunter
- */
-public abstract class TextChangeHelper implements Listener {
-	
-	private boolean nonUserChange;
-
-	/**
-	 * Marks the start of a programmatic change to the widget contents.
-	 * Clients must call startNonUserChange() before directly setting 
-	 * the widget contents to avoid unwanted lifecycle events.
-	 * @throws IllegalArgumentException if a programmatic change is 
-	 * already in progress.
-	 */
-	public void startNonUserChange() {
-		if (nonUserChange)
-			throw new IllegalStateException("we already started a non user change");//$NON-NLS-1$
-		nonUserChange = true;
-	}
-
-	/**
-	 * Clients who call startNonUserChange() should call 
-	 * finishNonUserChange() as soon as possible after the change is done.
-	 * @throws IllegalArgumentException if no change is in progress.
-	 */
-	public void finishNonUserChange() {
-		if (!nonUserChange)
-			throw new IllegalStateException("we are not in a non user change");//$NON-NLS-1$
-		nonUserChange = false;
-	}
-
-	/**
-	 * Returns true if a programmatic change is in progress.
-	 */
-	public boolean isNonUserChange() {
-		return nonUserChange;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void handleEvent(Event event) {
-		switch (event.type) {
-			case SWT.KeyDown :
-				if (event.character == SWT.CR)
-					textChanged((Control)event.widget);
-				break;
-			case SWT.FocusOut :
-				textChanged((Control)event.widget);
-				break;
-		}
-	}
-
-	/**
-	 * Abstract method notified when a text field has been changed.
-	 * @param control
-	 */
-	public abstract void textChanged(Control control);
-
-	/**
-	 * Registers this helper with the given control to listen for events
-	 * which indicate that a change is in progress (or done).
-	 */
-	public void startListeningTo(Control control) {
-		control.addListener(SWT.FocusOut, this);
-		control.addListener(SWT.Modify, this);
-	}
-
-	/**
-	 * Registers this helper with the given control to listen for the
-	 * Enter key.  When Enter is pressed, the change is considered done 
-	 * (this is only appropriate for single-line Text widgets).
-	 */
-	public void startListeningForEnter(Control control) {
-		// NOTE: KeyDown rather than KeyUp, because of similar usage in CCombo. 
-		control.addListener(SWT.KeyDown, this);
-	}
-
-	/**
-	 * Unregisters this helper from a control previously passed to
-	 * startListeningTo() and/or startListeningForEnter().
-	 */
-	public void stopListeningTo(Control control) {
-		control.removeListener(SWT.FocusOut, this);
-		control.removeListener(SWT.Modify, this);
-		control.removeListener(SWT.KeyDown, this);
-	}
-}
diff --git a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/ValueSection.java b/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/ValueSection.java
deleted file mode 100644
index 0195d44..0000000
--- a/examples/org.eclipse.ui.examples.views.properties.tabbed.logic/src/org/eclipse/ui/examples/views/properties/tabbed/logic/properties/ValueSection.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.examples.views.properties.tabbed.logic.properties;
-
-import org.eclipse.gef.examples.logicdesigner.model.LED;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * The value section on the element tab.
- * 
- * @author Anthony Hunter
- */
-public class ValueSection extends AbstractSection {
-
-	Text valueText;
-
-	/**
-	 * A helper to listen for events that indicate that a text
-	 * field has been changed.
-	 */
-	private TextChangeHelper listener = new TextChangeHelper() {
-		public void textChanged(Control control) {
-			((LED) getElement()).setValue(
-				Integer.parseInt(valueText.getText()));
-		}
-	};
-
-	/**
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(
-		Composite parent,
-		TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		
-		Composite composite =
-			getWidgetFactory().createFlatFormComposite(parent);
-		FormData data;
-
-		valueText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		valueText.setLayoutData(data);
-
-		CLabel valueLabel = getWidgetFactory().createCLabel(composite, "Value:"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right =
-			new FormAttachment(valueText, -ITabbedPropertyConstants.HSPACE);
-		data.top = new FormAttachment(valueText, 0, SWT.CENTER);
-		valueLabel.setLayoutData(data);
-
-		listener.startListeningForEnter(valueText);
-		listener.startListeningTo(valueText);
-	}
-
-	/*
-	 * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()
-	 */
-	public void refresh() {
-		Assert.isTrue(getElement() instanceof LED);
-		listener.startNonUserChange();
-		try {
-			valueText.setText(
-				Integer.toString(((LED) getElement()).getValue()));
-		} finally {
-			listener.finishNonUserChange();
-		}
-	}
-}
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.forms.examples/.classpath b/examples/org.eclipse.ui.forms.examples/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/examples/org.eclipse.ui.forms.examples/.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/examples/org.eclipse.ui.forms.examples/.cvsignore b/examples/org.eclipse.ui.forms.examples/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/examples/org.eclipse.ui.forms.examples/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/examples/org.eclipse.ui.forms.examples/.project b/examples/org.eclipse.ui.forms.examples/.project
deleted file mode 100644
index 0039091..0000000
--- a/examples/org.eclipse.ui.forms.examples/.project
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.forms.examples</name>
-	<comment></comment>
-	<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/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs b/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5709915..0000000
--- a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,48 +0,0 @@
-#Mon May 16 16:39:49 EDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-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.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=error
-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=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-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=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
diff --git a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs b/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 817d509..0000000
--- a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon May 16 16:39:49 EDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs b/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index b4438da..0000000
--- a/examples/org.eclipse.ui.forms.examples/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Mon May 16 16:39:49 EDT 2005
-compilers.p.deprecated=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/examples/org.eclipse.ui.forms.examples/about.html b/examples/org.eclipse.ui.forms.examples/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/examples/org.eclipse.ui.forms.examples/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/examples/org.eclipse.ui.forms.examples/build.properties b/examples/org.eclipse.ui.forms.examples/build.properties
deleted file mode 100644
index ce0f7dd..0000000
--- a/examples/org.eclipse.ui.forms.examples/build.properties
+++ /dev/null
@@ -1,17 +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.examples.jar = src/
-bin.includes = plugin.xml,\
-               *.jar,\
-               examples.jar,\
-               icons/,\
-               about.html
-output.examples.jar = bin/
diff --git a/examples/org.eclipse.ui.forms.examples/icons/clear.gif b/examples/org.eclipse.ui.forms.examples/icons/clear.gif
deleted file mode 100644
index 6bc10f9..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/clear.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/close_view.gif b/examples/org.eclipse.ui.forms.examples/icons/close_view.gif
deleted file mode 100644
index 1aca259..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/close_view.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/container_obj.gif b/examples/org.eclipse.ui.forms.examples/icons/container_obj.gif
deleted file mode 100644
index f32c28d..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/container_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif b/examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif
deleted file mode 100644
index f0f5d83..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/e_search_menu.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/file_obj.gif b/examples/org.eclipse.ui.forms.examples/icons/file_obj.gif
deleted file mode 100644
index 6b86d07..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/file_obj.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/form_banner.gif b/examples/org.eclipse.ui.forms.examples/icons/form_banner.gif
deleted file mode 100644
index aebc0b2..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/form_banner.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/help.gif b/examples/org.eclipse.ui.forms.examples/icons/help.gif
deleted file mode 100644
index 9d70301..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/help.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/help_topic.gif b/examples/org.eclipse.ui.forms.examples/icons/help_topic.gif
deleted file mode 100644
index 9bdd516..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/help_topic.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/large_image.gif b/examples/org.eclipse.ui.forms.examples/icons/large_image.gif
deleted file mode 100644
index c5c94ee..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/large_image.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif b/examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif
deleted file mode 100644
index 86550fe..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/linkto_help.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif b/examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif
deleted file mode 100644
index dc7d3a7..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/newprj_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/nw.gif b/examples/org.eclipse.ui.forms.examples/icons/nw.gif
deleted file mode 100644
index d0952a8..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/nw.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/progress.gif b/examples/org.eclipse.ui.forms.examples/icons/progress.gif
deleted file mode 100644
index f6a200f..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/progress.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/sample.gif b/examples/org.eclipse.ui.forms.examples/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif b/examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif
deleted file mode 100644
index f4c14a4..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/th_horizontal.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif b/examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif
deleted file mode 100644
index f685839..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/th_vertical.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif b/examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif
deleted file mode 100644
index 504acb2..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/toc_closed.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/toc_open.gif b/examples/org.eclipse.ui.forms.examples/icons/toc_open.gif
deleted file mode 100644
index 9e665d5..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/toc_open.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/icons/topic_small.gif b/examples/org.eclipse.ui.forms.examples/icons/topic_small.gif
deleted file mode 100644
index 17d8b2e..0000000
--- a/examples/org.eclipse.ui.forms.examples/icons/topic_small.gif
+++ /dev/null
Binary files differ
diff --git a/examples/org.eclipse.ui.forms.examples/plugin.properties b/examples/org.eclipse.ui.forms.examples/plugin.properties
deleted file mode 100644
index 94ed361..0000000
--- a/examples/org.eclipse.ui.forms.examples/plugin.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2003, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = Examples of Eclipse Forms
-baseEditor = Simple Form (RCP) Editor
-singleHeaderEditor = Single Header Editor
diff --git a/examples/org.eclipse.ui.forms.examples/plugin.xml b/examples/org.eclipse.ui.forms.examples/plugin.xml
deleted file mode 100644
index c8eb601..0000000
--- a/examples/org.eclipse.ui.forms.examples/plugin.xml
+++ /dev/null
@@ -1,113 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.ui.forms.examples"
-   name="%pluginName"
-   version="3.1.0"
-   provider-name="Eclipse.org"
-   class="org.eclipse.ui.forms.examples.internal.ExamplesPlugin">
-
-   <runtime>
-      <library name="examples.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.ui.forms"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.ui.ide"/>
-   </requires>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            id="org.eclipse.ui.forms.examples.category"
-            name="Eclipse Forms Examples">
-      </category>
-      <command
-            categoryId="org.eclipse.ui.forms.examples.category"
-            defaultHandler="org.eclipse.ui.forms.examples.internal.rcp.OpenSimpleFormEditorAction"
-            id="org.eclipse.ui.forms.examples.simple"
-            name="Simple Form Editor">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.forms.examples.category"
-            defaultHandler="org.eclipse.ui.forms.examples.internal.rcp.OpenSingleHeaderEditorAction"
-            id="org.eclipse.ui.forms.examples.singleHeader"
-            name="Single Header Editor">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.forms.examples.category"
-            defaultHandler="org.eclipse.ui.forms.examples.internal.dialogs.OpenFormDialog"
-            id="org.eclipse.ui.forms.examples.openDialog"
-            name="Open Form Dialog...">
-      </command>
-   </extension>
-
-
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="%baseEditor"
-            default="true"
-            icon="icons/file_obj.gif"
-            class="org.eclipse.ui.forms.examples.internal.rcp.SimpleFormEditor"
-            id="org.eclipse.ui.forms.examples.base-editor">
-      </editor>
-      <editor
-            name="%singleHeaderEditor"
-            default="true"
-            icon="icons/file_obj.gif"
-            class="org.eclipse.ui.forms.examples.internal.rcp.SingleHeaderEditor"
-            id="org.eclipse.ui.forms.examples.single-header-editor">
-      </editor>      
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu">
-         <menu
-               label="Form Editors">
-            <command
-                  commandId="org.eclipse.ui.forms.examples.simple"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.forms.examples.singleHeader"
-                  style="push">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.forms.examples.openDialog"
-                  style="push">
-            </command>
-         </menu>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension
-            targetID="org.eclipse.ui.resourcePerspective">
-         <view
-               ratio="0.5"
-               relative="org.eclipse.ui.views.TaskList"
-               relationship="right"
-               id="org.eclipse.ui.forms.examples.views.FormView">
-         </view>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="Eclipse Forms Examples"
-            id="org.eclipse.ui.forms.examples">
-      </category>
-      <view
-            name="Eclipse Form"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.forms.examples"
-            class="org.eclipse.ui.forms.examples.views.FormView"
-            id="org.eclipse.ui.forms.examples.views.FormView">
-      </view>
-   </extension>
-</plugin>
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
deleted file mode 100644
index 269726d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPlugin.java
+++ /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
- *******************************************************************************/
-package org.eclipse.ui.forms.examples.internal;
-import java.net.URL;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-/**
- * The main plugin class to be used in the desktop.
- */
-public class ExamplesPlugin extends AbstractUIPlugin {
-	//The shared instance.
-	private static ExamplesPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-	private FormColors formColors;
-	public static final String IMG_FORM_BG = "formBg";
-	public static final String IMG_LARGE = "large";
-	public static final String IMG_HORIZONTAL = "horizontal";
-	public static final String IMG_VERTICAL = "vertical";
-	public static final String IMG_SAMPLE = "sample";
-	public static final String IMG_WIZBAN = "wizban";
-	public static final String IMG_LINKTO_HELP = "linkto_help";
-	public static final String IMG_HELP_TOPIC = "help_topic";
-	public static final String IMG_CLOSE = "close";
-	public static final String IMG_HELP_CONTAINER = "container_obj";
-	public static final String IMG_HELP_TOC_OPEN = "toc_open";
-	public static final String IMG_HELP_TOC_CLOSED = "toc_closed";
-	public static final String IMG_HELP_SEARCH = "e_search_menu";
-	public static final String IMG_CLEAR = "clear";
-	public static final String IMG_NW = "nw";
-
-	/**
-	 * The constructor.
-	 */
-	public ExamplesPlugin() {
-		plugin = this;
-		try {
-			resourceBundle = ResourceBundle
-					.getBundle("org.eclipse.ui.forms.examples.internal.ExamplesPluginResources");
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-	}
-
-	protected void initializeImageRegistry(ImageRegistry registry) {
-		registerImage(registry, IMG_FORM_BG, "form_banner.gif");
-		registerImage(registry, IMG_LARGE, "large_image.gif");
-		registerImage(registry, IMG_HORIZONTAL, "th_horizontal.gif");
-		registerImage(registry, IMG_VERTICAL, "th_vertical.gif");
-		registerImage(registry, IMG_SAMPLE, "sample.gif");
-		registerImage(registry, IMG_WIZBAN, "newprj_wiz.gif");
-		registerImage(registry, IMG_LINKTO_HELP, "linkto_help.gif");
-		registerImage(registry, IMG_HELP_TOPIC, "topic.gif");
-		registerImage(registry, IMG_HELP_CONTAINER, "container_obj.gif");
-		registerImage(registry, IMG_HELP_TOC_CLOSED, "toc_closed.gif");
-		registerImage(registry, IMG_HELP_TOC_OPEN, "toc_open.gif");
-		registerImage(registry, IMG_CLOSE, "close_view.gif");
-		registerImage(registry, IMG_HELP_SEARCH, "e_search_menu.gif");
-		registerImage(registry, IMG_CLEAR, "clear.gif");
-		registerImage(registry, IMG_NW, "nw.gif");
-	}
-
-	private void registerImage(ImageRegistry registry, String key,
-			String fileName) {
-		try {
-			IPath path = new Path("icons/" + fileName);
-			URL url = FileLocator.find(getBundle(), path, null);
-			if (url!=null) {
-				ImageDescriptor desc = ImageDescriptor.createFromURL(url);
-				registry.put(key, desc);
-			}
-		} catch (Exception e) {
-		}
-	}
-
-	public FormColors getFormColors(Display display) {
-		if (formColors == null) {
-			formColors = new FormColors(display);
-			formColors.markShared();
-		}
-		return formColors;
-	}
-	/**
-	 * Returns the shared instance.
-	 */
-	public static ExamplesPlugin getDefault() {
-		return plugin;
-	}
-	/**
-	 * Returns the workspace instance.
-	 */
-	public static IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-	/**
-	 * Returns the string from the plugin's resource bundle, or 'key' if not
-	 * found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = ExamplesPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null ? bundle.getString(key) : key);
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-	public void stop(BundleContext context) throws Exception {
-		try {
-			if (formColors != null) {
-				formColors.dispose();
-				formColors = null;
-			}
-		} finally {
-			super.stop(context);
-		}
-	}
-	public Image getImage(String key) {
-		return getImageRegistry().get(key);
-	}
-	public ImageDescriptor getImageDescriptor(String key) {
-		return getImageRegistry().getDescriptor(key);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties
deleted file mode 100644
index 339810c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/ExamplesPluginResources.properties
+++ /dev/null
@@ -1,10 +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
-###############################################################################
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java
deleted file mode 100644
index 5d7dbc5..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/FormEditorInput.java
+++ /dev/null
@@ -1,69 +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.ui.forms.examples.internal;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.*;
-
-public class FormEditorInput implements IEditorInput {
-	private String name;
-	public FormEditorInput(String name) {
-		this.name = name;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return true;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
-				ISharedImages.IMG_OBJ_ELEMENT);
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return getName();
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java
deleted file mode 100644
index 02cd146..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/OpenFormEditorAction.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-public abstract class OpenFormEditorAction extends AbstractHandler {
-
-	protected Object openEditor(String inputName, String editorId, IWorkbenchWindow window) {
-		return openEditor(new FormEditorInput(inputName), editorId, window);
-	}
-	
-	protected Object openEditor(IEditorInput input, String editorId, IWorkbenchWindow window) {
-		IWorkbenchPage page = window.getActivePage();
-		try {
-			page.openEditor(input, editorId);
-		} catch (PartInitException e) {
-			System.out.println(e);
-		}
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java
deleted file mode 100644
index 5b3df3d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/OpenFormDialog.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.dialogs;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class OpenFormDialog extends AbstractHandler {
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
-		SampleFormDialog dialog = new SampleFormDialog(window.getShell());
-		dialog.create();
-		dialog.getShell().setText("Sample Form Dialog");
-		dialog.getShell().setSize(500,500);
-		dialog.getShell().setLocation(100, 300);
-		dialog.open();
-		return null;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java
deleted file mode 100644
index 5ff3c25..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/dialogs/SampleFormDialog.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.dialogs;
-
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.FormDialog;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.examples.internal.rcp.FreeFormPage;
-
-public class SampleFormDialog extends FormDialog {
-
-	public SampleFormDialog(Shell shell) {
-		super(shell);
-	}
-
-	public SampleFormDialog(IShellProvider parentShell) {
-		super(parentShell);
-	}
-
-	protected void createFormContent(IManagedForm mform) {
-		mform.getForm().setText("An example of a simple form dialog");
-		FreeFormPage.createSharedFormContent(mform);
-		mform.getForm().setBackgroundImage(null);
-		mform.getToolkit().decorateFormHeading(mform.getForm().getForm());
-		mform.getForm().setImage(
-				PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_OBJ_ELEMENT));
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java
deleted file mode 100644
index 5b6a15d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ErrorMessagesPage.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.eclipse.jface.dialogs.IMessageProvider;
-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.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.FillLayout;
-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.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.IMessage;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-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.FormText;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-/**
- * This page shows how to use the message manager to handle errors in a form
- * page.
- * 
- * @since 3.3
- */
-public class ErrorMessagesPage extends FormPage {
-
-	/*
-	private RichMessageToolTipManager richToolTipMessageManager;
-	class RichToolTip extends ToolTip {
-		private IManagedForm mform;
-		private FormText text;
-		private String content;
-
-		public RichToolTip(IManagedForm mform, Control control) {
-			super(control);
-			this.mform = mform;
-			setShift(new Point(10, 10));
-		}
-
-		protected Composite createToolTipContentArea(Event event,
-				Composite parent) {
-			this.text = mform.getToolkit().createFormText(parent, true);
-			configureFormText(mform.getForm().getForm(), text);
-			update();
-			return text;
-		}
-
-		public void update(String content) {
-			if (content == null) {
-				// hide
-				deactivate();
-			} else {
-				activate();
-				this.content = content;
-				update();
-			}
-		}
-
-		private void update() {
-			if (text != null && text.isDisposed())
-				text = null;
-			if (text != null) {
-				if (content != null)
-					text.setText(content, true, false);
-				else
-					text.setText("", false, false);
-			}
-		}
-	}
-
-	class RichMessageToolTipManager implements IMessageToolTipManager {
-		private ArrayList toolTips = new ArrayList();
-		private IManagedForm mform;
-
-		public RichMessageToolTipManager(IManagedForm mform) {
-			this.mform = mform;
-		}
-
-		public void createToolTip(Control control, boolean imageLabel) {
-			ToolTip toolTip = new RichToolTip(mform, control);
-			toolTips.add(toolTip);
-		}
-
-		public void setActive(boolean active) {
-			for (int i = 0; i < toolTips.size(); i++) {
-				RichToolTip toolTip = (RichToolTip) toolTips.get(i);
-				if (active)
-					toolTip.activate();
-				else
-					toolTip.deactivate();
-			}
-		}
-
-		public void update() {
-			IMessage[] messages = mform.getForm().getForm()
-					.getChildrenMessages();
-			String content = mform.getForm().getMessage() == null ? null
-					: createFormTextContent(messages);
-			for (int i = 0; i < toolTips.size(); i++) {
-				RichToolTip toolTip = (RichToolTip) toolTips.get(i);
-				toolTip.update(content);
-			}
-		}
-	}
-	
-	*/
-
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public ErrorMessagesPage(FormEditor editor) {
-		super(editor, "messageManager", "Message Manager");
-	}
-
-	protected void createFormContent(final IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		final FormToolkit toolkit = managedForm.getToolkit();
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-				HyperlinkSettings.UNDERLINE_HOVER);
-		form.setText("Example with message handling");
-		toolkit.decorateFormHeading(form.getForm());
-		form.getForm().addMessageHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String title = e.getLabel();
-				// String details = title;
-				Object href = e.getHref();
-				if (href instanceof IMessage[]) {
-					// details =
-					// managedForm.getMessageManager().createSummary((IMessage[])href);
-				}
-				// int type = form.getForm().getMessageType();
-				/*
-				 * switch (type) { case IMessageProvider.NONE: case
-				 * IMessageProvider.INFORMATION:
-				 * MessageDialog.openInformation(form.getShell(), title,
-				 * details); break; case IMessageProvider.WARNING:
-				 * MessageDialog.openWarning(form.getShell(), title, details);
-				 * break; case IMessageProvider.ERROR:
-				 * MessageDialog.openError(form.getShell(), title, details);
-				 * break; }
-				 */
-				Point hl = ((Control) e.widget).toDisplay(0, 0);
-				hl.x += 10;
-				hl.y += 10;
-				Shell shell = new Shell(form.getShell(), SWT.ON_TOP | SWT.TOOL);
-				shell.setImage(getImage(form.getMessageType()));
-				shell.setText(title);
-				shell.setLayout(new FillLayout());
-				// ScrolledFormText stext = new ScrolledFormText(shell, false);
-				// stext.setBackground(toolkit.getColors().getBackground());
-				FormText text = toolkit.createFormText(shell, true);
-				configureFormText(form.getForm(), text);
-				// stext.setFormText(text);
-				if (href instanceof IMessage[])
-					text.setText(createFormTextContent((IMessage[]) href),
-							true, false);
-				shell.setLocation(hl);
-				// Point size = shell.computeSize(400, SWT.DEFAULT);
-				/*
-				richToolTipMessageManager.setActive(false);
-				shell.addDisposeListener(new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						richToolTipMessageManager.setActive(true);
-					}
-				});
-				*/
-				shell.pack();
-				shell.open();
-			}
-		});
-
-		//richToolTipMessageManager = new RichMessageToolTipManager(managedForm);
-		//form.getForm().setMessageToolTipManager(richToolTipMessageManager);
-
-		final IMessageManager mmng = managedForm.getMessageManager();
-
-		TableWrapLayout layout = new TableWrapLayout();
-		form.getBody().setLayout(layout);
-		Section section = toolkit.createSection(form.getBody(),
-				Section.TITLE_BAR);
-		section.setText("Local field messages");
-		Composite sbody = toolkit.createComposite(section);
-		section.setClient(sbody);
-		GridLayout glayout = new GridLayout();
-		glayout.horizontalSpacing = 10;
-		glayout.numColumns = 2;
-		sbody.setLayout(glayout);
-		toolkit.paintBordersFor(sbody);
-		createDecoratedTextField("Field1", toolkit, sbody, mmng);
-		createDecoratedTextField("Field2", toolkit, sbody, mmng);
-		createDecoratedTextField("Field3", toolkit, sbody, mmng);
-		final Button button1 = toolkit.createButton(form.getBody(),
-				"Add general error", SWT.CHECK);
-		button1.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (button1.getSelection()) {
-					mmng.addMessage("saveError", "Save Error", null,
-							IMessageProvider.ERROR);
-				} else {
-					mmng.removeMessage("saveError");
-				}
-			}
-		});
-		final Button button2 = toolkit.createButton(form.getBody(),
-				"Add static message", SWT.CHECK);
-		button2.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (button2.getSelection()) {
-					mmng.addMessage("info", "Secondary info", null,
-							IMessageProvider.NONE);
-				} else {
-					mmng.removeMessage("info");
-				}
-			}
-		});
-		final Button button3 = toolkit.createButton(form.getBody(),
-				"Auto update", SWT.CHECK);
-		button3.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				mmng.setAutoUpdate(button3.getSelection());
-			}
-		});
-		button3.setSelection(true);
-	}
-
-	private Image getImage(int type) {
-		switch (type) {
-		case IMessageProvider.ERROR:
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_ERROR_TSK);
-		case IMessageProvider.WARNING:
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_WARN_TSK);
-		case IMessageProvider.INFORMATION:
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJS_INFO_TSK);
-		}
-		return null;
-	}
-
-	private void configureFormText(final Form form, FormText text) {
-		text.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String is = (String)e.getHref();
-				try {
-					int index = Integer.parseInt(is);
-					IMessage [] messages = form.getChildrenMessages();
-					IMessage message =messages[index];
-					Control c = message.getControl();
-					((FormText)e.widget).getShell().dispose();
-					if (c!=null)
-						c.setFocus();
-				}
-				catch (NumberFormatException ex) {
-				}
-			}
-		});
-		text.setImage("error", getImage(IMessageProvider.ERROR));
-		text.setImage("warning", getImage(IMessageProvider.WARNING));
-		text.setImage("info", getImage(IMessageProvider.INFORMATION));
-	}
-
-	String createFormTextContent(IMessage[] messages) {
-		StringWriter sw = new StringWriter();
-		PrintWriter pw = new PrintWriter(sw);
-		pw.println("<form>");
-		for (int i = 0; i < messages.length; i++) {
-			IMessage message = messages[i];
-			pw
-					.print("<li vspace=\"false\" style=\"image\" indent=\"16\" value=\"");
-			switch (message.getMessageType()) {
-			case IMessageProvider.ERROR:
-				pw.print("error");
-				break;
-			case IMessageProvider.WARNING:
-				pw.print("warning");
-				break;
-			case IMessageProvider.INFORMATION:
-				pw.print("info");
-				break;
-			}
-			pw.print("\"> <a href=\"");
-			pw.print(i+"");
-			pw.print("\">");
-			if (message.getPrefix() != null)
-				pw.print(message.getPrefix());
-			pw.print(message.getMessage());
-			pw.println("</a></li>");
-		}
-		pw.println("</form>");
-		pw.flush();
-		return sw.toString();
-	}
-
-	private void createDecoratedTextField(String label, FormToolkit toolkit,
-			Composite parent, final IMessageManager mmng) {
-		toolkit.createLabel(parent, label);
-		final Text text = toolkit.createText(parent, "");
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 150;
-		text.setLayoutData(gd);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				String s = text.getText();
-				// flag length
-				if (s.length() > 0 && s.length() <= 5) {
-					mmng.addMessage("textLength",
-							"Text is longer than 0 characters", null,
-							IMessageProvider.INFORMATION, text);
-				} else if (s.length() > 5 && s.length() <= 10) {
-					mmng.addMessage("textLength",
-							"Text is longer than 5 characters", null,
-							IMessageProvider.WARNING, text);
-				} else if (s.length() > 10) {
-					mmng.addMessage("textLength",
-							"Text is longer than 10 characters", null,
-							IMessageProvider.ERROR, text);
-				} else {
-					mmng.removeMessage("textLength", text);
-				}
-				// flag type
-				boolean badType = false;
-				for (int i = 0; i < s.length(); i++) {
-					if (!Character.isLetter(s.charAt(i))) {
-						badType = true;
-						break;
-					}
-				}
-				if (badType) {
-					mmng.addMessage("textType",
-							"Text must only contain letters", null,
-							IMessageProvider.ERROR, text);
-				} else {
-					mmng.removeMessage("textType", text);
-				}
-			}
-		});
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java
deleted file mode 100644
index 1fb63d9..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/FreeFormPage.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-import java.io.*;
-import java.io.InputStream;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class FreeFormPage extends FormPage {
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public FreeFormPage(FormEditor editor) {
-		super(editor, "first", "First Page");
-	}
-	public static final void createSharedFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(HyperlinkSettings.UNDERLINE_HOVER);
-		form.setText("Free-form text with links");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(ExamplesPlugin.IMG_FORM_BG));
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.leftMargin = 10;
-		layout.rightMargin = 10;
-		form.getBody().setLayout(layout);
-		TableWrapData td;
-		Hyperlink link = toolkit.createHyperlink(form.getBody(),
-				"Sample hyperlink with longer text.", SWT.WRAP);
-		link.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				try {
-					Thread.sleep(1000);
-				} catch (InterruptedException ex) {
-				}
-			}
-		});
-		td = new TableWrapData();
-		td.align = TableWrapData.LEFT;
-		link.setLayoutData(td);
-		createExpandable(form, toolkit);
-		createFormTextSection(form, toolkit);
-	}
-	
-	protected void createFormContent(IManagedForm managedForm) {
-		createSharedFormContent(managedForm);
-	}
-	private static void createExpandable(final ScrolledForm form, final FormToolkit toolkit) {
-		final ExpandableComposite exp = toolkit.createExpandableComposite(form
-				.getBody(), ExpandableComposite.TREE_NODE
-		//	ExpandableComposite.NONE
-				);
-		exp.setActiveToggleColor(toolkit.getHyperlinkGroup()
-				.getActiveForeground());
-		exp.setToggleColor(toolkit.getColors().getColor(IFormColors.SEPARATOR));
-		Composite client = toolkit.createComposite(exp);
-		exp.setClient(client);
-		TableWrapLayout elayout = new TableWrapLayout();
-		client.setLayout(elayout);
-		elayout.leftMargin = elayout.rightMargin = 0;
-		final Button button = toolkit.createButton(client, "Button", SWT.PUSH);
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				//openFormWizard(button.getShell(), toolkit.getColors());
-			}
-		});
-		exp.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(true);
-			}
-		});
-		exp.setText("Expandable Section with a longer title");
-		TableWrapData td = new TableWrapData();
-		//td.colspan = 2;
-		td.align = TableWrapData.LEFT;
-		//td.align = TableWrapData.FILL;
-		exp.setLayoutData(td);
-	}
-	
-	private static void createFormTextSection(final ScrolledForm form, FormToolkit toolkit) {
-		Section section =
-			toolkit.createSection(
-				form.getBody(),
-				Section.TWISTIE | Section.DESCRIPTION);
-		section.setActiveToggleColor(
-			toolkit.getHyperlinkGroup().getActiveForeground());
-		section.setToggleColor(
-			toolkit.getColors().getColor(IFormColors.SEPARATOR));
-		toolkit.createCompositeSeparator(section);
-		FormText rtext = toolkit.createFormText(section, false);
-		section.setClient(rtext);
-		loadFormText(rtext, toolkit);
-
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(false);
-			}
-		});
-
-		section.setText("Section title");
-		section.setDescription(
-		"This is a section description that should be rendered below the separator.");
-		TableWrapData td = new TableWrapData();
-		td.align = TableWrapData.FILL;
-		td.grabHorizontal = true;
-		section.setLayoutData(td);
-	}
-
-	private static void loadFormText(final FormText rtext, FormToolkit toolkit) {
-		rtext.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				MessageDialog.openInformation(rtext.getShell(), "Eclipse Forms", 
-				"Link activated: href=" + e.getHref());
-			}
-		});
-		rtext.setHyperlinkSettings(toolkit.getHyperlinkGroup());
-		rtext.setImage("image1", ExamplesPlugin.getDefault().getImage(ExamplesPlugin.IMG_LARGE));
-		createCompositeControl(rtext, toolkit);
-		createControl(rtext, toolkit);
-		Menu menu = new Menu(rtext);
-		final MenuItem item = new MenuItem(menu, SWT.PUSH);
-		item.setText("&Copy");
-		item.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				rtext.copy();
-			}
-		});
-		//rtext.setMenu(menu);
-		item.setEnabled(false);
-		rtext.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				item.setEnabled(rtext.canCopy());
-			}
-		});
-		InputStream is = FreeFormPage.class.getResourceAsStream("index.xml");
-		if (is!=null) {
-			rtext.setContents(is, true);
-			try {
-				is.close();
-			}
-			catch (IOException e) {
-			}
-		}
-	}
-	private static void createControl(FormText ftext, FormToolkit toolkit) {
-		TreeNode node = new TreeNode(ftext, SWT.NULL);
-		toolkit.adapt(node, true, true);
-		ftext.setControl("node", node);
-	}
-	private static void createCompositeControl(FormText ftext, FormToolkit toolkit) {
-		Composite comp = toolkit.createComposite(ftext);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		comp.setLayout(layout);
-		toolkit.createLabel(comp, "Sample text:");
-		Text text = toolkit.createText(comp, "");
-		text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		toolkit.createButton(comp, "Browse...", SWT.PUSH);
-		ftext.setControl("control1", comp);
-		toolkit.paintBordersFor(comp);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java
deleted file mode 100644
index 20814f1..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/HeadlessPage.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class HeadlessPage extends FormPage {
-	private int count;
-
-	public HeadlessPage(FormEditor editor, int count) {
-		super(editor, "page"+count, "Page "+count);
-		this.count = count;
-	}
-	
-	protected void createFormContent(IManagedForm managedForm) {
-		FormToolkit toolkit = managedForm.getToolkit();
-		Composite body = managedForm.getForm().getBody();
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 4;
-		body.setLayout(layout);
-		Label label = toolkit.createLabel(body, "The content of the headless page #"+count);
-		GridData gd = new GridData();
-		gd.horizontalSpan = 4;
-		label.setLayoutData(gd);
-		for (int i=0; i<80; i++) {
-			toolkit.createLabel(body, "Field "+i);
-			Text text = toolkit.createText(body, null);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			text.setLayoutData(gd);
-		}
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java
deleted file mode 100644
index 8b432f4..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/IModelListener.java
+++ /dev/null
@@ -1,24 +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.ui.forms.examples.internal.rcp;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public interface IModelListener {
-	String ADDED="__added";
-	String REMOVED="__removed";
-	String CHANGED = "__changed";
-	void modelChanged(Object[] objects, String type, String property);
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java
deleted file mode 100644
index d62aa84..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NamedObject.java
+++ /dev/null
@@ -1,36 +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.ui.forms.examples.internal.rcp;
-
-/**
- *
- */
-public	class NamedObject {
-	private String name;
-	protected SimpleModel model;
-	
-	public NamedObject(String name) {
-		this.name = name;
-	}
-	public void setModel(SimpleModel model) {
-		this.model = model;
-	}
-	public String getName() {
-		return name;
-	}
-	public String toString() {
-		return getName();
-	}
-	public void setName(String name) {
-		this.name = name;
-		model.fireModelChanged(new Object [] {this}, IModelListener.CHANGED, "");
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java
deleted file mode 100644
index c2edd4d..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/NewStylePage.java
+++ /dev/null
@@ -1,581 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ControlContribution;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTargetAdapter;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.HyperlinkSettings;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.IMessageManager;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
-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.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class NewStylePage extends FormPage {
-	private static final String SHORT_TITLE = "Short Title";
-	private static final String LONG_TITLE = "This title is somewhat longer";
-	private static final String SHORT_MESSAGE = "A short {0} message";
-	private static final String LONG_MESSAGE = "This {0} message is longer and will also compete with other header regions";
-	private static final String[] MESSAGE_NAMES = { "text", "info", "warning",
-			"error" };
-	
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public NewStylePage(FormEditor editor) {
-		super(editor, "newStyle", "New Style");
-	}
-
-	protected void createFormContent(IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		final FormToolkit toolkit = managedForm.getToolkit();
-		toolkit.getHyperlinkGroup().setHyperlinkUnderlineMode(
-				HyperlinkSettings.UNDERLINE_HOVER);
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 10;
-		layout.marginWidth = 6;
-		layout.horizontalSpacing = 20;
-		form.getBody().setLayout(layout);
-
-		Section section = toolkit.createSection(form.getBody(),
-				ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE
-						| ExpandableComposite.EXPANDED);
-		Composite client = toolkit.createComposite(section);
-		section.setClient(client);
-		section.setText("Header features");
-		section
-				.setDescription("Use the switches below to control basic heading parameters.");
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		client.setLayout(layout);
-		final Button tbutton = toolkit.createButton(client, "Add title",
-				SWT.CHECK);
-		final Button sbutton = toolkit.createButton(client, "Short title",
-				SWT.RADIO);
-		sbutton.setSelection(true);
-		sbutton.setEnabled(false);
-		gd = new GridData();
-		gd.horizontalIndent = 10;
-		sbutton.setLayoutData(gd);
-		final Button lbutton = toolkit.createButton(client, "Long title",
-				SWT.RADIO);
-		gd = new GridData();
-		gd.horizontalIndent = 10;
-		lbutton.setLayoutData(gd);
-		lbutton.setEnabled(false);
-		tbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateTitle(form, tbutton.getSelection(), sbutton
-						.getSelection());
-				sbutton.setEnabled(tbutton.getSelection());
-				lbutton.setEnabled(tbutton.getSelection());
-			}
-		});
-		sbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateTitle(form, tbutton.getSelection(), sbutton
-						.getSelection());
-			}
-		});
-		lbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateTitle(form, tbutton.getSelection(), sbutton
-						.getSelection());
-			}
-		});
-		final Button ibutton = toolkit.createButton(client, "Add image",
-				SWT.CHECK);
-		ibutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateImage(form, ibutton.getSelection());
-			}
-		});
-
-		final Button tbbutton = toolkit.createButton(client, "Add tool bar",
-				SWT.CHECK);
-		
-		final Button albutton = toolkit.createButton(client, "Set tool bar allignment to SWT.BOTTOM",
-				SWT.CHECK);
-		albutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.getForm().setToolBarVerticalAlignment(albutton.getSelection()?SWT.BOTTOM:SWT.TOP);
-				form.reflow(true);
-			}
-		});
-		gd = new GridData();
-		gd.horizontalIndent = 10;
-		albutton.setLayoutData(gd);
-		albutton.setEnabled(false);
-		tbbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addToolBar(toolkit, form, tbbutton.getSelection());
-				albutton.setEnabled(tbbutton.getSelection());
-			}
-		});
-
-		final Button gbutton = toolkit.createButton(client,
-				"Paint background gradient", SWT.CHECK);
-		gbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addHeadingGradient(toolkit, form, gbutton.getSelection());
-			}
-		});
-
-		final Button clbutton = toolkit.createButton(client, "Add head client",
-				SWT.CHECK);
-		clbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addHeadClient(toolkit, form, clbutton.getSelection());
-			}
-		});
-
-		final Button mbutton = toolkit.createButton(client,
-				"Add drop-down menu", SWT.CHECK);
-		mbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addMenu(toolkit, form, mbutton.getSelection());
-			}
-		});
-
-		final Button dbutton = toolkit.createButton(client, "Add drag support",
-				SWT.CHECK);
-		dbutton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (dbutton.getSelection()) {
-					addDragSupport(form);
-					dbutton.setEnabled(false);
-				}
-			}
-		});
-
-		section = toolkit.createSection(form.getBody(),
-				ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE
-						| ExpandableComposite.EXPANDED);
-		Composite client2 = toolkit.createComposite(section);
-		section.setClient(client2);
-		section.setText("Messages and active state");
-		section
-				.setDescription("Use the buttons below to control messages and active state.");
-		gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		layout.numColumns = 4;
-		client2.setLayout(layout);
-
-		final Button shortMessage = toolkit.createButton(client2,
-				"Short message", SWT.RADIO);
-		shortMessage.setSelection(true);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		shortMessage.setLayoutData(gd);
-		final Button longMessage = toolkit.createButton(client2, "Long message",
-				SWT.RADIO);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		longMessage.setLayoutData(gd);
-
-		final IHyperlinkListener listener = new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				String title = e.getLabel();
-				String details = (String)e.getHref();
-				if (details==null) {
-					details = title;
-					title = null;
-				}
-				switch (form.getForm().getMessageType()) {
-				case IMessageProvider.NONE:
-				case IMessageProvider.INFORMATION:
-					if (title==null)
-						title = "Forms Information";
-					MessageDialog.openInformation(form.getShell(), title, details);
-					break;
-				case IMessageProvider.WARNING:
-					if (title==null)
-						title = "Forms Warning";
-					MessageDialog.openWarning(form.getShell(), title, details);
-					break;
-				case IMessageProvider.ERROR:
-					if (title==null)
-						title = "Forms Error";
-					MessageDialog.openError(form.getShell(), title, details);
-					break;
-				}
-			}
-		};
-
-		final Button hyperMessage = toolkit.createButton(client2,
-				"Message as hyperlink", SWT.CHECK);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		hyperMessage.setLayoutData(gd);
-		hyperMessage.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (hyperMessage.getSelection())
-					form.getForm().addMessageHyperlinkListener(listener);
-				else
-					form.getForm().removeMessageHyperlinkListener(listener);
-			}
-		});
-		
-		Control[] children = client.getChildren();
-		ArrayList buttons = new ArrayList();
-		for (int i = 0; i < children.length; i++) {
-			if (children[i] instanceof Button) {
-				Button button = (Button) children[i];
-				if ((button.getStyle() & SWT.CHECK) != 0 && !button.equals(dbutton)) {
-					buttons.add(button);
-				}
-			}
-		}
-		final Button[] checkboxes = (Button[]) buttons.toArray(new Button[buttons.size()]);
-		
-		final Button manageMessage = toolkit.createButton(client2,
-				"Use message manager", SWT.CHECK);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		manageMessage.setLayoutData(gd);
-		
-		SelectionAdapter mmListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (manageMessage.getSelection() && e.widget instanceof Button)
-					addRemoveMessage((Button) e.widget, form.getMessageManager());
-			}
-		};
-		for (int i = 0; i < checkboxes.length; i++)
-			checkboxes[i].addSelectionListener(mmListener);
-
-		final Button autoUpdate = toolkit.createButton(client2,
-				"Auto update message manager", SWT.CHECK);
-		gd = new GridData();
-		gd.horizontalSpan = 4;
-		autoUpdate.setLayoutData(gd);
-		autoUpdate.setSelection(true);
-		autoUpdate.setEnabled(false);
-		autoUpdate.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.getMessageManager().setAutoUpdate(autoUpdate.getSelection());
-			}
-		});
-		
-		shortMessage.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(form.getMessageType(),
-						longMessage.getSelection()), form.getMessageType());
-			}
-		});
-		longMessage.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(form.getMessageType(),
-						longMessage.getSelection()), form.getMessageType());
-			}
-		});
-
-		final Button error = toolkit.createButton(client2, "Error", SWT.PUSH);
-		error.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(IMessageProvider.ERROR,
-						longMessage.getSelection()), IMessageProvider.ERROR);
-
-			}
-		});
-		final Button warning = toolkit.createButton(client2, "Warning", SWT.PUSH);
-		warning.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(IMessageProvider.WARNING,
-						longMessage.getSelection()), IMessageProvider.WARNING);
-			}
-		});
-		final Button info = toolkit.createButton(client2, "Info", SWT.PUSH);
-		info.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(getErrorMessage(IMessageProvider.INFORMATION,
-						longMessage.getSelection()),
-						IMessageProvider.INFORMATION);
-			}
-		});
-		final Button cancel = toolkit.createButton(client2, "Cancel", SWT.PUSH);
-		cancel.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				form.setMessage(null, 0);
-			}
-		});
-		manageMessage.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				boolean selection = manageMessage.getSelection();
-				if (!selection)
-					autoUpdate.setSelection(true);
-				autoUpdate.setEnabled(selection);
-				IMessageManager mm = form.getMessageManager();
-				mm.setAutoUpdate(false);
-				if (selection) {
-					for (int i = 0; i < checkboxes.length; i++) {
-						addRemoveMessage(checkboxes[i], mm);
-					}
-				}
-				else {
-					mm.removeAllMessages();
-				}
-				mm.setAutoUpdate(true);
-				error.setEnabled(!selection);
-				warning.setEnabled(!selection);
-				info.setEnabled(!selection);
-				cancel.setEnabled(!selection);
-				if (selection) {
-					hyperMessage.setSelection(false);
-					form.getForm().removeMessageHyperlinkListener(listener);
-				}
-				hyperMessage.setEnabled(!selection);
-			}
-		});
-
-		final Button busy = toolkit.createButton(client2, "Start Progress",
-				SWT.PUSH);
-		busy.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				// IWorkbenchSiteProgressService service =
-				// (IWorkbenchSiteProgressService)getSite().getAdapter(IWorkbenchSiteProgressService.class);
-
-				if (form.getForm().isBusy()) {
-					form.getForm().setBusy(false);
-					busy.setText("Start Progress");
-				} else {
-					form.getForm().setBusy(true);
-					busy.setText("Stop Progress");
-				}
-			}
-		});
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		busy.setLayoutData(gd);
-	}
-
-	private void addHeadingGradient(FormToolkit toolkit, ScrolledForm form,
-			boolean add) {
-		FormColors colors = toolkit.getColors();
-		Color top = colors.getColor(IFormColors.H_GRADIENT_END);
-		Color bot = colors.getColor(IFormColors.H_GRADIENT_START);
-		if (add)
-			form.getForm().setTextBackground(new Color[] { top, bot },
-					new int[] { 100 }, true);
-		else {
-			form.getForm().setTextBackground(null, null, false);
-			form.getForm().setBackground(colors.getBackground());
-		}
-		form.getForm().setHeadColor(IFormColors.H_BOTTOM_KEYLINE1,
-				add ? colors.getColor(IFormColors.H_BOTTOM_KEYLINE1) : null);
-		form.getForm().setHeadColor(IFormColors.H_BOTTOM_KEYLINE2,
-				add ? colors.getColor(IFormColors.H_BOTTOM_KEYLINE2) : null);
-		form.getForm().setHeadColor(IFormColors.H_HOVER_LIGHT,
-				add ? colors.getColor(IFormColors.H_HOVER_LIGHT) : null);
-		form.getForm().setHeadColor(IFormColors.H_HOVER_FULL,
-				add ? colors.getColor(IFormColors.H_HOVER_FULL) : null);
-		form.getForm().setHeadColor(IFormColors.TB_TOGGLE,
-				add ? colors.getColor(IFormColors.TB_TOGGLE) : null);
-		form.getForm().setHeadColor(IFormColors.TB_TOGGLE_HOVER,
-				add ? colors.getColor(IFormColors.TB_TOGGLE_HOVER) : null);
-		form.getForm().setSeparatorVisible(add);
-		form.reflow(true);
-		form.redraw();
-	}
-
-	private String getErrorMessage(int type, boolean longMessage) {
-		String name = MESSAGE_NAMES[type];
-		if (longMessage)
-			return MessageFormat.format(LONG_MESSAGE, new Object[] { name });
-		else
-			return MessageFormat.format(SHORT_MESSAGE, new Object[] { name });
-	}
-
-	private void updateTitle(ScrolledForm form, boolean addTitle,
-			boolean shortTitle) {
-		if (addTitle) {
-			String text = shortTitle ? SHORT_TITLE : LONG_TITLE;
-			form.setText(text);
-		} else {
-			form.setText(null);
-		}
-	}
-
-	private void updateImage(ScrolledForm form, boolean addImage) {
-		if (addImage)
-			form.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_DEF_VIEW));
-		else
-			form.setImage(null);
-	}
-	
-	private void addRemoveMessage(Button button, IMessageManager mm) {
-		if (button.getSelection())
-			mm.addMessage(button, button.getText() + " is checked.", null, IMessageProvider.INFORMATION, button);
-		else
-			mm.removeMessage(button, button);
-	}
-
-	private void addToolBar(FormToolkit toolkit, ScrolledForm form, boolean add) {
-		if (add) {
-			Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			haction.setChecked(true);
-			haction.setToolTipText("Horizontal orientation");
-			haction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_HORIZONTAL));
-			Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			vaction.setChecked(false);
-			vaction.setToolTipText("Vertical orientation");
-			vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_VERTICAL));
-			ControlContribution save = new ControlContribution("save") {
-				protected Control createControl(Composite parent) {
-					Button saveButton = new Button(parent, SWT.PUSH);
-					saveButton.setText("Save");
-					return saveButton;
-				}
-			};
-			form.getToolBarManager().add(haction);
-			form.getToolBarManager().add(vaction);
-			form.getToolBarManager().add(save);
-			form.getToolBarManager().update(true);
-		} else {
-			form.getToolBarManager().removeAll();
-		}
-		form.reflow(true);
-	}
-
-	private void addMenu(FormToolkit toolkit, ScrolledForm form, boolean add) {
-		if (add) {
-			Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			haction.setChecked(true);
-			haction.setText("Horizontal");
-			haction.setToolTipText("Horizontal orientation");
-			haction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_HORIZONTAL));
-			Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-				public void run() {
-				}
-			};
-			vaction.setChecked(false);
-			vaction.setText("Vertical");
-			vaction.setToolTipText("Vertical orientation");
-			vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-					.getImageRegistry().getDescriptor(
-							ExamplesPlugin.IMG_VERTICAL));
-			form.getForm().getMenuManager().add(haction);
-			form.getForm().getMenuManager().add(vaction);
-		} else {
-			form.getForm().getMenuManager().removeAll();
-		}
-		form.reflow(true);
-	}
-
-	private void addHeadClient(FormToolkit toolkit, ScrolledForm form,
-			boolean add) {
-		if (add) {
-			Composite headClient = new Composite(form.getForm().getHead(),
-					SWT.NULL);
-			GridLayout glayout = new GridLayout();
-			glayout.marginWidth = glayout.marginHeight = 0;
-			glayout.numColumns = 3;
-			headClient.setLayout(glayout);
-			Text t = new Text(headClient, toolkit.getBorderStyle());
-			t.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			new Combo(headClient, SWT.NULL);
-			new Combo(headClient, SWT.NULL);
-			toolkit.paintBordersFor(headClient);
-			form.setHeadClient(headClient);
-		} else {
-			Control client = form.getForm().getHeadClient();
-			if (client != null) {
-				client.dispose();
-				form.setHeadClient(null);
-			}
-		}
-	}
-
-	private void addDragSupport(final ScrolledForm form) {
-		int operations = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
-		Transfer[] transferTypes = { TextTransfer.getInstance() };
-		form.getForm().addTitleDragSupport(operations, transferTypes,
-				new DragSourceListener() {
-					public void dragFinished(DragSourceEvent event) {
-					}
-
-					public void dragSetData(DragSourceEvent event) {
-						event.data = form.getForm().getText();
-					}
-
-					public void dragStart(DragSourceEvent event) {
-						event.doit = true;
-					}
-				});
-		form.getForm().addTitleDropSupport(operations, transferTypes,
-				new DropTargetAdapter() {
-				});
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java
deleted file mode 100644
index 91af481..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSimpleFormEditorAction.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.forms.examples.internal.OpenFormEditorAction;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class OpenSimpleFormEditorAction extends OpenFormEditorAction {
-	
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
-		return openEditor(new SimpleFormEditorInput("Simple Editor"), "org.eclipse.ui.forms.examples.base-editor", window);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java
deleted file mode 100644
index 27d3c8b..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/OpenSingleHeaderEditorAction.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.forms.examples.internal.OpenFormEditorAction;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class OpenSingleHeaderEditorAction extends OpenFormEditorAction {
-	
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
-		return openEditor(new SimpleFormEditorInput("Single Header Editor"),
-				"org.eclipse.ui.forms.examples.single-header-editor", window);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java
deleted file mode 100644
index 7aa310b..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/PageWithSubPages.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- *
- */
-public class PageWithSubPages extends FormPage {
-	private CTabFolder tabFolder;
-	private Text text;
-	
-	class TextSection {
-		String text;
-		public TextSection(String text) {this.text = text;}
-	}
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public PageWithSubPages(FormEditor editor) {
-		super(editor, "composite", "Composite Page");
-	}
-	protected void createFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Form with subpages");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(
-				ExamplesPlugin.IMG_FORM_BG));
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 10;
-		form.getBody().setLayout(layout);
-		tabFolder = new CTabFolder(form.getBody(), SWT.FLAT|SWT.TOP);
-		toolkit.adapt(tabFolder, true, true);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint = 0;
-		tabFolder.setLayoutData(gd);
-		Color selectedColor = toolkit.getColors().getColor(IFormColors.SEPARATOR);
-		tabFolder.setSelectionBackground(new Color[] {selectedColor, toolkit.getColors().getBackground()}, new int[] {50});
-		//tabFolder.setCursor(FormsResources.getHandCursor());
-
-		toolkit.paintBordersFor(tabFolder);
-		createTabs(toolkit);
-		createText(toolkit, form.getBody());
-		tabFolder.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				updateSelection();
-			}
-		});
-		tabFolder.setSelection(0);
-		updateSelection();		
-	}
-	private void createTabs(FormToolkit toolkit) {
-		createTab(toolkit, "Copyright", "Copyright 2004 IBM and others.");
-		createTab(toolkit, "License Agreement", "LICENSE AGREEMENT\n\nUse this feature any way you want.");
-		createTab(toolkit, "Description", "A simple description of the feature");
-	}
-	private void createText(FormToolkit toolkit, Composite parent) {
-		Composite tabContent = toolkit.createComposite(parent);
-		tabContent.setLayoutData(new GridData(GridData.FILL_BOTH));
-		GridLayout layout = new GridLayout();
-		tabContent.setLayout(layout);
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		GridData gd;
-		text = toolkit.createText(tabContent, "", SWT.MULTI|SWT.WRAP);
-		gd = new GridData(GridData.FILL_BOTH);
-		gd.verticalSpan = 2;
-		text.setLayoutData(gd);
-		Button apply = toolkit.createButton(tabContent, "Apply", SWT.PUSH);
-		apply.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL|GridData.VERTICAL_ALIGN_BEGINNING));
-		Button reset = toolkit.createButton(tabContent, "Reset", SWT.PUSH);
-		reset.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL|GridData.VERTICAL_ALIGN_BEGINNING));
-	}
-	private void updateSelection() {
-		CTabItem item = tabFolder.getSelection();
-		TextSection section = (TextSection)item.getData();
-		text.setText(section.text);
-	}
-	private void createTab(FormToolkit toolkit, String title, String content) {
-		CTabItem item = new CTabItem(tabFolder, SWT.NULL);
-		TextSection section = new TextSection(content);
-		item.setText(title);
-		item.setData(section);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.java
deleted file mode 100644
index f25a613..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesBlock.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.ui.forms.examples.internal.rcp;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.FormPage;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- *
- */
-public class ScrolledPropertiesBlock extends MasterDetailsBlock {
-	private FormPage page;
-	public ScrolledPropertiesBlock(FormPage page) {
-		this.page = page;
-	}
-	/**
-	 * @param id
-	 * @param title
-	 */
-	class MasterContentProvider implements IStructuredContentProvider {
-		public Object[] getElements(Object inputElement) {
-			if (inputElement instanceof SimpleFormEditorInput) {
-				SimpleFormEditorInput input = (SimpleFormEditorInput) page
-						.getEditor().getEditorInput();
-				return input.getModel().getContents();
-			}
-			return new Object[0];
-		}
-		public void dispose() {
-		}
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-	class MasterLabelProvider extends LabelProvider
-			implements
-				ITableLabelProvider {
-		public String getColumnText(Object obj, int index) {
-			return obj.toString();
-		}
-		public Image getColumnImage(Object obj, int index) {
-			if (obj instanceof TypeOne) {
-				return PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_OBJ_ELEMENT);
-			}
-			if (obj instanceof TypeTwo) {
-				return PlatformUI.getWorkbench().getSharedImages().getImage(
-						ISharedImages.IMG_OBJ_FILE);
-			}
-			return null;
-		}
-	}
-	protected void createMasterPart(final IManagedForm managedForm,
-			Composite parent) {
-		//final ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		Section section = toolkit.createSection(parent, Section.DESCRIPTION);
-		section.setText("Model Objects");
-		section
-				.setDescription("The list contains objects from the model whose details are editable on the right");
-		section.marginWidth = 10;
-		section.marginHeight = 5;
-		toolkit.createCompositeSeparator(section);
-		Composite client = toolkit.createComposite(section, SWT.WRAP);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 2;
-		layout.marginHeight = 2;
-		client.setLayout(layout);
-		Table t = toolkit.createTable(client, SWT.NULL);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.heightHint = 20;
-		gd.widthHint = 100;
-		t.setLayoutData(gd);
-		toolkit.paintBordersFor(client);
-		Button b = toolkit.createButton(client, "Add...", SWT.PUSH);
-		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		b.setLayoutData(gd);
-		section.setClient(client);
-		final SectionPart spart = new SectionPart(section);
-		managedForm.addPart(spart);
-		TableViewer viewer = new TableViewer(t);
-		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				managedForm.fireSelectionChanged(spart, event.getSelection());
-			}
-		});
-		viewer.setContentProvider(new MasterContentProvider());
-		viewer.setLabelProvider(new MasterLabelProvider());
-		viewer.setInput(page.getEditor().getEditorInput());
-	}
-	protected void createToolBarActions(IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-			public void run() {
-				sashForm.setOrientation(SWT.HORIZONTAL);
-				form.reflow(true);
-			}
-		};
-		haction.setChecked(true);
-		haction.setToolTipText("Horizontal orientation");
-		haction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry()
-				.getDescriptor(ExamplesPlugin.IMG_HORIZONTAL));
-		Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-			public void run() {
-				sashForm.setOrientation(SWT.VERTICAL);
-				form.reflow(true);
-			}
-		};
-		vaction.setChecked(false);
-		vaction.setToolTipText("Vertical orientation");
-		vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry().getDescriptor(ExamplesPlugin.IMG_VERTICAL));
-		form.getToolBarManager().add(haction);
-		form.getToolBarManager().add(vaction);
-	}
-	protected void registerPages(DetailsPart detailsPart) {
-		detailsPart.registerPage(TypeOne.class, new TypeOneDetailsPage());
-		detailsPart.registerPage(TypeTwo.class, new TypeTwoDetailsPage());
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java
deleted file mode 100644
index e8f0239..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ScrolledPropertiesPage.java
+++ /dev/null
@@ -1,36 +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.ui.forms.examples.internal.rcp;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class ScrolledPropertiesPage extends FormPage {
-	private ScrolledPropertiesBlock block;
-	public ScrolledPropertiesPage(FormEditor editor) {
-		super(editor, "fourth", "Master Details");
-		block = new ScrolledPropertiesBlock(this);
-	}
-	protected void createFormContent(final IManagedForm managedForm) {
-		final ScrolledForm form = managedForm.getForm();
-		//FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Form with scrolled sections");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(
-				ExamplesPlugin.IMG_FORM_BG));
-		block.createContent(managedForm);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java
deleted file mode 100644
index 199bcfb..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SecondPage.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class SecondPage extends FormPage {
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public SecondPage(FormEditor editor) {
-		super(editor, "second", "Section Page");
-	}
-
-	protected void createFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Title for the second page");
-		form.setBackgroundImage(ExamplesPlugin.getDefault().getImage(
-				ExamplesPlugin.IMG_FORM_BG));
-		GridLayout layout = new GridLayout();
-		layout.makeColumnsEqualWidth = true;
-		layout.numColumns = 2;
-		form.getBody().setLayout(layout);
-		//This call is needed because the section will compute
-		// the bold version based on the parent.
-		Dialog.applyDialogFont(form.getBody());
-		Section s1 = createTableSection(form, toolkit, "First Table Section", true);
-		Section s2 = createTableSection(form, toolkit, "Second Table Section", false);
-		// This call is needed for all the children
-		Dialog.applyDialogFont(form.getBody());
-		s2.descriptionVerticalSpacing = s1.getTextClientHeightDifference();
-		form.reflow(true);
-	}
-
-	private Section createTableSection(final ScrolledForm form,
-			FormToolkit toolkit, String title, boolean addTextClient) {
-		Section section = toolkit.createSection(form.getBody(), Section.TWISTIE
-				| Section.TITLE_BAR);
-		section.setActiveToggleColor(toolkit.getHyperlinkGroup()
-				.getActiveForeground());
-		section.setToggleColor(toolkit.getColors().getColor(
-				IFormColors.SEPARATOR));
-		if (addTextClient) {
-			ToolBar tbar = new ToolBar(section, SWT.FLAT | SWT.HORIZONTAL);
-			ToolItem titem = new ToolItem(tbar, SWT.NULL);
-			titem.setImage(PlatformUI.getWorkbench().getSharedImages()
-					.getImage(ISharedImages.IMG_TOOL_CUT));
-			titem = new ToolItem(tbar, SWT.PUSH);
-			titem.setImage(PlatformUI.getWorkbench().getSharedImages()
-					.getImage(ISharedImages.IMG_TOOL_COPY));
-			titem = new ToolItem(tbar, SWT.SEPARATOR);
-			titem = new ToolItem(tbar, SWT.PUSH);
-			titem.setImage(PlatformUI.getWorkbench().getSharedImages()
-					.getImage(ISharedImages.IMG_TOOL_DELETE));
-			section.setTextClient(tbar);
-		}
-		FormText description = toolkit.createFormText(section, false);
-		description
-				.setText(
-						"<form><p>This description uses FormText widget and as a result can have <b>bold</b> text.</p></form>",
-						true, false);
-		section.setDescriptionControl(description);
-
-		Composite client = toolkit.createComposite(section, SWT.WRAP);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-
-		client.setLayout(layout);
-		Table t = toolkit.createTable(client, SWT.NULL);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.heightHint = 200;
-		gd.widthHint = 100;
-		t.setLayoutData(gd);
-		toolkit.paintBordersFor(client);
-		Button b = toolkit.createButton(client, "Add...", SWT.PUSH);
-		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		b.setLayoutData(gd);
-		section.setText(title);
-		section
-				.setDescription("<form><p>This section has a <b>tree</b> and a button. It also has <a>a link</a> in the description.</p></form>");
-		section.setClient(client);
-		section.setExpanded(true);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(false);
-			}
-		});
-		gd = new GridData(GridData.FILL_BOTH);
-		section.setLayoutData(gd);
-		return section;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java
deleted file mode 100644
index 94c95e7..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditor.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-/**
- * A simple multi-page form editor that uses Eclipse Forms support.
- * Example plug-in is configured to create one instance of
- * form colors that is shared between multiple editor instances.
- */
-public class SimpleFormEditor extends FormEditor {
-	/**
-	 *  
-	 */
-	public SimpleFormEditor() {
-	}
-	/*
-	 *  (non-Javadoc)
-	 * @see org.eclipse.ui.forms.editor.FormEditor#createToolkit(org.eclipse.swt.widgets.Display)
-	 */
-	protected FormToolkit createToolkit(Display display) {
-		// Create a toolkit that shares colors between editors.
-		return new FormToolkit(ExamplesPlugin.getDefault().getFormColors(
-				display));
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
-	 */
-	protected void addPages() {
-		try {
-		addPage(new NewStylePage(this));
-		addPage(new ErrorMessagesPage(this));
-		addPage(new FreeFormPage(this));
-		addPage(new SecondPage(this));
-		int index = addPage(new Composite(getContainer(), SWT.NULL));
-		setPageText(index, "Composite");
-		addPage(new ThirdPage(this));
-		addPage(new ScrolledPropertiesPage(this));
-		addPage(new PageWithSubPages(this));
-		}
-		catch (PartInitException e) {
-			//
-		}
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java
deleted file mode 100644
index b2fd6af..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleFormEditorInput.java
+++ /dev/null
@@ -1,25 +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.ui.forms.examples.internal.rcp;
-import org.eclipse.ui.forms.examples.internal.FormEditorInput;
-
-public class SimpleFormEditorInput extends FormEditorInput {
-	private SimpleModel model;
-	
-	public SimpleFormEditorInput(String name) {
-		super(name);
-		model = new SimpleModel();
-	}
-	
-	public SimpleModel getModel() {
-		return model;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.java
deleted file mode 100644
index ba1ceab..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SimpleModel.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.ui.forms.examples.internal.rcp;
-import java.util.ArrayList;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class SimpleModel {
-	private ArrayList modelListeners;
-	private ArrayList objects;
-	public SimpleModel() {
-		modelListeners = new ArrayList();
-		initialize();
-	}
-	public void addModelListener(IModelListener listener) {
-		if (!modelListeners.contains(listener))
-			modelListeners.add(listener);
-	}
-	public void removeModelListener(IModelListener listener) {
-		modelListeners.remove(listener);
-	}
-	public void fireModelChanged(Object[] objects, String type, String property) {
-		for (int i = 0; i < modelListeners.size(); i++) {
-			((IModelListener) modelListeners.get(i)).modelChanged(objects,
-					type, property);
-		}
-	}
-	public Object[] getContents() {
-		return objects.toArray();
-	}
-	private void initialize() {
-		objects = new ArrayList();
-		NamedObject[] objects = {
-				new TypeOne("TypeOne instance 1", 2, true, "Some text"),
-				new TypeOne("TypeOne instance 2", 1, false, "Different text"),
-				new TypeOne("TypeOne instance 3", 3, true, "Text"),
-				new TypeOne("TypeOne instance 4", 0, false, "Longer text"),
-				new TypeOne("TypeOne instance 5", 1, true, "Sample"),
-				new TypeTwo("TypeTwo instance 1", false, true),
-				new TypeTwo("TypeTwo instance 2", true, false)};
-		add(objects, false);
-	}
-	public void add(NamedObject[] objs, boolean notify) {
-		for (int i = 0; i < objs.length; i++) {
-			objects.add(objs[i]);
-			objs[i].setModel(this);
-		}
-		if (notify)
-			fireModelChanged(objs, IModelListener.ADDED, "");
-	}
-	public void remove(NamedObject[] objs, boolean notify) {
-		for (int i = 0; i < objs.length; i++) {
-			objects.remove(objs[i]);
-			objs[i].setModel(null);
-		}
-		if (notify)
-			fireModelChanged(objs, IModelListener.REMOVED, "");
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java
deleted file mode 100644
index 7245743..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/SingleHeaderEditor.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.internal.rcp;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ControlContribution;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.SharedHeaderFormEditor;
-import org.eclipse.ui.forms.examples.internal.ExamplesPlugin;
-import org.eclipse.ui.forms.widgets.Form;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-
-/**
- * A form editor that has several pages but only one stable header.
- */
-public class SingleHeaderEditor extends SharedHeaderFormEditor {
-	/**
-	 * 
-	 */
-	public SingleHeaderEditor() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#createToolkit(org.eclipse.swt.widgets.Display)
-	 */
-	protected FormToolkit createToolkit(Display display) {
-		// Create a toolkit that shares colors between editors.
-		return new FormToolkit(ExamplesPlugin.getDefault().getFormColors(
-				display));
-	}
-
-	protected void createHeaderContents(IManagedForm headerForm) {
-		final ScrolledForm sform = headerForm.getForm();
-		//sform.setText("Shared header for all the pages");
-		getToolkit().decorateFormHeading(sform.getForm());
-		addToolBar(sform.getForm());
-		sform.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJ_FILE));
-		headerForm.getForm().getDisplay().timerExec(5000, new Runnable() {
-			public void run() {
-				sform.setText("<Another text>");
-			}
-		});
-		//sform.setMessage("Static text", 0);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.forms.editor.FormEditor#addPages()
-	 */
-	protected void addPages() {
-		try {
-			addPage(new HeadlessPage(this, 1));
-			addPage(new HeadlessPage(this, 2));
-			addPage(new HeadlessPage(this, 3));
-		} catch (PartInitException e) {
-			//
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	private void addToolBar(Form form) {
-		Action haction = new Action("hor", Action.AS_RADIO_BUTTON) {
-			public void run() {
-			}
-		};
-		haction.setChecked(true);
-		haction.setToolTipText("Horizontal orientation");
-		haction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry()
-				.getDescriptor(ExamplesPlugin.IMG_HORIZONTAL));
-		Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) {
-			public void run() {
-			}
-		};
-		vaction.setChecked(false);
-		vaction.setToolTipText("Vertical orientation");
-		vaction.setImageDescriptor(ExamplesPlugin.getDefault()
-				.getImageRegistry().getDescriptor(ExamplesPlugin.IMG_VERTICAL));
-		ControlContribution save = new ControlContribution("save") {
-			protected Control createControl(Composite parent) {
-				Button saveButton = new Button(parent, SWT.PUSH);
-				saveButton.setText("Save");
-				return saveButton;
-			}
-		};
-		form.getToolBarManager().add(haction);
-		form.getToolBarManager().add(vaction);
-		form.getToolBarManager().add(save);
-		form.getToolBarManager().update(true);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java
deleted file mode 100644
index c48b28c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/ThirdPage.java
+++ /dev/null
@@ -1,140 +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.ui.forms.examples.internal.rcp;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.*;
-import org.eclipse.ui.forms.events.*;
-import org.eclipse.ui.forms.widgets.*;
-/**
- * @author dejan
- * 
- * To change the template for this generated type comment go to Window -
- * Preferences - Java - Code Generation - Code and Comments
- */
-public class ThirdPage extends FormPage {
-	/**
-	 * @param id
-	 * @param title
-	 */
-	public ThirdPage(FormEditor editor) {
-		super(editor, "third", "Flow Page");
-	}
-	protected void createFormContent(IManagedForm managedForm) {
-		ScrolledForm form = managedForm.getForm();
-		//FormToolkit toolkit = managedForm.getToolkit();
-		form.setText("Form with wrapped controls");
-		ColumnLayout layout = new ColumnLayout();
-		layout.topMargin = 0;
-		layout.bottomMargin = 5;
-		layout.leftMargin = 10;
-		layout.rightMargin = 10;
-		layout.horizontalSpacing = 10;
-		layout.verticalSpacing = 10;
-		layout.maxNumColumns = 4;
-		layout.minNumColumns = 1;
-		form.getBody().setLayout(layout);
-		//form.getBody().setBackground(
-		//		form.getBody().getDisplay().getSystemColor(SWT.COLOR_GREEN));
-		createSectionWithLinks(managedForm, "Link Section",
-				"An example of a section with links", 2);
-		createSectionWithLinks(managedForm, "Link Section",
-				"An example of a section with links", 2);
-		createMixedSection(managedForm, "Mixed Section",
-				"An example of a section with both links and form controls");
-		createSectionWithLinks(managedForm, "Link Section",
-				"An example of a section with links", 4);
-		createSectionWithControls(managedForm, "Control Section",
-				"An example of a section with form controls");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 3);
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 5);
-		createMixedSection(managedForm, "Mixed Section",
-				"An example of a section with both links and form controls");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 2);
-		createSectionWithControls(managedForm, "Control Section",
-				"An example of a section with links");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 4);
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 2);
-		createMixedSection(managedForm, "Mixed Section",
-				"An example of a section with both links and form controls");
-		createSectionWithLinks(managedForm, "Sample Section",
-				"An example of a section with links", 2);
-		createSectionWithControls(managedForm, "Control Section",
-				"An example of a section with form controls");
-	}
-	private void createSectionWithLinks(IManagedForm mform, String title,
-			String desc, int nlinks) {
-		Composite client = createSection(mform, title, desc, 1);
-		FormToolkit toolkit = mform.getToolkit();
-		for (int i = 1; i <= nlinks; i++)
-			toolkit.createHyperlink(client, "Hyperlink text " + i, SWT.WRAP);
-	}
-	private void createSectionWithControls(IManagedForm mform, String title,
-			String desc) {
-		Composite client = createSection(mform, title, desc, 1);
-		FormToolkit toolkit = mform.getToolkit();
-		toolkit.createButton(client, "A radio button 1", SWT.RADIO);
-		toolkit.createButton(client, "A radio button 2", SWT.RADIO);
-		toolkit.createButton(client, "A radio button with a longer text",
-				SWT.RADIO);
-		toolkit.createButton(client, "A checkbox button", SWT.CHECK);
-	}
-	private void createMixedSection(IManagedForm mform, String title, String desc) {
-		Composite client = createSection(mform, title, desc, 2);
-		FormToolkit toolkit = mform.getToolkit();
-		Hyperlink link = toolkit.createHyperlink(client,
-				"A longer hyperlink text example", SWT.WRAP);
-		GridData gd = new GridData();
-		gd.horizontalSpan = 2;
-		link.setLayoutData(gd);
-		link = toolkit.createHyperlink(client, "Another hyperlink text",
-				SWT.WRAP);
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		link.setLayoutData(gd);
-		toolkit.createLabel(client, "A text label:");
-		Text text = toolkit.createText(client, "", SWT.SINGLE);
-		text.setText("Sample text");
-		text.setEnabled(false);
-		gd = new GridData();
-		gd.widthHint = 150;
-		text.setLayoutData(gd);
-		toolkit.paintBordersFor(client);
-	}
-	private Composite createSection(IManagedForm mform, String title,
-			String desc, int numColumns) {
-		final ScrolledForm form = mform.getForm();
-		FormToolkit toolkit = mform.getToolkit();
-		Section section = toolkit.createSection(form.getBody(), Section.TWISTIE
-				| Section.SHORT_TITLE_BAR | Section.DESCRIPTION | Section.EXPANDED);
-		section.setText(title);
-		section.setDescription(desc);
-		Composite client = toolkit.createComposite(section);
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = layout.marginHeight = 0;
-		layout.numColumns = numColumns;
-		client.setLayout(layout);
-		section.setClient(client);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(false);
-			}
-		});
-		return client;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java
deleted file mode 100644
index 45dc98c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOne.java
+++ /dev/null
@@ -1,59 +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.ui.forms.examples.internal.rcp;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeOne extends NamedObject {
-	public static final String P_CHOICE="choice";
-	public static final String P_FLAG="flag";
-	public static final String P_TEXT="text";
-	public static final String [] CHOICES = {
-			"Choice 1", "Choice 2", "Choice 3", "Choice 4" };
-	private int choice=0;
-	private String text;
-	private boolean flag;
-
-	/**
-	 * @param name
-	 */
-	public TypeOne(String name, int choice, boolean flag, String text) {
-		super(name);
-		this.flag = flag;
-		this.text = text;
-		this.choice = choice;
-	}
-	public int getChoice() {
-		return choice;
-	}
-	public void setChoice(int choice) {
-		this.choice = choice;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_CHOICE);
-	}
-	public boolean getFlag() {
-		return flag;
-	}
-	public void setFlag(boolean flag) {
-		this.flag = flag;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_FLAG);
-	}
-	public String getText() {
-		return text;
-	}
-	public void setText(String text) {
-		this.text = text;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_TEXT);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java
deleted file mode 100644
index 94f1681..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeOneDetailsPage.java
+++ /dev/null
@@ -1,186 +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.ui.forms.examples.internal.rcp;
-
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeOneDetailsPage implements IDetailsPage {
-	private IManagedForm mform;
-	private TypeOne input;
-	private Button [] choices;
-	private Button flag;
-	private Text text;
-	private static final String RTEXT_DATA =
-			"<form><p>An example of a free-form text that should be "+
-			"wrapped below the section with widgets.</p>"+
-			"<p>It can contain simple tags like <a>links</a> and <b>bold text</b>.</p></form>";
-	
-	public TypeOneDetailsPage() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#initialize(org.eclipse.ui.forms.IManagedForm)
-	 */
-	public void initialize(IManagedForm mform) {
-		this.mform = mform;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createContents(Composite parent) {
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.topMargin = 5;
-		layout.leftMargin = 5;
-		layout.rightMargin = 2;
-		layout.bottomMargin = 2;
-		parent.setLayout(layout);
-
-		FormToolkit toolkit = mform.getToolkit();
-		Section s1 = toolkit.createSection(parent, Section.DESCRIPTION);
-		s1.marginWidth = 10;
-		s1.setText("Type One Details");
-		s1.setDescription("Set the properties of the selected TypeOne object.");
-		TableWrapData td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
-		td.grabHorizontal = true;
-		s1.setLayoutData(td);
-		toolkit.createCompositeSeparator(s1);
-		Composite client = toolkit.createComposite(s1);
-		GridLayout glayout = new GridLayout();
-		glayout.marginWidth = glayout.marginHeight = toolkit.getBorderStyle()==SWT.BORDER?0:2;
-		glayout.numColumns = 2;
-		client.setLayout(glayout);
-		//client.setBackground(client.getDisplay().getSystemColor(SWT.COLOR_CYAN));
-		
-		SelectionListener choiceListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				Integer value = (Integer)e.widget.getData();
-				if (input!=null) {
-					input.setChoice(value.intValue());
-				}
-			}
-		};
-		GridData gd;
-		choices = new Button[TypeOne.CHOICES.length];
-		for (int i=0; i<TypeOne.CHOICES.length; i++) {
-			choices[i] = toolkit.createButton(client, TypeOne.CHOICES[i], SWT.RADIO);
-			choices[i].setData(new Integer(i));
-			choices[i].addSelectionListener(choiceListener);
-			gd = new GridData();
-			gd.horizontalSpan = 2;
-			choices[i].setLayoutData(gd);
-		}
-		createSpacer(toolkit, client, 2);
-		flag = toolkit.createButton(client, "Value of the flag property", SWT.CHECK);
-		flag.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (input!=null)
-					input.setFlag(flag.getSelection());
-			}
-		});
-		gd = new GridData();
-		gd.horizontalSpan = 2;
-		flag.setLayoutData(gd);
-		createSpacer(toolkit, client, 2);
-		
-		toolkit.createLabel(client, "Text property:");
-		text = toolkit.createText(client, "", SWT.SINGLE);
-		text.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (input!=null)
-					input.setText(text.getText());
-			}
-		});
-		gd = new GridData(GridData.FILL_HORIZONTAL|GridData.VERTICAL_ALIGN_BEGINNING);
-		gd.widthHint = 10;
-		text.setLayoutData(gd);
-		
-		createSpacer(toolkit, client, 2);
-		
-		FormText rtext = toolkit.createFormText(parent, false);
-		rtext.setText(RTEXT_DATA, true, false);
-		td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
-		td.grabHorizontal = true;
-		rtext.setLayoutData(td);
-		
-		toolkit.paintBordersFor(client);
-		s1.setClient(client);
-	}
-	private void createSpacer(FormToolkit toolkit, Composite parent, int span) {
-		Label spacer = toolkit.createLabel(parent, "");
-		GridData gd = new GridData();
-		gd.horizontalSpan = span;
-		spacer.setLayoutData(gd);
-	}
-	private void update() {
-		for (int i=0; i<TypeOne.CHOICES.length; i++) {
-			choices[i].setSelection(input!=null && input.getChoice()==i);
-		}
-		flag.setSelection(input!=null && input.getFlag());
-		text.setText(input!=null && input.getText()!=null?input.getText():"");
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#inputChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IFormPart part, ISelection selection) {
-		IStructuredSelection ssel = (IStructuredSelection)selection;
-		if (ssel.size()==1) {
-			input = (TypeOne)ssel.getFirstElement();
-		}
-		else
-			input = null;
-		update();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#commit()
-	 */
-	public void commit(boolean onSave) {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#setFocus()
-	 */
-	public void setFocus() {
-		choices[0].setFocus();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#dispose()
-	 */
-	public void dispose() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#isDirty()
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-	public boolean isStale() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#refresh()
-	 */
-	public void refresh() {
-		update();
-	}
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java
deleted file mode 100644
index c1093c0..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwo.java
+++ /dev/null
@@ -1,47 +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.ui.forms.examples.internal.rcp;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeTwo extends NamedObject {
-	public static final String P_FLAG1="flag1";
-	public static final String P_FLAG2="flag2";
-	private boolean flag1;
-	private boolean flag2;
-
-	/**
-	 * @param name
-	 */
-	public TypeTwo(String name, boolean flag1, boolean flag2) {
-		super(name);
-		this.flag1 = flag1;
-		this.flag2 = flag2;
-	}
-	public boolean getFlag1() {
-		return flag1;
-	}
-	public boolean getFlag2() {
-		return flag2;
-	}
-	public void setFlag1(boolean flag1) {
-		this.flag1 = flag1;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_FLAG1);
-	}
-	public void setFlag2(boolean flag2) {
-		this.flag2 = flag2;
-		model.fireModelChanged(new Object[] {this}, IModelListener.CHANGED, P_FLAG2);
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java
deleted file mode 100644
index 2988e28..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/TypeTwoDetailsPage.java
+++ /dev/null
@@ -1,135 +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.ui.forms.examples.internal.rcp;
-
-import org.eclipse.jface.viewers.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.ui.forms.*;
-import org.eclipse.ui.forms.widgets.*;
-
-/**
- * @author dejan
- *
- * To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Generation - Code and Comments
- */
-public class TypeTwoDetailsPage implements IDetailsPage {
-	private IManagedForm mform;
-	private TypeTwo input;
-	private Button flag1;
-	private Button flag2;
-	
-	public TypeTwoDetailsPage() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#initialize(org.eclipse.ui.forms.IManagedForm)
-	 */
-	public void initialize(IManagedForm mform) {
-		this.mform = mform;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createContents(Composite parent) {
-		TableWrapLayout layout = new TableWrapLayout();
-		layout.topMargin = 5;
-		layout.leftMargin = 5;
-		layout.rightMargin = 2;
-		//layout.bottomMargin = 2;
-		parent.setLayout(layout);
-
-		FormToolkit toolkit = mform.getToolkit();
-		Section s1 = toolkit.createSection(parent, Section.DESCRIPTION);
-		s1.marginWidth = 10;
-		s1.setText("Type Two Details");
-		s1.setDescription("Set the properties of the selected TypeTwo object.");
-		TableWrapData td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
-		td.grabHorizontal = true;
-		s1.setLayoutData(td);
-		toolkit.createCompositeSeparator(s1);
-		Composite client = toolkit.createComposite(s1);
-		//client.setBackground(client.getDisplay().getSystemColor(SWT.COLOR_MAGENTA));
-		GridLayout glayout = new GridLayout();
-		glayout.marginWidth = glayout.marginHeight = 0;
-		client.setLayout(glayout);
-		
-		flag1 = toolkit.createButton(client, "Value of the flag1 property", SWT.CHECK);
-		flag1.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (input!=null)
-					input.setFlag1(flag1.getSelection());
-			}
-		});
-		
-		flag2 = toolkit.createButton(client, "Value of the flag2 property", SWT.CHECK);
-		flag2.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (input!=null)
-					input.setFlag2(flag2.getSelection());
-			}
-		});
-		s1.setClient(client);
-	}
-	private void update() {
-		flag1.setSelection(input!=null && input.getFlag1());
-		flag2.setSelection(input!=null && input.getFlag2());
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#inputChanged(org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void selectionChanged(IFormPart part, ISelection selection) {
-		IStructuredSelection ssel = (IStructuredSelection)selection;
-		if (ssel.size()==1) {
-			input = (TypeTwo)ssel.getFirstElement();
-		}
-		else
-			input = null;
-		update();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#commit()
-	 */
-	public void commit(boolean onSave) {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#setFocus()
-	 */
-	public void setFocus() {
-		flag1.setFocus();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#dispose()
-	 */
-	public void dispose() {
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#isDirty()
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-	
-	public boolean isStale() {
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.forms.IDetailsPage#refresh()
-	 */
-	public void refresh() {
-		update();
-	}
-	public boolean setFormInput(Object input) {
-		return false;
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml
deleted file mode 100644
index ed6aa1c..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/internal/rcp/index.xml
+++ /dev/null
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<form>
-<p><control href="node"/></p>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>New addition: controls in the text</p>
-<p><control href="control1" width="300"/></p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-<p>
-To check for updates for features you have installed, 
-go to the <a href="action1">My Eclipse 1</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search. 
-Now we <b>will</b> add an 
-<img href="image1"/> 
-image here. Just
- to show how wrapping should apply to images when they are 
- larger than the regular text.
-</p>
-<p>Now we will show an image link: <a href="action1"><img href="image1"/></a></p>
-<p>And this is image and text as a link: <a href="action1"><img href="image1"/>Some link text</a></p>
-<li style="text" value="1.">To check for updates for features you have installed, 
-go to the <a href="action2">My Eclipse 2</a> and select 
-<b>Available Updates</b> folder. <b>Search page</b> will 
-be shown allowing you to initiate and customize the search.</li>
-<li style="text" value="2.">This is the item number 2.</li>
-<li style="text" value="3.">This is the item number 3.</li>
-<li>This is the bullet item.</li>
-<li>This is another bullet item.</li>
-</form>
\ No newline at end of file
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java
deleted file mode 100644
index df7bf12..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/FormView.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.views;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-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;
-import org.eclipse.ui.forms.IFormColors;
-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.examples.internal.ExamplesPlugin;
-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.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-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.part.ViewPart;
-
-public class FormView extends ViewPart {
-	private FormToolkit toolkit;
-	private ScrolledForm form;
-	/**
-	 * The constructor.
-	 */
-	public FormView() {
-	}
-	/**
-	 * This is a callback that will allow us to create the viewer and
-	 * initialize it.
-	 */
-	public void createPartControl(Composite parent) {
-		toolkit = new FormToolkit(parent.getDisplay());
-		form = toolkit.createScrolledForm(parent);
-		form.setText("Hello, Eclipse Forms");
-		TableWrapLayout layout = new TableWrapLayout();
-		form.getBody().setLayout(layout);
-		
-		Hyperlink link = toolkit.createHyperlink(form.getBody(), "Click here.",
-				SWT.WRAP);
-		link.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link activated!");
-			}
-		});
-		link.setText("This is an example of a form that is much longer and will need to wrap.");
-		layout.numColumns = 2;
-		TableWrapData td = new TableWrapData();
-		td.colspan = 2;
-		link.setLayoutData(td);
-		toolkit.createLabel(form.getBody(), "Text field label:");
-		Text text = toolkit.createText(form.getBody(), "");
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		text.setLayoutData(td);
-		Button button = toolkit.createButton(form.getBody(),
-				"An example of a checkbox in a form", SWT.CHECK);
-		td = new TableWrapData();
-		td.colspan = 2;
-		button.setLayoutData(td);
-		
-		ImageHyperlink ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		ih.setText("Image link with no image");
-		ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		ih.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ih.setText("Link with image and text");
-		
-		ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE|ExpandableComposite.CLIENT_INDENT);
-		ImageHyperlink eci = toolkit.createImageHyperlink(ec, SWT.NULL);
-		eci.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ec.setTextClient(eci);
-		ec.setText("Expandable Composite title");
-		String ctext = "We will now create a somewhat long text so that "+
-		"we can use it as content for the expandable composite. "+
-		"Expandable composite is used to hide or show the text using the "+
-		"toggle control";
-		Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);
-		ec.setClient(client);
-		td = new TableWrapData();
-		td.colspan = 2;
-		ec.setLayoutData(td);
-		ec.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(true);
-			}
-		});
-		Section section = toolkit.createSection(form.getBody(), Section.DESCRIPTION|Section.TWISTIE|Section.EXPANDED);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		section.setLayoutData(td);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				form.reflow(true);
-			}
-		});
-		section.setText("Section title");
-		toolkit.createCompositeSeparator(section);
-		section.setDescription("This is the description that goes below the title");
-		Composite sectionClient = toolkit.createComposite(section);
-		sectionClient.setLayout(new GridLayout());
-		button = toolkit.createButton(sectionClient, "Radio 1", SWT.RADIO);
-		button = toolkit.createButton(sectionClient, "Radio 2", SWT.RADIO);
-		section.setClient(sectionClient);
-
-		StringBuffer buf = new StringBuffer();
-		buf.append("<form>");
-		buf.append("<p>");
-		buf.append("Here is some plain text for the text to render; ");
-		buf.append("this text is at <a href=\"http://www.eclipse.org\" nowrap=\"true\">http://www.eclipse.org</a> web site.");
-		buf.append("</p>");
-		buf.append("<p>");
-		buf.append("<span color=\"header\" font=\"header\">This text is in header font and color.</span>");
-		buf.append("</p>");
-		buf.append("<p>This line will contain some <b>bold</b> and some <span font=\"code\">source</span> text. ");
-		buf.append("We can also add <img href=\"image\"/> an image. ");
-		buf.append("</p>");
-		buf.append("<li>A default (bulleted) list item.</li>");
-		buf.append("<li>Another bullet list item.</li>");
-		buf.append("<li style=\"text\" value=\"1.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" value=\"2.\">Another list item with text</li>");
-		buf.append("<li style=\"image\" value=\"image\">List item with an image bullet</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"3.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"4.\">A list item with text.</li>");
-		buf.append("<p>     leading blanks;      more white \n\n new lines   <br/><br/><br/> \n more <b>   bb   </b>  white  . </p>");
-		buf.append("</form>");
-		FormText rtext = toolkit.createFormText(form.getBody(), false);
-		//rtext.setWhitespaceNormalized(false);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		rtext.setLayoutData(td);
-		rtext.setImage("image", ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		rtext.setColor("header", toolkit.getColors().getColor(IFormColors.TITLE));
-		rtext.setFont("header", JFaceResources.getHeaderFont());
-		rtext.setFont("code", JFaceResources.getTextFont());
-		rtext.setText(buf.toString(), true, false);
-		rtext.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link active: "+e.getHref());
-			}
-		});
-/*		layout.numColumns = 3;
-		Label label;
-		TableWrapData td;
-		
-		label = toolkit.createLabel(form.getBody(), "Some text to put in the first column", SWT.WRAP);
-		label = toolkit.createLabel(form.getBody() ,"Some text to put in the second column and make it a bit longer so that we can see what happens with column distribution. This text must be the longest so that it can get more space allocated to the columns it belongs to.", SWT.WRAP);
-		td = new TableWrapData();
-		td.colspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text will span two rows and should not grow the column.", SWT.WRAP);
-		td = new TableWrapData();
-		td.rowspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		form.getBody().setBackground(form.getBody().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));*/
-		
-		toolkit.paintBordersFor(form.getBody());
-	}
-	/**
-	 * Passing the focus request to the form.
-	 */
-	public void setFocus() {
-		Control focusControl = form.getDisplay().getFocusControl();
-		if (focusControl!=null) {
-			Composite parent = focusControl.getParent();
-			while (parent!=null) {
-				if (parent==form) {
-					// already have focus
-					return;
-				}
-				parent = parent.getParent();
-			}
-		}
-		form.setFocus();
-	}
-	/**
-	 * Disposes the toolkit
-	 */
-	public void dispose() {
-		toolkit.dispose();
-		super.dispose();
-	}
-}
diff --git a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java b/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java
deleted file mode 100644
index 2484a37..0000000
--- a/examples/org.eclipse.ui.forms.examples/src/org/eclipse/ui/forms/examples/views/ShowHelpAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.forms.examples.views;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.*;
-
-/**
- * @author dejan
- *
- * TODO To change the template for this generated type comment go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-public class ShowHelpAction implements IWorkbenchWindowActionDelegate {
-	private IWorkbenchWindow window;
-	/* (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) {
-		this.window = window;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		try {
-			window.getActivePage().showView("org.eclipse.ui.forms.examples.helpView");
-		}
-		catch (PartInitException e) {
-			System.out.println(e);
-		}
-	}
-
-	/* (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/tests/org.eclipse.jface.tests.databinding.conformance/.classpath b/tests/org.eclipse.jface.tests.databinding.conformance/.classpath
deleted file mode 100644
index ce73933..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.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/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.project b/tests/org.eclipse.jface.tests.databinding.conformance/.project
deleted file mode 100644
index 3094c2c..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jface.tests.databinding.conformance</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/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index d735633..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,356 +0,0 @@
-#Thu Feb 05 11:37:58 MST 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=enabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-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=0
-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=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-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_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
-org.eclipse.jdt.core.formatter.comment.format_block_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=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=80
-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_annotation_declaration_header=true
-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_annotation_declaration=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_parenthesized_expression_in_throw=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=80
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
-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=1
-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
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b58868e..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,117 +0,0 @@
-#Tue Feb 10 16:06:09 MST 2009
-cleanup.add_default_serial_version_id=true
-cleanup.add_generated_serial_version_id=false
-cleanup.add_missing_annotations=true
-cleanup.add_missing_deprecated_annotations=true
-cleanup.add_missing_methods=false
-cleanup.add_missing_nls_tags=false
-cleanup.add_missing_override_annotations=true
-cleanup.add_serial_version_id=false
-cleanup.always_use_blocks=true
-cleanup.always_use_parentheses_in_expressions=false
-cleanup.always_use_this_for_non_static_field_access=false
-cleanup.always_use_this_for_non_static_method_access=false
-cleanup.convert_to_enhanced_for_loop=false
-cleanup.correct_indentation=false
-cleanup.format_source_code=false
-cleanup.format_source_code_changes_only=false
-cleanup.make_local_variable_final=true
-cleanup.make_parameters_final=false
-cleanup.make_private_fields_final=true
-cleanup.make_variable_declarations_final=false
-cleanup.never_use_blocks=false
-cleanup.never_use_parentheses_in_expressions=true
-cleanup.organize_imports=false
-cleanup.qualify_static_field_accesses_with_declaring_class=false
-cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-cleanup.qualify_static_member_accesses_with_declaring_class=true
-cleanup.qualify_static_method_accesses_with_declaring_class=false
-cleanup.remove_private_constructors=true
-cleanup.remove_trailing_whitespaces=false
-cleanup.remove_trailing_whitespaces_all=true
-cleanup.remove_trailing_whitespaces_ignore_empty=false
-cleanup.remove_unnecessary_casts=true
-cleanup.remove_unnecessary_nls_tags=true
-cleanup.remove_unused_imports=true
-cleanup.remove_unused_local_variables=false
-cleanup.remove_unused_private_fields=true
-cleanup.remove_unused_private_members=false
-cleanup.remove_unused_private_methods=true
-cleanup.remove_unused_private_types=true
-cleanup.sort_members=false
-cleanup.sort_members_all=false
-cleanup.use_blocks=false
-cleanup.use_blocks_only_for_return_and_throw=false
-cleanup.use_parentheses_in_expressions=false
-cleanup.use_this_for_non_static_field_access=false
-cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-cleanup.use_this_for_non_static_method_access=false
-cleanup.use_this_for_non_static_method_access_only_if_necessary=true
-cleanup_profile=org.eclipse.jdt.ui.default.eclipse_clean_up_profile
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=org.eclipse.jdt.ui.default.eclipse_profile
-formatter_settings_version=11
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.ignorelowercasenames=true
-org.eclipse.jdt.ui.importorder=java;javax;org;com;
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.ondemandthreshold=99
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.staticondemandthreshold=99
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return Returns the ${bare_field_name}.\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} The ${bare_field_name} to set.\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\r\n * Copyright (c) ${year} IBM Corporation and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     IBM Corporation - initial API and implementation\r\n ******************************************************************************/\r\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @since 3.2\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=false
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.correct_indentation=false
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_type_abstract_if_missing_method=false
-sp_cleanup.make_variable_declarations_final=false
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=false
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=false
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=false
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 12a7331..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,18 +0,0 @@
-#Mon Dec 03 13:56:42 EST 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=0
-compilers.p.illegal-att-value=0
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=2
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF b/tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF
deleted file mode 100644
index d18d64f..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,24 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jface.tests.databinding.conformance
-Bundle-Version: 1.1.0
-Require-Bundle: org.junit,
- org.eclipse.core.databinding,
- org.eclipse.jface.databinding,
- org.eclipse.swt,
- org.eclipse.core.runtime
-Bundle-Vendor: %providerName
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jface.databinding.conformance;uses:="org.eclipse.core.databinding.observable,org.eclipse.jface.databinding.conformance.delegate,junit.framework",
- org.eclipse.jface.databinding.conformance.delegate,
- org.eclipse.jface.databinding.conformance.swt,
- org.eclipse.jface.databinding.conformance.util;
-  uses:="org.eclipse.core.databinding.observable.map,
-   org.eclipse.jface.databinding.conformance.delegate,
-   org.eclipse.core.databinding.observable,
-   org.eclipse.core.databinding.observable.list,
-   org.eclipse.core.databinding.observable.value,
-   junit.framework,
-   org.eclipse.core.databinding.observable.set"
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/about.html b/tests/org.eclipse.jface.tests.databinding.conformance/about.html
deleted file mode 100644
index d42b3ce..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/build.properties b/tests/org.eclipse.jface.tests.databinding.conformance/build.properties
deleted file mode 100644
index cc15552..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/build.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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 = .,\
-               META-INF/,\
-               plugin.properties,\
-               about.html
-output.databinding.jar = bin/
-src.includes = about.html
-source.. = src/
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties b/tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties
deleted file mode 100644
index 4e17d68..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-pluginName = JFace Data Binding Conformance Tests
-providerName = Eclipse.org
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java
deleted file mode 100644
index ba34da5..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableCollectionContractTest.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bugs 208858, 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.Arrays;
-import java.util.Collections;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Mutability tests for IObservableCollection.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class MutableObservableCollectionContractTest extends ObservableDelegateTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableCollection collection;
-
-	public MutableObservableCollectionContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public MutableObservableCollectionContractTest(String name,
-			IObservableCollectionContractDelegate delegate) {
-		super(name, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		collection = (IObservableCollection) super.getObservable();
-	}
-
-	public void testAdd_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.add(delegate.createElement(collection));
-			}
-		}, "Collection.add(Object)", collection);
-	}
-	
-	public void testAdd_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.add(delegate.createElement(collection));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testAdd_ChangeEventFiredAfterElementIsAdded() throws Exception {
-		final Object element = delegate.createElement(collection);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.add(element);
-			}
-		}, "Collection.add(Object)", collection, element);
-	}
-
-	public void testAddAll_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.addAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, "Collection.addAll(Collection)", collection);
-	}
-	
-	public void testAddAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.addAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testAddAll_ChangeEventFiredAfterElementsAreAdded()
-			throws Exception {
-		final Object element = delegate.createElement(collection);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.addAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Collection.addAll(Collection)", collection, element);
-	}
-
-	public void testRemove_ChangeEvent() throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.remove(element);
-			}
-		}, "Collection.remove(Object)", collection);
-	}
-	
-	public void testRemove_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.remove(delegate.createElement(collection));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testRemove_ChangeEventFiredAfterElementIsRemoved()
-			throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.remove(element);
-			}
-		}, "Collection.remove(Object)", collection, element);
-	}
-
-	public void testRemoveAll_ChangeEvent() throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Collection.removeAll(Collection)", collection);
-	}
-	
-	public void testRemoveAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.removeAll(Arrays.asList(new Object[] { delegate.createElement(collection) }));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testRemoveAll_ChangeEventFiredAfterElementsAreRemoved()
-			throws Exception {
-		final Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Collection.removeAll(Collection)", collection, element);
-	}
-
-	public void testRemoveAll_NoChange() throws Exception {
-		ChangeEventTracker tracker = ChangeEventTracker.observe(collection);
-		collection.removeAll(Collections.EMPTY_LIST);
-		assertEquals(
-				"List.removeAll on an empty list should not fire a list change event",
-				0, tracker.count);
-	}
-
-	public void testRetainAll_ChangeEvent() throws Exception {
-		final Object element1 = delegate.createElement(collection);
-		collection.add(element1);
-		Object element2 = delegate.createElement(collection);
-		collection.add(element2);
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-
-		}, "Collection.retainAll(Collection)", collection);
-	}
-	
-	public void testRetainAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.retainAll(Collections.EMPTY_LIST);
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testRetainAll_ChangeEventFiredAfterElementsAreRetained()
-			throws Exception {
-		Object element1 = delegate.createElement(collection);
-		collection.add(element1);
-		Object element2 = delegate.createElement(collection);
-		collection.add(element2);
-
-		// precondition
-		assertTrue(collection.contains(element1));
-		assertTrue(collection.contains(element2));
-
-		ContainsListener listener1 = new ContainsListener(collection, element1)
-				.init();
-		ContainsListener listener2 = new ContainsListener(collection, element2)
-				.init();
-
-		// set contains the the opposite of the expected outcome to ensure they
-		// get set
-		listener1.contains = false;
-		listener2.contains = true;
-
-		collection.retainAll(Arrays.asList(new Object[] { element1 }));
-		assertTrue(
-				formatFail("When Collection.retainAll(...) fires the change event the element should have been retained in the Collection."),
-				listener1.contains);
-		assertFalse(
-				formatFail("When Collection.retainAll(...) fires the change event the element should have been removed from the Collection."),
-				listener2.contains);
-	}
-	
-	public void testRetainAll_NoChangeFiresNoChangeEvent() throws Exception {
-		ChangeEventTracker tracker = ChangeEventTracker.observe(collection);
-		collection.retainAll(Collections.EMPTY_LIST);
-		assertEquals("List.retainAll should not have fired a change event:",
-				0, tracker.count);
-	}
-	
-	public void testClear_ChangeEvent() throws Exception {
-		collection.add(delegate.createElement(collection));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				collection.clear();
-			}
-		}, "List.clear()", collection);
-	}
-
-	public void testClear_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.clear();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testClear_ChangeEventFiredAfterElementIsRemoved()
-			throws Exception {
-		Object element = delegate.createElement(collection);
-		collection.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				collection.clear();
-			}
-		}, "List.clear()", collection, element);
-	}
-
-	/**
-	 * Asserts that a ChangeEvent is fired once when the provided
-	 * <code>runnable</code> is invoked and the source is the provided
-	 * <code>collection</code>.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param collection
-	 */
-	/* package */void assertChangeEventFired(Runnable runnable,
-			String methodName, IObservableCollection collection) {
-		
-		ChangeEventTracker listener = ChangeEventTracker.observe(collection);
-		runnable.run();
-
-		assertEquals(formatFail(methodName + " should fire one ChangeEvent."), 1,
-				listener.count);
-		assertEquals(
-				formatFail(methodName
-						+ "'s change event observable should be the created Collection."),
-				collection, listener.event.getObservable());
-	}
-
-	/**
-	 * Asserts that when the change event is fired for the action contained in
-	 * the <code>runnable</code> the change will have been applied to the
-	 * <code>collection</code>.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param collection
-	 * @param elementNotContained
-	 */
-	/* package */void assertDoesNotContainDuringChangeEvent(Runnable runnable,
-			String methodName, IObservableCollection collection,
-			Object elementNotContained) {
-
-		// precondition
-		assertTrue(collection.contains(elementNotContained));
-
-		ContainsListener listener = new ContainsListener(collection,
-				elementNotContained).init();
-		listener.contains = true;
-		collection.remove(elementNotContained);
-		assertFalse(
-				formatFail(new StringBuffer("When ")
-						.append(methodName)
-						.append(
-								" fires a change event the element should have been removed from the Collection.")
-						.toString()), listener.contains);
-	}
-
-	/**
-	 * Asserts that when the change event is fired for the action contained in
-	 * the <code>runnable</code> the change will have been applied to the
-	 * <code>collection</code>.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param collection
-	 * @param elementContained
-	 */
-	/* package */void assertContainsDuringChangeEvent(Runnable runnable,
-			String methodName, IObservableCollection collection,
-			Object elementContained) {
-		ContainsListener listener = new ContainsListener(collection,
-				elementContained).init();
-
-		// precondition
-		assertFalse(collection.contains(elementContained));
-		runnable.run();
-
-		assertTrue(
-				formatFail(new StringBuffer("When ")
-						.append(methodName)
-						.append(
-								" fires a change event the element should have been added to the Collection.")
-						.toString()), listener.contains);
-	}
-
-	/* package */static class ContainsListener implements IChangeListener {
-		boolean contains;
-
-		final private Object element;
-
-		final private IObservableCollection collection;
-
-		ContainsListener(IObservableCollection collection, Object element) {
-			this.element = element;
-			this.collection = collection;
-		}
-
-		ContainsListener init() {
-			collection.addChangeListener(this);
-			return this;
-		}
-
-		public void handleChange(ChangeEvent event) {
-			contains = collection.contains(element);
-		}
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableCollectionContractTest.class, delegate)
-				.addObservableContractTest(
-						ObservableCollectionContractTest.class, delegate)
-				.build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java
deleted file mode 100644
index 3d34e9a..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableListContractTest.java
+++ /dev/null
@@ -1,534 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bugs 208858, 221351, 213145, 244098
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.Assert;
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListDiff;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.ListChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Mutability tests for IObservableList.
- * 
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class MutableObservableListContractTest extends
-		MutableObservableCollectionContractTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableList list;
-
-	/**
-	 * @param delegate
-	 */
-	public MutableObservableListContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public MutableObservableListContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		list = (IObservableList) getObservable();
-	}
-
-	public void testAdd_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(element);
-			}
-		}, "List.add(Object)", list, Collections.singletonList(element));
-	}
-
-	public void testAdd_ListDiffEntry() throws Exception {
-		Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(element1);
-			}
-		}, "List.add(Object)", list, Arrays.asList(new Object[] { element0,
-				element1 }));
-	}
-
-	public void testAddAtIndex_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(0, delegate.createElement(list));
-			}
-		}, "List.add(int, Object)", list);
-	}
-
-	public void testAddAtIndex_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(0, element);
-			}
-		}, "List.add(int, Object)", list, Collections.singletonList(element));
-	}
-
-	public void testAddAtIndex_ChangeEventFiredAfterElementIsAdded()
-			throws Exception {
-		final Object element = delegate.createElement(list);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				list.add(0, element);
-			}
-		}, "List.add(int, Collection)", list, element);
-	}
-
-	public void testAddAtIndex_ListDiffEntry() throws Exception {
-		Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.add(1, element1);
-			}
-		}, "List.add(int, Object)", list, Arrays.asList(new Object[] {
-				element0, element1 }));
-	}
-
-	public void testAddAll_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(Collections.singletonList(element));
-			}
-		}, "List.addAll(Collection", list, Collections.singletonList(element));
-	}
-
-	public void testAddAll_ListDiffEntry() throws Exception {
-		final Object element = delegate.createElement(list);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(Collections.singletonList(element));
-			}
-		}, "List.addAll(Collection)", list, Collections.singletonList(element));
-	}
-
-	public void testAddAll_ListDiffEntry2() throws Exception {
-		final Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(Collections.singletonList(element1));
-			}
-		}, "List.addAll(Collection)", list, Arrays.asList(new Object[] {
-				element0, element1 }));
-	}
-
-	public void testAddAllAtIndex_ChangeEvent() throws Exception {
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(0, Arrays.asList(new Object[] { delegate
-						.createElement(list) }));
-			}
-		}, "List.addAll(int, Collection)", list);
-	}
-
-	public void testAddAllAtIndex_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(0, Collections.singletonList(element));
-			}
-		}, "List.addAll(int, Collection)", list, Collections
-				.singletonList(element));
-	}
-
-	public void testAddAllAtIndex_ChangeEventFiredAfterElementIsAdded()
-			throws Exception {
-		final Object element = delegate.createElement(list);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				list.addAll(0, Arrays.asList(new Object[] { element }));
-			}
-		}, "List.addAll(int, Collection)", list, element);
-	}
-
-	public void testAddAllAtIndex_ListDiffEntry() throws Exception {
-		Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.addAll(1, Collections.singletonList(element1));
-			}
-		}, "List.addAll(int, Collection)", list, Arrays.asList(new Object[] {
-				element0, element1 }));
-	}
-
-	public void testSet_ChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.set(0, delegate.createElement(list));
-			}
-		}, "List.set(int, Object)", list);
-	}
-
-	public void testSet_ListChangeEvent() throws Exception {
-		final Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				assertSame(element0, list.set(0, element1));
-			}
-		}, "List.set(int, Object)", list, Arrays
-				.asList(new Object[] { element1 }));
-	}
-
-	public void testSet_ChangeEventFiredAfterElementIsSet() throws Exception {
-		final Object element1 = delegate.createElement(list);
-		list.add(element1);
-		final Object element2 = delegate.createElement(list);
-
-		assertContainsDuringChangeEvent(new Runnable() {
-			public void run() {
-				assertSame(element1, list.set(0, element2));
-			}
-		}, "List.set(int, Object)", list, element2);
-	}
-
-	public void testSet_ListChangeEvent2() throws Exception {
-		Object element0 = delegate.createElement(list);
-		list.add(element0);
-		Object oldElement1 = delegate.createElement(list);
-		list.add(oldElement1);
-		final Object newElement1 = delegate.createElement(list);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.set(1, newElement1);
-			}
-		}, "List.set(int, Object)", list, Arrays.asList(new Object[] {
-				element0, newElement1 }));
-	}
-
-	public void testMove_ChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-		list.add(delegate.createElement(list));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.move(0, 1);
-			}
-		}, "IObservableList.move(int, int)", list);
-	}
-
-	public void testMove_NoChangeEventAtSameIndex() throws Exception {
-		Object element = delegate.createElement(list);
-		list.add(element);
-
-		ListChangeEventTracker tracker = ListChangeEventTracker.observe(list);
-
-		final Object movedElement = list.move(0, 0);
-
-		assertEquals(
-				formatFail("IObservableList.move(int,int) should return the moved element"),
-				element, movedElement);
-		assertEquals(
-				formatFail("IObservableLIst.move(int,int) should not fire a change event"
-						+ "when the old and new indices are the same"), 0,
-				tracker.count);
-	}
-
-	public void testMove_ListChangeEvent() throws Exception {
-		final Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-		list.add(element1);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				assertSame(element0, list.move(0, 1));
-			}
-		}, "IObservableList.move(int, int)", list, Arrays.asList(new Object[] {
-				element1, element0 }));
-	}
-
-	public void testMove_ChangeEventFiredAfterElementIsMoved() throws Exception {
-		Object element0 = delegate.createElement(list);
-		Object element1 = delegate.createElement(list);
-		list.add(element0);
-		list.add(element1);
-
-		assertSame(element0, list.get(0));
-		assertSame(element1, list.get(1));
-
-		list.move(0, 1);
-
-		assertSame(element1, list.get(0));
-		assertSame(element0, list.get(1));
-	}
-
-	public void testMove_ListChangeEvent2() {
-		Object element0 = delegate.createElement(list);
-		list.add(element0);
-		Object element1 = delegate.createElement(list);
-		list.add(element1);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.move(0, 1);
-			}
-		}, "IObservableList.move(int, int)", list, Arrays.asList(new Object[] {
-				element1, element0 }));
-	}
-
-	public void testRemove_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(element);
-			}
-		}, "List.remove(Object)", list, Collections.EMPTY_LIST);
-	}
-
-	public void testRemove_ListDiffEntry() throws Exception {
-		final Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-		list.add(element1);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(element1);
-			}
-		}, "List.remove(Object)", list, Collections.singletonList(element0));
-	}
-
-	public void testRemoveAtIndex_ChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(0);
-			}
-		}, "List.remove(int)", list);
-	}
-
-	public void testRemoveAtIndex_ListChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(0);
-			}
-		}, "List.remove(int)", list, Collections.EMPTY_LIST);
-	}
-
-	public void testRemoveAtIndex_ChangeEventFiredAfterElementIsRemoved()
-			throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertDoesNotContainDuringChangeEvent(new Runnable() {
-			public void run() {
-				list.remove(0);
-			}
-		}, "List.remove(int)", list, element);
-	}
-
-	public void testRemoveAtIndex_ListDiffEntry() throws Exception {
-		Object element0 = delegate.createElement(list);
-		list.add(element0);
-		Object element1 = delegate.createElement(list);
-		list.add(element1);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.remove(1);
-			}
-		}, "List.remove(int)", list, Collections.singletonList(element0));
-	}
-
-	public void testRemoveAll_ListChangeEvent() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.removeAll(Collections.singletonList(element));
-			}
-		}, "List.removeAll(Collection)", list, Collections.EMPTY_LIST);
-	}
-
-	public void testRemoveAll_ListDiffEntry() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.removeAll(Collections.singletonList(element));
-			}
-		}, "List.removeAll(Collection)", list, Collections.EMPTY_LIST);
-	}
-
-	public void testRemoveAll_ListDiffEntry2() throws Exception {
-		Object element0 = delegate.createElement(list);
-		list.add(element0);
-		final Object element1 = delegate.createElement(list);
-		list.add(element1);
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.removeAll(Arrays.asList(new Object[] { element1 }));
-			}
-		}, "List.removeAll(Collection)", list, Collections
-				.singletonList(element0));
-	}
-
-	public void testRetainAll_ListChangeEvent() throws Exception {
-		final Object element0 = delegate.createElement(list);
-		list.add(element0);
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.retainAll(Arrays.asList(new Object[] { element0 }));
-			}
-		}, "List.retainAll(Collection", list, Collections
-				.singletonList(element0));
-	}
-
-	public void testRetainAll_ListDiffEntry() throws Exception {
-		final Object element = delegate.createElement(list);
-		list.add(element);
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.retainAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "List.retainAll(Collection)", list, Collections
-				.singletonList(element));
-	}
-
-	public void testClear_ListChangeEvent() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.clear();
-			}
-		}, "List.clear()", list, Collections.EMPTY_LIST);
-	}
-
-	public void testClear_ListDiffEntry() throws Exception {
-		list.add(delegate.createElement(list));
-
-		assertListChangeEventFired(new Runnable() {
-			public void run() {
-				list.clear();
-			}
-		}, "List.clear()", list, Collections.EMPTY_LIST);
-	}
-
-	public void testClear_ClearsList() {
-		Object element = delegate.createElement(list);
-		list.add(element);
-		Assert.assertEquals(Collections.singletonList(element), list);
-		list.clear();
-		Assert.assertEquals(Collections.EMPTY_LIST, list);
-	}
-
-	private void assertListChangeEventFired(Runnable runnable,
-			String methodName, IObservableList list, List newList) {
-		List oldList = new ArrayList(list);
-
-		List queue = new ArrayList();
-		ListChangeEventTracker listListener = new ListChangeEventTracker(queue);
-		ChangeEventTracker changeListener = new ChangeEventTracker(queue);
-
-		list.addListChangeListener(listListener);
-		list.addChangeListener(changeListener);
-
-		runnable.run();
-
-		assertEquals(formatFail(methodName + " should fire one ListChangeEvent."), 1,
-				listListener.count);
-		assertEquals(formatFail(methodName
-				+ "'s change event observable should be the created List."),
-				list, listListener.event.getObservable());
-
-		assertEquals(formatFail("Two notifications should have been received."), 2, queue
-				.size());
-		assertEquals("ChangeEvent of " + methodName
-				+ " should have fired before the ListChangeEvent.",
-				changeListener, queue.get(0));
-		assertEquals("ListChangeEvent of " + methodName
-				+ " should have fired after the ChangeEvent.", listListener,
-				queue.get(1));
-
-		assertEquals(formatFail(methodName
-				+ " did not leave observable list with the expected contents"),
-				newList, list);
-
-		ListDiff diff = listListener.event.diff;
-		diff.applyTo(oldList);
-		assertEquals(
-				formatFail(methodName
-						+ " fired a diff which does not represent the expected list change"),
-				newList, oldList);
-
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableListContractTest.class, delegate)
-				.addObservableContractTest(ObservableListContractTest.class,
-						delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java
deleted file mode 100644
index 8ff8cdb..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableSetContractTest.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 215531, 221351, 213145
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.SetChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- */
-public class MutableObservableSetContractTest extends
-		MutableObservableCollectionContractTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableSet set;
-
-	public MutableObservableSetContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/**
-	 * @param delegate
-	 */
-	public MutableObservableSetContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		set = (IObservableSet) getObservable();
-	}
-
-	public void testAdd_SetChangeEvent() throws Exception {
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.add(delegate.createElement(set));
-			}
-		}, "Set.add(Object)", set);
-	}
-
-	public void testAdd_SetDiffEntry() throws Exception {
-		set.add(delegate.createElement(set));
-		final Object element = delegate.createElement(set);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				set.add(element);
-			}
-		}, "Set.add(Object)", set, element);
-	}
-
-	public void testAdd_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.add(delegate.createElement(set));
-			}
-		}, "Set.add(Object)", set);
-	}
-
-	public void testAddAll_SetChangeEvent() throws Exception {
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.addAll(Arrays.asList(new Object[] { delegate
-						.createElement(set) }));
-			}
-		}, "Set.addAll(Collection", set);
-	}
-
-	public void testAddAll_SetDiffEntry() throws Exception {
-		final Object element = delegate.createElement(set);
-
-		assertAddDiffEntry(new Runnable() {
-			public void run() {
-				set.addAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Set.addAll(Collection)", set, element);
-	}
-
-	public void testAddAll_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.addAll(Collections.singleton(delegate.createElement(set)));
-			}
-		}, "Set.addAll(Collection)", set);
-	}
-
-	public void testRemove_SetChangeEvent() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.remove(element);
-			}
-		}, "Set.remove(Object)", set);
-	}
-
-	public void testRemove_SetDiffEntry() throws Exception {
-		set.add(delegate.createElement(set));
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.remove(element);
-			}
-		}, "Set.remove(Object)", set, element);
-	}
-
-	public void testRemove_GetterCalled() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.remove(element);
-			}
-		}, "Set.remove(Object)", set);
-	}
-
-	public void testRemoveAll_SetChangeEvent() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Set.removeAll(Collection)", set);
-	}
-
-	public void testRemoveAll_SetDiffEntry() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.removeAll(Arrays.asList(new Object[] { element }));
-			}
-		}, "Set.removeAll(Collection)", set, element);
-	}
-
-	public void testRemoveAll_GetterCalled() throws Exception {
-		final Object element = delegate.createElement(set);
-		set.add(element);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.removeAll(Collections.singleton(element));
-			}
-		}, "Set.removeAll(Collection)", set);
-	}
-
-	public void testRetainAll_SetChangeEvent() throws Exception {
-		final Object element1 = delegate.createElement(set);
-		set.add(element1);
-		set.add(delegate.createElement(set));
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-		}, "Set.retainAll(Collection", set);
-	}
-
-	public void testRetainAll_SetDiffEntry() throws Exception {
-		final Object element1 = delegate.createElement(set);
-		set.add(element1);
-		Object element2 = delegate.createElement(set);
-		set.add(element2);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.retainAll(Arrays.asList(new Object[] { element1 }));
-			}
-		}, "Set.retainAll(Collection)", set, element2);
-	}
-
-	public void testRetainAll_GetterCalled() throws Exception {
-		set.add(delegate.createElement(set));
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.retainAll(Collections.EMPTY_SET);
-			}
-		}, "Set.retainAll(Collection)", set);
-	}
-
-	public void testClear_SetChangeEvent() throws Exception {
-		set.add(delegate.createElement(set));
-
-		assertSetChangeEventFired(new Runnable() {
-			public void run() {
-				set.clear();
-			}
-		}, "Set.clear()", set);
-	}
-
-	public void testClear_SetDiffEntry() throws Exception {
-		Object element = delegate.createElement(set);
-		set.add(element);
-
-		assertRemoveDiffEntry(new Runnable() {
-			public void run() {
-				set.clear();
-			}
-		}, "Set.clear()", set, element);
-	}
-
-	public void testClear_GetterCalled() throws Exception {
-		set.add(delegate.createElement(set));
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				set.clear();
-			}
-		}, "Set.clear()", set);
-	}
-
-	/**
-	 * Asserts standard behaviors of firing set change events.
-	 * <ul>
-	 * <li>Event fires once.</li>
-	 * <li>Source of the event is the provided <code>set</code>.
-	 * <li>The set change event is fired after the change event.</li>
-	 * </ul>
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param set
-	 */
-	private void assertSetChangeEventFired(Runnable runnable,
-			String methodName, IObservableSet set) {
-		List queue = new ArrayList();
-		SetChangeEventTracker setListener = new SetChangeEventTracker(queue);
-		ChangeEventTracker changeListener = new ChangeEventTracker(queue);
-
-		set.addSetChangeListener(setListener);
-		set.addChangeListener(changeListener);
-
-		runnable.run();
-
-		assertEquals(formatFail(methodName + " should fire one SetChangeEvent."), 1,
-				setListener.count);
-		assertEquals(formatFail(methodName
-				+ "'s change event observable should be the created Set."), set,
-				setListener.event.getObservable());
-
-		assertEquals(formatFail("Two notifications should have been received."), 2, queue
-				.size());
-		assertEquals(formatFail("ChangeEvent of " + methodName
-				+ " should have fired before the SetChangeEvent."),
-				changeListener, queue.get(0));
-		assertEquals(formatFail("SetChangeEvent of " + methodName
-				+ " should have fired after the ChangeEvent."), setListener,
-				queue.get(1));
-	}
-
-	/**
-	 * Asserts the set diff entry for an add operation.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param set
-	 * @param element
-	 */
-	private void assertAddDiffEntry(Runnable runnable, String methodName,
-			IObservableSet set, Object element) {
-		SetChangeEventTracker listener = new SetChangeEventTracker();
-		set.addSetChangeListener(listener);
-
-		runnable.run();
-
-		Set entries = listener.event.diff.getAdditions();
-		assertEquals(formatFail(methodName + " should result in one diff entry."), 1,
-				entries.size());
-
-		assertTrue(formatFail(methodName
-				+ " should result in a diff entry that is an addition."),
-				entries.contains(element));
-	}
-
-	/**
-	 * Asserts the set diff entry for a remove operation.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 * @param set
-	 * @param element
-	 */
-	private void assertRemoveDiffEntry(Runnable runnable, String methodName,
-			IObservableSet set, Object element) {
-		SetChangeEventTracker listener = new SetChangeEventTracker();
-		set.addSetChangeListener(listener);
-
-		runnable.run();
-
-		Set entries = listener.event.diff.getRemovals();
-		assertEquals(formatFail(methodName + " should result in one diff entry."), 1,
-				entries.size());
-
-		assertTrue(formatFail(methodName
-				+ " should result in a diff entry that is a removal."),
-				entries.contains(element));
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableSetContractTest.class, delegate)
-				.addObservableContractTest(
-						ObservableCollectionContractTest.class, delegate)
-				.build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java
deleted file mode 100644
index e03b0aa..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/MutableObservableValueContractTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-
-/**
- * Mutability tests for IObservableValue.
- * 
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class MutableObservableValueContractTest extends
-		ObservableDelegateTest {
-	private IObservableValueContractDelegate delegate;
-
-	private IObservableValue observable;
-
-	/**
-	 * @param delegate
-	 */
-	public MutableObservableValueContractTest(
-			IObservableValueContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	public MutableObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		this.observable = (IObservableValue) getObservable();
-	}
-
-	public void testSetValue_SetsValue() throws Exception {
-		Object value = delegate.createValue(observable);
-		
-		observable.setValue(value);
-		assertEquals(formatFail("IObservableValue.setValue(Object) should set the value of the observable."), value, observable.getValue());
-	}
-	
-	public void testSetValue_ChangeEvent() throws Exception {
-		ChangeEventTracker listener = ChangeEventTracker.observe(observable);
-		
-		observable.setValue(delegate.createValue(observable));
-		
-		assertEquals(formatFail("Change event listeners were not notified"), 1, listener.count);
-		assertEquals(formatFail("IObservableValue.setValue(Object) should fire one ChangeEvent."), 1,
-				listener.count);
-		assertEquals(
-				formatFail("IObservableValue.setValue(Object)'s change event observable should be the created observable."),
-				observable, listener.event.getObservable());
-	}
-	
-	public void testSetValue_SameValue() throws Exception {
-		// invoke change to ensure observable has a value
-		delegate.change(observable);
-
-		ValueChangeEventTracker valueChangeListener = ValueChangeEventTracker.observe(observable);
-		ChangeEventTracker changeListener = ChangeEventTracker.observe(observable);
-		Object value = observable.getValue();
-		observable.setValue(value);
-
-		assertEquals(
-				formatFail("IObservableValue.setValue() should not fire a value change event when the value has not change."),
-				0, valueChangeListener.count);
-		assertEquals(
-				formatFail("IObservableValue.setValue() should not fire a change event when the value has not change."),
-				0, changeListener.count);
-	}
-	
-	public void testSetValue_RealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable.setValue(delegate.createValue(observable));
-			}
-		}, (CurrentRealm) observable.getRealm());
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				MutableObservableValueContractTest.class, delegate)
-				.addObservableContractTest(ObservableValueContractTest.class,
-						delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java
deleted file mode 100644
index e744a72..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableCollectionContractTest.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bugs 213145, 274450
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.Arrays;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Tests for IObservableCollection that don't mutate the collection.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class ObservableCollectionContractTest extends ObservableContractTest {
-	private IObservableCollectionContractDelegate delegate;
-
-	private IObservableCollection collection;
-
-	public ObservableCollectionContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public ObservableCollectionContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		collection = (IObservableCollection) getObservable();
-	}
-
-	public void testIterator_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.iterator();
-			}
-		}, "Collection.iterator()", collection);
-	}
-
-	public void testIterator_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.iterator();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testSize_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.size();
-			}
-		}, "Collection.size()", collection);
-	}
-
-	public void testSize_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.size();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testIsEmpty_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.isEmpty();
-			}
-		}, "Collection.isEmpty()", collection);
-	}
-
-	public void testIsEmpty_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.isEmpty();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testContains_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.contains(delegate.createElement(collection));
-			}
-		}, "Collection.contains(...)", collection);
-	}
-
-	public void testContains_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.contains(delegate.createElement(collection));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testContainsAll_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.containsAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, "Collection.containsAll(Collection)", collection);
-	}
-
-	public void testContainsAll_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.containsAll(Arrays.asList(new Object[] { delegate
-						.createElement(collection) }));
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testToArray_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.toArray();
-			}
-		}, "Collection.toArray()", collection);
-	}
-
-	public void testToArray_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.toArray();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testToArrayWithObjectArray_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.toArray(new Object[collection.size()]);
-			}
-		}, "Collection.toArray(Object[])", collection);
-	}
-
-	public void testToArrayWithObjectArray_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.toArray(new Object[collection.size()]);
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testEquals_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.equals(collection);
-			}
-		}, "Collection.equals(Object)", collection);
-	}
-
-	public void testEquals_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.equals(collection);
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testEquals_IdentityEquals() throws Exception {
-		assertTrue(collection.equals(collection));
-	}
-
-	public void testHashCode_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				collection.hashCode();
-			}
-		}, "Collection.hashCode()", collection);
-	}
-
-	public void testHashCode_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				collection.hashCode();
-			}
-		}, (CurrentRealm) collection.getRealm());
-	}
-
-	public void testGetElementType_ReturnsType() throws Exception {
-		assertEquals(
-				"Element type of the collection should be returned from IObservableCollection.getElementType()",
-				delegate.getElementType(collection), collection
-						.getElementType());
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableCollectionContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java
deleted file mode 100644
index 4e2071c..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableContractTest.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bugs 208322, 221351, 208858, 146397, 249526
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.DisposeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IDisposeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.DisposeEventTracker;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Tests for IObservable that don't require mutating the observable.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class ObservableContractTest extends ObservableDelegateTest {
-	private IObservable observable;
-
-	private IObservableContractDelegate delegate;
-
-	public ObservableContractTest(IObservableContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	public ObservableContractTest(String testName,
-			IObservableContractDelegate delegate) {
-		super(testName, delegate);
-		
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		observable = getObservable();
-	}
-
-	public void testConstruction_CallsObservableCreated() {
-		final IObservable[] created = new IObservable[1];
-		IObservable[] collected = ObservableTracker.runAndCollect(new Runnable() {
-			public void run() {
-				created[0] = delegate.createObservable(new CurrentRealm(true));
-			}
-		});
-		assertTrue(collected.length > 0);
-		boolean wasCollected = false;
-		for (int i = 0; i < collected.length; i++) {
-			if (collected[i] == created[0])
-				wasCollected = true;
-		}
-		assertTrue(wasCollected);
-	}
-
-	public void testGetRealm_NotNull() throws Exception {
-		assertNotNull(formatFail("The observable's realm should not be null."), observable
-				.getRealm());
-	}
-
-	public void testChange_ChangeEvent() throws Exception {
-		ChangeListener listener = new ChangeListener();
-
-		observable.addChangeListener(listener);
-		delegate.change(observable);
-
-		assertEquals(
-				formatFail("A change in the observable should notify change listeners."),
-				1, listener.count);
-	}
-
-	public void testChange_EventObservable() throws Exception {
-		ChangeListener listener = new ChangeListener();
-
-		observable.addChangeListener(listener);
-		delegate.change(observable);
-
-		ChangeEvent event = listener.event;
-		assertNotNull(formatFail("change event was null"), event);
-
-		assertSame(
-				formatFail("In the change event the source of the change should be the observable."),
-				observable, event.getObservable());
-	}
-
-	public void testChange_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				delegate.change(observable);
-			}			
-		}, (CurrentRealm) observable.getRealm());
-	}
-	
-	public void testChange_ObservableRealmIsTheCurrentRealm() throws Exception {
-		ChangeListener listener = new ChangeListener();
-		observable.addChangeListener(listener);
-
-		delegate.change(observable);
-		assertTrue(
-				formatFail("On change the current realm should be the realm of the observable."),
-				listener.isCurrentRealm);
-	}
-
-	public void testRemoveChangeListener_RemovesListener() throws Exception {
-		ChangeListener listener = new ChangeListener();
-
-		observable.addChangeListener(listener);
-		delegate.change(observable);
-
-		// precondition check
-		assertEquals(formatFail("change did not notify listeners"), 1, listener.count);
-
-		observable.removeChangeListener(listener);
-		delegate.change(observable);
-
-		assertEquals(
-				formatFail("When a change listener is removed it should not still receive change events."),
-				1, listener.count);
-	}
-
-	public void testIsStale_NotStale() throws Exception {
-		delegate.setStale(observable, false);
-		assertFalse(
-				formatFail("When an observable is not stale isStale() should return false."),
-				observable.isStale());
-	}
-	
-	public void testIsStale_RealmChecks() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable.isStale();
-			}
-		}, (CurrentRealm) observable.getRealm());
-	}
-
-	public void testIsStale_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				observable.isStale();
-			}
-		}, "isStale", observable);
-	}
-
-	public void testIsDisposed() throws Exception {
-		assertFalse(observable.isDisposed());
-		observable.dispose();
-		assertTrue(observable.isDisposed());
-	}
-
-	public void testAddDisposeListener_HandleDisposeInvoked() {
-		DisposeEventTracker tracker = DisposeEventTracker.observe(observable);
-		assertEquals(0, tracker.count);
-		observable.dispose();
-		assertEquals(1, tracker.count);
-		assertSame(observable, tracker.event.getSource());
-	}
-
-	public void testHandleDispose_IsDisposedTrue() {
-		// Ensures observable.isDisposed() == true before
-		// the dispose listeners are called
-		observable.addDisposeListener(new IDisposeListener() {
-			public void handleDispose(DisposeEvent staleEvent) {
-				assertTrue(observable.isDisposed());
-			}
-		});
-		observable.dispose();
-	}
-
-	public void testDispose_RemovesListeners() throws Exception {
-		ChangeListener disposedObservableListener = new ChangeListener();
-		Realm realm = observable.getRealm();
-		
-		observable.addChangeListener(disposedObservableListener);
-		observable.dispose();
-		
-		//create a new observable to fire a change from
-		observable = delegate.createObservable(realm);
-		delegate.change(observable);
-		
-		assertEquals(
-				formatFail("After being disposed listeners should not receive change events."),
-				0, disposedObservableListener.count);
-	}
-
-	public void testDispose_PreservesRealm() throws Exception {
-		Realm realm = observable.getRealm();
-
-		observable.dispose();
-
-		assertSame(realm, observable.getRealm());
-	}
-
-	/* package */static class ChangeListener implements IChangeListener {
-		int count;
-
-		ChangeEvent event;
-
-		boolean isCurrentRealm;
-
-		public void handleChange(ChangeEvent event) {
-			count++;
-			this.event = event;
-			this.isCurrentRealm = event.getObservable().getRealm().isCurrent();
-		}
-	}
-
-	public static Test suite(IObservableContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java
deleted file mode 100644
index f740539..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableDelegateTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 221351
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.ObservableTracker;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-
-/**
- * TestCase that provides the standard behavior expected for delegating test cases.
- * 
- * @since 3.2
- */
-public class ObservableDelegateTest extends TestCase {
-	private IObservableContractDelegate delegate;
-
-	private Realm previousRealm;
-
-	private IObservable observable;
-	private String debugInfo;
-
-	public ObservableDelegateTest(IObservableContractDelegate delegate) {
-		this(null, delegate);
-	}
-	
-	public ObservableDelegateTest(String testName, IObservableContractDelegate delegate) {
-		super(testName);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		previousRealm = Realm.getDefault();
-
-		delegate.setUp();
-		observable = doCreateObservable();
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		delegate.tearDown();
-		observable.dispose();
-		observable = null;
-		
-		RealmTester.setDefault(previousRealm);
-
-		observable = null;
-		previousRealm = null;
-	}
-	
-	/**
-	 * Creates a new observable with a default realm. Invoked from
-	 * {@link #setUp()}. Override to customize the creation of observables
-	 * (e.g. specifying a different Realm).
-	 * 
-	 * @return observable
-	 */
-	protected IObservable doCreateObservable() {
-		return delegate.createObservable(new CurrentRealm(true));
-	}
-
-	/**
-	 * Returns the created observable. The observable is created in
-	 * {@link #setUp()}. If invoked before {@link #setUp()} will be
-	 * <code>null</code>.
-	 * 
-	 * @return observable
-	 */
-	protected IObservable getObservable() {
-		return observable;
-	}	
-	
-	/**
-	 * Returns the delegate in use.
-	 * 
-	 * @return delegate
-	 */
-	protected IObservableContractDelegate getObservableContractDelegate() {
-		return delegate;
-	}
-	
-	protected String formatFail(String message) {
-		return message + getDebugString();
-	}
-	
-	private String getDebugString() {
-		if (debugInfo == null) {
-			debugInfo = "(Test: " + this.getClass().getName() + ", Delegate: " + delegate.getClass().getName() + ")";
-		}
-		
-		return debugInfo;
-	}
-
-	/**
-	 * Asserts that ObservableTracker.getterCalled(...) is invoked when the
-	 * provided <code>runnable</code> is invoked.
-	 * 
-	 * @param runnable
-	 * @param methodName
-	 *            method name to display when displaying a message
-	 * @param observable
-	 *            observable that should be collected by ObservableTracker
-	 */
-	protected void assertGetterCalled(Runnable runnable, String methodName, IObservable observable) {
-		IObservable[] observables = ObservableTracker.runAndMonitor(runnable,
-				null, null);
-	
-		int count = 0;
-		for (int i = 0; i < observables.length; i++) {
-			if (observables[i] == observable) {
-				count++;
-			}
-		}
-		
-		assertEquals(formatFail(methodName
-				+ " should invoke ObservableTracker.getterCalled() once."), 1,
-				count);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java
deleted file mode 100644
index a0e48c1..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableListContractTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableCollectionContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * Tests for IObservableList that don't require mutating the collection.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class ObservableListContractTest extends
-		ObservableCollectionContractTest {
-	private IObservableList list;
-
-	private IObservableCollectionContractDelegate delegate;
-
-	/**
-	 * @param delegate
-	 */
-	public ObservableListContractTest(
-			IObservableCollectionContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;
-	}
-
-	public ObservableListContractTest(String testName,
-			IObservableCollectionContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		list = (IObservableList) getObservable();
-	}
-
-	public void testListIterator_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.listIterator();
-			}
-		}, "List.listIterator()", list);
-	}
-
-	public void testGet_GetterCalled() throws Exception {
-		list = (IObservableList) delegate.createObservableCollection(new CurrentRealm(true), 1);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.get(0);
-			}
-		}, "List.get(int)", list);
-	}
-
-	public void testIndexOf_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.indexOf(delegate.createElement(list));
-			}
-		}, "List.indexOf(int)", list);
-	}
-
-	public void testLastIndexOf_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.lastIndexOf(delegate.createElement(list));
-			}
-		}, "List.lastIndexOf(Object)", list);
-	}
-
-	public void testListIteratorAtIndex_GetterCalled() throws Exception {
-		// Create a new list instead of adding an item because the list might
-		// not be mutable
-		list = (IObservableList) delegate.createObservableCollection(new CurrentRealm(true), 1);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.listIterator(0);
-			}
-		}, "List.listIterator(int)", list);
-	}
-
-	public void testSubList_GetterCalled() throws Exception {
-		list = (IObservableList) delegate.createObservableCollection(new CurrentRealm(true), 1);
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				list.subList(0, 1);
-			}
-		}, "List.subList(int, int)", list);
-	}
-
-	public static Test suite(IObservableCollectionContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableListContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java
deleted file mode 100644
index 482ed77..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableStaleContractTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-
-/**
- * @since 3.3
- */
-public class ObservableStaleContractTest extends ObservableDelegateTest {
-	private IObservableContractDelegate delegate;
-	private IObservable observable;
-	
-	public ObservableStaleContractTest(IObservableContractDelegate delegate) {
-		this(null, delegate);
-	}
-	
-	public ObservableStaleContractTest(String testName, IObservableContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		observable = getObservable();
-	}
-	
-	public void testIsStale_TrueWhenStale() throws Exception {
-		delegate.setStale(observable, true);
-		assertTrue(formatFail("When stale isStale() should return true."), observable.isStale());
-	}
-	
-	public void testIsStale_FalseWhenNotStale() throws Exception {
-		delegate.setStale(observable, false);
-		assertFalse(formatFail("When not stale isStale() should return false."), observable.isStale());
-	}
-
-	public void testBecomingStaleFiresStaleEvent() throws Exception {
-		StaleListener listener = new StaleListener();
-
-		// precondition
-		ensureStale(observable, false);
-
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, true);
-
-		assertEquals(formatFail("When becoming stale listeners should be notified."), 1, listener.count);
-	}
-
-	public void testStaleEventObservable() throws Exception {
-		StaleListener listener = new StaleListener();
-
-		// precondition
-		ensureStale(observable, false);
-
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, true);
-
-		StaleEvent event = listener.event;
-		assertNotNull(formatFail("stale event was null"), event);
-		assertEquals(formatFail("When notifying listeners of becoming stale the observable should be the source of the event."), observable,
-				event.getObservable());
-	}
-
-	public void testRemoveStaleListener_RemovesListener() throws Exception {
-		StaleListener listener = new StaleListener();
-
-		observable.addStaleListener(listener);
-		ensureStale(observable, false);
-		delegate.setStale(observable, true);
-
-		// precondition check
-		assertEquals(formatFail("set stale did not notify listeners"), 1, listener.count);
-
-		observable.removeStaleListener(listener);
-		ensureStale(observable, false);
-		delegate.setStale(observable, true);
-
-		assertEquals(formatFail("Once removed stale listeners should not be notified of becoming stale."), 1,
-				listener.count);
-	}
-
-	public void testStaleListenersAreNotNotifiedWhenObservableIsNoLongerStale()
-			throws Exception {
-		ensureStale(observable, true);
-
-		StaleListener listener = new StaleListener();
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, false);
-
-		assertEquals(formatFail("Stale listeners should not be notified when the stale state changes from true to false."), 0,
-				listener.count);
-	}
-
-	public void testObservableRealmIsCurrentOnStale() throws Exception {
-		ensureStale(observable, false);
-
-		StaleListener listener = new StaleListener();
-		observable.addStaleListener(listener);
-		delegate.setStale(observable, true);
-
-		assertTrue(formatFail("When notifying listeners of becoming stale the observable's realm should be the current realm."),
-				listener.isCurrentRealm);
-	}
-	
-	/**
-	 * Ensures that stale is set to the provided state. Will throw an
-	 * AssertionFailedError if setting of the state is unsuccessful.
-	 * 
-	 * @param observable
-	 * @param stale
-	 */
-	private void ensureStale(IObservable observable, boolean stale) {
-		if (observable.isStale() != stale) {
-			delegate.setStale(observable, stale);
-		}
-
-		assertEquals(stale, observable.isStale());
-	}
-	
-	/* package */static class StaleListener implements IStaleListener {
-		int count;
-
-		StaleEvent event;
-
-		boolean isCurrentRealm;
-
-		public void handleStale(StaleEvent staleEvent) {
-			count++;
-			this.event = staleEvent;
-			this.isCurrentRealm = staleEvent.getObservable().getRealm()
-					.isCurrent();
-		}
-	}
-
-	public static Test suite(IObservableContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableStaleContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java
deleted file mode 100644
index d55c12e..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/ObservableValueContractTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 213145
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.CurrentRealm;
-import org.eclipse.jface.databinding.conformance.util.RealmTester;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.conformance.util.ValueChangeEventTracker;
-
-/**
- * @since 3.2
- */
-public class ObservableValueContractTest extends ObservableContractTest {
-	private IObservableValueContractDelegate delegate;
-	private IObservableValue observable;
-
-	public ObservableValueContractTest(IObservableValueContractDelegate delegate) {
-		super(delegate);
-		this.delegate = delegate;			
-	}
-
-	/**
-	 * @param testName
-	 * @param delegate
-	 */
-	public ObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.databinding.conformance.ObservableContractTest#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		observable = (IObservableValue) getObservable();
-	}
-
-	public void testChange_ValueChangeEvent() throws Exception {
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-
-		delegate.change(observable);
-		assertEquals(formatFail("On change value change listeners should be notified."), 1,
-				listener.count);
-	}
-
-	public void testGetValueType_ExpectedType() throws Exception {
-		assertEquals(formatFail("Type of the value should be returned from getType()."),
-				delegate.getValueType(observable), observable.getValueType());
-	}
-
-	public void testChange_OrderOfNotifications() throws Exception {
-		final List listeners = new ArrayList();
-		IChangeListener changeListener = new IChangeListener() {
-			public void handleChange(ChangeEvent event) {
-				listeners.add(this);
-			}
-		};
-
-		IValueChangeListener valueChangeListener = new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				listeners.add(this);
-			}
-		};
-
-		observable.addChangeListener(changeListener);
-		observable.addValueChangeListener(valueChangeListener);
-
-		delegate.change(observable);
-		
-		assertTrue(formatFail("Change Listeners were not notified on change."), listeners.size() > 0);
-		
-		// not asserting the fact that both are notified as this is asserted in
-		// other tests
-		assertEquals(
-				formatFail("Change listeners should be notified before value change listeners."),
-				changeListener, listeners.get(0));
-		assertEquals(
-				formatFail("Value change listeners should be notified after change listeners."),
-				valueChangeListener, listeners.get(1));
-	}
-
-	public void testChange_ValueChangeEventDiff() throws Exception {
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-		Object oldValue = observable.getValue();
-
-		delegate.change(observable);
-
-		ValueChangeEvent event = listener.event;
-		
-		assertTrue(formatFail("Change Listeners were not notified on change."), listener.count > 0);
-		
-		assertEquals(
-				formatFail("When a value change event is fired the old value should be the previous value of the observable value."),
-				oldValue, event.diff.getOldValue());
-		assertEquals(
-				formatFail("When a value change event is fired the new value should be the same as the current value of the observable value."),
-				observable.getValue(), event.diff.getNewValue());
-	}
-
-	public void testChange_ValueChangeEventFiredAfterValueIsSet()
-			throws Exception {
-		class ValueChangeListener implements IValueChangeListener {
-			Object value;
-
-			public void handleValueChange(ValueChangeEvent event) {
-				this.value = event.getObservableValue().getValue();
-			}
-		}
-		
-		ValueChangeListener listener = new ValueChangeListener();
-		observable.addValueChangeListener(listener);
-		delegate.change(observable);
-		assertEquals(
-				formatFail("When a value change event is fired the new value should be applied before firing the change event."),
-				listener.value, observable.getValue());
-	}
-
-	public void testRemoveValueChangeListener_RemovesListener() throws Exception {
-		ValueChangeEventTracker listener = ValueChangeEventTracker.observe(observable);
-		delegate.change(observable);
-
-		// precondition
-		assertEquals(formatFail("Value change listeners should be notified on change."), 1,
-				listener.count);
-
-		observable.removeValueChangeListener(listener);
-		delegate.change(observable);
-
-		assertEquals(
-				formatFail("Value change listeners should not be notified after they've been removed from the observable."),
-				1, listener.count);
-	}
-
-	public void testGetValue_GetterCalled() throws Exception {
-		assertGetterCalled(new Runnable() {
-			public void run() {
-				observable.getValue();
-			}
-		}, formatFail("IObservableValue.getValue()"), observable);
-	}
-
-	public void testGetValue_RealmCheck() throws Exception {
-		RealmTester.exerciseCurrent(new Runnable() {
-			public void run() {
-				observable.getValue();
-			}
-		}, (CurrentRealm) observable.getRealm());
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				ObservableValueContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java
deleted file mode 100644
index 5455d7f..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableCollectionContractDelegate.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Abstract implementation of {@link IObservableCollectionContractDelegate}.
- * 
- * @since 3.2
- */
-public abstract class AbstractObservableCollectionContractDelegate extends
-		AbstractObservableContractDelegate implements
-		IObservableCollectionContractDelegate {
-
-	/**
-	 * Invokes {@link IObservableCollectionContractDelegate#createObservableCollection(Realm, int)}.
-	 * @param realm 
-	 * @return observable
-	 */
-	public final IObservable createObservable(Realm realm) {
-		return createObservableCollection(realm, 0);
-	}
-	
-	public Object createElement(IObservableCollection collection) {
-		//no op
-		return null;
-	}
-
-	public Object getElementType(IObservableCollection collection) {
-		//no op
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java
deleted file mode 100644
index 8146760..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableContractDelegate.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Abstract implementation of {@link IObservableContractDelegate}.
- * 
- * @since 1.1
- */
-public abstract class AbstractObservableContractDelegate implements
-		IObservableContractDelegate {
-
-	public void setUp() {
-		// no op
-	}
-
-	public void tearDown() {
-		// no op
-	}
-
-	public void change(IObservable observable) {
-		// no op
-	}
-
-	public void setStale(IObservable observable, boolean stale) {
-		// no op
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java
deleted file mode 100644
index 6de2c2c..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/AbstractObservableValueContractDelegate.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * Abstract implementation of {@link IObservableValueContractDelegate}.
- * 
- * @since 1.1
- */
-public abstract class AbstractObservableValueContractDelegate extends
-		AbstractObservableContractDelegate implements
-		IObservableValueContractDelegate {
-
-	/**
-	 * Invokes {@link #createObservableValue(Realm)}.
-	 * @param realm 
-	 * @return observable
-	 */
-	public final IObservable createObservable(Realm realm) {
-		return createObservableValue(realm);
-	}
-
-	/**
-	 * Default implementation returns <code>null</code>.
-	 * @param observable 
-	 * @return value type
-	 */
-	public Object getValueType(IObservableValue observable) {
-		// no op
-		return null;
-	}
-	
-	/**
-	 * Default implementation returns <code>null</code>.
-	 * @param observable 
-	 * @return value
-	 */
-	public Object createValue(IObservableValue observable) {
-		//no op
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java
deleted file mode 100644
index 5fb412c..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableCollectionContractDelegate.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservableCollection;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Delegate interface for an IObservableCollection.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the classes that implement this interface. Note that
- * direct implementers of this interface outside of the framework will be broken
- * in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableCollectionContractDelegate extends
-		IObservableContractDelegate {
-	/**
-	 * Creates a new observable collection with the provided
-	 * <code>elementCount</code>.
-	 * 
-	 * @param realm realm of the collection
-	 * @param elementCount
-	 *            number of elements to initialize the collection with
-	 * 
-	 * @return new observable collection
-	 */
-	public IObservableCollection createObservableCollection(Realm realm, int elementCount);
-
-	/**
-	 * Creates a new element of the appropriate type for the provided
-	 * <code>collection</code>. This element will be employed to assert the
-	 * addition and removal of elements in the collection.
-	 * 
-	 * @param collection
-	 * @return valid element for the collection
-	 */
-	public Object createElement(IObservableCollection collection);
-
-	/**
-	 * Returns the expected type of the elements in the collection.
-	 * 
-	 * @param collection
-	 * @return element type
-	 */
-	public Object getElementType(IObservableCollection collection);
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java
deleted file mode 100644
index bcd59bb..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableContractDelegate.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Delegate interface for observables.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the classes that implement this interface. Note that
- * direct implementers of this interface outside of the framework will be broken
- * in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableContractDelegate {
-	/**
-	 * Notifies the delegate of the start of a test.
-	 */
-	public void setUp();
-
-	/**
-	 * Notifies the delegate of the end of a test.
-	 */
-	public void tearDown();
-
-	/**
-	 * Invokes an operation to set the stale state of the provided
-	 * <code>observable</code>.
-	 * 
-	 * @param observable
-	 * @param stale
-	 */
-	public void setStale(IObservable observable, boolean stale);
-
-	/**
-	 * Creates a new observable.
-	 * 
-	 * @param realm realm of the observable
-	 * @return observable
-	 */
-	public IObservable createObservable(Realm realm);
-
-	/**
-	 * Invokes a change operation resulting in a change event being fired from
-	 * the observable. The preferred approach is to change the observed object
-	 * resulting in an observable event. There is no guaranteed as to the state
-	 * of the observable when invoked. The observable could be disposed to
-	 * assert the proper behavior of dispose.
-	 * 
-	 * @param observable
-	 */
-	public void change(IObservable observable);
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java
deleted file mode 100644
index 873b005..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/delegate/IObservableValueContractDelegate.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.delegate;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-
-/**
- * Delegate interface for an observable value.
- * 
- * <p>
- * This interface is not intended to be implemented by clients. Clients should
- * instead subclass one of the classes that implement this interface. Note that
- * direct implementers of this interface outside of the framework will be broken
- * in future releases when methods are added to this interface.
- * </p>
- * 
- * @since 1.1
- */
-public interface IObservableValueContractDelegate extends
-		IObservableContractDelegate {
-
-	/**
-	 * Creates a new observable value.
-	 * 
-	 * @param realm
-	 *            realm of the observable
-	 * @return observable value
-	 */
-	public IObservableValue createObservableValue(Realm realm);
-
-	/**
-	 * Returns the expected type of the observable.
-	 * 
-	 * @param observable
-	 * @return type
-	 */
-	public Object getValueType(IObservableValue observable);
-	
-	/**
-	 * Returns a valid value that is not the current value of the observable.
-	 * 
-	 * @param observable
-	 * @return value
-	 */
-	public Object createValue(IObservableValue observable);
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java
deleted file mode 100644
index b16fb6e..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTMutableObservableValueContractTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.swt;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.conformance.MutableObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.DelegatingRealm;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Mutability tests for IObservableValue for a SWT widget.
- * 
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class SWTMutableObservableValueContractTest extends
-		MutableObservableValueContractTest {
-	private IObservableValueContractDelegate delegate;
-
-	public SWTMutableObservableValueContractTest(
-			IObservableValueContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	/**
-	 * @param testName
-	 * @param delegate
-	 */
-	public SWTMutableObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/**
-	 * Creates a new observable passing the realm for the current display.
-	 * @return observable
-	 */
-	protected IObservable doCreateObservable() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		DelegatingRealm delegateRealm = new DelegatingRealm(SWTObservables
-				.getRealm(display));
-		delegateRealm.setCurrent(true);
-
-		return delegate.createObservable(delegateRealm);
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(
-				SWTMutableObservableValueContractTest.class, delegate)
-				.addObservableContractTest(
-						SWTObservableValueContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java
deleted file mode 100644
index ef21669..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/swt/SWTObservableValueContractTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 213145
- *******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.swt;
-
-import junit.framework.Test;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.jface.databinding.conformance.ObservableValueContractTest;
-import org.eclipse.jface.databinding.conformance.delegate.IObservableValueContractDelegate;
-import org.eclipse.jface.databinding.conformance.util.DelegatingRealm;
-import org.eclipse.jface.databinding.conformance.util.SuiteBuilder;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Tests for IObservableValue that don't mutate the value.
- * <p>
- * This class is experimental and can change at any time. It is recommended to
- * not subclass or assume the test names will not change. The only API that is
- * guaranteed to not change are the constructors. The tests will remain public
- * and not final in order to allow for consumers to turn off a test if needed by
- * subclassing.
- * </p>
- * 
- * @since 3.2
- */
-public class SWTObservableValueContractTest extends ObservableValueContractTest {
-	private IObservableValueContractDelegate delegate;
-
-	/**
-	 * @param delegate
-	 */
-	public SWTObservableValueContractTest(
-			IObservableValueContractDelegate delegate) {
-		this(null, delegate);
-	}
-
-	public SWTObservableValueContractTest(String testName,
-			IObservableValueContractDelegate delegate) {
-		super(testName, delegate);
-		this.delegate = delegate;
-	}
-
-	/**
-	 * Creates a new observable passing the realm for the current display.
-	 * @return observable
-	 */
-	protected IObservable doCreateObservable() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		DelegatingRealm delegateRealm = new DelegatingRealm(SWTObservables
-				.getRealm(display));
-		delegateRealm.setCurrent(true);
-
-		return delegate.createObservable(delegateRealm);
-	}
-
-	public static Test suite(IObservableValueContractDelegate delegate) {
-		return new SuiteBuilder().addObservableContractTest(SWTObservableValueContractTest.class, delegate).build();
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java
deleted file mode 100644
index 1e38756..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ChangeEventTracker.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.ChangeEvent;
-import org.eclipse.core.databinding.observable.IChangeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Listener for tracking the firing of ChangeEvents.
- */
-public class ChangeEventTracker implements IChangeListener {
-	public int count;
-	public ChangeEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners.  Can be null.
-	 */
-	public final List queue;
-
-	public ChangeEventTracker() {
-		queue = null;
-	}
-
-	public ChangeEventTracker(List notificationQueue) {
-		this.queue = notificationQueue;
-	}
-
-	public void handleChange(ChangeEvent event) {
-		count++;
-		this.event = event;
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static ChangeEventTracker observe(IObservable observable) {
-		ChangeEventTracker tracker = new ChangeEventTracker();
-		observable.addChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java
deleted file mode 100644
index 7cddbed..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/CurrentRealm.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Hall - bug 268688
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Allows for the toggling of the current status of the realm. The
- * asyncExec(...) implementations do nothing.
- * 
- * @since 3.2
- */
-public class CurrentRealm extends Realm {
-	private boolean current;
-	private List queue = new LinkedList();
-
-	public CurrentRealm() {
-		this(false);
-	}
-
-	public CurrentRealm(boolean current) {
-		this.current = current;
-	}
-
-	public boolean isCurrent() {
-		return current;
-	}
-
-	public void setCurrent(boolean current) {
-		this.current = current;
-		processTasks();
-	}
-
-	protected void syncExec(Runnable runnable) {
-		super.syncExec(runnable);
-	}
-
-	private void processTasks() {
-		if (isCurrent()) {
-			for (Iterator it = queue.iterator(); it.hasNext();) {
-				Runnable task = (Runnable) it.next();
-				it.remove();
-				safeRun(task);
-			}
-		}
-	}
-
-	public void asyncExec(Runnable runnable) {
-		queue.add(runnable);
-	}
-
-	protected static Realm setDefault(Realm realm) {
-		return Realm.setDefault(realm);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java
deleted file mode 100644
index 229d5fc..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DelegatingRealm.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import org.eclipse.core.databinding.observable.Realm;
-
-/**
- * Realm that will delegate to another for all operations except calls to
- * {@link #isCurrent()}. The current status can be set by the consumer to
- * enable testing of realm checks.
- * 
- * @since 3.2
- */
-public class DelegatingRealm extends CurrentRealm {
-	private Realm realm;
-
-	public DelegatingRealm(Realm realm) {
-		this.realm = realm;
-	}
-
-	protected void syncExec(Runnable runnable) {
-		realm.exec(runnable);
-	}
-
-	public void asyncExec(Runnable runnable) {
-		realm.asyncExec(runnable);
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DisposeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DisposeEventTracker.java
deleted file mode 100644
index 130acef..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/DisposeEventTracker.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Matthew Hall and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Matthew Hall - initial API and implementation (bug 146397)
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.DisposeEvent;
-import org.eclipse.core.databinding.observable.IDisposeListener;
-import org.eclipse.core.databinding.observable.IObservable;
-
-/**
- * Listener for tracking the firing of DisposeEvents.
- */
-public class DisposeEventTracker implements IDisposeListener {
-	public int count;
-	public DisposeEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners. Can be
-	 * null.
-	 */
-	public final List queue;
-
-	public DisposeEventTracker() {
-		queue = null;
-	}
-
-	public DisposeEventTracker(List notificationQueue) {
-		this.queue = notificationQueue;
-	}
-
-	public void handleDispose(DisposeEvent event) {
-		count++;
-		this.event = event;
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static DisposeEventTracker observe(IObservable observable) {
-		DisposeEventTracker tracker = new DisposeEventTracker();
-		observable.addDisposeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java
deleted file mode 100644
index da2a263..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ListChangeEventTracker.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.list.IListChangeListener;
-import org.eclipse.core.databinding.observable.list.IObservableList;
-import org.eclipse.core.databinding.observable.list.ListChangeEvent;
-
-/**
- * Listener for tracking the firing of ListChangeEvents.
- */
-public class ListChangeEventTracker implements IListChangeListener {
-	public int count;
-
-	public ListChangeEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners.
-	 */
-	public final List listenerQueue;
-
-	public ListChangeEventTracker() {
-		this(null);
-	}
-
-	public ListChangeEventTracker(List listenerQueue) {
-		this.listenerQueue = listenerQueue;
-	}
-
-	public void handleListChange(ListChangeEvent event) {
-		count++;
-		this.event = event;
-		if (listenerQueue != null) {
-			listenerQueue.add(this);
-		}
-	}
-	
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static ListChangeEventTracker observe(IObservableList observable) {
-		ListChangeEventTracker tracker = new ListChangeEventTracker();
-		observable.addListChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java
deleted file mode 100644
index 52e87e9..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/MapChangeEventTracker.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.map.IMapChangeListener;
-import org.eclipse.core.databinding.observable.map.IObservableMap;
-import org.eclipse.core.databinding.observable.map.MapChangeEvent;
-
-/**
- * Listener for tracking the firing of ChangeEvents.
- */
-public class MapChangeEventTracker implements IMapChangeListener {
-	public int count;
-
-	public MapChangeEvent event;
-
-	public List queue;
-	
-	public MapChangeEventTracker() {
-		this(null);
-	}
-	
-	public MapChangeEventTracker(List queue) {
-		this.queue = queue;
-	}
-
-	public void handleMapChange(MapChangeEvent event) {
-		count++;
-		this.event = event;
-		
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-	
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static MapChangeEventTracker observe(IObservableMap observable) {
-		MapChangeEventTracker tracker = new MapChangeEventTracker();
-		observable.addMapChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java
deleted file mode 100644
index 1bdc799..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/RealmTester.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.util;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.runtime.AssertionFailedException;
-
-/**
- * Aids in the testing of Realms.
- * 
- * @since 3.2
- */
-public class RealmTester {
-
-	/**
-	 * Sets the default realm without using Realm.runWithDefault() for testing
-	 * purposes.
-	 * 
-	 * @param realm
-	 */
-	public static void setDefault(Realm realm) {
-		CurrentRealm.setDefault(realm);
-	}
-
-	/**
-	 * Runs the provided <code>runnable</code> when the realm is both current
-	 * and not current. It checks for AssertionFailedExceptions and if an
-	 * exception occurs or doesn't occur as expected the test fails. The realm
-	 * of an observable created before the method was invoked must be of type
-	 * {@link CurrentRealm}. The default realm during the runnable invocation
-	 * is set to an instance of {@link CurrentRealm} when the runnable is
-	 * invoked.
-	 * 
-	 * @param runnable
-	 */
-	public static void exerciseCurrent(Runnable runnable) {
-		CurrentRealm previousRealm = (CurrentRealm) Realm.getDefault();
-		CurrentRealm realm = new CurrentRealm();
-		setDefault(realm);
-
-		try {
-			realm.setCurrent(true);
-			if (previousRealm != null) {
-				previousRealm.setCurrent(true);
-			}
-
-			try {
-				runnable.run();
-			} catch (AssertionFailedException e) {
-				Assert
-						.fail("Correct realm, exception should not have been thrown");
-			}
-
-			realm.setCurrent(false);
-			if (previousRealm != null) {
-				previousRealm.setCurrent(false);
-			}
-
-			try {
-				runnable.run();
-				Assert
-						.fail("Incorrect realm, exception should have been thrown");
-			} catch (AssertionFailedException e) {
-			}
-		} finally {
-			setDefault(previousRealm);
-		}
-	}
-
-	/**
-	 * Runs the provided <code>runnable</code> when the realm is both current
-	 * and not current. It checks for AssertionFailedExceptions and if an
-	 * exception occurs or doesn't occur as expected the test fails.
-	 * 
-	 * @param runnable
-	 * @param realm
-	 */
-	public static void exerciseCurrent(Runnable runnable, CurrentRealm realm) {
-		realm.setCurrent(true);
-
-		try {
-			runnable.run();
-		} catch (AssertionFailedException e) {
-			Assert.fail("Correct realm, exception should not have been thrown");
-		}
-
-		realm.setCurrent(false);
-
-		try {
-			runnable.run();
-			Assert.fail("Incorrect realm, exception should have been thrown");
-		} catch (AssertionFailedException e) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java
deleted file mode 100644
index 9de2f88..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SetChangeEventTracker.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.set.ISetChangeListener;
-import org.eclipse.core.databinding.observable.set.SetChangeEvent;
-
-public class SetChangeEventTracker implements ISetChangeListener {
-	public int count;
-
-	public SetChangeEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners.
-	 */
-	public final List listenerQueue;
-
-	public SetChangeEventTracker() {
-		this(null);
-	}
-
-	public SetChangeEventTracker(List notificationQueue) {
-		this.listenerQueue = notificationQueue;
-	}
-
-	public void handleSetChange(SetChangeEvent event) {
-		count++;
-		this.event = event;
-		if (listenerQueue != null) {
-			listenerQueue.add(this);
-		}
-	}
-	
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static SetChangeEventTracker observe(IObservableSet observable) {
-		SetChangeEventTracker tracker = new SetChangeEventTracker();
-		observable.addSetChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/StaleEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/StaleEventTracker.java
deleted file mode 100644
index b10c1e2..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/StaleEventTracker.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Ovidio Mallo - bug 242166
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.IObservable;
-import org.eclipse.core.databinding.observable.IStaleListener;
-import org.eclipse.core.databinding.observable.StaleEvent;
-
-/**
- * Listener for tracking the firing of StaleEvents.
- * @since 1.1
- */
-public class StaleEventTracker implements IStaleListener {
-	public int count;
-
-	public StaleEvent event;
-
-	/**
-	 * Queue that the listener will add itself too when it is notified of an
-	 * event. Used to determine order of notifications of listeners. Can be
-	 * null.
-	 */
-	public final List queue;
-
-	public StaleEventTracker() {
-		this(null);
-	}
-
-	public StaleEventTracker(List notificationQueue) {
-		this.queue = notificationQueue;
-	}
-
-	public void handleStale(StaleEvent event) {
-		count++;
-		this.event = event;
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static StaleEventTracker observe(IObservable observable) {
-		StaleEventTracker tracker = new StaleEventTracker();
-		observable.addStaleListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java
deleted file mode 100644
index 46491e1..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/SuiteBuilder.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 Brad Reynolds and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Brad Reynolds - initial API and implementation
- *     Matthew Hall - bug 208322
- ******************************************************************************/
-
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-
-import org.eclipse.jface.databinding.conformance.delegate.IObservableContractDelegate;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Builds a test suite.
- * 
- * @since 1.1
- */
-public class SuiteBuilder {
-	private LinkedHashSet content;
-
-	public SuiteBuilder() {
-		content = new LinkedHashSet();
-	}
-
-	/**
-	 * Adds all test methods from the provided <code>testCase</code> to the
-	 * suite.
-	 * 
-	 * @param testCase
-	 * @return builder
-	 */
-	public SuiteBuilder addTests(Class testCase) {
-		content.add(testCase);
-		return this;
-	}
-
-	/**
-	 * Adds all test methods from the provided <code>testCase</code> with the
-	 * provided <code>parameters</code>. A constructor must exist in the
-	 * testCase that accepts a String as the first parameter followed by
-	 * parameters matching the provided parameters. If an appropriate
-	 * constructor is not found an exception will be thrown.
-	 * 
-	 * @param testCase
-	 * @param parameters
-	 * @return builder
-	 */
-	public SuiteBuilder addParameterizedTests(Class testCase,
-			Object[] parameters) {
-
-		Constructor constructor = findConstructor(testCase, parameters);
-		if (constructor == null) {
-			throw new IllegalArgumentException(
-					"The parameters provided don't match a constructor found in ["
-							+ testCase.getName() + "]");
-		}
-
-		content.add(new ParameterizedTest(testCase, constructor, parameters));
-
-		return this;
-	}
-
-	/**
-	 * Convenience method for invoking
-	 * {@link #addParameterizedTests(Class, Object[])} with a delegate.
-	 * 
-	 * @param testCase
-	 * @param delegate
-	 * @return builder
-	 */
-	public SuiteBuilder addObservableContractTest(Class testCase,
-			IObservableContractDelegate delegate) {
-
-		addParameterizedTests(testCase, new Object[] {delegate});
-		return this;
-	}
-
-	/**
-	 * Builds a new TestSuite out of the tests.
-	 * 
-	 * @return suite
-	 */
-	public TestSuite build() {
-		TestSuite suite = new TestSuite();
-
-		for (Iterator it = content.iterator(); it.hasNext();) {
-			Object o = it.next();
-			if (o instanceof Class) {
-				suite.addTestSuite((Class) o);
-			} else if (o instanceof ParameterizedTest) {
-				ParameterizedTest test = (ParameterizedTest) o;
-
-				// Outer test named for parameterized test class
-				TestSuite testClassSuite = new TestSuite();
-				testClassSuite.setName(test.testClass.getName());
-
-				// Inner test named for parameter
-				TestSuite parameterSuite = new TestSuite();
-				parameterSuite.setName(test.parameters[0].getClass().getName());
-				testClassSuite.addTest(parameterSuite);
-
-				Method[] methods = test.testClass.getMethods();
-				for (int i = 0; i < methods.length; i++) {
-					String name = methods[i].getName();
-					if (name.startsWith("test")) {
-						try {
-							parameterSuite.addTest((Test) test.constructor
-									.newInstance(toParamArray(name,
-											test.parameters)));
-						} catch (Exception e) {
-							throw new RuntimeException(e);
-						}
-					}
-				}
-
-				if (testClassSuite.countTestCases() > 0)
-					suite.addTest(testClassSuite);
-			}
-		}
-
-		return suite;
-	}
-
-	private Object[] toParamArray(String testName, Object[] parameters) {
-		Object[] result = new Object[parameters.length + 1];
-		result[0] = testName;
-		System.arraycopy(parameters, 0, result, 1, parameters.length);
-		return result;
-	}
-
-	/**
-	 * Returns the constructor that has a String as the first parameters and
-	 * then matches the type of the parameters.
-	 * @param clazz 
-	 * @param parameters
-	 * @return constructor
-	 */
-	private static Constructor findConstructor(Class clazz, Object[] parameters) {
-		Constructor[] constructors = clazz.getConstructors();
-		int expectedParametersLength = parameters.length + 1;
-
-		for (int i = 0; i < constructors.length; i++) {
-			Constructor constructor = constructors[i];
-			Class[] types = constructor.getParameterTypes();
-
-			if (types.length != expectedParametersLength
-					|| !String.class.equals(types[0])) {
-				continue;
-			}
-
-			boolean skip = false;
-			for (int j = 1; j < types.length; j++) {
-				Class type = types[j];
-				if (!type.isInstance(parameters[j - 1])) {
-					skip = true;
-					break;
-				}
-			}
-
-			if (!skip) {
-				return constructor;
-			}
-		}
-
-		return null;
-	}
-
-	/* package */static class ParameterizedTest {
-		final Constructor constructor;
-
-		final Object[] parameters;
-
-		private Class testClass;
-
-		ParameterizedTest(Class testClass, Constructor constructor,
-				Object[] parameterss) {
-			this.testClass = testClass;
-			this.constructor = constructor;
-			this.parameters = parameterss;
-		}
-	}
-}
diff --git a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.java b/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.java
deleted file mode 100644
index b54bd14..0000000
--- a/tests/org.eclipse.jface.tests.databinding.conformance/src/org/eclipse/jface/databinding/conformance/util/ValueChangeEventTracker.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.databinding.conformance.util;
-
-import java.util.List;
-
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-
-/**
- * Listener for tracking the firing of ValueChangeEvents.
- */
-public class ValueChangeEventTracker implements IValueChangeListener {
-	public int count;
-
-	public ValueChangeEvent event;
-
-	public final List queue;
-
-	public ValueChangeEventTracker() {
-		this(null);
-	}
-
-	public ValueChangeEventTracker(List queue) {
-		this.queue = queue;
-	}
-
-	public void handleValueChange(ValueChangeEvent event) {
-		count++;
-		this.event = event;
-
-		if (queue != null) {
-			queue.add(this);
-		}
-	}
-
-	/**
-	 * Convenience method to register a new listener.
-	 * 
-	 * @param observable
-	 * @return tracker
-	 */
-	public static ValueChangeEventTracker observe(IObservableValue observable) {
-		ValueChangeEventTracker tracker = new ValueChangeEventTracker();
-		observable.addValueChangeListener(tracker);
-		return tracker;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.browser/.classpath b/tests/org.eclipse.ui.tests.browser/.classpath
deleted file mode 100644
index 275b34c..0000000
--- a/tests/org.eclipse.ui.tests.browser/.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/tests/org.eclipse.ui.tests.browser/.cvsignore b/tests/org.eclipse.ui.tests.browser/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/tests/org.eclipse.ui.tests.browser/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/.options b/tests/org.eclipse.ui.tests.browser/.options
deleted file mode 100644
index 3481178..0000000
--- a/tests/org.eclipse.ui.tests.browser/.options
+++ /dev/null
@@ -1,4 +0,0 @@
-# Debugging options for the org.eclipse.ui.browser plugin.
-
-# Turn on debugging for the org.eclipse.ui.browser plugin.
-org.eclipse.ui.browser/debug=false
diff --git a/tests/org.eclipse.ui.tests.browser/.project b/tests/org.eclipse.ui.tests.browser/.project
deleted file mode 100644
index 8a25b7f..0000000
--- a/tests/org.eclipse.ui.tests.browser/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.browser</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/tests/org.eclipse.ui.tests.browser/about.html b/tests/org.eclipse.ui.tests.browser/about.html
deleted file mode 100644
index 6f6b96c..0000000
--- a/tests/org.eclipse.ui.tests.browser/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/tests/org.eclipse.ui.tests.browser/build.properties b/tests/org.eclipse.ui.tests.browser/build.properties
deleted file mode 100644
index 642090b..0000000
--- a/tests/org.eclipse.ui.tests.browser/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-bin.includes = icons/,\
-               plugin.properties,\
-               plugin.xml,\
-               about.html,\
-               .,\
-               browser.jar,\
-               test.xml
-src.includes = about.html
-jars.compile.order = browser.jar
-source.browser.jar = src/
-output.browser.jar = bin/
diff --git a/tests/org.eclipse.ui.tests.browser/plugin.xml b/tests/org.eclipse.ui.tests.browser/plugin.xml
deleted file mode 100644
index d59b7ae..0000000
--- a/tests/org.eclipse.ui.tests.browser/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.ui.tests.browser"
-   name="%Plugin.name"
-   version="3.1.0"
-   provider-name="%Plugin.providerName"
-   class="org.eclipse.ui.tests.browser.internal.WebBrowserTestsPlugin">
-
-   <runtime>
-      <library name="browser.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-
-   <requires>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.junit"/>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.ui.browser"/>
-   </requires>
-
-</plugin>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/AllTests.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/AllTests.java
deleted file mode 100644
index 87abaf7..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/AllTests.java
+++ /dev/null
@@ -1,31 +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.tests.browser.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests {
-	public static Test suite() {
-		TestSuite suite = new TestSuite("Tests for org.eclipse.ui.browser.tests");
-		//$JUnit-BEGIN$
-		suite.addTestSuite(ExistenceTestCase.class);
-		suite.addTestSuite(InternalBrowserViewTestCase.class);
-		suite.addTestSuite(InternalBrowserEditorTestCase.class);
-		//suite.addTestSuite(ExternalBrowserTestCase.class);
-		
-		suite.addTestSuite(DialogsTestCase.class);
-		suite.addTestSuite(PreferencesTestCase.class);
-		suite.addTestSuite(ToolbarBrowserTestCase.class);
-		//$JUnit-END$
-		return suite;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/DialogsTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/DialogsTestCase.java
deleted file mode 100644
index 27bf329..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/DialogsTestCase.java
+++ /dev/null
@@ -1,28 +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.tests.browser.internal;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.browser.BrowserDescriptorDialog;
-
-import junit.framework.TestCase;
-
-public class DialogsTestCase extends TestCase {
-	private Shell getShell() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-	}
-
-	public void testExternalBrowserDialog() {
-		BrowserDescriptorDialog bdd = new BrowserDescriptorDialog(getShell());
-		UITestHelper.assertDialog(bdd);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExistenceTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExistenceTestCase.java
deleted file mode 100644
index c385ad5..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExistenceTestCase.java
+++ /dev/null
@@ -1,21 +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.tests.browser.internal;
-
-import org.eclipse.ui.internal.browser.WebBrowserUIPlugin;
-
-import junit.framework.TestCase;
-
-public class ExistenceTestCase extends TestCase {
-	public void testPluginExists() {
-		assertNotNull(WebBrowserUIPlugin.getInstance());
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExternalBrowserTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExternalBrowserTestCase.java
deleted file mode 100644
index 64df756..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ExternalBrowserTestCase.java
+++ /dev/null
@@ -1,51 +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.tests.browser.internal;
-
-import java.net.URL;
-
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.internal.browser.WebBrowserPreference;
-
-import junit.framework.TestCase;
-
-public class ExternalBrowserTestCase extends TestCase {
-	public void testBrowser() throws Exception {
-		WebBrowserPreference.setBrowserChoice(WebBrowserPreference.EXTERNAL);
-		IWorkbenchBrowserSupport wbs = WebBrowserTestsPlugin.getInstance().getWorkbench().getBrowserSupport();
-		IWebBrowser wb = wbs.createBrowser("test2");
-		
-		wb.openURL(new URL("http://www.ibm.com"));
-		
-		try {
-			Thread.sleep(2000);
-		} catch (Exception e) {
-			// ignore
-		}
-		
-		wb.openURL(new URL("http://www.eclipse.org"));
-		
-		try {
-			Thread.sleep(2000);
-		} catch (Exception e) {
-			// ignore
-		}
-		
-		wb.close();
-		
-		try {
-			Thread.sleep(2000);
-		} catch (Exception e) {
-			// ignore
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserEditorTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserEditorTestCase.java
deleted file mode 100644
index e6a7db1..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserEditorTestCase.java
+++ /dev/null
@@ -1,67 +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.tests.browser.internal;
-
-import java.net.URL;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.internal.browser.WebBrowserPreference;
-
-import junit.framework.TestCase;
-
-public class InternalBrowserEditorTestCase extends TestCase {
-	protected Shell shell;
-
-	public void testBrowser() throws Exception {
-		shell = WebBrowserTestsPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		WebBrowserPreference.setBrowserChoice(WebBrowserPreference.INTERNAL);
-		IWorkbenchBrowserSupport wbs = WebBrowserTestsPlugin.getInstance().getWorkbench().getBrowserSupport();
-		IWebBrowser wb = wbs.createBrowser(IWorkbenchBrowserSupport.AS_EDITOR, "test", "MyBrowser", "A tooltip");
-		
-		wb.openURL(new URL("http://www.ibm.com"));
-		runLoopTimer(2);
-		
-		wb.openURL(new URL("http://www.eclipse.org"));
-		runLoopTimer(2);
-		
-		wb.close();
-		runLoopTimer(2);
-	}
-	
-	void runLoopTimer(final int seconds) {
-		final boolean[] exit = {false};
-		new Thread() {
-			public void run() {
-				try {
-					Thread.sleep(seconds * 1000);
-				} catch (Exception e) {
-					// ignore
-				}
-				exit[0] = true;
-				// wake up the event loop
-				Display display = Display.getDefault();
-				if (!display.isDisposed()) {
-					display.asyncExec(new Runnable() {
-						public void run() {
-							if (!shell.isDisposed()) shell.redraw();						
-						}
-					});
-				}
-			}
-		}.start();
-		shell.open();
-		Display display = Display.getCurrent();
-		while (!exit[0] && !shell.isDisposed()) if (!display.readAndDispatch()) display.sleep();
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java
deleted file mode 100644
index 5a90c56..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/InternalBrowserViewTestCase.java
+++ /dev/null
@@ -1,67 +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.tests.browser.internal;
-
-import java.net.URL;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.browser.IWebBrowser;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-import org.eclipse.ui.internal.browser.WebBrowserPreference;
-
-import junit.framework.TestCase;
-
-public class InternalBrowserViewTestCase extends TestCase {
-	protected Shell shell;
-
-	public void testBrowser() throws Exception {
-		shell = WebBrowserTestsPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		WebBrowserPreference.setBrowserChoice(WebBrowserPreference.INTERNAL);
-		IWorkbenchBrowserSupport wbs = WebBrowserTestsPlugin.getInstance().getWorkbench().getBrowserSupport();
-		IWebBrowser wb = wbs.createBrowser(IWorkbenchBrowserSupport.AS_VIEW, "test3", "MyBrowser", "A tooltip");
-		
-		wb.openURL(new URL("http://www.ibm.com"));
-		runLoopTimer(2);
-		
-		wb.openURL(new URL("http://www.eclipse.org"));
-		runLoopTimer(2);
-		
-		wb.close();
-		runLoopTimer(2);
-	}
-	
-	void runLoopTimer(final int seconds) {
-		final boolean[] exit = {false};
-		new Thread() {
-			public void run() {
-				try {
-					Thread.sleep(seconds * 1000);
-				} catch (Exception e) {
-					// ignore
-				}
-				exit[0] = true;
-				// wake up the event loop
-				Display display = Display.getDefault();
-				if (!display.isDisposed()) {
-					display.asyncExec(new Runnable() {
-						public void run() {
-							if (!shell.isDisposed()) shell.redraw();						
-						}
-					});
-				}
-			}
-		}.start();
-		shell.open();
-		Display display = Display.getCurrent();
-		while (!exit[0] && !shell.isDisposed()) if (!display.readAndDispatch()) display.sleep();
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/OrderedTestSuite.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/OrderedTestSuite.java
deleted file mode 100644
index 491d8fe..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/OrderedTestSuite.java
+++ /dev/null
@@ -1,94 +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.tests.browser.internal;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
-import java.util.Vector;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-class OrderedTestSuite extends TestSuite{
-	public OrderedTestSuite(Class theClass, String name) {
-		this(theClass);
-		setName(name);
-	}
-
-	public OrderedTestSuite(final Class theClass) {
-		super();
-		setName(theClass.getName());
-		try {
-			getTestConstructor(theClass); // Avoid generating multiple error messages
-		} catch (NoSuchMethodException e) {
-			addTest(warning("Class " + theClass.getName()
-					+ " has no public constructor TestCase(String name) or TestCase()"));
-			return;
-		}
-		if (!Modifier.isPublic(theClass.getModifiers())) {
-			addTest(warning("Class " + theClass.getName() + " is not public"));
-			return;
-		}
-		Class superClass = theClass;
-		Vector names = new Vector();
-		while (Test.class.isAssignableFrom(superClass)) {
-			Method[] methods = superClass.getDeclaredMethods();
-			int size = methods.length;
-			for (int i = 0; i < size - 1; i++) {
-				for (int j = i + 1; j < size; j++) {
-					if (methods[i].getName().compareTo(methods[j].getName()) > 0) {
-						Method m = methods[i];
-						methods[i] = methods[j];
-						methods[j] = m;
-					}
-				}
-			}
-			for (int i = 0; i < size; i++) {
-				addTestMethod(methods[i], names, theClass);
-			}
-			superClass = superClass.getSuperclass();
-		}
-		if (!tests().hasMoreElements())
-			addTest(warning("No tests found in " + theClass.getName()));
-	}
-
-	private void addTestMethod(Method m, Vector names, Class theClass) {
-		String name = m.getName();
-		if (names.contains(name))
-			return;
-		if (!isPublicTestMethod(m)) {
-			if (isTestMethod(m))
-				addTest(warning("Test method isn't public: " + m.getName()));
-			return;
-		}
-		names.addElement(name);
-		addTest(createTest(theClass, name));
-	}
-
-	private boolean isPublicTestMethod(Method m) {
-		return isTestMethod(m) && Modifier.isPublic(m.getModifiers());
-	}
-
-	private boolean isTestMethod(Method m) {
-		String name = m.getName();
-		Class[] parameters = m.getParameterTypes();
-		Class returnType = m.getReturnType();
-		return parameters.length == 0 && name.startsWith("test") && returnType.equals(Void.TYPE);
-	}
-
-	private Test warning(final String message) {
-		return new TestCase("warning") {
-			protected void runTest() {
-				fail(message);
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/PreferencesTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/PreferencesTestCase.java
deleted file mode 100644
index 262d273..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/PreferencesTestCase.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.tests.browser.internal;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.dialogs.Dialog;
-
-public class PreferencesTestCase extends TestCase {
-	public static Test suite() {
-		return new TestSuite(PreferencesTestCase.class);
-	}
-
-	public PreferencesTestCase(String name) {
-		super(name);
-	}
-
-	public void testInternetPreferencePage() {
-		Dialog dialog = UITestHelper.getPreferenceDialog("org.eclipse.internet");
-		UITestHelper.assertDialog(dialog);
-	}
-
-	public void testWebBrowserPreferencePage() {
-		Dialog dialog = UITestHelper.getPreferenceDialog("org.eclipse.wst.internet.webbrowser.preferencePage");
-		UITestHelper.assertDialog(dialog);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ToolbarBrowserTestCase.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ToolbarBrowserTestCase.java
deleted file mode 100644
index 5eb9f1f..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/ToolbarBrowserTestCase.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.tests.browser.internal;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import org.eclipse.jface.dialogs.Dialog;
-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.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.browser.BrowserViewer;
-
-public class ToolbarBrowserTestCase extends TestCase {
-	protected static Dialog dialog;
-	protected static Shell shell;
-	protected static BrowserViewer browser;
-	
-	class TestToolbarBrowser extends BrowserViewer {
-
-		public TestToolbarBrowser(Composite parent, int style) {
-			super(parent, style);
-		}
-		
-		public void testProtectedMethods() {
-			super.addToHistory("www.eclispe.org");
-			super.updateBackNextBusy();
-			super.updateHistory();
-			super.updateLocation();
-		}
-	}
-	
-	public static Test suite() {
-		return new OrderedTestSuite(ToolbarBrowserTestCase.class, "ToolbarBrowserTestCase");
-	}
-
-	public void test00Open() throws Exception {
-		shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-		dialog = new Dialog(shell) {
-			protected Control createDialogArea(Composite parent) {
-				Composite composite = (Composite) super.createDialogArea(parent);
-				
-				browser = new BrowserViewer(composite, BrowserViewer.LOCATION_BAR | BrowserViewer.BUTTON_BAR);
-				GridData data = new GridData(GridData.FILL_BOTH);
-				data.widthHint = 400;
-				data.heightHint = 400;
-				browser.setLayoutData(data);
-				
-				return composite;
-			}
-		};
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-		
-		boolean b = Display.getCurrent().readAndDispatch();
-		while (b)
-			b = Display.getCurrent().readAndDispatch();
-	}
-	
-	public void test01SetURL() throws Exception {
-		runLoopTimer(5);
-		browser.setURL("http://www.eclipse.org");
-		runLoopTimer(10);
-	}
-
-	public void test02Home() throws Exception {
-		browser.home();
-		runLoopTimer(2);
-	}
-
-	public void test03SetURL() throws Exception {
-		browser.setURL("http://www.eclipse.org/webtools/index.html");
-		runLoopTimer(10);
-	}
-
-	public void test04IsBackEnabled() throws Exception {
-		assertTrue(browser.isBackEnabled());
-	}
-
-	public void test05Back() throws Exception {
-		assertTrue(browser.back());
-		runLoopTimer(5);
-	}
-	
-	public void test06IsForwardEnabled() throws Exception {
-		assertTrue(browser.isForwardEnabled());
-	}
-
-	public void test07Forward() throws Exception {
-		assertTrue(browser.forward());
-		runLoopTimer(5);
-	}
-	
-	public void test08Refresh() throws Exception {
-		browser.refresh();
-	}
-	
-	public void test09GetBrowser() throws Exception {
-		assertNotNull(browser.getBrowser());
-	}
-	
-	public void test10Stop() throws Exception {
-		browser.stop();
-	}
-
-	public void test11GetURL() throws Exception {
-		assertNotNull(browser.getURL());
-	}
-
-	public void test12SetFocus() throws Exception {
-		browser.setFocus();
-	}
-
-	public void test13Close() throws Exception {
-		dialog.close();
-	}
-	
-	TestToolbarBrowser ttb = null;
-	
-	public void test14ProtectedMethods() {
-		shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-		dialog = new Dialog(shell) {
-			protected Control createDialogArea(Composite parent) {
-				Composite composite = (Composite) super.createDialogArea(parent);
-				
-				ttb = new TestToolbarBrowser(composite, BrowserViewer.LOCATION_BAR | BrowserViewer.BUTTON_BAR);
-				GridData data = new GridData(GridData.FILL_BOTH);
-				data.widthHint = 400;
-				data.heightHint = 400;
-				ttb.setLayoutData(data);
-				
-				return composite;
-			}
-		};
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-		
-		ttb.testProtectedMethods();
-		dialog.close();
-	}
-	
-	public void test15Listeners() {
-		BrowserViewer.IBackNextListener listener = new BrowserViewer.IBackNextListener() {
-			public void updateBackNextBusy() {
-				// ignore
-			}
-		};
-		
-		listener.updateBackNextBusy();
-	}
-	
-	public void test16Listeners() {
-		BrowserViewer.ILocationListener listener = new BrowserViewer.ILocationListener() {
-			public void locationChanged(String url) {
-				// ignore
-			}
-
-			public void historyChanged(String[] history2) {
-				// ignore
-			}
-		};
-		
-		listener.locationChanged(null);
-		listener.historyChanged(null);
-	}
-
-	void runLoopTimer(final int seconds) {
-		final boolean[] exit = {false};
-		new Thread() {
-			public void run() {
-				try {
-					Thread.sleep(seconds * 1000);
-				} catch (Exception e) {
-					// ignore
-				}
-				exit[0] = true;
-				// wake up the event loop
-				Display display = Display.getDefault();
-				if (!display.isDisposed()) {
-					display.asyncExec(new Runnable() {
-						public void run() {
-							if (!shell.isDisposed()) shell.redraw();						
-						}
-					});
-				}
-			}
-		}.start();
-		shell.open();
-		Display display = Display.getCurrent();
-		while (!exit[0] && !shell.isDisposed()) if (!display.readAndDispatch()) display.sleep();
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/UITestHelper.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/UITestHelper.java
deleted file mode 100644
index 3966b1e..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/UITestHelper.java
+++ /dev/null
@@ -1,243 +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.tests.browser.internal;
-
-import java.text.MessageFormat;
-import java.util.Iterator;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IAdaptable;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-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.Shell;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.PropertyDialog;
-import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager;
-import org.eclipse.ui.internal.dialogs.PropertyPageManager;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public class UITestHelper {
-	private static class PreferenceDialogWrapper extends PreferenceDialog {
-		public PreferenceDialogWrapper(Shell parentShell, PreferenceManager manager) {
-			super(parentShell, manager);
-		}
-		protected boolean showPage(IPreferenceNode node) {
-			return super.showPage(node);
-		}
-	}
-	
-	private static class PropertyDialogWrapper extends PropertyDialog {
-		public PropertyDialogWrapper(Shell parentShell, PreferenceManager manager, ISelection selection) {
-			super(parentShell, manager, selection);
-		}
-		protected boolean showPage(IPreferenceNode node) {
-			return super.showPage(node);
-		}
-	}
-
-	protected static Shell getShell() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-	}
-
-	public static PreferenceDialog getPreferenceDialog(String id) {
-		PreferenceDialogWrapper dialog = null;
-		PreferenceManager manager = WorkbenchPlugin.getDefault().getPreferenceManager();
-		if (manager != null) {
-			dialog = new PreferenceDialogWrapper(getShell(), manager);
-			dialog.create();	
-
-			for (Iterator iterator = manager.getElements(PreferenceManager.PRE_ORDER).iterator();
-			     iterator.hasNext();)
-			{
-				IPreferenceNode node = (IPreferenceNode)iterator.next();
-				if ( node.getId().equals(id) ) {
-					dialog.showPage(node);
-					break;
-				}
-			}
-		}
-		return dialog;
-	}
-	
-	public static PropertyDialog getPropertyDialog(String id, IAdaptable element) {
-		PropertyDialogWrapper dialog = null;
-
-		PropertyPageManager manager = new PropertyPageManager();
-		String title = "";
-		String name  = "";
-
-		// load pages for the selection
-		// fill the manager with contributions from the matching contributors
-		PropertyPageContributorManager.getManager().contribute(manager, element);
-		
-		IWorkbenchAdapter adapter = (IWorkbenchAdapter)element.getAdapter(IWorkbenchAdapter.class);
-		if (adapter != null) {
-			name = adapter.getLabel(element);
-		}
-		
-		// testing if there are pages in the manager
-		Iterator pages = manager.getElements(PreferenceManager.PRE_ORDER).iterator();		
-		if (!pages.hasNext())
-			return null;
-		
-		title = MessageFormat.format("PropertyDialog.propertyMessage", new Object[] {name});
-		dialog = new PropertyDialogWrapper(getShell(), manager, new StructuredSelection(element)); 
-		dialog.create();
-		dialog.getShell().setText(title);
-		for (Iterator iterator = manager.getElements(PreferenceManager.PRE_ORDER).iterator();
-		     iterator.hasNext();) {
-			IPreferenceNode node = (IPreferenceNode)iterator.next();
-			if ( node.getId().equals(id) ) {
-				dialog.showPage(node);
-				break;
-			}
-		}
-		return dialog;
-	}
-	
-	/**
-	 * Automated test that checks all the labels and buttons of a dialog
-	 * to make sure there is enough room to display all the text.  Any
-	 * text that wraps is only approximated and is currently not accurate.
-	 * 
-	 * @param dialog the test dialog to be verified.
-	 */
-	public static void assertDialog(Dialog dialog) {
-		Assert.assertNotNull(dialog);
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-		Shell shell = dialog.getShell();
-		verifyCompositeText(shell);
-		dialog.close();
-	}
-
-	/*
-	 * Looks at all the child widgets of a given composite and
-	 * verifies the text on all labels and widgets.
-	 * @param composite The composite to look through
-	 */
-	private static void verifyCompositeText(Composite composite) {
-		Control children[] = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			try {
-				//verify the text if the child is a button
-				verifyButtonText((Button) children[i]);
-			} catch (ClassCastException exNotButton) {
-				try {
-					//child is not a button, maybe a label
-					verifyLabelText((Label) children[i]);
-				} catch (ClassCastException exNotLabel) {
-					try {
-						//child is not a label, make a recursive call if it is a composite
-						verifyCompositeText((Composite) children[i]);
-					} catch (ClassCastException exNotComposite) {
-						//the child is not a button, label, or composite - ignore it.
-					}
-				}
-			}
-		}
-	}
-	
-	/*
-	 * Verifies that a given button is large enough to display its text.
-	 * @param button The button to verify,
-	 */
-	private static void verifyButtonText(Button button) {
-		String widget = button.toString();
-		Point size = button.getSize();
-
-		// compute the size with no line wrapping
-		Point preferred = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		//if (size.y/preferred.y) == X, then label spans X lines, so divide
-		//the calculated value of preferred.x by X
-		if (preferred.y * size.y > 0) {
-			preferred.y /= countLines(button.getText()); //check for '\n\'
-			if (size.y / preferred.y > 1) {
-				preferred.x /= (size.y / preferred.y);
-			}
-		}
-
-		String message =
-			new StringBuffer("Warning: ")
-				.append(widget)
-				.append("\n\tActual Width -> ")
-				.append(size.x)
-				.append("\n\tRecommended Width -> ")
-				.append(preferred.x)
-				.toString();
-		if (preferred.x > size.x) {
-			//close the dialog
-			button.getShell().dispose();
-			Assert.assertTrue(message.toString(), false);
-		}
-	}
-	
-	/*
-	 * Verifies that a given label is large enough to display its text.
-	 * @param label The label to verify,
-	 */
-	private static void verifyLabelText(Label label) {
-		String widget = label.toString();
-		Point size = label.getSize();
-
-		// compute the size with no line wrapping
-		Point preferred = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		//if (size.y/preferred.y) == X, then label spans X lines, so divide
-		//the calculated value of preferred.x by X
-		if (preferred.y * size.y > 0) {
-			preferred.y /= countLines(label.getText());
-			if (size.y / preferred.y > 1) {
-				preferred.x /= (size.y / preferred.y);
-			}
-		}
-		String message = new StringBuffer("Warning: ").append(widget)
-			.append("\n\tActual Width -> ").append(size.x)
-			.append("\n\tRecommended Width -> ").append(preferred.x).toString();
-		if (preferred.x > size.x) {
-			//close the dialog
-			label.getShell().dispose();
-			Assert.assertTrue(message.toString(), false);
-		}
-	}
-	
-	/*
-	 * Counts the number of lines in a given String.
-	 * For example, if a string contains one (1) newline character,
-	 * a value of two (2) would be returned.
-	 * @param text The string to look through.
-	 * @return int the number of lines in text.
-	 */
-	private static int countLines(String text) {
-		int newLines = 1;
-		for (int i = 0; i < text.length(); i++) {
-			if (text.charAt(i) == '\n') {
-				newLines++;
-			}
-		}
-		return newLines;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/WebBrowserTestsPlugin.java b/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/WebBrowserTestsPlugin.java
deleted file mode 100644
index e566b7c..0000000
--- a/tests/org.eclipse.ui.tests.browser/src/org/eclipse/ui/tests/browser/internal/WebBrowserTestsPlugin.java
+++ /dev/null
@@ -1,40 +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.tests.browser.internal;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-/**
- * The web browser tests plugin class.
- */
-public class WebBrowserTestsPlugin extends AbstractUIPlugin {
-	// Web browser plugin id
-	public static final String PLUGIN_ID = "org.eclipse.ui.browser.tests";
-
-	// singleton instance of this class
-	private static WebBrowserTestsPlugin singleton;
-
-	/**
-	 * Create the WebBrowserTestsPlugin
-	 */
-	public WebBrowserTestsPlugin() {
-		super();
-		singleton = this;
-	}
-
-	/**
-	 * Returns the singleton instance of this plugin.
-	 *
-	 * @return org.eclipse.ui.internal.browser.WebBrowserPlugin
-	 */
-	public static WebBrowserTestsPlugin getInstance() {
-		return singleton;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.browser/test.xml b/tests/org.eclipse.ui.tests.browser/test.xml
deleted file mode 100644
index a48251d..0000000
--- a/tests/org.eclipse.ui.tests.browser/test.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
- <!-- <property name="eclipse-home" value="${basedir}\..\.."/> -->
-	<echo message="basedir ${basedir}" />
-	<echo message="eclipse place ${eclipse-home}" />
-  <!-- sets the properties plugin-name, and library-file -->
-  <property name="plugin-name" value="org.eclipse.wst.internet.webbrowser.tests"/>
-  <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test_3.1.0/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <property name="wst-folder" value="${eclipse-home}/wst_folder"/>
-    <delete dir="${wst-folder}" quiet="true"/>
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${wst-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" value="org.eclipse.wst.internet.webbrowser.tests.AllTests" />
-   	<property name="plugin-path" value="${eclipse-home}/plugins/${plugin-name}"/>
-    </ant>
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-</project>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.forms/.classpath b/tests/org.eclipse.ui.tests.forms/.classpath
deleted file mode 100755
index d63d95a..0000000
--- a/tests/org.eclipse.ui.tests.forms/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="forms"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests.forms/.project b/tests/org.eclipse.ui.tests.forms/.project
deleted file mode 100755
index 59578af..0000000
--- a/tests/org.eclipse.ui.tests.forms/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.forms</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/tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index de9c6bf..0000000
--- a/tests/org.eclipse.ui.tests.forms/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Tue Dec 04 10:00:25 PST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF
deleted file mode 100755
index 141e3a3..0000000
--- a/tests/org.eclipse.ui.tests.forms/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Forms Test
-Bundle-SymbolicName: org.eclipse.ui.tests.forms;singleton:=true
-Bundle-Version: 3.3.200.qualifier
-Bundle-Activator: org.eclipse.ui.tests.forms.plugin.FormsTestPlugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.test.performance,
- org.eclipse.ui.forms,
- org.junit
-Eclipse-LazyStart: true
-Bundle-Vendor: Eclipse.org
-Bundle-ClassPath: forms-tests.jar
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.ui.tests.forms/about.html b/tests/org.eclipse.ui.tests.forms/about.html
deleted file mode 100755
index d42b3ce..0000000
--- a/tests/org.eclipse.ui.tests.forms/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests.forms/build.properties b/tests/org.eclipse.ui.tests.forms/build.properties
deleted file mode 100755
index 0e2ed4c..0000000
--- a/tests/org.eclipse.ui.tests.forms/build.properties
+++ /dev/null
@@ -1,17 +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
-###############################################################################
-bin.includes = forms-tests.jar,\
-               META-INF/,\
-               about.html,\
-               test.xml
-jars.compile.order = forms-tests.jar
-output.forms-tests.jar = bin/
-source.forms-tests.jar = forms/
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java
deleted file mode 100755
index 8871ee9..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsPerformanceTests.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms;
-
-import org.eclipse.ui.tests.forms.performance.FormsPerformanceTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/*
- * Tests forms performance (automated).
- */
-public class AllFormsPerformanceTests extends TestSuite {
-
-	/*
-	 * Returns the entire test suite.
-	 */
-	public static Test suite() {
-		return new AllFormsPerformanceTests();
-	}
-
-	/*
-	 * Constructs a new performance test suite.
-	 */
-	public AllFormsPerformanceTests() {
-		addTestSuite(FormsPerformanceTest.class);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java
deleted file mode 100755
index 154822a..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/AllFormsTests.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.forms.layout.AllLayoutTests;
-import org.eclipse.ui.tests.forms.util.AllUtilityTests;
-
-/*
- * Tests all cheat sheet functionality (automated).
- */
-public class AllFormsTests extends TestSuite {
-
-	/*
-	 * Returns the entire test suite.
-	 */
-	public static Test suite() {
-		return new AllFormsTests();
-	}
-
-	/*
-	 * Constructs a new test suite.
-	 */
-	public AllFormsTests() {
-		addTest(AllLayoutTests.suite());
-		addTest(AllUtilityTests.suite());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java
deleted file mode 100755
index 4f47a8f..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/AllLayoutTests.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.layout;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllLayoutTests {
-
-	public static Test suite() {
-		TestSuite suite = new TestSuite(
-				"org.eclipse.ua.tests.forms.AllLayoutTests");
-		//$JUnit-BEGIN$
-		suite.addTestSuite(TestTableWrapLayout.class);
-		//$JUnit-END$
-		return suite;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java
deleted file mode 100755
index da8ffea..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/layout/TestTableWrapLayout.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.layout;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-import junit.framework.TestCase;
-
-public class TestTableWrapLayout extends TestCase {
-
-	private final String A1 = "A";
-	private final String A10 = "A A A A A A A A A A";
-	private final String A20 = A10 + " " + A10;
-	private final String A40 = A20 + " " + A20;
-	private final String A80 = A40 + " " + A40;
-	
-	// Returns the width + left
-	private int rightEdge(Label lab) {
-		Rectangle r = lab.getBounds();
-		return r.x + r.width;
-	}
-	
-	/**
-	 * Test that labels with the WRAP property set do indeed wrap.
-	 */
-	public void testTableWrapLayoutNonWrappingLabels() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		inner.setLayout(new TableWrapLayout());
-		Label l1 = new Label(inner, SWT.NULL);
-		l1.setText(A10);
-		Label l2 = new Label(inner, SWT.NULL);
-		l2.setText(A80);
-		shell.layout();
-		assertEquals(l1.getSize().y, l2.getSize().y);
-		assertTrue(l2.getSize().x > 100);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test that labels with the WRAP property set do indeed wrap.
-	 */
-    // Test suppressed for now - does not pass but not sure if this is a bug
-	public void suppressed_testWrappingPoint() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(300, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		TableWrapLayout tableWrapLayout = new TableWrapLayout();
-		tableWrapLayout.leftMargin = 0;
-		tableWrapLayout.rightMargin = 0;
-		inner.setLayout(tableWrapLayout);
-		Label l1 = new Label(inner, SWT.WRAP);
-		l1.setText(A10);
-		shell.layout();
-		int originalWidth = l1.getSize().x;
-		int originalHeight = l1.getSize().y;
-		shell.setSize(originalWidth, 300);
-		shell.layout();
-		assertEquals(l1.getSize().y, originalHeight);
-		shell.setSize(originalWidth / 2, 300);
-		shell.layout();
-		inner.layout();
-		assertTrue(l1.getSize().y > originalHeight);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test that labels with the WRAP property set do indeed wrap.
-	 */
-	// Test suppressed for now, see Bug 196686 
-	public void suppressed_testTableWrapLayoutWrappingLabels() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		inner.setLayout(new TableWrapLayout());
-		Label l1 = new Label(inner, SWT.WRAP);
-		l1.setText(A10);
-		Label l2 = new Label(inner, SWT.WRAP);
-		l2.setText(A80);
-		shell.layout();
-		assertTrue(l1.getSize().y < l2.getSize().y);
-		assertTrue("Label is too wide for layout ", l1.getSize().x <= 100);
-		assertTrue("Label is too wide for layout ", l2.getSize().x <= 100);
-		assertTrue("Labels overlap", l2.getBounds().y >= l1.getBounds().y + l1.getBounds().height);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test a 2x2 grid with unequal sizes
-	 */
-	public void testTableWrapLayoutTwoColumnsWrappingLabels() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		TableWrapLayout tableWrapLayout = new TableWrapLayout();
-		tableWrapLayout.numColumns = 2;
-		inner.setLayout(tableWrapLayout);
-		Label l1 = new Label(inner, SWT.WRAP);
-		l1.setText(A10);
-		Label l2 = new Label(inner, SWT.WRAP);
-		l2.setText(A20);
-		Label l3 = new Label(inner, SWT.WRAP);
-		l3.setText(A40);
-		Label l4 = new Label(inner, SWT.WRAP);
-		l4.setText(A80);
-		shell.layout();
-		assertTrue(l1.getSize().x < l2.getSize().x);
-		assertTrue(l1.getSize().y < l3.getSize().y);
-		assertTrue(l1.getSize().x < l4.getSize().x);
-		assertTrue(l2.getSize().y < l3.getSize().y);
-		assertTrue("Label is too wide for layout ", l1.getSize().x + l2.getSize().x <= 100);
-		assertTrue("Labels overlap", l2.getBounds().x >= l1.getBounds().x + l1.getBounds().width);
-		assertTrue("Labels overlap", l3.getBounds().y >= l1.getBounds().y + l1.getBounds().height);
-		assertTrue("Labels overlap", l4.getBounds().x >= l3.getBounds().x + l3.getBounds().width);
-		assertTrue("Labels overlap", l4.getBounds().y >= l2.getBounds().y + l2.getBounds().height);
-		shell.dispose();
-	}
-	
-	/**
-	 * Test alignments and margins
-	 */
-	// Suppressed for now - see Bug 196686 
-	public void suppressed_testTableWrapLayoutAlignment() {
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		Shell shell = new Shell(display);
-		shell.setSize(100, 300);
-		shell.setLayout(new FillLayout());
-		Composite inner = new Composite(shell, SWT.V_SCROLL);
-		TableWrapLayout tableWrapLayout = new TableWrapLayout();
-		final int LEFT_MARGIN = 1;
-		final int RIGHT_MARGIN = 2;
-		final int TOP_MARGIN = 3;
-		final int BOTTOM_MARGIN = 4;
-		tableWrapLayout.leftMargin = LEFT_MARGIN;
-		tableWrapLayout.rightMargin = RIGHT_MARGIN;
-		tableWrapLayout.topMargin = TOP_MARGIN;
-		tableWrapLayout.bottomMargin = BOTTOM_MARGIN;
-		inner.setLayout(tableWrapLayout);
-		Label lab0 = new Label(inner, SWT.WRAP);
-		lab0.setText(A80);
-		Label labLeft = new Label(inner, SWT.NULL);
-		labLeft.setText(A1);
-		TableWrapData dataLeft = new TableWrapData();
-		dataLeft.align = TableWrapData.LEFT;
-		labLeft.setLayoutData(dataLeft);
-		Label labRight = new Label(inner, SWT.NULL);
-		labRight.setText(A1);
-		TableWrapData dataRight = new TableWrapData();
-		dataRight.align = TableWrapData.RIGHT;
-		labRight.setLayoutData(dataRight);
-		Label labCenter = new Label(inner, SWT.NULL);
-		labCenter.setText(A1);
-		TableWrapData dataCenter = new TableWrapData();
-		dataCenter.align = TableWrapData.CENTER;
-		labCenter.setLayoutData(dataCenter);
-		Label labFill = new Label(inner, SWT.NULL);
-		labFill.setText(A1);
-		TableWrapData dataFill = new TableWrapData();
-		dataFill.align = TableWrapData.FILL;
-		labFill.setLayoutData(dataFill);
-		shell.layout();
-		// Check layout
-		assertEquals(LEFT_MARGIN , labLeft.getBounds().x);
-		assertTrue(rightEdge(lab0) > rightEdge(labLeft));
-		assertTrue(rightEdge(labLeft) + tableWrapLayout.rightMargin < 100);
-		
-		assertEquals(rightEdge(labRight), rightEdge(lab0));
-		assertTrue(labRight.getBounds().x > LEFT_MARGIN);
-		
-		assertTrue(labCenter.getBounds().x > LEFT_MARGIN);
-		assertTrue(rightEdge(lab0) > rightEdge(labCenter));
-		
-		int offCenter = rightEdge(labCenter) + labCenter.getBounds().x 
-		   - rightEdge(lab0) + lab0.getBounds().x;
-		assertTrue(offCenter >= -2);
-		assertTrue(offCenter <= 2);
-		
-		assertEquals(LEFT_MARGIN , labFill.getBounds().x);
-		assertEquals(rightEdge(labFill), rightEdge(lab0));
-		shell.dispose();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java
deleted file mode 100755
index ec8a642..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/performance/FormsPerformanceTest.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.performance;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.PlatformUI;
-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.Hyperlink;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-
-public class FormsPerformanceTest extends PerformanceTestCase {
-	
-	public void test_createForm() {
-		tagAsSummary("Create Form", Dimension.ELAPSED_PROCESS);
-	    Performance.getDefault();
-		
-		// Warm up.
-
-		Display display = PlatformUI.getWorkbench().getDisplay();
-
-		FormToolkit toolkit;
-		toolkit = new FormToolkit(display);
-		for(int samples = 0; samples < 2; samples++) {
-			Shell shell = new Shell(display);
-			shell.setSize(400, 300);
-			shell.setLayout(new FillLayout());
-			shell.open();
-
-			for (int i = 0; i < 5; i++) {
-				Composite c = new Composite(shell, SWT.H_SCROLL + SWT.V_SCROLL);
-				c.setLayout(new FillLayout());
-                createPartControl(c, toolkit);
-                shell.layout(true); 
-                while(display.readAndDispatch()){/*empty*/}
-				c.dispose();
-			}
-			shell.dispose();
-			while(display.readAndDispatch()){/*empty*/}
-		}
-
-		for(int samples = 0; samples < 50; samples++) {
-			Shell shell = new Shell(display);
-			shell.setSize(400, 300);
-			shell.setLayout(new FillLayout());
-			shell.open();
-			startMeasuring();
-			for (int i = 0; i < 3; i++) {
-				Composite c = new Composite(shell, SWT.H_SCROLL + SWT.V_SCROLL);
-				c.setLayout(new FillLayout());
-                createPartControl(c, toolkit);
-                shell.layout(true);
-                while(display.readAndDispatch()){/*empty*/}
-				c.dispose();
-			}
-			stopMeasuring(); 
-			shell.dispose();
-			while(display.readAndDispatch()){/*empty*/}
-		}	
-		toolkit.dispose();
-		commitMeasurements();
-		assertPerformance();
-	}
-	
-	public void createPartControl(Composite parent, FormToolkit toolkit) {
-		//Label l = new Label(parent, SWT.NULL);
-		//l.setText ("a label");
-		ScrolledForm form;
-		form = toolkit.createScrolledForm(parent);
-		form.setText("Hello, Eclipse Forms");
-		TableWrapLayout layout = new TableWrapLayout();
-		form.getBody().setLayout(layout);
-		
-		Hyperlink link = toolkit.createHyperlink(form.getBody(), "Click here.",
-				SWT.WRAP);
-		link.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link activated!");
-			}
-		});
-		link.setText("This is an example of a form that is much longer and will need to wrap.");
-		layout.numColumns = 2;
-		TableWrapData td = new TableWrapData();
-		td.colspan = 2;
-		link.setLayoutData(td);
-		toolkit.createLabel(form.getBody(), "Text field label:");
-		Text text = toolkit.createText(form.getBody(), "");
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		text.setLayoutData(td);
-		Button button = toolkit.createButton(form.getBody(),
-				"An example of a checkbox in a form", SWT.CHECK);
-		td = new TableWrapData();
-		td.colspan = 2;
-		button.setLayoutData(td);
-		
-		ImageHyperlink ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		ih.setText("Image link with no image");
-		ih = toolkit.createImageHyperlink(form.getBody(), SWT.NULL);
-		//ih.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ih.setText("Link with image and text");
-		
-		ExpandableComposite ec = toolkit.createExpandableComposite(form.getBody(), ExpandableComposite.TREE_NODE|ExpandableComposite.CLIENT_INDENT);
-		ImageHyperlink eci = toolkit.createImageHyperlink(ec, SWT.NULL);
-		//eci.setImage(ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		ec.setTextClient(eci);
-		ec.setText("Expandable Composite title");
-		String ctext = "We will now create a somewhat long text so that "+
-		"we can use it as content for the expandable composite. "+
-		"Expandable composite is used to hide or show the text using the "+
-		"toggle control";
-		Label client = toolkit.createLabel(ec, ctext, SWT.WRAP);
-		ec.setClient(client);
-		td = new TableWrapData();
-		td.colspan = 2;
-		ec.setLayoutData(td);
-		ec.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				//form.reflow(true);
-			}
-		});
-		Section section = toolkit.createSection(form.getBody(), Section.DESCRIPTION|Section.TWISTIE|Section.EXPANDED);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		section.setLayoutData(td);
-		section.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				//form.reflow(true);
-			}
-		});
-		section.setText("Section title");
-		toolkit.createCompositeSeparator(section);
-		section.setDescription("This is the description that goes below the title");
-		Composite sectionClient = toolkit.createComposite(section);
-		sectionClient.setLayout(new GridLayout());
-		button = toolkit.createButton(sectionClient, "Radio 1", SWT.RADIO);
-		button = toolkit.createButton(sectionClient, "Radio 2", SWT.RADIO);
-		section.setClient(sectionClient);
-
-		StringBuffer buf = new StringBuffer();
-		buf.append("<form>");
-		buf.append("<p>");
-		buf.append("Here is some plain text for the text to render; ");
-		buf.append("this text is at <a href=\"http://www.eclipse.org\" nowrap=\"true\">http://www.eclipse.org</a> web site.");
-		buf.append("</p>");
-		buf.append("<p>");
-		buf.append("<span color=\"header\" font=\"header\">This text is in header font.</span>");
-		buf.append("</p>");
-		buf.append("<p>This line will contain some <b>bold</b> and some <span font=\"code\">source</span> text. ");
-		buf.append("We can also add <img href=\"image\"/> an image. ");
-		buf.append("</p>");
-		buf.append("<li>A default (bulleted) list item.</li>");
-		buf.append("<li>Another bullet list item.</li>");
-		buf.append("<li style=\"text\" value=\"1.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" value=\"2.\">Another list item with text</li>");
-		buf.append("<li style=\"image\" value=\"image\">List item with an image bullet</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"3.\">A list item with text.</li>");
-		buf.append("<li style=\"text\" bindent=\"20\" indent=\"40\" value=\"4.\">A list item with text.</li>");
-		buf.append("<p>     leading blanks;      more white \n\n new lines   <br/><br/><br/> \n more <b>   bb   </b>  white  . </p>");
-		buf.append("</form>");
-		FormText rtext = toolkit.createFormText(form.getBody(), false);
-		//rtext.setWhitespaceNormalized(false);
-		td = new TableWrapData(TableWrapData.FILL);
-		td.colspan = 2;
-		rtext.setLayoutData(td);
-		//rtext.setImage("image", ExamplesPlugin.getDefault().getImageRegistry().get(ExamplesPlugin.IMG_SAMPLE));
-		//rtext.setColor("header", JFaceColors.getErrorText(display));
-		rtext.setFont("header", JFaceResources.getHeaderFont());
-		rtext.setFont("code", JFaceResources.getTextFont());
-		rtext.setText(buf.toString(), true, false);
-		rtext.addHyperlinkListener(new HyperlinkAdapter() {
-			public void linkActivated(HyperlinkEvent e) {
-				System.out.println("Link active: "+e.getHref());
-			}
-		});
-/*		layout.numColumns = 3;
-		Label label;
-		TableWrapData td;
-		
-		label = toolkit.createLabel(form.getBody(), "Some text to put in the first column", SWT.WRAP);
-		label = toolkit.createLabel(form.getBody() ,"Some text to put in the second column and make it a bit longer so that we can see what happens with column distribution. This text must be the longest so that it can get more space allocated to the columns it belongs to.", SWT.WRAP);
-		td = new TableWrapData();
-		td.colspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text will span two rows and should not grow the column.", SWT.WRAP);
-		td = new TableWrapData();
-		td.rowspan = 2;
-		label.setLayoutData(td);
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 2 and consumes only one cell", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));
-		label = toolkit.createLabel(form.getBody(), "This text goes into column 3 and consumes only one cell too", SWT.WRAP);
-		label.setLayoutData(new TableWrapData(TableWrapData.FILL));
-		form.getBody().setBackground(form.getBody().getDisplay().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));*/
-		
-		toolkit.paintBordersFor(form.getBody());
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java
deleted file mode 100755
index 0e3ceb2..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/plugin/FormsTestPlugin.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.plugin;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class FormsTestPlugin extends AbstractUIPlugin {
-
-	// The plug-in ID
-	public static final String PLUGIN_ID = "org.eclipse.ui.tests.forms";
-
-	// The shared instance
-	private static FormsTestPlugin plugin;
-	
-	/**
-	 * The constructor
-	 */
-	public FormsTestPlugin() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		plugin = this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		plugin = null;
-		super.stop(context);
-	}
-
-	/**
-	 * Returns the shared instance
-	 *
-	 * @return the shared instance
-	 */
-	public static FormsTestPlugin getDefault() {
-		return plugin;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java
deleted file mode 100755
index e3499fc..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/AllUtilityTests.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.util;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/*
- * Tests forms performance (automated).
- */
-public class AllUtilityTests extends TestSuite {
-
-	/*
-	 * Returns the entire test suite.
-	 */
-	public static Test suite() {
-		return new AllUtilityTests();
-	}
-
-	/*
-	 * Constructs a new performance test suite.
-	 */
-	public AllUtilityTests() {
-		addTestSuite(FormImagesTests.class);
-		addTestSuite(FormFontsTests.class);
-		addTestSuite(FormColorsTests.class);
-		addTestSuite(FormToolkitTest.class);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormColorsTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormColorsTests.java
deleted file mode 100644
index d98e8ff..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormColorsTests.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.util;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-
-public class FormColorsTests extends TestCase {
-
-	// these keys should always return a Color until disposed
-	private static String[] KEYS_NON_NULL = {
-		IFormColors.BORDER,
-		IFormColors.H_BOTTOM_KEYLINE1,
-		IFormColors.H_BOTTOM_KEYLINE2,
-		IFormColors.H_GRADIENT_END,
-		IFormColors.H_GRADIENT_START,
-		IFormColors.H_HOVER_FULL,
-		IFormColors.H_HOVER_LIGHT,
-		IFormColors.SEPARATOR,
-		IFormColors.TB_BG,
-		IFormColors.TB_BORDER,
-		IFormColors.TB_TOGGLE,
-		IFormColors.TB_TOGGLE_HOVER
-	};
-	// these keys may return null
-	private static String[] KEYS_NULL = {
-		IFormColors.TB_FG
-	};
-
-	private static String TEST_KEY_1 = "testKey1";
-	private static String TEST_KEY_2 = "testKey2";
-	
-	public void testStandalone() {
-		FormColors fColors = new FormColors(Display.getCurrent());
-		Color[] colors = new Color[KEYS_NON_NULL.length];
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			colors[i] = fColors.getColor(KEYS_NON_NULL[i]);
-		Color[] nullColors = new Color[KEYS_NULL.length];
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			nullColors[i] = fColors.getColor(KEYS_NULL[i]);
-		Color inactiveBg = fColors.getInactiveBackground();
-		Color bg = fColors.getBackground();
-		Color fg = fColors.getForeground();
-		Color bc = fColors.getBorderColor();
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			assertEquals("FormColors did not return the same instance for key: " + KEYS_NON_NULL[i], colors[i], fColors.getColor(KEYS_NON_NULL[i]));
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			assertEquals("FormColors did not return the same instance for key: " + KEYS_NULL[i], nullColors[i], fColors.getColor(KEYS_NULL[i]));
-		Assert.assertEquals("FormColors did not return the same instance for getInactiveBackground()", inactiveBg, fColors.getInactiveBackground());
-		Assert.assertEquals("FormColors did not return the same instance for getBackground()", bg, fColors.getBackground());
-		Assert.assertEquals("FormColors did not return the same instance for getForeground()", fg, fColors.getForeground());
-		Assert.assertEquals("FormColors did not return the same instance for getBorderColor()", bc, fColors.getBorderColor());
-		boolean testBorderDispose = !bc.equals(fColors.getColor(IFormColors.BORDER));
-		fColors.dispose();
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			Assert.assertTrue("FormColors did not dispose key: " + KEYS_NON_NULL[i], colors[i].isDisposed());
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			Assert.assertTrue("FormColors did not dispose key: " + KEYS_NULL[i], nullColors[i] == null || nullColors[i].isDisposed());
-		Assert.assertTrue("FormColors did not dispose getInactiveBackground()", inactiveBg.isDisposed());
-		Assert.assertFalse("FormColors disposed getBackground()", bg.isDisposed());
-		Assert.assertFalse("FormColors disposed getForeground()", fg.isDisposed());
-		if (testBorderDispose)
-			Assert.assertFalse("FormColors disposed getBorderColor() when it shouldn't have", bc.isDisposed());
-	}
-	
-	public void testMultiple() {
-		FormColors fColors = new FormColors(Display.getCurrent());
-		Color[] colors = new Color[KEYS_NON_NULL.length];
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			colors[i] = fColors.getColor(KEYS_NON_NULL[i]);
-		Color[] nullColors = new Color[KEYS_NULL.length];
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			nullColors[i] = fColors.getColor(KEYS_NULL[i]);
-		Color inactiveBg = fColors.getInactiveBackground();
-		Color bg = fColors.getBackground();
-		Color fg = fColors.getForeground();
-		Color bc = fColors.getBorderColor();
-		FormColors fColors2 = new FormColors(Display.getCurrent());
-		Color[] colors2 = new Color[KEYS_NON_NULL.length];
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			colors2[i] = fColors2.getColor(KEYS_NON_NULL[i]);
-		Color[] nullColors2 = new Color[KEYS_NULL.length];
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			nullColors2[i] = fColors2.getColor(KEYS_NULL[i]);
-		Color inactiveBg2 = fColors2.getInactiveBackground();
-		Color bg2 = fColors2.getBackground();
-		Color fg2 = fColors2.getForeground();
-		Color bc2 = fColors2.getBorderColor();
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			Assert.assertEquals("Different concurrent instances of FormColors did not return the same Color for key: " + KEYS_NON_NULL[i], colors[i], colors2[i]);
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			Assert.assertEquals("Different concurrent instances of FormColors did not return the same Color for key: " + KEYS_NULL[i], nullColors[i], nullColors2[i]);
-		Assert.assertEquals("Different concurrent instances of FormColors did not return the same Color for getInactiveBackground()", inactiveBg, inactiveBg2);
-		Assert.assertEquals("Different concurrent instances of FormColors did not return the same Color for getBackground()", bg, bg2);
-		Assert.assertEquals("Different concurrent instances of FormColors did not return the same Color for getForeground()", fg, fg2);
-		Assert.assertEquals("Different concurrent instances of FormColors did not return the same Color for getBorderColor()", bc, bc2);
-		fColors2.dispose();
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			Assert.assertFalse("FormColors disposed different instance's key: " + KEYS_NON_NULL[i] , colors[i].isDisposed());
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			Assert.assertFalse("FormColors disposed different instance's key: " + KEYS_NULL[i], nullColors[i] != null && nullColors[i].isDisposed());
-		Assert.assertFalse("FormColors disposed different instance's getInactiveBackground()", inactiveBg.isDisposed());
-		Assert.assertFalse("FormColors disposed different instance's getBackground()", bg.isDisposed());
-		Assert.assertFalse("FormColors disposed different instance's getForeground()", fg.isDisposed());
-		Assert.assertFalse("FormColors disposed different instance's getBorderColor()", bc.isDisposed());
-		fColors.dispose();
-	}
-
-	public void testShared() {
-		FormColors fColors = new FormColors(Display.getCurrent());
-		fColors.markShared();
-		FormToolkit tk = new FormToolkit(fColors);
-		FormToolkit tk2 = new FormToolkit(fColors);
-		Color[] colors = new Color[KEYS_NON_NULL.length];
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			colors[i] = tk.getColors().getColor(KEYS_NON_NULL[i]);
-		Color[] nullColors = new Color[KEYS_NULL.length];
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			nullColors[i] = tk.getColors().getColor(KEYS_NULL[i]);
-		Color inactiveBg = tk.getColors().getInactiveBackground();
-		Color bg = tk.getColors().getBackground();
-		Color fg = tk.getColors().getForeground();
-		Color bc = tk.getColors().getBorderColor();
-		Color[] colors2 = new Color[KEYS_NON_NULL.length];
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			colors2[i] = tk2.getColors().getColor(KEYS_NON_NULL[i]);
-		Color[] nullColors2 = new Color[KEYS_NULL.length];
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			nullColors2[i] = tk2.getColors().getColor(KEYS_NULL[i]);
-		boolean testBorderDispose = !bc.equals(fColors.getColor(IFormColors.BORDER));
-		tk2.dispose();
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			Assert.assertFalse("FormToolkit disposed shared FormColor's key: " + KEYS_NON_NULL[i] , colors[i].isDisposed());
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			Assert.assertFalse("FormToolkit disposed shared FormColor's key: " + KEYS_NULL[i], nullColors[i] != null && nullColors[i].isDisposed());
-		Assert.assertFalse("FormToolkit disposed shared FormColor's getInactiveBackground()", inactiveBg.isDisposed());
-		Assert.assertFalse("FormToolkit disposed shared FormColor's getBackground()", bg.isDisposed());
-		Assert.assertFalse("FormToolkit disposed shared FormColor's getForeground()", fg.isDisposed());
-		Assert.assertFalse("FormToolkit disposed shared FormColor's getBorderColor()", bc.isDisposed());
-		tk.dispose();
-		for (int i = 0; i < KEYS_NON_NULL.length; i++)
-			Assert.assertFalse("Last FormToolkit disposed shared FormColor's key: " + KEYS_NON_NULL[i], colors[i].isDisposed());
-		for (int i = 0; i < KEYS_NULL.length; i++)
-			Assert.assertFalse("Last FormToolkit disposed shared FormColor's key: " + KEYS_NULL[i], nullColors[i] != null && nullColors[i].isDisposed());
-		Assert.assertFalse("Last FormToolkit disposed shared FormColor's getInactiveBackground()", inactiveBg.isDisposed());
-		Assert.assertFalse("Last FormToolkit disposed shared FormColor's getBackground()", bg.isDisposed());
-		Assert.assertFalse("Last FormToolkit disposed shared FormColor's getForeground()", fg.isDisposed());
-		if (testBorderDispose)
-			Assert.assertFalse("Last FormToolkit with shared FormColors disposed getBorderColor() when it shouldn't have", bc.isDisposed());
-		fColors.dispose();
-	}
-	
-	public void testCustom() {
-		FormColors fColors = new FormColors(Display.getCurrent());
-		Color test1 = fColors.createColor(TEST_KEY_1, 255, 155, 55);
-		Color test2 = fColors.createColor(TEST_KEY_2, 55, 155, 255);
-		Assert.assertEquals("FormColors returned wrong color for an existing key.", fColors.getColor(TEST_KEY_1), test1);
-		Assert.assertEquals("FormColors returned wrong color for an existing key.", fColors.getColor(TEST_KEY_2), test2);
-		fColors.dispose();
-		Assert.assertTrue("FormColors did not dispose a custom key.", test1.isDisposed());
-		Assert.assertTrue("FormColors did not dispose a custom key.", test2.isDisposed());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java
deleted file mode 100755
index e10713a..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormFontsTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.util;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.forms.widgets.FormFonts;
-
-public class FormFontsTests extends TestCase {
-	public void testSingleton() {
-		Display display = Display.getCurrent();
-		FormFonts instance = FormFonts.getInstance();
-		// ensure the singleton is returning the same instance
-		Assert.assertTrue("getInstance() returned a different FormFonts instance", instance.equals(FormFonts.getInstance()));
-		Font boldSystemFont = instance.getBoldFont(display, display.getSystemFont());
-		instance.markFinished(boldSystemFont);
-		// ensure the singleton is returning the same instance after creating and disposing one gradient
-		Assert.assertTrue("getInstance() returned a different FormFonts instance after creation and disposal of one bold font", instance.equals(FormFonts.getInstance()));
-	}
-	
-	public void testDisposeOne() {
-		Display display = Display.getCurrent();
-		Font boldSystemFont = FormFonts.getInstance().getBoldFont(display, display.getSystemFont());
-		FormFonts.getInstance().markFinished(boldSystemFont);
-		// ensure that getting a single gradient and marking it as finished disposed it
-		Assert.assertTrue("markFinished(...) did not dispose a font after a single getBoldFont()", boldSystemFont.isDisposed());
-	}
-	
-	public void testMultipleInstances() {
-		Display display = Display.getCurrent();
-		Font boldSystemFont = FormFonts.getInstance().getBoldFont(display, display.getSystemFont());
-		int count;
-		// ensure that the same image is returned for many calls with the same parameter
-		for (count = 1; count < 20; count ++)
-			Assert.assertEquals("getBoldFont(...) returned a different font for the same params on iteration "+count,
-					boldSystemFont, FormFonts.getInstance().getBoldFont(display, display.getSystemFont()));
-		for ( ;count > 0; count--) {
-			FormFonts.getInstance().markFinished(boldSystemFont);
-			if (count != 1)
-				// ensure that the gradient is not disposed early
-				Assert.assertFalse("markFinished(...) disposed a shared font early on iteration "+count,boldSystemFont.isDisposed());
-			else
-				// ensure that the gradient is disposed on the last markFinished
-				Assert.assertTrue("markFinished(...) did not dispose a shared font on the last call",boldSystemFont.isDisposed());
-		}
-	}
-	
-	public void testMultipleFonts() {
-		Display display = Display.getCurrent();
-		Font veranda = new Font(display, "Veranda",12,SWT.NORMAL);
-		Font arial = new Font(display, "Arial",12,SWT.NORMAL);
-		Font boldVeranda = FormFonts.getInstance().getBoldFont(display, veranda);
-		Font boldArial = FormFonts.getInstance().getBoldFont(display, arial);
-		assertFalse(boldVeranda.equals(boldArial));
-		FormFonts.getInstance().markFinished(boldVeranda);
-		assertTrue(boldVeranda.isDisposed());
-		assertFalse(boldArial.isDisposed());
-		FormFonts.getInstance().markFinished(boldArial);
-		assertTrue(boldArial.isDisposed());
-		veranda.dispose();
-		arial.dispose();
-	}
-	
-	public void testDisposeUnknown() {
-		Display display = Display.getCurrent();
-		Font system = new Font(display, display.getSystemFont().getFontData());
-		FormFonts.getInstance().markFinished(system);
-		Assert.assertTrue("markFinished(...) did not dispose of an unknown font", system.isDisposed());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java
deleted file mode 100755
index 9288ce9..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormImagesTests.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.util;
-
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.internal.forms.widgets.FormImages;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-public class FormImagesTests extends TestCase {
-	public void testSingleton() {
-		Display display = Display.getCurrent();
-		FormImages instance = FormImages.getInstance();
-		// ensure the singleton is returning the same instance
-		Assert.assertTrue("getInstance() returned a different FormImages instance", instance.equals(FormImages.getInstance()));
-		Image gradient = instance.getGradient(new Color(display, 1, 1, 1), new Color(display, 7, 7, 7), 21, 21, 0);
-		instance.markFinished(gradient);
-		// ensure the singleton is returning the same instance after creating and disposing one gradient
-		Assert.assertTrue("getInstance() returned a different FormImages instance after creation and disposal of one image", instance.equals(FormImages.getInstance()));
-	}
-	
-	public void testDisposeOne() {
-		Display display = Display.getCurrent();
-		Image gradient = FormImages.getInstance().getGradient(new Color(display, 255, 255, 255), new Color(display, 0, 0, 0), 21, 21, 0);
-		FormImages.getInstance().markFinished(gradient);
-		// ensure that getting a single gradient and marking it as finished disposed it
-		Assert.assertTrue("markFinished(...) did not dispose an image after a single getGradient()", gradient.isDisposed());
-	}
-	
-	public void testMultipleSimpleInstances() {
-		Display display = Display.getCurrent();
-		Image gradient = FormImages.getInstance().getGradient(new Color(display, 200, 200, 200), new Color(display, 0, 0, 0), 30, 16, 3);
-		int count;
-		// ensure that the same image is returned for many calls with the same parameter
-		for (count = 1; count < 20; count ++)
-			Assert.assertEquals("getGradient(...) returned a different image for the same params on iteration "+count,
-					gradient, FormImages.getInstance().getGradient(new Color(display, 200, 200, 200), new Color(display, 0, 0, 0), 30, 16, 3));
-		for ( ;count > 0; count--) {
-			FormImages.getInstance().markFinished(gradient);
-			if (count != 1)
-				// ensure that the gradient is not disposed early
-				Assert.assertFalse("markFinished(...) disposed a shared image early on iteration "+count,gradient.isDisposed());
-			else
-				// ensure that the gradient is disposed on the last markFinished
-				Assert.assertTrue("markFinished(...) did not dispose a shared image on the last call",gradient.isDisposed());
-		}
-	}
-	
-	public void testMultipleComplexInstances() {
-		Display display = Display.getCurrent();
-		Image gradient = FormImages.getInstance().getGradient(new Color[] {new Color(display, 200, 200, 200), new Color(display, 0, 0, 0)},
-				new int[] {100}, 31, true, null);
-		int count;
-		// ensure that the same image is returned for many calls with the same parameter
-		for (count = 1; count < 20; count ++)
-			Assert.assertEquals("getGradient(...) returned a different image for the same params on iteration "+count,
-					gradient, FormImages.getInstance().getGradient(new Color[] {new Color(display, 200, 200, 200), new Color(display, 0, 0, 0)},
-							new int[] {100}, 31, true, null));
-		for ( ;count > 0; count--) {
-			FormImages.getInstance().markFinished(gradient);
-			if (count != 1)
-				// ensure that the gradient is not disposed early
-				Assert.assertFalse("markFinished(...) disposed a shared image early on iteration "+count,gradient.isDisposed());
-			else
-				// ensure that the gradient is disposed on the last markFinished
-				Assert.assertTrue("markFinished(...) did not dispose a shared image on the last call",gradient.isDisposed());
-		}
-	}
-	
-	public void testMultipleUniqueInstances() {
-		Display display = Display.getCurrent();
-		Image[] images = new Image[24];
-		images[0] = FormImages.getInstance().getGradient(new Color(display, 1, 0, 0), new Color(display, 100, 100, 100), 25, 23, 1);
-		images[1] = FormImages.getInstance().getGradient(new Color(display, 0, 1, 0), new Color(display, 100, 100, 100), 25, 23, 1);
-		images[2] = FormImages.getInstance().getGradient(new Color(display, 0, 0, 1), new Color(display, 100, 100, 100), 25, 23, 1);
-		images[3] = FormImages.getInstance().getGradient(new Color(display, 0, 0, 0), new Color(display, 101, 100, 100), 25, 23, 1);
-		images[4] = FormImages.getInstance().getGradient(new Color(display, 0, 0, 0), new Color(display, 100, 101, 100), 25, 23, 1);
-		images[5] = FormImages.getInstance().getGradient(new Color(display, 0, 0, 0), new Color(display, 100, 100, 101), 25, 23, 1);
-		images[6] = FormImages.getInstance().getGradient(new Color(display, 0, 0, 0), new Color(display, 100, 100, 100), 20, 23, 1);
-		images[7] = FormImages.getInstance().getGradient(new Color(display, 0, 0, 0), new Color(display, 100, 100, 100), 25, 10, 1);
-		images[8] = FormImages.getInstance().getGradient(new Color(display, 0, 0, 0), new Color(display, 100, 100, 100), 25, 23, 2);
-		images[9] = FormImages.getInstance().getGradient(new Color(display, 1, 1, 1), new Color(display, 101, 101, 101), 20, 10, 2);
-		images[10] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0)}, new int[] {}, 31, true, null);
-		images[11] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,1,1,1)},
-				new int[] {80}, 31, true, new Color(display,255,255,255));
-		images[12] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,1,1,1)},
-				new int[] {80}, 31, true, new Color(display,0,0,0));
-		images[13] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[14] = FormImages.getInstance().getGradient(new Color[]{new Color(display,1,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[15] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,1,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[16] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,1), new Color(display,100,100,100)},
-				new int[] {100}, 31, true, null);
-		images[17] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,101,100,100)},
-				new int[] {100}, 31, true, null);
-		images[18] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,100,101,100)},
-				new int[] {100}, 31, true, null);
-		images[19] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,100,100,101)},
-				new int[] {100}, 31, true, null);
-		images[20] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 20, true, null);
-		images[21] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {100}, 31, false, null);
-		images[22] = FormImages.getInstance().getGradient(new Color[]{new Color(display,0,0,0), new Color(display,100,100,100)},
-				new int[] {50}, 31, true, new Color(display,1,1,1));
-		images[23] = FormImages.getInstance().getGradient(new Color[]{new Color(display,1,1,1), new Color(display,101,101,101)},
-				new int[] {50}, 20, false, new Color(display,1,1,1));
-		// ensure none of the images are the same
-		for (int i = 0; i < images.length - 1; i++) {
-			for (int j = i+1; j < images.length; j++) {
-				Assert.assertNotSame("getGradient(...) returned the same image for different parameters: i = " + i + "; j = " + j, images[i], images[j]);
-			}
-		}
-		// ensure all of the images are disposed with one call to markFinished
-		for (int i = 0; i < images.length; i++) {
-			FormImages.getInstance().markFinished(images[i]);
-			Assert.assertTrue("markFinished(...) did not dispose an image that was only requested once: i = " + i, images[i].isDisposed());
-		}
-	}
-	
-	public void testComplexEquality() {
-		Display display = Display.getCurrent();
-		Image image1 = FormImages.getInstance().getGradient(new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {100}, 20, true, new Color(display,100,100,100));
-		Image image2 = FormImages.getInstance().getGradient(new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {100}, 20, true, new Color(display,0,0,0));
-		Assert.assertEquals("different images were created with only the background color differing when that difference is irrelevant", image1, image2);
-		FormImages.getInstance().markFinished(image1);
-		FormImages.getInstance().markFinished(image2);
-		image1 = FormImages.getInstance().getGradient(new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {80}, 20, true, new Color(display,100,100,100));
-		image2 = FormImages.getInstance().getGradient(new Color[] {new Color(display,0,0,0), new Color(display,255,255,255)},
-				new int[] {80}, 20, true, new Color(display,0,0,0));
-		Assert.assertNotSame("the same image was used when different background colors were specified", image1, image2);
-		FormImages.getInstance().markFinished(image1);
-		FormImages.getInstance().markFinished(image2);
-	}
-	
-	public void testToolkitColors() {
-		String blueKey = "blue";
-		String redKey = "red";
-		
-		Display display = Display.getCurrent();
-		FormToolkit kit1 = new FormToolkit(display);
-		kit1.getColors().createColor(blueKey, new RGB(0,0,255));
-		kit1.getColors().createColor(redKey, new RGB(255,0,0));
-		FormToolkit kit2 = new FormToolkit(display);
-		kit2.getColors().createColor(blueKey, new RGB(0,0,255));
-		kit2.getColors().createColor(redKey, new RGB(255,0,0));
-		Image image1 = FormImages.getInstance().getGradient(kit1.getColors().getColor(blueKey), kit1.getColors().getColor(redKey), 21, 21, 0);
-		Image image2 = FormImages.getInstance().getGradient(kit2.getColors().getColor(blueKey), kit2.getColors().getColor(redKey), 21, 21, 0);
-		Assert.assertEquals("different images were created for the same RGBs with different Color instances", image1, image2);
-		Image image3 = FormImages.getInstance().getGradient(new Color(display,0,0,255), new Color(display,255,0,0), 21, 21, 0);
-		Assert.assertEquals("different images were created for the same RGBs with different Color instances", image1, image3);
-		kit1.dispose();
-		Assert.assertFalse("image was disposed after toolkits were disposed", image1.isDisposed());
-		kit2.dispose();
-		Assert.assertFalse("image was disposed after toolkits were disposed", image2.isDisposed());
-		FormImages.getInstance().markFinished(image1);
-		Assert.assertFalse("image was disposed early", image1.isDisposed());
-		FormImages.getInstance().markFinished(image2);
-		Assert.assertFalse("image was disposed early", image2.isDisposed());
-		FormImages.getInstance().markFinished(image3);
-		Assert.assertTrue("image was not disposed", image3.isDisposed());
-	}
-	
-	public void testDisposeUnknown() {
-		Display display = Display.getCurrent();
-		Image image = new Image(display, 10, 10);
-		FormImages.getInstance().markFinished(image);
-		Assert.assertTrue("markFinished(...) did not dispose of an unknown image", image.isDisposed());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormToolkitTest.java b/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormToolkitTest.java
deleted file mode 100644
index f2a3601..0000000
--- a/tests/org.eclipse.ui.tests.forms/forms/org/eclipse/ui/tests/forms/util/FormToolkitTest.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.forms.util;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-public class FormToolkitTest extends TestCase {
-	
-	/*
-	 * Verify that calling dispose twice does not cause an NPE
-	 */
-	public void testDispose() {
-		Display display = Display.getCurrent();
-		FormToolkit toolkit = new FormToolkit(display);
-		toolkit.dispose();
-		toolkit.dispose();
-    }   
-	
-}
diff --git a/tests/org.eclipse.ui.tests.forms/test.xml b/tests/org.eclipse.ui.tests.forms/test.xml
deleted file mode 100755
index 72779d4..0000000
--- a/tests/org.eclipse.ui.tests.forms/test.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-	<!-- The property ${eclipse-home} should be passed into this script -->
-	<!-- Set a meaningful default value for when it is not. -->
-	<property name="eclipse-home" value="${basedir}/../.."/>
-
-	<!-- sets the properties eclipse-home, and library-file -->
-	<property name="plugin-name" value="org.eclipse.ui.tests.forms"/>
-	<property name="library-file" value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-	<!-- This target holds all initialization code that needs to be done for -->
-	<!-- all tests that are to be run. Initialization for individual tests -->
-	<!-- should be done within the body of the suite target. -->
-	<target name="init">
-		<tstamp/>
-		<delete>
-			<fileset dir="${eclipse-home}" includes="org*.xml"/>
-		</delete>
-	</target>
-
-	<!-- This target defines the tests that need to be run. -->
-	<target name="suite">
-		<property name="session-folder" value="${eclipse-home}/ui_session_sniff_folder"/>
-		<delete dir="${session-folder}" quiet="true"/>
-		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${session-folder}"/>
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.ui.tests.forms.AllFormsTests"/>
-		</ant>
-	</target>
-
-	<!-- This target holds code to cleanup the testing environment after -->
-	<!-- after all of the tests have been run. You can use this target to -->
-	<!-- delete temporary files that have been created. -->
-	<target name="cleanup">
-	</target>
-
-	<!-- This target runs the test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="run" depends="init,suite,cleanup">
-		<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="includes" value="org*.xml"/>
-			<property name="output-file" value="${plugin-name}.xml"/>
-		</ant>
-	</target>
-
-	<!-- This target defines the performance tests that need to be run. -->
-	<target name="performance-suite">
-		<property name="your-performance-folder" value="${eclipse-home}/ui_forms_performance_folder"/>
-		<delete dir="${your-performance-folder}" quiet="true"/>
-		<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="data-dir" value="${your-performance-folder}"/>
-			<property name="plugin-name" value="${plugin-name}"/>
-			<property name="classname" value="org.eclipse.ui.tests.forms.AllFormsPerformanceTests"/>
-		</ant>
-	</target>
-
-	<!-- This target runs the performance test suite. Any actions that need to happen -->
-	<!-- after all the tests have been run should go here. -->
-	<target name="performance" depends="init,performance-suite,cleanup">
-		<ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-			<property name="includes" value="org*.xml"/>
-			<property name="output-file" value="${plugin-name}.xml"/>
-		</ant>
-	</target>
-
-</project>
diff --git a/tests/org.eclipse.ui.tests.harness/.classpath b/tests/org.eclipse.ui.tests.harness/.classpath
deleted file mode 100644
index 751c8f2..0000000
--- a/tests/org.eclipse.ui.tests.harness/.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/tests/org.eclipse.ui.tests.harness/.cvsignore b/tests/org.eclipse.ui.tests.harness/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.ui.tests.harness/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.ui.tests.harness/.project b/tests/org.eclipse.ui.tests.harness/.project
deleted file mode 100644
index d1441f8..0000000
--- a/tests/org.eclipse.ui.tests.harness/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.harness</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/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index d3ae5de..0000000
--- a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,72 +0,0 @@
-#Mon Nov 19 11:44:19 CET 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=no_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index 18b09f6..0000000
--- a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Mon Feb 06 11:19:46 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>
diff --git a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index 883666b..0000000
--- a/tests/org.eclipse.ui.tests.harness/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Mon Feb 21 14:17:36 EST 2005
-compilers.p.deprecated=2
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=1
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF
deleted file mode 100644
index a921da7..0000000
--- a/tests/org.eclipse.ui.tests.harness/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,17 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Harness Plug-in
-Bundle-SymbolicName: org.eclipse.ui.tests.harness;singleton:=true
-Bundle-Version: 1.1.0.qualifier
-Bundle-Activator: org.eclipse.ui.tests.harness.UITestHarnessPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.tests.harness,
- org.junit,
- org.eclipse.core.resources
-Eclipse-LazyStart: true
-Export-Package: org.eclipse.ui.tests.harness,
- org.eclipse.ui.tests.harness.tests,
- org.eclipse.ui.tests.harness.util,
- org.eclipse.ui.tests.internal.util;x-internal:=true
diff --git a/tests/org.eclipse.ui.tests.harness/about.html b/tests/org.eclipse.ui.tests.harness/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.harness/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.harness/build.properties b/tests/org.eclipse.ui.tests.harness/build.properties
deleted file mode 100644
index 44806c6..0000000
--- a/tests/org.eclipse.ui.tests.harness/build.properties
+++ /dev/null
@@ -1,15 +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
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml
diff --git a/tests/org.eclipse.ui.tests.harness/icons/anything.gif b/tests/org.eclipse.ui.tests.harness/icons/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.harness/icons/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.harness/plugin.xml b/tests/org.eclipse.ui.tests.harness/plugin.xml
deleted file mode 100644
index 482a837..0000000
--- a/tests/org.eclipse.ui.tests.harness/plugin.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
- <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Performance Empty Perspective"
-            class="org.eclipse.ui.tests.harness.util.EmptyPerspective"
-            id="org.eclipse.ui.tests.harness.util.EmptyPerspective">
-      </perspective>
-      <perspective
-            name="Performance Empty Perspective 2"
-            class="org.eclipse.ui.tests.harness.util.EmptyPerspective"
-            id="org.eclipse.ui.tests.harness.util.EmptyPerspective2">
-      </perspective>
-	</extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java
deleted file mode 100644
index 42eeb67..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/AllTests.java
+++ /dev/null
@@ -1,37 +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.ui.tests.harness;
-
-import org.eclipse.ui.tests.harness.tests.MocksTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test the test harness :)
- * 
- * @since 3.3
- *
- */
-public class AllTests extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-    
-    public static Test suite() {
-        return new AllTests();
-    }
-
-    public AllTests() {
-        addTestSuite(MocksTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java
deleted file mode 100644
index e0d7b26..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/UITestHarnessPlugin.java
+++ /dev/null
@@ -1,66 +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.tests.harness;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UITestHarnessPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static UITestHarnessPlugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public UITestHarnessPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 *
-	 * @return the shared instance.
-	 */
-	public static UITestHarnessPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tests.harness", path);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java
deleted file mode 100644
index b7a9f5c..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/tests/MocksTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Brad Reynolds.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Brad Reynolds - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.harness.tests;
-
-import java.lang.reflect.UndeclaredThrowableException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.tests.harness.util.Mocks;
-
-/**
- * Tests for the Mocks class.
- * 
- * @since 1.1
- */
-public class MocksTest extends TestCase {
-	private IPrimitive primitiveMock;
-
-	private static boolean uninitializedBoolean;
-	private static byte unitializedByte;
-	private static char unitializedChar;
-	private static short unitializedShort;
-	private static int unitializedInt;
-	private static long unitializedLong;
-	private static float unitializedFloat;
-	private static double unitializedDouble;
-	
-	protected void setUp() throws Exception {
-		primitiveMock = (IPrimitive) Mocks.createRelaxedMock(IPrimitive.class);
-	}
-
-	public void testPrimitiveBooleanReturnType() throws Exception {
-		try {
-			boolean value = primitiveMock.getBoolean();
-			assertEquals(uninitializedBoolean, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveBooleanSetLastReturnValue() throws Exception {
-		Boolean value = Boolean.TRUE;
-		primitiveMock.getBoolean();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.booleanValue(), primitiveMock.getBoolean());		
-	}
-	
-	public void testPrimitiveByteReturnType() throws Exception {
-		try {
-			byte value = primitiveMock.getByte();
-			assertEquals(unitializedByte, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveByteSetLastReturnValue() throws Exception {
-		Byte value = new Byte((byte) 1);
-		primitiveMock.getByte();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.byteValue(), primitiveMock.getByte());
-	}
-	
-	public void testPrimitiveCharReturnType() throws Exception {
-		try {
-			char value = primitiveMock.getChar();
-			assertEquals(unitializedChar, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveCharSetLastReturnValue() throws Exception {
-		Character value = new Character('a');
-		primitiveMock.getChar();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.charValue(), primitiveMock.getChar());
-	}
-	
-	public void testPrimitiveShortReturnType() throws Exception {
-		try {
-			short value = primitiveMock.getShort();
-			assertEquals(unitializedShort, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-
-	public void testPrimitiveShortSetLastReturnValue() throws Exception {
-		Short value = new Short((short) 1);
-		primitiveMock.getShort();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.shortValue(), primitiveMock.getShort());
-	}
-	
-	public void testPrimitiveIntReturnType() throws Exception {
-		try {
-			int value = primitiveMock.getInt();
-			assertEquals(unitializedInt, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveIntSetLastReturnValue() throws Exception {
-		Integer value = new Integer(1);
-		primitiveMock.getInt();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.intValue(), primitiveMock.getInt());
-	}
-	
-	public void testPrimitiveLongReturnType() throws Exception {
-		try {
-			long value = primitiveMock.getLong();
-			assertEquals(unitializedLong, value);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveLongSetLastReturnValue() throws Exception {
-		Long value = new Long(1);
-		primitiveMock.getLong();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.longValue(), primitiveMock.getLong());
-	}
-	
-	public void testPrimitiveFloatReturnType() throws Exception {
-		try {
-			float value = primitiveMock.getFloat();
-			assertEquals(unitializedFloat, value, 0);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveFloatSetLastReturnValue() throws Exception {
-		Float value = new Float(1);
-		primitiveMock.getFloat();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.floatValue(), primitiveMock.getFloat(), 0);
-	}
-	
-	public void testPrimitiveDoubleReturnType() throws Exception {
-		try {
-			double value = primitiveMock.getDouble();
-			assertEquals(unitializedDouble, value, 0);
-		} catch (UndeclaredThrowableException e) {
-			fail("exception should not have been thrown");
-		}
-	}
-	
-	public void testPrimitiveDoubleSetLastReturnValue() throws Exception {
-		Double value = new Double(1);
-		primitiveMock.getDouble();
-		Mocks.setLastReturnValue(primitiveMock, value);
-		Mocks.startChecking(primitiveMock);
-		
-		assertEquals(value.doubleValue(), primitiveMock.getDouble(), 0);
-	}
-
-	public interface IPrimitive {
-		public boolean getBoolean();
-
-		public byte getByte();
-
-		public char getChar();
-
-		public short getShort();
-
-		public int getInt();
-
-		public long getLong();
-
-		public float getFloat();
-
-		public double getDouble();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java
deleted file mode 100644
index 35e5393..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ActionUtil.java
+++ /dev/null
@@ -1,156 +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.ui.tests.harness.util;
-
-import java.lang.reflect.Method;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.SubContributionItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.WorkbenchWindow;
-
-/**
- * <code>ActionUtil</code> contains methods to run actions
- * in the workbench.
- */
-public class ActionUtil {
-
-    /**
-     * Runs an action contribution.
-     * 
-     * @param test the current test case
-     * @param item an action contribution item
-     */
-    public static void runAction(TestCase test, IContributionItem item) {
-        Assert.assertTrue(item instanceof ActionContributionItem);
-        ((ActionContributionItem) item).getAction().run();
-    }
-
-    /**
-     * Runs the first action found in a menu manager with a
-     * particular label. 
-     *
-     * @param test the current test case
-     * @param mgr the containing menu manager
-     * @param label the action label
-     */
-    public static void runActionWithLabel(TestCase test, IMenuManager mgr,
-            String label) {
-        IContributionItem[] items = mgr.getItems();
-        for (int nX = 0; nX < items.length; nX++) {
-            IContributionItem item = items[nX];
-            if (item instanceof SubContributionItem)
-                item = ((SubContributionItem) item).getInnerItem();
-            if (item instanceof ActionContributionItem) {
-                IAction action = ((ActionContributionItem) item).getAction();
-                if (label.equals(action.getText())) {
-                    action.run();
-                    return;
-                }
-            }
-        }
-        Assert.fail("Unable to find action: " + label);
-    }
-
-    /**
-     * Runs the first action found in a window with a
-     * particular label. 
-     * 
-     * @param test the current test case
-     * @param win the containing window
-     * @param label the action label
-     */
-    public static void runActionWithLabel(TestCase test, IWorkbenchWindow win,
-            String label) {
-        WorkbenchWindow realWin = (WorkbenchWindow) win;
-        IMenuManager mgr = realWin.getMenuManager();
-        runActionWithLabel(test, mgr, label);
-    }
-
-    /**
-     * Runs an action identified by an id path in a 
-     * menu manager.
-     * 
-     * @param test the current test case
-     * @param mgr the containing menu manager
-     * @param label the action label
-     */
-    public static void runActionUsingPath(TestCase test, IMenuManager mgr,
-            String idPath) {
-        IContributionItem item = mgr.findUsingPath(idPath);
-        Assert.assertNotNull(item);
-        runAction(test, item);
-    }
-
-    /**
-     * Runs an action identified by an id path in a 
-     * window.
-     * 
-     * @param test the current test case
-     * @param win the containing window
-     * @param label the action label
-     */
-    public static void runActionUsingPath(TestCase test, IWorkbenchWindow win,
-            String idPath) {
-        WorkbenchWindow realWin = (WorkbenchWindow) win;
-        IMenuManager mgr = realWin.getMenuManager();
-        runActionUsingPath(test, mgr, idPath);
-    }
-
-    /**
-     * Returns the first action found in a menu manager with a
-     * particular label. 
-     *
-     * @param mgr the containing menu manager
-     * @param label the action label
-     * @return the first action with the label, or <code>null</code>
-     * 		if it is not found.
-     */
-    public static IAction getActionWithLabel(IMenuManager mgr, String label) {
-        IContributionItem[] items = mgr.getItems();
-        for (int nX = 0; nX < items.length; nX++) {
-            IContributionItem item = items[nX];
-            if (item instanceof SubContributionItem)
-                item = ((SubContributionItem) item).getInnerItem();
-            if (item instanceof ActionContributionItem) {
-                IAction action = ((ActionContributionItem) item).getAction();
-                if (label.equals(action.getText())) {
-                    return action;
-                }
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Fire the "handleAboutToShow" method in a menu manager.
-     * This triggers the same behavior as when a user opens a menu.
-     * The menu to be populated with actions and those 
-     * actions to be enacted in SWT widgets.
-     * 
-     * @param mgr the menu manager to open
-     */
-    public static void fireAboutToShow(MenuManager mgr) throws Throwable {
-        Class clazz = mgr.getClass();
-        Method method = clazz.getDeclaredMethod("handleAboutToShow",
-                new Class[0]);
-        method.setAccessible(true);
-        method.invoke(mgr, new Object[0]);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java
deleted file mode 100644
index 9afabce..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ArrayUtil.java
+++ /dev/null
@@ -1,89 +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.ui.tests.harness.util;
-
-import java.util.Random;
-
-/**
- * <code>ArrayUtil</code> contains methods for array 
- * examination.  
- */
-public class ArrayUtil {
-    private static Random randomBox = new Random();
-
-    /**
-     * Returns a random object chosen from an array.
-     * 
-     * @param array the input array
-     * @return a random object in the array
-     */
-    public static Object pickRandom(Object[] array) {
-        int num = randomBox.nextInt(array.length);
-        return array[num];
-    }
-
-    /**
-     * Returns whether an array is not null and
-     * each object in the array is not null.
-     *
-     * @param array the input array
-     * @return <code>true or false</code>
-     */
-    public static boolean checkNotNull(Object[] array) {
-        if (array == null)
-            return false;
-        else {
-            for (int i = 0; i < array.length; i++)
-                if (array[i] == null)
-                    return false;
-            return true;
-        }
-    }
-
-    /**
-     * Returns whether an array contains a given object.
-     *
-     * @param array the input array
-     * @param element the test object
-     * @return <code>true</code> if the array contains the object,
-     * 		<code>false</code> otherwise.
-     */
-    public static boolean contains(Object[] array, Object element) {
-        if (array == null || element == null)
-            return false;
-        else {
-            for (int i = 0; i < array.length; i++)
-                if (array[i] == element)
-                    return true;
-            return false;
-        }
-    }
-
-    /**
-     * Returns whether two arrays are equal.  They must
-     * have the same size and the same contents.
-     *
-     * @param one the first array
-     * @param two the second array
-     * @return <code>true</code> if the array are equal,
-     * 		<code>false</code> otherwise.
-     */
-    public static boolean equals(Object[] one, Object[] two) {
-        if (one.length != two.length)
-            return false;
-        else {
-            for (int i = 0; i < one.length; i++)
-                if (one[i] != two[i])
-                    return false;
-            return true;
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java
deleted file mode 100644
index eae1417..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/AutomationUtil.java
+++ /dev/null
@@ -1,57 +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.ui.tests.harness.util;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-
-/**
- * <code>AutomationUtil</code> contains utility methods to mimic key events.
- * Mouse event methods can be added if needed to complete this class.
- */
-public class AutomationUtil {
-
-	/**
-	 * Method to mimic a key code event on a display.
-	 * 
-	 * @param display
-	 *            The display.
-	 * @param eventType
-	 *            The event type.
-	 * @param keyCode
-	 *            The key code.
-	 */
-	public static void performKeyCodeEvent(Display display, int eventType,
-			int keyCode) {
-		Event event = new Event();
-		event.type = eventType;
-		event.keyCode = keyCode;
-		display.post(event);
-	}
-
-	/**
-	 * Method to mimic a character event on a display.
-	 * 
-	 * @param display
-	 *            The display.
-	 * @param eventType
-	 *            The event type.
-	 * @param character
-	 *            The character to mimic.
-	 */
-	public static void performCharacterEvent(Display display, int eventType,
-			char character) {
-		Event event = new Event();
-		event.type = eventType;
-		event.character = character;
-		display.post(event);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java
deleted file mode 100644
index 4ec7030..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/CallHistory.java
+++ /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
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-
-/**
- * <code>CallHistory</code> is used to record the invocation
- * of methods within a target object.  This is useful during
- * lifecycle testing for an object.
- * <p>
- * To use <code>CallHistory</code> ..
- * <ol>
- * <li>Create a CallHistory in the target or pass one in.</li>
- * <li>Invoke some test scenario.  </li>
- * <li>If a method is called on the target record the invocation
- * 	in the call history</li>
- * <li>Verify the call history after the test scenario is
- * 	complete.</li>
- * </ol>
- * </p><p>
- * Each <code>CallHistory</code> has a target which is used to 
- * verify the method names passed to the history.  If an invalid 
- * name is passed an <code>IllegalArgumentException</code> will 
- * be thrown.
- * </p>
- */
-public class CallHistory {
-    private ArrayList methodList;
-
-    private Class classType;
-
-    /**
-     * Creates a new call history for an object.  
-     * 
-     * @param target the call history target. 
-     */
-    public CallHistory(Object target) {
-        methodList = new ArrayList();
-        classType = target.getClass();
-    }
-
-    /**
-     * Throws an exception if the method name is invalid
-     * for the given target class.
-     */
-    private void testMethodName(String methodName) {
-        Method[] methods = classType.getMethods();
-        for (int i = 0; i < methods.length; i++)
-            if (methods[i].getName().equals(methodName))
-                return;
-        throw new IllegalArgumentException("Target class ("
-                + classType.getName() + ") does not contain method: "
-                + methodName);
-    }
-
-    /**
-     * Adds a method name to the call history.  
-     * 
-     * @param methodName the name of a method
-     */
-    public void add(String methodName) {
-        testMethodName(methodName);
-        methodList.add(methodName);
-    }
-
-    /**
-     * Clears the call history.
-     */
-    public void clear() {
-        methodList.clear();
-    }
-
-    /**
-     * Returns whether a list of methods have been called in
-     * order.  
-     * 
-     * @param testNames an array of the method names in the order they are expected
-     * @return <code>true</code> if the methods were called in order
-     */
-    public boolean verifyOrder(String[] testNames)
-            throws IllegalArgumentException {
-        int testIndex = 0;
-        int testLength = testNames.length;
-        if (testLength == 0)
-            return true;
-        for (int nX = 0; nX < methodList.size(); nX++) {
-            String methodName = (String) methodList.get(nX);
-            String testName = testNames[testIndex];
-            testMethodName(testName);
-            if (testName.equals(methodName))
-                ++testIndex;
-            if (testIndex >= testLength)
-                return true;
-        }
-        return false;
-    }
-
-    /**
-     * Returns whether a method has been called.
-     * 
-     * @param methodName a method name
-     * @return <code>true</code> if the method was called
-     */
-    public boolean contains(String methodName) {
-        testMethodName(methodName);
-        return methodList.contains(methodName);
-    }
-
-    /**
-     * Returns whether a list of methods were called.
-     * 
-     * @param methodNames a list of methods
-     * @return <code>true</code> if the methods were called
-     */
-    public boolean contains(String[] methodNames) {
-        for (int i = 0; i < methodNames.length; i++) {
-            testMethodName(methodNames[i]);
-            if (!methodList.contains(methodNames[i]))
-                return false;
-        }
-        return true;
-    }
-
-    /**
-     * Returns whether the list of methods called is empty.
-     * 
-     * @return <code>true</code> iff the list of methods is empty
-     */
-    public boolean isEmpty() {
-        return methodList.isEmpty();
-    }
-
-    /**
-     * Prints the call history to the console.
-     */
-    public void printToConsole() {
-        for (int i = 0; i < methodList.size(); i++)
-            System.out.println(methodList.get(i));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java
deleted file mode 100644
index f7f0c37..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DialogCheck.java
+++ /dev/null
@@ -1,212 +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.ui.tests.harness.util;
-
-import junit.framework.Assert;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-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.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.internal.util.VerifyDialog;
-
-/**
- * A <code>DialogCheck</code> is used test a dialog in
- * various ways. 
- * <p>
- * For interactive tests use <code>assertDialog</code>.
- * For automated tests use <code>assert DialogTexts</code>.
- * </p> 
- */
-public class DialogCheck {
-    private DialogCheck() {
-    }
-
-    private static VerifyDialog _verifyDialog;
-
-    /**
-     * Asserts that a given dialog is not null and that it passes
-     * certain visual tests.  These tests will be verified manually
-     * by the tester using an input dialog.  Use this assert method
-     * to verify a dialog's sizing, initial focus, or accessiblity.
-     * To ensure that both the input dialog and the test dialog are
-     * accessible by the tester, the getShell() method should be used
-     * when creating the test dialog.
-     * 
-     * Example usage:
-     * <code>Dialog dialog = new AboutDialog( DialogCheck.getShell() );
-     * DialogCheck.assertDialog(dialog, this);</code>
-     * 
-     * @param dialog the test dialog to be verified.
-     * @param assert this is the test case object, assertions will be
-     * executed on this object.
-     */
-    public static void assertDialog(Dialog dialog, Assert assertion) {
-        Assert.assertNotNull(dialog);
-        if (_verifyDialog.getShell() == null) {
-            //force the creation of the verify dialog
-            getShell();
-        }
-        if (_verifyDialog.open(dialog) == IDialogConstants.NO_ID) {
-            Assert.assertTrue(_verifyDialog.getFailureText(), false);
-        }
-    }
-
-    /**
-     * Automated test that checks all the labels and buttons of a dialog
-     * to make sure there is enough room to display all the text.  Any
-     * text that wraps is only approximated and is currently not accurate.
-     * 
-     * @param dialog the test dialog to be verified.
-     * @param assert this is the test case object, assertions will be
-     * executed on this object.
-     */
-    public static void assertDialogTexts(Dialog dialog, Assert assertion) {
-        Assert.assertNotNull(dialog);
-        dialog.setBlockOnOpen(false);
-        dialog.open();
-        Shell shell = dialog.getShell();
-        verifyCompositeText(shell, assertion);
-        dialog.close();
-    }
-
-    /**
-     * This method should be called when creating dialogs to test.  This
-     * ensures that the dialog's parent shell will be that of the
-     * verification dialog.
-     * 
-     * @return Shell The shell of the verification dialog to be used as
-     * the parent shell of the test dialog.
-     */
-    public static Shell getShell() {
-        Shell shell = WorkbenchPlugin.getDefault().getWorkbench()
-                .getActiveWorkbenchWindow().getShell();
-        _verifyDialog = new VerifyDialog(shell);
-        _verifyDialog.create();
-        return _verifyDialog.getShell();
-    }
-
-    /*
-     * Looks at all the child widgets of a given composite and
-     * verifies the text on all labels and widgets.
-     * @param composite The composite to look through
-     * @param assert The object to invoke assertions on.
-     */
-    private static void verifyCompositeText(Composite composite,
-            Assert assertion) {
-        Control children[] = composite.getChildren();
-        for (int i = 0; i < children.length; i++) {
-        	Control child = children[i];
-            if (child instanceof TabFolder) {
-                TabFolder folder = (TabFolder) child;
-                int numPages = folder.getItemCount();
-                for (int j = 0; j < numPages; j++) {
-                    folder.setSelection(j);
-                }
-            }
-            else if (child instanceof Button) {
-                //verify the text if the child is a button
-                verifyButtonText((Button) child, assertion);
-            }
-            else if (child instanceof Label) {
-                //child is not a button, maybe a label
-                verifyLabelText((Label) child, assertion);
-            }
-            else if (child instanceof Composite) {
-                //child is not a label, make a recursive call if it is a composite
-                verifyCompositeText((Composite) child, assertion);
-            }
-        }
-    }
-
-    /*
-     * Verifies that a given button is large enough to display its text.
-     * @param button The button to verify,
-     * @param assert The object to invoke assertions on.
-     */
-    private static void verifyButtonText(Button button, Assert assertion) {
-        String widget = button.toString();
-        Point size = button.getSize();
-
-        //compute the size with no line wrapping
-        Point preferred = button.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        //if (size.y/preferred.y) == X, then label spans X lines, so divide
-        //the calculated value of preferred.x by X
-        if (preferred.y * size.y > 0) {
-            preferred.y /= countLines(button.getText()); //check for '\n\'
-            if (size.y / preferred.y > 1) {
-                preferred.x /= (size.y / preferred.y);
-            }
-        }
-
-        String message = new StringBuffer("Warning: ").append(widget).append(
-                "\n\tActual Width -> ").append(size.x).append(
-                "\n\tRecommended Width -> ").append(preferred.x).toString();
-        if (preferred.x > size.x) {
-            //close the dialog
-            button.getShell().dispose();
-            Assert.assertTrue(message.toString(), false);
-        }
-    }
-
-    /*
-     * Verifies that a given label is large enough to display its text.
-     * @param label The label to verify,
-     * @param assert The object to invoke assertions on.
-     */
-    private static void verifyLabelText(Label label, Assert assertion) {
-        String widget = label.toString();
-        Point size = label.getSize();
-
-        //compute the size with no line wrapping
-        Point preferred = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-        //if (size.y/preferred.y) == X, then label spans X lines, so divide
-        //the calculated value of preferred.x by X
-        if (preferred.y * size.y > 0) {
-            preferred.y /= countLines(label.getText());
-            if (size.y / preferred.y > 1) {
-                preferred.x /= (size.y / preferred.y);
-            }
-        }
-        String message = new StringBuffer("Warning: ").append(widget).append(
-                "\n\tActual Width -> ").append(size.x).append(
-                "\n\tRecommended Width -> ").append(preferred.x).toString();
-        if (preferred.x > size.x) {
-            //close the dialog
-            label.getShell().dispose();
-            Assert.assertTrue(message.toString(), false);
-        }
-    }
-
-    /*
-     * Counts the number of lines in a given String.
-     * For example, if a string contains one (1) newline character,
-     * a value of two (2) would be returned.
-     * @param text The string to look through.
-     * @return int the number of lines in text.
-     */
-    private static int countLines(String text) {
-        int newLines = 1;
-        for (int i = 0; i < text.length(); i++) {
-            if (text.charAt(i) == '\n') {
-                newLines++;
-            }
-        }
-        return newLines;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayHelper.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayHelper.java
deleted file mode 100755
index c070be9..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayHelper.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Runs the event loop of the given display until {@link #condition()} becomes
- * <code>true</code> or no events have occurred for the supplied timeout.
- * Between running the event loop, {@link Display#sleep()} is called.
- * <p>
- * There is a caveat: the given timeouts must be long enough that the calling
- * thread can enter <code>Display.sleep()</code> before the timeout elapses,
- * otherwise, the waiter may time out before <code>sleep</code> is called and
- * the sleeping thread may never be waken up.
- * </p>
- * 
- * @since 3.1
- */
-public abstract class DisplayHelper {
-	/**
-	 * Creates a new instance.
-	 */
-	protected DisplayHelper() {
-	}
-	
-	/**
-	 * Until {@link #condition()} becomes <code>true</code> or the timeout
-	 * elapses, call {@link Display#sleep()} and run the event loop.
-	 * <p>
-	 * If <code>timeout &lt; 0</code>, the event loop is never driven and
-	 * only the condition is checked. If <code>timeout == 0</code>, the event
-	 * loop is driven at most once, but <code>Display.sleep()</code> is never
-	 * invoked.
-	 * </p>
-	 * 
-	 * @param display the display to run the event loop of
-	 * @param timeout the timeout in milliseconds
-	 * @return <code>true</code> if the condition became <code>true</code>,
-	 *         <code>false</code> if the timeout elapsed
-	 */
-	public final boolean waitForCondition(Display display, long timeout) {
-		// if the condition already holds, succeed
-		if (condition())
-			return true;
-		
-		if (timeout < 0)
-			return false;
-		
-		// if driving the event loop once makes the condition hold, succeed
-		// without spawning a thread.
-		driveEventQueue(display);
-		if (condition())
-			return true;
-		
-		// if the timeout is negative or zero, fail
-		if (timeout == 0)
-			return false;
-
-		// repeatedly sleep until condition becomes true or timeout elapses
-		DisplayWaiter waiter= new DisplayWaiter(display);
-		DisplayWaiter.Timeout timeoutState= waiter.start(timeout);
-		boolean condition;
-		try {
-			do {
-				if (display.sleep())
-					driveEventQueue(display);
-				condition= condition();
-			} while (!condition && !timeoutState.hasTimedOut());
-		} finally {
-			waiter.stop();
-		}
-		return condition;
-	}
-	
-	/**
-	 * Call {@link Display#sleep()} and run the event loop until the given
-	 * timeout has elapsed.
-	 * <p>
-	 * If <code>timeout &lt; 0</code>, nothing happens. If
-	 * <code>timeout == 0</code>, the event loop is driven exactly once, but
-	 * <code>Display.sleep()</code> is never invoked.
-	 * </p>
-	 * 
-	 * @param millis the timeout in milliseconds
-	 */
-	public static void sleep(long millis) {
-		sleep(Display.getCurrent(), millis);
-	}
-	
-	/**
-	 * Call {@link Display#sleep()} and run the event loop until the given
-	 * timeout has elapsed.
-	 * <p>
-	 * If <code>timeout &lt; 0</code>, nothing happens. If
-	 * <code>timeout == 0</code>, the event loop is driven exactly once, but
-	 * <code>Display.sleep()</code> is never invoked.
-	 * </p>
-	 * 
-	 * @param display the display to run the event loop of
-	 * @param millis the timeout in milliseconds
-	 */
-	public static void sleep(Display display, long millis) {
-		new DisplayHelper() {
-			public boolean condition() {
-				return false;
-			}
-		}.waitForCondition(display, millis);
-	}
-	
-	/**
-	 * Call {@link Display#sleep()} and run the event loop once if
-	 * <code>sleep</code> returns before the timeout elapses. Returns
-	 * <code>true</code> if any events were processed, <code>false</code> if
-	 * not.
-	 * <p>
-	 * If <code>timeout &lt; 0</code>, nothing happens and false is returned.
-	 * If <code>timeout == 0</code>, the event loop is driven exactly once,
-	 * but <code>Display.sleep()</code> is never invoked.
-	 * </p>
-	 * 
-	 * @param display the display to run the event loop of
-	 * @param timeout the timeout in milliseconds
-	 * @return <code>true</code> if any event was taken off the event queue,
-	 *         <code>false</code> if not
-	 */
-	public static boolean runEventLoop(Display display, long timeout) {
-		if (timeout < 0)
-			return false;
-		
-		if (timeout == 0)
-			return driveEventQueue(display);
-		
-		// repeatedly sleep until condition becomes true or timeout elapses
-		DisplayWaiter waiter= new DisplayWaiter(display);
-		DisplayWaiter.Timeout timeoutState= waiter.start(timeout);
-		boolean events= false;
-		if (display.sleep() && !timeoutState.hasTimedOut()) {
-			driveEventQueue(display);
-			events= true;
-		}
-		waiter.stop();
-		return events;
-	}
-	
-	/**
-	 * The condition which has to be met in order for
-	 * {@link #waitForCondition(Display, int)} to return before the timeout
-	 * elapses.
-	 * 
-	 * @return <code>true</code> if the condition is met, <code>false</code>
-	 *         if the event loop should be driven some more
-	 */
-	protected abstract boolean condition();
-
-	/**
-	 * Runs the event loop on the given display.
-	 * 
-	 * @param display the display
-	 * @return if <code>display.readAndDispatch</code> returned
-	 *         <code>true</code> at least once
-	 */
-	private static boolean driveEventQueue(Display display) {
-		boolean events= false;
-		while (display.readAndDispatch()) {
-			events= true;
-		}
-		return events;
-	}
-
-	/**
-	 * Until {@link #condition()} becomes <code>true</code> or the timeout
-	 * elapses, call {@link Display#sleep()} and run the event loop.
-	 * <p>
-	 * If <code>timeout &lt; 0</code>, the event loop is never driven and
-	 * only the condition is checked. If <code>timeout == 0</code>, the event
-	 * loop is driven at most once, but <code>Display.sleep()</code> is never
-	 * invoked.
-	 * </p>
-	 * <p>
-	 * The condition gets rechecked every <code>interval</code> milliseconds, even
-	 * if no events were read from the queue.
-	 * </p>
-	 * 
-	 * @param display the display to run the event loop of
-	 * @param timeout the timeout in milliseconds
-	 * @param interval the interval to re-check the condition in milliseconds
-	 * @return <code>true</code> if the condition became <code>true</code>,
-	 *         <code>false</code> if the timeout elapsed
-	 */
-	public final boolean waitForCondition(Display display, long timeout, long interval) {
-		// if the condition already holds, succeed
-		if (condition())
-			return true;
-		
-		if (timeout < 0)
-			return false;
-		
-		// if driving the event loop once makes the condition hold, succeed
-		// without spawning a thread.
-		driveEventQueue(display);
-		if (condition())
-			return true;
-		
-		// if the timeout is negative or zero, fail
-		if (timeout == 0)
-			return false;
-	
-		// repeatedly sleep until condition becomes true or timeout elapses
-		DisplayWaiter waiter= new DisplayWaiter(display, true);
-		long currentTimeMillis= System.currentTimeMillis();
-		long finalTimeout= timeout + currentTimeMillis;
-		if (finalTimeout < currentTimeMillis)
-			finalTimeout= Long.MAX_VALUE;
-		boolean condition;
-		try {
-			do {
-				waiter.restart(interval);
-				if (display.sleep())
-					driveEventQueue(display);
-				condition= condition();
-			} while (!condition && finalTimeout > System.currentTimeMillis());
-		} finally {
-			waiter.stop();
-		}
-		return condition;
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayWaiter.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayWaiter.java
deleted file mode 100755
index 5e5ccf5..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/DisplayWaiter.java
+++ /dev/null
@@ -1,410 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import junit.framework.Assert;
-
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Implements the thread that will wait for the timeout and wake up the display
- * so it does not wait forever. The thread may be restarted after it was stopped
- * or timed out.
- * 
- * @since 3.1
- */
-final class DisplayWaiter {
-	/**
-	 * Timeout state of a display waiter thread.
-	 */
-	public final class Timeout {
-		boolean fTimeoutState= false;
-		/**
-		 * Returns <code>true</code> if the timeout has been reached,
-		 * <code>false</code> if not.
-		 * 
-		 * @return <code>true</code> if the timeout has been reached,
-		 *         <code>false</code> if not
-		 */
-		public boolean hasTimedOut() {
-			synchronized (fMutex) {
-				return fTimeoutState;
-			}
-		}
-		void setTimedOut(boolean timedOut) {
-			fTimeoutState= timedOut;
-		}
-		Timeout(boolean initialState) {
-			fTimeoutState= initialState;
-		}
-	}
-	
-	// configuration
-	private final Display fDisplay;
-	private final Object fMutex= new Object();
-	private final boolean fKeepRunningOnTimeout;
-	
-	/* State -- possible transitions:
-	 * 
-	 * STOPPED   -> RUNNING
-	 * RUNNING   -> STOPPED
-	 * RUNNING   -> IDLE
-	 * IDLE      -> RUNNING
-	 * IDLE      -> STOPPED
-	 */
-	private static final int RUNNING= 1 << 1;
-	private static final int STOPPED= 1 << 2;
-	private static final int IDLE= 1 << 3;
-	
-	/** The current state. */
-	private int fState;
-	/** The time in milliseconds (see Date) that the timeout will occur. */
-	private long fNextTimeout;
-	/** The thread. */
-	private Thread fCurrentThread;
-	/** The timeout state of the current thread. */
-	private Timeout fCurrentTimeoutState;
-
-	/**
-	 * Creates a new instance on the given display and timeout.
-	 * 
-	 * @param display the display to run the event loop of
-	 */
-	public DisplayWaiter(Display display) {
-		this(display, false);
-	}
-	
-	/**
-	 * Creates a new instance on the given display and timeout.
-	 * 
-	 * @param display the display to run the event loop of
-	 * @param keepRunning <code>true</code> if the thread should be kept
-	 *        running after timing out
-	 */
-	public DisplayWaiter(Display display, boolean keepRunning) {
-		Assert.assertNotNull(display);
-		fDisplay= display;
-		fState= STOPPED;
-		fKeepRunningOnTimeout= keepRunning;
-	}
-	
-	/**
-	 * Starts the timeout thread if it is not currently running. Nothing happens
-	 * if a thread is already running.
-	 * 
-	 * @param delay the delay from now in milliseconds
-	 * @return the timeout state which can be queried for its timed out status
-	 */
-	public Timeout start(long delay) {
-		Assert.assertTrue(delay > 0);
-		synchronized (fMutex) {
-			switch (fState) {
-				case STOPPED:
-					startThread();
-					setNextTimeout(delay);
-					break;
-				case IDLE:
-					unhold();
-					setNextTimeout(delay);
-					break;
-			}
-			
-			return fCurrentTimeoutState;
-		}
-	}
-
-	/**
-	 * Sets the next timeout to <em>current time</em> plus <code>delay</code>.
-	 * 
-	 * @param delay the delay until the next timeout occurs in milliseconds from
-	 *        now
-	 */
-	private void setNextTimeout(long delay) {
-		long currentTimeMillis= System.currentTimeMillis();
-		long next= currentTimeMillis + delay;
-		if (next > currentTimeMillis)
-			fNextTimeout= next;
-		else
-			fNextTimeout= Long.MAX_VALUE;
-	}
-	
-	/**
-	 * Starts the thread if it is not currently running; resets the timeout if
-	 * it is.
-	 * 
-	 * @param delay the delay from now in milliseconds
-	 * @return the timeout state which can be queried for its timed out status
-	 */
-	public Timeout restart(long delay) {
-		Assert.assertTrue(delay > 0);
-		synchronized (fMutex) {
-			switch (fState) {
-				case STOPPED:
-					startThread();
-					break;
-				case IDLE:
-					unhold();
-					break;
-			}
-			setNextTimeout(delay);
-
-			return fCurrentTimeoutState;
-		}
-	}
-
-	/**
-	 * Stops the thread if it is running. If not, nothing happens. Another
-	 * thread may be started by calling {@link #start(long)} or
-	 * {@link #restart(long)}.
-	 */
-	public void stop() {
-		synchronized (fMutex) {
-			if (tryTransition(RUNNING | IDLE, STOPPED))
-				fMutex.notifyAll();
-		}
-	}
-	
-	/**
-	 * Puts the reaper thread on hold but does not stop it. It may be restarted
-	 * by calling {@link #start(long)} or {@link #restart(long)}.
-	 */
-	public void hold() {
-		synchronized (fMutex) {
-			// nothing to do if there is no thread
-			if (tryTransition(RUNNING, IDLE))
-				fMutex.notifyAll();
-		}
-	}
-
-	/**
-	 * Transition to <code>RUNNING</code> and clear the timed out flag. Assume
-	 * current state is <code>IDLE</code>.
-	 */
-	private void unhold() {
-		checkedTransition(IDLE, RUNNING);
-		fCurrentTimeoutState= new Timeout(false);
-		fMutex.notifyAll();
-	}
-		
-	/**
-	 * Start the thread. Assume the current state is <code>STOPPED</code>.
-	 */
-	private void startThread() {
-		checkedTransition(STOPPED, RUNNING);
-		fCurrentTimeoutState= new Timeout(false);
-		fCurrentThread= new Thread() {
-			/**
-			 * Exception thrown when a thread notices that it has been stopped
-			 * and a new thread has been started.
-			 */
-			final class ThreadChangedException extends Exception {
-				private static final long serialVersionUID= 1L;
-			}
-
-			/*
-			 * @see java.lang.Runnable#run()
-			 */
-			public void run() {
-				try {
-					run2();
-				} catch (InterruptedException e) {
-					// ignore and end the thread - we never interrupt ourselves,
-					// so it must be an external entity that interrupted us
-					Logger.global.log(Level.FINE, "", e); //$NON-NLS-1$
-				} catch (ThreadChangedException e) {
-					// the thread was stopped and restarted before we got out
-					// of a wait - we're no longer used
-					// we might have been notified instead of the current thread,
-					// so wake it up
-					Logger.global.log(Level.FINE, "", e); //$NON-NLS-1$
-					synchronized (fMutex) {
-						fMutex.notifyAll();
-					}
-				}
-			}
-			
-			/**
-			 * Runs the thread.
-			 * 
-			 * @throws InterruptedException if the thread was interrupted
-			 * @throws ThreadChangedException if the thread changed
-			 */
-			private void run2() throws InterruptedException, ThreadChangedException {
-				synchronized (fMutex) {
-					checkThread();
-					tryHold(); // wait / potential state change
-					assertStates(STOPPED | RUNNING);
-					
-					while (isState(RUNNING)) {
-						waitForTimeout(); // wait / potential state change
-						
-						if (isState(RUNNING))
-							timedOut(); // state change
-						assertStates(STOPPED | IDLE);
-						
-						tryHold(); // wait / potential state change
-						assertStates(STOPPED | RUNNING);
-					}
-					assertStates(STOPPED);
-				}
-			}
-
-			/**
-			 * Check whether the current thread is this thread, throw an
-			 * exception otherwise.
-			 * 
-			 * @throws ThreadChangedException if the current thread changed
-			 */
-			private void checkThread() throws ThreadChangedException {
-				if (fCurrentThread != this)
-					throw new ThreadChangedException();
-			}
-
-			/**
-			 * Waits until the next timeout occurs.
-			 * 
-			 * @throws InterruptedException if the thread was interrupted
-			 * @throws ThreadChangedException if the thread changed
-			 */
-			private void waitForTimeout() throws InterruptedException, ThreadChangedException {
-				long delta;
-				while (isState(RUNNING) && (delta = fNextTimeout - System.currentTimeMillis()) > 0) {
-					delta= Math.max(delta, 50); // wait at least 50ms in order to avoid timing out before the display is going to sleep
-					Logger.global.finest("sleeping for " + delta + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-					fMutex.wait(delta);
-					checkThread();
-				}
-			}
-
-			/**
-			 * Sets the timed out flag and wakes up the display. Transitions to
-			 * <code>IDLE</code> (if in keep-running mode) or
-			 * <code>STOPPED</code>.
-			 */
-			private void timedOut() {
-				Logger.global.finer("timed out"); //$NON-NLS-1$
-				fCurrentTimeoutState.setTimedOut(true);
-				fDisplay.wake(); // wake up call!
-				if (fKeepRunningOnTimeout)
-					checkedTransition(RUNNING, IDLE);
-				else
-					checkedTransition(RUNNING, STOPPED);
-			}
-			
-			/**
-			 * Waits while the state is <code>IDLE</code>, then returns. The
-			 * state must not be <code>RUNNING</code> when calling this
-			 * method. The state is either <code>STOPPED</code> or
-			 * <code>RUNNING</code> when the method returns.
-			 * 
-			 * @throws InterruptedException if the thread was interrupted
-			 * @throws ThreadChangedException if the thread has changed while on
-			 *         hold
-			 */
-			private void tryHold() throws InterruptedException, ThreadChangedException {
-				while (isState(IDLE)) {
-					fMutex.wait(0);
-					checkThread();
-				}
-				assertStates(STOPPED | RUNNING);
-			}
-		};
-		
-		fCurrentThread.start();
-	}
-	
-	/**
-	 * Transitions to <code>nextState</code> if the current state is one of
-	 * <code>possibleStates</code>. Returns <code>true</code> if the
-	 * transition happened, <code>false</code> otherwise.
-	 * 
-	 * @param possibleStates the states which trigger a transition
-	 * @param nextState the state to transition to
-	 * @return <code>true</code> if the transition happened,
-	 *         <code>false</code> otherwise
-	 */
-	private boolean tryTransition(int possibleStates, int nextState) {
-		if (isState(possibleStates)) {
-			Logger.global.finer(name(fState) + " > " + name(nextState) + " (" + name(possibleStates) + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			fState= nextState;
-			return true;
-		}
-		Logger.global.finest("noTransition" + name(fState) + " !> " + name(nextState) + " (" + name(possibleStates) + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		return false;
-	}
-	
-	/**
-	 * Checks the <code>possibleStates</code> and throws an assertion if it is
-	 * not met, then transitions to <code>nextState</code>.
-	 * 
-	 * @param possibleStates the allowed states
-	 * @param nextState the state to transition to
-	 */
-	private void checkedTransition(int possibleStates, int nextState) {
-		assertStates(possibleStates);
-		Logger.global.finer(name(fState) + " > " + name(nextState)); //$NON-NLS-1$
-		fState= nextState;
-	}
-	
-	/**
-	 * Implements state consistency checking.
-	 * 
-	 * @param states the allowed states
-	 * @throws junit.framework.AssertionFailedError if the current state is not
-	 *         in <code>states</code>
-	 */
-	private void assertStates(int states) {
-		Assert.assertTrue("illegal state", isState(states)); //$NON-NLS-1$
-	}
-
-	/**
-	 * Answers <code>true</code> if the current state is in the given
-	 * <code>states</code>.
-	 * 
-	 * @param states the possible states
-	 * @return <code>true</code> if the current state is in the given states,
-	 *         <code>false</code> otherwise
-	 */
-	private boolean isState(int states) {
-		return (states & fState) == fState;
-	}
-	
-	/**
-	 * Pretty print the given states.
-	 * 
-	 * @param states the states
-	 * @return a string representation of the states
-	 */
-	private String name(int states) {
-		StringBuffer buf= new StringBuffer();
-		boolean comma= false;
-		if ((states & RUNNING) == RUNNING) {
-			buf.append("RUNNING"); //$NON-NLS-1$
-			comma= true;
-		}
-		if ((states & STOPPED) == STOPPED) {
-			if (comma)
-				buf.append(","); //$NON-NLS-1$
-			buf.append("STOPPED"); //$NON-NLS-1$
-			comma= true;
-		}
-		if ((states & IDLE) == IDLE) {
-			if (comma)
-				buf.append(","); //$NON-NLS-1$
-			buf.append("IDLE"); //$NON-NLS-1$
-		}
-		return buf.toString();
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EditorTestHelper.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EditorTestHelper.java
deleted file mode 100755
index bccc330..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EditorTestHelper.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-
-
-/**
- * @since 3.1
- */
-public class EditorTestHelper {
-	
-	public static final String TEXT_EDITOR_ID= "org.eclipse.ui.DefaultTextEditor"; //$NON-NLS-1$
-	
-	public static final String COMPILATION_UNIT_EDITOR_ID= "org.eclipse.jdt.ui.CompilationUnitEditor"; //$NON-NLS-1$
-	
-	public static final String RESOURCE_PERSPECTIVE_ID= "org.eclipse.ui.resourcePerspective"; //$NON-NLS-1$
-	
-	public static final String JAVA_PERSPECTIVE_ID= "org.eclipse.jdt.ui.JavaPerspective"; //$NON-NLS-1$
-	
-	public static final String OUTLINE_VIEW_ID= "org.eclipse.ui.views.ContentOutline"; //$NON-NLS-1$
-	
-	public static final String PACKAGE_EXPLORER_VIEW_ID= "org.eclipse.jdt.ui.PackageExplorer"; //$NON-NLS-1$
-	
-	public static final String NAVIGATOR_VIEW_ID= "org.eclipse.ui.views.ResourceNavigator"; //$NON-NLS-1$
-	
-	public static final String INTRO_VIEW_ID= "org.eclipse.ui.internal.introview"; //$NON-NLS-1$
-  
-	public static void closeEditor(IEditorPart editor) {
-		IWorkbenchPartSite site;
-		IWorkbenchPage page;
-		if (editor != null && (site= editor.getSite()) != null && (page= site.getPage()) != null)
-			page.closeEditor(editor, false);
-	}
-	
-	public static void closeAllEditors() {
-		IWorkbenchWindow[] windows= PlatformUI.getWorkbench().getWorkbenchWindows();
-		for (int i= 0; i < windows.length; i++) {
-			IWorkbenchPage[] pages= windows[i].getPages();
-			for (int j= 0; j < pages.length; j++) {
-				IEditorReference[] editorReferences= pages[j].getEditorReferences();
-				for (int k= 0; k < editorReferences.length; k++)
-					closeEditor(editorReferences[k].getEditor(false));
-			}
-		}
-	}
-	
-	/**
-	 * Runs the event queue on the current display until it is empty.
-	 */
-	public static void runEventQueue() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window != null)
-			runEventQueue(window.getShell());
-	}
-	
-	public static void runEventQueue(IWorkbenchPart part) {
-		runEventQueue(part.getSite().getShell());
-	}
-	
-	public static void runEventQueue(Shell shell) {
-		runEventQueue(shell.getDisplay());
-	}
-	
-	public static void runEventQueue(Display display) {
-		while (display.readAndDispatch()) {}
-	}
-	
-	/**
-	 * Runs the event queue on the current display and lets it sleep until the
-	 * timeout elapses.
-	 * 
-	 * @param millis the timeout in milliseconds
-	 */
-	public static void runEventQueue(long millis) {
-		runEventQueue(getActiveDisplay(), millis);
-	}
-	
-	public static void runEventQueue(IWorkbenchPart part, long millis) {
-		runEventQueue(part.getSite().getShell(), millis);
-	}
-	
-	public static void runEventQueue(Shell shell, long millis) {
-		runEventQueue(shell.getDisplay(), millis);
-	}
-	
-	public static void runEventQueue(Display display, long minTime) {
-		if (display != null) {
-			DisplayHelper.sleep(display, minTime);
-		} else {
-			sleep((int) minTime);
-		}
-	}
-	
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-	}
-	
-	public static void forceFocus() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window == null) {
-			IWorkbenchWindow[] wbWindows= PlatformUI.getWorkbench().getWorkbenchWindows();
-			if (wbWindows.length == 0)
-				return;
-			window= wbWindows[0];
-		}
-		Shell shell= window.getShell();
-		if (shell != null && !shell.isDisposed()) {
-			shell.forceActive();
-			shell.forceFocus();
-		}
-	}
-	
-	public static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getActivePage() : null;
-	}
-	
-	public static Display getActiveDisplay() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getShell().getDisplay() : null;
-	} 
-	
-	public static void joinBackgroundActivities() {
-		// Join Building
-		boolean interrupted= true;
-		while (interrupted) {
-			try {
-				Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
-				interrupted= false;
-			} catch (InterruptedException e) {
-				interrupted= true;
-			}
-		} 
-		// Join jobs
-		joinJobs(0, 0, 500);
-	}
-	
-	public static boolean joinJobs(long minTime, long maxTime, long intervalTime) {
-		runEventQueue(minTime);
-		
-		DisplayHelper helper= new DisplayHelper() {
-			public boolean condition() {
-				return allJobsQuiet();
-			}
-		};
-		boolean quiet= helper.waitForCondition(getActiveDisplay(), maxTime > 0 ? maxTime : Long.MAX_VALUE, intervalTime);
-		return quiet;
-	}
-	
-	public static void sleep(int intervalTime) {
-		try {
-			Thread.sleep(intervalTime);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-	
-	public static boolean allJobsQuiet() {
-		IJobManager jobManager= Job.getJobManager();
-		Job[] jobs= jobManager.find(null);
-		for (int i= 0; i < jobs.length; i++) {
-			Job job= jobs[i];
-			int state= job.getState();
-			if (state == Job.RUNNING || state == Job.WAITING) {
-				return false;
-			}
-		}
-		return true;
-	}
-	
-	public static boolean isViewShown(String viewId) {
-		return getActivePage().findViewReference(viewId) != null;
-	}
-	
-	public static boolean showView(String viewId, boolean show) throws PartInitException {
-		IWorkbenchPage activePage= getActivePage();
-		IViewReference view= activePage.findViewReference(viewId);
-		boolean shown= view != null;
-		if (shown != show)
-			if (show)
-				activePage.showView(viewId);
-			else
-				activePage.hideView(view);
-		return shown;
-	}
-	
-	public static void bringToTop() {
-		getActiveWorkbenchWindow().getShell().forceActive();
-	} 
-	
-	public static String showPerspective(String perspective) throws WorkbenchException {
-		String shownPerspective= getActivePage().getPerspective().getId();
-		if (!perspective.equals(shownPerspective)) {
-			IWorkbench workbench= PlatformUI.getWorkbench();
-			IWorkbenchWindow activeWindow= workbench.getActiveWorkbenchWindow();
-			workbench.showPerspective(perspective, activeWindow);
-		}
-		return shownPerspective;
-	}
-	
- 
-	
-	public static IFile[] findFiles(IResource resource) throws CoreException {
-		List files= new ArrayList();
-		findFiles(resource, files);
-		return (IFile[]) files.toArray(new IFile[files.size()]);
-	}
-	
-	private static void findFiles(IResource resource, List files) throws CoreException {
-		if (resource instanceof IFile) {
-			files.add(resource);
-			return;
-		}
-		if (resource instanceof IContainer) {
-			IResource[] resources= ((IContainer) resource).members();
-			for (int i= 0; i < resources.length; i++)
-				findFiles(resources[i], files);
-		}
-	}
-	  
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java
deleted file mode 100644
index 3baed17..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/EmptyPerspective.java
+++ /dev/null
@@ -1,77 +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.ui.tests.harness.util;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api.  It defines an initial
- * layout with no parts, just an editor area.
- */
-public class EmptyPerspective implements IPerspectiveFactory {
-
-    /**
-     * The perspective id for the empty perspective.
-     */
-    public static final String PERSP_ID = "org.eclipse.ui.tests.harness.util.EmptyPerspective";
-
-    /**
-     * The perspective id for the second empty perspective.
-     */
-    public static final String PERSP_ID2 = "org.eclipse.ui.tests.harness.util.EmptyPerspective2";
-
-    private static String LastPerspective;
-    
-    /**
-     * Returns the descriptor for the perspective last opened using this factory.
-     * 
-     * @return the descriptor for the perspective last opened using this factory, or <code>null</code>
-     */
-	public static String getLastPerspective() {
-		return LastPerspective;
-	}
-
-    /**
-     * Sets the descriptor for the perspective last opened using this factory.
-     * 
-     * @param persp the descriptor for the perspective last opened using this factory, or <code>null</code>
-     */
-	public static void setLastPerspective(String perspId) {
-		LastPerspective = perspId;
-	}
-    
-    /**
-     * Constructs a new Default layout engine.
-     */
-    public EmptyPerspective() {
-        super();
-    }
-
-    /**
-     * Defines the initial layout for a perspective.  
-     *
-     * Implementors of this method may add additional views to a
-     * perspective.  The perspective already contains an editor folder
-     * with <code>ID = ILayoutFactory.ID_EDITORS</code>.  Add additional views
-     * to the perspective in reference to the editor folder.
-     *
-     * This method is only called when a new perspective is created.  If
-     * an old perspective is restored from a persistence file then
-     * this method is not called.
-     *
-     * @param factory the factory used to add views to the perspective
-     */
-    public void createInitialLayout(IPageLayout layout) {
-    	setLastPerspective(layout.getDescriptor().getId());
-        // do no layout, this is the empty perspective
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java
deleted file mode 100644
index 47e6b2a..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileTool.java
+++ /dev/null
@@ -1,218 +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.ui.tests.harness.util;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.io.Writer;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-
-
-public class FileTool {
-	
-	/**
-	 * A buffer.
-	 */
-	private static byte[] buffer = new byte[8192];
-	/**
-	 * Unzips the given zip file to the given destination directory
-	 * extracting only those entries the pass through the given
-	 * filter.
-	 * 
-	 * @param filter filters out unwanted zip entries
-	 * @param zipFile the zip file to unzip
-	 * @param dstDir the destination directory
-	 */
-	public static void unzip(ZipFile zipFile, File dstDir) throws IOException {
-		unzip(zipFile, dstDir, dstDir, 0);
-	}
-	
-	private static void unzip(ZipFile zipFile, File rootDstDir, File dstDir, int depth) throws IOException {
-	
-		Enumeration entries = zipFile.entries();
-	
-		try {
-			while(entries.hasMoreElements()){
-				ZipEntry entry = (ZipEntry)entries.nextElement();
-				if(entry.isDirectory()){
-					continue;
-				}
-				String entryName = entry.getName();
-				File file = new File(dstDir, changeSeparator(entryName, '/', File.separatorChar));
-				file.getParentFile().mkdirs();
-				InputStream src = null;
-				OutputStream dst = null;
-				try {
-					src = zipFile.getInputStream(entry);
-					dst = new FileOutputStream(file);
-					transferData(src, dst);
-				} finally {
-					if(dst != null){
-						try {
-							dst.close();
-						} catch(IOException e){
-						}
-					}
-					if(src != null){
-						try {
-							src.close();
-						} catch(IOException e){
-						}
-					}
-				}
-			}
-		} finally {
-			try {
-				zipFile.close();
-			} catch(IOException e){
-			}
-		}
-	}
-	/**
-	 * Returns the given file path with its separator
-	 * character changed from the given old separator to the
-	 * given new separator.
-	 * 
-	 * @param path a file path
-	 * @param oldSeparator a path separator character
-	 * @param newSeparator a path separator character
-	 * @return the file path with its separator character
-	 * changed from the given old separator to the given new
-	 * separator
-	 */
-	public static String changeSeparator(String path, char oldSeparator, char newSeparator){
-		return path.replace(oldSeparator, newSeparator);
-	}
-	/**
-	 * Copies all bytes in the given source file to
-	 * the given destination file.
-	 * 
-	 * @param source the given source file
-	 * @param destination the given destination file
-	 */
-	public static void transferData(File source, File destination) throws IOException {
-		destination.getParentFile().mkdirs();
-		InputStream is = null;
-		OutputStream os = null;
-		try {
-			is = new FileInputStream(source);
-			os = new FileOutputStream(destination);
-			transferData(is, os);
-		} finally {
-			if(os != null){
-				try {
-					os.close();
-				} catch(IOException e){
-				}
-			}
-			if(is != null){
-				try {
-					is.close();
-				} catch(IOException e){
-				}
-			}
-		}
-	}
-	/**
-	 * Copies all bytes in the given source stream to
-	 * the given destination stream. Neither streams
-	 * are closed.
-	 * 
-	 * @param source the given source stream
-	 * @param destination the given destination stream
-	 */
-	public static void transferData(InputStream source, OutputStream destination) throws IOException {
-		int bytesRead = 0;
-		while(bytesRead != -1){
-			bytesRead = source.read(buffer, 0, buffer.length);
-			if(bytesRead != -1){
-				destination.write(buffer, 0, bytesRead);
-			}
-		}
-	}
-
-	/**
-	 * Copies the given source file to the given destination file.
-	 * 
-	 * @param src the given source file
-	 * @param dst the given destination file
-	 */
-	public static void copy(File src, File dst) throws IOException {
-		if(src.isDirectory()){
-			String[] srcChildren = src.list();
-			for(int i = 0; i < srcChildren.length; ++i){
-				File srcChild= new File(src, srcChildren[i]);
-				File dstChild= new File(dst, srcChildren[i]);
-				copy(srcChild, dstChild);
-			}
-		} else
-			transferData(src, dst);
-	}
-
-	public static File getFileInPlugin(Plugin plugin, IPath path) {
-		try {
-			URL installURL= plugin.getBundle().getEntry(path.toString());
-			URL localURL= Platform.asLocalURL(installURL);
-			return new File(localURL.getFile());
-		} catch (IOException e) {
-			return null;
-		}
-	}
-
-	public static StringBuffer read(String fileName) throws IOException {
-		return read(new FileReader(fileName));
-	}
-
-	public static StringBuffer read(Reader reader) throws IOException {
-		StringBuffer s= new StringBuffer();
-		try {
-			char[] buffer= new char[8196];
-			int chars= reader.read(buffer);
-			while (chars != -1) {
-				s.append(buffer, 0, chars);
-				chars= reader.read(buffer);
-			}
-		} finally {
-			try {
-				reader.close();
-			} catch (IOException e) {
-			}
-		}
-		return s;
-	}
-
-	public static void write(String fileName, StringBuffer content) throws IOException {
-		Writer writer= new FileWriter(fileName);
-		try {
-			writer.write(content.toString());
-		} finally {
-			try {
-				writer.close();
-			} catch (IOException e) {
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java
deleted file mode 100644
index ae6685f..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/FileUtil.java
+++ /dev/null
@@ -1,73 +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.ui.tests.harness.util;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * <code>FileUtil</code> contains methods to create and
- * delete files and projects.
- */
-public class FileUtil {
-
-    /**
-     * Creates a new project.
-     * 
-     * @param name the project name
-     */
-    public static IProject createProject(String name) throws CoreException {
-        IWorkspace ws = ResourcesPlugin.getWorkspace();
-        IWorkspaceRoot root = ws.getRoot();
-        IProject proj = root.getProject(name);
-        if (!proj.exists())
-            proj.create(null);
-        if (!proj.isOpen())
-            proj.open(null);
-        return proj;
-    }
-
-    /**
-     * Deletes a project.
-     * 
-     * @param proj the project
-     */
-    public static void deleteProject(IProject proj) throws CoreException {
-        proj.delete(true, null);
-    }
-
-    /**
-     * Creates a new file in a project.
-     * 
-     * @param name the new file name
-     * @param proj the existing project
-     * @return the new file
-     */
-    public static IFile createFile(String name, IProject proj)
-            throws CoreException {
-        IFile file = proj.getFile(name);
-        if (!file.exists()) {
-            String str = " ";
-            InputStream in = new ByteArrayInputStream(str.getBytes());
-            file.create(in, true, null);
-        }
-        return file;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java
deleted file mode 100644
index 2a9111a..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/ImageTests.java
+++ /dev/null
@@ -1,43 +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.tests.harness.util;
-
-import java.util.Arrays;
-
-import junit.framework.Assert;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-
-/**
- * @since 3.1
- */
-public final class ImageTests {
-
-	/**
-	 * 
-	 */
-	private ImageTests() {
-		super();
-	}
-
-    public static void assertEquals(Image i1, Image i2) {
-        ImageData data1 = i1.getImageData();
-        ImageData data2 = i2.getImageData();
-        Assert.assertTrue(Arrays.equals(data1.data, data2.data));
-    }
-    
-    public static void assertNotEquals(Image i1, Image i2) {
-        ImageData data1 = i1.getImageData();
-        ImageData data2 = i2.getImageData();
-        Assert.assertFalse(Arrays.equals(data1.data, data2.data));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java
deleted file mode 100644
index 59e7701..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/Mocks.java
+++ /dev/null
@@ -1,332 +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
- *     Brad Reynolds (bug 146435)
- *******************************************************************************/
-package org.eclipse.ui.tests.harness.util;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.AssertionFailedError;
-
-/**
- * Utility class for creating mock objects for public interfaces.
- * 
- * @since 3.3
- *
- */
-public class Mocks {
-
-	public static interface EqualityComparator {
-		public boolean equals(Object o1, Object o2);
-	}
-
-	private static EqualityComparator defaultEqualityComparator = new EqualityComparator() {
-		public boolean equals(Object o1, Object o2) {
-			return o1 == null ? o2 == null : o1.equals(o2);
-		}
-	};
-
-	private static EqualityComparator indifferentEqualityComparator = new EqualityComparator() {
-		public boolean equals(Object o1, Object o2) {
-			return true;
-		}
-	};
-
-	private static interface Mock {
-		public MockInvocationHandler getMockInvocationHandler();
-	}
-
-	private static Method getMockInvocationHandlerMethod;
-
-	private static Method equalsMethod;
-
-	static {
-		try {
-			getMockInvocationHandlerMethod = Mock.class.getMethod(
-					"getMockInvocationHandler", new Class[0]);
-			equalsMethod = Object.class.getMethod("equals",
-					new Class[] { Object.class });
-		} catch (Exception e) {
-			// ignore, will lead to NullPointerExceptions later on
-		}
-	}
-
-	private static final class MockInvocationHandler implements
-			InvocationHandler {
-
-		private class MethodCall {
-			private final Method method;
-
-			private final Object[] args;
-
-			private Object returnValue = null;
-
-			public MethodCall(Method method, Object[] args) {
-				this.method = method;
-				this.args = args;
-			}
-
-			public boolean equals(Object obj) {
-				if (!(obj instanceof MethodCall)) {
-					return false;
-				}
-				MethodCall other = (MethodCall) obj;
-				if (other.method != method
-						|| (other.args == null && args != null)
-						|| (other.args != null && args == null)
-						|| (args != null && other.args.length != args.length)) {
-					return false;
-				}
-				if (args != null) {
-					for (int i = 0; i < args.length; i++) {
-						if (!equalityComparator.equals(args[i], other.args[i])) {
-							return false;
-						}
-					}
-				}
-				return true;
-			}
-
-			public void setReturnValue(Object object) {
-				returnValue = object;
-			}
-
-			public Object getReturnValue() {
-				return returnValue;
-			}
-			
-			public String toString() {
-				return method.toString();
-			}
-		}
-
-		List previousCallHistory = null;
-
-		List currentCallHistory = new ArrayList();
-
-		private final boolean ordered;
-
-		private final EqualityComparator equalityComparator;
-
-		public MockInvocationHandler(boolean ordered,
-				EqualityComparator equalityComparator) {
-			this.ordered = ordered;
-			this.equalityComparator = equalityComparator;
-		}
-
-		public Object invoke(Object proxy, Method method, Object[] args)
-				throws Throwable {
-			if (getMockInvocationHandlerMethod.equals(method)) {
-				return this;
-			}
-			if (equalsMethod.equals(method)) {
-				return new Boolean(proxy == args[0]);
-			}
-			MethodCall methodCall = new MethodCall(method, args);
-			if (previousCallHistory != null) {
-				// we are in replay mode
-				int indexOfMethodCall = previousCallHistory.indexOf(methodCall);
-				if (indexOfMethodCall != -1) {
-					// copy return value over to this method call
-					methodCall.setReturnValue(((MethodCall) previousCallHistory
-							.get(indexOfMethodCall)).getReturnValue());
-				} else {
-					throw new AssertionFailedError("unexpected method call: "
-							+ method.getName());
-				}
-				if (ordered) {
-					if (previousCallHistory.size() <= currentCallHistory.size()) {
-						throw new AssertionFailedError("extra method call: "
-								+ method.getName());
-					}
-					MethodCall previousCall = (MethodCall) previousCallHistory
-							.get(currentCallHistory.size());
-					if (!methodCall.equals(previousCall)) {
-						throw new AssertionFailedError(
-								"different method call (expected:"
-										+ previousCall.method.getName()
-										+ ", actual:" + method.getName() + ")");
-					}
-				}
-			}
-			currentCallHistory.add(methodCall);
-			Class returnType = method.getReturnType();
-			if (returnType.isPrimitive() && void.class != returnType) {
-				Object result = null;
-				Object returnValue = methodCall.getReturnValue();
-
-				if (returnType == boolean.class) {
-					result = (returnValue != null) ? (Boolean) returnValue
-							: Boolean.FALSE;
-				} else if (returnType == byte.class) {
-					result = (returnValue != null) ? (Byte) returnValue
-							: new Byte((byte) 0);
-				} else if (returnType == char.class) {
-					result = (returnValue != null) ? (Character) returnValue
-							: new Character((char) 0);
-				} else if (returnType == short.class) {
-					result = (returnValue != null) ? (Short) returnValue
-							: new Short((short) 0);
-				} else if (returnType == int.class) {
-					result = (returnValue != null) ? (Integer) returnValue
-							: new Integer(0);
-				} else if (returnType == long.class) {
-					result = (returnValue != null) ? (Long) returnValue
-							: new Long(0);
-				} else if (returnType == float.class) {
-					result = (returnValue != null) ? (Float) returnValue
-							: new Float(0);
-				} else if (returnType == double.class) {
-					result = (returnValue != null) ? (Double) returnValue
-							: new Double(0);
-				}
-
-				return result;
-			}
-			return methodCall.getReturnValue();
-		}
-
-		public void replay() {
-			previousCallHistory = currentCallHistory;
-			currentCallHistory = new ArrayList();
-		}
-
-		public void verify() {
-			if (previousCallHistory == null) {
-				if (currentCallHistory.size() == 0) {
-					// mock object was not used at all
-					return;
-				}
-				throw new AssertionFailedError("unexpected");
-			}
-			if (ordered) {
-				int numMissingCalls = previousCallHistory.size()
-						- currentCallHistory.size();
-				if (numMissingCalls > 0) {
-					throw new AssertionFailedError("missing method calls ("
-							+ numMissingCalls + ", first is: " + previousCallHistory.get(currentCallHistory.size()) + ")");
-				}
-				for (int i = 0; i < previousCallHistory.size(); i++) {
-					if (!previousCallHistory.get(i).equals(
-							currentCallHistory.get(i))) {
-						throw new AssertionFailedError(
-								"method call did not match (" + i + " of "
-										+ currentCallHistory.size() + ")");
-					}
-				}
-			} else {
-				for (Iterator it = previousCallHistory.iterator(); it.hasNext();) {
-					MethodCall methodCall = (MethodCall) it.next();
-					if (!currentCallHistory.contains(methodCall)) {
-						throw new AssertionFailedError("missing method call:"
-								+ methodCall.method.getName());
-					}
-				}
-			}
-			reset();
-		}
-
-		public void reset() {
-			previousCallHistory = null;
-			currentCallHistory = new ArrayList();
-		}
-
-		public void setLastReturnValue(Object object) {
-			MethodCall methodCall = (MethodCall) currentCallHistory
-					.get(currentCallHistory.size() - 1);
-			methodCall.setReturnValue(object);
-		}
-	}
-
-	/**
-	 * Creates a mock object that neither looks at the order of method calls nor
-	 * at the arguments.
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations but
-	 *         not for equality of method arguments
-	 */
-	public static Object createRelaxedMock(Class interfaceType) {
-		return createMock(interfaceType, false, indifferentEqualityComparator);
-	}
-
-	/**
-	 * Creates a mock object that does not look at the arguments, but checks
-	 * that the order of calls is as expected.
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations but
-	 *         not for equality of method arguments
-	 */
-	public static Object createOrderedMock(Class interfaceType) {
-		return createMock(interfaceType, true, indifferentEqualityComparator);
-	}
-
-	/**
-	 * creates a fussy mock object
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations and
-	 *         for equality of method arguments
-	 */
-	public static Object createMock(Class interfaceType) {
-		return createMock(interfaceType, true, defaultEqualityComparator);
-	}
-
-	/**
-	 * creates a fussy mock object with a comparator
-	 * 
-	 * @param interfaceType
-	 * @return a mock object that checks for the order of method invocations and
-	 *         uses the given comparator to compare method arguments
-	 */
-	public static Object createMock(Class interfaceType,
-			EqualityComparator equalityComparator) {
-		return createMock(interfaceType, true, equalityComparator);
-	}
-
-	private static Object createMock(Class interfaceType, boolean ordered,
-			EqualityComparator equalityComparator) {
-		if (!interfaceType.isInterface()) {
-			throw new IllegalArgumentException();
-		}
-		MockInvocationHandler mockInvocationHandler = new MockInvocationHandler(
-				ordered, equalityComparator);
-		Object newProxyInstance = Proxy.newProxyInstance(Mocks.class
-				.getClassLoader(), new Class[] { interfaceType, Mock.class },
-				mockInvocationHandler);
-		return newProxyInstance;
-	}
-
-	public static void startChecking(Object mock) {
-		getMockInvocationHandler(mock).replay();
-	}
-
-	public static void verify(Object mock) {
-		getMockInvocationHandler(mock).verify();
-	}
-
-	public static void reset(Object mock) {
-		getMockInvocationHandler(mock).reset();
-	}
-
-	private static MockInvocationHandler getMockInvocationHandler(Object mock) {
-		return ((Mock) mock).getMockInvocationHandler();
-	}
-
-	public static void setLastReturnValue(Object mock, Object object) {
-		getMockInvocationHandler(mock).setLastReturnValue(object);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java
deleted file mode 100644
index 17cd7be..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/PlatformUtil.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-import org.eclipse.jface.util.Util;
-
-/**
- * The Platform Util class is used to test for which platform we are in
- */
-public class PlatformUtil {
-    
-    /**
-     * Determine if we are running on the Mac platform.
-     * 
-     * @return true if we are runnig on the Mac platform.
-     */
-    public static boolean onMac() {
-        return Util.isMac();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/RCPTestWorkbenchAdvisor.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/RCPTestWorkbenchAdvisor.java
deleted file mode 100644
index aacba28..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/RCPTestWorkbenchAdvisor.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.DisplayAccess;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-
-/**
- * This advisor adds the ability to exit the workbench after it has started up.
- * This is done with a call to close from within the advisor's event idle loop.
- * The number of times the idle is called before exiting can be configured. Test
- * cases should subclass this advisor and add their own callback methods if
- * needed.
- * 
- * @since 3.1
- */
-public class RCPTestWorkbenchAdvisor extends WorkbenchAdvisor {
-
-	public static Boolean asyncDuringStartup = null;
-	
-	// the following fields are set by the threads that attempt sync/asyncs
-	// during startup.
-	public static Boolean syncWithDisplayAccess = null;
-	public static Boolean asyncWithDisplayAccess = null;
-	public static Boolean syncWithoutDisplayAccess = null;
-	public static Boolean asyncWithoutDisplayAccess = null;
-	
-	private static boolean started = false;
-
-	public static boolean isSTARTED() {
-		synchronized (RCPTestWorkbenchAdvisor.class) {
-			return started;
-		}
-	}
-
-	/** Default value of -1 causes the option to be ignored. */
-	private int idleBeforeExit = -1;
-
-	/**
-	 * Traps whether or not calls to displayAccess in the UI thread resulted in
-	 * an exception. Should be false.
-	 */
-	public static boolean displayAccessInUIThreadAllowed;
-
-	public RCPTestWorkbenchAdvisor() {
-		// default value means the advisor will not trigger the workbench to
-		// close
-		this.idleBeforeExit = -1;
-	}
-
-	public RCPTestWorkbenchAdvisor(int idleBeforeExit) {
-		this.idleBeforeExit = idleBeforeExit;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize(org.eclipse.ui.application.IWorkbenchConfigurer)
-	 */
-	public void initialize(IWorkbenchConfigurer configurer) {
-		super.initialize(configurer);
-
-		// The RCP tests are currently run in the context of the Platform
-		// product, which specifies
-		// the Resource perspective as the default, and also reports progress on
-		// startup.
-		// We don't want either in effect when running the RCP tests.
-		// Also disable intro.
-		IPreferenceStore prefs = PlatformUI.getPreferenceStore();
-		prefs
-				.setValue(IWorkbenchPreferenceConstants.DEFAULT_PERSPECTIVE_ID,
-						"");
-		prefs.setValue(IWorkbenchPreferenceConstants.SHOW_PROGRESS_ON_STARTUP,
-				false);
-		prefs.setValue(IWorkbenchPreferenceConstants.SHOW_INTRO, false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId()
-	 */
-	public String getInitialWindowPerspectiveId() {
-		return EmptyPerspective.PERSP_ID;
-	}
-
-	public void eventLoopIdle(final Display display) {
-		// Bug 107369: RCP test suite hangs on GTK
-		if (idleBeforeExit != -1 && --idleBeforeExit <= 0)
-			PlatformUI.getWorkbench().close();
-
-		// bug 73184: On the mac the parent eventLoopIdle will put the display
-		// to sleep
-		// until there are events (e.g., mouse jiggled).
-// if (!Util.isCarbon)
-// super.eventLoopIdle(display);
-
-		if (idleBeforeExit == -1)
-			return;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
-	 */
-	public void preStartup() {
-		super.preStartup();
-		final Display display = Display.getCurrent();
-		if (display != null) {
-			display.asyncExec(new Runnable() {
-
-				public void run() {
-					if (isSTARTED())
-						asyncDuringStartup = Boolean.FALSE;
-					else
-						asyncDuringStartup = Boolean.TRUE;
-				}
-			});
-		}
-		
-		// start a bunch of threads that are going to do a/sync execs. For some
-		// of them, call DisplayAccess.accessDisplayDuringStartup. For others,
-		// dont. Those that call this method should have their runnables invoked
-		// prior to the method isSTARTED returning true.
-		
-		setupAsyncDisplayThread(true, display);
-		setupSyncDisplayThread(true, display);
-		setupAsyncDisplayThread(false, display);
-		setupSyncDisplayThread(false, display);
-		
-		try {
-			DisplayAccess.accessDisplayDuringStartup();
-			displayAccessInUIThreadAllowed = true;
-		}
-		catch (IllegalStateException e) {
-			displayAccessInUIThreadAllowed = false;
-		}
-	}
-
-	/**
-	 * @param display
-	 */
-	private void setupSyncDisplayThread(final boolean callDisplayAccess, final Display display) {
-		Thread syncThread = new Thread() {
-			/* (non-Javadoc)
-			 * @see java.lang.Thread#run()
-			 */
-			public void run() {
-				if (callDisplayAccess)
-					DisplayAccess.accessDisplayDuringStartup();
-				try {
-					display.syncExec(new Runnable() {
-						public void run() {
-							synchronized (RCPTestWorkbenchAdvisor.class) {
-								if (callDisplayAccess)
-									syncWithDisplayAccess = !isSTARTED() ? Boolean.TRUE
-											: Boolean.FALSE;
-								else
-									syncWithoutDisplayAccess = !isSTARTED() ? Boolean.TRUE
-											: Boolean.FALSE;
-							}
-						}
-					});
-				} catch (SWTException e) {
-					// this can happen because we shut down the workbench just
-					// as soon as we're initialized - ie: when we're trying to
-					// run this runnable in the deferred case.
-				}
-			}
-		};
-		syncThread.setDaemon(true);
-		syncThread.start();
-	}
-
-	/**
-	 * @param display
-	 */
-	private void setupAsyncDisplayThread(final boolean callDisplayAccess, final Display display) {
-		Thread asyncThread = new Thread() {
-			/* (non-Javadoc)
-			 * @see java.lang.Thread#run()
-			 */
-			public void run() {
-				if (callDisplayAccess)
-					DisplayAccess.accessDisplayDuringStartup();
-				display.asyncExec(new Runnable() {
-					public void run() {
-						synchronized (RCPTestWorkbenchAdvisor.class) {
-							if (callDisplayAccess)
-								asyncWithDisplayAccess = !isSTARTED() ? Boolean.TRUE
-										: Boolean.FALSE;
-							else
-								asyncWithoutDisplayAccess = !isSTARTED() ? Boolean.TRUE
-										: Boolean.FALSE;
-						}
-					}});
-			}
-		};
-		asyncThread.setDaemon(true);
-		asyncThread.start();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.application.WorkbenchAdvisor#postStartup()
-	 */
-	public void postStartup() {
-		super.postStartup();
-		synchronized (RCPTestWorkbenchAdvisor.class) {
-			started = true;
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/SWTEventHelper.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/SWTEventHelper.java
deleted file mode 100755
index 51bc34d..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/SWTEventHelper.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DragDetectEvent;
-import org.eclipse.swt.events.DragDetectListener;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * @since 3.1
- */
-public class SWTEventHelper {
-
-	public static void pressKeyCode(Display display, int keyCode) {
-		pressKeyCode(display, keyCode, true);
-	}
-
-	public static void pressKeyCode(Display display, int keyCode,
-			boolean runEventQueue) {
-		keyCodeDown(display, keyCode, runEventQueue);
-		keyCodeUp(display, keyCode, runEventQueue);
-	}
-
-	public static void pressKeyCodeCombination(Display display, int[] keyCodes) {
-		pressKeyCodeCombination(display, keyCodes, true);
-	}
-
-	public static void pressKeyCodeCombination(Display display, int[] keyCodes,
-			boolean runEventQueue) {
-		for (int i = 0; i < keyCodes.length; i++)
-			keyCodeDown(display, keyCodes[i], runEventQueue);
-		for (int i = keyCodes.length - 1; i >= 0; i--)
-			keyCodeUp(display, keyCodes[i], runEventQueue);
-	}
-
-	public static void keyCodeDown(Display display, int keyCode) {
-		keyCodeEvent(display, SWT.KeyDown, keyCode, true);
-	}
-
-	public static void keyCodeDown(Display display, int keyCode,
-			boolean runEventQueue) {
-		keyCodeEvent(display, SWT.KeyDown, keyCode, runEventQueue);
-	}
-
-	public static void keyCodeUp(Display display, int keyCode) {
-		keyCodeEvent(display, SWT.KeyUp, keyCode, true);
-	}
-
-	public static void keyCodeUp(Display display, int keyCode,
-			boolean runEventQueue) {
-		keyCodeEvent(display, SWT.KeyUp, keyCode, runEventQueue);
-	}
-
-	private static Event fgKeyCodeEvent = new Event();
-
-	public static void keyCodeEvent(Display display, int type, int keyCode,
-			boolean runEventQueue) {
-		fgKeyCodeEvent.type = type;
-		fgKeyCodeEvent.keyCode = keyCode;
-		postEvent(display, fgKeyCodeEvent, runEventQueue);
-	}
-
-	public static void pressKeyChar(Display display, char keyChar) {
-		pressKeyChar(display, keyChar, true);
-	}
-
-	public static void pressKeyChar(Display display, char keyChar,
-			boolean runEventQueue) {
-		keyCharDown(display, keyChar, runEventQueue);
-		keyCharUp(display, keyChar, runEventQueue);
-	}
-
-	public static void pressKeyCharCombination(Display display, char[] keyChars) {
-		pressKeyCharCombination(display, keyChars, true);
-	}
-
-	public static void pressKeyCharCombination(Display display,
-			char[] keyChars, boolean runEventQueue) {
-		for (int i = 0; i < keyChars.length; i++)
-			keyCharDown(display, keyChars[i], runEventQueue);
-		for (int i = keyChars.length - 1; i >= 0; i--)
-			keyCharUp(display, keyChars[i], runEventQueue);
-	}
-
-	public static void keyCharDown(Display display, char keyChar,
-			boolean runEventQueue) {
-		keyCharEvent(display, SWT.KeyDown, keyChar, runEventQueue);
-	}
-
-	public static void keyCharUp(Display display, char keyChar,
-			boolean runEventQueue) {
-		keyCharEvent(display, SWT.KeyUp, keyChar, runEventQueue);
-	}
-
-	private static Event fgKeyCharEvent = new Event();
-
-	public static void keyCharEvent(Display display, int type, char keyChar,
-			boolean runEventQueue) {
-		fgKeyCharEvent.type = type;
-		fgKeyCharEvent.character = keyChar;
-		postEvent(display, fgKeyCharEvent, runEventQueue);
-	}
-
-	private static void postEvent(final Display display, final Event event,
-			boolean runEventQueue) {
-		DisplayHelper helper = new DisplayHelper() {
-			public boolean condition() {
-				return display.post(event);
-			}
-		};
-		Assert.assertTrue(helper.waitForCondition(display, 1000));
-
-		if (runEventQueue)
-			EditorTestHelper.runEventQueue();
-
-	}
-
-	private static Event fgMouseMoveEvent = new Event();
-
-	public static void mouseMoveEvent(Display display, int x, int y,
-			boolean runEventQueue) {
-		fgMouseMoveEvent.type = SWT.MouseMove;
-		fgMouseMoveEvent.x = x;
-		fgMouseMoveEvent.y = y;
-		postEvent(display, fgMouseMoveEvent, runEventQueue);
-	}
-
-	public static void mouseDownEvent(Display display, int button,
-			boolean runEventQueue) {
-		mouseButtonEvent(display, SWT.MouseDown, button, runEventQueue);
-	}
-
-	public static void mouseUpEvent(Display display, int button,
-			boolean runEventQueue) {
-		mouseButtonEvent(display, SWT.MouseUp, button, runEventQueue);
-	}
-
-	private static Event fgMouseButtonEvent = new Event();
-
-	public static void mouseButtonEvent(Display display, int type, int button,
-			boolean runEventQueue) {
-		fgMouseButtonEvent.type = type;
-		fgMouseButtonEvent.button = button;
-		postEvent(display, fgMouseButtonEvent, runEventQueue);
-	}
-
-	private static boolean _dragDetected;
-
-	// Returns true if it worked
-	public static boolean performDnD(Widget startItem, Widget dropItem) {
-
-		Control startControl = null;
-		
-		Rectangle boundsStart = null, boundsEnd = null;
-
-		if (startItem instanceof TreeItem) {
-			startControl = ((TreeItem) startItem).getParent();
-			boundsStart = Display.getCurrent().map(startControl, null,
-					((TreeItem)startItem).getBounds());
-		} else if (startItem instanceof Control) {
-			startControl = (Control) startItem;
-			boundsStart = Display.getCurrent().map(startControl, null, startControl.getBounds());
-		}
-		
-		if (dropItem instanceof TreeItem) {
-			boundsEnd = Display.getCurrent().map(((TreeItem)dropItem).getParent(), null,
-					((TreeItem)dropItem).getBounds());
-		} else if (dropItem instanceof Control) {
-			boundsEnd = Display.getCurrent().map(((Control)dropItem), null,
-					((Control)dropItem).getBounds());
-		}
-		
-		startControl.addDragDetectListener(new DragDetectListener() {
-			public void dragDetected(DragDetectEvent e) {
-				_dragDetected = true;
-			}
-		});
-
-		
-		int count = 0;
-		_dragDetected = false;
-
-		// On some platforms (Windows and Mac), drag desture detection does not
-		// always happen
-		while (!_dragDetected && ++count < 4) {
-			performDnDInternal(boundsStart, boundsEnd);
-			if (!_dragDetected) {
-				if (count < 4)
-					System.out.println("WARNING: DnD failed - drag gesture not detected retrying");
-				DisplayHelper.sleep(Display.getCurrent(), 1000);
-			}
-		}
-
-		if (!_dragDetected) {
-			System.out
-					.println("WARNING: DnD FAILED after " + count + " tries, giving up");
-		}
-		return _dragDetected;
-	}
-
-	public static void performDnDInternal(Rectangle boundsStart,
-			Rectangle boundsEnd) {
-
-		int fudge = 0;
-		int gestureSize = 10;
-
-		int xstart = boundsStart.x + fudge;
-		int ystart = boundsStart.y + fudge;
-		int xend = boundsEnd.x + fudge;
-		int yend = boundsEnd.y + fudge;
-
-		boolean possibleTrue = true;
-
-		if (Platform.getOS().equals(Platform.OS_WIN32)) {
-			possibleTrue = false;
-			gestureSize = 3;
-		}
-
-		SWTEventHelper.mouseMoveEvent(Display.getCurrent(), xstart, ystart,
-				false);
-		SWTEventHelper.mouseDownEvent(Display.getCurrent(), 1, false);
-
-		// Make it see a drag gesture
-		// FIXME - this is not detected sometimes on Windows and the Mac
-		SWTEventHelper.mouseMoveEvent(Display.getCurrent(), xstart
-				+ gestureSize, ystart, possibleTrue);
-		SWTEventHelper.mouseMoveEvent(Display.getCurrent(), xstart, ystart,
-				possibleTrue);
-
-		while (xstart != xend) {
-			SWTEventHelper.mouseMoveEvent(Display.getCurrent(), xstart, ystart,
-					false);
-			if (xstart < xend)
-				xstart++;
-			else
-				xstart--;
-		}
-
-		while (ystart != yend) {
-			SWTEventHelper.mouseMoveEvent(Display.getCurrent(), xstart, ystart,
-					false);
-			if (ystart < yend)
-				ystart++;
-			else
-				ystart--;
-		}
-
-		SWTEventHelper.mouseMoveEvent(Display.getCurrent(), xend, yend,
-				possibleTrue);
-		SWTEventHelper.mouseUpEvent(Display.getCurrent(), 1, possibleTrue);
-
-		DisplayHelper.sleep(Display.getCurrent(), 100);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/TweakletCheckTest.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/TweakletCheckTest.java
deleted file mode 100644
index edb895f..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/TweakletCheckTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * Tests to see if we're running with Tweaklets. If so, fail early so we don't
- * waste an entire morning trying to figure out why all of the part tests are
- * failing.
- * 
- * @since 3.4
- * 
- */
-public class TweakletCheckTest extends TestCase {
-
-	/**
-	 * 
-	 */
-	public TweakletCheckTest() {
-		setName("test for tweaklets");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#run(junit.framework.TestResult)
-	 */
-	public void run(TestResult result) {
-
-		result.startTest(this);
-		try {
-			IExtensionPoint point = Platform.getExtensionRegistry()
-
-			.getExtensionPoint("org.eclipse.ui.internalTweaklets");
-			boolean abort = point.getExtensions().length > 0;
-
-			if (abort) {
-				Error error = new Error(
-						"Tweaklets present in test setup - all test results are now suspect.  Please restart the tests with the tweaklet extensions removed.");
-				result.addError(this, error);
-				result.stop();
-			}
-		} finally {
-			result.endTest(this);
-		}
-
-	}
-
-	public static Test suite() {
-		TestSuite test = new TestSuite();
-		test.addTest(new TweakletCheckTest());
-		test.addTest(new TweakletCheckTest());
-		// should not run if there are tweaklets present - the first run should
-		// aggressively take down the framework.
-		return test;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java
deleted file mode 100644
index 82223ea..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/harness/util/UITestCase.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.harness.util;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-
-/**
- * <code>UITestCase</code> is a useful super class for most
- * UI tests cases.  It contains methods to create new windows 
- * and pages.  It will also automatically close the test 
- * windows when the tearDown method is called.
- */
-public abstract class UITestCase extends TestCase {
-
-	/**
-	 * Returns the workbench page input to use for newly created windows.
-	 *  
-	 * @return the page input to use for newly created windows
-	 * @since 3.1
-	 */
-	public static IAdaptable getPageInput() {
-		return ResourcesPlugin.getWorkspace().getRoot();
-	}
-	
-	class TestWindowListener implements IWindowListener {
-        private boolean enabled = true;
-
-        public void setEnabled(boolean enabled) {
-            this.enabled = enabled;
-        }
-
-        public void windowActivated(IWorkbenchWindow window) {
-            // do nothing
-        }
-
-        public void windowDeactivated(IWorkbenchWindow window) {
-            // do nothing
-        }
-
-        public void windowClosed(IWorkbenchWindow window) {
-            if (enabled)
-                testWindows.remove(window);
-        }
-
-        public void windowOpened(IWorkbenchWindow window) {
-            if (enabled)
-                testWindows.add(window);
-        }
-    }
-
-    protected IWorkbench fWorkbench;
-
-    private List testWindows;
-
-    private TestWindowListener windowListener;
-
-    public UITestCase(String testName) {
-        super(testName);
-        //		ErrorDialog.NO_UI = true;
-        fWorkbench = PlatformUI.getWorkbench();
-        testWindows = new ArrayList(3);
-    }
-
-	/**
-	 * Fails the test due to the given throwable.
-	 */
-	public static void fail(String message, Throwable e) {
-		// If the exception is a CoreException with a multistatus
-		// then print out the multistatus so we can see all the info.
-		if (e instanceof CoreException) {
-			IStatus status = ((CoreException) e).getStatus();
-			write(status, 0);
-		} else
-			e.printStackTrace();
-		fail(message + ": " + e);
-	}
-
-	private static void indent(OutputStream output, int indent) {
-		for (int i = 0; i < indent; i++)
-			try {
-				output.write("\t".getBytes());
-			} catch (IOException e) {
-				// ignore
-			}
-	}
-
-	private static void write(IStatus status, int indent) {
-		PrintStream output = System.out;
-		indent(output, indent);
-		output.println("Severity: " + status.getSeverity());
-
-		indent(output, indent);
-		output.println("Plugin ID: " + status.getPlugin());
-
-		indent(output, indent);
-		output.println("Code: " + status.getCode());
-
-		indent(output, indent);
-		output.println("Message: " + status.getMessage());
-
-		if (status.getException() != null) {
-			indent(output, indent);
-			output.print("Exception: ");
-			status.getException().printStackTrace(output);
-		}
-
-		if (status.isMultiStatus()) {
-			IStatus[] children = status.getChildren();
-			for (int i = 0; i < children.length; i++)
-				write(children[i], indent + 1);
-		}
-	}
-
-	/**
-     * Adds a window listener to the workbench to keep track of
-     * opened test windows.
-     */
-    private void addWindowListener() {
-        windowListener = new TestWindowListener();
-        fWorkbench.addWindowListener(windowListener);
-    }
-
-    /**
-     * Removes the listener added by <code>addWindowListener</code>. 
-     */
-    private void removeWindowListener() {
-        if (windowListener != null) {
-            fWorkbench.removeWindowListener(windowListener);
-        }
-    }
-
-    /**
-     * Outputs a trace message to the trace output device, if enabled.
-     * By default, trace messages are sent to <code>System.out</code>.
-     * 
-     * @param msg the trace message
-     */
-    protected void trace(String msg) {
-        System.err.println(msg);
-    }
-
-    /**
-     * Simple implementation of setUp. Subclasses are prevented 
-     * from overriding this method to maintain logging consistency.
-     * doSetUp() should be overriden instead.
-     */
-    protected final void setUp() throws Exception {
-    	super.setUp();
-    	trace("----- " + this.getName()); //$NON-NLS-1$
-        trace(this.getName() + ": setUp..."); //$NON-NLS-1$
-        addWindowListener();
-        doSetUp();
-       
-    }
-
-    /**
-     * Sets up the fixture, for example, open a network connection.
-     * This method is called before a test is executed.
-     * The default implementation does nothing.
-     * Subclasses may extend.
-     */
-    protected void doSetUp() throws Exception {
-        // do nothing.
-    }
-
-    /**
-     * Simple implementation of tearDown.  Subclasses are prevented 
-     * from overriding this method to maintain logging consistency.
-     * doTearDown() should be overriden instead.
-     */
-    protected final void tearDown() throws Exception {
-        super.tearDown();
-        trace(this.getName() + ": tearDown...\n"); //$NON-NLS-1$
-        removeWindowListener();
-        doTearDown();
-    }
-
-    /**
-     * Tears down the fixture, for example, close a network connection.
-     * This method is called after a test is executed.
-     * The default implementation closes all test windows, processing events both before
-     * and after doing so.
-     * Subclasses may extend.
-     */
-    protected void doTearDown() throws Exception {
-        processEvents();
-        closeAllTestWindows();
-        processEvents();
-    }
-
-    protected static void processEvents() {
-        Display display = PlatformUI.getWorkbench().getDisplay();
-        if (display != null)
-            while (display.readAndDispatch())
-                ;
-    }
-
-    protected static interface Condition {
-    	public boolean compute();
-    }
-    
-	/**
-	 * 
-	 * @param condition
-	 *            , or null if this should only wait
-	 * @param timeout
-	 *            , -1 if forever
-	 * @return true if successful, false if time out or interrupted
-	 */
-	protected boolean processEventsUntil(Condition condition, long timeout) {
-		long startTime = System.currentTimeMillis();
-		Display display = getWorkbench().getDisplay();
-		while (condition == null || !condition.compute()) {
-			if (timeout != -1
-					&& System.currentTimeMillis() - startTime > timeout) {
-				return false;
-			}
-			while (display.readAndDispatch())
-				;
-			try {
-				Thread.sleep(20);
-			} catch (InterruptedException e) {
-				Thread.currentThread().interrupt();
-				return false;
-			}
-		}
-		return true;
-	}
-    
-    /** 
-     * Open a test window with the empty perspective.
-     */
-    public IWorkbenchWindow openTestWindow() {
-        return openTestWindow(EmptyPerspective.PERSP_ID);
-    }
-
-    /**
-     * Open a test window with the provided perspective.
-     */
-    public IWorkbenchWindow openTestWindow(String perspectiveId) {
-		try {
-			IWorkbenchWindow window = fWorkbench.openWorkbenchWindow(
-					perspectiveId, getPageInput());
-			waitOnShell(window.getShell());
-			return window;
-		} catch (WorkbenchException e) {
-			fail();
-			return null;
-		}
-	}
-
-    /**
-	 * Try and process events until the new shell is the active shell. This may
-	 * never happen, so time out after a suitable period.
-	 * 
-	 * @param shell
-	 *            the shell to wait on
-	 * @since 3.2
-	 */
-	private void waitOnShell(Shell shell) {
-
-		processEvents();
-//		long endTime = System.currentTimeMillis() + 5000;
-//
-//		while (shell.getDisplay().getActiveShell() != shell
-//				&& System.currentTimeMillis() < endTime) {
-//			processEvents();
-//		}
-	}
-
-	/**
-	 * Close all test windows.
-	 */
-    public void closeAllTestWindows() {
-        Iterator iter = new ArrayList(testWindows).iterator();
-        while (iter.hasNext()) {
-            IWorkbenchWindow win = (IWorkbenchWindow) iter.next();
-            win.close();
-        }
-        testWindows.clear();
-    }
-
-    /**
-     * Open a test page with the empty perspective in a window.
-     */
-    public IWorkbenchPage openTestPage(IWorkbenchWindow win) {
-        IWorkbenchPage[] pages = openTestPage(win, 1);
-        if (pages != null)
-            return pages[0];
-        else
-            return null;
-    }
-
-    /**
-     * Open "n" test pages with the empty perspective in a window.
-     */
-    public IWorkbenchPage[] openTestPage(IWorkbenchWindow win, int pageTotal) {
-        try {
-            IWorkbenchPage[] pages = new IWorkbenchPage[pageTotal];
-            IAdaptable input = getPageInput();
-
-            for (int i = 0; i < pageTotal; i++) {
-                pages[i] = win.openPage(EmptyPerspective.PERSP_ID, input);
-            }
-            return pages;
-        } catch (WorkbenchException e) {
-            fail();
-            return null;
-        }
-    }
-
-    /**
-     * Close all pages within a window.
-     */
-    public void closeAllPages(IWorkbenchWindow window) {
-        IWorkbenchPage[] pages = window.getPages();
-        for (int i = 0; i < pages.length; i++)
-            pages[i].close();
-    }
-
-    /**
-     * Set whether the window listener will manage opening and closing of created windows.
-     */
-    protected void manageWindows(boolean manage) {
-        windowListener.setEnabled(manage);
-    }
-    
-    /**
-     * Returns the workbench.
-     * 
-     * @return the workbench
-     * @since 3.1
-     */
-    protected IWorkbench getWorkbench() {
-        return fWorkbench;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/AccessibilityTestPass.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/AccessibilityTestPass.java
deleted file mode 100644
index ef9e030..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/AccessibilityTestPass.java
+++ /dev/null
@@ -1,81 +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.ui.tests.internal.util;
-
-import java.util.ArrayList;
-
-public class AccessibilityTestPass implements IDialogTestPass {
-    private static final int CHECKLIST_SIZE = 5;
-
-    /**
-     * @see IDialogTestPass#title()
-     */
-    public String title() {
-        return "Test Pass: Accessibility";
-    }
-
-    /**
-     * @see IDialogTestPass#description()
-     */
-    public String description() {
-        return "Verify the accessibility of the dialogs.";
-    }
-
-    /**
-     * @see IDialogTestPass#label()
-     */
-    public String label() {
-        return "&Accessibility";
-    }
-
-    /**
-     * @see IDialogTestPass#checkListTexts()
-     */
-    public ArrayList checkListTexts() {
-        ArrayList list = new ArrayList(CHECKLIST_SIZE);
-        list.add("&1) all widgets are accessible by tabbing.");
-        list.add("&2) forwards and backwards tabbing is in a logical order");
-        list
-                .add("&3) all the widgets with labels have an appropriate mnemonic.");
-        list.add("&4) there are no duplicate mnemonics.");
-        list.add("&5) selectable widgets can be selected using the spacebar.");
-        return list;
-    }
-
-    /**
-     * @see IDialogTestPass#failureTexts()
-     * Size of the return array must be the same size as the checkListTexts'
-     * ArrayList.
-     */
-    public String[] failureTexts() {
-        String[] failureText = new String[CHECKLIST_SIZE];
-        failureText[0] = "Some widgets aren't accessible by tabbing.";
-        failureText[1] = "Tabbing order is illogical.";
-        failureText[2] = "Missing or inappropriate mnemonics.";
-        failureText[3] = "Duplicate mnemonics.";
-        failureText[4] = "Some widgets cannot be selected using the spacebar.";
-        return failureText;
-    }
-
-    /**
-     * @see IDialogTestPass#queryText()
-     */
-    public String queryText() {
-        return "Is the accessibility of the dialog acceptable?";
-    }
-
-    /**
-     * @see IDialogTestPass#getID()
-     */
-    public int getID() {
-        return VerifyDialog.TEST_ACCESS;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FailureDialog.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FailureDialog.java
deleted file mode 100644
index 22e2735..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FailureDialog.java
+++ /dev/null
@@ -1,121 +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.ui.tests.internal.util;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-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.swt.widgets.Text;
-
-/*
- * A dialog for collecting notes from the tester regarding
- * the failure of a test.
- */
-public class FailureDialog extends Dialog {
-    private Text _text;
-
-    private String _log;
-
-    private int SIZING_TEXT_WIDTH = 400;
-
-    private int SIZING_TEXT_HEIGHT = 200;
-
-    /**
-     * Constructor for FailureDialog
-     */
-    public FailureDialog(Shell parentShell) {
-        super(parentShell);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        newShell.setText("Dialog Test Failed");
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        createButton(parent, IDialogConstants.OK_ID, "&OK", true);
-        createButton(parent, IDialogConstants.CANCEL_ID,
-                IDialogConstants.CANCEL_LABEL, false);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        // page group
-        Composite composite = (Composite) super.createDialogArea(parent);
-        composite.setSize(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT));
-
-        Label label = new Label(composite, SWT.WRAP);
-        label.setText("&Enter a note regarding the failure:");
-
-        _text = new Text(composite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL
-                | SWT.V_SCROLL);
-        _text.setFont(JFaceResources.getFontRegistry().get(
-                JFaceResources.TEXT_FONT));
-        GridData data = new GridData(GridData.FILL_BOTH);
-        data.widthHint = SIZING_TEXT_WIDTH;
-        data.heightHint = SIZING_TEXT_HEIGHT;
-        _text.setLayoutData(data);
-
-        return composite;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void okPressed() {
-        _log = _text.getText();
-        super.okPressed();
-    }
-
-    /*
-     * @return String the text contained in the input area of
-     * the dialog.
-     */
-    String getText() {
-        if (_log == null) {
-            return "Empty entry.";
-        } else {
-            return _log;
-        }
-    }
-
-    /*
-     * Sets the text of the input area.  This should only be
-     * called to set the initial text so only call before invoking
-     * open().
-     */
-    void setText(String text) {
-        _text.setText(text);
-    }
-
-    /*
-     * Returns a string representation of this class which
-     * the text contained in the input area of the dialog.
-     */
-    public String toString() {
-        return getText();
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FocusTestPass.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FocusTestPass.java
deleted file mode 100644
index d0808e4..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/FocusTestPass.java
+++ /dev/null
@@ -1,76 +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.ui.tests.internal.util;
-
-import java.util.ArrayList;
-
-/*
- * This test pass verifies the initial focus of a dialog
- * when it is given focus.
- */
-public class FocusTestPass implements IDialogTestPass {
-    private static final int CHECKLIST_SIZE = 1;
-
-    /**
-     * @see IDialogTestPass#title()
-     */
-    public String title() {
-        return "Test Pass: Initial Focus";
-    }
-
-    /**
-     * @see IDialogTestPass#description()
-     */
-    public String description() {
-        return "Verify the initial focus of the dialogs.";
-    }
-
-    /**
-     * @see IDialogTestPass#label()
-     */
-    public String label() {
-        return "&Initial Focus";
-    }
-
-    /**
-     * @see IDialogTestPass#checkListTexts()
-     */
-    public ArrayList checkListTexts() {
-        ArrayList list = new ArrayList(CHECKLIST_SIZE);
-        list.add("&1) the initial focus is appropriate.");
-        return list;
-    }
-
-    /**
-     * @see IDialogTestPass#failureTexts()
-     * Size of the return array must be the same size as the checkListTexts'
-     * ArrayList.
-     */
-    public String[] failureTexts() {
-        String[] failureText = new String[CHECKLIST_SIZE];
-        failureText[0] = "The initial focus is inappropriate.";
-        return failureText;
-    }
-
-    /**
-     * @see IDialogTestPass#queryText()
-     */
-    public String queryText() {
-        return "Is the initial focus of the dialog correct?";
-    }
-
-    /**
-     * @see IDialogTestPass#getID()
-     */
-    public int getID() {
-        return VerifyDialog.TEST_FOCUS;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/IDialogTestPass.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/IDialogTestPass.java
deleted file mode 100644
index a8c6bef..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/IDialogTestPass.java
+++ /dev/null
@@ -1,61 +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.ui.tests.internal.util;
-
-import java.util.ArrayList;
-
-/*
- * Interface to describe a visual test pass for a dialog test.
- */
-public interface IDialogTestPass {
-    /*
-     * @return String The title of the test pass.
-     */
-    public String title();
-
-    /*
-     * @return String The description of the test pass.
-     */
-    public String description();
-
-    /*
-     * @return String The label of the test pass to be used
-     * in a selection list.  The return includes an '&'
-     * if a mnemonic is desired.
-     */
-    public String label();
-
-    /*
-     * @return ArrayList A list of items to appear in a checklist.
-     * The items in the list must be Strings and should include an
-     * '&' if a mnemonic is desired.
-     */
-    public ArrayList checkListTexts();
-
-    /*
-     * @return String[] Associated failure messages that correspond
-     * to the checklist items.  The size of this array should be the
-     * same size as the checklist.
-     */
-    public String[] failureTexts();
-
-    /*
-     * @return String The test that corresponds to the test pass to
-     * which the tester will respond with a 'yes' or 'no'.
-     */
-    public String queryText();
-
-    /*
-     * @return int A unique number that identifies the test pass.
-     */
-    public int getID();
-}
-
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/SizingTestPass.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/SizingTestPass.java
deleted file mode 100644
index 79d866b..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/SizingTestPass.java
+++ /dev/null
@@ -1,85 +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.ui.tests.internal.util;
-
-import java.util.ArrayList;
-
-/*
- * This test pass verifies visually the sizing of the dialog and its
- * widgets.
- */
-class SizingTestPass implements IDialogTestPass {
-    private static final int CHECKLIST_SIZE = 5;
-
-    /**
-     * @see IDialogTestPass#title()
-     */
-    public String title() {
-        return "Test Pass: Sizing and Display";
-    }
-
-    /**
-     * @see IDialogTestPass#description()
-     */
-    public String description() {
-        return "Verify the sizing and display of the dialogs and widgets.";
-    }
-
-    /**
-     * @see IDialogTestPass#label()
-     */
-    public String label() {
-        return "&Sizing and Display";
-    }
-
-    /**
-     * @see IDialogTestPass#checkListTexts()
-     */
-    public ArrayList checkListTexts() {
-        ArrayList list = new ArrayList(CHECKLIST_SIZE);
-        list.add("&1) the correct dialog displays.");
-        list
-                .add("&2) the dialog is an appropriate size for the required resolution (1024x768).");
-        list.add("&3) the texts are correct and not cut off.");
-        list.add("&4) all strings have been externalized properly.");
-        list.add("&5) all the widgets are viewable and not cut off.");
-        return list;
-    }
-
-    /**
-     * @see IDialogTestPass#failureTexts()
-     * Size of the return array must be the same size as the checkListTexts'
-     * ArrayList.
-     */
-    public String[] failureTexts() {
-        String[] failureText = new String[CHECKLIST_SIZE];
-        failureText[0] = "The wrong dialog displayed.";
-        failureText[1] = "The dialog is too large for the required resolution.";
-        failureText[2] = "Text labels are wrong or cut off.";
-        failureText[3] = "Some strings have not been externalized properly.";
-        failureText[4] = "Some widgets are cut off.";
-        return failureText;
-    }
-
-    /**
-     * @see IDialogTestPass#queryText()
-     */
-    public String queryText() {
-        return "Is the sizing and display of the dialog correct?";
-    }
-
-    /**
-     * @see IDialogTestPass#getID()
-     */
-    public int getID() {
-        return VerifyDialog.TEST_SIZING;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/VerifyDialog.java b/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/VerifyDialog.java
deleted file mode 100644
index 1b28ae5..0000000
--- a/tests/org.eclipse.ui.tests.harness/src/org/eclipse/ui/tests/internal/util/VerifyDialog.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal.util;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.util.Util;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Point;
-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.swt.widgets.Shell;
-
-/*
- * This dialog is intended to verify a dialogs in a testing
- * environment.  The tester can test for sizing, initial focus,
- * or accessibility.
- */
-public class VerifyDialog extends TitleAreaDialog {
-    private int SIZING_WIDTH = 400;
-
-    private static int TEST_TYPE;
-
-    public static final int TEST_SIZING = 0;
-
-    public static final int TEST_FOCUS = 1;
-
-    public static final int TEST_ACCESS = 2;
-
-    private IDialogTestPass _dialogTests[] = new IDialogTestPass[3];
-
-    private Dialog _testDialog; //the dialog to test
-
-    private Point _testDialogSize;
-
-    private Label _queryLabel;
-
-    private Button _yesButton;
-
-    private Button _checkList[];
-
-    private String _failureText;
-
-    /*
-     * Create an instance of the verification dialog.
-     */
-    public VerifyDialog(Shell parent) {
-        super(parent);
-        if (!(TEST_TYPE <= 2) && !(TEST_TYPE >= 0)) {
-            TEST_TYPE = TEST_SIZING;
-        }
-        _failureText = "";
-        _dialogTests[0] = new SizingTestPass();
-        _dialogTests[1] = new FocusTestPass();
-        _dialogTests[2] = new AccessibilityTestPass();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell newShell) {
-        super.configureShell(newShell);
-        newShell.setText("Dialog Verification");
-        setShellStyle(SWT.NONE);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void createButtonsForButtonBar(Composite parent) {
-        _yesButton = createButton(parent, IDialogConstants.YES_ID,
-                IDialogConstants.YES_LABEL, true);
-        createButton(parent, IDialogConstants.NO_ID,
-                IDialogConstants.NO_LABEL, false);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected void buttonPressed(int buttonId) {
-        if (IDialogConstants.YES_ID == buttonId) {
-            setReturnCode(IDialogConstants.YES_ID);
-            if (_testDialog.getShell() != null) {
-                _testDialog.close();
-            }
-            close();
-        } else if (IDialogConstants.NO_ID == buttonId) {
-            handleFailure();
-        }
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Dialog.
-     */
-    protected Control createDialogArea(Composite parent) {
-        // top level composite
-        Composite parentComposite = (Composite) super.createDialogArea(parent);
-
-        // create a composite with standard margins and spacing
-        Composite composite = new Composite(parentComposite, SWT.NONE);
-        composite.setSize(SIZING_WIDTH, SWT.DEFAULT);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-        layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-        layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-        layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        createTestSelectionGroup(composite);
-        createCheckListGroup(composite);
-
-        _queryLabel = new Label(composite, SWT.NONE);
-        _queryLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-        initializeTest();
-        return composite;
-    }
-
-    /*
-     * Group for selecting type of test.
-     */
-    private void createTestSelectionGroup(Composite parent) {
-        Group group = new Group(parent, SWT.SHADOW_NONE);
-        group.setText("Testing:");
-        group.setLayout(new GridLayout());
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        group.setLayoutData(data);
-
-        for (int i = 0; i < _dialogTests.length; i++) {
-            Button radio = new Button(group, SWT.RADIO);
-            radio.setText(_dialogTests[i].label());
-            final int testID = _dialogTests[i].getID();
-            radio.addSelectionListener(new SelectionAdapter() {
-                public void widgetSelected(SelectionEvent e) {
-                    TEST_TYPE = testID;
-                    initializeTest();
-                    _yesButton.setEnabled(true);
-                }
-            });
-            if (TEST_TYPE == _dialogTests[i].getID()) {
-                radio.setSelection(true);
-            }
-        }
-    }
-
-    /*
-     * Initializes the checklist with empty checks.
-     */
-    private void createCheckListGroup(Composite parent) {
-        Group group = new Group(parent, SWT.SHADOW_NONE);
-        group.setText("Verify that:");
-        group.setLayout(new GridLayout());
-        GridData data = new GridData(GridData.FILL_HORIZONTAL);
-        group.setLayoutData(data);
-
-        int checkListSize = 0;
-        for (int i = 0; i < _dialogTests.length; i++) {
-            int size = _dialogTests[i].checkListTexts().size();
-            if (size > checkListSize) {
-                checkListSize = size;
-            }
-        }
-        _checkList = new Button[checkListSize];
-        SelectionAdapter selectionAdapter = new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                checkYesEnable();
-            }
-        };
-        for (int i = 0; i < checkListSize; i++) {
-            _checkList[i] = new Button(group, SWT.CHECK);
-            _checkList[i].addSelectionListener(selectionAdapter);
-            data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-            data.grabExcessHorizontalSpace = true;
-            _checkList[i].setLayoutData(data);
-        }
-    }
-
-    /*
-     * Disables the yes button if any of the items in the checklist
-     * are unchecked.  Enables the yes button otherwise.
-     */
-    private void checkYesEnable() {
-        boolean enable = true;
-        for (int i = 0; i < _checkList.length; i++) {
-            if (!_checkList[i].getSelection()) {
-                enable = false;
-            }
-        }
-        _yesButton.setEnabled(enable);
-    }
-
-    /*
-     * Initializes the checklist, banner texts, and query label
-     */
-    private void initializeTest() {
-        IDialogTestPass test = _dialogTests[TEST_TYPE];
-        setTitle(test.title());
-        setMessage(test.description());
-        Iterator iterator = test.checkListTexts().iterator();
-        for (int i = 0; i < _checkList.length; i++) {
-            if (iterator.hasNext()) {
-                _checkList[i].setText(iterator.next().toString());
-                _checkList[i].setVisible(true);
-                _checkList[i].update();
-            } else {
-                _checkList[i].setVisible(false);
-                _checkList[i].update();
-            }
-            _checkList[i].setSelection(true);
-        }
-        _queryLabel.setText(test.queryText());
-    }
-
-    public String getFailureText() {
-        return _failureText;
-    }
-
-    /*
-     * Can't open the verification dialog without a specified
-     * test dialog, this simply returns a failure and prevents
-     * opening.  Should use open(Dialog) instead.
-     * 
-     */
-    public int open() {
-        _failureText = "Testing dialog is required, use VerifyDialog::open(Dialog)";
-        return IDialogConstants.NO_ID;
-    }
-
-    /*
-     * Opens the verification dialog to test the specified dialog.
-     */
-    public int open(Dialog testDialog) {
-        if (getShell() == null) {
-            create();
-        }
-        getShell().setLocation(0, 0);
-        getShell().setSize(Math.max(SIZING_WIDTH, getShell().getSize().x),
-                getShell().getSize().y);
-        _testDialog = testDialog;
-        if (_testDialog.getShell() == null) {
-            _testDialog.create();
-        }
-        _testDialogSize = _testDialog.getShell().getSize();
-        openNewTestDialog();
-
-        return super.open();
-    }
-
-    /*
-     * Opens the dialog to be verified.
-     */
-    private void openNewTestDialog() {
-        if (_testDialog.getShell() == null) {
-            _testDialog.create();
-        }
-        _testDialog.setBlockOnOpen(false);
-        _testDialog.getShell().setLocation(getShell().getSize().x + 1, 0);
-        _testDialog.getShell().setSize(_testDialogSize);
-        _testDialog.getShell().addShellListener(new ShellAdapter() {
-            public void shellClosed(ShellEvent e) {
-                e.doit = false;
-            }
-
-        });
-        _testDialog.open();
-    }
-
-    /*
-     * The test dialog failed, open the failure dialog.
-     */
-    private void handleFailure() {
-        IDialogTestPass test = _dialogTests[TEST_TYPE];
-        StringBuffer text = new StringBuffer();
-        String label = test.label();
-        label = label.substring(0, label.indexOf("&"))
-                + label.substring(label.indexOf("&") + 1);
-        text.append(label).append(" failed on the ").append(Util.getWS())
-                .append(" platform:\n");
-
-        String failureMessages[] = test.failureTexts();
-        for (int i = 0; i < test.checkListTexts().size(); i++) {
-            if (!_checkList[i].getSelection()) {
-                text.append("- ").append(failureMessages[i]).append("\n");
-            }
-        }
-        FailureDialog dialog = new FailureDialog(getShell());
-        dialog.create();
-        dialog.setText(text.toString());
-        if (dialog.open() == IDialogConstants.OK_ID) {
-            _failureText = dialog.toString();
-            setReturnCode(IDialogConstants.NO_ID);
-            if (_testDialog.getShell() != null) {
-                _testDialog.close();
-            }
-            close();
-        }
-    }
-
-    /*
-     * In case the shell was closed by a means other than
-     * the NO button.
-     */
-    protected void handleShellCloseEvent() {
-        handleFailure();
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests.performance/.classpath b/tests/org.eclipse.ui.tests.performance/.classpath
deleted file mode 100644
index 2fbb7a2..0000000
--- a/tests/org.eclipse.ui.tests.performance/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests.performance/.cvsignore b/tests/org.eclipse.ui.tests.performance/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.ui.tests.performance/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.ui.tests.performance/.project b/tests/org.eclipse.ui.tests.performance/.project
deleted file mode 100644
index 394eac0..0000000
--- a/tests/org.eclipse.ui.tests.performance/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.performance</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/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100755
index f45e7bf..0000000
--- a/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,69 +0,0 @@
-#Thu Apr 09 13:51:05 EDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100755
index 61158fa..0000000
--- a/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 09:00:30 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.pde.prefs
deleted file mode 100755
index 883666b..0000000
--- a/tests/org.eclipse.ui.tests.performance/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,14 +0,0 @@
-#Mon Feb 21 14:17:36 EST 2005
-compilers.p.deprecated=2
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=1
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.ui.tests.performance/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.performance/META-INF/MANIFEST.MF
deleted file mode 100644
index 88a6384..0000000
--- a/tests/org.eclipse.ui.tests.performance/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,22 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Performance Plug-in
-Bundle-ClassPath: uiperformance.jar
-Bundle-SymbolicName: org.eclipse.ui.tests.performance;singleton:=true
-Bundle-Version: 1.1.100.qualifier
-Bundle-Activator: org.eclipse.ui.tests.performance.UIPerformancePlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.tests.harness,
- org.junit,
- org.eclipse.test.performance,
- org.eclipse.core.resources,
- org.eclipse.ui.tests.harness,
- org.eclipse.ui.ide,
- org.eclipse.jface.text,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.views
-Eclipse-LazyStart: true
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/tests/org.eclipse.ui.tests.performance/about.html b/tests/org.eclipse.ui.tests.performance/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.performance/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.performance/build.properties b/tests/org.eclipse.ui.tests.performance/build.properties
deleted file mode 100644
index ac90ea5..0000000
--- a/tests/org.eclipse.ui.tests.performance/build.properties
+++ /dev/null
@@ -1,16 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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.uiperformance.jar = src/
-bin.includes = META-INF/,\
-               *.xml,\
-               icons/,\
-               uiperformance.jar,\
-               data/
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.performance/data/testContentType.zip b/tests/org.eclipse.ui.tests.performance/data/testContentType.zip
deleted file mode 100644
index 14e323b..0000000
--- a/tests/org.eclipse.ui.tests.performance/data/testContentType.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/anything.gif b/tests/org.eclipse.ui.tests.performance/icons/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/binary_co.gif b/tests/org.eclipse.ui.tests.performance/icons/binary_co.gif
deleted file mode 100644
index 23a508e..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/binary_co.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/dynamic.gif b/tests/org.eclipse.ui.tests.performance/icons/dynamic.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/dynamic.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/editor.gif b/tests/org.eclipse.ui.tests.performance/icons/editor.gif
deleted file mode 100644
index 9bd92bf..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/editor.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a

diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/anything.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/binary_co.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/binary_co.gif
deleted file mode 100644
index 23a508e..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/binary_co.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/dynamic.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/dynamic.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/dynamic.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/editor.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/editor.gif
deleted file mode 100644
index 9bd92bf..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/editor.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a

diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart1.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/mockeditorpart2.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif b/tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/imagetests/view.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif b/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart1.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif b/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/mockeditorpart2.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/icons/view.gif b/tests/org.eclipse.ui.tests.performance/icons/view.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests.performance/icons/view.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.performance/plugin.xml b/tests/org.eclipse.ui.tests.performance/plugin.xml
deleted file mode 100644
index 0a69f05..0000000
--- a/tests/org.eclipse.ui.tests.performance/plugin.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-     
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.performance.parts.PerformanceEditorPart"
-            default="true"
-            name="Basic Performance Editor"
-            id="org.eclipse.ui.tests.perf_basic"
-            extensions="perf_basic"/>
-            
-      <editor
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.performance.parts.PerformanceEditorPart:outline"
-            default="true"
-            name="Editor w/Outline"
-            id="org.eclipse.ui.tests.perf_outline"
-            extensions="perf_outline"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.ui.tests.performance.PerformancePerspective1"
-            name="Performance Test Perspective1"
-            id="org.eclipse.ui.tests.performancePerspective1"/>
-      <perspective
-            class="org.eclipse.ui.tests.performance.PerformancePerspective2"
-            name="Performance Test Perspective"
-            id="org.eclipse.ui.tests.performancePerspective2"/>    
-       <perspective
-            name="UI Test Standalone View Perspective"
-            class="org.eclipse.ui.tests.performance.presentations.StandaloneViewPerspective"
-            id="org.eclipse.ui.tests.presentations.StandaloneViewPerspective">
-      </perspective>
-      <perspective
-            name="UI Test Standalone View Perspective  2 "
-            class="org.eclipse.ui.tests.performance.presentations.StandaloneViewPerspective2"
-            id="org.eclipse.ui.tests.presentations.StandaloneViewPerspective2">
-      </perspective>        
-   </extension>
-    <extension
-          point="org.eclipse.ui.views">
-       <view
-             icon="icons/anything.gif"
-             class="org.eclipse.ui.tests.performance.parts.PerformanceViewPart"
-             name="Basic Performance View"
-             id="org.eclipse.ui.tests.perf_basic"/>
-    </extension>
-   <!-- 
-   this content type was added to provide
-   "regression test" for bug 107121. See OpenNavigatorFolderTest
-   for more details. 
-   -->
-   <extension point="org.eclipse.core.runtime.contentTypes">
-   	<content-type 
-   		file-extensions="htmltestonly" 
-   		priority="high"
-   		name="Content Type for Test Only" 
-   		id="testOnlyContentType"
-   		base-type="org.eclipse.core.runtime.text">
-   		<describer
-   			class="org.eclipse.ui.tests.performance.ContentDescriberForTestsOnly" />
-   	</content-type>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            class="org.eclipse.ui.tests.performance.parts.PerformanceProblemsView"
-            id="org.eclipse.ui.tests.performance.problemsView"
-            name="Performance Problems View"/>
-   </extension>
-    
- 
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/CollatorPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/CollatorPerformanceTest.java
deleted file mode 100644
index 5b70f8d..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/CollatorPerformanceTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.jface.util.Policy;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-
-/**
- * @since 3.5
- *
- */
-public class CollatorPerformanceTest extends BasicPerformanceTest {
-
-	private static final int ARRAYSIZE=100000; 
-	private static String[] fArray;
-	
-	/**
-	 * @param testName
-	 */
-	public CollatorPerformanceTest (String testName) {
-		super(testName);
-		generateArray();
-	}
-	
-	/**
-	 *  test Collator by sorting the array
-	 */
-	public void testCollator(){
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=275170>See Bug 275170</a> ");
-		Comparator comparator=Policy.getComparator();
-		for (int i = 0; i < 15; i++) {
-			String[] array=(String[]) fArray.clone();
-			startMeasuring();
-			Arrays.sort(array, comparator);
-			stopMeasuring();
-		}
-        commitMeasurements();
-        assertPerformance();
-	}
-	
-	/**
-	 * Generate a large sized array for sorting
-	 */
-	private void generateArray() {
-		if(fArray==null){
-			fArray=new String[ARRAYSIZE];
-			int count=ARRAYSIZE-1;
-			while(count>=0){
-				for (int i = 0; i < 26; i++) {
-					for (int j = 0; j < 26; j++) {
-						for (int k = 0; k < 26; k++) {
-							if(count<0)return;
-							if(k%2==0)
-							fArray[count]=new String(new char[]{
-									(char) (i+'a'),(char) (j+'A'),(char) (k+'a')
-							});
-							else if(k%3==0)
-								fArray[count]=new String(new char[]{
-										(char) (i+'a'),(char) (j+'a'),(char) (k+'A')
-							});
-							else
-								fArray[count]=new String(new char[]{
-										(char) (i+'A'),(char) (j+'a'),(char) (k+'a')
-								});
-							--count;
-						}
-						
-					}
-				}
-				
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java
deleted file mode 100644
index 6b85bb2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ComboViewerRefreshTest.java
+++ /dev/null
@@ -1,101 +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.jface.tests.performance;
-
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * ComboViewerRefreshTest is a test of refreshes of difference size in the combo
- * viewer.
- */
-public class ComboViewerRefreshTest extends ViewerTest {
-
-	ComboViewer viewer;
-
-	private RefreshTestContentProvider contentProvider;
-
-	private static int ELEMENT_COUNT;
-
-	public ComboViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-
-	}
-
-	public ComboViewerRefreshTest(String testName) {
-		super(testName);
-
-	}
-
-	protected StructuredViewer createViewer(Shell shell) {
-
-		viewer = new ComboViewer(shell);
-		contentProvider = new RefreshTestContentProvider(ELEMENT_COUNT);
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(getLabelProvider());
-		return viewer;
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=98265>See Bug 98265</a> ");
-		ELEMENT_COUNT = 1000;
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshSmall() throws Throwable {
-
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=98265>See Bug 98265</a> ");
-
-		ELEMENT_COUNT = 50;
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				for (int i = 0; i < 1000; i++) {
-					viewer.refresh();
-				}
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(), JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java
deleted file mode 100644
index 017ff6a..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTableViewerRefreshTest.java
+++ /dev/null
@@ -1,83 +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.jface.tests.performance;
-
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class FastTableViewerRefreshTest extends TableViewerRefreshTest {
-
-	public FastTableViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public FastTableViewerRefreshTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshMultiple() throws Throwable {
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				for (int i = 0; i < 10; i++) {
-					viewer.refresh();
-					processEvents();
-
-				}
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testUpdateMultiple() throws Throwable {
-		openBrowser();
-
-		exercise(
-				new TestRunnable() {
-					public void run() {
-						startMeasuring();
-						for (int i = 0; i < 10; i++) {
-							TableItem[] items = viewer.getTable().getItems();
-							for (int j = 0; j < items.length; j++) {
-								TableItem item = items[j];
-								Object element = RefreshTestContentProvider.allElements[j];
-								viewer.testUpdateItem(item, element);
-							}
-							processEvents();
-						}
-
-						stopMeasuring();
-
-					}
-				}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java
deleted file mode 100644
index 63e5636..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FastTreeTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class FastTreeTest extends TreeAddTest {
-
-
-	public FastTreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public FastTreeTest(String testName) {
-		super(testName);
-	}
-	
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddTenTenTimes() throws CoreException {
-
-		doTestAdd(10, TEST_COUNT, false);
-	}
-
-	
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddFiftyTenTimes() throws CoreException {
-
-		doTestAdd(50, TEST_COUNT, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddHundredTenTimes() throws CoreException {
-
-		tagIfNecessary("JFace - Add 10000 items 100 at a time TreeViewer 10 times",
-				Dimension.ELAPSED_PROCESS);
-		
-		doTestAdd(100, TEST_COUNT, false);
-	}
-
-	/**
-	 * Run the test for one of the fast insertions.
-	 * 
-	 * @param count
-	 * @throws CoreException
-	 */
-	protected void doTestAdd(final int increment, final int total,final boolean preSort)
-			throws CoreException {
-
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TestTreeElement input = new TestTreeElement(0, null);
-				viewer.setInput(input);
-				input.createChildren(total);
-				if (preSort)
-					viewer.getSorter().sort(viewer, input.children);
-				Collection batches = new ArrayList();
-				int blocks = input.children.length / increment;
-				for (int j = 0; j < blocks; j = j + increment) {
-					Object[] batch = new Object[increment];
-					System.arraycopy(input.children, j * increment, batch, 0,
-							increment);
-					batches.add(batch);
-				}
-				processEvents();
-				Object[] batchArray = batches.toArray();
-				startMeasuring();
-				for (int i = 0; i < 10; i++) {
-					viewer.remove(input.children);
-					for (int k = 0; k < batchArray.length; k++) {
-						viewer.add(input, (Object[]) batchArray[k]);
-						processEvents();
-					}
-				}
-				
-
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
deleted file mode 100644
index 4dc7cf9..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/FileImageDescriptorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-import org.eclipse.ui.tests.performance.UIPerformancePlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * ComboViewerRefreshTest is a test of refreshes of difference size in the combo
- * viewer.
- */
-public class FileImageDescriptorTest extends BasicPerformanceTest {
-
-	protected static final String IMAGES_DIRECTORY = "/icons/imagetests";
-
-	public FileImageDescriptorTest(String testName, int tagging) {
-		super(testName, tagging);
-
-	}
-
-	public FileImageDescriptorTest(String testName) {
-		super(testName);
-
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-
-		exercise(new TestRunnable() {
-			public void run() {
-				Class missing = null;
-				ArrayList images = new ArrayList();
-
-				Bundle bundle = UIPerformancePlugin.getDefault().getBundle();
-				Enumeration bundleEntries = bundle
-						.getEntryPaths(IMAGES_DIRECTORY);
-
-				
-				while (bundleEntries.hasMoreElements()) {
-					ImageDescriptor descriptor;
-					String localImagePath = (String) bundleEntries
-							.nextElement();
-					
-					if(localImagePath.indexOf('.') < 0)
-						continue;
-					
-					URL[] files = FileLocator.findEntries(bundle, new Path(
-							localImagePath));
-
-					for (int i = 0; i < files.length; i++) {
-						
-						startMeasuring();
-
-						try {
-							descriptor = ImageDescriptor.createFromFile(missing,
-									FileLocator.toFileURL(files[i]).getFile());
-						} catch (IOException e) {
-							fail(e.getLocalizedMessage(),e);
-							continue;
-						}
-
-						for (int j = 0; j < 10; j++) {
-							Image image = descriptor.createImage();
-							images.add(image);							
-						}
-						
-						processEvents();
-						stopMeasuring();
-
-					}
-
-				}
-
-			
-				Iterator imageIterator = images.iterator();
-				while (imageIterator.hasNext()) {
-					((Image) imageIterator.next()).dispose();
-				}
-			}
-		}, 20, 100, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
deleted file mode 100644
index 44f6eb9..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/JFacePerformanceSuite.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import junit.framework.Test;
-
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.FilteredTestSuite;
-import org.eclipse.ui.tests.performance.UIPerformanceTestSetup;
-
-/**
- * The JFacePerformanceSuite are the performance tests for JFace.
- */
-public class JFacePerformanceSuite extends FilteredTestSuite {
-	
-	//Some of these tests are very slow on 3.0
-	//Specify the minimum number of iterations
-	//and the time to drop down to a lower number
-	
-	public static int MAX_TIME = 10000;
-	
-	/**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-    	return new UIPerformanceTestSetup(new JFacePerformanceSuite());
-    }
-
-	public JFacePerformanceSuite() {
-		super();
-		addTest(new ListViewerRefreshTest("testRefresh"));
-		addTest(new ComboViewerRefreshTest("testRefreshSmall"));
-		addTest(new FastTableViewerRefreshTest("testRefreshMultiple"));
-		addTest(new FastTableViewerRefreshTest("testUpdateMultiple"));
-		addTest(new FastTreeTest("testAddTenTenTimes"));
-		addTest(new FastTreeTest("testAddFiftyTenTimes"));
-		addTest(new TreeAddTest("testAddThousand"));
-		addTest(new FastTreeTest("testAddHundredTenTimes", BasicPerformanceTest.LOCAL));
-		addTest(new TreeAddTest("testAddThousandPreSort", BasicPerformanceTest.GLOBAL));
-		addTest(new ProgressMonitorDialogPerformanceTest("testLongNames"));
-		addTest(new ShrinkingTreeTest("testTreeViewerRefresh"));
-		addTest(new CollatorPerformanceTest("testCollator"));
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java
deleted file mode 100644
index 21da911..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListPopulationTest.java
+++ /dev/null
@@ -1,136 +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.jface.tests.performance;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * The ListPopulationTest is the test for simple
- * SWT lists.
- *
- */
-public class ListPopulationTest extends BasicPerformanceTest {
-
-	List list;
-
-	public ListPopulationTest(String testName, int tagging) {
-		super(testName, tagging);		
-	}
-
-	public ListPopulationTest(String testName) {
-		super(testName);
-	}
-
-	protected void openBrowser() {
-		Display fDisplay = Display.getCurrent();
-		if (fDisplay == null) {
-			fDisplay = new Display();
-		}
-		Shell shell = new Shell(fDisplay);
-		shell.setSize(500, 500);
-		shell.setLayout(new FillLayout());
-		list = new List(shell,SWT.NONE);
-		shell.open();
-		// processEvents();
-	}
-	
-	public void testSmallAdd() throws Throwable {
-		addBench(100);
-	}
-	
-	public void testSmallSetItems() throws Throwable {
-		setItemsBench(100);
-	}
-	
-	public void testMediumAdd() throws Throwable {
-		addBench(5000);
-	}
-	
-	public void testMediumSetItems() throws Throwable {
-		setItemsBench(5000);
-	}
-	
-	public void testLargeAdd() throws Throwable {
-		addBench(50000);
-	}
-	
-	public void testLargeSetItems() throws Throwable {
-		setItemsBench(50000);
-	}
-	
-	/**
-	 * Test the time for adding elements using add.
-	 * @throws Throwable
-	 */
-	public void addBench(int count) throws Throwable {
-		openBrowser();		
-		final String [] items = getItems(count);
-        
-        exercise(new TestRunnable() {
-            public void run() {
-    			list.removeAll();
-    			startMeasuring();
-    			for (int j = 0; j < items.length; j++) {
-    				list.add(items[j]);
-    			}
-    			processEvents();
-    			stopMeasuring();
-    		}
-        });
-		
-		commitMeasurements();
-		assertPerformance();
-	}
-	
-	/**
-	 * Test the time for adding elements using setItem.
-	 * @throws Throwable
-	 */
-	public void setItemsBench(int count) throws Throwable {
-		openBrowser();		
-		final String [] items = getItems(count);
-        exercise(new TestRunnable() {
-            public void run() {
-    			list.removeAll();
-    			startMeasuring();
-    			list.setItems(items);
-    			processEvents();
-    			stopMeasuring();
-            }
-        });
-		
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Get count number of items.
-	 * @param count
-	 * @return
-	 */
-	private String[] getItems(int count) {
-		String[] items = new String[count];
-		for (int j = 0; j < items.length; j++) {
-			items[j] = "Element " + String.valueOf(j);
-			
-		}
-		return items;
-	}
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java
deleted file mode 100644
index 9006504..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ListViewerRefreshTest.java
+++ /dev/null
@@ -1,81 +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.jface.tests.performance;
-
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * The ListViewerRefreshTest is a test of refreshing the list viewer.
- * 
- */
-public class ListViewerRefreshTest extends ViewerTest {
-
-	ListViewer viewer;
-
-	private RefreshTestContentProvider contentProvider;
-
-	public ListViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-
-	}
-
-	public ListViewerRefreshTest(String testName) {
-		super(testName);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.performance.ViewerTest#createViewer(org.eclipse.swt.widgets.Shell)
-	 */
-	protected StructuredViewer createViewer(Shell shell) {
-		viewer = new ListViewer(shell);
-		contentProvider = new RefreshTestContentProvider(
-				RefreshTestContentProvider.ELEMENT_COUNT);
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(getLabelProvider());
-		return viewer;
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-
-		tagIfNecessary("JFace - Refresh 100 item ListViewer 10 times",
-				Dimension.ELAPSED_PROCESS);
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=99022>See Bug 99022</a> ");
-
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, ITERATIONS,
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java
deleted file mode 100644
index 0145481..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ProgressMonitorDialogPerformanceTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * @since 3.3
- *
- */
-public class ProgressMonitorDialogPerformanceTest extends BasicPerformanceTest {
-
-	/**
-	 * @param testName
-	 */
-	public ProgressMonitorDialogPerformanceTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 * @param tagging
-	 */
-	public ProgressMonitorDialogPerformanceTest(String testName, int tagging) {
-		super(testName, tagging);
-		
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testLongNames() throws Throwable {
-
-		tagIfNecessary("JFace - 10000 element task name in progress dialog",
-				Dimension.ELAPSED_PROCESS);
-		
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		
-		ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell(display));
-
-		IRunnableWithProgress runnable = new IRunnableWithProgress() {
-				public void run(IProgressMonitor monitor) {
-				
-				char[] chars = new char[10000];
-				for (int i = 0; i < chars.length; i++) {
-					chars[i] = 'A';
-				}
-				
-				final String taskName = new String(chars);
-				final IProgressMonitor finalMonitor = monitor;
-				
-				try {
-					exercise(new TestRunnable() {
-						public void run() {
-							startMeasuring();
-							finalMonitor.setTaskName(taskName);
-							processEvents();
-							stopMeasuring();
-						}
-					}, ViewerTest.MIN_ITERATIONS, ViewerTest.ITERATIONS,
-							JFacePerformanceSuite.MAX_TIME);
-				} catch (CoreException e) {
-					fail(e.getMessage(), e);
-				}
-
-			
-
-			}
-		};
-
-		try {
-			dialog.run(false, true, runnable);
-		} catch (InvocationTargetException e) {
-			fail(e.getMessage(), e);
-		} catch (InterruptedException e) {
-			fail(e.getMessage(), e);
-		}
-		
-		commitMeasurements();
-		assertPerformance();
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java
deleted file mode 100644
index 2c99804..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestContentProvider.java
+++ /dev/null
@@ -1,102 +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.jface.tests.performance;
-
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * The RefreshTestContentProvider is the content
- * provider for refresh tests.
- *
- */
-public class RefreshTestContentProvider implements IStructuredContentProvider {
-
-	static int seed = 1;
-	static TestElement[] allElements;
-	public static int ELEMENT_COUNT = 10000;
-	TestElement[] currentElements;
-	
-	static{
-		allElements = new TestElement[ELEMENT_COUNT];
-		for (int i = 0; i < ELEMENT_COUNT; i++) {
-			allElements[i] = new TestElement(i);			
-		}
-	}
-	
-	void preSortElements(Viewer viewer, ViewerSorter sorter){
-		sorter.sort(viewer,currentElements);
-		
-	}
-	
-	public RefreshTestContentProvider(int size){
-		Assert.isTrue(size <= ELEMENT_COUNT);
-		setSize(size);
-	}
-	
-	/**
-	 * Set the size of the amount we are currently displaying 
-	 * to size.
-	 * @param size
-	 */
-	public void setSize(int size) {
-		
-		currentElements = new TestElement[size];
-		for (int i = 0; i < currentElements.length; i++) {
-			currentElements[i] = allElements[i];
-		}
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		return currentElements;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		currentElements = null;
-
-	}
-
-	/* (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) {
-		//Do nothing here
-	}
-
-	/**
-	 * Restore the elements to thier old poorly sorted
-	 * state.
-	 *
-	 */
-	public void refreshElements() {
-		for (int i = 0; i < ELEMENT_COUNT; i++) {
-			currentElements[i] = new TestElement(i + seed);			
-		}
-		seed += 257;
-		
-		
-	}
-	
-	public void cloneElements(){
-		currentElements = (TestElement [] )currentElements.clone();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java
deleted file mode 100644
index cead70f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/RefreshTestTreeContentProvider.java
+++ /dev/null
@@ -1,59 +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.jface.tests.performance;
-
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * The RefreshTestTreeContentProvider is the content provider for test trees.
- */
-public class RefreshTestTreeContentProvider implements ITreeContentProvider {
-
-    static TestTreeElement[] elements;
-    static {
-        elements = new TestTreeElement[RefreshTestContentProvider.ELEMENT_COUNT];
-        for (int i = 0; i < RefreshTestContentProvider.ELEMENT_COUNT; i++) {
-           elements[i] = (new TestTreeElement(i,null));
-            
-        }
-     
-    }
-
-    public RefreshTestTreeContentProvider() {
-        super();
-    }
-
-    public Object[] getChildren(Object parentElement) {
-       return ((TestTreeElement)parentElement).children;
-    }
-
-    public Object getParent(Object element) {
-        return ((TestTreeElement)element).parent;
-    }
-
-    public boolean hasChildren(Object element) {
-        return ((TestTreeElement)element).children.length > 0;
-    }
-
-    public Object[] getElements(Object inputElement) {
-       return elements;
-    }
-
-    public void dispose() {
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java
deleted file mode 100644
index d646ffe..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/SWTTreeTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class SWTTreeTest extends BasicPerformanceTest {
-
-	Shell browserShell;
-
-	Tree tree;
-
-	public SWTTreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public SWTTreeTest(String testName) {
-		super(testName);
-	}
-
-	protected void openBrowser() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		browserShell = new Shell(display);
-		browserShell.setSize(500, 500);
-		browserShell.setLayout(new FillLayout());
-		tree = new Tree(browserShell, SWT.NONE);
-		createChildren();
-		browserShell.open();
-		// processEvents();
-	}
-
-	private void createChildren() {
-		for (int i = 0; i < TreeAddTest.TEST_COUNT; i++) {
-			TreeItem item = new TreeItem(tree, SWT.NONE);
-			item.setText("Element " + String.valueOf(i));
-
-		}
-
-	}
-
-	/**
-	 * Test the getItems API.
-	 * 
-	 */
-	public void testGetItems() throws CoreException {
-		openBrowser();
-
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                startMeasuring();
-                for (int j = 0; j < TreeAddTest.TEST_COUNT; j++) {
-                    tree.getItems();
-                    processEvents();
-                }
-                stopMeasuring();
-            } 
-        });
-        
-		commitMeasurements();
-		assertPerformance();
-		browserShell.close();
-	}
-
-	/**
-	 * @throws CoreException 
-	 * Test the getItem API.
-	 * 
-	 */
-	public void testGetItemAt() throws CoreException {
-		openBrowser();
-
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                startMeasuring();
-                for (int j = 0; j < TreeAddTest.TEST_COUNT; j++) {
-                    tree.getItem(j);
-                    processEvents();
-                }
-                stopMeasuring();
-            } 
-        });
-
-		commitMeasurements();
-		assertPerformance();
-		browserShell.close();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java
deleted file mode 100644
index 8bbe01b..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ShrinkingTreeTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * ShrinkingTreeTest is a test to see how long it takes to refresh a tree that goes
- * from a large item count to a smaller one.
- * @since 3.3
- *
- */
-public class ShrinkingTreeTest extends TreeTest {
-
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public ShrinkingTreeTest(String testName) {
-		super(testName);
-	}
-
-	public ShrinkingTreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public void testTreeViewerRefresh() throws CoreException {
-		
-		tagIfNecessary("JFace - Refresh from 1000 items to 100 items",
-				Dimension.ELAPSED_PROCESS);
-		
-		openBrowser();
-//		int smallCount = 1;
-//		for (int i = 0; i < 3; i++) {
-//
-//			int largeCount = smallCount * 10;
-//			for (int j = 0; j < 2; j++) {
-//				System.out.println("Small " + String.valueOf(smallCount)
-//						+ "Large " + String.valueOf(largeCount));
-				testRefresh(100, 1000);
-//				largeCount *= 10;
-//			}
-//			smallCount *= 10;
-//		}
-	}
-
-	/**
-	 * Run the test for one of the fast insertions.
-	 * 
-	 * @param count
-	 * @throws CoreException
-	 */
-	private void testRefresh(final int smallSize, final int largeSize)
-			throws CoreException {
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TestTreeElement input = new TestTreeElement(0, null);
-				viewer.setInput(input);
-				input.createChildren(largeSize);
-
-				processEvents();
-				viewer.refresh();
-				viewer.expandAll();
-				input.createChildren(smallSize);
-				startMeasuring();
-				viewer.refresh();
-
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-
-	}
-
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java
deleted file mode 100644
index 73ef1e0..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TableViewerRefreshTest.java
+++ /dev/null
@@ -1,177 +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.jface.tests.performance;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-/**
- * The TableViewerRefreshTest is a test for refreshing the TableViewer.
- */
-public class TableViewerRefreshTest extends ViewerTest {
-
-	class TestTableViewer extends TableViewer {
-
-		public TestTableViewer(Composite parent, int style) {
-			super(parent, style);
-		}
-
-		public TestTableViewer(Composite parent) {
-			super(parent);
-		}
-
-		public TestTableViewer(Table table) {
-			super(table);
-		}
-
-		public void testUpdateItem(Widget widget, Object element) {
-			updateItem(widget, element);
-		}
-	}
-
-	TestTableViewer viewer;
-
-	private RefreshTestContentProvider contentProvider;
-
-	public TableViewerRefreshTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public TableViewerRefreshTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.performance.ViewerTest#createViewer(org.eclipse.swt.widgets.Shell)
-	 */
-	protected StructuredViewer createViewer(Shell shell) {
-		viewer = new TestTableViewer(shell);
-		contentProvider = new RefreshTestContentProvider(
-				RefreshTestContentProvider.ELEMENT_COUNT);
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(getLabelProvider());
-		return viewer;
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefresh() throws Throwable {
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshSorted() throws Throwable {
-		openBrowser();
-		viewer.setSorter(new ViewerSorter());
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRefreshPreSorted() throws Throwable {
-		openBrowser();
-		final ViewerSorter sorter = new ViewerSorter();
-		viewer.setSorter(sorter);
-
-		exercise(new TestRunnable() {
-			public void run() {
-				contentProvider.refreshElements();
-				startMeasuring();
-				contentProvider.cloneElements();
-				contentProvider.preSortElements(viewer, sorter);
-				viewer.refresh();
-				processEvents();
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, ITERATIONS,
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * Test the time for doing a refresh.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testUpdate() throws Throwable {
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TableItem[] items = viewer.getTable().getItems();
-				startMeasuring();
-				for (int j = 0; j < items.length; j++) {
-					TableItem item = items[j];
-					Object element = RefreshTestContentProvider.allElements[j];
-
-					viewer.testUpdateItem(item, element);
-
-				}
-				processEvents();
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, slowGTKIterations(),
-				JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java
deleted file mode 100644
index 4ebbb3f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestElement.java
+++ /dev/null
@@ -1,43 +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.jface.tests.performance;
-
-/**
- * The TestElement is the element used for testing
- * viewers.
- *
- */
-public class TestElement {
-	
-	String name;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 */
-	public TestElement() {
-		super();
-	}
-	
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param index
-	 */
-	public TestElement(int index) {
-		name = TestTreeElement.generateFirstEntry() + String.valueOf(index);
-	}
-
-	public String getText() {
-		return name;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java
deleted file mode 100644
index faf7472..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TestTreeElement.java
+++ /dev/null
@@ -1,62 +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.jface.tests.performance;
-
-
-public class TestTreeElement extends TestElement {
-
-	TestTreeElement parent;
-
-	TestTreeElement[] children = new TestTreeElement[0];
-
-	private static int index = 0;
-
-	static String characters = "M1NqBwV2CeXrZ3LtKyJ4HuGiF5DoSpA6PaOsI7UdYfT8RgEhW9Qjk0DlWzMxUcsvfbwnm";
-
-	/**
-	 * Create a new instance of the receiver .
-	 * 
-	 * @param index
-	 * @param treeParent
-	 */
-	public TestTreeElement(int index, TestTreeElement treeParent) {
-		super();
-		this.parent = treeParent;
-		name = generateFirstEntry() + String.valueOf(index);
-	}
-
-	/**
-	 * Generate a random string.
-	 * 
-	 * @return String
-	 */
-	static String generateFirstEntry() {
-
-		String next = characters.substring(index);
-		index++;
-		if (index > characters.length() - 2)
-			index = 0;
-		return next;
-	}
-
-	/**
-	 * Create count number of children in the receiver.
-	 * 
-	 * @param count
-	 */
-	public void createChildren(int count) {
-		children = new TestTreeElement[count];
-		for (int i = 0; i < count; i++) {
-			children[i] = new TestTreeElement(i, this);
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java
deleted file mode 100644
index 87f7ef2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeAddTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.performance;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.tests.performance.TestRunnable;
-
-public class TreeAddTest extends TreeTest {
-
-	static int TEST_COUNT = 1000;
-
-	public TreeAddTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public TreeAddTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddOneAtATime() {
-		openBrowser();
-
-		for (int i = 0; i < ITERATIONS / 10; i++) {
-			TestTreeElement input = new TestTreeElement(0, null);
-			viewer.setInput(input);
-			input.createChildren(TEST_COUNT);
-			processEvents();
-			startMeasuring();
-			for (int j = 0; j < input.children.length; j++) {
-
-				viewer.add(input, input.children[j]);
-				processEvents();
-
-			}
-			stopMeasuring();
-		}
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddTen() throws CoreException {
-
-		doTestAdd(10, TEST_COUNT, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddFifty() throws CoreException {
-
-		doTestAdd(50, TEST_COUNT, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddHundred() throws CoreException {
-
-		tagIfNecessary("JFace - Add 1000 items in 10 blocks to TreeViewer",
-				Dimension.ELAPSED_PROCESS);
-		setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=101853>See Bug 101853</a> ");
-
-		doTestAdd(100, TEST_COUNT, false);
-	}
-
-	/**
-	 * Run the test for one of the fast insertions.
-	 * 
-	 * @param count
-	 * @throws CoreException
-	 */
-	protected void doTestAdd(final int increment, final int total,final boolean preSort)
-			throws CoreException {
-
-		openBrowser();
-
-		exercise(new TestRunnable() {
-			public void run() {
-
-				TestTreeElement input = new TestTreeElement(0, null);
-				viewer.setInput(input);
-				input.createChildren(total);
-				if (preSort)
-					viewer.getSorter().sort(viewer, input.children);
-				Collection batches = new ArrayList();
-				int blocks = input.children.length / increment;
-				for (int j = 0; j < blocks; j = j + increment) {
-					Object[] batch = new Object[increment];
-					System.arraycopy(input.children, j * increment, batch, 0,
-							increment);
-					batches.add(batch);
-				}
-				processEvents();
-				Object[] batchArray = batches.toArray();
-				startMeasuring();
-
-				// Measure more than one for the fast cases
-				for (int k = 0; k < batchArray.length; k++) {
-					viewer.add(input, (Object[]) batchArray[k]);
-					processEvents();
-				}
-
-				stopMeasuring();
-
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-
-	}
-
-	/**
-	 * Test addition to the tree.
-	 */
-	public void testAddThousand() throws CoreException {
-		doTestAdd(1000, 2000, false);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree one element at a time.
-	 */
-	public void testAddTwoThousand() throws CoreException {
-
-		doTestAdd(2000, 4000, false);
-
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree with the items presorted.
-	 */
-	public void testAddHundredPreSort() throws CoreException {
-
-		doTestAdd(100, 1000, true);
-	}
-
-	/**
-	 * @throws CoreException
-	 *             Test addition to the tree with the items presorted.
-	 */
-	public void testAddThousandPreSort() throws CoreException {
-		tagIfNecessary("JFace - Add 2000 items in 2 blocks to TreeViewer",
-				Dimension.ELAPSED_PROCESS);
-
-		doTestAdd(1000, 2000, true);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
deleted file mode 100644
index ab62540..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.3
- *
- */
-public abstract class TreeTest extends ViewerTest {
-	
-
-
-	TreeViewer viewer;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 * @param tagging
-	 */
-	public TreeTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 */
-	public TreeTest(String testName) {
-		super(testName);
-	}
-
-
-	protected StructuredViewer createViewer(Shell shell) {
-		viewer = createTreeViewer(shell);
-		viewer.setContentProvider(getContentProvider());
-		viewer.setLabelProvider(getLabelProvider());
-		viewer.setSorter(new ViewerSorter());
-		viewer.setUseHashlookup(true);
-		return viewer;
-	}
-
-	/**
-	 * Create the tree viewer
-	 * @return
-	 */
-	protected TreeViewer createTreeViewer(Shell shell) {
-		return new TreeViewer(shell);
-	}
-
-	protected Object getInitialInput() {
-		return new TestTreeElement(0, null);
-	}
-
-	private IContentProvider getContentProvider() {
-		return new ITreeContentProvider() {
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-			 */
-			public Object[] getChildren(Object parentElement) {
-				TestTreeElement element = (TestTreeElement) parentElement;
-				return element.children;
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-			 */
-			public Object getParent(Object element) {
-				return ((TestTreeElement) element).parent;
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-			 */
-			public boolean hasChildren(Object element) {
-				return ((TestTreeElement) element).children.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() {
-				// Do nothing here
-			}
-	
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public void inputChanged(Viewer localViewer, Object oldInput,
-					Object newInput) {
-				// Do nothing here
-			}
-	
-		};
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java
deleted file mode 100644
index b5ec976..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/TreeViewerRefreshTest.java
+++ /dev/null
@@ -1,67 +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.jface.tests.performance;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Shell;
-
-
-/**
- * The TreeViewerRefreshTest is the refresh test for 
- * tree viewers.
- *
- */
-public class TreeViewerRefreshTest extends ViewerTest {
-    
-    TreeViewer viewer;
-    private RefreshTestTreeContentProvider contentProvider;
-
-    public TreeViewerRefreshTest(String testName, int tagging) {
-        super(testName, tagging);
-    }
-
-    public TreeViewerRefreshTest(String testName) {
-        super(testName);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.tests.performance.ViewerTest#createViewer(org.eclipse.swt.widgets.Shell)
-     */
-    protected StructuredViewer createViewer(Shell shell) {
-        viewer = new TreeViewer(shell);
-        contentProvider = new RefreshTestTreeContentProvider();
-        viewer.setContentProvider(contentProvider);
-        viewer.setLabelProvider(getLabelProvider());
-        return viewer;
-    }
-
-    /**
-     * Test the time for doing a refresh.
-     * @throws Throwable
-     */
-    public void testRefresh() throws Throwable {
-        openBrowser();
-
-        for (int i = 0; i < ITERATIONS; i++) {
-            startMeasuring();
-            viewer.refresh();
-            processEvents();
-            stopMeasuring();
-        }
-        
-        commitMeasurements();
-        assertPerformance();
-    }
-    
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ViewerTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ViewerTest.java
deleted file mode 100644
index cd95a3b..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/jface/tests/performance/ViewerTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.performance;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-
-/**
- * The LinearViewerTest is a test that tests viewers.
- * 
- */
-public abstract class ViewerTest extends BasicPerformanceTest {
-
-	Shell browserShell;
-	
-	public static int ITERATIONS = 100;
-	public static int MIN_ITERATIONS = 20;
-
-	public ViewerTest(String testName, int tagging) {
-		super(testName, tagging);
-	}
-
-	public ViewerTest(String testName) {
-		super(testName);
-	}
-
-	protected void openBrowser() {
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		browserShell = new Shell(display);
-		browserShell.setSize(500, 500);
-		browserShell.setLayout(new FillLayout());
-		StructuredViewer viewer = createViewer(browserShell);
-		viewer.setUseHashlookup(true);
-		viewer.setInput(getInitialInput());
-		browserShell.open();
-		// processEvents();
-	}
-
-	/**
-	 * Get the initial input for the receiver.
-	 * @return
-	 */
-	protected Object getInitialInput() {
-		return this;
-	}
-
-	/**
-	 * Create the viewer we are testing.
-	 * @param aShell
-	 * @return
-	 */
-	protected abstract StructuredViewer createViewer(Shell shell);
-
-	public ILabelProvider getLabelProvider() {
-		return new LabelProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-			 */
-			public String getText(Object element) {
-				return ((TestElement) element).getText();
-			}
-
-		};
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		if(browserShell!= null){
-			browserShell.close();
-			browserShell = null;
-		}
-	}
-	
-	/**
-	 * Return the number of iterations for tests that are slow on Linux
-	 * @return int
-	 */
-	public int slowGTKIterations(){
-		if(Util.isGtk())
-			return ITERATIONS / 5;
-		return ITERATIONS;
-	}
-	
-	
-	/**
-	 * Return the number of iterations for tests that are slow on Linux
-	 * @return int
-	 */
-	public int slowWindowsIterations(){
-		if(Util.isWindows())
-			return ITERATIONS / 5;
-		return ITERATIONS;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ActivitiesPerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ActivitiesPerformanceSuite.java
deleted file mode 100644
index fc21369..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ActivitiesPerformanceSuite.java
+++ /dev/null
@@ -1,40 +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.tests.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.1
- *
- */
-public class ActivitiesPerformanceSuite extends TestSuite {
-
-
-    
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new ActivitiesPerformanceSuite();
-    }
-    
-    /**
-     * 
-     */
-    public ActivitiesPerformanceSuite() {
-        super();
-        addTest(new GenerateIdentifiersTest(10000));
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/BasicPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/BasicPerformanceTest.java
deleted file mode 100644
index 75018f6..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/BasicPerformanceTest.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.osgi.framework.BundleContext;
-
-/**
- * Baseclass for simple performance tests.
- * 
- * @since 3.1
- */
-public abstract class BasicPerformanceTest extends UITestCase {
-
-	static final public String INTERACTIVE = "org.eclipse.ui.tests.performance.interactive";
-
-	public static final int NONE = 0;
-
-	public static final int LOCAL = 1;
-
-	public static final int GLOBAL = 2;
-
-	private PerformanceTester tester;
-
-	private IProject testProject;
-
-	final private boolean tagAsGlobalSummary;
-
-	final private boolean tagAsSummary;
-
-	private static long startMeasuringTime;
-
-	private static long stopMeasuringTime;
-	
-	// whether we are displaying iterations per timebox in the console. default is false
-	private static boolean interactive;
-
-	public BasicPerformanceTest(String testName) {
-		this(testName, NONE);
-		BundleContext context = UIPerformancePlugin.getDefault().getContext();
-		if (context == null) { // most likely run in a wrong launch mode
-			System.err.println("Unable to retrieve bundle context from BasicPerformanceTest; interactive mode is disabled");
-			return;
-		}
-		String filterString = context.getProperty(INTERACTIVE);
-		if (filterString != null && filterString.toLowerCase().equals("true")) {
-			interactive = true;
-		}
-	}
-
-	/**
-	 * @param testName
-	 */
-	public BasicPerformanceTest(String testName, int tagging) {
-		super(testName);
-		tagAsGlobalSummary = ((tagging & GLOBAL) != 0);
-		tagAsSummary = ((tagging & LOCAL) != 0);
-	}
-
-	/**
-	 * Answers whether this test should be tagged globally.
-	 * 
-	 * @return whether this test should be tagged globally
-	 */
-	private boolean shouldGloballyTag() {
-		return tagAsGlobalSummary;
-	}
-
-	/**
-	 * Answers whether this test should be tagged locally.
-	 * 
-	 * @return whether this test should be tagged locally
-	 */
-	private boolean shouldLocallyTag() {
-		return tagAsSummary;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		if (interactive) {
-			return;
-		}
-		tester = new PerformanceTester(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		if (interactive) {
-			return;
-		}
-		tester.dispose();
-	}
-
-	protected IProject getProject() {
-		if (testProject == null) {
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			testProject = workspace.getRoot().getProject(
-					UIPerformanceTestSetup.PROJECT_NAME);
-		}
-		return testProject;
-	}
-
-	/**
-	 * Asserts default properties of the measurements captured for this test
-	 * case.
-	 * 
-	 * @throws RuntimeException
-	 *             if the properties do not hold
-	 */
-	public void assertPerformance() {
-		if (interactive) {
-			return;
-		}
-		tester.assertPerformance();
-	}
-
-	/**
-	 * Asserts that the measurement specified by the given dimension is within a
-	 * certain range with respect to some reference value. If the specified
-	 * dimension isn't available, the call has no effect.
-	 * 
-	 * @param dim
-	 *            the Dimension to check
-	 * @param lowerPercentage
-	 *            a negative number indicating the percentage the measured value
-	 *            is allowed to be smaller than some reference value
-	 * @param upperPercentage
-	 *            a positive number indicating the percentage the measured value
-	 *            is allowed to be greater than some reference value
-	 * @throws RuntimeException
-	 *             if the properties do not hold
-	 */
-	public void assertPerformanceInRelativeBand(Dimension dim,
-			int lowerPercentage, int upperPercentage) {
-		if (interactive) {
-			return;
-		}
-		tester.assertPerformanceInRelativeBand(dim, lowerPercentage,
-				upperPercentage);
-	}
-
-	public void commitMeasurements() {
-		if (interactive) {
-			return;
-		}
-		tester.commitMeasurements();
-	}
-
-	/**
-	 * Called from within a test case immediately before the code to measure is
-	 * run. It starts capturing of performance data. Must be followed by a call
-	 * to {@link PerformanceTestCase#stopMeasuring()}before subsequent calls to
-	 * this method or {@link PerformanceTestCase#commitMeasurements()}.
-	 */
-	public void startMeasuring() {
-		if (interactive) {
-			startMeasuringTime = System.currentTimeMillis();
-			return;
-		}
-		tester.startMeasuring();
-	}
-
-	public void stopMeasuring() {
-		if (interactive) {
-			stopMeasuringTime = System.currentTimeMillis();
-			return;
-		}
-		tester.stopMeasuring();
-	}
-
-	/**
-	 * Mark the scenario of this test case to be included into the global
-	 * performance summary. The summary shows the given dimension of the
-	 * scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descritive name of the
-	 *            scenario
-	 * @param dimension
-	 *            the dimension to show in the summary
-	 */
-	private void tagAsGlobalSummary(String shortName, Dimension dimension) {
-		System.out.println("GLOBAL " + shortName);
-		if (interactive) {
-			return;
-		}
-		tester.tagAsGlobalSummary(shortName, dimension);
-	}
-
-	private void tagAsSummary(String shortName, Dimension dimension) {
-		System.out.println("LOCAL " + shortName);
-		if (interactive) {
-			return;
-		}
-		tester.tagAsSummary(shortName, dimension);
-	}
-
-	public void tagIfNecessary(String shortName, Dimension dimension) {
-		if (shouldGloballyTag()) {
-			tagAsGlobalSummary(shortName, dimension);
-		}
-		if (shouldLocallyTag()) {
-			tagAsSummary(shortName, dimension);
-		}
-	}
-
-	public static void waitForBackgroundJobs() {
-
-		Job backgroundJob = new Job(
-				"This is a test job which sits around being low priority until everything else finishes") {
-			protected IStatus run(IProgressMonitor monitor) {
-				return Status.OK_STATUS;
-			}
-		};
-
-		backgroundJob.setPriority(Job.DECORATE);
-
-		boolean hadEvents = true;
-		Display display = PlatformUI.getWorkbench().getDisplay();
-		if (display != null) {
-			while (hadEvents) {
-				hadEvents = false;
-				// Join a low priority job then spin the event loop
-				backgroundJob.schedule(0);
-				try {
-					backgroundJob.join();
-				} catch (InterruptedException e) {
-				}
-
-				while (display.readAndDispatch()) {
-					hadEvents = true;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Runs the given runnable until either 100 iterations or 4s has elapsed.
-	 * Runs a minimum of 3 times.
-	 * 
-	 * @param runnable
-	 * @since 3.1
-	 */
-	public static void exercise(TestRunnable runnable) throws CoreException {
-		exercise(runnable, 3, 100, 4000);
-	}
-
-	/**
-	 * Exercises the given runnable until either the given number of iterations
-	 * or the given amount of time has elapsed, whatever occurs first.
-	 * 
-	 * @param runnable
-	 * @param maxIterations
-	 * @param maxTime
-	 * @since 3.1
-	 */
-	public static void exercise(TestRunnable runnable, int minIterations,
-			int maxIterations, int maxTime) throws CoreException {
-		if (interactive) {
-			NumberFormat f = new DecimalFormat("##.000");
-			NumberFormat p = new DecimalFormat("#0.0");
-			try {
-				runnable.run();
-				int initialRuns = 3;
-				long startTime = System.currentTimeMillis();
-				for (int i=0; i<initialRuns; i++) {
-					runnable.run();
-				}
-				long currentTime = System.currentTimeMillis();
-				double timePerRun = (currentTime - startTime) / 1000.0 / initialRuns;
-				int totalRuns = initialRuns;
-				double interval = 10.0; // ten seconds
-				long intervalMillis = (long) (1000 * interval);
-				double averagePerInterval = interval/timePerRun;
-				System.out.println("Time per run (roughly): " + f.format(timePerRun) + " - expecting " + f.format(averagePerInterval) + " runs per 10 seconds.");
-				System.err.println("Remember - higher means faster: the following shows number of runs per interval (seconds=" + p.format(interval) + ").");
-				while (true) {
-					int numOperations = 0;
-					long elapsed = 0;
-					while (elapsed < intervalMillis) {
-						startMeasuringTime = -1;
-						stopMeasuringTime = -1;
-						startTime = System.currentTimeMillis();
-						numOperations++;
-						runnable.run();
-						currentTime = System.currentTimeMillis();
-						if (startMeasuringTime != -1 && stopMeasuringTime != -1) {
-							elapsed += stopMeasuringTime - startMeasuringTime;
-						} else {
-							elapsed += currentTime - startTime;
-						}
-					}
-					timePerRun = elapsed / 1000.0 / numOperations;
-					double operationsPerInterval = interval/timePerRun;
-					double deviation = (operationsPerInterval - averagePerInterval) / averagePerInterval * 100.0;
-					System.out.println(f.format(operationsPerInterval) + " runs/interval    (" + (deviation>=0.0?"+":"-") + p.format(Math.abs(deviation)) + "% relative to avg=" + f.format(averagePerInterval) + ")");
-					averagePerInterval = ((averagePerInterval * totalRuns) + (operationsPerInterval * numOperations)) / (totalRuns + numOperations);
-					totalRuns += numOperations;
-				}
-			} catch(Exception ex) {
-				ex.printStackTrace();
-			}
-			return;
-		}
-		long startTime = System.currentTimeMillis();
-
-		for (int counter = 0; counter < maxIterations; counter++) {
-
-			try {
-				runnable.run();
-			} catch (Exception e) {
-				throw new CoreException(new Status(IStatus.ERROR,
-						UIPerformancePlugin.getDefault().getBundle()
-								.getSymbolicName(), IStatus.OK,
-						"An exception occurred", e));
-			}
-
-			long curTime = System.currentTimeMillis();
-			if (curTime - startTime > maxTime && counter >= minIterations - 1) {
-				break;
-			}
-		}
-	}
-
-	/**
-	 * Set the comment for the receiver to string. Note this is added to the
-	 * output as is so you will need to add markup if you need a link.
-	 * 
-	 * @param string
-	 *            The comment to write out for the test.
-	 */
-	public void setDegradationComment(String string) {
-		if (interactive) {
-			return;
-		}
-		tester.setDegradationComment(string);
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/CommandsPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/CommandsPerformanceTest.java
deleted file mode 100644
index 6529ad4..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/CommandsPerformanceTest.java
+++ /dev/null
@@ -1,474 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Set;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.BindingManager;
-import org.eclipse.jface.bindings.Scheme;
-import org.eclipse.jface.bindings.keys.IKeyLookup;
-import org.eclipse.jface.bindings.keys.KeyBinding;
-import org.eclipse.jface.bindings.keys.KeyLookupFactory;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.jface.util.Util;
-
-/**
- * <p>
- * Responsible for testing the commands, contexts and bindings architecture.
- * This test does not rely on the existence of the workbench; it operates purely
- * on JFace code and lower. See the method comments for descriptions of the
- * currently supported performance tests.
- * </p>
- * 
- * @since 3.1
- */
-public final class CommandsPerformanceTest extends BasicPerformanceTest {
-
-	/**
-	 * <p>
-	 * Constructs a branch of a context tree. This creates a branch of the given
-	 * depth -- remembering the identifiers along the way. This method operates
-	 * recursively.
-	 * </p>
-	 * <p>
-	 * TODO This should add a bit of breadth to the tree.
-	 * </p>
-	 * 
-	 * @param contextManager
-	 *            The context manager in which the contexts should be defined;
-	 *            must not be <code>null</code>.
-	 * @param parent
-	 *            The parent context identifier for the context to be created;
-	 *            may be <code>null</code>.
-	 * @param successors
-	 *            The number of successors to create. The depth of the branch to
-	 *            be created. If this number is zero, then a context is created,
-	 *            but no recursive call is made.
-	 * @param activeContextIds
-	 *            The list of active context identifiers; must not be
-	 *            <code>null</code>.
-	 */
-	private static final void createContext(
-			final ContextManager contextManager, final String parent,
-			final int successors, final List activeContextIds) {
-		final int count = activeContextIds.size();
-		final String contextString = "context" + count;
-		final Context context = contextManager.getContext(contextString);
-		context.define(contextString, contextString, parent);
-		activeContextIds.add(contextString);
-
-		if (successors == 0) {
-			return;
-		}
-
-		createContext(contextManager, contextString, successors - 1,
-				activeContextIds);
-	}
-
-	/**
-	 * <p>
-	 * Constructs a branch of a scheme tree. This creates a branch of the given
-	 * depth -- remembering the schemes along the way. This method operates
-	 * recursively.
-	 * </p>
-	 * <p>
-	 * TODO This should add a bit of breadth to the tree.
-	 * </p>
-	 * 
-	 * @param bindingManager
-	 *            The binding manager in which the schemes should be defined;
-	 *            must not be <code>null</code>.
-	 * @param parent
-	 *            The parent scheme identifier for the scheme to be created; may
-	 *            be <code>null</code>.
-	 * @param successors
-	 *            The number of successors to create. The depth of the branch to
-	 *            be created. If this number is zero, then a scheme is created,
-	 *            but no recursive call is made.
-	 * @param schemes
-	 *            The list of created schemes; must not be <code>null</code>.
-	 */
-	private static final void createScheme(final BindingManager bindingManager,
-			final String parent, final int successors, final List schemes) {
-		final int count = schemes.size();
-		final String schemeString = "scheme" + count;
-		final Scheme scheme = bindingManager.getScheme(schemeString);
-		scheme.define(schemeString, schemeString, parent);
-		schemes.add(scheme);
-
-		if (successors == 0) {
-			return;
-		}
-
-		createScheme(bindingManager, schemeString, successors - 1, schemes);
-	}
-
-	/**
-	 * The binding manager for the currently running test. <code>null</code>
-	 * if no test is running.
-	 */
-	private BindingManager bindingManager = null;
-
-	/**
-	 * The command manager for the currently running test. <code>null</code>
-	 * if no test is running.
-	 */
-	private CommandManager commandManager = null;
-
-	/**
-	 * The context manager for the currently running test. <code>null</code>
-	 * if no test is running.
-	 */
-	private ContextManager contextManager = null;
-
-	/**
-	 * Constructs an instance of <code>CommandsPerformanceTest</code>.
-	 * 
-	 * @param testName
-	 *            Test's name.
-	 */
-	public CommandsPerformanceTest(final String name) {
-		super(name);
-	}
-
-	/**
-	 * <p>
-	 * Sets up a sufficiently complex set of bindings.
-	 * </p>
-	 * <p>
-	 * At the time of writing, Eclipse's key binding set contains about five
-	 * hundred bindings. Of these, 140 specify platform information, while only
-	 * 5 specify locale information. About 40 are deletion markers. The deepest
-	 * point in the context tree is four levels. There are two schemes.
-	 * </p>
-	 * <p>
-	 * The test binding set contains five thousand bindings. About 1400 specify
-	 * either locale or platform information. Five hundred are deletion markers.
-	 * The deepest point in the context tree is 40 levels. There are twenty
-	 * schemes.
-	 * </p>
-	 * <p>
-	 * The depth of the locale and platform tree is the same in both real life
-	 * and the test case. It is difficult to imagine why the locale list would
-	 * ever be anything but four elements, or why the platform list would ever
-	 * be anything but three elements.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If something went wrong initializing the active scheme.
-	 */
-	protected final void doSetUp() throws NotDefinedException, Exception {
-		super.doSetUp();
-
-		/*
-		 * The constants to use in creating the various objects. The platform
-		 * locale count must be greater than or equal to the number of deletion
-		 * markers. Deletion markers are typically created based on the platform
-		 * or locale.
-		 */
-		final int contextTreeDepth = 40;
-		final int schemeDepth = 20;
-		final int bindingCount = 5000;
-		final int platformLocaleCount = 1400;
-		final int deletionMarkers = 500;
-		final String currentLocale = Locale.getDefault().toString();
-		final String currentPlatform = Util.getWS();
-
-		// Set-up a table of modifier keys.
-		final IKeyLookup lookup = KeyLookupFactory.getDefault();
-		final int modifierKeys0 = 0;
-		final int modifierKeys1 = lookup.getAlt();
-		final int modifierKeys2 = lookup.getCommand();
-		final int modifierKeys3 = lookup.getCtrl();
-		final int modifierKeys4 = lookup.getShift();
-		final int modifierKeys5 = lookup.getAlt() | lookup.getCommand();
-		final int modifierKeys6 = lookup.getAlt() | lookup.getCtrl();
-		final int modifierKeys7 = lookup.getAlt() | lookup.getShift();
-		final int modifierKeys8 = lookup.getCommand() | lookup.getCtrl();
-		final int modifierKeys9 = lookup.getCommand() | lookup.getShift();
-		final int modifierKeys10 = lookup.getCtrl() | lookup.getShift();
-		final int modifierKeys11 = lookup.getAlt() | lookup.getCommand()
-				| lookup.getCtrl();
-		final int modifierKeys12 = lookup.getAlt() | lookup.getCommand()
-				| lookup.getShift();
-		final int modifierKeys13 = lookup.getAlt() | lookup.getCtrl()
-				| lookup.getShift();
-		final int modifierKeys14 = lookup.getCommand() | lookup.getCtrl()
-				| lookup.getShift();
-		final int modifierKeys15 = lookup.getAlt() | lookup.getCommand()
-				| lookup.getCtrl() | lookup.getShift();
-		final int[] modifierKeyTable = { modifierKeys0, modifierKeys1,
-				modifierKeys2, modifierKeys3, modifierKeys4, modifierKeys5,
-				modifierKeys6, modifierKeys7, modifierKeys8, modifierKeys9,
-				modifierKeys10, modifierKeys11, modifierKeys12, modifierKeys13,
-				modifierKeys14, modifierKeys15 };
-
-		// Initialize the command manager.
-		commandManager = new CommandManager();
-
-		// Initialize the contexts.
-		contextManager = new ContextManager();
-		final List activeContextIds = new ArrayList();
-		createContext(contextManager, null, contextTreeDepth, activeContextIds);
-		contextManager.setActiveContextIds(new HashSet(activeContextIds));
-
-		// Initialize the schemes.
-		bindingManager = new BindingManager(contextManager, commandManager);
-		final List schemes = new ArrayList();
-		createScheme(bindingManager, null, schemeDepth, schemes);
-		bindingManager
-				.setActiveScheme((Scheme) schemes.get(schemes.size() - 1));
-
-		// Create the deletion markers.
-		final Binding[] bindings = new Binding[bindingCount];
-		for (int i = 0; i < deletionMarkers; i++) {
-			/*
-			 * Set-up the locale and platform. These are based on the numbers
-			 * given above.
-			 */
-			String locale = null;
-			String platform = null;
-
-			if (i < platformLocaleCount) {
-				switch (i % 4) {
-				case 0:
-					locale = currentLocale;
-					break;
-				case 1:
-					platform = currentPlatform;
-					break;
-				case 2:
-					locale = "gibberish";
-					break;
-				case 3:
-					platform = "gibberish";
-					break;
-				}
-			}
-
-			// Build a key sequence.
-			final char character = (char) ('A' + (i % 26));
-			final int modifierKeys = modifierKeyTable[(i / 26)
-					% modifierKeyTable.length];
-			final KeyStroke keyStroke = KeyStroke.getInstance(modifierKeys,
-					character);
-			final KeySequence keySequence = KeySequence.getInstance(keyStroke);
-
-			// Build the other parameters.
-			final String schemeId = ((Scheme) schemes.get(i % schemes.size()))
-					.getId();
-			final String contextId = (String) activeContextIds.get(i
-					% activeContextIds.size());
-			final int type = (i % 2);
-
-			// Construct the binding.
-			final Binding binding = new KeyBinding(keySequence, null, schemeId,
-					contextId, locale, platform, null, type);
-			bindings[i] = binding;
-		}
-
-		/*
-		 * Now create the regular bindings. By using the same loop structure and
-		 * resetting the index to zero, we ensure that the deletion markers will
-		 * actually delete something.
-		 */
-		for (int i = 0; i < bindingCount - deletionMarkers; i++) {
-			/*
-			 * Set-up the locale and platform for those bindings that will not
-			 * be used to match the above deletion markers. These are based on
-			 * the numbers given above.
-			 */
-			String locale = null;
-			String platform = null;
-
-			if ((i > deletionMarkers) && (i < platformLocaleCount)) {
-				switch (i % 4) {
-				case 0:
-					locale = currentLocale;
-					break;
-				case 1:
-					platform = currentPlatform;
-					break;
-				case 2:
-					locale = "gibberish";
-					break;
-				case 3:
-					platform = "gibberish";
-					break;
-				}
-			}
-
-			// Build a key sequence.
-			final char character = (char) ('A' + (i % 26));
-			final int modifierKeys = modifierKeyTable[(i / 26)
-					% modifierKeyTable.length];
-			final KeyStroke keyStroke = KeyStroke.getInstance(modifierKeys,
-					character);
-			final KeySequence keySequence = KeySequence.getInstance(keyStroke);
-
-			// Build the other parameters.
-			final String commandId = "command" + i;
-			final String schemeId = ((Scheme) schemes.get(i % schemes.size()))
-					.getId();
-			final String contextId = (String) activeContextIds.get(i
-					% activeContextIds.size());
-			final int type = (i % 2);
-
-			// Construct the binding.
-			final Command command = commandManager.getCommand(commandId);
-			final ParameterizedCommand parameterizedCommand = new ParameterizedCommand(
-					command, null);
-			final Binding binding = new KeyBinding(keySequence,
-					parameterizedCommand, schemeId, contextId, locale,
-					platform, null, type);
-			bindings[i + deletionMarkers] = binding;
-		}
-		bindingManager.setBindings(bindings);
-	}
-
-	protected final void doTearDown() throws Exception {
-		bindingManager = null;
-		commandManager = null;
-		contextManager = null;
-		super.doTearDown();
-	}
-
-	/**
-	 * <p>
-	 * Tests how long it takes to access the cache if no conditions have
-	 * changed. It measures how long it takes to look up the computation from
-	 * the cache one million times.
-	 * </p>
-	 * 
-	 * @throws ParseException
-	 *             If "CTRL+F" can't be parsed for some strange reason.
-	 */
-	public final void testBindingCacheHitHard() throws ParseException {
-		// Constants
-		final int cacheHits = 1000000;
-		final KeySequence keySequence = KeySequence.getInstance("CTRL+F");
-
-		// Compute once.
-		bindingManager.getPartialMatches(keySequence);
-
-		// Time how long it takes to access the cache;
-		startMeasuring();
-		for (int i = 0; i < cacheHits; i++) {
-			bindingManager.getPartialMatches(keySequence);
-		}
-		stopMeasuring();
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * <p>
-	 * Tests how long it takes to access the cache if no conditions have
-	 * changed. It measures how long it takes to look up the computation from
-	 * the cache one million times. In this test, the look-up is done in reverse --
-	 * from command identifier to trigger.
-	 * </p>
-	 * 
-	 * @throws ParseException
-	 *             If "CTRL+F" can't be parsed for some strange reason.
-	 */
-	public final void testBindingCacheHitHardReverse() throws ParseException {
-		// Constants
-		final int cacheHits = 1000000;
-		final KeySequence keySequence = KeySequence.getInstance("CTRL+F");
-
-		// Compute once.
-		bindingManager.getPartialMatches(keySequence);
-
-		// Time how long it takes to access the cache;
-		startMeasuring();
-		for (int i = 0; i < cacheHits; i++) {
-			bindingManager.getActiveBindingsFor((ParameterizedCommand) null);
-		}
-		stopMeasuring();
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * <p>
-	 * Tests how long it takes to access the cache if the conditions have
-	 * changed, but the cache contains a matching entry. It measures how long it
-	 * takes to look up the computation from the cache forty thousand times.
-	 * </p>
-	 * 
-	 * @throws ParseException
-	 *             If "CTRL+F" can't be parsed for some strange reason.
-	 */
-	public final void testBindingCacheHitSoft() throws ParseException {
-		// Constants
-		final int cacheHits = 10000;
-		final KeySequence keySequence = KeySequence.getInstance("CTRL+F");
-
-		// Compute once for each context set.
-		final Set contextSet1 = contextManager.getActiveContextIds();
-		bindingManager.getPartialMatches(keySequence);
-		final List contextList = new ArrayList(contextSet1);
-		contextList.remove(contextList.size() - 1);
-		final Set contextSet2 = new HashSet(contextList);
-		contextManager.setActiveContextIds(contextSet2);
-		bindingManager.getPartialMatches(keySequence);
-
-		// Time how long it takes to access the cache;
-		startMeasuring();
-		for (int i = 0; i < cacheHits; i++) {
-			if ((i % 2) == 0) {
-				contextManager.setActiveContextIds(contextSet1);
-			} else {
-				contextManager.setActiveContextIds(contextSet2);
-			}
-			bindingManager.getPartialMatches(keySequence);
-		}
-		stopMeasuring();
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	/**
-	 * <p>
-	 * Tests how long it takes to do a full computation (i.e., a cache miss) on
-	 * an exceptionally large set of bindings. The binding set tries to mimick
-	 * some of the same properties of a "real" binding set.
-	 * </p>
-	 * 
-	 * @throws ParseException
-	 *             If "CTRL+F" can't be parsed for some strange reason.
-	 */
-	public final void testBindingCacheMissLarge() throws ParseException {
-		// Constants
-		final KeySequence keySequence = KeySequence.getInstance("CTRL+F");
-
-		// Time how long it takes to solve the binding set.
-		startMeasuring();
-		bindingManager.getPartialMatches(keySequence);
-		stopMeasuring();
-		commitMeasurements();
-		assertPerformance();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ContentDescriberForTestsOnly.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ContentDescriberForTestsOnly.java
deleted file mode 100644
index 001769d..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ContentDescriberForTestsOnly.java
+++ /dev/null
@@ -1,140 +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.tests.performance;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescriber;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.ITextContentDescriber;
-
-/**
- * This test ContentDescriber added specifically for OpenNavigatorFolderTest.
- * 
- */
-
-public final class ContentDescriberForTestsOnly implements ITextContentDescriber {
-
-	/*
-	 * this "simulated time" represents how long a content describer might
-	 * take parsing a file. Offhand (i.e. just guessing) 2000 msecs would be "bad case" examples. 
-	 * 20 msecs would be near a good, optimistic case.
-	 * I've picked 75 msecs for this test, to represent "normal" case 
-	 * (such as the HTML parser that gave rise to the original bug :)  
-	 * 
-	 * Note: unlike a "real" ContentDescriber, this one only effects "elapsed
-	 * time", not "CPU Time", since all it is doing is sleeping.
-	 */
-	private static final int SIMULATED_CALCULATION_TIME = 75;
-	private static final QualifiedName[] SUPPORTED_OPTIONS = {IContentDescription.CHARSET, IContentDescription.BYTE_ORDER_MARK};
-
-	public int describe(InputStream contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-
-		if (description == null) {
-			result = computeValidity(contents);
-		}
-		else {
-			calculateSupportedOptions(contents, description);
-			// assummming we should return same 'validity' value we did
-			// when called before. (technically, could be a performance issue
-			// in future, so might want to check if any 'ol value would
-			// be ok here.
-			result = computeValidity(contents);
-		}
-
-		return result;
-	}
-
-	public int describe(Reader contents, IContentDescription description) throws IOException {
-		int result = IContentDescriber.INDETERMINATE;
-
-		if (description == null) {
-			result = computeValidity(contents);
-		}
-		else {
-			calculateSupportedOptions(contents, description);
-			// assummming we should return same 'validity' value we did
-			// when called before. (technically, could be a performance issue
-			// in future, so might want to check if hard coded 'valid' would
-			// be ok here.
-			result = computeValidity(contents);
-		}
-
-		return result;
-	}
-
-	public QualifiedName[] getSupportedOptions() {
-
-		return SUPPORTED_OPTIONS;
-	}
-
-	private void calculateSupportedOptions(InputStream contents, IContentDescription description) throws IOException {
-		if (isRelevent(description)) {
-			makeBusy();
-		}
-	}
-
-	private void makeBusy() {
-		// for this test "content type", we don't
-		// really calculate anything. We just
-		// just take a long time doing nothing.
-		try {
-			Thread.sleep(SIMULATED_CALCULATION_TIME);
-		}
-		catch (InterruptedException e) {
-			// never expected
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * @param contents
-	 * @param description
-	 * @throws IOException
-	 */
-	private void calculateSupportedOptions(Reader contents, IContentDescription description) throws IOException {
-		if (isRelevent(description)) {
-			makeBusy();
-		}
-	}
-
-	private int computeValidity(InputStream inputStream) {
-		// currently no contents specific check for valid HTML contents
-		// (this may change once we add XHTML content type)
-		return IContentDescriber.INDETERMINATE;
-	}
-
-	private int computeValidity(Reader reader) {
-		// no contents specific check for valid HTML contents
-		// (this may change once we add XHTML content type)
-		return IContentDescriber.INDETERMINATE;
-	}
-
-	/**
-	 * @param description
-	 * @return
-	 */
-	private boolean isRelevent(IContentDescription description) {
-		boolean result = false;
-		if (description == null)
-			result = false;
-		else if (description.isRequested(IContentDescription.BYTE_ORDER_MARK))
-			result = true;
-		else if (description.isRequested(IContentDescription.CHARSET))
-			result = true;
-		return result;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorPerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorPerformanceSuite.java
deleted file mode 100644
index 5aaf68b..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorPerformanceSuite.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.1
- */
-public class EditorPerformanceSuite extends TestSuite {
-    
-    public static final String [] EDITOR_FILE_EXTENSIONS = {"perf_basic", "perf_outline", "java"};
-    public static final String [][] EDITOR_SWITCH_PAIRS = {
-        {"perf_outline", "java"},
-        {"perf_basic", "perf_outline"}};
-    
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new EditorPerformanceSuite();
-    }
-
-    public EditorPerformanceSuite() {
-        addOpenCloseScenarios();
-        addSwitchScenarios();
-        addOpenMultipleScenarios(true);
-        addOpenMultipleScenarios(false);
-    }
-
-    // Commented out: these tests don't seem to be working 
-//    /**
-//     * 
-//     * @since 3.1
-//     */
-//    private void addResizeScenarios() {
-//        for (int i = 0; i < EDITOR_FILE_EXTENSIONS.length; i++) {
-//            addTest(new ResizeTest(new EditorWidgetFactory("1." + EDITOR_FILE_EXTENSIONS[i])));            
-//        }               
-//    }
-
-    /**
-     * 
-     */
-    private void addSwitchScenarios() {
-        for (int i = 0; i < EDITOR_SWITCH_PAIRS.length; i++) {
-            addTest(new EditorSwitchTest(EDITOR_SWITCH_PAIRS[i]));            
-        }       
-    }
-
-    /**
-     * 
-     */
-    private void addOpenMultipleScenarios(boolean closeAll) {
-        for (int i = 0; i < EDITOR_FILE_EXTENSIONS.length; i++) {
-            addTest(new OpenMultipleEditorTest(EDITOR_FILE_EXTENSIONS[i], closeAll, BasicPerformanceTest.NONE));            
-        }
-    }
-
-    /**
-     * 
-     */
-    private void addOpenCloseScenarios() {
-        for (int i = 0; i < EDITOR_FILE_EXTENSIONS.length; i++) {
-            addTest(new OpenCloseEditorTest(EDITOR_FILE_EXTENSIONS[i], i == 3 ? BasicPerformanceTest.LOCAL : BasicPerformanceTest.NONE));            
-        }        
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java
deleted file mode 100644
index 94a78c5..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorSwitchTest.java
+++ /dev/null
@@ -1,75 +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.ui.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * Test editor switching.
- */
-public class EditorSwitchTest extends BasicPerformanceTest {
-
-	private String extension1;
-
-	private String extension2;
-
-	/**
-	 * Constructor.
-	 * 
-	 * @param testName
-	 *            Test's name.
-	 */
-	public EditorSwitchTest(String[] pair) {
-		super("testEditorSwitch:" + pair[0] + "," + pair[1]);
-		extension1 = pair[0];
-		extension2 = pair[1];
-	}
-
-	/**
-	 * Test editor opening performance. This test always fails.
-	 */
-	protected void runTest() throws CoreException {
-
-		// Open both files outside the loop so as not to include
-		// the initial time to open, just switching.
-		IWorkbenchWindow window = openTestWindow(UIPerformanceTestSetup.PERSPECTIVE1);
-		final IWorkbenchPage activePage = window.getActivePage();
-		final IFile file1 = getProject().getFile("1." + extension1);
-		assertTrue(file1.exists());
-		final IFile file2 = getProject().getFile("1." + extension2);
-		assertTrue(file2.exists());
-		IDE.openEditor(activePage, file1, true);
-		IDE.openEditor(activePage, file2, true);
-		processEvents();
-        EditorTestHelper.calmDown(500, 30000, 500);
-        waitForBackgroundJobs();
-        
-		for (int j = 0; j < 100; j++) {
-
-			startMeasuring();
-			for (int i = 0; i < 12; i++) {
-                IDE.openEditor(activePage, file1, true);
-                processEvents();
-                IDE.openEditor(activePage, file2, true);
-                processEvents();
-			}
-			stopMeasuring();
-            EditorTestHelper.calmDown(500, 30000, 100);
-		}
-        
-		commitMeasurements();
-		assertPerformance();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java
deleted file mode 100644
index ba27a2a..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/EditorTestHelper.java
+++ /dev/null
@@ -1,178 +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.ui.tests.performance;
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewReference;
-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.ide.IDE;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-
-/**
- * @since 3.1
- */
-public class EditorTestHelper {
-
-	public static IEditorPart openInEditor(IFile file, boolean runEventLoop) throws PartInitException {
-		IEditorPart part= IDE.openEditor(getActivePage(), file);
-		if (runEventLoop)
-			runEventQueue(part);
-		return part;
-	}
-
-	public static IEditorPart openInEditor(IFile file, String editorId, boolean runEventLoop) throws PartInitException {
-		IEditorPart part= IDE.openEditor(getActivePage(), file, editorId);
-		if (runEventLoop)
-			runEventQueue(part);
-		return part;
-	}
-
-	public static IDocument getDocument(ITextEditor editor) {
-		IDocumentProvider provider= editor.getDocumentProvider();
-		IEditorInput input= editor.getEditorInput();
-		return provider.getDocument(input);
-	}
-
-	public static void revertEditor(ITextEditor editor, boolean runEventQueue) {
-		editor.doRevertToSaved();
-		if (runEventQueue)
-			runEventQueue(editor);
-	}
-	
-	public static void closeAllEditors() {
-		IWorkbenchPage page= getActivePage();
-		if (page != null)
-			page.closeAllEditors(false);
-	}
-	
-	public static void runEventQueue() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		if (window != null)
-			runEventQueue(window.getShell());
-	}
-	
-	public static void runEventQueue(IWorkbenchPart part) {
-		runEventQueue(part.getSite().getShell());
-	}
-	
-	public static void runEventQueue(Shell shell) {
-		while (shell.getDisplay().readAndDispatch());
-	}
-	
-	public static void runEventQueue(long minTime) {
-		long nextCheck= System.currentTimeMillis() + minTime;
-		while (System.currentTimeMillis() < nextCheck) {
-			runEventQueue();
-			sleep(1);
-		}
-	}
-	
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-	}
-
-	public static IWorkbenchPage getActivePage() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getActivePage() : null;
-	}
-
-	public static Display getActiveDisplay() {
-		IWorkbenchWindow window= getActiveWorkbenchWindow();
-		return window != null ? window.getShell().getDisplay() : null;
-	}
-
-	public static boolean calmDown(long minTime, long maxTime, long intervalTime) {
-		long startTime= System.currentTimeMillis() + minTime;
-		runEventQueue();
-		while (System.currentTimeMillis() < startTime)
-			runEventQueue(intervalTime);
-		
-		long endTime= maxTime > 0 ? System.currentTimeMillis() + maxTime : Long.MAX_VALUE;
-		boolean calm= isCalm();
-		while (!calm && System.currentTimeMillis() < endTime) {
-			runEventQueue(intervalTime);
-			calm= isCalm();
-		}
-//		System.out.println("--------------------------------------------------");
-		return calm;
-	}
-
-	public static void sleep(int intervalTime) {
-		try {
-			Thread.sleep(intervalTime);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	public static boolean isCalm() {
-		IJobManager jobManager= Platform.getJobManager();
-		Job[] jobs= jobManager.find(null);
-		for (int i= 0; i < jobs.length; i++) {
-			Job job= jobs[i];
-			int state= job.getState();
-//			System.out.println(job.getName() + ": " + getStateName(state));
-			if (state == Job.RUNNING || state == Job.WAITING) {
-//				System.out.println();
-				return false;
-			}
-		}
-//		System.out.println();
-		return true;
-	}
-
-//	private static String getStateName(int state) {
-//		switch (state) {
-//			case Job.RUNNING: return "RUNNING";
-//			case Job.WAITING: return "WAITING";
-//			case Job.SLEEPING: return "SLEEPING";
-//			case Job.NONE: return "NONE";
-//			default: return "unknown " + state;
-//		}
-//	}
-
-	public static boolean showView(String viewId) throws PartInitException {
-		IWorkbenchPage activePage= getActivePage();
-		IViewReference view= activePage.findViewReference(viewId);
-		boolean notShown= view == null;
-		if (notShown)
-			activePage.showView(viewId);
-		return notShown;
-	}
-
-	public static boolean hideView(String viewId) {
-		IWorkbenchPage activePage= getActivePage();
-		IViewReference view= activePage.findViewReference(viewId);
-		boolean shown= view != null;
-		if (shown)
-			activePage.hideView(view);
-		return shown;
-	}
-
-	public static void bringToTop() {
-		getActiveWorkbenchWindow().getShell().forceActive();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/FilteredTestSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/FilteredTestSuite.java
deleted file mode 100644
index 3f7c19d..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/FilteredTestSuite.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.util.Enumeration;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.osgi.framework.BundleContext;
-
-/**
- * Only includes tests that match filter. Filter is specified in the Java system variable
- * <code>org.eclipse.ui.tests.filter</code>. The expected filter format is:
- * <pre>
- * 		test_class_name[#test_name]
- * </pre>
- * where both test_class_name and test_name can be a regular expression.
- * <p>
- * For instance:
- * <pre>
- * 		OpenCloseEditorTest#testOpenAndCloseEditors:perf_outline()
- * </pre>
- * The variable can be specified as a VM argument for the Eclipse launcher:
- * <pre>
- * 		"-Dorg.eclipse.ui.tests.filter=OpenCloseEditorTest#testOpenAndCloseEditors:perf_outline()"
- * </pre>
- * or
- * <pre>
- * 		"-Dorg.eclipse.ui.tests.filter=OpenCloseEditorTest#testOpenAndCloseEditors.*"
- * </pre>
- * </p>
- * @since 3.5
- */
-public class FilteredTestSuite extends TestSuite {
-
-	static final public String FILTER_TEST_NAME = "org.eclipse.ui.tests.filter";
-
-    private String filterTestClassName;
-    private String filterTestName;
-
-    public FilteredTestSuite() {
-    	BundleContext context = UIPerformancePlugin.getDefault().getContext();
-    	if (context == null) { // most likely run in a wrong launch mode
-    		System.err.println("UIPerformanceTestSuite was unable to retirieve bundle context; test filtering is disabled");
-    		return;
-    	}
-		String filterString = context.getProperty(FILTER_TEST_NAME);
-		if (filterString == null)
-			return;
-		if (filterString.endsWith("()"))
-			filterString = filterString.substring(0, filterString.length() - 2);
-
-		// Expected format: filterTestClassName#filterTestName
-		int methodSeparator = filterString.indexOf('#');
-		if (methodSeparator != -1) {
-
-			if (methodSeparator == 0)
-				filterTestClassName = null;
-			else
-				filterTestClassName = filterString.substring(0, methodSeparator);
-			
-			if (methodSeparator + 1 < filterString.length())
-				filterTestName = filterString.substring(methodSeparator + 1);
-			else
-				filterTestName = null;
-		} else {
-			filterTestClassName = filterString;
-			filterTestName = null;
-		}
-    }
-
-    public void addTest(Test test) {
-    	if ((filterTestClassName != null) || (filterTestName != null)) {
-    		if (test instanceof TestSuite) {
-    			addFilteredTestSuite((TestSuite)test);
-    			return;
-    		} else if (test instanceof TestCase) {
-    			addFilteredTestCase((TestCase)test);
-    			return;
-    		}
-    	}
-    	// default processing: no filter or unknown test type
-    	super.addTest(test);
-    }
-
-    private void addFilteredTestSuite(TestSuite testSuite) {
-		for(Enumeration allTests = testSuite.tests(); allTests.hasMoreElements(); ) {
-			Object subTest = allTests.nextElement();
-			
-			if (subTest instanceof TestSuite) {
-				addFilteredTestSuite((TestSuite)subTest);
-				continue;
-			}
-
-			if (!(subTest instanceof TestCase))
-				continue;
-
-			if (filterTestClassName != null) {
-				Class testClass = subTest.getClass();
-				String subTestQualName = testClass.getName(); // qualified class name
-				if (subTestQualName == null)
-					subTestQualName = "";
-				int index = subTestQualName.lastIndexOf('.');
-				String subTestName = ""; // short class name
-				if ((index != -1) && ((index +1) < subTestQualName.length()))
-					subTestName = subTestQualName.substring(index+1);
-				if (!subTestName.matches(filterTestClassName) && !subTestQualName.matches(filterTestClassName))
-					continue;
-			}
-			addFilteredTestCase((TestCase)subTest);
-		}
-    }
-
-    private void addFilteredTestCase(TestCase testCase) {
-   		if (filterTestName == null) {
-   			super.addTest(testCase);
-   			return;
-   		}
-		String testCaseName = testCase.getName();
-   		if (testCaseName == null)
-   			return;
-   		if (testCaseName.matches(filterTestName))
-   			super.addTest(testCase);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java
deleted file mode 100644
index 83d48bf..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/GenerateIdentifiersTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import org.eclipse.ui.activities.IActivityManager;
-
-/**
- * @since 3.1
- *
- */
-public class GenerateIdentifiersTest extends BasicPerformanceTest {
-
-    private int count;
-
-    public GenerateIdentifiersTest(int numberOfIdentifiers) {
-        super("Generate " + numberOfIdentifiers + " identifiers");
-        this.count = numberOfIdentifiers;
-    }
-    
-    protected void runTest() throws Throwable {       
-        final IActivityManager activityManager = fWorkbench.getActivitySupport().getActivityManager();
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                // construct the Identifiers to test
-                final String [] ids = new String[count];
-                for (int i = 0; i < ids.length; i++) {
-                    long timestamp = System.currentTimeMillis();
-                    ids[i] = "org.eclipse.jdt.ui/" + i + timestamp;
-                }
-                
-                startMeasuring();
-                for(int i = 0; i < ids.length; i++) {
-                    activityManager.getIdentifier(ids[i]);
-                }                
-                stopMeasuring();
-            } 
-        });
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTest.java
deleted file mode 100644
index e90f752..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTest.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import org.eclipse.jface.tests.performance.JFacePerformanceSuite;
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
-import org.eclipse.jface.viewers.IColorDecorator;
-import org.eclipse.jface.viewers.IDecorationContext;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * Test scrolling performance with various label styles
- * @since 3.5
- */
-public class LabelProviderTest extends BasicPerformanceTest {
-
-	private class CountryEntry {
-		private String name;
-		private String cupYear;
-		private String baseName;
-		
-		// Those are an OS resources and should not be freed
-		private Image image; 
-		private Color bkColor;
-		private Color fgColor;
-
-		public CountryEntry(Display display, int i) {
-			name = "\u00D6sterreich";
-			cupYear = "Austria";
-			baseName = Integer.toString(i + 100);
-			
-			switch (i % 3) { 
-				case 0:	
-					image = display.getSystemImage(SWT.ICON_WARNING);
-					bkColor = display.getSystemColor(SWT.COLOR_BLUE);
-					fgColor = display.getSystemColor(SWT.COLOR_RED);
-					break;
-				case 1:	
-					image = display.getSystemImage(SWT.ICON_ERROR);
-					bkColor = display.getSystemColor(SWT.COLOR_GREEN);
-					fgColor = display.getSystemColor(SWT.COLOR_BLUE);
-					break;
-				case 2:	
-					image = display.getSystemImage(SWT.ICON_QUESTION);
-					bkColor = display.getSystemColor(SWT.COLOR_RED);
-					fgColor = display.getSystemColor(SWT.COLOR_GREEN);
-					break;
-			}
-		}
-
-		public Image getImage() {
-			return image;
-		}
-		
-		public Color getBackgroundColor() {
-			return bkColor;
-		}
-		
-		public Color getForegroundColor() {
-			return fgColor;
-		}
-		
-		public String toString() {
-			return name + " " + cupYear + " " + baseName;
-		}
-	}
-	
-	private class TestCellLabelProvider extends CellLabelProvider implements IStyledLabelProvider, IFontProvider {
-
-		private boolean useColor;
-
-		public TestCellLabelProvider(boolean useColor) {
-			this.useColor = useColor;
-		}
-
-		public void update(ViewerCell cell) {
-			// NOTE: this method is not called in the current performance 
-			// test so its contents has no effect on the performance results.
-			Object element = cell.getElement();
-			if (!(element instanceof CountryEntry))
-					return;
-			cell.setText(element.toString());
-			cell.setImage(getImage(element));
-			if (useColor) {
-				cell.setForeground(((CountryEntry)element).getForegroundColor());
-				cell.setBackground(((CountryEntry)element).getBackgroundColor());
-			}
-		}
-
-		public Image getImage(Object element) {
-			if (element instanceof CountryEntry)
-				return ((CountryEntry)element).getImage();
-			return null;
-		}
-
-		public StyledString getStyledText(Object element) {
-			return new StyledString(element.toString(), useColor ? StyledString.COUNTER_STYLER : null);
-		}
-
-		public Font getFont(Object element) {
-			return null;
-		}
-	}
-
-	private static final int ITEM_COUNT = 2000;
-	private static final int ITERATIONS = 5;
-	private static final int MIN_ITERATIONS = 5;
-
-	private CountryEntry[] entries;
-	private Shell fShell;
-	private StructuredViewer fViewer;
-	
-	private boolean styled;
-	private boolean colors;
-
-	/**
-	 * @param styled <code>true</code to use DecoratingStyledCellLabelProvider
-	 * @param colors Run test with color on or off
-	 */
-	public LabelProviderTest(String testName, boolean styled, boolean colors) {
-		super(testName);
-		this.styled = styled;
-		this.colors = colors;
-	}
-	
-    protected void runTest() throws Throwable {
-		if (styled)
-			fViewer.setLabelProvider(getDecoratingStyledCellLabelProvider(colors));
-		else
-			fViewer.setLabelProvider(getDecoratingLabelProvider(colors));
-
-		final Tree tree = ((TreeViewer) fViewer).getTree();
-		fShell.setFocus();
-
-		exercise(new TestRunnable() {
-			public void run() {
-				startMeasuring();
-				for (int i = 0; i < ITEM_COUNT / 5; i++) {
-					tree.setTopItem(tree.getItem(i * 5));
-					processEvents();
-				}
-				stopMeasuring();
-			}
-		}, MIN_ITERATIONS, ITERATIONS, JFacePerformanceSuite.MAX_TIME);
-
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	protected StructuredViewer createViewer(Shell parent) {
-		TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION);
-
-		viewer.setContentProvider(new ITreeContentProvider() {
-
-			public Object[] getChildren(Object parentElement) {
-				return entries;
-			}
-
-			public Object getParent(Object element) {
-				return null;
-			}
-
-			public boolean hasChildren(Object element) {
-				return false;
-			}
-
-			public Object[] getElements(Object inputElement) {
-				return entries;
-			}
-
-			public void dispose() {
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-		});
-		
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-		viewer.getControl().setLayoutData(data);
-		viewer.setSelection(new StructuredSelection(entries[1]));
-		return viewer;
-	}
-	
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		
-		Display display = Display.getCurrent();
-		if (display == null)
-			display = new Display();
-
-		entries = new CountryEntry[ITEM_COUNT];
-		for (int i = 0; i < entries.length; i++) {
-			entries[i] = new CountryEntry(display, i);
-		}
-		
-		fShell = new Shell(display);
-		fShell.setSize(500, 500);
-		fShell.setLayout(new FillLayout());
-		fViewer = createViewer(fShell);
-		fViewer.setUseHashlookup(true);
-		fViewer.setInput(this);
-		fShell.open();
-	}
-
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		if (fShell != null) {
-			fShell.close();
-			fShell = null;
-		}
-	}
-
-	private DecoratingStyledCellLabelProvider getDecoratingStyledCellLabelProvider(boolean useColor) {
-		// create our own context to avoid using default context
-		IDecorationContext context = new IDecorationContext() {
-				public String[] getProperties() {
-					return null;
-				}
-				public Object getProperty(String property) {
-					return null;
-				}
-			};
-		return new DecoratingStyledCellLabelProvider(
-				new TestCellLabelProvider(useColor), useColor ? getDecorator() : null, context);
-	}
-
-	private ILabelDecorator getDecorator() {
-		return new TestLabelDecorator();
-	}
-
-	private class TestLabelDecorator implements ILabelDecorator, IColorDecorator {
-
-		public Image decorateImage(Image image, Object element) {
-			return image;
-		}
-
-		public String decorateText(String text, Object element) {
-			return text;
-		}
-
-		public void addListener(ILabelProviderListener listener) {
-		}
-
-		public void dispose() {
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-		}
-
-		public Color decorateBackground(Object element) {
-			if (element instanceof CountryEntry)
-				return ((CountryEntry)element).getBackgroundColor();
-			return null;
-		}
-
-		public Color decorateForeground(Object element) {
-			if (element instanceof CountryEntry)
-				return ((CountryEntry)element).getForegroundColor();
-			return null;
-		}
-	}
-
-	DecoratingLabelProvider getDecoratingLabelProvider(boolean useColor) {
-		return new DecoratingLabelProvider(new ILabelProvider() {
-
-			public Image getImage(Object element) {
-				if (element instanceof CountryEntry)
-					return ((CountryEntry)element).getImage();
-				return null;
-			}
-
-			public String getText(Object element) {
-				return element.toString();
-			}
-
-			public void addListener(ILabelProviderListener listener) {
-			}
-
-			public void dispose() {
-			}
-
-			public boolean isLabelProperty(Object element, String property) {
-				return false;
-			}
-
-			public void removeListener(ILabelProviderListener listener) {
-			}
-		}, useColor ? getDecorator() : null);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTestSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTestSuite.java
deleted file mode 100644
index 77983ee..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/LabelProviderTestSuite.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.5
- */
-public class LabelProviderTestSuite extends TestSuite {
-
-    public static Test suite() {
-        return new LabelProviderTestSuite();
-    }
-
-    public LabelProviderTestSuite() {        
-        addTest(new LabelProviderTest("DecoratingStyledCellLabelProvider with Colors", true, true));
-        addTest(new LabelProviderTest("DecoratingStyledCellLabelProvider", true, false));
-        addTest(new LabelProviderTest("DecoratingLabelProvider with Colors", false, true));
-        addTest(new LabelProviderTest("DecoratingLabelProvider", false, false));
-    }
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionClasses.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionClasses.java
deleted file mode 100644
index f303543..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionClasses.java
+++ /dev/null
@@ -1,164 +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.ui.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.*;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.ui.IContributorResourceAdapter;
-import org.eclipse.ui.ide.IContributorResourceAdapter2;
-
-public class ObjectContributionClasses implements IAdapterFactory {
-	
-	public static final String PROJECT_NAME = "testContributorResourceAdapter";
-	
-	public static interface ICommon {
-	}
-	
-	public static class Common implements ICommon {		
-	}
-	
-	public static interface IA {
-	}
-	
-	public static class A implements IA {	
-	}
-	
-	public static class A1 extends A {
-	}
-	
-	public static class A11 extends A1 {
-	}
-	
-	public static interface IB {
-	}
-	
-	public static class B implements IB {
-	}
-	
-	public static class B2 implements IB {
-	}
-	
-	public static class D extends Common implements IA {
-	}
-	
-	public static class C implements ICommon {
-	}
-	
-	public static class CResource implements IAdaptable {
-		public Object getAdapter(Class adapter) {
-			if(adapter == IContributorResourceAdapter.class) {
-				return new ResourceAdapter();
-			}			
-			return null;
-		}		
-	}
-	
-	public static class CFile implements IAdaptable {
-		public Object getAdapter(Class adapter) {
-			if(adapter == IContributorResourceAdapter.class) {
-				return new ResourceAdapter();
-			}			
-			return null;
-		}		
-	}
-	
-	// Returns a contribution adapter that doesn't handle ResourceMappings
-	public static class CResourceOnly implements IAdaptable {
-		public Object getAdapter(Class adapter) {
-			if(adapter == IContributorResourceAdapter.class) {
-				return new ResourceOnlyAdapter();
-			}			
-			return null;
-		}		
-	}
-    
-    public interface IModelElement {
-    }
-	
-    public static class ModelElement extends PlatformObject implements IModelElement {
-    }
-    
-	// Default contributor adapter
-	
-	public static class ResourceAdapter implements IContributorResourceAdapter2 {
-		public IResource getAdaptedResource(IAdaptable adaptable) {
-			if(adaptable instanceof CResource) {
-				return ResourcesPlugin.getWorkspace().getRoot();
-			}
-			if(adaptable instanceof CFile) {
-				return ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME).getFile("dummy");
-			}
-			return null;
-		}
-        public ResourceMapping getAdaptedResourceMapping(IAdaptable adaptable) {
-            return (ResourceMapping)getAdaptedResource(adaptable).getAdapter(ResourceMapping.class);
-        }	
-	}
-	
-	// Contributor adapter that doesn't handle resource mappings
-	
-	public static class ResourceOnlyAdapter implements IContributorResourceAdapter {
-		public IResource getAdaptedResource(IAdaptable adaptable) {
-			if(adaptable instanceof CResourceOnly) {
-				return ResourcesPlugin.getWorkspace().getRoot();
-			}
-			return null;
-		}
-	}
-	
-	// Adapter methods
-	
-	public Object getAdapter(final Object adaptableObject, Class adapterType) {
-		if(adapterType == IContributorResourceAdapter.class) {
-			return new ResourceAdapter();
-		}
-		if(adaptableObject instanceof IA && adapterType == IA.class) {
-			return new A();
-		}
-		if(adapterType == IResource.class) {
-			return ResourcesPlugin.getWorkspace().getRoot();
-		}
-		if(adapterType == ICommon.class) {
-			return new Common();
-		}
-        if(adapterType == ResourceMapping.class) {
-            return new ResourceMapping() {    
-                public ResourceTraversal[] getTraversals(ResourceMappingContext context, IProgressMonitor monitor) {
-                    return new ResourceTraversal[] {
-                            new ResourceTraversal(new IResource[] {ResourcesPlugin.getWorkspace().getRoot()}, IResource.DEPTH_INFINITE, IResource.NONE)
-                    };
-                }
-                public IProject[] getProjects() {
-                    return ResourcesPlugin.getWorkspace().getRoot().getProjects();
-                }
-                public Object getModelObject() {
-                    return adaptableObject;
-                }
-				public String getModelProviderId() {
-					return ModelProvider.RESOURCE_MODEL_PROVIDER_ID;
-				}
-            };
-        }
-        
-		return null;
-	}
-
-	public Class[] getAdapterList() {
-		return new Class[] { ICommon.class, IResource.class, IFile.class, IContributorResourceAdapter.class, ResourceMapping.class};
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionTest.java
deleted file mode 100644
index acf173f..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionTest.java
+++ /dev/null
@@ -1,444 +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.tests.performance;
-
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.SubContributionItem;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.PluginActionContributionItem;
-import org.eclipse.ui.internal.PopupMenuExtender;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.performance.ObjectContributionClasses.ICommon;
-/**
- * Tests that object contributions are enabled and shown correctly in pop-up
- * menus depending on the state of the workbench. This test relies on the
- * <code>plugin.xml</code> file containing certain values. Please see the
- * appropriate section in that file for more information about the initial
- * set-up.
- * 
- * @since 3.0
- */
-public final class ObjectContributionTest extends UITestCase {
-
-    /**
-     * Constructs a new instance of <code>ObjectContributionTest</code> with
-     * the name of the test.
-     * 
-     * @param name
-     *            The name of the test; may be <code>null</code>.
-     */
-    public ObjectContributionTest(final String name) {
-        super(name);
-    }
-
-    /**
-     * Tests whether the content-type object contribution works. This is testing
-     * a use care familiar to Ant UI. The content-type scans an XML file to see
-     * if its root element is <code>&lt;project&gt;</code>.
-     * 
-     * @throws CoreException
-     *             If a problem occurs when creating the project or file, or if
-     *             the project can't be opened.
-     */
-    public final void testObjectStateContentType() throws CoreException {
-        // Create an XML file with <project> as its root element.
-        final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        final IProject testProject = workspace.getRoot().getProject(
-                "ObjectContributionTestProject");
-        testProject.create(null);
-        testProject.open(null);
-        final IFile xmlFile = testProject.getFile("ObjectContributionTest.xml");
-        final String contents = "<testObjectStateContentTypeElement></testObjectStateContentTypeElement>";
-        final ByteArrayInputStream inputStream = new ByteArrayInputStream(
-                contents.getBytes());
-        xmlFile.create(inputStream, true, null);
-        final ISelection selection = new StructuredSelection(xmlFile);
-        assertPopupMenus("1", new String[] {"org.eclipse.ui.tests.testObjectStateContentType"}, selection, null, true);
-    }
-    
-    /**
-     * This tests backwards compatibility support for adaptable IResource objectContributions. This
-     * allows IResource adaptable contributions without an adapter factory and using
-     * the IContributorResourceAdapter factory. In addition, test the ResourceMapping adaptations.
-     * 
-     * @since 3.1
-     */
-    public final void testContributorResourceAdapter() throws CoreException {
-    	
-    	final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        final IProject testProject = workspace.getRoot().getProject(ObjectContributionClasses.PROJECT_NAME);
-        if(! testProject.exists()) {
-        	testProject.create(null);
-        }
-        if(! testProject.isOpen()) {
-        	testProject.open(null);
-        }
-    	
-    	assertPopupMenus("1",
-    			new String[] {"IResource.1"}, 
-    			new StructuredSelection(new Object[] {new ObjectContributionClasses.CResource()}),
-				IResource.class,
-				true
-			);
-    	assertPopupMenus("2",
-    			new String[] {"IProject.1"}, 
-    			new StructuredSelection(new Object[] {new ObjectContributionClasses.CFile()}),
-				null,
-				false
-			);
-    	assertPopupMenus("3", 
-    			new String[] {"IFile.1"}, 
-    			new StructuredSelection(new Object[] {new ObjectContributionClasses.CFile()}),
-				IFile.class,
-				true
-			);
-    	assertPopupMenus("4", 
-    			new String[] {"IResource.1"}, 
-    			new StructuredSelection(new Object[] {new ObjectContributionClasses.CFile(), new ObjectContributionClasses.CResource()}),
-				IResource.class,
-				true
-			);
-    	assertPopupMenus("5", 
-    			new String[] {"IFile.1", "IProject.1"}, 
-    			new StructuredSelection(new Object[] {new ObjectContributionClasses.CFile(), new ObjectContributionClasses.CResource()}),
-				IResource.class,
-				false
-			);
-        assertPopupMenus("6", 
-                new String[] {"ResourceMapping.1"}, 
-                new StructuredSelection(new Object[] {new ObjectContributionClasses.CFile(), new ObjectContributionClasses.CResource()}),
-                ResourceMapping.class,
-                true
-            );
-        assertPopupMenus("7", 
-                new String[] {"ResourceMapping.1", "IResource.1"}, 
-                new StructuredSelection(new Object[] {new ObjectContributionClasses.ModelElement()}),
-                ResourceMapping.class,
-                true
-            );
-        // Ensure that the case where an object uses a contribution adapter that doesn't handle mappings
-        // will still show the menus for resource mappings
-        assertPopupMenus("8", 
-                new String[] {"ResourceMapping.1", "IResource.1"}, 
-                new StructuredSelection(new Object[] {new ObjectContributionClasses.CResourceOnly()}),
-                ResourceMapping.class,
-                true
-            );
-    }
-    
-    /**
-     * This tests adaptable contributions that are not IResource.
-     * 
-     * @since 3.1
-     */
-    public final void testAdaptables()  {
-    	assertPopupMenus("1", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.A()}),
-				ICommon.class,
-				true
-			);  
-    	assertPopupMenus("2", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.A(), 
-						new ObjectContributionClasses.B()}),
-				ICommon.class,
-				true
-			);      	
-    	assertPopupMenus("3", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.A(), 
-						new ObjectContributionClasses.B(), 
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.Common()
-				}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("4", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.Common(), 
-						new ObjectContributionClasses.C(), 
-						new ObjectContributionClasses.B(),
-						new ObjectContributionClasses.A()
-				}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("5", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.Common(), 
-						new ObjectContributionClasses.C(), 
-						new ObjectContributionClasses.B(),
-						new ObjectContributionClasses.C(), 
-						new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.Common() 
-				}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("6", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] { 
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.Common()
-				}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("7", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] { 
-						new Object()				
-				}),
-				ICommon.class,
-				false
-			);
-    	assertPopupMenus("8", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] { 
-    					new ObjectContributionClasses.C(),
-						new Object()				
-				}),
-				ICommon.class,
-				false
-			);
-    	assertPopupMenus("9", 
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] { 
-    					new ObjectContributionClasses.C(),
-    					new ObjectContributionClasses.A(),
-						new Object()				
-				}),
-				ICommon.class,
-				false
-			);
-    }
-    
-    /**
-     * Ensure that there are no duplicate contributions.
-     * 
-     * @since 3.1
-     */
-    public final void testDuplicateAdaptables() {
-    	assertPopupMenus("1",
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.D()}),
-				ICommon.class,
-				true
-			);
-    	// repeat test on purpose to ensure no double call duplicates.    	
-    	assertPopupMenus("1",
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.D()}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("2",
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.A()
-						}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("3",
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.D()
-						}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("4",
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.Common(),
-						new ObjectContributionClasses.D()
-						}),
-				ICommon.class,
-				true
-			);
-    	assertPopupMenus("5",
-    			new String[] {"ICommon.1"}, 
-    			new StructuredSelection(new Object[] {    					
-						new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.Common()
-						}),
-				ICommon.class,
-				true
-			);
-    }
-    
-    /**
-     * Test non-adaptable contributions
-     * 
-     * @since 3.1
-     */
-    public final void testNonAdaptableContributions()  {
-    	assertPopupMenus("1",
-    			new String[] {"ICommon.2"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.B()}),
-				ICommon.class,
-				false
-			);
-    	assertPopupMenus("2",
-    			new String[] {"ICommon.2"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.Common()}),
-				ICommon.class,
-				true
-			); 
-    	assertPopupMenus("3",
-    			new String[] {"Common.2"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.A()}),
-				ICommon.class,
-				false
-			); 
-    	assertPopupMenus("4",
-    			new String[] {"Common.2"}, 
-    			new StructuredSelection(new Object[] {
-    					new ObjectContributionClasses.B(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.A()}),
-				ICommon.class,
-				false
-			); 
-    }
-    
-    /**
-     * Helper class that will create a popup menu based on the given selection and
-     * then ensure that the provided commandIds are added to the menu.
-     * 
-     * @param commandIds the command ids that should appear in the menu
-     * @param selection the selection on which to contribute object contributions
-     */
-    public void assertPopupMenus(String name, String[] commandIds, final ISelection selection, Class selectionType, boolean existance) {
-    	ISelectionProvider selectionProvider = new ISelectionProvider() {
-			public void addSelectionChangedListener(ISelectionChangedListener listener) {
-			}
-			public ISelection getSelection() {
-				return selection;
-			}
-			public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-			}
-			public void setSelection(ISelection selection) {
-			}
-		};
-		
-		// The popup extender needs a part to notify actions of the active part
-        final WorkbenchWindow window = (WorkbenchWindow) PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        final IWorkbenchPage page = window.getActivePage();
-        IWorkbenchPart part = page.getActivePartReference().getPart(true);
-    	
-    	 // Create a fake PopupMenuExtender so we can get some data back.
-        final MenuManager fakeMenuManager = new MenuManager();
-        fakeMenuManager.add(new GroupMarker(
-                org.eclipse.ui.IWorkbenchActionConstants.MB_ADDITIONS));
-        final PopupMenuExtender extender = new PopupMenuExtender(null,
-                fakeMenuManager, selectionProvider, part);
-        
-        
-
-        /*
-         * Pretend to show the pop-up menu -- looking to motivate the extender
-         * to fill the menu based on the selection provider.
-         * 
-         * TODO This causes a big delay (in the order of a minute or more) while
-         * trying to fill this menu. It seems to be loading a bunch of plug-ins,
-         * and doing class loading.
-         */
-        extender.menuAboutToShow(fakeMenuManager);
-
-        extender.dispose();
-        
-        // Check to see if the appropriate object contributions are present.
-        final IContributionItem[] items = fakeMenuManager.getItems();
-        Set seenCommands = new HashSet(Arrays.asList(commandIds));
-        List commands = new ArrayList(Arrays.asList(commandIds));
-        for (int i = 0; i < items.length; i++) {
-           IContributionItem contributionItem = items[i];
-           // Step 1: test the selection
-           if (selectionType != null) {
-				IContributionItem item = contributionItem;
-				if (item instanceof SubContributionItem) {
-					item = ((SubContributionItem) contributionItem).getInnerItem();
-				}
-				if (item instanceof PluginActionContributionItem) {
-					// Verify that the selection passed to the action has been
-					// converted
-					ISelection s = null;
-					if (s instanceof IStructuredSelection) {
-						for (Iterator it = ((IStructuredSelection) s).iterator(); it.hasNext();) {
-							Object element = it.next();
-							assertTrue(name + " selection not converted", selectionType.isInstance(element));
-						}
-					}
-				}
-			}
-           // Step 2: remember that we saw this element
-           String id = contributionItem.getId();
-           if(existance) {    		
-           		boolean removed = commands.remove(id);	
-           		if(seenCommands.contains(id) && ! removed) {
-           			fail(name + " item duplicated in the context menu: " + id);
-           		}           		
-           } else {
-           		assertTrue(name + " item should not be in the context menu", ! commands.contains(id));
-           }
-        }
-        
-        if(existance && ! commands.isEmpty()) {
-        	fail(name + " Missing " + commands.toString() + " from context menu.");
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionsPerformance.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionsPerformance.java
deleted file mode 100644
index 25fef09..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ObjectContributionsPerformance.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.test.performance.Dimension;
-
-public class ObjectContributionsPerformance extends BasicPerformanceTest {
-
-	public  static final int SEED = 1001001;
-	private IStructuredSelection selection;
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite("Object contribution performance");
-        suite.addTest(new ObjectContributionsPerformance(
-                "large selection, limited contributors",
-                generateAdaptableSelection(SEED, 5000),
-                BasicPerformanceTest.NONE));
-        suite
-                .addTest(new ObjectContributionsPerformance(
-                        "limited selection, limited contributors",
-                        generateAdaptableSelection(SEED, 50),
-                        BasicPerformanceTest.NONE));
-        return suite;
-	}
-	
-	public ObjectContributionsPerformance(String label, IStructuredSelection selection, int tagging) {
-		super("testObjectContributions:" + label, tagging);
-		this.selection = selection;
-	}
-
-	protected void runTest() {
-		ObjectContributionTest tests = new ObjectContributionTest(
-                "testObjectContributions");
-        tagIfNecessary("UI - " + selection.size() + " contribution(s)",
-                Dimension.ELAPSED_PROCESS);
-        setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=270795>See Bug 270795</a> ");
-        startMeasuring();
-        for (int i = 0; i < 5000; i++) {
-            tests.assertPopupMenus("1", new String[] { "bogus" }, selection,
-                    null, false);
-        }
-        stopMeasuring();
-        commitMeasurements();
-        assertPerformance();
-	}
-	
-	protected static IStructuredSelection generateAdaptableSelection(int seed, int size) {
-		Random rand = new Random(seed);
-		List selection = new ArrayList();
-		for (int i = 0; i < size; i++) {
-			switch ((int) Math.round(rand.nextDouble() * 5)) {
-				case 0 :
-					selection.add(new ObjectContributionClasses.A());
-					break;
-				case 1 :
-					selection.add(new ObjectContributionClasses.B());
-					break;
-				case 2 :
-					selection.add(new ObjectContributionClasses.C());
-					break;
-				case 3 :
-					selection.add(new ObjectContributionClasses.Common());
-					break;
-				case 4 :
-					selection.add(new ObjectContributionClasses.D());
-					break;
-				case 5 :
-					selection.add(new ObjectContributionClasses.A1());
-					break;
-				default :
-					selection.add(new Object());
-			}
-		}
-		return new StructuredSelection(selection);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseEditorTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseEditorTest.java
deleted file mode 100644
index 9b95cef..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseEditorTest.java
+++ /dev/null
@@ -1,58 +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.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * @since 3.1
- */
-public class OpenCloseEditorTest extends BasicPerformanceTest {
-
-	private String extension;
-
-	public OpenCloseEditorTest(String extension, int tagging) {
-		super("testOpenAndCloseEditors:" + extension, tagging);
-		this.extension = extension;
-	}
-
-	protected void runTest() throws Throwable {
-		final IFile file = getProject().getFile("1." + extension);
-		assertTrue(file.exists());
-		
-		IWorkbenchWindow window = openTestWindow(UIPerformanceTestSetup.PERSPECTIVE1);
-		final IWorkbenchPage activePage = window.getActivePage();
-
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                startMeasuring();
-                for (int j = 0; j < 10; j++) {
-                    IEditorPart part = IDE.openEditor(activePage, file, true);
-                    processEvents();
-                    activePage.closeEditor(part, false);
-                    processEvents();
-                    
-                }
-                stopMeasuring();
-            } 
-        });
-        
-		tagIfNecessary("UI - Open/Close Editor", Dimension.ELAPSED_PROCESS);
-		commitMeasurements();
-		assertPerformance();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenClosePerspectiveTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenClosePerspectiveTest.java
deleted file mode 100644
index db914b0..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenClosePerspectiveTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.util.HashMap;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-
-/**
- * @since 3.1
- */
-public class OpenClosePerspectiveTest extends BasicPerformanceTest {
-
-    private String id;
-
-    /**
-     * @param tagging
-     * @param testName
-     */
-    public OpenClosePerspectiveTest(String id, int tagging) {
-        super("testOpenClosePerspectives:" + id, tagging);
-        this.id = id;
-    }
-    
-    protected void runTest() throws Throwable {
-        // Get the two perspectives to switch between.
-        final IPerspectiveRegistry registry = WorkbenchPlugin.getDefault()
-                .getPerspectiveRegistry();
-        final IPerspectiveDescriptor perspective1 = registry
-                .findPerspectiveWithId(id);
-
-        // Don't fail if we reference an unknown perspective ID. This can be
-        // a normal occurrance since the test suites reference JDT perspectives, which
-        // might not exist.
-        if (perspective1 == null) {
-            System.out.println("Unknown perspective id: " + id);
-            return;
-        }
-        
-        // create a nice clean window.
-        IWorkbenchWindow window = openTestWindow();          
-        final IWorkbenchPage activePage = window.getActivePage();
-        
-        //causes creation of all views 
-        activePage.setPerspective(perspective1);
-        IViewReference [] refs = activePage.getViewReferences();
-        //get the IDs now - after we close hte perspective the view refs will be partiall disposed and their IDs will be null
-        String [] ids = new String[refs.length];
-        for (int i = 0; i < refs.length; i++) {
-            ids[i] = refs[i].getId();
-        }
-        closePerspective(activePage);
-        //populate the empty perspective with all view that will be shown in the test view
-        for (int i = 0; i < ids.length; i++) {
-            activePage.showView(ids[i]);
-        }      
-
-        tagIfNecessary("UI - Open/Close " + perspective1.getLabel() + " Perspective", Dimension.ELAPSED_PROCESS);
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                EditorTestHelper.calmDown(500, 30000, 500);
-                
-                startMeasuring();
-                activePage.setPerspective(perspective1);
-                processEvents();      
-                closePerspective(activePage);
-                processEvents(); 
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance();
-    }
-
-    /**
-     * @param activePage
-     */
-    private void closePerspective(IWorkbenchPage activePage) {
-		IPerspectiveDescriptor persp = activePage.getPerspective();
-
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		Command command = commandService
-				.getCommand("org.eclipse.ui.window.closePerspective");
-
-		HashMap parameters = new HashMap();
-		parameters.put("org.eclipse.ui.window.closePerspective.perspectiveId",
-				persp.getId());
-
-		ParameterizedCommand pCommand = ParameterizedCommand.generateCommand(
-				command, parameters);
-
-		IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		try {
-			handlerService.executeCommand(pCommand, null);
-		} catch (ExecutionException e1) {
-		} catch (NotDefinedException e1) {
-		} catch (NotEnabledException e1) {
-		} catch (NotHandledException e1) {
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
deleted file mode 100644
index 7472211..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseViewTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * Performance tests for showing views.
- * There are separate tests for showing a simple view (MockViewPart)
- * and a more complex view (Resource Navigator).
- * The views are shown in an empty perspective.
- */
-public class OpenCloseViewTest extends BasicPerformanceTest {
-
-    private String viewId;
-
-    public OpenCloseViewTest(String viewId, int tagging) {
-        super("showView:" + viewId, tagging);
-        this.viewId = viewId;
-    }
-
-    protected void runTest() throws Throwable {
-        IWorkbenchWindow window = openTestWindow();
-        final IWorkbenchPage page = window.getActivePage();
-        
-        // prime it
-        IViewPart view1 = page.showView(viewId);
-        page.hideView(view1);
-        waitForBackgroundJobs();
-        processEvents();
-        
-       	tagIfNecessary("UI - Open/Close " + view1.getTitle(), Dimension.ELAPSED_PROCESS);
-        	
-		for (int j = 0; j < 100; j++) {
-
-			startMeasuring();
-			for (int i = 0; i < 5; i++) {
-				IViewPart view = page.showView(viewId);
-				processEvents();
-
-				page.hideView(view);
-				processEvents();
-			}
-			stopMeasuring();
-		}
-
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseWindowTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseWindowTest.java
deleted file mode 100644
index dd0e251..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenCloseWindowTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IWorkbenchWindow;
-
-/**
- * @since 3.1
- */
-public class OpenCloseWindowTest extends BasicPerformanceTest {
-
-    private String id;
-
-    /**
-     * @param tagging
-     * @param testName
-     */
-    public OpenCloseWindowTest(String id, int tagging) {
-        super("testOpenCloseWindows:" + id, tagging);
-        this.id = id;
-    }
-    
-    protected void runTest() throws Throwable {
-    	
-    	tagIfNecessary("UI - Open/Close Window", Dimension.ELAPSED_PROCESS);
-        
-    	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=179725>See Bug 179725</a> ");
-
-    	exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                EditorTestHelper.calmDown(500, 30000, 500);
-                
-                startMeasuring();
-                IWorkbenchWindow window = openTestWindow(id);
-                processEvents();   
-                window.close();
-                processEvents(); 
-                stopMeasuring();
-            } 
-        });
-                
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java
deleted file mode 100644
index 8ab66b7..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenMultipleEditorTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * @since 3.1
- */
-public class OpenMultipleEditorTest extends BasicPerformanceTest {
-
-    private String extension;
-    private boolean closeAll;
-
-    /**
-     * @param testName
-     */
-    public OpenMultipleEditorTest(String extension, boolean closeAll, int tagging) {
-        super ("testOpenMultipleEditors:" + extension + (closeAll ? "[closeAll]" : "[closeEach]"), tagging);
-        this.extension = extension;        
-        this.closeAll = closeAll;
-    }
-    
-    protected void runTest() throws Throwable {
-    	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=270797>See Bug 270797</a>");
-		IWorkbenchWindow window = openTestWindow(UIPerformanceTestSetup.PERSPECTIVE1);
-		IWorkbenchPage activePage = window.getActivePage();
-        
-        tagIfNecessary("UI - Open Multiple Editors",Dimension.ELAPSED_PROCESS);
-        
-        startMeasuring();      
-                
-        for (int i = 0; i < 100; i++) {
-            IFile file = getProject().getFile(i + "." + extension);
-            IDE.openEditor(activePage, file, true);
-            processEvents();
-        }
-        if (closeAll) {
-            activePage.closeAllEditors(false);
-        }
-        else {
-            IEditorPart [] parts = activePage.getEditors();
-            for (int i = 0; i < parts.length; i++) {
-                activePage.closeEditor(parts[i], false);
-            }
-        }
-        stopMeasuring();
-        commitMeasurements();
-        assertPerformance();        
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenNavigatorFolderTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenNavigatorFolderTest.java
deleted file mode 100644
index e371250..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/OpenNavigatorFolderTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
-import junit.framework.Assert;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.navigator.ResourceNavigator;
-import org.osgi.framework.Bundle;
-
-/**
- * This class/test was originally written for WTP bug 106158, and adapted to a
- * generic "platform" test case, since some of the problem was due to bug
- * 107121
- * 
- * Thanks for Jeffrey Liu (jeffliu@ca.ibm.com) who wrote the test for WTP.
- * 
- * And, thanks to Eric Glass <ericglass@maximus.com> for opening bug 106158
- * (100% CPU for over 3 minutes opening a directory in the Navigator view with
- * over 2000 HTML files) https://bugs.eclipse.org/bugs/show_bug.cgi?id=106158
- * and for providing 2500 "generic" HTML files for the original test case in
- * WTP.
- * 
- * modified by David Williams for platform level test that does not depend on
- * WTP or, for that matter, any meaningful content type. The content type
- * assumed there is designed simply to "take a while" to complete, if asked
- * for its properties.
- * 
- * Note, since this test companion "ContentDescriberForTestsOnly", simply uses
- * "sleep" to simulate computations, it only effects Elapsed Time (not CPU
- * Time).
- * 
- */
-public class OpenNavigatorFolderTest extends PerformanceTestCase {
-	/*
-	 * performance testcase for bug 106158
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=106158
-	 */
-	public void testOpenNavigatorFolder() {
-		IProject project = createProject("testViewAndContentTypeProject");
-		Bundle bundle = Platform.getBundle("org.eclipse.ui.tests.performance");
-		URL url = bundle.getEntry("data/testContentType.zip");
-		ZipInputStream zis = null;
-		try {
-			zis = new ZipInputStream(url.openStream());
-			ZipEntry entry = zis.getNextEntry();
-			while (entry != null) {
-				ByteArrayOutputStream baos = new ByteArrayOutputStream();
-				try {
-					byte[] b = new byte[2048];
-					int read = zis.read(b);
-					while (read != -1) {
-						baos.write(b, 0, read);
-						read = zis.read(b);
-					}
-				}
-				catch (IOException e) {
-					Assert.fail(e.getMessage());
-				}
-				finally {
-					try {
-						baos.close();
-					}
-					catch (IOException e) {
-						Assert.fail(e.getMessage());
-					}
-				}
-				IFile file = project.getFile(entry.getName());
-				ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-				try {
-					if (!file.exists())
-						file.create(bais, true, new NullProgressMonitor());
-					else
-						file.setContents(bais, true, false, new NullProgressMonitor());
-				}
-				catch (CoreException e) {
-					Assert.fail(e.getMessage());
-				}
-				finally {
-					try {
-						bais.close();
-					}
-					catch (IOException e) {
-						Assert.fail(e.getMessage());
-					}
-				}
-				entry = zis.getNextEntry();
-			}
-		}
-		catch (IOException e) {
-			Assert.fail(e.getMessage());
-		}
-		finally {
-			try {
-				if (zis != null) {
-					zis.close();
-				}
-			}
-			catch (IOException e) {
-				Assert.fail(e.getMessage());
-			}
-		}
-		startMeasuring();
-		IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-		IViewPart view = null;
-		try {
-			view = activePage.showView("org.eclipse.ui.views.ResourceNavigator");
-		}
-		catch (PartInitException e) {
-			Assert.fail(e.getMessage());
-		}
-		ResourceNavigator navigatorView = null;
-		try {
-			navigatorView = (ResourceNavigator) view;
-		}
-		catch (ClassCastException e) {
-			Assert.fail(e.getMessage());
-		}
-		navigatorView.getTreeViewer().expandAll();
-		stopMeasuring();
-		commitMeasurements();
-		assertPerformance();
-	}
-
-	private IProject createProject(String name) {
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
-		if (!project.exists()) {
-			try {
-				project.create(new NullProgressMonitor());
-				project.open(new NullProgressMonitor());
-			}
-			catch (CoreException e) {
-				Assert.fail(e.getMessage());
-			}
-		}
-		return project;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective1.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective1.java
deleted file mode 100644
index 686c165..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective1.java
+++ /dev/null
@@ -1,29 +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.tests.performance;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class PerformancePerspective1 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        layout.addView(IPageLayout.ID_OUTLINE, IPageLayout.RIGHT, .75f, IPageLayout.ID_EDITOR_AREA);
-        layout.addView(IPageLayout.ID_PROP_SHEET, IPageLayout.BOTTOM, .75f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective2.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective2.java
deleted file mode 100644
index c984367..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformancePerspective2.java
+++ /dev/null
@@ -1,30 +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.tests.performance;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class PerformancePerspective2 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-    	layout.setEditorAreaVisible(false);
-        layout.addView(IPageLayout.ID_TASK_LIST, IPageLayout.RIGHT, .75f, IPageLayout.ID_EDITOR_AREA);
-        layout.addView(IPageLayout.ID_OUTLINE, IPageLayout.BOTTOM, .75f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTestRunner.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTestRunner.java
deleted file mode 100644
index 64d9132..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTestRunner.java
+++ /dev/null
@@ -1,44 +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.tests.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Runs a test specified by the org.eclipse.ui.performance.test property.  
- * This test is prepped via the UIPerformanceTestSetup test setup.
- * 
- * @since 3.1
- */
-public class PerformanceTestRunner extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new UIPerformanceTestSetup(new PerformanceTestRunner());
-    }
-
-    public PerformanceTestRunner() {
-        String className = System.getProperty("org.eclipse.ui.performance.test");
-        try {
-            Class clazz = Class.forName(className);
-            if (TestSuite.class.isAssignableFrom(clazz))
-                addTest((Test) clazz.newInstance());
-            else
-                addTestSuite(clazz);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTester.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTester.java
deleted file mode 100644
index 14ea021..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerformanceTester.java
+++ /dev/null
@@ -1,153 +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.tests.performance;
-
-import junit.framework.TestCase;
-
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-
-/**
- * @since 3.1
- */
-final class PerformanceTester {
-
-	protected PerformanceMeter fPerformanceMeter;
-
-	/**
-	 * @param testCase
-	 */
-	public PerformanceTester(TestCase testCase) {
-		Performance performance= Performance.getDefault();
-		fPerformanceMeter= performance.createPerformanceMeter(performance.getDefaultScenarioId(testCase));
-	}
-
-	/**
-	 * Asserts default properties of the measurements captured for this test
-	 * case.
-	 * 
-	 * @throws RuntimeException if the properties do not hold
-	 */
-	public void assertPerformance() {
-		Performance.getDefault().assertPerformance(fPerformanceMeter);
-	}
-
-	/**
-	 * Asserts that the measurement specified by the given dimension is within a
-	 * certain range with respect to some reference value. If the specified
-	 * dimension isn't available, the call has no effect.
-	 * 
-	 * @param dim
-	 *            the Dimension to check
-	 * @param lowerPercentage
-	 *            a negative number indicating the percentage the measured value
-	 *            is allowed to be smaller than some reference value
-	 * @param upperPercentage
-	 *            a positive number indicating the percentage the measured value
-	 *            is allowed to be greater than some reference value
-	 * @throws RuntimeException
-	 *            if the properties do not hold
-	 */
-	public void assertPerformanceInRelativeBand(Dimension dim, int lowerPercentage, int upperPercentage) {
-		Performance.getDefault().assertPerformanceInRelativeBand(fPerformanceMeter, dim, lowerPercentage, upperPercentage);
-	}
-
-	public void commitMeasurements() {
-		fPerformanceMeter.commit();
-	}
-
-	public void dispose() {
-		fPerformanceMeter.dispose();
-	}
-
-	/**
-	 * Called from within a test case immediately before the code to measure is
-	 * run. It starts capturing of performance data. Must be followed by a call
-	 * to {@link PerformanceTestCase#stopMeasuring()}before subsequent calls to
-	 * this method or {@link PerformanceTestCase#commitMeasurements()}.
-	 */
-	public void startMeasuring() {
-		fPerformanceMeter.start();
-	}
-
-	public void stopMeasuring() {
-		fPerformanceMeter.stop();
-	}
-
-	/**
-	 * Mark the scenario of this test case to be included both into the global
-	 * and the local (component) performance summary. The summary shows the given dimension of the
-	 * scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descritive name of the scenario
-	 * @param dimension
-	 *            the dimension to show in the summary
-	 */
-	public void tagAsGlobalSummary(String shortName, Dimension dimension) {
-		Performance.getDefault().tagAsGlobalSummary(fPerformanceMeter, shortName, new Dimension[] { dimension });
-	}
-
-	/**
-	 * Mark the scenario represented by the given PerformanceMeter to be
-	 * included into the global and the local (component) performance summary. The summary shows the given
-	 * dimensions of the scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descritive name of the scenario
-	 * @param dimensions
-	 *            an array of dimensions to show in the summary
-	 */
-	public void tagAsGlobalSummary(String shortName, Dimension[] dimensions) {
-		Performance.getDefault().tagAsGlobalSummary(fPerformanceMeter, shortName, dimensions);
-	}
-
-	/**
-	 * Mark the scenario of this test case to be included into the local (component)
-	 * performance summary. The summary shows the given dimension of the
-	 * scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descriptive name of the scenario
-	 * @param dimension
-	 *            the dimension to show in the summary
-	 */
-	public void tagAsSummary(String shortName, Dimension dimension) {
-		Performance.getDefault().tagAsSummary(fPerformanceMeter, shortName, new Dimension[] { dimension });
-	}
-
-	/**
-	 * Mark the scenario represented by the given PerformanceMeter to be
-	 * included into the local (component) performance summary. The summary shows the given
-	 * dimensions of the scenario and labels the scenario with the short name.
-	 * 
-	 * @param shortName
-	 *            a short (shorter than 40 characters) descriptive name of the scenario
-	 * @param dimensions
-	 *            an array of dimensions to show in the summary
-	 */
-	public void tagAsSummary(String shortName, Dimension[] dimensions) {
-		Performance.getDefault().tagAsSummary(fPerformanceMeter, shortName, dimensions);
-	}
-
-	/**
-	 * Set a degradation comment for the current meter.
-	 * @param string
-	 */
-	public void setDegradationComment(String string) {
-		Performance.getDefault().setComment(
-				fPerformanceMeter, 
-				Performance.EXPLAINS_DEGRADATION_COMMENT, 
-				string);
-		
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.java
deleted file mode 100644
index 370779d..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/PerspectiveSwitchTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-
-/**
- * Test perspective switching.
- */
-public class PerspectiveSwitchTest extends BasicPerformanceTest {
-
-    private String id1;
-    private String id2;
-    private String activeEditor;
-
-    /**
-     * Constructor.
-     * 
-     * @param id
-     */
-    public PerspectiveSwitchTest(String [] ids, int tagging) {
-        super("testPerspectiveSwitch:" + ids[0] + "," + ids[1] + ",editor " + ids[2], tagging);
-        this.id1 = ids[0];
-        this.id2 = ids[1];
-        this.activeEditor = ids[2];
-    }
-	
-    /**
-     * Test perspective switching performance. 
-     */
-    protected void runTest() throws CoreException, WorkbenchException {
-    	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=179581>See Bug 179581</a>");
-        // Get the two perspectives to switch between.
-        final IPerspectiveRegistry registry = WorkbenchPlugin.getDefault()
-                .getPerspectiveRegistry();
-        final IPerspectiveDescriptor perspective1 = registry
-                .findPerspectiveWithId(id1);
-        final IPerspectiveDescriptor perspective2 = registry
-                .findPerspectiveWithId(id2);
-
-        // Don't fail if we reference an unknown perspective ID. This can be
-        // a normal occurrance since the test suites reference JDT perspectives, which
-        // might not exist. Just skip the test.
-        if (perspective1 == null) {
-            System.out.println("Unknown perspective ID: " + id1);
-            return;
-        }
-
-        if (perspective2 == null) {
-            System.out.println("Unknown perspective ID: " + id2);
-            return;
-        }
-        
-        // Open the two perspectives and the file, in a new window.
-        // Do this outside the loop so as not to include
-        // the initial time to open, just switching.        
-        IWorkbenchWindow window = openTestWindow(id1);
-        final IWorkbenchPage page = window.getActivePage();
-        assertNotNull(page);
-        page.setPerspective(perspective2);
-        
-        //IFile aFile = getProject().getFile("1." + EditorPerformanceSuite.EDITOR_FILE_EXTENSIONS[0]);
-        IFile aFile = getProject().getFile(activeEditor);
-        assertTrue(aFile.exists());
-
-        IDE.openEditor(page, aFile, true);
-
-       	tagIfNecessary("UI - Perspective Switch", Dimension.ELAPSED_PROCESS);
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                processEvents();
-                
-                startMeasuring();
-                page.setPerspective(perspective1);
-                processEvents();
-                page.setPerspective(perspective2);
-                processEvents();
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ProblemsViewPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ProblemsViewPerformanceTest.java
deleted file mode 100644
index af0f638..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ProblemsViewPerformanceTest.java
+++ /dev/null
@@ -1,130 +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.tests.performance;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.tests.performance.parts.PerformanceProblemsView;
-import org.eclipse.ui.texteditor.MarkerUtilities;
-
-/**
- * The ProblemsViewPerformanceTest is a test of population of the problems view.
- * 
- * @since 3.2
- * 
- */
-public class ProblemsViewPerformanceTest extends BasicPerformanceTest {
-
-	private String EMPTY_PERSPECTIVE_ID = "org.eclipse.ui.tests.harness.util.EmptyPerspective";
-
-	private String PROBLEMS_VIEW_ID = "org.eclipse.ui.tests.performance.problemsView";
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public ProblemsViewPerformanceTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test the population of the problems view.
-	 */
-	public void testPopulation() {
-		IWorkbenchWindow window = openTestWindow(EMPTY_PERSPECTIVE_ID);
-		final IWorkbenchPage page = window.getActivePage();
-
-		PerformanceProblemsView view;
-
-		try {
-			view = (PerformanceProblemsView) page.showView(PROBLEMS_VIEW_ID);
-		} catch (PartInitException e) {
-			e.printStackTrace();
-			fail();
-			return;
-		}
-
-		tagIfNecessary("UI - Problems View population",
-				Dimension.ELAPSED_PROCESS);
-
-		for (int i = 0; i < 100; i++) {
-			createMarkers();
-			processEvents();
-			startMeasuring();
-			while (view.getTreeWidget().getItemCount() == 0)
-				processEvents();
-			stopMeasuring();
-			removeMarkers();
-			while (view.getTreeWidget().getItemCount() > 0)
-				processEvents();
-		}
-		commitMeasurements();
-		assertPerformance();
-
-	}
-
-	/**
-	 * Remove the created markers
-	 */
-	private void removeMarkers() {
-
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IMarker[] markers = root.findMarkers(IMarker.PROBLEM, false,
-					IResource.DEPTH_ZERO);
-
-			for (int i = 0; i < markers.length; i++) {
-				String message = (String) markers[i]
-						.getAttribute(IMarker.MESSAGE);
-
-				if (message != null && message.startsWith("this is a test")) {
-					markers[i].delete();
-				}
-			}
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-
-	}
-
-	/**
-	 * Create the markers for the receiver.
-	 */
-	private void createMarkers() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			Map attribs = new HashMap();
-			for (int i = 0; i < 1000; i++) {
-				attribs.put(IMarker.SEVERITY, new Integer(
-						IMarker.SEVERITY_ERROR));
-				attribs.put(IMarker.MESSAGE, "this is a test " + i);
-				MarkerUtilities.createMarker(root, attribs, IMarker.PROBLEM);
-			}
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
deleted file mode 100644
index b1b9cf3..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ResourceTestHelper.java
+++ /dev/null
@@ -1,149 +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.ui.tests.performance;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.tests.harness.util.FileTool;
-
-public class ResourceTestHelper {
-
-	public static void replicate(String src, String destPrefix, String destSuffix, int n) throws CoreException {
-		for (int i= 0; i < n; i++)
-			copy(src, destPrefix + i + destSuffix);
-	}
-
-	public static void copy(String src, String dest) throws CoreException {
-		IFile file= getRoot().getFile(new Path(src));
-		file.copy(new Path(dest), true, null);
-	}
-
-	public static void delete(String file) throws CoreException {
-		getRoot().getFile(new Path(file)).delete(true, null);
-	}
-
-	public static IFile findFile(String path) {
-		return getRoot().getFile(new Path(path));
-	}
-
-	public static IFile[] findFiles(String prefix, String suffix, int i, int n) {
-		IWorkspaceRoot root= getRoot();
-		List files= new ArrayList(n - i);
-		for (int j= i; j < i + n; j++) {
-			String path= root.getLocation().toString() + "/" + prefix + j + suffix;
-			files.add(findFile(path));
-		}
-		return (IFile[]) files.toArray(new IFile[files.size()]);
-	}
-
-	public static StringBuffer read(String src) throws IOException, CoreException {
-		return FileTool.read(new InputStreamReader(getRoot().getFile(new Path(src)).getContents()));
-	}
-
-	public static void write(String dest, final String content) throws IOException, CoreException {
-		InputStream stream= new InputStream() {
-			private Reader fReader= new StringReader(content);
-			public int read() throws IOException {
-				return fReader.read();
-			}
-		};
-		getRoot().getFile(new Path(dest)).create(stream, true, null);
-	}
-	
-
-	public static void replicate(String src, String destPrefix, String destSuffix, int n, String srcName, String destNamePrefix) throws IOException, CoreException {
-		
-		StringBuffer s= read(src);
-		
-		List positions= identifierPositions(s, srcName);
-		
-		for (int j= 0; j < n; j++) {
-			StringBuffer c= new StringBuffer(s.toString());
-			replacePositions(c, srcName.length(), destNamePrefix + j, positions);
-			write(destPrefix + j + destSuffix, c.toString());
-		}
-	}
-
-	public static void copy(String src, String dest, String srcName, String destName) throws IOException, CoreException {
-		StringBuffer buf= read(src);
-		List positions= identifierPositions(buf, srcName);
-		replacePositions(buf, srcName.length(), destName, positions);
-		write(dest, buf.toString());
-	}
-
-	private static void replacePositions(StringBuffer c, int origLength, String string, List positions) {
-		int offset= 0;
-		for (Iterator iter= positions.iterator(); iter.hasNext();) {
-			int position= ((Integer) iter.next()).intValue();
-			c.replace(offset + position, offset + position + origLength, string);
-			offset += string.length() - origLength;
-		}
-	}
-
-	private static List identifierPositions(StringBuffer buffer, String identifier) {
-		List positions= new ArrayList();
-		int i= -1;
-		while (true) {
-			i= buffer.indexOf(identifier, i + 1);
-			if (i == -1)
-				break;
-			if (i > 0 && Character.isJavaIdentifierPart(buffer.charAt(i - 1)))
-				continue;
-			if (i < buffer.length() - 1 && Character.isJavaIdentifierPart(buffer.charAt(i + identifier.length())))
-				continue;
-			positions.add(new Integer(i));
-		}
-		return positions;
-	}
-
-	private static IWorkspaceRoot getRoot() {
-		return ResourcesPlugin.getWorkspace().getRoot();
-	}
-
-	public static boolean enableAutoBuilding() {
-		IWorkspaceDescription description= ResourcesPlugin.getWorkspace().getDescription();
-		boolean wasOff= !description.isAutoBuilding();
-		if (wasOff)
-			description.setAutoBuilding(true);
-		return wasOff;
-	}
-
-	public static void incrementalBuild() throws CoreException {
-		ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
-	}
-
-	public static void fullBuild() throws CoreException {
-		ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
-	}
-
-	public static boolean disableAutoBuilding() {
-		IWorkspaceDescription description= ResourcesPlugin.getWorkspace().getDescription();
-		boolean wasOn= description.isAutoBuilding();
-		if (wasOn)
-			description.setAutoBuilding(false);
-		return wasOn;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/TestRunnable.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/TestRunnable.java
deleted file mode 100644
index a677bca..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/TestRunnable.java
+++ /dev/null
@@ -1,15 +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.ui.tests.performance;
-
-public abstract class TestRunnable {
-    public abstract void run() throws Exception;
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformancePlugin.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformancePlugin.java
deleted file mode 100644
index 4647aa4..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformancePlugin.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import org.eclipse.ui.plugin.*;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class UIPerformancePlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static UIPerformancePlugin plugin;
-	
-	private BundleContext context;
-
-	/**
-	 * The constructor.
-	 */
-	public UIPerformancePlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		this.context = context;
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		context = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 *
-	 * @return the shared instance.
-	 */
-	public static UIPerformancePlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tests.performance", path);
-	}
-
-	public BundleContext getContext() {
-		return context;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSetup.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSetup.java
deleted file mode 100644
index 3cfec1b..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSetup.java
+++ /dev/null
@@ -1,117 +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.ui.tests.performance;
-
-import java.io.ByteArrayInputStream;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-public class UIPerformanceTestSetup extends TestSetup {
-
-	public static final String PERSPECTIVE1= "org.eclipse.ui.tests.performancePerspective1";
-	public static final String PERSPECTIVE2= "org.eclipse.ui.tests.performancePerspective2";
-
-	public static final String PROJECT_NAME = "Performance Project";
-
-	private static final String INTRO_VIEW= "org.eclipse.ui.internal.introview";
-
-    private IProject testProject;
-	
-	public UIPerformanceTestSetup(Test test) {
-		super(test);		
-	}
-
-	/*
-	 * @see junit.extensions.TestSetup#setUp()
-	 */
-	protected void setUp() throws Exception {
-		IWorkbench workbench= PlatformUI.getWorkbench();
-		IWorkbenchWindow activeWindow= workbench.getActiveWorkbenchWindow();
-		IWorkbenchPage activePage= activeWindow.getActivePage();
-		
-		activePage.hideView(activePage.findViewReference(INTRO_VIEW));
-		
-		workbench.showPerspective(PERSPECTIVE1, activeWindow);
-		
-		boolean wasAutobuilding= ResourceTestHelper.disableAutoBuilding();
-		setUpProject();
-		ResourceTestHelper.fullBuild();
-		if (wasAutobuilding) {
-			ResourceTestHelper.enableAutoBuilding();
-			EditorTestHelper.calmDown(2000, 30000, 1000);
-		}
-	}
-	
-	/*
-	 * @see junit.extensions.TestSetup#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		// do nothing, the set up workspace will be used by the open editor tests
-		
-		/* 
-		 * ensure the workbench state gets saved when running with the Automated Testing Framework
-                 * TODO: remove when https://bugs.eclipse.org/bugs/show_bug.cgi?id=71362 is fixed
-                 */
-		StackTraceElement[] elements=  new Throwable().getStackTrace();
-		for (int i= 0; i < elements.length; i++) {
-			StackTraceElement element= elements[i];
-			if (element.getClassName().equals("org.eclipse.test.EclipseTestRunner")) {
-				PlatformUI.getWorkbench().close();
-				break;
-			}
-		}
-	}
-	
-	private void setUpProject() throws CoreException {
-   
-        // Create a java project.
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        testProject = workspace.getRoot().getProject(PROJECT_NAME);
-        testProject.create(null);
-        testProject.open(null);        
-        /*IProjectDescription projectDescription = testProject.getDescription();
-        String[] natureIds = { "org.eclipse.jdt.core.javanature" };
-        projectDescription.setNatureIds(natureIds);*/
-       /*ICommand buildCommand = new BuildCommand();
-        buildCommand.setBuilderName("org.eclipse.jdt.core.javabuilder");
-        projectDescription.setBuildSpec(new ICommand[] { buildCommand });
-        testProject.setDescription(projectDescription, null);*/
-        
-        for (int i = 0; i < EditorPerformanceSuite.EDITOR_FILE_EXTENSIONS.length; i++) {
-            createFiles(EditorPerformanceSuite.EDITOR_FILE_EXTENSIONS[i]);
-        }
-	}
-
-    
-    /**
-     * @param ext
-     * @throws CoreException
-     */
-    private void createFiles(String ext) throws CoreException {
-        for (int i = 0; i < 100; i++) {
-            String fileName = i + "." + ext;
-	        IFile iFile = testProject.getFile(fileName);
-	        iFile.create(new ByteArrayInputStream(new byte[] { '\n' }), true, null);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSuite.java
deleted file mode 100644
index aaa9ed2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/UIPerformanceTestSuite.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.performance.presentations.PresentationPerformanceTestSuite;
-
-/**
- * Test all areas of the UI API.
- */
-public class UIPerformanceTestSuite extends FilteredTestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-    	return new UIPerformanceTestSetup(new UIPerformanceTestSuite());
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public UIPerformanceTestSuite() {
-    	super();
-        addTest(new ActivitiesPerformanceSuite());
-        addTest(new PresentationPerformanceTestSuite());
-        addTest(new WorkbenchPerformanceSuite());
-        addTest(new ViewPerformanceSuite());
-        addTest(new EditorPerformanceSuite());
-        addTest(new TestSuite(CommandsPerformanceTest.class));
-		addTest(new LabelProviderTestSuite());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
deleted file mode 100644
index 1f1b905..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/ViewPerformanceSuite.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.util.HashSet;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.performance.layout.ResizeTest;
-import org.eclipse.ui.tests.performance.layout.ViewWidgetFactory;
-import org.eclipse.ui.views.IViewDescriptor;
-
-/**
- * @since 3.1
- */
-public class ViewPerformanceSuite extends TestSuite {
-
-	public static final String PROJECT_EXPLORER = "org.eclipse.ui.navigator.ProjectExplorer";
-
-	public static final String BASIC_PATH = "org.eclipse.ui";
-
-	public static final String VIEWS_PATTERN = "org.eclipse.ui.views";
-
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static Test suite() {
-		return new ViewPerformanceSuite();
-	}
-
-	/**
-	 * 
-	 */
-	public ViewPerformanceSuite() {
-		addOpenCloseTests();
-		addResizeTests();
-		addTestSuite(OpenNavigatorFolderTest.class);
-	}
-
-	/**
-	 * 
-	 */
-	private void addOpenCloseTests() {
-		String[] ids = getAllTestableViewIds();
-
-		for (int i = 0; i < ids.length; i++) {
-			String id = ids[i];
-
-			addTest(new OpenCloseViewTest(id,
-					id.equals(PROJECT_EXPLORER) ? BasicPerformanceTest.GLOBAL
-							: BasicPerformanceTest.NONE));
-		}
-	}
-
-	private void addResizeTests() {
-		String[] ids = getAllTestableViewIds();
-
-		for (int i = 0; i < ids.length; i++) {
-			String id = ids[i];
-
-			addTest(new ResizeTest(new ViewWidgetFactory(id)));
-		}
-
-	}
-
-	public static String[] getAllTestableViewIds() {
-		HashSet result = new HashSet();
-
-		IViewDescriptor[] descriptors = PlatformUI.getWorkbench()
-				.getViewRegistry().getViews();
-		for (int i = 0; i < descriptors.length; i++) {
-			IViewDescriptor descriptor = descriptors[i];
-
-			String[] categoryPath = descriptor.getCategoryPath();
-
-			if (categoryPath == null)
-				continue;
-
-			for (int j = 0; j < categoryPath.length; j++) {
-				// Only test basic views
-				if (categoryPath[j].equals(BASIC_PATH)) {
-					if (descriptor.getId().indexOf(VIEWS_PATTERN) >= 0
-							|| descriptor.getId().equals(PROJECT_EXPLORER)) {
-						result.add(descriptor.getId());
-					}
-				}
-			}
-
-		}
-
-		return (String[]) result.toArray(new String[result.size()]);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/WorkbenchPerformanceSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/WorkbenchPerformanceSuite.java
deleted file mode 100644
index 10aace8..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/WorkbenchPerformanceSuite.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance;
-
-import java.util.ArrayList;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.performance.layout.ComputeSizeTest;
-import org.eclipse.ui.tests.performance.layout.LayoutTest;
-import org.eclipse.ui.tests.performance.layout.PerspectiveWidgetFactory;
-import org.eclipse.ui.tests.performance.layout.RecursiveTrimLayoutWidgetFactory;
-import org.eclipse.ui.tests.performance.layout.ResizeTest;
-import org.eclipse.ui.tests.performance.layout.TestWidgetFactory;
-
-/**
- * @since 3.1
- */
-class WorkbenchPerformanceSuite extends TestSuite {
-
-	private static String RESOURCE_PERSPID = "org.eclipse.ui.resourcePerspective";
-    // Note: to test perspective switching properly, we need perspectives with lots of
-    // associated actions. 
-	// NOTE - do not change the order of the IDs below.  the PerspectiveSwitchTest has a 
-	// fingerprint test for performance that releys on this not changing.
-    public static final String [] PERSPECTIVE_IDS = {
-        EmptyPerspective.PERSP_ID2,
-        UIPerformanceTestSetup.PERSPECTIVE1, 
-        RESOURCE_PERSPID,
-        "org.eclipse.jdt.ui.JavaPerspective", 
-        "org.eclipse.debug.ui.DebugPerspective"};
-    
-    // Perspective ID to use for the resize window fingerprint test
-    public static String resizeFingerprintTest = RESOURCE_PERSPID; 
-    
-    public static final String [][] PERSPECTIVE_SWITCH_PAIRS = {
-        // Test switching between the two most commonly used perspectives in the SDK (this is the most important
-        // perspective switch test, but it is easily affected by changes in JDT, etc.)
-        {"org.eclipse.jdt.ui.JavaPerspective", "org.eclipse.debug.ui.DebugPerspective", "1.java"},
-        
-        {UIPerformanceTestSetup.PERSPECTIVE1, UIPerformanceTestSetup.PERSPECTIVE2, "1.perf_basic"},
-		
-        {"org.eclipse.ui.tests.dnd.dragdrop", "org.eclipse.ui.tests.fastview_perspective", "1.perf_basic"},
-        
-        // Test switching between a perspective with lots of actions and a perspective with none
-        {"org.eclipse.jdt.ui.JavaPerspective", "org.eclipse.ui.tests.util.EmptyPerspective", "1.perf_basic"},
-        
-        {RESOURCE_PERSPID, "org.eclipse.jdt.ui.JavaPerspective", "1.java"} 
-    };
-    
-    public static final String[] VIEW_IDS = {
-        "org.eclipse.ui.views.ProblemView",
-        "org.eclipse.ui.views.ResourceNavigator"
-    };
-    public static final int ITERATIONS = 25;
-    
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new WorkbenchPerformanceSuite();
-    }
-    
-    /**
-     * 
-     */
-    public WorkbenchPerformanceSuite() {
-        addLayoutScenarios();
-        addResizeScenarios();
-        addPerspectiveSwitchScenarios();
-        addPerspectiveOpenCloseScenarios();
-        addWindowOpenCloseScenarios();
-        addContributionScenarios();
-    }
-
-    /**
-	 * 
-	 */
-	private void addContributionScenarios() {
-        addTest(new ObjectContributionsPerformance(
-                "large selection, limited contributors",
-                ObjectContributionsPerformance.generateAdaptableSelection(
-                        ObjectContributionsPerformance.SEED, 5000),
-                BasicPerformanceTest.NONE));
-        addTest(new ObjectContributionsPerformance(
-                "limited selection, limited contributors",
-                ObjectContributionsPerformance.generateAdaptableSelection(
-                        ObjectContributionsPerformance.SEED, 50),
-                BasicPerformanceTest.NONE));
-	}
-
-	/**
-     * 
-     */
-    private void addWindowOpenCloseScenarios() {
-        for (int i = 0; i < PERSPECTIVE_IDS.length; i++) {
-            addTest(new OpenCloseWindowTest(PERSPECTIVE_IDS[i], BasicPerformanceTest.NONE));
-        }        
-    }
-
-    /**
-     * 
-     *
-     */
-    private void addPerspectiveOpenCloseScenarios() {
-        for (int i = 0; i < PERSPECTIVE_IDS.length; i++) {
-            addTest(new OpenClosePerspectiveTest(PERSPECTIVE_IDS[i], i == 1 ? BasicPerformanceTest.LOCAL : BasicPerformanceTest.NONE));
-        }
-    }
-    
-    /**
-     * 
-     */
-    private void addPerspectiveSwitchScenarios() {
-        for (int i = 0; i < PERSPECTIVE_SWITCH_PAIRS.length; i++) {
-            addTest(new PerspectiveSwitchTest(PERSPECTIVE_SWITCH_PAIRS[i], BasicPerformanceTest.NONE));            
-        }   
-    }
-    
-    /**
-     * Add performance tests for the layout of the given widget 
-     * 
-     * @param factory
-     * @since 3.1
-     */
-    private void addLayoutScenarios(TestWidgetFactory factory) {
-        
-        // Determine the effect of flushing the cache
-        addTest(new ComputeSizeTest(factory));
-        
-        // Test layout(false)
-        addTest(new LayoutTest(factory, false));
-        
-        // Test layout(true)
-        addTest(new LayoutTest(factory, true));
-        
-        // Test resizing
-        addTest(new ResizeTest(factory));
-    }
-
-    private void addLayoutScenarios() {
-        addLayoutScenarios(new RecursiveTrimLayoutWidgetFactory());
-    }
-    
-    public static String[] getAllPerspectiveIds() {
-        ArrayList result = new ArrayList();
-        IPerspectiveDescriptor[] perspectives = PlatformUI.getWorkbench().getPerspectiveRegistry().getPerspectives();
-        
-        for (int i = 0; i < perspectives.length; i++) {
-            IPerspectiveDescriptor descriptor = perspectives[i];
-            String id = descriptor.getId();
-            result.add(id);
-        }
-
-        return (String[]) result.toArray(new String[result.size()]);
-    }
-    
-    /**
-     * 
-     */
-    private void addResizeScenarios() {
-        String[] perspectiveIds = getAllPerspectiveIds();
-        for (int i = 0; i < perspectiveIds.length; i++) {
-            String id = perspectiveIds[i];
-            addTest(new ResizeTest(new PerspectiveWidgetFactory(id), 
-                    id.equals(resizeFingerprintTest) ? BasicPerformanceTest.LOCAL : BasicPerformanceTest.NONE, 
-                            "UI - Workbench Window Resize"));
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ComputeSizeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ComputeSizeTest.java
deleted file mode 100644
index ea00221..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ComputeSizeTest.java
+++ /dev/null
@@ -1,100 +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.tests.performance.layout;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-
-/**
- * Measures the performance of a widget's computeSize method
- * 
- * @since 3.1
- */
-public class ComputeSizeTest extends BasicPerformanceTest {
-
-    private TestWidgetFactory widgetFactory;
-    private int xIterations = 10;
-    private int yIterations = 10;
-    
-    /**
-     * @param testName
-     */
-    public ComputeSizeTest(TestWidgetFactory widgetFactory) {
-        super(widgetFactory.getName() + " computeSize");
-        
-        this.widgetFactory = widgetFactory;
-    }
-
-    /**
-     * Run the test
-     */
-    protected void runTest() throws CoreException, WorkbenchException {
-
-        widgetFactory.init();
-        final Composite widget = widgetFactory.getControl();
-        //Rectangle initialBounds = widget.getBounds();
-        final Point maxSize = widgetFactory.getMaxSize();
-        
-        // Iteration counter. We increment this each pass through the loop in order to 
-        // generate slightly different test data each time
-        final int[] counter = new int[] {0};
- 
-		for (int j = 0; j < 100; j++) {
-	        // This counter determines whether we're computing a width,
-			// height, or fixed
-			// size and whether or not we flush the cache.
-
-			// We do things this way to avoid calling computeSize with the same (or
-			// similar) values
-			// twice in a row, which would be too easy to cache.
-			int count = counter[0];
-
-			startMeasuring();
-			for (int i = 0; i < 200; i++) {
-
-               for (int xIteration = 0; xIteration < xIterations; xIteration++) {
-                   
-                   for (int yIteration = 0; yIteration < yIterations; yIteration++) {
-                       // Avoid giving the same x value twice in a row in order to make it hard to cache
-                       int xSize = maxSize.x * ((xIteration + yIteration) % xIterations) / xIterations;
-                       int ySize = maxSize.y * yIteration / yIterations;
-
-                       // Alternate between flushing and not flushing the cache
-                       boolean flushState = (count % 2) != 0;
-                       
-                       // Alternate between width, height, and fixed, and default size queries 
-                       // (note: we need to alternate in order to make the result hard to cache)
-                       switch(count % 4) {
-                           case 0: widget.computeSize(xSize, SWT.DEFAULT, flushState); break;
-                           case 1: widget.computeSize(SWT.DEFAULT, ySize, flushState); break;
-                           case 2: widget.computeSize(xSize, ySize, flushState); break;
-                           case 3: widget.computeSize(SWT.DEFAULT, SWT.DEFAULT, flushState); break;
-                       }
-
-						count++;
-					}
-				}
-
-			}
-			stopMeasuring();
-			processEvents();
-			counter[0]++;
-		}
-
-		commitMeasurements();
-		assertPerformance();
-        widgetFactory.done();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ConstantAreaLayout.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ConstantAreaLayout.java
deleted file mode 100644
index ce3f360..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ConstantAreaLayout.java
+++ /dev/null
@@ -1,69 +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.tests.performance.layout;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Layout;
-
-/**
- * A very efficient (but useless) layout with complicated preferred size behavior.
- * Its preferred size attempts to maintain a constant area. This can be used for 
- * performance testing other layouts (by attaching this to child Composites in the 
- * layout being tested). It will give a good estimate as to how the layout will
- * handle wrapping widgets.
- * 
- * @since 3.1
- */
-public class ConstantAreaLayout extends Layout {
-
-    private int area;
-    private int preferredWidth;
-    
-    public ConstantAreaLayout(int area, int preferredWidth) {
-        this.area = area;
-        this.preferredWidth = preferredWidth;
-    }
-    
-    /* (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) {
-        
-        if (wHint == 0 || hHint == 0) {
-            return new Point(1,1);
-        }
-        
-        if (wHint == SWT.DEFAULT) {
-            if (hHint == SWT.DEFAULT) {
-                wHint = preferredWidth;
-            } else {
-                wHint = area / hHint;
-            }
-        }
-        
-        if (hHint == SWT.DEFAULT) {
-            hHint = area / wHint;
-        }
-        
-        return new Point(wHint, hHint);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.swt.widgets.Layout#layout(org.eclipse.swt.widgets.Composite, boolean)
-     */
-    protected void layout(Composite composite, boolean flushCache) {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/EditorWidgetFactory.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/EditorWidgetFactory.java
deleted file mode 100644
index 16def55..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/EditorWidgetFactory.java
+++ /dev/null
@@ -1,105 +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.tests.performance.layout;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.EditorSite;
-import org.eclipse.ui.internal.PartPane;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.performance.UIPerformanceTestSetup;
-
-/**
- * @since 3.1
- */
-public class EditorWidgetFactory extends TestWidgetFactory {
-
-    private String editorId;
-    private String filename;
-    private IWorkbenchWindow window;
-    private Composite ctrl;
-    
-    public EditorWidgetFactory(String filename) {
-        this.filename = filename;
-        this.editorId = null;
-    }
-    
-    public EditorWidgetFactory(String filename, String editorId) {
-        this.filename = filename;
-        this.editorId = editorId;
-    }
-    
-    public static Composite getControl(IEditorPart part) {
-		EditorSite site = (EditorSite)part.getSite();
-		
-		PartPane pane = site.getPane();
-        
-		return (Composite)pane.getControl();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#getName()
-     */
-    public String getName() {
-        return "editor " + filename + (editorId != null ? editorId : "");
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#init()
-     */
-    public void init() throws CoreException, WorkbenchException {
-
-		// Open an editor in a new window.
-        window = PlatformUI.getWorkbench().openWorkbenchWindow(EmptyPerspective.PERSP_ID, UITestCase.getPageInput());
-		IWorkbenchPage activePage = window.getActivePage();
-        Assert.assertNotNull(activePage);
-		
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IProject testProject = workspace.getRoot().getProject(UIPerformanceTestSetup.PROJECT_NAME);
-        IFile file = testProject.getFile(filename);
-		
-        if (editorId == null) {
-            editorId = IDE.getEditorDescriptor(file).getId();
-        }
-        
-        IEditorPart part = IDE.openEditor(activePage, file, editorId, true);
-        ctrl = getControl(part);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#getControl()
-     */
-    public Composite getControl() throws CoreException, WorkbenchException {
-        return ctrl;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#done()
-     */
-    public void done() throws CoreException, WorkbenchException {
-    	window.close();
-    	super.done();
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/LayoutTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/LayoutTest.java
deleted file mode 100644
index bf1f3f1..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/LayoutTest.java
+++ /dev/null
@@ -1,93 +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.tests.performance.layout;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-
-/**
- * Measures the time required to layout the widget 10 times. Does not include
- * the time required for any deferred repaints.
- * 
- * @since 3.1
- */
-public class LayoutTest extends BasicPerformanceTest {
-
-	private TestWidgetFactory widgetFactory;
-
-	private int xIterations = 100;
-
-	private int yIterations = 10;
-
-	private boolean flushState;
-
-	/**
-	 * @param testName
-	 */
-	public LayoutTest(TestWidgetFactory widgetFactory, boolean flushState) {
-		super(widgetFactory.getName() + " layout("
-				+ (flushState ? "true" : "false") + ")");
-
-		this.widgetFactory = widgetFactory;
-		this.flushState = flushState;
-	}
-
-	/**
-	 * Run the test
-	 */
-	protected void runTest() throws CoreException, WorkbenchException {
-
-		widgetFactory.init();
-		final Composite widget = widgetFactory.getControl();
-		final Point maxSize = widgetFactory.getMaxSize();
-		Rectangle initialBounds = widget.getBounds();
-		final Rectangle newBounds = Geometry.copy(initialBounds);
-
-		// This test is different now duw to trim API changes so 'gray' it...
-       	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=129001>See Bug 129001</a> ");
-		
-		for (int xIteration = 0; xIteration < xIterations; xIteration++) {
-
-			processEvents();
-
-			startMeasuring();
-
-			for (int yIteration = 0; yIteration < yIterations; yIteration++) {
-				// Avoid giving the same x value twice in a row in order to make
-				// it hard to cache
-				int xSize = maxSize.x
-						* ((xIteration + yIteration) % xIterations)
-						/ xIterations;
-				int ySize = maxSize.y * yIteration / yIterations;
-
-				newBounds.width = xSize;
-				newBounds.height = ySize;
-
-				widget.setBounds(newBounds);
-				widget.layout(flushState);
-			}
-
-			stopMeasuring();
-		}
-
-		commitMeasurements();
-		assertPerformance();
-
-		widget.setBounds(initialBounds);
-		widgetFactory.done();
-	}
-}
-
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PerspectiveWidgetFactory.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PerspectiveWidgetFactory.java
deleted file mode 100644
index 143fdfc..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PerspectiveWidgetFactory.java
+++ /dev/null
@@ -1,74 +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.tests.performance.layout;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.1
- */
-public class PerspectiveWidgetFactory extends TestWidgetFactory {
-
-    private String perspectiveId;
-    private IWorkbenchWindow window;
-    
-    public PerspectiveWidgetFactory(String initialPerspective) {
-        perspectiveId = initialPerspective;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#getMaxSize()
-     */
-    public Point getMaxSize() {
-        return new Point(1024, 768);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#init()
-     */
-    public void init() throws WorkbenchException {
-    	// open the perspective in a new window
-        window = PlatformUI.getWorkbench().openWorkbenchWindow(perspectiveId, UITestCase.getPageInput());
-		IWorkbenchPage page = window.getActivePage();
-        Assert.assertNotNull(page);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#getName()
-     */
-    public String getName() {
-        return "Perspective " + perspectiveId;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#getControl()
-     */
-    public Composite getControl() {
-        return window.getShell();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#done()
-     */
-    public void done() throws CoreException, WorkbenchException {
-    	window.close();
-    	super.done();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PresentationWidgetFactory.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PresentationWidgetFactory.java
deleted file mode 100644
index fe77728..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/PresentationWidgetFactory.java
+++ /dev/null
@@ -1,100 +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.ui.tests.performance.layout;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.presentations.PresentationFactoryUtil;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.tests.performance.UIPerformancePlugin;
-import org.eclipse.ui.tests.performance.presentations.PresentationTestbed;
-import org.eclipse.ui.tests.performance.presentations.TestPresentablePart;
-
-public class PresentationWidgetFactory extends TestWidgetFactory {
-
-    private AbstractPresentationFactory factory;
-    private int type;
-    private Shell shell;
-    private Image img;
-    private Control ctrl;
-    private int numParts;
-    
-    public PresentationWidgetFactory(AbstractPresentationFactory factory, int type, int numParts) {
-        this.factory = factory;
-        this.type = type;
-        this.numParts = numParts;
-    }
-    
-    public void init() throws CoreException, WorkbenchException {
-        super.init();
-        
-        img = UIPerformancePlugin.getImageDescriptor("icons/anything.gif").createImage();
-        Display display = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay();
-        
-        shell = new Shell(display);
-    
-        TestPresentablePart selection = null;
-        PresentationTestbed testBed = new PresentationTestbed(shell, factory, type);
-        for(int partCount = 0; partCount < numParts; partCount++) {
-            TestPresentablePart part = new TestPresentablePart(shell, img);
-            part.setName("Some part");
-            part.setContentDescription("Description");
-            part.setTitle("Some title");
-            part.setDirty(partCount % 2 == 0);
-            part.setTooltip("This is a tooltip");
-            testBed.add(part);
-            selection = part;
-        }
-        
-        testBed.setSelection(selection);
-        
-        ctrl = testBed.getControl();
-        shell.setBounds(0,0,1024,768);
-        ctrl.setBounds(shell.getClientArea());
-        shell.setVisible(true);
-    }
-    
-    public void done() throws CoreException, WorkbenchException {
-        shell.dispose();
-        img.dispose();
-
-        super.done();
-    }
-    
-    public static String describePresentation(AbstractPresentationFactory factory, int type) {
-        String typeDesc = "unknown";
-        
-        switch(type) {
-        case PresentationFactoryUtil.ROLE_EDITOR: typeDesc = "editor"; break;
-        case PresentationFactoryUtil.ROLE_STANDALONE: typeDesc = "standalone with title"; break;
-        case PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE: typeDesc = "standalone without title"; break;
-        case PresentationFactoryUtil.ROLE_VIEW: typeDesc = "view"; break;
-        }
-        
-        return "Presentation " + factory.getId() + " " + typeDesc;
-        
-    }
-    
-    public String getName() {
-        return describePresentation(factory, type);
-    }
-
-    public Composite getControl() throws CoreException, WorkbenchException {
-        return (Composite)ctrl;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/RecursiveTrimLayoutWidgetFactory.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/RecursiveTrimLayoutWidgetFactory.java
deleted file mode 100644
index 2084a7e..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/RecursiveTrimLayoutWidgetFactory.java
+++ /dev/null
@@ -1,120 +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.tests.performance.layout;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.WindowTrimProxy;
-import org.eclipse.ui.internal.layout.TrimLayout;
-
-/**
- * @since 3.1
- */
-public class RecursiveTrimLayoutWidgetFactory extends TestWidgetFactory {
-
-    private Shell shell;
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#getName()
-     */
-    public String getName() {
-        return "Massively Recursive TrimLayout";
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#done()
-     */
-    public void done() throws CoreException, WorkbenchException {
-        super.done();
-        
-        shell.dispose();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#init()
-     */
-    public void init() throws CoreException, WorkbenchException {
-        super.init();
-        
-		Display display = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getDisplay();
-		
-		shell = new Shell(display);
-	
-		createTrimLayout(shell, 10, SWT.TOP);
-		
-		shell.setBounds(0,0,1024,768);
-		shell.setVisible(true);
-    }
-    
-    
-    /**
-     * Create a set of recursive trim layouts with the given depth. That is, the
-     * trim controls themselves are also trim layouts. This ensures that TrimLayout 
-     * can handle 
-     * Note that this
-     * will create O(2^depth) children.
-     * 
-     * @param composite
-     * @param depth
-     * @param side
-     * @since 3.1
-     */
-    public void createTrimLayout(Composite composite, int depth, int side) {
-        if (depth == 0) {
-            composite.setLayout(new ConstantAreaLayout(5000, 300));
-        } else {
-            TrimLayout layout = new TrimLayout();
-            
-            composite.setLayout(layout);
-            
-            int nextSide = SWT.TOP; 
-            
-            switch (side) {
-            	case SWT.TOP : nextSide = SWT.RIGHT; break;
-            	case SWT.RIGHT : nextSide = SWT.BOTTOM; break;
-            	case SWT.BOTTOM : nextSide = SWT.LEFT; break;
-            	case SWT.LEFT : nextSide = SWT.TOP; break;
-            }
-            
-            // Add a resizable child
-            Composite child = new Composite(composite, SWT.NONE);
-            WindowTrimProxy proxy = new WindowTrimProxy(child, 
-            		"child1." + side + "." + depth, "Resizable Child", SWT.NONE, true);
-            layout.addTrim(side, proxy);
-            createTrimLayout(child, depth - 1, nextSide); 
-
-            // Add a non-resizable child
-            child = new Composite(composite, SWT.NONE);
-            proxy = new WindowTrimProxy(child, 
-            		"child2." + side + "." + depth, "Non-Resizable Child", SWT.NONE, false);
-            layout.addTrim(side, proxy);
-            createTrimLayout(child, depth - 1, nextSide);
-            
-            // Fill the client area
-            child = new Composite(composite, SWT.NONE);
-            layout.setCenterControl(child);
-            child.setLayout(new ConstantAreaLayout(3000, 150));
-        }
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#getControl()
-     */
-    public Composite getControl() throws CoreException, WorkbenchException {
-		return shell;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ResizeTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ResizeTest.java
deleted file mode 100644
index 5eb3ab5..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ResizeTest.java
+++ /dev/null
@@ -1,108 +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.tests.performance.layout;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-
-/**
- * Measures the time to resize the widget 10 times, including the time required
- * to redraw.
- * 
- * @since 3.1
- */
-public class ResizeTest extends BasicPerformanceTest {
-
-	private TestWidgetFactory widgetFactory;
-
-	private int xIterations = 5;
-
-	private int yIterations = 5;
-
-	private String tagString;
-
-	
-	
-	/**
-	 * Create a new instance of the receiver.
-	 * @param factory
-	 */
-	public ResizeTest(TestWidgetFactory factory) {
-		this(factory, NONE, factory.getName() + " setSize");
-	}
-
-	
-	
-	/**
-	 * Create a new instance of the receiver.
-	 * @param factory
-	 * @param tagging
-	 * @param tag
-	 */
-	public ResizeTest(TestWidgetFactory factory, int tagging,
-			String tag) {
-		super(factory.getName() + " setSize", tagging);
-		this.tagString = tag;
-		this.widgetFactory = factory;
-	}
-
-	/**
-	 * Run the test
-	 */
-	protected void runTest() throws CoreException, WorkbenchException {
-
-		tagIfNecessary(tagString, Dimension.ELAPSED_PROCESS);
-
-		widgetFactory.init();
-		final Composite widget = widgetFactory.getControl();
-		Rectangle initialBounds = widget.getBounds();
-		final Point maxSize = widgetFactory.getMaxSize();
-
-		waitForBackgroundJobs();
-		processEvents();
-		for (int j = 0; j < 50; j++) {
-
-			startMeasuring();
-			for (int i = 0; i < 2; i++) {
-
-				for (int xIteration = 0; xIteration < xIterations; xIteration += 5) {
-
-					for (int yIteration = 0; yIteration < yIterations; yIteration++) {
-						// Avoid giving the same x value twice in a row in order
-						// to make it hard to cache
-						int xSize = maxSize.x
-								* ((xIteration + yIteration) % xIterations)
-								/ xIterations;
-						int ySize = maxSize.y * yIteration / yIterations;
-
-						widget.setSize(xSize, ySize);
-
-						processEvents();
-					}
-
-				}
-
-			}
-			stopMeasuring();
-		}
-		commitMeasurements();
-		assertPerformance();
-
-		widget.setBounds(initialBounds);
-		widgetFactory.done();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/TestWidgetFactory.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/TestWidgetFactory.java
deleted file mode 100644
index c7b4f72..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/TestWidgetFactory.java
+++ /dev/null
@@ -1,36 +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.tests.performance.layout;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.WorkbenchException;
-
-/**
- * @since 3.1
- */
-public abstract class TestWidgetFactory {
-	public Point getMaxSize() throws CoreException, WorkbenchException {
-	    Composite control = getControl();
-	    Composite parent = control.getParent();
-	    
-	    if (parent == null) {
-	        return new Point(800, 600);
-	    }
-	    return Geometry.getSize(parent.getClientArea());
-	}
-	public void init() throws CoreException, WorkbenchException {}
-	public void done() throws CoreException, WorkbenchException {}
-	public abstract String getName();
-	public abstract Composite getControl() throws CoreException, WorkbenchException;
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ViewWidgetFactory.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ViewWidgetFactory.java
deleted file mode 100644
index 5d7784c..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/layout/ViewWidgetFactory.java
+++ /dev/null
@@ -1,101 +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.tests.performance.layout;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.internal.PartPane;
-import org.eclipse.ui.internal.ViewSite;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-
-/**
- * @since 3.1
- */
-public class ViewWidgetFactory extends TestWidgetFactory {
-
-    private String viewId;
-    private Control ctrl;
-    private IWorkbenchWindow window;
-    
-    public ViewWidgetFactory(String viewId) {
-        this.viewId = viewId;
-        Assert.assertNotNull(viewId);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#getMaxSize()
-     */
-    public Point getMaxSize() {
-        return new Point(1024, 768);
-    }
-
-    public static Composite getControl(IViewPart part) {
-		ViewSite site = (ViewSite)part.getSite();
-		
-		PartPane pane = site.getPane();
-        
-		return (Composite)pane.getControl();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#init()
-     */
-    public void init() throws CoreException, WorkbenchException {
-    	// open the view in a new window
-        window = PlatformUI.getWorkbench().openWorkbenchWindow(EmptyPerspective.PERSP_ID, UITestCase.getPageInput());
-		IWorkbenchPage page = window.getActivePage();
-        Assert.assertNotNull(page);
-
-		IViewPart part = page.showView(viewId, null, IWorkbenchPage.VIEW_ACTIVATE);
-        
-        BasicPerformanceTest.waitForBackgroundJobs();
-        
-		ctrl = getControl(part);
-        
-        Point size = getMaxSize();
-        ctrl.setBounds(0,0,size.x, size.y);
-        window.getShell().setSize(size);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#getName()
-     */
-    public String getName() {
-        return "View " + viewId;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.TestWidgetFactory#getControl()
-     */
-    public Composite getControl() throws CoreException, WorkbenchException {
-        return (Composite)ctrl;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.performance.layout.TestWidgetFactory#done()
-     */
-    public void done() throws CoreException, WorkbenchException {
-    	window.close();
-    	super.done();
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/marked.txt b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/marked.txt
deleted file mode 100644
index 1c63f0c..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/marked.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-window resizing
-perf1/perf2 perspective switching
-
- V basic view open/close
- V empty perspective open/close
- V perf_basic editor open/close
- V perf_basic closeAll
- V perf1 open/close window
-
-* ask Stefan for one interesting test
-
-view to editor switching
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceEditorPart.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceEditorPart.java
deleted file mode 100644
index a6ca32a..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceEditorPart.java
+++ /dev/null
@@ -1,129 +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.tests.performance.parts;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-
-/**
- * @since 3.1
- */
-public class PerformanceEditorPart extends EditorPart {
-
-    private static final String PARAM_OUTLINE = "outline";
-    
-    private boolean dirty;
-    private Label control;
-    private boolean useOutline = false;
-
-    /**
-     * 
-     */
-    public PerformanceEditorPart() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    public void doSave(IProgressMonitor monitor) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-     */
-    public void doSaveAs() {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        super.setSite(site);
-        super.setInput(input);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isDirty()
-     */
-    public boolean isDirty() {
-        return dirty;
-    }
-    
-    public void setDirty(boolean dirty) {
-        this.dirty = dirty;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {        
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-        control = new Label(parent, SWT.NONE);
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        control.setFocus();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
-     */
-    public void setInitializationData(IConfigurationElement cfig,
-            String propertyName, Object data) {
-        super.setInitializationData(cfig, propertyName, data);
-        
-        if (data instanceof String) {
-           for (StringTokenizer toker = new StringTokenizer((String) data, ","); toker.hasMoreTokens(); ) {
-               String token = toker.nextToken();
-               if (token.equals(PARAM_OUTLINE))
-                   useOutline = true;
-           }
-           
-        }        
-    }
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-     */
-    public Object getAdapter(Class adapter) {
-        Object object = null;
-        if (useOutline && adapter.equals(IContentOutlinePage.class)) {
-            object = new ContentOutlinePage() {
-            };
-        }
-        if (object != null)
-            return object;
-        return super.getAdapter(adapter);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceProblemsView.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceProblemsView.java
deleted file mode 100644
index 166dfe7..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceProblemsView.java
+++ /dev/null
@@ -1,28 +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.tests.performance.parts;
-
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.views.markers.internal.ProblemView;
-
-/**
- * PerformanceProblemsView is a problems view created
- * for the performance tests.
- * @since 3.2
- *
- */
-public class PerformanceProblemsView extends ProblemView {
-
-	public Tree getTreeWidget(){
-		return getTree();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceViewPart.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceViewPart.java
deleted file mode 100644
index a683a72..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/parts/PerformanceViewPart.java
+++ /dev/null
@@ -1,46 +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.tests.performance.parts;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * @since 3.1
- */
-public class PerformanceViewPart extends ViewPart {
-
-	private Label control;
-	
-	/**
-	 * 
-	 */
-	public PerformanceViewPart() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		control = new Label(parent, SWT.NONE);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		control.setFocus();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivateTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivateTest.java
deleted file mode 100644
index 59596d7..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivateTest.java
+++ /dev/null
@@ -1,55 +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.ui.tests.performance.presentations;
-
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.StackPresentation;
-import org.eclipse.ui.tests.performance.TestRunnable;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-
-public class PresentationActivateTest extends PresentationPerformanceTest {
-    
-    private int type;
-    private int number;
-    private AbstractPresentationFactory factory;
-    
-    public PresentationActivateTest(AbstractPresentationFactory factory, int type, int number) {
-        super(PresentationWidgetFactory.describePresentation(factory, type) + " activation");
-        this.type = type;
-        this.number = number;
-        this.factory = factory;
-    }
-    
-    protected void runTest() throws Throwable {
-        final PresentationTestbed testbed = createPresentation(factory, type, number);
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                
-                startMeasuring();
-                
-                for (int i = 0; i < 100; i++) {
-                    testbed.setActive(StackPresentation.AS_ACTIVE_FOCUS);
-                    processEvents();                    
-                    testbed.setActive(StackPresentation.AS_ACTIVE_NOFOCUS);
-                    processEvents();
-                    testbed.setActive(StackPresentation.AS_INACTIVE);
-                    processEvents();
-                }
-                
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance();   
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivePartPropertyTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivePartPropertyTest.java
deleted file mode 100644
index af600f2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationActivePartPropertyTest.java
+++ /dev/null
@@ -1,66 +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.ui.tests.performance.presentations;
-
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-
-public class PresentationActivePartPropertyTest extends PresentationPerformanceTest {
-    
-    private int type;
-    private int number;
-    private int iterations;
-    private boolean fastTest;
-    private AbstractPresentationFactory factory;
-    
-    public PresentationActivePartPropertyTest(AbstractPresentationFactory factory, int type, int number, boolean fastTest) {
-        super(PresentationWidgetFactory.describePresentation(factory, type) + " active part properties");
-        this.type = type;
-        this.number = number;
-        this.factory = factory;
-        this.fastTest = fastTest;
-       
-    }
-    
-    protected void runTest() throws Throwable {
-        
-    	setDegradationComment("<a href=https://bugs.eclipse.org/bugs/show_bug.cgi?id=101072>See Bug 101072</a> ");
-    	 
-        final PresentationTestbed testbed = createPresentation(factory, type, number);
-        
-        final TestPresentablePart part = (TestPresentablePart)testbed.getSelection();
-        
-        if(fastTest)
-        	iterations = 300;
-        else
-        	iterations = 5;
-        
-		for (int j = 0; j < 50; j++) {
-
-			startMeasuring();
-			for (int i = 0; i < iterations; i++) {
-            
-                twiddleProperty(DESCRIPTION, part);
-                twiddleProperty(DIRTY, part);
-                twiddleProperty(IMAGE, part);
-                twiddleProperty(NAME, part);
-                twiddleProperty(TITLE, part);
-                twiddleProperty(TOOLBAR, part);
-                twiddleProperty(TOOLTIP, part);
-                
-            } 
-            stopMeasuring();
-		}
-        
-        commitMeasurements();
-        assertPerformance();                
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationCreateTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationCreateTest.java
deleted file mode 100644
index 9401767..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationCreateTest.java
+++ /dev/null
@@ -1,52 +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.ui.tests.performance.presentations;
-
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.tests.performance.TestRunnable;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-
-public class PresentationCreateTest extends PresentationPerformanceTest {
-    
-    private int type;
-    private int number;
-    private AbstractPresentationFactory factory;
-
-    public PresentationCreateTest(AbstractPresentationFactory factory, int type, int number) {
-        this(factory, type, number, "creation");
-    }
-    
-    public PresentationCreateTest(AbstractPresentationFactory factory, int type, int number, String message) {
-        super(PresentationWidgetFactory.describePresentation(factory, type) + " " + message);
-        this.type = type;
-        this.number = number;
-        this.factory = factory;
-    }
-    
-    protected void runTest() throws Throwable {
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                
-                startMeasuring();
-                
-                PresentationTestbed testbed = createPresentation(factory, type, number);
-                processEvents();
-                testbed.getControl().dispose();
-                processEvents();
-                
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance();    
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationInactivePartPropertyTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationInactivePartPropertyTest.java
deleted file mode 100644
index f5df0dc..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationInactivePartPropertyTest.java
+++ /dev/null
@@ -1,58 +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.ui.tests.performance.presentations;
-
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.tests.performance.TestRunnable;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-
-public class PresentationInactivePartPropertyTest extends PresentationPerformanceTest {
-    
-    private int type;
-    private int number;
-    private AbstractPresentationFactory factory;
-    
-    public PresentationInactivePartPropertyTest(AbstractPresentationFactory factory, int type, int number) {
-        super(PresentationWidgetFactory.describePresentation(factory, type) + " inactive part properties");
-        this.type = type;
-        this.number = number;
-        this.factory = factory;
-    }
-    
-    protected void runTest() throws Throwable {
-        final PresentationTestbed testbed = createPresentation(factory, type, number);
-        
-        final TestPresentablePart part = new TestPresentablePart(theShell, img);
-        testbed.add(part);
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                
-                startMeasuring();
-                
-                for (int counter = 0; counter < 5; counter++) {
-                    twiddleProperty(DESCRIPTION, part);
-                    twiddleProperty(DIRTY, part);
-                    twiddleProperty(IMAGE, part);
-                    twiddleProperty(NAME, part);
-                    twiddleProperty(TITLE, part);
-                    twiddleProperty(TOOLBAR, part);
-                    twiddleProperty(TOOLTIP, part);
-                }
-                
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance();       
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTest.java
deleted file mode 100644
index 013a9a6..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTest.java
+++ /dev/null
@@ -1,153 +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.ui.tests.performance.presentations;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.tests.performance.BasicPerformanceTest;
-import org.eclipse.ui.tests.performance.UIPerformancePlugin;
-
-public class PresentationPerformanceTest extends BasicPerformanceTest {
-
-	protected Shell theShell;
-
-	protected Image img;
-
-	protected Image img2;
-
-	protected static final int NAME = 0;
-
-	protected static final int TITLE = 1;
-
-	protected static final int DIRTY = 2;
-
-	protected static final int DESCRIPTION = 3;
-
-	protected static final int TOOLTIP = 4;
-
-	protected static final int IMAGE = 5;
-
-	protected static final int TOOLBAR = 6;
-
-	public PresentationPerformanceTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		theShell = new Shell(Display.getCurrent(), SWT.NONE);
-		theShell.setBounds(0, 0, 1024, 768);
-		theShell.setVisible(true);
-		img = UIPerformancePlugin.getImageDescriptor(
-				"icons/anything.gif").createImage();
-		img2 = UIPerformancePlugin.getImageDescriptor("icons/view.gif")
-				.createImage();
-	}
-
-	protected void doTearDown() throws Exception {
-		theShell.dispose();
-		theShell = null;
-		img.dispose();
-		img2.dispose();
-		super.doTearDown();
-	}
-
-	protected PresentationTestbed createPresentation(
-			AbstractPresentationFactory factory, int type, int numParts) {
-		TestPresentablePart selection = null;
-		PresentationTestbed testBed = new PresentationTestbed(theShell,
-				factory, type);
-		for (int partCount = 0; partCount < numParts; partCount++) {
-			TestPresentablePart part = new TestPresentablePart(theShell, img);
-			part.setName("Some part");
-			part.setContentDescription("Description");
-			part.setTitle("Some title");
-			part.setDirty(partCount % 2 == 0);
-			part.setTooltip("This is a tooltip");
-			testBed.add(part);
-			selection = part;
-		}
-
-		testBed.setSelection(selection);
-
-		Control ctrl = testBed.getControl();
-		ctrl.setBounds(theShell.getClientArea());
-		return testBed;
-	}
-
-	protected void twiddleProperty(int property, TestPresentablePart part) {
-		switch (property) {
-		case NAME: {
-			String originalName = part.getName();
-			part.setName("Some new name");
-			processEvents();
-			part.setName(originalName);
-			processEvents();
-			break;
-		}
-		case TITLE: {
-			String originalTitle = part.getTitle();
-			part.setTitle("Some new title");
-			processEvents();
-			part.setTitle(originalTitle);
-			processEvents();
-			break;
-		}
-		case DIRTY: {
-			boolean originalDirty = part.isDirty();
-			part.setDirty(!originalDirty);
-			processEvents();
-			part.setDirty(originalDirty);
-			processEvents();
-			break;
-		}
-		case DESCRIPTION: {
-			String originalDescription = part.getTitleStatus();
-			part.setContentDescription("Some new description");
-			processEvents();
-			part.setContentDescription(originalDescription);
-			processEvents();
-			break;
-		}
-		case TOOLTIP: {
-			String originalTooltip = part.getTitleToolTip();
-			part.setTooltip("Some new tooltip");
-			processEvents();
-			part.setTooltip(originalTooltip);
-			processEvents();
-			break;
-		}
-		case IMAGE: {
-			Image originalImage = part.getTitleImage();
-
-			part.setImage(img2);
-			processEvents();
-			part.setImage(originalImage);
-			processEvents();
-			break;
-		}
-		case TOOLBAR: {
-			ToolItem newItem = part.addToToolbar(img2);
-
-			processEvents();
-			part.removeFromToolbar(newItem);
-			processEvents();
-			break;
-		}
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTestSuite.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTestSuite.java
deleted file mode 100644
index e180108..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationPerformanceTestSuite.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance.presentations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.presentations.PresentationFactoryUtil;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-import org.eclipse.ui.tests.performance.layout.ResizeTest;
-
-/**
- * @since 3.1
- */
-public class PresentationPerformanceTestSuite extends TestSuite {
-
-    
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new PresentationPerformanceTestSuite();
-    }
-    
-    /**
-     * 
-     */
-    public PresentationPerformanceTestSuite() {        
-        String[] ids = getPresentationIds();
-        
-        for (int i = 0; i < ids.length; i++) {
-            String string = ids[i];
-            
-            addTests(string);
-        }
-    }
-
-    private void addTests(String presentationId) {
-        AbstractPresentationFactory factory = WorkbenchPlugin.getDefault().getPresentationFactory(presentationId);
-
-        addTest(new PresentationInactivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5));
-        addTest(new PresentationInactivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5));
-        
-        addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5, false));
-        addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5, false));
-        addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1, false));
-        if(presentationId.equals(IWorkbenchConstants.DEFAULT_PRESENTATION_ID))
-        	addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1, true));
-        else
-        	addTest(new PresentationActivePartPropertyTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1, false));
-
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 100, "large folder creation"));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_VIEW, 100, "large folder creation"));
-        
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1));
-        addTest(new PresentationCreateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1));
-        
-        addTest(new PresentationSelectTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 100));
-        addTest(new PresentationSelectTest(factory, PresentationFactoryUtil.ROLE_VIEW, 100));
-        
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_EDITOR, 5));
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_VIEW, 5));
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1));
-        addTest(new PresentationActivateTest(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1));
-        
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_EDITOR, 5)));
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_VIEW, 5)));
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_STANDALONE, 1)));
-        addTest(new ResizeTest(new PresentationWidgetFactory(factory, PresentationFactoryUtil.ROLE_STANDALONE_NOTITLE, 1)));
-        
-    }
-    
-    private static String[] getPresentationIds() {
-        return listIds(IWorkbenchRegistryConstants.PL_PRESENTATION_FACTORIES,
-                "factory");
-    }
-    
-    private static String[] listIds(String extensionPointId, String elementName) {
-        
-        List result = new ArrayList();
-        
-        IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
-                .getExtensionPoint(WorkbenchPlugin.PI_WORKBENCH, extensionPointId);
-        if (extensionPoint == null) {
-            WorkbenchPlugin
-                    .log("Unable to find extension. Extension point: " + extensionPointId + " not found"); //$NON-NLS-1$ //$NON-NLS-2$
-            return null;
-        }
-        
-        // Loop through the config elements.
-        IConfigurationElement[] elements = extensionPoint
-                .getConfigurationElements();
-        for (int j = 0; j < elements.length; j++) {
-            IConfigurationElement element = elements[j];
-            if (elementName == null || elementName.equals(element.getName())) {
-                String strID = element.getAttribute("id"); //$NON-NLS-1$
-                if (strID != null) {
-                    result.add(strID);
-                }
-            }
-        }
-        
-        return (String[]) result.toArray(new String[result.size()]);
-    }    
-    
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationSelectTest.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationSelectTest.java
deleted file mode 100644
index bdbc112..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationSelectTest.java
+++ /dev/null
@@ -1,55 +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.ui.tests.performance.presentations;
-
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.tests.performance.TestRunnable;
-import org.eclipse.ui.tests.performance.layout.PresentationWidgetFactory;
-
-public class PresentationSelectTest extends PresentationPerformanceTest {
-    
-    private int type;
-    private int number;
-    private AbstractPresentationFactory factory;
-    
-    public PresentationSelectTest(AbstractPresentationFactory factory, int type, int number) {
-        super(PresentationWidgetFactory.describePresentation(factory, type) + " selection change");
-        this.type = type;
-        this.number = number;
-        this.factory = factory;
-    }
-    
-    protected void runTest() throws Throwable {
-        final PresentationTestbed testbed = createPresentation(factory, type, number);
-        
-        final IPresentablePart[] parts = testbed.getPartList();
-        
-        exercise(new TestRunnable() {
-            public void run() throws Exception {
-                
-                startMeasuring();
-                
-                for (int i = 0; i < parts.length; i++) {
-                    IPresentablePart part = parts[i];
-                    
-                    testbed.setSelection(part);
-                    processEvents();
-                }
-                
-                stopMeasuring();
-            } 
-        });
-        
-        commitMeasurements();
-        assertPerformance(); 
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java
deleted file mode 100644
index 4724bf0..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/PresentationTestbed.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Chris Gross chris.gross@us.ibm.com Bug 107443
- *******************************************************************************/
-package org.eclipse.ui.tests.performance.presentations;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Assert;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.ControlListener;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.ui.ISizeProvider;
-import org.eclipse.ui.internal.DefaultStackPresentationSite;
-import org.eclipse.ui.internal.presentations.PresentationFactoryUtil;
-import org.eclipse.ui.presentations.AbstractPresentationFactory;
-import org.eclipse.ui.presentations.IPresentablePart;
-import org.eclipse.ui.presentations.IStackPresentationSite;
-import org.eclipse.ui.presentations.StackPresentation;
-
-public class PresentationTestbed {
-    
-    private StackPresentation presentation;
-    private List partList = new ArrayList();
-    private IPresentablePart selectedPart;
-    private Composite control;
-    
-    private DefaultStackPresentationSite site = new DefaultStackPresentationSite() {
-        public void close(IPresentablePart[] toClose) {}
-        public void flushLayout() {}
-        public IPresentablePart[] getPartList() {
-            return (IPresentablePart[]) partList.toArray(new IPresentablePart[partList.size()]);
-        }
-        public IPresentablePart getSelectedPart() {
-            return selectedPart;
-        }
-        public boolean isPartMoveable(IPresentablePart toMove) {
-            return true;
-        }
-        public boolean isStackMoveable() {
-            return true;
-        }
-        /* (non-Javadoc)
-         * @see org.eclipse.ui.presentations.IStackPresentationSite#getProperty(java.lang.String)
-         */
-        public String getProperty(String id) {
-        	return null;
-        }
-    };
-    
-    public PresentationTestbed(Composite parentComposite, AbstractPresentationFactory factory, int type) {
-        presentation = PresentationFactoryUtil.createPresentation(factory, type, parentComposite, site, null, null);
-        site.setPresentation(presentation);
-        control = new Composite(parentComposite, SWT.NONE);
-        control.addControlListener(new ControlListener() {
-            public void controlMoved(ControlEvent e) {
-                updatePresentationBounds();
-            }
-            public void controlResized(ControlEvent e) {
-                updatePresentationBounds();
-            }
-        });
-        
-        control.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent e) {
-                site.dispose();
-            } 
-        });
-        
-        control.setLayout(new Layout() {
-            protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-                int widthHint = wHint == SWT.DEFAULT ? ISizeProvider.INFINITE : wHint;
-                int heightHint = hHint == SWT.DEFAULT ? ISizeProvider.INFINITE : hHint;
-                
-                int width = 200;
-                int height = 200;
-                StackPresentation presentation = site.getPresentation();
-                if (presentation != null) {
-                    width = presentation.computePreferredSize(true, widthHint, heightHint, widthHint);
-                    height = presentation.computePreferredSize(false, heightHint, widthHint, heightHint);
-                }
-                
-                if (width == ISizeProvider.INFINITE) {
-                    width = 200;
-                }
-
-                if (height == ISizeProvider.INFINITE) {
-                    height = 200;
-                }
-                
-                return new Point(width, height);
-            }
-           
-            protected void layout(Composite composite, boolean flushCache) {
-            }
-        });
-        
-        control.setVisible(false);
-        site.setActive(StackPresentation.AS_ACTIVE_FOCUS);
-        site.setState(IStackPresentationSite.STATE_RESTORED);
-    }
-    
-    public Control getControl() {
-        return control;
-    }
-    
-    public void add(IPresentablePart part) {
-        partList.add(part);
-        site.getPresentation().addPart(part, null);
-    }
-    
-    public void remove(IPresentablePart part) {
-        Assert.assertTrue(part != selectedPart);
-        partList.remove(part);
-        site.getPresentation().removePart(part);
-    }
-    
-    public void setSelection(IPresentablePart newSelection) {
-        Assert.assertTrue(partList.contains(newSelection));
-        
-        selectedPart = newSelection;
-        if (selectedPart != null) {
-            site.selectPart(newSelection);
-        }
-    }
-    
-    public void setState(int newState) {
-        site.setPresentationState(newState);
-    }
-    
-    public void setActive(int activeState) {
-        site.setActive(activeState);
-    }
-    
-    public IPresentablePart[] getPartList() {
-        return (IPresentablePart[]) partList.toArray(new IPresentablePart[partList.size()]);
-    }
-    
-    private void updatePresentationBounds() {
-        StackPresentation presentation = site.getPresentation();
-        if (presentation != null) {
-            presentation.setBounds(control.getBounds());
-        }
-    }
-    
-    public IPresentablePart getSelection() {
-        return selectedPart;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective.java
deleted file mode 100644
index ad825c5..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective.java
+++ /dev/null
@@ -1,36 +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.tests.performance.presentations;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class StandaloneViewPerspective implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        // One standalone view (bookmarks) with trim
-        layout.addStandaloneView(IPageLayout.ID_BOOKMARKS, true, 
-                IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One standalone view (problems) without trim
-        layout.addStandaloneView(IPageLayout.ID_PROBLEM_VIEW, false, 
-                IPageLayout.RIGHT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One regular view (outline)
-        layout.addView(IPageLayout.ID_OUTLINE, IPageLayout.BOTTOM, 0.5f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective2.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective2.java
deleted file mode 100644
index 4a873e2..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/StandaloneViewPerspective2.java
+++ /dev/null
@@ -1,36 +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.tests.performance.presentations;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class StandaloneViewPerspective2 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        // One standalone view (bookmarks) without trim
-        layout.addStandaloneView(IPageLayout.ID_BOOKMARKS, false, 
-                IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One standalone view (problems) without trim
-        layout.addStandaloneView(IPageLayout.ID_PROBLEM_VIEW, false, 
-                IPageLayout.RIGHT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        // One regular view (outline)
-        layout.addStandaloneView(IPageLayout.ID_OUTLINE, false, IPageLayout.BOTTOM, 0.5f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.java b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.java
deleted file mode 100644
index ba85490..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/presentations/TestPresentablePart.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.performance.presentations;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.presentations.IPartMenu;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-public class TestPresentablePart implements IPresentablePart {
-
-    private List listeners = new ArrayList();
-    
-    private Composite control;
-    private String name = "";
-    private String title = "";
-    private String status = "";
-    private Image image;
-    private String tooltip = "";
-    private boolean dirty;
-    private ToolBar toolbar;
-    
-    public TestPresentablePart(Composite parent, Image image) {
-        control = new Composite(parent, SWT.NONE);
-        control.addDisposeListener(new DisposeListener() {
-            public void widgetDisposed(DisposeEvent e) {
-                disposed();
-            } 
-        });
-        
-        // Add some items to the toolbar
-        toolbar = new ToolBar(parent, SWT.WRAP);
-        for (int idx = 0; idx < 6; idx++) {
-            ToolItem item = new ToolItem(toolbar, SWT.PUSH);
-            item.setImage(image);
-        }
-        this.image = image;
-    }
-    
-    // Set methods called from presentation (all ignored)
-    public void setBounds(Rectangle bounds) {
-        control.setBounds(bounds);
-    }
-    
-    public void setVisible(boolean isVisible) {
-        control.setVisible(isVisible);
-        toolbar.setVisible(isVisible);
-    }
-    
-    public void setFocus() {
-        control.setFocus();
-    }
-
-    public void addPropertyListener(IPropertyListener listener) {
-        listeners.add(listener);
-    }
-
-    public void removePropertyListener(IPropertyListener listener) {
-        listeners.remove(listener);
-    }
-
-    private void firePropertyChange(int propertyId) {
-        for (int i = 0; i < listeners.size(); i++) {
-            ((IPropertyListener) listeners.get(i)).propertyChanged(this,
-                    propertyId);
-        }
-    }
-    
-    public String getName() {
-        return name;
-    }
-
-    public String getTitle() {
-        return title;
-    }
-
-    public String getTitleStatus() {
-        return status;
-    }
-
-    public Image getTitleImage() {
-        return image;
-    }
-
-    public String getTitleToolTip() {
-        return tooltip;
-    }
-
-    public boolean isDirty() {
-        return dirty;
-    }
-
-    public boolean isBusy() {
-        return false;
-    }
-
-    public boolean isCloseable() {
-        return true;
-    }
-
-    public Control getToolBar() {
-        return toolbar;
-    }
-
-    public IPartMenu getMenu() {
-        return null;
-    }
-
-    public Control getControl() {
-        return control;
-    }
-
-    public void disposed() {
-        toolbar.dispose();
-        toolbar = null;
-    }
-    
-    public void setTitle(String title) {
-        this.title = title;
-        firePropertyChange(IPresentablePart.PROP_TITLE);
-    }
-    
-    public void setName(String name) {
-        this.name = name;
-        firePropertyChange(IPresentablePart.PROP_PART_NAME);
-    }
-    
-    public void setImage(Image newImage) {
-        this.image = newImage;
-        firePropertyChange(IPresentablePart.PROP_TITLE);
-    }
-    
-    public void setContentDescription(String descr) {
-        this.status = descr;
-        firePropertyChange(IPresentablePart.PROP_CONTENT_DESCRIPTION);
-    }
-    
-    public void setTooltip(String tooltip) {
-        this.tooltip = tooltip;
-        firePropertyChange(IPresentablePart.PROP_TITLE);
-    }
-    
-    public void setDirty(boolean dirty) {
-        this.dirty = dirty;
-        firePropertyChange(IPresentablePart.PROP_DIRTY);
-    }
-
-    public ToolItem addToToolbar(Image toAdd) {
-        ToolItem item = new ToolItem(toolbar, SWT.PUSH);
-        item.setImage(toAdd);
-        firePropertyChange(IPresentablePart.PROP_TOOLBAR);
-        return item;
-    }
-    
-    public void removeFromToolbar(ToolItem toRemove) {
-        toRemove.dispose();
-        firePropertyChange(IPresentablePart.PROP_TOOLBAR);
-    }
-
-    private ListenerList partPropertyListeners = new ListenerList();
-    
-    private Map partProperties = new HashMap();
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.IPresentablePart#addPartPropertyListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPartPropertyListener(IPropertyChangeListener listener) {
-		partPropertyListeners.add(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.IPresentablePart#getPartProperty(java.lang.String)
-	 */
-	public String getPartProperty(String key) {
-		return (String) partProperties.get(key);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.presentations.IPresentablePart#removePartPropertyListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePartPropertyListener(IPropertyChangeListener listener) {
-		partPropertyListeners.remove(listener);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISizeProvider#computePreferredSize(boolean, int, int, int)
-	 */
-	public int computePreferredSize(boolean width, int availableParallel,
-			int availablePerpendicular, int preferredResult) {
-		return preferredResult;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISizeProvider#getSizeFlags(boolean)
-	 */
-	public int getSizeFlags(boolean width) {
-		return 0;
-	}
-    
-}
diff --git a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/test_ideas.txt b/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/test_ideas.txt
deleted file mode 100644
index 22f8fe7..0000000
--- a/tests/org.eclipse.ui.tests.performance/src/org/eclipse/ui/tests/performance/test_ideas.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-- Startup time/memory use
-- About
-    - open about then open configuration details then close
-- Workbench [resize Workbench Shell] [switch active part leak check] [stress test switch active part perf.][popup menu open]
-    - with a set of empty views and editors in standard layout
-    - with an editor with a menu entry/a toolbar entry and a view with a simple menu and toolbar
-- Editor [open/close] [zoom/unzoom] [split/unsplit] [stress test open 100 w/o close] [close 100 editors] [minimize/mazimize]
-	- empty
-	- editor with key/context support
-	- multi-page editor
-	- editor that provides a content outline
-	- editor that provides a property sheet
-	- editor that contributes heavily to menus
-	- editor that contributes heavily to toolbars
-	- change icon/title frequently
-	- with lots of popup menu contributions
-- View [open/close] [zoom/unzoom] [detached/re-attach] [make fastview/restore] [minimize/mazimize] [popup menu open]
-	- empty
-	- view with local toolbar
-	- with with view menu
-	- table viewer (TableView)
-	- view that indicates progress when in forground and background
-	- view with content message (see Problems view)
-	- change icon/title frequently
-    - with lots of popup menu contributions
-- Intro [close/open] [standby/non-standby]
-    - basic intro		
-- Perspective [open/close] [stress test open 10 w/o close] [open in new window] [switch pespective]
-	- empty
-	- complex layout
-- Themes [switching theme]
-	- two themes that support the default workbench presentation items
-
--	Shutdown
--	Action Factory (brings in all classes)
--	Leak tests
--	Selection listeners
--	Decorators
--	GDI resources
--	Thread count
--	Overhead of progress support/progress monitor/view
--	Layout
diff --git a/tests/org.eclipse.ui.tests.performance/test.xml b/tests/org.eclipse.ui.tests.performance/test.xml
deleted file mode 100644
index 7178600..0000000
--- a/tests/org.eclipse.ui.tests.performance/test.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="runtests" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}\..\.."/>
-
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="plugin-name" value="org.eclipse.ui.tests.performance"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-	<!--default target that does nothing.  The performance target is called explicitly
-	by build team.-->
-  <target name="runtests"/>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the performance test suites. -->
-  <target name="performance" depends="init,performance-suite,jface-performance-suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-  
-  <target name="performance-suite">
-  	<property name="performance-workspace" value="${eclipse-home}/performance-workspace-platform-ui"/>
-    <delete dir="${performance-workspace}" quiet="true"/>
-  	<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${performance-workspace}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" value="org.eclipse.ui.tests.performance.UIPerformanceTestSuite"/>
-    </ant>
-  </target>
-
-	<target name="jface-performance-suite">
-	  	<property name="performance-workspace-jface" value="${eclipse-home}/performance-workspace-platform-jface"/>
-	    <delete dir="${performance-workspace-jface}" quiet="true"/>
-	  	<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-	      <property name="data-dir" value="${performance-workspace-jface}"/>
-	      <property name="plugin-name" value="${plugin-name}"/>
-	      <property name="classname" value="org.eclipse.jface.tests.performance.JFacePerformanceSuite"/>
-	    </ant>
-	  </target>
-	
-</project>
diff --git a/tests/org.eclipse.ui.tests.rcp/.classpath b/tests/org.eclipse.ui.tests.rcp/.classpath
deleted file mode 100644
index 1f84474..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse RCP Tests"/>
-	<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/tests/org.eclipse.ui.tests.rcp/.cvsignore b/tests/org.eclipse.ui.tests.rcp/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/tests/org.eclipse.ui.tests.rcp/.project b/tests/org.eclipse.ui.tests.rcp/.project
deleted file mode 100644
index 7f8ff02..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.project
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.rcp</name>
-	<comment></comment>
-	<projects>
-		<project>org.eclipse.core.resources</project>
-		<project>org.eclipse.ui</project>
-		<project>org.junit</project>
-	</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/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 81b36c6..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Fri Mar 03 16:43:22 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-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=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index b29eacb..0000000
--- a/tests/org.eclipse.ui.tests.rcp/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 09:00:08 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.3\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/ActionBarConfigurerTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/ActionBarConfigurerTest.java
deleted file mode 100644
index 4d1fcc4..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/ActionBarConfigurerTest.java
+++ /dev/null
@@ -1,61 +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.tests.rcp;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class ActionBarConfigurerTest extends TestCase {
-
-    public ActionBarConfigurerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-        super.tearDown();
-    }
-
-    public void testDefaults() {
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-
-            public void fillActionBars(IWorkbenchWindow window,
-                    IActionBarConfigurer actionBarConfig, int flags) {
-                super.fillActionBars(window, actionBarConfig, flags);
-
-                assertNotNull(actionBarConfig.getMenuManager());
-                assertNotNull(actionBarConfig.getStatusLineManager());
-                assertNotNull(actionBarConfig.getCoolBarManager());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/IWorkbenchPageTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/IWorkbenchPageTest.java
deleted file mode 100644
index 189680c..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/IWorkbenchPageTest.java
+++ /dev/null
@@ -1,83 +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.tests.rcp;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.EmptyView;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-/**
- * Tests the behaviour of various IWorkbenchPage methods under different
- * workbench configurations.
- */
-public class IWorkbenchPageTest extends TestCase {
-
-    public IWorkbenchPageTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    /**
-     * Regression test for Bug 70080 [RCP] Reset Perspective does not work if no
-     * perspective toolbar shown (RCP).
-     */
-    public void test70080() {
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-
-            public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-                super.preWindowOpen(configurer);
-                configurer.setShowPerspectiveBar(false);
-            }
-
-            public void postStartup() {
-                try {
-                    IWorkbenchWindow window = getWorkbenchConfigurer()
-                            .getWorkbench().getActiveWorkbenchWindow();
-                    IWorkbenchPage page = window.getActivePage();
-                    page.showView(EmptyView.ID);
-                    assertNotNull(page.findView(EmptyView.ID));
-                    page.resetPerspective();
-                    assertNull(page.findView(EmptyView.ID));
-                } catch (PartInitException e) {
-                    fail(e.toString());
-                }
-            }
-        };
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java
deleted file mode 100644
index b5c33ac..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/PlatformUITest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class PlatformUITest extends TestCase {
-
-    public PlatformUITest(String testName) {
-        super(testName);
-    }
-
-    /** Make sure workbench is not returned before it is running. */
-    public void testEarlyGetWorkbench() {
-        assertFalse(PlatformUI.isWorkbenchRunning());
-        try {
-            PlatformUI.getWorkbench();
-            fail("Exception should have been thrown."); //$NON-NLS-1$
-        } catch (IllegalStateException e) {
-            // do nothing
-        }
-    }
-
-    public void testCreateDisplay() {
-        Display disp = PlatformUI.createDisplay();
-        assertNotNull(disp);
-        assertFalse(disp.isDisposed());
-        disp.dispose();
-        assertTrue(disp.isDisposed());
-    }
-
-    public void testCreateAndRunWorkbench() {
-        final Display display = PlatformUI.createDisplay();
-        assertNotNull(display);
-
-        CheckForWorkbench wa = new CheckForWorkbench(2);
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-        assertTrue(wa.checkComplete);
-        display.dispose();
-        assertTrue(display.isDisposed());
-    }
-    
-    /**
-     * Tests that, if an exception occurs on startup, the workbench returns RETURN_UNSTARTABLE 
-     * and PlatformUI.isWorkbenchRunning() returns false. 
-     * Regression test for bug 82286.
-     */
-    public void testCreateAndRunWorkbenchWithExceptionOnStartup() {
-        final Display display = PlatformUI.createDisplay();
-        assertNotNull(display);
-
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-            public void preStartup() {
-                throw new IllegalArgumentException("Thrown deliberately by PlatformUITest");
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_UNSTARTABLE, code);
-        assertFalse(PlatformUI.isWorkbenchRunning());
-        display.dispose();
-        assertTrue(display.isDisposed());
-    }
-    
-    public void testStartupThreading() {
-		assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.asyncDuringStartup);
-
-		assertEquals(
-				"Async run during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.FALSE,
-				RCPTestWorkbenchAdvisor.asyncDuringStartup);
-	}
-    // the following four methods test the various combinations of Thread +
-	// DisplayAccess + a/sync exec. Anything without a call to DisplayAccess
-	// should be deferred until after startup.
-    public void testDisplayAccess_sync() {
-    	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
-
-		assertEquals(
-				"Sync from qualified thread did not run during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.TRUE,
-				RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
-    }
-    
-    public void testDisplayAccess_async() {    
-    	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
-    	
-    	assertEquals(
-				"Async from qualified thread did not run during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.TRUE,
-				RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
-    }
-    
-    public void testWithoutDisplayAccess_sync() {
-    	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
-    	
-		assertEquals(
-				"Sync from un-qualified thread ran during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.FALSE,
-				RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
-    }
-    
-    public void testWithoutDisplayAccess_async() { 
-       	assertNotNull(
-				"No display during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
-       	
-       	assertEquals(
-				"Async from un-qualified thread ran during startup.  See RCPTestWorkbenchAdvisor.preStartup()",
-				Boolean.FALSE,
-				RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
-    }
-    
-    public void testDisplayAccessInUIThreadAllowed() {
-		assertFalse(
-				"DisplayAccess.accessDisplayDuringStartup() in UI thread did not result in exception.",
-				RCPTestWorkbenchAdvisor.displayAccessInUIThreadAllowed);
-	}
-}
-
-class CheckForWorkbench extends WorkbenchAdvisorObserver {
-
-    public boolean checkComplete = false;
-
-    public CheckForWorkbench(int idleBeforeExit) {
-        super(idleBeforeExit);
-    }
-
-    public void eventLoopIdle(Display display) {
-        super.eventLoopIdle(display);
-
-        if (checkComplete)
-            return;
-
-        Assert.assertNotNull(PlatformUI.getWorkbench());
-        checkComplete = true;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java
deleted file mode 100644
index 4a68702..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java
+++ /dev/null
@@ -1,38 +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.tests.rcp;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The test suite for the RCP APIs in the generic workbench.
- * To run, use a headless JUnit Plug-in Test launcher, configured
- * to have [No Application] as its application. 
- */
-public class RcpTestSuite extends TestSuite {
-
-    /** Returns the suite. This is required to use the JUnit Launcher. */
-    public static Test suite() {
-        return new RcpTestSuite();
-    }
-
-    public RcpTestSuite() {
-        addTest(new TestSuite(PlatformUITest.class));
-        addTest(new TestSuite(WorkbenchAdvisorTest.class));
-        addTest(new TestSuite(WorkbenchConfigurerTest.class));
-        addTest(new TestSuite(WorkbenchWindowConfigurerTest.class));
-        addTest(new TestSuite(ActionBarConfigurerTest.class));
-        addTest(new TestSuite(IWorkbenchPageTest.class));
-        addTest(new TestSuite(WorkbenchSaveRestoreStateTest.class));
-        addTest(new TestSuite(WorkbenchListenerTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchAdvisorTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchAdvisorTest.java
deleted file mode 100644
index f7f5893..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchAdvisorTest.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.internal.progress.ProgressManagerUtil;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class WorkbenchAdvisorTest extends TestCase {
-
-      public WorkbenchAdvisorTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    /**
-     * The workbench should be created before any of the advisor's life cycle
-     * methods are called. #initialize is the first one called, so check that
-     * the workbench has been been created by then.
-     */
-    public void testEarlyGetWorkbench() {
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-
-            public void initialize(IWorkbenchConfigurer configurer) {
-                super.initialize(configurer);
-                assertNotNull(PlatformUI.getWorkbench());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-    public void testTwoDisplays() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1);
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-
-        WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1);
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-    }
-
-    public void testTrivialOpenClose() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-
-            private boolean windowOpenCalled = false;
-
-            private boolean windowCloseCalled = false;
-
-            public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.getWorkbench().addWindowListener(new IWindowListener() {
-
-                    public void windowActivated(IWorkbenchWindow window) {
-                        // do nothing
-                    }
-
-                    public void windowDeactivated(IWorkbenchWindow window) {
-                        // do nothing
-                    }
-
-                    public void windowClosed(IWorkbenchWindow window) {
-                        windowCloseCalled = true;
-                    }
-
-                    public void windowOpened(IWorkbenchWindow window) {
-                        windowOpenCalled = true;
-                    }
-                });
-            }
-
-            public void preWindowOpen(IWorkbenchWindowConfigurer c) {
-                assertFalse(windowOpenCalled);
-                super.preWindowOpen(c);
-            }
-
-            public void postWindowOpen(IWorkbenchWindowConfigurer c) {
-                assertTrue(windowOpenCalled);
-                super.postWindowOpen(c);
-            }
-
-            public boolean preWindowShellClose(IWorkbenchWindowConfigurer c) {
-                assertFalse(windowCloseCalled);
-                return super.preWindowShellClose(c);
-            }
-
-            public void postWindowClose(IWorkbenchWindowConfigurer c) {
-				// Commented out since postWindowClose seems to be called before IWindowListener.windowClosed(IWorkbenchWindow)
-				// assertTrue(windowCloseCalled);
-                super.postWindowClose(c);
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-
-        wa.resetOperationIterator();
-        wa.assertNextOperation(WorkbenchAdvisorObserver.INITIALIZE);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_STARTUP);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_WINDOW_OPEN);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.FILL_ACTION_BARS);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_WINDOW_OPEN);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_STARTUP);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_SHUTDOWN);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_SHUTDOWN);
-        wa.assertAllOperationsExamined();
-    }
-
-    public void testTrivialRestoreClose() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-
-            public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        display = PlatformUI.createDisplay();
-        WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-
-            public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-
-        wa2.resetOperationIterator();
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.INITIALIZE);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.PRE_STARTUP);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.PRE_WINDOW_OPEN);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.FILL_ACTION_BARS);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.POST_WINDOW_RESTORE);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.POST_WINDOW_OPEN);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.POST_STARTUP);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.PRE_SHUTDOWN);
-        wa2.assertNextOperation(WorkbenchAdvisorObserver.POST_SHUTDOWN);
-        wa2.assertAllOperationsExamined();
-    }
-
-    /**
-     * The WorkbenchAdvisor comment for #postStartup says it is ok to close
-     * things from in there.
-     */
-    public void testCloseFromPostStartup() {
-
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-            public void postStartup() {
-                super.postStartup();
-                assertTrue(PlatformUI.getWorkbench().close());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-
-        wa.resetOperationIterator();
-        wa.assertNextOperation(WorkbenchAdvisorObserver.INITIALIZE);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_STARTUP);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_WINDOW_OPEN);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.FILL_ACTION_BARS);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_WINDOW_OPEN);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_STARTUP);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_SHUTDOWN);
-        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_SHUTDOWN);
-        wa.assertAllOperationsExamined();
-    }
-
-    public void testEventLoopCrash() {
-        WorkbenchAdvisorExceptionObserver wa = new WorkbenchAdvisorExceptionObserver();
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-        assertTrue(wa.exceptionCaught);
-    }
-
-    public void testFillAllActionBar() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-
-            public void fillActionBars(IWorkbenchWindow window,
-                    IActionBarConfigurer configurer, int flags) {
-                super.fillActionBars(window, configurer, flags);
-
-                assertEquals(FILL_COOL_BAR, flags & FILL_COOL_BAR);
-                assertEquals(FILL_MENU_BAR, flags & FILL_MENU_BAR);
-                assertEquals(FILL_STATUS_LINE, flags & FILL_STATUS_LINE);
-                assertEquals(0, flags & FILL_PROXY);
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-	
-    public void testEmptyProgressRegion() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-			public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-				super.preWindowOpen(configurer);
-				configurer.setShowProgressIndicator(false);
-			}
-
-			public void postWindowOpen(IWorkbenchWindowConfigurer configurer) {
-				try {
-					ProgressManagerUtil.animateUp(new Rectangle(0, 0, 100, 50));
-				}
-				catch (NullPointerException e) {
-					// we shouldn't get here
-					assertTrue(false);
-				}
-			}
-				
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-//  testShellClose() is commented out because it was failing with the shells having already been disposed.
-//      It's unclear what this was really trying to test anyway.
-//
-//    public void testShellClose() {
-//        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver() {
-//
-//            public void eventLoopIdle(Display disp) {
-//                super.eventLoopIdle(disp);
-//
-//                Shell[] shells = disp.getShells();
-//                for (int i = 0; i < shells.length; ++i)
-//                    if (shells[i] != null)
-//                        shells[i].close();
-//            }
-//        };
-//
-//        int code = PlatformUI.createAndRunWorkbench(display, wa);
-//        assertEquals(PlatformUI.RETURN_OK, code);
-//
-//        wa.resetOperationIterator();
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.INITIALIZE);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_STARTUP);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_WINDOW_OPEN);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.FILL_ACTION_BARS);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_WINDOW_OPEN);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_STARTUP);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_WINDOW_SHELL_CLOSE);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.PRE_SHUTDOWN);
-//        wa.assertNextOperation(WorkbenchAdvisorObserver.POST_SHUTDOWN);
-//        wa.assertAllOperationsExamined();
-//    }
-}
-
-class WorkbenchAdvisorExceptionObserver extends WorkbenchAdvisorObserver {
-
-    public boolean exceptionCaught = false;
-
-    private RuntimeException runtimeException;
-
-    public WorkbenchAdvisorExceptionObserver() {
-        super(2);
-    }
-
-    // this is used to indicate when the event loop has started
-    public void eventLoopIdle(Display disp) {
-        super.eventLoopIdle(disp);
-
-        // only crash the loop one time
-        if (runtimeException != null)
-            return;
-
-        runtimeException = new RuntimeException();
-        throw runtimeException;
-    }
-
-    public void eventLoopException(Throwable exception) {
-        // *** Don't let the parent log the exception since it makes for
-        // confusing
-        //     test results.
-
-        exceptionCaught = true;
-        Assert.assertEquals(runtimeException, exception);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchConfigurerTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchConfigurerTest.java
deleted file mode 100644
index 90f8456..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchConfigurerTest.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class WorkbenchConfigurerTest extends TestCase {
-
-    public WorkbenchConfigurerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    public void testDefaults() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-
-            private IWorkbenchConfigurer configurer;
-
-            public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                configurer = c;
-
-                assertNotNull(c.getWorkbench());
-                assertFalse(c.getSaveAndRestore());
-                assertNotNull(c.getWorkbenchWindowManager());
-            }
-
-            public void postShutdown() {
-                super.postShutdown();
-
-                // *** This should be checked on all of the advisor callbacks
-                //     but assume that if its still set in the last one, then it
-                //     must have been set for all of them.
-                assertFalse(configurer.emergencyClosing());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-    public void testEmergencyClose() {
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(2) {
-
-            private IWorkbenchConfigurer configurer;
-
-            public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                configurer = c;
-
-                assertNotNull(c.getWorkbench());
-                assertFalse(c.getSaveAndRestore());
-                assertNotNull(c.getWorkbenchWindowManager());
-            }
-
-            // emergencyClose as soon as possible
-            public void eventLoopIdle(Display disp) {
-                super.eventLoopIdle(disp);
-                configurer.emergencyClose();
-            }
-
-            public void postShutdown() {
-                super.postShutdown();
-
-                // *** This should be checked on all of the advisor callbacks
-                //     but assume that if its still set in the last one, then it
-                //     must have been set for all of them.
-                assertTrue(configurer.emergencyClosing());
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_EMERGENCY_CLOSE, code);
-    }
-    
-
-	// tests to ensure that all WorkbenchAdvisor API is called from the UI thread.
-	public void testThreading() {
-		final ArrayList results = new ArrayList();
-		
-		WorkbenchAdvisor advisor = new RCPTestWorkbenchAdvisor(1) {
-
-			public void createWindowContents(
-					IWorkbenchWindowConfigurer configurer, Shell shell) {
-				ensureThread();
-				super.createWindowContents(configurer, shell);
-			}
-
-			private void ensureThread() {
-				if (Display.getCurrent() != null)
-					return; 
-				
-				Exception e = new Exception();
-				e.fillInStackTrace();
-				results.add(e);
-			}
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-					IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				return super.createWorkbenchWindowAdvisor(configurer);
-			}
-
-			public void eventLoopException(Throwable exception) {
-				ensureThread();
-				super.eventLoopException(exception);
-			}
-
-			public void eventLoopIdle(Display display) {
-				ensureThread();
-				super.eventLoopIdle(display);
-			}
-
-			public void fillActionBars(IWorkbenchWindow window,
-					IActionBarConfigurer configurer, int flags) {
-				ensureThread();
-				super.fillActionBars(window, configurer, flags);
-			}
-
-			public IAdaptable getDefaultPageInput() {
-				ensureThread();
-				return super.getDefaultPageInput();
-			}
-
-			public String getMainPreferencePageId() {
-				ensureThread();
-				return super.getMainPreferencePageId();
-			}
-
-			protected IWorkbenchConfigurer getWorkbenchConfigurer() {
-				ensureThread();
-				return super.getWorkbenchConfigurer();
-			}
-
-			public void initialize(IWorkbenchConfigurer configurer) {
-				ensureThread();
-				super.initialize(configurer);
-			}
-
-			public boolean isApplicationMenu(
-					IWorkbenchWindowConfigurer configurer, String menuId) {
-				ensureThread();
-				return super.isApplicationMenu(configurer, menuId);
-			}
-
-			public void openIntro(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.openIntro(configurer);
-			}
-
-			public boolean openWindows() {
-				ensureThread();
-				return super.openWindows();
-			}
-
-			public void postShutdown() {
-				ensureThread();
-				super.postShutdown();
-			}
-
-			public void postStartup() {
-				ensureThread();
-				super.postStartup();
-			}
-
-			public void postWindowClose(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.postWindowClose(configurer);
-			}
-
-			public void postWindowCreate(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.postWindowCreate(configurer);
-			}
-
-			public void postWindowOpen(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.postWindowOpen(configurer);
-			}
-
-			public void postWindowRestore(IWorkbenchWindowConfigurer configurer)
-					throws WorkbenchException {
-				ensureThread();
-				super.postWindowRestore(configurer);
-			}
-
-			public boolean preShutdown() {
-				ensureThread();
-				return super.preShutdown();
-			}
-
-			public void preStartup() {
-				ensureThread();
-				super.preStartup();
-			}
-
-			public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				super.preWindowOpen(configurer);
-			}
-
-			public boolean preWindowShellClose(
-					IWorkbenchWindowConfigurer configurer) {
-				ensureThread();
-				return super.preWindowShellClose(configurer);
-			}
-
-			public IStatus restoreState(IMemento memento) {
-				ensureThread();
-				return super.restoreState(memento);
-			}
-
-			public IStatus saveState(IMemento memento) {
-				ensureThread();
-				return super.saveState(memento);
-			}
-
-			public String getInitialWindowPerspectiveId() {
-				//ensureThread();
-				return null;
-			}};
-			
-		int code = PlatformUI.createAndRunWorkbench(display, advisor);
-		assertEquals(PlatformUI.RETURN_OK, code);
-		
-		if (!results.isEmpty()) {
-			StringBuffer buffer = new StringBuffer("Advisor methods called from non-UI threads:\n");
-			int count=0;
-			for (Iterator i = results.iterator(); i.hasNext();) {
-				Exception e = (Exception) i.next();
-				StackTraceElement [] stack = e.getStackTrace();
-				buffer.append("Failure ").append(++count).append('\n');
-				for (int j = 1; j < Math.min(stack.length, 10); j++) {
-					StackTraceElement stackTraceElement = stack[j];
-					buffer.append(stackTraceElement.getClassName()).append('.')
-							.append(stackTraceElement.getMethodName()).append(
-									":").append(
-									stackTraceElement.getLineNumber()).append(
-									'\n');
-				}
-			}
-			fail(buffer.toString());
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchListenerTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchListenerTest.java
deleted file mode 100644
index 6181328..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchListenerTest.java
+++ /dev/null
@@ -1,88 +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.tests.rcp;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchListener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-/**
- * Tests for IWorkbenchListener API and implementation.
- */
-public class WorkbenchListenerTest extends TestCase {
-
-    public WorkbenchListenerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    /**
-     * Brings the workbench up and tries to shut it down twice, the first time with a veto
-     * from the IWorkbenchListener.  Tests for the correct sequence of notifications.
-     */
-    public void testPreAndPostShutdown() {
-    	final boolean[] proceed = new boolean[1];
-    	final List operations = new ArrayList();
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-        	public void postStartup() {
-        		IWorkbench workbench = getWorkbenchConfigurer().getWorkbench();
-        		workbench.addWorkbenchListener(new IWorkbenchListener() {
-					public boolean preShutdown(IWorkbench workbench, boolean forced) {
-						operations.add(PRE_SHUTDOWN);
-						return proceed[0];
-					}
-					public void postShutdown(IWorkbench workbench) {
-						operations.add(POST_SHUTDOWN);
-					}
-				});
-        		proceed[0] = false;
-        		assertEquals(false, workbench.close());
-        		proceed[0] = true;
-        		assertEquals(true, workbench.close());
-        	}
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-
-        assertEquals(3, operations.size());
-        assertEquals(WorkbenchAdvisorObserver.PRE_SHUTDOWN, operations.get(0));
-        assertEquals(WorkbenchAdvisorObserver.PRE_SHUTDOWN, operations.get(1));
-        assertEquals(WorkbenchAdvisorObserver.POST_SHUTDOWN, operations.get(2));
-    }
-
-    
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchSaveRestoreStateTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchSaveRestoreStateTest.java
deleted file mode 100644
index 4a8904e..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchSaveRestoreStateTest.java
+++ /dev/null
@@ -1,371 +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.tests.rcp;
-
-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.io.UnsupportedEncodingException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.internal.UIPlugin;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class WorkbenchSaveRestoreStateTest extends TestCase {
-	
-	private static final String ADVISOR_STATE_KEY = "advisorStateKey";
-	private static final String WINDOW_ADVISOR_STATE_KEY = "windowAdvisorStateKey";
-	private static final String ACTIONBAR_ADVISOR_STATE_KEY = "actionBarAdvisorStateKey";
-	
-    public WorkbenchSaveRestoreStateTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-		display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-	/**
-	 * Test save/restore state lifecycle API for WorkbenchAdvisor
-	 */
-	public void testSaveRestoreAdvisorState() {		
-		final String advisorStateData = Long.toString(System.currentTimeMillis());
-		
-		// launch workbench and save some state data
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-		
-			public IStatus saveState (IMemento memento) {
-				assertNotNull(memento);
-				memento.putString(ADVISOR_STATE_KEY, advisorStateData);
-				return super.saveState(memento);
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and check for state data
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-
-			public IStatus restoreState(IMemento memento) {
-				assertNotNull(memento);
-				String stateData = memento.getString(ADVISOR_STATE_KEY);
-				assertNotNull(stateData);
-				assertTrue(advisorStateData.equals(stateData));
-				return super.restoreState(memento);
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-	
-	/**
-	 * Test save/restore state lifecycle API for WorkbenchWindowAdvisor
-	 */
-	public void testSaveRestoreWindowState() {
-		final String advisorStateData = Long.toString(System.currentTimeMillis());
-		
-		// launch workbench and save some state data
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-			
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public IStatus saveState(IMemento memento) {
-						assertNotNull(memento);
-						memento.putString(WINDOW_ADVISOR_STATE_KEY, advisorStateData);
-						return super.saveState(memento);
-					}
-				};
-			}
-
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and check for state data
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public IStatus restoreState(IMemento memento) {
-						assertNotNull(memento);
-						String stateData = memento.getString(WINDOW_ADVISOR_STATE_KEY);
-						assertNotNull(stateData);
-						assertTrue(advisorStateData.equals(stateData));
-						return super.restoreState(memento);
-					}
-				};
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-	
-	/**
-	 * Test save/restore state lifecycle API for WorkbenchWindowAdvisor
-	 */
-	public void testSaveRestoreActionBarState() {
-		final String advisorStateData = Long.toString(System.currentTimeMillis());
-		
-		// launch workbench and save some state data
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-			
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer1) {
-						return new ActionBarAdvisor(configurer1) {
-							public IStatus saveState(IMemento memento) {
-								assertNotNull(memento);
-								memento.putString(ACTIONBAR_ADVISOR_STATE_KEY, advisorStateData);
-								return super.saveState(memento);
-							}
-						};
-					}
-				};
-			}
-
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and check for state data
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer1) {
-						return new ActionBarAdvisor(configurer1) {
-							public IStatus restoreState(IMemento memento) {
-								assertNotNull(memento);
-								String stateData = memento.getString(ACTIONBAR_ADVISOR_STATE_KEY);
-								assertNotNull(stateData);
-								assertTrue(advisorStateData.equals(stateData));
-								return super.restoreState(memento);
-							}
-						};
-					}
-				};
-			}
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-	
-	/**
-	 * Test on-demand save/restore state API 
-	 */
-	public void testOnDemandSaveRestoreState() {
-		
-		// save some window state on demand
-        WorkbenchAdvisorObserver wa = new WorkbenchAdvisorObserver(1) {
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-
-            public void eventLoopIdle(Display d) {
-                workbenchConfig.getWorkbench().restart();
-            }
-			
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-				return new WorkbenchWindowAdvisor(configurer) {
-					public void postWindowOpen() {
-						File stateLocation = getStateFileLocation();
-						ensureDirectoryExists(stateLocation);
-						String stateFileName = stateLocation.getPath() + File.separator + "testOnDemandSaveRestoreState.xml";
-							
-					    OutputStreamWriter writer = null;
-				        try {
-				            writer = new OutputStreamWriter(new FileOutputStream(stateFileName),"UTF-8");
-				            
-				        } catch (UnsupportedEncodingException e1) {
-				            // not possible, UTF-8 is required to be implemented by all JVMs
-				        } catch (FileNotFoundException e1) {
-				            // creating a new file, won't happen  unless the path eclipse 
-							// specifies is totally wrong, or its read-only
-				        }
-							
-				        XMLMemento xmlm = XMLMemento.createWriteRoot("TestState");
-						saveState(xmlm);
-				        
-				        try {
-				            xmlm.save(writer);
-				            writer.close();
-				        } catch (IOException e) {
-							e.printStackTrace();
-				        }
-					}					
-				};
-			}
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-		// restore the workbench and restore a window 
-		// with state data on demand
-        display = PlatformUI.createDisplay();		
-		WorkbenchAdvisorObserver wa2 = new WorkbenchAdvisorObserver(1) {
-			
-			public void initialize(IWorkbenchConfigurer c) {
-                super.initialize(c);
-                c.setSaveAndRestore(true);
-            }
-			
-			public boolean openWindows() {
-				File stateLocation = getStateFileLocation();
-		        String stateFileName = "testOnDemandSaveRestoreState.xml";
-		        File stateFile = new File(stateLocation.getPath() + File.separator + stateFileName);
-		        assertTrue(stateFile.exists());
-	            
-				IMemento memento = null;
-		        try {
-					memento = XMLMemento.createReadRoot( new InputStreamReader (
-							new FileInputStream(stateFile),"UTF-8"));
-		        } catch (WorkbenchException e) {
-		            e.printStackTrace();
-		        } catch (FileNotFoundException e) {
-		            // won't happen because we already checked it exists
-		        } catch (UnsupportedEncodingException e) {
-		           // not possible - UTF8 is required
-		        }
-				
-				assertNotNull(memento);
-				IWorkbenchWindowConfigurer window = null;
-				try {
-					window = getWorkbenchConfigurer().restoreWorkbenchWindow(memento);	
-				} catch (WorkbenchException e) {
-					e.printStackTrace();
-				}
-				assertNotNull(window);
-				return true;
-			}
-
-			public void postWindowRestore(IWorkbenchWindowConfigurer configurer) throws WorkbenchException {
-				// TODO Auto-generated method stub
-				super.postWindowRestore(configurer);
-			}
-        };
-
-        int code2 = PlatformUI.createAndRunWorkbench(display, wa2);
-        assertEquals(PlatformUI.RETURN_OK, code2);
-	}
-			
-	private File getStateFileLocation() {
-	    IPath path = UIPlugin.getDefault().getStateLocation();
-	    StringBuffer fileName = new StringBuffer();
-	    fileName.append(File.separator);
-	    fileName.append("TestWorkbenchState");
-	    fileName.append(File.separator);
-		
-	    File stateLocation = path.append(fileName.toString()).toFile();		
-	    ensureDirectoryExists(stateLocation);
-		
-		return stateLocation;
-	}
-	
-	private void ensureDirectoryExists(File directory) {
-	    directory.mkdirs();
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.java
deleted file mode 100644
index d9dca9e..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/WorkbenchWindowConfigurerTest.java
+++ /dev/null
@@ -1,347 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-public class WorkbenchWindowConfigurerTest extends TestCase {
-
-    public WorkbenchWindowConfigurerTest(String name) {
-        super(name);
-    }
-
-    private Display display = null;
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        assertNull(display);
-        display = PlatformUI.createDisplay();
-        assertNotNull(display);
-    }
-
-    protected void tearDown() throws Exception {
-        assertNotNull(display);
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        super.tearDown();
-    }
-
-    public void testDefaults() {
-        WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-
-            public void fillActionBars(IWorkbenchWindow window,
-                    IActionBarConfigurer actionBarConfig, int flags) {
-                super.fillActionBars(window, actionBarConfig, flags);
-
-                String tempTitle = "title"; //$NON-NLS-1$
-
-                IWorkbenchWindowConfigurer windowConfig = workbenchConfig
-                        .getWindowConfigurer(window);
-                assertNotNull(windowConfig);
-
-                assertEquals(window, windowConfig.getWindow());
-                assertEquals(workbenchConfig, windowConfig
-                        .getWorkbenchConfigurer());
-                assertEquals(actionBarConfig, windowConfig
-                        .getActionBarConfigurer());
-                assertNotNull(windowConfig.getTitle());
-                assertTrue(windowConfig.getShowCoolBar());
-                assertTrue(windowConfig.getShowMenuBar());
-                assertFalse(windowConfig.getShowPerspectiveBar());
-                assertTrue(windowConfig.getShowStatusLine());
-
-                windowConfig.setTitle(tempTitle);
-                windowConfig.setShowCoolBar(false);
-                windowConfig.setShowMenuBar(false);
-                windowConfig.setShowPerspectiveBar(true);
-                windowConfig.setShowStatusLine(false);
-                assertEquals(tempTitle, windowConfig.getTitle());
-                assertFalse(windowConfig.getShowCoolBar());
-                assertFalse(windowConfig.getShowMenuBar());
-                assertTrue(windowConfig.getShowPerspectiveBar());
-                assertFalse(windowConfig.getShowStatusLine());
-
-                // *** title is orginally null, but cannot set it back to null,
-                // should that
-                //     check be allowed?
-                windowConfig.setTitle("");//$NON-NLS-1$
-                windowConfig.setShowCoolBar(true);
-                windowConfig.setShowMenuBar(true);
-                windowConfig.setShowPerspectiveBar(false);
-                windowConfig.setShowStatusLine(true);
-            }
-        };
-
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_OK, code);
-    }
-
-	public void test104558_T_T() throws Throwable {
-		doTest104558(true, true);
-	}
-	
-	public void test104558_F_T() throws Throwable {
-		doTest104558(false, true);
-	}
-	
-	public void test104558_T_F() throws Throwable {
-		doTest104558(true, false);
-	}
-	
-	public void test104558_F_F() throws Throwable {
-		doTest104558(false, false);
-	}
-
-	private void doTest104558(final boolean showPerspectiveBar, final boolean showCoolBar) {
-		WorkbenchAdvisor wa = new WorkbenchAdvisorObserver(1) {
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-					IWorkbenchWindowConfigurer workbenchWindowConfigurer) {
-				return new WorkbenchWindowAdvisor(workbenchWindowConfigurer) {
-					public void preWindowOpen() {
-						super.preWindowOpen();
-						getWindowConfigurer().setShowCoolBar(showCoolBar);
-						getWindowConfigurer().setShowPerspectiveBar(showPerspectiveBar);
-					}
-					public void createWindowContents(Shell shell) {
-						IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
-						configurer.createPageComposite(shell);
-					}
-				};
-			}
-			
-			public void eventLoopIdle(Display disp) {
-				IWorkbenchWindow activeWorkbenchWindow = getWorkbenchConfigurer()
-						.getWorkbench().getActiveWorkbenchWindow();
-				assertEquals("testing showCoolBar=" + showCoolBar, showCoolBar, ((WorkbenchWindow)activeWorkbenchWindow).getCoolBarVisible());
-				assertEquals("testing showPerspectiveBar=" + showPerspectiveBar, showPerspectiveBar, ((WorkbenchWindow)activeWorkbenchWindow).getPerspectiveBarVisible());
-				super.eventLoopIdle(disp);
-			}
-			
-			public void eventLoopException(Throwable exception) {
-				throw new RuntimeException(exception);
-			}
-		};
-	
-		int code = PlatformUI.createAndRunWorkbench(display, wa);
-		assertEquals(PlatformUI.RETURN_OK, code);
-	}
-	
-
-	// tests to ensure that all WorkbenchAdvisor API is called from the UI thread.
-	public void testThreading() {
-		final ArrayList results = new ArrayList();
-		
-		WorkbenchAdvisor advisor = new RCPTestWorkbenchAdvisor(1) {
-
-			public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(
-					IWorkbenchWindowConfigurer configurer) {
-				WorkbenchWindowAdvisor advisor = new WorkbenchWindowAdvisor(configurer) {
-
-					private void ensureThread() {
-						if (Display.getCurrent() != null)
-							return; 
-						
-						Exception e = new Exception();
-						e.fillInStackTrace();
-						StackTraceElement element = e.getStackTrace()[1];
-						results.add(element.getClassName() + '.' + element.getMethodName());
-					}
-					
-					public ActionBarAdvisor createActionBarAdvisor(
-							IActionBarConfigurer configurer) {
-						ensureThread();
-						
-						ActionBarAdvisor advisor = new ActionBarAdvisor(configurer) {
-
-							public void dispose() {
-								ensureThread();
-								super.dispose();
-							}
-
-							protected void disposeAction(IAction action) {
-								ensureThread();
-								super.disposeAction(action);
-							}
-
-							protected void disposeActions() {
-								ensureThread();
-								super.disposeActions();
-							}
-
-							public void fillActionBars(int flags) {
-								ensureThread();
-								super.fillActionBars(flags);
-							}
-
-							protected void fillCoolBar(ICoolBarManager coolBar) {
-								ensureThread();
-								super.fillCoolBar(coolBar);
-							}
-
-							protected void fillMenuBar(IMenuManager menuBar) {
-								ensureThread();
-								super.fillMenuBar(menuBar);
-							}
-
-							protected void fillStatusLine(
-									IStatusLineManager statusLine) {
-								ensureThread();
-								super.fillStatusLine(statusLine);
-							}
-
-							protected IAction getAction(String id) {
-								ensureThread();
-								return super.getAction(id);
-							}
-
-							protected IActionBarConfigurer getActionBarConfigurer() {
-								ensureThread();
-								return super.getActionBarConfigurer();
-							}
-
-							public boolean isApplicationMenu(String menuId) {
-								ensureThread();
-								return super.isApplicationMenu(menuId);
-							}
-
-							protected void makeActions(IWorkbenchWindow window) {
-								ensureThread();
-								super.makeActions(window);
-							}
-
-							protected void register(IAction action) {
-								ensureThread();
-								super.register(action);
-							}
-
-							public IStatus restoreState(IMemento memento) {
-								ensureThread();
-								return super.restoreState(memento);
-							}
-
-							public IStatus saveState(IMemento memento) {
-								ensureThread();
-								return super.saveState(memento);
-							}};
-						return advisor;
-					}
-
-					public Control createEmptyWindowContents(Composite parent) {
-						ensureThread();
-						return super.createEmptyWindowContents(parent);
-					}
-
-					public void createWindowContents(Shell shell) {
-						ensureThread();
-						super.createWindowContents(shell);
-					}
-
-					public void dispose() {
-						ensureThread();
-						super.dispose();
-					}
-
-					protected IWorkbenchWindowConfigurer getWindowConfigurer() {
-						ensureThread();
-						return super.getWindowConfigurer();
-					}
-
-					public void openIntro() {
-						ensureThread();
-						super.openIntro();
-					}
-
-					public void postWindowClose() {
-						ensureThread();
-						super.postWindowClose();
-					}
-
-					public void postWindowCreate() {
-						ensureThread();
-						super.postWindowCreate();
-					}
-
-					public void postWindowOpen() {
-						ensureThread();
-						super.postWindowOpen();
-					}
-
-					public void postWindowRestore() throws WorkbenchException {
-						ensureThread();
-						super.postWindowRestore();
-					}
-
-					public void preWindowOpen() {
-						ensureThread();
-						super.preWindowOpen();
-					}
-
-					public boolean preWindowShellClose() {
-						ensureThread();
-						return super.preWindowShellClose();
-					}
-
-					public IStatus restoreState(IMemento memento) {
-						ensureThread();
-						return super.restoreState(memento);
-					}
-
-					public IStatus saveState(IMemento memento) {
-						ensureThread();
-						return super.saveState(memento);
-					}
-					
-				};
-				return advisor;
-			}
-		};
-			
-		int code = PlatformUI.createAndRunWorkbench(display, advisor);
-		assertEquals(PlatformUI.RETURN_OK, code);
-		
-		if (!results.isEmpty()) {
-			StringBuffer buffer = new StringBuffer("Window/action bar advisor methods called from non-UI threads:\n");
-			for (Iterator i = results.iterator(); i.hasNext();) {
-				String string = (String) i.next();
-				buffer.append(string).append('\n');
-			}
-			fail(buffer.toString());
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/EmptyWorkbenchPerfTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/EmptyWorkbenchPerfTest.java
deleted file mode 100644
index 1fb1cf6..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/EmptyWorkbenchPerfTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp.performance;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.test.performance.Dimension;
-import org.eclipse.test.performance.Performance;
-import org.eclipse.test.performance.PerformanceMeter;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.tests.rcp.util.OpenWorkbenchIntervalMonitor;
-import org.eclipse.ui.tests.rcp.util.RestoreWorkbenchIntervalMonitor;
-
-/**
- * @since 3.1
- */
-public class EmptyWorkbenchPerfTest extends PerformanceTestCase {
-
-    private static final int REPEAT_COUNT = 25;
-
-    public void testOpen() {
-        Display display = PlatformUI.createDisplay();
-        Performance perf = Performance.getDefault();
-        String baseScenarioId = perf.getDefaultScenarioId(this);
-        PerformanceMeter startupMeter = perf.createPerformanceMeter( baseScenarioId + " [open]"); 
-        PerformanceMeter shutdownMeter = perf.createPerformanceMeter( baseScenarioId + " [close]"); 
-
-        tagAsSummary("Open RCP App", Dimension.CPU_TIME);
-        for (int i = 0; i < REPEAT_COUNT; ++i ) {
-        	startupMeter.start();
-            int code = PlatformUI.createAndRunWorkbench(display,
-            		new OpenWorkbenchIntervalMonitor(startupMeter, shutdownMeter));
-            shutdownMeter.stop();
-            assertEquals(PlatformUI.RETURN_OK, code);
-        }
-
-        display.dispose();
-        assertTrue(display.isDisposed());
-        startupMeter.commit();
-        perf.assertPerformance(startupMeter);
-        
-        // The shutdown timer is currently < 50ms on all test machine. Due to the granularity of timers
-        // and inherent Java variability, values below 100ms usually can not be interpreted.
-        // Rather, check for the absolute value to be below threshold of 120ms.
-        // If the test goes above it, it probably needs to be investigated.
-        perf.assertPerformanceInAbsoluteBand(shutdownMeter, Dimension.CPU_TIME, 0, 120);
-        
-    	startupMeter.dispose();
-    	shutdownMeter.dispose();
-    }
-
-    public void testRestore() {
-        Display display = PlatformUI.createDisplay();
-        Performance perf = Performance.getDefault();
-        String baseScenarioId = perf.getDefaultScenarioId(this);
-        PerformanceMeter startupMeter = perf.createPerformanceMeter( baseScenarioId + " [open]"); 
-        PerformanceMeter shutdownMeter = perf.createPerformanceMeter( baseScenarioId + " [close]");
-        
-        // create an advisor that will just start the workbench long enough to create
-        // something to be restored later
-        PerformanceMeter startupMeter0 = perf.createPerformanceMeter( baseScenarioId + " [0][open]"); 
-        PerformanceMeter shutdownMeter0 = perf.createPerformanceMeter( baseScenarioId + " [0][close]");
-        WorkbenchAdvisor wa = new RestoreWorkbenchIntervalMonitor(startupMeter0, shutdownMeter0, true);
-        int code = PlatformUI.createAndRunWorkbench(display, wa);
-        assertEquals(PlatformUI.RETURN_RESTART, code);
-        assertFalse(display.isDisposed());
-    	startupMeter0.dispose();
-    	shutdownMeter0.dispose();
-       
-        tagAsSummary("Restore RCP App", Dimension.CPU_TIME);
-        
-        // the rest is a bunch of code to restore the workbench and monitor performance
-        // while doing so
-        for (int i = 0; i < REPEAT_COUNT; ++i ) {
-        	startupMeter.start();
-            code = PlatformUI.createAndRunWorkbench(display,
-                    new RestoreWorkbenchIntervalMonitor(startupMeter, shutdownMeter, false));
-            shutdownMeter.stop();
-            assertEquals(PlatformUI.RETURN_OK, code);
-        }
-        
-        display.dispose();
-        assertTrue(display.isDisposed());
-        
-        startupMeter.commit();
-        perf.assertPerformance(startupMeter);
-        
-        // The shutdown timer is currently < 50ms on all test machine. Due to the granularity of timers
-        // and inherit Java variability, values below 100ms usually can not be interpreted.
-        // Rather, check for the absolute value to be below threshold of 120ms.
-        // If the test goes above it, it probably needs to be investigated.
-        perf.assertPerformanceInAbsoluteBand(shutdownMeter, Dimension.CPU_TIME, 0, 120);
-        
-    	startupMeter.dispose();
-    	shutdownMeter.dispose();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/PlatformUIPerfTest.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/PlatformUIPerfTest.java
deleted file mode 100644
index 1e38cd8..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/PlatformUIPerfTest.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.tests.rcp.performance;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.test.performance.PerformanceTestCase;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.rcp.util.WorkbenchAdvisorObserver;
-
-/**
- * @since 3.1
- */
-public class PlatformUIPerfTest extends PerformanceTestCase {
-
-    public void testCreateAndDisposeDisplayX100() {
-        for (int i = 0; i < 10; ++i ) {
-            startMeasuring();
-            for (int j = 0; j < 100; ++j) {
-            	Display display = PlatformUI.createDisplay();
-                display.dispose();
-                assertTrue(display.isDisposed());
-            }
-            stopMeasuring();
-        }
-
-        commitMeasurements();
-        assertPerformance();
-    }
-
-    public void testRunAndShutdownWorkbench() {
-        Display display = PlatformUI.createDisplay();
-
-        for (int i = 0; i < 10; ++i ) {
-            startMeasuring();
-            int code = PlatformUI.createAndRunWorkbench(display, new WorkbenchAdvisorObserver(2));
-            stopMeasuring();
-
-            assertEquals(PlatformUI.RETURN_OK, code);
-        }
-
-        display.dispose();
-        assertTrue(display.isDisposed());
-
-        commitMeasurements();
-        assertPerformance();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSetup.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSetup.java
deleted file mode 100644
index 2fc03da..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSetup.java
+++ /dev/null
@@ -1,25 +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.tests.rcp.performance;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-
-/**
- * @since 3.1
- */
-public class RCPPerformanceTestSetup extends TestSetup {
-
-	public RCPPerformanceTestSetup(Test test) {
-		super(test);
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSuite.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSuite.java
deleted file mode 100644
index 583ca97..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/performance/RCPPerformanceTestSuite.java
+++ /dev/null
@@ -1,35 +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.tests.rcp.performance;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.1
- */
-public class RCPPerformanceTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-    	return new RCPPerformanceTestSetup(new RCPPerformanceTestSuite());
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public RCPPerformanceTestSuite() {
-        addTestSuite(PlatformUIPerfTest.class);
-        addTestSuite(EmptyWorkbenchPerfTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyPerspective.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyPerspective.java
deleted file mode 100644
index d9e506b..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyPerspective.java
+++ /dev/null
@@ -1,51 +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.ui.tests.rcp.util;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api.  It defines an initial
- * layout with no parts, just an editor area.
- */
-public class EmptyPerspective implements IPerspectiveFactory {
-
-    /**
-     * The perspective id for the empty perspective.
-     */
-    public static final String PERSP_ID = "org.eclipse.ui.tests.rcp.util.EmptyPerspective"; //$NON-NLS-1$
-
-    /**
-     * Constructs a new Default layout engine.
-     */
-    public EmptyPerspective() {
-        super();
-    }
-
-    /**
-     * Defines the initial layout for a perspective.  
-     *
-     * Implementors of this method may add additional views to a
-     * perspective.  The perspective already contains an editor folder
-     * with <code>ID = ILayoutFactory.ID_EDITORS</code>.  Add additional views
-     * to the perspective in reference to the editor folder.
-     *
-     * This method is only called when a new perspective is created.  If
-     * an old perspective is restored from a persistence file then
-     * this method is not called.
-     *
-     * @param factory the factory used to add views to the perspective
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        // do nothing, this is the empty perspective
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyView.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyView.java
deleted file mode 100644
index 3de3969..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/EmptyView.java
+++ /dev/null
@@ -1,39 +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.tests.rcp.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Minimal view, for the RCP tests. 
- */
-public class EmptyView extends ViewPart {
-
-    public static final String ID = "org.eclipse.ui.tests.rcp.util.EmptyView"; //$NON-NLS-1$
-    
-    private Label label;
-    
-	public EmptyView() {
-	    // do nothing
-	}
-
-	public void createPartControl(Composite parent) {
-	    label = new Label(parent, SWT.NONE);
-	    label.setText("Empty view");
-	}
-
-	public void setFocus() {
-		label.setFocus();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/OpenWorkbenchIntervalMonitor.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/OpenWorkbenchIntervalMonitor.java
deleted file mode 100644
index 0f42a7c..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/OpenWorkbenchIntervalMonitor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp.util;
-
-import org.eclipse.test.performance.PerformanceMeter;
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-
-
-/**
- * This implementation of the workbench advisor tracks performance for the intervals between
- * lifecycle events.
- * 
- * @since 3.1
- */
-public class OpenWorkbenchIntervalMonitor extends RCPTestWorkbenchAdvisor {
-
-    private PerformanceMeter startupMeter; 
-    private PerformanceMeter shutdownMeter; 
-
-    public OpenWorkbenchIntervalMonitor(PerformanceMeter startupMeter, PerformanceMeter shutdownMeter) {
-        super(2);
-        this.startupMeter = startupMeter;
-        this.shutdownMeter = shutdownMeter;
-    }
-
-    public void postStartup() {
-    	startupMeter.stop();
-        // no reason to track performance between when startup completes and shutdown starts
-        // since that is just testing overhead
-        super.postStartup();
-    }
-
-    public boolean preShutdown() {
-    	shutdownMeter.start();
-        return super.preShutdown();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RestoreWorkbenchIntervalMonitor.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RestoreWorkbenchIntervalMonitor.java
deleted file mode 100644
index e414e41..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/RestoreWorkbenchIntervalMonitor.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp.util;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.test.performance.PerformanceMeter;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-
-
-/**
- * This implementation of the workbench advisor tracks performance for the intervals between
- * lifecycle events.
- * 
- * @since 3.1
- */
-public class RestoreWorkbenchIntervalMonitor extends RCPTestWorkbenchAdvisor {
-
-    private PerformanceMeter startupMeter; 
-    private PerformanceMeter shutdownMeter; 
-	
-	private boolean createRestorableWorkbench = false;
-	
-    private IWorkbenchConfigurer workbenchConfigurer;
-
-    /**
-     * The default behavior is to create a workbench that can be restored later.  This
-     * constructor starts that behavior by setting a flag that will be checked in the
-     * appropriate methods.
-     */
-    public RestoreWorkbenchIntervalMonitor(PerformanceMeter startupMeter, PerformanceMeter shutdownMeter, boolean createRestorableWorkbench) {
-        super(2);
-        this.startupMeter = startupMeter;
-        this.shutdownMeter = shutdownMeter;
-        this.createRestorableWorkbench = createRestorableWorkbench;
-    }
-
-    public void initialize(IWorkbenchConfigurer configurer) {
-        super.initialize(configurer);
-        workbenchConfigurer = configurer;
-        workbenchConfigurer.setSaveAndRestore(true);
-    }
-
-    public void postStartup() {
-    	startupMeter.stop();
-        // no reason to track performance between when startup completes and shutdown starts
-        // since that is just testing overhead
-        super.postStartup();
-    }
-
-    public boolean preShutdown() {
-        boolean ret = super.preShutdown();
-        shutdownMeter.start();
-        return ret;
-    }
-
-    public void eventLoopIdle(Display d) {
-        if (createRestorableWorkbench)
-            workbenchConfigurer.getWorkbench().restart();
-        else
-            super.eventLoopIdle(d);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/WorkbenchAdvisorObserver.java b/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/WorkbenchAdvisorObserver.java
deleted file mode 100644
index b504480..0000000
--- a/tests/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/util/WorkbenchAdvisorObserver.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.rcp.util;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import junit.framework.Assert;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-
-/**
- * This utility class is used to record the order in which the hooks are called.
- * It should be subclassed to provide the behaviour needed for a particular test
- * case. After the case has run, its list can be examined to check for the
- * expected order.
- * <p>
- * NOTE: This differs from <code>org.eclipse.ui.tests.CallHistory</code> since
- * this class allows assertions on individual method names. Which means that the
- * junit error will identify the exact error, not just the existence of an
- * error.
- */
-public class WorkbenchAdvisorObserver extends RCPTestWorkbenchAdvisor {
-
-    private List operations = new LinkedList();
-
-    private Iterator iterator;
-
-    public final static String INITIALIZE = "initialize"; //$NON-NLS-1$
-
-    public final static String PRE_STARTUP = "preStartup"; //$NON-NLS-1$
-
-    public final static String POST_STARTUP = "postStartup"; //$NON-NLS-1$
-
-    public final static String PRE_WINDOW_OPEN = "preWindowOpen"; //$NON-NLS-1$
-
-    public final static String FILL_ACTION_BARS = "fillActionBars"; //$NON-NLS-1$
-
-    public final static String POST_WINDOW_RESTORE = "postWindowRestore"; //$NON-NLS-1$
-
-    public final static String POST_WINDOW_OPEN = "postWindowOpen"; //$NON-NLS-1$
-
-    public final static String PRE_WINDOW_SHELL_CLOSE = "preWindowShellClose"; //$NON-NLS-1$
-
-    public final static String EVENT_LOOP_EXCEPTION = "eventLoopException"; //$NON-NLS-1$
-
-    public final static String PRE_SHUTDOWN = "preShutdown"; //$NON-NLS-1$
-
-    public final static String POST_SHUTDOWN = "postShutdown"; //$NON-NLS-1$
-
-    public IWorkbenchConfigurer workbenchConfig;
-
-    public WorkbenchAdvisorObserver() {
-        super();
-    }
-
-    public WorkbenchAdvisorObserver(int idleBeforeExit) {
-        super(idleBeforeExit);
-    }
-
-    public void resetOperationIterator() {
-        iterator = operations.iterator();
-    }
-
-    public void assertNextOperation(String expected) {
-        Assert.assertTrue(iterator.hasNext());
-        Assert.assertEquals(expected, (String) iterator.next());
-    }
-
-    public void assertAllOperationsExamined() {
-        Assert.assertNotNull(iterator);
-        Assert.assertFalse(iterator.hasNext());
-    }
-
-    private void addOperation(String operation) {
-        operations.add(operation);
-    }
-
-    public void initialize(IWorkbenchConfigurer configurer) {
-        super.initialize(configurer);
-        workbenchConfig = configurer;
-        addOperation(INITIALIZE);
-    }
-
-    public void preStartup() {
-        super.preStartup();
-        addOperation(PRE_STARTUP);
-    }
-
-    public void preWindowOpen(IWorkbenchWindowConfigurer configurer) {
-        super.preWindowOpen(configurer);
-        addOperation(PRE_WINDOW_OPEN);
-    }
-
-    public void fillActionBars(IWorkbenchWindow window,
-            IActionBarConfigurer configurer, int flags) {
-        super.fillActionBars(window, configurer, flags);
-        addOperation(FILL_ACTION_BARS);
-    }
-
-    public void postWindowRestore(IWorkbenchWindowConfigurer configurer)
-            throws WorkbenchException {
-        super.postWindowRestore(configurer);
-        addOperation(POST_WINDOW_RESTORE);
-    }
-
-    public void postWindowOpen(IWorkbenchWindowConfigurer configurer) {
-        super.postWindowOpen(configurer);
-        addOperation(POST_WINDOW_OPEN);
-    }
-
-    public void postStartup() {
-        super.postStartup();
-        addOperation(POST_STARTUP);
-    }
-
-    public boolean preWindowShellClose(IWorkbenchWindowConfigurer configurer) {
-        if (!super.preWindowShellClose(configurer))
-            return false;
-        addOperation(PRE_WINDOW_SHELL_CLOSE);
-        return true;
-    }
-
-    public boolean preShutdown() {
-        boolean result = super.preShutdown();
-        addOperation(PRE_SHUTDOWN);
-        return result;
-    }
-
-    public void postShutdown() {
-        super.postShutdown();
-        addOperation(POST_SHUTDOWN);
-    }
-
-    public void eventLoopException(Throwable exception) {
-        super.eventLoopException(exception);
-        addOperation(EVENT_LOOP_EXCEPTION);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests.rcp/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.rcp/META-INF/MANIFEST.MF
deleted file mode 100644
index 4fafe2e..0000000
--- a/tests/org.eclipse.ui.tests.rcp/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Eclipse RCP Tests
-Bundle-SymbolicName: org.eclipse.ui.tests.rcp; singleton:=true
-Bundle-Version: 3.3.0.qualifier
-Bundle-ClassPath: rcptests.jar
-Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime.compatibility,
- org.eclipse.ui,
- org.junit,
- org.eclipse.test.performance,
- org.eclipse.ui.tests.harness
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.ui.tests.rcp.util;x-internal:=true
diff --git a/tests/org.eclipse.ui.tests.rcp/RCP Test Suite.launch b/tests/org.eclipse.ui.tests.rcp/RCP Test Suite.launch
deleted file mode 100644
index 03332cd..0000000
--- a/tests/org.eclipse.ui.tests.rcp/RCP Test Suite.launch
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<booleanAttribute key="com.mountainminds.eclemma.core.INPLACE_INSTRUMENTATION" value="true"/>
-<listAttribute key="com.mountainminds.eclemma.core.INSTRUMENTATION_PATHS">
-<listEntry value="/org.eclipse.ui/bin"/>
-<listEntry value="/org.eclipse.ui.workbench/bin"/>
-</listAttribute>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests.rcp/Eclipse RCP Tests/org/eclipse/ui/tests/rcp/RcpTestSuite.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.rcp.RcpTestSuite"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests.rcp"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests.rcp/about.html b/tests/org.eclipse.ui.tests.rcp/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.rcp/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.rcp/build.properties b/tests/org.eclipse.ui.tests.rcp/build.properties
deleted file mode 100644
index c51eb2e..0000000
--- a/tests/org.eclipse.ui.tests.rcp/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-bin.includes = plugin.properties,\
-               plugin.xml,\
-               *.html,\
-               *.jar,\
-               *.xml,\
-               rcptests.jar,\
-               META-INF/
-src.includes = about.html
-jars.compile.order = rcptests.jar
-source.rcptests.jar = Eclipse RCP Tests/
-output.rcptests.jar = bin/
diff --git a/tests/org.eclipse.ui.tests.rcp/icons/sample.gif b/tests/org.eclipse.ui.tests.rcp/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/tests/org.eclipse.ui.tests.rcp/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.rcp/plugin.xml b/tests/org.eclipse.ui.tests.rcp/plugin.xml
deleted file mode 100644
index 4bd58f1..0000000
--- a/tests/org.eclipse.ui.tests.rcp/plugin.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-     <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="Empty Perspective"
-            class="org.eclipse.ui.tests.rcp.util.EmptyPerspective"
-            id="org.eclipse.ui.tests.rcp.util.EmptyPerspective">
-      </perspective>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="RCP Test Views"
-            id="org.eclipse.ui.tests.rcp"/>
-      <view
-            class="org.eclipse.ui.tests.rcp.util.EmptyView"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.tests.rcp"
-            name="EmptyView"
-            id="org.eclipse.ui.tests.rcp.util.EmptyView"/>
-   </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.rcp/test.xml b/tests/org.eclipse.ui.tests.rcp/test.xml
deleted file mode 100644
index f5c1791..0000000
--- a/tests/org.eclipse.ui.tests.rcp/test.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}\..\.."/>
-  <!-- sets the properties plugin-name, and library-file -->
-  <property name="plugin-name" value="org.eclipse.ui.tests.rcp"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
- 
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <property name="rcp-folder" 
-              value="${eclipse-home}/ui_rcp_folder"/>
-    <delete dir="${rcp-folder}" quiet="true"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${rcp-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" 
-                value="org.eclipse.ui.tests.rcp.RcpTestSuite"/>
-    </ant>
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-
-  <!-- This target runs the performance test suites. -->
-  <target name="performance" depends="init,performance-suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-
-  <target name="performance-suite">
-  	<property name="performance-workspace" value="${eclipse-home}/performance-workspace-platform-rcp"/>
-    <delete dir="${performance-workspace}" quiet="true"/>
-  	<ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${performance-workspace}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" value="org.eclipse.ui.tests.rcp.performance.RCPPerformanceTestSuite"/>
-    </ant>
-  </target>
-
-</project>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/.classpath b/tests/org.eclipse.ui.tests.views.properties.tabbed/.classpath
deleted file mode 100644
index c2ce266..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/CDC-1.0%Foundation-1.0"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/.cvsignore b/tests/org.eclipse.ui.tests.views.properties.tabbed/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/.project b/tests/org.eclipse.ui.tests.views.properties.tabbed/.project
deleted file mode 100644
index d92ccf3..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests.views.properties.tabbed</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/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9f0559d..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,70 +0,0 @@
-#Mon Feb 13 14:25:08 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=disabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-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=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-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
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 678d30c..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-#Tue Sep 12 08:59:52 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=user
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.4\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 57ad3a2..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Mon Feb 13 14:25:08 EST 2006
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=1
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF
deleted file mode 100644
index 5201f76..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Plugin.name
-Bundle-SymbolicName: org.eclipse.ui.tests.views.properties.tabbed;singleton:=true
-Bundle-Version: 3.5.0.qualifier
-Bundle-Activator: org.eclipse.ui.tests.views.properties.tabbed.Activator
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.junit,
- org.eclipse.ui.ide,
- org.eclipse.ui.views.properties.tabbed,
- org.eclipse.jface.text
-Bundle-Vendor: %Plugin.providerName
-Bundle-ClassPath: uitptests.jar
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,
- J2SE-1.3
-
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/Tabbed Properties View-All Tests.launch b/tests/org.eclipse.ui.tests.views.properties.tabbed/Tabbed Properties View-All Tests.launch
deleted file mode 100644
index 04e1d9b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/Tabbed Properties View-All Tests.launch
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<booleanAttribute key="com.mountainminds.eclemma.core.INPLACE_INSTRUMENTATION" value="true"/>
-<listAttribute key="com.mountainminds.eclemma.core.INSTRUMENTATION_PATHS">
-<listEntry value="/org.eclipse.ui.views.properties.tabbed/bin"/>
-</listAttribute>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/AllTests.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.views.properties.tabbed.AllTests"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests.views.properties.tabbed"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="true"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/about.html b/tests/org.eclipse.ui.tests.views.properties.tabbed/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/build.properties b/tests/org.eclipse.ui.tests.views.properties.tabbed/build.properties
deleted file mode 100644
index 8f2c68b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/build.properties
+++ /dev/null
@@ -1,22 +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
-###############################################################################
-bin.includes = plugin.xml,\
-               icons/,\
-               META-INF/,\
-               about.html,\
-               test.xml,\
-               uitptests.jar,\
-               plugin.properties
-
-src.includes = about.html
-jars.compile.order = uitptests.jar
-source.uitptests.jar = src/
-output.uitptests.jar = bin/
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/black_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/black_triangle.gif
deleted file mode 100644
index 7f4c34b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/black_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif
deleted file mode 100644
index ab2ce37..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_circle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif
deleted file mode 100644
index daae4c9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_square.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif
deleted file mode 100644
index f746d78..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/blue_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif
deleted file mode 100644
index 201b66b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_circle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif
deleted file mode 100644
index b950282..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_square.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif
deleted file mode 100644
index 620ddfb..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/green_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif
deleted file mode 100644
index b648ff6..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_circle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif
deleted file mode 100644
index 56212ab..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_square.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif
deleted file mode 100644
index bab9824..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_star.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif
deleted file mode 100644
index f1c3268..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/red_triangle.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif b/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties b/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties
deleted file mode 100644
index fe51e2a..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2006, 2007 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-Plugin.name = Tabbed Properties View Tests
-Plugin.providerName = Eclipse.org
-
-Views.category.name = Tabbed Properties View
-Views.example.name = Tabbed Properties Tests View
-Views.dynamic.name = Tabbed Properties Dynamic Tests View
-Views.text.name = Tabbed Properties Text Tests View
-Views.override.name = Tabbed Properties Override Tests View
-Views.example.perspective = Tabbed Properties View Tests Perspective
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml b/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml
deleted file mode 100644
index 5e6a97e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/plugin.xml
+++ /dev/null
@@ -1,382 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.views">
-      <category
-            name="%Views.category.name"
-            id="org.eclipse.ui.views.properties.tabbed">
-      </category>
-      <view
-            name="%Views.example.name"
-            category="org.eclipse.ui.views.properties.tabbed"
-            icon="icons/sample.gif"
-            class="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView">
-      </view>
-      <view
-            name="%Views.dynamic.name"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView">
-      </view>
-      <view
-            name="%Views.text.name"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView">
-      </view>
-      <view
-            name="%Views.override.name"
-            icon="icons/sample.gif"
-            category="org.eclipse.ui.views.properties.tabbed"
-            class="org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView"
-            id="org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.views.LabelProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.views.TypeMapper">
-         <propertyCategory category="first">
-         </propertyCategory>
-         <propertyCategory category="second">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView">
-         <propertyTab
-               category="first"
-               id="propertyTab1"
-               label="Name"/>
-         <propertyTab
-               afterTab="propertyTab1"
-               category="first"
-               id="propertyTab2"
-               label="Project"/>
-         <propertyTab
-               afterTab="propertyTab2"
-               category="first"
-               id="propertyTab3"
-               label="Folder"/>
-         <propertyTab
-               afterTab="propertyTab3"
-               category="first"
-               id="propertyTab4"
-               label="File"/>
-         <propertyTab
-               afterTab="propertyTab4"
-               category="first"
-               id="propertyTab5"
-               label="Information"/>
-         <propertyTab
-               afterTab="propertyTab5"
-               category="first"
-               id="propertyTab6"
-               label="Warning"/>
-         <propertyTab
-               afterTab="propertyTab6"
-               category="first"
-               id="propertyTab7"
-               label="Error"/>
-         <propertyTab
-               category="second"
-               id="propertyTab8"
-               indented="true"
-               label="Message"/>
-         <propertyTab
-               category="second"
-               image="icons/sample.gif"
-               id="propertyTab9"
-               label="Resource"/>
-         <propertyTab
-               category="unknown_bugzilla_152473"
-               image="icons/sample.gif"
-               id="propertyTab9"
-               label="Unknown"/>
-      </propertyTabs>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections contributorId="org.eclipse.ui.tests.views.properties.tabbed.views.TestsView">
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.NameSection"
-               enablesFor="1"
-               id="propertySection1"
-               tab="propertyTab1">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Element"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection2"
-               tab="propertyTab2">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Project"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection3"
-               tab="propertyTab3">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Folder"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection4"
-               tab="propertyTab4">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.File"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection5"
-               tab="propertyTab5">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Information"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection6"
-               tab="propertyTab6">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Warning"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.LabelSection"
-               id="propertySection7"
-               tab="propertyTab7">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Error"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.MessageSection"
-               id="propertySection8"
-               tab="propertyTab8">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Error"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Warning"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Information"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.ResourceSection"
-               id="propertySection9"
-               tab="propertyTab9">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.File"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Folder"/>
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.model.Project"/>
-         </propertySection>
-         <propertySection
-               afterSection="propertySection5"
-               class="org.eclipse.ui.tests.views.properties.tabbed.sections.InformationTwoSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.views.InformationTwoFilter"
-               id="propertySection10"
-               tab="propertyTab1">
-         </propertySection>
-      </propertySections>
-   </extension>
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            class="org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective"
-            icon="icons/sample.gif"
-            id="org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective"
-            name="%Views.example.perspective">
-      </perspective>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.static"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTitleBarLabelProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-         <propertyCategory
-               category="advanced">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.eclipse.ui.tests.views.properties.tabbed.static">
-         <propertyTab
-               category="default"
-               id="ElementTab"
-               label="Element"/>
-         <propertyTab
-               afterTab="ElementTab"
-               category="default"
-               id="ColorTab"
-               label="Color"/>
-         <propertyTab
-               afterTab="ColorTab"
-               category="default"
-               id="ShapeTab"
-               label="Shape"/>
-         <propertyTab
-               category="advanced"
-               id="AdvancedTab"
-               label="Advanced">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertySections">
-      <propertySections
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.static">
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsElementSection"
-               id="ElementSection"
-               tab="ElementTab">
-            <input
-                  type="org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement">
-            </input>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsRedSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsRedSectionFilter"
-               id="RedSection"
-               tab="ColorTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsGreenSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsGreenSectionFilter"
-               id="GreenSection"
-               tab="ColorTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
-               enablesFor="1"
-               id="AdvancedSection"
-               tab="AdvancedTab">
-            <input type="org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement"/>
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsBlueSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsBlueSectionFilter"
-               id="BlueSection"
-               tab="ColorTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsSquareSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsSquareSectionFilter"
-               id="SquareSection"
-               tab="ShapeTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsTriangleSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsTriangleSectionFilter"
-               id="TriangleSection"
-               tab="ShapeTab">
-         </propertySection>
-         <propertySection
-               class="org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsCircleSection"
-               filter="org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsCircleSectionFilter"
-               id="CircleSection"
-               tab="ShapeTab">
-         </propertySection>
-      </propertySections>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.dynamic.section"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTitleBarLabelProvider"
-            sectionDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsSectionDescriptorProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-         <propertyCategory
-               category="advanced">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs contributorId="org.eclipse.ui.tests.views.properties.tabbed.dynamic.section">
-         <propertyTab
-               category="default"
-               id="ElementTab"
-               label="Element"/>
-         <propertyTab
-               afterTab="ElementTab"
-               category="default"
-               id="ColorTab"
-               label="Color"/>
-         <propertyTab
-               afterTab="ColorTab"
-               category="default"
-               id="ShapeTab"
-               label="Shape"/>
-         <propertyTab
-               category="advanced"
-               id="AdvancedTab"
-               label="Advanced">
-         </propertyTab>
-         <propertyTab
-               afterTab="ColorTab"
-               category="default"
-               id="StarTab"
-               indented="true"
-               label="Star">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.dynamic.tab"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTitleBarLabelProvider"
-            tabDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.dynamic.tab.descriptors.DynamicTestsTabDescriptorProvider"
-            typeMapper="org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-         <propertyCategory
-               category="advanced">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.text"
-            labelProvider="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsLabelProvider"
-            tabDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsTabDescriptorProvider">
-         <propertyCategory
-               category="default">
-         </propertyCategory>
-      </propertyContributor>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
-      <propertyContributor
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.override"
-            sectionDescriptorProvider="org.eclipse.ui.tests.views.properties.tabbed.override.tablist.OverrideTestsSectionDescriptorProvider"
-            overridableTabListContentProvider="true">
-          <propertyCategory
-                category="org.eclipse.ui.tests.views.properties.tabbed.override">
-          </propertyCategory>
-      </propertyContributor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
-      <propertyTabs
-            contributorId="org.eclipse.ui.tests.views.properties.tabbed.override">
-         <propertyTab
-               label="Override"
-               category="org.eclipse.ui.tests.views.properties.tabbed.override"
-               id="org.eclipse.ui.tests.views.properties.tabbed.override">
-         </propertyTab>
-      </propertyTabs>
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java
deleted file mode 100644
index 8cfa680..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/Activator.java
+++ /dev/null
@@ -1,69 +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.tests.views.properties.tabbed;

-

-import org.eclipse.jface.resource.ImageDescriptor;

-import org.eclipse.ui.plugin.AbstractUIPlugin;

-import org.osgi.framework.BundleContext;

-

-/**

- * The main plugin class to be used in the desktop.

- */

-public class Activator

-    extends AbstractUIPlugin {

-

-    // The shared instance.

-    private static Activator plugin;

-

-    /**

-     * The constructor.

-     */

-    public Activator() {

-        plugin = this;

-    }

-

-    /**

-     * This method is called upon plug-in activation

-     */

-    public void start(BundleContext context)

-        throws Exception {

-        super.start(context);

-    }

-

-    /**

-     * This method is called when the plug-in is stopped

-     */

-    public void stop(BundleContext context)

-        throws Exception {

-        super.stop(context);

-        plugin = null;

-    }

-

-    /**

-     * Returns the shared instance.

-     */

-    public static Activator getDefault() {

-        return plugin;

-    }

-

-    /**

-     * Returns an image descriptor for the image file at the given plug-in

-     * relative path.

-     * 

-     * @param path

-     *            the path

-     * @return the image descriptor

-     */

-    public static ImageDescriptor getImageDescriptor(String path) {

-        return AbstractUIPlugin.imageDescriptorFromPlugin(

-            "org.eclipse.ui.tests.views.properties.tabbed", path); //$NON-NLS-1$

-    }

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/AllTests.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/AllTests.java
deleted file mode 100644
index f796d69..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/AllTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-public class AllTests
-    extends TestCase {
-
-    public static void main(String[] args) {
-        TestRunner.run(suite());
-    }
-
-    public static Test suite() {
-        TestSuite suite = new TestSuite();
-        suite.addTestSuite(TabbedPropertySheetPageTest.class);
-        suite.addTestSuite(TabbedPropertySheetPageDynamicTest.class);
-        suite.addTestSuite(TabbedPropertySheetPageTextTest.class);
-        suite.addTestSuite(TabbedPropertySheetPageOverrideTest.class);
-        return suite;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageDynamicTest.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageDynamicTest.java
deleted file mode 100644
index c73b4b7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageDynamicTest.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsColor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsShape;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTreeNode;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsViewContentProvider;
-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-
-/**
- * Tests for the dynamic tab and section support.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class TabbedPropertySheetPageDynamicTest extends TestCase {
-
-	private DynamicTestsView dynamicTestsView;
-
-	private DynamicTestsTreeNode[] treeNodes;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		/**
-		 * Close the existing perspectives.
-		 */
-		IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		assertNotNull(workbenchWindow);
-		IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-		assertNotNull(workbenchPage);
-		workbenchPage.closeAllPerspectives(false, false);
-
-		/**
-		 * Open the tests perspective.
-		 */
-		PlatformUI.getWorkbench().showPerspective(
-				TestsPerspective.TESTS_PERSPECTIVE_ID, workbenchWindow);
-
-		/**
-		 * Open the dynamic tests view.
-		 */
-		IViewPart view = workbenchPage
-				.showView(DynamicTestsView.DYNAMIC_TESTS_VIEW_ID);
-		assertNotNull(view);
-		assertTrue(view instanceof DynamicTestsView);
-		dynamicTestsView = (DynamicTestsView) view;
-
-		/**
-		 * get the list of tree nodes from the view.
-		 */
-		IContentProvider contentProvider = dynamicTestsView.getViewer()
-				.getContentProvider();
-		assertTrue(contentProvider instanceof DynamicTestsViewContentProvider);
-		DynamicTestsViewContentProvider viewContentProvider = (DynamicTestsViewContentProvider) contentProvider;
-		treeNodes = (DynamicTestsTreeNode[]) viewContentProvider
-				.getInvisibleRoot().getChildren();
-		assertEquals(treeNodes.length, 11);
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		/**
-		 * Bug 175070: Make sure the views have finished painting.
-		 */
-		while (Display.getCurrent().readAndDispatch()) {
-			//
-		}
-
-		/**
-		 * Deselect everything in the Tests view.
-		 */
-		setSelection(new DynamicTestsTreeNode[] {});
-	}
-
-	/**
-	 * Set the selection in the view to cause the properties view to change.
-	 * 
-	 * @param selectedNodes
-	 *            nodes to select in the view.
-	 */
-	private void setSelection(DynamicTestsTreeNode[] selectedNodes) {
-		StructuredSelection selection = new StructuredSelection(selectedNodes);
-		dynamicTestsView.getViewer().setSelection(selection, true);
-	}
-
-	/**
-	 * When the three blue nodes are selected, two tabs display.
-	 */
-	public void test_BlueStaticContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_STATIC);
-		select_all_blue();
-	}
-
-	/**
-	 * When the three blue nodes are selected, two tabs display.
-	 */
-	public void test_BlueDynamicTabContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_TABS);
-		select_all_blue();
-	}
-
-	/**
-	 * When the three blue nodes are selected, two tabs display.
-	 */
-	public void test_BlueDynamicSectionContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_SECTIONS);
-		select_all_blue();
-	}
-
-	/**
-	 * When the three blue nodes are selected, two tabs display.
-	 */
-	public void select_all_blue() {
-		List blueList = new ArrayList();
-		for (int i = 0; i < treeNodes.length; i++) {
-			if (DynamicTestsColor.BLUE.equals(treeNodes[i]
-					.getDynamicTestsElement().getPropertyValue(
-							DynamicTestsElement.ID_COLOR))) {
-				blueList.add(treeNodes[i]);
-			}
-		}
-		DynamicTestsTreeNode[] selectNodes = (DynamicTestsTreeNode[]) blueList
-				.toArray(new DynamicTestsTreeNode[blueList.size()]);
-		assertEquals(blueList.size(), 3);
-
-		setSelection(selectNodes);
-
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is Element
-		 */
-		assertEquals("Element", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		/**
-		 * Second tab is Color
-		 */
-		assertEquals("Color", tabDescriptors[1].getLabel());//$NON-NLS-1$
-		/**
-		 * No other tab
-		 */
-        assertEquals(2, tabDescriptors.length);
-	}
-
-	/**
-	 * When the three triangle nodes are selected, two tabs display.
-	 */
-	public void test_TriangleStaticContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_STATIC);
-		select_all_triangle();
-	}
-
-	/**
-	 * When the three triangle nodes are selected, two tabs display.
-	 */
-	public void test_TriangleDynamicTabContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_TABS);
-		select_all_triangle();
-	}
-
-	/**
-	 * When the three triangle nodes are selected, two tabs display.
-	 */
-	public void test_TriangleDynamicSectionContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_SECTIONS);
-		select_all_triangle();
-	}
-
-	/**
-	 * When the three triangle nodes are selected, two tabs display.
-	 */
-	public void select_all_triangle() {
-		List triangleList = new ArrayList();
-		for (int i = 0; i < treeNodes.length; i++) {
-			if (DynamicTestsShape.TRIANGLE.equals(treeNodes[i]
-					.getDynamicTestsElement().getPropertyValue(
-							DynamicTestsElement.ID_SHAPE))) {
-				triangleList.add(treeNodes[i]);
-			}
-		}
-		DynamicTestsTreeNode[] selectNodes = (DynamicTestsTreeNode[]) triangleList
-				.toArray(new DynamicTestsTreeNode[triangleList.size()]);
-		assertEquals(triangleList.size(), 4);
-
-		setSelection(selectNodes);
-
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is Element
-		 */
-		assertEquals("Element", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		/**
-		 * Second tab is Shape
-		 */
-		assertEquals("Shape", tabDescriptors[1].getLabel());//$NON-NLS-1$
-		/**
-		 * No other tab
-		 */
-        assertEquals(2, tabDescriptors.length);
-	}
-
-	/**
-	 * When the black triangle is selected, three tabs display.
-	 */
-	public void test_BlackTriangleStaticContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_STATIC);
-		select_blackTriangle();
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * Only three tabs displayed for static contribution.
-		 */
-        assertEquals(3, tabDescriptors.length);
-	}
-
-	/**
-	 * When the black triangle is selected, four tabs display.
-	 */
-	public void test_BlackTriangleDynamicTabContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_TABS);
-		select_blackTriangle();
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * Fourth tab is Black
-		 */
-		assertEquals("Black", tabDescriptors[3].getLabel());//$NON-NLS-1$
-		/**
-		 * No other tab
-		 */
-        assertEquals(4, tabDescriptors.length);
-	}
-
-	/**
-	 * When the black triangle is selected, three tabs display.
-	 */
-	public void test_BlackTriangleDynamicSectionContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_SECTIONS);
-		select_blackTriangle();
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * Only three tabs displayed for dynamic section contribution.
-		 */
-        assertEquals(3, tabDescriptors.length);
-	}
-
-	/**
-	 * When the black triangle is selected, three tabs display.
-	 */
-	public void select_blackTriangle() {
-		DynamicTestsTreeNode blackTriangleNode = null;
-		for (int i = 0; i < treeNodes.length; i++) {
-			if (DynamicTestsColor.BLACK.equals(treeNodes[i]
-					.getDynamicTestsElement().getPropertyValue(
-							DynamicTestsElement.ID_COLOR))) {
-				blackTriangleNode = treeNodes[i];
-				break;
-			}
-		}
-		assertNotNull(blackTriangleNode);
-
-		setSelection(new DynamicTestsTreeNode[] { blackTriangleNode });
-
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is Element
-		 */
-		assertEquals("Element", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		/**
-		 * Second tab is Shape
-		 */
-		assertEquals("Shape", tabDescriptors[1].getLabel());//$NON-NLS-1$
-		/**
-		 * Third tab is Advanced
-		 */
-		assertEquals("Advanced", tabDescriptors[2].getLabel());//$NON-NLS-1$
-	}
-
-	/**
-	 * When the red star is selected, three tabs display.
-	 */
-	public void test_RedStarStaticContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_STATIC);
-		select_RedStar();
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * Third tab is Advanced
-		 */
-		assertEquals("Advanced", tabDescriptors[2].getLabel());//$NON-NLS-1$
-		/**
-		 * No other tab
-		 */
-        assertEquals(3, tabDescriptors.length);
-	}
-
-	/**
-	 * When the red star is selected, four tabs display.
-	 */
-	public void test_RedStarDynamicTabContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_TABS);
-		select_RedStar();
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * Third tab is Advanced
-		 */
-		assertEquals("Advanced", tabDescriptors[2].getLabel());//$NON-NLS-1$
-		/**
-		 * No other tab
-		 */
-        assertEquals(3, tabDescriptors.length);
-	}
-
-	/**
-	 * When the red star is selected, three tabs display.
-	 */
-	public void test_RedStarDynamicSectionContribution() {
-		dynamicTestsView
-				.setContributorId(DynamicTestsView.DYNAMIC_TESTS_VIEW_DYNAMIC_SECTIONS);
-		select_RedStar();
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * Third tab is Star
-		 */
-		assertEquals("Star", tabDescriptors[2].getLabel());//$NON-NLS-1$
-		/**
-		 * Fourth tab is Advanced
-		 */
-		assertEquals("Advanced", tabDescriptors[3].getLabel());//$NON-NLS-1$
-		/**
-		 * No other tab
-		 */
-        assertEquals(4, tabDescriptors.length);
-	}
-
-	/**
-	 * When the red star is selected, four tabs display.
-	 */
-	public void select_RedStar() {
-		DynamicTestsTreeNode redStarNode = null;
-		for (int i = 0; i < treeNodes.length; i++) {
-			if (DynamicTestsShape.STAR.equals(treeNodes[i]
-					.getDynamicTestsElement().getPropertyValue(
-							DynamicTestsElement.ID_SHAPE))) {
-				redStarNode = treeNodes[i];
-				break;
-			}
-		}
-		assertNotNull(redStarNode);
-
-		setSelection(new DynamicTestsTreeNode[] { redStarNode });
-
-        ITabDescriptor[] tabDescriptors = dynamicTestsView.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is Element
-		 */
-		assertEquals("Element", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		/**
-		 * Second tab is Color
-		 */
-		assertEquals("Color", tabDescriptors[1].getLabel());//$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageOverrideTest.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageOverrideTest.java
deleted file mode 100644
index 4468bd8..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageOverrideTest.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Error;
-import org.eclipse.ui.tests.views.properties.tabbed.model.File;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Folder;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Information;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Warning;
-import org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-
-/**
- * Tests for the override tabs support.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class TabbedPropertySheetPageOverrideTest extends TestCase {
-
-	private OverrideTestsView overrideTestsView;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		/**
-		 * Close the existing perspectives.
-		 */
-		IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		assertNotNull(workbenchWindow);
-		IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-		assertNotNull(workbenchPage);
-		workbenchPage.closeAllPerspectives(false, false);
-
-		/**
-		 * Open the tests perspective.
-		 */
-		PlatformUI.getWorkbench().showPerspective(
-				TestsPerspective.TESTS_PERSPECTIVE_ID, workbenchWindow);
-
-		/**
-		 * Open the dynamic tests view.
-		 */
-		IViewPart view = workbenchPage
-				.showView(OverrideTestsView.OVERRIDE_TESTS_VIEW_ID);
-		assertNotNull(view);
-		assertTrue(view instanceof OverrideTestsView);
-		overrideTestsView = (OverrideTestsView) view;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		/**
-		 * Bug 175070: Make sure the views have finished painting.
-		 */
-		while (Display.getCurrent().readAndDispatch()) {
-			//
-		}
-
-	}
-
-	/**
-	 * When nothing is selected, there is one tab called empty.
-	 * <p>
-	 * Normally an empty structured selection shows "Properties are not
-	 * available". The override tests provide a custom selection provider that
-	 * allows for the display of a tab and section when the selection is empty.
-	 */
-	public void test_tabForEmpty() {
-		/**
-		 * select nothing
-		 */
-		overrideTestsView.setSelection(null);
-
-		ITabDescriptor[] tabDescriptors = overrideTestsView
-				.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is "Empty Item"
-		 */
-		assertEquals("Empty Item", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		/**
-		 * No second tab
-		 */
-		assertEquals(1, tabDescriptors.length);
-	}
-
-	/**
-	 * Tests for the dynamic tabs and sections (items) when the Error element is
-	 * selected.
-	 */
-	public void test_tabForError() {
-		/**
-		 * select "Error"
-		 */
-		overrideTestsView.setSelection(Error.class);
-
-		ITabDescriptor[] tabDescriptors = overrideTestsView
-				.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is "Information".
-		 */
-		assertEquals("Information", tabDescriptors[0].getLabel());//$NON-NLS-1$
-
-		/**
-		 * Second tab is "Warning".
-		 */
-		assertEquals("Warning", tabDescriptors[1].getLabel());//$NON-NLS-1$
-
-		/**
-		 * Third tab is "Error" and is selected.
-		 */
-		assertEquals("Error", tabDescriptors[2].getLabel());//$NON-NLS-1$
-		assertEquals("Error", overrideTestsView.getTabbedPropertySheetPage()
-				.getSelectedTab().getLabel());
-
-		/**
-		 * No fourth tab
-		 */
-		assertEquals(3, tabDescriptors.length);
-
-	}
-
-	/**
-	 * Tests for the dynamic tabs and sections (items) when the File element is
-	 * selected.
-	 */
-	public void test_tabForFile() {
-		/**
-		 * select "File"
-		 */
-		overrideTestsView.setSelection(File.class);
-
-		ITabDescriptor[] tabDescriptors = overrideTestsView
-				.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is "File" and is selected.
-		 */
-		assertEquals("File", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		assertEquals("File", overrideTestsView.getTabbedPropertySheetPage()
-				.getSelectedTab().getLabel());
-
-		/**
-		 * Second tab is "Folder" and is selected.
-		 */
-		assertEquals("Folder", tabDescriptors[1].getLabel());//$NON-NLS-1$
-
-		/**
-		 * No third tab
-		 */
-		assertEquals(2, tabDescriptors.length);
-	}
-
-	/**
-	 * Tests for the dynamic tabs and sections (items) when the Folder element
-	 * is selected.
-	 */
-	public void test_tabForFolder() {
-		/**
-		 * select "Folder"
-		 */
-		overrideTestsView.setSelection(Folder.class);
-
-		ITabDescriptor[] tabDescriptors = overrideTestsView
-				.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is "File".
-		 */
-		assertEquals("File", tabDescriptors[0].getLabel());//$NON-NLS-1$
-
-		/**
-		 * Second tab is "Folder" and is selected.
-		 */
-		assertEquals("Folder", tabDescriptors[1].getLabel());//$NON-NLS-1$
-		assertEquals("Folder", overrideTestsView.getTabbedPropertySheetPage()
-				.getSelectedTab().getLabel());
-
-		/**
-		 * No third tab
-		 */
-		assertEquals(2, tabDescriptors.length);
-	}
-
-	/**
-	 * Tests for the dynamic tabs and sections (items) when the Information
-	 * element is selected.
-	 */
-	public void test_tabForInformation() {
-		/**
-		 * select "Information"
-		 */
-		overrideTestsView.setSelection(Information.class);
-
-		ITabDescriptor[] tabDescriptors = overrideTestsView
-				.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is "Information" and is selected.
-		 */
-		assertEquals("Information", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		assertEquals("Information", overrideTestsView
-				.getTabbedPropertySheetPage().getSelectedTab().getLabel());
-
-		/**
-		 * Second tab is "Warning".
-		 */
-		assertEquals("Warning", tabDescriptors[1].getLabel());//$NON-NLS-1$
-
-		/**
-		 * Third tab is "Error".
-		 */
-		assertEquals("Error", tabDescriptors[2].getLabel());//$NON-NLS-1$
-
-		/**
-		 * No fourth tab
-		 */
-		assertEquals(3, tabDescriptors.length);
-	}
-
-	/**
-	 * Tests for the dynamic tabs and sections (items) when the Warning element
-	 * is selected.
-	 */
-	public void test_tabForWarning() {
-		/**
-		 * select "Warning"
-		 */
-		overrideTestsView.setSelection(Warning.class);
-
-		ITabDescriptor[] tabDescriptors = overrideTestsView
-				.getTabbedPropertySheetPage().getActiveTabs();
-		/**
-		 * First tab is "Information".
-		 */
-		assertEquals("Information", tabDescriptors[0].getLabel());//$NON-NLS-1$
-
-		/**
-		 * Second tab is "Warning" and is selected.
-		 */
-		assertEquals("Warning", tabDescriptors[1].getLabel());//$NON-NLS-1$
-		assertEquals("Warning", overrideTestsView.getTabbedPropertySheetPage()
-				.getSelectedTab().getLabel());
-
-		/**
-		 * Third tab is "Error".
-		 */
-		assertEquals("Error", tabDescriptors[2].getLabel());//$NON-NLS-1$
-
-		/**
-		 * No fourth tab
-		 */
-		assertEquals(3, tabDescriptors.length);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTest.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTest.java
deleted file mode 100644
index 56b8b8e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTest.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.sections.InformationTwoSection;
-import org.eclipse.ui.tests.views.properties.tabbed.sections.NameSection;
-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective;
-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsViewContentProvider;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.TabContents;
-
-public class TabbedPropertySheetPageTest
-    extends TestCase {
-
-    private TestsView testsView;
-
-    private TreeNode[] treeNodes;
-
-    protected void setUp()
-        throws Exception {
-        super.setUp();
-
-        /**
-         * Close the existing perspectives.
-         */
-        IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
-            .getActiveWorkbenchWindow();
-        assertNotNull(workbenchWindow);
-        IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-        assertNotNull(workbenchPage);
-        workbenchPage.closeAllPerspectives(false, false);
-
-        /**
-         * Open the tests perspective.
-         */
-        PlatformUI.getWorkbench().showPerspective(
-            TestsPerspective.TESTS_PERSPECTIVE_ID, workbenchWindow);
-
-        /**
-         * Select the Tests view.
-         */
-        IViewPart view = workbenchPage.showView(TestsView.TESTS_VIEW_ID);
-        assertNotNull(view);
-        assertTrue(view instanceof TestsView);
-        testsView = (TestsView) view;
-
-        /**
-         * get the list of tree nodes from the view.
-         */
-        IContentProvider contentProvider = testsView.getViewer()
-            .getContentProvider();
-        assertTrue(contentProvider instanceof TestsViewContentProvider);
-        TestsViewContentProvider viewContentProvider = (TestsViewContentProvider) contentProvider;
-        treeNodes = viewContentProvider.getInvisibleRoot().getChildren();
-        assertEquals(treeNodes.length, 8);
-    }
-
-    protected void tearDown()
-        throws Exception {
-        super.tearDown();
-
-        /**
-		 * Bug 175070: Make sure the views have finished painting.
-         */
-        while (Display.getCurrent().readAndDispatch()) {
-            //
-        }
-
-        /**
-         * Deselect everything in the Tests view.
-         */
-        setSelection(new TreeNode[] {} );
-    }
-
-    /**
-     * Set the selection in the view to cause the properties view to change.
-     * 
-     * @param selectedNodes
-     *            nodes to select in the view.
-     */
-    private void setSelection(TreeNode[] selectedNodes) {
-        StructuredSelection selection = new StructuredSelection(selectedNodes);
-        testsView.getViewer().setSelection(selection, true);
-    }
-
-    /**
-     * When One Information Node is selected, three tabs display. Tests
-     * typeMapper, labelProvider, propertyCategories, afterTab attributes.
-     */
-    public void test_tabDisplay() {
-        /**
-         * select node 0 which is an Information
-         */
-        setSelection(new TreeNode[] {treeNodes[0]});
-        ITabDescriptor[] tabDescriptors = testsView.getTabbedPropertySheetPage().getActiveTabs();
-        
-        /**
-         * First tab is Name
-         */
-        assertEquals("Name", tabDescriptors[0].getLabel());//$NON-NLS-1$
-        /**
-         * Second tab is Information
-         */
-        assertEquals("Information", tabDescriptors[1].getLabel());//$NON-NLS-1$
-        /**
-         * Third tab is Message
-         */
-        assertEquals("Message", tabDescriptors[2].getLabel());//$NON-NLS-1$
-        /**
-         * No fourth tab
-         */
-        assertEquals(3, tabDescriptors.length);
-    }
-
-    /**
-     * When Two Information Node is selected, only two tabs display. Tests
-     * enablesFor attribute.
-     */
-    public void test_enablesForFilter() {
-        /**
-         * select nodes
-         */
-        setSelection(new TreeNode[] {treeNodes[0], treeNodes[1]});
-        ITabDescriptor[] tabDescriptors = testsView.getTabbedPropertySheetPage().getActiveTabs();
-        /**
-         * First tab is Information
-         */
-        assertEquals("Information", tabDescriptors[0].getLabel());//$NON-NLS-1$
-        /**
-         * Second tab is Message
-         */
-        assertEquals("Message", tabDescriptors[1].getLabel());//$NON-NLS-1$
-        /**
-         * No other tab
-         */
-        assertEquals(2, tabDescriptors.length);
-    }
-
-    /**
-     * When Two Information Node is selected, two section displayed on Name tab.
-     * Tests filter, afterSection attribute.
-     */
-    public void test_sectionInformationTwoFilter() {
-        /**
-         * select nodes
-         */
-        setSelection(new TreeNode[] {treeNodes[1]});
-        ITabDescriptor[] tabDescriptors = testsView.getTabbedPropertySheetPage().getActiveTabs();
-        /**
-         * First tab is Information
-         */
-        assertEquals("Name", tabDescriptors[0].getLabel());//$NON-NLS-1$
-        TabContents tabContents = testsView.getTabbedPropertySheetPage().getCurrentTab();
-        /**
-         * the tab has two sections.
-         */
-        ISection[] sections = tabContents.getSections();
-        assertEquals(2, sections.length);
-        assertEquals(NameSection.class, sections[0].getClass());
-        assertEquals(InformationTwoSection.class, sections[1].getClass());
-    }
-
-    /**
-     * When Information, Error and Warning Nodes are selected, only the Message
-     * tab displays. Tests input attribute.
-     */
-    public void test_selectThreeMessageNodes() {
-        /**
-         * select nodes
-         */
-        setSelection(new TreeNode[] {treeNodes[1], treeNodes[2], treeNodes[3],});
-        ITabDescriptor[] tabDescriptors = testsView.getTabbedPropertySheetPage().getActiveTabs();
-        /**
-         * Only tab is Message
-         */
-        assertEquals("Message", tabDescriptors[0].getLabel());//$NON-NLS-1$
-        /**
-         * No other tab
-         */
-        assertEquals(1, tabDescriptors.length);
-    }
-
-    /**
-     * When File, Folder and Project Nodes are selected, only the Resource tab
-     * displays. Tests input attribute.
-     */
-    public void test_selectThreeResourceNodes() {
-        /**
-         * select nodes
-         */
-        setSelection(new TreeNode[] {treeNodes[5], treeNodes[6], treeNodes[7],});
-        ITabDescriptor[] TabDescriptors = testsView.getTabbedPropertySheetPage().getActiveTabs();
-        /**
-         * Only tab is Resource
-         */
-        assertEquals("Resource", TabDescriptors[0].getLabel());//$NON-NLS-1$
-        /**
-         * No other tab
-         */
-        assertEquals(1, TabDescriptors.length);
-    }
-
-    /**
-     * When the view first comes up, there is no properties so the "Properties
-     * are not available." banner is displayed. Tests null selection in a
-     * viewer.
-     */
-    public void test_noPropertiesAvailable() {
-    	TabContents tabContents = testsView.getTabbedPropertySheetPage().getCurrentTab();
-        assertNull(tabContents);
-        ITabDescriptor[] TabDescriptors = testsView.getTabbedPropertySheetPage().getActiveTabs();
-        assertEquals(0, TabDescriptors.length);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTextTest.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTextTest.java
deleted file mode 100644
index 898fc92..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/TabbedPropertySheetPageTextTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsLabelSection;
-import org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.TabContents;
-
-/**
- * Tests for the text tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class TabbedPropertySheetPageTextTest extends TestCase {
-
-	private TextTestsView textTestsView;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-        /**
-         * Close the existing perspectives.
-         */
-        IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
-            .getActiveWorkbenchWindow();
-        assertNotNull(workbenchWindow);
-        IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-        assertNotNull(workbenchPage);
-        workbenchPage.closeAllPerspectives(false, false);
-
-        /**
-         * Open the tests perspective.
-         */
-        PlatformUI.getWorkbench().showPerspective(
-            TestsPerspective.TESTS_PERSPECTIVE_ID, workbenchWindow);
-
-		/**
-		 * Open the dynamic tests view.
-		 */
-		IViewPart view = workbenchPage
-				.showView(TextTestsView.TEXT_TESTS_VIEW_ID);
-		assertNotNull(view);
-		assertTrue(view instanceof TextTestsView);
-		textTestsView = (TextTestsView) view;
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-
-		/**
-		 * Bug 175070: Make sure the views have finished painting.
-		 */
-		while (Display.getCurrent().readAndDispatch()) {
-			//
-		}
-
-	}
-
-    /**
-     * When text is selected, there is one tab for each selected word.
-     */
-    public void test_tabForSelectedTextDisplay() {
-        IDocument document = textTestsView.getViewer().getDocument();
-        document.set("This is a test");
-        textTestsView.getViewer().setSelectedRange(0, 14);
-        
-        ITabDescriptor[] tabDescriptors = textTestsView.getTabbedPropertySheetPage().getActiveTabs();
-        /**
-         * First tab is "This"
-         */
-        assertEquals("This", tabDescriptors[0].getLabel());//$NON-NLS-1$
-        /**
-         * Second tab is "is"
-         */
-        assertEquals("is", tabDescriptors[1].getLabel());//$NON-NLS-1$
-        /**
-         * Third tab is "a"
-         */
-        assertEquals("a", tabDescriptors[2].getLabel());//$NON-NLS-1$
-        /**
-         * Third tab is "test"
-         */
-        assertEquals("test", tabDescriptors[3].getLabel());//$NON-NLS-1$
-        /**
-         * No fifth tab
-         */
-        assertEquals(4, tabDescriptors.length);
-    }
-
-	/**
-	 * Test changing the selected tab through API (Bug 119085).
-	 */
-	public void test_tabSelectedTab() {
-	    IDocument document = textTestsView.getViewer().getDocument();
-	    document.set("The fifth tab is selected");
-	    textTestsView.getViewer().setSelectedRange(0, 26);
-	    
-	    ITabDescriptor[] tabDescriptors = textTestsView.getTabbedPropertySheetPage().getActiveTabs();
-	    /**
-	     * First tab is "the" and is selected.
-	     */
-	    assertEquals("The", tabDescriptors[0].getLabel());//$NON-NLS-1$
-		assertEquals("The", textTestsView.getTabbedPropertySheetPage()
-				.getSelectedTab().getLabel());
-	    /**
-	     * Fifth tab is "selected"
-	     */
-	    assertEquals("selected", tabDescriptors[4].getLabel());//$NON-NLS-1$
-	    
-	    /** 
-	     * Set the new selected tab.
-	     */
-	    textTestsView.getTabbedPropertySheetPage().setSelectedTab(tabDescriptors[4].getId());
-	    
-	    tabDescriptors = textTestsView.getTabbedPropertySheetPage().getActiveTabs();
-	    /**
-	     * First tab is "the"
-	     */
-	    assertEquals("The", tabDescriptors[0].getLabel());//$NON-NLS-1$
-	    /**
-	     * Fifth tab is "selected" and is selected.
-	     */
-	    assertEquals("selected", tabDescriptors[4].getLabel());//$NON-NLS-1$
-		assertEquals("selected", textTestsView.getTabbedPropertySheetPage()
-				.getSelectedTab().getLabel());
-	}
-
-	/**
-	 * This test makes sure that the list of sections has only one section. The
-	 * TextTestsTabDescriptor returns two sections and one section is always
-	 * filtered (Bug 245690).
-	 */
-	public void test_listOfSections() {
-        IDocument document = textTestsView.getViewer().getDocument();
-        document.set("This is a test");
-        textTestsView.getViewer().setSelectedRange(0, 14);
-
-        /**
-         * each tab has one section.
-         */
-        TabContents tabContents = textTestsView.getTabbedPropertySheetPage().getCurrentTab();
-        ISection[] sections = tabContents.getSections();
-        assertEquals(1, sections.length);
-        assertEquals(TextTestsLabelSection.class, sections[0].getClass());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlackSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlackSectionFilter.java
deleted file mode 100644
index ca81205..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlackSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsColor;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsBlackSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToColor(DynamicTestsColor color) {
-		return DynamicTestsColor.BLACK.equals(color);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlueSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlueSectionFilter.java
deleted file mode 100644
index 2e3c105..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsBlueSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsColor;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsBlueSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToColor(DynamicTestsColor color) {
-		return DynamicTestsColor.BLUE.equals(color);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsCircleSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsCircleSectionFilter.java
deleted file mode 100644
index 10bdb1a..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsCircleSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsShape;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsCircleSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToShape(DynamicTestsShape shape) {
-		return DynamicTestsShape.CIRCLE.equals(shape);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsElementSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsElementSectionFilter.java
deleted file mode 100644
index a40875b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsElementSectionFilter.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsColor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsShape;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTreeNode;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsElementSectionFilter implements IFilter {
-
-	/**
-	 * Determine if the filter applies to the provided color.
-	 * 
-	 * @param element
-	 *            the element.
-	 * @return true if the filter applies to the provided color.
-	 */
-	protected boolean appliesToColor(DynamicTestsColor color) {
-		Assert.isNotNull(color);
-		return true;
-	}
-
-	/**
-	 * Determine if the filter applies to the provided shape.
-	 * 
-	 * @param element
-	 *            the element.
-	 * @return true if the filter applies to the provided shape.
-	 */
-	protected boolean appliesToShape(DynamicTestsShape shape) {
-		Assert.isNotNull(shape);
-		return true;
-	}
-
-	public boolean select(Object object) {
-		if (object instanceof DynamicTestsTreeNode) {
-			DynamicTestsElement element = ((DynamicTestsTreeNode) object)
-					.getDynamicTestsElement();
-			DynamicTestsColor color = (DynamicTestsColor) element
-					.getPropertyValue(DynamicTestsElement.ID_COLOR);
-			DynamicTestsShape shape = (DynamicTestsShape) element
-					.getPropertyValue(DynamicTestsElement.ID_SHAPE);
-			return (appliesToColor(color) && appliesToShape(shape));
-		}
-		return false;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsGreenSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsGreenSectionFilter.java
deleted file mode 100644
index 4df31a9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsGreenSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsColor;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsGreenSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToColor(DynamicTestsColor color) {
-		return DynamicTestsColor.GREEN.equals(color);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsRedSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsRedSectionFilter.java
deleted file mode 100644
index ccf646e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsRedSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsColor;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsRedSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToColor(DynamicTestsColor color) {
-		return DynamicTestsColor.RED.equals(color);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsSquareSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsSquareSectionFilter.java
deleted file mode 100644
index 8bfff07..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsSquareSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsShape;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsSquareSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToShape(DynamicTestsShape shape) {
-		return DynamicTestsShape.SQUARE.equals(shape);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsStarSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsStarSectionFilter.java
deleted file mode 100644
index 8cac35f..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsStarSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsShape;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsStarSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToShape(DynamicTestsShape shape) {
-		return DynamicTestsShape.STAR.equals(shape);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsTriangleSectionFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsTriangleSectionFilter.java
deleted file mode 100644
index cb110a7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/filters/DynamicTestsTriangleSectionFilter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.filters;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsShape;
-
-/**
- * A section filter for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsTriangleSectionFilter extends
-		DynamicTestsElementSectionFilter {
-
-	protected boolean appliesToShape(DynamicTestsShape shape) {
-		return DynamicTestsShape.TRIANGLE.equals(shape);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsColor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsColor.java
deleted file mode 100644
index 2524c7c..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsColor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.model;
-
-/**
- * A color enumeration for the dynamic tests view. (Should use an enum when we
- * can use Java 5).
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsColor {
-
-	public static final DynamicTestsColor BLACK = new DynamicTestsColor("black"); //$NON-NLS-1$
-
-	public static final DynamicTestsColor BLUE = new DynamicTestsColor("blue"); //$NON-NLS-1$
-
-	public static final DynamicTestsColor GREEN = new DynamicTestsColor("green"); //$NON-NLS-1$
-
-	public static final DynamicTestsColor RED = new DynamicTestsColor("red"); //$NON-NLS-1$
-
-	/**
-	 * @return the color
-	 */
-	public static DynamicTestsColor getColor(String value) {
-		if (RED.getColor().equals(value)) {
-			return RED;
-		} else if (GREEN.getColor().equals(value)) {
-			return GREEN;
-		} else if (BLUE.getColor().equals(value)) {
-			return BLUE;
-		} else if (BLACK.getColor().equals(value)) {
-			return BLACK;
-		}
-		return null;
-	}
-
-	private String color;
-
-	private DynamicTestsColor(String aColor) {
-		setColor(aColor);
-	}
-
-	/**
-	 * @return the color
-	 */
-	public String getColor() {
-		return color;
-	}
-
-	/**
-	 * @param color
-	 *            the color to set
-	 */
-	public void setColor(String aColor) {
-		this.color = aColor;
-	}
-
-	public String toString() {
-		return getColor();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsElement.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsElement.java
deleted file mode 100644
index f269b47..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsElement.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.views.properties.tabbed.Activator;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-
-/**
- * An element for the dynamic tests view. We build an element for one of the
- * icons. For example, "icons/blue_circle.gif" becomes a "Blue Circle" element.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsElement implements
-		ITabbedPropertySheetPageContributor, IPropertySource {
-
-	public static String ADVANCED_CATEGORY = "Advanced"; //$NON-NLS-1$
-
-	public static String DEFAULT_CATEGORY = "Default"; //$NON-NLS-1$
-
-	public static String ID_COLOR = "Color"; //$NON-NLS-1$
-
-	public static String ID_IMAGE = "Image"; //$NON-NLS-1$
-
-	public static String ID_NAME = "Name"; //$NON-NLS-1$
-
-	public static String ID_SHAPE = "Shape"; //$NON-NLS-1$
-
-	private DynamicTestsColor dynamicTestsColor;
-
-	private Image image;
-
-	private String name;
-
-	private String path;
-
-	private List propertyDescriptors = new ArrayList();
-
-	private DynamicTestsShape shape;
-
-	private DynamicTestsView view;
-
-	public DynamicTestsElement(DynamicTestsView aView, String aPath) {
-		super();
-		this.view = aView;
-		this.path = aPath;
-		int slash = path.indexOf('/');
-		Assert.isTrue(slash > 0);
-		int underscore = path.indexOf('_');
-		Assert.isTrue(underscore > 0);
-		int dot = path.indexOf('.');
-		Assert.isTrue(dot > 0);
-		this.shape = DynamicTestsShape.getShape(path.substring(underscore + 1,
-				dot));
-		this.dynamicTestsColor = DynamicTestsColor.getColor(path.substring(
-				slash + 1, underscore));
-		this.image = Activator.getImageDescriptor(path).createImage();
-		StringBuffer nameBuffer = new StringBuffer(path);
-		nameBuffer.replace(slash + 1, slash + 2, path.substring(slash + 1,
-				slash + 2).toUpperCase());
-		nameBuffer.replace(underscore + 1, underscore + 2, path.substring(
-				underscore + 1, underscore + 2).toUpperCase());
-		nameBuffer.replace(underscore, underscore + 1, " ");//$NON-NLS-1$
-		name = nameBuffer.substring(slash + 1, dot).toString();
-		PropertyDescriptor propertyDescriptor = new PropertyDescriptor(ID_NAME,
-				ID_NAME);
-		propertyDescriptor.setCategory(DEFAULT_CATEGORY);
-		propertyDescriptors.add(propertyDescriptor);
-		propertyDescriptor = new PropertyDescriptor(ID_COLOR, ID_COLOR);
-		propertyDescriptor.setCategory(DEFAULT_CATEGORY);
-		propertyDescriptors.add(propertyDescriptor);
-		propertyDescriptor = new PropertyDescriptor(ID_SHAPE, ID_SHAPE);
-		propertyDescriptor.setCategory(DEFAULT_CATEGORY);
-		propertyDescriptors.add(propertyDescriptor);
-		propertyDescriptor = new PropertyDescriptor(ID_IMAGE, ID_IMAGE);
-		propertyDescriptor.setCategory(ADVANCED_CATEGORY);
-		propertyDescriptors.add(propertyDescriptor);
-	}
-
-	public String getContributorId() {
-		return view.getContributorId();
-	}
-
-	public Object getEditableValue() {
-		return this;
-	}
-
-	/**
-	 * @return the image
-	 */
-	public Image getImage() {
-		return image;
-	}
-
-	/**
-	 * @return the name
-	 */
-	public String getName() {
-		return name;
-	}
-
-	public IPropertyDescriptor[] getPropertyDescriptors() {
-		return (IPropertyDescriptor[]) propertyDescriptors
-				.toArray(new IPropertyDescriptor[0]);
-	}
-
-	public Object getPropertyValue(Object id) {
-		if (id.equals(ID_COLOR)) {
-			return dynamicTestsColor;
-		} else if (id.equals(ID_SHAPE)) {
-			return shape;
-		} else if (id.equals(ID_NAME)) {
-			return name;
-		} else if (id.equals(ID_IMAGE)) {
-			return path;
-		}
-		return null;
-	}
-
-	public boolean isPropertySet(Object id) {
-		return true;
-	}
-
-	public void resetPropertyValue(Object id) {
-		// Not implemented, read only properties
-	}
-
-	public void setPropertyValue(Object id, Object value) {
-		// Not implemented, read only properties
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsShape.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsShape.java
deleted file mode 100644
index 1110bdd..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/model/DynamicTestsShape.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.model;
-
-/**
- * A shape enumeration for the dynamic tests view. (Should use an enum when we
- * can use Java 5).
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsShape {
-
-	public static final DynamicTestsShape CIRCLE = new DynamicTestsShape(
-			"circle"); //$NON-NLS-1$
-
-	public static final DynamicTestsShape SQUARE = new DynamicTestsShape(
-			"square"); //$NON-NLS-1$
-
-	public static final DynamicTestsShape STAR = new DynamicTestsShape("star"); //$NON-NLS-1$
-
-	public static final DynamicTestsShape TRIANGLE = new DynamicTestsShape(
-			"triangle"); //$NON-NLS-1$
-
-	/**
-	 * @return the shape
-	 */
-	public static DynamicTestsShape getShape(String value) {
-		if (SQUARE.getShape().equals(value)) {
-			return SQUARE;
-		} else if (CIRCLE.getShape().equals(value)) {
-			return CIRCLE;
-		} else if (TRIANGLE.getShape().equals(value)) {
-			return TRIANGLE;
-		} else if (STAR.getShape().equals(value)) {
-			return STAR;
-		}
-		return null;
-	}
-
-	private String shape;
-
-	private DynamicTestsShape(String aShape) {
-		setShape(aShape);
-	}
-
-	/**
-	 * @return the shape
-	 */
-	public String getShape() {
-		return shape;
-	}
-
-	/**
-	 * @param shape
-	 *            the shape to set
-	 */
-	public void setShape(String aShape) {
-		this.shape = aShape;
-	}
-
-	public String toString() {
-		return getShape();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsAdvancedSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsAdvancedSectionDescriptor.java
deleted file mode 100644
index 0d4ca12..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsAdvancedSectionDescriptor.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsAdvancedSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsAdvancedSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsAdvancedSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public int getEnablesFor() {
-		return 1;
-	}
-
-	public String getId() {
-		return "AdvancedSection"; //$NON-NLS-1$
-	}
-
-	public List getInputTypes() {
-		List list = new ArrayList();
-		list.add(DynamicTestsElement.class.getName());
-		return list;
-	}
-
-	public ISection getSectionClass() {
-		return new AdvancedPropertySection();
-	}
-
-	public String getTargetTab() {
-		return "AdvancedTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlackSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlackSectionDescriptor.java
deleted file mode 100644
index 107ae3e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlackSectionDescriptor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsBlackSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsBlackSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsBlackSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsBlackSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsBlackSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsBlackSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsBlackSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsBlackSection();
-	}
-
-	public String getTargetTab() {
-		return "BlackTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlueSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlueSectionDescriptor.java
deleted file mode 100644
index 2eca181..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsBlueSectionDescriptor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsBlueSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsBlueSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsBlueSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsBlueSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsBlueSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsBlueSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsBlueSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsBlueSection();
-	}
-
-	public String getTargetTab() {
-		return "ColorTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsCircleSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsCircleSectionDescriptor.java
deleted file mode 100644
index ab6e4b7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsCircleSectionDescriptor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsCircleSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsCircleSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsCircleSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsCircleSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsCircleSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsCircleSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsCircleSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsCircleSection();
-	}
-
-	public String getTargetTab() {
-		return "ShapeTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsElementSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsElementSectionDescriptor.java
deleted file mode 100644
index 0d0e9bd..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsElementSectionDescriptor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsElementSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsElementSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsElementSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsElementSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public String getId() {
-		return "DynamicTestsElementSection"; //$NON-NLS-1$
-	}
-
-	public List getInputTypes() {
-		List list = new ArrayList();
-		list.add(DynamicTestsElement.class.getName());
-		return list;
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsElementSection();
-	}
-
-	public String getTargetTab() {
-		return "ElementTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsGreenSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsGreenSectionDescriptor.java
deleted file mode 100644
index 74e2da3..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsGreenSectionDescriptor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsGreenSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsGreenSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsGreenSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsGreenSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsGreenSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsGreenSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsGreenSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsGreenSection();
-	}
-
-	public String getTargetTab() {
-		return "ColorTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsRedSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsRedSectionDescriptor.java
deleted file mode 100644
index 72a25c8..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsRedSectionDescriptor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsRedSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsRedSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsRedSectionDescriptor extends AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsRedSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsRedSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsRedSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsRedSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsRedSection();
-	}
-
-	public String getTargetTab() {
-		return "ColorTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSectionDescriptorProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSectionDescriptorProvider.java
deleted file mode 100644
index 8a65acb..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSectionDescriptorProvider.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider;
-
-/**
- * A section descriptor provider for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsSectionDescriptorProvider implements
-		ISectionDescriptorProvider {
-
-	public ISectionDescriptor[] getSectionDescriptors() {
-		return new ISectionDescriptor[] {
-				new DynamicTestsStarSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsBlueSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsCircleSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsElementSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsGreenSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsAdvancedSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsRedSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsSquareSectionDescriptor(
-						new DynamicTestsTypeMapper()),
-				new DynamicTestsTriangleSectionDescriptor(
-						new DynamicTestsTypeMapper()) };
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSquareSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSquareSectionDescriptor.java
deleted file mode 100644
index af5377d..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsSquareSectionDescriptor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsSquareSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsSquareSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsSquareSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsSquareSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsSquareSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsSquareSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsSquareSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsSquareSection();
-	}
-
-	public String getTargetTab() {
-		return "ShapeTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsStarSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsStarSectionDescriptor.java
deleted file mode 100644
index 440f588..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsStarSectionDescriptor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsStarSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsStarSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsStarSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsStarSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsStarSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsStarSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsStarSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsStarSection();
-	}
-
-	public String getTargetTab() {
-		return "StarTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsTriangleSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsTriangleSectionDescriptor.java
deleted file mode 100644
index 7f5f3e3..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/section/descriptors/DynamicTestsTriangleSectionDescriptor.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.section.descriptors;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.filters.DynamicTestsTriangleSectionFilter;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.sections.DynamicTestsTriangleSection;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITypeMapper;
-
-/**
- * A section descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsTriangleSectionDescriptor extends
-		AbstractSectionDescriptor {
-
-	/**
-	 * Constructor for DynamicTestsTriangleSectionDescriptor.
-	 * 
-	 * @param typeMapper
-	 *            the optional type mapper for the section.
-	 */
-	public DynamicTestsTriangleSectionDescriptor(ITypeMapper typeMapper) {
-		super(typeMapper);
-	}
-
-	public IFilter getFilter() {
-		return new DynamicTestsTriangleSectionFilter();
-	}
-
-	public String getId() {
-		return "DynamicTestsTriangleSection"; //$NON-NLS-1$
-	}
-
-	public ISection getSectionClass() {
-		return new DynamicTestsTriangleSection();
-	}
-
-	public String getTargetTab() {
-		return "ShapeTab"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsAbstractLabelSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsAbstractLabelSection.java
deleted file mode 100644
index 0959295..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsAbstractLabelSection.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * An abstract section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public abstract class DynamicTestsAbstractLabelSection extends
-		AbstractPropertySection {
-
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-				.createFlatFormComposite(parent);
-
-		Group group = getWidgetFactory().createGroup(composite, getGroup());
-		FormLayout layout = new FormLayout();
-		layout.marginWidth = ITabbedPropertyConstants.HSPACE + 2;
-		layout.marginHeight = ITabbedPropertyConstants.VSPACE;
-		layout.spacing = ITabbedPropertyConstants.VMARGIN + 1;
-		group.setLayout(layout);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(100, 0);
-		group.setLayoutData(data);
-
-		CLabel nameLabel = getWidgetFactory().createCLabel(group, getLabel());
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		nameLabel.setLayoutData(data);
-	}
-
-	public abstract String getGroup();
-
-	public abstract String getLabel();
-
-	public boolean shouldUseExtraSpace() {
-		return true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlackSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlackSection.java
deleted file mode 100644
index 7e89b64..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlackSection.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsBlackSection extends DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Black"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for black elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlueSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlueSection.java
deleted file mode 100644
index 12a22ca..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsBlueSection.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsBlueSection extends DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Color"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for blue elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsCircleSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsCircleSection.java
deleted file mode 100644
index 4306e65..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsCircleSection.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsCircleSection extends DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Shape"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for circle elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsElementSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsElementSection.java
deleted file mode 100644
index 2940831..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsElementSection.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsElementSection extends
-		DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Element"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for any element."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsGreenSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsGreenSection.java
deleted file mode 100644
index ea5b7ff..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsGreenSection.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsGreenSection extends DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Color"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for green elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsRedSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsRedSection.java
deleted file mode 100644
index dbe0ce3..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsRedSection.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsRedSection extends DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Color"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for red elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsSquareSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsSquareSection.java
deleted file mode 100644
index f946347..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsSquareSection.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsSquareSection extends DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Shape"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for square elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsStarSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsStarSection.java
deleted file mode 100644
index fd8f058..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsStarSection.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsStarSection extends DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Star"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for star elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsTriangleSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsTriangleSection.java
deleted file mode 100644
index 875049b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/sections/DynamicTestsTriangleSection.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.sections;
-
-/**
- * A section for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsTriangleSection extends
-		DynamicTestsAbstractLabelSection {
-
-	public String getGroup() {
-		return "Shape"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "A section for triangle elements."; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsAdvancedTabDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsAdvancedTabDescriptor.java
deleted file mode 100644
index 775ce3b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsAdvancedTabDescriptor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.tab.descriptors;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsAdvancedSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-
-/**
- * A tab descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsAdvancedTabDescriptor extends AbstractTabDescriptor {
-
-	public DynamicTestsAdvancedTabDescriptor() {
-		super();
-		getSectionDescriptors().add(
-				new DynamicTestsAdvancedSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-	}
-
-	public String getCategory() {
-		return "advanced"; //$NON-NLS-1$
-	}
-
-	public String getId() {
-		return "AdvancedTab"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "Advanced"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsBlackTabDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsBlackTabDescriptor.java
deleted file mode 100644
index 1482a53..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsBlackTabDescriptor.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.tab.descriptors;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.views.properties.tabbed.Activator;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsBlackSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-
-/**
- * A tab descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsBlackTabDescriptor extends AbstractTabDescriptor {
-	private Image image;
-
-	public DynamicTestsBlackTabDescriptor() {
-		super();
-		getSectionDescriptors().add(
-				new DynamicTestsBlackSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-	}
-
-	public String getAfterTab() {
-		return "ColorTab"; //$NON-NLS-1$
-	}
-
-	public String getCategory() {
-		return "default"; //$NON-NLS-1$
-	}
-
-	public String getId() {
-		return "BlackTab"; //$NON-NLS-1$
-	}
-
-	public Image getImage() {
-		if (image == null) {
-			image = Activator
-					.getImageDescriptor("icons/black_triangle.gif").createImage(); //$NON-NLS-1$ 
-		}
-		return image;
-	}
-
-	public String getLabel() {
-		return "Black"; //$NON-NLS-1$
-	}
-
-	public boolean isIndented() {
-		return true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsColorTabDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsColorTabDescriptor.java
deleted file mode 100644
index 0749af6..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsColorTabDescriptor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.tab.descriptors;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsBlueSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsGreenSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsRedSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-
-/**
- * A tab descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsColorTabDescriptor extends AbstractTabDescriptor {
-
-	public DynamicTestsColorTabDescriptor() {
-		super();
-		getSectionDescriptors().add(
-				new DynamicTestsRedSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-		getSectionDescriptors().add(
-				new DynamicTestsGreenSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-		getSectionDescriptors().add(
-				new DynamicTestsBlueSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-	}
-
-	public String getAfterTab() {
-		return "ElementTab"; //$NON-NLS-1$
-	}
-
-	public String getCategory() {
-		return "default"; //$NON-NLS-1$
-	}
-
-	public String getId() {
-		return "ColorTab"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "Color"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsElementTabDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsElementTabDescriptor.java
deleted file mode 100644
index 8748e6d..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsElementTabDescriptor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.tab.descriptors;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsElementSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-
-/**
- * A tab descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsElementTabDescriptor extends AbstractTabDescriptor {
-
-	public DynamicTestsElementTabDescriptor() {
-		super();
-		getSectionDescriptors().add(
-				new DynamicTestsElementSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-	}
-
-	public String getCategory() {
-		return "default"; //$NON-NLS-1$
-	}
-
-	public String getId() {
-		return "ElementTab"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "Element"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsShapeTabDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsShapeTabDescriptor.java
deleted file mode 100644
index 724e7b1..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsShapeTabDescriptor.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.tab.descriptors;
-
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsCircleSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsSquareSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.section.descriptors.DynamicTestsTriangleSectionDescriptor;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsTypeMapper;
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-
-/**
- * A tab descriptor for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsShapeTabDescriptor extends AbstractTabDescriptor {
-
-	public DynamicTestsShapeTabDescriptor() {
-		super();
-		getSectionDescriptors().add(
-				new DynamicTestsCircleSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-		getSectionDescriptors().add(
-				new DynamicTestsSquareSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-		getSectionDescriptors().add(
-				new DynamicTestsTriangleSectionDescriptor(
-						new DynamicTestsTypeMapper()));
-	}
-
-	public String getAfterTab() {
-		return "ColorTab"; //$NON-NLS-1$
-	}
-
-	public String getCategory() {
-		return "default"; //$NON-NLS-1$
-	}
-
-	public String getId() {
-		return "ShapeTab"; //$NON-NLS-1$
-	}
-
-	public String getLabel() {
-		return "Shape"; //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsTabDescriptorProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsTabDescriptorProvider.java
deleted file mode 100644
index b726ff8..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/tab/descriptors/DynamicTestsTabDescriptorProvider.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.tab.descriptors;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;
-
-/**
- * A tab descriptor provider for the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsTabDescriptorProvider implements
-		ITabDescriptorProvider {
-
-	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
-			ISelection selection) {
-		return new ITabDescriptor[] { new DynamicTestsElementTabDescriptor(),
-				new DynamicTestsShapeTabDescriptor(),
-				new DynamicTestsColorTabDescriptor(),
-				new DynamicTestsAdvancedTabDescriptor(),
-				new DynamicTestsBlackTabDescriptor() };
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTitleBarLabelProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTitleBarLabelProvider.java
deleted file mode 100644
index 86e57f4..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTitleBarLabelProvider.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.views;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-
-/**
- * Label provider for the title bar for the tabbed property view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsTitleBarLabelProvider extends
-		org.eclipse.jface.viewers.LabelProvider {
-
-	public Image getImage(Object obj) {
-		Assert.isTrue(obj instanceof IStructuredSelection);
-		IStructuredSelection structuredSelection = (IStructuredSelection) obj;
-		if (structuredSelection.equals(StructuredSelection.EMPTY) ||
-				structuredSelection.size() > 1) {
-			return null;
-		}
-		DynamicTestsElement dynamicTestsElement = (DynamicTestsElement) ((DynamicTestsTreeNode) structuredSelection
-				.getFirstElement()).getValue();
-		return dynamicTestsElement.getImage();
-	}
-
-	public String getText(Object obj) {
-		Assert.isTrue(obj instanceof IStructuredSelection);
-		IStructuredSelection structuredSelection = (IStructuredSelection) obj;
-		if (structuredSelection.equals(StructuredSelection.EMPTY)) {
-			return null;
-		}
-		if (structuredSelection.size() > 1) {
-			return structuredSelection.size() + " items selected";//$NON-NLS-1$
-		}
-		DynamicTestsElement dynamicTestsElement = (DynamicTestsElement) ((TreeNode) structuredSelection
-				.getFirstElement()).getValue();
-		return dynamicTestsElement.getName();
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTreeNode.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTreeNode.java
deleted file mode 100644
index e607c65..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTreeNode.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.views;
-
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-
-/**
- * A nodes in the tree of the dynamic tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class DynamicTestsTreeNode extends TreeNode implements
-		ITabbedPropertySheetPageContributor {
-
-	public DynamicTestsTreeNode(Object object) {
-		super(object);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
-	 */
-	public String getContributorId() {
-		return getDynamicTestsElement().getContributorId();
-	}
-
-	public DynamicTestsElement getDynamicTestsElement() {
-		return (DynamicTestsElement) getValue();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTypeMapper.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTypeMapper.java
deleted file mode 100644
index d68dd1d..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsTypeMapper.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.views;
-
-import org.eclipse.ui.views.properties.tabbed.AbstractTypeMapper;
-
-/**
- * A type mapper for nodes in the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsTypeMapper extends AbstractTypeMapper {
-
-	public Class mapType(Object object) {
-		if (object instanceof DynamicTestsTreeNode) {
-			return ((DynamicTestsTreeNode) object).getDynamicTestsElement()
-					.getClass();
-		}
-		return super.mapType(object);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsView.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsView.java
deleted file mode 100644
index 0f52383..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsView.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.views;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.tests.views.properties.tabbed.Activator;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * A view to test dynamic contributions to the tabbed properties view. The view
- * has three modes of providing tabs and sections to the tabbed properties view:
- * use static contributions from plugin.xml, use dynamic section contributions
- * from code, or use dynamic tab (and section) contributions from code.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsView extends ViewPart implements
-		ITabbedPropertySheetPageContributor {
-
-	class DynamicTestsViewLabelProvider extends LabelProvider {
-
-		public Image getImage(Object obj) {
-			DynamicTestsElement element = ((DynamicTestsTreeNode) obj)
-					.getDynamicTestsElement();
-			return element.getImage();
-		}
-
-		public String getText(Object obj) {
-			DynamicTestsElement element = ((DynamicTestsTreeNode) obj)
-					.getDynamicTestsElement();
-			return element.getName();
-		}
-	}
-
-	public static final String DYNAMIC_TESTS_VIEW_ID = "org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView"; //$NON-NLS-1$
-
-	public static final String DYNAMIC_TESTS_VIEW_STATIC = "org.eclipse.ui.tests.views.properties.tabbed.static"; //$NON-NLS-1$
-
-	public static final String DYNAMIC_TESTS_VIEW_DYNAMIC_TABS = "org.eclipse.ui.tests.views.properties.tabbed.dynamic.tab"; //$NON-NLS-1$
-
-	public static final String DYNAMIC_TESTS_VIEW_DYNAMIC_SECTIONS = "org.eclipse.ui.tests.views.properties.tabbed.dynamic.section"; //$NON-NLS-1$
-	private Action dynamicSectionsAction;
-
-	private Action dynamicTabsAction;
-
-	private Action staticAction;
-
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	private TreeViewer viewer;
-
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		viewer.setContentProvider(new DynamicTestsViewContentProvider(this));
-		viewer.setLabelProvider(new DynamicTestsViewLabelProvider());
-		viewer.setInput(getViewSite());
-		initToolBar();
-		getSite().setSelectionProvider(viewer);
-	}
-
-	public Object getAdapter(Class adapter) {
-		if (adapter == IPropertySheetPage.class) {
-			if (tabbedPropertySheetPage == null) {
-				tabbedPropertySheetPage = new TabbedPropertySheetPage(this);
-			}
-			return tabbedPropertySheetPage;
-		}
-		return super.getAdapter(adapter);
-	}
-
-	public String getContributorId() {
-		if (staticAction.isChecked()) {
-			return DYNAMIC_TESTS_VIEW_STATIC;
-		} else if (dynamicSectionsAction.isChecked()) {
-			return DYNAMIC_TESTS_VIEW_DYNAMIC_SECTIONS;
-		} else if (dynamicTabsAction.isChecked()) {
-			return DYNAMIC_TESTS_VIEW_DYNAMIC_TABS;
-		} else {
-			return null;
-		}
-	}
-
-	public void setContributorId(String contributorId) {
-		if (DYNAMIC_TESTS_VIEW_STATIC.equals(contributorId)) {
-			staticAction.setChecked(true);
-			dynamicSectionsAction.setChecked(false);
-			dynamicTabsAction.setChecked(false);
-		} else if (DYNAMIC_TESTS_VIEW_DYNAMIC_SECTIONS.equals(contributorId)) {
-			staticAction.setChecked(false);
-			dynamicSectionsAction.setChecked(true);
-			dynamicTabsAction.setChecked(false);
-		} else if (DYNAMIC_TESTS_VIEW_DYNAMIC_TABS.equals(contributorId)) {
-			staticAction.setChecked(false);
-			dynamicSectionsAction.setChecked(false);
-			dynamicTabsAction.setChecked(true);
-		}
-	}
-
-	public TabbedPropertySheetPage getTabbedPropertySheetPage() {
-		return tabbedPropertySheetPage;
-	}
-
-	public TreeViewer getViewer() {
-		return viewer;
-	}
-
-	/**
-	 * Create the tool bar for the view. The tool bar has three toggle buttons
-	 * which enable one of the three property contributors.
-	 */
-	private void initToolBar() {
-		final String staticText = "Use static contributions from plugin.xml"; //$NON-NLS-1$
-		final String dynamicSectionsText = "Use dynamic section contributions from code"; //$NON-NLS-1$
-		final String dynamicTabsText = "Use dynamic tab (and section) contributions from code"; //$NON-NLS-1$
-		ImageDescriptor imageDescriptor = Activator
-				.getImageDescriptor("icons/sample.gif");//$NON-NLS-1$
-		if (imageDescriptor == null) {
-			imageDescriptor = PlatformUI.getWorkbench().getSharedImages()
-					.getImageDescriptor(ISharedImages.IMG_OBJS_ERROR_TSK);
-		}
-
-		staticAction = new Action(staticText, IAction.AS_CHECK_BOX) {
-			public void run() {
-				if (isChecked()) {
-					getViewSite().getActionBars().getStatusLineManager()
-							.setMessage(staticText);
-					dynamicSectionsAction.setChecked(false);
-					dynamicTabsAction.setChecked(false);
-					viewer.setSelection(StructuredSelection.EMPTY);
-				}
-			}
-		};
-		staticAction.setToolTipText(staticText);
-		staticAction.setImageDescriptor(imageDescriptor);
-		staticAction.setDisabledImageDescriptor(imageDescriptor);
-
-		dynamicSectionsAction = new Action(dynamicSectionsText,
-				IAction.AS_CHECK_BOX) {
-			public void run() {
-				if (isChecked()) {
-					getViewSite().getActionBars().getStatusLineManager()
-							.setMessage(dynamicSectionsText);
-					staticAction.setChecked(false);
-					dynamicTabsAction.setChecked(false);
-					viewer.setSelection(StructuredSelection.EMPTY);
-				}
-			}
-		};
-		dynamicSectionsAction.setToolTipText(dynamicSectionsText);
-		dynamicSectionsAction.setImageDescriptor(imageDescriptor);
-		dynamicSectionsAction.setDisabledImageDescriptor(imageDescriptor);
-
-		dynamicTabsAction = new Action(dynamicTabsText, IAction.AS_CHECK_BOX) {
-			public void run() {
-				if (isChecked()) {
-					getViewSite().getActionBars().getStatusLineManager()
-							.setMessage(dynamicTabsText);
-					staticAction.setChecked(false);
-					dynamicSectionsAction.setChecked(false);
-					viewer.setSelection(StructuredSelection.EMPTY);
-				}
-			}
-		};
-		dynamicTabsAction.setToolTipText(dynamicTabsText);
-		dynamicTabsAction.setImageDescriptor(imageDescriptor);
-		dynamicTabsAction.setDisabledImageDescriptor(imageDescriptor);
-		staticAction.setChecked(true);
-
-		IToolBarManager toolBarManager = getViewSite().getActionBars()
-				.getToolBarManager();
-		toolBarManager.add(staticAction);
-		toolBarManager.add(dynamicSectionsAction);
-		toolBarManager.add(dynamicTabsAction);
-
-		getViewSite().getActionBars().getStatusLineManager().setMessage(
-				staticText);
-	}
-
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsViewContentProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsViewContentProvider.java
deleted file mode 100644
index 28ed034..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/dynamic/views/DynamicTestsViewContentProvider.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.dynamic.views;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.model.DynamicTestsElement;
-
-/**
- * A content provider for nodes in the tree of the dynamic tests view.
- * 
- * @author Anthony Hunter
- */
-public class DynamicTestsViewContentProvider implements
-		IStructuredContentProvider, ITreeContentProvider {
-
-	private DynamicTestsTreeNode invisibleRoot;
-
-	private final DynamicTestsView view;
-
-	public DynamicTestsViewContentProvider(DynamicTestsView dynamicTestsView) {
-		super();
-		this.view = dynamicTestsView;
-	}
-
-	public void dispose() {
-		//
-	}
-
-	public Object[] getChildren(Object parent) {
-		if (parent instanceof DynamicTestsTreeNode) {
-			return ((DynamicTestsTreeNode) parent).getChildren();
-		}
-		return new Object[0];
-	}
-
-	public Object[] getElements(Object parent) {
-		if (parent.equals(this.view.getViewSite())) {
-			if (invisibleRoot == null)
-				initialize();
-			return getChildren(invisibleRoot);
-		}
-		return getChildren(parent);
-	}
-
-	public DynamicTestsTreeNode getInvisibleRoot() {
-		return invisibleRoot;
-	}
-
-	public Object getParent(Object child) {
-		if (child instanceof DynamicTestsTreeNode) {
-			return ((DynamicTestsTreeNode) child).getParent();
-		}
-		return null;
-	}
-
-	public boolean hasChildren(Object parent) {
-		if (parent instanceof DynamicTestsTreeNode)
-			return ((DynamicTestsTreeNode) parent).hasChildren();
-		return false;
-	}
-
-	public void initialize() {
-		String elements[] = new String[] { "icons/black_triangle.gif",//$NON-NLS-1$
-				"icons/blue_circle.gif",//$NON-NLS-1$
-				"icons/blue_square.gif",//$NON-NLS-1$
-				"icons/blue_triangle.gif",//$NON-NLS-1$
-				"icons/green_circle.gif",//$NON-NLS-1$
-				"icons/green_square.gif",//$NON-NLS-1$
-				"icons/green_triangle.gif",//$NON-NLS-1$
-				"icons/red_circle.gif",//$NON-NLS-1$
-				"icons/red_square.gif",//$NON-NLS-1$
-				"icons/red_star.gif",//$NON-NLS-1$
-				"icons/red_triangle.gif" };//$NON-NLS-1$
-		DynamicTestsTreeNode[] nodes = new DynamicTestsTreeNode[elements.length];
-		for (int i = 0; i < elements.length; i++) {
-			DynamicTestsElement dynamicTestsElement = new DynamicTestsElement(
-					view, elements[i]);
-			nodes[i] = new DynamicTestsTreeNode(dynamicTestsElement);
-		}
-		invisibleRoot = new DynamicTestsTreeNode(null);
-		invisibleRoot.setChildren(nodes);
-	}
-
-	public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		//
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Element.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Element.java
deleted file mode 100644
index 7e6f4c1..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Element.java
+++ /dev/null
@@ -1,29 +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.tests.views.properties.tabbed.model;

-

-import org.eclipse.swt.graphics.Image;

-

-public abstract class Element {

-

-    private String name;

-

-    public Element(String aName) {

-        super();

-        this.name = aName;

-    }

-

-    public String getName() {

-        return name;

-    }

-

-    public abstract Image getImage();

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java
deleted file mode 100644
index beb86a0..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Error.java
+++ /dev/null
@@ -1,29 +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.tests.views.properties.tabbed.model;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Error

-    extends Element {

-

-    public Error(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

-        return PlatformUI.getWorkbench().getSharedImages().getImage(

-            ISharedImages.IMG_OBJS_ERROR_TSK);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java
deleted file mode 100644
index e7f8761..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/File.java
+++ /dev/null
@@ -1,29 +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.tests.views.properties.tabbed.model;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class File

-    extends Element {

-

-    public File(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

-        return PlatformUI.getWorkbench().getSharedImages().getImage(

-            ISharedImages.IMG_OBJ_FILE);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java
deleted file mode 100644
index f1251c7..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Folder.java
+++ /dev/null
@@ -1,29 +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.tests.views.properties.tabbed.model;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Folder

-    extends Element {

-

-    public Folder(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

-        return PlatformUI.getWorkbench().getSharedImages().getImage(

-            ISharedImages.IMG_OBJ_FOLDER);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java
deleted file mode 100644
index a6c515d..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Information.java
+++ /dev/null
@@ -1,29 +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.tests.views.properties.tabbed.model;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Information

-    extends Element {

-

-    public Information(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

-        return PlatformUI.getWorkbench().getSharedImages().getImage(

-            ISharedImages.IMG_OBJS_INFO_TSK);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java
deleted file mode 100644
index a883146..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Project.java
+++ /dev/null
@@ -1,29 +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.tests.views.properties.tabbed.model;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.PlatformUI;

-import org.eclipse.ui.ide.IDE.SharedImages;

-

-public class Project

-    extends Element {

-

-    public Project(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

-        return PlatformUI.getWorkbench().getSharedImages().getImage(

-            SharedImages.IMG_OBJ_PROJECT);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java
deleted file mode 100644
index 6498d3b..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/model/Warning.java
+++ /dev/null
@@ -1,29 +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.tests.views.properties.tabbed.model;

-

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.ISharedImages;

-import org.eclipse.ui.PlatformUI;

-

-public class Warning

-    extends Element {

-

-    public Warning(String name) {

-        super(name);

-    }

-

-    public Image getImage() {

-        return PlatformUI.getWorkbench().getSharedImages().getImage(

-            ISharedImages.IMG_OBJS_WARN_TSK);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsContentProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsContentProvider.java
deleted file mode 100644
index 27b9026..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsContentProvider.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Error;
-import org.eclipse.ui.tests.views.properties.tabbed.model.File;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Folder;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Information;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Warning;
-
-/**
- * The content provider for the override tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsContentProvider implements IStructuredContentProvider {
-
-	private Element[] elements;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		// not implemented
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object parent) {
-		if (elements == null) {
-			elements = new Element[] { new Information("Information"), //$NON-NLS-1$
-					new Warning("Warning"), new Error("Error"), //$NON-NLS-1$ //$NON-NLS-2$
-					new File("File"), new Folder("Folder") }; //$NON-NLS-1$//$NON-NLS-2$
-		}
-		return elements;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		// not implemented
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsLabelProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsLabelProvider.java
deleted file mode 100644
index 3419880..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsLabelProvider.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override;
-
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-
-/**
- * The label provider for the override tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsLabelProvider extends LabelProvider implements
-		ITableLabelProvider {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
-	 *      int)
-	 */
-	public Image getColumnImage(Object obj, int index) {
-		return getImage(obj);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
-	 *      int)
-	 */
-	public String getColumnText(Object obj, int index) {
-		return getText(obj);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object object) {
-		if (object instanceof Element) {
-			Element element = (Element) object;
-			return element.getImage();
-		}
-		return super.getImage(object);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object object) {
-		if (object instanceof Element) {
-			Element element = (Element) object;
-			return element.getName();
-		}
-		return super.getText(object);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelection.java
deleted file mode 100644
index 0574b53..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelection.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-
-/**
- * The selection in the override tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsSelection implements ISelection {
-
-	private Element element;
-
-	/**
-	 * Constructor for OverrideTestsSelection
-	 * 
-	 * @param newElement
-	 *            the selected element.
-	 */
-	public OverrideTestsSelection(Element newElement) {
-		this.element = newElement;
-	}
-
-	/**
-	 * Get the selected element.
-	 * 
-	 * @return the selected element.
-	 */
-	public Element getElement() {
-		return element;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelection#isEmpty()
-	 */
-	public boolean isEmpty() {
-		/*
-		 * Since we want to display UI when there is no selection (empty
-		 * selection), we need to return false to isEmpty().
-		 */
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		if (getElement() == null) {
-			return super.toString();
-		}
-		return getElement().getName();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelectionProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelectionProvider.java
deleted file mode 100644
index 88a7ad2..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsSelectionProvider.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-
-/**
- * The selection provider for the override tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsSelectionProvider implements ISelectionProvider {
-
-	private ListenerList selectionChangedListeners = new ListenerList();
-
-	private final TableViewer viewer;
-
-	/**
-	 * Constructor for OverrideTestsSelectionProvider
-	 * 
-	 * @param aViewer
-	 *            the viewer in the OverrideTestsView.
-	 */
-	OverrideTestsSelectionProvider(TableViewer aViewer) {
-		this.viewer = aViewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void addSelectionChangedListener(ISelectionChangedListener listener) {
-		selectionChangedListeners.add(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-	 */
-	public ISelection getSelection() {
-		ISelection selection = viewer.getSelection();
-		IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-		if (structuredSelection.isEmpty()) {
-			return new OverrideTestsSelection(null);
-		}
-		Element element = (Element) structuredSelection.getFirstElement();
-		return new OverrideTestsSelection(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
-	public void removeSelectionChangedListener(
-			ISelectionChangedListener listener) {
-		selectionChangedListeners.remove(listener);
-	}
-
-	/**
-	 * Notify the selection changed listeners that a selection change has
-	 * occurred.
-	 * 
-	 * @param event
-	 *            the selection change event.
-	 */
-	public void selectionChanged(final SelectionChangedEvent event) {
-		// pass on the notification to listeners
-		Object[] listeners = selectionChangedListeners.getListeners();
-		for (int i = 0; i < listeners.length; ++i) {
-			final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
-			l.selectionChanged(event);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setSelection(ISelection selection) {
-		viewer.setSelection(selection);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsView.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsView.java
deleted file mode 100644
index 77b144e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/OverrideTestsView.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.override.folders.OverrideTestsTabFolderPropertySheetPage;
-import org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * The override tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsView extends ViewPart implements
-		ITabbedPropertySheetPageContributor, ISelectionChangedListener {
-
-	public static final String OVERRIDE_TESTS_VIEW_ID = "org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView"; //$NON-NLS-1$
-
-	private OverrideTestsContentProvider overrideTestsContentProvider;
-
-	private ArrayList selection = new ArrayList();
-
-	private OverrideTestsSelectionProvider selectionProvider;
-
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	private TableViewer viewer;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL |
-				SWT.V_SCROLL);
-		overrideTestsContentProvider = new OverrideTestsContentProvider();
-		viewer.setContentProvider(overrideTestsContentProvider);
-		viewer.setLabelProvider(new OverrideTestsLabelProvider());
-		viewer.setInput(getViewSite());
-		selectionProvider = new OverrideTestsSelectionProvider(viewer);
-		getSite().setSelectionProvider(selectionProvider);
-		selection.add(viewer);
-		viewer.addSelectionChangedListener(this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (IPropertySheetPage.class.equals(adapter)) {
-			if (TestsPerspective.TESTS_PERSPECTIVE_ID.equals(getSite()
-					.getWorkbenchWindow().getActivePage().getPerspective()
-					.getId())) {
-				if (tabbedPropertySheetPage == null) {
-					tabbedPropertySheetPage = new TabbedPropertySheetPage(this);
-				}
-				return tabbedPropertySheetPage;
-			}
-			return new OverrideTestsTabFolderPropertySheetPage();
-		}
-		return super.getAdapter(adapter);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
-	 */
-	public String getContributorId() {
-		return "org.eclipse.ui.tests.views.properties.tabbed.override"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Get the currently selected element in the view.
-	 * 
-	 * @return the currently selected element in the view.
-	 */
-	public ISelection getSelection() {
-		return selectionProvider.getSelection();
-	}
-
-	/**
-	 * Get the tabbed property sheet page for the view.
-	 * 
-	 * @return the tabbed property sheet page for the view.
-	 */
-	public TabbedPropertySheetPage getTabbedPropertySheetPage() {
-		return tabbedPropertySheetPage;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-	 */
-	public void selectionChanged(SelectionChangedEvent event) {
-		SelectionChangedEvent newEvent = new SelectionChangedEvent(
-				selectionProvider, selectionProvider.getSelection());
-		selectionProvider.selectionChanged(newEvent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-
-	/**
-	 * Set the selected element to be the same type as the provided class.
-	 * 
-	 * @param elementClass
-	 *            the provided class.
-	 */
-	public void setSelection(Class elementClass) {
-		if (elementClass == null) {
-			viewer.setSelection(StructuredSelection.EMPTY);
-		}
-		Object[] elements = overrideTestsContentProvider.getElements(null);
-		for (int i = 0; i < elements.length; i++) {
-			Element element = (Element) elements[i];
-			Class clazz = element.getClass();
-			if (elementClass == clazz) {
-				StructuredSelection newSelection = new StructuredSelection(
-						element);
-				viewer.setSelection(newSelection);
-				break;
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AbstractTabFolder.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AbstractTabFolder.java
deleted file mode 100644
index 164426d..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AbstractTabFolder.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * The abstract implementation of a TabFolder.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public abstract class AbstractTabFolder implements IOverrideTestsTabFolder {
-
-	private ListenerList itemSelectionListeners = new ListenerList();
-
-	private CTabFolder tabFolder;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.ISampleViewFolder#addSampleViewItemSelectionListener(asd.views.folders.ISampleViewItemSelectionListener)
-	 */
-	public void addItemSelectionListener(
-			IOverrideTestsTabItemSelectionListener listener) {
-		itemSelectionListeners.add(listener);
-	}
-
-	/**
-	 * Determines if this folder applies to the element.
-	 * 
-	 * @param element
-	 *            the element.
-	 * @return <code>true</code> if this folder applies to the element.
-	 */
-	public boolean appliesTo(Element element) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.IAaaFolder#createControls(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControls(Composite composite) {
-		tabFolder = new CTabFolder(composite, SWT.NONE);
-
-		IOverrideTestsItem[] items = getItem();
-
-		for (int i = 0; i < items.length; i++) {
-			CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE);
-			items[i].createControls(tabFolder);
-			tabItem.setText(items[i].getText());
-			tabItem.setImage(items[i].getImage());
-			tabItem.setControl(items[i].getComposite());
-			tabItem.setData(items[i]);
-		}
-		tabFolder.setSelection(0);
-
-		tabFolder.addSelectionListener(new SelectionAdapter() {
-
-			public void widgetSelected(SelectionEvent e) {
-				CTabItem aTabItem = (CTabItem) e.item;
-				Object[] listeners = itemSelectionListeners.getListeners();
-				for (int i = 0; i < listeners.length; i++) {
-					IOverrideTestsTabItemSelectionListener listener = (IOverrideTestsTabItemSelectionListener) listeners[i];
-					listener.itemSelected((IOverrideTestsItem) aTabItem
-							.getData());
-				}
-			}
-		});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.IAaaFolder#dispose()
-	 */
-	public void dispose() {
-		tabFolder.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.ISampleViewFolder#removeSampleViewItemSelectionListener(asd.views.folders.ISampleViewItemSelectionListener)
-	 */
-	public void removeItemSelectionListener(
-			IOverrideTestsTabItemSelectionListener listener) {
-		itemSelectionListeners.remove(listener);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.IAaaFolder#selectionChanged(asd.views.elements.IAaaElement)
-	 */
-	public void selectionChanged(Element element) {
-		CTabItem[] items = tabFolder.getItems();
-		for (int i = 0; i < items.length; i++) {
-			CTabItem tabItem = items[i];
-			if (((IOverrideTestsItem) tabItem.getData()).getText().equals(
-					element.getName())) {
-				tabFolder.setSelection(tabItem);
-			}
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AdvancedTabFolder.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AdvancedTabFolder.java
deleted file mode 100644
index e46ce7c..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/AdvancedTabFolder.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.model.File;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Folder;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.FileItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.FolderItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * The advanced TabFolder is displayed when Information, Warning or Error is the
- * selected element in the override tests view.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class AdvancedTabFolder extends AbstractTabFolder {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.AbstractSampleViewFolder#appliesTo(asd.views.elements.ISampleViewElement)
-	 */
-	public boolean appliesTo(Element element) {
-		return ((element instanceof File) || (element instanceof Folder));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.IAaaFolder#getAaaItem()
-	 */
-	public IOverrideTestsItem[] getItem() {
-		return new IOverrideTestsItem[] { new FileItem(), new FolderItem() };
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/BasicTabFolder.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/BasicTabFolder.java
deleted file mode 100644
index 27dac06..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/BasicTabFolder.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Error;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Information;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Warning;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.ErrorItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.WarningItem;
-
-/**
- * The basic TabFolder is displayed when Information, Warning or Error is the
- * selected element in the override tests view.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class BasicTabFolder extends AbstractTabFolder {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.AbstractSampleViewFolder#appliesTo(asd.views.elements.ISampleViewElement)
-	 */
-	public boolean appliesTo(Element element) {
-		return ((element instanceof Information) ||
-				(element instanceof Warning) || (element instanceof Error));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.IAaaFolder#getAaaItem()
-	 */
-	public IOverrideTestsItem[] getItem() {
-		return new IOverrideTestsItem[] { new InformationItem(),
-				new WarningItem(), new ErrorItem() };
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/EmptyTabFolder.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/EmptyTabFolder.java
deleted file mode 100644
index c2063d0..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/EmptyTabFolder.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView;
-
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.EmptyItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * The empty TabFolder is displayed when there is no selected element in the
- * override tests view.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class EmptyTabFolder extends AbstractTabFolder {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.ISampleViewFolder#appliesTo(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
-		if (part instanceof OverrideTestsView) {
-			if (selection instanceof IStructuredSelection) {
-				IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-				if (structuredSelection.equals(StructuredSelection.EMPTY)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public IOverrideTestsItem[] getItem() {
-		return new IOverrideTestsItem[] { new EmptyItem() };
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabFolder.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabFolder.java
deleted file mode 100644
index 63072b1..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabFolder.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * Interface for a TabFolder used by the properties view for the
- * TabFolder/TabItem example.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverrideTestsTabFolder {
-	/**
-	 * Add the listener from the item selection listeners.
-	 * 
-	 * @param listener
-	 *            the item selection listener.
-	 */
-	public void addItemSelectionListener(
-			IOverrideTestsTabItemSelectionListener listener);
-
-	/**
-	 * Determines if this folder applies to the element.
-	 * 
-	 * @param element
-	 *            the element.
-	 * @return <code>true</code> if this folder applies to the element.
-	 */
-	public boolean appliesTo(Element element);
-
-	/**
-	 * Creates the controls for the folder.
-	 * 
-	 * @param parent
-	 *            the parent composite for the contents.
-	 */
-	public void createControls(Composite parent);
-
-	/**
-	 * Dispose the controls for the folder.
-	 */
-	public void dispose();
-
-	/**
-	 * Get the items for this folder.
-	 * 
-	 * @return the items for this folder.
-	 */
-	public IOverrideTestsItem[] getItem();
-
-	/**
-	 * Remove the listener from the item selection listeners.
-	 * 
-	 * @param listener
-	 *            the item selection listener.
-	 */
-	public void removeItemSelectionListener(
-			IOverrideTestsTabItemSelectionListener listener);
-
-	/**
-	 * Notifies the folder that the selected element has changed.
-	 * 
-	 * @param element
-	 *            the selected element.
-	 */
-	public void selectionChanged(Element element);
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabItemSelectionListener.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabItemSelectionListener.java
deleted file mode 100644
index 15f2e12..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/IOverrideTestsTabItemSelectionListener.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * An item selection listener.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverrideTestsTabItemSelectionListener {
-	/**
-	 * Notifies this listener that the selected item has changed.
-	 * 
-	 * @param key
-	 *            the name of the selected item.
-	 */
-	public void itemSelected(IOverrideTestsItem item);
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPage.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPage.java
deleted file mode 100644
index 2578bb3..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPage.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-
-/**
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsTabFolderPropertySheetPage implements
-		IPropertySheetPage {
-
-	private Composite composite;
-
-	private OverrideTestsTabFolderPropertySheetPageContentManager contentManager;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		composite = new Composite(parent, SWT.NONE);
-		composite.setLayout(new FillLayout());
-		contentManager = new OverrideTestsTabFolderPropertySheetPageContentManager(
-				composite);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IPage#dispose()
-	 */
-	public void dispose() {
-		composite.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IPage#getControl()
-	 */
-	public Control getControl() {
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		contentManager.selectionChanged(part, selection);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
-	 */
-	public void setActionBars(IActionBars actionBars) {
-		// Not implemented
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IPage#setFocus()
-	 */
-	public void setFocus() {
-		composite.setFocus();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPageContentManager.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPageContentManager.java
deleted file mode 100644
index c472fa6..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/folders/OverrideTestsTabFolderPropertySheetPageContentManager.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.folders;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsSelection;
-import org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * The content manager for the override tests property sheet page.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example is a before look at the
- * properties view before the migration to the tabbed properties view and the
- * override tabs support. When elements are selected in the OverrideTestsView,
- * TabFolder/TabItem are displayed for the elements.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsTabFolderPropertySheetPageContentManager implements
-		IOverrideTestsTabItemSelectionListener {
-
-	private IOverrideTestsTabFolder activeFolder;
-
-	private Composite composite;
-
-	private IOverrideTestsTabFolder emptyFolder;
-
-	private IOverrideTestsTabFolder[] folders;
-
-	private OverrideTestsView overrideTestsView;
-
-	public OverrideTestsTabFolderPropertySheetPageContentManager(
-			Composite parent) {
-		this.composite = parent;
-		this.folders = new IOverrideTestsTabFolder[] { new BasicTabFolder(),
-				new AdvancedTabFolder() };
-		this.emptyFolder = new EmptyTabFolder();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see asd.views.folders.ISampleViewItemSelectionListener#selectionChanged(java.lang.String)
-	 */
-	public void itemSelected(IOverrideTestsItem item) {
-		overrideTestsView.setSelection(item.getElement());
-	}
-
-	/**
-	 * Notifies the content manager that the selection has changed.
-	 * 
-	 * @param part
-	 *            the workbench part containing the selection
-	 * @param selection
-	 *            the current selection.
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		Assert.isTrue(part instanceof OverrideTestsView);
-		this.overrideTestsView = (OverrideTestsView) part;
-		Assert.isTrue(selection instanceof OverrideTestsSelection);
-		Element element = ((OverrideTestsSelection) selection).getElement();
-		IOverrideTestsTabFolder newFolder = null;
-
-		if (element == null) {
-			newFolder = emptyFolder;
-		} else {
-			for (int i = 0; i < folders.length; i++) {
-				if (folders[i].appliesTo(element)) {
-					newFolder = folders[i];
-					break;
-				}
-			}
-		}
-
-		Assert.isTrue(newFolder != null);
-		if (newFolder != activeFolder) {
-			if (activeFolder != null) {
-				activeFolder.removeItemSelectionListener(this);
-				activeFolder.dispose();
-			}
-			activeFolder = newFolder;
-			newFolder.createControls(composite);
-			composite.layout(true);
-			activeFolder.addItemSelectionListener(this);
-		}
-		if (element != null) {
-			activeFolder.selectionChanged(element);
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/EmptyItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/EmptyItem.java
deleted file mode 100644
index da1dddb..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/EmptyItem.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.items;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-
-/**
- * An item for the emply selection when there is no selected element in the
- * override tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class EmptyItem implements IOverrideTestsItem {
-
-	private Composite composite;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#createControls(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControls(Composite parent) {
-		TabbedPropertySheetWidgetFactory factory = new TabbedPropertySheetWidgetFactory();
-		composite = factory.createFlatFormComposite(parent);
-		Label label = factory.createLabel(composite,
-				"Empty Item (no selected element)"); //$NON-NLS-1$
-		label.setLayoutData(new FormData());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#dispose()
-	 */
-	public void dispose() {
-		if (composite != null && !composite.isDisposed()) {
-			composite.dispose();
-			composite = null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#getComposite()
-	 */
-	public Composite getComposite() {
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#getElement()
-	 */
-	public Class getElement() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#getImage()
-	 */
-	public Image getImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#getText()
-	 */
-	public String getText() {
-		return "Empty Item"; //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/ErrorItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/ErrorItem.java
deleted file mode 100644
index f6d9905..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/ErrorItem.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.items;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Error;
-
-/**
- * An item for when the Error element is the selected element in the override
- * tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class ErrorItem extends InformationItem {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getElement()
-	 */
-	public Class getElement() {
-		return Error.class;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getImage()
-	 */
-	public Image getImage() {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJS_ERROR_TSK);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getText()
-	 */
-	public String getText() {
-		return "Error"; //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FileItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FileItem.java
deleted file mode 100644
index 3621f82..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FileItem.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.items;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.model.File;
-
-/**
- * An item for when the File element is the selected element in the override
- * tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class FileItem extends InformationItem {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getElement()
-	 */
-	public Class getElement() {
-		return File.class;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getImage()
-	 */
-	public Image getImage() {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJ_FILE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getText()
-	 */
-	public String getText() {
-		return "File"; //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FolderItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FolderItem.java
deleted file mode 100644
index aac32a3..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/FolderItem.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.items;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Folder;
-
-/**
- * An item for when the Folder element is the selected element in the override
- * tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class FolderItem extends InformationItem {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getElement()
-	 */
-	public Class getElement() {
-		return Folder.class;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getImage()
-	 */
-	public Image getImage() {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJ_FOLDER);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getText()
-	 */
-	public String getText() {
-		return "Folder"; //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/IOverrideTestsItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/IOverrideTestsItem.java
deleted file mode 100644
index 31fde69..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/IOverrideTestsItem.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.items;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Interface for an item used by the properties view for the override tabs
- * tests.
- * <p>
- * When the TabbedPropertySheetPage is used by the OverrideTestsView tests view,
- * each item is displayed in a ISection.
- * <p>
- * The OverrideTestsTabFolderPropertySheetPage example uses the items to display
- * in TabFolder/TabItem.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverrideTestsItem {
-
-	/**
-	 * Creates the controls for the item.
-	 * 
-	 * @param parent
-	 *            the parent composite for the item.
-	 * @param factory
-	 *            the factory to create widgets for the item.
-	 */
-	public void createControls(Composite parent);
-
-	/**
-	 * Dispose the controls for the item.
-	 */
-	public void dispose();
-
-	/**
-	 * Get the root composite for the item.
-	 * 
-	 * @return the root composite for the item.
-	 */
-	public Composite getComposite();
-
-	/**
-	 * Get the kind of {@link Element} that this item applies to.
-	 * 
-	 * @return the kind of {@link Element} that this item applies to.
-	 */
-	public Class getElement();
-
-	/**
-	 * Get the icon image for the item.
-	 * 
-	 * @return the icon image for the item.
-	 */
-	public Image getImage();
-
-	/**
-	 * Get the text label for the item.
-	 * 
-	 * @return the text label for the item.
-	 */
-	public String getText();
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/InformationItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/InformationItem.java
deleted file mode 100644
index 36183ca..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/InformationItem.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.items;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
-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.tests.views.properties.tabbed.model.Information;
-
-/**
- * An item for when the Information element is the selected element in the
- * override tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class InformationItem implements IOverrideTestsItem {
-
-	private Composite composite;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#createControls(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControls(Composite parent) {
-		FormToolkit toolkit = new FormToolkit(parent.getDisplay());
-		composite = toolkit.createComposite(parent);
-		composite.setLayout(new FillLayout());
-
-		ScrolledForm form = toolkit.createScrolledForm(composite);
-		form.getBody().setLayout(new TableWrapLayout());
-
-		Section section = toolkit.createSection(form.getBody(),
-				Section.DESCRIPTION);
-		TableWrapData td = new TableWrapData(TableWrapData.FILL,
-				TableWrapData.TOP);
-		td.grabHorizontal = true;
-		section.setLayoutData(td);
-		section.setText(getText() + " Properties"); //$NON-NLS-1$
-		toolkit.createCompositeSeparator(section);
-		section.setDescription("Set the properties of the selected " + //$NON-NLS-1$
-				getText() + " element.");//$NON-NLS-1$
-
-		Composite sectionClient = toolkit.createComposite(section);
-		FormLayout layout = new FormLayout();
-		layout.marginWidth = 5;
-		layout.marginHeight = 5;
-		layout.spacing = 2;
-		sectionClient.setLayout(layout);
-		section.setClient(sectionClient);
-		toolkit.paintBordersFor(sectionClient);
-
-		Button radioLeft = toolkit.createButton(sectionClient, "Choice 1",//$NON-NLS-1$
-				SWT.RADIO);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.top = new FormAttachment(0, 5);
-		radioLeft.setLayoutData(data);
-
-		Button radioRight = toolkit.createButton(sectionClient, "Choice 2",//$NON-NLS-1$
-				SWT.RADIO);
-		data = new FormData();
-		data.left = new FormAttachment(radioLeft, 5);
-		data.top = new FormAttachment(0, 5);
-		radioRight.setLayoutData(data);
-
-		Button radioRight2 = toolkit.createButton(sectionClient, "Choice 3",//$NON-NLS-1$
-				SWT.RADIO);
-		data = new FormData();
-		data.left = new FormAttachment(radioRight, 5);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 5);
-		radioRight2.setLayoutData(data);
-
-		Button flag = toolkit.createButton(sectionClient,
-				"Value of the flag property", SWT.CHECK);//$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(radioLeft, 5);
-		flag.setLayoutData(data);
-
-		Label nameLabel = toolkit.createLabel(sectionClient, "Text Property:"); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.top = new FormAttachment(flag, 5);
-		nameLabel.setLayoutData(data);
-
-		Text nameText = toolkit.createText(sectionClient, ""); //$NON-NLS-1$
-		data = new FormData();
-		data.left = new FormAttachment(nameLabel, 5);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(flag, 5);
-		nameText.setLayoutData(data);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#dispose()
-	 */
-	public void dispose() {
-		if (composite != null && !composite.isDisposed()) {
-			composite.dispose();
-			composite = null;
-		}
-	}
-
-	public Composite getComposite() {
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#getElement()
-	 */
-	public Class getElement() {
-		return Information.class;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#getImage()
-	 */
-	public Image getImage() {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJS_INFO_TSK);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem#getText()
-	 */
-	public String getText() {
-		return "Information"; //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/WarningItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/WarningItem.java
deleted file mode 100644
index 102d280..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/items/WarningItem.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.items;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Warning;
-
-/**
- * An item for when the Warning element is the selected element in the override
- * tests view.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class WarningItem extends InformationItem {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getElement()
-	 */
-	public Class getElement() {
-		return Warning.class;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getImage()
-	 */
-	public Image getImage() {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJS_WARN_TSK);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem#getText()
-	 */
-	public String getText() {
-		return "Warning"; //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AbstractTabList.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AbstractTabList.java
deleted file mode 100644
index fde823a..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AbstractTabList.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-
-/**
- * The abstract implementation of a tab list.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public abstract class AbstractTabList implements IOverrideTestsTabList {
-
-	private Composite composite;
-
-	private int selectedTabItem;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.IOverrideTestsTabList#appliesTo(org.eclipse.ui.tests.views.properties.tabbed.model.Element)
-	 */
-	public boolean appliesTo(Element element) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.IOverrideTestsTabList#createControls(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControls(Composite parent) {
-		this.composite = parent;
-		OverrideTestsTabItem activeTab = (OverrideTestsTabItem) (getTabs()[selectedTabItem]);
-		activeTab.getItem().createControls(parent);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.IOverrideTestsTabList#dispose()
-	 */
-	public void dispose() {
-		OverrideTestsTabItem activeTab = (OverrideTestsTabItem) (getTabs()[selectedTabItem]);
-		activeTab.getItem().dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabList#getTabs()
-	 */
-	public ITabItem[] getTabs() {
-		IOverrideTestsItem[] items = getItems();
-		OverrideTestsTabItem[] tabs = new OverrideTestsTabItem[items.length];
-
-		for (int i = 0; i < items.length; i++) {
-			tabs[i] = new OverrideTestsTabItem(items[i]);
-			if (i == selectedTabItem) {
-				tabs[i].setSelected(true);
-			}
-		}
-
-		return tabs;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.IOverrideTestsTabList#selectionChanged(org.eclipse.ui.tests.views.properties.tabbed.model.Element)
-	 */
-	public void selectionChanged(Element element) {
-		ITabItem[] tabs = getTabs();
-		for (int i = 0; i < tabs.length; i++) {
-			if (tabs[i].getText().equals(element.getName())) {
-				selectedTabItem = i;
-				break;
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.IOverridableTabList#selectTab(int)
-	 */
-	public void selectTab(int index) {
-		if (selectedTabItem == index) {
-			return;
-		}
-		OverrideTestsTabItem activeTab = (OverrideTestsTabItem) (getTabs()[selectedTabItem]);
-		activeTab.getItem().dispose();
-
-		selectedTabItem = index;
-
-		activeTab = (OverrideTestsTabItem) (getTabs()[selectedTabItem]);
-		activeTab.getItem().createControls(composite);
-		composite.layout(true);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AdvancedTabList.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AdvancedTabList.java
deleted file mode 100644
index fbe5094..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/AdvancedTabList.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.model.File;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Folder;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.FileItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.FolderItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * The advanced tab list is displayed when Information, Warning or Error is the
- * selected element in the override tests view.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class AdvancedTabList extends AbstractTabList {
-
-	private IOverrideTestsItem[] items;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.AbstractTabList#appliesTo(org.eclipse.ui.tests.views.properties.tabbed.model.Element)
-	 */
-	public boolean appliesTo(Element element) {
-		return ((element instanceof File) || (element instanceof Folder));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.IOverrideTestsTabList#getItems()
-	 */
-	public IOverrideTestsItem[] getItems() {
-		if (items == null) {
-			items = new IOverrideTestsItem[] { new FileItem(), new FolderItem() };
-		}
-		return items;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/BasicTabList.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/BasicTabList.java
deleted file mode 100644
index fca052e..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/BasicTabList.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Error;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Information;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Warning;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.ErrorItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.InformationItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.WarningItem;
-
-/**
- * The basic tab list is displayed when Information, Warning or Error is the
- * selected element in the override tests view.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class BasicTabList extends AbstractTabList {
-
-	private IOverrideTestsItem[] overrideTestsItems;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.AbstractTabList#appliesTo(org.eclipse.ui.tests.views.properties.tabbed.model.Element)
-	 */
-	public boolean appliesTo(Element element) {
-		return ((element instanceof Information) ||
-				(element instanceof Warning) || (element instanceof Error));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.IOverrideTestsTabList#getItems()
-	 */
-	public IOverrideTestsItem[] getItems() {
-		if (overrideTestsItems == null) {
-			overrideTestsItems = new IOverrideTestsItem[] {
-					new InformationItem(), new WarningItem(), new ErrorItem() };
-		}
-		return overrideTestsItems;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/EmptyTabList.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/EmptyTabList.java
deleted file mode 100644
index 64778c2..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/EmptyTabList.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.EmptyItem;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-
-/**
- * The empty tab list is displayed when there is no selected element in the
- * override tests view.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class EmptyTabList extends AbstractTabList {
-
-	private IOverrideTestsItem[] sampleViewItems;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.AbstractTabList#appliesTo(org.eclipse.ui.tests.views.properties.tabbed.model.Element)
-	 */
-	public boolean appliesTo(Element element) {
-		if (element == null) {
-			return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.views.properties.tabbed.override.tablist.IOverrideTestsTabList#getItems()
-	 */
-	public IOverrideTestsItem[] getItems() {
-		if (sampleViewItems == null) {
-			sampleViewItems = new IOverrideTestsItem[] { new EmptyItem() };
-		}
-		return sampleViewItems;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/IOverrideTestsTabList.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/IOverrideTestsTabList.java
deleted file mode 100644
index 80a9bc9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/IOverrideTestsTabList.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-import org.eclipse.ui.views.properties.tabbed.IOverridableTabList;
-
-/**
- * Interface for a tab list used by the tabbed properties view for the override
- * tests example.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public interface IOverrideTestsTabList extends IOverridableTabList {
-
-	/**
-	 * Determines if this tab list applies to the element.
-	 * 
-	 * @param element
-	 *            the element.
-	 * @return <code>true</code> if this folder applies to the element.
-	 */
-	public boolean appliesTo(Element element);
-
-	/**
-	 * Creates the controls for the tab list.
-	 * 
-	 * @param parent
-	 *            the parent composite for the contents.
-	 */
-	public void createControls(Composite parent);
-
-	/**
-	 * Dispose the controls for the tab list.
-	 */
-	public void dispose();
-
-	/**
-	 * Get the items for this tab list.
-	 * 
-	 * @return the items for this tab list.
-	 */
-	public IOverrideTestsItem[] getItems();
-
-	/**
-	 * Notifies the tab list that the selected element has changed.
-	 * 
-	 * @param element
-	 *            the selected element.
-	 */
-	public void selectionChanged(Element element);
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSection.java
deleted file mode 100644
index efb770c..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSection.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.AbstractOverridableTabListPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * Section for a tab list used by the tabbed properties view for the override
- * tests example.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsSection extends
-		AbstractOverridableTabListPropertySection {
-	private OverrideTestsTabListsContentsManager contentsManager;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-	 *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-	 */
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage tabbedPropertySheetPage) {
-		super.createControls(parent, tabbedPropertySheetPage);
-		contentsManager = new OverrideTestsTabListsContentsManager(parent,
-				tabbedPropertySheetPage, this);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#dispose()
-	 */
-	public void dispose() {
-		if (contentsManager != null) {
-			contentsManager.dispose();
-			contentsManager = null;
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractOverridableTabListPropertySection#getTabs()
-	 */
-	public ITabItem[] getTabs() {
-		if (contentsManager != null) {
-			return contentsManager.getTabs();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractOverridableTabListPropertySection#selectTab(int)
-	 */
-	public void selectTab(int index) {
-		if (contentsManager != null) {
-			contentsManager.selectTab(index);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#setInput(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void setInput(IWorkbenchPart part, ISelection selection) {
-		super.setInput(part, selection);
-		if (contentsManager != null) {
-			contentsManager.selectionChanged(getPart(), getSelection());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractPropertySection#shouldUseExtraSpace()
-	 */
-	public boolean shouldUseExtraSpace() {
-		return true;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptor.java
deleted file mode 100644
index 46e5cc8..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptor.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-
-/**
- * Section descriptor for the override tests example.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsSectionDescriptor extends AbstractSectionDescriptor {
-
-	private ISection section;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean appliesTo(IWorkbenchPart part, ISelection selection) {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getId()
-	 */
-	public String getId() {
-		return "org.eclipse.ui.tests.views.properties.tabbed.override"; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getSectionClass()
-	 */
-	public ISection getSectionClass() {
-		if (section == null) {
-			this.section = new OverrideTestsSection();
-		}
-		return section;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptor#getTargetTab()
-	 */
-	public String getTargetTab() {
-		return "org.eclipse.ui.tests.views.properties.tabbed.override"; //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptorProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptorProvider.java
deleted file mode 100644
index dcc17c6..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsSectionDescriptorProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider;
-
-/**
- * Section descriptor provider for the override tests example.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsSectionDescriptorProvider implements
-		ISectionDescriptorProvider {
-
-	private ISectionDescriptor[] sectionDescriptors;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ISectionDescriptorProvider#getSectionDescriptors()
-	 */
-	public ISectionDescriptor[] getSectionDescriptors() {
-		if (sectionDescriptors == null) {
-			sectionDescriptors = new ISectionDescriptor[] { new OverrideTestsSectionDescriptor() };
-		}
-		return sectionDescriptors;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabItem.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabItem.java
deleted file mode 100644
index 10c86f1..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabItem.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.views.properties.tabbed.override.items.IOverrideTestsItem;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-
-/**
- * A tab item for the override tests example.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsTabItem implements ITabItem {
-	private IOverrideTestsItem item;
-	private boolean selected = false;
-
-	/**
-	 * Constructor for OverrideTestsTabItem
-	 * 
-	 * @param anItem
-	 *            the item.
-	 */
-	public OverrideTestsTabItem(IOverrideTestsItem anItem) {
-		this.item = anItem;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#getImage()
-	 */
-	public Image getImage() {
-		return item.getImage();
-	}
-
-	/**
-	 * Get the item.
-	 * 
-	 * @return the item.
-	 */
-	public IOverrideTestsItem getItem() {
-		return item;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#getText()
-	 */
-	public String getText() {
-		return item.getText();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#isIndented()
-	 */
-	public boolean isIndented() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.properties.tabbed.ITabItem#isSelected()
-	 */
-	public boolean isSelected() {
-		return selected;
-	}
-
-	/*
-	 * 
-	 */
-	public void setSelected(boolean newSelected) {
-		this.selected = newSelected;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabListsContentsManager.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabListsContentsManager.java
deleted file mode 100644
index 6508d32..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/override/tablist/OverrideTestsTabListsContentsManager.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.override.tablist;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsSelection;
-import org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ITabItem;
-import org.eclipse.ui.views.properties.tabbed.TabContents;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * The content manager for the override tests example for the tabbed property
- * sheet page.
- * <p>
- * The OverrideTestsView TabbedPropertySheetPage example is a look at the
- * properties view after the migration of a TabFolder/TabItem framework to the
- * tabbed properties view. In the case of a TabFolder, the folder (provider)
- * knows both the tab labels and tab items. This aligns to the tabbed properties
- * view, but the tab labels are tab descriptors and tab items are section
- * descriptions. This does not work with the default framework as the tabs
- * provide the sections. In this case, the IOverridableTabListContentProvider
- * framework has been provided.
- * <p>
- * The overridable tab list is a content provider that provides both the
- * sections and the tab labels.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class OverrideTestsTabListsContentsManager {
-
-	private Element activeElement;
-
-	private IOverrideTestsTabList activeFolder;
-
-	private ITabItem[] activeTabs;
-
-	private Composite composite;
-
-	private IOverrideTestsTabList emptyFolder;
-
-	private IOverrideTestsTabList[] folders;
-
-	private boolean processingUpdateTabs;
-
-	private OverrideTestsView sampleView;
-
-	private ISection section;
-
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	public OverrideTestsTabListsContentsManager(Composite aComposite,
-			TabbedPropertySheetPage aTabbedPropertySheetPage, ISection aSection) {
-		this.composite = aComposite;
-		this.section = aSection;
-		this.tabbedPropertySheetPage = aTabbedPropertySheetPage;
-		this.folders = new IOverrideTestsTabList[] { new BasicTabList(),
-				new AdvancedTabList() };
-		this.emptyFolder = new EmptyTabList();
-	}
-
-	private boolean compareTab(OverrideTestsTabItem a, OverrideTestsTabItem b) {
-		return a.getItem().equals(b.getItem()) &&
-				a.isSelected() == b.isSelected() &&
-				a.getText().equals(b.getText());
-	}
-
-	private boolean compareTabs(ITabItem[] a, ITabItem[] b) {
-		if (a != null && b != null) {
-			if (a.length != b.length) {
-				return false;
-			}
-			for (int i = 0; i < a.length; i++) {
-				if (!compareTab((OverrideTestsTabItem) a[i],
-						(OverrideTestsTabItem) b[i])) {
-					return false;
-				}
-			}
-			return true;
-		}
-		return a == null && b == null;
-	}
-
-	public void dispose() {
-		if (activeFolder != null) {
-			activeFolder.dispose();
-		}
-	}
-
-	public ITabItem[] getTabs() {
-		if (activeFolder != null) {
-			return activeFolder.getTabs();
-		}
-		return new ITabItem[] {};
-	}
-
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		if (composite.isDisposed()) {
-			return;
-		}
-		if (processingUpdateTabs) {
-			return;
-		}
-		if (!validateSection()) {
-			return;
-		}
-		Assert.isTrue(part instanceof OverrideTestsView);
-		this.sampleView = (OverrideTestsView) part;
-		Assert.isTrue(selection instanceof OverrideTestsSelection);
-		Element newElement = ((OverrideTestsSelection) selection).getElement();
-		IOverrideTestsTabList newFolder = null;
-
-		if (newElement == null) {
-			newFolder = emptyFolder;
-		} else {
-			for (int i = 0; i < folders.length; i++) {
-				if (folders[i].appliesTo(newElement)) {
-					newFolder = folders[i];
-					break;
-				}
-			}
-		}
-
-		if (newFolder != activeFolder) {
-			if (activeFolder != null) {
-				activeFolder.dispose();
-				activeFolder = null;
-			}
-			activeFolder = newFolder;
-			if (newElement != null) {
-				activeFolder.selectionChanged(newElement);
-			}
-			newFolder.createControls(composite);
-			composite.layout(true);
-		} else if (newElement != activeElement) {
-			activeFolder.dispose();
-			if (newElement != null) {
-				activeFolder.selectionChanged(newElement);
-			}
-			activeFolder.createControls(composite);
-			composite.layout(true);
-			activeElement = newElement;
-			return;
-		}
-		ITabItem[] newTabs = activeFolder.getTabs();
-		if (!compareTabs(newTabs, activeTabs)) {
-			processingUpdateTabs = true;
-			tabbedPropertySheetPage.overrideTabs();
-			processingUpdateTabs = false;
-			activeTabs = newTabs;
-		}
-
-	}
-
-	public void selectTab(int index) {
-		if (activeTabs == null) {
-			return;
-		}
-		OverrideTestsTabItem selectedTab = (OverrideTestsTabItem) activeTabs[index];
-		sampleView.setSelection(selectedTab.getItem().getElement());
-
-		OverrideTestsSelection selection = (OverrideTestsSelection) sampleView
-				.getSelection();
-		Element newElement = selection.getElement();
-
-		activeFolder.dispose();
-		activeFolder.selectionChanged(newElement);
-		activeFolder.createControls(composite);
-		composite.layout(true);
-		activeElement = newElement;
-		activeTabs = getTabs();
-	}
-
-	/**
-	 * Returns true if the section is valid.
-	 */
-	private boolean validateSection() {
-		TabContents tab = tabbedPropertySheetPage.getCurrentTab();
-		if (tab != null) {
-			ISection[] sections = tab.getSections();
-			if (sections != null) {
-				for (int i = 0; i < sections.length; i++) {
-					if (sections[i] == section) {
-						return true;
-					}
-				}
-			}
-		}
-		return false;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/InformationTwoSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/InformationTwoSection.java
deleted file mode 100644
index 0e24a3f..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/InformationTwoSection.java
+++ /dev/null
@@ -1,21 +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.tests.views.properties.tabbed.sections;

-

-public class InformationTwoSection

-    extends LabelSection {

-

-    public InformationTwoSection() {

-        super();

-        label = "A section for Information that contains the word \"Two\"";//$NON-NLS-1$

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.java
deleted file mode 100644
index eb2822c..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/LabelSection.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.tests.views.properties.tabbed.sections;

-

-import org.eclipse.swt.custom.CLabel;

-import org.eclipse.swt.layout.FormAttachment;

-import org.eclipse.swt.layout.FormData;

-import org.eclipse.swt.widgets.Composite;

-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;

-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;

-

-public class LabelSection

-    extends AbstractPropertySection {

-

-    protected String label;

-

-    public LabelSection() {

-        super();

-        label = "A simple section.";//$NON-NLS-1$

-    }

-

-    public void createControls(Composite parent,

-            TabbedPropertySheetPage aTabbedPropertySheetPage) {

-        super.createControls(parent, aTabbedPropertySheetPage);

-        Composite composite = getWidgetFactory()

-            .createFlatFormComposite(parent);

-

-        CLabel nameLabel = getWidgetFactory().createCLabel(composite, label);

-        FormData data = new FormData();

-        data.left = new FormAttachment(0, 0);

-        data.right = new FormAttachment(100, 0);

-        data.top = new FormAttachment(0, 0);

-        nameLabel.setLayoutData(data);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java
deleted file mode 100644
index f529d73..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/MessageSection.java
+++ /dev/null
@@ -1,21 +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.tests.views.properties.tabbed.sections;

-

-public class MessageSection

-    extends LabelSection {

-

-    public MessageSection() {

-        super();

-        label = "A section common to message elements (Information, Warning and Error)";//$NON-NLS-1$

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java
deleted file mode 100644
index c1a82d9..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/NameSection.java
+++ /dev/null
@@ -1,94 +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.tests.views.properties.tabbed.sections;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * The name section on the element tab.
- * 
- * @author Anthony Hunter
- */
-public class NameSection
-    extends AbstractPropertySection {
-
-    private TreeNode treeNode;
-
-    private Text nameText;
-
-    /**
-     * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-     *      org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
-     */
-    public void createControls(Composite parent,
-            TabbedPropertySheetPage tabbedPropertySheetPage) {
-        super.createControls(parent, tabbedPropertySheetPage);
-        Composite composite = getWidgetFactory()
-            .createFlatFormComposite(parent);
-        FormData data;
-
-        nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-        nameText.setEditable(false);
-        data = new FormData();
-        data.left = new FormAttachment(0, STANDARD_LABEL_WIDTH);
-        data.right = new FormAttachment(100, 0);
-        data.top = new FormAttachment(0, 0);
-        nameText.setLayoutData(data);
-
-        CLabel nameLabel = getWidgetFactory().createCLabel(composite, "Name:"); //$NON-NLS-1$
-        data = new FormData();
-        data.left = new FormAttachment(0, 0);
-        data.right = new FormAttachment(nameText,
-            -ITabbedPropertyConstants.HSPACE);
-        data.top = new FormAttachment(nameText, 0, SWT.CENTER);
-        nameLabel.setLayoutData(data);
-
-    }
-
-    /**
-     * Get the element.
-     * 
-     * @return the element.
-     */
-    public TreeNode getTreeNode() {
-        return treeNode;
-    }
-
-    /*
-     * @see org.eclipse.ui.views.properties.tabbed.view.ITabbedPropertySection#refresh()
-     */
-    public void refresh() {
-        Element element = (Element) getTreeNode().getValue();
-        nameText.setText(element.getName());
-    }
-
-    public void setInput(IWorkbenchPart part, ISelection selection) {
-        super.setInput(part, selection);
-        Assert.isTrue(selection instanceof IStructuredSelection);
-        Object input = ((IStructuredSelection) selection).getFirstElement();
-        Assert.isTrue(input instanceof TreeNode);
-        this.treeNode = (TreeNode) input;
-    }
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java
deleted file mode 100644
index 13b3624..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/sections/ResourceSection.java
+++ /dev/null
@@ -1,21 +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.tests.views.properties.tabbed.sections;

-

-public class ResourceSection

-    extends LabelSection {

-

-    public ResourceSection() {

-        super();

-        label = "A section common to resource elements (Project, Folder and File)";//$NON-NLS-1$

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelProvider.java
deleted file mode 100644
index 9426bf0..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelProvider.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.text;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Label provider for the title bar for the tabbed property view.
- * 
- * @author Anthony Hunter
- */
-public class TextTestsLabelProvider extends LabelProvider {
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object obj) {
-		return PlatformUI.getWorkbench().getSharedImages().getImage(
-				ISharedImages.IMG_OBJ_FILE);
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object obj) {
-		if (obj instanceof ITextSelection) {
-			ITextSelection textSelection = (ITextSelection) obj;
-			if (textSelection.getLength() != 0) {
-				StringTokenizer tokenizer = new StringTokenizer(textSelection
-						.getText());
-				int size = 0;
-				while (tokenizer.hasMoreTokens()) {
-					size++;
-					tokenizer.nextToken();
-				}
-				if (size == 1) {
-					return textSelection.getText();
-				}
-				return size + " words selected";//$NON-NLS-1$
-			}
-		}
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelSection.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelSection.java
deleted file mode 100644
index 259cd77..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsLabelSection.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.text;
-
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * A section for the text test view.
- * 
- * @author Anthony Hunter
- */
-public class TextTestsLabelSection extends AbstractPropertySection {
-
-	protected String label;
-
-	public TextTestsLabelSection(String word) {
-		super();
-		label = "A simple section for a selected word \"" + word + "\".";//$NON-NLS-1$//$NON-NLS-2$
-	}
-
-	public void createControls(Composite parent,
-			TabbedPropertySheetPage aTabbedPropertySheetPage) {
-		super.createControls(parent, aTabbedPropertySheetPage);
-		Composite composite = getWidgetFactory()
-				.createFlatFormComposite(parent);
-
-		CLabel nameLabel = getWidgetFactory().createCLabel(composite, label);
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		nameLabel.setLayoutData(data);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor.java
deleted file mode 100644
index 0336b08..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.text;
-
-import org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-
-/**
- * A section descriptor for the text test view.
- * 
- * @author Anthony Hunter
- */
-public class TextTestsSectionDescriptor extends AbstractSectionDescriptor {
-
-	private String word;
-
-	private String tabId;
-
-	public TextTestsSectionDescriptor(String aWord, String aTabId) {
-		super(null);
-		this.word = aWord;
-		this.tabId = aTabId;
-	}
-
-	public String getId() {
-		return word + "@" + Integer.toHexString(word.hashCode());
-	}
-
-	public ISection getSectionClass() {
-		return new TextTestsLabelSection(word);
-	}
-
-	public String getTargetTab() {
-		return tabId;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor2.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor2.java
deleted file mode 100644
index 5783f87..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsSectionDescriptor2.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.text;
-
-import org.eclipse.jface.viewers.IFilter;
-
-/**
- * A section descriptor for the text test view that should be filtered and not
- * shown.
- * 
- * @author Anthony Hunter
- * @since 3.4
- */
-public class TextTestsSectionDescriptor2 extends TextTestsSectionDescriptor {
-
-	public TextTestsSectionDescriptor2(String word, String tabId) {
-		super(word, tabId);
-	}
-
-	/*
-	 * @see
-	 * org.eclipse.ui.views.properties.tabbed.AbstractSectionDescriptor#getFilter
-	 * ()
-	 */
-	public IFilter getFilter() {
-		return new IFilter() {
-
-			public boolean select(Object toTest) {
-				return false;
-			}
-		};
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptor.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptor.java
deleted file mode 100644
index 10520b8..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptor.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.text;
-
-import org.eclipse.ui.views.properties.tabbed.AbstractTabDescriptor;
-
-/**
- * A tab descriptor for the text test view.
- * 
- * @author Anthony Hunter
- */
-public class TextTestsTabDescriptor extends AbstractTabDescriptor {
-
-	private String word;
-
-	public TextTestsTabDescriptor(String aWord) {
-		super();
-		this.word = aWord;
-		getSectionDescriptors().add(new TextTestsSectionDescriptor(aWord, getId()));
-		/* TextTestsSectionDescriptor2 added to the tests and it is filtered */
-		getSectionDescriptors().add(new TextTestsSectionDescriptor2(aWord, getId()));
-	}
-
-	public String getCategory() {
-		return "default"; //$NON-NLS-1$
-	}
-
-	public String getId() {
-		return word + "@" + Integer.toHexString(word.hashCode());
-	}
-
-	public String getLabel() {
-		return word;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptorProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptorProvider.java
deleted file mode 100644
index 927d049..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsTabDescriptorProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.text;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
-import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;
-
-/**
- * A tab descriptor for the text test view.
- * 
- * @author Anthony Hunter
- */
-public class TextTestsTabDescriptorProvider implements ITabDescriptorProvider {
-
-	public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part,
-			ISelection selection) {
-		if (selection instanceof ITextSelection) {
-			ITextSelection textSelection = (ITextSelection) selection;
-			if (textSelection.getLength() != 0) {
-				List result = new ArrayList();
-				StringTokenizer tokenizer = new StringTokenizer(textSelection
-						.getText());
-				while (tokenizer.hasMoreTokens()) {
-					result
-							.add(new TextTestsTabDescriptor(tokenizer
-									.nextToken()));
-				}
-				return (ITabDescriptor[]) result
-						.toArray(new ITabDescriptor[result.size()]);
-			}
-		}
-		return new ITabDescriptor[0];
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsView.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsView.java
deleted file mode 100644
index 7e967f8..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/text/TextTestsView.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.text;
-
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.TextViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-/**
- * A text view to test dynamic contributions to the tabbed properties view.
- * 
- * @author Anthony Hunter
- */
-public class TextTestsView extends ViewPart implements
-		ITabbedPropertySheetPageContributor {
-
-	public static final String TEXT_TESTS_VIEW_ID = "org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView"; //$NON-NLS-1$
-
-	private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-	private TextViewer viewer;
-
-	public void createPartControl(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		FormLayout layout = new FormLayout();
-		layout.marginWidth = ITabbedPropertyConstants.HSPACE;
-		layout.marginHeight = ITabbedPropertyConstants.VSPACE;
-		layout.spacing = ITabbedPropertyConstants.VMARGIN;
-		composite.setLayout(layout);
-
-		Label label = new Label(composite, SWT.NONE);
-		label.setText("Enter text, selected words becomes tabs and sections");
-		FormData data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(0, 0);
-		label.setLayoutData(data);
-
-		viewer = new TextViewer(composite, SWT.WRAP | SWT.H_SCROLL |
-				SWT.V_SCROLL | SWT.BORDER);
-		viewer.setDocument(new Document());
-		data = new FormData();
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		data.top = new FormAttachment(label, 0);
-		data.bottom = new FormAttachment(100, 0);
-		viewer.getControl().setLayoutData(data);
-
-		getSite().setSelectionProvider(viewer);
-	}
-
-	public Object getAdapter(Class adapter) {
-		if (adapter == IPropertySheetPage.class) {
-			if (tabbedPropertySheetPage == null) {
-				tabbedPropertySheetPage = new TabbedPropertySheetPage(this);
-			}
-			return tabbedPropertySheetPage;
-		}
-		return super.getAdapter(adapter);
-	}
-
-	public String getContributorId() {
-		return "org.eclipse.ui.tests.views.properties.tabbed.text"; //$NON-NLS-1$
-	}
-
-	public TabbedPropertySheetPage getTabbedPropertySheetPage() {
-		return tabbedPropertySheetPage;
-	}
-
-	public TextViewer getViewer() {
-		return viewer;
-	}
-
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/InformationTwoFilter.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/InformationTwoFilter.java
deleted file mode 100644
index 610c2f1..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/InformationTwoFilter.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.tests.views.properties.tabbed.views;

-

-import org.eclipse.jface.viewers.IFilter;

-import org.eclipse.jface.viewers.TreeNode;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Information;

-

-/**

- * A filter for Information messages that have the work "Two" in them.

- * 

- * @author Anthony Hunter

- */

-public class InformationTwoFilter

-    implements IFilter {

-

-    public boolean select(Object object) {

-        if (object instanceof TreeNode) {

-            Element element = (Element) ((TreeNode) object).getValue();

-            if (element instanceof Information) {

-                Information information = (Information) element;

-                if (information.getName().indexOf("Two") > -1) {//$NON-NLS-1$

-                    return true;

-                }

-            }

-        }

-        return false;

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java
deleted file mode 100644
index 10919e5..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/LabelProvider.java
+++ /dev/null
@@ -1,104 +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.tests.views.properties.tabbed.views;

-

-import java.util.Iterator;

-

-import org.eclipse.jface.viewers.TreeNode;

-import org.eclipse.jface.viewers.IStructuredSelection;

-import org.eclipse.jface.viewers.StructuredSelection;

-import org.eclipse.swt.graphics.Image;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;

-

-/**

- * Label provider for the title bar for the tabbed property sheet page.

- * 

- * @author Anthony Hunter

- */

-public class LabelProvider

-    extends org.eclipse.jface.viewers.LabelProvider {

-

-    /**

-     * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)

-     */

-    public Image getImage(Object obj) {

-        if (obj == null || obj.equals(StructuredSelection.EMPTY)) {

-            return null;

-        }

-        if (obj instanceof IStructuredSelection) {

-            IStructuredSelection structuredSelection = (IStructuredSelection) obj;

-            if (areDifferentTypes(structuredSelection)) {

-                return null;

-            }

-            obj = structuredSelection.getFirstElement();

-        }

-        Element element = (Element) ((TreeNode) obj).getValue();

-        return element.getImage();

-    }

-

-    /**

-     * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)

-     */

-    public String getText(Object obj) {

-        if (obj == null || obj.equals(StructuredSelection.EMPTY)) {

-            return null;

-        }

-        int size = 1;

-        if (obj instanceof IStructuredSelection) {

-            IStructuredSelection structuredSelection = (IStructuredSelection) obj;

-            if (areDifferentTypes(structuredSelection)) {

-                return structuredSelection.size() + " items selected";//$NON-NLS-1$

-            }

-            obj = structuredSelection.getFirstElement();

-            size = structuredSelection.size();

-        }

-        StringBuffer ret = new StringBuffer();

-        Element element = (Element) ((TreeNode) obj).getValue();

-        String type = element.getClass().getName();

-        String name = element.getName();

-        ret.append('\u00AB');

-        ret.append(type.substring(type.lastIndexOf('.') + 1));

-        ret.append('\u00BB');

-        if (size == 1) {

-            ret.append(' ');

-            ret.append(name);

-        } else {

-            ret.append(' ');

-            ret.append(Integer.toString(size));

-            ret.append(" selected");//$NON-NLS-1$

-        }

-        return ret.toString();

-    }

-

-    /**

-     * Determine there are objects in the structured selection of different

-     * types.

-     * 

-     * @param structuredSelection

-     *            the structured selection.

-     * @return true if there are objects of different types in the selection.

-     */

-    private boolean areDifferentTypes(IStructuredSelection structuredSelection) {

-        if (structuredSelection.size() == 1) {

-            return false;

-        }

-        Iterator i = structuredSelection.iterator();

-        Element element = (Element) ((TreeNode) i.next()).getValue();

-        for (; i.hasNext();) {

-            Element next = (Element) ((TreeNode) i.next()).getValue();

-            if (next.getClass() != element.getClass()) {

-                return true;

-            }

-        }

-

-        return false;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsPerspective.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsPerspective.java
deleted file mode 100644
index 5845aff..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsPerspective.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.views.properties.tabbed.views;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.tests.views.properties.tabbed.dynamic.views.DynamicTestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.override.OverrideTestsView;
-import org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView;
-
-/**
- * Perspective used by the tabbed properties view test JUnit tests.
- * 
- * @since 3.3
- */
-public class TestsPerspective implements IPerspectiveFactory {
-
-	public static final String TESTS_PERSPECTIVE_ID = "org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective"; //$NON-NLS-1$
-
-	public void createInitialLayout(IPageLayout layout) {
-		String editorArea = layout.getEditorArea();
-		IFolderLayout topLeft = layout.createFolder(
-				"topLeft", IPageLayout.LEFT, (float) 0.50, editorArea);//$NON-NLS-1$
-		topLeft.addView(TestsView.TESTS_VIEW_ID);
-		IFolderLayout middleLeft = layout.createFolder(
-				"middleLeft", IPageLayout.BOTTOM, (float) 0.33, "topLeft");//$NON-NLS-1$
-		middleLeft.addView(OverrideTestsView.OVERRIDE_TESTS_VIEW_ID);
-		IFolderLayout bottomLeft = layout.createFolder(
-				"bottomLeft", IPageLayout.BOTTOM, (float) 0.40, "middleLeft");//$NON-NLS-1$//$NON-NLS-2$
-		bottomLeft.addView(DynamicTestsView.DYNAMIC_TESTS_VIEW_ID);
-		IFolderLayout top = layout.createFolder(
-				"top", IPageLayout.TOP, (float) 0.25, editorArea);//$NON-NLS-1$
-		top.addView(TextTestsView.TEXT_TESTS_VIEW_ID);
-		IFolderLayout bottom = layout.createFolder(
-				"bottom", IPageLayout.BOTTOM, (float) 0.25,//$NON-NLS-1$
-				editorArea);
-		bottom.addView(IPageLayout.ID_PROP_SHEET);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsView.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsView.java
deleted file mode 100644
index 8099080..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsView.java
+++ /dev/null
@@ -1,96 +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.tests.views.properties.tabbed.views;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.tests.views.properties.tabbed.model.Element;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-public class TestsView
-    extends ViewPart
-    implements ITabbedPropertySheetPageContributor {
-
-    private TreeViewer viewer;
-
-    private TabbedPropertySheetPage tabbedPropertySheetPage;
-
-    public static final String TESTS_VIEW_ID = "org.eclipse.ui.tests.views.properties.tabbed.views.TestsView"; //$NON-NLS-1$
-
-    class ViewLabelProvider
-        extends LabelProvider {
-
-        public String getText(Object obj) {
-            Element element = (Element) ((TreeNode) obj).getValue();
-            return element.getName();
-        }
-
-        public Image getImage(Object obj) {
-            Element element = (Element) ((TreeNode) obj).getValue();
-            return element.getImage();
-        }
-    }
-
-    /**
-     * The constructor.
-     */
-    public TestsView() {
-        //
-    }
-
-    /**
-     * This is a callback that will allow us to create the viewer and initialize
-     * it.
-     */
-    public void createPartControl(Composite parent) {
-        viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-        viewer.setContentProvider(new TestsViewContentProvider(this));
-        viewer.setLabelProvider(new ViewLabelProvider());
-        viewer.setInput(getViewSite());
-        getSite().setSelectionProvider(viewer);
-    }
-
-    /**
-     * Passing the focus request to the viewer's control.
-     */
-    public void setFocus() {
-        viewer.getControl().setFocus();
-    }
-
-    public Object getAdapter(Class adapter) {
-        if (adapter == IPropertySheetPage.class) {
-            if (tabbedPropertySheetPage == null) {
-                tabbedPropertySheetPage = new TabbedPropertySheetPage(this);
-            }
-            return tabbedPropertySheetPage;
-        }
-        return super.getAdapter(adapter);
-    }
-
-    public String getContributorId() {
-        return TESTS_VIEW_ID;
-    }
-
-    public TreeViewer getViewer() {
-        return viewer;
-    }
-
-    public TabbedPropertySheetPage getTabbedPropertySheetPage() {
-        return tabbedPropertySheetPage;
-    }
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsViewContentProvider.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsViewContentProvider.java
deleted file mode 100644
index dd68ef6..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TestsViewContentProvider.java
+++ /dev/null
@@ -1,99 +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.tests.views.properties.tabbed.views;

-

-import org.eclipse.jface.viewers.IStructuredContentProvider;

-import org.eclipse.jface.viewers.ITreeContentProvider;

-import org.eclipse.jface.viewers.TreeNode;

-import org.eclipse.jface.viewers.Viewer;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Error;

-import org.eclipse.ui.tests.views.properties.tabbed.model.File;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Folder;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Information;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Project;

-import org.eclipse.ui.tests.views.properties.tabbed.model.Warning;

-

-public class TestsViewContentProvider

-    implements IStructuredContentProvider, ITreeContentProvider {

-

-    /**

-     * 

-     */

-    private final TestsView view;

-

-    /**

-     * @param view

-     */

-    TestsViewContentProvider(TestsView aView) {

-        this.view = aView;

-    }

-

-    private TreeNode invisibleRoot;

-

-    public void inputChanged(Viewer v, Object oldInput, Object newInput) {

-        //

-    }

-

-    public void dispose() {

-        //

-    }

-

-    public Object[] getElements(Object parent) {

-        if (parent.equals(this.view.getViewSite())) {

-            if (invisibleRoot == null)

-                initialize();

-            return getChildren(invisibleRoot);

-        }

-        return getChildren(parent);

-    }

-

-    public Object getParent(Object child) {

-        if (child instanceof TreeNode) {

-            return ((TreeNode) child).getParent();

-        }

-        return null;

-    }

-

-    public Object[] getChildren(Object parent) {

-        if (parent instanceof TreeNode) {

-            return ((TreeNode) parent).getChildren();

-        }

-        return new Object[0];

-    }

-

-    public boolean hasChildren(Object parent) {

-        if (parent instanceof TreeNode)

-            return ((TreeNode) parent).hasChildren();

-        return false;

-    }

-

-    /*

-     * We will set up a dummy model to initialize tree heararchy. In a real

-     * code, you will connect to a real model and expose its hierarchy.

-     */

-    void initialize() {

-        TreeNode[] nodes = new TreeNode[] {

-            new TreeNode(new Information("Informational Message One")),//$NON-NLS-1$

-            new TreeNode(new Information("Informational Message Two")),//$NON-NLS-1$

-            new TreeNode(new Error("Error Message One")),//$NON-NLS-1$

-            new TreeNode(new Warning("Warning Message One")),//$NON-NLS-1$

-            new TreeNode(new File("file.txt")),//$NON-NLS-1$

-            new TreeNode(new File("another.txt")),//$NON-NLS-1$

-            new TreeNode(new Folder("folder")),//$NON-NLS-1$

-            new TreeNode(new Project("project"))};//$NON-NLS-1$

-        invisibleRoot = new TreeNode(new Project(""));//$NON-NLS-1$

-        invisibleRoot.setChildren(nodes);

-    }

-

-    public TreeNode getInvisibleRoot() {

-        return invisibleRoot;

-    }

-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java b/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java
deleted file mode 100644
index 5f20e44..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/src/org/eclipse/ui/tests/views/properties/tabbed/views/TypeMapper.java
+++ /dev/null
@@ -1,26 +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.tests.views.properties.tabbed.views;

-

-import org.eclipse.jface.viewers.TreeNode;

-import org.eclipse.ui.views.properties.tabbed.AbstractTypeMapper;

-

-public class TypeMapper

-    extends AbstractTypeMapper {

-

-    public Class mapType(Object object) {

-        if (object instanceof TreeNode) {

-            return ((TreeNode) object).getValue().getClass();

-        }

-        return super.mapType(object);

-    }

-

-}

diff --git a/tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml b/tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml
deleted file mode 100644
index d5d6d89..0000000
--- a/tests/org.eclipse.ui.tests.views.properties.tabbed/test.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}\..\.."/>
-
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="plugin-name" value="org.eclipse.ui.tests.views.properties.tabbed"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <property name="sniff-folder"
-              value="${eclipse-home}/tabbedproperties_sniff_folder"/>
-    <delete dir="${sniff-folder}" quiet="true"/>
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${sniff-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname"
-                value="org.eclipse.ui.tests.views.properties.tabbed.AllTests"/>
-    </ant>
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-</project>
diff --git a/tests/org.eclipse.ui.tests/.classpath b/tests/org.eclipse.ui.tests/.classpath
deleted file mode 100644
index e4cbbcd..0000000
--- a/tests/org.eclipse.ui.tests/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="Eclipse JFace Tests"/>
-	<classpathentry kind="src" path="Eclipse UI Tests"/>
-	<classpathentry kind="src" path="Eclipse Part References Test"/>
-	<classpathentry kind="src" path="Benchmark Tests"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests/.cvsignore b/tests/org.eclipse.ui.tests/.cvsignore
deleted file mode 100644
index c5e82d7..0000000
--- a/tests/org.eclipse.ui.tests/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/.project b/tests/org.eclipse.ui.tests/.project
deleted file mode 100644
index 447cf42..0000000
--- a/tests/org.eclipse.ui.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.tests</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/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 67b13eb..0000000
--- a/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,94 +0,0 @@
-#Fri Mar 28 15:34:15 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.cleanOutputFolder=clean
-org.eclipse.jdt.core.builder.duplicateResourceTask=warning
-org.eclipse.jdt.core.builder.invalidClasspath=abort
-org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
-org.eclipse.jdt.core.circularClasspath=error
-org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
-org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.doc.comment.support=enabled
-org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=private
-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.missingJavadocComments=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=no_tag
-org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=private
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-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=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
-org.eclipse.jdt.core.incompatibleJDKLevel=ignore
-org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.ui.prefs b/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8393a8a..0000000
--- a/tests/org.eclipse.ui.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu Oct 02 09:24:11 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.ui.javadoc=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return Returns the ${bare_field_name}.\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} The ${bare_field_name} to set.\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) ${year} IBM Corporation and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     IBM Corporation - initial API and implementation\n ******************************************************************************/\n</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @since 3.5\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Javadoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template></templates>
diff --git a/tests/org.eclipse.ui.tests/.settings/org.eclipse.pde.prefs b/tests/org.eclipse.ui.tests/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index e7eee2d..0000000
--- a/tests/org.eclipse.ui.tests/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,17 +0,0 @@
-#Wed Oct 17 16:19:53 EDT 2007
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=2
-compilers.p.illegal-att-value=0
-compilers.p.missing-packages=2
-compilers.p.no-required-att=1
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=1
-compilers.p.unknown-class=1
-compilers.p.unknown-element=1
-compilers.p.unknown-resource=1
-compilers.p.unresolved-ex-points=1
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/tests/org.eclipse.ui.tests/Benchmark Tests/org/eclipse/ui/tests/benchmarks/OpenCloseTest.java b/tests/org.eclipse.ui.tests/Benchmark Tests/org/eclipse/ui/tests/benchmarks/OpenCloseTest.java
deleted file mode 100644
index 32de6d0..0000000
--- a/tests/org.eclipse.ui.tests/Benchmark Tests/org/eclipse/ui/tests/benchmarks/OpenCloseTest.java
+++ /dev/null
@@ -1,36 +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.ui.tests.benchmarks;
-
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @version 	1.0
- * @author
- */
-public class OpenCloseTest extends UITestCase {
-
-    /**
-     * Constructor for OpenCloseTest.
-     * @param testName
-     */
-    public OpenCloseTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that the Navigator is initially populated with
-     * the correct elements from the workspace.
-     */
-    public void testOpenClose() {
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/AllTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/AllTests.java
deleted file mode 100644
index 26257c4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/AllTests.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-    
-    public static Test suite() {
-        return new AllTests();
-    }
-
-    public AllTests() {
-        addTest(new org.eclipse.jface.tests.action.AllTests());
-        addTest(new org.eclipse.jface.tests.dialogs.AllTests());
-        addTest(new org.eclipse.jface.tests.images.AllTests());
-        addTest(new org.eclipse.jface.tests.viewers.AllTests());
-        addTest(new org.eclipse.jface.tests.layout.AllTests());
-        addTest(new org.eclipse.jface.tests.preferences.AllTests());
-        addTest(new org.eclipse.jface.tests.wizards.WizardTestSuite());
-        addTest(new org.eclipse.jface.tests.labelProviders.DecoratingLabelProviderTests());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/AllTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/AllTests.java
deleted file mode 100644
index 20ca5df..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/AllTests.java
+++ /dev/null
@@ -1,30 +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.jface.tests.action;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-
-    public static Test suite() {
-        return new AllTests();
-    }
-    
-    public AllTests() {
-        addTestSuite(ContributionItemTest.class);
-        addTestSuite(MenuManagerTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/ContributionItemTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/ContributionItemTest.java
deleted file mode 100644
index e3263c4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/ContributionItemTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.action;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Tests for the [I]ContributionItem API.
- * 
- * @since 3.1
- */
-public class ContributionItemTest extends JFaceActionTest {
-
-    /**
-     * Constructs a new test with the given name.
-     * 
-     * @param name
-     *            the name of the test
-     */
-    public ContributionItemTest(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that a contribution item's parent link is set when added to a
-     * contribution manager, and cleared when the item is removed.
-     * This is a regression test for:
-     * Bug 80569 [Contributions] Parent of contribution item not cleared when item removed from manager
-     */
-    public void testParentLink() {
-        IContributionManager mgr = new DummyContributionManager();
-        ContributionItem item = new ActionContributionItem(new DummyAction());
-        assertNull(item.getParent());
-        mgr.add(item);
-        assertEquals(mgr, item.getParent());
-        mgr.remove(item);
-        assertNull(item.getParent());
-    }
-    
-    /**
-     * Tests that an action contribution item will display the text in a
-     * created SWT button when the MODE_FORCE_TEXT mode is set.
-     * This is a test for:
-     * Bug 187956 [ActionSets] ActionContributionItem.MODE_FORCE_TEXT should apply to Buttons too
-     */
-    public void testForceModeText() {
-    	Action action = new DummyAction();
-    	action.setImageDescriptor(
-    	AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tests",
-    			"icons/anything.gif"));
-    	ActionContributionItem item = new ActionContributionItem(action);
-    	item.fill(getShell());
-    	
-    	Control[] children = getShell().getChildren();
-    	Button button = (Button) children[0];
-    	assertEquals("", button.getText());
-    	action.setText("Text");
-    	assertEquals("", button.getText());
-    	item.setMode(ActionContributionItem.MODE_FORCE_TEXT);
-    	assertEquals("Text", button.getText());
-    	action.setText(null);
-    	assertEquals("", button.getText());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyAction.java
deleted file mode 100644
index 7b1faf0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyAction.java
+++ /dev/null
@@ -1,26 +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.jface.tests.action;
-
-import org.eclipse.jface.action.Action;
-
-
-/**
- * A dummy action, used just for testing.
- */
-class DummyAction extends Action {
-    
-    static int Count = 0;
-    
-    public DummyAction() {
-        super("DummyAction " + ++Count);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyContributionManager.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyContributionManager.java
deleted file mode 100644
index 9c7e5f3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/DummyContributionManager.java
+++ /dev/null
@@ -1,24 +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.jface.tests.action;
-
-import org.eclipse.jface.action.ContributionManager;
-
-
-/**
- * A dummy contribution manager, used just for testing.
- * Does not populate any widgets.
- */
-class DummyContributionManager extends ContributionManager {
-    public void update(boolean force) {
-        // ignore
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/JFaceActionTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/JFaceActionTest.java
deleted file mode 100644
index 72389d8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/JFaceActionTest.java
+++ /dev/null
@@ -1,67 +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.jface.tests.action;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Abstract superclass of all JFace action tests.
- * 
- * @since 3.1
- */
-public abstract class JFaceActionTest extends TestCase {
-
-    private Display display;
-    private Shell shell;
-
-    /**
-     * Constructs a new test with the given name
-     * 
-     * @param name the name of the test
-     */
-    protected JFaceActionTest(String name) {
-        super(name);
-    }
-
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-	    display = Display.getCurrent();
-	    if (display == null) {
-	        display = new Display();
-	    }
-	    shell = new Shell(display);
-	    shell.setSize(500, 500);
-	    shell.setLayout(new FillLayout());
-	    shell.open();
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-       shell.dispose();
-    }
-    
-    protected Display getDisplay() {
-        return display;
-    }
-    
-    protected Shell getShell() {
-        return shell;
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/MenuManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/MenuManagerTest.java
deleted file mode 100644
index 766d753..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/action/MenuManagerTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.action;
-
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Tests for the MenuManager API.
- * 
- * @since 3.1
- */
-public class MenuManagerTest extends JFaceActionTest {
-
-    private int groupMarkerCount = 0;
-    private int separatorCount = 0;
-
-    /**
-     * Constructs a new test with the given name.
-     * 
-     * @param name
-     *            the name of the test
-     */
-    public MenuManagerTest(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that a menu with no concrete visible items (that is, ignoring
-     * separators and group markers) is hidden.
-     * 
-     * @see MenuManager#isVisible()
-     */
-    public void testMenuWithNoConcreteVisibleItemsIsHidden() {
-        MenuManager menuBarMgr = createMenuBarManager();
-
-        MenuManager fileMenu = createMenuManager("File", "gsgn");
-        menuBarMgr.add(fileMenu);
-        menuBarMgr.updateAll(false);
-        assertEquals(0, getShell().getMenuBar().getItems().length);
-    }
-
-    /**
-     * Tests that adding a concrete visible item to a menu with no concrete
-     * visible items makes the menu visible. Regression test for bug 54779 [RCP]
-     * Problem updating menus, menu not appearing
-     * 
-     * @see MenuManager#isVisible()
-     * @see MenuManager#markDirty()
-     */
-    public void testAddingConcreteItemToMenuWithNoConcreteVisibleItems() {
-        MenuManager menuBarMgr = createMenuBarManager();
-
-        MenuManager fileMenuMgr = createMenuManager("File", "gsgn");
-        menuBarMgr.add(fileMenuMgr);
-        menuBarMgr.updateAll(false);
-        
-        Menu menuBar = getShell().getMenuBar();
-        assertEquals(0, menuBar.getItems().length);
-        
-        fileMenuMgr.add(createItem('a'));
-        menuBarMgr.updateAll(false);
-        assertEquals(1, menuBar.getItems().length);
-        
-        assertEquals("File", menuBar.getItems()[0].getText());
-        
-        Menu fileMenu = menuBar.getItems()[0].getMenu();
-        assertEquals(1, fileMenu.getItems().length);
-    }
-    
-    /**
-     * This is a test case for bug 204788 to ensure that a disposed menu is
-     * marked as being dirty.
-     */
-    public void testDisposedMenuIsDirty() {
-        MenuManager menuBarMgr = createMenuBarManager();
-
-        MenuManager fileMenuMgr = createMenuManager("File", "gsgn");
-        menuBarMgr.add(fileMenuMgr);
-        menuBarMgr.updateAll(false);
-        
-        assertFalse(menuBarMgr.isDirty());
-        
-        menuBarMgr.dispose();
-        assertTrue(menuBarMgr.isDirty());
-    }
-    
-    /**
-     * This is a test case for bug 255429 to ensure that a menu manager without any text
-     * set does not throw an NPE. 
-     */
-    public void testEmptyMenuManagerNPE() {
-    	Menu menu = new Menu(getShell());
-    	MenuManager manager = new MenuManager();
-    	manager.fill(menu, -1);
-    }
-
-    /**
-     * Creates a menu manager with the given name, adding items based on the given template.
-     * 
-     * @param name the name
-     * @param template the template
-     * 
-     * @return a menu with no concrete visible items
-     */
-    private MenuManager createMenuManager(String name, String template) {
-        MenuManager menuMgr = new MenuManager(name);
-        addItems(menuMgr, template);
-        return menuMgr;
-    }
-
-    private void addItems(IContributionManager manager, String template) {
-        for (int i = 0; i < template.length(); ++i) {
-            manager.add(createItem(template.charAt(i)));
-        }
-    }
-    
-    private IContributionItem createItem(char template) {
-        switch (template) {
-        	case 'g':
-        	    return new GroupMarker("testGroup" + groupMarkerCount++);
-        	case 's':
-        	    return new Separator("testSeparator" + separatorCount++);
-        	case 'a': {
-        	    IAction action = new DummyAction();
-        	    return new ActionContributionItem(action);
-        	}
-        	case 'n': {
-        	    IAction action = new DummyAction();
-        	    ActionContributionItem item = new ActionContributionItem(action);
-        	    item.setVisible(false);
-        	    return item;
-        	}
-        	default:
-        	    throw new IllegalArgumentException("Unknown template char: " + template);
-        }
-    }
-
-    protected MenuManager createMenuBarManager() {
-        Shell shell = getShell();
-        MenuManager menuMgr = new MenuManager();
-        Menu menuBar = menuMgr.createMenuBar(shell);
-        shell.setMenuBar(menuBar);
-        return menuMgr;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/AllTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/AllTests.java
deleted file mode 100644
index e91f75a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/AllTests.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.dialogs;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-
-    public static Test suite() {
-        return new AllTests();
-    }
-
-    public AllTests() {
-    	addTestSuite(DialogTest.class);
-    	addTestSuite(DialogSettingsTest.class);
-    	addTestSuite(InputDialogTest.class);
-        addTestSuite(TitleAreaDialogTest.class);
-        addTestSuite(SafeRunnableErrorTest.class);
-        addTestSuite(ProgressIndicatorStyleTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogSettingsTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogSettingsTest.java
deleted file mode 100644
index 1e1bdcf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogSettingsTest.java
+++ /dev/null
@@ -1,436 +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.jface.tests.dialogs;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.DialogSettings;
-import org.eclipse.jface.dialogs.IDialogSettings;
-
-public class DialogSettingsTest extends TestCase {
-
-	private static final float DELTA = 0.0000001f;
-
-	private static final String[] TEST_STRINGS = { "value",
-			" value with spaces ", "value.with.many.dots",
-			"value_with_underscores", "value<with<lessthan",
-			"value>with>greaterthan", "value&with&ampersand",
-			"value\"with\"quote", "value#with#hash", "",
-			"\nvalue\nwith\nnewlines\n", "\tvalue\twith\ttab\t",
-			"\rvalue\rwith\rreturn\r", };
-
-	public void testDialogSettings() throws IOException {
-		for (int i = 0; i < TEST_STRINGS.length; i++) {
-			final String name = TEST_STRINGS[i];
-			testPutAndGetWithTitle(new DialogSettingsChecker() {
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					// nothing
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					assertEquals(name, deserializedDialogSettings.getName());
-				}
-			}, name);
-		}
-	}
-
-	public void testAddNewSection() throws IOException {
-		for (int i = 0; i < TEST_STRINGS.length; i++) {
-			final String name = TEST_STRINGS[i];
-			testPutAndGet(new DialogSettingsChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					assertEquals(0,
-							dialogSettingsToSerialize.getSections().length);
-					assertEquals(null, dialogSettingsToSerialize
-							.getSection(name));
-					dialogSettingsToSerialize.addNewSection(name);
-					assertEquals(1,
-							dialogSettingsToSerialize.getSections().length);
-					assertNotNull(dialogSettingsToSerialize.getSection(name));
-					assertEquals(name, dialogSettingsToSerialize.getSection(
-							name).getName());
-					assertEquals(name,
-							dialogSettingsToSerialize.getSections()[0]
-									.getName());
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					assertEquals(1,
-							deserializedDialogSettings.getSections().length);
-					assertNotNull(deserializedDialogSettings.getSection(name));
-					assertEquals(name, deserializedDialogSettings.getSection(
-							name).getName());
-					assertEquals(name,
-							deserializedDialogSettings.getSections()[0]
-									.getName());
-				}
-			});
-		}
-	}
-
-	/**
-	 * Helper method to fill a DialogSettings object to be checked later by
-	 * check.
-	 * 
-	 * @param memento
-	 */
-	private void fill(IDialogSettings dialogSettings) {
-		dialogSettings.put("booleanKey", true);
-		dialogSettings.put("floatKey", 0.4f);
-		dialogSettings.put("doubleKey", 0.5);
-		dialogSettings.put("integerKey", 324765);
-		dialogSettings.put("longKey", 1324765L);
-		dialogSettings.put("stringKey", "a string");
-		dialogSettings.put("stringArrayKey", new String[] { "some text data1",
-				"some text data2" });
-		final IDialogSettings section = dialogSettings.addNewSection("child1");
-		section.addNewSection("child2");
-		section.addNewSection("child3");
-	}
-
-	/**
-	 * Helper method to check if the values set by fill are still there.
-	 * 
-	 */
-	protected void check(IDialogSettings dialogSettings) {
-		assertEquals(true, dialogSettings.getBoolean("booleanKey"));
-		assertEquals(0.4f, dialogSettings.getFloat("floatKey"), 0.4f);
-		assertEquals(0.4f, dialogSettings.getDouble("doubleKey"), 0.5);
-		assertEquals(324765, dialogSettings.getInt("integerKey"));
-		assertEquals(1324765L, dialogSettings.getLong("longKey"));
-		assertEquals("a string", dialogSettings.get("stringKey"));
-		String[] stringArray = dialogSettings.getArray("stringArrayKey");
-		assertEquals(2, stringArray.length);
-		assertEquals("some text data1", stringArray[0]);
-		assertEquals("some text data2", stringArray[1]);
-		IDialogSettings section = dialogSettings.getSection("child1");
-		assertNotNull(section);
-		assertNotNull(section.getSection("child2"));
-		assertNotNull(section.getSection("child3"));
-	}
-
-	public void testAddSection() throws IOException {
-		testPutAndGet(new DialogSettingsChecker() {
-
-			public void prepareAndCheckBeforeSerialization(
-					IDialogSettings dialogSettingsToSerialize) {
-				IDialogSettings section = new DialogSettings("some section");
-				fill(section);
-				check(section);
-				assertEquals("some section", section.getName());
-				dialogSettingsToSerialize.addSection(section);
-			}
-
-			public void checkAfterDeserialization(
-					IDialogSettings deserializedDialogSettings) {
-				final IDialogSettings section = deserializedDialogSettings
-						.getSection("some section");
-				assertNotNull(section);
-				assertEquals("some section", section.getName());
-				check(section);
-			}
-		});
-	}
-
-	public void testKeys() throws IOException {
-		for (int i = 0; i < TEST_STRINGS.length; i++) {
-			final String key = TEST_STRINGS[i];
-			testPutAndGet(new DialogSettingsChecker() {
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					assertNull(dialogSettingsToSerialize.get(key));
-					dialogSettingsToSerialize.put(key, "some string");
-					assertEquals("some string", dialogSettingsToSerialize
-							.get(key));
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					assertEquals("some string", deserializedDialogSettings
-							.get(key));
-				}
-			});
-		}
-	}
-
-	public void testGet() throws IOException {
-		for (int i = 0; i < TEST_STRINGS.length; i++) {
-			final String value = TEST_STRINGS[i];
-			testPutAndGet(new DialogSettingsChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					dialogSettingsToSerialize.put("someKey", value);
-					assertEquals(value, dialogSettingsToSerialize
-							.get("someKey"));
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					assertEquals(value, deserializedDialogSettings
-							.get("someKey"));
-				}
-			});
-		}
-	}
-
-	public void testGetArray() throws IOException {
-		for (int i = 0; i < TEST_STRINGS.length; i++) {
-			final String value1 = TEST_STRINGS[i];
-			for (int j = 0; j < TEST_STRINGS.length; j++) {
-				final String value2 = TEST_STRINGS[j];
-				final String[] value = new String[] { value1, value2 };
-				testPutAndGet(new DialogSettingsChecker() {
-
-					public void prepareAndCheckBeforeSerialization(
-							IDialogSettings dialogSettingsToSerialize) {
-						dialogSettingsToSerialize.put("someKey", value);
-						assertEquals(2, dialogSettingsToSerialize
-								.getArray("someKey").length);
-						assertEquals(value1, dialogSettingsToSerialize
-								.getArray("someKey")[0]);
-						assertEquals(value2, dialogSettingsToSerialize
-								.getArray("someKey")[1]);
-						dialogSettingsToSerialize.put("anotherKey1",
-								new String[] {});
-						// TODO see bug 98332, we should handle null cases too
-						// dialogSettingsToSerialize.put("anotherKey2",
-						// new String[] { null });
-						// dialogSettingsToSerialize.put("anotherKey3",
-						// new String[] { "string", null });
-						// dialogSettingsToSerialize.put("anotherKey4",
-						// new String[] { null, "string", null });
-					}
-
-					public void checkAfterDeserialization(
-							IDialogSettings deserializedDialogSettings) {
-						assertEquals(2, deserializedDialogSettings
-								.getArray("someKey").length);
-						assertEquals(value1, deserializedDialogSettings
-								.getArray("someKey")[0]);
-						assertEquals(value2, deserializedDialogSettings
-								.getArray("someKey")[1]);
-						assertEquals(0, deserializedDialogSettings
-								.getArray("anotherKey1").length);
-						// TODO see bug 98332, we should handle null cases too
-						// assertEquals(1, deserializedDialogSettings
-						// .getArray("anotherKey2").length);
-						// assertEquals(null, deserializedDialogSettings
-						// .getArray("anotherKey2")[0]);
-						// assertEquals(2, deserializedDialogSettings
-						// .getArray("anotherKey3").length);
-						// assertEquals("string", deserializedDialogSettings
-						// .getArray("anotherKey3")[0]);
-						// assertEquals(null, deserializedDialogSettings
-						// .getArray("anotherKey3")[1]);
-						// assertEquals(3, deserializedDialogSettings
-						// .getArray("anotherKey4").length);
-						// assertEquals(null, deserializedDialogSettings
-						// .getArray("anotherKey4")[0]);
-						// assertEquals("string", deserializedDialogSettings
-						// .getArray("anotherKey4")[1]);
-						// assertEquals(null, deserializedDialogSettings
-						// .getArray("anotherKey4")[2]);
-					}
-				});
-			}
-		}
-	}
-
-	public void testGetBoolean() throws IOException {
-		testPutAndGet(new DialogSettingsChecker() {
-
-			public void prepareAndCheckBeforeSerialization(
-					IDialogSettings dialogSettingsToSerialize) {
-				dialogSettingsToSerialize.put("true", true);
-				dialogSettingsToSerialize.put("false", false);
-				assertEquals(true, dialogSettingsToSerialize.getBoolean("true"));
-				assertEquals(false, dialogSettingsToSerialize
-						.getBoolean("false"));
-			}
-
-			public void checkAfterDeserialization(
-					IDialogSettings deserializedDialogSettings) {
-				assertEquals(true, deserializedDialogSettings
-						.getBoolean("true"));
-				assertEquals(false, deserializedDialogSettings
-						.getBoolean("false"));
-			}
-		});
-	}
-
-	public void testGetDouble() throws IOException {
-		final double[] values = new double[] { -3.1415, 1, 0, 4554.45235,
-				Double.MAX_VALUE, Double.MIN_VALUE, Double.NaN,
-				Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY };
-
-		for (int i = 0; i < values.length; i++) {
-			final double value = values[i];
-			testPutAndGet(new DialogSettingsChecker() {
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					dialogSettingsToSerialize.put("someKey", value);
-					final double d = dialogSettingsToSerialize
-							.getDouble("someKey");
-					if (Double.isNaN(value)) {
-						assertTrue(Double.isNaN(d));
-					} else {
-						assertEquals(value, d, DELTA);
-					}
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					final double d = deserializedDialogSettings
-							.getDouble("someKey");
-					if (Double.isNaN(value)) {
-						assertTrue(Double.isNaN(d));
-					} else {
-						assertEquals(value, d, DELTA);
-					}
-				}
-			});
-		}
-	}
-
-	public void testGetFloat() throws IOException {
-		final float[] values = new float[] { -3.1415f, 1, 0, 4554.45235f,
-				Float.MAX_VALUE, Float.MIN_VALUE, Float.NaN,
-				Float.POSITIVE_INFINITY, Float.NEGATIVE_INFINITY };
-
-		for (int i = 0; i < values.length; i++) {
-			final float value = values[i];
-			testPutAndGet(new DialogSettingsChecker() {
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					dialogSettingsToSerialize.put("someKey", value);
-					final float f = dialogSettingsToSerialize
-							.getFloat("someKey");
-					if (Float.isNaN(value)) {
-						assertTrue(Float.isNaN(f));
-					} else {
-						assertEquals(value, f, DELTA);
-					}
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					final float f = deserializedDialogSettings
-							.getFloat("someKey");
-					if (Float.isNaN(value)) {
-						assertTrue(Float.isNaN(f));
-					} else {
-						assertEquals(value, f, DELTA);
-					}
-				}
-			});
-		}
-	}
-
-	public void testGetInt() throws IOException {
-		int[] values = new int[] { 36254, 0, 1, -36254, Integer.MAX_VALUE,
-				Integer.MIN_VALUE };
-
-		for (int i = 0; i < values.length; i++) {
-			final int value = values[i];
-			testPutAndGet(new DialogSettingsChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					dialogSettingsToSerialize.put("someKey", value);
-					assertEquals(value, dialogSettingsToSerialize
-							.getInt("someKey"));
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					assertEquals(value, deserializedDialogSettings
-							.getInt("someKey"));
-				}
-			});
-		}
-	}
-
-	public void testGetLong() throws IOException {
-		long[] values = new long[] { 36254L, 0L, 1L, -36254L, Long.MAX_VALUE,
-				Long.MIN_VALUE };
-
-		for (int i = 0; i < values.length; i++) {
-			final long value = values[i];
-			testPutAndGet(new DialogSettingsChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						IDialogSettings dialogSettingsToSerialize) {
-					dialogSettingsToSerialize.put("someKey", value);
-					assertEquals(value, dialogSettingsToSerialize
-							.getLong("someKey"));
-				}
-
-				public void checkAfterDeserialization(
-						IDialogSettings deserializedDialogSettings) {
-					assertEquals(value, deserializedDialogSettings
-							.getLong("someKey"));
-				}
-			});
-		}
-
-	}
-
-	public void testGetSection() {
-	}
-
-	public void testGetSections() {
-	}
-
-	private static interface DialogSettingsChecker {
-		void prepareAndCheckBeforeSerialization(
-				IDialogSettings dialogSettingsToSerialize);
-
-		void checkAfterDeserialization(
-				IDialogSettings deserializedDialogSettings);
-	}
-
-	private void testPutAndGet(DialogSettingsChecker dialogSettingsChecker)
-			throws IOException {
-		testPutAndGetWithTitle(dialogSettingsChecker, "DialogSettingsTest");
-	}
-
-	private void testPutAndGetWithTitle(
-			DialogSettingsChecker dialogSettingsChecker, String sectionName)
-			throws IOException {
-		IDialogSettings dialogSettingsToSerialize = new DialogSettings(
-				sectionName);
-
-		dialogSettingsChecker
-				.prepareAndCheckBeforeSerialization(dialogSettingsToSerialize);
-
-		StringWriter writer = new StringWriter();
-		dialogSettingsToSerialize.save(writer);
-		writer.close();
-
-		StringReader reader = new StringReader(writer.getBuffer().toString());
-		DialogSettings deserializedDialogSettings = new DialogSettings("");
-		deserializedDialogSettings.load(reader);
-
-		dialogSettingsChecker
-				.checkAfterDeserialization(deserializedDialogSettings);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogTest.java
deleted file mode 100644
index 63d59d4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/DialogTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Remy Chi Jian Suen - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jface.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-public class DialogTest extends TestCase {
-
-	/**
-	 * The dialog being tested.
-	 */
-	private Dialog dialog;
-
-	protected void tearDown() throws Exception {
-		if (dialog != null) {
-			// close the dialog
-			dialog.close();
-			dialog = null;
-		}
-		super.tearDown();
-	}
-
-	/**
-	 * If a layout is invoked prior to the button being shifted in
-	 * {@link org.eclipse.jface.dialogs.Dialog Dialog}'s
-	 * {@link org.eclipse.jface.dialogs.Dialog#initializeBounds()
-	 * initializeBounds()} invocation, the button will not be visually shifted
-	 * even though getChildren() may prove otherwise. We check for this by
-	 * comparing the X coordinate of the 'OK' and 'Cancel' buttons to ensure
-	 * that they are in the right place if the dismissal alignment for the
-	 * current platform is SWT.RIGHT.
-	 */
-	public void testButtonAlignmentBug272583() {
-		// instantiate a new dialog
-		ForceLayoutDialog forceLayoutDialog = new ForceLayoutDialog();
-		dialog = forceLayoutDialog;
-		// don't block the UI/testing thread
-		forceLayoutDialog.setBlockOnOpen(false);
-		// open the dialog so the widgets will be realized
-		forceLayoutDialog.open();
-
-		// retrieve the 'OK' and 'Cancel' buttons
-		Button okBtn = forceLayoutDialog.getButton(IDialogConstants.OK_ID);
-		Button cancelBtn = forceLayoutDialog
-				.getButton(IDialogConstants.CANCEL_ID);
-
-		// retrieve the X coordinates of the two buttons
-		int okX = okBtn.getBounds().x;
-		int cancelX = cancelBtn.getBounds().x;
-
-		if (okBtn.getDisplay().getDismissalAlignment() == SWT.LEFT) {
-			assertTrue(
-					"The 'OK' button should be to the left of the 'Cancel' button",
-					okX < cancelX);
-		} else {
-			assertTrue(
-					"The 'OK' button should be to the right of the 'Cancel' button",
-					cancelX < okX);
-		}
-
-		forceLayoutDialog.close();
-	}
-
-	/**
-	 * A dialog that explicitly invokes a layout operation prior to the shell
-	 * being opened. Calls to moveBelow(Control) should be followed by a layout
-	 * operation and as clients may explicitly invoke layout while subclassing
-	 * Dialog, we want to be sure that this doesn't prevent the
-	 * moveBelow(Control) call from working.
-	 */
-	private class ForceLayoutDialog extends Dialog {
-
-		ForceLayoutDialog() {
-			super((Shell) null);
-		}
-
-		protected Control createContents(Composite parent) {
-			Control contents = super.createContents(parent);
-			// explicitly layout the button prior to the shell being realized
-			getShell().layout(
-					new Control[] { getButton(IDialogConstants.OK_ID) });
-			return contents;
-		}
-
-		/**
-		 * Overridden to allow it to be invoked locally.
-		 */
-		protected Button getButton(int id) {
-			return super.getButton(id);
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/InputDialogTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/InputDialogTest.java
deleted file mode 100644
index 51f4474..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/InputDialogTest.java
+++ /dev/null
@@ -1,26 +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.jface.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.InputDialog;
-
-public class InputDialogTest extends TestCase {
-
-	public void testSetErrorMessageEarly() {
-		final InputDialog dialog = new InputDialog(null, "TEST", "value",
-				"test", null);
-		dialog.setBlockOnOpen(false);
-		dialog.setErrorMessage("error");
-		dialog.open();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/ProgressIndicatorStyleTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/ProgressIndicatorStyleTest.java
deleted file mode 100644
index 367ef29..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/ProgressIndicatorStyleTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.dialogs;
-
-import java.lang.reflect.Field;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.ProgressIndicator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.ProgressBar;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Test case to assert proper styles have been set for ProgressIndicator.
- * 
- * @since 3.4
- * 
- */
-public class ProgressIndicatorStyleTest extends TestCase {
-
-	protected ProgressIndicator progress;
-	protected ProgressBar deter, indeter;
-	protected int style;
-
-	public ProgressIndicatorStyleTest(String name) {
-		super(name);
-
-	}
-
-	/**
-	 * Test the indicator styles.
-	 */
-	public void testProgressIndicator() {
-		style = SWT.SMOOTH;
-		verifyIndicator();
-
-		style = SWT.VERTICAL;
-		verifyIndicator();		
-
-		style = SWT.HORIZONTAL;
-		verifyIndicator();
-		
-	}
-
-	/**
-	 * Verify the indicator is working by opening it and doing something.
-	 */
-	private void verifyIndicator() {
-		Shell shell = new Shell();
-		progress = new ProgressIndicator(shell, style);
-		progress.setSize(175,175);
-		shell.setSize(200,200);
-		shell.open();
-		shell.forceActive();
-		progress.beginTask(100);
-		progress.worked(50);
-		loader("determinateProgressBar", deter);
-		loader("indeterminateProgressBar", indeter);
-		long timeout = System.currentTimeMillis() + 1000;
-		while(System.currentTimeMillis() < timeout){
-			shell.getDisplay().readAndDispatch();
-		}
-		shell.close();
-		progress.dispose();
-	}
-
-	/**
-	 * Loads, using reflection, the internal ProgressBars from inside the
-	 * ProgressIndicator and tests to assert the proper style has been set on
-	 * them.
-	 */
-	private void loader(String field, ProgressBar p) {
-		Class c = progress.getClass();
-		try {
-			Field f = c.getDeclaredField(field);
-			f.setAccessible(true);
-			p = (ProgressBar) f.get(progress);
-
-			assertEquals(style, p.getStyle() & style);
-		} catch (NoSuchFieldException e) {
-			System.err.println("No such field");
-		} catch (IllegalAccessException e) {
-			System.err.println("Illegal Access");
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/SafeRunnableErrorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/SafeRunnableErrorTest.java
deleted file mode 100644
index 8a17139..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/SafeRunnableErrorTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Oakland Software and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: Oakland Software (francisu@ieee.org) - initial API and
- * implementation
- ******************************************************************************/
-package org.eclipse.jface.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.jface.util.SafeRunnable;
-
-/**
- * NOTE - these tests are not really very good, in order to really test this you
- * need to actually see what happens in the dialog, and therefore test it by
- * hand.
- * 
- * @since 3.4
- * 
- */
-public class SafeRunnableErrorTest extends TestCase {
-
-	int count;
-
-	protected Thread runner() {
-		return new Thread(new Runnable() {
-
-			public void run() {
-				ISafeRunnable runnable = new SafeRunnable() {
-					public void run() throws Exception {
-						throw new RuntimeException("test exception " + ++count);
-					}
-				};
-				SafeRunnable.run(runnable);
-
-			}
-		});
-	}
-
-	public void testSafeRunnableHandler() {
-		// Just make sure that nothing bad happens when we throw here
-		SafeRunnable.run(new SafeRunnable() {
-			public void run() throws Exception {
-				throw new RuntimeException("test exception");
-			}
-		});
-	}
-
-	public void testSafeRunnableHandlerOtherThread() throws Exception {
-		Thread t = runner();
-		t.run();
-		t.join();
-	}
-
-	public void testSafeRunnableHandlerMulti() {
-		ISafeRunnable runnable = new SafeRunnable() {
-			public void run() throws Exception {
-				throw new RuntimeException("test exception " + ++count);
-			}
-		};
-
-		// Make sure these don't block
-		SafeRunnable.run(runnable);
-		SafeRunnable.run(runnable);
-		SafeRunnable.run(runnable);
-		assertEquals(3, count);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/TitleAreaDialogTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/TitleAreaDialogTest.java
deleted file mode 100644
index 7d1f58d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/dialogs/TitleAreaDialogTest.java
+++ /dev/null
@@ -1,51 +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.jface.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.TitleAreaDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-public class TitleAreaDialogTest extends TestCase {
-
-	static ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tests", "icons/anything.gif");
-
-	// Test setting the title image before creating the dialog.
-	public void testSetTitleImageEarly() {
-		final TitleAreaDialog dialog = new TitleAreaDialog(null);
-		dialog.setBlockOnOpen(false);
-		final Image image = descriptor.createImage();
-		dialog.setTitleImage(image);
-		dialog.create();
-		Shell shell = dialog.getShell();
-		shell.addDisposeListener(new DisposeListener() {
-
-			public void widgetDisposed(DisposeEvent e) {
-				image.dispose();
-			}
-		});
-		dialog.open();
-	}
-	
-	public void testSetTitleImageNull() {
-		TitleAreaDialog dialog = new TitleAreaDialog(null);
-		dialog.setBlockOnOpen(false);
-		dialog.setTitleImage(null);
-		dialog.open();
-		dialog.setTitleImage(null);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/AllTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/AllTests.java
deleted file mode 100644
index 2d23636..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/AllTests.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.images;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-
-    public static Test suite() {
-        return new AllTests();
-    }
-
-    public AllTests() {
-        addTestSuite(ImageRegistryTest.class);
-        addTestSuite(ResourceManagerTest.class);
-        addTestSuite(FileImageDescriptorTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/FileImageDescriptorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/FileImageDescriptorTest.java
deleted file mode 100644
index 99b3c1e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/FileImageDescriptorTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Karsten Stoeckmann <ngc2997@gmx.net> - Test case for Bug 220766
- *     		[JFace] ImageRegistry.get does not work as expected (crashes with NullPointerException)
- ******************************************************************************/
-
-package org.eclipse.jface.tests.images;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.TestPlugin;
-import org.osgi.framework.Bundle;
-
-/**
- * Test loading a directory full of images.
- * 
- * @since 3.4
- * 
- */
-public class FileImageDescriptorTest extends TestCase {
-
-	protected static final String IMAGES_DIRECTORY = "/icons/imagetests";
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param name
-	 */
-	public FileImageDescriptorTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Test loading the image descriptors.
-	 */
-	public void testFileImageDescriptorWorkbench() {
-
-		Class missing = null;
-		ArrayList images = new ArrayList();
-
-		Bundle bundle = TestPlugin.getDefault().getBundle();
-		Enumeration bundleEntries = bundle.getEntryPaths(IMAGES_DIRECTORY);
-
-		while (bundleEntries.hasMoreElements()) {
-			ImageDescriptor descriptor;
-			String localImagePath = (String) bundleEntries.nextElement();
-			URL[] files = FileLocator.findEntries(bundle, new Path(
-					localImagePath));
-
-			for (int i = 0; i < files.length; i++) {
-
-				// Skip any subdirectories added by version control
-				if (files[i].getPath().lastIndexOf('.') < 0)
-					continue;
-
-				try {
-					descriptor = ImageDescriptor.createFromFile(missing,
-							FileLocator.toFileURL(files[i]).getFile());
-				} catch (IOException e) {
-					fail(e.getLocalizedMessage());
-					continue;
-				}
-
-				Image image = descriptor.createImage();
-				images.add(image);
-
-			}
-
-		}
-
-		Iterator imageIterator = images.iterator();
-		while (imageIterator.hasNext()) {
-			((Image) imageIterator.next()).dispose();
-		}
-
-	}
-
-	/**
-	 * Test the file image descriptor.
-	 */
-	public void testFileImageDescriptorLocal() {
-
-		ImageDescriptor descriptor = ImageDescriptor.createFromFile(
-				FileImageDescriptorTest.class, "anything.gif");
-
-		Image image = descriptor.createImage();
-		assertTrue("Could not find image", image != null);
-		image.dispose();
-
-	}
-
-	/**
-	 * Test for a missing file image descriptor.
-	 */
-	public void testFileImageDescriptorMissing() {
-
-		ImageDescriptor descriptor = ImageDescriptor.createFromFile(
-				FileImageDescriptorTest.class, "missing.gif");
-
-		Image image = descriptor.createImage(false);
-		assertTrue("Found an image but should be null", image == null);
-	}
-	
-	/**
-	 * Test for a missing file image descriptor.
-	 */
-	public void testFileImageDescriptorMissingWithDefault() {
-
-		ImageDescriptor descriptor = ImageDescriptor.createFromFile(
-				FileImageDescriptorTest.class, "missing.gif");
-
-		Image image = descriptor.createImage(true);
-		assertTrue("Did not find default image", image != null);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ImageRegistryTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ImageRegistryTest.java
deleted file mode 100644
index e1486c0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ImageRegistryTest.java
+++ /dev/null
@@ -1,85 +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.jface.tests.images;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IconAndMessageDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @since 3.0
- */
-public class ImageRegistryTest extends TestCase {
-    public ImageRegistryTest(String name) {
-        super(name);
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(ImageRegistryTest.class);
-    }
-
-    public void testGetNull() {
-        ImageRegistry reg = JFaceResources.getImageRegistry();
-
-        Image result = reg.get((String) null);
-        assertTrue("Registry should handle null", result == null);
-    }
-
-    public void testGetString() {
-
-        // note, we must touch the class to ensure the static initialer runs
-        // so the image registry is up to date
-        Dialog.getBlockedHandler();
-
-        String[] imageNames = new String[] { Dialog.DLG_IMG_ERROR,
-                Dialog.DLG_IMG_INFO, Dialog.DLG_IMG_QUESTION,
-                Dialog.DLG_IMG_WARNING, Dialog.DLG_IMG_MESSAGE_ERROR,
-                Dialog.DLG_IMG_MESSAGE_INFO, Dialog.DLG_IMG_MESSAGE_WARNING };
-
-        ImageRegistry reg = JFaceResources.getImageRegistry();
-
-        for (int i = 0; i < imageNames.length; i++) {
-            String imageName = imageNames[i];
-            Image image1 = reg.get(imageName);
-            assertTrue("Returned null image", image1 != null);
-        }
-
-    }
-
-    /**
-     * check that we get non-null versions of the <code>IconAndMessageDialog</code> images
-     * so we know that the code using them can rely on them.
-     * 
-     * Note that they can be <code>null</code> from SWT.
-     *
-     */
-    public void testGetIconMessageDialogImages() {
-
-        IconAndMessageDialog iconDialog = new MessageDialog(null,
-                "testGetDialogIcons", null, "Message", Window.CANCEL,
-                new String[] { "cancel" }, 0);
-
-        Image[] images = new Image[] { iconDialog.getErrorImage(),
-                iconDialog.getInfoImage(), iconDialog.getQuestionImage(),
-                iconDialog.getWarningImage() };
-
-        for (int i = 0; i < images.length; i++) {
-            assertTrue("Returned null image", images[i] != null);
-        }
-
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ResourceManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ResourceManagerTest.java
deleted file mode 100644
index bb09cda..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/ResourceManagerTest.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.images;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.jface.resource.ColorDescriptor;
-import org.eclipse.jface.resource.DeviceResourceDescriptor;
-import org.eclipse.jface.resource.DeviceResourceException;
-import org.eclipse.jface.resource.DeviceResourceManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.LocalResourceManager;
-import org.eclipse.jface.resource.ResourceManager;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Device;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * @since 3.1
- */
-public class ResourceManagerTest extends TestCase {
-    
-    private DeviceResourceDescriptor[] descriptors;
-    private Image testImage;
-    private Image testImage2;
-    private Color testColor;
-    private Color testColor2;
-    private int numDupes;
-    
-    private DeviceResourceManager globalResourceManager;
-    
-    private static ImageDescriptor getImage(String path) {
-        return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tests", path);
-    }
-    
-    private static final class TestDescriptor extends DeviceResourceDescriptor {
-        DeviceResourceDescriptor toWrap;
-        public static int refCount = 0;
-        
-        public TestDescriptor(DeviceResourceDescriptor toWrap) {
-            this.toWrap = toWrap;
-        }
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.resource.DeviceResourceDescriptor#createResource(org.eclipse.swt.graphics.Device)
-         */
-        public Object createResource(Device device) throws DeviceResourceException {
-            Object result = toWrap.createResource(device);
-            refCount++;
-            return result;
-        }
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.resource.DeviceResourceDescriptor#destroyResource(java.lang.Object)
-         */
-        public void destroyResource(Object previouslyCreatedObject) {
-            refCount--;
-            toWrap.destroyResource(previouslyCreatedObject);
-        }
-        
-        /* (non-Javadoc)
-         * @see java.lang.Object#equals(java.lang.Object)
-         */
-        public boolean equals(Object arg0) {
-            if (arg0 instanceof TestDescriptor) {
-                TestDescriptor td = (TestDescriptor)arg0;
-                
-                return td.toWrap.equals(toWrap);
-            }
-            
-            return false;
-        }
-        
-        /* (non-Javadoc)
-         * @see java.lang.Object#hashCode()
-         */
-        public int hashCode() {
-            return toWrap.hashCode();
-        }
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-        super.setUp();
-        TestDescriptor.refCount = 0;
-        Display display = Display.getCurrent();
-        globalResourceManager = new DeviceResourceManager(display);
-        testImage = getImage("icons/anything.gif").createImage(display);
-        testImage2 = getImage("icons/binary_co.gif").createImage(display);
-        testColor = new Color(display, new RGB(10, 40, 20));
-        testColor2 = new Color(display, new RGB(230, 100, 26));
-        
-        // Array of resource descriptors containing at least one duplicate of each type.
-        // If you modify this array, be sure to adjust numDupes as well. Note that some
-        // tests index the array directly, so it is a good idea to always add to this
-        // array rather than remove from it.
-        descriptors = new DeviceResourceDescriptor[] {
-                new TestDescriptor(getImage("icons/anything.gif")),
-                new TestDescriptor(getImage("icons/anything.gif")),
-                new TestDescriptor(getImage("icons/binary_co.gif")),
-                new TestDescriptor(getImage("icons/binary_co.gif")),
-                new TestDescriptor(getImage("icons/mockeditorpart1.gif")),
-                
-                new TestDescriptor(getImage("icons/view.gif")), // 5
-                new TestDescriptor(ImageDescriptor.createFromImage(testImage2)),
-                new TestDescriptor(ImageDescriptor.createFromImage(testImage)),
-                new TestDescriptor(ImageDescriptor.createFromImage(testImage)),
-                new TestDescriptor(ImageDescriptor.createFromImage(testImage, display)),
-                
-                new TestDescriptor(ImageDescriptor.createFromImage(testImage, display)),  // 10
-                new TestDescriptor(ImageDescriptor.createFromImage(testImage2, display)),
-                new TestDescriptor(ColorDescriptor.createFrom(new RGB(10, 200, 54))),
-                new TestDescriptor(ColorDescriptor.createFrom(new RGB(10, 200, 54))),
-                new TestDescriptor(ColorDescriptor.createFrom(new RGB(200, 220, 54))),
-                
-                new TestDescriptor(ColorDescriptor.createFrom(testColor)), // 15
-                new TestDescriptor(ColorDescriptor.createFrom(testColor)),
-                new TestDescriptor(ColorDescriptor.createFrom(testColor2)),
-                new TestDescriptor(ColorDescriptor.createFrom(testColor, display)),
-                new TestDescriptor(ColorDescriptor.createFrom(testColor, display)),
-                new TestDescriptor(ColorDescriptor.createFrom(testColor2, display))
-                };
-        
-        // Let the tests know how many duplicates are in the array
-        numDupes = 11;
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        globalResourceManager.dispose();
-        Assert.assertEquals("Detected leaks", 0, TestDescriptor.refCount);
-        testImage.dispose();
-        testImage2.dispose();
-    }
-    
-    protected void validateResource(Object resource) throws Exception {
-        Assert.assertNotNull("Allocated resource was null", resource);
-        if (resource instanceof Image) {
-            Image image = (Image) resource;
-            
-            Assert.assertTrue("Image is disposed", !image.isDisposed());
-            return;
-        }
-    }
-    
-    /**
-     * Tests that the descriptors themselves w
-     *
-     * @throws Exception
-     */
-    public void testDescriptorAllocations() throws Exception {
-        Display display = Display.getCurrent();
-        
-        // Allocate resources directly using the descriptors.
-        Object[] resources = new Object[descriptors.length];
-        
-        for (int i = 0; i < descriptors.length; i++) {
-            DeviceResourceDescriptor next = descriptors[i];
-            
-            Object resource = next.createResource(display);
-            // Ensure that this resource was allocated correctly
-            validateResource(resource);
-            resources[i] = resource;
-        }
-        
-        // Allocating resources without the manager will not reuse duplicates, so we
-        // should get exactly one resource per descriptor.
-        
-        Assert.assertEquals("Expecting one resource to be allocated per descriptor", 
-                descriptors.length, TestDescriptor.refCount);
-        
-        // Deallocate resources directly using the descriptors
-        for (int i = 0; i < descriptors.length; i++) {
-            DeviceResourceDescriptor next = descriptors[i];
-            
-            next.destroyResource(resources[i]);
-        }   
-    }
-    
-    public void testDeviceManagerAllocations() throws Exception {
-        
-        // Allocate resources directly using the descriptors.
-        Object[] resources = new Object[descriptors.length];
-        
-        for (int i = 0; i < descriptors.length; i++) {
-            DeviceResourceDescriptor next = descriptors[i];
-            
-            Object resource = globalResourceManager.create(next);
-            // Ensure that this resource was allocated correctly
-            validateResource(resource);
-            resources[i] = resource;
-        }
-        
-        Assert.assertEquals("Descriptors created from Images should not reallocate Images when the original can be reused",
-                testImage, resources[9]);
-        
-        // Allocating resources without the manager will reuse duplicates, so the number
-        // of resources should equal the number of unique descriptors.
-        
-        Assert.assertEquals("Duplicate descriptors should be reused", 
-                descriptors.length - numDupes, 
-                TestDescriptor.refCount);
-        
-        // Deallocate resources directly using the descriptors
-        for (int i = 0; i < descriptors.length; i++) {
-            DeviceResourceDescriptor next = descriptors[i];
-            
-            globalResourceManager.destroy(next);
-        }
-    }
-    
-    private void allocateResources(ResourceManager mgr, int[] toAllocate) throws Exception {
-        for (int i = 0; i < toAllocate.length; i++) {
-            int j = toAllocate[i];
-            
-            validateResource(mgr.create(descriptors[j]));
-        }
-    }
-    
-    private void deallocateResources(ResourceManager mgr, int[] toDeallocate) {
-        for (int i = 0; i < toDeallocate.length; i++) {
-            int j = toDeallocate[i];
-            
-            mgr.destroy(descriptors[j]);
-        }
-    }
-    
-    public void testLocalManagerAllocations() throws Exception {
-        // These arrays are indices into the descriptors array. For example, {0,1,7}
-        // is a quick shorthand to indicate we should allocate resources 0, 1, and 7.
-        int[] gResources = {0, 1, 5, 3, 7, 12, 13, 14};
-        int[] lm1Resources = {0, 2, 3, 4, 11, 12, 13, 15};
-        int[] lm2Resources = {0, 1, 6, 7, 8, 12, 14, 16};
-        
-        LocalResourceManager lm1 = new LocalResourceManager(globalResourceManager);
-        LocalResourceManager lm2 = new LocalResourceManager(globalResourceManager);
-        
-        // Allocate a bunch of global resources
-        allocateResources(globalResourceManager, gResources);
-        
-        // Remember how many global resources were allocated
-        int initialCount = TestDescriptor.refCount;
-        
-        // Allocate a bunch of resources in lm1
-        allocateResources(lm1, lm1Resources);
-        
-        // Remember how many global + lm1 resources there are
-        int lm1Count = TestDescriptor.refCount;
-        
-        // Allocate and deallocate a bunch of resources in lm2
-        // Ensure that all the lm2 resources were deallocated (we should be
-        // back down to the count we had after we allocated lm1 resources)
-        allocateResources(lm2, lm2Resources);
-        deallocateResources(lm2, lm2Resources);
-        Assert.assertEquals(lm1Count, TestDescriptor.refCount);
-
-        // Dispose lm2 (shouldn't do anything since we already deallocated all of its resources)
-        // Ensure that this doesn't change any refcounts
-        lm2.dispose();
-        Assert.assertEquals(lm1Count, TestDescriptor.refCount);
-        
-        // Dispose lm1 without first deallocating its resources. This should correctly detect
-        // what needs to be deallocated from lm1 without affecting any global resources.
-        // If everything works, we should be back to the resource count we had after allocating
-        // the global resources.
-        lm1.dispose();
-        Assert.assertEquals(initialCount, TestDescriptor.refCount);
-        
-    }
-    
-    /*
-     * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=135088
-     */
-    public void testResourceManagerFind() throws Exception {
-    	DeviceResourceDescriptor descriptor = descriptors[0];
-    	Object resource = globalResourceManager.find(descriptor);
-    	assertNull("Resource should be null since it is not allocated", resource);
-    	resource = globalResourceManager.create(descriptor);
-    	
-        // Ensure that the resource was allocated correctly
-        validateResource(resource);
-        
-        // Now the resource should be found
-        Object foundResource = globalResourceManager.find(descriptor);
-    	assertNotNull("Found resource should not be null", foundResource);
-    	assertTrue("Found resource should be an image", foundResource instanceof Image);
-    	
-    	// Destroy the resource we created
-    	globalResourceManager.destroy(descriptor);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/anything.gif b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/images/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontLabelProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontLabelProviderTest.java
deleted file mode 100644
index bd21edc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontLabelProviderTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * ColorAndFontProviderTest is a test of a color and font provider but not an
- * IViewerLabelProvider.
- * 
- * @since 3.3
- * 
- */
-public class ColorAndFontLabelProviderTest extends CompositeLabelProviderTest {
-
-	class ColorAndFontProvider extends LabelProvider implements IColorProvider,
-			IFontProvider {
-
-		/**
-		 * Create a new instance of the receiver.
-		 */
-		public ColorAndFontProvider() {
-			super();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-		 */
-		public Font getFont(Object element) {
-			return font;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-		 */
-		public Color getBackground(Object element) {
-			return background;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-		 */
-		public Color getForeground(Object element) {
-			return foreground;
-		}
-
-
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param name
-	 */
-	public ColorAndFontLabelProviderTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-		initializeColors(parent);
-		final TableViewer v = new TableViewer(parent);
-		v.setContentProvider(new LabelTableContentProvider());
-		v.setLabelProvider(new ColorAndFontProvider());
-		;
-		v.getTable().setLinesVisible(true);
-		return v;
-	}
-
-	/**
-	 * Test that all of the colours and fonts from the label provider are
-	 * applied.
-	 */
-	public void testColorsAndFonts() {
-		Table table = (Table) fViewer.getControl();
-		TableItem item = table.getItem(0);
-
-		assertTrue("Background was not set", item.getBackground(0).equals(
-				background));
-		assertTrue("Foreground was not set", item.getForeground(0).equals(
-				foreground));
-		assertTrue("Font was not set", item.getFont(0).equals(font));
-		
-		Font oldFont = font;
-
-		clearColors();
-		fViewer.refresh(item.getData());
-
-		Display display = table.getDisplay();
-		assertTrue("Background was not cleared", item.getBackground(0).equals(
-				display.getSystemColor(SWT.COLOR_LIST_BACKGROUND)));
-		assertTrue("Foreground was not cleared", item.getForeground(0).equals(
-				display.getSystemColor(SWT.COLOR_LIST_FOREGROUND)));
-		assertFalse("Font was not cleared", item.getFont(0).getFontData()[0]
-				.equals(oldFont.getFontData()[0]));
-
-	}
-
-	/**
-	 * Clear the colors and fonts to null.
-	 */
-	private void clearColors() {
-		background = null;
-		foreground = null;
-		font = null;
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontViewerLabelProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontViewerLabelProviderTest.java
deleted file mode 100644
index d88cc08..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/ColorAndFontViewerLabelProviderTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.IViewerLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerLabel;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * ColorAndFontProviderTest is a test of a color and font provider that is an
- * IViewerLabelProvider.
- * 
- * @since 3.3
- * 
- */
-public class ColorAndFontViewerLabelProviderTest extends CompositeLabelProviderTest {
-
-	class ColorAndFontProvider extends LabelProvider implements IColorProvider,
-			IFontProvider, IViewerLabelProvider {
-
-		/**
-		 * Create a new instance of the receiver.
-		 */
-		public ColorAndFontProvider() {
-			super();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-		 */
-		public Font getFont(Object element) {
-			return font;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-		 */
-		public Color getBackground(Object element) {
-			return background;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-		 */
-		public Color getForeground(Object element) {
-			return foreground;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IViewerLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel,
-		 *      java.lang.Object)
-		 */
-		public void updateLabel(ViewerLabel label, Object element) {
-			// Do nothing
-
-		}
-
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param name
-	 */
-	public ColorAndFontViewerLabelProviderTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-		initializeColors(parent);
-		final TableViewer v = new TableViewer(parent);
-		v.setContentProvider(new LabelTableContentProvider());
-		v.setLabelProvider(new ColorAndFontProvider());
-		;
-		v.getTable().setLinesVisible(true);
-		return v;
-	}
-
-	/**
-	 * Test that all of the colours and fonts from the label provider are
-	 * applied.
-	 */
-	public void testColorsAndFonts() {
-		Table table = (Table) fViewer.getControl();
-		TableItem item = table.getItem(0);
-
-		assertTrue("Background was not set", item.getBackground(0).equals(
-				background));
-		assertTrue("Foreground was not set", item.getForeground(0).equals(
-				foreground));
-		assertTrue("Font was not set", item.getFont(0).equals(font));
-
-		Font oldFont = font;
-		
-		clearColors();
-		fViewer.refresh(item.getData());
-
-		Display display = table.getDisplay();
-		assertTrue("Background was not cleared", item.getBackground(0).equals(
-				display.getSystemColor(SWT.COLOR_LIST_BACKGROUND)));
-		assertTrue("Foreground was not cleared", item.getForeground(0).equals(
-				display.getSystemColor(SWT.COLOR_LIST_FOREGROUND)));
-		assertFalse("Font was not cleared", item.getFont(0).getFontData()[0]
-				.equals(oldFont.getFontData()[0]));
-
-	}
-
-	/**
-	 * Clear the colors and fonts to null.
-	 */
-	private void clearColors() {
-		background = null;
-		foreground = null;
-		font = null;
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTableTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTableTest.java
deleted file mode 100644
index 00878c5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTableTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.IViewerLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * CompositeLabelProviderTableTest tests a table that is a {@link IViewerLabelProvider},
- * {@link IColorProvider}, {@link org.eclipse.jface.viewers.IColorProvider},
- * {@link IFontProvider}
- * @since 3.3
- * 
- */
-public class CompositeLabelProviderTableTest extends CompositeLabelProviderTest {
-
-	class MyLabelProvider extends LabelProvider implements IColorProvider,
-			IViewerLabelProvider, IFontProvider {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-		 */
-		public Color getForeground(Object element) {
-			return foreground;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-		 */
-		public Color getBackground(Object element) {
-			return background;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IViewerLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel,
-		 *      java.lang.Object)
-		 */
-		public void updateLabel(ViewerLabel label, Object element) {
-			label.setText(getText(element));
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-		 */
-		public Font getFont(Object element) {
-			return font;
-		}
-	}
-
-	/**
-	 * Create a new instance of the recevier.
-	 * 
-	 * @param name
-	 */
-	public CompositeLabelProviderTableTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-		
-		initializeColors(parent);
-		final TableViewer v = new TableViewer(parent);
-		v.setContentProvider(new LabelTableContentProvider());
-		v.setLabelProvider(new MyLabelProvider());
-		v.getTable().setLinesVisible(true);
-		return v;
-	}
-
-	/**
-	 * Test that all of the colours and fonts from the label provider are
-	 * applied.
-	 */
-	public void testColorsAndFonts() {
-		Table table = (Table) fViewer.getControl();
-		TableItem item = table.getItem(0);
-
-		assertTrue("Background was not set", item.getBackground(0).equals(
-				background));
-		assertTrue("Foreground was not set", item.getForeground(0).equals(
-				foreground));
-		assertTrue("Font was not set", item.getFont(0).equals(font));
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTest.java
deleted file mode 100644
index 5ff0690..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/CompositeLabelProviderTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.ViewerTestCase;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * CompositeLabelProviderTest is the abstract superclass of the LabelProvider
- * tests that use multiple label provider suppliers.
- * 
- * @since 3.3
- * 
- */
-public abstract class CompositeLabelProviderTest extends ViewerTestCase {
-
-	class LabelTableContentProvider implements IStructuredContentProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			return fRootElement.getChildren();
-		}
-
-		/*
-		 * (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) {
-
-		}
-
-	}
-
-	Color background;
-	Color foreground;
-	Font font;
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param name
-	 */
-	public CompositeLabelProviderTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Initialize the colors used by the receiver.
-	 * 
-	 * @param parent
-	 */
-	void initializeColors(Control parent) {
-		background = parent.getDisplay().getSystemColor(SWT.COLOR_RED);
-		foreground = parent.getDisplay().getSystemColor(SWT.COLOR_BLUE);
-		font = JFaceResources.getBannerFont();
-	}
-
-	class TestTreeContentProvider implements ITreeContentProvider {
-
-		public Object[] getChildren(Object parentElement) {
-			return ((TestElement) parentElement).getChildren();
-		}
-
-		public Object getParent(Object element) {
-			return ((TestElement) element).getContainer();
-		}
-
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return fRootElement.getChildren();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTests.java
deleted file mode 100644
index 97c5c38..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTests.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.labelProviders;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class DecoratingLabelProviderTests extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-
-    public static Test suite() {
-        return new DecoratingLabelProviderTests();
-    }
-
-    public DecoratingLabelProviderTests() {
-    	addTestSuite(CompositeLabelProviderTableTest.class);
-    	addTestSuite(DecoratingLabelProviderTreePathTest.class);
-        addTestSuite(DecoratingLabelProviderTreeTest.class);
-        addTestSuite(ColorAndFontLabelProviderTest.class);
-        addTestSuite(ColorAndFontViewerLabelProviderTest.class);
-        addTestSuite(DecoratingStyledCellLabelProviderTest.class);
-        addTestSuite(IDecorationContextTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreePathTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreePathTest.java
deleted file mode 100644
index bdbfbe1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreePathTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.ITreePathLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerLabel;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * DecoratingLabelProviderTreePathTest is the tree path version of the
- * DecoratingLabelProviderTreeTest.
- * 
- * @since 3.3
- * 
- */
-public class DecoratingLabelProviderTreePathTest extends
-		CompositeLabelProviderTest {
-
-	class TreePathTestLabelProvider extends LabelProvider implements
-			IColorProvider, IFontProvider, ITreePathLabelProvider {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-		 */
-		public Color getForeground(Object element) {
-			return foreground;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-		 */
-		public Color getBackground(Object element) {
-			return background;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-		 */
-		public Font getFont(Object element) {
-			return font;
-		}
-
-		public void updateLabel(ViewerLabel label, TreePath elementPath) {
-			label.setText(getText(elementPath.getLastSegment()));
-		}
-	}
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param name
-	 */
-	public DecoratingLabelProviderTreePathTest(String name) {
-		super(name);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.labelProviders.DecoratingLabelProviderTreeTest#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-
-		initializeColors(parent);
-		final TreeViewer v = new TreeViewer(parent);
-		v.setLabelProvider(new TreePathTestLabelProvider());
-		v.setContentProvider(new TestTreeContentProvider());
-
-		v.setLabelProvider(new TreePathTestLabelProvider());
-
-		v.getTree().setLinesVisible(true);
-		return v;
-
-	}
-
-	/**
-	 * Test that all of the colours and fonts from the label provider are
-	 * applied.
-	 */
-	public void testColorsAndFonts() {
-		Tree tree = (Tree) fViewer.getControl();
-		TreeItem item = tree.getItem(0);
-
-		assertTrue("Background was not set", item.getBackground(0).equals(
-				background));
-		assertTrue("Foreground was not set", item.getForeground(0).equals(
-				foreground));
-		assertTrue("Font was not set", item.getFont(0).equals(font));
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreeTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreeTest.java
deleted file mode 100644
index da8669b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingLabelProviderTreeTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * @since 3.3
- * 
- */
-public class DecoratingLabelProviderTreeTest extends CompositeLabelProviderTest {
-
-	class IntListLabelProvider extends LabelProvider implements IColorProvider,
-			IFontProvider {
-
-		public IntListLabelProvider() {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-		 */
-		public Color getBackground(Object element) {
-			return background;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-		 */
-		public Color getForeground(Object element) {
-			return foreground;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-		 */
-		public Font getFont(Object element) {
-			return font;
-		}
-	}
-
-	/**
-	 * @param name
-	 */
-	public DecoratingLabelProviderTreeTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-
-		initializeColors(parent);
-		StructuredViewer viewer = new TreeViewer(parent);
-		viewer.setContentProvider(new TestTreeContentProvider());
-
-		viewer.setLabelProvider(new DecoratingLabelProvider(
-				new IntListLabelProvider(), null));
-		return viewer;
-	}
-	
-	/**
-	 * Test that all of the colours and fonts from the label provider are
-	 * applied.
-	 */
-	public void testColorsAndFonts() {
-		Tree tree = (Tree) fViewer.getControl();
-		TreeItem item = tree.getItem(0);
-
-		assertTrue("Background was not set", item.getBackground(0).equals(
-				background));
-		assertTrue("Foreground was not set", item.getForeground(0).equals(
-				foreground));
-		assertTrue("Font was not set", item.getFont(0).equals(font));
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingStyledCellLabelProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingStyledCellLabelProviderTest.java
deleted file mode 100644
index 3260a58..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/DecoratingStyledCellLabelProviderTest.java
+++ /dev/null
@@ -1,667 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.tests.viewers.ViewerTestCase;
-import org.eclipse.jface.viewers.CellLabelProvider;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
-import org.eclipse.jface.viewers.IColorDecorator;
-import org.eclipse.jface.viewers.IDecorationContext;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.TextLayout;
-import org.eclipse.swt.graphics.TextStyle;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * Most of the setup has been taken from
- * org.eclipse.jface.snippets.viewers.Snippet010OwnerDraw.java
- * 
- * @since 3.4
- * 
- */
-public class DecoratingStyledCellLabelProviderTest extends ViewerTestCase {
-
-	// static ResourceManager resourceManager = PlatformUI.getWorkbench().
-	private class TestCellLabelProvider extends CellLabelProvider implements
-			IStyledLabelProvider, IFontProvider {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.CellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
-		 */
-		public void update(ViewerCell cell) {
-			Object element = cell.getElement();
-			cell.setText((element == null) ? "" : element.toString());
-			cell.setImage(getImage(element));
-			cell.setFont(JFaceResources.getFont(JFaceResources.BANNER_FONT));
-			cell.setForeground(cell.getControl().getDisplay().getSystemColor(
-					SWT.COLOR_BLUE));
-			cell.setBackground(cell.getControl().getDisplay().getSystemColor(
-					SWT.COLOR_RED));
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getImage(java.lang.Object)
-		 */
-		public Image getImage(Object element) {
-			// create a resource manager that holds onto images
-			// OR create image set, dispose in teardown
-
-			return fViewer.getControl().getDisplay().getSystemImage(
-					SWT.ICON_WARNING);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider#getStyledText(java.lang.Object)
-		 */
-		public StyledString getStyledText(Object element) {
-			return new StyledString(element.toString(),
-					StyledString.COUNTER_STYLER);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-		 */
-		public Font getFont(Object element) {
-			return JFaceResources.getFont(JFaceResources.BANNER_FONT);
-		}
-
-	}
-
-	private class TestLabelDecorator implements ILabelDecorator,
-			IColorDecorator {
-
-		public Image decorateImage(Image image, Object element) {
-			return image;
-		}
-
-		public String decorateText(String text, Object element) {
-			return text;
-		}
-
-		public void addListener(ILabelProviderListener listener) {
-		}
-
-		public void dispose() {
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorDecorator#decorateBackground(java.lang.Object)
-		 */
-		public Color decorateBackground(Object element) {
-			return fViewer.getControl().getDisplay().getSystemColor(
-					SWT.COLOR_RED);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IColorDecorator#decorateForeground(java.lang.Object)
-		 */
-		public Color decorateForeground(Object element) {
-			return fViewer.getControl().getDisplay().getSystemColor(
-					SWT.COLOR_BLUE);
-		}
-	}
-
-	private CountryEntry[] entries;
-	protected String changeMe = "OLD";
-	private static int COLUMN_COUNT = 3;
-
-	public DecoratingStyledCellLabelProviderTest(String name) {
-		super(name);
-		entries = new CountryEntry[3];
-		entries[0] = new AustriaEntry();
-		entries[1] = new GermanyEntry();
-		entries[2] = new EnglandEntry();
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		TableViewer viewer = new TableViewer(parent, SWT.FULL_SELECTION);
-
-		viewer.setContentProvider(new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				return entries;
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-			 *      java.lang.Object, java.lang.Object)
-			 */
-			public void inputChanged(org.eclipse.jface.viewers.Viewer viewer,
-					Object oldInput, Object newInput) {
-			}
-
-		});
-		createColumns(viewer);
-		viewer.setLabelProvider(createLabelProvider());
-
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-
-		viewer.getControl().setLayoutData(data);
-		viewer.setSelection(new StructuredSelection(entries[1]));
-
-		return viewer;
-	}
-
-	/**
-	 * @return {@link DecoratingStyledCellLabelProvider}
-	 */
-	private DecoratingStyledCellLabelProvider createLabelProvider() {
-		return new DecoratingStyledCellLabelProvider(
-				new TestCellLabelProvider(), getDecorator(), getContext());
-	}
-
-	/**
-	 * @return
-	 */
-	private IDecorationContext getContext() {
-		return new IDecorationContext() {
-
-			public String[] getProperties() {
-				return null;
-			}
-
-			public Object getProperty(String property) {
-				return null;
-			}
-		};
-	}
-
-	/**
-	 * @return
-	 */
-	private ILabelDecorator getDecorator() {
-		return new TestLabelDecorator();
-	}
-
-	private ILabelProviderListener getListener() {
-		return new ILabelProviderListener() {
-
-			public void labelProviderChanged(LabelProviderChangedEvent event) {
-				changeMe = "been changed";
-			}
-		};
-	}
-
-	/**
-	 * Create the columns to be used in the tree.
-	 */
-	private void createColumns(TableViewer viewer) {
-		TableLayout layout = new TableLayout();
-		Table table = viewer.getTable();
-		table.setLayout(layout);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-
-		for (int i = 0; i < COLUMN_COUNT; i++) {
-			TableColumn tc = new TableColumn(table, SWT.NONE, i);
-			layout.addColumnData(new ColumnPixelData(100));
-			tc.setText(getTitleFor(i));
-		}
-	}
-
-	protected void setInput() {
-		fViewer.setInput(this);
-	}
-
-	// the tests
-	public void testGetDecorationContext() {
-		assertNotNull(getDecoratingStyledLabelProvider().getDecorationContext());
-	}
-
-	public void testSetDecorationContext() {
-		try {
-			getDecoratingStyledLabelProvider().setDecorationContext(null);
-			fail("DecoratingStyledCellLabelProvider.setDecorationContext did not throw an exception when passed null");
-		} catch (AssertionFailedException e) {
-			// A Good Thing.
-		}
-	}
-
-	public void testUpdate() {
-		Table table = ((TableViewer) fViewer).getTable();
-		String before = table.getItem(0).toString();
-		entries[0].name = "Updated";
-		fViewer.refresh();
-		assertNotSame(before, table.getItem(0).toString());
-	}
-
-	public void testGetForeground() {
-		// TODO: Incomplete test
-		// fViewer.getControl().getShell().setFocus();
-		//
-		// long stopTime = System.currentTimeMillis() + 1000;
-		// while (stopTime < System.currentTimeMillis()) {
-		// Display.getCurrent().readAndDispatch();
-		// }
-		//
-		// Table table = ((TableViewer) fViewer).getTable();
-		//
-		// TableItem ti = table.getItem(0);
-		//
-		// Color widget = ti.getForeground();
-		// assertEquals(widget,
-		// getDecoratingStyledLabelProvider().getForeground(
-		// ti));
-	}
-
-	public void testGetBackground() {
-		// TODO: Incomplete test
-
-		// Table table = ((TableViewer) fViewer).getTable();
-		// TableItem ti = table.getItem(0);
-		// Color d = ((DecoratingStyledCellLabelProvider) ((TableViewer)
-		// fViewer)
-		// .getLabelProvider(0)).getBackground(ti);
-		// assertEquals(d,
-		// getDecoratingStyledLabelProvider().getBackground(ti));
-	}
-
-	public void testGetFont() {
-		// TODO: Incomplete test
-
-		// Table table = ((TableViewer) fViewer).getTable();
-		// TableItem ti = table.getItem(0);
-
-		// assertEquals(f, getDecoratingStyledLabelProvider().getFont(ti));
-	}
-
-	public void testGetImage() {
-		Table table = ((TableViewer) fViewer).getTable();
-
-		assertEquals(table.getItem(0).getImage(),
-				getDecoratingStyledLabelProvider().getImage(table.getItem(0)));
-
-	}
-
-	public void testGetLabelDecorator() {
-		assertNotNull(getDecoratingStyledLabelProvider().getLabelDecorator());
-
-		getDecoratingStyledLabelProvider().setLabelDecorator(null);
-		assertNull(getDecoratingStyledLabelProvider().getLabelDecorator());
-	}
-
-	public void testSetLabelDecorator() {
-		ILabelDecorator labelDecorator = getDecorator();
-		getDecoratingStyledLabelProvider().setLabelDecorator(labelDecorator);
-		assertEquals(labelDecorator, getDecoratingStyledLabelProvider()
-				.getLabelDecorator());
-
-	}
-
-	public void testAddListener() {
-		String old = changeMe; // String will change because the listener will
-		// be listening for it
-		ILabelProviderListener listener = getListener();
-		getDecoratingStyledLabelProvider().addListener(listener);
-		getDecoratingStyledLabelProvider().setLabelDecorator(getDecorator());
-		assertNotSame(old, changeMe);
-	}
-
-	public void testRemoveListener() {
-		String old = changeMe = "OLD";
-		ILabelProviderListener listener = getListener();
-		getDecoratingStyledLabelProvider().addListener(listener);
-		getDecoratingStyledLabelProvider().removeListener(listener);
-		getDecoratingStyledLabelProvider().setLabelDecorator(getDecorator());
-		assertEquals(old, changeMe);
-	}
-
-	public void testIsLabelProperty() {
-		boolean check = getDecoratingStyledLabelProvider().isLabelProperty(
-				"element", "property");
-		assertTrue(check);
-	}
-
-	public void testDispose() {
-		fShell.dispose();
-		assertFalse(fViewer.getLabelProvider() instanceof DecoratingStyledCellLabelProvider);
-		// the viewer will return a new LabelProvider if the current is null
-	}
-
-	/**
-	 * @return Returns the {@link DecoratingStyledCellLabelProvider} used for
-	 *         this test
-	 */
-	private DecoratingStyledCellLabelProvider getDecoratingStyledLabelProvider() {
-		return ((DecoratingStyledCellLabelProvider) fViewer.getLabelProvider());
-	}
-
-	class CountryEntry {
-
-		String name;
-
-		String cupYear;
-
-		private String baseName;
-
-		/**
-		 * Create a new instance of the receiver.
-		 * 
-		 * @param countryName
-		 * @param worldCupYear
-		 */
-		CountryEntry(String countryName, String englishName, String worldCupYear) {
-			name = countryName;
-			cupYear = worldCupYear;
-			baseName = englishName;
-		}
-
-		public String toString() {
-			return name + " " + cupYear + " " + baseName;
-		}
-
-		/**
-		 * @param index
-		 * @return
-		 */
-		public int getHeight(Event event) {
-			switch (event.index) {
-			case 0:
-				return event.gc.textExtent(name).y;
-			case 1:
-				return 50;
-			case 2:
-				return event.gc.textExtent(cupYear).y;
-			default:
-				return 10;
-			}
-		}
-
-		/**
-		 * @param index
-		 * @return
-		 */
-		public int getWidth(Event event) {
-
-			switch (event.index) {
-			case 0:
-				return event.gc.textExtent(getDisplayString().toString()).x + 4;
-
-			case 1:
-				return 200;
-
-			case 2:
-				return event.gc.textExtent(cupYear).x + 5;
-
-			default:
-				return 10;
-			}
-		}
-
-		/**
-		 * Draw the flag in bounds.
-		 * 
-		 * @param event
-		 */
-		protected void drawFlag(Event event) {
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_BLUE));
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			event.gc.fillRectangle(bounds);
-		}
-
-		/**
-		 * Draw the cup year
-		 * 
-		 * @param event
-		 */
-		private void drawCupYear(Event event) {
-			event.gc.drawText(cupYear, event.x, event.y);
-
-		}
-
-		/**
-		 * Draw the name of the receiver.
-		 * 
-		 * @param event
-		 */
-		protected void drawName(Event event) {
-
-			StringBuffer buffer = getDisplayString();
-
-			Display display = fViewer.getControl().getDisplay();
-			TextLayout layout = new TextLayout(display);
-			layout.setText(buffer.toString());
-
-			TextStyle plain = new TextStyle(JFaceResources
-					.getFont(JFaceResources.DEFAULT_FONT), display
-					.getSystemColor(SWT.COLOR_LIST_FOREGROUND), display
-					.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-
-			TextStyle italic = new TextStyle(JFaceResources.getFontRegistry()
-					.getItalic(JFaceResources.DEFAULT_FONT), display
-					.getSystemColor(SWT.COLOR_BLUE), display
-					.getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-
-			layout.setStyle(plain, 0, name.length() - 1);
-			layout.setStyle(italic, name.length(), buffer.length() - 1);
-
-			layout.draw(event.gc, event.x, event.y);
-			
-			layout.dispose();
-
-		}
-
-		/**
-		 * @return
-		 */
-		private StringBuffer getDisplayString() {
-			StringBuffer buffer = new StringBuffer();
-			buffer.append(name);
-			buffer.append(" (");
-			buffer.append(baseName);
-			buffer.append(")");
-			return buffer;
-		}
-
-		/**
-		 * @param event
-		 */
-		public void draw(Event event) {
-
-			switch (event.index) {
-			case 0:
-				drawName(event);
-				break;
-			case 1:
-				drawFlag(event);
-				break;
-			case 2:
-				drawCupYear(event);
-				break;
-
-			default:
-				break;
-			}
-
-		}
-	}
-
-	private class GermanyEntry extends CountryEntry {
-
-		GermanyEntry() {
-			super("Deutschland", "Germany", "1990");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			int stripeHeight = bounds.height / 3;
-			Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
-					stripeHeight);
-
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_BLACK));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_YELLOW));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-		}
-
-	}
-
-	private class AustriaEntry extends CountryEntry {
-
-		AustriaEntry() {
-			super("\u00D6sterreich", "Austria", "TBD");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-			int stripeHeight = bounds.height / 3;
-			Rectangle stripe = new Rectangle(bounds.x, bounds.y, bounds.width,
-					stripeHeight);
-
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_WHITE));
-			event.gc.fillRectangle(stripe);
-
-			stripe.y += stripeHeight;
-
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(stripe);
-
-		}
-	}
-
-	private class EnglandEntry extends CountryEntry {
-		EnglandEntry() {
-			super("Blighty", "England", "1966");
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.tests.viewers.OwnerDrawExample.CountryEntry#drawFlag(org.eclipse.swt.widgets.Event)
-		 */
-		protected void drawFlag(Event event) {
-
-			Rectangle bounds = event.getBounds();
-			bounds.width += 100;
-
-			event.gc.setBackground(fViewer.getControl().getDisplay()
-					.getSystemColor(SWT.COLOR_RED));
-			event.gc.fillRectangle(new Rectangle(bounds.width / 2 + bounds.x
-					- 5, bounds.y, 10, bounds.height));
-			event.gc.fillRectangle(new Rectangle(bounds.x, bounds.height / 2
-					+ bounds.y - 5, bounds.width, 10));
-
-		}
-	}
-
-	/**
-	 * @param i
-	 * @return
-	 */
-	private String getTitleFor(int i) {
-		switch (i) {
-		case 0:
-			return "Name";
-		case 1:
-			return "Flag";
-		case 2:
-			return "World Cup Year";
-		}
-		return "Unknown";
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/IDecorationContextTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/IDecorationContextTest.java
deleted file mode 100644
index 761a223..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/IDecorationContextTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.AssertionFailedException;
-import org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider;
-import org.eclipse.jface.viewers.DecorationContext;
-import org.eclipse.jface.viewers.IDecorationContext;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.IStyledLabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Most of the setup has been taken from
- * org.eclipse.jface.snippets.viewers.Snippet010OwnerDraw.java
- * 
- * @since 3.4
- * 
- */
-public class IDecorationContextTest extends TestCase {
-
-	private IDecorationContext getDecorationContext() {
-		return new IDecorationContext() {
-
-			public String[] getProperties() {
-				return null;
-			}
-
-			public Object getProperty(String property) {
-				return null;
-			}
-		};
-	}
-
-	private IStyledLabelProvider getStyledLabelProvider() {
-		return new IStyledLabelProvider() {
-
-			public Image getImage(Object element) {
-				return null;
-			}
-
-			public StyledString getStyledText(Object element) {
-				return null;
-			}
-
-			public void addListener(ILabelProviderListener listener) {
-
-			}
-
-			public void dispose() {
-
-			}
-
-			public boolean isLabelProperty(Object element, String property) {
-				return false;
-			}
-
-			public void removeListener(ILabelProviderListener listener) {
-
-			}
-		};
-	}
-
-	private ILabelDecorator getLabelDecorator() {
-		return new ILabelDecorator() {
-
-			public Image decorateImage(Image image, Object element) {
-				return null;
-			}
-
-			public String decorateText(String text, Object element) {
-				return null;
-			}
-
-			public void addListener(ILabelProviderListener listener) {
-
-			}
-
-			public void dispose() {
-
-			}
-
-			public boolean isLabelProperty(Object element, String property) {
-				return false;
-			}
-
-			public void removeListener(ILabelProviderListener listener) {
-
-			}
-		};
-	}
-
-	private DecoratingStyledCellLabelProvider getDecoratingStyledCellLabelProvider(
-			boolean nullDecorationContext) {
-		return nullDecorationContext ? new DecoratingStyledCellLabelProvider(
-				getStyledLabelProvider(), getLabelDecorator(), null)
-				: new DecoratingStyledCellLabelProvider(
-						getStyledLabelProvider(), getLabelDecorator(),
-						getDecorationContext());
-	}
-
-	public IDecorationContextTest(String name) {
-		super(name);
-	}
-
-	public void testDefaultContextIsUsed() {
-		// Create a DecoratingStyledCellLabelProvider with a null
-		// decorationContext
-		assertEquals(getDecoratingStyledCellLabelProvider(true)
-				.getDecorationContext(), DecorationContext.DEFAULT_CONTEXT);
-
-	}
-
-	public void testSetDecorationContextNull() {
-		DecoratingStyledCellLabelProvider label = getDecoratingStyledCellLabelProvider(false);
-		try {
-			label.setDecorationContext(null);
-			fail("DecoratingStyledCellLabelProvider.setDecorationContext did not throw an exception when passed null");
-		} catch (AssertionFailedException e) {
-			// A Good Thing.
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/TestColorAndFontLabelProvider.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/TestColorAndFontLabelProvider.java
deleted file mode 100644
index e2434dc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/labelProviders/TestColorAndFontLabelProvider.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.labelProviders;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * TestColorAndFontLabelProvider is a simple label provider that uses fonts and
- * colors.
- * @since 3.3
- *
- */
-public class TestColorAndFontLabelProvider extends LabelProvider implements
-		IColorProvider, ILabelProvider {
-	private final Display fDisplay;
-
-	public TestColorAndFontLabelProvider(Display display) {
-		fDisplay= display;
-	}
-
-	public Color getBackground(Object element) {
-		return fDisplay.getSystemColor(SWT.COLOR_RED);
-	}
-
-	public Color getForeground(Object element) {
-		return fDisplay.getSystemColor(SWT.COLOR_BLUE);
-	}
-	
-	public Font getFont(Object element) {
-		return JFaceResources.getFontRegistry().getItalic(JFaceResources.BANNER_FONT);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AbstractColumnLayoutTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AbstractColumnLayoutTest.java
deleted file mode 100644
index f2a0208..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AbstractColumnLayoutTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Micah Hainline and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Micah Hainline <micah_hainline@yahoo.com> - initial API and implementation (bug 208335)
- *     Tom Schindl <tom.schindl@bestsolution.at> - fixed GTK problem
- ******************************************************************************/
-
-package org.eclipse.jface.tests.layout;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.viewers.ColumnPixelData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * @since 3.4
- *
- */
-public final class AbstractColumnLayoutTest extends TestCase {
-	Display display;
-	Shell shell;
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		shell = new Shell(display, SWT.SHELL_TRIM);
-		shell.setSize(500, 500);
-		shell.setLayout(new FillLayout());
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 *
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		shell.dispose();
-	}
-
-	/**
-	 * Ensures that the minimum size is not taken into account in a shell unless
-	 * the weighted size falls below the minimum.
-	 */
-	public void testIgnoreMinimumSize() {
-		Composite composite = new Composite(shell, SWT.NONE);
-		TableColumnLayout layout = new TableColumnLayout();
-		composite.setLayout(layout);
-
-		Table table = new Table(composite, SWT.BORDER | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		TableColumn col1 = new TableColumn(table, SWT.LEFT);
-		TableColumn col2 = new TableColumn(table, SWT.LEFT);
-		TableColumn col3 = new TableColumn(table, SWT.LEFT);
-		TableColumn col4 = new TableColumn(table, SWT.LEFT);
-
-		layout.setColumnData(col1, new ColumnWeightData(2, 100));
-		layout.setColumnData(col2, new ColumnWeightData(2));
-		layout.setColumnData(col3, new ColumnWeightData(1, 30));
-		// Needed because last column on GTK always maximized
-		layout.setColumnData(col4, new ColumnPixelData(1));
-		
-
-		composite.layout(true, true);
-		shell.open();
-
-		assertTrue(col1.getWidth() > 100);
-		assertTrue(col1.getWidth() == col2.getWidth());
-		assertTrue(Math.abs(col1.getWidth() - 2 * col3.getWidth()) <= 1);
-	}
-
-	/**
-	 * Ensures that width values based on weight are recalculated when a column falls below minimums.
-	 */
-	public void testRecalculatePreferredSize() {
-		Composite composite = new Composite(shell, SWT.NONE);
-		TableColumnLayout layout = new TableColumnLayout();
-		composite.setLayout(layout);
-
-		Table table = new Table(composite, SWT.BORDER | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		TableColumn col1 = new TableColumn(table, SWT.LEFT);
-		TableColumn col2 = new TableColumn(table, SWT.LEFT);
-		TableColumn col3 = new TableColumn(table, SWT.LEFT);
-		TableColumn col4 = new TableColumn(table, SWT.LEFT);
-
-		layout.setColumnData(col1, new ColumnWeightData(4,40));
-		layout.setColumnData(col2, new ColumnWeightData(1,200));
-		layout.setColumnData(col3, new ColumnWeightData(2,30));
-		// Needed because last column on GTK always maximized
-		layout.setColumnData(col4, new ColumnPixelData(1));
-		
-
-		composite.layout(true, true);
-		shell.open();
-
-		assertTrue(col1.getWidth() >= 40);
-		assertTrue(col2.getWidth() >= 200);
-		assertTrue(col3.getWidth() >= 30);
-		assertTrue(Math.abs(col1.getWidth() - 2 * col3.getWidth()) <= 1);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AllTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AllTests.java
deleted file mode 100644
index 67c0292..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/AllTests.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.layout;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(suite());
-	}
-
-	public static Test suite() {
-		return new AllTests();
-	}
-
-	public AllTests() {
-		addTestSuite(GeometryTest.class);
-		addTestSuite(AbstractColumnLayoutTest.class);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/GeometryTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/GeometryTest.java
deleted file mode 100644
index 919b158..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/layout/GeometryTest.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.jface.tests.layout;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.graphics.Rectangle;
-
-/**
- * @since 3.3
- * 
- */
-public class GeometryTest extends TestCase {
-
-	public void testNewGeometryMethods() {
-		// Test the new Geometry methods
-		Rectangle margins = Geometry.createDiffRectangle(0, 10, 40, 80);
-
-		Rectangle testRectangle = new Rectangle(100, 100, 100, 100);
-		Rectangle expandedRectangle = Geometry.add(testRectangle, margins);
-		Rectangle expectedResult = new Rectangle(100, 60, 110, 220);
-
-		assertEquals(expectedResult, expandedRectangle);
-
-		Rectangle difference = Geometry.subtract(expandedRectangle,
-				testRectangle);
-
-		assertEquals(margins, difference);
-
-		Geometry.expand(testRectangle, margins);
-		assertEquals(expectedResult, testRectangle);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/AllTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/AllTests.java
deleted file mode 100644
index 7e59139..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/AllTests.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.preferences;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(suite());
-	}
-
-	public static Test suite() {
-		return new AllTests();
-	}
-
-	public AllTests() {
-		addTestSuite(BooleanFieldEditorTest.class);
-		addTestSuite(StringFieldEditorTest.class);
-		addTestSuite(IntegerFieldEditorTest.class);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/BooleanFieldEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/BooleanFieldEditorTest.java
deleted file mode 100644
index 2c0fe43..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/BooleanFieldEditorTest.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Bisson - <mrbisson@ca.ibm.com> Initial test implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.preferences;
-
-import java.lang.reflect.Field;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-public class BooleanFieldEditorTest extends TestCase {
-
-	private Shell shell;
-	private BooleanFieldEditor bfEditorWithSameLabel;
-	private BooleanFieldEditor bfEditorWithSeparateLabel;
-	
-	private boolean otherThreadEventOccurred = false;
-	private final Object lock = new Object();
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		shell = new Shell();
-		
-		bfEditorWithSameLabel = new BooleanFieldEditor("name", "label", shell);
-		bfEditorWithSeparateLabel = new BooleanFieldEditor("name2", "label", BooleanFieldEditor.SEPARATE_LABEL, shell);
-	}
-	
-	public void testSetLabelText() {
-		bfEditorWithSameLabel.setLabelText("label text");
-		assertEquals("label text", bfEditorWithSameLabel.getLabelText());
-		
-		bfEditorWithSeparateLabel.setLabelText("label text");
-		assertEquals("label text", bfEditorWithSameLabel.getLabelText());
-	}
-	
-	public void testLoad() {	
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		bfEditorWithSameLabel.setPreferenceName("name");
-		bfEditorWithSameLabel.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setDefault("name", true);	//Make sure this doesn't interfere
-		myPreferenceStore.setValue("name", false);
-		bfEditorWithSameLabel.load();
-		assertFalse(bfEditorWithSameLabel.getBooleanValue());
-		
-		myPreferenceStore.setDefault("name", false); //Make sure this doesn't interfere
-		myPreferenceStore.setValue("name", true);
-		bfEditorWithSameLabel.load();
-		assertTrue(bfEditorWithSameLabel.getBooleanValue());
-	}
-	
-	public void testLoadDefault() {	
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		bfEditorWithSameLabel.setPreferenceName("name");
-		bfEditorWithSameLabel.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setDefault("name", false);
-		myPreferenceStore.setValue("name", true);	//Make sure this doesn't interfere
-		bfEditorWithSameLabel.loadDefault();
-		assertFalse(bfEditorWithSameLabel.getBooleanValue());
-		
-		myPreferenceStore.setDefault("name", true);
-		myPreferenceStore.setValue("name", false);	//Make sure this doesn't interfere
-		bfEditorWithSameLabel.loadDefault();
-		assertTrue(bfEditorWithSameLabel.getBooleanValue());
-	}
-	
-	public void testGetBooleanValue() {
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		bfEditorWithSameLabel.setPreferenceName("name");
-		bfEditorWithSameLabel.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", true);
-		bfEditorWithSameLabel.load();
-		assertTrue(bfEditorWithSameLabel.getBooleanValue());
-		
-		Button button = getButton(bfEditorWithSameLabel);
-		button.setSelection(false);
-		assertFalse(bfEditorWithSameLabel.getBooleanValue());
-		
-		button.setSelection(true);
-		assertTrue(bfEditorWithSameLabel.getBooleanValue());
-	}
-	
-	public void testStore() {
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		bfEditorWithSameLabel.setPreferenceName("name");
-		bfEditorWithSameLabel.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", true);
-		bfEditorWithSameLabel.load();
-		assertTrue(bfEditorWithSameLabel.getBooleanValue());
-		
-		Button button = getButton(bfEditorWithSameLabel);
-		button.setSelection(false);
-		assertTrue(myPreferenceStore.getBoolean("name"));
-		bfEditorWithSameLabel.store();
-		assertFalse(myPreferenceStore.getBoolean("name"));
-		
-		button.setSelection(true);
-		assertTrue(bfEditorWithSameLabel.getBooleanValue());
-		assertFalse(myPreferenceStore.getBoolean("name"));
-		bfEditorWithSameLabel.store();
-		assertTrue(myPreferenceStore.getBoolean("name"));
-	}
-	
-	public void testValueChanged() {
-		bfEditorWithSameLabel.setPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				otherThreadEventOccurred();
-			}
-		});
-		
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		bfEditorWithSameLabel.setPreferenceName("name");
-		bfEditorWithSameLabel.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", false);
-		bfEditorWithSameLabel.load();
-		assertFalse(bfEditorWithSameLabel.getBooleanValue());
-		
-		Button button = getButton(bfEditorWithSameLabel);
-		button.setSelection(true);
-		
-		assertFalse(otherThreadEventOccurred);
-		button.notifyListeners(SWT.Selection, null);
-		assertTrue(bfEditorWithSameLabel.getBooleanValue());
-		
-		waitForEventInOtherThread();
-		
-		assertTrue(otherThreadEventOccurred);
-	}
-
-	
-	public void testSetFocus() {
-		bfEditorWithSameLabel = new BooleanFieldEditor("name", "label", shell){
-			protected Button getChangeControl(Composite parent) {
-				return new Button(parent,SWT.CHECK){
-					protected void checkSubclass() {}
-					public boolean setFocus() {
-						otherThreadEventOccurred();
-						return super.setFocus();
-					}
-				};
-			}
-		};
-		assertFalse(otherThreadEventOccurred);
-		bfEditorWithSameLabel.setFocus();
-		waitForEventInOtherThread();
-		assertTrue(otherThreadEventOccurred);
-	}
-	
-	public void testSetEnabled() {
-		Button buttonWithSameLabel = getButton(bfEditorWithSameLabel);
-		
-		bfEditorWithSameLabel.setEnabled(true, shell);
-		assertTrue(buttonWithSameLabel.isEnabled());
-		
-		bfEditorWithSameLabel.setEnabled(false, shell);
-		assertFalse(buttonWithSameLabel.isEnabled());
-		
-		bfEditorWithSameLabel.setEnabled(true, shell);
-		assertTrue(buttonWithSameLabel.isEnabled());
-		
-		Button buttonWithSeparateLabel = getButton(bfEditorWithSeparateLabel);
-		Label separateLabel = bfEditorWithSeparateLabel.getLabelControl(shell);
-		
-		bfEditorWithSeparateLabel.setEnabled(true, shell);
-		assertTrue(buttonWithSeparateLabel.isEnabled());
-		assertTrue(separateLabel.isEnabled());
-		
-		bfEditorWithSeparateLabel.setEnabled(false, shell);
-		assertFalse(buttonWithSeparateLabel.isEnabled());
-		assertFalse(separateLabel.isEnabled());
-		
-		bfEditorWithSeparateLabel.setEnabled(true, shell);
-		assertTrue(buttonWithSeparateLabel.isEnabled());
-		assertTrue(separateLabel.isEnabled());
-	}
-	
-	public void testAdjustForNumColumns() {
-		final BooleanFieldEditor[] editors = new BooleanFieldEditor[2];
-		
-		PreferencePage page = new FieldEditorPreferencePage(FieldEditorPreferencePage.GRID) {
-			protected void createFieldEditors() {
-				Composite parent = getFieldEditorParent();
-				BooleanFieldEditor bfEditorWithSameLabel = new BooleanFieldEditor("name", "label", parent);
-				BooleanFieldEditor bfEditorWithSeparateLabel = new BooleanFieldEditor("name2", "label", BooleanFieldEditor.SEPARATE_LABEL, parent);
-
-				editors[0] = bfEditorWithSameLabel;
-				editors[1] = bfEditorWithSeparateLabel;
-				
-				addField(bfEditorWithSameLabel);
-				addField(bfEditorWithSeparateLabel);
-			}			
-		};
-		
-		page.createControl(shell);
-		
-		BooleanFieldEditor bfEditorWithSameLabel = editors[0];
-		BooleanFieldEditor bfEditorWithSeparateLabel = editors[1];
-		
-		Button buttonWithSameLabel = getButton(bfEditorWithSameLabel);
-		Button buttonWithSeparateLabel = getButton(bfEditorWithSeparateLabel);
-		
-		int withLabelSpan = ((GridData)buttonWithSameLabel.getLayoutData()).horizontalSpan;
-		int separateLabelSpan = ((GridData)buttonWithSeparateLabel.getLayoutData()).horizontalSpan;
-		
-		assertEquals(withLabelSpan - 1, separateLabelSpan);
-	}
-	
-	/**
-	 * Reads the button control from the BooleanFieldEditor
-	 */
-	private Button getButton(BooleanFieldEditor booleanFieldEditor) {
-		try {
-			Field f = BooleanFieldEditor.class.getDeclaredField("checkBox");
-			f.setAccessible(true);
-			return (Button) f.get(booleanFieldEditor);
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-	
-	/**
-	 * Invoke to signal a single expected event from another thread.
-	 */
-	private void otherThreadEventOccurred() {
-		synchronized (lock) {
-			otherThreadEventOccurred = true;
-			lock.notify();	
-		}
-	}
-	
-	/**
-	 * Invoke to wait for a single expected event from another thread.
-	 * Times out after one second.
-	 */
-	private void waitForEventInOtherThread() {
-		synchronized (lock) {
-			if(!otherThreadEventOccurred) {
-				try {
-					lock.wait(1000);
-				} catch (InterruptedException e) {
-					throw new RuntimeException(e);
-				}
-			}
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/IntegerFieldEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/IntegerFieldEditorTest.java
deleted file mode 100644
index c839dbf9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/IntegerFieldEditorTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Bisson - <mrbisson@ca.ibm.com> Initial test implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.preferences;
-
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.preference.IntegerFieldEditor;
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class IntegerFieldEditorTest extends TestCase {
-
-	private Shell shell;
-	private IntegerFieldEditor integerFieldEditor;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		shell = new Shell();
-		
-		integerFieldEditor = new IntegerFieldEditor("name", "label", shell);
-		integerFieldEditor.setValidRange(0, 500);
-		integerFieldEditor.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
-	}
-	
-	public void testLoad() {	
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		integerFieldEditor.setPreferenceName("name");
-		integerFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setDefault("name", 5);
-		integerFieldEditor.load();
-		assertEquals(integerFieldEditor.getIntValue(), 5);
-		
-		myPreferenceStore.setDefault("name", 5); 
-		myPreferenceStore.setValue("name", 6);
-		integerFieldEditor.load();
-		assertEquals(integerFieldEditor.getIntValue(), 6);
-	}
-	
-	public void testLoadDefault() {	
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		integerFieldEditor.setPreferenceName("name");
-		integerFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setDefault("name", 5);
-		myPreferenceStore.setValue("name", 6);	
-		integerFieldEditor.loadDefault();
-		assertEquals(integerFieldEditor.getIntValue(), 5);
-	}
-	
-	public void testSetValueInWidget() {
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		integerFieldEditor.setPreferenceName("name");
-		integerFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", 5);
-		integerFieldEditor.load();
-		assertEquals(integerFieldEditor.getIntValue(), 5);
-		
-		Text text = integerFieldEditor.getTextControl(shell);
-		text.setText("6");
-		assertEquals(integerFieldEditor.getIntValue(), 6);
-	}
-	
-	public void testSetValueInEditor() {
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		integerFieldEditor.setPreferenceName("name");
-		integerFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", 5);
-		integerFieldEditor.load();
-		assertEquals(integerFieldEditor.getIntValue(), 5);
-		
-		integerFieldEditor.setStringValue("6");
-		Text text = integerFieldEditor.getTextControl(shell);
-		assertEquals(text.getText(), "6");
-		assertEquals(integerFieldEditor.getIntValue(), 6);
-	}
-	
-	public void testValidate() {
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		integerFieldEditor.setPreferenceName("name");
-		integerFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", 5000);
-		integerFieldEditor.load();
-		assertFalse(integerFieldEditor.isValid());
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/SamplePreferencePage.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/SamplePreferencePage.java
deleted file mode 100644
index 9b0e14c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/SamplePreferencePage.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.preferences;
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-
-public class SamplePreferencePage extends PreferencePage {
-	
-	private String text;
-	
-	public SamplePreferencePage(String title, String text) {
-		super(title);
-		this.text = text;
-	}
-
-	protected Control createContents(Composite parent) {
-        Label label = new Label(parent, SWT.LEFT);
-        label.setText(text);
-        GridData data = new GridData();
-        data.horizontalAlignment = GridData.FILL;
-        label.setLayoutData(data);
-        
-        return new Composite(parent, SWT.NULL);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/StringFieldEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/StringFieldEditorTest.java
deleted file mode 100644
index 9390c05..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/preferences/StringFieldEditorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Matthew Bisson - <mrbisson@ca.ibm.com> Initial test implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.preferences;
-
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-
-public class StringFieldEditorTest extends TestCase {
-
-	private Shell shell;
-	private StringFieldEditor stringFieldEditor;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		shell = new Shell();
-		
-		stringFieldEditor = new StringFieldEditor("name", "label", shell);
-	}
-	
-	public void testSetLabelText() {
-		stringFieldEditor.setLabelText("label text");
-		assertEquals("label text", stringFieldEditor.getLabelText());
-		
-		stringFieldEditor.setLabelText("label text");
-		assertEquals("label text", stringFieldEditor.getLabelText());
-	}
-	
-	public void testLoad() {	
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		stringFieldEditor.setPreferenceName("name");
-		stringFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setDefault("name", "foo");
-		stringFieldEditor.load();
-		assertEquals(stringFieldEditor.getStringValue(), "foo");
-		
-		myPreferenceStore.setDefault("name", "foo"); 
-		myPreferenceStore.setValue("name", "bar");
-		stringFieldEditor.load();
-		assertEquals(stringFieldEditor.getStringValue(), "bar");
-	}
-	
-	public void testLoadDefault() {	
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		stringFieldEditor.setPreferenceName("name");
-		stringFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setDefault("name", "foo");
-		myPreferenceStore.setValue("name", "bar");	
-		stringFieldEditor.loadDefault();
-		assertEquals(stringFieldEditor.getStringValue(), "foo");
-	}
-	
-	public void testSetValueInWidget() {
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		stringFieldEditor.setPreferenceName("name");
-		stringFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", "foo");
-		stringFieldEditor.load();
-		assertEquals(stringFieldEditor.getStringValue(), "foo");
-		
-		Text text = stringFieldEditor.getTextControl(shell);
-		text.setText("bar");
-		assertEquals(stringFieldEditor.getStringValue(), "bar");
-	}
-	
-	public void testSetValueInEditor() {
-		PreferenceStore myPreferenceStore = new PreferenceStore();
-		stringFieldEditor.setPreferenceName("name");
-		stringFieldEditor.setPreferenceStore(myPreferenceStore);	
-
-		myPreferenceStore.setValue("name", "foo");
-		stringFieldEditor.load();
-		assertEquals(stringFieldEditor.getStringValue(), "foo");
-		
-		stringFieldEditor.setStringValue("bar");
-		Text text = stringFieldEditor.getTextControl(shell);
-		assertEquals(text.getText(), "bar");
-		assertEquals(stringFieldEditor.getStringValue(), "bar");
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AbstractTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AbstractTreeViewerTest.java
deleted file mode 100644
index 83c99bf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AbstractTreeViewerTest.java
+++ /dev/null
@@ -1,280 +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.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Widget;
-
-public abstract class AbstractTreeViewerTest extends StructuredItemViewerTest {
-
-    AbstractTreeViewer fTreeViewer;
-
-    public AbstractTreeViewerTest(String name) {
-        super(name);
-    }
-
-    protected void assertEqualsArray(String s, Object[] a1, Object[] a2) {
-        int s1 = a1.length;
-        int s2 = a2.length;
-        assertEquals(s, s1, s2);
-        for (int i = 0; i < s1; i++) {
-            assertEquals(s, a1[i], a2[i]);
-        }
-    }
-
-	protected void assertSelectionEquals(String message, TestElement expected) {
-	    ISelection selection = fViewer.getSelection();
-	    assertTrue(selection instanceof IStructuredSelection);
-	    List expectedList = new ArrayList();
-	    expectedList.add(expected);
-	    IStructuredSelection structuredSelection = (IStructuredSelection)selection;
-	    assertEquals("selectionEquals - " + message, expectedList, (structuredSelection).toList());
-	}
-
-    protected abstract int getItemCount(TestElement element); //was IElement
-
-    public void testBulkExpand() {
-        // navigate
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        TestElement last = fRootElement.getLastChild();
-
-        // expand a few nodes
-        fTreeViewer.expandToLevel(first, 2);
-        fTreeViewer.expandToLevel(first2, 2);
-        fTreeViewer.expandToLevel(last, 2);
-        // get expand state
-        Object[] list1 = fTreeViewer.getExpandedElements();
-        // flush viewer
-        setInput();
-        processEvents();
-
-        // restore old expand state
-        fTreeViewer.collapseAll();
-        fTreeViewer.expandToLevel(first, 2);
-        fTreeViewer.expandToLevel(first2, 2);
-        fTreeViewer.expandToLevel(last, 2);
-
-        Object[] list2 = fTreeViewer.getExpandedElements();
-
-        assertEqualsArray("old and new expand state are the same", list1, list2);
-    }
-
-    public void testDeleteChildExpanded() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        fTreeViewer.expandToLevel(first2, 0);
-
-        assertNotNull("first child is visible", fViewer.testFindItem(first2));
-        first.deleteChild(first2);
-        assertNull("first child is not visible", fViewer.testFindItem(first2));
-    }
-
-    public void testDeleteChildren() {
-        TestElement first = fRootElement.getFirstChild();
-        first.deleteChildren();
-        assertTrue("no children", getItemCount(first) == 0);
-    }
-
-    public void testDeleteChildrenExpanded() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        fTreeViewer.expandToLevel(first2, 0);
-        assertNotNull("first child is visible", fViewer.testFindItem(first2));
-
-        first.deleteChildren();
-        assertTrue("no children", getItemCount(first) == 0);
-    }
-
-    public void testExpand() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        assertNull("first child is not visible", fViewer.testFindItem(first2));
-        fTreeViewer.expandToLevel(first2, 0);
-        assertNotNull("first child is visible", fViewer.testFindItem(first2));
-    }
-
-    public void testExpandElement() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        TestElement first3 = first2.getFirstChild();
-        fTreeViewer.expandToLevel(first3, 0);
-        assertNotNull("first3 is visible", fViewer.testFindItem(first3));
-        assertNotNull("first2 is visible", fViewer.testFindItem(first2));
-    }
-
-    public void testExpandToLevel() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        TestElement first3 = first2.getFirstChild();
-        fTreeViewer.expandToLevel(3);
-        assertNotNull("first2 is visible", fViewer.testFindItem(first2));
-        assertNotNull("first3 is visible", fViewer.testFindItem(first3));
-    }
-
-    public void testFilterExpanded() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        fTreeViewer.expandToLevel(first2, 0);
-
-        fTreeViewer.addFilter(new TestLabelFilter());
-        assertTrue("filtered count", getItemCount() == 5);
-    }
-
-    public void testInsertChildReveal() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement newElement = first.addChild(TestModelChange.INSERT
-                | TestModelChange.REVEAL);
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-    }
-
-    public void testInsertChildRevealSelect() {
-        TestElement last = fRootElement.getLastChild();
-        TestElement newElement = last.addChild(TestModelChange.INSERT
-                | TestModelChange.REVEAL | TestModelChange.SELECT);
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-        assertSelectionEquals("new element is selected", newElement);
-    }
-
-    public void testInsertChildRevealSelectExpanded() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement newElement = first.addChild(TestModelChange.INSERT
-                | TestModelChange.REVEAL | TestModelChange.SELECT);
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-        assertSelectionEquals("new element is selected", newElement);
-    }
-
-    /**
-     * Regression test for 1GDN0PX: ITPUI:WIN2000 - SEVERE  - AssertionFailure when expanding Navigator
-     * Problem was:
-     *   - before addition, parent item had no children, and was expanded
-     *   - after addition, during refresh(), updatePlus() added dummy node even though parent item was expanded
-     *   - in updateChildren, it wasn't handling a dummy node
-     */
-    public void testRefreshWithAddedChildren() {
-        TestElement parent = fRootElement.addChild(TestModelChange.INSERT);
-        TestElement child = parent.addChild(TestModelChange.INSERT);
-        ((AbstractTreeViewer) fViewer).setExpandedState(parent, true);
-        parent.deleteChild(child);
-        child = parent.addChild(TestModelChange.STRUCTURE_CHANGE);
-        // On some platforms (namely GTK), removing all children causes the
-        // parent to collapse (actually it's worse than that: GTK doesn't
-        // allow there to be an empty expanded tree item, even if you do a
-        // setExpanded(true)).  
-        // This behaviour makes it impossible to do this regression test.
-        // See bug 40797 for more details.
-        processEvents();
-        if (((AbstractTreeViewer) fViewer).getExpandedState(parent)) {
-            assertNotNull("new child is visible", fViewer.testFindItem(child));
-        }
-    }
-
-    /**
-     * Regression test for 1GBDB5A: ITPUI:WINNT - Exception in AbstractTreeViewer update.
-     * Problem was:
-     *   node has child A
-     *   node gets duplicate child A
-     *   viewer is refreshed rather than using add for new A
-     *   AbstractTreeViewer.updateChildren(...) was not properly handling it
-     */
-    public void testRefreshWithDuplicateChild() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement newElement = (TestElement) first.clone();
-        fRootElement.addChild(newElement, new TestModelChange(
-                TestModelChange.STRUCTURE_CHANGE, fRootElement));
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-    }
-
-    /**
-     * Regression test for Bug 3840 [Viewers] free expansion of jar happening when deleting projects (1GEV2FL)
-     * Problem was:
-     *   - node has children A and B 
-     *   - A is expanded, B is not
-     *   - A gets deleted
-     *   - B gets expanded because it reused A's item
-     */
-    public void testRefreshWithReusedItems() {
-        //        TestElement a= fRootElement.getFirstChild();
-        //        TestElement aa= a.getChildAt(0);
-        //        TestElement ab= a.getChildAt(1);
-        //        fTreeViewer.expandToLevel(aa, 1);
-        //		List expandedBefore = Arrays.asList(fTreeViewer.getExpandedElements());
-        //		assertTrue(expandedBefore.contains(a));
-        //		assertTrue(expandedBefore.contains(aa));
-        //		assertFalse(expandedBefore.contains(ab));
-        //        a.deleteChild(aa, new TestModelChange(TestModelChange.STRUCTURE_CHANGE, a));
-        //        List expandedAfter = Arrays.asList(fTreeViewer.getExpandedElements());
-        //        assertFalse(expandedAfter.contains(ab));
-    }
-
-    public void testRenameChildElement() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        fTreeViewer.expandToLevel(first2, 0);
-        assertNotNull("first child is visible", fViewer.testFindItem(first2));
-
-        String newLabel = first2.getLabel() + " changed";
-        first2.setLabel(newLabel);
-        Widget widget = fViewer.testFindItem(first2);
-        assertTrue(widget instanceof Item);
-        assertEquals("changed label", first2.getID() + " " + newLabel,
-                ((Item) widget).getText());
-    }
-
-    /**
-     * Regression test for Bug 26698 [Viewers] stack overflow during debug session, causing IDE to crash
-     * Problem was:
-     *   - node A has child A
-     *   - setExpanded with A in the list caused an infinite recursion 
-     */
-    public void testSetExpandedWithCycle() {
-        TestElement first = fRootElement.getFirstChild();
-        first.addChild(first, new TestModelChange(TestModelChange.INSERT,
-                first, first));
-        fTreeViewer.setExpandedElements(new Object[] { first });
-
-    }
-
-    /**
-     * Test for Bug 41710 - assertion that an object may not be added to a given
-     * TreeItem more than once.     
-     */
-    public void testSetDuplicateChild() {
-        //Widget root = fViewer.testFindItem(fRootElement);
-        //assertNotNull(root);
-        TestElement parent = fRootElement.addChild(TestModelChange.INSERT);
-        TestElement child = parent.addChild(TestModelChange.INSERT);
-        int initialCount = getItemCount(parent);
-        fRootElement.addChild(child, new TestModelChange(
-                TestModelChange.INSERT, fRootElement, child));
-        int postCount = getItemCount(parent);
-        assertEquals("Same element added to a parent twice.", initialCount,
-                postCount);
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.tests.viewers.ViewerTestCase#tearDown()
-     */
-    public void tearDown() {
-    	super.tearDown();
-    	fTreeViewer = null;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AllTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AllTests.java
deleted file mode 100644
index 6094cad..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/AllTests.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class AllTests extends TestSuite {
-
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(suite());
-	}
-
-	public static Test suite() {
-		return new AllTests();
-	}
-
-	public AllTests() {
-		addTestSuite(TreeSelectionTest.class);
-		addTestSuite(MultipleEqualElementsTreeViewerTest.class);
-		addTestSuite(LazySortedCollectionTest.class);
-		addTestSuite(TreeViewerTest.class);
-		addTestSuite(VirtualTreeViewerTest.class);
-		addTestSuite(SimpleTreeViewerTest.class);
-		addTestSuite(SimpleTableViewerTest.class);
-		addTestSuite(SimpleVirtualLazyTreeViewerTest.class);
-		addTestSuite(VirtualLazyTreeViewerTest.class);
-		addTestSuite(TableViewerTest.class);
-		addTestSuite(TreeViewerColumnTest.class);
-		addTestSuite(VirtualTableViewerTest.class);
-		addTestSuite(VirtualLazyTableViewerTest.class);
-		addTestSuite(TableTreeViewerTest.class);
-		addTestSuite(TableColorProviderTest.class);
-		addTestSuite(TableFontProviderTest.class);
-		addTestSuite(ListViewerTest.class);
-		addTestSuite(CheckboxTableViewerTest.class);
-		addTestSuite(CheckboxTableViewerTest.DeprecatedConstructor.class);
-		addTestSuite(CheckboxTableViewerTest.FactoryMethod.class);
-		addTestSuite(CheckboxTreeViewerTest.class);
-		addTestSuite(ComboViewerTest.class);
-		addTestSuite(CComboViewerTest.class);
-		addTestSuite(TreeViewerComparatorTest.class);
-		addTestSuite(ListViewerComparatorTest.class);
-		addTestSuite(TableViewerComparatorTest.class);
-		addTestSuite(Bug138608Test.class);
-		addTestSuite(ComboViewerComparerTest.class);
-		addTestSuite(ListViewerRefreshTest.class);
-		addTestSuite(Bug200558Test.class);
-		addTestSuite(Bug201002TableViewerTest.class);
-		addTestSuite(Bug201002TreeViewerTest.class);
-		addTestSuite(Bug200337TableViewerTest.class);
-		addTestSuite(Bug203657TreeViewerTest.class);
-		addTestSuite(Bug203657TableViewerTest.class);
-		addTestSuite(Bug205700TreeViewerTest.class);
-		addTestSuite(Bug180504TableViewerTest.class);
-		addTestSuite(Bug180504TreeViewerTest.class);
-		addTestSuite(Bug256889TableViewerTest.class);
-		addTestSuite(StyledStringBuilderTest.class);
-		addTestSuite(TreeManagerTest.class);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug138608Test.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug138608Test.java
deleted file mode 100644
index da40a0b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug138608Test.java
+++ /dev/null
@@ -1,149 +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
- *     Ivailo Abadjiev (bug 151857)
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeNode;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * Description of the bug:
- * Initially tree is populated by way shown below and is completely expanded.
- * 
- * root
- *     |-a
- *        |-c
- *        |-d
- *     |-b
- *        |-c
- * 
- * Then 'd' model element is added as child of 'b' in model and through
- * add(parent,child) method of TreeViewer to tree.
- * 
- * The problem - It seems that calling add(parent,child) has no desired efect.
- * 'd' model element is not shown as child of 'b'!
- * 
- * @since 3.2
- * 
- */
-public class Bug138608Test extends ViewerTestCase {
-
-	private TreeContentProvider contentProvider;
-
-	/**
-	 * @param name
-	 */
-	public Bug138608Test(String name) {
-		super(name);
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TreeViewer viewer = new TreeViewer(parent);
-		viewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
-		contentProvider = new TreeContentProvider();
-		LabelProvider labelProvider = new LabelProvider();
-		viewer.setContentProvider(contentProvider);
-		viewer.setLabelProvider(labelProvider);
-		return viewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		getTreeViewer().setInput(contentProvider.root);
-		getTreeViewer().expandAll();
-	}
-
-	/**
-	 * @return
-	 */
-	private TreeViewer getTreeViewer() {
-		return (TreeViewer) fViewer;
-	}
-
-	public void testBug138608() {
-		processEvents();
-		// Add 'd' as child of 'b' in data model first
-
-		contentProvider.root.getChildren()[1].setChildren(contentProvider.root
-				.getChildren()[0].getChildren());
-		// Then add 'd' as child of 'b' in tree itself
-		// THE PROBLEM IS HERE - after this call Tree will not show his
-		// new child
-
-		getTreeViewer().add(contentProvider.root.getChildren()[1],
-				contentProvider.root.getChildren()[1].getChildren()[1]);
-
-		assertEquals("expected two children of node b", 2, getTreeViewer()
-				.getTree().getItem(1).getItemCount());
-
-		getTreeViewer().add(contentProvider.root.getChildren()[1],
-				contentProvider.root.getChildren()[1].getChildren()[1]);
-
-		assertEquals("expected two children of node b", 2, getTreeViewer()
-				.getTree().getItem(1).getItemCount());
-
-	}
-
-	public void tearDown() {
-		contentProvider = null;
-		super.tearDown();
-	}
-
-	private static class TreeContentProvider implements ITreeContentProvider {
-
-		public TreeNode root = new TreeNode("root");
-
-		public TreeContentProvider() {
-			TreeNode d = new TreeNode("d");
-			TreeNode c = new TreeNode("c");
-			TreeNode b = new TreeNode("b");
-			TreeNode a = new TreeNode("a");
-			// build initial hierarchy
-			root.setChildren(new TreeNode[] { a, b });
-			a.setChildren(new TreeNode[] { c, d });
-			b.setChildren(new TreeNode[] { c });
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			return ((TreeNode) parentElement).getChildren();
-		}
-
-		public Object getParent(Object element) {
-			return ((TreeNode) element).getParent();
-		}
-
-		public boolean hasChildren(Object element) {
-			return ((TreeNode) element).hasChildren();
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TableViewerTest.java
deleted file mode 100644
index 057e980..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TableViewerTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug180504TableViewerTest extends ViewerTestCase {
-
-	/**
-	 * @param name
-	 */
-	public Bug180504TableViewerTest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TableViewer tableViewer = new TableViewer(parent, SWT.FULL_SELECTION);
-		tableViewer.setContentProvider(new ArrayContentProvider());
-		tableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				tableViewer.getTable()) });
-		tableViewer.setColumnProperties(new String[] { "0" });
-		tableViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				tableViewer.getControl().dispose();
-			}
-
-		});
-
-	    new TableColumn(tableViewer.getTable(), SWT.NONE).setWidth(200);
-
-		return tableViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		String[] ar = new String[100];
-		for( int i = 0; i < ar.length; i++ ) {
-			ar[i] = i + "";
-		}
-		getTableViewer().setInput(ar);
-	}
-
-	private TableViewer getTableViewer() {
-		return (TableViewer) fViewer;
-	}
-
-	public void testBug180504ApplyEditor() {
-		getTableViewer().editElement(getTableViewer().getElementAt(0), 0);
-		Method m;
-		try {
-			m = ColumnViewer.class.getDeclaredMethod("applyEditorValue", new Class[0]);
-			m.setAccessible(true);
-			m.invoke(getTableViewer(), new Object[0]);
-		} catch (SecurityException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (IllegalArgumentException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-
-		}
-	}
-
-	public void testBug180504CancleEditor() {
-		getTableViewer().editElement(getTableViewer().getElementAt(0), 0);
-		getTableViewer().cancelEditing();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TreeViewerTest.java
deleted file mode 100644
index cf194e9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug180504TreeViewerTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug180504TreeViewerTest extends ViewerTestCase {
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-	/**
-	 * @param name
-	 */
-	public Bug180504TreeViewerTest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TreeViewer treeViewer = new TreeViewer(parent, SWT.FULL_SELECTION);
-
-		treeViewer.setContentProvider(new ITreeContentProvider() {
-
-			public Object[] getElements(Object inputElement) {
-				return ((MyModel) inputElement).child.toArray();
-			}
-
-			public void dispose() {
-
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput,
-					Object newInput) {
-
-			}
-
-			public Object[] getChildren(Object parentElement) {
-				return getElements(parentElement);
-			}
-
-			public Object getParent(Object element) {
-				if (element == null) {
-					return null;
-				}
-
-				return ((MyModel) element).parent;
-			}
-
-			public boolean hasChildren(Object element) {
-				return ((MyModel) element).child.size() > 0;
-			}
-		});
-
-		treeViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				treeViewer.getTree()) });
-		treeViewer.setColumnProperties(new String[] { "0" });
-		treeViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-				treeViewer.getControl().dispose();
-			}
-
-		});
-
-		new TreeColumn(treeViewer.getTree(), SWT.NONE).setWidth(200);
-
-		return treeViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 100; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		getTreeViewer().setInput(root);
-	}
-
-	private TreeViewer getTreeViewer() {
-		return (TreeViewer) fViewer;
-	}
-
-	public void testBug201002() {
-		getTreeViewer().editElement(((MyModel)((MyModel)getTreeViewer().getInput()).child.get(90)).child.get(10), 0);
-		Method m;
-		try {
-			m = ColumnViewer.class.getDeclaredMethod("applyEditorValue", new Class[0]);
-			m.setAccessible(true);
-			m.invoke(getTreeViewer(), new Object[0]);
-		} catch (SecurityException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (IllegalArgumentException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-			fail(e.getMessage());
-		}
-	}
-
-	public void testBug180504CancleEditor() {
-		getTreeViewer().editElement(((MyModel)((MyModel)getTreeViewer().getInput()).child.get(90)).child.get(10), 0);
-		getTreeViewer().cancelEditing();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200337TableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200337TableViewerTest.java
deleted file mode 100644
index 007039c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200337TableViewerTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug200337TableViewerTest extends ViewerTestCase {
-
-	/**
-	 * @param name
-	 */
-	public Bug200337TableViewerTest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TableViewer tableViewer = new TableViewer(parent, SWT.FULL_SELECTION);
-		tableViewer.setContentProvider(new ArrayContentProvider());
-		tableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				tableViewer.getTable()) });
-		tableViewer.setColumnProperties(new String[] { "0" });
-		tableViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-			}
-
-		});
-
-	    new TableColumn(tableViewer.getTable(), SWT.NONE).setWidth(200);
-
-		return tableViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		String[] ar = new String[100];
-		for( int i = 0; i < ar.length; i++ ) {
-			ar[i] = i + "";
-		}
-		getTableViewer().setInput(ar);
-	}
-
-	private TableViewer getTableViewer() {
-		return (TableViewer) fViewer;
-	}
-
-	public void testBug200337() {
-		getTableViewer().editElement(getTableViewer().getElementAt(0), 0);
-		getTableViewer().editElement(getTableViewer().getElementAt(90), 0);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200558Test.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200558Test.java
deleted file mode 100644
index 1e9a245..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug200558Test.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug200558Test extends ViewerTestCase {
-
-	/**
-	 * @param name
-	 */
-	public Bug200558Test(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TreeViewer treeViewer = new TreeViewer(parent, SWT.FULL_SELECTION);
-		treeViewer.setContentProvider(new ITreeContentProvider() {
-
-			public void dispose() {
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput,
-					Object newInput) {
-			}
-
-			public Object[] getElements(Object inputElement) {
-				return new Object[] { "item" };
-			}
-
-			public Object[] getChildren(Object parentElement) {
-				return null;
-			}
-
-			public Object getParent(Object element) {
-				return null;
-			}
-
-			public boolean hasChildren(Object element) {
-				return false;
-			}
-
-		});
-		treeViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				treeViewer.getTree()) });
-		treeViewer.setColumnProperties(new String[] { "0" });
-		treeViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "Test";
-			}
-
-			public void modify(Object element, String property, Object value) {
-			}
-
-		});
-
-	    new TreeColumn(treeViewer.getTree(), SWT.NONE);
-	    new TreeColumn(treeViewer.getTree(), SWT.NONE).setWidth(100);
-
-		return treeViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		getTreeViewer().setInput(new Object());
-		getTreeViewer().getTree().getColumn(0).dispose();
-	}
-
-	private TreeViewer getTreeViewer() {
-		return (TreeViewer) fViewer;
-	}
-
-	public void testBug200558() {
-		getTreeViewer().editElement(getTreeViewer().getTree().getItem(0).getData(), 0);
-		assertEquals("Test", ((Text)getTreeViewer().getCellEditors()[0].getControl()).getText());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TableViewerTest.java
deleted file mode 100644
index 337883f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TableViewerTest.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug201002TableViewerTest extends ViewerTestCase {
-
-	/**
-	 * @param name
-	 */
-	public Bug201002TableViewerTest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TableViewer tableViewer = new TableViewer(parent, SWT.FULL_SELECTION);
-		tableViewer.setContentProvider(new ArrayContentProvider());
-		tableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				tableViewer.getTable()) });
-		tableViewer.setColumnProperties(new String[] { "0" });
-		tableViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-			}
-
-		});
-
-	    new TableColumn(tableViewer.getTable(), SWT.NONE).setWidth(200);
-
-		return tableViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		String[] ar = new String[100];
-		for( int i = 0; i < ar.length; i++ ) {
-			ar[i] = i + "";
-		}
-		getTableViewer().setInput(ar);
-	}
-
-	private TableViewer getTableViewer() {
-		return (TableViewer) fViewer;
-	}
-
-	public void testBug201002() {
-		getTableViewer().getTable().setTopIndex(0);
-		getTableViewer().editElement(getTableViewer().getElementAt(90), 0);
-
-		// GTK-Issue where call to getTopItem() immediately
-		// afterwards will fail
-		while( getTableViewer().getTable().getDisplay().readAndDispatch () ) {
-
-		}
-
-		assertEquals(true, getTableViewer().getTable().getTopIndex() != 0);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TreeViewerTest.java
deleted file mode 100644
index 2b57d5e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug201002TreeViewerTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug201002TreeViewerTest extends ViewerTestCase {
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-	/**
-	 * @param name
-	 */
-	public Bug201002TreeViewerTest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TreeViewer treeViewer = new TreeViewer(parent, SWT.FULL_SELECTION);
-
-		treeViewer.setContentProvider(new ITreeContentProvider() {
-
-			public Object[] getElements(Object inputElement) {
-				return ((MyModel) inputElement).child.toArray();
-			}
-
-			public void dispose() {
-
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput,
-					Object newInput) {
-
-			}
-
-			public Object[] getChildren(Object parentElement) {
-				return getElements(parentElement);
-			}
-
-			public Object getParent(Object element) {
-				if (element == null) {
-					return null;
-				}
-
-				return ((MyModel) element).parent;
-			}
-
-			public boolean hasChildren(Object element) {
-				return ((MyModel) element).child.size() > 0;
-			}
-		});
-
-		treeViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				treeViewer.getTree()) });
-		treeViewer.setColumnProperties(new String[] { "0" });
-		treeViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-			}
-
-		});
-
-		new TreeColumn(treeViewer.getTree(), SWT.NONE).setWidth(200);
-
-		return treeViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 100; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		getTreeViewer().setInput(root);
-	}
-
-	private TreeViewer getTreeViewer() {
-		return (TreeViewer) fViewer;
-	}
-
-	public void testBug201002() {
-		getTreeViewer().getTree().setTopItem(
-				getTreeViewer().getTree().getItem(0));
-		getTreeViewer().editElement(((MyModel)((MyModel)getTreeViewer().getInput()).child.get(90)).child.get(10), 0);
-
-		// GTK-Issue where call to getTopItem() immediately
-		// afterwards will fail
-		while( getTreeViewer().getTree().getDisplay().readAndDispatch () ) {
-
-		}
-
-		assertEquals(true,
-				getTreeViewer().getTree().getTopItem() != getTreeViewer()
-						.getTree().getItem(0));
-	}
-
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TableViewerTest.java
deleted file mode 100644
index 5332a50..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TableViewerTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug203657TableViewerTest extends ViewerTestCase {
-
-	/**
-	 * @param name
-	 */
-	public Bug203657TableViewerTest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TableViewer tableViewer = new TableViewer(parent, SWT.FULL_SELECTION);
-		tableViewer.setContentProvider(new ArrayContentProvider());
-		tableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				tableViewer.getTable()) });
-		tableViewer.setColumnProperties(new String[] { "0" });
-		tableViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-			}
-
-		});
-
-	    new TableColumn(tableViewer.getTable(), SWT.NONE).setWidth(200);
-
-		return tableViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		String[] ar = new String[100];
-		for( int i = 0; i < ar.length; i++ ) {
-			ar[i] = i + "";
-		}
-		getTableViewer().setInput(ar);
-	}
-
-	private TableViewer getTableViewer() {
-		return (TableViewer) fViewer;
-	}
-
-	public void testBug203657() {
-		try {
-			Field f = ColumnViewer.class.getDeclaredField("cell");
-			f.setAccessible(true);
-			ViewerCell cell = (ViewerCell) f.get(getTableViewer());
-			assertNull(cell.getElement());
-			assertNull(cell.getViewerRow());
-			assertEquals(0, cell.getColumnIndex());
-		} catch (SecurityException e) {
-			fail(e.getMessage());
-		} catch (NoSuchFieldException e) {
-			fail(e.getMessage());
-		} catch (IllegalArgumentException e) {
-			fail(e.getMessage());
-		} catch (IllegalAccessException e) {
-			fail(e.getMessage());
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TreeViewerTest.java
deleted file mode 100644
index b5cab34..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug203657TreeViewerTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TreeColumn;
-
-/**
- * @since 3.3
- *
- */
-public class Bug203657TreeViewerTest extends ViewerTestCase {
-	public class MyModel {
-		public MyModel parent;
-
-		public ArrayList child = new ArrayList();
-
-		public int counter;
-
-		public MyModel(int counter, MyModel parent) {
-			this.parent = parent;
-			this.counter = counter;
-		}
-
-		public String toString() {
-			String rv = "Item ";
-			if (parent != null) {
-				rv = parent.toString() + ".";
-			}
-
-			rv += counter;
-
-			return rv;
-		}
-	}
-	/**
-	 * @param name
-	 */
-	public Bug203657TreeViewerTest(String name) {
-		super(name);
-		// TODO Auto-generated constructor stub
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		final TreeViewer treeViewer = new TreeViewer(parent, SWT.FULL_SELECTION);
-
-		treeViewer.setContentProvider(new ITreeContentProvider() {
-
-			public Object[] getElements(Object inputElement) {
-				return ((MyModel) inputElement).child.toArray();
-			}
-
-			public void dispose() {
-
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput,
-					Object newInput) {
-
-			}
-
-			public Object[] getChildren(Object parentElement) {
-				return getElements(parentElement);
-			}
-
-			public Object getParent(Object element) {
-				if (element == null) {
-					return null;
-				}
-
-				return ((MyModel) element).parent;
-			}
-
-			public boolean hasChildren(Object element) {
-				return ((MyModel) element).child.size() > 0;
-			}
-		});
-
-		treeViewer.setCellEditors(new CellEditor[] { new TextCellEditor(
-				treeViewer.getTree()) });
-		treeViewer.setColumnProperties(new String[] { "0" });
-		treeViewer.setCellModifier(new ICellModifier() {
-			public boolean canModify(Object element, String property) {
-				return true;
-			}
-
-			public Object getValue(Object element, String property) {
-				return "";
-			}
-
-			public void modify(Object element, String property, Object value) {
-			}
-
-		});
-
-		new TreeColumn(treeViewer.getTree(), SWT.NONE).setWidth(200);
-
-		return treeViewer;
-	}
-
-	protected void setUpModel() {
-		// don't do anything here - we are not using the normal fModel and
-		// fRootElement
-	}
-
-	protected void setInput() {
-		MyModel root = new MyModel(0, null);
-		root.counter = 0;
-
-		MyModel tmp;
-		for (int i = 1; i < 100; i++) {
-			tmp = new MyModel(i, root);
-			root.child.add(tmp);
-			for (int j = 1; j < i; j++) {
-				tmp.child.add(new MyModel(j, tmp));
-			}
-		}
-
-		getTreeViewer().setInput(root);
-	}
-
-	private TreeViewer getTreeViewer() {
-		return (TreeViewer) fViewer;
-	}
-
-	public void testBug203657() {
-		try {
-			Field f = ColumnViewer.class.getDeclaredField("cell");
-			f.setAccessible(true);
-			ViewerCell cell = (ViewerCell) f.get(getTreeViewer());
-			assertNull(cell.getElement());
-			assertNull(cell.getViewerRow());
-			assertEquals(0, cell.getColumnIndex());
-		} catch (SecurityException e) {
-			fail(e.getMessage());
-		} catch (NoSuchFieldException e) {
-			fail(e.getMessage());
-		} catch (IllegalArgumentException e) {
-			fail(e.getMessage());
-		} catch (IllegalAccessException e) {
-			fail(e.getMessage());
-		}
-	}
-
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug205700TreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug205700TreeViewerTest.java
deleted file mode 100644
index bfcdd8d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug205700TreeViewerTest.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Lasse Knudsen and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Lasse Knudsen - initial API and implementation, bug 205700
- *     Boris Bokowski, IBM - additional test cases
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-
-public class Bug205700TreeViewerTest extends TestCase {
-
-	private Shell shell;
-
-	private TreeViewer viewer;
-
-	private TreeNode rootNode;
-
-	private final TreeNode child1 = new TreeNode("Child1");
-
-	private final TreeNode child5 = new TreeNode("Child5");
-
-	private final TreeNode child10 = new TreeNode("Child10");
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		shell = new Shell();
-
-		viewer = new TreeViewer(shell, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-
-		viewer.setContentProvider(new InternalContentProvider());
-		viewer.setLabelProvider(new InternalLabelProvider());
-
-		viewer.setInput(createInput());
-
-		shell.open();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		shell.close();
-	}
-
-	public void testAddWithoutSorter() throws Exception {
-		assertItemNames(new String[] { "Child1", "Child5", "Child10" });
-
-		rootNode.add(new TreeNode("Child2"));
-		rootNode.add(new TreeNode("Child3"));
-		rootNode.add(new TreeNode("Child4"));
-		rootNode.add(new TreeNode("Child6"));
-		rootNode.add(new TreeNode("Child7"));
-		rootNode.add(new TreeNode("Child8"));
-		rootNode.add(new TreeNode("Child9"));
-
-		viewer.add(rootNode, rootNode.getChildren().toArray());
-
-		assertItemNames(new String[] { "Child1", "Child5", "Child10", "Child2",
-				"Child3", "Child4", "Child6", "Child7", "Child8", "Child9" });
-	}
-
-	/**
-	 * @param names
-	 */
-	private void assertItemNames(String[] names) {
-		for (int i = 0; i < names.length; i++) {
-			assertItemName(i, names[i]);
-		}
-	}
-
-	/**
-	 * @param index
-	 * @param name
-	 */
-	private void assertItemName(int index, String name) {
-		assertEquals("at " + index, name, viewer.getTree().getItem(index)
-				.getText());
-	}
-
-	public void testAddWithSorter() throws Exception {
-		assertItemNames(new String[] { "Child1", "Child5", "Child10" });
-		viewer.setSorter(new ViewerSorter());
-		assertItemNames(new String[] { "Child1", "Child10", "Child5" });
-
-		rootNode.add(new TreeNode("Child2"));
-		rootNode.add(new TreeNode("Child3"));
-		rootNode.add(new TreeNode("Child4"));
-		rootNode.add(new TreeNode("Child6"));
-		rootNode.add(new TreeNode("Child7"));
-		rootNode.add(new TreeNode("Child8"));
-		rootNode.add(new TreeNode("Child9"));
-
-		viewer.add(rootNode, rootNode.getChildren().toArray());
-
-		assertItemNames(new String[] { "Child1", "Child10", "Child2", "Child3",
-				"Child4", "Child5", "Child6", "Child7", "Child8", "Child9" });
-	}
-
-	public void testAddEquallySortedElements() throws Exception {
-		assertItemNames(new String[] { "Child1", "Child5", "Child10" });
-		viewer.setSorter(new ViewerSorter());
-		assertItemNames(new String[] { "Child1", "Child10", "Child5" });
-
-		// add before the existing "Child1" node
-		rootNode.getChildren().add(0, new TreeNode("Child1"));
-
-		viewer.add(rootNode, rootNode.getChildren().toArray());
-
-		assertItemNames(new String[] { "Child1", "Child1", "Child10",
-				"Child5" });
-	}
-
-	private Object createInput() {
-		rootNode = new TreeNode("Root");
-
-		rootNode.add(child1);
-		rootNode.add(child5);
-		rootNode.add(child10);
-
-		return rootNode;
-	}
-
-	private class TreeNode {
-
-		private final String name;
-
-		private TreeNode parent = null;
-
-		private final List children = new ArrayList();
-
-		public TreeNode(String name) {
-			this.name = name;
-		}
-
-		public void add(TreeNode newChild) {
-			if (newChild != null) {
-				children.add(newChild);
-			}
-		}
-
-		public List getChildren() {
-			return children;
-		}
-
-		public TreeNode getParent() {
-			return parent;
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		public String toString() {
-			return getName();
-		}
-	}
-
-	private class InternalLabelProvider extends LabelProvider {
-		public String getText(Object element) {
-			if (element instanceof TreeNode) {
-				return ((TreeNode) element).getName();
-			}
-			return null;
-		}
-	}
-
-	private class InternalContentProvider implements ITreeContentProvider {
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof TreeNode) {
-				return ((TreeNode) parentElement).getChildren().toArray();
-			}
-			return new Object[0];
-		}
-
-		public Object getParent(Object element) {
-			if (element instanceof TreeNode) {
-				return ((TreeNode) element).getParent();
-			}
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			if (element instanceof TreeNode) {
-				return !((TreeNode) element).getChildren().isEmpty();
-			}
-			return false;
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		public void dispose() {
-			// nothing
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			// nothing
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug256889TableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug256889TableViewerTest.java
deleted file mode 100644
index 4a91b3d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/Bug256889TableViewerTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 CAS Software AG and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Stefan Roeck, CAS Software AG - initial API and implementation (bug 256889)
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ILazyContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class Bug256889TableViewerTest extends ViewerTestCase {
-
-	private static final int ADD_ENTRIES = 100;
-	private static final int PREFETCH_TRESHOLD = 50;
-	private static final int MAX_ENTRIES = 205;
-
-	private int rowcounter = 0;
-
-	private List model = new ArrayList();
-	private Table table;
-	private TableViewer tableViewer;
-
-	/**
-	 * @param name
-	 */
-	public Bug256889TableViewerTest(String name) {
-		super(name);
-		initModel();
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		tableViewer = new TableViewer(parent, SWT.VIRTUAL | SWT.BORDER
-				| SWT.MULTI);
-		tableViewer.setContentProvider(new ILazyContentProvider() {
-
-			public void updateElement(int index) {
-				if (index >= 0 && index < tableViewer.getTable().getItemCount()) {
-					if (index > getModel().size() - PREFETCH_TRESHOLD
-							&& (getModel().size() < MAX_ENTRIES)) {
-						// simulate loading the next page of data from db
-						int approxRecordCount = addElementsToModel();
-
-						System.out.println("approx. record count: "
-								+ approxRecordCount);
-						tableViewer.setItemCount(approxRecordCount);
-					}
-					if (index < getModel().size()) {
-						tableViewer.replace(getModel().get(index), index);
-					} else {
-						System.out.println("invalid index " + index
-								+ " model count " + getModel().size());
-					}
-				} else {
-					System.out.println("invalid index " + index
-							+ " tableItemCount "
-							+ tableViewer.getTable().getItemCount());
-				}
-			}
-
-			public void dispose() {
-			}
-
-			public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
-			}
-		});
-
-		String[] columnProperties = new String[] { "Spalte 1",
-				"Virtual Tables rock" };
-		tableViewer.setColumnProperties(columnProperties);
-
-		table = tableViewer.getTable();
-
-		TableColumn col = new TableColumn(table, SWT.NONE);
-		col.setText(columnProperties[0]);
-		col.setWidth(200);
-
-		col = new TableColumn(table, SWT.NONE);
-		col.setText(columnProperties[1]);
-		col.setWidth(400);
-
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-
-		tableViewer.setItemCount(getModel().size());
-
-		return tableViewer;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#setInput()
-	 */
-	protected void setInput() {
-		tableViewer.setInput(getModel());
-		tableViewer.setItemCount(getModel().size());
-
-		// The heigt is important, otherwise lazy fetching doesn't lead to the
-		// bug
-		fShell.setSize(300, 1000);
-	}
-
-	private void initModel() {
-		this.rowcounter = 0;
-		getModel().clear();
-		addElementsToModel();
-	}
-
-	// Methods returns an approximate record count which is always
-	// one page size larger than the actually fetched records, until
-	// all records have been fetched and the end of list has been reached.
-	protected int addElementsToModel() {
-		int approxRecordCount = 0;
-		int itemsToAdd;
-
-		if (getModel().size() + ADD_ENTRIES < MAX_ENTRIES) {
-			itemsToAdd = ADD_ENTRIES;
-		} else {
-			itemsToAdd = MAX_ENTRIES - getModel().size();
-		}
-
-		for (int i = 0; i < itemsToAdd; i++) {
-			getModel().add("Item " + this.rowcounter++);
-		}
-
-		if (getModel().size() == MAX_ENTRIES) {
-			approxRecordCount = MAX_ENTRIES;
-		} else {
-			approxRecordCount = getModel().size() + ADD_ENTRIES;
-		}
-
-		return approxRecordCount;
-	}
-
-	private List getModel() {
-		return this.model;
-	}
-
-	public void testBug256889() {
-		table.selectAll();
-		tableViewer.getSelection();
-
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CComboViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CComboViewerTest.java
deleted file mode 100644
index fe7b581..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CComboViewerTest.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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @since 3.0
- */
-public class CComboViewerTest extends StructuredViewerTest {
-    public CComboViewerTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-    	CCombo cCombo = new CCombo(parent, SWT.READ_ONLY | SWT.BORDER);
-        ComboViewer viewer = new ComboViewer(cCombo);
-        viewer.setContentProvider(new TestModelContentProvider());
-        return viewer;
-    }
-
-    protected int getItemCount() {
-        TestElement first = fRootElement.getFirstChild();
-        CCombo list = (CCombo) fViewer.testFindItem(first);
-        return list.getItemCount();
-    }
-
-    protected String getItemText(int at) {
-        CCombo list = (CCombo) fViewer.getControl();
-        return list.getItem(at);
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(CComboViewerTest.class);
-    }
-
-    /**
-     * TODO: Determine if this test is applicable to ComboViewer 
-     */
-    public void testInsertChild() {
-
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckStateProviderTestsUtil.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckStateProviderTestsUtil.java
deleted file mode 100644
index 7ef751c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckStateProviderTestsUtil.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ICheckStateProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-/**
- * Utilities for testing ICheckStateProviders.
- * @since 3.5
- */
-public class CheckStateProviderTestsUtil {
-	private static final int NUMBER_OF_STATES = 4;
-
-	/**
-	 * An ICheckStateProvider which records whether
-	 * its isChecked and isGrayed methods are invoked.
-	 * @since 3.5
-	 */
-	public static class TestMethodsInvokedCheckStateProvider implements ICheckStateProvider {
-		public List isCheckedInvokedOn = new ArrayList();
-		public List isGrayedInvokedOn = new ArrayList();
-		
-		public boolean isChecked(Object element) {
-			isCheckedInvokedOn.add(element);
-			return true;
-		}
-
-		public boolean isGrayed(Object element) {
-			isGrayedInvokedOn.add(element);
-			return true;
-		}
-		
-		public void reset() {
-			isCheckedInvokedOn = new ArrayList();
-			isGrayedInvokedOn = new ArrayList();
-		}
-	}
-	
-	/**
-	 * An ICheckStateProvider which provides a consistent
-	 * variety of states for input elements based on the
-	 * parameter provided in the constructor.
-	 * @since 3.5
-	 */
-	public static final class TestCheckStateProvider extends TestMethodsInvokedCheckStateProvider {
-		private int shift;
-		
-		/**
-		 * A value from 0 to 2 which will change the 
-		 * checkstate assignments.
-		 * @param shift
-		 */
-		public TestCheckStateProvider(int shift) {
-			this.shift = shift;
-		}
-		
-		public boolean isChecked(Object element) {
-			super.isChecked(element);
-			return shouldBeChecked((TestElement)element, shift);
-		}
-
-		public boolean isGrayed(Object element) {
-			super.isGrayed(element);
-			return shouldBeGrayed((TestElement)element, shift);
-		}
-	}
-	
-	/**
-	 * A sorter for TestElements.
-	 * @since 3.5
-	 */
-	public static final class Sorter extends ViewerSorter {
-		public int compare(Viewer viewer, Object e1, Object e2) {
-			return constructNumber((TestElement)e1) - constructNumber((TestElement)e2);
-		}
-	}
-	
-	/**
-	 * A filter for TestElements.
-	 * @since 3.5
-	 */
-	public static final class Filter extends ViewerFilter {
-		public boolean select(Viewer viewer, Object parentElement, Object element) {
-			return (constructNumber((TestElement)element) % (NUMBER_OF_STATES * 2 - 1)) == (NUMBER_OF_STATES - 1);
-		}
-	}
-    /**
-     * @param te
-     * @return	a number between 0 and 3 based on <code>te</code>. 
-     * 	Given the same TestElement, this function always returns the
-     * 	same value.
-     */
-	public static int constructNumber(TestElement te) {
-		String id = te.getID();
-		int number = Integer.parseInt(id.substring(id.lastIndexOf('-') + 1)) + id.length();
-		return number % NUMBER_OF_STATES;
-	}
-	
-	/**
-	 * @param te
-	 * @param shift	a parameter to change all check states
-	 * 		to be different (use to simulate different
-	 * 		providers over time)
-	 * @return	true iff <code>te</code> should be checked
-	 */
-	public static boolean shouldBeChecked(TestElement te, int shift) {
-		return ((constructNumber(te) + shift) % NUMBER_OF_STATES) > 1;
-	}
-	
-	/**
-	 * @param te
-	 * @param shift	a parameter to change all check states
-	 * 		to be different (use to simulate different
-	 * 		providers over time)
-	 * @return	true iff <code>te</code> should be grayed
-	 */	
-	public static boolean shouldBeGrayed(TestElement te, int shift) {
-		return ((constructNumber(te) + shift) % NUMBER_OF_STATES) % 2 == 1;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTableViewerTest.java
deleted file mode 100644
index bae8bbf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTableViewerTest.java
+++ /dev/null
@@ -1,466 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.tests.viewers.CheckStateProviderTestsUtil.TestCheckStateProvider;
-import org.eclipse.jface.tests.viewers.CheckStateProviderTestsUtil.TestMethodsInvokedCheckStateProvider;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICheckStateProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-public class CheckboxTableViewerTest extends TableViewerTest {
-    public static class CheckboxTableTestLabelProvider extends
-            TestLabelProvider implements ITableLabelProvider {
-
-        public boolean fExtended = false;
-
-        public String getText(Object element) {
-            if (fExtended)
-                return providedString((String) element);
-            return element.toString();
-        }
-
-        public String getColumnText(Object element, int index) {
-            if (fExtended)
-                return providedString((TestElement) element);
-            return element.toString();
-        }
-
-        public Image getColumnImage(Object element, int columnIndex) {
-            return null;
-        }
-    }
-    public static class DeprecatedConstructor extends CheckboxTableViewerTest {
-		public DeprecatedConstructor(String name) {
-			super(name);
-		}
-    	
-	    protected StructuredViewer createViewer(Composite parent) {
-	    	TableViewer viewer = new CheckboxTableViewer(parent);
-	    	
-	        Table table = viewer.getTable();
-	        table.setLinesVisible(true);
-	        TableLayout layout = new TableLayout();
-	        table.setLayout(layout);
-	        table.setHeaderVisible(true);
-
-	        String headers[] = { "column 1 header", "column 2 header" };
-
-	        ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-	                new ColumnWeightData(100) };
-
-	        final TableColumn columns[] = new TableColumn[headers.length];
-
-	        for (int i = 0; i < headers.length; i++) {
-	            layout.addColumnData(layouts[i]);
-	            TableColumn tc = new TableColumn(table, SWT.NONE, i);
-	            tc.setResizable(layouts[i].resizable);
-	            tc.setText(headers[i]);
-	            columns[i] = tc;
-	        }
-
-	        viewer.setContentProvider(new TestModelContentProvider());
-	        viewer.setLabelProvider(new TableTestLabelProvider());
-	        return viewer;
-	    }
-	    
-		public void testViewerColumn() {
-	    	assertNull(getViewerColumn((TableViewer) fViewer, -1));
-			assertNotNull(getViewerColumn((TableViewer) fViewer, 0));
-			assertNotNull(getViewerColumn((TableViewer) fViewer, 1));
-				//due to CheckboxTableViewer.createTable, there is an
-				//extra column, so the next test looks for column 3
-				//instead of 2 -- a result of using deprecated code
-			assertNull(getViewerColumn((TableViewer) fViewer, 3));
-	    }
-    }
-    
-    public static class FactoryMethod extends CheckboxTableViewerTest {
-		public FactoryMethod(String name) {
-			super(name);
-		}
-    	
-	    protected StructuredViewer createViewer(Composite parent) {
-	    	TableViewer viewer = CheckboxTableViewer.newCheckList(parent, SWT.NONE);
-	    	
-	        Table table = viewer.getTable();
-	        table.setLinesVisible(true);
-	        TableLayout layout = new TableLayout();
-	        table.setLayout(layout);
-	        table.setHeaderVisible(true);
-
-	        String headers[] = { "column 1 header", "column 2 header" };
-
-	        ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-	                new ColumnWeightData(100) };
-
-	        final TableColumn columns[] = new TableColumn[headers.length];
-
-	        for (int i = 0; i < headers.length; i++) {
-	            layout.addColumnData(layouts[i]);
-	            TableColumn tc = new TableColumn(table, SWT.NONE, i);
-	            tc.setResizable(layouts[i].resizable);
-	            tc.setText(headers[i]);
-	            columns[i] = tc;
-	        }
-
-	        viewer.setContentProvider(new TestModelContentProvider());
-	        viewer.setLabelProvider(new TableTestLabelProvider());
-	        return viewer;
-	    }
-    }
-
-
-    public CheckboxTableViewerTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-        Table table = new Table(parent, SWT.CHECK | SWT.BORDER);
-        table.setLinesVisible(true);
-        TableLayout layout = new TableLayout();
-        table.setLayout(layout);
-        table.setHeaderVisible(true);
-
-        String headers[] = { "column 1 header", "column 2 header" };
-
-        ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-                new ColumnWeightData(100) };
-
-        final TableColumn columns[] = new TableColumn[headers.length];
-
-        for (int i = 0; i < headers.length; i++) {
-            layout.addColumnData(layouts[i]);
-            TableColumn tc = new TableColumn(table, SWT.NONE, i);
-            tc.setResizable(layouts[i].resizable);
-            tc.setText(headers[i]);
-            columns[i] = tc;
-        }
-
-        TableViewer viewer = new CheckboxTableViewer(table);
-        viewer.setContentProvider(new TestModelContentProvider());
-        viewer.setLabelProvider(new TableTestLabelProvider());
-        return viewer;
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(CheckboxTableViewerTest.class);
-    }
-
-    public void testCheckAllElements() {
-        CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-        ctv.setAllChecked(true);
-        assertTrue(ctv.getChecked(fRootElement.getFirstChild()));
-        assertTrue(ctv.getChecked(fRootElement.getLastChild()));
-        ctv.setAllChecked(false);
-        assertTrue(!ctv.getChecked(fRootElement.getFirstChild()));
-        assertTrue(!ctv.getChecked(fRootElement.getLastChild()));
-    }
-
-    public void testGrayAllElements() {
-        CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-        ctv.setAllGrayed(true);
-        assertTrue(ctv.getGrayed(fRootElement.getFirstChild()));
-        assertTrue(ctv.getGrayed(fRootElement.getLastChild()));
-        ctv.setAllGrayed(false);
-        assertTrue(!ctv.getGrayed(fRootElement.getFirstChild()));
-        assertTrue(!ctv.getGrayed(fRootElement.getLastChild()));
-    }
-
-    public void testGrayed() {
-        CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-        TestElement element = fRootElement.getFirstChild();
-
-        assertTrue(ctv.getGrayedElements().length == 0);
-        assertTrue(!ctv.getGrayed(element));
-
-        ctv.setGrayed(element, true);
-        assertTrue(ctv.getGrayedElements().length == 1);
-        assertTrue(ctv.getGrayed(element));
-
-        ctv.setGrayed(element, false);
-        assertTrue(ctv.getGrayedElements().length == 0);
-        assertTrue(!ctv.getGrayed(element));
-
-        ctv.setAllGrayed(false);
-    }
-
-    public void testGrayedElements() {
-        CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-        TestElement first = fRootElement.getFirstChild();
-        TestElement last = fRootElement.getLastChild();
-
-        assertTrue(ctv.getGrayedElements().length == 0);
-        assertTrue(!ctv.getGrayed(first));
-        assertTrue(!ctv.getGrayed(last));
-
-        ctv.setGrayed(first, true);
-        ctv.setGrayed(last, true);
-        Object[] elements = ctv.getGrayedElements();
-        assertTrue(elements.length == 2);
-        assertTrue(elements[0] == first);
-        assertTrue(elements[1] == last);
-
-        ctv.setGrayed(first, false);
-        ctv.setGrayed(last, false);
-        assertTrue(ctv.getGrayedElements().length == 0);
-
-        ctv.setAllGrayed(false);
-    }
-    
-    public void testWithoutCheckProvider() {
-    	//Check that without a provider, no exceptions are thrown
-    	CheckboxTableViewer ctv = (CheckboxTableViewer)fViewer;
-    	ctv.refresh();
-    }
-    
-    public void testCheckProviderInvoked() {
-    	//Check that a refresh successfully causes the provider's
-    	//setChecked and setGrayed methods to be invoked.
-    	CheckboxTableViewer ctv = (CheckboxTableViewer)fViewer;
-
-    	TestMethodsInvokedCheckStateProvider provider = new TestMethodsInvokedCheckStateProvider();
-    	
-    	ctv.setCheckStateProvider(provider);
-    	assertTrue("isChecked should be invoked on a refresh", (!provider.isCheckedInvokedOn.isEmpty()));
-    	assertTrue("isGrayed should be invoked on a refresh", (!provider.isGrayedInvokedOn.isEmpty()));
-
-    	provider.reset();
-    	ctv.refresh();
-    	assertTrue("isChecked should be invoked on a refresh", (!provider.isCheckedInvokedOn.isEmpty()));
-    	assertTrue("isGrayed should be invoked on a refresh", (!provider.isGrayedInvokedOn.isEmpty()));
-    }
-    
-    public void testCheckedFalseGrayedFalse() {
-    	testSpecificState(false, false);
-    }
-    
-    public void testCheckedFalseGrayedTrue() {
-    	testSpecificState(false, true);
-    }
-    
-    public void testCheckedTrueGrayedFalse() {
-    	testSpecificState(true, false);
-    }
-    
-    public void testCheckedTrueGrayedTrue() {
-    	testSpecificState(true, true);
-    }
-    
-    private void testSpecificState(final boolean isChecked, final boolean isGrayed) {
-    	CheckboxTableViewer ctv = (CheckboxTableViewer)fViewer;
-    	
-    	ctv.setCheckStateProvider(new ICheckStateProvider() {
-			public boolean isChecked(Object element)	{	return isChecked;	}
-			public boolean isGrayed(Object element) 	{	return isGrayed;	}
-    	});
-    	
-    	TableItem item = ctv.getTable().getItem(0);
-    	
-    	assertEquals(item.getChecked(), isChecked);
-    	assertEquals(item.getGrayed(), isGrayed);
-    }
-    
-    public void testSetCheckProviderRefreshesItems() {
-    	CheckboxTableViewer ctv = (CheckboxTableViewer)fViewer;
-    	
-    	//First provider
-    	//Should cause visible items' check state to adhere to provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(0));
-    	
-    	//Check that all states are properly set
-    	checkAllStates("Testing checkbox state after refresh", ctv, 0);
-    	
-    	//Remove the check state provider
-    	ctv.setCheckStateProvider(null);
-    	
-    	//Test that an update doesn't fail
-    	TestElement update = fRootElement.getChildAt(5);
-    	ctv.update(update, null);
-    	
-    	//Test that a refresh doesn't fail
-    	ctv.refresh();
-    }
-    
-    public void testCheckProviderWithSorter() {
-    	CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-    	
-    	ctv.setSorter(new CheckStateProviderTestsUtil.Sorter());
-    	
-    	//First provider
-    	//Should cause visible items' check state adhere to provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(0));
-    	
-    	//Check that all states are properly set
-    	checkAllStates("Testing checkbox state with a sorter", ctv, 0);
-    }
-    
-    public void testCheckProviderWithFilter() {
-    	CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-    	
-    	final CheckStateProviderTestsUtil.Filter filter = new CheckStateProviderTestsUtil.Filter();
-		ctv.addFilter(filter);
-    	
-    	//First provider
-		//Should cause visible items' check state adhere to provider
-    	final TestCheckStateProvider checkStateProvider = new TestCheckStateProvider(0);
-		ctv.setCheckStateProvider(checkStateProvider);
-    	
-    	//Check that all states are properly set
-    	checkAllStates("Testing checkbox state with a sorter", ctv, 0);
-    	
-    	//Check that the provider is only invoked on elements which pass the filter
-    	for (Iterator i = checkStateProvider.isCheckedInvokedOn.iterator(); i.hasNext();) {
-			TestElement element = (TestElement) i.next();
-			assertTrue("The check provider should not be invoked on elements which did not get through the filter", filter.select(ctv, null, element));
-		}
-    	
-    	for (Iterator i = checkStateProvider.isGrayedInvokedOn.iterator(); i.hasNext();) {
-			TestElement element = (TestElement) i.next();
-			assertTrue("The check provider should not be invoked on elements which did not get through the filter", filter.select(ctv, null, element));
-		}
-    }
-    
-    public void testCheckProviderUpdate() {
-    	CheckboxTableViewer ctv = (CheckboxTableViewer)fViewer;
-    	
-    	//First provider
-    	//Should cause visible items' check state to adhere to provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(0));
-    	
-    	checkAllStates("Testing checkbox state after refresh", ctv, 0);
-    	
-    	//Put in a new check state provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(1));
-    	
-    	//Check that setting a new check provider caused a refresh,
-    	//and thus all the items have their new appropriate check
-    	//states.
-    	checkAllStates("Testing checkbox state after refresh", ctv, 1);
-    }
-
-	private void checkAllStates(String comment, CheckboxTableViewer ctv, int shift) {
-		TableItem[] items = ctv.getTable().getItems();
-    	
-    	//Check that actual states were set properly
-    	for (int i = 0; i < items.length; i++) {
-			TableItem item = items[i];
-    		TestElement element = (TestElement)items[i].getData();
-    		
-    		checkState(comment, element, item, shift);	//check in Table
-    		checkState(comment, element, ctv, shift);	//check in Viewer
-		}
-	}
-    
-	/**
-	 * Invokes the appropriate asserts to verify the state
-	 * of a TestElement.
-	 * @param te
-	 * @param viewer	the viewer <code>te</code> is in.
-	 * @param shift 	the shift parameter being used
-	 */
-	private void checkState(String comment, TestElement te, CheckboxTableViewer viewer, int shift) {
-		assertEquals(comment, CheckStateProviderTestsUtil.shouldBeChecked(te, shift), viewer.getChecked(te));
-		assertEquals(comment, CheckStateProviderTestsUtil.shouldBeGrayed(te, shift), viewer.getGrayed(te));
-	}
-	
-	/**
-	 * Invokes the appropriate asserts to verify the state
-	 * of a TestElement's associated TableItem
-	 * @param te
-	 * @param item	the item representing <code>te</code>
-	 * @param shift	the shift parameter being used
-	 */
-	private void checkState(String comment, TestElement te, TableItem item, int shift) {
-		assertEquals("Wrong checkstate: " + comment, CheckStateProviderTestsUtil.shouldBeChecked(te, shift), item.getChecked());
-		assertEquals("Wrong checkstate: " + comment, CheckStateProviderTestsUtil.shouldBeGrayed(te, shift), item.getGrayed());
-	}
-	
-	public void testGetCheckedElements() {
-		CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-		
-		TestElement[] children = fRootElement.getChildren();
-		
-		List checked = new ArrayList((children.length + 1) / 2);
-		
-		for (int i = 0; i < children.length; i+=2) {
-			ctv.setChecked(children[i], true);
-			checked.add(children[i]);
-		}
-		
-		Object[] actuallyChecked = ctv.getCheckedElements();
-		
-		for (int i = 0; i < actuallyChecked.length; i++) {
-			assertTrue("getCheckedElements should include all checked elements", checked.remove(actuallyChecked[i]));
-		}
-		
-		assertTrue("getCheckedElements should not include any unchecked elements", checked.isEmpty());
-	}
-	
-	public void testSetCheckedElements() {
-		CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-		
-		TestElement[] children = fRootElement.getChildren();
-		
-		List toCheck = new ArrayList((children.length + 1) / 2);
-		
-		for (int i = 0; i < children.length; i+=2) {
-			toCheck.add(children[i]);
-		}
-		
-		ctv.setCheckedElements(toCheck.toArray());
-		
-		for (int i = 0; i < children.length; i++) {
-			if(i % 2 == 0) {
-				assertTrue("an element passed through setCheckedElements should be checked", ctv.getChecked(children[i]));
-			} else {
-				assertFalse("an element not passed through setCheckedElements should be unchecked", ctv.getChecked(children[i]));
-			}
-		}
-	}
-	
-	public void testSetGrayedElements() {
-		CheckboxTableViewer ctv = (CheckboxTableViewer) fViewer;
-		
-		TestElement[] children = fRootElement.getChildren();
-		
-		List toGray = new ArrayList((children.length + 1) / 2);
-		
-		for (int i = 0; i < children.length; i+=2) {
-			toGray.add(children[i]);
-		}
-		
-		ctv.setGrayedElements(toGray.toArray());
-		
-		for (int i = 0; i < children.length; i++) {
-			if(i % 2 == 0) {
-				assertTrue("an element passed through setGrayedElements should be grayed", ctv.getGrayed(children[i]));
-			} else {
-				assertFalse("an element not passed through setGrayedElements should not be grayed", ctv.getGrayed(children[i]));
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerMissingTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerMissingTest.java
deleted file mode 100644
index a49f3c5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerMissingTest.java
+++ /dev/null
@@ -1,77 +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.jface.tests.viewers;
-
-/**
- * Test with missing images.
- */
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-public class CheckboxTreeViewerMissingTest extends CheckboxTreeViewerTest {
-    private static Image testImage;
-
-    public static Image getMissingImage() {
-        if (testImage == null)
-            testImage = ImageDescriptor.createFromFile(TestLabelProvider.class,
-                    "images/missing.gif").createImage();
-        return testImage;
-    }
-
-    public static class CheckboxMissingTableTestLabelProvider extends
-            CheckboxTreeViewerTest.CheckboxTableTestLabelProvider implements
-            ITableLabelProvider {
-        /*
-         * (non-Javadoc)
-         * 
-         * @see org.eclipse.jface.tests.viewers.StructuredViewerTest.TestLabelProvider#getImage(java.lang.Object)
-         */
-        public Image getImage(Object element) {
-            return getMissingImage();
-        }
-
-    }
-
-    public CheckboxTreeViewerMissingTest(String name) {
-        super(name);
-    }
-
-    /*
-     *  (non-Javadoc)
-     * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#getTestLabelProvider()
-     */
-    public IBaseLabelProvider getTestLabelProvider() {
-        return new CheckboxMissingTableTestLabelProvider();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#tearDown()
-     */
-    public void tearDown() {
-        super.tearDown();
-        if (testImage != null) {
-            testImage.dispose();
-            testImage = null;
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testLabelProvider()
-     */
-    public void testLabelProvider() {
-        super.testLabelProvider();
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerTest.java
deleted file mode 100644
index e3d2b58..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/CheckboxTreeViewerTest.java
+++ /dev/null
@@ -1,433 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.tests.viewers.CheckStateProviderTestsUtil.TestCheckStateProvider;
-import org.eclipse.jface.tests.viewers.CheckStateProviderTestsUtil.TestMethodsInvokedCheckStateProvider;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TreeItem;
-
-public class CheckboxTreeViewerTest extends TreeViewerTest {
-    public static class CheckboxTableTestLabelProvider extends
-            TestLabelProvider implements ITableLabelProvider {
-
-        public boolean fExtended = false;
-
-        public String getText(Object element) {
-            if (fExtended)
-                return providedString((String) element);
-            return element.toString();
-        }
-
-        public String getColumnText(Object element, int index) {
-            if (fExtended)
-                return providedString((TestElement) element);
-            return element.toString();
-        }
-
-        public Image getColumnImage(Object element, int columnIndex) {
-            return null;
-        }
-    }
-
-    public CheckboxTreeViewerTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-        fTreeViewer = new CheckboxTreeViewer(parent);
-        fTreeViewer.setContentProvider(new TestModelContentProvider());
-        return fTreeViewer;
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(CheckboxTreeViewerTest.class);
-    }
-
-    public void testCheckSubtree() {
-        CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-        TestElement first = fRootElement.getFirstChild();
-        TestElement firstfirst = first.getFirstChild();
-        TestElement firstfirstfirst = firstfirst.getFirstChild();
-        fTreeViewer.expandToLevel(firstfirst, 0);
-
-        ctv.setSubtreeChecked(first, true);
-        assertTrue(ctv.getChecked(firstfirst));
-        ctv.setSubtreeChecked(first, false);
-        assertTrue(!ctv.getChecked(firstfirst));
-
-        // uncheck invisible subtree
-        assertTrue(ctv.setSubtreeChecked(firstfirstfirst, false));
-        assertTrue(!ctv.getChecked(firstfirstfirst));
-    }
-
-    public void testGrayed() {
-        CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-        TestElement element = fRootElement.getFirstChild();
-
-        assertTrue(ctv.getGrayedElements().length == 0);
-        assertTrue(!ctv.getGrayed(element));
-
-        ctv.setGrayed(element, true);
-        assertTrue(ctv.getGrayedElements().length == 1);
-        assertTrue(ctv.getGrayed(element));
-
-        ctv.setGrayed(element, false);
-        assertTrue(ctv.getGrayedElements().length == 0);
-        assertTrue(!ctv.getGrayed(element));
-    }
-
-    public void testParentGrayed() {
-        CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-        TestElement first = fRootElement.getFirstChild();
-        TestElement firstfirst = first.getFirstChild();
-        TestElement firstfirstfirst = firstfirst.getFirstChild();
-        ctv.expandToLevel(firstfirstfirst, 0);
-
-        ctv.setParentsGrayed(firstfirstfirst, true);
-        Object[] elements = ctv.getGrayedElements();
-        assertTrue(elements.length == 3);
-        for (int i = 0; i < elements.length; ++i) {
-            assertTrue(ctv.getGrayed(elements[i]));
-        }
-
-        assertTrue(elements[0] == first);
-        assertTrue(elements[1] == firstfirst);
-        assertTrue(elements[2] == firstfirstfirst);
-        ctv.setParentsGrayed(firstfirstfirst, false);
-    }
-    
-    public void testWithoutCheckProvider() {
-    	//Check that without a provider, no exceptions are thrown
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer)fViewer;
-    	ctv.expandAll();
-    	ctv.refresh();
-    }
-    
-    public void testCheckProviderInvoked() {
-    	//Check that a refresh successfully causes the provider's
-    	//setChecked and setGrayed methods to be invoked.
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer)fViewer;
-    	
-    	TestMethodsInvokedCheckStateProvider provider = new TestMethodsInvokedCheckStateProvider();
-    	
-    	ctv.setCheckStateProvider(provider);
-    	assertTrue("isChecked should be invoked on a refresh", (!provider.isCheckedInvokedOn.isEmpty()));
-    	assertTrue("isGrayed should be invoked on a refresh", (!provider.isGrayedInvokedOn.isEmpty()));
-    	
-    	provider.reset();
-    	ctv.refresh();
-    	assertTrue("isChecked should be invoked on a refresh", (!provider.isCheckedInvokedOn.isEmpty()));
-    	assertTrue("isGrayed should be invoked on a refresh", (!provider.isGrayedInvokedOn.isEmpty()));
-
-    }
-    
-    public void testCheckProviderLazilyInvoked() {
-    	//Check that a refresh successfully causes the provider's
-    	//setChecked and setGrayed methods to be invoked.
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer)fViewer;
-    	
-    	TestMethodsInvokedCheckStateProvider provider = new TestMethodsInvokedCheckStateProvider();
-    	
-    	ctv.setCheckStateProvider(provider);
-    	ctv.refresh();
-    	
-    	TestElement[] expected = fRootElement.getChildren();
-    	
-    	for (Iterator i = provider.isCheckedInvokedOn.iterator(); i.hasNext();) {
-			TestElement element = (TestElement) i.next();
-			boolean firstLevelElement = false;
-			for (int j = 0; j < expected.length && !firstLevelElement; j++) {
-				firstLevelElement = element.equals(expected[j]);
-			}
-			assertTrue("The check provider should only be invoked with visible elements", firstLevelElement);
-		}
-    	
-    	for (Iterator i = provider.isGrayedInvokedOn.iterator(); i.hasNext();) {
-			TestElement element = (TestElement) i.next();
-			boolean firstLevelElement = false;
-			for (int j = 0; j < expected.length && !firstLevelElement; j++) {
-				firstLevelElement = element.equals(expected[j]);
-			}
-			assertTrue("The check provider should only be invoked with visible elements", firstLevelElement);
-		}
-    }
-    
-    public void testCheckedFalseGrayedFalse() {
-    	testSpecificState(false, false);
-    }
-    
-    public void testCheckedFalseGrayedTrue() {
-    	testSpecificState(false, true);
-    }
-    
-    public void testCheckedTrueGrayedFalse() {
-    	testSpecificState(true, false);
-    }
-    
-    public void testCheckedTrueGrayedTrue() {
-    	testSpecificState(true, true);
-    }
-    
-    private void testSpecificState(final boolean isChecked, final boolean isGrayed) {
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer)fViewer;
-    	
-    	ctv.setCheckStateProvider(new ICheckStateProvider() {
-			public boolean isChecked(Object element)	{	return isChecked;	}
-			public boolean isGrayed(Object element) 	{	return isGrayed;	}
-    	});
-    	
-    	TreeItem item = ctv.getTree().getItem(0);
-    	
-    	assertEquals(item.getChecked(), isChecked);
-    	assertEquals(item.getGrayed(), isGrayed);
-    }
-    
-    public void testSetCheckProviderRefreshesItems() {
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-    	
-    	//First provider
-    	//Should cause visible items' check state adhere to provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(0));
-    	
-    	ctv.expandAll();
-    	
-    	//Check that all states are properly set
-    	checkAllStates("Testing checkbox state after refresh", ctv, 0);
-    	
-    	//Remove the check state provider
-    	ctv.setCheckStateProvider(null);
-    	
-    	//Test that an update doesn't fail
-    	TestElement update = fRootElement.getFirstChild().getChildAt(5);
-    	ctv.update(update, null);
-    	
-    	//Test that a refresh doesn't fail
-    	ctv.refresh();
-    }
-    
-    public void testCheckProviderWithSorter() {
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-    	
-    	ctv.setSorter(new CheckStateProviderTestsUtil.Sorter());
-    	
-    	//First provider
-    	//Should cause visible items' check state adhere to provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(0));
-    	ctv.expandAll();
-    	
-    	//Check that all states are properly set
-    	checkAllStates("Testing checkbox state with a sorter", ctv, 0);
-    }
-    
-    public void testCheckProviderWithFilter() {
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-    	
-    	final CheckStateProviderTestsUtil.Filter filter = new CheckStateProviderTestsUtil.Filter();
-		ctv.addFilter(filter);
-    	
-    	//First provider
-		//Should cause visible items' check state adhere to provider
-    	final TestCheckStateProvider checkStateProvider = new TestCheckStateProvider(0);
-		ctv.setCheckStateProvider(checkStateProvider);
-    	ctv.expandAll();
-    	
-    	//Check that all states are properly set
-    	checkAllStates("Testing checkbox state with a sorter", ctv, 0);
-    	
-    	//Check that the provider is only invoked on elements which pass the filter
-    	for (Iterator i = checkStateProvider.isCheckedInvokedOn.iterator(); i.hasNext();) {
-			TestElement element = (TestElement) i.next();
-			assertTrue("The check provider should not be invoked on elements which did not get through the filter", filter.select(ctv, null, element));
-		}
-    	
-    	for (Iterator i = checkStateProvider.isGrayedInvokedOn.iterator(); i.hasNext();) {
-			TestElement element = (TestElement) i.next();
-			assertTrue("The check provider should not be invoked on elements which did not get through the filter", filter.select(ctv, null, element));
-		}
-    }
-
-    public void testSetNewCheckProvider() {
-    	CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-    	
-    	//First provider
-    	//Should cause visible items' check state to adhere to provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(0));
-    	ctv.expandAll();
-    	
-    	checkAllStates("Testing checkbox state after first refresh", ctv, 0);
-    	
-    	//Put in a new check state provider
-    	ctv.setCheckStateProvider(new TestCheckStateProvider(1));
-    	
-    	//Check that setting a new check provider caused a refresh,
-    	//and thus all the items have their new appropriate check
-    	//states.
-    	checkAllStates("Testing checkbox state after setting new check provider", ctv, 1);
-    }
-    
-    private void collectElementsInBranch(TreeItem item, Collection treeItems, Collection testElements) {
-    	treeItems.add(item);
-    	testElements.add(item.getData());
-    	TreeItem[] children = item.getItems();
-    	for (int i = 0; i < children.length; i++) {
-    		collectElementsInBranch(children[i], treeItems, testElements);
-    	}
-    }
-    
-    private void checkAllStates(String comment, CheckboxTreeViewer ctv, int shift) {
-    	List items = new ArrayList();
-    	List elements = new ArrayList();
-    	collectElementsInBranch(ctv.getTree().getItem(0), items, elements);
-    	
-    	//Check that actual states were set properly
-    	for (Iterator i = items.iterator(), j = elements.iterator(); i.hasNext();) {
-    		TreeItem item = (TreeItem)i.next();
-    		TestElement element = (TestElement)j.next();
-    		
-    		checkState(comment, element, item, shift);	//check in Tree
-    		checkState(comment, element, ctv, shift);	//check in Viewer
-    	}
-    }
-	
-	/**
-	 * Invokes the appropriate asserts to verify the state
-	 * of a TestElement.
-	 * @param te
-	 * @param viewer	the viewer <code>te</code> is in.
-	 * @param shift 	the shift parameter being used
-	 */
-	private void checkState(String comment, TestElement te, CheckboxTreeViewer viewer, int shift) {
-		assertEquals(comment, CheckStateProviderTestsUtil.shouldBeChecked(te, shift), viewer.getChecked(te));
-		assertEquals(comment, CheckStateProviderTestsUtil.shouldBeGrayed(te, shift), viewer.getGrayed(te));
-	}
-	
-	/**
-	 * Invokes the appropriate asserts to verify the state
-	 * of a TestElement's associated TreeItem
-	 * @param te
-	 * @param item	the item representing <code>te</code>
-	 * @param shift	the shift parameter being used
-	 */
-	private void checkState(String comment, TestElement te, TreeItem item, int shift) {
-		assertEquals("Wrong checkstate: " + comment, CheckStateProviderTestsUtil.shouldBeChecked(te, shift), item.getChecked());
-		assertEquals("Wrong checkstate: " + comment, CheckStateProviderTestsUtil.shouldBeGrayed(te, shift), item.getGrayed());
-	}
-	
-	public void testGetCheckedElements() {
-		CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-		
-		TestElement[] children = fRootElement.getChildren();
-		
-		List checked = new ArrayList((children.length + 1) / 2);
-		
-		for (int i = 0; i < children.length; i+=2) {
-			ctv.setChecked(children[i], true);
-			checked.add(children[i]);
-		}
-		
-		Object[] actuallyChecked = ctv.getCheckedElements();
-		
-		for (int i = 0; i < actuallyChecked.length; i++) {
-			assertTrue("getCheckedElements should include all checked elements", checked.remove(actuallyChecked[i]));
-		}
-		
-		assertTrue("getCheckedElements should not include any unchecked elements", checked.isEmpty());
-	}
-
-	public void testSetCheckedElements() {
-		CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-		
-		TestElement[] children = fRootElement.getChildren();
-		
-		List toCheck = new ArrayList((children.length + 1) / 2);
-		
-		for (int i = 0; i < children.length; i+=2) {
-			toCheck.add(children[i]);
-		}
-		
-		ctv.setCheckedElements(toCheck.toArray());
-		
-		for (int i = 0; i < children.length; i++) {
-			if(i % 2 == 0) {
-				assertTrue("an element passed through setCheckedElements should be checked", ctv.getChecked(children[i]));
-			} else {
-				assertFalse("an element not passed through setCheckedElements should be unchecked", ctv.getChecked(children[i]));
-			}
-		}
-	}
-	
-	public void testSetGrayedElements() {
-		CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-		
-		TestElement[] children = fRootElement.getChildren();
-		
-		List toGray = new ArrayList((children.length + 1) / 2);
-		
-		for (int i = 0; i < children.length; i+=2) {
-			toGray.add(children[i]);
-		}
-		
-		ctv.setGrayedElements(toGray.toArray());
-		
-		for (int i = 0; i < children.length; i++) {
-			if(i % 2 == 0) {
-				assertTrue("an element passed through setGrayedElements should be grayed", ctv.getGrayed(children[i]));
-			} else {
-				assertFalse("an element not passed through setGrayedElements should not be grayed", ctv.getGrayed(children[i]));
-			}
-		}
-	}
-	
-	public void testSetAllChecked() {
-		CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-		
-		ctv.expandToLevel(2);
-		
-		ctv.setAllChecked(true);
-		Object[] expandedElements = ctv.getExpandedElements();
-		
-		for (int i = 0; i < expandedElements.length; i++) {
-			assertTrue("all expanded items should be checked", ctv.getChecked(expandedElements[i]));
-		}
-		
-		ctv.setAllChecked(false);
-		
-		for (int i = 0; i < expandedElements.length; i++) {
-			assertFalse("all expanded items should be unchecked", ctv.getChecked(expandedElements[i]));
-		}
-	}
-	
-	public void testSetGrayChecked() {
-		CheckboxTreeViewer ctv = (CheckboxTreeViewer) fViewer;
-		
-		TestElement[] children = fRootElement.getChildren();
-		
-		ctv.setGrayChecked(children[0], true);
-		ctv.setGrayChecked(children[1], false);
-	
-		assertTrue("an item invoked with setGrayChecked(true) should be checked", ctv.getChecked(children[0]));
-		assertTrue("an item invoked with setGrayChecked(true) should be grayed", ctv.getGrayed(children[0]));
-		
-		assertFalse("an item invoked with setGrayChecked(false) should be unchecked", ctv.getChecked(children[1]));
-		assertFalse("an item invoked with setGrayChecked(false) should not be grayed", ctv.getGrayed(children[1]));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerComparerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerComparerTest.java
deleted file mode 100644
index c45cc99..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerComparerTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Ruediger Herrmann and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Ruediger Herrmann <rherrmann@innoopract.com> - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.util.ILogger;
-import org.eclipse.jface.util.ISafeRunnableRunner;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.IElementComparer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public class ComboViewerComparerTest extends TestCase {
-
-	private Shell shell;
-
-	private StructuredViewer viewer;
-
-	private static final class TestElement {
-
-		private final String name;
-
-		public TestElement(final String name) {
-			this.name = name;
-		}
-
-		public String getName() {
-			return name;
-		}
-	}
-
-	public void testSetSelection() {
-		viewer.setContentProvider(new ArrayContentProvider());
-		viewer.setComparer(new IElementComparer() {
-			public boolean equals(final Object element1, final Object element2) {
-				TestElement testElement1 = (TestElement) element1;
-				TestElement testElement2 = (TestElement) element2;
-				return testElement1.getName().equals(testElement2.getName());
-			}
-
-			public int hashCode(final Object element) {
-				TestElement testElement = (TestElement) element;
-				return testElement.getName().hashCode();
-			}
-		});
-		viewer.setInput(new TestElement[] { new TestElement("a"),
-				new TestElement("b") });
-		// Select equal element with different identity
-		TestElement aElement = new TestElement("a");
-		viewer.setSelection(new StructuredSelection(aElement));
-		StructuredSelection sel = ((StructuredSelection) viewer.getSelection());
-		assertEquals(false, sel.isEmpty());
-		TestElement selectedElement = (TestElement) sel.getFirstElement();
-		assertEquals(aElement.getName(), selectedElement.getName());
-	}
-
-	protected void setUp() {
-		Policy.setLog(new ILogger() {
-			public void log(IStatus status) {
-				fail(status.getMessage());
-			}
-		});
-		SafeRunnable.setRunner(new ISafeRunnableRunner() {
-			public void run(ISafeRunnable code) {
-				try {
-					code.run();
-				} catch (Throwable th) {
-					throw new RuntimeException(th);
-				}
-			}
-		});
-		Display display = Display.getCurrent();
-		if (display == null) {
-			display = new Display();
-		}
-		shell = new Shell(display);
-		shell.setSize(500, 500);
-		shell.setLayout(new FillLayout());
-		viewer = createViewer(shell);
-		shell.open();
-	}
-
-	protected void tearDown() {
-		processEvents();
-		viewer = null;
-		if (shell != null) {
-			shell.dispose();
-			shell = null;
-		}
-	}
-
-	protected StructuredViewer createViewer(final Shell parent) {
-		return new ComboViewer(parent, SWT.NONE);
-	}
-
-	private void processEvents() {
-		if (shell != null && !shell.isDisposed()) {
-			Display display = shell.getDisplay();
-			if (display != null) {
-				while (display.readAndDispatch()) {
-					// loop until there are no more events to dispatch
-				}
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerTest.java
deleted file mode 100644
index c2a5cb1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComboViewerTest.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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @since 3.0
- */
-public class ComboViewerTest extends StructuredViewerTest {
-    public ComboViewerTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-        ComboViewer viewer = new ComboViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        return viewer;
-    }
-
-    protected int getItemCount() {
-        TestElement first = fRootElement.getFirstChild();
-        Combo list = (Combo) fViewer.testFindItem(first);
-        return list.getItemCount();
-    }
-
-    protected String getItemText(int at) {
-        Combo list = (Combo) fViewer.getControl();
-        return list.getItem(at);
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(ComboViewerTest.class);
-    }
-
-    /**
-     * TODO: Determine if this test is applicable to ComboViewer 
-     */
-    public void testInsertChild() {
-
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComparatorModelChange.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComparatorModelChange.java
deleted file mode 100644
index 4990d23..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ComparatorModelChange.java
+++ /dev/null
@@ -1,71 +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.jface.tests.viewers;
-
-import org.eclipse.jface.tests.viewers.ViewerComparatorTest.Team;
-import org.eclipse.jface.tests.viewers.ViewerComparatorTest.TeamMember;
-
-/**
- * @since 3.2
- *
- */
-public class ComparatorModelChange {
-    private int fKind;
-
-    private Team fParent;
-
-    private TeamMember[] fChildren;
-
-    public static final int KIND_MASK = 0x0F;
-
-    public static final int INSERT = 1;
-
-    public static final int REMOVE = 2;
-
-    public static final int STRUCTURE_CHANGE = 3;
-
-    public static final int NON_STRUCTURE_CHANGE = 4;
-
-    public static final int REVEAL = 16;
-
-    public static final int SELECT = 32;
-
-    public ComparatorModelChange(int kind, Team parent) {
-        this(kind, parent, new TeamMember[0]);
-    }
-
-    public ComparatorModelChange(int kind, Team parent, TeamMember[] children) {
-        fKind = kind;
-        fParent = parent;
-        fChildren = children;
-    }
-
-    public ComparatorModelChange(int kind, Team parent, TeamMember child) {
-        this(kind, parent, new TeamMember[] { child });
-    }
-
-    public TeamMember[] getChildren() {
-        return fChildren;
-    }
-
-    public int getKind() {
-        return fKind & KIND_MASK;
-    }
-
-    public int getModifiers() {
-        return fKind & ~KIND_MASK;
-    }
-
-    public Team getParent() {
-        return fParent;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/IComparatorModelListener.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/IComparatorModelListener.java
deleted file mode 100644
index 6707319..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/IComparatorModelListener.java
+++ /dev/null
@@ -1,22 +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.jface.tests.viewers;
-
-/**
- * @since 3.2
- *
- */
-public interface IComparatorModelListener {
-
-	public void modelChanged(ComparatorModelChange change);
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ITestModelListener.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ITestModelListener.java
deleted file mode 100644
index dd343e2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ITestModelListener.java
+++ /dev/null
@@ -1,15 +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.jface.tests.viewers;
-
-public interface ITestModelListener {
-    public void testModelChanged(TestModelChange change);
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/LazySortedCollectionTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/LazySortedCollectionTest.java
deleted file mode 100644
index efdc29b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/LazySortedCollectionTest.java
+++ /dev/null
@@ -1,557 +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.jface.tests.viewers;
-
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.TreeSet;
-
-import junit.framework.Assert;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.viewers.deferred.LazySortedCollection;
-
-/**
- * @since 3.1
- */
-public class LazySortedCollectionTest extends TestCase {
-    
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(LazySortedCollectionTest.class);
-    }
-    
-    public static Test suite() {
-        return new TestSuite(LazySortedCollectionTest.class);
-    }
-    
-    private TestComparator comparator;
-    private TestComparator comparisonComparator;
-    
-    // All operations will be done on both collections -- after each operation, the result
-    // will be compared
-    private LazySortedCollection collection;
-    private TreeSet comparisonCollection;
-
-    /**
-     * Please don't add or remove from this set -- we rely on the exact insertion order
-     * to get full coverage from the removal tests.
-     */
-    private String[] se = new String[] {
-            "v00 aaaaaa",
-            "v01 apple",
-            "v02 booger",
-            "v03 car",
-            "v04 dog",
-            "v05 elephant",
-            "v06 fox",
-            "v07 goose",
-            "v08 hippie",
-            "v09 iguana",
-            "v10 junk",
-            "v11 karma",
-            "v12 lemon",
-            "v13 mongoose",
-            "v14 noodle",
-            "v15 opal",
-            "v16 pumpkin",
-            "v17 quirks",
-            "v18 resteraunt",
-            "v19 soap",
-            "v20 timmy",
-            "v21 ugly",
-            "v22 virus",
-            "v23 wigwam",
-            "v24 xerxes",
-            "v25 yellow",
-            "v26 zero"
-    };
-    
-    /**
-     * Please don't mess with the insertion order here or add or remove from this set -- 
-     * we rely on the exact order in order to get full coverage for the removal tests.
-     */
-    private String[] elements = new String[] {
-            se[19],
-            se[7],
-            se[6],
-            se[1],
-            se[20],
-            se[8],
-            se[0],
-            se[23],
-            se[17],
-            se[18],
-            se[24],
-            se[25],
-            se[10],
-            se[5],
-            se[15],
-            se[16],
-            se[21],
-            se[26],
-            se[22],
-            se[3],
-            se[9],
-            se[4],
-            se[11],
-            se[12],
-            se[13],
-            se[14],
-            se[2]  
-        };
-
-    
-    public static void printArray(Object[] array) {
-        for (int i = 0; i < array.length; i++) {
-            System.out.println("[" + i + "] = " + array[i]);
-        }
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-        System.out.println("--- " + getName());
-        
-        comparator = new TestComparator();
-        collection = new LazySortedCollection(comparator);
-        // Ensure a predictable tree structure
-        collection.enableDebug = true;
-     
-        comparisonComparator = new TestComparator();
-        comparisonCollection = new TreeSet(comparisonComparator);
-        
-        addAll(elements);
-        
-        super.setUp();
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        System.out.println("Comparisons required by lazy collection: " + comparator.comparisons);
-        System.out.println("Comparisons required by reference implementation: " + comparisonComparator.comparisons);
-        System.out.println("");
-        
-        super.tearDown();
-    }
-    
-    /**
-     * Computes the entries that are expected to lie in the given range. The result
-     * is sorted.
-     * 
-     * @param start
-     * @param length
-     * @return
-     * @since 3.1
-     */
-    private Object[] computeExpectedElementsInRange(int start, int length) {
-        int counter = 0;
-        
-        Iterator iter = comparisonCollection.iterator();
-        while(iter.hasNext() && counter < start) {
-            iter.next();
-            counter++;
-        }
-        
-        Object[] result = new Object[length];
-        for (int i = 0; i < result.length; i++) {
-            result[i] = iter.next(); 
-        }
-                
-        return result;
-    }
-
-    private void addAll(Object[] elements) {
-        collection.addAll(elements);
-        comparisonCollection.addAll(Arrays.asList(elements));
-    }
-    
-    private void add(Object toAdd) {
-        collection.add(toAdd);
-        comparisonCollection.add(toAdd);
-    }
-    
-    private void remove(Object toRemove) {
-        collection.remove(toRemove);
-        comparisonCollection.remove(toRemove);
-    }
-    
-    private void removeRange(int start, int length) {
-        collection.removeRange(start, length);
-        
-        Object[] expected = computeExpectedElementsInRange(start, length);
-
-        // Alternative remove implementation that removes one-at-a-time
-        for (int i = 0; i < expected.length; i++) {
-            comparisonCollection.remove(expected[i]);
-        }
-    }
-    
-    private void clear() {
-        collection.clear();
-        comparisonCollection.clear();
-    }
-    
-    /**
-     * Force the collection to sort all elements immediately.
-     * 
-     * @since 3.1
-     */
-    private void forceFullSort() {
-        queryRange(0, elements.length, true);
-    }
-    
-    private void assertContentsValid() {
-        queryRange(0, comparisonCollection.size(), false);
-        Assert.assertEquals(comparisonCollection.size(), collection.size());
-        Assert.assertEquals(comparisonCollection.isEmpty(), collection.isEmpty());
-    }
-    
-    private void assertIsPermutation(Object[] array1, Object[] array2) {
-        Object[] sorted1 = new Object[array1.length];
-        System.arraycopy(array1, 0, sorted1, 0, array1.length);
-        Arrays.sort(sorted1, new TestComparator());
-        
-        Object[] sorted2 = new Object[array2.length];
-        System.arraycopy(array2, 0, sorted2, 0, array2.length);
-        Arrays.sort(sorted2, new TestComparator());
-        
-        assertArrayEquals(sorted1, sorted2);
-    }
-
-    /**
-     * Queries the collection for the given range, and throws an assertation failure if the 
-     * result was unexpected. Assumes that the "elements" array was initially added and that nothing
-     * has been added or removed since.
-     * 
-     * @param start
-     * @param length
-     * @param sorted
-     * @since 3.1
-     */
-    private Object[] queryRange(int start, int length, boolean sorted) {
-        Object[] result = new Object[length];
-        
-        int returnValue = collection.getRange(result, start, sorted);
-        
-        Assert.assertEquals(returnValue, length);
-        
-        Object[] expectedResult = computeExpectedElementsInRange(start, length);
-        
-        if (sorted) {
-            // If the result is supposed to be sorted, it will match the expected
-            // result exactly
-            assertArrayEquals(expectedResult, result);
-        } else {
-            // Otherwise, the result merely needs to be a permutation of the
-            // expected result.
-            assertIsPermutation(result, expectedResult);
-        }
-        
-        collection.testInvariants();
-        
-        return result;
-    }
-    
-    private void assertArrayEquals(Object[] array1, Object[] array2) {
-        for (int i = 0; i < array1.length; i++) {
-
-            Assert.assertEquals(array1[i], array2[i]);
-        }        
-    }
-    
-    public void testComparisonCount() {
-        Assert.assertTrue("additions should not require any comparisons", comparator.comparisons == 0);
-        
-        queryRange(0, elements.length, false);
-
-        Assert.assertTrue("requesting the complete set of unsorted elements should not require any comparisons", comparator.comparisons == 0);
-    }
-    
-    /**
-     * Ensure that no comparisons are required for range queries once the collection is fully sorted
-     * 
-     * @since 3.1
-     */
-    public void testSortAll() {
-        // Test that sorting the entire array works
-        queryRange(0, elements.length, true);
-        
-        int comparisons = comparator.comparisons;
-        
-        // Ensure that subsequent operations require no comparisons
-        queryRange(elements.length - 10, 10, true);
-        queryRange(0, 10, false);
-        
-        Assert.assertEquals("Once the lazy collection is fully sorted, it should not require further comparisons", 
-                comparisons, comparator.comparisons);
-    }
-    
-    /**
-     * Tests LazySortedCollection.removeNode(int) when removing a leaf node
-     */
-    public void testRemoveLeafNode() {
-        forceFullSort();
-        remove(se[9]);
-        assertContentsValid();
-    }
-
-    /**
-     * Tests LazySortedCollection.removeNode(int) when removing a node with no left child
-     */
-    public void testRemoveNodeWithNoLeftChild() {
-        forceFullSort();
-        remove(se[23]);
-        assertContentsValid();
-    }
-
-    /**
-     * Tests LazySortedCollection.removeNode(int) when removing a node with no right child
-     * 
-     * @since 3.1
-     */
-    public void testRemoveNodeWithNoRightChild() {
-        forceFullSort();
-        remove(se[13]);
-        assertContentsValid();
-    }
-    
-    /**
-     * Tests LazySortedCollection.remove when removing the root node
-     * 
-     * @since 3.1
-     */
-    public void testRemoveRootNode() {
-        forceFullSort();
-        remove(se[19]);
-        assertContentsValid();
-    }
-
-    /**
-     * Tests LazySortedCollection.remove when the removal
-     * will require swapping with a non-leaf node. (The descendent with the closest value
-     * in the largest subtree has at least 1 child).
-     * 
-     * @since 3.1
-     */
-    public void testRemoveWhereSwappedNodeIsntLeaf() {
-        forceFullSort();
-        remove(se[14]);
-        assertContentsValid();
-    }
-    
-    /**
-     * Tests LazySortedCollection.remove when the removal
-     * will require swapping with a non-leaf node, and both the removed node and the swapped
-     * node contain unsorted children.
-     * 
-     * @since 3.1
-     */
-    public void testRemoveWithUnsortedSwap() {
-        // Ensure that we've sorted nodes 13 and 14 
-        queryRange(14, 1, true);
-        queryRange(13, 1, true);
-        
-        // Add some unsorted nodes that will become children of the node with value "v13 mongoose"
-        addAll(new String[] {"v13 n", "v13 l"});
-        // Ensure that the new nodes are pushed down to node 14 by querying its parent (currently at position 8)
-        queryRange(8, 1, true);
-        
-        // Add some unsorted nodes that will become children of the node with value "v14 noodle" 
-        addAll(new String[] {"v14 m", "v14 o"});
-        // Push down the unsorted nodes by querying for the parent of "v14 noodle" 
-        // (the parent is currently at position 7) 
-        queryRange(7, 1, true);
-        
-        // Now remove node with value "v14 noodle" -- this should swap it with the node "v13 mongoose", requiring
-        // both sets of unsorted children to be dealt with
-        
-        remove(se[14]);
-        assertContentsValid();
-    }
-    
-    /**
-     * Remove an element from an initially unsorted collection
-     * 
-     * @since 3.1
-     */
-    public void testRemoveFromUnsorted() {
-        remove(se[10]);
-        assertContentsValid();
-    }
-    
-    /**
-     * Remove the root from an initially-unsorted collection
-     * 
-     * @since 3.1
-     */
-    public void testRemoveRootFromUnsorted() {
-        remove(se[19]);
-        assertContentsValid();
-    }
-    
-    /**
-     * Ensure that removing an element that isn't in the collection is a no-op
-     * 
-     * @since 3.1
-     */
-    public void testRemoveUnknown() {
-        remove("some unknown element");
-        assertContentsValid();
-    }
-    
-    /**
-     * Tests that the swaps during removal don't mess up the internal hashmap.
-     * Perform a removal that will require a swap, add a new item, then
-     * remove the item that was previously swapped. If the hashmap was not updated,
-     * then the removed item may still be pointing to its old index and the 
-     * new item will be removed instead. 
-     * 
-     * @since 3.1
-     */
-    public void testRemovePreviouslySwappedNode() {
-        queryRange(0, elements.length, true);
-        remove(se[14]);
-        // Add a new item -- should reuse the same index used by the previous item
-        add("something new");
-        assertContentsValid();
-        remove(se[13]);
-        assertContentsValid();
-    }
-    
-    /**
-     * Remove all nodes using removeRange
-     * 
-     * @since 3.1
-     */
-    public void testRemoveFullRange() {
-        removeRange(0, se.length);
-        assertContentsValid();
-    }
-    
-    /**
-     * Remove a range that includes the start
-     * 
-     * @since 3.1
-     */
-    public void testRemoveFromStart() {
-        removeRange(0, se.length / 2);
-        assertContentsValid();
-    }
-    
-    /**
-     * Remove a range that includes the last node
-     * 
-     * @since 3.1
-     */
-    public void testRemoveFromEnd() {
-        int start = se.length / 2;
-        removeRange(start, se.length - start);
-        assertContentsValid();
-    }
-    
-    /**
-     * Remove a range that includes the root, but leaves nodes in both subtrees intact.
-     * 
-     * @since 3.1
-     */
-    public void testRemoveIncludingRoot() {
-        removeRange(14, 6);
-        assertContentsValid();
-    }
-    
-    /**
-     * Test boundary conditions: 
-     * 
-     * Tests moving an entire right subtree, and a left subtree including the tree itself
-     */
-    public void testRemoveRightSubtree() {
-        removeRange(9, 5);
-        assertContentsValid();
-    }
-
-    /**
-     * Test boundary conditions: Tests moving an entire left subtree
-     */
-    public void testRemoveLeftSubtree() {
-        removeRange(3, 4);
-        assertContentsValid();
-    }
-
-    /**
-     * Test boundary conditions: Tests moving an entire left subtree including the tree itself
-     */
-    public void testRemoveRightIncludingRoot() {
-        removeRange(3, 5);
-        assertContentsValid();
-    }
-    
-    public void testClear() {
-        clear();
-        assertContentsValid();
-    }
-    
-    public void testClearSorted() {
-        forceFullSort();
-        clear();
-        assertContentsValid();
-    }
-    
-    //    
-//    
-//    public static void testAdditions() {
-//        TestComparator comparator = new TestComparator();
-//        LazySortedCollection collection = new LazySortedCollection(comparator);
-//
-//        addSomeElements(collection);
-//        
-//        System.out.println("comparisons after add = " + comparator.comparisons);
-//        comparator.comparisons = 0;
-//        
-//        // Getfirst10Elements
-//        Object[] first10Elements = new Object[10];
-//        collection.getFirst(first10Elements, false);
-//        System.out.println("first 10 elements:");
-//        printArray(first10Elements);
-//        System.out.println("comparisons after getFirst = " + comparator.comparisons);
-//        comparator.comparisons = 0;
-//        
-//        collection.print();
-//        
-//        // remove the 10th element
-//        collection.remove(first10Elements[9]);
-//        
-//        collection.print();
-//
-////        
-////        collection.getFirst(first10Elements, true);
-////        System.out.println("first 10 elements (sorted):");
-////        printArray(first10Elements);
-////        System.out.println("comparisons after getFirst = " + comparator.comparisons);
-////        comparator.comparisons = 0;
-////        
-////        
-////        
-////        // get elements 8-13
-////        Object[] eightThrough14 = new Object[7];
-////        collection.getRange(eightThrough14, 8, false);
-////        System.out.println("elements 8-14:");
-////        printArray(eightThrough14);
-////        System.out.println("comparisons after 8-14 query = " + comparator.comparisons);
-////        comparator.comparisons = 0;
-//        
-//        collection.print();
-//    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerComparatorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerComparatorTest.java
deleted file mode 100644
index cf6b29b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerComparatorTest.java
+++ /dev/null
@@ -1,88 +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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @since 3.2
- *
- */
-public class ListViewerComparatorTest extends ViewerComparatorTest {
-
-	/**
-	 * @param name
-	 */
-	public ListViewerComparatorTest(String name) {
-		super(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-        ListViewer viewer = new ListViewer(parent);
-        viewer.setContentProvider(new TeamModelContentProvider());
-        viewer.setLabelProvider(new TeamModelLabelProvider());
-        return viewer;
-	}
-	
-	public void testViewerSorter(){
-		fViewer.setSorter(new ViewerSorter());
-		assertSortedResult(TEAM1_SORTED);
-	}
-	
-	public void testViewerSorterInsertElement(){
-		fViewer.setSorter(new ViewerSorter());
-		team1.addMember("Duong");
-		assertSortedResult(TEAM1_SORTED_WITH_INSERT);
-	}
-	
-	public void testViewerComparator(){
-		fViewer.setComparator(new ViewerComparator());
-		assertSortedResult(TEAM1_SORTED);
-	}
-	
-	public void testViewerComparatorInsertElement(){
-		fViewer.setComparator(new ViewerComparator());
-		team1.addMember("Duong");
-		assertSortedResult(TEAM1_SORTED_WITH_INSERT);
-	}
-	
-	private void assertSortedResult(String[] expected){
-		String[] items = getListViewer().getList().getItems();
-		for (int i = 0; i < items.length; i++){
-			String item = items[i];
-			assertEquals("Item not expected.  actual=" + item + " expected=", expected[i], item);
-		}
-	}
-	
-	protected void setInput() {
-		fViewer.setInput(team1);
-	}
-	
-	protected ListViewer getListViewer(){
-		return (ListViewer)fViewer;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(ListViewerComparatorTest.class);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerRefreshTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerRefreshTest.java
deleted file mode 100644
index e1d3ac3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerRefreshTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 Brad Reynolds.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Brad Reynolds - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-public class ListViewerRefreshTest extends TestCase {
-	/**
-	 * Used for viewing the UI. Set to 0 if not wanting to see the UI.
-	 */
-	private static final int DELAY = 0;
-
-	private Shell shell = null;
-
-	private Label label = null;
-
-	private ListViewer viewer = null;
-
-	private ArrayList input = null;
-
-	protected void setUp() throws Exception {
-		shell = new Shell();
-		shell.setSize(400, 200);
-		shell.setLayout(new FillLayout());
-		label = new Label(shell, SWT.WRAP);
-		viewer = new ListViewer(shell);
-		input = new ArrayList();
-
-		for (int i = 0; i < 50; i++) {
-			input.add("item " + i); //$NON-NLS-1$
-		}
-
-		viewer.setContentProvider(new ContentProvider());
-		viewer.setInput(input);
-		shell.layout();
-		shell.open();
-	}
-
-	/**
-	 * Asserts the ability to refresh without a selection and preserve the
-	 * scrolled to position.
-	 * 
-	 * @throws Exception
-	 */
-	public void testNoSelectionRefresh() throws Exception {
-		shell.setText("Lost Scrolled Position Test"); //$NON-NLS-1$
-		readAndDispatch();
-
-		run("Scrolled to position 30.", new Runnable() { //$NON-NLS-1$
-					public void run() {
-						viewer.reveal(input.get(30));
-					}
-				});
-
-		run("Refreshed viewer without a selection.", new Runnable() { //$NON-NLS-1$
-					public void run() {
-						viewer.refresh();
-					}
-				});
-
-		// BUG: The top index should not be the first item.
-		assertTrue(viewer.getList().getTopIndex() != 0);
-	}
-
-	/**
-	 * Asserts the ability to refresh with a selection and preserve the scrolled
-	 * to position.
-	 * 
-	 * @throws Exception
-	 */
-	public void testSelectionRefresh() throws Exception {
-		shell.setText("Preserved Scrolled Position Test"); //$NON-NLS-1$
-		readAndDispatch();
-
-		run("Setting selection to index 30.", new Runnable() { //$NON-NLS-1$
-					public void run() {
-						viewer.setSelection(new StructuredSelection(input
-								.get(30)));
-					}
-				});
-		
-		// Ensure that to index is 0
-		viewer.getList().setTopIndex(0);
-		
-		run("Refreshed viewer with selection.", new Runnable() { //$NON-NLS-1$
-					public void run() {
-						viewer.refresh();
-					}
-				});
-		
-		// Checking that the viewer is not scrolling
-		assertTrue(viewer.getList().getTopIndex() == 0);
-		
-		viewer.getList().showSelection();
-		
-		assertTrue(viewer.getList().getTopIndex() != 0);
-	}
-	
-	/**
-	 * Runs the runnable and displays the description.
-	 * 
-	 * @param description
-	 * @param runnable
-	 */
-	private void run(String description, Runnable runnable) {
-		runnable.run();
-		label.setText(description);
-
-		readAndDispatch();
-	}
-
-	/**
-	 * Flush UI events and {@link #DELAY delays}.
-	 */
-	private void readAndDispatch() {
-		Display display = Display.getCurrent();
-		while(display.readAndDispatch());
-
-		try {
-			Thread.sleep(DELAY);
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		}
-	}
-
-	private class ContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object inputElement) {
-			return ((List) inputElement).toArray();
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerTest.java
deleted file mode 100644
index 96fd29e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ListViewerTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - test case for bug 157309, 177619
- *     Brad Reynolds - test case for bug 141435
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.util.Util;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.List;
-
-public class ListViewerTest extends StructuredViewerTest {
-
-    public ListViewerTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-        ListViewer viewer = new ListViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        return viewer;
-    }
-
-    protected int getItemCount() {
-        TestElement first = fRootElement.getFirstChild();
-        List list = (List) fViewer.testFindItem(first);
-        return list.getItemCount();
-    }
-
-    protected String getItemText(int at) {
-        List list = (List) fViewer.getControl();
-        return list.getItem(at);
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(ListViewerTest.class);
-    }
-    
-    public void testInsert() {
-    	ListViewer v = ((ListViewer)fViewer);
-    	TestElement element = new TestElement(fModel, fRootElement);
-    	v.insert(element, 1);
-    	assertSame("test insert", element, v.getElementAt(1));
-    	assertEquals("test insert", element.toString(), v.getList().getItem(1));
-    	
-    	v.addFilter(new ViewerFilter() {
-
-			public boolean select(Viewer viewer, Object parentElement, Object element) {
-				return true;
-			}
-    	});
-    	
-    	TestElement element1 = new TestElement(fModel, fRootElement);
-    	v.insert(element1, 1);
-    	assertNotSame("test insert", element1, v.getElementAt(1));
-    	
-    	v.setFilters(new ViewerFilter[0]);
-    	v.remove(element);
-    	v.remove(element1);
-    }
-    
-    public void testRevealBug69076() {
-    	// TODO remove the Mac OS check when SWT has fixed the bug in List.java
-    	// see bug 116105
-    	if (Util.isCarbon()) {
-    		return;
-    	}
-		fViewer = null;
-		if (fShell != null) {
-			fShell.dispose();
-			fShell = null;
-		}
-		openBrowser();
-		for (int i = 40; i < 45; i++) {
-			fRootElement = TestElement.createModel(1, i);
-			fModel = fRootElement.getModel();
-			fViewer.setInput(fRootElement);
-			for (int j = 30; j < fRootElement.getChildCount(); j++) {
-				fViewer.setSelection(new StructuredSelection(fRootElement
-						.getFirstChild()), true);
-				TestElement child = fRootElement.getChildAt(j);
-				fViewer.reveal(child);
-				List list = ((ListViewer) fViewer).getList();
-				int topIndex = list.getTopIndex();
-				// even though we pass in reveal=false, SWT still scrolls to show the selection (since 20020815)
-				fViewer.setSelection(new StructuredSelection(child), false);
-				assertEquals("topIndex should not change on setSelection", topIndex, list
-						.getTopIndex());
-				list.showSelection();
-				assertEquals("topIndex should not change on showSelection", topIndex, list
-						.getTopIndex());
-			}
-		}
-	}
-    
-    /**
-     * Asserts the ability to refresh a List that contains no selection without losing vertically scrolled state.
-     * 
-     * @throws Exception
-     */
-    public void testRefreshBug141435() throws Exception {
-    	fViewer = null;
-		if (fShell != null) {
-			fShell.dispose();
-			fShell = null;
-		}
-		openBrowser();
-		TestElement model = TestElement.createModel(1, 50);
-		fViewer.setInput(model);
-		
-		int lastIndex = model.getChildCount() - 1;
-		
-		//Scroll...
-		fViewer.reveal(model.getChildAt(lastIndex));
-		List list = (List) fViewer.getControl();
-		int topIndex = list.getTopIndex();
-		
-		assertTrue("Top item should not be the first item.", topIndex != 0);
-		fViewer.refresh();
-		processEvents();
-		assertEquals("Top index was not preserved after refresh.", topIndex, list.getTopIndex());
-		
-		//Assert that when the previous top index after refresh is invalid no exceptions are thrown.
-		model.deleteChildren();
-		
-		try {
-			fViewer.refresh();
-			assertEquals(0, list.getTopIndex());
-		} catch (Exception e) {
-			fail("Refresh failure when refreshing with an empty model.");
-		}		
-	}
-    
-    public void testSelectionRevealBug177619() throws Exception {
-    	TestElement model = TestElement.createModel(1, 100);
-		fViewer.setInput(model);
-		
-    	fViewer.setSelection(new StructuredSelection(((ListViewer)fViewer).getElementAt(50)),true);
-    	assertTrue(((ListViewer)fViewer).getList().getTopIndex() != 0);
-	}
-	
-	public void testSelectionNoRevealBug177619() throws Exception {
-		TestElement model = TestElement.createModel(1, 100);
-		fViewer.setInput(model);
-		
-		fViewer.setSelection(new StructuredSelection(((ListViewer)fViewer).getElementAt(50)),false);
-		assertTrue(((ListViewer)fViewer).getList().getTopIndex() == 0);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/MultipleEqualElementsTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/MultipleEqualElementsTreeViewerTest.java
deleted file mode 100644
index b02adc6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/MultipleEqualElementsTreeViewerTest.java
+++ /dev/null
@@ -1,262 +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.jface.tests.viewers;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ITreeSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-
-/**
- * Tests TreeViewer's support for multiple equal elements ().
- * 
- * @since 3.2
- */
-public class MultipleEqualElementsTreeViewerTest extends TreeViewerTest {
-	
-	private TestElement element_2;
-
-	private TestElement element_2_1;
-
-	private TestElement element_2_1_2;
-
-	private TestElement element_1;
-
-	private TestElement element_1_3;
-
-	private TreePath treePath_1_2_21_212;
-
-	private TreePath treePath_1_21_212;
-
-	private TreePath treePath_1_212;
-
-	private TreePath treePath_2_21_212;
-
-	private TreePath treePath_1;
-
-	private TreePath treePath_1_21;
-
-	private TreePath treePath_2_21;
-
-	private TreePath treePath_1_2_21;
-
-	private TreePath treePath_1_2;
-
-	private TreePath treePath_2;
-
-	public MultipleEqualElementsTreeViewerTest(String name) {
-		super(name);
-	}
-
-	public TreeViewer getTreeViewer() {
-		return (TreeViewer) fViewer;
-	}
-
-	protected void setUpModel() {
-		/*
-		 * - fRootElement
-		 * |+element_0
-		 * |-element_1
-		 * ||+element_1_0
-		 * ||+element_1_1
-		 * ||+element_1_2
-		 * ||+element_1_3
-		 * ||+element_1_4
-		 * ||+element_1_5
-		 * ||+element_1_6
-		 * ||+element_1_7
-		 * ||+element_1_8
-		 * ||+element_1_9
-		 * ||+element_2
-		 * ||+element_2_1
-		 * ||+element_2_1_2
-		 * |-element_2
-		 * ||+element_2_0
-		 * ||-element_2_1
-		 * |||+element_2_1_0
-		 * |||+element_2_1_1
-		 * |||+element_2_1_2
-		 * |||+element_2_1_3
-		 * |||+element_2_1_4
-		 * |||+element_2_1_5
-		 * |||+element_2_1_6
-		 * |||+element_2_1_7
-		 * |||+element_2_1_8
-		 * |||+element_2_1_9
-		 * ||+element_2_2
-		 * ||+element_2_3
-		 * ||+element_2_4
-		 * ||+element_2_5
-		 * ||+element_2_6
-		 * ||+element_2_7
-		 * ||+element_2_8
-		 * ||+element_2_9
-		 * |+element_3
-		 * |+element_4
-		 * |+element_5
-		 * |+element_6
-		 * |+element_7
-		 * |+element_8
-		 * |+element_9
-		 */
-
-		fRootElement = TestElement.createModel(3, 10);
-		element_2 = fRootElement.getChildAt(2);
-		element_2_1 = element_2.getChildAt(1);
-		element_2_1_2 = element_2_1.getChildAt(2);
-		element_1 = fRootElement.getChildAt(1);
-		element_1_3 = element_1.getChildAt(1);
-		element_1.addChild(element_2, null);
-		element_1.addChild(element_2_1, null);
-		element_1.addChild(element_2_1_2, null);
-		treePath_1_2_21_212 = new TreePath(new Object[] { element_1, element_2,
-				element_2_1, element_2_1_2 });
-		treePath_1_2_21 = new TreePath(new Object[] { element_1, element_2,
-				element_2_1 });
-		treePath_1 = new TreePath(new Object[] { element_1 });
-		treePath_2 = new TreePath(new Object[] { element_2 });
-		treePath_1_2 = new TreePath(new Object[] { element_1, element_2 });
-		treePath_1_21 = new TreePath(new Object[] { element_1, element_2_1 });
-		treePath_1_21_212 = new TreePath(new Object[] { element_1, element_2_1,
-				element_2_1_2 });
-		treePath_1_212 = new TreePath(new Object[] { element_1, element_2_1_2 });
-		treePath_2_21_212 = new TreePath(new Object[] { element_2, element_2_1,
-				element_2_1_2 });
-		treePath_2_21 = new TreePath(new Object[] { element_2, element_2_1 });
-		fModel = fRootElement.getModel();
-	}
-
-	public void testElementMap() {
-		getTreeViewer().expandToLevel(element_1, AbstractTreeViewer.ALL_LEVELS);
-		getTreeViewer().expandToLevel(element_2, AbstractTreeViewer.ALL_LEVELS);
-		assertEquals(1, getTreeViewer().testFindItems(element_1).length);
-		assertEquals(2, getTreeViewer().testFindItems(element_2).length);
-		assertEquals(3, getTreeViewer().testFindItems(element_2_1).length);
-		assertEquals(4, getTreeViewer().testFindItems(element_2_1_2).length);
-	}
-
-	public void testSelection() {
-		getTreeViewer().expandToLevel(element_1, AbstractTreeViewer.ALL_LEVELS);
-		getTreeViewer().expandToLevel(element_2, AbstractTreeViewer.ALL_LEVELS);
-		getTreeViewer().setSelection(new StructuredSelection(element_1_3));
-		ISelection selection = getTreeViewer().getSelection();
-		assertTrue(selection instanceof ITreeSelection);
-		ITreeSelection treeSelection = (ITreeSelection) selection;
-		assertEquals(new TreeSelection(new TreePath(new Object[] { element_1,
-				element_1_3 }), null), treeSelection);
-		Widget[] items = getTreeViewer().testFindItems(element_2_1_2);
-		TreeItem[] treeItems = new TreeItem[items.length];
-		System.arraycopy(items, 0, treeItems, 0, items.length);
-		assertEquals(4, treeItems.length);
-		for (int i = 0; i < treeItems.length; i++) {
-			assertNotNull(treeItems[i]);
-		}
-		getTreeViewer().getTree().setSelection(treeItems);
-		treeSelection = (ITreeSelection) getTreeViewer().getSelection();
-		List paths = Arrays.asList(treeSelection.getPaths());
-		assertEquals(4, paths.size());
-		assertTrue(paths.contains(treePath_1_2_21_212));
-		assertTrue(paths.contains(treePath_1_21_212));
-		assertTrue(paths.contains(treePath_1_212));
-		assertTrue(paths.contains(treePath_2_21_212));
-		getTreeViewer().setSelection(
-				new TreeSelection(new TreePath[] { treePath_2_21_212 }, null));
-		assertEquals(1, getTreeViewer().getTree().getSelectionCount());
-		assertMatchingPath(treePath_2_21_212, getTreeViewer().getTree()
-				.getSelection()[0]);
-	}
-
-	public void testExpansion() {
-		getTreeViewer().expandToLevel(treePath_1_21_212, 1);
-		assertEqualsArray("element expansion", new Object[] { element_1,
-				element_2_1 }, getTreeViewer().getExpandedElements());
-		assertEqualsArray("path expansion", new Object[] { treePath_1,
-				treePath_1_21 }, getTreeViewer().getExpandedTreePaths());
-		getTreeViewer().setExpandedTreePaths(
-				new TreePath[] { treePath_1, treePath_1_2, treePath_1_2_21, treePath_2, treePath_2_21 });
-		assertEqualsArray("path expansion", new Object[] { treePath_1, treePath_1_2, treePath_1_2_21, treePath_2, treePath_2_21 }, getTreeViewer().getExpandedTreePaths());
-	}
-
-	private void assertMatchingPath(TreePath expectedPath, TreeItem item) {
-		for (int i = expectedPath.getSegmentCount() - 1; i >= 0; i--) {
-			assertNotNull(item);
-			assertEquals(expectedPath.getSegment(i), item.getData());
-			item = item.getParentItem();
-		}
-		assertNull(item);
-	}
-
-	public void testUpdate() {
-		// materialize
-		getTreeViewer().setExpandedTreePaths(
-				new TreePath[] { treePath_1_2_21, treePath_2_21 });
-		Widget[] items = getTreeViewer().testFindItems(element_2_1);
-		for (int i = 0; i < items.length; i++) {
-			assertEquals("0-2-1 name-1", ((TreeItem) items[i]).getText());
-		}
-		element_2_1.setLabel("billy");
-		// the setLabel call fires a change event which results in a call like this:
-		// getTreeViewer().update(element_2_1, null);
-		for (int i = 0; i < items.length; i++) {
-			assertEquals("0-2-1 billy", ((TreeItem) items[i]).getText());
-		}
-	}
-	
-	public void testAddWithoutMaterialize() {
-		TestElement newElement = element_2.addChild(TestModelChange.INSERT);
-		getTreeViewer().setExpandedTreePaths(
-				new TreePath[] { treePath_1_2_21, treePath_2_21 });
-		Widget[] items = getTreeViewer().testFindItems(newElement);
-		assertEquals(2, items.length);
-	}
-	
-	public void testAddAfterMaterialize() {
-		// materialize before adding
-		getTreeViewer().setExpandedTreePaths(
-				new TreePath[] { treePath_1_2_21, treePath_2_21 });
-		TestElement newElement = element_2.addChild(TestModelChange.INSERT);
-		getTreeViewer().setExpandedTreePaths(
-				new TreePath[] { treePath_1_2_21, treePath_2_21 });
-		Widget[] items = getTreeViewer().testFindItems(newElement);
-		assertEquals(2, items.length);
-	}
-	
-	public void testRemoveWithParentAfterMaterialize() {
-		// materialize
-		getTreeViewer().expandToLevel(element_1, AbstractTreeViewer.ALL_LEVELS);
-		getTreeViewer().expandToLevel(element_2, AbstractTreeViewer.ALL_LEVELS);
-		element_2.basicDeleteChild(element_2_1);
-		getTreeViewer().remove(element_2, new Object[]{element_2_1});
-		assertEquals(2, getTreeViewer().testFindItems(element_2).length);
-		assertEquals(1, getTreeViewer().testFindItems(element_2_1).length);
-		assertEquals(2, getTreeViewer().testFindItems(element_2_1_2).length);
-	}
-
-	public void testRemoveWithParentBeforeMaterialize() {
-		element_2.basicDeleteChild(element_2_1);
-		getTreeViewer().remove(element_2, new Object[]{element_2_1});
-		// materialize
-		getTreeViewer().expandToLevel(element_1, AbstractTreeViewer.ALL_LEVELS);
-		getTreeViewer().expandToLevel(element_2, AbstractTreeViewer.ALL_LEVELS);
-		assertEquals(2, getTreeViewer().testFindItems(element_2).length);
-		assertEquals(1, getTreeViewer().testFindItems(element_2_1).length);
-		assertEquals(2, getTreeViewer().testFindItems(element_2_1_2).length);
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTableViewerTest.java
deleted file mode 100644
index 4a8a251..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTableViewerTest.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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TableViewerColumn;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.tests.harness.util.Mocks;
-
-/**
- * @since 3.2
- * 
- */
-public class SimpleTableViewerTest extends ViewerTestCase {
-
-	private TableViewer tableViewer;
-
-	/**
-	 * @param name
-	 */
-	public SimpleTableViewerTest(String name) {
-		super(name);
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		tableViewer = new TableViewer(parent);
-		tableViewer.setContentProvider(new TestModelContentProvider());
-		return tableViewer;
-	}
-
-	public void testNullLabel() {
-		tableViewer.setLabelProvider(new ITableLabelProvider() {
-
-			public Image getColumnImage(Object element, int columnIndex) {
-				return null;
-			}
-
-			public String getColumnText(Object element, int columnIndex) {
-				return null;
-			}
-
-			public void addListener(ILabelProviderListener listener) {
-			}
-
-			public void dispose() {
-			}
-
-			public boolean isLabelProperty(Object element, String property) {
-				return false;
-			}
-
-			public void removeListener(ILabelProviderListener listener) {
-			}
-		});
-	}
-
-	public void testLabelProviderListeners() {
-		Table table = tableViewer.getTable();
-		new TableColumn(table, SWT.NONE);
-		new TableColumn(table, SWT.NONE);
-		ILabelProvider mockLabelProvider = (ILabelProvider) Mocks
-				.createOrderedMock(ILabelProvider.class);
-		// setLabelProvider will cause the addListener and does a refresh,
-		// so getText and getImage will be called for each element and both
-		// columns
-		mockLabelProvider.addListener(null);
-		int count = table.getItemCount();
-		for (int i = 0; i < count; i++) {
-			mockLabelProvider.getText(null);
-			mockLabelProvider.getImage(null);
-			mockLabelProvider.getText(null);
-			mockLabelProvider.getImage(null);
-		}
-		Mocks.startChecking(mockLabelProvider);
-		tableViewer.setLabelProvider(mockLabelProvider);
-		Mocks.verify(mockLabelProvider);
-
-		// this will be caused by the dispose()
-		mockLabelProvider.removeListener(null);
-		mockLabelProvider.dispose();
-		Mocks.startChecking(mockLabelProvider);
-		tableViewer.getTable().dispose();
-		Mocks.verify(mockLabelProvider);
-	}
-
-	public void testLabelProviderListenersWithColumn() {
-		Table table = tableViewer.getTable();
-		new TableColumn(table, SWT.NONE);
-		new TableViewerColumn(tableViewer, SWT.NONE);
-		final int[] disposeCounter = { 0 };
-		final int[] listenerCounter = { 0 };
-		tableViewer.setLabelProvider(new LabelProvider() {
-			public void addListener(ILabelProviderListener listener) {
-				listenerCounter[0]++;
-				super.addListener(listener);
-			}
-			public void removeListener(ILabelProviderListener listener) {
-				super.removeListener(listener);
-				listenerCounter[0]--;
-			}
-			public void dispose() {
-				disposeCounter[0]++;
-			}
-		});
-		table.dispose();
-		assertEquals(1, disposeCounter[0]);
-		assertEquals(0, listenerCounter[0]);
-	}
-
-	public void testColumnLabelProviderListeners() {
-		Table table = tableViewer.getTable();
-		new TableColumn(table, SWT.NONE);
-		TableViewerColumn tvc = new TableViewerColumn(tableViewer, SWT.NONE);
-		final int[] disposeCounter = { 0 };
-		final int[] listenerCounter = { 0 };
-		tvc.setLabelProvider(new ColumnLabelProvider() {
-			public void addListener(ILabelProviderListener listener) {
-				listenerCounter[0]++;
-				super.addListener(listener);
-			}
-			public void removeListener(ILabelProviderListener listener) {
-				super.removeListener(listener);
-				listenerCounter[0]--;
-			}
-			public void dispose() {
-				disposeCounter[0]++;
-			}
-		});
-		table.dispose();
-		assertEquals(0, listenerCounter[0]);
-		assertEquals(1, disposeCounter[0]);
-	}
-	
-	public void testCellLabelProviderDispose() {
-		final int[] disposeCounter = { 0 };
-		tableViewer.setLabelProvider(new ColumnLabelProvider() {
-			public void dispose() {
-				disposeCounter[0]++;
-			}
-		});
-		tableViewer.getTable().dispose();
-		assertEquals(1, disposeCounter[0]);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTreeViewerTest.java
deleted file mode 100644
index eed61df..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleTreeViewerTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreePathViewerSorter;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @since 3.2
- * 
- */
-public class SimpleTreeViewerTest extends ViewerTestCase {
-
-	private TreeViewer treeViewer;
-
-	/**
-	 * @param name
-	 */
-	public SimpleTreeViewerTest(String name) {
-		super(name);
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		treeViewer = new TreeViewer(parent);
-		treeViewer.setContentProvider(new TestModelContentProvider());
-		return treeViewer;
-	}
-
-	public void testSetTreePathViewerSorterOnNullInput() {
-		treeViewer.setInput(null);
-		treeViewer.setSorter(new TreePathViewerSorter());
-	}
-	
-	public void testNullLabel() {
-		treeViewer.setLabelProvider(new ITableLabelProvider(){
-
-			public Image getColumnImage(Object element, int columnIndex) {
-				return null;
-			}
-
-			public String getColumnText(Object element, int columnIndex) {
-				return null;
-			}
-
-			public void addListener(ILabelProviderListener listener) {
-			}
-
-			public void dispose() {
-			}
-
-			public boolean isLabelProperty(Object element, String property) {
-				return false;
-			}
-
-			public void removeListener(ILabelProviderListener listener) {
-			}});
-	}
-
-	static class MyViewerSorter extends ViewerSorter {
-		boolean inverted = false;
-
-		public int compare(Viewer viewer, Object e1, Object e2) {
-			if (inverted) {
-				return super.compare(viewer, e2, e1);
-			}
-			return super.compare(viewer, e1, e2);
-		}
-	}
-
-	public void testBug184441() {
-		MyViewerSorter sorter = new MyViewerSorter();
-		treeViewer.setSorter(sorter);
-		ITreeContentProvider contentProvider = (ITreeContentProvider) treeViewer
-				.getContentProvider();
-		Object firstRoot = contentProvider.getElements(treeViewer.getInput())[0];
-		Object childOfFirstRoot = contentProvider.getChildren(firstRoot)[0];
-		treeViewer.setSelection(new StructuredSelection(childOfFirstRoot), true);
-		final ISelectionChangedListener listener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				fail();
-			}
-		};
-		treeViewer.addSelectionChangedListener(listener);
-		sorter.inverted = true;
-		treeViewer.refresh();
-		treeViewer.removeSelectionChangedListener(listener);
-	}
-	
-	public void testBug184712() {
-		class TableAndTreeLabelProvider extends LabelProvider implements ITableLabelProvider {
-			public Image getColumnImage(Object element, int columnIndex) {
-				return null;
-			}
-			public String getColumnText(Object element, int columnIndex) {
-				return "wrong";
-			}
-			public String getText(Object element) {
-				return "right";
-			}
-		}
-		treeViewer.setLabelProvider(new TableAndTreeLabelProvider());
-		assertEquals("right", treeViewer.getTree().getItem(0).getText());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleVirtualLazyTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleVirtualLazyTreeViewerTest.java
deleted file mode 100644
index a3fe6e2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/SimpleVirtualLazyTreeViewerTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ILazyTreeContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * Tests TreeViewer's VIRTUAL support with a lazy content provider.
- * 
- * @since 3.2
- */
-public class SimpleVirtualLazyTreeViewerTest extends ViewerTestCase {
-	private static final int NUM_ROOTS = 100;
-	private static final int NUM_CHILDREN = 10;
-
-	private boolean callbacksEnabled = true;
-	private boolean printCallbacks = false;
-	private int offset = 0;
-
-	private class LazyTreeContentProvider implements ILazyTreeContentProvider {
-		/**
-		 * 
-		 */
-		private Object input;
-
-		public void updateElement(Object parent, int index) {
-			updateElementCallCount++;
-			String parentString = (String) parent;
-			Object childElement = parentString + "-" + (index+offset);
-			if (printCallbacks)
-				System.out.println("updateElement called for " + parent + " at " + index);
-			if (callbacksEnabled) {
-				getTreeViewer().replace(parent, index, childElement);
-				getTreeViewer().setChildCount(childElement, NUM_CHILDREN);
-			}
-		}
-
-		public void dispose() {
-			// do nothing
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			this.input = newInput;
-		}
-
-		public Object getParent(Object element) {
-			return null;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ILazyTreeContentProvider#updateChildCount(java.lang.Object, int)
-		 */
-		public void updateChildCount(Object element, int currentChildCount) {
-			if (printCallbacks)
-				System.out.println("updateChildCount called for " + element + " with " + currentChildCount);
-			if (callbacksEnabled) {
-				getTreeViewer().setChildCount(element, element==input?NUM_ROOTS:NUM_CHILDREN);
-			}
-		}
-	}
-
-	private int updateElementCallCount = 0;
-
-	public SimpleVirtualLazyTreeViewerTest(String name) {
-		super(name);
-	}
-
-	public TreeViewer getTreeViewer() {
-		return (TreeViewer) fViewer;
-	}
-
-	protected void setInput() {
-		String letterR = "R";
-		getTreeViewer().setInput(letterR);
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		Tree tree = new Tree(fShell, SWT.VIRTUAL | SWT.MULTI);
-		TreeViewer treeViewer = new TreeViewer(tree);
-		treeViewer.setContentProvider(new LazyTreeContentProvider());
-		return treeViewer;
-	}
-
-	public void testCreation() {
-		processEvents();
-		assertTrue("tree should have items", getTreeViewer().getTree()
-				.getItemCount() > 0);
-		assertTrue("call to updateElement expected", updateElementCallCount > 0);
-		assertTrue(
-				"expected calls to updateElement for less than half of the items",
-				updateElementCallCount < NUM_ROOTS / 2);
-		assertEquals("R-0", getTreeViewer().getTree().getItem(0).getText());
-	}
-
-	public void testExpand() {
-		processEvents();
-		Tree tree = getTreeViewer().getTree();
-		getTreeViewer().expandToLevel("R-0", 1);
-		// force redrawing the tree - this will trigger the SetData event
-		tree.update();
-		assertEquals(NUM_CHILDREN, tree.getItem(0).getItemCount());
-		TreeItem treeItem = tree.getItem(0).getItem(3);
-		expandAndNotify(treeItem);
-		// force redrawing the tree - this will trigger the SetData event
-		tree.update();
-		assertEquals(NUM_CHILDREN, treeItem.getItemCount());
-		assertEquals(NUM_CHILDREN, treeItem.getItems().length);
-		// interact();
-	}
-
-	private void expandAndNotify(TreeItem treeItem) {
-		// callbacksEnabled = false;
-		Tree tree = treeItem.getParent();
-		tree.setRedraw(false);
-		treeItem.setExpanded(true);
-		try {
-			Event event = new Event();
-			event.item = treeItem;
-			event.type = SWT.Expand;
-			tree.notifyListeners(SWT.Expand, event);
-		} finally {
-			// callbacksEnabled = true;
-			tree.setRedraw(true);
-		}
-	}
-	
-	public void testSetSorterOnNullInput() {
-		fViewer.setInput(null);
-		fViewer.setSorter(new ViewerSorter());
-	}
-	
-	public void testSetComparatorOnNullInput(){
-		fViewer.setInput(null);
-		fViewer.setComparator(new ViewerComparator());		
-	}
-	
-	/* test TreeViewer.remove(parent, index) */ 
-	public void testRemoveAt() {
-		TreeViewer treeViewer = (TreeViewer) fViewer;
-		// correct what the content provider is answering with
-		treeViewer.getTree().update();
-		offset = 1;
-		treeViewer.remove(treeViewer.getInput(), 3);
-		assertEquals(NUM_ROOTS - 1, treeViewer.getTree().getItemCount());
-		treeViewer.setSelection(new StructuredSelection(new Object[] { "R-0",
-				"R-1" }));
-		assertEquals(2, ((IStructuredSelection) treeViewer.getSelection())
-				.size());
-		processEvents();
-		assertTrue("expected less than " + (NUM_ROOTS / 2) + " but got "
-				+ updateElementCallCount,
-				updateElementCallCount < NUM_ROOTS / 2);
-		updateElementCallCount = 0;
-//		printCallbacks = true;
-		// correct what the content provider is answering with
-		offset = 2;
-		treeViewer.remove(treeViewer.getInput(), 1);
-		assertEquals(NUM_ROOTS - 2, treeViewer.getTree().getItemCount());
-		processEvents();
-		assertEquals(1, ((IStructuredSelection) treeViewer.getSelection())
-				.size());
-		assertEquals(1, updateElementCallCount);
-//		printCallbacks = false;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredItemViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredItemViewerTest.java
deleted file mode 100644
index da9e76f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredItemViewerTest.java
+++ /dev/null
@@ -1,46 +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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ICheckable;
-
-public abstract class StructuredItemViewerTest extends StructuredViewerTest {
-
-    public StructuredItemViewerTest(String name) {
-        super(name);
-    }
-
-    public void testCheckElement() {
-
-        if (fViewer instanceof ICheckable) {
-            TestElement first = fRootElement.getFirstChild();
-            TestElement firstfirst = first.getFirstChild();
-
-            ICheckable ctv = (ICheckable) fViewer;
-            ctv.setChecked(first, true);
-            assertTrue(ctv.getChecked(first));
-
-            // checking an invisible element
-            if (fViewer instanceof AbstractTreeViewer) {
-                // The first child of the first child can only be resolved in a tree
-                assertTrue(ctv.setChecked(firstfirst, true));
-                assertTrue(ctv.getChecked(firstfirst));
-            } else {
-                assertTrue(!ctv.setChecked(firstfirst, true));
-                assertTrue(!ctv.getChecked(firstfirst));
-            }
-
-            ctv.setChecked(first, false);
-            assertTrue(!ctv.getChecked(first));
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredSelectionTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredSelectionTest.java
deleted file mode 100644
index 64af9d7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredSelectionTest.java
+++ /dev/null
@@ -1,103 +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.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.StructuredSelection;
-
-public class StructuredSelectionTest extends TestCase {
-
-    public StructuredSelectionTest(String name) {
-        super(name);
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(StructuredSelectionTest.class);
-    }
-
-    public void testEquals() {
-        String element = "A selection";
-        StructuredSelection sel1 = new StructuredSelection(element);
-        StructuredSelection sel2 = new StructuredSelection(element);
-        assertEquals(sel1, sel2);
-    }
-
-    public void testEquals2() {
-        String element1 = "A selection";
-        String element2 = "A selection";
-        String element3 = "Other";
-        StructuredSelection sel1 = new StructuredSelection(element1);
-        StructuredSelection sel2 = new StructuredSelection(element2);
-        StructuredSelection sel3 = new StructuredSelection(element3);
-        assertEquals(sel1, sel2);
-        assertTrue(!sel1.equals(sel3));
-    }
-
-    public void testEquals3() { // two empty selections
-        StructuredSelection empty1 = new StructuredSelection();
-        StructuredSelection empty2 = new StructuredSelection();
-        assertTrue(empty1.equals(empty2));
-        assertTrue(empty2.equals(empty1));
-    }
-
-    public void testEquals4() { // empty selection with non-empty selection
-        StructuredSelection sel = new StructuredSelection("A selection");
-        StructuredSelection empty = new StructuredSelection();
-        assertTrue(!sel.equals(empty));
-        assertTrue(!empty.equals(sel));
-    }
-
-    public void testEquals5() { // equality is order-dependent
-        List l1 = new ArrayList();
-        l1.add("element 1");
-        l1.add("element 2");
-
-        List l2 = new ArrayList();
-        l2.add("element 2");
-        l2.add("element 1");
-
-        StructuredSelection sel1 = new StructuredSelection(l1);
-        StructuredSelection sel2 = new StructuredSelection(l2);
-        assertTrue(!sel1.equals(sel2));
-        assertTrue(!sel2.equals(sel1));
-    }
-
-    public void testEquals6() { // different selections
-        List l1 = new ArrayList();
-        l1.add("element 1");
-        l1.add("element 2");
-
-        List l2 = new ArrayList();
-        l2.add("element 2");
-        l2.add("element 3");
-        l2.add("element 1");
-
-        StructuredSelection sel1 = new StructuredSelection(l1);
-        StructuredSelection sel2 = new StructuredSelection(l2);
-        assertTrue(!sel1.equals(sel2));
-        assertTrue(!sel2.equals(sel1));
-    }
-
-    /**
-     * Empty selections via different constructors.
-     * Regression test for bug 40245.
-     */
-    public void testEquals7() {
-        StructuredSelection empty1 = new StructuredSelection();
-        StructuredSelection empty2 = new StructuredSelection(new Object[0]);
-        assertTrue(empty1.equals(empty2));
-        assertTrue(empty2.equals(empty1));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredViewerTest.java
deleted file mode 100644
index 180887b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StructuredViewerTest.java
+++ /dev/null
@@ -1,483 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl - bug 151205
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableTreeViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.graphics.Image;
-
-public abstract class StructuredViewerTest extends ViewerTestCase {
-    public static class TestLabelFilter extends ViewerFilter {
-        public boolean select(Viewer viewer, Object parent, Object element) {
-            String label = ((TestElement) element).getLabel();
-            int count = label.indexOf("-");
-            if (count < 0)
-                return false;
-            String number = label.substring(count + 1);
-            return ((Integer.parseInt(number) % 2) == 0);
-        }
-
-        public boolean isFilterProperty(Object element, String property) {
-            return property.equals(IBasicPropertyConstants.P_TEXT);
-        }
-    }
-
-    public static class TestLabelFilter2 extends ViewerFilter {
-        public boolean select(Viewer viewer, Object parent, Object element) {
-            String label = ((TestElement) element).getLabel();
-            int count = label.indexOf("-");
-            if (count < 0)
-                return false;
-            String number = label.substring(count + 1);
-            return Integer.parseInt(number) == 0;
-        }
-
-        public boolean isFilterProperty(Object element, String property) {
-            return property.equals(IBasicPropertyConstants.P_TEXT);
-        }
-    }
-    
-    public static class TestLabelSorter extends ViewerSorter {
-        public int compare(Viewer v, Object e1, Object e2) {
-            // put greater labels first
-            String name1 = ((TestElement) e1).getLabel();
-            String name2 = ((TestElement) e2).getLabel();
-            return name2.compareTo(name1);
-        }
-
-        public boolean isSorterProperty(Object element, String property) {
-            return property.equals(IBasicPropertyConstants.P_TEXT);
-        }
-    }
-
-    public static class TestLabelProvider extends LabelProvider {
-        public static String fgSuffix = "";
-
-        static Image fgImage = ImageDescriptor.createFromFile(
-                TestLabelProvider.class, "images/java.gif").createImage();
-
-        public String getText(Object element) {
-            return providedString((TestElement) element);
-        }
-
-        public Image getImage(Object element) {
-            return fgImage;
-        }
-
-        public void setSuffix(String suffix) {
-            fgSuffix = suffix;
-            fireLabelProviderChanged(new LabelProviderChangedEvent(this));
-        }
-    }
-
-    public StructuredViewerTest(String name) {
-        super(name);
-    }
-
-    protected void bulkChange(TestModelChange eventToFire) {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement newElement = first.getContainer().basicAddChild();
-        fRootElement.basicDeleteChild(first);
-        fModel.fireModelChanged(eventToFire);
-        processEvents();
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-        assertNull("first child is not visible", fViewer.testFindItem(first));
-    }
-
-    protected abstract int getItemCount();
-
-    protected abstract String getItemText(int at);
-
-    public static String providedString(String s) {
-        return s + "<rendered>" + TestLabelProvider.fgSuffix;
-    }
-
-    public static String providedString(TestElement element) {
-        return element.getID() + " " + element.getLabel() + "<rendered>"
-                + TestLabelProvider.fgSuffix;
-    }
-
-    public void testClearSelection() {
-        TestElement first = fRootElement.getFirstChild();
-        StructuredSelection selection = new StructuredSelection(first);
-        fViewer.setSelection(selection);
-        fViewer.setSelection(new StructuredSelection());
-        ISelection result = fViewer.getSelection();
-        assertTrue(result.isEmpty());
-    }
-
-    public void testDeleteChild() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement first2 = first.getFirstChild();
-        first.deleteChild(first2);
-        assertNull("first child is not visible", fViewer.testFindItem(first2));
-    }
-
-    public void testDeleteInput() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement firstfirst = first.getFirstChild();
-        fRootElement = first;
-        setInput();
-        fRootElement.deleteChild(first);
-        assertNull("first child is not visible", fViewer
-                .testFindItem(firstfirst));
-    }
-
-    public void testDeleteSibling() {
-        TestElement first = fRootElement.getFirstChild();
-        assertNotNull("first child is visible", fViewer.testFindItem(first));
-        fRootElement.deleteChild(first);
-        assertNull("first child is not visible", fViewer.testFindItem(first));
-    }
-    
-    /**
-     * Tests to ensure that the viewer is properly diposed.  Includes:
-     *     removal of filters
-     */
-    public void testDispose() {
-    	assertEquals(0, fViewer.getFilters().length);
-    	fViewer.addFilter(new ViewerFilter() {
-
-			public boolean select(Viewer viewer, Object parentElement,
-					Object element) {
-				return false;
-			}});
-    	assertEquals(1, fViewer.getFilters().length);
-    	fViewer.getControl().dispose();
-    	assertEquals(0, fViewer.getFilters().length);
-    }
-
-    public void testFilter() {
-        ViewerFilter filter = new TestLabelFilter();
-        fViewer.addFilter(filter);
-        assertTrue("filtered count", getItemCount() == 5);
-        fViewer.removeFilter(filter);
-        assertTrue("unfiltered count", getItemCount() == 10);
-
-    }
-
-    public void testSetFilters() {
-    	ViewerFilter filter = new TestLabelFilter();
-    	fViewer.setFilters(new ViewerFilter[] { filter, new TestLabelFilter2() });
-//    	System.err.println("Item: " + getItemCount() );
-    	assertTrue("2 filters count", getItemCount() == 1);
-    	
-    	fViewer.setFilters(new ViewerFilter[] { filter });
-    	assertTrue("1 filtered count", getItemCount() == 5);
-    	
-    	fViewer.setFilters(new ViewerFilter[0]);
-    	assertTrue("unfiltered count", getItemCount() == 10);
-    }
-    
-    public void testSetAndGetData() {
-    	
-    	//get with no data
-    	assertNull("get with no data", fViewer.getData("foo"));
-    	
-    	//remove with no data
-    	fViewer.setData("foo", null);
-    	
-    	//get with no data after remove
-    	assertNull("get with no data after remove", fViewer.getData("foo"));
-    	
-    	//set
-    	fViewer.setData("foo", "bar");
-    	
-    	//remove key which does not exist
-    	fViewer.setData("baz", null);
-    	
-    	//get key which does not exist
-    	assertNull("get key which does not exist", fViewer.getData("baz"));
-    	
-    	//get value instead of key
-    	assertNull("get value instead of key", fViewer.getData("bar"));
-    	
-    	//get single value
-    	assertEquals("get single value", "bar", fViewer.getData("foo"));
-    	
-    	//set new value
-    	fViewer.setData("foo", "baz");
-    	
-    	//get overridden value
-    	assertEquals("get overridden value", "baz", fViewer.getData("foo"));
-    	
-    	//add more values
-    	fViewer.setData("alpha", "1");
-    	fViewer.setData("beta", "2");
-    	fViewer.setData("delta", "3");
-    	
-    	//get multiple values
-    	assertEquals("get multiple values", "baz", fViewer.getData("foo"));
-    	assertEquals("get multiple values", "1", fViewer.getData("alpha"));
-    	assertEquals("get multiple values", "2", fViewer.getData("beta"));
-    	assertEquals("get multiple values", "3", fViewer.getData("delta"));
-    	
-    	//override with multiple values
-    	fViewer.setData("alpha", "10");
-    	
-    	//get overridden value
-    	assertEquals("get overridden value", "10", fViewer.getData("alpha"));
-    	
-    	//add more values
-    	fViewer.setData("gamma", "4");
-    	fViewer.setData("epsilon", "5");
-    	
-    	//remove first value
-    	fViewer.setData("foo", null);
-    	
-    	//check remaining values
-    	assertEquals("get after remove", null, fViewer.getData("foo"));
-    	assertEquals("get after remove", "10", fViewer.getData("alpha"));
-    	assertEquals("get after remove", "2", fViewer.getData("beta"));
-    	assertEquals("get after remove", "3", fViewer.getData("delta"));
-    	assertEquals("get after remove", "4", fViewer.getData("gamma"));
-    	assertEquals("get after remove", "5", fViewer.getData("epsilon"));
-    	
-    	//remove middle value
-    	fViewer.setData("delta", null);
-    	
-    	//check remaining values
-    	assertEquals("get after remove", null, fViewer.getData("foo"));
-    	assertEquals("get after remove", "10", fViewer.getData("alpha"));
-    	assertEquals("get after remove", "2", fViewer.getData("beta"));
-    	assertEquals("get after remove", null, fViewer.getData("delta"));
-    	assertEquals("get after remove", "4", fViewer.getData("gamma"));
-    	assertEquals("get after remove", "5", fViewer.getData("epsilon"));
-    	
-    	//remove last value
-    	fViewer.setData("epsilon", null);
-    	
-    	//check remaining values
-    	assertEquals("get after remove", null, fViewer.getData("foo"));
-    	assertEquals("get after remove", "10", fViewer.getData("alpha"));
-    	assertEquals("get after remove", "2", fViewer.getData("beta"));
-    	assertEquals("get after remove", null, fViewer.getData("delta"));
-    	assertEquals("get after remove", "4", fViewer.getData("gamma"));
-    	assertEquals("get after remove", null, fViewer.getData("epsilon"));
-    	
-    	//remove remaining values
-    	fViewer.setData("alpha", null);
-    	fViewer.setData("beta", null);
-    	fViewer.setData("gamma", null);
-    	
-    	//check final values
-    	assertEquals("get after remove", null, fViewer.getData("foo"));
-    	assertEquals("get after remove", null, fViewer.getData("alpha"));
-    	assertEquals("get after remove", null, fViewer.getData("beta"));
-    	assertEquals("get after remove", null, fViewer.getData("delta"));
-    	assertEquals("get after remove", null, fViewer.getData("gamma"));
-    	assertEquals("get after remove", null, fViewer.getData("epsilon"));
-    }
-    
-    public void testInsertChild() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement newElement = first.addChild(TestModelChange.INSERT);
-        assertNull("new sibling is not visible", fViewer
-                .testFindItem(newElement));
-    }
-
-    public void testInsertSibling() {
-        TestElement newElement = fRootElement.addChild(TestModelChange.INSERT);
-        processEvents();
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-    }
-
-    public void testInsertSiblingReveal() {
-        TestElement newElement = fRootElement.addChild(TestModelChange.INSERT
-                | TestModelChange.REVEAL);
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-    }
-
-    public void testInsertSiblings() {
-        TestElement[] newElements = fRootElement
-                .addChildren(TestModelChange.INSERT);
-        processEvents();
-        for (int i = 0; i < newElements.length; ++i)
-            assertNotNull("new siblings are visible", fViewer
-                    .testFindItem(newElements[i]));
-    }
-
-    public void testInsertSiblingSelectExpanded() {
-        TestElement newElement = fRootElement.addChild(TestModelChange.INSERT
-                | TestModelChange.REVEAL | TestModelChange.SELECT);
-        processEvents();
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-        assertSelectionEquals("new element is selected", newElement);
-    }
-
-    public void testInsertSiblingWithFilterFiltered() {
-        fViewer.addFilter(new TestLabelFilter());
-        TestElement newElement = new TestElement(fModel, fRootElement);
-        newElement.setLabel("name-111");
-        fRootElement.addChild(newElement, new TestModelChange(
-                TestModelChange.INSERT | TestModelChange.REVEAL
-                        | TestModelChange.SELECT, fRootElement, newElement));
-        assertNull("new sibling is not visible", fViewer
-                .testFindItem(newElement));
-        assertTrue(getItemCount() == 5);
-    }
-
-    public void testInsertSiblingWithFilterNotFiltered() {
-        fViewer.addFilter(new TestLabelFilter());
-        TestElement newElement = new TestElement(fModel, fRootElement);
-        newElement.setLabel("name-222");
-        fRootElement.addChild(newElement, new TestModelChange(
-                TestModelChange.INSERT | TestModelChange.REVEAL
-                        | TestModelChange.SELECT, fRootElement, newElement));
-        assertNotNull("new sibling is visible", fViewer
-                .testFindItem(newElement));
-        assertTrue(getItemCount() == 6);
-    }
-
-    public void testInsertSiblingWithSorter() {
-        fViewer.setSorter(new TestLabelSorter());
-        TestElement newElement = new TestElement(fModel, fRootElement);
-        newElement.setLabel("name-9999");
-        fRootElement.addChild(newElement, new TestModelChange(
-                TestModelChange.INSERT | TestModelChange.REVEAL
-                        | TestModelChange.SELECT, fRootElement, newElement));
-        String newLabel = newElement.toString();
-        assertEquals("sorted first", newLabel, getItemText(0));
-        assertSelectionEquals("new element is selected", newElement);
-    }
-
-    public void testLabelProvider() {
-        // BUG: non-polymorphic behaviour
-        // if (fViewer instanceof TableViewer || fViewer instanceof TableTreeViewer)
-        // 	return;
-        fViewer.setLabelProvider(getTestLabelProvider());
-        TestElement first = fRootElement.getFirstChild();
-        String newLabel = providedString(first);
-        assertEquals("rendered label", newLabel, getItemText(0));
-    }
-
-    /**
-     * @return IBaseLabelProvder used in this test
-     */
-    public IBaseLabelProvider getTestLabelProvider() {
-        return new TestLabelProvider();
-    }
-
-    public void testLabelProviderStateChange() {
-        // BUG: non-polymorphic behaviour
-        // if (fViewer instanceof TableViewer || fViewer instanceof TableTreeViewer)
-        // 	return;
-        TestLabelProvider provider = new TestLabelProvider();
-        fViewer.setLabelProvider(provider);
-        provider.setSuffix("added suffix");
-        TestElement first = fRootElement.getFirstChild();
-        String newLabel = providedString(first);
-        assertEquals("rendered label", newLabel, getItemText(0));
-    }
-
-    public void testRename() {
-        TestElement first = fRootElement.getFirstChild();
-        String newLabel = first.getLabel() + " changed";
-        first.setLabel(newLabel);
-        assertEquals("changed label", first.getID() + " " + newLabel,
-                getItemText(0));
-    }
-
-    public void testRenameWithFilter() {
-        fViewer.addFilter(new TestLabelFilter());
-        TestElement first = fRootElement.getFirstChild();
-        first.setLabel("name-1111"); // should disappear
-        assertNull("changed sibling is not visible", fViewer
-                .testFindItem(first));
-        first.setLabel("name-2222"); // should reappear
-        fViewer.refresh();
-        assertNotNull("changed sibling is not visible", fViewer
-                .testFindItem(first));
-    }
-
-    public void testRenameWithLabelProvider() {
-        if (fViewer instanceof TableViewer
-                || fViewer instanceof TableTreeViewer)
-            return;
-        fViewer.setLabelProvider(new TestLabelProvider());
-        TestElement first = fRootElement.getFirstChild();
-        first.setLabel("changed name");
-        String newLabel = providedString(first);
-        assertEquals("rendered label", newLabel, getItemText(0));
-    }
-
-    public void testRenameWithSorter() {
-        fViewer.setSorter(new TestLabelSorter());
-        TestElement first = fRootElement.getFirstChild();
-        first.setLabel("name-9999");
-        String newElementLabel = first.toString();
-        assertEquals("sorted first", newElementLabel, getItemText(0));
-    }
-
-    public void testSetInput() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement firstfirst = first.getFirstChild();
-
-        fRootElement = first;
-        setInput();
-        processEvents();
-        assertNotNull("first child is visible", fViewer
-                .testFindItem(firstfirst));
-    }
-
-    public void testSetSelection() {
-        TestElement first = fRootElement.getFirstChild();
-        StructuredSelection selection = new StructuredSelection(first);
-        fViewer.setSelection(selection);
-        IStructuredSelection result = (IStructuredSelection) fViewer
-                .getSelection();
-        assertTrue(result.size() == 1);
-        assertTrue(result.getFirstElement() == first);
-    }
-
-    public void testSomeChildrenChanged() {
-		bulkChange(new TestModelChange(TestModelChange.STRUCTURE_CHANGE,
-				fRootElement));
-    }
-
-    public void testSorter() {
-        TestElement first = fRootElement.getFirstChild();
-        TestElement last = fRootElement.getLastChild();
-        int size = fRootElement.getChildCount();
-
-        String firstLabel = first.toString();
-        String lastLabel = last.toString();
-        assertEquals("unsorted", firstLabel, getItemText(0));
-        assertEquals("unsorted", lastLabel, getItemText(size - 1));
-        fViewer.setSorter(new TestLabelSorter());
-        assertEquals("reverse sorted", firstLabel, getItemText(size - 1));
-        assertEquals("reverse sorted", lastLabel, getItemText(0));
-
-        fViewer.setSorter(null);
-        assertEquals("unsorted", firstLabel, getItemText(0));
-        assertEquals("unsorted", lastLabel, getItemText(size - 1));
-    }
-
-    public void testWorldChanged() {
-		bulkChange(new TestModelChange(TestModelChange.STRUCTURE_CHANGE, null));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StyledStringBuilderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StyledStringBuilderTest.java
deleted file mode 100644
index fd2e185..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/StyledStringBuilderTest.java
+++ /dev/null
@@ -1,843 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.TextStyle;
-
-import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.StyledString.Styler;
-
-public class StyledStringBuilderTest extends TestCase {
-	
-	public static class TestStyler extends Styler {
-		
-		public final int borderStyle;
-
-		public TestStyler(int borderStyle) {
-			this.borderStyle= borderStyle;
-		}
-		
-		public void applyStyles(TextStyle textStyle) {
-			textStyle.borderStyle= borderStyle;
-		}
-	}
-	
-	public static final TestStyler STYLER1= new TestStyler(SWT.BORDER_DOT);
-	public static final TestStyler STYLER2= new TestStyler(SWT.BORDER_DASH);
-	
-	
-	public static Test allTests() {
-		return new TestSuite(StyledStringBuilderTest.class);
-	}
-
-	public static Test suite() {
-		return allTests();
-	}
-	
-	public void testEmpty() {
-		StyledString styledString= new StyledString();
-		
-		String str= "";
-		
-		assertEquals(str.length(), styledString.length());
-		assertEquals(str, styledString.getString());
-		assertEquals(styledString.getStyleRanges().length, 0);
-	}
-	
-	public void testAppendString1() {
-		StyledString styledString= new StyledString();
-		
-		String str= "Hello";
-		
-		styledString.append(str, STYLER1);
-		
-		assertEquals(str.length(), styledString.length());
-		assertEquals(str, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, str.length());
-	}
-	
-	public void testAppendString2() {
-		StyledString styledString= new StyledString();
-		
-		String str1= "Hello";
-		String str2= "You";
-		styledString.append(str1);
-		styledString.append(str2, STYLER1);
-		
-		String res= str1 + str2;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, str1.length(), str2.length());
-	}
-	
-	public void testAppendString3() {
-		StyledString styledString= new StyledString();
-		
-		String str1= "Hello";
-		String str2= "You";
-		styledString.append(str1, STYLER1);
-		styledString.append(str2);
-		
-		String res= str1 + str2;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length());
-	}
-	
-	public void testAppendString4() {
-		StyledString styledString= new StyledString();
-		
-		String str1= "Hello";
-		String str2= "You";
-		styledString.append(str1);
-		styledString.append(str2, STYLER1);
-		styledString.append(str2, STYLER1);
-		
-		String res= str1 + str2 + str2;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, str1.length(), str2.length() * 2);
-	}
-	
-	public void testAppendString5() {
-		StyledString styledString= new StyledString();
-		
-		String str1= "Hello";
-		String str2= "You";
-		String str3= "Me";
-		styledString.append(str1);
-		styledString.append(str2, STYLER1);
-		styledString.append(str3, STYLER2);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, str1.length(), str2.length());
-		assertEquals(styleRanges[1], STYLER2, str1.length() + str2.length(), str3.length());
-	}
-	
-	public void testAppendString6() {
-		StyledString styledString= new StyledString();
-		
-		String str1= "Hello";
-		String str2= "You";
-		String str3= "Me";
-		styledString.append(str1, STYLER1);
-		styledString.append(str2);
-		styledString.append(str3, STYLER2);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length());
-		assertEquals(styleRanges[1], STYLER2, str1.length() + str2.length(), str3.length());
-	}
-	
-	public void testAppendString7() {
-		StyledString styledString= new StyledString();
-		
-		String str1= "Hello";
-		String str2= "";
-		String str3= "Me";
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		styledString.append(str3, STYLER1);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, res.length());
-	}
-	
-	public void testAppendChar1() {
-		StyledString styledString= new StyledString();
-		
-		styledString.append('H', STYLER1);
-		styledString.append('2', STYLER2);
-		styledString.append('O', STYLER1);
-		
-		String res= "H2O";
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(3, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, 1);
-		assertEquals(styleRanges[1], STYLER2, 1, 1);
-		assertEquals(styleRanges[2], STYLER1, 2, 1);
-	}
-	
-	public void testAppendChar2() {
-		StyledString styledString= new StyledString();
-		
-		styledString.append('H', STYLER1);
-		styledString.append('2');
-		styledString.append('O', STYLER2);
-		
-		String res= "H2O";
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, 1);
-		assertEquals(styleRanges[1], STYLER2, 2, 1);
-	}
-	
-	public void testAppendStyledString1() {
-		StyledString other= new StyledString();
-		
-		String str2= "You";
-		String str3= "Me";
-		other.append(str2, STYLER1);
-		other.append(str3, STYLER2);
-		
-		String str1= "We";
-		
-		StyledString styledString= new StyledString(str1);
-		styledString.append(other);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, str1.length(), str2.length());
-		assertEquals(styleRanges[1], STYLER2, str1.length() + str2.length(), str3.length());
-	}
-	
-	public void testAppendStyledString2() {
-		StyledString other= new StyledString();
-		
-		String str2= "You";
-		String str3= "Me";
-		other.append(str2, STYLER1);
-		other.append(str3, STYLER2);
-		
-		String str1= "We";
-		
-		StyledString styledString= new StyledString(str1, STYLER1);
-		styledString.append(other);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length() + str2.length());
-		assertEquals(styleRanges[1], STYLER2, str1.length() + str2.length(), str3.length());
-	}
-	
-	public void testAppendStyledString3() {
-		
-		StyledString other= new StyledString();
-		
-		String str2= "You";
-		String str3= "Me";
-		other.append(str2);
-		other.append(str3, STYLER2);
-		
-		String str1= "We";
-		
-		StyledString styledString= new StyledString(str1, STYLER1);
-		styledString.append(other);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length());
-		assertEquals(styleRanges[1], STYLER2, str1.length() + str2.length(), str3.length());
-	}
-	
-	public void testAppendStyledString4() {
-		
-		StyledString other= new StyledString();
-		
-		String str2= "You";
-		String str3= "Me";
-		other.append(str2, STYLER2);
-		other.append(str3);
-		
-		String str1= "We";
-		
-		StyledString styledString= new StyledString(str1, STYLER1);
-		styledString.append(other);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length());
-		assertEquals(styleRanges[1], STYLER2, str1.length(), str2.length());
-	}
-	
-	public void testAppendStyledString5() {
-		StyledString other= new StyledString();
-		
-		String str2= "You";
-		String str3= "Me";
-		other.append(str2);
-		other.append(str3, STYLER1);
-		
-		String str1= "We";
-		
-		StyledString styledString= new StyledString(str1);
-		styledString.append(other);
-		
-		String res= str1 + str2 + str3;
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, str1.length() +  str2.length(), str3.length());
-	}
-	
-	public void testSetStyle1() {
-		String str1= "One";
-		String str2= "Two";
-		String str3= "Three";
-		
-		String res= str1 + str2 + str3;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(res);
-		
-		styledString.setStyle(0, str1.length(), STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length());
-	}
-	
-	public void testSetStyle2() {
-		
-		String str1= "One";
-		String str2= "Two";
-		String str3= "Three";
-		
-		String res= str1 + str2 + str3;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(res);
-		
-		styledString.setStyle(str1.length(), str2.length(), STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, str1.length(), str2.length());
-	}
-	
-	public void testSetStyle3() {
-		
-		String str1= "One";
-		String str2= "Two";
-		String str3= "Three";
-		
-		String res= str1 + str2 + str3;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(res);
-		
-		styledString.setStyle(str1.length(), res.length() - str1.length(), STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, str1.length(), res.length() - str1.length());
-	}
-	
-	public void testSetStyle4() {
-		
-		String str1= "One";
-		String str2= "Two";
-		String str3= "Three";
-		
-		String res= str1 + str2 + str3;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(res);
-		
-		styledString.setStyle(0, res.length(), STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, res.length());
-	}
-	
-	public void testSetStyle5() {
-		
-		String str1= "One";
-		String str2= "Two";
-		String str3= "Three";
-		
-		String res= str1 + str2 + str3;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(res);
-		
-		styledString.setStyle(0, res.length(), null);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(0, styleRanges.length);
-	}
-	
-	public void testSetStyle6() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString(str1, STYLER1);
-		styledString.append(str2);
-		
-		styledString.setStyle(str1.length(), str2.length(), STYLER2);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length());
-		assertEquals(styleRanges[1], STYLER2, str1.length(), str2.length());
-	}
-	
-	public void testSetStyleInsert() {
-
-		String str1= "One";
-		String str2= "Two";
-		String str3= "Three";
-
-		String res= str1 + str2 + str3;
-
-		StyledString styledString= new StyledString(str1);
-		styledString.append(str2 + str3, STYLER1);
-
-		styledString.setStyle(str1.length() + 1, str2.length(), STYLER2);
-
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(3, styleRanges.length);
-
-		assertEquals(styleRanges[0], STYLER1, str1.length(), 1);
-		assertEquals(styleRanges[1], STYLER2, str1.length() + 1, str2.length());
-		assertEquals(styleRanges[2], STYLER1, str1.length() + str2.length() + 1, str3.length() - 1);
-	}
-	
-	public void testSetStyleInsert2() {
-		
-		String str1= "one";
-		String str2= "two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString(res);
-		
-		styledString.setStyle(0, str1.length(), STYLER1);
-		styledString.setStyle(str1.length(), 1, STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, str1.length() + 1);
-	}
-
-	public void testSetStyle7() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString(str1);
-		styledString.append(str2, STYLER1);
-		
-		styledString.setStyle(0, str1.length(), STYLER2);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER2, 0, str1.length());
-		assertEquals(styleRanges[1], STYLER1, str1.length(), str2.length());
-	}
-	
-	public void testSetStyle8() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(0, str1.length(), STYLER2);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		assertEquals(styleRanges[0], STYLER2, 0, res.length());
-	}
-	
-	public void testSetStyle9() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(0, res.length(), null);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(0, styleRanges.length);
-	}
-	
-	public void testSetStyle10() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(1, res.length() - 2, null);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, 1);
-		assertEquals(styleRanges[1], STYLER2, res.length() - 1, 1);
-	}
-	
-	public void testSetStyle11() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(1, res.length() - 1, STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, res.length());
-	}
-	
-	public void testSetStyle12() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(0, res.length() - 1, STYLER2);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER2, 0, res.length());
-	}
-	
-	public void testSetStyle13() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(1, res.length() - 2, STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, res.length() - 1);
-		assertEquals(styleRanges[1], STYLER2, res.length() - 1, 1);
-	}
-	
-	public void testSetStyle14() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, STYLER1);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(1, res.length() - 2, STYLER2);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, 1);
-		assertEquals(styleRanges[1], STYLER2, 1, res.length() - 1);
-	}
-	
-	public void testSetStyle15() {
-		
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, null);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(0, 1, STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, 1);
-		assertEquals(styleRanges[1], STYLER2, str1.length(), str2.length());
-	}
-	
-	public void testSetStyle16() {
-				
-		String res= "H2O";
-		
-		StyledString styledString= new StyledString();
-		styledString.append('H', null);
-		styledString.append('2', STYLER1);
-		styledString.append('O', STYLER2);
-		
-		styledString.setStyle(0, res.length(), STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 0, res.length());
-	}
-	
-	public void testSetStyle17() {
-		
-		String res= "H2O";
-		
-		StyledString styledString= new StyledString();
-		styledString.append('H', null);
-		styledString.append('2', STYLER1);
-		styledString.append('O', STYLER2);
-		
-		styledString.setStyle(0, res.length(), null);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(0, styleRanges.length);
-	}
-	
-	public void testSetStyle18() {
-		String res= "H2OH2O";
-		
-		StyledString styledString= new StyledString();
-		styledString.append('H', null);
-		styledString.append('2', STYLER1);
-		styledString.append('O', STYLER2);
-		styledString.append('H', null);
-		styledString.append('2', STYLER2);
-		styledString.append('O', STYLER1);
-		
-		styledString.setStyle(1, res.length() - 2, STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 1, res.length() - 1);
-	}
-	
-	public void testSetStyle19() {
-		String res= "O2O2O2O2O2O2";
-		
-		StyledString styledString= new StyledString();
-		styledString.append("O2", null);
-		styledString.append("O2", STYLER1);
-		styledString.append("O2", STYLER2);
-		styledString.append("O2", STYLER1);
-		styledString.append("O2", STYLER2);
-		styledString.append("O2", null);
-		
-		styledString.setStyle(1, res.length() - 2, STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 1, res.length() - 2);
-	}
-	
-	public void testSetStyle20() {
-		String res= "O2O2O2O2O2O2";
-		
-		StyledString styledString= new StyledString();
-		styledString.append("O2", null);
-		styledString.append("O2", STYLER1);
-		styledString.append("O2", STYLER2);
-		styledString.append("O2", STYLER1);
-		styledString.append("O2", STYLER2);
-		styledString.append("O2", null);
-		
-		styledString.setStyle(3, 6, null);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 2, 1);
-		assertEquals(styleRanges[1], STYLER2, 9, 1);
-	}
-	
-	public void testSetStyle21() {
-		String res= "O2O2O2O2O2O2";
-		
-		StyledString styledString= new StyledString();
-		styledString.append("O2", null);
-		styledString.append("O2", STYLER1);
-		styledString.append("O2", STYLER2);
-		styledString.append("O2", STYLER1);
-		styledString.append("O2", STYLER2);
-		styledString.append("O2", null);
-		
-		styledString.setStyle(3, 6, STYLER1);
-		styledString.setStyle(3, 6, null);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(2, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, 2, 1);
-		assertEquals(styleRanges[1], STYLER2, 9, 1);
-	}
-	
-	public void testCombination1() {
-		String str1= "One";
-		String str2= "Two";
-		
-		String res= str1 + str2 + str1;
-		
-		StyledString styledString= new StyledString();
-		styledString.append(str1, null);
-		styledString.append(str2, STYLER2);
-		
-		styledString.setStyle(str1.length(), str2.length(), STYLER1);
-		
-		styledString.append(str1, STYLER1);
-		
-		assertEquals(res.length(), styledString.length());
-		assertEquals(res, styledString.getString());
-		StyleRange[] styleRanges= styledString.getStyleRanges();
-		assertEquals(1, styleRanges.length);
-		
-		assertEquals(styleRanges[0], STYLER1, str1.length(), str2.length() + str1.length());
-	}
-	
-	
-	private void assertEquals(StyleRange range, TestStyler style, int offset, int length) {
-		assertEquals(offset, range.start);
-		assertEquals(length, range.length);
-		assertEquals(style.borderStyle, range.borderStyle);
-	}
-	
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableColorProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableColorProviderTest.java
deleted file mode 100644
index 70b8e32..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableColorProviderTest.java
+++ /dev/null
@@ -1,245 +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:
- *     Initial implementation - Gunnar Ahlberg (IBS AB, www.ibs.net)
- *     IBM Corporation - further revisions
- *******************************************************************************/
-
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.tests.viewers.TableViewerTest.TableTestLabelProvider;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.ITableColorProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * The TableColorProviderTest is a test suite designed to test 
- * ITableColorProviders.
- */
-public class TableColorProviderTest extends StructuredViewerTest {
-    Color red = null;
-
-    Color green = null;
-
-    /**
-     * Create a new instance of the receiver
-     * @param name
-     */
-    public TableColorProviderTest(String name) {
-        super(name);
-    }
-
-    /**
-     *  Test with a standard color provider.
-     */
-    public void testColorProviderForeground() {
-        TableViewer viewer = (TableViewer) fViewer;
-        ColorViewLabelProvider provider = new ColorViewLabelProvider();
-        
-        viewer.setLabelProvider(provider);
-
-        //refresh so that the colors are set
-        fViewer.refresh();
-
-        assertEquals("foreground 1 green", viewer.getTable().getItem(0).getForeground(0), green);//$NON-NLS-1$
-        assertEquals("foreground 2 green", viewer.getTable().getItem(0).getForeground(1), green);//$NON-NLS-1$
-
-        provider.fExtended = false;
-
-    }
-
-    /**
-     * Test that the backgrounds are being set.
-     */
-    public void testColorProviderBackground() {
-        TableViewer viewer = (TableViewer) fViewer;
-        ColorViewLabelProvider provider = new ColorViewLabelProvider();
-        
-        viewer.setLabelProvider(provider);
-        
-        fViewer.refresh();
-
-        assertEquals("background 1 red", viewer.getTable().getItem(0).getBackground(0), red);//$NON-NLS-1$
-        assertEquals("background 2 red", viewer.getTable().getItem(1).getBackground(1), red);//$NON-NLS-1$
-
-        provider.fExtended = false;
-
-    }
-
-    /**
-     * Test that the foregrounds are being set.
-     *
-     */
-    public void testTableItemsColorProviderForeground() {
-        TableViewer viewer = (TableViewer) fViewer;
-        TableColorViewLabelProvider provider = new TableColorViewLabelProvider();
-        
-        viewer.setLabelProvider(provider);
-        Table table = viewer.getTable();
-
-        fViewer.refresh();
-
-        assertEquals("table item 1 green", table.getItem(0).getForeground(0), green);//$NON-NLS-1$
-        assertEquals("table item 2 red", table.getItem(0).getForeground(1), red);//$NON-NLS-1$
-        provider.fExtended = false;
-
-    }
-
-    /**
-     * Test the table item colours.
-     *
-     */
-    public void testTableItemsColorProviderBackground() {
-        TableViewer viewer = (TableViewer) fViewer;
-        TableColorViewLabelProvider provider = new TableColorViewLabelProvider();
-        
-        viewer.setLabelProvider(provider);
-        
-        Table table = viewer.getTable();
-        fViewer.refresh();
-
-        assertEquals("table item 1 background red", table.getItem(0).getBackground(0), red);//$NON-NLS-1$
-        assertEquals("table item 2 background green", table.getItem(0).getBackground(1), green);//$NON-NLS-1$
-        provider.fExtended = false;
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#tearDown()
-     */
-    public void tearDown() {
-        super.tearDown();
-        red.dispose();
-        green.dispose();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#setUp()
-     */
-    public void setUp() {
-        super.setUp();
-        red = new Color(Display.getCurrent(), 255, 0, 0);
-        green = new Color(Display.getCurrent(), 0, 255, 0);
-    }
-
-    /**
-     * Run as a stand alone test
-     * @param args
-     */
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(TableColorProviderTest.class);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#createViewer(org.eclipse.swt.widgets.Composite)
-     */
-    protected StructuredViewer createViewer(Composite parent) {
-        TableViewer viewer = new TableViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        
-        viewer.getTable().setLinesVisible(true);
-
-        TableLayout layout = new TableLayout();
-        viewer.getTable().setLayout(layout);
-        viewer.getTable().setHeaderVisible(true);
-        String headers[] = { "column 1 header", "column 2 header" };//$NON-NLS-1$ //$NON-NLS-2$
-
-        ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-                new ColumnWeightData(100) };
-
-        final TableColumn columns[] = new TableColumn[headers.length];
-
-        for (int i = 0; i < headers.length; i++) {
-            layout.addColumnData(layouts[i]);
-            TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, i);
-            tc.setResizable(layouts[i].resizable);
-            tc.setText(headers[i]);
-            columns[i] = tc;
-        }
-        return viewer;
-    }
-
-    protected int getItemCount() {
-        TestElement first = fRootElement.getFirstChild();
-        TableItem ti = (TableItem) fViewer.testFindItem(first);
-        Table table = ti.getParent();
-        return table.getItemCount();
-    }
-
-    protected String getItemText(int at) {
-        Table table = (Table) fViewer.getControl();
-        return table.getItem(at).getText();
-    }
-
-    class TableColorViewLabelProvider extends TableTestLabelProvider implements
-            ITableColorProvider {
-
-        public Image getColumnImage(Object obj, int index) {
-            return null;
-        }
-
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.viewers.ITableColorProvider#getForeground(java.lang.Object, int)
-         */
-        public Color getForeground(Object element, int columnIndex) {
-            switch (columnIndex) {
-            case 0:
-                return green;
-
-            default:
-                return red;
-            }
-        }
-        
-       
-
-        /* (non-Javadoc)
-         * @see org.eclipse.jface.viewers.ITableColorProvider#getBackground(java.lang.Object, int)
-         */
-        public Color getBackground(Object element, int columnIndex) {
-            switch (columnIndex) {
-            case 0:
-                return red;
-            default:
-                return green;
-            }
-        }
-
-    }
-
-    /**
-     * A class to test color providing without coloured columns.
-     */
-    class ColorViewLabelProvider extends TableTestLabelProvider implements IColorProvider{
-    	/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-		 */
-		public Color getBackground(Object element) {
-			return red;
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-		 */
-		public Color getForeground(Object element) {
-			return green;
-		}
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableFontProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableFontProviderTest.java
deleted file mode 100644
index 7bfd819..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableFontProviderTest.java
+++ /dev/null
@@ -1,208 +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.jface.tests.viewers;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.tests.viewers.TableViewerTest.TableTestLabelProvider;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.ITableFontProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * The TableFontProviderTest is a test suite designed to test
- * ITableFontProviders.
- */
-public class TableFontProviderTest extends StructuredViewerTest {
-	Font font1;
-
-	Font font2;
-	
-
-	/**
-	 * Create a new instance of the receiver
-	 * 
-	 * @param name
-	 */
-	public TableFontProviderTest(String name) {
-		super(name);
-	}
-
-	/**
-	 *  Test the general font provider.
-	 */
-	public void testFontProvider() {
-		TableViewer viewer = (TableViewer) fViewer;
-		
-		FontViewLabelProvider provider = new FontViewLabelProvider();
-		viewer.setLabelProvider(provider);
-
-
-		//refresh so that the colors are set
-		fViewer.refresh();
-
-		compareFontDatas(viewer.getTable().getItem(0).getFont(0), font1);//$NON-NLS-1$
-		compareFontDatas(viewer.getTable().getItem(0).getFont(1), font1);//$NON-NLS-1$
-		
-
-		provider.fExtended = false;
-
-	}
-
-	/**
-	 * Test that the fonts are being set.
-	 *  
-	 */
-	public void testTableItemsFontProvider() {
-		TableViewer viewer = (TableViewer) fViewer;
-
-		TableFontViewLabelProvider provider = new TableFontViewLabelProvider();
-		viewer.setLabelProvider(provider);
-
-		Table table = viewer.getTable();
-
-		fViewer.refresh();
-
-		compareFontDatas(font1, table.getItem(0).getFont(0));//$NON-NLS-1$
-		compareFontDatas(font2,table.getItem(0).getFont(1));//$NON-NLS-1$
-		provider.fExtended = false;
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#setUp()
-	 */
-	public void setUp() {
-		super.setUp();
-		font1 = JFaceResources.getFont(JFaceResources.BANNER_FONT);
-		font2 = JFaceResources.getFont(JFaceResources.HEADER_FONT);
-		
-	}
-
-	/**
-	 * Run as a stand alone test
-	 * 
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(TableFontProviderTest.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-		TableViewer viewer = new TableViewer(parent);
-		viewer.setContentProvider(new TestModelContentProvider());
-		viewer.getTable().setLinesVisible(true);
-
-		TableLayout layout = new TableLayout();
-		viewer.getTable().setLayout(layout);
-		viewer.getTable().setHeaderVisible(true);
-		String headers[] = { "column 1 header", "column 2 header" };//$NON-NLS-1$ //$NON-NLS-2$
-
-		ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-				new ColumnWeightData(100) };
-
-		final TableColumn columns[] = new TableColumn[headers.length];
-
-		for (int i = 0; i < headers.length; i++) {
-			layout.addColumnData(layouts[i]);
-			TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, i);
-			tc.setResizable(layouts[i].resizable);
-			tc.setText(headers[i]);
-			columns[i] = tc;
-		}
-		return viewer;
-	}
-
-	protected int getItemCount() {
-		TestElement first = fRootElement.getFirstChild();
-		TableItem ti = (TableItem) fViewer.testFindItem(first);
-		Table table = ti.getParent();
-		return table.getItemCount();
-	}
-
-	protected String getItemText(int at) {
-		Table table = (Table) fViewer.getControl();
-		return table.getItem(at).getText();
-	}
-	
-	private void compareFontDatas(Font font1, Font font2){
-		
-		FontData[] font1Data = font1.getFontData();
-		FontData[] font2Data = font2.getFontData();
-		
-		assertTrue("Mismatched sizes",font1Data.length == font2Data.length);
-		for (int a = 0; a < font2Data.length; a++) {
-			assertTrue("Mismatched fontData",font1Data[a].equals(font2Data[a]));
-		}
-		
-		
-	}
-
-	class TableFontViewLabelProvider extends TableTestLabelProvider implements
-			ITableFontProvider {
-
-		public Image getColumnImage(Object obj, int index) {
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ITableFontProvider#getFont(java.lang.Object,
-		 *      int)
-		 */
-		public Font getFont(Object element, int columnIndex) {
-			switch (columnIndex) {
-			case 0:
-				return font1;
-
-			default:
-				return font2;
-			}
-		}
-
-	}
-
-	/**
-	 * A label provider that does not provide font support entry by entry.
-	 */
-	class FontViewLabelProvider extends TableTestLabelProvider implements
-			IFontProvider {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-		 */
-		public Font getFont(Object element) {
-			return font1;
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableTreeViewerTest.java
deleted file mode 100644
index 7985c18..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableTreeViewerTest.java
+++ /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
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableTreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.TableTree;
-import org.eclipse.swt.custom.TableTreeItem;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class TableTreeViewerTest extends AbstractTreeViewerTest {
-
-    public static class TableTreeTestLabelProvider extends TestLabelProvider
-            implements ITableLabelProvider {
-        public boolean fExtended = false;
-
-        public String getText(Object element) {
-            if (fExtended)
-                return providedString((String) element);
-
-            return element.toString();
-        }
-
-        public String getColumnText(Object element, int index) {
-            if (fExtended)
-                return providedString((TestElement) element);
-            return element.toString();
-        }
-
-        public Image getColumnImage(Object element, int columnIndex) {
-            return null;
-        }
-    }
-
-    public TableTreeViewerTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-        TableTreeViewer viewer = new TableTreeViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        viewer.setLabelProvider(new TableTreeTestLabelProvider());
-        viewer.getTableTree().getTable().setLinesVisible(true);
-
-        TableLayout layout = new TableLayout();
-        viewer.getTableTree().getTable().setLayout(layout);
-        viewer.getTableTree().getTable().setHeaderVisible(true);
-        String headers[] = { "column 1 header", "column 2 header" };
-
-        ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-                new ColumnWeightData(100) };
-
-        final TableColumn columns[] = new TableColumn[headers.length];
-
-        for (int i = 0; i < headers.length; i++) {
-            layout.addColumnData(layouts[i]);
-            TableColumn tc = new TableColumn(viewer.getTableTree().getTable(),
-                    SWT.NONE, i);
-            tc.setResizable(layouts[i].resizable);
-            tc.setText(headers[i]);
-            columns[i] = tc;
-        }
-        fTreeViewer = viewer;
-        return viewer;
-    }
-
-    protected int getItemCount() {
-        TestElement first = fRootElement.getFirstChild();
-        TableTreeItem ti = (TableTreeItem) fViewer.testFindItem(first);
-        TableTree table = ti.getParent();
-        return table.getItemCount();
-    }
-
-    protected int getItemCount(TestElement element) {
-        TableTreeItem ti = (TableTreeItem) fViewer.testFindItem(element);
-        return ti.getItemCount();
-    }
-
-    protected String getItemText(int at) {
-        TableTree table = (TableTree) fViewer.getControl();
-        return table.getItems()[at].getText();
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(TableTreeViewerTest.class);
-    }
-
-    public void testLabelProvider() {
-        TableTreeViewer viewer = (TableTreeViewer) fViewer;
-        TableTreeTestLabelProvider provider = (TableTreeTestLabelProvider) viewer
-                .getLabelProvider();
-        provider.fExtended = true;
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-        TestElement first = fRootElement.getFirstChild();
-        String newLabel = providedString(first);
-        assertEquals("rendered label", newLabel, getItemText(0));
-        provider.fExtended = false;
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-    }
-
-    public void testLabelProviderStateChange() {
-        TableTreeViewer viewer = (TableTreeViewer) fViewer;
-        TableTreeTestLabelProvider provider = (TableTreeTestLabelProvider) viewer
-                .getLabelProvider();
-        provider.fExtended = true;
-        provider.setSuffix("added suffix");
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-        TestElement first = fRootElement.getFirstChild();
-        String newLabel = providedString(first);
-        assertEquals("rendered label", newLabel, getItemText(0));
-        provider.fExtended = false;
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerComparatorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerComparatorTest.java
deleted file mode 100644
index 57d68a6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerComparatorTest.java
+++ /dev/null
@@ -1,114 +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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-/**
- * @since 3.2
- *
- */
-public class TableViewerComparatorTest extends ViewerComparatorTest {
-
-	/**
-	 * @param name
-	 */
-	public TableViewerComparatorTest(String name) {
-		super(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-		TableViewer viewer = new TableViewer(parent);
-		viewer.setContentProvider(new TeamModelContentProvider());
-		viewer.setLabelProvider(new TeamModelLabelProvider());
-		viewer.getTable().setLinesVisible(true);
-
-		TableLayout layout = new TableLayout();
-		viewer.getTable().setLayout(layout);
-		viewer.getTable().setHeaderVisible(true);
-		String headers[] = { "column 1 header", "column 2 header" };
-
-		ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-				new ColumnWeightData(100) };
-
-		final TableColumn columns[] = new TableColumn[headers.length];
-
-		for (int i = 0; i < headers.length; i++) {
-			layout.addColumnData(layouts[i]);
-			TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, i);
-			tc.setResizable(layouts[i].resizable);
-			tc.setText(headers[i]);
-			columns[i] = tc;
-		}
-
-		return viewer;
-	}
-	
-	public void testViewerSorter(){
-		fViewer.setSorter(new ViewerSorter());
-		assertSortedResult(TEAM1_SORTED);
-	}
-	
-	public void testViewerSorterInsertElement(){
-		fViewer.setSorter(new ViewerSorter());
-		team1.addMember("Duong");
-		assertSortedResult(TEAM1_SORTED_WITH_INSERT);
-	}
-	
-	public void testViewerComparator(){
-		fViewer.setComparator(new ViewerComparator());
-		assertSortedResult(TEAM1_SORTED);
-	}
-	
-	public void testViewerComparatorInsertElement(){
-		fViewer.setComparator(new ViewerComparator());
-		team1.addMember("Duong");
-		assertSortedResult(TEAM1_SORTED_WITH_INSERT);
-	}
-	
-	private void assertSortedResult(String[] expected){
-		TableItem[] items = getTableViewer().getTable().getItems();
-		for (int i = 0; i < items.length; i++){
-			TableItem item = items[i];
-			assertEquals("Item not expected.  actual=" + item.getText() + " expected=", expected[i], item.getText());
-		}
-	}
-	
-	protected void setInput() {
-		fViewer.setInput(team1);
-	}
-	
-	protected TableViewer getTableViewer(){
-		return (TableViewer)fViewer;
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(TableViewerComparatorTest.class);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java
deleted file mode 100644
index a146c43..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TableViewerTest.java
+++ /dev/null
@@ -1,188 +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.jface.tests.viewers;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerColumn;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-
-public class TableViewerTest extends StructuredItemViewerTest {
-	public static class TableTestLabelProvider extends TestLabelProvider
-			implements ITableLabelProvider {
-		public boolean fExtended = false;
-
-		public String getText(Object element) {
-			if (fExtended)
-				return providedString((String) element);
-			return element.toString();
-		}
-
-		public String getColumnText(Object element, int index) {
-			if (fExtended)
-				return providedString((TestElement) element);
-			return element.toString();
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-	}
-
-	public TableViewerTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Creates the viewer used by this test, under the given parent widget.
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-		TableViewer viewer = createTableViewer(parent);
-		viewer.setContentProvider(getContentProvider());
-		viewer.setLabelProvider(new TableTestLabelProvider());
-		viewer.getTable().setLinesVisible(true);
-
-		TableLayout layout = new TableLayout();
-		viewer.getTable().setLayout(layout);
-		viewer.getTable().setHeaderVisible(true);
-		String headers[] = { "column 1 header", "column 2 header" };
-
-		ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-				new ColumnWeightData(100) };
-
-		final TableColumn columns[] = new TableColumn[headers.length];
-
-		for (int i = 0; i < headers.length; i++) {
-			layout.addColumnData(layouts[i]);
-			TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, i);
-			tc.setResizable(layouts[i].resizable);
-			tc.setText(headers[i]);
-			columns[i] = tc;
-		}
-
-		return viewer;
-	}
-	
-	ViewerColumn getViewerColumn(ColumnViewer viewer, int index) {
-		Method method;
-		try {
-			method = ColumnViewer.class.getDeclaredMethod("getViewerColumn", new Class[]{int.class});
-			method.setAccessible(true);
-			return (ViewerColumn) method.invoke(viewer, new Object[]{new Integer(index)});
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	public void testViewerColumn() {
-    	assertNull(getViewerColumn((TableViewer) fViewer, -1));
-		assertNotNull(getViewerColumn((TableViewer) fViewer, 0));
-		assertNotNull(getViewerColumn((TableViewer) fViewer, 1));
-		assertNull(getViewerColumn((TableViewer) fViewer, 2));
-    }
-	
-	/**
-	 * Get the content provider for the viewer.
-	 * 
-	 * @return IContentProvider
-	 */
-	protected TestModelContentProvider getContentProvider() {
-		return new TestModelContentProvider();
-	}
-
-	/**
-	 * Create the table viewer for the test
-	 * 
-	 * @param parent
-	 * @return
-	 */
-	protected TableViewer createTableViewer(Composite parent) {
-		return new TableViewer(parent);
-	}
-
-	protected int getItemCount() {
-		TestElement first = fRootElement.getFirstChild();
-		TableItem ti = (TableItem) fViewer.testFindItem(first);
-		Table table = ti.getParent();
-		return table.getItemCount();
-	}
-
-	protected String getItemText(int at) {
-		Table table = (Table) fViewer.getControl();
-		return table.getItem(at).getText();
-	}
-
-	public static void main(String args[]) {
-		junit.textui.TestRunner.run(TableViewerTest.class);
-	}
-
-	public void testLabelProvider() {
-
-		TableViewer viewer = (TableViewer) fViewer;
-		TableTestLabelProvider provider = (TableTestLabelProvider) viewer
-				.getLabelProvider();
-
-		provider.fExtended = true;
-		// BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for
-		// LabelProvider changes
-		fViewer.refresh();
-		TestElement first = fRootElement.getFirstChild();
-		String newLabel = providedString(first);
-		assertEquals("rendered label", newLabel, getItemText(0));
-		provider.fExtended = false;
-		// BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for
-		// LabelProvider changes
-	}
-
-	public void testLabelProviderStateChange() {
-		TableViewer tableviewer = (TableViewer) fViewer;
-		TableTestLabelProvider provider = (TableTestLabelProvider) tableviewer
-				.getLabelProvider();
-
-		provider.fExtended = true;
-		provider.setSuffix("added suffix");
-		// BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for
-		// LabelProvider changes
-		tableviewer.refresh();
-		TestElement first = fRootElement.getFirstChild();
-		String newLabel = providedString(first);
-		assertEquals("rendered label", newLabel, getItemText(0));
-		provider.fExtended = false;
-		// BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for
-		// LabelProvider changes
-		fViewer.refresh();
-	}
-
-	public void testRemove() {
-		TableViewer tableviewer = (TableViewer) fViewer;
-		TestElement first = fRootElement.getFirstChild();
-		((TestElement) fViewer.getInput()).deleteChild(first);
-		tableviewer.remove(first);
-		assertTrue("Removed item still exists",
-				fViewer.testFindItem(first) == null);
-
-	}
-
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestComparator.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestComparator.java
deleted file mode 100644
index 1814fce..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestComparator.java
+++ /dev/null
@@ -1,30 +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.jface.tests.viewers;
-
-import java.util.Comparator;
-
-/**
- * @since 3.1
- */
-public class TestComparator implements Comparator {
-
-    public volatile int comparisons = 0;
-    
-    /* (non-Javadoc)
-     * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-     */
-    public int compare(Object arg0, Object arg1) {
-        comparisons++;
-
-        return (arg0.toString()).compareTo(arg1.toString());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestElement.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestElement.java
deleted file mode 100644
index 882549a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestElement.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.Vector;
-
-public class TestElement implements Cloneable {
-    TestModel fModel;
-
-    TestElement fContainer;
-
-    String fSomeName;
-
-    String fId;
-
-    Vector fChildren = new Vector();
-
-    boolean fIsDeleted = false;
-
-    public static final String P_SOMENAME = "org.eclipse.jface.viewertest.name";
-
-    public static final String P_COLUMN_1 = "org.eclipse.jface.viewertest.column1";
-
-    public TestElement(TestModel model, TestElement container) {
-        fModel = model;
-        fContainer = container;
-        int p = 0;
-        TestElement lastSibling = container.getLastChild();
-        if (lastSibling != null) {
-            p = lastSibling.childId() + 1;
-        }
-        fId = container.getID() + "-" + p;
-    }
-
-    public TestElement(TestModel model, TestElement container, int level,
-            int position) {
-        fModel = model;
-        fContainer = container;
-        if (container != null)
-            fId = container.getID() + "-" + position;
-        else
-            fId = Integer.toString(position);
-        fSomeName = "name-" + position;
-
-        if (level < model.getNumLevels()) {
-            for (int i = 0; i < model.getNumChildren(); i++) {
-                fChildren.add(new TestElement(model, this, level + 1, i));
-            }
-        }
-    }
-
-    public TestElement addChild(int event) {
-        TestElement element = new TestElement(fModel, this);
-        element.fSomeName = "added";
-        addChild(element, new TestModelChange(event, this, element));
-        return element;
-    }
-
-    public TestElement addChild(TestElement element, TestModelChange change) {
-        fChildren.add(element);
-        fModel.fireModelChanged(change);
-        return element;
-    }
-
-    public void addChildren(TestElement[] elements, TestModelChange change) {
-        for (int i = 0; i < elements.length; i++)
-            fChildren.add(elements[i]);
-        fModel.fireModelChanged(change);
-    }
-
-    public TestElement[] addChildren(int event) {
-        TestElement elements[] = new TestElement[] {
-                new TestElement(fModel, this), new TestElement(fModel, this) };
-
-        elements[0].fSomeName = "added1";
-        elements[1].fSomeName = "added2";
-        // change the id of the second element, otherwise there will be
-        // two equal elements under the same parent
-        elements[1].fId += "madeUnique";
-        addChildren(elements, new TestModelChange(event, this, elements));
-        return elements;
-    }
-
-    public TestElement basicAddChild() {
-        TestElement element = new TestElement(fModel, this);
-        element.fSomeName = "added";
-        fChildren.add(element);
-        return element;
-    }
-
-    public void basicDeleteChild(TestElement element) {
-        fChildren.remove(element);
-        element.fIsDeleted = true;
-    }
-
-    private int childId() {
-        String id = fId.substring(fId.lastIndexOf("-") + 1);
-        return Integer.parseInt(id);
-    }
-
-    public Object clone() {
-        try {
-            return super.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new Error(); // should not happen
-        }
-    }
-
-    static public TestElement createModel(int numLevels, int numChildren) {
-        return new TestElement(new TestModel(numLevels, numChildren), null, 0,
-                0);
-    }
-
-    public void deleteChild(TestElement element) {
-        deleteChild(element, new TestModelChange(TestModelChange.REMOVE, this,
-                element));
-    }
-
-    public void deleteChild(TestElement element, TestModelChange change) {
-        basicDeleteChild(element);
-        fModel.fireModelChanged(change);
-    }
-
-    public void deleteChildren() {
-        for (int i = fChildren.size() - 1; i >= 0; i--) {
-            TestElement te = (TestElement) fChildren.elementAt(i);
-            fChildren.remove(te);
-            te.fIsDeleted = true;
-        }
-        fModel.fireModelChanged(new TestModelChange(
-                TestModelChange.STRUCTURE_CHANGE, this));
-    }
-
-    public void deleteSomeChildren() {
-        for (int i = fChildren.size() - 1; i >= 0; i -= 2) {
-            TestElement te = (TestElement) fChildren.elementAt(i);
-            fChildren.remove(te);
-            te.fIsDeleted = true;
-        }
-        fModel.fireModelChanged(new TestModelChange(
-                TestModelChange.STRUCTURE_CHANGE, this));
-    }
-
-    public boolean equals(Object arg) {
-        if (!(arg instanceof TestElement))
-            return false;
-        TestElement element = (TestElement) arg;
-        return element.fId.equals(fId);
-    }
-
-    public TestElement getChildAt(int i) {
-        return (TestElement) fChildren.elementAt(i);
-    }
-
-    public int getChildCount() {
-        return fChildren.size();
-    }
-    
-    /**
-     * Get the children of the receiver.
-     * @return TestElement[]
-     */
-    public TestElement[] getChildren(){
-    	TestElement[] result = new TestElement[fChildren.size()];
-    	fChildren.toArray(result);
-    	return result;    	
-    }
-
-    public TestElement getContainer() {
-        return fContainer;
-    }
-
-    public TestElement getFirstChild() {
-        if (fChildren.size() > 0)
-            return (TestElement) fChildren.elementAt(0);
-        return null;
-    }
-
-    public String getID() {
-        return fId;
-    }
-
-    public String getLabel() {
-        return fSomeName;
-    }
-
-    public TestElement getLastChild() {
-        int size = fChildren.size();
-        if (size > 0)
-            return (TestElement) fChildren.elementAt(size - 1);
-        return null;
-    }
-
-    public TestModel getModel() {
-        return fModel;
-    }
-
-    public int hashCode() {
-        return fId.hashCode();
-    }
-
-    public boolean isDeleted() {
-        return fIsDeleted;
-    }
-
-    public void setLabel(String label) {
-        fSomeName = label;
-        fModel.fireModelChanged(new TestModelChange(
-                TestModelChange.NON_STRUCTURE_CHANGE, this));
-    }
-
-    public boolean testDeleted() {
-        if (fIsDeleted)
-            return true;
-        if (fContainer != null)
-            return fContainer.testDeleted();
-        return false;
-    }
-
-    public String toString() {
-        return getID() + " " + getLabel();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLabelProvider.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLabelProvider.java
deleted file mode 100644
index 711b5b2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLabelProvider.java
+++ /dev/null
@@ -1,39 +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.jface.tests.viewers;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-public class TestLabelProvider extends LabelProvider {
-
-    static Image fgImage = null;
-
-    /**
-     *
-     */
-    public static Image getImage() {
-        if (fgImage == null)
-            fgImage = ImageDescriptor.createFromFile(TestLabelProvider.class,
-                    "images/java.gif").createImage();
-        return fgImage;
-    }
-
-    public Image getImage(Object element) {
-        return getImage();
-    }
-
-    public String getText(Object element) {
-        String label = element.toString();
-        return label + " <rendered>";
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLazyModelContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLazyModelContentProvider.java
deleted file mode 100644
index 4cb3f2b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestLazyModelContentProvider.java
+++ /dev/null
@@ -1,74 +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.jface.tests.viewers;
-
-import junit.framework.AssertionFailedError;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILazyContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * The TestLazyModelContentProvider is the lazy version
- * of the model content provider.
- */
-public class TestLazyModelContentProvider extends TestModelContentProvider implements ILazyContentProvider, IContentProvider {
-	
-	TableViewerTest test;
-	TestElement input;
-	
-	TestLazyModelContentProvider(TableViewerTest testObject){
-		test = testObject;
-		if(!(testObject instanceof VirtualLazyTableViewerTest)) {
-			throw new AssertionFailedError("TestLazyModelContentProvider only works with VirtualLazyTableViewerTest");
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILazyContentProvider#updateElements(int, int)
-	 */
-	public void updateElement(int index) {
-		
-		((VirtualLazyTableViewerTest)test).updateElementCalled(index);
-
-		if(input == null)
-			return; //Nothing to update yet
-		
-        ((TableViewer) test.fViewer).replace(input.getChildAt(index), index);
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.TestModelContentProvider#dispose()
-	 */
-	public void dispose() {
-		super.dispose();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.TestModelContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		input = (TestElement) newInput;
-		((TableViewer)viewer).setItemCount(input==null?0:input.getChildCount());
-		super.inputChanged(viewer, oldInput, newInput);
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.TestModelContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object element) {
-		Assert.isTrue(false,"Should not ever call getElements if lazy");
-		return super.getElements(element);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModel.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModel.java
deleted file mode 100644
index 21a8f34..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModel.java
+++ /dev/null
@@ -1,53 +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.jface.tests.viewers;
-
-import java.util.Vector;
-
-public class TestModel {
-    Vector fListeners = new Vector();
-
-    int fNumLevels;
-
-    int fNumChildren;
-
-    public TestModel(int numLevels, int numChildren) {
-        fNumLevels = numLevels;
-        fNumChildren = numChildren;
-    }
-
-    public void addListener(ITestModelListener listener) {
-        fListeners.addElement(listener);
-    }
-
-    /**
-     * Fires a model changed event to all listeners.
-     */
-    public void fireModelChanged(TestModelChange change) {
-        for (int i = 0; i < fListeners.size(); ++i) {
-            ITestModelListener listener = (ITestModelListener) fListeners
-                    .get(i);
-            listener.testModelChanged(change);
-        }
-    }
-
-    public int getNumChildren() {
-        return fNumChildren;
-    }
-
-    public int getNumLevels() {
-        return fNumLevels;
-    }
-
-    public void removeListener(ITestModelListener listener) {
-        fListeners.removeElement(listener);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelChange.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelChange.java
deleted file mode 100644
index db92b6d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelChange.java
+++ /dev/null
@@ -1,63 +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.jface.tests.viewers;
-
-public class TestModelChange {
-    private int fKind;
-
-    private TestElement fParent;
-
-    private TestElement[] fChildren;
-
-    public static final int KIND_MASK = 0x0F;
-
-    public static final int INSERT = 1;
-
-    public static final int REMOVE = 2;
-
-    public static final int STRUCTURE_CHANGE = 3;
-
-    public static final int NON_STRUCTURE_CHANGE = 4;
-
-    public static final int REVEAL = 16;
-
-    public static final int SELECT = 32;
-
-    public TestModelChange(int kind, TestElement parent) {
-        this(kind, parent, new TestElement[0]);
-    }
-
-    public TestModelChange(int kind, TestElement parent, TestElement[] children) {
-        fKind = kind;
-        fParent = parent;
-        fChildren = children;
-    }
-
-    public TestModelChange(int kind, TestElement parent, TestElement child) {
-        this(kind, parent, new TestElement[] { child });
-    }
-
-    public TestElement[] getChildren() {
-        return fChildren;
-    }
-
-    public int getKind() {
-        return fKind & KIND_MASK;
-    }
-
-    public int getModifiers() {
-        return fKind & ~KIND_MASK;
-    }
-
-    public TestElement getParent() {
-        return fParent;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelContentProvider.java
deleted file mode 100644
index 3928e64..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelContentProvider.java
+++ /dev/null
@@ -1,151 +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.jface.tests.viewers;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-public class TestModelContentProvider implements ITestModelListener,
-        IStructuredContentProvider, ITreeContentProvider {
-    Viewer fViewer;
-
-    public void dispose() {
-    }
-
-    protected void doInsert(TestModelChange change) {
-        if (fViewer instanceof ListViewer) {
-            if (change.getParent() != null
-                    && change.getParent().equals(fViewer.getInput())) {
-                ((ListViewer) fViewer).add(change.getChildren());
-            }
-        } else if (fViewer instanceof TableViewer) {
-            if (change.getParent() != null
-                    && change.getParent().equals(fViewer.getInput())) {
-                ((TableViewer) fViewer).add(change.getChildren());
-            }
-        } else if (fViewer instanceof AbstractTreeViewer) {
-            ((AbstractTreeViewer) fViewer).add(change.getParent(), change
-                    .getChildren());
-        } else if (fViewer instanceof ComboViewer) {
-            ((ComboViewer) fViewer).add(change.getChildren());
-        } else {
-            Assert.isTrue(false, "Unknown kind of viewer");
-        }
-    }
-
-    protected void doNonStructureChange(TestModelChange change) {
-        if (fViewer instanceof StructuredViewer) {
-            ((StructuredViewer) fViewer).update(change.getParent(),
-                    new String[] { IBasicPropertyConstants.P_TEXT });
-        } else {
-            Assert.isTrue(false, "Unknown kind of viewer");
-        }
-    }
-
-    protected void doRemove(TestModelChange change) {
-        if (fViewer instanceof ListViewer) {
-            ((ListViewer) fViewer).remove(change.getChildren());
-        } else if (fViewer instanceof TableViewer) {
-            ((TableViewer) fViewer).remove(change.getChildren());
-        } else if (fViewer instanceof AbstractTreeViewer) {
-            ((AbstractTreeViewer) fViewer).remove(change.getChildren());
-        } else if (fViewer instanceof ComboViewer) {
-            ((ComboViewer) fViewer).remove(change.getChildren());
-        } else {
-            Assert.isTrue(false, "Unknown kind of viewer");
-        }
-    }
-
-    protected void doStructureChange(TestModelChange change) {
-        if (fViewer instanceof StructuredViewer) {
-            ((StructuredViewer) fViewer).refresh(change.getParent());
-        } else {
-            Assert.isTrue(false, "Unknown kind of viewer");
-        }
-    }
-
-    public Object[] getChildren(Object element) {
-        TestElement testElement = (TestElement) element;
-        int count = testElement.getChildCount();
-        TestElement[] children = new TestElement[count];
-        for (int i = 0; i < count; ++i)
-            children[i] = testElement.getChildAt(i);
-        return children;
-    }
-
-    public Object[] getElements(Object element) {
-        return getChildren(element);
-    }
-
-    public Object getParent(Object element) {
-        return ((TestElement) element).getContainer();
-    }
-
-    public boolean hasChildren(Object element) {
-        return ((TestElement) element).getChildCount() > 0;
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        fViewer = viewer;
-        TestElement oldElement = (TestElement) oldInput;
-        if (oldElement != null) {
-            oldElement.getModel().removeListener(this);
-        }
-        TestElement newElement = (TestElement) newInput;
-        if (newElement != null) {
-            newElement.getModel().addListener(this);
-        }
-    }
-
-    public boolean isDeleted(Object element) {
-        return ((TestElement) element).isDeleted();
-    }
-
-    public void testModelChanged(TestModelChange change) {
-        switch (change.getKind()) {
-        case TestModelChange.INSERT:
-            doInsert(change);
-            break;
-        case TestModelChange.REMOVE:
-            doRemove(change);
-            break;
-        case TestModelChange.STRUCTURE_CHANGE:
-            doStructureChange(change);
-            break;
-        case TestModelChange.NON_STRUCTURE_CHANGE:
-            doNonStructureChange(change);
-            break;
-        default:
-            throw new IllegalArgumentException("Unknown kind of change");
-        }
-
-        StructuredSelection selection = new StructuredSelection(change
-                .getChildren());
-        if ((change.getModifiers() & TestModelChange.SELECT) != 0) {
-            ((StructuredViewer) fViewer).setSelection(selection);
-        }
-        if ((change.getModifiers() & TestModelChange.REVEAL) != 0) {
-            Object element = selection.getFirstElement();
-            if (element != null) {
-                ((StructuredViewer) fViewer).reveal(element);
-            }
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelLazyTreeContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelLazyTreeContentProvider.java
deleted file mode 100644
index 6d64b60..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TestModelLazyTreeContentProvider.java
+++ /dev/null
@@ -1,61 +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.jface.tests.viewers;
-
-import junit.framework.Assert;
-
-import org.eclipse.jface.viewers.ILazyTreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-public class TestModelLazyTreeContentProvider extends TestModelContentProvider
-		implements ILazyTreeContentProvider {
-
-	private final TreeViewer treeViewer;
-
-	public TestModelLazyTreeContentProvider(TreeViewer treeViewer) {
-		this.treeViewer = treeViewer;
-	}
-
-	public void updateElement(Object parent, int index) {
-		TestElement parentElement = (TestElement) parent;
-		if(parentElement.getChildCount() > index) {
-			TestElement childElement = parentElement.getChildAt(index);
-			treeViewer.replace(parent, index, childElement);
-			treeViewer.setChildCount(childElement, childElement.getChildCount());
-		}
-	}
-
-	public Object[] getChildren(Object element) {
-		Assert.fail("should not be called on a LazyTreeContentProvider");
-		return null;
-	}
-
-	public Object[] getElements(Object element) {
-		Assert.fail("should not be called on a LazyTreeContentProvider");
-		return null;
-	}
-
-	public boolean hasChildren(Object element) {
-		Assert.fail("should not be called on a LazyTreeContentProvider");
-		return false;
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput,
-			final Object newInput) {
-		super.inputChanged(viewer, oldInput, newInput);
-	}
-
-	public void updateChildCount(Object element, int currentChildCount) {
-		treeViewer.setChildCount(element, ((TestElement) element).getChildCount());
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeManagerTest.java
deleted file mode 100644
index 288617e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeManagerTest.java
+++ /dev/null
@@ -1,654 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.internal.dialogs.TreeManager;
-import org.eclipse.ui.internal.dialogs.TreeManager.TreeItem;
-
-public class TreeManagerTest extends TestCase {
-	
-	private static final List STATE_NAMES;
-	
-	private static final int CHECKSTATE_UNCHECKED = 0;
-	private static final int CHECKSTATE_GRAY = 1;
-	private static final int CHECKSTATE_CHECKED = 2;
-	
-	static {
-		STATE_NAMES = new ArrayList();
-		STATE_NAMES.add(CHECKSTATE_UNCHECKED, "unchecked");
-		STATE_NAMES.add(CHECKSTATE_GRAY, "gray");
-		STATE_NAMES.add(CHECKSTATE_CHECKED, "checked");
-	}
-	
-	private static String getName(int checkstate) {
-		return (String)STATE_NAMES.get(checkstate);
-	}
-	
-	private static void assertState(TreeItem item, int expectedState) throws Exception {
-		Field checkStateField = TreeItem.class.getDeclaredField("checkState");
-		checkStateField.setAccessible(true);
-		int checkState = checkStateField.getInt(item);
-				
-		assertEquals("For TreeItem " + item.getLabel() + ", expected " + 
-				getName(expectedState) + " but was " + getName(checkState) + ";",
-				expectedState, checkState);
-	}
-	
-	public void testSingleEntry() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem item = manager.new TreeItem("item");
-		
-		item.setCheckState(true);		
-		assertState(item, CHECKSTATE_CHECKED);
-		
-		item.setCheckState(true);		
-		assertState(item, CHECKSTATE_CHECKED);
-		
-		item.setCheckState(false);		
-		assertState(item, CHECKSTATE_UNCHECKED);
-		
-		item.setCheckState(true);		
-		assertState(item, CHECKSTATE_CHECKED);
-		
-		item.setCheckState(false);		
-		assertState(item, CHECKSTATE_UNCHECKED);
-
-		item.setCheckState(false);		
-		assertState(item, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testSingleChildAffectsParent() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem parent = manager.new TreeItem("parent");
-		TreeItem child = manager.new TreeItem("child");
-		parent.addChild(child);
-		
-		child.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		child.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		child.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-		
-		child.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		child.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-		
-		child.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testTwoChildrenAffectParent() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem parent = manager.new TreeItem("parent");
-		TreeItem son = manager.new TreeItem("son");
-		TreeItem daughter = manager.new TreeItem("daughter");
-		parent.addChild(son);
-		parent.addChild(daughter);
-		
-		son.setCheckState(true);
-		daughter.setCheckState(false);
-		assertState(parent, CHECKSTATE_GRAY);
-		assertState(son, CHECKSTATE_CHECKED);
-		assertState(daughter, CHECKSTATE_UNCHECKED);
-		
-		daughter.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(son, CHECKSTATE_CHECKED);
-		assertState(daughter, CHECKSTATE_CHECKED);
-		
-		son.setCheckState(false);
-		assertState(parent, CHECKSTATE_GRAY);
-		assertState(son, CHECKSTATE_UNCHECKED);
-		assertState(daughter, CHECKSTATE_CHECKED);
-		
-		daughter.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(son, CHECKSTATE_UNCHECKED);
-		assertState(daughter, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testCheckUncheckChildAt3Deep() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem grandparent = manager.new TreeItem("grandparent");
-		TreeItem parent = manager.new TreeItem("parent");
-		TreeItem child = manager.new TreeItem("child");
-		grandparent.addChild(parent);
-		parent.addChild(child);
-		
-		child.setCheckState(true);
-		assertState(grandparent, CHECKSTATE_CHECKED);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		child.setCheckState(true);
-		assertState(grandparent, CHECKSTATE_CHECKED);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		child.setCheckState(false);
-		assertState(grandparent, CHECKSTATE_UNCHECKED);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-		
-		child.setCheckState(true);
-		assertState(grandparent, CHECKSTATE_CHECKED);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		child.setCheckState(false);
-		assertState(grandparent, CHECKSTATE_UNCHECKED);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-		
-		child.setCheckState(false);
-		assertState(grandparent, CHECKSTATE_UNCHECKED);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testCauseGrayAt3Deep() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem grandparent = manager.new TreeItem("grandparent");
-		TreeItem parent = manager.new TreeItem("parent");
-		TreeItem child1 = manager.new TreeItem("child1");
-		TreeItem child2 = manager.new TreeItem("child2");
-		grandparent.addChild(parent);
-		parent.addChild(child1);
-		parent.addChild(child2);
-		
-		child1.setCheckState(true);
-		child2.setCheckState(false);
-		assertState(grandparent, CHECKSTATE_GRAY);
-		assertState(parent, CHECKSTATE_GRAY);
-		assertState(child1, CHECKSTATE_CHECKED);
-		assertState(child2, CHECKSTATE_UNCHECKED);
-		
-		child2.setCheckState(true);
-		assertState(grandparent, CHECKSTATE_CHECKED);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child1, CHECKSTATE_CHECKED);
-		assertState(child2, CHECKSTATE_CHECKED);
-		
-		child1.setCheckState(false);
-		assertState(grandparent, CHECKSTATE_GRAY);
-		assertState(parent, CHECKSTATE_GRAY);
-		assertState(child1, CHECKSTATE_UNCHECKED);
-		assertState(child2, CHECKSTATE_CHECKED);
-		
-		child2.setCheckState(false);
-		assertState(grandparent, CHECKSTATE_UNCHECKED);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child1, CHECKSTATE_UNCHECKED);
-		assertState(child2, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testCheckUncheckChildAt5Deep() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem items[] = new TreeItem[5];
-		for(int i = 0; i < items.length; i++) {
-			items[i] = manager.new TreeItem("item" + i);
-			if(i > 0)
-				items[i-1].addChild(items[i]);
-		}
-		
-		items[4].setCheckState(true);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_CHECKED);
-		
-		items[4].setCheckState(false);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testCauseGrayAt5Deep() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem items[] = new TreeItem[4];
-		for(int i = 0; i < items.length; i++) {
-			items[i] = manager.new TreeItem("item" + i);
-			if(i > 0)
-				items[i-1].addChild(items[i]);
-		}
-		TreeItem child1 = manager.new TreeItem("child1");
-		TreeItem child2 = manager.new TreeItem("child2");
-		items[3].addChild(child1);
-		items[3].addChild(child2);
-		
-		child1.setCheckState(true);
-		child2.setCheckState(false);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_GRAY);
-		assertState(child1, CHECKSTATE_CHECKED);
-		assertState(child2, CHECKSTATE_UNCHECKED);
-		
-		child2.setCheckState(true);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_CHECKED);
-		assertState(child1, CHECKSTATE_CHECKED);
-		assertState(child2, CHECKSTATE_CHECKED);
-		
-		child1.setCheckState(false);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_GRAY);
-		assertState(child1, CHECKSTATE_UNCHECKED);
-		assertState(child2, CHECKSTATE_CHECKED);
-		
-		child2.setCheckState(false);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_UNCHECKED);
-		assertState(child1, CHECKSTATE_UNCHECKED);
-		assertState(child2, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testChildrenInMultipleBranchesAffectAncestors() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem root = manager.new TreeItem("root");
-		TreeItem itemA = manager.new TreeItem("itemA");
-		TreeItem itemA1 = manager.new TreeItem("itemA1");
-		TreeItem itemA2 = manager.new TreeItem("itemA2");
-		TreeItem itemB = manager.new TreeItem("itemB");
-		TreeItem itemB1 = manager.new TreeItem("itemB1");
-		TreeItem itemB2 = manager.new TreeItem("itemB2");
-		
-		root.addChild(itemA);
-		root.addChild(itemB);
-		itemA.addChild(itemA1);
-		itemA.addChild(itemA2);
-		itemB.addChild(itemB1);
-		itemB.addChild(itemB2);
-		
-		itemA1.setCheckState(true);
-		itemA2.setCheckState(false);
-		itemB1.setCheckState(false);
-		itemB2.setCheckState(false);
-		
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_GRAY);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_UNCHECKED);
-		assertState(itemB1, CHECKSTATE_UNCHECKED);
-		assertState(itemB2, CHECKSTATE_UNCHECKED);
-		
-		itemB2.setCheckState(true);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_GRAY);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_GRAY);
-		assertState(itemB1, CHECKSTATE_UNCHECKED);
-		assertState(itemB2, CHECKSTATE_CHECKED);
-		
-		itemA1.setCheckState(false);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_UNCHECKED);
-		assertState(itemA1, CHECKSTATE_UNCHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_GRAY);
-		assertState(itemB1, CHECKSTATE_UNCHECKED);
-		assertState(itemB2, CHECKSTATE_CHECKED);
-		
-		itemB1.setCheckState(true);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_UNCHECKED);
-		assertState(itemA1, CHECKSTATE_UNCHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		assertState(itemB1, CHECKSTATE_CHECKED);
-		assertState(itemB2, CHECKSTATE_CHECKED);
-		
-		itemA1.setCheckState(true);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_GRAY);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		assertState(itemB1, CHECKSTATE_CHECKED);
-		assertState(itemB2, CHECKSTATE_CHECKED);
-		
-		itemA2.setCheckState(true);
-		assertState(root, CHECKSTATE_CHECKED);
-		assertState(itemA, CHECKSTATE_CHECKED);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_CHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		assertState(itemB1, CHECKSTATE_CHECKED);
-		assertState(itemB2, CHECKSTATE_CHECKED);
-		
-		itemB2.setCheckState(false);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_CHECKED);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_CHECKED);
-		assertState(itemB, CHECKSTATE_GRAY);
-		assertState(itemB1, CHECKSTATE_CHECKED);
-		assertState(itemB2, CHECKSTATE_UNCHECKED);
-		
-		itemA1.setCheckState(false);
-		itemA2.setCheckState(false);
-		itemB1.setCheckState(false);
-		assertState(root, CHECKSTATE_UNCHECKED);
-		assertState(itemA, CHECKSTATE_UNCHECKED);
-		assertState(itemA1, CHECKSTATE_UNCHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_UNCHECKED);
-		assertState(itemB1, CHECKSTATE_UNCHECKED);
-		assertState(itemB2, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testMultipleChildrenInOneBranchAffectParent() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem root = manager.new TreeItem("root");
-		TreeItem items[] = new TreeItem[5];
-		for(int i = 0; i < items.length; i++) {
-			items[i] = manager.new TreeItem("child" + i);
-			root.addChild(items[i]);
-			items[i].setCheckState(false);
-		}
-		
-		items[0].setCheckState(true);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(items[0], CHECKSTATE_CHECKED);
-		assertState(items[1], CHECKSTATE_UNCHECKED);
-		assertState(items[2], CHECKSTATE_UNCHECKED);
-		assertState(items[3], CHECKSTATE_UNCHECKED);
-		assertState(items[4], CHECKSTATE_UNCHECKED);
-		
-		items[1].setCheckState(true);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(items[0], CHECKSTATE_CHECKED);
-		assertState(items[1], CHECKSTATE_CHECKED);
-		assertState(items[2], CHECKSTATE_UNCHECKED);
-		assertState(items[3], CHECKSTATE_UNCHECKED);
-		assertState(items[4], CHECKSTATE_UNCHECKED);
-		
-		items[0].setCheckState(false);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(items[0], CHECKSTATE_UNCHECKED);
-		assertState(items[1], CHECKSTATE_CHECKED);
-		assertState(items[2], CHECKSTATE_UNCHECKED);
-		assertState(items[3], CHECKSTATE_UNCHECKED);
-		assertState(items[4], CHECKSTATE_UNCHECKED);
-		
-		items[2].setCheckState(true);
-		items[3].setCheckState(true);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(items[0], CHECKSTATE_UNCHECKED);
-		assertState(items[1], CHECKSTATE_CHECKED);
-		assertState(items[2], CHECKSTATE_CHECKED);
-		assertState(items[3], CHECKSTATE_CHECKED);
-		assertState(items[4], CHECKSTATE_UNCHECKED);
-		
-		items[0].setCheckState(true);
-		items[4].setCheckState(true);
-		assertState(root, CHECKSTATE_CHECKED);
-		assertState(items[0], CHECKSTATE_CHECKED);
-		assertState(items[1], CHECKSTATE_CHECKED);
-		assertState(items[2], CHECKSTATE_CHECKED);
-		assertState(items[3], CHECKSTATE_CHECKED);
-		assertState(items[4], CHECKSTATE_CHECKED);
-		
-		items[2].setCheckState(false);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(items[0], CHECKSTATE_CHECKED);
-		assertState(items[1], CHECKSTATE_CHECKED);
-		assertState(items[2], CHECKSTATE_UNCHECKED);
-		assertState(items[3], CHECKSTATE_CHECKED);
-		assertState(items[4], CHECKSTATE_CHECKED);
-		
-		items[0].setCheckState(false);
-		items[1].setCheckState(false);
-		items[3].setCheckState(false);
-		items[4].setCheckState(false);
-		assertState(root, CHECKSTATE_UNCHECKED);
-		assertState(items[0], CHECKSTATE_UNCHECKED);
-		assertState(items[1], CHECKSTATE_UNCHECKED);
-		assertState(items[2], CHECKSTATE_UNCHECKED);
-		assertState(items[3], CHECKSTATE_UNCHECKED);
-		assertState(items[4], CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testParentAffectsSingleChild() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem parent = manager.new TreeItem("parent");
-		TreeItem child = manager.new TreeItem("child");
-		parent.addChild(child);
-		
-		parent.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		parent.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		parent.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-		
-		parent.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(child, CHECKSTATE_CHECKED);
-		
-		parent.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-		
-		parent.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(child, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testParentAffectsTwoChildren() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem parent = manager.new TreeItem("parent");
-		TreeItem son = manager.new TreeItem("son");
-		TreeItem daughter = manager.new TreeItem("daughter");
-		parent.addChild(son);
-		parent.addChild(daughter);
-		
-		parent.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(son, CHECKSTATE_CHECKED);
-		assertState(daughter, CHECKSTATE_CHECKED);
-		
-		parent.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(son, CHECKSTATE_CHECKED);
-		assertState(daughter, CHECKSTATE_CHECKED);
-		
-		parent.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(son, CHECKSTATE_UNCHECKED);
-		assertState(daughter, CHECKSTATE_UNCHECKED);
-		
-		parent.setCheckState(true);
-		assertState(parent, CHECKSTATE_CHECKED);
-		assertState(son, CHECKSTATE_CHECKED);
-		assertState(daughter, CHECKSTATE_CHECKED);
-		
-		parent.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(son, CHECKSTATE_UNCHECKED);
-		assertState(daughter, CHECKSTATE_UNCHECKED);
-		
-		parent.setCheckState(false);
-		assertState(parent, CHECKSTATE_UNCHECKED);
-		assertState(son, CHECKSTATE_UNCHECKED);
-		assertState(daughter, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testParentAffectsMultipleChildrenInOneBranch() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem root = manager.new TreeItem("root");
-		TreeItem items[] = new TreeItem[5];
-		for(int i = 0; i < items.length; i++) {
-			items[i] = manager.new TreeItem("child" + i);
-			root.addChild(items[i]);
-			items[i].setCheckState(false);
-		}
-		
-		root.setCheckState(true);
-		assertState(root, CHECKSTATE_CHECKED);
-		assertState(items[0], CHECKSTATE_CHECKED);
-		assertState(items[1], CHECKSTATE_CHECKED);
-		assertState(items[2], CHECKSTATE_CHECKED);
-		assertState(items[3], CHECKSTATE_CHECKED);
-		assertState(items[4], CHECKSTATE_CHECKED);
-		
-		root.setCheckState(false);
-		assertState(root, CHECKSTATE_UNCHECKED);
-		assertState(items[0], CHECKSTATE_UNCHECKED);
-		assertState(items[1], CHECKSTATE_UNCHECKED);
-		assertState(items[2], CHECKSTATE_UNCHECKED);
-		assertState(items[3], CHECKSTATE_UNCHECKED);
-		assertState(items[4], CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testParentAffectsDescendantsInMultipleBranches() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem root = manager.new TreeItem("root");
-		TreeItem itemA = manager.new TreeItem("itemA");
-		TreeItem itemA1 = manager.new TreeItem("itemA1");
-		TreeItem itemA2 = manager.new TreeItem("itemA2");
-		TreeItem itemB = manager.new TreeItem("itemB");
-		TreeItem itemB1 = manager.new TreeItem("itemB1");
-		TreeItem itemB2 = manager.new TreeItem("itemB2");
-		
-		root.addChild(itemA);
-		root.addChild(itemB);
-		itemA.addChild(itemA1);
-		itemA.addChild(itemA2);
-		itemB.addChild(itemB1);
-		itemB.addChild(itemB2);
-		
-		root.setCheckState(true);
-		assertState(root, CHECKSTATE_CHECKED);
-		assertState(itemA, CHECKSTATE_CHECKED);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_CHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		assertState(itemB1, CHECKSTATE_CHECKED);
-		assertState(itemB2, CHECKSTATE_CHECKED);
-		
-		root.setCheckState(false);
-		assertState(root, CHECKSTATE_UNCHECKED);
-		assertState(itemA, CHECKSTATE_UNCHECKED);
-		assertState(itemA1, CHECKSTATE_UNCHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_UNCHECKED);
-		assertState(itemB1, CHECKSTATE_UNCHECKED);
-		assertState(itemB2, CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testCheckUncheckParentWithDescendants5Deep() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem items[] = new TreeItem[5];
-		for(int i = 0; i < items.length; i++) {
-			items[i] = manager.new TreeItem("item" + i);
-			if(i > 0)
-				items[i-1].addChild(items[i]);
-		}
-		
-		items[0].setCheckState(true);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_CHECKED);
-		
-		items[0].setCheckState(false);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_UNCHECKED);
-	}
-	
-	public void testChangeOnGray() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem root = manager.new TreeItem("root");
-		TreeItem itemA = manager.new TreeItem("itemA");
-		TreeItem itemA1 = manager.new TreeItem("itemA1");
-		TreeItem itemA2 = manager.new TreeItem("itemA2");
-		TreeItem itemB = manager.new TreeItem("itemB");
-		
-		root.addChild(itemA);
-		root.addChild(itemB);
-		itemA.addChild(itemA1);
-		itemA.addChild(itemA2);
-		
-		root.setCheckState(true);
-		assertState(root, CHECKSTATE_CHECKED);
-		assertState(itemA, CHECKSTATE_CHECKED);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_CHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		
-		itemA.setCheckState(false);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_UNCHECKED);
-		assertState(itemA1, CHECKSTATE_UNCHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		
-		itemA1.setCheckState(true);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_GRAY);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		
-		itemA.setCheckState(false);
-		assertState(root, CHECKSTATE_GRAY);
-		assertState(itemA, CHECKSTATE_UNCHECKED);
-		assertState(itemA1, CHECKSTATE_UNCHECKED);
-		assertState(itemA2, CHECKSTATE_UNCHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-		
-		itemA.setCheckState(true);
-		assertState(root, CHECKSTATE_CHECKED);
-		assertState(itemA, CHECKSTATE_CHECKED);
-		assertState(itemA1, CHECKSTATE_CHECKED);
-		assertState(itemA2, CHECKSTATE_CHECKED);
-		assertState(itemB, CHECKSTATE_CHECKED);
-	}
-	
-	public void testCheckUncheckItemWithAncestorsAndDescendants() throws Exception {
-		TreeManager manager = new TreeManager();
-		TreeItem items[] = new TreeItem[5];
-		for(int i = 0; i < items.length; i++) {
-			items[i] = manager.new TreeItem("item" + i);
-			if(i > 0)
-				items[i-1].addChild(items[i]);
-		}
-		
-		items[3].setCheckState(true);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_CHECKED);
-		
-		items[3].setCheckState(false);
-		for(int i = 0; i < items.length; i++)
-			assertState(items[i], CHECKSTATE_UNCHECKED);
-	}
-	
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeSelectionTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeSelectionTest.java
deleted file mode 100644
index 0ed53bf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeSelectionTest.java
+++ /dev/null
@@ -1,46 +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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeSelection;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.2
- *
- */
-public class TreeSelectionTest extends TestCase {
-	
-	public TreeSelectionTest(String name) {
-		super(name);
-	}
-	
-	public void testBug1384558() {
-		Object one = new Object();
-		Object two = new Object();
-		Object three = new Object();
-		TreePath[] treePaths1 = new TreePath[3];
-		treePaths1[0] = new TreePath(new Object[]{one, two});
-		treePaths1[1] = new TreePath(new Object[]{one, three});
-		treePaths1[2] = new TreePath(new Object[]{two, two});
-		TreeSelection treeSelection1 = new TreeSelection(treePaths1);
-		TreePath[] treePaths2 = new TreePath[2];
-		treePaths2[0] = new TreePath(new Object[]{one, two});
-		treePaths2[1] = new TreePath(new Object[]{one, three});
-		TreeSelection treeSelection2 = new TreeSelection(treePaths2);
-		// before fixing the bug, this threw an AIOOBE:
-		assertFalse(treeSelection1.equals(treeSelection2));
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java
deleted file mode 100644
index 22f0bd0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerColumnTest.java
+++ /dev/null
@@ -1,145 +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.jface.tests.viewers;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.jface.viewers.ColumnViewer;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.ViewerColumn;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-
-public class TreeViewerColumnTest extends AbstractTreeViewerTest {
-
-    public static class TableTreeTestLabelProvider extends TestLabelProvider
-            implements ITableLabelProvider {
-        public boolean fExtended = false;
-
-        public String getText(Object element) {
-            if (fExtended)
-                return providedString((String) element);
-
-            return element.toString();
-        }
-
-        public String getColumnText(Object element, int index) {
-            if (fExtended)
-                return providedString((TestElement) element);
-            return element.toString();
-        }
-
-        public Image getColumnImage(Object element, int columnIndex) {
-            return null;
-        }
-    }
-
-    public TreeViewerColumnTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-        TreeViewer viewer = new TreeViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        viewer.setLabelProvider(new TableTreeTestLabelProvider());
-        viewer.getTree().setLinesVisible(true);
-
-        viewer.getTree().setHeaderVisible(true);
-        String headers[] = { "column 1 header", "column 2 header" };
-
-        final TreeColumn columns[] = new TreeColumn[headers.length];
-
-        for (int i = 0; i < headers.length; i++) {
-             TreeColumn tc = new TreeColumn(viewer.getTree(),
-                    SWT.NONE, i);
-            tc.setResizable(true);
-            tc.setText(headers[i]);
-            tc.setWidth(25);
-            columns[i] = tc;
-        }
-        fTreeViewer = viewer;
-        return viewer;
-    }
-    
-    protected int getItemCount() {
-        TestElement first = fRootElement.getFirstChild();
-        TreeItem ti = (TreeItem) fViewer.testFindItem(first);
-         return ti.getParent().getItemCount();
-    }
-
-    protected int getItemCount(TestElement element) {
-        TreeItem ti = (TreeItem) fViewer.testFindItem(element);
-        return ti.getItemCount();
-    }
-
-    protected String getItemText(int at) {
-        return ((Tree) fViewer.getControl()).getItems()[at].getText();
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(TreeViewerColumnTest.class);
-    }
-
-	private ViewerColumn getViewerColumn(ColumnViewer viewer, int index) {
-		Method method;
-		try {
-			method = ColumnViewer.class.getDeclaredMethod("getViewerColumn", new Class[]{int.class});
-			method.setAccessible(true);
-			return (ViewerColumn) method.invoke(viewer, new Object[]{new Integer(index)});
-		} catch (Exception e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-    public void testViewerColumn() {
-    	assertNull(getViewerColumn((TreeViewer) fViewer, -1));
-		assertNotNull(getViewerColumn((TreeViewer) fViewer, 0));
-		assertNotNull(getViewerColumn((TreeViewer) fViewer, 1));
-		assertNull(getViewerColumn((TreeViewer) fViewer, 2));
-    }
-    
-    public void testLabelProvider() {
-        TreeViewer viewer = (TreeViewer) fViewer;
-        TableTreeTestLabelProvider provider = (TableTreeTestLabelProvider) viewer
-                .getLabelProvider();
-        provider.fExtended = true;
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-        TestElement first = fRootElement.getFirstChild();
-        String newLabel = providedString(first);
-        assertEquals("rendered label", newLabel, getItemText(0));
-        provider.fExtended = false;
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-    }
-
-    public void testLabelProviderStateChange() {
-        TreeViewer viewer = (TreeViewer) fViewer;
-        TableTreeTestLabelProvider provider = (TableTreeTestLabelProvider) viewer
-                .getLabelProvider();
-        provider.fExtended = true;
-        provider.setSuffix("added suffix");
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-        TestElement first = fRootElement.getFirstChild();
-        String newLabel = providedString(first);
-        assertEquals("rendered label", newLabel, getItemText(0));
-        provider.fExtended = false;
-        // BUG 1FZ5SDC: JFUIF:WINNT - TableViewerColumn should listen for LabelProvider changes
-        fViewer.refresh();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerComparatorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerComparatorTest.java
deleted file mode 100644
index 8f3a08b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerComparatorTest.java
+++ /dev/null
@@ -1,205 +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.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-/**
- * @since 3.2
- *
- */
-public class TreeViewerComparatorTest extends ViewerComparatorTest{
-	
-	protected class TeamModelTreeContentProvider extends TeamModelContentProvider 
-				implements ITreeContentProvider{
-
-		/* (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.ITreeContentProvider#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof List){
-				List children = new ArrayList();
-				Iterator iter = ((List)parentElement).iterator();
-				while(iter.hasNext()){
-					Object next = iter.next();
-					if (next instanceof Team){
-						Team team = (Team)next;
-						children.add(team);
-					}
-				}
-				return children.toArray(new Team[children.size()]);
-			}
-			else if (parentElement instanceof Team){
-				return ((Team)parentElement).members;
-			}
-			return null; 
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object element) {
-			if (element instanceof TeamMember){
-				return ((TeamMember)element).team;
-			}
-			return null;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-		 */
-		public boolean hasChildren(Object element) {
-	        if (element instanceof Team) {
-	            if (getChildren(element).length > 0) {
-					return true;
-				}
-	        }
-	        return false;
-		}
-		
-		/* (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) {
-			List oldElement = (List) oldInput;
-	        if (oldElement != null) {
-	        	Iterator iter = oldElement.iterator();
-	        	while (iter.hasNext()){
-	        		((Team)iter.next()).removeListener(this);
-	        	}
-	        }
-	        List newElement = (List) newInput;
-	        if (newElement != null) {
-	        	Iterator iter = newElement.iterator();
-	        	while (iter.hasNext()){
-	        		((Team)iter.next()).addListener(this);
-	        	}
-	        }			
-		}
-	}
-	
-	/**
-	 * constructor
-	 */
-	public TreeViewerComparatorTest(String name) {
-		super(name);
-	}
-	
-	public void testViewerSorter(){
-		fViewer.setSorter(new ViewerSorter());
-		getTreeViewer().expandAll();
-		String[][] expected = {TEAM3_SORTED, TEAM2_SORTED, TEAM1_SORTED};
-		assertSortedResult(expected);
-	}
-	
-	public void testViewerSorterInsertElement(){
-		fViewer.setSorter(new ViewerSorter());
-		getTreeViewer().expandAll();
-		team1.addMember("Duong");
-		String[][] expected = {TEAM3_SORTED, TEAM2_SORTED, TEAM1_SORTED_WITH_INSERT};
-		assertSortedResult(expected);
-	}
-	
-	public void testViewerComparator(){
-		fViewer.setComparator(new ViewerComparator());
-		getTreeViewer().expandAll();
-		String[][] expected = {TEAM3_SORTED, TEAM2_SORTED, TEAM1_SORTED};
-		assertSortedResult(expected);
-	}
-	
-	public void testViewerComparatorInsertElement(){
-		fViewer.setComparator(new ViewerComparator());
-		getTreeViewer().expandAll();
-		team1.addMember("Duong");
-		String[][] expected = {TEAM3_SORTED, TEAM2_SORTED, TEAM1_SORTED_WITH_INSERT};
-		assertSortedResult(expected);
-	}
-	
-	private void assertSortedResult(String[][] resultArrays){
-		TreeItem[] rootItems = getTreeViewer().getTree().getItems();
-		assertEquals("Number of root items in tree not correct (actual=" + rootItems.length + ")", 3, rootItems.length);
-		TreeItem item = rootItems[0];
-		assertEquals("Item not expected.  actual=" + item.getText() + " expected=" + CORE, CORE, item.getText());	
-		item = rootItems[1];
-		assertEquals("Item not expected.  actual=" + item.getText() + " expected=" + RUNTIME, RUNTIME, item.getText());	
-		item = rootItems[2];
-		assertEquals("Item not expected.  actual=" + item.getText() + " expected=" + UI, UI, item.getText());	
-		
-		TreeItem[] childItems = rootItems[0].getItems();
-		for (int i = 0; i < childItems.length; i++){
-			TreeItem child = childItems[i];
-			String result = child.getText();
-			assertEquals("", resultArrays[0][i], result);		
-		}
-		childItems = rootItems[1].getItems();
-		for (int i = 0; i < childItems.length; i++){
-			TreeItem child = childItems[i];
-			String result = child.getText();
-			assertEquals("", resultArrays[1][i], result);		
-		}
-		childItems = rootItems[2].getItems();
-		for (int i = 0; i < childItems.length; i++){
-			TreeItem child = childItems[i];
-			String result = child.getText();
-			assertEquals("", resultArrays[2][i], result);		
-		}
-	}
-
-	protected TreeViewer getTreeViewer(){
-		return (TreeViewer)fViewer;
-	}
-	
-	protected StructuredViewer createViewer(Composite parent) {
-		Tree tree = new Tree(fShell, SWT.SINGLE | SWT.H_SCROLL
-                | SWT.V_SCROLL | SWT.BORDER);
-		TreeViewer viewer = new TreeViewer(tree);
-		viewer.setContentProvider(new TeamModelTreeContentProvider());
-		viewer.setLabelProvider(new TeamModelLabelProvider());
-		return viewer;
-	}
-
-	protected void setInput() {
-		List input = new ArrayList(3);
-		input.add(team1);
-		input.add(team2);
-		input.add(team3);
-		fViewer.setInput(input);
-	}
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		junit.textui.TestRunner.run(TreeViewerComparatorTest.class);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerTest.java
deleted file mode 100644
index f956147..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/TreeViewerTest.java
+++ /dev/null
@@ -1,53 +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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-public class TreeViewerTest extends AbstractTreeViewerTest {
-
-    public TreeViewerTest(String name) {
-        super(name);
-    }
-
-    protected StructuredViewer createViewer(Composite parent) {
-        fTreeViewer = new TreeViewer(parent);
-        fTreeViewer.setContentProvider(new TestModelContentProvider());
-        return fTreeViewer;
-    }
-
-    protected int getItemCount() {
-        TestElement first = fRootElement.getFirstChild();
-        TreeItem ti = (TreeItem) fViewer.testFindItem(first);
-        Tree tree = ti.getParent();
-        return tree.getItemCount();
-    }
-
-    /**
-     * getItemCount method comment.
-     */
-    protected int getItemCount(TestElement element) {
-        return element.getChildCount();
-    }
-
-    protected String getItemText(int at) {
-        Tree tree = (Tree) fTreeViewer.getControl();
-        return tree.getItems()[at].getText();
-    }
-
-    public static void main(String args[]) {
-        junit.textui.TestRunner.run(TreeViewerTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerComparatorTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerComparatorTest.java
deleted file mode 100644
index 79ea88d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerComparatorTest.java
+++ /dev/null
@@ -1,245 +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
- *     Brock Janiczak  (brockj@tpg.com.au) - Bug 142960 Performance tweak for ignored file processing
- ******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.Vector;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ComboViewer;
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * @since 3.2
- *
- */
-public abstract class ViewerComparatorTest extends ViewerTestCase {
-	protected String UI = "UI";
-	protected String[] TEAM1 = {"Karice", "Tod", "Eric", "Paul", 
-				"Mike", "Michael", "Andrea", "Kim", "Boris", "Susan"};
-	protected String[] TEAM1_SORTED = {"Andrea", "Boris", "Eric", "Karice", "Kim", 
-			"Michael", "Mike", "Paul", "Susan", "Tod"};
-	protected String[] TEAM1_SORTED_WITH_INSERT = {"Andrea", "Boris", "Duong", "Eric", "Karice", "Kim", 
-			"Michael", "Mike", "Paul", "Susan", "Tod"};
-	
-	protected String RUNTIME = "Runtime";
-	protected String[] TEAM2 = {"Pascal", "DJ", "Jeff", "Andrew", "Oleg"};
-	protected String[] TEAM2_SORTED = {"Andrew", "DJ", "Jeff", "Oleg", "Pascal"};
-	
-	protected String CORE = "Core";
-	protected String[] TEAM3 = {"John", "Michael", "Bogdan"};
-	protected String[] TEAM3_SORTED = {"Bogdan", "John", "Michael"};
-
-	protected Team team1 = new Team(UI, TEAM1);
-	protected Team team2 = new Team(RUNTIME, TEAM2);
-	protected Team team3 = new Team(CORE, TEAM3);
-	
-	/*
-	 * model object - parent
-	 */
-	protected class Team {
-		Vector fListeners = new Vector();
-		
-		TeamMember[] members;
-		String name;
-		
-		public Team(String name, String[] members){
-			this.name = name;
-			this.members = new TeamMember[members.length];
-			for (int i = 0; i < members.length; i++)
-				this.members[i] = new TeamMember(members[i], this);
-		}
-		
-		public void addMember(String person){
-			TeamMember newMember = new TeamMember(person, this);
-			TeamMember[] newMembers = new TeamMember[members.length + 1];
-			for (int i = 0; i < members.length; i++){
-				newMembers[i] = members[i];
-			}
-			newMembers[newMembers.length - 1] = newMember;
-			members = null;
-			members = newMembers;
-			newMembers = null;
-			fireModelChanged(new ComparatorModelChange(TestModelChange.INSERT, this, newMember));
-		}
-		
-	    public void addListener(IComparatorModelListener listener) {
-	        fListeners.addElement(listener);
-	    }
-
-	    /**
-	     * Fires a model changed event to all listeners.
-	     */
-	    public void fireModelChanged(ComparatorModelChange change) {
-	        for (int i = 0; i < fListeners.size(); ++i) {
-	        	IComparatorModelListener listener = (IComparatorModelListener) fListeners
-	                    .get(i);
-	            listener.modelChanged(change);
-	        }
-	    }
-
-	    public void removeListener(IComparatorModelListener listener) {
-	        fListeners.removeElement(listener);
-	    }
-	}
-	
-	/*
-	 * model object - child
-	 */
-	protected class TeamMember {
-		String name;
-		Team team;
-		
-		public TeamMember(String name, Team team){
-			this.name = name;
-			this.team = team;
-		}
-	}
-	
-	/*
-	 * label provider
-	 */
-	protected class TeamModelLabelProvider extends LabelProvider{
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-		 */
-		public String getText(Object element) {
-			if (element instanceof Team)
-				return ((Team)element).name;
-			else if (element instanceof TeamMember){
-				return ((TeamMember)element).name;
-			}
-			return element.toString();
-		}			
-	}
-	
-	/*
-	 * content provider
-	 */
-	protected class TeamModelContentProvider implements IComparatorModelListener,IStructuredContentProvider{
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-		 */
-		public Object[] getElements(Object inputElement) {
-			if (inputElement instanceof Team){
-				return ((Team)inputElement).members;
-			}
-			return new Object[0];
-		}
-
-		/* (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) {
-			if (oldInput != null){
-				((Team) oldInput).removeListener(this);;
-			}
-	       
-	        if (newInput != null){
-	        	((Team) newInput).addListener(this);
-	        }
-		}
-
-	    public void modelChanged(ComparatorModelChange change) {
-	        switch (change.getKind()) {
-	        case TestModelChange.INSERT:
-	            doInsert(change);
-	            break;
-	        case TestModelChange.REMOVE:
-	            doRemove(change);
-	            break;
-	        case TestModelChange.STRUCTURE_CHANGE:
-	            doStructureChange(change);
-	            break;
-	        case TestModelChange.NON_STRUCTURE_CHANGE:
-	            doNonStructureChange(change);
-	            break;
-	        default:
-	            throw new IllegalArgumentException("Unknown kind of change");
-	        }
-
-	        StructuredSelection selection = new StructuredSelection(change
-	                .getChildren());
-	        if ((change.getModifiers() & TestModelChange.SELECT) != 0) {
-	            fViewer.setSelection(selection);
-	        }
-	        if ((change.getModifiers() & TestModelChange.REVEAL) != 0) {
-	            Object element = selection.getFirstElement();
-	            if (element != null) {
-	                fViewer.reveal(element);
-	            }
-	        }
-	    }
-	    
-	    protected void doInsert(ComparatorModelChange change) {
-	        if (fViewer instanceof ListViewer) {
-	            if (change.getParent() != null
-	                    && change.getParent().equals(fViewer.getInput())) {
-	                ((ListViewer) fViewer).add(change.getChildren());
-	            }
-	        } else if (fViewer instanceof TableViewer) {
-	            if (change.getParent() != null
-	                    && change.getParent().equals(fViewer.getInput())) {
-	                ((TableViewer) fViewer).add(change.getChildren());
-	            }
-	        } else if (fViewer instanceof AbstractTreeViewer) {
-	            ((AbstractTreeViewer) fViewer).add(change.getParent(), change
-	                    .getChildren());
-	        } else if (fViewer instanceof ComboViewer) {
-	            ((ComboViewer) fViewer).add(change.getChildren());
-	        } else {
-	            Assert.isTrue(false, "Unknown kind of viewer");
-	        }
-	    }
-
-	    protected void doNonStructureChange(ComparatorModelChange change) {
-           fViewer.update(change.getParent(),
-                    new String[] { IBasicPropertyConstants.P_TEXT });
-	    }
-
-	    protected void doRemove(ComparatorModelChange change) {
-	        if (fViewer instanceof ListViewer) {
-	            ((ListViewer) fViewer).remove(change.getChildren());
-	        } else if (fViewer instanceof TableViewer) {
-	            ((TableViewer) fViewer).remove(change.getChildren());
-	        } else if (fViewer instanceof AbstractTreeViewer) {
-	            ((AbstractTreeViewer) fViewer).remove(change.getChildren());
-	        } else if (fViewer instanceof ComboViewer) {
-	            ((ComboViewer) fViewer).remove(change.getChildren());
-	        } else {
-	            Assert.isTrue(false, "Unknown kind of viewer");
-	        }
-	    }
-
-	    protected void doStructureChange(ComparatorModelChange change) {
-            fViewer.refresh(change.getParent());
-	    }
-	    
-	}
-	
-	public ViewerComparatorTest(String name) {
-		super(name);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerTestCase.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerTestCase.java
deleted file mode 100644
index 708f90f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/ViewerTestCase.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.util.ILogger;
-import org.eclipse.jface.util.ISafeRunnableRunner;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-
-public abstract class ViewerTestCase extends TestCase {
-
-	Display fDisplay;
-	protected Shell fShell;
-	protected StructuredViewer fViewer;
-	protected TestElement fRootElement;
-	public TestModel fModel;
-
-	public ViewerTestCase(String name) {
-		super(name);
-	}
-
-	protected void assertSelectionEquals(String message, TestElement expected) {
-	    ISelection selection = fViewer.getSelection();
-	    assertTrue(selection instanceof IStructuredSelection);
-	    IStructuredSelection expectedSelection = new StructuredSelection(
-	            expected);
-	    assertEquals("selectionEquals - " + message, selection, expectedSelection);
-	}
-
-	protected abstract StructuredViewer createViewer(Composite parent);
-
-	public void interact() {
-	    Shell shell = fShell;
-	    if (shell != null && !shell.isDisposed()) {
-	        Display display = shell.getDisplay();
-	        if (display != null) {
-	            while (shell.isVisible())
-	                display.readAndDispatch();
-	        }
-	    }
-	}
-
-	protected void openBrowser() {
-	    fDisplay = Display.getCurrent();
-	    if (fDisplay == null) {
-	        fDisplay = new Display();
-	    }
-	    fShell = new Shell(fDisplay, getShellStyle());
-	    fShell.setSize(500, 500);
-	    fShell.setLayout(new FillLayout());
-	    fViewer = createViewer(fShell);
-	    fViewer.setUseHashlookup(true);
-	    setInput();
-	    fShell.open();
-	    //processEvents();
-	}
-
-	/**
-	 * @return
-	 */
-	protected int getShellStyle() {
-		return SWT.SHELL_TRIM;
-	}
-
-	protected void setInput() {
-		fViewer.setInput(fRootElement);
-	}
-
-	public void processEvents() {
-	    Shell shell = fShell;
-	    if (shell != null && !shell.isDisposed()) {
-	        Display display = shell.getDisplay();
-	        if (display != null) {
-	            while (display.readAndDispatch()) {
-	            	// loop until there are no more events to dispatch
-	            }
-	        }
-	    }
-	}
-
-	public void setUp() {
-		Policy.setLog(new ILogger(){
-			public void log(IStatus status) {
-				fail(status.getMessage());
-			}});
-		SafeRunnable.setRunner(new ISafeRunnableRunner(){
-			public void run(ISafeRunnable code) {
-				try {
-					code.run();
-				} catch(Throwable th) {
-					throw new RuntimeException(th);
-				}
-			}});
-	    setUpModel();
-	    openBrowser();
-	}
-
-	protected void setUpModel() {
-		fRootElement = TestElement.createModel(3, 10);
-	    fModel = fRootElement.getModel();
-	}
-
-	void sleep(int d) {
-	    processEvents();
-        try {
-			Thread.sleep(d * 1000);
-		} catch (InterruptedException e) {
-			Thread.currentThread().interrupt();
-		}
-	}
-
-	public void tearDown() {
-	    processEvents();
-	    fViewer = null;
-	    if (fShell != null) {
-	        fShell.dispose();
-	        fShell = null;
-	    }
-	    // leave the display
-	    fRootElement = null;
-	    fModel = null;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTableViewerTest.java
deleted file mode 100644
index 202d4fb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTableViewerTest.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl <tom.schindl@bestsolution.at> - bug 170381
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.widgets.Table;
-
-
-/**
- * The VirtualLazyTableViewerTest is a test of table viewers
- * with lazy population.
- */
-public class VirtualLazyTableViewerTest extends VirtualTableViewerTest {
-	
-	private List updatedElements;
-	// by default, no failure is triggered when updateElement is called
-	int updatedElementFailureTriggerIndex = -1;
-
-	/**
-	 * Create a new instance of the receiver/
-	 * @param name
-	 */
-	public VirtualLazyTableViewerTest(String name) {
-		super(name);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.TableViewerTest#getContentProvider()
-	 */
-	protected TestModelContentProvider getContentProvider() {
-		return new TestLazyModelContentProvider(this);
-	}
-	
-	public void setUp() {
-		updatedElements = new ArrayList();
-		super.setUp();
-		processEvents();
-	}
-	
-	protected void setUpModel() {
-		fRootElement = TestElement.createModel(2, 100);
-        fModel = fRootElement.getModel();
-	}
-
-	public void tearDown() {
-		super.tearDown();
-		updatedElements = null;
-	}
-	
-	// this method is called from TestLazyModelContentProvider
-	public void updateElementCalled(int index) {
-		updatedElements.add(new Integer(index));
-		if(updatedElementFailureTriggerIndex!=-1 && updatedElements.size()>=updatedElementFailureTriggerIndex) {
-			fail("unexpected call to updateElement, this is the " + updatedElements.size() + "th call");
-		}
-	}
-	
-	/**
-	 * Test selecting all elements.
-	 */
-	public void testSetIndexedSelection() {
-		TestElement[] children = fRootElement.getChildren();
-		int selectionSize = children.length / 2;
-		int[] indices = new int[selectionSize];
-		for (int i = 0; i < indices.length; i++) {
-			indices[i]  = i * 2;			
-		}
-		
-		Table table = ((TableViewer) fViewer).getTable();
-		table.setSelection(indices);
-
-		// we are virtual, so not all indices we requested to select will be selected.
-		indices = table.getSelectionIndices();
-		selectionSize = indices.length;
-		assertTrue("Expected at least one selected element", selectionSize > 0);
-		
-		table.showSelection();
-		
-		IStructuredSelection result = (IStructuredSelection) fViewer
-				.getSelection();
-		assertEquals(selectionSize, result.size());
-		assertTrue("First elements do not match ",
-				result.getFirstElement() == children[indices[0]]);
-		int lastIndex = indices[indices.length - 1];
-		assertTrue(
-				"Last elements do not match ",
-				result.toArray()[result.size() - 1] == children[lastIndex]);
-	
-	}
-	
-	public void testSetInputDoesNotMaterializeEverything() {
-		fViewer.setInput(null);
-		updatedElements.clear();
-		// Assume something is wrong if all TableItems are materialized:
-		updatedElementFailureTriggerIndex = fRootElement.getChildCount();
-		fViewer.setInput(fRootElement);
-
-		int materializedSize = updatedElements.size();
-		assertTrue("Expected less than " + fRootElement.getChildCount()
-				+ ", actual " + materializedSize,
-				materializedSize < fRootElement.getChildCount());
-		// create a new model and check if we get an equal number of calls to updateElement
-		setUpModel();
-		updatedElements.clear();
-		fViewer.setInput(fRootElement);
-		assertEquals(materializedSize, updatedElements.size());
-	}
-	
-	public void testBug160153() {
-		int childCount = fRootElement.getChildCount();
-		TestElement lastChild = fRootElement.getChildAt(childCount-1);
-		// materialize last child
-		fViewer.setSelection(new StructuredSelection(lastChild));
-		processEvents();
-		assertNotNull("last Child should be in the map", fViewer.testFindItem(lastChild));
-		((TableViewer)fViewer).setItemCount(childCount - 1);
-		assertNull("last Child should no longer be in the map", fViewer.testFindItem(lastChild));
-	}
-	
-
-	public void testSorter() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-	
-	public void testRenameWithSorter() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-	
-	public void testSetFilters() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-	
-	public void testFilter() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-	
-	public void testRenameWithFilter() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTreeViewerTest.java
deleted file mode 100644
index 868fe50..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualLazyTreeViewerTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl - bug 151205
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Tree;
-
-public class VirtualLazyTreeViewerTest extends TreeViewerTest {
-
-	protected int setDataCalls = 0;
-
-	public VirtualLazyTreeViewerTest(String name) {
-		super(name);
-	}
-
-    protected StructuredViewer createViewer(Composite parent) {
-    	Tree tree = new Tree(parent, SWT.VIRTUAL);
-    	tree.addListener(SWT.SetData, new Listener(){
-
-			public void handleEvent(Event event) {
-				setDataCalls++;
-			}});
-        fTreeViewer = new TreeViewer(tree);
-        fTreeViewer.setContentProvider(new TestModelLazyTreeContentProvider((TreeViewer) fTreeViewer));
-        return fTreeViewer;
-    }
-    
-    public void setUp() {
-    	super.setUp();
-    	// process events because the content provider uses an asyncExec to set the item count of the tree
-    	processEvents();
-    }
-    
-    protected void setInput() {
-		super.setInput();
-	}
-    
-    public void tearDown() {
-    	super.tearDown();
-//    	System.out.println("calls: " + setDataCalls);
-    }
-    
-    public void testLeafIsExpandable() {
-    	TestElement leafElement = fRootElement.getChildAt(2).getChildAt(3).getChildAt(2);
-    	assertEquals(0, leafElement.getChildCount());
-		assertFalse(fTreeViewer.isExpandable(leafElement));
-    }
-
-    public void testRootIsExpandable() {
-    	TestElement rootElement = fRootElement.getChildAt(2);
-    	assertTrue(rootElement.getChildCount() > 0);
-    	assertTrue(fTreeViewer.isExpandable(rootElement));
-    }
-    
-    public void testNodeIsExpandable() {
-    	TestElement nodeElement = fRootElement.getChildAt(2).getChildAt(3);
-    	assertTrue(nodeElement.getChildCount() > 0);
-    	assertTrue(fTreeViewer.isExpandable(nodeElement));
-    }
-    
-
-    public void testRefreshWithDuplicateChild() {
-    	// Test leads to infinite loop. Duplicate children are a bad idea in virtual trees.
-    }
-    
-    public void testSetExpandedWithCycle() {
-    	// Test leads to infinite loop. Cycles are a bad idea in virtual trees.
-    }
-    
-    public void testFilterExpanded() {
-    	// no need to test since virtual trees do not support filtering
-    }
-    
-    public void testFilter() {
-    	// no need to test since virtual trees do not support filtering
-    }
-    
-    public void testSetFilters() {
-    	// no need to test since virtual trees do not support filtering
-    }
-    
-    public void testInsertSiblingWithFilterFiltered() {
-    	// no need to test since virtual trees do not support filtering
-    }
-    
-    public void testInsertSiblingWithFilterNotFiltered() {
-    	// no need to test since virtual trees do not support filtering
-    }
-    
-    public void testInsertSiblingWithSorter() {
-    	// no need to test since virtual trees do not support sorting
-    }
-        
-    public void testRenameWithFilter() {
-    	// no need to test since virtual trees do not support filtering
-    }
-    
-    public void testRenameWithSorter() {
-    	// no need to test since virtual trees do not support sorting
-    }
-    
-    public void testSorter() {
-    	// no need to test since virtual trees do not support sorting
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java
deleted file mode 100644
index 84b6406..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTableViewerTest.java
+++ /dev/null
@@ -1,339 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Tom Schindl - bug 151205, 170381
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-/**
- * The TableViewerTest is a test of the SWT#VIRTUAL support in TableViewers,
- */
-public class VirtualTableViewerTest extends TableViewerTest {
-
-	Set visibleItems = new HashSet();
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param name
-	 */
-	public VirtualTableViewerTest(String name) {
-		super(name);
-	}
-	
-	protected int getShellStyle() {
-		return super.getShellStyle() | SWT.ON_TOP;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.TableViewerTest#createTableViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected TableViewer createTableViewer(Composite parent) {
-		visibleItems = new HashSet();
-		TableViewer viewer = new TableViewer(parent, SWT.VIRTUAL | SWT.MULTI);
-		viewer.setUseHashlookup(true);
-		final Table table = viewer.getTable();
-		table.addListener(SWT.SetData, new Listener() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.widgets.Listener#handleEvent(org.eclipse.swt.widgets.Event)
-			 */
-			public void handleEvent(Event event) {
-				TableItem item = (TableItem) event.item;
-				visibleItems.add(item);
-			}
-		});
-		return viewer;
-	}
-
-	/**
-	 * Get the collection of currently visible table items.
-	 * 
-	 * @return TableItem[]
-	 */
-	private TableItem[] getVisibleItems() {
-		return (TableItem[]) visibleItems.toArray(new TableItem[visibleItems.size()]);
-	}
-
-	public void testElementsCreated() {
-
-		TableItem[] items = getVisibleItems();
-
-		for (int i = 0; i < items.length; i++) {
-			TableItem item = items[i];
-			assertTrue("Missing data in item " + String.valueOf(i) + " of " + items.length, item
-					.getData() instanceof TestElement);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.TableViewerTest#getItemCount()
-	 */
-	protected int getItemCount() {
-		return getVisibleItems().length;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testFilter()
-	 */
-	public void testFilter() {
-		ViewerFilter filter = new TestLabelFilter();
-
-		visibleItems = new HashSet();
-		fViewer.addFilter(filter);
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("filtered count", 5, getItemCount());
-
-		visibleItems = new HashSet();
-		fViewer.removeFilter(filter);
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("unfiltered count", 10, getItemCount());
-	}
-
-	public void testSetFilters() {
-		ViewerFilter filter = new TestLabelFilter();
-
-		visibleItems = new HashSet();
-		fViewer.setFilters(new ViewerFilter[] { filter, new TestLabelFilter2() });
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("2 filters count",1, getItemCount());
-
-		visibleItems = new HashSet();
-		fViewer.setFilters(new ViewerFilter[] { filter });
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("1 filtered count",5, getItemCount());
-
-		visibleItems = new HashSet();
-		fViewer.setFilters(new ViewerFilter[0]);
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("unfiltered count",10, getItemCount());
-	}
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testInsertSibling()
-	 */
-	public void testInsertSibling() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testInsertSiblingReveal()
-	 */
-	public void testInsertSiblingReveal() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testInsertSiblings()
-	 */
-	public void testInsertSiblings() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testInsertSiblingWithFilterFiltered()
-	 */
-	public void testInsertSiblingWithFilterFiltered() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testInsertSiblingWithFilterNotFiltered()
-	 */
-	public void testInsertSiblingWithFilterNotFiltered() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testInsertSiblingWithSorter()
-	 */
-	public void testInsertSiblingWithSorter() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testRenameWithFilter()
-	 */
-	public void testRenameWithFilter() {
-		fViewer.addFilter(new TestLabelFilter());
-		((TableViewer) fViewer).getControl().update();
-        TestElement first = fRootElement.getFirstChild();
-        first.setLabel("name-1111"); // should disappear
-        ((TableViewer) fViewer).getControl().update();
-        assertNull("changed sibling is not visible", fViewer
-                .testFindItem(first));
-        first.setLabel("name-2222"); // should reappear
-        fViewer.refresh();
-        ((TableViewer) fViewer).getControl().update();
-        assertNotNull("changed sibling is not visible", fViewer
-                .testFindItem(first));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testSetInput()
-	 */
-	public void testSetInput() {
-		// This test us based on findItem assuming all items
-		// are created so it is not valid.
-	}
-
-	public void testRenameWithSorter() {
-		// Call update to make sure the viewer is in a correct state
-		// At least on MacOSX I get failures without this call
-		((TableViewer) fViewer).getControl().update();
-		fViewer.setSorter(new TestLabelSorter());
-		TestElement first = fRootElement.getFirstChild();
-		first.setLabel("name-9999");
-		String newElementLabel = first.toString();
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("sorted first", newElementLabel, getItemText(0));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testSorter()
-	 */
-	public void testSorter() {
-		TestElement first = fRootElement.getFirstChild();
-		TestElement last = fRootElement.getLastChild();
-
-		String firstLabel = first.toString();
-		String lastLabel = last.toString();
-
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("unsorted", firstLabel, getItemText(0));
-		fViewer.setSorter(new TestLabelSorter());
-
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("reverse sorted", lastLabel, getItemText(0));
-
-		fViewer.setSorter(null);
-		((TableViewer) fViewer).getControl().update();
-		assertEquals("unsorted", firstLabel, getItemText(0));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testInsertSiblingSelectExpanded()
-	 */
-	public void testInsertSiblingSelectExpanded() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testSomeChildrenChanged()
-	 */
-	public void testSomeChildrenChanged() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testWorldChanged()
-	 */
-	public void testWorldChanged() {
-		// This test is no use here as it is
-		// based on the assumption that all items
-		// are created.
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testDeleteSibling()
-	 */
-	public void testDeleteSibling() {
-		//Force creation of the item first
-		((TableViewer) fViewer).getTable().getItem(0).getText();
-		super.testDeleteSibling();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.StructuredViewerTest#testSetSelection()
-	 */
-	public void testSetSelection() {
-		//Force creation of the item first
-		((TableViewer) fViewer).getTable().getItem(0).getText();
-		super.testSetSelection();
-	}
-	
-	/**
-	 * Test selecting all elements.
-	 */
-	public void testSetAllSelection() {
-		TestElement[] children = fRootElement.getChildren();
-		StructuredSelection selection = new StructuredSelection(children);
-		fViewer.setSelection(selection);
-		IStructuredSelection result = (IStructuredSelection) fViewer
-				.getSelection();
-		assertTrue("Size was " + String.valueOf(result.size()) + " expected "
-				+ String.valueOf(children.length),
-				(result.size() == children.length));
-		Set childrenSet = new HashSet(Arrays.asList(children));
-		Set selectedSet = new HashSet(result.toList());
-		assertTrue("Elements do not match ", childrenSet.equals(selectedSet));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTreeViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTreeViewerTest.java
deleted file mode 100644
index 4f4a7ff..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/VirtualTreeViewerTest.java
+++ /dev/null
@@ -1,35 +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.jface.tests.viewers;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-
-/**
- * Tests TreeViewer's VIRTUAL support with a normal content provider.
- * @since 3.2
- */
-public class VirtualTreeViewerTest extends TreeViewerTest {
-
-	public VirtualTreeViewerTest(String name) {
-		super(name);
-	}
-
-	protected StructuredViewer createViewer(Composite parent) {
-		Tree tree = new Tree(parent, SWT.VIRTUAL);
-		fTreeViewer = new TreeViewer(tree);
-		fTreeViewer.setContentProvider(new TestModelContentProvider());
-		return fTreeViewer;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/images/java.gif b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/images/java.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/images/java.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddChildAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddChildAction.java
deleted file mode 100644
index c7835ef..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddChildAction.java
+++ /dev/null
@@ -1,32 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelChange;
-
-public class AddChildAction extends TestSelectionAction {
-
-    int fEventKind;
-
-    public AddChildAction(String label, TestBrowser browser) {
-        this(label, browser, TestModelChange.INSERT);
-    }
-
-    public AddChildAction(String label, TestBrowser browser, int eventKind) {
-        super(label, browser);
-        fEventKind = eventKind;
-    }
-
-    public void run(TestElement element) {
-        element.addChild(fEventKind);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddElementAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddElementAction.java
deleted file mode 100644
index f90e426..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddElementAction.java
+++ /dev/null
@@ -1,27 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelChange;
-
-public class AddElementAction extends TestBrowserAction {
-
-    public AddElementAction(String label, TestBrowser browser) {
-        super(label, browser);
-        //		window.addFocusChangedListener(this);
-    }
-
-    public void run() {
-        TestElement element = (TestElement) getBrowser().getViewer().getInput();
-        element.addChild(TestModelChange.INSERT);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddFilterAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddFilterAction.java
deleted file mode 100644
index 0bc3bfe..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddFilterAction.java
+++ /dev/null
@@ -1,27 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-public class AddFilterAction extends TestBrowserAction {
-
-    public AddFilterAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        Viewer viewer = getBrowser().getViewer();
-        if (viewer instanceof StructuredViewer)
-            ((StructuredViewer) viewer).addFilter(new Filter());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddSiblingAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddSiblingAction.java
deleted file mode 100644
index 48ccf90..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/AddSiblingAction.java
+++ /dev/null
@@ -1,32 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelChange;
-
-public class AddSiblingAction extends TestSelectionAction {
-
-    int fEventKind;
-
-    public AddSiblingAction(String label, TestBrowser browser) {
-        this(label, browser, TestModelChange.INSERT);
-    }
-
-    public AddSiblingAction(String label, TestBrowser browser, int eventKind) {
-        super(label, browser);
-        fEventKind = eventKind;
-    }
-
-    public void run(TestElement element) {
-        element.getContainer().addChild(fEventKind);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeChildLabelAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeChildLabelAction.java
deleted file mode 100644
index bb2703d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeChildLabelAction.java
+++ /dev/null
@@ -1,25 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-
-public class ChangeChildLabelAction extends TestSelectionAction {
-    public ChangeChildLabelAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run(TestElement element) {
-        TestElement child = element.getFirstChild();
-        if (child != null)
-            child.setLabel(child.getLabel() + " renamed child");
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeInputLabelAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeInputLabelAction.java
deleted file mode 100644
index 5493282..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeInputLabelAction.java
+++ /dev/null
@@ -1,25 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-
-public class ChangeInputLabelAction extends TestBrowserAction {
-
-    public ChangeInputLabelAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        TestElement element = (TestElement) getBrowser().getInput();
-        element.setLabel(element.getLabel() + " changed");
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeLabelAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeLabelAction.java
deleted file mode 100644
index b93335b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ChangeLabelAction.java
+++ /dev/null
@@ -1,24 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-
-public class ChangeLabelAction extends TestSelectionAction {
-
-    public ChangeLabelAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run(TestElement element) {
-        element.setLabel(element.getLabel() + " changed");
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ClearSelectionAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ClearSelectionAction.java
deleted file mode 100644
index e9e2992..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ClearSelectionAction.java
+++ /dev/null
@@ -1,24 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.StructuredSelection;
-
-public class ClearSelectionAction extends TestBrowserAction {
-
-    public ClearSelectionAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        getBrowser().getViewer().setSelection(new StructuredSelection());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ConcurrentTableTestView.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ConcurrentTableTestView.java
deleted file mode 100644
index 3dbc286..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ConcurrentTableTestView.java
+++ /dev/null
@@ -1,226 +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.jface.tests.viewers.interactive;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.tests.viewers.TestComparator;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.deferred.DeferredContentProvider;
-import org.eclipse.jface.viewers.deferred.SetModel;
-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.Label;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.progress.WorkbenchJob;
-
-/**
- * @since 3.1
- */
-public class ConcurrentTableTestView extends ViewPart {
-
-    private TableViewer table;
-    private boolean enableSlowComparisons = false;
-    private TestComparator comparator = new TestComparator() {
-        
-        /* (non-Javadoc)
-         * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
-         */
-        public int compare(Object arg0, Object arg1) {
-//            try {
-//                // Insert a bogus delay to simulate doing work
-//                Thread.sleep(1);
-//            } catch (InterruptedException e) {
-//            }
-
-        	if (enableSlowComparisons) {
-	            int delay = 2; // Time to spin the CPU for (milliseconds)
-	            
-	            // Do some work to occupy time 
-	            int counter = 0;
-	            long timestamp = System.currentTimeMillis();
-	            while (System.currentTimeMillis() < timestamp + delay) {
-	                counter++;
-	            }
-        	}
-            
-            int result = super.compare(arg0, arg1);
-            
-            scheduleComparisonUpdate();
-            
-            return result;
-        }
-    };
-    private DeferredContentProvider contentProvider;
-    
-    private WorkbenchJob updateCountRunnable = new WorkbenchJob("") {
-        
-        /* (non-Javadoc)
-         * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
-         */
-        public IStatus runInUIThread(IProgressMonitor monitor) {
-            updateCount.setText("Comparison count = " + comparator.comparisons);
-            return Status.OK_STATUS;
-        }
-    };
-    
-    private Label updateCount;
-    private SetModel model = new SetModel();
-    private Random rand = new Random();
-    private Button slowComparisons;
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite temp) {
-        Composite parent = new Composite(temp, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.numColumns = 2;
-        
-        parent.setLayout(layout);
-        
-        // Create the table
-        {
-	        table = new TableViewer(parent, SWT.VIRTUAL);
-	        contentProvider = new DeferredContentProvider(comparator);
-	        table.setContentProvider(contentProvider);
-	        
-	        GridData data = new GridData(GridData.FILL_BOTH);
-	        table.getControl().setLayoutData(data);
-	        table.setInput(model);
-        }
-        
-        // Create the buttons
-        Composite buttonBar = new Composite(parent, SWT.NONE);
-        buttonBar.setLayoutData(new GridData(GridData.FILL_BOTH));
-        GridLayout buttonBarLayout = new GridLayout();
-        buttonBarLayout.numColumns = 1;
-        buttonBar.setLayout(buttonBarLayout);
-        {
-
-            updateCount = new Label(buttonBar, SWT.NONE);
-            updateCount.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-            slowComparisons = new Button(buttonBar, SWT.CHECK);
-            slowComparisons.setLayoutData(new GridData(GridData.FILL_BOTH));
-            slowComparisons.setText("Slow comparisons");
-            slowComparisons.setSelection(enableSlowComparisons);
-            slowComparisons.addSelectionListener(new SelectionAdapter() {
-            	/* (non-Javadoc)
-				 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					enableSlowComparisons = slowComparisons.getSelection();
-					super.widgetSelected(e);
-				}
-            });
-            
-            
-            final Button limitSize = new Button(buttonBar, SWT.CHECK);
-            limitSize.setLayoutData(new GridData(GridData.FILL_BOTH));
-            limitSize.setText("Limit table size to 400");
-            limitSize.addSelectionListener(new SelectionAdapter() {
-            	/* (non-Javadoc)
-				 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-				 */
-				public void widgetSelected(SelectionEvent e) {
-					if (limitSize.getSelection()) {
-						contentProvider.setLimit(400);
-					} else {
-						contentProvider.setLimit(-1);
-					}
-					super.widgetSelected(e);
-				}
-            });
-            
-            Button resetCountButton = new Button(buttonBar, SWT.PUSH);
-            resetCountButton.setLayoutData(new GridData(GridData.FILL_BOTH));
-            resetCountButton.setText("Reset comparison count");
-	        resetCountButton.addSelectionListener(new SelectionAdapter() {
-		        /* (non-Javadoc)
-	             * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	             */
-	            public void widgetSelected(SelectionEvent e) {
-	                comparator.comparisons = 0;
-	                scheduleComparisonUpdate();
-	            } 
-	        });
-	        
-	        Button testButton = new Button(buttonBar, SWT.PUSH);
-	        testButton.setLayoutData(new GridData(GridData.FILL_BOTH));
-	        testButton.setText("add 100000 elements");
-	        testButton.addSelectionListener(new SelectionAdapter() {
-		        /* (non-Javadoc)
-	             * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	             */
-	            public void widgetSelected(SelectionEvent e) {
-	                addRandomElements(100000);
-	            } 
-	        });
-	        
-	        Button removeButton = new Button(buttonBar, SWT.PUSH);
-	        removeButton.setLayoutData(new GridData(GridData.FILL_BOTH));
-	        removeButton.setText("remove all");
-	        removeButton.addSelectionListener(new SelectionAdapter() {
-		        /* (non-Javadoc)
-	             * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-	             */
-	            public void widgetSelected(SelectionEvent e) {
-	                clear();
-	            } 
-	        });
-
-        }
-    }
-    
-    
-    /**
-     * 
-     * @since 3.1
-     */
-    protected void scheduleComparisonUpdate() {
-        updateCountRunnable.schedule(100);
-    }
-
-
-
-    public void addRandomElements(int amount) {
-        
-        ArrayList tempList = new ArrayList();
-
-        for (int counter = 0; counter < amount; counter++) {
-            tempList.add("" + rand.nextLong() + " " + counter );
-        }
-        
-        model.addAll(tempList);
-    }
-    
-    public void clear() {
-        model.clear();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        // TODO Auto-generated method stub
-
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/CreateModelAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/CreateModelAction.java
deleted file mode 100644
index 9ba75ec..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/CreateModelAction.java
+++ /dev/null
@@ -1,33 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-
-public class CreateModelAction extends TestBrowserAction {
-    int fLevel;
-
-    int fChildCount;
-
-    public CreateModelAction(String label, TestBrowser browser, int level,
-            int childCount) {
-        super(label, browser);
-        fLevel = level;
-        fChildCount = childCount;
-    }
-
-    public void run() {
-        // Clear input since TestElement.equals does only
-        // check the id, not the size of the TestElement.
-        getBrowser().setInput(null);
-        getBrowser().setInput(TestElement.createModel(fLevel, fChildCount));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteAction.java
deleted file mode 100644
index ab9a860..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteAction.java
+++ /dev/null
@@ -1,24 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-
-public class DeleteAction extends TestSelectionAction {
-
-    public DeleteAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run(TestElement element) {
-        element.getContainer().deleteChild(element);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteChildrenAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteChildrenAction.java
deleted file mode 100644
index 376ccd9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteChildrenAction.java
+++ /dev/null
@@ -1,30 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-
-public class DeleteChildrenAction extends TestSelectionAction {
-
-    boolean fAll = false;
-
-    public DeleteChildrenAction(String label, TestBrowser browser, boolean all) {
-        super(label, browser);
-        fAll = all;
-    }
-
-    public void run(TestElement element) {
-        if (fAll)
-            element.deleteChildren();
-        else
-            element.deleteSomeChildren();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteSiblingsAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteSiblingsAction.java
deleted file mode 100644
index 6b1cad3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/DeleteSiblingsAction.java
+++ /dev/null
@@ -1,30 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-
-public class DeleteSiblingsAction extends TestSelectionAction {
-
-    boolean fAll = false;
-
-    public DeleteSiblingsAction(String label, TestBrowser browser, boolean all) {
-        super(label, browser);
-        fAll = all;
-    }
-
-    public void run(TestElement element) {
-        if (fAll)
-            element.getContainer().deleteChildren();
-        else
-            element.getContainer().deleteSomeChildren();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ExpandAllAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ExpandAllAction.java
deleted file mode 100644
index 610e7f1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ExpandAllAction.java
+++ /dev/null
@@ -1,27 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-public class ExpandAllAction extends TestBrowserAction {
-
-    public ExpandAllAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        Viewer viewer = getBrowser().getViewer();
-        if (viewer instanceof AbstractTreeViewer)
-            ((AbstractTreeViewer) viewer).expandAll();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Filter.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Filter.java
deleted file mode 100644
index e3be1ef..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Filter.java
+++ /dev/null
@@ -1,42 +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.jface.tests.viewers.interactive;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-
-public class Filter extends ViewerFilter {
-
-    public Object[] filter(Viewer viewer, Object parent, Object[] elements) {
-        ArrayList result = new ArrayList();
-        for (int i = 0; i < elements.length; ++i) {
-            // toss every second item
-            if (i % 2 == 1) {
-                result.add(elements[i]);
-            }
-        }
-        return result.toArray();
-    }
-
-    public boolean isFilterProperty(Object element, Object aspect) {
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ViewerFilter
-     */
-    public boolean select(Viewer viewer, Object parentElement, Object element) {
-        // not used
-        return false;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/FlushInputAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/FlushInputAction.java
deleted file mode 100644
index c8d2154..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/FlushInputAction.java
+++ /dev/null
@@ -1,22 +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.jface.tests.viewers.interactive;
-
-public class FlushInputAction extends TestBrowserAction {
-
-    public FlushInputAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        getBrowser().setInput(null);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyDeferredVirtualTableView.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyDeferredVirtualTableView.java
deleted file mode 100644
index be77f5e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyDeferredVirtualTableView.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.jface.tests.viewers.interactive;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILazyContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * The LazyVirtualTableView is the VirtualTableView with lazy content.
- */
-public class LazyDeferredVirtualTableView extends VirtualTableView {
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public LazyDeferredVirtualTableView() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.interactive.VirtualTableView#getContentProvider()
-	 */
-	protected IContentProvider getContentProvider() {
-		return new ILazyContentProvider() {
-
-			int rangeStart = -1;
-
-			int rangeEnd = -1;
-
-			UIJob updateJob = new UIJob("Update") {
-				public IStatus runInUIThread(IProgressMonitor monitor) {
-					if(viewer.getControl().isDisposed())
-						return Status.CANCEL_STATUS;
-					int rangeLength = rangeEnd - rangeStart;
-					for (int i = 0; i <= rangeLength; i++) {
-						int index = i + rangeStart;
-						viewer.replace("Element " + String.valueOf(index),
-								index);
-					}
-
-					return Status.OK_STATUS;
-				}
-			};
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ILazyContentProvider#updateElements(int,
-			 *      int)
-			 */
-			public void updateElement(int index) {
-
-				int begin = Math.max(0, index - 50);
-				int end = Math.min(begin + 50, 9999);
-
-				// Initial case
-				if (rangeStart == -1 || rangeEnd == -1) {
-					rangeStart = begin;
-					rangeEnd = end;
-					updateJob.schedule(1000);
-					return;
-				}
-
-				// Are we in the range already being worked on?
-				if (index >= rangeStart && index <= rangeEnd)
-					return;
-
-				// Are we outside of the old range?
-				if (begin > rangeEnd || end < rangeStart) {
-					viewer.getTable().clear(rangeStart, rangeEnd);
-					rangeStart = begin;
-					rangeEnd = end;
-					updateJob.schedule(1000);
-					return;
-				}
-
-				// Shift if it is before
-				if (begin < rangeStart) {
-					rangeStart = begin;
-					int oldEnd = rangeEnd;
-					rangeEnd = end;
-					viewer.getTable().clear(end + 1, oldEnd);
-
-					updateJob.schedule(1000);
-					return;
-				}
-
-				// Shift if it is after
-				if (end > rangeEnd) {
-					rangeEnd = end;
-					int oldStart = rangeStart;
-					rangeStart = begin;
-					viewer.getTable().clear(oldStart, rangeStart - 1);
-					updateJob.schedule(1000);
-					return;
-				}
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-				// Do Nothing
-			}
-
-			/*
-			 * (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) {
-				// Do nothing.
-			}
-		};
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.interactive.VirtualTableView#resetInput()
-	 */
-	protected void resetInput() {
-		viewer.setItemCount(itemCount);
-		super.resetInput();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyVirtualTableView.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyVirtualTableView.java
deleted file mode 100644
index 0206c11..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/LazyVirtualTableView.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers.interactive;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILazyContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * The LazyVirtualTableView is the VirtualTableView with
- * lazy content.
- */
-public class LazyVirtualTableView extends VirtualTableView {
-
-	private List elements;
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public LazyVirtualTableView() {
-		super();
-		initElements();
-	}
-
-	/**
-	 * 
-	 */
-	private void initElements() {
-		elements = new ArrayList();
-		for (int i = 0; i < itemCount; i++) {
-			elements.add("Element " + String.valueOf(i));
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.interactive.VirtualTableView#getContentProvider()
-	 */
-	protected IContentProvider getContentProvider() {
-		return new ILazyContentProvider() {
-			
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.ILazyContentProvider#updateElements(int, int)
-			 */
-			public void updateElement(int index) {
-		        viewer.replace(elements.get(index), index);
-			}
-			/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-				//Do Nothing
-			}
-
-			/* (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) {
-				// Do nothing.
-			}
-		};
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.interactive.VirtualTableView#doRemove(java.lang.Object[])
-	 */
-	protected void doRemove(Object[] selection, int[] selectionIndices) {
-		for (int i = 0; i < selectionIndices.length; i++) {
-			int index = selectionIndices[i];
-			elements.remove(index);
-		}
-		super.doRemove(selection, selectionIndices);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.tests.viewers.interactive.VirtualTableView#resetInput()
-	 */
-	protected void resetInput() {
-		viewer.setItemCount(itemCount);
-		super.resetInput();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetFilterAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetFilterAction.java
deleted file mode 100644
index a44dff4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetFilterAction.java
+++ /dev/null
@@ -1,29 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-public class ResetFilterAction extends TestBrowserAction {
-
-    public ResetFilterAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        Viewer viewer = getBrowser().getViewer();
-        if (viewer instanceof StructuredViewer) {
-            StructuredViewer v = (StructuredViewer) viewer;
-            v.resetFilters();
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetSorterAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetSorterAction.java
deleted file mode 100644
index fa2d616..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/ResetSorterAction.java
+++ /dev/null
@@ -1,29 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-public class ResetSorterAction extends TestBrowserAction {
-
-    public ResetSorterAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        Viewer viewer = getBrowser().getViewer();
-        if (viewer instanceof StructuredViewer) {
-            StructuredViewer v = (StructuredViewer) viewer;
-            v.setSorter(null);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetLabelProviderAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetLabelProviderAction.java
deleted file mode 100644
index b348b35..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetLabelProviderAction.java
+++ /dev/null
@@ -1,26 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestLabelProvider;
-import org.eclipse.jface.viewers.ContentViewer;
-
-public class SetLabelProviderAction extends TestBrowserAction {
-
-    public SetLabelProviderAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        ((ContentViewer) getBrowser().getViewer())
-                .setLabelProvider(new TestLabelProvider());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetSorterAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetSorterAction.java
deleted file mode 100644
index 7d72a9b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/SetSorterAction.java
+++ /dev/null
@@ -1,29 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-public class SetSorterAction extends TestBrowserAction {
-
-    public SetSorterAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        Viewer viewer = getBrowser().getViewer();
-        if (viewer instanceof StructuredViewer) {
-            StructuredViewer v = (StructuredViewer) viewer;
-            v.setSorter(new Sorter());
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Sorter.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Sorter.java
deleted file mode 100644
index 144afe3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/Sorter.java
+++ /dev/null
@@ -1,21 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.IBasicPropertyConstants;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-public class Sorter extends ViewerSorter {
-
-    public boolean isSorterProperty(Object element, String property) {
-        return IBasicPropertyConstants.P_TEXT.equals(property);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/StyledCellLabelProviderTests.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/StyledCellLabelProviderTests.java
deleted file mode 100644
index 351b795..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/StyledCellLabelProviderTests.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Michael Krkoska - initial API and implementation (bug 188333)
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers.interactive;
-
-import java.text.DecimalFormat;
-import java.text.MessageFormat;
-
-import org.eclipse.jface.preference.JFacePreferences;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.StyledCellLabelProvider;
-import org.eclipse.jface.viewers.StyledString;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerCell;
-import org.eclipse.jface.viewers.StyledString.Styler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.TextStyle;
-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.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Using a {@link StyledCellLabelProvider} on table viewer.
- */
-
-public class StyledCellLabelProviderTests {
-	
-	private static int IMAGE_SIZE= 16;
-
-	private static Image IMAGE1;
-	private static Image IMAGE2;
-
-	public static void main(String[] args) {
-
-		Display display = new Display();
-
-		JFaceResources.getColorRegistry().put(JFacePreferences.COUNTER_COLOR, new RGB(0,127,174));
-		
-		IMAGE1= new Image(display, display.getSystemImage(SWT.ICON_WARNING).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-		IMAGE2= new Image(display, display.getSystemImage(SWT.ICON_ERROR).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE));
-
-		Shell shell= new Shell(display , SWT.CLOSE | SWT.RESIZE);
-		shell.setSize(400, 600);
-		shell.setLayout(new GridLayout(1, false));
-
-		StyledCellLabelProviderTests example= new StyledCellLabelProviderTests();
-		Control composite= example.createPartControl(shell);
-		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
-		
-		shell.open();
-
-		while (!shell.isDisposed()) {
-			if (!display.readAndDispatch()) {
-				display.sleep();
-			}
-		}
-		display.dispose();
-	}
-
-	protected boolean useBold;
-
-	public StyledCellLabelProviderTests() {
-	}
-
-	public Composite createPartControl(Composite parent) {
-		Composite composite= new Composite(parent, SWT.NONE);
-
-		composite.setLayout(new GridLayout(1, true));
-
-		final Label label= new Label(composite, SWT.NONE);
-		label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
-		label.setText("Operations per second: xxxxx"); //$NON-NLS-1$
-		
-		final Runnable[] operation = new Runnable[1];
-		
-		final Button timeButton = new Button(composite, SWT.CHECK);
-		timeButton.setText("Time");
-		timeButton.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				setTimer(timeButton.getDisplay(), timeButton.getSelection(), operation, label);
-			}
-		});
-		
-		final Button stylingButton = new Button(composite, SWT.CHECK);
-		stylingButton.setText("enable styling");
-		stylingButton.setSelection(true);
-		
-		final Button boldButton = new Button(composite, SWT.CHECK);
-		boldButton.setText("use bold");
-
-		final TableViewer tableViewer= new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-		
-		boldButton.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				useBold = boldButton.getSelection();
-				tableViewer.refresh();
-			}
-		});
-		
-		operation[0] = new Runnable(){
-			public void run() {
-				tableViewer.refresh();
-			}
-		};
-		
-		FontData[] boldFontData= getModifiedFontData(tableViewer.getTable().getFont().getFontData(), SWT.BOLD);
-
-		Font boldFont = new Font(Display.getCurrent(), boldFontData);
-		final ExampleLabelProvider labelProvider= new ExampleLabelProvider(boldFont);
-		TestContentProvider contentProvider= new TestContentProvider();
-		
-		tableViewer.setContentProvider(contentProvider);
-		tableViewer.setLabelProvider(labelProvider);
-		
-		stylingButton.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(SelectionEvent e) {
-				labelProvider.setOwnerDrawEnabled(stylingButton.getSelection());
-				tableViewer.refresh();
-			}
-		});
-
-
-		GridData data= new GridData(GridData.FILL, GridData.FILL, true, true);
-		tableViewer.getControl().setLayoutData(data);
-		tableViewer.setInput(new Object());
-
-		return composite;
-	}
-	
-	boolean timerOn = false;
-	long startTime;
-	int numOperations;
-	DecimalFormat decimalFormat = new DecimalFormat("##.#");
-	
-	protected void setTimer(final Display display, boolean selection, final Runnable[] operation, final Label resultLabel) {
-		timerOn = selection;
-		if (timerOn) {
-			startTime = System.currentTimeMillis();
-			numOperations = 0;
-			display.asyncExec(new Runnable() {
-				public void run() {
-					if (display.isDisposed() || resultLabel.isDisposed()) {
-						return;
-					}
-					if (operation[0] != null) {
-						operation[0].run();
-					}
-					numOperations++;
-					long currentTime = System.currentTimeMillis();
-					long elapsedTime = currentTime - startTime;
-					if (elapsedTime >= 1000) {
-						double timePerOperation = elapsedTime / 1000.0 / numOperations;
-						double operationsPerSecond = 1.0/timePerOperation;
-						resultLabel.setText("Operations per second: " + decimalFormat.format(operationsPerSecond));
-						numOperations = 0;
-						startTime = System.currentTimeMillis();
-					}
-					if (timerOn) {
-						display.asyncExec(this);
-					}
-				}
-			});
-		} else {
-			resultLabel.setText("Operations per second: xxxx");
-		}
-	}
-
-	private static FontData[] getModifiedFontData(FontData[] originalData, int additionalStyle) {
-		FontData[] styleData = new FontData[originalData.length];
-		for (int i = 0; i < styleData.length; i++) {
-			FontData base = originalData[i];
-			styleData[i] = new FontData(base.getName(), base.getHeight(), base.getStyle() | additionalStyle);
-		}
-       	return styleData;
-    }
-	
-	private class ExampleLabelProvider extends StyledCellLabelProvider {
-
-		private final Styler fBoldStyler; 
-		
-		public ExampleLabelProvider(final Font boldFont) {
-			fBoldStyler= new Styler() {
-				public void applyStyles(TextStyle textStyle) {
-					textStyle.font= boldFont;
-				}
-			};
-		}
-		
-		public void update(ViewerCell cell) {
-			Object element= cell.getElement();
-			
-			if (element instanceof File) {
-				File file= (File) element;
-				
-				Styler style= file.isDirectory() && useBold ? fBoldStyler: null;
-				StyledString styledString= new StyledString(file.getName(), style);
-				String decoration = MessageFormat.format(" ({0} bytes)", new Object[] { new Long(file.length()) }); //$NON-NLS-1$
-				styledString.append(decoration, StyledString.COUNTER_STYLER);
-				
-				cell.setText(styledString.toString());
-				cell.setStyleRanges(styledString.getStyleRanges());
-				
-				if (file.isDirectory()) {
-					cell.setImage(IMAGE1);
-				} else {
-					cell.setImage(IMAGE2);
-				}
-			} else {
-				cell.setText("Unknown element"); //$NON-NLS-1$
-			}
-
-			super.update(cell);
-		}
-		
-		protected void measure(Event event, Object element) {
-			super.measure(event, element);
-		}
-	}
-
-	static class File {
-
-		private final String name;
-		private final int length;
-		private final boolean dir;
-
-		File(String name, int length, boolean dir) {
-			this.name = name;
-			this.length = length;
-			this.dir = dir;
-		}
-
-		public int length() {
-			return length;
-		}
-
-		public String getName() {
-			return name;
-		}
-
-		boolean isDirectory() {
-			return dir;
-		}
-
-	}
-	
-	private static class TestContentProvider implements IStructuredContentProvider {
-
-		public Object[] getElements(Object element) {
-			return new File[]{
-					new File("asdfkjghfasdkjasdfhjgasdfkjhg", 2348, false),
-					new File("sdafkuyasdfkljh", 2348, false),
-					new File("asdklufhalsdkhlkjhnklj hlh", 2348, true),
-					new File("asdfasdf asdf ", 2348, false),
-					new File("fds sdf", 2348, true),
-					new File(" sdafuh lsdfahj alsdfk hl", 2348, false),
-					new File("sdfahj sdfajk hsdfjkh", 2348, false),
-					new File("sdafkja sdfjkh asdfkhj", 2348, false),
-					new File("sdfakj hasdfljkha sdfljkh sdfa", 348, true),
-					new File("hj ka g", 1334, true),
-					new File("asdfjk hsdfaljkh", 2348, false),
-					new File("asdh gasdflhg ", 3348, true),
-					new File("asd ghasdfkjg sdfkyug ", 4345, false),
-					new File("asdf hjasdflkjh sdfal", 5345, false),
-					new File("asdlfuh afsdhjg fdsalhj", 6648, false),
-					new File("uiy viuh vhj v", 7448, true),
-					new File("sdfauighsdvpyu ghasjkn", 8848, true),
-					new File("asduih cuia ;nac", 9548, false),
-					new File("chju kljhuuklh jk;", 348, false),
-					new File("cdailukhu l;hj .n", 448, false),
-					new File("auihy akl;h l;j", 2348, false),
-					new File("caiugh j l;kjlh jcd", 2328, true),
-					new File("auio;h jkh lhjl h ljjhbvj", 2348, true),
-					new File("ajklkja kj lkjh jklh ", 2248, false),
-					new File("asdfkjghfasdkjasdfhjgasdfkjhg", 2348, true),
-					new File("sdafkuyasdfkljh", 2348, false),
-					new File("asdklufhalsdkhlkjhnklj hlh", 2348, true),
-					new File("asdfasdf asdf ", 2348, false),
-					new File("fds sdf", 2348, true),
-					new File(" sdafuh lsdfahj alsdfk hl", 2348, true),
-					new File("sdfahj sdfajk hsdfjkh", 2348, false),
-					new File("sdafkja sdfjkh asdfkhj", 2348, true),
-					new File("sdfakj hasdfljkha sdfljkh sdfa", 348, true),
-					new File("hj ka g", 1334, false),
-					new File("asdfjk hsdfaljkh", 2348, false),
-					new File("asdh gasdflhg ", 3348, true),
-					new File("asd ghasdfkjg sdfkyug ", 4345, true),
-					new File("asdf hjasdflkjh sdfal", 5345, true),
-					new File("asdlfuh afsdhjg fdsalhj", 6648, false),
-					new File("uiy viuh vhj v", 7448, false),
-					new File("sdfauighsdvpyu ghasjkn", 8848, true),
-					new File("asduih cuia ;nac", 9548, false),
-					new File("chju kljhuuklh jk;", 348, true),
-					new File("cdailukhu l;hj .n", 448, true),
-					new File("auihy akl;h l;j", 2348, false),
-					new File("caiugh j l;kjlh jcd", 2328, true),
-					new File("auio;h jkh lhjl h ljjhbvj", 2348, false),
-					new File("ajklkja kj lkjh jklh ", 2248, true),
-			};
-		}
-
-		public void dispose() {
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestApplicationWindow.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestApplicationWindow.java
deleted file mode 100644
index fbd0979..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestApplicationWindow.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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-/**
- * A simple application window used for testing various bugs.
- * Insert code as needed to test problems in a raw application
- * window.
- * 
- * Designed to be started as an SWT application.
- * 
- * @since 3.2
- */
-
-public class TestApplicationWindow extends ApplicationWindow {
-
-	public static void main(String[] args) {
-		new TestApplicationWindow().open();
-	}
-
-	public TestApplicationWindow() {
-		super(null);
-		setBlockOnOpen(true);
-		addMenuBar();
-	}
-
-	/*
-	 * Test initial location and size.
-	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=96955
-	 */
-	protected Point getInitialLocation(Point initialSize) {
-		return new Point(30, 30);
-	}
-
-	protected Point getInitialSize() {
-		return new Point(150, 150);
-	}
-
-    protected Control createContents(Composite parent) {
-    	// create your contents here
-		Control contents = super.createContents(parent);
-		
-		// fill the menu bar
-    	fillMenuBar();
-    	
-    	return contents;
-	}
-    
-    private void fillMenuBar() {
-    	MenuManager menuManager = getMenuBarManager();
-    	MenuManager fileMenu = new MenuManager("&File");
-		menuManager.add(fileMenu);
-
-		Action loadAction = new Action("&Save") {
-			public void run() {
-				// do nothing
-			}
-		};
-		fileMenu.add(loadAction);
-		menuManager.updateAll(false);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowser.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowser.java
deleted file mode 100644
index 6854e11..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowser.java
+++ /dev/null
@@ -1,259 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelChange;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.ApplicationWindow;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-public abstract class TestBrowser extends ApplicationWindow {
-    TestElement fInput;
-
-    Viewer fViewer;
-
-    Action fChangeLabelAction;
-
-    Action fChangeInputLabelAction;
-
-    Action fChangeChildLabelAction;
-
-    Action fReloadAction;
-
-    Action fReloadActionLarge;
-
-    Action fReloadActionFlat;
-
-    Action fDeleteAction;
-
-    Action fDeleteChildrenAction;
-
-    Action fDeleteSomeChildrenAction;
-
-    Action fDeleteSiblingsAction;
-
-    Action fFlushInputAction;
-
-    Action fAddElementAction;
-
-    Action fAddSiblingAction;
-
-    Action fAddSiblingRevealAction;
-
-    Action fAddSiblingSelectAction;
-
-    Action fAddChildAction;
-
-    Action fAddChildRevealAction;
-
-    Action fAddChildSelectAction;
-
-    Action fWorldChangedAction;
-
-    Action fSetLabelProvider;
-
-    Action fAddFilterAction;
-
-    Action fResetFilters;
-
-    Action fSetSorter;
-
-    Action fResetSorter;
-
-    Action fClearSelection;
-
-    int fPanes = 1;
-
-    public TestBrowser() {
-        super(null);
-        addMenuBar();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on Window.
-     */
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        shell.setText("Test Browser");
-    }
-
-    protected void createActions() {
-        fChangeLabelAction = new ChangeLabelAction("Change Label", this);
-        fChangeChildLabelAction = new ChangeChildLabelAction(
-                "Change Child Label", this);
-        //	fChangeInputLabelAction =
-        //		new ChangeInputLabelAction("Change Input Label", this);
-
-        fReloadAction = new CreateModelAction("Reload Test Data (small)", this,
-                3, 10);
-        fReloadActionLarge = new CreateModelAction("Reload Test Data (large)",
-                this, 3, 33);
-        fReloadActionFlat = new CreateModelAction("Reload Test Data (flat)",
-                this, 1, 2000);
-
-        fDeleteAction = new DeleteAction("Delete", this);
-        fDeleteChildrenAction = new DeleteChildrenAction("Delete Children",
-                this, true);
-        fDeleteSomeChildrenAction = new DeleteChildrenAction(
-                "Delete Odd Children", this, false);
-        fDeleteSiblingsAction = new DeleteSiblingsAction("Delete Siblings",
-                this, true);
-
-        fFlushInputAction = new FlushInputAction("Flush Input", this);
-
-        fAddElementAction = new AddElementAction("Add Element to Input", this);
-        fAddSiblingAction = new AddSiblingAction("Add Sibling", this);
-        fAddSiblingRevealAction = new AddSiblingAction(
-                "Add Sibling and Reveal", this, TestModelChange.INSERT
-                        | TestModelChange.REVEAL);
-        fAddSiblingSelectAction = new AddSiblingAction(
-                "Add Sibling and Select", this, TestModelChange.INSERT
-                        | TestModelChange.REVEAL | TestModelChange.SELECT);
-        fAddChildAction = new AddChildAction("Add Child", this);
-        fAddChildRevealAction = new AddChildAction("Add Child and Reveal",
-                this, TestModelChange.INSERT | TestModelChange.REVEAL);
-        fAddChildSelectAction = new AddChildAction("Add Child and Select",
-                this, TestModelChange.INSERT | TestModelChange.REVEAL
-                        | TestModelChange.SELECT);
-
-        fWorldChangedAction = new WorldChangedAction("World Changed", this);
-
-        fSetLabelProvider = new SetLabelProviderAction(
-                "Set Custom Label Provider", this);
-
-        fAddFilterAction = new AddFilterAction("Add Filter", this);
-        fResetFilters = new ResetFilterAction("Reset All Filters", this);
-
-        fSetSorter = new SetSorterAction("Set Sorter", this);
-        fResetSorter = new ResetSorterAction("Reset Sorter", this);
-
-        fClearSelection = new ClearSelectionAction("Clear Selection", this);
-    }
-
-    protected Control createContents(Composite parent) {
-        ViewForm form = new ViewForm(parent, SWT.NONE);
-        CLabel label = new CLabel(form, SWT.NONE);
-        form.setTopLeft(label);
-        Object input = getInput();
-        label.setText(input.toString());
-        if (fPanes == 1) {
-            Viewer viewer = createViewer(form);
-            form.setContent(viewer.getControl());
-            fViewer = viewer;
-            setInput((TestElement) input);
-        } else if (fPanes == 2) {
-            SashForm sashForm = new SashForm(form, SWT.VERTICAL);
-            form.setContent(sashForm);
-            Viewer viewer = createViewer(sashForm);
-            fViewer = viewer;
-            viewer.setInput(input);
-            viewer = createViewer(sashForm);
-            viewer.setInput(input);
-        }
-        createActions();
-        fillMenuBar(getMenuBarManager());
-        viewerFillMenuBar(getMenuBarManager());
-        getMenuBarManager().updateAll(false);
-        return form;
-    }
-
-    public abstract Viewer createViewer(Composite parent);
-
-    protected void fillMenuBar(MenuManager mgr) {
-
-        MenuManager setupMenu = new MenuManager("Setup", "Setup");
-        mgr.add(setupMenu);
-        setupMenu.add(fReloadAction);
-        setupMenu.add(fReloadActionLarge);
-        setupMenu.add(fReloadActionFlat);
-        setupMenu.add(new Separator());
-        setupMenu.add(fFlushInputAction);
-        setupMenu.add(new Separator());
-        setupMenu.add(fSetLabelProvider);
-        setupMenu.add(new Separator());
-        setupMenu.add(fAddFilterAction);
-        setupMenu.add(fResetFilters);
-        setupMenu.add(new Separator());
-        setupMenu.add(fSetSorter);
-        setupMenu.add(fResetSorter);
-
-        MenuManager testMenu = new MenuManager("Tests", "Tests");
-        mgr.add(testMenu);
-        testMenu.add(fChangeLabelAction);
-        testMenu.add(fChangeChildLabelAction);
-        //	testMenu.add(fChangeInputLabelAction);
-        testMenu.add(new Separator());
-
-        testMenu.add(fDeleteAction);
-        testMenu.add(fDeleteChildrenAction);
-        testMenu.add(fDeleteSomeChildrenAction);
-        testMenu.add(fDeleteSiblingsAction);
-        testMenu.add(new Separator());
-
-        testMenu.add(fAddElementAction);
-        testMenu.add(new Separator());
-
-        testMenu.add(fAddSiblingAction);
-        testMenu.add(fAddSiblingRevealAction);
-        testMenu.add(fAddSiblingSelectAction);
-        testMenu.add(new Separator());
-
-        testMenu.add(fAddChildAction);
-        testMenu.add(fAddChildRevealAction);
-        testMenu.add(fAddChildSelectAction);
-        testMenu.add(new Separator());
-
-        testMenu.add(fClearSelection);
-        testMenu.add(new Separator());
-
-        testMenu.add(fWorldChangedAction);
-        //	((TestTree)this).testTreeFillMenuBar(testMenu);
-    }
-
-    public TestElement getInput() {
-        return fInput;
-    }
-
-    public Viewer getViewer() {
-        return fViewer;
-    }
-
-    public Composite getViewerContainer() {
-        return null;
-    }
-
-    public void open(TestElement input) {
-    	setInput(input);
-        super.open();
-    }
-
-    public void setInput(TestElement input) {
-        fInput = input;
-        if (getViewer() != null)
-            getViewer().setInput(input);
-    }
-
-    public void show2Panes() {
-        fPanes = 2;
-    }
-
-    protected abstract void viewerFillMenuBar(MenuManager mgr);
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowserAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowserAction.java
deleted file mode 100644
index 1778e61..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestBrowserAction.java
+++ /dev/null
@@ -1,29 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.action.Action;
-
-public abstract class TestBrowserAction extends Action {
-    private TestBrowser browser;
-
-    public TestBrowserAction(String label, TestBrowser browser) {
-        super(label);
-        this.browser = browser;
-    }
-
-    /**
-     * Returns the test browser.
-     */
-    public TestBrowser getBrowser() {
-        return browser;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestCheckboxTree.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestCheckboxTree.java
deleted file mode 100644
index 7110e57..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestCheckboxTree.java
+++ /dev/null
@@ -1,82 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestLabelProvider;
-import org.eclipse.jface.tests.viewers.TestModelContentProvider;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITreeViewerListener;
-import org.eclipse.jface.viewers.TreeExpansionEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-
-public class TestCheckboxTree extends TestTree {
-    CheckboxTreeViewer fCheckboxViewer;
-
-    public TestCheckboxTree() {
-        super();
-    }
-
-    public void checkChildren(TestElement element, boolean state) {
-        int numChildren = element.getChildCount();
-        for (int i = 0; i < numChildren; i++) {
-            TestElement child = element.getChildAt(i);
-            if (fCheckboxViewer.setChecked(child, state))
-                checkChildren(child, state);
-        }
-    }
-
-    public Viewer createViewer(Composite parent) {
-        CheckboxTreeViewer viewer = new CheckboxTreeViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        viewer.setLabelProvider(new TestLabelProvider());
-
-        viewer.addTreeListener(new ITreeViewerListener() {
-            public void treeExpanded(TreeExpansionEvent e) {
-                handleTreeExpanded((TestElement) e.getElement());
-            }
-
-            public void treeCollapsed(TreeExpansionEvent e) {
-            }
-        });
-
-        viewer.addCheckStateListener(new ICheckStateListener() {
-            public void checkStateChanged(CheckStateChangedEvent e) {
-                checkChildren((TestElement) e.getElement(), e.getChecked());
-            }
-        });
-
-        fCheckboxViewer = viewer;
-        fViewer = viewer;
-        return viewer;
-    }
-
-    public void handleTreeExpanded(TestElement element) {
-        // apply the same check recursively to all children
-        boolean checked = fCheckboxViewer.getChecked(element);
-        int numChildren = element.getChildCount();
-        for (int i = 0; i < numChildren; i++) {
-            TestElement child = element.getChildAt(i);
-            fCheckboxViewer.setChecked(child, checked);
-        }
-    }
-
-    public static void main(String[] args) {
-        TestBrowser browser = new TestCheckboxTree();
-        if (args.length > 0 && args[0].equals("-twopanes"))
-            browser.show2Panes();
-        browser.setBlockOnOpen(true);
-        browser.open(TestElement.createModel(3, 10));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestLazyVirtualTree.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestLazyVirtualTree.java
deleted file mode 100644
index c2c897f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestLazyVirtualTree.java
+++ /dev/null
@@ -1,75 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelLazyTreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-public class TestLazyVirtualTree extends TestTree {
-
-	public Viewer createViewer(Composite parent) {
-		Tree tree = new Tree(parent, SWT.VIRTUAL);
-		tree.addListener(SWT.SetData, new Listener() {
-			private String getPosition(TreeItem item) {
-				TreeItem parentItem = item.getParentItem();
-				if (parentItem == null) {
-					return "" + item.getParent().indexOf(item);
-				}
-				return getPosition(parentItem) + "." + parentItem.indexOf(item);
-			}
-
-			public void handleEvent(Event event) {
-				String position = getPosition((TreeItem) event.item);
-				System.out.println("updating " + position);
-			}
-		});
-		TreeViewer viewer = new TreeViewer(tree);
-		viewer.setContentProvider(new TestModelLazyTreeContentProvider(viewer));
-		viewer.setUseHashlookup(true);
-
-		if (fViewer == null)
-			fViewer = viewer;
-		return viewer;
-	}
-	
-	public void setInput(TestElement input) {
-		if(fViewer!=null) {
-			Object oldInput = fViewer.getInput();
-			if(oldInput!=null) {
-				fViewer.setChildCount(oldInput, 0);
-			}
-		}
-		super.setInput(input);
-		if(fViewer!=null && input!=null) {
-			fViewer.setChildCount(input, input.getChildCount());
-		}
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		TestBrowser browser = new TestLazyVirtualTree();
-		if (args.length > 0 && args[0].equals("-twopanes"))
-			browser.show2Panes();
-		browser.setBlockOnOpen(true);
-		browser.open(TestElement.createModel(3, 10));
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestList.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestList.java
deleted file mode 100644
index 959788c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestList.java
+++ /dev/null
@@ -1,39 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelContentProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-
-public class TestList extends TestBrowser {
-    public Viewer createViewer(Composite parent) {
-        ListViewer viewer = new ListViewer(parent);
-        viewer.setUseHashlookup(true);
-        viewer.setContentProvider(new TestModelContentProvider());
-        return viewer;
-    }
-
-    public static void main(String[] args) {
-        TestList browser = new TestList();
-        browser.setBlockOnOpen(true);
-        browser.open(TestElement.createModel(3, 10));
-    }
-
-    /**
-     * 
-     */
-    protected void viewerFillMenuBar(MenuManager mgr) {
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestSelectionAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestSelectionAction.java
deleted file mode 100644
index 595b10e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestSelectionAction.java
+++ /dev/null
@@ -1,56 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-
-public abstract class TestSelectionAction extends TestBrowserAction implements
-        ISelectionChangedListener {
-    public TestSelectionAction(String label, TestBrowser browser) {
-        super(label, browser);
-        browser.getViewer().addSelectionChangedListener(this);
-        setEnabled(false);
-    }
-
-    public TestElement getTestElement(ISelection selection) {
-        if (selection instanceof IStructuredSelection) {
-            return (TestElement) ((IStructuredSelection) selection)
-                    .getFirstElement();
-        }
-        return null;
-    }
-
-    /**
-     * Overridden from Action.
-     */
-    public void run() {
-        TestElement testElement = getTestElement(getBrowser().getViewer()
-                .getSelection());
-        if (testElement != null) {
-            run(testElement);
-        }
-    }
-
-    /**
-     * The default implementation calls run(TestElement)
-     * on every element contained in the vector.
-     */
-    public void run(TestElement o) {
-    }
-
-    public void selectionChanged(SelectionChangedEvent event) {
-        setEnabled(!event.getSelection().isEmpty());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTable.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTable.java
deleted file mode 100644
index 4df5e8a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTable.java
+++ /dev/null
@@ -1,68 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestLabelProvider;
-import org.eclipse.jface.tests.viewers.TestModelContentProvider;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class TestTable extends TestBrowser {
-
-    public Viewer createViewer(Composite parent) {
-        TableViewer viewer = new TableViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        viewer.setLabelProvider(new TestLabelProvider());
-        viewer.getTable().setLinesVisible(true);
-
-        TableLayout layout = new TableLayout();
-        viewer.getTable().setLayout(layout);
-        viewer.getTable().setHeaderVisible(true);
-        String headers[] = { "Label Column", "Second Column" };
-
-        ColumnLayoutData layouts[] = { new ColumnWeightData(100, false),
-                new ColumnWeightData(100, false) };
-
-        final TableColumn columns[] = new TableColumn[headers.length];
-
-        for (int i = 0; i < headers.length; i++) {
-            layout.addColumnData(layouts[i]);
-            TableColumn tc = new TableColumn(viewer.getTable(), SWT.NONE, i);
-            tc.setResizable(layouts[i].resizable);
-            tc.setText(headers[i]);
-            columns[i] = tc;
-        }
-
-        viewer.setUseHashlookup(true);
-
-        return viewer;
-    }
-
-    public static void main(String[] args) {
-        TestTable browser = new TestTable();
-        browser.setBlockOnOpen(true);
-        browser.open(TestElement.createModel(3, 10));
-    }
-
-    /**
-     * 
-     */
-    protected void viewerFillMenuBar(MenuManager mgr) {
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTree.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTree.java
deleted file mode 100644
index e7164d6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTree.java
+++ /dev/null
@@ -1,84 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelContentProvider;
-import org.eclipse.jface.viewers.ColumnLayoutData;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableTreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.TableColumn;
-
-public class TestTableTree extends TestBrowser {
-
-    TableTreeViewer fViewer;
-
-    Action fExpandAllAction;
-
-    public TestTableTree() {
-        super();
-        fExpandAllAction = new ExpandAllAction("Expand All", this);
-    }
-
-    public Viewer createViewer(Composite parent) {
-        TableTreeViewer viewer = new TableTreeViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        viewer.setLabelProvider(new TestTableTreeLabelProvider());
-        viewer.getTableTree().getTable().setLinesVisible(true);
-
-        TableLayout layout = new TableLayout();
-        viewer.getTableTree().getTable().setLayout(layout);
-        viewer.getTableTree().getTable().setHeaderVisible(true);
-        String headers[] = { "First Column", "Second Column" };
-
-        ColumnLayoutData layouts[] = { new ColumnWeightData(100),
-                new ColumnWeightData(100) };
-
-        final TableColumn columns[] = new TableColumn[headers.length];
-
-        for (int i = 0; i < headers.length; i++) {
-            layout.addColumnData(layouts[i]);
-            TableColumn tc = new TableColumn(viewer.getTableTree().getTable(),
-                    SWT.NONE, i);
-            tc.setResizable(layouts[i].resizable);
-            tc.setText(headers[i]);
-            columns[i] = tc;
-        }
-        if (fViewer == null)
-            fViewer = viewer;
-
-        return viewer;
-    }
-
-    public static void main(String[] args) {
-        TestBrowser browser = new TestTableTree();
-        if (args.length > 0 && args[0].equals("-twopanes"))
-            browser.show2Panes();
-        browser.setBlockOnOpen(true);
-        browser.open(TestElement.createModel(3, 10));
-    }
-
-    /**
-     * Adds the expand all action to the tests menu.
-     */
-    protected void viewerFillMenuBar(MenuManager mgr) {
-        MenuManager testMenu = (MenuManager) (mgr.findMenuUsingPath("tests"));
-        testMenu.add(new Separator());
-        testMenu.add(fExpandAllAction);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTreeLabelProvider.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTreeLabelProvider.java
deleted file mode 100644
index 476abd3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTableTreeLabelProvider.java
+++ /dev/null
@@ -1,42 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestLabelProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.swt.graphics.Image;
-
-public class TestTableTreeLabelProvider extends TestLabelProvider implements
-        ITableLabelProvider {
-    /**
-     * Returns the label image for a given column.
-     *
-     * @param element the object representing the entire row. Can be 
-     *     <code>null</code> indicating that no input object is set in the viewer.
-     * @param columnIndex the index of the column in which the label appears. Numbering is zero based.
-     */
-    public Image getColumnImage(Object element, int columnIndex) {
-        return getImage();
-    }
-
-    /**
-     * Returns the label text for a given column.
-     *
-     * @param element the object representing the entire row. Can be 
-     *     <code>null</code> indicating that no input object is set in the viewer.
-     * @param columnIndex the index of the column in which the label appears. Numbering is zero based.
-     */
-    public String getColumnText(Object element, int columnIndex) {
-        if (element != null)
-            return element.toString() + " column " + columnIndex;
-        return null;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTree.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTree.java
deleted file mode 100644
index 4c2e0f7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestTree.java
+++ /dev/null
@@ -1,65 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-
-public class TestTree extends TestBrowser {
-    TreeViewer fViewer;
-
-    Action fExpandAllAction;
-
-    public TestTree() {
-        super();
-        fExpandAllAction = new ExpandAllAction("Expand All", this);
-    }
-
-    /**
-     * 
-     */
-    public Viewer createViewer(Composite parent) {
-        TreeViewer viewer = new TreeViewer(parent);
-        viewer.setContentProvider(new TestModelContentProvider());
-        viewer.setUseHashlookup(true);
-
-        if (fViewer == null)
-            fViewer = viewer;
-        return viewer;
-    }
-
-    public static void main(String[] args) {
-        TestBrowser browser = new TestTree();
-        if (args.length > 0 && args[0].equals("-twopanes"))
-            browser.show2Panes();
-        browser.setBlockOnOpen(true);
-        browser.open(TestElement.createModel(3, 10));
-    }
-
-    public void testTreeFillMenuBar(MenuManager testMenu) {
-
-    }
-
-    /**
-     * Adds the expand all action to the tests menu.
-     */
-    protected void viewerFillMenuBar(MenuManager mgr) {
-        MenuManager testMenu = (MenuManager) (mgr.findMenuUsingPath("tests"));
-        testMenu.add(new Separator());
-        testMenu.add(fExpandAllAction);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestVirtualTree.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestVirtualTree.java
deleted file mode 100644
index f227105..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/TestVirtualTree.java
+++ /dev/null
@@ -1,64 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-
-public class TestVirtualTree extends TestTree {
-
-	public Viewer createViewer(Composite parent) {
-		Tree tree = new Tree(parent, SWT.VIRTUAL);
-		tree.addListener(SWT.SetData, new Listener() {
-			private String getPosition(TreeItem item) {
-				TreeItem parentItem = item.getParentItem();
-				if (parentItem == null) {
-					return "" + item.getParent().indexOf(item);
-				}
-				return getPosition(parentItem) + "." + parentItem.indexOf(item);
-			}
-
-			public void handleEvent(Event event) {
-				String position = getPosition((TreeItem) event.item);
-				if (position.endsWith(".32"))
-					Thread.dumpStack();
-				System.out.println("updating " + position);
-			}
-		});
-		TreeViewer viewer = new TreeViewer(tree);
-		viewer.setContentProvider(new TestModelContentProvider());
-		viewer.setUseHashlookup(true);
-
-		if (fViewer == null)
-			fViewer = viewer;
-		return viewer;
-	}
-
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		TestBrowser browser = new TestVirtualTree();
-		if (args.length > 0 && args[0].equals("-twopanes"))
-			browser.show2Panes();
-		browser.setBlockOnOpen(true);
-		browser.open(TestElement.createModel(3, 10));
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/VirtualTableView.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/VirtualTableView.java
deleted file mode 100644
index 8dff268..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/VirtualTableView.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * The is a test VirtualTableView of the support for SWT.VIRTUAL in JFace.
- * 
- * @since 3.1
- */
-public class VirtualTableView extends ViewPart {
-
-	TableViewer viewer;
-
-	int itemCount = 10000;
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public VirtualTableView() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-
-		viewer = new TableViewer(parent, SWT.VIRTUAL);
-		viewer.setContentProvider(getContentProvider());
-		viewer.setInput(this);
-		viewer.setItemCount(itemCount);
-		
-		Composite buttonComposite = new Composite(parent,SWT.NONE);
-		buttonComposite.setLayout(new GridLayout());
-
-		Button resetInput = new Button(buttonComposite,SWT.PUSH);
-		resetInput.setText("Reset input");
-		resetInput.addSelectionListener(new SelectionAdapter(){
-			public void widgetSelected(org.eclipse.swt.events.SelectionEvent e){
-				resetInput();
-			}
-		});
-		
-		Button delete = new Button(buttonComposite, SWT.PUSH);
-		delete.setText("Delete selection");
-		delete.addSelectionListener(new SelectionAdapter() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-			 */
-			public void widgetSelected(SelectionEvent e) {
-				Object[] selection = ((IStructuredSelection) viewer.getSelection()).toArray();
-				doRemove(selection, viewer.getTable().getSelectionIndices());
-			}
-		});
-
-	}
-
-	protected void doRemove(Object[] selection, int[] selectionIndices) {
-		viewer.remove(selection);
-	}
-
-	/**
-	 * Get the content provider for the receiver.
-	 * 
-	 * @return IContentProvider
-	 */
-	protected IContentProvider getContentProvider() {
-		return new IStructuredContentProvider() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-			 */
-			public void dispose() {
-				// Nothing to do here.
-
-			}
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-			 */
-			public Object[] getElements(Object inputElement) {
-				String[] elements = new String[itemCount];
-				for (int i = 0; i < itemCount; i++) {
-					elements[i] = "Element " + String.valueOf(i);
-				}
-				return elements;
-			}
-
-			/*
-			 * (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) {
-				// Nothing to do here.
-
-			}
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		viewer.getTable().setFocus();
-
-	}
-
-	/**
-	 * Reset the input of the view.
-	 */
-	protected void resetInput() {
-		viewer.setInput(this);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/WorldChangedAction.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/WorldChangedAction.java
deleted file mode 100644
index edbb80c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/viewers/interactive/WorldChangedAction.java
+++ /dev/null
@@ -1,24 +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.jface.tests.viewers.interactive;
-
-import org.eclipse.jface.viewers.StructuredViewer;
-
-public class WorldChangedAction extends TestBrowserAction {
-
-    public WorldChangedAction(String label, TestBrowser browser) {
-        super(label, browser);
-    }
-
-    public void run() {
-        ((StructuredViewer) getBrowser().getViewer()).refresh();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/ButtonAlignmentTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/ButtonAlignmentTest.java
deleted file mode 100644
index 37794db..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/ButtonAlignmentTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.wizards;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-public class ButtonAlignmentTest extends TestCase {
-
-	private TheTestWizard wizard;
-	private TheTestWizardDialog dialog;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		// ensure we've initialized a display for this thread
-		Display.getDefault();
-	}
-
-	protected void tearDown() throws Exception {
-		if (dialog != null && dialog.getShell() != null
-				&& !dialog.getShell().isDisposed()) {
-			dialog.close();
-		}
-
-		super.tearDown();
-	}
-
-	public ButtonAlignmentTest() {
-		super("ButtonAlignmentTest");
-	}
-
-	public void testButtonAlignment() {
-		wizard = new TheTestWizard();
-		dialog = new TheTestWizardDialog(null, wizard);
-		dialog.create();
-		dialog.open();
-
-		// retrieve the parent control for the button bar
-		Composite parent = dialog.getFinishedButton().getParent();
-		Control[] children = parent.getChildren();
-		assertEquals(
-				"There should be three children, a composite for back/next buttons, the finish button, and the cancel button", //$NON-NLS-1$
-				3, children.length);
-
-		// first children should be the Composite holding the 'Back' and 'Next'
-		// buttons
-		assertTrue(children[0] instanceof Composite);
-		Composite backNextParent = (Composite) children[0];
-
-		// retrieve its children and verify its contents
-		Control[] backNextChildren = backNextParent.getChildren();
-		assertEquals("Back button should be the first button", dialog //$NON-NLS-1$
-				.getBackButton(), backNextChildren[0]);
-		assertEquals("Next button should be the second button", dialog //$NON-NLS-1$
-				.getNextButton(), backNextChildren[1]);
-
-		// verify button alignment based on the platform's dismissal alignment
-		int finishIndex = parent.getDisplay().getDismissalAlignment() == SWT.LEFT ? 1
-				: 2;
-		int cancelIndex = parent.getDisplay().getDismissalAlignment() == SWT.LEFT ? 2
-				: 1;
-
-		assertEquals(
-				"Finish button's alignment is off", dialog.getFinishedButton(), children[finishIndex]); //$NON-NLS-1$
-		assertEquals(
-				"Cancel button's alignment is off", dialog.getCancelButton(), children[cancelIndex]); //$NON-NLS-1$
-	}
-
-	public void testButtonAlignmentWithoutBackNextButtons() {
-		wizard = new TheTestWizard() {
-			public void addPages() {
-				// only add one page so there are no 'Back' or 'Next' buttons
-				addPage(new TheTestWizardPage(page1Name));
-			}
-		};
-		dialog = new TheTestWizardDialog(null, wizard);
-		dialog.create();
-		dialog.open();
-
-		// retrieve the parent control for the button bar
-		Composite parent = dialog.getFinishedButton().getParent();
-		Control[] children = parent.getChildren();
-		assertEquals(
-				"There should be two children, the finish button, and the cancel button", //$NON-NLS-1$
-				2, children.length);
-
-		// verify button alignment based on the platform's dismissal alignment
-		int finishIndex = parent.getDisplay().getDismissalAlignment() == SWT.LEFT ? 0
-				: 1;
-		int cancelIndex = parent.getDisplay().getDismissalAlignment() == SWT.LEFT ? 1
-				: 0;
-
-		assertEquals(
-				"Finish button's alignment is off", dialog.getFinishedButton(), children[finishIndex]); //$NON-NLS-1$
-		assertEquals(
-				"Cancel button's alignment is off", dialog.getCancelButton(), children[cancelIndex]); //$NON-NLS-1$
-	}
-
-	public void testBug270174() {
-		wizard = new TheTestWizard() {
-			public boolean canFinish() {
-				// make sure the wizard can't finish early, this will ensure
-				// that the 'Next' button is the default button
-				return false;
-			}
-		};
-		dialog = new TheTestWizardDialog(null, wizard);
-		dialog.create();
-		dialog.open();
-
-		// retrieve the parent control for the button bar
-		Composite parent = dialog.getFinishedButton().getParent();
-		Control[] children = parent.getChildren();
-		assertEquals(
-				"There should be three children, a composite for back/next buttons, the finish button, and the cancel button", //$NON-NLS-1$
-				3, children.length);
-
-		// first children should be the Composite holding the 'Back' and 'Next'
-		// buttons
-		assertTrue(children[0] instanceof Composite);
-		Composite backNextParent = (Composite) children[0];
-
-		// retrieve its children and verify its contents
-		Control[] backNextChildren = backNextParent.getChildren();
-		assertEquals("Back button should be the first button", dialog //$NON-NLS-1$
-				.getBackButton(), backNextChildren[0]);
-		assertEquals("Next button should be the second button", dialog //$NON-NLS-1$
-				.getNextButton(), backNextChildren[1]);
-
-		// verify button alignment based on the platform's dismissal alignment
-		int finishIndex = parent.getDisplay().getDismissalAlignment() == SWT.LEFT ? 1
-				: 2;
-		int cancelIndex = parent.getDisplay().getDismissalAlignment() == SWT.LEFT ? 2
-				: 1;
-
-		assertEquals(
-				"Finish button's alignment is off", dialog.getFinishedButton(), children[finishIndex]); //$NON-NLS-1$
-		assertEquals(
-				"Cancel button's alignment is off", dialog.getCancelButton(), children[cancelIndex]); //$NON-NLS-1$
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizard.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizard.java
deleted file mode 100644
index 6e0cf75..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizard.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.wizards;
-
-import org.eclipse.jface.wizard.Wizard;
-
-
-public class TheTestWizard extends Wizard {
-	public TheTestWizardPage page1;
-	public TheTestWizardPage page2;
-	public TheTestWizardPage page3;
-	public final String page1Name = "PAGE1";
-	public final String page2Name = "PAGE2";
-	public final String page3Name = "PAGE3";
-	
-	public TheTestWizard() {
-		super();
-		setNeedsProgressMonitor(true);
-	}
-	
-	/**
-	 * Adding the page to the wizard.
-	 */
-
-	public void addPages() {
-		page1 = new TheTestWizardPage(page1Name);
-		addPage(page1);
-		page2 = new TheTestWizardPage(page2Name);
-		addPage(page2);
-		page3 = new TheTestWizardPage(page3Name);
-		addPage(page3);
-	}
-
-	/**
-	 * This method is called when 'Finish' button is pressed in
-	 * the wizard. 
-	 */
-	public boolean performFinish() {
-		WizardTest.DID_FINISH = true;
-		return true;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardDialog.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardDialog.java
deleted file mode 100644
index aec2b72..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardDialog.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.wizards;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * The purpose of this class is to expose WizardDialog internals for testing
- */
-public class TheTestWizardDialog extends WizardDialog {
-
-	/**
-	 * @param parentShell
-	 * @param newWizard
-	 */
-	public TheTestWizardDialog(Shell parentShell, IWizard newWizard) {
-		super(parentShell, newWizard);
-		setBlockOnOpen(false);
-	}
-
-	public Button getFinishedButton() {
-		return getButton(IDialogConstants.FINISH_ID);
-	}
-	
-	public Button getCancelButton() {
-		return getButton(IDialogConstants.CANCEL_ID);
-	}
-
-	public Button getBackButton() {
-		return getButton(IDialogConstants.BACK_ID);
-	}
-	
-	public Button getNextButton() {
-		return getButton(IDialogConstants.NEXT_ID);
-	}
-	
-	public void finishPressed() {
-		super.finishPressed();
-	}
-	public void cancelPressed() {
-		super.cancelPressed();
-	}
-	public void backPressed() {
-		super.backPressed();
-	}
-	public void nextPressed() {
-		super.nextPressed();
-	}
-	public void buttonPressed(int buttonId) {
-		super.buttonPressed(buttonId);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardPage.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardPage.java
deleted file mode 100644
index ffcfc9d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/TheTestWizardPage.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.wizards;
-
-import org.eclipse.jface.dialogs.IDialogPage;
-import org.eclipse.jface.wizard.WizardPage;
-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.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-public class TheTestWizardPage extends WizardPage {
-	public static final String BAD_TEXT_FIELD_CONTENTS = "BAD VALUE";
-	public static final String BAD_TEXT_FIELD_STATUS = "A bad value was entered";
-	public static final String GOOD_TEXT_FIELD_CONTENTS = "GOOD VALUE";
-	public Text textInputField;
-
-	public TheTestWizardPage(String name) {
-		super(name);
-	}
-
-	/**
-	 * @see IDialogPage#createControl(Composite)
-	 */
-	public void createControl(Composite parent) {
-		Composite container = new Composite(parent, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		container.setLayout(layout);
-		layout.numColumns = 2;
-		layout.verticalSpacing = 9;
-		Label label = new Label(container, SWT.NULL);
-		label.setText(getName());
-
-		textInputField = new Text(container, SWT.BORDER | SWT.SINGLE);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		textInputField.setLayoutData(gd);
-		textInputField.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				dialogChanged();
-			}
-		});
-		
-		initialize();
-		dialogChanged();
-		setControl(container);
-	}
-
-	private void initialize() {}
-
-
-	/**
-	 * Handle dialog values changing
-	 */
-
-	private void dialogChanged() {
-		if (textInputField.getText().equals(BAD_TEXT_FIELD_CONTENTS)) {
-			setPageComplete(false);
-			updateStatus(BAD_TEXT_FIELD_STATUS);
-			return;
-		}
-		//any other value, including no value, is good
-		setPageComplete(true);
-		updateStatus(null);
-	}
-
-	private void updateStatus(String message) {
-		setErrorMessage(message);
-		setPageComplete(message == null);
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTest.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTest.java
deleted file mode 100644
index 927d3ea..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTest.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.jface.tests.wizards;
-
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.IPageChangingListener;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.dialogs.PageChangingEvent;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-public class WizardTest extends TestCase {
-	/**
-	 * 
-	 */
-	protected static final int NUM_PAGES = 3;
-
-	static boolean DID_FINISH = false; //accessed from this test AND wizard
-
-	protected final static String WIZARD_TITLE = "TEST WIZARD TITLE";
-	protected final static String PAGE_TITLE = "TEST PAGE TITLE";
-	protected RGB color1;
-	protected RGB color2;
-	
-	protected TheTestWizard wizard;
-	protected TheTestWizardDialog dialog;
-	
-	boolean pageChanged = false;
-	boolean pageChangingFired = false;
-
-	
-	public WizardTest() {
-		super("NewWizardTest");
-	}
-
-
-	public void testEndingWithFinish() throws IOException {
-		//test page count
-        assertEquals("Wizard has wrong number of pages", NUM_PAGES, wizard.getPageCount());
-
-        //test page name
-        assertEquals("WizardPage.getName() returned wrong name", wizard.page1Name, wizard.page1.getName());
-
-        //test getPage()
-        assertSame("Wizard.getPage() returned wrong page", wizard.getPage(wizard.page1Name), wizard.page1);
-
-		//test title
-		wizard.setWindowTitle(WIZARD_TITLE);
-        assertEquals("Wizard has wrong title", wizard.getWindowTitle(), WIZARD_TITLE);
-        wizard.page1.setTitle(PAGE_TITLE);
-        assertEquals("Wizard has wrong title", wizard.page1.getTitle(), PAGE_TITLE);
-        
-        //set+test color twice to ensure initial color didn't happen to be color1
-        wizard.setTitleBarColor(color1);
-        assertEquals("Wizard has wrong title color", wizard.getTitleBarColor(), color1);
-        wizard.setTitleBarColor(color2);
-        assertEquals("Wizard has wrong title color", wizard.getTitleBarColor(), color2);
-        
-        //test on starting page
-		assertSame("Wizard has wrong starting page", wizard.page1, wizard.getStartingPage());
-		assertSame("Wizard not on starting page", wizard.page1, dialog.getCurrentPage());
-
-		//test getMessage() 
-        assertSame("WizardPage error message should be null", null, wizard.page1.getErrorMessage());
-		wizard.page1.textInputField.setText(TheTestWizardPage.BAD_TEXT_FIELD_CONTENTS);
-        assertEquals("WizardPage error message set correctly", TheTestWizardPage.BAD_TEXT_FIELD_STATUS, wizard.page1.getErrorMessage());
-
-        //test page completion
-		wizard.page1.textInputField.setText(TheTestWizardPage.GOOD_TEXT_FIELD_CONTENTS);
-        assertEquals("Page should be completed", true, wizard.page1.canFlipToNextPage());
-        //Setting good value should've cleared the error message
-        assertSame("WizardPage error message should be null", null, wizard.page1.getErrorMessage());
-
-        //test getNextPage() without page changes
-        assertSame("WizardPage.getNexPage() wrong page", wizard.page2, wizard.page1.getNextPage());
-        assertSame("Wizard.getNexPage() wrong page", wizard.page2, wizard.getNextPage(wizard.page1));
-        assertSame("WizardPage.getPreviousPage() wrong page", wizard.page1, wizard.page2.getPreviousPage());
-        assertSame("Wizard.getPreviousPage() wrong page", wizard.page1, wizard.getPreviousPage(wizard.page2));
-        assertSame("WizardPage.getNexPage() wrong page", wizard.page3, wizard.page2.getNextPage());
-        assertSame("Wizard.getPreviousPage() wrong page", wizard.page2, wizard.getPreviousPage(wizard.page3));
-	
-        //test canFinish()
-        wizard.page2.textInputField.setText(TheTestWizardPage.BAD_TEXT_FIELD_CONTENTS);
-        assertEquals("Wizard should not be able to finish", false, wizard.canFinish());
-        wizard.page2.textInputField.setText(TheTestWizardPage.GOOD_TEXT_FIELD_CONTENTS);
-        assertEquals("Wizard should be able to finish", true, wizard.canFinish());
-
-		//test simulated Finish button hit
-		//TheTestWizard's performFinish() sets DID_FINISH to true
-		dialog.finishPressed();
-        assertEquals("Wizard didn't perform finish", true, DID_FINISH);
-	}
-	
-	public void testEndingWithCancel() throws IOException {
-		assertSame("Wizard not on starting page", wizard.page1, dialog.getCurrentPage());
-
-		//TheTestWizard's performFinish() sets DID_FINISH to true, ensure it was not called
-		wizard.performCancel();
-        assertEquals("Wizard finished but should not have", false, DID_FINISH);
-
-        dialog.cancelPressed();
-        assertEquals("Wizard performed finished but should not have", false, DID_FINISH);
-	}
-
-	public void testPageChanging() throws IOException {    
-		//initially on first page
-	    assertSame("Wizard started on wrong page", wizard.page1, dialog.getCurrentPage());  
-		assertEquals("Back button should be disabled on first page", false, dialog.getBackButton().getEnabled());
-		assertEquals("Next button should be enabled on first page", true, dialog.getNextButton().getEnabled());
-
-		//move to middle page 2
-		dialog.nextPressed();
-	    assertSame("Wizard.nextPressed() set wrong page", wizard.page2, dialog.getCurrentPage());
-		assertEquals("Back button should be enabled on middle page", true, dialog.getBackButton().getEnabled());
-		assertEquals("Next button should be enabled on middle page", true, dialog.getNextButton().getEnabled());
-		
-		//test that can't complete by inserting bad value to be validated
-		wizard.page2.textInputField.setText(TheTestWizardPage.BAD_TEXT_FIELD_CONTENTS);
-		assertEquals("Finish should be disabled when bad field value", false, dialog.getFinishedButton().getEnabled());
-		assertEquals("Cancel should always be enabled", true, dialog.getCancelButton().getEnabled());
-		
-		//test that can complete by inserting good value to be validated
-        wizard.page2.textInputField.setText(TheTestWizardPage.GOOD_TEXT_FIELD_CONTENTS);
-		assertEquals("Finish should be enabled when good field value", true, dialog.getFinishedButton().getEnabled());
-
-		//move to last page 3
-		dialog.nextPressed();
-	    assertSame("Wizard.nextPressed() set wrong page", wizard.page3, dialog.getCurrentPage());
-		assertEquals("Back button should be enabled on last page", true, dialog.getBackButton().getEnabled());
-		assertEquals("Next button should be disenabled on last page", false, dialog.getNextButton().getEnabled());
-		
-		//move back to page 2
-		dialog.backPressed();
-	    assertSame("Wizard.backPressed() set wrong page", wizard.page2, dialog.getCurrentPage());
-		assertEquals("Back button should be enabled on middle page", true, dialog.getBackButton().getEnabled());
-		assertEquals("Next button should be enabled on middle page", true, dialog.getNextButton().getEnabled());
-
-		//move back to page 1
-		dialog.backPressed();
-	    assertSame("Wizard.backPressed() set wrong page", wizard.page1, dialog.getCurrentPage());  
-		assertEquals("Back button should be disabled on first page", false, dialog.getBackButton().getEnabled());
-		assertEquals("Next button should be enabled on first page", true, dialog.getNextButton().getEnabled());
-		
-		//move Next to page 2
-		dialog.buttonPressed(IDialogConstants.NEXT_ID);
-	    assertSame("Wizard.backPressed() set wrong page", wizard.page2, dialog.getCurrentPage());
-		//move Back to page 1
-		dialog.buttonPressed(IDialogConstants.BACK_ID);
-	    assertSame("Wizard.backPressed() set wrong page", wizard.page1, dialog.getCurrentPage());  	    
-	}
-	
-	public void testShowPage() throws IOException {    
-		//move to page 3
-		dialog.nextPressed();
-		dialog.nextPressed();
-	    assertSame("Wizard.nextPressed() set wrong page", wizard.page3, dialog.getCurrentPage());
-
-	    //showPage() back to page 1
-		dialog.showPage(wizard.page1);
-
-		assertSame("Wizard.showPage() set wrong page", wizard.page1, dialog.getCurrentPage());
-		
-		//TODO Next test fails due to bug #249369
-//		assertEquals("Back button should be disabled on first page", false, dialog.getBackButton().getEnabled());
-		assertEquals("Next button should be enabled on first page", true, dialog.getNextButton().getEnabled());
-	}
-
-	public void testPageChangeListening() throws IOException {   
-		pageChanged = false;
-		pageChangingFired = false;
-		
-		IPageChangedListener changedListener = new IPageChangedListener() {
-			public void pageChanged(PageChangedEvent event) {
-				pageChanged = true;				
-			}
-			
-		};
-
-		IPageChangingListener changingListener = new IPageChangingListener() {
-			public void handlePageChanging(PageChangingEvent event) {
-				assertEquals("Page should not have changed yet", false, pageChanged);
-				pageChangingFired = true;
-			}
-		
-		};
-		
-		//test that listener notifies us of page change
-		dialog.addPageChangedListener(changedListener);
-		dialog.addPageChangingListener(changingListener); //assert is in the listener
-		assertEquals("Page change notified unintentially", false, pageChanged);	
-		//change to page 2
-		dialog.nextPressed();
-		assertEquals("Wasn't notified of page change", true, pageChanged);
-		assertEquals("Wasn't notified of page changing", true, pageChangingFired);
-
-		dialog.removePageChangingListener(changingListener); //if not removed, its assert will fail on next nextPressed()
-		//change to page 2
-		dialog.nextPressed();
-
-		//test with listener removed
-		pageChanged = false;
-		dialog.removePageChangedListener(changedListener);
-		//change to page 3
-		dialog.nextPressed();
-		assertEquals("Page change notified unintentially", false, pageChanged);
-	}
-	
-	//----------------------------------------------------
-
-	
-	protected void setUp() throws Exception {
-		// TODO Auto-generated method stub
-		super.setUp();
-		DID_FINISH = false;
-		color1 = new RGB(255, 0, 0);
-		color2 = new RGB(0, 255, 0);
-		
-		createWizardDialog();
-	}
-
-	protected void tearDown() throws Exception {
-		if(dialog.getShell() != null && ! dialog.getShell().isDisposed()) {
-		    dialog.close();
-		}		
-	}
-	
-	//Create and open the wizard 
-	protected void createWizardDialog() {
-		//ensure we've initialized a display for this thread
-		Display.getDefault();
-        
-		wizard = new TheTestWizard();
-        dialog = new TheTestWizardDialog(null, wizard);
-        dialog.create();
-        
-        dialog.open();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTestSuite.java
deleted file mode 100644
index ed1e52d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/wizards/WizardTestSuite.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jface.tests.wizards;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class WizardTestSuite extends TestSuite {
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(suite());
-    }
-
-    public static Test suite() {
-        return new WizardTestSuite();
-    }
-
-    public WizardTestSuite() {
-    	addTestSuite(ButtonAlignmentTest.class);
-    	addTestSuite(WizardTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/RCPSessionApplication.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/RCPSessionApplication.java
deleted file mode 100644
index 3d1f951..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/RCPSessionApplication.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests;
-
-import org.eclipse.equinox.app.IApplication;
-import org.eclipse.equinox.app.IApplicationContext;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-
-public class RCPSessionApplication implements IApplication {
-	
-	public Object start(IApplicationContext context) throws Exception {
-		Display display = PlatformUI.createDisplay();
-		try {
-			PlatformUI.createAndRunWorkbench(display, new RCPTestWorkbenchAdvisor());
-		} finally {
-			if (display != null)
-				display.dispose();
-		}
-		return EXIT_OK;
-	}
-
-	public void stop() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench == null)
-			return;
-		final Display display = workbench.getDisplay();
-		display.syncExec(new Runnable() {
-			public void run() {
-				if (!display.isDisposed())
-					workbench.close();
-			}
-		});
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/propertyPages/TestPropertyPage.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/propertyPages/TestPropertyPage.java
deleted file mode 100644
index 2f797e7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/propertyPages/TestPropertyPage.java
+++ /dev/null
@@ -1,34 +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.tests.propertyPages;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbenchPropertyPage;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-public class TestPropertyPage extends PropertyPage implements
-		IWorkbenchPropertyPage {
-
-	public TestPropertyPage() {
-		//Create a new instance of the receiver
-	}
-
-	protected Control createContents(Composite parent) {
-		Label label = new Label(parent,SWT.NONE);
-		label.setText("Test page");
-		return label;
-		
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/session/NonRestorableView.java b/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/session/NonRestorableView.java
deleted file mode 100644
index d6e5a5b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/ui/tests/session/NonRestorableView.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Versant Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.session;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-public class NonRestorableView extends ViewPart {
-	public static final String ID ="org.eclipse.ui.tests.session.NonRestorableView";
-
-	public NonRestorableView() {	}
-
-	public void createPartControl(Composite parent) {}
-
-	public void setFocus() {	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/EditorsReferencesTest.java b/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/EditorsReferencesTest.java
deleted file mode 100644
index a9a56ad..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/EditorsReferencesTest.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.parts.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.parts.tests.util.PartsTestUtil;
-import org.eclipse.ui.parts.tests.util.PartsWorkbenchAdvisor;
-
-/**
- * Test case to ensure that editor references are created when neededed. Also
- * ensures that zooming behaves correctly on start up (Bug 64043).
- */
-public class EditorsReferencesTest extends TestCase {
-
-    private Display display;
-
-    /**
-     * Constructor.
-     * 
-     * @param testName
-     *            The test's name.
-     */
-    public EditorsReferencesTest(String testName) {
-        super(testName);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-        super.setUp();
-        createDisplay();
-    }
-
-	private void createDisplay() {
-		display = PlatformUI.createDisplay();
-	}
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        disposeDisplay();
-        super.tearDown();
-    }
-
-	private void disposeDisplay() {
-		display.dispose();
-		display = null;
-	}
-
-    /**
-     * Test that only file0's part has been created (ideally).
-     *  
-     */
-    public void testActivePartFile0() {
-        openEditors(0);
-        newDisplay();
-        checkEditorsParts(0);
-
-    }
-
-    /**
-     * Test that only file1's part has been created (ideally).
-     *  
-     */
-    public void testActivePartFile1() {
-        openEditors(1);
-        newDisplay();
-        checkEditorsParts(1);
-
-    }
-
-    /**
-     * Test that only file2's part has been created (ideally).
-     *  
-     */
-    public void testActivePartFile2() {
-        openEditors(2);
-        newDisplay();
-        checkEditorsParts(2);
-
-    }
-
-    /**
-     * Test that zooming file0 on start up and navigating to other editors
-     * behaves correcly.
-     *  
-     */
-    public void testZoomActivePartFile0() {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean curMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-        openEditors(0);
-        newDisplay();
-        zoomEditor(0);
-        
-        // Restore the previous state (just in case)
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, curMinMaxState);
-    }
-
-    /**
-     * Test that zooming file1 on start up and navigating to other editors
-     * behaves correcly.
-     *  
-     */
-    public void testZoomActivePartFile1() {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean curMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-        openEditors(1);
-        newDisplay();
-        zoomEditor(1);
-        
-        // Restore the previous state (just in case)
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, curMinMaxState);
-    }
-
-    /**
-     * Test that zooming file2 on start up and navigating to other editors
-     * behaves correcly.
-     *  
-     */
-    public void testZoomActivePartFile2() {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean curMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-        openEditors(2);
-        newDisplay();
-        zoomEditor(2);
-        
-        // Restore the previous state (just in case)
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, curMinMaxState);
-    }
-
-    /**
-     * Open all the editors.
-     * 
-     * @param lastFileToOpen
-     *            The index of the last file to be opened.
-     */
-    private void openEditors(final int lastFileToOpen) {
-        PartsWorkbenchAdvisor wa = new PartsWorkbenchAdvisor() {
-            protected void validate(IWorkbenchPage page) {
-                for (int index = 0; index < PartsTestUtil.numOfParts; index++) {
-                    if (index != lastFileToOpen)
-                        PartsTestUtil.openEditor(PartsTestUtil
-                                .getFileName(index), page);
-                }
-                PartsTestUtil.openEditor(PartsTestUtil
-                        .getFileName(lastFileToOpen), page);
-                assertEquals(page.getEditorReferences().length,
-                        PartsTestUtil.numOfParts);
-                assertEquals(page.getActiveEditor().getTitle(), PartsTestUtil
-                        .getFileName(lastFileToOpen));
-
-            }
-        };
-        PlatformUI.createAndRunWorkbench(display, wa);
-
-    }
-
-    /**
-     * Check that the active editor's part has been created.
-     * 
-     * @param lastFileOpened
-     *            The active file's index.
-     */
-    private void checkEditorsParts(final int lastFileOpened) {
-
-        PartsWorkbenchAdvisor wa = new PartsWorkbenchAdvisor() {
-            protected void validate(IWorkbenchPage page) {
-                String activeFileName = PartsTestUtil
-                        .getFileName(lastFileOpened);
-                assertEquals(page.getEditorReferences().length,
-                        PartsTestUtil.numOfParts);
-                assertTrue(page.getActivePart() instanceof IEditorPart);
-                IEditorPart activeEditorPart = page.getActiveEditor();
-                assertEquals(activeEditorPart.getTitle(), activeFileName);
-                IEditorReference[] editorReferences = page
-                        .getEditorReferences();
-                int numActiveParts = 0;
-                for (int index = 0; index < editorReferences.length; index++) {
-                    if (editorReferences[index].getEditor(false) != null)
-                        numActiveParts++;
-
-                }
-                //TODO: Ideally, the number of active parts would be 1
-                assertTrue(numActiveParts <= 2);
-            }
-        };
-
-        PlatformUI.createAndRunWorkbench(display, wa);
-
-    }
-
-    /**
-     * Zoom the active editor and navigate to the other open editors.
-     * 
-     * @param editorIndex
-     *            The active editor's index.
-     */
-    public void zoomEditor(final int editorIndex) {
-        PartsWorkbenchAdvisor wa = new PartsWorkbenchAdvisor() {
-            protected void validate(IWorkbenchPage page) {
-                IWorkbenchPartReference activePartReference = page
-                        .getActivePartReference();
-                String activePartReferenceTitle = activePartReference
-                        .getTitle();
-                assertTrue(activePartReference instanceof IEditorReference);
-                assertEquals(activePartReferenceTitle, PartsTestUtil
-                        .getFileName(editorIndex));
-
-                IWorkbenchPart activePart = page.getActivePart();
-                assertTrue(activePart instanceof IEditorPart);
-
-                PartsTestUtil.zoom(activePart);
-                assertTrue(PartsTestUtil.isZoomed(activePart));
-
-                IEditorReference[] editorReferences = page
-                        .getEditorReferences();
-                String currentEditorTitle = null;
-                for (int index = 0; index < editorReferences.length; index++) {
-                    currentEditorTitle = editorReferences[index].getTitle();
-                    if (!currentEditorTitle.equals(activePartReferenceTitle)) {
-                        PartsTestUtil.openEditor(currentEditorTitle, page);
-                        activePartReferenceTitle = currentEditorTitle;
-                    }
-                }
-
-                activePart = page.getActivePart();
-                assertTrue(activePart instanceof IEditorPart);
-
-                if (PartsTestUtil.isZoomed(activePart))
-                    PartsTestUtil.zoom(activePart);
-
-            }
-        };
-        PlatformUI.createAndRunWorkbench(display, wa);
-    }
-
-    /**
-     * Dispose of the old display and create a new one.
-     */
-	private void newDisplay() {
-		disposeDisplay();
-        createDisplay();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/PartsReferencesTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/PartsReferencesTestSuite.java
deleted file mode 100644
index d59fc0a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/PartsReferencesTestSuite.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.parts.tests;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.parts.tests.util.PartsTestUtil;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.TweakletCheckTest;
-
-/**
- * Test suite to check the behavior of parts (editors and views) creation on
- * start up. Suite written for Bug 66065.
- */
-public class PartsReferencesTestSuite {
-
-    /**
-     * Constructor.
-     * 
-     * @return the test.
-     */
-    public static Test suite() {
-
-        TestSuite suite = new TestSuite();
-
-        suite.addTest(new TweakletCheckTest());
-        suite.addTest(new TestSuite(ViewsReferencesTest.class));
-        suite.addTest(new TestSuite(EditorsReferencesTest.class));
-
-        /**
-         * Wrapper to set up the tests. Ensures the creation of files on set up
-         * and the deletion on tear down.
-         */
-        TestSetup wrapper = new TestSetup(suite) {
-
-            /*
-             * (non-Javadoc)
-             * 
-             * @see junit.extensions.TestSetup#setUp()
-             */
-            protected void setUp() {
-                try {
-                    IProject testProject = FileUtil
-                            .createProject(PartsTestUtil.projectName); //$NON-NLS-1$
-                    for (int index = 0; index < PartsTestUtil.numOfParts; index++) {
-                        FileUtil.createFile(PartsTestUtil.getFileName(index),
-                                testProject);
-                    }
-                } catch (CoreException e) {
-                    e.printStackTrace(System.err);
-                }
-
-            }
-
-            /*
-             * (non-Javadoc)
-             * 
-             * @see junit.extensions.TestSetup#tearDown()
-             */
-            protected void tearDown() {
-                try {
-                    FileUtil.deleteProject(PartsTestUtil.getProject());
-                } catch (CoreException e) {
-                    e.printStackTrace(System.err);
-                }
-            }
-        };
-
-        return wrapper;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/ViewsReferencesTest.java b/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/ViewsReferencesTest.java
deleted file mode 100644
index 9338a63..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/ViewsReferencesTest.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.parts.tests;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.parts.tests.util.PartsTestUtil;
-import org.eclipse.ui.parts.tests.util.PartsWorkbenchAdvisor;
-
-/**
- * Test case to ensure that view references are created when neededed. Also
- * ensures that zooming behaves correctly on start up (Bug 64043).
- */
-public class ViewsReferencesTest extends TestCase {
-
-    private Display display;
-
-    /**
-     * Constructor.
-     * 
-     * @param testName
-     *            The test's name.
-     */
-    public ViewsReferencesTest(String testName) {
-        super(testName);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-        super.setUp();
-        createDisplay();
-    }
-
-	private void createDisplay() {
-		display = PlatformUI.createDisplay();
-	}
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        disposeDisplay();
-        super.tearDown();
-    }
-
-	private void disposeDisplay() {
-		display.dispose();
-		display = null;
-	}
-
-    /**
-     * Test that only view0's part has been created (ideally).
-     *  
-     */
-    public void testActivePartView0() {
-        openViews(0);
-        newDisplay();
-        checkViewsParts(0);
-    }
-
-    /**
-     * Dispose of the old display and create a new one.
-     */
-	private void newDisplay() {
-		disposeDisplay();
-        createDisplay();
-	}
-
-    /**
-     * Test that only view1's part has been created (ideally).
-     *  
-     */
-    public void testActivePartView1() {
-        openViews(1);
-        newDisplay();
-        checkViewsParts(1);
-
-    }
-
-    /**
-     * Test that only view2's part has been created (ideally).
-     *  
-     */
-    public void testActivePartView2() {
-        openViews(2);
-        newDisplay();
-        checkViewsParts(2);
-    }
-
-    /**
-     * Test that zooming view0 on start up and navigating to other views behaves
-     * correcly.
-     *  
-     */
-    public void testZoomActivePartView0() {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean curMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-        openViews(0);
-        newDisplay();
-        zoomView(0);
-        
-        // Restore the previous state (just in case)
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, curMinMaxState);
-    }
-
-    /**
-     * Test that zooming view1 on start up and navigating to other views behaves
-     * correcly.
-     *  
-     */
-    public void testZoomActivePartView1() {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean curMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-        openViews(1);
-        newDisplay();
-        zoomView(1);
-        
-        // Restore the previous state (just in case)
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, curMinMaxState);
-    }
-
-    /**
-     * Test that zooming view2 on start up and navigating to other views behaves
-     * correcly.
-     *  
-     */
-    public void testZoomActivePartView2() {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean curMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-        openViews(2);
-        newDisplay();
-        zoomView(2);
-        
-        // Restore the previous state (just in case)
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, curMinMaxState);
-    }
-
-    /**
-     * Open all the views.
-     * 
-     * @param lastViewToOpen
-     *            The index of the last view to be opened.
-     */
-    private void openViews(final int lastViewToOpen) {
-        PartsWorkbenchAdvisor wa = new PartsWorkbenchAdvisor() {
-            protected void validate(IWorkbenchPage page) {
-                try {
-                    for (int index = 0; index < PartsTestUtil.numOfParts; index++) {
-                        if (index != lastViewToOpen)
-                            page.showView(PartsTestUtil.getView(index));
-
-                    }
-                    page.showView(PartsTestUtil.getView(lastViewToOpen));
-                } catch (PartInitException e) {
-                    e.printStackTrace(System.err);
-                }
-                assertEquals(page.getViewReferences().length,
-                        PartsTestUtil.numOfParts);
-                assertTrue(page.getActivePart() instanceof IViewPart);
-                IViewPart activePart = (IViewPart) page.getActivePart();
-                assertEquals(activePart.getViewSite().getId(), PartsTestUtil
-                        .getView(lastViewToOpen));
-
-            }
-        };
-        PlatformUI.createAndRunWorkbench(display, wa);
-
-    }
-
-    /**
-     * Check that the active view's part has been created.
-     * 
-     * @param lastViewOpened
-     *            The active file's index.
-     */
-    private void checkViewsParts(final int lastViewOpened) {
-
-        PartsWorkbenchAdvisor wa = new PartsWorkbenchAdvisor() {
-            protected void validate(IWorkbenchPage page) {
-                String activeViewId = PartsTestUtil.getView(lastViewOpened);
-                assertEquals(page.getViewReferences().length,
-                        PartsTestUtil.numOfParts);
-                assertTrue(page.getActivePart() instanceof IViewPart);
-
-                IViewPart activeViewPart = (IViewPart) page.getActivePart();
-                assertEquals(activeViewPart.getViewSite().getId(), activeViewId);
-
-                IViewReference[] viewReferences = page.getViewReferences();
-                int numActiveParts = 0;
-                for (int index = 0; index < viewReferences.length; index++) {
-                    if (viewReferences[index].getView(false) != null)
-                        numActiveParts++;
-
-                }
-                // TODO: Ideally, the number of active parts would be 1
-                assertTrue(numActiveParts <= 2);
-            }
-        };
-
-        PlatformUI.createAndRunWorkbench(display, wa);
-    }
-
-    /**
-     * Zoom the active view and navigate to the other open views.
-     * 
-     * @param viewIndex
-     *            The active view's index.
-     */
-    public void zoomView(final int viewIndex) {
-        PartsWorkbenchAdvisor wa = new PartsWorkbenchAdvisor() {
-            protected void validate(IWorkbenchPage page) {
-                IWorkbenchPartReference activePartReference = page
-                        .getActivePartReference();
-                String activePartReferenceId = activePartReference.getId();
-                assertTrue(activePartReference instanceof IViewReference);
-                assertEquals(activePartReferenceId, PartsTestUtil
-                        .getView(viewIndex));
-
-                IWorkbenchPart activePart = page.getActivePart();
-                assertTrue(activePart instanceof IViewPart);
-
-                PartsTestUtil.zoom(activePart);
-                assertTrue(PartsTestUtil.isZoomed(activePart));
-
-                IViewReference[] viewReferences = page.getViewReferences();
-                String currentViewId = null;
-
-                for (int index = 0; index < viewReferences.length; index++) {
-                    currentViewId = viewReferences[index].getId();
-                    if (!currentViewId.equals(activePartReferenceId)) {
-                        try {
-                            page.showView(currentViewId);
-                        } catch (PartInitException e) {
-                            e.printStackTrace();
-                        }
-                        activePartReferenceId = currentViewId;
-                    }
-                }
-
-                activePart = page.getActivePart();
-                assertTrue(activePart instanceof IViewPart);
-
-                if (PartsTestUtil.isZoomed(activePart))
-                    PartsTestUtil.zoom(activePart);
-
-            }
-        };
-        PlatformUI.createAndRunWorkbench(display, wa);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsTestUtil.java b/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsTestUtil.java
deleted file mode 100644
index a4788e9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsTestUtil.java
+++ /dev/null
@@ -1,133 +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.parts.tests.util;
-
-import org.eclipse.core.internal.resources.Workspace;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.PartPane;
-import org.eclipse.ui.internal.PartSite;
-
-/**
- * Utility class for the parts test suite.
- */
-public class PartsTestUtil {
-
-    public final static String projectName = "TestProject"; //$NON-NLS-1$
-
-    private final static String fileExtension = ".txt"; //$NON-NLS-1$
-
-    private final static String preFileName = "file"; //$NON-NLS-1$
-
-    private final static String View0 = "org.eclipse.ui.views.ResourceNavigator"; //$NON-NLS-1$
-
-    private final static String View1 = "org.eclipse.ui.views.ProblemView"; //$NON-NLS-1$
-
-    private final static String View2 = "org.eclipse.ui.views.PropertySheet"; //$NON-NLS-1$
-
-    public final static int numOfParts = 3;
-
-    /**
-     * Get the workspace.
-     * 
-     * @return the workspace.
-     */
-    public static Workspace getWorkspace() {
-        return (Workspace) ResourcesPlugin.getWorkspace();
-    }
-
-    /**
-     * Get the file name for the given index.
-     * 
-     * @param index
-     *            The file index.
-     * @return the file's name.
-     */
-    public static String getFileName(int index) {
-        return new String(preFileName + Integer.toString(index) + fileExtension);
-    }
-
-    /**
-     * Get the project.
-     * 
-     * @return the project.
-     */
-    public static IProject getProject() {
-        IWorkspace ws = getWorkspace();
-        IWorkspaceRoot root = ws.getRoot();
-        return root.getProject(projectName);
-    }
-
-    /**
-     * Open an editor.
-     * 
-     * @param filename
-     *            The file's name.
-     */
-    public static void openEditor(String filename, IWorkbenchPage page) {
-        try {
-            IDE.openEditor(page, PartsTestUtil.getProject().getFile(filename),
-                    "org.eclipse.ui.DefaultTextEditor", true); //$NON-NLS-1$
-        } catch (PartInitException e) {
-            e.printStackTrace(System.err);
-        }
-    }
-
-    /**
-     * Get the corresponding view id for the index.
-     * 
-     * @param index
-     *            The view index.
-     * @return the view's id.
-     */
-    public static String getView(int index) {
-        switch (index) {
-        case 0:
-            return View0;
-        case 1:
-            return View1;
-        default:
-            return View2;
-        }
-    }
-
-    /**
-     * Zoom the given part.
-     * 
-     * @param part
-     *            The part.
-     */
-    public static void zoom(IWorkbenchPart part) {
-		part.getSite().getPage().toggleZoom(
-				part.getSite().getPage().getReference(part));
-	}
-
-    /**
-     * Determines if the part is zoomed.
-     * 
-     * @param part
-     *            The pat.
-     * @return true if zoomed.
-     */
-    public static boolean isZoomed(IWorkbenchPart part) {
-        PartSite site = (PartSite) part.getSite();
-        PartPane pane = site.getPane();
-        return pane.isZoomed();
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchAdvisor.java b/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchAdvisor.java
deleted file mode 100644
index 7093108..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchAdvisor.java
+++ /dev/null
@@ -1,91 +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.parts.tests.util;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.application.IWorkbenchConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchAdvisor;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.PlatformUtil;
-
-/**
- * Workbench advisor for the parts test suite.
- */
-public abstract class PartsWorkbenchAdvisor extends WorkbenchAdvisor {
-
-    /**
-     * Constructor.
-     */
-    public PartsWorkbenchAdvisor() {
-        // Do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)
-     */
-    public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer) {
-        return new PartsWorkbenchWindowAdvisor(this, configurer);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.application.WorkbenchAdvisor#eventLoopIdle(org.eclipse.swt.widgets.Display)
-     */
-    public void eventLoopIdle(Display display) {
-        if(!PlatformUtil.onMac()) {
-            super.eventLoopIdle(display);
-        }
-        PlatformUI.getWorkbench().close();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize
-     */
-    public void initialize(IWorkbenchConfigurer configurer) {
-        // make sure we always save and restore workspace state
-        configurer.setSaveAndRestore(true);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.application.WorkbenchAdvisor#preStartup()
-     */
-    public void preStartup() {
-        // Overwrite preference to set empty pespective as our default
-        IPerspectiveRegistry fReg = PlatformUI.getWorkbench()
-                .getPerspectiveRegistry();
-        fReg.setDefaultPerspective(EmptyPerspective.PERSP_ID);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.application.WorkbenchAdvisor
-     */
-    public String getInitialWindowPerspectiveId() {
-        return EmptyPerspective.PERSP_ID;
-    }
-
-    /**
-     * Validates the layout of the page in a new window.
-     * Tests override this.
-     */
-    protected abstract void validate(IWorkbenchPage page);
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchWindowAdvisor.java b/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchWindowAdvisor.java
deleted file mode 100644
index 10fedeb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/util/PartsWorkbenchWindowAdvisor.java
+++ /dev/null
@@ -1,49 +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.parts.tests.util;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.application.ActionBarAdvisor;
-import org.eclipse.ui.application.IActionBarConfigurer;
-import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
-import org.eclipse.ui.application.WorkbenchWindowAdvisor;
-import org.eclipse.ui.internal.ide.WorkbenchActionBuilder;
-
-/**
- * Workbench window advisor for the parts test suite.
- * 
- * @since 3.1
- */
-public class PartsWorkbenchWindowAdvisor extends WorkbenchWindowAdvisor {
-
-    private PartsWorkbenchAdvisor wbAdvisor;
-    
-    public PartsWorkbenchWindowAdvisor(PartsWorkbenchAdvisor advisor, IWorkbenchWindowConfigurer configurer) {
-        super(configurer);
-        this.wbAdvisor = advisor;
-    }
-
-    public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer) {
-        return new WorkbenchActionBuilder(configurer);
-    }
-    
-    public void openIntro() {
-        // Do not open any intro part
-    }
-    
-    /**
-     * When the window has opened, validate the layout.  Tests override the validate method in the advisor.
-     */
-    public void postWindowOpen() {
-        IWorkbenchPage page = getWindowConfigurer().getWindow().getActivePage();
-        wbAdvisor.validate(page);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/PerspectiveState.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/PerspectiveState.java
deleted file mode 100644
index b992060..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/PerspectiveState.java
+++ /dev/null
@@ -1,71 +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.tests;
-
-import java.util.ArrayList;
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.Perspective;
-import org.eclipse.ui.internal.WorkbenchPage;
-
-/**
- * Represents the state of a perspective (layout, etc).
- * 
- * @since 3.1
- */
-public class PerspectiveState {
-
-    private IMemento memento;
-    
-    /**
-     *  
-     */
-    public PerspectiveState(IWorkbenchPage page) {
-        WorkbenchPage wbPage = (WorkbenchPage) page;
-        Perspective persp = wbPage.getActivePerspective();
-        XMLMemento mem = XMLMemento.createWriteRoot("perspectiveState");
-        persp.saveState(mem);
-        this.memento = mem;
-    }
-
-    /**
-     * Returns the part ids in the given folder (specify <code>null</code> for top level).
-     *  
-     * @param folderId the folder id, or <code>null</code>
-     * @return the part ids in the given folder (an <code>ArrayList</code> of <code>String</code>)
-     */
-    public ArrayList getPartIds(String folderId) {
-        ArrayList result = new ArrayList();
-        IMemento[] infos = memento.getChild("layout").getChild("mainWindow").getChildren("info");
-        for (int i = 0; i < infos.length; i++) {
-            IMemento info = infos[i];
-            String partId = info.getString("part");
-            if ("true".equals(info.getString("folder"))) {
-                if (partId.equals(folderId)) {
-	                IMemento[] pages = info.getChild("folder").getChildren("page");
-	                for (int j = 0; j < pages.length; j++) {
-	                    IMemento page = pages[j];
-	                    result.add(page.getString("content"));
-	                }
-                }
-            }
-            else {
-                if (folderId == null) {
-                    result.add(partId);
-                }
-            }
-        }
-        return result;
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/SelectionProviderView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/SelectionProviderView.java
deleted file mode 100644
index b042c63..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/SelectionProviderView.java
+++ /dev/null
@@ -1,117 +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.ui.tests;
-
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- *  The view provides api to fire a selection event for its workbench page. 
- */
-
-public class SelectionProviderView extends ViewPart implements
-        ISelectionProvider {
-    public final static String ID = "org.eclipse.ui.tests.SelectionProviderView";
-
-    public final static String ID_2 = "org.eclipse.ui.tests.SelectionProviderView2";
-
-    private ListenerList selectionChangedListeners = new ListenerList();
-
-    private ISelection lastSelection = StructuredSelection.EMPTY;
-
-    private Text text;
-
-    public SelectionProviderView() {
-        super();
-    }
-
-    /**
-     * @see WorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        text.setFocus();
-    }
-
-    /**
-     * @see WorkbenchPart#createPartControl(Composite)
-     */
-    public void createPartControl(Composite parent) {
-        text = new Text(parent, SWT.MULTI | SWT.WRAP);
-        text.setLayoutData(new GridData(GridData.FILL_BOTH));
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     */
-    public void init(IViewSite site) throws PartInitException {
-        site.setSelectionProvider(this);
-        super.init(site);
-    }
-
-    /**
-     * @see ISelectionProvider#addSelectionChangedListener(ISelectionChangedListener)
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        selectionChangedListeners.add(listener);
-    }
-
-    /**
-     * @see ISelectionProvider#getSelection()
-     */
-    public ISelection getSelection() {
-        return lastSelection;
-    }
-
-    /**
-     * @see ISelectionProvider#removeSelectionChangedListener(ISelectionChangedListener)
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        selectionChangedListeners.remove(listener);
-    }
-
-    /**
-     * Sets the selection to a particular object.
-     */
-    public void setSelection(Object obj) {
-        setSelection(new StructuredSelection(obj));
-    }
-
-    /**
-     * @see ISelectionProvider#setSelection(ISelection)
-     */
-    public void setSelection(ISelection selection) {
-        lastSelection = selection;
-
-        // create an event
-        SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
-
-        // write text
-        text.setText(selection.toString());
-
-        // fire the event
-        Object[] listeners = selectionChangedListeners.getListeners();
-        for (int i = 0; i < listeners.length; ++i) {
-            ((ISelectionChangedListener) listeners[i]).selectionChanged(event);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/TestPlugin.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/TestPlugin.java
deleted file mode 100644
index 1aac5cf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/TestPlugin.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPluginDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.tests.decorators.BackgroundColorDecorator;
-import org.eclipse.ui.tests.dynamicplugins.TestInstallUtil;
-import org.eclipse.ui.tests.menus.MenuBuilder;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class TestPlugin extends AbstractUIPlugin implements IStartup {
-    //The shared instance.
-    private static TestPlugin plugin;
-
-    //Resource bundle.
-    private ResourceBundle resourceBundle;
-
-    // This boolean should only be true if the earlyStartup() method
-    // has been called.
-    private static boolean earlyStartupCalled = false;
-    
-    public static final String PLUGIN_ID = "org.eclipse.ui.tests"; 
-
-    /**
-     * The constructor.
-     */
-    public TestPlugin(IPluginDescriptor descriptor) {
-        super(descriptor);
-        plugin = this;
-        try {
-            resourceBundle = ResourceBundle
-                    .getBundle("org.eclipse.ui.tests.TestPluginResources");
-        } catch (MissingResourceException x) {
-            resourceBundle = null;
-        }
-    }
-
-    /**
-     * Returns the shared instance.
-     */
-    public static TestPlugin getDefault() {
-        return plugin;
-    }
-
-    /**
-     * Returns the workspace instance.
-     */
-    public static IWorkspace getWorkspace() {
-        return ResourcesPlugin.getWorkspace();
-    }
-
-    /**
-     * Returns the string from the plugin's resource bundle,
-     * or 'key' if not found.
-     */
-    public static String getResourceString(String key) {
-        ResourceBundle bundle = TestPlugin.getDefault().getResourceBundle();
-        try {
-            return bundle.getString(key);
-        } catch (MissingResourceException e) {
-            return key;
-        }
-    }
-
-    /**
-     * Returns the plugin's resource bundle,
-     */
-    public ResourceBundle getResourceBundle() {
-        return resourceBundle;
-    }
-
-    /**
-     * Returns the image descriptor with the given relative path.
-     */
-    public ImageDescriptor getImageDescriptor(String relativePath) {
-        String iconPath = "icons/";
-        try {
-            URL installURL = getDescriptor().getInstallURL();
-            URL url = new URL(installURL, iconPath + relativePath);
-            return ImageDescriptor.createFromURL(url);
-        } catch (MalformedURLException e) {
-            // should not happen
-            return ImageDescriptor.getMissingImageDescriptor();
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IStartup#earlyStartup()
-     */
-    public void earlyStartup() {
-        earlyStartupCalled = true;
-    }
-
-    public static boolean getEarlyStartupCalled() {
-        return earlyStartupCalled;
-    }
-
-    public static void clearEarlyStartup() {
-        earlyStartupCalled = false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.Plugin#start(org.osgi.framework.BundleContext)
-     */
-    public void start(BundleContext context) throws Exception {
-        TestInstallUtil.setContext(context);
-        super.start(context);
-        MenuBuilder.addMenuContribution();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
-     */
-    public void stop(BundleContext context) throws Exception {
-    	MenuBuilder.removeMenuContribution();
-        TestInstallUtil.setContext(null);
-        super.stop(context);
-        BackgroundColorDecorator.color = null;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/UiTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/UiTestSuite.java
deleted file mode 100644
index aed2293..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/UiTestSuite.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.activities.ActivitiesTestSuite;
-import org.eclipse.ui.tests.adaptable.AdaptableTestSuite;
-import org.eclipse.ui.tests.api.ApiTestSuite;
-import org.eclipse.ui.tests.api.StartupTest;
-import org.eclipse.ui.tests.commands.CommandsTestSuite;
-import org.eclipse.ui.tests.concurrency.ConcurrencyTestSuite;
-import org.eclipse.ui.tests.contexts.ContextsTestSuite;
-import org.eclipse.ui.tests.datatransfer.DataTransferTestSuite;
-import org.eclipse.ui.tests.decorators.DecoratorsTestSuite;
-import org.eclipse.ui.tests.dialogs.UIAutomatedSuite;
-import org.eclipse.ui.tests.dnd.DragTestSuite;
-import org.eclipse.ui.tests.dynamicplugins.DynamicPluginsTestSuite;
-import org.eclipse.ui.tests.encoding.EncodingTestSuite;
-import org.eclipse.ui.tests.fieldassist.FieldAssistTestSuite;
-import org.eclipse.ui.tests.filteredtree.FilteredTreeTests;
-import org.eclipse.ui.tests.harness.util.TweakletCheckTest;
-import org.eclipse.ui.tests.internal.InternalTestSuite;
-import org.eclipse.ui.tests.intro.IntroTestSuite;
-import org.eclipse.ui.tests.keys.KeysTestSuite;
-import org.eclipse.ui.tests.leaks.LeakTests;
-import org.eclipse.ui.tests.menus.MenusTestSuite;
-import org.eclipse.ui.tests.multieditor.MultiEditorTestSuite;
-import org.eclipse.ui.tests.multipageeditor.MultiPageEditorTestSuite;
-import org.eclipse.ui.tests.navigator.NavigatorTestSuite;
-import org.eclipse.ui.tests.operations.OperationsTestSuite;
-import org.eclipse.ui.tests.preferences.PreferencesTestSuite;
-import org.eclipse.ui.tests.presentations.PresentationsTestSuite;
-import org.eclipse.ui.tests.progress.ProgressTestSuite;
-import org.eclipse.ui.tests.propertysheet.PropertySheetTestSuite;
-import org.eclipse.ui.tests.quickaccess.QuickAccessTestSuite;
-import org.eclipse.ui.tests.services.ServicesTestSuite;
-import org.eclipse.ui.tests.statushandlers.StatusHandlingTestSuite;
-import org.eclipse.ui.tests.systeminplaceeditor.OpenSystemInPlaceEditorTest;
-import org.eclipse.ui.tests.themes.ThemesTestSuite;
-import org.eclipse.ui.tests.zoom.ZoomTestSuite;
-
-/**
- * Test all areas of the UI.
- */
-public class UiTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new UiTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public UiTestSuite() {
-    	// run the StartupTest first, since we need to check early that the tests 
-    	// run only after early startup has completed (bug 93518).
-    	addTest(new TweakletCheckTest());
-    	addTest(new TestSuite(StartupTest.class));
-        addTest(new UIAutomatedSuite());
-        addTest(new ApiTestSuite());
-        addTest(new PropertySheetTestSuite());
-        addTest(new QuickAccessTestSuite());
-        addTest(new InternalTestSuite());
-        addTest(new NavigatorTestSuite());
-        addTest(new DecoratorsTestSuite());
-        addTest(new AdaptableTestSuite());
-        addTest(new ZoomTestSuite());
-        addTest(new DataTransferTestSuite());
-        addTest(new PreferencesTestSuite());
-        addTest(new DynamicPluginsTestSuite());
-        addTest(new KeysTestSuite());
-        addTest(new MultiPageEditorTestSuite());
-        addTest(new ActivitiesTestSuite());
-        addTest(new CommandsTestSuite());
-        addTest(new ContextsTestSuite());
-        addTest(new DragTestSuite());
-        addTest(new ThemesTestSuite());
-        addTest(new IntroTestSuite());
-        addTest(new MenusTestSuite());
-        addTest(new EncodingTestSuite());
-        addTest(new PresentationsTestSuite());
-        addTest(new TestSuite(LeakTests.class));
-        addTest(new ConcurrencyTestSuite());
-        addTest(new OperationsTestSuite());
-        addTest(new FieldAssistTestSuite());
-        addTest(new MultiEditorTestSuite());
-        addTest(new TestSuite(FilteredTreeTests.class));
-        addTest(new ServicesTestSuite());
-        addTest(new StatusHandlingTestSuite());
-        addTest(OpenSystemInPlaceEditorTest.suite());
-		addTest(new ProgressTestSuite());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivitiesTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivitiesTestSuite.java
deleted file mode 100644
index 5747c9a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivitiesTestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.activities;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The ActivitiesTestSuite class runs the activities' test suites.
- */
-public class ActivitiesTestSuite extends TestSuite {
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new ActivitiesTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public ActivitiesTestSuite() {
-      	addTest(new TestSuite(ImagesTest.class));
-		addTest(new TestSuite(UtilTest.class));
-        addTest(new TestSuite(StaticTest.class));
-        addTest(new TestSuite(DynamicTest.class));
-        addTest(new TestSuite(PersistanceTest.class));
-        addTest(new TestSuite(ActivityPreferenceTest.class));
-        addTest(new TestSuite(MenusTest.class));
-        addTest(new TestSuite(PatternUtilTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivityPreferenceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivityPreferenceTest.java
deleted file mode 100644
index f5a1739..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ActivityPreferenceTest.java
+++ /dev/null
@@ -1,55 +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.tests.activities;
-
-import java.util.Collections;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.activities.IActivityManager;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.1
- */
-public class ActivityPreferenceTest extends UITestCase {
-    /**
-     * Preference prefix - must match the one specified in ActivityPreferenceHelper
-     */
-    private static String PREFIX = "UIActivities."; //$NON-NLS-1$
-    /**
-     * The activity id
-     */
-    private static String ID = "org.eclipse.ui.PT.A2"; //$NON-NLS-1$
-    
-    /**
-     * @param testName
-     */
-    public ActivityPreferenceTest(String testName) {
-        super(testName);
-    }
-    
-    /**
-     * Tests whether activity preferences are persisted as soon as the activity set changes.
-     */
-    public void testActivityPreference() {
-        IActivityManager manager = fWorkbench.getActivitySupport().getActivityManager();
-        
-        boolean initialState = manager.getEnabledActivityIds().contains(ID);
-        IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore();
-        assertEquals(initialState, store.getBoolean(PREFIX + ID));
-        
-        fWorkbench.getActivitySupport().setEnabledActivityIds(initialState ? Collections.EMPTY_SET : Collections.singleton(ID));
-        assertEquals(!initialState, store.getBoolean(PREFIX + ID));
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicModelActivityRegistry.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicModelActivityRegistry.java
deleted file mode 100644
index 63e10b2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicModelActivityRegistry.java
+++ /dev/null
@@ -1,428 +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.tests.activities;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.ui.internal.activities.AbstractActivityRegistry;
-import org.eclipse.ui.internal.activities.ActivityDefinition;
-import org.eclipse.ui.internal.activities.ActivityPatternBindingDefinition;
-import org.eclipse.ui.internal.activities.ActivityRequirementBindingDefinition;
-import org.eclipse.ui.internal.activities.CategoryActivityBindingDefinition;
-import org.eclipse.ui.internal.activities.CategoryDefinition;
-
-/**
- * 
- * The dynamic activity registry populated activities with dummy definitions for
- * testing purposes.
- */
-public class DynamicModelActivityRegistry extends AbstractActivityRegistry {
-    final String sourceId = "org.eclipse.ui.tests"; //$NON-NLS-1$
-
-    /**
-     * The constructor for the plugin model registry.
-     */
-    public DynamicModelActivityRegistry() {
-        super();
-        load();
-    }
-
-    /**
-     * Populate definitions.
-     *  
-     */
-    private void load() {
-        categoryDefinitions = new ArrayList();
-        activityDefinitions = new ArrayList();
-        categoryActivityBindingDefinitions = new ArrayList();
-        activityPatternBindingDefinitions = new ArrayList();
-        activityRequirementBindingDefinitions = new ArrayList();
-        defaultEnabledActivities = new ArrayList();
-        populateCategoryDefinitions();
-        populateActivityDefinitions();
-        populateCategoryActivityBindingDefinitions();
-        populateActivityPatternBindingDefinitions();
-        populateActivityRequirementBindingDefinitions();
-        populateDefaultEnabledActivities();
-    }
-
-    /**
-     * Populate the default enabled activties.
-     *  
-     */
-    private void populateDefaultEnabledActivities() {
-        defaultEnabledActivities.add(((ActivityDefinition) activityDefinitions
-                .toArray()[0]).getId());
-        defaultEnabledActivities.add(((ActivityDefinition) activityDefinitions
-                .toArray()[2]).getId());
-        defaultEnabledActivities.add(((ActivityDefinition) activityDefinitions
-                .toArray()[8]).getId());
-    }
-
-    /**
-     * Populate the activity activity binding definitions.
-     *  
-     */
-    private void populateActivityRequirementBindingDefinitions() {
-        activityRequirementBindingDefinitions
-                .add(new ActivityRequirementBindingDefinition(
-                        ((ActivityDefinition) activityDefinitions.toArray()[0])
-                                .getId(),
-                        ((ActivityDefinition) activityDefinitions.toArray()[1])
-                                .getId(), sourceId)); //$NON-NLS-1$
-        activityRequirementBindingDefinitions
-                .add(new ActivityRequirementBindingDefinition(
-                        ((ActivityDefinition) activityDefinitions.toArray()[2])
-                                .getId(),
-                        ((ActivityDefinition) activityDefinitions.toArray()[3])
-                                .getId(), sourceId)); //$NON-NLS-1$
-    }
-
-    /**
-     * Populate the activity pattern binding definitions.
-     *  
-     */
-    private void populateActivityPatternBindingDefinitions() {
-        for (int index = 0; index < activityDefinitions.size(); index++) {
-            activityPatternBindingDefinitions
-                    .add(new ActivityPatternBindingDefinition(
-                            ((ActivityDefinition) activityDefinitions.toArray()[index])
-                                    .getId(), "org.eclipse.pattern" //$NON-NLS-1$
-                                    + Integer.toString(index + 1), sourceId));
-        }
-    }
-
-    /**
-     * Populate the category activity binding definitions.
-     *  
-     */
-    private void populateCategoryActivityBindingDefinitions() {
-        int counter = 1;
-        for (int index = 1; index <= categoryDefinitions.size(); index++) {
-            categoryActivityBindingDefinitions
-                    .add(new CategoryActivityBindingDefinition(
-                            "org.eclipse.activity" + Integer.toString(counter), //$NON-NLS-1$
-                            "org.eclipse.category" + Integer.toString(index), //$NON-NLS-1$
-                            sourceId));
-            counter++;
-            categoryActivityBindingDefinitions
-                    .add(new CategoryActivityBindingDefinition(
-                            "org.eclipse.activity" + Integer.toString(counter), //$NON-NLS-1$
-                            "org.eclipse.category" + Integer.toString(index), //$NON-NLS-1$
-                            sourceId));
-            counter++;
-            categoryActivityBindingDefinitions
-                    .add(new CategoryActivityBindingDefinition(
-                            "org.eclipse.activity" + Integer.toString(counter), //$NON-NLS-1$
-                            "org.eclipse.category" + Integer.toString(index), //$NON-NLS-1$
-                            sourceId));
-            counter++;
-        }
-    }
-
-    /**
-     * Populate the activity definitions.
-     *  
-     */
-    private void populateActivityDefinitions() {
-        String stringToAppend = null;
-        for (int index = 1; index <= categoryDefinitions.size() * 3; index++) {
-            stringToAppend = Integer.toString(index);
-            activityDefinitions.add(new ActivityDefinition(
-                    "org.eclipse.activity" + stringToAppend, "Activity " //$NON-NLS-1$ //$NON-NLS-2$
-                            + stringToAppend, sourceId, "description")); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Populate the category definitions.
-     *  
-     */
-    private void populateCategoryDefinitions() {
-        String stringToAppend = null;
-        for (int index = 1; index <= 6; index++) {
-            stringToAppend = Integer.toString(index);
-            categoryDefinitions.add(new CategoryDefinition(
-                    "org.eclipse.category" + stringToAppend, "Category " //$NON-NLS-1$ //$NON-NLS-2$
-                            + stringToAppend, sourceId, "description")); //$NON-NLS-1$
-        }
-    }
-
-    /**
-     * Add an activity.
-     * 
-     * @param activityId
-     *            The activity's id.
-     * @param activityName
-     *            The activity's name
-     */
-    public void addActivity(String activityId, String activityName) {
-        activityDefinitions.add(new ActivityDefinition(activityId,
-                activityName, sourceId, "description")); //$NON-NLS-1$
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Remove adn activity.
-     * 
-     * @param activityId
-     *            The activity's id.
-     * @param activityName
-     *            The activity's name.
-     */
-    public void removeActivity(String activityId, String activityName) {
-        activityDefinitions.remove(new ActivityDefinition(activityId,
-                activityName, sourceId, "description")); //$NON-NLS-1$
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Add a category.
-     * 
-     * @param categoryId
-     *            The category's id.
-     * @param categoryName
-     *            The category's name.
-     */
-    public void addCategory(String categoryId, String categoryName) {
-        categoryDefinitions.add(new CategoryDefinition(categoryId,
-                categoryName, sourceId, "description")); //$NON-NLS-1$
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Remove a category.
-     * 
-     * @param categoryId
-     *            The category's id.
-     * @param categoryName
-     *            The category's name.
-     */
-    public void removeCategory(String categoryId, String categoryName) {
-        categoryDefinitions.remove(new CategoryDefinition(categoryId,
-                categoryName, sourceId, "description")); //$NON-NLS-1$
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Add an activity activity binding.
-     * 
-     * @param parentId
-     *            The parent id.
-     * @param childId
-     *            The child id.
-     */
-    public void addActivityRequirementBinding(String childId, String parentId) {
-        activityRequirementBindingDefinitions
-                .add(new ActivityRequirementBindingDefinition(childId,
-                        parentId, sourceId));
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Reomve an activity activity binding.
-     * 
-     * @param parentId
-     *            The parent id.
-     * @param childId
-     *            The child id.
-     */
-    public void removeActivityRequirementBinding(String childId, String parentId) {
-        activityRequirementBindingDefinitions
-                .remove(new ActivityRequirementBindingDefinition(childId,
-                        parentId, sourceId));
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Add a category activity binding.
-     * 
-     * @param activityId
-     *            The activity id.
-     * @param categoryId
-     *            The category id.
-     */
-    public void addCategoryActivityBinding(String activityId, String categoryId) {
-        categoryActivityBindingDefinitions
-                .add(new CategoryActivityBindingDefinition(activityId,
-                        categoryId, sourceId));
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Remove a category activity binding.
-     * 
-     * @param activityId
-     *            The activity id.
-     * @param categoryId
-     *            The category id.
-     */
-    public void removeCategoryActivityBinding(String activityId,
-            String categoryId) {
-        categoryActivityBindingDefinitions
-                .remove(new CategoryActivityBindingDefinition(activityId,
-                        categoryId, sourceId));
-        fireActivityRegistryChanged();
-    }
-
-    /**
-     * Update the category's description.
-     * 
-     * @param categoryId
-     *            The category Id.
-     * @param categoryDescription
-     *            The category description.
-     */
-    public void updateCategoryDescription(String categoryId,
-            String categoryDescription) {
-        CategoryDefinition currentCategory = null;
-        for (Iterator i = categoryDefinitions.iterator(); i.hasNext();) {
-            currentCategory = (CategoryDefinition) i.next();
-            if (currentCategory.getId().equals(categoryId)) {
-                categoryDefinitions.remove(currentCategory);
-                categoryDefinitions.add(new CategoryDefinition(categoryId,
-                        currentCategory.getName(), currentCategory
-                                .getSourceId(), categoryDescription));
-                fireActivityRegistryChanged();
-                return;
-            }
-        }
-    }
-
-    /**
-     * Update the activity's description.
-     * 
-     * @param activityId
-     *            The activity id.
-     * @param activityDescription
-     *            The activity description.
-     */
-    public void updateActivityDescription(String activityId,
-            String activityDescription) {
-        ActivityDefinition currentActivity = null;
-        for (Iterator i = activityDefinitions.iterator(); i.hasNext();) {
-            currentActivity = (ActivityDefinition) i.next();
-            if (currentActivity.getId().equals(activityId)) {
-                activityDefinitions.remove(currentActivity);
-                activityDefinitions.add(new ActivityDefinition(activityId,
-                        currentActivity.getName(), currentActivity
-                                .getSourceId(), activityDescription));
-                fireActivityRegistryChanged();
-                return;
-            }
-        }
-    }
-
-    /**
-     * Update the activity's name.
-     * 
-     * @param activityId
-     *            The activity id.
-     * @param activityName
-     *            The activity's name.
-     */
-    public void updateActivityName(String activityId, String activityName) {
-        ActivityDefinition currentActivity = null;
-        for (Iterator i = activityDefinitions.iterator(); i.hasNext();) {
-            currentActivity = (ActivityDefinition) i.next();
-            if (currentActivity.getId().equals(activityId)) {
-                activityDefinitions.remove(currentActivity);
-                activityDefinitions.add(new ActivityDefinition(activityId,
-                        activityName, currentActivity.getSourceId(),
-                        currentActivity.getDescription()));
-                fireActivityRegistryChanged();
-                return;
-            }
-        }
-    }
-
-    /**
-     * Update the category's name.
-     * 
-     * @param categoryId
-     *            The category id.
-     * @param categoryName
-     *            The category name.
-     */
-    public void updateCategoryName(String categoryId, String categoryName) {
-        CategoryDefinition currentCategory = null;
-        for (Iterator i = categoryDefinitions.iterator(); i.hasNext();) {
-            currentCategory = (CategoryDefinition) i.next();
-            if (currentCategory.getId().equals(categoryId)) {
-                categoryDefinitions.remove(currentCategory);
-                categoryDefinitions.add(new CategoryDefinition(categoryId,
-                        categoryName, currentCategory.getSourceId(),
-                        currentCategory.getDescription()));
-                fireActivityRegistryChanged();
-                return;
-            }
-        }
-    }
-
-    /**
-     * Remove an activity pattern binding.
-     * 
-     * @param pattern
-     *            The pattern binding.
-     */
-    public void removeActivityPatternBinding(String pattern) {
-        ActivityPatternBindingDefinition currentDefinition = null;
-        for (Iterator i = activityPatternBindingDefinitions.iterator(); i
-                .hasNext();) {
-            currentDefinition = (ActivityPatternBindingDefinition) i.next();
-            if (currentDefinition.getPattern().equals(pattern)) {
-                activityPatternBindingDefinitions.remove(currentDefinition);
-                fireActivityRegistryChanged();
-                return;
-            }
-        }
-    }
-
-    /**
-     * Add an activity pattern binding.
-     * 
-     * @param activityId
-     *            The actvity Id.
-     * @param pattern
-     *            The pattern.
-     */
-    public void addActivityPatternBinding(String activityId, String pattern) {
-        if (activityPatternBindingDefinitions
-                .add(new ActivityPatternBindingDefinition(activityId, pattern,
-                        sourceId))) {
-            fireActivityRegistryChanged();
-            return;
-        }
-    }
-    
-    /**
-     * Add default enablement to the provided activity
-     * @param activityId the activity id
-     */
-    public void addDefaultEnabledActivity(String activityId) {
-        if (defaultEnabledActivities.add(activityId)) {
-            fireActivityRegistryChanged();
-        }
-    }
-    
-    
-    /**
-     * Remove default enablement to the provided activity
-     * 
-     * @param activityId the activity id.
-     */
-    public void removeDefaultEnabledActivity(String activityId) {
-        if (defaultEnabledActivities.remove(activityId)) {
-            fireActivityRegistryChanged();
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicTest.java
deleted file mode 100644
index e967a08..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/DynamicTest.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.activities;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.internal.registry.ExtensionRegistry;
-import org.eclipse.core.runtime.ContributorFactoryOSGi;
-import org.eclipse.core.runtime.IContributor;
-import org.eclipse.core.runtime.RegistryFactory;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.ActivityEvent;
-import org.eclipse.ui.activities.ActivityManagerEvent;
-import org.eclipse.ui.activities.CategoryEvent;
-import org.eclipse.ui.activities.IActivity;
-import org.eclipse.ui.activities.IActivityListener;
-import org.eclipse.ui.activities.IActivityManagerListener;
-import org.eclipse.ui.activities.IActivityPatternBinding;
-import org.eclipse.ui.activities.IActivityRequirementBinding;
-import org.eclipse.ui.activities.ICategory;
-import org.eclipse.ui.activities.ICategoryActivityBinding;
-import org.eclipse.ui.activities.ICategoryListener;
-import org.eclipse.ui.activities.IIdentifier;
-import org.eclipse.ui.activities.IIdentifierListener;
-import org.eclipse.ui.activities.IWorkbenchActivitySupport;
-import org.eclipse.ui.activities.IdentifierEvent;
-import org.eclipse.ui.activities.NotDefinedException;
-import org.eclipse.ui.activities.WorkbenchTriggerPointAdvisor;
-import org.eclipse.ui.internal.activities.MutableActivityManager;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * 
- * The dynamic test manipualtes the categories, activities and their definitions
- * and ensures that their content and their listeners are behaving properly.
- */
-public class DynamicTest extends UITestCase {
-    private MutableActivityManager activityManager;
-
-    private DynamicModelActivityRegistry fixedModelRegistry;
-
-    private int listenerType;
-
-    static final int ACTIVITY_ENABLED_CHANGED = 0;
-
-    static final int ACTIVITY_IDS_CHANGED = 1;
-
-    static final int ENABLED_ACTIVITYIDS_CHANGED = 2;
-
-    static final int DEFINED_CATEGORYIDS_CHANGED = 3;
-
-    static final int DEFINED_ACTIVITYIDS_CHANGED = 4;
-
-    static final int DEFINED_CHANGED = 5;
-
-    static final int ENABLED_CHANGED = 6;
-
-    static final int NAME_CHANGED = 7;
-
-    static final int PATTERN_BINDINGS_CHANGED = 8;
-
-    static final int ACTIVITY_ACTIVITY_BINDINGS_CHANGED = 9;
-
-    static final int DESCRIPTION_CHANGED = 10;
-    
-    static final int DEFAULT_ENABLED_CHANGED = 11;
-
-    /**
-     * Constructor.
-     * 
-     * @param testName
-     *            Test's name.
-     */
-    public DynamicTest(String testName) {
-        super(testName);
-        fixedModelRegistry = new DynamicModelActivityRegistry();
-        activityManager = new MutableActivityManager(new WorkbenchTriggerPointAdvisor(), fixedModelRegistry);
-        listenerType = -1;
-    }
-
-    /**
-     * Test sizes of what has been read.
-     *  
-     */
-    public void testSizes() {
-        assertTrue(activityManager.getDefinedCategoryIds().size() == 6);
-        assertTrue(activityManager.getDefinedActivityIds().size() == 18);
-        assertTrue(activityManager.getEnabledActivityIds().size() == 3);
-    }
-
-    /**
-     * Test activity bindings.
-     *  
-     */
-    public void testActivityPatternBindings() {
-        IActivity first_activity = activityManager
-                .getActivity((String) activityManager.getDefinedActivityIds()
-                        .toArray()[0]);
-        Set initialPatternBindings = first_activity
-                .getActivityPatternBindings();
-        // Add pattern binding
-        String pattern = "org\\.eclipse\\.ui\\.myPattern/.*"; //$NON-NLS-1$
-        fixedModelRegistry.addActivityPatternBinding(first_activity.getId(),
-                pattern);
-        assertFalse(initialPatternBindings.size() == first_activity
-                .getActivityPatternBindings().size());
-        // Remove pattern binding
-        fixedModelRegistry.removeActivityPatternBinding(pattern);
-        assertTrue(initialPatternBindings.size() == first_activity
-                .getActivityPatternBindings().size());
-    }
-
-    /**
-     * Test the enabled activities.
-     *  
-     */
-    public void testEnabledActivities() {
-        // Add an enabled activity
-        Set compareSet;
-        Set copySet = new HashSet(activityManager.getEnabledActivityIds());
-        copySet.add(activityManager.getDefinedActivityIds().toArray()[0]);
-        activityManager.setEnabledActivityIds(copySet);
-        compareSet = activityManager.getEnabledActivityIds();
-        assertTrue(compareSet.size() == copySet.size());
-        // Remove an enabled activity
-        copySet.remove(activityManager.getDefinedActivityIds().toArray()[0]);
-        activityManager.setEnabledActivityIds(copySet);
-        compareSet = activityManager.getEnabledActivityIds();
-        assertTrue(compareSet.size() == copySet.size());
-    }
-
-    /**
-     * Test the identifier listener.
-     *  
-     */
-    public void testIdentifiersListener() {
-        final IIdentifier enabledIdentifier = activityManager
-                .getIdentifier("org.eclipse.pattern3"); //$NON-NLS-1$
-        assertTrue(enabledIdentifier.isEnabled());
-        enabledIdentifier.addIdentifierListener(new IIdentifierListener() {
-            public void identifierChanged(IdentifierEvent identifierEvent) {
-                switch (listenerType) {
-                case ACTIVITY_ENABLED_CHANGED:
-                    assertTrue(identifierEvent.hasEnabledChanged());
-                    break;
-                case ACTIVITY_IDS_CHANGED:
-                    assertTrue(identifierEvent.hasActivityIdsChanged());
-                    break;
-                }
-                listenerType = -1;
-            }
-        });
-        // Test correcteness of identifier
-        IIdentifier activitiesIdentifier = activityManager
-                .getIdentifier("org.eclipse.pattern4"); //$NON-NLS-1$
-        Set identifiedActivities = activitiesIdentifier.getActivityIds(); //$NON-NLS-1$
-        assertTrue(identifiedActivities.size() == 1);
-        assertTrue(((String) identifiedActivities.toArray()[0])
-                .equals("org.eclipse.activity4")); //$NON-NLS-1$
-        assertFalse(activitiesIdentifier.isEnabled());
-        // Disable Enabled activity
-        listenerType = 0;
-        Set copySet = new HashSet(activityManager.getEnabledActivityIds());
-        copySet.remove(enabledIdentifier.getActivityIds().toArray()[0]);
-        activityManager.setEnabledActivityIds(copySet);
-        assertTrue(listenerType == -1);
-        // Enable Disabled activity
-        listenerType = 0;
-        copySet.add("org.eclipse.activity3"); //$NON-NLS-1$
-        activityManager.setEnabledActivityIds(copySet);
-        assertTrue(listenerType == -1);
-        // Add pattern binding
-        listenerType = 1;
-        fixedModelRegistry.addActivityPatternBinding("org.eclipse.activity1", //$NON-NLS-1$
-                "org.eclipse.pattern3"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-        // Test correctenesss of identifier
-        Set manipulatedIdentifiers = activityManager.getIdentifier(
-                "org.eclipse.pattern3").getActivityIds(); //$NON-NLS-1$
-        assertTrue(manipulatedIdentifiers.size() == 2);
-        // Remove pattern binding
-        listenerType = 1;
-        fixedModelRegistry.removeActivityPatternBinding("org.eclipse.pattern3"); //$NON-NLS-1$
-        assertTrue(listenerType == -1);
-        manipulatedIdentifiers = activityManager.getIdentifier(
-                "org.eclipse.pattern3").getActivityIds(); //$NON-NLS-1$
-        assertTrue(manipulatedIdentifiers.size() == 1);
-    }
-
-    /**
-     * Test the activity manager listener.
-     *  
-     */
-    public void testActivityManagerListener() {
-        activityManager
-                .addActivityManagerListener(new IActivityManagerListener() {
-                    public void activityManagerChanged(
-                            ActivityManagerEvent activityManagerEvent) {
-                        switch (listenerType) {
-                        case ENABLED_ACTIVITYIDS_CHANGED:
-                            assertTrue(activityManagerEvent
-                                    .haveEnabledActivityIdsChanged());
-                            break;
-                        case DEFINED_CATEGORYIDS_CHANGED:
-                            assertTrue(activityManagerEvent
-                                    .haveDefinedCategoryIdsChanged());
-                            break;
-                        case DEFINED_ACTIVITYIDS_CHANGED:
-                            assertTrue(activityManagerEvent
-                                    .haveDefinedActivityIdsChanged());
-                            break; 
-                        }
-                        listenerType = -1;
-                    }
-                });
-        // Add an enabled activity
-        listenerType = 2;
-        Set enabledSet = new HashSet(activityManager.getEnabledActivityIds());
-        enabledSet.add("org.eclipse.activity19"); //$NON-NLS-1$
-        activityManager.setEnabledActivityIds(enabledSet);
-        assertTrue(listenerType == -1);
-        // Remove an enabled activity
-        listenerType = 2;
-        enabledSet.remove("org.eclipse.activity19"); //$NON-NLS-1$
-        activityManager.setEnabledActivityIds(enabledSet);
-        assertTrue(listenerType == -1);
-        // Add categroy
-        listenerType = 3;
-        fixedModelRegistry.addCategory("org.eclipse.category7", "Category 7"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-        // Remove category
-        listenerType = 3;
-        fixedModelRegistry.removeCategory("org.eclipse.category7", //$NON-NLS-1$
-                "Category 7"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-        // Add activity
-        listenerType = 4;
-        fixedModelRegistry.addActivity("org.eclipse.activity19", "Activity 19"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-        // Remove activity
-        listenerType = 4;
-        fixedModelRegistry.removeActivity("org.eclipse.activity19", //$NON-NLS-1$
-                "Activity 19"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-    }
-
-    /**
-     * Test the activity listener.
-     *  
-     */
-    public void testActivityListener() {
-        final IActivity activity_to_listen = activityManager
-                .getActivity((String) activityManager.getDefinedActivityIds()
-                        .toArray()[0]);
-        activity_to_listen.addActivityListener(new IActivityListener() {
-            public void activityChanged(ActivityEvent activityEvent) {
-                switch (listenerType) {
-                case DEFINED_CHANGED:
-                    assertTrue(activityEvent.hasDefinedChanged());
-                    break;
-                case ENABLED_CHANGED:
-                    assertTrue(activityEvent.hasEnabledChanged());
-                    break;
-                case NAME_CHANGED:
-                    assertTrue(activityEvent.hasNameChanged());
-                    break;
-                case PATTERN_BINDINGS_CHANGED:
-                    assertTrue(activityEvent
-                            .haveActivityPatternBindingsChanged());
-                    break;
-                case ACTIVITY_ACTIVITY_BINDINGS_CHANGED:
-                    assertTrue(activityEvent
-                            .haveActivityRequirementBindingsChanged());
-                    break;
-                case DESCRIPTION_CHANGED:
-                    assertTrue(activityEvent.hasDescriptionChanged());
-                    break;
-                case DEFAULT_ENABLED_CHANGED:
-                    assertTrue(activityEvent.hasDefaultEnabledChanged());
-                    break;
-                }
-                listenerType = -1;
-            }
-        });
-        // Remove activity and change name consequently
-        try {
-            fixedModelRegistry.removeActivity(activity_to_listen.getId(),
-                    activity_to_listen.getName());
-        } catch (NotDefinedException e) {
-            e.printStackTrace(System.err);
-        }
-        assertTrue(listenerType == -1);
-        // Add activity
-        listenerType = 5;
-        fixedModelRegistry.addActivity(activity_to_listen.getId(),
-                "Activity 18"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-        // Add to enabled activity
-        listenerType = 6;
-        Set enabledSet = new HashSet(activityManager.getEnabledActivityIds());
-        enabledSet.add(activity_to_listen.getId());
-        activityManager.setEnabledActivityIds(enabledSet);
-        assertTrue(listenerType == -1);
-        // Remove from enabled activity
-        listenerType = 6;
-        enabledSet.remove(activity_to_listen.getId());
-        activityManager.setEnabledActivityIds(enabledSet);
-        assertTrue(listenerType == -1);
-        // Add pattern binding
-        listenerType = 8;
-        fixedModelRegistry.addActivityPatternBinding("org.eclipse.activity18", //$NON-NLS-1$
-                "org.eclipse.pattern3"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-        // Remove pattern binding
-        listenerType = 8;
-        fixedModelRegistry.removeActivityPatternBinding("org.eclipse.pattern3");//$NON-NLS-1$
-        assertTrue(listenerType == -1);
-        // Add activity activity binding as parent
-        listenerType = 9;
-        fixedModelRegistry.addActivityRequirementBinding(
-                "org.eclipse.activity9", //$NON-NLS-1$
-                activity_to_listen.getId());//$NON-NLS-1$
-        assertTrue(listenerType == -1);
-        // Remove activity activity binding as parent
-        listenerType = 9;
-        fixedModelRegistry.removeActivityRequirementBinding(
-                "org.eclipse.activity9", activity_to_listen.getId());//$NON-NLS-1$
-        assertTrue(listenerType == -1);
-        //		 Update activity name
-        listenerType = 7;
-        fixedModelRegistry.updateActivityName(activity_to_listen.getId(),
-                "name_change"); //$NON-NLS-1$
-        assertTrue(listenerType == -1);
-        // Update activity description
-        listenerType = 10;
-        fixedModelRegistry.updateActivityDescription(
-                activity_to_listen.getId(), "description_change"); //$NON-NLS-1$
-        assertTrue(listenerType == -1);
-
-        // check default enablement
-        listenerType = DEFAULT_ENABLED_CHANGED;
-        fixedModelRegistry.addDefaultEnabledActivity(activity_to_listen.getId());
-        assertTrue(listenerType == -1);
-        try {
-            assertTrue(activity_to_listen.isDefaultEnabled());
-        } catch (NotDefinedException e1) {
-            fail(e1.getMessage());
-        }
-        
-        listenerType = DEFAULT_ENABLED_CHANGED;
-        fixedModelRegistry.removeDefaultEnabledActivity(activity_to_listen.getId());
-        assertTrue(listenerType == -1);
-        try {
-            assertFalse(activity_to_listen.isDefaultEnabled());
-        } catch (NotDefinedException e1) {
-            fail(e1.getMessage());
-        }
-    }
-
-    /**
-     * Test the category listener.
-     *  
-     */
-    public void testCategoryListener() {
-        final ICategory category_to_listen = activityManager
-                .getCategory((String) activityManager.getDefinedCategoryIds()
-                        .toArray()[0]);
-        category_to_listen.addCategoryListener(new ICategoryListener() {
-            public void categoryChanged(CategoryEvent categoryEvent) {
-                switch (listenerType) {
-                case DEFINED_CHANGED:
-                    assertTrue(categoryEvent.hasDefinedChanged());
-                    break;
-                case NAME_CHANGED:
-                    assertTrue(categoryEvent.hasNameChanged());
-                    break;
-                case PATTERN_BINDINGS_CHANGED:
-                    assertTrue(categoryEvent
-                            .haveCategoryActivityBindingsChanged());
-                    break;
-                case DESCRIPTION_CHANGED:
-                    //	assertTrue(categoryEvent.hasDescriptionChanged());
-                    break;
-                }
-                listenerType = -1;
-            }
-        });
-        // Remove category, and change name
-        try {
-            fixedModelRegistry.removeCategory(category_to_listen.getId(),
-                    category_to_listen.getName()); //$NON-NLS-1$
-        } catch (NotDefinedException e) {
-            e.printStackTrace(System.err);
-        }
-        assertTrue(listenerType == -1);
-        // Add category
-        listenerType = 5;
-        fixedModelRegistry
-                .addCategory(category_to_listen.getId(), "Category 6"); //$NON-NLS-1$ //$NON-NLS-2$
-        assertTrue(listenerType == -1);
-        // Add category activity binding
-        listenerType = 8;
-        fixedModelRegistry.addCategoryActivityBinding((String) activityManager
-                .getDefinedActivityIds().toArray()[4], category_to_listen
-                .getId()); //$NON-NLS-1$
-        assertTrue(listenerType == -1);
-        // Remove activity activity binding
-        listenerType = 8;
-        fixedModelRegistry.removeCategoryActivityBinding(
-                (String) activityManager.getDefinedActivityIds().toArray()[4],
-                category_to_listen.getId());//$NON-NLS-1$
-        // Change category description
-        listenerType = 10;
-        fixedModelRegistry.updateCategoryDescription(
-                category_to_listen.getId(), "description_change"); //$NON-NLS-1$
-        try {
-            assertTrue(category_to_listen.getDescription().equals(
-                    "description_change")); //$NON-NLS-1$
-        } catch (NotDefinedException e) {
-            e.printStackTrace(System.err);
-        }
-        assertTrue(listenerType == -1);
-        // Change category name
-        listenerType = 7;
-        fixedModelRegistry.updateCategoryName(category_to_listen.getId(),
-                "name_change"); //$NON-NLS-1$
-        try {
-            assertTrue(category_to_listen.getName().equals("name_change")); //$NON-NLS-1$
-        } catch (NotDefinedException e) {
-            e.printStackTrace(System.err);
-        }
-        assertTrue(listenerType == -1);
-    }
-    
-	/**
-	 * Tests to ensure dynamism with regard to the extension registry.
-	 */
-	public void testDynamicRegistry() {
-		IWorkbenchActivitySupport was = PlatformUI.getWorkbench()
-				.getActivitySupport();
-		IActivity activity = was.getActivityManager().getActivity(
-				"dynamic.activity");
-		ICategory category = was.getActivityManager().getCategory(
-				"dynamic.category");
-		assertFalse(activity.isDefined());
-		assertFalse(category.isDefined());
-		// set to true when the activity/category in question have had an event
-		// fired
-		final boolean[] registryChanged = new boolean[] { false, false };
-		activity.addActivityListener(new IActivityListener() {
-
-			public void activityChanged(ActivityEvent activityEvent) {
-				registryChanged[0] = true;
-
-			}
-		});
-		category.addCategoryListener(new ICategoryListener() {
-
-			public void categoryChanged(CategoryEvent categoryEvent) {
-				System.err.println("categoryChanged");
-				registryChanged[1] = true;
-
-			}
-		});
-
-		try {
-			String ACTIVITY = "<plugin><extension point=\"org.eclipse.ui.activities\">"
-					+ "<category id=\"dynamic.category\" name=\"Dynamic Activity Category\"/>"
-					+ "<activity id=\"dynamic.activity\" name=\"Dynamic Activity\"/>"
-					+ "<activity id=\"dynamic.parent\" name=\"Dynamic Parent Activity\"/>"
-					+ "<activityRequirementBinding requiredActivityId = \"dynamic.parent\" activityId = \"dynamic.activity\" />"
-					+ "<categoryActivityBinding categoryId = \"dynamic.category\" activityId = \"dynamic.activity\" />"
-					+ "<activityPatternBinding activityId=\"dynamic.activity\"  pattern=\"dynamic.activity/.*\"/>"
-					+ "<defaultEnablement id=\"dynamic.activity\"/>"
-					+ "</extension></plugin>";
-			byte[] bytes = ACTIVITY.toString().getBytes("UTF-8");
-			InputStream is = new ByteArrayInputStream(bytes);
-			IContributor contrib = ContributorFactoryOSGi
-					.createContributor(TestPlugin.getDefault().getBundle());
-			ExtensionRegistry registry = (ExtensionRegistry) RegistryFactory
-					.getRegistry();
-			if (!registry.addContribution(is, contrib, false, null, null,
-					registry.getTemporaryUserToken()))
-				throw new RuntimeException();
-		} catch (UnsupportedEncodingException e) {
-			fail(e.getMessage(), e);
-		}
-
-		// spin the event loop and ensure that the changes come down the pipe.
-		// 20 seconds should be more than enough
-		long endTime = System.currentTimeMillis() + 20000;
-		while (!(registryChanged[0] && registryChanged[1])
-				&& System.currentTimeMillis() < endTime) {
-
-			Display display = PlatformUI.getWorkbench().getDisplay();
-			if (display != null && !display.isDisposed())
-				while (display.readAndDispatch())
-					;
-			display.sleep();
-
-		}
-
-		assertTrue("Activity Listener not called", registryChanged[0]);
-		assertTrue("Category Listener not called", registryChanged[1]);
-
-		assertTrue(activity.isDefined());
-		Set patternBindings = activity.getActivityPatternBindings();
-		assertEquals(1, patternBindings.size());
-
-		IActivityPatternBinding patternBinding = (IActivityPatternBinding) patternBindings
-				.iterator().next();
-
-		assertEquals("dynamic.activity/.*", patternBinding.getPattern()
-				.pattern());
-		assertEquals("dynamic.activity", patternBinding.getActivityId());
-
-		try {
-			assertTrue(activity.isDefaultEnabled());
-		} catch (NotDefinedException e) {
-			fail(e.getMessage(), e);
-		}
-
-		Set requirementBindings = activity.getActivityRequirementBindings();
-		assertEquals(1, requirementBindings.size());
-
-		IActivityRequirementBinding requirementBinding = (IActivityRequirementBinding) requirementBindings
-				.iterator().next();
-		assertEquals("dynamic.parent", requirementBinding
-				.getRequiredActivityId());
-		assertEquals("dynamic.activity", requirementBinding.getActivityId());
-
-		assertTrue(category.isDefined());
-		Set categoryBindings = category.getCategoryActivityBindings();
-		assertEquals(1, categoryBindings.size());
-		ICategoryActivityBinding categoryBinding = (ICategoryActivityBinding) categoryBindings
-				.iterator().next();
-		assertEquals("dynamic.activity", categoryBinding.getActivityId());
-		assertEquals("dynamic.category", categoryBinding.getCategoryId());
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ImagesTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ImagesTest.java
deleted file mode 100644
index 9d0272c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/ImagesTest.java
+++ /dev/null
@@ -1,101 +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.tests.activities;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.IActivity;
-import org.eclipse.ui.activities.ICategory;
-import org.eclipse.ui.activities.IWorkbenchActivitySupport;
-import org.eclipse.ui.internal.IWorkbenchGraphicConstants;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.tests.harness.util.ImageTests;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.1
- */
-public class ImagesTest extends UITestCase {
-
-	private Image defaultImage;
-	private Image image1;
-	private Image image2;
-
-	/**
-	 * @param testName
-	 */
-	public ImagesTest(String testName) {
-		super(testName);
-	}
-	
-	public void testActivityImages() {
-		IWorkbenchActivitySupport support = PlatformUI.getWorkbench().getActivitySupport();
-		IActivity activity1 = support.getActivityManager().getActivity("org.eclipse.activity1");
-		assertNotNull(activity1);
-		assertTrue(activity1.isDefined());
-		IActivity activity2 = support.getActivityManager().getActivity("org.eclipse.activity2");
-		assertNotNull(activity2);
-		assertTrue(activity2.isDefined());
-		
-		ImageDescriptor defaultImageDesc = WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_OBJ_ACTIVITY);		
-		defaultImage = defaultImageDesc.createImage();
-		
-		ImageDescriptor desc1 = support.getImageDescriptor(activity1);
-		image1 = desc1.createImage();
-		
-		assertNotSame(defaultImageDesc, desc1);
-	    ImageTests.assertNotEquals(defaultImage, image1);
-	    
-		ImageDescriptor desc2 = support.getImageDescriptor(activity2);
-		image2 = desc2.createImage();
-		
-		assertSame(defaultImageDesc, desc2);
-		ImageTests.assertEquals(defaultImage, image2);
-	}
-	
-	
-	public void testCategoryImages() {
-		IWorkbenchActivitySupport support = PlatformUI.getWorkbench().getActivitySupport();
-		ICategory category1 = support.getActivityManager().getCategory("org.eclipse.category1");
-		assertNotNull(category1);
-		assertTrue(category1.isDefined());
-		ICategory category2 = support.getActivityManager().getCategory("org.eclipse.category2");
-		assertNotNull(category2);
-		assertTrue(category2.isDefined());
-		
-		ImageDescriptor defaultImageDesc = WorkbenchImages.getImageDescriptor(IWorkbenchGraphicConstants.IMG_OBJ_ACTIVITY_CATEGORY);		
-		defaultImage = defaultImageDesc.createImage();
-		
-		ImageDescriptor desc1 = support.getImageDescriptor(category1);
-		image1 = desc1.createImage();
-		
-		assertNotSame(defaultImageDesc, desc1);
-	    ImageTests.assertNotEquals(defaultImage, image1);
-	    
-		ImageDescriptor desc2 = support.getImageDescriptor(category2);
-		image2 = desc2.createImage();
-		
-		assertSame(defaultImageDesc, desc2);
-		ImageTests.assertEquals(defaultImage, image2);
-	}
-
-
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		if (defaultImage != null)
-			defaultImage.dispose();
-		if (image1 != null)
-			image1.dispose();
-		if (image2 != null)
-			image2.dispose();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/MenusTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/MenusTest.java
deleted file mode 100644
index befd34d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/MenusTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.activities;
-
-import java.util.Collections;
-import java.util.Set;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.menus.AbstractContributionFactory;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.IContributionRoot;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class MenusTest extends UITestCase {
-
-	private TestFactory factory;
-	private IWorkbenchWindow window;
-	private IMenuService service;
-	private Set enabledActivities;
-
-	/**
-	 * @since 3.3
-	 * 
-	 */
-	private final class TestFactory extends AbstractContributionFactory {
-		private CommandContributionItem fooItemWithNoVisibilityClause;
-		private CommandContributionItem barItemWithNoVisibilityClause;
-
-		/**
-		 * @param location
-		 * @param namespace
-		 * @param items
-		 */
-		private TestFactory(String location, String namespace) {
-			super(location, namespace);
-		}
-
-		public void createContributionItems(IServiceLocator serviceLocator,
-				IContributionRoot additions) {
-			fooItemWithNoVisibilityClause = new CommandContributionItem(
-					serviceLocator, "foo", "foo", null, null, null, null,
-					"Hi there", null, null, CommandContributionItem.STYLE_PUSH);
-			barItemWithNoVisibilityClause = new CommandContributionItem(
-					serviceLocator, "bar", "bar", null, null, null, null,
-					"Muppet", null, null, CommandContributionItem.STYLE_PUSH);
-
-			additions.addContributionItem(fooItemWithNoVisibilityClause, null);
-			additions.addContributionItem(barItemWithNoVisibilityClause, null);
-		}
-
-		/**
-		 * @return Returns the fooItemWithNoVisibilityClause.
-		 */
-		public CommandContributionItem getFooItemWithNoVisibilityClause() {
-			return fooItemWithNoVisibilityClause;
-		}
-
-		/**
-		 * @return Returns the barItemWithNoVisibilityClause.
-		 */
-		public CommandContributionItem getBarItemWithNoVisibilityClause() {
-			return barItemWithNoVisibilityClause;
-		}
-	}
-
-	/**
-	 * @param testName
-	 */
-	public MenusTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		window = openTestWindow();
-		enabledActivities = window.getWorkbench().getActivitySupport()
-				.getActivityManager().getEnabledActivityIds();
-		service = (IMenuService) window.getService(IMenuService.class);
-		assertNotNull(service);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		window.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				enabledActivities);
-		assertEquals(enabledActivities, window.getWorkbench()
-				.getActivitySupport().getActivityManager()
-				.getEnabledActivityIds());
-		if (factory != null) {
-			service.removeContributionFactory(factory);
-		}
-		super.doTearDown();
-	}
-
-	public void testNoNamespaceFactory() {
-		window.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				Collections.singleton("menuTest1")); // enable the foo
-														// activity
-
-		factory = new TestFactory("menu:tests", null);
-		service.addContributionFactory(factory);
-		MenuManager manager = new MenuManager();
-		service.populateContributionManager(manager, "menu:tests");
-		assertTrue(manager.getSize() > 0);
-		
-		assertTrue(factory.getFooItemWithNoVisibilityClause().isVisible());
-		assertTrue(factory.getBarItemWithNoVisibilityClause().isVisible());
-		
-		window.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				Collections.EMPTY_SET);
-		assertTrue(factory.getFooItemWithNoVisibilityClause().isVisible());
-		assertTrue(factory.getBarItemWithNoVisibilityClause().isVisible());
-		
-	}
-
-	public void testMenuVisibilityWithCustomFactory() {
-		window.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				Collections.singleton("menuTest1")); // enable the foo
-														// activity		
-		factory = new TestFactory("menu:tests",
-				"org.eclipse.ui.tests");
-		service.addContributionFactory(factory);
-		MenuManager manager = new MenuManager();
-		service.populateContributionManager(manager, "menu:tests");
-		assertTrue(manager.getSize() > 0);
-
-		assertTrue(factory.getFooItemWithNoVisibilityClause().isVisible());
-		assertFalse(factory.getBarItemWithNoVisibilityClause().isVisible());
-
-		window.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				Collections.EMPTY_SET);
-		assertFalse(factory.getFooItemWithNoVisibilityClause().isVisible());
-		assertFalse(factory.getBarItemWithNoVisibilityClause().isVisible());
-
-		window.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				Collections.singleton("menuTest2")); // enable the all
-														// activity
-		assertFalse(factory.getFooItemWithNoVisibilityClause().isVisible());
-		assertTrue(factory.getBarItemWithNoVisibilityClause().isVisible());
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PatternUtilTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PatternUtilTest.java
deleted file mode 100644
index d196178..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PatternUtilTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Bredex GmbH - Creator of this testing class.
- ******************************************************************************/
-
-package org.eclipse.ui.tests.activities;
-
-import java.util.regex.Pattern;
-
-import org.eclipse.ui.internal.activities.PatternUtil;
-
-import junit.framework.TestCase;
-
-/**
- * Test for:
- * Utility helper class for regular expression string patterns. 
- * 
- * @since 3.4
- * @author Jan Diederich
- */
-public class PatternUtilTest extends TestCase {
-	
-    /**
-     * Tests if the quote function of ActivityPatternBinding works.
-     */    
-    public static void testQuotePattern() {
-    	assertTrue(PatternUtil.quotePattern("abcd").equals("\\Qabcd\\E"));
-    	assertTrue(PatternUtil.quotePattern("Test\\Q").equals("\\QTest\\Q\\E"));
-		assertTrue(PatternUtil.quotePattern("Test\\Q\\E").equals(
-				"\\QTest\\Q\\E\\\\E\\Q\\E"));
-		assertTrue(PatternUtil.quotePattern("Test\\E\\Q").equals(
-				"\\QTest\\E\\\\E\\Q\\Q\\E"));		
-		assertTrue(PatternUtil.quotePattern("\\ETest\\E\\\\E\\E").equals(
-				"\\Q\\E\\\\E\\QTest\\E\\\\E\\Q\\\\E\\\\E\\Q\\E\\\\E\\Q\\E"));
-		String searchString = "xy[^a]";
-		assertFalse(Pattern.compile(searchString).matcher(searchString)
-				.matches());
-		assertTrue(Pattern.compile(PatternUtil.quotePattern(searchString))
-				.matcher(searchString).matches());    	
-    }
-    
-    /**
-     * For quick testing, without JUnit launch.
-     * 
-     * @param args
-     */
-    public static void main(String[] args) {
-    	testQuotePattern();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PersistanceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PersistanceTest.java
deleted file mode 100644
index aa62a17..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/PersistanceTest.java
+++ /dev/null
@@ -1,93 +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.tests.activities;
-
-import java.util.Iterator;
-
-import org.eclipse.ui.activities.IActivity;
-import org.eclipse.ui.activities.IActivityManager;
-import org.eclipse.ui.activities.ICategory;
-import org.eclipse.ui.activities.NotDefinedException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests that the Persistance class is catching malformed registry entries.
- * 
- * @since 3.1
- */
-public class PersistanceTest extends UITestCase {
-
-    /**
-     * @param testName
-     */
-    public PersistanceTest(String testName) {
-        super(testName);
-    }
-
-    public void testCategoryPermutations() {
-        try {
-	        IActivityManager manager = fWorkbench.getActivitySupport().getActivityManager();
-	        ICategory category = manager.getCategory("org.eclipse.ui.PT.C1"); // should not be defined - missing name
-	        assertFalse(category.isDefined());
-	        
-	        category = manager.getCategory("org.eclipse.ui.PT.C2"); // should be defined - missing desc
-	        assertTrue(category.isDefined());
-	        assertNotNull(category.getDescription());
-	        
-	        for (Iterator i = manager.getDefinedCategoryIds().iterator(); i.hasNext(); ) {
-	            if (manager.getCategory((String) i.next()).getName().equals("org.eclipse.ui.PT.C3"))
-	                fail("Found category that should not be.");
-	        }
-        }
-        catch (NotDefinedException e) {
-            fail(e.getMessage());
-        }
-    }    
-    
-    public void testActivityRequirementBindings() {
-        IActivityManager manager = fWorkbench.getActivitySupport().getActivityManager();
-        IActivity activity  = manager.getActivity("org.eclipse.ui.PT.A2");
-        assertTrue(activity.getActivityRequirementBindings().isEmpty());     
-    }
-    
-    public void testActivityPatternBindings() {
-        IActivityManager manager = fWorkbench.getActivitySupport().getActivityManager();
-        IActivity activity  = manager.getActivity("org.eclipse.ui.PT.A2");
-        assertTrue(activity.getActivityPatternBindings().isEmpty());     
-    }
-
-    public void testCategoryActivityBindings() {
-        IActivityManager manager = fWorkbench.getActivitySupport().getActivityManager();
-        ICategory category  = manager.getCategory("org.eclipse.ui.PT.C2");
-        assertTrue(category.getCategoryActivityBindings().isEmpty());     
-    } 
-    
-    public void testActivityPermutations() {
-        try {
-	        IActivityManager manager = fWorkbench.getActivitySupport().getActivityManager();
-	        IActivity activity = manager.getActivity("org.eclipse.ui.PT.A1"); // should not be defined - missing name
-	        assertFalse(activity.isDefined());
-	        
-	        activity = manager.getActivity("org.eclipse.ui.PT.A2"); // should be defined - missing desc
-	        assertTrue(activity.isDefined());
-	        assertNotNull(activity.getDescription());
-	        
-	        for (Iterator i = manager.getDefinedActivityIds().iterator(); i.hasNext(); ) {
-	            if (manager.getActivity((String) i.next()).getName().equals("org.eclipse.ui.PT.A3"))
-	                fail("Found activity that should not be.");
-	        }
-        }
-        catch (NotDefinedException e) {
-            fail(e.getMessage());
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/StaticTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/StaticTest.java
deleted file mode 100644
index 0da96c1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/StaticTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.activities;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.IActivity;
-import org.eclipse.ui.activities.IActivityManager;
-import org.eclipse.ui.activities.IActivityPatternBinding;
-import org.eclipse.ui.activities.ICategory;
-import org.eclipse.ui.activities.IIdentifier;
-import org.eclipse.ui.activities.NotDefinedException;
-import org.eclipse.ui.internal.activities.ActivityRequirementBinding;
-import org.eclipse.ui.internal.activities.CategoryActivityBinding;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * 
- * The static test reads activity definitions from the plugin.xml (in
- * org.eclipse.ui.tests) file and valides its content.
- */
-public class StaticTest extends UITestCase {
-    private IActivityManager activityManager;
-
-    private List categoryIds;
-
-    private List activityIds;
-
-    private List patternActivityIds;
-
-    /**
-     * Constructor.
-     * 
-     * @param testName
-     *            Test's name.
-     */
-    public StaticTest(String testName) {
-        super(testName);
-        activityManager = PlatformUI.getWorkbench().getActivitySupport()
-                .getActivityManager();
-        populateIds();
-    }
-
-    /**
-     * Populate the id arrays.
-     *  
-     */
-    private void populateIds() {
-        int index = 0;
-        categoryIds = new ArrayList();
-        for (index = 1; index <= 6; index++)
-            categoryIds.add("org.eclipse.category" + Integer.toString(index)); //$NON-NLS-1$
-        activityIds = new ArrayList();
-        for (index = 1; index <= 18; index++)
-            activityIds.add("org.eclipse.activity" + Integer.toString(index)); //$NON-NLS-1$
-        patternActivityIds = new ArrayList();
-        for (index = 0; index < 3; index++)
-            patternActivityIds.add(activityIds.toArray()[index]);
-    }
-
-    /**
-     * Test the activity manager's content.
-     *  
-     */
-    public void testActivityManager() {
-        // Check the defined category Ids
-        assertTrue(activityManager.getDefinedCategoryIds().containsAll(
-                categoryIds));
-        // Check the defined activity Ids
-        assertTrue(activityManager.getDefinedActivityIds().containsAll(
-                activityIds));
-        // Check enabled activity Ids
-        for (int index = 1; index <= 4; index++)
-            assertTrue(activityManager.getEnabledActivityIds().contains(
-                    "org.eclipse.activity" + Integer.toString(index)));
-        // Check identifier
-        IIdentifier activityIdentifier = activityManager
-                .getIdentifier("org.eclipse.pattern1");
-        Set activityIds = activityIdentifier.getActivityIds();
-        assertTrue(activityIds.containsAll(patternActivityIds));
-        assertTrue(activityIdentifier.getId().equals("org.eclipse.pattern1"));
-    }
-
-    /**
-     * Test an activitie's content.
-     *  
-     */
-    public void testActivity() {
-        IActivity first_activity = activityManager
-                .getActivity((String) activityIds.toArray()[0]);
-        // Check activity activity bindings for parent activity
-        Set activityRequirementBindings = first_activity
-                .getActivityRequirementBindings();
-        for (int index = 2; index <= 7; index++) {
-            assertTrue(activityRequirementBindings
-                    .contains(new ActivityRequirementBinding(
-                            "org.eclipse.activity" + Integer.toString(index),
-                            "org.eclipse.activity1")));
-        }
-        // Check activity pattern bindings
-        Set activityPatternBindings = first_activity
-                .getActivityPatternBindings();
-        assertTrue(activityPatternBindings.size() != 0);
-        IActivityPatternBinding activityPatternBinding = (IActivityPatternBinding) activityPatternBindings
-                .toArray()[0];
-        assertTrue(activityPatternBinding.getActivityId().equals(
-                first_activity.getId()));
-        assertTrue(activityPatternBinding.getPattern().pattern().equals(
-                "org.eclipse.pattern1"));
-        // Check description
-        try {
-            assertTrue(first_activity.getDescription().equals("description"));
-        } catch (NotDefinedException e) {
-            e.printStackTrace();
-        }
-        // Check activity id
-        assertTrue(first_activity.getId().equals("org.eclipse.activity1"));
-        // Check activity name
-        try {
-            assertTrue(first_activity.getName().equals("Activity 1"));
-        } catch (NotDefinedException e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * Test a category's content.
-     *  
-     */
-    public void testCategory() {
-        ICategory first_category = activityManager
-                .getCategory((String) categoryIds.toArray()[0]);
-        // Check category activity bindings
-        Set categoryActivityBindings = first_category
-                .getCategoryActivityBindings();
-        for (int index = 1; index <= 4; index++)
-            assertTrue(categoryActivityBindings
-                    .contains(new CategoryActivityBinding(
-                            "org.eclipse.activity" + Integer.toString(index),
-                            first_category.getId())));
-        try {
-            // Check category description
-            assertTrue(first_category.getDescription().equals("description"));
-        } catch (NotDefinedException e) {
-            e.printStackTrace();
-        }
-        // Check category id
-        assertTrue(first_category.getId().equals("org.eclipse.category1"));
-        try {
-            // Check category name
-            assertTrue(first_category.getName().equals("Category 1"));
-        } catch (NotDefinedException e) {
-            e.printStackTrace();
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/UtilTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/UtilTest.java
deleted file mode 100644
index 5765ab4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/activities/UtilTest.java
+++ /dev/null
@@ -1,634 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.activities;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.internal.expressions.TestExpression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.AbstractSourceProvider;
-import org.eclipse.ui.IPluginContribution;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.IActivity;
-import org.eclipse.ui.activities.IActivityManager;
-import org.eclipse.ui.activities.IActivityPatternBinding;
-import org.eclipse.ui.activities.IIdentifier;
-import org.eclipse.ui.activities.IWorkbenchActivitySupport;
-import org.eclipse.ui.activities.WorkbenchActivityHelper;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.services.IEvaluationService;
-
-/**
- * Tests various utility methods on WorkbenchActivityHelper as well as other misc. activities functionality.
- * 
- * @since 3.1
- */
-public class UtilTest extends TestCase {
-	
-	private Set rememberedSet;
-	
-	public static final String ID1 = "org.eclipse.ui.tests.util.1";
-	public static final String ID2 = "org.eclipse.ui.tests.util.2";
-	public static final String ID3 = "org.eclipse.ui.tests.util.3";
-	public static final String ID4 = "org.eclipse.ui.tests.util.4";
-	public static final String ID5 = "org.eclipse.ui.tests.util.5";
-	
-	/**
-	 * @param name
-	 */
-	public UtilTest(String name) {
-		super(name); 
-	}
-
-	/**
-	 * Asserts that if you enable cat 1 then cat 3 would also be enabled (they
-	 * contain the same activity).
-	 */
-	public void testGetEnabledCategories1() {
-		Set ids = WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID1);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID3));
-	}
-
-	/**
-	 * Asserts that if you enable cat 2 then cat 1 and cat 3 would also be
-	 * enabled. Cat 2 has activity 2, which depends on activity 1.
-	 */
-	public void testGetEnabledCategories2() {
-		Set ids = WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID2);
-		assertEquals(2, ids.size());
-		assertTrue(ids.contains(ID1));
-		assertTrue(ids.contains(ID3));
-	}
-		
-	/**
-	 * Asserts that if you enable cat 3 then cat 1 would also be enabled (they
-	 * contain the same activity).
-	 */
-	public void testGetEnabledCategories3() {
-		Set ids = WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID3);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID1));
-	}
-	
-	/**
-	 * Asserts that if you enable cat 4 then no other categories would change..
-	 */
-	public void testGetEnabledCategories4() {
-		Set ids = WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID4);
-		assertEquals(0, ids.size());
-	}
-	
-	/**
-	 * Asserts that if you enable cat 5 then cat 4 will become enabled
-	 */
-	public void testGetEnabledCategories5() {
-		Set ids = WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID5);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID4));
-	}
-
-	/**
-	 * Asserts that if you enable cat 1 when it's activity is already enabled
-	 * then no categories would change.
-	 */
-	public void testGetEnabledCategories1_A() {
-		HashSet set = new HashSet();
-		set.add(ID1);
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(set);
-		assertEquals(0, WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID1).size());
-	}
-	
-	/**
-	 * Asserts that if you enable cat 2 when it's activity is already enabled
-	 * then no categories would change.
-	 */
-	public void testGetEnabledCategories2_A() {
-		HashSet set = new HashSet();
-		set.add(ID2);
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(set);
-		assertEquals(0, WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID2).size());
-	}
-	
-	/**
-	 * Asserts that if you enable cat 3 when it's activity is already enabled
-	 * then no categories would change.
-	 */
-	public void testGetEnabledCategories3_A() {
-		HashSet set = new HashSet();
-		set.add(ID1);
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(set);
-		assertEquals(0, WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID3).size());
-	}	
-	
-	/**
-	 * Asserts that if you enable cat 4 when it's activity is already enabled
-	 * then no categories would change.
-	 */
-	public void testGetEnabledCategories4_A() {
-		HashSet set = new HashSet();
-		set.add(ID4);
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(set);
-		assertEquals(0, WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID4).size());
-	}
-	
-	/**
-	 * Asserts that if you enable cat 5 when activity 4 is already enabled
-	 * then no categories would change.
-	 */
-	public void testGetEnabledCategories5_Aa() {
-		HashSet set = new HashSet();
-		set.add(ID4);
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(set);
-		assertEquals(0, WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID5).size());
-	}
-	
-	/**
-	 * Asserts that if you enable cat 5 when activity 5 is already enabled
-	 * then cat 4 would change.
-	 */
-	public void testGetEnabledCategories5_Ab() {
-		HashSet set = new HashSet();
-		set.add(ID5);
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(set);
-		Set ids = WorkbenchActivityHelper.getEnabledCategories(getActivityManager(), ID5);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID4));
-	}	
-	
-	/**
-	 * Asserts that if you disable cat 1 then cat 3 would also be disabled (they
-	 * contain the same activity).
-	 */
-	public void testGetDisabledCategories1() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getDisabledCategories(getActivityManager(), ID1);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID3));
-	}
-	
-	/**
-	 * Asserts that if you disable cat 2 then cat 1 and cat 3 would also be disabled.
-	 */
-	public void testGetDisabledCategories2() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getDisabledCategories(getActivityManager(), ID2);
-		assertEquals(2, ids.size());
-		assertTrue(ids.contains(ID1));
-		assertTrue(ids.contains(ID3));
-	}
-	
-	/**
-	 * Asserts that if you disable cat 3 then cat 1 would also be disabled.
-	 */
-	public void testGetDisabledCategories3() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getDisabledCategories(getActivityManager(), ID3);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID1));
-	}
-	
-	/**
-	 * Asserts that if you disable cat 4 then no other categories would also be disabled.
-	 */
-	public void testGetDisabledCategories4() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getDisabledCategories(getActivityManager(), ID4);
-		assertEquals(0, ids.size());
-	}
-	
-	/**
-	 * Asserts that if you disable cat 5 then cat 4 would also be disabled.
-	 */
-	public void testGetDisabledCategories5() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getDisabledCategories(getActivityManager(), ID5);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID4));
-	}
-	
-	/**
-	 * Asserts that the enabled category count for activity 1 is 2 (cat 1 and 3).
-	 */
-	public void testCategoryCount1_A() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getEnabledCategoriesForActivity(getActivityManager(), ID1);
-		assertEquals(2, ids.size());
-		assertTrue(ids.contains(ID1));
-		assertTrue(ids.contains(ID3));
-	}
-	
-	/**
-	 * Asserts that the enabled category count for activity 2 is 1 (cat 2).
-	 */
-	public void testCategoryCount2_A() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getEnabledCategoriesForActivity(getActivityManager(), ID2);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID2));
-	}
-	
-	/**
-	 * Asserts that the enabled category count for activity 4 is 2 (cat 4 and 5).
-	 */
-	public void testCategoryCount4_A() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getEnabledCategoriesForActivity(getActivityManager(), ID4);
-		assertEquals(2, ids.size());
-		assertTrue(ids.contains(ID4));
-		assertTrue(ids.contains(ID5));
-	}
-	
-	/**
-	 * Asserts that the enabled category count for activity 5 is 1 (cat 5).
-	 */
-	public void testCategoryCount5_A() {
-		enableAll();
-		Set ids = WorkbenchActivityHelper.getEnabledCategoriesForActivity(getActivityManager(), ID5);
-		assertEquals(1, ids.size());
-		assertTrue(ids.contains(ID5));
-	}
-	
-	/**
-	 * Test the activity property tester.  Test the isActivityEnabled property
-	 * 
-	 */
-	public void testPropertyTester1() {
-		enableAll();
-		EvaluationContext context = new EvaluationContext(null, PlatformUI.getWorkbench());
-
-		IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI
-				.getWorkbench().getActivitySupport();
-		IActivityManager activityManager = workbenchActivitySupport
-				.getActivityManager();
-		
-		testPropertyTester1(context, activityManager);
-		Set set = new HashSet();
-		workbenchActivitySupport.setEnabledActivityIds(set);
-		
-		testPropertyTester1(context, activityManager);
-	}
-
-	/**
-	 * @param context
-	 * @param activityManager
-	 */
-	private void testPropertyTester1(EvaluationContext context,
-			IActivityManager activityManager) {
-		boolean result = activityManager
-				.getActivity(ID1).isEnabled();
-
-		TestExpression test = new TestExpression("org.eclipse.ui",
-				"isActivityEnabled", new Object[] { ID1 },
-				null);
-		
-		try {
-			assertEquals(result ? EvaluationResult.TRUE: EvaluationResult.FALSE, test.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-	}
-	
-	/**
-	 * Test the activity property tester.  Test the isCategoryEnabled property
-	 * 
-	 */
-	public void testPropertyTester2() {
-		enableAll();
-		EvaluationContext context = new EvaluationContext(null, PlatformUI.getWorkbench());
-
-		IWorkbenchActivitySupport workbenchActivitySupport = PlatformUI
-				.getWorkbench().getActivitySupport();
-		IActivityManager activityManager = workbenchActivitySupport
-				.getActivityManager();
-		
-		testPropertyTester2(context, activityManager);
-		Set set = new HashSet();
-		workbenchActivitySupport.setEnabledActivityIds(set);
-		
-		testPropertyTester2(context, activityManager);
-	}
-	
-	
-	public static final String EXPRESSION_ACTIVITY_ID = "org.eclipse.ui.tests.filter1.enabled";
-	public static final String EXPRESSION_ACTIVITY_ID_2 = "org.eclipse.ui.tests.filter2.enabled";
-	public static final String EXPRESSION_ACTIVITY_ID_3 = "org.eclipse.ui.tests.filter3.enabled";
-	public static final String EXPRESSION_ACTIVITY_ID_4 = "org.eclipse.ui.tests.filter4.enabled";
-	public static final String EXPRESSION_ACTIVITY_ID_5 = "org.eclipse.ui.tests.filter5.enabled";
-	public static final String EXPRESSION_ACTIVITY_ID_6 = "org.eclipse.ui.tests.filter6.enabled";
-	public static final String EXPRESSION_ACTIVITY_ID_7 = "org.eclipse.ui.tests.filter7.enabled";
-
-	public static final String EXPRESSION_VALUE = "org.eclipse.ui.command.contexts.enablement_test1";
-
-	class TestSourceProvider extends AbstractSourceProvider {
-		public static final String VARIABLE = "arbitraryVariable";
-		public static final String VALUE = "arbitraryValue";
-
-		private Map sourceState = new HashMap(1);
-
-		public TestSourceProvider() {
-			super();
-			clearVariable();
-		}
-
-		public Map getCurrentState() {
-			return sourceState;
-		}
-
-		public String[] getProvidedSourceNames() {
-			return new String[] { VARIABLE };
-		}
-
-		/* 
-		 * (non-Javadoc)		 
-		 * @see org.eclipse.ui.ISourceProvider#dispose()
-		 */
-		public void dispose() {
-		}
-
-		/**
-		 * @see {@link #fireSourceChanged(int, Map)}
-		 */
-		public void fireSourceChanged() {
-			fireSourceChanged(0, sourceState);
-		}
-
-		/**
-		 * Sets variable to value. Triggers no fireSourceChanged() update.
-		 */
-		public void setVariable() {
-			sourceState.put(VARIABLE, VALUE);
-		}
-		
-		/**
-		 * Clears variable to empty string. Triggers no fireSourceChanged()
-		 * update.
-		 */
-		public void clearVariable() {
-			sourceState.put(VARIABLE, "");
-		}
-	};
-	
-	public void testExpressionEnablement() throws Exception {
-		IPluginContribution filterExp = new IPluginContribution() {
-			public String getLocalId() {
-				return "filter";
-			}
-			public String getPluginId() {
-				return "org";
-			}
-		};
-		IPluginContribution filterExp2 = new IPluginContribution() {
-			public String getLocalId() {
-				return "filter2";
-			}
-			public String getPluginId() {
-				return "org";
-			}
-		};
-		IPluginContribution noExp = new IPluginContribution() {
-			public String getLocalId() {
-				return "donotfilter";
-			}
-			public String getPluginId() {
-				return "org";
-			}
-		};
-		assertTrue(WorkbenchActivityHelper.filterItem(filterExp));
-		assertTrue(WorkbenchActivityHelper.filterItem(noExp));
-		assertTrue(WorkbenchActivityHelper.restrictUseOf(filterExp));
-		assertFalse(WorkbenchActivityHelper.restrictUseOf(noExp));
-		
-		// The EXPRESSION_ACTIVITY_ID_3 is always true, and therefore it must
-		// be in the enabledActivityIds list - right from the beginning.
-		IWorkbenchActivitySupport support = PlatformUI.getWorkbench()
-				.getActivitySupport();
-		Set enabledActivityIds = support.getActivityManager()
-				.getEnabledActivityIds();
-		assertTrue(enabledActivityIds.contains(EXPRESSION_ACTIVITY_ID_3));
-		
-		// Test activityRequirmentBinding ignored on expression controlled
-		// activities.
-		// Test conventional activity depends on expression activity. 
-		assertFalse(enabledActivityIds.contains(EXPRESSION_ACTIVITY_ID_4));
-		assertFalse(enabledActivityIds.contains(EXPRESSION_ACTIVITY_ID_5));
-		enabledActivityIds = new HashSet(enabledActivityIds);
-		enabledActivityIds.add(EXPRESSION_ACTIVITY_ID_5);
-		support.setEnabledActivityIds(enabledActivityIds);
-		enabledActivityIds = support.getActivityManager()
-				.getEnabledActivityIds();
-		assertFalse(enabledActivityIds.contains(EXPRESSION_ACTIVITY_ID_4));
-		assertTrue(enabledActivityIds.contains(EXPRESSION_ACTIVITY_ID_5));
-		
-		// Test expression activity depends on conventional activity.
-		assertFalse(enabledActivityIds.contains(EXPRESSION_ACTIVITY_ID_6));
-		assertTrue(enabledActivityIds.contains(EXPRESSION_ACTIVITY_ID_7));
-		
-		
-		// need to enable the normal activity, org.eclipse.ui.tests.filter1.normal
-		// and change the context to enable org.eclipse.ui.tests.filter1.enabled:
-		// context: org.eclipse.ui.command.contexts.enablement_test1
-		
-		IContextService localService = (IContextService) PlatformUI
-				.getWorkbench().getService(IContextService.class);
-		IContextActivation activation = localService.activateContext(EXPRESSION_VALUE);
-		try {
-		// Not restricted anymore.
-		assertFalse(WorkbenchActivityHelper.restrictUseOf(filterExp));
-
-		// Test recognition of disabled expression which is already filtered.
-		localService.deactivateContext(activation);
-		assertTrue(WorkbenchActivityHelper.restrictUseOf(filterExp));		
-
-		//
-		// Testing with an arbitrary self-declared test variable.
-		//
-		TestSourceProvider testSourceProvider = new TestSourceProvider();
-		IEvaluationService evalService = (IEvaluationService) PlatformUI
-				.getWorkbench().getService(IEvaluationService.class);
-		evalService.addSourceProvider(testSourceProvider);
-		testSourceProvider.fireSourceChanged();
-
-		// Non-set variable.
-		assertTrue(WorkbenchActivityHelper.restrictUseOf(filterExp2));
-
-		// Set variable.
-		testSourceProvider.setVariable();
-		testSourceProvider.fireSourceChanged();
-		assertFalse(WorkbenchActivityHelper.restrictUseOf(filterExp2));
-		
-		//------------------------
-		// Rerun last test with a "twist" - "twist" described in next comment.
-		//------------------------
-		// Clear variable again.
-		testSourceProvider.clearVariable();
-		testSourceProvider.fireSourceChanged();
-		
-		// Put the activity in the enabledActivity list, so it would run into
-		// problems if it not correctly recognizes the difference when already
-		// marked as enabled (by being in the list) while the expression, which
-		// controls the activity, becomes in reality only later enabled.		
-		Set set = new HashSet(support.getActivityManager().getEnabledActivityIds());
-		set.add(EXPRESSION_ACTIVITY_ID_2);
-		support.setEnabledActivityIds(set);
-		
-		// Set variable again.
-		testSourceProvider.setVariable();
-		testSourceProvider.fireSourceChanged();
-		assertFalse(WorkbenchActivityHelper.restrictUseOf(filterExp2));
-
-		evalService.removeSourceProvider(testSourceProvider);
-		}
-		finally {
-			localService.deactivateContext(activation);
-		}
-	}
-	
-	/**
-	 * @param context
-	 * @param activityManager
-	 */
-	private void testPropertyTester2(EvaluationContext context,
-			IActivityManager activityManager) {
-		boolean result = WorkbenchActivityHelper.isEnabled(activityManager, ID1);
-
-
-		TestExpression test = new TestExpression("org.eclipse.ui",
-				"isCategoryEnabled", new Object[] { ID1 },
-				null);
-		
-		try {
-			assertEquals(result ? EvaluationResult.TRUE: EvaluationResult.FALSE, test.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-	}
-	
-	/**
-	 * Enable all test activities.
-	 */
-	private void enableAll() {
-		HashSet set = new HashSet();
-		set.add(ID1);
-		set.add(ID2);
-		set.add(ID4);
-		set.add(ID5);
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				set);
-	}
-
-    /**
-     * Return the system activity manager.
-     * 
-     * @return the system activity manager
-     */
-    private IActivityManager getActivityManager() {
-        return  PlatformUI.getWorkbench()
-        .getActivitySupport().getActivityManager();
-    }
-    
-    /**
-     * Tests non-regular Expression Pattern bindings.
-     */
-    public void testNonRegExpressionPattern() {    	
-    	final String ACTIVITY_NON_REG_EXP = "org.eclipse.activityNonRegExp";
-    	
-    	// Check Activity -> Binding connection.
-    	IActivityManager manager = getActivityManager();    	
-    	IActivity activity = manager.getActivity(ACTIVITY_NON_REG_EXP);
-    	Set bindings = activity.getActivityPatternBindings();
-    	assertTrue(bindings.size() == 1);
-    	IActivityPatternBinding binding = 
-    		(IActivityPatternBinding)bindings.iterator().next();
-    	assertTrue(binding.isEqualityPattern());
-    	
-    	// Check Binding -> Activity connection.
-    	final String IDENTIFIER = "org.eclipse.ui.tests.activity{No{Reg(Exp[^d]";
-    	IIdentifier identifier = manager.getIdentifier(IDENTIFIER);
-    	Set boundActivities = identifier.getActivityIds();
-    	assertTrue(boundActivities.size() == 1);
-    	String id = boundActivities.iterator().next().toString();
-    	assertTrue(id.equals(ACTIVITY_NON_REG_EXP));
-    	
-    	// Check conversion from normal string to regular expression string
-    	// for <code>Pattern()</code> constructing.
-    	Pattern pattern = binding.getPattern();    	
-    	assertTrue(pattern.pattern().equals(
-				Pattern.compile("\\Q" + IDENTIFIER + "\\E").pattern()));
-    }    
-    
-    /**
-	 * Tests to ensure that setting enabled of an activity disabled by
-	 * expression and setting disabled of an activity enabled by expression both
-	 * behave as expected. Ie: it's a no-op.
-	 */
-    public void testSetEnabledExpressionActivity() {
-    	try {
-    		TestSourceProvider testSourceProvider = new TestSourceProvider();
-    		IEvaluationService evalService = (IEvaluationService) PlatformUI
-    				.getWorkbench().getService(IEvaluationService.class);
-    		evalService.addSourceProvider(testSourceProvider);
-    		testSourceProvider.fireSourceChanged();
-    		
-    		
-    		IWorkbenchActivitySupport support = PlatformUI.getWorkbench()
-    			.getActivitySupport();		
-    		support.setEnabledActivityIds(new HashSet());
-    		Set set = new HashSet(support.getActivityManager().getEnabledActivityIds());
-    		Set previousSet = new HashSet(support.getActivityManager().getEnabledActivityIds());
-    		set.add(EXPRESSION_ACTIVITY_ID_2);
-    		support.setEnabledActivityIds(set);
-    		assertEquals(previousSet, support.getActivityManager().getEnabledActivityIds());
-    		
-    		testSourceProvider.setVariable();
-    		testSourceProvider.fireSourceChanged();
-    		
-    		set = new HashSet(support.getActivityManager().getEnabledActivityIds());
-    		assertFalse(set.equals(previousSet));
-    		
-    		set.remove(EXPRESSION_ACTIVITY_ID_2);
-    		support.setEnabledActivityIds(set);
-    		
-    		assertFalse(support.getActivityManager().getEnabledActivityIds().equals(previousSet));
-
-    		evalService.removeSourceProvider(testSourceProvider);
-    	}
-    	finally {
-    		
-    	}
-    }
-    
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-		rememberedSet = getActivityManager().getEnabledActivityIds();
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				rememberedSet);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableDecoratorTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableDecoratorTestCase.java
deleted file mode 100644
index 58000c0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableDecoratorTestCase.java
+++ /dev/null
@@ -1,198 +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.ui.tests.adaptable;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecoratorDefinition;
-import org.eclipse.ui.internal.decorators.DecoratorManager;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @version 1.0
- */
-public class AdaptableDecoratorTestCase extends UITestCase implements
-		ILabelProviderListener {
-
-	private DecoratorDefinition fullDefinition;
-
-	private DecoratorDefinition lightDefinition;
-
-	private boolean updated = false;
-
-	public String ADAPTED_NAVIGATOR_ID = "org.eclipse.ui.tests.adaptable.adaptedHierarchy";
-
-	protected IProject testProject;
-
-	protected IFolder testFolder;
-
-	protected IFile testFile;
-
-	/**
-	 * Constructor for DecoratorTestCase.
-	 * 
-	 * @param testName
-	 */
-	public AdaptableDecoratorTestCase(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Sets up the hierarchy.
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		createTestFile();
-		showAdaptedNav();
-
-		WorkbenchPlugin.getDefault().getDecoratorManager().addListener(this);
-
-		DecoratorDefinition[] definitions = WorkbenchPlugin.getDefault()
-				.getDecoratorManager().getAllDecoratorDefinitions();
-		for (int i = 0; i < definitions.length; i++) {
-			if (definitions[i].getId().equals(
-					"org.eclipse.ui.tests.adaptable.decorator"))
-				fullDefinition = definitions[i];
-			if (definitions[i].getId().equals(
-					"org.eclipse.ui.tests.decorators.lightweightdecorator"))
-				lightDefinition = definitions[i];
-		}
-	}
-
-	private DecoratorManager getDecoratorManager() {
-		return WorkbenchPlugin.getDefault().getDecoratorManager();
-	}
-
-	/**
-	 * Remove the listener.
-	 */
-	protected void doTearDown() throws Exception {
-
-		if (testProject != null) {
-			try {
-				testProject.delete(true, null);
-			} catch (CoreException e) {
-				fail(e.toString());
-			}
-			testProject = null;
-			testFolder = null;
-			testFile = null;
-		}
-		super.doTearDown();
-
-		getDecoratorManager().removeListener(this);
-	}
-
-	/**
-	 * Test enabling the contributor
-	 */
-	public void testEnableDecorator() throws CoreException {
-		getDecoratorManager().updateForEnablementChange();
-		fullDefinition.setEnabled(true);
-		lightDefinition.setEnabled(true);
-		getDecoratorManager().updateForEnablementChange();
-
-	}
-
-	/**
-	 * Test disabling the contributor
-	 */
-	public void testDisableDecorator() {
-		getDecoratorManager().updateForEnablementChange();
-		fullDefinition.setEnabled(false);
-		lightDefinition.setEnabled(false);
-		getDecoratorManager().updateForEnablementChange();
-	}
-
-	/**
-	 * Refresh the full decorator.
-	 */
-	public void testRefreshFullContributor() {
-
-		updated = false;
-		getDecoratorManager().updateForEnablementChange();
-		fullDefinition.setEnabled(true);
-		lightDefinition.setEnabled(false);
-		getDecoratorManager().updateForEnablementChange();
-		assertTrue("Got an update", updated);
-		updated = false;
-
-	}
-
-	/**
-	 * Refresh the full decorator.
-	 */
-	public void testRefreshLightContributor() throws CoreException {
-
-		updated = false;
-		getDecoratorManager().updateForEnablementChange();
-		lightDefinition.setEnabled(true);
-		fullDefinition.setEnabled(false);
-		getDecoratorManager().updateForEnablementChange();
-		assertTrue("Got an update", updated);
-		updated = false;
-
-	}
-
-	/*
-	 * @see ILabelProviderListener#labelProviderChanged(LabelProviderChangedEvent)
-	 */
-	public void labelProviderChanged(LabelProviderChangedEvent event) {
-		updated = true;
-	}
-
-	/**
-	 * Shows the Adapted Resource Navigator in a new test window.
-	 */
-	protected void showAdaptedNav() throws PartInitException {
-		IWorkbenchWindow window = openTestWindow();
-		window.getActivePage().showView(ADAPTED_NAVIGATOR_ID);
-	}
-
-	protected void createTestProject() throws CoreException {
-		if (testProject == null) {
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			testProject = workspace.getRoot().getProject("AdaptedTestProject");
-			testProject.create(null);
-			testProject.open(null);
-		}
-	}
-
-	protected void createTestFolder() throws CoreException {
-		if (testFolder == null) {
-			createTestProject();
-			testFolder = testProject.getFolder("AdaptedTestFolder");
-			testFolder.create(false, false, null);
-		}
-	}
-
-	protected void createTestFile() throws CoreException {
-		if (testFile == null) {
-			createTestFolder();
-			testFile = testFolder.getFile("AdaptedFoo.txt");
-			testFile.create(
-					new ByteArrayInputStream("Some content.".getBytes()),
-					false, null);
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableResourceWrapper.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableResourceWrapper.java
deleted file mode 100644
index e240c9c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableResourceWrapper.java
+++ /dev/null
@@ -1,65 +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.ui.tests.adaptable;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-public class AdaptableResourceWrapper implements IAdaptable {
-
-    IResource resource;
-
-    /*
-     * @see IAdaptable#getAdapter(Class)
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IResource.class)
-            return resource;
-        if (adapter == IWorkbenchAdapter.class)
-            return TestAdaptableWorkbenchAdapter.getInstance();
-        return null;
-    }
-
-    public AdaptableResourceWrapper(IResource wrapped) {
-        resource = wrapped;
-    }
-
-    public String getLabel() {
-        return resource.getName() + " Adapted";
-    }
-
-    public AdaptableResourceWrapper getParent() {
-        if (resource.getParent() != null)
-            return new AdaptableResourceWrapper(resource.getParent());
-        return null;
-    }
-
-    public AdaptableResourceWrapper[] getChildren() {
-        AdaptableResourceWrapper[] wrappers = new AdaptableResourceWrapper[0];
-
-        if (resource instanceof IContainer) {
-            IResource[] children;
-            try {
-                children = ((IContainer) resource).members();
-            } catch (CoreException exception) {
-                return wrappers;
-            }
-            wrappers = new AdaptableResourceWrapper[children.length];
-            for (int i = 0; i < children.length; i++) {
-                wrappers[i] = new AdaptableResourceWrapper(children[i]);
-            }
-        }
-        return wrappers;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableTestSuite.java
deleted file mode 100644
index 8f12312..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptableTestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.adaptable;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The AdaptableTestSuite is the TestSuite for the
- * adaptable support in the UI.
- */
-public class AdaptableTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new AdaptableTestSuite();
-    }
-
-    /**
-     * Constructor for AdaptableTestSuite.
-     */
-    public AdaptableTestSuite() {
-        addTest(new TestSuite(AdaptableDecoratorTestCase.class));
-        addTest(new TestSuite(MarkerImageProviderTest.class));
-        addTest(new TestSuite(WorkingSetTestCase.class));
-        addTest(new TestSuite(SelectionAdapterTest.class));
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptedResourceNavigator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptedResourceNavigator.java
deleted file mode 100644
index 9850f66..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/AdaptedResourceNavigator.java
+++ /dev/null
@@ -1,534 +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.ui.tests.adaptable;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProvider;
-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.jface.viewers.TreeViewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IDecoratorManager;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.part.DrillDownAdapter;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.views.navigator.ResourceSorter;
-
-/**
- * Implements the Resource Navigator view.
- */
-public class AdaptedResourceNavigator extends ViewPart {
-    private TreeViewer viewer;
-
-    private IDialogSettings settings;
-
-    private IMemento memento;
-
-    protected TestNavigatorActionGroup actionGroup;
-
-    /**
-     * Preference name constant for linking editor switching to navigator selection.
-     * 
-     * [Issue: We're cheating here, by referencing a preference which is actually defined
-     * on the Workbench's preference page.  The Navigator should eventually have its own
-     * preference page with this preference on it, instead of on the Workbench's.
-     * The value must be the same as IWorkbenchPreferenceConstants.LINK_NAVIGATOR_TO_EDITOR.]
-     */
-    private static final String LINK_NAVIGATOR_TO_EDITOR = "LINK_NAVIGATOR_TO_EDITOR"; //$NON-NLS-1$
-
-    private IPartListener partListener = new IPartListener() {
-        public void partActivated(IWorkbenchPart part) {
-            if (part instanceof IEditorPart)
-                editorActivated((IEditorPart) part);
-        }
-
-        public void partBroughtToTop(IWorkbenchPart part) {
-        }
-
-        public void partClosed(IWorkbenchPart part) {
-        }
-
-        public void partDeactivated(IWorkbenchPart part) {
-        }
-
-        public void partOpened(IWorkbenchPart part) {
-        }
-    };
-
-    /**
-     * Creates a new AdaptedResourceNavigator.
-     */
-    public AdaptedResourceNavigator() {
-        IDialogSettings workbenchSettings = getPlugin().getDialogSettings();
-        settings = workbenchSettings.getSection("ResourceNavigator"); //$NON-NLS-1$
-        if (settings == null)
-            settings = workbenchSettings.addNewSection("ResourceNavigator"); //$NON-NLS-1$
-    }
-
-    /**
-     * Converts the given selection into a form usable by the viewer,
-     * where the elements are resources.
-     */
-    StructuredSelection convertSelection(ISelection selection) {
-        ArrayList list = new ArrayList();
-        if (selection instanceof IStructuredSelection) {
-            IStructuredSelection ssel = (IStructuredSelection) selection;
-            for (Iterator i = ssel.iterator(); i.hasNext();) {
-                Object o = i.next();
-                IResource resource = null;
-                if (o instanceof IResource) {
-                    resource = (IResource) o;
-                } else {
-                    if (o instanceof IAdaptable) {
-                        resource = (IResource) ((IAdaptable) o)
-                                .getAdapter(IResource.class);
-                    }
-                }
-                if (resource != null) {
-                    list.add(resource);
-                }
-            }
-        }
-        return new StructuredSelection(list);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void createPartControl(Composite parent) {
-        viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-        //	initDrillDownAdapter(viewer);
-        viewer.setUseHashlookup(true);
-        viewer.setContentProvider(new TestAdaptableContentProvider());
-        IDecoratorManager manager = getSite().getWorkbenchWindow()
-                .getWorkbench().getDecoratorManager();
-        viewer.setLabelProvider(new DecoratingLabelProvider(
-                new TestAdaptableWorkbenchAdapter(), manager
-                        .getLabelDecorator()));
-
-        viewer.setInput(getInitialInput());
-        updateTitle();
-
-        MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
-        menuMgr.setRemoveAllWhenShown(true);
-        menuMgr.addMenuListener(new IMenuListener() {
-            public void menuAboutToShow(IMenuManager manager) {
-                AdaptedResourceNavigator.this.fillContextMenu(manager);
-            }
-        });
-        Menu menu = menuMgr.createContextMenu(viewer.getTree());
-        viewer.getTree().setMenu(menu);
-        getSite().registerContextMenu(menuMgr, viewer);
-
-        makeActions();
-
-        // Update the global action enable state to match
-        // the current selection.
-        IStructuredSelection selection = (IStructuredSelection) viewer
-                .getSelection();
-        actionGroup.updateGlobalActions(selection);
-
-        viewer.addSelectionChangedListener(new ISelectionChangedListener() {
-            public void selectionChanged(SelectionChangedEvent event) {
-                handleSelectionChanged(event);
-            }
-        });
-        viewer.addDoubleClickListener(new IDoubleClickListener() {
-            public void doubleClick(DoubleClickEvent event) {
-                handleDoubleClick(event);
-            }
-        });
-        viewer.getControl().addKeyListener(new KeyListener() {
-            public void keyPressed(KeyEvent event) {
-                handleKeyPressed(event);
-            }
-
-            public void keyReleased(KeyEvent event) {
-                handleKeyReleased(event);
-            }
-        });
-
-        actionGroup.fillActionBars(selection);
-
-        getSite().setSelectionProvider(viewer);
-
-        getSite().getPage().addPartListener(partListener);
-
-        if (memento != null)
-            restoreState(memento);
-        memento = null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IWorkbenchPart.
-     */
-    public void dispose() {
-        getSite().getPage().removePartListener(partListener);
-        super.dispose();
-    }
-
-    /**
-     * An editor has been activated.  Set the selection in this navigator
-     * to be the editor's input, if linking is enabled.
-     */
-    void editorActivated(IEditorPart editor) {
-        if (!isLinkingEnabled())
-            return;
-
-        IEditorInput input = editor.getEditorInput();
-        if (input instanceof IFileEditorInput) {
-            IFileEditorInput fileInput = (IFileEditorInput) input;
-            IFile file = fileInput.getFile();
-            ISelection newSelection = new StructuredSelection(file);
-            if (!viewer.getSelection().equals(newSelection)) {
-                viewer.setSelection(newSelection);
-            }
-        }
-
-    }
-
-    /**
-     * Called when the context menu is about to open.
-     */
-    void fillContextMenu(IMenuManager menu) {
-        actionGroup.setContext(new ActionContext(getViewer().getSelection()));
-        actionGroup.fillContextMenu(menu);
-    }
-
-    /** 
-     * Returns the initial input for the viewer.
-     * Tries to convert the input to a resource, either directly or via IAdaptable.
-     * If the resource is a container, it uses that.
-     * If the resource is a file, it uses its parent folder.
-     * If a resource could not be obtained, it uses the workspace root.
-     */
-    IContainer getInitialInput() {
-        IAdaptable input = getSite().getPage().getInput();
-        IResource resource = null;
-        if (input instanceof IResource) {
-            resource = (IResource) input;
-        } else {
-            resource = (IResource) input.getAdapter(IResource.class);
-        }
-        if (resource != null) {
-            switch (resource.getType()) {
-            case IResource.FILE:
-                return resource.getParent();
-            case IResource.FOLDER:
-            case IResource.PROJECT:
-            case IResource.ROOT:
-                return (IContainer) resource;
-            default:
-                // Unknown resource type.  Fall through.
-                break;
-            }
-        }
-        return ResourcesPlugin.getWorkspace().getRoot();
-    }
-
-    /**
-     * Returns the navigator's plugin.
-     */
-    public AbstractUIPlugin getPlugin() {
-        return (AbstractUIPlugin) Platform.getPlugin(PlatformUI.PLUGIN_ID);
-    }
-
-    /**
-     * Returns the current sorter.
-     * @since 2.0
-     */
-    public ResourceSorter getSorter() {
-        return (ResourceSorter) getViewer().getSorter();
-    }
-
-    /**
-     * Returns the tree viewer which shows the resource hierarchy.
-     * @since 2.0
-     */
-    public TreeViewer getViewer() {
-        return viewer;
-    }
-
-    /**
-     * Returns the shell to use for opening dialogs.
-     * Used in this class, and in the actions.
-     */
-    public Shell getShell() {
-        return getViewSite().getShell();
-    }
-
-    /**
-     * Returns the message to show in the status line.
-     *
-     * @param selection the current selection
-     * @return the status line message
-     */
-    String getStatusLineMessage(IStructuredSelection selection) {
-        if (selection.size() == 1) {
-            Object o = selection.getFirstElement();
-            if (o instanceof IResource) {
-                return ((IResource) o).getFullPath().makeRelative().toString();
-            } else {
-                return ResourceNavigatorMessages.ResourceNavigator_oneItemSelected;
-            }
-        }
-        if (selection.size() > 1) {
-            return NLS.bind(ResourceNavigatorMessages.ResourceNavigator_statusLine, new Integer(selection.size()));
-        }
-        return ""; //$NON-NLS-1$
-    }
-
-    /**
-     * Returns the tool tip text for the given element.
-     */
-    String getToolTipText(Object element) {
-        if (element instanceof IResource) {
-            IPath path = ((IResource) element).getFullPath();
-            if (path.isRoot()) {
-                return ResourceNavigatorMessages.ResourceManager_toolTip;
-            } else {
-                return path.makeRelative().toString();
-            }
-        } else {
-            return ((ILabelProvider) getViewer().getLabelProvider())
-                    .getText(element);
-        }
-    }
-
-    /**
-     * Handles double clicks in viewer.
-     * Opens editor if file double-clicked.
-     * @since 2.0
-     */
-    protected void handleDoubleClick(DoubleClickEvent event) {
-        IStructuredSelection selection = (IStructuredSelection) event
-                .getSelection();
-        Object element = selection.getFirstElement();
-
-        // 1GBZIA0: ITPUI:WIN2000 - Double-clicking in navigator should expand/collapse containers
-        if (viewer.isExpandable(element)) {
-            viewer.setExpandedState(element, !viewer.getExpandedState(element));
-        }
-
-    }
-
-    /**
-     * Handles selection changed in viewer.
-     * Updates global actions.
-     * Links to editor (if option enabled)
-     * @since 2.0
-     */
-    protected void handleSelectionChanged(SelectionChangedEvent event) {
-        IStructuredSelection sel = (IStructuredSelection) event.getSelection();
-        updateStatusLine(sel);
-        actionGroup.updateGlobalActions(sel);
-        actionGroup.selectionChanged(sel);
-        linkToEditor(sel);
-    }
-
-    /**
-     * Handles a key press in viewer. By default do nothing.
-     */
-    protected void handleKeyPressed(KeyEvent event) {
-
-    }
-
-    /**
-     * Handles a key release in viewer.
-     */
-    protected void handleKeyReleased(KeyEvent event) {
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IViewPart.
-     */
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        super.init(site, memento);
-        this.memento = memento;
-    }
-
-    /**
-     * Initializes a drill down adapter on the viewer.
-     */
-    void initDrillDownAdapter(TreeViewer viewer) {
-        DrillDownAdapter drillDownAdapter = new DrillDownAdapter(viewer) {
-            // need to update title whenever input changes;
-            // updateNavigationButtons is called whenever any of the drill down buttons are used
-            protected void updateNavigationButtons() {
-                super.updateNavigationButtons();
-                updateTitle();
-            }
-        };
-        drillDownAdapter.addNavigationActions(getViewSite().getActionBars()
-                .getToolBarManager());
-    }
-
-    /**
-     * Returns whether the preference to link navigator selection to active editor is enabled.
-     * @since 2.0
-     */
-    protected boolean isLinkingEnabled() {
-        IPreferenceStore store = getPlugin().getPreferenceStore();
-        return store.getBoolean(LINK_NAVIGATOR_TO_EDITOR);
-    }
-
-    /**
-     * Links to editor (if option enabled)
-     * @since 2.0
-     */
-    protected void linkToEditor(IStructuredSelection selection) {
-        if (!isLinkingEnabled())
-            return;
-
-        Object obj = selection.getFirstElement();
-        if (obj instanceof IFile && selection.size() == 1) {
-            IFile file = (IFile) obj;
-            IWorkbenchPage page = getSite().getPage();
-            IEditorReference editorArray[] = page.getEditorReferences();
-            for (int i = 0; i < editorArray.length; ++i) {
-                IEditorPart editor = editorArray[i].getEditor(true);
-                IEditorInput input = editor.getEditorInput();
-                if (input instanceof IFileEditorInput
-                        && file.equals(((IFileEditorInput) input).getFile())) {
-                    page.bringToTop(editor);
-                    return;
-                }
-            }
-        }
-    }
-
-    /**
-     *	Create self's action objects
-     */
-    protected void makeActions() {
-        actionGroup = new TestNavigatorActionGroup(this);
-    }
-
-    /**
-     * Restore the state of the receiver to the state described in
-     * momento.
-     * @since 2.0
-     */
-
-    protected void restoreState(IMemento memento) {
-    }
-
-    public void saveState(IMemento memento) {
-    }
-
-    /**
-     *	Reveal and select the passed element selection in self's visual component
-     */
-    public void selectReveal(ISelection selection) {
-        StructuredSelection ssel = convertSelection(selection);
-        if (!ssel.isEmpty()) {
-            getViewer().setSelection(ssel, true);
-        }
-    }
-
-    /**
-     * @see IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        getViewer().getTree().setFocus();
-    }
-
-    /**
-     * Note: For experimental use only.
-     * Sets the decorator for the navigator.
-     *
-     * @param decorator a label decorator or <code>null</code> for no decorations.
-     */
-    public void setLabelDecorator(ILabelDecorator decorator) {
-        DecoratingLabelProvider provider = (DecoratingLabelProvider) getViewer()
-                .getLabelProvider();
-        if (decorator == null) {
-            IDecoratorManager manager = getSite().getWorkbenchWindow()
-                    .getWorkbench().getDecoratorManager();
-            provider.setLabelDecorator(manager.getLabelDecorator());
-        } else {
-            provider.setLabelDecorator(decorator);
-        }
-    }
-
-    /**
-     * Updates the message shown in the status line.
-     *
-     * @param selection the current selection
-     */
-    void updateStatusLine(IStructuredSelection selection) {
-        String msg = getStatusLineMessage(selection);
-        getViewSite().getActionBars().getStatusLineManager().setMessage(msg);
-    }
-
-    /**
-     * Updates the title text and title tool tip.
-     * Called whenever the input of the viewer changes.
-     */
-    void updateTitle() {
-        Object input = getViewer().getInput();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        if (input == null || input.equals(workspace)
-                || input.equals(workspace.getRoot())) {
-            setContentDescription(""); //$NON-NLS-1$
-            setTitleToolTip(""); //$NON-NLS-1$
-        } else {
-            ILabelProvider labelProvider = (ILabelProvider) getViewer()
-                    .getLabelProvider();
-            setContentDescription(labelProvider.getText(input));
-            //$NON-NLS-1$
-            setTitleToolTip(getToolTipText(input));
-        }
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/MarkerImageProviderTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/MarkerImageProviderTest.java
deleted file mode 100644
index c2e085a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/MarkerImageProviderTest.java
+++ /dev/null
@@ -1,68 +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.tests.adaptable;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the markerImageProviders extension point.
- */
-public class MarkerImageProviderTest extends UITestCase {
-
-    public MarkerImageProviderTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests the static form of the extension, where just a file path is given.
-     */
-    public void testStatic() {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IMarker marker = null;
-        try {
-            marker = workspace.getRoot().createMarker(
-                    "org.eclipse.ui.tests.testmarker"); //$NON-NLS-1$
-        } catch (CoreException e) {
-            fail(e.getMessage());
-        }
-        IWorkbenchAdapter adapter = (IWorkbenchAdapter) marker
-                .getAdapter(IWorkbenchAdapter.class);
-        ImageDescriptor imageDesc = adapter.getImageDescriptor(marker);
-        assertNotNull(imageDesc);
-        assertTrue(imageDesc.toString().indexOf("anything") != -1); //$NON-NLS-1$
-    }
-
-    /**
-     * Tests the dynamic form of the extension, where an IMarkerImageProvider class is given.
-     */
-    public void testDynamic() {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IMarker marker = null;
-        try {
-            marker = workspace.getRoot().createMarker(
-                    "org.eclipse.ui.tests.testmarker2"); //$NON-NLS-1$
-        } catch (CoreException e) {
-            fail(e.getMessage());
-        }
-        IWorkbenchAdapter adapter = (IWorkbenchAdapter) marker
-                .getAdapter(IWorkbenchAdapter.class);
-        ImageDescriptor imageDesc = adapter.getImageDescriptor(marker);
-        assertNotNull(imageDesc);
-        assertTrue(imageDesc.toString().indexOf("anything") != -1); //$NON-NLS-1$
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/NullLabelDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/NullLabelDecorator.java
deleted file mode 100644
index e913764..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/NullLabelDecorator.java
+++ /dev/null
@@ -1,66 +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.ui.tests.adaptable;
-
-/*
- * This decorator tests the null cases
- */
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @version 	1.0
- * @author
- */
-public class NullLabelDecorator implements ILabelDecorator {
-
-    /*
-     * @see ILabelDecorator#decorateImage(Image, Object)
-     */
-    public Image decorateImage(Image image, Object element) {
-        return null;
-    }
-
-    /*
-     * @see ILabelDecorator#decorateText(String, Object)
-     */
-    public String decorateText(String text, Object element) {
-        return null;
-    }
-
-    /*
-     * @see IBaseLabelProvider#addListener(ILabelProviderListener)
-     */
-    public void addListener(ILabelProviderListener listener) {
-    }
-
-    /*
-     * @see IBaseLabelProvider#dispose()
-     */
-    public void dispose() {
-    }
-
-    /*
-     * @see IBaseLabelProvider#isLabelProperty(Object, String)
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /*
-     * @see IBaseLabelProvider#removeListener(ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/ResourceAction.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/ResourceAction.java
deleted file mode 100644
index 81c3e0b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/ResourceAction.java
+++ /dev/null
@@ -1,53 +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.ui.tests.adaptable;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.tests.decorators.TestDecoratorContributor;
-
-public class ResourceAction implements IObjectActionDelegate {
-
-    Object selectedItem;
-
-    /*
-     * @see IObjectActionDelegate#setActivePart(IAction, IWorkbenchPart)
-     */
-    public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-    }
-
-    /*
-     * @see IActionDelegate#run(IAction)
-     */
-    public void run(IAction action) {
-
-        if (selectedItem != null)
-            TestDecoratorContributor.contributor.refreshListeners(selectedItem);
-
-    }
-
-    /*
-     * @see IActionDelegate#selectionChanged(IAction, ISelection)
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        if (selection instanceof IStructuredSelection) {
-            IStructuredSelection structured = (IStructuredSelection) selection;
-            if (structured.isEmpty())
-                selectedItem = null;
-            else
-                selectedItem = structured.getFirstElement();
-        }
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/SelectionAdapterTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/SelectionAdapterTest.java
deleted file mode 100644
index ccbce01..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/SelectionAdapterTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.adaptable;
-
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.expressions.ICountable;
-import org.eclipse.core.expressions.IIterable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-/**
- * @since 3.3
- * 
- */
-public class SelectionAdapterTest extends TestCase {
-
-	public void testBasicSelectionEmpty() {
-		ISelection empty = new ISelection() {
-
-			public boolean isEmpty() {
-				return true;
-			}
-		};
-		ICountable countable = (ICountable) Platform.getAdapterManager()
-				.getAdapter(empty, ICountable.class);
-		assertEquals(0, countable.count());
-
-		IIterable iterate = (IIterable) Platform.getAdapterManager()
-				.getAdapter(empty, IIterable.class);
-		assertFalse(iterate.iterator().hasNext());
-	}
-
-	public void testBasicSelection() {
-		ISelection selection = new ISelection() {
-
-			public boolean isEmpty() {
-				return false;
-			}
-		};
-		ICountable countable = (ICountable) Platform.getAdapterManager()
-				.getAdapter(selection, ICountable.class);
-		assertEquals(1, countable.count());
-
-		IIterable iterate = (IIterable) Platform.getAdapterManager()
-				.getAdapter(selection, IIterable.class);
-		Iterator iterator = iterate.iterator();
-		assertTrue(iterator.hasNext());
-		Object o = iterator.next();
-		assertTrue(o == selection);
-	}
-
-	public void testStructuredSelectionEmpty() {
-		StructuredSelection selection = new StructuredSelection();
-		ICountable countable = (ICountable) Platform.getAdapterManager()
-				.getAdapter(selection, ICountable.class);
-		assertEquals(0, countable.count());
-
-		IIterable iterate = (IIterable) Platform.getAdapterManager()
-				.getAdapter(selection, IIterable.class);
-		assertFalse(iterate.iterator().hasNext());
-	}
-
-	public void testStructuredSelectionOne() {
-		String obj = "me";
-		StructuredSelection selection = new StructuredSelection(obj);
-		ICountable countable = (ICountable) Platform.getAdapterManager()
-				.getAdapter(selection, ICountable.class);
-		assertEquals(1, countable.count());
-
-		IIterable iterate = (IIterable) Platform.getAdapterManager()
-				.getAdapter(selection, IIterable.class);
-		Iterator iterator = iterate.iterator();
-		assertTrue(iterator.hasNext());
-		Object o = iterator.next();
-		assertTrue(o == obj);
-		assertFalse(iterator.hasNext());
-	}
-
-	public void testStructuredSelection() {
-		String obj = "me";
-		String obj2 = "you";
-		StructuredSelection selection = new StructuredSelection(new Object[] {
-				obj, obj2 });
-		ICountable countable = (ICountable) Platform.getAdapterManager()
-				.getAdapter(selection, ICountable.class);
-		assertEquals(2, countable.count());
-
-		IIterable iterate = (IIterable) Platform.getAdapterManager()
-				.getAdapter(selection, IIterable.class);
-		Iterator iterator = iterate.iterator();
-		assertTrue(iterator.hasNext());
-		Object o = iterator.next();
-		assertTrue(o == obj);
-		o = iterator.next();
-		assertTrue(o == obj2);
-		assertFalse(iterator.hasNext());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableContentProvider.java
deleted file mode 100644
index fcffc7a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableContentProvider.java
+++ /dev/null
@@ -1,211 +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.ui.tests.adaptable;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * Provides tree contents for objects that have the IWorkbenchAdapter
- * adapter registered. 
- */
-public class TestAdaptableContentProvider implements ITreeContentProvider,
-        IResourceChangeListener {
-    protected Viewer viewer;
-
-    /* (non-Javadoc)
-     * Method declared on IContentProvider.
-     */
-    public void dispose() {
-        if (viewer != null) {
-            Object obj = viewer.getInput();
-            if (obj instanceof IWorkspace) {
-                IWorkspace workspace = (IWorkspace) obj;
-                workspace.removeResourceChangeListener(this);
-            } else if (obj instanceof IContainer) {
-                IWorkspace workspace = ((IContainer) obj).getWorkspace();
-                workspace.removeResourceChangeListener(this);
-            }
-        }
-    }
-
-    /**
-     * Returns the implementation of IWorkbenchAdapter for the given
-     * object.  Returns null if the adapter is not defined or the
-     * object is not adaptable.
-     */
-    protected IWorkbenchAdapter getAdapter(Object o) {
-        return TestAdaptableWorkbenchAdapter.getInstance();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ITreeContentProvider.
-     */
-    public Object[] getChildren(Object element) {
-        IWorkbenchAdapter adapter = getAdapter(element);
-        if (adapter != null) {
-            return adapter.getChildren(element);
-        }
-        return new Object[0];
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IStructuredContentProvider.
-     */
-    public Object[] getElements(Object element) {
-        return getChildren(element);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ITreeContentProvider.
-     */
-    public Object getParent(Object element) {
-        IWorkbenchAdapter adapter = getAdapter(element);
-        if (adapter != null) {
-            return adapter.getParent(element);
-        }
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ITreeContentProvider.
-     */
-    public boolean hasChildren(Object element) {
-        return getChildren(element).length > 0;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IContentProvider.
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-        this.viewer = viewer;
-        IWorkspace oldWorkspace = null;
-        IWorkspace newWorkspace = null;
-        if (oldInput instanceof IWorkspace) {
-            oldWorkspace = (IWorkspace) oldInput;
-        } else if (oldInput instanceof IContainer) {
-            oldWorkspace = ((IContainer) oldInput).getWorkspace();
-        }
-        if (newInput instanceof IWorkspace) {
-            newWorkspace = (IWorkspace) newInput;
-        } else if (newInput instanceof IContainer) {
-            newWorkspace = ((IContainer) newInput).getWorkspace();
-        }
-        if (oldWorkspace != newWorkspace) {
-            if (oldWorkspace != null) {
-                oldWorkspace.removeResourceChangeListener(this);
-            }
-            if (newWorkspace != null) {
-                newWorkspace.addResourceChangeListener(this,
-                        IResourceChangeEvent.POST_CHANGE);
-            }
-        }
-    }
-
-    /**
-     * Process a resource delta.  
-     */
-    protected void processDelta(IResourceDelta delta) {
-        // This method runs inside a syncExec.  The widget may have been destroyed
-        // by the time this is run.  Check for this and do nothing if so.
-        Control ctrl = viewer.getControl();
-        if (ctrl == null || ctrl.isDisposed())
-            return;
-
-        // Get the affected resource
-        IResource resource = delta.getResource();
-
-        // If any children have changed type, just do a full refresh of this parent,
-        // since a simple update on such children won't work, 
-        // and trying to map the change to a remove and add is too dicey.
-        // The case is: folder A renamed to existing file B, answering yes to overwrite B.
-        IResourceDelta[] affectedChildren = delta
-                .getAffectedChildren(IResourceDelta.CHANGED);
-        for (int i = 0; i < affectedChildren.length; i++) {
-            if ((affectedChildren[i].getFlags() & IResourceDelta.TYPE) != 0) {
-                ((StructuredViewer) viewer).refresh(resource);
-                return;
-            }
-        }
-
-        // Check the flags for changes the Navigator cares about.
-        // See ResourceLabelProvider for the aspects it cares about.
-        // Notice we don't care about F_CONTENT or F_MARKERS currently.
-        int changeFlags = delta.getFlags();
-        if ((changeFlags & (IResourceDelta.OPEN | IResourceDelta.SYNC)) != 0) {
-            ((StructuredViewer) viewer).update(resource, null);
-        }
-
-        // Handle changed children .
-        for (int i = 0; i < affectedChildren.length; i++) {
-            processDelta(affectedChildren[i]);
-        }
-
-        // Process removals before additions, to avoid multiple equal elements in the viewer.
-
-        // Handle removed children. Issue one update for all removals.
-        affectedChildren = delta.getAffectedChildren(IResourceDelta.REMOVED);
-        if (affectedChildren.length > 0) {
-            Object[] affected = new Object[affectedChildren.length];
-            for (int i = 0; i < affectedChildren.length; i++)
-                affected[i] = affectedChildren[i].getResource();
-            if (viewer instanceof AbstractTreeViewer) {
-                ((AbstractTreeViewer) viewer).remove(affected);
-            } else {
-                ((StructuredViewer) viewer).refresh(resource);
-            }
-        }
-
-        // Handle added children. Issue one update for all insertions.
-        affectedChildren = delta.getAffectedChildren(IResourceDelta.ADDED);
-        if (affectedChildren.length > 0) {
-            Object[] affected = new Object[affectedChildren.length];
-            for (int i = 0; i < affectedChildren.length; i++)
-                affected[i] = affectedChildren[i].getResource();
-            if (viewer instanceof AbstractTreeViewer) {
-                ((AbstractTreeViewer) viewer).add(resource, affected);
-            } else {
-                ((StructuredViewer) viewer).refresh(resource);
-            }
-        }
-    }
-
-    /**
-     * The workbench has changed.  Process the delta and issue updates to the viewer,
-     * inside the UI thread.
-     *
-     * @see IResourceChangeListener#resourceChanged
-     */
-    public void resourceChanged(final IResourceChangeEvent event) {
-        final IResourceDelta delta = event.getDelta();
-        Control ctrl = viewer.getControl();
-        if (ctrl != null && !ctrl.isDisposed()) {
-            // Do a sync exec, not an async exec, since the resource delta
-            // must be traversed in this method.  It is destroyed
-            // when this method returns.
-            ctrl.getDisplay().syncExec(new Runnable() {
-                public void run() {
-                    processDelta(delta);
-                }
-            });
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableWorkbenchAdapter.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableWorkbenchAdapter.java
deleted file mode 100644
index 4fc40ae..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestAdaptableWorkbenchAdapter.java
+++ /dev/null
@@ -1,156 +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.ui.tests.adaptable;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * @version 	1.0
- * @author
- */
-public class TestAdaptableWorkbenchAdapter extends LabelProvider implements
-        IWorkbenchAdapter {
-
-    private static TestAdaptableWorkbenchAdapter singleton = new TestAdaptableWorkbenchAdapter();
-
-    public static TestAdaptableWorkbenchAdapter getInstance() {
-        return singleton;
-    }
-
-    public TestAdaptableWorkbenchAdapter() {
-    }
-
-    /*
-     * @see IWorkbenchAdapter#getChildren(Object)
-     */
-    public Object[] getChildren(Object o) {
-        if (o instanceof AdaptableResourceWrapper)
-            return ((AdaptableResourceWrapper) o).getChildren();
-        if (o instanceof IResource) {
-            AdaptableResourceWrapper wrapper = new AdaptableResourceWrapper(
-                    (IResource) o);
-            return wrapper.getChildren();
-        }
-        return new Object[0];
-    }
-
-    /*
-     * @see IWorkbenchAdapter#getImageDescriptor(Object)
-     */
-    public ImageDescriptor getImageDescriptor(Object object) {
-        return null;
-    }
-
-    /*
-     * @see IWorkbenchAdapter#getLabel(Object)
-     */
-    public String getLabel(Object o) {
-        if (o instanceof AdaptableResourceWrapper)
-            return ((AdaptableResourceWrapper) o).getLabel();
-        else
-            return null;
-    }
-
-    /*
-     * @see IWorkbenchAdapter#getParent(Object)
-     */
-    public Object getParent(Object o) {
-        if (o instanceof AdaptableResourceWrapper)
-            return ((AdaptableResourceWrapper) o).getParent();
-        else
-            return null;
-    }
-
-    /**
-     * Returns an image descriptor that is based on the given descriptor,
-     * but decorated with additional information relating to the state
-     * of the provided object.
-     *
-     * Subclasses may reimplement this method to decorate an object's
-     * image.
-     * @see org.eclipse.jface.resource.CompositeImage
-     */
-    protected ImageDescriptor decorateImage(ImageDescriptor input,
-            Object element) {
-        return input;
-    }
-
-    /**
-     * Returns a label that is based on the given label,
-     * but decorated with additional information relating to the state
-     * of the provided object.
-     *
-     * Subclasses may implement this method to decorate an object's
-     * label.
-     */
-    protected String decorateText(String input, Object element) {
-        return input;
-    }
-
-    /* (non-Javadoc)
-     * Method declared on IBaseLabelProvider
-     */
-    /**
-     * Disposes of all allocated images.
-     */
-    public final void dispose() {
-    }
-
-    /**
-     * Returns the implementation of IWorkbenchAdapter for the given
-     * object.  Returns <code>null</code> if the adapter is not defined or the
-     * object is not adaptable.
-     */
-    protected final IWorkbenchAdapter getAdapter(Object o) {
-        if (!(o instanceof IAdaptable)) {
-            return null;
-        }
-        return (IWorkbenchAdapter) ((IAdaptable) o)
-                .getAdapter(IWorkbenchAdapter.class);
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ILabelProvider
-     */
-    public final Image getImage(Object element) {
-        //obtain the base image by querying the element
-        IWorkbenchAdapter adapter = getAdapter(element);
-        if (adapter == null)
-            return null;
-        ImageDescriptor descriptor = adapter.getImageDescriptor(element);
-        if (descriptor == null)
-            return null;
-
-        //add any annotations to the image descriptor
-        descriptor = decorateImage(descriptor, element);
-
-        return descriptor.createImage();
-    }
-
-    /* (non-Javadoc)
-     * Method declared on ILabelProvider
-     */
-    public final String getText(Object element) {
-        //query the element for its label
-        IWorkbenchAdapter adapter = getAdapter(element);
-        if (adapter == null)
-            return ""; //$NON-NLS-1$
-        String label = adapter.getLabel(element);
-
-        //return the decorated label
-        return decorateText(label, element);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestMarkerImageProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestMarkerImageProvider.java
deleted file mode 100644
index edbba88..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestMarkerImageProvider.java
+++ /dev/null
@@ -1,23 +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.tests.adaptable;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.ui.internal.ide.IMarkerImageProvider;
-
-/**
- * A test marker image provider.
- */
-public class TestMarkerImageProvider implements IMarkerImageProvider {
-    public String getImagePath(IMarker marker) {
-        return "icons/anything.gif"; //$NON-NLS-1$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestNavigatorActionGroup.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestNavigatorActionGroup.java
deleted file mode 100644
index b1a8d8d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/TestNavigatorActionGroup.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.adaptable;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.actions.AddBookmarkAction;
-import org.eclipse.ui.actions.NewWizardMenu;
-import org.eclipse.ui.dialogs.PropertyDialogAction;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-
-public class TestNavigatorActionGroup extends ActionGroup {
-
-    private AdaptedResourceNavigator navigator;
-
-    private AddBookmarkAction addBookmarkAction;
-
-    private PropertyDialogAction propertyDialogAction;
-
-
-    public TestNavigatorActionGroup(AdaptedResourceNavigator navigator) {
-        this.navigator = navigator;
-    }
-
-    protected void makeActions() {
-        Shell shell = navigator.getSite().getShell();
-        addBookmarkAction = new AddBookmarkAction(navigator.getSite(), true);
-        propertyDialogAction = new PropertyDialogAction(shell, navigator
-                .getViewer());
-    }
-
-    /**
-     * @see ActionGroup#fillContextMenu(IMenuManager)
-     */
-    public void fillContextMenu(IMenuManager menu) {
-        IStructuredSelection selection = (IStructuredSelection) getContext()
-                .getSelection();
-
-        MenuManager newMenu = new MenuManager(ResourceNavigatorMessages.ResourceNavigator_new);
-        menu.add(newMenu);
-        newMenu.add(new NewWizardMenu(navigator.getSite().getWorkbenchWindow()));
-
-        //Update the selections of those who need a refresh before filling
-        addBookmarkAction.selectionChanged(selection);
-        menu.add(addBookmarkAction);
-
-        menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-        menu
-                .add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
-                        + "-end")); //$NON-NLS-1$
-        menu.add(new Separator());
-
-        propertyDialogAction.selectionChanged(selection);
-        if (propertyDialogAction.isApplicableForSelection())
-            menu.add(propertyDialogAction);
-    }
-
-    /*
-     * @see ActionFactory#fillActionBarMenu(IMenuManager, IStructuredSelection)
-     */
-    public void fillActionBarMenu(IMenuManager menu,
-            IStructuredSelection selection) {
-    }
-
-    /**
-     * Updates the global actions with the given selection.
-     * Be sure to invoke after actions objects have updated, since can* methods delegate to action objects.
-     */
-    public void updateGlobalActions(IStructuredSelection selection) {
-
-    }
-
-    /**
-     * Contributes actions to the local tool bar and local pulldown menu.
-     * @since 2.0
-     */
-    public void fillActionBars(IStructuredSelection selection) {
-    }
-
-    /**
-     * Update the selection for new selection.
-     */
-    public void selectionChanged(IStructuredSelection selection) {
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java
deleted file mode 100644
index be9225b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/adaptable/WorkingSetTestCase.java
+++ /dev/null
@@ -1,115 +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.ui.tests.adaptable;
-
-import org.eclipse.core.internal.propertytester.ResourceMappingPropertyTester;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.resources.mapping.ResourceTraversal;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.ui.IResourceActionFilter;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test that Working Sets adapt to resource mappings
- */
-public class WorkingSetTestCase extends UITestCase {
-
-    public WorkingSetTestCase(String testName) {
-        super(testName);
-    }
-    
-    private ResourceMapping getResourceMapping(IWorkingSet set) {
-        return (ResourceMapping)((IAdaptable)set).getAdapter(ResourceMapping.class);
-    }
-    
-    private IWorkbenchAdapter getWorkbenchAdapter(IWorkingSet set) {
-        return (IWorkbenchAdapter)((IAdaptable)set).getAdapter(IWorkbenchAdapter.class);
-    }
-    
-    private void assertMatches(ResourceMapping mapping, IResource[] resources) throws CoreException {
-    	assertTrue(mapping != null);
-        ResourceTraversal[] traversals = mapping.getTraversals(null, null);
-        assertTrue(traversals.length == resources.length);
-        for (int i = 0; i < traversals.length; i++) {
-            ResourceTraversal traversal = traversals[i];
-            boolean found = false;
-            for (int j = 0; j < resources.length; j++) {
-                IAdaptable element = resources[j];
-                if (element.equals(traversal.getResources()[0])) {
-                    found = true;
-                }
-            }
-            assertTrue(found);
-        }
-        
-    }
-    
-    private IProject createProject(String name) throws CoreException {
-        IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(getName() + name);
-        project.create(null);
-        project.open(IResource.NONE, null);
-        return project;
-    }
-    
-    public void testWorkSetAdaptation() throws CoreException {
-        
-        // First, test that the set adapts to a ResourceMapping
-        IWorkingSetManager man = getWorkbench().getWorkingSetManager();
-        IResource[] resources = new IResource[3];
-        resources[0] = createProject("Project0");
-        resources[1] = createProject("Project1");
-        resources[2] = createProject("Project2");
-        IWorkingSet set = man.createWorkingSet("test", resources);
-        ResourceMapping mapping = getResourceMapping(set);
-        assertMatches(mapping, resources);
-        
-        // Next, test that the set adapts to an IWorkbenchAdapter
-        IWorkbenchAdapter adapter = getWorkbenchAdapter(set);
-        String name = adapter.getLabel(set);
-        assertEquals("test", name);
-        
-        // Test the persistent property filter
-        QualifiedName key = new QualifiedName("org.eclipse.ui.test", "set");
-        ResourceMappingPropertyTester tester = new ResourceMappingPropertyTester();
-        
-        // Test with no persistent properties set
-        assertFalse(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "one"}, null));
-
-        // Test with one set on a subset of projects
-        resources[0].setPersistentProperty(key, "one");
-        assertTrue(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "one"}, null));
-        assertFalse(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "wrong"}, null));
-        
-        // Test again with the property set to two different values
-        resources[1].setPersistentProperty(key, "two");
-        assertFalse(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "one"}, null));
-        assertFalse(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "two"}, null));
-
-        // Test with them all set
-        resources[1].setPersistentProperty(key, "one");
-        resources[2].setPersistentProperty(key, "one");
-        assertTrue(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "one"}, null));
-        assertFalse(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "two"}, null));
-
-        // Test with a closed project in the set
-        ((IProject)resources[0]).close(null);
-        assertTrue(tester.test(getResourceMapping(set), IResourceActionFilter.PROJECT_PERSISTENT_PROPERTY, new Object[] { "org.eclipse.ui.test.set", "one"}, null));
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java
deleted file mode 100644
index e9026bb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ApiTestSuite.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.api.workbenchpart.ArbitraryPropertyTest;
-import org.eclipse.ui.tests.api.workbenchpart.LifecycleViewTest;
-import org.eclipse.ui.tests.api.workbenchpart.OverriddenTitleTest;
-import org.eclipse.ui.tests.api.workbenchpart.RawIViewPartTest;
-import org.eclipse.ui.tests.api.workbenchpart.ViewPartTitleTest;
-import org.eclipse.ui.tests.ide.api.FileEditorInputTest;
-
-/**
- * Test all areas of the UI API.
- */
-public class ApiTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new ApiTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public ApiTestSuite() {
-        addTest(new TestSuite(IPageLayoutTest.class));
-        addTest(new TestSuite(PlatformUITest.class));
-        addTest(new TestSuite(IWorkbenchTest.class));
-        addTest(new TestSuite(IWorkbenchWindowTest.class));
-        addTest(new TestSuite(IWorkbenchPageTest.class));
-        addTest(new TestSuite(IDeprecatedWorkbenchPageTest.class));
-        addTest(new TestSuite(IActionFilterTest.class));
-        addTest(new TestSuite(IPageListenerTest.class));
-        addTest(new TestSuite(IPageServiceTest.class));
-        addTest(new TestSuite(IPerspectiveRegistryTest.class));
-        addTest(new TestSuite(IPerspectiveDescriptorTest.class));
-        addTest(new TestSuite(IFileEditorMappingTest.class));
-        addTest(new TestSuite(IEditorDescriptorTest.class));
-        addTest(new TestSuite(IEditorRegistryTest.class));
-        addTest(new TestSuite(IPerspectiveListenerTest.class));
-        addTest(new TestSuite(IWorkbenchWindowActionDelegateTest.class));
-        addTest(new TestSuite(IViewActionDelegateTest.class));
-        addTest(new TestSuite(IViewSiteTest.class));
-        addTest(new TestSuite(IEditorSiteTest.class));
-        addTest(new TestSuite(IActionBarsTest.class));
-        addTest(new TestSuite(IViewPartTest.class));
-        addTest(new TestSuite(IEditorPartTest.class));
-        addTest(new TestSuite(IEditorActionBarContributorTest.class));
-        addTest(new TestSuite(IPartServiceTest.class));
-        addTest(new TestSuite(ISelectionServiceTest.class));
-        addTest(new TestSuite(IWorkingSetTest.class));
-        addTest(new TestSuite(IWorkingSetManagerTest.class));
-        addTest(new TestSuite(IWorkingSetElementAdapterTests.class));
-        addTest(new TestSuite(IAggregateWorkingSetTest.class));
-        addTest(new TestSuite(MockWorkingSetTest.class));
-        addTest(new TestSuite(Bug42616Test.class));
-        addTest(new TestSuite(StickyViewTest.class));
-        addTest(new TestSuite(EditorIconTest.class));
-        addTest(new TestSuite(RawIViewPartTest.class));
-        addTest(new TestSuite(ViewPartTitleTest.class));
-        addTest(new TestSuite(OverriddenTitleTest.class));
-        addTest(new TestSuite(UIJobTest.class));
-        addTest(new TestSuite(Bug75118Test.class));
-        addTest(new TestSuite(FileEditorInputTest.class));
-        addTest(new TestSuite(IEditorMatchingStrategyTest.class));
-        addTest(new TestSuite(XMLMementoTest.class));
-        addTest(new TestSuite(TrimLayoutTest.class));
-        addTest(new TestSuite(IWorkbenchPartTestableTests.class));
-        addTest(new TestSuite(ArbitraryPropertyTest.class));
-        addTest(new TestSuite(LifecycleViewTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/BadElementFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/BadElementFactory.java
deleted file mode 100644
index c0b4b94..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/BadElementFactory.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IElementFactory;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPersistableElement;
-
-/**
- * Simple factory implementation that will fail on command. This is used to test
- * that working set restoration does not die if one of the factories dies.
- * 
- * @since 3.4
- * 
- */
-public class BadElementFactory implements IElementFactory {
-
-	/**
-	 * Set to cause the factory to fail.
-	 */
-	public static boolean fail = false;
-	
-
-	/**
-	 * Set to true when {@link #createElement(IMemento)} is called while fail is true.
-	 */
-	public static boolean failAttempted = false;
-
-	public static class BadElementInstance implements IAdaptable,
-			IPersistableElement {
-
-		/**
-		 * Set to cause save to fail.
-		 */
-		public static boolean fail = false;
-		
-
-		/**
-		 * Set to true when {@link #saveState(IMemento)} is called while fail is true.
-		 */
-		public static boolean failAttempted = false;
-
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			if (adapter.equals(IPersistableElement.class))
-				return this;
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IPersistableElement#getFactoryId()
-		 */
-		public String getFactoryId() {
-			return "org.eclipse.ui.tests.badFactory";
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
-		 */
-		public void saveState(IMemento memento) {
-			if (fail) {
-				failAttempted = true;
-				throw new RuntimeException();
-			}
-
-		}
-
-	}
-;
-
-	public IAdaptable createElement(IMemento memento) {
-		if (fail) {
-			failAttempted = true;
-			throw new RuntimeException();
-		}
-		return new BadElementInstance();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug42616Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug42616Test.java
deleted file mode 100644
index 802d838..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug42616Test.java
+++ /dev/null
@@ -1,44 +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.tests.api;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test to ensure that <code>WorkbenchPlugin.createExtension()</code> will only 
- * throw <code>CoreException</code>s if there is a problem creating the 
- * extension.
- * 
- * @since 3.0
- */
-public class Bug42616Test extends UITestCase {
-
-    /**
-     * @param testName
-     */
-    public Bug42616Test(String testName) {
-        super(testName);
-    }
-
-    public void testErrorCondition() {
-        try {
-            WorkbenchPlugin.createExtension(null, null);
-            fail("createExtension with nulls succeeded");
-        } catch (CoreException e) {
-            // ensure that exception has a root cause.
-            assertNotNull("Cause is null", e.getStatus().getException());
-        } catch (Throwable t) {
-            fail("Throwable not wrapped in core exception.");
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug75118Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug75118Test.java
deleted file mode 100644
index 8b66381..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/Bug75118Test.java
+++ /dev/null
@@ -1,54 +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.tests.api;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.dialogs.WorkbenchWizardElement;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.internal.registry.WizardsRegistryReader;
-
-/**
- * @since 3.1
- */
-public class Bug75118Test extends TestCase {
-
-	/**
-	 * 
-	 */
-	public Bug75118Test() {
-		super();
-	}
-
-	/**
-	 * @param name
-	 */
-	public Bug75118Test(String name) {
-		super(name);
-	}
-
-	public void testWizards() {
-		WizardsRegistryReader reader = new WizardsRegistryReader(
-				PlatformUI.PLUGIN_ID, IWorkbenchRegistryConstants.PL_NEW);
-		WorkbenchWizardElement [] primaryWizards = reader.getPrimaryWizards();
-		Set wizardSet = new HashSet(Arrays.asList(primaryWizards));
-		
-		//any duplicates would have been removed by adding it to the set
-		//so if the sizes are different something has been removed - ie:
-		//a duplicate
-		assertEquals(primaryWizards.length, wizardSet.size());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DeprecatedSessionRestoreTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DeprecatedSessionRestoreTest.java
deleted file mode 100644
index 398afc0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DeprecatedSessionRestoreTest.java
+++ /dev/null
@@ -1,101 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * SessionRestoreTest runs the second half of our session
- * presistance tests.
- * 
- */
-public class DeprecatedSessionRestoreTest extends UITestCase {
-
-    /** 
-     * Construct an instance.
-     */
-    public DeprecatedSessionRestoreTest(String arg) {
-        super(arg);
-    }
-
-    /**
-     * Generates a session state in the workbench.
-     */
-    public void testRestoreSession() throws Throwable {
-        IWorkbenchWindow[] windows;
-        IWorkbenchPage[] pages;
-
-        // Get windows.
-        windows = fWorkbench.getWorkbenchWindows();
-        assertEquals(windows.length, 3);
-
-        // First window contains empty perspective.
-        pages = windows[0].getPages();
-        assertEquals(pages.length, 1);
-        assertEquals(pages[0].getPerspective().getId(),
-                EmptyPerspective.PERSP_ID);
-
-        // Second window contains empty + session.
-        pages = windows[1].getPages();
-        assertEquals(pages.length, 2);
-        assertEquals(pages[0].getPerspective().getId(),
-                EmptyPerspective.PERSP_ID);
-        assertEquals(pages[1].getPerspective().getId(), SessionPerspective.ID);
-        testSessionView(pages[1]);
-
-        // Third window contains 2 sessions.
-        pages = windows[2].getPages();
-        assertEquals(pages.length, 2);
-        assertEquals(pages[0].getPerspective().getId(), SessionPerspective.ID);
-        assertEquals(pages[1].getPerspective().getId(), SessionPerspective.ID);
-        testSessionView(pages[0]);
-        testSessionView(pages[1]);
-
-        // Last page contains 3 editors.
-        IEditorPart[] editors = pages[1].getEditors();
-        assertEquals(editors.length, 3);
-        testSessionEditor(editors[0], SessionCreateTest.TEST_FILE_1);
-        testSessionEditor(editors[1], SessionCreateTest.TEST_FILE_2);
-        testSessionEditor(editors[2], SessionCreateTest.TEST_FILE_3);
-    }
-
-    /**
-     * Tests the session view within a page.
-     */
-    private void testSessionView(IWorkbenchPage page) {
-        IViewPart view = page.findView(SessionView.VIEW_ID);
-        assertNotNull(view);
-        SessionView sessionView = (SessionView) view;
-        sessionView.testMementoState(this);
-    }
-
-    /**
-     * Tests the state of a session editor.
-     */
-    private void testSessionEditor(IEditorPart part, String fileName) {
-        IEditorSite site = part.getEditorSite();
-        assertEquals(site.getId(), MockEditorPart.ID1);
-        IEditorInput input = part.getEditorInput();
-        assertTrue(input instanceof IFileEditorInput);
-        IFile file = ((IFileEditorInput) input).getFile();
-        assertEquals(fileName, file.getName());
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyService.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyService.java
deleted file mode 100644
index c5dc4bd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyService.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.ui.internal.services.INestable;
-
-/**
- * 
- * @since 3.5
- * @author Prakash G.R.
- * 
- */
-public class DummyService implements INestable {
-
-	private boolean active;
-
-
-	public boolean isActive() {
-		return active;
-	}
-	
-	public void activate() {
-		active = true;
-	}
-
-	
-	public void deactivate() {
-		active = false;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyServiceFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyServiceFactory.java
deleted file mode 100644
index da6f60c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/DummyServiceFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.ui.services.AbstractServiceFactory;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * 
- * @since 3.5
- * @author Prakash G.R.
- *
- */
-public class DummyServiceFactory extends AbstractServiceFactory {
-	
-	public Object create(Class serviceInterface, IServiceLocator parentLocator,
-			IServiceLocator locator) {
-		if(serviceInterface.equals(DummyService.class))
-			return new DummyService();
-		return null;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/EditorIconTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/EditorIconTest.java
deleted file mode 100644
index 6aa6c59..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/EditorIconTest.java
+++ /dev/null
@@ -1,97 +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.tests.api;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.tests.harness.util.ImageTests;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests to ensure that various icon scenarios work.  These are tested on 
- * editors but should be applicable for any client of 
- * AbstractUIPlugin.imageDescriptorFromPlugin()
- * 
- * @since 3.0
- */
-public class EditorIconTest extends UITestCase {
-
-    /**
-     * @param testName
-     */
-    public EditorIconTest(String testName) {
-        super(testName);
-    }
-
-    public void testDependantBundleIcon() {
-        Image i1 = null;
-        Image i2 = null;
-        
-        try {
-	        i1 = fWorkbench.getEditorRegistry().getDefaultEditor(
-	                "foo.icontest1").getImageDescriptor().createImage();
-	        i2 = AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui",
-	                "icons/full/obj16/font.gif").createImage();
-	        ImageTests.assertEquals(i1, i2);
-        }
-        finally {
-        	if (i1 != null) {
-        		i1.dispose();
-        	}
-        	if (i2 != null) {
-        		i2.dispose();
-        	}
-        }
-    }
-
-    public void testNonDependantBundleIcon() {
-        Image i1 = null;
-        Image i2 = null;
-        try {
-	        i1 = fWorkbench.getEditorRegistry().getDefaultEditor(
-	                "foo.icontest2").getImageDescriptor().createImage();
-	        i2 = AbstractUIPlugin.imageDescriptorFromPlugin(
-	                "org.eclipse.jdt.ui", "icons/full/obj16/class_obj.gif")
-	                .createImage();
-	        ImageTests.assertEquals(i1, i2);
-        }
-        finally {
-        	if (i1 != null) {
-        		i1.dispose();
-        	}
-        	if (i2 != null) {
-        		i2.dispose();
-        	}
-        }	        
-    }
-
-    public void testBadIcon() {
-        Image i1 = null;
-        Image i2 = null;
-        
-        try {
-	        i1 = fWorkbench.getEditorRegistry().getDefaultEditor(
-	                "foo.icontest3").getImageDescriptor().createImage();
-	        i2 = AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui",
-	                "icons/full/obj16/file_obj.gif").createImage();
-	        ImageTests.assertEquals(i1, i2);
-        }
-        finally {
-        	if (i1 != null) {
-        		i1.dispose();
-        	}
-        	if (i2 != null) {
-        		i2.dispose();
-        	}
-        }	        
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/GenericCommandActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/GenericCommandActionDelegate.java
deleted file mode 100644
index 7b59d3d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/GenericCommandActionDelegate.java
+++ /dev/null
@@ -1,243 +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.tests.api;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * This action delegate can be used to specify a command with or without
- * parameters be called from an &lt;action/&gt; specified in actionSets,
- * editorActions, viewActions, or popupMenus.
- */
-public class GenericCommandActionDelegate implements
-		IWorkbenchWindowActionDelegate, IViewActionDelegate,
-		IEditorActionDelegate, IObjectActionDelegate, IExecutableExtension {
-
-	/**
-	 * The commandId parameter needed when using the &lt;class/&gt; form for
-	 * this IActionDelegate. Value is "commandId".
-	 */
-	public static final String PARM_COMMAND_ID = "commandId";
-
-	private String commandId = null;
-
-	private Map parameterMap = null;
-
-	private ParameterizedCommand parameterizedCommand = null;
-
-	private IHandlerService handlerService = null;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-		handlerService = null;
-		parameterizedCommand = null;
-		parameterMap = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		if (handlerService == null) {
-			// what, no handler service ... no problem
-			return;
-		}
-		try {
-			if (commandId != null) {
-				handlerService.executeCommand(commandId, null);
-			} else if (parameterizedCommand != null) {
-				handlerService.executeCommand(parameterizedCommand, null);
-			}
-			// else there is no command for this delegate
-		} catch (Exception e) {
-			// exceptions reduced for brevity
-			// and we won't just do a print out :-)
-		}
-	}
-
-	/*
-	 * (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) {
-		// we don't care, handlers get their selection from the
-		// ExecutionEvent application context
-	}
-
-	/*
-	 * (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 {
-		String id = config.getAttribute(IWorkbenchRegistryConstants.ATT_ID);
-		// save the data until our init(*) call, where we can get
-		// the services.
-		if (data instanceof String) {
-			commandId = (String) data;
-		} else if (data instanceof Map) {
-			parameterMap = (Map) data;
-			if (parameterMap.get(PARM_COMMAND_ID) == null) {
-				Status status = new Status(IStatus.ERROR,
-						"org.eclipse.ui.tests", "The '" + id
-								+ "' action won't work without a commandId");
-				throw new CoreException(status);
-			}
-		} else {
-			Status status = new Status(
-					IStatus.ERROR,
-					"org.eclipse.ui.tests",
-					"The '"
-							+ id
-							+ "' action won't work without some initialization parameters");
-			throw new CoreException(status);
-		}
-	}
-
-	/**
-	 * Build a command from the executable extension information.
-	 * 
-	 * @param commandService
-	 *            to get the Command object
-	 */
-	private void createCommand(ICommandService commandService) {
-		String id = (String) parameterMap.get(PARM_COMMAND_ID);
-		if (id == null) {
-			return;
-		}
-		if (parameterMap.size() == 1) {
-			commandId = id;
-			return;
-		}
-		try {
-			Command cmd = commandService.getCommand(id);
-			if (!cmd.isDefined()) {
-				// command not defined? no problem ...
-				return;
-			}
-			ArrayList parameters = new ArrayList();
-			Iterator i = parameterMap.keySet().iterator();
-			while (i.hasNext()) {
-				String parmName = (String) i.next();
-				if (PARM_COMMAND_ID.equals(parmName)) {
-					continue;
-				}
-				IParameter parm = cmd.getParameter(parmName);
-				if (parm == null) {
-					// asking for a bogus parameter? No problem
-					return;
-				}
-				parameters.add(new Parameterization(parm, (String) parameterMap
-						.get(parmName)));
-			}
-			parameterizedCommand = new ParameterizedCommand(cmd,
-					(Parameterization[]) parameters
-							.toArray(new Parameterization[parameters.size()]));
-		} catch (NotDefinedException e) {
-			// command is bogus? No problem, we'll do nothing.
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-		if (handlerService != null) {
-			// already initialized
-			return;
-		}
-
-		handlerService = (IHandlerService) window
-				.getService(IHandlerService.class);
-		if (parameterMap != null) {
-			ICommandService commandService = (ICommandService) window
-					.getService(ICommandService.class);
-			createCommand(commandService);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
-	 */
-	public void init(IViewPart view) {
-		init(view.getSite().getWorkbenchWindow());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorActionDelegate#setActiveEditor(org.eclipse.jface.action.IAction,
-	 *      org.eclipse.ui.IEditorPart)
-	 */
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		// we don't actually care about the active editor, since that
-		// information is in the ExecutionEvent application context
-		// but we need to make sure we're initialized.
-		if (targetEditor != null) {
-			init(targetEditor.getSite().getWorkbenchWindow());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction,
-	 *      org.eclipse.ui.IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		// we don't actually care about the active part, since that
-		// information is in the ExecutionEvent application context
-		// but we need to make sure we're initialized.
-		if (targetPart != null) {
-			init(targetPart.getSite().getWorkbenchWindow());
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionBarsTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionBarsTest.java
deleted file mode 100644
index 015940a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionBarsTest.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.handlers.IActionCommandMappingService;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test the lifecycle of an action delegate.
- */
-public class IActionBarsTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    private class MockAction extends Action {
-        public boolean hasRun = false;
-
-        public MockAction() {
-            super();
-        }
-
-        public void run() {
-            hasRun = true;
-        }
-    }
-
-    /**
-     * Constructor for IActionDelegateTest
-     */
-    public IActionBarsTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testGetMenuManager() throws Throwable {
-        // From Javadoc: "Returns the menu manager."
-
-        IViewPart part = fPage.showView(MockViewPart.ID);
-        IActionBars bars = part.getViewSite().getActionBars();
-        assertNotNull(bars);
-        IMenuManager mgr = bars.getMenuManager();
-        assertNotNull(mgr);
-    }
-
-    public void testGetStatusLineManager() throws Throwable {
-        // From Javadoc: "Returns the status line manager."
-
-        IViewPart part = fPage.showView(MockViewPart.ID);
-        IActionBars bars = part.getViewSite().getActionBars();
-        assertNotNull(bars);
-        IStatusLineManager mgr = bars.getStatusLineManager();
-        assertNotNull(mgr);
-    }
-
-    public void testGetToolBarManager() throws Throwable {
-        // From Javadoc: "Returns the tool bar manager."
-
-        IViewPart part = fPage.showView(MockViewPart.ID);
-        IActionBars bars = part.getViewSite().getActionBars();
-        assertNotNull(bars);
-        IToolBarManager mgr = bars.getToolBarManager();
-        assertNotNull(mgr);
-    }
-
-    public void testGetGlobalActionHandler() throws Throwable {
-        // From Javadoc: "Returns the global action handler for 
-        // the action with the given id.  
-
-        IViewPart part = fPage.showView(MockViewPart.ID);
-        IActionBars bars = part.getViewSite().getActionBars();
-        assertNotNull(bars);
-
-        // Get actions.  They should all be null.
-        assertNull(bars.getGlobalActionHandler(IWorkbenchActionConstants.CUT));
-        assertNull(bars.getGlobalActionHandler(IWorkbenchActionConstants.COPY));
-        assertNull(bars.getGlobalActionHandler(IWorkbenchActionConstants.UNDO));
-
-        // Create actions.
-        MockAction cut = new MockAction();
-        MockAction copy = new MockAction();
-        MockAction undo = new MockAction();
-
-        // Set actions.
-        bars.setGlobalActionHandler(IWorkbenchActionConstants.CUT, cut);
-        bars.setGlobalActionHandler(IWorkbenchActionConstants.COPY, copy);
-        bars.setGlobalActionHandler(IWorkbenchActionConstants.UNDO, undo);
-        bars.updateActionBars();
-
-        // Get actions.  They should not be null.
-        assertEquals(cut, bars
-                .getGlobalActionHandler(IWorkbenchActionConstants.CUT));
-        assertEquals(copy, bars
-                .getGlobalActionHandler(IWorkbenchActionConstants.COPY));
-        assertEquals(undo, bars
-                .getGlobalActionHandler(IWorkbenchActionConstants.UNDO));
-    }
-
-        public void testSetGlobalActionHandler() throws Throwable {
-	        // From Javadoc: "Returns the global action handler for 
-	        // the action with the given id.  
-	
-	        IViewPart part = fPage.showView(MockViewPart.ID);
-	        IActionBars bars = part.getViewSite().getActionBars();
-	        assertNotNull(bars);
-	
-	        // Create actions.
-	        MockAction cut = new MockAction();
-	        MockAction copy = new MockAction();
-	        MockAction undo = new MockAction();
-	
-	        // Set actions.
-	        bars.setGlobalActionHandler(IWorkbenchActionConstants.CUT, cut);
-	        bars.setGlobalActionHandler(IWorkbenchActionConstants.COPY, copy);
-	        bars.setGlobalActionHandler(IWorkbenchActionConstants.UNDO, undo);
-	        bars.updateActionBars();
-	
-	        // Run the real workbench actions.
-	        // Verify the actions are invoked.
-	        cut.hasRun = copy.hasRun = undo.hasRun = false;
-	        
-	        // anything that has been converted from a RetargetAction in
-	        // WorkbenchActionBuilder must be run as a command
-	        runMatchingCommand(fWindow, ActionFactory.CUT.getId());
-	        
-	        ActionUtil.runActionUsingPath(this, fWindow,
-	                IWorkbenchActionConstants.M_EDIT + '/'
-	                        + IWorkbenchActionConstants.UNDO);
-	        assertTrue(cut.hasRun);
-	        assertTrue(!copy.hasRun);
-	        assertTrue(undo.hasRun);
-	
-	        // Now create a second view and run the actions again.
-	        // Our global actions should not be invoked.
-	        fPage.showView(MockViewPart.ID2);
-	        cut.hasRun = copy.hasRun = undo.hasRun = false;
-	        runMatchingCommand(fWindow, ActionFactory.CUT.getId());
-	        ActionUtil.runActionUsingPath(this, fWindow,
-	                IWorkbenchActionConstants.M_EDIT + '/'
-	                        + IWorkbenchActionConstants.UNDO);
-	        assertTrue(!cut.hasRun);
-	        assertTrue(!copy.hasRun);
-	        assertTrue(!undo.hasRun);
-	
-	        // Reactivate test view and run actions again.
-	        // This time our global actions should be invoked.		
-	        fPage.activate(part);
-	        cut.hasRun = copy.hasRun = undo.hasRun = false;
-	        runMatchingCommand(fWindow, ActionFactory.CUT.getId());
-	        ActionUtil.runActionUsingPath(this, fWindow,
-	                IWorkbenchActionConstants.M_EDIT + '/'
-	                        + IWorkbenchActionConstants.UNDO);
-	        assertTrue(cut.hasRun);
-	        assertTrue(!copy.hasRun);
-	        assertTrue(undo.hasRun);
-	    }
-    
-    private void runMatchingCommand(IWorkbenchWindow window, String actionId) {
-    	IHandlerService hs = (IHandlerService) window.getService(IHandlerService.class);
-    	IActionCommandMappingService ms = (IActionCommandMappingService) window.getService(IActionCommandMappingService.class);
-    	String commandId = ms.getCommandId(actionId);
-    	assertNotNull(commandId);
-    	try {
-			hs.executeCommand(commandId, null);
-    	} catch (NotHandledException e) {
-    		// this is not a failure, just a condition to be checked by
-    		// the test
-    	} catch (NotEnabledException e) {
-    		// this is not a failure, just a condition to be checked by
-    		// the test
-		} catch (Exception e) {
-			fail("Failed to run " + commandId, e);
-		}
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionDelegateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionDelegateTest.java
deleted file mode 100644
index fdfe486..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionDelegateTest.java
+++ /dev/null
@@ -1,97 +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.ui.tests.api;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test the lifecycle of an action delegate.
- */
-public abstract class IActionDelegateTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    /**
-     * Constructor for IActionDelegateTest
-     */
-    public IActionDelegateTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testRun() throws Throwable {
-        // Create the action.
-        Object obj = createActionWidget();
-
-        // Run the action delegate.
-        // The selectionChanged and run methods should be called, in that order.
-        runAction(obj);
-        MockActionDelegate delegate = getDelegate();
-        assertNotNull(delegate);
-        assertTrue(delegate.callHistory.verifyOrder(new String[] {
-                "selectionChanged", "run" }));
-    }
-
-    public void testSelectionChanged() throws Throwable {
-        // Create the delegate by running it.
-        Object obj = createActionWidget();
-        runAction(obj);
-        MockActionDelegate delegate = getDelegate();
-        assertNotNull(delegate);
-
-        // Fire a selection.
-        // The selectionChanged method should be invoked.
-        delegate.callHistory.clear();
-        fireSelection(obj);
-        assertTrue(delegate.callHistory.contains("selectionChanged"));
-    }
-
-    /**
-     * Returns the last mock action delegate which was created.
-     */
-    protected MockActionDelegate getDelegate() throws Throwable {
-        MockActionDelegate delegate = MockActionDelegate.lastDelegate;
-        assertNotNull(delegate);
-        return delegate;
-    }
-
-    /**
-     * Creates the widget for an action, and adds the action.
-     * 
-     * @returns an object which will be passed to runAction and 
-     * fireSelection.
-     */
-    protected abstract Object createActionWidget() throws Throwable;
-
-    /**
-     * Adds and runs the action delegate.  Subclasses should override.
-     * 
-     * @param obj the object returned from createActionWidget.
-     */
-    protected abstract void runAction(Object widget) throws Throwable;
-
-    /**
-     * Fires a selection from the source.  Subclasses should override.
-     * 
-     * @param obj the object returned from createActionWidget.
-     */
-    protected abstract void fireSelection(Object widget) throws Throwable;
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionFilterTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionFilterTest.java
deleted file mode 100644
index c7f2610..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IActionFilterTest.java
+++ /dev/null
@@ -1,180 +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.ui.tests.api;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test the lifecycle of an action filter.
- * 
- * From Javadoc: "An IActionFilter returns whether the specific attribute
- * 		matches the state of the target object."
- * 
- * Setup: The plugin.xml contains a number of popup menu action 
- * targetted to ListElements 
- * 
- * 		redAction -> (name = red)
- * 		blueAction -> (name = blue)
- * 		trueAction -> (flag = true)
- * 		falseAction -> (flag = false)
- * 		redTrueAction -> (name = red) (flag = true)
- */
-public class IActionFilterTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    protected String STATIC_MENU_VIEW_ID = "org.eclipse.ui.tests.api.IActionFilterTest1";
-
-    protected String DYNAMIC_MENU_VIEW_ID = "org.eclipse.ui.tests.api.IActionFilterTest2";
-
-    public IActionFilterTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testStaticLifecycle() throws Throwable {
-        testLifecycle(STATIC_MENU_VIEW_ID);
-    }
-
-    public void testDynamicLifecycle() throws Throwable {
-        testLifecycle(DYNAMIC_MENU_VIEW_ID);
-    }
-
-    /**
-     * Select a list element, popup the menu, and verify that the 
-     * action filter is called.
-     * 
-     * See Setup above.
-     */
-    private void testLifecycle(String viewId) throws Throwable {
-        // Create a list view.  
-        ListView view = (ListView) fPage.showView(viewId);
-
-        // Create the test objects.
-        ListElement red = new ListElement("red");
-        view.addElement(red);
-        view.selectElement(red);
-
-        // Get action filter.
-        ListElementActionFilter filter = ListElementActionFilter.getSingleton();
-
-        // Open menu.  Verify that action filter is called.			
-        MenuManager menuMgr = view.getMenuManager();
-        ActionUtil.fireAboutToShow(menuMgr);
-        assertTrue(filter.getCalled());
-    }
-
-    public void testDynamicMenuContribution() throws Throwable {
-        testMenu(DYNAMIC_MENU_VIEW_ID);
-    }
-
-    public void testStaticMenuContribution() throws Throwable {
-        testMenu(STATIC_MENU_VIEW_ID);
-    }
-
-    /**
-     * Select a ListElement, popup a menu and verify that the 
-     * ListElementActionFilter.testAttribute method is invoked.  
-     * Then verify that the correct actions are added to the
-     * popup menu.
-     * 
-     * See Setup above.
-     */
-    private void testMenu(String viewId) throws Throwable {
-        // Create the test objects.
-        ListElement red = new ListElement("red");
-        ListElement blue = new ListElement("blue");
-        ListElement green = new ListElement("green");
-        ListElement redTrue = new ListElement("red", true);
-
-        // Create a list view.  
-        ListView view = (ListView) fPage.showView(viewId);
-        MenuManager menuMgr = view.getMenuManager();
-        view.addElement(red);
-        view.addElement(blue);
-        view.addElement(green);
-        view.addElement(redTrue);
-
-        // Get action filter.
-        ListElementActionFilter filter = ListElementActionFilter.getSingleton();
-
-        // Select red, verify popup.
-        view.selectElement(red);
-        ActionUtil.fireAboutToShow(menuMgr);
-        assertTrue(filter.getCalled());
-        assertNotNull(ActionUtil.getActionWithLabel(menuMgr, "redAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "blueAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "trueAction_v1"));
-        assertNotNull(ActionUtil.getActionWithLabel(menuMgr, "falseAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "redTrueAction_v1"));
-        view.verifyActions(this, menuMgr);
-
-        // Select blue, verify popup.
-        filter.clearCalled();
-        view.selectElement(blue);
-        ActionUtil.fireAboutToShow(menuMgr);
-        assertTrue(filter.getCalled());
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "redAction_v1"));
-        assertNotNull(ActionUtil.getActionWithLabel(menuMgr, "blueAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "trueAction_v1"));
-        assertNotNull(ActionUtil.getActionWithLabel(menuMgr, "falseAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "redTrueAction_v1"));
-        view.verifyActions(this, menuMgr);
-
-        // Select green, verify popup.
-        filter.clearCalled();
-        view.selectElement(green);
-        ActionUtil.fireAboutToShow(menuMgr);
-        assertTrue(filter.getCalled());
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "redAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "blueAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "trueAction_v1"));
-        assertNotNull(ActionUtil.getActionWithLabel(menuMgr, "falseAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "redTrueAction_v1"));
-        view.verifyActions(this, menuMgr);
-
-        // Select redTrue, verify popup.
-        filter.clearCalled();
-        view.selectElement(redTrue);
-        ActionUtil.fireAboutToShow(menuMgr);
-        assertTrue(filter.getCalled());
-        assertNotNull(ActionUtil.getActionWithLabel(menuMgr, "redAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "blueAction_v1"));
-        assertNotNull(ActionUtil.getActionWithLabel(menuMgr, "trueAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "falseAction_v1"));
-        assertNotNull(ActionUtil
-                .getActionWithLabel(menuMgr, "redTrueAction_v1"));
-        view.verifyActions(this, menuMgr);
-
-        // Select nothing, verify popup.
-        filter.clearCalled();
-        view.selectElement(null);
-        ActionUtil.fireAboutToShow(menuMgr);
-        assertTrue(!filter.getCalled());
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "redAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "blueAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "trueAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "falseAction_v1"));
-        assertNull(ActionUtil.getActionWithLabel(menuMgr, "redTrueAction_v1"));
-        view.verifyActions(this, menuMgr);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IAggregateWorkingSetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IAggregateWorkingSetTest.java
deleted file mode 100644
index 84a24f3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IAggregateWorkingSetTest.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import java.lang.reflect.Method;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IAggregateWorkingSet;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.AbstractWorkingSet;
-import org.eclipse.ui.internal.AbstractWorkingSetManager;
-import org.eclipse.ui.internal.AggregateWorkingSet;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class IAggregateWorkingSetTest extends UITestCase {
-
-	final static String WORKING_SET_NAME = "testws";
-	final static String AGGREGATE_WORKING_SET_NAME_ = "testaggregatews";
-	final static String WSET_PAGE_ID="org.eclipse.ui.resourceWorkingSetPage";
-	IWorkspace fWorkspace;
-
-	IWorkingSet[] components;
-	IAggregateWorkingSet fWorkingSet;
-
-	public IAggregateWorkingSetTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		IWorkingSetManager workingSetManager = fWorkbench
-		.getWorkingSetManager();
-
-		fWorkspace = ResourcesPlugin.getWorkspace();
-		components = new IWorkingSet[4];
-		for (int i = 0; i < 4; i++) {
-			components[i] = workingSetManager.createWorkingSet(WORKING_SET_NAME
-					+ i, new IAdaptable[] {});
-			workingSetManager.addWorkingSet(components[i]);
-		}
-		fWorkingSet = (IAggregateWorkingSet) workingSetManager
-		.createAggregateWorkingSet(AGGREGATE_WORKING_SET_NAME_,
-				AGGREGATE_WORKING_SET_NAME_, components);
-
-		workingSetManager.addWorkingSet(fWorkingSet);
-	}
-	protected void doTearDown() throws Exception {
-		IWorkingSetManager workingSetManager = fWorkbench.getWorkingSetManager();
-		workingSetManager.removeWorkingSet(fWorkingSet);
-		for (int i = 0; i < components.length; i++) {
-			workingSetManager.removeWorkingSet(components[i]);
-		}    	
-		super.doTearDown();
-	}
-
-	public void testSaveWSet() throws Throwable {
-		//<possible client code>
-		IWorkingSetManager workingSetManager = fWorkbench
-		.getWorkingSetManager();
-		IWorkingSet set=workingSetManager.getWorkingSet(AGGREGATE_WORKING_SET_NAME_);
-		if(set.isAggregateWorkingSet()){
-			IWorkingSet[] sets=((IAggregateWorkingSet)set).getComponents();
-			if(sets.length>=1){
-				sets[0]=null; //client fails to pay enough attention to specs or unknowingly does this
-			}
-		}
-		//</possible client code>    	
-		//error makes it look like it comes from workingsets api, with no clue about the actual culprit 
-		IMemento memento=XMLMemento.createWriteRoot(IWorkbenchConstants.TAG_WORKING_SET);
-		set.saveState(memento);
-	}
-	public void testGetElemets() throws Throwable {
-		//<possible client code>
-		IWorkingSetManager workingSetManager = fWorkbench
-		.getWorkingSetManager();
-		IWorkingSet set=workingSetManager.getWorkingSet(AGGREGATE_WORKING_SET_NAME_);
-		if(set.isAggregateWorkingSet()){
-			IWorkingSet[] sets=((IAggregateWorkingSet)set).getComponents();
-			if(sets.length>1){
-				//code 2 fails to pay enough attention to specs or unknowingly does this
-				sets[0]=workingSetManager.createWorkingSet(WORKING_SET_NAME, new IAdaptable[] { fWorkspace.getRoot() }); 
-				//code 1 part  removes a workingset
-				workingSetManager.removeWorkingSet(sets[1]);
-			}
-		}
-		//</possible client code>    	
-		
-		//unexpected 
-		assertTrue(ArrayUtil.equals(
-				new IAdaptable[] {},
-				fWorkingSet.getElements()));
-	}
-
-	/**
-	 * Core of the problem: while Eclipse is running, name collisions among working sets
-	 * don't matter. However, on save and restart names will be used to identify working
-	 * sets, which could possibly lead to cycles in aggregate working sets.
-	 * 
-	 * Bottom line: if there are multiple aggregate working sets with the same name, expect
-	 * trouble on restart.
-	 * 
-	 * To create a cycle we have to be creative:
-	 * - create an aggregate1 with an ID = "testCycle"
-	 * - create an aggregate2 with an ID = "testCycle" containing aggregate1
-	 * - save it into IMemento
-	 * 
-	 * Now the IMememnto creates a self reference:
-	 * 
-	 * <workingSet name="testCycle" label="testCycle" aggregate="true">
-	 * 	<workingSet IMemento.internal.id="testCycle" />
-	 * </workingSet>
-	 * 
-	 * All we have to do to emulate stack overflow is to create a working set based on this IMemento.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testWorkingSetCycle() throws Throwable {
-		IWorkingSetManager manager = fWorkbench.getWorkingSetManager();
-		
-		// create an IMemento with a cycle in it
-		IAggregateWorkingSet aggregate = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle","testCycle", new IWorkingSet[0]);
-		
-		IAggregateWorkingSet aggregate2 = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle","testCycle", new IWorkingSet[] {aggregate});
-		
-		IMemento memento=XMLMemento.createWriteRoot(IWorkbenchConstants.TAG_WORKING_SET);
-		aggregate2.saveState(memento);
-		
-		// load the IMemento
-		IAggregateWorkingSet aggregateReloaded = null;
-		try {
-			aggregateReloaded = (IAggregateWorkingSet) manager.createWorkingSet(memento);
-			manager.addWorkingSet(aggregateReloaded);
-			aggregateReloaded.getComponents();
-		} catch (StackOverflowError e) {
-			e.printStackTrace();
-			fail("Stack overflow for self-referenced aggregate working set", e);
-		} finally {
-			if (aggregateReloaded != null)
-				manager.removeWorkingSet(aggregateReloaded);
-		}
-	}
-	
-	/**
-	 * Tests cleanup of the cycle from an aggregate working set.
-	 * @throws Throwable
-	 */
-	public void testCycleCleanup() throws Throwable {
-		IWorkingSetManager manager = fWorkbench.getWorkingSetManager();
-		
-		// create an IMemento with a cycle in it: { good, good, cycle, good, good }
-		IAggregateWorkingSet aggregateSub0 = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle0","testCycle0", new IWorkingSet[0]);
-		
-		IAggregateWorkingSet aggregateSub1 = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle1","testCycle1", new IWorkingSet[0]);
-
-		IAggregateWorkingSet aggregateSub2 = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle","testCycle", new IWorkingSet[0]); // cycle
-		
-		IAggregateWorkingSet aggregateSub3 = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle3","testCycle3", new IWorkingSet[0]);
-		
-		IAggregateWorkingSet aggregateSub4 = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle4","testCycle4", new IWorkingSet[0]);
-		
-		
-		IAggregateWorkingSet aggregate = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet("testCycle","testCycle", new IWorkingSet[] {aggregateSub0, 
-				aggregateSub1, aggregateSub2, aggregateSub3, aggregateSub4});
-
-		manager.addWorkingSet(aggregateSub0);
-		manager.addWorkingSet(aggregateSub1);
-		manager.addWorkingSet(aggregateSub3);
-		manager.addWorkingSet(aggregateSub4);
-		
-		IMemento memento=XMLMemento.createWriteRoot(IWorkbenchConstants.TAG_WORKING_SET);
-		aggregate.saveState(memento);
-		
-		// load the IMemento
-		IAggregateWorkingSet aggregateReloaded = null;
-		try {
-			aggregateReloaded = (IAggregateWorkingSet) manager.createWorkingSet(memento);
-			manager.addWorkingSet(aggregateReloaded);
-			IWorkingSet[] aggregates = aggregateReloaded.getComponents();
-			assertNotNull(aggregates);
-			assertEquals(4, aggregates.length);
-			for(int i = 0; i < aggregates.length; i++)
-				assertFalse("testCycle".equals(aggregates[i].getName()));
-		} catch (StackOverflowError e) {
-			e.printStackTrace();
-			fail("Stack overflow for self-referenced aggregate working set", e);
-		} finally {
-			if (aggregateReloaded != null)
-				manager.removeWorkingSet(aggregateReloaded);
-		}
-	}
-	
-	/*
-	 * Test related to Bug 217955.The initial fix made changes that caused
-	 * save/restore to fail due to early restore and forward reference in
-	 * memento of aggregates
-	 */
-	public void testWorkingSetSaveRestoreAggregates() throws Throwable {
-		IWorkingSetManager manager = fWorkbench.getWorkingSetManager();
-		String nameA = "A";
-		String nameB = "B";
-		String nameC = "C";
-
-		IWorkingSet wSetA = manager
-				.createWorkingSet(nameA, new IAdaptable[] {});
-		manager.addWorkingSet(wSetA);
-		
-		IAggregateWorkingSet wSetB = (IAggregateWorkingSet) manager
-		.createAggregateWorkingSet(nameB, nameB, new IWorkingSet[] {});
-		manager.addWorkingSet(wSetB);
-		
-		IAggregateWorkingSet wSetC = (IAggregateWorkingSet) manager
-				.createAggregateWorkingSet(nameC, nameC, new IWorkingSet[0]);
-		manager.addWorkingSet(wSetC);
-		
-		try {
-			assertEquals("Failed to add workingset" + nameA, wSetA, manager
-					.getWorkingSet(nameA));
-
-			assertEquals("Failed to add workingset" + nameC, wSetC, manager
-					.getWorkingSet(nameC));
-
-			assertEquals("Failed to add workingset" + nameB, wSetB, manager
-					.getWorkingSet(nameB));
-
-			invokeMethod(AggregateWorkingSet.class, "setComponents", wSetB,
-					new Object[] { new IWorkingSet[] {
-							wSetA, wSetC } },
-					new Class[] { new IWorkingSet[] {}.getClass() });
-
-			saveRestoreWorkingSetManager();
-
-			IAggregateWorkingSet restoredB = (IAggregateWorkingSet) manager
-					.getWorkingSet(nameB);
-			assertTrue("Unable to save/restore correctly", restoredB!=null);
-			
-			IAggregateWorkingSet restoredC = (IAggregateWorkingSet) manager
-			.getWorkingSet(nameC);
-			assertTrue("Unable to save/restore correctly", restoredC!=null);
-			
-			IWorkingSet[] componenets1=wSetB.getComponents();
-			IWorkingSet[] componenets2=((IAggregateWorkingSet) manager
-					.getWorkingSet(nameB)).getComponents();
-	
-			if (componenets1.length != componenets2.length)
-				fail(nameB + " has lost data in the process of save/restore");
-	        else {
-	            for (int i = 0; i < componenets1.length; i++)
-	                if (!componenets1[i].equals(componenets2[i]))
-	                	fail(nameB + " has lost data in the process of save/restore");
-	        }
-			
-		} finally {
-			// restore
-			IWorkingSet set = manager.getWorkingSet(nameA);
-			if (set != null) {
-				manager.removeWorkingSet(set);
-			}
-			set = manager.getWorkingSet(nameB);
-			if (set != null) {
-				manager.removeWorkingSet(set);
-			}
-			set = manager.getWorkingSet(nameC);
-			if (set != null) {
-				manager.removeWorkingSet(set);
-			}
-		}
-	}
-
-	private void saveRestoreWorkingSetManager() {
-		IMemento managerMemento = XMLMemento
-				.createWriteRoot(IWorkbenchConstants.TAG_WORKING_SET_MANAGER);
-		IWorkingSetManager manager = fWorkbench.getWorkingSetManager();
-		IWorkingSet[] sets = manager.getAllWorkingSets();
-		for (int i = 0; i < sets.length; i++) {
-			if(sets[i].getId()==null){
-				//set default id as set by factory
-				sets[i].setId(WSET_PAGE_ID);
-			}
-		}
-		invokeMethod(AbstractWorkingSetManager.class, "saveWorkingSetState",
-				manager, new Object[] { managerMemento },
-				new Class[] { IMemento.class });
-		invokeMethod(AbstractWorkingSetManager.class, "saveMruList", manager,
-				new Object[] { managerMemento }, new Class[] { IMemento.class });
-		for (int i = 0; i < sets.length; i++) {
-			((AbstractWorkingSet) sets[i]).disconnect();
-		}
-		for (int i = 0; i < sets.length; i++) {
-			manager.removeWorkingSet(sets[i]);
-		}
-		//manager.dispose(); //not needed, also cause problems
-		invokeMethod(AbstractWorkingSetManager.class, "restoreWorkingSetState",
-				manager, new Object[] { managerMemento },
-				new Class[] { IMemento.class });
-		invokeMethod(AbstractWorkingSetManager.class, "restoreMruList",
-				manager, new Object[] { managerMemento },
-				new Class[] { IMemento.class });
-	}
-
-	private Object invokeMethod(Class clazz, String methodName,
-			Object instance, Object[] args, Class[] argsClasses) {
-		try {
-			Method method = clazz.getDeclaredMethod(methodName, argsClasses);
-			method.setAccessible(true);
-			return method.invoke(instance, args);
-		} catch (Exception e) {
-			fail("Failure in invoking " + clazz.getName() + methodName, e);
-		}
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IConstants.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IConstants.java
deleted file mode 100644
index 267b52d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IConstants.java
+++ /dev/null
@@ -1,22 +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.ui.tests.api;
-
-public interface IConstants {
-    public static String FakeID = "Is this fake ID for buying beer or getting into a club?",
-            FakeLabel = "Hmmm. Who's to say this is a fake label? I mean, someday, this can be a real label.",
-            UnknownFileName[] = {
-                    "This is not a known file name to the world.with a cool extension",
-                    "this is not the same as the other.anyways this is a file extension" },
-            KnownFileName[] = { "plugin.xml" },
-            ProjectName = "JUnitTestingProjectName";
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IDeprecatedWorkbenchPageTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IDeprecatedWorkbenchPageTest.java
deleted file mode 100644
index bbf63ed..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IDeprecatedWorkbenchPageTest.java
+++ /dev/null
@@ -1,848 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.registry.IActionSetDescriptor;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class IDeprecatedWorkbenchPageTest extends UITestCase {
-
-	private IWorkbenchPage fActivePage;
-
-	private IWorkbenchWindow fWin;
-
-	private IProject proj;
-
-	public IDeprecatedWorkbenchPageTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		fWin = openTestWindow();
-		fActivePage = fWin.getActivePage();
-	}
-
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		if (proj != null) {
-			FileUtil.deleteProject(proj);
-			proj = null;
-		}
-	}
-
-	/**
-	 * tests both of the following: setEditorAreaVisible() isEditorAreaVisible()
-	 */
-	public void testGet_SetEditorAreaVisible() throws Throwable {
-		fActivePage.setEditorAreaVisible(true);
-		assertTrue(fActivePage.isEditorAreaVisible() == true);
-
-		fActivePage.setEditorAreaVisible(false);
-		assertTrue(fActivePage.isEditorAreaVisible() == false);
-	}
-
-	public void testGetPerspective() throws Throwable {
-		assertNotNull(fActivePage.getPerspective());
-
-		IWorkbenchPage page = fWin.openPage(EmptyPerspective.PERSP_ID,
-				getPageInput());
-		assertEquals(EmptyPerspective.PERSP_ID, page.getPerspective().getId());
-	}
-
-	public void testSetPerspective() throws Throwable {
-		IPerspectiveDescriptor per = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						EmptyPerspective.PERSP_ID);
-		fActivePage.setPerspective(per);
-		assertEquals(per, fActivePage.getPerspective());
-	}
-
-	public void testGetLabel() {
-		assertNotNull(fActivePage.getLabel());
-	}
-
-	public void testGetInput() throws Throwable {
-		IAdaptable input = getPageInput();
-		IWorkbenchPage page = fWin.openPage(input);
-		assertEquals(input, page.getInput());
-	}
-
-	public void testActivate() throws Throwable {
-		MockViewPart part = (MockViewPart) fActivePage
-				.showView(MockViewPart.ID);
-		MockViewPart part2 = (MockViewPart) fActivePage
-				.showView(MockViewPart.ID2);
-
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		fActivePage.activate(part);
-
-		CallHistory callTrace;
-
-		callTrace = part2.getCallHistory();
-		callTrace.clear();
-		fActivePage.activate(part2);
-		assertTrue(callTrace.contains("setFocus"));
-		assertTrue(listener.getCallHistory().contains("partActivated"));
-
-		callTrace = part.getCallHistory();
-		callTrace.clear();
-		fActivePage.activate(part);
-		assertTrue(callTrace.contains("setFocus"));
-		assertTrue(listener.getCallHistory().contains("partActivated"));
-	}
-
-	public void testBringToTop() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		IEditorPart part = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"a.mock1", proj), true);
-		IEditorPart part2 = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"b.mock1", proj), true);
-
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		CallHistory callTrace = listener.getCallHistory();
-
-		// at this point, part2 is active
-		fActivePage.bringToTop(part);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-
-		callTrace.clear();
-		fActivePage.bringToTop(part2);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-	}
-
-	public void testGetWorkbenchWindow() {
-		/*
-		 * Commented out because until test case can be updated to work with new
-		 * window/page/perspective implementation
-		 * 
-		 * assertEquals(fActivePage.getWorkbenchWindow(), fWin); IWorkbenchPage
-		 * page = openTestPage(fWin); assertEquals(page.getWorkbenchWindow(),
-		 * fWin);
-		 */
-	}
-
-	public void testShowView() throws Throwable {
-		/*
-		 * javadoc: Shows a view in this page and give it focus
-		 */
-		MockViewPart view = (MockViewPart) fActivePage
-				.showView(MockViewPart.ID);
-		assertNotNull(view);
-		assertTrue(view.getCallHistory().verifyOrder(
-				new String[] { "init", "createPartControl", "setFocus" }));
-
-		fActivePage.showView(MockViewPart.ID2);
-
-		/*
-		 * javadoc: If the view is already visible, it is given focus
-		 */
-		CallHistory callTrace = view.getCallHistory();
-		callTrace.clear();
-		assertEquals(fActivePage.showView(MockViewPart.ID), view);
-		assertEquals(callTrace.contains("setFocus"), true);
-	}
-
-	/**
-	 * openEditor(IFile input)
-	 */
-	public void testOpenEditor() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-
-		/*
-		 * javadoc: 1. The workbench editor registry is consulted to determine
-		 * if an editor extension has been registered for the file type. If so,
-		 * an instance of the editor extension is opened on the file
-		 */
-		IFile file = FileUtil.createFile("test.mock1", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file, true);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(editor.getSite().getId(), fWorkbench.getEditorRegistry()
-				.getDefaultEditor(file.getName()).getId());
-
-		/*
-		 * javadoc: 2. Next, the native operating system will be consulted to
-		 * determine if a native editor exists for the file type. If so, a new
-		 * process is started and the native editor is opened on the file.
-		 */
-		// can not be tested
-		/*
-		 * javadoc: 3. If all else fails the file will be opened in a default
-		 * text editor.
-		 */
-		file = FileUtil.createFile("a.null and void", proj);
-		editor = IDE.openEditor(fActivePage, file, true);
-		if (editor != null) {//Editor may be external
-			assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor),
-					true);
-			assertEquals(fActivePage.getActiveEditor(), editor);
-			assertEquals(editor.getSite().getId(),
-					"org.eclipse.ui.DefaultTextEditor");
-
-			// open another editor to take the focus away from the first editor
-			IDE.openEditor(fActivePage,
-					FileUtil.createFile("test.mock2", proj), true);
-
-			/*
-			 * javadoc: If this page already has an editor open on the target
-			 * object that editor is activated
-			 */
-			// open the editor second time.
-			assertEquals(editor, IDE.openEditor(fActivePage, file, true));
-			assertEquals(editor, fActivePage.getActiveEditor());
-		}
-	}
-
-	/**
-	 * openEditor(IFile input, String editorID)
-	 */
-	public void testOpenEditor2() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("asfasdasdf", proj);
-		final String id = MockEditorPart.ID1;
-
-		/*
-		 * javadoc: The editor type is determined by mapping editorId to an
-		 * editor extension registered with the workbench.
-		 */
-		IEditorPart editor = fActivePage.openEditor(new FileEditorInput(file),
-				id);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-
-		// open another editor to take the focus away from the first editor
-		IDE.openEditor(fActivePage, FileUtil.createFile("test.mock2", proj),
-				true);
-
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is activated
-		 */
-		// open the first editor second time.
-		assertEquals(fActivePage.openEditor(new FileEditorInput(file), id),
-				editor);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-	}
-
-	/**
-	 * openEditor(IEditorInput input,String editorId)
-	 */
-	public void testOpenEditor3() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final String id = MockEditorPart.ID1;
-		IEditorInput input = new FileEditorInput(FileUtil.createFile(
-				"test.mock1", proj));
-
-		/*
-		 * javadoc: The editor type is determined by mapping editorId to an
-		 * editor extension registered with the workbench
-		 */
-		IEditorPart editor = fActivePage.openEditor(input, id);
-		assertEquals(editor.getEditorInput(), input);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-
-		// open another editor to take the focus away from the first editor
-		IDE.openEditor(fActivePage, FileUtil.createFile("test.mock2", proj),
-				true);
-
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is activated
-		 */
-		// open the first editor second time.
-		assertEquals(fActivePage.openEditor(input, id), editor);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-	}
-
-	/**
-	 * openEditor(IEditorInput input, String editorId, boolean activate)
-	 */
-	public void testOpenEditor4() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final String id = MockEditorPart.ID1;
-		IEditorInput input = new FileEditorInput(FileUtil.createFile(
-				"test.mock1", proj));
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		CallHistory callTrace = listener.getCallHistory();
-
-		/*
-		 * javadoc: The editor type is determined by mapping editorId to an
-		 * editor extension registered with the workbench. javadoc: If activate ==
-		 * true the editor will be activated
-		 */
-		// open an editor with activation
-		IEditorPart editor = fActivePage.openEditor(input, id, true);
-		assertEquals(editor.getEditorInput(), input);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("partActivated"), true);
-
-		// we need another editor so that the editor under test can receive
-		// events.
-		// otherwise, events will be ignored.
-		IEditorPart extra = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"aaaaa", proj), true);
-
-		// close the first editor after the second has opened; necessary for
-		// test to work with fix to PR 7743
-		fActivePage.closeEditor(editor, false);
-
-		// Activate something in a different stack, or the editor will end up
-		// activated regardless of
-		// the activate flag.
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		// open an editor without activation
-		callTrace.clear();
-		editor = fActivePage.openEditor(input, id, false);
-		assertEquals(editor.getEditorInput(), input);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(callTrace.contains("partActivated"), false);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-
-		fActivePage.activate(extra);
-
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is brought to the front
-		 */
-		// Activate something in a different stack, or the editor will end up
-		// activated regardless of
-		// the activate flag.
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		// open the editor under test second time without activation
-		callTrace.clear();
-		assertEquals(fActivePage.openEditor(input, id, false), editor);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-		assertEquals(callTrace.contains("partActivated"), false);
-
-		// activate the other editor
-		fActivePage.activate(extra);
-
-		/*
-		 * javadoc: If activate == true the editor will be activated
-		 */
-		// open the editor under test second time with activation
-		callTrace.clear();
-		assertEquals(fActivePage.openEditor(input, id, true), editor);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-		assertEquals(callTrace.contains("partActivated"), true);
-	}
-
-	/**
-	 * openEditor(IMarker marker)
-	 */
-	public void testOpenEditor5() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		IMarker marker = FileUtil.createFile("aa.mock2", proj).createMarker(
-				IMarker.TASK);
-		CallHistory callTrace;
-
-		/*
-		 * javadoc: the cursor and selection state of the editor is then updated
-		 * from information recorded in the marker.
-		 */
-		// open the registered editor for the marker resource
-		IEditorPart editor = IDE.openEditor(fActivePage, marker, true);
-		callTrace = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID2);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		/*
-		 * javadoc: If the marker contains an EDITOR_ID_ATTR attribute the
-		 * attribute value will be used to determine the editor type to be
-		 * opened
-		 */
-		marker.setAttribute(IWorkbenchPage.EDITOR_ID_ATTR, MockEditorPart.ID1);
-		editor = IDE.openEditor(fActivePage, marker, true);
-		callTrace = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID1);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("gotoMarker"), true);
-		// do not close the editor this time
-
-		/*
-		 * javdoc: If this page already has an editor open on the target object
-		 * that editor is activated
-		 */
-		callTrace.clear();
-		assertEquals(IDE.openEditor(fActivePage, marker, true), editor);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-	}
-
-	/**
-	 * openEditor(IMarker marker, boolean activate)
-	 */
-	public void testOpenEditor6() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		IMarker marker = FileUtil.createFile("aa.mock2", proj).createMarker(
-				IMarker.TASK);
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		CallHistory listenerCall = listener.getCallHistory();
-		CallHistory editorCall;
-
-		// we need another editor so that the editor under test can receive
-		// events.
-		// otherwise, events will be ignored.
-		IEditorPart extra = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"aaaaa", proj), true);
-
-		/*
-		 * javadoc: If activate == true the editor will be activated
-		 */
-		// open the registered editor for the marker resource with activation
-		IEditorPart editor = IDE.openEditor(fActivePage, marker, true);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID2);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-
-		/*
-		 * javadoc: the cursor and selection state of the editor is then updated
-		 * from information recorded in the marker.
-		 */
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		fActivePage.activate(extra);
-
-		// Activate something in a different stack, or the editor will end up
-		// activated regardless of
-		// the activate flag.
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-
-		// open the registered editor for the marker resource without activation
-		listenerCall.clear();
-		editor = IDE.openEditor(fActivePage, marker, false);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID2);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		assertEquals(listenerCall.contains("partActivated"), false);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		/*
-		 * javadoc: If the marker contains an EDITOR_ID_ATTR attribute the
-		 * attribute value will be used to determine the editor type to be
-		 * opened
-		 */
-		String id = MockEditorPart.ID1;
-		marker.setAttribute(IWorkbenchPage.EDITOR_ID_ATTR, id);
-
-		// open an editor with activation
-		listenerCall.clear();
-
-		editor = IDE.openEditor(fActivePage, marker, true);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		fActivePage.activate(extra);
-
-		// Activate something in a different stack, or the editor will end up
-		// activated regardless of
-		// the activate flag.
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-
-		// open an editor without activation
-		listenerCall.clear();
-		editor = IDE.openEditor(fActivePage, marker, false);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editor), true);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		assertEquals(listenerCall.contains("partActivated"), false);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		// do not close the editor this time
-
-		fActivePage.activate(extra);
-
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is brought to front
-		 */
-		// Activate something in a different stack, or the editor will end up
-		// activated regardless of
-		// the activate flag.
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		// open the editor second time without activation
-		listenerCall.clear();
-		assertEquals(IDE.openEditor(fActivePage, marker, false), editor);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		assertEquals(listenerCall.contains("partActivated"), false);
-
-		fActivePage.activate(extra);
-
-		/*
-		 * javdoc: If activate == true the editor will be activated
-		 */
-		// open the editor second time with activation
-		listenerCall.clear();
-		assertEquals(IDE.openEditor(fActivePage, marker, true), editor);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		assertEquals(listenerCall.contains("partActivated"), true);
-	}
-
-	public void testFindView() throws Throwable {
-		String id = MockViewPart.ID3;
-		// id of valid, but not open view
-		assertNull(fActivePage.findView(id));
-
-		IViewPart view = fActivePage.showView(id);
-		assertEquals(fActivePage.findView(id), view);
-
-		// close view
-		fActivePage.hideView(view);
-		assertNull(fActivePage.findView(id));
-	}
-
-	public void testGetViews() throws Throwable {
-		int totalBefore = fActivePage.getViews().length;
-
-		IViewPart view = fActivePage.showView(MockViewPart.ID2);
-		assertEquals(ArrayUtil.contains(fActivePage.getViews(), view), true);
-		assertEquals(fActivePage.getViews().length, totalBefore + 1);
-
-		fActivePage.hideView(view);
-		assertEquals(ArrayUtil.contains(fActivePage.getViews(), view), false);
-		assertEquals(fActivePage.getViews().length, totalBefore);
-	}
-
-	public void testHideView() throws Throwable {
-		IViewPart view = fActivePage.showView(MockViewPart.ID3);
-
-		fActivePage.hideView(view);
-		CallHistory callTrace = ((MockViewPart) view).getCallHistory();
-		assertTrue(callTrace.contains("dispose"));
-	}
-
-	public void testClose() throws Throwable {
-		IWorkbenchPage page = openTestPage(fWin);
-
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("aaa.mock1", proj);
-		IEditorPart editor = IDE.openEditor(page, file, true);
-		CallHistory callTrace = ((MockEditorPart) editor).getCallHistory();
-		callTrace.clear();
-
-		/*
-		 * javadoc: If the page has open editors with unsaved content and save
-		 * is true, the user will be given the opportunity to save them
-		 */
-		assertEquals(page.close(), true);
-		assertEquals(callTrace
-				.verifyOrder(new String[] { "isDirty", "dispose" }), true);
-		assertEquals(fWin.getActivePage(), fActivePage);
-	}
-
-	public void testCloseEditor() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("test.mock1", proj);
-		IEditorPart editor;
-		CallHistory callTrace;
-		MockEditorPart mock;
-
-		/*
-		 * javadoc: Parameters: save - true to save the editor contents if
-		 * required (recommended)
-		 */
-		// create a clean editor that needs to be saved on closing
-		editor = IDE.openEditor(fActivePage, file, true);
-		mock = (MockEditorPart) editor;
-		mock.setSaveNeeded(true);
-		callTrace = mock.getCallHistory();
-		callTrace.clear();
-		// close the editor with save confirmation
-		assertEquals(fActivePage.closeEditor(editor, true), true);
-		assertEquals(callTrace
-				.verifyOrder(new String[] { "isDirty", "dispose" }), true);
-
-		/*
-		 * javadoc: If the editor has unsaved content and save is true, the user
-		 * will be given the opportunity to save it.
-		 */
-		// can't be tested
-		/*
-		 * javadoc: Parameters: save - false to discard any unsaved changes
-		 */
-		// create a dirty editor
-		editor = IDE.openEditor(fActivePage, file, true);
-		mock = (MockEditorPart) editor;
-		mock.setDirty(true);
-		mock.setSaveNeeded(true);
-		callTrace = mock.getCallHistory();
-		callTrace.clear();
-		// close the editor and discard changes
-		assertEquals(fActivePage.closeEditor(editor, false), true);
-		assertEquals(callTrace.contains("isSaveOnCloseNeeded"), false);
-		/*
-		 * It is possible that some action may query the isDirty value of the
-		 * editor to update its enabled state. There is nothing wrong in doing
-		 * that, so do not test for no isDirty call here.
-		 * 
-		 * assertEquals(callTrace.contains( "isDirty"), false);
-		 */
-		assertEquals(callTrace.contains("doSave"), false);
-		assertEquals(callTrace.contains("dispose"), true);
-	}
-
-	public void testCloseAllEditors() throws Throwable {
-		int total = 5;
-		final IFile[] files = new IFile[total];
-		IEditorPart[] editors = new IEditorPart[total];
-		CallHistory[] callTraces = new CallHistory[total];
-		MockEditorPart[] mocks = new MockEditorPart[total];
-
-		proj = FileUtil.createProject("testOpenEditor");
-		for (int i = 0; i < total; i++)
-			files[i] = FileUtil.createFile(i + ".mock2", proj);
-
-		/*
-		 * javadoc: If the page has open editors with unsaved content and save
-		 * is true, the user will be given the opportunity to save them.
-		 */
-		// close all clean editors with confirmation
-		for (int i = 0; i < total; i++) {
-			editors[i] = IDE.openEditor(fActivePage, files[i], true);
-			callTraces[i] = ((MockEditorPart) editors[i]).getCallHistory();
-		}
-		assertEquals(fActivePage.closeAllEditors(true), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// close all dirty editors with confirmation
-		// can't be tested
-
-		// close all dirty editors discarding them
-		for (int i = 0; i < total; i++) {
-			editors[i] = IDE.openEditor(fActivePage, files[i], true);
-			mocks[i] = (MockEditorPart) editors[i];
-			mocks[i].setDirty(true);
-			callTraces[i] = mocks[i].getCallHistory();
-		}
-		assertEquals(fActivePage.closeAllEditors(false), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("doSave"), false);
-		}
-	}
-
-	public void testSaveEditor() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("test.mock1", proj);
-		IEditorPart editor;
-		CallHistory callTrace;
-		MockEditorPart mock;
-
-		// create a clean editor
-		editor = IDE.openEditor(fActivePage, file, true);
-		mock = (MockEditorPart) editor;
-		callTrace = mock.getCallHistory();
-		callTrace.clear();
-
-		/*
-		 * javadoc: Saves the contents of the given editor if dirty. If not,
-		 * this method returns without effect
-		 */
-		// save the clean editor with confirmation
-		assertEquals(fActivePage.saveEditor(editor, true), true);
-		assertEquals(callTrace.contains("isDirty"), true);
-		assertEquals(callTrace.contains("doSave"), false);
-
-		/*
-		 * javadoc: If confirm is true the user is prompted to confirm the
-		 * command.
-		 */
-		// can't be tested
-		/*
-		 * javadoc: Otherwise, the save happens without prompt.
-		 */
-		// save the clean editor without confirmation
-		assertEquals(fActivePage.saveEditor(editor, false), true);
-		assertEquals(callTrace.contains("isDirty"), true);
-		assertEquals(callTrace.contains("doSave"), false);
-
-		// save the dirty editor without confirmation
-		mock.setDirty(true);
-		callTrace.clear();
-		assertEquals(fActivePage.saveEditor(editor, false), true);
-		assertEquals(callTrace
-				.verifyOrder(new String[] { "isDirty", "doSave" }), true);
-	}
-
-	public void testSaveAllEditors() throws Throwable {
-		int total = 3;
-
-		final IFile[] files = new IFile[total];
-		IEditorPart[] editors = new IEditorPart[total];
-		CallHistory[] callTraces = new CallHistory[total];
-		MockEditorPart[] mocks = new MockEditorPart[total];
-
-		proj = FileUtil.createProject("testOpenEditor");
-		for (int i = 0; i < total; i++) {
-			files[i] = FileUtil.createFile(i + ".mock2", proj);
-			editors[i] = IDE.openEditor(fActivePage, files[i], true);
-			mocks[i] = (MockEditorPart) editors[i];
-			callTraces[i] = mocks[i].getCallHistory();
-		}
-
-		/*
-		 * javadoc: If there are no dirty editors this method returns without
-		 * effect. javadoc: If confirm is true the user is prompted to confirm
-		 * the command
-		 */
-		// save all clean editors with confirmation
-		assertEquals(fActivePage.saveAllEditors(true), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors with confirmation can't be tested
-
-		/*
-		 * javadoc: Parameters: confirm - false to save unsaved changes without
-		 * asking
-		 */
-		// save all clean editors without confirmation
-		assertEquals(fActivePage.saveAllEditors(false), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors without confirmation
-		for (int i = 0; i < total; i++)
-			mocks[i].setDirty(true);
-		assertEquals(fActivePage.saveAllEditors(false), true);
-		for (int i = 0; i < total; i++)
-			assertEquals(callTraces[i].verifyOrder(new String[] { "isDirty",
-					"doSave" }), true);
-	}
-
-	public void testGetEditors() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		int totalBefore = fActivePage.getEditors().length;
-		int num = 3;
-		IEditorPart[] editors = new IEditorPart[num];
-
-		for (int i = 0; i < num; i++) {
-			editors[i] = IDE.openEditor(fActivePage, FileUtil.createFile(i
-					+ ".mock2", proj), true);
-			assertEquals(ArrayUtil.contains(fActivePage.getEditors(),
-					editors[i]), true);
-		}
-		assertEquals(fActivePage.getEditors().length, totalBefore + num);
-
-		fActivePage.closeEditor(editors[0], false);
-		assertEquals(ArrayUtil.contains(fActivePage.getEditors(), editors[0]),
-				false);
-		assertEquals(fActivePage.getEditors().length, totalBefore + num - 1);
-
-		fActivePage.closeAllEditors(false);
-		assertEquals(fActivePage.getEditors().length, 0);
-	}
-
-	public void testShowActionSet() {
-		String id = MockActionDelegate.ACTION_SET_ID;
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-
-		int totalBefore = page.getActionSets().length;
-		fActivePage.showActionSet(id);
-
-		IActionSetDescriptor[] sets = ((WorkbenchPage) fActivePage)
-				.getActionSets();
-		boolean found = false;
-		for (int i = 0; i < sets.length; i++)
-			if (id.equals(sets[i].getId()))
-				found = true;
-		assertEquals(found, true);
-
-		// check that the method does not add an invalid action set to itself
-		id = IConstants.FakeID;
-		fActivePage.showActionSet(id);
-
-		sets = ((WorkbenchPage) fActivePage).getActionSets();
-		found = false;
-		for (int i = 0; i < sets.length; i++)
-			if (id.equals(sets[i].getId()))
-				found = true;
-		assertEquals(found, false);
-		assertEquals(page.getActionSets().length, totalBefore + 1);
-	}
-
-	public void testHideActionSet() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		int totalBefore = page.getActionSets().length;
-
-		String id = MockWorkbenchWindowActionDelegate.SET_ID;
-		fActivePage.showActionSet(id);
-		assertEquals(page.getActionSets().length, totalBefore + 1);
-
-		fActivePage.hideActionSet(id);
-		assertEquals(page.getActionSets().length, totalBefore);
-
-		IActionSetDescriptor[] sets = page.getActionSets();
-		boolean found = false;
-		for (int i = 0; i < sets.length; i++)
-			if (id.equals(sets[i].getId()))
-				found = true;
-		assertEquals(found, false);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionBarContributorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionBarContributorTest.java
deleted file mode 100644
index e7f771f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionBarContributorTest.java
+++ /dev/null
@@ -1,116 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * This is a test for IEditorPart.  Since IEditorPart is an
- * interface this test verifies the IEditorPart lifecycle rather
- * than the implementation.
- */
-public class IEditorActionBarContributorTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    private String EDITOR_ID = "org.eclipse.ui.tests.api.IEditorActionBarContributorTest";
-
-    /**
-     * Constructor for IEditorPartTest
-     */
-    public IEditorActionBarContributorTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testInit() throws Throwable {
-        // From javadoc: "Initializes this contributor, which is expected to 
-        // add contributions as required to the given action bars and global 
-        // action handlers."
-
-        // Open a part.
-        MockEditorPart part = openEditor(fPage, "1");
-
-        // Get contributor and verify call history.
-        MockEditorActionBarContributor contributor = (MockEditorActionBarContributor) part
-                .getEditorSite().getActionBarContributor();
-        CallHistory history = contributor.getCallHistory();
-        assertTrue(history
-                .verifyOrder(new String[] { "init", "setActiveEditor" }));
-        assertEquals(part, contributor.getActiveEditor());
-
-        // Close the part.
-        fPage.closeAllEditors(false);
-    }
-
-    public void testSetActiveEditor() throws Throwable {
-        // From javadoc: "Sets the active editor for the contributor."
-
-        // Open an editor.
-        MockEditorPart part = openEditor(fPage, "X");
-
-        // Get contributor and verify call history.
-        MockEditorActionBarContributor contributor = (MockEditorActionBarContributor) part
-                .getEditorSite().getActionBarContributor();
-        CallHistory history = contributor.getCallHistory();
-        assertTrue(history
-                .verifyOrder(new String[] { "init", "setActiveEditor" }));
-        assertEquals(part, contributor.getActiveEditor());
-
-        // Open a few more and verify setActiveEditor.
-        int editorCount = 5;
-        MockEditorPart[] parts = new MockEditorPart[editorCount];
-        for (int nX = 0; nX < editorCount; nX++) {
-            history.clear();
-            parts[nX] = openEditor(fPage, Integer.toString(nX));
-            assertTrue(history.verifyOrder(new String[] { "setActiveEditor" }));
-            assertEquals(parts[nX], contributor.getActiveEditor());
-        }
-
-        // Activate the parts and verify setActiveEditor.
-        for (int nX = 0; nX < editorCount; nX++) {
-            history.clear();
-            fPage.activate(parts[nX]);
-            assertTrue(history.verifyOrder(new String[] { "setActiveEditor" }));
-            assertEquals(parts[nX], contributor.getActiveEditor());
-        }
-
-        // Close the parts.
-        fPage.closeAllEditors(false);
-    }
-
-    /**
-     * @see IWorkbenchPartTest#openPart(IWorkbenchPage)
-     */
-    protected MockEditorPart openEditor(IWorkbenchPage page, String suffix)
-            throws Throwable {
-        IProject proj = FileUtil
-                .createProject("IEditorActionBarContributorTest");
-        IFile file = FileUtil.createFile("test" + suffix + ".txt", proj);
-        return (MockEditorPart) page.openEditor(new FileEditorInput(file),
-                EDITOR_ID);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionDelegateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionDelegateTest.java
deleted file mode 100644
index 925ec76..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorActionDelegateTest.java
+++ /dev/null
@@ -1,88 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-/**
- * Tests the lifecycle for an editor action delegate.
- */
-public class IEditorActionDelegateTest extends IActionDelegateTest {
-
-    public static String EDITOR_ID = "org.eclipse.ui.tests.api.IEditorActionDelegateTest";
-
-    private MockEditorPart editor;
-
-    /**
-     * Constructor for IWorkbenchWindowActionDelegateTest
-     */
-    public IEditorActionDelegateTest(String testName) {
-        super(testName);
-    }
-
-    public void testSetActiveEditor() throws Throwable {
-        // When an action delegate is run the
-        // setActiveEditor, selectionChanged, and run methods should
-        // be called, in that order.
-
-        // Run the action.
-        testRun();
-
-        // Verify lifecycle.
-        MockActionDelegate delegate = getDelegate();
-        assertNotNull(delegate);
-        assertTrue(delegate.callHistory.verifyOrder(new String[] {
-                "setActiveEditor", "selectionChanged", "run" }));
-    }
-
-    /**
-     * @see IActionDelegateTest#createActionWidget()
-     */
-    protected Object createActionWidget() throws Throwable {
-        editor = openEditor(fPage, "X");
-        return editor;
-    }
-
-    /**
-     * @see IActionDelegateTest#runAction()
-     */
-    protected void runAction(Object widget) throws Throwable {
-        MockEditorPart editor = (MockEditorPart) widget;
-        MockEditorActionBarContributor contributor = (MockEditorActionBarContributor) editor
-                .getEditorSite().getActionBarContributor();
-        IMenuManager mgr = contributor.getActionBars().getMenuManager();
-        ActionUtil.runActionWithLabel(this, mgr, "Mock Action");
-    }
-
-    /**
-     * @see IActionDelegateTest#fireSelection()
-     */
-    protected void fireSelection(Object widget) throws Throwable {
-        MockEditorPart editor = (MockEditorPart) widget;
-        editor.fireSelection();
-    }
-
-    protected MockEditorPart openEditor(IWorkbenchPage page, String suffix)
-            throws Throwable {
-        IProject proj = FileUtil.createProject("IEditorActionDelegateTest");
-        IFile file = FileUtil.createFile("test" + suffix + ".txt", proj);
-        return (MockEditorPart) page.openEditor(new FileEditorInput(file),
-                EDITOR_ID);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorDescriptorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorDescriptorTest.java
deleted file mode 100644
index 51cac67..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorDescriptorTest.java
+++ /dev/null
@@ -1,48 +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.ui.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IFileEditorMapping;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-
-public class IEditorDescriptorTest extends TestCase {
-    IEditorDescriptor[] fEditors;
-
-    public IEditorDescriptorTest(String testName) {
-        super(testName);
-    }
-
-    public void setUp() {
-        IFileEditorMapping mapping = (IFileEditorMapping) ArrayUtil
-                .pickRandom(PlatformUI.getWorkbench().getEditorRegistry()
-                        .getFileEditorMappings());
-        fEditors = mapping.getEditors();
-    }
-
-    public void testGetId() throws Throwable {
-        for (int i = 0; i < fEditors.length; i++)
-            assertNotNull(fEditors[i].getId());
-    }
-
-    public void testGetImageDescriptor() throws Throwable {
-        for (int i = 0; i < fEditors.length; i++)
-            assertNotNull(fEditors[i].getImageDescriptor());
-    }
-
-    public void testGetLabel() throws Throwable {
-        for (int i = 0; i < fEditors.length; i++)
-            assertNotNull(fEditors[i].getLabel());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorLauncherTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorLauncherTest.java
deleted file mode 100644
index 3f126a6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorLauncherTest.java
+++ /dev/null
@@ -1,16 +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.ui.tests.api;
-
-public class IEditorLauncherTest {
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorMatchingStrategyTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorMatchingStrategyTest.java
deleted file mode 100644
index a9226f1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorMatchingStrategyTest.java
+++ /dev/null
@@ -1,70 +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.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the <code>IEditorMatchingStrategyTest</code> API and behaviour.
- * 
- * @since 3.1
- */
-public class IEditorMatchingStrategyTest extends UITestCase {
-
-    private static final String MATCHING_EDITOR_ID = "org.eclipse.ui.tests.api.MockMatchingEditorPart1";
-
-    public IEditorMatchingStrategyTest(String testName) {
-        super(testName);
-    }
-
-    public void testOpenMatchingEditor() throws Exception {
-        IProject proj = FileUtil.createProject("IEditorMatchingStrategyTest");
-        IFile file1 = FileUtil.createFile("plugin.xml", proj);
-        IFile file2 = FileUtil.createFile("MANIFEST.MF", proj);
-        IFile file3 = FileUtil.createFile("build.properties", proj);
-        IFile file4 = FileUtil.createFile("something.txt", proj);
-        
-        IWorkbenchPage page = openTestWindow().getActivePage();
-        IEditorPart editor1 = page.openEditor(new FileEditorInput(file1), MATCHING_EDITOR_ID);
-        IEditorPart editor1b = page.openEditor(new FileEditorInput(file1), MATCHING_EDITOR_ID);
-        IEditorPart editor2 = page.openEditor(new FileEditorInput(file2), MATCHING_EDITOR_ID);
-        IEditorPart editor3 = page.openEditor(new FileEditorInput(file3), MATCHING_EDITOR_ID);
-        IEditorPart editor4 = page.openEditor(new FileEditorInput(file4), MATCHING_EDITOR_ID);
-        assertSame(editor1, editor1b);
-        assertSame(editor1, editor2);
-        assertSame(editor1, editor3);
-        assertNotSame(editor1, editor4);
-    }
-
-    public void testFindMatchingEditor() throws Exception {
-        IProject proj = FileUtil.createProject("IEditorMatchingStrategyTest");
-        IFile file1 = FileUtil.createFile("plugin.xml", proj);
-        IFile file2 = FileUtil.createFile("MANIFEST.MF", proj);
-        IFile file3 = FileUtil.createFile("build.properties", proj);
-        IFile file4 = FileUtil.createFile("something.txt", proj);
-        
-        IWorkbenchPage page = openTestWindow().getActivePage();
-        IEditorPart editor = page.openEditor(new FileEditorInput(file1), MATCHING_EDITOR_ID);
-        assertEquals(editor, page.findEditor(new FileEditorInput(file1)));
-        assertEquals(editor, page.findEditor(new FileEditorInput(file2)));
-        assertEquals(editor, page.findEditor(new FileEditorInput(file3)));
-        assertEquals(null, page.findEditor(new FileEditorInput(file4)));
-    }
-    
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorPartTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorPartTest.java
deleted file mode 100644
index 00eb956..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorPartTest.java
+++ /dev/null
@@ -1,83 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-/**
- * This is a test for IEditorPart. Since IEditorPart is an interface this test
- * verifies the IEditorPart lifecycle rather than the implementation.
- */
-public class IEditorPartTest extends IWorkbenchPartTest {
-
-	/**
-	 * Constructor for IEditorPartTest
-	 */
-	public IEditorPartTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * @see IWorkbenchPartTest#openPart(IWorkbenchPage)
-	 */
-	protected MockPart openPart(IWorkbenchPage page) throws Throwable {
-		IProject proj = FileUtil.createProject("IEditorPartTest");
-		IFile file = FileUtil.createFile("IEditorPartTest.txt", proj);
-		return (MockWorkbenchPart) page.openEditor(new FileEditorInput(file),
-				MockEditorPart.ID1);
-	}
-
-	/**
-	 * @see IWorkbenchPartTest#closePart(IWorkbenchPage, MockWorkbenchPart)
-	 */
-	protected void closePart(IWorkbenchPage page, MockPart part)
-			throws Throwable {
-		page.closeEditor((IEditorPart) part, true);
-	}
-
-	/**
-	 * Tests that the editor is closed without saving if isSaveOnCloseNeeded()
-	 * returns false.
-	 * 
-	 * @see ISaveablePart#isSaveOnCloseNeeded()
-	 */
-	public void testOpenAndCloseSaveNotNeeded() throws Throwable {
-		// Open a part.
-		MockEditorPart part = (MockEditorPart) openPart(fPage);
-		part.setDirty(true);
-		part.setSaveNeeded(false);
-		closePart(fPage, part);
-
-		CallHistory history = part.getCallHistory();
-		assertTrue(history.verifyOrder(new String[] { "setInitializationData",
-				"init", "createPartControl", "setFocus", "isSaveOnCloseNeeded",
-				"widgetDisposed", "dispose" }));
-		assertFalse(history.contains("doSave"));
-	}
-
-	public void testOpenAndCloseWithNoMemento() throws Throwable {
-		IProject proj = FileUtil.createProject("IEditorPartTest");
-		IFile file = FileUtil.createFile("IEditorPartTest.txt", proj);
-		MockEditorWithState editor = (MockEditorWithState) fPage.openEditor(
-				new FileEditorInput(file), MockEditorWithState.ID);
-		closePart(fPage, editor);
-		
-		CallHistory history = editor.getCallHistory();
-		assertFalse(history.contains("saveState"));
-		assertFalse(history.contains("restoreState"));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorRegistryTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorRegistryTest.java
deleted file mode 100644
index 8d557b6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorRegistryTest.java
+++ /dev/null
@@ -1,399 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IFileEditorMapping;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.misc.ExternalProgramImageDescriptor;
-import org.eclipse.ui.internal.registry.EditorRegistry;
-import org.eclipse.ui.internal.registry.FileEditorMapping;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-public class IEditorRegistryTest extends TestCase {
-	private IEditorRegistry fReg;
-
-	private IProject proj;
-
-	public IEditorRegistryTest(String testName) {
-		super(testName);
-	}
-
-	public void setUp() {
-		fReg = PlatformUI.getWorkbench().getEditorRegistry();
-	}
-
-	public void tearDown() {
-		if (proj != null) {
-			try {
-				FileUtil.deleteProject(proj);
-			} catch (CoreException e) {
-				TestPlugin.getDefault().getLog().log(e.getStatus());
-				fail();
-			}
-		}
-	}
-
-	public void testGetFileEditorMappings() {
-		assertTrue(ArrayUtil.checkNotNull(fReg.getFileEditorMappings()));
-	}
-
-	/**
-	 * tests both of the following: IEditorDescriptor[] getEditors(IFile file)
-	 * IEditorDescriptor[] getEditors(String filename)
-	 */
-	public void testGetEditors() throws Throwable {
-		IEditorDescriptor[] editors, editors2;
-		String[][] maps = { { "a.mock1", MockEditorPart.ID1 },
-				{ "b.mock2", MockEditorPart.ID2 } };
-
-		proj = FileUtil.createProject("testProject");
-
-		for (int i = 0; i < maps.length; i++) {
-			editors = fReg.getEditors(maps[i][0]);
-			assertEquals(editors.length, 1);
-			assertEquals(editors[0].getId(), maps[i][1]);
-			editors2 = fReg.getEditors(FileUtil.createFile(maps[i][0], proj)
-					.getName());
-			assertEquals(ArrayUtil.equals(editors, editors2), true);
-		}
-
-		// there is no matching editor
-		String fileName = IConstants.UnknownFileName[0];
-		editors = fReg.getEditors(fileName);
-		assertEquals(editors.length, 0);
-		editors = fReg
-				.getEditors(FileUtil.createFile(fileName, proj).getName());
-		assertEquals(editors.length, 0);
-	}
-
-	public void testFindEditor() {
-		String id = MockEditorPart.ID1;
-		IEditorDescriptor editor = fReg.findEditor(id);
-		assertEquals(editor.getId(), id);
-
-		// editor is not found
-		id = IConstants.FakeID;
-		editor = fReg.findEditor(id);
-		assertNull(editor);
-	}
-
-	/**
-	 * getDefaultEditor()
-	 */
-	public void testGetDefaultEditor() {
-		assertNotNull(fReg.getDefaultEditor());
-	}
-
-	/**
-	 * getDefaultEditor(String fileName)
-	 */
-	public void testGetDefaultEditor2() {
-		IEditorDescriptor editor = fReg.getDefaultEditor("a.mock1");
-		assertEquals(editor.getId(), MockEditorPart.ID1);
-
-		// same extension with different name
-		IEditorDescriptor editor2 = fReg.getDefaultEditor("b.mock1");
-		assertEquals(editor, editor2);
-
-		// editor not found
-		assertNull(fReg.getDefaultEditor(IConstants.UnknownFileName[0]));
-	}
-
-	/**
-	 * getDefaultEditor(IFile file)
-	 */
-	public void testGetDefaultEditor3() throws Throwable {
-		proj = FileUtil.createProject("testProject");
-
-		IFile file = FileUtil.createFile("Whats up.bro", proj);
-		String id = MockEditorPart.ID1;
-		IDE.setDefaultEditor(file, id);
-		IEditorDescriptor editor = IDE.getDefaultEditor(file);
-		assertEquals(editor.getId(), id);
-
-		// attach an IFile object with a registered extension to a different
-		// editor
-		file = FileUtil.createFile("ambush.mock1", proj);
-		id = MockEditorPart.ID2;
-		IDE.setDefaultEditor(file, id);
-		editor = IDE.getDefaultEditor(file);
-		assertEquals(editor.getId(), id);
-
-		// a non-registered IFile object with a registered extension
-		String name = "what.mock2";
-		file = FileUtil.createFile(name, proj);
-		editor = IDE.getDefaultEditor(file);
-		assertEquals(editor, fReg.getDefaultEditor(name));
-
-		// a non-registered IFile object with an unregistered extension
-		name = IConstants.UnknownFileName[0];
-		file = FileUtil.createFile(name, proj);
-		assertNull(IDE.getDefaultEditor(file));
-	}
-
-	public void testSetDefaultEditor() throws Throwable {
-		proj = FileUtil.createProject("testProject");
-		IFile file = FileUtil.createFile("good.file", proj);
-
-		String id = MockEditorPart.ID1;
-		IDE.setDefaultEditor(file, id);
-		IEditorDescriptor editor = IDE.getDefaultEditor(file);
-		assertEquals(editor.getId(), id);
-
-		// change the default editor
-		id = MockEditorPart.ID2;
-		IDE.setDefaultEditor(file, id);
-		editor = IDE.getDefaultEditor(file);
-		assertEquals(editor.getId(), id);
-
-		// register the default editor with an invalid editor id
-		IDE.setDefaultEditor(file, IConstants.FakeID);
-		assertNull(IDE.getDefaultEditor(file));
-	}
-
-	/**
-	 * tests both of the following: getImageDescriptor(IFile file)
-	 * getImageDescriptor(String filename)
-	 */
-	public void testGetImageDescriptor() throws Throwable {
-		proj = FileUtil.createProject("testProject");
-
-		ImageDescriptor image1, image2;
-		String fileName;
-
-		fileName = "a.mock1";
-		IFile file = FileUtil.createFile(fileName, proj);
-		image1 = fReg.getImageDescriptor(fileName);
-		image2 = fReg.getDefaultEditor(fileName).getImageDescriptor();
-		assertEquals(image1, image2);
-		// for getImageDescriptor(IFile file)
-		assertEquals(image1, fReg.getImageDescriptor(file.getName()));
-
-		// same extension, different file name
-		fileName = "b.mock1";
-		file = FileUtil.createFile(fileName, proj);
-		assertEquals(image1, fReg.getImageDescriptor(fileName));
-		assertEquals(image1, fReg.getImageDescriptor(file.getName()));
-
-		// default image
-		fileName = "a.nullAndVoid";
-		file = FileUtil.createFile(fileName, proj);
-		image1 = fReg.getImageDescriptor(fileName);
-		image2 = fReg.getImageDescriptor("b.this_is_not_good");
-		assertNotNull(image1);
-		if (image1 instanceof ExternalProgramImageDescriptor || image2 instanceof ExternalProgramImageDescriptor) {
-			return;//If they are external we can't compare them
-		}
-		assertEquals(image1, image2);
-		assertEquals(image2, fReg.getImageDescriptor(file.getName()));
-		
-	}
-
-	public void testAddPropertyListener() throws Throwable {
-		final String METHOD = "propertyChanged";
-
-		// take out mappings from the registry and put them back right away
-		// so that the event gets triggered without making change to the
-		// registry
-		IFileEditorMapping[] src = fReg.getFileEditorMappings();
-		FileEditorMapping[] maps = new FileEditorMapping[src.length];
-		System.arraycopy(src, 0, maps, 0, src.length);
-
-		MockPropertyListener listener = new MockPropertyListener(fReg,
-				IEditorRegistry.PROP_CONTENTS);
-		fReg.addPropertyListener(listener);
-		CallHistory callTrace = listener.getCallHistory();
-
-		// multiple listener
-		MockPropertyListener listener2 = new MockPropertyListener(fReg,
-				IEditorRegistry.PROP_CONTENTS);
-		fReg.addPropertyListener(listener2);
-		CallHistory callTrace2 = listener2.getCallHistory();
-
-		// fire!!
-		callTrace.clear();
-		callTrace2.clear();
-		((EditorRegistry) fReg).setFileEditorMappings(maps);
-		assertEquals(callTrace.contains(METHOD), true);
-		assertEquals(callTrace2.contains(METHOD), true);
-
-		// add the same listener second time
-		fReg.addPropertyListener(listener);
-
-		// fire!!
-		callTrace.clear();
-		((EditorRegistry) fReg).setFileEditorMappings(maps);
-		// make sure the method was called only once
-		assertEquals(callTrace.verifyOrder(new String[] { METHOD }), true);
-
-		fReg.removePropertyListener(listener);
-		fReg.removePropertyListener(listener2);
-	}
-
-	public void testRemovePropertyListener() {
-		IFileEditorMapping[] src = fReg.getFileEditorMappings();
-		FileEditorMapping[] maps = new FileEditorMapping[src.length];
-		System.arraycopy(src, 0, maps, 0, src.length);
-
-		MockPropertyListener listener = new MockPropertyListener(fReg,
-				IEditorRegistry.PROP_CONTENTS);
-		fReg.addPropertyListener(listener);
-		// remove the listener immediately after adding it
-		fReg.removePropertyListener(listener);
-		CallHistory callTrace = listener.getCallHistory();
-
-		// fire!!
-		callTrace.clear();
-		((EditorRegistry) fReg).setFileEditorMappings(maps);
-		assertEquals(callTrace.contains("propertyChanged"), false);
-
-		// removing the listener that is not registered yet should have no
-		// effect
-		try {
-			fReg.removePropertyListener(listener);
-		} catch (Throwable e) {
-			fail();
-		}
-	}
-
-	/**
-	 * Assert that the content-type based editor is chosen.
-	 */
-	public void testEditorContentTypeByFilenameWithContentType() {
-		IContentType contentType = Platform.getContentTypeManager()
-				.getContentType("org.eclipse.ui.tests.content-type1");
-		IEditorDescriptor descriptor = fReg.getDefaultEditor(
-				"content-type1.blah", contentType);
-		assertNotNull(descriptor);
-		assertEquals("org.eclipse.ui.tests.contentType1Editor-fallback",
-				descriptor.getId());
-	}
-
-	/**
-	 * Assert that the content type based editor is chosen.
-	 */
-	public void testEditorContentTypeByExtWithContentType() {
-		IContentType contentType = Platform.getContentTypeManager()
-				.getContentType("org.eclipse.ui.tests.content-type1");
-		IEditorDescriptor descriptor = fReg.getDefaultEditor(
-				"blah.content-type1", contentType);
-		assertNotNull(descriptor);
-		assertEquals("org.eclipse.ui.tests.contentType1Editor-fallback",
-				descriptor.getId());
-	}
-
-	/**
-	 * Assert that in the absence of content type, fall back to the traditional
-	 * filename binding.
-	 */
-	public void testEditorContentTypeByExtWithoutContentType1() {
-		IEditorDescriptor descriptor = fReg
-				.getDefaultEditor("blah.content-type1");
-		assertNotNull(descriptor);
-		assertEquals("org.eclipse.ui.tests.contentType1Editor-fallback",
-				descriptor.getId());
-	}
-
-	/**
-	 * Assert that in the absence of content type, fall back to the traditional
-	 * filename binding.
-	 */
-	public void testEditorContentTypeByFilenameWithoutContentType1() {
-		IEditorDescriptor descriptor = fReg
-				.getDefaultEditor("content-type1.blah");
-		assertNotNull(descriptor);
-		assertEquals("org.eclipse.ui.tests.contentType1Editor-fallback",
-				descriptor.getId());
-	}
-
-	/**
-	 * Assert that in the absence of content type, choose the content type
-	 * editor based on content type guess.
-	 */
-	public void testEditorContentTypeByFilenameWithoutContentType2() {
-		IEditorDescriptor descriptor = fReg
-				.getDefaultEditor("content-type2.blah");
-		assertNotNull(descriptor);
-		assertEquals("org.eclipse.ui.tests.contentType2Editor", descriptor
-				.getId());
-	}
-
-	/**
-	 * Assert that in the absence of content type, choose the content type
-	 * editor based on content type guess.
-	 */
-	public void testEditorContentTypeByExtWithoutContentType2() {
-		IEditorDescriptor descriptor = fReg
-				.getDefaultEditor("blah.content-type2");
-		assertNotNull(descriptor);
-		assertEquals("org.eclipse.ui.tests.contentType2Editor", descriptor
-				.getId());
-	}
-
-	public void testDefaultedContentTypeEditor() {
-		// check the default editor
-		IEditorDescriptor descriptor = fReg
-				.getDefaultEditor("foo.defaultedContentType");
-		assertNotNull(descriptor);
-		assertEquals("org.eclipse.ui.tests.defaultedContentTypeEditor",
-				descriptor.getId());
-
-		// check the entire list
-		IEditorDescriptor[] descriptors = fReg
-				.getEditors("foo.defaultedContentType");
-		assertNotNull(descriptors);
-		assertEquals(4, descriptors.length);
-
-		assertEquals("org.eclipse.ui.tests.defaultedContentTypeEditor",
-				descriptors[0].getId());
-		assertEquals("org.eclipse.ui.tests.nondefaultedContentTypeEditor1",
-				descriptors[1].getId());
-		assertEquals("org.eclipse.ui.tests.nondefaultedContentTypeEditor2",
-				descriptors[2].getId());
-		assertEquals("org.eclipse.ui.tests.nondefaultedContentTypeEditor3",
-				descriptors[3].getId());
-	}
-
-	/**
-	 * Assert that IEditorRegistry.getEditors() does not return null children
-	 * when the default editor has been set to null.
-	 */
-	public void testNoDefaultEditors() {
-		IEditorDescriptor desc = fReg.getDefaultEditor("bogusfile.txt");
-
-		try {
-			fReg.setDefaultEditor("*.txt", null);
-			IEditorDescriptor[] descriptors = fReg.getEditors("bogusfile.txt");
-			for (int i = 0; i < descriptors.length; i++) {
-				assertNotNull(descriptors[i]);
-			}
-		} finally {
-			if (desc != null)
-				fReg.setDefaultEditor("*.txt", desc.getId());
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorSiteTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorSiteTest.java
deleted file mode 100644
index 8dd0162..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IEditorSiteTest.java
+++ /dev/null
@@ -1,67 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-public class IEditorSiteTest extends IWorkbenchPartSiteTest {
-
-    /**
-     * Constructor for IEditorSiteTest
-     */
-    public IEditorSiteTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * @see IWorkbenchPartSiteTest#getTestPartName()
-     */
-    protected String getTestPartName() throws Throwable {
-        return MockEditorPart.NAME;
-    }
-
-    /**
-     * @see IWorkbenchPartSiteTest#getTestPartId()
-     */
-    protected String getTestPartId() throws Throwable {
-        return MockEditorPart.ID1;
-    }
-
-    /**
-     * @see IWorkbenchPartSiteTest#createTestPart(IWorkbenchPage)
-     */
-    protected IWorkbenchPart createTestPart(IWorkbenchPage page)
-            throws Throwable {
-        IProject proj = FileUtil.createProject("createTestPart");
-        IFile file = FileUtil.createFile("test1.mock1", proj);
-        return IDE.openEditor(page, file, true);
-    }
-
-    public void testGetActionBarContributor() throws Throwable {
-        // From Javadoc: "Returns the editor action bar contributor for 
-        // this editor.
-
-        IEditorPart editor = (IEditorPart) createTestPart(fPage);
-        IEditorSite site = editor.getEditorSite();
-        assertNull(site.getActionBarContributor());
-
-        // TBD: Flesh this out with a real contributor.
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IFileEditorMappingTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IFileEditorMappingTest.java
deleted file mode 100644
index 5198add..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IFileEditorMappingTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IFileEditorMapping;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-
-public class IFileEditorMappingTest extends TestCase {
-    private IFileEditorMapping[] fMappings;
-
-    public IFileEditorMappingTest(String testName) {
-        super(testName);
-    }
-
-    public void setUp() {
-        fMappings = PlatformUI.getWorkbench().getEditorRegistry()
-                .getFileEditorMappings();
-    }
-
-    public void testGetName() throws Throwable {
-        for (int i = 0; i < fMappings.length; i++)
-            assertNotNull(fMappings[i].getName());
-    }
-
-    public void testGetLabel() throws Throwable {
-        String label;
-        for (int i = 0; i < fMappings.length; i++) {
-            label = fMappings[i].getLabel();
-            assertNotNull(label);
-            assertEquals(label, fMappings[i].getName() + "."
-                    + fMappings[i].getExtension());
-        }
-    }
-
-    public void testGetExtension() throws Throwable {
-        for (int i = 0; i < fMappings.length; i++)
-            assertNotNull(fMappings[i].getExtension());
-    }
-
-    public void testGetEditors() throws Throwable {
-        IEditorDescriptor[] editors;
-
-        for (int i = 0; i < fMappings.length; i++) {
-            editors = fMappings[i].getEditors();
-            assertTrue(ArrayUtil.checkNotNull(editors) == true);
-        }
-    }
-
-    public void testGetImageDescriptor() throws Throwable {
-        for (int i = 0; i < fMappings.length; i++)
-            assertNotNull(fMappings[i].getImageDescriptor());
-    }
-
-    //how do i set the default editor?
-    public void testGetDefaultEditor() throws Throwable {
-        /*		for( int i = 0; i < fMappings.length; i ++ )
-         assertNotNull( fMappings[ i ].getDefaultEditor() );*/
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageLayoutTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageLayoutTest.java
deleted file mode 100644
index 1525ba5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageLayoutTest.java
+++ /dev/null
@@ -1,32 +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.tests.api;
-
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test cases for the <code>IPageLayout</code> API.
- * 
- * @since 3.2
- */
-public class IPageLayoutTest extends UITestCase {
-
-	public IPageLayoutTest(String testName) {
-		super(testName);
-	}
-
-	public void testGetDescriptor() {
-		EmptyPerspective.setLastPerspective(null);
-		openTestWindow(EmptyPerspective.PERSP_ID);
-		assertEquals(EmptyPerspective.PERSP_ID, EmptyPerspective.getLastPerspective());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageListenerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageListenerTest.java
deleted file mode 100644
index 66b6f3c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageListenerTest.java
+++ /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
- *******************************************************************************/
-package org.eclipse.ui.tests.api;
-
-import org.eclipse.ui.IPageListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the IPageListener class.
- */
-public class IPageListenerTest extends UITestCase implements IPageListener {
-    private IWorkbenchWindow fWindow;
-
-    private int eventsReceived = 0;
-
-    final private int OPEN = 0x01;
-
-    final private int CLOSE = 0x02;
-
-    final private int ACTIVATE = 0x04;
-
-    private IWorkbenchPage pageMask;
-
-    public IPageListenerTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fWindow.addPageListener(this);
-    }
-
-    protected void doTearDown() throws Exception {
-        fWindow.removePageListener(this);
-        super.doTearDown();
-    }
-
-    /**
-     * Tests the pageOpened method.
-     */
-    public void testPageOpened() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         // From Javadoc: "Notifies this listener that the given page has been opened."
-         
-         // Test open page.
-         eventsReceived = 0;
-         IWorkbenchPage page = fWindow.openPage(EmptyPerspective.PERSP_ID,
-         fWorkspace);
-         assertEquals(eventsReceived, OPEN|ACTIVATE);
-         
-         // Close page.
-         page.close();
-         */
-    }
-
-    /**
-     * Tests the pageClosed method.
-     */
-    public void testPageClosed() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         // From Javadoc: "Notifies this listener that the given page has been closed."
-         
-         // Open page.
-         IWorkbenchPage page = fWindow.openPage(EmptyPerspective.PERSP_ID,
-         fWorkspace);
-         
-         // Test close page.
-         eventsReceived = 0;
-         pageMask = page;
-         page.close();
-         assertEquals(eventsReceived, CLOSE);
-         */
-    }
-
-    /**
-     * Tests the pageActivated method.
-     */
-    public void testPageActivate() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         // From Javadoc: "Notifies this listener that the given page has been activated."
-         
-         // Add pages.
-         IWorkbenchPage page1 = fWindow.openPage(EmptyPerspective.PERSP_ID,
-         fWorkspace);
-         IWorkbenchPage page2 = fWindow.openPage(EmptyPerspective.PERSP_ID,
-         fWorkspace);
-         
-         // Test activation of page 1.
-         eventsReceived = 0;
-         pageMask = page1;
-         fWindow.setActivePage(page1);
-         assertEquals(eventsReceived, ACTIVATE);
-
-         // Test activation of page 2.
-         eventsReceived = 0;		
-         pageMask = page2;
-         fWindow.setActivePage(page2);
-         assertEquals(eventsReceived, ACTIVATE);
-         
-         // Cleanup.
-         page1.close();
-         page2.close();
-         */
-    }
-
-    /**
-     * @see IPageListener#pageActivated(IWorkbenchPage)
-     */
-    public void pageActivated(IWorkbenchPage page) {
-        if (pageMask == null || page == pageMask)
-            eventsReceived |= ACTIVATE;
-    }
-
-    /**
-     * @see IPageListener#pageClosed(IWorkbenchPage)
-     */
-    public void pageClosed(IWorkbenchPage page) {
-        if (pageMask == null || page == pageMask)
-            eventsReceived |= CLOSE;
-    }
-
-    /**
-     * @see IPageListener#pageOpened(IWorkbenchPage)
-     */
-    public void pageOpened(IWorkbenchPage page) {
-        if (pageMask == null || page == pageMask)
-            eventsReceived |= OPEN;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageServiceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageServiceTest.java
deleted file mode 100644
index 3899ad1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPageServiceTest.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.ui.IPageListener;
-import org.eclipse.ui.IPageService;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.SlavePageService;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the IPageService class.
- */
-public class IPageServiceTest extends UITestCase implements IPageListener,
-        org.eclipse.ui.IPerspectiveListener {
-    private IWorkbenchWindow fWindow;
-
-    private boolean pageEventReceived;
-
-    private boolean perspEventReceived;
-
-    public IPageServiceTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-    }
-
-    public void testLocalPageService() throws Throwable {
-		IWorkbenchPage page = fWindow.openPage(EmptyPerspective.PERSP_ID,
-				getPageInput());
-
-		MockViewPart view = (MockViewPart) page.showView(MockViewPart.ID);
-
-		IPageService slaveService = (IPageService) view.getSite().getService(
-				IPageService.class);
-
-		assertTrue(fWindow != slaveService);
-		assertTrue(slaveService instanceof SlavePageService);
-
-		perspEventReceived = false;
-		slaveService.addPerspectiveListener(this);
-		page.resetPerspective();
-
-		assertTrue(perspEventReceived);
-
-
-		page.hideView(view);
-		
-		perspEventReceived = false;
-		page.resetPerspective();
-		
-		assertFalse(perspEventReceived);
-	}
-    
-    /**
-	 * Tests the addPageListener method.
-	 */
-    public void testAddPageListener() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         // From Javadoc: "Adds the given listener for page lifecycle events.
-         // Has no effect if an identical listener is already registered."
-         
-         // Add listener.
-         fWindow.addPageListener(this);
-         
-         // Open and close page.
-         // Verify events are received.
-         pageEventReceived = false;
-         IWorkbenchPage page = fWindow.openPage(EmptyPerspective.PERSP_ID,
-         fWorkspace);
-         page.close();
-         assertTrue(pageEventReceived);
-         
-         // Remove listener.	
-         fWindow.removePageListener(this);		
-         */
-    }
-
-    /**
-     * Tests the removePageListener method.
-     */
-    public void testRemovePageListener() throws Throwable {
-        // From Javadoc: "Removes the given page listener.
-        // Has no affect if an identical listener is not registered."
-
-        // Add and remove listener.
-        fWindow.addPageListener(this);
-        fWindow.removePageListener(this);
-
-        // Open and close page.
-        // Verify no events are received.
-        pageEventReceived = false;
-        IWorkbenchPage page = fWindow.openPage(EmptyPerspective.PERSP_ID, getPageInput());
-        page.close();
-        assertTrue(!pageEventReceived);
-    }
-
-    /**
-     * Tests getActivePage.
-     */
-    public void testGetActivePage() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         // From Javadoc: "return the active page, or null if no page 
-         // is currently active"
-         
-         // Add page.
-         IWorkbenchPage page1 = fWindow.openPage(EmptyPerspective.PERSP_ID,
-         fWorkspace);
-         assertEquals(fWindow.getActivePage(), page1);
-         
-         // Add second page.
-         IWorkbenchPage page2 = fWindow.openPage(EmptyPerspective.PERSP_ID,
-         fWorkspace);
-         assertEquals(fWindow.getActivePage(), page2);
-         
-         // Set active page.
-         fWindow.setActivePage(page1);
-         assertEquals(fWindow.getActivePage(), page1);
-         fWindow.setActivePage(page2);
-         assertEquals(fWindow.getActivePage(), page2);
-         
-         // Cleanup.
-         page1.close();
-         page2.close();
-         */
-    }
-
-    /**
-     * Tests the addPerspectiveListener method.
-     */
-    public void testAddPerspectiveListener() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         // From Javadoc: "Adds the given listener for a page's perspective lifecycle events.
-         // Has no effect if an identical listener is already registered."
-         
-         // Add listener.
-         fWindow.addPerspectiveListener(this);
-         
-         // Open page and change persp feature.
-         // Verify events are received.
-         perspEventReceived = false;
-         IWorkbenchPage page = fWindow.openPage(IWorkbenchConstants.DEFAULT_LAYOUT_ID,
-         fWorkspace);
-         page.setEditorAreaVisible(false);
-         page.setEditorAreaVisible(true);
-         page.close();
-         assertTrue(perspEventReceived);
-         
-         // Remove listener.	
-         fWindow.removePerspectiveListener(this);		
-         */
-    }
-
-    /**
-     * Tests the removePerspectiveListener method.
-     */
-    public void testRemovePerspectiveListener() throws Throwable {
-        // From Javadoc: "Removes the given page's perspective listener.
-        // Has no affect if an identical listener is not registered."
-
-        // Add and remove listener.
-        fWindow.addPerspectiveListener(this);
-        fWindow.removePerspectiveListener(this);
-
-        // Open page and change persp feature.
-        // Verify no events are received.
-        perspEventReceived = false;
-        IWorkbenchPage page = fWindow.openPage(IDE.RESOURCE_PERSPECTIVE_ID, getPageInput());
-        page.setEditorAreaVisible(false);
-        page.setEditorAreaVisible(true);
-        page.close();
-        assertTrue(!perspEventReceived);
-    }
-
-    /**
-     * @see IPageListener#pageActivated(IWorkbenchPage)
-     */
-    public void pageActivated(IWorkbenchPage page) {
-        pageEventReceived = true;
-    }
-
-    /**
-     * @see IPageListener#pageClosed(IWorkbenchPage)
-     */
-    public void pageClosed(IWorkbenchPage page) {
-        pageEventReceived = true;
-    }
-
-    /**
-     * @see IPageListener#pageOpened(IWorkbenchPage)
-     */
-    public void pageOpened(IWorkbenchPage page) {
-        pageEventReceived = true;
-    }
-
-    /**
-     * @see IPerspectiveListener#perspectiveActivated(IWorkbenchPage, IPerspectiveDescriptor)
-     */
-    public void perspectiveActivated(IWorkbenchPage page,
-            IPerspectiveDescriptor perspective) {
-        perspEventReceived = true;
-    }
-
-    /**
-     * @see IPerspectiveListener#perspectiveChanged(IWorkbenchPage, IPerspectiveDescriptor, String)
-     */
-    public void perspectiveChanged(IWorkbenchPage page,
-            IPerspectiveDescriptor perspective, String changeId) {
-        perspEventReceived = true;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPartServiceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPartServiceTest.java
deleted file mode 100644
index c4d00d0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPartServiceTest.java
+++ /dev/null
@@ -1,603 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IPartService;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.PartSite;
-import org.eclipse.ui.internal.SlavePartService;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the IPartService, IPartListener and IPartListener2 interfaces.
- */
-public class IPartServiceTest extends UITestCase {
-
-    private IWorkbenchWindow fWindow;
-
-    private IWorkbenchPage fPage;
-
-    // Event state.
-    private IWorkbenchPart eventPart;
-
-    private IWorkbenchPartReference eventPartRef;
-
-    class TestPartListener implements IPartListener {
-        public void partActivated(IWorkbenchPart part) {
-            history.add("partActivated");
-            eventPart = part;
-        }
-
-        public void partBroughtToTop(IWorkbenchPart part) {
-            history.add("partBroughtToTop");
-            eventPart = part;
-        }
-
-        public void partClosed(IWorkbenchPart part) {
-            history.add("partClosed");
-            eventPart = part;
-        }
-
-        public void partDeactivated(IWorkbenchPart part) {
-            history.add("partDeactivated");
-            eventPart = part;
-        }
-
-        public void partOpened(IWorkbenchPart part) {
-            history.add("partOpened");
-            eventPart = part;
-        }
-    }
-
-    class TestPartListener2 implements IPartListener2 {
-        public void partActivated(IWorkbenchPartReference ref) {
-            history2.add("partActivated");
-            eventPartRef = ref;
-        }
-
-        public void partBroughtToTop(IWorkbenchPartReference ref) {
-            history2.add("partBroughtToTop");
-            eventPartRef = ref;
-        }
-
-        public void partClosed(IWorkbenchPartReference ref) {
-            history2.add("partClosed");
-            eventPartRef = ref;
-        }
-
-        public void partDeactivated(IWorkbenchPartReference ref) {
-            history2.add("partDeactivated");
-            eventPartRef = ref;
-        }
-
-        public void partOpened(IWorkbenchPartReference ref) {
-            history2.add("partOpened");
-            eventPartRef = ref;
-        }
-
-        public void partHidden(IWorkbenchPartReference ref) {
-            history2.add("partHidden");
-            eventPartRef = ref;
-        }
-
-        public void partVisible(IWorkbenchPartReference ref) {
-            history2.add("partVisible");
-            eventPartRef = ref;
-        }
-
-        public void partInputChanged(IWorkbenchPartReference ref) {
-            history2.add("partInputChanged");
-            eventPartRef = ref;
-        }
-    }
-
-    private IPartListener partListener = new TestPartListener();
-
-    private IPartListener2 partListener2 = new TestPartListener2();
-
-    private CallHistory history = new CallHistory(partListener);
-
-    private CallHistory history2 = new CallHistory(partListener2);
-
-    public IPartServiceTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Clear the event state.
-     */
-    private void clearEventState() {
-        eventPart = null;
-        eventPartRef = null;
-        history.clear();
-        history2.clear();
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    private IWorkbenchPartReference getRef(IWorkbenchPart part) {
-        return ((PartSite) part.getSite()).getPartReference();
-    }
-
-    /**
-     * Tests the addPartListener method on IWorkbenchPage's part service.
-     */
-    public void testAddPartListenerToPage() throws Throwable {
-        // From Javadoc: "Adds the given listener for part lifecycle events.
-        // Has no effect if an identical listener is already registered."
-        fPage.addPartListener(partListener);
-        fPage.addPartListener(partListener2);
-
-        // Open a view.
-        // Verify events are received.
-        clearEventState();
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        assertTrue(history.verifyOrder(new String[] { "partOpened",
-                "partActivated" }));
-        assertEquals(view, eventPart);
-        assertTrue(history2.verifyOrder(new String[] { "partOpened",
-                "partVisible", "partActivated" }));
-        assertEquals(getRef(view), eventPartRef);
-
-        // Hide the view
-        // Verify events are received.
-        clearEventState();
-        fPage.hideView(view);
-        assertTrue(history.verifyOrder(new String[] { "partDeactivated",
-                "partClosed" }));
-        assertEquals(view, eventPart);
-        assertTrue(history2.verifyOrder(new String[] { "partDeactivated",
-                "partHidden", "partClosed" }));
-        assertEquals(getRef(view), eventPartRef);
-        
-        fPage.removePartListener(partListener);
-        fPage.removePartListener(partListener2);
-    }
-    
-    public void testLocalPartService() throws Throwable {
-    	IPartService service = (IPartService) fWindow
-				.getService(IPartService.class);
-
-		MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-		MockViewPart view2 = (MockViewPart) fPage.showView(MockViewPart.ID2);
-
-		IPartService slaveService = (IPartService) view.getSite()
-				.getService(IPartService.class);
-
-		assertTrue(service != slaveService);
-		assertNotNull(slaveService);
-		assertNotNull(service);
-		assertTrue(slaveService instanceof SlavePartService);
-
-		// Add listener, should receive events
-		slaveService.addPartListener(partListener);
-		fPage.activate(view);
-
-		assertTrue(history.verifyOrder(new String[] { "partDeactivated",
-				"partActivated" }));
-
-		// Remove listener, should not receive events
-		slaveService.removePartListener(partListener);
-		clearEventState();
-		fPage.activate(view2);
-		assertTrue(history.isEmpty());
-
-		// Hide another view, should still receive events
-		slaveService.addPartListener(partListener);
-		clearEventState();
-		fPage.hideView(view2);
-		assertTrue(history.verifyOrder(new String[] { "partDeactivated",
-				"partActivated", "partClosed" }));
-		
-		// Hide view, listeners should be disposed
-		fPage.hideView(view);
-		clearEventState();
-		fPage.showView(MockViewPart.ID3);
-		assertTrue(history.isEmpty());
-    }
-
-    /**
-     * Tests the addPartListener method on IWorkbenchWindow's part service.
-     */
-    public void testAddPartListenerToWindow() throws Throwable {
-        // From Javadoc: "Adds the given listener for part lifecycle events.
-		// Has no effect if an identical listener is already registered."
-		IPartService service = (IPartService) fWindow
-				.getService(IPartService.class);
-		service.addPartListener(partListener);
-		service.addPartListener(partListener2);
-
-        // Open a view.
-        // Verify events are received.
-        clearEventState();
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        assertTrue(history.verifyOrder(new String[] { "partOpened",
-                "partActivated" }));
-        assertEquals(view, eventPart);
-        assertTrue(history2.verifyOrder(new String[] { "partOpened",
-                "partVisible", "partActivated" }));
-        assertEquals(getRef(view), eventPartRef);
-
-        // Hide the view
-        // Verify events are received.
-        clearEventState();
-        fPage.hideView(view);
-        assertTrue(history.verifyOrder(new String[] { "partDeactivated",
-                "partClosed" }));
-        assertEquals(view, eventPart);
-        assertTrue(history2.verifyOrder(new String[] { "partDeactivated",
-                "partHidden", "partClosed" }));
-        assertEquals(getRef(view), eventPartRef);
-        
-        service.removePartListener(partListener);
-        service.removePartListener(partListener2);
-    }
-
-    /**
-     * Tests the removePartListener method on IWorkbenchPage's part service.
-     */
-    public void testRemovePartListenerFromPage() throws Throwable {
-        // From Javadoc: "Removes the given part listener.
-        // Has no affect if an identical listener is not registered."
-
-        // Add and remove listener.
-        fPage.addPartListener(partListener);
-        fPage.addPartListener(partListener2);
-        fPage.removePartListener(partListener);
-        fPage.removePartListener(partListener2);
-
-        // Open a view.
-        // Verify no events are received.
-        clearEventState();
-        fPage.showView(MockViewPart.ID);
-        assertTrue(history.isEmpty());
-        assertTrue(history2.isEmpty());
-    }
-
-    /**
-     * Tests the removePartListener method on IWorkbenchWindow's part service.
-     */
-    public void testRemovePartListenerFromWindow() throws Throwable {
-		// From Javadoc: "Removes the given part listener.
-		// Has no affect if an identical listener is not registered."
-
-		// Add and remove listener.
-		IPartService service = (IPartService) fWindow
-				.getService(IPartService.class);
-		service.addPartListener(partListener);
-		service.addPartListener(partListener2);
-		service.removePartListener(partListener);
-		service.removePartListener(partListener2);
-
-		// Open a view.
-		// Verify no events are received.
-		clearEventState();
-		fPage.showView(MockViewPart.ID);
-		assertTrue(history.isEmpty());
-		assertTrue(history2.isEmpty());
-	}
-
-    /**
-	 * Tests the partHidden method by closing a view when it is not shared with
-	 * another perspective. Includes regression test for: Bug 60039 [ViewMgmt]
-	 * (regression) IWorkbenchPage#findView returns non-null value after part
-	 * has been closed
-	 */
-    public void testPartHiddenWhenClosedAndUnshared() throws Throwable {
-        IPartListener2 listener = new TestPartListener2() {
-            public void partHidden(IWorkbenchPartReference ref) {
-                super.partHidden(ref);
-                // ensure that the notification is for the view we closed
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the view cannot be found
-                assertNull(fPage.findView(MockViewPart.ID));
-            }
-        };
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        fPage.addPartListener(listener);
-        clearEventState();
-        fPage.hideView(view);
-        assertTrue(history2.contains("partHidden"));
-        assertEquals(getRef(view), eventPartRef);
-        fPage.removePartListener(listener);
-    }
-
-    /**
-     * Tests the partHidden method by closing a view when it is shared with another perspective.
-     * Includes regression test for: 
-     *   Bug 60039 [ViewMgmt] (regression) IWorkbenchPage#findView returns non-null value after part has been closed
-     */
-    public void testPartHiddenWhenClosedAndShared() throws Throwable {
-        IPartListener2 listener = new TestPartListener2() {
-            public void partHidden(IWorkbenchPartReference ref) {
-                super.partHidden(ref);
-                // ensure that the notification is for the view we closed
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the view cannot be found
-                assertNull(fPage.findView(MockViewPart.ID));
-            }
-        };
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        IPerspectiveDescriptor emptyPerspDesc2 = fWindow.getWorkbench()
-                .getPerspectiveRegistry().findPerspectiveWithId(
-                        EmptyPerspective.PERSP_ID2);
-        fPage.setPerspective(emptyPerspDesc2);
-        MockViewPart view2 = (MockViewPart) fPage.showView(MockViewPart.ID);
-        assertTrue(view == view2);
-        fPage.addPartListener(listener);
-        clearEventState();
-        fPage.hideView(view);
-        assertTrue(history2.contains("partHidden"));
-        assertEquals(getRef(view), eventPartRef);
-        fPage.removePartListener(listener);
-    }
-
-    /**
-     * Tests the partHidden method by activating another view in the same folder.
-     */
-    public void testPartHiddenWhenObscured() throws Throwable {
-        final boolean[] eventReceived = { false };
-        IPartListener2 listener = new TestPartListener2() {
-            public void partHidden(IWorkbenchPartReference ref) {
-                super.partHidden(ref);
-                // ensure that the notification is for the view that was obscured
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the view can still be found
-                assertNotNull(fPage.findView(MockViewPart.ID));
-                eventReceived[0] = true;
-            }
-        };
-        MockViewPart view2 = (MockViewPart) fPage.showView(MockViewPart.ID2);
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        assertEquals(view, fPage.getActivePart());
-        fPage.addPartListener(listener);
-        clearEventState();
-        fPage.activate(view2);
-        fPage.removePartListener(listener);
-        assertTrue(eventReceived[0]);
-    }
-
-    /**
-     * Tests the partVisible method by showing a view when it is not
-     * open in any other perspectives.
-     */
-    public void testPartVisibleWhenOpenedUnshared() throws Throwable {
-        final boolean[] eventReceived = { false };
-        IPartListener2 listener = new TestPartListener2() {
-            public void partVisible(IWorkbenchPartReference ref) {
-                super.partVisible(ref);
-                // ensure that the notification is for the view we opened
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the view can be found
-                assertNotNull(fPage.findView(MockViewPart.ID));
-                eventReceived[0] = true;
-            }
-        };
-        fPage.addPartListener(listener);
-        clearEventState();
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        fPage.removePartListener(listener);
-        assertEquals(view, fPage.getActivePart());
-        assertTrue(eventReceived[0]);
-    }
-
-    /**
-     * Tests the partVisible method by showing a view when it is already
-     * open in another perspective.
-     */
-    public void testPartVisibleWhenOpenedShared() throws Throwable {
-        final boolean[] eventReceived = { false };
-        IPartListener2 listener = new TestPartListener2() {
-            public void partVisible(IWorkbenchPartReference ref) {
-                super.partVisible(ref);
-                // ensure that the notification is for the view we opened
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the view can be found
-                assertNotNull(fPage.findView(MockViewPart.ID));
-                eventReceived[0] = true;
-            }
-        };
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        IPerspectiveDescriptor emptyPerspDesc2 = fWindow.getWorkbench()
-                .getPerspectiveRegistry().findPerspectiveWithId(
-                        EmptyPerspective.PERSP_ID2);
-        fPage.setPerspective(emptyPerspDesc2);
-        fPage.addPartListener(listener);
-        clearEventState();
-        MockViewPart view2 = (MockViewPart) fPage.showView(MockViewPart.ID);
-        assertTrue(view == view2);
-        assertEquals(view2, fPage.getActivePart());
-        assertTrue(eventReceived[0]);
-        fPage.removePartListener(listener);
-    }
-
-    /**
-     * Tests that both a part hidden and a part closed event are sent when
-     * a part is closed
-     *
-     * @throws Throwable
-     */
-    public void testPartHiddenBeforeClosing() throws Throwable {
-        
-        final boolean[] eventReceived = {false, false};
-        IPartListener2 listener = new TestPartListener2() {
-            public void partHidden(IWorkbenchPartReference ref) {
-                super.partHidden(ref);
-                // ensure that the notification is for the view we revealed
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the part cannot be found in the page
-                assertNull(fPage.findView(MockViewPart.ID));
-                // Ensure that partHidden is sent first
-                eventReceived[0] = true;
-                assertFalse(eventReceived[1]);
-            }
-            public void partClosed(IWorkbenchPartReference ref) {
-                super.partClosed(ref);
-                // ensure that the notification is for the view we revealed
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the view can no longer be found
-                assertNull(fPage.findView(MockViewPart.ID));
-                // Ensure that partHidden is sent first
-                eventReceived[1] = true;
-                assertTrue(eventReceived[0]);
-
-            }
-        };
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        assertEquals(view, fPage.getActivePart());
-        fPage.addPartListener(listener);
-        clearEventState();
-        fPage.hideView(view);
-        fPage.removePartListener(listener);
-        history.verifyOrder(new String[] {"partHidden", "partClosed"});
-        assertTrue(eventReceived[0]);
-        assertTrue(eventReceived[1]);
-    }
-    
-    /**
-     * Tests the partVisible method by activating a view obscured by
-     * another view in the same folder.
-     */
-    public void testPartVisibleWhenObscured() throws Throwable {
-        final boolean[] eventReceived = { false };
-        IPartListener2 listener = new TestPartListener2() {
-            public void partVisible(IWorkbenchPartReference ref) {
-                super.partVisible(ref);
-                // ensure that the notification is for the view we revealed
-                assertEquals(MockViewPart.ID, ref.getId());
-                // ensure that the view can still be found
-                assertNotNull(fPage.findView(MockViewPart.ID));
-                eventReceived[0] = true;
-            }
-        };
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        MockViewPart view2 = (MockViewPart) fPage.showView(MockViewPart.ID2);
-        assertEquals(view2, fPage.getActivePart());
-        fPage.addPartListener(listener);
-        clearEventState();
-        fPage.activate(view);
-        fPage.removePartListener(listener);
-        assertTrue(eventReceived[0]);
-    }
-    
-//    /**
-//     * Tests that when a partOpened is received for a view being shown,
-//     * the view is available via findView, findViewReference, getViews and getViewReferences.
-//     * 
-//     * @since 3.1
-//     */
-// This does not work as expected.  See bug 93784.
-//  
-//    public void testViewFoundWhenOpened() throws Throwable {
-//    	final String viewId = MockViewPart.ID;
-//        final boolean[] eventReceived = { false, false };
-//        IPartListener listener = new TestPartListener() {
-//            public void partOpened(IWorkbenchPart part) {
-//                super.partOpened(part);
-//                // ensure that the notification is for the view we opened
-//                assertEquals(viewId, part.getSite().getId());
-//                // ensure that the view can be found
-//                assertNotNull(fPage.findView(viewId));
-//                IViewPart[] views = fPage.getViews();
-//                assertEquals(1, views.length);
-//                assertEquals(viewId, views[0].getSite().getId());
-//                eventReceived[0] = true;
-//            }
-//        };
-//        IPartListener2 listener2 = new TestPartListener2() {
-//            public void partOpened(IWorkbenchPartReference ref) {
-//                super.partOpened(ref);
-//                // ensure that the notification is for the view we opened
-//                assertEquals(viewId, ref.getId());
-//                // ensure that the view can be found
-//                assertNotNull(fPage.findViewReference(viewId));
-//                IViewReference[] refs = fPage.getViewReferences();
-//                assertEquals(1, refs.length);
-//                assertEquals(viewId, refs[0].getId());
-//                eventReceived[1] = true;
-//            }
-//        };
-//        fPage.addPartListener(listener);
-//        fPage.addPartListener(listener2);
-//        fPage.showView(viewId);
-//        fPage.removePartListener(listener);
-//        fPage.removePartListener(listener2);
-//        assertTrue(eventReceived[0]);
-//        assertTrue(eventReceived[1]);
-//    }
-
-    /**
-     * Tests that when a partOpened is received for an editor being opened,
-     * the editor is available via findEditor, getEditors, and getEditorReferences.
-     * 
-     * @since 3.1
-     */
-    public void testEditorFoundWhenOpened() throws Throwable {
-    	final String editorId = MockEditorPart.ID1;
-		IProject proj = FileUtil.createProject("IPartServiceTest");
-		IFile file = FileUtil.createFile("testEditorFoundWhenOpened.txt", proj);
-		final IEditorInput editorInput = new FileEditorInput(file);
-    	
-        final boolean[] eventReceived = { false, false };
-        IPartListener listener = new TestPartListener() {
-            public void partOpened(IWorkbenchPart part) {
-                super.partOpened(part);
-                // ensure that the notification is for the editor we opened
-                assertEquals(editorId, part.getSite().getId());
-                // ensure that the editor can be found
-                assertNotNull(fPage.findEditor(editorInput));
-                IEditorPart[] editors = fPage.getEditors();
-                assertEquals(1, editors.length);
-                assertEquals(editorId, editors[0].getSite().getId());
-                eventReceived[0] = true;
-            }
-        };
-        IPartListener2 listener2 = new TestPartListener2() {
-            public void partOpened(IWorkbenchPartReference ref) {
-                super.partOpened(ref);
-                // ensure that the notification is for the editor we opened
-                assertEquals(editorId, ref.getId());
-                // ensure that the editor can be found
-                IEditorReference[] refs = fPage.getEditorReferences();
-                assertEquals(1, refs.length);
-                assertEquals(editorId, refs[0].getId());
-                eventReceived[1] = true;
-            }
-        };
-        fPage.addPartListener(listener);
-        fPage.addPartListener(listener2);
-		fPage.openEditor(editorInput, editorId);
-        fPage.removePartListener(listener);
-        fPage.removePartListener(listener2);
-        assertTrue(eventReceived[0]);
-        assertTrue(eventReceived[1]);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveDescriptorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveDescriptorTest.java
deleted file mode 100644
index dee7a5b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveDescriptorTest.java
+++ /dev/null
@@ -1,70 +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.ui.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.PlatformUI;
-
-public class IPerspectiveDescriptorTest extends TestCase {
-
-    private IPerspectiveDescriptor[] fPerspectives;
-
-    public IPerspectiveDescriptorTest(String testName) {
-        super(testName);
-    }
-
-    public void setUp() {
-        fPerspectives = PlatformUI
-                .getWorkbench().getPerspectiveRegistry().getPerspectives();
-    }
-
-    /**
-     * Tests that the ids for all perspective descriptors are non-null and non-empty.
-     */
-    public void testGetId() {
-        for (int i = 0; i < fPerspectives.length; i++) {
-            String id = fPerspectives[i].getId();
-            assertNotNull(id);
-            assertTrue(id.length() > 0);
-        }
-    }
-
-    /**
-     * Tests that the labels for all perspective descriptors are non-null and non-empty.
-     */
-    public void testGetLabel() {
-        for (int i = 0; i < fPerspectives.length; i++) {
-            String label = fPerspectives[i].getLabel();
-            assertNotNull(label);
-            assertTrue(label.length() > 0);
-        }
-    }
-
-    /**
-     * Tests that the image descriptors for all perspective descriptors are non-null.
-     * <p>
-     * Note that some perspective extensions in the test suite do not specify an icon
-     * attribute.  getImageDescriptor should return a default image descriptor in this
-     * case.  This is a regression test for bug 68325.
-     * </p>
-     */
-    public void testGetImageDescriptor() {
-        for (int i = 0; i < fPerspectives.length; i++) {
-            ImageDescriptor image = fPerspectives[i].getImageDescriptor();
-            assertNotNull(image);
-        }
-    }
-    
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveListenerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveListenerTest.java
deleted file mode 100644
index 3fee6e2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveListenerTest.java
+++ /dev/null
@@ -1,110 +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.ui.tests.api;
-
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveListener;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class IPerspectiveListenerTest extends UITestCase implements
-        IPerspectiveListener {
-    private int fEvent;
-
-    private IWorkbenchWindow fWindow;
-
-    private IWorkbenchPage fPageMask;
-
-    private IPerspectiveDescriptor fPerMask;
-
-    /**
-     * bit masks for events
-     */
-    public static final int NONE = 0x00, OPEN = 0x01, CLOSED = 0x02,
-            ACTIVATED = 0x04, CHANGED = 0x08;
-
-    public IPerspectiveListenerTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fEvent = NONE;
-        fWindow = openTestWindow();
-        fWindow.addPerspectiveListener(this);
-    }
-
-    protected void doTearDown() throws Exception {
-        fWindow.removePerspectiveListener(this);
-        super.doTearDown();
-    }
-
-    public void testPerspectiveActivated() {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         fPageMask = fWindow.getActivePage();
-         fPerMask = fWorkbench.getPerspectiveRegistry().findPerspectiveWithId(EmptyPerspective.PERSP_ID );
-         fPageMask.setPerspective( fPerMask );
-         
-         assertEquals( isActivated( fEvent ), true );
-         */
-    }
-
-    public void testPerspectiveChanged() {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         fPageMask = fWindow.getActivePage();
-         fPerMask = fWorkbench.getPerspectiveRegistry().findPerspectiveWithId(EmptyPerspective.PERSP_ID );
-         fPageMask.setPerspective( fPerMask );
-         
-         assertEquals( isActivated( fEvent ), true );
-         */
-    }
-
-    /**
-     * @see IPerspectiveListener#perspectiveActivated(IWorkbenchPage, IPerspectiveDescriptor)
-     */
-    public void perspectiveActivated(IWorkbenchPage page,
-            IPerspectiveDescriptor perspective) {
-        if (page == fPageMask && perspective == fPerMask)
-            fEvent |= ACTIVATED;
-    }
-
-    /**
-     * @see IPerspectiveListener#perspectiveChanged(IWorkbenchPage, IPerspectiveDescriptor, String)
-     */
-    public void perspectiveChanged(IWorkbenchPage page,
-            IPerspectiveDescriptor perspective, String changeId) {
-        if (page == fPageMask && perspective == fPerMask)
-            fEvent |= CHANGED;
-    }
-
-    public static boolean isOpen(int bits) {
-        return ((bits & OPEN) != 0);
-    }
-
-    public static boolean isClosed(int bits) {
-        return ((bits & CLOSED) != 0);
-    }
-
-    public static boolean isActivated(int bits) {
-        return ((bits & ACTIVATED) != 0);
-    }
-
-    public static boolean isChanged(int bits) {
-        return ((bits & CLOSED) != 0);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveRegistryTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveRegistryTest.java
deleted file mode 100644
index 02ab731..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IPerspectiveRegistryTest.java
+++ /dev/null
@@ -1,97 +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.ui.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-
-public class IPerspectiveRegistryTest extends TestCase {
-
-    private IPerspectiveRegistry fReg;
-
-    public IPerspectiveRegistryTest(String testName) {
-        super(testName);
-    }
-
-    public void setUp() {
-        fReg = PlatformUI.getWorkbench().getPerspectiveRegistry();
-    }
-
-    public void testFindPerspectiveWithId() {
-        IPerspectiveDescriptor pers = (IPerspectiveDescriptor) ArrayUtil
-                .pickRandom(fReg.getPerspectives());
-
-        IPerspectiveDescriptor suspect = fReg.findPerspectiveWithId(pers
-                .getId());
-        assertNotNull(suspect);
-        assertEquals(pers, suspect);
-
-        suspect = fReg.findPerspectiveWithId(IConstants.FakeID);
-        assertNull(suspect);
-    }
-
-    /*	
-     public void testFindPerspectiveWithLabel()
-     {
-     IPerspectiveDescriptor pers = ( IPerspectiveDescriptor )ArrayUtil.pickRandom( fReg.getPerspectives() );
-     
-     IPerspectiveDescriptor suspect = fReg.findPerspectiveWithLabel( pers.getLabel() );
-     assertNotNull( suspect );
-     assertEquals( pers, suspect );
-     
-     suspect = fReg.findPerspectiveWithLabel( IConstants.FakeLabel );
-     assertNull( suspect );
-     }
-     */
-    public void testGetDefaultPerspective() {
-        String id = fReg.getDefaultPerspective();
-        assertNotNull(id);
-
-        IPerspectiveDescriptor suspect = fReg.findPerspectiveWithId(id);
-        assertNotNull(suspect);
-    }
-
-    public void testSetDefaultPerspective() {
-        IPerspectiveDescriptor pers = (IPerspectiveDescriptor) ArrayUtil
-                .pickRandom(fReg.getPerspectives());
-        fReg.setDefaultPerspective(pers.getId());
-
-        assertEquals(pers.getId(), fReg.getDefaultPerspective());
-    }
-
-    public void testGetPerspectives() throws Throwable {
-        IPerspectiveDescriptor[] pers = fReg.getPerspectives();
-        assertNotNull(pers);
-
-        for (int i = 0; i < pers.length; i++)
-            assertNotNull(pers[i]);
-    }
-    
-    public void testDeleteClonedPerspective() {
-		IWorkbenchPage page = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow().getActivePage();
-		String perspId = page.getPerspective().getId() + ".1";
-		IPerspectiveDescriptor desc = fReg.clonePerspective(perspId, perspId, page.getPerspective());
-		page.setPerspective(desc);
-		
-		assertNotNull(fReg.findPerspectiveWithId(perspId));
-		
-		page.closePerspective(desc, false, false);
-		fReg.deletePerspective(desc);
-		
-		assertNull(fReg.findPerspectiveWithId(perspId));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ISelectionServiceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ISelectionServiceTest.java
deleted file mode 100644
index 8c4ef6e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ISelectionServiceTest.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.SlaveSelectionService;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the ISelectionService class.
- */
-public class ISelectionServiceTest extends UITestCase implements
-        ISelectionListener {
-    private IWorkbenchWindow fWindow;
-
-    private IWorkbenchPage fPage;
-
-    // Event state.
-    private boolean eventReceived;
-
-    private ISelection eventSelection;
-
-    private IWorkbenchPart eventPart;
-
-    public ISelectionServiceTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    /**
-     * Tests the addSelectionListener method.
-     */
-    public void testAddSelectionListener() throws Throwable {
-        // From Javadoc: "Adds the given selection listener.
-        // Has no effect if an identical listener is already registered."
-
-        // Add listener.
-        fPage.addSelectionListener(this);
-
-        // Open a view and select something.
-        // Verify events are received.
-        clearEventState();
-        SelectionProviderView view = (SelectionProviderView) fPage
-                .showView(SelectionProviderView.ID);
-        view.setSelection("Selection");
-        assertTrue("EventReceived", eventReceived);
-    }
-
-    /**
-     * Tests the removePageListener method.
-     */
-    public void testRemoveSelectionListener() throws Throwable {
-        // From Javadoc: "Removes the given selection listener.
-        // Has no affect if an identical listener is not registered."
-
-        // Add and remove listener.
-        fPage.addSelectionListener(this);
-        fPage.removeSelectionListener(this);
-
-        // Open a view and select something.
-        // Verify no events are received.
-        clearEventState();
-        SelectionProviderView view = (SelectionProviderView) fPage
-                .showView(SelectionProviderView.ID);
-        view.setSelection("Selection");
-        assertTrue("EventReceived", !eventReceived);
-    }
-
-    /**
-     * Tests getActivePage.
-     */
-    public void testGetSelection() throws Throwable {
-        // From Javadoc: "Returns the current selection in the active part.  
-        // If the selection in the active part is <em>undefined</em> (the 
-        // active part has no selection provider) the result will be 
-        // <code>null</code>"
-        Object actualSel, sel1 = "Selection 1", sel2 = "Selection 2";
-
-        // Open view.
-        SelectionProviderView view = (SelectionProviderView) fPage
-                .showView(SelectionProviderView.ID);
-
-        // Fire selection and verify.
-        view.setSelection(sel1);
-        actualSel = unwrapSelection(fPage.getSelection());
-        assertEquals("Selection", sel1, actualSel);
-
-        // Fire selection and verify.
-        view.setSelection(sel2);
-        actualSel = unwrapSelection(fPage.getSelection());
-        assertEquals("Selection", sel2, actualSel);
-
-        // Close view and verify.
-        fPage.hideView(view);
-        assertNull("getSelection", fPage.getSelection());
-    }
-    
-    /**
-     * Tests getting a selection service local to the part site
-     */
-    public void testLocalSelectionService() throws Throwable {
-		Object sel1 = "Selection 1";
-
-		// Open view.
-		SelectionProviderView view2 = (SelectionProviderView) fPage
-				.showView(SelectionProviderView.ID_2);
-		SelectionProviderView view = (SelectionProviderView) fPage
-				.showView(SelectionProviderView.ID);
-
-		ISelectionService service = fWindow.getSelectionService();
-		ISelectionService windowService = (ISelectionService) fWindow
-				.getService(ISelectionService.class);
-		ISelectionService slaveService = (ISelectionService) view2.getSite()
-				.getService(ISelectionService.class);
-
-		assertTrue(service != slaveService);
-		assertEquals(service, windowService);
-		assertNotNull(service);
-		assertNotNull(slaveService);
-		assertTrue(slaveService instanceof SlaveSelectionService);
-
-		slaveService.addSelectionListener(this);
-		view.setSelection(sel1);
-
-		// Should receive selection events
-		assertTrue("EventReceived", eventReceived);
-		assertEquals("EventPart", view, eventPart);
-		assertEquals("Event Selection", sel1, unwrapSelection(eventSelection));
-
-		fPage.hideView(view2);
-		clearEventState();
-
-		view.setSelection(sel1);
-
-		// Should not receive selection events
-		assertFalse(eventReceived);
-		assertNull(eventPart);
-		assertNull(eventSelection);
-	}
-
-    /**
-	 * Test event firing for inactive parts. In this scenario the event should
-	 * not be fired.
-	 */
-    public void testSelectionEventWhenInactive() throws Throwable {
-        Object sel1 = "Selection 1", sel2 = "Selection 2";
-
-        // Add listener.
-        fPage.addSelectionListener(this);
-
-        // Open two views.
-        SelectionProviderView view1 = (SelectionProviderView) fPage
-                .showView(SelectionProviderView.ID);
-        SelectionProviderView view2 = (SelectionProviderView) fPage
-                .showView(SelectionProviderView.ID_2);
-
-        // Fire selection from the second.
-        // Verify it is received.
-        clearEventState();
-        view2.setSelection(sel2);
-        assertTrue("EventReceived", eventReceived);
-        assertEquals("EventPart", view2, eventPart);
-        assertEquals("Event Selection", sel2, unwrapSelection(eventSelection));
-
-        // Fire selection from the first.
-        // Verify it is NOT received.
-        clearEventState();
-        view1.setSelection(sel1);
-        assertTrue("Unexpected selection events received", !eventReceived);
-    }
-
-    /**
-     * Test event firing when activated.  
-     */
-    public void testSelectionEventWhenActivated() throws Throwable {
-        // From Javadoc: "Adds the given selection listener.
-        // Has no effect if an identical listener is already registered."
-        Object sel1 = "Selection 1", sel2 = "Selection 2";
-
-        // Add listener.
-        fPage.addSelectionListener(this);
-
-        // Open a view and select something.
-        SelectionProviderView view1 = (SelectionProviderView) fPage
-                .showView(SelectionProviderView.ID);
-        view1.setSelection(sel1);
-
-        // Open another view and select something.
-        SelectionProviderView view2 = (SelectionProviderView) fPage
-                .showView(SelectionProviderView.ID_2);
-        view2.setSelection(sel2);
-
-        // Activate the first view.
-        // Verify that selection events are fired.
-        clearEventState();
-        fPage.activate(view1);
-        assertTrue("EventReceived", eventReceived);
-        assertEquals("EventPart", view1, eventPart);
-        assertEquals("Event Selection", sel1, unwrapSelection(eventSelection));
-
-        // Activate the second view.
-        // Verify that selection events are fired.
-        clearEventState();
-        fPage.activate(view2);
-        assertTrue("EventReceived", eventReceived);
-        assertEquals("EventPart", view2, eventPart);
-        assertEquals("Event Selection", sel2, unwrapSelection(eventSelection));
-    }
-
-    /**
-     * Unwrap a selection.
-     */
-    private Object unwrapSelection(ISelection sel) {
-        if (sel instanceof IStructuredSelection) {
-            IStructuredSelection struct = (IStructuredSelection) sel;
-            if (struct.size() == 1)
-                return struct.getFirstElement();
-        }
-        return null;
-    }
-
-    /**
-     * Clear the event state.
-     */
-    private void clearEventState() {
-        eventReceived = false;
-        eventPart = null;
-        eventSelection = null;
-    }
-
-    /*
-     * @see ISelectionListener#selectionChanged(IWorkbenchPart, ISelection)
-     */
-    public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-        eventReceived = true;
-        eventPart = part;
-        eventSelection = selection;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewActionDelegateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewActionDelegateTest.java
deleted file mode 100644
index 302dfe16..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewActionDelegateTest.java
+++ /dev/null
@@ -1,70 +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.ui.tests.api;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-
-/**
- * Tests the lifecycle for a view action delegate.
- */
-public class IViewActionDelegateTest extends IActionDelegateTest {
-
-    public static String TEST_VIEW_ID = "org.eclipse.ui.tests.api.IViewActionDelegateTest";
-
-    /**
-     * Constructor for IWorkbenchWindowActionDelegateTest
-     */
-    public IViewActionDelegateTest(String testName) {
-        super(testName);
-    }
-
-    public void testInit() throws Throwable {
-        // When an action delegate is run the
-        // init, selectionChanged, and run methods should
-        // be called, in that order.
-
-        // Run the action.
-        testRun();
-
-        // Verify lifecycle.
-        MockActionDelegate delegate = getDelegate();
-        assertNotNull(delegate);
-        assertTrue(delegate.callHistory.verifyOrder(new String[] { "init",
-                "selectionChanged", "run" }));
-    }
-
-    /**
-     * @see IActionDelegateTest#createActionWidget()
-     */
-    protected Object createActionWidget() throws Throwable {
-        MockViewPart view = (MockViewPart) fPage.showView(TEST_VIEW_ID);
-        return view;
-    }
-
-    /**
-     * @see IActionDelegateTest#runAction()
-     */
-    protected void runAction(Object widget) throws Throwable {
-        MockViewPart view = (MockViewPart) widget;
-        IMenuManager mgr = view.getViewSite().getActionBars().getMenuManager();
-        ActionUtil.runActionWithLabel(this, mgr, "Mock Action");
-    }
-
-    /**
-     * @see IActionDelegateTest#fireSelection()
-     */
-    protected void fireSelection(Object widget) throws Throwable {
-        MockViewPart view = (MockViewPart) widget;
-        view.fireSelection();
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewPartTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewPartTest.java
deleted file mode 100644
index d3b064f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewPartTest.java
+++ /dev/null
@@ -1,75 +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.ui.tests.api;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-
-/**
- * This is a test for IViewPart.  Since IViewPart is an
- * interface this test verifies the IViewPart lifecycle rather
- * than the implementation.
- */
-public class IViewPartTest extends IWorkbenchPartTest {
-
-    /**
-     * Constructor for IEditorPartTest
-     */
-    public IViewPartTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * @see IWorkbenchPartTest#openPart(IWorkbenchPage)
-     */
-    protected MockPart openPart(IWorkbenchPage page) throws Throwable {
-        return (MockWorkbenchPart) page.showView(MockViewPart.ID);
-    }
-
-    /**
-     * @see IWorkbenchPartTest#closePart(IWorkbenchPage, MockWorkbenchPart)
-     */
-    protected void closePart(IWorkbenchPage page, MockPart part)
-            throws Throwable {
-        page.hideView((IViewPart) part);
-    }
-    
-    /**
-     * Tests that the view is closed without saving if isSaveOnCloseNeeded()
-     * returns false. This also tests some disposal behaviors specific to 
-     * views: namely, that the contribution items are disposed in the correct
-     * order with respect to the disposal of the view. 
-     * 
-     * @see ISaveablePart#isSaveOnCloseNeeded()
-     */
-    public void testOpenAndCloseSaveNotNeeded() throws Throwable {
-        // Open a part.
-        SaveableMockViewPart part = (SaveableMockViewPart) fPage.showView(SaveableMockViewPart.ID);
-        part.setDirty(true);
-        part.setSaveNeeded(false);
-        closePart(fPage, part);
-        
-        CallHistory history = part.getCallHistory();
-        
-        // TODO: This verifies the 3.0 disposal order. However, there may be a bug here.
-        // That is, it may be necessary to change this and dispose the contribution items 
-        // after the view's dispose method in order to ensure that the site is never returning
-        // a disposed contribution item. See bug 94457 for details.
-        assertTrue(history.verifyOrder(new String[] { "setInitializationData", "init",
-                "createPartControl", "setFocus", "isSaveOnCloseNeeded", 
-                "widgetDisposed", "toolbarContributionItemWidgetDisposed", 
-                "toolbarContributionItemDisposed", "dispose" }));
-        assertFalse(history.contains("doSave"));
-    }
-    
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewSiteTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewSiteTest.java
deleted file mode 100644
index c5d01c3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IViewSiteTest.java
+++ /dev/null
@@ -1,58 +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.ui.tests.api;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-
-public class IViewSiteTest extends IWorkbenchPartSiteTest {
-
-    /**
-     * Constructor for IViewPartSiteTest
-     */
-    public IViewSiteTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * @see IWorkbenchPartSiteTest#getTestPartName()
-     */
-    protected String getTestPartName() throws Throwable {
-        return MockViewPart.NAME;
-    }
-
-    /**
-     * @see IWorkbenchPartSiteTest#getTestPartId()
-     */
-    protected String getTestPartId() throws Throwable {
-        return MockViewPart.ID;
-    }
-
-    /**
-     * @see IWorkbenchPartSiteTest#createTestPart(IWorkbenchPage)
-     */
-    protected IWorkbenchPart createTestPart(IWorkbenchPage page)
-            throws Throwable {
-        return page.showView(MockViewPart.ID);
-    }
-
-    public void testGetActionBars() throws Throwable {
-        // From Javadoc: "Returns the action bars for this part site."
-
-        IViewPart view = (IViewPart) createTestPart(fPage);
-        IViewSite site = view.getViewSite();
-        assertNotNull(site.getActionBars());
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPageTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPageTest.java
deleted file mode 100644
index 54ba40a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPageTest.java
+++ /dev/null
@@ -1,2816 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.ILogListener;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.SaveableHelper;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.registry.IActionSetDescriptor;
-import org.eclipse.ui.internal.util.Util;
-import org.eclipse.ui.navigator.resources.ProjectExplorer;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.tests.PerspectiveState;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-
-public class IWorkbenchPageTest extends UITestCase {
-
-	private IWorkbenchPage fActivePage;
-
-	private IWorkbenchWindow fWin;
-
-	private IProject proj;
-	
-	private int logCount;
-	private IStatus logStatus;
-	String getMessage() {
-		return logStatus==null?"No message":logStatus.getMessage();
-	}
-	ILogListener openAndHideListener = new ILogListener() {
-		public void logging(IStatus status, String plugin) {
-			logStatus = status;
-			logCount++;
-		}
-	};
-	
-	
-	private int partHiddenCount = 0;
-	private IWorkbenchPartReference partHiddenRef = null;
-	private int partVisibleCount = 0;
-	private IWorkbenchPartReference partVisibleRef = null;
-	private int partActiveCount = 0;
-	private IWorkbenchPartReference partActiveRef = null;
-	IPartListener2 partListener2 = new IPartListener2() {
-		public void partActivated(IWorkbenchPartReference partRef) {
-			partActiveCount++;
-			partActiveRef = partRef;
-		}
-
-		public void partBroughtToTop(IWorkbenchPartReference partRef) {
-		}
-
-		public void partClosed(IWorkbenchPartReference partRef) {
-		}
-
-		public void partDeactivated(IWorkbenchPartReference partRef) {
-		}
-
-		public void partHidden(IWorkbenchPartReference partRef) {
-			partHiddenCount++;
-			partHiddenRef = partRef;
-		}
-
-		public void partInputChanged(IWorkbenchPartReference partRef) {
-		}
-
-		public void partOpened(IWorkbenchPartReference partRef) {
-		}
-
-		public void partVisible(IWorkbenchPartReference partRef) {
-			partVisibleCount++;
-			partVisibleRef = partRef;
-		}
-	};
-
-
-
-	public IWorkbenchPageTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		fWin = openTestWindow();
-		fActivePage = fWin.getActivePage();
-		logStatus = null;
-		logCount = 0;
-		Platform.addLogListener(openAndHideListener);
-	}
-
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		if (proj != null) {
-			FileUtil.deleteProject(proj);
-			proj = null;
-		}
-		Platform.removeLogListener(openAndHideListener);
-	}
-
-	/**
-	 * Tests the new working set API.
-	 * 
-	 * @since 3.2
-	 */
-	public void testWorkingSets1() {
-		IWorkbenchPage page = fActivePage;
-		IWorkingSet[] sets = page.getWorkingSets();
-		assertNotNull(sets);
-		assertEquals(0, sets.length);
-
-		IWorkingSetManager manager = page.getWorkbenchWindow().getWorkbench()
-				.getWorkingSetManager();
-
-		IWorkingSet set1 = null, set2 = null;
-		try {
-			set1 = manager.createWorkingSet("w1", new IAdaptable[0]);
-			manager.addWorkingSet(set1);
-			set2 = manager.createWorkingSet("w2", new IAdaptable[0]);
-			manager.addWorkingSet(set2);
-
-			page.setWorkingSets(new IWorkingSet[] { set1 });
-			sets = page.getWorkingSets();
-
-			assertNotNull(sets);
-			assertEquals(1, sets.length);
-			assertEquals(set1, sets[0]);
-
-			page.setWorkingSets(new IWorkingSet[0]);
-			sets = page.getWorkingSets();
-			assertNotNull(sets);
-			assertEquals(0, sets.length);
-
-			page.setWorkingSets(new IWorkingSet[] { set1, set2 });
-			sets = page.getWorkingSets();
-
-			assertNotNull(sets);
-			assertEquals(2, sets.length);
-			Set realSet = new HashSet(Arrays.asList(sets));
-			assertTrue(realSet.contains(set1));
-			assertTrue(realSet.contains(set2));
-
-			page.setWorkingSets(new IWorkingSet[0]);
-			sets = page.getWorkingSets();
-			assertNotNull(sets);
-			assertEquals(0, sets.length);
-		} finally {
-			if (set1 != null)
-				manager.removeWorkingSet(set1);
-			if (set2 != null)
-				manager.removeWorkingSet(set2);
-		}
-	}
-
-	/**
-	 * Tests the new working set API.
-	 * 
-	 * @since 3.2
-	 */
-	public void testWorkingSets2() {
-		fActivePage.setWorkingSets(null);
-		IWorkingSet[] sets = fActivePage.getWorkingSets();
-		assertNotNull(sets);
-		assertEquals(0, sets.length);
-	}
-
-	/**
-	 * Tests the working set listeners.
-	 * 
-	 * @since 3.2
-	 */
-	public void testWorkingSets3() {
-		IWorkingSetManager manager = fActivePage.getWorkbenchWindow()
-				.getWorkbench().getWorkingSetManager();
-
-		IWorkingSet set1 = null;
-		final IWorkingSet[][] sets = new IWorkingSet[1][];
-		sets[0] = new IWorkingSet[0];
-		IPropertyChangeListener listener = new IPropertyChangeListener() {
-
-			public void propertyChange(PropertyChangeEvent event) {
-				IWorkingSet[] oldSets = (IWorkingSet[]) event.getOldValue();
-				assertTrue(Arrays.equals(sets[0], oldSets));
-				sets[0] = (IWorkingSet[]) event.getNewValue();
-			}
-		};
-		try {
-			set1 = manager.createWorkingSet("w1", new IAdaptable[0]);
-			manager.addWorkingSet(set1);
-
-			fActivePage.addPropertyChangeListener(listener);
-
-			fActivePage.setWorkingSets(new IWorkingSet[] { set1 });
-			fActivePage.setWorkingSets(new IWorkingSet[] {});
-			fActivePage.setWorkingSets(new IWorkingSet[] { set1 });
-
-			sets[0] = fActivePage.getWorkingSets();
-
-			assertNotNull(sets[0]);
-			assertEquals(1, sets[0].length);
-			assertEquals(set1, sets[0][0]);
-
-		} finally {
-			fActivePage.removePropertyChangeListener(listener);
-			if (set1 != null)
-				manager.removeWorkingSet(set1);
-		}
-	}
-
-	/**
-	 * Test the VIEW_VISIBLE parameter for showView, opening the view in the
-	 * stack that does not contain the active view. Ensures that the created
-	 * view is not the active part but is the top part in its stack.
-	 */
-	public void testView_VISIBLE2() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		try {
-			page.setPerspective(WorkbenchPlugin.getDefault()
-					.getPerspectiveRegistry().findPerspectiveWithId(
-							"org.eclipse.ui.tests.api.ViewPerspective"));
-
-			// create a part to be active
-			IViewPart activePart = page.showView(MockViewPart.ID3);
-
-			IViewPart createdPart = page.showView(MockViewPart.ID2, null,
-					IWorkbenchPage.VIEW_VISIBLE);
-
-			IViewPart[] stack = page.getViewStack(createdPart);
-			assertEquals(2, stack.length);
-
-			assertEquals(createdPart, stack[0]);
-			assertEquals(page.findView(MockViewPart.ID), stack[1]);
-
-			assertTrue(page.isPartVisible(createdPart));
-
-			assertEquals(activePart, page.getActivePart());
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * openEditor(IEditorInput input, String editorId, boolean activate)
-	 */
-	public void testOpenEditor4() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final String id = MockEditorPart.ID1;
-		IEditorInput input = new FileEditorInput(FileUtil.createFile(
-				"test.mock1", proj));
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		CallHistory callTrace = listener.getCallHistory();
-
-		/*
-		 * javadoc: The editor type is determined by mapping editorId to an
-		 * editor extension registered with the workbench. javadoc: If activate ==
-		 * true the editor will be activated
-		 */
-		// open an editor with activation
-		// Start with a view active in order to verify that the editor gets
-		// activated
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		callTrace.clear();
-		IEditorPart editor = IDE.openEditor(fActivePage, input, id, true);
-		assertEquals(editor.getEditorInput(), input);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("partActivated"), true);
-
-		// we need another editor so that the editor under test can receive
-		// events.
-		// otherwise, events will be ignored.
-		IEditorPart extra = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"aaaaa", proj));
-
-		// close the first editor after the second has opened; necessary for
-		// test to work with fix to PR 7743
-		fActivePage.closeEditor(editor, false);
-
-		// Start with a view active in order to verify that the editor does not
-		// get activated
-		// (note: regardless of the activate=false flag, the editor would always
-		// be activated
-		// if it is being opened in the same stack as the active editor. Making
-		// a view active
-		// initially tests the function of the activate flag)
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		callTrace.clear();
-		// open an editor without activation
-		editor = IDE.openEditor(fActivePage, input, id, false);
-
-		assertEquals(editor.getEditorInput(), input);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(callTrace.contains("partActivated"), false);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-
-		fActivePage.activate(extra);
-
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is brought to the front
-		 */
-		// open the editor under test second time without activation
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		callTrace.clear();
-		assertEquals(IDE.openEditor(fActivePage, input, id, false), editor);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-		assertEquals(callTrace.contains("partActivated"), false);
-
-		// activate the other editor
-		fActivePage.activate(extra);
-
-		/*
-		 * javadoc: If activate == true the editor will be activated
-		 */
-		// open the editor under test second time with activation
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		callTrace.clear();
-		assertEquals(IDE.openEditor(fActivePage, input, id, true), editor);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-		assertEquals(callTrace.contains("partActivated"), true);
-
-		/*
-		 * javadoc: If activate == false but another editor in the same stack
-		 * was active, the new editor will be activated regardless.
-		 */
-		// Close the old editor
-		fActivePage.closeEditor(editor, false);
-		// Ensure another editor in the stack is active
-		fActivePage.activate(extra);
-		callTrace.clear();
-		// Verify that the editor is still activated
-		IDE.openEditor(fActivePage, input, id, false);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-		assertEquals(callTrace.contains("partActivated"), true);
-	}
-
-	/**
-	 * tests both of the following: setEditorAreaVisible() isEditorAreaVisible()
-	 */
-	public void testGet_SetEditorAreaVisible() throws Throwable {
-		fActivePage.setEditorAreaVisible(true);
-		assertTrue(fActivePage.isEditorAreaVisible() == true);
-
-		fActivePage.setEditorAreaVisible(false);
-		assertTrue(fActivePage.isEditorAreaVisible() == false);
-	}
-
-	/**
-	 * openEditor(IWorkbenchPage page, IFile input)
-	 */
-	public void testOpenEditor() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-
-		/*
-		 * javadoc: 1. The workbench editor registry is consulted to determine
-		 * if an editor extension has been registered for the file type. If so,
-		 * an instance of the editor extension is opened on the file
-		 */
-		IFile file = FileUtil.createFile("test.mock1", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file);
-
-		boolean foundEditor = hasEditor(editor);
-		assertEquals(foundEditor, true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(editor.getSite().getId(), fWorkbench.getEditorRegistry()
-				.getDefaultEditor(file.getName()).getId());
-
-		/*
-		 * javadoc: 2. Next, the native operating system will be consulted to
-		 * determine if a native editor exists for the file type. If so, a new
-		 * process is started and the native editor is opened on the file.
-		 */
-		// can not be tested
-		/*
-		 * javadoc: 3. If all else fails the file will be opened in a default
-		 * text editor.
-		 */
-
-		file = FileUtil.createFile("a.null and void", proj);
-		editor = IDE.openEditor(fActivePage, file);
-		if (editor != null) {//If it opened an external editor skip it (Vista issue)
-			assertEquals(hasEditor(editor), true);
-			assertEquals(fActivePage.getActiveEditor(), editor);
-			assertEquals(editor.getSite().getId(),
-					"org.eclipse.ui.DefaultTextEditor");
-
-			// open another editor to take the focus away from the first editor
-			IDE
-					.openEditor(fActivePage, FileUtil.createFile("test.mock2",
-							proj));
-
-			/*
-			 * javadoc: If this page already has an editor open on the target
-			 * object that editor is activated
-			 */
-			// open the editor second time.
-			assertEquals(editor, IDE.openEditor(fActivePage, file));
-			assertEquals(editor, fActivePage.getActiveEditor());
-		}
-	}
-
-	/**
-	 * openEditor(IWorkbenchPage page, IFile input, String editorID)
-	 */
-	public void testOpenEditor2() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("asfasdasdf", proj);
-		final String id = MockEditorPart.ID1;
-
-		/*
-		 * javadoc: The editor type is determined by mapping editorId to an
-		 * editor extension registered with the workbench.
-		 */
-		IEditorPart editor = IDE.openEditor(fActivePage, file, id);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-
-		// open another editor to take the focus away from the first editor
-		IDE.openEditor(fActivePage, FileUtil.createFile("test.mock2", proj));
-
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is activated
-		 */
-		// open the first editor second time.
-		assertEquals(IDE.openEditor(fActivePage, file, id), editor);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-	}
-
-	/**
-	 * openEditor(IEditorInput input,String editorId)
-	 */
-	public void testOpenEditor3() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final String id = MockEditorPart.ID1;
-		IEditorInput input = new FileEditorInput(FileUtil.createFile(
-				"test.mock1", proj));
-
-		/*
-		 * javadoc: The editor type is determined by mapping editorId to an
-		 * editor extension registered with the workbench
-		 */
-		IEditorPart editor = IDE.openEditor(fActivePage, input, id);
-		assertEquals(editor.getEditorInput(), input);
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-
-		// open another editor to take the focus away from the first editor
-		IDE.openEditor(fActivePage, FileUtil.createFile("test.mock2", proj));
-
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is activated
-		 */
-		// open the first editor second time.
-		assertEquals(IDE.openEditor(fActivePage, input, id), editor);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-	}
-
-	/**
-	 * openEditor(IMarker marker)
-	 */
-	public void testOpenEditor5() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		IMarker marker = FileUtil.createFile("aa.mock2", proj).createMarker(
-				IMarker.TASK);
-		CallHistory callTrace;
-
-		/*
-		 * javadoc: the cursor and selection state of the editor is then updated
-		 * from information recorded in the marker.
-		 */
-		// open the registered editor for the marker resource
-		IEditorPart editor = IDE.openEditor(fActivePage, marker);
-		callTrace = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID2);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		/*
-		 * javadoc: If the marker contains an EDITOR_ID_ATTR attribute the
-		 * attribute value will be used to determine the editor type to be
-		 * opened
-		 */
-		marker.setAttribute(IDE.EDITOR_ID_ATTR, MockEditorPart.ID1);
-		editor = IDE.openEditor(fActivePage, marker);
-		callTrace = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID1);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("gotoMarker"), true);
-		// do not close the editor this time
-
-		/*
-		 * javdoc: If this page already has an editor open on the target object
-		 * that editor is activated
-		 */
-		callTrace.clear();
-		assertEquals(IDE.openEditor(fActivePage, marker), editor);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(callTrace.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-	}
-
-	/**
-	 * openEditor(IMarker marker, boolean activate)
-	 */
-	public void testOpenEditor6() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		IMarker marker = FileUtil.createFile("aa.mock2", proj).createMarker(
-				IMarker.TASK);
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		CallHistory listenerCall = listener.getCallHistory();
-		CallHistory editorCall;
-
-		// we need another editor so that the editor under test can receive
-		// events.
-		// otherwise, events will be ignored.
-		IEditorPart extra = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"aaaaa", proj));
-
-		/*
-		 * javadoc: If activate == true the editor will be activated
-		 */
-		// open the registered editor for the marker resource with activation
-		IEditorPart editor = IDE.openEditor(fActivePage, marker, true);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID2);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-
-		/*
-		 * javadoc: the cursor and selection state of the editor is then updated
-		 * from information recorded in the marker.
-		 */
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		fActivePage.activate(extra);
-
-		// open the registered editor for the marker resource without activation
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		listenerCall.clear();
-		editor = IDE.openEditor(fActivePage, marker, false);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), MockEditorPart.ID2);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		assertEquals(listenerCall.contains("partActivated"), false);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		/*
-		 * javadoc: If the marker contains an EDITOR_ID_ATTR attribute the
-		 * attribute value will be used to determine the editor type to be
-		 * opened
-		 */
-		String id = MockEditorPart.ID1;
-		marker.setAttribute(IDE.EDITOR_ID_ATTR, id);
-
-		// open an editor with activation
-		listenerCall.clear();
-
-		editor = IDE.openEditor(fActivePage, marker, true);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		fActivePage.closeEditor(editor, false);
-
-		fActivePage.activate(extra);
-
-		// open an editor without activation
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		listenerCall.clear();
-		editor = IDE.openEditor(fActivePage, marker, false);
-		editorCall = ((MockEditorPart) editor).getCallHistory();
-		assertEquals(editor.getSite().getId(), id);
-		assertEquals(hasEditor(editor), true);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		assertEquals(listenerCall.contains("partActivated"), false);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		// do not close the editor this time
-
-		fActivePage.activate(extra);
-		/*
-		 * javadoc: If this page already has an editor open on the target object
-		 * that editor is brought to front Note: we need to make a non-editor
-		 * active first or bringing the editor to front would activate it
-		 */
-		// open the editor second time without activation
-		fActivePage.showView(IPageLayout.ID_PROBLEM_VIEW, null,
-				IWorkbenchPage.VIEW_ACTIVATE);
-		listenerCall.clear();
-		assertEquals(IDE.openEditor(fActivePage, marker, false), editor);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		assertEquals(listenerCall.contains("partActivated"), false);
-
-		fActivePage.activate(extra);
-
-		/*
-		 * javdoc: If activate == true the editor will be activated
-		 */
-		// open the editor second time with activation
-		listenerCall.clear();
-		assertEquals(IDE.openEditor(fActivePage, marker, true), editor);
-		assertEquals(editorCall.contains("gotoMarker"), true);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		assertEquals(listenerCall.contains("partActivated"), true);
-
-		/*
-		 * javadoc: If activate == false but another editor in the same stack
-		 * was active, the new editor will be activated regardless.
-		 */
-		// Close the old editor
-		fActivePage.closeEditor(editor, false);
-		// Ensure another editor in the stack is active
-		fActivePage.activate(extra);
-		listenerCall.clear();
-		// Verify that the editor is still activated
-		IDE.openEditor(fActivePage, marker, false);
-		assertEquals(listenerCall.contains("partBroughtToTop"), true);
-		assertEquals(listenerCall.contains("partActivated"), true);
-	}
-
-	public void testGetPerspective() throws Throwable {
-		assertNotNull(fActivePage.getPerspective());
-
-		IWorkbenchPage page = fWin.openPage(EmptyPerspective.PERSP_ID,
-				getPageInput());
-		assertEquals(EmptyPerspective.PERSP_ID, page.getPerspective().getId());
-	}
-
-	public void testSetPerspective() throws Throwable {
-		IPerspectiveDescriptor per = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						EmptyPerspective.PERSP_ID);
-		fActivePage.setPerspective(per);
-		assertEquals(per, fActivePage.getPerspective());
-	}
-
-	public void testGetLabel() {
-		assertNotNull(fActivePage.getLabel());
-	}
-
-	public void testGetInput() throws Throwable {
-		IAdaptable input = getPageInput();
-		IWorkbenchPage page = fWin.openPage(input);
-		assertEquals(input, page.getInput());
-	}
-
-	public void testActivate() throws Throwable {
-		MockViewPart part = (MockViewPart) fActivePage
-				.showView(MockViewPart.ID);
-		MockViewPart part2 = (MockViewPart) fActivePage
-				.showView(MockViewPart.ID2);
-
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		fActivePage.activate(part);
-
-		CallHistory callTrace;
-
-		callTrace = part2.getCallHistory();
-		callTrace.clear();
-		fActivePage.activate(part2);
-		assertTrue(callTrace.contains("setFocus"));
-		assertTrue(listener.getCallHistory().contains("partActivated"));
-
-		callTrace = part.getCallHistory();
-		callTrace.clear();
-		fActivePage.activate(part);
-		assertTrue(callTrace.contains("setFocus"));
-		assertTrue(listener.getCallHistory().contains("partActivated"));
-	}
-
-	public void testBringToTop() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		IEditorPart part = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"a.mock1", proj));
-		IEditorPart part2 = IDE.openEditor(fActivePage, FileUtil.createFile(
-				"b.mock1", proj));
-
-		MockPartListener listener = new MockPartListener();
-		fActivePage.addPartListener(listener);
-		CallHistory callTrace = listener.getCallHistory();
-
-		// at this point, part2 is active
-		fActivePage.bringToTop(part);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-
-		callTrace.clear();
-		fActivePage.bringToTop(part2);
-		assertEquals(callTrace.contains("partBroughtToTop"), true);
-	}
-
-	public void testGetWorkbenchWindow() {
-		/*
-		 * Commented out because until test case can be updated to work with new
-		 * window/page/perspective implementation
-		 * 
-		 * assertEquals(fActivePage.getWorkbenchWindow(), fWin); IWorkbenchPage
-		 * page = openTestPage(fWin); assertEquals(page.getWorkbenchWindow(),
-		 * fWin);
-		 */
-	}
-
-	public void testShowView() throws Throwable {
-		/*
-		 * javadoc: Shows a view in this page and give it focus
-		 */
-		MockViewPart view = (MockViewPart) fActivePage
-				.showView(MockViewPart.ID);
-		assertNotNull(view);
-		assertTrue(view.getCallHistory().verifyOrder(
-				new String[] { "init", "createPartControl", "setFocus" }));
-
-		fActivePage.showView(MockViewPart.ID2);
-
-		/*
-		 * javadoc: If the view is already visible, it is given focus
-		 */
-		CallHistory callTrace = view.getCallHistory();
-		callTrace.clear();
-		assertEquals(fActivePage.showView(MockViewPart.ID), view);
-		assertEquals(callTrace.contains("setFocus"), true);
-	}
-
-	/**
-	 * Tests showing multi-instance views (docked normally).
-	 */
-	public void testShowViewMult() throws Throwable {
-		/*
-		 * javadoc: Shows the view identified by the given view id and secondary
-		 * id in this page and gives it focus. This allows multiple instances of
-		 * a particular view to be created. They are disambiguated using the
-		 * secondary id.
-		 */
-		MockViewPart view = (MockViewPart) fActivePage
-				.showView(MockViewPart.IDMULT);
-		assertNotNull(view);
-		assertTrue(view.getCallHistory().verifyOrder(
-				new String[] { "init", "createPartControl", "setFocus" }));
-		MockViewPart view2 = (MockViewPart) fActivePage.showView(
-				MockViewPart.IDMULT, "2", IWorkbenchPage.VIEW_ACTIVATE);
-		assertNotNull(view2);
-		assertTrue(view2.getCallHistory().verifyOrder(
-				new String[] { "init", "createPartControl", "setFocus" }));
-		assertTrue(!view.equals(view2));
-		MockViewPart view3 = (MockViewPart) fActivePage.showView(
-				MockViewPart.IDMULT, "3", IWorkbenchPage.VIEW_ACTIVATE);
-		assertNotNull(view3);
-		assertTrue(view3.getCallHistory().verifyOrder(
-				new String[] { "init", "createPartControl", "setFocus" }));
-		assertTrue(!view.equals(view3));
-		assertTrue(!view2.equals(view3));
-
-		/*
-		 * javadoc: If there is a view identified by the given view id and
-		 * secondary id already open in this page, it is given focus.
-		 */
-		CallHistory callTrace = view.getCallHistory();
-		callTrace.clear();
-		assertEquals(fActivePage.showView(MockViewPart.IDMULT), view);
-		assertEquals(callTrace.contains("setFocus"), true);
-		CallHistory callTrace2 = view2.getCallHistory();
-		callTrace.clear();
-		callTrace2.clear();
-		assertEquals(fActivePage.showView(MockViewPart.IDMULT, "2",
-				IWorkbenchPage.VIEW_ACTIVATE), view2);
-		assertEquals(callTrace2.contains("setFocus"), true);
-		assertEquals(callTrace.contains("setFocus"), false);
-		CallHistory callTrace3 = view3.getCallHistory();
-		callTrace.clear();
-		callTrace2.clear();
-		callTrace3.clear();
-		assertEquals(fActivePage.showView(MockViewPart.IDMULT, "3",
-				IWorkbenchPage.VIEW_ACTIVATE), view3);
-		assertEquals(callTrace3.contains("setFocus"), true);
-		assertEquals(callTrace.contains("setFocus"), false);
-		assertEquals(callTrace2.contains("setFocus"), false);
-
-		/*
-		 * javadoc: If a secondary id is given, the view must allow multiple
-		 * instances by having specified allowMultiple="true" in its extension.
-		 */
-		boolean exceptionThrown = false;
-		try {
-			fActivePage.showView(MockViewPart.ID, "2",
-					IWorkbenchPage.VIEW_ACTIVATE);
-		} catch (PartInitException e) {
-			assertEquals(e.getMessage().indexOf("mult") != -1, true);
-			exceptionThrown = true;
-		}
-		assertEquals(exceptionThrown, true);
-	}
-
-	/**
-	 * Tests showing multi-instance views (as fast views). This is a regression
-	 * test for bug 76669 - [Perspectives] NullPointerException in
-	 * Perspective.getFastViewWidthRatio()
-	 */
-	public void testShowViewMultFast() throws Throwable {
-		/*
-		 * javadoc: Shows the view identified by the given view id and secondary
-		 * id in this page and gives it focus. This allows multiple instances of
-		 * a particular view to be created. They are disambiguated using the
-		 * secondary id.
-		 */
-		MockViewPart view = (MockViewPart) fActivePage
-				.showView(MockViewPart.IDMULT);
-		assertNotNull(view);
-		assertTrue(view.getCallHistory().verifyOrder(
-				new String[] { "init", "createPartControl", "setFocus" }));
-		MockViewPart view2 = (MockViewPart) fActivePage.showView(
-				MockViewPart.IDMULT, "2", IWorkbenchPage.VIEW_ACTIVATE);
-		assertNotNull(view2);
-		assertTrue(view2.getCallHistory().verifyOrder(
-				new String[] { "init", "createPartControl", "setFocus" }));
-		assertTrue(!view.equals(view2));
-
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		IViewReference ref = (IViewReference) page.getReference(view);
-		IViewReference ref2 = (IViewReference) page.getReference(view2);
-		page.addFastView(ref);
-		page.addFastView(ref2);
-
-		page.activate(view);
-		assertEquals(view, page.getActivePart());
-
-		page.activate(view2);
-		assertEquals(view2, page.getActivePart());
-	}
-
-	/**
-	 * Tests saving the page state when there is a fast view that is also a
-	 * multi-instance view. This is a regression test for bug 76669 -
-	 * [Perspectives] NullPointerException in
-	 * Perspective.getFastViewWidthRatio()
-	 */
-	public void testBug76669() throws Throwable {
-		MockViewPart view = (MockViewPart) fActivePage
-				.showView(MockViewPart.IDMULT);
-		MockViewPart view2 = (MockViewPart) fActivePage.showView(
-				MockViewPart.IDMULT, "2", IWorkbenchPage.VIEW_ACTIVATE);
-
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		IViewReference ref = (IViewReference) page.getReference(view);
-		IViewReference ref2 = (IViewReference) page.getReference(view2);
-		page.addFastView(ref);
-		page.addFastView(ref2);
-
-		IMemento memento = XMLMemento.createWriteRoot("page");
-		page.saveState(memento);
-		IMemento persps = memento.getChild("perspectives");
-		IMemento persp = persps.getChildren("perspective")[0];
-		IMemento[] fastViews = persp.getChild("fastViews").getChildren("view");
-		assertEquals(2, fastViews.length);
-	}
-
-	public void testFindView() throws Throwable {
-		String id = MockViewPart.ID3;
-		// id of valid, but not open view
-		assertNull(fActivePage.findView(id));
-
-		IViewPart view = fActivePage.showView(id);
-		assertEquals(fActivePage.findView(id), view);
-
-		// close view
-		fActivePage.hideView(view);
-		assertNull(fActivePage.findView(id));
-	}
-
-	public void testFindViewReference() throws Throwable {
-		fActivePage.getWorkbenchWindow().getWorkbench().showPerspective(
-				SessionPerspective.ID, fActivePage.getWorkbenchWindow());
-		assertNull(fActivePage.findViewReference(MockViewPart.ID4));
-
-		fActivePage.showView(MockViewPart.ID4);
-		assertNotNull(fActivePage.findViewReference(MockViewPart.ID4));
-	}
-
-	public void testGetViews() throws Throwable {
-		int totalBefore = fActivePage.getViewReferences().length;
-
-		IViewPart view = fActivePage.showView(MockViewPart.ID2);
-		assertEquals(hasView(view), true);
-		assertEquals(fActivePage.getViewReferences().length, totalBefore + 1);
-
-		fActivePage.hideView(view);
-		assertEquals(hasView(view), false);
-		assertEquals(fActivePage.getViewReferences().length, totalBefore);
-	}
-
-	public void testHideViewWithPart() throws Throwable {
-		// test that nothing bad happens with a null parameter
-		try {
-			fActivePage.hideView((IViewPart) null);
-		} catch (RuntimeException e) {
-			fail(e.getMessage());
-		}
-
-		IViewPart view = fActivePage.showView(MockViewPart.ID3);
-
-		fActivePage.hideView(view);
-		CallHistory callTrace = ((MockViewPart) view).getCallHistory();
-		assertTrue(callTrace.contains("dispose"));
-	}
-
-	public void testHideViewWithReference() throws Throwable {
-		// test that nothing bad happens with a null parameter
-		try {
-			fActivePage.hideView((IViewReference) null);
-		} catch (RuntimeException e) {
-			fail(e.getMessage());
-		}
-
-		IViewPart view = fActivePage.showView(MockViewPart.ID4);
-		IViewReference ref = fActivePage.findViewReference(MockViewPart.ID4);
-		fActivePage.hideView(ref);
-		CallHistory callTrace = ((MockViewPart) view).getCallHistory();
-		assertTrue(callTrace.contains("dispose"));
-
-	}
-
-	public void testHideSaveableView() throws Throwable {
-		String viewId = SaveableMockViewPart.ID;
-		SaveableMockViewPart view = (SaveableMockViewPart) fActivePage
-				.showView(viewId);
-		fActivePage.hideView(view);
-		CallHistory callTrace = view.getCallHistory();
-		assertTrue(callTrace.contains("isDirty"));
-		assertTrue(callTrace.contains("dispose"));
-		assertEquals(fActivePage.findView(viewId), null);
-
-		try {
-			SaveableHelper.testSetAutomatedResponse(1); // No
-			view = (SaveableMockViewPart) fActivePage.showView(viewId);
-			view.setDirty(true);
-			fActivePage.hideView(view);
-			callTrace = view.getCallHistory();
-			assertTrue(callTrace.contains("isDirty"));
-			assertFalse(callTrace.contains("doSave"));
-			assertTrue(callTrace.contains("dispose"));
-			assertEquals(fActivePage.findView(viewId), null);
-
-			SaveableHelper.testSetAutomatedResponse(2); // Cancel
-			view = (SaveableMockViewPart) fActivePage.showView(viewId);
-			view.setDirty(true);
-			fActivePage.hideView(view);
-			callTrace = view.getCallHistory();
-			assertTrue(callTrace.contains("isDirty"));
-			assertFalse(callTrace.contains("doSave"));
-			assertFalse(callTrace.contains("dispose"));
-			assertEquals(fActivePage.findView(viewId), view);
-
-			SaveableHelper.testSetAutomatedResponse(0); // Yes
-			view = (SaveableMockViewPart) fActivePage.showView(viewId);
-			view.setDirty(true);
-			fActivePage.hideView(view);
-			callTrace = view.getCallHistory();
-			assertTrue(callTrace.contains("isDirty"));
-			assertTrue(callTrace.contains("doSave"));
-			assertTrue(callTrace.contains("dispose"));
-			assertEquals(fActivePage.findView(viewId), null);
-
-			// don't leave the view showing, or the UI will block on window
-			// close
-		} finally {
-			SaveableHelper.testSetAutomatedResponse(-1); // restore default
-			// (prompt)
-		}
-	}
-
-	/**
-	 * Tests that a close will fall back to the default if the view returns
-	 * ISaveable2.DEFAULT.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testCloseWithSaveNeeded() throws Throwable {
-		String viewId = UserSaveableMockViewPart.ID;
-		UserSaveableMockViewPart view = (UserSaveableMockViewPart) fActivePage
-				.showView(viewId);
-		fActivePage.hideView(view);
-
-		UserSaveableMockViewPart view2 = null;
-
-		CallHistory callTrace = view.getCallHistory();
-		assertTrue(callTrace.contains("isDirty"));
-		assertTrue(callTrace.contains("dispose"));
-		assertEquals(fActivePage.findView(UserSaveableMockViewPart.ID), null);
-
-		try {
-			SaveableHelper.testSetAutomatedResponse(3); // DEFAULT
-			view = (UserSaveableMockViewPart) fActivePage.showView(viewId);
-			view.setDirty(true);
-			view2 = (UserSaveableMockViewPart) fActivePage.showView(viewId,
-					"2", IWorkbenchPage.VIEW_ACTIVATE);
-			assertNotNull(view2);
-			view2.setDirty(true);
-
-			WorkbenchPage page = (WorkbenchPage) fActivePage;
-			page.getEditorManager().saveAll(true, false, false);
-
-			assertFalse(view.isDirty());
-			assertFalse(view2.isDirty());
-
-			callTrace = view.getCallHistory();
-			fActivePage.hideView(view);
-			fActivePage.hideView(view2);
-
-			assertTrue(callTrace.contains("isDirty"));
-			assertTrue(callTrace.contains("doSave"));
-			assertEquals(fActivePage.findView(viewId), null);
-
-			// don't leave the view showing, or the UI will block on window
-			// close
-		} finally {
-			SaveableHelper
-					.testSetAutomatedResponse(SaveableHelper.USER_RESPONSE); // restore
-			// default
-			// (prompt)
-		}
-	}
-
-	/**
-	 * Tests that a close will fall back to the default if the view returns
-	 * ISaveable2.DEFAULT.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testSaveEffectsSharedModel() throws Throwable {
-		String viewId = UserSaveableSharedViewPart.ID;
-		UserSaveableSharedViewPart view = null;
-
-		UserSaveableSharedViewPart view2 = null;
-
-		assertEquals(fActivePage.findView(UserSaveableSharedViewPart.ID), null);
-
-		try {
-			SaveableHelper.testSetAutomatedResponse(3); // DEFAULT
-			UserSaveableSharedViewPart.SharedModel model = new UserSaveableSharedViewPart.SharedModel();
-			view = (UserSaveableSharedViewPart) fActivePage.showView(viewId);
-			view.setSharedModel(model);
-
-			view2 = (UserSaveableSharedViewPart) fActivePage.showView(viewId,
-					"2", IWorkbenchPage.VIEW_ACTIVATE);
-			assertNotNull(view2);
-			view2.setSharedModel(model);
-
-			WorkbenchPage page = (WorkbenchPage) fActivePage;
-			page.getEditorManager().saveAll(true, false, false);
-
-			assertFalse(view.isDirty());
-			assertFalse(view2.isDirty());
-
-			CallHistory callTrace = view.getCallHistory();
-			CallHistory call2 = view2.getCallHistory();
-
-			assertTrue(callTrace.contains("isDirty"));
-			assertTrue(call2.contains("isDirty"));
-			assertTrue("At least one should call doSave", callTrace
-					.contains("doSave")
-					|| call2.contains("doSave"));
-			assertFalse("Both should not call doSave", callTrace
-					.contains("doSave")
-					&& call2.contains("doSave"));
-
-			// don't leave the view showing, or the UI will block on window
-			// close
-		} finally {
-			SaveableHelper
-					.testSetAutomatedResponse(SaveableHelper.USER_RESPONSE); // restore
-			// default
-			// (prompt)
-			fActivePage.hideView(view);
-			fActivePage.hideView(view2);
-		}
-	}
-
-	public void testClose() throws Throwable {
-		IWorkbenchPage page = openTestPage(fWin);
-
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("aaa.mock1", proj);
-		IEditorPart editor = IDE.openEditor(page, file);
-		CallHistory callTrace = ((MockEditorPart) editor).getCallHistory();
-		callTrace.clear();
-
-		/*
-		 * javadoc: If the page has open editors with unsaved content and save
-		 * is true, the user will be given the opportunity to save them
-		 */
-		assertEquals(page.close(), true);
-		assertEquals(callTrace
-				.verifyOrder(new String[] { "isDirty", "dispose" }), true);
-		assertEquals(fWin.getActivePage(), fActivePage);
-	}
-
-	public void testCloseEditor() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("test.mock1", proj);
-		IEditorPart editor;
-		CallHistory callTrace;
-		MockEditorPart mock;
-
-		/*
-		 * javadoc: Parameters: save - true to save the editor contents if
-		 * required (recommended)
-		 */
-		// create a clean editor that needs to be saved on closing
-		editor = IDE.openEditor(fActivePage, file);
-		mock = (MockEditorPart) editor;
-		mock.setSaveNeeded(true);
-		callTrace = mock.getCallHistory();
-		callTrace.clear();
-		// close the editor with save confirmation
-		assertEquals(fActivePage.closeEditor(editor, true), true);
-		assertEquals(callTrace
-				.verifyOrder(new String[] { "isDirty", "dispose" }), true);
-
-		/*
-		 * javadoc: If the editor has unsaved content and save is true, the user
-		 * will be given the opportunity to save it.
-		 */
-		// can't be tested
-		/*
-		 * javadoc: Parameters: save - false to discard any unsaved changes
-		 */
-		// create a dirty editor
-		editor = IDE.openEditor(fActivePage, file);
-		mock = (MockEditorPart) editor;
-		mock.setDirty(true);
-		mock.setSaveNeeded(true);
-		callTrace = mock.getCallHistory();
-		callTrace.clear();
-		// close the editor and discard changes
-		assertEquals(fActivePage.closeEditor(editor, false), true);
-		assertEquals(callTrace.contains("isSaveOnCloseNeeded"), false);
-		/*
-		 * It is possible that some action may query the isDirty value of the
-		 * editor to update its enabled state. There is nothing wrong in doing
-		 * that, so do not test for no isDirty call here.
-		 * 
-		 * assertEquals(callTrace.contains( "isDirty"), false);
-		 */
-		assertEquals(callTrace.contains("doSave"), false);
-		assertEquals(callTrace.contains("dispose"), true);
-	}
-
-	public void testCloseEditors() throws Throwable {
-		int total = 5;
-		final IFile[] files = new IFile[total];
-		IEditorPart[] editors = new IEditorPart[total];
-		IEditorReference[] editorRefs = new IEditorReference[total];
-		CallHistory[] callTraces = new CallHistory[total];
-		MockEditorPart[] mocks = new MockEditorPart[total];
-
-		proj = FileUtil.createProject("testCloseEditors");
-		for (int i = 0; i < total; i++)
-			files[i] = FileUtil.createFile(i + ".mock2", proj);
-
-		/*
-		 * javadoc: If the page has open editors with unsaved content and save
-		 * is true, the user will be given the opportunity to save them.
-		 */
-		// close all clean editors with confirmation
-		for (int i = 0; i < total; i++) {
-			editors[i] = IDE.openEditor(fActivePage, files[i]);
-			callTraces[i] = ((MockEditorPart) editors[i]).getCallHistory();
-		}
-
-		editorRefs = fActivePage.getEditorReferences();
-		assertEquals(fActivePage.closeEditors(editorRefs, true), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// close all dirty editors with confirmation
-		// can't be tested
-
-		// close all dirty editors discarding them
-		for (int i = 0; i < total; i++) {
-			editors[i] = IDE.openEditor(fActivePage, files[i]);
-			mocks[i] = (MockEditorPart) editors[i];
-			mocks[i].setDirty(true);
-			callTraces[i] = mocks[i].getCallHistory();
-		}
-		editorRefs = fActivePage.getEditorReferences();
-		assertEquals(fActivePage.closeEditors(editorRefs, false), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("doSave"), false);
-		}
-
-		// close empty array of editors
-		total = 1;
-		for (int i = 0; i < total; i++) {
-			editors[i] = IDE.openEditor(fActivePage, files[i]);
-			mocks[i] = (MockEditorPart) editors[i];
-			mocks[i].setDirty(true);
-			callTraces[i] = mocks[i].getCallHistory();
-		}
-		// empty array test
-		editorRefs = new IEditorReference[0];
-		assertEquals(fActivePage.closeEditors(editorRefs, true), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// close the last remaining editor, with save=false
-		editorRefs = fActivePage.getEditorReferences();
-		fActivePage.closeEditors(editorRefs, false);
-	}
-
-	public void testCloseAllEditors() throws Throwable {
-		int total = 5;
-		final IFile[] files = new IFile[total];
-		IEditorPart[] editors = new IEditorPart[total];
-		CallHistory[] callTraces = new CallHistory[total];
-		MockEditorPart[] mocks = new MockEditorPart[total];
-
-		proj = FileUtil.createProject("testOpenEditor");
-		for (int i = 0; i < total; i++)
-			files[i] = FileUtil.createFile(i + ".mock2", proj);
-
-		/*
-		 * javadoc: If the page has open editors with unsaved content and save
-		 * is true, the user will be given the opportunity to save them.
-		 */
-		// close all clean editors with confirmation
-		for (int i = 0; i < total; i++) {
-			editors[i] = IDE.openEditor(fActivePage, files[i]);
-			callTraces[i] = ((MockEditorPart) editors[i]).getCallHistory();
-		}
-		assertEquals(fActivePage.closeAllEditors(true), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// close all dirty editors with confirmation
-		// can't be tested
-
-		// close all dirty editors discarding them
-		for (int i = 0; i < total; i++) {
-			editors[i] = IDE.openEditor(fActivePage, files[i]);
-			mocks[i] = (MockEditorPart) editors[i];
-			mocks[i].setDirty(true);
-			callTraces[i] = mocks[i].getCallHistory();
-		}
-		assertEquals(fActivePage.closeAllEditors(false), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("doSave"), false);
-		}
-	}
-
-	public void testSaveEditor() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		final IFile file = FileUtil.createFile("test.mock1", proj);
-		IEditorPart editor;
-		CallHistory callTrace;
-		MockEditorPart mock;
-
-		// create a clean editor
-		editor = IDE.openEditor(fActivePage, file);
-		mock = (MockEditorPart) editor;
-		callTrace = mock.getCallHistory();
-		callTrace.clear();
-
-		/*
-		 * javadoc: Saves the contents of the given editor if dirty. If not,
-		 * this method returns without effect
-		 */
-		// save the clean editor with confirmation
-		assertEquals(fActivePage.saveEditor(editor, true), true);
-		assertEquals(callTrace.contains("isDirty"), true);
-		assertEquals(callTrace.contains("doSave"), false);
-
-		/*
-		 * javadoc: If confirm is true the user is prompted to confirm the
-		 * command.
-		 */
-		// can't be tested
-		/*
-		 * javadoc: Otherwise, the save happens without prompt.
-		 */
-		// save the clean editor without confirmation
-		assertEquals(fActivePage.saveEditor(editor, false), true);
-		assertEquals(callTrace.contains("isDirty"), true);
-		assertEquals(callTrace.contains("doSave"), false);
-
-		// save the dirty editor without confirmation
-		mock.setDirty(true);
-		callTrace.clear();
-		assertEquals(fActivePage.saveEditor(editor, false), true);
-		assertEquals(callTrace
-				.verifyOrder(new String[] { "isDirty", "doSave" }), true);
-	}
-
-	public void testIDESaveAllEditors() throws Throwable {
-		int total = 3;
-
-		final IFile[] files = new IFile[total];
-		IEditorPart[] editors = new IEditorPart[total];
-		CallHistory[] callTraces = new CallHistory[total];
-		MockEditorPart[] mocks = new MockEditorPart[total];
-
-		proj = FileUtil.createProject("testOpenEditor");
-		for (int i = 0; i < total; i++) {
-			files[i] = FileUtil.createFile(i + ".mock2", proj);
-			editors[i] = IDE.openEditor(fActivePage, files[i]);
-			mocks[i] = (MockEditorPart) editors[i];
-			callTraces[i] = mocks[i].getCallHistory();
-		}
-
-		/*
-		 * javadoc: If there are no dirty editors this method returns without
-		 * effect. javadoc: If confirm is true the user is prompted to confirm
-		 * the command
-		 */
-		// save all clean editors with confirmation
-		assertEquals(IDE.saveAllEditors(new IResource[] { proj }, true), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors with confirmation can't be tested
-
-		/*
-		 * javadoc: Parameters: confirm - false to save unsaved changes without
-		 * asking
-		 */
-		// save all clean editors without confirmation
-		assertEquals(IDE.saveAllEditors(new IResource[] { proj }, false), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors with resource that IS NOT a parent
-		// of the contents of the dirty editors without confirmation, this
-		// should not
-		// save any as they are not parented by the resource provided
-		for (int i = 0; i < total; i++)
-			mocks[i].setDirty(true);
-
-		IResource emptyProj = FileUtil
-				.createProject("testOpenEditorEmptyProject");
-		assertEquals(IDE.saveAllEditors(new IResource[] { emptyProj }, false),
-				true);
-		for (int i = 0; i < total; i++) {
-			// the editors were not in the empty project hence still dirty
-			assertEquals(mocks[i].isDirty(), true);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors with resource that IS a parent
-		// of the contents of the editors without confirmation, this should
-		// save them as they are parented by the resource provided
-		assertEquals(IDE.saveAllEditors(new IResource[] { proj }, false), true);
-		for (int i = 0; i < total; i++) {
-			// the editors were not in the empty project hence still dirty
-			assertEquals(mocks[i].isDirty(), false);
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), true);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors with resource that IS NOT a parent
-		// of the contents of the dirty editors without confirmation, this
-		// should not
-		// save any as they are not parented by the resource provided
-		for (int i = 0; i < total; i++)
-			mocks[i].setDirty(true);
-		assertEquals(IDE.saveAllEditors(new IResource[] {}, false), true);
-		for (int i = 0; i < total; i++) {
-			// the editors were not in the empty project hence still dirty
-			assertEquals(mocks[i].isDirty(), true);
-			callTraces[i].clear();
-		}
-
-		// clear the dirty state so the tearDown does not open a confirm dialog.
-		for (int i = 0; i < total; i++)
-			mocks[i].setDirty(false);
-	}
-
-	public void testSaveAllEditors() throws Throwable {
-		int total = 3;
-
-		final IFile[] files = new IFile[total];
-		IEditorPart[] editors = new IEditorPart[total];
-		CallHistory[] callTraces = new CallHistory[total];
-		MockEditorPart[] mocks = new MockEditorPart[total];
-
-		proj = FileUtil.createProject("testOpenEditor");
-		for (int i = 0; i < total; i++) {
-			files[i] = FileUtil.createFile(i + ".mock2", proj);
-			editors[i] = IDE.openEditor(fActivePage, files[i]);
-			mocks[i] = (MockEditorPart) editors[i];
-			callTraces[i] = mocks[i].getCallHistory();
-		}
-
-		/*
-		 * javadoc: If there are no dirty editors this method returns without
-		 * effect. javadoc: If confirm is true the user is prompted to confirm
-		 * the command
-		 */
-		// save all clean editors with confirmation
-		assertEquals(fActivePage.saveAllEditors(true), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors with confirmation can't be tested
-
-		/*
-		 * javadoc: Parameters: confirm - false to save unsaved changes without
-		 * asking
-		 */
-		// save all clean editors without confirmation
-		assertEquals(fActivePage.saveAllEditors(false), true);
-		for (int i = 0; i < total; i++) {
-			assertEquals(callTraces[i].contains("isDirty"), true);
-			assertEquals(callTraces[i].contains("doSave"), false);
-			callTraces[i].clear();
-		}
-
-		// save all dirty editors without confirmation
-		for (int i = 0; i < total; i++)
-			mocks[i].setDirty(true);
-		assertEquals(fActivePage.saveAllEditors(false), true);
-		for (int i = 0; i < total; i++)
-			assertEquals(callTraces[i].verifyOrder(new String[] { "isDirty",
-					"doSave" }), true);
-	}
-
-	public void testGetEditors() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditor");
-		int totalBefore = fActivePage.getEditorReferences().length;
-		int num = 3;
-		IEditorPart[] editors = new IEditorPart[num];
-
-		for (int i = 0; i < num; i++) {
-			editors[i] = IDE.openEditor(fActivePage, FileUtil.createFile(i
-					+ ".mock2", proj));
-			assertEquals(hasEditor(editors[i]), true);
-		}
-		assertEquals(fActivePage.getEditorReferences().length, totalBefore
-				+ num);
-
-		fActivePage.closeEditor(editors[0], false);
-		assertEquals(hasEditor(editors[0]), false);
-		assertEquals(fActivePage.getEditorReferences().length, totalBefore
-				+ num - 1);
-
-		fActivePage.closeAllEditors(false);
-		assertEquals(fActivePage.getEditorReferences().length, 0);
-	}
-
-	public void testShowActionSet() {
-		String id = MockActionDelegate.ACTION_SET_ID;
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-
-		int totalBefore = page.getActionSets().length;
-		fActivePage.showActionSet(id);
-
-		IActionSetDescriptor[] sets = ((WorkbenchPage) fActivePage)
-				.getActionSets();
-		boolean found = false;
-		for (int i = 0; i < sets.length; i++)
-			if (id.equals(sets[i].getId()))
-				found = true;
-		assertEquals(found, true);
-
-		// check that the method does not add an invalid action set to itself
-		id = IConstants.FakeID;
-		fActivePage.showActionSet(id);
-
-		sets = ((WorkbenchPage) fActivePage).getActionSets();
-		found = false;
-		for (int i = 0; i < sets.length; i++)
-			if (id.equals(sets[i].getId()))
-				found = true;
-		assertEquals(found, false);
-		assertEquals(page.getActionSets().length, totalBefore + 1);
-	}
-
-	public void testHideActionSet() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		int totalBefore = page.getActionSets().length;
-
-		String id = MockWorkbenchWindowActionDelegate.SET_ID;
-		fActivePage.showActionSet(id);
-		assertEquals(page.getActionSets().length, totalBefore + 1);
-
-		fActivePage.hideActionSet(id);
-		assertEquals(page.getActionSets().length, totalBefore);
-
-		IActionSetDescriptor[] sets = page.getActionSets();
-		boolean found = false;
-		for (int i = 0; i < sets.length; i++)
-			if (id.equals(sets[i].getId()))
-				found = true;
-		assertEquals(found, false);
-	}
-
-	/**
-	 * Return whether or not the editor exists in the current page.
-	 * 
-	 * @param editor
-	 * @return boolean
-	 */
-	private boolean hasEditor(IEditorPart editor) {
-		IEditorReference[] references = fActivePage.getEditorReferences();
-		for (int i = 0; i < references.length; i++) {
-			if (references[i].getEditor(false).equals(editor))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Return whether or not the view exists in the current page.
-	 * 
-	 * @param editor
-	 * @return boolean
-	 */
-	private boolean hasView(IViewPart view) {
-		IViewReference[] references = fActivePage.getViewReferences();
-		for (int i = 0; i < references.length; i++) {
-			if (references[i].getView(false).equals(view))
-				return true;
-		}
-		return false;
-	}
-
-	public void testStackOrder() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		try {
-			IViewPart part1 = page.showView(MockViewPart.ID);
-			IViewPart part2 = page.showView(MockViewPart.ID2);
-			IViewPart part3 = page.showView(MockViewPart.ID3);
-			IViewPart part4 = page.showView(MockViewPart.ID4);
-
-			IViewPart[] stack = page.getViewStack(part1);
-			assertTrue(stack.length == 4);
-			assertTrue(stack[0] == part4);
-			assertTrue(stack[1] == part3);
-			assertTrue(stack[2] == part2);
-			assertTrue(stack[3] == part1);
-
-			page.activate(part2);
-			stack = page.getViewStack(part1);
-			assertTrue(stack.length == 4);
-			assertTrue(stack[0] == part2);
-			assertTrue(stack[1] == part4);
-			assertTrue(stack[2] == part3);
-			assertTrue(stack[3] == part1);
-
-			page.activate(part1);
-			stack = page.getViewStack(part1);
-			assertTrue(stack.length == 4);
-			assertTrue(stack[0] == part1);
-			assertTrue(stack[1] == part2);
-			assertTrue(stack[2] == part4);
-			assertTrue(stack[3] == part3);
-
-			page.activate(part3);
-			stack = page.getViewStack(part1);
-			assertTrue(stack.length == 4);
-			assertTrue(stack[0] == part3);
-			assertTrue(stack[1] == part1);
-			assertTrue(stack[2] == part2);
-			assertTrue(stack[3] == part4);
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * Test the VIEW_CREATE parameter for showView. Ensures that the created
-	 * view is not the active part.
-	 * 
-	 */
-	public void testView_CREATE1() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		try {
-
-			page.setPerspective(WorkbenchPlugin.getDefault()
-					.getPerspectiveRegistry().findPerspectiveWithId(
-							"org.eclipse.ui.tests.api.ViewPerspective"));
-
-			// create a part to be active
-			IViewPart activePart = page.showView(MockViewPart.ID);
-			IViewPart createdPart = page.showView(MockViewPart.ID2, null,
-					IWorkbenchPage.VIEW_CREATE);
-
-			IViewPart[] stack = page.getViewStack(activePart);
-			assertEquals(2, stack.length);
-
-			assertEquals(activePart, stack[0]);
-			assertEquals(createdPart, stack[1]);
-
-			assertFalse(page.isPartVisible(createdPart));
-
-			assertEquals(activePart, page.getActivePart());
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * Test the VIEW_CREATE parameter for showView. Ensures that the created
-	 * view is not the active part and is not visible
-	 */
-	public void testView_CREATE2() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		try {
-
-			page.setPerspective(WorkbenchPlugin.getDefault()
-					.getPerspectiveRegistry().findPerspectiveWithId(
-							"org.eclipse.ui.tests.api.ViewPerspective"));
-
-			// create a part to be active
-			IViewPart activePart = page.showView(MockViewPart.ID3);
-			IViewPart createdPart = page.showView(MockViewPart.ID2, null,
-					IWorkbenchPage.VIEW_CREATE);
-
-			IViewPart[] stack = page.getViewStack(createdPart);
-			assertEquals(2, stack.length);
-
-			assertEquals(page.findView(MockViewPart.ID), stack[0]);
-			assertEquals(createdPart, stack[1]);
-
-			assertFalse(page.isPartVisible(createdPart));
-
-			assertEquals(activePart, page.getActivePart());
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * Test the VIEW_CREATE parameter for showView. Ensures that the created
-	 * view is not the active part and is visible.
-	 */
-	public void testView_CREATE3() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		try {
-
-			page.setPerspective(WorkbenchPlugin.getDefault()
-					.getPerspectiveRegistry().findPerspectiveWithId(
-							"org.eclipse.ui.tests.api.ViewPerspective"));
-
-			// create a part to be active
-			IViewPart activePart = page.showView(MockViewPart.ID3);
-			IViewPart createdPart = page.showView(MockViewPart.ID4, null,
-					IWorkbenchPage.VIEW_CREATE);
-
-			IViewPart[] stack = page.getViewStack(createdPart);
-			assertEquals(1, stack.length);
-
-			assertEquals(createdPart, stack[0]);
-
-			assertTrue(page.isPartVisible(createdPart));
-
-			assertEquals(activePart, page.getActivePart());
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * Test the VIEW_VISIBLE parameter for showView, opening the view in the
-	 * stack containing the active view. Ensures that the created view is not
-	 * the active part and is not visible.
-	 */
-	public void testView_VISIBLE1() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		try {
-			page.setPerspective(WorkbenchPlugin.getDefault()
-					.getPerspectiveRegistry().findPerspectiveWithId(
-							"org.eclipse.ui.tests.api.ViewPerspective"));
-
-			// create a part to be active
-			IViewPart activePart = page.showView(MockViewPart.ID);
-			IViewPart createdPart = page.showView(MockViewPart.ID2, null,
-					IWorkbenchPage.VIEW_VISIBLE);
-			IViewPart[] stack = page.getViewStack(activePart);
-			assertEquals(2, stack.length);
-
-			assertEquals(activePart, stack[0]);
-			assertEquals(createdPart, stack[1]);
-
-			assertFalse(page.isPartVisible(createdPart));
-
-			assertEquals(activePart, page.getActivePart());
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * Test the VIEW_VISIBLE parameter for showView, opening the view in its own
-	 * stack. Ensures that the created view is not active part but is the top
-	 * part in its stack.
-	 */
-	public void testView_VISIBLE3() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-		try {
-			page.setPerspective(WorkbenchPlugin.getDefault()
-					.getPerspectiveRegistry().findPerspectiveWithId(
-							"org.eclipse.ui.tests.api.ViewPerspective"));
-
-			// create a part to be active
-			IViewPart activePart = page.showView(MockViewPart.ID3);
-
-			IViewPart createdPart = page.showView(MockViewPart.ID4, null,
-					IWorkbenchPage.VIEW_VISIBLE);
-			IViewPart[] stack = page.getViewStack(createdPart);
-			assertEquals(1, stack.length);
-
-			assertEquals(createdPart, stack[0]);
-
-			assertTrue(page.isPartVisible(createdPart));
-
-			assertEquals(activePart, page.getActivePart());
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * Test opening a perspective with a fast view.
-	 */
-	public void testOpenPerspectiveWithFastView() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-
-		try {
-			fWin.getWorkbench().showPerspective(
-					PerspectiveWithFastView.PERSP_ID, fWin);
-		} catch (WorkbenchException e) {
-			fail("Unexpected WorkbenchException: " + e);
-		}
-
-		assertEquals(page.getFastViews().length, 1);
-		assertEquals(page.getFastViews()[0].getId(),
-				"org.eclipse.ui.views.ResourceNavigator");
-		assertEquals(page.getViewReferences().length, 1);
-		assertTrue(page.getViewReferences()[0].isFastView());
-		
-		IPerspectiveDescriptor persp = page.getPerspective();
-		
-		ICommandService commandService = (ICommandService) fWorkbench.getService(ICommandService.class);
-		Command command = commandService.getCommand("org.eclipse.ui.window.closePerspective");
-		
-		HashMap parameters = new HashMap();
-		parameters.put("org.eclipse.ui.window.closePerspective.perspectiveId", persp.getId());
-		
-		ParameterizedCommand pCommand = ParameterizedCommand.generateCommand(command, parameters);
-		
-		IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		try {
-			handlerService.executeCommand(pCommand, null);
-		} catch (ExecutionException e1) {
-		} catch (NotDefinedException e1) {
-		} catch (NotEnabledException e1) {
-		} catch (NotHandledException e1) {
-		}
-
-	}
-
-	/**
-	 * Test opening a perspective with placeholders for multi instance views.
-	 * The placeholders are added at top level (not in any folder).
-	 * 
-	 * @since 3.1
-	 */
-	public void testOpenPerspectiveWithMultiViewPlaceholdersAtTopLevel() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-
-		try {
-			fWin.getWorkbench().showPerspective(
-					PerspectiveWithMultiViewPlaceholdersAtTopLevel.PERSP_ID,
-					fWin);
-		} catch (WorkbenchException e) {
-			fail("Unexpected WorkbenchException: " + e);
-		}
-
-		PerspectiveState state = new PerspectiveState(page);
-		ArrayList partIds = state.getPartIds(null);
-		assertTrue(partIds.contains("*"));
-		assertTrue(partIds.contains(MockViewPart.IDMULT));
-		assertTrue(partIds.contains(MockViewPart.IDMULT + ":secondaryId"));
-		assertTrue(partIds.contains(MockViewPart.IDMULT + ":*"));
-	}
-
-	/**
-	 * Test opening a perspective with placeholders for multi instance views.
-	 * The placeholders are added in a placeholder folder. This is a regression
-	 * test for bug 72383 [Perspectives] Placeholder folder error with multiple
-	 * instance views
-	 * 
-	 * @since 3.1
-	 */
-	public void testOpenPerspectiveWithMultiViewPlaceholdersInPlaceholderFolder() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-
-		try {
-			fWin
-					.getWorkbench()
-					.showPerspective(
-							PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder.PERSP_ID,
-							fWin);
-		} catch (WorkbenchException e) {
-			fail("Unexpected WorkbenchException: " + e);
-		}
-
-		PerspectiveState state = new PerspectiveState(page);
-		ArrayList partIds = state.getPartIds("placeholderFolder");
-		assertTrue(partIds.contains("*"));
-		assertTrue(partIds.contains(MockViewPart.IDMULT));
-		assertTrue(partIds.contains(MockViewPart.IDMULT + ":secondaryId"));
-		assertTrue(partIds.contains(MockViewPart.IDMULT + ":*"));
-	}
-
-	/**
-	 * Test opening a perspective with placeholders for multi instance views.
-	 * The placeholders are added at top level (not in any folder).
-	 * 
-	 * @since 3.1
-	 */
-	public void testOpenPerspectiveWithMultiViewPlaceholdersInFolder() {
-		WorkbenchPage page = (WorkbenchPage) fActivePage;
-
-		try {
-			fWin
-					.getWorkbench()
-					.showPerspective(
-							PerspectiveWithMultiViewPlaceholdersInFolder.PERSP_ID,
-							fWin);
-		} catch (WorkbenchException e) {
-			fail("Unexpected WorkbenchException: " + e);
-		}
-
-		PerspectiveState state = new PerspectiveState(page);
-		ArrayList partIds = state.getPartIds("folder");
-		assertTrue(partIds.contains("*"));
-		assertTrue(partIds.contains(MockViewPart.IDMULT));
-		assertTrue(partIds.contains(MockViewPart.IDMULT + ":secondaryId"));
-		assertTrue(partIds.contains(MockViewPart.IDMULT + ":*"));
-	}
-
-	/**
-	 * Tests the getNewWizardShortcuts() method.
-	 * 
-	 * @since 3.1
-	 */
-	public void testGetNewWizardShortcuts() {
-		String[] shortcuts = fActivePage.getNewWizardShortcuts();
-		assertNotNull(shortcuts);
-		assertEquals(0, shortcuts.length);
-
-		IWorkbenchWindow win = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-		IWorkbenchPage page = win.getActivePage();
-		shortcuts = page.getNewWizardShortcuts();
-		List shortcutList = Arrays.asList(shortcuts);
-		assertTrue(shortcutList.contains("org.eclipse.ui.wizards.new.folder"));
-		assertTrue(shortcutList.contains("org.eclipse.ui.wizards.new.file"));
-	}
-
-	/**
-	 * Tests the getShowViewShortcuts() method.
-	 * 
-	 * @since 3.1
-	 */
-	public void testGetShowViewShortcuts() {
-		String[] shortcuts = fActivePage.getShowViewShortcuts();
-		assertNotNull(shortcuts);
-		assertEquals(0, shortcuts.length);
-
-		IWorkbenchWindow win = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-		IWorkbenchPage page = win.getActivePage();
-		shortcuts = page.getShowViewShortcuts();
-		List shortcutList = Arrays.asList(shortcuts);
-		assertTrue(shortcutList.contains(ProjectExplorer.VIEW_ID));
-		assertTrue(shortcutList.contains(IPageLayout.ID_OUTLINE));
-		assertTrue(shortcutList.contains(IPageLayout.ID_PROP_SHEET));
-		assertTrue(shortcutList.contains(IPageLayout.ID_PROBLEM_VIEW));
-	}
-
-	/**
-	 * Tests the getPerspectiveShortcuts() method.
-	 * 
-	 * @since 3.1
-	 */
-	public void testGetPerspectiveShortcuts() {
-		String[] shortcuts = fActivePage.getPerspectiveShortcuts();
-		assertNotNull(shortcuts);
-		assertEquals(0, shortcuts.length);
-		// not much of a test
-	}
-
-	/**
-	 * Tests the getOpenPerspectives() method.
-	 * 
-	 * @since 3.1
-	 */
-	public void testGetOpenPerspectives() {
-		IPerspectiveDescriptor[] openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(1, openPersps.length);
-		assertEquals(EmptyPerspective.PERSP_ID, openPersps[0].getId());
-
-		IPerspectiveRegistry reg = fWorkbench.getPerspectiveRegistry();
-		IPerspectiveDescriptor resourcePersp = reg
-				.findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID);
-		fActivePage.setPerspective(resourcePersp);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(2, openPersps.length);
-		assertEquals(EmptyPerspective.PERSP_ID, openPersps[0].getId());
-		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, openPersps[1].getId());
-
-		IPerspectiveDescriptor emptyPersp = reg
-				.findPerspectiveWithId(EmptyPerspective.PERSP_ID);
-		fActivePage.setPerspective(emptyPersp);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(2, openPersps.length);
-		assertEquals(EmptyPerspective.PERSP_ID, openPersps[0].getId());
-		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, openPersps[1].getId());
-
-		fActivePage.closeAllPerspectives(false, false);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(0, openPersps.length);
-
-		fActivePage.close();
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(0, openPersps.length);
-	}
-
-	/**
-	 * Tests the getSortedPerspectives() method.
-	 * 
-	 * @since 3.1
-	 */
-	public void testGetSortedPerspectives() {
-		IPerspectiveDescriptor[] openPersps = fActivePage
-				.getSortedPerspectives();
-		assertEquals(1, openPersps.length);
-		assertEquals(EmptyPerspective.PERSP_ID, openPersps[0].getId());
-
-		IPerspectiveRegistry reg = fWorkbench.getPerspectiveRegistry();
-		IPerspectiveDescriptor resourcePersp = reg
-				.findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID);
-		fActivePage.setPerspective(resourcePersp);
-		openPersps = fActivePage.getSortedPerspectives();
-		assertEquals(2, openPersps.length);
-		assertEquals(EmptyPerspective.PERSP_ID, openPersps[0].getId());
-		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, openPersps[1].getId());
-
-		IPerspectiveDescriptor emptyPersp = reg
-				.findPerspectiveWithId(EmptyPerspective.PERSP_ID);
-		fActivePage.setPerspective(emptyPersp);
-		openPersps = fActivePage.getSortedPerspectives();
-		assertEquals(2, openPersps.length);
-		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, openPersps[0].getId());
-		assertEquals(EmptyPerspective.PERSP_ID, openPersps[1].getId());
-
-		fActivePage.closeAllPerspectives(false, false);
-		openPersps = fActivePage.getSortedPerspectives();
-		assertEquals(0, openPersps.length);
-
-		fActivePage.close();
-		openPersps = fActivePage.getSortedPerspectives();
-		assertEquals(0, openPersps.length);
-	}
-
-	/**
-	 * Tests the closePerspective method.
-	 * 
-	 * @since 3.1
-	 */
-	public void testClosePerspective() {
-		// TODO: Need to test variants with saveEditors==true
-
-		IPerspectiveRegistry reg = fWorkbench.getPerspectiveRegistry();
-		IPerspectiveDescriptor emptyPersp = reg
-				.findPerspectiveWithId(EmptyPerspective.PERSP_ID);
-		IPerspectiveDescriptor resourcePersp = reg
-				.findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID);
-
-		fActivePage.setPerspective(resourcePersp);
-		IPerspectiveDescriptor[] openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(2, openPersps.length);
-
-		fActivePage.closePerspective(resourcePersp, false, false);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(1, openPersps.length);
-		assertEquals(EmptyPerspective.PERSP_ID, openPersps[0].getId());
-
-		fActivePage.closePerspective(emptyPersp, false, false);
-		assertEquals(fActivePage, fWin.getActivePage()); // page not closed
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(0, openPersps.length);
-
-		fActivePage.setPerspective(emptyPersp);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(1, openPersps.length);
-
-		fActivePage.closePerspective(emptyPersp, false, true);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(0, openPersps.length);
-		assertNull(fWin.getActivePage()); // page closed
-	}
-
-	/**
-	 * Tests the closeAllPerspectives method.
-	 * 
-	 * @since 3.1
-	 */
-	public void testCloseAllPerspectives() {
-		// TODO: Need to test variants with saveEditors==true
-
-		IPerspectiveRegistry reg = fWorkbench.getPerspectiveRegistry();
-		IPerspectiveDescriptor emptyPersp = reg
-				.findPerspectiveWithId(EmptyPerspective.PERSP_ID);
-		IPerspectiveDescriptor resourcePersp = reg
-				.findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID);
-
-		fActivePage.setPerspective(resourcePersp);
-		IPerspectiveDescriptor[] openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(2, openPersps.length);
-
-		fActivePage.closeAllPerspectives(false, false);
-		assertEquals(fActivePage, fWin.getActivePage()); // page not closed
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(0, openPersps.length);
-
-		fActivePage.setPerspective(emptyPersp);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(1, openPersps.length);
-
-		fActivePage.closeAllPerspectives(false, true);
-		openPersps = fActivePage.getOpenPerspectives();
-		assertEquals(0, openPersps.length);
-		assertNull(fWin.getActivePage()); // page closed
-	}
-
-	/**
-	 * Regression test for Bug 76285 [Presentations] Folder tab does not
-	 * indicate current view. Tests that, when switching between perspectives,
-	 * the remembered old part correctly handles multi-view instances.
-	 */
-	public void testBug76285() {
-		IWorkbenchPage page = fActivePage;
-		IPerspectiveDescriptor originalPersp = page.getPerspective();
-		IPerspectiveDescriptor resourcePersp = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						IDE.RESOURCE_PERSPECTIVE_ID);
-		// test requires switching between two different perspectives
-		assertNotSame(originalPersp, resourcePersp);
-
-		int n = 5;
-		IViewPart[] views = new IViewPart[n];
-		for (int i = 0; i < n; ++i) {
-			try {
-				views[i] = page.showView(MockViewPart.IDMULT, Integer
-						.toString(i), IWorkbenchPage.VIEW_CREATE);
-			} catch (PartInitException e) {
-				fail(e.getMessage());
-			}
-		}
-		assertEquals(5, page.getViews().length);
-		for (int i = 0; i < n; ++i) {
-			page.activate(views[i]);
-			page.setPerspective(resourcePersp);
-			assertFalse(page.getActivePart() instanceof MockViewPart);
-			page.setPerspective(originalPersp);
-			assertEquals(views[i], page.getActivePart());
-		}
-	}
-
-	/**
-	 * Tests that IShowEditorInput.showEditorInput is called when a matching
-	 * editor is found during openEditor, and is not called when a new editor is
-	 * opened.
-	 * 
-	 * @since 3.1
-	 */
-	public void testShowEditorInput() throws Exception {
-		IWorkbenchPage page = fActivePage;
-		proj = FileUtil.createProject("testShowEditorInput");
-		IFile file = FileUtil.createFile("a.mock1", proj);
-		MockEditorPart part1 = (MockEditorPart) IDE.openEditor(page, file);
-		assertFalse(part1.getCallHistory().contains("showEditorInput"));
-
-		MockEditorPart part2 = (MockEditorPart) IDE.openEditor(page, file);
-		assertTrue(part1 == part2);
-		assertTrue(part2.getCallHistory().contains("showEditorInput"));
-	}
-
-	/**
-	 * Tests that the openEditor and findEditor variants that accepts match
-	 * flags work as expected.
-	 * 
-	 * @since 3.2
-	 */
-	public void testOpenAndFindEditorWithMatchFlags() throws Exception {
-		IWorkbenchPage page = fActivePage;
-		proj = FileUtil.createProject("testOpenEditorMatchFlags");
-		IFile file1 = FileUtil.createFile("a.mock1", proj);
-		IFile file2 = FileUtil.createFile("a.mock2", proj);
-		FileEditorInput input1 = new FileEditorInput(file1);
-		FileEditorInput input2 = new FileEditorInput(file2);
-		String id1 = MockEditorPart.ID1;
-		String id2 = MockEditorPart.ID2;
-
-		// first editor (no match)
-		MockEditorPart part1 = (MockEditorPart) page.openEditor(input1, id1,
-				true, IWorkbenchPage.MATCH_INPUT);
-		assertNotNull(part1);
-
-		// same input, same id, matching input (should match part1)
-		MockEditorPart part2 = (MockEditorPart) page.openEditor(input1, id1,
-				true, IWorkbenchPage.MATCH_INPUT);
-		assertTrue(part1 == part2);
-
-		// same input, different id, matching input (should match part1)
-		MockEditorPart part3 = (MockEditorPart) page.openEditor(input1, id2,
-				true, IWorkbenchPage.MATCH_INPUT);
-		assertTrue(part1 == part3);
-
-		// same input, different id, matching input and id (no match)
-		MockEditorPart part4 = (MockEditorPart) page.openEditor(input1, id2,
-				true, IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID);
-		assertNotNull(part4);
-		assertTrue(part4 != part1);
-
-		// same input, same id, matching nothing (no match)
-		MockEditorPart part5 = (MockEditorPart) page.openEditor(input1, id1,
-				true, IWorkbenchPage.MATCH_NONE);
-		assertNotNull(part5);
-		assertTrue(part5 != part1);
-		assertTrue(part5 != part4);
-
-		// different input, same id, matching id (should match part5 instead of
-		// part1, because it was active)
-		MockEditorPart part6 = (MockEditorPart) page.openEditor(input2, id1,
-				true, IWorkbenchPage.MATCH_ID);
-		assertTrue(part6 == part5);
-
-		// different input, different id, matching input and id (no match)
-		MockEditorPart part7 = (MockEditorPart) page.openEditor(input2, id2,
-				true, IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID);
-		assertNotNull(part7);
-		assertTrue(part7 != part1);
-		assertTrue(part7 != part4);
-		assertTrue(part7 != part5);
-
-		// At this point, there are 4 editors open:
-		// part1 (input1, id1), part4 (input1, id2), part5 (input1, id1), and
-		// part7 (input2, id2).
-		// with part7 active.
-
-		// find with MATCH_NONE is always empty
-		IEditorReference[] refs = page.findEditors(input1, id1,
-				IWorkbenchPage.MATCH_NONE);
-		assertEquals(0, refs.length);
-
-		// find input1 with MATCH_INPUT finds 3 editors: part1, part4 and part5
-		// (in order)
-		refs = page.findEditors(input1, null, IWorkbenchPage.MATCH_INPUT);
-		assertEquals(3, refs.length);
-		assertEquals(part1, refs[0].getPart(true));
-		assertEquals(part4, refs[1].getPart(true));
-		assertEquals(part5, refs[2].getPart(true));
-
-		// find input2 with MATCH_INPUT finds 1 editor: part7
-		refs = page.findEditors(input2, null, IWorkbenchPage.MATCH_INPUT);
-		assertEquals(1, refs.length);
-		assertEquals(part7, refs[0].getPart(true));
-
-		// find id1 with MATCH_ID finds 2 editors: part1 and part5 (in order)
-		refs = page.findEditors(null, id1, IWorkbenchPage.MATCH_ID);
-		assertEquals(2, refs.length);
-		assertEquals(part1, refs[0].getPart(true));
-		assertEquals(part5, refs[1].getPart(true));
-
-		// find id2 with MATCH_ID finds 2 editors: part4 and part7 (with part7
-		// first because it was active)
-		refs = page.findEditors(null, id2, IWorkbenchPage.MATCH_ID);
-		assertEquals(2, refs.length);
-		assertEquals(part7, refs[0].getPart(true));
-		assertEquals(part4, refs[1].getPart(true));
-
-		// find input1 and id1 with MATCH_INPUT and MATCH_ID finds 2 editors:
-		// part1 and part5 (in order)
-		refs = page.findEditors(input1, id1, IWorkbenchPage.MATCH_INPUT
-				| IWorkbenchPage.MATCH_ID);
-		assertEquals(2, refs.length);
-		assertEquals(part1, refs[0].getPart(true));
-		assertEquals(part5, refs[1].getPart(true));
-
-		// find input1 and id2 with MATCH_INPUT and MATCH_ID finds 1 editors:
-		// part4
-		refs = page.findEditors(input1, id2, IWorkbenchPage.MATCH_INPUT
-				| IWorkbenchPage.MATCH_ID);
-		assertEquals(1, refs.length);
-		assertEquals(part4, refs[0].getPart(true));
-	}
-	
-	
-	/**
-	 * Create and hide a single editor, and check it is reflected in the
-	 * editor references.  Check that close still works.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor1() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a.mock1", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor instanceof MockEditorPart);
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		fActivePage.hideEditor(editorRef);
-		assertEquals(0, fActivePage.getEditorReferences().length);
-		fActivePage.showEditor(editorRef);
-		assertEquals(1, fActivePage.getEditorReferences().length);
-		fActivePage.closeAllEditors(true);
-		assertEquals(0, fActivePage.getEditorReferences().length);
-		assertEquals(getMessage(), 0, logCount);
-	}
-	
-	/**
-	 * Create and remove 2 editors.  Check that the removed editor
-	 * is not returned in the list of references.  Check that
-	 * close still works.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor2() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a.mock1", proj);
-		IFile file2 = FileUtil.createFile("a.mock2", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor instanceof MockEditorPart);
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		IEditorPart editor2 = IDE.openEditor(fActivePage, file2);
-		assertTrue(editor2 instanceof MockEditorPart);
-		IEditorReference editorRef2 = (IEditorReference) fActivePage.getReference(editor2);
-		
-		fActivePage.hideEditor(editorRef);
-		IEditorReference[] refs = fActivePage.getEditorReferences();
-		assertEquals(1, refs.length);
-		assertEquals(editorRef2, refs[0]);
-		fActivePage.showEditor(editorRef);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(2, refs.length);
-		
-		fActivePage.hideEditor(editorRef2);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(1, refs.length);
-		fActivePage.hideEditor(editorRef);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(0, refs.length);
-		fActivePage.showEditor(editorRef);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(editorRef, refs[0]);
-		fActivePage.showEditor(editorRef2);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(2, refs.length);
-		
-		fActivePage.closeAllEditors(true);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(0, refs.length);
-		assertEquals(getMessage(), 0, logCount);
-	}
-
-	/**
-	 * Create 2 editors and hide one.  When added back and then closed, there
-	 * should only be one editor.  Adding back the closed editor should
-	 * generate a log message and not effect the list of editors.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor3() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a.mock1", proj);
-		IFile file2 = FileUtil.createFile("a.mock2", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor instanceof MockEditorPart);
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		IEditorPart editor2 = IDE.openEditor(fActivePage, file2);
-		assertTrue(editor2 instanceof MockEditorPart);
-		IEditorReference editorRef2 = (IEditorReference) fActivePage.getReference(editor2);
-		
-		fActivePage.hideEditor(editorRef2);
-		IEditorReference[] refs = fActivePage.getEditorReferences();
-		assertEquals(1, refs.length);
-		assertEquals(editorRef, refs[0]);
-		fActivePage.showEditor(editorRef2);
-		fActivePage.closeEditors(new IEditorReference[] { editorRef2 }, true);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(1, refs.length);
-		fActivePage.showEditor(editorRef2);
-		assertEquals(1, refs.length);
-		assertEquals(getMessage(), 1, logCount);
-		assertNotNull(getMessage());
-		assertTrue(getMessage().startsWith("adding a disposed part"));
-	}
-
-	/**
-	 * Create 2 editors, and remove and show one of them.  Trying to
-	 * add it a second time should not effect the list of editor references.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor4() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a.mock1", proj);
-		IFile file2 = FileUtil.createFile("a.mock2", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor instanceof MockEditorPart);
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		IEditorPart editor2 = IDE.openEditor(fActivePage, file2);
-		assertTrue(editor2 instanceof MockEditorPart);
-		IEditorReference editorRef2 = (IEditorReference) fActivePage.getReference(editor2);
-		
-		fActivePage.hideEditor(editorRef2);
-		IEditorReference[] refs = fActivePage.getEditorReferences();
-		assertEquals(1, refs.length);
-		assertEquals(editorRef, refs[0]);
-		fActivePage.showEditor(editorRef2);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(2, refs.length);
-		fActivePage.showEditor(editorRef2);
-		refs = fActivePage.getEditorReferences();
-		assertEquals(2, refs.length);
-		assertEquals(getMessage(), 0, logCount);
-	}
-	
-	/**
-	 * Create 2 editors that effect the Content Outline view.  Make
-	 * sure that hiding and showing the active editor effects the 
-	 * outline view.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor5() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a1.java", proj);
-		IFile file2 = FileUtil.createFile("a2.java", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor.getClass().getName().endsWith("CompilationUnitEditor"));
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		IEditorPart editor2 = IDE.openEditor(fActivePage, file2);
-		assertTrue(editor2.getClass().getName().endsWith("CompilationUnitEditor"));
-		
-		ContentOutline outline = (ContentOutline) fActivePage.showView(IPageLayout.ID_OUTLINE);
-		IPage page2 = outline.getCurrentPage();
-		fActivePage.activate(editor);
-		processEvents();
-		IPage page = outline.getCurrentPage();
-		assertFalse(page2==page);
-		
-		assertEquals(getMessage(), 0, logCount);
-		
-		fActivePage.hideEditor(editorRef);
-		assertEquals(page2, outline.getCurrentPage());
-		assertEquals(getMessage(), 0, logCount);
-		
-		fActivePage.showEditor(editorRef);
-		assertEquals(page2, outline.getCurrentPage());
-		assertEquals(getMessage(), 0, logCount);
-		
-		fActivePage.activate(editor);
-		assertEquals(page, outline.getCurrentPage());
-		assertEquals(getMessage(), 0, logCount);
-	}
-	
-	/**
-	 * Create one editor.  Make sure hiding and showing it effects
-	 * the outline view, and that when hidden the outline view
-	 * reflects the default page.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor6() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a1.java", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor.getClass().getName().endsWith("CompilationUnitEditor"));
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		
-		ContentOutline outline = (ContentOutline) fActivePage.showView(IPageLayout.ID_OUTLINE);
-		IPage defaultPage = outline.getDefaultPage();
-		assertNotNull(defaultPage);
-		
-		processEvents();
-		IPage page = outline.getCurrentPage();
-		assertFalse(defaultPage==page);
-		
-		assertEquals(getMessage(), 0, logCount);
-		assertEquals(0, partHiddenCount);
-		fActivePage.addPartListener(partListener2);
-		fActivePage.hideEditor(editorRef);
-		processEvents();
-		
-		assertEquals(1, partHiddenCount);
-		assertEquals(editorRef, partHiddenRef);
-		
-		assertEquals(defaultPage, outline.getCurrentPage());
-		//assertEquals(page, outline.getCurrentPage());
-		assertEquals(getMessage(), 0, logCount);
-				
-		assertEquals(0, partVisibleCount);
-		fActivePage.showEditor(editorRef);
-		processEvents();
-		assertEquals(page, outline.getCurrentPage());
-		assertEquals(getMessage(), 0, logCount);
-		assertEquals(1, partVisibleCount);
-		assertEquals(editorRef, partVisibleRef);
-		
-		fActivePage.activate(editor);
-		assertEquals(page, outline.getCurrentPage());
-		assertEquals(getMessage(), 0, logCount);
-	}
-
-	/**
-	 * Create one editor.  Make sure hiding the editor updates
-	 * the window title.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor7() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a1.java", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor.getClass().getName().endsWith("CompilationUnitEditor"));
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		
-		processEvents();
-		
-		String firstTitle = fWin.getShell().getText();
-		
-		assertEquals(getMessage(), 0, logCount);
-		assertEquals(0, partHiddenCount);
-		fActivePage.addPartListener(partListener2);
-		fActivePage.hideEditor(editorRef);
-		processEvents();
-		
-		assertEquals(1, partHiddenCount);
-		assertEquals(editorRef, partHiddenRef);
-				
-		String nextTitle = fWin.getShell().getText();
-		String tooltip = editor.getTitleToolTip();
-		assertNotNull(tooltip);
-		String[] split = Util.split(nextTitle, '-');
-		assertEquals(2, split.length);
-		String nextTitleRebuilt = split[0] + "- " + tooltip + " -" + split[1];
-		assertEquals(firstTitle, nextTitleRebuilt);
-		
-		assertEquals(0, partVisibleCount);
-		fActivePage.showEditor(editorRef);
-		processEvents();
-		assertEquals(getMessage(), 0, logCount);
-		assertEquals(1, partVisibleCount);
-		assertEquals(editorRef, partVisibleRef);
-		nextTitle = fWin.getShell().getText();
-		assertEquals(firstTitle, nextTitle);
-		
-		fActivePage.activate(editor);
-		assertEquals(getMessage(), 0, logCount);
-	}
-	
-	/**
-	 * Create one editor.  Make sure hiding the editor that is the active part
-	 * causes another part to become active.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor8() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a1.java", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor.getClass().getName().endsWith("CompilationUnitEditor"));
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		
-		ContentOutline outline = (ContentOutline) fActivePage.showView(IPageLayout.ID_OUTLINE);
-		IPage defaultPage = outline.getDefaultPage();
-		assertNotNull(defaultPage);
-		fActivePage.activate(editor);
-		
-		processEvents();
-		IPage page = outline.getCurrentPage();
-		assertFalse(defaultPage==page);
-		
-		partActiveCount = 0;
-		partActiveRef = null;
-		assertEquals(getMessage(), 0, logCount);
-		assertEquals(0, partHiddenCount);
-		fActivePage.addPartListener(partListener2);
-		fActivePage.hideEditor(editorRef);
-		processEvents();
-		
-		assertEquals(1, partHiddenCount);
-		assertEquals(editorRef, partHiddenRef);
-		assertEquals(1, partActiveCount);
-		assertFalse(partActiveRef == editorRef);
-		
-		fActivePage.showEditor(editorRef);
-		
-		assertEquals(getMessage(), 0, logCount);
-	}
-
-	/**
-	 * Create a java editor.  Make a change.  Validate the enabled state
-	 * of some commands.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor9() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a1.java", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor.getClass().getName()
-				.endsWith("CompilationUnitEditor"));
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-
-		fActivePage.activate(editor);
-
-		processEvents();
-		ICommandService cs = (ICommandService) fActivePage.getWorkbenchWindow()
-				.getService(ICommandService.class);
-		Command undo = cs.getCommand("org.eclipse.ui.edit.undo");
-		assertTrue(undo.isDefined());
-
-		assertFalse(undo.isEnabled());
-
-		ITextEditor textEditor = (ITextEditor) editor;
-		IDocument doc = textEditor.getDocumentProvider().getDocument(
-				textEditor.getEditorInput());
-		doc.replace(0, 1, "  ");
-		fActivePage.saveEditor(editor, false);
-		
-		processEvents();
-		assertTrue(undo.isEnabled());
-		
-		assertEquals(getMessage(), 0, logCount);
-		fActivePage.hideEditor(editorRef);
-		processEvents();
-
-		assertFalse(undo.isEnabled());
-		
-		fActivePage.showEditor(editorRef);
-		
-		assertTrue(undo.isEnabled());
-		
-		assertEquals(getMessage(), 0, logCount);
-	}
-
-	/**
-	 * Create and hide a single editor, and check it is reflected in the
-	 * editor references.  Check that closing the hidden editor still works.
-	 * 
-	 * @throws Exception
-	 */
-	public void testOpenAndHideEditor10() throws Exception {
-		proj = FileUtil.createProject("testOpenAndHideEditor");
-		IFile file1 = FileUtil.createFile("a.mock1", proj);
-		IEditorPart editor = IDE.openEditor(fActivePage, file1);
-		assertTrue(editor instanceof MockEditorPart);
-		IEditorReference editorRef = (IEditorReference) fActivePage
-				.getReference(editor);
-		fActivePage.hideEditor(editorRef);
-		assertEquals(0, fActivePage.getEditorReferences().length);
-		fActivePage.showEditor(editorRef);
-		assertEquals(1, fActivePage.getEditorReferences().length);
-		fActivePage.hideEditor(editorRef);
-		processEvents();
-		fActivePage.closeAllEditors(false);
-		assertEquals(getMessage(), 0, logCount);
-		assertEquals(0, fActivePage.getEditorReferences().length);
-	}
-	
-	/**
-	 * Test opening multiple editors for an edge case: one input.
-	 * 
-	 * openEditors(IWorkbenchPage page, IFile[] inputs)
-	 */
-	public void testOpenEditors1() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditors");
-		IFile[] inputs = new IFile[1];
-		String fileName0 = "test0.txt";
-		inputs[0] = FileUtil.createFile(fileName0, proj);
-
-		// Check: editor references are returned for each file
-		IEditorReference[] refs = IDE.openEditors(fActivePage, inputs);
-		assertNotNull(refs);
-		assertEquals(1, refs.length);
-		assertNotNull(refs[0]);
-		
-		// Check: the editor is materialized
-		IEditorPart editor0 = refs[0].getEditor(false);
-		assertNotNull(editor0);
-		
-		// Check: the first file corresponds to the active editor
-		assertEquals(fActivePage.getActiveEditor(), editor0);
-
-		// Check: created editor match its input
-		assertEquals(editor0.getSite().getId(), fWorkbench.getEditorRegistry()
-				.getDefaultEditor(inputs[0].getName()).getId());
-		
-		// Check: reference's title matches the file name
-		assertEquals(fileName0, refs[0].getTitle());
-	}
-	
-	/**
-	 * Test opening multiple editors for three inputs. Only first editor 
-	 * should be materialized; it also should be the active editor.
-	 * 
-	 * openEditors(IWorkbenchPage page, IFile[] inputs)
-	 */
-	public void testOpenEditors3() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditors");
-		IFile[] inputs = new IFile[3];
-		String fileName1 = "test1.txt";
-		String fileName2 = "test2.txt";
-		String fileName3 = "test3.txt";
-		inputs[0] = FileUtil.createFile(fileName1, proj);
-		inputs[1] = FileUtil.createFile(fileName2, proj);
-		inputs[2] = FileUtil.createFile(fileName3, proj);
-
-		// Check: editor references are returned for each file
-		IEditorReference[] refs = IDE.openEditors(fActivePage, inputs);
-		assertNotNull(refs);
-		assertEquals(3, refs.length);
-		assertNotNull(refs[0]);
-		assertNotNull(refs[1]);
-		assertNotNull(refs[2]);
-		
-		// Check: the first file got an editor materialized, rest of the files did not
-		IEditorPart editor0 = refs[0].getEditor(false);
-		assertNotNull(editor0);
-		assertNull(refs[1].getEditor(false));
-		assertNull(refs[2].getEditor(false));
-		
-		// Check: the first file corresponds to the active editor
-		assertEquals(fActivePage.getActiveEditor(), editor0);
-
-		// Check: created editors match their inputs
-		assertEquals(editor0.getSite().getId(), fWorkbench.getEditorRegistry()
-				.getDefaultEditor(inputs[0].getName()).getId());
-		
-		// Check: rest of the editors can be materialized
-		IEditorPart editor1 = refs[1].getEditor(true);
-		assertNotNull(editor1);
-		
-		// Check: those editors match their inputs too
-		assertEquals(editor1.getSite().getId(), fWorkbench.getEditorRegistry()
-				.getDefaultEditor(inputs[1].getName()).getId());
-		
-		// Check: reference's title matches the file name
-		assertEquals(fileName1, refs[0].getTitle());
-		assertEquals(fileName2, refs[1].getTitle());
-		assertEquals(fileName3, refs[2].getTitle());
-	}
-	
-	/**
-	 * Test editor reuse when opening multiple editors. The internal editors 
-	 * with matching {id, input} should be reused.
-	 * 
-	 * openEditors(IWorkbenchPage page, IFile[] inputs)
-	 */
-	public void testOpenEditorsReuse() throws Throwable {
-		proj = FileUtil.createProject("testOpenEditors");
-		
-		String fileName1 = "test1.txt";
-		String fileName2 = "test2.txt";
-		String fileName3 = "test3.txt";
-		int flag = IWorkbenchPage.MATCH_INPUT | IWorkbenchPage.MATCH_ID; // use both matches
-		
-		// open three files
-		IFile[] inputs = new IFile[3];
-		inputs[0] = FileUtil.createFile(fileName1, proj);
-		inputs[1] = FileUtil.createFile(fileName2, proj);
-		inputs[2] = FileUtil.createFile(fileName3, proj);
-		IEditorReference[] refs = IDE.openEditors(fActivePage, inputs);
-		
-		// open two of the same files in mixed order, 1st (materialized) and 3rd (not materialized)
-		String editorID = fWorkbench.getEditorRegistry().getDefaultEditor(inputs[0].getName()).getId();
-		IEditorInput[] inputs2 = new IEditorInput[] { 
-				new FileEditorInput(inputs[1]), 
-				new FileEditorInput(inputs[0]) };
-		String[] editorIDs2 = new String [] { editorID, editorID} ;
-		
-		IEditorReference[] refs2 = fActivePage.openEditors(inputs2, editorIDs2, flag);
-		assertNotNull(refs2);
-		assertEquals(2, refs2.length);
-		
-		// now input1 is materialized and has focus
-		IEditorPart editor = refs2[0].getEditor(false);
-		assertNotNull(editor);
-		assertEquals(fActivePage.getActiveEditor(), editor);
-		
-		// check that the same editor was created
-		assertEquals(refs2[0].getEditor(true), refs[1].getEditor(true));
-		assertEquals(refs2[1].getEditor(true), refs[0].getEditor(true));
-		
-		// open a file with different editor IDs, materialized (input0) and non-materialzed (input3)
-		String editorIDAlt = fWorkbench.getEditorRegistry().getDefaultEditor("abc.log").getId();
-		IEditorInput[] inputs3 = new IEditorInput[] { 
-				new FileEditorInput(inputs[0]), 
-				new FileEditorInput(inputs[2]) };
-		String[] editorIDs3 = new String [] { editorIDAlt, editorIDAlt} ;
-		
-		IEditorReference[] refs3 = fActivePage.openEditors(inputs3, editorIDs3, flag);
-		assertNotNull(refs3);
-		assertEquals(2, refs3.length);
-		
-		assertFalse(refs2[0].equals(refs[0]));
-		assertFalse(refs2[1].equals(refs[2]));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartSiteTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartSiteTest.java
deleted file mode 100644
index 0a770a4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartSiteTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the site for an IWorkbenchPart.
- */
-public abstract class IWorkbenchPartSiteTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    /**
-     * Constructor for IWorkbenchPartSiteTest
-     */
-    public IWorkbenchPartSiteTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testGetId() throws Throwable {
-        // From Javadoc: "Returns the part registry extension id for 
-        // this workbench site's part."
-
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        assertEquals(getTestPartId(), site.getId());
-    }
-
-    public void testGetPage() throws Throwable {
-        // From Javadoc: "Returns the page containing this workbench 
-        // site's part."
-
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        assertEquals(fPage, site.getPage());
-    }
-
-    public void testGetPluginId() throws Throwable {
-        // From Javadoc: "Returns the unique identifier of the 
-        // plug-in that defines this workbench site's part."
-
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        assertEquals(getTestPartPluginId(), site.getPluginId());
-    }
-
-    public void testGetRegisteredName() throws Throwable {
-        // From Javadoc: "Returns the registered name for this 
-        // workbench site's part."
-
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        assertEquals(getTestPartName(), site.getRegisteredName());
-    }
-
-    public void testGetShell() throws Throwable {
-        // From Javadoc: "Returns the shell containing this 
-        // workbench site's part"
-
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        assertEquals(fWindow.getShell(), site.getShell());
-    }
-
-    public void testGetWorkbenchWindow() throws Throwable {
-        // From Javadoc: "Returns the workbench window 
-        // containing this workbench site's part."
-
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        assertEquals(fWindow, site.getWorkbenchWindow());
-    }
-
-    public void testGetSelectionProvider() throws Throwable {
-        // From Javadoc: "'Get' returns the selection provider 
-        // for this workbench site's part.  
-
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        assertTrue(part instanceof MockWorkbenchPart);
-        MockWorkbenchPart mock = (MockWorkbenchPart) part;
-        assertEquals(mock.getSelectionProvider(), site.getSelectionProvider());
-    }
-
-    public void testSetSelectionProvider() throws Throwable {
-        // From Javadoc: 'Set' sets the selection provider.
-
-        // Set selection provider to null.
-        IWorkbenchPart part = createTestPart(fPage);
-        IWorkbenchPartSite site = part.getSite();
-        site.setSelectionProvider(null);
-        assertNull(site.getSelectionProvider());
-
-        // Set selection provider to real.
-        MockSelectionProvider provider = new MockSelectionProvider();
-        site.setSelectionProvider(provider);
-        assertEquals(provider, site.getSelectionProvider());
-    }
-    
-    public void testINestableService() throws Throwable {
-    	IWorkbenchPart part = createTestPart(fPage);
-    	IWorkbenchPartSite site = part.getSite();
-    	DummyService service = (DummyService) site.getService(DummyService.class);
-
-    	assertTrue(service.isActive());
-    	if(part instanceof IViewPart)
-    		fPage.hideView((IViewPart) part);
-    	else
-    		fPage.closeEditor((IEditorPart) part, false);
-    	assertFalse(service.isActive());
-    	
-    }
-    
-
-    /**
-     * Creates a test part in the page.	
-     */
-    abstract protected IWorkbenchPart createTestPart(IWorkbenchPage page)
-            throws Throwable;
-
-    /**
-     * Returns the expected id for a test part.
-     */
-    abstract protected String getTestPartId() throws Throwable;
-
-    /**
-     * Returns the expected name for a test part.
-     */
-    abstract protected String getTestPartName() throws Throwable;
-
-    /**
-     * Returns the expected id for a test part plugin.  Subclasses may
-     * override this.
-     */
-    protected String getTestPartPluginId() throws Throwable {
-        return "org.eclipse.ui.tests";
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTest.java
deleted file mode 100644
index 7a745b4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTest.java
+++ /dev/null
@@ -1,67 +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.ui.tests.api;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * This is a test for IWorkbenchPart.  Since IWorkbenchPart is an
- * interface this test verifies the IWorkbenchPart lifecycle rather
- * than the implementation.
- */
-public abstract class IWorkbenchPartTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    /**
-     * Constructor for IActionDelegateTest
-     */
-    public IWorkbenchPartTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testOpenAndClose() throws Throwable {
-        // Open a part.
-        MockPart part = openPart(fPage);
-        assertTrue(part.isSiteInitialized());
-        CallHistory history = part.getCallHistory();
-        assertTrue(history.verifyOrder(new String[] { "setInitializationData", "init",
-                "createPartControl", "setFocus" }));
-
-        // Close the part.
-        closePart(fPage, part);
-        assertTrue(history.verifyOrder(new String[] { "setInitializationData", "init",
-                "createPartControl", "setFocus", "widgetDisposed", "dispose" }));
-    }
-
-    /**
-     * Opens a part.  Subclasses should override
-     */
-    protected abstract MockPart openPart(IWorkbenchPage page) throws Throwable;
-
-    /**
-     * Closes a part.  Subclasses should override
-     */
-    protected abstract void closePart(IWorkbenchPage page, MockPart part)
-            throws Throwable;
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTestableTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTestableTests.java
deleted file mode 100644
index 97e0b93..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchPartTestableTests.java
+++ /dev/null
@@ -1,99 +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.tests.api;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.testing.IWorkbenchPartTestable;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class IWorkbenchPartTestableTests extends UITestCase {
-
-	/**
-	 * @param testName
-	 */
-	public IWorkbenchPartTestableTests(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Iterate over all parts to ensure that they all return a part testable
-	 * that contains a real composite.
-	 */
-	public void testGetComposite() throws CoreException {
-		IWorkbenchPage page = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID)
-				.getActivePage();
-		assertNotNull(page);
-
-		IProject proj = FileUtil.createProject("testIWorkbenchPartTestable");
-
-		assertNotNull(IDE
-				.openEditor(page, FileUtil.createFile("foo.txt", proj)));
-		assertNotNull(IDE.openEditor(page, FileUtil.createFile(
-				"foo.properties", proj)));
-		assertNotNull(IDE.openEditor(page, FileUtil
-				.createFile("foo.java", proj)));
-		assertNotNull(IDE
-				.openEditor(page, FileUtil.createFile("foo.xml", proj)));
-
-		IEditorPart editors[] = page.getEditors();
-		Set encounteredControls = new HashSet();
-		testParts(editors, encounteredControls);
-
-		IViewPart views[] = page.getViews();
-		testParts(views, encounteredControls);
-
-		IIntroPart intro = page.getWorkbenchWindow().getWorkbench()
-				.getIntroManager().showIntro(page.getWorkbenchWindow(), false);
-		testParts(new IIntroPart [] { intro }, encounteredControls);
-
-		encounteredControls.clear();
-	}
-
-	/**
-	 * @param parts
-	 * @param encounteredControls
-	 */
-	private void testParts(Object[] parts, Set encounteredControls) {
-		for (int i = 0; i < parts.length; i++) {
-			String title = null;
-			IWorkbenchPartTestable testable = null;
-			if (parts instanceof IWorkbenchPart[]) {
-				testable = (IWorkbenchPartTestable) ((IWorkbenchPart) parts[i])
-						.getSite().getAdapter(IWorkbenchPartTestable.class);
-				title = ((IWorkbenchPart) parts[i]).getTitle();
-			} else {
-				testable = (IWorkbenchPartTestable) ((IIntroPart) parts[i])
-						.getIntroSite()
-						.getAdapter(IWorkbenchPartTestable.class);
-				title = ((IIntroPart) parts[i]).getTitle();
-			}
-			assertNotNull(title + " has null testable", testable);
-			assertTrue(title + " has previously encountered control",
-					encounteredControls.add(testable.getControl()));
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTest.java
deleted file mode 100644
index def6372..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTest.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the IWorkbench interface.
- */
-public class IWorkbenchTest extends UITestCase {
-
-    public IWorkbenchTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests the activation of two windows.
-     */
-    public void testGetActiveWorkbenchWindow() throws Throwable {
-        IWorkbenchWindow win1, win2;
-
-        // Test initial window.
-        win1 = fWorkbench.getActiveWorkbenchWindow();
-        assertNotNull(win1);
-
-        // Test open window.
-        win1 = openTestWindow();
-        assertEquals(win1, fWorkbench.getActiveWorkbenchWindow());
-
-        // Test open second window.
-        win2 = openTestWindow();
-        assertEquals(win2, fWorkbench.getActiveWorkbenchWindow());
-
-        // Test set focus.
-        win1.getShell().forceFocus();
-        assertEquals(win1, fWorkbench.getActiveWorkbenchWindow());
-
-        // Test set focus.
-        win2.getShell().forceFocus();
-        assertEquals(win2, fWorkbench.getActiveWorkbenchWindow());
-
-        // Cleanup in tearDown.
-    }
-
-    public void testGetEditorRegistry() throws Throwable {
-        IEditorRegistry reg = fWorkbench.getEditorRegistry();
-        assertNotNull(reg);
-    }
-
-    public void testGetPerspectiveRegistry() throws Throwable {
-        IPerspectiveRegistry reg = fWorkbench.getPerspectiveRegistry();
-        assertNotNull(reg);
-    }
-
-    public void testGetPrefereneManager() throws Throwable {
-        PreferenceManager mgr = fWorkbench.getPreferenceManager();
-        assertNotNull(mgr);
-    }
-
-    public void testGetSharedImages() throws Throwable {
-        ISharedImages img = fWorkbench.getSharedImages();
-        assertNotNull(img);
-    }
-
-    public void testGetWorkingSetManager() throws Throwable {
-        IWorkingSetManager workingSetManager = fWorkbench
-                .getWorkingSetManager();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-        assertNotNull(workingSetManager);
-
-        IWorkingSet workingSet = workingSetManager.createWorkingSet("ws1",
-                new IAdaptable[] { workspace.getRoot() });
-        workingSetManager.addWorkingSet(workingSet);
-        workingSetManager = fWorkbench.getWorkingSetManager();
-        assertEquals(1, workingSetManager.getWorkingSets().length);
-        assertEquals(workingSet, workingSetManager.getWorkingSets()[0]);
-        
-        workingSetManager.removeWorkingSet(workingSet);
-    }
-
-    public void testGetWorkbenchWindows() throws Throwable {
-        IWorkbenchWindow[] wins = fWorkbench.getWorkbenchWindows();
-        assertEquals(ArrayUtil.checkNotNull(wins), true);
-        int oldTotal = wins.length;
-        int num = 3;
-
-        IWorkbenchWindow[] newWins = new IWorkbenchWindow[num];
-        for (int i = 0; i < num; i++)
-            newWins[i] = openTestWindow();
-
-        wins = fWorkbench.getWorkbenchWindows();
-        for (int i = 0; i < num; i++)
-            assertTrue(ArrayUtil.contains(wins, newWins[i]));
-
-        assertEquals(wins.length, oldTotal + num);
-
-        closeAllTestWindows();
-        wins = fWorkbench.getWorkbenchWindows();
-        assertEquals(wins.length, oldTotal);
-    }
-
-    /**
-     * openWorkbenchWindow(String, IAdaptable)
-     */
-    public void testOpenWorkbenchWindow() throws Throwable {
-        // open a window with valid perspective 
-        IWorkbenchWindow win = null;
-        try {
-            win = fWorkbench.openWorkbenchWindow(EmptyPerspective.PERSP_ID, getPageInput());
-            assertNotNull(win);
-            assertEquals(win, fWorkbench.getActiveWorkbenchWindow());
-            assertEquals(EmptyPerspective.PERSP_ID, win.getActivePage()
-                    .getPerspective().getId());
-        } finally {
-            if (win != null)
-                win.close();
-        }
-
-        // open a window with invalid perspective. WorkbenchException is expected.
-        boolean exceptionOccured = false;
-        try {
-            win = fWorkbench.openWorkbenchWindow("afdasfdasf", getPageInput());
-        } catch (WorkbenchException ex) {
-            exceptionOccured = true;
-        }
-
-        assertEquals(exceptionOccured, true);
-    }
-
-    /**
-     * openWorkbenchWindow(IAdaptable)
-     */
-    public void testOpenWorkbenchWindow2() throws Throwable {
-        // open a window with valid perspective 
-        IWorkbenchWindow win = null;
-
-        try {
-            win = fWorkbench
-                    .openWorkbenchWindow(getPageInput());
-            assertNotNull(win);
-			assertEquals(win, fWorkbench.getActiveWorkbenchWindow());
-            String defaultID = fWorkbench.getPerspectiveRegistry()
-                    .getDefaultPerspective();
-            assertEquals(win.getActivePage().getPerspective().getId(),
-                    defaultID);
-
-        } finally {
-            if (win != null)
-                win.close();
-        }
-    }
-
-    public void testOpenPage1() throws Throwable {
-        IWorkbenchWindow win = null;
-        //IWorkbenchPage page1, page2;
-        try {
-            /*
-             * Commented out until test case can be updated to match new
-             * implementation of single page per window
-             * 
-             // Open test window.
-             win = fWorkbench.openWorkbenchWindow(ResourcesPlugin.getWorkspace());
-             assertNotNull(win);
-
-             // Set platform pref for openPage.
-             IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore();
-             store.setValue(IPreferenceConstants.REUSE_PERSPECTIVES, 
-             true);
-             
-             // Call openPage twice with the same input.
-             // Verify that we get the same page back both times.
-             page1 = fWorkbench.openPage(ResourcesPlugin.getWorkspace());
-             assertNotNull(page1);
-             page2 = fWorkbench.openPage(ResourcesPlugin.getWorkspace());
-             assertNotNull(page2);
-             assertEquals("Pages should be equal", page1, page2);
-
-             // Reset platform pref for openPage.
-             store.setValue(IPreferenceConstants.REUSE_PERSPECTIVES, 
-             false);
-             */
-            // Call openPage twice with the same input.
-            // Verify that we get two different pages back.
-            /*
-             * Commented out until Nick has time to update this
-             * test case to match new implementation of openPage
-             * otherwise this test always fails.
-             *
-             page1 = fWorkbench.openPage(ResourcesPlugin.getWorkspace());
-             assertNotNull(page1);
-             page2 = fWorkbench.openPage(ResourcesPlugin.getWorkspace());
-             assertNotNull(page2);
-             assertTrue("Pages should be not equal", page1 != page2);
-             */
-        } finally {
-            // Close test window.
-            if (win != null)
-                win.close();
-        }
-    }
-
-    public void testOpenPage2() throws Throwable {
-        IWorkbenchWindow win = null;
-        //IWorkbenchPage page1, page2;
-        try {
-            /*
-             * Commented out until test case can be updated to match new
-             * implementation of single page per window
-             * 
-             // Open test window.
-             win = fWorkbench.openWorkbenchWindow(ResourcesPlugin.getWorkspace());
-             assertNotNull(win);
-
-             // Set platform pref for openPage.
-             IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore();
-             store.setValue(IPreferenceConstants.REUSE_PERSPECTIVES, 
-             true);
-             
-             // Call openPage twice with the same input.
-             // Verify that we get the same page back both times.
-             page1 = fWorkbench.openPage(EmptyPerspective.PERSP_ID,
-             ResourcesPlugin.getWorkspace(), 0);
-             assertNotNull(page1);
-             page2 = fWorkbench.openPage(IWorkbenchConstants.DEFAULT_LAYOUT_ID,
-             ResourcesPlugin.getWorkspace(), 0);
-             assertNotNull(page2);
-             assertEquals("Pages should be equal", page1, page2);
-
-             // Reset platform pref for openPage.
-             store.setValue(IPreferenceConstants.REUSE_PERSPECTIVES, 
-             false);
-             
-             // Call openPage twice with the same input.
-             // Verify that we get two different pages back.
-             page1 = fWorkbench.openPage(EmptyPerspective.PERSP_ID,
-             ResourcesPlugin.getWorkspace(), 0);
-             assertNotNull(page1);
-             page2 = fWorkbench.openPage(IWorkbenchConstants.DEFAULT_LAYOUT_ID,
-             ResourcesPlugin.getWorkspace(), 0);
-             assertTrue("Pages should be not equal", page1 != page2);
-             */
-        } finally {
-            // Close test window.
-            if (win != null)
-                win.close();
-        }
-    }
-
-    /**
-     * close() couldn't be tested because calling close() would lead to early termination 
-     * to entire test suites		
-     */
-    public void testClose() {
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTestSuite.java
deleted file mode 100644
index 4419380..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchTestSuite.java
+++ /dev/null
@@ -1,38 +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.ui.tests.api;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test the workbench. This suite was created as a 
- * workaround for problems running the suites from the
- * command line.
- */
-public class IWorkbenchTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new IWorkbenchTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public IWorkbenchTestSuite() {
-        addTest(new TestSuite(IWorkbenchTest.class));
-        addTest(new TestSuite(IWorkbenchWindowTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowActionDelegateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowActionDelegateTest.java
deleted file mode 100644
index e27ae28..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowActionDelegateTest.java
+++ /dev/null
@@ -1,112 +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.ui.tests.api;
-
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-
-/**
- * Tests the lifecycle for a window action delegate.
- */
-public class IWorkbenchWindowActionDelegateTest extends IActionDelegateTest {
-
-    /**
-     * Constructor for IWorkbenchWindowActionDelegateTest
-     */
-    public IWorkbenchWindowActionDelegateTest(String testName) {
-        super(testName);
-    }
-
-    public void testInit() throws Throwable {
-        // Run the action.
-        testRun();
-
-        // Verify lifecycle.
-        // The init, selectionChanged, and run methods should
-        // be called, in that order.
-        MockActionDelegate delegate = getDelegate();
-        assertNotNull(delegate);
-        assertTrue(delegate.callHistory.verifyOrder(new String[] { "init",
-                "selectionChanged", "run" }));
-    }
-
-    // Bug 48799.  Commented out testDispose to avoid a test failure.  This should be a temporary solution.
-    //	public void testDispose() throws Throwable {
-    //		// Run the action.
-    //		testRun();
-    //		
-    //		// Get the action.
-    //		MockActionDelegate delegate = getDelegate();
-    //		assertNotNull(delegate);
-    //		
-    //		// Dispose action.
-    //		// Verify that the dispose method is called.
-    //		delegate.callHistory.clear();
-    //		removeAction();
-    //		assertTrue(delegate.callHistory.contains("dispose"));
-    //	}
-
-    /**
-     * Regression test for bug 81422.  Tests to ensure that dispose() is only
-     * called once if the delegate implements both IWorkbenchWindowActionDelegate
-     * and IActionDelegate2.
-     */
-    public void testDisposeWorkbenchWindowActionDelegateBug81422() {
-        String id = MockWorkbenchWindowActionDelegate.SET_ID;
-        fPage.showActionSet(id);
-        MockWorkbenchWindowActionDelegate mockWWinActionDelegate = MockWorkbenchWindowActionDelegate.lastDelegate;
-        // hide (from the compiler) the fact that the interfaces are implemented
-        Object mockAsObject = mockWWinActionDelegate; 
-        // asserts that the mock object actually implements both interfaces mentioned in the PR
-        assertTrue(mockAsObject instanceof IActionDelegate2);
-        assertTrue(mockAsObject instanceof IWorkbenchWindowActionDelegate);
-        // we are only interested in the calls from now on
-        mockWWinActionDelegate.callHistory.clear();
-        // this causes the action set to be disposed
-        fPage.close();
-        // assert that dispose was called
-    	assertTrue(mockWWinActionDelegate.callHistory.contains("dispose"));
-    	// assert that dispose was not called twice
-    	assertFalse(mockWWinActionDelegate.callHistory.verifyOrder(new String[] {"dispose", "dispose"}));
-    }
-
-    /**
-     * @see IActionDelegateTest#createActionWidget()
-     */
-    protected Object createActionWidget() throws Throwable {
-        fPage.showActionSet("org.eclipse.ui.tests.api.MockActionSet");
-        return null;
-    }
-
-    /**
-     * @see IActionDelegateTest#runAction()
-     */
-    protected void runAction(Object widget) throws Throwable {
-        ActionUtil.runActionWithLabel(this, fWindow, "Mock Action");
-    }
-
-    /**
-     * @see IActionDelegateTest#fireSelection()
-     */
-    protected void fireSelection(Object widget) throws Throwable {
-        MockViewPart view = (MockViewPart) fPage.showView(MockViewPart.ID);
-        view.fireSelection();
-    }
-
-    /**
-     * Removes the action.
-     */
-    protected void removeAction() {
-        fPage.hideActionSet("org.eclipse.ui.tests.api.MockActionSet");
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowTest.java
deleted file mode 100644
index c87af12..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkbenchWindowTest.java
+++ /dev/null
@@ -1,175 +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.ui.tests.api;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class IWorkbenchWindowTest extends UITestCase {
-
-    private IWorkbenchWindow fWin;
-
-    public IWorkbenchWindowTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWin = openTestWindow();
-    }
-
-    public void testClose() throws Throwable {
-        assertEquals(fWin.close(), true);
-        assertEquals(
-                ArrayUtil.contains(fWorkbench.getWorkbenchWindows(), fWin),
-                false);
-    }
-
-    public void testGetActivePage() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         IWorkbenchPage page1, page2;
-         page1 = openTestPage(fWin);
-         assertEquals(fWin.getActivePage(), page1);
-
-         page2 = openTestPage(fWin);
-         assertEquals(fWin.getActivePage(), page2);
-
-         fWin.setActivePage(page1);
-         assertEquals(fWin.getActivePage(), page1);
-
-         fWin.setActivePage(page2);
-         assertEquals(fWin.getActivePage(), page2);
-
-         //no pages
-         closeAllPages(fWin);
-         assertNull(fWin.getActivePage());
-         */
-    }
-
-    public void testSetActivePage() throws Throwable {
-        openTestPage(fWin, 5);
-        IWorkbenchPage[] pages = fWin.getPages();
-
-        for (int i = 0; i < pages.length; i++) {
-            fWin.setActivePage(pages[i]);
-            assertEquals(pages[i], fWin.getActivePage());
-        }
-
-        fWin.setActivePage(null);
-        assertNull(fWin.getActivePage());
-    }
-
-    public void testGetPages() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         int totalBefore;
-         IWorkbenchPage[] pages, domainPages;
-
-         totalBefore = fWin.getPages().length;
-         int num = 5;
-         pages = openTestPage(fWin, num);
-         assertEquals(fWin.getPages().length, totalBefore + num);
-
-         domainPages = fWin.getPages();
-         for (int i = 0; i < pages.length; i++)
-         assertEquals(ArrayUtil.contains(domainPages, pages[i]), true);
-
-         closeAllPages(fWin);
-         assertEquals(fWin.getPages().length, 0);
-         */
-    }
-
-    public void testGetShell() {
-        Shell sh = fWin.getShell();
-        assertNotNull(sh);
-    }
-
-    public void testGetWorkbench() {
-        IWorkbenchWindow win = fWorkbench.getActiveWorkbenchWindow();
-        assertEquals(win.getWorkbench(), fWorkbench);
-    }
-
-    /**
-     * tests openPage(String)
-     */
-    public void testOpenPage() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         IWorkbenchPage page = null;
-         try {
-         page = fWin.openPage(ResourcesPlugin.getWorkspace());
-         assertNotNull(page);
-         assertEquals(fWin.getActivePage(), page);
-         } finally {
-         if (page != null)
-         page.close();
-         }
-         */
-    }
-
-    /**
-     * tests openPage(String, IAdaptable)
-     */
-    public void testOpenPage2() throws Throwable {
-        /*
-         * Commented out because until test case can be updated to work
-         * with new window/page/perspective implementation
-         * 
-         IWorkbenchPage page = null;
-         try {
-         page = fWin.openPage(EmptyPerspective.PERSP_ID, ResourcesPlugin.getWorkspace());
-         assertNotNull(page);
-         assertEquals(fWin.getActivePage(), page);
-         assertEquals(
-         fWin.getActivePage().getPerspective().getId(),
-         EmptyPerspective.PERSP_ID);
-         } finally {
-         if (page != null)
-         page.close();
-         }
-
-         //test openPage() fails
-         try {
-         page = fWin.openPage("*************", ResourcesPlugin.getWorkspace());
-         fail();
-         } catch (WorkbenchException ex) {
-         }
-
-         page.close();
-         */
-    }
-
-    public void testIsApplicationMenu() {
-        String[] ids = { IWorkbenchActionConstants.M_FILE,
-                IWorkbenchActionConstants.M_WINDOW, };
-
-        for (int i = 0; i < ids.length; i++)
-            assertEquals(fWin.isApplicationMenu(ids[i]), true);
-
-        ids = new String[] { IWorkbenchActionConstants.M_EDIT,
-                IWorkbenchActionConstants.M_HELP,
-                IWorkbenchActionConstants.M_LAUNCH };
-
-        for (int i = 0; i < ids.length; i++)
-            assertEquals(fWin.isApplicationMenu(ids[i]), false);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetElementAdapterTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetElementAdapterTests.java
deleted file mode 100644
index ef1328a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetElementAdapterTests.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.BasicWorkingSetElementAdapter;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses;
-
-/**
- * Tests BasicWorkingSetElementAdapter.
- * 
- * @since 3.5
- *
- */
-public class IWorkingSetElementAdapterTests extends TestCase {
-	
-	String data = "org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon;adapt=true,org.eclipse.ui.tests.menus.ObjectContributionClasses$IF;adapt=true";
-	BasicWorkingSetElementAdapter adapter;
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		adapter = new BasicWorkingSetElementAdapter();
-		adapter.setInitializationData(null, "class", data);
-	}
-	
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		adapter.dispose();
-	}
-	
-	public void testBasicWorkingSetElementAdapter_Direct() {
-		IAdaptable [] result = adapter.adaptElements(null, new IAdaptable[] {new ObjectContributionClasses.Common()});
-		assertEquals(1, result.length);
-		assertEquals(ObjectContributionClasses.Common.class, result[0].getClass());
-	}
-	
-	public void testBasicWorkingSetElementAdapter_Inheritance() {
-		IAdaptable [] result = adapter.adaptElements(null, new IAdaptable[] {new ObjectContributionClasses.D()});
-		assertEquals(1, result.length);
-		assertEquals(ObjectContributionClasses.D.class, result[0].getClass());
-	}
-	
-	public void testBasicWorkingSetElementAdapter_IAdaptable() {
-		IAdaptable[] result = adapter.adaptElements(null,
-				new IAdaptable[] { new ObjectContributionClasses.E()  });
-		assertEquals(1, result.length);
-		assertEquals(ObjectContributionClasses.F.class, result[0].getClass());
-	}
-	
-	public void testBasicWorkingSetElementAdapter_AdapterManager() {
-		IAdaptable[] result = adapter.adaptElements(null,
-				new IAdaptable[] { new ObjectContributionClasses.E1()  });
-		assertEquals(1, result.length);
-		assertEquals(ObjectContributionClasses.Common.class, result[0].getClass());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetManagerTest.java
deleted file mode 100644
index 1eec34c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetManagerTest.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-import org.eclipse.ui.dialogs.WorkingSetConfigurationBlock;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class IWorkingSetManagerTest extends UITestCase {
-    final static String WORKING_SET_NAME_1 = "ws1";
-
-    final static String WORKING_SET_NAME_2 = "ws2";
-    
-    final static String WORKING_SET_NAME_3 = "ws3";
-
-    IWorkingSetManager fWorkingSetManager;
-
-    IWorkspace fWorkspace;
-
-    IWorkingSet fWorkingSet;
-
-    String fChangeProperty;
-
-    Object fChangeNewValue;
-
-    Object fChangeOldValue;
-
-    class TestPropertyChangeListener implements IPropertyChangeListener {
-        public void propertyChange(PropertyChangeEvent event) {
-            fChangeProperty = event.getProperty();
-            fChangeNewValue = event.getNewValue();
-            fChangeOldValue = event.getOldValue();
-        }
-    }
-
-    public IWorkingSetManagerTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWorkingSetManager = fWorkbench.getWorkingSetManager();
-        fWorkspace = ResourcesPlugin.getWorkspace();
-        fWorkingSet = fWorkingSetManager.createWorkingSet(WORKING_SET_NAME_1,
-                new IAdaptable[] { fWorkspace.getRoot() });
-
-        IWorkingSet[] workingSets = fWorkingSetManager.getWorkingSets();
-        for (int i = 0; i < workingSets.length; i++) {
-            fWorkingSetManager.removeWorkingSet(workingSets[i]);
-        }
-    }
-
-    void resetChangeData() {
-        fChangeProperty = "";
-        fChangeNewValue = null;
-        fChangeOldValue = null;
-    }
-    
-    /**
-     * Tests the utility method found on the WorkingSetConfigurationBlock.
-     */
-    public void testConfigBlockFilter() {
-    	final String [] setIds = new String[] {"5", "2", "4", "1", "3" }; 
-    	
-    	IWorkingSet [] sets = new IWorkingSet[setIds.length * 3];
-    	for (int i = 0; i < setIds.length; i++) {
-			sets[i * 3] = createSet(setIds, i);
-			sets[i * 3 + 1] = createSet(setIds, i);
-			sets[i * 3 + 2] = createSet(setIds, i);
-		}
-    	IWorkingSet [] newSets = WorkingSetConfigurationBlock.filter(sets, setIds);
-    	assertEquals(sets.length, newSets.length);
-    	
-    	for (int j = 0; j < setIds.length; j++) {
-    		newSets = WorkingSetConfigurationBlock.filter(sets, new String [] {setIds[j]});	
-    		assertEquals(3, newSets.length);
-    		assertEquals(setIds[j], newSets[0].getId());
-    		assertEquals(setIds[j], newSets[1].getId());
-    		assertEquals(setIds[j], newSets[2].getId());
-		}
-    	
-    }
-
-    public void testAddPropertyChangeListener() throws Throwable {
-        IPropertyChangeListener listener = new TestPropertyChangeListener();
-        fWorkingSetManager.addPropertyChangeListener(listener);
-
-        resetChangeData();
-        fWorkingSetManager.removeWorkingSet(fWorkingSet);
-        assertEquals("", fChangeProperty);
-
-        resetChangeData();
-        fWorkingSetManager.addWorkingSet(fWorkingSet);
-        assertEquals(IWorkingSetManager.CHANGE_WORKING_SET_ADD, fChangeProperty);
-        assertEquals(null, fChangeOldValue);
-        assertEquals(fWorkingSet, fChangeNewValue);
-
-        resetChangeData();
-        fWorkingSetManager.removeWorkingSet(fWorkingSet);
-        assertEquals(IWorkingSetManager.CHANGE_WORKING_SET_REMOVE,
-                fChangeProperty);
-        assertEquals(fWorkingSet, fChangeOldValue);
-        assertEquals(null, fChangeNewValue);
-
-        resetChangeData();
-		fWorkingSet.setLabel(WORKING_SET_NAME_3); // set the label first to
-													// something other than the
-													// new name. This will allow
-													// us to test for the name
-													// property apart from the
-													// label property
-		assertEquals(IWorkingSetManager.CHANGE_WORKING_SET_LABEL_CHANGE,
-				fChangeProperty);
-		assertEquals(null, fChangeOldValue);
-		assertEquals(fWorkingSet, fChangeNewValue);
-		fWorkingSet.setName(WORKING_SET_NAME_2);
-		assertEquals(IWorkingSetManager.CHANGE_WORKING_SET_NAME_CHANGE,
-				fChangeProperty);
-		assertEquals(null, fChangeOldValue);
-		assertEquals(fWorkingSet, fChangeNewValue);
-
-        resetChangeData();
-        fWorkingSet.setElements(new IAdaptable[] {});
-        assertEquals(IWorkingSetManager.CHANGE_WORKING_SET_CONTENT_CHANGE,
-                fChangeProperty);
-        assertEquals(null, fChangeOldValue);
-        assertEquals(fWorkingSet, fChangeNewValue);
-    }
-
-    public void testAddRecentWorkingSet() throws Throwable {
-        fWorkingSetManager.addRecentWorkingSet(fWorkingSet);
-        fWorkingSetManager.addWorkingSet(fWorkingSet);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-                fWorkingSetManager.getRecentWorkingSets()));
-
-        IWorkingSet workingSet2 = fWorkingSetManager.createWorkingSet(
-                WORKING_SET_NAME_2, new IAdaptable[] { fWorkspace.getRoot() });
-        fWorkingSetManager.addRecentWorkingSet(workingSet2);
-        fWorkingSetManager.addWorkingSet(workingSet2);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { workingSet2,
-                fWorkingSet }, fWorkingSetManager.getRecentWorkingSets()));
-    }
-
-    public void testAddWorkingSet() throws Throwable {
-        fWorkingSetManager.addWorkingSet(fWorkingSet);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-                fWorkingSetManager.getWorkingSets()));
-
-        boolean exceptionThrown = false;
-        try {
-            fWorkingSetManager.addWorkingSet(fWorkingSet);
-        } catch (RuntimeException exception) {
-            exceptionThrown = true;
-        }
-        assertTrue(exceptionThrown);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-                fWorkingSetManager.getWorkingSets()));
-    }
-
-    public void testCreateWorkingSet() throws Throwable {
-        IWorkingSet workingSet2 = fWorkingSetManager.createWorkingSet(
-                WORKING_SET_NAME_2, new IAdaptable[] { fWorkspace.getRoot() });
-        assertEquals(WORKING_SET_NAME_2, workingSet2.getName());
-        assertTrue(ArrayUtil.equals(new IAdaptable[] { fWorkspace.getRoot() },
-                workingSet2.getElements()));
-
-        workingSet2 = fWorkingSetManager.createWorkingSet("",
-                new IAdaptable[] {});
-        assertEquals("", workingSet2.getName());
-        assertTrue(ArrayUtil.equals(new IAdaptable[] {}, workingSet2
-                .getElements()));
-    }
-
-    public void testCreateWorkingSetFromMemento() throws Throwable {
-        IWorkingSet workingSet2 = fWorkingSetManager.createWorkingSet(
-                WORKING_SET_NAME_2, new IAdaptable[] { fWorkspace.getRoot() });
-        IMemento memento = XMLMemento.createWriteRoot("savedState"); //$NON-NLS-1$
-        workingSet2.saveState(memento);
-        IWorkingSet restoredWorkingSet2 = fWorkingSetManager
-                .createWorkingSet(memento);
-        assertEquals(WORKING_SET_NAME_2, restoredWorkingSet2.getName());
-        assertTrue(ArrayUtil.equals(new IAdaptable[] { fWorkspace.getRoot() },
-                restoredWorkingSet2.getElements()));
-    }
-
-    public void testCreateWorkingSetSelectionDialog() throws Throwable {
-        IWorkbenchWindow window = openTestWindow();
-        IWorkingSetSelectionDialog dialog = fWorkingSetManager
-                .createWorkingSetSelectionDialog(window.getShell(), true);
-
-        assertNotNull(dialog);
-    }
-
-    public void testGetRecentWorkingSets() throws Throwable {
-        assertEquals(0, fWorkingSetManager.getRecentWorkingSets().length);
-
-        fWorkingSetManager.addRecentWorkingSet(fWorkingSet);
-        fWorkingSetManager.addWorkingSet(fWorkingSet);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-                fWorkingSetManager.getRecentWorkingSets()));
-
-        IWorkingSet workingSet2 = fWorkingSetManager.createWorkingSet(
-                WORKING_SET_NAME_2, new IAdaptable[] { fWorkspace.getRoot() });
-        fWorkingSetManager.addRecentWorkingSet(workingSet2);
-        fWorkingSetManager.addWorkingSet(workingSet2);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { workingSet2,
-                fWorkingSet }, fWorkingSetManager.getRecentWorkingSets()));
-
-        fWorkingSetManager.removeWorkingSet(workingSet2);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-                fWorkingSetManager.getRecentWorkingSets()));
-    }
-
-    public void testGetWorkingSet() throws Throwable {
-        assertNull(fWorkingSetManager.getWorkingSet(WORKING_SET_NAME_1));
-
-        fWorkingSetManager.addWorkingSet(fWorkingSet);
-        assertNotNull(fWorkingSetManager.getWorkingSet(fWorkingSet.getName()));
-
-        assertNull(fWorkingSetManager.getWorkingSet(""));
-
-        assertNull(fWorkingSetManager.getWorkingSet(null));
-    }
-
-    public void testGetWorkingSets() throws Throwable {
-		assertTrue(ArrayUtil.equals(new IWorkingSet[] {}, fWorkingSetManager
-				.getWorkingSets()));
-
-		fWorkingSetManager.addWorkingSet(fWorkingSet);
-		assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-				fWorkingSetManager.getWorkingSets()));
-
-		try {
-			fWorkingSetManager.addWorkingSet(fWorkingSet);
-			fail("Added the same set twice");
-		} catch (RuntimeException exception) {
-		}
-		assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-				fWorkingSetManager.getWorkingSets()));
-
-		IWorkingSet workingSet2 = fWorkingSetManager.createWorkingSet(
-				WORKING_SET_NAME_2, new IAdaptable[] { fWorkspace.getRoot() });
-		fWorkingSetManager.addWorkingSet(workingSet2);
-		assertTrue(ArrayUtil.contains(fWorkingSetManager.getWorkingSets(),
-				workingSet2));
-		assertTrue(ArrayUtil.contains(fWorkingSetManager.getWorkingSets(),
-				fWorkingSet));
-
-		IWorkingSet workingSet3 = fWorkingSetManager.createWorkingSet(
-				WORKING_SET_NAME_2, new IAdaptable[] { fWorkspace.getRoot() });
-		workingSet3.setName("ws0");
-		workingSet3.setLabel(WORKING_SET_NAME_2); // reset the label - it
-													// would be set to ws0 by
-													// the above call.
-		fWorkingSetManager.addWorkingSet(workingSet3);
-
-		// asserts the order is correct - the name of set three should push it
-		// above set two even though their labels are the same
-		IWorkingSet[] sets = fWorkingSetManager.getWorkingSets();
-		assertEquals(fWorkingSet, sets[0]);
-		assertEquals(workingSet2, sets[2]);
-		assertEquals(workingSet3, sets[1]);
-		
-		IWorkingSet workingSet3a = fWorkingSetManager.createWorkingSet(
-				WORKING_SET_NAME_2 + "\u200b", new IAdaptable[] { fWorkspace.getRoot() });
-		workingSet3.setLabel(WORKING_SET_NAME_2); // reset the label - it
-
-		fWorkingSetManager.addWorkingSet(workingSet3a);
-		assertFalse(workingSet3a.equals(workingSet3));
-		
-		sets = fWorkingSetManager.getWorkingSets();
-		assertEquals(4, sets.length);
-		
-    }
-
-    public void testRemovePropertyChangeListener() throws Throwable {
-        IPropertyChangeListener listener = new TestPropertyChangeListener();
-
-        fWorkingSetManager.removePropertyChangeListener(listener);
-
-        fWorkingSetManager.addPropertyChangeListener(listener);
-        fWorkingSetManager.removePropertyChangeListener(listener);
-
-        resetChangeData();
-        fWorkingSet.setName(WORKING_SET_NAME_1);
-        assertEquals("", fChangeProperty);
-    }
-
-    public void testRemoveWorkingSet() throws Throwable {
-        fWorkingSetManager.removeWorkingSet(fWorkingSet);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] {}, fWorkingSetManager
-                .getWorkingSets()));
-
-        fWorkingSetManager.addWorkingSet(fWorkingSet);
-        IWorkingSet workingSet2 = fWorkingSetManager.createWorkingSet(
-                WORKING_SET_NAME_2, new IAdaptable[] { fWorkspace.getRoot() });
-        fWorkingSetManager.addWorkingSet(workingSet2);
-        fWorkingSetManager.removeWorkingSet(fWorkingSet);
-        assertTrue(ArrayUtil.equals(new IWorkingSet[] { workingSet2 },
-                fWorkingSetManager.getWorkingSets()));
-    }
-    
-    public void testRemoveWorkingSetAfterRename() throws Throwable {
-    	/* get workingSetManager */
-    	IWorkingSetManager workingSetManager = 
-    		fWorkbench.getWorkingSetManager();
-
-    	workingSetManager.addWorkingSet(fWorkingSet);
-    	String origName=fWorkingSet.getName();
-
-    	/* check that workingSetManager contains "fWorkingSet"*/
-    	assertTrue(ArrayUtil.equals(
-    			new IWorkingSet[] {  fWorkingSet },
-    			workingSetManager.getWorkingSets()));
-
-    	fWorkingSet.setName(" ");
-    	assertEquals(" ", fWorkingSet.getName());
-
-    	/* remove "fWorkingSet" from working set manager */
-    	workingSetManager.removeWorkingSet(fWorkingSet);
-
-    	/* check that "fWorkingSet" was removed  after rename*/
-    	if(!ArrayUtil.equals(new IWorkingSet[] {},
-    			workingSetManager.getWorkingSets())){
-    		/*Test Failure, report after restoring state*/
-    		fWorkingSet.setName(origName);
-    		workingSetManager.removeWorkingSet(fWorkingSet);
-    		fail("expected that fWorkingSet has been removed");
-    	}
-
-    }
-    /**
-     * Tests to ensure that a misbehaving listener does not bring down the manager.
-     * 
-     * @throws Throwable
-     */
-    public void testListenerSafety() throws Throwable {
-		final boolean[] result = new boolean[1];
-		// add a bogus listener that dies unexpectedly
-		IPropertyChangeListener badListener = new IPropertyChangeListener() {
-
-			public void propertyChange(PropertyChangeEvent event) {
-				throw new RuntimeException();
-
-			}
-		};
-		IPropertyChangeListener goodListener = new IPropertyChangeListener() {
-
-			public void propertyChange(PropertyChangeEvent event) {
-				result[0] = true;
-
-			}
-		};
-		fWorkingSetManager.addPropertyChangeListener(badListener);
-		fWorkingSetManager.addPropertyChangeListener(goodListener);
-		try {
-			IWorkingSet set = fWorkingSetManager.createWorkingSet("foo",
-					new IAdaptable[0]);
-			fWorkingSetManager.addWorkingSet(set);
-
-			assertTrue("Good listener wasn't invoked", result[0]);
-		} finally {
-			fWorkingSetManager.removePropertyChangeListener(badListener);
-			fWorkingSetManager.removePropertyChangeListener(goodListener);
-		}
-	}
-
-	/**
-	 * @param setIds
-	 * @param i
-	 * @return
-	 */
-	private IWorkingSet createSet(final String[] setIds, final int i) {
-		return new IWorkingSet() {
-
-			public IAdaptable[] adaptElements(IAdaptable[] objects) {
-				return null;
-			}
-
-			public IAdaptable[] getElements() {
-				return null;
-			}
-
-			public String getId() {
-				return setIds[i] + "";
-			}
-
-			public ImageDescriptor getImage() {
-				return null;
-			}
-
-			public ImageDescriptor getImageDescriptor() {
-				return null;
-			}
-
-			public String getLabel() {
-				return null;
-			}
-
-			public String getName() {
-				return null;
-			}
-
-			public boolean isAggregateWorkingSet() {
-				return false;
-			}
-
-			public boolean isEditable() {
-				return true;
-			}
-
-			public boolean isEmpty() {
-				return false;
-			}
-
-			public boolean isSelfUpdating() {
-				return false;
-			}
-
-			public boolean isVisible() {
-				return true;
-			}
-
-			public void setElements(IAdaptable[] elements) {
-			}
-
-			public void setId(String id) {
-			}
-
-			public void setLabel(String label) {
-			}
-
-			public void setName(String name) {
-			}
-
-			public String getFactoryId() {
-				return null;
-			}
-
-			public void saveState(IMemento memento) {
-			}
-
-			public Object getAdapter(Class adapter) {
-				return null;
-			}
-			
-			public String toString() {
-				return getId();
-			}
-		};
-			
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetTest.java
deleted file mode 100644
index 8f09789..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/IWorkingSetTest.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.WorkingSet;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses.IA;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses.ICommon;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses.IModelElement;
-
-public class IWorkingSetTest extends UITestCase {
-    final static String WORKING_SET_NAME_1 = "ws1";
-
-    final static String WORKING_SET_NAME_2 = "ws2";
-
-    IWorkspace fWorkspace;
-
-    IWorkingSet fWorkingSet;
-
-    public IWorkingSetTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        IWorkingSetManager workingSetManager = fWorkbench
-                .getWorkingSetManager();
-
-        fWorkspace = ResourcesPlugin.getWorkspace();
-        fWorkingSet = workingSetManager.createWorkingSet(WORKING_SET_NAME_1,
-                new IAdaptable[] { fWorkspace.getRoot() });
-        
-        workingSetManager.addWorkingSet(fWorkingSet);
-    }
-	protected void doTearDown() throws Exception {
-		IWorkingSetManager workingSetManager = fWorkbench
-        .getWorkingSetManager();
-		 workingSetManager.removeWorkingSet(fWorkingSet);
-		super.doTearDown();
-	}
-    public void testGetElements() throws Throwable {
-        assertEquals(fWorkspace.getRoot(), fWorkingSet.getElements()[0]);
-    }
-
-    public void testGetId() throws Throwable {
-        assertEquals(null, fWorkingSet.getId());
-        fWorkingSet.setId("bogusId");
-        assertEquals("bogusId", fWorkingSet.getId());
-        fWorkingSet.setId(null);
-        assertEquals(null, fWorkingSet.getId());
-    }
-
-    public void testGetName() throws Throwable {
-        assertEquals(WORKING_SET_NAME_1, fWorkingSet.getName());
-    }
-
-    public void testSetElements() throws Throwable {
-        boolean exceptionThrown = false;
-
-        try {
-            fWorkingSet.setElements(null);
-        } catch (RuntimeException exception) {
-            exceptionThrown = true;
-        }
-        assertTrue(exceptionThrown);
-
-        IProject p1 = FileUtil.createProject("TP1");
-        IFile f1 = FileUtil.createFile("f1.txt", p1);
-        IAdaptable[] elements = new IAdaptable[] { f1, p1 };
-        fWorkingSet.setElements(elements);
-        assertTrue(ArrayUtil.equals(elements, fWorkingSet.getElements()));
-
-        fWorkingSet.setElements(new IAdaptable[] { f1 });
-        assertEquals(f1, fWorkingSet.getElements()[0]);
-
-        fWorkingSet.setElements(new IAdaptable[] {});
-        assertEquals(0, fWorkingSet.getElements().length);
-    }
-
-    public void testSetId() throws Throwable {
-        assertEquals(null, fWorkingSet.getId());
-        fWorkingSet.setId("bogusId");
-        assertEquals("bogusId", fWorkingSet.getId());
-        fWorkingSet.setId(null);
-        assertEquals(null, fWorkingSet.getId());
-    }
-
-    public void testSetName() throws Throwable {
-        boolean exceptionThrown = false;
-
-        try {
-            fWorkingSet.setName(null);
-        } catch (RuntimeException exception) {
-            exceptionThrown = true;
-        }
-        assertTrue(exceptionThrown);
-
-        fWorkingSet.setName(WORKING_SET_NAME_2);
-        assertEquals(WORKING_SET_NAME_2, fWorkingSet.getName());
-
-        exceptionThrown = false;
-		try {
-			String name = fWorkingSet.getName();
-			// set same name
-			fWorkingSet.setName(name);
-		} catch (RuntimeException exception) {
-			exceptionThrown = true;
-		}
-		assertFalse("Failed to setName when new name is same as old name",
-				exceptionThrown);
-		
-        fWorkingSet.setName("");
-        assertEquals("", fWorkingSet.getName());
-
-        fWorkingSet.setName(" ");
-        assertEquals(" ", fWorkingSet.getName());
-    }
-   
-	public void testNoDuplicateWorkingSetName() throws Throwable {
-		/* get workingSetManager */
-		IWorkingSetManager workingSetManager = fWorkbench
-				.getWorkingSetManager();
-
-		/*
-		 * check that initially workingSetManager contains "fWorkingSet"
-		 */
-		assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-				workingSetManager.getWorkingSets()));
-
-		IWorkingSet wSet = workingSetManager.createWorkingSet(
-				WORKING_SET_NAME_2, new IAdaptable[] {});
-		workingSetManager.addWorkingSet(wSet);
-
-		/* check that workingSetManager contains "fWorkingSet" and wSet */
-		assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet, wSet },
-				workingSetManager.getWorkingSets())
-				|| ArrayUtil.equals(new IWorkingSet[] { wSet, fWorkingSet },
-						workingSetManager.getWorkingSets()));
-
-		String sameName = fWorkingSet.getName();
-		boolean exceptionThrown = false;
-
-		try {
-			wSet.setName(sameName);
-			/* Test failed,set original name for restoring state */
-			wSet.setName(WORKING_SET_NAME_2);
-		} catch (RuntimeException exception) {
-			exceptionThrown = true;
-		}
-		assertTrue(exceptionThrown);
-
-		/* restore state */
-		workingSetManager.removeWorkingSet(wSet);
-	}
-
-	public void testNoDuplicateWorkingSetNamesDifferentLabels()
-			throws Throwable {
-		/* get workingSetManager */
-		IWorkingSetManager workingSetManager = fWorkbench
-				.getWorkingSetManager();
-		/*
-		 * check that initially workingSetManager contains "fWorkingSet"
-		 */
-		assertTrue(ArrayUtil.equals(new IWorkingSet[] { fWorkingSet },
-				workingSetManager.getWorkingSets()));
-
-		String sameName = fWorkingSet.getName();
-		IWorkingSet wSet = workingSetManager.createWorkingSet(sameName,
-				new IAdaptable[] {});
-		wSet.setLabel(WORKING_SET_NAME_2);
-
-		/*
-		 * Expected to throw an error as the wSet has the same name as
-		 * fWorkingSet
-		 */
-		boolean exceptionThrown = false;
-		try {
-			workingSetManager.addWorkingSet(wSet);
-			/* Test failed, restore state */
-			workingSetManager.removeWorkingSet(wSet);
-		} catch (RuntimeException exception) {
-			exceptionThrown = true;
-		}
-		assertTrue(exceptionThrown);
-	}
-    
-    public void testIsEmpty() {
-		fWorkingSet.setElements(new IAdaptable[] {});
-		assertTrue(fWorkingSet.isEmpty());
-		fWorkingSet.setElements(new IAdaptable[] { new IAdaptable() {
-			public Object getAdapter(Class adapter) {
-				return null;
-			}
-		} });
-		assertFalse(fWorkingSet.isEmpty());
-	}
-    
-    
-    public void testApplicableTo_ResourceWorkingSet() {
-		fWorkingSet.setId("org.eclipse.ui.resourceWorkingSetPage");
-		assertEquals("org.eclipse.ui.resourceWorkingSetPage", fWorkingSet
-				.getId());
-		IAdaptable[] adapted = fWorkingSet.adaptElements(new IAdaptable[] {ResourcesPlugin.getWorkspace()
-				.getRoot()});
-		assertEquals(1, adapted.length);
-		assertTrue(adapted[0] instanceof IWorkspaceRoot);
-    }
-    
-    public void testApplicableTo_DirectComparison() {
-
-		fWorkingSet.setId("org.eclipse.ui.tests.api.MockWorkingSet");
-		Foo myFoo = new Foo();
-		IAdaptable[] adapted = fWorkingSet.adaptElements(new IAdaptable[] {myFoo});
-		assertEquals(1, adapted.length);
-		assertTrue(adapted[0] instanceof Foo);
-    }
-    
-    public void testApplicableTo_Inheritance() {
-    	fWorkingSet.setId("org.eclipse.ui.tests.api.MockWorkingSet");
-		Bar myBar = new Bar();
-		IAdaptable[] adapted = fWorkingSet.adaptElements(new IAdaptable[] {myBar});
-		assertEquals(1, adapted.length);
-		assertTrue(adapted[0] instanceof Bar);
-	}
-    
-    public void testApplicableTo_Adapter1() {
-    	fWorkingSet.setId("org.eclipse.ui.tests.api.MockWorkingSet");
-    	ToFoo tc = new ToFoo();
-    	IAdaptable[] adapted = fWorkingSet.adaptElements(new IAdaptable[] {tc});
-		assertEquals(1, adapted.length);
-		assertTrue(adapted[0] instanceof Foo);
-    }
-    
-    public void testApplicableTo_AdapterManager1() {
-    	fWorkingSet.setId("org.eclipse.ui.tests.api.MockWorkingSet");
-    	IAImpl ia = new IAImpl();
-    	IAdaptable[] adapted = fWorkingSet.adaptElements(new IAdaptable[] {ia});
-		assertEquals(1, adapted.length);
-		assertTrue(adapted[0] instanceof ICommon);
-    }
-    
-    /**
-     * Tests that adaptable=false is working.  ModelElement has a registered adapter to IResource that should not be used.
-     */
-    public void testApplicableTo_AdapterManager2() {
-    	fWorkingSet.setId("org.eclipse.ui.tests.api.MockWorkingSet");
-    	ModelElement element = new ModelElement();
-    	assertTrue(fWorkingSet.adaptElements(new IAdaptable[] {element}).length == 0);
-    }
-    
-    /**
-	 * Tests to verify that we don't fall down in the event that the factory
-	 * throws an exception while restoring a working set.
-	 */
-	public void testBadFactory_Restore() {
-		fWorkingSet
-				.setElements(new IAdaptable[] { new BadElementFactory.BadElementInstance() });
-		IMemento m = XMLMemento.createWriteRoot("ws");
-		fWorkingSet.saveState(m);
-		BadElementFactory.fail = true;
-		IWorkingSet copy = new WorkingSet(fWorkingSet.getName(), fWorkingSet.getId(), m) {};
-		try {
-			assertFalse(BadElementFactory.failAttempted);
-			IAdaptable [] elements = copy.getElements();
-			assertTrue(BadElementFactory.failAttempted);
-			assertEquals("Element array should be empty", 0, elements.length);
-		}
-		catch (RuntimeException e) {
-			fail("Error getting elements for broken factory", e);
-		}
-	}
-	
-	/**
-	 * Tests to verify that we don't fall down in the event that the persistable
-	 * throws an exception while saving a working set.
-	 */
-	public void testBadFactory_Save() {
-		fWorkingSet
-				.setElements(new IAdaptable[] { new BadElementFactory.BadElementInstance() });
-		IMemento m = XMLMemento.createWriteRoot("ws");
-		BadElementFactory.BadElementInstance.fail = true;
-		assertFalse(BadElementFactory.BadElementInstance.failAttempted);
-		try {
-			fWorkingSet.saveState(m);
-			assertTrue(BadElementFactory.BadElementInstance.failAttempted);
-		} catch (RuntimeException e) {
-			fail("Error saving elements for broken persistable", e);
-		}
-	}
-    
-    public static class Foo implements IAdaptable {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			// TODO Auto-generated method stub
-			return null;
-		}	
-    }
-    
-    public static class Bar extends Foo {
-    	
-    }
-    
-    public class ToFoo implements IAdaptable {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			if (adapter == Foo.class) {
-				return new Foo() {};
-			}
-			return null;
-		}
-    	
-    }
-    
-    public static class IAImpl implements IA, IAdaptable {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			// TODO Auto-generated method stub
-			return null;
-		}	
-    }
-    
-    public static class ModelElement implements IModelElement, IAdaptable {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			return null;
-		}
-    	
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListContentProvider.java
deleted file mode 100644
index 896707e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListContentProvider.java
+++ /dev/null
@@ -1,43 +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.ui.tests.api;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-public class ListContentProvider implements IStructuredContentProvider {
-
-    /**
-     * @see IStructuredContentProvider#getElements(Object)
-     */
-    public Object[] getElements(Object inputElement) {
-        if (inputElement instanceof List) {
-            return ((List) inputElement).toArray();
-        }
-        return new Object[0];
-    }
-
-    /**
-     * @see IContentProvider#dispose()
-     */
-    public void dispose() {
-    }
-
-    /**
-     * @see IContentProvider#inputChanged(Viewer, Object, Object)
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElement.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElement.java
deleted file mode 100644
index 6a88e28..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElement.java
+++ /dev/null
@@ -1,51 +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.ui.tests.api;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.ui.IActionFilter;
-
-public class ListElement implements IAdaptable {
-
-    private String name;
-
-    private boolean flag;
-
-    public ListElement(String name) {
-        this(name, false);
-    }
-
-    public ListElement(String name, boolean flag) {
-        this.name = name;
-        this.flag = flag;
-    }
-
-    public String toString() {
-        return name + ':' + flag;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public boolean getFlag() {
-        return flag;
-    }
-
-    public Object getAdapter(Class adapter) {
-        if (adapter == IActionFilter.class) {
-            return ListElementActionFilter.getSingleton();
-        }
-        return null;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementActionFilter.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementActionFilter.java
deleted file mode 100644
index 6f6f7de..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementActionFilter.java
+++ /dev/null
@@ -1,66 +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.ui.tests.api;
-
-import org.eclipse.ui.IActionFilter;
-
-public class ListElementActionFilter implements IActionFilter {
-
-    private boolean called = false;
-
-    public static final String ATTR_NAME = "name";
-
-    public static final String ATTR_FLAG = "flag";
-
-    public static final String VAL_TRUE = "true";
-
-    public static final String VAL_FALSE = "false";
-
-    private static ListElementActionFilter singleton;
-
-    public static ListElementActionFilter getSingleton() {
-        if (singleton == null)
-            singleton = new ListElementActionFilter();
-        return singleton;
-    }
-
-    private ListElementActionFilter() {
-        super();
-    }
-
-    /**
-     * @see IActionFilter#testAttribute(Object, String, String)
-     */
-    public boolean testAttribute(Object target, String name, String value) {
-        called = true;
-        ListElement le = (ListElement) target;
-        if (name.equals(ATTR_NAME)) {
-            return value.equals(le.getName());
-        } else if (name.equals(ATTR_FLAG)) {
-            boolean flag = le.getFlag();
-            if (flag)
-                return value.equals(VAL_TRUE);
-            else
-                return value.equals(VAL_FALSE);
-        }
-        return false;
-    }
-
-    public void clearCalled() {
-        called = false;
-    }
-
-    public boolean getCalled() {
-        return called;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementPropertyTester.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementPropertyTester.java
deleted file mode 100644
index 7870448..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListElementPropertyTester.java
+++ /dev/null
@@ -1,28 +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.tests.api;
-
-import org.eclipse.core.expressions.PropertyTester;
-
-public class ListElementPropertyTester extends PropertyTester {
-
-    public static final String ATTR_NAME = "name";
-
-    public boolean test(Object receiver, String property, Object[] args,
-            Object expectedValue) {
-        ListElement le = (ListElement) receiver;
-        if (property.equals(ATTR_NAME)) {
-            return expectedValue.equals(le.getName());
-        }
-        return false;
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListView.java
deleted file mode 100644
index f4d6505..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ListView.java
+++ /dev/null
@@ -1,169 +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.ui.tests.api;
-
-import java.util.ArrayList;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-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.viewers.LabelProvider;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchActionConstants;
-
-/**
- * An ElementViewPart shows a bunch of elements in a list
- * viewer.
- */
-public class ListView extends MockViewPart implements IMenuListener {
-
-    ListViewer viewer;
-
-    ArrayList input;
-
-    MenuManager menuMgr;
-
-    Menu menu;
-
-    Action addAction;
-
-    String ADD_ACTION_ID = "addAction";
-
-    /**
-     * Constructor for ElementViewPart
-     */
-    public ListView() {
-        super();
-        input = new ArrayList();
-    }
-
-    /**
-     * @see IWorkbenchPart#createPartControl(Composite)
-     */
-    public void createPartControl(Composite parent) {
-        callTrace.add("createPartControl");
-
-        // Create viewer.
-        viewer = new ListViewer(parent);
-        viewer.setLabelProvider(new LabelProvider());
-        viewer.setContentProvider(new ListContentProvider());
-        viewer.setInput(input);
-
-        // Create popup menu.
-        createPopupMenu();
-
-        // Register stuff.
-        getSite().setSelectionProvider(viewer);
-    }
-
-    /**
-     * Creates a popup menu.
-     */
-    public void createPopupMenu() {
-        // Create actions.
-        addAction = new Action("Add Standard Items") {
-            public void run() {
-                addStandardItems();
-            }
-        };
-        addAction.setId(ADD_ACTION_ID);
-
-        // Create popup menu.
-        if (useStaticMenu())
-            createStaticPopupMenu();
-        else
-            createDynamicPopupMenu();
-    }
-
-    /**
-     * Creates a dynamic popup menu.
-     */
-    public void createDynamicPopupMenu() {
-        menuMgr = new MenuManager();
-        menuMgr.setRemoveAllWhenShown(true);
-        menuMgr.addMenuListener(this);
-        menu = menuMgr.createContextMenu(viewer.getControl());
-        viewer.getControl().setMenu(menu);
-        getSite().registerContextMenu(menuMgr, viewer);
-    }
-
-    /**
-     * Creates a static popup menu.
-     */
-    public void createStaticPopupMenu() {
-        menuMgr = new MenuManager();
-        menu = menuMgr.createContextMenu(viewer.getControl());
-        viewer.getControl().setMenu(menu);
-        getSite().registerContextMenu(menuMgr, viewer);
-        menuAboutToShow(menuMgr);
-    }
-
-    public void addElement(ListElement el) {
-        input.add(el);
-        viewer.refresh();
-        viewer.getControl().update();
-    }
-
-    public void selectElement(ListElement el) {
-        if (el == null)
-            viewer.setSelection(new StructuredSelection());
-        else
-            viewer.setSelection(new StructuredSelection(el));
-    }
-
-    public MenuManager getMenuManager() {
-        return menuMgr;
-    }
-
-    /**
-     * @see IMenuListener#menuAboutToShow(IMenuManager)
-     */
-    public void menuAboutToShow(IMenuManager menuMgr) {
-        menuMgr.add(addAction);
-        menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-    }
-
-    /**
-     * Tests that the menu mgr contains the expected actions.
-     */
-    public void verifyActions(TestCase test, IMenuManager menuMgr) {
-        Assert.assertNotNull(menuMgr.find(ADD_ACTION_ID));
-    }
-
-    public void addStandardItems() {
-        addElement(new ListElement("red"));
-        addElement(new ListElement("blue"));
-        addElement(new ListElement("green"));
-        addElement(new ListElement("red", true));
-    }
-
-    /**
-     * Returns <code>true</code> to indicate that a static menu should be used,
-     * <code>false</code> to indicate a dynamic menu.
-     */
-    private boolean useStaticMenu() {
-        Object data = getData();
-        if (data instanceof String) {
-            String arg = (String) data;
-            return arg.indexOf("-staticMenu") >= 0; //$NON-NLS-1$
-        }
-        return false;
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockAction.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockAction.java
deleted file mode 100644
index 814231c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockAction.java
+++ /dev/null
@@ -1,52 +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.ui.tests.api;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.tests.TestPlugin;
-
-public class MockAction extends Action {
-
-    private boolean hasRun = false;
-
-    /**
-     * Constructor for MockAction
-     */
-    protected MockAction(String text) {
-        super(text);
-        TestPlugin plugin = TestPlugin.getDefault();
-        setImageDescriptor(plugin.getImageDescriptor("anything.gif"));
-        setToolTipText(text);
-    }
-
-    /**
-     * Constructor for MockAction
-     */
-    protected MockAction(String text, ImageDescriptor image) {
-        super(text, image);
-        setToolTipText(text);
-    }
-
-    public void run() {
-        hasRun = true;
-    }
-
-    public void clearRun() {
-        hasRun = false;
-    }
-
-    public boolean getRun() {
-        return hasRun;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockActionDelegate.java
deleted file mode 100644
index d94def4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockActionDelegate.java
+++ /dev/null
@@ -1,59 +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.ui.tests.api;
-
-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.tests.harness.util.CallHistory;
-
-public class MockActionDelegate implements IWorkbenchWindowActionDelegate {
-
-    public CallHistory callHistory;
-
-    public static final String ACTION_SET_ID = "org.eclipse.ui.tests.api.MockActionSet";
-
-    public static MockActionDelegate lastDelegate;
-
-    public MockActionDelegate() {
-        callHistory = new CallHistory(this);
-        lastDelegate = this;
-    }
-
-    /*
-     * @see IWorkbenchWindowActionDelegate#init(IWorkbenchWindow)
-     */
-    public void init(IWorkbenchWindow window) {
-    }
-
-    /**
-     * @see IActionDelegate#run(IAction)
-     */
-    public void run(IAction action) {
-        callHistory.add("run");
-    }
-
-    /**
-     * @see IActionDelegate#selectionChanged(IAction, ISelection)
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        callHistory.add("selectionChanged");
-    }
-
-    /*
-     * @see IWorkbenchWindowActionDelegate#dispose()
-     */
-    public void dispose() {
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionBarContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionBarContributor.java
deleted file mode 100644
index f26d1c8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionBarContributor.java
+++ /dev/null
@@ -1,95 +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.ui.tests.api;
-
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.part.EditorActionBarContributor;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-
-public class MockEditorActionBarContributor extends EditorActionBarContributor {
-    protected CallHistory callHistory;
-
-    protected IEditorPart target;
-
-    protected int ACTION_COUNT = 5;
-
-    protected MockAction[] actions;
-
-    /**
-     * Constructor for MockEditorActionBarContributor
-     */
-    public MockEditorActionBarContributor() {
-        super();
-        callHistory = new CallHistory(this);
-    }
-
-    public CallHistory getCallHistory() {
-        return callHistory;
-    }
-
-    /**
-     * @see IEditorActionBarContributor#init(IActionBars)
-     */
-    public void init(IActionBars bars) {
-        callHistory.add("init");
-        actions = new MockAction[ACTION_COUNT];
-        for (int nX = 0; nX < ACTION_COUNT; nX++) {
-            actions[nX] = new MockAction(Integer.toString(nX));
-            if (nX % 2 > 0)
-                actions[nX].setEnabled(false);
-        }
-        super.init(bars);
-    }
-
-    /**
-     * @see EditorActionBarContributor#contributeToToolBar(IToolBarManager)
-     */
-    public void contributeToToolBar(IToolBarManager toolBarManager) {
-        for (int i = 0; i < actions.length; ++i) {
-            toolBarManager.add(actions[i]);
-        }
-    }
-
-    /**
-     * @see IEditorActionBarContributor#setActiveEditor(IEditorPart)
-     */
-    public void setActiveEditor(IEditorPart targetEditor) {
-        callHistory.add("setActiveEditor");
-        target = targetEditor;
-    }
-
-    /**
-     * Returns the active editor.
-     */
-    public IEditorPart getActiveEditor() {
-        return target;
-    }
-
-    /**
-     * Returns the actions.
-     */
-    public MockAction[] getActions() {
-        return actions;
-    }
-
-    /**
-     * Set the enablement for all actions.
-     */
-    public void enableActions(boolean b) {
-        for (int nX = 0; nX < ACTION_COUNT; nX++) {
-            actions[nX].setEnabled(b);
-        }
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionDelegate.java
deleted file mode 100644
index 9438cf1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorActionDelegate.java
+++ /dev/null
@@ -1,44 +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.ui.tests.api;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-
-public class MockEditorActionDelegate extends MockActionDelegate implements
-        IEditorActionDelegate {
-    private IEditorPart target;
-
-    /**
-     * Constructor for MockEditorActionDelegate
-     */
-    public MockEditorActionDelegate() {
-        super();
-    }
-
-    /**
-     * @see IEditorActionDelegate#setActiveEditor(IAction, IEditorPart)
-     */
-    public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-        callHistory.add("setActiveEditor");
-        target = targetEditor;
-    }
-
-    /**
-     * Returns the active editor.
-     */
-    public IEditorPart getActiveEditor() {
-        return target;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorMatchingStrategy.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorMatchingStrategy.java
deleted file mode 100644
index 71cb032..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorMatchingStrategy.java
+++ /dev/null
@@ -1,47 +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.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorMatchingStrategy;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.ResourceUtil;
-
-/**
- * An editor matching strategy to support the IEditorMatchingStrategyTest tests.
- * This models the scenario for PDE manifest editors described in bug 53700.
- * 
- * @since 3.1
- */
-public class MockEditorMatchingStrategy implements IEditorMatchingStrategy {
-
-    public boolean matches(IEditorReference editorRef, IEditorInput input) {
-        IFile inputFile = ResourceUtil.getFile(input);
-        if (inputFile != null && inputFile.getParent() instanceof IProject) {
-            String name = inputFile.getName();
-            if (name.equals("plugin.xml") || name.equals("MANIFEST.MF") || name.equals("build.properties")) {
-                try {
-                    IFile editorFile = ResourceUtil.getFile(editorRef.getEditorInput());
-                    return editorFile != null && inputFile.getProject().equals(editorFile.getProject());
-                } catch (PartInitException e) {
-                    e.printStackTrace();
-                    return false;
-                }
-            }
-        }
-        return false;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorPart.java
deleted file mode 100644
index bc1140e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorPart.java
+++ /dev/null
@@ -1,178 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-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.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IShowEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.IGotoMarker;
-
-public class MockEditorPart extends MockWorkbenchPart implements IEditorPart,
-        IGotoMarker, IShowEditorInput {
-
-    private static final String BASE = "org.eclipse.ui.tests.api.MockEditorPart";
-
-    public static final String ID1 = BASE + "1";
-
-    public static final String ID2 = BASE + "2";
-
-    public static final String NAME = "Mock Editor 1";
-
-    private IEditorInput input;
-
-    private boolean dirty = false;
-
-    private boolean saveNeeded = true;
-
-    private boolean saveAsAllowed = false;
-
-    public MockEditorPart() {
-        super();
-    }
-
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-
-        final Button dirtyToggle = new Button(parent, SWT.CHECK);
-        dirtyToggle.setText("Dirty");
-        dirtyToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setDirty(dirtyToggle.getSelection());
-            }
-        });
-        dirtyToggle.setSelection(isDirty());
-
-        final Button saveNeededToggle = new Button(parent, SWT.CHECK);
-        saveNeededToggle.setText("Save on close");
-        saveNeededToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setSaveNeeded(saveNeededToggle.getSelection());
-            }
-        });
-        saveNeededToggle.setSelection(saveNeeded);
-        
-        final Button saveAsToggle = new Button(parent, SWT.CHECK);
-        saveAsToggle.setText("Save as allowed");
-        saveAsToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setSaveAsAllowed(saveAsToggle.getSelection());
-            }
-        });
-        saveAsToggle.setSelection(saveAsAllowed);
-    }
-    /**
-     * @see IEditorPart#doSave(IProgressMonitor)
-     */
-    public void doSave(IProgressMonitor monitor) {
-        setDirty(false);
-        callTrace.add("doSave");
-    }
-
-    /**
-     * @see IEditorPart#doSaveAs()
-     */
-    public void doSaveAs() {
-    }
-
-    /**
-     * @see IEditorPart#getEditorInput()
-     */
-    public IEditorInput getEditorInput() {
-        return input;
-    }
-
-    /**
-     * @see IEditorPart#getEditorSite()
-     */
-    public IEditorSite getEditorSite() {
-        return (IEditorSite) getSite();
-    }
-
-    /**
-     * @see org.eclipse.ui.ide.IGotoMarker
-     */
-    public void gotoMarker(IMarker marker) {
-        callTrace.add("gotoMarker");
-    }
-
-    /**
-     * @see IEditorPart#init(IEditorSite, IEditorInput)
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        this.input = input;
-        setSite(site);
-        callTrace.add("init");
-        setSiteInitialized();
-    }
-
-    /**
-     * @see IEditorPart#isDirty()
-     */
-    public boolean isDirty() {
-        callTrace.add("isDirty");
-        return dirty;
-    }
-
-    public void setDirty(boolean value) {
-        dirty = value;
-        firePropertyChange(PROP_DIRTY);
-    }
-
-    /**
-     * @see IEditorPart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {
-        callTrace.add("isSaveAsAllowed");
-        return saveAsAllowed;
-    }
-
-    /**
-     * @see IEditorPart#isSaveOnCloseNeeded()
-     */
-    public boolean isSaveOnCloseNeeded() {
-        callTrace.add("isSaveOnCloseNeeded");
-        return saveNeeded;
-    }
-
-    public void setSaveAsAllowed(boolean isSaveAsAllowed) {
-        this.saveAsAllowed = isSaveAsAllowed;
-    }
-    
-    public void setSaveNeeded(boolean value) {
-        saveNeeded = value;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.MockWorkbenchPart#getActionBars()
-     */
-    protected IActionBars getActionBars() {
-        return getEditorSite().getActionBars();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IShowEditorInput#showEditorInput(org.eclipse.ui.IEditorInput)
-     */
-    public void showEditorInput(IEditorInput editorInput) {
-        callTrace.add("showEditorInput");
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorWithState.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorWithState.java
deleted file mode 100644
index 84e040b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockEditorWithState.java
+++ /dev/null
@@ -1,194 +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.ui.tests.api;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-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.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPersistableEditor;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-
-public class MockEditorWithState extends MockWorkbenchPart implements
-		IEditorPart, IPersistableEditor {
-
-	public static final String ID = "org.eclipse.ui.tests.api.MockEditorStatePart";
-
-	public static final String NAME = "Mock Editor State 1";
-
-	private IEditorInput input;
-
-	private boolean dirty = false;
-
-	private boolean saveNeeded = true;
-
-	private boolean saveAsAllowed = false;
-
-	public MockEditorWithState() {
-		super();
-	}
-
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-
-		final Button dirtyToggle = new Button(parent, SWT.CHECK);
-		dirtyToggle.setText("Dirty");
-		dirtyToggle.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				setDirty(dirtyToggle.getSelection());
-			}
-		});
-		dirtyToggle.setSelection(isDirty());
-
-		final Button saveNeededToggle = new Button(parent, SWT.CHECK);
-		saveNeededToggle.setText("Save on close");
-		saveNeededToggle.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				setSaveNeeded(saveNeededToggle.getSelection());
-			}
-		});
-		saveNeededToggle.setSelection(saveNeeded);
-
-		final Button saveAsToggle = new Button(parent, SWT.CHECK);
-		saveAsToggle.setText("Save as allowed");
-		saveAsToggle.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				setSaveAsAllowed(saveAsToggle.getSelection());
-			}
-		});
-		saveAsToggle.setSelection(saveAsAllowed);
-	}
-
-	/**
-	 * @see IEditorPart#doSave(IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		setDirty(false);
-		callTrace.add("doSave");
-	}
-
-	/**
-	 * @see IEditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-	}
-
-	/**
-	 * @see IEditorPart#getEditorInput()
-	 */
-	public IEditorInput getEditorInput() {
-		return input;
-	}
-
-	/**
-	 * @see IEditorPart#getEditorSite()
-	 */
-	public IEditorSite getEditorSite() {
-		return (IEditorSite) getSite();
-	}
-
-	/**
-	 * @see IEditorPart#init(IEditorSite, IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		this.input = input;
-		setSite(site);
-		callTrace.add("init");
-		setSiteInitialized();
-	}
-
-	/**
-	 * @see IEditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		callTrace.add("isDirty");
-		return dirty;
-	}
-
-	public void setDirty(boolean value) {
-		dirty = value;
-		firePropertyChange(PROP_DIRTY);
-	}
-
-	/**
-	 * @see IEditorPart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		callTrace.add("isSaveAsAllowed");
-		return saveAsAllowed;
-	}
-
-	/**
-	 * @see IEditorPart#isSaveOnCloseNeeded()
-	 */
-	public boolean isSaveOnCloseNeeded() {
-		callTrace.add("isSaveOnCloseNeeded");
-		return saveNeeded;
-	}
-
-	public void setSaveAsAllowed(boolean isSaveAsAllowed) {
-		this.saveAsAllowed = isSaveAsAllowed;
-	}
-
-	public void setSaveNeeded(boolean value) {
-		saveNeeded = value;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.api.MockWorkbenchPart#getActionBars()
-	 */
-	protected IActionBars getActionBars() {
-		return getEditorSite().getActionBars();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPersistableEditor#restoreState(org.eclipse.ui.IMemento)
-	 */
-	public void restoreState(IMemento memento) {
-		callTrace.add("restoreState");
-		String val = memento.getString("saveNeeded");
-		if (val != null) {
-			saveNeeded = Boolean.valueOf(val).booleanValue();
-		}
-		val = memento.getString("saveAsAllowed");
-		if (val != null) {
-			saveAsAllowed = Boolean.valueOf(val).booleanValue();
-		}
-		val = memento.getString("dirty");
-		if (val != null) {
-			dirty = Boolean.valueOf(val).booleanValue();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPersistable#saveState(org.eclipse.ui.IMemento)
-	 */
-	public void saveState(IMemento memento) {
-		callTrace.add("saveState");
-		memento.putString("saveNeeded", String.valueOf(saveNeeded));
-		memento.putString("saveAsAllowed", String.valueOf(saveAsAllowed));
-		memento.putString("dirty", String.valueOf(dirty));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPart.java
deleted file mode 100644
index a5b2cfa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPart.java
+++ /dev/null
@@ -1,198 +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.tests.api;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-import org.osgi.framework.Bundle;
-
-/**
- * Base class for mock intro and workbench parts.
- * 
- * @since 3.0
- */
-public class MockPart extends EventManager implements IExecutableExtension {
-
-    /**
-     * 
-     */
-    public MockPart() {
-        callTrace = new CallHistory(this);
-        selectionProvider = new MockSelectionProvider();
-    }
-
-    protected CallHistory callTrace;
-
-    protected MockSelectionProvider selectionProvider;
-
-    private IConfigurationElement config;
-
-    private Object data;
-
-    private Image titleImage;
-
-    private DisposeListener disposeListener = new DisposeListener() {
-    	/* (non-Javadoc)
-    	 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
-    	 */
-    	public void widgetDisposed(DisposeEvent e) {
-    		MockPart.this.widgetDisposed();
-    	}
-    };
-    
-    public CallHistory getCallHistory() {
-        return callTrace;
-    }
-
-    public ISelectionProvider getSelectionProvider() {
-        return selectionProvider;
-    }
-
-    public void setInitializationData(IConfigurationElement config,
-            String propertyName, Object data) throws CoreException {
-    	
-    	callTrace.add("setInitializationData");
-    	
-        this.config = config;
-        this.data = data;
-
-        // Icon.
-        String strIcon = config.getAttribute("icon");//$NON-NLS-1$
-        if (strIcon != null) {
-            try {
-            	Bundle plugin = Platform.getBundle(config.getNamespace());
-                URL installURL = plugin.getEntry("/"); //$NON-NLS-1$
-                URL fullPathString = new URL(installURL, strIcon);
-                ImageDescriptor imageDesc = ImageDescriptor
-                        .createFromURL(fullPathString);
-                titleImage = imageDesc.createImage();
-            } catch (MalformedURLException e) {
-                // ignore
-            }
-        }
-    }
-
-    protected IConfigurationElement getConfig() {
-        return config;
-    }
-
-    protected Object getData() {
-        return data;
-    }
-
-    // This isn't actually part of the part API, but we call this method from a dispose listener
-    // in order to mark the point in time at which the widgets are disposed
-    public void widgetDisposed() {
-    	callTrace.add("widgetDisposed");
-    }
-    
-    /**
-     * @see IWorkbenchPart#addPropertyListener(IPropertyListener)
-     */
-    public void addPropertyListener(IPropertyListener listener) {
-        addListenerObject(listener);
-    }
-
-    /**
-     * @see IWorkbenchPart#createPartControl(Composite)
-     */
-    public void createPartControl(Composite parent) {
-        callTrace.add("createPartControl");
-        
-        parent.addDisposeListener(disposeListener);
-    }
-
-    /**
-     * @see IWorkbenchPart#dispose()
-     */
-    public void dispose() {
-        callTrace.add("dispose");
-    }
-
-    /**
-     * @see IWorkbenchPart#getTitleImage()
-     */
-    public Image getTitleImage() {
-        return titleImage;
-    }
-
-    /**
-     * @see IWorkbenchPart#removePropertyListener(IPropertyListener)
-     */
-    public void removePropertyListener(IPropertyListener listener) {
-        removeListenerObject(listener);
-    }
-
-    /**
-     * @see IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        callTrace.add("setFocus");
-    }
-
-    /**
-     * @see IAdaptable#getAdapter(Class)
-     */
-    public Object getAdapter(Class arg0) {
-        return null;
-    }
-
-    /**
-     * Fires a selection out.
-     */
-    public void fireSelection() {
-        selectionProvider.fireSelection();
-    }
-
-    /**
-     * Fires a property change event.
-     */
-    protected void firePropertyChange(int propertyId) {
-        Object[] listeners = getListeners();
-        for (int i = 0; i < listeners.length; i++) {
-            IPropertyListener l = (IPropertyListener) listeners[i];
-            l.propertyChanged(this, propertyId);
-        }
-    }
-
-    /**
-     * boolean to declare whether the site was properly initialized in the init method. 
-     */
-    private boolean siteState = false;
-
-    /**
-     * Sets whether the site was properly initialized in the init method.
-     */
-    protected void setSiteInitialized(boolean initialized) {
-        siteState = initialized;
-    }
-
-    /**
-     * Gets whether the site was properly initialized in the init method.
-     */
-    public boolean isSiteInitialized() {
-        return siteState;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPartListener.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPartListener.java
deleted file mode 100644
index f7346a2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPartListener.java
+++ /dev/null
@@ -1,62 +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.ui.tests.api;
-
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-
-public class MockPartListener implements IPartListener {
-    private CallHistory callTrace;
-
-    public MockPartListener() {
-        callTrace = new CallHistory(this);
-    }
-
-    public CallHistory getCallHistory() {
-        return callTrace;
-    }
-
-    /**
-     * @see IPartListener#partActivated(IWorkbenchPart)
-     */
-    public void partActivated(IWorkbenchPart part) {
-        callTrace.add("partActivated");
-    }
-
-    /**
-     * @see IPartListener#partBroughtToTop(IWorkbenchPart)
-     */
-    public void partBroughtToTop(IWorkbenchPart part) {
-        callTrace.add("partBroughtToTop");
-    }
-
-    /**
-     * @see IPartListener#partClosed(IWorkbenchPart)
-     */
-    public void partClosed(IWorkbenchPart part) {
-        callTrace.add("partClosed");
-    }
-
-    /**
-     * @see IPartListener#partDeactivated(IWorkbenchPart)
-     */
-    public void partDeactivated(IWorkbenchPart part) {
-        callTrace.add("partDeactivated");
-    }
-
-    /**
-     * @see IPartListener#partOpened(IWorkbenchPart)
-     */
-    public void partOpened(IWorkbenchPart part) {
-        callTrace.add("partOpened");
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPropertyListener.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPropertyListener.java
deleted file mode 100644
index 4287f25..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockPropertyListener.java
+++ /dev/null
@@ -1,45 +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.ui.tests.api;
-
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-
-public class MockPropertyListener implements IPropertyListener {
-    private CallHistory callTrace;
-
-    private Object sourceMask;
-
-    private int sourceId;
-
-    /**
-     * @param source the event source that fires the event to this listener
-     * @param id the property id for the event
-     */
-    public MockPropertyListener(Object source, int id) {
-        sourceMask = source;
-        sourceId = id;
-        callTrace = new CallHistory(this);
-    }
-
-    /**
-     * @see IPropertyListener#propertyChanged(Object, int)
-     */
-    public void propertyChanged(Object source, int propId) {
-        if (source == sourceMask && propId == sourceId)
-            callTrace.add("propertyChanged");
-    }
-
-    public CallHistory getCallHistory() {
-        return callTrace;
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockReusableEditorPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockReusableEditorPart.java
deleted file mode 100644
index bb36bce..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockReusableEditorPart.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-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.ui.IActionBars;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IReusableEditor;
-import org.eclipse.ui.IShowEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.IGotoMarker;
-
-public class MockReusableEditorPart extends MockWorkbenchPart implements IEditorPart,
-        IGotoMarker, IShowEditorInput, IReusableEditor {
-
-    private static final String BASE = "org.eclipse.ui.tests.api.MockReusableEditorPart";
-
-    public static final String ID1 = BASE + "1";
-
-    public static final String ID2 = BASE + "2";
-
-    public static final String NAME = "Mock Reusable Editor 1";
-
-    private IEditorInput input;
-
-    private boolean dirty = false;
-
-    private boolean saveNeeded = true;
-
-    private boolean saveAsAllowed = false;
-
-    public MockReusableEditorPart() {
-        super();
-    }
-
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-
-        final Button dirtyToggle = new Button(parent, SWT.CHECK);
-        dirtyToggle.setText("Dirty");
-        dirtyToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setDirty(dirtyToggle.getSelection());
-            }
-        });
-        dirtyToggle.setSelection(isDirty());
-
-        final Button saveNeededToggle = new Button(parent, SWT.CHECK);
-        saveNeededToggle.setText("Save on close");
-        saveNeededToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setSaveNeeded(saveNeededToggle.getSelection());
-            }
-        });
-        saveNeededToggle.setSelection(saveNeeded);
-        
-        final Button saveAsToggle = new Button(parent, SWT.CHECK);
-        saveAsToggle.setText("Save as allowed");
-        saveAsToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setSaveAsAllowed(saveAsToggle.getSelection());
-            }
-        });
-        saveAsToggle.setSelection(saveAsAllowed);
-    }
-    /**
-     * @see IEditorPart#doSave(IProgressMonitor)
-     */
-    public void doSave(IProgressMonitor monitor) {
-        setDirty(false);
-        callTrace.add("doSave");
-    }
-
-    /**
-     * @see IEditorPart#doSaveAs()
-     */
-    public void doSaveAs() {
-    }
-
-    /**
-     * @see IEditorPart#getEditorInput()
-     */
-    public IEditorInput getEditorInput() {
-        return input;
-    }
-
-    /**
-     * @see IEditorPart#getEditorSite()
-     */
-    public IEditorSite getEditorSite() {
-        return (IEditorSite) getSite();
-    }
-
-    /**
-     * @see org.eclipse.ui.ide.IGotoMarker
-     */
-    public void gotoMarker(IMarker marker) {
-        callTrace.add("gotoMarker");
-    }
-
-    /**
-     * @see IEditorPart#init(IEditorSite, IEditorInput)
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        this.input = input;
-        setSite(site);
-        callTrace.add("init");
-        setSiteInitialized();
-    }
-
-    /**
-     * @see IEditorPart#isDirty()
-     */
-    public boolean isDirty() {
-        callTrace.add("isDirty");
-        return dirty;
-    }
-
-    public void setDirty(boolean value) {
-        dirty = value;
-        firePropertyChange(PROP_DIRTY);
-    }
-
-    /**
-     * @see IEditorPart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {
-        callTrace.add("isSaveAsAllowed");
-        return saveAsAllowed;
-    }
-
-    /**
-     * @see IEditorPart#isSaveOnCloseNeeded()
-     */
-    public boolean isSaveOnCloseNeeded() {
-        callTrace.add("isSaveOnCloseNeeded");
-        return saveNeeded;
-    }
-
-    public void setSaveAsAllowed(boolean isSaveAsAllowed) {
-        this.saveAsAllowed = isSaveAsAllowed;
-    }
-    
-    public void setSaveNeeded(boolean value) {
-        saveNeeded = value;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.MockWorkbenchPart#getActionBars()
-     */
-    protected IActionBars getActionBars() {
-        return getEditorSite().getActionBars();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IShowEditorInput#showEditorInput(org.eclipse.ui.IEditorInput)
-     */
-    public void showEditorInput(IEditorInput editorInput) {
-        callTrace.add("showEditorInput");
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IReusableEditor#setInput(org.eclipse.ui.IEditorInput)
-	 */
-	public void setInput(IEditorInput input) {
-		this.input = input;
-		firePropertyChange(PROP_INPUT);
-	}
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockSelectionProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockSelectionProvider.java
deleted file mode 100644
index bdcb045..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockSelectionProvider.java
+++ /dev/null
@@ -1,72 +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.ui.tests.api;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-public class MockSelectionProvider implements ISelectionProvider {
-
-    private List listeners = new ArrayList(3);
-
-    /**
-     * Fires out a selection to all listeners.
-     */
-    public void fireSelection() {
-        fireSelection(new SelectionChangedEvent(this, StructuredSelection.EMPTY));
-    }
-
-    /**
-     * Fires out a selection to all listeners.
-     */
-    public void fireSelection(SelectionChangedEvent event) {
-        Iterator iter = listeners.iterator();
-        while (iter.hasNext()) {
-            ((ISelectionChangedListener) iter.next()).selectionChanged(event);
-        }
-    }
-
-    /**
-     * @see ISelectionProvider#addSelectionChangedListener(ISelectionChangedListener)
-     */
-    public void addSelectionChangedListener(ISelectionChangedListener listener) {
-        listeners.add(listener);
-    }
-
-    /**
-     * @see ISelectionProvider#getSelection()
-     */
-    public ISelection getSelection() {
-        return StructuredSelection.EMPTY;
-    }
-
-    /**
-     * @see ISelectionProvider#removeSelectionChangedListener(ISelectionChangedListener)
-     */
-    public void removeSelectionChangedListener(
-            ISelectionChangedListener listener) {
-        listeners.remove(listener);
-    }
-
-    /**
-     * @see ISelectionProvider#setSelection(ISelection)
-     */
-    public void setSelection(ISelection selection) {
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewActionDelegate.java
deleted file mode 100644
index c8d2ac0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewActionDelegate.java
+++ /dev/null
@@ -1,35 +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.ui.tests.api;
-
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * This mock is used to test IViewActionDelegate lifecycle.
- */
-public class MockViewActionDelegate extends MockActionDelegate implements
-        IViewActionDelegate {
-    /**
-     * Constructor for MockWorkbenchWindowActionDelegate
-     */
-    public MockViewActionDelegate() {
-        super();
-    }
-
-    /**
-     * @see IViewActionDelegate#init(IViewPart)
-     */
-    public void init(IViewPart view) {
-        callHistory.add("init");
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPart.java
deleted file mode 100644
index 490f178..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPart.java
+++ /dev/null
@@ -1,191 +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.ui.tests.api;
-
-import junit.framework.Assert;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-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.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.WorkbenchImages;
-
-public class MockViewPart extends MockWorkbenchPart implements IViewPart {
-    public static String ID = "org.eclipse.ui.tests.api.MockViewPart";
-
-    public static String ID2 = ID + "2";
-
-    public static String ID3 = ID + "3";
-
-    public static String ID4 = ID + "4";
-
-    public static String IDMULT = ID + "Mult";
-
-    public static String NAME = "Mock View 1";
-
-    private ContributionItem toolbarItem = new ContributionItem("someId") {
-
-    	private DisposeListener disposeListener = new DisposeListener() {
-    		public void widgetDisposed(DisposeEvent e) {
-    			toolbarContributionItemWidgetDisposed();
-    		}
-
-    	};
-    	
-    	public void fill(ToolBar parent, int index) {
-    		super.fill(parent, index);
-    		
-    		ToolItem item = new ToolItem(parent, index);
-    		
-    		item.addDisposeListener(disposeListener);
-    		item.setImage(WorkbenchImages.getImage(ISharedImages.IMG_DEF_VIEW));
-    	}
-    	
-    	public void dispose() {
-    		toolbarContributionItemDisposed();
-    		super.dispose();
-    	}
-    };
-    
-    private class DummyAction extends Action {
-    	public DummyAction() {
-    		setText("Monkey");
-			setImageDescriptor(getViewSite().getWorkbenchWindow()
-					.getWorkbench().getSharedImages()
-					.getImageDescriptor(
-							ISharedImages.IMG_TOOL_DELETE));
-		}    	
-    }
-    
-    public MockViewPart() {
-        super();
-    }
-
-	/**
-     * @see IViewPart#getViewSite()
-     */
-    public IViewSite getViewSite() {
-        return (IViewSite) getSite();
-    }
-
-    /**
-     * @see IViewPart#init(IViewSite)
-     */
-    public void init(IViewSite site) throws PartInitException {
-        setSite(site);
-        callTrace.add("init");
-        setSiteInitialized();
-        addToolbarContributionItem();
-    }
-
-    /**
-     * @see IViewPart#init(IViewSite, IMemento)
-     */
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        setSite(site);
-        callTrace.add("init");
-        setSiteInitialized();
-        addToolbarContributionItem();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.MockWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-    	super.createPartControl(parent);
-    	
-        Button addAction = new Button(parent, SWT.PUSH);
-        addAction.setText("Add Action to Tool Bar");
-        addAction.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				IActionBars bars = getViewSite().getActionBars();
-				bars.getToolBarManager().add(new DummyAction());
-				bars.updateActionBars();
-			}
-		});
-
-        Button removeAction = new Button(parent, SWT.PUSH);
-        removeAction.setText("Remove Action from Tool Bar");
-        removeAction.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				IActionBars bars = getViewSite().getActionBars();
-				IToolBarManager tbm = bars.getToolBarManager();
-				IContributionItem[] items = tbm.getItems();
-				if (items.length > 0) {
-					IContributionItem item = items[items.length-1];
-					if (item instanceof ActionContributionItem) {
-						if (((ActionContributionItem) item).getAction() instanceof DummyAction) {
-							tbm.remove(item);
-							bars.updateActionBars();
-						}
-					}
-				}
-			}
-		});
-    }
-    
-    /* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.api.MockPart#dispose()
-	 */
-	public void dispose() {
-		// Test for bug 94457: The contribution items must still be in the toolbar manager at the
-		// time the part is disposed. (Changing this behavior would be a breaking change for some
-		// clients).
-		Assert.assertTrue( 
-				"Contribution items should not be removed from the site until after the part is disposed", 
-				getViewSite().getActionBars().getToolBarManager().find(toolbarItem.getId())
-				== toolbarItem );
-		super.dispose();
-	}
-
-	private void addToolbarContributionItem() {
-    	getViewSite().getActionBars().getToolBarManager().add(toolbarItem);
-    }
-
-	public void toolbarContributionItemWidgetDisposed() {
-		callTrace.add("toolbarContributionItemWidgetDisposed");
-	}
-    
-    public void toolbarContributionItemDisposed() {
-    	callTrace.add("toolbarContributionItemDisposed");
-	}
-	
-    /**
-     * @see IViewPart#saveState(IMemento)
-     */
-    public void saveState(IMemento memento) {
-    	// do nothing
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.MockWorkbenchPart#getActionBars()
-     */
-    protected IActionBars getActionBars() {
-        return getViewSite().getActionBars();
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPartMult.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPartMult.java
deleted file mode 100644
index f98816d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockViewPartMult.java
+++ /dev/null
@@ -1,60 +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.tests.api;
-
-import org.eclipse.swt.SWT;
-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.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * The implementation of the multi-instance mock view.
- * Has a button to open another.
- * 
- * @since 3.1
- */
-public class MockViewPartMult extends MockViewPart {
-	static int counter = 1;
-	
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		
-		Button button = new Button(parent, SWT.NONE);
-		button.setText("Open Another");
-		button.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				openAnother();
-			}
-		});
-	}
-
-	public String getTitle() {
-		String title = super.getTitle();
-		String secondaryId = getViewSite().getSecondaryId();
-		if (secondaryId != null) {
-			title += " " + secondaryId;
-		}
-		return title;
-	}
-	
-	
-	private void openAnother() {
-		String secondaryId = String.valueOf(++counter);
-		try {
-			getSite().getPage().showView(MockViewPart.IDMULT, secondaryId, IWorkbenchPage.VIEW_ACTIVATE);
-		} catch (PartInitException e) {
-			e.printStackTrace();
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchPart.java
deleted file mode 100644
index 86ccbe0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchPart.java
+++ /dev/null
@@ -1,98 +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.ui.tests.api;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-
-public abstract class MockWorkbenchPart extends MockPart implements
-        IWorkbenchPart {
-
-    private IWorkbenchPartSite site;
-
-    private String title;
-
-    public MockWorkbenchPart() {
-        super();
-    }
-
-    public void setSite(IWorkbenchPartSite site) {
-        this.site = site;
-        site.setSelectionProvider(selectionProvider);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.MockPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-		parent.setLayout(new GridLayout());
-		
-        Label label = new Label(parent, SWT.NONE);
-        label.setText(title);
-    }
-
-    public IWorkbenchPartSite getSite() {
-        return site;
-    }
-
-    /**
-     * @see IWorkbenchPart#getTitle()
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /**
-     * @see IWorkbenchPart#getTitleToolTip()
-     */
-    public String getTitleToolTip() {
-        return title;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.MockPart#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
-     */
-    public void setInitializationData(IConfigurationElement config,
-            String propertyName, Object data) throws CoreException {
-        // TODO Auto-generated method stub
-        super.setInitializationData(config, propertyName, data);
-        title = config.getAttribute("name");
-    }
-
-    protected void setSiteInitialized() {
-        setSiteInitialized(getSite().getKeyBindingService() != null
-                & getSite().getPage() != null
-                & getSite().getSelectionProvider() != null
-                & getSite().getWorkbenchWindow() != null
-                & testActionBars(getActionBars()));
-    }
-
-    /**
-     * @param actionBars
-     * @return
-     */
-    private boolean testActionBars(IActionBars bars) {
-        return bars != null && bars.getMenuManager() != null
-                && bars.getToolBarManager() != null
-                && bars.getStatusLineManager() != null;
-
-    }
-
-    protected abstract IActionBars getActionBars();
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchWindowActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchWindowActionDelegate.java
deleted file mode 100644
index cdba970..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkbenchWindowActionDelegate.java
+++ /dev/null
@@ -1,57 +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.tests.api;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-public class MockWorkbenchWindowActionDelegate extends MockActionDelegate
-        implements IWorkbenchWindowActionDelegate, IActionDelegate2 {
-    public static MockWorkbenchWindowActionDelegate lastDelegate;
-
-    public static String SET_ID = "org.eclipse.ui.tests.api.MockActionSet";
-
-    public static String ID = "org.eclipse.ui.tests.api.MockWindowAction";
-
-    /**
-     * Constructor for MockWorkbenchWindowActionDelegate
-     */
-    public MockWorkbenchWindowActionDelegate() {
-        super();
-        lastDelegate = this;
-    }
-
-    /**
-     * @see IWorkbenchWindowActionDelegate#init(IWorkbenchWindow)
-     */
-    public void init(IWorkbenchWindow window) {
-        callHistory.add("init");
-    }
-
-    /**
-     * @see IWorkbenchWindowActionDelegate#dispose()
-     */
-    public void dispose() {
-        callHistory.add("dispose");
-    }
-
-	public void init(IAction action) {
-		callHistory.add("init");
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		callHistory.add("runWithEvent");
-	}
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetPage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetPage.java
deleted file mode 100644
index 59d26a5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetPage.java
+++ /dev/null
@@ -1,64 +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.ui.tests.api;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-
-/**
- * Tests the org.eclipse.ui.workingSets extension point.
- */
-public class MockWorkingSetPage extends WizardPage implements IWorkingSetPage {
-    private IWorkingSet workingSet;
-
-    /**
-     * Creates a new instance of the receiver.
-     */
-    public MockWorkingSetPage() {
-        super(
-                "MockWorkingSetPage", "Test Working Set", ImageDescriptor.getMissingImageDescriptor()); //$NON-NLS-1$ $NON-NLS-2$
-    }
-
-    /**
-     * Overrides method in WizardPage.
-     * 
-     * @see org.eclipse.jface.wizard.WizardPage#createControl(Composite)
-     */
-    public void createControl(Composite parent) {
-    }
-
-    /**
-     * Implements IWorkingSetPage.
-     * 
-     * @see org.eclipse.ui.dialogs.IWorkingSetPage#getSelection()
-     */
-    public IWorkingSet getSelection() {
-        return workingSet;
-    }
-
-    /**
-     * Implements IWorkingSetPage.
-     * 
-     * @see org.eclipse.ui.dialogs.IWorkingSetPage#setSelection(IWorkingSet)
-     */
-    public void setSelection(IWorkingSet workingSet) {
-    }
-
-    /**
-     * @see org.eclipse.ui.dialogs.IWorkingSetPage#finish()
-     */
-    public void finish() {
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetTest.java
deleted file mode 100644
index 0f57809..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/MockWorkingSetTest.java
+++ /dev/null
@@ -1,67 +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.ui.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.registry.WorkingSetDescriptor;
-import org.eclipse.ui.internal.registry.WorkingSetRegistry;
-
-/**
- * Tests the WorkingSetDescriptor and WorkingSetRegistry.
- */
-public class MockWorkingSetTest extends TestCase {
-    final static String WORKING_SET_ID = "org.eclipse.ui.tests.api.MockWorkingSet";
-
-    final static String WORKING_SET_NAME = "Mock Working Set";
-
-    final static String WORKING_SET_PAGE_CLASS_NAME = "org.eclipse.ui.tests.api.MockWorkingSetPage";
-
-    WorkingSetRegistry fRegistry;
-
-    public MockWorkingSetTest(String name) {
-        super(name);
-    }
-
-    /**
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-        super.setUp();
-        fRegistry = WorkbenchPlugin.getDefault().getWorkingSetRegistry();
-    }
-
-    public void testWorkingSetDescriptor() throws Throwable {
-        WorkingSetDescriptor workingSetDescriptor = fRegistry
-                .getWorkingSetDescriptor(WORKING_SET_ID);
-
-        assertNotNull(workingSetDescriptor.getIcon());
-        assertEquals(WORKING_SET_ID, workingSetDescriptor.getId());
-        assertEquals(WORKING_SET_NAME, workingSetDescriptor.getName());
-        assertEquals(WORKING_SET_PAGE_CLASS_NAME, workingSetDescriptor
-                .getPageClassName());
-    }
-
-    public void testWorkingSetRegistry() throws Throwable {
-        WorkingSetDescriptor[] workingSetDescriptors = fRegistry
-                .getWorkingSetDescriptors();
-        /*
-         * Should have at least resourceWorkingSetPage and MockWorkingSet
-         */
-        assertTrue(workingSetDescriptors.length >= 2);
-
-        assertEquals(Class.forName(WORKING_SET_PAGE_CLASS_NAME), fRegistry
-                .getWorkingSetPage(WORKING_SET_ID).getClass());
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug120934.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug120934.java
deleted file mode 100644
index 4bd233f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug120934.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.tests.api;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * A layout that can trigger an problem interaction between 
- * {@link org.eclipse.ui.internal.presentations.util.PresentablePartFolder}
- * and {@link org.eclipse.ui.internal.presentations.defaultpresentation.EmptyTabFolder}.
- * 
- * @since 3.2
- */
-public class PerspectiveViewsBug120934 implements IPerspectiveFactory {
-	public static final String PERSP_ID = "org.eclipse.ui.tests.api.PerspectiveViewsBug120934";
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-	 */
-	public void createInitialLayout(IPageLayout layout) {
-		layout.addView(IPageLayout.ID_BOOKMARKS, IPageLayout.RIGHT, 0.25f,
-				IPageLayout.ID_EDITOR_AREA);
-		layout.addStandaloneView(IPageLayout.ID_OUTLINE, false,
-				IPageLayout.TOP, .3f, IPageLayout.ID_BOOKMARKS);
-		layout.setEditorAreaVisible(false);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug88345.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug88345.java
deleted file mode 100644
index fe96602..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveViewsBug88345.java
+++ /dev/null
@@ -1,49 +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.ui.tests.api;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api. It defines an initial layout with
- * placeholders for some views, to be used to test closing fast views. The
- * placeholders are added at top level (not in any folder).
- * 
- * @since 3.1.1
- */
-public class PerspectiveViewsBug88345 implements IPerspectiveFactory {
-
-	public static final String NORMAL_VIEW_ID = "org.eclipse.ui.views.ContentOutline";
-	public static final String PERSP_ID = "org.eclipse.ui.tests.api.PerspectiveViewsBug88345";
-	public static final String MOVE_ID = MockViewPart.IDMULT + ":1";
-	/**
-	 * A view with a toolbar (not a room with a view).
-	 */
-	public static final String PROP_SHEET_ID = "org.eclipse.ui.views.PropertySheet";
-
-	public PerspectiveViewsBug88345() {
-		// do nothing
-	}
-
-	public void createInitialLayout(IPageLayout layout) {
-		layout.addView(MockViewPart.IDMULT, IPageLayout.LEFT, 0.33f,
-				IPageLayout.ID_EDITOR_AREA);
-		layout.addView(NORMAL_VIEW_ID,
-				IPageLayout.RIGHT, 0.25f, IPageLayout.ID_EDITOR_AREA);
-		layout.addView(PROP_SHEET_ID, IPageLayout.RIGHT, 0.75f, NORMAL_VIEW_ID);
-		layout.getViewLayout(MockViewPart.IDMULT).setCloseable(false);
-		
-		// added for the bug 99723 test
-		layout.addFastView(MOVE_ID);
-		layout.getViewLayout(MOVE_ID).setMoveable(false);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithFastView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithFastView.java
deleted file mode 100644
index 7de6dbf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithFastView.java
+++ /dev/null
@@ -1,49 +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.ui.tests.api;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api. It defines an initial layout with a
- * fast view.
- */
-public class PerspectiveWithFastView implements IPerspectiveFactory {
-
-    public static String PERSP_ID = "org.eclipse.ui.tests.fastview_perspective"; //$NON-NLS-1$
-
-    /**
-     * Constructs a new Default layout engine.
-     */
-    public PerspectiveWithFastView() {
-        super();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        defineLayout(layout);
-    }
-
-    /**
-     * Define the initial layout by adding a fast view.
-     * 
-     * @param layout
-     *            The page layout.
-     */
-    public void defineLayout(IPageLayout layout) {
-        layout.addFastView("org.eclipse.ui.views.ResourceNavigator", .8f); //$NON-NLS-1$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersAtTopLevel.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersAtTopLevel.java
deleted file mode 100644
index 2c0c8bd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersAtTopLevel.java
+++ /dev/null
@@ -1,37 +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.ui.tests.api;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This perspective is used for testing api. It defines an initial layout with 
- * placeholders for multi-instance views, including wildcards.
- * The placeholders are added at top level (not in any folder).
- * 
- * @since 3.1
- */
-public class PerspectiveWithMultiViewPlaceholdersAtTopLevel implements IPerspectiveFactory {
-
-    public static String PERSP_ID = "org.eclipse.ui.tests.PerspectiveWithMultiViewPlaceholdersAtTopLevel"; //$NON-NLS-1$
-
-    public PerspectiveWithMultiViewPlaceholdersAtTopLevel() {
-        // do nothing
-    }
-
-    public void createInitialLayout(IPageLayout layout) {
-        layout.addPlaceholder("*", IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        layout.addPlaceholder(MockViewPart.IDMULT, IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        layout.addPlaceholder(MockViewPart.IDMULT + ":secondaryId", IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        layout.addPlaceholder(MockViewPart.IDMULT + ":*", IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInFolder.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInFolder.java
deleted file mode 100644
index 317a50d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInFolder.java
+++ /dev/null
@@ -1,35 +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.ui.tests.api;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-
-/**
- * This perspective is used for testing api. It defines an initial layout with 
- * placeholders for multi-instance views, including wildcards.
- * The placeholders are added in a folder (not a placeholder folder).
- * 
- * @since 3.1
- */
-public class PerspectiveWithMultiViewPlaceholdersInFolder extends PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder {
-
-    public static String PERSP_ID = "org.eclipse.ui.tests.PerspectiveWithMultiViewPlaceholdersInFolder"; //$NON-NLS-1$
-
-    public PerspectiveWithMultiViewPlaceholdersInFolder() {
-        // do nothing
-    }
-
-    public void createInitialLayout(IPageLayout layout) {
-        IFolderLayout folder = layout.createFolder("folder", IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        addPlaceholders(folder);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder.java
deleted file mode 100644
index b95a9fa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder.java
+++ /dev/null
@@ -1,43 +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.ui.tests.api;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IPlaceholderFolderLayout;
-
-/**
- * This perspective is used for testing api. It defines an initial layout with 
- * placeholders for multi-instance views, including wildcards.
- * The placeholders are added in a placeholder folder.
- * 
- * @since 3.1
- */
-public class PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder implements IPerspectiveFactory {
-
-    public static String PERSP_ID = "org.eclipse.ui.tests.PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder"; //$NON-NLS-1$
-
-    public PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder() {
-        // do nothing
-    }
-
-    public void createInitialLayout(IPageLayout layout) {
-        IPlaceholderFolderLayout folder = layout.createPlaceholderFolder("placeholderFolder", IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        addPlaceholders(folder);
-    }
-    
-    protected void addPlaceholders(IPlaceholderFolderLayout folder) {
-        folder.addPlaceholder("*");
-        folder.addPlaceholder(MockViewPart.IDMULT);
-        folder.addPlaceholder(MockViewPart.IDMULT + ":secondaryId");
-        folder.addPlaceholder(MockViewPart.IDMULT + ":*");
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PlatformUITest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PlatformUITest.java
deleted file mode 100644
index c606c2f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/PlatformUITest.java
+++ /dev/null
@@ -1,37 +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.ui.tests.api;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Tests the PlatformUI class.
- */
-public class PlatformUITest extends TestCase {
-
-    public PlatformUITest(String testName) {
-        super(testName);
-    }
-
-    public void testGetWorkbench() throws Throwable {
-        // From Javadoc: "Returns the workbench interface."
-        IWorkbench wb = PlatformUI.getWorkbench();
-        assertNotNull(wb);
-    }
-
-    public void testPLUGIN_ID() {
-        // From Javadoc: "Identifies the workbench plugin."
-        assertNotNull(PlatformUI.PLUGIN_ID);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SaveableMockViewPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SaveableMockViewPart.java
deleted file mode 100644
index fd8306f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SaveableMockViewPart.java
+++ /dev/null
@@ -1,119 +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.tests.api;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-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.ui.ISaveablePart;
-
-/**
- * Mock view part that implements ISaveablePart.
- * Used for testing hideView and other view lifecycle on saveable views.
- * 
- * @since 3.0.1
- */
-public class SaveableMockViewPart extends MockViewPart implements
-		ISaveablePart {
-	
-	public static String ID = "org.eclipse.ui.tests.api.SaveableMockViewPart";
-
-	private boolean isDirty = false;
-
-    private boolean saveAsAllowed = false;
-
-    private boolean saveNeeded = true;
-
-    public void createPartControl(Composite parent) {
-        super.createPartControl(parent);
-
-        final Button dirtyToggle = new Button(parent, SWT.CHECK);
-        dirtyToggle.setText("Dirty");
-        dirtyToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setDirty(dirtyToggle.getSelection());
-            }
-        });
-        dirtyToggle.setSelection(isDirty());
-
-        final Button saveNeededToggle = new Button(parent, SWT.CHECK);
-        saveNeededToggle.setText("Save on close");
-        saveNeededToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setSaveNeeded(saveNeededToggle.getSelection());
-            }
-        });
-        saveNeededToggle.setSelection(saveNeeded);
-        
-        final Button saveAsToggle = new Button(parent, SWT.CHECK);
-        saveAsToggle.setText("Save as allowed");
-        saveAsToggle.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                setSaveAsAllowed(saveAsToggle.getSelection());
-            }
-        });
-        saveAsToggle.setSelection(saveAsAllowed);
-    }
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		callTrace.add("doSave" );
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		callTrace.add("doSaveAs" );
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isDirty()
-	 */
-	public boolean isDirty() {
-		callTrace.add("isDirty" );
-		return isDirty;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		callTrace.add("isSaveAsAllowed" );
-		return saveAsAllowed ;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveOnCloseNeeded()
-	 */
-	public boolean isSaveOnCloseNeeded() {
-		callTrace.add("isSaveOnCloseNeeded" );
-		return saveNeeded;
-	}
-
-	public void setDirty(boolean isDirty) {
-		this.isDirty = isDirty;
-        firePropertyChange(PROP_DIRTY);
-	}
-    
-    public void setSaveAsAllowed(boolean isSaveAsAllowed) {
-        this.saveAsAllowed = isSaveAsAllowed;
-    }
-    
-    public void setSaveNeeded(boolean isSaveOnCloseNeeded) {
-        this.saveNeeded = isSaveOnCloseNeeded;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionCreateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionCreateTest.java
deleted file mode 100644
index 30d57e1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionCreateTest.java
+++ /dev/null
@@ -1,100 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * SessionCreateTest runs the first half of our session
- * presistance tests.
- * 
- */
-public class SessionCreateTest extends UITestCase {
-
-    private IWorkbenchWindow[] oldWindows;
-
-    public static String TEST_PROJ = "sessionTest";
-
-    public static String TEST_FILE_1 = "one.mock1";
-
-    public static String TEST_FILE_2 = "two.mock1";
-
-    public static String TEST_FILE_3 = "three.mock1";
-
-    /** 
-     * Construct an instance.
-     */
-    public SessionCreateTest(String arg) {
-        super(arg);
-    }
-
-    /**
-     * Generates a session state in the workbench.
-     */
-    public void testSessionCreation() throws Throwable {
-        IWorkbenchWindow window;
-        IWorkbenchPage page;
-
-        // Save the original windows.  We close all of
-        // these at the end, after the test windows have
-        // been created.
-        saveOriginalWindows();
-
-        // Create test window with empty perspective.
-        window = fWorkbench.openWorkbenchWindow(EmptyPerspective.PERSP_ID, getPageInput());
-
-        // Create test window with empty perspective and
-        // session perspective.
-        window = fWorkbench.openWorkbenchWindow(EmptyPerspective.PERSP_ID, getPageInput());
-        page = window.openPage(SessionPerspective.ID, getPageInput());
-
-        // Create test window with two session perspectives.
-        window = fWorkbench.openWorkbenchWindow(SessionPerspective.ID, getPageInput());
-        page = window.openPage(SessionPerspective.ID, getPageInput());
-
-        // Open 3 editors in last page.
-        IProject proj = FileUtil.createProject(TEST_PROJ);
-        IFile file = FileUtil.createFile(TEST_FILE_1, proj);
-        page.openEditor(new FileEditorInput(file), MockEditorPart.ID1);
-        file = FileUtil.createFile(TEST_FILE_2, proj);
-        page.openEditor(new FileEditorInput(file), MockEditorPart.ID1);
-        file = FileUtil.createFile(TEST_FILE_3, proj);
-        page.openEditor(new FileEditorInput(file), MockEditorPart.ID1);
-
-        // Close the original windows.
-        closeOriginalWindows();
-    }
-
-    /**
-     * Saves the original window set.
-     */
-    private void saveOriginalWindows() {
-        oldWindows = fWorkbench.getWorkbenchWindows();
-    }
-
-    /**
-     * Closes the original window set.
-     */
-    private void closeOriginalWindows() {
-        for (int nX = 0; nX < oldWindows.length; nX++) {
-            oldWindows[nX].close();
-        }
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionEditorPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionEditorPart.java
deleted file mode 100644
index ee7bf67..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionEditorPart.java
+++ /dev/null
@@ -1,124 +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.tests.api;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * @since 3.1
- * 
- */
-public class SessionEditorPart extends EditorPart {
-
-	public static int instantiatedEditors = 0;
-	
-	private Composite fMainPanel;
-
-	/**
-	 * 
-	 */
-	public SessionEditorPart() {
-		super();
-		// TODO Auto-generated constructor stub
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
-	 *      org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		if (!(input instanceof IFileEditorInput))
-			throw new PartInitException(
-					"Invalid Input: Must be IFileEditorInput");
-		setSite(site);
-		setInput(input);
-		++SessionEditorPart.instantiatedEditors;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-	       fMainPanel = new Composite(parent, SWT.NONE);
-	       fMainPanel.setLayout(new RowLayout(SWT.VERTICAL));
-	       
-	       Label l = new Label(fMainPanel, SWT.NONE);
-	       l.setText("Editor Title:");
-	       
-	       l = new Label(fMainPanel, SWT.BORDER);
-	       l.setText(getEditorInput().getName());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		fMainPanel.setFocus();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionPerspective.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionPerspective.java
deleted file mode 100644
index b37dac8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionPerspective.java
+++ /dev/null
@@ -1,36 +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.ui.tests.api;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * This class tests the persistance of a perspective.
- */
-public class SessionPerspective implements IPerspectiveFactory {
-
-    public static String ID = "org.eclipse.ui.tests.api.SessionPerspective";
-
-    /**
-     * @see IPerspectiveFactory#createInitialLayout(IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        String editorArea = layout.getEditorArea();
-        layout
-                .addView(SessionView.VIEW_ID, IPageLayout.LEFT, 0.33f,
-                        editorArea);
-        layout.addPlaceholder(MockViewPart.ID4, IPageLayout.RIGHT, .033f,
-                editorArea);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionRestoreTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionRestoreTest.java
deleted file mode 100644
index 104cd91..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionRestoreTest.java
+++ /dev/null
@@ -1,105 +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.ui.tests.api;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * SessionRestoreTest runs the second half of our session
- * presistance tests.
- * 
- */
-public class SessionRestoreTest extends UITestCase {
-
-    /** 
-     * Construct an instance.
-     */
-    public SessionRestoreTest(String arg) {
-        super(arg);
-    }
-
-    /**
-     * Generates a session state in the workbench.
-     */
-    public void testRestoreSession() throws Throwable {
-        IWorkbenchWindow[] windows;
-        IWorkbenchPage[] pages;
-
-        // Get windows.
-        windows = fWorkbench.getWorkbenchWindows();
-        assertEquals(windows.length, 3);
-
-        // First window contains empty perspective.
-        pages = windows[0].getPages();
-        assertEquals(pages.length, 1);
-        assertEquals(pages[0].getPerspective().getId(),
-                EmptyPerspective.PERSP_ID);
-
-        // Second window contains empty + session.
-        pages = windows[1].getPages();
-        assertEquals(pages.length, 2);
-        assertEquals(pages[0].getPerspective().getId(),
-                EmptyPerspective.PERSP_ID);
-        assertEquals(pages[1].getPerspective().getId(), SessionPerspective.ID);
-        testSessionView(pages[1]);
-
-        // Third window contains 2 sessions.
-        pages = windows[2].getPages();
-        assertEquals(pages.length, 2);
-        assertEquals(pages[0].getPerspective().getId(), SessionPerspective.ID);
-        assertEquals(pages[1].getPerspective().getId(), SessionPerspective.ID);
-        testSessionView(pages[0]);
-        testSessionView(pages[1]);
-
-        // Last page contains 3 editors.
-        IEditorReference[] editors = pages[1].getEditorReferences();
-        assertEquals(editors.length, 3);
-        testSessionEditor(editors[0].getEditor(true),
-                SessionCreateTest.TEST_FILE_1);
-        testSessionEditor(editors[1].getEditor(true),
-                SessionCreateTest.TEST_FILE_2);
-        testSessionEditor(editors[2].getEditor(true),
-                SessionCreateTest.TEST_FILE_3);
-    }
-
-    /**
-     * Tests the session view within a page.
-     */
-    private void testSessionView(IWorkbenchPage page) {
-        IViewPart view = page.findView(SessionView.VIEW_ID);
-        assertNotNull(view);
-        SessionView sessionView = (SessionView) view;
-        sessionView.testMementoState(this);
-    }
-
-    /**
-     * Tests the state of a session editor.
-     */
-    private void testSessionEditor(IEditorPart part, String fileName) {
-        IEditorSite site = part.getEditorSite();
-        assertEquals(site.getId(), MockEditorPart.ID1);
-        IEditorInput input = part.getEditorInput();
-        assertTrue(input instanceof IFileEditorInput);
-        IFile file = ((IFileEditorInput) input).getFile();
-        assertEquals(fileName, file.getName());
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionView.java
deleted file mode 100644
index 73fcbb6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/SessionView.java
+++ /dev/null
@@ -1,115 +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.ui.tests.api;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-
-/**
- * This view is used to test the creation and restoration of 
- * view state between sessions.
- */
-public class SessionView extends MockViewPart {
-
-    private IMemento memento;
-
-    public static String VIEW_ID = "org.eclipse.ui.tests.api.SessionView";
-
-    /**
-     * Constructor for SessionView
-     */
-    public SessionView() {
-        super();
-    }
-
-    /**
-     * @see IViewPart#init(IViewSite, IMemento)
-     */
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        super.init(site, memento);
-        this.memento = memento;
-    }
-
-    /**
-     * Create an IMemento.
-     */
-    public void saveState(IMemento memento) {
-        createMementoState(memento);
-    }
-
-    /**
-     * Creates an IMemento.
-     */
-    private void createMementoState(IMemento memento) {
-        // Create float, integer and string.
-        memento.putFloat("float", 0.50f);
-        memento.putInteger("integer", 50);
-        memento.putString("string", "50");
-
-        // Create a single child.
-        IMemento child = memento.createChild("single");
-        child.putInteger("id", 1);
-
-        // Create multiple children.
-        int count = 10;
-        for (int nX = 0; nX < count; nX++) {
-            child = memento.createChild("multiple");
-            child.putInteger("id", nX);
-        }
-        memento.putInteger("multiple.count", count);
-    }
-
-    /**
-     * Restore an IMemento.
-     */
-    public void testMementoState(TestCase testCase) {
-        // Verify that the memento was passed to us in
-        // constructor.
-        Assert.assertNotNull(memento);
-
-        // Read float.	
-        Float bigFloat = memento.getFloat("float");
-        Assert.assertNotNull(bigFloat);
-        Assert.assertEquals(bigFloat.floatValue(), 0.50f, 0.0001);
-
-        // Read int.	
-        Integer bigInt = memento.getInteger("integer");
-        Assert.assertEquals(bigInt, new Integer(50));
-
-        // Read string.
-        String str = memento.getString("string");
-        Assert.assertEquals(str, "50");
-
-        // Read single child.
-        IMemento child = memento.getChild("single");
-        Assert.assertNotNull(child);
-        bigInt = child.getInteger("id");
-        Assert.assertEquals(bigInt, new Integer(1));
-
-        // Read multiple children.
-        bigInt = memento.getInteger("multiple.count");
-        Assert.assertNotNull(bigInt);
-        int count = bigInt.intValue();
-        IMemento[] children = memento.getChildren("multiple");
-        Assert.assertEquals(count, children.length);
-        for (int nX = 0; nX < count; nX++) {
-            child = children[nX];
-            Assert.assertNotNull(child);
-            bigInt = child.getInteger("id");
-            Assert.assertEquals(bigInt, new Integer(nX));
-        }
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupClass.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupClass.java
deleted file mode 100644
index 9019a4f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupClass.java
+++ /dev/null
@@ -1,61 +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.tests.api;
-
-import junit.framework.Assert;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IStartup;
-
-public class StartupClass implements IStartup {
-
-    /**
-     * This boolean should only be true if the earlyStartup() method
-     * has been called.
-     */
-    private static boolean earlyStartupCalled = false;
-
-    /**
-     * This boolean should only be true if the earlyStartup() method
-     * has completed.
-     */
-    private static boolean earlyStartupCompleted = false;
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IStartup#earlyStartup()
-     */
-    public void earlyStartup() {
-        earlyStartupCalled = true;
-        Assert.assertNull("IStartup should run in non-UI thread", Display.getCurrent());
-        try {
-			Thread.sleep(3000);
-		} catch (InterruptedException e) {
-			// ignore
-		}
-		earlyStartupCompleted = true;
-    }
-
-    public static boolean getEarlyStartupCalled() {
-        return earlyStartupCalled;
-    }
-
-    public static boolean getEarlyStartupCompleted() {
-        return earlyStartupCompleted;
-    }
-
-    /**
-     * Reset the flags.
-     */
-    public static void reset() {
-        earlyStartupCalled = false;
-        earlyStartupCompleted = false;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupTest.java
deleted file mode 100644
index c67a8c1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StartupTest.java
+++ /dev/null
@@ -1,39 +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.tests.api;
-
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class StartupTest extends UITestCase {
-
-    /** 
-     * Construct an instance.
-     */
-    public StartupTest(String arg) {
-        super(arg);
-    }
-
-    public void testStartup() {
-        assertTrue("Startup - explicit", StartupClass.getEarlyStartupCalled());
-        assertTrue("Startup - implicit", TestPlugin.getEarlyStartupCalled());
-        assertTrue("Startup - completed before tests", StartupClass.getEarlyStartupCompleted());
-    }
-
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        // NOTE:  tearDown will run after each test.  Therefore, we
-        // only want one test in this suite (or the values set when
-        // this plugin started up will be lost).
-        StartupClass.reset();
-        TestPlugin.clearEarlyStartup();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StickyViewTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StickyViewTest.java
deleted file mode 100644
index 92fd691..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/StickyViewTest.java
+++ /dev/null
@@ -1,470 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api;
-
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.FastViewBar;
-import org.eclipse.ui.internal.FastViewBarContextMenuContribution;
-import org.eclipse.ui.internal.PartSite;
-import org.eclipse.ui.internal.ViewPane;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.IStickyViewDescriptor;
-
-/**
- * @since 3.0
- */
-public class StickyViewTest extends UITestCase {
-	
-	/**
-	 * Allow tests to run just in this class.
-	 * @return the TestSuite to run.
-	 */
-	public static TestSuite suite() {
-		return new TestSuite(StickyViewTest.class);
-	}
-	
-    private IWorkbenchWindow window;
-
-    private IWorkbenchPage page;
-
-    /**
-     * @param testName
-     */
-    public StickyViewTest(String testName) {
-        super(testName);
-    }
-
-    public void testStackPlacementRight() {
-        testStackPlacement("Right");
-    }
-
-    public void testStackPlacementLeft() {
-        testStackPlacement("Left");
-    }
-
-    public void testStackPlacementTop() {
-        testStackPlacement("Top");
-    }
-
-    public void testStackPlacementBottom() {
-        testStackPlacement("Bottom");
-    }
-
-    /**
-     * Tests to ensure that sticky views are opened in the same stack.
-     */
-    private void testStackPlacement(String location) {
-        try {
-            IViewPart part1 = page
-                    .showView("org.eclipse.ui.tests.api.StickyView" + location
-                            + "1");
-            assertNotNull(part1);
-            IViewPart part2 = page
-                    .showView("org.eclipse.ui.tests.api.StickyView" + location
-                            + "2");
-            assertNotNull(part2);
-            IViewPart[] stack = page.getViewStack(part1);
-
-            assertTrue(ViewUtils.findInStack(stack, part1));
-            assertTrue(ViewUtils.findInStack(stack, part2));
-
-        } catch (PartInitException e) {
-            fail(e.getMessage());
-        }
-
-    }
-
-    /**
-     * Tests to ensure that all views in a stack with a known sticky view are also sticky.
-     */
-    public void testStackContents() {
-        try {
-            IViewPart part1 = page
-                    .showView("org.eclipse.ui.tests.api.StickyViewRight1");
-            assertNotNull(part1);
-
-            IViewPart[] stack = page.getViewStack(part1);
-
-            for (int i = 0; i < stack.length; i++) {
-                assertTrue(stack[i].getTitle(), ViewUtils.isSticky(stack[i]));
-            }
-        } catch (PartInitException e) {
-            fail(e.getMessage());
-        }
-    }
-
-    /**
-     * Tests whether the moveable flag is being picked up and honoured
-     * from the XML.
-     */
-    public void testClosableFlag() {
-        //explicit closeable = true
-        testCloseable("org.eclipse.ui.tests.api.StickyViewRight1", true);
-        //explicit closeable = false
-        testCloseable("org.eclipse.ui.tests.api.StickyViewRight2", false);
-        //implicit closeable = true
-        testCloseable("org.eclipse.ui.tests.api.StickyViewLeft1", true);
-    }
-
-    public void testMoveableFlag() {
-        //explicit closeable = true
-        testMoveable("org.eclipse.ui.tests.api.StickyViewRight1", true);
-        //explicit closeable = false
-        testMoveable("org.eclipse.ui.tests.api.StickyViewRight2", false);
-        //implicit closeable = true
-        testMoveable("org.eclipse.ui.tests.api.StickyViewLeft1", true);
-    }
-
-    /** 
-     * Tests whether a sticky view with the given id is moveable or not.
-     * 
-     * @param id the id
-     * @param expectation the expected moveable state
-     */
-    private void testMoveable(String id, boolean expectation) {
-        try {
-            IViewPart part = page.showView(id);
-            assertNotNull(part);
-            assertTrue(ViewUtils.isSticky(part));
-
-            //tests to ensure that the XML was read correctly            
-            IStickyViewDescriptor[] descs = WorkbenchPlugin.getDefault()
-                    .getViewRegistry().getStickyViews();
-            for (int i = 0; i < descs.length; i++) {
-                if (descs[i].getId().equals(id)) {
-                    assertEquals(expectation, descs[i].isMoveable());
-                }
-            }
-
-            // tests to ensure that the property is being honoured by the perspective
-            assertEquals(expectation, ViewUtils.isMoveable(part));
-        } catch (PartInitException e) {
-            fail(e.getMessage());
-        }
-    }
-
-    /** 
-     * Tests whether a sticky view with the given id is closeable or not.
-     * 
-     * @param id the id
-     * @param expectation the expected closeable state
-     */
-    private void testCloseable(String id, boolean expectation) {
-        try {
-            IViewPart part = page.showView(id);
-            assertNotNull(part);
-            assertTrue(ViewUtils.isSticky(part));
-
-            //tests to ensure that the XML was read correctly            
-            IStickyViewDescriptor[] descs = WorkbenchPlugin.getDefault()
-                    .getViewRegistry().getStickyViews();
-            for (int i = 0; i < descs.length; i++) {
-                if (descs[i].getId().equals(id)) {
-                    assertEquals(expectation, descs[i].isCloseable());
-                }
-            }
-
-            // tests to ensure that the property is being honoured by the perspective
-            assertEquals(expectation, ViewUtils.isCloseable(part));
-        } catch (PartInitException e) {
-            fail(e.getMessage());
-        }
-    }
-
-    /**
-     * Sticky views should remain after perspective reset.
-     */
-    public void testPerspectiveReset() {
-        try {
-            page.showView("org.eclipse.ui.tests.api.StickyViewRight1");
-            page.resetPerspective();
-            assertNotNull(page
-                    .findView("org.eclipse.ui.tests.api.StickyViewRight1"));
-        } catch (PartInitException e) {
-            fail(e.getMessage());
-        }
-    }
-
-    /**
-     * Tests that a sticky view is opened in successive perspectives.
-     */
-    public void testPerspectiveOpen() {
-        try {
-            page.showView("org.eclipse.ui.tests.api.StickyViewRight1");
-            page.setPerspective(WorkbenchPlugin.getDefault()
-                    .getPerspectiveRegistry().findPerspectiveWithId(
-                            "org.eclipse.ui.tests.api.SessionPerspective"));
-            assertNotNull(page
-                    .findView("org.eclipse.ui.tests.api.StickyViewRight1"));
-        } catch (PartInitException e) {
-            fail(e.getMessage());
-        }
-    }
-    
-    /**
-     * Test that closing a stand-alone view remove the editor stack and
-     * doesn't throw an NPE.
-     * 
-     * @throws Throwable on error
-     * @since 3.2
-     */
-    public void testPerspectiveCloseStandaloneView() throws Throwable {
-		page.setPerspective(WorkbenchPlugin.getDefault()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						PerspectiveViewsBug120934.PERSP_ID));
-
-		try {
-			// find the stand-alone view
-			IViewReference standAloneRef = page
-					.findViewReference(IPageLayout.ID_OUTLINE);
-
-			page.hideView(standAloneRef);
-		} finally {
-			page.closePerspective(page.getPerspective(), false, false);
-		}
-    }
-    
-	/**
-	 * Test that a view marked as non-closable cannot be closed as a fast view.
-	 * 
-	 * @throws Throwable
-	 * @since 3.1.1
-	 */
-	public void testPerspectiveCloseFastView() throws Throwable {
-		page.setPerspective(WorkbenchPlugin.getDefault()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						PerspectiveViewsBug88345.PERSP_ID));
-
-		try {
-			// the non-closeable view
-			IViewReference stickyRef = page
-					.findViewReference(MockViewPart.IDMULT);
-			IViewPart stickyView = (IViewPart) stickyRef.getPart(true);
-			page.activate(stickyView);
-
-			IViewReference viewRef = page
-					.findViewReference(PerspectiveViewsBug88345.NORMAL_VIEW_ID);
-
-			WorkbenchPage wpage = (WorkbenchPage) page;
-			assertFalse(wpage.isFastView(stickyRef));
-
-			wpage.addFastView(stickyRef);
-			assertTrue(wpage.isFastView(stickyRef));
-
-			wpage.addFastView(viewRef);
-			assertTrue(wpage.isFastView(viewRef));
-
-			FastViewBar fastViewBar = ((WorkbenchWindow) page
-					.getWorkbenchWindow()).getFastViewBar();
-			FastViewBarContextMenuContribution menuContribution = fastViewBar
-					.testContextMenu();
-
-			// set the target of a normal view that is now a fast view
-			// close should be enabled
-			menuContribution.setTarget(viewRef);
-			checkEnabledMenuItem(wpage, menuContribution, "Close", true);
-
-			// set the target of our non-closeable fast view
-			// close should not be enabled
-			menuContribution.setTarget(stickyRef);
-			checkEnabledMenuItem(wpage, menuContribution, "Close", false);
-		} finally {
-			page.closePerspective(page.getPerspective(), false, false);
-		}
-	}
-	
-	/**
-	 * Test that a fast view marked as non-moveable cannot be docked.
-	 * 
-	 * @throws Throwable
-	 * @since 3.1.1
-	 */
-	public void testPerspectiveMoveFastView() throws Throwable {
-		page.setPerspective(WorkbenchPlugin.getDefault()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						PerspectiveViewsBug88345.PERSP_ID));
-
-		try {
-			// the non-moveable view
-			IViewReference stickyRef = page
-					.findViewReference(MockViewPart.IDMULT, "1");
-
-			IViewReference viewRef = page
-					.findViewReference(PerspectiveViewsBug88345.NORMAL_VIEW_ID);
-
-			WorkbenchPage wpage = (WorkbenchPage) page;
-			assertFalse(wpage.isFastView(viewRef));
-			assertTrue(wpage.isFastView(stickyRef));
-
-			wpage.addFastView(viewRef);
-			assertTrue(wpage.isFastView(viewRef));
-
-			FastViewBar fastViewBar = ((WorkbenchWindow) page
-					.getWorkbenchWindow()).getFastViewBar();
-			FastViewBarContextMenuContribution menuContribution = fastViewBar
-					.testContextMenu();
-
-			// set the target of a normal view that is now a fast view
-			// Fast View should be enabled
-			menuContribution.setTarget(viewRef);
-			checkEnabledMenuItem(wpage, menuContribution, "Fast View", true);
-
-			// set the target of our non-closeable fast view
-			// Fast View should not be enabled
-			menuContribution.setTarget(stickyRef);
-			checkEnabledMenuItem(wpage, menuContribution, "Fast View", false);
-		} finally {
-			page.closePerspective(page.getPerspective(), false, false);
-		}
-	}
-
-	/**
-	 * Find the supplied menu item and make sure it's enabled/disabled.
-	 * 
-	 * @param wpage the workbench page
-	 * @param menuContribution the fast bar menu contribution item
-	 * @param isEnabled should the item be enabled
-	 * @since 3.1.1
-	 */
-	private void checkEnabledMenuItem(WorkbenchPage wpage,
-			FastViewBarContextMenuContribution menuContribution,
-			String itemName,
-			boolean isEnabled) {
-		Menu m = new Menu(wpage.getWorkbenchWindow().getShell());
-		try {
-			menuContribution.fill(m, 0);
-			MenuItem[] items = m.getItems();
-			MenuItem checkItem = null;
-			for (int i = 0; i < items.length; i++) {
-				MenuItem item = items[i];
-				if (item.getText().indexOf(itemName) >= 0) {
-					checkItem = item;
-				}
-			}
-			assertNotNull(checkItem);
-			assertEquals(isEnabled, checkItem.isEnabled());
-		} finally {
-			menuContribution.dispose();
-			m.dispose();
-		}
-	}
-
-	/**
-	 * Test that the view toolbar visibility matches the presentation
-	 * visibility for a view.
-	 * 
-	 * @throws Throwable on an error
-	 * @since 3.2
-	 */
-	public void testPerspectiveViewToolBarVisible() throws Throwable {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean oldMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-		apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-		IPerspectiveDescriptor perspective = WorkbenchPlugin.getDefault()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						PerspectiveViewsBug88345.PERSP_ID);
-		page.setPerspective(perspective);
-
-		IEditorPart editor = null;
-		IEditorRegistry registry = window.getWorkbench().getEditorRegistry();
-		IPerspectiveDescriptor secondPerspective = WorkbenchPlugin.getDefault()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						SessionPerspective.ID);
-		try {
-			// a view with it's toolbar on the line below the tab
-			page.showView(PerspectiveViewsBug88345.PROP_SHEET_ID);
-			IViewReference viewRef = page
-					.findViewReference(PerspectiveViewsBug88345.PROP_SHEET_ID);
-
-			IProject proj = FileUtil.createProject("TBTest");
-			IFile test01 = FileUtil.createFile("test01.txt", proj);
-
-			// make sure the view is active
-			assertNotNull("The view must exist", viewRef.getPart(true));
-			page.activate(viewRef.getPart(true));
-			PartSite site = (PartSite) viewRef.getPart(true).getSite();
-			ViewPane pane = (ViewPane) site.getPane();
-
-			assertTrue(pane.isVisible());
-			assertNotNull("This view must have a toolbar", pane.getToolBar());
-			assertTrue(pane.getToolBar().isVisible());
-
-			// open the editor and zoom it.
-			editor = page.openEditor(new FileEditorInput(test01), registry
-					.getDefaultEditor(test01.getName()).getId());
-			assertNotNull("must have my editor", editor);
-
-			IWorkbenchPartReference ref = page.getReference(editor);
-			page.toggleZoom(ref);
-			assertFalse(pane.isVisible());
-			assertFalse(pane.getToolBar().isVisible());
-
-			// switch to another perspective, and then switch back.
-			page.setPerspective(secondPerspective);
-
-			assertFalse(pane.isVisible());
-			assertFalse(pane.getToolBar().isVisible());
-
-			page.setPerspective(perspective);
-			processEvents();
-
-			// both the view and the toolbar must be not visible
-			assertFalse(pane.isVisible());
-			assertFalse(pane.getToolBar().isVisible());
-
-		} finally {
-			if (editor != null) {
-				page.closeEditor(editor, false);
-			}
-			page.closePerspective(perspective, false, false);
-			page.closePerspective(secondPerspective, false, false);
-
-			// Restore the min/max state to it's correct value
-			apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, oldMinMaxState);
-		}
-	}
-
-    /*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-	 */
-    protected void doSetUp() throws Exception {
-        window = openTestWindow();
-        page = window.getActivePage();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimLayoutTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimLayoutTest.java
deleted file mode 100644
index bff6849..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimLayoutTest.java
+++ /dev/null
@@ -1,471 +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.tests.api;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.internal.WindowTrimProxy;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.layout.ITrimManager;
-import org.eclipse.ui.internal.layout.IWindowTrim;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test to exercise the trim layout save/restore/modify support.
- * 
- * @since 3.2
- */
-public class TrimLayoutTest extends UITestCase {
-
-	private static final String BUTTON_B_ID = "my.button.b";
-
-	public static final String[] TOP_TRIM_LIST = {
-			"org.eclipse.ui.internal.WorkbenchWindow.topBar",
-			TrimList.TRIM_LIST_ID };
-
-	public static final String[] TOP_BUTTON_TRIM = {
-			"org.eclipse.ui.internal.WorkbenchWindow.topBar", BUTTON_B_ID,
-			TrimList.TRIM_LIST_ID };
-
-	private boolean fHeapStatusPref;
-
-	/**
-	 * @param testName
-	 */
-	public TrimLayoutTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Will test that the trim area IDs are returned.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testGetIDs() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();
-		int[] ids = trimManager.getAreaIds();
-		assertEquals("number of trim areas", 4, ids.length);
-	}
-
-	/**
-	 * Test the basic trim layout of a workbench window.
-	 * 
-	 * @throws Throwable
-	 *             on error
-	 */
-	public void testTrimInformation() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();		
-		validateDefaultBottomLayout(trimManager);
-	}
-
-	/**
-	 * Swap the status line with the ProgressRegion, and check that the control
-	 * order has been updated.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMoveStatusLine() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();		
-		validateDefaultBottomLayout(trimManager);
-		
-		// Capture the ids of the 1st and 3rd elements
-		List trim = trimManager.getAreaTrim(SWT.BOTTOM);		
-		String id1 = ((IWindowTrim) trim.get(1)).getId();
-		String id3 = ((IWindowTrim) trim.get(3)).getId();
-
-		// Swap the first and third trim elements
-		swapPostition(trim, 1, 3);
-		trimManager.updateAreaTrim(ITrimManager.BOTTOM, trim, false);
-		window.getShell().layout(true, true);
-
-		// Check the swap
-		trim = trimManager.getAreaTrim(ITrimManager.BOTTOM);
-		assertTrue("element failed to swap", getIndexOf(trim, id1) == 3);
-		assertTrue("element failed to swap", getIndexOf(trim, id3) == 1);
-	}
-
-	/**
-	 * Swap the fast view bar and the progress region, and then check that the
-	 * controls have been updated.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMoveFastViewBar() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();				
-		validateDefaultBottomLayout(trimManager);
-		
-		// Capture the ids of the 1st and 3rd elements
-		List trim = trimManager.getAreaTrim(SWT.BOTTOM);		
-		String id0 = ((IWindowTrim) trim.get(0)).getId();
-		String id3 = ((IWindowTrim) trim.get(3)).getId();
-
-		// Swap the zero'th and third trim elements
-		swapPostition(trim, 0, 3);
-		trimManager.updateAreaTrim(ITrimManager.BOTTOM, trim, false);
-		window.getShell().layout(true, true);
-
-		// Check the swap
-		trim = trimManager.getAreaTrim(ITrimManager.BOTTOM);
-		assertTrue("element failed to swap", getIndexOf(trim, id0) == 3);
-		assertTrue("element failed to swap", getIndexOf(trim, id3) == 0);
-	}
-
-	/**
-	 * This test isn't really about removing trim, just testing that the if the
-	 * heap status trim is not in the trim list, it's removed from the bottom
-	 * trim area.
-	 * 
-	 * @throws Throwable
-	 *             on error
-	 */
-	public void testRemoveHeapStatus() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();		
-		validateDefaultBottomLayout(trimManager);
-
-		// Remove the Heap Status
-		List trim = trimManager.getAreaTrim(ITrimManager.BOTTOM);
-		int hsIndex = getIndexOf(trim, "org.eclipse.ui.internal.HeapStatus");
-		trim.remove(hsIndex);
-		trimManager.updateAreaTrim(ITrimManager.BOTTOM, trim, true);
-		window.getShell().layout(true, true);
-
-		// Make sure that its gone
-		trim = trimManager.getAreaTrim(ITrimManager.BOTTOM);
-		hsIndex = getIndexOf(trim, "org.eclipse.ui.internal.HeapStatus");
-		assertTrue("HeapStatus failed to remove", hsIndex == -1);
-	}
-
-	/**
-	 * Test the public API to add a piece of trim to the end of the trim area.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testAddExtraTrim() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();
-		assertTrue(
-				"The window should have it's top banner in place",
-				trimManager
-						.getTrim("org.eclipse.ui.internal.WorkbenchWindow.topBar") != null);
-		
-		TrimList trimList = new TrimList(window.getShell());
-		trimManager.addTrim(ITrimManager.TOP, trimList);
-		window.getShell().layout();
-
-		List trim = trimManager.getAreaTrim(ITrimManager.TOP);
-		validatePositions(TOP_TRIM_LIST, trim);
-	}
-
-	/**
-	 * Test the public API to add a piece of trim before an existing piece of
-	 * trim.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testPlaceExtraTrim() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();
-		TrimList trimList = new TrimList(window.getShell());
-		trimManager.addTrim(ITrimManager.TOP, trimList);
-
-		// WindowTrimProxy is an internal "quick and dirty" way
-		// to just provide a control to the trim ... not public API
-		Button b = new Button(window.getShell(), SWT.PUSH);
-		b.setText("B");
-		IWindowTrim buttonTrim = new WindowTrimProxy(b, BUTTON_B_ID,
-				"Button B", SWT.TOP | SWT.BOTTOM, false);
-		
-		// find an existing piece of trim to use as a reference
-		IWindowTrim trim = trimManager.getTrim(TrimList.TRIM_LIST_ID);
-		assertTrue(trimList == trim);
-		trimManager.addTrim(ITrimManager.TOP, buttonTrim, trim);
-		window.getShell().layout();
-
-		List topTrim = trimManager.getAreaTrim(ITrimManager.TOP);
-		validatePositions(TOP_BUTTON_TRIM, topTrim);
-	}
-
-	/**
-	 * Test that the save-state is recording trim layout.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testSaveWorkbenchWindow() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-
-		XMLMemento state = XMLMemento
-				.createWriteRoot(IWorkbenchConstants.TAG_WINDOW);
-		IStatus rc = window.saveState(state);
-		assertEquals(IStatus.OK, rc.getSeverity());
-
-		IMemento trim = state.getChild(IWorkbenchConstants.TAG_TRIM);
-		assertNotNull(trim);
-
-		int[] ids = window.getTrimManager().getAreaIds();
-		IMemento[] children = trim
-				.getChildren(IWorkbenchConstants.TAG_TRIM_AREA);
-		assertTrue("Should have <= " + ids.length + " trim areas",
-				children.length <= ids.length);
-		assertEquals("Our trim configuration starts with", 2, children.length);
-	}
-
-	/**
-	 * Test that the workbench window can restore trim state from an
-	 * <code>IMemento</code>.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRestoreStateWithChange() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();
-		validateDefaultBottomLayout(trimManager);
-		
-		int bottomTrimCount = trimManager.getAreaTrim(SWT.BOTTOM).size();
-		
-		// Create a memento and write the state to it...
-		XMLMemento state = XMLMemento
-				.createWriteRoot(IWorkbenchConstants.TAG_WINDOW);
-		IStatus rc = window.saveState(state);
-		
-		// Did the save work?
-		assertEquals(IStatus.OK, rc.getSeverity());
-		
-		// Does it have the right info?
-		IMemento trimMemento = state.getChild(IWorkbenchConstants.TAG_TRIM);
-		assertNotNull(trimMemento);
-
-		// Is the child content the same
-		IMemento[] children = trimMemento
-				.getChildren(IWorkbenchConstants.TAG_TRIM_AREA);
-		int childIdx = 0;
-		IMemento bottomTrim = null;
-		String bottomId = new Integer(SWT.BOTTOM).toString();
-
-		// Find the 'bottom' trim
-		for (; childIdx < children.length; childIdx++) {
-			if (children[childIdx].getID().equals(bottomId)) {
-				bottomTrim = children[childIdx];
-				break;
-			}
-		}
-		assertNotNull(bottomTrim);
-
-		// Make sure we have the right number of entries
-		children = bottomTrim.getChildren(IWorkbenchConstants.TAG_TRIM_ITEM);
-		assertEquals(bottomTrimCount, children.length);
-
-		// 'swap' the 0 and 3 trim using only the stored ids
-		String id0 = children[0].getID();
-		String id3 = children[3].getID();
-		children[0].putString(IMemento.TAG_ID, id3);
-		children[3].putString(IMemento.TAG_ID, id0);
-
-		// Restore the trim from the modified state
-		window.restoreState(state, window.getActivePage().getPerspective());
-		window.getShell().layout(true, true);
-
-		List trim = trimManager.getAreaTrim(ITrimManager.BOTTOM);
-		assertTrue("Restore has wrong layout", getIndexOf(trim, id0) == 3);
-		assertTrue("Restore has wrong layout", getIndexOf(trim, id3) == 0);
-	}
-
-	/**
-	 * Test that the workbench window can restore trim state from an
-	 * <code>IMemento</code> where a trim item has moved sides.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRestoreStateWithLocationChange() throws Throwable {
-		WorkbenchWindow window = openWorkbenchWindow();
-		ITrimManager trimManager = window.getTrimManager();
-		validateDefaultBottomLayout(trimManager);
-		
-		int bottomTrimCount = trimManager.getAreaTrim(SWT.BOTTOM).size();
-
-		XMLMemento state = XMLMemento
-				.createWriteRoot(IWorkbenchConstants.TAG_WINDOW);
-		IStatus rc = window.saveState(state);
-		assertEquals(IStatus.OK, rc.getSeverity());
-		IMemento trim = state.getChild(IWorkbenchConstants.TAG_TRIM);
-		assertNotNull(trim);
-
-		IMemento[] children = trim
-				.getChildren(IWorkbenchConstants.TAG_TRIM_AREA);
-		int childIdx = 0;
-		IMemento bottomTrim = null;
-		String bottomId = new Integer(SWT.BOTTOM).toString();
-		for (; childIdx < children.length; childIdx++) {
-			if (children[childIdx].getID().equals(bottomId)) {
-				bottomTrim = children[childIdx];
-				break;
-			}
-		}
-		assertNotNull(bottomTrim);
-
-		children = bottomTrim.getChildren(IWorkbenchConstants.TAG_TRIM_ITEM);
-		assertEquals(bottomTrimCount, children.length);
-		
-		// kinda fake to remove the fast view bar from the bottom
-		String id = children[0].getID();
-		children[0].putString(IMemento.TAG_ID, children[3].getID());
-
-		IMemento left = trim.createChild(IWorkbenchConstants.TAG_TRIM_AREA,
-				new Integer(SWT.LEFT).toString());
-		left.createChild(IWorkbenchConstants.TAG_TRIM_ITEM, id);
-		window.restoreState(state, window.getActivePage().getPerspective());
-		window.getShell().layout(true, true);
-
-		List windowTrim = trimManager.getAreaTrim(ITrimManager.BOTTOM);
-		assertEquals(bottomTrimCount-1, windowTrim.size());
-
-		windowTrim = trimManager.getAreaTrim(ITrimManager.LEFT);
-		assertEquals(1, windowTrim.size());
-	}
-
-	/**
-	 * These tests use 'internal' methods from the <code>WorkbenchWindow</code>.
-	 * This method ensures that the tests will fail if the <code>openTestWindow</code>
-	 * ever returns anything else
-	 * 
-	 * @return The type-safe WorkbenchWindow 
-	 */
-	private WorkbenchWindow openWorkbenchWindow() {
-		IWorkbenchWindow iw = openTestWindow();
-		assertTrue("Window must be a WorkbenchWindow", (iw instanceof WorkbenchWindow));
-		
-		return (WorkbenchWindow)iw;
-	}
-	
-	/**
-	 * Swap 2 IDs in the description.
-	 * 
-	 * @param descs
-	 *            the description array
-	 * @param pos1
-	 *            position 1, from 0
-	 * @param pos2
-	 *            position 2, from 0
-	 */
-	private void swapPostition(List trim, int pos1, int pos2) {
-		Object tmp = trim.get(pos1);
-		trim.set(pos1, trim.get(pos2));
-		trim.set(pos2, tmp);
-	}
-
-	/**
-	 * Get the position of the given trim element from the trim
-	 * 
-	 * @param trimIds The list of ids returned by the TrimManager
-	 * @param id The id of the trim to get the index of
-	 * @return The zero-based index or -1 if not found
-	 */
-	private int getIndexOf(List trimIds, String id) {
-		int index = 0;
-		for (Iterator iterator = trimIds.iterator(); iterator.hasNext();) {
-			IWindowTrim trim = (IWindowTrim) iterator.next();
-			if (id.equals(trim.getId()))
-				return index;
-			index++;
-		}
-		
-		return -1;
-	}
-	
-	/**
-	 * Ensure that all the base trim is there and has
-	 * the correct -relative- positions
-	 * 
-	 * @param descs The ordered list of trim descriptors
-	 * for the bottom trim area
-	 */
-	private void validateDefaultBottomLayout(ITrimManager trimManager) {
-		List descs = trimManager.getAreaTrim(SWT.BOTTOM);
-
-		// Must have at least 4 elements
-		assertTrue("Too few trim elements", descs.size() >= 4);
-
-		// Ensure that all the base trim is there and has
-		// the correct -relative- positions
-		int fvbIndex = getIndexOf(descs, "org.eclise.ui.internal.FastViewBar");
-		assertTrue("Fast View Bar not found", fvbIndex != -1);
-		int slIndex = getIndexOf(descs, "org.eclipse.jface.action.StatusLineManager");
-		assertTrue("StatusLine not found", slIndex != -1);
-		int hsIndex = getIndexOf(descs, "org.eclipse.ui.internal.HeapStatus");
-		assertTrue("Heap Status not found", hsIndex != -1);
-		int prIndex = getIndexOf(descs, "org.eclipse.ui.internal.progress.ProgressRegion");
-		assertTrue("Progress Region not found", prIndex != -1);
-		
-		assertTrue("Fast View out of position", fvbIndex < slIndex);
-		assertTrue("Status Line out of position", slIndex < hsIndex);
-		assertTrue("Heap Status out of position", hsIndex < prIndex);
-	}
-	
-	/**
-	 * Match the returned set of IDs exactly with expected IDs.
-	 * 
-	 * @param expectedIDs
-	 *            the string IDs in order.
-	 * @param retrievedIDs
-	 *            the current IDs in order.
-	 */
-	private void validatePositions(String[] expectedIDs, List retrievedIDs) {
-		assertEquals("Number of trim items don't match", expectedIDs.length,
-				retrievedIDs.size());
-
-		for (int i = 0; i < expectedIDs.length; ++i) {
-			assertEquals("Failed for postition " + i, expectedIDs[i],
-					((IWindowTrim) retrievedIDs.get(i)).getId());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		
-		// Ensure that the HeapStatus is showing
-		fHeapStatusPref = PrefUtil.getAPIPreferenceStore().getBoolean(
-				IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR);
-		PrefUtil.getAPIPreferenceStore().setValue(
-				IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR, true);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		PrefUtil.getAPIPreferenceStore().setValue(
-				IWorkbenchPreferenceConstants.SHOW_MEMORY_MONITOR,
-				fHeapStatusPref);
-		super.doTearDown();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimList.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimList.java
deleted file mode 100644
index 0edb331..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/TrimList.java
+++ /dev/null
@@ -1,136 +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.tests.api;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.layout.IWindowTrim;
-
-/**
- * TrimList is a control that we'd like to contribute to the
- * window trim, plus the supporting trim interface.  It generates a
- * static list and doesn't remember anything, but a real trim
- * contribution could be any control+model.
- * @since 3.2
- */
-public class TrimList implements IWindowTrim {
-	/**
-	 * Our trim ID ... must be unique, as if we contributed this
-	 * trim from an extension.
-	 */
-	public static final String TRIM_LIST_ID = "org.eclipse.ui.tests.api.TrimList";
-
-	private static final String[] INIT_LIST = { "Offline", "Online", "Proxied" };
-
-	private Combo fCombo;
-
-	/**
-	 * The trim objects must all have the same parent.  After 3.2M4 
-	 * the IWindowTrim interface will be updated so that the workbench
-	 * window can give each piece of trim the correct parent.
-	 * @param shell the parent of this trim
-	 */
-	public TrimList(Shell shell) {
-		fCombo = new Combo(shell, SWT.DROP_DOWN|SWT.READ_ONLY);
-		for (int i = 0; i < INIT_LIST.length; i++) {
-			String value = INIT_LIST[i];
-			fCombo.add(value);
-		}
-		fCombo.select(0);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#getControl()
-	 */
-	public Control getControl() {
-		return fCombo;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#getValidSides()
-	 */
-	public int getValidSides() {
-		return SWT.TOP | SWT.BOTTOM;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#dock(int)
-	 */
-	public void dock(int dropSide) {
-		// nothing to do, we don't have to re-orient our control
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#getId()
-	 */
-	public String getId() {
-		return TRIM_LIST_ID;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#getDisplayName()
-	 */
-	public String getDisplayName() {
-		// Should be the NLS string name, but I'll cheat for now
-		return "Trim List";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#isCloseable()
-	 */
-	public boolean isCloseable() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWindowTrim#handleClose()
-	 */
-	public void handleClose() {
-		// nothing to do here.
-	}
-
-	/* (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/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UIJobTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UIJobTest.java
deleted file mode 100644
index 1665f5d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UIJobTest.java
+++ /dev/null
@@ -1,197 +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.tests.api;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.1
- */
-public class UIJobTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    /**
-     * Constructor for IEditorPartTest
-     */
-    public UIJobTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    private volatile boolean uiJobFinished = false;
-    private volatile boolean backgroundThreadStarted = false;
-    private volatile boolean backgroundThreadInterrupted = false;
-    private volatile boolean backgroundThreadFinishedBeforeUIJob = false;
-    private volatile boolean backgroundThreadFinished = false;
-    private volatile boolean uiJobFinishedBeforeBackgroundThread = false;
-    
-    /**
-     * Test to ensure that calling join() on a UIJob will block the calling
-     * thread until the job has finished. 
-     * 
-     * @throws Exception
-     * @since 3.1
-     */
-    public void testJoin() throws Exception {
-
-        uiJobFinished = false;
-        backgroundThreadStarted = false;
-        backgroundThreadFinished = false;
-        backgroundThreadInterrupted = false;
-        uiJobFinishedBeforeBackgroundThread = false;
-
-        final UIJob testJob = new UIJob("blah blah blah") {
-	        /* (non-Javadoc)
-	         * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
-	         */
-	        public IStatus runInUIThread(IProgressMonitor monitor) {
-	            backgroundThreadFinishedBeforeUIJob = backgroundThreadFinished;
-	            uiJobFinished = true;
-	            
-	            return Status.OK_STATUS;
-	        }
-        };
-        
-        testJob.setPriority(Job.INTERACTIVE);
-        
-        // Background thread that will try to schedule and join a UIJob. If all goes well
-        // it should lock up since we're intentionally blocking the UI thread, preventing
-        // it from running.
-        Thread testThread = new Thread() {
-        /* (non-Javadoc)
-         * @see java.lang.Thread#run()
-         */
-        public void run() {
-            testJob.schedule();
-            
-            backgroundThreadStarted = true;
-            
-            try {
-                testJob.join();
-                uiJobFinishedBeforeBackgroundThread = uiJobFinished;
-                backgroundThreadFinished = true;
-            } catch (InterruptedException e) {
-                backgroundThreadInterrupted = true;
-            }
-        }
-        };
-        
-        // This job does nothing. We use a bogus low-priority job instead of a simple
-        // sleep(xxxx) in order to ensure that we don't wake up before the test job was
-        // scheduled.
-        Job delayJob = new Job("blah") {
-            protected IStatus run(IProgressMonitor monitor) {
-                
-                return Status.OK_STATUS;
-            }
-            
-        };
-        delayJob.setPriority(Job.LONG);
-        
-        try {
-	        // Schedule the test thread
-	        testThread.start();
-	        
-	        // Measure current time
-	        long currentTime = System.currentTimeMillis();
-	                
-	        // We need to create a situation in which the run() method of the UIJob will have
-	        // been called and exited, but the runInUIThread() method will not have been called.
-	        // We then put everything else to sleep, making a high probability that the background
-	        // thread would wake up if there was nothing blocking it. Note: it is possible that the 
-	        // test would still pass if there was a problem and the background thread failed to
-	        // wake up for reasons other than its join()... but it creates a high probability of 
-	        // things failing if something goes wrong.
-	        //
-	        // The point of this join() is to block the UI thread, making it impossible to 
-	        // run *syncExecs. Joining a low priority job means that the UIJob should get
-	        // scheduled first (meaning its run(...) method will be called). The fact that we're 
-	        // in the UI thread right now means that the UIJob's runInUIThread method shouldn't 
-	        // be called.
-	        
-	        // Block the UI thread until the UIJob's run() method is called.
-	        delayJob.schedule(200);
-	        delayJob.join();
-	        
-	        long finalTime = System.currentTimeMillis();
-	        
-	        // Ensure that we slept for at least 200ms
-	        Assert.assertTrue("We tried to sleep the UI thread, but it woke up too early. ",
-	                finalTime - currentTime >= 200);
-	        
-	        Assert.assertTrue("Background thread did not start, so there was no possibility "
-	                + "of testing whether its behavior was correct. This is not a test failure. "
-	                + "It means we were unable to run the test. ",
-	                backgroundThreadStarted);
-	        
-	        Assert.assertFalse("A UI job somehow ran to completion while the UI thread was blocked", uiJobFinished);
-	        Assert.assertFalse("Background job managed to run to completion, even though it joined a UI thread that still hasn't finished",
-	                backgroundThreadFinished);
-	        Assert.assertFalse("Background thread was interrupted", backgroundThreadInterrupted);
-	        
-	        // Now run the event loop. Give the asyncExec a chance to run.
-			//Use the display provided by the shell if possible
-	        Display display = fWindow.getShell().getDisplay();
-	        
-	        // Wait until both threads have run to completion. If we wait for more than 3s, something
-	        // probably deadlocked.
-	        while (!(uiJobFinished && backgroundThreadFinished) ) {    
-	            // If we've waited more than 3s for the test job to run, then something is wrong.
-	            if (finalTime - System.currentTimeMillis() > 3000) {
-	                break;
-	            }
-	            if (!display.readAndDispatch()) {
-	                display.sleep();
-	            }
-	        }
-	        
-	        // Now that the event queue is empty, check that our final state is okay.
-	        Assert.assertTrue("Background thread did not finish (possible deadlock)", backgroundThreadFinished);
-	        Assert.assertTrue("Test job did not finish (possible deadlock)", uiJobFinished);
-	        Assert.assertFalse("Background thread was interrupted ", backgroundThreadInterrupted);
-	        Assert.assertFalse("Background thread finished before the UIJob, even though the background thread was supposed to be waiting for the UIJob", 
-	                backgroundThreadFinishedBeforeUIJob);
-	        
-	        // This is the whole point of the test: ensure that the background job actually waited for the UI job
-	        // to run to completion.
-	        Assert.assertFalse("Background thread finished before the UIJob, even though the background thread was supposed to be waiting for the UIJob", 
-	                backgroundThreadFinishedBeforeUIJob);
-	        
-	        // Paranoia check: this is really the same test as above, but it confirms that both
-	        // threads agreed on the answer.
-	        Assert.assertTrue("Background thread finished before the UIJob, even though the background thread was supposed to be waiting for the UIJob", 
-	                uiJobFinishedBeforeBackgroundThread);
-        } finally {
-            
-        }
-        
-    }
-    
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableMockViewPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableMockViewPart.java
deleted file mode 100644
index 4e901bb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableMockViewPart.java
+++ /dev/null
@@ -1,89 +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.tests.api;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.ISaveablePart2;
-
-/**
- * Mock view part that implements ISaveablePart.
- * Used for testing hideView and other view lifecycle on saveable views.
- * 
- * @since 3.0.1
- */
-public class UserSaveableMockViewPart extends MockViewPart implements
-		ISaveablePart2 {
-	
-	public static String ID = "org.eclipse.ui.tests.api.UserSaveableMockViewPart";
-
-	private boolean isDirty = false;
-
-	private boolean saveAsAllowed = false;
-
-	private boolean saveNeeded = true;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		callTrace.add("doSave" );
-		isDirty = false;
-		saveNeeded = false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		callTrace.add("doSaveAs" );
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isDirty()
-	 */
-	public boolean isDirty() {
-		callTrace.add("isDirty" );
-		return isDirty;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		callTrace.add("isSaveAsAllowed" );
-		return saveAsAllowed ;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.ISaveablePart#isSaveOnCloseNeeded()
-	 */
-	public boolean isSaveOnCloseNeeded() {
-		callTrace.add("isSaveOnCloseNeeded" );
-		return saveNeeded;
-	}
-
-	public void setDirty(boolean d) {
-		this.isDirty = d;
-        firePropertyChange(PROP_DIRTY);
-	}
-    
-    public void setSaveAsAllowed(boolean isSaveAsAllowed) {
-        this.saveAsAllowed = isSaveAsAllowed;
-    }
-    
-    public void setSaveNeeded(boolean isSaveOnCloseNeeded) {
-        this.saveNeeded = isSaveOnCloseNeeded;
-    }
-
-	public int promptToSaveOnClose() {
-		return ISaveablePart2.DEFAULT;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableSharedViewPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableSharedViewPart.java
deleted file mode 100644
index e8a0d94..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/UserSaveableSharedViewPart.java
+++ /dev/null
@@ -1,90 +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.tests.api;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.ISaveablePart;
-
-/**
- * Mock view part that implements ISaveablePart. Used for testing hideView and
- * other view lifecycle on saveable views.
- * 
- * @since 3.0.1
- */
-public class UserSaveableSharedViewPart extends MockViewPart implements
-		ISaveablePart {
-	/**
-	 * The shared ID.
-	 */
-	public static String ID = "org.eclipse.ui.tests.api.UserSaveableSharedViewPart";
-
-	public static class SharedModel {
-		public boolean isDirty = true;
-	}
-	
-	private SharedModel fSharedModel = new SharedModel();
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		callTrace.add("doSave");
-		fSharedModel.isDirty = false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		callTrace.add("doSaveAs");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isDirty()
-	 */
-	public boolean isDirty() {
-		callTrace.add("isDirty");
-		return fSharedModel.isDirty;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveOnCloseNeeded()
-	 */
-	public boolean isSaveOnCloseNeeded() {
-		callTrace.add("isSaveOnCloseNeeded");
-		return fSharedModel.isDirty;
-	}
-	
-	public void setSharedModel(SharedModel s) {
-		fSharedModel = s;
-	}
-	
-	public SharedModel getSharedModel() {
-		return fSharedModel;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewPerspective.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewPerspective.java
deleted file mode 100644
index 09b7753..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewPerspective.java
+++ /dev/null
@@ -1,38 +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.tests.api;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * Supplies an arrangement of views to test various forms of view activation.
- * 
- * @since 3.0
- */
-public class ViewPerspective implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        String editorArea = layout.getEditorArea();
-        IFolderLayout folder1 = layout.createFolder("folder1",
-                IPageLayout.LEFT, .25f, editorArea);
-        folder1.addView(MockViewPart.ID);
-        folder1.addPlaceholder(MockViewPart.ID2);
-        layout.addView(MockViewPart.ID3, IPageLayout.RIGHT, .75f, editorArea);
-        layout.addPlaceholder(MockViewPart.ID4, IPageLayout.BOTTOM, .75f,
-                editorArea);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewUtils.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewUtils.java
deleted file mode 100644
index 95ffa11..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/ViewUtils.java
+++ /dev/null
@@ -1,68 +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.tests.api;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.internal.ViewSite;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.views.IStickyViewDescriptor;
-
-/**
- * Utility class that will test various view properties.
- * 
- * @since 3.0
- */
-public final class ViewUtils {
-
-    public static boolean findInStack(IViewPart[] stack, IViewPart target) {
-        for (int i = 0; i < stack.length; i++) {
-            if (stack[i] == target)
-                return true;
-        }
-        return false;
-    }
-
-    public static boolean isCloseable(IViewPart part) {
-        ViewSite viewSite = (ViewSite) part.getSite();
-        String id = viewSite.getId();
-        IViewReference ref = viewSite.getPage().findViewReference(id);
-        return ((WorkbenchPage) viewSite.getPage()).getActivePerspective()
-                .isCloseable(ref);
-    }
-
-    public static boolean isMoveable(IViewPart part) {
-        ViewSite viewSite = (ViewSite) part.getSite();
-        String id = viewSite.getId();
-        IViewReference ref = viewSite.getPage().findViewReference(id);
-        return ((WorkbenchPage) viewSite.getPage()).getActivePerspective()
-                .isMoveable(ref);
-    }
-
-    public static boolean isSticky(IViewPart part) {
-        String id = part.getSite().getId();
-        IStickyViewDescriptor[] descs = WorkbenchPlugin.getDefault()
-                .getViewRegistry().getStickyViews();
-        for (int i = 0; i < descs.length; i++) {
-            if (descs[i].getId().equals(id))
-                return true;
-        }
-        return false;
-    }
-
-    /**
-     * 
-     */
-    protected ViewUtils() {
-        //no-op
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/XMLMementoTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/XMLMementoTest.java
deleted file mode 100644
index 264fec4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/XMLMementoTest.java
+++ /dev/null
@@ -1,549 +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.tests.api;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-
-/**
- * Testing XMLMemento (see bug 93262). Emphasis is on ensuring that the 3.1
- * version behaves just like the 3.0.1 version.
- * 
- * @since 3.1
- * 
- */
-public class XMLMementoTest extends TestCase {
-
-	private static final String[] TEST_STRINGS = { "value",
-			" value with spaces ", "value.with.many.dots",
-			"value_with_underscores", "value<with<lessthan",
-			"value>with>greaterthan", "value&with&ampersand",
-			"value\"with\"quote", "value#with#hash", "",
-			/*
-			 * the following cases are for bug 93720
-			 */
-			"\nvalue\nwith\nnewlines\n", "\tvalue\twith\ttab\t",
-			"\rvalue\rwith\rreturn\r", };
-
-	/*
-	 * Class under test for XMLMemento createReadRoot(Reader)
-	 */
-	public void testCreateReadRootReaderExceptionCases() {
-		try {
-			XMLMemento.createReadRoot(new StringReader("Invalid format"));
-			fail("should throw WorkbenchException because of invalid format");
-		} catch (WorkbenchException e) {
-			// expected
-		}
-		try {
-			XMLMemento.createReadRoot(new StringReader(
-					"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"));
-			fail("should throw WorkbenchException because there is no element");
-		} catch (WorkbenchException e) {
-			// expected
-		}
-		try {
-			XMLMemento.createReadRoot(new Reader() {
-
-				public void close() throws IOException {
-					throw new IOException();
-				}
-
-				public int read(char[] arg0, int arg1, int arg2)
-						throws IOException {
-					throw new IOException();
-				}
-			});
-			fail("should throw WorkbenchException because of IOException");
-		} catch (WorkbenchException e) {
-			// expected
-		}
-	}
-
-	public void testCreateReadRootReader() throws WorkbenchException {
-		XMLMemento memento = XMLMemento
-				.createReadRoot(new StringReader(
-						"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><simple>some text data</simple>"));
-		assertEquals("some text data", memento.getTextData());
-	}
-
-	/*
-	 * Class under test for XMLMemento createReadRoot(Reader, String)
-	 */
-	public void testCreateReadRootReaderString() {
-		// TODO - I don't know how to test this. The method is not called by
-		// anyone as of 2005/04/05.
-	}
-
-	public void testCreateWriteRoot() {
-		String[] rootTypes = { "type", "type.with.dots",
-				"type_with_underscores" };
-		for (int i = 0; i < rootTypes.length; i++) {
-			String type = rootTypes[i];
-			XMLMemento memento = XMLMemento.createWriteRoot(type);
-			assertNotNull(memento);
-		}
-	}
-
-	public void testSpacesInRootAreIllegal() {
-		try {
-			XMLMemento.createWriteRoot("with space");
-			fail("should fail");
-		} catch (Exception e) {
-			// expected
-		}
-	}
-
-	public void testSpacesInKeysAreIllegal() {
-		XMLMemento memento = XMLMemento.createWriteRoot("foo");
-		try {
-			memento.createChild("with space", "bar");
-			fail("should fail");
-		} catch (Exception e) {
-			// expected
-		}
-		try {
-			memento.putString("with space", "bar");
-			fail("should fail");
-		} catch (Exception e) {
-			// expected
-		}
-	}
-
-	public void testCopyChild() throws WorkbenchException, IOException {
-
-		testPutAndGet(new MementoChecker() {
-
-			public void prepareAndCheckBeforeSerialization(
-					XMLMemento mementoToSerialize) {
-				IMemento child = mementoToSerialize.createChild("c", "i");
-				fillMemento(child);
-				IMemento copiedChild = mementoToSerialize.copyChild(child);
-				assertEquals("i", copiedChild.getID());
-				checkMemento(copiedChild, true);
-			}
-
-			public void checkAfterDeserialization(XMLMemento deserializedMemento) {
-				IMemento child = deserializedMemento.getChild("c");
-				checkMemento(child, true);
-				IMemento[] children = deserializedMemento.getChildren("c");
-				assertEquals(2, children.length);
-				assertEquals("i", children[0].getID());
-				checkMemento(children[0], true);
-				assertEquals("i", children[1].getID());
-				checkMemento(children[1], true);
-			}
-		});
-	}
-
-	/**
-	 * Helper method to fill a memento to be checked later by checkMemento.
-	 * 
-	 * @param memento
-	 */
-	private void fillMemento(IMemento memento) {
-		memento.putFloat("floatKey", 0.4f);
-		memento.putInteger("integerKey", 324765);
-		memento.putString("stringKey", "a string");
-		memento.putTextData("some text data");
-		memento.createChild("child1");
-		memento.createChild("child2", "child2id1");
-		memento.createChild("child2", "child2id2");
-	}
-
-	/**
-	 * Helper method to check if the values set by fillMemento are still there.
-	 * The boolean parameter is needed because in some cases
-	 * (IMememento#putMemento), the text data gets lost.
-	 * 
-	 * @param memento
-	 * @param checkForTextData
-	 */
-	protected void checkMemento(IMemento memento, boolean checkForTextData) {
-		assertEquals(0.4f, memento.getFloat("floatKey").floatValue(), 0.0f);
-		assertEquals(324765, memento.getInteger("integerKey").intValue());
-		assertEquals("a string", memento.getString("stringKey"));
-		if (checkForTextData) {
-			assertEquals("some text data", memento.getTextData());
-		}
-		IMemento child1 = memento.getChild("child1");
-		assertNotNull(child1);
-		IMemento child2 = memento.getChild("child2");
-		assertNotNull(child2);
-		assertEquals("child2id1", child2.getID());
-		IMemento[] children = memento.getChildren("child2");
-		assertNotNull(children);
-		assertEquals(2, children.length);
-		assertEquals("child2id1", children[0].getID());
-		assertEquals("child2id2", children[1].getID());
-	}
-
-	public void testCreateAndGetChild() throws WorkbenchException, IOException {
-		final String type1 = "type1";
-		final String type2 = "type2";
-		final String id = "id";
-
-		testPutAndGet(new MementoChecker() {
-
-			public void prepareAndCheckBeforeSerialization(
-					XMLMemento mementoToSerialize) {
-				// check that nothing is there yet
-				assertEquals(null, mementoToSerialize.getChild(type1));
-				assertEquals(null, mementoToSerialize.getChild(type2));
-
-				// creation without ID
-				IMemento child1 = mementoToSerialize.createChild(type1);
-				assertNotNull(child1);
-				assertNotNull(mementoToSerialize.getChild(type1));
-
-				// creation with ID
-				IMemento child2 = mementoToSerialize.createChild(type2, id);
-				assertNotNull(child2);
-				assertNotNull(mementoToSerialize.getChild(type2));
-				assertEquals(id, child2.getID());
-			}
-
-			public void checkAfterDeserialization(XMLMemento deserializedMemento) {
-				IMemento child1 = deserializedMemento.getChild(type1);
-				assertNotNull(child1);
-				IMemento child2 = deserializedMemento.getChild(type2);
-				assertNotNull(child2);
-				assertEquals(id, child2.getID());
-			}
-		});
-	}
-
-	public void testGetChildren() throws WorkbenchException, IOException {
-		final String type = "type";
-		final String id1 = "id";
-		final String id2 = "id2";
-
-		testPutAndGet(new MementoChecker() {
-
-			public void prepareAndCheckBeforeSerialization(
-					XMLMemento mementoToSerialize) {
-				// check that nothing is there yet
-				assertEquals(null, mementoToSerialize.getChild(type));
-
-				IMemento child1 = mementoToSerialize.createChild(type, id1);
-				assertNotNull(child1);
-				assertNotNull(mementoToSerialize.getChild(type));
-				assertEquals(id1, child1.getID());
-
-				// second child with the same type
-				IMemento child2 = mementoToSerialize.createChild(type, id2);
-				assertNotNull(child2);
-				assertEquals(2, mementoToSerialize.getChildren(type).length);
-				assertEquals(id2, child2.getID());
-			}
-
-			public void checkAfterDeserialization(XMLMemento deserializedMemento) {
-				IMemento[] children = deserializedMemento.getChildren(type);
-				assertNotNull(children);
-				assertEquals(2, children.length);
-
-				// this checks that the order is maintained.
-				// the spec does not promise this, but clients
-				// may rely on the current implementation behaviour.
-				assertEquals(id1, children[0].getID());
-				assertEquals(id2, children[1].getID());
-			}
-		});
-	}
-
-	public void testGetID() throws WorkbenchException, IOException {
-		final String type = "type";
-
-		String[] ids = { "id", "", "id.with.many.dots", "id_with_underscores",
-				"id<with<lessthan", "id>with>greaterthan", "id&with&ampersand",
-				"id\"with\"quote", "id#with#hash" };
-
-		for (int i = 0; i < ids.length; i++) {
-			final String id = ids[i];
-
-			testPutAndGet(new MementoChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						XMLMemento mementoToSerialize) {
-					assertEquals(null, mementoToSerialize.getChild(type));
-					IMemento child = mementoToSerialize.createChild(type, id);
-					assertEquals(id, child.getID());
-				}
-
-				public void checkAfterDeserialization(
-						XMLMemento deserializedMemento) {
-					IMemento child = deserializedMemento.getChild(type);
-					assertNotNull(child);
-					assertEquals(id, child.getID());
-				}
-			});
-		}
-	}
-
-	public void testPutAndGetFloat() throws WorkbenchException, IOException {
-		final String key = "key";
-
-		final Float[] values = new Float[] { new Float(-3.1415), new Float(1),
-				new Float(0), new Float(4554.45235),
-				new Float(Float.MAX_VALUE), new Float(Float.MIN_VALUE),
-				new Float(Float.NaN), new Float(Float.POSITIVE_INFINITY),
-				new Float(Float.NEGATIVE_INFINITY) };
-
-		for (int i = 0; i < values.length; i++) {
-			final Float value = values[i];
-			testPutAndGet(new MementoChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						XMLMemento mementoToSerialize) {
-					assertEquals(null, mementoToSerialize.getFloat(key));
-					mementoToSerialize.putFloat(key, value.floatValue());
-					assertEquals(value, mementoToSerialize.getFloat(key));
-				}
-
-				public void checkAfterDeserialization(
-						XMLMemento deserializedMemento) {
-					assertEquals(value, deserializedMemento.getFloat(key));
-				}
-			});
-		}
-	}
-
-	public void testPutAndGetInteger() throws WorkbenchException, IOException {
-		final String key = "key";
-
-		Integer[] values = new Integer[] { new Integer(36254), new Integer(0),
-				new Integer(1), new Integer(-36254),
-				new Integer(Integer.MAX_VALUE), new Integer(Integer.MIN_VALUE) };
-
-		for (int i = 0; i < values.length; i++) {
-			final Integer value = values[i];
-
-			testPutAndGet(new MementoChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						XMLMemento mementoToSerialize) {
-					assertEquals(null, mementoToSerialize.getInteger(key));
-					mementoToSerialize.putInteger(key, value.intValue());
-					assertEquals(value, mementoToSerialize.getInteger(key));
-				}
-
-				public void checkAfterDeserialization(
-						XMLMemento deserializedMemento) {
-					assertEquals(value, deserializedMemento.getInteger(key));
-				}
-			});
-		}
-
-	}
-
-	public void testPutMemento() throws WorkbenchException, IOException {
-		testPutAndGet(new MementoChecker() {
-
-			public void prepareAndCheckBeforeSerialization(
-					XMLMemento mementoToSerialize) {
-				mementoToSerialize.putTextData("unchanged text data");
-				mementoToSerialize.putString("neverlost", "retained value");
-
-				IMemento aMemento = XMLMemento.createWriteRoot("foo");
-				fillMemento(aMemento);
-
-				// note that this does not copy the text data:
-				mementoToSerialize.putMemento(aMemento);
-
-				// do not check for text data:
-				checkMemento(mementoToSerialize, false);
-
-				assertEquals("unchanged text data", mementoToSerialize
-						.getTextData());
-				assertEquals("retained value", mementoToSerialize
-						.getString("neverlost"));
-			}
-
-			public void checkAfterDeserialization(XMLMemento deserializedMemento) {
-				// do not check for text data:
-				checkMemento(deserializedMemento, false);
-
-				assertEquals("unchanged text data", deserializedMemento
-						.getTextData());
-				assertEquals("retained value", deserializedMemento
-						.getString("neverlost"));
-			}
-		});
-	}
-
-	public void testPutAndGetString() throws IOException, WorkbenchException {
-		final String key = "key";
-
-		// values with newline, tab, or return characters lead to bug 93720.
-		String[] values = TEST_STRINGS;
-
-		for (int i = 0; i < values.length; i++) {
-			final String value = values[i];
-
-			testPutAndGet(new MementoChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						XMLMemento mementoToSerialize) {
-					assertEquals(null, mementoToSerialize.getString(key));
-					String helper = value;
-					mementoToSerialize.putString(key, value);
-					assertEquals(value, mementoToSerialize.getString(key));
-					helper.toString();
-				}
-
-				public void checkAfterDeserialization(
-						XMLMemento deserializedMemento) {
-					assertEquals(value, deserializedMemento.getString(key));
-				}
-			});
-		}
-	}
-
-	public void testPutAndGetTextData() throws WorkbenchException, IOException {
-		String[] values = TEST_STRINGS;
-
-		for (int i = 0; i < values.length; i++) {
-			final String data = values[i];
-			testPutAndGet(new MementoChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						XMLMemento mementoToSerialize) {
-					assertEquals(null, mementoToSerialize.getTextData());
-					mementoToSerialize.putTextData(data);
-					assertEquals(data, mementoToSerialize.getTextData());
-				}
-
-				public void checkAfterDeserialization(
-						XMLMemento deserializedMemento) {
-					if (data.equals("")) {
-						// this comes back as null...
-						assertEquals(null, deserializedMemento.getTextData());
-					} else {
-						assertEquals(data, deserializedMemento.getTextData());
-					}
-				}
-			});
-		}
-	}
-
-	public void testLegalKeys() throws WorkbenchException, IOException {
-		String[] legalKeys = { "value", "value.with.many.dots",
-				"value_with_underscores" };
-
-		for (int i = 0; i < legalKeys.length; i++) {
-			final String key = legalKeys[i];
-			testPutAndGet(new MementoChecker() {
-
-				public void prepareAndCheckBeforeSerialization(
-						XMLMemento mementoToSerialize) {
-					assertEquals(null, mementoToSerialize.getString(key));
-					try {
-						mementoToSerialize.putString(key, "some string");
-					} catch (RuntimeException ex) {
-						System.out.println("offending key: '" + key + "'");
-						throw ex;
-					}
-					assertEquals("some string", mementoToSerialize
-							.getString(key));
-				}
-
-				public void checkAfterDeserialization(
-						XMLMemento deserializedMemento) {
-					assertEquals("some string", deserializedMemento
-							.getString(key));
-				}
-			});
-		}
-
-	}
-
-	public void testIllegalKeys() {
-		String[] illegalKeys = { "", " ", " key", "key ", "key key", "\t",
-				"\tkey", "key\t", "key\tkey", "\n", "\nkey", "key\n",
-				"key\nkey", "key<with<lessthan", "key>with>greaterthan",
-				"key&with&ampersand", "key#with#hash", "key\"with\"quote", "\"" };
-
-		for (int i = 0; i < illegalKeys.length; i++) {
-			final String key = illegalKeys[i];
-			XMLMemento memento = XMLMemento.createWriteRoot("foo");
-			try {
-				memento.putString(key, "some string");
-				fail("putString with illegal key should fail");
-			} catch (Exception ex) {
-				// expected
-			}
-		}
-	}
-
-	public void testPutTextDataWithChildrenBug93718()
-			throws WorkbenchException, IOException {
-		final String textData = "\n\tThis is\ntext data\n\t\twith newlines and \ttabs\t\n\t ";
-		testPutAndGet(new MementoChecker() {
-
-			public void prepareAndCheckBeforeSerialization(
-					XMLMemento mementoToSerialize) {
-				mementoToSerialize.createChild("type", "id");
-				mementoToSerialize.putTextData(textData);
-				mementoToSerialize.createChild("type", "id");
-				mementoToSerialize.createChild("type", "id");
-				assertEquals(textData, mementoToSerialize.getTextData());
-			}
-
-			public void checkAfterDeserialization(XMLMemento deserializedMemento) {
-				assertEquals(textData, deserializedMemento.getTextData());
-			}
-		});
-	}
-
-	private static interface MementoChecker {
-		void prepareAndCheckBeforeSerialization(XMLMemento mementoToSerialize);
-
-		void checkAfterDeserialization(XMLMemento deserializedMemento);
-	}
-
-	private void testPutAndGet(MementoChecker mementoChecker)
-			throws IOException, WorkbenchException {
-		XMLMemento mementoToSerialize = XMLMemento
-				.createWriteRoot("XMLMementoTest");
-
-		mementoChecker.prepareAndCheckBeforeSerialization(mementoToSerialize);
-
-		StringWriter writer = new StringWriter();
-		mementoToSerialize.save(writer);
-		writer.close();
-
-		StringReader reader = new StringReader(writer.getBuffer().toString());
-		XMLMemento deserializedMemento = XMLMemento.createReadRoot(reader);
-
-		mementoChecker.checkAfterDeserialization(deserializedMemento);
-	}
-	
-	   public void testMementoWithTextContent113659() throws Exception {
-	        IMemento memento = XMLMemento.createWriteRoot("root");
-	        IMemento mementoWithChild = XMLMemento.createWriteRoot("root");
-	        IMemento child = mementoWithChild.createChild("child");
-	        child.putTextData("text");
-	        memento.putMemento(mementoWithChild);
-	        IMemento copiedChild = memento.getChild("child");
-	        assertEquals("text", copiedChild.getTextData());
-	    }
-
-
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ArbitraryPropertyTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ArbitraryPropertyTest.java
deleted file mode 100644
index 1045449..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ArbitraryPropertyTest.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api.workbenchpart;
-
-import org.eclipse.core.runtime.CoreException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IStorage;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.0
- */
-public class ArbitraryPropertyTest extends UITestCase {
-	/**
-	 * 
-	 */
-	private static final String EDITOR_ID = "org.eclipse.ui.tests.TitleTestEditor";
-
-	/**
-	 * 
-	 */
-	private static final String USER_PROP = "org.eclipse.ui.test.user";
-
-	final static String VIEW_ID = "org.eclipse.ui.tests.workbenchpart.OverriddenTitleView";
-
-	/**
-	 * @param testName
-	 */
-	public ArbitraryPropertyTest(String testName) {
-		super(testName);
-	}
-
-	WorkbenchWindow window;
-
-	WorkbenchPage page;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		window = (WorkbenchWindow) openTestWindow();
-		page = (WorkbenchPage) window.getActivePage();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-	}
-
-	static class PropListener implements IPropertyChangeListener {
-		String firedProp = null;
-
-		String firedOV = null;
-
-		String firedNV = null;
-
-		public void propertyChange(PropertyChangeEvent event) {
-			firedProp = event.getProperty();
-			firedOV = (String) event.getOldValue();
-			firedNV = (String) event.getNewValue();
-		}
-	};
-
-	public void testViewProperties() throws Exception {
-		OverriddenTitleView view = (OverriddenTitleView) page.showView(VIEW_ID);
-		IViewReference ref = (IViewReference) page.getReference(view);
-
-		PropListener viewListener = new PropListener();
-		view.addPartPropertyListener(viewListener);
-		PropListener refListener = new PropListener();
-		ref.addPartPropertyListener(refListener);
-
-		view.setPartProperty(USER_PROP, "pwebster");
-
-		try {
-			assertEquals("pwebster", view.getPartProperty(USER_PROP));
-			assertEquals("pwebster", ref.getPartProperty(USER_PROP));
-
-			assertEquals(USER_PROP, viewListener.firedProp);
-			assertNull(viewListener.firedOV);
-			assertEquals("pwebster", viewListener.firedNV);
-			assertEquals(USER_PROP, refListener.firedProp);
-			assertNull(refListener.firedOV);
-			assertEquals("pwebster", refListener.firedNV);
-		} finally {
-			view.removePartPropertyListener(viewListener);
-			ref.removePartPropertyListener(refListener);
-		}
-	}
-
-	public void testEditorProperties() throws Exception {
-		IFileEditorInput input = new IFileEditorInput() {
-			public boolean exists() {
-				return true;
-			}
-
-			public ImageDescriptor getImageDescriptor() {
-				return null;
-			}
-
-			public String getName() {
-				return "MyInputFile";
-			}
-
-			public IPersistableElement getPersistable() {
-				return null;
-			}
-
-			public String getToolTipText() {
-				return "My Input File";
-			}
-
-			public Object getAdapter(Class adapter) {
-				return null;
-			}
-
-			public IFile getFile() {
-				return null;
-			}
-
-			/**
-			 * {@inheritDoc}
-			 * 
-			 * @throws CoreException
-			 */
-			public IStorage getStorage() throws CoreException {
-				return null;
-			}
-		};
-		TitleTestEditor editor = (TitleTestEditor) page.openEditor(input,
-				EDITOR_ID);
-		IEditorReference ref = (IEditorReference) page.getReference(editor);
-
-		PropListener editorListener = new PropListener();
-		editor.addPartPropertyListener(editorListener);
-		PropListener refListener = new PropListener();
-		ref.addPartPropertyListener(refListener);
-
-		editor.setPartProperty(USER_PROP, "pwebster");
-
-		try {
-			assertEquals("pwebster", editor.getPartProperty(USER_PROP));
-			assertEquals("pwebster", ref.getPartProperty(USER_PROP));
-
-			assertEquals(USER_PROP, editorListener.firedProp);
-			assertNull(editorListener.firedOV);
-			assertEquals("pwebster", editorListener.firedNV);
-			assertEquals(USER_PROP, refListener.firedProp);
-			assertNull(refListener.firedOV);
-			assertEquals("pwebster", refListener.firedNV);
-		} finally {
-			editor.removePartPropertyListener(editorListener);
-			ref.removePartPropertyListener(refListener);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/CustomTitleView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/CustomTitleView.java
deleted file mode 100644
index 4969b2a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/CustomTitleView.java
+++ /dev/null
@@ -1,27 +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.tests.api.workbenchpart;
-
-/**
- * @since 3.0
- */
-public class CustomTitleView extends EmptyView {
-
-    /**
-     * 
-     */
-    public CustomTitleView() {
-        super();
-
-        setTitle("Custom title");
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/DynamicItem.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/DynamicItem.java
deleted file mode 100644
index 9b03265..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/DynamicItem.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api.workbenchpart;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-/**
- * Test implementation for dynamic menu item support.
- * 
- * @since 3.3
- * 
- */
-public class DynamicItem extends CompoundContributionItem {
-
-	private Action action1;
-	private Action action2;
-
-	/**
-	 * Default constructor
-	 */
-	public DynamicItem() {
-		makeActions();
-	}
-
-	private void showMessage(String message) {
-		MessageDialog.openInformation(null, "Sample View", message);
-	}
-
-	private void makeActions() {
-		action1 = new Action() {
-			public void run() {
-				showMessage("Dynamic Item 1 executed");
-			}
-		};
-		action1.setText("Dynamic Item 1");
-		action1.setToolTipText("Dynamic Item 1 tooltip");
-		action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
-
-		action2 = new Action() {
-			public void run() {
-				showMessage("Dynamic Item 2 executed");
-			}
-		};
-		action2.setText("Dynamic Item 2");
-		action2.setToolTipText("Dynamic Item 2 tooltip");
-		action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.actions.CompoundContributionItem#getContributionItems()
-	 */
-	protected IContributionItem[] getContributionItems() {
-		IContributionItem[] items = { new ActionContributionItem(action1),
-				new ActionContributionItem(action2) };
-		return items;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithCreateControlsException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithCreateControlsException.java
deleted file mode 100644
index 2ad2695..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithCreateControlsException.java
+++ /dev/null
@@ -1,62 +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.tests.api.workbenchpart;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-public class EditorWithCreateControlsException extends EditorPart {
-
-    public void doSave(IProgressMonitor monitor) {
-
-    }
-
-    public void doSaveAs() {
-
-    }
-
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        if (!(input instanceof IFileEditorInput))
-            throw new PartInitException("Invalid Input: Must be IFileEditorInput");
-        setSite(site);
-        setInput(input);
-    }
-
-    public boolean isDirty() {
-        return false;
-    }
-
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    public void createPartControl(Composite parent) {
-        Label testLabel = new Label(parent, SWT.NONE);
-        
-        testLabel.setText("If you can read this, widgets are not being disposed properly when errors occur in createPartControl");
-        
-        throw new RuntimeException("This exception was thrown intentionally as part of an error handling test");
-
-    }
-
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithDisposeException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithDisposeException.java
deleted file mode 100644
index 6cdb8dc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithDisposeException.java
+++ /dev/null
@@ -1,65 +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.tests.api.workbenchpart;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-public class EditorWithDisposeException extends EditorPart {
-
-    public void doSave(IProgressMonitor monitor) {
-    }
-
-    public void doSaveAs() {
-    }
-
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        
-        if (!(input instanceof IFileEditorInput))
-            throw new PartInitException("Invalid Input: Must be IFileEditorInput");
-        setSite(site);
-        setInput(input);
-    }
-
-    public boolean isDirty() {
-        return false;
-    }
-
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    public void createPartControl(Composite parent) {
-        parent.setLayout(new FillLayout());
-        
-        Label testLabel = new Label(parent, SWT.NONE);
-        
-        testLabel.setText("This editor is supposed to throw an exception when closed");
-    }
-
-    public void setFocus() {
-
-    }
-    
-    public void dispose() {
-        throw new RuntimeException("This exception was thrown intentionally as part of an error handling test");
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitException.java
deleted file mode 100644
index 5da3aa6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitException.java
+++ /dev/null
@@ -1,59 +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.tests.api.workbenchpart;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-public class EditorWithInitException extends EditorPart {
-
-    public void doSave(IProgressMonitor monitor) {
-
-    }
-
-    public void doSaveAs() {
-
-    }
-
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        
-        throw new PartInitException("This exception was thrown intentionally as part of an error handling test");
-    }
-
-    public boolean isDirty() {
-        return false;
-    }
-
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    public void createPartControl(Composite parent) {
-
-        parent.setLayout(new FillLayout());
-        
-        Label message = new Label(parent, SWT.NONE);
-        message.setText("This editor threw an exception on init. You should not be able to read this");
-    }
-
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitRuntimeException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitRuntimeException.java
deleted file mode 100644
index 752585c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInitRuntimeException.java
+++ /dev/null
@@ -1,59 +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.tests.api.workbenchpart;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-public class EditorWithInitRuntimeException extends EditorPart {
-
-    public void doSave(IProgressMonitor monitor) {
-
-    }
-
-    public void doSaveAs() {
-
-    }
-
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        
-        throw new RuntimeException("This exception was thrown intentionally as part of an error handling test");
-    }
-
-    public boolean isDirty() {
-        return false;
-    }
-
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    public void createPartControl(Composite parent) {
-
-        parent.setLayout(new FillLayout());
-        
-        Label message = new Label(parent, SWT.NONE);
-        message.setText("This editor threw an exception on init. You should not be able to read this");
-    }
-
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInputException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInputException.java
deleted file mode 100644
index ed2c34b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EditorWithInputException.java
+++ /dev/null
@@ -1,64 +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.tests.api.workbenchpart;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-public class EditorWithInputException extends EditorPart {
-
-    public void doSave(IProgressMonitor monitor) {
-
-    }
-
-    public void doSaveAs() {
-
-    }
-
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        if (!(input instanceof IFileEditorInput))
-            throw new PartInitException("Invalid Input: Must be IFileEditorInput");
-        setSite(site);
-        setInput(input);
-    }
-
-    public boolean isDirty() {
-        return false;
-    }
-
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-    
-    public IEditorInput getEditorInput() {
-        IllegalStateException exception = new IllegalStateException("This exception was thrown intentionally as part of an error handling test");
-        throw exception;
-    }
-
-    public void createPartControl(Composite parent) {
-        Label testLabel = new Label(parent, SWT.NONE);
-        
-        testLabel.setText("This throws an exception in getEditorInput");
-    }
-
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EmptyView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EmptyView.java
deleted file mode 100644
index 926d968..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/EmptyView.java
+++ /dev/null
@@ -1,62 +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.tests.api.workbenchpart;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * @since 3.0
- */
-public class EmptyView extends ViewPart {
-
-    /**
-     * 
-     */
-    public EmptyView() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.WorkbenchPart#setContentDescription(java.lang.String)
-     */
-    public void setContentDescription(String description) {
-        super.setContentDescription(description);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.WorkbenchPart#setPartName(java.lang.String)
-     */
-    public void setPartName(String partName) {
-        super.setPartName(partName);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.WorkbenchPart#setTitle(java.lang.String)
-     */
-    public void setTitle(String title) {
-        super.setTitle(title);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/HeavyResourceView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/HeavyResourceView.java
deleted file mode 100644
index 4408120..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/HeavyResourceView.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.tests.api.workbenchpart;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.tests.TestPlugin;
-
-public class HeavyResourceView extends ViewPart {
-
-    private Button useAllComposites;
-    private Button releaseAllComposites;
-    
-    private Shell tempShell;
-    private Composite control;
-    
-    public void createPartControl(Composite parent) {
-        control = parent;
-        
-        SelectionListener listener = new SelectionAdapter() {
-          public void widgetSelected(SelectionEvent e) {
-                super.widgetSelected(e);
-                
-                if (e.widget == useAllComposites) {
-                    useAll();
-                } else if (e.widget == releaseAllComposites) {
-                    releaseAll();
-                }
-            }  
-        };
-        
-        Label explanation = new Label(parent, SWT.WRAP);
-        explanation.setText("This view allocates all available SWT resources on demand. " 
-                + "This is not supposed to be a recoverable error, and is expected to crash the workbench. "
-                + "This view allows us observe the workbench when it crashes in this manner.");
-        
-        useAllComposites = new Button(parent, SWT.PUSH);
-        useAllComposites.setText("&Allocate all available composites (very slow!)");
-        useAllComposites.addSelectionListener(listener);
-        
-        releaseAllComposites = new Button(parent, SWT.PUSH);
-        releaseAllComposites.setText("&Release all composites");
-        releaseAllComposites.addSelectionListener(listener);
-           
-    }
-
-    public void setFocus() {
-        control.setFocus();
-    }
-    
-    public void useAll() {
-        releaseAll();
-        tempShell = new Shell(Display.getCurrent(), SWT.NONE);
-        int count = 0;
-        try {
-            for(;;) {
-                new Composite(tempShell, SWT.NONE);
-                count++;
-            }
-        } catch (SWTError e) {
-            TestPlugin.getDefault().getLog().log(WorkbenchPlugin.getStatus(e));
-        }
-    }
-    
-    public void releaseAll() {
-        if (tempShell != null) {
-            tempShell.dispose();
-            tempShell = null;
-        }
-    }
-    
-    public void dispose() {
-        releaseAll();
-        super.dispose();
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleView.java
deleted file mode 100644
index c7a99d8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleView.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api.workbenchpart;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.services.IWorkbenchLocationService;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * @since 3.4
- * 
- */
-public class LifecycleView extends ViewPart {
-
-	public static final String ID = "org.eclipse.ui.tests.LifecycleView";
-
-	public boolean callWidgetDispose = false;
-	public boolean callSiteDispose = false;
-	public boolean callPartDispose = false;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite)
-	 */
-	public void init(IViewSite site) throws PartInitException {
-		super.init(site);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-
-		IActionBars actionBars = getViewSite().getActionBars();
-		IToolBarManager toolBarManager = actionBars.getToolBarManager();
-		toolBarManager.add(new Action("Hi") {
-		});
-		actionBars.updateActionBars();
-		((ToolBarManager) toolBarManager).getControl().addDisposeListener(
-				new DisposeListener() {
-
-					public void widgetDisposed(DisposeEvent e) {
-						callWidgetDispose = true;
-					}
-				});
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		IWorkbenchLocationService wls = (IWorkbenchLocationService) getSite()
-				.getService(IWorkbenchLocationService.class);
-		if (wls.getPartSite() == null) {
-			callSiteDispose = true;
-		}
-		callPartDispose = true;
-		super.dispose();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleViewTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleViewTest.java
deleted file mode 100644
index 72c14e1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/LifecycleViewTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api.workbenchpart;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.4
- *
- */
-public class LifecycleViewTest extends UITestCase {
-
-	/**
-	 * @param testName
-	 */
-	public LifecycleViewTest(String testName) {
-		super(testName);
-	}
-
-	public void testLifecycle() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-		IViewPart v = page.showView(LifecycleView.ID);
-		assertTrue(v instanceof LifecycleView);
-		LifecycleView view = (LifecycleView) v;
-		processEvents();
-		
-		page.hideView(v);
-		
-		processEvents();
-		
-		assertTrue(view.callPartDispose);
-		assertTrue(view.callWidgetDispose);
-		assertFalse(view.callSiteDispose);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/MenuContributionHarness.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/MenuContributionHarness.java
deleted file mode 100644
index c312d9d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/MenuContributionHarness.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api.workbenchpart;
-
-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.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelection;
-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.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * This view acts as a test harness for the new 3.3 menu contribution story. It
- * read the additions and uses the mechanism to construct its various menus and
- * toolbars.
- * 
- * Right now it's under development but will act as a primary testing point for
- * the development.
- * 
- * Currently reads the additions when the control is created and only handles
- * the popup menu contributions...
- */
-
-public class MenuContributionHarness extends ViewPart {
-	public final static String VIEW_ID = "org.eclipse.ui.tests.api.MenuTestHarness";
-	public final static String CONTEXT_TEST1_ID = "org.eclipse.ui.menus.contexts.test1";
-
-	IMenuService menuSvc;
-
-	private TableViewer viewer;
-	private Action action1;
-	private Action action2;
-	private Action doubleClickAction;
-	private Action action3;
-
-	/*
-	 * The content provider class is responsible for providing objects to the
-	 * view. It can wrap existing objects in adapters or simply return objects
-	 * as-is. These objects may be sensitive to the current input of the view,
-	 * or ignore it and always show the same content (like Task List, for
-	 * example).
-	 */
-
-	class ViewContentProvider implements IStructuredContentProvider {
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-
-		public void dispose() {
-		}
-
-		public Object[] getElements(Object parent) {
-			return new String[] { "One", "Two", "Three" };
-		}
-	}
-
-	class ViewLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		public String getColumnText(Object obj, int index) {
-			return getText(obj);
-		}
-
-		public Image getColumnImage(Object obj, int index) {
-			return getImage(obj);
-		}
-
-		public Image getImage(Object obj) {
-			return PlatformUI.getWorkbench().getSharedImages().getImage(
-					ISharedImages.IMG_OBJ_ELEMENT);
-		}
-	}
-
-	class NameSorter extends ViewerSorter {
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public MenuContributionHarness() {
-	}
-
-	/**
-	 * This is a callback that will allow us to create the viewer and initialize
-	 * it.
-	 */
-	public void createPartControl(Composite parent) {
-		// Access the menu service
-		menuSvc = (IMenuService) getSite().getService(IMenuService.class);
-
-		viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setSorter(new NameSorter());
-		viewer.setInput(getViewSite());
-		makeActions();
-		hookContextMenu();
-		hookDoubleClickAction();
-		contributeToActionBars();
-	}
-
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu");
-
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				MenuContributionHarness.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, viewer);
-	}
-
-	private void contributeToActionBars() {
-		IActionBars bars = getViewSite().getActionBars();
-		fillLocalPullDown(bars.getMenuManager());
-		fillLocalToolBar(bars.getToolBarManager());
-
-	}
-
-	private void fillLocalPullDown(IMenuManager manager) {
-		manager.add(action1);
-		manager.add(new Separator());
-		manager.add(action2);
-	}
-
-	private void fillContextMenu(IMenuManager manager) {
-		// Add some local actions
-		manager.add(action1);
-		manager.add(new Separator());
-		manager.add(action2);
-	}
-
-	private void fillLocalToolBar(IToolBarManager manager) {
-		manager.add(action1);
-		manager.add(action2);
-		manager.add(action3);
-	}
-
-	private void makeActions() {
-		action1 = new Action() {
-			public void run() {
-				showMessage("Action 1 executed");
-			}
-		};
-		action1.setText("Action 1");
-		action1.setToolTipText("Action 1 tooltip");
-		action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
-
-		action2 = new Action() {
-			public void run() {
-				showMessage("Action 2 executed");
-			}
-		};
-		action2.setText("Action 2");
-		action2.setToolTipText("Action 2 tooltip");
-		action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
-
-		final IContextService contextService = (IContextService) getSite()
-				.getService(IContextService.class);
-		action3 = new Action() {
-			IContextActivation currentActivation = null;
-
-			public void run() {
-				if (currentActivation == null) {
-					currentActivation = contextService
-							.activateContext(MenuContributionHarness.CONTEXT_TEST1_ID);
-					setImageDescriptor(PlatformUI.getWorkbench()
-							.getSharedImages().getImageDescriptor(
-									ISharedImages.IMG_TOOL_UNDO));
-				} else {
-					contextService.deactivateContext(currentActivation);
-					currentActivation = null;
-					setImageDescriptor(PlatformUI.getWorkbench()
-							.getSharedImages().getImageDescriptor(
-									ISharedImages.IMG_TOOL_REDO));
-				}
-			}
-		};
-		action3.setText("Toggle test1");
-		action3.setToolTipText("Toggle test1");
-		action3.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_TOOL_REDO));
-
-		doubleClickAction = new Action() {
-			public void run() {
-				ISelection selection = viewer.getSelection();
-				Object obj = ((IStructuredSelection) selection)
-						.getFirstElement();
-				showMessage("Double-click detected on " + obj.toString());
-			}
-		};
-	}
-
-	private void hookDoubleClickAction() {
-		viewer.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				doubleClickAction.run();
-			}
-		});
-	}
-
-	private void showMessage(String message) {
-		MessageDialog.openInformation(viewer.getControl().getShell(),
-				"Sample View", message);
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-	
-	int callCount = 0;
-	
-	public void updateCount() {
-		callCount++;
-	}
-	
-	public int getCount() {
-		return callCount;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleTest.java
deleted file mode 100644
index 715bd33..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleTest.java
+++ /dev/null
@@ -1,164 +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.tests.api.workbenchpart;
-
-import junit.framework.Assert;
-
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart2;
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.0
- */
-public class OverriddenTitleTest extends UITestCase {
-    /**
-     * @param testName
-     */
-    public OverriddenTitleTest(String testName) {
-        super(testName);
-    }
-
-    WorkbenchWindow window;
-
-    WorkbenchPage page;
-
-    OverriddenTitleView view;
-
-    boolean titleChangeEvent = false;
-
-    boolean nameChangeEvent = false;
-
-    boolean contentChangeEvent = false;
-
-    private IPropertyListener propertyListener = new IPropertyListener() {
-        /* (non-Javadoc)
-         * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
-         */
-        public void propertyChanged(Object source, int propId) {
-            switch (propId) {
-            case IWorkbenchPartConstants.PROP_TITLE:
-                titleChangeEvent = true;
-                break;
-            case IWorkbenchPartConstants.PROP_PART_NAME:
-                nameChangeEvent = true;
-                break;
-            case IWorkbenchPartConstants.PROP_CONTENT_DESCRIPTION:
-                contentChangeEvent = true;
-                break;
-            }
-        }
-    };
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        window = (WorkbenchWindow) openTestWindow();
-        page = (WorkbenchPage) window.getActivePage();
-        view = (OverriddenTitleView) page
-                .showView("org.eclipse.ui.tests.workbenchpart.OverriddenTitleView");
-        view.addPropertyListener(propertyListener);
-        titleChangeEvent = false;
-        nameChangeEvent = false;
-        contentChangeEvent = false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        view.removePropertyListener(propertyListener);
-        page.hideView(view);
-        super.doTearDown();
-    }
-
-    private static void verifySettings(IWorkbenchPart2 part,
-            String expectedTitle, String expectedPartName,
-            String expectedContentDescription) throws Exception {
-        Assert.assertEquals("Incorrect view title", expectedTitle, part
-                .getTitle());
-        Assert.assertEquals("Incorrect part name", expectedPartName, part
-                .getPartName());
-        Assert.assertEquals("Incorrect content description",
-                expectedContentDescription, part.getContentDescription());
-    }
-
-    private void verifySettings(String expectedTitle, String expectedPartName,
-            String expectedContentDescription) throws Exception {
-        verifySettings(view, expectedTitle, expectedPartName,
-                expectedContentDescription);
-    }
-
-    /**
-     * Ensure that we've received the given property change events since the start of the test
-     * 
-     * @param titleEvent PROP_TITLE
-     * @param nameEvent PROP_PART_NAME
-     * @param descriptionEvent PROP_CONTENT_DESCRIPTION
-     */
-    private void verifyEvents(boolean titleEvent, boolean nameEvent,
-            boolean descriptionEvent) {
-        if (titleEvent) {
-            Assert.assertEquals("Missing title change event", titleEvent,
-                    titleChangeEvent);
-        }
-        if (nameEvent) {
-            Assert.assertEquals("Missing name change event", nameEvent,
-                    nameChangeEvent);
-        }
-        if (descriptionEvent) {
-            Assert.assertEquals("Missing content description event",
-                    descriptionEvent, contentChangeEvent);
-        }
-    }
-
-    public void testDefaults() throws Throwable {
-        verifySettings("OverriddenTitle", "OverriddenTitleView",
-                "OverriddenTitle");
-        verifyEvents(false, false, false);
-    }
-
-    public void testCustomName() throws Throwable {
-        view.setPartName("CustomPartName");
-        verifySettings("OverriddenTitle", "CustomPartName", "OverriddenTitle");
-        verifyEvents(false, true, false);
-    }
-
-    public void testEmptyContentDescription() throws Throwable {
-        view.setContentDescription("");
-        verifySettings("OverriddenTitle", "OverriddenTitleView", "");
-        verifyEvents(false, false, true);
-    }
-
-    public void testCustomTitle() throws Throwable {
-        view.customSetTitle("CustomTitle");
-        verifySettings("CustomTitle", "OverriddenTitleView", "CustomTitle");
-        verifyEvents(true, false, true);
-    }
-
-    public void testCustomContentDescription() throws Throwable {
-        view.setContentDescription("CustomContentDescription");
-        verifySettings("OverriddenTitle", "OverriddenTitleView",
-                "CustomContentDescription");
-        verifyEvents(false, false, true);
-    }
-
-    public void testCustomNameAndContentDescription() throws Throwable {
-        view.setPartName("CustomName");
-        view.setContentDescription("CustomContentDescription");
-        verifySettings("OverriddenTitle", "CustomName",
-                "CustomContentDescription");
-        verifyEvents(false, true, true);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleView.java
deleted file mode 100644
index 0a57e86..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/OverriddenTitleView.java
+++ /dev/null
@@ -1,46 +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.tests.api.workbenchpart;
-
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.internal.util.Util;
-
-/**
- * @since 3.0
- */
-public class OverriddenTitleView extends EmptyView {
-
-    String overriddenTitle = "OverriddenTitle";
-
-    /**
-     * 
-     */
-    public OverriddenTitleView() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#getTitle()
-     */
-    public String getTitle() {
-        return overriddenTitle;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.part.WorkbenchPart#setTitle(java.lang.String)
-     */
-    public void customSetTitle(String title) {
-        overriddenTitle = Util.safeString(title);
-
-        firePropertyChange(IWorkbenchPartConstants.PROP_TITLE);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPart.java
deleted file mode 100644
index bf6c1be..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPart.java
+++ /dev/null
@@ -1,165 +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.tests.api.workbenchpart;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @since 3.0
- */
-public class RawIViewPart extends EventManager implements IViewPart {
-
-    private IViewSite site;
-
-    private String title = "SomeTitle";
-
-    /**
-     * 
-     */
-    public RawIViewPart() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IViewPart#getViewSite()
-     */
-    public IViewSite getViewSite() {
-        return site;
-    }
-
-    public void setTitle(String newTitle) {
-        title = newTitle;
-        firePropertyChange(IWorkbenchPartConstants.PROP_TITLE);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IViewPart#init(org.eclipse.ui.IViewSite)
-     */
-    public void init(IViewSite site) throws PartInitException {
-        this.site = site;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IViewPart#init(org.eclipse.ui.IViewSite, org.eclipse.ui.IMemento)
-     */
-    public void init(IViewSite site, IMemento memento) throws PartInitException {
-        this.site = site;
-    }
-
-    /**
-     * Fires a property changed event.
-     *
-     * @param propertyId the id of the property that changed
-     */
-    protected void firePropertyChange(final int propertyId) {
-        Object[] array = getListeners();
-        for (int nX = 0; nX < array.length; nX++) {
-            final IPropertyListener l = (IPropertyListener) array[nX];
-            Platform.run(new SafeRunnable() {
-                public void run() {
-                    l.propertyChanged(RawIViewPart.this, propertyId);
-                }
-            });
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IViewPart#saveState(org.eclipse.ui.IMemento)
-     */
-    public void saveState(IMemento memento) {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#addPropertyListener(org.eclipse.ui.IPropertyListener)
-     */
-    public void addPropertyListener(IPropertyListener listener) {
-        addListenerObject(listener);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#dispose()
-     */
-    public void dispose() {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#getSite()
-     */
-    public IWorkbenchPartSite getSite() {
-        return site;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#getTitle()
-     */
-    public String getTitle() {
-        return title;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#getTitleImage()
-     */
-    public Image getTitleImage() {
-        return PlatformUI.getWorkbench().getSharedImages().getImage(
-                ISharedImages.IMG_DEF_VIEW);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#getTitleToolTip()
-     */
-    public String getTitleToolTip() {
-        return "blah";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#removePropertyListener(org.eclipse.ui.IPropertyListener)
-     */
-    public void removePropertyListener(IPropertyListener l) {
-        removeListenerObject(l);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-     */
-    public Object getAdapter(Class adapter) {
-        return null;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPartTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPartTest.java
deleted file mode 100644
index b2b000b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/RawIViewPartTest.java
+++ /dev/null
@@ -1,153 +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.tests.api.workbenchpart;
-
-import junit.framework.Assert;
-
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.0
- */
-public class RawIViewPartTest extends UITestCase {
-    /**
-     * @param testName
-     */
-    public RawIViewPartTest(String testName) {
-        super(testName);
-    }
-
-    WorkbenchWindow window;
-
-    WorkbenchPage page;
-
-    RawIViewPart view;
-
-    IWorkbenchPartReference ref;
-
-    boolean titleChangeEvent = false;
-
-    boolean nameChangeEvent = false;
-
-    boolean contentChangeEvent = false;
-
-    private IPropertyListener propertyListener = new IPropertyListener() {
-        /* (non-Javadoc)
-         * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
-         */
-        public void propertyChanged(Object source, int propId) {
-            switch (propId) {
-            case IWorkbenchPartConstants.PROP_TITLE:
-                titleChangeEvent = true;
-                break;
-            case IWorkbenchPartConstants.PROP_PART_NAME:
-                nameChangeEvent = true;
-                break;
-            case IWorkbenchPartConstants.PROP_CONTENT_DESCRIPTION:
-                contentChangeEvent = true;
-                break;
-            }
-        }
-    };
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        window = (WorkbenchWindow) openTestWindow();
-        page = (WorkbenchPage) window.getActivePage();
-        view = (RawIViewPart) page
-                .showView("org.eclipse.ui.tests.workbenchpart.RawIViewPart");
-        ref = page
-                .findViewReference("org.eclipse.ui.tests.workbenchpart.RawIViewPart");
-        ref.addPropertyListener(propertyListener);
-        titleChangeEvent = false;
-        nameChangeEvent = false;
-        contentChangeEvent = false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        view.removePropertyListener(propertyListener);
-        page.hideView(view);
-        super.doTearDown();
-    }
-
-    private void verifySettings(IWorkbenchPart part, String expectedTitle,
-            String expectedPartName, String expectedContentDescription)
-            throws Exception {
-        Assert.assertEquals("Incorrect view title", expectedTitle, part
-                .getTitle());
-
-        Assert.assertEquals("Incorrect title in view reference", expectedTitle,
-                ref.getTitle());
-        Assert.assertEquals("Incorrect part name in view reference",
-                expectedPartName, ref.getPartName());
-        Assert.assertEquals("Incorrect content description in view reference",
-                expectedContentDescription, ref.getContentDescription());
-    }
-
-    private void verifySettings(String expectedTitle, String expectedPartName,
-            String expectedContentDescription) throws Exception {
-        verifySettings(view, expectedTitle, expectedPartName,
-                expectedContentDescription);
-    }
-
-    /**
-     * Ensure that we've received the given property change events since the start of the test
-     * 
-     * @param titleEvent PROP_TITLE
-     * @param nameEvent PROP_PART_NAME
-     * @param descriptionEvent PROP_CONTENT_DESCRIPTION
-     */
-    private void verifyEvents(boolean titleEvent, boolean nameEvent,
-            boolean descriptionEvent) {
-        if (titleEvent) {
-            Assert.assertEquals("Missing title change event", titleEvent,
-                    titleChangeEvent);
-        }
-        if (nameEvent) {
-            Assert.assertEquals("Missing name change event", nameEvent,
-                    nameChangeEvent);
-        }
-        if (descriptionEvent) {
-            Assert.assertEquals("Missing content description event",
-                    descriptionEvent, contentChangeEvent);
-        }
-    }
-
-    public void testDefaults() throws Throwable {
-        verifySettings("SomeTitle", "RawIViewPart", "SomeTitle");
-        verifyEvents(false, false, false);
-    }
-
-    public void testCustomTitle() throws Throwable {
-        view.setTitle("CustomTitle");
-        verifySettings("CustomTitle", "RawIViewPart", "CustomTitle");
-        verifyEvents(true, false, true);
-    }
-
-    /**
-     * Ensures that the content description is empty when the title is the same
-     * as the default part name
-     */
-    public void testEmptyContentDescription() throws Throwable {
-        view.setTitle("RawIViewPart");
-        verifySettings("RawIViewPart", "RawIViewPart", "");
-        verifyEvents(true, false, true);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TextWidget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TextWidget.java
deleted file mode 100644
index 17b431d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TextWidget.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.api.workbenchpart;
-
-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.swt.widgets.Text;
-import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
-
-/**
- * Basic widget wrapping an SWT Text Control.
- * 
- * @since 3.3
- *
- */
-public class TextWidget extends WorkbenchWindowControlContribution {
-	public TextWidget() {
-		
-	}
-	
-	/**
-	 * @param id
-	 */
-	protected TextWidget(String id) {
-		super(id);
-		// TODO Auto-generated constructor stub
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.action.ControlContribution#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createControl(Composite parent) {
-		Composite textHolder = new Composite(parent, SWT.NONE);
-		textHolder.setLayout(new Layout() {
-			protected Point computeSize(Composite composite, int wHint,
-					int hHint, boolean flushCache) {
-				Text tw = (Text) composite.getChildren()[0];
-				Point twSize = tw.computeSize(wHint, hHint, flushCache);
-				
-				// Forst it to be at least 100 pixels
-				if (twSize.x < 200)
-					twSize.x = 200;
-				
-				return twSize;
-			}
-
-			protected void layout(Composite composite, boolean flushCache) {
-				Text tw = (Text) composite.getChildren()[0];
-				Point twSize = tw.computeSize(SWT.DEFAULT, SWT.DEFAULT, flushCache);
-				Rectangle bb = composite.getBounds();
-				int yOffset = ((bb.height-twSize.y) / 2) + 1;
-				if (yOffset < 0) yOffset = 0;
-				
-				// Set the tw's size to the composite's width and the default height (centered)
-				tw.setBounds(0, yOffset, bb.width, twSize.y);
-			}
-		});
-		
-		Text tw = new Text(textHolder, SWT.BORDER);
-		tw.setText("Test Text Eric was here...XXXXXX");
-		
-		textHolder.setSize(181, 22);
-		return textHolder;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestEditor.java
deleted file mode 100644
index 3f1aca9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestEditor.java
+++ /dev/null
@@ -1,176 +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.tests.api.workbenchpart;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.internal.layout.CellLayout;
-import org.eclipse.ui.internal.layout.Row;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * @since 3.0
- */
-public class TitleTestEditor extends EditorPart {
-
-    Composite composite;
-
-    Text title;
-
-    Text name;
-
-    Text contentDescription;
-
-    Label titleLabel;
-
-    Label nameLabel;
-
-    Label cdLabel;
-
-    /**
-     * 
-     */
-    public TitleTestEditor() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    public void doSave(IProgressMonitor monitor) {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-     */
-    public void doSaveAs() {
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-
-        if (!(input instanceof IFileEditorInput))
-            throw new PartInitException(
-                    "Invalid Input: Must be IFileEditorInput");
-        setSite(site);
-        setInput(input);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isDirty()
-     */
-    public boolean isDirty() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-        composite = new Composite(parent, SWT.NONE);
-        CellLayout layout = new CellLayout(2).setColumn(0, Row.fixed())
-                .setColumn(1, Row.growing());
-        composite.setLayout(layout);
-
-        Label firstLabel = new Label(composite, SWT.NONE);
-        firstLabel.setText("Title");
-        title = new Text(composite, SWT.BORDER);
-        title.setText(getTitle());
-
-        title.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                setTitle(title.getText());
-            }
-        });
-
-        Label secondLabel = new Label(composite, SWT.NONE);
-        secondLabel.setText("Name");
-        name = new Text(composite, SWT.BORDER);
-        name.setText(getPartName());
-        name.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                setPartName(name.getText());
-            }
-        });
-
-        Label thirdLabel = new Label(composite, SWT.NONE);
-        thirdLabel.setText("Content");
-        contentDescription = new Text(composite, SWT.BORDER);
-        contentDescription.setText(getContentDescription());
-        contentDescription.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                setContentDescription(contentDescription.getText());
-            }
-        });
-
-        Label tlLabel = new Label(composite, SWT.NONE);
-        tlLabel.setText("getTitle() = ");
-        titleLabel = new Label(composite, SWT.NONE);
-
-        Label nmLabel = new Label(composite, SWT.NONE);
-        nmLabel.setText("getPartName() = ");
-        nameLabel = new Label(composite, SWT.NONE);
-
-        Label descLabel = new Label(composite, SWT.NONE);
-        descLabel.setText("getContentDescription() = ");
-        cdLabel = new Label(composite, SWT.NONE);
-
-        updateLabels();
-
-        addPropertyListener(new IPropertyListener() {
-            /* (non-Javadoc)
-             * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
-             */
-            public void propertyChanged(Object source, int propId) {
-                updateLabels();
-            }
-        });
-    }
-
-    private void updateLabels() {
-        titleLabel.setText(getTitle());
-        nameLabel.setText(getPartName());
-        cdLabel.setText(getContentDescription());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        composite.setFocus();
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestView.java
deleted file mode 100644
index 47cea8f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/TitleTestView.java
+++ /dev/null
@@ -1,120 +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.tests.api.workbenchpart;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.internal.layout.CellLayout;
-import org.eclipse.ui.internal.layout.Row;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * @since 3.0
- */
-public class TitleTestView extends ViewPart {
-
-    Composite composite;
-
-    Text title;
-
-    Text name;
-
-    Text contentDescription;
-
-    Label titleLabel;
-
-    Label nameLabel;
-
-    Label cdLabel;
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-        composite = new Composite(parent, SWT.NONE);
-        CellLayout layout = new CellLayout(2).setColumn(0, Row.fixed())
-                .setColumn(1, Row.growing());
-        composite.setLayout(layout);
-
-        Label firstLabel = new Label(composite, SWT.NONE);
-        firstLabel.setText("Title");
-        title = new Text(composite, SWT.BORDER);
-        title.setText(getTitle());
-
-        title.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                setTitle(title.getText());
-            }
-        });
-
-        Label secondLabel = new Label(composite, SWT.NONE);
-        secondLabel.setText("Name");
-        name = new Text(composite, SWT.BORDER);
-        name.setText(getPartName());
-        name.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                setPartName(name.getText());
-            }
-        });
-
-        Label thirdLabel = new Label(composite, SWT.NONE);
-        thirdLabel.setText("Content");
-        contentDescription = new Text(composite, SWT.BORDER);
-        contentDescription.setText(getContentDescription());
-        contentDescription.addModifyListener(new ModifyListener() {
-            public void modifyText(ModifyEvent e) {
-                setContentDescription(contentDescription.getText());
-            }
-        });
-
-        Label tlLabel = new Label(composite, SWT.NONE);
-        tlLabel.setText("getTitle() = ");
-        titleLabel = new Label(composite, SWT.NONE);
-
-        Label nmLabel = new Label(composite, SWT.NONE);
-        nmLabel.setText("getPartName() = ");
-        nameLabel = new Label(composite, SWT.NONE);
-
-        Label descLabel = new Label(composite, SWT.NONE);
-        descLabel.setText("getContentDescription() = ");
-        cdLabel = new Label(composite, SWT.NONE);
-
-        updateLabels();
-
-        addPropertyListener(new IPropertyListener() {
-            /* (non-Javadoc)
-             * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
-             */
-            public void propertyChanged(Object source, int propId) {
-                updateLabels();
-            }
-        });
-    }
-
-    private void updateLabels() {
-        titleLabel.setText(getTitle());
-        nameLabel.setText(getPartName());
-        cdLabel.setText(getContentDescription());
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewPartTitleTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewPartTitleTest.java
deleted file mode 100644
index 23eaf21..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewPartTitleTest.java
+++ /dev/null
@@ -1,183 +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.tests.api.workbenchpart;
-
-import junit.framework.Assert;
-
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart2;
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests bug 56822 -- NPE thrown when setTitle(null) is called.
- * 
- * @since 3.0
- */
-public class ViewPartTitleTest extends UITestCase {
-
-    /**
-     * @param testName
-     */
-    public ViewPartTitleTest(String testName) {
-        super(testName);
-    }
-
-    WorkbenchWindow window;
-
-    WorkbenchPage page;
-
-    EmptyView view;
-
-    IWorkbenchPartReference ref;
-
-    boolean titleChangeEvent = false;
-
-    boolean nameChangeEvent = false;
-
-    boolean contentChangeEvent = false;
-
-    private IPropertyListener propertyListener = new IPropertyListener() {
-        /* (non-Javadoc)
-         * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
-         */
-        public void propertyChanged(Object source, int propId) {
-            switch (propId) {
-            case IWorkbenchPartConstants.PROP_TITLE:
-                titleChangeEvent = true;
-                break;
-            case IWorkbenchPartConstants.PROP_PART_NAME:
-                nameChangeEvent = true;
-                break;
-            case IWorkbenchPartConstants.PROP_CONTENT_DESCRIPTION:
-                contentChangeEvent = true;
-                break;
-            }
-        }
-    };
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        window = (WorkbenchWindow) openTestWindow();
-        page = (WorkbenchPage) window.getActivePage();
-        String viewId = "org.eclipse.ui.tests.workbenchpart.EmptyView";
-        view = (EmptyView) page.showView(viewId);
-        ref = page.findViewReference(viewId);
-        view.addPropertyListener(propertyListener);
-        titleChangeEvent = false;
-        nameChangeEvent = false;
-        contentChangeEvent = false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        view.removePropertyListener(propertyListener);
-        page.hideView(view);
-        super.doTearDown();
-    }
-
-    private void verifySettings(IWorkbenchPart2 part, String expectedTitle,
-            String expectedPartName, String expectedContentDescription)
-            throws Exception {
-        Assert.assertEquals("Incorrect view title", expectedTitle, part
-                .getTitle());
-        Assert.assertEquals("Incorrect part name", expectedPartName, part
-                .getPartName());
-        Assert.assertEquals("Incorrect content description",
-                expectedContentDescription, part.getContentDescription());
-
-        Assert.assertEquals("Incorrect title in view reference", expectedTitle,
-                ref.getTitle());
-        Assert.assertEquals("Incorrect part name in view reference",
-                expectedPartName, ref.getPartName());
-        Assert.assertEquals("Incorrect content description in view reference",
-                expectedContentDescription, ref.getContentDescription());
-    }
-
-    private void verifySettings(String expectedTitle, String expectedPartName,
-            String expectedContentDescription) throws Exception {
-        verifySettings(view, expectedTitle, expectedPartName,
-                expectedContentDescription);
-    }
-
-    /**
-     * Ensure that we've received the given property change events since the start of the test
-     * 
-     * @param titleEvent PROP_TITLE
-     * @param nameEvent PROP_PART_NAME
-     * @param descriptionEvent PROP_CONTENT_DESCRIPTION
-     */
-    private void verifyEvents(boolean titleEvent, boolean nameEvent,
-            boolean descriptionEvent) {
-        if (titleEvent) {
-            Assert.assertEquals("Missing title change event", titleEvent,
-                    titleChangeEvent);
-        }
-        if (nameEvent) {
-            Assert.assertEquals("Missing name change event", nameEvent,
-                    nameChangeEvent);
-        }
-        if (descriptionEvent) {
-            Assert.assertEquals("Missing content description event",
-                    descriptionEvent, contentChangeEvent);
-        }
-    }
-
-    public void testDefaults() throws Throwable {
-        verifySettings("EmptyView", "EmptyView", "");
-        verifyEvents(false, false, false);
-    }
-
-    /**
-     * Ensures that we can call ViewPart.setTitle(null) without throwing
-     * any exceptions
-     * 
-     * @throws Throwable
-     */
-    public void testNullTitle() throws Throwable {
-        view.setTitle(null);
-
-        verifySettings("", "EmptyView", "");
-        verifyEvents(true, false, false);
-    }
-
-    public void testCustomName() throws Throwable {
-        view.setPartName("CustomPartName");
-        verifySettings("CustomPartName", "CustomPartName", "");
-        verifyEvents(true, true, false);
-    }
-
-    public void testCustomTitle() throws Throwable {
-        view.setTitle("CustomTitle");
-        verifySettings("CustomTitle", "EmptyView", "CustomTitle");
-        verifyEvents(true, false, true);
-    }
-
-    public void testCustomContentDescription() throws Throwable {
-        view.setContentDescription("CustomContentDescription");
-        verifySettings("EmptyView (CustomContentDescription)", "EmptyView",
-                "CustomContentDescription");
-        verifyEvents(true, false, true);
-    }
-
-    public void testCustomNameAndContentDescription() throws Throwable {
-        view.setPartName("CustomName");
-        view.setContentDescription("CustomContentDescription");
-        verifySettings("CustomName (CustomContentDescription)", "CustomName",
-                "CustomContentDescription");
-        verifyEvents(true, true, true);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithCreateControlsException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithCreateControlsException.java
deleted file mode 100644
index 7b6d677..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithCreateControlsException.java
+++ /dev/null
@@ -1,27 +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.tests.api.workbenchpart;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-public class ViewWithCreateControlsException extends ViewPart {
-
-    public void createPartControl(Composite parent) {
-        throw new RuntimeException("This exception was thrown intentionally as part of an error handling test");
-
-    }
-
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithDisposeException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithDisposeException.java
deleted file mode 100644
index 840b664..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithDisposeException.java
+++ /dev/null
@@ -1,36 +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.tests.api.workbenchpart;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.part.ViewPart;
-
-public class ViewWithDisposeException extends ViewPart {
-
-    public void createPartControl(Composite parent) {
-        parent.setLayout(new FillLayout());
-        
-        Label testLabel = new Label(parent, SWT.NONE);
-        
-        testLabel.setText("This view is supposed to throw an exception when closed");
-    }
-
-    public void setFocus() {
-
-    }
-
-    public void dispose() {
-        throw new RuntimeException("This exception was thrown intentionally as part of an error handling test");
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitException.java
deleted file mode 100644
index 6886b50..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitException.java
+++ /dev/null
@@ -1,38 +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.tests.api.workbenchpart;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-
-public class ViewWithInitException extends ViewPart {
-
-    public void init(IViewSite site) throws PartInitException {
-        throw new PartInitException("This exception was thrown intentionally as part of an error handling test");
-    }
-    
-    public void createPartControl(Composite parent) {
-        parent.setLayout(new FillLayout());
-        
-        Label message = new Label(parent, SWT.NONE);
-        message.setText("This view threw an exception on init. You should not be able to read this");
-    }
-
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitRuntimeException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitRuntimeException.java
deleted file mode 100644
index 2933274..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/api/workbenchpart/ViewWithInitRuntimeException.java
+++ /dev/null
@@ -1,38 +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.tests.api.workbenchpart;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-
-public class ViewWithInitRuntimeException extends ViewPart {
-
-    public void init(IViewSite site) throws PartInitException {
-        throw new RuntimeException("This exception was thrown intentionally as part of an error handling test");
-    }
-    
-    public void createPartControl(Composite parent) {
-        parent.setLayout(new FillLayout());
-        
-        Label message = new Label(parent, SWT.NONE);
-        message.setText("This view threw an exception on init. You should not be able to read this");
-    }
-
-    public void setFocus() {
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AbstractTestLogger.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AbstractTestLogger.java
deleted file mode 100644
index 76fa5be..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AbstractTestLogger.java
+++ /dev/null
@@ -1,18 +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.tests.autotests;
-
-/**
- * @since 3.1
- */
-public abstract class AbstractTestLogger {
-    public abstract void reportResult(String testName, TestResult result) throws Throwable;
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTest.java
deleted file mode 100644
index da774f6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTest.java
+++ /dev/null
@@ -1,19 +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.tests.autotests;
-
-/**
- * @since 3.1
- */
-public interface AutoTest {
-    public abstract String getName();
-    public abstract String performTest() throws Throwable;
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestLogger.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestLogger.java
deleted file mode 100644
index 79d5411..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestLogger.java
+++ /dev/null
@@ -1,72 +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.tests.autotests;
-
-import java.net.URL;
-
-import org.eclipse.ui.WorkbenchException;
-
-/**
- * @since 3.1
- */
-public class AutoTestLogger extends AbstractTestLogger {
-
-    private TestResults errors = new TestResults();
-    private TestResults expectedResults;
-    private TestResults unknownTests = new TestResults();
-    
-    public AutoTestLogger(URL expectedResultsFile) throws WorkbenchException {
-        this(new TestResults(XmlUtil.read(expectedResultsFile)));
-    }
-    
-    public AutoTestLogger(TestResults expectedResults) {
-        this.expectedResults = expectedResults;
-    }
-    
-    public AutoTestLogger() {
-        this(new TestResults());
-    }
-    
-    public void setExpectedResults(TestResults results) {
-        this.expectedResults = results;
-    }
-    
-    public TestResults getErrors() {
-        return errors;
-    }
-    
-    public TestResults getUnknownTests() {
-        return unknownTests;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.result.AutoTestResult#reportResult(java.lang.String, java.lang.String)
-     */
-    public void reportResult(String testName, TestResult result) throws Throwable {
-        TestResultFilter expectedResult = expectedResults.get(testName);
-        
-        if (expectedResult == null) {
-            // If unknown test name
-            unknownTests.put(testName, new TestResultFilter(result));
-        } else {
-            try {
-                // Check if this is the expected result
-                expectedResult.assertResult(result);
-            } catch (Throwable t) {
-                // If not, record the invalid result
-                errors.put(testName, new TestResultFilter(result));
-                throw t;
-            }
-        }
-        
-        // Test passed. Nothing to do.
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestSuite.java
deleted file mode 100644
index bd9f594..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestSuite.java
+++ /dev/null
@@ -1,93 +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.tests.autotests;
-
-import java.net.URL;
-
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.tests.TestPlugin;
-
-/**
- * @since 3.1
- */
-public class AutoTestSuite extends TestSuite {
-    private AutoTestLogger logger;
-    
-    public AutoTestSuite(URL expectedResults) {
-        if (expectedResults == null) {
-            logger = new AutoTestLogger();
-        } else {
-            try {
-                logger = new AutoTestLogger(expectedResults);
-            } catch (WorkbenchException e) {
-                logger = new AutoTestLogger();
-                e.printStackTrace();
-            }
-        }
-    }
-    
-    protected AutoTestLogger getLog() {
-        return logger;
-    }
-    
-    public void addWrapper(AutoTest test) {
-        addTest(new AutoTestWrapper(test, logger));
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestSuite#run(junit.framework.TestResult)
-     */
-    public void run(TestResult result) {
-        super.run(result);
-
-        IPath statePath = Platform.getStateLocation(TestPlugin.getDefault().getBundle());
-        
-        String testName = this.getName();
-        if (testName == null) {
-            testName = this.getClass().getName();
-        }
-        
-        if (!logger.getErrors().isEmpty()) {
-            IPath errorsPath = statePath.append(testName).append("errors.xml");
-            
-            System.out.println("Errors detected. Results written to " + errorsPath.toString());
-
-            XMLMemento output = XMLMemento.createWriteRoot("errors");
-            logger.getErrors().saveState(output);
-            try {
-                XmlUtil.write(errorsPath.toFile(), output);
-            } catch (WorkbenchException e) {
-                e.printStackTrace();
-            }
-        }
-        
-        if (!logger.getUnknownTests().isEmpty()) {
-
-            IPath unknownPath = statePath.append(testName).append("newtests.xml");
-            
-            System.out.println("New tests detected. Results written to " + unknownPath.toString());
-
-            XMLMemento output = XMLMemento.createWriteRoot("unknown");
-            logger.getUnknownTests().saveState(output);
-            try {
-                XmlUtil.write(unknownPath.toFile(), output);
-            } catch (WorkbenchException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestWrapper.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestWrapper.java
deleted file mode 100644
index fce6c66..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/AutoTestWrapper.java
+++ /dev/null
@@ -1,44 +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.tests.autotests;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.1
- */
-public class AutoTestWrapper extends TestCase {
-    private AutoTest test;
-    private AbstractTestLogger log;
-
-    public AutoTestWrapper(AutoTest test, AbstractTestLogger resultLog) {
-        super(test.getName());
-        
-        this.test = test;
-        this.log = resultLog;
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#runTest()
-     */
-    protected void runTest() throws Throwable {
-        String testName = test.getName();
-        
-        TestResult result;
-        try {
-            result = new TestResult(test.performTest());
-        } catch (Throwable t) {
-            result = new TestResult(t);
-        }
-        
-        log.reportResult(testName, result);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResult.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResult.java
deleted file mode 100644
index 4809c95..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResult.java
+++ /dev/null
@@ -1,45 +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.tests.autotests;
-
-
-/**
- * @since 3.1
- */
-public class TestResult {
-    private String result;
-    private Throwable thrownException;
-    
-    public TestResult(String expectedResult) {
-        this.result = expectedResult;
-    }
-    
-    public TestResult(Throwable t) {
-        this.result = null;
-        this.thrownException = t;
-    }
-    
-    /**
-     * Return the expected result or null if the test threw an
-     * exception rather than terminate normally.
-     *
-     * @return the expected result or null if the test threw an
-     * exception rather than terminate normally.
-     */
-    public String getReturnValue() {
-        return result;
-    }
-    
-    public Throwable getException() {
-        return thrownException;
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResultFilter.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResultFilter.java
deleted file mode 100644
index c3e91cf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResultFilter.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.tests.autotests;
-
-import junit.framework.Assert;
-
-import org.eclipse.ui.IMemento;
-
-/**
- * @since 3.1
- */
-public class TestResultFilter {
-    private static final String ATT_RESULT = "result";
-    private static final String ATT_EXCEPTION = "exception";
-    private String result;
-    private String expectedException;
-    
-    public TestResultFilter(IMemento toLoad) {
-        this.result = toLoad.getString(ATT_RESULT);
-        this.expectedException = toLoad.getString(ATT_EXCEPTION);
-    }
-    
-    /**
-     * Creates a new filter that accepts the given test result
-     * 
-     * @param toAccept
-     */
-    public TestResultFilter(TestResult toAccept) {
-        if (toAccept.getException() != null) {
-            result = null;
-            expectedException = toAccept.getException().toString();
-        } else {
-            result = toAccept.getReturnValue();
-            expectedException = null;
-        }
-    }
-    
-    public void saveState(IMemento toSave) {
-        if (result != null) {
-            toSave.putString(ATT_RESULT, result);
-        }
-        
-        if (expectedException != null) {
-            toSave.putString(ATT_EXCEPTION, expectedException);
-        }
-    }
-    
-    public void assertResult(TestResult actual) throws Throwable {
-        if (result != null) {
-            if (actual.getException() != null) {
-                throw actual.getException();
-            }
-            
-            Assert.assertEquals(result, actual.getReturnValue());
-        } else {       
-            if (actual.getException() == null) {
-                Assert.assertTrue("Test should have thrown exception " + expectedException + " but returned result " 
-                    + actual.getReturnValue(), false);
-            }
-            Assert.assertEquals("Test threw wrong type of exception", actual.getException().toString(), expectedException);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResults.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResults.java
deleted file mode 100644
index 66f701d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/TestResults.java
+++ /dev/null
@@ -1,75 +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.tests.autotests;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.ui.IMemento;
-
-/**
- * @since 3.1
- */
-public class TestResults {
-    private Map results = new HashMap();
-    private final static String ATT_NAME = "name";
-    private final static String ATT_TEST = "test";
-    
-    public TestResults() {
-    }
-    
-    public TestResults(IMemento toLoad) {
-        IMemento[] tests = toLoad.getChildren(ATT_TEST);
-        
-        for (int i = 0; i < tests.length; i++) {
-            IMemento memento = tests[i];
-            
-            String name = memento.getString(ATT_NAME);
-            if (name == null) {
-                continue;
-            }
-            
-            results.put(name, new TestResultFilter(memento));
-        }
-    }
-    
-    public String[] getTestNames() {
-        Collection ids = results.keySet();
-        
-        return (String[])ids.toArray(new String[ids.size()]);
-    }
-    
-    public TestResultFilter get(String testName) {
-        return (TestResultFilter) results.get(testName);
-    }
-
-    public void put(String testName, TestResultFilter filter) {
-        results.put(testName, filter);
-    }
-    
-    public boolean isEmpty() {
-        return results.isEmpty();
-    }
-    
-    public void saveState(IMemento memento) {
-        for (Iterator iter = results.keySet().iterator(); iter.hasNext();) {
-            String testName = (String) iter.next();
-            
-            TestResultFilter next = get(testName);
-            
-            IMemento child = memento.createChild(ATT_TEST);  
-            child.putString(ATT_NAME, testName);
-            next.saveState(child);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/UITestCaseWithResult.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/UITestCaseWithResult.java
deleted file mode 100644
index 0ef73c0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/UITestCaseWithResult.java
+++ /dev/null
@@ -1,42 +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.tests.autotests;
-
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.1
- */
-public abstract class UITestCaseWithResult extends UITestCase implements AutoTest {
-    private AbstractTestLogger resultLog;
-    
-    public UITestCaseWithResult(String testName, AbstractTestLogger log) {
-        super(testName);
-        this.resultLog = log;
-    }
-    
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#runTest()
-     */
-    protected final void runTest() throws Throwable {
-        String testName = getName();
-        
-        TestResult result;
-        try {
-            result = new TestResult(performTest());
-        } catch (Throwable t) {
-            result = new TestResult(t);
-        }
-        
-        resultLog.reportResult(testName, result);
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/XmlUtil.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/XmlUtil.java
deleted file mode 100644
index 401a44f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/autotests/XmlUtil.java
+++ /dev/null
@@ -1,84 +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.tests.autotests;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.tests.TestPlugin;
-
-/**
- * @since 3.1
- */
-public class XmlUtil {
-    public static IMemento read(InputStream toRead) throws WorkbenchException {
-        InputStreamReader reader = new InputStreamReader(toRead);
-
-        return XMLMemento.createReadRoot(reader);
-    }
-    
-    public static IMemento read(URL toRead) throws WorkbenchException {
-        try {
-            return read(toRead.openStream());
-        } catch (IOException e) {
-            throw new WorkbenchException(new Status(IStatus.ERROR, 
-                    TestPlugin.getDefault().getBundle().getSymbolicName(),
-                    IStatus.OK, null, e));
-        }
-    }
-    
-    public static IMemento read(File toRead) throws WorkbenchException {
-        FileInputStream input;
-        try {
-            input = new FileInputStream(toRead);
-            return read(input);
-        } catch (FileNotFoundException e) {
-            throw new WorkbenchException(new Status(IStatus.ERROR, 
-                    TestPlugin.getDefault().getBundle().getSymbolicName(),
-                    IStatus.OK, null, e));
-        }
-    }
-    
-    public static void write(File file, XMLMemento data) throws WorkbenchException {
-
-        FileOutputStream output;
-        try {
-            file.getParentFile().mkdirs();
-            file.delete();
-            file.createNewFile();
-
-            output = new FileOutputStream(file);
-            OutputStreamWriter writer = new OutputStreamWriter(output);
-            data.save(writer);
-            output.close();
-        } catch (FileNotFoundException e) {
-            throw new WorkbenchException(new Status(IStatus.ERROR, 
-                    TestPlugin.getDefault().getBundle().getSymbolicName(),
-                    IStatus.OK, e.toString(), e));
-        } catch (IOException e) {
-            throw new WorkbenchException(new Status(IStatus.ERROR, 
-                    TestPlugin.getDefault().getBundle().getSymbolicName(),
-                    IStatus.OK, e.toString(), e));
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActionDelegateProxyTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActionDelegateProxyTest.java
deleted file mode 100644
index 4486c2d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActionDelegateProxyTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.tests.api.workbenchpart.MenuContributionHarness;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- *
- */
-public class ActionDelegateProxyTest extends UITestCase {
-	/**
-	 * 
-	 */
-	private static final String DELEGATE_ACTION_SET_ID = "org.eclipse.ui.tests.delegateActionSet";
-	private static final String INC_COMMAND = "org.eclipse.ui.tests.incMenuHarness";
-	private static final String VIEW_ID = "org.eclipse.ui.tests.api.MenuTestHarness";
-
-	private static final String GO_COMMAND = "org.eclipse.ui.tests.simplyGo";
-	private static final String STAY_COMMAND = "org.eclipse.ui.tests.simplyStay";
-
-	/**
-	 * @param testName
-	 */
-	public ActionDelegateProxyTest(String testName) {
-		super(testName);
-	}
-
-	public void testViewDelegate() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-		assertNull(page.findView(VIEW_ID));
-		IViewPart view = page.showView(VIEW_ID);
-		assertNotNull(view);
-		assertTrue(view instanceof MenuContributionHarness);
-		MenuContributionHarness mch = (MenuContributionHarness) view;
-		assertEquals(0, mch.getCount());
-		IHandlerService service = (IHandlerService) window.getService(IHandlerService.class);
-		service.executeCommand(INC_COMMAND, null);
-		assertEquals(1, mch.getCount());
-		service.executeCommand(INC_COMMAND, null);
-		assertEquals(2, mch.getCount());
-		
-		page.hideView(view);
-		IViewPart view2 = page.showView(VIEW_ID);
-		assertFalse(view==view2);
-		view = view2;
-		assertNotNull(view);
-		assertTrue(view instanceof MenuContributionHarness);
-		mch = (MenuContributionHarness) view;
-		assertEquals(0, mch.getCount());
-		service.executeCommand(INC_COMMAND, null);
-		assertEquals(1, mch.getCount());
-		service.executeCommand(INC_COMMAND, null);
-		assertEquals(2, mch.getCount());
-	}
-	
-	public void testWWActionDelegate() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		window.getActivePage().showActionSet(DELEGATE_ACTION_SET_ID);
-		IHandlerService service = (IHandlerService) window.getService(IHandlerService.class);
-		assertFalse(SimplyGoActionDelegate.executed);
-		service.executeCommand(GO_COMMAND, null);
-		assertTrue(SimplyGoActionDelegate.executed);
-	}
-	
-	private static final String contents = "one\ntwo\nthree\n";
-	
-	public void testEditorActionDelegate() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		window.getActivePage().closeAllEditors(false);
-		IHandlerService service = (IHandlerService) window.getService(IHandlerService.class);
-		assertFalse(EditorActionDelegate.executed);
-		EditorActionDelegate.part = null;
-		try {
-			service.executeCommand(STAY_COMMAND, null);
-			fail("the command is not yet handled");
-		} catch (NotHandledException e) {
-			// good
-		}
-		assertFalse(EditorActionDelegate.executed);
-		assertNull(EditorActionDelegate.part);
-
-		IProject proj = FileUtil.createProject(GO_COMMAND);
-		IFile file = FileUtil.createFile("test.txt", proj);
-		InputStream in = new ByteArrayInputStream(contents.getBytes());
-		file.setContents(in, true, false, new NullProgressMonitor());
-		IEditorPart editor1 = IDE.openEditor(window.getActivePage(), file);
-		assertNotNull(editor1);
-		assertEquals("org.eclipse.ui.DefaultTextEditor", editor1.getSite().getId());
-		
-		file = FileUtil.createFile("test2.txt", proj);
-		in = new ByteArrayInputStream(contents.getBytes());
-		file.setContents(in, true, false, new NullProgressMonitor());
-		IEditorPart editor2 = IDE.openEditor(window.getActivePage(), file);
-		assertNotNull(editor2);
-		assertEquals("org.eclipse.ui.DefaultTextEditor", editor2.getSite().getId());
-		
-		service.executeCommand(STAY_COMMAND, null);
-		assertTrue(EditorActionDelegate.executed);
-		assertEquals(editor2, EditorActionDelegate.part);
-		
-		window.getActivePage().activate(editor1);
-		processEvents();
-		service.executeCommand(STAY_COMMAND, null);
-		assertTrue(EditorActionDelegate.executed);
-		assertEquals(editor1, EditorActionDelegate.part);
-		
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveActionSetExpression.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveActionSetExpression.java
deleted file mode 100644
index 97a50fa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveActionSetExpression.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.tests.commands;
-
-import java.util.Collection;
-
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionInfo;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.ui.ISources;
-
-public class ActiveActionSetExpression extends Expression {
-	private String actionSetId;
-
-	private String[] expressionInfo;
-
-	public ActiveActionSetExpression(String id) {
-		this(id, new String[] { ISources.ACTIVE_ACTION_SETS_NAME });
-	}
-
-	public ActiveActionSetExpression(String id, String[] info) {
-		actionSetId = id;
-		expressionInfo = info;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.expressions.Expression#collectExpressionInfo(org.eclipse.core.expressions.ExpressionInfo)
-	 */
-	public void collectExpressionInfo(ExpressionInfo info) {
-		for (int i = 0; i < expressionInfo.length; i++) {
-			info.addVariableNameAccess(expressionInfo[i]);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.expressions.Expression#evaluate(org.eclipse.core.expressions.IEvaluationContext)
-	 */
-	public EvaluationResult evaluate(IEvaluationContext context) {
-		final Object variable = context
-				.getVariable(ISources.ACTIVE_ACTION_SETS_NAME);
-		if (variable != null) {
-			if (((Collection) variable).contains(actionSetId)) {
-				return EvaluationResult.TRUE;
-			}
-		}
-		return EvaluationResult.FALSE;
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveContextExpression.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveContextExpression.java
deleted file mode 100644
index bdcd4ca..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ActiveContextExpression.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import java.util.Collection;
-
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionInfo;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.internal.expressions.ActivePartExpression;
-
-public class ActiveContextExpression extends Expression {
-	/**
-	 * The seed for the hash code for all schemes.
-	 */
-	private static final int HASH_INITIAL = ActivePartExpression.class
-			.getName().hashCode();
-
-	private String contextId;
-
-	private String[] expressionInfo;
-
-	public ActiveContextExpression(String id, String[] info) {
-		contextId = id;
-		expressionInfo = info;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.expressions.Expression#collectExpressionInfo(org.eclipse.core.expressions.ExpressionInfo)
-	 */
-	public void collectExpressionInfo(ExpressionInfo info) {
-		for (int i = 0; i < expressionInfo.length; i++) {
-			info.addVariableNameAccess(expressionInfo[i]);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.expressions.Expression#evaluate(org.eclipse.core.expressions.IEvaluationContext)
-	 */
-	public EvaluationResult evaluate(IEvaluationContext context) {
-		final Object variable = context
-				.getVariable(ISources.ACTIVE_CONTEXT_NAME);
-		if (variable != null) {
-			if (((Collection) variable).contains(contextId)) {
-				return EvaluationResult.TRUE;
-			}
-		}
-		return EvaluationResult.FALSE;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o instanceof ActiveContextExpression) {
-			ActiveContextExpression ace = (ActiveContextExpression) o;
-			return equals(contextId, ace.contextId);
-		}
-		return false;
-	}
-
-	protected final int computeHashCode() {
-		return HASH_INITIAL * HASH_FACTOR + hashCode(contextId);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug125792Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug125792Test.java
deleted file mode 100644
index 1497a94..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug125792Test.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.tests.commands;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests a bug found in
- * {@link ParameterizedCommand#generateCombinations(Command)} and its private
- * helper method <code>expandParameters</code>. The bug is causing a
- * <code>StackOverflowError</code> when dealing with commands that have
- * several optional parameters for which there are no
- * <code>IParameterValues</code>.
- * 
- * @since 3.2
- */
-public class Bug125792Test extends UITestCase {
-
-	public Bug125792Test(final String name) {
-		super(name);
-	}
-
-	private static final String COMMAND_ID = "org.eclipse.ui.tests.commands.bug125792";
-
-	public void testParameterizedCommand_generateCombinations()
-			throws CommandException {
-		Command command = getCommandService().getCommand(COMMAND_ID);
-		ParameterizedCommand.generateCombinations(command);
-	}
-
-	private ICommandService getCommandService() {
-		Object serviceObject = getWorkbench().getAdapter(ICommandService.class);
-		if (serviceObject != null) {
-			ICommandService service = (ICommandService) serviceObject;
-			return service;
-		}
-		return null;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug66182Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug66182Test.java
deleted file mode 100644
index e82bd84..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug66182Test.java
+++ /dev/null
@@ -1,340 +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.ui.tests.commands;
-
-import java.util.Map;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.AbstractHandler;
-import org.eclipse.ui.commands.ExecutionException;
-import org.eclipse.ui.commands.HandlerSubmission;
-import org.eclipse.ui.commands.ICommand;
-import org.eclipse.ui.commands.IHandler;
-import org.eclipse.ui.commands.IWorkbenchCommandSupport;
-import org.eclipse.ui.commands.NotHandledException;
-import org.eclipse.ui.commands.Priority;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests that dialogs will inherit the handlers from the workbench window, if
- * none is defined for the dialog itself. It tests all of the various
- * combinations of this situation.
- * 
- * @since 3.0
- */
-public final class Bug66182Test extends UITestCase {
-
-	/**
-	 * Constructor for Bug66182Test.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug66182Test(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests that the dialog handlers will take priority. The set-up is a
-	 * workbench window with a handler registered for the command to test. Then
-	 * there is a dialog opened with a handler for the same command. The test is
-	 * to see that the dialog's handler gets priority.
-	 * 
-	 * @throws ExecutionException
-	 *             This should never happen, and indicates a problem with the
-	 *             test.
-	 * @throws NotHandledException
-	 *             Indicates that no handler was found where one should have
-	 *             been found.
-	 */
-	public final void testDialogHandlers() throws ExecutionException,
-			NotHandledException {
-		// Open a test window.
-//		final IWorkbenchWindow window = openTestWindow();
-//
-//		// Define a handler for some random command identifier.
-//		final Object windowResult = new Object();
-//		final IHandler windowHandler = new AbstractHandler() {
-//
-//			public Object execute(Map parameterValuesByName)
-//					throws ExecutionException {
-//				// Do nothing.
-//				return windowResult;
-//			}
-//		};
-//		final IWorkbenchCommandSupport commandSupport = fWorkbench
-//				.getCommandSupport();
-//		final String commandId = "org.eclipse.ui.tests.Bug66182";
-//		final Shell windowShell = window.getShell();
-//		final HandlerSubmission windowSubmission = new HandlerSubmission(null,
-//				windowShell, null, commandId, windowHandler, Priority.MEDIUM);
-//		commandSupport.addHandlerSubmission(windowSubmission);
-//
-//		// Open a dialog.
-//		final Shell dialogShell = new Shell(windowShell);
-//		dialogShell.pack();
-//		dialogShell.open();
-//		final Display display = dialogShell.getDisplay();
-//		while (display.readAndDispatch())
-//			;
-//
-//		/*
-//		 * Define a handler for the same command identifier, but for this
-//		 * dialog.
-//		 */
-//		final Object dialogResult = new Object();
-//		final IHandler dialogHandler = new AbstractHandler() {
-//
-//			public Object execute(Map parameterValuesByName)
-//					throws ExecutionException {
-//				// Do nothing.
-//				return dialogResult;
-//			}
-//		};
-//		final HandlerSubmission dialogSubmission = new HandlerSubmission(null,
-//				dialogShell, null, commandId, dialogHandler, Priority.MEDIUM);
-//		commandSupport.addHandlerSubmission(dialogSubmission);
-//
-//		// Check to see which handler is the right handler.
-//		final ICommand command = commandSupport.getCommandManager().getCommand(
-//				commandId);
-//		assertSame(
-//				"The active shell must be the dialog.  If you are activating other shells while this test is running, then this test will fail",
-//				dialogShell, display.getActiveShell());
-//		assertSame(
-//				"The active workbench window must be the window created in this test.  If you are activating other workbench windows, then this test will fail",
-//				windowShell, fWorkbench.getActiveWorkbenchWindow().getShell());
-//		final Object result = command.execute(Collections.EMPTY_MAP);
-//		assertSame(
-//				"The dialog handler was not chosen when both a window and dialog handler were defined.",
-//				dialogResult, result);
-//
-//		// Close the dialog and let the event loop spin.
-//		commandSupport.removeHandlerSubmission(windowSubmission);
-//		commandSupport.removeHandlerSubmission(dialogSubmission);
-//		dialogShell.close();
-//		while (display.readAndDispatch())
-//			;
-	}
-
-	/**
-	 * Tests that, in the absence of a dialog handler, that the window handler
-	 * will be given a chance to take over. The set-up is a workbench window
-	 * with a handler registered for the command to test. Then there is a dialog
-	 * opened, but with no handler. The test is to see that the window's handler
-	 * is active.
-	 * 
-	 * @throws ExecutionException
-	 *             This should never happen, and indicates a problem with the
-	 *             test.
-	 * @throws NotHandledException
-	 *             Indicates that no handler was found where one should have
-	 *             been found.
-	 */
-	public final void testFallbackToWindow() throws ExecutionException,
-			NotHandledException {
-		// Open a test window.
-//		final IWorkbenchWindow window = openTestWindow();
-//
-//		// Define a handler for some random command identifier.
-//		final Object windowResult = new Object();
-//		final IHandler windowHandler = new AbstractHandler() {
-//
-//			public Object execute(Map parameterValuesByName)
-//					throws ExecutionException {
-//				// Do nothing.
-//				return windowResult;
-//			}
-//		};
-//		final IWorkbenchCommandSupport commandSupport = fWorkbench
-//				.getCommandSupport();
-//		final String commandId = "org.eclipse.ui.tests.Bug66182";
-//		final Shell windowShell = window.getShell();
-//		final HandlerSubmission windowSubmission = new HandlerSubmission(null,
-//				windowShell, null, commandId, windowHandler, Priority.MEDIUM);
-//		commandSupport.addHandlerSubmission(windowSubmission);
-//
-//		// Open a dialog.
-//		final Shell dialogShell = new Shell(windowShell);
-//		final IWorkbenchContextSupport contextSupport = fWorkbench
-//				.getContextSupport();
-//		contextSupport.registerShell(dialogShell,
-//				IWorkbenchContextSupport.TYPE_WINDOW);
-//		dialogShell.pack();
-//		dialogShell.open();
-//		final Display display = dialogShell.getDisplay();
-//		while (display.readAndDispatch())
-//			;
-//
-//		// Check to see which handler is the right handler.
-//		final ICommand command = commandSupport.getCommandManager().getCommand(
-//				commandId);
-//		assertSame(
-//				"The active shell must be the dialog.  If you are activating other shells while this test is running, then this test will fail",
-//				dialogShell, display.getActiveShell());
-//		assertSame(
-//				"The active workbench window must be the window created in this test.  If you are activating other workbench windows, then this test will fail",
-//				windowShell, fWorkbench.getActiveWorkbenchWindow().getShell());
-//		final Object result = command.execute(new HashMap());
-//		assertSame(
-//				"The window handler was not chosen when both a dialog was open with no handler, but the active workbench window did have a handler.",
-//				windowResult, result);
-//
-//		// Close the dialog and let the event loop spin.
-//		commandSupport.removeHandlerSubmission(windowSubmission);
-//		contextSupport.unregisterShell(dialogShell);
-//		dialogShell.close();
-//		while (display.readAndDispatch())
-//			;
-	}
-
-	/**
-	 * Tests that if a dialog is open, that the application will not fall back
-	 * to the dialog. The set-up is a workbench window with a handler registered
-	 * for the command to test. Then there is a dialog opened, but with no
-	 * handler. The test is to see that no handler is active.
-	 * 
-	 * @throws ExecutionException
-	 *             This should never happen, and indicates a problem with the
-	 *             test.
-	 * @throws NotHandledException
-	 *             Indicates that no handler was found where one should have
-	 *             been found.
-	 */
-	public final void testFallbackToWindowBlockedByDialog()
-			throws ExecutionException, NotHandledException {
-		// Open a test window.
-		final IWorkbenchWindow window = openTestWindow();
-
-		// Define a handler for some random command identifier.
-		final Object windowResult = new Object();
-		final IHandler windowHandler = new AbstractHandler() {
-
-			public Object execute(Map parameterValuesByName)
-					throws ExecutionException {
-				// Do nothing.
-				return windowResult;
-			}
-		};
-		final IWorkbenchCommandSupport commandSupport = fWorkbench
-				.getCommandSupport();
-		final String commandId = "org.eclipse.ui.tests.Bug66182";
-		final Shell windowShell = window.getShell();
-		final HandlerSubmission windowSubmission = new HandlerSubmission(null,
-				windowShell, null, commandId, windowHandler, Priority.MEDIUM);
-		commandSupport.addHandlerSubmission(windowSubmission);
-
-		// Open a dialog.
-		final Shell dialogShell = new Shell(windowShell);
-		dialogShell.pack();
-		dialogShell.open();
-		final Display display = dialogShell.getDisplay();
-		while (display.readAndDispatch())
-			;
-
-		// Check to see which handler is the right handler.
-		final ICommand command = commandSupport.getCommandManager().getCommand(
-				commandId);
-		assertSame(
-				"The active shell must be the dialog.  If you are activating other shells while this test is running, then this test will fail",
-				dialogShell, display.getActiveShell());
-		assertSame(
-				"The active workbench window must be the window created in this test.  If you are activating other workbench windows, then this test will fail",
-				windowShell, fWorkbench.getActiveWorkbenchWindow().getShell());
-		assertTrue(
-				"When a dialog is open, it should not fall back to the active workbench window.",
-				!command.isHandled());
-
-		// Close the dialog and let the event loop spin.
-		commandSupport.removeHandlerSubmission(windowSubmission);
-		dialogShell.close();
-		while (display.readAndDispatch())
-			;
-	}
-
-	/**
-	 * Tests that if the workbench window is the active shell, that its handlers
-	 * will take priority. The scenario has two handlers defined: one for the
-	 * workbench window, and one for a dialog that is not open. The workbench
-	 * window handler should be the active handler.
-	 * 
-	 * @throws ExecutionException
-	 *             This should never happen, and indicates a problem with the
-	 *             test.
-	 * @throws NotHandledException
-	 *             Indicates that no handler was found where one should have
-	 *             been found.
-	 */
-	public final void testWindow() throws ExecutionException,
-			NotHandledException {
-		// Open a test window.
-//		final IWorkbenchWindow window = openTestWindow();
-//
-//		// Define a handler for some random command identifier.
-//		final Object windowResult = new Object();
-//		final IHandler windowHandler = new AbstractHandler() {
-//
-//			public Object execute(Map parameterValuesByName)
-//					throws ExecutionException {
-//				// Do nothing.
-//				return windowResult;
-//			}
-//		};
-//		final IWorkbenchCommandSupport commandSupport = fWorkbench
-//				.getCommandSupport();
-//		final String commandId = "org.eclipse.ui.tests.Bug66182";
-//		final Shell windowShell = window.getShell();
-//		final HandlerSubmission windowSubmission = new HandlerSubmission(null,
-//				windowShell, null, commandId, windowHandler, Priority.MEDIUM);
-//		commandSupport.addHandlerSubmission(windowSubmission);
-//
-//		// Create a dialog.
-//		final Shell dialogShell = new Shell(windowShell);
-//
-//		/*
-//		 * Define a handler for the same command identifier, but for this
-//		 * dialog.
-//		 */
-//		final Object dialogResult = new Object();
-//		final IHandler dialogHandler = new AbstractHandler() {
-//
-//			public Object execute(Map parameterValuesByName)
-//					throws ExecutionException {
-//				// Do nothing.
-//				return dialogResult;
-//			}
-//		};
-//		final HandlerSubmission dialogSubmission = new HandlerSubmission(null,
-//				dialogShell, null, commandId, dialogHandler, Priority.MEDIUM);
-//		commandSupport.addHandlerSubmission(dialogSubmission);
-//
-//		// Check to see which handler is the right handler.
-//		final ICommand command = commandSupport.getCommandManager().getCommand(
-//				commandId);
-//		assertSame(
-//				"The active shell must be the dialog.  If you are activating other shells while this test is running, then this test will fail",
-//				windowShell, fWorkbench.getDisplay().getActiveShell());
-//		assertSame(
-//				"The active workbench window must be the window created in this test.  If you are activating other workbench windows, then this test will fail",
-//				windowShell, fWorkbench.getActiveWorkbenchWindow().getShell());
-//		final Object result = command.execute(new HashMap());
-//		assertSame(
-//				"The window handler was not chosen when both a dialog was open with no handler, but the active workbench window did have a handler.",
-//				windowResult, result);
-//
-//		// Close the dialog and let the event loop spin.
-//		commandSupport.removeHandlerSubmission(windowSubmission);
-//		dialogShell.dispose();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug70503Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug70503Test.java
deleted file mode 100644
index 3a397f9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug70503Test.java
+++ /dev/null
@@ -1,90 +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.tests.commands;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.commands.ActionHandler;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * This test whether an ActionHandler will update its internal cache of
- * properties when a RetargetAction changes only its handler.
- * 
- * @since 3.0.1
- */
-public class Bug70503Test extends UITestCase {
-
-	private class PubliclyRetargettableAction extends RetargetAction {
-		/**
-		 * Constructs a new instance of <code>PubliclyRetargettableAction</code>.
-		 * 
-		 * @param actionID
-		 *            The action identifier to pass to the
-		 *            <code>RetargetAction</code>; should not be
-		 *            <code>null</code>.
-		 * @param text
-		 *            The text to be displayed on the action; may be
-		 *            <code>null</code> if there should be no text.
-		 */
-		public PubliclyRetargettableAction(String actionID, String text) {
-			super(actionID, text);
-		}
-
-		/**
-		 * A public version of the <code>setActionHandler</code> method.
-		 * 
-		 * @param handler
-		 *            The new action handler; may be <code>null</code> if
-		 *            there is no handler currently.
-		 */
-		private final void changeHandler(final IAction handler) {
-			super.setActionHandler(handler);
-		}
-	}
-
-	/**
-	 * Constructor for Bug70503Test.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug70503Test(String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests whether changing only the handler will update an action handler.
-	 * The set up is a <code>RetargetAction</code> wrapped in an
-	 * <code>ActionHandler</code>. The test verifies a switch back and forth
-	 * to make sure that the updates are happening.
-	 *  
-	 */
-	public final void testHandlerChangeCausesUpdate() {
-		final PubliclyRetargettableAction retargetAction = new PubliclyRetargettableAction(
-				"actionID", "text");
-		final ActionHandler actionHandler = new ActionHandler(retargetAction);
-		assertFalse("The retarget action handler should start 'unhandled'",
-				((Boolean) actionHandler.getAttributeValuesByName().get(
-						"handled")).booleanValue());
-		retargetAction.changeHandler(new PubliclyRetargettableAction(
-				"actionID", "text"));
-		assertTrue(
-				"The retarget action handler should recognize the new handler.",
-				((Boolean) actionHandler.getAttributeValuesByName().get(
-						"handled")).booleanValue());
-		retargetAction.changeHandler(null);
-		assertFalse(
-				"The retarget action handler should recognize that the handler is now gone.",
-				((Boolean) actionHandler.getAttributeValuesByName().get(
-						"handled")).booleanValue());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug73756Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug73756Test.java
deleted file mode 100644
index 296ed93..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug73756Test.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import java.text.MessageFormat;
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.ExternalActionManager;
-import org.eclipse.jface.util.Util;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.statushandlers.TestStatusHandler;
-
-/**
- * A tests whether is active will log an exception if the command is not
- * defined.
- * 
- * @since 3.1
- */
-public final class Bug73756Test extends UITestCase {
-
-	private static String CMD_ID = "a command that is not defined";
-
-	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
-			.getBundle(ExternalActionManager.class.getName());
-
-	private static int SEVERITY = IStatus.ERROR;
-
-	private static String MESSAGE = MessageFormat.format(Util.translateString(
-			RESOURCE_BUNDLE, "undefinedCommand.WarningMessage", null), //$NON-NLS-1$
-			new String[] { CMD_ID });
-
-	private static String PLUGIN_ID = "org.eclipse.jface";
-
-	/**
-	 * Constructs a new instance of <code>Bug73756Test</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug73756Test(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests that calling <code>isActive()</code> on an undefined command
-	 * causes a log message to be written. This simple calls
-	 * <code>isActive()</code> for a bogus command identifier. A log listener
-	 * flips a boolean flag if a log message is written.
-	 */
-	public final void testUndefinedCommandIsActiveLogged() {
-		// Check if a bogus command is active.
-		ExternalActionManager.getInstance().getCallback().isActive(CMD_ID);
-
-		// Check if a correct status is logged
-		assertEquals(TestStatusHandler.getLastHandledStyle(), StatusManager.LOG);
-		assertStatusAdapter(TestStatusHandler.getLastHandledStatusAdapter());
-	}
-
-	/**
-	 * Checks whether the last handled status is correct
-	 */
-	private void assertStatusAdapter(StatusAdapter statusAdapter) {
-		assertNotNull("A warning should have been logged.", statusAdapter);
-		IStatus status = statusAdapter.getStatus();
-		assertEquals(status.getSeverity(), SEVERITY);
-		assertEquals(status.getPlugin(), PLUGIN_ID);
-		assertEquals(status.getMessage(), MESSAGE);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74982Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74982Test.java
deleted file mode 100644
index 376db71..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74982Test.java
+++ /dev/null
@@ -1,100 +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.tests.commands;
-
-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.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.commands.ExecutionException;
-import org.eclipse.ui.commands.ICommand;
-import org.eclipse.ui.commands.IWorkbenchCommandSupport;
-import org.eclipse.ui.commands.NotHandledException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * A test for whether the select all handler will send a selection event.
- * 
- * @since 3.1
- */
-public final class Bug74982Test extends UITestCase {
-
-    /**
-     * Whether the selection event has been fired.
-     */
-    private boolean selectionEventFired = false;
-
-    /**
-     * Constructs a new instance of <code>Bug74982Test</code>.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug74982Test(final String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that the <code>SelectAllHandler</code> triggers a selection
-     * event. Creates a dialog with a text widget, gives the text widget focus,
-     * and then calls the select all command. This should then call the
-     * <code>SelectAllHandler</code> and trigger a selection event.
-     * 
-     * @throws ExecutionException
-     *             If the <code>SelectAllHandler</code> is broken in some way.
-     * @throws NotHandledException
-     *             If the dialog does not have focus, or if the
-     *             <code>WorkbenchCommandSupport</code> class is broken in
-     *             some way.
-     */
-    public final void testSelectAllHandlerSendsSelectionEvent()
-            throws ExecutionException, NotHandledException {
-        // Create a dialog with a text widget.
-        final Shell dialog = new Shell(fWorkbench.getActiveWorkbenchWindow()
-                .getShell());
-        dialog.setLayout(new GridLayout());
-        final Text text = new Text(dialog, SWT.SINGLE);
-        text.setText("Mooooooooooooooooooooooooooooo");
-        text.setLayoutData(new GridData());
-        text.addSelectionListener(new SelectionAdapter() {
-            public void widgetSelected(SelectionEvent e) {
-                selectionEventFired = true;
-            }
-        });
-
-        // Open the dialog and give the text widget focus.
-        dialog.pack();
-        dialog.open();
-        text.setFocus();
-
-        // Spin the event loop to make sure focus is set-up properly.
-        final Display display = fWorkbench.getDisplay();
-        while (display.readAndDispatch()) {
-        	// Do nothing
-        }
-
-        // Get the select all command and execute it.
-        final IWorkbenchCommandSupport commandSupport = fWorkbench
-                .getCommandSupport();
-        final ICommand selectAllCommand = commandSupport.getCommandManager()
-                .getCommand("org.eclipse.ui.edit.selectAll");
-        selectAllCommand.execute(null);
-
-        // Check to see if the selection event has been fired.
-        assertTrue(
-                "The selection event was not fired when the SelectAllHandler was used.",
-                selectionEventFired);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74990Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74990Test.java
deleted file mode 100644
index 45c0579..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug74990Test.java
+++ /dev/null
@@ -1,108 +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.tests.commands;
-
-import java.util.Map;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.commands.AbstractHandler;
-import org.eclipse.ui.commands.ExecutionException;
-import org.eclipse.ui.commands.HandlerSubmission;
-import org.eclipse.ui.commands.ICommand;
-import org.eclipse.ui.commands.IHandler;
-import org.eclipse.ui.commands.IWorkbenchCommandSupport;
-import org.eclipse.ui.commands.Priority;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * A test for whether part identifiers work properly for HandlerSubmissions.
- * 
- * @since 3.1
- */
-public final class Bug74990Test extends UITestCase {
-
-	/**
-	 * Constructs a new instance of <code>Bug74990Test</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug74990Test(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests whether a part-specific handler -- submitted via Java code -- is
-	 * matched properly. This is only using the part id. The test verifies that
-	 * it is active when the part is active, and not active when the part is not
-	 * active.
-	 * 
-	 * @throws PartInitException
-	 *             If something goes wrong creating the part to which this
-	 *             handler is tied.
-	 * 
-	 */
-	public final void testPartIdSubmission() throws PartInitException {
-		// Define a command.
-		final String testCommandId = "org.eclipse.ui.tests.commands.Bug74990";
-		final IWorkbenchCommandSupport commandSupport = fWorkbench
-				.getCommandSupport();
-		final ICommand testCommand = commandSupport.getCommandManager()
-				.getCommand(testCommandId);
-
-		// Create a handler submission.
-		final IHandler handler = new AbstractHandler() {
-			public final Object execute(final Map parameterValuesByName)
-					throws ExecutionException {
-				// Do nothing.
-				return null;
-			}
-		};
-		final HandlerSubmission testSubmission = new HandlerSubmission(
-				"org.eclipse.ui.tests.api.MockViewPart", null, null,
-				testCommandId, handler, Priority.MEDIUM);
-		commandSupport.addHandlerSubmission(testSubmission);
-
-		try {
-			// Test to make sure the command is not currently handled.
-			assertTrue("The MockViewPart command should not be handled",
-					!testCommand.isHandled());
-
-			/*
-			 * Open a window with the MockViewPart, and make sure it is now
-			 * handled.
-			 */
-			final IWorkbenchPage page = openTestWindow().getActivePage();
-			final IViewPart openedView = page
-					.showView("org.eclipse.ui.tests.api.MockViewPart");
-			page.activate(openedView);
-			while (fWorkbench.getDisplay().readAndDispatch()) {
-				// Read the event queue
-			}
-			assertTrue("The MockViewPart command should be handled",
-					testCommand.isHandled());
-
-			// Hide the view, and test that is becomes unhandled again.
-			page.hideView(openedView);
-			while (fWorkbench.getDisplay().readAndDispatch()) {
-				// Read the event queue
-			}
-			assertTrue("The MockViewPart command should not be handled",
-					!testCommand.isHandled());
-
-		} finally {
-			commandSupport.removeHandlerSubmission(testSubmission);
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug87856Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug87856Test.java
deleted file mode 100644
index 8462a5f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/Bug87856Test.java
+++ /dev/null
@@ -1,96 +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.tests.commands;
-
-import java.lang.ref.WeakReference;
-import java.util.Map;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.ui.commands.AbstractHandler;
-import org.eclipse.ui.commands.HandlerSubmission;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.commands.IHandler;
-import org.eclipse.ui.commands.IWorkbenchCommandSupport;
-import org.eclipse.ui.commands.Priority;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * This tests whether we are leaking handlers after their submission has been
- * removed.
- * 
- * @since 3.1
- */
-public class Bug87856Test extends UITestCase {
-
-	/**
-	 * Constructs a new instance of <code>Bug87856Test</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug87856Test(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests whether the workbench command support (or its dependencies) will
-	 * leak handlers when the process loop is run. Basically, we're checking to
-	 * see that removing a handler submission really works.
-	 */
-	public final void testHandlerLeak() {
-		final IWorkbenchCommandSupport commandSupport = fWorkbench
-				.getCommandSupport();
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getAdapter(ICommandService.class);
-		final String commandId = Bug87856Test.class.getName();
-		final Command command = commandService.getCommand(commandId);
-
-		// Submit a handler.
-		IHandler handler = new AbstractHandler() {
-
-			public Object execute(Map parameterValuesByName)
-					throws org.eclipse.ui.commands.ExecutionException {
-				// Do nothing
-				return null;
-			}
-
-		};
-		HandlerSubmission submission = new HandlerSubmission(null, null, null,
-				command.getId(), handler, Priority.MEDIUM);
-		commandSupport.addHandlerSubmission(submission);
-
-		/*
-		 * Remove the handler with no replacement, and hold on to the handler
-		 * via a weak reference.
-		 */
-		commandSupport.removeHandlerSubmission(submission);
-		submission = null;
-		final WeakReference reference = new WeakReference(handler);
-		handler = null;
-
-		// Attempt to force garbage collection.
-		System.gc();
-		System.runFinalization();
-		Thread.yield();
-		System.gc();
-		System.runFinalization();
-		Thread.yield();
-		System.gc();
-		System.runFinalization();
-		Thread.yield();
-
-		// Check to see if the reference has been cleared.
-		assertTrue(
-				"We should not hold on to a handler after the submission has been removed.",
-				reference.isEnqueued() || (reference.get() == null));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandActionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandActionTest.java
deleted file mode 100644
index 127d5af..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandActionTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerActivation;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.actions.CommandAction;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class CommandActionTest extends UITestCase {
-	// you can find these commands in org.eclipse.ui.tests/plugin.xml
-	private static final String PREFIX = "tests.commands.CCT.";
-	private static final String CMD1_ID = PREFIX + "cmd1";
-	private static final String CMD2_ID = PREFIX + "cmd2";
-
-	private IHandlerService handlerService;
-	private VerifyHandler cmd1Handler;
-	private IHandlerActivation cmd1Activation;
-	private VerifyHandler2 cmd2Handler;
-	private IHandlerActivation cmd2Activation;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-
-		cmd1Handler = new VerifyHandler();
-		cmd1Activation = handlerService.activateHandler(CMD1_ID, cmd1Handler);
-		cmd2Handler = new VerifyHandler2();
-		cmd2Activation = handlerService.activateHandler(CMD2_ID, cmd2Handler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		if (cmd1Activation != null) {
-			handlerService.deactivateHandler(cmd1Activation);
-			cmd1Activation = null;
-		}
-		if (cmd2Activation != null) {
-			handlerService.deactivateHandler(cmd2Activation);
-			cmd2Activation = null;
-		}
-		super.doTearDown();
-	}
-
-	private static class VerifyHandler2 extends AbstractHandler {
-		public int count = 0;
-		public String paramValue1 = null;
-		public String paramValue2 = null;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-
-			paramValue1 = event.getParameter("protocol");
-			paramValue2 = event.getParameter("host");
-			count++;
-			return null;
-		}
-	}
-
-	private static class VerifyHandler extends AbstractHandler {
-		public int count = 0;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-
-			count++;
-			return null;
-		}
-	}
-
-	/**
-	 * @param testName
-	 */
-	public CommandActionTest(String testName) {
-		super(testName);
-	}
-
-	public void testCommandId() throws Exception {
-
-		// create a command action for CMD1_ID, which takes no parameters.
-		CommandAction action1 = new CommandAction(PlatformUI
-				.getWorkbench(), CMD1_ID);
-		assertEquals(0, cmd1Handler.count);
-		action1.run();
-		assertEquals(1, cmd1Handler.count);
-	}
-
-	public void testParameterizedCommand() throws Exception {
-
-		// create a command action for CMD2_id which takes parameters.
-		// make sure the handler gets called with the correct parameters.
-		assertEquals(0, cmd2Handler.count);
-		assertNull(cmd2Handler.paramValue1);
-		assertNull(cmd2Handler.paramValue2);
-
-		Map map = new HashMap();
-		map.put("protocol", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-		map.put("host", "true");
-
-		CommandAction action2 = new CommandAction(PlatformUI
-				.getWorkbench(), CMD2_ID, map);//$NON-NLS-1$
-		action2.run();
-		assertEquals(1, cmd2Handler.count);
-		assertNotNull(cmd2Handler.paramValue1);
-		assertEquals("true", cmd2Handler.paramValue1);
-		assertNotNull(cmd2Handler.paramValue2);
-		assertEquals("true", cmd2Handler.paramValue2);
-
-		map = new HashMap();
-		map.put("protocol", "false"); //$NON-NLS-1$ //$NON-NLS-2$
-		map.put("host", "false");
-
-		action2 = new CommandAction(PlatformUI.getWorkbench(), CMD2_ID, map);//$NON-NLS-1$
-		action2.run();
-		assertEquals(2, cmd2Handler.count);
-		assertNotNull(cmd2Handler.paramValue1);
-		assertEquals("false", cmd2Handler.paramValue1);
-		assertNotNull(cmd2Handler.paramValue2);
-		assertEquals("false", cmd2Handler.paramValue2);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandCallbackTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandCallbackTest.java
deleted file mode 100644
index 1150966..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandCallbackTest.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.commands.IElementReference;
-import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.handlers.IHandlerActivation;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.menus.UIElement;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.services.IServiceScopes;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class CommandCallbackTest extends UITestCase {
-
-	/**
-	 * 
-	 */
-	private static final String HOST_PARAM_ID = "host";
-	/**
-	 * 
-	 */
-	private static final String PROT_PARAM_ID = "protocol";
-	/**
-	 * 
-	 */
-	private static final String PREFIX = "tests.commands.CCT.";
-	private static final String CMD1_ID = PREFIX + "cmd1";
-	private static final String CMD2_ID = PREFIX + "cmd2";
-
-	private ICommandService commandService;
-	private Command cmd1;
-	private Command cmd2;
-	private IHandlerService handlerService;
-	private IHandlerActivation cmd1Activation;
-	private IHandlerActivation cmd2Activation;
-	private CallbackHandler cmd1Handler;
-	private CallbackHandler cmd2Handler;
-
-	/**
-	 * @param testName
-	 */
-	public CommandCallbackTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		cmd1 = commandService.getCommand(CMD1_ID);
-		cmd2 = commandService.getCommand(CMD2_ID);
-		handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		cmd1Handler = new CallbackHandler();
-		cmd1Activation = handlerService.activateHandler(CMD1_ID, cmd1Handler);
-		cmd2Handler = new CallbackHandler();
-		cmd2Activation = handlerService.activateHandler(CMD2_ID, cmd2Handler);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		if (cmd1Activation != null) {
-			handlerService.deactivateHandler(cmd1Activation);
-			cmd1Activation = null;
-		}
-		if (cmd2Activation != null) {
-			handlerService.deactivateHandler(cmd2Activation);
-			cmd2Activation = null;
-		}
-		super.doTearDown();
-	}
-
-	private static class CallbackHandler extends AbstractHandler implements
-			IElementUpdater {
-		public int callbacks = 0;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.commands.ICallbackUpdater#updateCallback(org.eclipse.core.runtime.IAdaptable,
-		 *      java.util.Map)
-		 */
-		public void updateElement(UIElement callback, Map parameters) {
-			callbacks++;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-			return null;
-		}
-	}
-
-	private static class MyElement extends UIElement {
-		
-		/**
-		 * 
-		 */
-		public MyElement(IServiceLocator locator) {
-			super(locator);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.menus.UIElement#setChecked(boolean)
-		 */
-		public void setChecked(boolean checked) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.menus.UIElement#setDisabledIcon(org.eclipse.jface.resource.ImageDescriptor)
-		 */
-		public void setDisabledIcon(ImageDescriptor desc) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.menus.UIElement#setHoverIcon(org.eclipse.jface.resource.ImageDescriptor)
-		 */
-		public void setHoverIcon(ImageDescriptor desc) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.menus.UIElement#setIcon(org.eclipse.jface.resource.ImageDescriptor)
-		 */
-		public void setIcon(ImageDescriptor desc) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.menus.UIElement#setText(java.lang.String)
-		 */
-		public void setText(String text) {
-			// TODO Auto-generated method stub
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.menus.UIElement#setTooltip(java.lang.String)
-		 */
-		public void setTooltip(String text) {
-			// TODO Auto-generated method stub
-
-		}
-
-	}
-
-	public void testNoParametersNoCallbacks() throws Exception {
-		ParameterizedCommand pc1 = new ParameterizedCommand(cmd1, null);
-		ParameterizedCommand pc2 = new ParameterizedCommand(cmd1, null);
-		try {
-			commandService.registerElementForCommand(pc1, null);
-			fail("Callback should not register");
-		} catch (NotDefinedException e) {
-		}
-		try {
-			commandService.registerElementForCommand(pc2, null);
-			fail("Callback 2 should not register");
-		} catch (NotDefinedException e) {
-		}
-
-		commandService.refreshElements(CMD1_ID + ".1", null);
-		assertEquals(0, cmd1Handler.callbacks);
-
-		commandService.refreshElements(CMD1_ID, null);
-		assertEquals(0, cmd1Handler.callbacks);
-	}
-
-	public void testNoParametersWithCallbacks() throws Exception {
-		ParameterizedCommand pc1 = new ParameterizedCommand(cmd1, null);
-		ParameterizedCommand pc2 = new ParameterizedCommand(cmd1, null);
-
-		IElementReference cr1 = commandService.registerElementForCommand(pc1,
-				new MyElement(fWorkbench));
-		IElementReference cr2 = commandService.registerElementForCommand(pc2,
-				new MyElement(fWorkbench));
-
-		try {
-			assertEquals(2, cmd1Handler.callbacks);
-			cmd1Handler.callbacks = 0;
-			commandService.refreshElements(CMD1_ID, null);
-			assertEquals(2, cmd1Handler.callbacks);
-		} finally {
-			commandService.unregisterElement(cr1);
-			commandService.unregisterElement(cr2);
-		}
-
-		cmd1Handler.callbacks = 0;
-		commandService.refreshElements(CMD1_ID, null);
-		assertEquals(0, cmd1Handler.callbacks);
-	}
-
-	public void testParametersWithCallbacks() throws Exception {
-		IParameter parmProt = cmd2.getParameter(PROT_PARAM_ID);
-		IParameter parmHost = cmd2.getParameter(HOST_PARAM_ID);
-		ParameterizedCommand pc1 = new ParameterizedCommand(cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "www.eclipse.org") });
-		ParameterizedCommand pc2 = new ParameterizedCommand(
-				cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "download.eclipse.org") });
-		IElementReference cr1 = commandService.registerElementForCommand(pc1,
-				new MyElement(fWorkbench));
-		IElementReference cr2 = commandService.registerElementForCommand(pc2,
-				new MyElement(fWorkbench));
-		try {
-
-			assertEquals(2, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			Map filter = new HashMap();
-			filter.put(PROT_PARAM_ID, "http");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(2, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.put(HOST_PARAM_ID, "www.eclipse.org");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(1, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.remove(PROT_PARAM_ID);
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(1, cmd2Handler.callbacks);
-
-		} finally {
-			commandService.unregisterElement(cr1);
-			commandService.unregisterElement(cr2);
-		}
-	}
-
-	public void testParmsToSameCommand() throws Exception {
-		IParameter parmProt = cmd2.getParameter(PROT_PARAM_ID);
-		IParameter parmHost = cmd2.getParameter(HOST_PARAM_ID);
-		ParameterizedCommand pc1 = new ParameterizedCommand(cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "www.eclipse.org") });
-		ParameterizedCommand pc2 = new ParameterizedCommand(
-				cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "download.eclipse.org") });
-		ParameterizedCommand pc3 = new ParameterizedCommand(
-				cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "download.eclipse.org") });
-		IElementReference cr1 = commandService.registerElementForCommand(pc1,
-				new MyElement(fWorkbench));
-		IElementReference cr2 = commandService.registerElementForCommand(pc2,
-				new MyElement(fWorkbench));
-		IElementReference cr3 = commandService.registerElementForCommand(pc3,
-				new MyElement(fWorkbench));
-		try {
-
-			assertEquals(3, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			Map filter = new HashMap();
-			filter.put(PROT_PARAM_ID, "http");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(3, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.put(HOST_PARAM_ID, "www.eclipse.org");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(1, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.remove(PROT_PARAM_ID);
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(1, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.put(HOST_PARAM_ID, "download.eclipse.org");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(2, cmd2Handler.callbacks);
-		} finally {
-			commandService.unregisterElement(cr1);
-			commandService.unregisterElement(cr2);
-			commandService.unregisterElement(cr3);
-		}
-	}
-
-	public void testParmsToDifferentProtocol() throws Exception {
-		IParameter parmProt = cmd2.getParameter(PROT_PARAM_ID);
-		IParameter parmHost = cmd2.getParameter(HOST_PARAM_ID);
-		ParameterizedCommand pc1 = new ParameterizedCommand(cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "www.eclipse.org") });
-		ParameterizedCommand pc2 = new ParameterizedCommand(
-				cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "download.eclipse.org") });
-		ParameterizedCommand pc3 = new ParameterizedCommand(
-				cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "download.eclipse.org") });
-		ParameterizedCommand pc4 = new ParameterizedCommand(cmd2,
-				new Parameterization[] { new Parameterization(parmProt, "ftp"),
-						new Parameterization(parmHost, "www.eclipse.org") });
-		ParameterizedCommand pc5 = new ParameterizedCommand(
-				cmd2,
-				new Parameterization[] { new Parameterization(parmProt, "ftp"),
-						new Parameterization(parmHost, "download.eclipse.org") });
-		IElementReference cr1 = commandService.registerElementForCommand(pc1,
-				new MyElement(fWorkbench));
-		IElementReference cr2 = commandService.registerElementForCommand(pc2,
-				new MyElement(fWorkbench));
-		IElementReference cr3 = commandService.registerElementForCommand(pc3,
-				new MyElement(fWorkbench));
-		IElementReference cr4 = commandService.registerElementForCommand(pc4,
-				new MyElement(fWorkbench));
-		IElementReference cr5 = commandService.registerElementForCommand(pc5,
-				new MyElement(fWorkbench));
-		try {
-			assertEquals(5, cmd2Handler.callbacks);
-			Map filter = new HashMap();
-
-			cmd2Handler.callbacks = 0;
-			filter.put(PROT_PARAM_ID, "http");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(3, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.put(PROT_PARAM_ID, "ftp");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(2, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.put(HOST_PARAM_ID, "download.eclipse.org");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(1, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.remove(PROT_PARAM_ID);
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(3, cmd2Handler.callbacks);
-
-		} finally {
-			commandService.unregisterElement(cr1);
-			commandService.unregisterElement(cr2);
-			commandService.unregisterElement(cr3);
-			commandService.unregisterElement(cr4);
-			commandService.unregisterElement(cr5);
-		}
-	}
-
-	public void testCommandThroughWindow() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		ICommandService cs = (ICommandService) window
-				.getService(ICommandService.class);
-		IParameter parmProt = cmd2.getParameter(PROT_PARAM_ID);
-		IParameter parmHost = cmd2.getParameter(HOST_PARAM_ID);
-		ParameterizedCommand pc1 = new ParameterizedCommand(cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "www.eclipse.org") });
-		ParameterizedCommand pc2 = new ParameterizedCommand(
-				cmd2,
-				new Parameterization[] {
-						new Parameterization(parmProt, "http"),
-						new Parameterization(parmHost, "download.eclipse.org") });
-		IElementReference cr1 = commandService.registerElementForCommand(pc1,
-				new MyElement(window));
-		// should be removed when the window goes away
-		cs.registerElementForCommand(pc2, new MyElement(window));
-		try {
-			assertEquals(2, cmd2Handler.callbacks);
-
-			Map filter = new HashMap();
-			cmd2Handler.callbacks = 0;
-			filter.put(PROT_PARAM_ID, "http");
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(2, cmd2Handler.callbacks);
-
-			cmd2Handler.callbacks = 0;
-			filter.put(IServiceScopes.WINDOW_SCOPE, window);
-			commandService.refreshElements(CMD2_ID, filter);
-			assertEquals(1, cmd2Handler.callbacks);
-		} finally {
-			commandService.unregisterElement(cr1);
-		}
-	}
-
-	public void testCallbackCleanup() throws Exception {
-		ParameterizedCommand pc1 = new ParameterizedCommand(cmd1, null);
-		ParameterizedCommand pc2 = new ParameterizedCommand(cmd1, null);
-
-		IWorkbenchWindow window = openTestWindow();
-		ICommandService cs = (ICommandService) window
-				.getService(ICommandService.class);
-
-		IElementReference cr1 = commandService.registerElementForCommand(pc1,
-				new MyElement(window));
-		// should be removed when the window goes away
-		cs.registerElementForCommand(pc2, new MyElement(window));
-
-		try {
-			assertEquals(2, cmd1Handler.callbacks);
-			cmd1Handler.callbacks = 0;
-			closeAllTestWindows();
-			commandService.refreshElements(CMD1_ID, null);
-			assertEquals(1, cmd1Handler.callbacks);
-		} finally {
-			commandService.unregisterElement(cr1);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandEnablementTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandEnablementTest.java
deleted file mode 100644
index f729b67..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandEnablementTest.java
+++ /dev/null
@@ -1,548 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.CommandEvent;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.HandlerEvent;
-import org.eclipse.core.commands.ICommandListener;
-import org.eclipse.core.commands.IHandlerListener;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.internal.expressions.CountExpression;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.handlers.IHandlerActivation;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.handlers.HandlerProxy;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.internal.services.WorkbenchSourceProvider;
-import org.eclipse.ui.services.IEvaluationService;
-import org.eclipse.ui.services.ISourceProviderService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class CommandEnablementTest extends UITestCase {
-
-	private static final String CONTEXT_TEST2 = "org.eclipse.ui.command.contexts.enablement_test2";
-	private static final String CONTEXT_TEST1 = "org.eclipse.ui.command.contexts.enablement_test1";
-	private static final String PREFIX = "tests.commands.CCT.";
-	private static final String CMD1_ID = PREFIX + "cmd1";
-
-	private ICommandService commandService;
-	private IHandlerService handlerService;
-	private IContextService contextService;
-
-	private Command cmd1;
-	private DefaultHandler normalHandler1;
-	private IHandlerActivation activation1;
-	private DefaultHandler normalHandler2;
-	private IHandlerActivation activation2;
-	private DisabledHandler disabledHandler1;
-	private DisabledHandler disabledHandler2;
-	private EnableEventHandler eventHandler1;
-	private EnableEventHandler eventHandler2;
-	private IEvaluationService evalService;
-	private CheckContextHandler contextHandler;
-	private IContextActivation contextActivation1;
-	private IContextActivation contextActivation2;
-
-	/**
-	 * @param testName
-	 */
-	public CommandEnablementTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		contextService = (IContextService) fWorkbench
-				.getService(IContextService.class);
-		evalService = (IEvaluationService) fWorkbench
-				.getService(IEvaluationService.class);
-		cmd1 = commandService.getCommand(CMD1_ID);
-		normalHandler1 = new DefaultHandler();
-		normalHandler2 = new DefaultHandler();
-		disabledHandler1 = new DisabledHandler();
-		disabledHandler2 = new DisabledHandler();
-		eventHandler1 = new EnableEventHandler();
-		eventHandler2 = new EnableEventHandler();
-		contextHandler = new CheckContextHandler();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		if (activation1 != null) {
-			handlerService.deactivateHandler(activation1);
-			activation1 = null;
-		}
-		if (activation2 != null) {
-			handlerService.deactivateHandler(activation2);
-			activation2 = null;
-		}
-		if (contextActivation1 != null) {
-			contextService.deactivateContext(contextActivation1);
-			contextActivation1 = null;
-		}
-		if (contextActivation2 != null) {
-			contextService.deactivateContext(contextActivation2);
-			contextActivation2 = null;
-		}
-		super.doTearDown();
-	}
-
-	private static class DefaultHandler extends AbstractHandler {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-			HandlerUtil.getActiveContextsChecked(event);
-			return null;
-		}
-	}
-
-	private static class DisabledHandler extends AbstractHandler {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-			HandlerUtil.getActiveContextsChecked(event);
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.AbstractHandler#isEnabled()
-		 */
-		public boolean isEnabled() {
-			return false;
-		}
-	}
-
-	private static class EnableEventHandler extends AbstractHandler {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-			HandlerUtil.getActiveContextsChecked(event);
-			return null;
-		}
-
-		private boolean fEnabled = true;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.AbstractHandler#isEnabled()
-		 */
-		public boolean isEnabled() {
-			return fEnabled;
-		}
-
-		public void setEnabled(boolean enabled) {
-			if (fEnabled != enabled) {
-				fEnabled = enabled;
-				fireHandlerChanged(new HandlerEvent(this, true, false));
-			}
-		}
-	}
-
-	private static class CheckContextHandler extends AbstractHandler {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-			HandlerUtil.getActivePartChecked(event);
-			return null;
-		}
-
-		public void setEnabled(Object applicationContext) {
-			Object o = HandlerUtil.getVariable(applicationContext,
-					ISources.ACTIVE_PART_NAME);
-			setBaseEnabled(o instanceof IWorkbenchPart);
-		}
-	}
-
-	private static class EnablementListener implements ICommandListener {
-		public int enabledChanged = 0;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.ICommandListener#commandChanged(org.eclipse.core.commands.CommandEvent)
-		 */
-		public void commandChanged(CommandEvent commandEvent) {
-			if (commandEvent.isEnabledChanged()) {
-				enabledChanged++;
-			}
-		}
-	}
-
-	public void testEnablementForNormalHandlers() throws Exception {
-		activation1 = handlerService.activateHandler(CMD1_ID, normalHandler1,
-				new ActiveContextExpression(CONTEXT_TEST1,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-		activation2 = handlerService.activateHandler(CMD1_ID, normalHandler2,
-				new ActiveContextExpression(CONTEXT_TEST2,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-
-		assertFalse(cmd1.isHandled());
-		assertFalse(cmd1.isEnabled());
-
-		contextActivation1 = contextService.activateContext(CONTEXT_TEST1);
-		assertTrue(cmd1.isHandled());
-		assertTrue(cmd1.isEnabled());
-		assertEquals(normalHandler1, cmd1.getHandler());
-		contextService.deactivateContext(contextActivation1);
-		assertFalse(cmd1.isHandled());
-		assertFalse(cmd1.isEnabled());
-
-		contextActivation2 = contextService.activateContext(CONTEXT_TEST2);
-		assertTrue(cmd1.isHandled());
-		assertTrue(cmd1.isEnabled());
-		assertEquals(normalHandler2, cmd1.getHandler());
-		contextService.deactivateContext(contextActivation2);
-		assertFalse(cmd1.isHandled());
-		assertFalse(cmd1.isEnabled());
-	}
-
-	public void testEventsForNormalHandlers() throws Exception {
-		// incremented for every change that should change enablement
-		int enabledChangedCount = 0;
-
-		activation1 = handlerService.activateHandler(CMD1_ID, normalHandler1,
-				new ActiveContextExpression(CONTEXT_TEST1,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-		activation2 = handlerService.activateHandler(CMD1_ID, normalHandler2,
-				new ActiveContextExpression(CONTEXT_TEST2,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-
-		assertFalse(cmd1.isHandled());
-		assertFalse(cmd1.isEnabled());
-		EnablementListener listener = new EnablementListener();
-		cmd1.addCommandListener(listener);
-
-		try {
-			contextActivation1 = contextService.activateContext(CONTEXT_TEST1);
-			enabledChangedCount++;
-			assertTrue(cmd1.isHandled());
-			assertTrue(cmd1.isEnabled());
-			assertEquals(normalHandler1, cmd1.getHandler());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-
-			contextService.deactivateContext(contextActivation1);
-			enabledChangedCount++;
-			assertFalse(cmd1.isHandled());
-			assertFalse(cmd1.isEnabled());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-
-			contextActivation2 = contextService.activateContext(CONTEXT_TEST2);
-			enabledChangedCount++;
-			assertTrue(cmd1.isHandled());
-			assertTrue(cmd1.isEnabled());
-			assertEquals(normalHandler2, cmd1.getHandler());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-
-			contextService.deactivateContext(contextActivation2);
-			enabledChangedCount++;
-			assertFalse(cmd1.isHandled());
-			assertFalse(cmd1.isEnabled());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-		} finally {
-			cmd1.removeCommandListener(listener);
-		}
-	}
-
-	public void testEventsForDisabledHandlers() throws Exception {
-		// incremented for every change that should change enablement
-		int enabledChangedCount = 0;
-
-		activation1 = handlerService.activateHandler(CMD1_ID, disabledHandler1,
-				new ActiveContextExpression(CONTEXT_TEST1,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-		activation2 = handlerService.activateHandler(CMD1_ID, disabledHandler2,
-				new ActiveContextExpression(CONTEXT_TEST2,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-
-		assertFalse(cmd1.isHandled());
-		assertFalse(cmd1.isEnabled());
-		EnablementListener listener = new EnablementListener();
-		cmd1.addCommandListener(listener);
-
-		try {
-			contextActivation1 = contextService.activateContext(CONTEXT_TEST1);
-			assertTrue(cmd1.isHandled());
-			assertFalse(cmd1.isEnabled());
-			assertEquals(disabledHandler1, cmd1.getHandler());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-
-			contextService.deactivateContext(contextActivation1);
-			assertFalse(cmd1.isHandled());
-			assertFalse(cmd1.isEnabled());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-
-			contextActivation2 = contextService.activateContext(CONTEXT_TEST2);
-			assertTrue(cmd1.isHandled());
-			assertFalse(cmd1.isEnabled());
-			assertEquals(disabledHandler2, cmd1.getHandler());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-
-			contextService.deactivateContext(contextActivation2);
-			assertFalse(cmd1.isHandled());
-			assertFalse(cmd1.isEnabled());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-		} finally {
-			cmd1.removeCommandListener(listener);
-		}
-	}
-
-	public void testEventsForEnabledHandlers() throws Exception {
-		// incremented for every change that should change enablement
-		int enabledChangedCount = 0;
-
-		activation1 = handlerService.activateHandler(CMD1_ID, eventHandler1,
-				new ActiveContextExpression(CONTEXT_TEST1,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-		activation2 = handlerService.activateHandler(CMD1_ID, eventHandler2,
-				new ActiveContextExpression(CONTEXT_TEST2,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-
-		assertFalse(cmd1.isHandled());
-		assertFalse(cmd1.isEnabled());
-		EnablementListener listener = new EnablementListener();
-		cmd1.addCommandListener(listener);
-
-		try {
-			contextActivation1 = contextService.activateContext(CONTEXT_TEST1);
-			enabledChangedCount++;
-
-			assertTrue(cmd1.isHandled());
-			assertTrue(cmd1.isEnabled());
-			assertEquals(eventHandler1, cmd1.getHandler());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-
-			eventHandler1.setEnabled(true);
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-			assertTrue(cmd1.isEnabled());
-
-			eventHandler1.setEnabled(false);
-			enabledChangedCount++;
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-			assertFalse(cmd1.isEnabled());
-
-			eventHandler1.setEnabled(false);
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-			assertFalse(cmd1.isEnabled());
-
-			eventHandler1.setEnabled(true);
-			enabledChangedCount++;
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-			assertTrue(cmd1.isEnabled());
-
-			eventHandler1.setEnabled(false);
-			enabledChangedCount++;
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-			assertFalse(cmd1.isEnabled());
-
-			eventHandler2.setEnabled(false);
-			eventHandler2.setEnabled(true);
-			eventHandler2.setEnabled(false);
-			eventHandler2.setEnabled(true);
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-			assertFalse(cmd1.isEnabled());
-
-			contextService.deactivateContext(contextActivation1);
-			assertFalse(cmd1.isHandled());
-			assertFalse(cmd1.isEnabled());
-			assertEquals(enabledChangedCount, listener.enabledChanged);
-		} finally {
-			cmd1.removeCommandListener(listener);
-		}
-	}
-
-	public void testCommandWithHandlerProxy() throws Exception {
-		IConfigurationElement handlerProxyConfig = null;
-		String commandId = null;
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint("org.eclipse.ui.handlers");
-		IExtension[] extensions = point.getExtensions();
-		boolean found = false;
-		for (int i = 0; i < extensions.length && !found; i++) {
-			IConfigurationElement[] configElements = extensions[i]
-					.getConfigurationElements();
-			for (int j = 0; j < configElements.length && !found; j++) {
-				if (configElements[j].getAttribute(
-						IWorkbenchRegistryConstants.ATT_CLASS).equals(
-						"org.eclipse.ui.tests.menus.HelloEHandler")) {
-					handlerProxyConfig = configElements[j];
-					commandId = handlerProxyConfig
-							.getAttribute(IWorkbenchRegistryConstants.ATT_ID);
-					found = true;
-				}
-			}
-		}
-		assertNotNull(handlerProxyConfig);
-		Expression enabledWhen = new ActiveContextExpression(CONTEXT_TEST1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-		HandlerProxy proxy = new HandlerProxy(commandId, handlerProxyConfig,
-				"class", enabledWhen, evalService);
-		assertFalse(proxy.isEnabled());
-		contextActivation1 = contextService.activateContext(CONTEXT_TEST1);
-		assertTrue(proxy.isEnabled());
-		contextService.deactivateContext(contextActivation1);
-		assertFalse(proxy.isEnabled());
-	}
-
-	private static class Checker implements IHandlerListener {
-		boolean lastChange = false;
-
-		public void handlerChanged(HandlerEvent handlerEvent) {
-			lastChange = handlerEvent.isEnabledChanged();
-		}
-	}
-
-	public void testEnablementWithHandlerProxy() throws Exception {
-		IConfigurationElement handlerProxyConfig = null;
-		String commandId = null;
-		IExtensionPoint point = Platform.getExtensionRegistry()
-				.getExtensionPoint("org.eclipse.ui.handlers");
-		IExtension[] extensions = point.getExtensions();
-		boolean found = false;
-		for (int i = 0; i < extensions.length && !found; i++) {
-			IConfigurationElement[] configElements = extensions[i]
-					.getConfigurationElements();
-			for (int j = 0; j < configElements.length && !found; j++) {
-				if (configElements[j].getAttribute(
-						IWorkbenchRegistryConstants.ATT_COMMAND_ID).equals(
-						"org.eclipse.ui.tests.enabledCount")) {
-					handlerProxyConfig = configElements[j];
-					commandId = handlerProxyConfig
-							.getAttribute(IWorkbenchRegistryConstants.ATT_ID);
-					found = true;
-				}
-			}
-		}
-		assertNotNull(handlerProxyConfig);
-		Expression enabledWhen = ExpressionConverter.getDefault()
-				.perform(
-						handlerProxyConfig.getChildren("enabledWhen")[0]
-								.getChildren()[0]);
-		assertTrue(enabledWhen instanceof CountExpression);
-		HandlerProxy proxy = new HandlerProxy(commandId, handlerProxyConfig, "class",
-				enabledWhen, evalService);
-		Checker listener = new Checker();
-		proxy.addHandlerListener(listener);
-		assertFalse(proxy.isEnabled());
-		ISourceProviderService providers = (ISourceProviderService) fWorkbench
-				.getService(ISourceProviderService.class);
-		WorkbenchSourceProvider selectionProvider = (WorkbenchSourceProvider) providers
-				.getSourceProvider(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-
-		selectionProvider.selectionChanged(null, StructuredSelection.EMPTY);
-		assertFalse(proxy.isEnabled());
-		assertFalse(listener.lastChange);
-
-		selectionProvider.selectionChanged(null, new StructuredSelection(
-				new Object()));
-		assertFalse(proxy.isEnabled());
-		assertFalse(listener.lastChange);
-
-		selectionProvider.selectionChanged(null, new StructuredSelection(
-				new Object[] { new Object(), new Object() }));
-		assertTrue(proxy.isEnabled());
-		assertTrue(listener.lastChange);
-
-		listener.lastChange = false;
-		selectionProvider.selectionChanged(null, new StructuredSelection(
-				new Object[] { new Object(), new Object(), new Object() }));
-		assertFalse(proxy.isEnabled());
-		assertTrue(listener.lastChange);
-	}
-
-	public void testEnablementForLocalContext() throws Exception {
-		openTestWindow("org.eclipse.ui.resourcePerspective");
-		activation1 = handlerService.activateHandler(CMD1_ID, contextHandler,
-				new ActiveContextExpression(CONTEXT_TEST1,
-						new String[] { ISources.ACTIVE_CONTEXT_NAME }));
-		assertFalse(cmd1.isHandled());
-		assertFalse(cmd1.isEnabled());
-		IEvaluationContext snapshot = handlerService
-				.createContextSnapshot(false);
-		cmd1.setEnabled(snapshot);
-		assertFalse(cmd1.isEnabled());
-
-		contextActivation1 = contextService.activateContext(CONTEXT_TEST1);
-		assertTrue(cmd1.isHandled());
-		cmd1.setEnabled(snapshot);
-		assertTrue(cmd1.isEnabled());
-		assertEquals(contextHandler, cmd1.getHandler());
-
-		snapshot.removeVariable(ISources.ACTIVE_PART_NAME);
-		assertTrue(cmd1.isHandled());
-		cmd1.setEnabled(snapshot);
-		assertFalse(cmd1.isEnabled());
-		cmd1.setEnabled(handlerService.getCurrentState());
-		assertTrue(cmd1.isEnabled());
-		assertEquals(contextHandler, cmd1.getHandler());
-
-		snapshot.addVariable(ISources.ACTIVE_PART_NAME, handlerService
-				.getCurrentState().getVariable(ISources.ACTIVE_PART_NAME));
-		cmd1.setEnabled(snapshot);
-		assertTrue(cmd1.isEnabled());
-		cmd1.setEnabled(handlerService.getCurrentState());
-		assertTrue(cmd1.isEnabled());
-		assertEquals(contextHandler, cmd1.getHandler());
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandManagerTest.java
deleted file mode 100644
index 2e3143d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandManagerTest.java
+++ /dev/null
@@ -1,127 +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.tests.commands;
-
-import org.eclipse.core.commands.Category;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IExecutionListener;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests some of the API on command manager.
- * 
- * @since 3.1
- */
-public final class CommandManagerTest extends UITestCase {
-
-	/**
-	 * An execution listener that can be attached to the command manager. It
-	 * will track which events it last heard.
-	 * 
-	 * @since 3.1
-	 */
-	private final class ExecutionListener implements IExecutionListener {
-
-		/**
-		 * The last command identifier to be not handled, or <code>null</code>
-		 * if none.
-		 */
-		private String notHandledId = null;
-
-		/**
-		 * The last command identifier to be executed, or <code>null</code> if
-		 * none.
-		 */
-		private String preExecuteId = null;
-
-		/**
-		 * The last not handled exception throw, or <code>null</code> if none.
-		 */
-		private NotHandledException notHandledException = null;
-
-		/**
-		 * The last execution event, or <code>null</code> if none.
-		 */
-		private ExecutionEvent preExecuteEvent = null;
-
-		public final void notHandled(final String commandId,
-				final NotHandledException exception) {
-			notHandledId = commandId;
-			notHandledException = exception;
-		}
-
-		public final void postExecuteFailure(final String commandId,
-				final ExecutionException exception) {
-			// Do nothing.
-		}
-
-		public final void postExecuteSuccess(final String commandId,
-				final Object returnValue) {
-			// Do nothing
-		}
-
-		public final void preExecute(final String commandId,
-				final ExecutionEvent event) {
-			preExecuteId = commandId;
-			preExecuteEvent = event;
-		}
-
-	}
-
-	/**
-	 * Constructs a new instance of <code>CommandManagerTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public CommandManagerTest(String testName) {
-		super(testName);
-	}
-
-	public final void testExecutionListener() {
-		final String commandId = "myCommand";
-		final CommandManager commandManager = new CommandManager();
-		final Category category = commandManager.getCategory(commandId);
-		category.define("name", null);
-		final Command command = commandManager.getCommand(commandId);
-		command.define("name", null, category, null);
-		final ExecutionListener listener = new ExecutionListener();
-		commandManager.addExecutionListener(listener);
-		Exception exception = null;
-		final ExecutionEvent event = new ExecutionEvent();
-		try {
-			command.execute(event);
-		} catch (final ExecutionException e) {
-			exception = e;
-		} catch (final NotHandledException e) {
-			exception = e;
-		}
-
-		assertSame(
-				"Should have received a pre-execute event for the correct command",
-				commandId, listener.preExecuteId);
-		assertSame(
-				"Should have received a pre-execute event with the correct event",
-				event, listener.preExecuteEvent);
-		assertSame(
-				"Should have received a not-handled event for the correct command",
-				commandId, listener.notHandledId);
-		assertSame(
-				"Should have received a not-handled event with the correct exception",
-				exception, listener.notHandledException);
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandParameterTypeTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandParameterTypeTest.java
deleted file mode 100644
index 5914e47..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandParameterTypeTest.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Benjamin Muskalla - bug 222861 [Commands] ParameterizedCommand#equals broken
- *******************************************************************************/
-package org.eclipse.ui.tests.commands;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.ITypedParameter;
-import org.eclipse.core.commands.ParameterType;
-import org.eclipse.core.commands.ParameterValueConversionException;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class CommandParameterTypeTest extends UITestCase {
-
-	static final String SUBTRACT = "org.eclipse.ui.tests.commands.subtractInteger";
-	static final String MINUEND = "minuend";
-	static final String SUBTRAHEND = "subtrahend";
-	
-	static final String TYPE = "org.eclipse.ui.tests.commands.Integer";
-	
-	/**
-	 * Constructs a new instance of <code>CommandParameterTypeTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public CommandParameterTypeTest(String testName) {
-		super(testName);
-	}
-	
-	/**
-	 * Tests invoking a command that subtracts one number from another. The
-	 * handler for the subtract command will convert the string parameters to
-	 * integers to perform the operation. This test drives much of the command
-	 * parameter type infrastructure including obtaining parameter types and
-	 * performing stringToObject and objectToString conversions.
-	 */
-	public void testSubtract() throws CommandException {
-		testSubtract(8, 5, 3);
-		testSubtract(-4, 12, -16);
-	}
-	
-	/**
-	 * Test subtract again with invalid parameters and check for failure
-	 * exception.
-	 */
-	public void testSubtractTypeError() {
-		try {
-			// try to pass a Boolean instead of an Integer
-			testSubtract(new Integer(3), Boolean.FALSE, 3);
-			fail("expected ParameterValueConversionException");
-		}
-		catch (ParameterValueConversionException ex) {
-			// passed
-		}
-		catch (Exception ex) {
-			fail("expected ParameterValueConversionException");
-		}
-	}
-	
-	/**
-	 * Test the complete execution flow for the subtract command
-	 */
-	private void testSubtract(int minuend, int subtrahend, int difference) throws CommandException {
-		testSubtract(new Integer(minuend), new Integer(subtrahend), difference);
-	}
-	
-	/**
-	 * Test the complete execution flow for the subtract command
-	 */
-	private void testSubtract(Object minuend, Object subtrahend, int difference) throws CommandException {
-		ICommandService commandService = getCommandService();
-		Command command = commandService.getCommand(SUBTRACT);
-
-		// first convert the object params to strings
-		String minuendStr = command.getParameterType(MINUEND)
-				.getValueConverter().convertToString(minuend);
-		String subtrahendStr = command.getParameterType(SUBTRAHEND)
-				.getValueConverter().convertToString(subtrahend);
-
-		// setup the parameterizations
-		Parameterization minuendParam = new Parameterization(command
-				.getParameter(MINUEND), minuendStr);
-		Parameterization subtrahendParam = new Parameterization(command
-				.getParameter(SUBTRAHEND), subtrahendStr);
-		Parameterization[] parameterizations = new Parameterization[] {
-				minuendParam, subtrahendParam };
-
-		// execute the command and check the result
-		ParameterizedCommand pCommand = new ParameterizedCommand(command,
-				parameterizations);
-		Integer result = (Integer) pCommand.executeWithChecks(null, null);
-		assertEquals(difference, result.intValue());
-	}
-	
-	/**
-	 * Tests AbstractParameterValueConverter.convertToObject for the Integer
-	 * converter used in this test suite.
-	 */
-	public void testConvertStringToInteger() throws CommandException {
-		testConvertStringToInteger("33", 33, false);
-		testConvertStringToInteger("-1", -1, false);
-		testConvertStringToInteger("blah", 33, true);
-		testConvertStringToInteger(null, 33, true);
-	}
-	
-	private void testConvertStringToInteger(String value, int expected,
-			boolean expectFail) throws CommandException {
-		ICommandService commandService = getCommandService();
-		ParameterType type = commandService.getParameterType(TYPE);
-
-		Object converted = null;
-		if (expectFail) {
-			try {
-				converted = type.getValueConverter().convertToObject(value);
-				fail("expected ParameterValueConversionException");
-			} catch (ParameterValueConversionException ex) {
-				// passed
-				return;
-			} catch (Exception ex) {
-				fail("expected ParameterValueConversionException");
-			}
-		} else {
-			converted = type.getValueConverter().convertToObject(value);
-		}
-
-		assertEquals(new Integer(expected), converted);
-	}
-	
-	/**
-	 * Tests AbstractParameterValueConverter.convertToString for the Integer
-	 * converter used in this test suite.
-	 */
-	public void testConvertIntegerToString() throws CommandException {
-		testConvertIntegerToString(new Integer(6), "6", false);
-		testConvertIntegerToString(new Integer(0), "0", false);
-		testConvertIntegerToString(new Integer(-32), "-32", false);
-		testConvertIntegerToString(null, null, true);
-		testConvertIntegerToString(Boolean.TRUE, null, true);
-	}
-	
-	private void testConvertIntegerToString(Object value, String expected,
-			boolean expectFail) throws CommandException {
-		ICommandService commandService = getCommandService();
-		ParameterType type = commandService.getParameterType(TYPE);
-
-		String converted = null;
-		if (expectFail) {
-			try {
-				converted = type.getValueConverter().convertToString(value);
-				fail("expected ParameterValueConversionException");
-			} catch (ParameterValueConversionException ex) {
-				// passed
-				return;
-			} catch (Exception ex) {
-				fail("expected ParameterValueConversionException");
-			}
-		} else {
-			converted = type.getValueConverter().convertToString(value);
-		}
-		assertEquals(expected, converted);
-	}
-	
-	/**
-	 * Tests ParameterType.isCompatible for various values with the Integer
-	 * parameter type used in this test suite.
-	 */
-	public void testIsCompatible() throws CommandException {
-		ICommandService commandService = getCommandService();
-		ParameterType type = commandService.getParameterType(TYPE);
-		
-		assertTrue(type.isCompatible(new Integer(4)));
-		assertTrue(type.isCompatible(new Integer(0)));
-		assertTrue(type.isCompatible(new Integer(-434)));
-		assertFalse(type.isCompatible(null));
-		assertFalse(type.isCompatible("4"));
-	}
-	
-	/**
-	 * Try to find a command that takes integers as parameters. We might find
-	 * multiple commands - just make sure we can at least find the subtract
-	 * command used elsewhere in this test suite.
-	 */
-	public void testFindIntegerParamCommand() throws CommandException {
-		Integer value = new Integer(6);
-		
-		ICommandService commandService = getCommandService();
-		Command[] commands = commandService.getDefinedCommands();
-		
-		boolean foundSubtract = false;
-		
-		for (int i = 0; i < commands.length; i++) {
-			Command command = commands[i];
-			if (!command.isDefined())
-				continue;
-			
-			IParameter[] parameters = command.getParameters();
-			if (parameters == null)
-				continue;
-			
-			if (parameters.length == 0)
-				continue;
-			
-			if (checkParamType1(command, parameters[0], value)
-					&& checkParamType2(parameters[0], value)) {
-				if (SUBTRACT.equals(command.getId())) {
-					foundSubtract = true;
-					break;
-				}
-			}
-		}
-		
-		assertTrue(foundSubtract);
-	}
-	
-	private boolean checkParamType1(Command command, IParameter parameter,
-			Object value) throws CommandException {
-		ParameterType type = command.getParameterType(parameter.getId());
-		if (type == null)
-			return false;
-		return type.isCompatible(value);
-	}
-	
-	private boolean checkParamType2(IParameter parameter, Object value)
-			throws CommandException {
-		if (!(parameter instanceof ITypedParameter))
-			return false;
-		ParameterType type = ((ITypedParameter) parameter).getParameterType();
-		if (type == null)
-			return false;
-		return type.isCompatible(value);
-	}
-	
-	
-	/**
-	 * Test {@link Command#getReturnType()}, making sure we can get the return
-	 * type of the subtract command.
-	 */
-	public void testGetReturnType() throws CommandException {
-		ICommandService commandService = getCommandService();
-		Command command = commandService.getCommand(SUBTRACT);
-		
-		ParameterType returnType = command.getReturnType();
-		assertNotNull(returnType);
-		assertEquals(TYPE, returnType.getId());
-	}
-	
-	private ICommandService getCommandService() {
-		Object serviceObject = getWorkbench().getAdapter(ICommandService.class);
-		if (serviceObject != null) {
-			ICommandService service = (ICommandService) serviceObject;
-			return service;
-		}
-		return null;
-	}
-	
-	/**
-	 * Test {@link ParameterizedCommand}, making sure the order of
-	 * the parameters is not important.
-	 */
-	public void testUnrelevantOrder() throws NotDefinedException {
-		ICommandService commandService = getCommandService();
-		Command command = commandService.getCommand(SUBTRACT);
-		
-		IParameter sub = command.getParameter(SUBTRAHEND);
-		IParameter min = command.getParameter(MINUEND);
-		Parameterization param1 = new Parameterization(sub, "5");
-		Parameterization param2 = new Parameterization(min, "3");
-
-		Parameterization[] params = new Parameterization[2];
-		params[0] = param1;
-		params[1] = param2;
-
-		Parameterization[] params1 = new Parameterization[2];
-		params1[0] = param2;
-		params1[1] = param1;
-		
-		ParameterizedCommand pCommand1 = new ParameterizedCommand(command, params);
-		ParameterizedCommand pCommand2 = new ParameterizedCommand(command, params1);
-		
-		assertTrue(pCommand1.equals(pCommand2));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandSerializationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandSerializationTest.java
deleted file mode 100644
index 1e16b0c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandSerializationTest.java
+++ /dev/null
@@ -1,335 +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.tests.commands;
-
-import java.util.Map;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.SerializationException;
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test serialization and deserialization of ParameterizedCommands. See <a
- * href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=120523">bug 120523</a>.
- * 
- * @since 3.2
- */
-public class CommandSerializationTest extends UITestCase {
-
-	/**
-	 * Constructs a new instance of <code>CommandSerializationTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public CommandSerializationTest(String testName) {
-		super(testName);
-	}
-	
-	private final String showPerspectiveCommandId = "org.eclipse.ui.perspectives.showPerspective";
-	
-	/**
-	 * Test a serialization of the show perspective command with no parameters.
-	 * 
-	 * @throws CommandException
-	 */
-	public void testSerializeShowPerspective() throws CommandException {
-
-		testDeserializeAndSerialize(showPerspectiveCommandId,
-				showPerspectiveCommandId, 0, null, null);
-
-		// test with unnecessary (but valid) trailing "()" characters
-		testDeserializeAndSerialize(showPerspectiveCommandId+"()",
-				showPerspectiveCommandId, 0, null, null);
-	}
-	
-	
-	/**
-	 * Test a serialization of the show perspective command with a parameter.
-	 * 
-	 * @throws CommandException
-	 */
-	public void testSerializeShowResourcePerspective() throws CommandException {
-		
-		final String serializedShowResourcePerspectiveCommand = "org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.ui.resourcePerspective)";
-		final String showPerspectiveParameterId = "org.eclipse.ui.perspectives.showPerspective.perspectiveId";
-		final String resourcePerspectiveId = "org.eclipse.ui.resourcePerspective";
-
-		testDeserializeAndSerialize(serializedShowResourcePerspectiveCommand,
-				showPerspectiveCommandId, 1,
-				new String[] { showPerspectiveParameterId },
-				new String[] { resourcePerspectiveId });
-		
-	}
-	
-	/**
-	 * Test serialization of a command with zero parameters.
-	 * 
-	 * @throws CommandException
-	 */
-	public void testZeroParameterCommand() throws CommandException {
-		final String zeroParameterCommandId = "org.eclipse.ui.tests.commands.zeroParameterCommand";
-
-		// basic test
-		testDeserializeAndSerialize(zeroParameterCommandId,
-				zeroParameterCommandId, 0, null, null);
-		
-		// test with a bogus parameter
-		testDeserializeAndSerialize(zeroParameterCommandId
-				+ "(bogus.param=hello)", zeroParameterCommandId, 1, null, null);
-	}
-	
-	/**
-	 * Test serialization of a command with one parameter.
-	 * 
-	 * @throws CommandException
-	 */
-	public void testOneParameterCommand() throws CommandException {
-		final String oneParameterCommandId = "org.eclipse.ui.tests.commands.oneParameterCommand";
-		final String paramId1 = "param1.1";
-
-		// basic test
-		testDeserializeAndSerialize(oneParameterCommandId + "(param1.1=hello)",
-				oneParameterCommandId, 1, new String[] { paramId1 },
-				new String[] { "hello" });
-
-		// try it with null value param
-		testDeserializeAndSerialize(oneParameterCommandId + "(param1.1)",
-				oneParameterCommandId, 1, new String[] { paramId1 },
-				new String[] { null });
-
-		// try it without the param
-		testDeserializeAndSerialize(oneParameterCommandId,
-				oneParameterCommandId, 0, null, null);
-		
-		// test with a bogus parameter
-		testDeserializeAndSerialize(oneParameterCommandId
-				+ "(bogus.param=hello)", oneParameterCommandId, 1, null, null);
-		
-		// test with a bogus parameter and the real one
-		testDeserializeAndSerialize(oneParameterCommandId
-				+ "(bogus.param=hello,param1.1=foo)", oneParameterCommandId, 2,
-				new String[] { paramId1 }, new String[] { "foo" });
-	}
-	
-	/**
-	 * Test serialization of a command with two parameters.
-	 * 
-	 * @throws CommandException
-	 */
-	public void testTwoParameterCommand() throws CommandException {
-		final String twoParameterCommandId = "org.eclipse.ui.tests.commands.twoParameterCommand";
-		final String paramId1 = "param2.1";
-		final String paramId2 = "param2.2";
-
-		// basic test
-		testDeserializeAndSerialize(twoParameterCommandId
-				+ "(param2.1=hello,param2.2=goodbye)", twoParameterCommandId, 2,
-				new String[] { paramId1, paramId2 }, new String[] { "hello",
-						"goodbye" });
-		
-		// re-order parameters
-		testDeserializeAndSerialize(twoParameterCommandId
-				+ "(param2.2=goodbye,param2.1=hello)", twoParameterCommandId, 2,
-				new String[] { paramId1, paramId2 }, new String[] { "hello",
-						"goodbye" });
-		
-		// parameter values that need escaping
-		final String value1Escaped = "hello%(%)%%%=%,";
-		final String value2Escaped = "%%%=%(%)%,world";
-		testDeserializeAndSerialize(twoParameterCommandId + "(param2.1="
-				+ value1Escaped + ",param2.2=" + value2Escaped + ")",
-				twoParameterCommandId, 2, new String[] { paramId1, paramId2 },
-				new String[] { "hello()%=,", "%=(),world" });
-	}
-	
-	/**
-	 * Test serialization of a command with three parameters.
-	 * 
-	 * @throws CommandException
-	 */
-	public void testThreeParameterCommand() throws CommandException {
-		final String threeParameterCommandId = "org.eclipse.ui.tests.commands.threeParameterCommand";
-		final String paramId1 = "param3.1";
-		final String paramId2 = "param3.2";
-		final String paramId3 = "param3.3";
-
-		// basic test
-		testDeserializeAndSerialize(threeParameterCommandId
-				+ "(param3.1=foo,param3.2=bar,param3.3=baz)",
-				threeParameterCommandId, 3, new String[] { paramId1, paramId2,
-						paramId3 }, new String[] { "foo", "bar", "baz" });
-		
-		// test with a null parameter
-		testDeserializeAndSerialize(threeParameterCommandId
-				+ "(param3.1,param3.2=bar,param3.3=baz)",
-				threeParameterCommandId, 3, new String[] { paramId1, paramId2,
-						paramId3 }, new String[] { null, "bar", "baz" });
-		
-		// test with all null parameters
-		testDeserializeAndSerialize(threeParameterCommandId
-				+ "(param3.1,param3.2,param3.3)",
-				threeParameterCommandId, 3, new String[] { paramId1, paramId2,
-						paramId3 }, new String[] { null, null, null });
-		
-		// test with a missing parameter
-		testDeserializeAndSerialize(threeParameterCommandId
-				+ "(param3.1=foo,param3.3=baz)", threeParameterCommandId, 2,
-				new String[] { paramId1, paramId3 }, new String[] { "foo",
-						"baz" });
-	}
-
-	
-	/**
-	 * Test serialization of a command with names that need UTF-8 encoding.
-	 * 
-	 * @throws CommandException
-	 */
-	public void testFunnyNamesCommand() throws CommandException {
-		final String funnyNamesCommandId = "org.eclipse.ui.tests.command.with.f=%)(,unny.name";
-		final String funnyNamesCommandIdEncoded = "org.eclipse.ui.tests.command.with.f%=%%%)%(%,unny.name";
-
-		final String funnyNamesParamId = "param.with.F({'><+|.)=,%.name";
-		final String funnyNamesParamIdEncoded = "param.with.F%({'><+|.%)%=%,%%.name";
-
-		final String funnyValue = "= %,.&\n\t\r?*[](){}";
-		final String funnyValueEncoded = "%= %%%,.&\n\t\r?*[]%(%){}";
-
-		final String serializedFunnyNamesCommand = funnyNamesCommandIdEncoded
-				+ "(" + funnyNamesParamIdEncoded + "=" + funnyValueEncoded + ")";
-
-		// basic test
-		testDeserializeAndSerialize(serializedFunnyNamesCommand,
-				funnyNamesCommandId, 1, new String[] { funnyNamesParamId },
-				new String[] { funnyValue });
-	}
-	
-	public void testMalformedSerializationStrings() {
-		// try a missing closing ')'
-		expectSerializationException(showPerspectiveCommandId + "(");
-		
-		// try a bad escape sequence
-		expectSerializationException("some.command.foo%bar");
-	}
-	
-	public void testUndefinedCommands() {
-		expectNotDefinedException("this.command.ain't.defined(i.hope)");
-	}
-	
-	/**
-	 * Test deserializing a stored command and then serializing it back into a
-	 * string. The <code>serializedParameterizedCommand</code> may contain
-	 * some "bogus" parameters (ones not defined in the command registry for the
-	 * command). The <code>paramIds</code> and <code>paramValues</code>
-	 * arrays represent only the ids and values of the non-bogus serialized
-	 * parameters.
-	 * 
-	 * @param serializedParameterizedCommand
-	 *            a command serialization string
-	 * @param commandId
-	 *            id of the serialized command
-	 * @param serializedParamCount
-	 *            number of parameters in the serialization (some may be bogus)
-	 * @param paramIds
-	 *            parameter ids in the serialization that represent real
-	 *            parameters in the command
-	 * @param paramValues
-	 *            parameter values in the serialization (same number and order
-	 *            as paramIds)
-	 * @throws CommandException
-	 */
-	private void testDeserializeAndSerialize(
-			String serializedParameterizedCommand, String commandId,
-			int serializedParamCount, String[] paramIds, String[] paramValues)
-			throws CommandException {
-		
-		ICommandService commandService = getCommandService();
-		
-		int realParamCount = (paramIds == null) ? 0 : paramIds.length;
-
-		// first convert the serialized string to a ParameterizedCommand and
-		// check the parts
-		ParameterizedCommand pCommand = commandService
-				.deserialize(serializedParameterizedCommand);
-		assertNotNull(pCommand);
-		assertEquals(commandId, pCommand.getId());
-
-		Map paramMap = pCommand.getParameterMap();
-		assertEquals(realParamCount, paramMap.size());
-
-		if (paramIds != null) {
-			for (int i = 0; i < realParamCount; i++) {
-				assertTrue(paramMap.containsKey(paramIds[i]));
-				assertEquals(paramValues[i], paramMap.get(paramIds[i]));
-			}
-		}
-
-		// now convert the ParameterizedCommand back to a serialized string
-		String serialization = pCommand.serialize();
-		
-		if ((realParamCount == serializedParamCount) && (realParamCount < 2)) {
-			if ((realParamCount == 0)
-					&& (serializedParameterizedCommand.endsWith("()"))) {
-				// empty "()" is ok, but the re-serialization won't have it
-				// so add it back for comparison....
-				assertEquals(serializedParameterizedCommand, serialization
-						+ "()");
-			} else {
-				assertEquals(serializedParameterizedCommand, serialization);
-			}
-		} else {
-			// params may have been re-ordered so we can't compare
-		}
-		
-		// deserialize again and use .equals() on the ParameterizedCommands
-		ParameterizedCommand pCommand2 = commandService.deserialize(serialization);
-		assertEquals(pCommand, pCommand2);
-	}
-	
-	private void expectSerializationException(String serializedParameterizedCommand) {
-		ICommandService commandService = getCommandService();
-		
-		try {
-			commandService.deserialize(serializedParameterizedCommand);
-			fail("expected SerializationException");
-		} catch (SerializationException ex) {
-			// passed
-		} catch (NotDefinedException ex) {
-			fail("expected SerializationException");
-		}
-	}
-	
-	private void expectNotDefinedException(String serializedParameterizedCommand) {
-		ICommandService commandService = getCommandService();
-		
-		try {
-			commandService.deserialize(serializedParameterizedCommand);
-			fail("expected NotDefinedException");
-		} catch (SerializationException ex) {
-			fail("expected NotDefinedException");
-		} catch (NotDefinedException ex) {
-			// passed
-		}
-	}
-	
-	private ICommandService getCommandService() {
-		Object serviceObject = getWorkbench().getAdapter(ICommandService.class);
-		if (serviceObject != null) {
-			ICommandService service = (ICommandService) serviceObject;
-			return service;
-		}
-		return null;
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandsTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandsTestSuite.java
deleted file mode 100644
index daab90e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/CommandsTestSuite.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests for all areas of command support for the platform.
- */
-public final class CommandsTestSuite extends TestSuite {
-
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static final Test suite() {
-		return new CommandsTestSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public CommandsTestSuite() {
-		addTest(new TestSuite(Bug66182Test.class));
-		addTest(new TestSuite(Bug70503Test.class));
-		addTest(new TestSuite(Bug73756Test.class));
-		addTest(new TestSuite(Bug74982Test.class));
-		addTest(new TestSuite(Bug74990Test.class));
-		addTest(new TestSuite(Bug87856Test.class));
-		addTest(new TestSuite(Bug125792Test.class));
-		addTest(new TestSuite(CommandManagerTest.class));
-		addTest(new TestSuite(CommandParameterTypeTest.class));
-		addTest(new TestSuite(CommandSerializationTest.class));
-		addTest(new TestSuite(HelpContextIdTest.class));
-		addTest(new TestSuite(StateTest.class));
-		addTest(new TestSuite(HandlerActivationTest.class));
-		addTest(new TestSuite(CommandCallbackTest.class));
-		addTest(new TestSuite(CommandEnablementTest.class));
-		addTest(new TestSuite(CommandActionTest.class));
-		addTest(new TestSuite(ActionDelegateProxyTest.class));
-		addTest(new TestSuite(ToggleStateTest.class));
-		addTest(new TestSuite(RadioStateTest.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/EditorActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/EditorActionDelegate.java
deleted file mode 100644
index 449a3d4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/EditorActionDelegate.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @since 3.5
- *
- */
-public class EditorActionDelegate implements IEditorActionDelegate {
-
-	static boolean executed = false;
-	static IEditorPart part = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IEditorActionDelegate#setActiveEditor(org.eclipse.jface.action.IAction, org.eclipse.ui.IEditorPart)
-	 */
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		part = targetEditor;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		executed = true;
-	}
-
-	/* (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) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ExceptionThrowingHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ExceptionThrowingHandler.java
deleted file mode 100644
index ca7ca34..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ExceptionThrowingHandler.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-/**
- * @since 3.5
- * @author Prakash G.R.
- *
- */
-public class ExceptionThrowingHandler extends AbstractHandler{
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		throw new ExecutionException("");
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HandlerActivationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HandlerActivationTest.java
deleted file mode 100644
index 9bfd6aa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HandlerActivationTest.java
+++ /dev/null
@@ -1,459 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.Category;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-
-/**
- * Tests various aspects of command state.
- * 
- * @since 3.2
- */
-public class HandlerActivationTest extends UITestCase {
-	static class ActTestHandler extends AbstractHandler {
-		public String contextId;
-
-		public int executionCount = 0;
-
-		public ActTestHandler(String id) {
-			super();
-			contextId = id;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-		 */
-		public Object execute(ExecutionEvent event) {
-			executionCount++;
-			return null;
-		}
-
-	}
-
-	static class OutlineOnlyHandler extends AbstractHandler {
-		public Object execute(ExecutionEvent event) throws ExecutionException {
-			IWorkbenchPart part = HandlerUtil.getActivePartChecked(event);
-			if (!(part instanceof ContentOutline)) {
-				throw new ExecutionException("bogus part "
-						+ part.getSite().getId());
-			}
-			return null;
-		}
-
-		public void setEnabled(Object evaluationContext) {
-			IWorkbenchPart part = (IWorkbenchPart) HandlerUtil.getVariable(
-					evaluationContext, ISources.ACTIVE_PART_NAME);
-			setBaseEnabled(part instanceof ContentOutline);
-		}
-	}
-
-	public static final String C_PREFIX = "org.eclipse.ui.tests.contexts.";
-
-	public static final String C1_ID = C_PREFIX + ISources.ACTIVE_CONTEXT_NAME;
-
-	public static final String C2_ID = C_PREFIX
-			+ ISources.ACTIVE_ACTION_SETS_NAME;
-
-	public static final String C3_ID = C_PREFIX + ISources.ACTIVE_SHELL_NAME;
-
-	public static final String C4_ID = C_PREFIX
-			+ ISources.ACTIVE_WORKBENCH_WINDOW_SHELL_NAME;
-
-	private static final String CATEGORY_ID = "org.eclipse.ui.category.window";
-
-	public static final String CMD_ID = C_PREFIX + "command.testHandler";
-
-	private static final String[][] CREATE_CONTEXTS = {
-			{ C1_ID, "Active Contexts", null, IContextService.CONTEXT_ID_WINDOW },
-			{ C2_ID, "Active Action Sets", null,
-					IContextService.CONTEXT_ID_WINDOW },
-			{ C3_ID, "Active Shell", null, IContextService.CONTEXT_ID_WINDOW },
-			{ C4_ID, "Active Workbench Window Shell", null,
-					IContextService.CONTEXT_ID_WINDOW },
-			{ (C_PREFIX + ISources.ACTIVE_MENU_NAME),
-					"Active Workbench Window Shell", null,
-					IContextService.CONTEXT_ID_WINDOW }, };
-
-	public static final String H1 = C_PREFIX + "h1";
-
-	public static final String H2 = C_PREFIX + "h2";
-
-	public static final String H3 = C_PREFIX + "h3";
-
-	private ICommandService commandService;
-
-	private IContextService contextService;
-
-	private IHandlerService handlerService;
-
-	private IServiceLocator services;
-
-	private Map testContextActivations = new HashMap();
-
-	private Map testHandlerActivations = new HashMap();
-
-	private Map testHandlers = new HashMap();
-
-	/**
-	 * Constructor for <code>HandlerActivationTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public HandlerActivationTest(String name) {
-		super(name);
-		services = PlatformUI.getWorkbench();
-		contextService = (IContextService) services
-				.getService(IContextService.class);
-		commandService = (ICommandService) services
-				.getService(ICommandService.class);
-		handlerService = (IHandlerService) services
-				.getService(IHandlerService.class);
-	}
-
-	private IContextActivation activateContext(String contextId) {
-		IContextActivation c = contextService.activateContext(contextId);
-		testContextActivations.put(contextId, c);
-		return c;
-	}
-
-	/**
-	 * @param cmd
-	 * @param handlerId
-	 * @throws ExecutionException
-	 * @throws NotDefinedException
-	 * @throws NotEnabledException
-	 * @throws NotHandledException
-	 */
-	private void assertHandlerIsExecuted(Command cmd, String handlerId)
-			throws ExecutionException, NotDefinedException,
-			NotEnabledException, NotHandledException {
-		ActTestHandler handler = (ActTestHandler) testHandlers.get(handlerId);
-		int count = handler.executionCount;
-		cmd.executeWithChecks(new ExecutionEvent());
-		assertEquals("The handler count should be incremented", count + 1,
-				handler.executionCount);
-	}
-
-	/**
-	 * @param contextId
-	 * @param handlerId
-	 * @param expressionInfo
-	 */
-	private void createHandlerActivation(String contextId, String handlerId,
-			String[] expressionInfo) {
-		ActiveContextExpression expression;
-		expression = new ActiveContextExpression(contextId, expressionInfo);
-		makeHandler(handlerId, contextId, expression);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		for (int i = 0; i < CREATE_CONTEXTS.length; i++) {
-			final String[] contextInfo = CREATE_CONTEXTS[i];
-			final Context context = contextService.getContext(contextInfo[0]);
-			if (!context.isDefined()) {
-				context.define(contextInfo[1], contextInfo[2], contextInfo[3]);
-			}
-		}
-
-		Command cmd = commandService.getCommand(CMD_ID);
-		if (!cmd.isDefined()) {
-			Category cat = commandService.getCategory(CATEGORY_ID);
-			cmd.define("Test Handler", "Test handler activation", cat);
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		handlerService.deactivateHandlers(testHandlerActivations.values());
-		testHandlerActivations.clear();
-		contextService.deactivateContexts(testContextActivations.values());
-		testContextActivations.clear();
-		super.doTearDown();
-	}
-
-	/**
-	 * @throws ExecutionException
-	 * @throws NotDefinedException
-	 * @throws NotEnabledException
-	 * @throws NotHandledException
-	 */
-	private void doTestForBreak() throws ExecutionException,
-			NotDefinedException, NotEnabledException, NotHandledException {
-		Command cmd = commandService.getCommand(CMD_ID);
-		assertTrue("Command should be defined", cmd.isDefined());
-
-		assertFalse("Should not be handled yet", cmd.isHandled());
-
-		IContextActivation c1 = activateContext(C1_ID);
-		IContextActivation c2 = activateContext(C2_ID);
-		IContextActivation c3 = activateContext(C3_ID);
-
-		assertTrue("Should still be handled", cmd.isHandled());
-
-		assertHandlerIsExecuted(cmd, H3);
-
-		contextService.deactivateContext(c3);
-		contextService.deactivateContext(c2);
-		contextService.deactivateContext(c1);
-	}
-
-	/**
-	 * @param currentHandler
-	 * @param expression1
-	 */
-	private void makeHandler(String handler, String context,
-			ActiveContextExpression expression) {
-		IHandler currentHandler = null;
-		if (!testHandlers.containsKey(handler)) {
-			currentHandler = new ActTestHandler(context);
-			testHandlers.put(handler, currentHandler);
-		} else {
-			currentHandler = (IHandler) testHandlers.get(handler);
-		}
-
-		testHandlerActivations.put(handler, handlerService.activateHandler(
-				CMD_ID, currentHandler, expression));
-	}
-	
-	
-	public void testExceptionThrowingHandler(){
-		
-		try {
-			handlerService.executeCommand("org.eclipse.ui.tests.command.handlerException", null);
-			fail("An exception should be thrown for this handler");
-		} catch (Exception e) {
-			if(!(e instanceof ExecutionException))
-				fail("Unexpected exception while executing command", e);
-		}
-	}
-	
-	
-	public void testBasicHandler() throws Exception {
-
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-
-		Command cmd = commandService.getCommand(CMD_ID);
-		assertTrue("Command should be defined", cmd.isDefined());
-
-		assertFalse("Should not be handled yet", cmd.isHandled());
-
-		IContextActivation activationC1 = activateContext(C1_ID);
-		assertTrue("Should definitely be handled", cmd.isHandled());
-
-		ActTestHandler handler1 = (ActTestHandler) testHandlers.get(H1);
-		int count = handler1.executionCount;
-		cmd.executeWithChecks(new ExecutionEvent());
-		assertEquals("The handler count should be correct", count + 1,
-				handler1.executionCount);
-
-		contextService.deactivateContext(activationC1);
-
-		assertFalse("Should not be handled", cmd.isHandled());
-	}
-
-	public void testForBreak123() throws Exception {
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-		createHandlerActivation(C2_ID, H2,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME,
-						ISources.ACTIVE_ACTION_SETS_NAME });
-		createHandlerActivation(C3_ID, H3, new String[] {
-				ISources.ACTIVE_CONTEXT_NAME, ISources.ACTIVE_SHELL_NAME });
-
-		doTestForBreak();
-	}
-
-	public void testForBreak132() throws Exception {
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-		createHandlerActivation(C3_ID, H3, new String[] {
-				ISources.ACTIVE_CONTEXT_NAME, ISources.ACTIVE_SHELL_NAME });
-		createHandlerActivation(C2_ID, H2,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME,
-						ISources.ACTIVE_ACTION_SETS_NAME });
-
-		doTestForBreak();
-	}
-
-	public void testForBreak213() throws Exception {
-		createHandlerActivation(C2_ID, H2,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME,
-						ISources.ACTIVE_ACTION_SETS_NAME });
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-		createHandlerActivation(C3_ID, H3, new String[] {
-				ISources.ACTIVE_CONTEXT_NAME, ISources.ACTIVE_SHELL_NAME });
-
-		doTestForBreak();
-	}
-
-	public void testForBreak231() throws Exception {
-		createHandlerActivation(C2_ID, H2,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME,
-						ISources.ACTIVE_ACTION_SETS_NAME });
-		createHandlerActivation(C3_ID, H3, new String[] {
-				ISources.ACTIVE_CONTEXT_NAME, ISources.ACTIVE_SHELL_NAME });
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-
-		doTestForBreak();
-	}
-
-	public void testForBreak312() throws Exception {
-		createHandlerActivation(C3_ID, H3, new String[] {
-				ISources.ACTIVE_CONTEXT_NAME, ISources.ACTIVE_SHELL_NAME });
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-		createHandlerActivation(C2_ID, H2,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME,
-						ISources.ACTIVE_ACTION_SETS_NAME });
-
-		doTestForBreak();
-	}
-
-	public void testForBreak321() throws Exception {
-		createHandlerActivation(C3_ID, H3, new String[] {
-				ISources.ACTIVE_CONTEXT_NAME, ISources.ACTIVE_SHELL_NAME });
-		createHandlerActivation(C2_ID, H2,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME,
-						ISources.ACTIVE_ACTION_SETS_NAME });
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-
-		doTestForBreak();
-	}
-
-	public void testForNegativeNumber() throws Exception {
-		String c5_id = C_PREFIX + ISources.ACTIVE_MENU_NAME;
-		String h5 = C_PREFIX + "h5";
-		createHandlerActivation(c5_id, h5, new String[] {
-				ISources.ACTIVE_CONTEXT_NAME, ISources.ACTIVE_MENU_NAME });
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-
-		Command cmd = commandService.getCommand(CMD_ID);
-
-		activateContext(C1_ID);
-		activateContext(c5_id);
-
-		assertHandlerIsExecuted(cmd, h5);
-	}
-
-	public void testTwoHandlers() throws Exception {
-		createHandlerActivation(C1_ID, H1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-		createHandlerActivation(C2_ID, H2,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME,
-						ISources.ACTIVE_ACTION_SETS_NAME });
-
-		Command cmd = commandService.getCommand(CMD_ID);
-		assertTrue("Command should be defined", cmd.isDefined());
-
-		assertFalse("Should not be handled yet", cmd.isHandled());
-		IContextActivation activationC1 = activateContext(C1_ID);
-		assertTrue("Should definitely be handled", cmd.isHandled());
-
-		ActTestHandler handler1 = (ActTestHandler) testHandlers.get(H1);
-		int count1 = handler1.executionCount;
-		cmd.executeWithChecks(new ExecutionEvent());
-		assertEquals("The handler count should be incremented", count1 + 1,
-				handler1.executionCount);
-
-		activateContext(C2_ID);
-		assertTrue("Should still be handled", cmd.isHandled());
-
-		ActTestHandler handler2 = (ActTestHandler) testHandlers.get(H2);
-		int count2 = handler2.executionCount;
-		count1 = handler1.executionCount;
-		cmd.executeWithChecks(new ExecutionEvent());
-		assertEquals("The handler1 count should not be incremented", count1,
-				handler1.executionCount);
-		assertEquals("The handler2 count should be incremented", count2 + 1,
-				handler2.executionCount);
-
-		contextService.deactivateContext(activationC1);
-		assertTrue("Will still be handled", cmd.isHandled());
-	}
-
-	public void testLocalContext() throws Exception {
-		IWorkbenchWindow window = openTestWindow("org.eclipse.ui.resourcePerspective");
-		OutlineOnlyHandler handler = new OutlineOnlyHandler();
-		IEvaluationContext oldContext = handlerService
-				.createContextSnapshot(false);
-		testHandlerActivations.put(handler, handlerService.activateHandler(
-				CMD_ID, handler));
-		Command cmd = commandService.getCommand(CMD_ID);
-		ParameterizedCommand pcmd = new ParameterizedCommand(cmd, null);
-		try {
-			handlerService.executeCommand(pcmd, null);
-			fail("this should not be executable");
-		} catch (NotEnabledException e) {
-			// good
-		}
-		assertFalse(cmd.isEnabled());
-		window.getActivePage().showView(IPageLayout.ID_OUTLINE);
-		IEvaluationContext outlineContext = handlerService.createContextSnapshot(false);
-		handlerService.executeCommand(pcmd, null);
-		assertTrue(cmd.isEnabled());
-		
-		try {
-			handlerService.executeCommandInContext(pcmd, null, oldContext);
-			fail("this should not be executable");
-		} catch (NotEnabledException e) {
-			// good
-		}
-		
-		assertTrue(cmd.isEnabled());
-		handlerService.executeCommandInContext(pcmd, null, outlineContext);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HelpContextIdTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HelpContextIdTest.java
deleted file mode 100644
index 62aa3ea..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/HelpContextIdTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the new help context identifier support on commands and handlers.
- * 
- * @since 3.2
- */
-public final class HelpContextIdTest extends UITestCase {
-
-	private static final String COMMAND_HELP_ID = "org.eclipse.ui.tests.commandHelp";
-
-	private static final String COMMAND_ID = "org.eclipse.ui.tests.helpContextId";
-
-	private static final String HANDLER_HELP_ID = "org.eclipse.ui.tests.handlerHelp";
-
-	private static final String NEW_HELP_ID = "new_help_id";
-
-	/**
-	 * Constructs a new instance of <code>HelpContextIdTest</code>
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public HelpContextIdTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Tests the reading of the help context identifier of the registry, as well
-	 * as programmatic changes. It does not test whether there is notification.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the command defined in the registry is somehow not
-	 *             defined.
-	 */
-	public final void testHelpContextId() throws NotDefinedException {
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		String helpContextId = null;
-
-		// At first, the help context id should be the handler.
-		helpContextId = commandService.getHelpContextId(COMMAND_ID);
-		assertEquals(
-				"The initial help context id should be that of the handler",
-				HANDLER_HELP_ID, helpContextId);
-
-		// Retract the handler help context id by creating a handler conflict.
-		handlerService.activateHandler(COMMAND_ID, new AbstractHandler() {
-			public final Object execute(final ExecutionEvent event) {
-				return null;
-			}
-		});
-		helpContextId = commandService.getHelpContextId(COMMAND_ID);
-		assertEquals("The help context id should now be that of the command",
-				COMMAND_HELP_ID, helpContextId);
-
-		// Now undefine the command and check that an exception is thrown.
-		final Command command = commandService.getCommand(COMMAND_ID);
-		command.undefine();
-		try {
-			helpContextId = commandService.getHelpContextId(COMMAND_ID);
-			fail("A NotDefinedException should have been thrown");
-		} catch (final NotDefinedException e) {
-			// success
-		}
-
-		// Now define the command with a different help context id.
-		command.define("New Name", null, commandService.getCategory(null),
-				null, null, NEW_HELP_ID);
-		helpContextId = commandService.getHelpContextId(COMMAND_ID);
-		assertEquals("The help context id should now be the new id",
-				NEW_HELP_ID, helpContextId);
-	}
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/IntegerConverter.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/IntegerConverter.java
deleted file mode 100644
index 9866d48..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/IntegerConverter.java
+++ /dev/null
@@ -1,38 +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.tests.commands;
-
-import org.eclipse.core.commands.AbstractParameterValueConverter;
-import org.eclipse.core.commands.ParameterValueConversionException;
-
-public class IntegerConverter extends AbstractParameterValueConverter {
-
-	public Object convertToObject(String parameterValue)
-			throws ParameterValueConversionException {
-		try {
-			int val = Integer.parseInt(parameterValue);
-			return new Integer(val);
-		} catch (NumberFormatException ex) {
-			throw new ParameterValueConversionException(
-					"Error parsing value: " + parameterValue, ex);
-		}
-	}
-	
-	public String convertToString(Object parameterValue)
-			throws ParameterValueConversionException {
-		if (!(parameterValue instanceof Integer)) {
-			throw new ParameterValueConversionException("Invalid object type: "
-					+ parameterValue);
-		}
-		Integer val = (Integer) parameterValue;
-		return val.toString();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateHandler.java
deleted file mode 100644
index cc4504c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateHandler.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.handlers.RadioState;
-
-/**
- * @since 3.5
- * @author Prakash G.R.
- */
-public class RadioStateHandler extends AbstractHandler {
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		
-		if(HandlerUtil.matchesRadioState(event))
-			return null; // do nothing when we are in right state
-		
-		// else update the state
-		String currentState = event.getParameter(RadioState.PARAMETER_ID);
-		HandlerUtil.updateRadioState(event.getCommand(), currentState);
-
-		return null;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateTest.java
deleted file mode 100644
index d8663c7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/RadioStateTest.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.State;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.commands.IElementReference;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.handlers.RadioState;
-import org.eclipse.ui.menus.UIElement;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- * @author Prakash G.R.
- * 
- */
-public class RadioStateTest extends UITestCase {
-
-	private ICommandService commandService;
-	private IHandlerService handlerService;
-
-	public RadioStateTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-	}
-
-	public void testRadioValues() throws Exception {
-
-		Command command1 = commandService
-				.getCommand("org.eclipse.ui.tests.radioStateCommand1");
-
-		// check the initial values
-		assertState(command1, "value2");
-
-		// execute with value1
-		Parameterization radioParam = new Parameterization(command1
-				.getParameter(RadioState.PARAMETER_ID), "value1");
-		ParameterizedCommand parameterizedCommand = new ParameterizedCommand(
-				command1, new Parameterization[] { radioParam });
-		handlerService.executeCommand(parameterizedCommand, null);
-
-		// check if updated
-		assertState(command1, "value1");
-		
-		handlerService.executeCommand(parameterizedCommand, null);
-		assertState(command1, "value1");
-		
-		Parameterization radioParam2 = new Parameterization(command1
-				.getParameter(RadioState.PARAMETER_ID), "value2");
-		ParameterizedCommand parameterizedCommand2 = new ParameterizedCommand(
-				command1, new Parameterization[] { radioParam2 });
-		handlerService.executeCommand(parameterizedCommand2, null);
-		assertState(command1, "value2");
-	}
-	
-	
-	static class MyUIElement extends UIElement{
-
-		private boolean checked;
-		protected MyUIElement(IServiceLocator serviceLocator){
-			super(serviceLocator);
-		}
-
-		public void setDisabledIcon(ImageDescriptor desc) {}
-		public void setHoverIcon(ImageDescriptor desc) {}
-		public void setIcon(ImageDescriptor desc) {}
-		public void setText(String text) {}
-		public void setTooltip(String text) {}
-
-		public void setChecked(boolean checked) {
-			this.checked = checked;
-		}
-		
-		public boolean isChecked() {
-			return checked;
-		}
-
-	}
-
-	MyUIElement element1a;
-	MyUIElement element2a;
-	MyUIElement element3a;
-	
-	MyUIElement element1b;
-	MyUIElement element2b;
-	MyUIElement element3b;
-
-	public void testMultipleContributions() throws Exception{
-		
-		Command command1 = commandService.getCommand("org.eclipse.ui.tests.radioStateCommand1");
-		
-		// group 1
-		Parameterization radioParam1a = new Parameterization(command1.getParameter(RadioState.PARAMETER_ID), "value1");
-		ParameterizedCommand parameterizedCommand1a = new ParameterizedCommand(command1, new Parameterization[] { radioParam1a });
-		
-		Parameterization radioParam2a = new Parameterization(command1.getParameter(RadioState.PARAMETER_ID), "value2");
-		ParameterizedCommand parameterizedCommand2a = new ParameterizedCommand(command1, new Parameterization[] { radioParam2a });
-		
-		Parameterization radioParam3a = new Parameterization(command1.getParameter(RadioState.PARAMETER_ID), "value3");
-		ParameterizedCommand parameterizedCommand3a = new ParameterizedCommand(command1, new Parameterization[] { radioParam3a });
-		
-		element1a = new MyUIElement(fWorkbench);
-		element2a = new MyUIElement(fWorkbench);
-		element3a = new MyUIElement(fWorkbench);
-
-		IElementReference reference1a = commandService.registerElementForCommand(parameterizedCommand1a, element1a);
-		IElementReference reference2a = commandService.registerElementForCommand(parameterizedCommand2a, element2a);
-		IElementReference reference3a = commandService.registerElementForCommand(parameterizedCommand3a, element3a);
-		
-		// group 2
-		Parameterization radioParam1b = new Parameterization(command1.getParameter(RadioState.PARAMETER_ID), "value1");
-		ParameterizedCommand parameterizedCommand1b = new ParameterizedCommand(command1, new Parameterization[] { radioParam1b });
-		
-		Parameterization radioParam2b = new Parameterization(command1.getParameter(RadioState.PARAMETER_ID), "value2");
-		ParameterizedCommand parameterizedCommand2b = new ParameterizedCommand(command1, new Parameterization[] { radioParam2b });
-		
-		Parameterization radioParam3b = new Parameterization(command1.getParameter(RadioState.PARAMETER_ID), "value3");
-		ParameterizedCommand parameterizedCommand3b = new ParameterizedCommand(command1, new Parameterization[] { radioParam3b });
-		
-		element1b = new MyUIElement(fWorkbench);
-		element2b = new MyUIElement(fWorkbench);
-		element3b = new MyUIElement(fWorkbench);
-
-		IElementReference reference1b = commandService.registerElementForCommand(parameterizedCommand1b, element1b);
-		IElementReference reference2b = commandService.registerElementForCommand(parameterizedCommand2b, element2b);
-		IElementReference reference3b = commandService.registerElementForCommand(parameterizedCommand3b, element3b);
-		
-		try{
-
-			// first set the state to value1
-			handlerService.executeCommand(parameterizedCommand1a, null);
-			commandService.refreshElements(command1.getId(), null);
-			
-			assertChecked(element1a);
-			assertBothGroupsUpdated();
-			
-			// then set the state to value2
-			handlerService.executeCommand(parameterizedCommand2a, null);
-			
-			// only value 2 is checked
-			assertChecked(element2a);
-			assertBothGroupsUpdated();
-			
-			
-		}finally {
-			commandService.unregisterElement(reference1a);
-			commandService.unregisterElement(reference2a);
-			commandService.unregisterElement(reference3a);
-			commandService.unregisterElement(reference1b);
-			commandService.unregisterElement(reference2b);
-			commandService.unregisterElement(reference3b);
-		}
-		
-	}
-
-	private void assertChecked(MyUIElement checkedElement) {
-		
-		// only the element passed is checked and other two should be unchecked
-		assertTrue(checkedElement == element1a? element1a.isChecked():!element1a.isChecked());
-		assertTrue(checkedElement == element2a? element2a.isChecked():!element2a.isChecked());
-		assertTrue(checkedElement == element3a? element3a.isChecked():!element3a.isChecked());
-	}
-
-	private void assertBothGroupsUpdated() {
-		assertEquals(element1a.isChecked(), element1b.isChecked());
-		assertEquals(element2a.isChecked(), element2b.isChecked());
-		assertEquals(element3a.isChecked(), element3b.isChecked());
-	}
-
-	private void assertState(Command command, String expectedValue) {
-		State state = command.getState(RadioState.STATE_ID);
-		Object value = state.getValue();
-		assertTrue(value instanceof String);
-		assertEquals(expectedValue, value);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SimplyGoActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SimplyGoActionDelegate.java
deleted file mode 100644
index 299f76c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SimplyGoActionDelegate.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * @since 3.5
- *
- */
-public class SimplyGoActionDelegate implements IWorkbenchWindowActionDelegate {
-	static boolean executed = false;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow window) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		executed = true;
-	}
-
-	/* (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) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/StateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/StateTest.java
deleted file mode 100644
index 5e6f288..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/StateTest.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.AbstractHandlerWithState;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.IStateListener;
-import org.eclipse.core.commands.State;
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.jface.commands.PersistentState;
-import org.eclipse.jface.menus.TextState;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerActivation;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.handlers.RegistryRadioState;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests various aspects of command state.
- * 
- * @since 3.2
- */
-public class StateTest extends UITestCase {
-
-	/**
-	 * 
-	 */
-	private static final String TEXT_HELLO = "hello";
-
-	private static final class ObjectStateHandler extends
-			AbstractHandlerWithState {
-
-		Object currentValue;
-		String textValue;
-
-		public final Object execute(final ExecutionEvent event) {
-			getState(OBJECT_STATE_ID).setValue(OBJECT_CHANGED);
-			return OBJECT_CHANGED;
-		}
-
-		public final void handleStateChange(final State state,
-				final Object oldValue) {
-			if (OBJECT_STATE_ID.equals(state.getId())) {
-				currentValue = state.getValue();
-			} else if (TEXT_STATE_ID.equals(state.getId())) {
-				textValue = (String) state.getValue();
-			}
-		}
-	}
-
-	private static final class StateListener implements IStateListener {
-		Object currentValue;
-		String textValue;
-
-		public final void handleStateChange(final State state,
-				final Object oldValue) {
-
-			if (OBJECT_STATE_ID.equals(state.getId())) {
-				currentValue = state.getValue();
-			} else if (TEXT_STATE_ID.equals(state.getId())) {
-				textValue = (String) state.getValue();
-			}
-		}
-	}
-
-	/**
-	 * The identifier of the command with state that we wish to test.
-	 */
-	private static final String COMMAND_ID = "org.eclipse.ui.tests.commandWithState";
-
-	/**
-	 * The object to which the command is set as a test.
-	 */
-	private static final Object OBJECT_CHANGED = "CHANGED";
-
-	/**
-	 * The object to which the command is set before the test starts.
-	 */
-	private static final Object OBJECT_INITIAL = "INITIAL";
-
-	/**
-	 * The identifier of the state storing a simple object.
-	 */
-	private static final String OBJECT_STATE_ID = "OBJECT";
-
-	/**
-	 * The identifier of the state storing some text.
-	 */
-	private static final String TEXT_STATE_ID = "TEXT";
-
-	/**
-	 * The object state handler.
-	 */
-	private ObjectStateHandler handler;
-
-	/**
-	 * The handler activation for the object state handler.
-	 */
-	private IHandlerActivation handlerActivation;
-
-	/**
-	 * Constructor for <code>StateTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public StateTest(String name) {
-		super(name);
-	}
-
-	protected final void doSetUp() {
-		// Reset the object state to the initial object.
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final Command command = commandService.getCommand(COMMAND_ID);
-		command.getState(OBJECT_STATE_ID).setValue(OBJECT_INITIAL);
-		command.getState(TEXT_STATE_ID).setValue(null);
-
-		// Register the object state handler.
-		handler = new ObjectStateHandler();
-		final IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		handlerActivation = handlerService.activateHandler(COMMAND_ID, handler);
-	}
-
-	protected final void doTearDown() {
-		// Unregister the object state handler.
-		final IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		handlerService.deactivateHandler(handlerActivation);
-		handlerActivation = null;
-		handler.dispose();
-		handler = null;
-	}
-
-	/**
-	 * Tests that if the handler changes the state, a listener to the state
-	 * retrieved from the command is notified.
-	 * 
-	 * @throws CommandException
-	 *             Never.
-	 */
-	public final void testCommandNotifiedOfStateChange()
-			throws CommandException {
-		// Attach a listener to the state on the command.
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final Command command = commandService.getCommand(COMMAND_ID);
-		final State state = command.getState(OBJECT_STATE_ID);
-		final StateListener listener = new StateListener();
-		listener.currentValue = state.getValue();
-		state.addListener(listener);
-
-		// Check the initial state.
-		assertSame("The initial state was not correct", OBJECT_INITIAL,
-				listener.currentValue);
-
-		// Run the handler.
-		final IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		handlerService.executeCommand(COMMAND_ID, null);
-
-		// Check the state.
-		assertSame(
-				"The state on the command after the handler changed was not correct",
-				OBJECT_CHANGED, listener.currentValue);
-
-		// Remove the listener.
-		state.removeListener(listener);
-	}
-
-	/**
-	 * Tests that if the handler changes the state, the command reflects these
-	 * changes.
-	 * 
-	 * @throws CommandException
-	 *             Never.
-	 */
-	public final void testStateChangeReflectedInCommand()
-			throws CommandException {
-		// Get the command.
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final Command command = commandService.getCommand(COMMAND_ID);
-
-		// Check the initial state.
-		assertSame("The initial state was not correct", OBJECT_INITIAL, command
-				.getState(OBJECT_STATE_ID).getValue());
-
-		// Run the handler.
-		final IHandlerService handlerService = (IHandlerService) fWorkbench
-				.getService(IHandlerService.class);
-		handlerService.executeCommand(COMMAND_ID, null);
-
-		// Check the state.
-		assertSame(
-				"The state on the command after the handler changed was not correct",
-				OBJECT_CHANGED, command.getState(OBJECT_STATE_ID).getValue());
-	}
-
-	/**
-	 * Tests that if the command changes the state, the handler reflects these
-	 * changes.
-	 */
-	public final void testStateChangeReflectedInHandler() {
-		// Check the initial state.
-		assertSame("The initial state was not correct", OBJECT_INITIAL,
-				handler.currentValue);
-
-		// Change the state on the command.
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final Command command = commandService.getCommand(COMMAND_ID);
-		command.getState(OBJECT_STATE_ID).setValue(OBJECT_CHANGED);
-
-		// Check the state.
-		assertSame(
-				"The state on the command after the handler changed was not correct",
-				OBJECT_CHANGED, handler.currentValue);
-	}
-	
-	public final void testTextState() {
-		assertNull(handler.textValue);
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final Command command = commandService.getCommand(COMMAND_ID);
-		command.getState(TEXT_STATE_ID).setValue(TEXT_HELLO);
-		assertEquals(TEXT_HELLO, handler.textValue);
-	}
-	
-	public final void testTextStateListener() {
-		assertNull(handler.textValue);
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final Command command = commandService.getCommand(COMMAND_ID);
-		State state = command.getState(TEXT_STATE_ID);
-		final StateListener listener = new StateListener();
-		assertNull(state.getValue());
-		assertNull(listener.textValue);
-		assertNull(handler.textValue);
-		
-		state.addListener(listener);
-		state.setValue(TEXT_HELLO);
-		assertEquals(TEXT_HELLO, handler.textValue);
-		assertEquals(TEXT_HELLO, listener.textValue);
-	}
-	
-	public final void testTextPreference() {
-		final ICommandService commandService = (ICommandService) fWorkbench
-				.getService(ICommandService.class);
-		final Command command = commandService.getCommand(COMMAND_ID);
-		State state = command.getState(TEXT_STATE_ID);
-		state.setValue(TEXT_HELLO);
-		assertTrue(state instanceof PersistentState);
-		PersistentState pstate = (PersistentState) state;
-		IPreferenceStore preferenceStore = TestPlugin.getDefault().getPreferenceStore();
-		pstate.save(preferenceStore, COMMAND_ID
-				+ "." + TEXT_STATE_ID);
-		TextState nstate = new TextState();
-		assertNull(nstate.getValue());
-		nstate.load(preferenceStore, COMMAND_ID
-				+ "." + TEXT_STATE_ID);
-		assertEquals(TEXT_HELLO, nstate.getValue());
-	}
-	
-	public final void testRadioState() {
-		RegistryRadioState state1 = new RegistryRadioState();
-		state1.setInitializationData(null, "class", COMMAND_ID);
-		assertEquals(Boolean.FALSE, state1.getValue());
-		RegistryRadioState state2 = new RegistryRadioState();
-		state2.setInitializationData(null, "class", COMMAND_ID);
-		assertEquals(Boolean.FALSE, state2.getValue());
-
-		state1.setValue(Boolean.TRUE);
-		assertEquals(Boolean.TRUE, state1.getValue());
-		assertEquals(Boolean.FALSE, state2.getValue());
-
-		state2.setValue(Boolean.TRUE);
-		assertEquals(Boolean.FALSE, state1.getValue());
-		assertEquals(Boolean.TRUE, state2.getValue());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SubtractIntegerHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SubtractIntegerHandler.java
deleted file mode 100644
index f40b28a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/SubtractIntegerHandler.java
+++ /dev/null
@@ -1,30 +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.tests.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-/**
- * Handler for the <code>org.eclipse.ui.tests.commands.subtractInteger</code>
- * command.
- */
-public class SubtractIntegerHandler extends AbstractHandler {
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		Integer minuend = (Integer) event
-				.getObjectParameterForExecution(CommandParameterTypeTest.MINUEND);
-		Integer subtrahend = (Integer) event
-				.getObjectParameterForExecution(CommandParameterTypeTest.SUBTRAHEND);
-		return new Integer(minuend.intValue() - subtrahend.intValue());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateHandler.java
deleted file mode 100644
index fabcd77..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateHandler.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-public class ToggleStateHandler extends AbstractHandler {
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		
-		boolean oldValue = HandlerUtil.toggleCommandState(event.getCommand());
-		return new Boolean(oldValue);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateTest.java
deleted file mode 100644
index e310d29..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ToggleStateTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.State;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.commands.IElementReference;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.handlers.RegistryToggleState;
-import org.eclipse.ui.menus.UIElement;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- * @author Prakash G.R.
- *
- */
-public class ToggleStateTest extends UITestCase {
-
-	private ICommandService commandService;
-	private IHandlerService handlerService;
-
-
-	public ToggleStateTest(String testName) {
-		super(testName);
-	}
-	
-	
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		commandService = (ICommandService) fWorkbench.getService(ICommandService.class);
-		handlerService = (IHandlerService) fWorkbench.getService(IHandlerService.class);
-	}
-	
-	public void testDefaultValues() throws Exception {
-		
-		Command command1 = commandService.getCommand("org.eclipse.ui.tests.toggleStateCommand1");
-		Command command2 = commandService.getCommand("org.eclipse.ui.tests.toggleStateCommand2");
-
-		// check the initial values
-		assertState(command1, true);
-		assertState(command2, false);
-		
-		// execute and check the values have changed or not
-		handlerService.executeCommand(command1.getId(), null);
-		handlerService.executeCommand(command2.getId(), null);
-
-		assertState(command1, false);
-		assertState(command2, true);
-
-	}
-	
-	public void testExceptionThrown() throws Exception {
-		
-		Command command3 = commandService.getCommand("org.eclipse.ui.tests.toggleStateCommand3");
-		try {
-			handlerService.executeCommand(command3.getId(), null);
-			fail("Command3 doesn't have any state. An exception must be thrown from the handler, when trying to change that");
-		} catch (Exception e) {
-			if(!(e instanceof ExecutionException))
-				throw e;
-		}
-	}
-
-	static class MyUIElement extends UIElement{
-
-		private boolean checked;
-		protected MyUIElement(IServiceLocator serviceLocator){
-			super(serviceLocator);
-		}
-
-		public void setDisabledIcon(ImageDescriptor desc) {}
-		public void setHoverIcon(ImageDescriptor desc) {}
-		public void setIcon(ImageDescriptor desc) {}
-		public void setText(String text) {}
-		public void setTooltip(String text) {}
-
-		public void setChecked(boolean checked) {
-			this.checked = checked;
-		}
-		
-		public boolean isChecked() {
-			return checked;
-		}
-
-	}
-	
-	public void testMultipleContributions() throws Exception{
-		
-		Command command1 = commandService.getCommand("org.eclipse.ui.tests.toggleStateCommand1");
-		ParameterizedCommand parameterizedCommand = new ParameterizedCommand(command1, new Parameterization[0]);
-		
-		MyUIElement element1 = new MyUIElement(fWorkbench);
-		MyUIElement element2 = new MyUIElement(fWorkbench);
-		
-		IElementReference reference1 = commandService.registerElementForCommand(parameterizedCommand, element1);
-		IElementReference reference2 = commandService.registerElementForCommand(parameterizedCommand, element2);
-		
-		try{
-		
-			commandService.refreshElements(command1.getId(), null);
-			assertEquals(element1.isChecked(), element2.isChecked());
-			
-			Boolean oldValue = (Boolean) handlerService.executeCommand(command1.getId(), null);
-			//value should have changed
-			assertEquals(!oldValue.booleanValue(), element1.isChecked());
-			//and changed in both places
-			assertEquals(element1.isChecked(), element2.isChecked());
-			
-		}finally {
-			commandService.unregisterElement(reference1);
-			commandService.unregisterElement(reference2);
-		}
-		
-	}
-
-	private void assertState(Command command1, boolean expectedValue) {
-		State state = command1.getState(RegistryToggleState.STATE_ID);
-		Object value = state.getValue();
-		assertTrue(value instanceof Boolean);
-		assertEquals(expectedValue, ((Boolean)value).booleanValue());
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ViewActionDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ViewActionDelegate.java
deleted file mode 100644
index 0276559..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/commands/ViewActionDelegate.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.commands;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.tests.api.workbenchpart.MenuContributionHarness;
-
-/**
- * A view delegate for testing.
- * @since 3.3
- */
-public class ViewActionDelegate implements IViewActionDelegate {
-
-	private IViewPart viewPart;
-
-	public void init(IViewPart view) {
-		viewPart = view;
-	}
-
-	public void run(IAction action) {
-		if (viewPart instanceof MenuContributionHarness) {
-			((MenuContributionHarness)viewPart).updateCount();
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// don't care
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferences.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferences.java
deleted file mode 100644
index f15b2e7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferences.java
+++ /dev/null
@@ -1,65 +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.ui.tests.compare;
-
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.dialogs.PreferenceDialogWrapper;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIComparePreferences extends TestCase {
-
-    public UIComparePreferences(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private PreferenceDialog getPreferenceDialog(String id) {
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-            WorkbenchHelp.setHelp(dialog.getShell(),
-                    IWorkbenchHelpContextIds.PREFERENCE_DIALOG);
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node.getId().equals(id)) {
-                    dialog.showPage(node);
-                    break;
-                }
-            }
-        }
-        return dialog;
-    }
-
-    public void testCompareViewersPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.compare.internal.ComparePreferencePage");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferencesAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferencesAuto.java
deleted file mode 100644
index 70e5632..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/compare/UIComparePreferencesAuto.java
+++ /dev/null
@@ -1,65 +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.ui.tests.compare;
-
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.dialogs.PreferenceDialogWrapper;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIComparePreferencesAuto extends TestCase {
-
-    public UIComparePreferencesAuto(String name) {
-        super(name);
-    }
-
-    protected Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private PreferenceDialog getPreferenceDialog(String id) {
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-            WorkbenchHelp.setHelp(dialog.getShell(),
-                    IWorkbenchHelpContextIds.PREFERENCE_DIALOG);
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node.getId().equals(id)) {
-                    dialog.showPage(node);
-                    break;
-                }
-            }
-        }
-        return dialog;
-    }
-
-    public void testCompareViewersPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.compare.internal.ComparePreferencePage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ConcurrencyTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ConcurrencyTestSuite.java
deleted file mode 100644
index 3953091..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ConcurrencyTestSuite.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.concurrency;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The suite of tests related to concurrency and deadlock.
- * 
- * @since 3.1
- */
-public final class ConcurrencyTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static final Test suite() {
-        return new ConcurrencyTestSuite();
-    }
-
-    /**
-     * Constructs a new instance of <code>ConcurrencyTestSuite</code> with all of
-     * the relevant test cases.
-     */
-    public ConcurrencyTestSuite() {
-    	addTestSuite(ModalContextCrashTest.class);
-        addTestSuite(NestedSyncExecDeadlockTest.class);
-        addTestSuite(SyncExecWhileUIThreadWaitsForLock.class);
-        addTestSuite(TestBug105491.class);
-        addTestSuite(TestBug108162.class);
-        addTestSuite(TestBug138695.class);
-        addTestSuite(TestBug98621.class);
-        addTestSuite(TransferRuleTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ModalContextCrashTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ModalContextCrashTest.java
deleted file mode 100644
index 2157f1c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/ModalContextCrashTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.concurrency;
-
-import java.lang.reflect.InvocationTargetException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.IThreadListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Makes ModalContext thread crash and hang the IDE
- */
-public class ModalContextCrashTest extends TestCase {
-
-	public void testCrash() throws Exception {
-		IRunnableWithProgress operation = new CrashingRunnable();
-		try{
-			PlatformUI.getWorkbench().getActiveWorkbenchWindow().run(true, false, operation);
-			fail("Should have an invocation target exception");
-		}
-		catch (InvocationTargetException e){
-			//We should get this
-		}
-	}
-
-	private static final class CrashingRunnable implements IRunnableWithProgress, IThreadListener {
-
-		public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		}
-
-		public void threadChange(Thread thread) {
-			// only throw the exception in the finally block 
-			// of ModalContextThread
-			if (Display.findDisplay(thread) != null)
-				throw new RuntimeException("Simulated exception during threadChange");
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/NestedSyncExecDeadlockTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/NestedSyncExecDeadlockTest.java
deleted file mode 100644
index 421c80a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/NestedSyncExecDeadlockTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2004 Jeremiah Lott and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- *   Jeremiah Lott (jeremiah.lott@timesys.com) - Initial implementation
- *   IBM Added comments, removed printlns, and incorporated into platform test suites
- **********************************************************************/
-package org.eclipse.ui.tests.concurrency;
-
-import junit.framework.TestCase;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * This is a regression test for a case where a recursive attempt to syncExec
- * from within code that owns a lock would cause deadlock. See bug 76378 for details.
- */
-public class NestedSyncExecDeadlockTest extends TestCase {
-
-	private class ResourceListener implements IResourceChangeListener {
-		public void resourceChanged(IResourceChangeEvent event) {
-			Display.getDefault().syncExec(new Runnable() {
-				public void run() {
-				}
-			});
-		}
-	}
-
-	private IResourceChangeListener listener;
-	private IProject project;
-
-	private IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-	public NestedSyncExecDeadlockTest() {
-		super();
-	}
-
-	public NestedSyncExecDeadlockTest(String name) {
-		super(name);
-	}
-
-	public void doTest(final long timeToSleep) throws Exception {
-		ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell());
-		dialog.run(true, false, new WorkspaceModifyOperation() {
-			public void execute(final IProgressMonitor pm) {
-				Display.getDefault().syncExec(new Runnable() {
-					public void run() {
-						try {
-							workspace.run(new IWorkspaceRunnable() {
-								public void run(IProgressMonitor mon) throws CoreException {
-									project.touch(null);
-									try {
-										// wait long enough to be sure to trigger notification
-										Thread.sleep(timeToSleep);
-									} catch (InterruptedException ex) {
-										ex.printStackTrace();
-									}
-								}
-							}, workspace.getRoot(), IResource.NONE, pm);
-							workspace.run(new IWorkspaceRunnable() {
-								public void run(IProgressMonitor mon) {
-								}
-							}, pm);
-
-						} catch (CoreException ex) {
-							ex.printStackTrace();
-						}
-					}
-				});
-			}
-		});
-	}
-
-	protected void setUp() throws Exception {
-		project = workspace.getRoot().getProject("test-deadlock");
-
-		tearDown();
-
-		project.create(null);
-		project.open(null);
-
-		listener = new ResourceListener();
-		workspace.addResourceChangeListener(listener, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	protected void tearDown() throws Exception {
-		if (listener != null) {
-			workspace.removeResourceChangeListener(listener);
-		}
-		project.delete(true, true, null);
-	}
-
-	public void testDeadlock() throws Exception {
-		doTest(1000 * 30); // 30 secs almost always locks
-	}
-
-	public void testOK() throws Exception {
-		doTest(0); // 0 rarely locks		
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/SyncExecWhileUIThreadWaitsForLock.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/SyncExecWhileUIThreadWaitsForLock.java
deleted file mode 100644
index 5c9a081..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/SyncExecWhileUIThreadWaitsForLock.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.concurrency;
-
-import org.eclipse.swt.widgets.Display;
-
-import org.eclipse.core.runtime.jobs.ILock;
-
-import org.eclipse.core.runtime.jobs.Job;
-
-import junit.framework.TestCase;
-
-/**
- * This tests the simple traditional deadlock of a thread holding a lock trying
- * to perform a syncExec, while the UI thread is waiting for that lock.
- * UISynchronizer and UILockListener conspire to prevent deadlock in this case.
- */
-public class SyncExecWhileUIThreadWaitsForLock extends TestCase {
-	public void testDeadlock() {
-		final ILock lock = Job.getJobManager().newLock();
-		final boolean[] blocked = new boolean[] {false};
-		final boolean[] lockAcquired= new boolean[] {false};
-		Thread locking = new Thread("SyncExecWhileUIThreadWaitsForLock") {
-			public void run() {
-				try {
-					//first make sure this background thread owns the lock
-					lock.acquire();
-					//spawn an asyncExec that will cause the UI thread to be blocked
-					Display.getDefault().asyncExec(new Runnable() {
-						public void run() {
-							blocked[0] = true;
-							lock.acquire();
-							lock.release();
-							blocked[0] = false;
-						}
-					});
-					//wait until the UI thread is blocked waiting for the lock
-					while (!blocked[0]) {
-						try {
-							Thread.sleep(100);
-						} catch (InterruptedException e) {
-						}
-					}
-					//now attempt to do a syncExec that also acquires the lock
-					//this should succeed even while the above asyncExec is blocked, thanks to UISynchronizer
-					Display.getDefault().syncExec(new Runnable() {
-						public void run() {
-							try {
-								//use a timeout to avoid deadlock in case of regression
-								if (lock.acquire(60000)) {
-									//this flag is used to verify that we actually acquired the lock
-									lockAcquired[0] = true;
-									lock.release();
-								}
-							} catch (InterruptedException e) {
-							}
-						}
-					});
-				} finally {
-					lock.release();
-				}
-			}
-		};
-		locking.start();
-		//wait until we succeeded to acquire the lock in the UI thread
-		long waitStart = System.currentTimeMillis();
-		Display display = Display.getDefault();
-		while (!lockAcquired[0]) {
-			//spin event loop so that asyncExed above gets run
-			if (!display.readAndDispatch())
-				display.sleep();
-			//if we waited too long, fail the test
-			if (System.currentTimeMillis()-waitStart > 60000)
-				assertTrue("Deadlock occurred", false);
-		}
-		//if we get here, the test succeeded
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug105491.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug105491.java
deleted file mode 100644
index 1832ada..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug105491.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.tests.concurrency;
-
-import java.lang.reflect.InvocationTargetException;
-import junit.framework.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IThreadListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Tests the following sequence of events:
- * 1) Workspace operation starts in the UI thread.  Workspace lock is taken, and a modal context thread is forked (call this modal context MC1).
- * 2) Operation transfers the workspace lock to MC1 using IJobManager.transferRule
- * 3) Operation runs in MC1, scheduling an asyncExec.
- * 4) MC1 passes the scheduling rule back to UI thread, and exits
- * 5) After passing the rule back to the UI thread, but before MC1 dies, the asyncExec is run.
- * 6) The asyncExec forks another model context (MC2), and blocks the UI thread in another event loop.
- * 7) MC2 tries to acquire the workspace lock and deadlocks, because at this point it has been transferred to the UI thread
- * 
- * NOTE: This bug has not yet been fixed.  This test illustrates the problem, but must
- * not be added to the parent test suite until the problem has been fixed.
- */
-public class TestBug105491 extends TestCase {
-	class TransferTestOperation extends WorkspaceModifyOperation implements IThreadListener {
-		public void execute(final IProgressMonitor pm) {
-			//clients assume this would not deadlock because it runs in an asyncExec
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell());
-					try {
-						dialog.run(true, false, new WorkspaceModifyOperation() {
-							protected void execute(IProgressMonitor monitor) {}
-						});
-					} catch (InvocationTargetException e) {
-						e.printStackTrace();
-						fail(e.getMessage());
-					} catch (InterruptedException e) {
-						//ignore
-					}
-				}
-			});
-		}
-
-		public void threadChange(Thread thread) {
-			Platform.getJobManager().transferRule(workspace.getRoot(), thread);
-		}
-	}
-
-	private IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-	public TestBug105491() {
-		super();
-	}
-
-	public TestBug105491(String name) {
-		super(name);
-	}
-
-	/**
-	 * Performs the test
-	 */
-	public void testBug() throws CoreException {
-		workspace.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) {
-				ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell());
-				try {
-					dialog.run(true, false, new TransferTestOperation());
-				} catch (InvocationTargetException e) {
-					e.printStackTrace();
-					fail(e.getMessage());
-				} catch (InterruptedException e) {
-					//ignore
-				}
-			}
-		}, workspace.getRoot(), IResource.NONE, null);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug108162.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug108162.java
deleted file mode 100644
index 208d99d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug108162.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.concurrency;
-
-import java.lang.reflect.InvocationTargetException;
-import junit.framework.TestCase;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Tests the following sequence of events:
- * 1) acquire a lock in the UI thread
- * 2) execute an operation (e.g. MoveFilesAndFoldersOperation) which spawns a modal context thread
- * 3) modal context tries to acquire lock held by UI thread
- * 
- * This sequence would cause a deadlock, so an exception is thrown by ModalContext.
- * This test asserts that the exception is thrown and that deadlock does not occur.
- */
-public class TestBug108162 extends TestCase {
-	class LockAcquiringOperation extends WorkspaceModifyOperation {
-		public void execute(final IProgressMonitor pm) {
-			//empty operation is sufficient to cause deadlock
-		}
-	}
-
-	private IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-	public TestBug108162() {
-		super();
-	}
-
-	public TestBug108162(String name) {
-		super(name);
-	}
-
-	/**
-	 * Performs the test
-	 */
-	public void testBug() throws CoreException {
-		workspace.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) {
-				ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell());
-				try {
-					dialog.run(true, false, new LockAcquiringOperation());
-					//should not succeed
-					assertTrue("Should not get here", false);
-				} catch (InvocationTargetException e) {
-					//this failure is expected because it tried to fork and block while owning a lock.
-				} catch (InterruptedException e) {
-					//ignore
-				} catch (IllegalStateException e) {
-					//this failure is expected because it tried to fork and block while owning a lock.
-				}
-			}
-		}, workspace.getRoot(), IResource.NONE, null);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug138695.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug138695.java
deleted file mode 100644
index 14f22d3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug138695.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.tests.concurrency;
-
-import junit.framework.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * @since 3.2
- *
- */
-public class TestBug138695 extends TestCase {
-	class SampleJob extends UIJob {
-
-		/**
-		 * @param name
-		 */
-		public SampleJob() {
-			super("Sample");
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
-		 */
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-			try {
-				Thread.sleep(100);
-			} catch (InterruptedException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			}
-			return Status.OK_STATUS;
-		}
-
-	}
-
-	class SerialPerObjectRule implements ISchedulingRule {
-
-		private Object fObject = null;
-
-		public SerialPerObjectRule(Object lock) {
-			fObject = lock;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule)
-		 */
-		public boolean contains(ISchedulingRule rule) {
-			return rule == this;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule)
-		 */
-		public boolean isConflicting(ISchedulingRule rule) {
-			if (rule instanceof SerialPerObjectRule) {
-				SerialPerObjectRule vup = (SerialPerObjectRule) rule;
-				return fObject == vup.fObject;
-			}
-			return false;
-		}
-
-	}
-
-	public static Test suite() {
-		return new TestSuite(TestBug138695.class);
-	}
-
-	public void testManyThreads() {
-		for (int i = 0; i < 1000; i++) {
-			SampleJob job = new SampleJob();
-			job.setRule(new SerialPerObjectRule(this));
-			job.schedule();
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug98621.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug98621.java
deleted file mode 100644
index fe3ac7f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TestBug98621.java
+++ /dev/null
@@ -1,96 +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.tests.concurrency;
-
-import java.lang.reflect.InvocationTargetException;
-import junit.framework.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IThreadListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-
-/**
- * Tests the following sequence of events:
- *  1) Lock is acquired in UI thread
- *  2) Modal context thread is started using IThreadListener
- *  3) Lock is transferred to modal context thread
- *  4) Modal context thread performs an asyncExec
- *  5) The asyncExec tries to acquire the same lock held by the modal context
- *  6) The modal context thread exits, thus transferring the rule back to the UI thread
- *  <p>
- *  Now the rule has been transferred back to the UI thread, but the UI thread
- *  is in a wait loop waiting to obtain the rule. The UI thread should realize that
- *  it now owns the lock it is waiting for, and continue with its execution.
- *  <p>
- *  See bug 98621 for more details.
- *  @since 3.2
- */
-public class TestBug98621 extends TestCase {
-	class TransferTestOperation extends WorkspaceModifyOperation implements IThreadListener {
-		public void execute(final IProgressMonitor pm) {
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					try {
-						workspace.run(new IWorkspaceRunnable() {
-							public void run(IProgressMonitor mon) {
-								//
-							}
-						}, workspace.getRoot(), IResource.NONE, null);
-					} catch (CoreException ex) {
-						ex.printStackTrace();
-					}
-				}
-			});
-			//wait until the asyncExec is blocking the UI thread
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-				//ignore
-			}
-		}
-
-		public void threadChange(Thread thread) {
-			Platform.getJobManager().transferRule(workspace.getRoot(), thread);
-		}
-	}
-
-	private IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-	public TestBug98621() {
-		super();
-	}
-
-	public TestBug98621(String name) {
-		super(name);
-	}
-
-	/**
-	 * Performs the test
-	 */
-	public void testBug() throws CoreException {
-		workspace.run(new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) {
-				ProgressMonitorDialog dialog = new ProgressMonitorDialog(new Shell());
-				try {
-					dialog.run(true, false, new TransferTestOperation());
-				} catch (InvocationTargetException e) {
-					e.printStackTrace();
-					fail(e.getMessage());
-				} catch (InterruptedException e) {
-					//ignore
-				}
-			}
-		}, workspace.getRoot(), IResource.NONE, null);
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TransferRuleTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TransferRuleTest.java
deleted file mode 100644
index 30fe0d3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/concurrency/TransferRuleTest.java
+++ /dev/null
@@ -1,106 +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 - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.concurrency;
-
-import java.lang.reflect.InvocationTargetException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.operation.IThreadListener;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests IJobManger#transferRule in conjunction with ModalContext.run.
- * This also exercises the IThreadListener API to allow the runnable to transfer
- * and obtain the rule owned by the calling thread.
- */
-public class TransferRuleTest extends UITestCase {
-	class TestRule implements ISchedulingRule {
-		public boolean contains(ISchedulingRule rule) {
-			return rule == this;
-		}
-
-		public boolean isConflicting(ISchedulingRule rule) {
-			return rule == this;
-		}
-	}
-
-	/**
-	 * A simple runnable that uses the IThreadListener interface to transfer
-	 * a scheduling rule.
-	 */
-	class TestRunnable implements IRunnableWithProgress, IThreadListener {
-		Throwable error;
-		private final ISchedulingRule rule;
-
-		public TestRunnable(ISchedulingRule aRule) {
-			this.rule = aRule;
-		}
-
-		public void run(IProgressMonitor monitor) {
-			//if we already have an error don't run the rest of the test
-			if (error != null)
-				return;
-			try {
-				try {
-					//acquire the rule that was transferred (will hang if the rule transfer failed)
-					Platform.getJobManager().beginRule(rule, monitor);
-				} finally {
-					Platform.getJobManager().endRule(rule);
-				}
-			} catch (Throwable t) {
-				//remember any error so we can fail the test
-				error = t;
-			}
-		}
-
-		public void threadChange(Thread thread) {
-			try {
-				Platform.getJobManager().transferRule(rule, thread);
-			} catch (Throwable t) {
-				//remember any error so we can fail the test
-				error = t;
-			}
-		}
-	}
-
-	public TransferRuleTest(String name) {
-		super(name);
-	}
-
-	public void testModalContextTransfer() {
-		ISchedulingRule rule = new TestRule();
-		TestRunnable runnable = new TestRunnable(rule);
-		try {
-			//first get the rule in the test thread
-			Platform.getJobManager().beginRule(rule, null);
-			//now execute the runnable using ModalContext - the rule should transfer correctly
-			new ProgressMonitorDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()).run(true, true, runnable);
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-			fail("1.0");
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-			fail("1.1");
-		} finally {
-			//must release the rule when finished
-			Platform.getJobManager().endRule(rule);
-		}
-		//check the runnable for errors
-		if (runnable.error != null) {
-			runnable.error.printStackTrace();
-			fail("1.2");
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug74990Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug74990Test.java
deleted file mode 100644
index d2d080e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug74990Test.java
+++ /dev/null
@@ -1,93 +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.tests.contexts;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.contexts.EnabledSubmission;
-import org.eclipse.ui.contexts.IContext;
-import org.eclipse.ui.contexts.IWorkbenchContextSupport;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * A test for whether part identifiers work properly for EnabledSubmissions.
- * 
- * @since 3.1
- */
-public final class Bug74990Test extends UITestCase {
-
-    /**
-     * Constructs a new instance of <code>Bug74990Test</code>.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug74990Test(final String name) {
-        super(name);
-    }
-
-    /**
-     * Tests whether a part-specific context -- submitted via Java code -- is
-     * matched properly. This is only using the part id. The test verifies that
-     * it is active when the part is active, and not active when the part is not
-     * active.
-     * 
-     * @throws PartInitException
-     *             If something goes wrong creating the part to which this
-     *             handler is tied.
-     *  
-     */
-    public final void testPartIdSubmission() throws PartInitException {
-        // Define a command.
-        final String testContextId = "org.eclipse.ui.tests.contexts.Bug74990";
-        final IWorkbenchContextSupport contextSupport = fWorkbench
-                .getContextSupport();
-        final IContext testContext = contextSupport.getContextManager()
-                .getContext(testContextId);
-
-        // Create an enabled submission.
-        final EnabledSubmission testSubmission = new EnabledSubmission(
-                "org.eclipse.ui.tests.api.MockViewPart", null, null,
-                testContextId);
-        contextSupport.addEnabledSubmission(testSubmission);
-
-        try {
-            // Test to make sure the context is not currently enabled.
-            assertTrue("The MockViewPart context should not be enabled",
-                    !testContext.isEnabled());
-
-            /*
-             * Open a window with the MockViewPart, and make sure it now
-             * enabled.
-             */
-            final IWorkbenchPage page = openTestWindow().getActivePage();
-            final IViewPart openedView = page
-                    .showView("org.eclipse.ui.tests.api.MockViewPart");
-            page.activate(openedView);
-            while (fWorkbench.getDisplay().readAndDispatch())
-                ;
-            assertTrue("The MockViewPart context should be enabled",
-                    testContext.isEnabled());
-
-            // Hide the view, and test that is becomes disabled again.
-            page.hideView(openedView);
-            while (fWorkbench.getDisplay().readAndDispatch())
-                ;
-            assertTrue("The MockViewPart context should not be enabled",
-                    !testContext.isEnabled());
-
-        } finally {
-            contextSupport.removeEnabledSubmission(testSubmission);
-        }
-
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug84763Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug84763Test.java
deleted file mode 100644
index 2920db2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/Bug84763Test.java
+++ /dev/null
@@ -1,189 +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.tests.contexts;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.core.commands.contexts.ContextManagerEvent;
-import org.eclipse.core.commands.contexts.IContextManagerListener;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.BindingManager;
-import org.eclipse.jface.bindings.Scheme;
-import org.eclipse.jface.bindings.keys.KeyBinding;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.jface.contexts.IContextIds;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * A test case covering the scenario described in Bug 84763. The problem was
- * that the context manager was exposing its internal data structures, and the
- * binding manager was mangling them. Debug then responded to bad information in
- * the <code>previouslyEnabledContextIds</code> property on the context event.
- * 
- * @since 3.1
- */
-public final class Bug84763Test extends UITestCase {
-
-	/**
-	 * The binding manager to use in each test case. A new binding manager is
-	 * created for each test case, and it is disposed when the test is over.
-	 */
-	private BindingManager bindingManager = null;
-
-	/**
-	 * The context manager to use in each test case. A new context manager is
-	 * created for each test case, and it is disposed when the test is over.
-	 */
-	private ContextManager contextManager = null;
-
-	/**
-	 * The context manager listener to use in each test case. A new context
-	 * manager listener is created for each test case, and it is disposed when
-	 * the test is over.
-	 */
-	private IContextManagerListener contextManagerListener = null;
-
-	/**
-	 * The set of the previous context identifiers returned by the last context
-	 * manager event. This value is set to <code>null</code> at the end of
-	 * each test.
-	 */
-	private Set previousContextIds = null;
-
-	/**
-	 * Constructor for <code>Bug84763Test</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug84763Test(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Creates a new context manager and a binding manager for use in the test
-	 * cases.
-	 */
-	protected void doSetUp() {
-		contextManager = new ContextManager();
-		contextManagerListener = new IContextManagerListener() {
-
-			public void contextManagerChanged(
-					ContextManagerEvent contextManagerEvent) {
-				previousContextIds = contextManagerEvent
-						.getPreviouslyActiveContextIds();
-				if (previousContextIds != null) {
-					previousContextIds = new HashSet(previousContextIds);
-				}
-			}
-
-		};
-		contextManager.addContextManagerListener(contextManagerListener);
-		bindingManager = new BindingManager(contextManager,
-				new CommandManager());
-	}
-
-	/**
-	 * Releases the context manager and binding manager for garbage collection.
-	 */
-	protected void doTearDown() {
-		contextManager = null;
-		contextManagerListener = null;
-		previousContextIds = null;
-		bindingManager = null;
-	}
-
-	/**
-	 * <p>
-	 * Testst whether the binding manager will overwrite information in the
-	 * context manager. In particular, whether the list of previous enabled
-	 * context identifiers will be changed.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 * @throws ParseException
-	 *             If "CTRL+F" cannot be parsed for some reason.
-	 */
-	public void testWindowChildWhenDialog() throws NotDefinedException,
-			ParseException {
-		// Define the contexts to use.
-		final Context dialogAndWindowsContext = contextManager
-				.getContext(IContextIds.CONTEXT_ID_DIALOG_AND_WINDOW);
-		dialogAndWindowsContext.define("In Dialogs and Windows", null, null);
-		final Context dialogContext = contextManager
-				.getContext(IContextIds.CONTEXT_ID_DIALOG);
-		dialogContext.define("In Dialogs", null,
-				IContextIds.CONTEXT_ID_DIALOG_AND_WINDOW);
-		final Context windowContext = contextManager
-				.getContext(IContextIds.CONTEXT_ID_WINDOW);
-		windowContext.define("In Windows", null,
-				IContextIds.CONTEXT_ID_DIALOG_AND_WINDOW);
-		final Context windowChildContext = contextManager.getContext("sibling");
-		windowChildContext.define("Sibling", null,
-				IContextIds.CONTEXT_ID_WINDOW);
-
-		// Force a binding computation.
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", null, null);
-		bindingManager.setActiveScheme(scheme);
-		final CommandManager commandManager = new CommandManager();
-		final Command command = commandManager.getCommand("commandId");
-		final ParameterizedCommand parameterizedCommand = new ParameterizedCommand(
-				command, null);
-		bindingManager.addBinding(new KeyBinding(KeySequence
-				.getInstance("CTRL+F"), parameterizedCommand, scheme.getId(),
-				windowChildContext.getId(), null, null, null, Binding.SYSTEM));
-		bindingManager.getActiveBindingsFor((ParameterizedCommand) null);
-
-		// Activate the dialog context and the sibling.
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add(IContextIds.CONTEXT_ID_DIALOG);
-		activeContextIds.add(IContextIds.CONTEXT_ID_DIALOG_AND_WINDOW);
-		activeContextIds.add(windowChildContext.getId());
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// Force a binding computation.
-		bindingManager.getActiveBindingsFor((ParameterizedCommand) null);
-
-		// Active the window context.
-		activeContextIds.remove(IContextIds.CONTEXT_ID_DIALOG);
-		activeContextIds.add(IContextIds.CONTEXT_ID_WINDOW);
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// Force a binding computation.
-		bindingManager.getActiveBindingsFor((ParameterizedCommand) null);
-
-		/*
-		 * Check to see what the listener got as the list of previously active
-		 * context identifiers.
-		 */
-		assertEquals("There should have been 3 context ids active previously",
-				3, previousContextIds.size());
-		assertTrue("The previous contexts should include the dialog context",
-				previousContextIds.contains(IContextIds.CONTEXT_ID_DIALOG));
-		assertTrue("The previous contexts should include the dialog context",
-				previousContextIds
-						.contains(IContextIds.CONTEXT_ID_DIALOG_AND_WINDOW));
-		assertTrue("The previous contexts should include the dialog context",
-				previousContextIds.contains(windowChildContext.getId()));
-		System.out.println("testSiblingContext");
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextPage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextPage.java
deleted file mode 100755
index 727ab28..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextPage.java
+++ /dev/null
@@ -1,98 +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.tests.contexts;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.part.Page;
-
-/**
- * A message page display a message in a pagebook view, and activates a context.
- * <p>
- * This class may be instantiated; it is not intended to be subclassed.
- * </p>
- * 
- * @see PageBookView
- */
-public class ContextPage extends Page {
-	public static final String TEST_CONTEXT_ID = "org.eclipse.ui.tests.contexts.Page";
-
-	private Composite pgComp;
-
-	private Label msgLabel;
-
-	private String message = "";//$NON-NLS-1$
-
-	/**
-	 * Creates a new page. The message is the empty string.
-	 */
-	public ContextPage() {
-		// do nothing
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPage.
-	 */
-	public void createControl(Composite parent) {
-		// Message in default page of Outline should have margins
-		pgComp = new Composite(parent, SWT.NULL);
-		pgComp.setLayout(new FillLayout());
-
-		msgLabel = new Label(pgComp, SWT.LEFT | SWT.TOP | SWT.WRAP);
-		msgLabel.setText(message);
-	}
-
-	/*
-	 * (non-Javadoc) Method declared on IPage.
-	 */
-	public Control getControl() {
-		return pgComp;
-	}
-
-	/**
-	 * Sets focus to a part in the page.
-	 */
-	public void setFocus() {
-		// important to give focus to the composite rather than the label
-		// as the composite will actually take focus (though hidden),
-		// but setFocus on a Label is a no-op
-		pgComp.setFocus();
-	}
-
-	/**
-	 * Sets the message to the given string.
-	 * 
-	 * @param message
-	 *            the message text
-	 */
-	public void setMessage(String msg) {
-		this.message = msg;
-		if (msgLabel != null)
-			msgLabel.setText(msg);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.Page#init(org.eclipse.ui.part.IPageSite)
-	 */
-	public void init(IPageSite pageSite) {
-		super.init(pageSite);
-		IContextService localService = (IContextService) getSite().getService(
-				IContextService.class);
-		localService.activateContext(TEST_CONTEXT_ID);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextsTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextsTestSuite.java
deleted file mode 100644
index d18c7e4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ContextsTestSuite.java
+++ /dev/null
@@ -1,43 +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.tests.contexts;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The suite of tests related to the "org.eclipse.ui.contexts" extension point,
- * and the "org.eclise.ui.contexts" Java API. This includes tests dealing with
- * other extension points or elements in other extension points that have been
- * deprecated to be replaced by this one.
- * 
- * @since 3.0
- */
-public final class ContextsTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static final Test suite() {
-        return new ContextsTestSuite();
-    }
-
-    /**
-     * Constructs a new instance of <code>ContextsTestSuite</code> with all of
-     * the relevent test cases.
-     */
-    public ContextsTestSuite() {
-        addTestSuite(Bug74990Test.class);
-        addTestSuite(Bug84763Test.class);
-        addTestSuite(ExtensionTestCase.class);
-        addTestSuite(PartContextTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ExtensionTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ExtensionTestCase.java
deleted file mode 100644
index 4a60dda..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/ExtensionTestCase.java
+++ /dev/null
@@ -1,151 +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.tests.contexts;
-
-import org.eclipse.ui.contexts.IContext;
-import org.eclipse.ui.contexts.IContextManager;
-import org.eclipse.ui.contexts.IWorkbenchContextSupport;
-import org.eclipse.ui.contexts.NotDefinedException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * The test case for reading in elements from the extension point. This verifies
- * that contexts defined in this test plug-in's extensions are all properly read
- * in. This includes extensions read from deprecated locations, as well as the
- * currently preferred way of specifying contexts.
- * 
- * @since 3.0
- */
-public class ExtensionTestCase extends UITestCase {
-
-    /**
-     * Constructs a new instance of <code>ExtensionTestCase</code> with the
-     * given name.
-     * 
-     * @param testName
-     *            The name of the test; may be <code>null</code>.
-     */
-    public ExtensionTestCase(final String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that the "org.eclipse.ui.acceleratorScopes" extension point can be
-     * read in by Eclipse. This extension point is currently deprecated.
-     * 
-     * @throws NotDefinedException
-     *             This shouldn't really be possible, as the test should fail
-     *             gracefully before this could happen.
-     */
-    public final void testAcceleratorScopes() throws NotDefinedException {
-        final IWorkbenchContextSupport contextSupport = fWorkbench
-                .getContextSupport();
-        final IContextManager contextManager = contextSupport
-                .getContextManager();
-
-        final IContext context1 = contextManager
-                .getContext("org.eclipse.ui.tests.acceleratorScopes.test1");
-        assertTrue(
-                "Context contributed via 'org.eclipse.ui.acceleratorScopes' is not loaded properly.",
-                context1.isDefined());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.acceleratorScopes' does not get its name.",
-                "Test Accelerator Scope 1", context1.getName());
-
-        final IContext context2 = contextManager
-                .getContext("org.eclipse.ui.tests.acceleratorScopes.test2");
-        assertTrue(
-                "Context contributed via 'org.eclipse.ui.acceleratorScopes' is not loaded properly.",
-                context2.isDefined());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.acceleratorScopes' does not get its name.",
-                "Test Accelerator Scope 2", context2.getName());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.acceleratorScopes' does not get its parent.",
-                "org.eclipse.ui.tests.acceleratorScopes.test1", context2
-                        .getParentId());
-    }
-
-    /**
-     * Tests that the "scopes" element in the "org.eclipse.ui.commands"
-     * extension point can be read in as a context by Eclipse. This element is
-     * currently deprecated.
-     * 
-     * @throws NotDefinedException
-     *             This shouldn't really be possible, as the test should fail
-     *             gracefully before this could happen.
-     */
-    public final void testCommandsScopes() throws NotDefinedException {
-        final IWorkbenchContextSupport contextSupport = fWorkbench
-                .getContextSupport();
-        final IContextManager contextManager = contextSupport
-                .getContextManager();
-
-        final IContext context1 = contextManager
-                .getContext("org.eclipse.ui.tests.commands.scope1");
-        assertTrue(
-                "Context contributed via 'org.eclipse.ui.commands' is not loaded properly.",
-                context1.isDefined());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.commands' does not get its name.",
-                "Test Scope 1", context1.getName());
-
-        final IContext context2 = contextManager
-                .getContext("org.eclipse.ui.tests.commands.scope2");
-        assertTrue(
-                "Context contributed via 'org.eclipse.ui.commands' is not loaded properly.",
-                context2.isDefined());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.commands' does not get its name.",
-                "Test Scope 2", context2.getName());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.commands' does not get its parent.",
-                "org.eclipse.ui.tests.commands.scope1", context2.getParentId());
-    }
-
-    /**
-     * Tests that the currently preferred way of specifiying contexts can be
-     * read in properly by Eclipse. This uses all of the non-deprecated
-     * attributes.
-     * 
-     * @throws NotDefinedException
-     *             This shouldn't really be possible, as the test should fail
-     *             gracefully before this could happen.
-     */
-    public final void testContexts() throws NotDefinedException {
-        final IWorkbenchContextSupport contextSupport = fWorkbench
-                .getContextSupport();
-        final IContextManager contextManager = contextSupport
-                .getContextManager();
-
-        final IContext context1 = contextManager
-                .getContext("org.eclipse.ui.tests.contexts.context1");
-        assertTrue(
-                "Context contributed via 'org.eclipse.ui.contexts' is not loaded properly.",
-                context1.isDefined());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.contexts' does not get its name.",
-                "Test Context 1", context1.getName());
-
-        final IContext context2 = contextManager
-                .getContext("org.eclipse.ui.tests.contexts.context2");
-        assertTrue(
-                "Context contributed via 'org.eclipse.ui.contexts' is not loaded properly.",
-                context2.isDefined());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.contexts' does not get its name.",
-                "Test Context 2", context2.getName());
-        assertEquals(
-                "Context contributed via 'org.eclipse.ui.contexts' does not get its parent.",
-                "org.eclipse.ui.tests.contexts.context1", context2
-                        .getParentId());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockPageView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockPageView.java
deleted file mode 100644
index 426bcf5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockPageView.java
+++ /dev/null
@@ -1,96 +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.tests.contexts;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.IPage;
-import org.eclipse.ui.part.MessagePage;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.part.PageBookView;
-
-/**
- * A special view that manages pages. It is based on text editors, and adds a
- * ContextPage for files ending in ".xml", but just a MessagePage otherwise.
- * 
- * @since 3.2
- */
-public class MockPageView extends PageBookView {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.PageBookView#createDefaultPage(org.eclipse.ui.part.PageBook)
-	 */
-	protected IPage createDefaultPage(PageBook book) {
-		MessagePage page = new MessagePage();
-		initPage(page);
-		page.createControl(book);
-		page.setMessage("There is no relevant part active.");
-		return page;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.PageBookView#doCreatePage(org.eclipse.ui.IWorkbenchPart)
-	 */
-	protected PageRec doCreatePage(IWorkbenchPart part) {
-		if (part instanceof IEditorPart) {
-			IEditorPart editor = (IEditorPart) part;
-			if (editor.getTitle().endsWith(".xml")) {
-				ContextPage page = new ContextPage();
-				initPage(page);
-				page.createControl(getPageBook());
-				page.setMessage("The XML editor is active: "
-						+ editor.getTitle());
-				return new PageRec(part, page);
-			}
-			MessagePage page = new MessagePage();
-			initPage(page);
-			page.createControl(getPageBook());
-			page.setMessage("The editor is active: " + editor.getTitle());
-			return new PageRec(part, page);
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.PageBookView#doDestroyPage(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.ui.part.PageBookView.PageRec)
-	 */
-	protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
-		pageRecord.page.dispose();
-		pageRecord.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.PageBookView#getBootstrapPart()
-	 */
-	protected IWorkbenchPart getBootstrapPart() {
-		return getSite().getPage().getActiveEditor();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.PageBookView#isImportant(org.eclipse.ui.IWorkbenchPart)
-	 */
-	protected boolean isImportant(IWorkbenchPart part) {
-		return part instanceof IEditorPart;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockViewPart5.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockViewPart5.java
deleted file mode 100644
index bd6dae7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/MockViewPart5.java
+++ /dev/null
@@ -1,132 +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.ui.tests.contexts;
-
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.internal.WorkbenchImages;
-import org.eclipse.ui.tests.api.MockWorkbenchPart;
-
-public class MockViewPart5 extends MockWorkbenchPart implements IViewPart {
-	/**
-	 * 
-	 */
-	public static final String PART_CONTEXT_ID = "org.eclipse.ui.tests.contexts.ViewPart";
-
-	public static String ID = "org.eclipse.ui.tests.contexts.MockViewPart5";
-
-	public static String NAME = "Context Mock View 5";
-
-	private ContributionItem toolbarItem = new ContributionItem("someId") {
-
-		private DisposeListener disposeListener = new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				toolbarContributionItemWidgetDisposed();
-			}
-
-		};
-
-		public void fill(ToolBar parent, int index) {
-			super.fill(parent, index);
-
-			ToolItem item = new ToolItem(parent, index);
-
-			item.addDisposeListener(disposeListener);
-			item.setImage(WorkbenchImages.getImage(ISharedImages.IMG_DEF_VIEW));
-		}
-
-		public void dispose() {
-			toolbarContributionItemDisposed();
-			super.dispose();
-		}
-	};
-
-	public MockViewPart5() {
-		super();
-	}
-
-	/**
-	 * @see IViewPart#getViewSite()
-	 */
-	public IViewSite getViewSite() {
-		return (IViewSite) getSite();
-	}
-
-	/**
-	 * @see IViewPart#init(IViewSite)
-	 */
-	public void init(IViewSite site) throws PartInitException {
-		setSite(site);
-		callTrace.add("init");
-		setSiteInitialized();
-		addToolbarContributionItem();
-		addContext();
-	}
-
-	/**
-	 * @see IViewPart#init(IViewSite, IMemento)
-	 */
-	public void init(IViewSite site, IMemento memento) throws PartInitException {
-		setSite(site);
-		callTrace.add("init");
-		setSiteInitialized();
-		addToolbarContributionItem();
-		addContext();
-	}
-
-	private void addContext() throws PartInitException {
-		IContextService contextService = (IContextService) getSite()
-				.getService(IContextService.class);
-		if (!contextService.getContext(PART_CONTEXT_ID).isDefined()) {
-			throw new PartInitException("Failed to find context "
-					+ PART_CONTEXT_ID);
-		}
-		contextService.activateContext(PART_CONTEXT_ID);
-	}
-
-	private void addToolbarContributionItem() {
-		getViewSite().getActionBars().getToolBarManager().add(toolbarItem);
-	}
-
-	public void toolbarContributionItemWidgetDisposed() {
-		callTrace.add("toolbarContributionItemWidgetDisposed");
-	}
-
-	public void toolbarContributionItemDisposed() {
-		callTrace.add("toolbarContributionItemDisposed");
-	}
-
-	/**
-	 * @see IViewPart#saveState(IMemento)
-	 */
-	public void saveState(IMemento memento) {
-		// how's this for a comment, filthy human compiler
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.api.MockWorkbenchPart#getActionBars()
-	 */
-	protected IActionBars getActionBars() {
-		return getViewSite().getActionBars();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/PartContextTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/PartContextTest.java
deleted file mode 100644
index 5a25240..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/contexts/PartContextTest.java
+++ /dev/null
@@ -1,185 +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.tests.contexts;
-
-import java.util.Collection;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.api.MockViewPart;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test that the contexts activated through their local services are only in
- * play when their local service is active.
- * 
- * @since 3.2
- */
-public class PartContextTest extends UITestCase {
-	/**
-	 * 
-	 */
-	public static final String PAGE_VIEW_ID = "org.eclipse.ui.tests.contexts.MockPageView";
-
-	/**
-	 * 
-	 */
-	private static final String TEXT_EDITOR_ID = "org.eclipse.ui.DefaultTextEditor";
-
-	public static final String WINDOW_CONTEXT_ID = "org.eclipse.ui.tests.contexts.WorkbenchWindow";
-
-	public PartContextTest(String name) {
-		super(name);
-	}
-
-	public void testBasicContextActivation() throws Exception {
-		IContextService globalService = (IContextService) getWorkbench()
-				.getService(IContextService.class);
-
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, false);
-
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-		IViewPart view = page.showView(MockViewPart5.ID);
-
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, true);
-
-		page.hideView(view);
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, false);
-	}
-
-	public void testContextActivation() throws Exception {
-		IContextService globalService = (IContextService) getWorkbench()
-				.getService(IContextService.class);
-
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, false);
-
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-		IViewPart view = page.showView(MockViewPart5.ID);
-		IContextService localService = (IContextService) view.getSite()
-				.getService(IContextService.class);
-
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, true);
-		checkActiveContext(localService, MockViewPart5.PART_CONTEXT_ID, true);
-
-		IViewPart mockView = page.showView(MockViewPart.ID);
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, false);
-		checkActiveContext(localService, MockViewPart5.PART_CONTEXT_ID, false);
-
-		page.activate(view);
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, true);
-
-		page.activate(mockView);
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, false);
-
-		page.hideView(mockView);
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, true);
-
-		page.hideView(view);
-		checkActiveContext(globalService, MockViewPart5.PART_CONTEXT_ID, false);
-	}
-
-	public void testWindowContextActivation() throws Exception {
-		IContextService globalService = (IContextService) getWorkbench()
-				.getService(IContextService.class);
-		checkActiveContext(globalService, WINDOW_CONTEXT_ID, false);
-
-		IWorkbenchWindow window = openTestWindow();
-		IContextService localService = (IContextService) window
-				.getService(IContextService.class);
-		localService.activateContext(WINDOW_CONTEXT_ID);
-		checkActiveContext(globalService, WINDOW_CONTEXT_ID, true);
-
-		window.close();
-		checkActiveContext(globalService, WINDOW_CONTEXT_ID, false);
-	}
-
-	/**
-	 * Test context activation while switching through the pages of a pagebook.
-	 * Exercises the NestableContextService.
-	 * 
-	 * @throws Exception
-	 *             on error
-	 */
-	public void testPageBookPageContextActivation() throws Exception {
-		IContextService globalService = (IContextService) getWorkbench()
-				.getService(IContextService.class);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-
-		IViewPart pageView = page.showView(PAGE_VIEW_ID);
-		assertNotNull(pageView);
-
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-
-		IProject proj = FileUtil.createProject("ContextTest");
-		IFile test01 = FileUtil.createFile("test01.txt", proj);
-		IEditorPart editor01 = page.openEditor(new FileEditorInput(test01),
-				TEXT_EDITOR_ID);
-		assertNotNull(editor01);
-		page.activate(pageView);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-
-		IFile test02 = FileUtil.createFile("test02.xml", proj);
-		IEditorPart editor02 = page.openEditor(new FileEditorInput(test02),
-				TEXT_EDITOR_ID);
-		assertNotNull(editor02);
-		page.activate(pageView);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, true);
-
-		page.activate(editor01);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-		page.activate(pageView);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-
-		page.activate(editor02);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-		page.activate(pageView);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, true);
-		page.activate(editor02);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-		page.activate(pageView);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, true);
-
-		page.activate(editor01);
-		page.activate(pageView);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, false);
-
-		page.activate(editor01);
-		page.closeEditor(editor01, false);
-		page.activate(pageView);
-		checkActiveContext(globalService, ContextPage.TEST_CONTEXT_ID, true);
-	}
-
-	/**
-	 * Assert if the contextId is active in the contextService.
-	 * 
-	 * @param contextService
-	 * @param contextId
-	 * @param isActive
-	 */
-	private void checkActiveContext(IContextService contextService,
-			String contextId, boolean isActive) {
-		Collection activeContexts = contextService.getActiveContextIds();
-		assertEquals(contextId, isActive, activeContexts.contains(contextId));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/DataTransferTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/DataTransferTestSuite.java
deleted file mode 100644
index a6dbbab..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/DataTransferTestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.datatransfer;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * .
- */
-public class DataTransferTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new DataTransferTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public DataTransferTestSuite() {
-        addTest(new TestSuite(ImportOperationTest.class));
-        addTest(new TestSuite(ImportArchiveOperationTest.class)); 
-        addTest(new TestSuite(ExportFileSystemOperationTest.class));
-        addTest(new TestSuite(ExportArchiveFileOperationTest.class));
-        addTest(new TestSuite(ImportExistingProjectsWizardTest.class));
-        addTest(new TestSuite(ImportExportWizardsCategoryTests.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportArchiveFileOperationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportArchiveFileOperationTest.java
deleted file mode 100644
index 6edf220..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportArchiveFileOperationTest.java
+++ /dev/null
@@ -1,483 +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.tests.datatransfer;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-import java.util.zip.GZIPInputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.tests.harness.FileSystemHelper;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.internal.wizards.datatransfer.ArchiveFileExportOperation;
-import org.eclipse.ui.internal.wizards.datatransfer.TarEntry;
-import org.eclipse.ui.internal.wizards.datatransfer.TarFile;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class ExportArchiveFileOperationTest extends UITestCase implements
-		IOverwriteQuery {
-	
-	private static final String FILE_NAME = "test";
-	private static final String ZIP_FILE_EXT = "zip";
-	private static final String TAR_FILE_EXT = "tar";
-    private static final String[] directoryNames = { "dir1", "dir2" };
-    private static final String[] fileNames = { "file1.txt", "file2.txt" };
-    
-    private String localDirectory;
-    
-    private String filePath;
-
-    private IProject project;
-    
-    private boolean flattenPaths = false;
-    private boolean excludeProjectPath = false;
-    
-	public ExportArchiveFileOperationTest(String testName) {
-		super(testName);
-	}
-	
-	public String queryOverwrite(String pathString) {
-		return "";
-	}
-	
-	public void testExportStatus(){
-		List resources = new ArrayList();
-		resources.add(project);
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, localDirectory);
-
-        assertTrue(operation.getStatus().getCode() == IStatus.OK);		
-	}
-	
-	public void testExportZip() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + ZIP_FILE_EXT;
-		List resources = new ArrayList();
-		resources.add(project);
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setUseCompression(false);
-        operation.setUseTarFormat(false);
-        openTestWindow().run(true, true, operation);
-        
-        verifyFolders(directoryNames.length, ZIP_FILE_EXT);	
-        
-	}
-	
-	public void testExportZipCompressed() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + ZIP_FILE_EXT;
-		List resources = new ArrayList();
-		resources.add(project);
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setUseCompression(true);
-        operation.setUseTarFormat(false);
-        openTestWindow().run(true, true, operation);		
-		verifyCompressed(ZIP_FILE_EXT);
-	}
-	
-	public void testExportZipCreateSelectedDirectories() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + ZIP_FILE_EXT;
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i])){
-				IResource[] folderMembers = ((IFolder)members[i]).members();
-				for (int k = 0; k < folderMembers.length; k++){
-					if (isFile(folderMembers[k])){
-						resources.add(folderMembers[k]);
-					}
-				}
-			}
-		}
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setCreateLeadupStructure(false);
-        operation.setUseCompression(false);
-        operation.setUseTarFormat(false);
-        openTestWindow().run(true, true, operation);
-        flattenPaths = true;
-		verifyFolders(directoryNames.length, ZIP_FILE_EXT);		
-	}
-	
-	public void testExportZipCreateSelectedDirectoriesWithFolders() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + ZIP_FILE_EXT;
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i]))
-				resources.add(members[i]);
-		}
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setCreateLeadupStructure(false);
-        operation.setUseCompression(false);
-        operation.setUseTarFormat(false);
-        openTestWindow().run(true, true, operation);
-        excludeProjectPath = true;
-		verifyFolders(directoryNames.length, ZIP_FILE_EXT);				
-	}
-	
-	public void testExportZipCreateSelectedDirectoriesCompressed() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + ZIP_FILE_EXT;
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i])){
-				IResource[] folderMembers = ((IFolder)members[i]).members();
-				for (int k = 0; k < folderMembers.length; k++){
-					if (isFile(folderMembers[k])){
-						resources.add(folderMembers[k]);
-					}
-				}
-			}
-		}
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setCreateLeadupStructure(false);
-        operation.setUseCompression(true);
-        operation.setUseTarFormat(false);
-        openTestWindow().run(true, true, operation);
-        flattenPaths = true;
-		verifyCompressed(ZIP_FILE_EXT);	
-		verifyFolders(directoryNames.length, ZIP_FILE_EXT);
-	}
-	
-	public void testExportTar() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + TAR_FILE_EXT;
-		List resources = new ArrayList();
-		resources.add(project);
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-        operation.setUseTarFormat(true);
-        operation.setUseCompression(false);
-
-        openTestWindow().run(true, true, operation);
-        
-        verifyFolders(directoryNames.length, TAR_FILE_EXT);	
-	}
-	
-	public void testExportTarCompressed() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + TAR_FILE_EXT;
-		List resources = new ArrayList();
-		resources.add(project);
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setUseTarFormat(true);
-        operation.setUseCompression(true);
-        openTestWindow().run(true, true, operation);		
-		verifyCompressed(TAR_FILE_EXT);		
-	}
-	
-	public void testExportTarCreateSelectedDirectories() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + TAR_FILE_EXT;
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i])){
-				IResource[] folderMembers = ((IFolder)members[i]).members();
-				for (int k = 0; k < folderMembers.length; k++){
-					if (isFile(folderMembers[k])){
-						resources.add(folderMembers[k]);
-					}
-				}
-			}
-		}
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setCreateLeadupStructure(false);
-        operation.setUseCompression(false);
-        operation.setUseTarFormat(true);
-        openTestWindow().run(true, true, operation);
-        flattenPaths = true;
-		verifyFolders(directoryNames.length, TAR_FILE_EXT);			
-	}
-	
-	public void testExportTarCreateSelectedDirectoriesWithFolders() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + TAR_FILE_EXT;
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i]))
-				resources.add(members[i]);
-		}
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setCreateLeadupStructure(false);
-        operation.setUseCompression(false);
-        operation.setUseTarFormat(true);
-        openTestWindow().run(true, true, operation);
-        excludeProjectPath = true;
-		verifyFolders(directoryNames.length, TAR_FILE_EXT);				
-		
-	}
-	
-	public void testExportTarCreateSelectedDirectoriesCompressed() throws Exception {
-		filePath = localDirectory + "/" + FILE_NAME + "." + TAR_FILE_EXT;
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i])){
-				IResource[] folderMembers = ((IFolder)members[i]).members();
-				for (int k = 0; k < folderMembers.length; k++){
-					if (isFile(folderMembers[k])){
-						resources.add(folderMembers[k]);
-					}
-				}
-			}
-		}
-        ArchiveFileExportOperation operation = 
-        	new ArchiveFileExportOperation(resources, filePath);
-
-        operation.setCreateLeadupStructure(false);
-        operation.setUseCompression(true);
-        operation.setUseTarFormat(true);
-        openTestWindow().run(true, true, operation);
-        flattenPaths = true;
-		verifyCompressed(TAR_FILE_EXT);	
-		verifyFolders(directoryNames.length, TAR_FILE_EXT);
-		
-	}
-
-    protected void doSetUp() throws Exception {
-		super.doSetUp();
-		project = FileUtil.createProject("Export" + getName());
-		File destination = 
-			new File(FileSystemHelper.getRandomLocation(FileSystemHelper.getTempDir())
-    			.toOSString());
-		localDirectory = destination.getAbsolutePath();
-		if (!destination.mkdirs())
-			fail("Could not set up destination directory for " + getName());
-	    setUpData();
-	    flattenPaths = false;
-	    excludeProjectPath = false;
-	}
-    
-	protected void doTearDown() throws Exception {
-        super.doTearDown();
-        // delete exported data
-        File root = new File(localDirectory);
-        if (root.exists()){
-        	File[] files = root.listFiles();
-        	if (files != null){
-        		for (int i = 0; i < files.length; i++)
-        			if (!files[i].delete())
-        				fail("Could not delete " + files[i].getAbsolutePath());
-        	}
-        	root.delete();
-        }
-        try {
-            project.delete(true, true, null);
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-        finally{
-        	project = null;
-        	localDirectory = null;
-        	filePath = null;
-        }        
-	}
-	
-    private void setUpData(){
-    	try{
-	    	for(int i = 0; i < directoryNames.length; i++){
-	    		IFolder folder = project.getFolder(directoryNames[i]);
-	    		folder.create(false, true, new NullProgressMonitor());
-	    		for (int k = 0; k < fileNames.length; k++){
-	    			IFile file = folder.getFile(fileNames[k]);
-	    			String contents =
-	    				directoryNames[i] + ", " + fileNames[k];		
-	    			file.create(new ByteArrayInputStream(contents.getBytes()), 
-	    				true, new NullProgressMonitor());
-	    		}
-	    	}
-    	}
-    	catch(Exception e){
-    		fail(e.toString());
-    	}
-    }
-    
-    private void verifyCompressed(String type){
-    	String fileName = "";
-		boolean compressed = false;
-    	try{
-	    	if (ZIP_FILE_EXT.equals(type)){
-				ZipFile zipFile = new ZipFile(filePath);
-				fileName = zipFile.getName();
-	    		Enumeration entries = zipFile.entries();
-	    		while (entries.hasMoreElements()){
-	    			ZipEntry entry = (ZipEntry)entries.nextElement();
-	    			compressed = entry.getMethod() == ZipEntry.DEFLATED;
-	    		}
-	    		zipFile.close();
-	    	}
-	    	else{
-	    		File file = new File(filePath);
-	    		InputStream in = new FileInputStream(file);
-	    		// Check if it's a GZIPInputStream.
-	    		try {
-	    			in = new GZIPInputStream(in);
-	    			compressed = true;
-	    		} catch(IOException e) {
-	    			compressed = false;
-	    		}
-	    		fileName = file.getName();
-	    		in.close();
-	    	}
-    	}
-    	catch (Exception e){
-    		fail(e.getMessage());
-    	}
-    	assertTrue(fileName + " does not appear to be compressed.", compressed);
-    }
-    
-    private void verifyFolders(int folderCount, String type){
-    	try{
-    		List allEntries = new ArrayList();
-	    	if (ZIP_FILE_EXT.equals(type)){
-	    		ZipFile zipFile = new ZipFile(filePath);
-	    		Enumeration entries = zipFile.entries();
-	    		while (entries.hasMoreElements()){
-	    			ZipEntry entry = (ZipEntry)entries.nextElement();
-	    			allEntries.add(entry.getName());
-	    		}
-	    		zipFile.close();
-	    	}
-	    	else{
-	    		TarFile tarFile = new TarFile(filePath);
-	    		Enumeration entries = tarFile.entries();
-	    		while (entries.hasMoreElements()){
-	    			TarEntry entry = (TarEntry)entries.nextElement();
-	    			allEntries.add(entry.getName());
-	    		}
-	    		tarFile.close();
-	    	}
-	    	if (flattenPaths)
-	    		verifyFiles(allEntries);
-	    	else
-	    		verifyArchive(folderCount, allEntries);
-    	}
-    	catch (Exception e){
-    		fail(e.getMessage());
-    	}
-    }
-    
-    private void verifyArchive(int folderCount, List entries){
-    	int count = 0;
-    	Set folderNames = new HashSet();
-    	List files = new ArrayList();
-    	Iterator archiveEntries = entries.iterator();
-    	while (archiveEntries.hasNext()){
-    		String entryName = (String)archiveEntries.next();
-			int idx = entryName.lastIndexOf("/");
-			String folderPath = entryName.substring(0, idx);
-			String fileName = entryName.substring(idx+1, entryName.length());
-			files.add(fileName);
-			int idx2 = folderPath.lastIndexOf("/");
-			if (idx2 != -1){
-    			String folderName = folderPath.substring(idx2 + 1, folderPath.length());
-    			folderNames.add(folderName);
-			}
-			else 
-				folderNames.add(folderPath);
-
-    	}
-    	verifyFolders(folderNames);
-    	verifyFiles(files);
-    	count += folderNames.size();
-    	if (!flattenPaths && !excludeProjectPath)
-    		folderCount++;
-    	assertTrue(
-    			"Number of folders expected and found not equal: expected=" + folderCount + ", actual=" + count, 
-    			folderCount == count);
-
-    }
-    
-    private void verifyFiles(List files){
-    	Iterator iter = files.iterator();
-    	while (iter.hasNext()){
-    		String file = (String)iter.next();
-    		verifyFile(file);
-    	}
-    }
-    
-    private void verifyFile(String entryName){
-    	for (int i = 0; i < fileNames.length; i++){
-    		boolean dotProjectFileShouldBePresent = ".project".equals(entryName) && !flattenPaths && !excludeProjectPath;
-    		if (fileNames[i].equals(entryName) || dotProjectFileShouldBePresent)
-    			return;
-    	}
-    	fail("Could not find file named: " + entryName);
-    }
-    
-    private void verifyFolders(Set folderNames){
-    	Iterator folders = folderNames.iterator();
-    	while (folders.hasNext()){
-    		String folderName = (String)folders.next();
-    		if (!isDirectory(folderName)){
-    			if (flattenPaths)
-    				fail(folderName + " is not an expected folder");
-    			else if (!project.getName().equals(folderName))
-    				fail(folderName + " is not an expected folder");
-    		}
-    	}
-    }
-    
-    private boolean isDirectory(String name){
-    	for (int i = 0; i < directoryNames.length; i++){
-    		if (directoryNames[i].equals(name))
-    			return true;
-    	}
-    	return false;
-    }
-    
-	private boolean isDirectory(IResource resource){
-		for (int i = 0; i < directoryNames.length; i++){
-			if (directoryNames[i].equals(resource.getName()))
-				return true;
-		}
-		return false;
-	}
-	
-	private boolean isFile(IResource resource){
-		for (int i = 0; i < fileNames.length; i++){
-			if (fileNames[i].equals(resource.getName()))
-				return true;
-		}
-		return false;		
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportFileSystemOperationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportFileSystemOperationTest.java
deleted file mode 100644
index f0b86c1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ExportFileSystemOperationTest.java
+++ /dev/null
@@ -1,262 +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.tests.datatransfer;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.tests.harness.FileSystemHelper;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.internal.wizards.datatransfer.FileSystemExportOperation;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class ExportFileSystemOperationTest extends UITestCase implements
-		IOverwriteQuery {
-
-    private static final String[] directoryNames = { "dir1", "dir2" };
-
-    private static final String[] fileNames = { "file1.txt", "file2.txt" };
-
-    private String localDirectory;
-
-    private IProject project;
-    
-	public ExportFileSystemOperationTest(String testName) {
-		super(testName);
-	}
-
-	public String queryOverwrite(String pathString) {
-		return "";
-	}
-		
-    protected void doSetUp() throws Exception {
-		super.doSetUp();
-		project = FileUtil.createProject("Export" + getName());
-		File destination = 
-			new File(FileSystemHelper.getRandomLocation(FileSystemHelper.getTempDir())
-    			.toOSString());
-		localDirectory = destination.getAbsolutePath();
-		if (!destination.mkdirs())
-			fail("Could not set up destination directory for " + getName());
-	    setUpData();		
-	}
-
-    private void setUpData(){
-    	try{
-	    	for(int i = 0; i < directoryNames.length; i++){
-	    		IFolder folder = project.getFolder(directoryNames[i]);
-	    		folder.create(false, true, new NullProgressMonitor());
-	    		for (int k = 0; k < fileNames.length; k++){
-	    			IFile file = folder.getFile(fileNames[k]);
-	    			String contents =
-	    				directoryNames[i] + ", " + fileNames[k];		
-	    			file.create(new ByteArrayInputStream(contents.getBytes()), 
-	    				true, new NullProgressMonitor());
-	    		}
-	    	}
-    	}
-    	catch(Exception e){
-    		fail(e.toString());
-    	}
-    }
-    
-	protected void doTearDown() throws Exception {
-        super.doTearDown();
-        // delete exported data
-        File root = new File(localDirectory);
-        if (root.exists()){
-        	FileSystemHelper.clear(root);
-        }
-        try {
-            project.delete(true, true, null);
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-        finally{
-        	project = null;
-        	localDirectory = null;
-        }        
-	}
-	
-	public void testGetStatus() throws Exception {
-		List resources = new ArrayList();
-		resources.add(project);
-        FileSystemExportOperation operation = 
-        	new FileSystemExportOperation(
-        			null, resources, localDirectory, this);
-
-        assertTrue(operation.getStatus().getCode() == IStatus.OK);
-    }
-	
-	/* Export a project, with all directories */
-	public void testExportRootResource() throws Exception {
-		List resources = new ArrayList();
-		resources.add(project);
-        FileSystemExportOperation operation = 
-        	new FileSystemExportOperation(
-        			null, resources, localDirectory, this);
-        openTestWindow().run(true, true, operation);
-        
-        verifyFolders(directoryNames.length);		
-	}
-	
-	/* Export a project, create all leadup folders. */
-	public void testExportResources() throws Exception {
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			resources.add(members[i]);
-		}
-        FileSystemExportOperation operation = 
-        	new FileSystemExportOperation(
-        			null, resources, localDirectory, this);
-        openTestWindow().run(true, true, operation);
-        
-        verifyFolders(directoryNames.length);				
-	}
-	
-	/* Export folders, do not create leadup folders. */
-	public void testExportFolderCreateDirectoryStructure() throws Exception {
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i]))
-				resources.add(members[i]);
-		}
-        FileSystemExportOperation operation = 
-        	new FileSystemExportOperation(
-        			null, resources, localDirectory, this);
-
-        operation.setCreateContainerDirectories(true);
-        operation.setCreateLeadupStructure(false);
-        openTestWindow().run(true, true, operation);
-        
-        verifyFolders(directoryNames.length, false);		
-	}
-	
-	/* Export files, do not create leadup folders. */
-	public void testExportFilesCreateDirectoryStructure() throws Exception {
-		List resources = new ArrayList();
-		IResource[] members = project.members();
-		for (int i = 0; i < members.length; i++){
-			if (isDirectory(members[i])){
-				IResource[] folderMembers = ((IFolder)members[i]).members();
-				for (int k = 0; k < folderMembers.length; k++){
-					if (isFile(folderMembers[k])){
-						resources.add(folderMembers[k]);
-					}
-				}
-			}
-		}
-		FileSystemExportOperation operation = 
-        	new FileSystemExportOperation(
-        			null, resources, localDirectory, this);
-
-        operation.setCreateContainerDirectories(true);
-        operation.setCreateLeadupStructure(false);
-        openTestWindow().run(true, true, operation);
-        
-        verifyFiles(resources);			
-	}
-	
-	/* Export files, overwrite - do not create container directories or lead up folders. */
-	public void testExportOverwrite() throws Exception {
-		List resources = new ArrayList();
-		resources.add(project);
-        FileSystemExportOperation operation = 
-        	new FileSystemExportOperation(
-        			null, resources, localDirectory, this);
-        openTestWindow().run(true, true, operation);
-        operation.setOverwriteFiles(true);
-        operation.setCreateContainerDirectories(false);
-        operation.setCreateLeadupStructure(false);
-        openTestWindow().run(true, true, operation);
-        
-        verifyFolders(directoryNames.length);		
-	}	
-	
-	private boolean isFile(IResource resource){
-		for (int i = 0; i < fileNames.length; i++){
-			if (fileNames[i].equals(resource.getName()))
-				return true;
-		}
-		return false;		
-	}
-	
-	private void verifyFiles(List resources){
-		for (int i = 0; i < resources.size(); i++){
-			IResource resource = (IResource)resources.get(i);
-			assertTrue(
-				"Export should have exported " + resource.getName(),
-				isFile(resource));
-				
-		}
-	}
-	
-	private void verifyFolders(int folderCount){
-		verifyFolders(folderCount, true);
-	}
-	
-	private void verifyFolders(int folderCount, boolean includeRootFolder){
-		File root; 
-		if (includeRootFolder){
-			root = new File(localDirectory, project.getName());
-			assertTrue("Export failed: " + project.getName() + " folder does not exist", root.exists());
-		}
-		else{
-			root = new File(localDirectory);
-		}
-        File[] files = root.listFiles();
-        List directories = new ArrayList();
-        if (files != null){	        
-	        for (int i = 0; i < files.length; i++){
-	        	if (files[i].isDirectory())
-	        		directories.add(files[i]);
-	        }
-        }
-        assertEquals("Export failed to Export all directories",
-                folderCount, directories.size());
-        
-        for (int i = 0; i < directories.size(); i++) {
-        	File directory = (File)directories.get(i);
-            assertTrue("Export failed to export directory " + directory.getName(), directory.exists());
-            verifyFolder(directory);
-        }
-	}
-	
-	private void verifyFolder(File directory){
-    	File[] files = directory.listFiles();
-    	if (files != null){
-	    	for (int k = 0; k < files.length; k++){
-	    		File file = files[k];
-	    		assertTrue("Export failed to export file: " + file.getName(), file.exists());
-	    	}
-    	}
-	}
-
-	private boolean isDirectory(IResource resource){
-		for (int i = 0; i < directoryNames.length; i++){
-			if (directoryNames[i].equals(resource.getName()))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java
deleted file mode 100644
index 912fa13..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportArchiveOperationTest.java
+++ /dev/null
@@ -1,350 +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.ui.tests.datatransfer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Properties;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.internal.wizards.datatransfer.TarFile;
-import org.eclipse.ui.internal.wizards.datatransfer.TarLeveledStructureProvider;
-import org.eclipse.ui.internal.wizards.datatransfer.ZipLeveledStructureProvider;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-public class ImportArchiveOperationTest extends UITestCase implements IOverwriteQuery {
-	private static final String DATA_PATH_PREFIX = "data/org.eclipse.datatransferArchives/";
-
-	private static final String ARCHIVE_SOURCE_PROPERTY = "archiveSource";
-	
-	private static final String ARCHIVE_115800_PROPERTY = "bug115800Source";
-
-    private static final String rootResourceName = "test.txt";
-    
-    private static final String[] directoryNames = { "dir1", "dir2" };
-
-    private static final String[] fileNames = { "file1.txt", "file2.txt" };
-
-    private String localDirectory;
-
-    private IProject project;
-    
-    private URL zipFileURL;
-    
-    private URL tarFileURL;
-    
-    public ImportArchiveOperationTest(String testName) {
-        super(testName);
-    }
-
-    /*
-     * @see IOverwriteQuery#queryOverwrite(String)
-     */
-    public String queryOverwrite(String pathString) {
-        //Always return an empty String - we aren't
-        //doing anything interesting
-        return "";
-    }
-
-    /**
-     * Tear down. Delete the project we created and all of the
-     * files on the file system.
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        try {
-            project.delete(true, true, null);
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-        finally{
-        	localDirectory = null;
-        	project = null;
-        	zipFileURL = null;
-        	tarFileURL = null;
-        }
-    }
-
-    private void setup(String propertyName) throws Exception{
-        Class testClass = Class
-		        .forName("org.eclipse.ui.tests.datatransfer.ImportArchiveOperationTest");
-		InputStream stream = testClass.getResourceAsStream("tests.ini");
-		Properties properties = new Properties();
-		properties.load(stream);
-		String zipFileName = properties.getProperty(propertyName);
-		localDirectory = zipFileName;
-		
-		zipFileURL = Platform.asLocalURL(Platform.find(TestPlugin.getDefault().getBundle(), 
-				new Path(DATA_PATH_PREFIX).append(zipFileName+ ".zip")));
-		tarFileURL = Platform.asLocalURL(Platform.find(TestPlugin.getDefault().getBundle(), 
-				new Path(DATA_PATH_PREFIX).append(zipFileName+ ".tar")));    	
-    }
-    
-    public void testZipGetStatus() throws Exception {
-    	setup(ARCHIVE_SOURCE_PROPERTY);
-        project = FileUtil.createProject("ImportZipGetStatus");
-        ZipFile zipFile = new ZipFile(zipFileURL.getPath());
-        
-        ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile);
-        
-        Enumeration zipEntries = zipFile.entries();
-        List entries = new ArrayList();
-        while (zipEntries.hasMoreElements()){
-        	entries.add(zipEntries.nextElement());
-        }
-		ImportOperation operation = new ImportOperation(
-				new Path(zipFileURL.getPath()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-
-		closeZipFile(zipFile);
-        assertTrue(operation.getStatus().getCode() == IStatus.OK);
-    }
-
-    public void testTarGetStatus() throws Exception {
-    	setup(ARCHIVE_SOURCE_PROPERTY);
-        project = FileUtil.createProject("ImportTarGetStatus");
-        TarFile tarFile = new TarFile(tarFileURL.getPath());
-        TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile);
-        
-        Enumeration tarEntries = tarFile.entries();
-        List entries = new ArrayList();
-        while (tarEntries.hasMoreElements()){
-        	entries.add(tarEntries.nextElement());
-        }
-		ImportOperation operation = new ImportOperation(
-				new Path(tarFileURL.getPath()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-
-        assertTrue(operation.getStatus().getCode() == IStatus.OK);
-    }
-    
-    public void testZipImport() throws Exception {
-    	setup(ARCHIVE_SOURCE_PROPERTY);
-        project = FileUtil.createProject("ImportZip");
-        ZipFile zipFile = new ZipFile(zipFileURL.getPath());
-        ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile);
-        zipFile = new ZipFile(zipFileURL.getPath());
-	    Enumeration zipEntries = zipFile.entries();
-	    List entries = new ArrayList();
-	    while (zipEntries.hasMoreElements()){
-	    	ZipEntry entry = (ZipEntry)zipEntries.nextElement();
-	    	if (!entry.isDirectory())
-	    		entries.add(entry);
-	    }
-		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-		
-        openTestWindow().run(true, true, operation);
-        closeZipFile(zipFile);
-        
-        verifyFiles(directoryNames.length, false);
-    }
-
-    
-    public void testTarImport() throws Exception {
-    	setup(ARCHIVE_SOURCE_PROPERTY);
-        project = FileUtil.createProject("ImportTar");
-        TarFile tarFile = new TarFile(tarFileURL.getPath());
-        TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile);
-    
-	    Enumeration tarEntries = tarFile.entries();
-	    List entries = new ArrayList();
-	    while (tarEntries.hasMoreElements()){
-	    	entries.add(tarEntries.nextElement());
-	    }
-		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-        
-        openTestWindow().run(true, true, operation);
-
-        verifyFiles(directoryNames.length, false);
-    }
-
-    public void testTarSetOverwriteResources() throws Exception {
-    	setup(ARCHIVE_SOURCE_PROPERTY);
-        project = FileUtil.createProject("ImportTarSetOverwriteResources");
-        TarFile tarFile = new TarFile(tarFileURL.getPath());
-        TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile);
-    
-	    Enumeration tarEntries = tarFile.entries();
-	    List entries = new ArrayList();
-	    while (tarEntries.hasMoreElements()){
-	    	entries.add(tarEntries.nextElement());
-	    }
-		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-        
-        openTestWindow().run(true, true, operation);
-        operation.setOverwriteResources(true);
-        openTestWindow().run(true, true, operation);
-        verifyFiles(directoryNames.length, false);
-    }
-    
-    public void testZipSetOverwriteResources() throws Exception {
-    	setup(ARCHIVE_SOURCE_PROPERTY);
-    	project = FileUtil.createProject("ImporZiprSetOverwriteResources");
-        ZipFile zipFile = new ZipFile(zipFileURL.getPath());
-        ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile);
-        zipFile = new ZipFile(zipFileURL.getPath());
-	    Enumeration zipEntries = zipFile.entries();
-	    List entries = new ArrayList();
-	    while (zipEntries.hasMoreElements()){
-	    	ZipEntry entry = (ZipEntry)zipEntries.nextElement();
-	    	if (!entry.isDirectory())
-	    		entries.add(entry);
-	    }
-		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-		
-        openTestWindow().run(true, true, operation);
-        operation.setOverwriteResources(true);
-        openTestWindow().run(true, true, operation);
-        closeZipFile(zipFile);  
-        verifyFiles(directoryNames.length, false);
-    }
-    
-    public void testZipWithFileAtRoot() throws Exception {
-    	setup(ARCHIVE_115800_PROPERTY);
-        project = FileUtil.createProject("ImportZipWithFileAtRoot");
-        ZipFile zipFile = new ZipFile(zipFileURL.getPath());
-        ZipLeveledStructureProvider structureProvider = new ZipLeveledStructureProvider(zipFile);
-        zipFile = new ZipFile(zipFileURL.getPath());
-	    Enumeration zipEntries = zipFile.entries();
-	    List entries = new ArrayList();
-	    while (zipEntries.hasMoreElements()){
-	    	ZipEntry entry = (ZipEntry)zipEntries.nextElement();
-	    	if (!entry.isDirectory())
-	    		entries.add(entry);
-	    }
-		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-		
-        openTestWindow().run(true, true, operation);
-        closeZipFile(zipFile);
-        
-        verifyFiles(directoryNames.length, true);    	
-    }
-
-    
-    public void testTarWithFileAtRoot() throws Exception {
-    	setup(ARCHIVE_115800_PROPERTY);
-        project = FileUtil.createProject("ImportTarWithFileAtRoot");
-        TarFile tarFile = new TarFile(tarFileURL.getPath());
-        TarLeveledStructureProvider structureProvider = new TarLeveledStructureProvider(tarFile);
-    
-	    Enumeration tarEntries = tarFile.entries();
-	    List entries = new ArrayList();
-	    while (tarEntries.hasMoreElements()){
-	    	entries.add(tarEntries.nextElement());
-	    }
-		ImportOperation operation = new ImportOperation(
-				new Path(project.getName()), structureProvider.getRoot(),
-				structureProvider, this, entries);
-        
-        openTestWindow().run(true, true, operation);
-
-        verifyFiles(directoryNames.length, true);
-    
-    }
-    
-    /**
-     * Verifies that all files were imported.
-     * 
-     * @param folderCount number of folders that were imported
-     */
-    private void verifyFiles(int folderCount, boolean hasRootMembers) {
-        try {
-            IPath path = new Path(localDirectory);
-            IResource targetFolder = project.findMember(path.makeRelative());
-
-            assertTrue("Import failed", targetFolder instanceof IContainer);
-
-            IResource[] resources = ((IContainer) targetFolder).members();
-            if (!hasRootMembers){
-	            assertEquals("Import failed to import all directories",
-	                    folderCount, resources.length);
-	            for (int i = 0; i < resources.length; i++) {
-	                assertTrue("Import failed", resources[i] instanceof IContainer);
-	                verifyFolder((IContainer) resources[i]);
-	            }
-            }
-            else {
-            	for (int i = 0; i < resources.length; i++){
-            		if (resources[i] instanceof IContainer)
-            			verifyFolder((IContainer)resources[i]);
-            		else
-            			assertTrue("Root resource is not present or is not present as a file: " + rootResourceName, 
-            					resources[i] instanceof IFile && rootResourceName.equals(resources[i].getName()));
-            	}
-            }
-
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-    }
-
-    /**
-     * Verifies that all files were imported into the specified folder.
-     */
-    private void verifyFolder(IContainer folder) {
-        try {
-            IResource[] files = folder.members();
-            assertEquals("Import failed to import all files", fileNames.length,
-                    files.length);
-            for (int j = 0; j < fileNames.length; j++) {
-                String fileName = fileNames[j];
-                int k;
-                for (k = 0; k < files.length; k++) {
-                    if (fileName.equals(files[k].getName()))
-                        break;
-                }
-                assertTrue("Import failed to import file " + fileName,
-                        k < fileNames.length);
-            }
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-    }
-    
-    private boolean closeZipFile(ZipFile zipFile){
-    	try{
-    		zipFile.close();
-    	}
-    	catch(IOException e){
-    		fail("Could not close zip file " + zipFile.getName(), e);
-    		return false;
-    	}
-    	return true;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java
deleted file mode 100644
index e1af790..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExistingProjectsWizardTest.java
+++ /dev/null
@@ -1,1055 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - Bits of importWizard from DeprecatedUIWizards 
- *     Red Hat, Inc - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.tests.datatransfer;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.tests.harness.FileSystemHelper;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.ImportExportWizard;
-import org.eclipse.ui.internal.wizards.datatransfer.WizardProjectsImportPage;
-import org.eclipse.ui.internal.wizards.datatransfer.WizardProjectsImportPage.ProjectRecord;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-import org.eclipse.ui.tests.harness.util.FileTool;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.wizards.datatransfer.ExternalProjectImportWizard;
-
-public class ImportExistingProjectsWizardTest extends UITestCase {
-	private static final String DATA_PATH_PREFIX = "data/org.eclipse.datatransferArchives/";
-	private static final String WS_DATA_PREFIX = "data/workspaces";
-	private static final String WS_DATA_LOCATION = "importExistingFromDirTest";
-	private static final String ARCHIVE_HELLOWORLD = "helloworld";
-	private static final String ARCHIVE_FILE_WITH_EMPTY_FOLDER = "EmptyFolderInArchive";
-	private static final String PROJECTS_ARCHIVE = "ProjectsArchive";
-
-	private static final String[] FILE_LIST = new String[] { "test-file-1.txt",
-			"test-file-2.doc", ".project" };
-
-	private static final String[] ARCHIVE_FILE_EMPTY_FOLDER_LIST = new String[] {
-			"empty", "folder" };
-
-	private String dataLocation = null;
-
-	private String zipLocation = null;
-
-	private boolean originalRefreshSetting;
-
-	public ImportExistingProjectsWizardTest(String testName) {
-		super(testName);
-	}
-
-	private Shell getShell() {
-		return DialogCheck.getShell();
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		originalRefreshSetting = ResourcesPlugin.getPlugin()
-				.getPluginPreferences().getBoolean(
-						ResourcesPlugin.PREF_AUTO_REFRESH);
-		ResourcesPlugin.getPlugin().getPluginPreferences().setValue(
-				ResourcesPlugin.PREF_AUTO_REFRESH, true);
-	}
-
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
-		IProject[] projects = wsRoot.getProjects();
-		for (int i = 0; i < projects.length; i++) {
-			FileUtil.deleteProject(projects[i]);
-		}
-		// clean up any data directories created
-		if (dataLocation != null) {
-			File root = new File(dataLocation);
-			if (root.exists()) {
-				FileSystemHelper.clear(root);
-			}
-		}
-		dataLocation = null; // reset for next test
-
-		// do same for zip location
-		if (zipLocation != null) {
-			File root = new File(zipLocation);
-			if (root.exists()) {
-				// zipLocation is the zip file, not the temp directory it was
-				// copied to
-				FileSystemHelper.clear(root.getParentFile());
-			}
-		}
-		zipLocation = null; // reset for next test
-
-		ResourcesPlugin.getPlugin().getPluginPreferences().setValue(
-				ResourcesPlugin.PREF_AUTO_REFRESH, originalRefreshSetting);
-	}
-
-	private void waitForRefresh() {
-		try {
-			PlatformUI.getWorkbench().getProgressService().busyCursorWhile(
-					new IRunnableWithProgress() {
-						public void run(IProgressMonitor monitor)
-								throws InterruptedException {
-							Job.getJobManager().join(
-									ResourcesPlugin.FAMILY_AUTO_REFRESH,
-									new NullProgressMonitor());
-						}
-					});
-		} catch (InvocationTargetException e) {
-			fail(e.getLocalizedMessage());
-		} catch (InterruptedException e) {
-			fail(e.getLocalizedMessage());
-		}
-	}
-
-	public void testFindSingleZip() {
-		try {
-			URL archiveFile = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_HELLOWORLD + ".zip")));
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(archiveFile.getPath());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				assertFalse(selectedProjects[i].hasConflicts());
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip",
-					projectNames.containsAll(projects));
-		} catch (IOException e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testFindSingleTar() {
-		try {
-			URL archiveFile = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_HELLOWORLD + ".tar")));
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(archiveFile.getPath());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				assertFalse(selectedProjects[i].hasConflicts());
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in tar",
-					projectNames.containsAll(projects));
-		} catch (IOException e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testFindSingleDirectory() {
-		try {
-			dataLocation = copyDataLocation();
-			IPath wsPath = new Path(dataLocation).append("HelloWorld");
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-			// We're importing a directory
-			wpip.getProjectFromDirectoryRadio().setSelection((true));
-			wpip.updateProjectsList(wsPath.toOSString());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				assertFalse(selectedProjects[i].hasConflicts());
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in directory",
-					projectNames.containsAll(projects));
-		} catch (IOException e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testDoNotShowProjectWithSameName() {
-		try {
-			dataLocation = copyDataLocation();
-			IPath wsPath = new Path(dataLocation);
-
-			FileUtil.createProject("HelloWorld");
-
-			WizardProjectsImportPage wpip = getNewWizard();
-			// We're importing a directory
-			wpip.getProjectFromDirectoryRadio().setSelection((true));
-			wpip.updateProjectsList(wsPath.toOSString());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				if(selectedProjects[i].getProjectName().equals("HelloWorld"))
-					assertTrue(selectedProjects[i].hasConflicts());
-			}
-
-		} catch (Exception e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testImportSingleZip() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-			URL archiveFile = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_HELLOWORLD + ".zip")));
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(archiveFile.getPath());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				assertFalse(selectedProjects[i].hasConflicts());
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0], FILE_LIST,
-					true);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-
-	}
-
-	public void testImportZipWithEmptyFolder() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-			URL archiveFile = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_FILE_WITH_EMPTY_FOLDER + ".zip")));
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("A");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(archiveFile.getPath());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0],
-					ARCHIVE_FILE_EMPTY_FOLDER_LIST, false);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testImportSingleTar() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-			URL archiveFile = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_HELLOWORLD + ".tar")));
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(archiveFile.getPath());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in tar",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0], FILE_LIST,
-					true);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-
-	}
-
-	public void testImportTarWithEmptyFolder() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-			URL archiveFile = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_FILE_WITH_EMPTY_FOLDER + ".tar")));
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("A");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(archiveFile.getPath());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in tar",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported: Expected=1, Actual="
-						+ workspaceProjects.length);
-			IFolder helloFolder = workspaceProjects[0].getFolder("A");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0],
-					ARCHIVE_FILE_EMPTY_FOLDER_LIST, false);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-
-	}
-
-	public void testImportSingleDirectory() {
-		IPath wsPath = null;
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-
-			dataLocation = copyDataLocation();
-			wsPath = new Path(dataLocation).append("HelloWorld");
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((true));
-			wpip.updateProjectsList(wsPath.toOSString());
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in directory",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(false, workspaceProjects[0], FILE_LIST,
-					true);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testImportSingleDirectoryWithCopy() {
-		IPath wsPath = null;
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-
-			dataLocation = copyDataLocation();
-			wsPath = new Path(dataLocation).append("HelloWorld");
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((true));
-			wpip.getCopyCheckbox().setSelection(true);
-			wpip.saveWidgetValues();
-			wpip.restoreWidgetValues();
-
-			wpip.updateProjectsList(wsPath.toOSString());
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0], FILE_LIST,
-					true);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testImportSingleDirectoryWithCopyDeleteProjectKeepContents() {
-		IPath wsPath = null;
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-
-			dataLocation = copyDataLocation();
-			wsPath = new Path(dataLocation).append("HelloWorld");
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((true));
-			wpip.getCopyCheckbox().setSelection(true);
-			wpip.saveWidgetValues();
-			wpip.restoreWidgetValues();
-
-			wpip.updateProjectsList(wsPath.toOSString());
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported: "
-						+ workspaceProjects.length + " projects in workspace.");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0], FILE_LIST,
-					true);
-
-			// delete projects in workspace but not contents
-			for (int i = 0; i < workspaceProjects.length; i++) {
-				workspaceProjects[i].delete(false, true, null);
-			}
-			assertTrue("Test project not deleted successfully.", root
-					.getProjects().length == 0);
-
-			// perform same test again, but this time import from this workspace
-			final WizardProjectsImportPage wpip2 = getNewWizard();
-			HashSet projects2 = new HashSet();
-			projects2.add("HelloWorld");
-
-			wpip2.getProjectFromDirectoryRadio().setSelection((true));
-			wpip2.getCopyCheckbox().setSelection(true);
-			wpip2.saveWidgetValues();
-			wpip2.restoreWidgetValues();
-
-			wpip2.updateProjectsList(wsPath.toOSString());
-			ProjectRecord[] selectedProjects2 = wpip2.getProjectRecords();
-			assertTrue("Not all projects were found correctly in zip (2).",
-					selectedProjects2.length == 1);
-
-			ArrayList projectNames2 = new ArrayList();
-			for (int i = 0; i < selectedProjects2.length; i++) {
-				projectNames2.add(selectedProjects2[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip (2)",
-					projectNames2.containsAll(projects2));
-
-			CheckboxTreeViewer projects2List = wpip2.getProjectsList();
-			projects2List.setCheckedElements(selectedProjects2);
-			wpip2.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported");
-			helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself (2)");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0], FILE_LIST,
-					true);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-	}
-
-	public void testImportZipDeleteContentsImportAgain() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-			URL archiveFile = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_HELLOWORLD + ".zip")));
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(archiveFile.getPath());
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 1)
-				fail("Incorrect Number of projects imported");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("Project was imported as a folder into itself");
-
-			verifyProjectInWorkspace(true, workspaceProjects[0], FILE_LIST,
-					true);
-
-			// delete projects in workspace but not contents
-			for (int i = 0; i < workspaceProjects.length; i++) {
-				workspaceProjects[i].delete(true, true, null);
-			}
-			assertTrue("Test project not deleted successfully.", root
-					.getProjects().length == 0);
-
-			// import again
-			IProject[] workspaceProjects2 = root.getProjects();
-			for (int i = 0; i < workspaceProjects2.length; i++)
-				FileUtil.deleteProject(workspaceProjects2[i]);
-			URL archiveFile2 = Platform.asLocalURL(Platform.find(TestPlugin
-					.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-					+ ARCHIVE_HELLOWORLD + ".zip")));
-			WizardProjectsImportPage wpip2 = getNewWizard();
-			HashSet projects2 = new HashSet();
-			projects2.add("HelloWorld");
-
-			wpip2.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip2.updateProjectsList(archiveFile2.getPath());
-
-			ProjectRecord[] selectedProjects2 = wpip2.getProjectRecords();
-			ArrayList projectNames2 = new ArrayList();
-			for (int i = 0; i < selectedProjects2.length; i++) {
-				projectNames2.add(selectedProjects2[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip (2)",
-					projectNames2.containsAll(projects2));
-
-			CheckboxTreeViewer projectsList2 = wpip2.getProjectsList();
-			projectsList2.setCheckedElements(selectedProjects2);
-			wpip2.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects2 = root.getProjects();
-			if (workspaceProjects2.length != 1)
-				fail("Incorrect Number of projects imported (2)");
-			IFolder helloFolder2 = workspaceProjects2[0]
-					.getFolder("HelloWorld");
-			if (helloFolder2.exists())
-				fail("Project was imported as a folder into itself (2)");
-
-			verifyProjectInWorkspace(true, workspaceProjects2[0], FILE_LIST,
-					true);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-
-	}
-	
-
-	public void testInitialValue() {
-
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			zipLocation = copyZipLocation();
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-
-			WizardProjectsImportPage wpip = getExternalImportWizard(zipLocation);
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-			projects.add("WorldHello");
-			assertTrue("Not all projects were found correctly in zip",
-
-			projectNames.containsAll(projects));
-
-			// no initial value, no projects
-			wpip = getExternalImportWizard(null);
-			selectedProjects = wpip.getProjectRecords();
-			assertEquals(0, selectedProjects.length);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-
-	}
-	public void testImportArchiveMultiProject() {
-		try {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			zipLocation = copyZipLocation();
-
-			IProject[] workspaceProjects = root.getProjects();
-			for (int i = 0; i < workspaceProjects.length; i++)
-				FileUtil.deleteProject(workspaceProjects[i]);
-
-			WizardProjectsImportPage wpip = getNewWizard();
-			HashSet projects = new HashSet();
-			projects.add("HelloWorld");
-			projects.add("WorldHello");
-
-			wpip.getProjectFromDirectoryRadio().setSelection((false)); // We
-																		// want
-																		// the
-																		// other
-																		// one
-																		// selected
-			wpip.updateProjectsList(zipLocation);
-
-			ProjectRecord[] selectedProjects = wpip.getProjectRecords();
-			ArrayList projectNames = new ArrayList();
-			for (int i = 0; i < selectedProjects.length; i++) {
-				projectNames.add(selectedProjects[i].getProjectName());
-			}
-
-			assertTrue("Not all projects were found correctly in zip",
-					projectNames.containsAll(projects));
-
-			CheckboxTreeViewer projectsList = wpip.getProjectsList();
-			projectsList.setCheckedElements(selectedProjects);
-			wpip.createProjects(); // Try importing all the projects we found
-			waitForRefresh();
-
-			// "HelloWorld" should be the only project in the workspace
-			workspaceProjects = root.getProjects();
-			if (workspaceProjects.length != 2)
-				fail("Incorrect Number of projects imported");
-			IFolder helloFolder = workspaceProjects[0].getFolder("HelloWorld");
-			if (helloFolder.exists())
-				fail("HelloWorld was imported as a folder into itself");
-			IFolder folder2 = workspaceProjects[0].getFolder("WorldHello");
-			if (folder2.exists())
-				fail("WorldHello was imported as a folder into itself");
-
-			for (int i = 0; i < workspaceProjects.length; i++)
-				verifyProjectInWorkspace(true, workspaceProjects[i], FILE_LIST,
-						true);
-
-		} catch (IOException e) {
-			fail(e.toString());
-		} catch (CoreException e) {
-			fail(e.toString());
-		}
-	}
-
-	/**
-	 * Verify whether or not the imported project is in the current workspace
-	 * location (i.e. copy projects was true) or in another workspace location
-	 * (i.e. copy projects was false).
-	 * 
-	 * @param inWorkspace
-	 * @param project
-	 */
-	private void verifyProjectInWorkspace(final boolean inWorkspace,
-			final IProject project, String[] fileList, boolean isListFiles) {
-
-		IPath rootLocation = ResourcesPlugin.getWorkspace().getRoot()
-				.getLocation();
-		IPath projectLocation = project.getLocation();
-		boolean isProjectInWorkspace = rootLocation.isPrefixOf(projectLocation);
-		if (inWorkspace) {
-			if (!isProjectInWorkspace)
-				fail(project.getName()
-						+ " should be in the workspace location: "
-						+ rootLocation.toOSString());
-		} else {
-			if (isProjectInWorkspace)
-				fail(project.getName()
-						+ " should not be in the workspace location: "
-						+ rootLocation.toOSString());
-		}
-		StringBuffer filesNotImported = new StringBuffer();
-		// make sure the files in the project were imported
-		for (int i = 0; i < fileList.length; i++) {
-			IResource res = isListFiles ? (IResource) project
-					.getFile(fileList[i]) : (IResource) project
-					.getFolder(fileList[i]);
-			if (!res.exists())
-				filesNotImported.append(res.getName() + ", ");
-		}
-		assertTrue("Files expected but not in workspace: "
-				+ filesNotImported.toString(), filesNotImported.length() == 0);
-	}
-
-	/**
-	 * Copies the data to a temporary directory and returns the new location.
-	 * 
-	 * @return the location
-	 */
-	private String copyDataLocation() throws IOException {
-		TestPlugin plugin = TestPlugin.getDefault();
-		if (plugin == null)
-			throw new IllegalStateException(
-					"TestPlugin default reference is null");
-
-		URL fullPathString = plugin.getDescriptor().find(
-				new Path(WS_DATA_PREFIX).append(WS_DATA_LOCATION + ".zip"));
-
-		if (fullPathString == null)
-			throw new IllegalArgumentException();
-
-		IPath path = new Path(fullPathString.getPath());
-
-		File origin = path.toFile();
-		if (!origin.exists())
-			throw new IllegalArgumentException();
-
-		ZipFile zFile = new ZipFile(origin);
-
-		File destination = new File(FileSystemHelper.getRandomLocation(
-				FileSystemHelper.getTempDir()).toOSString());
-		FileTool.unzip(zFile, destination);
-		return destination.getAbsolutePath();
-	}
-
-	private String copyZipLocation() throws IOException {
-		TestPlugin plugin = TestPlugin.getDefault();
-		if (plugin == null)
-			throw new IllegalStateException(
-					"TestPlugin default reference is null");
-
-		URL fullPathString = plugin.getDescriptor().find(
-				new Path(WS_DATA_PREFIX).append(WS_DATA_LOCATION + ".zip"));
-
-		if (fullPathString == null)
-			throw new IllegalArgumentException();
-
-		IPath path = new Path(fullPathString.getPath());
-
-		File origin = path.toFile();
-		if (!origin.exists())
-			throw new IllegalArgumentException();
-
-		File destination = new File(FileSystemHelper.getRandomLocation(
-				FileSystemHelper.getTempDir()).toOSString()
-				+ File.separator + ARCHIVE_HELLOWORLD + ".zip");
-		FileTool.copy(origin, destination);
-		return destination.getAbsolutePath();
-	}
-
-	private WizardProjectsImportPage getNewWizard() {
-		ImportExportWizard wizard = new ImportExportWizard(
-				ImportExportWizard.IMPORT);
-		wizard.init(getWorkbench(), null);
-		IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-				.getDialogSettings();
-		IDialogSettings wizardSettings = workbenchSettings
-				.getSection("ImportExportTests");
-		if (wizardSettings == null)
-			wizardSettings = workbenchSettings
-					.addNewSection("ImportExportTests");
-		wizard.setDialogSettings(wizardSettings);
-		wizard.setForcePreviousAndNextButtons(true);
-
-		WizardProjectsImportPage wpip = new WizardProjectsImportPage();
-
-		Shell shell = getShell();
-
-		WizardDialog dialog = new WizardDialog(shell, wizard);
-		dialog.create();
-		dialog.getShell().setSize(Math.max(100, dialog.getShell().getSize().x),
-				100);
-
-		Composite parent = new Composite(shell, SWT.NONE);
-		parent.setLayout(new GridLayout());
-		wpip.setWizard(dialog.getCurrentPage().getWizard());
-		wpip.createControl(parent);
-		return wpip;
-	}
-
-	public void testGetProjectRecords() throws Exception {
-		
-		HashSet expectedNames = new HashSet();
-		expectedNames.add("Project1");
-		expectedNames.add("Project2");
-		expectedNames.add("Project3");
-		expectedNames.add("Project4");
-		expectedNames.add("Project5");
-		
-		URL projectsArchive = Platform.asLocalURL(Platform.find(TestPlugin
-				.getDefault().getBundle(), new Path(DATA_PATH_PREFIX
-				+ PROJECTS_ARCHIVE + ".zip")));
-
-		List projectNames = getNonConflictingProjectsFromArchive(projectsArchive);
-		
-		assertTrue("Not all projects were found correctly in zip", projectNames.containsAll(expectedNames));
-		
-		FileUtil.createProject("Project1");
-		projectNames = getNonConflictingProjectsFromArchive(projectsArchive);
-		
-		assertFalse("Conflict flag is not set on the projects correctly", projectNames.contains("Project1"));
-		
-	}
-
-	private List getNonConflictingProjectsFromArchive(URL projectsArchive) {
-		WizardProjectsImportPage newWizard = getNewWizard();
-		newWizard.getProjectFromDirectoryRadio().setSelection(false);
-		newWizard.updateProjectsList(projectsArchive.getPath());
-		
-		ProjectRecord[] projectRecords = newWizard.getProjectRecords();
-		
-		List projectNames = new ArrayList();
-		for (int i = 0; i < projectRecords.length; i++) {
-			if(!projectRecords[i].hasConflicts())
-				projectNames.add(projectRecords[i].getProjectName());
-		}
-		return projectNames;
-	}
-	
-	private WizardProjectsImportPage getExternalImportWizard(String initialPath) {
-
-		ExternalProjectImportWizard wizard = new ExternalProjectImportWizard(
-				initialPath);
-		wizard.init(getWorkbench(), null);
-		WizardDialog dialog = new WizardDialog(getShell(), wizard);
-		dialog.create();
-
-		dialog.getShell().setSize(Math.max(100, dialog.getShell().getSize().x),
-				100);
-		WizardProjectsImportPage wpip = (WizardProjectsImportPage) wizard
-				.getPage("wizardExternalProjectsPage");
-		return wpip;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java
deleted file mode 100644
index d871aa2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportExportWizardsCategoryTests.java
+++ /dev/null
@@ -1,219 +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.tests.datatransfer;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.registry.WizardsRegistryReader;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.wizards.IWizardCategory;
-import org.eclipse.ui.wizards.IWizardDescriptor;
-
-public class ImportExportWizardsCategoryTests extends UITestCase {
-	
-	private static String WIZARD_ID_IMPORT_NO_CATEGORY = "org.eclipse.ui.tests.import.NoCategory";
-	private static String WIZARD_ID_IMPORT_INVALID_CATEGORY = "org.eclipse.ui.tests.import.InvalidCategory";
-	private static String WIZARD_IMPORT_NEW_CATEGORY = "org.eclipse.ui.tests.TestImport";
-	private static String WIZARD_ID_IMPORT_NEW_CATEGORY = "org.eclipse.ui.tests.import.NewCategory";
-	private static String WIZARD_IMPORT_NEW_PARENTED_CATEGORY = "org.eclipse.ui.Basic/org.eclipse.ui.tests.TestImportParented";
-	private static String WIZARD_ID_IMPORT_PARENTED_CATEGORY = "org.eclipse.ui.tests.import.NewParentedCategory";
-	private static String WIZARD_IMPORT_DUPLICATE_CATEGORY = "org.eclipse.ui.tests.TestImportDup";
-	private static String WIZARD_ID_IMPORT_DUPLICATE_CATEGORY = "org.eclipse.ui.tests.import.DuplicateCategory";
-	
-	private static String WIZARD_ID_EXPORT_NO_CATEGORY = "org.eclipse.ui.tests.export.NoCategory";
-	private static String WIZARD_ID_EXPORT_INVALID_CATEGORY = "org.eclipse.ui.tests.export.InvalidCategory";
-	private static String WIZARD_EXPORT_NEW_CATEGORY = "org.eclipse.ui.tests.TestExport";
-	private static String WIZARD_ID_EXPORT_NEW_CATEGORY = "org.eclipse.ui.tests.export.NewCategory";
-	private static String WIZARD_EXPORT_NEW_PARENTED_CATEGORY = "org.eclipse.ui.Basic/org.eclipse.ui.tests.TestExportParented";
-	private static String WIZARD_ID_EXPORT_PARENTED_CATEGORY = "org.eclipse.ui.tests.export.NewParentedCategory";
-	private static String WIZARD_EXPORT_DUPLICATE_CATEGORY = "org.eclipse.ui.tests.TestExportDup";
-	private static String WIZARD_ID_EXPORT_DUPLICATE_CATEGORY = "org.eclipse.ui.tests.export.DuplicateCategory";
-	
-	IWizardCategory exportRoot;	
-	IWizardCategory importRoot;
-	
-	public ImportExportWizardsCategoryTests(String testName){
-		super(testName);
-		exportRoot = WorkbenchPlugin.getDefault()
-			.getExportWizardRegistry().getRootCategory();
-		importRoot = WorkbenchPlugin.getDefault()
-			.getImportWizardRegistry().getRootCategory();
-	}
-
-	/* Import */
-	public void testImportNoCategoryProvided(){
-		IWizardCategory otherCategory = importRoot.findCategory(new Path(
-				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
-		if (otherCategory != null){
-			IWizardDescriptor wizardDesc = 
-				otherCategory.findWizard(WIZARD_ID_IMPORT_NO_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_IMPORT_NO_CATEGORY+ "in Other category.", 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find Other category", false);
-	}
-	
-	public void testImportCategoryDoesNotExist(){
-		IWizardCategory otherCategory = importRoot.findCategory(new Path(
-				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
-		if (otherCategory != null){
-			IWizardDescriptor wizardDesc = 
-				otherCategory.findWizard(WIZARD_ID_IMPORT_INVALID_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_IMPORT_INVALID_CATEGORY+ "in Other category.", 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find Other category", false);
-	}
-	
-	public void testImportAddToNewCategory(){
-		IWizardCategory newCategory = importRoot.findCategory(
-				new Path(WIZARD_IMPORT_NEW_CATEGORY));
-		if (newCategory != null){
-			IWizardDescriptor wizardDesc = 
-				newCategory.findWizard(WIZARD_ID_IMPORT_NEW_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_IMPORT_NEW_CATEGORY+ "in category " + WIZARD_IMPORT_NEW_CATEGORY, 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find category named " + WIZARD_IMPORT_NEW_CATEGORY, false);
-	}
-	
-	public void testImportAddToParentedCategory(){
-		IWizardCategory newCategory = importRoot.findCategory(
-				new Path(WIZARD_IMPORT_NEW_PARENTED_CATEGORY));
-		if (newCategory != null){
-			IWizardDescriptor wizardDesc = 
-				newCategory.findWizard(WIZARD_ID_IMPORT_PARENTED_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_IMPORT_PARENTED_CATEGORY+ "in category " + WIZARD_IMPORT_NEW_PARENTED_CATEGORY, 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find category named " + WIZARD_IMPORT_NEW_PARENTED_CATEGORY, false);
-	}
-	
-	public void testImportDuplicateCategory(){
-		IWizardCategory newCategory = importRoot.findCategory(
-				new Path(WIZARD_IMPORT_DUPLICATE_CATEGORY));
-		if (newCategory != null){
-			IWizardDescriptor wizardDesc = 
-				newCategory.findWizard(WIZARD_ID_IMPORT_DUPLICATE_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_IMPORT_DUPLICATE_CATEGORY+ "in category " + WIZARD_IMPORT_DUPLICATE_CATEGORY, 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find category named " + WIZARD_IMPORT_DUPLICATE_CATEGORY, false);
-	}
-	
-	public void testImportUsingExportCategory(){
-		IWizardCategory category = importRoot.findCategory(
-				new Path(WIZARD_EXPORT_NEW_CATEGORY));
-		assertTrue(
-				"Import wizards should not have category named " + WIZARD_EXPORT_NEW_CATEGORY, 
-				category == null);
-	}	
-	
-	/* Export */
-	public void testExportNoCategoryProvided(){
-		IWizardCategory otherCategory = exportRoot.findCategory(new Path(
-				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
-		if (otherCategory != null){
-			IWizardDescriptor wizardDesc = 
-				otherCategory.findWizard(WIZARD_ID_EXPORT_NO_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_EXPORT_NO_CATEGORY+ "in Other category.", 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find Other category", false);
-	}
-	
-	public void testExportCategoryDoesNotExist(){
-		IWizardCategory otherCategory = exportRoot.findCategory(new Path(
-				WizardsRegistryReader.UNCATEGORIZED_WIZARD_CATEGORY));
-		if (otherCategory != null){
-			IWizardDescriptor wizardDesc = 
-				otherCategory.findWizard(WIZARD_ID_EXPORT_INVALID_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_EXPORT_INVALID_CATEGORY+ "in Other category.", 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find Other category", false);
-	}
-	
-	public void testExportAddToNewCategory(){
-		IWizardCategory newCategory = exportRoot.findCategory(
-				new Path(WIZARD_EXPORT_NEW_CATEGORY));
-		if (newCategory != null){
-			IWizardDescriptor wizardDesc = 
-				newCategory.findWizard(WIZARD_ID_EXPORT_NEW_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_EXPORT_NEW_CATEGORY+ "in category " + WIZARD_EXPORT_NEW_CATEGORY, 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find category named " + WIZARD_EXPORT_NEW_CATEGORY, false);
-	}
-	
-	public void testExportAddToParentedCategory(){
-		IWizardCategory newCategory = exportRoot.findCategory(
-				new Path(WIZARD_EXPORT_NEW_PARENTED_CATEGORY));
-		if (newCategory != null){
-			IWizardDescriptor wizardDesc = 
-				newCategory.findWizard(WIZARD_ID_EXPORT_PARENTED_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_EXPORT_PARENTED_CATEGORY+ "in category " + WIZARD_EXPORT_NEW_PARENTED_CATEGORY, 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find category named " + WIZARD_EXPORT_NEW_PARENTED_CATEGORY, false);
-	}
-	
-	public void testExportDuplicateCategory(){
-		IWizardCategory newCategory = exportRoot.findCategory(
-				new Path(WIZARD_EXPORT_DUPLICATE_CATEGORY));
-		if (newCategory != null){
-			IWizardDescriptor wizardDesc = 
-				newCategory.findWizard(WIZARD_ID_EXPORT_DUPLICATE_CATEGORY);
-			assertTrue(
-				"Could not find wizard with id" + WIZARD_ID_EXPORT_DUPLICATE_CATEGORY+ "in category " + WIZARD_EXPORT_DUPLICATE_CATEGORY, 
-				wizardDesc != null);
-			return;
-		}
-		assertTrue("Could not find category named " + WIZARD_EXPORT_DUPLICATE_CATEGORY, false);
-	}	
-	
-	public void testExportUsingImportCategory(){
-		IWizardCategory category = exportRoot.findCategory(
-				new Path(WIZARD_IMPORT_NEW_CATEGORY));
-		assertTrue(
-				"Export wizards should not have category named " + WIZARD_IMPORT_NEW_CATEGORY, 
-				category == null);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		importRoot = null;
-		exportRoot = null;
-	}	
-	
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java
deleted file mode 100644
index 7d5eed3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/ImportOperationTest.java
+++ /dev/null
@@ -1,276 +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.ui.tests.datatransfer;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.tests.harness.FileSystemHelper;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-
-public class ImportOperationTest extends UITestCase implements IOverwriteQuery {
-
-    private static final String[] directoryNames = { "dir1", "dir2" };
-
-    private static final String[] fileNames = { "file1.txt", "file2.txt" };
-    
-    private String localDirectory;
-
-    private IProject project;
-
-    public ImportOperationTest(String testName) {
-        super(testName);
-    }
-
-    private void createSubDirectory(String parentName, String newDirName)
-            throws IOException {
-        String newDirPath = parentName + File.separatorChar + newDirName;
-        File newDir = new File(newDirPath);
-        newDir.mkdir();
-        for (int i = 0; i < directoryNames.length; i++) {
-            createFile(newDirPath, fileNames[i]);
-        }
-    }
-
-    private void createFile(String parentName, String filePath)
-            throws IOException {
-        String newFilePath = parentName + File.separatorChar + filePath;
-        File newFile = new File(newFilePath);
-        newFile.createNewFile();
-    }
-
-    /*
-     * @see IOverwriteQuery#queryOverwrite(String)
-     */
-    public String queryOverwrite(String pathString) {
-        //Always return an empty String - we aren't
-        //doing anything interesting
-        return "";
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        Class testClass = Class
-                .forName("org.eclipse.ui.tests.datatransfer.ImportOperationTest");
-        InputStream stream = testClass.getResourceAsStream("tests.ini");
-        Properties properties = new Properties();
-        properties.load(stream);
-        localDirectory = properties.getProperty("localSource");
-        setUpDirectory();
-    }
-
-    /**
-     * Set up the directories and files used for the test.
-     */
-
-    private void setUpDirectory() throws IOException {
-        File rootDirectory = new File(localDirectory);
-        rootDirectory.mkdir();
-        localDirectory = rootDirectory.getAbsolutePath();
-        for (int i = 0; i < directoryNames.length; i++) {
-            createSubDirectory(localDirectory, directoryNames[i]);
-        }
-    }
-
-    /**
-     * Tear down. Delete the project we created and all of the
-     * files on the file system.
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        try {
-            project.delete(true, true, null);
-            File topDirectory = new File(localDirectory);
-            FileSystemHelper.clear(topDirectory);
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-        finally{
-        	project = null;
-        	localDirectory = null;
-        }
-    }
-
-    public void testGetStatus() throws Exception {
-        project = FileUtil.createProject("ImportGetStatus");
-        File element = new File(localDirectory);
-        List importElements = new ArrayList();
-        importElements.add(element);
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                FileSystemStructureProvider.INSTANCE, this, importElements);
-
-        assertTrue(operation.getStatus().getCode() == IStatus.OK);
-    }
-
-    public void testImportList() throws Exception {
-        project = FileUtil.createProject("ImportList");
-        File element = new File(localDirectory);
-        List importElements = new ArrayList();
-        importElements.add(element);
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                FileSystemStructureProvider.INSTANCE, this, importElements);
-        openTestWindow().run(true, true, operation);
-
-        verifyFiles(directoryNames.length);
-    }
-
-    public void testImportSource() throws Exception {
-        project = FileUtil.createProject("ImportSource");
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                new File(localDirectory), FileSystemStructureProvider.INSTANCE,
-                this);
-        openTestWindow().run(true, true, operation);
-        verifyFiles(directoryNames.length);
-    }
-
-    public void testImportSourceList() throws Exception {
-        project = FileUtil.createProject("ImportSourceList");
-        File element = new File(localDirectory + File.separator
-                + directoryNames[0]);
-        List importElements = new ArrayList();
-        importElements.add(element);
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                new File(localDirectory), FileSystemStructureProvider.INSTANCE,
-                this, importElements);
-        openTestWindow().run(true, true, operation);
-        verifyFiles(importElements.size());
-    }
-
-    public void testSetContext() throws Exception {
-        project = FileUtil.createProject("ImportSetContext");
-        File element = new File(localDirectory);
-        List importElements = new ArrayList();
-        importElements.add(element);
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                FileSystemStructureProvider.INSTANCE, this, importElements);
-
-        operation.setContext(null);
-        operation.setContext(openTestWindow().getShell());
-    }
-
-    public void testSetCreateContainerStructure() throws Exception {
-        project = FileUtil.createProject("ImportSetCreateContainerStructure");
-        File element = new File(localDirectory);
-        List importElements = new ArrayList();
-        importElements.add(element);
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                FileSystemStructureProvider.INSTANCE, this, importElements);
-
-        operation.setCreateContainerStructure(false);
-        openTestWindow().run(true, true, operation);
-
-        try {
-            IPath path = new Path(localDirectory);
-            IResource targetFolder = project.findMember(path.lastSegment());
-
-            assertTrue("Import failed", targetFolder instanceof IContainer);
-
-            IResource[] resources = ((IContainer) targetFolder).members();
-            assertEquals("Import failed to import all directories",
-                    directoryNames.length, resources.length);
-            for (int i = 0; i < resources.length; i++) {
-                assertTrue("Import failed", resources[i] instanceof IContainer);
-                verifyFolder((IContainer) resources[i]);
-            }
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-    }
-
-    public void testSetFilesToImport() throws Exception {
-        project = FileUtil.createProject("ImportSetFilesToImport");
-        File element = new File(localDirectory + File.separator
-                + directoryNames[0]);
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                new File(localDirectory), FileSystemStructureProvider.INSTANCE,
-                this);
-        List importElements = new ArrayList();
-        importElements.add(element);
-        operation.setFilesToImport(importElements);
-        openTestWindow().run(true, true, operation);
-        verifyFiles(importElements.size());
-    }
-
-    public void testSetOverwriteResources() throws Exception {
-        project = FileUtil.createProject("ImportSetOverwriteResources");
-        File element = new File(localDirectory);
-        List importElements = new ArrayList();
-        importElements.add(element);
-        ImportOperation operation = new ImportOperation(project.getFullPath(),
-                FileSystemStructureProvider.INSTANCE, this, importElements);
-
-        openTestWindow().run(true, true, operation);
-        operation.setOverwriteResources(true);
-        openTestWindow().run(true, true, operation);
-    }
-
-    /**
-     * Verifies that all files were imported.
-     * 
-     * @param folderCount number of folders that were imported
-     */
-    private void verifyFiles(int folderCount) {
-        try {
-            IPath path = new Path(localDirectory);
-            IResource targetFolder = project.findMember(path.makeRelative());
-
-            assertTrue("Import failed", targetFolder instanceof IContainer);
-
-            IResource[] resources = ((IContainer) targetFolder).members();
-            assertEquals("Import failed to import all directories",
-                    folderCount, resources.length);
-            for (int i = 0; i < resources.length; i++) {
-                assertTrue("Import failed", resources[i] instanceof IContainer);
-                verifyFolder((IContainer) resources[i]);
-            }
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-    }
-
-    /**
-     * Verifies that all files were imported into the specified folder.
-     */
-    private void verifyFolder(IContainer folder) {
-        try {
-            IResource[] files = folder.members();
-            assertEquals("Import failed to import all files", fileNames.length,
-                    files.length);
-            for (int j = 0; j < fileNames.length; j++) {
-                String fileName = fileNames[j];
-                int k;
-                for (k = 0; k < files.length; k++) {
-                    if (fileName.equals(files[k].getName()))
-                        break;
-                }
-                assertTrue("Import failed to import file " + fileName,
-                        k < fileNames.length);
-            }
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestExportWizard.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestExportWizard.java
deleted file mode 100644
index 8017e4a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestExportWizard.java
+++ /dev/null
@@ -1,33 +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.tests.datatransfer;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IExportWizard;
-import org.eclipse.ui.IWorkbench;
-
-public class TestExportWizard extends Wizard implements IExportWizard {
-
-	public TestExportWizard(){
-		super();
-	}
-	public boolean performFinish() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestImportWizard.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestImportWizard.java
deleted file mode 100644
index 870eb5e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/TestImportWizard.java
+++ /dev/null
@@ -1,34 +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.tests.datatransfer;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.IImportWizard;
-import org.eclipse.ui.IWorkbench;
-
-public class TestImportWizard extends Wizard implements IImportWizard {
-
-	public TestImportWizard() {
-		super();
-	}
-
-	public boolean performFinish() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/tests.ini b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/tests.ini
deleted file mode 100644
index 516795b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/datatransfer/tests.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-localSource=ImportTestSource
-archiveSource=ArchiveTestSource
-bug115800Source=FileAtRootTest
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BackgroundColorDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BackgroundColorDecorator.java
deleted file mode 100644
index 4fc385c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BackgroundColorDecorator.java
+++ /dev/null
@@ -1,101 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * The BackgroundColorDecorator is a test for background coloring of the
- * navigator.
- */
-public class BackgroundColorDecorator implements ILightweightLabelDecorator {
-
-	public static final String ID = "org.eclipse.ui.tests.backgroundDecorator";
-
-	public static Color color;
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object,
-	 *      org.eclipse.jface.viewers.IDecoration)
-	 */
-	public void decorate(Object element, IDecoration decoration) {
-
-		if(color == null){
-			PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see java.lang.Runnable#run()
-				 */
-				public void run() {
-					setUpColor();
-
-				}
-			});
-
-		}
-		decoration.setBackgroundColor(color);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
-	 *      java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-	public static void setUpColor(){
-		color = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_CYAN);
-	}
-
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecorator.java
deleted file mode 100644
index d41f825..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecorator.java
+++ /dev/null
@@ -1,104 +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.tests.decorators;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.ui.tests.TestPlugin;
-
-public class BadIndexDecorator implements ILightweightLabelDecorator {
-
-     private Set listeners = new HashSet();
-
-    private ImageDescriptor descriptor;
-   
-
-    /*
-     * @see IBaseLabelProvider#addListener(ILabelProviderListener)
-     */
-    public void addListener(ILabelProviderListener listener) {
-        listeners.add(listener);
-    }
-
-    /*
-     * @see IBaseLabelProvider#dispose()
-     */
-    public void dispose() {
-        listeners = new HashSet();
-    }
-
-    /*
-     * @see IBaseLabelProvider#isLabelProperty(Object, String)
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /*
-     * @see IBaseLabelProvider#removeListener(ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-        listeners.remove(listener);
-    }
-
-    /**
-     * Refresh the listeners to update the decorators for 
-     * element.
-     */
-
-    public void refreshListeners(Object element) {
-        Iterator iterator = listeners.iterator();
-        while (iterator.hasNext()) {
-            LabelProviderChangedEvent event = new LabelProviderChangedEvent(
-                    this, element);
-            ((ILabelProviderListener) iterator.next())
-                    .labelProviderChanged(event);
-        }
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#getOverlay(java.lang.Object)
-     */
-    public ImageDescriptor getOverlay(Object element) {
-        Assert.isTrue(element instanceof IResource);
-        if (descriptor == null) {
-            URL source = TestPlugin.getDefault().getDescriptor()
-                    .getInstallURL();
-            try {
-                descriptor = ImageDescriptor.createFromURL(new URL(source,
-                        "icons/binary_co.gif"));
-            } catch (MalformedURLException exception) {
-                return null;
-            }
-        }
-        return descriptor;
-
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
-     */
-    public void decorate(Object element, IDecoration decoration) {
-        decoration.addOverlay(getOverlay(element), 17);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecoratorTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecoratorTestCase.java
deleted file mode 100644
index 3299b78..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/BadIndexDecoratorTestCase.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.tests.decorators;
-
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecoratorDefinition;
-
-/**
- * @since 3.2
- *
- */
-public class BadIndexDecoratorTestCase extends DecoratorEnablementTestCase {
-	
-	 /**
-	 * @param testName
-	 */
-	public BadIndexDecoratorTestCase(String testName) {
-		super(testName);
-	}
-
-	/**
-     * Sets up the hierarchy.
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        createTestFile();
-        showNav();
-
-        WorkbenchPlugin.getDefault().getDecoratorManager().addListener(this);
-
-        DecoratorDefinition[] definitions = WorkbenchPlugin.getDefault()
-                .getDecoratorManager().getAllDecoratorDefinitions();
-        for (int i = 0; i < definitions.length; i++) {
-            if (definitions[i].getId().equals(
-                    "org.eclipse.ui.tests.decorators.badIndexDecorator"))
-                definition = definitions[i];
-        }
-    }
-    
-    /**
-     * Turn off an on the bad index decorator without
-     * generating an exception.
-     */
-    public void testNoException() {
-
-        updated = false;
-        getDecoratorManager().clearCaches();
-        definition.setEnabled(true);
-        getDecoratorManager().updateForEnablementChange();
-        definition.setEnabled(false);
-        getDecoratorManager().updateForEnablementChange();
-        updated = false;
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorAdaptableTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorAdaptableTests.java
deleted file mode 100644
index 866a776..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorAdaptableTests.java
+++ /dev/null
@@ -1,183 +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.ui.tests.decorators;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecorationResult;
-import org.eclipse.ui.internal.decorators.DecoratorManager;
-import org.eclipse.ui.internal.decorators.LightweightDecoratorManager;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses.ICommon;
-
-public class DecoratorAdaptableTests extends UITestCase {
-
-    public DecoratorAdaptableTests(String testName) {
-        super(testName);
-    }
-
-    private DecoratorManager getDecoratorManager() {
-        return WorkbenchPlugin.getDefault().getDecoratorManager();
-    }
-    
-    private String getDecorationTextFor(Object object) {
-        DecoratorManager dm = getDecoratorManager();
-        LightweightDecoratorManager ldm = dm.getLightweightManager();
-        DecorationResult result = ldm.getDecorationResult(object);
-        return result.decorateWithText("Default label");
-    }
-    
-    private void assertDecorated(String testSubName, String[] expectedSuffixes, Object[] elements, Class adaptedClass, boolean shouldHaveMatches) throws CoreException {
-        for (int i = 0; i < elements.length; i++) {
-            Object object = elements[i];
-            String text = getDecorationTextFor(object);
-            boolean allMatchesFound = true;
-            for (int j = 0; j < expectedSuffixes.length; j++) {
-                String suffix = expectedSuffixes[j];
-                if (text.indexOf(suffix) == -1) {
-                    allMatchesFound = false;
-                }
-            }
-            assertTrue("Adaptable test " + testSubName + " has failed for object " + object.toString(), allMatchesFound == shouldHaveMatches);
-        }
-        
-    }
-
-    protected void doSetUp() throws Exception {
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestAdaptableDecoratorContributor.ID, true);
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestUnadaptableDecoratorContributor.ID, true);
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestResourceDecoratorContributor.ID, true);
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestResourceMappingDecoratorContributor.ID, true);
-        super.doSetUp();
-    }
-    
-    protected void doTearDown() throws Exception {
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestAdaptableDecoratorContributor.ID, false);
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestUnadaptableDecoratorContributor.ID, false);
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestResourceDecoratorContributor.ID, false);
-        PlatformUI.getWorkbench().getDecoratorManager().setEnabled(TestResourceMappingDecoratorContributor.ID, false);
-        super.doTearDown();
-    }
-    
-    /**
-     * This tests adaptable contributions that are not IResource.
-     * 
-     * @since 3.1
-     */
-    public final void testAdaptables() throws CoreException {
-        // Assert that decorators contributed to ICommon are applied to the given object
-        assertDecorated("1", 
-                new String[] {TestAdaptableDecoratorContributor.SUFFIX}, 
-                new Object[] {
-                        new ObjectContributionClasses.Common(), 
-                        new ObjectContributionClasses.C(), 
-                        new ObjectContributionClasses.B(),
-                        new ObjectContributionClasses.A()
-                },
-                ICommon.class,
-                true
-            );
-        // Assert that decorators contributed to ICommon are not applied to the given object
-        assertDecorated("2", 
-                new String[] {TestAdaptableDecoratorContributor.SUFFIX}, 
-                new Object[] { 
-                        new Object()                
-                },
-                ICommon.class,
-                false
-            );
-    }
-    
-    /**
-     * Test non-adaptable contributions
-     * 
-     * @since 3.1
-     */
-    public final void testNonAdaptableContributions() throws CoreException {
-        assertDecorated("1",
-                new String[] {TestUnadaptableDecoratorContributor.SUFFIX}, 
-                new Object[] {
-                        new ObjectContributionClasses.A(),
-                        new ObjectContributionClasses.B()},
-                ICommon.class,
-                false
-            );
-        assertDecorated("2",
-                new String[] {TestUnadaptableDecoratorContributor.SUFFIX}, 
-                new Object[] {
-                        new ObjectContributionClasses.D(),
-                        new ObjectContributionClasses.C(),
-                        new ObjectContributionClasses.Common()},
-                ICommon.class,
-                true
-            );
-    }
-    
-    /**
-     * This tests backwards compatibility support for adaptable IResource objectContributions. This
-     * allows IResource adaptable contributions without an adapter factory and using
-     * the IContributorResourceAdapter factory. In addition, test the ResourceMapping adaptations.
-     * 
-     * @since 3.1
-     */
-    public final void testContributorResourceAdapter() throws CoreException {
-        
-        final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        final IProject testProject = workspace.getRoot().getProject(ObjectContributionClasses.PROJECT_NAME);
-        if(! testProject.exists()) {
-            testProject.create(null);
-        }
-        if(! testProject.isOpen()) {
-            testProject.open(null);
-        }
-        
-        assertDecorated("1",
-                new String[] {"IResource.1"}, 
-                new Object[] {
-                    new ObjectContributionClasses.CResource(), 
-                    new ObjectContributionClasses.CFile()},
-                IResource.class,
-                true
-            );
-
-        assertDecorated("2", 
-                new String[] {"ResourceMapping.1"}, 
-                new Object[] {
-                        new ObjectContributionClasses.CFile(), 
-                        new ObjectContributionClasses.CResource()},
-                ResourceMapping.class,
-                true
-            );
-        assertDecorated("3", 
-                new String[] {"ResourceMapping.1", "IResource.1"}, 
-                new Object[] {
-                    new ObjectContributionClasses.ModelElement()},
-                ResourceMapping.class,
-                true
-            );
-        // Ensure that the case where an object uses a contribution adapter that doesn't handle mappings
-        // will still show the menus for resource mappings
-        assertDecorated("4", 
-                new String[] {"ResourceMapping.1", "IResource.1"}, 
-                new Object[] {
-                    new ObjectContributionClasses.CResourceOnly()},
-                ResourceMapping.class,
-                true
-            );
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorCacheTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorCacheTest.java
deleted file mode 100644
index a7603ae..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorCacheTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.decorators;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-
-/**
- * @since 3.4
- * 
- */
-public class DecoratorCacheTest extends AbstractNavigatorTest {
-
-	protected DecoratingLabelProvider dlp;
-
-	public DecoratorCacheTest(String name) {
-		super(name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.tests.viewers.ViewerTestCase#createViewer(org.eclipse.swt.widgets.Composite)
-	 */
-	protected StructuredViewer createViewer(Composite parent) {
-		dlp = new DecoratingLabelProvider(new LabelProvider(), PlatformUI
-				.getWorkbench().getDecoratorManager());
-
-		TreeViewer v = new TreeViewer(parent);
-		v.setContentProvider(new TestTreeContentProvider());
-		v.setLabelProvider(dlp);
-		return v;
-
-	}
-
-	public void testDecoratorCacheIsDisposed() {
-
-		Display fDisplay = Display.getCurrent();
-		if (fDisplay == null) {
-			fDisplay = new Display();
-		}
-		Shell fShell = new Shell(fDisplay, SWT.SHELL_TRIM);
-		fShell.setSize(500, 500);
-		fShell.setLayout(new FillLayout());
-		StructuredViewer fViewer = createViewer(fShell);
-		fViewer.setUseHashlookup(true);
-
-		try {
-			createTestFile();
-		} catch (CoreException e) {
-			fail(e.getLocalizedMessage(), e);
-		}
-		fViewer.setInput(testFile);
-		fShell.open();
-
-		dlp.dispose();
-		assertTrue("The resource manager exists", dlp.getDecorationContext()
-				.getProperty("RESOURCE_MANAGER") == null);
-		fShell.close();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorEnablementTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorEnablementTestCase.java
deleted file mode 100644
index 4832c3f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorEnablementTestCase.java
+++ /dev/null
@@ -1,96 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecoratorDefinition;
-import org.eclipse.ui.internal.decorators.DecoratorManager;
-import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-
-/**
- * @version 	1.0
- */
-public abstract class DecoratorEnablementTestCase extends AbstractNavigatorTest
-        implements ILabelProviderListener {
-
-    protected DecoratorDefinition definition;
-
-    protected boolean updated = false;
-
-    /**
-     * Constructor for DecoratorTestCase.
-     * @param testName
-     */
-    public DecoratorEnablementTestCase(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Sets up the hierarchy.
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        createTestFile();
-        showNav();
-
-        WorkbenchPlugin.getDefault().getDecoratorManager().addListener(this);
-
-        DecoratorDefinition[] definitions = WorkbenchPlugin.getDefault()
-                .getDecoratorManager().getAllDecoratorDefinitions();
-        for (int i = 0; i < definitions.length; i++) {
-            if (definitions[i].getId().equals(
-                    "org.eclipse.ui.tests.decorators.lightweightdecorator"))
-                definition = definitions[i];
-        }
-    }
-
-    protected DecoratorManager getDecoratorManager() {
-        return WorkbenchPlugin.getDefault().getDecoratorManager();
-    }
-
-    /**
-     * Remove the listener.
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        getDecoratorManager().removeListener(this);
-    }
-
-
-    /**
-     * Test enabling the contributor
-     */
-    public void testEnableDecorator()  {
-        getDecoratorManager().clearCaches();
-        definition.setEnabled(true);
-        getDecoratorManager().updateForEnablementChange();
-
-    }
-
-    /**
-     * Test disabling the contributor
-     */
-    public void testDisableDecorator() {
-        getDecoratorManager().clearCaches();
-        definition.setEnabled(false);
-        getDecoratorManager().updateForEnablementChange();
-    }
-
-    /*
-     * @see ILabelProviderListener#labelProviderChanged(LabelProviderChangedEvent)
-     */
-    public void labelProviderChanged(LabelProviderChangedEvent event) {
-        updated = true;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTest.java
deleted file mode 100644
index 28fde7e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTest.java
+++ /dev/null
@@ -1,68 +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.tests.decorators;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * The DecoratorTableTest is the test for decorating tables.
- */
-public class DecoratorTableTest extends DecoratorViewerTest {
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 */
-	public DecoratorTableTest(String testName) {
-		super(testName);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#backgroundCheck(org.eclipse.ui.part.ViewPart)
-	 */
-	protected void backgroundCheck(IViewPart view) {
-		TableItem first = ((DecoratorTableView) view).viewer.getTable().getItem(0);
-		Assert.isTrue(first.getBackground().getRGB()
-				.equals(BackgroundColorDecorator.color.getRGB()));
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#foregroundCheck(org.eclipse.ui.part.ViewPart)
-	 */
-	protected void foregroundCheck(IViewPart view) {
-		TableItem first = ((DecoratorTableView) view).viewer.getTable().getItem(0);
-		Assert.isTrue(first.getForeground().getRGB()
-				.equals(ForegroundColorDecorator.color.getRGB()));
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#openView(org.eclipse.ui.IWorkbenchPage)
-	 */
-	protected IViewPart openView(IWorkbenchPage page) throws PartInitException {
-		return page.showView("org.eclipse.ui.tests.decorator.TableViewTest");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#fontCheck(org.eclipse.ui.part.ViewPart)
-	 */
-	protected void fontCheck(IViewPart view) {
-		TableItem first = ((DecoratorTableView) view).viewer.getTable().getItem(0);
-		Assert.isTrue(first.getFont().getFontData()[0].equals(FontDecorator.font.getFontData()[0]));
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeTest.java
deleted file mode 100644
index 0ca4209..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeTest.java
+++ /dev/null
@@ -1,69 +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.tests.decorators;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.swt.custom.TableTreeItem;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * The DecoratorTableTreeTest is the test for table 
- * trees.
- */
-public class DecoratorTableTreeTest extends DecoratorViewerTest {
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 */
-	public DecoratorTableTreeTest(String testName) {
-		super(testName);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#backgroundCheck(org.eclipse.ui.IViewPart)
-	 */
-	protected void backgroundCheck(IViewPart view) {
-		TableTreeItem first = ((DecoratorTableTreeView) view).viewer.getTableTree().getItems()[0];
-		Assert.isTrue(first.getBackground().getRGB()
-				.equals(BackgroundColorDecorator.color.getRGB()));
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#foregroundCheck(org.eclipse.ui.IViewPart)
-	 */
-	protected void foregroundCheck(IViewPart view) {
-		TableTreeItem first = ((DecoratorTableTreeView) view).viewer.getTableTree().getItems()[0];
-		Assert.isTrue(first.getForeground().getRGB()
-				.equals(ForegroundColorDecorator.color.getRGB()));
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#openView(org.eclipse.ui.IWorkbenchPage)
-	 */
-	protected IViewPart openView(IWorkbenchPage page) throws PartInitException {
-		return page.showView("org.eclipse.ui.tests.decorator.TableTreeTest");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#fontCheck(org.eclipse.ui.IViewPart)
-	 */
-	protected void fontCheck(IViewPart view) {
-		TableTreeItem first = ((DecoratorTableTreeView) view).viewer.getTableTree().getItems()[0];
-		Assert.isTrue(first.getFont().getFontData()[0]
-				.equals(FontDecorator.font.getFontData()[0]));
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeView.java
deleted file mode 100644
index 05c7897..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableTreeView.java
+++ /dev/null
@@ -1,58 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.TableTreeViewer;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The DecoratorTableTreeView is the view that tests decorators
- * for table trees.
- */
-public class DecoratorTableTreeView extends DecoratorTestPart {
-	
-	TableTreeViewer viewer;
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public DecoratorTableTreeView() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableTreeViewer(parent);
-
-		viewer.setLabelProvider(getLabelProvider());
-
-		viewer.setContentProvider(new TestTreeContentProvider());
-		viewer.setInput(this);
-
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL
-				| GridData.FILL_BOTH);
-		
-		viewer.getControl().setLayoutData(data);
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		// XXX Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableView.java
deleted file mode 100644
index 2feafab..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTableView.java
+++ /dev/null
@@ -1,63 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The DecoratorTableView is a view that tests the decorator support for tables.
- */
-public class DecoratorTableView extends DecoratorTestPart {
-
-	TableViewer viewer;
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public DecoratorTableView() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent);
-
-		viewer.setLabelProvider(getLabelProvider());
-
-		viewer.setContentProvider(new TestTableContentProvider());
-		viewer.setInput(this);
-
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL
-				| GridData.GRAB_VERTICAL | GridData.FILL_BOTH);
-
-		viewer.getControl().setLayoutData(data);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		// XXX Auto-generated method stub
-
-	}
-
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestCase.java
deleted file mode 100644
index 4e42e9f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestCase.java
+++ /dev/null
@@ -1,111 +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.ui.tests.decorators;
-
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecoratorDefinition;
-import org.eclipse.ui.internal.decorators.DecoratorManager;
-import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-
-/**
- * @version 1.0
- */
-public class DecoratorTestCase extends AbstractNavigatorTest implements
-		ILabelProviderListener {
-
-	private DecoratorDefinition definition;
-
-	private boolean updated = false;
-
-	/**
-	 * Constructor for DecoratorTestCase.
-	 * 
-	 * @param testName
-	 */
-	public DecoratorTestCase(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Sets up the hierarchy.
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		createTestFile();
-		showNav();
-
-		WorkbenchPlugin.getDefault().getDecoratorManager().addListener(this);
-
-		DecoratorDefinition[] definitions = WorkbenchPlugin.getDefault()
-				.getDecoratorManager().getAllDecoratorDefinitions();
-		for (int i = 0; i < definitions.length; i++) {
-			if (definitions[i].getId().equals(
-					"org.eclipse.ui.tests.adaptable.decorator"))
-				definition = definitions[i];
-		}
-	}
-
-	private DecoratorManager getDecoratorManager() {
-		return WorkbenchPlugin.getDefault().getDecoratorManager();
-	}
-
-	/**
-	 * Remove the listener.
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		getDecoratorManager().removeListener(this);
-	}
-
-	/**
-	 * Test enabling the contributor
-	 */
-	public void testEnableDecorator() {
-		getDecoratorManager().clearCaches();
-		definition.setEnabled(true);
-		getDecoratorManager().updateForEnablementChange();
-
-	}
-
-	/**
-	 * Test disabling the contributor
-	 */
-	public void testDisableDecorator() {
-		getDecoratorManager().clearCaches();
-		definition.setEnabled(false);
-		getDecoratorManager().updateForEnablementChange();
-	}
-
-	/**
-	 * Refresh the test decorator.
-	 */
-	public void testRefreshContributor() {
-
-		updated = false;
-		getDecoratorManager().clearCaches();
-		definition.setEnabled(true);
-		getDecoratorManager().updateForEnablementChange();
-
-		assertTrue("Got an update", updated);
-		updated = false;
-
-	}
-
-	/*
-	 * @see ILabelProviderListener#labelProviderChanged(LabelProviderChangedEvent)
-	 */
-	public void labelProviderChanged(LabelProviderChangedEvent event) {
-		updated = true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestPart.java
deleted file mode 100644
index c1b09d4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTestPart.java
+++ /dev/null
@@ -1,94 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IDecoratorManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * The DecoratorTestPart is the abstract superclass of the ViewParts that are
- * used for decorator tests.
- * 
- */
-public abstract class DecoratorTestPart extends ViewPart {
-
-	private static final int DELAY_TIME = 2000;// Wait 2 seconds
-
-	public boolean waitingForDecoration = true;
-
-	private long endTime;
-
-	private ILabelProviderListener listener;
-
-	public DecoratorTestPart() {
-		super();
-	}
-
-	/**
-	 * Get the label provider for the receiver.
-	 * 
-	 * @return
-	 */
-	protected DecoratingLabelProvider getLabelProvider() {
-
-		IDecoratorManager manager = PlatformUI.getWorkbench()
-				.getDecoratorManager();
-		manager.addListener(getDecoratorManagerListener());
-		return new DecoratingLabelProvider(new TestLabelProvider(), manager);
-
-	}
-
-	/**
-	 * Get the listener for the suite.
-	 * 
-	 * @return
-	 */
-	private ILabelProviderListener getDecoratorManagerListener() {
-		listener = new ILabelProviderListener() {
-
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.viewers.ILabelProviderListener#labelProviderChanged(org.eclipse.jface.viewers.LabelProviderChangedEvent)
-			 */
-			public void labelProviderChanged(LabelProviderChangedEvent event) {
-				// Reset the end time each time we get an update
-				endTime = System.currentTimeMillis() + DELAY_TIME;
-
-			}
-		};
-
-		return listener;
-	}
-
-	public void readAndDispatchForUpdates() {
-		while (System.currentTimeMillis() < endTime)
-			Display.getCurrent().readAndDispatch();
-
-	}
-
-	public void setUpForDecorators() {
-		endTime = System.currentTimeMillis() + DELAY_TIME;
-
-	}
-
-	public void dispose() {
-		PlatformUI.getWorkbench().getDecoratorManager()
-				.removeListener(listener);
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeTest.java
deleted file mode 100644
index 1532b90..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeTest.java
+++ /dev/null
@@ -1,75 +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.tests.decorators;
-
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-
-/**
- * The DecoratorTreeTest tests the font and color support on 
- * tree viewers.
- */
-public class DecoratorTreeTest extends DecoratorViewerTest {
-
-	/**
-	 * @param testName
-	 */
-	public DecoratorTreeTest(String testName) {
-		super(testName);
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		createTestFile();
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#backgroundCheck(org.eclipse.ui.part.ViewPart)
-	 */
-	protected void backgroundCheck(IViewPart view) {
-		TreeItem first = ((DecoratorTreeView) view).viewer.getTree().getItems()[0];
-		assertEquals(BackgroundColorDecorator.color.getRGB(), first.getBackground().getRGB());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#foregroundCheck(org.eclipse.ui.part.ViewPart)
-	 */
-	protected void foregroundCheck(IViewPart view) {
-
-		TreeItem first = ((DecoratorTreeView) view).viewer.getTree().getItems()[0];
-		assertEquals(ForegroundColorDecorator.color.getRGB(), first.getForeground().getRGB());
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#openView(org.eclipse.ui.IWorkbenchPage)
-	 */
-	protected IViewPart openView(IWorkbenchPage page) throws PartInitException {
-
-		return page.showView("org.eclipse.ui.tests.decorators.TreeViewTest");
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.decorators.DecoratorViewerTest#fontCheck(org.eclipse.ui.part.ViewPart)
-	 */
-	protected void fontCheck(IViewPart view) {
-		TreeItem first = ((DecoratorTreeView) view).viewer.getTree().getItems()[0];
-		assertEquals(FontDecorator.font.getFontData()[0], first.getFont().getFontData()[0]);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeView.java
deleted file mode 100644
index 32cb8fd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorTreeView.java
+++ /dev/null
@@ -1,68 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * The DecoratorTreeView is a TreeView that tests the 
- * font and color decorations.
- */
-public class DecoratorTreeView extends DecoratorTestPart {
-	
-	TreeViewer viewer;
-
-	/**
-	 * 
-	 */
-	public DecoratorTreeView() {
-		super();
-		// XXX Auto-generated constructor stub
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		 viewer = new TreeViewer(parent){
-		 	/* (non-Javadoc)
-			 * @see org.eclipse.jface.viewers.AbstractTreeViewer#labelProviderChanged()
-			 */
-			protected void labelProviderChanged() {
-				super.labelProviderChanged();
-			}
-		 };
-
-		viewer.setLabelProvider(getLabelProvider());
-
-		viewer.setContentProvider(new TestTreeContentProvider());
-		viewer.setInput(this);
-
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL
-				| GridData.FILL_BOTH);
-		
-		viewer.getControl().setLayoutData(data);
-
-	}
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		// XXX Auto-generated method stub
-
-	}
-
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorViewerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorViewerTest.java
deleted file mode 100644
index 560edb4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorViewerTest.java
+++ /dev/null
@@ -1,204 +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.tests.decorators;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.IDecoratorManager;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecoratorManager;
-import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-
-/**
- * DecoratorViewerTest is the abstract class of the tests for the viewers.
- */
-public abstract class DecoratorViewerTest extends AbstractNavigatorTest {
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public DecoratorViewerTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		createTestFile();
-		ForegroundColorDecorator.setUpColor();
-		BackgroundColorDecorator.setUpColor();
-		FontDecorator.setUpFont();
-	}
-
-	/**
-	 * Test the background on the viewer.
-	 * 
-	 * @throws PartInitException
-	 * @throws CoreException
-	 * @throws InterruptedException
-	 */
-	public void testBackground() throws PartInitException, CoreException,
-			InterruptedException {
-
-		BackgroundColorDecorator.setUpColor();
-
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage page = window.getActivePage();
-		Assert.isNotNull(page, "No active page");
-
-		final IViewPart view = openView(page);
-		((DecoratorTestPart) view).setUpForDecorators();
-		
-
-		IDecoratorManager manager = WorkbenchPlugin.getDefault()
-				.getDecoratorManager();
-		manager.setEnabled(BackgroundColorDecorator.ID, true);
-		
-		Platform.getJobManager().join(DecoratorManager.FAMILY_DECORATE, null);
-
-		dispatchDuringUpdates((DecoratorTestPart) view);
-		backgroundCheck(view);
-		manager.setEnabled(BackgroundColorDecorator.ID, false);
-
-	}
-
-	/**
-	 * Check the background colors in the view
-	 * 
-	 * @param view
-	 */
-	protected abstract void backgroundCheck(IViewPart view);
-
-	/**
-	 * Test the foreground on the viewer.
-	 * 
-	 * @throws PartInitException
-	 * @throws CoreException
-	 * @throws InterruptedException
-	 */
-	public void testForeground() throws PartInitException, CoreException,
-			InterruptedException {
-
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage page = window.getActivePage();
-		Assert.isNotNull(page, "No active page");
-
-		final IViewPart view = openView(page);
-
-		((DecoratorTestPart) view).setUpForDecorators();
-		
-
-		IDecoratorManager manager = WorkbenchPlugin.getDefault()
-				.getDecoratorManager();
-		manager.setEnabled(ForegroundColorDecorator.ID, true);
-		
-		Platform.getJobManager().join(DecoratorManager.FAMILY_DECORATE, null);
-		dispatchDuringUpdates((DecoratorTestPart) view);
-
-		foregroundCheck(view);
-		manager.setEnabled(ForegroundColorDecorator.ID, false);
-
-	}
-
-	/**
-	 * Read and dispatch while updates are occuring
-	 * 
-	 */
-	private void dispatchDuringUpdates(DecoratorTestPart view) {
-		view.readAndDispatchForUpdates();
-
-	}
-
-	/**
-	 * Check the foreground colors.
-	 * 
-	 * @param view
-	 */
-	protected abstract void foregroundCheck(IViewPart view);
-
-	/**
-	 * @param page
-	 * @return
-	 * @throws PartInitException
-	 */
-	protected abstract IViewPart openView(IWorkbenchPage page)
-			throws PartInitException;
-
-	/**
-	 * Test the font on the viewer.
-	 * 
-	 * @throws PartInitException
-	 * @throws CoreException
-	 * @throws InterruptedException
-	 */
-	public void testFont() throws PartInitException, CoreException,
-			InterruptedException {
-
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage page = window.getActivePage();
-		Assert.isNotNull(page, "No active page");
-
-		
-		final IViewPart view = openView(page);
-		((DecoratorTestPart) view).setUpForDecorators();
-		
-
-		IDecoratorManager manager = WorkbenchPlugin.getDefault()
-				.getDecoratorManager();
-		manager.setEnabled(FontDecorator.ID, true);
-		
-		Platform.getJobManager().join(DecoratorManager.FAMILY_DECORATE, null);
-
-		dispatchDuringUpdates((DecoratorTestPart) view);
-		fontCheck(view);
-		
-		manager.setEnabled(FontDecorator.ID, false);
-
-	}
-
-	/**
-	 * Check the fonts in the view
-	 * 
-	 * @param view
-	 */
-	protected abstract void fontCheck(IViewPart view);
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.navigator.AbstractNavigatorTest#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-
-		super.doTearDown();
-		IDecoratorManager manager = WorkbenchPlugin.getDefault()
-				.getDecoratorManager();
-		manager.setEnabled(ForegroundColorDecorator.ID, false);
-		manager.setEnabled(BackgroundColorDecorator.ID, false);
-		manager.setEnabled(FontDecorator.ID, false);
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorsTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorsTestSuite.java
deleted file mode 100644
index 6a969cc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/DecoratorsTestSuite.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.decorators;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class DecoratorsTestSuite extends TestSuite {
-
-	/**
-	 * Returns the suite.  This is required to
-	 * use the JUnit Launcher.
-	 */
-	public static Test suite() {
-		return new DecoratorsTestSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public DecoratorsTestSuite() {
-		addTest(new TestSuite(ExceptionDecoratorTestCase.class));
-		addTest(new TestSuite(DecoratorTestCase.class));
-		addTest(new TestSuite(LightweightDecoratorTestCase.class));
-		addTest(new TestSuite(BadIndexDecoratorTestCase.class));
-//		addTest(new TestSuite(DecoratorTreeTest.class));
-//		addTest(new TestSuite(DecoratorTableTest.class));
-//		addTest(new TestSuite(DecoratorTableTreeTest.class));
-		addTest(new TestSuite(DecoratorAdaptableTests.class));
-		addTest(new TestSuite(DecoratorCacheTest.class));
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ExceptionDecoratorTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ExceptionDecoratorTestCase.java
deleted file mode 100644
index 03174d5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ExceptionDecoratorTestCase.java
+++ /dev/null
@@ -1,94 +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.tests.decorators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecoratorDefinition;
-import org.eclipse.ui.internal.decorators.DecoratorManager;
-
-/**
- * @version 	1.0
- */
-public class ExceptionDecoratorTestCase extends DecoratorEnablementTestCase
-        implements ILabelProviderListener {
-    private Collection problemDecorators = new ArrayList();
-
-    private DecoratorDefinition light;
-
-    /**
-     * Constructor for DecoratorTestCase.
-     * @param testName
-     */
-    public ExceptionDecoratorTestCase(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Sets up the hierarchy.
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        //reset the static fields so that the decorators will fail
-        HeavyNullImageDecorator.fail = true;
-        HeavyNullTextDecorator.fail = true;
-        NullImageDecorator.fail = true;
-        DecoratorDefinition[] definitions = WorkbenchPlugin.getDefault()
-                .getDecoratorManager().getAllDecoratorDefinitions();
-        for (int i = 0; i < definitions.length; i++) {
-            String id = definitions[i].getId();
-            if (id.equals("org.eclipse.ui.tests.heavyNullImageDecorator")
-                    || id.equals("org.eclipse.ui.tests.heavyNullTextDecorator")) {
-                definitions[i].setEnabled(true);
-                problemDecorators.add(definitions[i]);
-            }
-
-            //Do not cache the light one - the disabling issues
-            //still need to be worked out.
-            if (id.equals("org.eclipse.ui.tests.lightNullImageDecorator")) {
-                definitions[i].setEnabled(true);
-                light = definitions[i];
-            }
-        }
-    } /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.navigator.LightweightDecoratorTestCase#doTearDown()
-     */
-
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-
-        //Need to wait for decoration to end to allow for all 
-        //errors to occur
-        try {
-            Platform.getJobManager().join(DecoratorManager.FAMILY_DECORATE,
-                    null);
-        } catch (OperationCanceledException e) {
-        } catch (InterruptedException e) {
-        }
-
-        //Be sure that the decorators were all disabled on errors.
-        Iterator problemIterator = problemDecorators.iterator();
-        while (problemIterator.hasNext()) {
-            DecoratorDefinition next = (DecoratorDefinition) problemIterator
-                    .next();
-            assertFalse("Enabled " + next.getName(), next.isEnabled());
-        }
-
-        //Turnoff the lightweight one so as not to clutter the methods.
-        light.setEnabled(false);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/FontDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/FontDecorator.java
deleted file mode 100644
index 3451324..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/FontDecorator.java
+++ /dev/null
@@ -1,102 +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.tests.decorators;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * The FontDecorator is for testing the font enablement.
- */
-public class FontDecorator implements ILightweightLabelDecorator {
-
-	public static final String ID = "org.eclipse.ui.tests.fontDecorator";
-
-	public static Font font;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object,
-	 *      org.eclipse.jface.viewers.IDecoration)
-	 */
-	public void decorate(Object element, IDecoration decoration) {
-		
-		if(font == null){
-			PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see java.lang.Runnable#run()
-				 */
-				public void run() {
-					setUpFont();
-
-				}
-			});
-
-		}
-		
-		decoration.setFont(font);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
-	 *      java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-
-	}
-
-	/**
-	 * Setup the font used by this decorator.
-	 */
-	public static void setUpFont() {
-		font = JFaceResources.getFont(JFaceResources.HEADER_FONT);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ForegroundColorDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ForegroundColorDecorator.java
deleted file mode 100644
index dd656a3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/ForegroundColorDecorator.java
+++ /dev/null
@@ -1,102 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * The ForegroundColorDecorator is for testing the foreground enablement.
- */
-public class ForegroundColorDecorator implements ILightweightLabelDecorator {
-
-	
-	public static final String ID = "org.eclipse.ui.tests.foregroundDecorator";
-	
-	public static Color color;
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object,
-	 *      org.eclipse.jface.viewers.IDecoration)
-	 */
-	public void decorate(Object element, IDecoration decoration) {
-
-		if(color == null){
-			PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see java.lang.Runnable#run()
-				 */
-				public void run() {
-					setUpColor();
-
-				}
-			});
-
-		}
-		decoration.setForegroundColor(color);
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
-	 *      java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-		// TODO Auto-generated method stub
-
-	}
-	
-	public static void setUpColor(){
-		color = PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_DARK_YELLOW);
-	}
-
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullImageDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullImageDecorator.java
deleted file mode 100644
index 78231d0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullImageDecorator.java
+++ /dev/null
@@ -1,76 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.internal.ForcedException;
-
-/**
- * @see ILabelDecorator
- */
-public class HeavyNullImageDecorator implements ILabelDecorator {
-
-    /**
-     * Whether we should fail with an exception
-     */
-    public static boolean fail = false;
-
-    /**
-     *
-     */
-    public HeavyNullImageDecorator() {
-    }
-
-    /**
-     * @see ILabelDecorator#addListener
-     */
-    public void addListener(ILabelProviderListener listener) {
-    }
-
-    /**
-     * @see ILabelDecorator#dispose
-     */
-    public void dispose() {
-    }
-
-    /**
-     * @see ILabelDecorator#isLabelProperty
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /**
-     * @see ILabelDecorator#removeListener
-     */
-    public void removeListener(ILabelProviderListener listener) {
-    }
-
-    /**
-     * @see ILabelDecorator#decorateImage
-     */
-    public Image decorateImage(Image image, Object element) {
-        if (fail) {
-            fail = false;
-            throw new ForcedException("Heavy image decorator boom");
-        }
-        return null;
-    }
-
-    /**
-     * @see ILabelDecorator#decorateText
-     */
-    public String decorateText(String text, Object element) {
-        return text;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullTextDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullTextDecorator.java
deleted file mode 100644
index 8eabdbc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/HeavyNullTextDecorator.java
+++ /dev/null
@@ -1,76 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.tests.internal.ForcedException;
-
-/**
- * @see ILabelDecorator
- */
-public class HeavyNullTextDecorator implements ILabelDecorator {
-
-    /**
-     * Whether we should fail with an exception
-     */
-    public static boolean fail = false;
-
-    /**
-     *
-     */
-    public HeavyNullTextDecorator() {
-    }
-
-    /**
-     * @see ILabelDecorator#addListener
-     */
-    public void addListener(ILabelProviderListener listener) {
-    }
-
-    /**
-     * @see ILabelDecorator#dispose
-     */
-    public void dispose() {
-    }
-
-    /**
-     * @see ILabelDecorator#isLabelProperty
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /**
-     * @see ILabelDecorator#removeListener
-     */
-    public void removeListener(ILabelProviderListener listener) {
-    }
-
-    /**
-     * @see ILabelDecorator#decorateImage
-     */
-    public Image decorateImage(Image image, Object element) {
-        return image;
-    }
-
-    /**
-     * @see ILabelDecorator#decorateText
-     */
-    public String decorateText(String text, Object element) {
-        if (fail) {
-            fail = false;
-            throw new ForcedException("Heavy text decorator boom");
-        }
-        return null;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/LightweightDecoratorTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/LightweightDecoratorTestCase.java
deleted file mode 100644
index ecb8d51..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/LightweightDecoratorTestCase.java
+++ /dev/null
@@ -1,45 +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.ui.tests.decorators;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-
-/**
- * @version 	1.0
- */
-public class LightweightDecoratorTestCase extends DecoratorEnablementTestCase
-        implements ILabelProviderListener {
-
-    /**
-     * Constructor for DecoratorTestCase.
-     * @param testName
-     */
-    public LightweightDecoratorTestCase(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Refresh the test decorator.
-     */
-    public void testRefreshContributor() throws CoreException {
-
-        updated = false;
-        getDecoratorManager().clearCaches();
-        definition.setEnabled(true);
-        getDecoratorManager().updateForEnablementChange();
-
-        assertTrue("Got an update", updated);
-        updated = false;
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/NullImageDecorator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/NullImageDecorator.java
deleted file mode 100644
index 72aab32..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/NullImageDecorator.java
+++ /dev/null
@@ -1,71 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.ui.tests.internal.ForcedException;
-
-/**
- * @see ILabelDecorator
- */
-public class NullImageDecorator implements ILightweightLabelDecorator {
-    /**
-     * Whether we should fail with an exception
-     */
-    public static boolean fail = false;
-
-    /**
-     *
-     */
-    public NullImageDecorator() {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-     */
-    public void addListener(ILabelProviderListener listener) {
-        // XXX Auto-generated method stub
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
-     */
-    public void decorate(Object element, IDecoration decoration) {
-        if (fail) {
-            fail = false;
-            throw new ForcedException("Lighweight decorator boom");
-        }
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-     */
-    public void dispose() {
-        // XXX Auto-generated method stub
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        // XXX Auto-generated method stub
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-        // XXX Auto-generated method stub
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TableElement.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TableElement.java
deleted file mode 100644
index 87629f7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TableElement.java
+++ /dev/null
@@ -1,27 +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.tests.decorators;
-
-/**
- * The TableElement is the content for tables in the decorator
- * testing.
- */
-public class TableElement extends TestElement{
-
-	int index;
-	
-	public TableElement(int newIndex) {
-		super();
-		index = newIndex;
-		name = "Table Item " + String.valueOf(index);
-		
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestAdaptableDecoratorContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestAdaptableDecoratorContributor.java
deleted file mode 100644
index 3eb501c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestAdaptableDecoratorContributor.java
+++ /dev/null
@@ -1,48 +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.ui.tests.decorators;
-
-import junit.framework.Assert;
-
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses;
-
-/**
- * Decorator for testing adaptability. This class is used to test
- * the adaptable contribution. It can also be subclassed
- * and the expected class and suffix can be customized
- */
-public class TestAdaptableDecoratorContributor extends TestLightweightDecoratorContributor {
-
-    public static final String SUFFIX = "ICommon.1";
-    public static final String ID = "org.eclipse.ui.tests.decorators.generalAdaptabilityOn";
-    
-    private Class clazz;
-    private String suffix;
-
-    public TestAdaptableDecoratorContributor() {
-        setExpectedElementType(ObjectContributionClasses.ICommon.class);
-        setSuffix(SUFFIX);
-    }
-
-    protected void setSuffix(String suffix) {
-        this.suffix = suffix;    
-    }
-
-    protected void setExpectedElementType(Class clazz) {
-        this.clazz = clazz;    
-    }
-    
-    public void decorate(Object element, IDecoration decoration) {
-        Assert.assertTrue(clazz.isInstance(element));
-        decoration.addSuffix(suffix);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestDecoratorContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestDecoratorContributor.java
deleted file mode 100644
index 1a31178..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestDecoratorContributor.java
+++ /dev/null
@@ -1,97 +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.ui.tests.decorators;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.swt.graphics.Image;
-
-public class TestDecoratorContributor implements ILabelDecorator {
-
-    public static TestDecoratorContributor contributor;
-
-    private Set listeners = new HashSet();
-
-    public static String DECORATOR_SUFFIX = "_SUFFIX";
-
-    public TestDecoratorContributor() {
-        contributor = this;
-    }
-
-    /*
-     * @see ILabelDecorator#decorateText(String, Object)
-     */
-    public String decorateText(String text, Object element) {
-        //Check that the element is adapted to IResource
-        Assert.isTrue(element instanceof IResource);
-        return text + DECORATOR_SUFFIX;
-    }
-
-    /*
-     * @see ILabelDecorator#decorateImage(Image, Object)
-     */
-    public Image decorateImage(Image image, Object element) {
-        Assert.isTrue(element instanceof IResource);
-        return image;
-    }
-
-    /*
-     * @see IBaseLabelProvider#addListener(ILabelProviderListener)
-     */
-    public void addListener(ILabelProviderListener listener) {
-        listeners.add(listener);
-    }
-
-    /*
-     * @see IBaseLabelProvider#dispose()
-     */
-    public void dispose() {
-        contributor = null;
-        listeners = new HashSet();
-    }
-
-    /*
-     * @see IBaseLabelProvider#isLabelProperty(Object, String)
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /*
-     * @see IBaseLabelProvider#removeListener(ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-        listeners.remove(listener);
-    }
-
-    /**
-     * Refresh the listeners to update the decorators for 
-     * element.
-     */
-
-    public void refreshListeners(Object element) {
-        Iterator iterator = listeners.iterator();
-        while (iterator.hasNext()) {
-            LabelProviderChangedEvent event = new LabelProviderChangedEvent(
-                    this, element);
-            ((ILabelProviderListener) iterator.next())
-                    .labelProviderChanged(event);
-        }
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestElement.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestElement.java
deleted file mode 100644
index 26fb4c3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestElement.java
+++ /dev/null
@@ -1,21 +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.tests.decorators;
-
-/**
- * The TestElement is the abstract super class for the elements
- * for the table and tree decorator testing.
- */
-public abstract class TestElement {
-	
-	String name;
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLabelProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLabelProvider.java
deleted file mode 100644
index e32ab0d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLabelProvider.java
+++ /dev/null
@@ -1,144 +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.tests.decorators;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.IColorProvider;
-import org.eclipse.jface.viewers.IFontProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.tests.TestPlugin;
-
-/**
- * TestTreeLabelProvider is the lable provider for the tree 
- * decorator test.
- */
-public class TestLabelProvider implements ILabelProvider, IColorProvider, IFontProvider {
-
-	Image image;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		if (image == null) {
-			TestPlugin plugin = TestPlugin.getDefault();
-			image = plugin.getImageDescriptor("anything.gif").createImage();
-		}
-		return image;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		return ((TestElement) element).name;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getBackground(java.lang.Object)
-	 */
-	public Color getBackground(Object element) {
-		
-		int switchNumber = 0;
-		if(element instanceof TreeElement)
-			switchNumber = ((TreeElement) element).level;
-		else
-			switchNumber = ((TableElement) element).index%4;
-		
-		switch (switchNumber) {
-		case 0:
-			return Display.getDefault().getSystemColor(SWT.COLOR_YELLOW);
-		case 1:
-			return Display.getDefault().getSystemColor(SWT.COLOR_GREEN);
-		case 2:
-			return Display.getDefault().getSystemColor(SWT.COLOR_DARK_GREEN);
-		case 3:
-			return Display.getDefault().getSystemColor(SWT.COLOR_BLACK);
-		default:
-			break;
-		}
-		
-		return null;
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IColorProvider#getForeground(java.lang.Object)
-	 */
-	public Color getForeground(Object element) {
-		
-		int switchNumber = 0;
-		if(element instanceof TreeElement)
-			switchNumber = ((TreeElement) element).level;
-		else
-			switchNumber = ((TableElement) element).index%4;
-		
-		
-		switch (switchNumber) {
-		case 0:
-			return Display.getDefault().getSystemColor(SWT.COLOR_DARK_RED);
-		case 1:
-			return Display.getDefault().getSystemColor(SWT.COLOR_RED);
-		case 2:
-			return Display.getDefault().getSystemColor(SWT.COLOR_CYAN);
-		case 3:
-			return Display.getDefault().getSystemColor(SWT.COLOR_YELLOW);
-		default:
-			break;
-		}
-		
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IFontProvider#getFont(java.lang.Object)
-	 */
-	public Font getFont(Object element) {
-		return JFaceResources.getFontRegistry().getItalic(JFaceResources.DEFAULT_FONT);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener listener) {
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-		if (image != null)
-			image.dispose();
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-		
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorContributor.java
deleted file mode 100644
index c0b93c3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorContributor.java
+++ /dev/null
@@ -1,117 +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.tests.decorators;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.ui.tests.TestPlugin;
-
-public class TestLightweightDecoratorContributor implements
-        ILightweightLabelDecorator {
-
-    public static TestLightweightDecoratorContributor contributor;
-
-    private Set listeners = new HashSet();
-
-    public static String DECORATOR_SUFFIX = "_SUFFIX";
-
-    public static String DECORATOR_PREFIX = "PREFIX_";
-
-    private ImageDescriptor descriptor;
-
-    public TestLightweightDecoratorContributor() {
-        contributor = this;
-    }
-
-    /*
-     * @see IBaseLabelProvider#addListener(ILabelProviderListener)
-     */
-    public void addListener(ILabelProviderListener listener) {
-        listeners.add(listener);
-    }
-
-    /*
-     * @see IBaseLabelProvider#dispose()
-     */
-    public void dispose() {
-        contributor = null;
-        listeners = new HashSet();
-    }
-
-    /*
-     * @see IBaseLabelProvider#isLabelProperty(Object, String)
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /*
-     * @see IBaseLabelProvider#removeListener(ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-        listeners.remove(listener);
-    }
-
-    /**
-     * Refresh the listeners to update the decorators for 
-     * element.
-     */
-
-    public void refreshListeners(Object element) {
-        Iterator iterator = listeners.iterator();
-        while (iterator.hasNext()) {
-            LabelProviderChangedEvent event = new LabelProviderChangedEvent(
-                    this, element);
-            ((ILabelProviderListener) iterator.next())
-                    .labelProviderChanged(event);
-        }
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#getOverlay(java.lang.Object)
-     */
-    public ImageDescriptor getOverlay(Object element) {
-        Assert.isTrue(element instanceof IResource);
-        if (descriptor == null) {
-            URL source = TestPlugin.getDefault().getDescriptor()
-                    .getInstallURL();
-            try {
-                descriptor = ImageDescriptor.createFromURL(new URL(source,
-                        "icons/binary_co.gif"));
-            } catch (MalformedURLException exception) {
-                return null;
-            }
-        }
-        return descriptor;
-
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
-     */
-    public void decorate(Object element, IDecoration decoration) {
-        decoration.addOverlay(getOverlay(element));
-        decoration.addPrefix(DECORATOR_PREFIX);
-        decoration.addSuffix(DECORATOR_SUFFIX);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorMultipleQuadrantContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorMultipleQuadrantContributor.java
deleted file mode 100644
index 6c56138..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestLightweightDecoratorMultipleQuadrantContributor.java
+++ /dev/null
@@ -1,120 +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.tests.decorators;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.ui.tests.TestPlugin;
-
-/**
- * This is a contributor that uses the multi quadrant
- * support.
- */
-
-public class TestLightweightDecoratorMultipleQuadrantContributor implements
-        ILightweightLabelDecorator {
-
-    public static TestLightweightDecoratorMultipleQuadrantContributor contributor;
-
-    private Set listeners = new HashSet();
-
-    private ImageDescriptor descriptor;
-
-    public TestLightweightDecoratorMultipleQuadrantContributor() {
-        contributor = this;
-    }
-
-    /*
-     * @see IBaseLabelProvider#addListener(ILabelProviderListener)
-     */
-    public void addListener(ILabelProviderListener listener) {
-        listeners.add(listener);
-    }
-
-    /*
-     * @see IBaseLabelProvider#dispose()
-     */
-    public void dispose() {
-        contributor = null;
-        listeners = new HashSet();
-    }
-
-    /*
-     * @see IBaseLabelProvider#isLabelProperty(Object, String)
-     */
-    public boolean isLabelProperty(Object element, String property) {
-        return false;
-    }
-
-    /*
-     * @see IBaseLabelProvider#removeListener(ILabelProviderListener)
-     */
-    public void removeListener(ILabelProviderListener listener) {
-        listeners.remove(listener);
-    }
-
-    /**
-     * Refresh the listeners to update the decorators for 
-     * element.
-     */
-
-    public void refreshListeners(Object element) {
-        Iterator iterator = listeners.iterator();
-        while (iterator.hasNext()) {
-            LabelProviderChangedEvent event = new LabelProviderChangedEvent(
-                    this, element);
-            ((ILabelProviderListener) iterator.next())
-                    .labelProviderChanged(event);
-        }
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#getOverlay(java.lang.Object)
-     */
-    public ImageDescriptor getOverlay(Object element) {
-        Assert.isTrue(element instanceof IResource);
-        if (descriptor == null) {
-            URL source = TestPlugin.getDefault().getDescriptor()
-                    .getInstallURL();
-            try {
-                descriptor = ImageDescriptor.createFromURL(new URL(source,
-                        "icons/binary_co.gif"));
-            } catch (MalformedURLException exception) {
-                return null;
-            }
-        }
-        return descriptor;
-
-    }
-
-    /**
-     * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
-     */
-    public void decorate(Object element, IDecoration decoration) {
-        decoration.addOverlay(getOverlay(element), IDecoration.BOTTOM_LEFT);
-        decoration.addOverlay(getOverlay(element), IDecoration.BOTTOM_RIGHT);
-        decoration.addOverlay(getOverlay(element), IDecoration.TOP_LEFT);
-        decoration.addOverlay(getOverlay(element), IDecoration.TOP_RIGHT);
-        decoration.addOverlay(getOverlay(element), IDecoration.UNDERLAY);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceDecoratorContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceDecoratorContributor.java
deleted file mode 100644
index 76cc5ca..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceDecoratorContributor.java
+++ /dev/null
@@ -1,22 +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.ui.tests.decorators;
-
-import org.eclipse.core.resources.IResource;
-
-public class TestResourceDecoratorContributor extends TestAdaptableDecoratorContributor {
-    public static final String SUFFIX = "IResource.1";
-    public static final String ID = "org.eclipse.ui.tests.decorators.resourceDescorator";
-    public TestResourceDecoratorContributor() {
-        setExpectedElementType(IResource.class);
-        setSuffix(SUFFIX);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceMappingDecoratorContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceMappingDecoratorContributor.java
deleted file mode 100644
index 714a7e5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestResourceMappingDecoratorContributor.java
+++ /dev/null
@@ -1,23 +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.ui.tests.decorators;
-
-import org.eclipse.core.resources.mapping.ResourceMapping;
-
-public class TestResourceMappingDecoratorContributor extends
-        TestAdaptableDecoratorContributor {
-    public static final String SUFFIX = "ResourceMapping.1";
-    public static final String ID = "org.eclipse.ui.tests.decorators.resourceMappingDescorator";
-    public TestResourceMappingDecoratorContributor() {
-        setExpectedElementType(ResourceMapping.class);
-        setSuffix(SUFFIX);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTableContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTableContentProvider.java
deleted file mode 100644
index 1a418b2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTableContentProvider.java
+++ /dev/null
@@ -1,46 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * The TestTableContentProvider is the content provider for the
- * tabel views in the decorator testing.
- */
-public class TestTableContentProvider implements IStructuredContentProvider {	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		TableElement[] elements = new TableElement[100];
-		
-		for (int i = 0; i < elements.length; i++) {
-			elements[i] = new TableElement(i);			
-		}
-		
-		return elements;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		// Do nothing by default
-
-	}
-	/* (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) {
-		// Do nothing by default
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTreeContentProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTreeContentProvider.java
deleted file mode 100644
index 351425d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestTreeContentProvider.java
+++ /dev/null
@@ -1,73 +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.tests.decorators;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * A content provider with a dummy tree structure.
- */
-public class TestTreeContentProvider implements ITreeContentProvider {
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-	 */
-	public Object[] getChildren(Object parentElement) {
-		TreeElement parent = (TreeElement) parentElement;
-		TreeElement[] children = new TreeElement[10];
-		for (int i = 0; i < 10; i++) {
-			children[i] = new TreeElement(parent, i);
-		}
-		return children;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-	 */
-	public Object getParent(Object element) {
-		return ((TreeElement) element).parent;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-	 */
-	public boolean hasChildren(Object element) {
-		return true;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-		TreeElement root = new TreeElement(null, 0);
-		return new Object[] { root };
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		//No dispose behavior
-
-	}
-
-	/* (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) {
-		
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestUnadaptableDecoratorContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestUnadaptableDecoratorContributor.java
deleted file mode 100644
index 717d93a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TestUnadaptableDecoratorContributor.java
+++ /dev/null
@@ -1,22 +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.ui.tests.decorators;
-
-/**
- * Decorator used to test an unadaptaed contribution
- */
-public class TestUnadaptableDecoratorContributor extends TestAdaptableDecoratorContributor {
-    public static final String SUFFIX = "ICommon.2";
-    public static final String ID = "org.eclipse.ui.tests.decorators.generalAdaptabilityOff";
-    public TestUnadaptableDecoratorContributor() {
-        setSuffix(SUFFIX);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TreeElement.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TreeElement.java
deleted file mode 100644
index bd78771..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/decorators/TreeElement.java
+++ /dev/null
@@ -1,37 +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.tests.decorators;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-/**
- * The TreeElement is the element displayed in the
- * test tree views.
- */
-public class TreeElement extends TestElement {
-	int level;
-
-	TreeElement parent;
-
-	Collection children = new ArrayList(10);
-
-	TreeElement(TreeElement parent, int index) {
-		if (parent == null) {
-			name = "Root";
-			level = 0;
-		} else {
-			level = parent.level + 1;
-			name = "Level" + String.valueOf(level) + " - " + String.valueOf(index);
-			parent.children.add(this);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DataTransferTestStub.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DataTransferTestStub.java
deleted file mode 100644
index b8351d8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DataTransferTestStub.java
+++ /dev/null
@@ -1,72 +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.ui.tests.dialogs;
-
-/**
- * FOR USE BY TESTS ONLY!
- * <p>
- * Stub class that provides access to classes visible to the package
- * <code>org.eclipse.ui.wizards.datatransfer</code>.  For the purpose
- * of testing.
- * </p>
- * @private
- */
-public class DataTransferTestStub {
-    //Prevent instantiation
-    private DataTransferTestStub() {
-    }
-
-    /**
-     * Gives access to an instance of WizardFileSystemResourceExportPage1.
-     * @return IWizardPage an instance of WizardFileSystemResourceExportPage1
-     */
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public static IWizardPage newFileSystemResourceExportPage1(IStructuredSelection selection) {
-     return new WizardFileSystemResourceExportPage1(selection);
-     }
-     */
-    /**
-     * Gives access to an instance of WizardFileSystemResourceImportPage1.
-     * @return IWizardPage an instance of WizardFileSystemResourceImportPage1
-     */
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public static IWizardPage newFileSystemResourceImportPage1(IWorkbench workbench, IStructuredSelection selection) {
-     return new WizardFileSystemResourceImportPage1(workbench, selection);
-     }
-     */
-    /**
-     * Gives access to an instance of WizardZipFileResourceExportPage1.
-     * @return IWizardPage an instance of WizardZipFileResourceExportPage1
-     */
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public static IWizardPage newZipFileResourceExportPage1(IStructuredSelection selection) {
-     return new WizardZipFileResourceExportPage1(selection);
-     }
-     */
-    /**
-     * Gives access to an instance of WizardZipFileResourceImportPage1.
-     * @return IWizardPage an instance of WizardZipFileResourceImportPage1
-     */
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public static IWizardPage newZipFileResourceImportPage1(IStructuredSelection selection) {
-     return new WizardZipFileResourceExportPage1(selection);
-     }
-     */
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogs.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogs.java
deleted file mode 100644
index e7a2bcc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogs.java
+++ /dev/null
@@ -1,43 +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.ui.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.YesNoCancelListSelectionDialog;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.model.AdaptableList;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchPartLabelProvider;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class DeprecatedUIDialogs extends TestCase {
-
-    public DeprecatedUIDialogs(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    public void testSaveAll() {
-        YesNoCancelListSelectionDialog dialog = new YesNoCancelListSelectionDialog(
-                getShell(), new AdaptableList(),
-                new WorkbenchContentProvider(),
-                new WorkbenchPartLabelProvider(), WorkbenchMessages.EditorManager_saveResourcesMessage);
-        dialog.setTitle(WorkbenchMessages.EditorManager_saveResourcesTitle);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogsAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogsAuto.java
deleted file mode 100644
index 6b50e5b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIDialogsAuto.java
+++ /dev/null
@@ -1,43 +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.ui.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.YesNoCancelListSelectionDialog;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.model.AdaptableList;
-import org.eclipse.ui.model.WorkbenchContentProvider;
-import org.eclipse.ui.model.WorkbenchPartLabelProvider;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class DeprecatedUIDialogsAuto extends TestCase {
-
-    public DeprecatedUIDialogsAuto(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    public void testSaveAll() {
-        YesNoCancelListSelectionDialog dialog = new YesNoCancelListSelectionDialog(
-                getShell(), new AdaptableList(),
-                new WorkbenchContentProvider(),
-                new WorkbenchPartLabelProvider(), WorkbenchMessages.EditorManager_saveResourcesMessage);
-        dialog.setTitle(WorkbenchMessages.EditorManager_saveResourcesTitle);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferences.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferences.java
deleted file mode 100644
index 43953fe..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferences.java
+++ /dev/null
@@ -1,180 +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.ui.tests.dialogs;
-
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.PropertyDialog;
-import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager;
-import org.eclipse.ui.internal.dialogs.PropertyPageManager;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class DeprecatedUIPreferences extends TestCase {
-	private IProject _project;
-
-	private static final String PROJECT_NAME = "DummyProject";
-
-	public DeprecatedUIPreferences(String name) {
-		super(name);
-	}
-
-	private Shell getShell() {
-		return DialogCheck.getShell();
-	}
-
-	private IProject getDummyProject() {
-		try {
-			IProject projects[] = ResourcesPlugin.getWorkspace().getRoot()
-					.getProjects();
-			for (int i = 0; i < projects.length; i++) {
-				if (projects[i].getName().equals(PROJECT_NAME)) {
-					projects[i].delete(true, null);
-					break;
-				}
-			}
-			_project = ResourcesPlugin.getWorkspace().getRoot().getProject(
-					PROJECT_NAME);
-			_project.create(null);
-		} catch (CoreException e) {
-			System.out.println(e);
-		}
-		return _project;
-	}
-
-	private PreferenceDialog getPreferenceDialog(String id) {
-		PreferenceDialogWrapper dialog = null;
-		PreferenceManager manager = WorkbenchPlugin.getDefault()
-				.getPreferenceManager();
-		if (manager != null) {
-			dialog = new PreferenceDialogWrapper(getShell(), manager);
-			dialog.create();
-			WorkbenchHelp
-					.setHelp(
-							dialog.getShell(),
-							new Object[] { IWorkbenchHelpContextIds.PREFERENCE_DIALOG });
-
-			for (Iterator iterator = manager.getElements(
-					PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-				IPreferenceNode node = (IPreferenceNode) iterator.next();
-				if (node.getId().equals(id)) {
-					dialog.showPage(node);
-					break;
-				}
-			}
-		}
-		return dialog;
-	}
-
-	private PropertyDialog getPropertyDialog(String id) {
-		PropertyDialogWrapper dialog = null;
-
-		PropertyPageManager manager = new PropertyPageManager();
-		String title = "";
-		String name = "";
-
-		IProject element = getDummyProject();
-		if (element == null) {
-			return null;
-		}
-		// load pages for the selection
-		// fill the manager with contributions from the matching contributors
-		PropertyPageContributorManager.getManager()
-				.contribute(manager, element);
-
-		IWorkbenchAdapter adapter = (IWorkbenchAdapter) element
-				.getAdapter(IWorkbenchAdapter.class);
-		if (adapter != null) {
-			name = adapter.getLabel(element);
-		}
-
-		// testing if there are pages in the manager
-		Iterator pages = manager.getElements(PreferenceManager.PRE_ORDER)
-				.iterator();
-		if (!pages.hasNext()) {
-			return null;
-		}
-		title = NLS.bind(WorkbenchMessages.PropertyDialog_propertyMessage,
-				(new Object[] { name }));
-		dialog = new PropertyDialogWrapper(getShell(), manager,
-				new StructuredSelection(element));
-		dialog.create();
-		dialog.getShell().setText(title);
-		WorkbenchHelp.setHelp(dialog.getShell(),
-				new Object[] { IWorkbenchHelpContextIds.PROPERTY_DIALOG });
-		for (Iterator iterator = manager.getElements(
-				PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-			IPreferenceNode node = (IPreferenceNode) iterator.next();
-			if (node.getId().equals(id)) {
-				dialog.showPage(node);
-				break;
-			}
-
-		}
-		return dialog;
-	}
-
-	public void testWorkbenchPref() {
-		Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Workbench");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-	public void testAppearancePref() {
-		Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Views");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-	public void testDefaultTextEditorPref() {
-		Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.TextEditor");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-	public void testFileEditorsPref() {
-		Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileEditors");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-	public void testLocalHistoryPref() {
-		Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileStates");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-	public void testPerspectivesPref() {
-		Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Perspectives");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-	public void testInfoProp() {
-		Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.info.file");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-	public void testProjectReferencesProp() {
-		Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.project.reference");
-		DialogCheck.assertDialog(dialog, this);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferencesAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferencesAuto.java
deleted file mode 100644
index f9c52e8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIPreferencesAuto.java
+++ /dev/null
@@ -1,149 +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.ui.tests.dialogs;
-
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class DeprecatedUIPreferencesAuto extends TestCase {
-
-    public DeprecatedUIPreferencesAuto(String name) {
-        super(name);
-    }
-
-    protected Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private PreferenceDialog getPreferenceDialog(String id) {
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-            WorkbenchHelp.setHelp(dialog.getShell(),
-                    new Object[] { IWorkbenchHelpContextIds.PREFERENCE_DIALOG });
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node.getId().equals(id)) {
-                    dialog.showPage(node);
-                    break;
-                }
-            }
-        }
-        return dialog;
-    }
-
-    public void testWorkbenchPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Workbench");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testAppearancePref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Views");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testDefaultTextEditorPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.TextEditor");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testFileEditorsPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileEditors");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testLocalHistoryPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileStates");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testPerspectivesPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Perspectives");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    //Only really checking if this opens without an exception
-    public void testFontEditorsPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.tests.dialogs.FontFieldEditorTestPreferencePage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testInfoProp() {
-        /*
-         * Commented out because it generates a failure
-         * of expect and actual width values. Suspect this
-         * is an SWT issue.
-         * 
-         Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.info.file");
-         DialogCheck.assertDialogTexts(dialog, this);
-         */
-    }
-
-    public void testProjectReferencesProp() {
-        /*
-         * Commented out because it generates a failure
-         * of expect and actual width values. Suspect this
-         * is an SWT issue.
-         * 
-         Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.project.reference");
-         DialogCheck.assertDialogTexts(dialog, this);
-         */
-    }
-
-    /**
-     * Test the editors preference page and toggle the
-     * enable state twice to be sure there are no errors.
-     */
-    public void testFieldEditorEnablePref() {
-
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node
-                        .getId()
-                        .equals(
-                                "org.eclipse.ui.tests.dialogs.EnableTestPreferencePage")) {
-                    dialog.showPage(node);
-                    EnableTestPreferencePage page = (EnableTestPreferencePage) dialog
-                            .getPage(node);
-                    page.flipState();
-                    page.flipState();
-                    break;
-                }
-            }
-        }
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizards.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizards.java
deleted file mode 100644
index 57fa5a4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizards.java
+++ /dev/null
@@ -1,274 +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.ui.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.WizardNewProjectReferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.ExportWizard;
-import org.eclipse.ui.internal.dialogs.ImportWizard;
-import org.eclipse.ui.internal.dialogs.NewWizard;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
-
-public class DeprecatedUIWizards extends TestCase {
-    private static final int SIZING_WIZARD_WIDTH = 470;
-
-    private static final int SIZING_WIZARD_HEIGHT = 550;
-
-    private static final int SIZING_WIZARD_WIDTH_2 = 500;
-
-    private static final int SIZING_WIZARD_HEIGHT_2 = 500;
-
-    public DeprecatedUIWizards(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private IWorkbench getWorkbench() {
-        return WorkbenchPlugin.getDefault().getWorkbench();
-    }
-
-    private WizardDialog exportWizard(IWizardPage page) {
-        ExportWizard wizard = new ExportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ExportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ExportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IWorkbenchHelpContextIds.EXPORT_WIZARD });
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    private WizardDialog importWizard(IWizardPage page) {
-        ImportWizard wizard = new ImportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ImportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ImportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IWorkbenchHelpContextIds.IMPORT_WIZARD });
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    public void testExportResources() {//reference: ExportResourcesAction
-        Dialog dialog = exportWizard(null);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newFileSystemResourceExportPage1(null) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     public void testZipFileExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newZipFileResourceExportPage1(null) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     */
-    public void testImportResources() {//reference: ImportResourcesAction
-        Dialog dialog = importWizard(null);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newFileSystemResourceImportPage1(WorkbenchPlugin.getDefault().getWorkbench(), StructuredSelection.EMPTY) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     public void testZipFileImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newZipFileResourceImportPage1(null) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     */
-    public void testNewFile() {
-        BasicNewFileResourceWizard wizard = new BasicNewFileResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFileAction_title");
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_FILE_WIZARD });
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewFolder() {
-        BasicNewFolderResourceWizard wizard = new BasicNewFolderResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText(
-                "CreateFolderAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_FOLDER_WIZARD });
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewProjectPage1() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_PROJECT_WIZARD });
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewProjectPage2() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardNewProjectReferencePage page = new WizardNewProjectReferencePage(
-                "basicReferenceProjectPage");//$NON-NLS-1$
-        page.setTitle(ResourceMessages.NewProject_referenceTitle);
-        page.setDescription(ResourceMessages.NewProject_referenceDescription);
-        page.setWizard(wizard);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title"); 
-        dialog.showPage(page);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_PROJECT_WIZARD });
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewProject() {
-        // Create wizard selection wizard.
-        NewWizard wizard = new NewWizard();
-        wizard.setProjectsOnly(true);
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        // Create wizard dialog.
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_PROJECT_WIZARD });
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewResource() {
-        NewWizard wizard = new NewWizard();
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IWorkbenchHelpContextIds.NEW_WIZARD });
-        DialogCheck.assertDialog(dialog, this);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizardsAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizardsAuto.java
deleted file mode 100644
index 3707445..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/DeprecatedUIWizardsAuto.java
+++ /dev/null
@@ -1,327 +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.ui.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.ui.dialogs.WizardNewProjectReferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.ExportWizard;
-import org.eclipse.ui.internal.dialogs.ImportWizard;
-import org.eclipse.ui.internal.dialogs.NewWizard;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
-
-public class DeprecatedUIWizardsAuto extends TestCase {
-    private static final int SIZING_WIZARD_WIDTH = 470;
-
-    private static final int SIZING_WIZARD_HEIGHT = 550;
-
-    private static final int SIZING_WIZARD_WIDTH_2 = 500;
-
-    private static final int SIZING_WIZARD_HEIGHT_2 = 500;
-
-    private IProject project;
-
-    public DeprecatedUIWizardsAuto(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private IWorkbench getWorkbench() {
-        return WorkbenchPlugin.getDefault().getWorkbench();
-    }
-
-    private WizardDialog exportWizard(IWizardPage page) {
-        ExportWizard wizard = new ExportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ExportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ExportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IWorkbenchHelpContextIds.EXPORT_WIZARD });
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    private WizardDialog importWizard(IWizardPage page) {
-        ImportWizard wizard = new ImportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ImportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ImportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IWorkbenchHelpContextIds.IMPORT_WIZARD });
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    /**
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        try {
-            if (project != null) {
-                project.delete(true, true, null);
-                project = null;
-            }
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-    }
-
-    public void testExportResources() {//reference: ExportResourcesAction
-        Dialog dialog = exportWizard(null);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newFileSystemResourceExportPage1(null) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     public void testZipFileExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newZipFileResourceExportPage1(null) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     */
-    public void testImportResources() {//reference: ImportResourcesAction
-        Dialog dialog = importWizard(null);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newFileSystemResourceImportPage1(WorkbenchPlugin.getDefault().getWorkbench(), StructuredSelection.EMPTY) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     public void testZipFileImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newZipFileResourceImportPage1(null) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     */
-    public void testNewFile() {
-        BasicNewFileResourceWizard wizard = new BasicNewFileResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFileAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_FILE_WIZARD });
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    /**
-     * Test for bug 30719 [Linked Resources] NullPointerException when setting filename for WizardNewFileCreationPage 
-     */
-    public void testNewFile2() {
-        BasicNewFileResourceWizard wizard = new BasicNewFileResourceWizard() {
-            public void addPages() {
-                super.addPages();
-                IWizardPage page = getPage("newFilePage1");
-                assertTrue("Expected newFilePage1",
-                        page instanceof WizardNewFileCreationPage);
-                WizardNewFileCreationPage fileCreationPage = (WizardNewFileCreationPage) page;
-
-                try {
-                    project = FileUtil.createProject("testNewFile2");
-                } catch (CoreException e) {
-                    fail(e.getMessage());
-                }
-                fileCreationPage.setContainerFullPath(project.getFullPath());
-                fileCreationPage.setFileName("testFileName.test");
-            }
-        };
-
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFileAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_FILE_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewFolder() {
-        BasicNewFolderResourceWizard wizard = new BasicNewFolderResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFolderAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_FOLDER_WIZARD });
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewProjectPage1() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title");
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_PROJECT_WIZARD });
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewProjectPage2() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardNewProjectReferencePage page = new WizardNewProjectReferencePage(
-                "basicReferenceProjectPage");//$NON-NLS-1$
-        page.setTitle(ResourceMessages.NewProject_referenceTitle);
-        page.setDescription(ResourceMessages.NewProject_referenceDescription);
-        page.setWizard(wizard);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title"); 		
-        dialog.showPage(page);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_PROJECT_WIZARD });
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewProject() {
-        // Create wizard selection wizard.
-        NewWizard wizard = new NewWizard();
-        wizard.setProjectsOnly(true);
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        // Create wizard dialog.
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IIDEHelpContextIds.NEW_PROJECT_WIZARD });
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewResource() {
-        NewWizard wizard = new NewWizard();
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                new Object[] { IWorkbenchHelpContextIds.NEW_WIZARD });
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/EnableTestPreferencePage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/EnableTestPreferencePage.java
deleted file mode 100644
index e6a6de9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/EnableTestPreferencePage.java
+++ /dev/null
@@ -1,138 +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.ui.tests.dialogs;
-
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.ColorFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.FontFieldEditor;
-import org.eclipse.jface.preference.PathEditor;
-import org.eclipse.jface.preference.RadioGroupFieldEditor;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-public class EnableTestPreferencePage extends FieldEditorPreferencePage
-        implements IWorkbenchPreferencePage {
-
-    private BooleanFieldEditor be;
-
-    private ColorFieldEditor ce;
-
-    private FontFieldEditor fe;
-
-    private PathEditor pe;
-
-    private RadioGroupFieldEditor rg;
-
-    private StringFieldEditor se;
-
-    private Composite beParent;
-
-    private Composite ceParent;
-
-    private Composite feParent;
-
-    private Composite peParent;
-
-    private Composite rgParent;
-
-    private Composite seParent;
-
-    private boolean enabledState = true;
-
-    public EnableTestPreferencePage() {
-        super(GRID);
-    }
-
-    public void flipState() {
-        if (enabledState)
-            enabledState = false;
-        else
-            enabledState = true;
-
-        be.setEnabled(enabledState, beParent);
-        ce.setEnabled(enabledState, ceParent);
-        fe.setEnabled(enabledState, feParent);
-        pe.setEnabled(enabledState, peParent);
-        rg.setEnabled(enabledState, rgParent);
-        se.setEnabled(enabledState, seParent);
-
-    }
-
-    /**
-     * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
-     */
-    protected void createFieldEditors() {
-
-        String[][] labelsAndValues = new String[][] { { "Label 1", "Value 1" },
-                { "Label 2", "Value 2" } };
-
-        beParent = getFieldEditorParent();
-        be = new BooleanFieldEditor("BooleanValue", "BooleanTest", beParent);
-        addField(be);
-
-        ceParent = getFieldEditorParent();
-        ce = new ColorFieldEditor("ColorValue", "Color Test", ceParent);
-        addField(ce);
-
-        feParent = getFieldEditorParent();
-        fe = new FontFieldEditor("FontValue", "Font Test", feParent);
-        addField(fe);
-
-        peParent = getFieldEditorParent();
-        pe = new PathEditor("PathValue", "Path Test", "C:\temp", peParent);
-        addField(pe);
-
-        rgParent = getFieldEditorParent();
-        rg = new RadioGroupFieldEditor("Radio Value", "Radio Test", 2,
-                labelsAndValues, rgParent);
-        addField(rg);
-
-        seParent = getFieldEditorParent();
-        se = new StringFieldEditor("String Value", "String Editor", seParent);
-        addField(se);
-
-    }
-
-    /* (non-Javadoc)
-     * Method declared on PreferencePage.
-     */
-    protected Control createContents(Composite parent) {
-        Composite composite = (Composite) super.createContents(parent);
-        Button enabledButton = new Button(parent, SWT.PUSH);
-        enabledButton.setText("Switch Enabled State");
-
-        enabledButton.addSelectionListener(new SelectionListener() {
-            public void widgetSelected(SelectionEvent e) {
-                flipState();
-            }
-
-            public void widgetDefaultSelected(SelectionEvent e) {
-                flipState();
-            }
-        });
-        return composite;
-    }
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchPreferencePage#init(IWorkbench)
-     */
-    public void init(IWorkbench workbench) {
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/FontFieldEditorTestPreferencePage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/FontFieldEditorTestPreferencePage.java
deleted file mode 100644
index 42005ec..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/FontFieldEditorTestPreferencePage.java
+++ /dev/null
@@ -1,59 +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.ui.tests.dialogs;
-
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.FontFieldEditor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-/**
- * The Field Editor Preference page is a test of the font field
- * editors with and without previewers.
- */
-public class FontFieldEditorTestPreferencePage extends
-        FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
-    /**
-     * Create the preference page.
-     */
-    public FontFieldEditorTestPreferencePage() {
-        super(GRID);
-    }
-
-    /**
-     * @see org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors()
-     */
-    protected void createFieldEditors() {
-
-        Composite feParent = getFieldEditorParent();
-
-        for (int i = 0; i < 3; i++) {
-            //Create one with a preview
-            addField(new FontFieldEditor("FontValue" + String.valueOf(i),
-                    "Font Test" + String.valueOf(i), "Preview", feParent));
-
-            //Create one without
-            addField(new FontFieldEditor(
-                    "FontValueDefault" + String.valueOf(i), "Font Test Default"
-                            + String.valueOf(i), feParent));
-        }
-
-    }
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-     */
-    public void init(IWorkbench workbench) {
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/NavigatorTestStub.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/NavigatorTestStub.java
deleted file mode 100644
index 93dcc88..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/NavigatorTestStub.java
+++ /dev/null
@@ -1,40 +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.ui.tests.dialogs;
-
-/**
- * FOR USE BY TESTS ONLY!
- * <p>
- * Stub class that provides access to classes visible to the package
- * <code>org.eclipse.ui.views.navigator</code>.  For the purpose of
- * testing.
- * </p>
- * @private
- */
-
-public class NavigatorTestStub {
-    //Prevent instantiation
-    private NavigatorTestStub() {
-    }
-
-    /**
-     * Gives access to an instance of GotoResourceDialog.
-     * @return GotoResourceDialog an instance of GotoResourceDialog.
-     */
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public static GotoResourceDialog newGotoResourceDialog(Shell parentShell,IResource[] resources) {
-     return new GotoResourceDialog(parentShell, resources);
-     }
-     */
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PreferenceDialogWrapper.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PreferenceDialogWrapper.java
deleted file mode 100644
index 7a7a683..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PreferenceDialogWrapper.java
+++ /dev/null
@@ -1,63 +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.ui.tests.dialogs;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.IPreferencePage;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-import org.eclipse.ui.preferences.IWorkingCopyManager;
-import org.eclipse.ui.preferences.WorkingCopyManager;
-
-public class PreferenceDialogWrapper extends PreferenceDialog implements IWorkbenchPreferenceContainer{
-
-    public PreferenceDialogWrapper(Shell parentShell, PreferenceManager manager) {
-        super(parentShell, manager);
-    }
-
-    public boolean showPage(IPreferenceNode node) {
-        return super.showPage(node);
-    }
-
-    public IPreferencePage getPage(IPreferenceNode node) {
-        if (node == null)
-            return null;
-
-        // Create the page if nessessary
-        if (node.getPage() == null)
-            node.createPage();
-
-        if (node.getPage() == null)
-            return null;
-
-        return node.getPage();
-    }
-
-	public IWorkingCopyManager getWorkingCopyManager() {
-		return new WorkingCopyManager();
-	}
-
-	public boolean openPage(String preferencePageId, Object data) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.preferences.IWorkbenchPreferenceContainer#registerUpdateJob(org.eclipse.core.runtime.jobs.Job)
-	 */
-	public void registerUpdateJob(Job job) {
-		//Do nothing as we are not testing this.
-	}
-    
-  
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PropertyDialogWrapper.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PropertyDialogWrapper.java
deleted file mode 100644
index fc4ac53..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/PropertyDialogWrapper.java
+++ /dev/null
@@ -1,30 +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.ui.tests.dialogs;
-
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.dialogs.PropertyDialog;
-
-public class PropertyDialogWrapper extends PropertyDialog {
-
-    public PropertyDialogWrapper(Shell parentShell, PreferenceManager manager,
-            ISelection selection) {
-        super(parentShell, manager, selection);
-    }
-
-    protected boolean showPage(IPreferenceNode node) {
-        return super.showPage(node);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/SearchPatternAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/SearchPatternAuto.java
deleted file mode 100644
index 7b464f6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/SearchPatternAuto.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.regex.Pattern;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.dialogs.SearchPattern;
-
-/**
- * Test case for tests SearchPattern match functionality 
- * 
- * @since 3.3
- *
- */
-public class SearchPatternAuto extends TestCase {
-	
-	private static ArrayList resources = new ArrayList();
-	
-	
-	static {
-		
-		generateRescourcesTestCases('A', 'C', 8, "");
-		
-		generateRescourcesTestCases('A', 'C', 4, "");
-		
-	}
-	/**
-	 * @param name
-	 */
-	public SearchPatternAuto(String name) {
-		super(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-	
-	/**
-	 * Generates strings data for match test cases.
-	 * 
-	 * @param startChar
-	 * @param endChar
-	 * @param lenght
-	 * @param resource
-	 */
-	private static void generateRescourcesTestCases(char startChar, char endChar, int lenght, String resource){
-		for (char ch = startChar; ch <= endChar; ch++) {
-			String res = resource + String.valueOf(ch);
-			if (lenght == res.length()) 
-				resources.add(res);
-			else if ((res.trim().length() % 2) == 0)
-					generateRescourcesTestCases(Character.toUpperCase((char)(startChar + 1)), Character.toUpperCase((char)(endChar + 1)), lenght, res);
-				else 
-					generateRescourcesTestCases(Character.toLowerCase((char)(startChar + 1)), Character.toLowerCase((char)(endChar + 1)), lenght, res);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-	}
-	
-	/**
-	 * Tests exact match functionality. If we camelCase rule is enable, Pattern should starts with lowerCase character.
-	 * Result for "abcd " pattern should be similar to regexp pattern "abcd" with case insensitive.
-	 */
-	public void testExactMatch1() {
-		String patternText = "abcd ";
-		Pattern pattern = Pattern.compile("abcd", Pattern.CASE_INSENSITIVE);
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_EXACT_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-	/**
-	 * Tests exact match functionality. If we camelCase rule is enable, Pattern should starts with lowerCase character.
-	 * Result for "abcdefgh " pattern should be similar to regexp pattern "abcdefgh" with case insensitive.
-	 */
-	public void testExactMatch2() {
-		String patternText = "abcdefgh<";
-		Pattern pattern = Pattern.compile("abcdefgh", Pattern.CASE_INSENSITIVE);
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_EXACT_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-	/**
-	 * Tests prefix match functionality. If we camelCase rule is enable, Pattern should starts with lowerCase character.
-	 * Result for "ab" pattern should be similar to regexp pattern "ab.*" with case insensitive.
-	 */
-	public void testPrefixMatch() {
-		String patternText = "ab";
-		Pattern pattern = Pattern.compile("ab.*", Pattern.CASE_INSENSITIVE);
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_PREFIX_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-	/**
-	 * Tests pattern match functionality. It's similar to regexp patterns.
-	 * Result for "**cDe" pattern should be similar to regexp pattern ".*cde.*" with case insensitive.
-	 */
-	public void testPatternMatch1() {
-		String patternText = "**cDe";
-		Pattern pattern = Pattern.compile(".*cde.*", Pattern.CASE_INSENSITIVE);
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_PATTERN_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-	/**
-	 * Tests pattern match functionality. It's similar to regexp patterns.
-	 * Result for "**c*e*i" pattern should be similar to regexp pattern ".*c.*e.*i.*" with case insensitive.
-	 */
-	public void testPatternMatch2() {
-		String patternText = "**c*e*i";
-		Pattern pattern = Pattern.compile(".*c.*e.*i.*", Pattern.CASE_INSENSITIVE);
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_PATTERN_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-	/**
-	 * Tests camelCase match functionality.
-	 * Every string starts with upperCase characters should be recognize as camelCase pattern match rule.
-	 * Result for "CD" SearchPattern should be similar to regexp pattern "C[^A-Z]*D.*" or "CD.*"
-	 * If pattern contains only upperCase characters result contains all prefix match elements.
-	 */
-	public void testCamelCaseMatch1() {
-		String patternText = "CD";
-		Pattern pattern = Pattern.compile("C[^A-Z]*D.*");
-		Pattern pattern2 = Pattern.compile("CD.*", Pattern.CASE_INSENSITIVE);
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_CAMELCASE_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			if (patternMatcher.matches(res) != pattern.matcher(res).matches()) {
-				assertEquals(patternMatcher.matches(res), pattern2.matcher(res).matches());
-			}
-		}
-	}
-	
-	/**
-	 * Tests camelCase match functionality.
-	 * Every string starts with upperCase characters should be recognize as camelCase pattern match rule.
-	 * Result for "AbCd " SearchPattern should be similar to regexp pattern "C[^A-Z]*D.*" or "CD.*"
-	 */
-	public void testCamelCaseMatch2() {
-		String patternText = "AbCd ";
-		Pattern pattern = Pattern.compile("Ab[^A-Z]*Cd[^A-Z]*");
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_CAMELCASE_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-	/**
-	 * Tests camelCase match functionality.
-	 * Every string starts with upperCase characters should be recognize as camelCase pattern match rule.
-	 * Result for "AbCdE<" SearchPattern should be similar to regexp pattern "Ab[^A-Z]*Cd[^A-Z]*E[^A-Z]*"
-	 */
-	public void testCamelCaseMatch3() {
-		String patternText = "AbCdE<";
-		Pattern pattern = Pattern.compile("Ab[^A-Z]*Cd[^A-Z]*E[^A-Z]*");
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_CAMELCASE_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-	/**
-	 * Tests blank match functionality. 
-	 * Blank string should be recognize as blank pattern match rule.
-	 * It should match with all resources.
-	 * Result for SearchPattern should be similar to regexp pattern ".*"
-	 */
-	public void testBlankMatch() {
-		String patternText = "";
-		Pattern pattern = Pattern.compile(".*", Pattern.CASE_INSENSITIVE);
-		SearchPattern patternMatcher = new SearchPattern();
-		patternMatcher.setPattern(patternText);
-		assertEquals(patternMatcher.getMatchRule(), SearchPattern.RULE_BLANK_MATCH);
-		for (Iterator iter = resources.iterator(); iter.hasNext();) {
-			String res = (String) iter.next();
-			assertEquals(patternMatcher.matches(res), pattern.matcher(res).matches());
-		}
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TaskListTestStub.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TaskListTestStub.java
deleted file mode 100644
index 715c3db..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TaskListTestStub.java
+++ /dev/null
@@ -1,39 +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.ui.tests.dialogs;
-
-/**
- * FOR USE BY TESTS ONLY!
- * <p>
- * Stub class that provides access to classes visible to the package
- * <code>org.eclipse.ui.views.tasklist</code>.  For the purpose
- * of testing.
- * </p>
- * @private
- */
-public class TaskListTestStub {
-    //Prevent instantiation
-    private TaskListTestStub() {
-    }
-
-    /**
-     * Gives access to an instance of FiltersDialog.
-     * @return FiltersDialog an instance of FiltersDialog.
-     */
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public static FiltersDialog newFiltersDialog(Shell parentShell) {
-     return new FiltersDialog(parentShell);
-     }
-     */
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextEditorTestStub.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextEditorTestStub.java
deleted file mode 100644
index ad2f508..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextEditorTestStub.java
+++ /dev/null
@@ -1,40 +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.ui.tests.dialogs;
-
-/**
- * FOR USE BY TESTS ONLY!
- * <p>
- * Stub class that provides access to classes visible to the package
- * <code>org.eclipse.ui.texteditor</code>.  For the purpose of
- * testing.
- * </p>
- * @private
- */
-
-public class TextEditorTestStub {
-    //Prevent instantiation
-    private TextEditorTestStub() {
-    }
-
-    /**
-     * Gives access to an instance of FindReplaceDialog.
-     * @return FindReplaceDialog an instance of FindReplaceDialog.
-     */
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public static FindReplaceDialog newFindReplaceDialog(Shell parentShell) {
-     return new FindReplaceDialog(parentShell);
-     }
-     */
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogs.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogs.java
deleted file mode 100644
index 754947f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogs.java
+++ /dev/null
@@ -1,115 +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.ui.tests.dialogs;
-
-import java.util.ResourceBundle;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class TextMessageDialogs extends TestCase {
-
-    public TextMessageDialogs(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    /**
-     * Returns the given string from the Text Editor's resource bundle.
-     * Should call org.eclipse.ui.texteditor.EditorMessages directly,
-     * but it has package visibility.
-     */
-    private String getEditorString(String id) {
-        ResourceBundle bundle = ResourceBundle
-                .getBundle("org.eclipse.ui.texteditor.EditorMessages");
-        assertNotNull("EditorMessages", bundle);
-        String string = bundle.getString(id);
-        assertNotNull(id, string);
-        return string;
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openConfirm.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return Dialog the confirm dialog.
-     */
-    private MessageDialog getConfirmDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.OK_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-    }
-
- 
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openQuestion.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the question dialog.
-     */
-    private MessageDialog getQuestionDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0);
-    }
-
-   public void testCloseFileDeleted() {
-        Dialog dialog = getConfirmDialog(
-                getEditorString("Editor_error_activated_deleted_close_title"),
-                getEditorString("Editor_error_activated_deleted_close_message"));
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testFileChanged() {
-        MessageDialog dialog = getQuestionDialog(
-                getEditorString("Editor_error_activated_outofsync_title"),
-                getEditorString("Editor_error_activated_outofsync_message"));
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-  
-    public void testSaveFileDeleted() {
-        MessageDialog dialog = new MessageDialog(
-                getShell(),
-                getEditorString("Editor_error_activated_deleted_save_title"),
-                null,
-                getEditorString("Editor_error_activated_deleted_save_message"),
-                MessageDialog.QUESTION,
-                new String[] {
-                        getEditorString("Editor_error_activated_deleted_save_button_save"),
-                        getEditorString("Editor_error_activated_deleted_save_button_close") },
-                0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testUpdateConflict() {
-        MessageDialog dialog = getQuestionDialog(
-                getEditorString("Editor_error_save_outofsync_title"),
-                getEditorString("Editor_error_save_outofsync_message"));
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogsAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogsAuto.java
deleted file mode 100644
index e5666a6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/TextMessageDialogsAuto.java
+++ /dev/null
@@ -1,130 +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.ui.tests.dialogs;
-
-import java.util.ResourceBundle;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class TextMessageDialogsAuto extends TestCase {
-
-    public TextMessageDialogsAuto(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openConfirm.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return Dialog the confirm dialog.
-     */
-    private MessageDialog getConfirmDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.OK_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openQuestion.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the question dialog.
-     */
-    private MessageDialog getQuestionDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0);
-    }
-
-    public void testCloseFileDeleted() {
-        Dialog dialog = null;
-        ResourceBundle bundle = ResourceBundle
-                .getBundle("org.eclipse.ui.texteditor.EditorMessages");
-        if (bundle != null) {
-            dialog = getConfirmDialog(
-                    bundle
-                            .getString("Editor_error_activated_deleted_close_title"),
-                    bundle
-                            .getString("Editor_error_activated_deleted_close_message"));
-        }
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
- 
-    public void testErrorClosing() {
-        Dialog dialog = getQuestionDialog(WorkbenchMessages.Error,
-                WorkbenchMessages.ErrorClosingNoArg);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testFileChanged() {
-        MessageDialog dialog = null;
-        ResourceBundle bundle = ResourceBundle
-                .getBundle("org.eclipse.ui.texteditor.EditorMessages");
-        if (bundle != null) {
-            dialog = getQuestionDialog(
-                    bundle.getString("Editor_error_activated_outofsync_title"),
-                    bundle
-                            .getString("Editor_error_activated_outofsync_message"));
-        }
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-    public void testSaveFileDeleted() {
-        MessageDialog dialog = null;
-        ResourceBundle bundle = ResourceBundle
-                .getBundle("org.eclipse.ui.texteditor.EditorMessages");
-        if (bundle != null) {
-            dialog = new MessageDialog(
-                    getShell(),
-                    bundle
-                            .getString("Editor_error_activated_deleted_save_title"),
-                    null,
-                    bundle
-                            .getString("Editor_error_activated_deleted_save_message"),
-                    MessageDialog.QUESTION,
-                    new String[] {
-                            bundle
-                                    .getString("Editor_error_activated_deleted_save_button_save"),
-                            bundle
-                                    .getString("Editor_error_activated_deleted_save_button_close") },
-                    0);
-        }
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testUpdateConflict() {
-        MessageDialog dialog = null;
-        ResourceBundle bundle = ResourceBundle
-                .getBundle("org.eclipse.ui.texteditor.EditorMessages");
-        if (bundle != null) {
-            dialog = getQuestionDialog(bundle
-                    .getString("Editor_error_save_outofsync_title"), bundle
-                    .getString("Editor_error_save_outofsync_message"));
-        }
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAbstractFilteredResourcesSelectionDialog.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAbstractFilteredResourcesSelectionDialog.java
deleted file mode 100644
index 86ba845..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAbstractFilteredResourcesSelectionDialog.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import java.io.StringWriter;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.XMLMemento;
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.internal.ide.model.ResourceFactory;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class UIAbstractFilteredResourcesSelectionDialog extends TestCase {
-
-	// -----------------------
-	// implementation dependent !
-
-	private static final String HISTORY_SETTINGS = "History";
-
-	private static final String DEFAULT_ROOT_NODE_NAME = "historyRootNode"; //$NON-NLS-1$
-
-	private static final String DEFAULT_INFO_NODE_NAME = "infoNode";
-
-	private static final String DIALOG_SETTINGS = "org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog"; //$NON-NLS-1$
-
-	// -----------------------
-
-	private static final String PROJECT_NAME = "FilteredResourcesTestProject";
-
-	private static final String FOLDER_NAME1 = "testFolder1";
-
-	private static final String FOLDER_NAME2 = "testFolder2";
-
-	private static final String[] HISTORY_FILES = new String[] { "file1H.txt",
-			"file2H.avi", "_FiLe4H.java", "afile4H.txt", "bfile5H.txt",
-			"cfile6H.txt" };
-
-	private static final String[] NONHISTORY_FILES = new String[] {
-			"file1.txt", "file2.avi", "_FiLe4.java", "afile4.txt",
-			"bfile5.txt", "cfile6.txt" };
-
-	// -----------------------
-
-	protected IResource[] historyResources;
-
-	protected IResource[] nonHistoryResources;
-
-	protected IProject project;
-
-	/**
-	 * A hook for subclasses - provides means to change filesystem tree.
-	 * 
-	 * @return
-	 */
-	protected String getProjectName() {
-		return PROJECT_NAME;
-	}
-
-	/**
-	 * A hook for subclasses - provides means to change filesystem tree.
-	 * 
-	 * @return
-	 */
-	protected String getFirstFolderName() {
-		return FOLDER_NAME1;
-	}
-
-	/**
-	 * A hook for subclasses - provides means to change filesystem tree.
-	 * 
-	 * @return
-	 */
-	protected String getSecondFolderName() {
-		return FOLDER_NAME2;
-	}
-
-	/**
-	 * A hook for subclasses - provides means to change filesystem tree.
-	 * 
-	 * @return
-	 */
-	protected String[] getHistoryFiles() {
-		return HISTORY_FILES;
-	}
-
-	/**
-	 * A hook for subclasses - provides means to change filesystem tree.
-	 * 
-	 * @return
-	 */
-	protected String[] getNonHistoryFiles() {
-		return NONHISTORY_FILES;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#setUp()
-	 */
-	protected void setUp() throws Exception {
-		super.setUp();
-
-		initializeProject();
-
-		// ------------------------
-		// IDialogSettings
-
-		IDialogSettings settings = IDEWorkbenchPlugin.getDefault()
-				.getDialogSettings().getSection(DIALOG_SETTINGS);
-
-		if (settings == null) {
-			settings = IDEWorkbenchPlugin.getDefault().getDialogSettings()
-					.addNewSection(DIALOG_SETTINGS);
-		}
-
-		// ------------------------
-		// XMLMemento
-
-		XMLMemento memento = XMLMemento.createWriteRoot(HISTORY_SETTINGS);
-
-		IMemento historyMemento = memento.createChild(DEFAULT_ROOT_NODE_NAME);
-
-		for (int i = 0; i < historyResources.length; i++) {
-			IResource item = historyResources[i];
-			IMemento elementMemento = historyMemento
-					.createChild(DEFAULT_INFO_NODE_NAME);
-			ResourceFactory resourceFactory = new ResourceFactory(item);
-			resourceFactory.saveState(elementMemento);
-		}
-
-		StringWriter writer = new StringWriter();
-
-		memento.save(writer);
-		settings.put(HISTORY_SETTINGS, writer.getBuffer().toString());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see junit.framework.TestCase#tearDown()
-	 */
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		finalizeProject();
-	}
-
-	private void initializeProject() throws Exception {
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		// ensure only the new project is visible
-		project = root.getProject(getProjectName());
-
-		IProject[] projects = root.getProjects();
-		for (int i = 0; i < projects.length; i++) {
-			projects[i].delete(true, null);
-		}
-
-		project.create(null);
-		project.open(null);
-		IFolder folder1 = project.getFolder(getFirstFolderName());
-		IFolder folder2 = project.getFolder(getSecondFolderName());
-		folder1.create(false, true, null);
-		folder2.create(false, true, null);
-		String[] historyFiles = getHistoryFiles();
-		if (historyFiles == null || historyFiles.length == 0) {
-			historyResources = new IResource[0];
-		} else {
-			historyResources = new IResource[historyFiles.length];
-			for (int i = 0; i < historyFiles.length; i++) {
-				IFile file = project.getFile(folder1.getProjectRelativePath()
-						.append("/" + historyFiles[i]));
-				file.create(null, false, null);
-				historyResources[i] = file;
-			}
-		}
-		String[] files = getNonHistoryFiles();
-		if (files == null || files.length == 0) {
-			nonHistoryResources = new IResource[0];
-		} else {
-			int length = files.length;
-			nonHistoryResources = new IResource[length * 2];
-			for (int i = 0; i < length; i++) {
-				IFile file = project.getFile(folder1.getProjectRelativePath()
-						.append("/" + files[i]));
-				file.create(null, false, null);
-				nonHistoryResources[i] = file;
-			}
-			for (int i = 0; i < length; i++) {
-				IFile file = project.getFile(folder2.getProjectRelativePath()
-						.append("/" + files[i]));
-				file.create(null, false, null);
-				nonHistoryResources[length + i] = file;
-			}
-		}
-	}
-
-	private void finalizeProject() throws CoreException {
-		if (project != null) {
-			project.delete(true, null);
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAutomatedSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAutomatedSuite.java
deleted file mode 100644
index 3757ac4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIAutomatedSuite.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.compare.UIComparePreferencesAuto;
-
-/**
- * Test all areas of the UI.
- */
-public class UIAutomatedSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new UIAutomatedSuite();
-    }
-
-	/**
-	 * Construct the test suite.
-	 */
-	public UIAutomatedSuite() {
-		addTest(new TestSuite(UIDialogsAuto.class));
-		addTest(new TestSuite(DeprecatedUIDialogsAuto.class));
-		addTest(new TestSuite(UIWizardsAuto.class));
-		addTest(new TestSuite(DeprecatedUIWizardsAuto.class));
-		addTest(new TestSuite(UIPreferencesAuto.class));
-		addTest(new TestSuite(UIComparePreferencesAuto.class));
-		addTest(new TestSuite(DeprecatedUIPreferencesAuto.class));
-		addTest(new TestSuite(UIMessageDialogsAuto.class));
-		addTest(new TestSuite(UINewWorkingSetWizardAuto.class));
-		addTest(new TestSuite(UIEditWorkingSetWizardAuto.class));
-		addTest(new TestSuite(SearchPatternAuto.class));
-		addTest(new TestSuite(UIFilteredResourcesSelectionDialogAuto.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogs.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogs.java
deleted file mode 100644
index 004e1ec..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogs.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import java.io.IOException;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-import org.eclipse.ui.dialogs.EditorSelectionDialog;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.dialogs.ProjectLocationSelectionDialog;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.dialogs.TypeFilteringDialog;
-import org.eclipse.ui.internal.Perspective;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.dialogs.AboutDialog;
-import org.eclipse.ui.internal.dialogs.FileExtensionDialog;
-import org.eclipse.ui.internal.dialogs.SavePerspectiveDialog;
-import org.eclipse.ui.internal.dialogs.SelectPerspectiveDialog;
-import org.eclipse.ui.internal.dialogs.ShowViewDialog;
-import org.eclipse.ui.internal.ide.dialogs.SimpleListContentProvider;
-import org.eclipse.ui.internal.registry.PerspectiveDescriptor;
-import org.eclipse.ui.internal.registry.PerspectiveRegistry;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIDialogs extends TestCase {
-    private static final String PROJECT_SELECTION_MESSAGE = "Select Project";
-
-    private static final String FILTER_SELECTION_MESSAGE = ResourceNavigatorMessages.FilterSelection_message;
-
-    public UIDialogs(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private IWorkbench getWorkbench() {
-        return PlatformUI.getWorkbench();
-    }
-
-    public void testAbout() {
-        Dialog dialog = null;
-        dialog = new AboutDialog(getShell());
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testAddProjects() {
-        Dialog dialog = new ListSelectionDialog(getShell(), null,
-                new SimpleListContentProvider(), new LabelProvider(),
-                PROJECT_SELECTION_MESSAGE);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testCopyMoveProject() {
-        IProject dummyProject = ResourcesPlugin.getWorkspace().getRoot()
-                .getProject("DummyProject");
-        Dialog dialog = new ProjectLocationSelectionDialog(getShell(),
-                dummyProject);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testCopyMoveResource() {
-        Dialog dialog = new ContainerSelectionDialog(getShell(), null, true,
-                "Select Destination");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testEditActionSetsDialog() {
-        Dialog dialog;
-        Perspective persp = null;
-        //Test perspective: use current perspective of test case
-        try { /*
-         * fixme: should try to get current perspective, or default;
-         * currently only
-         */
-            WorkbenchWindow window = (WorkbenchWindow) getWorkbench().getActiveWorkbenchWindow();
-            persp = new Perspective((PerspectiveDescriptor) getWorkbench()
-                    .getPerspectiveRegistry().getPerspectives()[0],
-                    (WorkbenchPage) window.getActivePage());
-            dialog = window.createCustomizePerspectiveDialog(persp);
-        } catch (WorkbenchException e) {
-            dialog = null;
-        }
-        DialogCheck.assertDialog(dialog, this);
-        if (persp != null) {
-            persp.dispose();
-        }
-    }
-
-    public void testEditorSelection() {
-        Dialog dialog = new EditorSelectionDialog(getShell());
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public
-     * packages. public void testFindReplace() { Dialog dialog =
-     * TextEditorTestStub.newFindReplaceDialog( getShell() );
-     * DialogCheck.assertDialog(dialog, this); } public void testGotoResource() {
-     * Dialog dialog = NavigatorTestStub.newGotoResourceDialog(getShell(), new
-     * IResource[0]); DialogCheck.assertDialog(dialog, this); }
-     */
-    public void testNavigatorFilter() {
-        Dialog dialog = new ListSelectionDialog(getShell(), null,
-                new SimpleListContentProvider(), new LabelProvider(),
-                FILTER_SELECTION_MESSAGE);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewFileType() {
-        Dialog dialog = new FileExtensionDialog(getShell());
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testProgressInformation() {
-        ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
-        dialog.setBlockOnOpen(true);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testSaveAs() {
-        Dialog dialog = new SaveAsDialog(getShell());
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testSavePerspective() {
-        PerspectiveRegistry reg = (PerspectiveRegistry) WorkbenchPlugin
-                .getDefault().getPerspectiveRegistry();
-        // Get persp name.
-        SavePerspectiveDialog dialog = new SavePerspectiveDialog(getShell(),
-                reg);
-        IPerspectiveDescriptor description = reg
-                .findPerspectiveWithId(getWorkbench()
-                        .getActiveWorkbenchWindow().getActivePage()
-                        .getPerspective().getId());
-        dialog.setInitialSelection(description);
-        DialogCheck.assertDialog(dialog, this);
-    }
-    
-    // see bug 211350
-    public void testLoadNotExistingPerspective() throws IOException{
-    	final String fakePerspectivID = "fakeperspetive";
-		PerspectiveRegistry reg = (PerspectiveRegistry) WorkbenchPlugin
-				.getDefault().getPerspectiveRegistry();
-		try {
-			reg.getCustomPersp(fakePerspectivID);
-		} catch (WorkbenchException e) {
-			assertTrue(e.getStatus().getMessage().indexOf(fakePerspectivID) != -1);
-		}
-    }
-
-    public void testSelectPerspective() {
-        Dialog dialog = new SelectPerspectiveDialog(getShell(), PlatformUI
-                .getWorkbench().getPerspectiveRegistry());
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testSelectTypes() {
-        Dialog dialog = new TypeFilteringDialog(getShell(), null);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testShowView() {
-        Dialog dialog = new ShowViewDialog(getWorkbench().getActiveWorkbenchWindow(), WorkbenchPlugin
-                .getDefault().getViewRegistry());
-        DialogCheck.assertDialog(dialog, this);
-    }
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public
-     * packages. public void testTaskFilters() { Dialog dialog =
-     * TaskListTestStub.newFiltersDialog( getShell() );
-     * DialogCheck.assertDialog(dialog, this); }
-     */
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogsAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogsAuto.java
deleted file mode 100644
index b9069d2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIDialogsAuto.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.ContainerSelectionDialog;
-import org.eclipse.ui.dialogs.EditorSelectionDialog;
-import org.eclipse.ui.dialogs.ListSelectionDialog;
-import org.eclipse.ui.dialogs.ProjectLocationSelectionDialog;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.dialogs.TypeFilteringDialog;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.AboutDialog;
-import org.eclipse.ui.internal.dialogs.AboutPluginsDialog;
-import org.eclipse.ui.internal.dialogs.FileExtensionDialog;
-import org.eclipse.ui.internal.dialogs.SavePerspectiveDialog;
-import org.eclipse.ui.internal.dialogs.SelectPerspectiveDialog;
-import org.eclipse.ui.internal.dialogs.ShowViewDialog;
-import org.eclipse.ui.internal.ide.dialogs.SimpleListContentProvider;
-import org.eclipse.ui.internal.registry.PerspectiveRegistry;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-import org.osgi.framework.Bundle;
-
-public class UIDialogsAuto extends TestCase {
-    private static final String PROJECT_SELECTION_MESSAGE ="Select Other Projects";
-
-    private static final String FILTER_SELECTION_MESSAGE = ResourceNavigatorMessages.FilterSelection_message;
-
-    public UIDialogsAuto(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private IWorkbench getWorkbench() {
-        return PlatformUI.getWorkbench();
-    }
-
-    public void testAbout() {
-        Dialog dialog = null;
-        dialog = new AboutDialog(getShell());
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-    
-     public void testAboutPlugins() {
-        Dialog dialog = null;
-        dialog = new AboutPluginsDialog(
-				getShell(),
-				"",
-				new Bundle [] {WorkbenchPlugin.getDefault().getBundle() },
-				WorkbenchMessages.AboutFeaturesDialog_pluginInfoTitle,
-				"Title",
-				IWorkbenchHelpContextIds.ABOUT_FEATURES_PLUGINS_DIALOG);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testAddProjects() {
-        Dialog dialog = new ListSelectionDialog(getShell(), null,
-                new SimpleListContentProvider(), new LabelProvider(),
-                PROJECT_SELECTION_MESSAGE);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testCopyMoveProject() {
-        IProject dummyProject = ResourcesPlugin.getWorkspace().getRoot()
-                .getProject("DummyProject");
-        Dialog dialog = new ProjectLocationSelectionDialog(getShell(),
-                dummyProject);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testCopyMoveResource() {
-        Dialog dialog = new ContainerSelectionDialog(getShell(), null, true,
-                "Copy Resources");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testEditActionSetsDialog() {
-        // @issue need to uncomment this once customize persp dialog fixed up
-        /*
-         * Dialog dialog; Perspective persp = null; //Test perspective: use
-         * current perspective of test case try {//fixme: should try to get
-         * current perspective, or default; currently only //gets first
-         * perspective in the registry. persp = new
-         * Perspective((PerspectiveDescriptor)getWorkbench().getPerspectiveRegistry().getPerspectives()[0],
-         * (WorkbenchPage)getWorkbench().getActiveWorkbenchWindow().getActivePage() );
-         * dialog = new CustomizePerspectiveDialog(getShell(), persp); } catch
-         * (WorkbenchException e) { dialog = null; }
-         * DialogCheck.assertDialogTexts(dialog, this); if (persp != null) {
-         * persp.dispose(); }
-         */
-    }
-
-    public void testEditorSelection() {
-        Dialog dialog = new EditorSelectionDialog(getShell());
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public
-     * packages. public void testFindReplace() { Dialog dialog =
-     * TextEditorTestStub.newFindReplaceDialog( getShell() );
-     * DialogCheck.assertDialogTexts(dialog, this); } public void
-     * testGotoResource() { Dialog dialog =
-     * NavigatorTestStub.newGotoResourceDialog(getShell(), new IResource[0]);
-     * DialogCheck.assertDialogTexts(dialog, this); }
-     */
-    public void testNavigatorFilter() {
-        Dialog dialog = new ListSelectionDialog(getShell(), null,
-                new SimpleListContentProvider(), new LabelProvider(),
-                FILTER_SELECTION_MESSAGE);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewFileType() {
-        Dialog dialog = new FileExtensionDialog(getShell());
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testProgressInformation() {
-        ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
-        dialog.setBlockOnOpen(true);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testSaveAs() {
-        Dialog dialog = new SaveAsDialog(getShell());
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testSavePerspective() {
-        PerspectiveRegistry reg = (PerspectiveRegistry) WorkbenchPlugin
-                .getDefault().getPerspectiveRegistry();
-        // Get persp name.
-        SavePerspectiveDialog dialog = new SavePerspectiveDialog(getShell(),
-                reg);
-        IPerspectiveDescriptor description = reg
-                .findPerspectiveWithId(getWorkbench()
-                        .getActiveWorkbenchWindow().getActivePage()
-                        .getPerspective().getId());
-        dialog.setInitialSelection(description);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testSelectPerspective() {
-        Dialog dialog = new SelectPerspectiveDialog(getShell(), PlatformUI
-                .getWorkbench().getPerspectiveRegistry());
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testSelectTypes() {
-        Dialog dialog = new TypeFilteringDialog(getShell(), null);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testShowView() {
-        Dialog dialog = new ShowViewDialog(getWorkbench().getActiveWorkbenchWindow(), WorkbenchPlugin
-                .getDefault().getViewRegistry());
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public
-     * packages. public void testTaskFilters() { Dialog dialog =
-     * TaskListTestStub.newFiltersDialog( getShell() );
-     * DialogCheck.assertDialogTexts(dialog, this); }
-     */
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIEditWorkingSetWizardAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIEditWorkingSetWizardAuto.java
deleted file mode 100644
index 9dc72ff..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIEditWorkingSetWizardAuto.java
+++ /dev/null
@@ -1,115 +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.ui.tests.dialogs;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.WorkingSetEditWizard;
-import org.eclipse.ui.internal.registry.WorkingSetRegistry;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-/**
- * Tests the WorkingSetEditWizard
- * Tests input validation, presence of correct edit page and 
- * wizard page texts.
- */
-public class UIEditWorkingSetWizardAuto extends UIWorkingSetWizardsAuto {
-    IWorkingSetPage fDefaultEditPage;
-
-    public UIEditWorkingSetWizardAuto(String name) {
-        super(name);
-    }
-
-    protected void doSetUp() throws Exception {
-        WorkingSetRegistry registry = WorkbenchPlugin.getDefault()
-                .getWorkingSetRegistry();
-        fDefaultEditPage = registry.getDefaultWorkingSetPage();
-        fWizard = new WorkingSetEditWizard(fDefaultEditPage);
-        super.doSetUp();
-    }
-
-    public void testEditPage() throws Throwable {
-        IWizardPage page = fWizardDialog.getCurrentPage();
-        assertTrue(page instanceof IWorkingSetPage);
-
-        /*
-         * Verify that correct working set edit page is displayed
-         */
-        assertTrue(page.getClass() == fDefaultEditPage.getClass());
-        /*
-         * Test initial page state
-         */
-        assertTrue(page.canFlipToNextPage() == false);
-        assertTrue(fWizard.canFinish() == false);
-        assertNull(page.getErrorMessage());
-        /*
-         * Test page state with preset page input
-         */
-        IWorkingSetManager workingSetManager = fWorkbench
-                .getWorkingSetManager();
-        IWorkingSet workingSet = workingSetManager.createWorkingSet(
-                WORKING_SET_NAME_1, new IAdaptable[] { p1, f2 });
-        ((WorkingSetEditWizard) fWizard).setSelection(workingSet);
-
-        List widgets = getWidgets((Composite) page.getControl(), Text.class);
-        Text text = (Text) widgets.get(0);
-        assertEquals(WORKING_SET_NAME_1, text.getText());
-        assertTrue(page.canFlipToNextPage() == false);
-        assertTrue(fWizard.canFinish() == false);
-        assertNull(page.getErrorMessage());
-        widgets = getWidgets((Composite) page.getControl(), Tree.class);
-        Tree tree = (Tree) widgets.get(0);
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        assertEquals(workspace.getRoot().getProjects().length, tree
-                .getItemCount());
-        setTextWidgetText(WORKING_SET_NAME_2, page);
-        assertTrue(fWizard.canFinish());
-
-        /*
-         * Test page state with partial page input
-         */
-        setTextWidgetText("", page);
-        assertTrue(page.canFlipToNextPage() == false);
-        assertTrue(fWizard.canFinish() == false);
-        assertNotNull(page.getErrorMessage());
-
-        /*
-         * Test page state with complete page input
-         */
-        setTextWidgetText(WORKING_SET_NAME_2, page);
-        checkTreeItems();
-        assertTrue(page.canFlipToNextPage() == false);
-        assertTrue(fWizard.canFinish());
-        assertNull(page.getErrorMessage());
-
-        fWizard.performFinish();
-        workingSet = ((WorkingSetEditWizard) fWizard).getSelection();
-        IAdaptable[] workingSetItems = workingSet.getElements();
-        assertEquals(WORKING_SET_NAME_2, workingSet.getName());
-        assertTrue(ArrayUtil.contains(workingSetItems, p1));
-        assertTrue(ArrayUtil.contains(workingSetItems, p2));
-
-        DialogCheck.assertDialogTexts(fWizardDialog, this);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIErrorDialogs.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIErrorDialogs.java
deleted file mode 100644
index 5e3eee8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIErrorDialogs.java
+++ /dev/null
@@ -1,56 +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.ui.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIErrorDialogs extends TestCase {
-
-    public UIErrorDialogs(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    /*
-     * Get an example ErrorDialog with a status and a couple of 
-     * child statuses.
-     */
-    private ErrorDialog getMultiStatusErrorDialog() {
-
-        IStatus[] childStatuses = new IStatus[2];
-        childStatuses[0] = new Status(IStatus.ERROR, "org.eclipse.ui.tests",
-                IStatus.ERROR, "Error message 1", new Throwable());
-        childStatuses[1] = new Status(IStatus.ERROR, "org.eclipse.ui.tests",
-                IStatus.ERROR, "Error message 2", new Throwable());
-        MultiStatus mainStatus = new MultiStatus("org.eclipse.ui.tests",
-                IStatus.ERROR, childStatuses, "Main error", new Throwable());
-
-        return new ErrorDialog(getShell(), "Error Test", "Error message",
-                mainStatus, IStatus.ERROR);
-    }
-
-    public void testErrorClipboard() {
-        Dialog dialog = getMultiStatusErrorDialog();
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialog.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialog.java
deleted file mode 100644
index 698eba3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialog.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIFilteredResourcesSelectionDialog extends
-		UIAbstractFilteredResourcesSelectionDialog {
-
-	/**
-	 * It is possible to verify dialog's appearance on sample data. To test
-	 * different table contents, change the pattern.
-	 */
-	public void testVerifyDialog() {
-		final IContainer input = ResourcesPlugin.getWorkspace().getRoot();
-		final FilteredResourcesSelectionDialog dialog = new FilteredResourcesSelectionDialog(
-				DialogCheck.getShell(), true, input, IResource.FILE);
-		dialog.setInitialPattern("**");
-		DialogCheck.assertDialog(dialog, this);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialogAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialogAuto.java
deleted file mode 100644
index b2b8c67..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIFilteredResourcesSelectionDialogAuto.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import java.util.*;
-import org.eclipse.core.resources.*;
-import org.eclipse.swt.events.ShellAdapter;
-import org.eclipse.swt.events.ShellEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.FilteredResourcesSelectionDialog;
-
-public class UIFilteredResourcesSelectionDialogAuto extends
-		UIAbstractFilteredResourcesSelectionDialog {
-
-	/**
-	 * Checks if content provider displays expected resources from the history.
-	 * 
-	 * @throws Exception
-	 */
-	public void testReadHistory() throws Exception {
-
-		final MockedFilteredResourcesSelectionDialog dialog = createDialog();
-
-		dialog.open();
-
-		Object[] items = dialog.getHistoryItems();
-
-		assertEquals(historyResources.length, items.length);
-		Set itemsSet = new HashSet(historyResources.length);
-		itemsSet.addAll(Arrays.asList(items));
-		for (int i = 0; i < historyResources.length; i++) {
-			assertEquals(true, itemsSet.contains(historyResources[i]));
-		}
-
-		closeDialog(dialog);
-	}
-	
-	private static MockedFilteredResourcesSelectionDialog createDialog() {
-		final IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		final Shell parent = window.getShell();
-		final IContainer input = ResourcesPlugin.getWorkspace().getRoot();
-		final MockedFilteredResourcesSelectionDialog dialog = new MockedFilteredResourcesSelectionDialog(
-				parent, true, input, IResource.FILE);
-
-		if (dialog.getShell() == null) {
-			dialog.create();
-		}
-		Point testDialogSize = dialog.getShell().getSize();
-		dialog.setBlockOnOpen(false);
-		dialog.getShell().setLocation(window.getShell().getSize().x + 1, 0);
-		dialog.getShell().setSize(testDialogSize);
-		dialog.getShell().addShellListener(new ShellAdapter() {
-			public void shellClosed(ShellEvent e) {
-				e.doit = false;
-			}
-		});
-		return dialog;
-	}
-
-	private static void closeDialog(
-			MockedFilteredResourcesSelectionDialog dialog) {
-		if (dialog.getShell() != null) {
-			dialog.getShell().dispose();
-			dialog.close();
-		}
-	}
-
-	private static class MockedFilteredResourcesSelectionDialog extends
-			FilteredResourcesSelectionDialog {
-
-		public MockedFilteredResourcesSelectionDialog(Shell shell,
-				boolean multi, IContainer container, int typesMask) {
-			super(shell, multi, container, typesMask);
-		}
-
-		// override protected modifiers ...
-
-		public Object[] getHistoryItems() {
-			return getSelectionHistory().getHistoryItems();
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIInteractiveSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIInteractiveSuite.java
deleted file mode 100644
index 79a7d74..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIInteractiveSuite.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dialogs;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.compare.UIComparePreferences;
-
-/**
- * Test all areas of the UI.
- */
-public class UIInteractiveSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new UIInteractiveSuite();
-    }
-
-	/**
-	 * Construct the test suite.
-	 */
-	public UIInteractiveSuite() {
-		addTest(new TestSuite(UIPreferences.class));
-		addTest(new TestSuite(UIComparePreferences.class));
-		addTest(new TestSuite(DeprecatedUIPreferences.class));
-		addTest(new TestSuite(UIWizards.class));
-		addTest(new TestSuite(DeprecatedUIWizards.class));
-		addTest(new TestSuite(UIDialogs.class));
-		addTest(new TestSuite(DeprecatedUIDialogs.class));
-		addTest(new TestSuite(UIMessageDialogs.class));
-		addTest(new TestSuite(UIErrorDialogs.class));
-		addTest(new TestSuite(UIFilteredResourcesSelectionDialog.class));
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogs.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogs.java
deleted file mode 100644
index 604bafb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogs.java
+++ /dev/null
@@ -1,282 +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.ui.tests.dialogs;
-
-import java.text.MessageFormat;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIMessageDialogs extends TestCase {
-    private static final String DUMMY_RESOURCE = "Dummy.resource";
-
-    private static final String DUMMY_PROJECT = "DummyProject";
-
-    private static final String DUMMY_ABSOLUTE_PATH = "C:\\Dummypath\\Dummy.resource";
-
-    private static final String DUMMY_RELATIVE_PATH = "\\" + DUMMY_PROJECT
-            + "\\" + DUMMY_RESOURCE;
-
-    public UIMessageDialogs(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openInformation.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the information dialog.
-     */
-    private MessageDialog getInformationDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.INFORMATION,
-                new String[] { IDialogConstants.OK_LABEL }, 0);
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openQuestion.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the question dialog.
-     */
-    private MessageDialog getQuestionDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0);
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::getWarningDialog.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the confirm dialog.
-     */
-    private MessageDialog getWarningDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.WARNING,
-                new String[] { IDialogConstants.OK_LABEL }, 0);
-    }
-
-    public void testAbortPageFlipping() {
-        Dialog dialog = getWarningDialog(JFaceResources
-                .getString("AbortPageFlippingDialog.title"), JFaceResources
-                .getString("AbortPageFlippingDialog.message"));
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-  
-    public void testCopyOverwrite() {
-        Dialog dialog = getQuestionDialog("Exists","Overwrite?");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testDeleteProject() {
-        String title ="Delete Project";
-        String msg = NLS.bind("Delete", (new Object[] {
-		DUMMY_PROJECT, DUMMY_ABSOLUTE_PATH }));
-        Dialog dialog = new MessageDialog(getShell(), title, null, // accept the default window icon
-                msg, MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testDeleteReadOnlyCheck() {
-        Dialog dialog = new MessageDialog(getShell(),"Delete?", null,
-               "This?",
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testDeleteResource() {
-        Dialog dialog = getQuestionDialog("Delete","Delete?");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testDeleteResources() {
-        Dialog dialog = getQuestionDialog("Delete","OK?");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testDropOverwrite() {
-        Dialog dialog = new MessageDialog(
-                getShell(),
-                ResourceNavigatorMessages.DropAdapter_question,
-                null, MessageFormat.format(ResourceNavigatorMessages.DropAdapter_overwriteQuery, 
-                        new Object[] { DUMMY_RELATIVE_PATH }),
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testErrorClosing() {
-        Dialog dialog = getQuestionDialog(WorkbenchMessages.Error,
-                WorkbenchMessages.ErrorClosingNoArg);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testFileExtensionEmpty() {
-        Dialog dialog = getInformationDialog("","");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testFileNameWrong() {
-        Dialog dialog = getInformationDialog(
-                "Invalid",
-               "Invalid file");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testFileTypeExists() {
-        Dialog dialog = getInformationDialog("Exists",
-                "Already Exists");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testInvalidType_1() {
-        Dialog dialog = getWarningDialog("Invalid?", "Is this invalid?");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testInvalidType_2() {
-        Dialog dialog = getWarningDialog("Invalid",  "Is this invalid?");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testMoveReadOnlyCheck() {
-        Dialog dialog = new MessageDialog(getShell(), "Move", null, "OK to move",
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    /*
-     public void testNoBuilders() {
-     Dialog dialog = getWarningDialog(
-     WorkbenchMessages.getString("BuildAction.warning"),
-     WorkbenchMessages.getString("BuildAction.noBuilders") );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     */
-    /*
-     public void testNoGlobalBuildersDialog() {
-     Dialog dialog = getWarningDialog(
-     WorkbenchMessages.getString("GlobalBuildAction.warning"),
-     WorkbenchMessages.getString("GlobalBuildAction.noBuilders") );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     */
-    public void testNoPropertyPage() {
-        Dialog dialog = getInformationDialog(WorkbenchMessages.PropertyDialog_messageTitle, NLS.bind(WorkbenchMessages.PropertyDialog_noPropertyMessage, (new Object[] { "DummyPropertyPage" })));
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testOperationNotAvailable() {
-        Dialog dialog = getInformationDialog(WorkbenchMessages.Information, "Not available");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testOverwritePerspective() {
-        Dialog dialog = new MessageDialog(getShell(), WorkbenchMessages.SavePerspective_overwriteTitle, null,
-                NLS.bind(WorkbenchMessages.SavePerspective_overwriteQuestion, (new Object[] { "Dummy Perspective" })),
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testRefreshDeleteProject() {
-        Dialog dialog = new MessageDialog(getShell(), "Refresh", null,
-                NLS.bind("deleted location", (new Object[] {
-				DUMMY_PROJECT,
-				"c:\\dummypath\\" + DUMMY_PROJECT })),
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testRenameOverwrite() {
-        Dialog dialog = getQuestionDialog("Exists","Overwrite");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testResetPerspective() {
-        Dialog dialog = new MessageDialog(getShell(), WorkbenchMessages.ResetPerspective_title, null, NLS.bind(WorkbenchMessages.ResetPerspective_message, (new Object[] { "Dummy Perspective" })),
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.OK_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testSaveAsOverwrite() {
-        Dialog dialog = new MessageDialog(getShell(), "OK?", null, "Overwrite?", MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testSaveChanges() {
-        Dialog dialog = new MessageDialog(getShell(), WorkbenchMessages.Save_Resource, null, NLS.bind(WorkbenchMessages.EditorManager_saveChangesQuestion, (new Object[] { DUMMY_RESOURCE })), MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testWizardClosing() {
-        Dialog dialog = new MessageDialog(getShell(), JFaceResources
-                .getString("WizardClosingDialog.title"), null, JFaceResources
-                .getString("WizardClosingDialog.message"),
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.OK_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testWizardOverwrite() {
-        Dialog dialog = new MessageDialog(getShell(), "OK?", null, "Exists", MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialog(dialog, this);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogsAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogsAuto.java
deleted file mode 100644
index 284116f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIMessageDialogsAuto.java
+++ /dev/null
@@ -1,275 +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.ui.tests.dialogs;
-
-import java.text.MessageFormat;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.views.navigator.ResourceNavigatorMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIMessageDialogsAuto extends TestCase {
-    private static final String DUMMY_RESOURCE = "Dummy.resource";
-
-    private static final String DUMMY_PROJECT = "DummyProject";
-
-    private static final String DUMMY_RELATIVE_PATH = "\\" + DUMMY_PROJECT
-            + "\\" + DUMMY_RESOURCE;
-
-    public UIMessageDialogsAuto(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-  
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openInformation.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the information dialog.
-     */
-    private MessageDialog getInformationDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.INFORMATION,
-                new String[] { IDialogConstants.OK_LABEL }, 0);
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openQuestion.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the question dialog.
-     */
-    private MessageDialog getQuestionDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0);
-    }
-
-    /*
-     * Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::getWarningDialog.
-     * The method will return the dialog instead of opening.
-     * @param title the dialog's title, or <code>null</code> if none.
-     * @param message the message.
-     * @return MessageDialog the confirm dialog.
-     */
-    private MessageDialog getWarningDialog(String title, String message) {
-        return new MessageDialog(getShell(), title, null, message,
-                MessageDialog.WARNING,
-                new String[] { IDialogConstants.OK_LABEL }, 0);
-    }
-
-    public void testAbortPageFlipping() {
-        Dialog dialog = getWarningDialog(JFaceResources
-                .getString("AbortPageFlippingDialog.title"), JFaceResources
-                .getString("AbortPageFlippingDialog.message"));
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testCopyOverwrite() {
-        Dialog dialog = getQuestionDialog("Exists","");
-         DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testDeleteProject() {
-        String title = "Project";
-        String msg ="";
-        Dialog dialog = new MessageDialog(getShell(), title, null, // accept the default window icon
-                msg, MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testDeleteReadOnlyCheck() {
-        Dialog dialog = new MessageDialog(getShell(), "Delete", null,
-              "Exists",
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testDeleteResource() {
-        Dialog dialog = getQuestionDialog("Delete","");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testDeleteResources() {
-		  Dialog dialog = getQuestionDialog("Delete","");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testDropOverwrite() {
-        Dialog dialog = new MessageDialog(
-                getShell(),
-                ResourceNavigatorMessages.DropAdapter_question,
-                null, MessageFormat.format(ResourceNavigatorMessages.DropAdapter_overwriteQuery,
-                        new Object[] { DUMMY_RELATIVE_PATH }),
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testErrorClosing() {
-        Dialog dialog = getQuestionDialog(WorkbenchMessages.Error,
-                WorkbenchMessages.ErrorClosingNoArg);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-    public void testFileExtensionEmpty() {
-        Dialog dialog = getInformationDialog(
-                "Empty",
-                "ExtensionEmptyMessage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testFileNameWrong() {
-        Dialog dialog = getInformationDialog(
-                "InvalidTitle",
-               "InvalidMessage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testFileTypeExists() {
-        Dialog dialog = getInformationDialog(WorkbenchMessages.FileEditorPreference_existsTitle,
-                WorkbenchMessages.FileEditorPreference_existsMessage);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testInvalidType_1() {
-        Dialog dialog = getWarningDialog("invalidTitle","invalidMessage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testInvalidType_2() {
-        Dialog dialog = getWarningDialog("invalidType", "invalidTypeMessage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testMoveReadOnlyCheck() {
-        Dialog dialog = new MessageDialog(getShell(), "Move_title", null, ".MoveResourceAction",
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNoBuilders() {
-        Dialog dialog = getWarningDialog("BuildAction_warning", "noBuilders");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNoGlobalBuildersDialog() {
-        Dialog dialog = getWarningDialog("GlobalBuildAction_warning","GlobalBuildAction_noBuilders");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNoPropertyPage() {
-        Dialog dialog = getInformationDialog(WorkbenchMessages.PropertyDialog_messageTitle, NLS.bind(WorkbenchMessages.PropertyDialog_noPropertyMessage, (new Object[] { "DummyPropertyPage" })));
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-
-    public void testOperationNotAvailable() {
-        Dialog dialog = getInformationDialog(WorkbenchMessages.Information, "operationNotAvailableMessage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testOverwritePerspective() {
-        Dialog dialog = new MessageDialog(getShell(), WorkbenchMessages.SavePerspective_overwriteTitle, null,
-                NLS.bind(WorkbenchMessages.SavePerspective_overwriteQuestion, (new Object[] { "Dummy Perspective" })),
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testRefreshDeleteProject() {
-        Dialog dialog = new MessageDialog(getShell(), "RefreshAction_dialogTitle", null,
-               "c:\\dummypath\\" + DUMMY_PROJECT,
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testRenameOverwrite() {
-        Dialog dialog = getQuestionDialog(".RenameResourceAction_resourceExist",DUMMY_RELATIVE_PATH);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testResetPerspective() {
-        Dialog dialog = new MessageDialog(getShell(), WorkbenchMessages.ResetPerspective_title, null, NLS.bind(WorkbenchMessages.ResetPerspective_message, (new Object[] { "Dummy Perspective" })),
-                MessageDialog.QUESTION, new String[] {
-                        IDialogConstants.OK_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testSaveAsOverwrite() {
-        Dialog dialog = new MessageDialog(getShell(), "WorkbenchMessages.Question", null,DUMMY_RELATIVE_PATH, MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testSaveChanges() {
-        Dialog dialog = new MessageDialog(getShell(), WorkbenchMessages.Save_Resource, null, NLS.bind(WorkbenchMessages.EditorManager_saveChangesQuestion, (new Object[] { DUMMY_RESOURCE })), MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-
-
-    public void testWizardClosing() {
-        Dialog dialog = new MessageDialog(getShell(), JFaceResources
-                .getString("WizardClosingDialog_title"), null, JFaceResources
-                .getString("WizardClosingDialog_message"),
-                MessageDialog.QUESTION,
-                new String[] { IDialogConstants.OK_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testWizardOverwrite() {
-        Dialog dialog = new MessageDialog(getShell(), "WorkbenchMessages.Question", null, "WizardDataTransfer_existsQuestion", MessageDialog.QUESTION,
-                new String[] { IDialogConstants.YES_LABEL,
-                        IDialogConstants.YES_TO_ALL_LABEL,
-                        IDialogConstants.NO_LABEL,
-                        IDialogConstants.CANCEL_LABEL }, 0);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UINewWorkingSetWizardAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UINewWorkingSetWizardAuto.java
deleted file mode 100644
index e209a2e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UINewWorkingSetWizardAuto.java
+++ /dev/null
@@ -1,177 +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.ui.tests.dialogs;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.WorkingSetNewWizard;
-import org.eclipse.ui.internal.dialogs.WorkingSetTypePage;
-import org.eclipse.ui.internal.registry.WorkingSetDescriptor;
-import org.eclipse.ui.internal.registry.WorkingSetRegistry;
-import org.eclipse.ui.tests.harness.util.ArrayUtil;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-/**
- * Tests the WorkingSetNewWizard.
- * Tests input validation, presence of type page and correct edit page
- * and wizard page texts.
- */
-public class UINewWorkingSetWizardAuto extends UIWorkingSetWizardsAuto {
-
-    public UINewWorkingSetWizardAuto(String name) {
-        super(name);
-    }
-
-    protected void doSetUp() throws Exception {
-        fWizard = getWorkbench().getWorkingSetManager().createWorkingSetNewWizard(null);
-        super.doSetUp();
-    }
-
-    public void testTypePage() throws Throwable {
-        IWizardPage page = fWizardDialog.getCurrentPage();
-        WorkingSetDescriptor[] descriptors = getEditableWorkingSetDescriptors();
-        
-        // the first page must be the type selection page iff there is more than one working set type
-        assertEquals(descriptors.length > 1, (page instanceof WorkingSetTypePage));
-
-        /*
-         * Should have at least resourceWorkingSetPage and MockWorkingSet
-         */
-        assertTrue(descriptors.length >= 2);
-        if (page instanceof WorkingSetTypePage) {
-            WorkingSetTypePage typePage = (WorkingSetTypePage) page;
-            List widgets = getWidgets((Composite) page.getControl(),
-                    Table.class);
-            Table table = (Table) widgets.get(0);
-            /*
-             * Test initial page state
-             */
-            assertEquals(descriptors.length, table.getItemCount());
-            assertTrue(typePage.canFlipToNextPage() == false);
-            assertTrue(fWizard.canFinish() == false);
-            /*
-             * Test page state with page complete input
-             */
-            table.setSelection(descriptors.length - 1);
-            table.notifyListeners(SWT.Selection, new Event());
-            assertTrue(typePage.canFlipToNextPage());
-            assertTrue(fWizard.canFinish() == false);
-
-            /*
-             * Check page texts 
-             */
-            DialogCheck.assertDialogTexts(fWizardDialog, this);
-        }
-    }
-
-    public void testEditPage() throws Throwable {
-        WorkingSetRegistry registry = WorkbenchPlugin.getDefault()
-                .getWorkingSetRegistry();
-        IWizardPage page = fWizardDialog.getCurrentPage();
-        IWizardPage defaultEditPage = registry.getDefaultWorkingSetPage();
-        String defaultEditPageClassName = defaultEditPage.getClass().getName();
-        WorkingSetDescriptor[] descriptors = getEditableWorkingSetDescriptors();
-        
-        // the first page must be the type selection page iff there is more than one working set type
-        assertEquals(descriptors.length > 1, (page instanceof WorkingSetTypePage));
-
-        if (page instanceof WorkingSetTypePage) {
-            /*
-             * Select the default (Resource) working set type
-             * and advance to edit page.
-             */
-            List widgets = getWidgets((Composite) page.getControl(),
-                    Table.class);
-            Table table = (Table) widgets.get(0);
-            TableItem[] items = table.getItems();
-            String workingSetName = null;
-            for (int descriptorIndex = 0; descriptorIndex < descriptors.length; descriptorIndex++) {
-                WorkingSetDescriptor descriptor = descriptors[descriptorIndex];
-                if (defaultEditPageClassName.equals(descriptor
-                        .getPageClassName())) {
-                    workingSetName = descriptor.getName();
-                    break;
-                }
-            }
-            assertNotNull(workingSetName);
-            boolean found = false;
-            for (int i = 0; i < items.length; i++) {
-                if (items[i].getText().equals(workingSetName)) {
-                    table.setSelection(i);
-                    found = true;
-                    break;
-                }
-            }
-            assertTrue(found);
-            fWizardDialog.showPage(fWizard.getNextPage(page));
-        }
-        page = fWizardDialog.getCurrentPage();
-        assertTrue(page instanceof IWorkingSetPage);
-
-        /*
-         * Verify that correct working set edit page is displayed
-         */
-        assertTrue(page.getClass() == defaultEditPage.getClass());
-        /*
-         * Test initial page state
-         */
-        assertFalse(page.canFlipToNextPage());
-        assertFalse(fWizard.canFinish());
-        assertNull(page.getErrorMessage());
-        assertNull(page.getMessage());
-        
-        /*
-         * Test page state with partial page input
-         */
-        setTextWidgetText(WORKING_SET_NAME_1, page);
-        assertFalse(page.canFlipToNextPage());
-        assertTrue(fWizard.canFinish());  // allow for empty sets
-        assertNull(page.getErrorMessage());
-        assertNotNull(page.getMessage());
-
-        /*
-         * Test page state with page complete input
-         */
-        checkTreeItems();
-        assertFalse(page.canFlipToNextPage());
-        assertTrue(fWizard.canFinish());
-        assertNull(page.getErrorMessage());
-        assertNull(page.getMessage());
-
-        fWizard.performFinish();
-        IWorkingSet workingSet = ((WorkingSetNewWizard) fWizard).getSelection();
-        IAdaptable[] workingSetItems = workingSet.getElements();
-        assertEquals(WORKING_SET_NAME_1, workingSet.getName());
-
-        List widgets = getWidgets((Composite) page.getControl(), Tree.class);
-        Tree tree = (Tree) widgets.get(0);
-        assertEquals(workingSetItems.length, tree.getItemCount());
-        assertTrue(ArrayUtil.contains(workingSetItems, p1));
-        assertTrue(ArrayUtil.contains(workingSetItems, p2));
-
-        /*
-         * Check page texts 
-         */
-        DialogCheck.assertDialogTexts(fWizardDialog, this);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferences.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferences.java
deleted file mode 100644
index 22ff614..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferences.java
+++ /dev/null
@@ -1,178 +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.ui.tests.dialogs;
-
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.PropertyDialog;
-import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager;
-import org.eclipse.ui.internal.dialogs.PropertyPageManager;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIPreferences extends TestCase {
-    private IProject _project;
-
-    private static final String PROJECT_NAME = "DummyProject";
-
-    public UIPreferences(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private IProject getDummyProject() {
-        try {
-            IProject projects[] = ResourcesPlugin.getWorkspace().getRoot()
-                    .getProjects();
-            for (int i = 0; i < projects.length; i++) {
-                if (projects[i].getName().equals(PROJECT_NAME)) {
-                    projects[i].delete(true, null);
-                    break;
-                }
-            }
-            _project = ResourcesPlugin.getWorkspace().getRoot().getProject(
-                    PROJECT_NAME);
-            _project.create(null);
-        } catch (CoreException e) {
-            System.out.println(e);
-        }
-        return _project;
-    }
-
-    private PreferenceDialog getPreferenceDialog(String id) {
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-            WorkbenchHelp.setHelp(dialog.getShell(),
-                    IWorkbenchHelpContextIds.PREFERENCE_DIALOG);
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node.getId().equals(id)) {
-                    dialog.showPage(node);
-                    break;
-                }
-            }
-        }
-        return dialog;
-    }
-
-    private PropertyDialog getPropertyDialog(String id) {
-        PropertyDialogWrapper dialog = null;
-
-        PropertyPageManager manager = new PropertyPageManager();
-        String title = "";
-        String name = "";
-
-        IProject element = getDummyProject();
-        if (element == null) {
-            return null;
-        }
-        // load pages for the selection
-        // fill the manager with contributions from the matching contributors
-        PropertyPageContributorManager.getManager()
-                .contribute(manager, element);
-
-        IWorkbenchAdapter adapter = (IWorkbenchAdapter) element
-                .getAdapter(IWorkbenchAdapter.class);
-        if (adapter != null) {
-            name = adapter.getLabel(element);
-        }
-
-        // testing if there are pages in the manager
-        Iterator pages = manager.getElements(PreferenceManager.PRE_ORDER)
-                .iterator();
-        if (!pages.hasNext()) {
-            return null;
-        } 
-            title = NLS.bind(WorkbenchMessages.PropertyDialog_propertyMessage, (new Object[] { name }));
-            dialog = new PropertyDialogWrapper(getShell(), manager,
-                    new StructuredSelection(element));
-            dialog.create();
-            dialog.getShell().setText(title);
-            WorkbenchHelp.setHelp(dialog.getShell(),
-                    IWorkbenchHelpContextIds.PROPERTY_DIALOG);
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node.getId().equals(id)) {
-                    dialog.showPage(node);
-                    break;
-                }
-            }
-        
-        return dialog;
-    }
-
-    public void testWorkbenchPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Workbench");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testAppearancePref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Views");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testDefaultTextEditorPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.TextEditor");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testFileEditorsPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileEditors");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testLocalHistoryPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileStates");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testPerspectivesPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Perspectives");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testInfoProp() {
-        Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.info.file");
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testProjectReferencesProp() {
-        Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.project.reference");
-        DialogCheck.assertDialog(dialog, this);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferencesAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferencesAuto.java
deleted file mode 100644
index ad8abfd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIPreferencesAuto.java
+++ /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
- *******************************************************************************/
-package org.eclipse.ui.tests.dialogs;
-
-import java.util.Iterator;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-public class UIPreferencesAuto extends TestCase {
-
-    public UIPreferencesAuto(String name) {
-        super(name);
-    }
-
-    protected Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private PreferenceDialog getPreferenceDialog(String id) {
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-            WorkbenchHelp.setHelp(dialog.getShell(),
-                    IWorkbenchHelpContextIds.PREFERENCE_DIALOG);
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node.getId().equals(id)) {
-                    dialog.showPage(node);
-                    break;
-                }
-            }
-        }
-        return dialog;
-    }
-
-
-    public void testWorkbenchPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Workbench");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testAppearancePref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Views");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testDefaultTextEditorPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.TextEditor");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testFileEditorsPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileEditors");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testLocalHistoryPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.FileStates");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testPerspectivesPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.preferencePages.Perspectives");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    //Only really checking if this opens without an exception
-    public void testFontEditorsPref() {
-        Dialog dialog = getPreferenceDialog("org.eclipse.ui.tests.dialogs.FontFieldEditorTestPreferencePage");
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testInfoProp() {
-        /*
-         * Commented out because it generates a failure
-         * of expect and actual width values. Suspect this
-         * is an SWT issue.
-         * 
-         Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.info.file");
-         DialogCheck.assertDialogTexts(dialog, this);
-         */
-    }
-
-    public void testProjectReferencesProp() {
-        /*
-         * Commented out because it generates a failure
-         * of expect and actual width values. Suspect this
-         * is an SWT issue.
-         * 
-         Dialog dialog = getPropertyDialog("org.eclipse.ui.propertypages.project.reference");
-         DialogCheck.assertDialogTexts(dialog, this);
-         */
-    }
-
-    /**
-     * Test the editors preference page and toggle the
-     * enable state twice to be sure there are no errors.
-     */
-    public void testFieldEditorEnablePref() {
-
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node
-                        .getId()
-                        .equals(
-                                "org.eclipse.ui.tests.dialogs.EnableTestPreferencePage")) {
-                    dialog.showPage(node);
-                    EnableTestPreferencePage page = (EnableTestPreferencePage) dialog
-                            .getPage(node);
-                    page.flipState();
-                    page.flipState();
-                    break;
-                }
-            }
-        }
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizards.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizards.java
deleted file mode 100644
index bde28a5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizards.java
+++ /dev/null
@@ -1,270 +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.ui.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.WizardNewProjectReferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.ExportWizard;
-import org.eclipse.ui.internal.dialogs.ImportWizard;
-import org.eclipse.ui.internal.dialogs.NewWizard;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
-
-public class UIWizards extends TestCase {
-    private static final int SIZING_WIZARD_WIDTH = 470;
-
-    private static final int SIZING_WIZARD_HEIGHT = 550;
-
-    private static final int SIZING_WIZARD_WIDTH_2 = 500;
-
-    private static final int SIZING_WIZARD_HEIGHT_2 = 500;
-
-    public UIWizards(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private IWorkbench getWorkbench() {
-        return PlatformUI.getWorkbench();
-    }
-
-    private WizardDialog exportWizard(IWizardPage page) {
-        ExportWizard wizard = new ExportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ExportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ExportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(), IWorkbenchHelpContextIds.EXPORT_WIZARD);
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    private WizardDialog importWizard(IWizardPage page) {
-        ImportWizard wizard = new ImportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ImportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ImportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(), IWorkbenchHelpContextIds.IMPORT_WIZARD);
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    public void testExportResources() {//reference: ExportResourcesAction
-        Dialog dialog = exportWizard(null);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newFileSystemResourceExportPage1(null) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     public void testZipFileExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newZipFileResourceExportPage1(null) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     */
-    public void testImportResources() {//reference: ImportResourcesAction
-        Dialog dialog = importWizard(null);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newFileSystemResourceImportPage1(WorkbenchPlugin.getDefault().getWorkbench(), StructuredSelection.EMPTY) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     public void testZipFileImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newZipFileResourceImportPage1(null) );
-     DialogCheck.assertDialog(dialog, this);
-     }
-     */
-    public void testNewFile() {
-        BasicNewFileResourceWizard wizard = new BasicNewFileResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFileAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_FILE_WIZARD);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewFolder() {
-        BasicNewFolderResourceWizard wizard = new BasicNewFolderResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFolderAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-        		IIDEHelpContextIds.NEW_FOLDER_WIZARD);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewProjectPage1() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-        		IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewProjectPage2() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardNewProjectReferencePage page = new WizardNewProjectReferencePage(
-                "basicReferenceProjectPage");//$NON-NLS-1$
-        page.setTitle(ResourceMessages.NewProject_referenceTitle);
-        page.setDescription(ResourceMessages.NewProject_referenceDescription);
-        page.setWizard(wizard);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title"); 		
-        dialog.showPage(page);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-        		IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewProject() {
-        // Create wizard selection wizard.
-        NewWizard wizard = new NewWizard();
-        wizard.setProjectsOnly(true);
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        // Create wizard dialog.
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-        		IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-        DialogCheck.assertDialog(dialog, this);
-    }
-
-    public void testNewResource() {
-        NewWizard wizard = new NewWizard();
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(), IWorkbenchHelpContextIds.NEW_WIZARD);
-        DialogCheck.assertDialog(dialog, this);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizardsAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizardsAuto.java
deleted file mode 100644
index 937489c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWizardsAuto.java
+++ /dev/null
@@ -1,324 +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.ui.tests.dialogs;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.ui.dialogs.WizardNewProjectReferencePage;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dialogs.ExportWizard;
-import org.eclipse.ui.internal.dialogs.ImportWizard;
-import org.eclipse.ui.internal.dialogs.NewWizard;
-import org.eclipse.ui.internal.ide.IIDEHelpContextIds;
-import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.wizards.newresource.BasicNewFileResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewFolderResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
-
-public class UIWizardsAuto extends TestCase {
-    private static final int SIZING_WIZARD_WIDTH = 470;
-
-    private static final int SIZING_WIZARD_HEIGHT = 550;
-
-    private static final int SIZING_WIZARD_WIDTH_2 = 500;
-
-    private static final int SIZING_WIZARD_HEIGHT_2 = 500;
-
-    private IProject project;
-
-    public UIWizardsAuto(String name) {
-        super(name);
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    private IWorkbench getWorkbench() {
-        return PlatformUI.getWorkbench();
-    }
-
-    private WizardDialog exportWizard(IWizardPage page) {
-        ExportWizard wizard = new ExportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ExportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ExportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(), IWorkbenchHelpContextIds.EXPORT_WIZARD);
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    private WizardDialog importWizard(IWizardPage page) {
-        ImportWizard wizard = new ImportWizard();
-        wizard.init(getWorkbench(), null);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("ImportResourcesAction");
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings
-                    .addNewSection("ImportResourcesAction");
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT);
-        WorkbenchHelp.setHelp(dialog.getShell(), IWorkbenchHelpContextIds.IMPORT_WIZARD);
-
-        if (page != null) {
-            page.setWizard(wizard);
-            dialog.showPage(page);
-        }
-        return dialog;
-    }
-
-    /**
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        try {
-            if (project != null) {
-                project.delete(true, true, null);
-                project = null;
-            }
-        } catch (CoreException e) {
-            fail(e.toString());
-        }
-    }
-
-    public void testExportResources() {//reference: ExportResourcesAction
-        Dialog dialog = exportWizard(null);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newFileSystemResourceExportPage1(null) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     public void testZipFileExport() {
-     Dialog dialog = exportWizard( DataTransferTestStub.newZipFileResourceExportPage1(null) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     */
-    public void testImportResources() {//reference: ImportResourcesAction
-        Dialog dialog = importWizard(null);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    /**
-     * 1GJWD2E: ITPUI:ALL - Test classes should not be released in public packages.
-     * 
-     public void testFileSystemImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newFileSystemResourceImportPage1(WorkbenchPlugin.getDefault().getWorkbench(), StructuredSelection.EMPTY) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     public void testZipFileImport() {
-     Dialog dialog = importWizard( DataTransferTestStub.newZipFileResourceImportPage1(null) );
-     DialogCheck.assertDialogTexts(dialog, this);
-     }
-     */
-    public void testNewFile() {
-        BasicNewFileResourceWizard wizard = new BasicNewFileResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFileAction_title");
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_FILE_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    /**
-     * Test for bug 30719 [Linked Resources] NullPointerException when setting filename for WizardNewFileCreationPage 
-     */
-    public void testNewFile2() {
-        BasicNewFileResourceWizard wizard = new BasicNewFileResourceWizard() {
-            public void addPages() {
-                super.addPages();
-                IWizardPage page = getPage("newFilePage1");
-                assertTrue("Expected newFilePage1",
-                        page instanceof WizardNewFileCreationPage);
-                WizardNewFileCreationPage fileCreationPage = (WizardNewFileCreationPage) page;
-
-                try {
-                    project = FileUtil.createProject("testNewFile2");
-                } catch (CoreException e) {
-                    fail(e.getMessage());
-                }
-                fileCreationPage.setContainerFullPath(project.getFullPath());
-                fileCreationPage.setFileName("testFileName.test");
-            }
-        };
-
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFileAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_FILE_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewFolder() {
-        BasicNewFolderResourceWizard wizard = new BasicNewFolderResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), new StructuredSelection());
-        wizard.setNeedsProgressMonitor(true);
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setText("CreateFolderAction_title"); 
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_FOLDER_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewProjectPage1() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title");
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewProjectPage2() {
-        BasicNewProjectResourceWizard wizard = new BasicNewProjectResourceWizard();
-        wizard.init(PlatformUI.getWorkbench(), null);
-        wizard.setNeedsProgressMonitor(true);
-
-        WizardNewProjectReferencePage page = new WizardNewProjectReferencePage(
-                "basicReferenceProjectPage");//$NON-NLS-1$
-        page.setTitle(ResourceMessages.NewProject_referenceTitle);
-        page.setDescription(ResourceMessages.NewProject_referenceDescription);
-        page.setWizard(wizard);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        dialog.getShell().setText("CreateFileAction_title"); 	
-        dialog.showPage(page);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewProject() {
-        // Create wizard selection wizard.
-        NewWizard wizard = new NewWizard();
-        wizard.setProjectsOnly(true);
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        // Create wizard dialog.
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(),
-                IIDEHelpContextIds.NEW_PROJECT_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-    public void testNewResource() {
-        NewWizard wizard = new NewWizard();
-        ISelection selection = getWorkbench().getActiveWorkbenchWindow()
-                .getSelectionService().getSelection();
-        IStructuredSelection selectionToPass = null;
-        if (selection instanceof IStructuredSelection)
-            selectionToPass = (IStructuredSelection) selection;
-        else
-            selectionToPass = StructuredSelection.EMPTY;
-        wizard.init(getWorkbench(), selectionToPass);
-        IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault()
-                .getDialogSettings();
-        IDialogSettings wizardSettings = workbenchSettings
-                .getSection("NewWizardAction");//$NON-NLS-1$
-        if (wizardSettings == null)
-            wizardSettings = workbenchSettings.addNewSection("NewWizardAction");//$NON-NLS-1$
-        wizard.setDialogSettings(wizardSettings);
-        wizard.setForcePreviousAndNextButtons(true);
-
-        WizardDialog dialog = new WizardDialog(getShell(), wizard);
-        dialog.create();
-        dialog.getShell().setSize(
-                Math.max(SIZING_WIZARD_WIDTH_2, dialog.getShell().getSize().x),
-                SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(dialog.getShell(), IWorkbenchHelpContextIds.NEW_WIZARD);
-        DialogCheck.assertDialogTexts(dialog, this);
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWorkingSetWizardsAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWorkingSetWizardsAuto.java
deleted file mode 100644
index 6f9d662..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dialogs/UIWorkingSetWizardsAuto.java
+++ /dev/null
@@ -1,182 +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.ui.tests.dialogs;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.registry.WorkingSetDescriptor;
-import org.eclipse.ui.internal.registry.WorkingSetRegistry;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Abstract test class for the working set wizard tests.
- */
-public abstract class UIWorkingSetWizardsAuto extends UITestCase {
-    protected static final int SIZING_WIZARD_WIDTH = 470;
-
-    protected static final int SIZING_WIZARD_HEIGHT = 550;
-
-    protected static final int SIZING_WIZARD_WIDTH_2 = 500;
-
-    protected static final int SIZING_WIZARD_HEIGHT_2 = 500;
-
-    protected static final String WORKING_SET_NAME_1 = "ws1";
-
-    protected static final String WORKING_SET_NAME_2 = "ws2";
-
-    protected WizardDialog fWizardDialog;
-
-    protected IWizard fWizard;
-
-    protected IProject p1;
-
-    protected IProject p2;
-
-    protected IFile f1;
-
-    protected IFile f2;
-
-    public UIWorkingSetWizardsAuto(String name) {
-        super(name);
-    }
-
-    protected void checkTreeItems() {
-        List widgets = getWidgets((Composite) fWizardDialog.getCurrentPage()
-                .getControl(), Tree.class);
-        Tree tree = (Tree) widgets.get(0);
-        TreeItem[] treeItems = tree.getItems();
-        for (int i = 0; i < treeItems.length; i++) {
-            treeItems[i].setChecked(true);
-            Event event = new Event();
-            event.detail = SWT.CHECK;
-            event.item = treeItems[i];
-            tree.notifyListeners(SWT.Selection, event);
-        }
-    }
-
-    private void deleteResources() throws CoreException {
-        try {
-            if (p1 != null) {
-                FileUtil.deleteProject(p1);
-            }
-            if (p2 != null) {
-                FileUtil.deleteProject(p2);
-            }
-
-        } catch (CoreException e) {
-            TestPlugin.getDefault().getLog().log(e.getStatus());
-            fail();
-            throw (e);
-
-        }
-
-    }
-
-    private Shell getShell() {
-        return DialogCheck.getShell();
-    }
-
-    protected List getWidgets(Composite composite, Class clazz) {
-        Widget[] children = composite.getChildren();
-        List selectedChildren = new ArrayList();
-
-        for (int i = 0; i < children.length; i++) {
-            Widget child = children[i];
-            if (child.getClass() == clazz) {
-                selectedChildren.add(child);
-            }
-            if (child instanceof Composite) {
-                selectedChildren.addAll(getWidgets((Composite) child, clazz));
-            }
-        }
-        return selectedChildren;
-    }
-
-    /**
-     * <code>fWizard</code> must be initialized by subclasses prior to
-     * calling this.
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-
-        fWizardDialog = new WizardDialog(getShell(), fWizard);
-        fWizardDialog.create();
-        Shell dialogShell = fWizardDialog.getShell();
-        dialogShell.setSize(Math.max(SIZING_WIZARD_WIDTH_2, dialogShell
-                .getSize().x), SIZING_WIZARD_HEIGHT_2);
-        WorkbenchHelp.setHelp(fWizardDialog.getShell(),
-                IWorkbenchHelpContextIds.WORKING_SET_NEW_WIZARD);
-
-        IWorkingSetManager workingSetManager = fWorkbench
-                .getWorkingSetManager();
-        IWorkingSet[] workingSets = workingSetManager.getWorkingSets();
-        for (int i = 0; i < workingSets.length; i++) {
-            workingSetManager.removeWorkingSet(workingSets[i]);
-        }
-        setupResources();
-    }
-
-    private void setupResources() throws CoreException {
-        p1 = FileUtil.createProject("TP1");
-        p2 = FileUtil.createProject("TP2");
-        f1 = FileUtil.createFile("f1.txt", p1);
-        f2 = FileUtil.createFile("f2.txt", p2);
-    }
-
-    protected void setTextWidgetText(String text, IWizardPage page) {
-        List widgets = getWidgets((Composite) page.getControl(), Text.class);
-        Text textWidget = (Text) widgets.get(0);
-        textWidget.setText(text);
-        textWidget.notifyListeners(SWT.Modify, new Event());
-    }
-
-    protected void doTearDown() throws Exception {
-        deleteResources();
-        super.doTearDown();
-    }
-    
-    protected WorkingSetDescriptor[] getEditableWorkingSetDescriptors() {
-        WorkingSetRegistry registry = WorkbenchPlugin.getDefault().getWorkingSetRegistry();
-        WorkingSetDescriptor[] all = registry.getWorkingSetDescriptors();
-        ArrayList editable = new ArrayList(all.length);
-        for (int i = 0; i < all.length; i++) {
-            WorkingSetDescriptor descriptor = all[i];
-            if (descriptor.isEditable()) {
-                editable.add(descriptor);
-            }
-        }
-        return (WorkingSetDescriptor[]) editable.toArray(new WorkingSetDescriptor[editable.size()]);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/Bug87211Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/Bug87211Test.java
deleted file mode 100644
index 7f435b4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/Bug87211Test.java
+++ /dev/null
@@ -1,82 +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.tests.dnd;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-
-public class Bug87211Test extends TestCase {
-	public static TestSuite suite() {
-		return new TestSuite(Bug87211Test.class);
-	}
-
-	private WorkbenchPage fPage;
-
-	private IWorkbenchWindow fWindow;
-
-	protected void setUp() throws Exception {
-		fWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		fPage = (WorkbenchPage) fWindow.getActivePage();
-	}
-
-	/**
-	 * Tests dragging a standalone view to a new position, then dragging
-	 * another view on top of it.  The views should still be in their
-	 * separate stacks.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testDragStandaloneView() throws Throwable {
-		fPage.setPerspective(WorkbenchPlugin.getDefault()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						StandaloneViewPerspective.PERSP_ID));
-		try {
-			IViewPart outline = fPage
-					.findView(StandaloneViewPerspective.OUTLINE_ID);
-			ViewDragSource source = new ViewDragSource(
-					StandaloneViewPerspective.OUTLINE_ID, true);
-			ViewDropTarget target = new ViewDropTarget(
-					new ExistingWindowProvider(fWindow),
-					StandaloneViewPerspective.RESOURCE_ID, SWT.CENTER);
-			source.drag(target);
-
-			IViewPart[] refs = fPage.getViewStack(outline);
-			assertEquals(
-					"Cannot drop standalone view onto another standalone view",
-					1, refs.length);
-
-			// the bug resulted in the dropped standalone view losing
-			// it's standalone status, so other views could be dropped
-			// on it.
-			ViewDragSource secondViewSource = new ViewDragSource(
-					StandaloneViewPerspective.TASK_ID, true);
-			ViewDropTarget draggedTarget = new ViewDropTarget(
-					new ExistingWindowProvider(fWindow),
-					StandaloneViewPerspective.OUTLINE_ID, SWT.CENTER);
-			secondViewSource.drag(draggedTarget);
-
-			refs = fPage.getViewStack(outline);
-			assertEquals(
-					"Cannot drop a second view onto the moved standalone view",
-					1, refs.length);
-		} finally {
-			fPage.closePerspective(fPage.getPerspective(), false, false);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedDropTarget.java
deleted file mode 100644
index acf75c8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedDropTarget.java
+++ /dev/null
@@ -1,36 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-
-public class DetachedDropTarget implements TestDropLocation {
-
-    /* (non-Javadoc)
-     * @see java.lang.Object#toString()
-     */
-    public String toString() {
-        return "out of the window";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.internal.dnd.TestDropLocation#getLocation()
-     */
-    public Point getLocation() {
-        return new Point(0,0);
-    }
-
-    public Shell[] getShells() {
-        return new Shell[0];
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedWindowDragTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedWindowDragTest.java
deleted file mode 100644
index 7a92e0f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DetachedWindowDragTest.java
+++ /dev/null
@@ -1,75 +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.tests.dnd;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-import org.eclipse.ui.tests.autotests.AbstractTestLogger;
-
-
-/**
- * This class is used as test entries for 'Detached Window' tests (i.e. where the drop target is
- * in a detached window. It's 'doSetup' augments the base behaviour by 'detaching' a stack containing
- * two 'mock' views and separately detaching an individual view, making them appropriate drop targets
- * for these tests.
- * <p>
- * In some cases the sources and targets may overlap with non-detached tests so in order to avoid
- * name clashes in the tests we add a suffix, "(Detached)", to the test's 'name' when the target is
- * 'Detached'.  
- * <p>
- * @since 3.1
- *
- */
-public class DetachedWindowDragTest	extends DragTest {
-	
-	public DetachedWindowDragTest(TestDragSource dragSource,
-			TestDropLocation dropTarget, AbstractTestLogger log) {
-		super(dragSource, dropTarget, log, " - detached");
-	}
-    
-    public void doSetUp() throws Exception {
-    	super.doSetUp();
-    	
-    	// First, show all the necessary views (note that we show view '2' first, this should
-    	// make view '1' the active view in the folder
-    	page.showView(DragDropPerspectiveFactory.dropViewId2);
-    	page.showView(DragDropPerspectiveFactory.dropViewId1);
-    	page.showView(DragDropPerspectiveFactory.dropViewId3);
-    	
-    	// Since we cannot yet 'detach' a view programmatically we'll have
-    	// to do it the hard way...
-    	
-    	// 'detach' the whole stack containing the Mock view 1
-    	IViewPart viewPart = page.showView(DragDropPerspectiveFactory.dropViewId1); 
-        DragOperations.drag(viewPart, new DetachedDropTarget(), true);
-    	
-    	// Now we'll 'detach' Mock view 3
-    	viewPart = page.showView(DragDropPerspectiveFactory.dropViewId3); 
-        DragOperations.drag(viewPart, new DetachedDropTarget(), false);
-    }
-
-	protected void doTearDown() throws Exception {
-		// hide detached views so they don't scare any following tests
-		
-		IViewReference view = page.findViewReference(DragDropPerspectiveFactory.dropViewId1);
-		page.attachView(view);
-//		page.hideView(view.getView(false));
-		view = page.findViewReference(DragDropPerspectiveFactory.dropViewId2);
-		page.attachView(view);
-//		page.hideView(view.getView(false));
-		view = page.findViewReference(DragDropPerspectiveFactory.dropViewId3);
-		page.attachView(view);
-//		page.hideView(view.getView(false));
-		
-		super.doTearDown();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.java
deleted file mode 100644
index 6bc7386..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragDropPerspectiveFactory.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.tests.dnd;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IPlaceholderFolderLayout;
-
-/**
- * @since 3.0
- */
-public class DragDropPerspectiveFactory implements IPerspectiveFactory {
-
-	// Id's needed by the 'Detached Window' Drag / Drop tests
-	public static final String viewFolderId = "oorg.eclipse.ui.test.dnd.detached.MockFolder1";
-	
-	public static final String dropViewId1 = "org.eclipse.ui.tests.api.MockViewPart";
-	public static final String dropViewId2 = "org.eclipse.ui.tests.api.MockViewPart2";
-	public static final String dropViewId3 = "org.eclipse.ui.tests.api.MockViewPart3";
-
-	/* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        String folderId = "org.eclipse.ui.test.dnd.mystack";
-
-        IFolderLayout folder = layout.createFolder(folderId,
-                IPageLayout.BOTTOM, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        folder.addView(IPageLayout.ID_OUTLINE);
-        folder.addView(IPageLayout.ID_PROBLEM_VIEW);
-        folder.addView(IPageLayout.ID_PROP_SHEET);
-
-        layout.addView(IPageLayout.ID_RES_NAV, IPageLayout.LEFT, 0.5f,
-                IPageLayout.ID_EDITOR_AREA);
-
-        // Extra stacks and views that will be shown and detached during the 'Detached Window' tests
-        IPlaceholderFolderLayout folder2 = layout.createPlaceholderFolder(viewFolderId,
-                IPageLayout.RIGHT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        folder2.addPlaceholder(dropViewId1);
-        folder2.addPlaceholder(dropViewId2);
-        
-        layout.addPlaceholder(dropViewId3, IPageLayout.BOTTOM, 0.5f, viewFolderId);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragOperations.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragOperations.java
deleted file mode 100644
index 76aa243..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragOperations.java
+++ /dev/null
@@ -1,157 +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.tests.dnd;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.internal.EditorSite;
-import org.eclipse.ui.internal.LayoutPart;
-import org.eclipse.ui.internal.PartPane;
-import org.eclipse.ui.internal.PartSite;
-import org.eclipse.ui.internal.PartStack;
-import org.eclipse.ui.internal.ViewSite;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-
-/**
- * @since 3.0
- */
-public class DragOperations {
-
-    /**
-     * Drags the given view OR editor to the given location (i.e. it only cares that we're given
-     * a 'Part' and doesn't care whether it's a 'View' or an 'Editor'.
-     * <p>
-     * This method should eventually replace the original one once the Workbench has been updated
-     * to handle Views and Editors without distincton. 
-     * 
-     * @param editor
-     * @param target
-     * @param wholeFolder
-     */
-    public static void drag(IWorkbenchPart part, TestDropLocation target,
-            boolean wholeFolder) {
-        DragUtil.forceDropLocation(target);
-
-        PartSite site = (PartSite) part.getSite();
-        PartPane pane = site.getPane();
-        PartStack parent = ((PartStack) (pane.getContainer()));
-
-        parent.paneDragStart(wholeFolder ? null : pane, Display.getDefault().getCursorLocation(), false);
-
-        DragUtil.forceDropLocation(null);
-    }
-
-    /**
-     * Returns the name of the given editor
-     * 
-     * @param editor
-     * @return
-     */
-    public static String getName(IEditorPart editor) {
-        PartPane pane = ((EditorSite) editor.getSite()).getPane();
-        IWorkbenchPartReference ref = pane.getPartReference();
-        return ref.getPartName();
-    }
-
-    public static PartPane getPane(IEditorPart editor) {
-        return ((EditorSite) editor.getSite()).getPane();
-    }
-
-    public static PartPane getPane(IViewPart view) {
-        return ((ViewSite) view.getSite()).getPane();
-    }
-
-    public static Rectangle getDisplayBounds(PartPane pane) {
-        LayoutPart parent = ((LayoutPart) (pane.getContainer()));
-        Rectangle bounds = DragUtil.getDisplayBounds(parent.getControl());
-
-        return bounds;
-    }
-
-    public static Point getLocation(PartPane pane, int side) {
-
-        return DragOperations.getPoint(getDisplayBounds(pane), side);
-    }
-
-    /**
-     * @param page
-     * @param i
-     * @return
-     */
-    public static Point getPointInEditorArea(WorkbenchPage page, int side) {
-        return DragOperations.getPoint(DragUtil.getDisplayBounds(page
-                .getEditorPresentation().getLayoutPart().getControl()), side);
-    }
-
-    public static Point getPoint(Rectangle bounds, int side) {
-        Point centerPoint = Geometry.centerPoint(bounds);
-
-        switch (side) {
-        case SWT.TOP:
-            return new Point(centerPoint.x, bounds.y + 1);
-        case SWT.BOTTOM:
-            return new Point(centerPoint.x, bounds.y + bounds.height - 1);
-        case SWT.LEFT:
-            return new Point(bounds.x + 1, centerPoint.y);
-        case SWT.RIGHT:
-            return new Point(bounds.x + bounds.width - 1, centerPoint.y);
-        }
-
-        return centerPoint;
-    }
-
-    public static String nameForConstant(int swtSideConstant) {
-        switch (swtSideConstant) {
-        case SWT.TOP:
-            return "top";
-        case SWT.BOTTOM:
-            return "bottom";
-        case SWT.LEFT:
-            return "left";
-        case SWT.RIGHT:
-            return "right";
-        }
-
-        return "center";
-    }
-
-    /**
-     * @param targetPart
-     * @return
-     */
-    public static String getName(IViewPart targetPart) {
-        return targetPart.getTitle();
-    }
-
-    /**
-     * 
-     * 
-     * @param page
-     * @return
-     */
-    public static String getLayoutDescription(WorkbenchPage page) {
-        StringBuffer buf = new StringBuffer();
-
-        page.getActivePerspective().describeLayout(buf);
-
-        // Test result -- this will be a value in the resulting map
-        return buf.toString();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTest.java
deleted file mode 100644
index 87c24c6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dnd;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.api.MockEditorPart;
-import org.eclipse.ui.tests.autotests.AbstractTestLogger;
-import org.eclipse.ui.tests.autotests.UITestCaseWithResult;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-/**
- * Tests a single drag-drop scenario, given a dragSource capable of initiating the drag and
- * a dropTarget that can locate the drop location. DragTestSuite will create a large number
- * of DragTests by matching combintations of drag sources with drop targets.  
- *<p></p>
- * <p>
- * <b>TEST NAMES:</b>
- * </p>
- * <p>
- * The name of the test indicates what drag scenario was being attempted. For example, the
- * test "drag Navigator to right of editor area" drags the Navigator view over
- * the editor area, dropping it near the right edge. Drag sources are described as follows:  
- * </p>
- * <p></p>  
- * <p>
- * [maximized] viewname [folder] 
- * </p>
- * <p></p>
- * <p>Drag sources prefixed by "maximized" were maximized at the time the drag started.
- * The word [folder] indicates that folder containing the given editor or view was being dragged.
- * Otherwise, the view itself was being dragged.</p>
- * <p></p>
- * <p>Drop targets are described as follows:</p> 
- * <p></p>  
- * <p>
- * [left|right|top|bottom|center] of targetname 
- * </p>
- * <p></p>
- * <p>Drop targets are always on top of the target. That is, "right of Navigator" means "on top of
- * the navigator view near its right edge" -- NOT "to the right of the Navigator view". When the
- * drop target is on an edge, it is always located 1 pixel away from the middle of that edge.</p>  
- *
- *<p></p>
- * <p>
- * <b>WHAT TO DO IF THIS TEST FAILS:</b>
- * </p>
- * <p>
- * If a drag operation did not have the intended effect, the test will fail with
- * a result like: 
- * </p>
- * <p></p>
- * <p>
- * Expecting 'layout ((((*Navigator)-active (*Problems))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))' and found 'layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))-active (*Navigator))'
- * </p>
- * <p></p>
- * <p>
- * The expected and actual results are ASCII pictures of the layout. A stack of views or editors
- * is shown as a list enclosed in brackets, with an asterisk indicating the selected pane. The stack
- * may be prefixed by the words "active" or "active_nofocus" if they currently have the active or 
- * active_nofocus appearance. Inactive stacks have no prefix. 
- * </p>
- * <p></p>
- * <p>
- * For example, (Problems, *Console, Properties) indicates a stack containing the Problems, Console, and Properties views, 
- * where the Console view was currently selected. The root layout and editor areas are shown as "layout (...)". A vertical sash is shown as a 
- * bar "|" and a horizontal sash is shown using a dash "-".  All drag tests are done in the Drag Test 
- * Perspective.
- * </p>
- * <p>
- * The initial layout is:
- * </p>
- * <p></p>
- * <p>
- * layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))
- * </p>
- * <p></p>
- * <p>
- * Where editor 0 is "Mock Editor 1", and editors 1 and 2 are shown as "Mock Editor 2".
- * </p>
- * <p></p>
- * <p>
- * If you see a message like "dragtests.xml is out of date", this indicates that new tests
- * were added without describing their intended behavior in dragtests.xml. In that case, ensure that
- * there are currently no failures and regenerate dragtests.xml as described below.
- * </p>
- * <p></p>
- * <p>
- * <b>WHAT TO DO IF THE INTENTED BEHAVIOR CHANGES:</b>
- * </p>
- * <p>
- * If new tests are added or the existing drag/drop behavior is changed, it will
- * be necessary to update dragtests.xml. Do this as follows:</p>
- * <ul>
- * <li>include org.eclipse.ui.tests with your other plugins and launch an inner workspace</li>
- * <li>Go to customize perspective... -> commands -> Drag Test. This will add the "Drag-Drop Snapshot" item to your menubar.</li>
- * <li>Select "Drag-Drop Snapshot"</li>
- * <li>Select a file where the new shapshot will be saved, and click Okay</li>
- * <li>DO NOT use the mouse while generating dragtests.xml. This
- *     can interfere with the tests and cause an incorrect behavior to be recorded as the expected behavior.
- *     In particular, focus changes should be avoided.</li>
- * <li>Wait for several minutes while the test runs</li>
- * <li>When the test is complete, copy the file over the old data/dragtests.xml file</li> 
- * </ul>
- * <p>
- * At this point, the current drag/drop behavior will be considered the correct behavior,
- * and deviations will cause the test suites to fail.
- * </p>
- * 
- * @since 3.0
- */
-public class DragTest extends UITestCaseWithResult {
-    TestDragSource dragSource;
-
-    TestDropLocation dropTarget;
-
-    String intendedResult;
-
-    // 
-    static IProject project;
-
-    static IFile file1, file2;
-
-    IEditorPart editor1, editor2;
-
-    static IFile file3;
-
-    IEditorPart editor3;
-
-    static WorkbenchWindow window;
-
-    static WorkbenchPage page;
-
-    public DragTest(TestDragSource dragSource, TestDropLocation dropTarget, AbstractTestLogger log, String suffix) {
-        super("drag " + dragSource.toString() + " to " + dropTarget.toString() + suffix, log);
-        this.dragSource = dragSource;
-        this.dropTarget = dropTarget;
-    }
-
-    public DragTest(TestDragSource dragSource, TestDropLocation dropTarget, AbstractTestLogger log) {
-    	this(dragSource, dropTarget, log, "");
-    }
-    
-    public void doSetUp() throws Exception {
-        // don't allow UITestCase to manage the deactivation of our window
-        manageWindows(false);
-        //window = (WorkbenchWindow)openTestWindow();
-
-        //initialize the window
-        if (window == null) {
-            window = (WorkbenchWindow) fWorkbench.openWorkbenchWindow(
-            	"org.eclipse.ui.tests.dnd.dragdrop", getPageInput());
-
-            page = (WorkbenchPage) window.getActivePage();
-
-            project = FileUtil.createProject("DragTest"); //$NON-NLS-1$
-            file1 = FileUtil.createFile("DragTest1.txt", project); //$NON-NLS-1$
-            file2 = FileUtil.createFile("DragTest2.txt", project); //$NON-NLS-1$
-            file3 = FileUtil.createFile("DragTest3.txt", project); //$NON-NLS-1$
-
-            // Disable animations since they occur concurrently and can interferre
-            // with locating drop targets
-            IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-            apiStore.setValue(
-                    IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS,
-                    false);
-        }
-        
-        page.resetPerspective();
-        page.closeAllEditors(false);
-        
-        //ensure that contentoutline is the focus part (and at the top of its stack)
-        page.showView("org.eclipse.ui.views.ContentOutline");
-        page.hideView(page.findView("org.eclipse.ui.internal.introview"));
-        editor1 = page.openEditor(new FileEditorInput(file1),
-                MockEditorPart.ID1);
-        editor2 = page.openEditor(new FileEditorInput(file2),
-                MockEditorPart.ID2);
-        editor3 = page.openEditor(new FileEditorInput(file3),
-                MockEditorPart.ID2);
-
-        window.getShell().setActive();
-        DragOperations
-                .drag(editor2, new EditorDropTarget(new ExistingWindowProvider(window), 0, SWT.CENTER), false);
-        DragOperations
-                .drag(editor3, new EditorAreaDropTarget(new ExistingWindowProvider(window), SWT.RIGHT), false);
-    }
-
-    /**
-     * This method is useful in order to 'freeze' the test environment after a particular test in order to 
-     * manipulate the environment to figure out what's going on. It essentially opens a new shell and enters
-     * a modal loop on it, preventing the tests from continuing until the 'stall' shell is closed. Note that
-     * using a dialog would prevent us from manipulating the shell that the drag and drop tests are being performed in
-     */
-    public void stallTest() {
-    	// Add the explicit test names that you want to stall on here...
-    	// (It's probably easiest to cut them directly from the exected results file)
-    	String[] testNames = {
-    	};
-    	
-    	// Does the name match any of the explicit test names??
-    	boolean testNameMatches = false;
-    	for (int i = 0; i < testNames.length; i++) {
-    		if (testNames[i].equals(this.getName())) {
-    			testNameMatches = true;
-    			break;
-    		}
-    	}
-    	
-    	// Stall always if no explicit names are supplied. Otherwise only stall when there's a
-    	// match.
-    	if (testNames.length == 0 || testNameMatches) {
-	    	Display display = Display.getCurrent();
-	    	Shell loopShell = new Shell(display, SWT.SHELL_TRIM);
-	    	loopShell.setBounds(0,0,200,100);
-	    	loopShell.setText("Test Stall Shell");
-	    	loopShell.setVisible(true);
-	    	
-	    	while (loopShell != null && !loopShell.isDisposed()) {
-	    		if (!display.readAndDispatch())
-	    			display.sleep();
-	    	}
-    	}
-    }
-    
-    public String performTest() throws Throwable {
-        // Uncomment the following line to 'stall' the tests here...
-        //stallTest();
-
-    	// KLUDGE!! revert to the old min/max when dragging maximized views
-    	// see bug 180242. This code should disappear before release...
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean curMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-    	if (getName().indexOf("drag maximized") >= 0)
-    		apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-    		
-    	dragSource.setPage(page);
-
-        dragSource.drag(dropTarget);
-
-        page.testInvariants();
-        
-        // Uncomment the following line to 'stall' the tests here...
-        //stallTest();
-        
-        // KLUDGE!! Restore the min/max pref
-		apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, curMinMaxState);
-        
-        return DragOperations.getLayoutDescription(page);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java
deleted file mode 100644
index b400d7c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/DragTestSuite.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dnd;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.autotests.AutoTestSuite;
-
-/**
- * @since 3.0
- */
-public class DragTestSuite extends AutoTestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new DragTestSuite();
-    }
-
-    /**
-     * Whether the platform we're running on supports the detaching of views.  
-     * This is initialized in the following static block.
-     * 
-     * @since 3.2
-     */
-	private static final boolean isDetachingSupported;
-	
-	static {
-		Shell shell = new Shell();
-		Composite c = new Composite(shell, SWT.NONE);
-		isDetachingSupported  = c.isReparentable();
-		shell.dispose();
-	}
-
-    public DragTestSuite() {
-        super(Platform.find(TestPlugin.getDefault().getBundle(), new Path("data/dragtests.xml")));
-        
-        String resNav = IPageLayout.ID_RES_NAV;
-        String probView = IPageLayout.ID_PROBLEM_VIEW;
-
-        // Drag sources for views
-        TestDragSource[] viewDragSources = new TestDragSource[] {
-                new ViewDragSource(resNav, false),
-                new ViewDragSource(resNav, true),
-                new ViewDragSource(probView, false),
-                new ViewDragSource(probView, true) };
-
-        // Drag sources for editors
-        TestDragSource[] editorDragSources = new TestDragSource[] {
-                new EditorDragSource(0, false), new EditorDragSource(0, true),
-                new EditorDragSource(2, false), new EditorDragSource(2, true) };
-
-        // Drop targets that will only be tested for views
-
-        // Drag sources for maximized views
-        TestDragSource[] maximizedViewDragSources = new TestDragSource[] {
-                new ViewDragSource(resNav, false, true),
-                new ViewDragSource(resNav, true, true),
-                new ViewDragSource(probView, false, true),
-                new ViewDragSource(probView, true, true) };
-
-        // Now generate all test cases
-        for (int i = 0; i < maximizedViewDragSources.length; i++) {
-            TestDragSource source = maximizedViewDragSources[i];
-            
-            addAllCombinations(source, getMaximizedViewDropTargets(source));
-        }
-        
-        for (int i = 0; i < viewDragSources.length; i++) {
-            TestDragSource source = viewDragSources[i];
-            
-            addAllCombinations(source, getViewDropTargets(source));
-            addAllCombinations(source, getCommonDropTargets(source));
-            
-            // Test dragging onto a detached window
-            addAllCombinationsDetached(source, getDetachedWindowDropTargets(source));
-        }
-      
-        for (int i = 0; i < editorDragSources.length; i++) {
-            TestDragSource source = editorDragSources[i];
-            
-            addAllCombinations(source, getEditorDropTargets(source));
-            addAllCombinations(source, getCommonDropTargets(source));
-            
-            // Test dragging onto a detached window
-            addAllCombinationsDetached(source, getDetachedWindowDropTargets(source));
-        }
-        addTest(new TestSuite(Bug87211Test.class));
-    }
-
-    /**
-     * Returns drop targets that will only be tested for maximized views. (we only need to ensure
-     * that the view will become un-maximized -- the regular view test cases will excercise
-     * the remainder of the view dragging code). We need to drag each kind of maximized view
-     * to something that couldn't be seen while the view is maximized -- like the editor area).
-     * 
-     * @param dragSource
-     * @return
-     * @since 3.1
-     */
-    private TestDropLocation[] getMaximizedViewDropTargets(IWorkbenchWindowProvider originatingWindow) {
-        return new TestDropLocation[] { 
-                new EditorAreaDropTarget(originatingWindow, SWT.RIGHT) };        
-    }
-    
-    private TestDropLocation[] getCommonDropTargets(IWorkbenchWindowProvider dragSource) {
-        TestDropLocation[] targets = { 
-            // Test dragging to the edges of the workbench window
-            new WindowDropTarget(dragSource, SWT.TOP),
-            new WindowDropTarget(dragSource, SWT.BOTTOM),
-            new WindowDropTarget(dragSource, SWT.LEFT), 
-            new WindowDropTarget(dragSource, SWT.RIGHT) };
-        	
-		return targets;
-    }
-    
-    /**
-     * Return all drop targets that only apply to views, given the window being dragged from.
-     * 
-     * @param provider
-     * @return
-     * @since 3.1
-     */
-    private TestDropLocation[] getViewDropTargets(IWorkbenchWindowProvider dragSource) {
-        
-        String resNav = IPageLayout.ID_RES_NAV;
-        String probView = IPageLayout.ID_PROBLEM_VIEW;
-        
-        TestDropLocation[] targets = new TestDropLocation[] {
-            // Editor area
-            new EditorAreaDropTarget(dragSource, SWT.LEFT),
-            new EditorAreaDropTarget(dragSource, SWT.RIGHT),
-            new EditorAreaDropTarget(dragSource, SWT.TOP),
-            new EditorAreaDropTarget(dragSource, SWT.BOTTOM),
-
-            // Resource navigator (a view that isn't in a stack)
-            new ViewDropTarget(dragSource, resNav, SWT.LEFT),
-            new ViewDropTarget(dragSource, resNav, SWT.RIGHT),
-            new ViewDropTarget(dragSource, resNav, SWT.BOTTOM),
-            new ViewDropTarget(dragSource, resNav, SWT.CENTER),
-            new ViewDropTarget(dragSource, resNav, SWT.TOP),
-
-            // Problems view (a view that is in a stack)
-            // Omit the top from this test, since the meaning of dropping on the top border of 
-            // a stack may change in the near future
-            new ViewDropTarget(dragSource, probView, SWT.LEFT),
-            new ViewDropTarget(dragSource, probView, SWT.RIGHT),
-            new ViewDropTarget(dragSource, probView, SWT.BOTTOM),
-            new ViewDropTarget(dragSource, probView, SWT.CENTER),
-            new ViewDropTarget(dragSource, probView, SWT.TOP),
-
-            // Fast view bar
-            new FastViewBarDropTarget(dragSource),
-
-            // View tabs
-            new ViewTabDropTarget(dragSource, resNav), 
-            new ViewTabDropTarget(dragSource, probView),
-            new ViewTitleDropTarget(dragSource, probView),
-            };
-        	
-		return targets;
-    }
-    
-    /**
-     * Return all drop targets that apply to detached windows, given the window being dragged from.
-     * 
-     * @param provider
-     * @return
-     * @since 3.1
-     */
-    private TestDropLocation[] getDetachedWindowDropTargets(IWorkbenchWindowProvider dragSource) {
-        TestDropLocation[] targets = new TestDropLocation[] {
-            // Editor area
-            new ViewDropTarget(dragSource, DragDropPerspectiveFactory.dropViewId1, SWT.CENTER),
-            new ViewDropTarget(dragSource, DragDropPerspectiveFactory.dropViewId3, SWT.CENTER),
-            new ViewTabDropTarget(dragSource, DragDropPerspectiveFactory.dropViewId1),
-            new DetachedDropTarget()
-        };
-        
-		return targets;
-    }
-
-    private TestDropLocation[] getEditorDropTargets(IWorkbenchWindowProvider originatingWindow) {
-        String resNav = IPageLayout.ID_RES_NAV;
-        // Drop targets that will only be tested for editors
-        return new TestDropLocation[] {
-        // A view
-                new ViewDropTarget(originatingWindow, resNav, SWT.CENTER),
-    
-                // A stand-alone editor
-                new EditorDropTarget(originatingWindow, 2, SWT.LEFT),
-                new EditorDropTarget(originatingWindow, 2, SWT.RIGHT),
-                new EditorDropTarget(originatingWindow, 2, SWT.TOP),
-                new EditorDropTarget(originatingWindow, 2, SWT.BOTTOM),
-                new EditorDropTarget(originatingWindow, 2, SWT.CENTER),
-    
-                // Editors (a stack of editors)
-                new EditorDropTarget(originatingWindow, 0, SWT.LEFT),
-                new EditorDropTarget(originatingWindow, 0, SWT.RIGHT),
-                new EditorDropTarget(originatingWindow, 0, SWT.BOTTOM),
-                new EditorDropTarget(originatingWindow, 0, SWT.CENTER),
-                new EditorTabDropTarget(originatingWindow, 0),
-                new EditorTitleDropTarget(originatingWindow, 0), 
-                };
-    }
-    
-    private void addAllCombinations(TestDragSource dragSource,
-            TestDropLocation[] dropTargets) {
-
-        for (int destId = 0; destId < dropTargets.length; destId++) {
-            DragTest newTest = new DragTest(dragSource, dropTargets[destId], getLog());
-            addTest(newTest);
-        }
-    }
-    
-    private void addAllCombinationsDetached(TestDragSource dragSource,
-            TestDropLocation[] dropTargets) {
-
-    	if (isDetachingSupported) {
-	        for (int destId = 0; destId < dropTargets.length; destId++) {
-	            DragTest newTest = new DetachedWindowDragTest(dragSource, dropTargets[destId], getLog());
-	            addTest(newTest);
-	        }
-    	}
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorAreaDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorAreaDropTarget.java
deleted file mode 100644
index fb4631b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorAreaDropTarget.java
+++ /dev/null
@@ -1,44 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-
-/**
- * @since 3.0
- */
-public class EditorAreaDropTarget extends WorkbenchWindowDropTarget {
-    int side;
-
-    /**
-     * @param window
-     * @param side
-     */
-    public EditorAreaDropTarget(IWorkbenchWindowProvider provider, int side) {
-        super(provider);
-        this.side = side;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        return DragOperations.nameForConstant(side) + " of editor area";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        return DragOperations.getPointInEditorArea(getPage(), side);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDragSource.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDragSource.java
deleted file mode 100644
index 77ab830..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDragSource.java
+++ /dev/null
@@ -1,58 +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.tests.dnd;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-
-/**
- * @since 3.0
- */
-public class EditorDragSource extends TestDragSource {
-
-    int editorIdx;
-
-    boolean wholeFolder;
-
-    /**
-     * @param editor
-     * @param wholeFolder
-     */
-    public EditorDragSource(int editorIdx, boolean wholeFolder) {
-        super();
-        this.editorIdx = editorIdx;
-        this.wholeFolder = wholeFolder;
-    }
-
-    IEditorPart getPart() {
-        return getPage().getEditors()[editorIdx];
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDragSource#getName()
-     */
-    public String toString() {
-        String title = "editor " + editorIdx;
-
-        if (wholeFolder) {
-            return title + " folder";
-        }
-        return title;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDragSource#drag(org.eclipse.swt.graphics.Point)
-     */
-    public void drag(TestDropLocation target) {
-        DragOperations.drag(getPart(), target, wholeFolder);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDropTarget.java
deleted file mode 100644
index 2a6e2a6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorDropTarget.java
+++ /dev/null
@@ -1,54 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @since 3.0
- */
-public class EditorDropTarget extends WorkbenchWindowDropTarget {
-
-    int editorIdx;
-
-    int side;
-
-    public EditorDropTarget(IWorkbenchWindowProvider provider, int editorIdx, int side) {
-        super(provider);
-        this.editorIdx = editorIdx;
-        this.side = side;
-    }
-
-    IEditorPart getPart() {
-        return getPage().getEditors()[editorIdx];
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        return DragOperations.nameForConstant(side) + " of editor " + editorIdx;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        return DragOperations.getLocation(DragOperations.getPane(getPart()),
-                side);
-    }
-    
-    public Shell getShell() {
-    	return getPart().getSite().getShell();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTabDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTabDropTarget.java
deleted file mode 100644
index dcdf66e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTabDropTarget.java
+++ /dev/null
@@ -1,54 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @since 3.0
- */
-public class EditorTabDropTarget extends WorkbenchWindowDropTarget {
-
-    int editorIdx;
-
-    public EditorTabDropTarget(IWorkbenchWindowProvider provider, int editorIdx) {
-        super(provider);
-        this.editorIdx = editorIdx;
-    }
-
-    IEditorPart getPart() {
-        return getPage().getEditors()[editorIdx];
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        return "editor " + editorIdx + " tab area";
-    }
-    
-    public Shell getShell() {
-    	return getPart().getSite().getShell();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        Rectangle bounds = DragOperations.getDisplayBounds(DragOperations
-                .getPane(getPart()));
-
-        return new Point(bounds.x + 8, bounds.y + 8);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTitleDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTitleDropTarget.java
deleted file mode 100644
index 45576a6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/EditorTitleDropTarget.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * @since 3.0
- */
-public class EditorTitleDropTarget extends WorkbenchWindowDropTarget {
-
-    int editorIdx;
-
-    public EditorTitleDropTarget(IWorkbenchWindowProvider provider, int editorIdx) {
-        super(provider);
-        this.editorIdx = editorIdx;
-    }
-
-    IEditorPart getPart() {
-        return getPage().getEditors()[editorIdx];
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        return "editor " + editorIdx + " title area";
-    }
-    
-    public Shell getShell() {
-    	return getPart().getSite().getShell();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        Rectangle bounds = DragOperations.getDisplayBounds(DragOperations
-                .getPane(getPart()));
-
-        return new Point( (bounds.x + bounds.width) - 4, bounds.y + 4);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ExistingWindowProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ExistingWindowProvider.java
deleted file mode 100644
index c45d00a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ExistingWindowProvider.java
+++ /dev/null
@@ -1,27 +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.tests.dnd;
-
-import org.eclipse.ui.IWorkbenchWindow;
-
-public class ExistingWindowProvider implements IWorkbenchWindowProvider {
-
-    private IWorkbenchWindow window;
-    
-    public ExistingWindowProvider(IWorkbenchWindow window) {
-        this.window = window;
-    }
-    
-    public IWorkbenchWindow getWorkbenchWindow() {
-        return window;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/FastViewBarDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/FastViewBarDropTarget.java
deleted file mode 100644
index fb8e582..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/FastViewBarDropTarget.java
+++ /dev/null
@@ -1,53 +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.tests.dnd;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.dnd.DragUtil;
-
-/**
- * @since 3.0
- */
-public class FastViewBarDropTarget extends WorkbenchWindowDropTarget {
-
-    /**
-     * @param window
-     */
-    public FastViewBarDropTarget(IWorkbenchWindowProvider provider) {
-        super(provider);
-    }
-
-    /* (non-Javadoc)
-     * @see java.lang.Object#toString()
-     */
-    public String toString() {
-        return "fast view bar";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        WorkbenchWindow window = (WorkbenchWindow) getPage()
-                .getWorkbenchWindow();
-
-        Control control = window.getFastViewBar().getControl();
-        Rectangle region = DragUtil.getDisplayBounds(control);
-        Point result = Geometry.centerPoint(region);
-
-        return result;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/IWorkbenchWindowProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/IWorkbenchWindowProvider.java
deleted file mode 100644
index 181b3bd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/IWorkbenchWindowProvider.java
+++ /dev/null
@@ -1,17 +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.tests.dnd;
-
-import org.eclipse.ui.IWorkbenchWindow;
-
-public interface IWorkbenchWindowProvider {
-    public IWorkbenchWindow getWorkbenchWindow();
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/StandaloneViewPerspective.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/StandaloneViewPerspective.java
deleted file mode 100644
index ec79be1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/StandaloneViewPerspective.java
+++ /dev/null
@@ -1,45 +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.tests.dnd;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * 
- * @since 3.1.1
- */
-public class StandaloneViewPerspective implements IPerspectiveFactory {
-
-	public static final String OUTLINE_ID = IPageLayout.ID_OUTLINE;
-
-	public static final String RESOURCE_ID = IPageLayout.ID_RES_NAV;
-
-	public static final String TASK_ID = IPageLayout.ID_TASK_LIST;
-
-	public static final String PERSP_ID = "org.eclipse.ui.tests.dnd.StandaloneViewPerspective";
-
-	public StandaloneViewPerspective() {
-		// do nothing
-	}
-
-	public void createInitialLayout(IPageLayout layout) {
-		layout.setEditorAreaVisible(true);
-
-		layout.addStandaloneView(RESOURCE_ID, true, IPageLayout.LEFT, 0.25f,
-				IPageLayout.ID_EDITOR_AREA);
-		layout.addStandaloneView(OUTLINE_ID, true, IPageLayout.RIGHT, 0.25f,
-				IPageLayout.ID_EDITOR_AREA);
-		layout.getViewLayout(OUTLINE_ID).setCloseable(false);
-		layout.addStandaloneView(TASK_ID, true, IPageLayout.BOTTOM, 0.25f,
-				IPageLayout.ID_EDITOR_AREA);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/TestDragSource.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/TestDragSource.java
deleted file mode 100644
index 58ae00b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/TestDragSource.java
+++ /dev/null
@@ -1,46 +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.tests.dnd;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-
-/**
- * @since 3.0
- */
-public abstract class TestDragSource implements IWorkbenchWindowProvider {
-    private WorkbenchPage page;
-
-    public abstract String toString();
-
-    public abstract void drag(TestDropLocation target);
-
-    public void setPage(WorkbenchPage page) {
-        this.page = page;
-    }
-
-    public IWorkbenchWindow getWorkbenchWindow() {
-        return getPage().getWorkbenchWindow();
-    }
-    
-    public WorkbenchPage getPage() {
-        if (page == null) {
-            page = (WorkbenchPage) ((WorkbenchWindow) PlatformUI
-                    .getWorkbench().getActiveWorkbenchWindow()).getActivePage();
-        }
-        return page;
-    }
-    
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDragSource.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDragSource.java
deleted file mode 100644
index 5f8d032..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDragSource.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.tests.dnd;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.internal.PartPane;
-import org.eclipse.ui.internal.ViewSite;
-import org.eclipse.ui.internal.ViewStack;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.dnd.DragUtil;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-import org.eclipse.ui.views.IViewDescriptor;
-
-/**
- * @since 3.0
- */
-public class ViewDragSource extends TestDragSource {
-
-    String targetPart;
-
-    boolean wholeFolder;
-
-    boolean maximized = false;
-
-    public ViewDragSource(String part, boolean dragWholeFolder) {
-        this(part, dragWholeFolder, false);
-    }
-
-    public ViewDragSource(String part, boolean dragWholeFolder,
-            boolean maximized) {
-        this.maximized = maximized;
-        this.targetPart = part;
-
-        wholeFolder = dragWholeFolder;
-    }
-
-    public IViewPart getPart() {
-        return getPage().findView(targetPart);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDragSource#getName()
-     */
-    public String toString() {
-        IViewDescriptor desc = WorkbenchPlugin.getDefault().getViewRegistry()
-                .find(targetPart);
-        String title = desc.getLabel();
-
-        if (wholeFolder) {
-            title = title + " folder";
-        }
-
-        if (maximized) {
-            title = "maximized " + title;
-        }
-
-        return title;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDragSource#drag(org.eclipse.swt.graphics.Point)
-     */
-    public void drag(TestDropLocation target) {
-        IViewPart part = getPart();
-
-        WorkbenchPage page = getPage();
-        PartPane pane = ((ViewSite) part.getSite()).getPane();
-        if (maximized) {
-            page.toggleZoom(pane.getPartReference());
-        }
-        
-        DragUtil.forceDropLocation(target);
-        ViewStack parent = ((ViewStack) (pane.getContainer()));
-        
-        PartPane presentablePart = wholeFolder ? null : pane;
-        parent.paneDragStart(presentablePart, Display.getDefault()
-                .getCursorLocation(), false);
-
-        DragUtil.forceDropLocation(null);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDropTarget.java
deleted file mode 100644
index a97422a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewDropTarget.java
+++ /dev/null
@@ -1,60 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.views.IViewDescriptor;
-
-/**
- * @since 3.0
- */
-public class ViewDropTarget extends WorkbenchWindowDropTarget {
-
-    String targetPart;
-
-    int side;
-
-    public ViewDropTarget(IWorkbenchWindowProvider provider, String part, int side) {
-        super(provider);
-        targetPart = part;
-        this.side = side;
-    }
-
-    IViewPart getPart() {
-        return getPage().findView(targetPart);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        IViewDescriptor desc = WorkbenchPlugin.getDefault().getViewRegistry()
-                .find(targetPart);
-        String title = desc.getLabel();
-
-        return DragOperations.nameForConstant(side) + " of " + title;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        return DragOperations.getLocation(DragOperations.getPane(getPart()),
-                side);
-    }
-    
-    public Shell getShell() {
-    	return getPart().getSite().getShell();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTabDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTabDropTarget.java
deleted file mode 100644
index 36e5a6f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTabDropTarget.java
+++ /dev/null
@@ -1,67 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.views.IViewDescriptor;
-
-/**
- * Note: this drop location is hardcoded to assume a presentation that has
- * a tab drop location at the upper left corner, 8 pixels away from the
- * edge in both dimensions. This drop location should be omitted from the
- * tests in situations where this does not apply (this is not a problem
- * right now since the current tests only use the tabs-on-top drop
- * location).
- * 
- * @since 3.0
- */
-public class ViewTabDropTarget extends WorkbenchWindowDropTarget {
-
-    String targetPart;
-
-    public ViewTabDropTarget(IWorkbenchWindowProvider provider, String part) {
-        super(provider);
-        targetPart = part;
-    }
-
-    IViewPart getPart() {
-        return getPage().findView(targetPart);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        IViewDescriptor desc = WorkbenchPlugin.getDefault().getViewRegistry()
-                .find(targetPart);
-        String title = desc.getLabel();
-
-        return title + " view tab area";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        Rectangle bounds = DragOperations.getDisplayBounds(DragOperations
-                .getPane(getPart()));
-
-        return new Point(bounds.x + 8, bounds.y + 8);
-    }
-    
-    public Shell getShell() {
-    	return getPart().getSite().getShell();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTitleDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTitleDropTarget.java
deleted file mode 100644
index 871e71e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/ViewTitleDropTarget.java
+++ /dev/null
@@ -1,67 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.views.IViewDescriptor;
-
-/**
- * Note: this drop location is hardcoded to assume a presentation that has
- * a tab drop location at the upper left corner, 8 pixels away from the
- * edge in both dimensions. This drop location should be omitted from the
- * tests in situations where this does not apply (this is not a problem
- * right now since the current tests only use the tabs-on-top drop
- * location).
- * 
- * @since 3.0
- */
-public class ViewTitleDropTarget extends WorkbenchWindowDropTarget {
-
-    String targetPart;
-
-    public ViewTitleDropTarget(IWorkbenchWindowProvider provider, String part) {
-        super(provider);
-        targetPart = part;
-    }
-
-    IViewPart getPart() {
-        return getPage().findView(targetPart);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        IViewDescriptor desc = WorkbenchPlugin.getDefault().getViewRegistry()
-                .find(targetPart);
-        String title = desc.getLabel();
-
-        return title + " view title area";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        Rectangle bounds = DragOperations.getDisplayBounds(DragOperations
-                .getPane(getPart()));
-
-        return new Point( (bounds.x + bounds.width) - 8, bounds.y + 8);
-    }
-    
-    public Shell getShell() {
-    	return getPart().getSite().getShell();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WindowDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WindowDropTarget.java
deleted file mode 100644
index d666b60..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WindowDropTarget.java
+++ /dev/null
@@ -1,47 +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.tests.dnd;
-
-import org.eclipse.jface.util.Geometry;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * @since 3.0
- */
-public class WindowDropTarget extends WorkbenchWindowDropTarget {
-
-    private int side;
-
-    public WindowDropTarget(IWorkbenchWindowProvider provider, int side) {
-        super(provider);
-        this.side = side;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getName()
-     */
-    public String toString() {
-        return DragOperations.nameForConstant(side) + " of window";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dnd.TestDropTarget#getLocation()
-     */
-    public Point getLocation() {
-        Shell shell = getShell();
-        Rectangle clientArea = shell.getClientArea();
-
-        return DragOperations.getPoint(Geometry.toDisplay(shell, clientArea),
-                side);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WorkbenchWindowDropTarget.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WorkbenchWindowDropTarget.java
deleted file mode 100644
index 0c7a6cb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dnd/WorkbenchWindowDropTarget.java
+++ /dev/null
@@ -1,50 +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.tests.dnd;
-
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.dnd.TestDropLocation;
-
-/**
- * @since 3.0
- */
-public abstract class WorkbenchWindowDropTarget implements TestDropLocation {
-
-    private IWorkbenchWindowProvider window;
-    
-    public abstract String toString();
-
-    public abstract Point getLocation();
-
-    public WorkbenchWindowDropTarget(IWorkbenchWindowProvider window) {
-        this.window = window;
-    }
-    
-    public IWorkbenchWindow getWindow() {
-        return window.getWorkbenchWindow();
-    }
-    
-    public Shell getShell() {
-        return getWindow().getShell();
-    }
-    
-    public WorkbenchPage getPage() {
-        return (WorkbenchPage)getWindow().getActivePage();
-    }
-    
-    public Shell[] getShells() {
-        return new Shell[] {getShell()};
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorConfigurationsExtensionDynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorConfigurationsExtensionDynamicTest.java
deleted file mode 100644
index 8cfd879..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorConfigurationsExtensionDynamicTest.java
+++ /dev/null
@@ -1,104 +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.tests.dynamicplugins;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.keys.IBindingService;
-
-/**
- * Tests whether the "org.eclipse.ui.acceleratorConfigurations" extension point
- * can be added and removed dynamically.
- * 
- * @since 3.1.1
- */
-public final class AcceleratorConfigurationsExtensionDynamicTest extends
-		DynamicTestCase {
-
-	/**
-	 * Constructs a new instance of
-	 * <code>AcceleratorConfigurationsExtensionDynamicTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public AcceleratorConfigurationsExtensionDynamicTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Returns the full-qualified identifier of the extension to be tested.
-	 * 
-	 * @return The extension identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionId() {
-		return "acceleratorConfigurationsExtensionDynamicTest.testDynamicAcceleratorConfigurationAddition";
-	}
-
-	/**
-	 * Returns the unqualified identifier of the extension point to be tested.
-	 * 
-	 * @return The extension point identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_ACCELERATOR_CONFIGURATIONS;
-	}
-
-	/**
-	 * Returns the relative location of the folder on disk containing the
-	 * plugin.xml file.
-	 * 
-	 * @return The relative install location; never <code>null</code>.
-	 */
-	protected final String getInstallLocation() {
-		return "data/org.eclipse.acceleratorConfigurationsExtensionDynamicTest";
-	}
-
-	/**
-	 * Tests whether the items defined in the extension point can be added and
-	 * removed dynamically. It tests that the data doesn't exist, and then loads
-	 * the extension. It tests that the data then exists, and unloads the
-	 * extension. It tests that the data then doesn't exist.
-	 */
-	public final void testAcceleratorConfigurations() {
-		final IBindingService service = (IBindingService) getWorkbench()
-				.getAdapter(IBindingService.class);
-		NamedHandleObject namedHandleObject;
-
-		namedHandleObject = service.getScheme("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-
-		getBundle();
-
-		namedHandleObject = service.getScheme("monkey");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-
-		removeBundle();
-
-		namedHandleObject = service.getScheme("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorScopesExtensionDynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorScopesExtensionDynamicTest.java
deleted file mode 100644
index de49baa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/AcceleratorScopesExtensionDynamicTest.java
+++ /dev/null
@@ -1,104 +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.tests.dynamicplugins;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * Tests whether the "org.eclipse.ui.acceleratorScopes" extension point can be
- * added and removed dynamically.
- * 
- * @since 3.1.1
- */
-public final class AcceleratorScopesExtensionDynamicTest extends
-		DynamicTestCase {
-
-	/**
-	 * Constructs a new instance of
-	 * <code>AcceleratorScopesExtensionDynamicTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public AcceleratorScopesExtensionDynamicTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Returns the full-qualified identifier of the extension to be tested.
-	 * 
-	 * @return The extension identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionId() {
-		return "acceleratorScopesExtensionDynamicTest.testDynamicAcceleratorScopeAddition";
-	}
-
-	/**
-	 * Returns the unqualified identifier of the extension point to be tested.
-	 * 
-	 * @return The extension point identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_ACCELERATOR_SCOPES;
-	}
-
-	/**
-	 * Returns the relative location of the folder on disk containing the
-	 * plugin.xml file.
-	 * 
-	 * @return The relative install location; never <code>null</code>.
-	 */
-	protected final String getInstallLocation() {
-		return "data/org.eclipse.acceleratorScopesExtensionDynamicTest";
-	}
-
-	/**
-	 * Tests whether the items defined in the extension point can be added and
-	 * removed dynamically. It tests that the data doesn't exist, and then loads
-	 * the extension. It tests that the data then exists, and unloads the
-	 * extension. It tests that the data then doesn't exist.
-	 */
-	public final void testAcceleratorScopes() {
-		final IContextService service = (IContextService) getWorkbench()
-				.getAdapter(IContextService.class);
-		NamedHandleObject namedHandleObject;
-
-		namedHandleObject = service.getContext("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-
-		getBundle();
-
-		namedHandleObject = service.getContext("monkey");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-
-		removeBundle();
-
-		namedHandleObject = service.getContext("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionDefinitionsExtensionDynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionDefinitionsExtensionDynamicTest.java
deleted file mode 100644
index 34a1907..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionDefinitionsExtensionDynamicTest.java
+++ /dev/null
@@ -1,104 +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.tests.dynamicplugins;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * Tests whether the "org.eclipse.ui.actionDefinitions" extension point can be
- * added and removed dynamically.
- * 
- * @since 3.1.1
- */
-public final class ActionDefinitionsExtensionDynamicTest extends
-		DynamicTestCase {
-
-	/**
-	 * Constructs a new instance of
-	 * <code>ActionDefinitionsExtensionDynamicTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public ActionDefinitionsExtensionDynamicTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Returns the full-qualified identifier of the extension to be tested.
-	 * 
-	 * @return The extension identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionId() {
-		return "actionDefinitionsExtensionDynamicTest.testDynamicActionDefinitionAddition";
-	}
-
-	/**
-	 * Returns the unqualified identifier of the extension point to be tested.
-	 * 
-	 * @return The extension point identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_ACTION_DEFINITIONS;
-	}
-
-	/**
-	 * Returns the relative location of the folder on disk containing the
-	 * plugin.xml file.
-	 * 
-	 * @return The relative install location; never <code>null</code>.
-	 */
-	protected final String getInstallLocation() {
-		return "data/org.eclipse.actionDefinitionsExtensionDynamicTest";
-	}
-
-	/**
-	 * Tests whether the items defined in the extension point can be added and
-	 * removed dynamically. It tests that the data doesn't exist, and then loads
-	 * the extension. It tests that the data then exists, and unloads the
-	 * extension. It tests that the data then doesn't exist.
-	 */
-	public final void testActionDefinitions() {
-		final ICommandService service = (ICommandService) getWorkbench()
-				.getAdapter(ICommandService.class);
-		NamedHandleObject namedHandleObject;
-
-		namedHandleObject = service.getCommand("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-
-		getBundle();
-
-		namedHandleObject = service.getCommand("monkey");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-
-		removeBundle();
-
-		namedHandleObject = service.getCommand("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java
deleted file mode 100644
index 4e171cc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActionSetTests.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-
-import org.eclipse.core.runtime.IRegistryChangeListener;
-
-import org.eclipse.jface.action.IAction;
-
-import org.eclipse.ui.internal.PluginActionSet;
-import org.eclipse.ui.internal.WWinPluginAction;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.registry.ActionSetRegistry;
-import org.eclipse.ui.internal.registry.IActionSet;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.tests.leaks.LeakTests;
-
-/**
- * Tests to ensure the addition of new action sets with dynamic plug-ins.
- */
-
-public class ActionSetTests extends DynamicTestCase implements
-        IRegistryChangeListener {
-
-    /**
-     * 
-     */
-    private static final String ACTION_SET_ID = "org.eclipse.newActionSet1.newActionSet1";
-    private static final String PART_ID = "org.eclipse.ui.tests.part1";
-
-    public ActionSetTests(String testName) {
-        super(testName);
-    }
-
-    public void testActionSets() throws Exception {
-        WorkbenchWindow window = (WorkbenchWindow) openTestWindow();
-        boolean [] found = new boolean[] {false};
-        WWinPluginAction [] action = new WWinPluginAction[1];
-        
-        assertNull(window.getActionBars().getMenuManager().findUsingPath("menu1"));
-        assertNull(getActionSetRegistry().findActionSet(ACTION_SET_ID));
-        findInPresentation(window, action, found);
-        assertFalse("Action set found", found[0]);
-        assertNull("Action found", action[0]);
-        
-        action[0] = null;
-        found[0] = false;
-        getBundle();
-        
-        assertNotNull(window.getActionBars().getMenuManager().findUsingPath("menu1"));
-        assertNotNull(getActionSetRegistry().findActionSet(ACTION_SET_ID));
-        findInPresentation(window, action, found);
-        assertTrue("Action set not found", found[0]);
-        assertNotNull("Action not found", action[0]);
-        
-        ReferenceQueue queue = new ReferenceQueue();
-        WeakReference ref = new WeakReference(action[0], queue);
-        
-        action[0] = null;
-        found[0] = false;
-        removeBundle();
-        
-        assertNull(window.getActionBars().getMenuManager().findUsingPath("menu1"));
-        assertNull(getActionSetRegistry().findActionSet(ACTION_SET_ID));
-        LeakTests.checkRef(queue, ref);
-        findInPresentation(window, action, found);
-        assertFalse("Action set found", found[0]);
-        assertNull("Action found", action[0]);
-        
-    }
-
-    private void findInPresentation(WorkbenchWindow window,
-            WWinPluginAction[] action, boolean[] found) {
-        IActionSet[] sets = window.getActionPresentation().getActionSets();
-
-        for (int i = 0; i < sets.length; i++) {
-            if (((PluginActionSet) sets[i]).getDesc().getId().equals(
-                "org.eclipse.newActionSet1.newActionSet2")) {
-                found[0] = true;
-                IAction[] pluginActions = ((PluginActionSet) sets[i])
-                    .getPluginActions();
-                for (int j = 0; j < pluginActions.length; j++) {
-                    if (pluginActions[j].getId().equals(
-                        "org.eclipse.ui.tests.action1"))
-                        action[0] = (WWinPluginAction) pluginActions[j];
-                }
-                break;
-            }
-        }
-    }
-
-    /**
-     * @return
-     */
-    private ActionSetRegistry getActionSetRegistry() {
-        return WorkbenchPlugin.getDefault().getActionSetRegistry();
-    }
-
-    public void testActionSetPartAssociations() {
-        assertEquals(0, getActionSetRegistry().getActionSetsFor(PART_ID).length);
-        getBundle();
-        assertEquals(1, getActionSetRegistry().getActionSetsFor(PART_ID).length);
-        removeBundle();
-        assertEquals(0, getActionSetRegistry().getActionSetsFor(PART_ID).length);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-     */
-    protected String getExtensionId() {
-        return "newActionSet1.testDynamicActionSetAddition";
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-     */
-    protected String getExtensionPoint() {
-        return IWorkbenchRegistryConstants.PL_ACTION_SETS;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-     */
-    protected String getInstallLocation() {
-        return "data/org.eclipse.newActionSet1";
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActivitySupportTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActivitySupportTests.java
deleted file mode 100644
index 5687772..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ActivitySupportTests.java
+++ /dev/null
@@ -1,194 +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.tests.dynamicplugins;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.activities.IActivity;
-import org.eclipse.ui.activities.ICategory;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.tests.harness.util.ImageTests;
-
-public class ActivitySupportTests extends DynamicTestCase {
-
-	public ActivitySupportTests(String testName) {
-		super(testName);
-	}
-
-	protected String getExtensionId() {
-		return "newActivitySupport1.testNewActivitySupportAddition";
-	}
-
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_ACTIVITYSUPPORT;
-	}
-
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newActivitySupport1";
-	}
-
-	public void testActivityImages() {
-		IActivity baselineActivity = getWorkbench().getActivitySupport()
-				.getActivityManager().getActivity("someBogusActivityId");
-		assertNotNull(baselineActivity);
-		assertFalse(baselineActivity.isDefined());
-
-		IActivity activityWithIcon = getWorkbench().getActivitySupport()
-				.getActivityManager().getActivity("org.eclipse.activity2");
-		assertNotNull(activityWithIcon);
-		assertTrue(activityWithIcon.isDefined());
-
-		ImageDescriptor baselineDescriptor = getWorkbench()
-				.getActivitySupport().getImageDescriptor(baselineActivity);
-		ImageDescriptor customDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(activityWithIcon);
-
-		Image baselineImage = null, customImage = null;
-		try {
-			baselineImage = baselineDescriptor.createImage();
-			assertNotNull(baselineImage);
-			customImage = customDescriptor.createImage();
-			assertNotNull(customImage);
-
-			// ensure that the images are the same before loading the plugin
-			ImageTests.assertEquals(baselineImage, customImage);
-		} finally {
-			if (baselineImage != null)
-				baselineImage.dispose();
-			if (customImage != null)
-				customImage.dispose();
-		}
-
-		getBundle();
-
-		baselineDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(baselineActivity);
-		customDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(activityWithIcon);
-
-		try {
-			baselineImage = baselineDescriptor.createImage();
-			assertNotNull(baselineImage);
-			customImage = customDescriptor.createImage();
-			assertNotNull(customImage);
-
-			// ensure that the images are differnt after loading the plugin
-			ImageTests.assertNotEquals(baselineImage, customImage);
-		} finally {
-			if (baselineImage != null)
-				baselineImage.dispose();
-			if (customImage != null)
-				customImage.dispose();
-		}
-
-		removeBundle();
-
-		baselineDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(baselineActivity);
-		customDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(activityWithIcon);
-
-		try {
-			baselineImage = baselineDescriptor.createImage();
-			assertNotNull(baselineImage);
-			customImage = customDescriptor.createImage();
-			assertNotNull(customImage);
-
-			// ensure that the images are the same after unloading the plugin
-			ImageTests.assertEquals(baselineImage, customImage);
-		} finally {
-			if (baselineImage != null)
-				baselineImage.dispose();
-			if (customImage != null)
-				customImage.dispose();
-		}
-
-	}
-	
-	
-	public void testCategoryImages() {
-		ICategory baselineCategory = getWorkbench().getActivitySupport()
-				.getActivityManager().getCategory("someBogusCategoryId");
-		assertNotNull(baselineCategory);
-		assertFalse(baselineCategory.isDefined());
-
-		ICategory categoryWithIcon = getWorkbench().getActivitySupport()
-				.getActivityManager().getCategory("org.eclipse.category2");
-		assertNotNull(categoryWithIcon);
-		assertTrue(categoryWithIcon.isDefined());
-
-		ImageDescriptor baselineDescriptor = getWorkbench()
-				.getActivitySupport().getImageDescriptor(baselineCategory);
-		ImageDescriptor customDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(categoryWithIcon);
-
-		Image baselineImage = null, customImage = null;
-		try {
-			baselineImage = baselineDescriptor.createImage();
-			assertNotNull(baselineImage);
-			customImage = customDescriptor.createImage();
-			assertNotNull(customImage);
-
-			// ensure that the images are the same before loading the plugin
-			ImageTests.assertEquals(baselineImage, customImage);
-		} finally {
-			if (baselineImage != null)
-				baselineImage.dispose();
-			if (customImage != null)
-				customImage.dispose();
-		}
-
-		getBundle();
-
-		baselineDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(baselineCategory);
-		customDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(categoryWithIcon);
-
-		try {
-			baselineImage = baselineDescriptor.createImage();
-			assertNotNull(baselineImage);
-			customImage = customDescriptor.createImage();
-			assertNotNull(customImage);
-
-			// ensure that the images are differnt after loading the plugin
-			ImageTests.assertNotEquals(baselineImage, customImage);
-		} finally {
-			if (baselineImage != null)
-				baselineImage.dispose();
-			if (customImage != null)
-				customImage.dispose();
-		}
-
-		removeBundle();
-
-		baselineDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(baselineCategory);
-		customDescriptor = getWorkbench().getActivitySupport()
-				.getImageDescriptor(categoryWithIcon);
-
-		try {
-			baselineImage = baselineDescriptor.createImage();
-			assertNotNull(baselineImage);
-			customImage = customDescriptor.createImage();
-			assertNotNull(customImage);
-
-			// ensure that the images are the same after unloading the plugin
-			ImageTests.assertEquals(baselineImage, customImage);
-		} finally {
-			if (baselineImage != null)
-				baselineImage.dispose();
-			if (customImage != null)
-				customImage.dispose();
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BindingsExtensionDynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BindingsExtensionDynamicTest.java
deleted file mode 100644
index 2317fc1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BindingsExtensionDynamicTest.java
+++ /dev/null
@@ -1,182 +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.tests.dynamicplugins;
-
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.Scheme;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.jface.contexts.IContextIds;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.keys.IBindingService;
-
-/**
- * Tests whether the "org.eclipse.ui.bindings" extension point can be added and
- * removed dynamically.
- * 
- * @since 3.1.1
- */
-public final class BindingsExtensionDynamicTest extends DynamicTestCase {
-
-	/**
-	 * Constructs a new instance of <code>BindingsExtensionDynamicTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public BindingsExtensionDynamicTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Returns the full-qualified identifier of the extension to be tested.
-	 * 
-	 * @return The extension identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionId() {
-		return "bindingsExtensionDynamicTest.testDynamicBindingAddition";
-	}
-
-	/**
-	 * Returns the unqualified identifier of the extension point to be tested.
-	 * 
-	 * @return The extension point identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_BINDINGS;
-	}
-
-	/**
-	 * Returns the relative location of the folder on disk containing the
-	 * plugin.xml file.
-	 * 
-	 * @return The relative install location; never <code>null</code>.
-	 */
-	protected final String getInstallLocation() {
-		return "data/org.eclipse.bindingsExtensionDynamicTest";
-	}
-
-	/**
-	 * Tests whether the items defined in the extension point can be added and
-	 * removed dynamically. It tests that the data doesn't exist, and then loads
-	 * the extension. It tests that the data then exists, and unloads the
-	 * extension. It tests that the data then doesn't exist.
-	 * 
-	 * @throws ParseException
-	 *             If "M1+W" can't be parsed by the extension point.
-	 */
-	public void testBindings() throws ParseException {
-		final IBindingService bindingService = (IBindingService) getWorkbench()
-				.getAdapter(IBindingService.class);
-		final TriggerSequence triggerSequence = KeySequence.getInstance("M1+W");
-		Binding[] bindings;
-		Scheme scheme;
-		boolean found;
-
-		found = false;
-		bindings = bindingService.getBindings();
-		if (bindings != null) {
-			for (int i = 0; i < bindings.length; i++) {
-				final Binding binding = bindings[i];
-				if ("monkey".equals(binding.getSchemeId())
-						&& IContextIds.CONTEXT_ID_WINDOW.equals(binding
-								.getContextId())
-						&& "org.eclipse.ui.views.showView".equals(binding
-								.getParameterizedCommand().getId())
-						&& binding.getParameterizedCommand().getParameterMap()
-								.containsKey(
-										"org.eclipse.ui.views.showView.viewId")
-						&& binding.getPlatform() == null
-						&& binding.getLocale() == null
-						&& binding.getType() == Binding.SYSTEM
-						&& triggerSequence.equals(binding.getTriggerSequence())) {
-					found = true;
-
-				}
-			}
-		}
-		assertTrue(!found);
-		scheme = bindingService.getScheme("monkey");
-		try {
-			scheme.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-
-		getBundle();
-
-		found = false;
-		bindings = bindingService.getBindings();
-		if (bindings != null) {
-			for (int i = 0; i < bindings.length; i++) {
-				final Binding binding = bindings[i];
-				if ("monkey".equals(binding.getSchemeId())
-						&& IContextIds.CONTEXT_ID_WINDOW.equals(binding
-								.getContextId())
-						&& "org.eclipse.ui.views.showView".equals(binding
-								.getParameterizedCommand().getId())
-						&& binding.getParameterizedCommand().getParameterMap()
-								.containsKey(
-										"org.eclipse.ui.views.showView.viewId")
-						&& binding.getPlatform() == null
-						&& binding.getLocale() == null
-						&& binding.getType() == Binding.SYSTEM
-						&& triggerSequence.equals(binding.getTriggerSequence())) {
-					found = true;
-
-				}
-			}
-		}
-		assertTrue(found);
-		scheme = bindingService.getScheme("monkey");
-		try {
-			assertTrue("Monkey".equals(scheme.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-
-		removeBundle();
-
-		found = false;
-		bindings = bindingService.getBindings();
-		if (bindings != null) {
-			for (int i = 0; i < bindings.length; i++) {
-				final Binding binding = bindings[i];
-				if ("monkey".equals(binding.getSchemeId())
-						&& IContextIds.CONTEXT_ID_WINDOW.equals(binding
-								.getContextId())
-						&& "org.eclipse.ui.views.showView".equals(binding
-								.getParameterizedCommand().getId())
-						&& binding.getParameterizedCommand().getParameterMap()
-								.containsKey(
-										"org.eclipse.ui.views.showView.viewId")
-						&& binding.getPlatform() == null
-						&& binding.getLocale() == null
-						&& binding.getType() == Binding.SYSTEM
-						&& triggerSequence.equals(binding.getTriggerSequence())) {
-					found = true;
-
-				}
-			}
-		}
-		assertTrue(!found);
-		scheme = bindingService.getScheme("monkey");
-		try {
-			scheme.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BrowserTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BrowserTests.java
deleted file mode 100644
index 18cb84f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/BrowserTests.java
+++ /dev/null
@@ -1,75 +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.tests.dynamicplugins;
-
-import org.eclipse.ui.internal.browser.WorkbenchBrowserSupport;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.1
- */
-public class BrowserTests extends DynamicTestCase {
-
-    /**
-     * @param testName
-     */
-    public BrowserTests(String testName) {
-        super(testName);
-    }
-
-    public void testBrowserSupport() {
-        WorkbenchBrowserSupport support = (WorkbenchBrowserSupport) WorkbenchBrowserSupport.getInstance();
-        try {
-            support.setDesiredBrowserSupportId(getExtensionId());
-            assertFalse(support.hasNonDefaultBrowser());
-            
-            getBundle();
-            support.setDesiredBrowserSupportId(getExtensionId());
-            assertTrue(support.hasNonDefaultBrowser());
-            
-            removeBundle();
-            support.setDesiredBrowserSupportId(getExtensionId());    
-            assertFalse(support.hasNonDefaultBrowser());
-        }
-        finally {
-            support.setDesiredBrowserSupportId(null);    
-        }
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-     */
-    protected String getExtensionId() {
-        return "newBrowser1.testDynamicBrowserAddition";
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-     */
-    protected String getExtensionPoint() {
-        return IWorkbenchRegistryConstants.PL_BROWSER_SUPPORT;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-     */
-    protected String getInstallLocation() {
-        return "data/org.eclipse.newBrowser1";
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-     */
-    protected String getMarkerClass() {
-        return "org.eclipse.ui.dynamic.DynamicBrowserSupport";
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/CommandsExtensionDynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/CommandsExtensionDynamicTest.java
deleted file mode 100644
index b2f262f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/CommandsExtensionDynamicTest.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.jface.contexts.IContextIds;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.keys.IBindingService;
-
-/**
- * Tests whether the "org.eclipse.ui.commands" extension point can be added and
- * removed dynamically.
- * 
- * @since 3.1.1
- */
-public final class CommandsExtensionDynamicTest extends DynamicTestCase {
-
-	/**
-	 * Constructs a new instance of <code>CommandsExtensionDynamicTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public CommandsExtensionDynamicTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Returns the full-qualified identifier of the extension to be tested.
-	 * 
-	 * @return The extension identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionId() {
-		return "commandsExtensionDynamicTest.testDynamicCommandAddition";
-	}
-
-	/**
-	 * Returns the unqualified identifier of the extension point to be tested.
-	 * 
-	 * @return The extension point identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_COMMANDS;
-	}
-
-	/**
-	 * Returns the relative location of the folder on disk containing the
-	 * plugin.xml file.
-	 * 
-	 * @return The relative install location; never <code>null</code>.
-	 */
-	protected final String getInstallLocation() {
-		return "data/org.eclipse.commandsExtensionDynamicTest";
-	}
-
-	/**
-	 * Tests whether the items defined in the extension point can be added and
-	 * removed dynamically. It tests that the data doesn't exist, and then loads
-	 * the extension. It tests that the data then exists, and unloads the
-	 * extension. It tests that the data then doesn't exist.
-	 * 
-	 * @throws ParseException
-	 *             If "M1+W" can't be parsed by the extension point.
-	 */
-	public final void testCommands() throws ParseException {
-		final IBindingService bindingService = (IBindingService) getWorkbench()
-				.getAdapter(IBindingService.class);
-		final ICommandService commandService = (ICommandService) getWorkbench()
-				.getAdapter(ICommandService.class);
-		final IContextService contextService = (IContextService) getWorkbench()
-				.getAdapter(IContextService.class);
-		final TriggerSequence triggerSequence = KeySequence.getInstance("M1+W");
-		NamedHandleObject namedHandleObject;
-		Binding[] bindings;
-		Command command;
-		boolean found;
-
-		assertTrue(!"monkey".equals(bindingService.getActiveScheme().getId()));
-		found = false;
-		bindings = bindingService.getBindings();
-		if (bindings != null) {
-			for (int i = 0; i < bindings.length; i++) {
-				final Binding binding = bindings[i];
-				if ("monkey".equals(binding.getSchemeId())
-						&& IContextIds.CONTEXT_ID_WINDOW.equals(binding
-								.getContextId())
-						&& "monkey".equals(binding.getParameterizedCommand()
-								.getId()) && binding.getPlatform() == null
-						&& binding.getLocale() == null
-						&& binding.getType() == Binding.SYSTEM
-						&& triggerSequence.equals(binding.getTriggerSequence())) {
-					found = true;
-
-				}
-			}
-		}
-		assertTrue(!found);
-		namedHandleObject = bindingService.getScheme("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		namedHandleObject = commandService.getCategory("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		command = commandService.getCommand("monkey");
-		try {
-			command.execute(new ExecutionEvent());
-			fail();
-		} catch (final ExecutionException e) {
-			fail();
-		} catch (final NotHandledException e) {
-			assertTrue(true);
-		}
-		try {
-			command.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		namedHandleObject = contextService.getContext("context");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		namedHandleObject = contextService.getContext("scope");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-
-		getBundle();
-
-		assertTrue("monkey".equals(bindingService.getActiveScheme().getId()));
-		found = false;
-		bindings = bindingService.getBindings();
-		if (bindings != null) {
-			for (int i = 0; i < bindings.length; i++) {
-				final Binding binding = bindings[i];
-				if ("monkey".equals(binding.getSchemeId())
-						&& IContextIds.CONTEXT_ID_WINDOW.equals(binding
-								.getContextId())
-						&& "monkey".equals(binding.getParameterizedCommand()
-								.getId()) && binding.getPlatform() == null
-						&& binding.getLocale() == null
-						&& binding.getType() == Binding.SYSTEM
-						&& triggerSequence.equals(binding.getTriggerSequence())) {
-					found = true;
-
-				}
-			}
-		}
-		assertTrue(found);
-		namedHandleObject = bindingService.getScheme("monkey");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-		command = commandService.getCommand("monkey");
-		try {
-			command.execute(new ExecutionEvent());
-		} catch (final ExecutionException e) {
-			fail();
-		} catch (final NotHandledException e) {
-			fail();
-		}
-		try {
-			assertEquals("Monkey", command.getName());
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-		namedHandleObject = commandService.getCommand("monkey");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-		namedHandleObject = contextService.getContext("context");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-		namedHandleObject = contextService.getContext("scope");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-
-		removeBundle();
-
-		assertTrue(!"monkey".equals(bindingService.getActiveScheme().getId()));
-		found = false;
-		bindings = bindingService.getBindings();
-		if (bindings != null) {
-			for (int i = 0; i < bindings.length; i++) {
-				final Binding binding = bindings[i];
-				if ("monkey".equals(binding.getSchemeId())
-						&& IContextIds.CONTEXT_ID_WINDOW.equals(binding
-								.getContextId())
-						&& "monkey".equals(binding.getParameterizedCommand()
-								.getId()) && binding.getPlatform() == null
-						&& binding.getLocale() == null
-						&& binding.getType() == Binding.SYSTEM
-						&& triggerSequence.equals(binding.getTriggerSequence())) {
-					found = true;
-
-				}
-			}
-		}
-		assertTrue(!found);
-		namedHandleObject = bindingService.getScheme("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		namedHandleObject = commandService.getCategory("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		command = commandService.getCommand("monkey");
-		try {
-			command.execute(new ExecutionEvent());
-			fail();
-		} catch (final ExecutionException e) {
-			fail();
-		} catch (final NotHandledException e) {
-			assertTrue(true);
-		}
-		try {
-			command.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		namedHandleObject = contextService.getContext("context");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-		namedHandleObject = contextService.getContext("scope");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-	}
-	
-	public void testNonExistingHandler() {
-		IHandlerService handlerService = (IHandlerService) getWorkbench()
-				.getService(IHandlerService.class);
-		getBundle();
-
-		// till the handler is loaded, we assume it could be handled
-		// when its time to execute, we load the handler and throw the
-		// ExecutionException
-		try {
-			handlerService.executeCommand(
-					"org.eclipse.ui.tests.command.handlerLoadException", null);
-			fail("An exception should be thrown for this handler");
-		} catch (Exception e) {
-			if (!(e instanceof ExecutionException))
-				fail("Unexpected exception while executing command", e);
-		}
-
-		// afterwards, we know that the handler couldn't be loaded, so it can't
-		// be handled
-		// from now we always throw NotHandledException
-		try {
-			handlerService.executeCommand(
-					"org.eclipse.ui.tests.command.handlerLoadException", null);
-			fail("An exception should be thrown for this handler");
-		} catch (Exception e) {
-			if (!(e instanceof NotHandledException))
-				fail("Unexpected exception while executing command", e);
-		}
-
-		removeBundle();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ContextsExtensionDynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ContextsExtensionDynamicTest.java
deleted file mode 100644
index 7d3f0dd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ContextsExtensionDynamicTest.java
+++ /dev/null
@@ -1,102 +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.tests.dynamicplugins;
-
-import org.eclipse.core.commands.common.NamedHandleObject;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * Tests whether the "org.eclipse.ui.contexts" extension point can be added and
- * removed dynamically.
- * 
- * @since 3.1.1
- */
-public final class ContextsExtensionDynamicTest extends DynamicTestCase {
-
-	/**
-	 * Constructs a new instance of <code>ContextsExtensionDynamicTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public ContextsExtensionDynamicTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Returns the full-qualified identifier of the extension to be tested.
-	 * 
-	 * @return The extension identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionId() {
-		return "contextsExtensionDynamicTest.testDynamicContextAddition";
-	}
-
-	/**
-	 * Returns the unqualified identifier of the extension point to be tested.
-	 * 
-	 * @return The extension point identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_CONTEXTS;
-	}
-
-	/**
-	 * Returns the relative location of the folder on disk containing the
-	 * plugin.xml file.
-	 * 
-	 * @return The relative install location; never <code>null</code>.
-	 */
-	protected final String getInstallLocation() {
-		return "data/org.eclipse.contextsExtensionDynamicTest";
-	}
-
-	/**
-	 * Tests whether the items defined in the extension point can be added and
-	 * removed dynamically. It tests that the data doesn't exist, and then loads
-	 * the extension. It tests that the data then exists, and unloads the
-	 * extension. It tests that the data then doesn't exist.
-	 */
-	public final void testContexts() {
-		final IContextService service = (IContextService) getWorkbench()
-				.getAdapter(IContextService.class);
-		NamedHandleObject namedHandleObject;
-
-		namedHandleObject = service.getContext("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-
-		getBundle();
-
-		namedHandleObject = service.getContext("monkey");
-		try {
-			assertTrue("Monkey".equals(namedHandleObject.getName()));
-		} catch (final NotDefinedException e) {
-			fail();
-		}
-
-		removeBundle();
-
-		namedHandleObject = service.getContext("monkey");
-		try {
-			namedHandleObject.getName();
-			fail();
-		} catch (final NotDefinedException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DecoratorTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DecoratorTests.java
deleted file mode 100644
index 85d8f7f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DecoratorTests.java
+++ /dev/null
@@ -1,85 +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.tests.dynamicplugins;
-
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.decorators.DecoratorDefinition;
-import org.eclipse.ui.internal.decorators.DecoratorManager;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.1
- */
-public class DecoratorTests extends DynamicTestCase {
-	
-	public static final String FULL1 = "fullDecorator1";
-	public static final String LIGHT1 = "lightDecorator1";
-	public static final String LIGHT2 = "lightDecorator2";
-
-	/**
-	 * @param testName
-	 */
-	public DecoratorTests(String testName) {
-		super(testName);
-	}
-	
-	public void testDecorators() {
-		assertFalse(hasDecorator(FULL1));
-		assertFalse(hasDecorator(LIGHT1));
-		assertFalse(hasDecorator(LIGHT2));
-		getBundle();
-		assertTrue(hasDecorator(FULL1));
-		assertTrue(hasDecorator(LIGHT1));
-		assertTrue(hasDecorator(LIGHT2));
-		removeBundle();
-		assertFalse(hasDecorator(FULL1));
-		assertFalse(hasDecorator(LIGHT1));
-		assertFalse(hasDecorator(LIGHT2));
-	}
-	
-	public boolean hasDecorator(String id) {
-		DecoratorManager manager = WorkbenchPlugin.getDefault().getDecoratorManager();
-		DecoratorDefinition [] definitions = manager.getAllDecoratorDefinitions();
-		for (int i = 0; i < definitions.length; i++) {
-			if (definitions[i].getId().equals(id))
-				return true;
-		}
-		return false;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newDecorator1.testDynamicDecoratorAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_DECORATORS;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newDecorator1";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicLabelDecorator";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicContributionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicContributionTest.java
deleted file mode 100644
index a90ed90..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicContributionTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.internal.util.BundleUtility;
-import org.eclipse.ui.menus.IMenuService;
-
-/**
- * @since 3.5
- */
-public class DynamicContributionTest extends DynamicTestCase {
-
-	public DynamicContributionTest(String testName) {
-		super(testName);
-	}
-
-	public void testMenuContribution() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IMenuService menus = (IMenuService) window
-				.getService(IMenuService.class);
-		MenuManager manager = new MenuManager();
-		try {
-			menus.populateContributionManager(manager,
-					"popup:org.eclipse.newDynamicMenuContribution");
-			assertEquals(0, manager.getSize());
-			getBundle();
-			assertEquals(1, manager.getSize());
-			assertFalse(BundleUtility
-					.isActive("org.eclipse.newDynamicMenuContribution"));
-			manager.createContextMenu(window.getShell());
-			manager.updateAll(true);
-			assertTrue(BundleUtility
-					.isActive("org.eclipse.newDynamicMenuContribution"));
-		} finally {
-			menus.releaseContributions(manager);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "menu.dynamic.contribution";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_MENUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newDynamicMenuContribution";
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicInvalidContributionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicInvalidContributionTest.java
deleted file mode 100644
index 06f8f38..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicInvalidContributionTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.5
- */
-public class DynamicInvalidContributionTest extends DynamicTestCase {
-
-	public DynamicInvalidContributionTest(String testName) {
-		super(testName);
-	}
-
-	public void testInvalidMenuContribution() throws Exception {
-		// open a window
-		IWorkbenchWindow window = openTestWindow();
-		// start up our bundle
-		getBundle();
-		// open another window, now that our invalid contribution is there, it
-		// should be parsed and loaded, this ensures the workbench window can
-		// still go up even if someone is contributing an invalid contribution
-		fWorkbench.openWorkbenchWindow(window.getActivePage().getPerspective().getId(), null);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "menu.invalid.menu.contribution";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_MENUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newInvalidMenuContribution1";
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicPluginsTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicPluginsTestSuite.java
deleted file mode 100644
index 20d4635..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicPluginsTestSuite.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test suite for dynamic plug-in support.
- */
-public class DynamicPluginsTestSuite extends TestSuite {
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new DynamicPluginsTestSuite();
-    }
-
-	/**
-	 * Construct the test suite.
-	 */
-	public DynamicPluginsTestSuite() {
-		addTest(new TestSuite(StatusHandlerTests.class));
-		addTest(new TestSuite(
-				AcceleratorConfigurationsExtensionDynamicTest.class));
-		addTest(new TestSuite(AcceleratorScopesExtensionDynamicTest.class));
-		addTest(new TestSuite(ActionDefinitionsExtensionDynamicTest.class));
-	    addTest(new TestSuite(ActionSetTests.class));
-		addTest(new TestSuite(ActivitySupportTests.class));
-		addTest(new TestSuite(BindingsExtensionDynamicTest.class));
-		addTest(new TestSuite(BrowserTests.class));
-		addTest(new TestSuite(CommandsExtensionDynamicTest.class));
-		addTest(new TestSuite(ContextsExtensionDynamicTest.class));
-		addTest(new TestSuite(HandlersExtensionDynamicTest.class));
-		addTest(new TestSuite(PreferencePageTests.class));
-		addTest(new TestSuite(KeywordTests.class));
-		addTest(new TestSuite(PropertyPageTests.class));
-		addTest(new TestSuite(HelpSupportTests.class));
-		addTest(new TestSuite(EncodingTests.class));
-		addTest(new TestSuite(DecoratorTests.class));
-		addTest(new TestSuite(StartupTests.class));
-		addTest(new TestSuite(EditorTests.class));
-		addTest(new TestSuite(IntroTests.class));
-		addTest(new TestSuite(PerspectiveTests.class));
-		addTest(new TestSuite(ViewTests.class));
-		addTest(new TestSuite(NewWizardTests.class));
-		addTest(new TestSuite(ObjectContributionTests.class));
-		addTest(new TestSuite(WorkingSetTests.class));
-		addTest(new TestSuite(DynamicSupportTests.class));
-		addTest(new TestSuite(DynamicContributionTest.class));
-		addTest(new TestSuite(DynamicInvalidContributionTest.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicSupportTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicSupportTests.java
deleted file mode 100644
index 4bde492e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicSupportTests.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.tests.dynamicplugins;
-
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.dynamichelpers.ExtensionTracker;
-import org.eclipse.core.runtime.dynamichelpers.IExtensionTracker;
-import org.eclipse.ui.tests.leaks.LeakTests;
-
-/**
- * @since 3.1
- */
-public class DynamicSupportTests extends TestCase {
-
-	private IExtensionTracker tracker;
-	private IExtension e1, e2;
-	private Object o1, o2;
-
-	/**
-	 * @param name
-	 */
-	public DynamicSupportTests(String name) {
-		super(name);
-	}
-	
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		tracker = new ExtensionTracker();		
-		IExtension [] elements = Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.ui.views").getExtensions();
-		assertNotNull(elements);
-		assertFalse(elements.length < 2);
-		e1 = elements[0];
-		e2 = elements[1];
-		
-		o1 = new Object();
-		o2 = new WeakReference(o1); 
-	}
-	
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		((ExtensionTracker)tracker).close();
-	}
-	
-	public void testConfigurationElementTracker1() {
-		tracker.registerObject(e1, o1, IExtensionTracker.REF_WEAK);
-		Object [] results = tracker.getObjects(e1);
-		assertNotNull(results);
-		assertEquals(1, results.length);
-		assertEquals(o1, results[0]);
-	}
-	
-	public void testConfigurationElementTracker2() throws Exception {
-		tracker.registerObject(e1, o1, IExtensionTracker.REF_WEAK);
-		ReferenceQueue queue = new ReferenceQueue();
-		WeakReference ref = new WeakReference(o1, queue);
-		o1 = null;
-		LeakTests.checkRef(queue, ref);
-		Object [] results = tracker.getObjects(e1);
-		assertNotNull(results);
-		assertEquals(0, results.length);
-	}
-	
-	public void testConfigurationElementTracker3() {
-		tracker.registerObject(e2, o2, IExtensionTracker.REF_WEAK);
-		Object [] results = tracker.getObjects(e2);
-		assertNotNull(results);
-		assertEquals(1, results.length);
-		assertEquals(o2, results[0]);
-	}
-	
-	public void testConfigurationElementTracker4() throws Exception {
-		tracker.registerObject(e1, o1, IExtensionTracker.REF_STRONG);
-		ReferenceQueue queue = new ReferenceQueue();
-		WeakReference ref = new WeakReference(o1, queue);
-		o1 = null;
-		try {
-			LeakTests.checkRef(queue, ref);
-			fail("Shouldn't have enqueued the ref");
-		}
-		catch (Throwable e) {
-			//wont be enqueued
-		}
-		Object [] results = tracker.getObjects(e1);
-		assertNotNull(results);
-		assertEquals(1, results.length);
-		assertEquals(ref.get(), results[0]);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestCase.java
deleted file mode 100644
index 0d4edb2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestCase.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-
-import org.eclipse.core.runtime.IExtensionDelta;
-import org.eclipse.core.runtime.IRegistryChangeEvent;
-import org.eclipse.core.runtime.IRegistryChangeListener;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.leaks.LeakTests;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-/**
- * Baseclass for all dynamic tests.
- * 
- * @since 3.1
- */
-public abstract class DynamicTestCase extends UITestCase implements
-		IRegistryChangeListener {
-
-	private volatile boolean addedRecieved;
-
-	private Bundle newBundle;
-
-	private volatile boolean removedRecieved;
-	
-	private WeakReference addedDelta;
-	
-	private WeakReference removedDelta;
-	
-	private ReferenceQueue queue;
-
-	/**
-	 * @param testName
-	 */
-	public DynamicTestCase(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		try {
-			removeBundle();
-		}
-		finally {
-			Platform.getExtensionRegistry().removeRegistryChangeListener(this);
-			queue = null;
-		}
-	}
-
-	/**
-	 * Get the bundle for this test.
-	 * 
-	 * @return the bundle for this test
-	 */
-	protected final Bundle getBundle() {
-		if (newBundle == null) {
-			Platform.getExtensionRegistry().addRegistryChangeListener(this);
-			reset();
-			queue = new ReferenceQueue();
-			// Just try to find the new perspective. Don't actually try to
-			// do anything with it as the class it refers to does not exist.
-			try {
-				newBundle = DynamicUtils.installPlugin(getInstallLocation());
-			} catch (Exception e) {
-				fail(e.getMessage());
-			}
-
-			long startTime = System.currentTimeMillis();
-			long potentialEndTime = startTime + 5000;
-			boolean timeToFail = false;
-			while (!hasAddedEventPropagated() && !timeToFail) {
-				processEvents();
-				timeToFail = System.currentTimeMillis() > potentialEndTime;
-     			Thread.yield();
-			}
-			assertTrue("Expected ADDED event did not arrive in time", hasAddedEventPropagated());
-			try {
-				LeakTests.checkRef(queue, addedDelta);
-			} catch (IllegalArgumentException e1) {
-				e1.printStackTrace();
-			} catch (InterruptedException e1) {
-				e1.printStackTrace();
-			}
-			processEvents();
-			Platform.getExtensionRegistry().removeRegistryChangeListener(this);
-		}
-		return newBundle;
-	}
-
-	/**
-	 * Return the namespace of the plugin that defines the extension point being
-	 * tested. Default is "org.eclipse.ui".
-	 * 
-	 * @return the namespace of the declaring plugin
-	 */
-	protected String getDeclaringNamespace() {
-		return WorkbenchPlugin.PI_WORKBENCH;
-	}
-
-	/**
-	 * Return the id of the extension to be tested.
-	 * 
-	 * @return the id of the extension to be tested
-	 */
-	protected abstract String getExtensionId();
-
-	/**
-	 * Return the name of the extension point that is being tested.
-	 * 
-	 * @return the extension point being tested
-	 */
-	protected abstract String getExtensionPoint();
-
-	/**
-	 * Return the install location of the bundle to test.
-	 * 
-	 * @return the install location of the bundle to test
-	 */
-	protected abstract String getInstallLocation();
-	
-	/**
-	 * Return a <code>Class</code> that we know to be in teh bundle to test.
-	 * 
-	 * @return a <code>Class</code> that we know to be in teh bundle to test.  May be <code>null</code>.
-	 * @since 3.1
-	 */
-	protected String getMarkerClass() {
-		return null;
-	}
-	
-	/**
-	 * Tests to ensure that the marker class is released when the bundle is unloaded.
-	 * If <code>getMarkerClass()</code> returns <code>null</code> then this method 
-	 * will always succeed.
-	 * 
-	 * @throws Exception
-	 * @since 3.1
-	 */
-	public void testClass() throws Exception {	
-		String className = getMarkerClass();
-		if (className == null)
-			return;		
-		
-		setName("testClass() for " + getClass().getName());
-		
-		Bundle bundle = getBundle();
-		
-		Class clazz = bundle.loadClass(className);
-		assertNotNull(clazz);
-		ReferenceQueue myQueue = new ReferenceQueue();
-		WeakReference ref = new WeakReference(clazz.getClassLoader(), myQueue);
-		clazz = null; //null our refs
-		bundle = null;
-		removeBundle();
-		LeakTests.checkRef(myQueue, ref);
-	}
-
-	/**
-	 * Return whether the bundle ADDED event has been recieved.
-	 * 
-	 * @return whether the bundle ADDED event has been recieved
-	 */
-	protected final boolean hasAddedEventPropagated() {
-		return addedRecieved;
-	}
-
-	/**
-	 * Return whether the bundle REMOVED event has been recieved.
-	 * 
-	 * @return whether the bundle REMOVED event has been recieved
-	 */
-	protected final boolean hasRemovedEventPropagated() {
-		return removedRecieved;
-	}
-
-	/**
-	 * This method will ensure recording of addition and removal of extensions
-	 * described by a combination of
-	 * {@link DynamicTestCase#getDeclaringNamespace()},
-	 * {@link DynamicTestCase#getExtensionPoint()}, and
-	 * {@link DynamicTestCase#getExtensionId()}.
-	 * 
-	 * Custom implementationss should ensure that addition and removal of the
-	 * target extension are recorded.
-	 * 
-	 * @see DynamicTestCase#setAddedEventPropagated(boolean)
-	 * @see DynamicTestCase#setRemovedEventPropagated(boolean)
-	 */
-	public void registryChanged(IRegistryChangeEvent event) {
-		IExtensionDelta delta = event.getExtensionDelta(
-				getDeclaringNamespace(), getExtensionPoint(), getExtensionId());
-		if (delta != null) {
-			if (delta.getKind() == IExtensionDelta.ADDED) {
-				addedDelta = new WeakReference(delta, queue);
-				setAddedEventPropagated(true);
-			}
-			else if (delta.getKind() == IExtensionDelta.REMOVED) {
-				removedDelta = new WeakReference(delta, queue);
-				setRemovedEventPropagated(true);
-			}
-		}
-	}
-
-	/**
-	 * Unload the bundle, if present.
-	 */
-	protected final void removeBundle() {
-		if (newBundle != null) {
-			Platform.getExtensionRegistry().addRegistryChangeListener(this);
-			queue = new ReferenceQueue();
-			try {
-				DynamicUtils.uninstallPlugin(newBundle);
-				long startTime = System.currentTimeMillis();
-				long potentialEndTime = startTime + 5000;
-				boolean timeToFail = false;
-				while (!hasRemovedEventPropagated() && !timeToFail) {
-					processEvents();
-					timeToFail = System.currentTimeMillis() > potentialEndTime;
-					Thread.yield();
-				}
-				assertTrue("Expected REMOVED event did not arrive in time", hasRemovedEventPropagated());
-				try {
-					LeakTests.checkRef(queue, removedDelta);
-				} catch (IllegalArgumentException e1) {
-					e1.printStackTrace();
-				} catch (InterruptedException e1) {
-					e1.printStackTrace();
-				}
-			} catch (BundleException e) {
-				fail(e.getMessage());
-			} finally {
-				newBundle = null;
-			}
-			processEvents();
-			Platform.getExtensionRegistry().removeRegistryChangeListener(this);
-		}
-	}
-
-	/**
-	 * Reset the added/removed flags.
-	 */
-	private void reset() {
-		addedDelta = null;
-		removedDelta = null;
-		setAddedEventPropagated(false);
-		setRemovedEventPropagated(false);
-	}
-
-	/**
-	 * Set whether the bundle ADDED event has been recieved.
-	 * 
-	 * @param added
-	 *            whether the bundle ADDED event has been recieved
-	 */
-	protected final void setAddedEventPropagated(boolean added) {
-		this.addedRecieved = added;
-	}
-
-	/**
-	 * Set whether the bundle REMOVED event has been recieved.
-	 * 
-	 * @param added
-	 *            whether the bundle REMOVED event has been recieved
-	 */
-	protected final void setRemovedEventPropagated(boolean removed) {
-		this.removedRecieved = removed;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestType.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestType.java
deleted file mode 100644
index d47fdbc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicTestType.java
+++ /dev/null
@@ -1,29 +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.tests.dynamicplugins;
-
-/**
- * DynamicTestType is a type used for contributing property pages in the
- * dynamic tests.
- * @since 3.2
- *
- */
-public class DynamicTestType {
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public DynamicTestType() {
-		super();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicUtils.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicUtils.java
deleted file mode 100644
index 2771c8d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/DynamicUtils.java
+++ /dev/null
@@ -1,40 +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.tests.dynamicplugins;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.ui.tests.TestPlugin;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleException;
-
-public class DynamicUtils {
-
-    public static final Bundle installPlugin(String pluginName)
-            throws IOException, BundleException {
-        // Programmatically install a new plugin
-        TestPlugin plugin = TestPlugin.getDefault();
-        if (plugin == null)
-            throw new IllegalStateException(
-                    "TestPlugin default reference is null");
-        String pluginLocation = null;
-        URL dataURL = Platform.resolve(plugin.getBundle().getEntry(pluginName));
-        pluginLocation = "reference:" + dataURL.toExternalForm();
-        return TestInstallUtil.installBundle(pluginLocation);
-    }
-
-    public static void uninstallPlugin(Bundle bundle) throws BundleException {
-        TestInstallUtil.uninstallBundle(bundle);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EditorTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EditorTests.java
deleted file mode 100644
index afe9a42..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EditorTests.java
+++ /dev/null
@@ -1,132 +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.tests.dynamicplugins;
-
-import java.io.ByteArrayInputStream;
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.tests.leaks.LeakTests;
-
-/**
- * @since 3.1
- */
-public class EditorTests extends DynamicTestCase {
-
-	private static final String EDITOR_ID = "org.eclipse.newEditor1.newEditor1";
-	/**
-	 * @param testName
-	 */
-	public EditorTests(String testName) {
-		super(testName);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newEditor1.testDynamicEditorAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_EDITOR;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newEditor1";
-	}
-	
-	public void testEditorClosure() throws CoreException {
-		IWorkbenchWindow window = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-		IFile file = getFile();
-		getBundle();
-				
-		ReferenceQueue queue = new ReferenceQueue();
-		IEditorPart part = IDE.openEditor(window.getActivePage(), file, EDITOR_ID);
-		WeakReference ref = new WeakReference(part, queue);
-        assertNotNull(part);
-        part = null; //null the reference
-
-		removeBundle();
-		try {
-			LeakTests.checkRef(queue, ref);
-		} catch (Exception e) {
-			fail(e.getMessage());
-		} 
-		
-        assertEquals(0, window.getActivePage().getEditors().length);		
-	}
-
-	public void testEditorProperties() {
-		IEditorRegistry registry = WorkbenchPlugin.getDefault().getEditorRegistry();
-		
-		assertNull(registry.findEditor(EDITOR_ID));
-		getBundle();
-		IEditorDescriptor desc = registry.findEditor(EDITOR_ID);
-		assertNotNull(desc);
-	    
-		testEditorProperties(desc);
-		removeBundle();	
-		assertNull(registry.findEditor(EDITOR_ID));
-		try {
-			testEditorProperties(desc);
-			fail();		
-		}
-		catch (RuntimeException e) {			
-		}
-	}
-	
-	/**
-	 * @param desc
-	 */
-	private void testEditorProperties(IEditorDescriptor desc) {
-		assertNotNull(desc.getId());
-		assertNotNull(desc.getLabel());
-		assertNotNull(desc.getImageDescriptor());
-	}
-
-	/**
-	 * 
-	 */
-	private IFile getFile() throws CoreException {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IProject testProject = workspace.getRoot().getProject(getName());
-        testProject.create(null);
-        testProject.open(null);        
-
-        IFile iFile = testProject.getFile("someFile");
-        iFile.create(new ByteArrayInputStream(new byte[] { '\n' }), true, null);
-        return iFile;
-	}	
-	
-	
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicEditor";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EncodingTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EncodingTests.java
deleted file mode 100644
index b87562b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/EncodingTests.java
+++ /dev/null
@@ -1,67 +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.tests.dynamicplugins;
-
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.ide.IDEEncoding;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.1
- */
-public class EncodingTests extends DynamicTestCase {
-
-	private static final String ENCODING = "Cp1257";
-	/**
-	 * @param testName
-	 */
-	public EncodingTests(String testName) {
-		super(testName);
-		// TODO Auto-generated constructor stub
-	}
-
-	public void testWorkbenchEncodings() {
-		assertFalse(WorkbenchEncoding.getDefinedEncodings().contains(ENCODING));
-		getBundle();
-		assertTrue(WorkbenchEncoding.getDefinedEncodings().contains(ENCODING));
-		removeBundle();
-		assertFalse(WorkbenchEncoding.getDefinedEncodings().contains(ENCODING));
-	}
-	
-	public void testIDEEncodings() {
-		assertFalse(IDEEncoding.getIDEEncodings().contains(ENCODING));
-		getBundle();
-		assertTrue(IDEEncoding.getIDEEncodings().contains(ENCODING));
-		removeBundle();
-		assertFalse(IDEEncoding.getIDEEncodings().contains(ENCODING));
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newEncoding1.testDynamicEncodingAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_ENCODINGS;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newEncoding1";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HandlersExtensionDynamicTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HandlersExtensionDynamicTest.java
deleted file mode 100644
index 4b8ff19..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HandlersExtensionDynamicTest.java
+++ /dev/null
@@ -1,110 +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.tests.dynamicplugins;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * Tests whether the "org.eclipse.ui.handlers" extension point can be added and
- * removed dynamically.
- * 
- * @since 3.1.1
- */
-public final class HandlersExtensionDynamicTest extends DynamicTestCase {
-
-	/**
-	 * Constructs a new instance of <code>HandlersExtensionDynamicTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public HandlersExtensionDynamicTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Returns the full-qualified identifier of the extension to be tested.
-	 * 
-	 * @return The extension identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionId() {
-		return "handlersExtensionDynamicTest.testDynamicHandlerAddition";
-	}
-
-	/**
-	 * Returns the unqualified identifier of the extension point to be tested.
-	 * 
-	 * @return The extension point identifier; never <code>null</code>.
-	 */
-	protected final String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_HANDLERS;
-	}
-
-	/**
-	 * Returns the relative location of the folder on disk containing the
-	 * plugin.xml file.
-	 * 
-	 * @return The relative install location; never <code>null</code>.
-	 */
-	protected final String getInstallLocation() {
-		return "data/org.eclipse.handlersExtensionDynamicTest";
-	}
-
-	/**
-	 * Tests whether the items defined in the extension point can be added and
-	 * removed dynamically. It tests that the data doesn't exist, and then loads
-	 * the extension. It tests that the data then exists, and unloads the
-	 * extension. It tests that the data then doesn't exist.
-	 */
-	public final void testHandlers() {
-		final ICommandService commandService = (ICommandService) getWorkbench()
-				.getAdapter(ICommandService.class);
-		Command command;
-
-		command = commandService.getCommand("monkey");
-		try {
-			command.execute(new ExecutionEvent());
-			fail();
-		} catch (final ExecutionException e) {
-			fail();
-		} catch (final NotHandledException e) {
-			assertTrue(true);
-		}
-
-		getBundle();
-
-		command = commandService.getCommand("monkey");
-		try {
-			command.execute(new ExecutionEvent());
-		} catch (final ExecutionException e) {
-			fail();
-		} catch (final NotHandledException e) {
-			fail();
-		}
-
-		removeBundle();
-
-		command = commandService.getCommand("monkey");
-		try {
-			command.execute(new ExecutionEvent());
-			fail();
-		} catch (final ExecutionException e) {
-			fail();
-		} catch (final NotHandledException e) {
-			assertTrue(true);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HelpSupportTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HelpSupportTests.java
deleted file mode 100644
index 5ff5d84..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/HelpSupportTests.java
+++ /dev/null
@@ -1,72 +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.tests.dynamicplugins;
-
-import org.eclipse.ui.internal.help.WorkbenchHelpSystem;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.1
- */
-public class HelpSupportTests extends DynamicTestCase {
-
-	/**
-	 * @param testName
-	 */
-	public HelpSupportTests(String testName) {
-		super(testName);
-	}
-
-	public void testHelpSupport() {
-		WorkbenchHelpSystem help = WorkbenchHelpSystem.getInstance();
-		help.setDesiredHelpSystemId(getExtensionId());
-		assertFalse(help.hasHelpUI());
-		
-		getBundle();
-		help.dispose();
-		assertTrue(help.hasHelpUI());
-		
-		removeBundle();
-		help.dispose();		
-		assertFalse(help.hasHelpUI());
-		
-		help.setDesiredHelpSystemId(null);		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newHelpSupport1.testDynamicHelpSupportAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_HELPSUPPORT;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newHelpSupport1";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicHelpSupport";
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/IntroTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/IntroTests.java
deleted file mode 100644
index d15cf45..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/IntroTests.java
+++ /dev/null
@@ -1,152 +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.tests.dynamicplugins;
-
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.intro.IIntroDescriptor;
-import org.eclipse.ui.internal.intro.IIntroRegistry;
-import org.eclipse.ui.internal.intro.IntroDescriptor;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.tests.leaks.LeakTests;
-
-/**
- * @since 3.1
- */
-public class IntroTests extends DynamicTestCase {
-
-	private static final String PRODUCT_ID = "org.eclipse.ui.tests.someProduct";
-	private static final String INTRO_ID = "org.eclipse.newIntro1.newIntro1";
-	private IntroDescriptor oldDesc;
-	private IWorkbenchWindow window;
-	/**
-	 * @param testName
-	 */
-	public IntroTests(String testName) {
-		super(testName);
-	}
-	
-	public void testIntroClosure() {	
-		getBundle();
-		Workbench workbench = Workbench.getInstance();
-        IntroDescriptor testDesc = (IntroDescriptor) WorkbenchPlugin
-        .getDefault().getIntroRegistry().getIntro(
-        		INTRO_ID);
-        workbench.setIntroDescriptor(testDesc);
-
-		ReferenceQueue queue = new ReferenceQueue();
-		IIntroPart intro = workbench.getIntroManager().showIntro(window, false);
-		WeakReference ref = new WeakReference(intro, queue);
-        assertNotNull(intro);
-        intro = null; //null the reference
-        removeBundle();
-        try {
-			LeakTests.checkRef(queue, ref);
-		} catch (Exception e) {
-			fail(e.getMessage());
-		} 
-        assertNull(workbench.getIntroManager().getIntro());
-	}
-	
-	public void testIntroProperties() {
-		IIntroRegistry registry = WorkbenchPlugin.getDefault().getIntroRegistry();
-		assertNull(registry.getIntroForProduct(PRODUCT_ID));
-		assertNull(registry.getIntro(INTRO_ID));
-		getBundle();
-		assertNotNull(registry.getIntroForProduct(PRODUCT_ID));
-		IIntroDescriptor desc = registry.getIntro(INTRO_ID);
-		assertNotNull(desc);
-		try {
-			testIntroProperties(desc);
-		}
-		catch (CoreException e) {
-			fail(e.getMessage());
-		}
-		removeBundle();	
-		assertNull(registry.getIntro(INTRO_ID));
-		assertNull(registry.getIntroForProduct(PRODUCT_ID));
-		try {
-			testIntroProperties(desc);
-			fail();		
-		}
-		catch (CoreException e) {
-			fail(e.getMessage());
-		}
-		catch (RuntimeException e) {			
-		}
-	}
-
-	/**
-	 * @param desc
-	 * @throws CoreException
-	 */
-	private void testIntroProperties(IIntroDescriptor desc) throws CoreException {
-		assertNotNull(desc.getId());
-		try {
-			assertNotNull(desc.createIntro());
-		}
-		catch (CoreException e) {
-			e.printStackTrace();
-			throw e;
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {		
-		return "newIntro1.testDynamicIntroAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_INTRO;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newIntro1";
-	}
-	
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        oldDesc = Workbench.getInstance().getIntroDescriptor();
-        window = openTestWindow();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        Workbench.getInstance().setIntroDescriptor(oldDesc);
-    }    
-    
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicIntro";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java
deleted file mode 100644
index 1faeb09..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/KeywordTests.java
+++ /dev/null
@@ -1,49 +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.tests.dynamicplugins;
-
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.internal.registry.KeywordRegistry;
-
-/**
- * @since 3.1
- */
-public class KeywordTests extends DynamicTestCase {
-
-	private static final String ID_KEYWORD = "dynamicKeyword1";
-	public KeywordTests(String testName) {
-		super(testName);
-	}
-	
-	public void testKeywords() {
-		KeywordRegistry registry = KeywordRegistry.getInstance();
-		assertNull(registry.getKeywordLabel(ID_KEYWORD));
-		getBundle();
-		String label = registry.getKeywordLabel(ID_KEYWORD);
-		assertNotNull(label);
-		assertEquals(ID_KEYWORD, label);
-		removeBundle();
-		assertNull(registry.getKeywordLabel(ID_KEYWORD));
-	}
-
-	protected String getExtensionId() {
-		return "newKeyword1.testDynamicKeywordAddition";
-	}
-
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_KEYWORDS;
-	}
-
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newKeyword1";
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/MarkerSupportTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/MarkerSupportTests.java
deleted file mode 100644
index 41e3c6b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/MarkerSupportTests.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import java.util.Iterator;
-
-import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
-import org.eclipse.ui.views.markers.internal.MarkerGroup;
-import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
-import org.eclipse.ui.views.markers.internal.ProblemFilter;
-
-/**
- * Test the loading and unloading of the marker support components.
- * 
- * @since 3.2
- */
-public class MarkerSupportTests extends DynamicTestCase {
-
-	public static final String FILTER1 = "filter1";
-
-	public static final String FILTER2 = "filter2";
-
-	public static final String FILTER3 = "filter3";
-
-	public static final String DYNAMIC_CATEGORY = "dynamicCategory";
-
-	static final String DYNAMIC_PROBLEM_MARKER = "org.eclipse.ui.tests.dynamicTestMarker";
-
-	static final String PROBLEM_MARKER = "org.eclipse.core.resources.problemmarker";
-
-	/**
-	 * @param testName
-	 */
-	public MarkerSupportTests(String testName) {
-		super(testName);
-	}
-
-	public void testFilters() {
-		assertFalse(hasFilter(FILTER1));
-		assertFalse(hasFilter(FILTER2));
-		assertFalse(hasFilter(FILTER3));
-		getBundle();
-		assertTrue(hasFilter(FILTER1));
-		assertTrue(hasFilter(FILTER2));
-		assertTrue(hasFilter(FILTER3));
-		removeBundle();
-		assertFalse(hasFilter(FILTER1));
-		assertFalse(hasFilter(FILTER2));
-		assertFalse(hasFilter(FILTER3));
-	}
-
-	public void testMarkerGroup() {
-		assertFalse(hasMarkerGroup());
-		getBundle();
-		assertTrue(hasMarkerGroup());
-		removeBundle();
-		assertFalse(hasMarkerGroup());
-	}
-
-	public void testCategories() {
-		assertFalse(hasCategory());
-		getBundle();
-		assertTrue(hasCategory());
-		removeBundle();
-		assertFalse(hasCategory());
-	}
-
-	public void testHierarchies() {
-		assertFalse(hasHierarchy());
-		getBundle();
-		assertTrue(hasHierarchy());
-		removeBundle();
-		assertFalse(hasHierarchy());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.markerSupport.DynamicTestsSubCategoryProvider";
-	}
-
-	/**
-	 * Return whether or not there is a hierarchy for the dynamic type or if it
-	 * is using the default.
-	 * 
-	 * @return
-	 */
-	private boolean hasHierarchy() {
-		return MarkerSupportRegistry.getInstance().getSorterFor(
-				DYNAMIC_PROBLEM_MARKER) != MarkerSupportRegistry.getInstance()
-				.getSorterFor(PROBLEM_MARKER);
-	}
-
-	private boolean hasMarkerGroup() {
-		Iterator groups = MarkerSupportRegistry.getInstance()
-		.getMarkerGroups().iterator();
-		
-		while (groups.hasNext()) {
-			MarkerGroup element = (MarkerGroup) groups.next();
-			if(element.getField().getDescription().equals("Dynamic Test Grouping"))
-				return true;
-		}
-		
-		return false;
-	}
-
-	/**
-	 * Return whether or not there is a filter for the dynamic category
-	 * 
-	 * @return
-	 */
-	private boolean hasCategory() {
-		return MarkerSupportRegistry.getInstance().getCategory(
-				DYNAMIC_PROBLEM_MARKER) != null;
-	}
-
-	/**
-	 * Return whether or not there is a filter for id.
-	 * 
-	 * @param id
-	 * @return
-	 */
-	private boolean hasFilter(String id) {
-		Iterator filters = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters().iterator();
-		while (filters.hasNext()) {
-			ProblemFilter filter = (ProblemFilter) filters.next();
-			if (id.equals(filter.getId()))
-				return true;
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newProblemFilter.testDynamicFilterAddition";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return MarkerSupportRegistry.MARKER_SUPPORT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newMarkerSupport";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getDeclaringNamespace()
-	 */
-	protected String getDeclaringNamespace() {
-		return IDEWorkbenchPlugin.IDE_WORKBENCH;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/NewWizardTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/NewWizardTests.java
deleted file mode 100644
index d2c3de1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/NewWizardTests.java
+++ /dev/null
@@ -1,88 +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.tests.dynamicplugins;
-
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.wizards.IWizardRegistry;
-import org.eclipse.ui.wizards.IWizardDescriptor;
-
-/**
- * @since 3.1
- */
-public class NewWizardTests extends DynamicTestCase {
-
-	private static final String WIZARD_ID = "org.eclipse.newNewWizard1.newNewWizard1";
-	
-	/**
-	 * 
-	 */
-	public NewWizardTests(String testName) {
-		super(testName);
-	}
-	
-	public void testNewWizardProperties() {
-		IWizardRegistry registry = WorkbenchPlugin.getDefault().getNewWizardRegistry();
-		assertNull(registry.findWizard(WIZARD_ID));
-		getBundle();
-		IWizardDescriptor wizard = registry.findWizard(WIZARD_ID);
-		assertNotNull(wizard);
-		testNewWizardProperties(wizard);
-		removeBundle();
-		assertNull(registry.findWizard(WIZARD_ID));
-		try {
-			testNewWizardProperties(wizard);
-			fail();
-		}
-		catch (RuntimeException e) {
-			//no-op
-		}
-	}
-	
-	/**
-	 * @param wizard
-	 */
-	private void testNewWizardProperties(IWizardDescriptor wizard) {
-		assertNotNull(wizard.getId());
-		assertNotNull(wizard.getDescription());
-		assertNotNull(wizard.getHelpHref());
-		assertNotNull(wizard.getDescriptionImage());
-		assertNotNull(wizard.getImageDescriptor());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {		
-		return "newNewWizard1.testDynamicNewWizardAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_NEW;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newNewWizard1";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicWizard";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ObjectContributionTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ObjectContributionTests.java
deleted file mode 100644
index 3891b9e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ObjectContributionTests.java
+++ /dev/null
@@ -1,167 +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.tests.dynamicplugins;
-
-import java.util.Random;
-
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.ObjectActionContributorManager;
-import org.eclipse.ui.internal.PopupMenuExtender;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.1
- */
-public class ObjectContributionTests extends DynamicTestCase {
-
-	private static final String GROUP_ID = "#OC";
-	private static final String OBJECT_ACTION_ID = "org.eclipse.newOC1";
-	private static final String VIEWER_ACTION_ID = "org.eclipse.newOC2";
-	
-	public static TestSuite suite() {
-		return new TestSuite(ObjectContributionTests.class);
-	}
-	
-	/**
-	 * @param testName
-	 */
-	public ObjectContributionTests(String testName) {
-		super(testName);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newOC1.testDynamicOCAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_POPUP_MENU;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {		
-		return "data/org.eclipse.newOC1";
-	}
-	
-	public void testViewerContributions() {
-		IWorkbenchWindow window = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-		IWorkbenchPart part = window.getActivePage().getActivePart();
-		MenuManager menu = new MenuManager();
-		resetViewerMenu(menu);
-		ISelectionProvider provider = new ISelectionProvider() {
-
-			public void addSelectionChangedListener(ISelectionChangedListener listener) {
-				
-			}
-
-			public ISelection getSelection() {
-				return new StructuredSelection(new Random());
-			}
-
-			public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-			}
-
-			public void setSelection(ISelection selection) {
-			}
-			
-		};
-		
-		PopupMenuExtender extender = new PopupMenuExtender(GROUP_ID, menu, provider, part);
-		extender.menuAboutToShow(menu);
-					
-		assertNull(menu.find(VIEWER_ACTION_ID));
-		resetViewerMenu(menu);
-		getBundle();
-		
-		extender.menuAboutToShow(menu);
-		assertNotNull(menu.find(VIEWER_ACTION_ID));
-		resetViewerMenu(menu);
-		removeBundle();
-		
-		extender.menuAboutToShow(menu);		
-		assertNull(menu.find(VIEWER_ACTION_ID));	
-		
-		extender.dispose();
-	}
-	
-	/**
-	 * @param menu
-	 */
-	private void resetViewerMenu(MenuManager menu) {
-		menu.removeAll();
-		menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-		menu.add(new GroupMarker(GROUP_ID));
-	}
-
-	public void testObjectContribtions() {
-		IWorkbenchWindow window = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-		IWorkbenchPart part = window.getActivePage().getActivePart();
-		ObjectActionContributorManager manager = ObjectActionContributorManager.getManager();
-		IMenuManager menu = new MenuManager();
-		ISelectionProvider provider = new ISelectionProvider() {
-
-			public void addSelectionChangedListener(ISelectionChangedListener listener) {
-				
-			}
-
-			public ISelection getSelection() {
-				return new StructuredSelection(new Random());
-			}
-
-			public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-			}
-
-			public void setSelection(ISelection selection) {
-			}
-			
-		};
-
-		manager.contributeObjectActions(part, menu, provider);		
-		assertNull(menu.find(OBJECT_ACTION_ID));
-		menu.removeAll();
-		getBundle();
-		
-		manager.contributeObjectActions(part, menu, provider);
-		assertNotNull(menu.find(OBJECT_ACTION_ID));
-		menu.removeAll();
-		removeBundle();
-		
-		manager.contributeObjectActions(part, menu, provider);		
-		assertNull(menu.find(OBJECT_ACTION_ID));
-		menu.removeAll();
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.MockObjectActionDelegate";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java
deleted file mode 100644
index 5c0f90f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PerspectiveTests.java
+++ /dev/null
@@ -1,136 +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.tests.dynamicplugins;
-
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * Tests to check the addition of a new perspective once the perspective
- * registry is loaded.
- */
-public class PerspectiveTests extends DynamicTestCase {
-
-	private static final String PERSPECTIVE_ID = "org.eclipse.newPerspective1.newPerspective1";
-
-	public PerspectiveTests(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Tests to ensure that the descriptor is added and removed with bundle
-	 * loading/unloading.
-	 */
-	public void testFindPerspectiveInRegistry() {
-		IPerspectiveRegistry reg = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry();
-
-		assertNull(reg.findPerspectiveWithId(PERSPECTIVE_ID));
-
-		getBundle(); // ensure the bundle is loaded
-		assertNotNull(reg.findPerspectiveWithId(PERSPECTIVE_ID));
-
-		removeBundle(); // unload the bundle
-
-		assertNull(reg.findPerspectiveWithId(PERSPECTIVE_ID));
-	}
-
-	/**
-	 * Tests that the perspective is closed if it is the currently active
-	 * perspective.
-	 */
-	public void testPerspectiveClose1() {
-		IPerspectiveRegistry reg = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry();
-
-		getBundle();
-		IPerspectiveDescriptor desc = reg.findPerspectiveWithId(PERSPECTIVE_ID);
-		assertNotNull(desc);
-
-		IWorkbenchWindow window = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-		window.getActivePage().setPerspective(desc);
-
-		removeBundle();
-		assertNull(((WorkbenchPage) window.getActivePage())
-				.findPerspective(desc));
-		assertFalse(window.getActivePage().getPerspective().getId().equals(
-				desc.getId()));
-		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, window.getActivePage()
-				.getPerspective().getId());
-	}
-
-	/**
-	 * Tests that the perspective is closed if it is not the currently active
-	 * perspective.
-	 */
-	public void testPerspectiveClose2() {
-		IPerspectiveRegistry reg = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry();
-
-		getBundle();
-		IPerspectiveDescriptor desc = reg.findPerspectiveWithId(PERSPECTIVE_ID);
-		assertNotNull(desc);
-
-		IWorkbenchWindow window = openTestWindow(PERSPECTIVE_ID);
-		window.getActivePage().setPerspective(
-				reg.findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID));
-
-		removeBundle();
-		assertNull(((WorkbenchPage) window.getActivePage())
-				.findPerspective(desc));
-
-		assertFalse(window.getActivePage().getPerspective().getId().equals(
-				PERSPECTIVE_ID));
-		assertEquals(IDE.RESOURCE_PERSPECTIVE_ID, window.getActivePage()
-				.getPerspective().getId());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newPerspective1";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_PERSPECTIVES;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newPerspective1.testDynamicPerspectiveAddition";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicPerspective";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PreferencePageTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PreferencePageTests.java
deleted file mode 100644
index 80fdeaa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PreferencePageTests.java
+++ /dev/null
@@ -1,75 +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.tests.dynamicplugins;
-
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.1
- */
-public class PreferencePageTests extends DynamicTestCase {
-
-	/**
-	 * @param testName
-	 */
-	public PreferencePageTests(String testName) {
-		super(testName);
-	}
-
-	public void testPreferences() {
-		PreferenceManager preferenceManager = PlatformUI.getWorkbench().getPreferenceManager();
-		assertNull(preferenceManager.find("dynamic.parentPage"));
-		assertNull(preferenceManager.find("dynamic.parentPage/dynamic.childPage"));
-		getBundle();
-		WorkbenchPreferenceNode node = (WorkbenchPreferenceNode) preferenceManager.find("dynamic.parentPage");
-		assertNotNull(node);
-		//make sure we have a page
-		node.createPage();
-		node = (WorkbenchPreferenceNode) preferenceManager.find("dynamic.parentPage/dynamic.childPage");
-		assertNotNull(node);
-		//make sure we have a page
-		node.createPage();
-		removeBundle();
-		assertNull(preferenceManager.find("dynamic.parentPage"));
-		assertNull(preferenceManager.find("dynamic.parentPage/dynamic.childPage"));		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newPreferencePage1.testDynamicPreferencePageAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_PREFERENCES;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newPreferencePage1";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicPreferencePage";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PropertyPageTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PropertyPageTests.java
deleted file mode 100644
index b121798..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/PropertyPageTests.java
+++ /dev/null
@@ -1,86 +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.tests.dynamicplugins;
-
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager;
-import org.eclipse.ui.internal.dialogs.PropertyPageManager;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-
-/**
- * @since 3.1
- */
-public class PropertyPageTests extends DynamicTestCase {
-
-	private static final String PROPERTYPAGE = "dynamicPropertyPage1";
-	/**
-	 * @param testName
-	 */
-	public PropertyPageTests(String testName) {
-		super(testName);
-	}
-
-
-	public void testPropertyPageCount() {
-		PropertyPageContributorManager manager = PropertyPageContributorManager.getManager();
-		int size = manager.getContributors().size();
-		getBundle();
-		assertEquals(size + 1, manager.getContributors().size());
-		removeBundle();
-		assertEquals(size, manager.getContributors().size());
-	}
-	
-	public void testPropertyPageContribution() {
-		PropertyPageContributorManager cManager = PropertyPageContributorManager.getManager();
-		PropertyPageManager manager; 
-		DynamicTestType type = new DynamicTestType();
-			
-		cManager.contribute(manager = new PropertyPageManager(), type);
-		assertNull(manager.find(PROPERTYPAGE));
-		getBundle();
-		cManager.contribute(manager = new PropertyPageManager(), type);
-		IPreferenceNode result = manager.find(PROPERTYPAGE);
-		assertNotNull(result);
-		result.createPage(); // muck around and ensure we've created some potential garbage
-		result.disposeResources();
-		removeBundle();
-		cManager.contribute(manager = new PropertyPageManager(), type);
-		assertNull(manager.find(PROPERTYPAGE));
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newPropertyPage1.testDynamicPropertyPageAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_PROPERTY_PAGES;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newPropertyPage1";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicPropertyPage";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StartupTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StartupTests.java
deleted file mode 100644
index bdb8dac..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StartupTests.java
+++ /dev/null
@@ -1,89 +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.tests.dynamicplugins;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.osgi.framework.Bundle;
-
-/**
- * @since 3.1
- */
-public class StartupTests extends DynamicTestCase {
-	/**
-	 * @param testName
-	 */
-	public StartupTests(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Tests to ensure that the IStartup implementation in the bundle is run
-	 * when the bundle is loaded.
-	 * 
-	 * @throws ClassNotFoundException
-	 * @throws SecurityException
-	 * @throws NoSuchFieldException
-	 * @throws IllegalArgumentException
-	 * @throws IllegalAccessException
-	 */
-	public void testStartupRun() throws ClassNotFoundException,
-			SecurityException, NoSuchFieldException, IllegalArgumentException,
-			IllegalAccessException {
-		Bundle bundle = getBundle();
-		Class clazz = bundle.loadClass(getMarkerClass());
-		assertNotNull(clazz);
-		Field field = clazz.getDeclaredField("history");
-		assertNotNull(field);
-		assertTrue((field.getModifiers() & Modifier.STATIC) != 0);
-		// if the startup code has run then this will not be null - the early
-		// startup method sets this
-		assertNotNull(field.get(null));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newStartup1.testDynamicStartupAddition";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_STARTUP;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newStartup1";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicStartup";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StatusHandlerTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StatusHandlerTests.java
deleted file mode 100644
index f9a23bd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/StatusHandlerTests.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.internal.statushandlers.StatusHandlerDescriptor;
-import org.eclipse.ui.internal.statushandlers.StatusHandlerRegistry;
-import org.eclipse.ui.statushandlers.AbstractStatusHandler;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.eclipse.ui.tests.leaks.LeakTests;
-
-/**
- * Tests to ensure the addition and removal of new status handlers with dynamic
- * plug-ins.
- */
-public class StatusHandlerTests extends DynamicTestCase {
-
-	private static final String STATUS_HANDLER_ID1 = "org.eclipse.newStatusHandler1.newStatusHandler1";
-
-	private static final String STATUS_HANDLER_ID2 = "org.eclipse.newStatusHandler1.newStatusHandler2";
-
-	private static final String PLUGIN_PREFIX = "";
-
-	private static final String PLUGIN_PREFIX2 = "plugin";
-
-	/**
-	 * @param testName
-	 */
-	public StatusHandlerTests(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Tests to ensure that the status handlers are removed when the plugin is
-	 * unloaded.
-	 */
-	public void testStatusHandlerRemoval() throws CoreException {
-		getBundle();
-
-		StatusHandlerDescriptor statusHandlerDescriptor1 = StatusHandlerRegistry
-				.getDefault().getHandlerDescriptor(STATUS_HANDLER_ID1);
-		assertNotNull(statusHandlerDescriptor1);
-		AbstractStatusHandler statusHandler1 = statusHandlerDescriptor1
-				.getStatusHandler();
-		assertNotNull(statusHandler1);
-
-		statusHandler1.handle(new StatusAdapter(new Status(IStatus.ERROR,
-				PLUGIN_PREFIX2, "")), StatusManager.NONE);
-
-		ReferenceQueue queue = new ReferenceQueue();
-		ReferenceQueue queue2 = new ReferenceQueue();
-
-		WeakReference ref = new WeakReference(statusHandlerDescriptor1, queue);
-		WeakReference ref2 = new WeakReference(statusHandler1, queue2);
-
-		statusHandlerDescriptor1 = null; // null the reference
-		statusHandler1 = null; // null the reference
-
-		removeBundle();
-
-		try {
-			LeakTests.checkRef(queue, ref);
-			LeakTests.checkRef(queue2, ref2);
-		} catch (Exception e) {
-			fail(e.getMessage());
-		}
-
-		assertNull(StatusHandlerRegistry.getDefault().getHandlerDescriptor(
-				STATUS_HANDLER_ID1));
-	}
-
-	/**
-	 * Tests to ensure that the status handlers are removed when the plugin is
-	 * unloaded.
-	 */
-	public void testStatusHandlerRemoval2() throws CoreException {
-		getBundle();
-
-		ReferenceQueue queue = new ReferenceQueue();
-		ReferenceQueue queue2 = new ReferenceQueue();
-
-		List statusHandlerDescriptors = StatusHandlerRegistry.getDefault()
-				.getHandlerDescriptors(PLUGIN_PREFIX);
-
-		assertNotNull(statusHandlerDescriptors);
-
-		StatusHandlerDescriptor statusHandlerDescriptor1 = null;
-		for (Iterator it = statusHandlerDescriptors.iterator(); it.hasNext();) {
-			statusHandlerDescriptor1 = (StatusHandlerDescriptor) it.next();
-			if (statusHandlerDescriptor1.getId().equals(STATUS_HANDLER_ID2)) {
-				break;
-			}
-			statusHandlerDescriptor1 = null;
-		}
-
-		assertNotNull(statusHandlerDescriptor1);
-		AbstractStatusHandler statusHandler1 = statusHandlerDescriptor1
-				.getStatusHandler();
-		assertNotNull(statusHandler1);
-
-		statusHandler1.handle(new StatusAdapter(new Status(IStatus.ERROR,
-				PLUGIN_PREFIX2, "")), StatusManager.NONE);
-
-		WeakReference ref = new WeakReference(statusHandlerDescriptor1, queue);
-		WeakReference ref2 = new WeakReference(statusHandler1, queue2);
-
-		statusHandlerDescriptors = null;
-		statusHandlerDescriptor1 = null; // null the reference
-		statusHandler1 = null;
-
-		removeBundle();
-
-		try {
-			LeakTests.checkRef(queue, ref);
-			LeakTests.checkRef(queue2, ref2);
-		} catch (Exception e) {
-			fail(e.getMessage());
-		}
-
-		assertNull(StatusHandlerRegistry.getDefault().getHandlerDescriptor(
-				STATUS_HANDLER_ID1));
-	}
-
-	/**
-	 * Tests to ensure that the status handlers are removed when the plugin is
-	 * unloaded. Checks if the default product handlers are handled correctly.
-	 */
-	public void testProductBindingRemoval() throws CoreException {
-		getBundle();
-
-		ReferenceQueue queue = new ReferenceQueue();
-		ReferenceQueue queue2 = new ReferenceQueue();
-
-		StatusHandlerDescriptor productStatusHandlerDescriptor = StatusHandlerRegistry
-				.getDefault().getDefaultHandlerDescriptor();
-		assertNotNull(productStatusHandlerDescriptor);
-		AbstractStatusHandler productStatusHandler = productStatusHandlerDescriptor
-				.getStatusHandler();
-		assertNotNull(productStatusHandler);
-
-		productStatusHandler.handle(new StatusAdapter(new Status(IStatus.ERROR,
-				PLUGIN_PREFIX2, "")), StatusManager.NONE);
-
-		WeakReference ref = new WeakReference(productStatusHandlerDescriptor,
-				queue);
-		WeakReference ref2 = new WeakReference(productStatusHandler, queue2);
-
-		productStatusHandlerDescriptor = null; // null the reference
-		productStatusHandler = null;
-
-		removeBundle();
-
-		try {
-			LeakTests.checkRef(queue, ref);
-			LeakTests.checkRef(queue2, ref2);
-		} catch (Exception e) {
-			fail(e.getMessage());
-		}
-
-		assertNull(StatusHandlerRegistry.getDefault().getHandlerDescriptor(
-				STATUS_HANDLER_ID1));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newStatusHandler1.testDynamicStatusHandlerAddition";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return "statusHandlers";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newStatusHandler1";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicStatusHandler";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/TestInstallUtil.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/TestInstallUtil.java
deleted file mode 100644
index d521d73..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/TestInstallUtil.java
+++ /dev/null
@@ -1,79 +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.tests.dynamicplugins;
-
-import junit.framework.TestCase;
-
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.BundleException;
-import org.osgi.framework.FrameworkEvent;
-import org.osgi.framework.FrameworkListener;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.packageadmin.PackageAdmin;
-
-public class TestInstallUtil extends TestCase {
-    static BundleContext context;
-
-    public static void setContext(BundleContext newContext) {
-        context = newContext;
-    }
-
-    public static Bundle installBundle(String pluginLocation)
-            throws BundleException, IllegalStateException {
-        Bundle target = context.installBundle(pluginLocation);
-        int state = target.getState();
-        if (state != Bundle.INSTALLED)
-            throw new IllegalStateException("Bundle " + target
-                    + " is in a wrong state: " + state);
-        refreshPackages(new Bundle[] { target });
-        return target;
-    }
-
-    public static void uninstallBundle(Bundle target) throws BundleException {
-        target.uninstall();
-        refreshPackages(null);
-    }
-
-    public static void refreshPackages(Bundle[] bundles) {
-        ServiceReference packageAdminRef = context
-                .getServiceReference(PackageAdmin.class.getName());
-        PackageAdmin packageAdmin = null;
-        if (packageAdminRef != null) {
-            packageAdmin = (PackageAdmin) context.getService(packageAdminRef);
-            if (packageAdmin == null)
-                return;
-        }
-
-        final boolean[] flag = new boolean[] { false };
-        FrameworkListener listener = new FrameworkListener() {
-            public void frameworkEvent(FrameworkEvent event) {
-                if (event.getType() == FrameworkEvent.PACKAGES_REFRESHED)
-                    synchronized (flag) {
-                        flag[0] = true;
-                        flag.notifyAll();
-                    }
-            }
-        };
-        context.addFrameworkListener(listener);
-        packageAdmin.refreshPackages(bundles);
-        synchronized (flag) {
-            while (!flag[0]) {
-                try {
-                    flag.wait();
-                } catch (InterruptedException e) {
-                }
-            }
-        }
-        context.removeFrameworkListener(listener);
-        context.ungetService(packageAdminRef);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ViewTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ViewTests.java
deleted file mode 100644
index 6bd526b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/ViewTests.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.internal.registry.ViewRegistry;
-import org.eclipse.ui.tests.leaks.LeakTests;
-import org.eclipse.ui.views.IStickyViewDescriptor;
-import org.eclipse.ui.views.IViewCategory;
-import org.eclipse.ui.views.IViewDescriptor;
-import org.eclipse.ui.views.IViewRegistry;
-
-/**
- * Tests to ensure the addition of new views with dynamic plug-ins.
- */
-public class ViewTests extends DynamicTestCase {
-
-    private static final String VIEW_ID1 = "org.eclipse.newView1.newView1";
-    private static final String VIEW_ID2 = "org.eclipse.newView1.newView2";
-    private static final String CATEGORY_ID = "org.eclipse.newView1.newCategory1";
-    
-	public ViewTests(String testName) {
-        super(testName);
-    }
-    
-	public void testViewClosure() throws CoreException {
-		IWorkbenchWindow window = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-		getBundle();
-				
-		ReferenceQueue queue = new ReferenceQueue();
-		IViewPart part = window.getActivePage().showView(VIEW_ID1);
-		// we need to ensure that the view is closed in all open perspectives but this is not currently possible.
-		// window.getActivePage().setPerspective(WorkbenchPlugin.getDefault().getPerspectiveRegistry().findPerspectiveWithId(EmptyPerspective.PERSP_ID2));
-		WeakReference ref = new WeakReference(part, queue);
-        assertNotNull(part);
-        part = null; //null the reference
-
-		removeBundle();
-		try {
-			LeakTests.checkRef(queue, ref);
-		} catch (Exception e) {
-			fail(e.getMessage());
-		} 
-		
-        assertNull(window.getActivePage().findView(VIEW_ID1));		
-	}
-    
-    public void testViewWithoutCategory() {
-    		IViewRegistry registry = WorkbenchPlugin.getDefault().getViewRegistry();
-		
-		assertNull(registry.find(VIEW_ID2));
-		getBundle();
-		IViewDescriptor desc = registry.find(VIEW_ID2);
-		assertNotNull(desc);
-	    
-		testViewProperties(desc);
-		removeBundle();	
-		assertNull(registry.find(VIEW_ID2));
-		try {
-			testViewProperties(desc);
-			fail();		
-		}
-		catch (RuntimeException e) {	
-			// no-op
-		}
-    }
-
-	public void testViewWithCategory() {
-		IViewRegistry registry = WorkbenchPlugin.getDefault().getViewRegistry();
-		
-		assertNull(registry.find(VIEW_ID1));
-		getBundle();
-		IViewDescriptor desc = registry.find(VIEW_ID1);
-		assertNotNull(desc);
-	    
-		testViewProperties(desc);
-		removeBundle();	
-		assertNull(registry.find(VIEW_ID1));
-		try {
-			testViewProperties(desc);
-			fail();		
-		}
-		catch (RuntimeException e) {	
-			// no-op
-		}
-	}
-	
-	public void testStickyViewProperties() {
-		ViewRegistry registry = (ViewRegistry)WorkbenchPlugin.getDefault().getViewRegistry();
-		IStickyViewDescriptor [] descs = registry.getStickyViews();
-		for (int i = 0; i < descs.length; i++) {
-			assertFalse(VIEW_ID1.equals(descs[i].getId()));
-		}
-		
-		getBundle();
-		
-		descs = registry.getStickyViews();
-		IStickyViewDescriptor desc = null;
-		for (int i = 0; i < descs.length; i++) {
-			if (VIEW_ID1.equals(descs[i].getId())) {
-				desc = descs[i];
-				break;
-			}					
-		}
-		assertNotNull(desc);
-		testStickyViewProperties(desc);
-		removeBundle();	
-		
-		descs = registry.getStickyViews();
-		for (int i = 0; i < descs.length; i++) {
-			assertFalse(VIEW_ID1.equals(descs[i].getId()));
-		}
-		
-		try {
-			testStickyViewProperties(desc);
-			fail();			
-		}
-		catch (RuntimeException e) {	
-			// no-op
-		}		
-	}
-	
-	private void testStickyViewProperties(IStickyViewDescriptor desc) {
-		assertNotNull(desc.getId());
-		assertFalse(desc.isMoveable());
-		assertFalse(desc.isCloseable());
-		assertEquals(IPageLayout.BOTTOM, desc.getLocation());		
-	}
-
-	public void testCategoryViewContainmentProperties() {
-		ViewRegistry registry = (ViewRegistry)WorkbenchPlugin.getDefault().getViewRegistry();
-		
-		assertNull(registry.find(VIEW_ID1));
-		assertNull(registry.findCategory(CATEGORY_ID));
-
-		getBundle();
-		
-		IViewDescriptor desc = registry.find(VIEW_ID1);
-		assertNotNull(desc);	    
-		IViewCategory category = registry.findCategory(CATEGORY_ID);
-		assertNotNull(category);
-		
-		testCategoryProperties(category);
-		assertTrue(category.getViews()[0] == desc);
-
-		removeBundle();	
-		assertNull(registry.find(VIEW_ID1));
-		assertNull(registry.findCategory(CATEGORY_ID));
-		try {
-			testCategoryProperties(category);
-			fail();
-		}
-		catch (RuntimeException e) {	
-			// no-op
-		}
-	
-	}	
-	
-	/**
-	 * @param category
-	 */
-	private void testCategoryProperties(IViewCategory desc) {
-		assertNotNull(desc.getId());
-		assertNotNull(desc.getLabel());
-		assertEquals(1, desc.getViews().length);
-	}
-
-	/**
-	 * @param desc
-	 */
-	private void testViewProperties(IViewDescriptor desc) {
-		assertNotNull(desc.getId());
-		assertNotNull(desc.getLabel());
-		assertNotNull(desc.getImageDescriptor());
-		assertNotNull(desc.getDescription());
-	}	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newView1.testDynamicViewAddition";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_VIEWS;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newView1";
-	}	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicView";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/WorkingSetTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/WorkingSetTests.java
deleted file mode 100644
index 5550c20..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/dynamicplugins/WorkingSetTests.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.dynamicplugins;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkingSet;
-import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants;
-import org.eclipse.ui.intro.IIntroPart;
-import org.osgi.framework.Bundle;
-
-/**
- * @since 3.3
- */
-public class WorkingSetTests extends DynamicTestCase {
-
-	/**
-	 * @param testName
-	 */
-	public WorkingSetTests(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getMarkerClass()
-	 */
-	protected String getMarkerClass() {
-		return "org.eclipse.ui.dynamic.DynamicWorkingSetElementAdapter";
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#testClass()
-	 */
-	public void testClass() throws Exception {
-		super.testClass();
-		// commented out for now - it's causing grief
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionId()
-	 */
-	protected String getExtensionId() {
-		return "newWorkingSet1.testDynamicWorkingSetAddition1";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getExtensionPoint()
-	 */
-	protected String getExtensionPoint() {
-		return IWorkbenchRegistryConstants.PL_WORKINGSETS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.dynamicplugins.DynamicTestCase#getInstallLocation()
-	 */
-	protected String getInstallLocation() {
-		return "data/org.eclipse.newWorkingSet1";
-	}
-
-	/**
-	 * Tests to ensure that the working set updater is unloaded after the bundle
-	 * is unloaded.
-	 */
-	public void testWorkingSetUpdater() throws ClassNotFoundException {
-		final PropertyChangeEvent[] events = new PropertyChangeEvent[1];
-		IWorkingSetManager workingSetManager = PlatformUI.getWorkbench()
-				.getWorkingSetManager();
-		WorkingSet workingSet = (WorkingSet) workingSetManager
-				.createWorkingSet("dynamicSet3", new IAdaptable[0]);
-		workingSet.setId("org.eclipse.newWorkingSet1.WorkingSet1");
-		workingSetManager.addWorkingSet(workingSet);
-
-		IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() {
-
-			public void propertyChange(PropertyChangeEvent event) {
-				synchronized (this) {
-					events[0] = event;
-				}
-			}
-		};
-
-		workingSetManager.addPropertyChangeListener(propertyChangeListener);
-		try {
-			getBundle();
-			getBundle().loadClass(getMarkerClass()); // ensure the class is
-														// loaded
-			assertEquals("Bundle not active after classloading", Bundle.ACTIVE,
-					getBundle().getState());
-			PropertyChangeEvent event = events[0];
-			int i = 0;
-			while (event == null && i <= 10) {
-				try {
-					processEvents();
-					Thread.sleep(250);
-					i++;
-				} catch (InterruptedException e) {
-				}
-				synchronized (propertyChangeListener) {
-					event = events[0];
-				}
-			}
-			assertNotNull(event);
-			assertEquals(
-					IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_INSTALLED,
-					event.getProperty());
-			assertEquals(null, event.getOldValue());
-			assertNotNull(event.getNewValue());
-			assertTrue(event.getNewValue().getClass().getName().equals(
-					"org.eclipse.ui.dynamic.DynamicWorkingSetUpdater"));
-			events[0] = null;
-			i = 0;
-			removeBundle();
-			event = events[0];
-			while (event == null && i <= 10) {
-				try {
-					processEvents();
-					Thread.sleep(250);
-					i++;
-				} catch (InterruptedException e) {
-				}
-				synchronized (propertyChangeListener) {
-					event = events[0];
-				}
-			}
-			assertNotNull(event);
-			assertEquals(
-					IWorkingSetManager.CHANGE_WORKING_SET_UPDATER_UNINSTALLED,
-					event.getProperty());
-			assertEquals(null, event.getNewValue());
-			assertNotNull(event.getOldValue());
-			assertTrue(event.getOldValue().getClass().getName().equals(
-					"org.eclipse.ui.dynamic.DynamicWorkingSetUpdater"));
-		} finally {
-			workingSetManager
-					.removePropertyChangeListener(propertyChangeListener);
-		}
-	}
-
-	/**
-	 * Tests to ensure that if you've loaded a working set extension that uses
-	 * the basic element adapter then it will be invoked even before the bundle
-	 * is activated.
-	 */
-	public void testWorkingSetWithBasicElementAdapter() {
-		IWorkingSetManager workingSetManager = PlatformUI.getWorkbench()
-				.getWorkingSetManager();
-		IAdaptable adaptable = new IAdaptable() {
-
-			public Object getAdapter(Class adapter) {
-				if (adapter == IResource.class)
-					return ResourcesPlugin.getWorkspace().getRoot();
-				return null;
-			}
-		};
-		WorkingSet workingSet = (WorkingSet) workingSetManager
-				.createWorkingSet("dynamicSet2", new IAdaptable[0]);
-		workingSet.setId("org.eclipse.newWorkingSet1.WorkingSet2");
-		workingSetManager.addWorkingSet(workingSet);
-		IAdaptable[] elementsToAdapt = new IAdaptable[] { adaptable };
-		IAdaptable[] adaptedElements = workingSet
-				.adaptElements(elementsToAdapt);
-		// make sure the identity is used
-		assertEquals(elementsToAdapt, adaptedElements);
-		getBundle();
-		// ensure that the bundle is not already active
-		assertFalse("Bundle is active too early", Bundle.ACTIVE == getBundle()
-				.getState());
-		adaptedElements = workingSet.adaptElements(elementsToAdapt);
-		assertEquals(1, adaptedElements.length);
-		// ensure that the adapter above has been invoked
-		assertEquals(ResourcesPlugin.getWorkspace().getRoot(),
-				adaptedElements[0]);
-		// ensure that the bundle is still not active
-		assertFalse("Bundle is active after adapt",
-				Bundle.ACTIVE == getBundle().getState());
-
-		removeBundle();
-		adaptedElements = workingSet.adaptElements(elementsToAdapt);
-		// make sure the identity is used again
-		assertEquals(elementsToAdapt, adaptedElements);
-	}
-
-	/**
-	 * Tests to ensure that if you've loaded a working set extension that uses
-	 * the it's own element adapter then it will be not cause bundle activation
-	 * early.
-	 */
-	public void testWorkingSetWithCustomElementAdapter()
-			throws ClassNotFoundException {
-		IWorkingSetManager workingSetManager = PlatformUI.getWorkbench()
-				.getWorkingSetManager();
-		IAdaptable adaptable = new IAdaptable() {
-
-			public Object getAdapter(Class adapter) {
-				if (adapter == IResource.class)
-					return ResourcesPlugin.getWorkspace().getRoot();
-				return null;
-			}
-		};
-		WorkingSet workingSet = (WorkingSet) workingSetManager
-				.createWorkingSet("dynamicSet1", new IAdaptable[0]);
-		workingSet.setId("org.eclipse.newWorkingSet1.WorkingSet1");
-		workingSetManager.addWorkingSet(workingSet);
-		IAdaptable[] elementsToAdapt = new IAdaptable[] { adaptable };
-		IAdaptable[] adaptedElements = workingSet
-				.adaptElements(elementsToAdapt);
-		// make sure the identity is used
-		assertEquals(elementsToAdapt, adaptedElements);
-		getBundle();
-		// ensure that the bundle is not already active
-		assertFalse("Bundle is active too early", Bundle.ACTIVE == getBundle()
-				.getState());
-		adaptedElements = workingSet.adaptElements(elementsToAdapt);
-		// ensure that the identity is still returned, confirming that the
-		// bundle has not been activated
-		assertEquals(elementsToAdapt, adaptedElements);
-		// activate the bundle by touching a class
-		getBundle().loadClass(getMarkerClass());
-		assertEquals("Bundle not active after classloading", Bundle.ACTIVE,
-				getBundle().getState());
-		// try the adapt again. The custom element adapter should be used
-		adaptedElements = workingSet.adaptElements(elementsToAdapt);
-		assertEquals(1, adaptedElements.length);
-		assertTrue(adaptedElements[0] instanceof IIntroPart);
-
-		removeBundle();
-		adaptedElements = workingSet.adaptElements(elementsToAdapt);
-		// make sure the identity is used again
-		assertEquals(elementsToAdapt, adaptedElements);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestCase.java
deleted file mode 100644
index 4dbb0e3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestCase.java
+++ /dev/null
@@ -1,58 +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.tests.encoding;
-
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.ui.WorkbenchEncoding;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * The EncodingTestCase is the suite that tests the 3.1 
- * encoding support.
- */
-public class EncodingTestCase extends UITestCase {
-
-	/**
-	 * Create a new instance of the receiver.
-	 * @param testName
-	 */
-	public EncodingTestCase(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test that the workbench encodings are all valid. The
-	 * suite includes an invalid one.
-	 *
-	 */
-	public void testWorkbenchEncodings() {
-		List encodings = WorkbenchEncoding.getDefinedEncodings();
-		Iterator iterator = encodings.iterator();
-
-		while (iterator.hasNext()) {
-			String nextEncoding = (String) iterator.next();
-			try {
-				Assert.isTrue(Charset.isSupported(nextEncoding), "Unsupported charset " + nextEncoding);
-				
-			} catch (IllegalCharsetNameException e) {
-				Assert.isTrue(false, "Unsupported charset " + nextEncoding);
-			}
-			
-
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestSuite.java
deleted file mode 100644
index df76d97..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/encoding/EncodingTestSuite.java
+++ /dev/null
@@ -1,40 +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.tests.encoding;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The EncodingTestSuite is the suite for encoding tests.
- */
-public class EncodingTestSuite extends TestSuite {
-	
-	/**
-	 * Returns the suite.  This is required to
-	 * use the JUnit Launcher.
-	 * @return Test
-	 */
-	public static Test suite() {
-		return new EncodingTestSuite();
-	}
-
-	/**
-	 * Create the suite.
-	 */
-	public EncodingTestSuite() {
-		super();
-		addTest(new TestSuite(EncodingTestCase.class));
-	}
-
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistAPITest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistAPITest.java
deleted file mode 100644
index 50c583f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistAPITest.java
+++ /dev/null
@@ -1,440 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Remy Chi Jian Suen <remy.suen@gmail.com> - Bug 271339 
- *          [FieldAssist] Add CC text field content assist doesn't work as expected when narrowing suggestions
- *******************************************************************************/
-
-package org.eclipse.ui.tests.fieldassist;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.fieldassist.ContentProposalAdapter;
-import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
-import org.eclipse.jface.fieldassist.SimpleContentProposalProvider;
-import org.eclipse.jface.fieldassist.TextContentAdapter;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-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.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchCommandConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.fieldassist.ContentAssistCommandAdapter;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.ide.IDEInternalWorkbenchImages;
-
-/**
- * Tests the Operations Framework API.
- * 
- * @since 3.1
- */
-public class FieldAssistAPITest extends TestCase {
-
-	private Dialog dialog;
-
-	public FieldAssistAPITest() {
-		super();
-	}
-
-	/**
-	 * @param testName
-	 */
-	public FieldAssistAPITest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		super.setUp();
-	}
-
-	protected void tearDown() throws Exception {
-		if (dialog != null) {
-			dialog.close();
-		}
-		super.tearDown();
-	}
-
-	public void testFieldDecorationRegistry() {
-		int originalMaxHeight = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationHeight();
-		int originalMaxWidth = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		// System.out.println(new Rectangle(0, 0, originalMaxWidth,
-		// originalMaxHeight));
-		Image imageLarge = IDEInternalWorkbenchImages.getImageDescriptor(
-				IDEInternalWorkbenchImages.IMG_WIZBAN_NEWFOLDER_WIZ)
-				.createImage();
-		// System.out.println(imageLarge.getBounds());
-		// This image is known to be larger than the default images
-		// Test that the maximum increases
-		FieldDecorationRegistry.getDefault().registerFieldDecoration("TESTID",
-				"Test image", imageLarge);
-		assertTrue(FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationHeight() == imageLarge.getBounds().height);
-		assertTrue(FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth() == imageLarge.getBounds().width);
-
-		// This image is known to be smaller. Test that the maximum decreases
-		Image imageSmall = IDEInternalWorkbenchImages.getImageDescriptor(
-				IDEInternalWorkbenchImages.IMG_DLCL_QUICK_FIX_DISABLED)
-				.createImage();
-		// System.out.println(imageSmall.getBounds());
-		FieldDecorationRegistry.getDefault().registerFieldDecoration("TESTID",
-				"Test image", imageSmall);
-		int currentMaxHeight = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationHeight();
-		assertTrue(currentMaxHeight < imageLarge.getBounds().height);
-		int currentMaxWidth = FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth();
-		assertTrue(currentMaxWidth < imageLarge.getBounds().width);
-
-		// Registering another small one shouldn't change things
-		FieldDecorationRegistry.getDefault().registerFieldDecoration("TESTID2",
-				"Test image",
-				"org.eclipse.jface.fieldassist.IMG_DEC_FIELD_CONTENT_PROPOSAL");
-		assertTrue(FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationHeight() == currentMaxHeight);
-		assertTrue(FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth() == currentMaxWidth);
-
-		// After we unregister the new decoration2, the maximums should be their
-		// original values.
-		FieldDecorationRegistry.getDefault()
-				.unregisterFieldDecoration("TESTID");
-		FieldDecorationRegistry.getDefault().unregisterFieldDecoration(
-				"TESTID2");
-		assertTrue(FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationHeight() == originalMaxHeight);
-		assertTrue(FieldDecorationRegistry.getDefault()
-				.getMaximumDecorationWidth() == originalMaxWidth);
-
-	}
-
-	/**
-	 * Tests that a ContentAssistCommandAdapter that has no autoactivation
-	 * characters set will not have its proposals disappear when a user invokes
-	 * content assist and then subsequently inserts a character that matches the
-	 * first character of a suggested proposal.
-	 * <p>
-	 * <ol>
-	 * <li>User invokes content assist</li>
-	 * <li>"one", "two", "three"...shows up</li>
-	 * <li>User hits the 'O' key</li>
-	 * <li>The list shows up (the bug was reporting that the list disappeared)</li>
-	 * </ol>
-	 * 
-	 * @see org.eclipse.jface.tests.fieldassist.FieldAssistAPITest
-	 */
-	public void testBug271339EmptyAutoActivationCharacters() throws Exception {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		Shell shell = workbench.getActiveWorkbenchWindow().getShell();
-		Display display = shell.getDisplay();
-
-		// record the number of shells we have up and active
-		int shellCount = display.getShells().length;
-
-		// the text control of our dialog
-		final Text[] textField = { null };
-
-		dialog = new MessageDialog(shell, null, null, null,
-				MessageDialog.INFORMATION, new String[] { "OK" }, 0) {
-			protected Control createCustomArea(Composite parent) {
-				String[] proposals = new String[] { "one", "two", "three",
-						"four", "five", "six", "seven", "eight", "nine", "ten" };
-
-				Composite container = new Composite(parent, SWT.NULL);
-				GridDataFactory.fillDefaults().grab(true, true).applyTo(
-						container);
-				GridLayoutFactory.swtDefaults().numColumns(2)
-						.applyTo(container);
-
-				Label label = new Label(container, SWT.NULL);
-				label.setText("Test Content Assist bug 271339");
-
-				textField[0] = new Text(container, SWT.FLAT);
-				SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(
-						proposals);
-				proposalProvider.setFiltering(true);
-
-				// use an empty character array because no characters should
-				// prompt for autoactivation
-				ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(
-						textField[0], new TextContentAdapter(),
-						proposalProvider, null, new char[0], true);
-				adapter
-						.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-
-				GridDataFactory.fillDefaults().grab(true, false).applyTo(
-						textField[0]);
-
-				return container;
-			}
-		};
-
-		// we don't want to block the tests
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-
-		// grant the text field focus
-		textField[0].setFocus();
-		// spin the event loop to make sure the text field gets focus
-		while (display.readAndDispatch())
-			;
-
-		// retrieve the content assist handler and run it
-		IHandlerService handlerService = (IHandlerService) workbench
-				.getService(IHandlerService.class);
-		handlerService.executeCommand(
-				IWorkbenchCommandConstants.EDIT_CONTENT_ASSIST, null);
-
-		assertEquals(
-				"There should be two more shells up, the dialog and the proposals dialog",
-				shellCount + 2, display.getShells().length);
-
-		// fake a KeyDown event
-		Event event = new Event();
-		event.type = SWT.KeyDown;
-		event.character = 'o';
-		textField[0].notifyListeners(SWT.KeyDown, event);
-
-		// now we insert the character 'o', this will send out a Modify event
-		textField[0].insert("o"); //$NON-NLS-1$
-
-		assertEquals(
-				"There should still be two more shells up, the dialog and the proposals dialog",
-				shellCount + 2, display.getShells().length);
-
-		// spin the event loop again because we have some asyncExec calls in the
-		// ContentProposalAdapter class
-		while (display.readAndDispatch())
-			;
-
-		// clean-up
-		dialog.close();
-	}
-
-	/**
-	 * Tests that a ContentAssistCommandAdapter that has no autoactivation
-	 * characters set will not have its proposals appear when a user inserts a
-	 * character that matches the first character of a suggested proposal.
-	 * <p>
-	 * <ol>
-	 * <li>User hits the 'O' key</li>
-	 * <li>While "one" matches, the proposals should not appear as no
-	 * autoactivation characters have been set</li>
-	 * </ol>
-	 * 
-	 * @see org.eclipse.jface.tests.fieldassist.FieldAssistAPITest
-	 */
-	public void testBug271339EmptyAutoActivationCharacters2() throws Exception {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		Shell shell = workbench.getActiveWorkbenchWindow().getShell();
-		Display display = shell.getDisplay();
-
-		// record the number of shells we have up and active
-		int shellCount = display.getShells().length;
-
-		// the text control of our dialog
-		final Text[] textField = { null };
-
-		dialog = new MessageDialog(shell, null, null, null,
-				MessageDialog.INFORMATION, new String[] { "OK" }, 0) {
-			protected Control createCustomArea(Composite parent) {
-				String[] proposals = new String[] { "one", "two", "three",
-						"four", "five", "six", "seven", "eight", "nine", "ten" };
-
-				Composite container = new Composite(parent, SWT.NULL);
-				GridDataFactory.fillDefaults().grab(true, true).applyTo(
-						container);
-				GridLayoutFactory.swtDefaults().numColumns(2)
-						.applyTo(container);
-
-				Label label = new Label(container, SWT.NULL);
-				label.setText("Test Content Assist bug 271339");
-
-				textField[0] = new Text(container, SWT.FLAT);
-				SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(
-						proposals);
-				proposalProvider.setFiltering(true);
-
-				// use an empty character array because no characters should
-				// prompt for autoactivation
-				ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(
-						textField[0], new TextContentAdapter(),
-						proposalProvider, null, new char[0], true);
-				adapter
-						.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-
-				GridDataFactory.fillDefaults().grab(true, false).applyTo(
-						textField[0]);
-
-				return container;
-			}
-		};
-
-		// we don't want to block the tests
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-
-		// grant the text field focus
-		textField[0].setFocus();
-		// spin the event loop to make sure the text field gets focus
-		while (display.readAndDispatch())
-			;
-
-		// fake a KeyDown event
-		Event event = new Event();
-		event.type = SWT.KeyDown;
-		event.character = 'o';
-		textField[0].notifyListeners(SWT.KeyDown, event);
-
-		// now we insert the character 'o', this will send out a Modify event
-		textField[0].insert("o"); //$NON-NLS-1$
-
-		// we have no autoactivation characters, the proposals should not appear
-		assertEquals(
-				"There should only be one more extra shell, the dialog itself",
-				shellCount + 1, display.getShells().length);
-
-		// spin the event loop again because we have some asyncExec calls in the
-		// ContentProposalAdapter class
-		while (display.readAndDispatch())
-			;
-
-		// clean-up
-		dialog.close();
-	}
-
-	/**
-	 * Tests that a ContentAssistCommandAdapter that has no autoactivation
-	 * characters set will stay open if the user backspaces over a narrowing
-	 * proposal character.
-	 * <p>
-	 * <ol>
-	 * <li>User invokes content assist</li>
-	 * <li>"one", "two", "three"...shows up</li>
-	 * <li>User hits the 'O' key</li>
-	 * <li>The list narrows</li>
-	 * <li>user hits backspace</li>
-	 * <li>the popup should remain open</li>
-	 * </ol>
-	 * 
-	 * @see org.eclipse.jface.tests.fieldassist.FieldAssistAPITest
-	 */
-	public void testBug271339EmptyAutoActivationCharacters3() throws Exception {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		Shell shell = workbench.getActiveWorkbenchWindow().getShell();
-		Display display = shell.getDisplay();
-
-		// record the number of shells we have up and active
-		int shellCount = display.getShells().length;
-
-		// the text control of our dialog
-		final Text[] textField = { null };
-
-		dialog = new MessageDialog(shell, null, null, null,
-				MessageDialog.INFORMATION, new String[] { "OK" }, 0) {
-			protected Control createCustomArea(Composite parent) {
-				String[] proposals = new String[] { "one", "two", "three",
-						"four", "five", "six", "seven", "eight", "nine", "ten" };
-
-				Composite container = new Composite(parent, SWT.NULL);
-				GridDataFactory.fillDefaults().grab(true, true).applyTo(
-						container);
-				GridLayoutFactory.swtDefaults().numColumns(2)
-						.applyTo(container);
-
-				Label label = new Label(container, SWT.NULL);
-				label.setText("Test Content Assist bug 271339");
-
-				textField[0] = new Text(container, SWT.FLAT);
-				SimpleContentProposalProvider proposalProvider = new SimpleContentProposalProvider(
-						proposals);
-				proposalProvider.setFiltering(true);
-
-				// use an empty character array because no characters should
-				// prompt for autoactivation
-				ContentAssistCommandAdapter adapter = new ContentAssistCommandAdapter(
-						textField[0], new TextContentAdapter(),
-						proposalProvider, null, new char[0], true);
-				adapter
-						.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
-
-				GridDataFactory.fillDefaults().grab(true, false).applyTo(
-						textField[0]);
-
-				return container;
-			}
-		};
-
-		// we don't want to block the tests
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-
-		// grant the text field focus
-		textField[0].setFocus();
-		// spin the event loop to make sure the text field gets focus
-		while (display.readAndDispatch())
-			;
-
-		// retrieve the content assist handler and run it
-		IHandlerService handlerService = (IHandlerService) workbench
-				.getService(IHandlerService.class);
-		handlerService.executeCommand(
-				IWorkbenchCommandConstants.EDIT_CONTENT_ASSIST, null);
-
-		assertEquals(
-				"There should be two more shells up, the dialog and the proposals dialog",
-				shellCount + 2, display.getShells().length);
-
-		// fake a KeyDown event
-		Event event = new Event();
-		event.type = SWT.KeyDown;
-		event.character = 'o';
-		textField[0].notifyListeners(SWT.KeyDown, event);
-
-		// now we insert the character 'o', this will send out a Modify event
-		textField[0].insert("o"); //$NON-NLS-1$
-
-		assertEquals(
-				"There should still be two more shells up, the dialog and the proposals dialog",
-				shellCount + 2, display.getShells().length);
-		
-		// fake a Backspace
-		event = new Event();
-		event.type = SWT.KeyDown;
-		event.character = SWT.BS;
-		textField[0].notifyListeners(SWT.KeyDown, event);
-		
-		// now we remove the o, this will trigger a modify
-		textField[0].setText("");  //$NON-NLS-1$
-	
-		assertEquals(
-				"There should still be two more shells up, the dialog and the proposals dialog",
-				shellCount + 2, display.getShells().length);
-
-		// spin the event loop again because we have some asyncExec calls in the
-		// ContentProposalAdapter class
-		while (display.readAndDispatch())
-			;
-
-		// clean-up
-		dialog.close();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistTestSuite.java
deleted file mode 100644
index 0b4a3dc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/fieldassist/FieldAssistTestSuite.java
+++ /dev/null
@@ -1,34 +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.tests.fieldassist;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests for the platform operations support.
- */
-public class FieldAssistTestSuite extends TestSuite {
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static final Test suite() {
-		return new FieldAssistTestSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public FieldAssistTestSuite() {
-		addTest(new TestSuite(FieldAssistAPITest.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/filteredtree/FilteredTreeTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/filteredtree/FilteredTreeTests.java
deleted file mode 100644
index 16238a7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/filteredtree/FilteredTreeTests.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.tests.filteredtree;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.tests.viewers.TestElement;
-import org.eclipse.jface.tests.viewers.TestModelContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-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.Shell;
-import org.eclipse.ui.dialogs.FilteredTree;
-import org.eclipse.ui.dialogs.PatternFilter;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class FilteredTreeTests extends UITestCase {
-	private FilteredTree fTreeViewer;
-	private TestElement fRootElement;
-	// create an 8000-item Tree
-	private static int DEPTH = 3;
-	private static int NUM_ITEMS = 20;
-	
-	private class MyFilteredTree extends FilteredTree{
-		public MyFilteredTree(Composite comp, int style) {
-			super(comp);
-			doSomeStuffBeforeWidgetCreation();
-			init(style, new PatternFilter());
-		}
-		
-		private void doSomeStuffBeforeWidgetCreation(){
-			// do nothing
-		}
-	}
-	
-	private abstract class FilteredTreeDialog extends Dialog {
-		private int style;
-		
-		public FilteredTreeDialog(Shell shell, int treeStyle){
-			super(shell);
-			style = treeStyle;
-		}
-		protected Control createContents(Composite parent) {
-			Composite c = new Composite(parent, SWT.NONE);
-			c.setLayout(new GridLayout());
-
-			c.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-			fTreeViewer = doCreateFilteredTree(c, style);
-			fTreeViewer.getViewer().setUseHashlookup(true);
-			setInput();
-			return parent;
-		}
-
-		protected abstract FilteredTree doCreateFilteredTree(Composite comp, int style); 
-		
-	};	
-	
-	/**
-	 * @param testName
-	 */
-	public FilteredTreeTests(String testName) {
-		super(testName);
-	}
-
-	public void testCreateFilteredTree(){
-		runFilteredTreeTest(SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL
-				| SWT.BORDER);
-	}
-	
-	public void testCreateCheckboxFilteredTree(){
-		runFilteredTreeTest(SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL
-				| SWT.BORDER | SWT.CHECK);
-	}
-	/*
-	 * Tests creation of a subclass of filtered tree, using alternate constructor.
-	 */
-	public void testCreateMyFilteredTree(){
-		fRootElement = TestElement.createModel(DEPTH, NUM_ITEMS);	
-		final int treeStyle = SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL |SWT.FLAT;
-		
-		Dialog dialog = new FilteredTreeDialog((Shell)null, treeStyle){
-			protected FilteredTree doCreateFilteredTree(Composite comp, int style) {
-				return createMyFilteredTree(comp, treeStyle);
-			}
-		};
-
-		dialog.create();
-		Assert.isNotNull(fTreeViewer, "Filtered tree is null");
-		int itemCount = fTreeViewer.getViewer().getTree().getItemCount();
-		Assert.isTrue(itemCount == NUM_ITEMS, "tree item count " + itemCount
-				+ " does not match expected: " + NUM_ITEMS);
-		dialog.close();
-	}
-	
-	private void runFilteredTreeTest(final int treeStyle){
-		fRootElement = TestElement.createModel(DEPTH, NUM_ITEMS);	
-		
-		Dialog dialog = new FilteredTreeDialog((Shell)null, treeStyle){
-			protected FilteredTree doCreateFilteredTree(Composite comp, int style) {
-				return createFilteredTree(comp, treeStyle);
-			}
-		};
-
-		dialog.create();
-		Assert.isNotNull(fTreeViewer, "Filtered tree is null");
-		int itemCount = fTreeViewer.getViewer().getTree().getItemCount();
-		Assert.isTrue(itemCount == NUM_ITEMS, "tree item count " + itemCount
-				+ " does not match expected: " + NUM_ITEMS);
-		dialog.close();
-	}
-	
-	private FilteredTree createFilteredTree(Composite parent, int style){
-	      Composite c = new Composite(parent, SWT.NONE);
-	      c.setLayout(new GridLayout());
-	      FilteredTree fTree = new FilteredTree(c, style, new PatternFilter());
-
-	      GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-		  gd.widthHint = 400;
-		  gd.heightHint = 500;
-		  fTree.setLayoutData(gd);
-		  fTree.getViewer().setContentProvider(new TestModelContentProvider());
-		  fTree.getViewer().setLabelProvider(new LabelProvider());
-
-	      return fTree;	
-	}
-	
-	private FilteredTree createMyFilteredTree(Composite parent, int style){
-		Composite c = new Composite(parent, SWT.NONE);
-	    c.setLayout(new GridLayout());
-	    FilteredTree fTree = new MyFilteredTree(c, style);
-	    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-		gd.widthHint = 400;
-		gd.heightHint = 500;
-		fTree.setLayoutData(gd);
-		fTree.getViewer().setContentProvider(new TestModelContentProvider());
-		fTree.getViewer().setLabelProvider(new LabelProvider());
-		return fTree;
-	}
-	
-	private void setInput() {
-		fTreeViewer.getViewer().setInput(fRootElement);
-	}
-
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		fTreeViewer = null;
-		fRootElement = null;
-	}	
-	
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java
deleted file mode 100644
index 0fdf2f0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/ide/api/FileEditorInputTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.ide.api;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests [I]FileEditorInput API.
- * 
- * @since 3.1
- */
-public class FileEditorInputTest extends UITestCase {
-
-    /**
-     * @param testName
-     */
-    public FileEditorInputTest(String testName) {
-        super(testName);
-    }
-    
-    /**
-     * Regression test for bug 72337 - [IDE] FileEditorInput .equals() not implemented against interface
-     */
-    public void testBug72337() {
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IPath path = new Path("/foo/bar.txt");
-        IFile fileA = workspace.getRoot().getFile(path);
-        FileEditorInput inputA1 = new FileEditorInput(fileA);
-        OtherFileEditorInput inputA2 = new OtherFileEditorInput(fileA);
-        assertTrue(inputA1.equals(inputA2));
-        assertTrue(inputA2.equals(inputA1));
-    }
-    
-    class OtherFileEditorInput implements IFileEditorInput {
-        private IFile file;
-        
-        public OtherFileEditorInput(IFile file) {
-            this.file = file;
-        }
-        
-        public IFile getFile() {
-            return file;
-        }
-
-        /**
-		 * @throws CoreException if this method fails
-		 */
-        public IStorage getStorage() throws CoreException {
-            return file;
-        }
-
-        public boolean exists() {
-            return file.exists();
-        }
-
-        public ImageDescriptor getImageDescriptor() {
-            return null;
-        }
-
-        public String getName() {
-            return file.getName();
-        }
-
-        public IPersistableElement getPersistable() {
-            return null;
-        }
-
-        public String getToolTipText() {
-            return file.getFullPath().toString();
-        }
-
-        public Object getAdapter(Class adapter) {
-            if (adapter == IResource.class)
-                return file;
-            if (adapter == IFile.class)
-                return file;
-            return null;
-        }
-        
-        public boolean equals(Object obj) {
-            if (!(obj instanceof IFileEditorInput))
-                return false;
-            IFileEditorInput other = (IFileEditorInput) obj;
-            return file.equals(other.getFile());
-        }
-        
-        public int hashCode() {
-            return file.hashCode();
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionExpressionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionExpressionTest.java
deleted file mode 100644
index 791b5b9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionExpressionTest.java
+++ /dev/null
@@ -1,244 +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.ui.tests.internal;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.api.ListElement;
-import org.eclipse.ui.tests.api.ListView;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * This class contains tests for popup menu enablement
- */
-public abstract class ActionExpressionTest extends UITestCase {
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    protected String VIEW_ID = "org.eclipse.ui.tests.internal.ActionExpressionTest";
-
-    ListElement red = new ListElement("red");
-
-    ListElement blue = new ListElement("blue");
-
-    ListElement redTrue = new ListElement("red", true);
-
-    public ActionExpressionTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testAllAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Test null selection.
-        selectAndUpdateMenu(view, null, mgr);
-        testAction(mgr, "allAction_v2", false);
-
-        // Test red selection.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "allAction_v2", true);
-
-        // Test blue selection.
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "allAction_v2", true);
-
-        // Test red + true selection.
-        selectAndUpdateMenu(view, redTrue, mgr);
-        testAction(mgr, "allAction_v2", true);
-    }
-
-    public void testRedAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Test null selection.
-        selectAndUpdateMenu(view, null, mgr);
-        testAction(mgr, "redAction_v2", false);
-
-        // Test red selection.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "redAction_v2", true);
-
-        // Test blue selection.
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "redAction_v2", false);
-
-        // Test red + true selection.
-        selectAndUpdateMenu(view, redTrue, mgr);
-        testAction(mgr, "redAction_v2", true);
-    }
-
-    public void testNotRedAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Test null selection.
-        selectAndUpdateMenu(view, null, mgr);
-        testAction(mgr, "notRedAction_v2", false);
-
-        // Test red selection.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "notRedAction_v2", false);
-
-        // Test blue selection.
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "notRedAction_v2", true);
-
-        // Test red + true selection.
-        selectAndUpdateMenu(view, redTrue, mgr);
-        testAction(mgr, "notRedAction_v2", false);
-    }
-
-    public void testTrueAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Test null selection.
-        selectAndUpdateMenu(view, null, mgr);
-        testAction(mgr, "trueAction_v2", false);
-
-        // Test red selection.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "trueAction_v2", false);
-
-        // Test blue selection.
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "trueAction_v2", false);
-
-        // Test red + true selection.
-        selectAndUpdateMenu(view, redTrue, mgr);
-        testAction(mgr, "trueAction_v2", true);
-    }
-
-    public void testRedOrBlueAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Test null selection.
-        selectAndUpdateMenu(view, null, mgr);
-        testAction(mgr, "redOrBlueAction_v2", false);
-
-        // Test red selection.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "redOrBlueAction_v2", true);
-
-        // Test blue selection.
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "redOrBlueAction_v2", true);
-
-        // Test red + true selection.
-        selectAndUpdateMenu(view, redTrue, mgr);
-        testAction(mgr, "redOrBlueAction_v2", true);
-    }
-
-    public void testRedAndTrueAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Test null selection.
-        selectAndUpdateMenu(view, null, mgr);
-        testAction(mgr, "redAndTrueAction_v2", false);
-
-        // Test red selection.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "redAndTrueAction_v2", false);
-
-        // Test blue selection.
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "redAndTrueAction_v2", false);
-
-        // Test red + true selection.
-        selectAndUpdateMenu(view, redTrue, mgr);
-        testAction(mgr, "redAndTrueAction_v2", true);
-    }
-
-    public void testPluginStateActions() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Open the menu and test actions.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "pluginNotInstalledAction_v2", false);
-        testAction(mgr, "pluginInstalledAction_v2", true);
-        testAction(mgr, "pluginNotActivatedAction_v2", false);
-        testAction(mgr, "pluginActivatedAction_v2", true);
-    }
-
-    public void testSystemPropertyAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Clear the system property, refresh the menu,
-        // and test the action.
-        System.setProperty("ActionExpressionVar", "");
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "systemPropertyAction_v2", false);
-
-        // Set the system property, refresh the menu,
-        // and test the action.
-        System.setProperty("ActionExpressionVar", "bubba");
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "systemPropertyAction_v2", true);
-    }
-
-    /**
-     * Creates the list view.
-     */
-    protected ListView showListView() throws Throwable {
-        ListView view = (ListView) (fPage.showView(VIEW_ID));
-        red = new ListElement("red");
-        blue = new ListElement("blue");
-        redTrue = new ListElement("red", true);
-        view.addElement(red);
-        view.addElement(blue);
-        view.addElement(redTrue);
-        return view;
-    }
-
-    /**
-     * Select an object and fire about to show.
-     */
-    protected void selectAndUpdateMenu(ListView view, ListElement element,
-            MenuManager mgr) throws Throwable {
-        view.selectElement(element);
-        ActionUtil.fireAboutToShow(mgr);
-    }
-
-    /**
-     * Returns the menu manager containing the actions.
-     */
-    protected abstract MenuManager getActionMenuManager(ListView view)
-            throws Throwable;
-
-    /**
-     * Tests the enablement / visibility of an action.
-     */
-    protected abstract void testAction(MenuManager mgr, String action,
-            boolean expected) throws Throwable;
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionSetExpressionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionSetExpressionTest.java
deleted file mode 100644
index 700e996..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ActionSetExpressionTest.java
+++ /dev/null
@@ -1,54 +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.ui.tests.internal;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.SubContributionItem;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.api.ListView;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-
-/**
- * This class contains tests for action set enablement
- */
-public class ActionSetExpressionTest extends ActionExpressionTest {
-
-    public ActionSetExpressionTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Opens the action set.  Returns the menu manager containing it.
-     */
-    protected MenuManager getActionMenuManager(ListView view) throws Throwable {
-        fPage.showActionSet("org.eclipse.ui.tests.internal.ListElementActions");
-        WorkbenchWindow win = (WorkbenchWindow) fWindow;
-        IContributionItem item = win.getMenuBarManager().find(
-                "org.eclipse.ui.tests.internal.ListElementMenu");
-        while (item instanceof SubContributionItem) {
-            item = ((SubContributionItem) item).getInnerItem();
-            if (item instanceof MenuManager)
-                return (MenuManager) item;
-        }
-        fail("Unable to find menu manager");
-        return null;
-    }
-
-    /**
-     * Tests the enablement of an action.
-     */
-    protected void testAction(MenuManager mgr, String action, boolean expected)
-            throws Throwable {
-        assertEquals(action, expected, ActionUtil.getActionWithLabel(mgr,
-                action).isEnabled());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/AnimationEngineTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/AnimationEngineTest.java
deleted file mode 100644
index df2d35e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/AnimationEngineTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.internal.AnimationEngine;
-import org.eclipse.ui.internal.AnimationFeedbackBase;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- *
- */
-public class AnimationEngineTest extends UITestCase {
-	
-	/**
-	 * @param testName
-	 */
-	public AnimationEngineTest(String testName) {
-		super(testName);
-	}
-
-	private class TestFeedback extends AnimationFeedbackBase {
-		/**
-		 * @param parentShell
-		 */
-		public TestFeedback(Shell parentShell) {
-			super(parentShell);
-		}
-
-		public int count = 0;
-		public int initCalled = -1;
-		public int renderCalled = -1;
-		public int disposeCalled = -1;
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.ui.internal.AnimationFeedbackBase#dispose()
-		 */
-		public void dispose() {
-			disposeCalled = count++;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.ui.internal.AnimationFeedbackBase#initialize(org.eclipse.ui.internal.AnimationEngine)
-		 */
-		public void initialize(AnimationEngine animationEngine) {
-			initCalled = count++;
-		}
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.ui.internal.AnimationFeedbackBase#renderStep(org.eclipse.ui.internal.AnimationEngine)
-		 */
-		public void renderStep(AnimationEngine engine) {
-			if(renderCalled == -1)
-				renderCalled = count++;
-		}
-		
-	};
-	
-	Shell shell;
-	TestFeedback feedback;
-	AnimationEngine engine;
-	
-	protected void doSetUp() {
-		shell = new Shell(Display.getCurrent());
-	}
-
-	protected void doTearDown() {
-		shell.dispose();
-		shell = null;
-	}
-	
-	/**
-	 * Ensure that the protocol expected by the animation implementations works
-	 * as defined:
-	 * <ol>
-	 * <li>The feedback's initialize gets called on creation of the engine</li>
-	 * <li>The feedback's renderStep gets called at least once</li>
-	 * <li>The feedback's dispose gets called at least once (after a render)</li>
-	 * @throws InterruptedException
-	 */
-	public void testAnimationEngine() throws InterruptedException {
-		// Ensure that animations are turned on
-		IPreferenceStore preferenceStore = PrefUtil.getAPIPreferenceStore();
-		preferenceStore.setValue(IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS, true);
-		
-		feedback = new TestFeedback(shell);
-		engine = new AnimationEngine(feedback, 250, 0);
-		
-		// ensure that the init method gets called on construction
-		assertTrue("'initialize' was not called", feedback.initCalled == 0);
-		
-		// Run the animation
-		engine.schedule();
-				
-		// Wait for the animation to finish
-		Display display = shell.getDisplay();
-		while(engine.getState() != Job.NONE) {
-			while (display.readAndDispatch());
-			Thread.sleep(20);
-		}
-
-		// Make sure all methods were called...and in the correct order
-		assertTrue("'render' was not called", feedback.renderCalled >= 0);
-		assertTrue("'dispose' was not called", feedback.disposeCalled >= 0);
-		
-		//...in the correct order
-		assertTrue("'dispose' called before 'render", feedback.renderCalled < feedback.disposeCalled);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug41931Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug41931Test.java
deleted file mode 100644
index 3b968c4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug41931Test.java
+++ /dev/null
@@ -1,97 +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.ui.tests.internal;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test for Bug 41931.
- * 
- * @since 3.0
- */
-public class Bug41931Test extends UITestCase {
-
-    /**
-     * Constructs a new instance of this test case.
-     * 
-     * @param testName
-     *            The name of the test
-     */
-    public Bug41931Test(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that the <code>bringToTop(IWorkbenchPart)</code> correctly
-     * updates the activation list.
-     * 
-     * @throws CoreException
-     *             If the test project cannot be created or opened.
-     */
-    public void testBringToTop() throws CoreException {
-        // Open a window.
-        IWorkbenchWindow window = openTestWindow();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-
-        // Create a test project.
-        IProject testProject = workspace.getRoot().getProject("Bug41931"); //$NON-NLS-1$
-        testProject.create(null);
-        testProject.open(null);
-
-        // Open three test files.
-        InputStream contents = new ByteArrayInputStream(new byte[0]);
-        IFile fileA = testProject.getFile("a.txt"); //$NON-NLS-1$
-        fileA.create(contents, true, null);
-        IFile fileB = testProject.getFile("b.txt"); //$NON-NLS-1$
-        fileB.create(contents, true, null);
-        IFile fileC = testProject.getFile("c.txt"); //$NON-NLS-1$
-        fileC.create(contents, true, null);
-
-        // Open editors on those files.
-        WorkbenchPage page = (WorkbenchPage) window.getActivePage();
-        IEditorPart editorA = IDE.openEditor(page, fileA, true);
-        IEditorPart editorB = IDE.openEditor(page, fileB, true);
-        IEditorPart editorC = IDE.openEditor(page, fileC, true);
-
-        // Test that the editors are open in the order: A, B, C
-        IEditorPart[] expectedResults = { editorA, editorB, editorC };
-        IWorkbenchPartReference[] actualResults = page.getSortedParts();
-        for (int i = 0; i < expectedResults.length; i++) {
-            assertEquals(
-                    "Pre-test order is not correct.", expectedResults[i].getTitle(), actualResults[i].getPart(false).getTitle()); //$NON-NLS-1$
-        }
-
-        // Bring editor B to the top.
-        page.bringToTop(editorB);
-
-        // Test that the editors are open in the order: A, C, B
-        expectedResults = new IEditorPart[] { editorA, editorC, editorB };
-        actualResults = page.getSortedParts();
-        for (int i = 0; i < expectedResults.length; i++) {
-            assertEquals(
-                    "bringToTop() does not change sorted part order.", expectedResults[i].getTitle(), actualResults[i].getPart(false).getTitle()); //$NON-NLS-1$
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug78470Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug78470Test.java
deleted file mode 100644
index d2fb120..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug78470Test.java
+++ /dev/null
@@ -1,107 +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.tests.internal;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class Bug78470Test extends UITestCase {
-
-	public static class MyPerspective implements IPerspectiveFactory {
-		public static String ID = "org.eclipse.ui.tests.internal.Bug78470Test.MyPerspective";
-
-		public void createInitialLayout(IPageLayout layout) {
-			String editorArea = layout.getEditorArea();
-			IFolderLayout folder1 = layout.createFolder("folder1",
-					IPageLayout.LEFT, .75f, editorArea);
-			// the order is important
-			folder1.addPlaceholder(MyViewPart.ID2);
-			folder1.addView(MyViewPart.ID);
-			folder1.addPlaceholder(MyViewPart.ID3);
-		}
-	}
-
-	public static class MyViewPart extends ViewPart {
-		public static String ID = "org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart";
-
-		public static String ID2 = ID + "2";
-		public static String ID3 = ID + "3";
-
-		public void createPartControl(Composite parent) {
-			Label label = new Label(parent, SWT.NONE);
-			label.setText(getSite().getId());
-		}
-
-		public void setFocus() {
-			// nothing to do
-		}
-	}
-
-	public Bug78470Test(String testName) {
-		super(testName);
-	}
-
-	boolean partVisibleExecuted = false;
-
-	public void test78470() throws Exception {
-		IWorkbench workbench = getWorkbench();
-		final IWorkbenchWindow activeWorkbenchWindow = workbench
-				.getActiveWorkbenchWindow();
-		final IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
-		activeWorkbenchWindow.getPartService().addPartListener(
-				new IPartListener2() {
-					public void partActivated(IWorkbenchPartReference partRef) {
-					}
-					public void partBroughtToTop(IWorkbenchPartReference partRef) {
-					}
-					public void partClosed(IWorkbenchPartReference partRef) {
-					}
-					public void partDeactivated(IWorkbenchPartReference partRef) {
-					}
-					public void partOpened(IWorkbenchPartReference partRef) {
-					}
-					public void partHidden(IWorkbenchPartReference partRef) {
-					}
-					public void partVisible(IWorkbenchPartReference partRef) {
-						if (partRef.getId().equals(MyViewPart.ID)) {
-							partVisibleExecuted = true;
-							try {
-								activePage.showView(MyViewPart.ID2);
-								activePage.showView(MyViewPart.ID3);
-							} catch(Exception ex) {
-								ex.printStackTrace();
-							}
-						}
-					}
-					public void partInputChanged(IWorkbenchPartReference partRef) {
-					}
-				});
-		workbench.showPerspective(MyPerspective.ID, activeWorkbenchWindow);
-		processEvents();
-		Thread.sleep(2000);
-		assertTrue("view was not made visible", partVisibleExecuted);
-		assertNotNull(activePage.findView(MyViewPart.ID2));
-		assertNotNull(activePage.findView(MyViewPart.ID3));
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug99858Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug99858Test.java
deleted file mode 100644
index fd6807b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/Bug99858Test.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import java.io.ByteArrayInputStream;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.DeleteResourceAction;
-import org.eclipse.ui.actions.TextActionHandler;
-import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
-import org.eclipse.ui.internal.operations.AdvancedValidationUserApprover;
-import org.eclipse.ui.views.navigator.ResourceNavigator;
-
-/**
- * bug 99858 [IDE] Error upon deleting a project. Tests that our delete code no
- * longer throws a CoreException when deleting a closed project.
- * 
- * @since 3.2
- */
-public class Bug99858Test extends TestCase {
-
-	private static final String NAVIGATOR_VIEW = "org.eclipse.ui.views.ResourceNavigator";
-
-	public static TestSuite suite() {
-		return new TestSuite(Bug99858Test.class);
-	}
-
-	public Bug99858Test() {
-		super();
-	}
-
-	public Bug99858Test(String name) {
-		super(name);
-	}
-
-	/**
-	 * Create a project with some files, close it, and delete it. With the
-	 * changes in runtime to throw a CoreException from IContainer#members(),
-	 * the project won't get deleted if ReadOnlyStateChecker is not fixed.
-	 * 
-	 * @throws Throwable
-	 *             if it goes wrong
-	 */
-	public void testDeleteClosedProject() throws Throwable {
-		IWorkbenchPage page = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow().getActivePage();
-
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject testProject = workspace.getRoot().getProject(
-				"TestClosedDelete");
-		testProject.create(null);
-		testProject.open(null);
-
-		String contents = "File ready for execution, sir!";
-		createProjectFile(testProject, "a.txt", contents);
-		createProjectFile(testProject, "b.txt", contents);
-
-		ResourceNavigator view = (ResourceNavigator) page
-				.showView(NAVIGATOR_VIEW);
-		view.setFocus();
-
-		// get a testing version of the delete action, and set it up.
-		MyDeleteResourceAction newDel = new MyDeleteResourceAction(view
-				.getViewSite());
-		newDel.setEnabled(true);
-		TextActionHandler tmpHandler = new TextActionHandler(view.getViewSite()
-				.getActionBars());
-		tmpHandler.setDeleteAction(newDel);
-
-		view.getViewSite().getActionBars().updateActionBars();
-
-		chewUpEvents();
-
-		StructuredSelection s = new StructuredSelection(testProject);
-
-		// close the project and update the selection events.
-		testProject.close(null);
-		assertFalse(testProject.isAccessible());
-		view.getViewSite().getSelectionProvider().setSelection(s);
-		newDel.selectionChanged(s);
-		chewUpEvents();
-
-		IAction del = view.getViewSite().getActionBars()
-				.getGlobalActionHandler(ActionFactory.DELETE.getId());
-
-		assertTrue(del.isEnabled());
-
-		// run the delete event.
-		del.runWithEvent(null);
-
-		chewUpEvents();
-
-		// the delete even ran
-		assertTrue(newDel.fRan);
-
-		//Join twice as there are two jobs now
-		boolean joined = false;
-		while (!joined) {
-			try {
-				Platform
-						.getJobManager()
-						.join(
-								IDEWorkbenchMessages.DeleteResourceAction_jobName,
-								null);
-				joined = true;
-			} catch (InterruptedException ex) {
-				// we might be blocking some other thread, spin the event loop
-				// to run syncExecs
-				chewUpEvents();
-				// and now keep trying to join
-			}
-		}
-
-		joined = false;
-		while (!joined) {
-			try {
-				Platform
-						.getJobManager()
-						.join(
-								IDEWorkbenchMessages.DeleteResourceAction_jobName,
-								null);
-				joined = true;
-			} catch (InterruptedException ex) {
-				// we might be blocking some other thread, spin the event loop
-				// to run syncExecs
-				chewUpEvents();
-				// and now keep trying to join
-			}
-		}
-
-		// if our project still exists, the delete failed.
-		assertFalse(testProject.exists());
-	}
-
-	/**
-	 * Subclass the delete action and go into testing mode, which limits user
-	 * dialogs.
-	 * 
-	 * @since 3.2
-	 */
-	private class MyDeleteResourceAction extends DeleteResourceAction {
-
-		public boolean fRan = false;
-
-		public MyDeleteResourceAction(IShellProvider provider) {
-			super(provider);
-			fTestingMode = true;
-		}
-
-		public void run() {
-			super.run();
-			fRan = true;
-		}
-	}
-
-	/**
-	 * Create a quick project file, so the project has some children to delete.
-	 * 
-	 * @param testProject
-	 *            the project
-	 * @param name
-	 *            the filename
-	 * @param contents
-	 *            A small string for contents
-	 * @throws CoreException
-	 *             if IFile#create(...) throws an exception
-	 */
-	private void createProjectFile(IProject testProject, String name,
-			String contents) throws CoreException {
-		IFile textFile = testProject.getFile(name);
-		ByteArrayInputStream inputStream = new ByteArrayInputStream(contents
-				.getBytes());
-		textFile.create(inputStream, true, null);
-	}
-
-	/**
-	 * After an internal action, see if there are any outstanding SWT events.
-	 */
-	private void chewUpEvents() throws InterruptedException {
-		Display display = Display.getCurrent();
-		while (display.readAndDispatch())
-			;
-	}
-	
-	protected void setUp() throws Exception {
-		super.setUp();
-		AdvancedValidationUserApprover.AUTOMATED_MODE = true;
-	}
-	
-	protected void tearDown() throws Exception {
-		AdvancedValidationUserApprover.AUTOMATED_MODE = false;
-		super.tearDown();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/EditorActionBarsTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/EditorActionBarsTest.java
deleted file mode 100644
index ce78d74..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/EditorActionBarsTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.action.CoolBarManager;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.api.MockAction;
-import org.eclipse.ui.tests.api.MockEditorActionBarContributor;
-import org.eclipse.ui.tests.api.MockEditorPart;
-import org.eclipse.ui.tests.api.MockViewPart;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * This class contains tests for the editor action bars
- * implementation.
- */
-public class EditorActionBarsTest extends UITestCase {
-
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    private String EDITOR_ID = "org.eclipse.ui.tests.internal.EditorActionBarsTest";
-
-    /**
-     * Constructor for IEditorPartTest
-     */
-    public EditorActionBarsTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    /**
-     * Test action enablement / disablement when a
-     * part is active.
-     * <p>
-     * Created for PR 1GJNB52: ToolItems in EditorToolBarManager can get 
-     * out of synch with the state of the IAction
-     * </p>
-     */
-    public void testActionEnablementWhenActive() throws Throwable {
-        // Open an editor.
-        MockEditorPart editor = openEditor(fPage, "1");
-        MockEditorActionBarContributor contributor = (MockEditorActionBarContributor) editor
-                .getEditorSite().getActionBarContributor();
-
-        // Enable all actions.
-        contributor.enableActions(true);
-        verifyToolItemState(contributor, true);
-
-        // Disable all actions.
-        contributor.enableActions(false);
-        verifyToolItemState(contributor, false);
-    }
-
-    /**
-     * Test action enablement / disablement when a
-     * part is inactive.
-     * <p>
-     * Created for PR 1GJNB52: ToolItems in EditorToolBarManager can get 
-     * out of synch with the state of the IAction
-     * </p>
-     */
-    public void testActionEnablementWhenInactive() throws Throwable {
-        // Open an editor.
-        MockEditorPart editor = openEditor(fPage, "2");
-        MockEditorActionBarContributor contributor = (MockEditorActionBarContributor) editor
-                .getEditorSite().getActionBarContributor();
-
-        // Enable all actions.
-        contributor.enableActions(true);
-        verifyToolItemState(contributor, true);
-
-        // Activate some other part.  Disable the actions.
-        // Then activate the editor and test tool item state.
-        fPage.showView(MockViewPart.ID);
-        contributor.enableActions(false);
-        fPage.activate(editor);
-        verifyToolItemState(contributor, false);
-
-        // Activate some other part.  Enable the actions.
-        // Then activate the editor and test tool item state.
-        fPage.showView(MockViewPart.ID);
-        contributor.enableActions(true);
-        fPage.activate(editor);
-        verifyToolItemState(contributor, true);
-    }
-
-    /**
-     * Open a test editor.
-     */
-    protected MockEditorPart openEditor(IWorkbenchPage page, String suffix)
-            throws Throwable {
-        IProject proj = FileUtil.createProject("IEditorActionBarsTest");
-        IFile file = FileUtil.createFile("test" + suffix + ".txt", proj);
-        return (MockEditorPart) page.openEditor(new FileEditorInput(file),
-                EDITOR_ID);
-    }
-
-    /**
-     * Tests whether actions are enabled.
-     */
-    protected void verifyToolItemState(MockEditorActionBarContributor ctr,
-            boolean enabled) {
-        MockAction[] actions = ctr.getActions();
-        for (int nX = 0; nX < actions.length; nX++)
-            verifyToolItemState(actions[nX], enabled);
-    }
-
-    /**
-     * Tests whether an action is enabled.
-     */
-    protected void verifyToolItemState(IAction action, boolean enabled) {
-        String actionText = action.getText();
-        ICoolBarManager tbm = ((WorkbenchWindow) fWindow).getCoolBarManager();
-        IContributionItem[] coolItems = tbm.getItems();
-        for (int i = 0; i < coolItems.length; ++i) {
-            if (coolItems[i] instanceof ToolBarContributionItem) {
-                ToolBarContributionItem coolItem = (ToolBarContributionItem) coolItems[i];
-                IToolBarManager citbm = coolItem.getToolBarManager();
-                ToolBar tb = ((ToolBarManager) citbm).getControl();
-                verifyNullToolbar(tb, actionText, citbm);
-                if (tb != null && !tb.isDisposed()) {
-                    ToolItem[] items = tb.getItems();
-                    for (int j = 0; j < items.length; j++) {
-                        String itemText = items[j].getToolTipText();
-                        if (actionText.equals(itemText)) {
-                            assertEquals(enabled, items[j].getEnabled());
-                            return;
-                        }
-                    }
-                }
-            }
-        }
-        fail("Action for " + actionText + " not found");
-    }
-
-    /**
-     * Confirms that a ToolBar is not null when you're looking a manager that 
-     * is a CoolItemToolBarManager and it has non-separator/non-invisible 
-     * contributions.
-     * This is a consequence of the changes made to 
-     * CoolItemToolBarManager.update() that hides the a bar if it does not
-     * contain anything as per the above mentioned criteria.  Under this 
-     * circumstance, the underlying ToolBar is not created.
-     * 
-     * @param tb the ToolBar to check
-     * @param actionText the action text
-     * @param manager the IToolBarManager containing items
-     * @since 3.0
-     */
-    private void verifyNullToolbar(ToolBar tb, String actionText,
-            IToolBarManager manager) {
-        if (tb == null) { // toolbar should only be null if the given manager is
-            // a CoolBarManager and it contains only separators or invisible 
-            // objects.  
-            IContributionItem[] items = manager.getItems();
-            for (int i = 0; i < items.length; i++) {
-                if (!(items[i] instanceof Separator) && items[i].isVisible()) {
-                    fail("No toolbar for a visible action text \"" + actionText
-                            + "\"");
-                }
-            }
-
-        }
-    }
-
-    /**
-     * Tests an edge case in cool bar updating when the cool bar has a single separator 
-     * and no other contents (or multiple separators and no other contents). 
-     * See bug 239945 for details.
-     * @throws Throwable
-     */
-    public void test239945() throws Throwable {
-    	// Test a cool bar with a single separator
-		CoolBarManager coolBarManager = new CoolBarManager();
-		coolBarManager.add(new Separator(CoolBarManager.USER_SEPARATOR));
-		try {
-			coolBarManager.createControl(fWindow.getShell());
-			coolBarManager.update(true);
-		} catch (ArrayIndexOutOfBoundsException e) {
-			fail("Exception updating cool bar with a single separator");
-		}
-
-    	// Test a cool bar with multiple separators
-		CoolBarManager coolBarManager2 = new CoolBarManager();
-		coolBarManager2.add(new Separator(CoolBarManager.USER_SEPARATOR));
-		try {
-			coolBarManager2.createControl(fWindow.getShell());
-			coolBarManager2.update(true);
-		} catch (ArrayIndexOutOfBoundsException e) {
-			fail("Exception updating cool bar with multiple separators");
-		}
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedSourceViewer.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedSourceViewer.java
deleted file mode 100644
index 967a5b4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedSourceViewer.java
+++ /dev/null
@@ -1,60 +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.ui.tests.internal;
-
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-
-public class ExtendedSourceViewer extends SourceViewer {
-
-    /**
-     * Constructs a new source viewer. The vertical ruler is initially visible.
-     * The viewer has not yet been initialized with a source viewer configuration.
-     *
-     * @param parent the parent of the viewer's control
-     * @param ruler the vertical ruler used by this source viewer
-     * @param styles the SWT style bits
-     */
-    public ExtendedSourceViewer(Composite parent, IVerticalRuler ruler,
-            int styles) {
-        super(parent, ruler, styles);
-    }
-
-    /*
-     * @see Viewer#getSelection()
-     */
-    public ISelection getSelection() {
-        Point p = getSelectedRange();
-        if (p.x == -1 || p.y == -1)
-            return TextSelection.emptySelection();
-
-        return new ExtendedTextSelection(getDocument(), p.x, p.y);
-    }
-
-    /**
-     * Sends out a selection changed event to all registered listeners.
-     *
-     * @param offset the offset of the newly selected range
-     * @param length the length of the newly selected range
-     */
-    protected void selectionChanged(int offset, int length) {
-        ISelection selection = new ExtendedTextSelection(getDocument(), offset,
-                length);
-        SelectionChangedEvent event = new SelectionChangedEvent(this, selection);
-        fireSelectionChanged(event);
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextEditor.java
deleted file mode 100644
index 160e6f1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextEditor.java
+++ /dev/null
@@ -1,57 +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.ui.tests.internal;
-
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.editors.text.TextEditor;
-
-public class ExtendedTextEditor extends TextEditor {
-
-    /**
-     * Constructor for TextSelectionActionFilterEditor.
-     */
-    public ExtendedTextEditor() {
-        super();
-    }
-
-    /**
-     * Creates the source viewer to be used by this editor.
-     * Subclasses may re-implement this method.
-     *
-     * @param parent the parent control
-     * @param ruler the vertical ruler
-     * @param styles style bits
-     * @return the source viewer
-     */
-    protected ISourceViewer createSourceViewer(Composite parent,
-            IVerticalRuler ruler, int styles) {
-        return new ExtendedSourceViewer(parent, ruler, styles);
-    }
-
-    public boolean isDirty() {
-        return false;
-    }
-
-    /**
-     * Set the text in the editor.
-     */
-    public void setText(String text) {
-        ExtendedSourceViewer viewer = (ExtendedSourceViewer) getSourceViewer();
-        StyledText widget = viewer.getTextWidget();
-        widget.setText(text);
-        viewer.setSelectedRange(0, text.length());
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelection.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelection.java
deleted file mode 100644
index 4b365bf..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelection.java
+++ /dev/null
@@ -1,51 +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.ui.tests.internal;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.ui.IActionFilter;
-
-public class ExtendedTextSelection extends TextSelection implements IAdaptable {
-    static private ExtendedTextSelectionActionFilter filter = new ExtendedTextSelectionActionFilter();
-
-    /**
-     * Constructor for ExtendedTextSelection.
-     * @param offset
-     * @param length
-     */
-    public ExtendedTextSelection(int offset, int length) {
-        super(offset, length);
-    }
-
-    /**
-     * Constructor for ExtendedTextSelection.
-     * @param document
-     * @param offset
-     * @param length
-     */
-    public ExtendedTextSelection(IDocument document, int offset, int length) {
-        super(document, offset, length);
-    }
-
-    /*
-     * @see IAdaptable#getAdapter(Class)
-     */
-    public Object getAdapter(Class adapter) {
-        if (adapter == IActionFilter.class) {
-            return filter;
-        }
-        return null;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelectionActionFilter.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelectionActionFilter.java
deleted file mode 100644
index 8786dc8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ExtendedTextSelectionActionFilter.java
+++ /dev/null
@@ -1,55 +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.ui.tests.internal;
-
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.ui.IActionFilter;
-
-public class ExtendedTextSelectionActionFilter implements IActionFilter {
-
-    /**
-     * An attribute indicating the selection length (value <code>"isEmpty"</code>).  
-     * The attribute value in xml must be one of <code>"true" or "false"</code>.
-     */
-    public static final String IS_EMPTY = "isEmpty"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the selection text (value <code>"text"</code>).  
-     * The attribute value in xml is unconstrained.
-     */
-    public static final String TEXT = "text"; //$NON-NLS-1$
-
-    /**
-     * An attribute indicating the selection text (value <code>"text"</code>).  
-     * The attribute value in xml is unconstrained.
-     */
-    public static final String CASE_INSENSITIVE_TEXT = "caseInsensitiveText"; //$NON-NLS-1$
-
-    /*
-     * @see IActionFilter#testAttribute(Object, String, String)
-     */
-    public boolean testAttribute(Object target, String name, String value) {
-        ITextSelection sel = (ITextSelection) target;
-        if (name.equals(IS_EMPTY)) {
-            return (sel.getLength() == 0);
-        } else if (name.equals(TEXT)) {
-            String text = sel.getText();
-            return (text.indexOf(value) >= 0);
-        } else if (name.equals(CASE_INSENSITIVE_TEXT)) {
-            String text = sel.getText().toLowerCase();
-            value = value.toLowerCase();
-            return (text.indexOf(value) >= 0);
-        }
-        return false;
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ForcedException.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ForcedException.java
deleted file mode 100644
index f54ce5e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ForcedException.java
+++ /dev/null
@@ -1,43 +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.tests.internal;
-
-import java.io.PrintStream;
-import java.io.PrintWriter;
-
-/**
- * An intentionally thrown exception for use in testing error handling code.
- *
- * @since 3.1
- */
-public class ForcedException extends RuntimeException {
-
-	 private static final long serialVersionUID= 1L;
-
-	 /**
-	  * Creates a <code>ForcedException</code> with the given message.
-	  *  
-	  * @param message the message
-	  */
-	 public ForcedException(String message) {
-		 super(message);
-	 }
-	 
-	 public void printStackTrace(PrintStream s) {
-	 		 s.println("!FORCED BY TEST: this entry is intentional: " + getMessage());
-	 }
-	 		 		 
-	 public void printStackTrace(PrintWriter s) {
-	 		 s.println("!FORCED BY TEST: this entry is intentional:" + getMessage());
-	 }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/InternalTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/InternalTestSuite.java
deleted file mode 100644
index 943dfc5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/InternalTestSuite.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.markers.Bug75909Test;
-import org.eclipse.ui.tests.markers.DeclarativeFilterActivityTest;
-import org.eclipse.ui.tests.markers.DeclarativeFilterDeclarationTest;
-import org.eclipse.ui.tests.markers.MarkerSortUtilTest;
-import org.eclipse.ui.tests.markers.MarkerSupportRegistryTests;
-import org.eclipse.ui.tests.markers.MarkerTesterTest;
-import org.eclipse.ui.tests.markers.MarkerViewTests;
-import org.eclipse.ui.tests.markers.ResourceMappingMarkersTest;
-
-/**
- * Test all areas of the UI Implementation.
- */
-public class InternalTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new InternalTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public InternalTestSuite() {
-        addTest(new TestSuite(AnimationEngineTest.class));
-        addTest(new TestSuite(EditorActionBarsTest.class));
-        addTest(new TestSuite(ActionSetExpressionTest.class));
-        addTest(new TestSuite(PopupMenuExpressionTest.class));
-        addTest(new TestSuite(Bug41931Test.class));
-        addTest(Bug75909Test.suite());
-        addTest(new TestSuite(Bug78470Test.class));
-        addTest(new TestSuite(DeclarativeFilterActivityTest.class));
-        addTest(new TestSuite(DeclarativeFilterDeclarationTest.class));
-        addTest(new TestSuite(ResourceMappingMarkersTest.class));
-        addTest(new TestSuite(MarkerSupportRegistryTests.class));
-        addTest(new TestSuite(MarkerSortUtilTest.class));       
-        addTest(new TestSuite(MarkerViewTests.class));
-        addTest(Bug99858Test.suite());
-        addTest(new TestSuite(WorkbenchWindowSubordinateSourcesTests.class));
-        addTest(new TestSuite(ReopenMenuTest.class));
-        addTest(new TestSuite(UtilTest.class));
-		addTest(new TestSuite(MarkerTesterTest.class));
-		addTest(new TestSuite(TextHandlerTest.class));
-        addTest(new TestSuite(PerspectiveSwitcherTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PerspectiveSwitcherTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PerspectiveSwitcherTest.java
deleted file mode 100644
index b412f38..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PerspectiveSwitcherTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Remy Chi Jian Suen and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Remy Chi Jian Suen <remy.suen@gmail.com> - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.tests.internal;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class PerspectiveSwitcherTest extends UITestCase {
-
-	private IPreferenceStore apiPreferenceStore;
-
-	private boolean originalShowOpenValue;
-	private String originalPerspectiveBarPosition;
-
-	public PerspectiveSwitcherTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		apiPreferenceStore = PrefUtil.getAPIPreferenceStore();
-
-		// retrieve the state of the workbench that it originally was
-		originalShowOpenValue = apiPreferenceStore
-				.getBoolean(IWorkbenchPreferenceConstants.SHOW_OPEN_ON_PERSPECTIVE_BAR);
-		originalPerspectiveBarPosition = apiPreferenceStore
-				.getString(IWorkbenchPreferenceConstants.DOCK_PERSPECTIVE_BAR);
-	}
-
-	protected void doTearDown() throws Exception {
-		// reset values so we don't screw any assumptions up for other tests
-		// down the line
-		apiPreferenceStore.setValue(
-				IWorkbenchPreferenceConstants.SHOW_OPEN_ON_PERSPECTIVE_BAR,
-				originalShowOpenValue);
-		apiPreferenceStore.setValue(
-				IWorkbenchPreferenceConstants.DOCK_PERSPECTIVE_BAR,
-				originalPerspectiveBarPosition);
-
-		super.doTearDown();
-	}
-
-	/**
-	 * This test ensures that our workbench window's perspective bar can be
-	 * docked at the other side of the window even if the 'Open Perspective'
-	 * contribution item is not there.
-	 */
-	public void testCreateBarManagerBug274486() {
-		// we want to move the perspective bar to the other side so that it will
-		// be recreated, TOP_RIGHT and TOP_LEFT should switch to LEFT, LEFT
-		// should switch to TOP_RIGHT or TOP_LEFT
-		String targetDockPosition = null;
-		if (IWorkbenchPreferenceConstants.TOP_RIGHT
-				.equals(originalPerspectiveBarPosition)
-				|| IWorkbenchPreferenceConstants.TOP_LEFT
-						.equals(originalPerspectiveBarPosition)) {
-			targetDockPosition = IWorkbenchPreferenceConstants.LEFT;
-		} else if (IWorkbenchPreferenceConstants.LEFT
-				.equals(originalPerspectiveBarPosition)) {
-			targetDockPosition = IWorkbenchPreferenceConstants.TOP_RIGHT;
-		} else {
-			throw new IllegalStateException(
-					"The current perspective bar position is unknown: " //$NON-NLS-1$
-							+ originalPerspectiveBarPosition);
-		}
-
-		WorkbenchWindow window = (WorkbenchWindow) fWorkbench
-				.getActiveWorkbenchWindow();
-		assertNotNull("We should have a perspective bar in the beginning", //$NON-NLS-1$
-				window.getPerspectiveBar());
-
-		// turn off the 'Open Perspective' item
-		apiPreferenceStore.setValue(
-				IWorkbenchPreferenceConstants.SHOW_OPEN_ON_PERSPECTIVE_BAR,
-				false);
-
-		// now we dock the perspective bar on the other end
-		apiPreferenceStore.setValue(
-				IWorkbenchPreferenceConstants.DOCK_PERSPECTIVE_BAR,
-				targetDockPosition);
-
-		// check that we have a perspective bar, the setValue(String, String)
-		// method does not throw an exception because the perspective bar
-		// creation code is wrapped around a SafeRunner so the exception does
-		// not get propagated, hence, we need to check here
-		assertNotNull(
-				"The perspective bar should have been created successfully", //$NON-NLS-1$
-				window.getPerspectiveBar());
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PopupMenuExpressionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PopupMenuExpressionTest.java
deleted file mode 100644
index 78c5353..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/PopupMenuExpressionTest.java
+++ /dev/null
@@ -1,62 +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.ui.tests.internal;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.tests.api.ListView;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-
-/**
- * This class contains tests for popup menu visibility
- */
-public class PopupMenuExpressionTest extends ActionExpressionTest {
-
-    public PopupMenuExpressionTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Returns the menu manager containing the actions.
-     */
-    protected MenuManager getActionMenuManager(ListView view) throws Throwable {
-        return view.getMenuManager();
-    }
-
-    /**
-     * Tests the visibility of an action.
-     */
-    protected void testAction(MenuManager mgr, String action, boolean expected)
-            throws Throwable {
-        if (expected)
-            assertNotNull(action, ActionUtil.getActionWithLabel(mgr, action));
-        else
-            assertNull(action, ActionUtil.getActionWithLabel(mgr, action));
-    }
-
-    public void testExpressionEnabledAction() throws Throwable {
-        // Setup.
-        ListView view = showListView();
-        MenuManager mgr = getActionMenuManager(view);
-
-        // Test null selection.
-        selectAndUpdateMenu(view, null, mgr);
-        testAction(mgr, "expressionEnablementAction_v2", false);
-
-        // Test red selection.
-        selectAndUpdateMenu(view, red, mgr);
-        testAction(mgr, "expressionEnablementAction_v2", true);
-
-        // Test blue selection.
-        selectAndUpdateMenu(view, blue, mgr);
-        testAction(mgr, "expressionEnablementAction_v2", false);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ReopenMenuTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ReopenMenuTest.java
deleted file mode 100644
index faf0953..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ReopenMenuTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import org.eclipse.osgi.util.TextProcessor;
-import org.eclipse.ui.internal.ReopenEditorMenu;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.4
- * 
- */
-public class ReopenMenuTest extends TestCase {
-	private static class TextInfo {
-		int index;
-		String filename;
-		String path;
-		String ltrExpected;
-		String rtlExpected;
-
-		public TextInfo(int index, String filename, String path,
-				String ltrExpected, String rtlExpected) {
-			this.index = index;
-			this.filename = filename;
-			this.path = path;
-			this.ltrExpected = ltrExpected;
-			this.rtlExpected = rtlExpected;
-		}
-	}
-
-	private TextInfo[] data = {
-			new TextInfo(
-					1,
-					"ReopenMenuTest.java",
-					"org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/ReopenMenuTest.java",
-					"&2 ReopenMenuTest.java  [org.eclipse.ui...]",
-					"ReopenMenuTest.java  [org.eclipse.ui...] &2"),
-			new TextInfo(2, "A.java", "ex/src/ex/A.java",
-					"&3 A.java  [ex/src/ex]", "A.java  [ex/src/ex] &3"),
-			new TextInfo(
-					3,
-					"AReallyLongNameLazyFoxJumpsSomeStupidRiver.java",
-					"org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/AReallyLongNameLazyFoxJumpsSomeStupidRiver.java",
-					"&4 AReallyLongNameLazyFoxJumpsSomeStupid...",
-					"AReallyLongNameLazyFoxJumpsSomeStupid... &4"), };
-
-	/**
-	 * @param name
-	 */
-	public ReopenMenuTest(String name) {
-		super(name);
-	}
-
-	public void testLtr() {
-		for (int i = 0; i < data.length; i++) {
-			TextInfo info = data[i];
-			String expected = TextProcessor.process(info.ltrExpected,
-					TextProcessor.getDefaultDelimiters() + "[]");
-			String val = ReopenEditorMenu.calcText(info.index, info.filename,
-					info.path, false);
-			assertEquals("testing item " + i, expected, val);
-		}
-	}
-
-	public void testRtl() {
-		for (int i = 0; i < data.length; i++) {
-			TextInfo info = data[i];
-			String expected = TextProcessor.process(info.rtlExpected,
-					TextProcessor.getDefaultDelimiters() + "[]");
-			String val = ReopenEditorMenu.calcText(info.index, info.filename,
-					info.path, true);
-			assertEquals("testing item " + i, expected, val);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TestMemento.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TestMemento.java
deleted file mode 100644
index 56bc823..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TestMemento.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.ui.IMemento;
-
-public class TestMemento implements IMemento {
-	
-	String typeName;
-	String id;
-	HashSet children = new HashSet();
-	Hashtable values = new Hashtable();
-	String textData;
-	
-	public TestMemento(String type, String id){
-		typeName = type;
-		this.id = id;
-	}
-
-	public IMemento createChild(String type) {
-		return createChild(type, null);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#createChild(java.lang.String, java.lang.String)
-	 */
-	public IMemento createChild(String type, String id) {
-		IMemento child  = new TestMemento(typeName,id);
-		children.add(child);
-		return child;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getChild(java.lang.String)
-	 */
-	public IMemento getChild(String type) {
-		Iterator iterator = children.iterator();
-		while(iterator.hasNext()){
-			TestMemento next = (TestMemento) iterator.next();
-			if(next.typeName.equals(type))
-				return next;
-		}
-		return null;
-	}
-
-	public IMemento[] getChildren(String type) {
-		Iterator iterator = children.iterator();
-		Collection matches = new HashSet();
-		while(iterator.hasNext()){
-			TestMemento next = (TestMemento) iterator.next();
-			if(next.typeName.equals(type)){
-				matches.add(next);
-			}
-		}
-		
-		IMemento[] returnValue = new IMemento[matches.size()];
-		matches.toArray(returnValue);
-		return returnValue;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getFloat(java.lang.String)
-	 */
-	public Float getFloat(String key) {
-		if(values.containsKey(key))
-			return (Float) values.get(key);
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getID()
-	 */
-	public String getID() {
-		return id;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getInteger(java.lang.String)
-	 */
-	public Integer getInteger(String key) {
-		if(values.containsKey(key))
-			return (Integer) values.get(key);
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getString(java.lang.String)
-	 */
-	public String getString(String key) {
-		if(values.containsKey(key))
-			return (String) values.get(key);
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getTextData()
-	 */
-	public String getTextData() {
-		return textData;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#putFloat(java.lang.String, float)
-	 */
-	public void putFloat(String key, float value) {
-		values.put(key,new Float(value));
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#putInteger(java.lang.String, int)
-	 */
-	public void putInteger(String key, int value) {
-		values.put(key,new Integer(value));
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#putMemento(org.eclipse.ui.IMemento)
-	 */
-	public void putMemento(IMemento memento) {
-		TestMemento newMemento = (TestMemento) memento;
-		typeName = newMemento.typeName;
-		id =  newMemento.id;
-		children =  newMemento.children;
-		values =  newMemento.values;
-		textData =  newMemento.textData;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#putString(java.lang.String, java.lang.String)
-	 */
-	public void putString(String key, String value) {
-		values.put(key,value);
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#putTextData(java.lang.String)
-	 */
-	public void putTextData(String data) {
-		textData = data;
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getAttributeKeys()
-	 */
-	public String[] getAttributeKeys() {
-		Set keySet = values.keySet();
-		return (String[]) keySet.toArray(new String[keySet.size()]);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getBoolean(java.lang.String)
-	 */
-	public Boolean getBoolean(String key) {
-		if(values.containsKey(key))
-			return (Boolean) values.get(key);
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#getType()
-	 */
-	public String getType() {
-		return typeName;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IMemento#putBoolean(java.lang.String, boolean)
-	 */
-	public void putBoolean(String key, boolean value) {
-		values.put(key, value?Boolean.TRUE:Boolean.FALSE);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextControlView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextControlView.java
deleted file mode 100644
index edd9363..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextControlView.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import org.eclipse.jface.action.Action;
-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.Text;
-import org.eclipse.ui.actions.TextActionHandler;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * @since 3.5
- * 
- */
-public class TextControlView extends ViewPart {
-	public static final String ID = "org.eclipse.ui.tests.textHandlerView";
-	public Action cutAction;
-	public Action copyAction;
-	public Action selectAllAction;
-	public Action pasteAction;
-	public Action cutDummyAction;
-	public Action copyDummyAction;
-	public Action selectDummyAllAction;
-	public Action pasteDummyAction;
-	public Text editableText;
-	public Text nonEditableText;
-	private TextActionHandler delegator;
-
-	public TextControlView() {
-		cutDummyAction = new Action("Cut") {
-		};
-		copyDummyAction = new Action("Copy") {
-		};
-		selectDummyAllAction = new Action("Select All") {
-		};
-		pasteDummyAction = new Action("Paste") {
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets
-	 * .Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		Composite c = new Composite(parent, SWT.NONE);
-		c.setLayout(new GridLayout(3, true));
-		editableText = new Text(c, SWT.MULTI);
-		editableText.setLayoutData(new GridData());
-		nonEditableText = new Text(c, SWT.MULTI | SWT.READ_ONLY);
-		nonEditableText.setLayoutData(new GridData());
-		delegator = new TextActionHandler(getViewSite().getActionBars());
-		delegator.addText(editableText);
-		delegator.addText(nonEditableText);
-		delegator.setCutAction(cutDummyAction);
-		delegator.setCopyAction(copyDummyAction);
-		delegator.setSelectAllAction(selectDummyAllAction);
-		delegator.setPasteAction(pasteDummyAction);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		editableText.setFocus();
-	}
-
-	public Action getPasteAction() throws Exception {
-		return getAction("textPasteAction");
-	}
-
-	public Action getCopyAction() throws Exception {
-		return getAction("textCopyAction");
-	}
-
-	public Action getCutAction() throws Exception {
-		return getAction("textCutAction");
-	}
-
-	public Action getSelectAllAction() throws Exception {
-		return getAction("textSelectAllAction");
-	}
-
-	public void updateEnabledState() throws Exception {
-		Method method = TextActionHandler.class.getDeclaredMethod(
-				"updateActionsEnableState", null);
-		method.setAccessible(true);
-		method.invoke(delegator, null);
-	}
-
-	private Action getAction(String fieldName) throws Exception {
-		Field field = TextActionHandler.class.getDeclaredField(fieldName);
-		field.setAccessible(true);
-		return (Action) field.get(delegator);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextHandlerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextHandlerTest.java
deleted file mode 100644
index 6ecc9b2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextHandlerTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.dnd.TextTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.URLTransfer;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- * 
- */
-public class TextHandlerTest extends UITestCase {
-
-	public TextHandlerTest(String testName) {
-		super(testName);
-	}
-
-	public void testEditableText() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		TextControlView view = (TextControlView) window.getActivePage()
-				.showView(TextControlView.ID);
-
-		Clipboard clipboard = new Clipboard(window.getWorkbench().getDisplay());
-		try {
-			clipboard.setContents(new Object[] { "http://www.google.ca" },
-					new Transfer[] { URLTransfer.getInstance() });
-			processEvents();
-			view.updateEnabledState();
-
-			assertFalse(view.getCopyAction().isEnabled());
-			assertFalse(view.getCutAction().isEnabled());
-			assertFalse(view.getPasteAction().isEnabled());
-			assertFalse(view.getSelectAllAction().isEnabled());
-			
-			view.editableText.setText("Hello");
-			processEvents();
-			view.updateEnabledState();
-			assertFalse(view.getCopyAction().isEnabled());
-			assertFalse(view.getCutAction().isEnabled());
-			assertFalse(view.getPasteAction().isEnabled());
-			assertTrue(view.getSelectAllAction().isEnabled());
-			
-			view.editableText.setSelection(0, 3);
-			processEvents();
-			view.updateEnabledState();
-			assertTrue(view.getCopyAction().isEnabled());
-			assertTrue(view.getCutAction().isEnabled());
-			assertFalse(view.getPasteAction().isEnabled());
-			assertTrue(view.getSelectAllAction().isEnabled());
-			
-			clipboard.setContents(new Object[] { "http://www.google.ca" },
-					new Transfer[] { TextTransfer.getInstance() });
-			processEvents();
-			view.updateEnabledState();
-			
-			assertTrue(view.getCopyAction().isEnabled());
-			assertTrue(view.getCutAction().isEnabled());
-			assertTrue(view.getPasteAction().isEnabled());
-			assertTrue(view.getSelectAllAction().isEnabled());
-		} catch (SWTError e) {
-			System.err.println(e.getMessage());
-		} finally {
-			clipboard.dispose();
-		}
-	}
-	
-	public void testNonEditableText() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		TextControlView view = (TextControlView) window.getActivePage()
-				.showView(TextControlView.ID);
-
-		Clipboard clipboard = new Clipboard(window.getWorkbench().getDisplay());
-		try {
-			clipboard.setContents(new Object[] { "http://www.google.ca" },
-					new Transfer[] { URLTransfer.getInstance() });
-			view.nonEditableText.setFocus();
-			processEvents();
-			view.updateEnabledState();
-
-			assertFalse(view.getCopyAction().isEnabled());
-			assertFalse(view.getCutAction().isEnabled());
-			assertFalse(view.getPasteAction().isEnabled());
-			assertFalse(view.getSelectAllAction().isEnabled());
-			
-			view.nonEditableText.setText("Hello");
-			processEvents();
-			view.updateEnabledState();
-			assertFalse(view.getCopyAction().isEnabled());
-			assertFalse(view.getCutAction().isEnabled());
-			assertFalse(view.getPasteAction().isEnabled());
-			assertTrue(view.getSelectAllAction().isEnabled());
-			
-			view.nonEditableText.setSelection(0, 3);
-			processEvents();
-			view.updateEnabledState();
-			assertTrue(view.getCopyAction().isEnabled());
-			assertFalse(view.getCutAction().isEnabled());
-			assertFalse(view.getPasteAction().isEnabled());
-			assertTrue(view.getSelectAllAction().isEnabled());
-
-			clipboard.setContents(new Object[] { "http://www.google.ca" },
-					new Transfer[] { TextTransfer.getInstance() });
-			processEvents();
-			view.updateEnabledState();
-			
-			assertTrue(view.getCopyAction().isEnabled());
-			assertFalse(view.getCutAction().isEnabled());
-			assertFalse(view.getPasteAction().isEnabled());
-			assertTrue(view.getSelectAllAction().isEnabled());
-		} catch (SWTError e) {
-			System.err.println(e.getMessage());
-		} finally {
-			clipboard.dispose();
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextSelectionActionExpressionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextSelectionActionExpressionTest.java
deleted file mode 100644
index e28d98b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/TextSelectionActionExpressionTest.java
+++ /dev/null
@@ -1,177 +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.ui.tests.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.SubContributionItem;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * This class contains tests for text selection action enablement
- */
-public class TextSelectionActionExpressionTest extends UITestCase {
-    protected IWorkbenchWindow fWindow;
-
-    protected IWorkbenchPage fPage;
-
-    public TextSelectionActionExpressionTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWindow = openTestWindow();
-        fPage = fWindow.getActivePage();
-    }
-
-    public void testAnyTextAction() throws Throwable {
-        // Setup.
-        ExtendedTextEditor editor = showTextEditor("anyText.exttxt");
-        MenuManager mgr = getActionMenuManager(editor);
-
-        // Test empty selection.
-        selectAndUpdateMenu(editor, "", mgr);
-        testAction(mgr, "anyText", true);
-
-        // Test full selection.
-        selectAndUpdateMenu(editor, "bob", mgr);
-        testAction(mgr, "anyText", true);
-
-        // Activate another view.
-        fPage.showView(IPageLayout.ID_BOOKMARKS);
-        testAction(mgr, "anyText", false);
-
-        // Activate editor.
-        // Test old selection.
-        fPage.activate(editor);
-        testAction(mgr, "anyText", true);
-
-        // Test empty selection.
-        selectAndUpdateMenu(editor, "", mgr);
-        testAction(mgr, "anyText", true);
-    }
-
-    public void testEmptyTextAction() throws Throwable {
-        // Setup.
-        ExtendedTextEditor editor = showTextEditor("emptyText.exttxt");
-        MenuManager mgr = getActionMenuManager(editor);
-
-        // Test empty selection.
-        selectAndUpdateMenu(editor, "", mgr);
-        testAction(mgr, "emptyText", true);
-
-        // Test full selection.
-        selectAndUpdateMenu(editor, "bob", mgr);
-        testAction(mgr, "emptyText", false);
-
-        // Activate another view.
-        fPage.showView(IPageLayout.ID_BOOKMARKS);
-        testAction(mgr, "emptyText", false);
-
-        // Activate editor.
-        // Test old selection.
-        fPage.activate(editor);
-        testAction(mgr, "emptyText", false);
-
-        // Test empty selection.
-        selectAndUpdateMenu(editor, "", mgr);
-        testAction(mgr, "emptyText", true);
-    }
-
-    public void testHelloTextAction() throws Throwable {
-        // Setup.
-        ExtendedTextEditor editor = showTextEditor("helloText.exttxt");
-        MenuManager mgr = getActionMenuManager(editor);
-
-        // Test empty selection.
-        selectAndUpdateMenu(editor, "", mgr);
-        testAction(mgr, "helloText", false);
-
-        // Test wrong selection.
-        selectAndUpdateMenu(editor, "bob", mgr);
-        testAction(mgr, "helloText", false);
-
-        // Test right selection.
-        selectAndUpdateMenu(editor, "Hello", mgr);
-        testAction(mgr, "helloText", true);
-
-        // Activate another view.
-        fPage.showView(IPageLayout.ID_BOOKMARKS);
-        testAction(mgr, "helloText", false);
-
-        // Activate editor.
-        // Test old selection.
-        fPage.activate(editor);
-        testAction(mgr, "helloText", true);
-
-        // Test wrong selection.
-        selectAndUpdateMenu(editor, "bob", mgr);
-        testAction(mgr, "helloText", false);
-    }
-
-    /**
-     * Creates the list view.
-     */
-    private ExtendedTextEditor showTextEditor(String fileName) throws Throwable {
-        IProject proj = FileUtil
-                .createProject("TextSelectionActionExpressionTest");
-        IFile file = FileUtil.createFile(fileName, proj);
-        return (ExtendedTextEditor) IDE.openEditor(fPage, file, true);
-    }
-
-    /**
-     * Select an object and fire about to show.
-     */
-    private void selectAndUpdateMenu(ExtendedTextEditor editor, String str,
-            MenuManager mgr) throws Throwable {
-        editor.setText(str);
-        fPage.saveEditor(editor, false);
-        ActionUtil.fireAboutToShow(mgr);
-    }
-
-    /**
-     * Returns the menu manager containing the actions.
-     */
-    private MenuManager getActionMenuManager(ExtendedTextEditor editor)
-            throws Throwable {
-        fPage
-                .showActionSet("org.eclipse.ui.tests.internal.TextSelectionActions");
-        WorkbenchWindow win = (WorkbenchWindow) fWindow;
-        IContributionItem item = win.getMenuBarManager().find(
-                "org.eclipse.ui.tests.internal.TextSelectionMenu");
-        while (item instanceof SubContributionItem) {
-            item = ((SubContributionItem) item).getInnerItem();
-            if (item instanceof MenuManager)
-                return (MenuManager) item;
-        }
-        fail("Unable to find menu manager");
-        return null;
-    }
-
-    /**
-     * Tests the enablement / visibility of an action.
-     */
-    private void testAction(MenuManager mgr, String action, boolean expected)
-            throws Throwable {
-        assertEquals(action, expected, ActionUtil.getActionWithLabel(mgr,
-                action).isEnabled());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/UtilTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/UtilTest.java
deleted file mode 100644
index 08fdcc9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/UtilTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import org.eclipse.ui.internal.util.Util;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.5
- */
-public class UtilTest extends TestCase {
-	public UtilTest(String name) {
-		super(name);
-	}
-	
-	public void testBasicSplit() {
-		final String field = "field1";
-		String[] result = Util.split(field, ',');
-		assertEquals(1, result.length);
-		assertEquals(field, result[0]);
-	}
-	
-	public void testBasic2Split() {
-		final String field = "field1,field2";
-		String[] result = Util.split(field, ',');
-		assertEquals(2, result.length);
-		assertEquals("field1", result[0]);
-		assertEquals("field2", result[1]);
-	}
-	
-	public void testBasic3Split() {
-		final String field = "field1,field3,field2";
-		String[] result = Util.split(field, ',');
-		assertEquals(3, result.length);
-		assertEquals("field1", result[0]);
-		assertEquals("field3", result[1]);
-		assertEquals("field2", result[2]);
-	}
-	
-	public void testNothingSplit() {
-		final String field = "";
-		String[] result = Util.split(field, ',');
-		assertEquals(1, result.length);
-		assertEquals(0, result[0].length());
-	}
-	
-	public void testNothingUsefulSplit() {
-		final String field = ",";
-		String[] result = Util.split(field, ',');
-		assertEquals(0, result.length);
-	}
-	
-	public void testNothingUseful2Split() {
-		final String field = ",,";
-		String[] result = Util.split(field, ',');
-		assertEquals(0, result.length);
-	}
-	
-	public void testNothingUsefulSpaceSplit() {
-		final String field = " ,";
-		String[] result = Util.split(field, ',');
-		assertEquals(1, result.length);
-		assertEquals(" ", result[0]);
-	}
-
-	public void testNothingUsefulSpaceSplit2() {
-		final String field = ", ";
-		String[] result = Util.split(field, ',');
-		assertEquals(2, result.length);
-		assertEquals(0, result[0].length());
-		assertEquals(" ", result[1]);
-	}
-	
-	public void testNothingUsefulSpaceSplit3() {
-		final String field = " , ";
-		String[] result = Util.split(field, ',');
-		assertEquals(2, result.length);
-		assertEquals(" ", result[0]);
-		assertEquals(" ", result[1]);
-	}
-	
-	public void test2Delimiters() {
-		final String field = "field1,,field3,field2";
-		String[] result = Util.split(field, ',');
-		assertEquals(4, result.length);
-		assertEquals("field1", result[0]);
-		assertEquals(0, result[1].length());
-		assertEquals("field3", result[2]);
-		assertEquals("field2", result[3]);
-	}
-
-	public void test3Delimiters() {
-		final String field = "field1,,,field3,field2";
-		String[] result = Util.split(field, ',');
-		assertEquals(5, result.length);
-		assertEquals("field1", result[0]);
-		assertEquals(0, result[1].length());
-		assertEquals(0, result[2].length());
-		assertEquals("field3", result[3]);
-		assertEquals("field2", result[4]);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/WorkbenchWindowSubordinateSourcesTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/WorkbenchWindowSubordinateSourcesTests.java
deleted file mode 100644
index ef32540..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/internal/WorkbenchWindowSubordinateSourcesTests.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.internal;
-
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.internal.expressions.EqualsExpression;
-import org.eclipse.core.internal.expressions.WithExpression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.services.IEvaluationService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests various sources keyed off the workbench window.
- * 
- * @since 3.3
- * 
- */
-public class WorkbenchWindowSubordinateSourcesTests extends UITestCase {
-
-	private WorkbenchWindow window;
-
-	/**
-	 * @param testName
-	 */
-	public WorkbenchWindowSubordinateSourcesTests(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		window = (WorkbenchWindow) openTestWindow();
-		processEvents();
-	}
-
-	public void testIsCoolbarVisible() {
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		IEvaluationContext context = service.getCurrentState();
-
-		WithExpression with = new WithExpression(
-				ISources.ACTIVE_WORKBENCH_WINDOW_IS_COOLBAR_VISIBLE_NAME);
-		boolean current = window.getCoolBarVisible();
-		EqualsExpression test = new EqualsExpression(current ? Boolean.TRUE
-				: Boolean.FALSE);
-		with.add(test);
-
-		try {
-			assertEquals(EvaluationResult.TRUE, with.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-
-		window.setCoolBarVisible(current = !current);
-		try {
-			assertEquals(EvaluationResult.FALSE, with.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	public void testIsStatusLineVisible() {
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		IEvaluationContext context = service.getCurrentState();
-
-		WithExpression with = new WithExpression(
-				ISources.ACTIVE_WORKBENCH_WINDOW_NAME + ".isStatusLineVisible");
-		boolean current = window.getStatusLineVisible();
-		EqualsExpression test = new EqualsExpression(current ? Boolean.TRUE
-				: Boolean.FALSE);
-		with.add(test);
-
-		try {
-			assertEquals(EvaluationResult.TRUE, with.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-
-		window.setStatusLineVisible(current = !current);
-		try {
-			assertEquals(EvaluationResult.FALSE, with.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-	}
-	
-	public void testIsPerspectiveBarVisible() {
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		IEvaluationContext context = service.getCurrentState();
-
-		WithExpression with = new WithExpression(
-				ISources.ACTIVE_WORKBENCH_WINDOW_IS_PERSPECTIVEBAR_VISIBLE_NAME);
-		boolean current = window.getPerspectiveBarVisible();
-		EqualsExpression test = new EqualsExpression(current ? Boolean.TRUE
-				: Boolean.FALSE);
-		with.add(test);
-
-		try {
-			assertEquals(EvaluationResult.TRUE, with.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-
-		window.setPerspectiveBarVisible(current = !current);
-		try {
-			assertEquals(EvaluationResult.FALSE, with.evaluate(context));
-		} catch (CoreException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	private static class PerspectiveL implements IPropertyChangeListener {
-		Boolean val = null;
-
-		public void propertyChange(PropertyChangeEvent event) {
-			val = (Boolean) event.getNewValue();
-		}
-	}
-
-	public void testPerspectiveId() throws Exception {
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		WithExpression with = new WithExpression(
-				ISources.ACTIVE_WORKBENCH_WINDOW_ACTIVE_PERSPECTIVE_NAME);
-		IPerspectiveDescriptor currentPerspective = window.getActivePage().getPerspective();
-		String id = currentPerspective.getId();
-		EqualsExpression test = new EqualsExpression(id);
-		with.add(test);
-		PerspectiveL listener = new PerspectiveL();
-		service.addEvaluationListener(with, listener,
-				ISources.ACTIVE_WORKBENCH_WINDOW_ACTIVE_PERSPECTIVE_NAME);
-		assertEquals(Boolean.TRUE, listener.val);
-		listener.val = null;
-
-		final IPerspectiveRegistry registry = WorkbenchPlugin.getDefault()
-				.getPerspectiveRegistry();
-		final IPerspectiveDescriptor perspective1 = registry
-				.findPerspectiveWithId("org.eclipse.ui.tests.api.ViewPerspective");
-		window.getActivePage().setPerspective(perspective1);
-		assertEquals(Boolean.FALSE, listener.val);
-		listener.val = null;
-		window.getActivePage().closePerspective(perspective1, false, false);
-		assertEquals(Boolean.TRUE, listener.val);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroPartTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroPartTest.java
deleted file mode 100644
index 18342b2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroPartTest.java
+++ /dev/null
@@ -1,117 +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.tests.intro;
-
-import java.util.Arrays;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.intro.IntroDescriptor;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.tests.api.IWorkbenchPartTest;
-import org.eclipse.ui.tests.api.MockPart;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-
-/**
- * @since 3.0
- */
-public class IntroPartTest extends IWorkbenchPartTest {
-
-    private IntroDescriptor oldDesc;
-
-    /**
-     * @param testName
-     */
-    public IntroPartTest(String testName) {
-        super(testName);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.IWorkbenchPartTest#openPart(org.eclipse.ui.IWorkbenchPage)
-     */
-    protected MockPart openPart(IWorkbenchPage page) throws Throwable {
-        return (MockIntroPart) page.getWorkbenchWindow().getWorkbench()
-                .getIntroManager().showIntro(page.getWorkbenchWindow(), false);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.IWorkbenchPartTest#closePart(org.eclipse.ui.IWorkbenchPage, org.eclipse.ui.tests.api.MockWorkbenchPart)
-     */
-    protected void closePart(IWorkbenchPage page, MockPart part)
-            throws Throwable {
-        assertTrue(page.getWorkbenchWindow().getWorkbench().getIntroManager()
-                .closeIntro((IIntroPart) part));
-    }
-
-    public void testOpenAndClose() throws Throwable {
-        // Open a part.
-        MockPart part = openPart(fPage);
-        CallHistory history = part.getCallHistory();
-        assertTrue(history.verifyOrder(new String[] { "init",
-                "createPartControl", "setFocus", "standbyStateChanged" }));
-
-        // Close the part.
-        closePart(fPage, part);
-        assertTrue(history.verifyOrder(new String[] { "init",
-                "createPartControl", "setFocus", "dispose" }));
-    }
-
-    /**
-     * Tests to ensure that the image of the descriptor is the same as the part.
-     * 
-     * @throws Throwable
-     */
-    public void testImage() throws Throwable {
-        MockPart part = openPart(fPage);
-        ImageDescriptor imageDescriptor = getIntroDesc().getImageDescriptor();
-        assertNotNull(imageDescriptor);
-
-        Image descImage = imageDescriptor.createImage(false);
-        assertNotNull(descImage);
-
-        Image partImage = part.getTitleImage();
-        assertNotNull(partImage);
-        assertTrue(Arrays.equals(descImage.getImageData().data, partImage
-                .getImageData().data));
-        if (descImage != null)
-            descImage.dispose();
-        closePart(fPage, part);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        oldDesc = Workbench.getInstance().getIntroDescriptor();
-        IntroDescriptor testDesc = getIntroDesc();
-        Workbench.getInstance().setIntroDescriptor(testDesc);
-    }
-
-    /**
-     * @return
-     */
-    private IntroDescriptor getIntroDesc() {
-        return (IntroDescriptor) WorkbenchPlugin.getDefault()
-                .getIntroRegistry().getIntro("org.eclipse.ui.testintro");
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        Workbench.getInstance().setIntroDescriptor(oldDesc);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest.java
deleted file mode 100644
index 6cfe1df..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.intro;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.intro.IIntroConstants;
-import org.eclipse.ui.internal.intro.IntroDescriptor;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.intro.IIntroManager;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.tests.api.PerspectiveWithFastView;
-import org.eclipse.ui.tests.harness.util.EmptyPerspective;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.0
- */
-public class IntroTest extends UITestCase {
-
-    IWorkbenchWindow window = null;
-
-    private IntroDescriptor oldDesc;
-
-    /**
-     * @param testName
-     */
-    public IntroTest(String testName) {
-        super(testName);
-    }
-    
-    public void testCloseInFastViewPerspective() {
-    	testClose(PerspectiveWithFastView.PERSP_ID);
-	}
-
-    public void testCloseInEmptyPerspective() {
-    	testClose(EmptyPerspective.PERSP_ID);
-	}
-
-    public void testCloseInNonEmptyPerspective() {
-    	testClose("org.eclipse.ui.resourcePerspective");
-    }
-
-    private void testClose(String perspectiveId) {
-		IPerspectiveDescriptor descriptor = window.getWorkbench()
-				.getPerspectiveRegistry().findPerspectiveWithId(
-						perspectiveId);
-		window.getActivePage().setPerspective(descriptor);
-
-		IIntroManager introManager = window.getWorkbench().getIntroManager();
-		IIntroPart part = introManager.showIntro(window, false);
-		introManager.closeIntro(part);
-
-		assertTrue(((WorkbenchWindow) window).getCoolBarVisible());
-		assertTrue(((WorkbenchWindow) window).getPerspectiveBarVisible());
-	}
-    
-    public void testShow() {
-        IIntroManager introManager = window.getWorkbench().getIntroManager();
-        IIntroPart part = introManager.showIntro(window, false);
-        assertNotNull(part);
-        assertFalse(introManager.isIntroStandby(part));
-        introManager.closeIntro(part);
-        assertNull(introManager.getIntro());
-
-        part = introManager.showIntro(window, true);
-        assertNotNull(part);
-        assertTrue(introManager.isIntroStandby(part));
-        assertTrue(introManager.closeIntro(part));
-        assertNull(introManager.getIntro());
-    }
-
-    public void testStandby() {
-        IWorkbench workbench = window.getWorkbench();
-        IIntroPart part = workbench.getIntroManager().showIntro(window, false);
-        assertNotNull(part);
-        assertFalse(workbench.getIntroManager().isIntroStandby(part));
-        workbench.getIntroManager().setIntroStandby(part, true);
-        assertTrue(workbench.getIntroManager().isIntroStandby(part));
-        assertTrue(workbench.getIntroManager().closeIntro(part));
-        assertNull(workbench.getIntroManager().getIntro());
-    }
-
-    /**
-     * Open the intro, change perspective, close the intro (ensure it still 
-     * exists), change back to the first perspective, close the intro, ensure 
-     * that it no longer exists.
-     */
-    public void testPerspectiveChange() {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        boolean oldMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-		apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-        
-    	IWorkbench workbench = window.getWorkbench();
-        IIntroPart part = workbench.getIntroManager().showIntro(window, false);
-        assertNotNull(part);
-        IWorkbenchPage activePage = window.getActivePage();
-        IPerspectiveDescriptor oldDesc = activePage.getPerspective();
-        activePage.setPerspective(WorkbenchPlugin.getDefault()
-                .getPerspectiveRegistry().findPerspectiveWithId(
-                        "org.eclipse.ui.tests.api.SessionPerspective"));
-        assertFalse(workbench.getIntroManager().closeIntro(part));
-        assertNotNull(workbench.getIntroManager().getIntro());
-
-        activePage.setPerspective(oldDesc);
-        assertTrue(workbench.getIntroManager().closeIntro(part));
-        assertNull(workbench.getIntroManager().getIntro());
-
-		// Restore the min/max state to it's correct value
-		apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, oldMinMaxState);
-    }
-    
-    /**
-     * Open the intro, change perspective, close the intro 
-     * and ensure that the intro has not been closed in the 
-     * other perspective.
-     * See bug 174213
-     * See IntroTest2.java
-     */
-    public void testPerspectiveChangeWith32StickyBehavior() {
-    	IWorkbench workbench = window.getWorkbench();
-        IIntroPart part = workbench.getIntroManager().showIntro(window, false);
-        assertNotNull(part);
-        IWorkbenchPage activePage = window.getActivePage();
-        IPerspectiveDescriptor oldDesc = activePage.getPerspective();
-        activePage.setPerspective(WorkbenchPlugin.getDefault()
-                .getPerspectiveRegistry().findPerspectiveWithId(
-                        "org.eclipse.ui.tests.api.SessionPerspective"));
-       
-        IViewPart viewPart = window.getActivePage().findView(
-				IIntroConstants.INTRO_VIEW_ID);
-        assertNotNull(viewPart);
-        
-        window.getActivePage().hideView(viewPart);
-        viewPart = window.getActivePage().findView(
-				IIntroConstants.INTRO_VIEW_ID);
-        assertNull(viewPart);
-        
-        activePage.setPerspective(oldDesc);
-        viewPart = window.getActivePage().findView(
-				IIntroConstants.INTRO_VIEW_ID);
-        assertNotNull(viewPart);
-    }
-    
-    public void testPerspectiveReset() {
-        IWorkbench workbench = window.getWorkbench();
-        IIntroPart part = workbench.getIntroManager().showIntro(window, false);
-        assertNotNull(part);
-        window.getActivePage().resetPerspective();
-        part = workbench.getIntroManager().getIntro();
-        assertNotNull(part);
-        assertFalse(workbench.getIntroManager().isIntroStandby(part));
-
-        workbench.getIntroManager().setIntroStandby(part, true);
-        window.getActivePage().resetPerspective();
-        part = workbench.getIntroManager().getIntro();
-        assertNotNull(part);
-        assertTrue(workbench.getIntroManager().isIntroStandby(part));
-        assertTrue(workbench.getIntroManager().closeIntro(part));
-        assertNull(workbench.getIntroManager().getIntro());
-    }
-    
-    /**
-	 * Test to ensure that the part is properly nulled out when the intro is
-	 * closed via the view close mechanism.
-	 */
-	public void testViewClosure() {
-		IWorkbench workbench = window.getWorkbench();
-		IIntroPart part = workbench.getIntroManager().showIntro(window, false);
-		assertNotNull(part);
-		IViewPart viewPart = window.getActivePage().findView(
-				IIntroConstants.INTRO_VIEW_ID);
-		assertNotNull(viewPart);
-		window.getActivePage().hideView(viewPart);
-		assertNull(workbench.getIntroManager().getIntro());
-	}
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        
-        // these tests rely on the 3.2 behavior for sticky views
-    	IPreferenceStore preferenceStore = PrefUtil.getAPIPreferenceStore();
-    	preferenceStore.putValue(IWorkbenchPreferenceConstants.ENABLE_32_STICKY_CLOSE_BEHAVIOR, "true");
-    	
-        oldDesc = Workbench.getInstance().getIntroDescriptor();
-        IntroDescriptor testDesc = (IntroDescriptor) WorkbenchPlugin
-                .getDefault().getIntroRegistry().getIntro(
-                        "org.eclipse.ui.testintro");
-        Workbench.getInstance().setIntroDescriptor(testDesc);
-        window = openTestWindow();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        Workbench.getInstance().setIntroDescriptor(oldDesc);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest2.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest2.java
deleted file mode 100644
index 5158f64..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTest2.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.intro;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.intro.IIntroConstants;
-import org.eclipse.ui.internal.intro.IntroDescriptor;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.0
- */
-public class IntroTest2 extends UITestCase {
-
-    IWorkbenchWindow window = null;
-
-    private IntroDescriptor oldDesc;
-
-    /**
-     * @param testName
-     */
-    public IntroTest2(String testName) {
-        super(testName);
-    }
-    
-    /**
-     * Open the intro, change perspective, close the intro 
-     * and ensure that the intro has been closed in the 
-     * other perspective.
-     * See bug 174213
-     */
-    public void testPerspectiveChangeWith33StickyBehavior() {
-    	IWorkbench workbench = window.getWorkbench();
-        IIntroPart part = workbench.getIntroManager().showIntro(window, false);
-        assertNotNull(part);
-        IWorkbenchPage activePage = window.getActivePage();
-        IPerspectiveDescriptor oldDesc = activePage.getPerspective();
-        activePage.setPerspective(WorkbenchPlugin.getDefault()
-                .getPerspectiveRegistry().findPerspectiveWithId(
-                        "org.eclipse.ui.tests.api.SessionPerspective"));
-       
-        IViewPart viewPart = window.getActivePage().findView(
-				IIntroConstants.INTRO_VIEW_ID);
-        assertNotNull(viewPart);
-        
-        window.getActivePage().hideView(viewPart);
-        viewPart = window.getActivePage().findView(
-				IIntroConstants.INTRO_VIEW_ID);
-        assertNull(viewPart);
-        
-        activePage.setPerspective(oldDesc);
-        viewPart = window.getActivePage().findView(
-				IIntroConstants.INTRO_VIEW_ID);
-        assertNull(viewPart);
-        
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        
-        // these tests rely on the 3.3 behavior for sticky views
-    	IPreferenceStore preferenceStore = PrefUtil.getAPIPreferenceStore();
-    	preferenceStore.putValue(IWorkbenchPreferenceConstants.ENABLE_32_STICKY_CLOSE_BEHAVIOR, "false");
-    	
-        oldDesc = Workbench.getInstance().getIntroDescriptor();
-        IntroDescriptor testDesc = (IntroDescriptor) WorkbenchPlugin
-                .getDefault().getIntroRegistry().getIntro(
-                        "org.eclipse.ui.testintro");
-        Workbench.getInstance().setIntroDescriptor(testDesc);
-        window = openTestWindow();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        Workbench.getInstance().setIntroDescriptor(oldDesc);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTestSuite.java
deleted file mode 100644
index fb402fb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/IntroTestSuite.java
+++ /dev/null
@@ -1,33 +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.tests.intro;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.0
- */
-public class IntroTestSuite extends TestSuite {
-
-    public static Test suite() {
-        return new IntroTestSuite();
-    }
-
-    /**
-     * 
-     */
-    public IntroTestSuite() {
-        addTest(new TestSuite(IntroPartTest.class));
-        addTest(new TestSuite(NoIntroPartTest.class));
-        addTest(new TestSuite(IntroTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/MockIntroPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/MockIntroPart.java
deleted file mode 100644
index 537ee24..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/MockIntroPart.java
+++ /dev/null
@@ -1,69 +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.tests.intro;
-
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.IIntroSite;
-import org.eclipse.ui.tests.api.MockPart;
-
-/**
- * @since 3.0
- */
-public class MockIntroPart extends MockPart implements IIntroPart {
-
-    private IIntroSite site;
-
-    /**
-     * 
-     */
-    public MockIntroPart() {
-        super();
-    }
-
-    public IIntroSite getIntroSite() {
-        return site;
-    }
-
-    public void init(IIntroSite site, IMemento memento)
-            throws PartInitException {
-        setSite(site);
-        callTrace.add("init");
-    }
-
-    /**
-     * @param site
-     */
-    private void setSite(IIntroSite site) {
-        this.site = site;
-    }
-
-    /**
-     * @see IViewPart#saveState(IMemento)
-     */
-    public void saveState(IMemento memento) {
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.intro.IIntroPart#standbyStateChanged(boolean)
-     */
-    public void standbyStateChanged(boolean standby) {
-        callTrace.add("standbyStateChanged");
-    }
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.intro.IIntroPart#getTitle()
-	 */
-	public String getTitle() {
-		return "Mock intro title";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/NoIntroPartTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/NoIntroPartTest.java
deleted file mode 100644
index 3cc2b2c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/intro/NoIntroPartTest.java
+++ /dev/null
@@ -1,76 +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.tests.intro;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.intro.IntroDescriptor;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.tests.api.IWorkbenchPartTest;
-import org.eclipse.ui.tests.api.MockPart;
-
-/**
- * @since 3.0
- */
-public class NoIntroPartTest extends IWorkbenchPartTest {
-
-    private IntroDescriptor oldDesc;
-
-    /**
-     * @param testName
-     */
-    public NoIntroPartTest(String testName) {
-        super(testName);
-        // TODO Auto-generated constructor stub
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.IWorkbenchPartTest#openPart(org.eclipse.ui.IWorkbenchPage)
-     */
-    protected MockPart openPart(IWorkbenchPage page) throws Throwable {
-        return (MockPart) page.getWorkbenchWindow().getWorkbench()
-                .getIntroManager().showIntro(page.getWorkbenchWindow(), false);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.api.IWorkbenchPartTest#closePart(org.eclipse.ui.IWorkbenchPage, org.eclipse.ui.tests.api.MockWorkbenchPart)
-     */
-    protected void closePart(IWorkbenchPage page, MockPart part)
-            throws Throwable {
-        assertTrue(page.getWorkbenchWindow().getWorkbench().getIntroManager()
-                .closeIntro((IIntroPart) part));
-    }
-
-    //only test open..shouldn't work.
-    public void testOpenAndClose() throws Throwable {
-        // Open a part.
-        MockPart part = openPart(fPage);
-        assertNull(part);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        oldDesc = Workbench.getInstance().getIntroDescriptor();
-        Workbench.getInstance().setIntroDescriptor(null);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        Workbench.getInstance().setIntroDescriptor(oldDesc);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingInteractionsTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingInteractionsTest.java
deleted file mode 100644
index 8f4390b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingInteractionsTest.java
+++ /dev/null
@@ -1,767 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.keys;
-
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Set;
-
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.BindingManager;
-import org.eclipse.jface.bindings.Scheme;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.util.Util;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test cases covering the various interaction between bindings. Bindings that
- * have been removed. Bindings that have been added. Inheritance of various
- * properties.
- * 
- * @since 3.1
- */
-public final class BindingInteractionsTest extends UITestCase {
-
-	/**
-	 * The binding manager to use in each test case. A new binding manager is
-	 * created for each test case, and it is disposed when the test is over.
-	 */
-	private BindingManager bindingManager = null;
-
-	/**
-	 * The context manager to use in each test case. A new context manager is
-	 * created for each test case, and it is disposed when the test is over.
-	 */
-	private ContextManager contextManager = null;
-
-	/**
-	 * Constructor for <code>BindingInteractionsTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public BindingInteractionsTest(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Creates a new context manager and a binding manager for use in the test
-	 * cases.
-	 */
-	protected void doSetUp() {
-		contextManager = new ContextManager();
-		bindingManager = new BindingManager(contextManager,
-				new CommandManager());
-	}
-
-	/**
-	 * Releases the context manager and binding manager for garbage collection.
-	 */
-	protected void doTearDown() {
-		contextManager = null;
-		bindingManager = null;
-	}
-
-	/**
-	 * <p>
-	 * Tests whether two identical bindings lead to a conflict.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testConflict() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding("conflict1", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("conflict2", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-
-		TriggerSequence[] activeBindings = bindingManager
-				.getActiveBindingsFor(binding1.getParameterizedCommand());
-		assertFalse(binding1.equals(binding2));
-		assertTrue("Neither binding should be active",
-				activeBindings.length == 0);
-		activeBindings = bindingManager.getActiveBindingsFor(binding2
-				.getParameterizedCommand());
-		assertTrue("Neither binding should be active",
-				activeBindings.length == 0);
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a plug-in developer can override a binding in a child
-	 * context.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testContextOverride() throws NotDefinedException {
-		final Context parentContext = contextManager.getContext("parent");
-		parentContext.define("parent", "parent context", null);
-
-		final Context childContext = contextManager.getContext("child");
-		childContext.define("child", "child context", "parent");
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-
-		final Binding binding1 = new TestBinding("parent", "na", "parent",
-				null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("child", "na", "child", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-
-		// Only "parent"
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("parent");
-		contextManager.setActiveContextIds(activeContextIds);
-		assertEquals(
-				"When only the parent context is active, only the parent binding is active.",
-				binding1, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-
-		// Only "child"
-		activeContextIds.clear();
-		activeContextIds.add("child");
-		contextManager.setActiveContextIds(activeContextIds);
-		assertEquals(
-				"When only the child context is active, only the child binding is active.",
-				binding2, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-
-		// Both "parent" and "child"
-		activeContextIds.add("parent");
-		contextManager.setActiveContextIds(activeContextIds);
-		assertEquals(
-				"When both contexts are active, only the child binding is active.",
-				binding2, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a user-defined deletion actually works.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testDeletedBinding() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding(null, "na", "na", null, null,
-				Binding.USER, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("system", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		assertEquals("The user should be able to remove bindings", null,
-				bindingManager.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a user-defined deletion in one context will allow a binding
-	 * in a parent context to match.  Bug 105655.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testDeletedBindingAllowsParent() throws NotDefinedException {
-		final Context parentContext = contextManager.getContext("parent");
-		parentContext.define("name", "description", null);
-		final Context childContext = contextManager.getContext("child");
-		childContext.define("name", "description", "parent");
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("parent");
-		activeContextIds.add("child");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding childBinding = new TestBinding("childCommand", "na",
-				"child", null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(childBinding);
-		final Binding deletion = new TestBinding(null, "na", "child", null,
-				null, Binding.USER, null);
-		bindingManager.addBinding(deletion);
-		final Binding parentBinding = new TestBinding("parentCommand", "na",
-				"parent", null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(parentBinding);
-		assertEquals(
-				"The user should be able to remove bindings to allow a parent binding",
-				"parentCommand", bindingManager.getPerfectMatch(
-						TestBinding.TRIGGER_SEQUENCE).getParameterizedCommand()
-						.getId());
-	}
-
-	/**
-	 * <p>
-	 * Tests a common case for binding deletion. The binding is defined on all
-	 * platforms, then deleted on a specific platform, and defined again as
-	 * something else.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testDeletedBindingPlatform() throws NotDefinedException {
-		final String na = "na";
-
-		final Context context = contextManager.getContext(na);
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme(na);
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding allPlatforms = new TestBinding("allPlatforms", na, na,
-				null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(allPlatforms);
-		final Binding deletion = new TestBinding(null, na, na, null, Util.getWS(),
-				Binding.SYSTEM, null);
-		bindingManager.addBinding(deletion);
-		final Binding platformSpecific = new TestBinding("platformSpecific",
-				na, na, null, Util.getWS(), Binding.SYSTEM, null);
-		bindingManager.addBinding(platformSpecific);
-		assertEquals(
-				"We should be able to change a binding on a particular platform",
-				platformSpecific, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a system deletion for a different locale or platform
-	 * actually works. It shouldn't. Deletions should only work if they specify
-	 * a matching locale or platform.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testDeletedBindingUnnecessarily() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding(null, "na", "na",
-				"not the current locale", null, Binding.SYSTEM, null);
-		final Binding binding2 = new TestBinding("system", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		final Binding binding3 = new TestBinding(null, "na", "na", null,
-				"not the current platform", Binding.SYSTEM, null);
-		final Binding[] bindings = new Binding[3];
-		bindings[0] = binding1;
-		bindings[1] = binding2;
-		bindings[2] = binding3;
-		bindingManager.setBindings(bindings);
-		assertEquals(
-				"A binding should not cause a deletion if its locale or platform doesn't match",
-				binding2, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a user can add a binding to the same conditions once
-	 * they've deleted the system binding.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testDeletedBindingWithAddition() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding(null, "na", "na", null, null,
-				Binding.USER, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("system", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		final Binding binding3 = new TestBinding("user", "na", "na", null,
-				null, Binding.USER, null);
-		bindingManager.addBinding(binding3);
-		assertEquals("The user redefine a particular binding", binding3,
-				bindingManager.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * This tests the case where a plug-in developer unbinds a key, and then a
-	 * user tries to bind to that key. The user should be allowed to bind.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testDeletedBindingWithUserOverride() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding generalBinding = new TestBinding("general", scheme
-				.getId(), context.getId(), null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(generalBinding);
-		final Binding cancelOnPlatform = new TestBinding(null, scheme.getId(),
-				context.getId(), null, bindingManager.getPlatform(),
-				Binding.SYSTEM, null);
-		bindingManager.addBinding(cancelOnPlatform);
-		final Binding userOverride = new TestBinding("user", scheme.getId(),
-				context.getId(), null, bindingManager.getPlatform(),
-				Binding.USER, null);
-		bindingManager.addBinding(userOverride);
-		assertEquals("The user redefine a binding deleted in the system",
-				userOverride, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-
-	}
-	
-	/**
-	 * Tests that if more than one deletion is defined for the same binding,
-	 * that the deletion will still work.  Bug 106574 points out a case where it
-	 * is possible for a deletion to clobber another deletion.
-	 * 
-	 * @since 3.2
-	 */
-	public void testDoubleDeletedBinding() {
-		final String parent = "parent";
-		final String child = "child";
-
-		// Set-up the contexts
-		final Context parentContext = contextManager.getContext(parent);
-		parentContext.define(parent, parent, null);
-		final Context childContext = contextManager.getContext(child);
-		childContext.define(child, child, parent);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add(parent);
-		activeContextIds.add(child);
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// Set-up the schemes.
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define(parent, parent, null);
-
-		/*
-		 * Set-up a binding, with two deletions. The first deletion matches the
-		 * context, but the second does not.
-		 */
-		final Binding binding = new TestBinding("command", "na", parent, null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding);
-		final Binding correctDeletion = new TestBinding(null, "na", parent,
-				null, null, Binding.USER, null);
-		bindingManager.addBinding(correctDeletion);
-		final Binding wrongDeletion = new TestBinding(null, "na", child, null,
-				null, Binding.USER, null);
-		bindingManager.addBinding(wrongDeletion);
-
-		// Test that the deletion worked.
-		assertEquals("The parent should not be active", null, bindingManager
-				.getPerfectMatch(binding.getTriggerSequence()));
-	}
-
-	/**
-	 * This tests a complicated scenario that arises with the Emacs key binding
-	 * set in the Eclipse workbench. The first binding belongs to a parent
-	 * context, but a child scheme. The trigger sequences are not the same.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testDoubleParent() throws NotDefinedException {
-		final String parent = "parent";
-		final String child = "child";
-
-		// Set-up the contexts
-		final Context parentContext = contextManager.getContext(parent);
-		parentContext.define(parent, parent, null);
-		final Context childContext = contextManager.getContext(child);
-		childContext.define(child, child, parent);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add(parent);
-		activeContextIds.add(child);
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// Set-up the schemes.
-		final Scheme parentScheme = bindingManager.getScheme(parent);
-		parentScheme.define(parent, parent, null);
-		final Scheme childScheme = bindingManager.getScheme(child);
-		childScheme.define(child, child, parent);
-		bindingManager.setActiveScheme(childScheme);
-
-		// Add two bindings.
-		final Binding parentBinding = new TestBinding(parent, parent, parent,
-				null, null, Binding.SYSTEM, null);
-		final Binding childBinding = new TestBinding(child, child, child, null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(parentBinding);
-		bindingManager.addBinding(childBinding);
-
-		// Test to see that only the child is active.
-		assertTrue("The parent should not be active",
-				bindingManager.getActiveBindingsFor(parentBinding
-						.getParameterizedCommand()).length == 0);
-		assertTrue("The child should be active",
-				bindingManager.getActiveBindingsFor(childBinding
-						.getParameterizedCommand()).length != 0);
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a plug-in developer can override a binding for a particular
-	 * locale.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testLocaleOverride() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding("base", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding(null, "na", "na", Locale
-				.getDefault().toString(), null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		final Binding binding3 = new TestBinding("locale-specific", "na", "na",
-				Locale.getDefault().toString(), null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding3);
-		assertEquals(
-				"A plug-in developer should be able to change a binding for a locale",
-				binding3, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a plug-in developer can override a binding for a particular
-	 * platform.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testPlatformOverride() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding("base", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding(null, "na", "na", null, Util.getWS(),
-				Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		final Binding binding3 = new TestBinding("platform-specific", "na",
-				"na", null, Util.getWS(), Binding.SYSTEM, null);
-		bindingManager.addBinding(binding3);
-		assertEquals(
-				"A plug-in developer should be able to change a binding for a platform",
-				binding3, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a binding in a child scheme will override a binding in a
-	 * parent scheme. The test is set-up as follows:
-	 * </p>
-	 * <ul>
-	 * <li>Binding1(commandId="child",schemeId="child",contextId="na",locale=null,platform=null,type=SYSTEM)</li>
-	 * <li>Binding2(commandId="parent",schemeId="parent",contextId="na",locale=null,platform=null,type=SYSTEM)</li>
-	 * </ul>
-	 * <p>
-	 * Binding1 should win.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testSchemeOverride() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme parentScheme = bindingManager.getScheme("parent");
-		parentScheme.define("parent", "parent scheme", null);
-
-		final Scheme childScheme = bindingManager.getScheme("child");
-		childScheme.define("child", "child scheme", "parent");
-
-		bindingManager.setActiveScheme(childScheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding("child", "child", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("parent", "parent", "na",
-				null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		assertEquals("The binding from the child scheme should be active",
-				binding1, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * This tests a Emacs-style scenario. In this scenario a child scheme
-	 * defines a binding in a parent context. The parent scheme bindings the
-	 * same trigger sequence in a child context. The child scheme definition
-	 * should win.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testSchemeOverrideDifferentContexts()
-			throws NotDefinedException {
-		final String parent = "parent";
-		final String child = "child";
-
-		final Context parentContext = contextManager.getContext(parent);
-		parentContext.define("parent", "description", null);
-		final Context childContext = contextManager.getContext(child);
-		childContext.define("child", "description", parent);
-
-		final Scheme parentScheme = bindingManager.getScheme(parent);
-		parentScheme.define("parent", "parent scheme", null);
-		final Scheme childScheme = bindingManager.getScheme(child);
-		childScheme.define("child", "child scheme", parent);
-
-		bindingManager.setActiveScheme(childScheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add(parentContext.getId());
-		activeContextIds.add(childContext.getId());
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding("parent",
-				parentScheme.getId(), childContext.getId(), null, null,
-				Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("child", childScheme.getId(),
-				parentContext.getId(), null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		assertEquals("The binding from the child scheme should be active",
-				binding2, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a binding in a child scheme will override a binding in a
-	 * parent scheme -- regardless of their type. The test is set-up as follows:
-	 * </p>
-	 * <ul>
-	 * <li>Binding1(commandId="child",schemeId="child",contextId="na",locale=null,platform=null,type=SYSTEM)</li>
-	 * <li>Binding2(commandId="parent",schemeId="parent",contextId="na",locale=null,platform=null,type=USER)</li>
-	 * </ul>
-	 * <p>
-	 * Binding1 should win.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testSchemeOverrideDifferentTypes() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme parentScheme = bindingManager.getScheme("parent");
-		parentScheme.define("parent", "parent scheme", null);
-
-		final Scheme childScheme = bindingManager.getScheme("child");
-		childScheme.define("child", "child scheme", "parent");
-
-		bindingManager.setActiveScheme(childScheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding("child", "child", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("parent", "parent", "na",
-				null, null, Binding.USER, null);
-		bindingManager.addBinding(binding2);
-		assertEquals("The binding from the child scheme should be active",
-				binding1, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether two bindings defined for sibling active contexts leads to a
-	 * conflict.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testSiblingContextConflict() throws NotDefinedException {
-		final Context context1 = contextManager.getContext("sibling1");
-		context1.define("sibling1", "first sibling context", null);
-
-		final Context context2 = contextManager.getContext("sibling2");
-		context2.define("sibling2", "second sibling context", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-
-		final Binding binding1 = new TestBinding("sibling1", "na", "sibling1",
-				null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("sibling2", "na", "sibling2",
-				null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-
-		// One sibling active
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("sibling1");
-		contextManager.setActiveContextIds(activeContextIds);
-		assertEquals(
-				"When only the first sibling is active, only the first binding is active",
-				binding1, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-
-		// Other sibling active
-		activeContextIds.clear();
-		activeContextIds.add("sibling2");
-		contextManager.setActiveContextIds(activeContextIds);
-		assertEquals(
-				"When only the second sibling is active, only the second binding is active",
-				binding2, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-
-		// Both siblings are active
-		activeContextIds.add("sibling1");
-		contextManager.setActiveContextIds(activeContextIds);
-		assertEquals("When both contexts are active, a conflict should occur",
-				null, bindingManager
-						.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * <p>
-	 * Tests whether a user-defined binding will override the exact same binding
-	 * defined in the system.
-	 * </p>
-	 * <ul>
-	 * <li>Binding1(commandId="user",schemeId="na",contextId="na",locale=null,platform=null,type=USER)</li>
-	 * <li>Binding2(commandId="system",schemeId="na",contextId="na",locale=null,platform=null,type=SYSTEM)</li>
-	 * </ul>
-	 * <p>
-	 * Binding1 should win.
-	 * </p>
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public void testUserOverride() throws NotDefinedException {
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final Binding binding1 = new TestBinding("user", "na", "na", null,
-				null, Binding.USER, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("system", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		assertEquals("The user-defined binding should be active", binding1,
-				bindingManager.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingManagerTest.java
deleted file mode 100644
index c5e4284..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingManagerTest.java
+++ /dev/null
@@ -1,957 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.keys;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.commands.Category;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.IParameterValues;
-import org.eclipse.core.commands.ParameterValuesException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.commands.contexts.ContextManager;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.BindingManager;
-import org.eclipse.jface.bindings.Scheme;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.bindings.keys.KeyBinding;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * <p>
- * This test case covers the general functionality of the binding manager's API
- * methods. This is not intended to test the interactions between bindings
- * themselves (e.g., solving a binding set). For tests dealing with
- * interactions, please look at <code>BindingInteractionsTest</code>.
- * </p>
- * <p>
- * The listener code is tested throughout the various tests. There is no
- * individual test method for the listener code.
- * </p>
- * 
- * @see org.eclipse.ui.tests.keys.BindingInteractionsTest
- * @since 3.1
- */
-public final class BindingManagerTest extends UITestCase {
-
-	/**
-	 * The binding manager to use in each test case. A new binding manager is
-	 * created for each test case, and it is disposed when the test is over.
-	 */
-	private BindingManager bindingManager = null;
-
-	/**
-	 * The command manager for the currently running test. <code>null</code>
-	 * if no test is running.
-	 */
-	private CommandManager commandManager = null;
-
-	/**
-	 * The context manager to use in each test case. A new context manager is
-	 * created for each test case, and it is disposed when the test is over.
-	 */
-	private ContextManager contextManager = null;
-
-	/**
-	 * Constructor for <code>BindingInteractionsTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public BindingManagerTest(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Creates a new context manager and a binding manager for use in the test
-	 * cases.
-	 */
-	protected final void doSetUp() {
-		commandManager = new CommandManager();
-		contextManager = new ContextManager();
-		bindingManager = new BindingManager(contextManager, commandManager);
-	}
-
-	/**
-	 * Releases the context manager and binding manager for garbage collection.
-	 */
-	protected final void doTearDown() {
-		bindingManager = null;
-		contextManager = null;
-		commandManager = null;
-	}
-
-	/**
-	 * Tests that the constructor disallows a null context manager.
-	 */
-	public final void testConstructor() {
-		try {
-			new BindingManager(null, null);
-			fail("A binding manager cannot be constructed with a null context manager");
-		} catch (final NullPointerException e) {
-			// Success
-		}
-	}
-
-	/**
-	 * Tests that it is not possible to add a null binding. Tests that adding a
-	 * binding forces a recomputation.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public final void testAddBinding() throws NotDefinedException {
-		// Set up a state in which a binding may become active.
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// Try to add a null binding.
-		try {
-			bindingManager.addBinding(null);
-			fail("It should not be possible to add a null binding");
-		} catch (final NullPointerException e) {
-			// Success.
-		}
-
-		// Try to add a binding that should become active.
-		final Binding binding = new TestBinding("conflict1", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding);
-		assertSame("The binding should be active", binding, bindingManager
-				.getPerfectMatch(TestBinding.TRIGGER_SEQUENCE));
-	}
-
-	/**
-	 * Tests that <code>getActiveBindingsDisregardingContext()</code> never
-	 * returns <code>null</code>. The rest of the functionality is tested in
-	 * <code>BindingInteractionsTest</code>.
-	 * 
-	 * @see BindingInteractionsTest
-	 */
-	public final void testGetActiveBindingsDisregardingContext() {
-		final Map activeBindings = bindingManager
-				.getActiveBindingsDisregardingContext();
-		assertNotNull("The active bindings should never be null",
-				activeBindings);
-		assertTrue("The active bindings should start empty", activeBindings
-				.isEmpty());
-	}
-
-	/**
-	 * Tests that <code>getActiveBindingsDisregardingContextFlat()</code>
-	 * never returns <code>null</code>. The rest of the functionality is
-	 * tested in <code>BindingInteractionsTest</code>.
-	 * 
-	 * @see BindingInteractionsTest
-	 */
-	public final void testGetActiveBindingsDisregardingContextFlat() {
-		final Collection activeBindings = bindingManager
-				.getActiveBindingsDisregardingContextFlat();
-		assertNotNull("The active bindings should never be null",
-				activeBindings);
-		assertTrue("The active bindings should start empty", activeBindings
-				.isEmpty());
-	}
-
-	/**
-	 * Tests whether the method works with a null argument. Tests that it works
-	 * in a simple case.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public final void testGetActiveBindingsFor() throws NotDefinedException {
-		// Test with a null argument.
-		final TriggerSequence[] activeBindingsForNull = bindingManager
-				.getActiveBindingsFor((ParameterizedCommand) null);
-		assertNotNull("The active bindings for a command should never be null",
-				activeBindingsForNull);
-		assertTrue(
-				"The active binding for a null command should always be empty",
-				activeBindingsForNull.length == 0);
-
-		// Test a simple case.
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final String commandId = "commandId";
-		final Binding binding = new TestBinding(commandId, "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding);
-
-		final TriggerSequence[] bindings = bindingManager
-				.getActiveBindingsFor(binding.getParameterizedCommand());
-		assertEquals("There should be one binding", 1, bindings.length);
-		assertSame("The binding should match", TestBinding.TRIGGER_SEQUENCE,
-				bindings[0]);
-	}
-
-	/**
-	 * Tests that the active scheme starts off <code>null</code>. The rest of
-	 * the active scheme testing happens in <code>testSetActiveScheme()</code>.
-	 * 
-	 * @see BindingManagerTest#testSetActiveScheme()
-	 */
-	public final void testGetActiveScheme() {
-		assertNull("The active scheme should start null", bindingManager
-				.getActiveScheme());
-	}
-
-	/**
-	 * Tests that <code>getBindings</code> first returns <code>null</code>.
-	 * It then verifies that an added binding is return from this method.
-	 */
-	public final void testGetBindings() {
-		// Check the starting condition.
-		assertNull("The bindings should start off null", bindingManager
-				.getBindings());
-
-		// Check that an added binding is included.
-		final Binding binding = new TestBinding(null, "schemeId", "contextId",
-				null, null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding);
-		final Binding[] bindings = bindingManager.getBindings();
-		assertEquals("There should be one binding", 1, bindings.length);
-		assertSame("The binding should be the same", binding, bindings[0]);
-
-		/*
-		 * Check that modifying this set does not modify the internal data
-		 * structures.
-		 */
-		bindings[0] = null;
-		assertNotNull("There should be no change",
-				bindingManager.getBindings()[0]);
-	}
-
-	/**
-	 * Tests that the list of defined schemes stays up-to-date
-	 */
-	public final void testGetDefinedSchemeIds() {
-		// Starting condition.
-		assertTrue("The set of defined schemes should start empty",
-				bindingManager.getDefinedSchemes().length == 0);
-
-		// Retrieving a scheme shouldn't change anything.
-		final Scheme scheme = bindingManager.getScheme("schemeId");
-		assertTrue(
-				"The set of defined schemes should still be empty after a get",
-				bindingManager.getDefinedSchemes().length == 0);
-
-		// Defining the scheme should change things.
-		scheme.define("name", "description", null);
-		Scheme[] definedSchemes = bindingManager.getDefinedSchemes();
-		assertEquals("There should be one defined scheme id", 1,
-				definedSchemes.length);
-		assertSame("The defined scheme id should match", scheme,
-				definedSchemes[0]);
-
-		definedSchemes[0] = null;
-		definedSchemes = bindingManager.getDefinedSchemes();
-		assertSame("The API should not expose internal collections", scheme,
-				definedSchemes[0]);
-
-		// Undefining the scheme should also change things.
-		scheme.undefine();
-		assertTrue(
-				"The set of defined schemes should be empty after an undefine",
-				bindingManager.getDefinedSchemes().length == 0);
-	}
-
-	/**
-	 * Tests that the active locale is never <code>null</code>.
-	 */
-	public final void testGetLocale() {
-		assertNotNull("The locale should never be null", bindingManager
-				.getLocale());
-	}
-
-	/**
-	 * Tests that this method returns the expected list of sequences for a
-	 * couple of scenarios. In the first scenario, there is one perfect match
-	 * bindings and a partial match binding. In the second scenario, there are
-	 * two partial match bindings. In the third scenario, we are checking that
-	 * all bindings match an empty trigger sequence.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 * @throws ParseException
-	 *             If the hard-coded strings aren't constructed properly.
-	 */
-	public final void testGetPartialMatches() throws NotDefinedException,
-			ParseException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// SCENARIO 1
-		final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
-		final Command perfectCommand = commandManager.getCommand("perfect");
-		final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
-				perfectCommand, null);
-		final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
-				perfectParameterizedCommand, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final KeySequence partialMatch1 = KeySequence
-				.getInstance("CTRL+F CTRL+F");
-		final Command partialCommand1 = commandManager.getCommand("partial1");
-		final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
-				partialCommand1, null);
-		final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
-				partialParameterizedCommand1, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final Binding[] bindings = new Binding[2];
-		bindings[0] = perfectMatchBinding;
-		bindings[1] = partialMatchBinding1;
-		bindingManager.setBindings(bindings);
-		Map partialMatches = bindingManager.getPartialMatches(perfectMatch);
-		assertTrue("A partial match should override a perfect match",
-				!partialMatches.isEmpty());
-		assertTrue("A partial match should override a perfect match",
-				partialMatches.containsKey(partialMatch1));
-
-		// SCENARIO 2
-		final KeySequence partialMatch2 = KeySequence
-				.getInstance("CTRL+F CTRL+F CTRL+F");
-		final Command partialCommand2 = commandManager.getCommand("partial2");
-		final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
-				partialCommand2, null);
-		final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
-				partialParameterizedCommand2, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		bindings[0] = partialMatchBinding1;
-		bindings[1] = partialMatchBinding2;
-		bindingManager.setBindings(bindings);
-		partialMatches = bindingManager.getPartialMatches(perfectMatch);
-		assertEquals("There should be two partial matches", 2, partialMatches
-				.size());
-		assertSame("The partial match should be the one defined",
-				partialMatchBinding1, partialMatches.get(partialMatch1));
-		assertSame("The partial match should be the one defined",
-				partialMatchBinding2, partialMatches.get(partialMatch2));
-
-		// SCENARIO 3
-		bindingManager.addBinding(perfectMatchBinding);
-		partialMatches = bindingManager.getPartialMatches(KeySequence
-				.getInstance());
-		assertEquals("There should be three partial matches", 3, partialMatches
-				.size());
-		assertSame("The partial match should be the one defined",
-				perfectMatchBinding, partialMatches.get(perfectMatch));
-		assertSame("The partial match should be the one defined",
-				partialMatchBinding1, partialMatches.get(partialMatch1));
-		assertSame("The partial match should be the one defined",
-				partialMatchBinding2, partialMatches.get(partialMatch2));
-	}
-
-	/**
-	 * Tests that this method returns the expected command identifier. In the
-	 * first scenario, there is one perfect match bindings and a partial match
-	 * binding. In the second scenario, there are two partial match bindings. In
-	 * the third scenario, we are checking that nothing matches an empty
-	 * sequence.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 * @throws ParseException
-	 *             If the hard-coded strings aren't constructed properly.
-	 */
-	public final void testGetPerfectMatch() throws NotDefinedException,
-			ParseException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// SCENARIO 1
-		final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
-		final Command perfectCommand = commandManager.getCommand("perfect");
-		final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
-				perfectCommand, null);
-		final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
-				perfectParameterizedCommand, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final KeySequence partialMatch1 = KeySequence
-				.getInstance("CTRL+F CTRL+F");
-		final Command partialCommand1 = commandManager.getCommand("partial1");
-		final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
-				partialCommand1, null);
-		final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
-				partialParameterizedCommand1, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final Binding[] bindings = new Binding[2];
-		bindings[0] = perfectMatchBinding;
-		bindings[1] = partialMatchBinding1;
-		bindingManager.setBindings(bindings);
-		Binding actualBinding = bindingManager.getPerfectMatch(perfectMatch);
-		assertSame("This should be a perfect match", perfectMatchBinding,
-				actualBinding);
-
-		// SCENARIO 2
-		final KeySequence partialMatch2 = KeySequence
-				.getInstance("CTRL+F CTRL+F CTRL+F");
-		final Command partialCommand2 = commandManager.getCommand("partial2");
-		final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
-				partialCommand2, null);
-		final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
-				partialParameterizedCommand2, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		bindings[0] = partialMatchBinding1;
-		bindings[1] = partialMatchBinding2;
-		bindingManager.setBindings(bindings);
-		actualBinding = bindingManager.getPerfectMatch(perfectMatch);
-		assertNull("There should be no perfect matches", actualBinding);
-
-		// SCENARIO 3
-		bindingManager.addBinding(perfectMatchBinding);
-		actualBinding = bindingManager.getPerfectMatch(KeySequence
-				.getInstance());
-		assertNull("This should be no perfect matches for an empty sequence",
-				actualBinding);
-	}
-
-	/**
-	 * Tests that the platform is never <code>null</code>.
-	 */
-	public final void testGetPlatform() {
-		assertNotNull("The platform can never be null", bindingManager
-				.getPlatform());
-	}
-
-	/**
-	 * Tests that when a scheme is first retrieved, it is undefined. Tests that
-	 * a second access to a scheme returns the same scheme.
-	 */
-	public final void testGetScheme() {
-		final String schemeId = "schemeId";
-		final Scheme firstScheme = bindingManager.getScheme(schemeId);
-		assertTrue("A scheme should start undefined", !firstScheme.isDefined());
-		final Scheme secondScheme = bindingManager.getScheme(schemeId);
-		assertSame("The two scheme should be the same", firstScheme,
-				secondScheme);
-	}
-
-	/**
-	 * Tests that this method returns <code>true</code> when expected. In the
-	 * first scenario, there is one perfect match bindings and a partial match
-	 * binding. In the second scenario, there are two partial match bindings. In
-	 * the third scenario, we are checking that all bindings match an empty
-	 * trigger sequence.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 * @throws ParseException
-	 *             If the hard-coded strings aren't constructed properly.
-	 */
-	public final void testIsPartialMatch() throws NotDefinedException,
-			ParseException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// SCENARIO 1
-		final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
-		final Command perfectCommand = commandManager.getCommand("perfect");
-		final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
-				perfectCommand, null);
-		final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
-				perfectParameterizedCommand, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final KeySequence partialMatch1 = KeySequence
-				.getInstance("CTRL+F CTRL+F");
-		final Command partialCommand1 = commandManager.getCommand("partial1");
-		final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
-				partialCommand1, null);
-		final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
-				partialParameterizedCommand1, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final Binding[] bindings = new Binding[2];
-		bindings[0] = perfectMatchBinding;
-		bindings[1] = partialMatchBinding1;
-		bindingManager.setBindings(bindings);
-		assertTrue("A perfect match should be overridden by a partial",
-				bindingManager.isPartialMatch(perfectMatch));
-
-		// SCENARIO 2
-		final KeySequence partialMatch2 = KeySequence
-				.getInstance("CTRL+F CTRL+F CTRL+F");
-		final Command partialCommand2 = commandManager.getCommand("partial2");
-		final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
-				partialCommand2, null);
-		final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
-				partialParameterizedCommand2, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		bindings[0] = partialMatchBinding1;
-		bindings[1] = partialMatchBinding2;
-		bindingManager.setBindings(bindings);
-		assertTrue("Two partial matches should count as a partial",
-				bindingManager.isPartialMatch(perfectMatch));
-
-		// SCENARIO 3
-		bindingManager.addBinding(perfectMatchBinding);
-		bindingManager.setBindings(bindings);
-		assertTrue("An empty sequence matches everything partially",
-				bindingManager.isPartialMatch(KeySequence.getInstance()));
-	}
-
-	/**
-	 * Tests that this method returns <code>true</code> when expected. In the
-	 * first scenario, there is one perfect match bindings and a partial match
-	 * binding. In the second scenario, there are two partial match bindings. In
-	 * the third scenario, we are checking that nothing matches an empty
-	 * sequence.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 * @throws ParseException
-	 *             If the hard-coded strings aren't constructed properly.
-	 */
-	public final void testIsPerfectMatch() throws NotDefinedException,
-			ParseException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// SCENARIO 1
-		final KeySequence perfectMatch = KeySequence.getInstance("CTRL+F");
-		final Command perfectCommand = commandManager.getCommand("perfect");
-		final ParameterizedCommand perfectParameterizedCommand = new ParameterizedCommand(
-				perfectCommand, null);
-		final Binding perfectMatchBinding = new KeyBinding(perfectMatch,
-				perfectParameterizedCommand, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final KeySequence partialMatch1 = KeySequence
-				.getInstance("CTRL+F CTRL+F");
-		final Command partialCommand1 = commandManager.getCommand("partial1");
-		final ParameterizedCommand partialParameterizedCommand1 = new ParameterizedCommand(
-				partialCommand1, null);
-		final Binding partialMatchBinding1 = new KeyBinding(partialMatch1,
-				partialParameterizedCommand1, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final Binding[] bindings = new Binding[2];
-		bindings[0] = perfectMatchBinding;
-		bindings[1] = partialMatchBinding1;
-		bindingManager.setBindings(bindings);
-		assertTrue("This should be a perfect match", bindingManager
-				.isPerfectMatch(perfectMatch));
-
-		// SCENARIO 2
-		final KeySequence partialMatch2 = KeySequence
-				.getInstance("CTRL+F CTRL+F CTRL+F");
-		final Command partialCommand2 = commandManager.getCommand("perfect");
-		final ParameterizedCommand partialParameterizedCommand2 = new ParameterizedCommand(
-				partialCommand2, null);
-		final Binding partialMatchBinding2 = new KeyBinding(partialMatch2,
-				partialParameterizedCommand2, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		bindings[0] = partialMatchBinding1;
-		bindings[1] = partialMatchBinding2;
-		bindingManager.setBindings(bindings);
-		assertTrue("This should be no perfect matches", !bindingManager
-				.isPerfectMatch(perfectMatch));
-
-		// SCENARIO 3
-		bindingManager.addBinding(perfectMatchBinding);
-		assertTrue("This should be no perfect matches", !bindingManager
-				.isPerfectMatch(KeySequence.getInstance()));
-	}
-
-	/**
-	 * Tests that you can remove binding, and that it will change the active
-	 * bindings as well.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public final void testRemoveBindings() throws NotDefinedException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// ADD SOME BINDINGS
-		final Binding binding1 = new TestBinding("command1", "na", "na", null,
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding1);
-		final Binding binding2 = new TestBinding("command2", "na", "na", "zh",
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding2);
-		final Binding binding3 = new TestBinding("command3", "na", "na", null,
-				"gtk", Binding.SYSTEM, null);
-		bindingManager.addBinding(binding3);
-		final Binding binding4 = new TestBinding("command4", "na", "na", null,
-				"gtk", Binding.USER, null);
-		bindingManager.addBinding(binding4);
-		final Binding binding5 = new TestBinding("command5", "na", "na", "zh",
-				"gtk", Binding.USER, null);
-		bindingManager.addBinding(binding5);
-		assertNotNull("There should be three active bindings", bindingManager
-				.getActiveBindingsFor(binding1.getParameterizedCommand()));
-		assertNotNull("There should be three active bindings", bindingManager
-				.getActiveBindingsFor(binding2.getParameterizedCommand()));
-		assertNotNull("There should be three active bindings", bindingManager
-				.getActiveBindingsFor(binding4.getParameterizedCommand()));
-
-		// REMOVE SOME BINDINGS
-		bindingManager.removeBindings(TestBinding.TRIGGER_SEQUENCE, "na", "na",
-				"zh", "gtk", null, Binding.USER);
-		assertEquals("There should be four bindings left", 4, bindingManager
-				.getBindings().length);
-		assertNotNull("There should be four active bindings", bindingManager
-				.getActiveBindingsFor(binding1.getParameterizedCommand()));
-		assertNotNull("There should be four active bindings", bindingManager
-				.getActiveBindingsFor(binding2.getParameterizedCommand()));
-		assertNotNull("There should be four active bindings", bindingManager
-				.getActiveBindingsFor(binding3.getParameterizedCommand()));
-		assertNotNull("There should be four active bindings", bindingManager
-				.getActiveBindingsFor(binding4.getParameterizedCommand()));
-	}
-
-	/**
-	 * Verifies that selecting an undefimned scheme doesn't work. Verifies that
-	 * selecting a scheme works. Verifies that undefining scheme removes it as
-	 * the active scheme.
-	 */
-	public final void testSetActiveScheme() {
-		// SELECT UNDEFINED
-		final String schemeId = "schemeId";
-		final Scheme scheme = bindingManager.getScheme(schemeId);
-		try {
-			bindingManager.setActiveScheme(scheme);
-			fail("Cannot activate an undefined scheme");
-		} catch (final NotDefinedException e) {
-			// Success
-		}
-
-		// SELECT DEFINED
-		scheme.define("name", "description", null);
-		try {
-			bindingManager.setActiveScheme(scheme);
-			assertSame("The schemes should match", scheme, bindingManager
-					.getActiveScheme());
-		} catch (final NotDefinedException e) {
-			fail("Should be able to activate a scheme");
-		}
-
-		// UNDEFINE SELECTED
-		scheme.undefine();
-		assertNull("The scheme should have become unselected", bindingManager
-				.getActiveScheme());
-	}
-
-	public void testGetCurrentConflicts() throws NotDefinedException, ParseException {
-		
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		contextManager.setActiveContextIds(null);
-
-		Command command1 = commandManager.getCommand("conflictCommand1");
-		ParameterizedCommand parameterizedCommand1 = ParameterizedCommand.generateCommand(command1, null);
-		Command command2 = commandManager.getCommand("conflictCommand2");
-		ParameterizedCommand parameterizedCommand2 = ParameterizedCommand.generateCommand(command2, null);
-		Command command3 = commandManager.getCommand("conflictCommand3");
-		ParameterizedCommand parameterizedCommand3 = ParameterizedCommand.generateCommand(command3, null);
-		KeySequence conflict = KeySequence.getInstance("M1+M2+9");
-		KeySequence noConflict = KeySequence.getInstance("M1+M2+8");
-		Binding binding1 = new KeyBinding(conflict, parameterizedCommand1, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		Binding binding2 = new KeyBinding(conflict, parameterizedCommand2, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		Binding binding3 = new KeyBinding(noConflict, parameterizedCommand3, "na", "na", null, null, null,
-				Binding.SYSTEM);
-		final Binding[] bindings = new Binding[] {binding1, binding2, binding3};
-		bindingManager.setBindings(bindings);
-
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		Map activeBindingsDisregardingContext = bindingManager.getActiveBindingsDisregardingContext();// force a recompute
-		assertNotNull(activeBindingsDisregardingContext);
-		
-		Map currentConflicts = bindingManager.getCurrentConflicts();
-		assertEquals(1, currentConflicts.size()); // we have only one conflict
-		
-		Collection conflictsCollection = bindingManager.getConflictsFor(noConflict);
-		assertNull(conflictsCollection); // no conflict for this keybinding
-		
-		conflictsCollection = bindingManager.getConflictsFor(conflict);
-		assertNotNull(conflictsCollection); // this has one conflict with 2 commands
-		assertEquals(2, conflictsCollection.size());
-
-	}
-	
-	/**
-	 * Verifies that you can set the bindings to null. Verifies that setting the
-	 * bindings clears the cache.
-	 * 
-	 * @throws NotDefinedException
-	 *             If this test doesn't properly define a scheme.
-	 */
-	public final void testSetBindings() throws NotDefinedException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// SET NULL
-		bindingManager.setBindings(null);
-		assertTrue("There should be no active bindings", bindingManager
-				.getActiveBindingsFor((ParameterizedCommand) null).length == 0);
-
-		// ADD BINDING
-		final String commandId = "commandId";
-		final Binding binding = new TestBinding(commandId, "na", "na", null,
-				null, Binding.SYSTEM, null);
-		final Binding[] bindings = new Binding[1];
-		bindings[0] = binding;
-		bindingManager.setBindings(bindings);
-		final TriggerSequence[] activeBindings = bindingManager
-				.getActiveBindingsFor(binding.getParameterizedCommand());
-		assertEquals("There should be one active binding", 1,
-				activeBindings.length);
-		assertSame("The binding should be the one we set",
-				TestBinding.TRIGGER_SEQUENCE, activeBindings[0]);
-	}
-
-	/**
-	 * Verifies that it cannot be set to <code>null</code>. Verifies that it
-	 * clears the cache.
-	 * 
-	 * @throws NotDefinedException
-	 *             If this test doesn't properly define a scheme.
-	 */
-	public final void testSetLocale() throws NotDefinedException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// SET TO NULL
-		try {
-			bindingManager.setLocale(null);
-			fail("Cannot set the locale to null");
-		} catch (final NullPointerException e) {
-			// Success
-		}
-
-		// SET TO SOMETHING
-		final String commandId = "commandId";
-		final Binding binding = new TestBinding(commandId, "na", "na", "xx",
-				null, Binding.SYSTEM, null);
-		bindingManager.addBinding(binding);
-		assertTrue("The binding shouldn't be active",
-				bindingManager.getActiveBindingsFor(binding
-						.getParameterizedCommand()).length == 0);
-		bindingManager.setLocale("xx_XX");
-		final TriggerSequence[] activeBindings = bindingManager
-				.getActiveBindingsFor(binding.getParameterizedCommand());
-		assertEquals("The binding should become active", 1,
-				activeBindings.length);
-		assertSame("The binding should be the same",
-				TestBinding.TRIGGER_SEQUENCE, activeBindings[0]);
-	}
-
-	/**
-	 * Verifies that it cannot be set to <code>null</code>. Verifies that it
-	 * clears the cache.
-	 * 
-	 * @throws NotDefinedException
-	 *             If this test doesn't properly define a scheme.
-	 */
-	public final void testSetPlatform() throws NotDefinedException {
-		// GENERAL SET-UP
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		// SET TO NULL
-		try {
-			bindingManager.setPlatform(null);
-			fail("Cannot set the platform to null");
-		} catch (final NullPointerException e) {
-			// Success
-		}
-
-		// SET TO SOMETHING
-		final String commandId = "commandId";
-		final Binding binding = new TestBinding(commandId, "na", "na", null,
-				"atari", Binding.SYSTEM, null);
-		bindingManager.addBinding(binding);
-		assertTrue("The binding shouldn't be active",
-				bindingManager.getActiveBindingsFor(binding
-						.getParameterizedCommand()).length == 0);
-		bindingManager.setPlatform("atari");
-		final TriggerSequence[] activeBindings = bindingManager
-				.getActiveBindingsFor(binding.getParameterizedCommand());
-		assertEquals("The binding should become active", 1,
-				activeBindings.length);
-		assertSame("The binding should be the same",
-				TestBinding.TRIGGER_SEQUENCE, activeBindings[0]);
-	}
-
-	/**
-	 * Tests whether the method works with a null argument. Tests that it works
-	 * in a simple case.
-	 * 
-	 * @throws NotDefinedException
-	 *             If the scheme we try to activate is not defined.
-	 */
-	public final void testGetBestActiveBindingFor() throws Exception {
-		// Test with a null argument.
-		final TriggerSequence[] activeBindingsForNull = bindingManager
-				.getActiveBindingsFor((ParameterizedCommand) null);
-		assertNotNull("The active bindings for a command should never be null",
-				activeBindingsForNull);
-		assertTrue(
-				"The active binding for a null command should always be empty",
-				activeBindingsForNull.length == 0);
-
-		// Test a simple case.
-		final Context context = contextManager.getContext("na");
-		context.define("name", "description", null);
-
-		final Scheme scheme = bindingManager.getScheme("na");
-		scheme.define("name", "description", null);
-
-		bindingManager.setActiveScheme(scheme);
-		final Set activeContextIds = new HashSet();
-		activeContextIds.add("na");
-		contextManager.setActiveContextIds(activeContextIds);
-
-		final String commandId = "commandId";
-		final String categoryId = "cat";
-		Category cat = commandManager.getCategory(categoryId);
-		cat.define("cat", "cat");
-		Command cmd = commandManager.getCommand(commandId);
-		IParameter[] parms = new IParameter[1];
-		parms[0] = new IParameter() {
-			public String getId() {
-				return "viewId";
-			}
-
-			public String getName() {
-				return "View Id";
-			}
-
-			public IParameterValues getValues() throws ParameterValuesException {
-				return null;
-			}
-
-			public boolean isOptional() {
-				return false;
-			}
-		};
-		cmd.define("na", "NA", cat, parms);
-		Map map = new HashMap();
-		map.put("viewId", "outline");
-		ParameterizedCommand outline = ParameterizedCommand.generateCommand(
-				cmd, map);
-		map = new HashMap();
-		map.put("viewId", "console");
-		ParameterizedCommand console = ParameterizedCommand.generateCommand(
-				cmd, map);
-		assertFalse(outline.equals(console));
-
-		final Binding b2 = new KeyBinding(KeySequence.getInstance("M1+M2+V"),
-				outline, "na", "na", null, null, null, Binding.SYSTEM);
-		bindingManager.addBinding(b2);
-
-		final Binding binding = new KeyBinding(KeySequence.getInstance("M1+V"),
-				outline, "na", "na", null, null, null, Binding.SYSTEM);
-		bindingManager.addBinding(binding);
-
-		final Binding b3 = new KeyBinding(KeySequence.getInstance("M1+M2+C"),
-				console, "na", "na", null, null, null, Binding.SYSTEM);
-		bindingManager.addBinding(b3);
-
-		// - above is all done as part of startup
-
-		final TriggerSequence[] bindings = bindingManager
-				.getActiveBindingsFor(binding.getParameterizedCommand());
-		assertEquals(2, bindings.length);
-		
-		final TriggerSequence bestBinding = bindingManager.getBestActiveBindingFor(outline);
-		assertEquals(binding.getTriggerSequence(), bestBinding);
-		
-		final TriggerSequence bestBinding2 = bindingManager.getBestActiveBindingFor(console);
-		assertEquals(b3.getTriggerSequence(), bestBinding2);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingPersistenceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingPersistenceTest.java
deleted file mode 100644
index 9e4eb29..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/BindingPersistenceTest.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.keys;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.Util;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test cases covering the various interaction between bindings. Bindings that
- * have been removed. Bindings that have been added. Inheritance of various
- * properties.
- * 
- * @since 3.1
- */
-public final class BindingPersistenceTest extends UITestCase {
-
-	/**
-	 * Constructor for <code>BindingPersistenceTest</code>.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public BindingPersistenceTest(final String name) {
-		super(name);
-	}
-
-	/**
-	 * <p>
-	 * Tests whether the preference store will be read automatically when a
-	 * change to the preference store is made.
-	 * </p>
-	 * 
-	 * @throws ParseException
-	 *             If "ALT+SHIFT+Q A" cannot be parsed by KeySequence.
-	 */
-	public final void testAutoLoad() throws ParseException {
-		// Get the services.
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getAdapter(ICommandService.class);
-		IBindingService bindingService = (IBindingService) fWorkbench
-				.getAdapter(IBindingService.class);
-		bindingService.readRegistryAndPreferences(commandService);
-
-		// Check the pre-conditions.
-		final String emacsSchemeId = "org.eclipse.ui.emacsAcceleratorConfiguration";
-		assertFalse("The active scheme should be Emacs yet", emacsSchemeId
-				.equals(bindingService.getActiveScheme().getId()));
-		final KeySequence formalKeySequence = KeySequence
-				.getInstance("ALT+SHIFT+Q A");
-		final String commandId = "org.eclipse.ui.views.showView";
-		Binding[] bindings = bindingService.getBindings();
-		int i;
-		for (i = 0; i < bindings.length; i++) {
-			final Binding binding = bindings[i];
-			if ((binding.getType() == Binding.USER)
-					&& (formalKeySequence.equals(binding.getTriggerSequence()))) {
-				final ParameterizedCommand command = binding
-						.getParameterizedCommand();
-				final String actualCommandId = (command == null) ? null
-						: command.getCommand().getId();
-				assertFalse("The command should not yet be bound", commandId
-						.equals(actualCommandId));
-				break;
-			}
-		}
-		assertEquals("There shouldn't be a matching command yet",
-				bindings.length, i);
-
-		// Modify the preference store.
-		final IPreferenceStore store = WorkbenchPlugin.getDefault()
-				.getPreferenceStore();
-		store
-				.setValue(
-						"org.eclipse.ui.commands",
-						"<?xml version=\"1.0\" encoding=\"UTF-8\"?><org.eclipse.ui.commands><activeKeyConfiguration keyConfigurationId=\""
-								+ emacsSchemeId
-								+ "\"/><keyBinding commandId=\""
-								+ commandId
-								+ "\" contextId=\"org.eclipse.ui.contexts.window\" keyConfigurationId=\"org.eclipse.ui.defaultAcceleratorConfiguration\" keySequence=\""
-								+ formalKeySequence
-								+ "\"/></org.eclipse.ui.commands>");
-
-		// Check that the values have changed.
-		assertEquals("The active scheme should now be Emacs", emacsSchemeId,
-				bindingService.getActiveScheme().getId());
-		bindings = bindingService.getBindings();
-		for (i = 0; i < bindings.length; i++) {
-			final Binding binding = bindings[i];
-			if ((binding.getType() == Binding.USER)
-					&& (formalKeySequence.equals(binding.getTriggerSequence()))) {
-				final ParameterizedCommand command = binding
-						.getParameterizedCommand();
-				final String actualCommandId = (command == null) ? null
-						: command.getCommand().getId();
-				assertEquals("The command should be bound to 'ALT+SHIFT+Q A'",
-						commandId, actualCommandId);
-				break;
-			}
-		}
-		assertFalse("There should be a matching command now",
-				(bindings.length == i));
-	}
-
-	public final void testSinglePlatform() throws Exception {
-		// Get the services.
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getAdapter(ICommandService.class);
-		IBindingService bindingService = (IBindingService) fWorkbench
-				.getAdapter(IBindingService.class);
-
-		ParameterizedCommand about = new ParameterizedCommand(commandService
-				.getCommand("org.eclipse.ui.help.aboutAction"), null);
-		KeySequence m18A = KeySequence.getInstance("M1+8 A");
-		KeySequence m18B = KeySequence.getInstance("M1+8 B");
-		int numAboutBindings = 0;
-
-		Binding[] bindings = bindingService.getBindings();
-		for (int i = 0; i < bindings.length; i++) {
-			final Binding binding = bindings[i];
-			if (binding.getType() == Binding.SYSTEM) {
-				String platform = binding.getPlatform();
-				int idx = (platform == null ? -1 : platform.indexOf(','));
-				assertEquals(binding.toString(), -1, idx);
-				if (about.equals(binding.getParameterizedCommand())) {
-					if (m18A.equals(binding.getTriggerSequence())) {
-						numAboutBindings++;
-						assertNull("M+8 A", binding.getPlatform());
-					} else if (m18B.equals(binding.getTriggerSequence())) {
-						numAboutBindings++;
-						// assertEquals(Util.WS_CARBON, binding.getPlatform());
-						// temp work around for honouring carbon bindings
-						assertTrue("failure for platform: "
-								+ binding.getPlatform(), Util.WS_CARBON
-								.equals(binding.getPlatform())
-								|| Util.WS_COCOA.equals(binding.getPlatform()));
-					}
-				}
-			}
-		}
-		// assertEquals(2, numAboutBindings);
-		// temp work around for honouring carbon bindings
-		assertEquals(3, numAboutBindings);
-	}
-
-	public final void testBindingTransform() throws Exception {
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getAdapter(ICommandService.class);
-		IBindingService bindingService = (IBindingService) fWorkbench
-				.getAdapter(IBindingService.class);
-
-		ParameterizedCommand addWS = new ParameterizedCommand(commandService
-				.getCommand("org.eclipse.ui.navigate.addToWorkingSet"), null);
-		KeySequence m18w = KeySequence.getInstance("M1+8 W");
-		KeySequence m28w = KeySequence.getInstance("M2+8 W");
-		boolean foundDeleteMarker = false;
-		int numOfMarkers = 0;
-		Binding[] bindings = bindingService.getBindings();
-		for (int i = 0; i < bindings.length; i++) {
-			final Binding binding = bindings[i];
-			if (binding.getType() == Binding.SYSTEM) {
-				String platform = binding.getPlatform();
-				int idx = (platform == null ? -1 : platform.indexOf(','));
-				assertEquals(binding.toString(), -1, idx);
-				if (addWS.equals(binding.getParameterizedCommand())) {
-					if (m18w.equals(binding.getTriggerSequence())) {
-						numOfMarkers++;
-						assertNull(m18w.format(), binding.getPlatform());
-					} else if (m28w.equals(binding.getTriggerSequence())) {
-						numOfMarkers++;
-						assertTrue(platform, Util.WS_CARBON.equals(platform)
-								|| Util.WS_COCOA.equals(platform)
-								|| Util.WS_GTK.equals(platform)
-								|| Util.WS_WIN32.equals(platform));
-					}
-				} else if (binding.getParameterizedCommand() == null
-						&& m18w.equals(binding.getTriggerSequence())) {
-					numOfMarkers++;
-					foundDeleteMarker = true;
-				}
-			}
-		}
-		assertEquals(3, numOfMarkers);
-		assertTrue("Unable to find delete marker", foundDeleteMarker);
-
-	}
-
-	public void testModifierWithPlatform() throws Exception {
-
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getAdapter(ICommandService.class);
-		IBindingService bindingService = (IBindingService) fWorkbench
-				.getAdapter(IBindingService.class);
-		ParameterizedCommand importCmd = new ParameterizedCommand(
-				commandService.getCommand("org.eclipse.ui.file.import"), null);
-		Binding[] bindings = bindingService.getBindings();
-		int numOfMarkers = 0;
-		for (int i = 0; i < bindings.length; i++) {
-			final Binding binding = bindings[i];
-			if (binding.getType() != Binding.SYSTEM)
-				continue;
-
-			if (importCmd.equals(binding.getParameterizedCommand())) {
-				// make sure the modifier is applied
-				assertEquals(KeySequence.getInstance("M2+8 I"), binding
-						.getTriggerSequence());
-				numOfMarkers++;
-			}
-		}
-
-		// only one binding, if the platform matches
-		assertEquals(numOfMarkers, 1);
-	}
-
-	public void testModifierNotApplied() throws Exception {
-
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getAdapter(ICommandService.class);
-		IBindingService bindingService = (IBindingService) fWorkbench
-				.getAdapter(IBindingService.class);
-		ParameterizedCommand exportCmd = new ParameterizedCommand(
-				commandService.getCommand("org.eclipse.ui.file.export"), null);
-		Binding[] bindings = bindingService.getBindings();
-		for (int i = 0; i < bindings.length; i++) {
-			final Binding binding = bindings[i];
-			if (binding.getType() != Binding.SYSTEM)
-				continue;
-
-			if (exportCmd.equals(binding.getParameterizedCommand())) {
-				// make sure the modifier is NOT applied
-				assertEquals(KeySequence.getInstance("M1+8 E"), binding
-						.getTriggerSequence());
-				break;
-			}
-		}
-	}
-	
-	public void testDifferentPlatform() throws Exception {
-
-		ICommandService commandService = (ICommandService) fWorkbench
-				.getAdapter(ICommandService.class);
-		IBindingService bindingService = (IBindingService) fWorkbench
-				.getAdapter(IBindingService.class);
-		ParameterizedCommand backCmd = new ParameterizedCommand(
-				commandService.getCommand("org.eclipse.ui.navigate.back"), null);
-		Binding[] bindings = bindingService.getBindings();
-		for (int i = 0; i < bindings.length; i++) {
-			final Binding binding = bindings[i];
-			if (binding.getType() != Binding.SYSTEM)
-				continue;
-
-			if (backCmd.equals(binding.getParameterizedCommand())) {
-				// make sure the modifier is NOT applied
-				// this will fail on Photon (but Paul thinks we'll never run the test suite on that platform :-)
-				assertEquals(KeySequence.getInstance("M1+8 Q"), binding
-						.getTriggerSequence());
-				// and the platform should be null
-				assertNull(binding.getPlatform());
-				break;
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		final IPreferenceStore store = WorkbenchPlugin.getDefault()
-				.getPreferenceStore();
-		store
-				.setValue(
-						"org.eclipse.ui.commands",
-						"<?xml version=\"1.0\" encoding=\"UTF-8\"?><org.eclipse.ui.commands><activeKeyConfiguration keyConfigurationId=\""
-								+ IBindingService.DEFAULT_DEFAULT_ACTIVE_SCHEME_ID
-								+ "\"/></org.eclipse.ui.commands>");
-		super.doTearDown();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug189167Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug189167Test.java
deleted file mode 100644
index 3fc9c96..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug189167Test.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.keys;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.bindings.Binding;
-
-/**
- * Tests Bug 189167
- * 
- * @since 3.4 
- */
-public class Bug189167Test extends TestCase {
-
-	private Binding createTestBinding() {
-		return new TestBinding("commandId", "schemeId", "contextId", "locale", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				"platform", 0, null); //$NON-NLS-1$
-	}
-
-	public void testBindingsEqual() {
-		Binding one = createTestBinding();
-		Binding two = createTestBinding();
-		assertEquals(one, two);
-	}
-
-	public void testHashCodeEquals(){
-		Binding one = createTestBinding();
-		Binding two = createTestBinding();
-		Binding b3  = new TestBinding("commandID", "schemeID", "contextID", "locale", "platform", 1, null);
-		assertEquals(one, two);
-		assertEquals(one.hashCode(), two.hashCode());
-		
-		assertFalse(one.equals(b3));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java
deleted file mode 100644
index 02a1a5c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36420Test.java
+++ /dev/null
@@ -1,117 +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.ui.tests.keys;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PluginVersionIdentifier;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.ui.commands.ICommandManager;
-import org.eclipse.ui.internal.IWorkbenchConstants;
-import org.eclipse.ui.keys.KeySequence;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests Bug 36420
- * 
- * @since 3.0
- */
-public class Bug36420Test extends UITestCase {
-
-    /**
-     * Constructor for Bug36420Test.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug36420Test(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that importing key preferences actually has an effect.
-     * 
-     * @throws CoreException
-     *             If the preferences can't be imported.
-     * @throws FileNotFoundException
-     *             If the temporary file is removed after it is created, but
-     *             before it is opened. (Wow)
-     * @throws IOException
-     *             If something fails during output of the preferences file.
-     */
-    public void testImportKeyPreferences() throws CoreException,
-            FileNotFoundException, IOException {
-        String commandId = "org.eclipse.ui.window.nextView"; //$NON-NLS-1$
-        String keySequenceText = "F S C K"; //$NON-NLS-1$
-
-        /*
-         * DO NOT USE PreferenceMutator for this section. This test case must
-         * use these exact steps, while PreferenceMutator might use something
-         * else in the future.
-         */
-        // Set up the preferences.
-        Properties preferences = new Properties();
-        String key = "org.eclipse.ui.workbench/org.eclipse.ui.commands"; //$NON-NLS-1$
-        String value = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<org.eclipse.ui.commands><activeKeyConfiguration keyConfigurationId=\"" + IWorkbenchConstants.DEFAULT_ACCELERATOR_CONFIGURATION_ID + "\"></activeKeyConfiguration><keyBinding	keyConfigurationId=\"org.eclipse.ui.defaultAcceleratorConfiguration\" commandId=\"" + commandId + "\" keySequence=\"" + keySequenceText + "\"/></org.eclipse.ui.commands>"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-        preferences.put(key, value);
-        
-        // This is the first pass way to "walk" through the list
-        // of bundles
-        String[] pluginIds = Platform.getExtensionRegistry().getNamespaces();
-		for (int i = 0; i < pluginIds.length; i++) {
-			preferences.put(pluginIds[i], new PluginVersionIdentifier(
-					(String) Platform.getBundle(pluginIds[i]).getHeaders().get(
-							org.osgi.framework.Constants.BUNDLE_VERSION)));
-		}
-
-        // Export the preferences.
-        File file = File.createTempFile("preferences", ".txt"); //$NON-NLS-1$//$NON-NLS-2$
-        file.deleteOnExit();
-        BufferedOutputStream bos = new BufferedOutputStream(
-                new FileOutputStream(file));
-        preferences.store(bos, null);
-        bos.close();
-
-        // Attempt to import the key binding.
-        Preferences.importPreferences(new Path(file.getAbsolutePath()));
-        /*
-         * END SECTION
-         */
-
-        // Check to see that the key binding for the given command matches.
-        ICommandManager manager = fWorkbench.getCommandSupport()
-                .getCommandManager();
-        List keyBindings = manager.getCommand(commandId)
-                .getKeySequenceBindings();
-        Iterator keyBindingItr = keyBindings.iterator();
-        boolean found = false;
-        while (keyBindingItr.hasNext()) {
-            KeySequence keyBinding = (KeySequence) keyBindingItr.next();
-            String currentText = keyBinding.toString();
-            if (keySequenceText.equals(currentText)) {
-                found = true;
-            }
-        }
-
-        assertTrue("Key binding not imported.", found); //$NON-NLS-1$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36537Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36537Test.java
deleted file mode 100644
index c668035..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug36537Test.java
+++ /dev/null
@@ -1,125 +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.ui.tests.keys;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests Bug 36537
- * 
- * @since 3.0
- */
-public class Bug36537Test extends UITestCase {
-
-	/**
-	 * Constructor for Bug36537Test.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug36537Test(String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests that there are no redundant key bindings defined in the
-	 * application.
-	 */
-	public void testForRedundantKeySequenceBindings() {
-		final IWorkbenchWindow window = openTestWindow();
-		final IWorkbench workbench = window.getWorkbench();
-		final IBindingService bindingService = (IBindingService) workbench
-				.getAdapter(IBindingService.class);
-		final Binding[] bindings = bindingService.getBindings();
-		final int bindingCount = bindings.length;
-		Map keySequenceBindingsByKeySequence = new HashMap();
-
-		for (int i = 0; i < bindingCount; i++) {
-			// Retrieve the key binding.
-			final Binding binding = bindings[i];
-
-			// Find the point the bindings with matching key sequences.
-			TriggerSequence triggerSequence = binding.getTriggerSequence();
-			List matches = (List) keySequenceBindingsByKeySequence
-					.get(triggerSequence);
-			if (matches == null) {
-				matches = new ArrayList();
-				keySequenceBindingsByKeySequence.put(triggerSequence, matches);
-			}
-
-			// Check that we don't have any redundancy or other wackiness.
-			Iterator matchItr = matches.iterator();
-			while (matchItr.hasNext()) {
-				final Binding matchedBinding = (Binding) matchItr.next();
-				ParameterizedCommand commandA = binding
-						.getParameterizedCommand();
-				ParameterizedCommand commandB = matchedBinding
-						.getParameterizedCommand();
-				String contextA = binding.getContextId();
-				String contextB = matchedBinding.getContextId();
-				String keyConfA = binding.getSchemeId();
-				String keyConfB = matchedBinding.getSchemeId();
-				String localeA = binding.getLocale();
-				String localeB = matchedBinding.getLocale();
-				String platformA = binding.getPlatform();
-				String platformB = matchedBinding.getPlatform();
-
-				boolean same = true;
-				int nullMatches = 0;
-				same &= (commandA == null) ? (commandB == null) : (commandA
-						.equals(commandB));
-				same &= (contextA == null) || (contextB == null)
-						|| (contextA.equals(contextB));
-				if (((contextA == null) || (contextB == null))
-						&& (contextA != contextB)) {
-					nullMatches++;
-				}
-				same &= (keyConfA == null) || (keyConfB == null)
-						|| (keyConfA.equals(keyConfB));
-				if (((keyConfA == null) || (keyConfB == null))
-						&& (keyConfA != keyConfB)) {
-					nullMatches++;
-				}
-				same &= (localeA == null) || (localeB == null)
-						|| (localeA.equals(localeB));
-				if (((localeA == null) || (localeB == null))
-						&& (localeA != localeB)) {
-					nullMatches++;
-				}
-				same &= (platformA == null) || (platformB == null)
-						|| (platformA.equals(platformB));
-				if (((platformA == null) || (platformB == null))
-						&& (platformA != platformB)) {
-					nullMatches++;
-				}
-
-				assertFalse(
-						"Redundant key bindings: " + binding + ", " + matchedBinding, same && (nullMatches < 1)); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			// Add the key binding.
-			matches.add(binding);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug40023Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug40023Test.java
deleted file mode 100644
index 89f2462..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug40023Test.java
+++ /dev/null
@@ -1,114 +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.ui.tests.keys;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.keys.BindingService;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests Bug 40023
- * 
- * @since 3.0
- */
-public class Bug40023Test extends UITestCase {
-
-    /**
-     * Retrieves a menu item matching or starting with the given name from an
-     * array of menu items.
-     * 
-     * @param menuItems
-     *            The array of menu items to search; must not be <code>null</code>
-     * @param text
-     *            The text to look for; may be <code>null</code>.
-     * @return The menu item, if any is found; <code>null</code> otherwise.
-     */
-    public static MenuItem getMenuItem(MenuItem[] menuItems, String text) {
-        for (int i = 0; i < menuItems.length; i++) {
-            if (menuItems[i].getText().startsWith(text)) {
-                return menuItems[i];
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Constructor for Bug40023Test.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug40023Test(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that check box items on the menu are checked when activated from
-     * the keyboard.
-     * 
-     * @throws CommandException
-     *             If execution of the handler fails.
-     * @throws CoreException
-     *             If the exported preferences file is invalid for some reason.
-     * @throws FileNotFoundException
-     *             If the temporary file is removed before it can be read in.
-     *             (Wow)
-     * @throws IOException
-     *             If the creation of or the writing to the temporary file
-     *             fails for some reason.
-     * @throws ParseException
-     *             If the key binding cannot be parsed.
-     */
-    public void testCheckOnCheckbox() throws CoreException, CommandException,
-            FileNotFoundException, IOException, ParseException {
-        // Open a window to run the test.
-        IWorkbenchWindow window = openTestWindow();
-        Workbench workbench = (Workbench) window.getWorkbench();
-
-        // Set up a key binding for "Lock Toolbars".
-        String commandId = "org.eclipse.ui.window.lockToolBar"; //$NON-NLS-1$
-        String keySequenceText = "CTRL+ALT+L"; //$NON-NLS-1$
-        PreferenceMutator.setKeyBinding(commandId, keySequenceText);
-
-        // Press "CTRL+ALT+L" to lock the toolbars.
-        List keyStrokes = new ArrayList();
-        keyStrokes.add(KeyStroke.getInstance(keySequenceText));
-        Event event = new Event();
-		BindingService support = (BindingService) workbench
-				.getAdapter(IBindingService.class);
-        support.getKeyboard().press(keyStrokes, event);
-
-        // Check that the "Lock Toolbars" menu item is now checked.
-        Shell shell = window.getShell();
-        MenuItem windowMenu = getMenuItem(shell.getMenuBar().getItems(),
-                "&Window"); //$NON-NLS-1$
-        MenuItem lockToolBarsMenuItem = getMenuItem(windowMenu.getMenu()
-                .getItems(), "Lock the &Toolbars"); //$NON-NLS-1$
-        assertTrue("Checkbox menu item is not checked.", lockToolBarsMenuItem //$NON-NLS-1$
-                .getSelection());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42024Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42024Test.java
deleted file mode 100644
index d335d19..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42024Test.java
+++ /dev/null
@@ -1,142 +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.ui.tests.keys;
-
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeySequenceText;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests Bug 42024
- * 
- * @since 3.0
- */
-public class Bug42024Test extends UITestCase {
-
-    /** The shell on which the <code>KeySequenceText</code> is placed. */
-    private Shell shell = null;
-
-    /** The instance of <code>KeySequenceText</code> we should tinker with. */
-    private KeySequenceText text = null;
-
-    /**
-     * Constructor for Bug42024Test.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug42024Test(String name) {
-        super(name);
-    }
-
-    /*
-     * @see TestCase#setUp()
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-
-        // Create a window with a KeySequenceText
-        Display display = Display.getCurrent();
-        shell = new Shell(display);
-        shell.setLayout(new RowLayout());
-        text = new KeySequenceText(new Text(shell, SWT.BORDER));
-
-        // Open it
-        shell.pack();
-        shell.open();
-    }
-
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-
-        // Close and destroy the window
-        shell.close();
-        shell.dispose();
-
-        // Release the memory.
-        shell = null;
-        text = null;
-    }
-
-    /**
-     * Tests that the limiting facility on KeySequenceText allows an arbitrary
-     * number of key strokes, when the the limit is set to "infinite". In this
-     * case, we will use a six stroke sequence.
-     * 
-     * @throws ParseException
-     *             If the test sequence cannot be parsed.
-     */
-    public void testInfiniteStrokes() throws ParseException {
-        String keySequenceText = "A B C D E F"; //$NON-NLS-1$
-        KeySequence keySequence = KeySequence.getInstance(keySequenceText);
-        text.setKeyStrokeLimit(KeySequenceText.INFINITE);
-        text.setKeySequence(keySequence);
-        assertEquals(
-                "Infinite limit but sequence changed.", keySequence, text.getKeySequence()); //$NON-NLS-1$
-    }
-
-    /**
-     * Tests that inserting a key sequence of matching length causes no change,
-     * but inserted a key sequence of one greater does cause a change --
-     * specifically truncation.
-     * 
-     * @throws ParseException
-     *             If the test sequences cannot be parsed.
-     */
-    public void testTruncation() throws ParseException {
-        final int length = 4;
-        text.setKeyStrokeLimit(length);
-
-        // Test matching length.
-        String matchingKeySequenceText = "1 2 3 4"; //$NON-NLS-1$
-        KeySequence matchingKeySequence = KeySequence
-                .getInstance(matchingKeySequenceText);
-        text.setKeySequence(matchingKeySequence);
-        assertEquals(
-                "Limit of four change four stroke sequence.", matchingKeySequence, text.getKeySequence()); //$NON-NLS-1$
-
-        // Test one greater than length.
-        String longerKeySequenceText = "1 2 3 4 5"; //$NON-NLS-1$
-        KeySequence longerKeySequence = KeySequence
-                .getInstance(longerKeySequenceText);
-        text.setKeySequence(longerKeySequence);
-        assertEquals(
-                "Limit of four did not truncate to four.", length, text.getKeySequence().getKeyStrokes().length); //$NON-NLS-1$
-    }
-
-    /**
-     * Tests that a zero-length stroke can be inserted into the KeySequenceText --
-     * regardless of whether the stroke limit is some positive integer or
-     * infinite.
-     */
-    public void testZeroStroke() {
-        KeySequence zeroStrokeSequence = KeySequence.getInstance();
-
-        // Test with a limit of four.
-        text.setKeyStrokeLimit(4);
-        text.setKeySequence(zeroStrokeSequence);
-        assertEquals(
-                "Limit of four changed zero stroke sequence.", zeroStrokeSequence, text.getKeySequence()); //$NON-NLS-1$
-
-        // Test with an infinite limit.
-        text.setKeyStrokeLimit(KeySequenceText.INFINITE);
-        text.setKeySequence(zeroStrokeSequence);
-        assertEquals(
-                "Infinite limit changed zero stroke sequence.", zeroStrokeSequence, text.getKeySequence()); //$NON-NLS-1$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42035Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42035Test.java
deleted file mode 100644
index 628719c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42035Test.java
+++ /dev/null
@@ -1,185 +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.ui.tests.keys;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.keys.KeyStroke;
-import org.eclipse.ui.keys.ParseException;
-import org.eclipse.ui.keys.SWTKeySupport;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test for Bug 42035.
- * 
- * @since 3.0
- */
-public class Bug42035Test extends UITestCase {
-
-    /**
-     * Tests the given key event to see if generates the three key strokes
-     * represented by the strings.
-     * 
-     * @param keyEvent
-     *            The key event to generate key strokes from; must not be
-     *            <code>null</code>
-     * @param firstMatch
-     *            The text format of the first match; must not be <code>null</code>.
-     * @param secondMatch
-     *            The text format of the second match; must not be <code>null</code>.
-     * @param thirdMatch
-     *            The text format of the third match; must not be <code>null</code>.
-     * @throws ParseException
-     *             If anyone of the text formats provided cannot be parsed.
-     */
-    private static void testKeyEvent(Event keyEvent, String firstMatch,
-            String secondMatch, String thirdMatch) throws ParseException {
-        KeyStroke desiredKeyStroke = null;
-        KeyStroke actualKeyStroke = null;
-
-        // Test the first-level match.
-        desiredKeyStroke = KeyStroke.getInstance(firstMatch); //$NON-NLS-1$
-        actualKeyStroke = SWTKeySupport
-                .convertAcceleratorToKeyStroke(SWTKeySupport
-                        .convertEventToUnmodifiedAccelerator(keyEvent));
-        assertEquals(
-                "Unmodified character with all modifiers doesn't match.", desiredKeyStroke, actualKeyStroke); //$NON-NLS-1$
-
-        // Test the second-level match.
-        desiredKeyStroke = KeyStroke.getInstance(secondMatch); //$NON-NLS-1$
-        actualKeyStroke = SWTKeySupport
-                .convertAcceleratorToKeyStroke(SWTKeySupport
-                        .convertEventToUnshiftedModifiedAccelerator(keyEvent));
-        assertEquals(
-                "Modified character with no shift doesn't match.", desiredKeyStroke, actualKeyStroke); //$NON-NLS-1$
-
-        // Test the third-level match.
-        desiredKeyStroke = KeyStroke.getInstance(thirdMatch); //$NON-NLS-1$
-        actualKeyStroke = SWTKeySupport
-                .convertAcceleratorToKeyStroke(SWTKeySupport
-                        .convertEventToModifiedAccelerator(keyEvent));
-        assertEquals(
-                "Modified character with all modifiers doesn't match.", desiredKeyStroke, actualKeyStroke); //$NON-NLS-1$
-    }
-
-    /**
-     * Constructs a new instance of this test case.
-     * 
-     * @param testName
-     *            The name of the test
-     */
-    public Bug42035Test(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that "Ctrl+" generates "Ctrl+", "Ctrl+" and "Ctrl+".
-     * 
-     * @throws ParseException
-     *             If "CTRL+" cannot be processed.
-     */
-    public void testCtrl() throws ParseException {
-        Event keyEvent = new Event();
-        keyEvent.keyCode = 0x40000;
-        keyEvent.character = 0x00;
-        keyEvent.stateMask = SWT.NONE;
-
-        KeyStroke desiredKeyStroke = KeyStroke.getInstance("CTRL+"); //$NON-NLS-1$
-        KeyStroke actualKeyStroke = SWTKeySupport
-                .convertAcceleratorToKeyStroke(SWTKeySupport
-                        .convertEventToUnmodifiedAccelerator(keyEvent));
-        assertEquals(
-                "Unmodified character with all modifiers doesn't match", desiredKeyStroke, actualKeyStroke); //$NON-NLS-1$
-    }
-
-    /**
-     * Tests that "Ctrl+Enter" generates "Ctrl+Enter", "Ctrl+Enter" and
-     * "Ctrl+Enter".
-     * 
-     * @throws ParseException
-     *             If "CTRL+ENTER" cannot be processed.
-     */
-    public void testCtrlEnter() throws ParseException {
-        Event keyEvent = new Event();
-        keyEvent.keyCode = 0x0D;
-        keyEvent.character = 0x0D;
-        keyEvent.stateMask = SWT.CTRL;
-
-        testKeyEvent(keyEvent, "CTRL+CR", "CTRL+CR", "CTRL+CR"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-    }
-
-    /**
-     * Tests that "Ctrl+J" generates "Ctrl+M", "Ctrl+M" and "Ctrl+M".
-     * 
-     * @throws ParseException
-     *             If "CTRL+M" cannot be processed.
-     */
-    public void testCtrlM() throws ParseException {
-        Event keyEvent = new Event();
-        keyEvent.keyCode = 0x6D;
-        keyEvent.character = 0x0D;
-        keyEvent.stateMask = SWT.CTRL;
-
-        testKeyEvent(keyEvent, "CTRL+M", "CTRL+M", "CTRL+M"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-    }
-
-    /**
-     * Tests that "Ctrl+Shift+2" generates "Ctrl+Shift+2", "Ctrl+@" and
-     * "Ctrl+Shift+@". This simulates a U.S. keyboard layout.
-     * 
-     * @throws ParseException
-     *             If "CTRL+SHIFT+2", "CTRL+@" or "CTRL+SHIFT+@" cannot be
-     *             processed.
-     */
-    public void testCtrlShift2() throws ParseException {
-        Event keyEvent = new Event();
-        keyEvent.keyCode = '2';
-        keyEvent.character = 0x00;
-        keyEvent.stateMask = SWT.CTRL | SWT.SHIFT;
-
-        testKeyEvent(keyEvent, "CTRL+SHIFT+2", "CTRL+@", "CTRL+SHIFT+@"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-    }
-
-    /**
-     * Tests that "Ctrl+Shift+7" generates "Ctrl+Shift+7", "Ctrl+/" and
-     * "Ctrl+Shift+/". This simulates a Swiss-German keyboard layout.
-     * 
-     * @throws ParseException
-     *             If "CTRL+SHIFT+7", "CTRL+/" or "CTRL+SHIFT+/" cannot be
-     *             processed.
-     */
-    public void testCtrlShift7_SwissGerman() throws ParseException {
-        Event keyEvent = new Event();
-        keyEvent.keyCode = '7';
-        keyEvent.character = '/';
-        keyEvent.stateMask = SWT.CTRL | SWT.SHIFT;
-
-        testKeyEvent(keyEvent, "CTRL+SHIFT+7", "CTRL+/", "CTRL+SHIFT+/"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-    }
-
-    /**
-     * Tests that "Ctrl+Shift+7" generates "Ctrl+Shift+7", "Ctrl+&" and
-     * "Ctrl+Shift+&". This simulates a US keyboard layout.
-     * 
-     * @throws ParseException
-     *             If "CTRL+SHIFT+7", "CTRL+&" or "CTRL+SHIFT+&" cannot be
-     *             processed.
-     */
-    public void testCtrlShift7_US() throws ParseException {
-        Event keyEvent = new Event();
-        keyEvent.keyCode = '7';
-        keyEvent.character = '&';
-        keyEvent.stateMask = SWT.CTRL | SWT.SHIFT;
-
-        testKeyEvent(keyEvent, "CTRL+SHIFT+7", "CTRL+&", "CTRL+SHIFT+&"); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42627Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42627Test.java
deleted file mode 100644
index 4196065..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug42627Test.java
+++ /dev/null
@@ -1,83 +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.ui.tests.keys;
-
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests Bug 42627
- * 
- * @since 3.0
- */
-public class Bug42627Test extends UITestCase {
-
-    // TODO See if this is needed for anything.
-    //	private class DummyView extends ViewPart {
-    //		public void createPartControl(Composite composite) {
-    //			// Do nothing
-    //		}
-    //		
-    //		public void setFocus() {
-    //			// Do nothing
-    //		}
-    //	}
-
-    /**
-     * A dummy implementation of an <code>Action</code>.
-     * 
-     * @since 3.0
-     */
-    //	private class DummyAction extends Action {
-    //		// Nothing to implement
-    //	}
-    //	private boolean logged;
-    /**
-     * Constructor for Bug42627Test.
-     * 
-     * @param name
-     *           The name of the test
-     */
-    public Bug42627Test(String name) {
-        super(name);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        //		logged = false;
-    }
-
-    /**
-     * Tests that actions with no defined command ID are logged.
-     * 
-     * @throws CoreException
-     *            If something fails when trying to open a new project.
-     */
-    public void testLogUndefined() /*throws CoreException*/{
-        // TODO No log is being generated.  What was Chris' fix?
-        //		IWorkbenchWindow window = openTestWindow();
-        //		ResourcesPlugin.getPlugin().getLog().addLogListener(new ILogListener() {
-        //			public void logging(IStatus status, String string) {
-        //				logged = true;
-        //			}
-        //		});
-        //		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        //		IProject testProject = workspace.getRoot().getProject("Bug42627Project"); //$NON-NLS-1$
-        //		testProject.create(null);
-        //		testProject.open(null);
-        //		AbstractTextEditor editor = (AbstractTextEditor) window.getActivePage().openEditor(testProject.getFile(".project")); //$NON-NLS-1$
-        //		editor.selectAndReveal(0, 1);
-        //		EditorSite site = (EditorSite) editor.getSite();
-        //		site.getActionBars().setGlobalActionHandler("Bogus action name that hopefully will not exist", new DummyAction()); //$NON-NLS-1$
-        //		window.getShell().setFocus();
-        //		assertTrue("Nothing has been logged.", logged); //$NON-NLS-1$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43168Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43168Test.java
deleted file mode 100644
index aa496a2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43168Test.java
+++ /dev/null
@@ -1,60 +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.ui.tests.keys;
-
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.bindings.keys.KeySequenceText;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests Bug 43168
- * 
- * @since 3.0
- */
-public class Bug43168Test extends UITestCase {
-
-    /**
-     * Constructor for Bug43168Test.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug43168Test(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that a <code>StackOverflowError</code> does not occur when
-     * trying to set the key sequence in a key sequence entry widget.
-     * 
-     * @throws ParseException
-     *             If "CTRL+" is not recognized as a key sequence.
-     */
-    public void testStackOverflow() throws ParseException {
-        Display display = Display.getCurrent();
-        Shell shell = new Shell(display);
-        shell.setLayout(new RowLayout());
-        Text text = new Text(shell, SWT.BORDER);
-        KeySequenceText keySequenceText = new KeySequenceText(text);
-
-        shell.pack();
-        shell.open();
-        keySequenceText.setKeySequence(KeySequence.getInstance("CTRL+")); //$NON-NLS-1$
-        shell.close();
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java
deleted file mode 100644
index 28707a8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43321Test.java
+++ /dev/null
@@ -1,95 +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.ui.tests.keys;
-
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.bindings.keys.KeyStroke;
-import org.eclipse.jface.bindings.keys.ParseException;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.keys.BindingService;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.texteditor.AbstractTextEditor;
-
-/**
- * Tests Bug 43321
- * 
- * @since 3.0
- */
-public class Bug43321Test extends UITestCase {
-
-	/**
-	 * Constructor for Bug43321Test.
-	 * 
-	 * @param name
-	 *            The name of the test
-	 */
-	public Bug43321Test(String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests that non-check box items on the menu are not checked when activated
-	 * from the keyboard.
-	 * 
-	 * @throws CommandException
-	 *             If execution of the handler fails.
-	 * @throws CoreException
-	 *             If the test project cannot be created and opened.
-	 * @throws ParseException
-	 *             If "CTRL+C" isn't a valid key stroke.
-	 */
-	public void testNoCheckOnNonCheckbox() throws CommandException,
-			CoreException, ParseException {
-		IWorkbenchWindow window = openTestWindow();
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject testProject = workspace.getRoot().getProject("TestProject"); //$NON-NLS-1$
-		testProject.create(null);
-		testProject.open(null);
-		IFile textFile = testProject.getFile("A.txt"); //$NON-NLS-1$
-		String contents = "A blurb"; //$NON-NLS-1$
-		ByteArrayInputStream inputStream = new ByteArrayInputStream(contents
-				.getBytes());
-		textFile.create(inputStream, true, null);
-		AbstractTextEditor editor = (AbstractTextEditor) IDE.openEditor(window
-				.getActivePage(), textFile, true);
-		editor.selectAndReveal(0, 1);
-
-		// Press "Ctrl+C" to perform a copy.
-		List keyStrokes = new ArrayList();
-		keyStrokes.add(KeyStroke.getInstance("CTRL+C")); //$NON-NLS-1$
-		Event event = new Event();
-		Workbench workbench = ((Workbench) window.getWorkbench());
-		BindingService support = (BindingService) workbench
-				.getAdapter(IBindingService.class);
-		support.getKeyboard().press(keyStrokes, event);
-
-		// Get the menu item we've just selected.
-		IAction action = editor.getEditorSite().getActionBars()
-				.getGlobalActionHandler(ActionFactory.COPY.getId());
-		assertTrue("Non-checkbox menu item is checked.", !action.isChecked()); //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43538Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43538Test.java
deleted file mode 100644
index 5fec4f6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43538Test.java
+++ /dev/null
@@ -1,69 +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.ui.tests.keys;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.tests.harness.util.AutomationUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test for Bug 43538.
- * 
- * @since 3.0
- */
-public class Bug43538Test extends UITestCase {
-
-    /**
-     * Constructs a new instance of this test case.
-     * 
-     * @param testName
-     *            The name of the test
-     */
-    public Bug43538Test(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that if "Ctrl+Space" is pressed only one key down event with the
-     * "CTRL" mask is received.
-     */
-    public void testCtrlSpace() {
-        // Set up a working environment.
-        Display display = Display.getCurrent();
-        Listener listener = new Listener() {
-            int count = 0;
-
-            public void handleEvent(Event event) {
-                if (event.stateMask == SWT.CTRL) {
-                    assertEquals(
-                            "Multiple key down events for 'Ctrl+Space'", 0, count++); //$NON-NLS-1$
-                }
-            }
-        };
-        display.addFilter(SWT.KeyDown, listener);
-
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyDown, SWT.CONTROL);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyDown, Action.findKeyCode("SPACE")); //$NON-NLS-1$
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyUp, Action.findKeyCode("SPACE")); //$NON-NLS-1$
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyUp, SWT.CONTROL);
-        
-        while (display.readAndDispatch())
-            ;
-
-        // Clean up the working environment.
-        display.removeFilter(SWT.KeyDown, listener);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java
deleted file mode 100644
index 362bfe7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43597Test.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.keys;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests Bug 43597
- * 
- * @since 3.0
- */
-public class Bug43597Test extends UITestCase {
-
-    private Font textFont;
-
-	/**
-     * Constructor for Bug43597Test.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug43597Test(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that setting the text on a text widget to an empty string does not
-     * reset the font. This was a problem only on carbon.
-     */
-    public void testFontReset() {
-        String metaCharacter = "\u2325X"; //$NON-NLS-1$
-
-        // Set up a working environment.
-        Display display = Display.getCurrent();
-        Shell shell = new Shell(display);
-        GridLayout gridLayout = new GridLayout();
-        shell.setLayout(gridLayout);
-        Text text = new Text(shell, SWT.LEFT);
-        textFont = new Font(text.getDisplay(),
-                "Lucida Grande", 13, SWT.NORMAL);
-		text.setFont(textFont); //$NON-NLS-1$
-        text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        shell.pack();
-        shell.open();
-
-        // Set the text once, and get the font.
-        text.setText(metaCharacter); //$NON-NLS-1$
-        Font fontBefore = text.getFont();
-
-        // Set the font again, and get the font afterward.
-        text.setText(""); //$NON-NLS-1$
-        text.setText(metaCharacter);
-        Font fontAfter = text.getFont();
-
-        // Test.
-		assertEquals("Clearing text resets font.", fontBefore, fontAfter); //$NON-NLS-1$
-
-        // Clean up after myself.
-        shell.close();
-        shell.dispose();
-    }
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-     */
-	protected void doTearDown() throws Exception {
-		if (textFont != null) {
-			textFont.dispose();
-		}
-		super.doTearDown();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43610Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43610Test.java
deleted file mode 100644
index 50e9989..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43610Test.java
+++ /dev/null
@@ -1,68 +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.ui.tests.keys;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.tests.harness.util.AutomationUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test for Bug 43610.
- * 
- * @since 3.0
- */
-public class Bug43610Test extends UITestCase {
-
-    /**
-     * Constructs a new instance of this test case.
-     * 
-     * @param testName
-     *            The name of the test
-     */
-    public Bug43610Test(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that if "Shift+Alt+" is pressed, then the key code should
-     * represent the "Alt+" key press.
-     */
-    public void testShiftAlt() {
-        // Set up a working environment.
-        Display display = Display.getCurrent();
-        Listener listener = new Listener() {
-            public void handleEvent(Event event) {
-                if (event.stateMask == SWT.SHIFT) {
-                    assertEquals(
-                            "Incorrect key code for 'Shift+Alt+'", SWT.ALT, event.keyCode); //$NON-NLS-1$
-                }
-            }
-        };
-        display.addFilter(SWT.KeyDown, listener);
-        
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyDown, SWT.SHIFT);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyDown, SWT.ALT);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyUp, SWT.ALT);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyUp, SWT.SHIFT);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyDown, SWT.ESC);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyUp, SWT.ESC);
-	
-        while (display.readAndDispatch())
-            ;
-
-        // Clean up the working environment.
-        display.removeFilter(SWT.KeyDown, listener);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java
deleted file mode 100644
index eca8e8a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug43800Test.java
+++ /dev/null
@@ -1,55 +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.ui.tests.keys;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.keys.SWTKeySupport;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test for Bug 43800.
- * 
- * @since 3.0
- */
-public class Bug43800Test extends UITestCase {
-
-    /**
-     * Constructs a new instance of this test case.
-     * 
-     * @param testName
-     *           The name of the test
-     */
-    public Bug43800Test(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that key pressed with key codes greater than 16 bits are correctly
-     * converted into accelerator values.
-     */
-    public void testTruncatingCast() {
-        /*
-         * Make an event representing a key stroke with a key code greater than
-         * 16 bits.
-         */
-        Event event = new Event();
-        event.keyCode = SWT.ARROW_LEFT;
-        event.character = 0x00;
-        event.stateMask = 0x00;
-
-        // Convert the event, and test the resulting accelerator value.
-        int accelerator = SWTKeySupport
-                .convertEventToUnmodifiedAccelerator(event);
-        assertEquals("Arrow_Left key truncated.", SWT.ARROW_LEFT, accelerator); //$NON-NLS-1$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug44460Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug44460Test.java
deleted file mode 100644
index 978c645..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug44460Test.java
+++ /dev/null
@@ -1,117 +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.ui.tests.keys;
-
-import java.io.ByteArrayInputStream;
-import java.util.List;
-
-import org.eclipse.core.commands.common.CommandException;
-import org.eclipse.core.internal.events.BuildCommand;
-import org.eclipse.core.resources.ICommand;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveRegistry;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.Workbench;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.keys.BindingService;
-import org.eclipse.ui.internal.keys.WorkbenchKeyboard;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test for Bug 44460.
- * 
- * @since 3.0
- */
-public class Bug44460Test extends UITestCase {
-
-	/**
-	 * Constructs a new instance of this test case.
-	 * 
-	 * @param testName
-	 *            The name of the test
-	 */
-	public Bug44460Test(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test that pressing "Ctrl+Shift+T" in the Team Synchronizing perspective
-	 * does not match anything.
-	 * 
-	 * @throws CommandException
-	 *             If execution of the handler fails.
-	 * @throws CoreException
-	 *             If the project cannot be created or opened.
-	 */
-	public void testCtrlShiftT() throws CommandException, CoreException {
-		// Open a new test window.
-		IWorkbenchWindow window = openTestWindow();
-
-		// Open a new Java project, with a new class.
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject testProject = workspace.getRoot().getProject(
-				"Bug 44460 Project"); //$NON-NLS-1$
-		testProject.create(null);
-		testProject.open(null);
-		IProjectDescription projectDescription = testProject.getDescription();
-		String[] natureIds = { "org.eclipse.jdt.core.javanature" }; //$NON-NLS-1$
-		projectDescription.setNatureIds(natureIds);
-		ICommand buildCommand = new BuildCommand();
-		buildCommand.setBuilderName("org.eclipse.jdt.core.javabuilder"); //$NON-NLS-1$
-		projectDescription.setBuildSpec(new ICommand[] { buildCommand });
-		testProject.setDescription(projectDescription, null);
-		IFile javaFile = testProject.getFile("A.java"); //$NON-NLS-1$
-		String classContents = "public class Main { public static main(String[] args) { ; } }"; //$NON-NLS-1$
-		ByteArrayInputStream inputStream = new ByteArrayInputStream(
-				classContents.getBytes());
-		javaFile.create(inputStream, true, null);
-		IDE.openEditor(window.getActivePage(), javaFile, true);
-
-		// Switch to the team synchronizing perspective.
-		IPerspectiveRegistry registry = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry();
-		IPerspectiveDescriptor perspectiveDescriptor = registry
-				.findPerspectiveWithId("org.eclipse.team.ui.TeamSynchronizingPerspective"); //$NON-NLS-1$
-		WorkbenchPage page = (WorkbenchPage) window.getActivePage();
-		page.setPerspective(perspectiveDescriptor);
-
-		// Press "Ctrl+Shift+T".
-		Event ctrlShiftT = new Event();
-		ctrlShiftT.stateMask = SWT.SHIFT | SWT.CTRL;
-		ctrlShiftT.character = 'T';
-		ctrlShiftT.keyCode = 't';
-		List keyStrokes = WorkbenchKeyboard
-				.generatePossibleKeyStrokes(ctrlShiftT);
-		Workbench workbench = (Workbench) window.getWorkbench();
-		BindingService support = (BindingService) workbench
-				.getAdapter(IBindingService.class);
-		support.getKeyboard().press(keyStrokes, null);
-
-		// Test that only two child shells are open (default).
-		Shell windowShell = window.getShell();
-		Shell[] childShells = windowShell.getShells();
-		assertTrue(
-				"Type hierarchy dialog opened inappropriately on 'Ctrl+Shift+T'", (childShells.length == 2)); //$NON-NLS-1$
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug53489Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug53489Test.java
deleted file mode 100644
index 5bb94ca..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/Bug53489Test.java
+++ /dev/null
@@ -1,102 +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.ui.tests.keys;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.LineNumberReader;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.CommandException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.tests.harness.util.AutomationUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests that pressing delete in a styled text widget does not cause a double
- * delete situation.
- * 
- * @since 3.0
- */
-public class Bug53489Test extends UITestCase {
-
-    /**
-     * Constructor for Bug53489Test.
-     * 
-     * @param name
-     *            The name of the test
-     */
-    public Bug53489Test(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that pressing delete in a styled text widget (in a running
-     * Eclipse) does not cause a double delete.
-     * 
-     * @throws AWTException
-     *             If the creation of robot
-     * @throws CommandException
-     *             If execution of the handler fails.
-     * @throws CoreException
-     *             If the test project cannot be created and opened.
-     * @throws IOException
-     *             If the file cannot be read.
-     */
-    public void testDoubleDelete() throws CommandException,
-            CoreException, IOException {
-        IWorkbenchWindow window = openTestWindow();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IProject testProject = workspace.getRoot().getProject(
-                "DoubleDeleteestProject"); //$NON-NLS-1$
-        testProject.create(null);
-        testProject.open(null);
-        IFile textFile = testProject.getFile("A.txt"); //$NON-NLS-1$
-        String originalContents = "A blurb"; //$NON-NLS-1$
-        ByteArrayInputStream inputStream = new ByteArrayInputStream(
-                originalContents.getBytes());
-        textFile.create(inputStream, true, null);
-        IDE.openEditor(window.getActivePage(), textFile,
-                true);
-
-        // Allow the editor to finish opening.
-        Display display = Display.getCurrent();
-        while (display.readAndDispatch())
-            ;
-
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyDown, SWT.DEL);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyUp, SWT.DEL);
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyDown, SWT.CTRL);
-        AutomationUtil.performCharacterEvent(display, SWT.KeyDown,'S');
-        AutomationUtil.performCharacterEvent(display, SWT.KeyUp,'S');
-        AutomationUtil.performKeyCodeEvent(display, SWT.KeyUp, SWT.CTRL);
-      
-        // Spin the event loop.
-        while (display.readAndDispatch())
-            ;
-
-        // Test the text is only one character different.
-        LineNumberReader reader = new LineNumberReader(new InputStreamReader(
-                textFile.getContents()));
-        String currentContents = reader.readLine();
-        assertTrue("'DEL' deleted more than one key.", (originalContents //$NON-NLS-1$
-                .length() == (currentContents.length() + 1)));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysCsvTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysCsvTest.java
deleted file mode 100644
index 8ffdbfb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysCsvTest.java
+++ /dev/null
@@ -1,37 +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.tests.keys;
-
-import org.eclipse.ui.internal.util.Util;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.3
- *
- */
-public class KeysCsvTest extends TestCase {
-
-	public void testReplace() throws Exception {
-		final String src = "Test the \"replaceAll\"";
-		final String dest = "Test the \"\"replaceAll\"\"";
-		String val = Util.replaceAll(src, "\"", "\"\"");
-		assertEquals(dest, val);
-	}
-	
-	public void testReplaceFirst() throws Exception {
-		final String src = "\"Hello world!";
-		final String dest = "\"\"Hello world!";
-		String val = Util.replaceAll(src, "\"", "\"\"");
-		assertEquals(dest, val);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysPreferenceModelTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysPreferenceModelTest.java
deleted file mode 100644
index 58b451c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysPreferenceModelTest.java
+++ /dev/null
@@ -1,943 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.keys;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.keys.KeyBinding;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.internal.keys.model.BindingElement;
-import org.eclipse.ui.internal.keys.model.BindingModel;
-import org.eclipse.ui.internal.keys.model.CommonModel;
-import org.eclipse.ui.internal.keys.model.ConflictModel;
-import org.eclipse.ui.internal.keys.model.ContextElement;
-import org.eclipse.ui.internal.keys.model.ContextModel;
-import org.eclipse.ui.internal.keys.model.KeyController;
-import org.eclipse.ui.internal.keys.model.ModelElement;
-import org.eclipse.ui.internal.keys.model.SchemeElement;
-import org.eclipse.ui.internal.keys.model.SchemeModel;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.4
- * 
- */
-public class KeysPreferenceModelTest extends UITestCase {
-
-	private static final String ID_QUICK_SWITCH = "org.eclipse.ui.window.openEditorDropDown";
-	private static final String SCHEME_EMACS_ID = "org.eclipse.ui.emacsAcceleratorConfiguration";
-	private static final String ID_QUICK_ACCESS = "org.eclipse.ui.window.quickAccess";
-	private static final String ID_ACTIVATE_EDITOR = "org.eclipse.ui.window.activateEditor";
-	private static final String ID_ABOUT = "org.eclipse.ui.help.aboutAction";
-	private static final String ID_CMD_CONFLICT1 = "org.eclipse.ui.tests.keyModel.conflict1";
-	private static final String ID_CMD_CONFLICT2 = "org.eclipse.ui.tests.keyModel.conflict2";
-	private static final String ID_CMD_CONFLICT3 = "org.eclipse.ui.tests.keyModel.conflict3";
-	private static final String ID_CMD_CONFLICT4 = "org.eclipse.ui.tests.keyModel.conflict4";
-	private static final String ID_CMD_EMACS1 = "org.eclipse.ui.tests.keyModel.emacs1";
-
-	/**
-	 * @param testName
-	 */
-	public KeysPreferenceModelTest(String testName) {
-		super(testName);
-	}
-
-	public void testDefaults() throws Exception {
-		KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		ContextModel cm = controller.getContextModel();
-		boolean foundWindow = false;
-		boolean foundDialog = false;
-		Iterator i = cm.getContexts().iterator();
-		while (i.hasNext()) {
-			ContextElement elem = (ContextElement) i.next();
-			if (elem.getId().equals(IContextService.CONTEXT_ID_WINDOW)) {
-				foundWindow = true;
-			} else if (elem.getId().equals(IContextService.CONTEXT_ID_DIALOG)) {
-				foundDialog = true;
-			}
-		}
-		assertTrue("No window context", foundWindow);
-		assertTrue("No dialog context", foundDialog);
-		assertNull(cm.getSelectedElement());
-		assertNotNull(cm.getContextIdToElement().get(
-				IContextService.CONTEXT_ID_DIALOG_AND_WINDOW));
-
-		SchemeModel sm = controller.getSchemeModel();
-		boolean foundDefault = false;
-		i = sm.getSchemes().iterator();
-		while (i.hasNext()) {
-			SchemeElement e = (SchemeElement) i.next();
-			if (e.getId().equals(
-					IBindingService.DEFAULT_DEFAULT_ACTIVE_SCHEME_ID)) {
-				foundDefault = true;
-			}
-		}
-		assertTrue("No default scheme", foundDefault);
-		assertEquals(IBindingService.DEFAULT_DEFAULT_ACTIVE_SCHEME_ID, sm
-				.getSelectedElement().getId());
-
-		ConflictModel cf = controller.getConflictModel();
-		assertNull("There should not be any conflicts", cf.getConflicts());
-		assertNull(cf.getSelectedElement());
-
-		BindingModel bm = controller.getBindingModel();
-		BindingElement quickAccess = getBindingElement(bm, ID_QUICK_ACCESS);
-		assertNotNull(quickAccess);
-		assertNull(bm.getSelectedElement());
-	}
-
-	public void testContexts() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		ContextModel cm = controller.getContextModel();
-		ContextElement dialog = (ContextElement) cm.getContextIdToElement()
-				.get(IContextService.CONTEXT_ID_DIALOG);
-		assertNull(cm.getSelectedElement());
-		assertNotNull(dialog);
-
-		final ArrayList events = new ArrayList();
-		// test setup vars
-		controller.addPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				events.add(event);
-			}
-		});
-		cm.setSelectedElement(dialog);
-
-		assertTrue(cm.getSelectedElement() == dialog);
-
-		assertEquals(1, events.size());
-
-		ContextElement window = (ContextElement) cm.getContextIdToElement()
-				.get(IContextService.CONTEXT_ID_WINDOW);
-		assertNotNull(window);
-
-		cm.setSelectedElement(window);
-		assertEquals(2, events.size());
-
-		cm.setSelectedElement(null);
-		assertEquals(3, events.size());
-
-		PropertyChangeEvent[] expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(controller.getContextModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, null, dialog),
-				new PropertyChangeEvent(controller.getContextModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, dialog, window),
-				new PropertyChangeEvent(controller.getContextModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, window, null) };
-		assertChanges(expected, events);
-	}
-
-	public void testBindings() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		ContextModel cm = controller.getContextModel();
-		BindingModel bm = controller.getBindingModel();
-		BindingElement activateEditor = getBindingElement(bm,
-				ID_ACTIVATE_EDITOR);
-		assertNotNull(activateEditor);
-		assertNotNull(activateEditor.getContext());
-		assertNull(bm.getSelectedElement());
-
-		// test setup vars
-		final ArrayList events = new ArrayList();
-		controller.addPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				events.add(event);
-			}
-		});
-
-		bm.setSelectedElement(activateEditor);
-
-		assertTrue(bm.getSelectedElement() == activateEditor);
-		assertNotNull(cm.getSelectedElement());
-		assertTrue(cm.getSelectedElement().getId().equals(
-				activateEditor.getContext().getId()));
-
-		PropertyChangeEvent[] expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(controller.getConflictModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, null, activateEditor),
-				new PropertyChangeEvent(controller.getContextModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, null, activateEditor
-								.getContext()),
-				new PropertyChangeEvent(controller.getBindingModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, null, activateEditor), };
-		assertChanges(expected, events);
-
-		events.clear();
-		bm.setSelectedElement(null);
-		assertNull(bm.getSelectedElement());
-		assertTrue(cm.getSelectedElement().getId().equals(
-				activateEditor.getContext().getId()));
-
-		expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(controller.getConflictModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, activateEditor, null),
-				new PropertyChangeEvent(controller.getBindingModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, activateEditor, null) };
-		assertChanges(expected, events);
-	}
-
-	public void testBasicConflicts() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ConflictModel cf = controller.getConflictModel();
-		final BindingModel bm = controller.getBindingModel();
-		final BindingElement conflict1 = getBindingElement(bm, ID_CMD_CONFLICT1);
-		assertNotNull(conflict1);
-		assertEquals(Boolean.TRUE, conflict1.getConflict());
-		final BindingElement activateEditor = getBindingElement(bm,
-				ID_ACTIVATE_EDITOR);
-		assertNotNull(activateEditor);
-		assertEquals(Boolean.FALSE, activateEditor.getConflict());
-
-		// test setup vars
-		final ArrayList events = new ArrayList();
-		controller.addPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				events.add(event);
-			}
-		});
-
-		bm.setSelectedElement(conflict1);
-		assertEquals(conflict1, bm.getSelectedElement());
-		assertEquals(conflict1, cf.getSelectedElement());
-
-		final Collection conflicts = cf.getConflicts();
-		assertEquals(3, conflicts.size());
-
-		PropertyChangeEvent[] expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(controller.getConflictModel(),
-						ConflictModel.PROP_CONFLICTS, null, conflicts),
-				new PropertyChangeEvent(controller.getConflictModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, null, conflict1),
-				new PropertyChangeEvent(controller.getContextModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, null, conflict1
-								.getContext()),
-				new PropertyChangeEvent(controller.getBindingModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, null, conflict1) };
-
-		assertChanges(expected, events);
-
-		events.clear();
-		bm.setSelectedElement(activateEditor);
-		assertEquals(activateEditor, bm.getSelectedElement());
-
-		expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(controller.getConflictModel(),
-						ConflictModel.PROP_CONFLICTS, conflicts, null),
-				new PropertyChangeEvent(controller.getConflictModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, conflict1,
-						activateEditor),
-				new PropertyChangeEvent(controller.getContextModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, conflict1
-								.getContext(), activateEditor.getContext()),
-				new PropertyChangeEvent(controller.getBindingModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, conflict1,
-						activateEditor) };
-
-		assertChanges(expected, events);
-	}
-
-	public void testConflictSelection() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ConflictModel cf = controller.getConflictModel();
-		final BindingModel bm = controller.getBindingModel();
-		final BindingElement conflict1 = getBindingElement(bm, ID_CMD_CONFLICT1);
-		final BindingElement conflict3 = getBindingElement(bm, ID_CMD_CONFLICT3);
-
-		// test setup vars
-		final ArrayList events = new ArrayList();
-		controller.addPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				events.add(event);
-			}
-		});
-
-		bm.setSelectedElement(conflict1);
-		assertEquals(conflict1, bm.getSelectedElement());
-		assertEquals(conflict1, cf.getSelectedElement());
-
-		assertEquals(4, events.size());
-
-		events.clear();
-
-		cf.setSelectedElement(conflict3);
-		assertEquals(conflict3, bm.getSelectedElement());
-		assertEquals(conflict3, cf.getSelectedElement());
-
-		PropertyChangeEvent[] expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(controller.getBindingModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, conflict1, conflict3),
-				new PropertyChangeEvent(controller.getConflictModel(),
-						CommonModel.PROP_SELECTED_ELEMENT, conflict1, conflict3) };
-		assertChanges(expected, events);
-	}
-
-	public void failsOnCocoatestCreateConflict() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ConflictModel cf = controller.getConflictModel();
-		final BindingModel bm = controller.getBindingModel();
-		BindingElement about = getBindingElement(bm, ID_ABOUT);
-		assertNotNull(about);
-		assertNotNull(about.getTrigger());
-
-		BindingElement active = getBindingElement(bm, ID_ACTIVATE_EDITOR);
-		assertNotNull(active);
-		assertNotNull(active.getTrigger());
-		assertEquals(Boolean.FALSE, active.getConflict());
-
-		bm.setSelectedElement(about);
-
-		about.setTrigger(KeySequence.getInstance("F12"));
-		assertEquals(Boolean.TRUE, about.getConflict());
-		assertEquals(Boolean.TRUE, active.getConflict());
-		assertEquals(about, cf.getSelectedElement());
-
-		about.setTrigger(KeySequence.getInstance("F12 A"));
-		assertEquals(Boolean.FALSE, about.getConflict());
-		assertEquals(Boolean.FALSE, active.getConflict());
-		assertEquals(about, cf.getSelectedElement());
-		assertNull(cf.getConflicts());
-
-		about.setTrigger(null);
-		assertEquals(Boolean.FALSE, about.getConflict());
-		assertEquals(Boolean.FALSE, active.getConflict());
-		assertEquals(about, cf.getSelectedElement());
-		assertNull(cf.getConflicts());
-	}
-
-	public void failsOnMacCocoatestConflictRemove() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ConflictModel cf = controller.getConflictModel();
-		final BindingModel bm = controller.getBindingModel();
-		BindingElement about = getBindingElement(bm, ID_ABOUT);
-		assertNotNull(about);
-		assertNotNull(about.getTrigger());
-
-		BindingElement active = getBindingElement(bm, ID_ACTIVATE_EDITOR);
-		assertNotNull(active);
-		assertNotNull(active.getTrigger());
-		assertEquals(Boolean.FALSE, active.getConflict());
-
-		bm.setSelectedElement(about);
-
-		about.setTrigger(KeySequence.getInstance("F12"));
-		assertEquals(Boolean.TRUE, about.getConflict());
-		assertEquals(Boolean.TRUE, active.getConflict());
-		assertEquals(about, cf.getSelectedElement());
-
-		bm.remove();
-		assertEquals(Boolean.FALSE, about.getConflict());
-		assertEquals(Boolean.FALSE, active.getConflict());
-		assertEquals(about, cf.getSelectedElement());
-		assertNull(cf.getConflicts());
-	}
-
-	public void failsOnMacCocoatestConflictRestore() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ConflictModel cf = controller.getConflictModel();
-		final BindingModel bm = controller.getBindingModel();
-		BindingElement about = getBindingElement(bm, ID_ABOUT);
-		assertNotNull(about);
-		assertNotNull(about.getTrigger());
-
-		BindingElement active = getBindingElement(bm, ID_ACTIVATE_EDITOR);
-		assertNotNull(active);
-		assertNotNull(active.getTrigger());
-		assertEquals(Boolean.FALSE, active.getConflict());
-
-		bm.setSelectedElement(about);
-
-		about.setTrigger(KeySequence.getInstance("F12"));
-		assertEquals(Boolean.TRUE, about.getConflict());
-		assertEquals(Boolean.TRUE, active.getConflict());
-		assertEquals(about, cf.getSelectedElement());
-
-		bm.restoreBinding(controller.getContextModel());
-
-		active = getBindingElement(bm, ID_ACTIVATE_EDITOR);
-		about = getBindingElement(bm, ID_ABOUT);
-
-		assertEquals(Boolean.FALSE, about.getConflict());
-		assertEquals(Boolean.FALSE, active.getConflict());
-		assertEquals(bm.getSelectedElement(), cf.getSelectedElement());
-		assertNull(cf.getConflicts());
-	}
-
-	public void testUpdateContext() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ContextModel cm = controller.getContextModel();
-		final ContextElement dialog = (ContextElement) cm
-				.getContextIdToElement().get(IContextService.CONTEXT_ID_DIALOG);
-		final ContextElement window = (ContextElement) cm
-				.getContextIdToElement().get(IContextService.CONTEXT_ID_WINDOW);
-
-		final BindingModel bm = controller.getBindingModel();
-		final BindingElement conflict2 = getBindingElement(bm, ID_CMD_CONFLICT2);
-		final Binding c2model = (Binding) conflict2.getModelObject();
-		assertEquals(dialog, conflict2.getContext());
-
-		bm.setSelectedElement(conflict2);
-		assertEquals(dialog, cm.getSelectedElement());
-
-		// test setup vars
-		final ArrayList events = new ArrayList();
-		controller.addPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				events.add(event);
-			}
-		});
-
-		cm.setSelectedElement(window);
-		assertEquals(window, ((BindingElement) bm.getSelectedElement())
-				.getContext());
-		assertNotSame(c2model, conflict2.getModelObject());
-
-		PropertyChangeEvent[] expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(conflict2,
-						BindingElement.PROP_CONFLICT, Boolean.TRUE,
-						Boolean.FALSE),
-				new PropertyChangeEvent(conflict2, BindingElement.PROP_CONTEXT,
-						dialog, window),
-				new PropertyChangeEvent(conflict2,
-						BindingElement.PROP_USER_DELTA, new Integer(
-								Binding.SYSTEM), new Integer(Binding.USER)),
-				new PropertyChangeEvent(conflict2,
-						ModelElement.PROP_MODEL_OBJECT, c2model, conflict2
-								.getModelObject()),
-				new PropertyChangeEvent(cm, CommonModel.PROP_SELECTED_ELEMENT,
-						dialog, window), };
-		assertChanges(expected, events);
-	}
-
-	public void failsOnWinAndLinuxWith16VMtestUpdateKeySequence() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ContextModel cm = controller.getContextModel();
-		final ContextElement dialog = (ContextElement) cm
-				.getContextIdToElement().get(IContextService.CONTEXT_ID_DIALOG);
-
-		final BindingModel bm = controller.getBindingModel();
-		final BindingElement conflict1 = getBindingElement(bm, ID_CMD_CONFLICT1);
-		final BindingElement conflict2 = getBindingElement(bm, ID_CMD_CONFLICT2);
-		final BindingElement conflict3 = getBindingElement(bm, ID_CMD_CONFLICT3);
-		final Binding c2model = (Binding) conflict2.getModelObject();
-		final Binding c3model = (Binding) conflict3.getModelObject();
-		final ParameterizedCommand c3parameterized = c3model
-				.getParameterizedCommand();
-		assertEquals(dialog, conflict2.getContext());
-		assertTrue(c2model instanceof KeyBinding);
-		bm.setSelectedElement(conflict2);
-		assertEquals(dialog, cm.getSelectedElement());
-
-		// test setup vars
-		final ArrayList events = new ArrayList();
-		controller.addPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				events.add(event);
-			}
-		});
-
-		KeySequence oldKeySequence = (KeySequence) conflict2.getTrigger();
-		KeySequence ctrl5 = KeySequence.getInstance("CTRL+5 N");
-		Object bindingConflict1 = conflict1.getModelObject();
-		conflict2.setTrigger(ctrl5);
-		ConflictModel conflictModel = controller.getConflictModel();
-		ArrayList oldValue = new ArrayList();
-		oldValue.add(conflict3);
-
-		assertEquals(dialog, ((BindingElement) bm.getSelectedElement())
-				.getContext());
-		assertTrue(conflict2.getModelObject() instanceof KeyBinding);
-		PropertyChangeEvent[] expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(conflict2,
-						BindingElement.PROP_CONFLICT, Boolean.TRUE,
-						Boolean.FALSE),
-				new PropertyChangeEvent(conflict2,
-						BindingElement.PROP_USER_DELTA, new Integer(
-								Binding.SYSTEM), new Integer(Binding.USER)),
-				new PropertyChangeEvent(controller.getConflictModel(),
-						ConflictModel.PROP_CONFLICTS_REMOVE, null, conflict2),
-				new PropertyChangeEvent(conflict2,
-						ModelElement.PROP_MODEL_OBJECT, c2model, conflict2
-								.getModelObject()),
-				new PropertyChangeEvent(conflict1,
-						BindingElement.PROP_CONFLICT, Boolean.TRUE,
-						Boolean.FALSE),
-				new PropertyChangeEvent(
-						conflict1,
-						BindingElement.PROP_CONTEXT,
-						((BindingElement) bm.getSelectedElement()).getContext(),
-						null),
-				new PropertyChangeEvent(conflictModel,
-						ConflictModel.PROP_CONFLICTS_REMOVE, null, conflict1),
-				new PropertyChangeEvent(conflict3,
-						BindingElement.PROP_CONFLICT, Boolean.TRUE,
-						Boolean.FALSE),
-				new PropertyChangeEvent(conflictModel,
-						ConflictModel.PROP_CONFLICTS, oldValue, null),
-				new PropertyChangeEvent(conflict1,
-						ModelElement.PROP_MODEL_OBJECT, bindingConflict1,
-						conflict1.getModelObject()),
-				new PropertyChangeEvent(conflict1, BindingElement.PROP_TRIGGER,
-						oldKeySequence, null),
-				new PropertyChangeEvent(conflict3, BindingElement.PROP_CONTEXT,
-						dialog, null),
-				new PropertyChangeEvent(conflict3,
-						ModelElement.PROP_MODEL_OBJECT, c3model,
-						c3parameterized),
-				new PropertyChangeEvent(conflict3,
-						BindingElement.PROP_TRIGGER, oldKeySequence, null),
-				new PropertyChangeEvent(bm,
-						BindingModel.PROP_CONFLICT_ELEMENT_MAP, null, conflict3),
-				new PropertyChangeEvent(conflict2, BindingElement.PROP_TRIGGER,
-						oldKeySequence, ctrl5), };
-		assertChanges(expected, events);
-	}
-
-	public void testCreateKeyBinding() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ContextModel cm = controller.getContextModel();
-		final ContextElement window = (ContextElement) cm
-				.getContextIdToElement().get(IContextService.CONTEXT_ID_WINDOW);
-
-		final BindingModel bm = controller.getBindingModel();
-		final BindingElement conflict4 = getBindingElement(bm, ID_CMD_CONFLICT4);
-		assertNull(conflict4.getContext());
-		Object c4model = conflict4.getModelObject();
-		assertTrue(c4model instanceof ParameterizedCommand);
-
-		bm.setSelectedElement(conflict4);
-		assertNull(cm.getSelectedElement());
-
-		// test setup vars
-		final ArrayList events = new ArrayList();
-		controller.addPropertyChangeListener(new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				events.add(event);
-			}
-		});
-
-		KeySequence ctrl5 = KeySequence.getInstance("CTRL+5 N");
-		conflict4.setTrigger(ctrl5);
-		assertEquals(window, ((BindingElement) bm.getSelectedElement())
-				.getContext());
-		assertTrue(conflict4.getModelObject() instanceof KeyBinding);
-		assertEquals(cm.getSelectedElement(), conflict4.getContext());
-
-		PropertyChangeEvent[] expected = new PropertyChangeEvent[] {
-				new PropertyChangeEvent(conflict4, BindingElement.PROP_CONTEXT,
-						null, window),
-				new PropertyChangeEvent(conflict4,
-						BindingElement.PROP_USER_DELTA, new Integer(
-								Binding.SYSTEM), new Integer(Binding.USER)),
-				new PropertyChangeEvent(cm, CommonModel.PROP_SELECTED_ELEMENT,
-						null, conflict4.getContext()),
-				new PropertyChangeEvent(conflict4,
-						ModelElement.PROP_MODEL_OBJECT, c4model, conflict4
-								.getModelObject()),
-				new PropertyChangeEvent(conflict4, BindingElement.PROP_TRIGGER,
-						null, ctrl5), };
-		assertChanges(expected, events);
-	}
-
-	public void testChangeSchemes() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		SchemeModel sm = controller.getSchemeModel();
-		SchemeElement emacsScheme = null;
-		Iterator i = sm.getSchemes().iterator();
-		while (i.hasNext()) {
-			SchemeElement e = (SchemeElement) i.next();
-			if (e.getId().equals(SCHEME_EMACS_ID)) {
-				emacsScheme = e;
-			}
-		}
-		assertNotNull(emacsScheme);
-
-		BindingModel bm = controller.getBindingModel();
-		BindingElement quickSwitch = null;
-		int quickCount = 0;
-		i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement e = (BindingElement) i.next();
-			if (e.getId().equals(ID_QUICK_SWITCH)) {
-				quickSwitch = e;
-				quickCount++;
-			}
-		}
-		assertNotNull(quickSwitch);
-		assertEquals(1, quickCount);
-
-		sm.setSelectedElement(emacsScheme);
-
-		i = bm.getBindings().iterator();
-		ArrayList quick2 = new ArrayList();
-		boolean foundOriginal = false;
-		while (i.hasNext()) {
-			BindingElement e = (BindingElement) i.next();
-			if (e.getId().equals(ID_QUICK_SWITCH)) {
-				quick2.add(e);
-				if (e == quickSwitch) {
-					foundOriginal = true;
-				}
-			}
-		}
-		assertEquals(2, quick2.size());
-		assertTrue(foundOriginal);
-	}
-
-	public void testChangeSchemesTwice() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		SchemeModel sm = controller.getSchemeModel();
-		SchemeElement emacsScheme = null;
-		SchemeElement defaultScheme = null;
-		Iterator i = sm.getSchemes().iterator();
-		while (i.hasNext()) {
-			SchemeElement e = (SchemeElement) i.next();
-			if (e.getId().equals(SCHEME_EMACS_ID)) {
-				emacsScheme = e;
-			} else if (e.getId().equals(
-					IBindingService.DEFAULT_DEFAULT_ACTIVE_SCHEME_ID)) {
-				defaultScheme = e;
-			}
-		}
-		assertNotNull(emacsScheme);
-		assertNotNull(defaultScheme);
-
-		BindingModel bm = controller.getBindingModel();
-		BindingElement quickSwitch = null;
-		int quickCount = 0;
-		i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement e = (BindingElement) i.next();
-			if (e.getId().equals(ID_QUICK_SWITCH)) {
-				quickSwitch = e;
-				quickCount++;
-			}
-		}
-		assertNotNull(quickSwitch);
-		assertEquals(1, quickCount);
-
-		sm.setSelectedElement(emacsScheme);
-
-		i = bm.getBindings().iterator();
-		ArrayList quick2 = new ArrayList();
-		boolean foundOriginal = false;
-		while (i.hasNext()) {
-			BindingElement e = (BindingElement) i.next();
-			if (e.getId().equals(ID_QUICK_SWITCH)) {
-				quick2.add(e);
-				if (e == quickSwitch) {
-					foundOriginal = true;
-				}
-			}
-		}
-		assertEquals(2, quick2.size());
-		assertTrue(foundOriginal);
-
-		sm.setSelectedElement(defaultScheme);
-
-		i = bm.getBindings().iterator();
-		quick2.clear();
-		foundOriginal = false;
-		while (i.hasNext()) {
-			BindingElement e = (BindingElement) i.next();
-			if (e.getId().equals(ID_QUICK_SWITCH)) {
-				quick2.add(e);
-				if (e == quickSwitch) {
-					foundOriginal = true;
-				}
-			}
-		}
-		assertEquals(1, quick2.size());
-		assertTrue(foundOriginal);
-	}
-
-	public void testSchemesWithNoDefaultBinding() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final SchemeModel sm = controller.getSchemeModel();
-		SchemeElement emacsScheme = null;
-		SchemeElement defaultScheme = null;
-		Iterator i = sm.getSchemes().iterator();
-		while (i.hasNext()) {
-			SchemeElement e = (SchemeElement) i.next();
-			if (e.getId().equals(SCHEME_EMACS_ID)) {
-				emacsScheme = e;
-			} else if (e.getId().equals(
-					IBindingService.DEFAULT_DEFAULT_ACTIVE_SCHEME_ID)) {
-				defaultScheme = e;
-			}
-		}
-		assertNotNull(emacsScheme);
-		assertNotNull(defaultScheme);
-
-		final BindingModel bm = controller.getBindingModel();
-		BindingElement emacsElement = getBindingElement(bm, ID_CMD_EMACS1);
-		assertNotNull(emacsElement);
-		assertTrue(emacsElement.getModelObject() instanceof ParameterizedCommand);
-
-		sm.setSelectedElement(emacsScheme);
-
-		emacsElement = getBindingElement(bm, ID_CMD_EMACS1);
-		assertTrue(emacsElement.getModelObject() instanceof KeyBinding);
-
-		sm.setSelectedElement(defaultScheme);
-
-		emacsElement = getBindingElement(bm, ID_CMD_EMACS1);
-		assertTrue(emacsElement.getModelObject() instanceof ParameterizedCommand);
-	}
-
-	public void testCopyBinding() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		BindingModel bm = controller.getBindingModel();
-		BindingElement activateEditor = null;
-		ArrayList activates = new ArrayList();
-		Iterator i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement be = (BindingElement) i.next();
-			if (be.getId().equals(ID_ACTIVATE_EDITOR)) {
-				activates.add(be);
-				if (be.getModelObject() instanceof KeyBinding) {
-					activateEditor = be;
-				}
-			}
-		}
-		assertEquals(1, activates.size());
-		assertNotNull(activateEditor);
-
-		bm.setSelectedElement(activateEditor);
-		bm.copy();
-		activates.clear();
-		i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement be = (BindingElement) i.next();
-			if (be.getId().equals(ID_ACTIVATE_EDITOR)) {
-				activates.add(be);
-			}
-		}
-		assertEquals(2, activates.size());
-	}
-
-	public void testCopyCommand() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		BindingModel bm = controller.getBindingModel();
-		BindingElement conflict4 = null;
-		ArrayList activates = new ArrayList();
-		Iterator i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement be = (BindingElement) i.next();
-			if (be.getId().equals(ID_CMD_CONFLICT4)) {
-				activates.add(be);
-				if (be.getModelObject() instanceof ParameterizedCommand) {
-					conflict4 = be;
-				}
-			}
-		}
-		assertEquals(1, activates.size());
-		assertNotNull(conflict4);
-
-		bm.setSelectedElement(conflict4);
-		bm.copy();
-		activates.clear();
-		i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement be = (BindingElement) i.next();
-			if (be.getId().equals(ID_CMD_CONFLICT4)) {
-				activates.add(be);
-			}
-		}
-		assertEquals(1, activates.size());
-	}
-
-	public void testRemoveActiveEditor() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		BindingModel bm = controller.getBindingModel();
-		BindingElement activateEditor = getBindingElement(bm,
-				ID_ACTIVATE_EDITOR);
-
-		assertNotNull(activateEditor);
-		assertTrue(activateEditor.getModelObject() instanceof KeyBinding);
-
-		bm.setSelectedElement(activateEditor);
-		bm.remove();
-
-		assertTrue(activateEditor.getModelObject() instanceof ParameterizedCommand);
-	}
-
-	public void testRestoreBinding() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		BindingModel bm = controller.getBindingModel();
-		BindingElement activateEditor = getBindingElement(bm,
-				ID_ACTIVATE_EDITOR);
-
-		bm.setSelectedElement(activateEditor);
-
-		KeySequence ctrl5 = KeySequence.getInstance("CTRL+5 N");
-		activateEditor.setTrigger(ctrl5);
-
-		assertEquals(new Integer(Binding.USER), activateEditor.getUserDelta());
-		bm.copy();
-		BindingElement activeTwo = (BindingElement) bm.getSelectedElement();
-		assertFalse(activateEditor == activeTwo);
-
-		activeTwo.setTrigger(KeySequence.getInstance("CTRL+5 M"));
-		assertEquals(new Integer(Binding.USER), activeTwo.getUserDelta());
-
-		ArrayList activates = new ArrayList();
-		Iterator i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement be = (BindingElement) i.next();
-			if (be.getId().equals(ID_ACTIVATE_EDITOR)) {
-				activates.add(be);
-			}
-		}
-		assertEquals(2, activates.size());
-
-		bm.restoreBinding(controller.getContextModel());
-
-		activates = new ArrayList();
-		i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement be = (BindingElement) i.next();
-			if (be.getId().equals(ID_ACTIVATE_EDITOR)) {
-				activates.add(be);
-				activateEditor = be;
-			}
-		}
-		assertEquals(1, activates.size());
-		assertEquals(new Integer(Binding.SYSTEM), activateEditor.getUserDelta());
-	}
-
-	public void testRestoreCommand() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ContextModel cm = controller.getContextModel();
-		final ContextElement window = (ContextElement) cm
-				.getContextIdToElement().get(IContextService.CONTEXT_ID_WINDOW);
-
-		final BindingModel bm = controller.getBindingModel();
-		BindingElement conflict4 = getBindingElement(bm, ID_CMD_CONFLICT4);
-		assertNull(conflict4.getContext());
-		Object c4model = conflict4.getModelObject();
-		assertTrue(c4model instanceof ParameterizedCommand);
-
-		bm.setSelectedElement(conflict4);
-		assertNull(cm.getSelectedElement());
-
-		KeySequence ctrl5 = KeySequence.getInstance("CTRL+5 N");
-		conflict4.setTrigger(ctrl5);
-		assertEquals(window, ((BindingElement) bm.getSelectedElement())
-				.getContext());
-		assertTrue(conflict4.getModelObject() instanceof KeyBinding);
-
-		bm.setSelectedElement(conflict4);
-		bm.restoreBinding(cm);
-
-		conflict4 = getBindingElement(bm, ID_CMD_CONFLICT4);
-		assertTrue(conflict4.getModelObject() instanceof ParameterizedCommand);
-	}
-
-	public void testRestoreContext() throws Exception {
-		final KeyController controller = new KeyController();
-		controller.init(getWorkbench());
-
-		final ContextModel cm = controller.getContextModel();
-		final ContextElement dialog = (ContextElement) cm
-				.getContextIdToElement().get(IContextService.CONTEXT_ID_DIALOG);
-
-		final BindingModel bm = controller.getBindingModel();
-		BindingElement activateEditor = getBindingElement(bm,
-				ID_ACTIVATE_EDITOR);
-		activateEditor.setContext(dialog);
-
-		bm.setSelectedElement(activateEditor);
-		bm.restoreBinding(cm);
-
-		activateEditor = getBindingElement(bm, ID_ACTIVATE_EDITOR);
-		assertNotNull(activateEditor);
-	}
-
-	private void assertChangeEvent(int eventNum, PropertyChangeEvent expected,
-			PropertyChangeEvent event) {
-		assertEquals("source: " + eventNum, expected.getSource(), event
-				.getSource());
-		assertEquals("property: " + eventNum, expected.getProperty(), event
-				.getProperty());
-		assertEquals("old: " + eventNum, expected.getOldValue(), event
-				.getOldValue());
-		assertEquals("new: " + eventNum, expected.getNewValue(), event
-				.getNewValue());
-	}
-
-	private void assertChanges(PropertyChangeEvent[] expected, List events) {
-		assertEquals("events length", expected.length, events.size());
-		for (int i = 0; i < expected.length; i++) {
-			assertChangeEvent(i, expected[i], (PropertyChangeEvent) events
-					.get(i));
-		}
-	}
-
-	private BindingElement getBindingElement(BindingModel bm, String bindingId) {
-		BindingElement quickAccess = null;
-		Iterator i = bm.getBindings().iterator();
-		while (i.hasNext()) {
-			BindingElement e = (BindingElement) i.next();
-			if (e.getId().equals(bindingId)) {
-				quickAccess = e;
-			}
-		}
-		return quickAccess;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java
deleted file mode 100644
index 7e1ff69..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/KeysTestSuite.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.keys;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests for all areas of the key support for the platform.
- */
-public class KeysTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new KeysTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public KeysTestSuite() {
-    	addTest(new TestSuite(BindingInteractionsTest.class));
-    	addTest(new TestSuite(BindingManagerTest.class));
-        addTest(new TestSuite(BindingPersistenceTest.class));
-        // TODO This no longer works due to focus issues related to key bindings
-        //addTest(new TestSuite(Bug36420Test.class));
-        //		TODO This test is broken until JDT fixes Bug 44148
-        //		addTest(new TestSuite(Bug36537Test.class));
-        //		TODO Intermittent failure.  SWT Bug 44344.  XGrabPointer?
-        //		addTest(new TestSuite(Bug40023Test.class));
-        addTest(new TestSuite(Bug42024Test.class));
-        addTest(new TestSuite(Bug42035Test.class));
-        //		TODO Logging piece of fix did not go in M4.
-        //		addTest(new TestSuite(Bug42627Test.class));
-        addTest(new TestSuite(Bug43168Test.class));
-        addTest(new TestSuite(Bug43321Test.class));
-        addTest(new TestSuite(Bug43538Test.class));
-        addTest(new TestSuite(Bug43597Test.class));
-        addTest(new TestSuite(Bug43610Test.class));
-        addTest(new TestSuite(Bug43800Test.class));
-        addTest(new TestSuite(KeysCsvTest.class));
-        //		TODO disabled since it refers to the Java builder and nature,
-        //      which are not available in an RCP build
-        //		addTest(new TestSuite(Bug44460Test.class));
-        /* TODO disabled as it is causing failures in the nightly builds.
-         * focus related?
-         */
-        //addTest(new TestSuite(Bug53489Test.class));
-        addTest(new TestSuite(Bug189167Test.class));
-        addTest(new TestSuite(KeysPreferenceModelTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.java
deleted file mode 100644
index 55af66f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/PreferenceMutator.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.ui.tests.keys;
-
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Properties;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PluginVersionIdentifier;
-import org.eclipse.core.runtime.Preferences;
-
-/**
- * A utility class for setting preferences related to key bindings. This class
- * currently uses the round-about procedure of manually writing a preferences
- * file, and then loading it back into the application. In the future, it might
- * use a direct API.
- * 
- * @since 3.0
- */
-public abstract class PreferenceMutator {
-    /**
-     * Sets a key binding in the currently running Eclipse application. It
-     * accomplishes this by writing out an exported preferences file by hand,
-     * and then importing it back into the application.
-     * 
-     * @param commandId
-     *           The command identifier to which the key binding should be
-     *           associated; should not be <code>null</code>.
-     * @param keySequenceText
-     *           The text of the key sequence for this key binding; must not be
-     *           <code>null</code>.
-     * @throws CoreException
-     *            If the exported preferences file is invalid for some reason.
-     * @throws FileNotFoundException
-     *            If the temporary file is removed before it can be read in.
-     *            (Wow)
-     * @throws IOException
-     *            If the creation of or the writing to the temporary file fails
-     *            for some reason.
-     */
-    static final void setKeyBinding(String commandId, String keySequenceText)
-            throws CoreException, FileNotFoundException, IOException {
-        // Set up the preferences.
-        Properties preferences = new Properties();
-        String key = "org.eclipse.ui.workbench/org.eclipse.ui.commands"; //$NON-NLS-1$
-        String value = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<org.eclipse.ui.commands><activeKeyConfiguration/><keyBinding commandId=\"" + commandId + "\" keySequence=\"" + keySequenceText + "\"/></org.eclipse.ui.commands>"; //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
-        preferences.put(key, value);
-        
-        String[] pluginIds = Platform.getExtensionRegistry().getNamespaces();
-		for (int i = 0; i < pluginIds.length; i++) {
-			preferences.put(pluginIds[i], new PluginVersionIdentifier(
-					(String) Platform.getBundle(pluginIds[i]).getHeaders().get(
-							org.osgi.framework.Constants.BUNDLE_VERSION)));
-		}
-
-        // Export the preferences.
-        File file = File.createTempFile("preferences", ".txt"); //$NON-NLS-1$//$NON-NLS-2$
-        file.deleteOnExit();
-        BufferedOutputStream bos = new BufferedOutputStream(
-                new FileOutputStream(file));
-        preferences.store(bos, null);
-        bos.close();
-
-        // Attempt to import the key binding.
-        Preferences.importPreferences(new Path(file.getAbsolutePath()));
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/TestBinding.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/TestBinding.java
deleted file mode 100644
index e0ed776..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/keys/TestBinding.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.tests.keys;
-
-import org.eclipse.core.commands.CommandManager;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.jface.bindings.Binding;
-import org.eclipse.jface.bindings.Trigger;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.util.Util;
-
-/**
- * A binding that can be used for testing purposes. This guarantees that the
- * properties tested are inherent to all bindings, and not just a specific type
- * of bindings.
- */
-final class TestBinding extends Binding {
-
-	/**
-	 * A simple trigger sequence for this test.
-	 */
-	static final class TestTriggerSequence extends TriggerSequence {
-
-		/**
-		 * Constructs a new instance of <code>TestTriggerSequence</code>.
-		 * 
-		 * @param myTriggers
-		 *            The triggers to use in constructing this sequence; must
-		 *            not be <code>null</code>.
-		 */
-		public TestTriggerSequence() {
-			super(new Trigger[0]);
-		}
-
-		public final String format() {
-			return toString();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.bindings.TriggerSequence#getPrefixes()
-		 */
-		public TriggerSequence[] getPrefixes() {
-			return new TriggerSequence[0];
-		}
-	}
-
-	/**
-	 * A command manager to use for creating commands.
-	 */
-	private static final CommandManager commandManager = new CommandManager();
-
-	/**
-	 * A trigger sequence to be used by all test bindings. This value is never
-	 * <code>null</code>.
-	 */
-	static final TriggerSequence TRIGGER_SEQUENCE = new TestTriggerSequence();
-
-	/**
-	 * Constructs a new instance of <code>TestBinding</code>
-	 * 
-	 * @param commandId
-	 *            The command id
-	 * @param schemeId
-	 *            The scheme id
-	 * @param contextId
-	 *            The context id
-	 * @param locale
-	 *            The locale
-	 * @param platform
-	 *            The platform
-	 * @param type
-	 *            The type: SYSTEM or USER
-	 * @param paramaterizations
-	 *            The parameters
-	 */
-	TestBinding(final String commandId, final String schemeId,
-			final String contextId, final String locale, final String platform,
-			final int type, final Parameterization[] parameterizations) {
-		super((commandId == null) ? null : new ParameterizedCommand(
-				commandManager.getCommand(commandId), parameterizations),
-				schemeId, contextId, locale, platform, null, type);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.bindings.Binding#getTriggerSequence()
-	 */
-	public final TriggerSequence getTriggerSequence() {
-		return TRIGGER_SEQUENCE;
-	}
-
-	public final String toString() {
-		return Util.ZERO_LENGTH_STRING;
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/layout/constraints/LayoutConstraintsView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/layout/constraints/LayoutConstraintsView.java
deleted file mode 100644
index 855d610..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/layout/constraints/LayoutConstraintsView.java
+++ /dev/null
@@ -1,376 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Stefan Xenos, IBM Corporation - initial API and implementation
- *     Chris Torrence, ITT Visual Information Solutions - initial API and implementation (bug 51580)
- *******************************************************************************/
-package org.eclipse.ui.tests.layout.constraints;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.layout.LayoutConstants;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-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.swt.widgets.Text;
-import org.eclipse.ui.ISizeProvider;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-
-public class LayoutConstraintsView extends ViewPart implements ISizeProvider {
-
-    private Control control;
-
-    private int minWidth = ISizeProvider.INFINITE;
-    private int maxWidth = ISizeProvider.INFINITE;
-    private int minHeight = ISizeProvider.INFINITE;
-    private int maxHeight = ISizeProvider.INFINITE;
-    private int quantizedWidth = ISizeProvider.INFINITE;
-    private int quantizedHeight = ISizeProvider.INFINITE;
-    private int fixedArea = ISizeProvider.INFINITE;
-    private Text minWidthText;
-    private Text maxWidthText;
-    private Text quantizedWidthText;
-    private Text minHeightText;
-    private Text maxHeightText;
-    private Text quantizedHeightText;
-    private Text fixedAreaText;
-    private Text sampleImplementation;
-
-    public void createPartControl(Composite parent) {
-        control = parent;
-
-        Composite buttonBar = new Composite(parent, SWT.NONE);
-        {	
-            GridDataFactory buttonData = GridDataFactory.fillDefaults().grab(true, false);
-
-            Button applyButton = new Button(buttonBar, SWT.PUSH);
-            applyButton.setText("Apply");
-            applyButton.addSelectionListener(new SelectionAdapter() {
-                /* (non-Javadoc)
-                 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                 */
-                public void widgetSelected(SelectionEvent e) {
-                    applyPressed();
-                }
-            });
-            buttonData.applyTo(applyButton);
-
-            Button clearButton = new Button(buttonBar, SWT.PUSH);
-            clearButton.setText("Reset");
-            clearButton.addSelectionListener(new SelectionAdapter() {
-                /* (non-Javadoc)
-                 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                 */
-                public void widgetSelected(SelectionEvent e) {
-                    minWidthText.setText("");
-                    maxWidthText.setText("");
-                    quantizedWidthText.setText("");
-                    minHeightText.setText("");
-                    maxHeightText.setText("");
-                    quantizedHeightText.setText("");
-                    fixedAreaText.setText("");
-                    applyPressed();
-                }
-            });
-            buttonData.applyTo(clearButton);
-
-            Button newViewButton = new Button(buttonBar, SWT.PUSH);
-            newViewButton.setText("New View");
-            newViewButton.addSelectionListener(new SelectionAdapter() {
-                /* (non-Javadoc)
-                 * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-                 */
-                public void widgetSelected(SelectionEvent e) {
-                    try {
-                        getSite().getPage().showView("org.eclipse.ui.tests.layout.constraints.LayoutConstraintsView", 
-                                "" + System.currentTimeMillis(), IWorkbenchPage.VIEW_ACTIVATE);
-                    } catch (PartInitException e1) {
-                        MessageDialog.openError(getSite().getShell(), "Error opening view", "Unable to open view.");
-                    }
-                }
-            });
-            buttonData.applyTo(newViewButton);
-
-            GridLayoutFactory.fillDefaults().equalWidth(true).numColumns(3).applyTo(buttonBar);
-        }
-        GridDataFactory.fillDefaults().grab(true, false).span(2,1).applyTo(buttonBar);
-
-        new Label(parent, SWT.NONE).setText("Min Width"); 
-        minWidthText = createText(parent);
-
-        new Label(parent, SWT.NONE).setText("Max Width (blank = unbounded)"); 
-        maxWidthText = createText(parent);
-
-        new Label(parent, SWT.NONE).setText("Quantized Width (blank = none)"); 
-        quantizedWidthText = createText(parent);
-
-        new Label(parent, SWT.NONE).setText("Min Height"); 
-        minHeightText = createText(parent);
-
-        new Label(parent, SWT.NONE).setText("Max Height (blank = unbounded)");
-        maxHeightText = createText(parent);
-
-        new Label(parent, SWT.NONE).setText("Quantized Height (blank = none)"); 
-        quantizedHeightText = createText(parent);		
-
-        new Label(parent, SWT.NONE).setText("Fixed Area (blank = none"); 
-        fixedAreaText = createText(parent);
-
-        sampleImplementation = new Text(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-        sampleImplementation.setFont(JFaceResources.getFont(JFaceResources.TEXT_FONT));
-        sampleImplementation.setTabs(4);
-        GridDataFactory.fillDefaults().grab(true, true).span(2,1).applyTo(sampleImplementation);
-
-        GridLayoutFactory.fillDefaults().numColumns(2).margins(LayoutConstants.getMargins()).generateLayout(parent);
-
-        applyPressed();
-
-    }
-
-    /**
-     * 
-     */
-    protected void applyPressed() {
-        // Copy the values from the text boxes
-        minWidth = getInt(minWidthText);
-        maxWidth = getInt(maxWidthText);
-        quantizedWidth = getInt(quantizedWidthText);
-        minHeight = getInt(minHeightText);
-        maxHeight = getInt(maxHeightText);
-        quantizedHeight = getInt(quantizedHeightText);
-        fixedArea = getInt(fixedAreaText);
-
-        StringBuffer result = new StringBuffer();
-        result.append("// Sample implementation: Make sure your ViewPart adapts to ISizeProvider.\n");
-        result.append("// Then implement the following two methods.\n\n");
-        sampleImplementation.setText(result.toString() +
-                getSizeFlagsString() + computePreferredSizeString());
-
-        // Trigger a workbench layout
-        updateLayout();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISizeProvider#getSizeFlags(boolean)
-     */
-    public int getSizeFlags(boolean width) {
-        int flags = 0;
-        if (width) {
-            if (minWidth != ISizeProvider.INFINITE) {
-                flags |= SWT.MIN;
-            }
-            if (maxWidth != ISizeProvider.INFINITE) {
-                flags |= SWT.MAX;
-            }
-            if (quantizedWidth != ISizeProvider.INFINITE || fixedArea != ISizeProvider.INFINITE) {
-                flags |= SWT.FILL;
-            }
-            if (fixedArea != ISizeProvider.INFINITE) {
-                flags |= SWT.WRAP;
-            }
-        } else {
-            if (minHeight != ISizeProvider.INFINITE) {
-                flags |= SWT.MIN;
-            }
-            if (maxHeight != ISizeProvider.INFINITE) {
-                flags |= SWT.MAX;
-            }
-            if (quantizedHeight != ISizeProvider.INFINITE || fixedArea != ISizeProvider.INFINITE) {
-                flags |= SWT.FILL;
-            }
-            if (fixedArea != ISizeProvider.INFINITE) {
-                flags |= SWT.WRAP;
-            }			
-        }
-
-        return flags;
-    }
-
-    public String getSizeFlagsString() {
-        StringBuffer result = new StringBuffer();
-        result.append("/* (non-Javadoc)\n");
-        result.append(" * @see org.eclipse.ui.ISizeProvider#getSizeFlags(boolean)\n");
-        result.append(" */\n");
-        result.append("public int getSizeFlags(boolean width) {\n");
-        result.append("\tint flags = 0;\n");
-        result.append("\tif (width) {\n");
-        if (minWidth != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.MIN;\n");
-        }
-        if (maxWidth != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.MAX;\n");
-        }
-        if (quantizedWidth != ISizeProvider.INFINITE || fixedArea != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.FILL;\n");
-        }
-        if (fixedArea != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.WRAP;\n");
-        }
-        result.append("\t} else {\n");
-        if (minHeight != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.MIN;\n");
-        }
-        if (maxHeight != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.MAX;\n");
-        }
-        if (quantizedHeight != ISizeProvider.INFINITE || fixedArea != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.FILL;\n");
-        }
-        if (fixedArea != ISizeProvider.INFINITE) {
-            result.append("\t\tflags |= SWT.WRAP;\n");
-        }     
-        result.append("\t}\n");
-        result.append("\treturn flags;\n");
-        result.append("}\n\n");
-        return result.toString();
-    }
-
-    /**
-     * @param minWidth2
-     * @return
-     */
-    private int getInt(Text text) {
-        if (text.getText().equals("")) {
-            return ISizeProvider.INFINITE;
-        }
-
-        try {
-            return Integer.parseInt(text.getText());
-        } catch (NumberFormatException e) {
-            return ISizeProvider.INFINITE;
-        }
-    }
-
-    /**
-     * 
-     */
-    protected void updateLayout() {
-        firePropertyChange(IWorkbenchPartConstants.PROP_PREFERRED_SIZE);
-    }
-
-    /**
-     * @param parent
-     */
-    private Text createText(Composite parent) {
-        return new Text(parent, SWT.BORDER);		
-    }
-
-    public void setFocus() {
-        control.setFocus();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.ISizeProvider#computePreferredSize(boolean, int, int, int)
-     */
-    public int computePreferredSize(boolean width, int availableParallel,
-            int availablePerpendicular, int preferredResult) {
-
-        int result = preferredResult;
-
-        if (fixedArea != ISizeProvider.INFINITE) {
-            // Try to maintain a fixed area
-            result = (availablePerpendicular != 0) ? fixedArea / availablePerpendicular : 0;
-            if (result < 30) result = 30;
-        }
-
-        if (width) {
-            if (quantizedWidth != ISizeProvider.INFINITE && quantizedWidth != 0) {
-                // Jump to the nearest multiple of the quantized size
-                result = Math.min(result + quantizedWidth/2, availableParallel);
-                result = result - (result % quantizedWidth);
-            }
-            if (minWidth != ISizeProvider.INFINITE) {
-                // Ensure we go no smaller than the minimum size
-                if (result < minWidth) result = minWidth;
-            }
-            if (maxWidth != ISizeProvider.INFINITE) {
-                // Ensure we go no larger than the maximum size
-                if (result > maxWidth) result = maxWidth;
-            }
-        } else {
-            // Jump to the nearest multiple of the quantized size
-            if (quantizedHeight != ISizeProvider.INFINITE && quantizedHeight != 0) {
-                result = Math.min(result + quantizedHeight/2, availableParallel);
-                result = result - (result % quantizedHeight);
-            }
-            if (minHeight != ISizeProvider.INFINITE) {
-                // Ensure we go no smaller than the minimum size
-                if (result < minHeight) result = minHeight;
-            }
-            if (maxHeight != ISizeProvider.INFINITE) {
-                // Ensure we go no larger than the maximum size
-                if (result > maxHeight) result = maxHeight;
-            }
-        }
-
-        // Ensure that we do not use more than the available space
-        if (result > availableParallel) result = availableParallel;
-        if (result < 0) result = 0;
-        return result;
-    }
-
-    private String computePreferredSizeString() {
-        StringBuffer result = new StringBuffer();
-        result.append("/* (non-Javadoc)\n");
-        result.append(" * @see org.eclipse.ui.ISizeProvider#computePreferredSize(boolean, int, int, int)\n");
-        result.append(" */\n");
-        result.append("public int computePreferredSize(boolean width, int availableParallel,\n");
-        result.append("\tint availablePerpendicular, int preferredResult) {\n");
-        result.append("\tint result = preferredResult;\n");
-        if (fixedArea != ISizeProvider.INFINITE) {
-            result.append("\t// Try to maintain a fixed area\n");
-            result.append("\tresult = (availablePerpendicular != 0) ? " + fixedArea + "/availablePerpendicular : 0;\n");
-            result.append("\tif (result < 30) result = 30;\n");
-        }
-        result.append("\tif (width) {\n");
-        if (quantizedWidth != ISizeProvider.INFINITE && quantizedWidth != 0) {
-            result.append("\t\t// Jump to the nearest multiple of the quantized size\n");
-            result.append("\t\tresult = Math.min(result + " + quantizedWidth + "/2, availableParallel);\n");
-            result.append("\t\tresult = result - (result % " + quantizedWidth + ");\n");
-        }
-        if (minWidth != ISizeProvider.INFINITE) {
-            result.append("\t\t// Ensure we go no smaller than the minimum size\n");
-            result.append("\t\tif (result < " + minWidth + ") result = " + minWidth + ";\n");
-        }
-        if (maxWidth != ISizeProvider.INFINITE) {
-            result.append("\t\t// Ensure we go no larger than the maximum size\n");
-            result.append("\t\tif (result > " + maxWidth + ") result = " + maxWidth + ";\n");
-        }
-        result.append("\t} else {\n");
-        if (quantizedHeight != ISizeProvider.INFINITE && quantizedHeight != 0) {
-            result.append("\t\t// Jump to the nearest multiple of the quantized size\n");
-            result.append("\t\tresult = Math.min(result + " + quantizedHeight + "/2, availableParallel);\n");
-            result.append("\t\tresult = result - (result % " + quantizedHeight + ");\n");
-        }
-        if (minHeight != ISizeProvider.INFINITE) {
-            result.append("\t\t// Ensure we go no smaller than the minimum size\n");
-            result.append("\t\tif (result < " + minHeight + ") result = " + minHeight + ";\n");
-        }
-        if (maxHeight != ISizeProvider.INFINITE) {
-            result.append("\t\t// Ensure we go no larger than the maximum size\n");
-            result.append("\t\tif (result > " + maxHeight + ") result = " + maxHeight + ";\n");
-        }
-        result.append("\t}\n");
-        result.append("\t// Ensure that we do not use more than the available space\n");
-        result.append("\tif (result > availableParallel) result = availableParallel;\n");
-        result.append("\tif (result < 0) result = 0;\n");
-        result.append("\treturn result;\n");
-        result.append("}\n");
-        return result.toString();
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/ContextEditorPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/ContextEditorPart.java
deleted file mode 100644
index 5b3ef33..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/ContextEditorPart.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.leaks;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * @since 3.4
- *
- */
-public class ContextEditorPart extends EditorPart {
-
-	private Text text;
-	private ISelectionProvider selectionProvider = null;
-	private Menu contextMenu;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor arg0) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite arg0, IEditorInput arg1)
-			throws PartInitException {
-		setSite(arg0);
-		setInput(arg1);
-		selectionProvider = new ISelectionProvider() {
-			public void addSelectionChangedListener(
-					ISelectionChangedListener listener) {
-			}
-
-			public ISelection getSelection() {
-				return new StructuredSelection("Hi there");
-			}
-
-			public void removeSelectionChangedListener(
-					ISelectionChangedListener listener) {
-			}
-
-			public void setSelection(ISelection selection) {
-			}
-		};
-		getSite().setSelectionProvider(selectionProvider);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		text = new Text(parent, SWT.MULTI|SWT.WRAP);
-		text.setText("Hi there");
-		MenuManager manager = new MenuManager();
-		manager.setRemoveAllWhenShown(true);
-		contextMenu = manager.createContextMenu(text);
-		text.setMenu(contextMenu);
-		
-		getSite().registerContextMenu(manager, selectionProvider);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		text.setFocus();
-	}
-
-	public void showMenu() {
-		contextMenu.notifyListeners(SWT.Show, null);
-	}
-	
-	public void hideMenu() {
-		contextMenu.notifyListeners(SWT.Hide, null);
-	}
-	
-	public Menu getMenu() {
-		return contextMenu;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
deleted file mode 100644
index bba0053..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/leaks/LeakTests.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Remy Chi Jian Suen (Versant Corporation) - bug 255005
- *******************************************************************************/
-package org.eclipse.ui.tests.leaks;
-
-import java.lang.ref.PhantomReference;
-import java.lang.ref.Reference;
-import java.lang.ref.ReferenceQueue;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.part.NullEditorInput;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.eclipse.ui.tests.api.MockViewPart;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Very simple leak tests to determine if any of our heavy objects are not being
- * disposed properly. Note that the results of these tests will in no way
- * actually assist you in tracking down the leak.
- * 
- * @since 3.1
- */
-public class LeakTests extends UITestCase {
-    private IWorkbenchPage fActivePage;
-
-    private IWorkbenchWindow fWin;
-
-    private IProject proj;
-
-    /**
-     * @param testName
-     */
-    public LeakTests(String testName) {
-        super(testName);
-    }
-
-    public static void checkRef(ReferenceQueue queue, Reference ref)
-            throws IllegalArgumentException, InterruptedException {
-        boolean flag = false;
-        for (int i = 0; i < 100; i++) {
-            System.runFinalization();
-            System.gc();
-            Thread.yield();
-            processEvents();
-            Reference checkRef = queue.remove(100);
-            if (checkRef != null && checkRef.equals(ref)) {
-                flag = true;
-                break;
-            }
-        }
-
-        assertTrue("Reference not enqueued", flag);
-    }
-
-    /**
-     * @param queue
-     * @param object
-     * @return
-     */
-    private Reference createReference(ReferenceQueue queue, Object object) {
-        return new PhantomReference(object, queue);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fWin = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-        fActivePage = fWin.getActivePage();
-    }
-
-    protected void doTearDown() throws Exception {
-        super.doTearDown();
-        fWin = null;
-        fActivePage = null;
-        if (proj != null) {
-            FileUtil.deleteProject(proj);
-            proj = null;
-        }
-    }
-
-    public void testSimpleEditorLeak() throws Exception {
-        proj = FileUtil.createProject("testEditorLeaks");
-
-        IFile file = FileUtil.createFile("test.mock1", proj);
-
-        ReferenceQueue queue = new ReferenceQueue();
-        IEditorPart editor = IDE.openEditor(fActivePage, file);
-        assertNotNull(editor);
-        Reference ref = createReference(queue, editor);
-        try {
-            fActivePage.closeEditor(editor, false);
-            editor = null;
-            checkRef(queue, ref);
-        } finally {
-            ref.clear();
-        }
-    }
-
-    public void testSimpleViewLeak() throws Exception {
-        ReferenceQueue queue = new ReferenceQueue();
-        IViewPart view = fActivePage.showView(MockViewPart.ID);
-        assertNotNull(view);
-        Reference ref = createReference(queue, view);
-
-        try {
-            fActivePage.hideView(view);
-            view = null;
-            checkRef(queue, ref);
-        } finally {
-            ref.clear();
-        }
-    }
-
-	public void testBug255005ServiceLeak() throws Exception {
-		ReferenceQueue queue = new ReferenceQueue();
-		IViewPart view = fActivePage.showView(MockViewPart.ID);
-		assertNotNull(view);
-
-		// create a job to schedule
-		Job doNothingJob = new Job("Does Nothing") { //$NON-NLS-1$
-			protected IStatus run(IProgressMonitor monitor) {
-				return Status.OK_STATUS;
-			}
-		};
-
-		// retrieve the progress service
-		IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
-				.getSite().getService(IWorkbenchSiteProgressService.class);
-		// schedule it
-		service.schedule(doNothingJob);
-
-		// create a reference for our service
-		Reference ref = createReference(queue, service);
-
-		// wait for the job  to complete
-		doNothingJob.join();
-
-		try {
-			// hide the view
-			fActivePage.hideView(view);
-			// remove our references
-			service = null;
-			view = null;
-			// check for leaks
-			checkRef(queue, ref);
-		} finally {
-			ref.clear();
-		}
-	}
-
-	public void testBug255005SiteLeak() throws Exception {
-		ReferenceQueue queue = new ReferenceQueue();
-		IViewPart view = fActivePage.showView(MockViewPart.ID);
-		assertNotNull(view);
-
-		// create a job to schedule
-		Job doNothingJob = new Job("Does Nothing") { //$NON-NLS-1$
-			protected IStatus run(IProgressMonitor monitor) {
-				return Status.OK_STATUS;
-			}
-		};
-
-		// retrieve the progress service
-		IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) view
-				.getSite().getService(IWorkbenchSiteProgressService.class);
-		// schedule it
-		service.schedule(doNothingJob);
-
-		IWorkbenchPartSite site = view.getSite();
-		// create a reference for our site
-		Reference ref = createReference(queue, site);
-
-		// wait for the job  to complete
-		doNothingJob.join();
-
-		try {
-			// hide the view
-			fActivePage.hideView(view);
-			// remove our references
-			service = null;
-			site = null;
-			view = null;
-			// check for leaks
-			checkRef(queue, ref);
-		} finally {
-			ref.clear();
-		}
-	}
-	
-	public void testBug265449PropertiesLeak() throws Exception {
-		// create a project to be selected by the 'Navigator'
-    	proj = FileUtil.createProject("projectToSelect");
-    	
-    	// show the 'Navigator'
-    	IViewPart navigator = fActivePage.showView(IPageLayout.ID_RES_NAV);
-    	// show the 'Properties' view
-    	IViewPart propertiesView = fActivePage.showView(IPageLayout.ID_PROP_SHEET);
-    	
-    	// select the project in the 'Navigator', this will cause the 'Properties'
-    	// view to show something, and create a PropertySheetPage, which was leaking
-    	navigator.getSite().getSelectionProvider().setSelection(new StructuredSelection(proj));
-
-		// create a reference for the 'Properties' view
-		ReferenceQueue queue = new ReferenceQueue();
-		Reference ref = createReference(queue, propertiesView);
-
-		try {
-			// hide the views
-	    	fActivePage.hideView(navigator);
-	    	fActivePage.hideView(propertiesView);
-			// remove our references
-			navigator = null;
-			propertiesView = null;
-			// check for leaks
-			checkRef(queue, ref);
-		} finally {
-			ref.clear();
-		}
-	}
-    
-    public void testTextEditorContextMenu() throws Exception {
-    	proj = FileUtil.createProject("testEditorLeaks");
-
-    	IEditorInput input = new NullEditorInput();
-        ReferenceQueue queue = new ReferenceQueue();
-        IEditorPart editor = IDE.openEditor(fActivePage, input, "org.eclipse.ui.tests.leak.contextEditor");
-        assertTrue(editor instanceof ContextEditorPart);
-        Reference ref = createReference(queue, editor);
-        
-        ContextEditorPart contextMenuEditor = (ContextEditorPart) editor;
-        
-        contextMenuEditor.showMenu();
-        processEvents();
-        
-        contextMenuEditor.hideMenu();
-        processEvents();
-        
-        try {
-            contextMenuEditor = null;
-            fActivePage.closeEditor(editor, false);
-            editor = null;
-            checkRef(queue, ref);
-        } finally {
-            ref.clear();
-        }
-    }
-
-      /**
-       * No idea why the following test is failing.  Doug has ran this through a 
-       * profiler and for some reason the window just isn't being GCd despite 
-       * there not being nay incoming references.
-       */
-//    public void testSimpleWindowLeak() throws Exception {
-//        //turn off window management so that we dont have a reference to our
-//        // new
-//        //window in the listener
-//        manageWindows(false);
-//        try {
-//            ReferenceQueue queue = new ReferenceQueue();
-//            IWorkbenchWindow newWindow = openTestWindow();
-//
-//            assertNotNull(newWindow);
-//            Reference ref = createReference(queue, newWindow);
-//            try {
-//                newWindow.close();
-//                newWindow = null;
-//                checkRef(queue, ref);
-//            } finally {
-//                ref.clear();
-//            }
-//        } finally {
-//            manageWindows(true);
-//        }
-//    }
-    
-    /**
-     * Test for leaks if dialog is disposed before it is closed.
-     * This is really testing the framework rather than individual
-     * dialogs, since many dialogs or windows will fail if the shell
-     * is destroyed prior to closing them.
-     * See bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=123296
-     */
-  public void testDestroyedDialogLeaks() throws Exception {
-	  ReferenceQueue queue = new ReferenceQueue();
-	  // Use SaveAs dialog because it's simple to invoke and utilizes
-	  // framework function such as storing dialog bounds.  
-	  // We are really testing the framework itself here.
-	  Dialog newDialog = new SaveAsDialog(fWin.getShell());
-      newDialog.setBlockOnOpen(false);
-      newDialog.open();
-      assertNotNull(newDialog);
-      Reference ref = createReference(queue, newDialog);
-      try {
-      	  // Dispose the window before closing it.  
-       	  newDialog.getShell().dispose();
-       	  newDialog.close();
-       	  newDialog = null;
-          checkRef(queue, ref);
-      } finally {
-    	  ref.clear();
-      }
-  }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/BrokenUpdatePreferencePage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/BrokenUpdatePreferencePage.java
deleted file mode 100644
index 15281fd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/BrokenUpdatePreferencePage.java
+++ /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
- *******************************************************************************/
-package org.eclipse.ui.tests.manual;
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.FontData;
-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.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.internal.util.PrefUtil;
-
-/**
- * This is a test preference page designed to
- * generate errors on update
- */
-public class BrokenUpdatePreferencePage extends PreferencePage implements
-        IWorkbenchPreferencePage {
-
-    private IPropertyChangeListener badListener = new IPropertyChangeListener() {
-        public void propertyChange(PropertyChangeEvent event) {
-            //Intentionally generate an error
-            String[] strings = new String[1];
-            System.out.println(strings[2]);
-        }
-    };
-
-    FontData[] data;
-
-    /**
-     * @see org.eclipse.jface.preference.PreferencePage#createContents(Composite)
-     */
-    protected Control createContents(Composite parent) {
-
-        data = parent.getFont().getFontData();
-
-        Composite buttonComposite = new Composite(parent, SWT.NULL);
-        buttonComposite.setLayout(new GridLayout());
-        buttonComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-        Button fontButton = new Button(buttonComposite, SWT.PUSH);
-        fontButton.setText("Update Font");
-        fontButton.addSelectionListener(new SelectionListener() {
-            public void widgetSelected(SelectionEvent e) {
-                changeFont();
-            }
-
-            public void widgetDefaultSelected(SelectionEvent e) {
-                changeFont();
-            }
-        });
-
-        Button preferencePluginButton = new Button(buttonComposite, SWT.PUSH);
-        preferencePluginButton.setText("Update Plugin Preferences");
-        preferencePluginButton.addSelectionListener(new SelectionListener() {
-            public void widgetSelected(SelectionEvent e) {
-                changePluginPreference();
-            }
-
-            public void widgetDefaultSelected(SelectionEvent e) {
-                changePluginPreference();
-            }
-        });
-
-        Button preferenceButton = new Button(buttonComposite, SWT.PUSH);
-        preferenceButton.setText("Update Dialog Preferences");
-        preferenceButton.addSelectionListener(new SelectionListener() {
-            public void widgetSelected(SelectionEvent e) {
-                changePluginPreference();
-            }
-
-            public void widgetDefaultSelected(SelectionEvent e) {
-                changePluginPreference();
-            }
-        });
-
-        return buttonComposite;
-
-    }
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchPreferencePage#init(IWorkbench)
-     */
-    public void init(IWorkbench workbench) {
-
-        JFaceResources.getFontRegistry().addListener(badListener);
-
-        PrefUtil.getInternalPreferenceStore()
-                .addPropertyChangeListener(badListener);
-
-    }
-
-    /**	
-     * see@DialogPage.dispose();
-     */
-    public void dispose() {
-        super.dispose();
-        JFaceResources.getFontRegistry().removeListener(badListener);
-
-        PrefUtil.getInternalPreferenceStore()
-                .removePropertyChangeListener(badListener);
-    }
-
-    public void changeFont() {
-        JFaceResources.getFontRegistry().put("FAKO", data);
-    }
-
-    public void changePluginPreference() {
-        PrefUtil.getInternalPreferenceStore().firePropertyChangeEvent(
-                "FAKO", "Old", "New");
-    }
-
-    public void changePreference() {
-        getPreferenceStore().firePropertyChangeEvent("FAKO", "Old", "New");
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ExplicitlyBusyView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ExplicitlyBusyView.java
deleted file mode 100644
index f7a138e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ExplicitlyBusyView.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.manual;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.swt.SWT;
-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.ui.part.ViewPart;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-
-/**
- * @since 3.3
- * 
- */
-public class ExplicitlyBusyView extends ViewPart {
-
-	private IWorkbenchSiteProgressService progressService;
-	private Object family = new Object();
-	private int counter;
-
-	class SomeJob extends Job {
-		public SomeJob(String name) {
-			super(name);
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			try {
-				Thread.sleep(5000);
-			} catch (InterruptedException e) {
-				e.printStackTrace();
-			}
-			return Status.OK_STATUS;
-		}
-
-		public boolean belongsTo(Object family) {
-			return family == ExplicitlyBusyView.this.family;
-		}
-	}
-
-	public void createPartControl(Composite parent) {
-		progressService = (IWorkbenchSiteProgressService) getSite().getAdapter(
-				IWorkbenchSiteProgressService.class);
-		progressService.showBusyForFamily(family);
-		{
-			final Button button = new Button(parent, SWT.CHECK);
-			button.setText("Busy");
-			button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					if (button.getSelection()) {
-						progressService.incrementBusy();
-					} else {
-						progressService.decrementBusy();
-					}
-				}
-			});
-		}
-		{
-			Button button = new Button(parent, SWT.PUSH);
-			button.setText("Increment Busy");
-			button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					progressService.incrementBusy();
-				}
-			});
-		}
-		{
-			Button button = new Button(parent, SWT.PUSH);
-			button.setText("Decrement Busy");
-			button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					progressService.decrementBusy();
-				}
-			});
-		}
-		{
-			Button button = new Button(parent, SWT.PUSH);
-			button.setText("Spawn Job");
-			button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					new SomeJob("Some Job " + counter++).schedule();
-				}
-			});
-		}
-		GridLayoutFactory.swtDefaults().applyTo(parent);
-	}
-
-	public void setFocus() {
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/SaveablesView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/SaveablesView.java
deleted file mode 100644
index ffa320f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/SaveablesView.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.manual;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-
-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.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.resource.LocalResourceManager;
-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.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-
-import org.eclipse.ui.ISaveablesLifecycleListener;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.Saveable;
-import org.eclipse.ui.SaveablesLifecycleEvent;
-import org.eclipse.ui.internal.SaveablesList;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * Helper view to see the open Saveable objects and their dirty state.
- */
-
-public class SaveablesView extends ViewPart {
-	private TableViewer viewer;
-
-	private Action printSourcesAction;
-
-	private ISaveablesLifecycleListener saveablesLifecycleListener = new ISaveablesLifecycleListener() {
-		public void handleLifecycleEvent(SaveablesLifecycleEvent event) {
-			if (event.getEventType() == SaveablesLifecycleEvent.DIRTY_CHANGED) {
-				Saveable[] saveables = event.getSaveables();
-				viewer.update(saveables, null);
-			} else {
-				viewer.refresh();
-			}
-		}
-	};
-
-	private LocalResourceManager resourceManager;
-
-	/*
-	 * The content provider class is responsible for providing objects to the
-	 * view. It can wrap existing objects in adapters or simply return objects
-	 * as-is. These objects may be sensitive to the current input of the view,
-	 * or ignore it and always show the same content (like Task List, for
-	 * example).
-	 */
-
-	class ViewContentProvider implements IStructuredContentProvider {
-		public void inputChanged(Viewer v, Object oldInput, Object newInput) {
-		}
-
-		public void dispose() {
-		}
-
-		public Object[] getElements(Object parent) {
-			return ((SaveablesList) getSite().getService(
-					ISaveablesLifecycleListener.class)).getOpenModels();
-		}
-	}
-
-	class ViewLabelProvider extends LabelProvider implements
-			ITableLabelProvider {
-		public String getColumnText(Object obj, int index) {
-			Saveable saveable = (Saveable) obj;
-			return (saveable.isDirty()?"* ":"")+saveable.getName();
-		}
-
-		public Image getColumnImage(Object obj, int index) {
-			return getImage(obj);
-		}
-
-		public Image getImage(Object obj) {
-			ImageDescriptor descriptor = ((Saveable) obj)
-					.getImageDescriptor();
-			Image image = resourceManager.createImage(descriptor);
-			return image;
-		}
-	}
-
-	class NameSorter extends ViewerSorter {
-		public int compare(Viewer viewer, Object e1, Object e2) {
-			return ((Saveable)e1).getName().compareTo(((Saveable)e2).getName());
-		}
-	}
-
-	/**
-	 * The constructor.
-	 */
-	public SaveablesView() {
-		this.resourceManager = new LocalResourceManager(JFaceResources.getResources());
-	}
-	
-	public void dispose() {
-		((SaveablesList) getSite().getService(
-				ISaveablesLifecycleListener.class))
-				.removeModelLifecycleListener(saveablesLifecycleListener);
-		saveablesLifecycleListener = null;
-		resourceManager.dispose();
-		resourceManager = null;
-		super.dispose();
-	}
-
-	/**
-	 * This is a callback that will allow us to create the viewer and initialize
-	 * it.
-	 */
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL
-				| SWT.V_SCROLL);
-		viewer.setContentProvider(new ViewContentProvider());
-		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setSorter(new NameSorter());
-		viewer.setInput(getViewSite());
-		((SaveablesList) getSite().getService(
-				ISaveablesLifecycleListener.class))
-				.addModelLifecycleListener(saveablesLifecycleListener);
-		makeActions();
-		hookContextMenu();
-	}
-
-	private void hookContextMenu() {
-		MenuManager menuMgr = new MenuManager("#PopupMenu");
-		menuMgr.setRemoveAllWhenShown(true);
-		menuMgr.addMenuListener(new IMenuListener() {
-			public void menuAboutToShow(IMenuManager manager) {
-				SaveablesView.this.fillContextMenu(manager);
-			}
-		});
-		Menu menu = menuMgr.createContextMenu(viewer.getControl());
-		viewer.getControl().setMenu(menu);
-		getSite().registerContextMenu(menuMgr, viewer);
-	}
-
-	private void fillContextMenu(IMenuManager manager) {
-		manager.add(printSourcesAction);
-		// Other plug-ins can contribute there actions here
-		manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-	}
-
-	private void makeActions() {
-		printSourcesAction = new Action() {
-			public void run() {
-				Saveable saveable = (Saveable) ((IStructuredSelection)viewer.getSelection()).getFirstElement();
-				SaveablesList manager = (SaveablesList) getSite().getService(ISaveablesLifecycleListener.class);
-				Object[] sources = manager.testGetSourcesForModel(saveable);
-				for (int i = 0; i < sources.length; i++) {
-					Object source = sources[i];
-					System.out.println(source);
-				}
-			}
-		};
-		printSourcesAction.setText("Print sources to stdout");
-		printSourcesAction.setToolTipText("Action tooltip");
-		printSourcesAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages()
-				.getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
-	}
-
-	/**
-	 * Passing the focus request to the viewer's control.
-	 */
-	public void setFocus() {
-		viewer.getControl().setFocus();
-	}
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/TestBackgroundSaveEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/TestBackgroundSaveEditor.java
deleted file mode 100644
index bf51c96..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/TestBackgroundSaveEditor.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.manual;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.beans.BeansObservables;
-import org.eclipse.core.databinding.observable.Realm;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubMonitor;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.ISaveablesSource;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.Saveable;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.part.EditorPart;
-import org.eclipse.ui.progress.IJobRunnable;
-
-/**
- * @since 3.3
- * 
- */
-public class TestBackgroundSaveEditor extends EditorPart implements
-		ISaveablesSource {
-
-	public class MySaveable extends Saveable {
-
-		PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
-
-		private boolean dirty;
-
-		public void doSave(IProgressMonitor monitor) throws CoreException {
-			SubMonitor subMonitor = SubMonitor.convert(monitor, 2);
-			IJobRunnable runnable = doSave(subMonitor.newChild(1), getSite());
-			if (runnable!=null) {
-				runnable.run(subMonitor.newChild(1));
-			}
-			monitor.done();
-		}
-
-		public IJobRunnable doSave(IProgressMonitor monitor,
-				IShellProvider shellProvider) throws CoreException {
-			monitor.beginTask("Saving in the foreground",
-					data.foregroundSaveTime);
-			data.setOutput("");
-			for (int i = 0; i < data.foregroundSaveTime; i++) {
-				if (monitor.isCanceled()) {
-					return null;
-				}
-				try {
-					Thread.sleep(1000);
-				} catch (InterruptedException e) {
-					Thread.currentThread().interrupt();
-				}
-				data.setOutput(data.getInput().substring(0,
-						Math.min(i, data.getInput().length())));
-				monitor.worked(1);
-			}
-			if (data.throwExceptionInForeground) {
-				throw new CoreException(new Status(IStatus.ERROR,
-						"org.eclipse.ui.tests",
-						"Saving in the foreground failed"));
-			}
-			monitor.done();
-			if (!data.saveInBackground) {
-				data.setOutput(data.getInput());
-				setDirty(false);
-				return null;
-			}
-			IJobRunnable result = new IJobRunnable() {
-				public IStatus run(IProgressMonitor monitor) {
-					monitor.beginTask("Saving in the background",
-							data.backgroundSaveTime);
-					for (int i = 0; i < data.backgroundSaveTime; i++) {
-						if (monitor.isCanceled()) {
-							return Status.CANCEL_STATUS;
-						}
-						try {
-							Thread.sleep(1000);
-						} catch (InterruptedException e) {
-							Thread.currentThread().interrupt();
-						}
-						data.setOutput(data.getInput().substring(
-								0,
-								Math.min(i + data.foregroundSaveTime, data
-										.getInput().length())));
-						monitor.worked(1);
-					}
-					if (data.throwExceptionInBackground) {
-						return new Status(IStatus.ERROR,
-								"org.eclipse.ui.tests",
-								"Saving in the background failed");
-					}
-					data.setOutput(data.getInput());
-					setDirty(false);
-					monitor.done();
-					return Status.OK_STATUS;
-				}
-			};
-			return result;
-		}
-
-		public boolean equals(Object object) {
-			return this == object;
-		}
-
-		public ImageDescriptor getImageDescriptor() {
-			return input.getImageDescriptor();
-		}
-
-		public String getName() {
-			return input.getName();
-		}
-
-		public String getToolTipText() {
-			return input.getToolTipText();
-		}
-
-		public int hashCode() {
-			return System.identityHashCode(this);
-		}
-
-		public boolean isDirty() {
-			return dirty;
-		}
-
-		public void setDirty(boolean dirty) {
-			firePropertyChange("dirty", new Boolean(this.dirty), new Boolean(
-					this.dirty = dirty));
-			getSite().getShell().getDisplay().syncExec(new Runnable(){
-				public void run() {
-					TestBackgroundSaveEditor.this
-					.firePropertyChange(ISaveablePart.PROP_DIRTY);
-				}});
-		}
-
-		public void addPropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			changeSupport.addPropertyChangeListener(propertyName, listener);
-		}
-
-		void firePropertyChange(String propertyName, Object oldValue,
-				Object newValue) {
-			changeSupport.firePropertyChange(propertyName, oldValue, newValue);
-		}
-
-		public void removePropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(propertyName, listener);
-		}
-	}
-
-	private MySaveable mySaveable;
-	private Text inputText;
-	private IEditorInput input;
-
-	public TestBackgroundSaveEditor() {
-		mySaveable = new MySaveable();
-	}
-
-	public void createPartControl(Composite parent) {
-		Realm realm = SWTObservables.getRealm(parent.getDisplay());
-		final DataBindingContext dbc = new DataBindingContext(realm);
-		parent.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				dbc.dispose();
-			}
-		});
-
-		final IObservableValue inputObservable = BeansObservables.observeValue(
-				realm, data, "input");
-		final IObservableValue outputObservable = BeansObservables
-				.observeValue(realm, data, "output");
-
-		createInputGroup(parent, dbc, inputObservable);
-		createOptionsGroup(parent, realm, dbc);
-		createOutputGroup(parent, dbc, outputObservable);
-
-		GridLayoutFactory.swtDefaults().numColumns(3).equalWidth(true)
-				.generateLayout(parent);
-	}
-
-	private void createOutputGroup(Composite parent,
-			final DataBindingContext dbc,
-			final IObservableValue outputObservable) {
-		Group outputGroup = new Group(parent, SWT.NONE);
-		outputGroup.setText("Output");
-		Text outputText = new Text(outputGroup, SWT.BORDER | SWT.READ_ONLY
-				| SWT.MULTI);
-		GridDataFactory.fillDefaults().grab(true, true).applyTo(outputText);
-		dbc.bindValue(SWTObservables.observeText(outputText, SWT.NONE),
-				outputObservable, null, null);
-		GridLayoutFactory.swtDefaults().generateLayout(outputGroup);
-	}
-
-	private void createOptionsGroup(Composite parent, Realm realm,
-			final DataBindingContext dbc) {
-		Group optionsGroup = new Group(parent, SWT.NONE);
-		optionsGroup.setText("Options");
-
-		Button dirtyButton = new Button(optionsGroup, SWT.CHECK);
-		new Label(optionsGroup, SWT.NONE).setText("Editor is dirty");
-		IObservableValue dirtyObservable = BeansObservables.observeValue(realm,
-				mySaveable, "dirty");
-		dbc.bindValue(SWTObservables.observeSelection(dirtyButton),
-				dirtyObservable, null, null);
-		// IObservableValue inputAndOutputDiffer = new ComputedValue(realm) {
-		// protected Object calculate() {
-		// return new Boolean(!Util.equals(inputObservable.getValue(),
-		// outputObservable.getValue()));
-		// }
-		// };
-		// dbc.bindValue(dirtyObservable, inputAndOutputDiffer, null);
-
-		Button saveInBackgroundButton = new Button(optionsGroup, SWT.CHECK);
-		new Label(optionsGroup, SWT.NONE)
-				.setText("Do part of the save in the background");
-		dbc.bindValue(SWTObservables.observeSelection(saveInBackgroundButton),
-				BeansObservables.observeValue(realm, data, "saveInBackground"),
-				null, null);
-
-		Button foregroundExceptionButton = new Button(optionsGroup, SWT.CHECK);
-		new Label(optionsGroup, SWT.NONE)
-				.setText("Throw exception while saving in the foreground");
-		dbc.bindValue(SWTObservables
-				.observeSelection(foregroundExceptionButton), BeansObservables
-				.observeValue(realm, data, "throwExceptionInForeground"), null, null);
-
-		Button backgroundExceptionButton = new Button(optionsGroup, SWT.CHECK);
-		new Label(optionsGroup, SWT.NONE)
-				.setText("Throw exception while saving in the background");
-		dbc.bindValue(SWTObservables
-				.observeSelection(backgroundExceptionButton), BeansObservables
-				.observeValue(realm, data, "throwExceptionInBackground"), null, null);
-
-		new Label(optionsGroup, SWT.NONE).setText("Foreground save time:");
-		Text optionsForegroundTime = new Text(optionsGroup, SWT.BORDER);
-		dbc.bindValue(SWTObservables.observeText(optionsForegroundTime,
-				SWT.Modify), BeansObservables.observeValue(realm, data,
-				"foregroundSaveTime"), null, null);
-
-		new Label(optionsGroup, SWT.NONE).setText("Background save time:");
-		Text optionsBackgroundTime = new Text(optionsGroup, SWT.BORDER);
-		dbc.bindValue(SWTObservables.observeText(optionsBackgroundTime,
-				SWT.Modify), BeansObservables.observeValue(realm, data,
-				"backgroundSaveTime"), null, null);
-
-		GridLayoutFactory.swtDefaults().numColumns(2).generateLayout(
-				optionsGroup);
-	}
-
-	private void createInputGroup(Composite parent,
-			final DataBindingContext dbc, final IObservableValue inputObservable) {
-		Group inputGroup = new Group(parent, SWT.NONE);
-		inputGroup.setText("Input");
-
-		inputText = new Text(inputGroup, SWT.BORDER | SWT.MULTI);
-		dbc.bindValue(SWTObservables.observeText(inputText, SWT.Modify),
-				inputObservable, null, null);
-
-		GridLayoutFactory.swtDefaults().generateLayout(inputGroup);
-	}
-
-	public void doSave(IProgressMonitor monitor) {
-		try {
-			mySaveable.doSave(monitor);
-		} catch (CoreException e) {
-			String title = "Save failed";
-			WorkbenchPlugin.log(title, new Status(IStatus.WARNING,
-					PlatformUI.PLUGIN_ID, 0, title, e));
-			MessageDialog.openError(getSite().getShell(),
-					WorkbenchMessages.Error, title + ':' + e.getMessage());
-		}
-	}
-
-	public void doSaveAs() {
-		Assert.isTrue(false, "Should not be called");
-	}
-
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		if (!(input instanceof IFileEditorInput))
-			throw new PartInitException(
-					"Invalid Input: Must be IFileEditorInput");
-		setSite(site);
-		setInput(input);
-		this.input = input;
-	}
-
-	public boolean isDirty() {
-		return mySaveable.isDirty();
-	}
-
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	public void setFocus() {
-		inputText.setFocus();
-	}
-
-	public static class Data {
-		PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
-		public String input = "";
-		public String output = "";
-		public String buffer;
-		public boolean saveInBackground;
-		public boolean throwExceptionInForeground;
-		public boolean throwExceptionInBackground;
-		public int foregroundSaveTime;
-		public int backgroundSaveTime;
-
-		public String getOutput() {
-			return output;
-		}
-
-		public void setOutput(String output) {
-			firePropertyChange("output", this.output, this.output = output);
-		}
-
-		public void addPropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			changeSupport.addPropertyChangeListener(propertyName, listener);
-		}
-
-		void firePropertyChange(String propertyName, Object oldValue,
-				Object newValue) {
-			changeSupport.firePropertyChange(propertyName, oldValue, newValue);
-		}
-
-		public void removePropertyChangeListener(String propertyName,
-				PropertyChangeListener listener) {
-			changeSupport.removePropertyChangeListener(propertyName, listener);
-		}
-
-		/**
-		 * @return Returns the input.
-		 */
-		public String getInput() {
-			return input;
-		}
-
-		/**
-		 * @param input
-		 *            The input to set.
-		 */
-		public void setInput(String input) {
-			this.input = input;
-		}
-
-		/**
-		 * @return Returns the buffer.
-		 */
-		public String getBuffer() {
-			return buffer;
-		}
-
-		/**
-		 * @param buffer
-		 *            The buffer to set.
-		 */
-		public void setBuffer(String buffer) {
-			this.buffer = buffer;
-		}
-
-		/**
-		 * @return Returns the saveInBackground.
-		 */
-		public boolean isSaveInBackground() {
-			return saveInBackground;
-		}
-
-		/**
-		 * @param saveInBackground
-		 *            The saveInBackground to set.
-		 */
-		public void setSaveInBackground(boolean saveInBackground) {
-			this.saveInBackground = saveInBackground;
-		}
-
-		/**
-		 * @return Returns the throwExceptionInForeground.
-		 */
-		public boolean isThrowExceptionInForeground() {
-			return throwExceptionInForeground;
-		}
-
-		/**
-		 * @param throwExceptionInForeground
-		 *            The throwExceptionInForeground to set.
-		 */
-		public void setThrowExceptionInForeground(
-				boolean throwExceptionInForeground) {
-			this.throwExceptionInForeground = throwExceptionInForeground;
-		}
-
-		/**
-		 * @return Returns the throwExceptionInBackground.
-		 */
-		public boolean isThrowExceptionInBackground() {
-			return throwExceptionInBackground;
-		}
-
-		/**
-		 * @param throwExceptionInBackground
-		 *            The throwExceptionInBackground to set.
-		 */
-		public void setThrowExceptionInBackground(
-				boolean throwExceptionInBackground) {
-			this.throwExceptionInBackground = throwExceptionInBackground;
-		}
-
-		/**
-		 * @return Returns the foregroundSaveTime.
-		 */
-		public int getForegroundSaveTime() {
-			return foregroundSaveTime;
-		}
-
-		/**
-		 * @param foregroundSaveTime
-		 *            The foregroundSaveTime to set.
-		 */
-		public void setForegroundSaveTime(int foregroundSaveTime) {
-			this.foregroundSaveTime = foregroundSaveTime;
-		}
-
-		/**
-		 * @return Returns the backgroundSaveTime.
-		 */
-		public int getBackgroundSaveTime() {
-			return backgroundSaveTime;
-		}
-
-		/**
-		 * @param backgroundSaveTime
-		 *            The backgroundSaveTime to set.
-		 */
-		public void setBackgroundSaveTime(int backgroundSaveTime) {
-			this.backgroundSaveTime = backgroundSaveTime;
-		}
-	}
-
-	private Data data = new Data();
-
-	public Saveable[] getActiveSaveables() {
-		return new Saveable[] { mySaveable };
-	}
-
-	public Saveable[] getSaveables() {
-		return new Saveable[] { mySaveable };
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/UIPreferencesManual.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/UIPreferencesManual.java
deleted file mode 100644
index b902fa3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/UIPreferencesManual.java
+++ /dev/null
@@ -1,65 +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.ui.tests.manual;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.tests.dialogs.PreferenceDialogWrapper;
-import org.eclipse.ui.tests.dialogs.UIPreferencesAuto;
-
-/**
- * The UIPreferencesManual is a test case that requires
- * the user to click OK on message dialog when it is
- * run
- */
-
-public class UIPreferencesManual extends UIPreferencesAuto {
-
-    public UIPreferencesManual(String name) {
-        super(name);
-    }
-
-    /**
-     * Test the bad update preference page by generating all
-     * of the dialog errors.
-     */
-    public void testBrokenListenerPref() {
-
-        PreferenceDialogWrapper dialog = null;
-        PreferenceManager manager = WorkbenchPlugin.getDefault()
-                .getPreferenceManager();
-        if (manager != null) {
-            dialog = new PreferenceDialogWrapper(getShell(), manager);
-            dialog.create();
-
-            for (Iterator iterator = manager.getElements(
-                    PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
-                IPreferenceNode node = (IPreferenceNode) iterator.next();
-                if (node
-                        .getId()
-                        .equals(
-                                "org.eclipse.ui.tests.manual.BrokenUpdatePreferencePage")) {
-                    dialog.showPage(node);
-                    BrokenUpdatePreferencePage page = (BrokenUpdatePreferencePage) dialog
-                            .getPage(node);
-                    page.changeFont();
-                    page.changePluginPreference();
-                    break;
-                }
-            }
-        }
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ViewWithSaveables.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ViewWithSaveables.java
deleted file mode 100644
index c949345..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/manual/ViewWithSaveables.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.manual;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.databinding.observable.Diffs;
-import org.eclipse.core.databinding.observable.list.WritableList;
-import org.eclipse.core.databinding.observable.map.ComputedObservableMap;
-import org.eclipse.core.databinding.observable.set.IObservableSet;
-import org.eclipse.core.databinding.observable.value.ComputedValue;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.observable.value.IValueChangeListener;
-import org.eclipse.core.databinding.observable.value.ValueChangeEvent;
-import org.eclipse.core.databinding.observable.value.WritableValue;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.databinding.viewers.ObservableListContentProvider;
-import org.eclipse.jface.databinding.viewers.ObservableMapLabelProvider;
-import org.eclipse.jface.databinding.viewers.ViewersObservables;
-import org.eclipse.jface.internal.databinding.provisional.swt.ControlUpdater;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.swt.SWT;
-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.ui.ISaveablePart;
-import org.eclipse.ui.ISaveablesLifecycleListener;
-import org.eclipse.ui.ISaveablesSource;
-import org.eclipse.ui.Saveable;
-import org.eclipse.ui.SaveablesLifecycleEvent;
-import org.eclipse.ui.part.ViewPart;
-
-public class ViewWithSaveables extends ViewPart implements ISaveablesSource,
-		ISaveablePart {
-
-	WritableList saveables = new WritableList();
-	IObservableValue dirty = new ComputedValue() {
-		protected Object calculate() {
-			for (Iterator it = saveables.iterator(); it.hasNext();) {
-				MySaveable saveable = (MySaveable) it.next();
-				if (saveable.isDirty()) {
-					return Boolean.TRUE;
-				}
-			}
-			return Boolean.FALSE;
-		}
-	};
-	private TableViewer viewer;
-	private IObservableValue selection;
-
-	public ViewWithSaveables() {
-	}
-
-	public void createPartControl(Composite parent) {
-		viewer = new TableViewer(parent, SWT.BORDER);
-		GridDataFactory.fillDefaults().grab(true, true).span(4,1).applyTo(viewer.getControl());
-		ObservableListContentProvider observableListContentProvider = new ObservableListContentProvider();
-		viewer.setContentProvider(observableListContentProvider);
-		viewer.setLabelProvider(new ObservableMapLabelProvider(
-				new DirtyObservableMap(observableListContentProvider
-						.getKnownElements())) {
-			public String getColumnText(Object element, int columnIndex) {
-				return getText(element);
-			}
-
-			public String getText(Object element) {
-				MySaveable saveable = (MySaveable) element;
-				return (saveable.isDirty() ? "*" : "") + saveable.toString();
-			}
-		});
-		viewer.setInput(saveables);
-		{
-			Button button = new Button(parent, SWT.PUSH);
-			button.setText("Add");
-			button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					addSaveable();
-				}
-			});
-		}
-		selection = ViewersObservables.observeSingleSelection(viewer);
-		{
-			final Button button = new Button(parent, SWT.PUSH);
-			button.setText("Remove");
-			button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					removeSaveable();
-				}
-			});
-			new ControlUpdater(button) {
-				protected void updateControl() {
-					button.setEnabled(selection.getValue() != null);
-				}
-			};
-		}
-		{
-			final Button button = new Button(parent, SWT.CHECK);
-			button.setText("dirty");
-			button.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					MySaveable saveable = (MySaveable) selection.getValue();
-					saveable.setDirty(button.getSelection());
-				}
-			});
-			new ControlUpdater(button) {
-				protected void updateControl() {
-					MySaveable saveable = (MySaveable) selection.getValue();
-					if (saveable == null) {
-						button.setEnabled(false);
-						button.setSelection(false);
-					} else {
-						button.setEnabled(true);
-						// we know that isDirty is implemented using a
-						// WritableValue,
-						// and thus a dependency on that writable value will
-						// result from
-						// calling isDirty().
-						button.setSelection(saveable.isDirty());
-					}
-				}
-			};
-		}
-		getSite().setSelectionProvider(viewer);
-		dirty.addValueChangeListener(new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-				firePropertyChange(ISaveablePart.PROP_DIRTY);
-			}
-		});
-		GridLayoutFactory.fillDefaults().numColumns(4).equalWidth(false).generateLayout(parent);
-	}
-
-	void removeSaveable() {
-		Saveable[] toRemove = getActiveSaveables();
-		ISaveablesLifecycleListener lifecycleListener = (ISaveablesLifecycleListener) getSite()
-				.getService(ISaveablesLifecycleListener.class);
-		SaveablesLifecycleEvent event = new SaveablesLifecycleEvent(this,
-				SaveablesLifecycleEvent.PRE_CLOSE, toRemove, false);
-		lifecycleListener.handleLifecycleEvent(event);
-		if (!event.isVeto()) {
-			saveables.removeAll(Arrays.asList(toRemove));
-			lifecycleListener.handleLifecycleEvent(new SaveablesLifecycleEvent(
-					this, SaveablesLifecycleEvent.POST_CLOSE, toRemove, false));
-		}
-	}
-
-	void addSaveable() {
-		MySaveable saveable = new MySaveable();
-		saveables.add(saveable);
-		ISaveablesLifecycleListener lifecycleListener = (ISaveablesLifecycleListener) getSite()
-				.getService(ISaveablesLifecycleListener.class);
-		lifecycleListener.handleLifecycleEvent(new SaveablesLifecycleEvent(
-				this, SaveablesLifecycleEvent.POST_OPEN,
-				new Saveable[] { saveable }, false));
-	}
-
-	public void setFocus() {
-	}
-
-	public Saveable[] getActiveSaveables() {
-		Saveable selectedSaveable = (Saveable) selection.getValue();
-		return selectedSaveable == null ? new Saveable[0]
-				: new Saveable[] { selectedSaveable };
-	}
-
-	public Saveable[] getSaveables() {
-		return (Saveable[]) saveables.toArray(new Saveable[saveables.size()]);
-	}
-
-	public void doSave(IProgressMonitor monitor) {
-		Assert.isTrue(false,
-				"Save operations should happen through the saveables.");
-	}
-
-	public void doSaveAs() {
-	}
-
-	public boolean isDirty() {
-		return ((Boolean) dirty.getValue()).booleanValue();
-	}
-
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	public boolean isSaveOnCloseNeeded() {
-		return true;
-	}
-
-	class MySaveable extends Saveable {
-
-		private IObservableValue myDirty = new WritableValue(Boolean.FALSE,
-				Boolean.TYPE);
-
-		public void doSave(IProgressMonitor monitor) throws CoreException {
-			setDirty(false);
-		}
-
-		public boolean equals(Object object) {
-			return this == object;
-		}
-
-		public ImageDescriptor getImageDescriptor() {
-			return null;
-		}
-
-		public String getName() {
-			return toString();
-		}
-
-		public String getToolTipText() {
-			return toString();
-		}
-
-		public int hashCode() {
-			return System.identityHashCode(this);
-		}
-
-		public boolean isDirty() {
-			return ((Boolean) myDirty.getValue()).booleanValue();
-		}
-
-		IObservableValue getDirty() {
-			return myDirty;
-		}
-
-		void setDirty(boolean dirty) {
-			myDirty.setValue(Boolean.valueOf(dirty));
-		}
-
-	}
-
-	class DirtyObservableMap extends ComputedObservableMap {
-
-		Map writableValueToElement = new HashMap();
-		
-		private IValueChangeListener valueChangeListener = new IValueChangeListener() {
-			public void handleValueChange(ValueChangeEvent event) {
-					fireMapChange(Diffs.createMapDiffSingleChange(writableValueToElement.get(event
-							.getSource()), event.diff.getOldValue(), event.diff
-							.getNewValue()));
-			}
-		};
-
-		public DirtyObservableMap(IObservableSet knownElements) {
-			super(knownElements);
-			init();
-		}
-
-		protected Object doGet(Object key) {
-			MySaveable saveable = (MySaveable) key;
-			return Boolean.valueOf(saveable.isDirty());
-		}
-
-		protected Object doPut(Object key, Object value) {
-				MySaveable saveable = (MySaveable) key;
-				Boolean oldValue = Boolean.valueOf(saveable.isDirty());
-				saveable.setDirty(((Boolean) value).booleanValue());
-				keySet().add(key);
-				return oldValue;
-		}
-
-		protected void hookListener(Object key) {
-			MySaveable saveable = (MySaveable) key;
-			IObservableValue oValue = saveable.getDirty();
-			writableValueToElement.put(oValue, saveable);
-			oValue.addValueChangeListener(valueChangeListener);
-		}
-
-		protected void unhookListener(Object key) {
-			MySaveable saveable = (MySaveable) key;
-			saveable.getDirty().removeValueChangeListener(valueChangeListener);
-			writableValueToElement.remove(saveable.getDirty());
-		}
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/Bug75909Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/Bug75909Test.java
deleted file mode 100644
index be9b0a6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/Bug75909Test.java
+++ /dev/null
@@ -1,220 +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.tests.markers;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.dialogs.DialogSettings;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.tests.internal.TestMemento;
-import org.eclipse.ui.views.markers.internal.MarkerType;
-import org.eclipse.ui.views.markers.internal.ProblemFilter;
-
-/**
- * Testing for https://bugs.eclipse.org/bugs/show_bug.cgi?id=75909 .
- * Only the marker IDs of the selected filters are saved for the Problems view.
- * If a new plugin is deployed with a new MarkerType, when the session 
- * restarts it looks like it was "unselected" from the filter list, and
- * so it doesn't show up.
- * 
- * These tests cover restoring state from old and new settings files.
- * 
- * @since 3.1
- *
- */
-public class Bug75909Test extends TestCase {
-
-	private static final int OLD_SETTINGS_SELECTED = 4;
-
-	private static final String REMOVED_MARKER_ID = "org.eclipse.pde.core.problem";
-
-	private static final String INCLUDED_MARKER_ID = "org.eclipse.core.resources.problemmarker";
-
-	private static final String MISSING_MARKER_ID = "org.eclipse.jdt.core.problem";
-
-	private static final String OLD_DIALOG_SETTINGS_XML = "old_dialog_settings.xml";
-
-	public static TestSuite suite() {
-		return new TestSuite(Bug75909Test.class);
-	}
-
-	/**
-	 * MarkerFilter.resetState() should make all of the available
-	 * MarkerTypes selected.  The just tests that the environment
-	 * has some datafill in it.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testBasicFilter() throws Throwable {
-		ProblemFilter filter = new ProblemFilter("Bug75909Test");
-		filter.resetState();
-
-		List allTypes = new ArrayList();
-		filter.addAllSubTypes(allTypes);
-		int num_types = allTypes.size();
-
-		// there are more than 4 marker types in the default env.
-		assertTrue("There should be more than 4 types in the system",
-				num_types > 4);
-
-		// after a reset, the number of selected types should
-		// equal the total number of types.
-		assertEquals(num_types, filter.getSelectedTypes().size());
-	}
-
-
-	/**
-	 * Settings can be restored (at least once :-) from the old settings
-	 * attribute format.  Any marker type not listed in the attribute
-	 * will appear as not selected.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRestoreOldState() throws Throwable {
-		IDialogSettings settings = new DialogSettings("Workbench");
-		loadSettings(settings, Bug75909Test.OLD_DIALOG_SETTINGS_XML);
-
-		ProblemFilter filter = new ProblemFilter("Bug75909Test");
-		filter.restoreFilterSettings(getFilterSettings(settings));
-
-		List selected = filter.getSelectedTypes();
-		assertEquals(Bug75909Test.OLD_SETTINGS_SELECTED, selected.size());
-
-		MarkerType marker = getType(filter, Bug75909Test.INCLUDED_MARKER_ID);
-		// this was marked as selected in the old attribute
-		assertTrue(selected.contains(marker));
-
-		MarkerType removed = getType(filter, Bug75909Test.REMOVED_MARKER_ID);
-		// this was missing from the old attribute, so it should not be
-		// selected
-		assertFalse(selected.contains(removed));
-	}
-
-	/**
-	 * When restoring settings from the new attribute, a marker type
-	 * id that is not true or false has just been introduced.  Test that
-	 * the new marker type shows up as selected.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRestoreNewStateMissingId() throws Throwable {
-		IMemento settings = createMissingMemento();
-
-		ProblemFilter filter = new ProblemFilter("Bug75909Test");
-		filter.restoreState(settings);
-
-		List included = new ArrayList();
-		filter.addAllSubTypes(included);
-		
-		List selected = filter.getSelectedTypes();
-		assertEquals(included.size() - 1, selected.size());
-
-		MarkerType marker = getType(filter, Bug75909Test.INCLUDED_MARKER_ID);
-		// was in the file as true, so it should be selected.
-		assertTrue(selected.contains(marker));
-
-		MarkerType removed = getType(filter, Bug75909Test.REMOVED_MARKER_ID);
-		// was in the file as false, so it won't be selected.
-		assertFalse(selected.contains(removed));
-
-		MarkerType missing = getType(filter, Bug75909Test.MISSING_MARKER_ID);
-		// was missing from the file, so it should be selected.
-		assertTrue(selected.contains(missing));
-	}
-	
-	/**
-	 * Create a missing memento that is missing it's name.
-	 * @return IMemento
-	 */
-	private IMemento createMissingMemento() {
-		TestMemento memento = new TestMemento("filter","Filter Test");
-		memento.putString("selectBySeverity","false");
-		memento.putString("contains","true");
-		memento.putString("enabled","true");
-		memento.putInteger("severity",0);
-		memento.putString("description","");
-		memento.putString("filterOnMarkerLimit","true");
-		memento.putString("selectionStatus" ,"org.eclipse.core.resources.problemmarker:true:org.eclipse.pde.core.problem:false:org.eclipse.jdt.core.buildpath_problem:true:org.eclipse.ant.ui.buildFileProblem:true:");
-		memento.putInteger("onResource",0);
-		return memento;
-	}
-
-	/**
-	 * Get the settings for the filter tag.
-	 * @param settings
-	 * @return IDialogSettings
-	 */
-	private IDialogSettings getFilterSettings(IDialogSettings settings) {
-		return settings.getSection("filter");
-	}
-
-	/**
-	 * MarkerFilter.saveState(IDialogSettings) should now save selected
-	 * types with <b>true</b> and unselected types are now saved to the
-	 * list with <b>false</b>.  This is an "identity transform" test.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testSaveState() throws Throwable {
-		ProblemFilter filter = new ProblemFilter("Bug75909Test");
-		filter.resetState();
-
-		List allTypes = new ArrayList();
-		filter.addAllSubTypes(allTypes);
-
-		MarkerType removed = getType(filter, Bug75909Test.REMOVED_MARKER_ID);
-		
-		filter.getSelectedTypes().remove(removed);
-		// there should be one less select type than all of the types.
-		assertEquals(allTypes.size() - 1, filter.getSelectedTypes().size());
-
-		IMemento settings = new TestMemento("Test","Bug75909Test");
-		filter.saveFilterSettings(settings);
-
-		ProblemFilter f2 = new ProblemFilter("Bug75909Test");
-		f2.restoreState(settings);
-		
-		assertEquals(filter.getSelectedTypes().size(),
-				f2.getSelectedTypes().size());
-		assertFalse(f2.getSelectedTypes().contains(removed));
-	}
-
-
-	private void loadSettings(IDialogSettings settings, String resource)
-			throws UnsupportedEncodingException, IOException {
-		InputStream io = null;
-		try {
-			io = getClass().getResourceAsStream(resource);
-			BufferedReader reader = new BufferedReader(new InputStreamReader(
-					io, "utf-8"));
-			settings.load(reader);
-		} finally {
-			if (io != null) {
-				io.close();
-			}
-		}
-	}
-
-	private MarkerType getType(ProblemFilter filter, String id) {
-		return filter.getMarkerType(id);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterActivityTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterActivityTest.java
deleted file mode 100644
index 59b690c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterActivityTest.java
+++ /dev/null
@@ -1,100 +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.tests.markers;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.activities.IActivity;
-import org.eclipse.ui.views.markers.internal.ProblemFilter;
-
-public class DeclarativeFilterActivityTest extends DeclarativeFilterTest {
-
-	static final String PROBLEM_FILTER_TEST_ACTIVITY = "problemFilterTestActivity";
-
-	/**
-	 * The DeclarativeProblemTest is a test of the declarative filters.
-	 * 
-	 * @param testName
-	 */
-	public DeclarativeFilterActivityTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Check that the activities are enabling as expected.
-	 */
-	public void testActivityEnablement() {
-		enableFilterActivity();
-		
-		checkFilteredOut(false);
-		
-		disableFilterActivity();
-		checkFilteredOut(true);
-		enableFilterActivity();
-
-	}
-
-	/**
-	 * Check that all of the filters match filteredOut.
-	 * @param filteredOut
-	 */
-	private void checkFilteredOut(boolean filteredOut) {
-		String[] allFilterNames = getAllFilterNames();
-		String failureMessage = filteredOut ? " should be filtered out" : " should not be filtered out";
-		for (int i = 0; i < allFilterNames.length; i++) {
-			ProblemFilter filter = getFilter(allFilterNames[i]);
-			if(filteredOut)
-				assertNull("Should filter out " + allFilterNames[i] ,filter);
-			else{
-			assertNotNull("No filter for " + allFilterNames[i] ,filter);
-			assertTrue(allFilterNames[i] + failureMessage, filter.isFilteredOutByActivity() == filteredOut);
-			}
-		}
-		
-	}
-
-	/**
-	 * Enable the activity for the declarative filters.
-	 */
-	private void enableFilterActivity() {
-		IActivity activity = PlatformUI.getWorkbench().getActivitySupport()
-				.getActivityManager().getActivity(PROBLEM_FILTER_TEST_ACTIVITY);
-		Set enabledActivityIds = new HashSet(PlatformUI.getWorkbench()
-				.getActivitySupport().getActivityManager()
-				.getEnabledActivityIds());
-		
-		if (!enabledActivityIds.contains(activity.getId()))
-			enabledActivityIds.add(activity.getId());
-		
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				enabledActivityIds);
-	}
-	
-	/**
-	 * Disable the activity for the declarative filters.
-	 */
-	private void disableFilterActivity() {
-		IActivity activity = PlatformUI.getWorkbench().getActivitySupport()
-				.getActivityManager().getActivity(PROBLEM_FILTER_TEST_ACTIVITY);
-		Set enabledActivityIds = new HashSet(PlatformUI.getWorkbench()
-				.getActivitySupport().getActivityManager()
-				.getEnabledActivityIds());
-		
-		if (enabledActivityIds.contains(activity.getId()))
-			enabledActivityIds.remove(activity.getId());
-		
-		PlatformUI.getWorkbench().getActivitySupport().setEnabledActivityIds(
-				enabledActivityIds);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterDeclarationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterDeclarationTest.java
deleted file mode 100644
index 3a2276d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterDeclarationTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-import java.util.List;
-
-import org.eclipse.ui.views.markers.internal.MarkerFilter;
-import org.eclipse.ui.views.markers.internal.MarkerType;
-import org.eclipse.ui.views.markers.internal.ProblemFilter;
-
-public class DeclarativeFilterDeclarationTest extends DeclarativeFilterTest {
-
-	/**
-	 * The DeclarativeFilterActivityTest is a test that the
-	 * declarative filters are removed by activities
-	 * 
-	 * @param testName
-	 */
-	public DeclarativeFilterDeclarationTest(String testName) {
-		super(testName);
-	}
-	
-	/**
-	 * Test the filter on any error.
-	 */
-	public void testAnyErrorFilter() {
-		String filterName = PROBLEM_TEST_ON_ANY_ERROR;
-		ProblemFilter filter = getFilter(filterName);
-		assertTrue(filterName + " not found ", filter != null);
-		assertTrue(filterName + " is enabled ", !filter.isEnabled());
-		assertTrue(filterName + "not selecting by severity", filter
-				.getSelectBySeverity());
-		assertTrue(filterName + "should be on error",
-				filter.getSeverity() == ProblemFilter.SEVERITY_ERROR);
-		assertTrue(filterName + "should be on any",
-				filter.getOnResource() == MarkerFilter.ON_ANY);
-	}
-
-	/**
-	 * Test the filter on selected warning.
-	 */
-	public void testSelectedWarning() {
-		String filterName = PROBLEM_TEST_ON_SELECTED_WARNING;
-		ProblemFilter filter = getFilter(filterName);
-		assertTrue(filterName + " not found ", filter != null);
-		assertTrue(filterName + " is enabled ", !filter.isEnabled());
-		assertTrue(filterName + "not selecting by severity", filter
-				.getSelectBySeverity());
-		assertTrue(filterName + "should be on warning",
-				filter.getSeverity() == ProblemFilter.SEVERITY_WARNING);
-		assertTrue(filterName + "should be on selected only", filter
-				.getOnResource() == MarkerFilter.ON_SELECTED_ONLY);
-	}
-
-	/**
-	 * Test the filter on selected and children infos.
-	 */
-	public void testInfoAndChildren() {
-		String filterName = PROBLEM_TEST_INFO_AND_CHILDREN;
-		ProblemFilter filter = getFilter(filterName);
-		assertTrue(filterName + " not found ", filter != null);
-		assertTrue(filterName + " is enabled ", !filter.isEnabled());
-		assertTrue(filterName + "not selecting by severity", filter
-				.getSelectBySeverity());
-		assertTrue(filterName + "should be on info",
-				filter.getSeverity() == ProblemFilter.SEVERITY_INFO);
-		assertTrue(filterName + "should be on selected and children", filter
-				.getOnResource() == MarkerFilter.ON_SELECTED_AND_CHILDREN);
-	}
-
-	/**
-	 * Test the filter on same container.
-	 */
-	public void testSameContainer() {
-		String filterName = PROBLEM_TEST_SAME_CONTAINER_NO_SEVERITY;
-		ProblemFilter filter = getFilter(filterName);
-		assertTrue(filterName + " not found ", filter != null);
-		assertTrue(filterName + " is enabled ", !filter.isEnabled());
-		assertFalse(filterName + "selecting by severity", filter
-				.getSelectBySeverity());
-		assertTrue(filterName + "should be on on any in same container", filter
-				.getOnResource() == MarkerFilter.ON_ANY_IN_SAME_CONTAINER);
-	}
-
-	/**
-	 * Test the filter on description.
-	 */
-	public void testDescription() {
-		String filterName = PROBLEM_TEST_ON_METHOD;
-		ProblemFilter filter = getFilter(filterName);
-		assertTrue(filterName + " not found ", filter != null);
-		assertTrue(filterName + " is enabled ", !filter.isEnabled());
-		assertTrue(filterName + "does not have description", filter
-				.getDescription().length() > 0);
-		assertTrue(filterName + "not checking contains", filter.getContains());
-	}
-
-	/**
-	 * Test the filter not on description.
-	 */
-	public void testNotOnDescription() {
-		String filterName = PROBLEM_TEST_NOT_ON_METHOD;
-		ProblemFilter filter = getFilter(filterName);
-		assertTrue(filterName + " not found ", filter != null);
-		assertTrue(filterName + " is enabled ", !filter.isEnabled());
-		assertTrue(filterName + "does not have description", filter
-				.getDescription().length() > 0);
-		assertFalse(filterName + "checking contains", filter.getContains());
-	}
-
-	/**
-	 * Test the filter on problem types.
-	 */
-	public void testProblemTypes() {
-		String filterName = PROBLEM_TEST_ON_PROBLEM;
-		ProblemFilter filter = getFilter(filterName);
-		assertTrue(filterName + " not found ", filter != null);
-		assertTrue(filterName + " is enabled ", !filter.isEnabled());
-		List types = filter.getSelectedTypes();
-		assertTrue(
-				filterName + "should only have one type has " + types.size(),
-				types.size() == 1);
-		assertTrue(filterName + "should be enabled for category test",
-				((MarkerType) types.get(0)).getId().equals(
-						"org.eclipse.ui.tests.categoryTestMarker"));
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterTest.java
deleted file mode 100644
index 24bcec1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/DeclarativeFilterTest.java
+++ /dev/null
@@ -1,74 +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.tests.markers;
-
-import java.util.Iterator;
-
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
-import org.eclipse.ui.views.markers.internal.ProblemFilter;
-
-public abstract class DeclarativeFilterTest extends UITestCase {
-
-	public static final String PROBLEM_TEST_ON_PROBLEM = "problemTest.onProblem";
-
-	public static final String PROBLEM_TEST_NOT_ON_METHOD = "problemTest.notOnMethod";
-
-	public static final String PROBLEM_TEST_ON_METHOD = "problemTest.onMethod";
-
-	public static final String PROBLEM_TEST_SAME_CONTAINER_NO_SEVERITY = "problemTest.sameContainerNoSeverity";
-
-	public static final String PROBLEM_TEST_INFO_AND_CHILDREN = "problemTest.infoAndChildren";
-
-	public static final String PROBLEM_TEST_ON_SELECTED_WARNING = "problemTest.onSelectedWarning";
-
-	protected static final String PROBLEM_TEST_ON_ANY_ERROR = "problemTest.onAnyError";
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public DeclarativeFilterTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Get the filter with id.
-	 * 
-	 * @param id
-	 * @return ProblemFilter
-	 */
-	protected ProblemFilter getFilter(String id) {
-		Iterator filters = MarkerSupportRegistry.getInstance()
-				.getRegisteredFilters().iterator();
-		while (filters.hasNext()) {
-			ProblemFilter filter = (ProblemFilter) filters.next();
-			if (filter.getId().equals(id))
-				return filter;
-		}
-		return null;
-
-	}
-
-	/**
-	 * Get the names of all of the filters we are testing.
-	 * @return String[]
-	 */
-	String[] getAllFilterNames() {
-		return new String[] { PROBLEM_TEST_ON_PROBLEM,
-				PROBLEM_TEST_NOT_ON_METHOD, PROBLEM_TEST_ON_METHOD,
-				PROBLEM_TEST_SAME_CONTAINER_NO_SEVERITY,
-				PROBLEM_TEST_INFO_AND_CHILDREN,
-				PROBLEM_TEST_ON_SELECTED_WARNING, PROBLEM_TEST_ON_ANY_ERROR };
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/FIXMEParameters.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/FIXMEParameters.java
deleted file mode 100644
index a15ae2a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/FIXMEParameters.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ui.views.markers.FiltersContributionParameters;
-import org.eclipse.ui.views.markers.MarkerSupportConstants;
-
-public class FIXMEParameters extends FiltersContributionParameters {
-	
-	private static Map fixmeMap;
-	static {
-		fixmeMap = new HashMap();
-		fixmeMap.put(MarkerSupportConstants.CONTAINS_KEY, "FIXME"); //$NON-NLS-1$
-	}
-
-	/**
-	 * The parameters for the fixme test.
-	 */
-	public FIXMEParameters() {
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.views.markers.FiltersContributionParameters#getParameterValues()
-	 */
-	public Map getParameterValues() {
-		return fixmeMap;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSortUtilTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSortUtilTest.java
deleted file mode 100644
index da792c6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSortUtilTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.ui.internal.views.markers.MarkerSortUtil;
-import org.eclipse.ui.internal.views.markers.MockMarkerEntry;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- * 
- */
-public class MarkerSortUtilTest extends UITestCase {
-
-	private static final int ARRAYSIZE = 100000;
-
-	public MarkerSortUtilTest() {
-		super("MarkerSortUtilTest");
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		// TODO Auto-generated method stub
-		super.doSetUp();
-
-	}
-
-	public void testPartialSort() {
-		sortToLimit(ARRAYSIZE,ARRAYSIZE/2);
-	}
-
-	public void testCompleteSort() {
-		sortToLimit(ARRAYSIZE,ARRAYSIZE);
-	}
-	/**
-	 * 
-	 */
-	private void sortToLimit(int arraySize,int limit) {
-		MockMarkerEntry[] fArray1=generateArray(arraySize);
-		MockMarkerEntry[] fArray2=(MockMarkerEntry[]) fArray1.clone();
-		Comparator comparator=new Comparator() {
-			public int compare(Object o1, Object o2) {
-				return ((MockMarkerEntry)o1).name.compareTo(((MockMarkerEntry)o2).name);
-			}
-		};
-		MarkerSortUtil.sortStartingKElement(fArray1, comparator, 0,fArray1.length-1, limit);
-		Arrays.sort(fArray2,comparator);
-		
-		for (int i = 0; i < limit; i++) {
-			if(!fArray1[i].equals(fArray2[i])){
-				fail("Incorrect sorting by MarkerSortUtil.sortStartingKElement(...)");
-			}
-		}
-	}
-
-
-	/**
-	 * Generate a large sized array for sorting
-	 */
-	static MockMarkerEntry[] generateArray(int arraySize) {
-		MockMarkerEntry[] fArray = new MockMarkerEntry[arraySize];
-		int count = arraySize - 1;
-		outer: while (count >= 0) {
-			for (int i = 0; i < 26; i++) {
-				for (int j = 0; j < 26; j++) {
-					for (int k = 0; k < 26; k++) {
-						if (count < 0)
-							break outer;
-						if (k % 2 == 0)
-							fArray[count] = new MockMarkerEntry(
-									new String(
-											new char[] { (char) (i + 'a'),
-													(char) (j + 'A'),
-													(char) (k + 'a') }));
-						else if (k % 3 == 0)
-							fArray[count] = new MockMarkerEntry(
-									new String(
-											new char[] { (char) (i + 'a'),
-													(char) (j + 'a'),
-													(char) (k + 'A') }));
-						else
-							fArray[count] = new MockMarkerEntry(
-									new String(
-											new char[] { (char) (i + 'A'),
-													(char) (j + 'a'),
-													(char) (k + 'a') }));
-						--count;
-					}
-
-				}
-			}
-
-		}
-		return fArray;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSupportRegistryTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSupportRegistryTests.java
deleted file mode 100644
index bbeb813..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerSupportRegistryTests.java
+++ /dev/null
@@ -1,57 +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.tests.markers;
-
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
-
-/**
- * MarkerSupportTests are tests for the markerSupport extension
- * point.
- * @since 3.2
- * 
- */
-public class MarkerSupportRegistryTests extends UITestCase {
-
-	/**
-	 * Create an instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public MarkerSupportRegistryTests(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test that the marker categories expected are found.
-	 *
-	 */
-	public void testMarkerCategories() {
-		doTestCategory("org.eclipse.ui.tests.categoryTestMarker");
-		doTestCategory("org.eclipse.ui.tests.testmarker");
-		doTestCategory("org.eclipse.ui.tests.testmarker2");
-	}
-
-	/**
-	 * Test that the marker type specified is in a category.
-	 * 
-	 * @param string
-	 */
-	private void doTestCategory(String string) {
-		String category = MarkerSupportRegistry.getInstance().getCategory(
-				string);
-		assertFalse("No Category for" + string, category == null);
-		assertTrue("Wrong Category for" + string, category.equals("Test Markers"));
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerTesterTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerTesterTest.java
deleted file mode 100644
index a14d745..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerTesterTest.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.expressions.EvaluationContext;
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.internal.expressions.TestExpression;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * 
- * @since 3.5
- * @author Prakash G.R.
- * 
- */
-public class MarkerTesterTest extends UITestCase {
-
-	private static final String MARKER_NAMESPACE = "org.eclipse.ui.ide.marker";
-	private IProject project;
-
-	public MarkerTesterTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		project = ResourcesPlugin.getWorkspace().getRoot().getProject("tests");
-		if (!project.exists())
-			project.create(null);
-
-		if (!project.isOpen())
-			project.open(null);
-	}
-
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		if (project.exists())
-			project.delete(true, null);
-	}
-
-	public void testSeverity() throws Exception {
-
-		IMarker errorMarker = project.createMarker(IMarker.PROBLEM);
-		Map attributes = new HashMap();
-		attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
-		errorMarker.setAttributes(attributes);
-
-		EvaluationContext context = new EvaluationContext(null, errorMarker);
-		TestExpression testExpression = new TestExpression(MARKER_NAMESPACE,
-				"severity", null, new Integer(IMarker.SEVERITY_ERROR));
-		EvaluationResult result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		IMarker warningMarker = project.createMarker(IMarker.PROBLEM);
-		attributes = new HashMap();
-		attributes.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_WARNING));
-		warningMarker.setAttributes(attributes);
-
-		context = new EvaluationContext(null, warningMarker);
-		testExpression = new TestExpression(MARKER_NAMESPACE, "severity", null,
-				new Integer(IMarker.SEVERITY_WARNING));
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-	}
-
-	public void testType() throws Exception {
-
-		IMarker problemMarker = project.createMarker(IMarker.PROBLEM);
-
-		EvaluationContext context = new EvaluationContext(null, problemMarker);
-		TestExpression testExpression = new TestExpression(MARKER_NAMESPACE,
-				"type", null, IMarker.PROBLEM);
-		EvaluationResult result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		IMarker bookmarkMarker = project.createMarker(IMarker.BOOKMARK);
-
-		context = new EvaluationContext(null, bookmarkMarker);
-		testExpression = new TestExpression(MARKER_NAMESPACE, "type", null,
-				IMarker.BOOKMARK);
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-	}
-
-	public void testSuperType() throws Exception {
-
-		IMarker problemMarker = project.createMarker(IMarker.PROBLEM);
-
-		EvaluationContext context = new EvaluationContext(null, problemMarker);
-		TestExpression testExpression = new TestExpression(MARKER_NAMESPACE,
-				"superType", null, IMarker.MARKER);
-		EvaluationResult result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		testExpression = new TestExpression(MARKER_NAMESPACE, "superType",
-				null, IMarker.BOOKMARK);
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.FALSE, result);
-	}
-
-	public void testPriority() throws Exception {
-
-		IMarker highPriority = project.createMarker(IMarker.PROBLEM);
-		Map attributes = new HashMap();
-		attributes.put(IMarker.PRIORITY, new Integer(IMarker.PRIORITY_HIGH));
-		highPriority.setAttributes(attributes);
-
-		EvaluationContext context = new EvaluationContext(null, highPriority);
-		TestExpression testExpression = new TestExpression(MARKER_NAMESPACE,
-				"priority", null, new Integer(IMarker.PRIORITY_HIGH));
-		EvaluationResult result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		IMarker lowPriority = project.createMarker(IMarker.PROBLEM);
-		attributes = new HashMap();
-		attributes.put(IMarker.PRIORITY, new Integer(IMarker.PRIORITY_LOW));
-		lowPriority.setAttributes(attributes);
-
-		context = new EvaluationContext(null, lowPriority);
-		testExpression = new TestExpression(MARKER_NAMESPACE, "priority", null,
-				new Integer(IMarker.PRIORITY_LOW));
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-	}
-
-	public void testDone() throws Exception {
-
-		IMarker done = project.createMarker(IMarker.TASK);
-		Map attributes = new HashMap();
-		attributes.put(IMarker.DONE, Boolean.TRUE);
-		done.setAttributes(attributes);
-
-		EvaluationContext context = new EvaluationContext(null, done);
-		TestExpression testExpression = new TestExpression(MARKER_NAMESPACE,
-				"done", null, Boolean.TRUE);
-		EvaluationResult result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		IMarker notDone = project.createMarker(IMarker.TASK);
-		attributes = new HashMap();
-		attributes.put(IMarker.DONE, Boolean.FALSE);
-		notDone.setAttributes(attributes);
-
-		context = new EvaluationContext(null, notDone);
-		testExpression = new TestExpression(MARKER_NAMESPACE, "done", null,
-				Boolean.FALSE);
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		IMarker notSet = project.createMarker(IMarker.TASK);
-
-		context = new EvaluationContext(null, notSet);
-		testExpression = new TestExpression(MARKER_NAMESPACE, "done", null,
-				Boolean.TRUE);
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.FALSE, result);
-	}
-
-	public void testMessage() throws Exception {
-
-		IMarker someTaskMarker = project.createMarker(IMarker.TASK);
-		Map attributes = new HashMap();
-		attributes.put(IMarker.MESSAGE, "Some nice message to test");
-		someTaskMarker.setAttributes(attributes);
-
-		EvaluationContext context = new EvaluationContext(null, someTaskMarker);
-		TestExpression testExpression = new TestExpression(MARKER_NAMESPACE,
-				"message", null, "Some nice message to test");
-		EvaluationResult result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		testExpression = new TestExpression(MARKER_NAMESPACE, "message", null,
-				"Some*");
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		testExpression = new TestExpression(MARKER_NAMESPACE, "message", null,
-				"*test");
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		testExpression = new TestExpression(MARKER_NAMESPACE, "message", null,
-				"*nice*");
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		testExpression = new TestExpression(MARKER_NAMESPACE, "message", null,
-				"*noway*");
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.FALSE, result);
-
-	}
-
-	public void testResourceType() throws Exception {
-
-		IMarker someTaskMarker = project.createMarker(IMarker.TASK);
-		Map attributes = new HashMap();
-		attributes.put(IMarker.MESSAGE, "Some nice message to test");
-		someTaskMarker.setAttributes(attributes);
-
-		EvaluationContext context = new EvaluationContext(null, someTaskMarker);
-		TestExpression testExpression = new TestExpression(MARKER_NAMESPACE,
-				"resourceType", null, new Integer(IResource.PROJECT));
-		EvaluationResult result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-		IFolder folder = project.getFolder("forMarker");
-		folder.create(true, true, null);
-
-		IMarker someOtherMarker = folder.createMarker(IMarker.TASK);
-		attributes = new HashMap();
-		attributes.put(IMarker.MESSAGE, "Some nice message to test");
-		someOtherMarker.setAttributes(attributes);
-
-		context = new EvaluationContext(null, someOtherMarker);
-		testExpression = new TestExpression(MARKER_NAMESPACE, "resourceType",
-				null, new Integer(IResource.FOLDER));
-		result = testExpression.evaluate(context);
-		assertEquals(EvaluationResult.TRUE, result);
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerViewTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerViewTests.java
deleted file mode 100644
index df71bca..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkerViewTests.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * MarkerViewTests are the tests for the marker view.
- * 
- * @since 3.4
- * 
- */
-public class MarkerViewTests extends UITestCase {
-
-	/**
-	 * Create a new instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public MarkerViewTests(String testName) {
-		super(testName);
-	}
-
-	public void testOpenView() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage page = window.getActivePage();
-
-		try {
-			page.showView(IPageLayout.ID_BOOKMARKS);
-			page.showView(IPageLayout.ID_PROBLEM_VIEW);
-			page.showView(IPageLayout.ID_TASK_LIST);
-		} catch (PartInitException e) {
-			assertTrue(e.getLocalizedMessage(), false);
-			return;
-		}
-
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java
deleted file mode 100644
index 6185e79..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersTestMarkersView.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.jobs.IJobChangeListener;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.internal.views.markers.ExtendedMarkersView;
-import org.eclipse.ui.views.markers.MarkerSupportView;
-import org.eclipse.ui.views.markers.internal.MarkerSupportRegistry;
-
-/**
- * MarkersTestMarkersView is the test suite version of the markers view.
- * 
- * @since 3.4
- * 
- */
-public class MarkersTestMarkersView extends MarkerSupportView {
-
-	private Tree tree;
-
-	/**
-	 * Create a new instance of the receiver.
-	 */
-	public MarkersTestMarkersView() {
-		super(MarkerSupportRegistry.PROBLEMS_GENERATOR);
-	}
-
-	/**
-	 * Get the current markers for the receiver.
-	 * 
-	 * @return
-	 */
-	public IMarker[] getCurrentMarkers() {
-		Method method;
-		try {
-			method = ExtendedMarkersView.class.getDeclaredMethod("getAllMarkers",
-					new Class[0]);
-			method.setAccessible(true);
-		} catch (SecurityException e) {
-			e.printStackTrace();
-			return new IMarker[0];
-		} catch (NoSuchMethodException e) {
-			e.printStackTrace();
-			return new IMarker[0];
-		}
-		try {
-			return (IMarker[]) method.invoke(this, new Object[0]);
-		} catch (IllegalArgumentException e) {
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			e.printStackTrace();
-		}
-		return new IMarker[0];
-	}
-
-	/**
-	 * Add a listener for the end of the update.
-	 * 
-	 * @param listener
-	 */
-	public void addUpdateFinishListener(IJobChangeListener listener) {
-		getUpdateJobForListener().addJobChangeListener(listener);
-
-	}
-
-	/**
-	 * Return the updateJob.
-	 * 
-	 * @return
-	 */
-	private Job getUpdateJobForListener() {
-		Field field;
-		try {
-			field = ExtendedMarkersView.class.getDeclaredField("updateJob");
-			field.setAccessible(true);
-			return (Job) field.get(this);
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (NoSuchFieldException e) {
-			e.printStackTrace();
-		}
-		
-		return null;
-	}
-
-	/**
-	 * Remove a listener for the end of the update.
-	 * 
-	 * @param listener
-	 */
-	public void removeUpdateFinishListener(IJobChangeListener listener) {
-		getUpdateJobForListener().addJobChangeListener(listener);
-
-	}
-
-	/**
-	 * Set the width of all of the columns.
-	 * @param width
-	 */
-	public void setColumnWidths(int width) {
-		TreeColumn[] treeColumns = tree.getColumns();
-		for (int j = 0; j < treeColumns.length; j++) {
-			treeColumns[j].setWidth(width);
-		}
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.internal.views.markers.ExtendedMarkersView#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		super.createPartControl(parent);
-		tree = (Tree) parent.getChildren()[0];
-	}
-
-	/**
-	 * @param size
-	 * @return
-	 */
-	public boolean checkColumnSizes(int size) {
-		TreeColumn[] treeColumns = tree.getColumns();
-		
-		//Do not check the last column as Linux will resize it to fit the whole table
-		for (int j = 0; j < treeColumns.length - 1; j++) {
-			if(treeColumns[j].getWidth() == size)
-				continue;
-			return false;
-		}
-		return true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersViewColumnSizeTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersViewColumnSizeTest.java
deleted file mode 100644
index 2b6e02a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/MarkersViewColumnSizeTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.4
- * 
- */
-public class MarkersViewColumnSizeTest extends UITestCase {
-
-	/**
-	 * @param testName
-	 */
-	public MarkersViewColumnSizeTest() {
-		super("MarkersViewColumnSizeTest");
-	}
-
-	public void testColumnCreate() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (window == null)
-			assertTrue("Could not get a workbench window", false);
-		IWorkbenchPage page = window.getActivePage();
-		if (page == null)
-			assertTrue("Could not get a workbench page", false);
-
-		MarkersTestMarkersView problemView;
-		try {
-			problemView = (MarkersTestMarkersView) page
-					.showView("org.eclipse.ui.tests.markerTests");
-		} catch (PartInitException e) {
-			assertTrue(e.getLocalizedMessage(), false);
-			return;
-		}
-
-		problemView.setColumnWidths(100);
-
-	}
-	
-	public void testColumnRestore() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		if (window == null)
-			assertTrue("Could not get a workbench window", false);
-		IWorkbenchPage page = window.getActivePage();
-		if (page == null)
-			assertTrue("Could not get a workbench page", false);
-
-		MarkersTestMarkersView problemView;
-		try {
-			problemView = (MarkersTestMarkersView) page
-					.showView("org.eclipse.ui.tests.markerTests");
-		} catch (PartInitException e) {
-			assertTrue(e.getLocalizedMessage(), false);
-			return;
-		}
-
-		assertTrue("Column sizes not restored", problemView
-				.checkColumnSizes(100));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
deleted file mode 100644
index 70e92fb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingMarkersTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.views.markers.MarkerContentGenerator;
-import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-
-public class ResourceMappingMarkersTest extends AbstractNavigatorTest {
-
-	/**
-	 * Create an instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public ResourceMappingMarkersTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Set up the receiver.
-	 * 
-	 * @throws Exception
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		createTestFile();
-	}
-
-	public void testResourceMappings() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench()
-				.getActiveWorkbenchWindow();
-		IWorkbenchPage page = window.getActivePage();
-		ResourceMappingTestView view;
-
-		try {
-			view = (ResourceMappingTestView) page
-					.showView("org.eclipse.ui.tests.resourceMappingView");
-		} catch (PartInitException e) {
-			assertTrue(e.getLocalizedMessage(), false);
-			return;
-		}
-
-		final MarkersTestMarkersView problemView;
-		try {
-			problemView = (MarkersTestMarkersView) page
-					.showView("org.eclipse.ui.tests.markerTests");
-		} catch (PartInitException e) {
-			assertTrue(e.getLocalizedMessage(), false);
-			return;
-		}
-
-		IMarker marker=view.addMarkerToFirstProject();
-		assertNotNull("Marker creation failed", marker);
-		try {
-			Job.getJobManager().join(
-					MarkerContentGenerator.CACHE_UPDATE_FAMILY,
-					new NullProgressMonitor());
-		} catch (OperationCanceledException e) {
-		} catch (InterruptedException e) {
-		}
-		
-		IMarker[] markers=problemView.getCurrentMarkers();
-		boolean markerFound = false;
-		for (int i = 0; i < markers.length; i++) {
-			if(markers[i].equals(marker)){
-				markerFound = true;
-				break;
-			}
-		}
-		assertTrue("No markers generated",markerFound);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingTestView.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingTestView.java
deleted file mode 100644
index db56eb5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/ResourceMappingTestView.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.markers;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.tests.TestPlugin;
-
-public class ResourceMappingTestView extends ViewPart implements IViewPart {
-
-	private TreeViewer viewer;
-
-	public ResourceMappingTestView() {
-		super();
-	}
-
-	public void createPartControl(Composite parent) {
-		viewer = new TreeViewer(parent);
-		viewer.getTree().setLayoutData(
-				new GridData(SWT.FILL, SWT.FILL, true, true));
-
-		viewer.setLabelProvider(new LabelProvider() {
-			public String getText(Object element) {
-				return ((TestResourceMapping) element).getName();
-			}
-		});
-
-		viewer.setContentProvider(getContentProvider());
-		viewer.setInput(new TestResourceMapping(TestPlugin.getWorkspace()
-				.getRoot()));
-	}
-
-	private IContentProvider getContentProvider() {
-		return new ITreeContentProvider() {
-
-			public Object[] getChildren(Object parentElement) {
-				return ((TestResourceMapping) parentElement).getChildren();
-			}
-
-			public Object getParent(Object element) {
-				return ((TestResourceMapping) element).getParent();
-			}
-
-			public boolean hasChildren(Object element) {
-				return ((TestResourceMapping) element).getChildren().length > 0;
-			}
-
-			public Object[] getElements(Object inputElement) {
-				return ((TestResourceMapping) inputElement).getChildren();
-			}
-
-			public void dispose() {
-
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput,
-					Object newInput) {
-
-			}
-
-		};
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		viewer.setSelection(new StructuredSelection(new TestResourceMapping(
-				TestPlugin.getWorkspace().getRoot())));
-	}
-
-	public IMarker addMarkerToFirstProject() {
-		
-		TestResourceMapping top = ((TestResourceMapping) viewer.getInput());
-		IResource element = top.getChildren()[0].element;
-		
-		try {
-			IMarker marker = element.createMarker("org.eclipse.core.resources.problemmarker");
-			marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
-			return marker;
-		} catch (CoreException e) {
-			return null;
-		}
-
-		
-		
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResolutionGenerator.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResolutionGenerator.java
deleted file mode 100644
index a03b559..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResolutionGenerator.java
+++ /dev/null
@@ -1,152 +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.ui.tests.markers;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IMarkerResolution;
-import org.eclipse.ui.IMarkerResolutionGenerator2;
-import org.eclipse.ui.views.markers.MarkerViewUtil;
-import org.eclipse.ui.views.markers.WorkbenchMarkerResolution;
-
-/**
- * TestResolutionGenerator is a marker resolution generator for testing
- * {@link org.eclipse.ui.views.markers.WorkbenchMarkerResolution}
- * 
- * @since 3.2
- * 
- */
-public class TestResolutionGenerator implements IMarkerResolutionGenerator2 {
-
-	private class TestMarkerResolution extends WorkbenchMarkerResolution {
-
-		public IMarker[] findOtherMarkers(IMarker[] markers) {
-			return markers;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IMarkerResolution2#getDescription()
-		 */
-		public String getDescription() {
-			return "A test of the new style resolution";
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IMarkerResolution2#getImage()
-		 */
-		public Image getImage() {
-			return null;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IMarkerResolution#getLabel()
-		 */
-		public String getLabel() {
-			return "3.2 Multi resolution";
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IMarkerResolution#run(org.eclipse.core.resources.IMarker)
-		 */
-		public void run(IMarker marker) {
-			try {
-				System.out.println(marker
-						.getAttribute(MarkerViewUtil.NAME_ATTRIBUTE));
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.views.markers.WorkbenchMarkerResolution#run(org.eclipse.core.resources.IMarker[],
-		 *      org.eclipse.core.runtime.IProgressMonitor)
-		 */
-		public void run(IMarker[] markers, IProgressMonitor monitor) {
-			for (int i = 0; i < markers.length; i++) {
-				IMarker marker = markers[i];
-
-				try {
-					System.out.println(marker
-							.getAttribute(MarkerViewUtil.NAME_ATTRIBUTE));
-				} catch (CoreException e) {
-					e.printStackTrace();
-				}
-			}
-		}
-
-	}
-
-	private class CompatibilityTestMarkerResolution implements
-			IMarkerResolution {
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IMarkerResolution#getLabel()
-		 */
-		public String getLabel() {
-			return "3.1 Compatibility Resolution";
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.IMarkerResolution#run(org.eclipse.core.resources.IMarker)
-		 */
-		public void run(IMarker marker) {
-			try {
-				System.out.println(marker
-						.getAttribute(MarkerViewUtil.NAME_ATTRIBUTE));
-			} catch (CoreException e) {
-				e.printStackTrace();
-			}
-
-		}
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IMarkerResolutionGenerator2#hasResolutions(org.eclipse.core.resources.IMarker)
-	 */
-	public boolean hasResolutions(IMarker marker) {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IMarkerResolutionGenerator#getResolutions(org.eclipse.core.resources.IMarker)
-	 */
-	public IMarkerResolution[] getResolutions(IMarker marker) {
-		IMarkerResolution[] resolutions = new IMarkerResolution[2];
-
-		resolutions[0] = new TestMarkerResolution();
-		resolutions[1] = new CompatibilityTestMarkerResolution();
-
-		return resolutions;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResourceMapping.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResourceMapping.java
deleted file mode 100644
index 6e1f24c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/TestResourceMapping.java
+++ /dev/null
@@ -1,108 +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.tests.markers;
-
-import org.eclipse.core.resources.*;
-import org.eclipse.core.resources.mapping.*;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.tests.TestPlugin;
-
-public class TestResourceMapping extends ResourceMapping {
-
-	IResource element;
-	private TestResourceMapping parent;
-
-	public TestResourceMapping(IResource resource) {
-		element = resource;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.mapping.ResourceMapping#getModelObject()
-	 */
-	public Object getModelObject() {
-		return element;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.resources.mapping.ResourceMapping#getModelProviderId()
-	 */
-	public String getModelProviderId() {
-		return ModelProvider.RESOURCE_MODEL_PROVIDER_ID;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.mapping.ResourceMapping#getProjects()
-	 */
-	public IProject[] getProjects() {
-		if (element.getType() == IResource.ROOT)
-			return ((IWorkspaceRoot) element).getProjects();
-		return new IProject[] { element.getProject() };
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.resources.mapping.ResourceMapping#getTraversals(org.eclipse.core.resources.mapping.ResourceMappingContext,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public ResourceTraversal[] getTraversals(ResourceMappingContext context,
-			IProgressMonitor monitor) {
-		ResourceTraversal traversal = new ResourceTraversal(
-				new IResource[] { element }, IResource.DEPTH_INFINITE,
-				IResource.NONE);
-		return new ResourceTraversal[] { traversal };
-	}
-
-	public String getName() {
-		return element.getName();
-	}
-
-	/**
-	 * Return the children of the receiver.
-	 * 
-	 * @return TestResourceMapping []
-	 */
-	public TestResourceMapping[] getChildren() {
-		if (element.getType() == IResource.FILE)
-			return new TestResourceMapping[0];
-		IResource[] children;
-		try {
-			children = ((IContainer) element).members();
-		} catch (CoreException e) {
-			TestPlugin.getDefault().getLog().log(e.getStatus());
-			return new TestResourceMapping[0];
-		}
-		TestResourceMapping[] result = new TestResourceMapping[children.length];
-
-		for (int i = 0; i < children.length; i++) {
-			result[i] = new TestResourceMapping(children[i]);
-			result[i].setParent(this);
-		}
-
-		return result;
-
-	}
-
-	public void setParent(TestResourceMapping mapping) {
-		parent = mapping;
-		
-	}
-
-	public TestResourceMapping getParent() {
-		return parent;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/old_dialog_settings.xml b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/old_dialog_settings.xml
deleted file mode 100644
index 6aa9203..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/markers/old_dialog_settings.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<section name="Workbench">
-	<section name="filter">
-		<item key="selectBySeverity" value="false"/>
-		<item key="contains" value="true"/>
-		<item key="enabled" value="true"/>
-		<item key="severity" value="0"/>
-		<item key="description" value=""/>
-		<item key="filterOnMarkerLimit" value="true"/>
-		<item key="markerLimit" value="100"/>
-		<item key="selectedType" value="org.eclipse.core.resources.problemmarker:org.eclipse.jdt.core.buildpath_problem:org.eclipse.ant.ui.buildFileProblem:org.eclipse.jdt.core.problem:"/>
-		<item key="onResource" value="0"/>
-	</section>
-</section>
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/AddMarkersAction.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/AddMarkersAction.java
deleted file mode 100644
index c468b41..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/AddMarkersAction.java
+++ /dev/null
@@ -1,109 +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.tests.menus;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-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.texteditor.MarkerUtilities;
-import org.eclipse.ui.views.markers.MarkerViewUtil;
-
-/**
- * @since 3.1
- */
-public class AddMarkersAction implements IWorkbenchWindowActionDelegate {
-
-	static final String CATEGORY_TEST_MARKER = "org.eclipse.ui.tests.categoryTestMarker";
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-	 */
-	public void dispose() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-	 */
-	public void init(IWorkbenchWindow workbenchWindow) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-
-		Job addJob = new Job("Add Markers") {
-			protected IStatus run(
-					org.eclipse.core.runtime.IProgressMonitor monitor) {
-				try {
-					IWorkspaceRoot root = ResourcesPlugin.getWorkspace()
-							.getRoot();
-					Map attribs = new HashMap();
-					for (int i = 0; i < 1000; i++) {
-
-						if (i / 2 == 0) {
-							attribs.put(MarkerViewUtil.NAME_ATTRIBUTE,
-									"Test Name " + i);
-							attribs.put(MarkerViewUtil.PATH_ATTRIBUTE,
-									"Test Path " + i);
-						}
-
-						attribs.put(IMarker.SEVERITY, new Integer(
-								IMarker.SEVERITY_ERROR));
-						attribs.put(IMarker.MESSAGE, "this is a test " + i);
-						attribs.put(IMarker.LOCATION, "Location " + i);
-						attribs.put("testAttribute", String.valueOf(i / 2));
-						MarkerUtilities.createMarker(root, attribs,
-								CATEGORY_TEST_MARKER);
-					}
-				} catch (CoreException e) {
-					return e.getStatus();
-				}
-				return Status.OK_STATUS;
-			};
-		};
-
-		addJob.schedule();
-
-	}
-
-
-	/*
-	 * (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) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/BrokenWorkbenchWindowPulldownDelegate.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/BrokenWorkbenchWindowPulldownDelegate.java
deleted file mode 100644
index cdaaabe..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/BrokenWorkbenchWindowPulldownDelegate.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.ui.tests.menus;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowPulldownDelegate2;
-import org.eclipse.ui.tests.internal.ForcedException;
-
-/**
- * This is a broken pulldown delegate that throws exceptions if you try to get
- * the menu. The purpose of this is simply sanity. Eclipse should be able to
- * start in the face of code broken like this.
- * 
- * @since 3.0
- */
-public final class BrokenWorkbenchWindowPulldownDelegate implements
-        IWorkbenchWindowPulldownDelegate2 {
-    //whether we should throw on getMenu(Menu)
-    static boolean throwMenu = true;
-
-    //whether we should throw on getMenu(Control)
-    static boolean throwControl = true;
-
-    //keep references to the menus for disposal
-    Menu menuMenu;
-
-    Menu menuControl;
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchWindowPulldownDelegate2#getMenu(org.eclipse.swt.widgets.Menu)
-     */
-    public Menu getMenu(Menu parent) {
-        if (throwMenu) {
-            throwMenu = false;
-            throw new ForcedException(
-					"The workbench should handle hostile pulldown delegates.");
-        }
-        menuMenu = new Menu(parent);
-        return menuMenu;
-    }
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchWindowPulldownDelegate#getMenu(org.eclipse.swt.widgets.Control)
-     */
-    public Menu getMenu(Control parent) {
-        if (throwControl) {
-            throwControl = false;
-            throw new ForcedException(
-					"The workbench should handle hostile pulldown delegates.");
-        }
-        menuControl = new Menu(parent);
-        return menuControl;
-    }
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-     */
-    public void dispose() {
-        if (menuControl != null)
-            menuControl.dispose();
-
-        if (menuMenu != null)
-            menuMenu.dispose();
-    }
-
-    /**
-     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-     */
-    public void init(IWorkbenchWindow window) {
-        // Do nothing.
-    }
-
-    /**
-     * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-     */
-    public void run(IAction action) {
-        // Do nothing.
-    }
-
-    /**
-     * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction,
-     *      org.eclipse.jface.viewers.ISelection)
-     */
-    public void selectionChanged(IAction action, ISelection selection) {
-        // Do nothing.
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug231304Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug231304Test.java
deleted file mode 100644
index 4cb9b18..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug231304Test.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.bindings.keys.KeySequence;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * 
- * @since 3.5
- * @author Prakash G.R.
- * 
- */
-public class Bug231304Test extends UITestCase {
-
-	public Bug231304Test(String testName) {
-		super(testName);
-	}
-
-	public void testToolTip() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IMenuService menus = (IMenuService) window
-				.getService(IMenuService.class);
-		ToolBarManager manager = new ToolBarManager();
-		try {
-			// populate contribution
-			menus.populateContributionManager(manager,
-					"toolbar:org.eclipse.ui.tests.tooltipTest");
-			IContributionItem[] items = manager.getItems();
-			assertEquals(1, items.length);
-			ToolBar toolBar = manager.createControl(window.getShell());
-			manager.update(true);
-
-			// now get the tool item and verify the tool tip
-			ToolItem[] toolItems = toolBar.getItems();
-			assertEquals(1, toolItems.length);
-			String keys = KeySequence.getInstance("M2+M3+1").format();
-			assertEquals("Testing Tooltip (" + keys + ")", toolItems[0]
-					.getToolTipText());
-
-		} finally {
-			menus.releaseContributions(manager);
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug264804Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug264804Test.java
deleted file mode 100644
index 5ce65a5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/Bug264804Test.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.PopupMenuExtender;
-import org.eclipse.ui.tests.api.ListElement;
-import org.eclipse.ui.tests.api.ListView;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- * @author Prakash G.R.
- * 
- */
-public class Bug264804Test extends UITestCase {
-
-	public Bug264804Test(String testName) {
-		super(testName);
-	}
-
-	public void testPopup() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-
-		ListView part = (ListView) window.getActivePage().showView(
-				"org.eclipse.ui.tests.api.IActionFilterTest1");
-		ListElement red = new ListElement("red");
-		ListElement blue = new ListElement("blue");
-		ListElement redTrue = new ListElement("red", true);
-		part.addElement(red);
-		part.addElement(blue);
-		part.addElement(redTrue);
-
-		assertNotNull(part);
-		MenuManager manager = new MenuManager();
-
-		final ISelectionProvider prov = part.getSelectionProvider();
-		prov.setSelection(new StructuredSelection(blue));
-		PopupMenuExtender popupMenuExtender = null;
-		try {
-			popupMenuExtender = new PopupMenuExtender(
-					"org.eclipse.ui.tests.Bug264804", manager, prov, part,
-					false);
-
-			Menu contextMenu = manager.createContextMenu(window.getShell());
-			// contextMenu.setVisible(true);
-			Event e = new Event();
-			e.widget = contextMenu;
-			processEvents();
-			contextMenu.notifyListeners(SWT.Show, e);
-
-			find("org.eclipse.ui.file.close", manager.getItems());
-
-			// This is our error case, we process the Hide event and then
-			// process the Show event, and then the async execs are allowed
-			// to run
-			contextMenu.notifyListeners(SWT.Hide, e);
-			contextMenu.notifyListeners(SWT.Show, e);
-			processEvents();
-
-			find("org.eclipse.ui.file.close", manager.getItems());
-		} finally {
-			popupMenuExtender.dispose();
-		}
-	}
-
-	/**
-	 * @param id
-	 * @param items
-	 */
-	private void find(String id, IContributionItem[] items) throws Exception {
-		for (int i = 0; i < items.length; i++) {
-			if (id.equals(items[i].getId())) {
-				assertTrue("Should be visible", items[i].isVisible());
-				return;
-			}
-		}
-		fail("Could not find " + id);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ChangeEnablementHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ChangeEnablementHandler.java
deleted file mode 100644
index 8e05e12..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ChangeEnablementHandler.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.HandlerEvent;
-import org.eclipse.core.commands.contexts.ContextManagerEvent;
-import org.eclipse.core.commands.contexts.IContextManagerListener;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * @since 3.3
- * 
- */
-public class ChangeEnablementHandler extends AbstractHandler {
-	private static final String CONTEXT_ID = "org.eclipse.ui.menus.contexts.test2";
-
-	private IContextManagerListener fContextManagerListener;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-		init(PlatformUI.getWorkbench());
-
-		MessageDialog.openInformation(window.getShell(), "Hello",
-				"Hello context change command!");
-		return null;
-	}
-
-	private void init(IServiceLocator serviceLocator) {
-		if (fContextManagerListener == null) {
-			IContextService service = (IContextService) serviceLocator
-					.getService(IContextService.class);
-			service.addContextManagerListener(getContextListener());
-		}
-	}
-
-	/**
-	 * @return
-	 */
-	private IContextManagerListener getContextListener() {
-		if (fContextManagerListener == null) {
-			fContextManagerListener = new IContextManagerListener() {
-				public void contextManagerChanged(
-						ContextManagerEvent contextManagerEvent) {
-					if (contextManagerEvent.isActiveContextsChanged()) {
-						setEnabled(contextManagerEvent.getContextManager()
-								.getActiveContextIds().contains(CONTEXT_ID));
-					}
-				}
-			};
-		}
-		return fContextManagerListener;
-	}
-
-	boolean fEnabled = true;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.AbstractHandler#isEnabled()
-	 */
-	public boolean isEnabled() {
-		return fEnabled;
-	}
-
-	private void setEnabled(boolean enabled) {
-		if (fEnabled != enabled) {
-			fEnabled = enabled;
-			fireHandlerChanged(new HandlerEvent(this, true, false));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.AbstractHandler#dispose()
-	 */
-	public void dispose() {
-		if (fContextManagerListener != null) {
-			IContextService service = (IContextService) PlatformUI
-					.getWorkbench().getService(IContextService.class);
-			service.removeContextManagerListener(fContextManagerListener);
-			fContextManagerListener = null;
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ContextIdValues.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ContextIdValues.java
deleted file mode 100644
index d53ac60..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ContextIdValues.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.IParameterValues;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.contexts.IContextService;
-
-public class ContextIdValues implements IParameterValues {
-
-	public Map getParameterValues() {
-		Map values = new HashMap();
-
-		IContextService contextService = (IContextService) PlatformUI
-				.getWorkbench().getService(IContextService.class);
-		Context[] definedContexts = contextService.getDefinedContexts();
-		try {
-			for (int i = 0; i < definedContexts.length; i++) {
-				values.put(definedContexts[i].getName(), definedContexts[i]
-						.getId());
-			}
-		} catch (NotDefinedException e) {
-			// This shouldn't happen since we asked for defined contexts,
-			// but you never know.
-			e.printStackTrace();
-		}
-		return values;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DeclaredProgrammaticFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DeclaredProgrammaticFactory.java
deleted file mode 100644
index c1c5419..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DeclaredProgrammaticFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.ui.menus.ExtensionContributionFactory;
-import org.eclipse.ui.menus.IContributionRoot;
-import org.eclipse.ui.services.IServiceLocator;
-
-public class DeclaredProgrammaticFactory extends ExtensionContributionFactory {
-	
-	public DeclaredProgrammaticFactory() {
-		super();
-	}
-	
-	static class MyItem extends ActionContributionItem {
-		/**
-		 * 
-		 */
-		public MyItem() {
-			super(new Action("MyItem") {
-				/*
-				 * (non-Javadoc)
-				 * 
-				 * @see org.eclipse.jface.action.Action#getId()
-				 */
-				public String getId() {
-					return "myitem";
-				}
-			});
-
-		}
-	}
-
-	public void createContributionItems(IServiceLocator serviceLocator,
-			IContributionRoot additions) {
-		additions.addContributionItem(new MyItem(), null);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicContributionItemPopup.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicContributionItemPopup.java
deleted file mode 100644
index 4b7bff7..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicContributionItemPopup.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.ContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-public class DynamicContributionItemPopup extends CompoundContributionItem {
-
-	public DynamicContributionItemPopup() {
-	}
-	
-	public DynamicContributionItemPopup(String id) {
-		super(id);
-	}
-	
-	private int count = 1;
-	
-	protected IContributionItem[] getContributionItems() {
-		// set the labels here, which will be verified in the test case
-		ContributionItem contributionItem1 = new ActionContributionItem(new DoNothingAction("something " + (count++)));
-		ContributionItem contributionItem2 = new ActionContributionItem(new DoNothingAction("something " + (count++)));
-		ContributionItem contributionItem3 = new ActionContributionItem(new DoNothingAction("something " + (count++)));
-		return new IContributionItem[] {contributionItem1, contributionItem2, contributionItem3};
-	}
-	
-	class DoNothingAction extends Action{
-		
-		public DoNothingAction(String text){
-			setText(text);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicMenuTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicMenuTest.java
deleted file mode 100644
index ced83fa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/DynamicMenuTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.menus.IMenuService;
-
-/**
- * 
- * @since 3.5
- * @author Prakash G.R.
- * 
- */
-public class DynamicMenuTest extends MenuTestCase {
-
-	public DynamicMenuTest(String testName) {
-		super(testName);
-	}
-
-	public void testDynamicMenu() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IMenuService menus = (IMenuService) window
-				.getService(IMenuService.class);
-		MenuManager manager = new MenuManager();
-		Menu contextMenu = null;
-		try {
-			menus.populateContributionManager(manager,
-					"popup:org.eclipse.ui.tests.dynamicMenuContribution");
-			IContributionItem[] contributionItems = manager.getItems();
-			assertEquals(1, contributionItems.length);
-
-			contextMenu = manager.createContextMenu(window.getShell());
-			contextMenu.notifyListeners(SWT.Show, null);
-			processEvents();
-
-			int itemCount = contextMenu.getItemCount();
-			assertEquals(3, itemCount); // we created 3 items in the code
-
-			MenuItem[] menuItems = contextMenu.getItems();
-			// check the labels
-			assertEquals("something 1", menuItems[0].getText());
-			assertEquals("something 2", menuItems[1].getText());
-			assertEquals("something 3", menuItems[2].getText());
-
-			contextMenu.notifyListeners(SWT.Hide, null);
-			processEvents();
-
-		} finally {
-			menus.releaseContributions(manager);
-			if (contextMenu != null) {
-				contextMenu.dispose();
-			}
-		}
-
-	}
-
-	public void testDynamicMenuMultiOpen() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IMenuService menus = (IMenuService) window
-				.getService(IMenuService.class);
-		MenuManager manager = new MenuManager();
-		Menu contextMenu = null;
-		try {
-			menus.populateContributionManager(manager,
-					"popup:org.eclipse.ui.tests.dynamicMenuContribution");
-			IContributionItem[] contributionItems = manager.getItems();
-			assertEquals(1, contributionItems.length);
-	
-			contextMenu = manager.createContextMenu(window.getShell());
-			contextMenu.notifyListeners(SWT.Show, null);
-			processEvents();
-	
-			int itemCount = contextMenu.getItemCount();
-			assertEquals(3, itemCount); // we created 3 items in the code
-	
-			MenuItem[] menuItems = contextMenu.getItems();
-			// check the labels
-			assertEquals("something 1", menuItems[0].getText());
-			assertEquals("something 2", menuItems[1].getText());
-			assertEquals("something 3", menuItems[2].getText());
-	
-			contextMenu.notifyListeners(SWT.Hide, null);
-			processEvents();
-			contextMenu.notifyListeners(SWT.Show, null);
-			processEvents();
-			menuItems = contextMenu.getItems();
-			assertEquals(3, menuItems.length);
-			
-			assertEquals("something 4", menuItems[0].getText());
-			assertEquals("something 5", menuItems[1].getText());
-			assertEquals("something 6", menuItems[2].getText());
-	
-		} finally {
-			menus.releaseContributions(manager);
-			if (contextMenu != null) {
-				contextMenu.dispose();
-			}
-		}
-	
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloDHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloDHandler.java
deleted file mode 100644
index b65e12a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloDHandler.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.tests.menus;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-
-/**
- * @since 3.3
- * 
- */
-public class HelloDHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		throw new ExecutionException("This should never be called");
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.commands.AbstractHandler#isEnabled()
-	 */
-	public boolean isEnabled() {
-		return false;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloEHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloEHandler.java
deleted file mode 100644
index 3784678..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloEHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-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.ui.IWorkbenchWindow;
-import org.eclipse.ui.handlers.HandlerUtil;
-
-/**
- * @since 3.3
- * 
- */
-public class HelloEHandler extends AbstractHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-
-		MessageDialog.openInformation(window.getShell(), "Hello",
-				"Hello enabled command!");
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloUpdateHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloUpdateHandler.java
deleted file mode 100644
index 7663a18..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/HelloUpdateHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import java.util.Map;
-
-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.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.menus.UIElement;
-
-/**
- * @since 3.3
- * 
- */
-public class HelloUpdateHandler extends AbstractHandler implements
-		IElementUpdater {
-
-	private String myLabelState = null;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-
-		MessageDialog.openInformation(window.getShell(), "Hello",
-				"Hello label update command!");
-		myLabelState = "My New Item";
-		ICommandService cs = (ICommandService) window
-				.getService(ICommandService.class);
-		cs.refreshElements(event.getCommand().getId(), null);
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.commands.ICallbackUpdater#updateCallback(org.eclipse.core.runtime.IAdaptable,
-	 *      java.util.Map)
-	 */
-	public void updateElement(UIElement element, Map parameters) {
-		if (myLabelState == null) {
-			return;
-		}
-		element.setText(myLabelState);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBaseTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBaseTests.java
deleted file mode 100644
index b7d0eec..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBaseTests.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.swt.widgets.Decorations;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.tests.menus.DeclaredProgrammaticFactory.MyItem;
-
-/**
- * Performs a number of basic tests for the org.eclipse.ui.menus
- * extension point:
- * <ul>
- * <li>MenuManagers can populate from declarative extensions</li>
- * <li>'before' and 'after' insertion tags are correctly handled</li>
- * <li>The Menu produced matches the expected structure based on the
- * contributions</li>
- * <li>The MenuManager's update mechanism works</li>
- * </ul>
- * 
- * @since 3.3
- * 
- */
-public class MenuBaseTests extends MenuTestCase {
-	String[] expectedIds = {
-			"MenuTest.BasicCmdItem",
-			"MenuTest.BasicMenu",
-			"MenuTest.BeforeSeparator",
-			"MenuTest.Separator",
-			"MenuTest.AfterSeparator",
-			"MenuTest.ParameterItem",
-			null, // "MenuTest.DynamicItem",
-			"MenuTest.DynamicMenu",
-			"MenuTest.ItemX1",
-			MenuPopulationTest.ID_DEFAULT,
-			MenuPopulationTest.ID_ALL,
-			MenuPopulationTest.ID_TOOLBAR,
-			"myitem"
-		};
-		Class[] expectedClasses = {
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			org.eclipse.jface.action.MenuManager.class,
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			org.eclipse.jface.action.Separator.class,
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			org.eclipse.ui.internal.menus.DynamicMenuContributionItem.class,
-			org.eclipse.jface.action.MenuManager.class,
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			org.eclipse.ui.menus.CommandContributionItem.class,
-			MyItem.class
-		};
-		String[] expectedMenuItemLabels = {
-			"&Basic Cmd",
-			"Basic Menu",
-			"Inserted &Before",
-			"",
-			"Inserted &After",
-			"Dynamic Item 1",
-			"Dynamic Item 2",
-			"Dynamic Menu",
-			"Icons Default",
-			"Icons All",
-			"Icons Toolbar Only",
-			"MyItem"
-		};
-
-	/**
-	 * @param testName
-	 */
-	public MenuBaseTests(String testName) {
-		super(testName);
-	}
-	
-	public void testBasicPopulation() throws Exception {
-		MenuManager manager = new MenuManager(null, TEST_CONTRIBUTIONS_CACHE_ID);
-		menuService.populateContributionManager(manager, "menu:"
-				+ TEST_CONTRIBUTIONS_CACHE_ID);
-		IContributionItem[] items = manager.getItems();
-		
-		// Correct number of items?
-		assertEquals("Bad count", expectedIds.length, items.length);
-
-		int diffIndex = checkContribIds(items, expectedIds);
-		assertTrue("Id mismatch at index " + diffIndex , diffIndex == ALL_OK);
-
-		diffIndex = checkContribClasses(items, expectedClasses);
-		assertTrue("Class mismatch at index " + diffIndex , diffIndex == ALL_OK);
-
-		menuService.releaseContributions(manager);
-		manager.dispose();
-	}
-
-	public void testBasicMenuPopulation() throws Exception {
-		MenuManager manager = new MenuManager("Test Menu", TEST_CONTRIBUTIONS_CACHE_ID);
-		menuService.populateContributionManager(manager, "menu:"
-				+ TEST_CONTRIBUTIONS_CACHE_ID);
-		
-		Shell shell = window.getShell();
-
-		// Test the initial menu creation
-		manager.createMenuBar((Decorations)shell);
-		MenuItem[] menuItems = manager.getMenu().getItems();
-		
-		// NOTE: Uncomment to print the info needed to update the 'expected'
-		// arrays
-//		printIds(items);
-//		printClasses(items);
-//		printMenuItemLabels(menuItems);
-		
-		// Correct number of items?
-		assertEquals("createMenuBar: Bad count", expectedMenuItemLabels.length, menuItems.length);
-
-		int diffIndex = checkMenuItemLabels(menuItems, expectedMenuItemLabels);
-		assertTrue("createMenuBar: Index mismatch at index " + diffIndex , diffIndex == ALL_OK);
-
-		// Test the update mechanism
-		
-		// KLUDGE!! Test commented out until bug 170353 is fixed...
-//		manager.update(true);
-//		menuItems = manager.getMenu().getItems();
-//		
-//		// Correct number of items?
-//		assertTrue("manager.update(true): Bad count", menuItems.length == expectedMenuItemLabels.length);
-//
-//		diffIndex = checkMenuItemLabels(menuItems, expectedMenuItemLabels);
-//		assertTrue("manager.update(true): Index mismatch at index " + diffIndex , diffIndex == ALL_OK);
-		
-		menuService.releaseContributions(manager);
-		manager.dispose();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBuilder.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBuilder.java
deleted file mode 100644
index 90f3480..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuBuilder.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.menus.AbstractContributionFactory;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.IContributionRoot;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.menus.WorkbenchWindowControlContribution;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.commands.ActiveActionSetExpression;
-
-/**
- * @since 3.3
- * 
- */
-public class MenuBuilder {
-	private static AbstractContributionFactory viewMenuAddition = null;
-
-	private static AbstractContributionFactory viewToolbarAddition = null;
-
-	public static void addMenuContribution() {
-		if (!PlatformUI.isWorkbenchRunning()) {
-			return;
-		}
-		IMenuService menuService = (IMenuService) PlatformUI.getWorkbench()
-				.getService(IMenuService.class);
-		if (menuService==null) {
-			return;
-		}
-		viewMenuAddition = new AbstractContributionFactory(
-				"menu:org.eclipse.ui.tests.api.MenuTestHarness?after=additions", TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator serviceLocator,
-					IContributionRoot additions) {
-				CommandContributionItem item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.tests.menus.itemX20",
-						"org.eclipse.ui.tests.menus.enabledWorld", null, null,
-						null, null, "Item X20", null, null,
-						CommandContributionItem.STYLE_PUSH);
-				additions.addContributionItem(item, null);
-
-				MenuManager submenu = new MenuManager("Menu X21",
-						"org.eclipse.ui.tests.menus.menuX21");
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.tests.menus.itemX22",
-						"org.eclipse.ui.tests.menus.updateWorld", null, null,
-						null, null, "Item X22", null, null,
-						CommandContributionItem.STYLE_PUSH);
-				submenu.add(item);
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.tests.menus.itemX23",
-						"org.eclipse.ui.tests.menus.enabledWorld", null, null,
-						null, null, "Item X23", null, null,
-						CommandContributionItem.STYLE_PUSH);
-				submenu.add(item);
-
-				additions.addContributionItem(submenu, null);
-
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.tests.menus.itemX24",
-						"org.eclipse.ui.tests.menus.enabledWorld", null, null,
-						null, null, "Item X24", null, null,
-						CommandContributionItem.STYLE_PUSH);
-				additions.addContributionItem(item, null);
-			}
-		};
-		menuService.addContributionFactory(viewMenuAddition);
-
-		viewToolbarAddition = new AbstractContributionFactory(
-				"toolbar:org.eclipse.ui.tests.api.MenuTestHarness", TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator serviceLocator,
-					IContributionRoot additions) {
-				CommandContributionItem item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.tests.menus.itemX25",
-						"org.eclipse.ui.tests.menus.updateWorld", null, null,
-						null, null, "Item X25", null, null,
-						CommandContributionItem.STYLE_PUSH);
-				additions.addContributionItem(item, null);
-				WorkbenchWindowControlContribution widget = new WorkbenchWindowControlContribution(
-						"org.eclipse.ui.tests.menus.itemX26") {
-					protected Control createControl(Composite parent) {
-						Text textCtrl = new Text(parent, SWT.BORDER);
-						textCtrl.setText("ABCDEFGHI");
-						return textCtrl;
-					}
-				};
-				additions.addContributionItem(widget, null);
-			}
-		};
-		menuService.addContributionFactory(viewToolbarAddition);
-	}
-
-	public static void removeMenuContribution() {
-		if (!PlatformUI.isWorkbenchRunning()) {
-			return;
-		}
-		IMenuService menuService = (IMenuService) PlatformUI.getWorkbench()
-				.getService(IMenuService.class);
-		if (menuService==null) {
-			return;
-		}
-		menuService.removeContributionFactory(viewMenuAddition);
-		viewMenuAddition = null;
-		menuService.removeContributionFactory(viewToolbarAddition);
-		viewMenuAddition = null;
-	}
-
-	public static void addSearchMenu() {
-		IMenuService menuService = (IMenuService) PlatformUI.getWorkbench()
-				.getService(IMenuService.class);
-
-		AbstractContributionFactory searchContribution = new AbstractContributionFactory(
-				"menu:org.eclipse.ui.main.menu?after=navigate", TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator menuService,
-					IContributionRoot additions) {
-				MenuManager search = new MenuManager("Se&arch",
-						"org.eclipse.search.menu");
-
-				search.add(new GroupMarker("internalDialogGroup"));
-				search.add(new GroupMarker("dialogGroup"));
-				search.add(new Separator("fileSearchContextMenuActionsGroup"));
-				search.add(new Separator("contextMenuActionsGroup"));
-				search.add(new Separator("occurencesActionsGroup"));
-				search.add(new Separator("extraSearchGroup"));
-
-				additions.addContributionItem(search, null);
-			}
-		};
-
-		menuService.addContributionFactory(searchContribution);
-	}
-
-	public static void addToSearchMenu() {
-		final IMenuService menuService = (IMenuService) PlatformUI
-				.getWorkbench().getService(IMenuService.class);
-		final ActiveActionSetExpression activeSearchActionSet = new ActiveActionSetExpression(
-				"org.eclipse.jdt.ui.SearchActionSet");
-
-		final ImageDescriptor searchIcon = AbstractUIPlugin
-				.imageDescriptorFromPlugin("org.eclise.ui.tests",
-						"icons/full/obj16/jsearch_obj.gif");
-		AbstractContributionFactory factory = new AbstractContributionFactory(
-				"menu:org.eclipse.search.menu?after=dialogGroup", TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator serviceLocator,
-					IContributionRoot additions) {
-				CommandContributionItem item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.internal.ui.search.openJavaSearchPage",
-						"org.eclipse.jdt.internal.ui.search.openJavaSearchPage",
-						null, searchIcon, null, null, null, null, null,
-						CommandContributionItem.STYLE_PUSH);
-				additions.addContributionItem(item, activeSearchActionSet);
-			}
-		};
-		menuService.addContributionFactory(factory);
-
-		factory = new AbstractContributionFactory(
-				"menu:org.eclipse.search.menu?after=contextMenuActionsGroup", TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator serviceLocator
-					,
-					IContributionRoot additions) {
-				MenuManager readMenu = new MenuManager("&Read Access",
-						"readAccessSubMenu");
-				additions.addContributionItem(readMenu, activeSearchActionSet);
-
-				readMenu.add(new GroupMarker("group1"));
-
-				CommandContributionItem item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.workspace",
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.workspace",
-						null, null, null, null, null, "W", null,
-						CommandContributionItem.STYLE_PUSH);
-				readMenu.add(item);
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.project",
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.project",
-						null, null, null, null, null, "P", null,
-						CommandContributionItem.STYLE_PUSH);
-				readMenu.add(item);
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.hierarchy",
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.hierarchy",
-						null, null, null, null, null, "H", null,
-						CommandContributionItem.STYLE_PUSH);
-				readMenu.add(item);
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.working.set",
-						"org.eclipse.jdt.ui.edit.text.java.search.read.access.in.working.set",
-						null, null, null, null, null, "S", null,
-						CommandContributionItem.STYLE_PUSH);
-				readMenu.add(item);
-
-				MenuManager writeMenu = new MenuManager("&Write Access",
-						"writeAccessSubMenu");
-				additions.addContributionItem(writeMenu, activeSearchActionSet);
-
-				writeMenu.add(new GroupMarker("group1"));
-
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.workspace",
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.workspace",
-						null, null, null, null, null, "W", null,
-						CommandContributionItem.STYLE_PUSH);
-				writeMenu.add(item);
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.project",
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.project",
-						null, null, null, null, null, "P", null,
-						CommandContributionItem.STYLE_PUSH);
-				writeMenu.add(item);
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.hierarchy",
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.hierarchy",
-						null, null, null, null, null, "H", null,
-						CommandContributionItem.STYLE_PUSH);
-				writeMenu.add(item);
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.working.set",
-						"org.eclipse.jdt.ui.edit.text.java.search.write.access.in.working.set",
-						null, null, null, null, null, "S", null,
-						CommandContributionItem.STYLE_PUSH);
-				writeMenu.add(item);
-			}
-		};
-		menuService.addContributionFactory(factory);
-	}
-
-	private static class ObjectClassExpression extends Expression {
-		public ObjectClassExpression(String c) {
-
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.expressions.Expression#evaluate(org.eclipse.core.expressions.IEvaluationContext)
-		 */
-		public EvaluationResult evaluate(IEvaluationContext context)
-				throws CoreException {
-			// TODO Auto-generated method stub
-			return null;
-		}
-
-	}
-
-	public static void addFileContribution() {
-		final IMenuService menuService = (IMenuService) PlatformUI
-				.getWorkbench().getService(IMenuService.class);
-		final ObjectClassExpression ifileExpression = new ObjectClassExpression(
-				"org.eclipse.core.resources.IFile");
-
-		final ImageDescriptor postIcon = AbstractUIPlugin
-				.imageDescriptorFromPlugin("org.eclise.ui.tests",
-						"icons/full/elcl16/post_wiki.gif");
-		final ImageDescriptor loadIcon = AbstractUIPlugin
-				.imageDescriptorFromPlugin("org.eclise.ui.tests",
-						"icons/full/elcl16/load_wiki.gif");
-		AbstractContributionFactory factory = new AbstractContributionFactory(
-				"popup:org.eclipse.ui.menus.popup.any?after=additions", TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator serviceLocator,
-					IContributionRoot additions) {
-				CommandContributionItem item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.examples.wiki.post",
-						"org.eclipse.ui.examples.wiki.post", null, postIcon,
-						null, null, null, "P", null,
-						CommandContributionItem.STYLE_PUSH);
-				additions.addContributionItem(item, ifileExpression);
-
-				item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.examples.wiki.load",
-						"org.eclipse.ui.examples.wiki.load", null, loadIcon,
-						null, null, null, "L", null,
-						CommandContributionItem.STYLE_PUSH);
-				additions.addContributionItem(item, ifileExpression);
-			}
-		};
-		menuService.addContributionFactory(factory);
-	}
-
-	public static void addTextMenuContribition() {
-		final IMenuService menuService = (IMenuService) PlatformUI
-				.getWorkbench().getService(IMenuService.class);
-
-		final ImageDescriptor scrambleIcon = AbstractUIPlugin
-				.imageDescriptorFromPlugin("org.eclise.ui.tests",
-						"icons/full/eobj16/scramble.gif");
-		AbstractContributionFactory factory = new AbstractContributionFactory(
-				"popup:#TextEditorContext?after=additions", TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator serviceLocator,
-					IContributionRoot additions) {
-				CommandContributionItem item = new CommandContributionItem(serviceLocator,
-						"org.eclipse.ui.examples.menus.scramble.text",
-						"org.eclipse.ui.examples.menus.scramble.text", null,
-						scrambleIcon, null, null, null, "c", null,
-						CommandContributionItem.STYLE_PUSH);
-				additions.addContributionItem(item, null);
-			}
-		};
-		menuService.addContributionFactory(factory);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuPopulationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuPopulationTest.java
deleted file mode 100644
index b4491f0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuPopulationTest.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import java.lang.reflect.Field;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.menus.AbstractContributionFactory;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.IContributionRoot;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.tests.api.workbenchpart.MenuContributionHarness;
-
-/**
- * @since 3.3
- * 
- */
-public class MenuPopulationTest extends MenuTestCase {
-	private static final String ICONS_ANYTHING_GIF = "/anything.gif)";
-	private static final String ICONS_BINARY_GIF = "/binary_co.gif)";
-	private static final String ICONS_MOCK_GIF = "/mockeditorpart1.gif)";
-	private static final String ICONS_VIEW_GIF = "/view.gif)";
-
-	private static final String FIELD_ICON = "icon";
-	public static final String ID_DEFAULT = "org.eclipse.ui.tests.menus.iconsDefault";
-	public static final String ID_ALL = "org.eclipse.ui.tests.menus.iconsAll";
-	public static final String ID_TOOLBAR = "org.eclipse.ui.tests.menus.iconsToolbarOnly";
-
-	/**
-	 * @param testName
-	 */
-	public MenuPopulationTest(String testName) {
-		super(testName);
-	}
-
-	public void testViewPopulation() throws Exception {
-		MenuManager manager = new MenuManager(null, TEST_CONTRIBUTIONS_CACHE_ID);
-		menuService.populateContributionManager(manager, "menu:"
-				+ TEST_CONTRIBUTIONS_CACHE_ID);
-		IContributionItem[] items = manager.getItems();
-		IContributionItem itemX1 = null;
-		for (int i = 0; i < items.length; i++) {
-			IContributionItem item = items[i];
-			if ("MenuTest.ItemX1".equals(item.getId())) {
-				itemX1 = item;
-			}
-		}
-
-		assertFalse(itemX1.isVisible());
-
-		activeContext = contextService
-				.activateContext(MenuContributionHarness.CONTEXT_TEST1_ID);
-
-		assertTrue(itemX1.isVisible());
-
-		contextService.deactivateContext(activeContext);
-
-		assertFalse(itemX1.isVisible());
-
-		activeContext = contextService
-				.activateContext(MenuContributionHarness.CONTEXT_TEST1_ID);
-
-		assertTrue(itemX1.isVisible());
-
-		menuService.releaseContributions(manager);
-		manager.dispose();
-	}
-
-	public void testMenuIcons() throws Exception {
-		Field iconField = CommandContributionItem.class
-				.getDeclaredField(FIELD_ICON);
-		iconField.setAccessible(true);
-
-		MenuManager manager = new MenuManager(null, TEST_CONTRIBUTIONS_CACHE_ID);
-		menuService.populateContributionManager(manager, "menu:"
-				+ TEST_CONTRIBUTIONS_CACHE_ID);
-
-		IContributionItem ici = manager.find(ID_DEFAULT);
-		assertTrue(ici instanceof CommandContributionItem);
-		CommandContributionItem cmd = (CommandContributionItem) ici;
-
-		ImageDescriptor icon = (ImageDescriptor) iconField.get(cmd);
-		assertNotNull(icon);
-		String iconString = icon.toString();
-		assertEquals(ICONS_ANYTHING_GIF, iconString.substring(iconString
-				.lastIndexOf('/')));
-
-		ici = manager.find(ID_ALL);
-		assertTrue(ici instanceof CommandContributionItem);
-		cmd = (CommandContributionItem) ici;
-		icon = (ImageDescriptor) iconField.get(cmd);
-		assertNotNull(icon);
-		iconString = icon.toString();
-		assertEquals(ICONS_BINARY_GIF, iconString.substring(iconString
-				.lastIndexOf('/')));
-
-		ici = manager.find(ID_TOOLBAR);
-		assertTrue(ici instanceof CommandContributionItem);
-		cmd = (CommandContributionItem) ici;
-		icon = (ImageDescriptor) iconField.get(cmd);
-		assertNull(icon);
-
-		manager.dispose();
-	}
-
-	public void testToolBarItems() throws Exception {
-		Field iconField = CommandContributionItem.class
-				.getDeclaredField(FIELD_ICON);
-		iconField.setAccessible(true);
-
-		ToolBarManager manager = new ToolBarManager();
-		menuService.populateContributionManager(manager, "toolbar:"
-				+ TEST_CONTRIBUTIONS_CACHE_ID);
-
-		IContributionItem ici = manager.find(ID_DEFAULT);
-		assertTrue(ici instanceof CommandContributionItem);
-		CommandContributionItem cmd = (CommandContributionItem) ici;
-
-		ImageDescriptor icon = (ImageDescriptor) iconField.get(cmd);
-		assertNotNull(icon);
-		String iconString = icon.toString();
-		assertEquals(ICONS_ANYTHING_GIF, iconString.substring(iconString
-				.lastIndexOf('/')));
-
-		ici = manager.find(ID_ALL);
-		assertTrue(ici instanceof CommandContributionItem);
-		cmd = (CommandContributionItem) ici;
-		icon = (ImageDescriptor) iconField.get(cmd);
-		assertNotNull(icon);
-		iconString = icon.toString();
-		assertEquals(ICONS_MOCK_GIF, iconString.substring(iconString
-				.lastIndexOf('/')));
-
-		ici = manager.find(ID_TOOLBAR);
-		assertTrue(ici instanceof CommandContributionItem);
-		cmd = (CommandContributionItem) ici;
-		icon = (ImageDescriptor) iconField.get(cmd);
-		assertNotNull(icon);
-		iconString = icon.toString();
-		assertEquals(ICONS_VIEW_GIF, iconString.substring(iconString
-				.lastIndexOf('/')));
-
-		manager.dispose();
-	}
-
-	public void testFactoryScopePopulation() throws Exception {
-		AbstractContributionFactory factory = new AbstractContributionFactory(
-				"menu:the.population.menu?after=additions", "org.eclipse.ui.tests") {
-
-			public void createContributionItems(IServiceLocator serviceLocator,
-					IContributionRoot additions) {
-				final MenuManager manager = new MenuManager("menu.id");
-				manager.add(new Action("action.id") {
-				});
-				additions.addContributionItem(manager, null);
-			}
-
-		};
-		MenuManager testManager = new MenuManager();
-		IViewPart view = window.getActivePage()
-				.showView(IPageLayout.ID_OUTLINE);
-		assertNotNull(view);
-		IMenuService service = (IMenuService) view.getSite().getService(
-				IMenuService.class);
-		service.populateContributionManager(testManager, "menu:the.population.menu");
-		assertEquals(0, testManager.getSize());
-		service.addContributionFactory(factory);
-		assertEquals(1, testManager.getSize());
-		window.getActivePage().hideView(view);
-		processEvents();
-		assertEquals(0, testManager.getSize());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuTestCase.java
deleted file mode 100644
index 024d109..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuTestCase.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.tests.api.workbenchpart.MenuContributionHarness;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Base class for tests concerning the 'org.eclipse.ui.menus'
- * extension point. Gains access to the various services that
- * are useful in writing the tests and defines the id of the 
- * URI that contains a 'known' structure. If the XML describing
- * the structure is changed then the static tables that the
- * tests use to determine 'success' have to be verified and
- * updated if necessary.
- * 
- * @since 3.3
- * 
- */
-public class MenuTestCase extends UITestCase {
-
-	protected static final String TEST_CONTRIBUTIONS_CACHE_ID = "org.eclipse.ui.tests.IfYouChangeMe.FixTheTests";
-
-	/**
-	 * @param testName
-	 */
-	public MenuTestCase(String testName) {
-		super(testName);
-	}
-
-	protected IContextService contextService;
-	protected IMenuService menuService;
-	protected IWorkbenchWindow window;
-	protected IContextActivation activeContext;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-
-		window = openTestWindow();
-		contextService = (IContextService) window
-				.getService(IContextService.class);
-		Context context1 = contextService
-				.getContext(MenuContributionHarness.CONTEXT_TEST1_ID);
-		if (!context1.isDefined()) {
-			context1.define("Menu Test 1", "Menu test 1",
-					IContextService.CONTEXT_ID_DIALOG_AND_WINDOW);
-		}
-
-		menuService = (IMenuService) window.getService(IMenuService.class);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		if (activeContext != null) {
-			contextService.deactivateContext(activeContext);
-			activeContext = null;
-		}
-		contextService = null;
-		menuService = null;
-		window = null;
-
-		super.doTearDown();
-	}
-	
-	protected static int ALL_OK = -1;
-	protected static int checkContribIds(IContributionItem[] items, String[] ids) {
-		// Test cases should check this independently so they can issue the
-		// correct error (i.e. "Not enough items...wanted 6 got 5") but for
-		// safety's sake...
-		if (items.length != ids.length)
-			return 0;
-		
-		for (int i = 0; i < ids.length; i++) {
-			// HACK!! Some uds are based on intances
-			if (ids[i] == null)
-				continue;
-			
-			if (!ids[i].equals(items[i].getId()))
-				return i;
-		}
-		return ALL_OK;
-	}
-
-	protected static int checkContribClasses(IContributionItem[] items, Class[] classes) {
-		// Test cases should check this independently so they can issue the
-		// correct error (i.e. "Not enough items...wanted 6 got 5") but for
-		// safety's sake...
-		if (items.length != classes.length)
-			return 0;
-		
-		for (int i = 0; i < classes.length; i++) {
-			// HACK!! cant find anonyous classes
-			if (classes[i] == null)
-				continue;
-			
-			// minor upgrade ... if the item is an instanceof the class we're good
-			// this handles the case where the item is a subclass of
-			// CompoundContributionItem
-			if (!classes[i].isInstance(items[i]))
-				return i;
-		}
-		return ALL_OK;
-	}
-
-	protected static int checkMenuItemLabels(MenuItem[] menuItems,
-			String[] expectedLabels) {
-		// Test cases should check this independently so they can issue the
-		// correct error (i.e. "Not enough items...wanted 6 got 5") but for
-		// safety's sake...
-		if (menuItems.length != expectedLabels.length)
-			return 0;
-		
-		for (int i = 0; i < expectedLabels.length; i++) {
-			if (!expectedLabels[i].equals(menuItems[i].getText()))
-				return i;
-		}
-		return ALL_OK;
-	}
-	
-	protected static void printIds(IContributionItem[] items) {
-		System.out.println("String[] expectedIds = {");
-		for (int i = 0; i < items.length; i++) {
-			String comma = (i < (items.length-1)) ? "," : "";
-			System.out.println("\t\"" + items[i].getId() + "\"" + comma);
-		}
-		System.out.println("};");
-	}
-	
-	protected static void printClasses(IContributionItem[] items) {
-		System.out.println("Class[] expectedClasses = {");
-		for (int i = 0; i < items.length; i++) {
-			String comma = (i < (items.length-1)) ? "," : "";
-			System.out.println("\t" + items[i].getClass().getName() + ".class" + comma);
-		}
-		System.out.println("};");
-	}
-	
-	protected static void printMenuItemLabels(MenuItem[] items) {
-		System.out.println("String[] expectedMenuItemLabels = {");
-		for (int i = 0; i < items.length; i++) {
-			String comma = (i < (items.length-1)) ? "," : "";
-			System.out.println("\t\"" + items[i].getText() + "\"" + comma);
-		}
-		System.out.println("};");
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuVisibilityTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuVisibilityTest.java
deleted file mode 100644
index 40c9b02..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenuVisibilityTest.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import java.util.Collections;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.contexts.Context;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.IHandlerActivation;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.AbstractEnabledHandler;
-import org.eclipse.ui.menus.AbstractContributionFactory;
-import org.eclipse.ui.menus.CommandContributionItem;
-import org.eclipse.ui.menus.CommandContributionItemParameter;
-import org.eclipse.ui.menus.IContributionRoot;
-import org.eclipse.ui.menus.IMenuService;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.api.workbenchpart.MenuContributionHarness;
-import org.eclipse.ui.tests.commands.ActiveContextExpression;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class MenuVisibilityTest extends UITestCase {
-
-	private static final String EXTENSION_ID = "org.eclipse.ui.tests.menusX1";
-	private static final String LOCATION = "menu:foo";
-	private static final String COMMAND_ID = "org.eclipse.ui.tests.commandEnabledVisibility";
-
-	/**
-	 * @param testName
-	 */
-	public MenuVisibilityTest(String testName) {
-		super(testName);
-	}
-
-	private IContextService contextService;
-	private IMenuService menuService;
-	private IWorkbenchWindow window;
-	private IContextActivation activeContext;
-
-	public void testBasicContribution() throws Exception {
-
-		IAction a = new Action() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.action.Action#run()
-			 */
-			public void run() {
-				System.out.println("Hello action");
-			}
-		};
-		final MenuManager manager = new MenuManager();
-		final ActionContributionItem item = new ActionContributionItem(a);
-		final Expression activeContextExpr = new ActiveContextExpression(
-				MenuContributionHarness.CONTEXT_TEST1_ID,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-		AbstractContributionFactory factory = new AbstractContributionFactory(
-				LOCATION, TestPlugin.PLUGIN_ID) {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.menus.AbstractContributionFactory#createContributionItems(org.eclipse.ui.menus.IMenuService,
-			 *      org.eclipse.ui.menus.AbstractContributionFactory.IContributionList)
-			 */
-			public void createContributionItems(IServiceLocator menuService,
-					IContributionRoot additions) {
-				additions.addContributionItem(item, activeContextExpr);
-			}
-		};
-
-		menuService.addContributionFactory(factory);
-		menuService.populateContributionManager(manager, LOCATION);
-		
-		assertFalse("starting state", item.isVisible());
-
-		activeContext = contextService
-				.activateContext(MenuContributionHarness.CONTEXT_TEST1_ID);
-
-		assertTrue("active context", item.isVisible());
-
-		contextService.deactivateContext(activeContext);
-		activeContext = null;
-
-		assertFalse("after deactivation", item.isVisible());
-
-		menuService.releaseContributions(manager);
-		menuService.removeContributionFactory(factory);
-		manager.dispose();
-	}
-
-	public void testExtensionContributionExpression() throws Exception {
-		IAction a = new Action() {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.jface.action.Action#run()
-			 */
-			public void run() {
-				System.out.println("Hello action");
-			}
-		};
-		final MenuManager manager = new MenuManager();
-		final ActionContributionItem aci = new ActionContributionItem(a);
-
-		IExtensionRegistry reg = Platform.getExtensionRegistry();
-		IExtensionPoint menusExtension = reg
-				.getExtensionPoint("org.eclipse.ui.menus");
-		IExtension extension = menusExtension.getExtension(EXTENSION_ID);
-
-		IConfigurationElement[] mas = extension.getConfigurationElements();
-		final Expression activeContextExpr[] = new Expression[1];
-		for (int i = 0; i < mas.length; i++) {
-			IConfigurationElement ma = mas[i];
-			IConfigurationElement[] items = ma.getChildren();
-			for (int j = 0; j < items.length; j++) {
-				IConfigurationElement item = items[j];
-				String id = item.getAttribute("id");
-				if (id != null
-						&& id.equals("org.eclipse.ui.tests.menus.itemX1")) {
-					IConfigurationElement visibleWhenElement = item
-							.getChildren("visibleWhen")[0];
-					activeContextExpr[0] = ExpressionConverter.getDefault()
-							.perform(visibleWhenElement.getChildren()[0]);
-				}
-			}
-		}
-		assertNotNull("Failed to find expression", activeContextExpr[0]);
-		AbstractContributionFactory factory = new AbstractContributionFactory(
-				LOCATION, TestPlugin.PLUGIN_ID) {
-			/*
-			 * (non-Javadoc)
-			 * 
-			 * @see org.eclipse.ui.menus.AbstractContributionFactory#createContributionItems(org.eclipse.ui.menus.IMenuService,
-			 *      org.eclipse.ui.menus.AbstractContributionFactory.IContributionList)
-			 */
-			public void createContributionItems(IServiceLocator menuService,
-					IContributionRoot additions) {
-				additions.addContributionItem(aci, activeContextExpr[0]);
-			}
-		};
-
-		menuService.addContributionFactory(factory);
-		menuService.populateContributionManager(manager, LOCATION);
-
-		assertFalse("starting state", aci.isVisible());
-
-		activeContext = contextService
-				.activateContext(MenuContributionHarness.CONTEXT_TEST1_ID);
-		assertTrue("active context", aci.isVisible());
-
-		contextService.deactivateContext(activeContext);
-		activeContext = null;
-
-		assertFalse("after deactivation", aci.isVisible());
-
-		menuService.releaseContributions(manager);
-		menuService.removeContributionFactory(factory);
-		manager.dispose();
-	}
-
-	private static class TestEnabled extends AbstractEnabledHandler {
-		public Object execute(ExecutionEvent event) {
-			System.out.println("go");
-			return null;
-		}
-
-		public void setEnabled(boolean isEnabled) {
-			super.setEnabled(isEnabled);
-		}
-	}
-
-	public void testVisibilityTracksEnablement() throws Exception {
-		final MenuManager manager = new MenuManager();
-		final CommandContributionItemParameter parm = new CommandContributionItemParameter(
-				window, null, COMMAND_ID, Collections.EMPTY_MAP, null, null,
-				null, null, null, null, CommandContributionItem.STYLE_PUSH,
-				null, true);
-		final CommandContributionItem item = new CommandContributionItem(parm);
-
-		AbstractContributionFactory factory = new AbstractContributionFactory(
-				LOCATION, TestPlugin.PLUGIN_ID) {
-			public void createContributionItems(IServiceLocator menuService,
-					IContributionRoot additions) {
-				additions.addContributionItem(item, null);
-			}
-		};
-
-		menuService.addContributionFactory(factory);
-		menuService.populateContributionManager(manager, LOCATION);
-
-		assertFalse(item.isEnabled());
-		assertFalse("starting state", item.isVisible());
-
-		IHandlerService handlers = (IHandlerService) window
-				.getService(IHandlerService.class);
-		TestEnabled handler = new TestEnabled();
-		IHandlerActivation activateHandler = handlers.activateHandler(
-				COMMAND_ID, handler);
-
-		assertTrue(handler.isEnabled());
-		assertTrue(item.isEnabled());
-		assertTrue("activated handler", item.isVisible());
-
-		handler.setEnabled(false);
-
-		assertFalse("set enabled == false", item.isVisible());
-
-		handler.setEnabled(true);
-
-		assertTrue("set enabled == true", item.isVisible());
-
-		handlers.deactivateHandler(activateHandler);
-
-		assertFalse("deactivate handler", item.isVisible());
-
-		menuService.releaseContributions(manager);
-		menuService.removeContributionFactory(factory);
-		manager.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-
-		window = openTestWindow();
-		menuService = (IMenuService) window.getService(IMenuService.class);
-		contextService = (IContextService) window
-				.getService(IContextService.class);
-		Context context1 = contextService
-				.getContext(MenuContributionHarness.CONTEXT_TEST1_ID);
-		if (!context1.isDefined()) {
-			context1.define("Menu Test 1", "Menu test 1",
-					IContextService.CONTEXT_ID_DIALOG_AND_WINDOW);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		if (activeContext != null) {
-			contextService.deactivateContext(activeContext);
-			activeContext = null;
-		}
-		menuService = null;
-		contextService = null;
-		window = null;
-
-		super.doTearDown();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenusTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenusTestSuite.java
deleted file mode 100644
index ba32aee..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/MenusTestSuite.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-
-/**
- * Tests for all code related to menus. This includes the
- * <code>popupMenus</code> extension point, and others.
- */
-public class MenusTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new MenusTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public MenusTestSuite() {
-        addTest(new TestSuite(ObjectContributionTest.class));
-        addTest(new TestSuite(MenuVisibilityTest.class));
-        addTest(new TestSuite(MenuBaseTests.class));
-        addTest(new TestSuite(MenuPopulationTest.class));
-        addTest(new TestSuite(DynamicMenuTest.class));
-        addTest(new TestSuite(Bug231304Test.class));
-        addTest(new TestSuite(ShowViewMenuTest.class));
-        addTest(new TestSuite(Bug264804Test.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionClasses.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionClasses.java
deleted file mode 100644
index 4bb3096..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionClasses.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.*;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.ui.IContributorResourceAdapter;
-import org.eclipse.ui.ide.IContributorResourceAdapter2;
-
-public class ObjectContributionClasses implements IAdapterFactory {
-	
-	public static final String PROJECT_NAME = "testContributorResourceAdapter";
-	
-	public static interface ICommon extends IAdaptable {
-	}
-	
-	public static class Common implements ICommon {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			return null;
-		}	
-	}
-	
-	public static interface IA {
-	}
-	
-	public static class A implements IA {	
-	}
-	
-	public static class A1 extends A {
-	}
-	
-	public static class A11 extends A1 {
-	}
-	
-	public static interface IB {
-	}
-	
-	public static class B implements IB {
-	}
-	
-	public static class B2 implements IB {
-	}
-	
-	public static class D extends Common implements IA {
-	}
-	
-	public static class E implements IAdaptable {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			if (adapter == IF.class)
-				return new F();
-			return null;
-		}	
-	}
-	
-	public static interface IF extends IAdaptable {
-	}
-	
-	public static class F implements IF {
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			return null;
-		}
-	}
-	
-	public static class E1 extends E {
-	};
-	
-	public static class C implements ICommon {
-
-		/* (non-Javadoc)
-		 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-		 */
-		public Object getAdapter(Class adapter) {
-			return null;
-		}
-	}
-	
-	public static class CResource implements IAdaptable {
-		public Object getAdapter(Class adapter) {
-			if(adapter == IContributorResourceAdapter.class) {
-				return new ResourceAdapter();
-			}			
-			return null;
-		}		
-	}
-	
-	public static class CFile implements IAdaptable {
-		public Object getAdapter(Class adapter) {
-			if(adapter == IContributorResourceAdapter.class) {
-				return new ResourceAdapter();
-			}			
-			return null;
-		}		
-	}
-	
-	// Returns a contribution adapter that doesn't handle ResourceMappings
-	public static class CResourceOnly implements IAdaptable {
-		public Object getAdapter(Class adapter) {
-			if(adapter == IContributorResourceAdapter.class) {
-				return new ResourceOnlyAdapter();
-			}			
-			return null;
-		}		
-	}
-    
-    public interface IModelElement {
-    }
-	
-    public static class ModelElement extends PlatformObject implements IModelElement {
-    }
-    
-	// Default contributor adapter
-	
-	public static class ResourceAdapter implements IContributorResourceAdapter2 {
-		public IResource getAdaptedResource(IAdaptable adaptable) {
-			if(adaptable instanceof CResource) {
-				return ResourcesPlugin.getWorkspace().getRoot();
-			}
-			if(adaptable instanceof CFile) {
-				return ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME).getFile("dummy");
-			}
-			return null;
-		}
-        public ResourceMapping getAdaptedResourceMapping(IAdaptable adaptable) {
-            return (ResourceMapping)getAdaptedResource(adaptable).getAdapter(ResourceMapping.class);
-        }	
-	}
-	
-	// Contributor adapter that doesn't handle resource mappings
-	
-	public static class ResourceOnlyAdapter implements IContributorResourceAdapter {
-		public IResource getAdaptedResource(IAdaptable adaptable) {
-			if(adaptable instanceof CResourceOnly) {
-				return ResourcesPlugin.getWorkspace().getRoot();
-			}
-			return null;
-		}
-	}
-	
-	// Adapter methods
-	
-	public Object getAdapter(final Object adaptableObject, Class adapterType) {
-		if(adapterType == IContributorResourceAdapter.class) {
-			return new ResourceAdapter();
-		}
-		if(adaptableObject instanceof IA && adapterType == IA.class) {
-			return new A();
-		}
-		if(adapterType == IResource.class) {
-			return ResourcesPlugin.getWorkspace().getRoot();
-		}
-		if(adapterType == ICommon.class) {
-			return new Common();
-		}
-        if(adapterType == ResourceMapping.class) {
-            return new ResourceMapping() {    
-                public ResourceTraversal[] getTraversals(ResourceMappingContext context, IProgressMonitor monitor) {
-                    return new ResourceTraversal[] {
-                            new ResourceTraversal(new IResource[] {ResourcesPlugin.getWorkspace().getRoot()}, IResource.DEPTH_INFINITE, IResource.NONE)
-                    };
-                }
-                public IProject[] getProjects() {
-                    return ResourcesPlugin.getWorkspace().getRoot().getProjects();
-                }
-                public Object getModelObject() {
-                    return adaptableObject;
-                }
-                public String getModelProviderId() {
-            		return ModelProvider.RESOURCE_MODEL_PROVIDER_ID;
-                }
-            };
-        }
-        
-		return null;
-	}
-
-	public Class[] getAdapterList() {
-		return new Class[] { ICommon.class, IResource.class, IFile.class, IContributorResourceAdapter.class, ResourceMapping.class};
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionTest.java
deleted file mode 100644
index 310eaa6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ObjectContributionTest.java
+++ /dev/null
@@ -1,389 +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.tests.menus;
-
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.resources.mapping.ResourceMapping;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.SubContributionItem;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.PluginActionContributionItem;
-import org.eclipse.ui.internal.PopupMenuExtender;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.tests.menus.ObjectContributionClasses.ICommon;
-
-/**
- * Tests that object contributions are enabled and shown correctly in pop-up
- * menus depending on the state of the workbench. This test relies on the
- * <code>plugin.xml</code> file containing certain values. Please see the
- * appropriate section in that file for more information about the initial
- * set-up.
- * 
- * @since 3.0
- */
-public final class ObjectContributionTest extends UITestCase {
-
-	/**
-	 * Constructs a new instance of <code>ObjectContributionTest</code> with
-	 * the name of the test.
-	 * 
-	 * @param name
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public ObjectContributionTest(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests whether the content-type object contribution works. This is testing
-	 * a use care familiar to Ant UI. The content-type scans an XML file to see
-	 * if its root element is <code>&lt;project&gt;</code>.
-	 * 
-	 * @throws CoreException
-	 *             If a problem occurs when creating the project or file, or if
-	 *             the project can't be opened.
-	 */
-	public final void testObjectStateContentType() throws CoreException {
-		// Create an XML file with <project> as its root element.
-		final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		final IProject testProject = workspace.getRoot().getProject(
-				"ObjectContributionTestProject");
-		testProject.create(null);
-		testProject.open(null);
-		final IFile xmlFile = testProject.getFile("ObjectContributionTest.xml");
-		final String contents = "<testObjectStateContentTypeElement></testObjectStateContentTypeElement>";
-		final ByteArrayInputStream inputStream = new ByteArrayInputStream(
-				contents.getBytes());
-		xmlFile.create(inputStream, true, null);
-		final ISelection selection = new StructuredSelection(xmlFile);
-		assertPopupMenus(
-				"1",
-				new String[] { "org.eclipse.ui.tests.testObjectStateContentType" },
-				selection, null, true);
-	}
-
-	/**
-	 * This tests backwards compatibility support for adaptable IResource
-	 * objectContributions. This allows IResource adaptable contributions
-	 * without an adapter factory and using the IContributorResourceAdapter
-	 * factory. In addition, test the ResourceMapping adaptations.
-	 * 
-	 * @since 3.1
-	 */
-	public final void testContributorResourceAdapter() throws CoreException {
-
-		final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		final IProject testProject = workspace.getRoot().getProject(
-				ObjectContributionClasses.PROJECT_NAME);
-		if (!testProject.exists()) {
-			testProject.create(null);
-		}
-		if (!testProject.isOpen()) {
-			testProject.open(null);
-		}
-
-		assertPopupMenus(
-				"1",
-				new String[] { "IResource.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.CResource() }),
-				IResource.class, true);
-		assertPopupMenus(
-				"2",
-				new String[] { "IProject.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.CFile() }),
-				null, false);
-		assertPopupMenus(
-				"3",
-				new String[] { "IFile.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.CFile() }),
-				IFile.class, true);
-		assertPopupMenus("4", new String[] { "IResource.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.CFile(),
-						new ObjectContributionClasses.CResource() }),
-				IResource.class, true);
-		assertPopupMenus("5", new String[] { "IFile.1", "IProject.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.CFile(),
-						new ObjectContributionClasses.CResource() }),
-				IResource.class, false);
-		assertPopupMenus("6", new String[] { "ResourceMapping.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.CFile(),
-						new ObjectContributionClasses.CResource() }),
-				ResourceMapping.class, true);
-		assertPopupMenus(
-				"7",
-				new String[] { "ResourceMapping.1", "IResource.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.ModelElement() }),
-				ResourceMapping.class, true);
-		// Ensure that the case where an object uses a contribution adapter that
-		// doesn't handle mappings
-		// will still show the menus for resource mappings
-		assertPopupMenus(
-				"8",
-				new String[] { "ResourceMapping.1", "IResource.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.CResourceOnly() }),
-				ResourceMapping.class, true);
-	}
-
-	/**
-	 * This tests adaptable contributions that are not IResource.
-	 * 
-	 * @since 3.1
-	 */
-	public final void testAdaptables() {
-		assertPopupMenus("1", new String[] { "ICommon.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.A() }),
-				ICommon.class, true);
-		assertPopupMenus("2", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.B() }), ICommon.class,
-				true);
-		assertPopupMenus("3", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.B(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.Common() }),
-				ICommon.class, true);
-		assertPopupMenus("4", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.Common(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.B(),
-						new ObjectContributionClasses.A() }), ICommon.class,
-				true);
-		assertPopupMenus("5", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.Common(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.B(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.Common() }),
-				ICommon.class, true);
-		assertPopupMenus("6", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.Common() }),
-				ICommon.class, true);
-		assertPopupMenus("7", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] { new Object() }),
-				ICommon.class, false);
-		assertPopupMenus("8", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.C(), new Object() }),
-				ICommon.class, false);
-		assertPopupMenus("9", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.A(), new Object() }),
-				ICommon.class, false);
-	}
-
-	/**
-	 * Ensure that there are no duplicate contributions.
-	 * 
-	 * @since 3.1
-	 */
-	public final void testDuplicateAdaptables() {
-		assertPopupMenus("1", new String[] { "ICommon.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.D() }),
-				ICommon.class, true);
-		// repeat test on purpose to ensure no double call duplicates.
-		assertPopupMenus("1", new String[] { "ICommon.1" },
-				new StructuredSelection(
-						new Object[] { new ObjectContributionClasses.D() }),
-				ICommon.class, true);
-		assertPopupMenus("2", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.A() }), ICommon.class,
-				true);
-		assertPopupMenus("3", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.D() }), ICommon.class,
-				true);
-		assertPopupMenus("4", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.Common(),
-						new ObjectContributionClasses.D() }), ICommon.class,
-				true);
-		assertPopupMenus("5", new String[] { "ICommon.1" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.Common() }),
-				ICommon.class, true);
-	}
-
-	/**
-	 * Test non-adaptable contributions
-	 * 
-	 * @since 3.1
-	 */
-	public final void testNonAdaptableContributions() {
-		assertPopupMenus("1", new String[] { "ICommon.2" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.A(),
-						new ObjectContributionClasses.B() }), ICommon.class,
-				false);
-		assertPopupMenus("2", new String[] { "ICommon.2" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.Common() }),
-				ICommon.class, true);
-		assertPopupMenus("3", new String[] { "Common.2" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.D(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.A() }), ICommon.class,
-				false);
-		assertPopupMenus("4", new String[] { "Common.2" },
-				new StructuredSelection(new Object[] {
-						new ObjectContributionClasses.B(),
-						new ObjectContributionClasses.C(),
-						new ObjectContributionClasses.A() }), ICommon.class,
-				false);
-	}
-
-	/**
-	 * Helper class that will create a popup menu based on the given selection
-	 * and then ensure that the provided commandIds are added to the menu.
-	 * 
-	 * @param commandIds
-	 *            the command ids that should appear in the menu
-	 * @param selection
-	 *            the selection on which to contribute object contributions
-	 */
-	public void assertPopupMenus(String name, String[] commandIds,
-			final ISelection selection, Class selectionType, boolean existance) {
-		ISelectionProvider selectionProvider = new ISelectionProvider() {
-			public void addSelectionChangedListener(
-					ISelectionChangedListener listener) {
-			}
-
-			public ISelection getSelection() {
-				return selection;
-			}
-
-			public void removeSelectionChangedListener(
-					ISelectionChangedListener listener) {
-			}
-
-			public void setSelection(ISelection selection) {
-			}
-		};
-
-		// The popup extender needs a part to notify actions of the active part
-		final WorkbenchWindow window = (WorkbenchWindow) PlatformUI
-				.getWorkbench().getActiveWorkbenchWindow();
-		final IWorkbenchPage page = window.getActivePage();
-		IWorkbenchPart part = page.getActivePartReference().getPart(true);
-
-		// Create a fake PopupMenuExtender so we can get some data back.
-		final MenuManager fakeMenuManager = new MenuManager();
-		fakeMenuManager.add(new GroupMarker(
-				org.eclipse.ui.IWorkbenchActionConstants.MB_ADDITIONS));
-		final PopupMenuExtender extender = new PopupMenuExtender(null,
-				fakeMenuManager, selectionProvider, part);
-
-		/*
-		 * Pretend to show the pop-up menu -- looking to motivate the extender
-		 * to fill the menu based on the selection provider.
-		 * 
-		 * TODO This causes a big delay (in the order of a minute or more) while
-		 * trying to fill this menu. It seems to be loading a bunch of plug-ins,
-		 * and doing class loading.
-		 */
-		extender.menuAboutToShow(fakeMenuManager);
-
-		extender.dispose();
-
-		// Check to see if the appropriate object contributions are present.
-		final IContributionItem[] items = fakeMenuManager.getItems();
-		Set seenCommands = new HashSet(Arrays.asList(commandIds));
-		List commands = new ArrayList(Arrays.asList(commandIds));
-		for (int i = 0; i < items.length; i++) {
-			IContributionItem contributionItem = items[i];
-			// Step 1: test the selection
-			if (selectionType != null) {
-				IContributionItem item = contributionItem;
-				if (item instanceof SubContributionItem) {
-					item = ((SubContributionItem) contributionItem)
-							.getInnerItem();
-				}
-				if (item instanceof PluginActionContributionItem) {
-					// Verify that the selection passed to the action has been
-					// converted
-					ISelection s = null;
-					if (s instanceof IStructuredSelection) {
-						for (Iterator it = ((IStructuredSelection) s)
-								.iterator(); it.hasNext();) {
-							Object element = it.next();
-							assertTrue(name + " selection not converted",
-									selectionType.isInstance(element));
-						}
-					}
-				}
-			}
-			// Step 2: remember that we saw this element
-			String id = contributionItem.getId();
-			if (existance) {
-				boolean removed = commands.remove(id);
-				if (seenCommands.contains(id) && !removed) {
-					fail(name + " item duplicated in the context menu: " + id);
-				}
-			} else {
-				assertTrue(name + " item should not be in the context menu",
-						!commands.contains(id));
-			}
-		}
-
-		if (existance && !commands.isEmpty()) {
-			fail(name + " Missing " + commands.toString()
-					+ " from context menu.");
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/RemoveMarkersAction.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/RemoveMarkersAction.java
deleted file mode 100644
index 6e5c010..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/RemoveMarkersAction.java
+++ /dev/null
@@ -1,96 +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.tests.menus;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-import org.eclipse.ui.tests.TestPlugin;
-
-/**
- * @since 3.1
- */
-public class RemoveMarkersAction implements IWorkbenchWindowActionDelegate {
-
-    private IWorkbenchWindow window;
-
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
-     */
-    public void dispose() {
-        // TODO Auto-generated method stub
-
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
-     */
-    public void init(IWorkbenchWindow window) {
-        this.window = window;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-     */
-    public void run(IAction action) {
-        try {
-	        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-	        
-	        IMarker[] markers = root.findMarkers(AddMarkersAction.CATEGORY_TEST_MARKER, false, IResource.DEPTH_ZERO);
-	        
-	        for (int i = 0; i < markers.length; i++) {
-	            String message = (String) markers[i].getAttribute(IMarker.MESSAGE);
-
-	            if (message != null && message.startsWith("this is a test")) {
-	                markers[i].delete();
-	            }
-	        }
-        } catch (CoreException e) {
-            openError(e);
-        }
-    }
-
-    private void openError(Exception e) {
-        String msg = e.getMessage();
-        if (msg == null) {
-            msg = e.getClass().getName();
-        }
-
-        e.printStackTrace();
-
-        IStatus status = new Status(IStatus.ERROR, TestPlugin.getDefault()
-                .getDescriptor().getUniqueIdentifier(), 0, msg, e);
-
-        TestPlugin.getDefault().getLog().log(status);
-
-        ErrorDialog.openError(window.getShell(), "Error", msg, status);
-    }
-
-    
-    /* (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) {
-        // TODO Auto-generated method stub
-
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ShowViewMenuTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ShowViewMenuTest.java
deleted file mode 100644
index dfa2e6c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ShowViewMenuTest.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/******************************************************************************
- * Copyright (c) 2008 Versant Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Remy Chi Jian Suen (Versant Corporation) - initial API and implementation
- ******************************************************************************/
-package org.eclipse.ui.tests.menus;
-
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.ShowViewMenu;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- */
-public class ShowViewMenuTest extends UITestCase {
-
-	private IWorkbenchWindow workbenchWindow;
-
-	public ShowViewMenuTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		// open a workbench window with the empty perspective, since it defines
-		// no show view shortcuts, it is suitable for the two single show view
-		// action tests
-		workbenchWindow = openTestWindow();
-	}
-	
-	/***********************************
-	 * Tests for Bug 56368 starts here *
-	 ***********************************/
-
-	public void testMenuOnlyHasShowViewAction() {
-		Menu swtMenu = new Menu(workbenchWindow.getShell());
-		ShowViewMenu showViewMenu = new ShowViewMenu(workbenchWindow, "id"); //$NON-NLS-1$
-		showViewMenu.fill(swtMenu, 0);
-
-		// as the separator is not shown if there is only the 'Show View...'
-		// action, the item count should simply be one
-		assertEquals("Only the 'Other...' action should be available", 1, swtMenu.getItemCount());
-	}
-
-	public void testFastViewMenuVariantOnlyHasShowViewAction() {
-		Menu swtMenu = new Menu(workbenchWindow.getShell());
-		ShowViewMenu showViewMenu = new ShowViewMenu(workbenchWindow,
-				"id", true); //$NON-NLS-1$
-		showViewMenu.fill(swtMenu, 0);
-
-		// as the separator is not shown if there is only the 'Show View...'
-		// action, the item count should simply be one
-		assertEquals("Only the 'Other...' action should be available", 1, swtMenu.getItemCount());
-	}
-	
-	/*********************************
-	 * Tests for Bug 56368 ends here *
-	 *********************************/
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ToggleContextHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ToggleContextHandler.java
deleted file mode 100644
index 75b4daa..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/menus/ToggleContextHandler.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.menus;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.IElementUpdater;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.handlers.HandlerUtil;
-import org.eclipse.ui.menus.UIElement;
-
-/**
- * @since 3.3
- * 
- */
-public class ToggleContextHandler extends AbstractHandler implements
-		IElementUpdater {
-	private static final String TOGGLE_ID = "toggleContext.contextId";
-	Map contextActivations = new HashMap();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		String contextId = event.getParameter(TOGGLE_ID);
-		IWorkbenchWindow window = HandlerUtil
-				.getActiveWorkbenchWindowChecked(event);
-
-		IContextService contextService = (IContextService) window
-				.getService(IContextService.class);
-		IContextActivation a = (IContextActivation) contextActivations
-				.get(contextId);
-
-		// toggle the context active or not
-		if (a == null) {
-			contextActivations.put(contextId, contextService
-					.activateContext(contextId));
-		} else {
-			contextService.deactivateContext(a);
-			contextActivations.remove(contextId);
-		}
-
-		// now we should update any menu items/tool items that refer
-		// to toggleContext(contextId) ... this request means
-		// only update the UI that points to this specific context
-		// id ... not the other, non-interesting ones.
-		ICommandService commandService = (ICommandService) window
-				.getService(ICommandService.class);
-		Map filter = new HashMap();
-		filter.put(TOGGLE_ID, contextId);
-		commandService.refreshElements(event.getCommand().getId(), filter);
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.commands.IElementUpdater#updateElement(org.eclipse.ui.menus.UIElement, java.util.Map)
-	 */
-	public void updateElement(UIElement element, Map parameters) {
-
-		// the checked state depends on if we have an activation for that
-		// context ID or not
-		String contextId = (String) parameters.get(TOGGLE_ID);
-		element.setChecked(contextActivations.get(contextId) != null);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTest.java
deleted file mode 100644
index ffebd3d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTest.java
+++ /dev/null
@@ -1,534 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.multieditor;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ILog;
-import org.eclipse.core.runtime.ILogListener;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.ToolBarContributionItem;
-import org.eclipse.jface.action.ToolBarManager;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.IActionBars2;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-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.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.IContributedContentsView;
-import org.eclipse.ui.part.MultiEditor;
-import org.eclipse.ui.part.MultiEditorInput;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test MultiEditor behaviour to highlight some of the broken functionality.
- * 
- * @since 3.1
- */
-public class MultiEditorTest extends UITestCase {
-	private static final String ACTION_TOOLTIP = "MultiEditorActionThing";
-
-	private static final String PROJECT_NAME = "TiledEditorProject";
-
-	private static final String CONTENT_OUTLINE = "org.eclipse.ui.views.ContentOutline";
-
-	private static final String TESTEDITOR_COOLBAR = "org.eclipse.ui.tests.multieditor.actionSet";
-
-	private static final String TILED_EDITOR_ID = "org.eclipse.ui.tests.multieditor.TiledEditor";
-
-	// tiled editor test files
-	private static final String DATA_FILES_DIR = "/data/org.eclipse.newMultiEditor/";
-
-	private static final String TEST01_TXT = "test01.txt";
-
-	private static final String TEST02_TXT = "test02.txt";
-
-	private static final String TEST03_ETEST = "test03.etest";
-
-	private static final String TEST04_PROPERTIES = "test04.properties";
-
-	private static final String BUILD_XML = "build.xml";
-
-	//
-	// call trace for the editor open - setFocus - close test
-	//
-	private static String[] gEditorOpenTrace = { "setInitializationData",
-			"init", "createPartControl", "createInnerPartControl",
-			"createInnerPartControl", "setFocus", "updateGradient",
-			"updateGradient", };
-
-	private static String[] gEditorFocusTrace = { "setInitializationData",
-			"init", "createPartControl", "createInnerPartControl",
-			"createInnerPartControl", "setFocus", "updateGradient",
-			"updateGradient", "updateGradient", "updateGradient", };
-
-	private static String[] gEditorCloseTrace = { "setInitializationData",
-			"init", "createPartControl", "createInnerPartControl",
-			"createInnerPartControl", "setFocus", "updateGradient",
-			"updateGradient", "updateGradient", "updateGradient",
-			"widgetsDisposed", "dispose" };
-
-	public static TestSuite suite() {
-		return new TestSuite(MultiEditorTest.class);
-	}
-
-	/**
-	 * Can catch a MultiEditor unexpect Exception on init.
-	 */
-	private EditorErrorListener fErrorListener;
-
-	public MultiEditorTest(String tc) {
-		super(tc);
-	}
-
-	/**
-	 * Test that the test tiled editor can be opened with a basic
-	 * MultiEditorInput with the same type of files.
-	 * 
-	 * Test: Select a couple of files from navigator and use the TiledEditor
-	 * menu to open the editor. It should open with the first selected file on
-	 * top.
-	 * 
-	 * @throws Throwable
-	 *             on an error
-	 */
-	public void testOpenBasicEditor() throws Throwable {
-		final String[] simpleFiles = { TEST01_TXT, TEST02_TXT };
-
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-
-		IProject testProject = findOrCreateProject(PROJECT_NAME);
-
-		MultiEditorInput input = generateEditorInput(simpleFiles, testProject);
-
-		// validate there are no NullPointerExceptions during editor
-		// initialization
-		openAndValidateEditor(page, input);
-	}
-
-	/**
-	 * Test that the public methods in TiledEditor (and MultiEditor) are called
-	 * in the correct order from 3.0 to 3.1.
-	 * 
-	 * Test: this test involves opening the tiled editor on 2 files, changing
-	 * the focus from the first file to the second file, and closing the tiled
-	 * editor.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testOpenTestFile() throws Throwable {
-		final String[] simpleFiles = { TEST01_TXT, TEST03_ETEST };
-
-		IWorkbenchWindow window = openTestWindow();
-		WorkbenchPage page = (WorkbenchPage) window.getActivePage();
-
-		IProject testProject = findOrCreateProject(PROJECT_NAME);
-
-		MultiEditorInput input = generateEditorInput(simpleFiles, testProject);
-
-		// catches the framework NPE
-		IEditorPart editor = openAndValidateEditor(page, input);
-
-		// did we get a multieditor back?
-		assertTrue(editor instanceof MultiEditor);
-		MultiEditor multiEditor = (MultiEditor) editor;
-
-		chewUpEvents();
-
-		// listHistory(((TiledEditor) multiEditor).callHistory);
-
-		// check the public API called for opening the TiledEditor
-		// ((TiledEditor) multiEditor).callHistory.printToConsole();
-		assertTrue("The editor open trace was incorrect",
-				((TiledEditor) multiEditor).callHistory
-						.verifyOrder(gEditorOpenTrace));
-
-		// swap focus to the last editor, which is the test editor
-		// with the test coolbar contribution
-		IEditorPart[] innerEditors = multiEditor.getInnerEditors();
-		innerEditors[innerEditors.length - 1].setFocus();
-
-		chewUpEvents();
-
-		// ((TiledEditor) multiEditor).callHistory.printToConsole();
-		assertTrue("Editor setFocus trace was incorrect",
-				((TiledEditor) multiEditor).callHistory
-						.verifyOrder(gEditorFocusTrace));
-
-		page.closeEditor(multiEditor, false);
-
-		chewUpEvents();
-
-		// ((TiledEditor) multiEditor).callHistory.printToConsole();
-		assertTrue("Editor close trace was incorrect",
-				((TiledEditor) multiEditor).callHistory
-						.verifyOrder(gEditorCloseTrace));
-	}
-
-	/**
-	 * Test that coolbar items in the workbench are updated when focus moves
-	 * through the different inner editors ... this test as written is not 100%
-	 * accurate, as the items are enabled.
-	 * 
-	 * Test: Open two files where the first is a text file and the second is of
-	 * type etest. Change focus to the etest file, and the coolbar should update
-	 * with a new action icon and it should be enabled.
-	 * 
-	 * @throws Throwable
-	 *             on an error
-	 */
-	public void testTrackCoolBar() throws Throwable {
-		final String[] simpleFiles = { TEST01_TXT, TEST02_TXT,
-				TEST04_PROPERTIES, BUILD_XML, TEST03_ETEST };
-
-		IWorkbenchWindow window = openTestWindow();
-		WorkbenchPage page = (WorkbenchPage) window.getActivePage();
-
-		IProject testProject = findOrCreateProject(PROJECT_NAME);
-
-		MultiEditorInput input = generateEditorInput(simpleFiles, testProject);
-
-		// catches the framework NPE
-		IEditorPart editor = openAndValidateEditor(page, input);
-
-		// did we get a multieditor back?
-		assertTrue(editor instanceof MultiEditor);
-		MultiEditor multiEditor = (MultiEditor) editor;
-
-		chewUpEvents();
-
-		// get access to the appropriate coolbar
-		IContributionItem contribution = findMyCoolBar(page);
-
-		// our test editor contribution should not be visible
-		// but it should be enabled
-		validateIconState(contribution, ACTION_TOOLTIP, false);
-
-		// swap focus to the last editor, which is the test editor
-		// with the test coolbar contribution
-		IEditorPart[] innerEditors = multiEditor.getInnerEditors();
-		innerEditors[innerEditors.length - 1].setFocus();
-
-		chewUpEvents();
-
-		contribution = findMyCoolBar(page);
-		assertNotNull("It should be available now", contribution);
-
-		// our test editor contribution should now be visible and
-		// enabled
-		validateIconState(contribution, ACTION_TOOLTIP, true);
-
-	}
-
-	/**
-	 * Test that the outline view is updated when focus moves from an editor to
-	 * the ant editor.
-	 * 
-	 * Test: Open 2 files where the first is a text file and the second is an
-	 * ant file. Set focus on the ant file, and the outline should be updated to
-	 * reflect the buildfile outline.
-	 * 
-	 * @throws Throwable
-	 *             on an error
-	 */
-	public void xtestTrackOutline() throws Throwable {
-		final String[] simpleFiles = { TEST01_TXT, TEST02_TXT,
-				TEST04_PROPERTIES, BUILD_XML, TEST03_ETEST };
-
-		IWorkbenchWindow window = openTestWindow();
-		WorkbenchPage page = (WorkbenchPage) window.getActivePage();
-
-		IProject testProject = findOrCreateProject(PROJECT_NAME);
-
-		MultiEditorInput input = generateEditorInput(simpleFiles, testProject);
-
-		// catches the framework NPE
-		IEditorPart editor = openAndValidateEditor(page, input);
-
-		// did we get a multieditor back?
-		assertTrue(editor instanceof MultiEditor);
-		MultiEditor multiEditor = (MultiEditor) editor;
-
-		chewUpEvents();
-
-		// Swap to the second last editor, which should be the ant
-		// build editor.
-		IEditorPart[] innerEditors = multiEditor.getInnerEditors();
-		innerEditors[innerEditors.length - 2].setFocus();
-		chewUpEvents();
-
-		// get the outline view part
-		IViewPart outline = window.getActivePage().showView(CONTENT_OUTLINE);
-		assertNotNull(outline);
-
-		// find out who is contributing the outline view.
-		IContributedContentsView view = (IContributedContentsView) outline
-				.getAdapter(IContributedContentsView.class);
-		IWorkbenchPart part = view.getContributingPart();
-		assertNotNull("The Outline view has not been updated by the editor",
-				part);
-		assertTrue("The Outline view is not talking to an editor",
-				part instanceof IEditorPart);
-
-		IEditorPart outlineEditor = (IEditorPart) part;
-
-		// the active inner editor (the ant editor) should also
-		// be the outline editor contributor ... this works in
-		// 3.0, fails in 3.1
-		assertEquals("The Outline view is not talking to the correct editor",
-				multiEditor.getActiveEditor(), outlineEditor);
-
-		page.closeEditor(editor, false);
-		chewUpEvents();
-
-		view = (IContributedContentsView) outline
-				.getAdapter(IContributedContentsView.class);
-		assertNull(view.getContributingPart());
-	}
-
-	/**
-	 * Return the test editor coolbar.
-	 * 
-	 * @param page
-	 *            the workbench page
-	 * @return the IContributionItem for the test editor cool bar.
-	 */
-	private IContributionItem findMyCoolBar(WorkbenchPage page) {
-		// listItems(page);
-		IContributionItem contribution = ((IActionBars2) page.getActionBars())
-				.getCoolBarManager().find(TESTEDITOR_COOLBAR);
-		// assertNotNull(contribution);
-
-		return contribution;
-	}
-
-	/**
-	 * Validate the state of an icon in the toolbar.
-	 * 
-	 * @param contribution
-	 *            the high level contribution from the coolbar to look through
-	 * @param tooltip
-	 *            the string that matches the action's tooltip
-	 * @param state
-	 *            should it be true or false
-	 */
-	private void validateIconState(IContributionItem contribution,
-			String tooltip, boolean state) {
-		assertTrue("We might not have the contribution or expect it",
-				contribution != null || !state);
-		if (contribution == null) {
-			return;
-		}
-
-		ToolBarManager toolBarManager = (ToolBarManager) ((ToolBarContributionItem) contribution)
-				.getToolBarManager();
-		ToolBar bar = toolBarManager.getControl();
-
-		assertTrue("It's OK for bar to be null if we expect state to be false",
-				bar != null || !state);
-		if (bar == null) {
-			return;
-		}
-
-		ToolItem[] items = bar.getItems();
-		for (int i = 0; i < items.length; ++i) {
-			// System.err.println("Item: " + items[i].getToolTipText());
-			if (tooltip.equals(items[i].getToolTipText())) {
-				assertEquals("Invalid icon state for " + tooltip, state,
-						items[i].getEnabled());
-				return;
-			}
-		}
-		assertFalse("We haven't found our item", state);
-	}
-
-	/**
-	 * Create the project to work in. If it already exists, just open it.
-	 * 
-	 * @param projectName
-	 *            the name of the project to create
-	 * @return the newly opened project
-	 * @throws CoreException
-	 */
-	private IProject findOrCreateProject(String projectName)
-			throws CoreException {
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject testProject = workspace.getRoot().getProject(projectName);
-		if (!testProject.exists()) {
-			testProject.create(null);
-		}
-		testProject.open(null);
-		return testProject;
-	}
-
-	/**
-	 * After an internal action, see if there are any outstanding SWT events.
-	 */
-	private void chewUpEvents() throws InterruptedException {
-		Thread.sleep(500);
-		Display display = Display.getCurrent();
-		while (display.readAndDispatch())
-			;
-	}
-
-	/**
-	 * Open the test editor. It does basic validation that there is no
-	 * NullPointerException during initialization.
-	 * 
-	 * @param page
-	 *            the workbench page
-	 * @param input
-	 *            the editor input with multiple files
-	 * @return the MultiEditor
-	 * @throws PartInitException
-	 */
-	private IEditorPart openAndValidateEditor(IWorkbenchPage page,
-			MultiEditorInput input) throws PartInitException {
-
-		IEditorPart editorPart = null;
-		try {
-			setupErrorListener();
-			editorPart = page
-					.openEditor(input, MultiEditorTest.TILED_EDITOR_ID);
-			assertNotNull(editorPart);
-
-			// 3.1.0 only
-			// assertFalse("The editor never actualized",
-			// editorPart instanceof ErrorEditorPart);
-
-			if (fErrorListener.messages.size() > 0) {
-				String[] msgs = (String[]) fErrorListener.messages
-						.toArray(new String[fErrorListener.messages.size()]);
-				for (int i = 0; i < msgs.length; i++) {
-					if (msgs[i].indexOf("The proxied handler for") == -1
-							&& msgs[i].indexOf("Conflict for \'") == -1
-							&& msgs[i].indexOf("Keybinding conflicts occurred")==-1
-							&& msgs[i].indexOf("A handler conflict occurred")==-1) {
-						fail("Failed with: " + msgs[i]);
-					}
-				}
-			}
-		} finally {
-			removeErrorListener();
-		}
-		return editorPart;
-	}
-
-	/**
-	 * Set up to catch any editor initialization exceptions.
-	 * 
-	 */
-	private void setupErrorListener() {
-		final ILog log = WorkbenchPlugin.getDefault().getLog();
-		fErrorListener = new EditorErrorListener();
-		log.addLogListener(fErrorListener);
-	}
-
-	/**
-	 * Remove the editor error listener.
-	 */
-	private void removeErrorListener() {
-		final ILog log = WorkbenchPlugin.getDefault().getLog();
-		if (fErrorListener != null) {
-			log.removeLogListener(fErrorListener);
-			fErrorListener = null;
-		}
-	}
-
-	/**
-	 * Create the multi editor input in the given project. Creates the files in
-	 * the project from template files in the classpath if they don't already
-	 * exist.
-	 * 
-	 * @param simpleFiles
-	 *            the array of filenames to copy over
-	 * @param testProject
-	 *            the project to create the files in
-	 * @return the editor input used to open the multieditor
-	 * @throws CoreException
-	 * @throws IOException
-	 */
-	private MultiEditorInput generateEditorInput(String[] simpleFiles,
-			IProject testProject) throws CoreException, IOException {
-		String[] ids = new String[simpleFiles.length];
-		IEditorInput[] inputs = new IEditorInput[simpleFiles.length];
-		IEditorRegistry registry = fWorkbench.getEditorRegistry();
-
-		for (int f = 0; f < simpleFiles.length; ++f) {
-			IFile f1 = testProject.getFile(simpleFiles[f]);
-			if (!f1.exists()) {
-				URL file = Platform.asLocalURL(TestPlugin.getDefault()
-						.getBundle().getEntry(DATA_FILES_DIR + simpleFiles[f]));
-				f1.create(file.openStream(), true, null);
-			}
-			ids[f] = registry.getDefaultEditor(f1.getName()).getId();
-			inputs[f] = new FileEditorInput(f1);
-		}
-
-		MultiEditorInput input = new MultiEditorInput(ids, inputs);
-		return input;
-	}
-
-	/**
-	 * Close any editors at the beginner of a test, so the test can be clean.
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		IWorkbenchPage page = fWorkbench.getActiveWorkbenchWindow()
-				.getActivePage();
-		page.closeAllEditors(false);
-
-	}
-
-	/**
-	 * Listens for the standard message that indicates the MultiEditor failed
-	 * ... usually caused by incorrect framework initialization that doesn't set
-	 * the innerChildren.
-	 * 
-	 * @since 3.1
-	 * 
-	 */
-	public static class EditorErrorListener implements ILogListener {
-
-		public ArrayList messages = new ArrayList();
-
-		public void logging(IStatus status, String plugin) {
-			String msg = status.getMessage();
-			Throwable ex = status.getException();
-			if (ex != null) {
-				msg += ": " + ex.getMessage();
-			}
-			messages.add(msg);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTestSuite.java
deleted file mode 100644
index 56bfff0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/MultiEditorTestSuite.java
+++ /dev/null
@@ -1,27 +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.tests.multieditor;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class MultiEditorTestSuite extends TestSuite {
-
-	public static Test suite() {
-		return new MultiEditorTestSuite();
-	}
-    /**
-     * Construct the test suite.
-     */
-    public MultiEditorTestSuite() {
-        addTestSuite(MultiEditorTest.class);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestActionBarContributor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestActionBarContributor.java
deleted file mode 100644
index 5f2a0c8..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestActionBarContributor.java
+++ /dev/null
@@ -1,28 +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.tests.multieditor;
-
-import org.eclipse.jface.action.ICoolBarManager;
-import org.eclipse.ui.part.EditorActionBarContributor;
-
-public class TestActionBarContributor extends EditorActionBarContributor {
-
-	public TestActionBarContributor() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToCoolBar(org.eclipse.jface.action.ICoolBarManager)
-	 */
-	public void contributeToCoolBar(ICoolBarManager coolBarManager) {
-		super.contributeToCoolBar(coolBarManager);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestEditor.java
deleted file mode 100644
index a42bd31..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TestEditor.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.ui.tests.multieditor;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * A test editor that does pretty-well nothing.  Activating it will
- * update the coolbar, and possibly eventually the outline as well.
- * 
- * @since 3.1
- *
- */
-public class TestEditor extends EditorPart {
-
-	private Composite fMainPanel;
-
-	public TestEditor() {
-		super();
-		// TODO Auto-generated constructor stub
-	}
-
-	public void doSave(IProgressMonitor monitor) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void doSaveAs() {
-		// TODO Auto-generated method stub
-
-	}
-
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		if (!(input instanceof IFileEditorInput))
-			throw new PartInitException(
-					"Invalid Input: Must be IFileEditorInput");
-		setSite(site);
-		setInput(input);
-
-	}
-
-	public boolean isDirty() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public boolean isSaveAsAllowed() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public void createPartControl(Composite parent) {
-		fMainPanel = new Composite(parent, SWT.NONE);
-		fMainPanel.setLayout(new RowLayout(SWT.VERTICAL));
-
-		Label l = new Label(fMainPanel, SWT.NONE);
-		l.setText("Editor Title:");
-
-		l = new Label(fMainPanel, SWT.BORDER);
-		l.setText(getEditorInput().getName());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {
-		fMainPanel.setFocus();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TiledEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TiledEditor.java
deleted file mode 100644
index 0b861a6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multieditor/TiledEditor.java
+++ /dev/null
@@ -1,193 +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.ui.tests.multieditor;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ViewForm;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.MultiEditor;
-import org.eclipse.ui.tests.harness.util.CallHistory;
-
-/**
- * Implementation of a TiledEditor. This is the testable version copied from bug
- * 42641.
- */
-public class TiledEditor extends MultiEditor {
-
-	private CLabel innerEditorTitle[];
-
-	public CallHistory callHistory;
-
-	public TiledEditor() {
-		super();
-		callHistory = new CallHistory(this);
-	}
-
-	/**
-	 * technically not part of our framework API, but it will mark when the
-	 * widgets were disposed.
-	 */
-	public void widgetsDisposed() {
-		callHistory.add("widgetsDisposed");
-	}
-
-	/*
-	 * @see IWorkbenchPart#createPartControl(Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		callHistory.add("createPartControl");
-
-		parent.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				widgetsDisposed();
-			}
-		});
-
-		parent = new Composite(parent, SWT.BORDER);
-
-		parent.setLayout(new FillLayout());
-		SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL);
-		IEditorPart innerEditors[] = getInnerEditors();
-
-		for (int i = 0; i < innerEditors.length; i++) {
-			final IEditorPart e = innerEditors[i];
-			ViewForm viewForm = new ViewForm(sashForm, SWT.NONE);
-			viewForm.marginWidth = 0;
-			viewForm.marginHeight = 0;
-
-			createInnerEditorTitle(i, viewForm);
-
-			Composite content = createInnerPartControl(viewForm, e);
-
-			viewForm.setContent(content);
-			updateInnerEditorTitle(e, innerEditorTitle[i]);
-
-			final int index = i;
-			e.addPropertyListener(new IPropertyListener() {
-				public void propertyChanged(Object source, int property) {
-					if (property == IEditorPart.PROP_DIRTY
-							|| property == IWorkbenchPart.PROP_TITLE)
-						if (source instanceof IEditorPart)
-							updateInnerEditorTitle((IEditorPart) source,
-									innerEditorTitle[index]);
-				}
-			});
-		}
-	}
-
-	/**
-	 * Draw the gradient for the specified editor.
-	 */
-	protected void drawGradient(IEditorPart innerEditor, Gradient g) {
-		CLabel label = innerEditorTitle[getIndex(innerEditor)];
-		if ((label == null) || label.isDisposed())
-			return;
-
-		label.setForeground(g.fgColor);
-		label.setBackground(g.bgColors, g.bgPercents);
-	}
-
-	/*
-	 * Create the label for each inner editor.
-	 */
-	protected void createInnerEditorTitle(int index, ViewForm parent) {
-
-		CLabel titleLabel = new CLabel(parent, SWT.SHADOW_NONE);
-		// hookFocus(titleLabel);
-		titleLabel.setAlignment(SWT.LEFT);
-		titleLabel.setBackground(null, null);
-		parent.setTopLeft(titleLabel);
-		if (innerEditorTitle == null)
-			innerEditorTitle = new CLabel[getInnerEditors().length];
-		innerEditorTitle[index] = titleLabel;
-	}
-
-	/*
-	 * Update the tab for an editor. This is typically called by a site when the
-	 * tab title changes.
-	 */
-	public void updateInnerEditorTitle(IEditorPart editor, CLabel label) {
-
-		if ((label == null) || label.isDisposed())
-			return;
-		String title = editor.getTitle();
-		if (editor.isDirty())
-			title = "*" + title; //$NON-NLS-1$
-		label.setText(title);
-		Image image = editor.getTitleImage();
-		if (image != null)
-			if (!image.equals(label.getImage()))
-				label.setImage(image);
-		label.setToolTipText(editor.getTitleToolTip());
-	}
-
-	/*
-	 * 
-	 */
-	protected int getIndex(IEditorPart editor) {
-		IEditorPart innerEditors[] = getInnerEditors();
-		for (int i = 0; i < innerEditors.length; i++) {
-			if (innerEditors[i] == editor)
-				return i;
-		}
-		return -1;
-	}
-
-	//
-	// These are public methods from the parent that are overriden to
-	// add them to the call history.
-	//
-
-	public Composite createInnerPartControl(Composite parent, IEditorPart e) {
-		callHistory.add("createInnerPartControl");
-		return super.createInnerPartControl(parent, e);
-	}
-
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		callHistory.add("init");
-		super.init(site, input);
-	}
-
-	public void setFocus() {
-		callHistory.add("setFocus");
-		super.setFocus();
-	}
-
-	public void updateGradient(IEditorPart editor) {
-		callHistory.add("updateGradient");
-		super.updateGradient(editor);
-	}
-
-	public void setInitializationData(IConfigurationElement cfig,
-			String propertyName, Object data) {
-		callHistory.add("setInitializationData");
-		super.setInitializationData(cfig, propertyName, data);
-	}
-
-	public void dispose() {
-		callHistory.add("dispose");
-		super.dispose();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/ContextTextEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/ContextTextEditor.java
deleted file mode 100644
index ea744a5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/ContextTextEditor.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.tests.multipageeditor;
-
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * @since 3.2
- * 
- */
-public class ContextTextEditor extends TextEditor {
-	public static final String TEXT_CONTEXT_ID = "org.eclipse.ui.textEditorScope";
-
-	public static final String CONTEXT_ID = "org.eclipse.ui.tests.multipageeditor.contextEditor";
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#init(org.eclipse.ui.IEditorSite,
-	 *      org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input)
-			throws PartInitException {
-		super.init(site, input);
-		IServiceLocator locator = getSite();
-		IContextService contextService = (IContextService) locator
-				.getService(IContextService.class);
-
-		// if this was instantiated as a regular editor, the context would
-		// be governed by part activation ... embedded in an MPEP,
-		// the context should be governed by page activation.
-		contextService.activateContext(CONTEXT_ID);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java
deleted file mode 100644
index 9d36624..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiEditorInputTest.java
+++ /dev/null
@@ -1,71 +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.tests.multipageeditor;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiEditorInput;
-
-/**
- * Tests the API of <code>MultiPageEditorInput</code>.
- * 
- * @since 3.1
- */
-public class MultiEditorInputTest extends TestCase {
-
-    /**
-     * Constructs a new instance of <code>MultiPageEditorInputTest</code>.
-     * 
-     * @param name
-     *            The name of the test to be run.
-     */
-    public MultiEditorInputTest(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests the equals and hashCode methods.
-     */
-    public void testEqualsAndHash() {
-        String ea = "dummy.editor.id.A";
-        String eb = "dummy.editor.id.B";
-        String ec = "dummy.editor.id.C";
-        IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-        IEditorInput ia = new FileEditorInput(root.getFile(new Path("/DummyProject/FileA")));
-        IEditorInput ib = new FileEditorInput(root.getFile(new Path("/DummyProject/FileB")));
-        IEditorInput ic = new FileEditorInput(root.getFile(new Path("/DummyProject/FileC")));
-        MultiEditorInput a = new MultiEditorInput(new String[] { ea }, new IEditorInput[] { ia });
-        MultiEditorInput a2 = new MultiEditorInput(new String[] { ea }, new IEditorInput[] { ia });
-        MultiEditorInput b = new MultiEditorInput(new String[] { eb }, new IEditorInput[] { ib });
-        MultiEditorInput abc = new MultiEditorInput(new String[] { ea, eb, ec }, new IEditorInput[] { ia, ib, ic });
-        MultiEditorInput abc2 = new MultiEditorInput(new String[] { ea, eb, ec }, new IEditorInput[] { ia, ib, ic });
-
-        assertTrue(a.equals(a));
-        assertTrue(abc.equals(abc));
-
-        assertTrue(a.equals(a2));
-        assertTrue(a.hashCode() == a2.hashCode());
-
-        assertFalse(a.equals(b));
-        
-        assertTrue(abc.equals(abc2));
-        assertTrue(abc.hashCode() == abc2.hashCode());
-        
-        // check that differing array lengths are handled properly
-        assertFalse(a.equals(abc));
-        assertFalse(abc.equals(a));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorTestSuite.java
deleted file mode 100644
index 9e6c55e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageEditorTestSuite.java
+++ /dev/null
@@ -1,40 +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.ui.tests.multipageeditor;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * The suite of tests for multi-page editors.
- * 
- * @since 3.0
- */
-public class MultiPageEditorTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     * @return A new test suite; never <code>null</code>.;
-     */
-    public static Test suite() {
-        return new MultiPageEditorTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public MultiPageEditorTestSuite() {
-        addTestSuite(MultiEditorInputTest.class);
-        addTestSuite(MultiVariablePageTest.class);
-        // Focus issues
-        // addTest(new TestSuite(MultiPageKeyBindingTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageKeyBindingTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageKeyBindingTest.java
deleted file mode 100644
index 550cc5c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiPageKeyBindingTest.java
+++ /dev/null
@@ -1,99 +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.ui.tests.multipageeditor;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.ICommandManager;
-import org.eclipse.ui.commands.IWorkbenchCommandSupport;
-import org.eclipse.ui.keys.KeySequence;
-import org.eclipse.ui.keys.ParseException;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests that key bindings are treated correctly in a multi-page editor. This
- * ensures that key bindings are switched at the granularity of a page in a
- * multi-page editor. See Bug 37612 for references.
- * 
- * @since 3.0
- */
-public class MultiPageKeyBindingTest extends UITestCase {
-
-    /**
-     * Constructs a new instance of <code>MultiPageKeyBindingTest</code>.
-     * 
-     * @param name
-     *            The name of the test to be run.
-     */
-    public MultiPageKeyBindingTest(String name) {
-        super(name);
-    }
-
-    /**
-     * Tests that the key bindings are updated when the page is switched in a
-     * multi-page editor part.
-     * 
-     * @throws CoreException
-     *             If the project or file cannot be created.
-     * @throws ParseException
-     *             The expected key sequence cannot be parsed.
-     */
-    public void testSwitch() throws CoreException, ParseException {
-        final String extension = "multi"; //$NON-NLS-1$
-        final String fileName = "A." + extension; //$NON-NLS-1$
-
-        // Open a new test window.
-        IWorkbenchWindow window = openTestWindow();
-
-        // Create a blurb file.
-        IWorkbenchPage page = window.getActivePage();
-        IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        IProject testProject = workspace.getRoot().getProject(
-                "MultiPageKeyBindingTest Project"); //$NON-NLS-1$
-        testProject.create(null);
-        testProject.open(null);
-        IFile multiFile = testProject.getFile(fileName);
-        multiFile.create(new ByteArrayInputStream(new byte[0]), true, null);
-
-        // Open a blurb file.
-        IEditorInput editorInput = new FileEditorInput(multiFile);
-        IEditorPart editorPart = page.openEditor(editorInput,
-                "org.eclipse.ui.tests.multipageeditor.TestMultiPageEditor"); //$NON-NLS-1$
-        TestMultiPageEditor multiPageEditorPart = (TestMultiPageEditor) editorPart;
-
-        // Switch to the second tab
-        window.getShell().forceActive();
-        Display display = Display.getCurrent();
-        while (display.readAndDispatch())
-            ;
-        multiPageEditorPart.setPage(1);
-
-        // Check that "Ctrl+Shift+5" is the bound key.
-        IWorkbenchCommandSupport commandSupport = window.getWorkbench()
-                .getCommandSupport();
-        ICommandManager commandManager = commandSupport.getCommandManager();
-        KeySequence expectedKeyBinding = KeySequence
-                .getInstance("Ctrl+Shift+5"); //$NON-NLS-1$
-        String commandId = commandManager.getPerfectMatch(expectedKeyBinding);
-        assertEquals("org.eclipse.ui.tests.TestCommandId", commandId); //$NON-NLS-1$
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageEditor.java
deleted file mode 100644
index 04ae09f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageEditor.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.multipageeditor;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.FindReplaceDocumentAdapter;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-
-/**
- * A MultiPageEditorPart with methods that take a peek at things like selection
- * events or selection status or page change events.
- * 
- * @since 3.2
- */
-public class MultiVariablePageEditor extends MultiPageEditorPart {
-
-	private Composite lastPage;
-
-	/**
-	 * Default with 2 pages, although they're on the same editor input and
-	 * they're the TextEditor.
-	 */
-	protected void createPages() {
-		try {
-			TextEditor section1 = new TextEditor();
-			int index = addPage(section1, getEditorInput());
-			setPageText(index, section1.getTitle());
-
-			TextEditor section2 = new TextEditor();
-			index = addPage(section2, getEditorInput());
-			setPageText(index, section2.getTitle());
-
-			ContextTextEditor section3 = new ContextTextEditor();
-			index = addPage(section3, getEditorInput());
-			setPageText(index, section3.getTitle());
-
-		} catch (PartInitException e) {
-			throw new RuntimeException(e);
-		}
-	}
-
-	public void doSave(IProgressMonitor monitor) {
-		// do nothing
-	}
-
-	public void doSaveAs() {
-		throw new UnsupportedOperationException(
-				"doSaveAs should not be called.");
-	}
-
-	/**
-	 * No save as.
-	 * 
-	 * @return false
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#pageChange(int)
-	 */
-	protected void pageChange(int newPageIndex) {
-		super.pageChange(newPageIndex);
-		IEditorPart part = getEditor(newPageIndex);
-		if (part instanceof TextEditor) {
-			TextEditor editor = (TextEditor) part;
-			IDocumentProvider provider = editor.getDocumentProvider();
-			IDocument doc = provider.getDocument(getEditorInput());
-			FindReplaceDocumentAdapter find = new FindReplaceDocumentAdapter(
-					doc);
-			try {
-				IRegion region = find.find(0, "#section0" + (newPageIndex + 1),
-						true, true, false, false);
-				if (region != null) {
-					editor.selectAndReveal(region.getOffset(), region
-							.getLength());
-				}
-			} catch (BadLocationException e) {
-				System.err.println("Failed to find a section");
-			}
-		}
-	}
-
-	/**
-	 * Set the active page in this MPEP. Just delegate back to
-	 * setActivePage(int).
-	 * 
-	 * @param index
-	 *            The page index which must be valid.
-	 */
-	public void setPage(int index) {
-		super.setActivePage(index);
-	}
-
-	/**
-	 * Add a page with a composite for testing.
-	 * 
-	 */
-	public void addLastPage() {
-		lastPage = new Composite(getContainer(), SWT.NONE);
-		Label l = new Label(lastPage, SWT.SHADOW_IN);
-		l.setText(getEditorInput().getName());
-		addPage(lastPage);
-	}
-
-	/**
-	 * remove the last page for testing.
-	 * 
-	 */
-	public void removeLastPage() {
-		if (getPageCount() > 0) {
-			removePage(getPageCount() - 1);
-		}
-		lastPage = null;
-	}
-
-	/**
-	 * Get the last page composite for testing.
-	 * 
-	 * @return the last page.
-	 */
-	public Control getLastPage() {
-		return lastPage;
-	}
-	
-	public IEditorPart getEditor(int pageIndex) {
-		return super.getEditor(pageIndex);
-	}
-
-	/**
-	 * Return the control for testing (like the editor control).
-	 * 
-	 * @param index
-	 *            the page index to get
-	 * @return the control for that page
-	 */
-	public Control getTestControl(int index) {
-		return getControl(index);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageTest.java
deleted file mode 100644
index bb965fc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/MultiVariablePageTest.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.multipageeditor;
-
-import java.io.ByteArrayInputStream;
-import java.util.Collection;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPartService;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * <p>
- * Test that the MultiPageEditorPart is acting on events and changes. These
- * tests are for making sure that selection events and page change events are
- * handled.
- * </p>
- * <p>
- * It also checks for changing Contexts.
- * </p>
- * 
- * @since 3.2
- */
-public class MultiVariablePageTest extends UITestCase {
-
-	private static final String FILE_CONTENTS = "#section01\nsection 1\n#section02\nsection 2\nwith info\n#section03\nLast page\n";
-
-	private static final String MTEST01_FILE = "mtest01.multivar";
-
-	private static final String MTEST02_FILE = "mtest02.multivar";
-
-	private static final String MULTI_VARIABLE_PROJ = "MultiVariableTest";
-
-	private int fPostCalled;
-
-	public MultiVariablePageTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Make sure that setting the active page programmatically calls
-	 * pageChanged(int) on the way. This method is overridden in a lot of
-	 * editors to provide their functionality on page changes.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testSetActivePage() throws Throwable {
-		// Open a new test window.
-		// Create and open a blurb file.
-		IWorkbenchWindow window = openTestWindow();
-		IEditorPart part = openMultivarFile(window, MTEST01_FILE);
-
-		MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
-
-		editor.setPage(1);
-		ISelection selection = editor.getEditorSite().getSelectionProvider()
-				.getSelection();
-		TextSelection text = (TextSelection) selection;
-		// when we change to the second page, the selection should be
-		// updated.
-		assertEquals("#section02", text.getText());
-
-		editor.setPage(0);
-		selection = editor.getEditorSite().getSelectionProvider()
-				.getSelection();
-		text = (TextSelection) selection;
-		// when we change back to the first page, the selection should be
-		// updated.
-		assertEquals("#section01", text.getText());
-	}
-
-	/**
-	 * Make sure that removing a page that is a Control (instead of an editor)
-	 * disposes of the Control immediately.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testRemovePage() throws Throwable {
-		// Open a new test window.
-		// Create and open a blurb file.
-		IWorkbenchWindow window = openTestWindow();
-		IEditorPart part = openMultivarFile(window, MTEST01_FILE);
-
-		MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
-		editor.addLastPage();
-		Control c = editor.getLastPage();
-		assertFalse(c.isDisposed());
-		editor.removeLastPage();
-		assertTrue(c.isDisposed());
-
-		c = editor.getTestControl(2);
-		assertFalse(c.isDisposed());
-		editor.removeLastPage();
-		assertTrue(c.isDisposed());
-		editor.setPage(0);
-		editor.getSite().getPage().activate(editor);
-	}
-
-	/**
-	 * Now the MPEP site's selection provider should by default support post
-	 * selection listeners. Since the MVPE is based on Text editors, we should
-	 * be getting the post selection events when we change pages.
-	 * 
-	 * @throws Throwable
-	 *             on error cases
-	 */
-	public void testPostSelection() throws Throwable {
-		// Open a new test window.
-		IWorkbenchWindow window = openTestWindow();
-		// Create and open a blurb file.
-		IEditorPart part = openMultivarFile(window, MTEST01_FILE);
-
-		MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
-		ISelectionProvider sp = editor.getEditorSite().getSelectionProvider();
-		assertTrue(sp instanceof IPostSelectionProvider);
-
-		IPostSelectionProvider postProvider = (IPostSelectionProvider) sp;
-
-		fPostCalled = 0;
-		ISelectionChangedListener listener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				++fPostCalled;
-			}
-		};
-
-		try {
-			postProvider.addPostSelectionChangedListener(listener);
-			editor.setPage(1);
-			assertEquals(1, fPostCalled);
-			editor.setPage(0);
-			assertEquals(2, fPostCalled);
-		} finally {
-			postProvider.removePostSelectionChangedListener(listener);
-		}
-	}
-
-	private IEditorPart openMultivarFile(IWorkbenchWindow window,
-			String filename) throws CoreException, PartInitException {
-		IWorkbenchPage page = window.getActivePage();
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject testProject = workspace.getRoot().getProject(
-				MULTI_VARIABLE_PROJ);
-		if (!testProject.exists()) {
-			testProject.create(null);
-		}
-		testProject.open(null);
-		IFile multiFile = testProject.getFile(filename);
-		if (!multiFile.exists()) {
-			multiFile.create(
-					new ByteArrayInputStream(FILE_CONTENTS.getBytes()), true,
-					null);
-		}
-
-		// I can't be bothered to use the ID, but this editor has an
-		// extention registered against it.
-		IEditorPart part = IDE.openEditor(page, multiFile);
-		assertTrue("Should have opened our multi variable page editor",
-				part instanceof MultiVariablePageEditor);
-		return part;
-	}
-
-	/**
-	 * Make sure that contexts are activated-deactivated by pages changes and
-	 * other editors.
-	 * 
-	 * @throws Throwable
-	 *             on error
-	 */
-	public void testContextActivation() throws Throwable {
-		IContextService globalService = (IContextService) getWorkbench()
-				.getService(IContextService.class);
-
-		// Open a new test window.
-		// Create and open a blurb file.
-		IWorkbenchWindow window = openTestWindow();
-		IEditorPart part = openMultivarFile(window, MTEST01_FILE);
-
-		MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
-		checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
-		checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
-				true);
-
-		editor.setPage(1);
-		checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
-		checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
-				true);
-
-		editor.setPage(2);
-		checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, true);
-		checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
-				true);
-
-		editor.setPage(1);
-		checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
-		checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
-				true);
-
-		editor.setPage(2);
-		checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, true);
-		editor.removeLastPage();
-		checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
-		checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
-				true);
-	}
-
-	/**
-	 * Assert if the contextId is active in the contextService.
-	 * 
-	 * @param contextService
-	 * @param contextId
-	 * @param isActive
-	 */
-	private void checkActiveContext(IContextService contextService,
-			String contextId, boolean isActive) {
-		Collection activeContexts = contextService.getActiveContextIds();
-		assertEquals(contextId, isActive, activeContexts.contains(contextId));
-	}
-
-	private static class PageChange implements IPageChangedListener {
-		MultiPageEditorPart editor;
-		Object page;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see
-		 * org.eclipse.jface.dialogs.IPageChangedListener#pageChanged(org.eclipse
-		 * .jface.dialogs.PageChangedEvent)
-		 */
-		public void pageChanged(PageChangedEvent event) {
-			editor = (MultiPageEditorPart) event.getSource();
-			page = event.getSelectedPage();
-		}
-
-	}
-
-	public void testPageChangeListeners() throws Throwable {
-		// Open a new test window.
-		// Create and open a blurb file.
-		IWorkbenchWindow window = openTestWindow();
-		IEditorPart part = openMultivarFile(window, MTEST01_FILE);
-
-		MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
-		PageChange listener = new PageChange();
-		editor.addPageChangedListener(listener);
-
-		editor.setPage(1);
-		processEvents();
-		assertEquals(editor, listener.editor);
-		IEditorPart page = editor.getEditor(1);
-		assertEquals(page, listener.page);
-
-		editor.setPage(0);
-		processEvents();
-		assertEquals(editor, listener.editor);
-		page = editor.getEditor(0);
-		assertEquals(page, listener.page);
-		Control control = editor
-				.getTestControl(listener.editor.getActivePage());
-		assertNotNull(control);
-	}
-
-	private void testOneEditor(IWorkbenchWindow window, IPartService partService)
-			throws CoreException, PartInitException {
-		IEditorPart part = openMultivarFile(window, MTEST01_FILE);
-		assertNotNull(part);
-		MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
-		PartPageListener listener = new PartPageListener();
-		partService.addPartListener(listener);
-
-		editor.setPage(1);
-		processEvents();
-		assertEquals(1, listener.pageChangeCount);
-		assertEquals(editor, listener.currentChangeEvent.getSource());
-		IEditorPart pageEditor = editor.getEditor(1);
-		assertEquals(pageEditor, listener.currentChangeEvent.getSelectedPage());
-
-		editor.setPage(0);
-		processEvents();
-		assertEquals(2, listener.pageChangeCount);
-		assertEquals(editor, listener.currentChangeEvent.getSource());
-		pageEditor = editor.getEditor(0);
-		assertEquals(pageEditor, listener.currentChangeEvent.getSelectedPage());
-		partService.removePartListener(listener);
-
-		editor.setPage(1);
-		processEvents();
-		assertEquals(2, listener.pageChangeCount);
-	}
-
-	private void testTwoEditors(IWorkbenchWindow window,
-			IPartService partService) throws CoreException, PartInitException {
-		IEditorPart part = openMultivarFile(window, MTEST01_FILE);
-		assertNotNull(part);
-		MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
-		IEditorPart part2 = openMultivarFile(window, MTEST02_FILE);
-		assertNotNull(part2);
-		MultiVariablePageEditor editor2 = (MultiVariablePageEditor) part2;
-
-		PartPageListener listener = new PartPageListener();
-		partService.addPartListener(listener);
-
-		editor.setPage(1);
-		processEvents();
-		assertEquals(1, listener.pageChangeCount);
-		assertEquals(editor, listener.currentChangeEvent.getSource());
-		IEditorPart pageEditor = editor.getEditor(1);
-		assertEquals(pageEditor, listener.currentChangeEvent.getSelectedPage());
-
-		editor2.setPage(2);
-		assertEquals(2, listener.pageChangeCount);
-		assertEquals(editor2, listener.currentChangeEvent.getSource());
-
-		editor.setPage(0);
-		processEvents();
-		assertEquals(3, listener.pageChangeCount);
-		assertEquals(editor, listener.currentChangeEvent.getSource());
-		pageEditor = editor.getEditor(0);
-		assertEquals(pageEditor, listener.currentChangeEvent.getSelectedPage());
-
-		editor2.setPage(0);
-		assertEquals(4, listener.pageChangeCount);
-		assertEquals(editor2, listener.currentChangeEvent.getSource());
-
-		partService.removePartListener(listener);
-
-		editor.setPage(1);
-		processEvents();
-		assertEquals(4, listener.pageChangeCount);
-	}
-
-	public void testPagePartListener() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-		testOneEditor(window, page);
-	}
-
-	public void testPagePartListener2() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IWorkbenchPage page = window.getActivePage();
-		testTwoEditors(window, page);
-	}
-
-	public void testPageWindowListener() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		testOneEditor(window, window.getPartService());
-	}
-
-	public void testPageWindowListener2() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		testTwoEditors(window, window.getPartService());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/PartPageListener.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/PartPageListener.java
deleted file mode 100644
index 7b84a8e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/PartPageListener.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.multipageeditor;
-
-import org.eclipse.jface.dialogs.IPageChangedListener;
-import org.eclipse.jface.dialogs.PageChangedEvent;
-import org.eclipse.ui.IPartListener2;
-import org.eclipse.ui.IWorkbenchPartReference;
-
-/**
- * @since 3.5
- *
- */
-public class PartPageListener implements IPartListener2, IPageChangedListener {
-
-	public int pageChangeCount;
-	public PageChangedEvent currentChangeEvent;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partActivated(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partActivated(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partBroughtToTop(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partBroughtToTop(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partClosed(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partClosed(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partDeactivated(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partDeactivated(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partHidden(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partHidden(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partInputChanged(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partInputChanged(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partOpened(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partOpened(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPartListener2#partVisible(org.eclipse.ui.IWorkbenchPartReference)
-	 */
-	public void partVisible(IWorkbenchPartReference partRef) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IPageChangedListener#pageChanged(org.eclipse.jface.dialogs.PageChangedEvent)
-	 */
-	public void pageChanged(PageChangedEvent event) {
-		pageChangeCount++;
-		currentChangeEvent = event;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestKeyBindingMultiPageEditorPart.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestKeyBindingMultiPageEditorPart.java
deleted file mode 100644
index c84956e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestKeyBindingMultiPageEditorPart.java
+++ /dev/null
@@ -1,142 +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.ui.tests.multipageeditor;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.RowLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IKeyBindingService;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * A multi-page editor for testing key bindings while switching pages. This
- * is one of two pages -- each with a different context. The first context binds
- * "Ctrl+Shift+4" -- the second binds "Ctrl+Shift+5" -- to the command
- * "org.eclipse.ui.tests.TestCommand". Which context to use is determined by a
- * page number, which is passed as a parameter.
- * 
- * @since 3.0
- */
-public final class TestKeyBindingMultiPageEditorPart extends EditorPart {
-
-    /**
-     * The page number for this part.
-     *  
-     */
-    private final int number;
-
-    /**
-     * Constructs a new instance of <code>TestKeyBindingMultiPageEditorPart</code>
-     * with the page number of this page.
-     * 
-     * @param number
-     *            The page number for this part.
-     */
-    public TestKeyBindingMultiPageEditorPart(int number) {
-        super();
-        this.number = number;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-     */
-    public void createPartControl(Composite parent) {
-        Composite composite = new Composite(parent, SWT.NONE);
-        composite.setLayout(new RowLayout());
-        Text text1 = new Text(composite, SWT.NONE);
-        text1.setText("Blue"); //$NON-NLS-1$
-        Text text2 = new Text(composite, SWT.NONE);
-        text2.setText("Red"); //$NON-NLS-1$
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    public void doSave(IProgressMonitor monitor) {
-        // Do nothing.
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-     */
-    public void doSaveAs() {
-        throw new UnsupportedOperationException("Not implemented in this test."); //$NON-NLS-1$
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#gotoMarker(org.eclipse.core.resources.IMarker)
-     */
-    public void gotoMarker(IMarker marker) {
-        // Do nothing.
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
-     *      org.eclipse.ui.IEditorInput)
-     */
-    public void init(IEditorSite site, IEditorInput input)
-            throws PartInitException {
-        setInput(input);
-        setSite(site);
-        setPartName("Editor"); //$NON-NLS-1$
-        setTitleImage(input.getImageDescriptor().createImage());
-        setTitleToolTip("Moooooo"); //$NON-NLS-1$
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#isDirty()
-     */
-    public boolean isDirty() {
-        return false;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-     */
-    public void setFocus() {
-        final boolean odds = (number % 2) > 0;
-        final String scope1 = "org.eclipse.ui.tests.scope1"; //$NON-NLS-1$
-        final String scope2 = "org.eclipse.ui.tests.scope2"; //$NON-NLS-1$
-        IKeyBindingService keyBindingService = getEditorSite()
-                .getKeyBindingService();
-        keyBindingService.setScopes(new String[] { (odds) ? scope1 : scope2 });
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestMultiPageEditor.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestMultiPageEditor.java
deleted file mode 100644
index 5191bff..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/multipageeditor/TestMultiPageEditor.java
+++ /dev/null
@@ -1,94 +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.ui.tests.multipageeditor;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.MultiPageEditorPart;
-
-/**
- * A multi-page editor for testing key bindings while switching pages. This
- * creates two pages -- each with a different context. The first context binds
- * "Ctrl+Shift+4" -- the second binds "Ctrl+Shift+5" -- to the command
- * "org.eclipse.ui.tests.TestCommand".
- * 
- * @since 3.0
- */
-public final class TestMultiPageEditor extends MultiPageEditorPart {
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.MultiPageEditorPart#createPages()
-     */
-    protected void createPages() {
-        try {
-            IEditorPart part1 = new TestKeyBindingMultiPageEditorPart(0);
-            addPage(part1, getEditorInput());
-
-            IEditorPart part2 = new TestKeyBindingMultiPageEditorPart(1);
-            addPage(part2, getEditorInput());
-        } catch (PartInitException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-     */
-    public void doSave(IProgressMonitor monitor) {
-        // Do nothing.
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-     */
-    public void doSaveAs() {
-        throw new UnsupportedOperationException("Not implemented in this test."); //$NON-NLS-1$
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#gotoMarker(org.eclipse.core.resources.IMarker)
-     */
-    public void gotoMarker(IMarker marker) {
-        // Do nothing.
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-     */
-    public boolean isSaveAsAllowed() {
-        return false;
-    }
-
-    /**
-     * Sets the active page.
-     * 
-     * @param page
-     *            The page to activate; should be either <code>0</code> or
-     *            <code>1</code>.
-     */
-    public void setPage(int page) {
-        setActivePage(page);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/AbstractNavigatorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/AbstractNavigatorTest.java
deleted file mode 100644
index c386027..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/AbstractNavigatorTest.java
+++ /dev/null
@@ -1,95 +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.ui.tests.navigator;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.navigator.ResourceNavigator;
-
-/**
- * The AbstractNavigatorTest is the abstract superclass
- * of tests that use a populated Resource Navigator.
- */
-public abstract class AbstractNavigatorTest extends UITestCase {
-
-    private static final String NAVIGATOR_VIEW_ID = "org.eclipse.ui.views.ResourceNavigator";
-
-    protected IProject testProject;
-
-    protected IFolder testFolder;
-
-    protected IFile testFile;
-
-    protected ResourceNavigator navigator;
-
-    public AbstractNavigatorTest(String testName) {
-        super(testName);
-    }
-
-    protected void createTestProject() throws CoreException {
-        if (testProject == null) {
-            IWorkspace workspace = ResourcesPlugin.getWorkspace();
-            testProject = workspace.getRoot().getProject("TestProject");
-            testProject.create(null);
-            testProject.open(null);
-        }
-    }
-
-    protected void createTestFolder() throws CoreException {
-        if (testFolder == null) {
-            createTestProject();
-            testFolder = testProject.getFolder("TestFolder");
-            testFolder.create(false, false, null);
-        }
-    }
-
-    protected void createTestFile() throws CoreException {
-        if (testFile == null) {
-            createTestFolder();
-            testFile = testFolder.getFile("Foo.txt");
-            testFile.create(
-                    new ByteArrayInputStream("Some content.".getBytes()),
-                    false, null);
-        }
-    }
-
-    /** Shows the Navigator in a new test window. */
-    protected void showNav() throws PartInitException {
-        IWorkbenchWindow window = openTestWindow();
-        navigator = (ResourceNavigator) window.getActivePage().showView(
-                NAVIGATOR_VIEW_ID);
-    }
-
-    protected void doTearDown() throws Exception {
-        if (testProject != null) {
-            try {
-                testProject.delete(true, null);
-            } catch (CoreException e) {
-                fail(e.toString());
-            }
-            testProject = null;
-            testFolder = null;
-            testFile = null;
-        }
-        super.doTearDown();
-        navigator = null;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/DuplicateMenuItemTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/DuplicateMenuItemTest.java
deleted file mode 100644
index b32803c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/DuplicateMenuItemTest.java
+++ /dev/null
@@ -1,86 +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.ui.tests.navigator;
-
-import java.util.HashSet;
-
-import junit.framework.Assert;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.internal.WorkbenchWindow;
-
-/**
- * The DuplicateMenuItemTest is a class for testing the popups
- * and window menus for the navigator to check for duplicate menu
- * entries.
- */
-public class DuplicateMenuItemTest extends AbstractNavigatorTest {
-
-    /**
-     * Constructor for DuplicateMenuItemTest.
-     * @param testName
-     */
-    public DuplicateMenuItemTest(String testName) {
-        super(testName);
-    }
-
-    public void testSelection() {
-
-        IStructuredSelection selection = new StructuredSelection(testProject);
-        checkSelection(selection);
-        selection = new StructuredSelection(testFolder);
-        checkSelection(selection);
-        selection = new StructuredSelection(testFile);
-        checkSelection(selection);
-    }
-
-    private void checkMenu(Menu menu, String menuName) {
-
-        MenuItem[] items = menu.getItems();
-        HashSet labels = new HashSet();
-        for (int i = 0; i < items.length; i++) {
-            String label = items[i].getText();
-            System.out.println(label);
-            Assert.assertTrue("Duplicate menu entry in: " + menuName + " "
-                    + label, !labels.contains(label));
-            if (items[i].getMenu() != null)
-                checkMenu(items[i].getMenu(), label);
-        }
-
-    }
-
-    private void checkWorkbenchMenu() {
-
-        MenuManager workbenchManager = ((WorkbenchWindow) navigator
-                .getViewSite().getWorkbenchWindow()).getMenuManager();
-
-        checkMenu(workbenchManager.getMenu(), "Workbench");
-    }
-
-    private void checkSelection(IStructuredSelection selection) {
-        navigator.selectReveal(selection);
-        checkWorkbenchMenu();
-    }
-
-    /**
-     * Sets up the hierarchy.
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        createTestFile();
-        showNav();
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTest.java
deleted file mode 100644
index 7ce7da1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTest.java
+++ /dev/null
@@ -1,60 +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.ui.tests.navigator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Tests the Resource Navigator view.
- */
-public class NavigatorTest extends AbstractNavigatorTest {
-
-    public NavigatorTest(String testName) {
-        super(testName);
-    }
-
-    /**
-     * Tests that the Navigator is initially populated with
-     * the correct elements from the workspace.
-     */
-    public void testInitialPopulation() throws CoreException, PartInitException {
-        createTestFile();
-        showNav();
-
-        // test its initial content by setting and getting selection on the file
-        ISelectionProvider selProv = navigator.getSite().getSelectionProvider();
-        StructuredSelection sel = new StructuredSelection(testFile);
-        selProv.setSelection(sel);
-        assertEquals(sel.size(), ((IStructuredSelection)selProv.getSelection()).size());
-        assertEquals(sel.getFirstElement(), ((IStructuredSelection)selProv.getSelection()).getFirstElement());
-    }
-
-    /**
-     * Tests that the Navigator updates properly when a file is added to the workbench.
-     */
-    public void testFileAddition() throws CoreException, PartInitException {
-        createTestFolder(); // create the project and folder before the Navigator is shown
-        showNav();
-        createTestFile(); // create the file after the Navigator is shown
-
-        // test its initial content by setting and getting selection on the file
-        ISelectionProvider selProv = navigator.getSite().getSelectionProvider();
-        StructuredSelection sel = new StructuredSelection(testFile);
-        selProv.setSelection(sel);
-        assertEquals(sel.size(), ((IStructuredSelection)selProv.getSelection()).size());
-        assertEquals(sel.getFirstElement(), ((IStructuredSelection)selProv.getSelection()).getFirstElement());
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java
deleted file mode 100644
index 37c3065..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/NavigatorTestSuite.java
+++ /dev/null
@@ -1,35 +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.ui.tests.navigator;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-public class NavigatorTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new NavigatorTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public NavigatorTestSuite() {
-        addTest(new TestSuite(ResourceNavigatorTest.class));
-        addTest(new TestSuite(NavigatorTest.class));
-    }
-
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/ResourceNavigatorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/ResourceNavigatorTest.java
deleted file mode 100644
index 39f7881..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/navigator/ResourceNavigatorTest.java
+++ /dev/null
@@ -1,189 +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.ui.tests.navigator;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetManager;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.ui.tests.harness.util.ActionUtil;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.navigator.ResourceNavigator;
-
-public class ResourceNavigatorTest extends UITestCase {
-    private IWorkbenchPage activePage;
-
-    private IWorkbenchWindow workbenchWindow;
-
-    private IViewPart view;
-
-    private IProject p1;
-
-    private IProject p2;
-
-    private IFile f1;
-
-    private IFile f2;
-
-    /**
-     * Constructor for ResourceNavigatorTest.
-     * @param testName
-     */
-    public ResourceNavigatorTest(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        workbenchWindow = openTestWindow();
-        activePage = workbenchWindow.getActivePage();
-    }
-
-    private void setupView() throws Throwable {
-        view = activePage.showView("org.eclipse.ui.views.ResourceNavigator");
-    }
-
-    private void setupResources() throws Throwable {
-        if (p1 == null) {
-            p1 = FileUtil.createProject("TP1");
-            f1 = null;
-        }
-        if (p2 == null) {
-            p2 = FileUtil.createProject("TP2");
-            f2 = null;
-        }
-        if (f1 == null)
-            f1 = FileUtil.createFile("f1.txt", p1);
-        if (f2 == null)
-            f2 = FileUtil.createFile("f2.txt", p2);
-    }
-
-    public void fixTestGlobalBookmarkAction() throws Throwable {
-        setupView();
-        setupResources();
-
-        // Select a file
-        IStructuredSelection sel = new StructuredSelection(f1);
-        ((ResourceNavigator) view).selectReveal(sel);
-
-        // Remember the previous marker count on the file
-        int oldCount = (f1.findMarkers(IMarker.BOOKMARK, true,
-                IResource.DEPTH_INFINITE)).length;
-
-        // Now try the bookmark action
-        ActionUtil.runActionUsingPath(this, workbenchWindow,
-                IWorkbenchActionConstants.M_EDIT + '/'
-                        + IWorkbenchActionConstants.BOOKMARK);
-
-        // Make sure the resource was bookmarked
-        int newCount = (f1.findMarkers(IMarker.BOOKMARK, true,
-                IResource.DEPTH_INFINITE)).length;
-        assertTrue(
-                "Selected file was not bookmarked via Edit->Bookmark action.",
-                oldCount + 1 == newCount);
-    }
-
-    /*	
-     * This test should be moved to an interactive test suite as this
-     * test causes a dialog to popup when the resource is deleted by
-     * the delete action
-     * 
-     public void testGlobalDeleteAction() throws Throwable {
-     setupView();
-     setupResources();
-
-     // Select a file
-     IStructuredSelection sel = new StructuredSelection(f1);
-     ((ResourceNavigator) view).selectReveal(sel);
-     
-     // Now try the delete action
-     ActionUtil.runActionUsingPath(this, workbenchWindow, IWorkbenchActionConstants.M_EDIT + '/' + IWorkbenchActionConstants.DELETE);
-     
-     // Make sure the resource was deleted
-     assertTrue("Selected file was not deleted via Edit->Delete action.", p1.findMember(f1.getName()) == null);
-     f1 = null;
-     }
-     */
-
-    public void testSelectReveal() throws Throwable {
-        setupView();
-        setupResources();
-
-        ISetSelectionTarget part = (ISetSelectionTarget) view;
-        TreeViewer tree = ((ResourceNavigator) view).getViewer();
-
-        // Set the selection in the navigator
-        IStructuredSelection sel1 = new StructuredSelection(f1);
-        part.selectReveal(sel1);
-        // Get the selection the tree has
-        IStructuredSelection treeSel1 = (IStructuredSelection) tree
-                .getSelection();
-        assertTrue("First selection wrong size, should be only one.", treeSel1
-                .size() == 1);
-        IResource resource1 = (IResource) treeSel1.getFirstElement();
-        assertTrue("First selection contains wrong file resource.", resource1
-                .equals(f1));
-
-        // Set the selection in the navigator
-        IStructuredSelection sel2 = new StructuredSelection(p2);
-        part.selectReveal(sel2);
-        // Get the selection the tree has
-        IStructuredSelection treeSel2 = (IStructuredSelection) tree
-                .getSelection();
-        assertTrue("Second selection wrong size, should be only one.", treeSel2
-                .size() == 1);
-        IResource resource2 = (IResource) treeSel2.getFirstElement();
-        assertTrue("Second selection contains wrong project resource.",
-                resource2.equals(p2));
-    }
-
-    public void testWorkingSet() throws Throwable {
-        setupView();
-        setupResources();
-
-        ResourceNavigator navigator = ((ResourceNavigator) view);
-        IWorkingSetManager workingSetManager = fWorkbench
-                .getWorkingSetManager();
-        IWorkingSet workingSet = workingSetManager.createWorkingSet("ws1",
-                new IAdaptable[] { f1 });
-
-        assertNull(navigator.getWorkingSet());
-
-        navigator.setWorkingSet(workingSet);
-        assertEquals(workingSet, navigator.getWorkingSet());
-
-        navigator.setWorkingSet(null);
-        assertNull(navigator.getWorkingSet());
-
-        FileUtil.createFile("f11.txt", p1);
-        navigator.setWorkingSet(workingSet);
-        TreeViewer viewer = navigator.getTreeViewer();
-        viewer.expandAll();
-        TreeItem[] items = viewer.getTree().getItems();
-        assertEquals(p1, items[0].getData());
-        items = items[0].getItems();
-        assertEquals(f1, items[0].getData());
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/AdvancedTestOperation.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/AdvancedTestOperation.java
deleted file mode 100644
index baa9825..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/AdvancedTestOperation.java
+++ /dev/null
@@ -1,71 +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.tests.operations;
-
-import org.eclipse.core.commands.operations.IAdvancedUndoableOperation;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.OperationHistoryEvent;
-import org.eclipse.core.commands.operations.OperationStatus;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 3.1
- */
-public class AdvancedTestOperation extends TestOperation implements
-		IAdvancedUndoableOperation {
-
-	static final int INFO = 0;
-
-	static final int ERROR = 1;
-
-	static final int WARNING = 2;
-
-	public int status = 0;
-
-	public AdvancedTestOperation() {
-		super("A very long string that exceeds the menu label limit");
-	}
-
-	public void aboutToNotify(OperationHistoryEvent event) {
-		// do nothing
-	}
-
-	public Object[] getAffectedObjects() {
-		return null;
-	}
-
-	public IStatus computeUndoableStatus(IProgressMonitor monitor) {
-		switch (status) {
-		case INFO:
-			return IOperationHistory.NOTHING_TO_UNDO_STATUS;
-		case ERROR:
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		case WARNING:
-			return new OperationStatus(IStatus.WARNING, "org.eclipse.ui.tests", 0, "Undo warning message", null); //$NON-NLS-1$
-		}
-		return Status.OK_STATUS;
-	}
-
-	public IStatus computeRedoableStatus(IProgressMonitor monitor) {
-		switch (status) {
-		case INFO:
-			return IOperationHistory.NOTHING_TO_REDO_STATUS;
-		case ERROR:
-			return IOperationHistory.OPERATION_INVALID_STATUS;
-		case WARNING:
-			return new OperationStatus(IStatus.WARNING, "org.eclipse.ui.tests", 0, "Redo warning message", null); //$NON-NLS-1$
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/MultiThreadedOperationsTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/MultiThreadedOperationsTests.java
deleted file mode 100644
index 691d7b5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/MultiThreadedOperationsTests.java
+++ /dev/null
@@ -1,76 +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.tests.operations;
-
-import junit.framework.TestResult;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Runs the operations API tests and workbench operation history tests from
- * background threads
- * 
- * @since 3.1
- */
-public class MultiThreadedOperationsTests extends UITestCase {
-
-	public MultiThreadedOperationsTests(String name) {
-		super(name);
-	}
-
-	public void testOperationsAPIinThreads() {
-		// run the operations API test suite from three different jobs.
-		class OperationsTestJob extends Job {
-			public OperationsTestJob() {
-				super("Operations Test Job");
-			}
-
-			public IStatus run(IProgressMonitor monitor) {
-				// System.out.println("Running OperationsAPITest from background job");
-				new TestSuite(OperationsAPITest.class).run(new TestResult());
-				// System.out.println("Running WorkbenchOperationHistoryTests from background job");
-				new TestSuite(WorkbenchOperationHistoryTests.class).run(new TestResult());
-				return Status.OK_STATUS;
-			}
-		}
-
-		OperationsTestJob job1 = new OperationsTestJob();
-		OperationsTestJob job2 = new OperationsTestJob();
-		OperationsTestJob job3 = new OperationsTestJob();
-
-		job1.schedule();
-		job2.schedule();
-		job3.schedule();
-
-		// don't return from the test method until the jobs are complete.
-		try {
-			job1.join();
-		} catch (InterruptedException e) {
-			System.out.println("Job interrupted in test case");
-		}
-		try {
-			job2.join();
-		} catch (InterruptedException e) {
-			System.out.println("Job interrupted in test case");
-		}
-		try {
-			job3.join();
-		} catch (InterruptedException e) {
-			System.out.println("Job interrupted in test case");
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsAPITest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsAPITest.java
deleted file mode 100644
index c5079b0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsAPITest.java
+++ /dev/null
@@ -1,799 +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.tests.operations;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.commands.operations.DefaultOperationHistory;
-import org.eclipse.core.commands.operations.ICompositeOperation;
-import org.eclipse.core.commands.operations.IOperationApprover2;
-import org.eclipse.core.commands.operations.IOperationHistoryListener;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.commands.operations.IOperationApprover;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.LinearUndoEnforcer;
-import org.eclipse.core.commands.operations.ObjectUndoContext;
-import org.eclipse.core.commands.operations.OperationHistoryEvent;
-import org.eclipse.core.commands.operations.OperationHistoryFactory;
-import org.eclipse.core.commands.operations.OperationStatus;
-import org.eclipse.core.commands.operations.TriggeredOperations;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.tests.internal.ForcedException;
-
-/**
- * Tests the Operations Framework API.
- * 
- * @since 3.1
- */
-public class OperationsAPITest extends TestCase {
-	
-	// number of operations to perform a stress test
-	static int STRESS_NUM = 5000;
-
-	ObjectUndoContext contextA, contextB, contextC, contextW;
-	IOperationHistory history;
-
-	IUndoableOperation op1, op2, op3, op4, op5, op6, localA, localB, localC;
-	ICompositeOperation refactor;
-	
-	int preExec, postExec, preUndo, postUndo, preRedo, postRedo, add, remove, notOK, changed = 0;
-	IOperationHistoryListener listener;
-
-	public OperationsAPITest() {
-		super();
-	}
-
-	/**
-	 * @param testName
-	 */
-	public OperationsAPITest(String name) {
-		super(name);
-	}
-
-	protected void setUp() throws Exception {
-		history = new DefaultOperationHistory();
-		contextA = new ObjectUndoContext("A");
-		contextB = new ObjectUndoContext("B");
-		contextC = new ObjectUndoContext("C");
-		op1 = new TestOperation("op1");
-		op1.addContext(contextA);
-		op2 = new TestOperation("op2");
-		op2.addContext(contextB);
-		op2.addContext(contextC);
-		op3 = new TestOperation("op3");
-		op3.addContext(contextC);
-		op4 = new TestOperation("op4");
-		op4.addContext(contextA);
-		op5 = new TestOperation("op5");
-		op5.addContext(contextB);
-		op6 = new TestOperation("op6");
-		op6.addContext(contextC);
-		op6.addContext(contextA);
-		history.execute(op1, null, null);
-		history.execute(op2, null, null);
-		history.execute(op3, null, null);
-		history.execute(op4, null, null);
-		history.execute(op5, null, null);
-		history.execute(op6, null, null);
-		preExec = 0; postExec = 0;
-		preUndo = 0; postUndo = 0; 
-		preRedo = 0; postRedo = 0;
-		add = 0; remove = 0; notOK = 0;
-		listener = new IOperationHistoryListener() {
-			public void historyNotification(OperationHistoryEvent event) {
-				switch (event.getEventType()) {
-				case OperationHistoryEvent.ABOUT_TO_EXECUTE:
-					preExec++;
-					break;
-				case OperationHistoryEvent.ABOUT_TO_UNDO:
-					preUndo++;
-					break;
-				case OperationHistoryEvent.ABOUT_TO_REDO:
-					preRedo++;
-					break;
-				case OperationHistoryEvent.DONE:
-					postExec++;
-					break;
-				case OperationHistoryEvent.UNDONE:
-					postUndo++;
-					break;
-				case OperationHistoryEvent.REDONE:
-					postRedo++;
-					break;
-				case OperationHistoryEvent.OPERATION_ADDED:
-					add++;
-					break;
-				case OperationHistoryEvent.OPERATION_REMOVED:
-					remove++;
-					break;
-				case OperationHistoryEvent.OPERATION_NOT_OK:
-					notOK++;
-					break;
-				case OperationHistoryEvent.OPERATION_CHANGED:
-					changed++;
-					break;
-				}
-			}
-		};
-		history.addOperationHistoryListener(listener);
-
-	}
-
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		history.removeOperationHistoryListener(listener);
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-	}
-
-	public void testContextDispose() throws ExecutionException {
-		assertSame(history.getUndoOperation(contextA), op6);
-		assertSame(history.getUndoOperation(contextC), op6);
-		history.dispose(contextA, true, true, false);
-		assertSame(history.getUndoOperation(contextC), op6);
-		assertFalse(op6.hasContext(contextA));
-		history.undo(contextC, null, null);
-		history.dispose(contextC, true, false, false);
-		assertFalse(history.canUndo(contextC));
-		assertTrue(history.canRedo(contextC));
-		history.redo(contextC, null, null);
-		IUndoableOperation[] ops = history.getUndoHistory(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertEquals(ops.length, 3);
-		ops = history.getUndoHistory(contextC);
-		assertEquals(ops.length, 1);
-		ops = history.getUndoHistory(contextB);
-		assertEquals(ops.length, 2);
-	}
-
-	public void testContextHistories() throws ExecutionException {
-		assertSame(history.getUndoOperation(contextA), op6);
-		assertSame(history.getUndoOperation(contextB), op5);
-		assertSame(history.getUndoOperation(contextC), op6);
-		IStatus status = history.undo(contextC, null, null);
-		assertTrue("Status should be ok", status.isOK());
-		assertSame(history.getRedoOperation(contextC), op6);
-		assertSame(history.getUndoOperation(contextC), op3);
-		assertTrue("Should be able to redo in c3", history.canRedo(contextC));
-		assertTrue("Should be able to redo in c1", history.canRedo(contextA));
-		history.redo(contextA, null, null);
-		assertSame(history.getUndoOperation(contextC), op6);
-		assertSame(history.getUndoOperation(contextA), op6);
-	}
-
-	public void testHistoryLimit() throws ExecutionException {
-		history.setLimit(contextA, 2);
-		assertTrue(history.getUndoHistory(contextA).length == 2);
-		history.add(op1);
-		assertTrue(history.getUndoHistory(contextA).length == 2);
-		history.setLimit(contextB, 1);
-		assertTrue(history.getUndoHistory(contextB).length == 1);
-		assertFalse(op2.hasContext(contextB));
-		history.undo(contextB, null, null);
-		assertTrue(history.getRedoHistory(contextB).length == 1);
-		assertTrue(history.getUndoHistory(contextB).length == 0);
-		history.redo(contextB, null, null);
-		assertTrue(history.getRedoHistory(contextB).length == 0);
-		assertTrue(history.getUndoHistory(contextB).length == 1);
-	}
-	
-	public void testLocalHistoryLimits() throws ExecutionException {
-		history.setLimit(contextC, 2);
-		assertTrue(history.getUndoHistory(contextC).length == 2);
-		// op2 should have context c3 removed as part of forcing the limit
-		assertFalse(op2.hasContext(contextC));
-		assertTrue(history.getUndoHistory(contextB).length == 2);
-		
-		history.setLimit(contextB, 1);
-		assertTrue(history.getUndoHistory(contextB).length == 1);
-		history.undo(contextB, null, null);
-		op2.addContext(contextC);
-		history.add(op2);
-		assertSame(history.getUndoOperation(contextB), op2);
-		assertTrue(history.getUndoHistory(contextB).length == 1);
-		
-		history.setLimit(contextA, 0);
-		assertTrue(history.getUndoHistory(contextA).length == 0);
-		history.add(op1);
-		assertTrue(history.getUndoHistory(contextA).length == 0);		
-	}
-	
-	public void testOpenOperation() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		ICompositeOperation batch = new TriggeredOperations(op1, history);
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		op2.execute(null, null);
-		history.add(op2);
-		history.execute(op3, null, null);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("no operations should be in history yet", op == null);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("Operation should be batching", op == batch);
-		op.removeContext(contextB);
-		assertFalse("Operation should not have context", op.hasContext(contextB));
-	}
-	
-	public void testExceptionDuringOpenOperation() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		IUndoableOperation op = new AbstractOperation("Operation with Exception") {
-			public IStatus execute(IProgressMonitor monitor, IAdaptable uiInfo) {
-				return Status.OK_STATUS;
-			}
-			public IStatus undo(IProgressMonitor monitor, IAdaptable uiInfo) {
-				throw new ForcedException("Forced during undo");
-			}
-			public IStatus redo(IProgressMonitor monitor, IAdaptable uiInfo) {
-				throw new ForcedException("Forced during redo");
-			}
-		};
-
-		ICompositeOperation batch = new TriggeredOperations(op, history);
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		op.execute(null, null);
-		op1.execute(null, null);
-		history.add(op1);
-		history.execute(op2, null, null);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		// when we undo the batch operation, the triggering op will throw the 
-		// ForcedException.  This is expected. 
-		try {
-			batch.undo(null, null);
-		} catch (ForcedException e) {
-			// expected, no cause for panic.
-		}
-		
-		// See bug #134238.  Before this bug was fixed, we would get an 
-		// IllegalStateException upon trying to open a composite.  If cleanup
-		// after the above exception is done, then we shouldn't get an
-		// IllegalStateException.
-		try {
-			history.openOperation(new TriggeredOperations(op3, history), IOperationHistory.EXECUTE);
-			history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		} catch (IllegalStateException e) {
-			assertTrue("IllegalStateException - trying to open an operation before a close", false);
-		}
-	}
-	
-	public void test94459() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		op2.execute(null, null);
-		ICompositeOperation batch = new TriggeredOperations(op2, history);
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		history.setLimit(contextA, 0);
-		op1.execute(null, null);
-		history.add(op1);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("Operation should be batching", op == batch);
-		assertFalse("Operation should not have context", op.hasContext(contextA));
-	}
-	
-	public void test94459AllContextsEmpty() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		op2.execute(null, null);
-		ICompositeOperation batch = new TriggeredOperations(op2, history);
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		history.setLimit(contextA, 0);
-		history.setLimit(contextB, 0);
-		history.setLimit(contextC, 0);
-		op1.execute(null, null);
-		history.add(op1);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("Operation should not have been added", op == null);
-	}
-
-	/*
-	 * Test updated for 3.2 in light of 
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=123316
-	 * The expected behavior has changed.
-	 */
-	public void test94400() throws ExecutionException {
-		UnredoableTestOperation op = new UnredoableTestOperation("troubled op");
-		op.addContext(contextA);
-		history.execute(op, null, null);
-		assertTrue("Operation should be undoable", history.canUndo(contextA));
-		history.undo(contextA, null, null);
-		assertTrue("Operation should still be in redo history", history.getRedoOperation(contextA) == op);
-		assertFalse("Operation should not be disposed", op.disposed);
-	}
-	
-	/*
-	 * Similar to the test above, except that we are going to change the
-	 * operation history limit and check that we disposed the operation properly.
-	 */
-	public void test123316() throws ExecutionException {
-		UnredoableTestOperation op = new UnredoableTestOperation("troubled op");
-		op.addContext(contextA);
-		history.setLimit(contextA, 0);
-		history.execute(op, null, null);
-		assertFalse("Should be nothing to undo", history.canUndo(contextA));
-		assertTrue("Operation should be disposed", op.disposed);
-	}
-	
-	
-	public void testUnsuccessfulOpenOperation() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		ICompositeOperation batch = new TriggeredOperations(op1, history);
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		op2.execute(null, null);
-		history.add(op2);
-		history.execute(op3, null, null);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("no operations should be in history yet", op == null);
-		history.closeOperation(false, true, IOperationHistory.EXECUTE);
-		op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertNull("Unsuccessful operation should not be added to history", op);
-		assertTrue("NOT_OK notification should have been received", notOK == 1);
-		assertTrue("DONE should not be sent while batching", postExec == 0);
-		assertTrue("ADDED should not have been sent while batching", add == 0);
-	}
-	
-	public void testNotAddedOpenOperation() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		ICompositeOperation batch = new TriggeredOperations(op1, history);
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		op2.execute(null, null);
-		history.add(op2);
-		history.execute(op3, null, null);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("no operations should be in history yet", op == null);
-		history.closeOperation(true, false, IOperationHistory.EXECUTE);
-		op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertNull("Operation should not be added to history", op);
-		assertTrue("DONE notification should have been received", postExec == 1);
-		assertTrue("ADDED should not have occurred or be sent while batching", add == 0);
-	}
-	
-	public void testMultipleOpenOperation() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		boolean failure = false;
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		ICompositeOperation comp1 = new TriggeredOperations(op1, history);
-		history.openOperation(comp1, IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		op2.execute(null, null);
-		history.add(op2);
-		history.execute(op3, null, null);
-		ICompositeOperation comp2 = new TriggeredOperations(op4, history);
-		try {
-			history.openOperation(comp2, IOperationHistory.EXECUTE);
-		} catch (IllegalStateException e) {
-			failure = true;
-		}
-		assertTrue("Exception should have been thrown for second open operation", failure);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertNull("Unexpected nested open should not add original", op);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertSame("First operation should be closed", op, comp1);
-	}
-	
-	public void testAbortedOpenOperation() throws ExecutionException {
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		history.openOperation(new TriggeredOperations(op1, history), IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		history.execute(op2, null, null);
-		// flush history while operation is open
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		// op3 should be added as its own op since we flushed while open
-		history.add(op3);
-		// should really have no effect
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("Open operation should be flushed", op == op3);
-	}
-
-	public void testOperationApproval() throws ExecutionException {
-		history.addOperationApprover(new LinearUndoEnforcer());
-		// the first undo should be fine
-		IStatus status = history.undo(contextB, null, null);
-		assertTrue(status.isOK());
-
-		// the second causes a linear violation on C
-		assertTrue(history.canUndo(contextB));
-		status = history.undo(contextB, null, null);
-		assertFalse(status.isOK());
-
-		// undo the newer C items
-		status = history.undo(contextC, null, null);
-		assertTrue(status.isOK());
-		status = history.undo(contextC, null, null);
-		assertTrue(status.isOK());
-
-		// now we should be okay in B
-		status = history.undo(contextB, null, null);
-		assertTrue(status.isOK());
-
-		history.addOperationApprover(new IOperationApprover() {
-
-			public IStatus proceedRedoing(IUndoableOperation o, IOperationHistory h, IAdaptable a) {
-				return Status.CANCEL_STATUS;
-			}
-			public IStatus proceedUndoing(IUndoableOperation o, IOperationHistory h, IAdaptable a) {
-				return Status.CANCEL_STATUS;
-			}
-		});
-		// everything should fail now
-		assertFalse(history.redo(contextB, null, null).isOK());
-		assertFalse(history.redo(contextC, null, null).isOK());
-		assertFalse(history.undo(contextA, null, null).isOK());
-		assertFalse(history.undo(contextB, null, null).isOK());
-		assertFalse(history.undo(contextC, null, null).isOK());
-	}
-
-	public void testOperationFailure() throws ExecutionException {
-		history.addOperationApprover(new IOperationApprover() {
-
-			public IStatus proceedRedoing(IUndoableOperation o, IOperationHistory h, IAdaptable a) {
-				return Status.OK_STATUS;
-			}
-			public IStatus proceedUndoing(IUndoableOperation o, IOperationHistory h, IAdaptable a) {
-				if (o == op6)
-					return Status.CANCEL_STATUS;
-				if (o == op5)
-					return new OperationStatus(IStatus.ERROR, "org.eclipse.ui.tests", 0, "Error", null);
-				return Status.OK_STATUS;
-			}
-		});
-
-		// should fail but still keep op6 on the stack since it's cancelled
-		IStatus status = history.undo(contextC, null, null);
-		assertFalse(status.isOK());
-		assertSame(history.getUndoOperation(contextC), op6);
-
-		// should fail since it's an error
-		status = history.undo(contextB, null, null);
-		assertFalse(status.isOK());
-
-		// operation remains on stack (see bug#92506)
-		assertSame(history.getUndoOperation(contextB), op5);
-	}
-
-	public void testOperationRedo() throws ExecutionException {
-		history.undo(contextB, null, null);
-		history.undo(contextB, null, null);
-		history.undo(contextC, null, null);
-		history.undo(contextC, null, null);
-		assertSame(history.getRedoOperation(contextB), op2);
-		assertSame(history.getUndoOperation(contextA), op4);
-		assertTrue(history.canUndo(contextA));
-		assertFalse(history.canUndo(contextB));
-		assertFalse(history.canUndo(contextC));
-		assertTrue(preUndo == 4);
-		assertTrue(postUndo == 4);
-		history.redo(contextB, null, null);
-		assertTrue(postRedo == 1);
-		assertTrue(history.canUndo(contextB));
-		assertTrue(history.canUndo(contextC));
-	}
-
-	public void testOperationUndo() throws ExecutionException {
-		history.undo(contextA, null, null);
-		history.undo(contextA, null, null);
-		assertSame(history.getRedoOperation(contextA), op4);
-		assertSame(history.getUndoOperation(contextA), op1);
-		history.undo(contextA, null, null);
-		assertTrue(preUndo == 3);
-		assertTrue(postUndo == 3);
-		assertFalse("Shouldn't be able to undo in c1", history.canUndo(contextA));
-		assertTrue("Should be able to undo in c2", history.canUndo(contextB));
-		assertTrue("Should be able to undo in c3", history.canUndo(contextC));
-	}
-	
-	public void testHistoryFactory() {
-		IOperationHistory anotherHistory = OperationHistoryFactory.getOperationHistory();
-		assertNotNull(anotherHistory);
-	}
-	
-	public void testOperationChanged() {
-		history.operationChanged(op1);
-		history.operationChanged(op2);
-		history.operationChanged(new TestOperation("New op"));
-		assertTrue("should not notify about changes if not in the history", changed == 2);
-	}
-	
-	// the setup for the infamous (local conflict on top of composite and composite gets pruned) case
-	private void setup87675() throws ExecutionException {
-		// clear everything out.  special setup for this test case
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		contextA = new ObjectUndoContext("A");
-		contextB = new ObjectUndoContext("B");
-		contextC = new ObjectUndoContext("C");
-		contextW = new ObjectUndoContext("W");
-		history.addOperationApprover(new LinearUndoEnforcer());
-		
-		// local edits on A, B, C are added first
-		IUndoableOperation op = new TestOperation("op1a");
-		op.addContext(contextA);
-		history.execute(op, null, null);
-		op = new TestOperation("op1b");
-		op.addContext(contextB);
-		history.execute(op, null, null);
-		op = new TestOperation("op1c");
-		op.addContext(contextC);
-		history.execute(op, null, null);
-		
-		// now we create the "refactoring op" which touches them all
-		op = new TestOperation("Refactoring");
-		op.addContext(contextW);
-		op.execute(null, null);
-		refactor = new TriggeredOperations(op, history);
-		history.openOperation(refactor, IOperationHistory.EXECUTE);
-		localA = new TestOperation("op2a");
-		localA.addContext(contextA);
-		history.execute(localA, null, null);
-		localB = new TestOperation("op2b");
-		localB.addContext(contextB);
-		history.execute(localB, null, null);
-		localC = new TestOperation("op2c");
-		localC.addContext(contextC);
-		history.execute(localC, null, null);
-		
-		// close off the composite
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		
-		// subsequent local edit to C
-		op = new TestOperation("op3c");
-		op.addContext(contextC);
-		history.execute(op, null, null);
-	}
-	
-	public void test87675_split() throws ExecutionException {
-		setup87675();
-		IUndoableOperation op;
-		
-		// check setup
-		op = history.getUndoOperation(contextA);
-		assertTrue("Refactoring should be next op for context A", op == refactor);
-		op = history.getUndoOperation(contextB);
-		assertTrue("Refactoring should be next op for context B", op == refactor);
-		op = history.getUndoOperation(contextW);
-		assertTrue("Refactoring should be next op for context W", op == refactor);
-		op = history.getUndoOperation(contextC);
-		assertFalse("Refactoring should not be next op for context C", op == refactor);
-
-		// try a bogus undo
-		IStatus status = history.undo(contextW, null, null);
-		assertFalse("Undo should not be permitted due to linear conflict", status.isOK());
-		
-		// prune the history for contextW
-		history.dispose(contextW, true, true, false);
-		
-		// refactoring op should have been broken up into pieces
-		op = history.getUndoOperation(contextA);
-		assertTrue("Local edit A should be atomic", op == localA);
-		op = history.getUndoOperation(contextB);
-		assertTrue("Local edit B should be atomic", op == localB);
-		op = history.getUndoOperation(contextC);
-		assertFalse("Local edit C should not be refactoring edit", op == localC);
-		
-		// now the refactoring C edit should be the next one
-		history.undo(contextC, null, null);
-		op = history.getUndoOperation(contextC);
-		assertTrue("Local edit C should be refactoring edit", op == localC);
-	}
-	
-	public void test87675_undoredo() throws ExecutionException {
-		setup87675();
-		IUndoableOperation op;
-		
-		// undo the local edit to C
-		history.undo(contextC, null, null);
-		
-		// undo the refactoring operation via context C
-		history.undo(contextC, null, null);
-		
-		// check that there are no new operations in the undo list for A, B, C
-		op = history.getUndoOperation(contextC);
-		assertTrue("Local edit C should be original edit", op.getLabel().equals("op1c"));
-
-		op = history.getUndoOperation(contextB);
-		assertTrue("Local edit B should be original edit", op.getLabel().equals("op1b"));
-
-		op = history.getUndoOperation(contextA);
-		assertTrue("Local edit A should be original edit", op.getLabel().equals("op1a"));
-		
-		// test that the redo operation has all contexts
-		op = history.getRedoOperation(contextW);
-		assertTrue("operation should have context A", op.hasContext(contextA));
-		assertTrue("operation should have context B", op.hasContext(contextB));
-		assertTrue("operation should have context C", op.hasContext(contextC));
-		
-		// now redo the operation
-		history.redo(contextA, null, null);
-		
-		// test that the next undo is our refactoring operation
-		op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("operation should have context W", op.hasContext(contextW));
-		
-		// undo again and check that no side effect ops were left on the undo stack
-		history.undo(contextW, null, null);
-
-		op = history.getUndoOperation(contextC);
-		assertTrue("Local edit C should be original edit", op.getLabel().equals("op1c"));
-
-		op = history.getUndoOperation(contextB);
-		assertTrue("Local edit B should be original edit", op.getLabel().equals("op1b"));
-
-		op = history.getUndoOperation(contextA);
-		assertTrue("Local edit A should be original edit", op.getLabel().equals("op1a"));
-		
-	}
-	
-	public void testOperationApprover2() throws ExecutionException {
-		// clear out the history
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-
-		history.addOperationApprover(new IOperationApprover2() {
-
-			public IStatus proceedRedoing(IUndoableOperation o, IOperationHistory h, IAdaptable a) {
-				return Status.OK_STATUS;
-			}
-			public IStatus proceedExecuting(IUndoableOperation o, IOperationHistory h, IAdaptable a) {
-				if (o == op6)
-					return Status.CANCEL_STATUS;
-				return Status.OK_STATUS;
-			}
-			public IStatus proceedUndoing(IUndoableOperation o, IOperationHistory h, IAdaptable a) {
-				return Status.OK_STATUS;
-			}
-		});
-		IStatus status = history.execute(op1, null, null);
-		assertTrue(status.isOK());
-		assertTrue(preExec == 1 && postExec == 1);
-		
-		status = history.execute(op6, null, null);
-		assertFalse(status.isOK());
-		// listener counts should not have changed
-		assertTrue(preExec == 1 && postExec == 1);
-	}
-	
-	public void testReplaceContext() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		TriggeredOperations batch = new TriggeredOperations(op1, history);
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		op2.execute(null, null);
-		history.add(op2);
-		history.execute(op3, null, null);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("no operations should be in history yet", op == null);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("Operation should be batching", op == batch);
-		IUndoContext contextD = new ObjectUndoContext("D");
-		batch.replaceContext(contextC, contextD);
-		assertFalse("Operation should not have context", batch.hasContext(contextC));
-		assertFalse("Operation should not have context", op1.hasContext(contextC));
-		assertFalse("Operation should not have context", op2.hasContext(contextC));
-		assertFalse("Operation should not have context", op3.hasContext(contextC));
-		batch.replaceContext(contextD, contextC);
-		assertTrue("Operation should have context", batch.hasContext(contextC));
-		assertFalse("Operation should not have context", op1.hasContext(contextC));
-		assertTrue("Operation should have context", op2.hasContext(contextC));
-		assertTrue("Operation should have context", op3.hasContext(contextC));
-	
-	}
-	
-	// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=128117
-	// Test that context is removed from a triggered operations.
-	public void test128117simple() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		ICompositeOperation batch = new TriggeredOperations(op1, history);
-		IUndoContext context = new ObjectUndoContext("test");
-		batch.addContext(context);
-		assertTrue("Operation should have newly added context", batch.hasContext(context));
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		op2.execute(null, null);
-		history.add(op2);
-		history.execute(op3, null, null);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("Operation should be the composite", op == batch);
-		assertTrue("Operation should have top level context", op.hasContext(context));
-		op.removeContext(context);
-		assertFalse("Operation should have removed top level context", op.hasContext(context));
-	}
-	
-	// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=128117
-	// Test that context is removed from a triggered operations after recompute of contexts.
-	public void test128117complex() throws ExecutionException {
-		// clear out history which will also reset operation execution counts
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, false);
-		ICompositeOperation batch = new TriggeredOperations(op1, history);
-		IUndoContext context = new ObjectUndoContext("test");
-		batch.addContext(context);
-		assertTrue("Operation should have top level context", batch.hasContext(context));
-		history.openOperation(batch, IOperationHistory.EXECUTE);
-		op1.execute(null, null);
-		op2.execute(null, null);
-		history.add(op2);
-		history.execute(op3, null, null);
-		history.closeOperation(true, true, IOperationHistory.EXECUTE);
-		IUndoableOperation op = history.getUndoOperation(IOperationHistory.GLOBAL_UNDO_CONTEXT);
-		assertTrue("Operation should be the composite", op == batch);
-		op.removeContext(contextB);
-		assertFalse("Operation should have removed child context", op.hasContext(contextB));
-		assertTrue("Operation should have top level context", op.hasContext(context));
-		op.removeContext(context);
-		assertFalse("Operation should have removed top level context", op.hasContext(context));
-	}
-	
-	public void testStressTestAPI() throws ExecutionException {
-		history.setLimit(contextA, STRESS_NUM);
-		for (int i=0; i < STRESS_NUM; i++) {
-			IUndoableOperation op = new TestOperation("test");
-			op.addContext(contextA);
-			if (i%3 == 0) {
-				op.addContext(contextB);
-			}
-			history.execute(op, null, null);
-		}
-		for (int i=0; i < STRESS_NUM; i++) {
-			if (i%2 == 0) {
-				history.undo(contextA, null, null);
-			}
-			if (i%5 == 0) {
-				history.redo(contextA, null, null);
-			}
-		}
-	}
-	
-	public void test159305() throws ExecutionException {
-		final int [] approvalCount = new int[1];
-		IOperationApprover approver;
-		approver = new IOperationApprover() {
-			public IStatus proceedUndoing(IUndoableOperation op, IOperationHistory history, IAdaptable uiInfo) {
-				approvalCount[0]++;
-				return Status.OK_STATUS;
-			}
-			public IStatus proceedRedoing(IUndoableOperation op, IOperationHistory history, IAdaptable uiInfo) {
-				approvalCount[0]--;
-				return Status.OK_STATUS;
-			}
-		};
-		history.addOperationApprover(approver);
-		history.undo(contextB, null, null);
-		// approval should have only run once for linear undo
-		assertTrue("Operation approver should run only once for linear undo", approvalCount[0] == 1);
-		history.redo(contextB, null, null);
-		assertTrue("Operation approver should run only once for linear redo", approvalCount[0] == 0);
-		
-		// approval should have only run once for direct undo
-		history.undoOperation(op5, null, null);
-		assertTrue("Operation approver should run only once for direct undo", approvalCount[0]== 1);
-		history.redoOperation(op5, null, null);
-		assertTrue("Operation approver should run only once for direct redo", approvalCount[0]== 0);
-		
-		// cleanup
-		history.removeOperationApprover(approver);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsTestSuite.java
deleted file mode 100644
index 4ef6961..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/OperationsTestSuite.java
+++ /dev/null
@@ -1,38 +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.tests.operations;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests for the platform operations support.
- */
-public class OperationsTestSuite extends TestSuite {
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static final Test suite() {
-		return new OperationsTestSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public OperationsTestSuite() {
-		addTest(new TestSuite(OperationsAPITest.class));
-		addTest(new TestSuite(WorkbenchOperationHistoryTests.class));
-		addTest(new TestSuite(MultiThreadedOperationsTests.class));
-		addTest(new TestSuite(WorkbenchOperationStressTests.class));
-		addTest(new TestSuite(WorkspaceOperationsTests.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/TestOperation.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/TestOperation.java
deleted file mode 100644
index 1c6ec73..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/TestOperation.java
+++ /dev/null
@@ -1,56 +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.tests.operations;
-
-import org.eclipse.core.commands.operations.AbstractOperation;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-
-/**
- * @since 3.1
- */
-public class TestOperation extends AbstractOperation {
-
-	private int fExecutionCount = 0;
-
-	TestOperation(String label) {
-		super(label);
-	}
-
-	public boolean canRedo() {
-		return fExecutionCount == 0;
-	}
-
-	public boolean canUndo() {
-		return fExecutionCount > 0;
-	}
-
-	public IStatus execute(IProgressMonitor monitor, IAdaptable uiInfo) {
-		fExecutionCount++;
-		return Status.OK_STATUS;
-	}
-	
-	public IStatus redo(IProgressMonitor monitor, IAdaptable uiInfo) {
-		return execute(monitor, uiInfo);
-	}
-
-	public IStatus undo(IProgressMonitor monitor, IAdaptable uiInfo) {
-		fExecutionCount--;
-		return Status.OK_STATUS;
-	}
-	
-	public void dispose() {
-		fExecutionCount = 0;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/UnredoableTestOperation.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/UnredoableTestOperation.java
deleted file mode 100644
index ad72d3f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/UnredoableTestOperation.java
+++ /dev/null
@@ -1,32 +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.tests.operations;
-
-
-/**
- * @since 3.1
- */
-public class UnredoableTestOperation extends TestOperation {
-	UnredoableTestOperation(String name) {
-		super(name);
-	}
-
-	boolean disposed = false;
-	
-	public boolean canRedo() {
-		return false;
-	}
-	
-	public void dispose() {
-		disposed = true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationHistoryTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationHistoryTests.java
deleted file mode 100644
index 494f6c1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationHistoryTests.java
+++ /dev/null
@@ -1,93 +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.tests.operations;
-
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.ObjectUndoContext;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the Operations Framework API.
- * 
- * @since 3.1
- */
-public class WorkbenchOperationHistoryTests extends UITestCase {
-	IUndoContext context, contextA, contextB;
-
-	IOperationHistory history;
-
-	IUndoableOperation op1, op2, op3, op4, op5, op6;
-
-	/**
-	 * @param testName
-	 */
-	public WorkbenchOperationHistoryTests(String name) {
-		super(name);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		history = PlatformUI.getWorkbench().getOperationSupport().getOperationHistory();
-		context = PlatformUI.getWorkbench().getOperationSupport().getUndoContext();
-		contextA = new ObjectUndoContext("A");
-		contextB = new ObjectUndoContext("B");
-		op1 = new TestOperation("op1");
-		op1.addContext(context);
-		op2 = new TestOperation("op2");
-		op2.addContext(context);
-		op2.addContext(contextA);
-		op3 = new TestOperation("op3");
-		op3.addContext(contextB);
-		op4 = new TestOperation("op4");
-		op4.addContext(context);
-		op5 = new TestOperation("op5");
-		op5.addContext(contextA);
-		op6 = new TestOperation("op6");
-		op6.addContext(context);
-		op6.addContext(contextB);
-		history.execute(op1, null, null);
-		history.execute(op2, null, null);
-		history.execute(op3, null, null);
-		history.execute(op4, null, null);
-		history.execute(op5, null, null);
-		history.execute(op6, null, null);
-
-	}
-
-	protected void doTearDown() throws Exception {
-		history.dispose(IOperationHistory.GLOBAL_UNDO_CONTEXT, true, true, true);
-		super.doTearDown();
-	}
-	
-	public void testWorkspaceAdapter() {
-		IUndoContext workspaceContext = (IUndoContext)ResourcesPlugin.getWorkspace().getAdapter(IUndoContext.class);
-		assertTrue("Should have context registered on workspace", workspaceContext == context);
-	}
-	
-	public void testMatchingContext() {
-		IUndoContext newContext = new IUndoContext() {
-			public String getLabel() { return "Matching Test Context"; }
-			public boolean matches(IUndoContext otherContext) { return false; }
-		};
-		assertFalse(newContext.matches(context));
-		((ObjectUndoContext)context).addMatch(newContext);
-		assertTrue(history.getUndoHistory(context).length == history.getUndoHistory(newContext).length);
-		assertTrue(op1.hasContext(newContext));
-		assertFalse(op3.hasContext(context));
-		op3.addContext(newContext);
-		assertTrue(op3.hasContext(context));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationStressTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationStressTests.java
deleted file mode 100644
index de7579a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkbenchOperationStressTests.java
+++ /dev/null
@@ -1,82 +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.tests.operations;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.commands.operations.IUndoableOperation;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Stress tests the Operations Framework API to find any interaction problems
- * with the workbench.
- * 
- * @since 3.1
- */
-public class WorkbenchOperationStressTests extends UITestCase {
-
-	static int STRESS_TEST_REPETITIONS = 2000;
-
-	static int OPEN_WINDOW_REPETITIONS = 2;
-
-	/**
-	 * @param testName
-	 */
-	public WorkbenchOperationStressTests(String name) {
-		super(name);
-	}
-
-	/*
-	 * Exercise the operations history just before closing the workbench. This
-	 * can find problems with the action handlers assuming a workbench is open.
-	 * 
-	 * In progress - this still isn't catching the case from the bug, but is a good
-	 * start.
-	 */
-	public void test115761() throws ExecutionException {
-		for (int j = 0; j < OPEN_WINDOW_REPETITIONS; j++) {
-			IWorkbenchWindow secondWorkbenchWindow = null;
-			secondWorkbenchWindow = openTestWindow(IDE.RESOURCE_PERSPECTIVE_ID);
-			Display display = secondWorkbenchWindow.getShell().getDisplay();
-			IOperationHistory workbenchHistory = secondWorkbenchWindow
-					.getWorkbench().getOperationSupport().getOperationHistory();
-			IUndoContext workbenchContext = secondWorkbenchWindow
-					.getWorkbench().getOperationSupport().getUndoContext();
-			workbenchHistory.setLimit(workbenchContext, STRESS_TEST_REPETITIONS);
-
-			for (int i = 0; i < STRESS_TEST_REPETITIONS; i++) {
-				IUndoableOperation op = new TestOperation("test");
-				op.addContext(workbenchContext);
-				workbenchHistory.execute(op, null, null);
-			}
-			for (int i = 0; i < STRESS_TEST_REPETITIONS; i++) {
-				if (i % 2 == 0) {
-					workbenchHistory.undo(workbenchContext, null, null);
-				}
-				if (i % 5 == 0) {
-					workbenchHistory.redo(workbenchContext, null, null);
-				}
-			}
-
-			secondWorkbenchWindow.close();
-			boolean go = true;
-			while (go) {
-				go = display.readAndDispatch();
-				
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java
deleted file mode 100644
index 7b1c3a5..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/operations/WorkspaceOperationsTests.java
+++ /dev/null
@@ -1,2177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.operations;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URI;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.operations.IOperationHistory;
-import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.filesystem.EFS;
-import org.eclipse.core.filesystem.IFileStore;
-import org.eclipse.core.filesystem.URIUtil;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.tests.harness.FileSystemHelper;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.undo.AbstractWorkspaceOperation;
-import org.eclipse.ui.ide.undo.CopyProjectOperation;
-import org.eclipse.ui.ide.undo.CopyResourcesOperation;
-import org.eclipse.ui.ide.undo.CreateFileOperation;
-import org.eclipse.ui.ide.undo.CreateFolderOperation;
-import org.eclipse.ui.ide.undo.CreateMarkersOperation;
-import org.eclipse.ui.ide.undo.CreateProjectOperation;
-import org.eclipse.ui.ide.undo.DeleteMarkersOperation;
-import org.eclipse.ui.ide.undo.DeleteResourcesOperation;
-import org.eclipse.ui.ide.undo.MoveProjectOperation;
-import org.eclipse.ui.ide.undo.MoveResourcesOperation;
-import org.eclipse.ui.ide.undo.UpdateMarkersOperation;
-import org.eclipse.ui.internal.operations.AdvancedValidationUserApprover;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Tests the undo of various workspace operations. Uses the following workspace
- * structure to perform the tests
- * 
- * <pre>
- *  TEST_PROJECT_NAME
- *  **TEST_FOLDER_NAME
- *  ****TEST_SUBFOLDER_NAME
- *  ******TEST_FILEINSUBFOLDER_NAME 
- *  ****TEST_EMPTYFILE_NAME
- *  ****TEST_RANDOMFILE_NAME
- *  ****TEST_LINKEDFILE_NAME (linked to random location)
- *  ****TEST_LINKEDFOLDER_NAME (linked to random location)
- *  **TEST_FILEINPROJECT_NAME 
- *  TEST_TARGETPROJECT_NAME
- * </pre>
- * 
- * @since 3.3
- */
-public class WorkspaceOperationsTests extends UITestCase {
-
-	IProject testProject, targetProject;
-
-	IFolder testFolder, testSubFolder, testLinkedFolder;
-
-	IFile emptyTestFile, testFileWithContent, testLinkedFile,
-			testFileInSubFolder, testFileInProject;
-
-	private final Set storesToDelete = new HashSet();
-
-	IOperationHistory history;
-
-	IUndoContext context;
-
-	private static Map initialAttributes = new HashMap();
-	static {
-		initialAttributes.put("Attr1", "Attr1 1.0");
-		initialAttributes.put("Attr2", "Attr2 1.0");
-		initialAttributes.put("Attr3", "Attr3 1.0");
-		initialAttributes.put("Attr4", "Attr4 1.0");
-		initialAttributes.put("Attr5", "Attr5 1.0");
-		initialAttributes.put("Attr6", "Attr6 1.0");
-	};
-
-	private static Map updatedAttributes = new HashMap();
-	static {
-		updatedAttributes.put("Attr1", "Attr1 1.1");
-		updatedAttributes.put("Attr2", "Attr2 1.1");
-		updatedAttributes.put("Attr3", "Attr3 1.1");
-		updatedAttributes.put("Attr4", "Attr4 1.1");
-		updatedAttributes.put("Attr5", "Attr5 1.1");
-		updatedAttributes.put("Attr7", "Attr7 1.0");
-	};
-
-	private static Map mergedUpdatedAttributes = new HashMap();
-	static {
-		mergedUpdatedAttributes.put("Attr1", "Attr1 1.1");
-		mergedUpdatedAttributes.put("Attr2", "Attr2 1.1");
-		mergedUpdatedAttributes.put("Attr3", "Attr3 1.1");
-		mergedUpdatedAttributes.put("Attr4", "Attr4 1.1");
-		mergedUpdatedAttributes.put("Attr5", "Attr5 1.1");
-		mergedUpdatedAttributes.put("Attr6", "Attr6 1.0");
-		mergedUpdatedAttributes.put("Attr7", "Attr7 1.0");
-	};
-
-	private static List fileNameExcludes = new ArrayList();
-	static {
-		fileNameExcludes.add(".project");
-	};
-
-	private static String CUSTOM_TYPE = "TestMarkerType";
-
-	private static String FILE_CONTENTS_EMPTY = "";
-
-	private static String TEST_PROJECT_NAME = "WorkspaceOperationsTests_Project";
-
-	private static String TEST_TARGET_PROJECT_NAME = "WorkspaceOperationsTests_MoveCopyTarget";
-
-	private static String TEST_FOLDER_NAME = "WorkspaceOperationsTests_Folder";
-
-	private static String TEST_SUBFOLDER_NAME = "WorkspaceOperationsTests_SubFolder";
-
-	private static String TEST_LINKEDFOLDER_NAME = "WorkspaceOperationsTests_LinkedFolder";
-
-	private static String TEST_LINKEDFILE_NAME = "WorkspaceOperationTests_LinkedFile";
-
-	private static String TEST_EMPTYFILE_NAME = "WorkspaceOperationsTests_EmptyFile";
-
-	private static String TEST_RANDOMFILE_NAME = "WorkspaceOperationsTests_RandomContentFile.txt";
-
-	private static String TEST_FILEINPROJECT_NAME = "WorkspaceOperationsTests_FileInProject";
-
-	private static String TEST_FILEINSUBFOLDER_NAME = "WorkspaceOperationsTests_FileInSubFolder";
-
-	private static String TEST_NEWPROJECT_NAME = "WorkspaceOperationTests_NewProject";
-
-	private static String TEST_NEWFOLDER_NAME = "WorkspaceOperationTests_NewFolder";
-
-	private static String TEST_NEWFILE_NAME = "WorkspaceOperationTests_NewFile";
-	
-	private static String TEST_NESTEDFOLDER_ROOT_PARENT_NAME = "scooby";
-	
-	private static String TEST_NESTEDFOLDER_PARENT_NAME = "scooby/dooby/doo";
-
-	private static String TEST_NEWNESTEDFOLDER_NAME = "scooby/dooby/doo/WorkspaceOperationTests_NewFolder";
-
-	private static String TEST_NEWNESTEDFILE_NAME = "scooby/dooby/doo/WorkspaceOperationTests_NewFile";
-
-	// Insider knowledge of WorkspaceUndoMonitor's change threshhold
-	private static int NUM_CHANGES = 10;
-
-	class FileSnapshot extends ResourceSnapshot {
-		String content;
-
-		URI location;
-
-		MarkerSnapshot[] markerSnapshots;
-
-		FileSnapshot(IFile file) throws CoreException {
-			content = readContent(file);
-			name = file.getName();
-			if (file.isLinked()) {
-				location = file.getLocationURI();
-			}
-			IMarker[] markers = file.findMarkers(null, true,
-					IResource.DEPTH_INFINITE);
-			markerSnapshots = new MarkerSnapshot[markers.length];
-			for (int i = 0; i < markers.length; i++) {
-				markerSnapshots[i] = new MarkerSnapshot(markers[i]);
-			}
-		}
-
-		boolean isValid(IResource parent) throws CoreException {
-			IResource resource = getWorkspaceRoot().findMember(
-					parent.getFullPath().append(name));
-			if (resource == null || !(resource instanceof IFile)) {
-				return false;
-			}
-			IFile file = (IFile) resource;
-			boolean contentMatch = readContent(file).equals(content);
-			if (file.isLinked()) {
-				contentMatch = contentMatch
-						&& file.getLocationURI().equals(location);
-			}
-			if (!contentMatch) {
-				return false;
-			}
-			for (int i = 0; i < markerSnapshots.length; i++) {
-				if (!markerSnapshots[i].existsOn(resource)) {
-					return false;
-				}
-			}
-			return true;
-		}
-	}
-
-	class FolderSnapshot extends ResourceSnapshot {
-		URI location;
-
-		ResourceSnapshot[] memberSnapshots;
-
-		FolderSnapshot(IFolder folder) throws CoreException {
-			name = folder.getName();
-			if (folder.isLinked()) {
-				location = folder.getLocationURI();
-			}
-			IResource[] members = folder.members();
-			memberSnapshots = new ResourceSnapshot[members.length];
-			for (int i = 0; i < members.length; i++) {
-				memberSnapshots[i] = snapshotFromResource(members[i]);
-			}
-		}
-
-		boolean isValid(IResource parent) throws CoreException {
-			IResource resource = getWorkspaceRoot().findMember(
-					parent.getFullPath().append(name));
-			if (resource == null || !(resource instanceof IFolder)) {
-				return false;
-			}
-			IFolder folder = (IFolder) resource;
-			if (folder.isLinked()) {
-				if (!folder.getLocationURI().equals(location)) {
-					return false;
-				}
-			}
-			for (int i = 0; i < memberSnapshots.length; i++) {
-				if (!fileNameExcludes.contains(memberSnapshots[i].name)) {
-					if (!memberSnapshots[i].isValid(folder)) {
-						return false;
-					}
-				}
-			}
-			return true;
-		}
-	}
-
-	class MarkerSnapshot {
-		String type;
-
-		Map attributes;
-
-		MarkerSnapshot(IMarker marker) throws CoreException {
-			type = marker.getType();
-			attributes = marker.getAttributes();
-		}
-
-		boolean existsOn(IResource resource) throws CoreException {
-			// comparison is based on equality of attributes, since id will
-			// change on create/delete/recreate sequence
-			IMarker[] markers = resource.findMarkers(type, false,
-					IResource.DEPTH_ZERO);
-			for (int i = 0; i < markers.length; i++) {
-				if (markers[i].getAttributes().equals(attributes)) {
-					return true;
-				}
-			}
-			return false;
-		}
-	}
-
-	class ProjectSnapshot extends ResourceSnapshot {
-		ResourceSnapshot[] memberSnapshots;
-
-		ProjectSnapshot(IProject project) throws CoreException {
-			name = project.getName();
-			boolean open = project.isOpen();
-			if (!open) {
-				project.open(null);
-			}
-			IResource[] members = project.members();
-			memberSnapshots = new ResourceSnapshot[members.length];
-			for (int i = 0; i < members.length; i++) {
-				memberSnapshots[i] = snapshotFromResource(members[i]);
-			}
-			if (!open) {
-				project.close(null);
-			}
-
-		}
-
-		boolean isValid(IResource parent) throws CoreException {
-			IResource resource = getWorkspaceRoot().findMember(
-					parent.getFullPath().append(name));
-			if (resource == null || !(resource instanceof IProject)) {
-				return false;
-			}
-			IProject project = (IProject) resource;
-			// Must open it to validate the content
-			boolean open = project.isOpen();
-			if (!open) {
-				project.open(null);
-			}
-
-			for (int i = 0; i < memberSnapshots.length; i++) {
-				if (!fileNameExcludes.contains(memberSnapshots[i].name)) {
-					if (!memberSnapshots[i].isValid(resource)) {
-						return false;
-					}
-				}
-			}
-
-			if (!open) {
-				project.close(null);
-			}
-
-			return true;
-		}
-
-		boolean isValid() throws CoreException {
-			return isValid(getWorkspaceRoot());
-		}
-	}
-
-	abstract class ResourceSnapshot {
-		String name;
-
-		abstract boolean isValid(IResource parent) throws CoreException;
-
-		IWorkspaceRoot getWorkspaceRoot() {
-			return ResourcesPlugin.getWorkspace().getRoot();
-		}
-	}
-
-	/**
-	 * @param testName
-	 */
-	public WorkspaceOperationsTests(String name) {
-		super(name);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		// Suppress validation UI
-		AdvancedValidationUserApprover.AUTOMATED_MODE = true;
-		// Project
-		testProject = getWorkspace().getRoot().getProject(TEST_PROJECT_NAME);
-		testProject.create(getMonitor());
-		testProject.open(getMonitor());
-		assertTrue(testProject.exists());
-		// Project for move/copy target location
-		targetProject = getWorkspace().getRoot().getProject(
-				TEST_TARGET_PROJECT_NAME);
-		targetProject.create(getMonitor());
-		targetProject.open(getMonitor());
-		assertTrue(targetProject.exists());
-		// Folder in Project
-		testFolder = testProject.getFolder(TEST_FOLDER_NAME);
-		testFolder.create(true, true, getMonitor());
-		assertTrue(testFolder.exists());
-		// File in Project
-		testFileInProject = testProject.getFile(TEST_FILEINPROJECT_NAME);
-		testFileInProject.create(getContents(getRandomString()), true,
-				getMonitor());
-		assertTrue(testFileInProject.exists());
-		// Subfolder in top level folder
-		testSubFolder = testFolder.getFolder(TEST_SUBFOLDER_NAME);
-		testSubFolder.create(true, true, getMonitor());
-		assertTrue(testSubFolder.exists());
-		// Files in top level folder
-		emptyTestFile = testFolder.getFile(TEST_EMPTYFILE_NAME);
-		emptyTestFile.create(getContents(FILE_CONTENTS_EMPTY), true,
-				getMonitor());
-		testFileWithContent = testFolder.getFile(TEST_RANDOMFILE_NAME);
-		testFileWithContent.create(getContents(getRandomString()), true,
-				getMonitor());
-		// File in subfolder
-		testFileInSubFolder = testSubFolder.getFile(TEST_FILEINSUBFOLDER_NAME);
-		testFileInSubFolder.create(getContents(getRandomString()), true,
-				getMonitor());
-		assertTrue(testFileInProject.exists());
-
-		// Create links by first creating the backing content...
-		IFileStore folderStore = getTempStore();
-		IFileStore fileStore = getTempStore();
-		IPath folderLocation = URIUtil.toPath(folderStore.toURI());
-		IPath fileLocation = URIUtil.toPath(fileStore.toURI());
-		folderStore.mkdir(EFS.NONE, getMonitor());
-		fileStore.openOutputStream(EFS.NONE, getMonitor()).close();
-		// Then create the workspace objects
-		testLinkedFolder = testFolder.getFolder(TEST_LINKEDFOLDER_NAME);
-		testLinkedFolder.createLink(folderLocation, IResource.NONE,
-				getMonitor());
-		assertTrue(testLinkedFolder.exists());
-		testLinkedFile = testFolder.getFile(TEST_LINKEDFILE_NAME);
-		testLinkedFile.createLink(fileLocation, IResource.NONE, getMonitor());
-
-		history = PlatformUI.getWorkbench().getOperationSupport()
-				.getOperationHistory();
-		context = PlatformUI.getWorkbench().getOperationSupport()
-				.getUndoContext();
-
-	}
-
-	protected void doTearDown() throws Exception {
-		testProject = (IProject) getWorkspaceRoot().findMember(
-				TEST_PROJECT_NAME);
-		if (testProject != null) {
-			testProject.close(getMonitor());
-			testProject.delete(true, true, getMonitor());
-		}
-		targetProject = (IProject) getWorkspaceRoot().findMember(
-				TEST_TARGET_PROJECT_NAME);
-		if (targetProject != null) {
-			targetProject.close(getMonitor());
-			targetProject.delete(true, true, getMonitor());
-		}
-		IProject newProject = (IProject) getWorkspaceRoot().findMember(
-				TEST_NEWPROJECT_NAME);
-		if (newProject != null) {
-			newProject.close(getMonitor());
-			newProject.delete(true, true, getMonitor());
-		}
-		final IFileStore[] toDelete = (IFileStore[]) storesToDelete
-				.toArray(new IFileStore[storesToDelete.size()]);
-		storesToDelete.clear();
-		for (int i = 0; i < toDelete.length; i++) {
-			clear(toDelete[i]);
-		}
-		AdvancedValidationUserApprover.AUTOMATED_MODE = false;
-
-		testProject = null;
-		targetProject = null;
-		testFolder = null;
-		testSubFolder = null;
-		testLinkedFolder = null;
-		emptyTestFile = null;
-		testFileWithContent = null;
-		testLinkedFile = null;
-		testFileInSubFolder = null;
-		testFileInProject = null;
-
-		super.doTearDown();
-	}
-
-	private IWorkspace getWorkspace() {
-		return ResourcesPlugin.getWorkspace();
-	}
-
-	private IWorkspaceRoot getWorkspaceRoot() {
-		return ResourcesPlugin.getWorkspace().getRoot();
-	}
-
-	/*
-	 * reads file content and returns string
-	 */
-	private String readContent(IFile file) throws CoreException {
-		InputStream is = file.getContents();
-		String encoding = file.getCharset();
-		if (is == null)
-			return null;
-		BufferedReader reader = null;
-		try {
-			StringBuffer buffer = new StringBuffer();
-			char[] part = new char[2048];
-			int read = 0;
-			reader = new BufferedReader(new InputStreamReader(is, encoding));
-
-			while ((read = reader.read(part)) != -1)
-				buffer.append(part, 0, read);
-
-			return buffer.toString();
-
-		} catch (IOException ex) {
-		} finally {
-			if (reader != null) {
-				try {
-					reader.close();
-				} catch (IOException ex) {
-				}
-			}
-		}
-		return null;
-	}
-
-	private ResourceSnapshot snapshotFromResource(IResource resource)
-			throws CoreException {
-		if (resource instanceof IFile)
-			return new FileSnapshot((IFile) resource);
-		if (resource instanceof IFolder)
-			return new FolderSnapshot((IFolder) resource);
-		if (resource instanceof IProject)
-			return new ProjectSnapshot((IProject) resource);
-		fail("Unknown resource type");
-		// making compiler happy
-		return new FileSnapshot((IFile) resource);
-	}
-
-	private IProgressMonitor getMonitor() {
-		return null;
-	}
-
-	private String getRandomString() {
-		switch ((int) Math.round(Math.random() * 10)) {
-		case 0:
-			return "este e' o meu conteudo (portuguese)";
-		case 1:
-			return "ho ho ho";
-		case 2:
-			return "I'll be back";
-		case 3:
-			return "don't worry, be happy";
-		case 4:
-			return "there is no imagination for more sentences";
-		case 5:
-			return "customize yours";
-		case 6:
-			return "foo";
-		case 7:
-			return "bar";
-		case 8:
-			return "foobar";
-		case 9:
-			return "case 9";
-		default:
-			return "these are my contents";
-		}
-	}
-
-	/**
-	 * Returns a FileStore instance backed by storage in a temporary location.
-	 * The returned store will not exist, but will belong to an existing parent.
-	 * The tearDown method in this class will ensure the location is deleted
-	 * after the test is completed.
-	 */
-	private IFileStore getTempStore() {
-		IFileStore store = EFS.getLocalFileSystem().getStore(
-				FileSystemHelper.getRandomLocation(FileSystemHelper
-						.getTempDir()));
-		storesToDelete.add(store);
-		return store;
-	}
-
-	/**
-	 * Returns the URI for a unique, existent folder backed by storage in a
-	 * temporary location. The tearDown method in this class will ensure the
-	 * location is deleted after the test is completed.
-	 */
-	private URI getTempProjectDir() throws CoreException {
-		IFileStore store = getTempStore();
-		store.mkdir(EFS.NONE, getMonitor());
-		return store.toURI();
-	}
-
-	private void clear(IFileStore store) {
-		try {
-			store.delete(EFS.NONE, null);
-		} catch (CoreException e) {
-		}
-	}
-
-	private InputStream getContents(String text) {
-		return new ByteArrayInputStream(text.getBytes());
-	}
-
-	private Map getInitialMarkerAttributes() {
-		HashMap map = new HashMap();
-		map.putAll(initialAttributes);
-		return map;
-	}
-
-	private Map getUpdatedMarkerAttributes() {
-		HashMap map = new HashMap();
-		map.putAll(updatedAttributes);
-		return map;
-	}
-
-	private IProjectDescription getNewProjectDescription() {
-		return getWorkspace().newProjectDescription(TEST_NEWPROJECT_NAME);
-	}
-
-	private void execute(AbstractWorkspaceOperation operation)
-			throws ExecutionException {
-		operation.setQuietCompute(true);
-		assertTrue("Operation can be executed", operation.canExecute());
-		IStatus status = history.execute(operation, getMonitor(), null);
-		assertTrue("Execution should be OK status", status.isOK());
-	}
-
-	private void executeExpectFail(AbstractWorkspaceOperation operation)
-			throws ExecutionException {
-		operation.setQuietCompute(true);
-		IStatus status = history.execute(operation, getMonitor(), null);
-		assertFalse("Execution should not have OK status", status.isOK());
-	}
-
-	private void undo() throws ExecutionException {
-		assertTrue("Operation can be undone", history.canUndo(context));
-		IStatus status = history.undo(context, getMonitor(), null);
-		assertTrue("Undo should be OK status", status.isOK());
-	}
-
-	private void undoExpectFail(AbstractWorkspaceOperation operation)
-			throws ExecutionException {
-		operation.setQuietCompute(true);
-		IStatus status = history.undo(context, getMonitor(), null);
-		assertFalse("Undo should not have OK status", status.isOK());
-	}
-
-	private void redo() throws ExecutionException {
-		assertTrue("Operation can be redone", history.canRedo(context));
-		IStatus status = history.redo(context, getMonitor(), null);
-		assertTrue("Redo should be OK status", status.isOK());
-	}
-
-	private void validateCreatedMarkers(int expectedCount, IMarker[] markers,
-			Map[] expectedAttributes, String[] expectedTypes)
-			throws CoreException {
-
-		assertTrue(MessageFormat.format("{0} markers should have been created",
-				new Object[] { new Integer(expectedCount) }),
-				markers.length == expectedCount);
-
-		for (int i = 0; i < markers.length; i++) {
-			IMarker createdMarker = markers[i];
-			assertTrue("Marker should exist", createdMarker.exists());
-			assertTrue("Marker should have expected attributes", createdMarker
-					.getAttributes().equals(expectedAttributes[i]));
-			assertTrue("Marker should have expected type", createdMarker
-					.getType().equals(expectedTypes[i]));
-		}
-	}
-
-	public void testCreateSingleMarkerUndoRedo() throws ExecutionException,
-			CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(
-				IMarker.BOOKMARK, getInitialMarkerAttributes(), emptyTestFile,
-				"Create Single Marker Test");
-		execute(op);
-		IMarker[] markers = op.getMarkers();
-		validateCreatedMarkers(1, markers, attrs, types);
-		undo();
-		assertFalse("Marker should no longer exist", markers[0].exists());
-		redo();
-		markers = op.getMarkers();
-		validateCreatedMarkers(1, markers, attrs, types);
-	}
-
-	public void testCreateMultipleMarkersSingleTypeUndoRedo()
-			throws ExecutionException, CoreException {
-		String[] types = new String[] { CUSTOM_TYPE, CUSTOM_TYPE, CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getUpdatedMarkerAttributes(), getInitialMarkerAttributes() };
-
-		CreateMarkersOperation op = new CreateMarkersOperation(CUSTOM_TYPE,
-				attrs, new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Single Type Test");
-		execute(op);
-		IMarker[] markers = op.getMarkers();
-		validateCreatedMarkers(3, markers, attrs, types);
-		undo();
-		for (int i = 0; i < markers.length; i++) {
-			IMarker createdMarker = markers[i];
-			assertFalse("Marker should no longer exist", createdMarker.exists());
-		}
-		redo();
-		markers = op.getMarkers();
-		validateCreatedMarkers(3, markers, attrs, types);
-	}
-
-	public void testCreateMultipleMarkerTypesUndoRedo()
-			throws ExecutionException, CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getUpdatedMarkerAttributes(), getInitialMarkerAttributes() };
-
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile }, "Create Multiple Marker Types Test");
-		execute(op);
-		IMarker[] markers = op.getMarkers();
-		validateCreatedMarkers(3, markers, attrs, types);
-		undo();
-		for (int i = 0; i < markers.length; i++) {
-			IMarker createdMarker = markers[i];
-			assertFalse("Marker should no longer exist", createdMarker.exists());
-		}
-		redo();
-		markers = op.getMarkers();
-		validateCreatedMarkers(3, markers, attrs, types);
-	}
-
-	public void testUpdateSingleMarkerUndoRedo() throws ExecutionException,
-			CoreException {
-		CreateMarkersOperation op = new CreateMarkersOperation(
-				IMarker.BOOKMARK, getInitialMarkerAttributes(),
-				testFileWithContent, "Create Marker Test");
-		execute(op);
-		UpdateMarkersOperation updateOp = new UpdateMarkersOperation(op
-				.getMarkers()[0], getUpdatedMarkerAttributes(),
-				"Update Single Marker", false);
-		execute(updateOp);
-		validateCreatedMarkers(1, updateOp.getMarkers(),
-				new Map[] { getUpdatedMarkerAttributes() },
-				new String[] { IMarker.BOOKMARK });
-		undo();
-		validateCreatedMarkers(1, updateOp.getMarkers(),
-				new Map[] { getInitialMarkerAttributes() },
-				new String[] { IMarker.BOOKMARK });
-		redo();
-		validateCreatedMarkers(1, updateOp.getMarkers(),
-				new Map[] { getUpdatedMarkerAttributes() },
-				new String[] { IMarker.BOOKMARK });
-
-	}
-
-	public void testUpdateMultipleMarkerUndoRedo() throws ExecutionException,
-			CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getInitialMarkerAttributes(), getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		UpdateMarkersOperation updateOp = new UpdateMarkersOperation(op
-				.getMarkers(), getUpdatedMarkerAttributes(),
-				"Update Multiple Markers", false);
-		execute(updateOp);
-		validateCreatedMarkers(3, updateOp.getMarkers(), new Map[] {
-				getUpdatedMarkerAttributes(), getUpdatedMarkerAttributes(),
-				getUpdatedMarkerAttributes() }, types);
-		undo();
-		validateCreatedMarkers(3, updateOp.getMarkers(), attrs, types);
-		redo();
-		validateCreatedMarkers(3, updateOp.getMarkers(), new Map[] {
-				getUpdatedMarkerAttributes(), getUpdatedMarkerAttributes(),
-				getUpdatedMarkerAttributes() }, types);
-
-	}
-
-	public void testUpdateAndMergeSingleMarkerUndoRedo()
-			throws ExecutionException, CoreException {
-		CreateMarkersOperation op = new CreateMarkersOperation(
-				IMarker.BOOKMARK, getInitialMarkerAttributes(), testLinkedFile,
-				"Create Marker Test");
-		execute(op);
-		UpdateMarkersOperation updateOp = new UpdateMarkersOperation(op
-				.getMarkers()[0], getUpdatedMarkerAttributes(),
-				"Update And Merge Single Marker", true);
-		execute(updateOp);
-		validateCreatedMarkers(1, updateOp.getMarkers(),
-				new Map[] { mergedUpdatedAttributes },
-				new String[] { IMarker.BOOKMARK });
-		undo();
-		validateCreatedMarkers(1, updateOp.getMarkers(),
-				new Map[] { getInitialMarkerAttributes() },
-				new String[] { IMarker.BOOKMARK });
-		redo();
-		validateCreatedMarkers(1, updateOp.getMarkers(),
-				new Map[] { mergedUpdatedAttributes },
-				new String[] { IMarker.BOOKMARK });
-
-	}
-
-	public void testUpdateAndMergeMultipleMarkerUndoRedo()
-			throws ExecutionException, CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getInitialMarkerAttributes(), getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		UpdateMarkersOperation updateOp = new UpdateMarkersOperation(op
-				.getMarkers(), getUpdatedMarkerAttributes(),
-				"Update and Merge Multiple Markers", true);
-		execute(updateOp);
-		validateCreatedMarkers(3, updateOp.getMarkers(), new Map[] {
-				mergedUpdatedAttributes, mergedUpdatedAttributes,
-				mergedUpdatedAttributes }, types);
-		undo();
-		validateCreatedMarkers(3, updateOp.getMarkers(), attrs, types);
-		redo();
-		validateCreatedMarkers(3, updateOp.getMarkers(), new Map[] {
-				mergedUpdatedAttributes, mergedUpdatedAttributes,
-				mergedUpdatedAttributes }, types);
-	}
-
-	public void testDeleteMarkersUndoRedo() throws ExecutionException,
-			CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getUpdatedMarkerAttributes(), getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		IMarker[] markers = op.getMarkers();
-		DeleteMarkersOperation deleteOp = new DeleteMarkersOperation(markers,
-				"Delete Markers Test");
-		execute(deleteOp);
-		for (int i = 0; i < markers.length; i++) {
-			IMarker createdMarker = markers[i];
-			assertFalse("Marker should no longer exist", createdMarker.exists());
-		}
-		undo();
-		markers = deleteOp.getMarkers();
-		validateCreatedMarkers(3, markers, attrs, types);
-		redo();
-		for (int i = 0; i < markers.length; i++) {
-			IMarker createdMarker = markers[i];
-			assertFalse("Marker should no longer exist", createdMarker.exists());
-		}
-	}
-
-	/*
-	 * Test that the undo is invalid because one of the markers was deleted.
-	 */
-	public void testCreateMarkerUndoInvalid() throws ExecutionException,
-			CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getUpdatedMarkerAttributes(), getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		IMarker[] markers = op.getMarkers();
-		markers[1].delete();
-		// Must compute status first because we don't perform expensive
-		// validations in canUndo(). However we should remember the validity
-		// once we've computed the status.
-		op.computeUndoableStatus(null);
-		assertFalse("Undo should be invalid, marker no longer exists", op
-				.canUndo());
-	}
-
-	/*
-	 * Test that the undo is invalid because one of the resources was deleted.
-	 */
-	public void testCreateMarkerUndoInvalid2() throws ExecutionException,
-			CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getUpdatedMarkerAttributes(), getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		emptyTestFile.delete(true, getMonitor());
-		// Must compute status first because we don't perform expensive
-		// validations in canUndo(). However we should remember the validity
-		// once we've computed the status.
-		op.computeUndoableStatus(null);
-		assertFalse("Undo should be invalid, resource no longer exists", op
-				.canUndo());
-	}
-
-	public void testUpdateMarkersInvalid() throws ExecutionException,
-			CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getInitialMarkerAttributes(), getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		UpdateMarkersOperation updateOp = new UpdateMarkersOperation(op
-				.getMarkers(), getUpdatedMarkerAttributes(),
-				"Update and Merge Multiple Markers", true);
-		execute(updateOp);
-		IMarker[] markers = updateOp.getMarkers();
-		markers[0].delete();
-		// Must compute status first because we don't perform expensive
-		// validations in canUndo(). However we should remember the validity
-		// once we've computed the status.
-		updateOp.computeUndoableStatus(null);
-
-		assertFalse("Undo should be invalid, marker no longer exists", updateOp
-				.canUndo());
-	}
-
-	public void testUpdateMarkersInvalid2() throws ExecutionException,
-			CoreException {
-		String[] types = new String[] { IMarker.BOOKMARK, IMarker.TASK,
-				CUSTOM_TYPE };
-		Map[] attrs = new Map[] { getInitialMarkerAttributes(),
-				getInitialMarkerAttributes(), getInitialMarkerAttributes() };
-		CreateMarkersOperation op = new CreateMarkersOperation(types, attrs,
-				new IFile[] { emptyTestFile, testFileWithContent,
-						testLinkedFile },
-				"Create Multiple Markers Same Type Test");
-		execute(op);
-		UpdateMarkersOperation updateOp = new UpdateMarkersOperation(op
-				.getMarkers(), getUpdatedMarkerAttributes(),
-				"Update and Merge Multiple Markers", true);
-		execute(updateOp);
-		testFileWithContent.delete(true, getMonitor());
-		// Must compute status first because we don't perform expensive
-		// validations in canUndo(). However we should remember the validity
-		// once we've computed the status.
-		updateOp.computeUndoableStatus(null);
-
-		assertFalse("Undo should be invalid, marker no longer exists", updateOp
-				.canUndo());
-	}
-
-	public void testProjectCreateUndoRedo() throws ExecutionException,
-			CoreException {
-		CreateProjectOperation op = new CreateProjectOperation(
-				getNewProjectDescription(), "testProjectCreate");
-		execute(op);
-		IProject project = getWorkspaceRoot().getProject(TEST_NEWPROJECT_NAME);
-		assertTrue("Project creation failed", project.exists());
-		ProjectSnapshot snap = new ProjectSnapshot(project);
-		undo();
-		assertFalse("Project deletion failed", project.exists());
-		redo();
-		assertTrue("Project recreation failed", project.exists());
-		assertTrue("Project not restored properly", snap.isValid());
-	}
-
-	public void testProjectMoveUndoRedo() throws ExecutionException,
-			CoreException {
-		URI projectTargetLocation = URIUtil.toURI(URIUtil.toPath(
-				getTempProjectDir()).append(TEST_PROJECT_NAME));
-		MoveProjectOperation op = new MoveProjectOperation(testProject,
-				projectTargetLocation, "testProjectMove");
-		ProjectSnapshot snap = new ProjectSnapshot(testProject);
-		execute(op);
-		assertNotNull("Project move failed", testProject.getDescription()
-				.getLocationURI());
-		assertTrue("Project contents were altered", snap.isValid());
-		undo();
-		assertNull("Project move undo failed", testProject.getDescription()
-				.getLocationURI());
-		assertTrue("Project contents were altered", snap.isValid());
-		redo();
-		assertEquals("Project move redo failed", testProject.getDescription()
-				.getLocationURI(), projectTargetLocation);
-		assertTrue("Project contents were altered", snap.isValid());
-	}
-
-	public void testProjectMoveInvalidLocationUndoRedo()
-			throws ExecutionException {
-		// invalid target - already used by another project
-		MoveProjectOperation op = new MoveProjectOperation(testProject,
-				targetProject.getLocationURI(),
-				"testProjectMoveInvalidLocation");
-		executeExpectFail(op);
-	}
-
-	public void testProjectCopyUndoRedo() throws ExecutionException,
-			CoreException {
-		CopyProjectOperation op = new CopyProjectOperation(testProject,
-				TEST_NEWPROJECT_NAME, null, "testProjectCopy");
-		ProjectSnapshot snap = new ProjectSnapshot(testProject);
-		execute(op);
-		IProject copiedProject = getWorkspaceRoot().getProject(
-				TEST_NEWPROJECT_NAME);
-		assertTrue("Project copy failed", copiedProject.exists());
-		assertTrue("Source project was altered", snap.isValid());
-		snap.name = TEST_NEWPROJECT_NAME;
-		assertTrue("Project copy does not match", snap.isValid());
-		undo();
-		assertFalse("Copy undo failed", copiedProject.exists());
-		redo();
-		assertTrue("Project not restored properly on redo", snap.isValid());
-		snap.name = TEST_PROJECT_NAME;
-		assertTrue("Source project was altered", snap.isValid());
-	}
-
-	public void testProjectClosedCopyUndoRedo() throws ExecutionException,
-			CoreException {
-		testProject.close(getMonitor());
-		testProjectCopyUndoRedo();
-	}
-
-	public void testProjectCopyAndChangeLocationUndoRedo()
-			throws ExecutionException, CoreException {
-		URI projectTargetLocation = URIUtil.toURI(URIUtil.toPath(
-				getTempProjectDir()).append(TEST_PROJECT_NAME));
-		CopyProjectOperation op = new CopyProjectOperation(testProject,
-				TEST_NEWPROJECT_NAME, projectTargetLocation,
-				"testProjectCopyToNewLocation");
-		ProjectSnapshot snap = new ProjectSnapshot(testProject);
-		execute(op);
-		IProject copiedProject = getWorkspaceRoot().getProject(
-				TEST_NEWPROJECT_NAME);
-		assertTrue("Project copy failed", copiedProject.exists());
-		assertEquals("Project location copy failed", copiedProject
-				.getDescription().getLocationURI(), projectTargetLocation);
-		assertTrue("Source project was altered", snap.isValid());
-		snap.name = TEST_NEWPROJECT_NAME;
-		assertTrue("Project copy does not match", snap.isValid());
-		undo();
-		assertFalse("Copy undo failed", copiedProject.exists());
-		redo();
-		assertTrue("Project not restored properly on redo", snap.isValid());
-		assertEquals("Project location not restored properly", copiedProject
-				.getDescription().getLocationURI(), projectTargetLocation);
-		snap.name = TEST_PROJECT_NAME;
-		assertTrue("Source project was altered", snap.isValid());
-	}
-
-	public void testProjectClosedCopyAndChangeLocationUndoRedo()
-			throws ExecutionException, CoreException {
-		testProject.close(getMonitor());
-		testProjectCopyAndChangeLocationUndoRedo();
-	}
-
-	public void testProjectCopyAndChangeToInvalidLocationUndoRedo()
-			throws ExecutionException {
-		// invalid target - already used by another project
-		CopyProjectOperation op = new CopyProjectOperation(testProject,
-				TEST_NEWPROJECT_NAME, targetProject.getLocationURI(),
-				"testProjectCopyInvalidLocation");
-		executeExpectFail(op);
-	}
-
-	public void testProjectRenameUndoRedo() throws ExecutionException,
-			CoreException {
-		MoveResourcesOperation op = new MoveResourcesOperation(testProject,
-				new Path(TEST_NEWPROJECT_NAME), "testProjectRename");
-		ProjectSnapshot snap = new ProjectSnapshot(testProject);
-		execute(op);
-		IProject renamedProject = getWorkspaceRoot().getProject(
-				TEST_NEWPROJECT_NAME);
-		assertTrue("Project rename failed", renamedProject.exists());
-		snap.name = TEST_NEWPROJECT_NAME;
-		assertTrue("Project content was altered on rename", snap.isValid());
-		undo();
-		snap.name = TEST_PROJECT_NAME;
-		assertTrue("Project content was altered on undo rename", snap.isValid());
-		assertFalse("Undo rename failed", renamedProject.exists());
-		redo();
-		snap.name = TEST_NEWPROJECT_NAME;
-		assertTrue("Project content was altered on redo rename", snap.isValid());
-	}
-
-	public void testProjectDeleteUndoRedo() throws ExecutionException, CoreException {
-		ProjectSnapshot snap = new ProjectSnapshot(testProject);
-		
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testProject }, "testProjectDelete", false);
-		execute(op);
-		assertFalse("Project delete failed", testProject.exists());
-		undo();
-		assertTrue("Project recreation failed", testProject.exists());
-		// force a refresh so that the project is in sync with the file system.  Normally the
-		// project opens in the background, so without this refresh we may or may not have
-		// the contents yet.
-		testProject.refreshLocal(IResource.DEPTH_INFINITE, getMonitor());
-		assertTrue("Project content was altered on undo", snap.isValid());
-		redo();
-		assertFalse("Redo delete failed", testProject.exists());
-		// We undo again so that the project will exist during teardown and
-		// get cleaned up. Otherwise some content is left on disk.
-		undo();
-	}
-	
-	public void test223956() throws ExecutionException, CoreException {
-		// put a marker on a file contained in the test project
-		Map[] attrs = new Map[] { getInitialMarkerAttributes()};
-		CreateMarkersOperation markerCreate = new CreateMarkersOperation(new String[] { IMarker.BOOKMARK }, attrs,
-				new IFile[] { testFileWithContent},
-				"Test bug 223956");
-		execute(markerCreate);
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testProject }, "testProjectDelete", false);
-		execute(op);
-		assertFalse("Project delete failed", testProject.exists());
-		undo();
-		assertTrue("Project recreation failed", testProject.exists());
-		assertTrue("Marker should not exist at project level", testProject.findMarkers(IMarker.BOOKMARK, false, IResource.DEPTH_ZERO).length == 0);
-		assertTrue("Marker should have been restored in child file", testFileWithContent.findMarkers(IMarker.BOOKMARK, false, IResource.DEPTH_ZERO).length == 1);
-	}
-	
-	public void test201441() throws ExecutionException, CoreException {
-		String utf8 = "UTF-8";
-		// set the charset on the project explicitly
-		testProject.setDefaultCharset(utf8, getMonitor());
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testProject }, "testProjectDelete", false);
-		execute(op);
-		assertFalse("Project delete failed", testProject.exists());
-		undo();
-		assertTrue("Project recreation failed", testProject.exists());
-		assertEquals("Character set not restored", testProject.getDefaultCharset(), utf8);
-	}
-
-	public void testProjectClosedDeleteUndoRedo() throws ExecutionException,
-			CoreException {
-		testProject.close(getMonitor());
-		testProjectDeleteUndoRedo();
-	}
-
-	public void testProjectDeleteWithContentUndoRedo()
-			throws ExecutionException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testProject }, "testProjectDelete", true);
-		// we don't snapshot since content will be deleted
-		execute(op);
-		assertFalse("Project delete failed", testProject.exists());
-		undo();
-		assertTrue("Project was recreated", testProject.exists());
-		redo();
-		assertFalse("Redo delete failed", testProject.exists());
-	}
-
-	public void testProjectClosedDeleteWithContentUndoRedo()
-			throws ExecutionException, CoreException {
-		testProject.close(getMonitor());
-		testProjectDeleteWithContentUndoRedo();
-	}
-
-	public void testFolderCreateLeafUndoRedo() throws ExecutionException {
-		IFolder folder = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(TEST_NEWFOLDER_NAME));
-		CreateFolderOperation op = new CreateFolderOperation(folder, null,
-				"testFolderCreateLeaf");
-		assertFalse("Folder should not exist before test is run", folder
-				.exists());
-		execute(op);
-		assertTrue("Folder creation failed", folder.exists());
-		undo();
-		assertFalse("Folder deletion failed", folder.exists());
-		redo();
-		assertTrue("Folder recreation failed", folder.exists());
-	}
-
-	public void testFolderCreateNestedInProjectUndoRedo()
-			throws ExecutionException {
-		// uses a nested path to force creation of nonexistent parents
-		IFolder folder = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(TEST_NEWNESTEDFOLDER_NAME));
-		CreateFolderOperation op = new CreateFolderOperation(folder, null,
-				"testFolderCreateNested");
-		assertFalse("Folder should not exist before test is run", folder
-				.exists());
-		execute(op);
-		assertTrue("Folder creation failed", folder.exists());
-		undo();
-		assertFalse("Folder deletion failed", folder.exists());
-		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFOLDER_NAME);
-		path.removeLastSegments(path.segmentCount() - 1);
-		IFolder parent = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(path));
-		assertFalse("Deletion of created parents failed", parent.exists());
-
-		redo();
-		assertTrue("Folder recreation failed", folder.exists());
-	}
-
-	public void testFolderCreateNestedInFolderUndoRedo()
-			throws ExecutionException {
-		// Uses a nested path to force creation of nonexistent parents.
-		// Parent is a folder, not a project.
-		IFolder folder = getWorkspaceRoot().getFolder(
-				testFolder.getFullPath().append(TEST_NEWNESTEDFOLDER_NAME));
-		CreateFolderOperation op = new CreateFolderOperation(folder, null,
-				"testFolderCreateNestedInFolder");
-		assertFalse("Folder should not exist before test is run", folder
-				.exists());
-		execute(op);
-		assertTrue("Folder creation failed", folder.exists());
-
-		undo();
-		assertFalse("Folder deletion failed", folder.exists());
-		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFOLDER_NAME);
-		path.removeLastSegments(path.segmentCount() - 1);
-		IFolder parent = getWorkspaceRoot().getFolder(
-				testFolder.getFullPath().append(path));
-		assertFalse("Deletion of created parents failed", parent.exists());
-
-		redo();
-		assertTrue("Folder recreation failed", folder.exists());
-	}
-
-	public void testDeleteNestedResourcesUndoRedo()
-			throws ExecutionException {
-		// Creates nested folders and then tests that mass deletion of these records only the
-		// deepest.
-		IFolder folder = getWorkspaceRoot().getFolder(
-				testFolder.getFullPath().append(TEST_NEWNESTEDFOLDER_NAME));
-		IFolder parent = getWorkspaceRoot().getFolder(testFolder.getFullPath().append(TEST_NESTEDFOLDER_PARENT_NAME));
-		IFolder root = getWorkspaceRoot().getFolder(testFolder.getFullPath().append(TEST_NESTEDFOLDER_ROOT_PARENT_NAME));
-
-		AbstractWorkspaceOperation op = new CreateFolderOperation(folder, null,
-				"testFolderCreateNestedInFolder");
-		execute(op);
-		assertTrue("Folder creation failed", folder.exists());
-		assertTrue("Folder creation failed", parent.exists());
-		assertTrue("Folder creation failed", root.exists());
-
-		op = new DeleteResourcesOperation(new IResource[] {folder, parent, root}, "testDeleteNestedResourcesUndoRedo", true);
-		execute(op);
-		assertFalse("Folder deletion failed", folder.exists());
-		assertFalse("Folder deletion failed", parent.exists());
-		assertFalse("Folder deletion failed", root.exists());
-		
-		undo();
-		assertTrue("Folder creation failed", folder.exists());
-		assertTrue("Folder creation failed", parent.exists());
-		assertTrue("Folder creation failed", root.exists());
-
-	}
-
-	public void testFolderCreateLinkedUndoRedo() throws ExecutionException {
-		IFolder folder = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(TEST_NEWFOLDER_NAME));
-		CreateFolderOperation op = new CreateFolderOperation(folder,
-				testSubFolder.getLocationURI(), "testFolderCreateLink");
-		assertFalse("Folder should not exist before test is run", folder
-				.exists());
-		execute(op);
-		assertTrue("Folder creation failed", folder.exists());
-		assertTrue("Folder was not created as a link", folder.isLinked());
-		undo();
-		assertFalse("Folder deletion failed", folder.exists());
-		redo();
-		assertTrue("Folder recreation failed", folder.exists());
-		assertTrue("Folder was not recreated as a link", folder.isLinked());
-	}
-
-	public void testFolderCreateLinkedNestedUndoRedo()
-			throws ExecutionException {
-		// Use nested name with uncreated parents
-		IFolder folder = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(TEST_NEWNESTEDFOLDER_NAME));
-		CreateFolderOperation op = new CreateFolderOperation(folder,
-				testSubFolder.getLocationURI(), "testFolderCreateNestedLink");
-		assertFalse("Folder should not exist before test is run", folder
-				.exists());
-		execute(op);
-		assertTrue("Folder creation failed", folder.exists());
-		assertTrue("Folder was not created as a link", folder.isLinked());
-		undo();
-		assertFalse("Folder deletion failed", folder.exists());
-		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFOLDER_NAME);
-		path.removeLastSegments(path.segmentCount() - 1);
-		IFolder parent = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(path));
-		assertFalse("Parents should have been removed", parent.exists());
-		// Redo
-		redo();
-		assertTrue("Folder recreation failed", folder.exists());
-		assertTrue("Folder was not recreated as a link", folder.isLinked());
-	}
-
-	public void testFolderMoveUndoRedo() throws ExecutionException,
-			CoreException {
-		IPath targetPath = targetProject.getFullPath().append(
-				testFolder.getName());
-		MoveResourcesOperation op = new MoveResourcesOperation(testFolder,
-				targetPath, "testFolderMove");
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-		IFolder movedFolder = getWorkspaceRoot().getFolder(targetPath);
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snap.isValid(targetProject));
-
-		undo();
-		movedFolder = getWorkspaceRoot().getFolder(targetPath);
-		assertFalse("Move undo failed", movedFolder.exists());
-		assertTrue("Folder content was altered on undo", snap
-				.isValid(testProject));
-
-		redo();
-		movedFolder = getWorkspaceRoot().getFolder(targetPath);
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snap.isValid(targetProject));
-	}
-
-	public void testRedundantSubFolderMoveUndoRedo() throws ExecutionException,
-			CoreException {
-		IPath targetPath = targetProject.getFullPath();
-		IPath targetPathWithName = targetPath.append(testFolder.getName());
-		MoveResourcesOperation op = new MoveResourcesOperation(new IResource[] {
-				testFolder, testSubFolder }, targetPath,
-				"testRedundantSubFolderMove");
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-		IFolder movedFolder = getWorkspaceRoot().getFolder(targetPathWithName);
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snap.isValid(targetProject));
-
-		undo();
-		movedFolder = getWorkspaceRoot().getFolder(targetPathWithName);
-		assertFalse("Move undo failed", movedFolder.exists());
-		assertTrue("Folder content was altered on undo", snap
-				.isValid(testProject));
-
-		redo();
-		movedFolder = getWorkspaceRoot().getFolder(targetPathWithName);
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snap.isValid(targetProject));
-	}
-
-	public void testRedundantFolderFileMoveUndoRedo()
-			throws ExecutionException, CoreException {
-		IPath targetPath = targetProject.getFullPath();
-		IPath targetPathWithName = targetPath.append(testFolder.getName());
-		MoveResourcesOperation op = new MoveResourcesOperation(new IResource[] {
-				testFolder, testFileWithContent }, targetPath,
-				"testRedundantFolderFileMove");
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-		IFolder movedFolder = getWorkspaceRoot().getFolder(targetPathWithName);
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snap.isValid(targetProject));
-
-		undo();
-		movedFolder = getWorkspaceRoot().getFolder(targetPathWithName);
-		assertFalse("Move undo failed", movedFolder.exists());
-		assertTrue("Folder content was altered on undo", snap
-				.isValid(testProject));
-
-		redo();
-		movedFolder = getWorkspaceRoot().getFolder(targetPathWithName);
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snap.isValid(targetProject));
-	}
-
-	public void testFolderCopyUndoRedo() throws ExecutionException,
-			CoreException {
-		// copying with same name to a new project
-		CopyResourcesOperation op = new CopyResourcesOperation(
-				new IResource[] { testFolder }, targetProject.getFullPath(),
-				"testFolderCopy");
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-		IFolder copiedFolder = targetProject.getFolder(testFolder.getName());
-		assertTrue("Folder copy failed", copiedFolder.exists());
-		assertTrue("Source folder was altered", snap.isValid(testProject));
-		assertTrue("Folder copy does not match", snap.isValid(targetProject));
-
-		undo();
-		assertFalse("Copy undo failed", copiedFolder.exists());
-
-		redo();
-		assertTrue("Folder not restored properly on redo", snap
-				.isValid(targetProject));
-		assertTrue("Source folder was altered", snap.isValid(testProject));
-	}
-
-	public void testFolderCopyLinkUndoRedo() throws ExecutionException,
-			CoreException {
-		// copying with same name to a new project
-		CopyResourcesOperation op = new CopyResourcesOperation(
-				new IResource[] { testLinkedFolder }, targetProject
-						.getFullPath(), "testLinkedFolderCopy");
-		FolderSnapshot snap = new FolderSnapshot(testLinkedFolder);
-		execute(op);
-		IFolder copiedFolder = targetProject.getFolder(testLinkedFolder
-				.getName());
-		assertTrue("Folder copy failed", copiedFolder.exists());
-		assertTrue("Source folder was altered", snap.isValid(testFolder));
-		assertTrue("Folder copy does not match", snap.isValid(targetProject));
-
-		undo();
-		assertFalse("Copy undo failed", copiedFolder.exists());
-
-		redo();
-		assertTrue("Folder not restored properly on redo", snap
-				.isValid(targetProject));
-		assertTrue("Source folder was altered", snap.isValid(testFolder));
-	}
-
-	public void testFolderCopyRenameUndoRedo() throws ExecutionException,
-			CoreException {
-		// copying with a different name to the same project
-		CopyResourcesOperation op = new CopyResourcesOperation(testFolder,
-				testProject.getFullPath().append(TEST_NEWFOLDER_NAME),
-				"testFolderCopyRename");
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-
-		IFolder copiedFolder = testProject.getFolder(TEST_NEWFOLDER_NAME);
-		assertTrue("Folder copy failed", copiedFolder.exists());
-		assertTrue("Source folder was altered", snap.isValid(testProject));
-		snap.name = TEST_NEWFOLDER_NAME;
-		assertTrue("Folder copy does not match", snap.isValid(testProject));
-
-		undo();
-		assertFalse("Copy undo failed", copiedFolder.exists());
-
-		redo();
-		assertTrue("Folder not restored properly on redo", snap
-				.isValid(testProject));
-		snap.name = TEST_FOLDER_NAME;
-		assertTrue("Source folder was altered", snap.isValid(testProject));
-
-	}
-
-	public void testFolderRenameUndoRedo() throws ExecutionException,
-			CoreException {
-		MoveResourcesOperation op = new MoveResourcesOperation(testFolder,
-				testProject.getFullPath().append(TEST_NEWFOLDER_NAME),
-				"testFolderRename");
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-		IFolder renamedFolder = testProject.getFolder(TEST_NEWFOLDER_NAME);
-		assertTrue("Project rename failed", renamedFolder.exists());
-		snap.name = TEST_NEWFOLDER_NAME;
-		assertTrue("Folder content was altered on rename", snap
-				.isValid(testProject));
-
-		undo();
-		snap.name = TEST_FOLDER_NAME;
-		assertTrue("Folder content was altered on undo rename", snap
-				.isValid(testProject));
-		assertFalse("Undo rename failed", renamedFolder.exists());
-
-		redo();
-		snap.name = TEST_NEWFOLDER_NAME;
-		assertTrue("Folder content was altered on redo rename", snap
-				.isValid(testProject));
-	}
-
-	public void testFolderDeleteUndoRedo() throws ExecutionException,
-			CoreException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testSubFolder }, "testFolderDelete", false);
-		FolderSnapshot snap = new FolderSnapshot(testSubFolder);
-		execute(op);
-		assertFalse("Folder delete failed", testSubFolder.exists());
-		undo();
-		assertTrue("Folder recreation failed", testSubFolder.exists());
-		assertTrue("Folder content was altered on undo", snap
-				.isValid(testSubFolder.getParent()));
-		redo();
-		assertFalse("Redo delete failed", testSubFolder.exists());
-	}
-
-	public void testNestedRedundantFolderDeleteUndoRedo()
-			throws ExecutionException, CoreException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testFolder, testSubFolder },
-				"testNestedRedundantFolderDelete", false);
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-		assertFalse("Folder delete failed", testFolder.exists());
-		undo();
-		assertTrue("Folder recreation failed", testFolder.exists());
-		assertTrue("SubFolder recreation failed", testSubFolder.exists());
-		assertTrue("Folder content was altered on undo", snap
-				.isValid(testFolder.getParent()));
-		redo();
-		assertFalse("Redo delete failed", testFolder.exists());
-	}
-
-	public void testNestedRedundantFileDeleteUndoRedo()
-			throws ExecutionException, CoreException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testFolder, testFileWithContent },
-				"testNestedRedundantFileDelete", false);
-		FolderSnapshot snap = new FolderSnapshot(testFolder);
-		execute(op);
-		assertFalse("Folder delete failed", testFolder.exists());
-		undo();
-		assertTrue("Folder recreation failed", testFolder.exists());
-		assertTrue("SubFolder recreation failed", testSubFolder.exists());
-		assertTrue("File recreation failed", testFileWithContent.exists());
-		assertTrue("Folder content was altered on undo", snap
-				.isValid(testFolder.getParent()));
-		redo();
-		assertFalse("Redo delete failed", testFolder.exists());
-	}
-
-	public void testFolderDeleteLinkedUndoRedo() throws ExecutionException,
-			CoreException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testLinkedFolder }, "testFolderDeleteLinked",
-				false);
-		FolderSnapshot snap = new FolderSnapshot(testLinkedFolder);
-		execute(op);
-		assertFalse("Folder delete failed", testLinkedFolder.exists());
-		undo();
-		assertTrue("Folder recreation failed", testLinkedFolder.exists());
-		assertTrue("Folder content was altered on undo", snap
-				.isValid(testLinkedFolder.getParent()));
-		redo();
-		assertFalse("Redo delete failed", testLinkedFolder.exists());
-	}
-
-	public void testFileCreateLeafUndoRedo() throws ExecutionException,
-			CoreException {
-		IFile file = getWorkspaceRoot().getFile(
-				testProject.getFullPath().append(TEST_NEWFILE_NAME));
-		CreateFileOperation op = new CreateFileOperation(file, null,
-				getContents(getRandomString()), "testFileCreateLeaf");
-		assertFalse("File should not exist before test is run", file.exists());
-		execute(op);
-		assertTrue("File creation failed", file.exists());
-		FileSnapshot snapshot = new FileSnapshot(file);
-		undo();
-		assertFalse("File deletion failed", file.exists());
-		redo();
-		assertTrue("File recreation failed", file.exists());
-		assertTrue("File content improperly restored", snapshot.isValid(file
-				.getParent()));
-	}
-
-	public void testFileCreateNestedInProjectUndoRedo()
-			throws ExecutionException, CoreException {
-		// Uses file name with non-existent folder parents
-		IFile file = getWorkspaceRoot().getFile(
-				testProject.getFullPath().append(TEST_NEWNESTEDFILE_NAME));
-		CreateFileOperation op = new CreateFileOperation(file, null,
-				getContents(getRandomString()), "testFileCreateNestedInProject");
-		assertFalse("File should not exist before test is run", file.exists());
-		execute(op);
-		assertTrue("File creation failed", file.exists());
-		FileSnapshot snapshot = new FileSnapshot(file);
-
-		undo();
-		assertFalse("File deletion failed", file.exists());
-		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFILE_NAME);
-		path.removeLastSegments(path.segmentCount() - 1);
-		IFolder parent = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(path));
-		assertFalse("Deletion of created parents failed", parent.exists());
-
-		redo();
-		assertTrue("File recreation failed", file.exists());
-		assertTrue("File content improperly restored", snapshot.isValid(file
-				.getParent()));
-	}
-
-	public void testFileCreateNestedInFolderUndoRedo()
-			throws ExecutionException, CoreException {
-		// Uses file name with non-existent folder parents.
-		// Uses subfolder as a parent
-		IFile file = getWorkspaceRoot().getFile(
-				testSubFolder.getFullPath().append(TEST_NEWNESTEDFILE_NAME));
-		CreateFileOperation op = new CreateFileOperation(file, null,
-				getContents(getRandomString()),
-				"testFileCreateNestedInSubfolder");
-		assertFalse("File should not exist before test is run", file.exists());
-		execute(op);
-		assertTrue("File creation failed", file.exists());
-		FileSnapshot snapshot = new FileSnapshot(file);
-
-		undo();
-		assertFalse("File deletion failed", file.exists());
-		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFILE_NAME);
-		path.removeLastSegments(path.segmentCount() - 1);
-		IFolder parent = getWorkspaceRoot().getFolder(
-				testSubFolder.getFullPath().append(path));
-		assertFalse("Deletion of created parents failed", parent.exists());
-
-		redo();
-		assertTrue("File recreation failed", file.exists());
-		assertTrue("File content improperly restored", snapshot.isValid(file
-				.getParent()));
-	}
-
-	public void testFileCreateLinkedUndoRedo() throws ExecutionException,
-			CoreException {
-		IFile file = getWorkspaceRoot().getFile(
-				testProject.getFullPath().append(TEST_NEWFILE_NAME));
-		CreateFileOperation op = new CreateFileOperation(file,
-				testFileWithContent.getLocationURI(), null,
-				"testFileCreateLink");
-		assertFalse("File should not exist before test is run", file.exists());
-
-		execute(op);
-		assertTrue("File creation failed", file.exists());
-		assertTrue("File was not created as link", file.isLinked());
-		assertEquals("Linked content not equal", readContent(file),
-				readContent(testFileWithContent));
-
-		undo();
-		assertFalse("File deletion failed", file.exists());
-
-		redo();
-		assertTrue("File was not created as link", file.isLinked());
-		assertEquals("Linked content not equal", readContent(file),
-				readContent(testFileWithContent));
-	}
-
-	public void testFileCreateLinkedNestedUndoRedo() throws ExecutionException,
-			CoreException {
-		IFile file = getWorkspaceRoot().getFile(
-				testProject.getFullPath().append(TEST_NEWNESTEDFILE_NAME));
-		CreateFileOperation op = new CreateFileOperation(file,
-				testFileWithContent.getLocationURI(), null,
-				"testFileCreateLinkNested");
-		assertFalse("File should not exist before test is run", file.exists());
-
-		execute(op);
-		assertTrue("File creation failed", file.exists());
-		assertTrue("File was not created as link", file.isLinked());
-		assertEquals("Linked content not equal", readContent(file),
-				readContent(testFileWithContent));
-
-		undo();
-		assertFalse("File deletion failed", file.exists());
-		// Ensure all created parents are gone, too
-		IPath path = new Path(TEST_NEWNESTEDFILE_NAME);
-		path.removeLastSegments(path.segmentCount() - 1);
-		IFolder parent = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(path));
-		assertFalse("Deletion of created parents failed", parent.exists());
-
-		redo();
-		assertTrue("File was not created as link", file.isLinked());
-		assertEquals("Linked content not equal", readContent(file),
-				readContent(testFileWithContent));
-	}
-
-	public void testFileMoveUndoRedo() throws ExecutionException, CoreException {
-		// Moving from a folder in one project to the top level of another
-		// project
-		IPath targetPath = targetProject.getFullPath().append(
-				testFileWithContent.getName());
-		MoveResourcesOperation op = new MoveResourcesOperation(
-				testFileWithContent, targetPath, "testFileMove");
-		FileSnapshot snap = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFile movedFile = getWorkspaceRoot().getFile(targetPath);
-		assertTrue("File move failed", movedFile.exists());
-		assertTrue("File content was altered", snap.isValid(targetProject));
-
-		undo();
-		movedFile = getWorkspaceRoot().getFile(targetPath);
-		assertFalse("Move undo failed", movedFile.exists());
-		assertTrue("File content was altered on undo", snap.isValid(testFolder));
-
-		redo();
-		movedFile = getWorkspaceRoot().getFile(targetPath);
-		assertTrue("File move failed", movedFile.exists());
-		assertTrue("File content was altered", snap.isValid(targetProject));
-	}
-
-	public void testFileMoveAndOverwriteUndoRedo() throws ExecutionException,
-			CoreException {
-		// Moving a file from a folder inside that the same folder on top of an
-		// existent file
-		IPath sourcePath = emptyTestFile.getFullPath();
-		IPath targetPath = testFileWithContent.getFullPath();
-		MoveResourcesOperation op = new MoveResourcesOperation(emptyTestFile,
-				targetPath, "testFileMoveOverwrite");
-		FileSnapshot source = new FileSnapshot(emptyTestFile);
-		FileSnapshot overwritten = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFile sourceFile = getWorkspaceRoot().getFile(sourcePath);
-		assertFalse("File move failed", sourceFile.exists());
-		source.name = TEST_RANDOMFILE_NAME;
-		assertTrue("Source content was altered at target", source
-				.isValid(testFolder));
-
-		undo();
-		assertTrue("File restore failed", sourceFile.exists());
-		assertTrue("Overwritten file was not restored", overwritten
-				.isValid(testFolder));
-		source.name = TEST_EMPTYFILE_NAME;
-		assertTrue("Source file content was not restored", source
-				.isValid(testFolder));
-
-		redo();
-		sourceFile = getWorkspaceRoot().getFile(sourcePath);
-		assertFalse("File move failed", sourceFile.exists());
-		source.name = TEST_RANDOMFILE_NAME;
-		assertTrue("Source content was altered at target", source
-				.isValid(testFolder));
-	}
-
-	public void testFileCopyUndoRedo() throws ExecutionException, CoreException {
-		// copying with same name to a new project
-		CopyResourcesOperation op = new CopyResourcesOperation(
-				new IResource[] { testFileWithContent }, targetProject
-						.getFullPath(), "testFileCopy");
-		FileSnapshot snap = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFile copiedFile = targetProject.getFile(testFileWithContent.getName());
-		assertTrue("File copy failed", copiedFile.exists());
-		assertTrue("Source file was altered", snap.isValid(testFolder));
-		assertTrue("File copy does not match", snap.isValid(targetProject));
-
-		undo();
-		assertFalse("Copy undo failed", copiedFile.exists());
-
-		redo();
-		assertTrue("File not restored properly on redo", snap
-				.isValid(targetProject));
-		assertTrue("Source file was altered", snap.isValid(testFolder));
-	}
-
-	public void testFileCopyLinkUndoRedo() throws ExecutionException,
-			CoreException {
-		// copying with same name to a new project
-		CopyResourcesOperation op = new CopyResourcesOperation(
-				new IResource[] { testLinkedFile },
-				targetProject.getFullPath(), "testFileLinkCopy");
-		FileSnapshot snap = new FileSnapshot(testLinkedFile);
-		execute(op);
-		IFile copiedFile = targetProject.getFile(testLinkedFile.getName());
-		assertTrue("File copy failed", copiedFile.exists());
-		assertTrue("Source file was altered", snap.isValid(testFolder));
-		assertTrue("File copy does not match", snap.isValid(targetProject));
-
-		undo();
-		assertFalse("Copy undo failed", copiedFile.exists());
-
-		redo();
-		assertTrue("File not restored properly on redo", snap
-				.isValid(targetProject));
-		assertTrue("Source file was altered", snap.isValid(testFolder));
-	}
-
-	public void testFileCopyRenameUndoRedo() throws ExecutionException,
-			CoreException {
-		// copying with a different name to the same project
-		CopyResourcesOperation op = new CopyResourcesOperation(
-				testFileWithContent, testProject.getFullPath().append(
-						TEST_NEWFILE_NAME), "testFileCopyRename");
-		FileSnapshot snap = new FileSnapshot(testFileWithContent);
-		execute(op);
-
-		IFile copiedFile = testProject.getFile(TEST_NEWFILE_NAME);
-		assertTrue("File copy failed", copiedFile.exists());
-		assertTrue("Source folder was altered", snap.isValid(testFolder));
-		snap.name = TEST_NEWFILE_NAME;
-		assertTrue("File copy does not match", snap.isValid(testProject));
-
-		undo();
-		assertFalse("Copy undo failed", copiedFile.exists());
-
-		redo();
-		assertTrue("File not restored properly on redo", snap
-				.isValid(testProject));
-		snap.name = TEST_RANDOMFILE_NAME;
-		assertTrue("Source folder was altered", snap.isValid(testFolder));
-	}
-
-	public void testFileCopyAndOverwriteUndoRedo() throws ExecutionException,
-			CoreException {
-		// Copying from a file in a folder to the same folder on top of an
-		// existent file
-		IPath targetPath = testFileWithContent.getFullPath();
-		CopyResourcesOperation op = new CopyResourcesOperation(emptyTestFile,
-				targetPath, "testFileMoveOverwrite");
-		FileSnapshot source = new FileSnapshot(emptyTestFile);
-		FileSnapshot overwritten = new FileSnapshot(testFileWithContent);
-		execute(op);
-		assertTrue("Source content was altered", source.isValid(testFolder));
-		source.name = TEST_RANDOMFILE_NAME;
-		assertTrue("Source content was altered at target", source
-				.isValid(testFolder));
-
-		undo();
-		assertTrue("Overwritten file was not restored", overwritten
-				.isValid(testFolder));
-		source.name = TEST_EMPTYFILE_NAME;
-		assertTrue("Source file content was not restored", source
-				.isValid(testFolder));
-
-		redo();
-		source.name = TEST_RANDOMFILE_NAME;
-		assertTrue("Source content was altered at target", source
-				.isValid(testFolder));
-	}
-
-	public void testFileRenameUndoRedo() throws ExecutionException,
-			CoreException {
-		MoveResourcesOperation op = new MoveResourcesOperation(
-				testFileInProject, testProject.getFullPath().append(
-						TEST_NEWFILE_NAME), "testFileRename");
-		FileSnapshot snap = new FileSnapshot(testFileInProject);
-		execute(op);
-		IFile renamedFile = testProject.getFile(TEST_NEWFILE_NAME);
-		assertTrue("File rename failed", renamedFile.exists());
-		snap.name = TEST_NEWFILE_NAME;
-		assertTrue("File content was altered on rename", snap
-				.isValid(testProject));
-
-		undo();
-		snap.name = TEST_FILEINPROJECT_NAME;
-		assertTrue("File content was altered on undo rename", snap
-				.isValid(testProject));
-		assertFalse("Undo rename failed", renamedFile.exists());
-
-		redo();
-		snap.name = TEST_NEWFILE_NAME;
-		assertTrue("File content was altered on redo rename", snap
-				.isValid(testProject));
-	}
-
-	public void testFileDeleteUndoRedo() throws ExecutionException,
-			CoreException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testFileWithContent }, "testFileDelete",
-				false);
-		FileSnapshot snap = new FileSnapshot(testFileWithContent);
-		execute(op);
-		assertFalse("File delete failed", testFileWithContent.exists());
-		undo();
-		assertTrue("File recreation failed", testFileWithContent.exists());
-		assertTrue("File content was altered on undo", snap
-				.isValid(testFileWithContent.getParent()));
-		redo();
-		assertFalse("Redo delete failed", testFileWithContent.exists());
-	}
-
-	public void testFileLinkedDeleteUndoRedo() throws ExecutionException,
-			CoreException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testLinkedFile }, "testLinkedFileDelete",
-				false);
-		FileSnapshot snap = new FileSnapshot(testLinkedFile);
-		execute(op);
-		assertFalse("File delete failed", testLinkedFile.exists());
-		undo();
-		assertTrue("File recreation failed", testLinkedFile.exists());
-		assertTrue("File content was altered on undo", snap
-				.isValid(testLinkedFile.getParent()));
-		redo();
-		assertFalse("Redo delete failed", testLinkedFile.exists());
-	}
-
-	public void testFileAndFolderMoveSameDests() throws ExecutionException,
-			CoreException {
-		IPath targetPath = targetProject.getFullPath();
-		MoveResourcesOperation op = new MoveResourcesOperation(new IResource[] {
-				testSubFolder, testFileWithContent }, targetPath,
-				"testFileAndFolderMove");
-		FolderSnapshot snapFolder = new FolderSnapshot(testSubFolder);
-		FileSnapshot snapFile = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFolder movedFolder = getWorkspaceRoot().getFolder(
-				targetPath.append(TEST_SUBFOLDER_NAME));
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snapFolder
-				.isValid(targetProject));
-		IFile movedFile = getWorkspaceRoot().getFile(
-				targetPath.append(TEST_RANDOMFILE_NAME));
-		assertTrue("File move failed", movedFile.exists());
-		assertTrue("File content was altered", snapFile.isValid(targetProject));
-
-		undo();
-		movedFolder = getWorkspaceRoot().getFolder(
-				targetPath.append(TEST_SUBFOLDER_NAME));
-		assertFalse("Move undo failed", movedFolder.exists());
-		assertTrue("Folder content was altered on undo", snapFolder
-				.isValid(testFolder));
-		movedFile = getWorkspaceRoot().getFile(
-				targetPath.append(TEST_RANDOMFILE_NAME));
-		assertFalse("Move undo failed", movedFolder.exists());
-		assertTrue("File content was altered on undo", snapFile
-				.isValid(testFolder));
-
-		redo();
-		movedFolder = getWorkspaceRoot().getFolder(
-				targetPath.append(TEST_SUBFOLDER_NAME));
-		assertTrue("Folder move failed", movedFolder.exists());
-		assertTrue("Folder content was altered", snapFolder
-				.isValid(targetProject));
-		movedFile = getWorkspaceRoot().getFile(
-				targetPath.append(TEST_RANDOMFILE_NAME));
-		assertTrue("File move failed", movedFile.exists());
-		assertTrue("File content was altered", snapFile.isValid(targetProject));
-	}
-
-	public void testFileAndFolderCopyDifferentDests()
-			throws ExecutionException, CoreException {
-		// copying a file and folder to different destination projects,
-		// assigning new names to a new project
-		// The folder gets a new name, the file retains the old name
-		CopyResourcesOperation op = new CopyResourcesOperation(new IResource[] {
-				testSubFolder, testFileWithContent }, new IPath[] {
-				testProject.getFullPath().append(TEST_NEWFOLDER_NAME),
-				targetProject.getFullPath().append(
-						testFileWithContent.getName()) },
-				"testFileAndFolderDifferentDests");
-		FolderSnapshot snapFolder = new FolderSnapshot(testSubFolder);
-		FileSnapshot snapFile = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFolder copiedFolder = testProject.getFolder(TEST_NEWFOLDER_NAME);
-		assertTrue("Folder copy failed", copiedFolder.exists());
-		assertTrue("Source folder was altered", snapFolder.isValid(testFolder));
-		snapFolder.name = TEST_NEWFOLDER_NAME;
-		assertTrue("Folder copy does not match", snapFolder
-				.isValid(testProject));
-		IFile copiedFile = targetProject.getFile(testFileWithContent.getName());
-		assertTrue("File copy failed", copiedFile.exists());
-		assertTrue("Source file was altered", snapFile.isValid(testFolder));
-		assertTrue("File copy does not match", snapFile.isValid(targetProject));
-
-		undo();
-		assertFalse("Copy folder undo failed", copiedFolder.exists());
-		assertFalse("Copy file undo failed", copiedFile.exists());
-		snapFolder.name = testSubFolder.getName();
-		assertTrue("Source file was altered during undo", snapFile
-				.isValid(testFolder));
-		assertTrue("Source folder was altered during undo", snapFolder
-				.isValid(testFolder));
-
-		redo();
-		assertTrue("Source folder was altered during redo", snapFolder
-				.isValid(testFolder));
-		snapFolder.name = TEST_NEWFOLDER_NAME;
-		assertTrue("Folder copy does not match on redo", snapFolder
-				.isValid(testProject));
-		assertTrue("Source file was altered during redo", snapFile
-				.isValid(testFolder));
-		assertTrue("File copy does not match on redo", snapFile
-				.isValid(targetProject));
-	}
-
-	public void testFileAndFolderCopyDifferentNames()
-			throws ExecutionException, CoreException {
-		// copying a file and folder to a new project, assigning new names to a
-		// new project
-		CopyResourcesOperation op = new CopyResourcesOperation(new IResource[] {
-				testSubFolder, testFileWithContent }, new IPath[] {
-				targetProject.getFullPath().append(TEST_NEWFOLDER_NAME),
-				targetProject.getFullPath().append(TEST_NEWFILE_NAME) },
-				"testFileAndFolderDifferentNames");
-		FolderSnapshot snapFolder = new FolderSnapshot(testSubFolder);
-		FileSnapshot snapFile = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFolder copiedFolder = targetProject.getFolder(TEST_NEWFOLDER_NAME);
-		assertTrue("Folder copy failed", copiedFolder.exists());
-		assertTrue("Source folder was altered", snapFolder.isValid(testFolder));
-		snapFolder.name = TEST_NEWFOLDER_NAME;
-		assertTrue("Folder copy does not match", snapFolder
-				.isValid(targetProject));
-		IFile copiedFile = targetProject.getFile(TEST_NEWFILE_NAME);
-		assertTrue("File copy failed", copiedFile.exists());
-		assertTrue("Source file was altered", snapFile.isValid(testFolder));
-		snapFile.name = TEST_NEWFILE_NAME;
-		assertTrue("File copy does not match", snapFile.isValid(targetProject));
-
-		undo();
-		assertFalse("Copy folder undo failed", copiedFolder.exists());
-		assertFalse("Copy file undo failed", copiedFile.exists());
-		snapFolder.name = testSubFolder.getName();
-		assertTrue("Source file was altered during undo", snapFolder
-				.isValid(testFolder));
-		snapFile.name = testFileWithContent.getName();
-		assertTrue("Source folder was altered during undo", snapFile
-				.isValid(testFolder));
-
-		redo();
-		assertTrue("Source folder was altered during redo", snapFolder
-				.isValid(testFolder));
-		snapFolder.name = TEST_NEWFOLDER_NAME;
-		assertTrue("Folder copy does not match on redo", snapFolder
-				.isValid(targetProject));
-		assertTrue("Source file was altered during redo", snapFile
-				.isValid(testFolder));
-		snapFile.name = TEST_NEWFILE_NAME;
-		assertTrue("File copy does not match on redo", snapFile
-				.isValid(targetProject));
-	}
-
-	public void testRedundantFileAndFolderCopy() throws CoreException,
-			ExecutionException {
-		// copying a file which is a child of a folder, keeping same name to a
-		// new project
-		CopyResourcesOperation op = new CopyResourcesOperation(new IResource[] {
-				testFolder, testFileWithContent }, targetProject.getFullPath(),
-				"testRedundantFileAndFolderCopy");
-		FolderSnapshot snapFolder = new FolderSnapshot(testFolder);
-		FileSnapshot snapFile = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFolder copiedFolder = targetProject.getFolder(testFolder.getName());
-		assertTrue("Folder copy failed", copiedFolder.exists());
-		assertTrue("Source folder was altered", snapFolder.isValid(testProject));
-		assertTrue("Folder copy does not match", snapFolder
-				.isValid(targetProject));
-		IFile copiedFile = targetProject.getFile(testFileWithContent.getName());
-		assertFalse("Nested file should not have been copied to new location",
-				copiedFile.exists());
-		copiedFile = testFolder.getFile(testFileWithContent.getName());
-		assertTrue("Nested file should have been copied to existing parent",
-				copiedFile.exists());
-		assertTrue("Source file was altered", snapFile.isValid(testFolder));
-
-		undo();
-		assertFalse("Copy folder undo failed", copiedFolder.exists());
-		assertTrue("Source file was altered during undo", snapFile
-				.isValid(testFolder));
-		assertTrue("Source folder was altered during undo", snapFolder
-				.isValid(testProject));
-
-		redo();
-		assertTrue("Source folder was altered during redo", snapFolder
-				.isValid(testProject));
-		assertTrue("Folder copy does not match on redo", snapFolder
-				.isValid(targetProject));
-		assertTrue("Source file was altered during redo", snapFile
-				.isValid(testFolder));
-	}
-
-	public void testFileAndFolderCopySameDests() throws ExecutionException,
-			CoreException {
-		// copying a file and folder, keeping same name to a new project
-		CopyResourcesOperation op = new CopyResourcesOperation(new IResource[] {
-				testSubFolder, testFileWithContent }, targetProject
-				.getFullPath(), "testFileAndFolderCopy");
-		FolderSnapshot snapFolder = new FolderSnapshot(testSubFolder);
-		FileSnapshot snapFile = new FileSnapshot(testFileWithContent);
-		execute(op);
-		IFolder copiedFolder = targetProject.getFolder(testSubFolder.getName());
-		assertTrue("Folder copy failed", copiedFolder.exists());
-		assertTrue("Source folder was altered", snapFolder.isValid(testFolder));
-		assertTrue("Folder copy does not match", snapFolder
-				.isValid(targetProject));
-		IFile copiedFile = targetProject.getFile(testFileWithContent.getName());
-		assertTrue("File copy failed", copiedFile.exists());
-		assertTrue("Source file was altered", snapFile.isValid(testFolder));
-		assertTrue("File copy does not match", snapFile.isValid(targetProject));
-
-		undo();
-		assertFalse("Copy folder undo failed", copiedFolder.exists());
-		assertFalse("Copy file undo failed", copiedFile.exists());
-		assertTrue("Source file was altered during undo", snapFile
-				.isValid(testFolder));
-		assertTrue("Source folder was altered during undo", snapFolder
-				.isValid(testFolder));
-
-		redo();
-		assertTrue("Source folder was altered during redo", snapFolder
-				.isValid(testFolder));
-		assertTrue("Folder copy does not match on redo", snapFolder
-				.isValid(targetProject));
-		assertTrue("Source file was altered during redo", snapFile
-				.isValid(testFolder));
-		assertTrue("File copy does not match on redo", snapFile
-				.isValid(targetProject));
-	}
-
-	public void testWorkspaceUndoMonitor() throws ExecutionException,
-			CoreException {
-		// First we copy the project to the target location
-		// This gives us lots of stuff to delete in order to manufacture some
-		// workspace changes
-		CopyProjectOperation op = new CopyProjectOperation(testProject,
-				TEST_NEWPROJECT_NAME, null, "testProjectCopy");
-		execute(op);
-		// Now we are going to create a new file
-		IFile file = getWorkspaceRoot().getFile(
-				testProject.getFullPath().append(TEST_NEWFILE_NAME));
-		CreateFileOperation op2 = new CreateFileOperation(file, null,
-				getContents(getRandomString()), "testFileCreateLeaf");
-		execute(op2);
-		assertTrue("Operation should be valid", op2.canUndo());
-		int changes = 0;
-		// back door delete the new file
-		file.delete(true, getMonitor());
-		changes++;
-		// op still doesn't know it's invalid because undo monitor hasn't
-		// had changes to force checking it.
-		assertTrue("Operation should be valid", op2.canUndo());
-
-		// Now perform a bunch of changes
-		emptyTestFile.delete(true, getMonitor());
-		changes++;
-		testFileInProject.delete(true, getMonitor());
-		changes++;
-		testFileInSubFolder.delete(true, getMonitor());
-		changes++;
-		testFileWithContent.delete(true, getMonitor());
-		changes++;
-		testLinkedFile.delete(true, getMonitor());
-		changes++;
-		testLinkedFolder.delete(true, getMonitor());
-		changes++;
-		testSubFolder.delete(true, getMonitor());
-		changes++;
-		testFolder.delete(true, getMonitor());
-		changes++;
-		testFolder = testProject.getFolder(TEST_FOLDER_NAME);
-		testFolder.create(true, true, getMonitor());
-		changes++;
-		testFileInProject = testProject.getFile(TEST_FILEINPROJECT_NAME);
-		testFileInProject.create(getContents(getRandomString()), true,
-				getMonitor());
-		changes++;
-		testSubFolder = testFolder.getFolder(TEST_SUBFOLDER_NAME);
-		testSubFolder.create(true, true, getMonitor());
-		changes++;
-		emptyTestFile = testFolder.getFile(TEST_EMPTYFILE_NAME);
-		emptyTestFile.create(getContents(FILE_CONTENTS_EMPTY), true,
-				getMonitor());
-		changes++;
-
-		assertTrue("Need to make at least the minimum number of changes",
-				changes >= NUM_CHANGES);
-		assertFalse("Operation should be invalid", op2.canUndo());
-	}
-
-	public void testProjectCopyUndoInvalid() throws ExecutionException,
-			CoreException {
-		// Create a new copy of a project
-		CopyProjectOperation op = new CopyProjectOperation(testProject,
-				TEST_NEWPROJECT_NAME, null, "testProjectCopyUndoInvalid");
-		execute(op);
-		// Now we "back door" delete one of the files in the source project
-		emptyTestFile.delete(true, getMonitor());
-		// The operation should know that undoing is dangerous
-		undoExpectFail(op);
-	}
-
-	public void test162655() throws ExecutionException, CoreException {
-		DeleteResourcesOperation op = new DeleteResourcesOperation(
-				new IResource[] { testProject }, "testProjectDelete", false);
-		execute(op);
-		assertFalse("Project delete failed", testProject.exists());
-
-		// recreate outside the scope of undo
-		testProject = getWorkspace().getRoot().getProject(TEST_PROJECT_NAME);
-		testProject.create(getMonitor());
-		testProject.open(getMonitor());
-		assertTrue("Project creation failed", testProject.exists());
-
-		// Now that project exists again, the undo should fail.
-		undoExpectFail(op);
-	}
-	
-	public void test250125() throws ExecutionException {
-		IFolder folder = getWorkspaceRoot().getFolder(
-				testProject.getFullPath().append(TEST_NEWFOLDER_NAME));
-		CreateFolderOperation op = new CreateFolderOperation(folder, null,
-				"testFolderCreateLeaf");
-		assertFalse("Folder should not exist before test is run", folder
-				.exists());
-		IFile file = getWorkspaceRoot().getFile(folder.getFullPath().append(TEST_NEWFILE_NAME));
-		CreateFileOperation fileOp = new CreateFileOperation(file, null, null, "file operation");
-		assertFalse("File should not exist yet", file.exists());
-		assertTrue("op state is valid", op.computeExecutionStatus(getMonitor()).isOK());
-		assertTrue("op state is valid", fileOp.computeExecutionStatus(getMonitor()).isOK());
-		execute(op);
-		assertTrue("Folder should exist", folder.exists());
-		// Now that the folder is created, the file op which also was to create the container
-		// should be invalid
-		assertFalse("op state should be invalid", fileOp.computeExecutionStatus(getMonitor()).isOK());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/DeprecatedFontPreferenceTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/DeprecatedFontPreferenceTestCase.java
deleted file mode 100644
index bebd67c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/DeprecatedFontPreferenceTestCase.java
+++ /dev/null
@@ -1,128 +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.ui.tests.preferences;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * The FontPreferenceTestCase tests adding fonts to
- * the preference store and what occurs if the values
- * are bogus
- */
-
-public class DeprecatedFontPreferenceTestCase extends UITestCase {
-
-    public String BAD_FONT_DEFINITION = "BadFont-regular-10";
-
-    public String TEST_FONT_ID = "org.eclipse.jface.tests.preference.testfont";
-
-    public String MISSING_FONT_ID = "org.eclipse.jface.tests.preference.missingfont";
-
-    private IPreferenceStore preferenceStore;
-
-    /**
-     * Constructor for FontPreferenceTestCase.
-     * @param testName
-     */
-    public DeprecatedFontPreferenceTestCase(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        AbstractUIPlugin plugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        preferenceStore = plugin.getPreferenceStore();
-
-        //Set up the bogus entry for the bad first test
-        FontData bogusData = new FontData();
-        bogusData.setName("BadData");
-        bogusData.setHeight(11);
-        FontData[] storedValue = new FontData[2];
-
-        //We assume here that the text font is OK
-        storedValue[0] = bogusData;
-        storedValue[1] = (PreferenceConverter.getDefaultFontDataArray(
-                preferenceStore, JFaceResources.TEXT_FONT))[0];
-        PreferenceConverter
-                .setValue(preferenceStore, TEST_FONT_ID, storedValue);
-        PreferenceConverter.setDefault(preferenceStore, TEST_FONT_ID,
-                storedValue);
-    }
-
-    /**
-     * Test for a valid font like the test font. The first good one
-     * we should find should be the first one in the list.
-     */
-
-    public void testGoodFontDefinition() {
-
-        FontRegistry fontRegistry = JFaceResources.getFontRegistry();
-        FontData[] currentTextFonts = PreferenceConverter.getFontDataArray(
-                preferenceStore, JFaceResources.TEXT_FONT);
-        FontData bestFont = fontRegistry.filterData(currentTextFonts, Display
-                .getCurrent())[0];
-
-        //Assert that it is the first font that we get as the
-        //valid one
-        assertEquals(bestFont.getName(), currentTextFonts[0].getName());
-        assertEquals(bestFont.getHeight(), currentTextFonts[0].getHeight());
-    }
-
-    /**
-     * Test that if the first font in the list is bad that the 
-     * second one comes back as valid.
-     */
-
-    public void testBadFirstFontDefinition() {
-
-        FontRegistry fontRegistry = JFaceResources.getFontRegistry();
-        FontData[] currentTestFonts = PreferenceConverter.getFontDataArray(
-                preferenceStore, TEST_FONT_ID);
-        FontData bestFont = fontRegistry.filterData(currentTestFonts, Display
-                .getCurrent())[0];
-
-        //Assert that it is the second font that we get as the
-        //valid one
-        assertEquals(bestFont.getName(), currentTestFonts[1].getName());
-        assertEquals(bestFont.getHeight(), currentTestFonts[1].getHeight());
-    }
-
-    /**
-     * Test that the no valid font is returned when the entry
-     * is missing.
-     */
-
-    public void testNoFontDefinition() {
-
-        FontRegistry fontRegistry = JFaceResources.getFontRegistry();
-        FontData[] currentTestFonts = PreferenceConverter.getFontDataArray(
-                preferenceStore, MISSING_FONT_ID);
-        FontData bestFont = fontRegistry.filterData(currentTestFonts, Display
-                .getCurrent())[0];
-
-        FontData[] systemFontData = Display.getCurrent().getSystemFont()
-                .getFontData();
-
-        //Assert that the first font is the system font
-        assertEquals(bestFont.getName(), systemFontData[0].getName());
-        assertEquals(bestFont.getHeight(), systemFontData[0].getHeight());
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/FontPreferenceTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/FontPreferenceTestCase.java
deleted file mode 100644
index c0c13e1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/FontPreferenceTestCase.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.preferences;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.ILogger;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * The FontPreferenceTestCase tests adding fonts to
- * the preference store and what occurs if the values
- * are bogus
- */
-
-public class FontPreferenceTestCase extends UITestCase {
-
-    public String BAD_FONT_DEFINITION = "BadFont-regular-10";
-
-    public String TEST_FONT_ID = "org.eclipse.jface.tests.preference.testfont";
-
-    public String MISSING_FONT_ID = "org.eclipse.jface.tests.preference.missingfont";
-
-    private IPreferenceStore preferenceStore;
-
-    /**
-     * Constructor for FontPreferenceTestCase.
-     * @param testName
-     */
-    public FontPreferenceTestCase(String testName) {
-        super(testName);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        AbstractUIPlugin plugin = (AbstractUIPlugin) Platform
-                .getPlugin(PlatformUI.PLUGIN_ID);
-        preferenceStore = plugin.getPreferenceStore();
-
-        //Set up the bogus entry for the bad first test
-        FontData bogusData = new FontData();
-        bogusData.setName("BadData");
-        bogusData.setHeight(11);
-        FontData[] storedValue = new FontData[2];
-
-        //We assume here that the text font is OK
-        storedValue[0] = bogusData;
-        storedValue[1] = (PreferenceConverter.getDefaultFontDataArray(
-                preferenceStore, JFaceResources.TEXT_FONT))[0];
-        PreferenceConverter
-                .setValue(preferenceStore, TEST_FONT_ID, storedValue);
-        PreferenceConverter.setDefault(preferenceStore, TEST_FONT_ID,
-                storedValue);
-
-    }
-
-    /**
-     * Test for a valid font like the test font. The first good one
-     * we should find should be the first one in the list.
-     */
-
-    public void testGoodFontDefinition() {
-
-        FontRegistry fontRegistry = JFaceResources.getFontRegistry();
-        FontData[] currentTextFonts = PreferenceConverter.getFontDataArray(
-                preferenceStore, JFaceResources.TEXT_FONT);
-        FontData[] bestFont = fontRegistry.bestDataArray(currentTextFonts,
-                Display.getCurrent());
-
-        //Assert that it is the first font that we get as the
-        //valid one
-        assertEquals(bestFont[0].getName(), currentTextFonts[0].getName());
-        assertEquals(bestFont[0].getHeight(), currentTextFonts[0].getHeight());
-    }
-
-    /**
-     * Test that if the first font in the list is bad that the 
-     * second one comes back as valid.
-     */
-
-    public void testBadFirstFontDefinition() {
-
-        FontRegistry fontRegistry = JFaceResources.getFontRegistry();
-        FontData[] currentTestFonts = PreferenceConverter.getFontDataArray(
-                preferenceStore, TEST_FONT_ID);
-        FontData[] bestFont = fontRegistry.filterData(currentTestFonts,
-                Display.getCurrent());
-
-        //Assert that it is the second font that we get as the
-        //valid one
-        assertEquals(bestFont[0].getName(), currentTestFonts[1].getName());
-        assertEquals(bestFont[0].getHeight(), currentTestFonts[1].getHeight());
-    }
-
-    /**
-     * Test that the no valid font is returned when the entry
-     * is missing.
-     */
-
-    public void testNoFontDefinition() {
-
-        FontRegistry fontRegistry = JFaceResources.getFontRegistry();
-        FontData[] currentTestFonts = PreferenceConverter.getFontDataArray(
-                preferenceStore, MISSING_FONT_ID);
-        FontData[] bestFont = fontRegistry.filterData(currentTestFonts,
-                Display.getCurrent());
-
-        FontData[] systemFontData = Display.getCurrent().getSystemFont()
-                .getFontData();
-
-        //Assert that the first font is the system font
-        assertEquals(bestFont[0].getName(), systemFontData[0].getName());
-        assertEquals(bestFont[0].getHeight(), systemFontData[0].getHeight());
-    }
-    
-    /**
-     * The test added to assess results of accessing FontRegistry from a non-UI 
-     * thread. See bug 230360.
-     */
-    public void testNonUIThreadFontAccess() {
-    	// create a separate font registry to avoid contaminating other tests
-		final FontRegistry fontRegistry = new FontRegistry("org.eclipse.jface.resource.jfacefonts"); //$NON-NLS-1$
-		// pre-calculate the default font; calling it in worker thread will only cause SWTException
-		Font defaultFont = fontRegistry.defaultFont();
-		defaultFont.toString(); // avoids compiler warning
-		
-		// redirect logging so that we catch the error log
-		final boolean[] errorLogged = new boolean[] { false };
-		ILogger logger = Policy.getLog();
-		Policy.setLog(new ILogger() {
-			public void log(IStatus status) {
-				if (status != null && status.getSeverity() == IStatus.ERROR && status.getPlugin().equals(Policy.JFACE))
-					errorLogged[0] = true;
-			}} );
-		
-		
-    	Job job = new Job("Non-UI thread FontRegistry Access Test") {
-			protected IStatus run(IProgressMonitor monitor) {
-				// this should produce no exception, but should log a error 
-				boolean created = checkFont(fontRegistry);
-				assertFalse(created);
-				return Status.OK_STATUS;
-			}
-    	};
-		job.schedule();
-		try {
-			job.join();
-			assertTrue(errorLogged[0]);
-		} catch (InterruptedException e) {
-			fail("Worker thread was interrupted in the FontRegistry access test");
-		} finally {
-			Policy.setLog(logger);
-		}
-		
-		// now let's try to create the same font in the UI thread and check that the correct 
-		boolean created = checkFont(fontRegistry);
-		assertTrue(created);
-    }
-    
-	public boolean checkFont(final FontRegistry fontRegistry) {
-		// Create a font description that will use default font with height increased by 20
-		FontData[] data = fontRegistry.defaultFont().getFontData();
-		int defaultHeight = data[0].getHeight();
-		int testHeight = defaultHeight + 20;
-		data[0].setHeight(testHeight);
-		fontRegistry.put("testFont", data);
-
-		// Get the font from the registry
-		Font testFont = fontRegistry.get("testFont"); // getItalic("testFont");
-
-		// Check the font size
-		FontData[] receivedData = testFont.getFontData();
-		int receivedHeight = receivedData[0].getHeight();
-		// giving a bit leeway to the OS: the size might not match exactly
-		// so test size not being the default rather then being exactly the testHeight
-		return (receivedHeight != defaultHeight); 
-	}
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ListenerRemovalTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ListenerRemovalTestCase.java
deleted file mode 100644
index 38463b2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ListenerRemovalTestCase.java
+++ /dev/null
@@ -1,91 +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.tests.preferences;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class ListenerRemovalTestCase extends UITestCase {
-
-	class TestPropertyListener implements IPropertyChangeListener {
-		boolean listened = false;
-
-		/**
-		 * 
-		 */
-		public TestPropertyListener() {
-			super();
-		}
-
-		public void propertyChange(PropertyChangeEvent event) {
-			listened = true;
-		}
-	}
-
-	/**
-	 * @param testName
-	 */
-	public ListenerRemovalTestCase(String testName) {
-		super(testName);
-	}
-
-	public void testRemoveLastListener() {
-
-		TestPropertyListener testListener = new TestPropertyListener();
-		IPreferenceStore preferenceStore = TestPlugin.getDefault()
-				.getPreferenceStore();
-
-		// Check it is found when added
-		preferenceStore.addPropertyChangeListener(testListener);
-		testListener.listened = false;
-		preferenceStore.setValue(TestPreferenceInitializer.TEST_LISTENER_KEY,
-				TestPreferenceInitializer.TEST_SET_VALUE);
-		assertTrue("Listener not hit on set value", testListener.listened);
-		testListener.listened = false;
-
-		// Check it is found when set to default
-		preferenceStore
-				.setToDefault(TestPreferenceInitializer.TEST_LISTENER_KEY);
-		assertTrue("Listener not hit on default value", testListener.listened);
-		testListener.listened = false;
-
-		// Check that the listener is removed
-		preferenceStore.removePropertyChangeListener(testListener);
-		preferenceStore.setValue(TestPreferenceInitializer.TEST_LISTENER_KEY,
-				TestPreferenceInitializer.TEST_SET_VALUE);
-		assertFalse("Listener hit when removed", testListener.listened);
-		
-//		 Check it is found when set to default
-		preferenceStore
-				.setToDefault(TestPreferenceInitializer.TEST_LISTENER_KEY);
-
-		// Check that you can add it again
-		preferenceStore.addPropertyChangeListener(testListener);
-		testListener.listened = false;
-		preferenceStore.setValue(TestPreferenceInitializer.TEST_LISTENER_KEY,
-				TestPreferenceInitializer.TEST_SET_VALUE);
-		assertTrue("Listener not hit on second set value",
-				testListener.listened);
-		testListener.listened = false;
-
-		preferenceStore.removePropertyChangeListener(testListener);
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesDialogTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesDialogTest.java
deleted file mode 100644
index 16a3227..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesDialogTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.preferences;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.IPreferencePage;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.preference.PreferenceNode;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.tests.preferences.SamplePreferencePage;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-/**
- * Added as a result of the bug 226547:
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=226547
- * 
- * @since 3.5
- */
-public class PreferencesDialogTest extends TestCase {
-
-	static ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.ui.tests",
-					"icons/anything.gif");
-
-	public Shell shell;
-
-	protected void setUp() throws Exception {
-		super.setUp();
-		shell = new Shell();
-	}
-
-	protected void tearDown() throws Exception {
-		if (shell != null) {
-			shell.dispose();
-			shell = null;
-		}
-		super.tearDown();
-	}
-
-	/**
-	 * Test preference dialog with a custom manager, custom nodes.
-	 */
-	public void testCustomManager() {
-		PreferenceManager manager = new PreferenceManager();
-
-		IPreferencePage page1 = new SamplePreferencePage("Top", "First Sample");
-		IPreferenceNode node1 = new PreferenceNode("Top", page1);
-		manager.addToRoot(node1);
-
-		IPreferencePage page2 = new SamplePreferencePage("Sub", "Second Sample");
-		IPreferenceNode node2 = new PreferenceNode("Sub", page2);
-		node1.add(node2);
-
-		PreferenceDialog dialog = null;
-		try {
-			dialog = new PreferenceDialog(shell, manager);
-			dialog.setBlockOnOpen(false);
-
-			// Check that we can create a dialog with custom preference manager.
-			// Should be no exceptions.
-			dialog.open();
-		} finally {
-			if (dialog != null)
-				dialog.close();
-		}
-	}
-
-	/**
-	 * Test preference dialog with a Workbench manager adding custom nodes to it.
-	 */
-	public void testMixedNodes() {
-		PreferenceManager manager = PlatformUI.getWorkbench().getPreferenceManager();
-
-		IPreferencePage page1 = new SamplePreferencePage("Top", "First Sample");
-		IPreferenceNode node1 = new PreferenceNode("Top", page1);
-		manager.addToRoot(node1);
-
-		IPreferencePage page2 = new SamplePreferencePage("Sub", "Second Sample");
-		IPreferenceNode node2 = new PreferenceNode("Sub", page2);
-		manager.addToRoot(node2);
-		
-		PreferenceDialog dialog = null;
-		try {
-			dialog = new PreferenceDialog(shell, manager);
-			dialog.setBlockOnOpen(false);
-
-			// Check that we can create a dialog with custom preference manager.
-			// Should be no exceptions.
-			dialog.open();
-		} finally {
-			if (dialog != null)
-				dialog.close();
-			manager.remove(node2);
-			manager.remove(node1);
-		}
-	}
-	
-	/**
-	 * Test preference dialog with a custom manager, custom nodes, this time
-	 * using an icon.
-	 */
-	public void testWithIcons() {
-		PreferenceManager manager = new PreferenceManager();
-
-		IPreferencePage page1 = new SamplePreferencePage("Zzz", "First Sample");
-		PreferenceNode node1 = new PreferenceNode("one", "Zzz", descriptor,
-				SamplePreferencePage.class.getName());
-		node1.setPage(page1);
-		manager.addToRoot(node1);
-
-		IPreferencePage page2 = new SamplePreferencePage("Aaa", "Second Sample");
-		PreferenceNode node2 = new PreferenceNode("two", "Aaa", descriptor,
-				SamplePreferencePage.class.getName());
-		node2.setPage(page2);
-		manager.addToRoot(node2);
-
-		PreferenceDialog dialog = null;
-		try {
-			dialog = new PreferenceDialog(shell, manager);
-			dialog.setBlockOnOpen(false);
-
-			// check that we can create a dialog with custom preference manager
-			// with
-			// pages with icons
-			dialog.open();
-		} finally {
-			if (dialog != null)
-				dialog.close();
-		}
-	}
-
-	/**
-	 * To test sorting elements we need to access internal class
-	 * FilteredPreferenceDialog. It is available  from the IWorkbench#getPreferenceManager(),
-	 * but using it would bring all workbench pages into this test which could
-	 * impact sorting.
-	 */
-	public void testWithSorting() {
-		PreferenceManager manager = new PreferenceManager();
-
-		IPreferencePage page1 = new SamplePreferencePage("Zzz", "First Sample");
-		IPreferenceNode node1 = new PreferenceNode("abc", page1);
-		manager.addToRoot(node1);
-		IPreferencePage page2 = new SamplePreferencePage("Aaa", "Second Sample");
-		IPreferenceNode node2 = new PreferenceNode("www", page2);
-		manager.addToRoot(node2);
-
-		FilteredPreferenceDialog dialog = null;
-		try {
-			dialog = new FilteredPreferenceDialog(shell, manager) {};
-			dialog.setBlockOnOpen(false);
-
-			// check that we can create a dialog with custom preference manager
-			dialog.open();
-
-			// The page with title "Aaa" should be the first one despite being
-			// added second
-			assertEquals(page2, dialog.getCurrentPage());
-
-			// Also, "Aaa" should be the first tree item
-			TreeItem item = dialog.getTreeViewer().getTree().getItem(0);
-			assertEquals("Aaa", item.getText());
-		} finally {
-			if (dialog != null)
-				dialog.close();
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java
deleted file mode 100644
index bf9e2a0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/PreferencesTestSuite.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.preferences;
-
-import org.eclipse.ui.tests.propertyPages.PropertyPageEnablementTest;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test suite for preferences.
- */
-public class PreferencesTestSuite extends TestSuite {
-
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static Test suite() {
-		return new PreferencesTestSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public PreferencesTestSuite() {
-		addTest(new TestSuite(FontPreferenceTestCase.class));
-		addTest(new TestSuite(DeprecatedFontPreferenceTestCase.class));
-		addTest(new TestSuite(ScopedPreferenceStoreTestCase.class));
-		addTest(new TestSuite(WorkingCopyPreferencesTestCase.class));
-		addTest(new TestSuite(PropertyPageEnablementTest.class));
-		addTest(new TestSuite(ListenerRemovalTestCase.class));
-		addTest(new TestSuite(PreferencesDialogTest.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java
deleted file mode 100644
index ddcb119..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/ScopedPreferenceStoreTestCase.java
+++ /dev/null
@@ -1,100 +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.tests.preferences;
-
-import java.io.*;
-import org.eclipse.core.runtime.preferences.*;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class ScopedPreferenceStoreTestCase extends UITestCase {
-
-	final String DEFAULT_DEFAULT_STRING = "";
-
-	public ScopedPreferenceStoreTestCase(String name) {
-		super(name);
-	}
-
-	public void testNeedsSaving() {
-		IScopeContext context = new InstanceScope();
-		String qualifier = "org.eclipse.ui.tests.preferences";
-		ScopedPreferenceStore store = new ScopedPreferenceStore(context,
-				qualifier);
-		String key = "key1";
-		String value = "value1";
-
-		// nothing there
-		assertFalse("0.1", store.needsSaving());
-		assertFalse("0.2", store.contains(key));
-		assertEquals("0.3", DEFAULT_DEFAULT_STRING, store.getString(key));
-
-		// set the value
-		store.setValue(key, value);
-		assertTrue("1.0", store.needsSaving());
-		assertTrue("1.1", store.contains(key));
-		assertEquals("1.2", value, store.getString(key));
-
-		// flush
-		try {
-			store.save();
-		} catch (IOException e) {
-			fail("2.99", e);
-		}
-
-		// do the test
-		assertFalse("3.0", store.needsSaving());
-
-		// change the node outside of the scoped store
-		String key2 = "key2";
-		String value2 = "value2";
-		IEclipsePreferences node = context.getNode(qualifier);
-		node.put(key2, value2);
-		assertEquals("4.0", value2, node.get(key2, null));
-		assertFalse("4.1", store.needsSaving());
-	}
-	
-	public void testRestoreDefaults() {
-		IScopeContext context = new InstanceScope();
-		String qualifier = "org.eclipse.ui.tests.preferences#testRestoreDefaults";
-		ScopedPreferenceStore store = new ScopedPreferenceStore(context, qualifier);
-		final String key = "key";
-		final String value = "value";
-		
-		// setup and initial assertions
-		assertFalse("0.1", store.contains(key));
-		assertEquals("0.2", DEFAULT_DEFAULT_STRING, store.getString(key));
-
-		// set the value
-		store.setValue(key, value);
-		assertTrue("1.0", store.contains(key));
-		assertEquals("1.1", value, store.getString(key));
-		
-		final boolean[] found = new boolean[1];
-		IPropertyChangeListener listener= new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				if (key.equals(event.getProperty()) && value.equals(event.getOldValue()))
-					found[0] = true;
-			}
-		};
-		store.addPropertyChangeListener(listener);
-		
-		// restore the default
-		store.setToDefault(key);
-		assertFalse("2.0", store.contains(key));
-		assertEquals("2.1", DEFAULT_DEFAULT_STRING, store.getString(key));
-
-		// check it
-		assertTrue("3.0", found[0]);
-}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/TestPreferenceInitializer.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/TestPreferenceInitializer.java
deleted file mode 100644
index f19006c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/TestPreferenceInitializer.java
+++ /dev/null
@@ -1,46 +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.tests.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.ui.tests.TestPlugin;
-
-/**
- * @since 3.3
- * 
- */
-public class TestPreferenceInitializer extends AbstractPreferenceInitializer {
-
-	public static String TEST_LISTENER_KEY = "TEST_LISTENER";
-
-	public static String TEST_SET_VALUE = "TEST_SET_VALUE";
-
-	public static String TEST_DEFAULT_VALUE = "TEST_DEFAULT_VALUE";
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-
-		IScopeContext context = new DefaultScope();
-		IEclipsePreferences node = context.getNode(TestPlugin.getDefault()
-				.getBundle().getSymbolicName());
-		node.put(TEST_LISTENER_KEY, TEST_DEFAULT_VALUE);
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/WorkingCopyPreferencesTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/WorkingCopyPreferencesTestCase.java
deleted file mode 100644
index e651ce6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/preferences/WorkingCopyPreferencesTestCase.java
+++ /dev/null
@@ -1,79 +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.tests.preferences;
-
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.ui.preferences.WorkingCopyManager;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.osgi.service.prefs.BackingStoreException;
-
-public class WorkingCopyPreferencesTestCase extends UITestCase {
-
-	public WorkingCopyPreferencesTestCase(String name) {
-		super(name);
-	}
-
-	/*
-	 * See bug 94926 - WorkingCopyPreferences.remove(key) not working
-	 */
-	public void testRemoveKey() {
-
-		// set the value in the real node
-		String key = "key";
-		String value = "value";
-		IEclipsePreferences eNode = new InstanceScope().getNode("working.copy.tests.testRemoveKey");
-		eNode.put(key, value);
-		assertEquals("1.0", value, eNode.get(key, null));
-
-		// create a working copy
-		WorkingCopyManager manager = new WorkingCopyManager();
-		IEclipsePreferences prefs = manager.getWorkingCopy(eNode);
-		prefs.remove(key);
-
-		// apply the changes
-		try {
-			manager.applyChanges();
-		} catch (BackingStoreException e) {
-			fail("2.99", e);
-		}
-
-		// see if our change was applied
-		assertNull("3.0", eNode.get(key, null));
-	}
-
-	public void testRemoveNode() {
-		// set the value in the real node
-		String key = "key";
-		String value = "value";
-		IEclipsePreferences eNode = new InstanceScope().getNode("working.copy.tests.testRemoveKey");
-		eNode.put(key, value);
-		assertEquals("1.0", value, eNode.get(key, null));
-
-		// create a working copy
-		WorkingCopyManager manager = new WorkingCopyManager();
-		IEclipsePreferences prefs = manager.getWorkingCopy(eNode);
-		
-		// remove the node
-		try {
-			prefs.removeNode();
-		} catch (BackingStoreException e) {
-			fail("2.99", e);
-		}
-
-		// apply the changes
-		try {
-			manager.applyChanges();
-		} catch (BackingStoreException e) {
-			fail("3.99", e);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/Bug48589Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/Bug48589Test.java
deleted file mode 100644
index d70e16f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/Bug48589Test.java
+++ /dev/null
@@ -1,88 +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.ui.tests.presentations;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.custom.CTabFolder;
-import org.eclipse.swt.custom.CTabItem;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.EditorSashContainer;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test for Bug 48589. This verifies that the editor tabs escape the "&"
- * character correctly. This creates a test project, and creates a file within
- * its whose name contains an ampersand. It then retrieves the text of the tab
- * item and checks to see that it is appropriate.
- * 
- * @since 3.1
- */
-public final class Bug48589Test extends UITestCase {
-
-    /**
-     * Constructs a new instance of this test case.
-     * 
-     * @param testName
-     *            The name of the test
-     */
-    public Bug48589Test(final String testName) {
-        super(testName);
-    }
-
-    /**
-     * Test for Bug 48589. This verifies that the editor tabs escape the "&"
-     * character correctly. This creates a test project, and creates a file
-     * within its whose name contains an ampersand. It then retrieves the text
-     * of the tab item and checks to see that it is appropriate.
-     * 
-     * @throws CoreException
-     *             If the project cannot be created or opened.
-     */
-    public void testFileNameWithAmpersand() throws CoreException {
-        // Open a new test window.
-        final IWorkbenchWindow window = openTestWindow();
-
-        // Open a new project, with a text file.
-        final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-        final IProject testProject = workspace.getRoot().getProject(
-                "Bug 48589 Project");
-        testProject.create(null);
-        testProject.open(null);
-        final String fileName = "A&B.txt";
-        final IFile textFile = testProject.getFile(fileName);
-        final ByteArrayInputStream inputStream = new ByteArrayInputStream(
-                fileName.getBytes());
-        textFile.create(inputStream, true, null);
-        IDE.openEditor(window.getActivePage(),
-                textFile, true);
-        
-        // Get the current title of the text editor.
-        final WorkbenchPage page = (WorkbenchPage) window.getActivePage();
-        final EditorSashContainer container = (EditorSashContainer) page.getEditorPresentation().getLayoutPart();
-        final CTabFolder tabFolder = (CTabFolder) container.getActiveWorkbook().getControl();
-        final CTabItem item = tabFolder.getItem(0);
-        final String actualTitle = item.getText();
-        
-        // Verify that the title is escaped, as expected.
-        final String expectedTitle = "A&&B.txt";
-        assertEquals("The title should be equal to the ", expectedTitle,
-                actualTitle);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/PresentationsTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/PresentationsTestSuite.java
deleted file mode 100644
index a0b4f44..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/presentations/PresentationsTestSuite.java
+++ /dev/null
@@ -1,34 +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.tests.presentations;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests for all areas of the presentations code for the platform.
- */
-public final class PresentationsTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite. This is required to use the JUnit Launcher.
-     */
-    public static final Test suite() {
-        return new PresentationsTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public PresentationsTestSuite() {
-        addTest(new TestSuite(Bug48589Test.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/DummyJob.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/DummyJob.java
deleted file mode 100644
index 202d657..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/DummyJob.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.progress;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.jobs.Job;
-
-/**
- * 
- * A job that completes very quicky and returns the specified status
- * 
- * @since 3.6
- * @author Prakash G.R. (grprakash@in.ibm.com)
- * 
- */
-public class DummyJob extends Job {
-
-	private final IStatus status;
-
-	public DummyJob(String name, IStatus status) {
-		super(name);
-		this.status = status;
-	}
-
-	protected IStatus run(IProgressMonitor monitor) {
-
-		monitor.beginTask(getName() + " starts now", 10);
-		for (int i = 0; i < 10; i++) {
-			try {
-				Thread.sleep(10);
-			} catch (InterruptedException e) {
-				// ignore
-			}
-			monitor.worked(1);
-			if (monitor.isCanceled())
-				break;
-		}
-		return status;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressContantsTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressContantsTest.java
deleted file mode 100644
index 714830a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressContantsTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.progress;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.progress.JobInfo;
-import org.eclipse.ui.internal.progress.ProgressInfoItem;
-import org.eclipse.ui.internal.progress.ProgressView;
-import org.eclipse.ui.progress.IProgressConstants;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.6
- * @author Prakash G.R. (grprakash@in.ibm.com)
- */
-public class ProgressContantsTest extends UITestCase {
-
-	/**
-	 * @param testName
-	 */
-	public ProgressContantsTest(String testName) {
-		super(testName);
-	}
-
-	public void testKeepProperty() throws Exception {
-
-		IWorkbenchWindow window = openTestWindow("org.eclipse.ui.resourcePerspective");
-		ProgressView progressView = (ProgressView) window.getActivePage().showView(IPageLayout.ID_PROGRESS_VIEW);
-		assertNotNull(progressView);
-		processEvents();
-
-		DummyJob okJob = new DummyJob("OK Job", Status.OK_STATUS);
-		okJob.setProperty(IProgressConstants.KEEP_PROPERTY, Boolean.TRUE);
-		okJob.schedule();
-
-		DummyJob warningJob = new DummyJob("Warning Job", new Status(IStatus.WARNING, TestPlugin.PLUGIN_ID, "Warning message"));
-		warningJob.setProperty(IProgressConstants.KEEP_PROPERTY, Boolean.TRUE);
-		warningJob.schedule();
-
-		processEvents();
-
-		okJob.join();
-		warningJob.join();
-
-		processEvents();
-
-		boolean okJobFound = false;
-		boolean warningJobFound = false;
-
-		ProgressInfoItem[] progressInfoItems = progressView.getViewer().getProgressInfoItems();
-		for (int i = 0; i < progressInfoItems.length; i++) {
-			JobInfo[] jobInfos = progressInfoItems[i].getJobInfos();
-			for (int j = 0; j < jobInfos.length; j++) {
-				Job job = jobInfos[j].getJob();
-				if (job.equals(okJob)) {
-					okJobFound = true;
-				}
-				if (job.equals(warningJob)) {
-					warningJobFound = true;
-				}
-			}
-		}
-
-		assertTrue(okJobFound);
-		assertTrue(warningJobFound);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressTestSuite.java
deleted file mode 100644
index 8df4805..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/progress/ProgressTestSuite.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.progress;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test suite for the Progress View and related API
- * 
- * @since 3.6
- * @author Prakash G.R. (grprakash@in.ibm.com)
- * 
- */
-public class ProgressTestSuite extends TestSuite {
-
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static final Test suite() {
-		return new ProgressTestSuite();
-	}
-
-	public ProgressTestSuite() {
-		addTest(new TestSuite(ProgressContantsTest.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/PropertyPageEnablementTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/PropertyPageEnablementTest.java
deleted file mode 100644
index 01d995f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/PropertyPageEnablementTest.java
+++ /dev/null
@@ -1,167 +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.tests.propertyPages;
-
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager;
-import org.eclipse.ui.internal.dialogs.RegistryPageContributor;
-import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-
-/**
- * @since 3.2
- * 
- */
-public class PropertyPageEnablementTest extends AbstractNavigatorTest {
-
-	/**
-	 * Create an instance of the receiver.
-	 * 
-	 * @param testName
-	 */
-	public PropertyPageEnablementTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		createTestFile();
-	}
-
-	/**
-	 * Test the AND condition property page which should only work for files.
-	 * 
-	 */
-	public void testAndPage() {
-
-		Collection contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testFile);
-		assertFalse("Has no file pages", contributors.isEmpty());
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			if (element.getPageId().equals("org.eclipse.ui.tests.and"))
-				return;
-		}
-		assertTrue("And property page for file not found", false);
-
-		contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testFolder);
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			assertFalse("Matching folder for AND", element.getPageId().equals(
-					"org.eclipse.ui.tests.and"));
-
-		}
-
-		contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testProject);
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			assertFalse("Matching project for AND", element.getPageId().equals(
-					"org.eclipse.ui.tests.and"));
-
-		}
-
-	}
-
-	/**
-	 * Test the OR condition property page which should only work for files and
-	 * folders.
-	 * 
-	 */
-	public void testOrPage() {
-
-		boolean found = false;
-		Collection contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testFile);
-		assertFalse("Has no file pages", contributors.isEmpty());
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			if (element.getPageId().equals("org.eclipse.ui.tests.or"))
-				found = true;
-		}
-		assertTrue("OR property page for file not found", found);
-
-		found = false;
-		contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testFolder);
-		assertFalse("Has no folder pages", contributors.isEmpty());
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			if (element.getPageId().equals("org.eclipse.ui.tests.or"))
-				found = true;
-		}
-		assertTrue("OR property page for file not found", found);
-
-		contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testProject);
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			assertFalse("Matching project for OR", element.getPageId().equals(
-					"org.eclipse.ui.tests.or"));
-
-		}
-
-	}
-
-	/**
-	 * Test the instance of property page which should only work for projects.
-	 * 
-	 */
-	public void testInstanceOfPage() {
-
-		Collection contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testFile);
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			assertFalse("Matching file for instanceof", element.getPageId()
-					.equals("org.eclipse.ui.tests.instanceof"));
-		}
-
-		contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testFolder);
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			assertFalse("Matching folder for instanceof", element.getPageId()
-					.equals("org.eclipse.ui.tests.instanceof"));
-
-		}
-
-		boolean found = false;
-		contributors = PropertyPageContributorManager.getManager()
-				.getApplicableContributors(testProject);
-		assertFalse("Has no project pages", contributors.isEmpty());
-		for (Iterator iter = contributors.iterator(); iter.hasNext();) {
-			RegistryPageContributor element = (RegistryPageContributor) iter
-					.next();
-			if (element.getPageId().equals("org.eclipse.ui.tests.instanceof"))
-				found = true;
-		}
-		assertTrue("instanceof property page for project not found", found);
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TableResizePropertyPage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TableResizePropertyPage.java
deleted file mode 100644
index b7e86de..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TableResizePropertyPage.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.propertyPages;
-
-import org.eclipse.jface.layout.TableColumnLayout;
-import org.eclipse.jface.viewers.ColumnWeightData;
-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.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * The TableResizePropertyPage is an example of a property page with this resize
- * capability
- * 
- * @since 3.3
- * 
- */
-public class TableResizePropertyPage extends PropertyPage {
-
-	/**
-	 * Constructor for TableResizePropertyPage.
-	 */
-	public TableResizePropertyPage() {
-		super();
-	}
-
-	private void addFirstSection(Composite parent) {
-
-		Composite enclosingComposite = new Composite(parent, SWT.NONE);
-		enclosingComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		enclosingComposite.setLayout(layout);
-
-		Table table = new Table(enclosingComposite, SWT.H_SCROLL | SWT.V_SCROLL
-				| SWT.MULTI | SWT.FULL_SELECTION);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		TableColumnLayout tableLayout = new TableColumnLayout();
-		
-		GridData data = new GridData(GridData.FILL_BOTH);
-		table.setLayoutData(data);
-
-		table.setHeaderVisible(true);
-		TableColumn column = new TableColumn(table, SWT.NULL);
-		column.setText("Column 1");
-		tableLayout.setColumnData(column, new ColumnWeightData(50, 100, true));
-
-		column = new TableColumn(table, SWT.NULL);
-		column.setText("Column 2");
-		
-		tableLayout.setColumnData(column,new ColumnWeightData(50, 100, true));
-		enclosingComposite.setLayout(tableLayout);
-
-	}
-
-	/**
-	 * @see PreferencePage#createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.FILL);
-		data.grabExcessHorizontalSpace = true;
-		composite.setLayoutData(data);
-
-		addFirstSection(composite);
-
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		return true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TreeResizePropertyPage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TreeResizePropertyPage.java
deleted file mode 100644
index 05ed8c0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertyPages/TreeResizePropertyPage.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.propertyPages;
-
-
-import org.eclipse.jface.layout.TreeColumnLayout;
-import org.eclipse.jface.viewers.ColumnWeightData;
-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.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * The TreeResizePropertyPage is an example of a property page with this resize
- * capability
- * 
- * @since 3.3
- * 
- */
-public class TreeResizePropertyPage extends PropertyPage {
-
-	/**
-	 * Constructor for TableResizePropertyPage.
-	 */
-	public TreeResizePropertyPage() {
-		super();
-	}
-
-	private void addFirstSection(Composite parent) {
-
-		Composite enclosingComposite = new Composite(parent, SWT.NONE);
-		enclosingComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		enclosingComposite.setLayout(layout);
-
-		Tree tree = new Tree(enclosingComposite, SWT.H_SCROLL | SWT.V_SCROLL
-				| SWT.MULTI | SWT.FULL_SELECTION);
-		tree.setHeaderVisible(true);
-		tree.setLinesVisible(true);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		tree.setLayoutData(data);
-		
-		TreeColumnLayout treeLayout = new TreeColumnLayout();
-
-		tree.setHeaderVisible(true);
-		TreeColumn column = new TreeColumn(tree, SWT.NULL);
-		column.setText("Column 1");
-		treeLayout.setColumnData(column, new ColumnWeightData(50, 100, true));
-
-		column = new TreeColumn(tree, SWT.NULL);
-		column.setText("Column 2");
-		treeLayout.setColumnData(column, new ColumnWeightData(50, 100, true));
-
-		enclosingComposite.setLayout(treeLayout);
-
-	}
-
-	/**
-	 * @see PreferencePage#createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.FILL);
-		data.grabExcessHorizontalSpace = true;
-		composite.setLayoutData(data);
-
-		addFirstSection(composite);
-
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		return true;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/AbstractPropertySheetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/AbstractPropertySheetTest.java
deleted file mode 100644
index b4668a4..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/AbstractPropertySheetTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.properties.PropertySheet;
-
-/**
- * @since 3.4
- * 
- */
-public abstract class AbstractPropertySheetTest extends UITestCase {
-
-	private static final String PIN_PROPERTY_SHEET_ACTION_ID_PREFIX = "org.eclipse.ui.views.properties.PinPropertySheetAction";
-	protected IWorkbenchPage activePage;
-	protected PropertySheet propertySheet;
-
-	public AbstractPropertySheetTest(String testName) {
-		super(testName);
-	}
-
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		IWorkbenchWindow workbenchWindow = openTestWindow();
-		activePage = workbenchWindow.getActivePage();
-	}
-	
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-		activePage = null;
-		propertySheet = null;
-	}
-
-	/**
-	 * @return the count of PropertySheets
-	 */
-	protected int countPropertySheetViews() {
-		int count = 0;
-		IViewReference[] views = activePage.getViewReferences();
-		for (int i = 0; i < views.length; i++) {
-			IViewReference ref = views[i];
-			if (ref.getId().equals(IPageLayout.ID_PROP_SHEET)) {
-				count++;
-			}
-		}
-		return count;
-	}
-
-	protected IAction getPinPropertySheetAction(PropertySheet propertySheet) {
-		IActionBars actionBars = propertySheet.getViewSite().getActionBars();
-		IToolBarManager toolBarManager = actionBars.getToolBarManager();
-		IContributionItem[] items = toolBarManager.getItems();
-		for (int i = 0; i < items.length; i++) {
-			IContributionItem contributionItem = items[i];
-			if (contributionItem.getId() != null
-					&& contributionItem.getId().startsWith(
-							PIN_PROPERTY_SHEET_ACTION_ID_PREFIX)) {
-				IAction action = ((ActionContributionItem) contributionItem)
-						.getAction();
-				return action;
-			}
-		}
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ComboBoxPropertyDescriptorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ComboBoxPropertyDescriptorTest.java
deleted file mode 100644
index a148461..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ComboBoxPropertyDescriptorTest.java
+++ /dev/null
@@ -1,94 +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.tests.propertysheet;
-
-import junit.framework.TestCase;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.ui.views.properties.ComboBoxLabelProvider;
-import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor;
-
-/**
- * Test for new functionality pertaining to Bug 21013.
- * 
- * @since 3.0
- */
-public class ComboBoxPropertyDescriptorTest extends TestCase {
-
-    private String ID = "ID"; //$NON-NLS-1$
-
-    private String NAME = "NAME"; //$NON-NLS-1$
-
-    private String[] values = { "One", "Two", "Three" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-    private ComboBoxPropertyDescriptor descriptor;
-
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#setUp()
-     */
-    protected void setUp() throws Exception {
-        super.setUp();
-        descriptor = new ComboBoxPropertyDescriptor(ID, NAME, values);
-    }
-
-    /* (non-Javadoc)
-     * @see junit.framework.TestCase#tearDown()
-     */
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-    /**
-     * Tests the case where the user does not set an ILabelProvider.
-     */
-    public void testGetDefaultLabelProvider() {
-        ILabelProvider provider = descriptor.getLabelProvider();
-        assertEquals("Default label provider is of the wrong type", //$NON-NLS-1$ 
-                ComboBoxLabelProvider.class, provider.getClass());
-
-        for (int i = 0; i < values.length; i++) {
-            String expected = values[i];
-            assertEquals("Wrong label provided", //$NON-NLS-1$
-                    expected, provider.getText(new Integer(i)));
-
-        }
-
-        testWrongLabel(provider, new Object());
-        testWrongLabel(provider, null);
-        testWrongLabel(provider, new Integer(-1));
-        testWrongLabel(provider, new Integer(values.length));
-    }
-
-    /**
-     * Tests that a bad element object (an Integer outside the accepted range, 
-     * null or an other Object) returns the empty String.
-     * @param provider the provider to test against.
-     * @param element the element to test.
-     */
-    public void testWrongLabel(ILabelProvider provider, Object element) {
-        assertEquals("Wrong label provided in bad case", //$NON-NLS-1$
-                "", //$NON-NLS-1$
-                provider.getText(element));
-    }
-
-    /**
-     * Tests the case where the user sets their own ILabelProvider.
-     */
-    public void testSetGetLabelProvider() {
-        ILabelProvider provider = new LabelProvider();
-        descriptor.setLabelProvider(provider);
-        ILabelProvider descProvider = descriptor.getLabelProvider();
-        assertSame("Wrong label provider", //$NON-NLS-1$
-                provider, descProvider);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java
deleted file mode 100644
index 6e3b86a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/MultiInstancePropertySheetTest.java
+++ /dev/null
@@ -1,493 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.ILogListener;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.session.NonRestorableView;
-import org.eclipse.ui.views.properties.NewPropertySheetHandler;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-/**
- * @since 3.4
- */
-public class MultiInstancePropertySheetTest extends AbstractPropertySheetTest {
-
-	/**
-	 * TestPropertySheetPage exposes certain members for testability
-	 */
-	private TestPropertySheetPage testPropertySheetPage = new TestPropertySheetPage();
-	private SelectionProviderView selectionProviderView;
-	
-	/**
-	 * An exception of an error status that has been logged by the platform.
-	 */
-	private Exception e;
-	
-	/**
-	 * A log listener to monitor the platform's log for any error statuses. As
-	 * many listeners are notified of events through a SafeRunner, errors caused
-	 * by mishandling of events are not propagated back to our test methods.
-	 */
-	private ILogListener logListener = new ILogListener() {		
-		public void logging(IStatus status, String plugin) {
-			// check if it's an error
-			if (status.getSeverity() == IStatus.ERROR) {
-				// retrieve the underlying exception and wrap it if possible
-				Throwable t = status.getException();
-				if (t != null) {
-					e = new Exception(t);
-				} else {
-					e = new Exception(status.getMessage());	
-				}
-			}
-		}
-	};
-	
-	private IProject project;
-
-	public MultiInstancePropertySheetTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.tests.propertysheet.AbstractPropertySheetTest#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		// open the property sheet with the TestPropertySheetPage
-		Platform.getAdapterManager().registerAdapters(testPropertySheetPage,
-				PropertySheet.class);
-		
-		PropertySheetPerspectiveFactory.applyPerspective(activePage);
-		
-		propertySheet = (PropertySheet) activePage
-				.showView(IPageLayout.ID_PROP_SHEET);
-
-		selectionProviderView = (SelectionProviderView) activePage
-				.showView(SelectionProviderView.ID);
-	}
-
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-	    activePage.resetPerspective();         
-		super.doTearDown();
-		// reset the exception to null
-		e = null;
-		// remove our log listener
-		Platform.removeLogListener(logListener);
-		Platform.getAdapterManager().unregisterAdapters(testPropertySheetPage,
-				PropertySheet.class);
-		testPropertySheetPage = null;
-		selectionProviderView = null;
-
-        if (project != null) {
-            FileUtil.deleteProject(project);
-            project = null;
-        }        
-	}
-
-	/**
-	 * The if the registered {@link TestPropertySheetPage} is set as the default
-	 * page of the PropertySheet
-	 * 
-	 * @throws PartInitException
-	 */
-	public void testDefaultPage() throws PartInitException {
-		PropertySheet propertySheet = (PropertySheet) activePage
-				.showView(IPageLayout.ID_PROP_SHEET);
-		assertTrue(propertySheet.getCurrentPage() instanceof PropertySheetPage);
-	}
-
-	/**
-	 * Test if the registered {@link TestPropertySheetPage} is set as the
-	 * default page of the PropertyShecet
-	 * 
-	 * @throws PartInitException
-	 */
-	public void testDefaultPageAdapter() throws PartInitException {
-		PropertySheet propertySheet = (PropertySheet) activePage
-				.showView(IPageLayout.ID_PROP_SHEET);
-		assertTrue(propertySheet.getCurrentPage() instanceof TestPropertySheetPage);
-	}
-
-	/**
-	 * Test if the PropertySheet allows multiple instances
-	 * 
-	 * @throws PartInitException
-	 */
-	public void testAllowsMultiple() throws PartInitException {
-		activePage.showView(IPageLayout.ID_PROP_SHEET);
-		try {
-			activePage.showView(IPageLayout.ID_PROP_SHEET, "aSecondaryId",
-					IWorkbenchPage.VIEW_ACTIVATE);
-		} catch (PartInitException e) {
-			fail(e.getMessage());
-		}
-	}
-
-	/**
-	 * Test if the PropertySheet follows selection
-	 * 
-	 * @throws Throwable
-	 */
-	public void testFollowsSelection() throws Throwable {
-		// selection before selection changes
-		TestPropertySheetPage firstPage = (TestPropertySheetPage) propertySheet
-				.getCurrentPage();
-		Object firstSelection = firstPage.getSelection();
-		assertNotNull(firstSelection);
-
-		// change the selection explicitly
-		selectionProviderView.setSelection(new Object());
-		TestPropertySheetPage secondPage = (TestPropertySheetPage) propertySheet
-				.getCurrentPage();
-
-		assertNotSame("PropertySheet hasn't changed selection", firstSelection,
-				secondPage.getSelection());
-	}
-
-	/**
-	 * Test if the PropertySheet follows part events
-	 * 
-	 * @throws Throwable
-	 */
-	public void testFollowsParts() throws Throwable {
-		// selection before selection changes
-		TestPropertySheetPage firstPage = (TestPropertySheetPage) propertySheet
-				.getCurrentPage();
-		Object firstPart = firstPage.getPart();
-		assertNotNull(firstPart);
-
-		// change the part explicitly (reusing the NonRestorableView here)
-		TestPropertySheetPage testPropertySheetPage2 = new TestPropertySheetPage();
-		Platform.getAdapterManager().registerAdapters(testPropertySheetPage2,
-				org.eclipse.ui.tests.session.NonRestorableView.class);
-		activePage.showView(NonRestorableView.ID);
-
-		TestPropertySheetPage secondPage = (TestPropertySheetPage) propertySheet
-				.getCurrentPage();
-
-		assertEquals(testPropertySheetPage2, secondPage);
-		assertNotSame("PropertySheet hasn't changed selection", firstPart,
-				secondPage.getSelection());
-		Platform.getAdapterManager().unregisterAdapters(testPropertySheetPage2,
-				org.eclipse.ui.tests.session.NonRestorableView.class);
-	}
-
-	/**
-	 * Test if pinning works in the PropertySheet
-	 * 
-	 * @throws Throwable
-	 */
-	public void testPinning() throws Throwable {
-		// execute the pin action on the property sheet
-		IAction action = getPinPropertySheetAction(propertySheet);
-		action.setChecked(true);
-
-		// get the content of the pinned property sheet for later comparison
-		TestPropertySheetPage firstPage = (TestPropertySheetPage) propertySheet
-				.getCurrentPage();
-		assertNotNull(firstPage);
-		Object firstSelection = firstPage.getSelection();
-		assertNotNull(firstSelection);
-		IWorkbenchPart firstPart = firstPage.getPart();
-		assertNotNull(firstPart);
-
-		// change the selection/part
-		selectionProviderView.setSelection(new Object());
-		TestPropertySheetPage testPropertySheetPage2 = new TestPropertySheetPage();
-		Platform.getAdapterManager().registerAdapters(testPropertySheetPage2,
-				org.eclipse.ui.tests.session.NonRestorableView.class);
-		activePage.showView(NonRestorableView.ID);
-
-		TestPropertySheetPage secondPage = (TestPropertySheetPage) propertySheet
-				.getCurrentPage();
-		assertEquals("PropertySheet has changed page", firstPage, secondPage);
-		assertEquals("PropertySheetPage has changed selection", firstSelection,
-				secondPage.getSelection());
-		assertEquals("PropertySheetPage has changed part", firstPart,
-				secondPage.getPart());
-		Platform.getAdapterManager().unregisterAdapters(testPropertySheetPage2,
-				org.eclipse.ui.tests.session.NonRestorableView.class);
-	}
-
-	/**
-	 * Test if the PropertySheet unpinns if the contributing part is closed
-	 * 
-	 * @throws Throwable
-	 */
-	public void testUnpinningWhenPinnedPartIsClosed() throws Throwable {
-		// execute the pin action on the property sheet
-		IAction action = getPinPropertySheetAction(propertySheet);
-		action.setChecked(true);
-
-		// close the part the property sheet is pinned to
-		activePage.hideView(selectionProviderView);
-
-		// the action and therefore the property sheet should be unpinned
-		assertFalse(action.isChecked());
-	}
-
-	/**
-	 * Test if the PropertySheet's new handler creates a new instance
-	 * 
-	 * @throws NotHandledException
-	 * @throws NotEnabledException
-	 * @throws NotDefinedException
-	 * @throws ExecutionException
-	 */
-	public void testNewPropertySheet() throws ExecutionException,
-			NotDefinedException, NotEnabledException, NotHandledException {
-		assertTrue(countPropertySheetViews() == 1);
-		executeNewPropertySheetHandler();
-		assertTrue(countPropertySheetViews() == 2);
-	}
-
-	/**
-	 * @throws ExecutionException
-	 * @throws NotDefinedException
-	 * @throws NotEnabledException
-	 * @throws NotHandledException
-	 */
-	private void executeNewPropertySheetHandler() throws ExecutionException,
-			NotDefinedException, NotEnabledException, NotHandledException {
-
-		// the propertysheet is the active part if its view toolbar command gets
-		// pressed
-		activePage.activate(propertySheet);
-
-		IHandlerService handlerService = (IHandlerService) PlatformUI
-				.getWorkbench().getService(IHandlerService.class);
-		Event event = new Event();
-		handlerService.executeCommand(NewPropertySheetHandler.ID, event);
-	}
-
-	/**
-	 * Test if the PropertySheet pins the parent if a second instance is opened
-	 * 
-	 * @throws NotHandledException
-	 * @throws NotEnabledException
-	 * @throws NotDefinedException
-	 * @throws ExecutionException
-	 */
-	public void testParentIsPinned() throws ExecutionException,
-			NotDefinedException, NotEnabledException, NotHandledException {
-		executeNewPropertySheetHandler();
-
-		IAction pinAction = getPinPropertySheetAction(propertySheet);
-		assertTrue("Parent property sheet isn't pinned", pinAction.isChecked());
-	}
-
-	/**
-	 * Test if the PropertySheet pins the parent if a second instance is opened
-	 * 
-	 * @throws Throwable
-	 */
-	public void testPinningWithMultipleInstances() throws Throwable {
-		executeNewPropertySheetHandler();
-		testPinning();
-	}
-
-	/**
-	 * Tests that pinning a property sheet ensures that the content continues to
-	 * be rendered even if the original target part is not visible and is behind
-	 * another part in the part stack. 
-	 * 
-	 * @throws CoreException
-	 */
-	public void testBug268676HidingPinnedTargetPart() throws CoreException {
-		IPerspectiveDescriptor desc = activePage.getWorkbenchWindow().getWorkbench()
-				.getPerspectiveRegistry().findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID);
-		// open the 'Resource' perspective
-		activePage.setPerspective(desc);
-		activePage.hideView(selectionProviderView);
-		propertySheet = (PropertySheet) activePage.showView(IPageLayout.ID_PROP_SHEET);
-		
-		// create a project for properties rendering purposes
-        project = FileUtil.createProject("projectToSelect");
-        ISelection selection = new StructuredSelection(project);
-		
-		// show the 'Navigator'
-		IViewPart navigator = activePage.showView(IPageLayout.ID_RES_NAV);        
-        // have the 'Navigator' select it
-        navigator.getSite().getSelectionProvider().setSelection(selection);
-
-        // verify that the 'Navigator' uses a regular property sheet page
-		assertTrue("The 'Properties' view should render the content of the 'Navigator' in a regular property sheet page",
-				propertySheet.getCurrentPage() instanceof PropertySheetPage);
-
-		// show the 'Project Explorer'
-		IViewPart projectExplorer = activePage.showView(IPageLayout.ID_PROJECT_EXPLORER);        
-        // have the 'Project Explorer' select it        
-        projectExplorer.getSite().getSelectionProvider().setSelection(selection);
-		
-		assertFalse("The 'Navigator' should be hidden behind the 'Project Explorer'",
-				activePage.isPartVisible(navigator));
-		assertTrue("The 'Project Explorer' should be visible in front of the 'Navigator'",
-				activePage.isPartVisible(projectExplorer));
-
-        // verify that the 'Project Explorer' uses a non-standard property sheet page
-		assertFalse("The 'Properties' view should be showing the content of the 'Project Explorer' in a tabbed property sheet, not a regular one",
-				propertySheet.getCurrentPage() instanceof PropertySheetPage);
-		
-		// pin the tabbed property sheet page
-		IAction action = getPinPropertySheetAction(propertySheet);
-		action.setChecked(true);
-		
-		// now activate the 'Navigator' so a partHidden event is fired for the
-		// 'Project Explorer', just because it is hidden should _not_ mean the
-		// _pinned_ 'Properties' view should stop rendering its content though,
-		// this is the bug being tested
-		activePage.activate(navigator);
-
-		// verify that the page is not a non-standard property sheet page
-		assertFalse("The 'Properties' view should still be on the content of the 'Project Explorer' rendering a tabbed property sheet",
-				propertySheet.getCurrentPage() instanceof PropertySheetPage);
-	}
-	
-	/**
-	 * Tests bug 278514. If a view that contributes to the 'Properties' view and
-	 * the 'Properties' view is opened is opened in one perspective and the page
-	 * then switches to another perspective where the contributing view is there
-	 * but not the 'Properties' view, an NPE is thrown.
-	 * <p>
-	 * <ol>
-	 * <li>close all perspectives</li>
-	 * <li>open perspective A</li>
-	 * <li>open contributing view</li>
-	 * <li>switch to perspective B</li>
-	 * <li>open contributing view</li>
-	 * <li>open 'Properties' view</li>
-	 * <li>set a selection in the contributing view so the 'Properties' view
-	 * shows something</li>
-	 * <li>switch back to perspective A</li>
-	 * <li>NPE is thrown</li>
-	 * </ol>
-	 * </p>
-	 * 
-	 * @param viewId the id of the contributing view
-	 * @param standardPage <code>true</code> if the contributing view contributes properties without specifying a custom page, <code>false</code> otherwise
-	 * @throws Exception if an exception occurred while switching perspectives
-	 */
-	private void testBug278514(String viewId, boolean standardPage) throws Exception {
-		// close all perspectives
-		activePage.closeAllPerspectives(false, false);
-
-		// open the 'Resource' perspective
-		IPerspectiveDescriptor desc = activePage.getWorkbenchWindow().getWorkbench()
-				.getPerspectiveRegistry().findPerspectiveWithId(IDE.RESOURCE_PERSPECTIVE_ID);
-		activePage.setPerspective(desc);
-		
-		// hide all 'Properties' view instances, if any
-		IViewReference[] viewReferences = activePage.getViewReferences();
-		for (int i = 0; i < viewReferences.length; i++) {
-			if (IPageLayout.ID_PROP_SHEET.equals(viewReferences[i].getId())) {
-				activePage.hideView(viewReferences[i]);
-			}
-		}
-
-		// show the view that will contribute to the 'Properties' view
-		activePage.showView(viewId);
-		
-		// open another perspective
-		PropertySheetPerspectiveFactory.applyPerspective(activePage);
-		
-		// show the 'Properties' view
-		propertySheet = (PropertySheet) activePage.showView(IPageLayout.ID_PROP_SHEET);
-		
-		// create a project for properties rendering purposes
-        project = FileUtil.createProject("projectToSelect");
-        ISelection selection = new StructuredSelection(project);
-
-		// show the contributing view
-		IViewPart contributingView = activePage.showView(viewId);
-        // have the contributing view select the created project, this should populate the 'Properties' view
-        contributingView.getSite().getSelectionProvider().setSelection(selection);
-
-        if (standardPage) {
-            // verify that the contributing view uses standard property sheet page
-    		assertTrue("The 'Properties' view should be showing the content of the contributing view (" + contributingView.getTitle() + ") in a regular property page",
-    				propertySheet.getCurrentPage() instanceof PropertySheetPage);	
-        } else {
-            // verify that the contributing view uses non-standard property sheet page
-    		assertFalse("The 'Properties' view should be showing the content of the contributing view (" + contributingView.getTitle() + ") in a non-standard customiezd page",
-    				propertySheet.getCurrentPage() instanceof PropertySheetPage);        	
-        }
-		
-        // add our log listener so we can monitor for failures when switching perspectives
-		Platform.addLogListener(logListener);
-		// switch the perspective, the original bug threw an NPE within a listener
-		activePage.setPerspective(desc);
-		
-		if (e != null) {
-			// if we caught an exception in our log listener, throw it so this test fails
-			throw e;
-		}
-	}
-
-	/**
-	 * Tests bug 278514 using a view that contributes to the 'Properties' view
-	 * without using a customized page. This test uses the 'Navigator' view to
-	 * achieve this.
-	 * 
-	 * @see #testBug278514(String, boolean)
-	 */
-	public void testBug278514NormalProperties() throws Exception {
-		testBug278514(IPageLayout.ID_RES_NAV, true);
-	}
-
-	/**
-	 * Tests bug 278514 using a view that contributes to the 'Properties' view
-	 * that uses a custom properties page. This test uses the 'Project Explorer' 
-	 * view to achieve this. The 'Project Explorer' renders content within the
-	 * 'Properties' view using tabbed properties.
-	 * 
-	 * @see #testBug278514(String, boolean)
-	 */
-	public void testBug278514TabbedProperties() throws Exception {
-		testBug278514(IPageLayout.ID_PROJECT_EXPLORER, false);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/NewPropertySheetHandlerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/NewPropertySheetHandlerTest.java
deleted file mode 100644
index 3417a61..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/NewPropertySheetHandlerTest.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import java.util.HashMap;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.PropertyShowInContext;
-
-/**
- * @since 3.5
- * 
- */
-public class NewPropertySheetHandlerTest extends AbstractPropertySheetTest {
-
-	private TestNewPropertySheetHandler testNewPropertySheetHandler;
-
-	public NewPropertySheetHandlerTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.tests.propertysheet.AbstractPropertySheetTest#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		testNewPropertySheetHandler = new TestNewPropertySheetHandler();
-	}
-
-	private ExecutionEvent getExecutionEvent() {
-		IHandlerService handlerService = (IHandlerService) PlatformUI
-				.getWorkbench().getService(IHandlerService.class);
-		ICommandService commandService = (ICommandService) PlatformUI
-				.getWorkbench().getService(ICommandService.class);
-		IEvaluationContext evalContext = handlerService.getCurrentState();
-		Command command = commandService
-				.getCommand(TestNewPropertySheetHandler.ID);
-		ExecutionEvent executionEvent = new ExecutionEvent(command,
-				new HashMap(), null, evalContext);
-		return executionEvent;
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 *             StructuredSelection.EMPTY,
-	 */
-	public final void testGetShowInContextFromPropertySheet()
-			throws ExecutionException, PartInitException {
-		activePage.showView(IPageLayout.ID_PROP_SHEET);
-
-		PropertyShowInContext context = testNewPropertySheetHandler
-				.getShowInContext(getExecutionEvent());
-		assertNotNull(context);
-		assertNull(context.getSelection());
-		assertNull(context.getPart());
-		assertNull(context.getInput());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 */
-	public final void testGetShowInContextFromAShowInSource()
-			throws ExecutionException, PartInitException {
-		IAdapterFactory factory = new IAdapterFactory() {
-			public Object getAdapter(Object adaptableObject, Class adapterType) {
-				return new IShowInSource() {
-					public ShowInContext getShowInContext() {
-						return new ShowInContext(StructuredSelection.EMPTY,
-								StructuredSelection.EMPTY);
-					}
-				};
-			}
-
-			public Class[] getAdapterList() {
-				return new Class[] { IShowInSource.class };
-			}
-		};
-		try {
-			SelectionProviderView selectionProviderView = (SelectionProviderView) activePage
-					.showView(SelectionProviderView.ID);
-			selectionProviderView.setSelection(StructuredSelection.EMPTY);
-			Platform.getAdapterManager().registerAdapters(factory,
-					SelectionProviderView.class);
-
-			PropertyShowInContext context = testNewPropertySheetHandler
-					.getShowInContext(getExecutionEvent());
-			assertNotNull(context);
-			assertEquals(StructuredSelection.EMPTY, context.getSelection());
-			assertEquals(StructuredSelection.EMPTY, context.getInput());
-			assertEquals(selectionProviderView, context.getPart());
-		} finally {
-			Platform.getAdapterManager().unregisterAdapters(factory);
-		}
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 */
-	public final void testGetShowInContextWithNoShowInSource()
-			throws PartInitException, ExecutionException {
-		SelectionProviderView selectionProviderView = (SelectionProviderView) activePage
-				.showView(SelectionProviderView.ID);
-		assertFalse(selectionProviderView instanceof IShowInSource);
-		assertNull(selectionProviderView.getAdapter(IShowInSource.class));
-
-		PropertyShowInContext context = testNewPropertySheetHandler
-				.getShowInContext(getExecutionEvent());
-		assertNotNull(context);
-		assertNull(context.getSelection());
-		assertNull(context.getInput());
-		assertEquals(selectionProviderView, context.getPart());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
-	 * .
-	 */
-	public final void testGetShowInContextWithNoActivePart() {
-		try {
-			testNewPropertySheetHandler.getShowInContext(getExecutionEvent());
-		} catch (ExecutionException e) {
-			return;
-		}
-		fail("Expected ExecutionException due to no active part");
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 */
-	public final void testFindPropertySheetWithoutActivePart()
-			throws PartInitException, ExecutionException {
-		assertNull(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
-				.getActivePage().getActivePart());
-
-		try {
-			testNewPropertySheetHandler.findPropertySheet(getExecutionEvent(),
-					new PropertyShowInContext(null, StructuredSelection.EMPTY));
-		} catch (ExecutionException e) {
-			return;
-		}
-		fail("Expected ExecutionException due to no active part");
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 */
-	public final void testFindPropertySheetWithOtherSheetActive()
-			throws PartInitException, ExecutionException {
-		propertySheet = (PropertySheet) activePage
-				.showView(IPageLayout.ID_PROP_SHEET);
-		assertTrue(countPropertySheetViews() == 1);
-
-		PropertySheet foundSheet = testNewPropertySheetHandler
-				.findPropertySheet(getExecutionEvent(),
-						new PropertyShowInContext(propertySheet,
-								StructuredSelection.EMPTY));
-		assertNotNull(foundSheet);
-		assertNotSame(propertySheet, foundSheet);
-		assertTrue(countPropertySheetViews() == 2);
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 */
-	public final void testFindPropertySheetWithSPVActive()
-			throws PartInitException, ExecutionException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		IViewPart spv = activePage.showView(SelectionProviderView.ID);
-		assertTrue(countPropertySheetViews() == 1);
-
-		PropertySheet foundSheet = testNewPropertySheetHandler
-				.findPropertySheet(getExecutionEvent(),
-						new PropertyShowInContext(spv,
-								StructuredSelection.EMPTY));
-		assertNotNull(foundSheet);
-		assertEquals(showView, foundSheet);
-		assertTrue(countPropertySheetViews() == 1);
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 */
-	public final void testFindPropertySheetWithPinnedPSandSPVActive()
-			throws PartInitException, ExecutionException {
-		PropertySheet sheet = (PropertySheet) activePage
-				.showView(IPageLayout.ID_PROP_SHEET);
-		sheet.setPinned(true);
-		IViewPart spv = activePage.showView(SelectionProviderView.ID);
-		assertTrue(countPropertySheetViews() == 1);
-
-		PropertySheet foundSheet = testNewPropertySheetHandler
-				.findPropertySheet(getExecutionEvent(),
-						new PropertyShowInContext(spv,
-								StructuredSelection.EMPTY));
-		assertNotNull(foundSheet);
-		assertNotSame(sheet, foundSheet);
-		assertTrue(countPropertySheetViews() == 2);
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
-	 * .
-	 * 
-	 * @throws ExecutionException
-	 * @throws PartInitException
-	 */
-	public final void testFindPropertySheetWithUnpinnedPSandSPVActive()
-			throws PartInitException, ExecutionException {
-	    PropertySheetPerspectiveFactory.applyPerspective(activePage);
-	    
-		PropertySheet sheet = (PropertySheet) activePage
-				.showView(IPageLayout.ID_PROP_SHEET);
-		IViewPart showView = activePage.showView(SelectionProviderView.ID);
-		PropertyShowInContext context = new PropertyShowInContext(showView,
-				StructuredSelection.EMPTY);
-		assertTrue(sheet.show(context));
-		sheet.setPinned(true);
-		assertTrue(countPropertySheetViews() == 1);
-
-		PropertySheet foundSheet = testNewPropertySheetHandler
-				.findPropertySheet(getExecutionEvent(), context);
-		assertNotNull(foundSheet);
-		assertEquals(sheet, foundSheet);
-		assertTrue(countPropertySheetViews() == 1);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetAuto.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetAuto.java
deleted file mode 100644
index 079b4ea..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetAuto.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- *******************************************************************************/
-package org.eclipse.ui.tests.propertysheet;
-
-import java.util.ArrayList;
-import java.util.Random;
-
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.ISaveablePart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.tests.api.SaveableMockViewPart;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.views.properties.ColorPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-
-/**
- *  The class implements a test for the workbench's default
- * property sheet page. It does this by firing a sequence of 
- * selection events. The property sheet view receives these events 
- * and displays the properties for the selected objects.
- * We are able to test the property sheet code which displays 
- * properties and handles the transition to another set of 
- * properties.
- */
-
-public class PropertySheetAuto extends UITestCase {
-
-    /**
-     * This car serves as a simple porperty source.
-     * The only interesting behavior it has is that if
-     * one of its properties has a "null" value then
-     * it does not include that property in its list
-     * of property descriptors.
-     */
-    private class Car implements IPropertySource {
-        private int modelYear = 0;
-
-        private RGB color = null;
-
-        private String manufacturer = null;
-
-        private String model = null;
-
-        private double engineSize = 0.0;
-
-        // property ids
-        private final static String prefix = "org.eclipse.ui.tests.standardcomponents.propertysheetauto.";
-
-        private final static String MODEL_YEAR = prefix + "modelyear";
-
-        private final static String COLOR = prefix + "color";
-
-        private final static String MANUFACTURER = prefix + "manufacturer";
-
-        private final static String MODEL = prefix + "model";
-
-        private final static String ENGINE_SIZE = prefix + "enginesize";
-
-        private IPropertyDescriptor[] descriptors;
-
-        public Car(int carModelYear, RGB carColor, String carManufacturer,
-                String carModel, double carEngineSize) {
-            modelYear = carModelYear;
-            color = carColor;
-            manufacturer = carManufacturer;
-            model = carModel;
-            engineSize = carEngineSize;
-
-            createDescriptors();
-        }
-
-        /** 
-         * Creates the property descriptors.
-         * If one of the properties has a "null" value then
-         * that property is not included in the list of
-         * property descriptors.
-         */
-        private void createDescriptors() {
-            ArrayList list = new ArrayList(5);
-            if (modelYear != 0)
-                list.add(new TextPropertyDescriptor(MODEL_YEAR, "model year"));
-            if (color != null)
-                list.add(new ColorPropertyDescriptor(COLOR, "color"));
-            if (manufacturer != null)
-                list.add(new TextPropertyDescriptor(MANUFACTURER, "make"));
-            if (model != null)
-                list.add(new TextPropertyDescriptor(MODEL, "model"));
-            if (engineSize != 0.0)
-                list.add(new TextPropertyDescriptor(ENGINE_SIZE, "engine"));
-            descriptors = (IPropertyDescriptor[]) list
-                    .toArray(new IPropertyDescriptor[list.size()]);
-        }
-
-        public Object getEditableValue() {
-            return this;
-        }
-
-        public IPropertyDescriptor[] getPropertyDescriptors() {
-            return descriptors;
-        }
-
-        public Object getPropertyValue(Object id) {
-            if (id.equals(MODEL_YEAR))
-                return Integer.toString(modelYear);
-            if (id.equals(COLOR))
-                return color;
-            if (id.equals(MANUFACTURER))
-                return manufacturer;
-            if (id.equals(MODEL))
-                return model;
-            if (id.equals(ENGINE_SIZE))
-                return Double.toString(engineSize);
-            return null;
-        }
-
-        public boolean isPropertySet(Object id) {
-            return false;
-        }
-
-        public void resetPropertyValue(Object id) {
-            return;
-        }
-
-        public void setPropertyValue(Object id, Object value) {
-            if (id.equals(MODEL_YEAR))
-                modelYear = new Integer((String) value).intValue();
-            if (id.equals(COLOR))
-                color = (RGB) value;
-            if (id.equals(MANUFACTURER))
-                manufacturer = (String) value;
-            if (id.equals(MODEL))
-                model = (String) value;
-            if (id.equals(ENGINE_SIZE))
-                engineSize = new Double((String) value).doubleValue();
-        }
-
-        public String toString() {
-            StringBuffer s = new StringBuffer();
-            s.append("<");
-            if (modelYear != 0) {
-                s.append(modelYear);
-                s.append(" ");
-            }
-            if (color != null) {
-                s.append(color);
-                s.append(" ");
-            }
-            if (manufacturer != null) {
-                s.append(manufacturer);
-                s.append(" ");
-            }
-            if (model != null) {
-                s.append(model);
-                s.append(" ");
-            }
-            if (engineSize != 0.0) {
-                s.append(engineSize);
-                s.append(" ");
-            }
-            s.append(">");
-            return s.toString();
-        }
-    }
-
-    private IWorkbenchPage activePage;
-
-    private IWorkbenchWindow workbenchWindow;
-
-    private SelectionProviderView selectionProviderView;
-
-    private Car[] cars;
-
-    private Random random = new Random();
-
-    private static final int NUMBER_OF_CARS = 10;
-
-    private static final int NUMBER_OF_SELECTIONS = 100;
-
-    private static final String[] makers = new String[] { "Ford", "GM",
-            "Chrysler", "BMW", "Toyota", "Nissan", "Honda", "Volvo" };
-
-    private static final String[] models = new String[] { "Thunderbird",
-            "Deville", "Viper", "320i", "Camry", "Ultima", "Prelude", "V70" };
-
-    public PropertySheetAuto(String name) {
-        super(name);
-    }
-
-    /** 
-     * Creates a array of car objects
-     */
-    private void createCars() {
-        cars = new Car[NUMBER_OF_CARS];
-        for (int i = 0; i < cars.length; i++) {
-            cars[i] = createCar();
-        }
-    }
-
-    /**
-     * Creates a car initialized with random values
-     */
-    private Car createCar() {
-        int modelYear = 0;
-        RGB color = null;
-        String manufacturer = null;
-        String model = null;
-        double engineSize = 0.0;
-        // only set 25% of the properties
-        int FACTOR = 4;
-        if (random.nextInt(FACTOR) < FACTOR - 1)
-            modelYear = 1990 + random.nextInt(15);
-        if (random.nextInt(FACTOR) < FACTOR - 1)
-            color = new RGB(random.nextInt(256), random.nextInt(256), random
-                    .nextInt(256));
-        if (random.nextInt(FACTOR) < FACTOR - 1)
-            manufacturer = makers[random.nextInt(makers.length)];
-        if (random.nextInt(FACTOR) < FACTOR - 1)
-            model = models[random.nextInt(models.length)];
-        if (random.nextInt(FACTOR) < FACTOR - 1)
-            engineSize = random.nextDouble() * 6;
-        return new Car(modelYear, color, manufacturer, model, engineSize);
-    }
-
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        workbenchWindow = openTestWindow();
-        activePage = workbenchWindow.getActivePage();
-        while (Display.getCurrent().readAndDispatch())
-            ;
-    }
-
-    protected IWorkbenchPart createTestParts(IWorkbenchPage page)
-            throws Throwable {
-        IViewPart view = page.showView(IPageLayout.ID_PROP_SHEET);
-        selectionProviderView = (SelectionProviderView) page
-                .showView(SelectionProviderView.ID);
-        while (Display.getCurrent().readAndDispatch())
-            ;
-        return view;
-
-    }
-
-    /** 
-     * Supply selection events with a random car selection. All of these should go to
-     * the properties view because it is visible.
-     */
-    public void testInput() throws Throwable {
-        PropertySheetPerspectiveFactory.applyPerspective(activePage); 
-        PropertySheet propView = (PropertySheet) createTestParts(activePage);
-        createCars();
-
-        assertTrue("'Property' view should be visible", activePage.isPartVisible(propView));
-        assertTrue("'Selection provider' view should be visible", activePage
-                .isPartVisible(selectionProviderView));
-                
-        for (int i = 0; i < NUMBER_OF_SELECTIONS; i++) {
-            // create the selection
-            int numberToSelect = random.nextInt(NUMBER_OF_CARS - 2);
-            ArrayList selection = new ArrayList(numberToSelect);
-            while (selection.size() < numberToSelect) {
-                int j = random.nextInt(NUMBER_OF_CARS);
-                if (!selection.contains(cars[j]))
-                    selection.add(cars[j]);
-            }
-            StructuredSelection structuredSelection = new StructuredSelection(
-                    selection);
-            // fire the selection	
-            selectionProviderView.setSelection(structuredSelection);
-            while (Display.getCurrent().readAndDispatch())
-                ;
-            assertEquals(structuredSelection, propView.getShowInContext().getSelection());
-        }
-    }
-    
-    /** 
-     * Supply selection events with a random car selection. None of these should go to
-     * the properties view because it is hidden.
-     * <p>
-     * This test invalidated by the fix for 
-     * https://bugs.eclipse.org/bugs/show_bug.cgi?id=267425
-     * </p>
-     */
-    public void XtestInputIfHiddenBug69953() throws Throwable {
-        PropertySheetPerspectiveFactory2.applyPerspective(activePage); 
-        PropertySheet propView = (PropertySheet) createTestParts(activePage);
-        createCars();
-        
-        assertFalse("'Property' view should be hidden", activePage.isPartVisible(propView));
-        assertTrue("'Selection provider' view should be visible", activePage
-                .isPartVisible(selectionProviderView));
-        
-        for (int i = 0; i < NUMBER_OF_SELECTIONS; i++) {
-            // create the selection
-            int numberToSelect = random.nextInt(NUMBER_OF_CARS - 2);
-            ArrayList selection = new ArrayList(numberToSelect);
-            while (selection.size() < numberToSelect) {
-                int j = random.nextInt(NUMBER_OF_CARS);
-                if (!selection.contains(cars[j]))
-                    selection.add(cars[j]);
-            }
-            StructuredSelection structuredSelection = new StructuredSelection(
-                    selection);
-            // fire the selection   
-            selectionProviderView.setSelection(structuredSelection);
-            while (Display.getCurrent().readAndDispatch())
-                ;
-            assertNull("Selection should be null in properties view", propView.getShowInContext()
-                    .getSelection());            
-        }
-    }
-
-    /**
-     * Supply selection events with a random car selection after properties view
-     * is hidden by the another view in the same stack but the original
-     * selection source view is still visible. All of these selections should go
-     * to the properties view even if it is hidden. After properties view became
-     * visible again, it should show car selection from the (still visible)
-     * original source view.
-     */
-    public void testInputIfHidden2Bug69953() throws Throwable {
-        PropertySheetPerspectiveFactory3.applyPerspective(activePage); 
-        PropertySheet propView = (PropertySheet) createTestParts(activePage);
-        // project explorer hides property view, because it is in the same stack
-        createCars();
-        for (int i = 0; i < 10; i++) {
-            // bring project explorer view to front (hides property view from same stack)
-            IViewPart projectExplorer = activePage.showView(IPageLayout.ID_PROJECT_EXPLORER);
-            assertViewsVisibility1(propView, projectExplorer);
-
-            // activate now selectionProviderView (to became site selection provider again)
-            activePage.activate(selectionProviderView);
-            while (Display.getCurrent().readAndDispatch())
-                ;
-            
-            // create the selection
-            int numberToSelect = random.nextInt(NUMBER_OF_CARS - 2);
-            ArrayList selection = new ArrayList(numberToSelect);
-            while (selection.size() < numberToSelect) {
-                int j = random.nextInt(NUMBER_OF_CARS);
-                if (!selection.contains(cars[j]))
-                    selection.add(cars[j]);
-            }
-            StructuredSelection structuredSelection = new StructuredSelection(
-                    selection);
-            // fire the selection
-            selectionProviderView.setSelection(structuredSelection);
-            while (Display.getCurrent().readAndDispatch())
-                ;
-            
-            // props view hidden, but still tracks the selection from original source part            
-            assertEquals(structuredSelection, propView.getShowInContext().getSelection());
-            
-            // unhide props view again
-            activePage.showView(IPageLayout.ID_PROP_SHEET);            
-            assertViewsVisibility2(propView, projectExplorer);
-
-            // props view visible again and shows the last selection from original source part
-            assertEquals(structuredSelection, propView.getShowInContext().getSelection());
-        }
-    }
-
-    private void assertViewsVisibility1(PropertySheet propView, IViewPart projectExplorer) {
-        while (Display.getCurrent().readAndDispatch())
-            ;
-        assertFalse("'Property' view should be hidden", activePage.isPartVisible(propView));
-        assertTrue("'Project Explorer' view should be visible", activePage
-                .isPartVisible(projectExplorer));
-        assertTrue("'Selection provider' view should be visible", activePage
-                .isPartVisible(selectionProviderView));
-    }        
-    
-    private void assertViewsVisibility2(PropertySheet propView, IViewPart projectExplorer) {
-        while (Display.getCurrent().readAndDispatch())
-            ;
-        assertTrue("'Property' view should be visible", activePage.isPartVisible(propView));
-        assertFalse("'Project Explorer' view should be hidden", activePage
-                .isPartVisible(projectExplorer));
-        assertTrue("'Selection provider' view should be visible", activePage
-                .isPartVisible(selectionProviderView));
-    }        
-        
-    /**
-     * Tests that the Properties view provides the source part for getAdapter(ISaveablePart.class)
-     * if it's saveable.  
-     * See  Bug 125386 [PropertiesView] Properties view should delegate Save back to source part
-     */
-    public void testSaveableRetargeting() throws Throwable {
-        PropertySheetPerspectiveFactory.applyPerspective(activePage); 
-    	IWorkbenchPart propView = createTestParts(activePage);
-    	assertNull(propView.getAdapter(ISaveablePart.class));
-    	IViewPart saveableView = activePage.showView(SaveableMockViewPart.ID);
-    	activePage.activate(propView);
-    	assertEquals(saveableView, propView.getAdapter(ISaveablePart.class));
-    }
-}
-
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory.java
deleted file mode 100644
index 87bfbf6..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Andrei Loskutov - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.tests.api.SaveableMockViewPart;
-import org.eclipse.ui.tests.session.NonRestorableView;
-
-/**
- * Perspective which distributes selection source views to different stacks
- * relative to the Properties view.
- * 
- * @since 3.5
- */
-public class PropertySheetPerspectiveFactory implements IPerspectiveFactory {
-
-    public void createInitialLayout(IPageLayout layout) {
-        String editorArea = layout.getEditorArea();
-        IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.LEFT, (float) 0.33,
-                editorArea);
-        topLeft.addPlaceholder(IPageLayout.ID_PROP_SHEET);
-
-        // Bottom right.
-        IFolderLayout bottomRight = layout.createFolder("bottomRight", IPageLayout.BOTTOM,
-                (float) 0.55, editorArea);
-
-        bottomRight.addPlaceholder(SelectionProviderView.ID);
-
-        // Top right.
-        IFolderLayout topRight = layout.createFolder("topRight", IPageLayout.RIGHT, (float) 0.33,
-                editorArea);
-        topRight.addPlaceholder(NonRestorableView.ID);
-        topRight.addPlaceholder(SaveableMockViewPart.ID);
-
-    }
-
-    public static void applyPerspective(IWorkbenchPage activePage) {
-        IPerspectiveDescriptor desc = activePage.getWorkbenchWindow().getWorkbench()
-                .getPerspectiveRegistry().findPerspectiveWithId(
-                        PropertySheetPerspectiveFactory.class.getName());
-        activePage.setPerspective(desc);
-        while (Display.getCurrent().readAndDispatch())
-            ;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java
deleted file mode 100644
index b2b813b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory2.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Andrei Loskutov - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.tests.api.SaveableMockViewPart;
-import org.eclipse.ui.tests.session.NonRestorableView;
-
-/**
- * Perspective which distributes selection source views to SAME stack
- * relative to the Properties view.
- * 
- * @since 3.5
- */
-public class PropertySheetPerspectiveFactory2 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        String editorArea = layout.getEditorArea();
-
-        // Bottom right.
-        IFolderLayout bottomRight = layout.createFolder(
-                "bottomRight", IPageLayout.BOTTOM, (float) 0.55,
-                editorArea);
-
-        bottomRight.addPlaceholder(IPageLayout.ID_PROP_SHEET);
-        bottomRight.addPlaceholder(SelectionProviderView.ID);               
-        bottomRight.addPlaceholder(NonRestorableView.ID);
-        bottomRight.addPlaceholder(SaveableMockViewPart.ID);
-        bottomRight.addPlaceholder(IPageLayout.ID_PROJECT_EXPLORER);
-        bottomRight.addPlaceholder(IPageLayout.ID_RES_NAV);
-    }
-    
-    public static void applyPerspective(IWorkbenchPage activePage){
-        IPerspectiveDescriptor desc = activePage.getWorkbenchWindow().getWorkbench()
-            .getPerspectiveRegistry().findPerspectiveWithId(PropertySheetPerspectiveFactory2.class.getName());
-        activePage.setPerspective(desc);
-        while (Display.getCurrent().readAndDispatch())
-            ;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java
deleted file mode 100644
index 041dda0..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetPerspectiveFactory3.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Andrei Loskutov.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Andrei Loskutov - initial API and implementation
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IPerspectiveFactory;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.tests.api.SaveableMockViewPart;
-import org.eclipse.ui.tests.session.NonRestorableView;
-
-/**
- * Perspective which distributes some views to SAME stack relative to the Properties view,
- * and selection provider view to another one.
- * 
- * @since 3.5
- */
-public class PropertySheetPerspectiveFactory3 implements IPerspectiveFactory {
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        String editorArea = layout.getEditorArea();
-
-        // Bottom right.
-        IFolderLayout bottomRight = layout.createFolder(
-                "bottomRight", IPageLayout.BOTTOM, (float) 0.55,
-                editorArea);
-        
-
-        bottomRight.addPlaceholder(IPageLayout.ID_PROP_SHEET);
-        bottomRight.addPlaceholder(NonRestorableView.ID);
-        bottomRight.addPlaceholder(SaveableMockViewPart.ID);
-        bottomRight.addPlaceholder(IPageLayout.ID_PROJECT_EXPLORER);
-        bottomRight.addPlaceholder(IPageLayout.ID_RES_NAV);
-        
-        // Top left.
-        IFolderLayout topLeft = layout.createFolder(
-                "topLeft", IPageLayout.LEFT, (float) 0.33,
-                editorArea);
-        topLeft.addPlaceholder(SelectionProviderView.ID);               
-    }
-    
-    public static void applyPerspective(IWorkbenchPage activePage){
-        IPerspectiveDescriptor desc = activePage.getWorkbenchWindow().getWorkbench()
-            .getPerspectiveRegistry().findPerspectiveWithId(PropertySheetPerspectiveFactory3.class.getName());
-        activePage.setPerspective(desc);
-        while (Display.getCurrent().readAndDispatch())
-            ;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetTestSuite.java
deleted file mode 100644
index 97928a9..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertySheetTestSuite.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.propertysheet;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test areas of the Property Sheet API.
- */
-public class PropertySheetTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new PropertySheetTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public PropertySheetTestSuite() {
-        addTest(new TestSuite(PropertyShowInContextTest.class));
-        addTest(new TestSuite(MultiInstancePropertySheetTest.class));
-        addTest(new TestSuite(ShowInPropertySheetTest.class));
-        addTest(new TestSuite(NewPropertySheetHandlerTest.class));
-        addTest(new TestSuite(PropertySheetAuto.class));
-        addTest(new TestSuite(ComboBoxPropertyDescriptorTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertyShowInContextTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertyShowInContextTest.java
deleted file mode 100644
index bdb2104..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/PropertyShowInContextTest.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.views.properties.PropertyShowInContext;
-
-/**
- * @since 3.5
- * 
- */
-public class PropertyShowInContextTest extends AbstractPropertySheetTest {
-
-	public PropertyShowInContextTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#hashCode()}.
-	 */
-	public final void testHashCode() {
-		ShowInContext psc1 = new PropertyShowInContext(null, (ISelection) null);
-		ShowInContext psc2 = new PropertyShowInContext(null, (ISelection) null);
-		assertEquals(psc1.hashCode(), psc2.hashCode());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#hashCode()}.
-	 */
-	public final void testHashCode2() {
-		ShowInContext psc1 = new PropertyShowInContext(null,
-				StructuredSelection.EMPTY);
-		ShowInContext psc2 = new PropertyShowInContext(null,
-				StructuredSelection.EMPTY);
-		assertEquals(psc1.hashCode(), psc2.hashCode());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#hashCode()}.
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testHashCode3() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				StructuredSelection.EMPTY);
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				StructuredSelection.EMPTY);
-		assertEquals(psc1.hashCode(), psc2.hashCode());
-		psc2.setSelection(new StructuredSelection(new Object()));
-		assertFalse(psc1.hashCode() == psc2.hashCode());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#hashCode()}.
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testHashCode4() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		PropertyShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		assertEquals(psc1.hashCode(), psc2.hashCode());
-
-		psc2.setPart(null);
-		assertFalse(psc1.hashCode() == psc2.hashCode());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#hashCode()}.
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testHashCode5() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext showInContext = new ShowInContext(null, null);
-		ShowInContext psc1 = new PropertyShowInContext(showView, showInContext);
-		ShowInContext psc2 = new PropertyShowInContext(showView, showInContext);
-		assertEquals(psc1.hashCode(), psc2.hashCode());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#hashCode()}.
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testHashCode6() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(new Object(), null));
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		assertFalse(psc1.hashCode() == psc2.hashCode());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#hashCode()}.
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testHashCode7() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(null, StructuredSelection.EMPTY));
-		assertFalse(psc1.hashCode() == psc2.hashCode());
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 */
-	public final void testEquals() {
-		ShowInContext psc1 = new PropertyShowInContext(null,
-				StructuredSelection.EMPTY);
-		psc1.setSelection(null);
-		ShowInContext psc2 = new PropertyShowInContext(null,
-				StructuredSelection.EMPTY);
-		psc2.setSelection(null);
-		assertEquals(psc1, psc2);
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 */
-	public final void testEquals2() {
-		ShowInContext psc1 = new PropertyShowInContext(null,
-				StructuredSelection.EMPTY);
-		ShowInContext psc2 = new PropertyShowInContext(null,
-				StructuredSelection.EMPTY);
-		assertEquals(psc1, psc2);
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testEquals3() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				StructuredSelection.EMPTY);
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				StructuredSelection.EMPTY);
-		assertEquals(psc1, psc2);
-		psc2.setSelection(new StructuredSelection(new Object()));
-		assertFalse(psc1.equals(psc2));
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testEquals4() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		PropertyShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		assertEquals(psc1, psc2);
-
-		psc2.setPart(null);
-		assertFalse(psc1.equals(psc2));
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testEquals5() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext showInContext = new ShowInContext(null, null);
-		ShowInContext psc1 = new PropertyShowInContext(showView, showInContext);
-		ShowInContext psc2 = new PropertyShowInContext(showView, showInContext);
-		assertEquals(psc1, psc2);
-	}
-
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testEqualsNullInput() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(new Object(), null));
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		assertTrue(psc1.equals(psc2));
-		assertTrue(psc2.equals(psc1));
-	}
-	
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testEqualsNullInputBoth() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		assertTrue(psc2.equals(psc1));
-		assertTrue(psc1.equals(psc2));
-	}
-	
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testEqualsNonNullInput() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(new Object(), null));
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(new Object(), null));
-		assertFalse(psc1.equals(psc2));
-		assertFalse(psc2.equals(psc1));
-	}
-	
-	/**
-	 * Test method for
-	 * {@link org.eclipse.ui.views.properties.PropertyShowInContext#equals(Object)}
-	 * .
-	 * 
-	 * @throws PartInitException
-	 */
-	public final void testEquals7() throws PartInitException {
-		IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
-		ShowInContext psc1 = new PropertyShowInContext(showView,
-				new ShowInContext(null, null));
-		ShowInContext psc2 = new PropertyShowInContext(showView,
-				new ShowInContext(null, StructuredSelection.EMPTY));
-		assertFalse(psc1.equals(psc2));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ShowInPropertySheetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ShowInPropertySheetTest.java
deleted file mode 100644
index 81472eb..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/ShowInPropertySheetTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.part.IShowInTarget;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.PropertyShowInContext;
-
-/**
- * @since 3.4
- * 
- */
-public class ShowInPropertySheetTest extends AbstractPropertySheetTest {
-
-	public ShowInPropertySheetTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.tests.propertysheet.AbstractPropertySheetTest#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-
-		propertySheet = (PropertySheet) activePage
-				.showView(IPageLayout.ID_PROP_SHEET);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doTearDown()
-	 */
-	protected void doTearDown() throws Exception {
-		super.doTearDown();
-	}
-
-	/**
-	 * Tries to get the IShowInTarget adapter
-	 */
-	public void testGetIShowInTargetAdapter() {
-		Object adapter = propertySheet.getAdapter(IShowInTarget.class);
-		assertNotNull("No IShowInTarget adapter returned", adapter);
-		assertTrue(adapter instanceof IShowInTarget);
-	}
-
-	/**
-	 * Tests ShowIn PropertySheet with various inputs
-	 */
-	public void testShowInPropertySheet() {
-		IShowInTarget showInTarget = (IShowInTarget) propertySheet
-				.getAdapter(IShowInTarget.class);
-		ShowInContext context = new PropertyShowInContext(activePage
-				.getActivePart(), StructuredSelection.EMPTY);
-		assertTrue(showInTarget.show(context));
-	}
-
-	/**
-	 * Tests ShowIn PropertySheet with various inputs
-	 */
-	public void testShowInPropertySheetWithNull() {
-		IShowInTarget showInTarget = (IShowInTarget) propertySheet
-				.getAdapter(IShowInTarget.class);
-		assertFalse(showInTarget.show(null));
-	}
-
-	/**
-	 * Tests ShowIn PropertySheet with various inputs
-	 */
-	public void testShowInPropertySheetWithNullContext() {
-		IShowInTarget showInTarget = (IShowInTarget) propertySheet
-				.getAdapter(IShowInTarget.class);
-		assertFalse(showInTarget.show(new ShowInContext(null, null)));
-	}
-
-	/**
-	 * Tests ShowIn PropertySheet with various inputs
-	 */
-	public void testShowInPropertySheetWithNullPart() {
-		IShowInTarget showInTarget = (IShowInTarget) propertySheet
-				.getAdapter(IShowInTarget.class);
-		assertFalse(showInTarget.show(new ShowInContext(new Object(),
-				StructuredSelection.EMPTY)));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestNewPropertySheetHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestNewPropertySheetHandler.java
deleted file mode 100644
index 4e31d6d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestNewPropertySheetHandler.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.views.properties.NewPropertySheetHandler;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.PropertyShowInContext;
-
-/**
- * @since 3.5
- * 
- */
-public class TestNewPropertySheetHandler extends NewPropertySheetHandler {
-
-	public static final String ID = NewPropertySheetHandler.ID + "Test";
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.views.properties.NewPropertySheetHandler#execute(org.eclipse
-	 * .core.commands.ExecutionEvent)
-	 */
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-		return super.execute(event);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.views.properties.NewPropertySheetHandler#getShowInContext
-	 * (org.eclipse.core.commands.ExecutionEvent)
-	 */
-	public PropertyShowInContext getShowInContext(ExecutionEvent event)
-			throws ExecutionException {
-		return super.getShowInContext(event);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.views.properties.NewPropertySheetHandler#findPropertySheet
-	 * (org.eclipse.core.commands.ExecutionEvent,
-	 * org.eclipse.ui.views.properties.PropertyShowInContext)
-	 */
-	protected PropertySheet findPropertySheet(ExecutionEvent event,
-			PropertyShowInContext context) throws PartInitException,
-			ExecutionException {
-		return super.findPropertySheet(event, context);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestPropertySheetPage.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestPropertySheetPage.java
deleted file mode 100644
index 07ac547..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/propertysheet/TestPropertySheetPage.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant  and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.propertysheet;
-
-import org.eclipse.core.runtime.IAdapterFactory;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-
-/**
- * @since 3.4
- * 
- */
-public class TestPropertySheetPage extends PropertySheetPage implements
-		IPropertySheetPage, IAdapterFactory {
-
-	private ISelection fSelection;
-	private IWorkbenchPart fPart;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object,
-	 * java.lang.Class)
-	 */
-	public Object getAdapter(Object adaptableObject, Class adapterType) {
-		// singleton cleanup
-		fSelection = null;
-		fPart = null;
-		return this;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
-	 */
-	public Class[] getAdapterList() {
-		return new Class[] { IPropertySheetPage.class };
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.views.properties.PropertySheetPage#selectionChanged(org
-	 * .eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		super.selectionChanged(part, selection);
-		fPart = part;
-		fSelection = selection;
-	}
-
-	/**
-	 * @return Returns the selection.
-	 */
-	public ISelection getSelection() {
-		return fSelection;
-	}
-
-	/**
-	 * @return Returns the part.
-	 */
-	public IWorkbenchPart getPart() {
-		return fPart;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/CamelUtilTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/CamelUtilTest.java
deleted file mode 100644
index 9c4d555..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/CamelUtilTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.quickaccess;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.internal.quickaccess.CamelUtil;
-
-public class CamelUtilTest extends TestCase {
-
-	public void testIsIgnoredForCamelCase() {
-		assertEquals(true, CamelUtil.isSeparatorForCamelCase(' '));
-		assertEquals(true, CamelUtil.isSeparatorForCamelCase('.'));
-		assertEquals(true, CamelUtil.isSeparatorForCamelCase('-'));
-		assertEquals(true, CamelUtil.isSeparatorForCamelCase('/'));
-		assertEquals(true, CamelUtil.isSeparatorForCamelCase('*'));
-		assertEquals(false, CamelUtil.isSeparatorForCamelCase('a'));
-		assertEquals(false, CamelUtil.isSeparatorForCamelCase('A'));
-		assertEquals(false, CamelUtil.isSeparatorForCamelCase('1'));
-	}
-
-	public void testGetCamelCase() {
-		assertEquals("", CamelUtil.getCamelCase(""));
-		assertEquals("a", CamelUtil.getCamelCase("a"));
-		assertEquals("ab", CamelUtil.getCamelCase("a b"));
-		assertEquals("at", CamelUtil.getCamelCase("any thing"));
-		assertEquals("cc", CamelUtil.getCamelCase("CamelCase"));
-		assertEquals("csm", CamelUtil.getCamelCase("call Some Method"));
-		assertEquals("sjree", CamelUtil.getCamelCase("SomeJREExample"));
-		assertEquals("sjree", CamelUtil.getCamelCase("SomeJRE - Example"));
-	}
-
-	public void testGetNextCamelIndex() {
-		assertEquals(-1, CamelUtil.getNextCamelIndex("", 0));
-		assertEquals(1, CamelUtil.getNextCamelIndex("aB", 0));
-		assertEquals(3, CamelUtil.getNextCamelIndex("ab c", 0));
-		assertEquals(2, CamelUtil.getNextCamelIndex("a b ", 0));
-		assertEquals(2, CamelUtil.getNextCamelIndex("a b ", 1));
-	}
-
-	public void testGetCamelCaseIndices() {
-		assertArrayEquals(new int[][] {}, CamelUtil.getCamelCaseIndices("some string", 0, 0));
-		assertArrayEquals(new int[][] {{0,0}}, CamelUtil.getCamelCaseIndices("some string", 0, 1));
-		assertArrayEquals(new int[][] {{0,0},{5,5}}, CamelUtil.getCamelCaseIndices("some string", 0, 2));
-		assertArrayEquals(new int[][] {{5,5}}, CamelUtil.getCamelCaseIndices("some string", 1, 1));
-		assertArrayEquals(new int[][] {{8,8},{12,12},{19,19},{26,26},{31,31}}, CamelUtil.getCamelCaseIndices("Editors ApplAction.java - mail/src", 1, 5));
-	}
-
-	/**
-	 * @param is
-	 * @param camelCaseIndices
-	 */
-	private void assertArrayEquals(int[][] is, int[][] camelCaseIndices) {
-		assertEquals(is.length, camelCaseIndices.length);
-		for (int i = 0; i < is.length; i++) {
-			int[] js = is[i];
-			assertEquals("i=" + i, js.length, camelCaseIndices[i].length);
-			for (int j = 0; j < js.length; j++) {
-				assertEquals("i=" + i + ", j=" + j, js[j],
-						camelCaseIndices[i][j]);
-			}
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessDialogTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessDialogTest.java
deleted file mode 100644
index 9ae3332..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessDialogTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.quickaccess;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.quickaccess.QuickAccessDialog;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.4
- * 
- */
-public class QuickAccessDialogTest extends UITestCase {
-
-	/**
-	 * @since 3.4
-	 * 
-	 */
-	private static class TestQuickAccessDialog extends QuickAccessDialog {
-		private TestQuickAccessDialog(IWorkbenchWindow window,
-				Command invokingCommand) {
-			super(window, invokingCommand);
-		}
-
-		Table getTable() {
-			return table;
-		}
-
-		Text getFilterText() {
-			return filterText;
-		}
-
-		protected void toggleShowAllMatches() {
-			super.toggleShowAllMatches();
-		}
-	}
-
-	/**
-	 * @param testName
-	 */
-	public QuickAccessDialogTest(String testName) {
-		super(testName);
-	}
-
-	public void testOpenQuickAccess() {
-		final TestQuickAccessDialog dialog = new TestQuickAccessDialog(
-				getWorkbench().getActiveWorkbenchWindow(), null);
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-		try {
-			assertTrue("expecting items", processEventsUntil(new Condition() {
-				public boolean compute() {
-					return dialog.getTable().getItemCount() > 0;
-				};
-			}, 200));
-			String oldFirstItemText = dialog.getTable().getItem(0).getText(1);
-			dialog.getFilterText().setText("e");
-			int count1 = dialog.getTable().getItemCount();
-			assertTrue("expecting matching items", count1 > 0);
-			assertNotSame("expecting different item", oldFirstItemText, dialog
-					.getTable().getItem(0).getText(1));
-			dialog.toggleShowAllMatches();
-			int count2 = dialog.getTable().getItemCount();
-			assertTrue("still expecting matching items", count2 > 0);
-			assertTrue("expecting more matching items", count2 > count1);
-		} finally {
-			dialog.close();
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessTestSuite.java
deleted file mode 100644
index 2a05d3f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/quickaccess/QuickAccessTestSuite.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.quickaccess;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test areas of the Property Sheet API.
- */
-public class QuickAccessTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new QuickAccessTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public QuickAccessTestSuite() {
-        addTest(new TestSuite(CamelUtilTest.class));
-        addTest(new TestSuite(QuickAccessDialogTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ActiveUserSourceProvider.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ActiveUserSourceProvider.java
deleted file mode 100644
index 7f06b47..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ActiveUserSourceProvider.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.ui.AbstractSourceProvider;
-import org.eclipse.ui.ISources;
-
-/**
- * A registered source provider that can update variables for the
- * IEvaluationService.
- * 
- * @since 3.4
- */
-public class ActiveUserSourceProvider extends AbstractSourceProvider {
-	private static final String[] PROVIDED_SOURCE_NAMES = new String[] { "username" };
-
-	private String username = "guest";
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#getCurrentState()
-	 */
-	public Map getCurrentState() {
-		Map map = new HashMap();
-		map.put(PROVIDED_SOURCE_NAMES[0], username);
-		return map;
-	}
-
-	public void setUsername(String name) {
-		username = name;
-		fireSourceChanged(ISources.ACTIVE_CONTEXT << 1,
-				PROVIDED_SOURCE_NAMES[0], name);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISourceProvider#getProvidedSourceNames()
-	 */
-	public String[] getProvidedSourceNames() {
-		return PROVIDED_SOURCE_NAMES;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ContributedServiceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ContributedServiceTest.java
deleted file mode 100644
index e88dced..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ContributedServiceTest.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.services.IServiceLocatorCreator;
-import org.eclipse.ui.internal.services.IWorkbenchLocationService;
-import org.eclipse.ui.internal.services.WorkbenchLocationService;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.eclipse.ui.services.AbstractServiceFactory;
-import org.eclipse.ui.services.IDisposable;
-import org.eclipse.ui.services.IServiceLocator;
-import org.eclipse.ui.services.IServiceScopes;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.4
- * 
- */
-public class ContributedServiceTest extends UITestCase {
-
-	/**
-	 * @param testName
-	 */
-	public ContributedServiceTest(String testName) {
-		super(testName);
-	}
-
-	public void testGlobalService() throws Exception {
-		IWorkbenchLocationService wls = (IWorkbenchLocationService) getWorkbench()
-				.getService(IWorkbenchLocationService.class);
-		assertNotNull(wls.getWorkbench());
-		assertNull(wls.getWorkbenchWindow());
-
-		ILevelService l = (ILevelService) getWorkbench().getService(
-				ILevelService.class);
-		assertNotNull(l);
-		assertEquals(1, l.getLevel());
-
-		l = (ILevelService) getWorkbench().getService(ILevelService.class);
-		assertNotNull(l);
-		assertEquals(1, l.getLevel());
-
-		assertEquals(1, LevelServiceFactory.instancesCreated);
-	}
-
-	public void testWindowService() throws Exception {
-		IServiceLocator locator = getWorkbench().getActiveWorkbenchWindow();
-		IWorkbenchLocationService wls = (IWorkbenchLocationService) locator
-				.getService(IWorkbenchLocationService.class);
-		assertNotNull(wls.getWorkbenchWindow());
-
-		ILevelService l = (ILevelService) locator
-				.getService(ILevelService.class);
-		assertNotNull(l);
-		assertEquals(2, l.getLevel());
-
-		assertEquals(2, LevelServiceFactory.instancesCreated);
-
-		l = (ILevelService) locator.getService(ILevelService.class);
-		assertNotNull(l);
-		assertEquals(2, l.getLevel());
-
-		l = (ILevelService) getWorkbench().getService(ILevelService.class);
-		assertNotNull(l);
-		assertEquals(1, l.getLevel());
-
-		assertEquals(2, LevelServiceFactory.instancesCreated);
-	}
-
-	private static class TempLevelFactory extends AbstractServiceFactory {
-		private int level;
-
-		public TempLevelFactory(int l) {
-			level = l;
-		}
-
-		public Object create(Class serviceInterface,
-				IServiceLocator parentLocator, IServiceLocator locator) {
-			return new ILevelService() {
-
-				public int getLevel() {
-					return level;
-				}
-			};
-		}
-	}
-
-	public void testLocalServiceCreated() throws Exception {
-		IServiceLocator parent = getWorkbench().getActiveWorkbenchWindow();
-		IWorkbenchLocationService wls = (IWorkbenchLocationService) parent
-				.getService(IWorkbenchLocationService.class);
-		assertNotNull(wls.getWorkbenchWindow());
-
-		IServiceLocatorCreator lc = (IServiceLocatorCreator) parent
-				.getService(IServiceLocatorCreator.class);
-		IServiceLocator locator = lc.createServiceLocator(parent, null,
-				new IDisposable() {
-					public void dispose() {
-					}
-				});
-
-		ILevelService l = (ILevelService) locator
-				.getService(ILevelService.class);
-		assertNotNull(l);
-		assertEquals(3, l.getLevel());
-
-		assertEquals(3, LevelServiceFactory.instancesCreated);
-
-		if (locator instanceof IDisposable) {
-			((IDisposable) locator).dispose();
-		}
-
-		locator = lc.createServiceLocator(parent, null, new IDisposable() {
-			public void dispose() {
-			}
-		});
-		l = (ILevelService) locator.getService(ILevelService.class);
-		assertNotNull(l);
-		assertEquals(3, l.getLevel());
-
-		assertEquals(4, LevelServiceFactory.instancesCreated);
-		if (locator instanceof IDisposable) {
-			((IDisposable) locator).dispose();
-		}
-
-		locator = lc.createServiceLocator(parent, new TempLevelFactory(8),
-				new IDisposable() {
-					public void dispose() {
-					}
-				});
-		l = (ILevelService) locator.getService(ILevelService.class);
-		assertNotNull(l);
-		assertEquals(8, l.getLevel());
-
-		assertEquals(4, LevelServiceFactory.instancesCreated);
-		if (locator instanceof IDisposable) {
-			((IDisposable) locator).dispose();
-		}
-	}
-	
-	public void testLocalDialogService() throws Exception {
-		IServiceLocator parent = getWorkbench();
-		IServiceLocatorCreator lc = (IServiceLocatorCreator) parent
-				.getService(IServiceLocatorCreator.class);
-		IServiceLocator locator = lc.createServiceLocator(parent,
-				new AbstractServiceFactory() {
-					public Object create(Class serviceInterface,
-							IServiceLocator parentLocator,
-							IServiceLocator locator) {
-						if (IWorkbenchLocationService.class
-								.equals(serviceInterface)) {
-							IWorkbenchLocationService wls = (IWorkbenchLocationService) parentLocator
-									.getService(IWorkbenchLocationService.class);
-							return new WorkbenchLocationService(
-									IServiceScopes.DIALOG_SCOPE, wls
-											.getWorkbench(), null, null, null,
-									null, wls.getServiceLevel()+1);
-						}
-						return null;
-					}
-				}, new IDisposable() {
-					public void dispose() {
-					}
-				});
-		IWorkbenchLocationService wls = (IWorkbenchLocationService) locator
-				.getService(IWorkbenchLocationService.class);
-		assertNotNull(wls.getWorkbench());
-		assertNull(wls.getWorkbenchWindow());
-		assertEquals(1, wls.getServiceLevel());
-		assertEquals(IServiceScopes.DIALOG_SCOPE, wls.getServiceScope());
-	}
-
-	public void testWorkbenchServiceFactory() throws Exception {
-		IWorkbenchWindow window = getWorkbench().getActiveWorkbenchWindow();
-		IProgressService progress = (IProgressService) window
-				.getService(IProgressService.class);
-		assertNotNull(progress);
-
-		assertEquals(getWorkbench().getProgressService(), progress);
-		IViewPart part = null;
-		IViewReference[] refs = window.getActivePage().getViewReferences();
-		for (int i = 0; i < refs.length; i++) {
-			if ((part = refs[i].getView(false)) != null) {
-				break;
-			}
-		}
-
-		assertNotNull(part);
-		progress = (IProgressService) part.getSite().getService(
-				IProgressService.class);
-		assertFalse(progress == getWorkbench().getProgressService());
-		assertEquals(part.getSite().getService(
-				IWorkbenchSiteProgressService.class), progress);
-		assertEquals(part.getSite().getAdapter(
-				IWorkbenchSiteProgressService.class), progress);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EditorSourceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EditorSourceTest.java
deleted file mode 100644
index 5023287..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EditorSourceTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionInfo;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IReusableEditor;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.util.Util;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.services.IEvaluationService;
-import org.eclipse.ui.tests.api.MockReusableEditorPart;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- * 
- */
-public class EditorSourceTest extends UITestCase {
-
-	private static class MyEval implements IPropertyChangeListener {
-		public int count = 0;
-		public boolean currentValue;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see
-		 * org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org
-		 * .eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			count++;
-			if (event.getProperty() == IEvaluationService.RESULT
-					&& event.getNewValue() instanceof Boolean) {
-				currentValue = ((Boolean) event.getNewValue()).booleanValue();
-			}
-		}
-	}
-
-	private static class InputExpression extends Expression {
-		public IEditorInput editorInput;
-		public Object stateInput;
-
-		public InputExpression(IEditorInput i) {
-			editorInput = i;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see
-		 * org.eclipse.core.expressions.Expression#collectExpressionInfo(org
-		 * .eclipse.core.expressions.ExpressionInfo)
-		 */
-		public void collectExpressionInfo(ExpressionInfo info) {
-			info.addVariableNameAccess(ISources.ACTIVE_EDITOR_INPUT_NAME);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see
-		 * org.eclipse.core.expressions.Expression#evaluate(org.eclipse.core
-		 * .expressions.IEvaluationContext)
-		 */
-		public EvaluationResult evaluate(IEvaluationContext context)
-				throws CoreException {
-			stateInput = context.getVariable(ISources.ACTIVE_EDITOR_INPUT_NAME);
-			return EvaluationResult.valueOf(Util
-					.equals(stateInput, editorInput));
-		}
-
-	}
-
-	private IProject project;
-	private IFile test1;
-	private IFile test2;
-
-	public EditorSourceTest(String testName) {
-		super(testName);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		project = FileUtil.createProject("testActiveEditor");
-		test1 = FileUtil.createFile("test1.mockr1", project);
-		test2 = FileUtil.createFile("test2.mockr1", project);
-	}
-
-	public void testActiveEditor() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IEvaluationService es = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		IWorkbenchPage page = window.getActivePage();
-		IEditorPart editor1 = IDE.openEditor(page, test1, true);
-		assertNotNull(editor1);
-		assertEquals(MockReusableEditorPart.ID1, editor1.getSite().getId());
-		IEditorPart editor2 = IDE.openEditor(page, test2, true);
-		assertNotNull(editor2);
-
-		FileEditorInput input1 = new FileEditorInput(test1);
-		FileEditorInput input2 = new FileEditorInput(test2);
-		MyEval listener = new MyEval();
-		InputExpression expr = new InputExpression(input1);
-		es.addEvaluationListener(expr, listener, IEvaluationService.RESULT);
-		assertFalse(listener.currentValue);
-		assertEquals(1, listener.count);
-		assertEquals(input2, expr.stateInput);
-
-		IEditorPart foundEditor = page.findEditor(input1);
-		assertNotNull(foundEditor);
-		assertEquals(editor1, foundEditor);
-
-		page.activate(editor1);
-		processEvents();
-
-		assertEquals(2, listener.count);
-		assertEquals(input1, expr.stateInput);
-		assertTrue(listener.currentValue);
-
-		assertTrue(editor1.getClass().getName(),
-				editor1 instanceof IReusableEditor);
-		IReusableEditor reditor1 = (IReusableEditor) editor1;
-		reditor1.setInput(input2);
-
-		assertFalse(listener.currentValue);
-		assertEquals(3, listener.count);
-		assertEquals(input2, expr.stateInput);
-
-		reditor1.setInput(input1);
-		assertEquals(4, listener.count);
-		assertEquals(input1, expr.stateInput);
-		assertTrue(listener.currentValue);
-
-		reditor1.setInput(input2);
-
-		assertFalse(listener.currentValue);
-		assertEquals(5, listener.count);
-		assertEquals(input2, expr.stateInput);
-
-		page.activate(editor2);
-		processEvents();
-		assertFalse(listener.currentValue);
-		assertEquals(5, listener.count);
-		assertEquals(input2, expr.stateInput);
-
-		reditor1.setInput(input1);
-		assertFalse(listener.currentValue);
-		assertEquals(5, listener.count);
-		assertEquals(input2, expr.stateInput);
-
-		page.activate(editor1);
-		processEvents();
-
-		assertEquals(6, listener.count);
-		assertEquals(input1, expr.stateInput);
-		assertTrue(listener.currentValue);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EvaluationServiceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EvaluationServiceTest.java
deleted file mode 100644
index dec2774..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/EvaluationServiceTest.java
+++ /dev/null
@@ -1,593 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.expressions.EvaluationResult;
-import org.eclipse.core.expressions.Expression;
-import org.eclipse.core.expressions.ExpressionConverter;
-import org.eclipse.core.expressions.ExpressionInfo;
-import org.eclipse.core.expressions.IEvaluationContext;
-import org.eclipse.core.internal.expressions.TestExpression;
-import org.eclipse.core.internal.expressions.WithExpression;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreePath;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.ui.ISources;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.contexts.IContextActivation;
-import org.eclipse.ui.contexts.IContextService;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.services.SlaveEvaluationService;
-import org.eclipse.ui.services.IEvaluationReference;
-import org.eclipse.ui.services.IEvaluationService;
-import org.eclipse.ui.services.ISourceProviderService;
-import org.eclipse.ui.tests.SelectionProviderView;
-import org.eclipse.ui.tests.commands.ActiveContextExpression;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.3
- * 
- */
-public class EvaluationServiceTest extends UITestCase {
-	private static final String CONTEXT_ID1 = "org.eclipse.ui.command.contexts.evaluationService1";
-
-	/**
-	 * @param testName
-	 */
-	public EvaluationServiceTest(String testName) {
-		super(testName);
-	}
-
-	private static class MyEval implements IPropertyChangeListener {
-		public int count = 0;
-		public boolean currentValue;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			count++;
-			if (event.getProperty() == IEvaluationService.RESULT
-					&& event.getNewValue() instanceof Boolean) {
-				currentValue = ((Boolean) event.getNewValue()).booleanValue();
-			}
-		}
-	}
-
-	public void testBasicService() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		assertNotNull(service);
-
-		MyEval listener = new MyEval();
-		IContextActivation context1 = null;
-		IEvaluationReference evalRef = null;
-		IContextService contextService = null;
-		try {
-			evalRef = service.addEvaluationListener(
-					new ActiveContextExpression(CONTEXT_ID1,
-							new String[] { ISources.ACTIVE_CONTEXT_NAME }),
-					listener, IEvaluationService.RESULT);
-			assertEquals(1, listener.count);
-			assertFalse(listener.currentValue);
-
-			contextService = (IContextService) window
-					.getService(IContextService.class);
-			context1 = contextService.activateContext(CONTEXT_ID1);
-			assertEquals(2, listener.count);
-			assertTrue(listener.currentValue);
-
-			contextService.deactivateContext(context1);
-			context1 = null;
-			assertEquals(3, listener.count);
-			assertFalse(listener.currentValue);
-
-			service.removeEvaluationListener(evalRef);
-			evalRef = null;
-			assertEquals(4, listener.count);
-
-			context1 = contextService.activateContext(CONTEXT_ID1);
-			assertEquals(4, listener.count);
-			assertFalse(listener.currentValue);
-			contextService.deactivateContext(context1);
-			context1 = null;
-			assertEquals(4, listener.count);
-			assertFalse(listener.currentValue);
-		} finally {
-			if (context1 != null) {
-				contextService.deactivateContext(context1);
-			}
-			if (evalRef != null) {
-				service.removeEvaluationListener(evalRef);
-			}
-		}
-	}
-
-	public void testTwoEvaluations() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		assertNotNull(service);
-
-		MyEval listener1 = new MyEval();
-		MyEval listener2 = new MyEval();
-		IContextActivation context1 = null;
-		IEvaluationReference evalRef1 = null;
-		IEvaluationReference evalRef2 = null;
-		IContextService contextService = null;
-		try {
-			evalRef1 = service.addEvaluationListener(
-					new ActiveContextExpression(CONTEXT_ID1,
-							new String[] { ISources.ACTIVE_CONTEXT_NAME }),
-					listener1, IEvaluationService.RESULT);
-			assertEquals(1, listener1.count);
-			assertFalse(listener1.currentValue);
-
-			evalRef2 = service.addEvaluationListener(
-					new ActiveContextExpression(CONTEXT_ID1,
-							new String[] { ISources.ACTIVE_CONTEXT_NAME }),
-					listener2, IEvaluationService.RESULT);
-			assertEquals(1, listener2.count);
-			assertFalse(listener2.currentValue);
-			evalRef2.setResult(true);
-
-			contextService = (IContextService) window
-					.getService(IContextService.class);
-			context1 = contextService.activateContext(CONTEXT_ID1);
-			assertEquals(2, listener1.count);
-			assertTrue(listener1.currentValue);
-			// we already set this guy to true, he should skip
-			assertEquals(1, listener2.count);
-			assertFalse(listener2.currentValue);
-
-			evalRef1.setResult(false);
-			contextService.deactivateContext(context1);
-			context1 = null;
-			assertEquals(2, listener2.count);
-			assertFalse(listener2.currentValue);
-
-			// we already set this guy to false, so he should be the old
-			// values
-			assertEquals(2, listener1.count);
-			assertTrue(listener1.currentValue);
-
-		} finally {
-			if (context1 != null) {
-				contextService.deactivateContext(context1);
-			}
-			if (evalRef1 != null) {
-				service.removeEvaluationListener(evalRef1);
-			}
-			if (evalRef2 != null) {
-				service.removeEvaluationListener(evalRef2);
-			}
-		}
-	}
-
-	public void testRestriction() {
-		boolean temporarilyDisabled = true;
-		if (temporarilyDisabled) return;
-		
-		IWorkbenchWindow window = openTestWindow();
-		IEvaluationService evaluationService = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		assertNotNull(evaluationService);
-		IContextService contextService = (IContextService) window
-				.getService(IContextService.class);
-		assertNotNull(contextService);
-
-		Expression expression = new ActiveContextExpression(CONTEXT_ID1,
-				new String[] { ISources.ACTIVE_CONTEXT_NAME });
-
-		final boolean[] propertyChanged = new boolean[1];
-		final boolean[] propertyShouldChange = new boolean[1];
-
-		IPropertyChangeListener propertyChangeListener = new IPropertyChangeListener() {
-
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty().equals("foo"))
-					propertyChanged[0] = true;
-
-			}
-		};
-		IEvaluationReference ref = evaluationService.addEvaluationListener(
-				expression, propertyChangeListener, "foo");
-		((WorkbenchWindow)window).getMenuRestrictions().add(ref);
-
-		IPropertyChangeListener propertyShouldChangeListener = new IPropertyChangeListener() {
-
-			public void propertyChange(PropertyChangeEvent event) {
-				if (event.getProperty().equals("foo"))
-					propertyShouldChange[0] = true;
-
-			}
-		};
-		evaluationService.addEvaluationListener(expression,
-				propertyShouldChangeListener, "foo");
-
-		propertyChanged[0] = false;
-		propertyShouldChange[0] = false;
-
-		assertFalse(contextService.getActiveContextIds().contains(CONTEXT_ID1));
-		IContextActivation activation = contextService
-				.activateContext(CONTEXT_ID1);
-
-		assertTrue(propertyChanged[0]);
-		assertTrue(propertyShouldChange[0]);
-		propertyChanged[0] = false;
-		propertyShouldChange[0] = false;
-
-		contextService.deactivateContext(activation);
-		assertTrue(propertyChanged[0]);
-		assertTrue(propertyShouldChange[0]);
-		assertFalse(contextService.getActiveContextIds().contains(CONTEXT_ID1));
-		activation = contextService.activateContext(CONTEXT_ID1);
-		propertyChanged[0] = false;
-		propertyShouldChange[0] = false;
-		assertTrue(contextService.getActiveContextIds().contains(CONTEXT_ID1));
-
-		// open second window
-		IWorkbenchWindow window2 = openTestWindow();
-		assertFalse(propertyChanged[0]);
-		assertTrue(propertyShouldChange[0]);
-		assertFalse(contextService.getActiveContextIds().contains(CONTEXT_ID1));
-		propertyChanged[0] = false;
-		propertyShouldChange[0] = false;
-
-		window2.close();
-		processEvents();
-
-		assertTrue(contextService.getActiveContextIds().contains(CONTEXT_ID1));
-		assertFalse(propertyChanged[0]);
-		assertTrue(propertyShouldChange[0]);
-	}
-
-	public void testScopedService() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		assertNotNull(service);
-		assertTrue(service instanceof SlaveEvaluationService);
-
-		MyEval listener = new MyEval();
-		IContextActivation context1 = null;
-		IContextService contextService = null;
-		try {
-			service.addEvaluationListener(
-					new ActiveContextExpression(CONTEXT_ID1,
-							new String[] { ISources.ACTIVE_CONTEXT_NAME }),
-					listener, IEvaluationService.RESULT);
-			assertEquals(1, listener.count);
-			assertFalse(listener.currentValue);
-
-			contextService = (IContextService) window.getWorkbench()
-					.getService(IContextService.class);
-			context1 = contextService.activateContext(CONTEXT_ID1);
-			assertEquals(2, listener.count);
-			assertTrue(listener.currentValue);
-
-			window.close();
-			processEvents();
-			assertEquals(3, listener.count);
-			assertTrue(listener.currentValue);
-
-			contextService.deactivateContext(context1);
-			context1 = null;
-			assertEquals(3, listener.count);
-			assertTrue(listener.currentValue);
-		} finally {
-			if (context1 != null) {
-				contextService.deactivateContext(context1);
-			}
-		}
-	}
-
-	private static class UserExpression extends Expression {
-		public String lookFor;
-
-		public UserExpression(String lookFor) {
-			this.lookFor = lookFor;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.core.expressions.Expression#collectExpressionInfo(org.eclipse.core.expressions.ExpressionInfo)
-		 */
-		public void collectExpressionInfo(ExpressionInfo info) {
-			info.addVariableNameAccess("username");
-		}
-
-		public EvaluationResult evaluate(IEvaluationContext context)
-				throws CoreException {
-			String variable = (String) context.getVariable("username");
-			return lookFor.equals(variable) ? EvaluationResult.TRUE
-					: EvaluationResult.FALSE;
-		}
-	}
-
-	public void testSourceProvider() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		assertNotNull(service);
-
-		MyEval listener = new MyEval();
-		UserExpression expression = new UserExpression("Paul");
-		IEvaluationReference ref = service.addEvaluationListener(expression,
-				listener, IEvaluationService.RESULT);
-		assertEquals(ISources.ACTIVE_CONTEXT << 1, ref.getSourcePriority());
-		assertFalse(listener.currentValue);
-		assertEquals(1, listener.count);
-
-		ISourceProviderService sps = (ISourceProviderService) window
-				.getService(ISourceProviderService.class);
-		ActiveUserSourceProvider userProvider = (ActiveUserSourceProvider) sps
-				.getSourceProvider("username");
-
-		userProvider.setUsername("John");
-		assertFalse(listener.currentValue);
-		assertEquals(1, listener.count);
-
-		userProvider.setUsername("Paul");
-		assertTrue(listener.currentValue);
-		assertEquals(2, listener.count);
-
-		userProvider.setUsername("guest");
-		assertFalse(listener.currentValue);
-		assertEquals(3, listener.count);
-	}
-
-	public void testPropertyChange() throws Exception {
-		IWorkbenchWindow window = openTestWindow();
-		IEvaluationService service = (IEvaluationService) window
-				.getService(IEvaluationService.class);
-		assertNotNull(service);
-		MyEval listener = new MyEval();
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IConfigurationElement element = null;
-		IConfigurationElement[] elements = registry
-				.getConfigurationElementsFor("org.eclipse.core.expressions.definitions");
-		for (int i = 0; i < elements.length && element == null; i++) {
-			if (elements[i].getAttribute("id").equals(
-					"org.eclipse.ui.tests.defWithPropertyTester")) {
-				element = elements[i];
-			}
-		}
-
-		assertNotNull(element);
-		Expression expr = ExpressionConverter.getDefault().perform(element.getChildren()[0]);
-		service.addEvaluationListener(expr,
-				listener, IEvaluationService.RESULT);
-		assertFalse(listener.currentValue);
-		assertEquals(1, listener.count);
-		
-		StaticVarPropertyTester.result = true;
-		assertFalse(listener.currentValue);
-		assertEquals(1, listener.count);
-		
-		service.requestEvaluation("org.eclipse.ui.tests.class.method");
-		assertTrue(listener.currentValue);
-		assertEquals(2, listener.count);
-
-		service.requestEvaluation("org.eclipse.ui.tests.class.method");
-		assertTrue(listener.currentValue);
-		assertEquals(2, listener.count);
-	}
-	
-	public void testPlatformProperty() throws Exception {
-		IEvaluationService evaluationService = (IEvaluationService) PlatformUI
-				.getWorkbench().getService(IEvaluationService.class);
-		TestExpression test = new TestExpression("org.eclipse.core.runtime",
-				"bundleState",
-				new Object[] { "org.eclipse.core.expressions" }, "ACTIVE", false);
-		WithExpression exp = new WithExpression("org.eclipse.core.runtime.Platform");
-		exp.add(test);
-		EvaluationResult result= exp.evaluate(evaluationService.getCurrentState());
-		assertEquals(EvaluationResult.TRUE, result);
-	}
-	
-	public void XtestSystemProperty() throws Exception {
-		// this is not added, as the ability to test system properties with
-		// no '.' seems unhelpful
-		System.setProperty("isHere", "true");
-		IEvaluationService evaluationService = (IEvaluationService) PlatformUI
-				.getWorkbench().getService(IEvaluationService.class);
-		TestExpression test = new TestExpression("org.eclipse.core.runtime",
-				"isHere",
-				new Object[] { "true" }, null, false);
-		WithExpression exp = new WithExpression(
-				"java.lang.System" );
-		exp.add(test);
-		EvaluationResult result = exp.evaluate(evaluationService
-				.getCurrentState());
-		assertEquals(EvaluationResult.TRUE, result);
-
-	}
-	
-	static class ActivePartIdExpression extends Expression {
-		private String partId;
-
-		public ActivePartIdExpression(String id) {
-			partId = id;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see
-		 * org.eclipse.core.expressions.Expression#collectExpressionInfo(org
-		 * .eclipse.core.expressions.ExpressionInfo)
-		 */
-		public void collectExpressionInfo(ExpressionInfo info) {
-			info.addVariableNameAccess(ISources.ACTIVE_PART_ID_NAME);
-			info.addVariableNameAccess(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see
-		 * org.eclipse.core.expressions.Expression#evaluate(org.eclipse.core
-		 * .expressions.IEvaluationContext)
-		 */
-		public EvaluationResult evaluate(IEvaluationContext context){
-			Object v = context.getVariable(ISources.ACTIVE_PART_ID_NAME);
-			return EvaluationResult.valueOf(partId.equals(v));
-		}
-	}
-
-	static class PartSelection {
-		public ISelection selection;
-		public IWorkbenchPart part;
-
-		public PartSelection(ISelection sel, IWorkbenchPart p) {
-			selection = sel;
-			part = p;
-		}
-	}
-
-	public void testWorkbenchProvider() throws Exception {
-		
-		IWorkbenchWindow window = openTestWindow();
-		final IEvaluationService service = (IEvaluationService) window
-				.getWorkbench().getService(IEvaluationService.class);
-		assertNotNull(service);
-
-		// some setup
-		IWorkbenchPage page = window.getActivePage();
-		SelectionProviderView view1 = (SelectionProviderView) page
-				.showView(org.eclipse.ui.tests.SelectionProviderView.ID);
-		view1.setSelection(StructuredSelection.EMPTY);
-		SelectionProviderView view2 = (SelectionProviderView) page
-				.showView(org.eclipse.ui.tests.SelectionProviderView.ID_2);
-		TextSelection mySelection = new TextSelection(0, 5);
-		view2.setSelection(mySelection);
-
-		processEvents();
-
-		final ArrayList selection = new ArrayList();
-		IPropertyChangeListener listener = new IPropertyChangeListener() {
-			public void propertyChange(PropertyChangeEvent event) {
-				IEvaluationContext state = service.getCurrentState();
-				try {
-					ISelection sel = null;
-					IWorkbenchPart part = null;
-					Object o = state
-							.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
-					if (o instanceof ISelection) {
-						sel = (ISelection) o;
-					}
-					o = state.getVariable(ISources.ACTIVE_PART_NAME);
-					if (o instanceof IWorkbenchPart) {
-						part = (IWorkbenchPart) o;
-					}
-					selection.add(new PartSelection(sel, part));
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-			}
-		};
-
-		IEvaluationReference ref = service.addEvaluationListener(
-				new ActivePartIdExpression(
-						org.eclipse.ui.tests.SelectionProviderView.ID),
-				listener, "PROP");
-		int callIdx = 0;
-		try {
-			
-			// initially ID_2 is showed
-			assertSelection(selection, callIdx, TextSelection.class, SelectionProviderView.ID_2);
-			
-			page.activate(view1);
-			processEvents();
-			callIdx++;
-
-			assertSelection(selection, callIdx, StructuredSelection.class, SelectionProviderView.ID);
-
-			page.activate(view2);
-			processEvents();
-			callIdx++;
-
-			assertSelection(selection, callIdx, TextSelection.class, SelectionProviderView.ID_2);
-			assertEquals(window.getActivePage().getActivePart().getSite().getId(),
-					service.getCurrentState().getVariable(ISources.ACTIVE_PART_ID_NAME));
-
-			IWorkbenchWindow window2 = openTestWindow();
-			IWorkbenchPage page2 = window2.getActivePage();
-			processEvents();
-
-			// no change
-			assertEquals(callIdx + 1, selection.size());
-			
-			SelectionProviderView view3 = (SelectionProviderView) page2
-					.showView(org.eclipse.ui.tests.SelectionProviderView.ID);
-			processEvents();
-			// id1 activated with default selection StructuredSelection.EMPTY
-			callIdx++;
-
-			assertSelection(selection, callIdx, StructuredSelection.class, SelectionProviderView.ID);
-			assertEquals(window2.getActivePage().getActivePart().getSite().getId(),
-					service.getCurrentState().getVariable(ISources.ACTIVE_PART_ID_NAME));
-			
-			view3.setSelection(new TreeSelection(new TreePath(new Object[] {"nothing"})));
-			processEvents();
-			// selection changes, but view id remains the same - so no callIdx increments
-			assertEquals(callIdx + 1, selection.size());
-			
-			window.getShell().forceActive();
-			processEvents();
-			// the shell activate should have forced another change
-			callIdx++;
-//			assertEquals(window.getActivePage().getActivePart().getSite().getId(),
-//					service.getCurrentState().getVariable(ISources.ACTIVE_PART_ID_NAME));
-
-//			assertSelection(selection, callIdx, TextSelection.class, SelectionProviderView.ID_2);
-
-		} finally {
-			service.removeEvaluationListener(ref);
-		}
-	}
-
-	private void assertSelection(final ArrayList selection, int callIdx, Class clazz, String viewId) {
-		assertEquals(callIdx + 1, selection.size());
-		assertEquals(clazz, getSelection(selection, callIdx)
-				.getClass());
-		assertEquals(viewId,
-				getPart(selection, callIdx).getSite().getId());
-	}
-
-	private ISelection getSelection(final ArrayList selection, int idx) {
-		return ((PartSelection) selection.get(idx)).selection;
-	}
-
-	private IWorkbenchPart getPart(final ArrayList selection, int idx) {
-		return ((PartSelection) selection.get(idx)).part;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ILevelService.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ILevelService.java
deleted file mode 100644
index 310fcd2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ILevelService.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-/**
- * @since 3.4
- *
- */
-public interface ILevelService {
-	public int getLevel();
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/LevelServiceFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/LevelServiceFactory.java
deleted file mode 100644
index 6f251ca..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/LevelServiceFactory.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import org.eclipse.ui.services.AbstractServiceFactory;
-import org.eclipse.ui.services.IServiceLocator;
-
-/**
- * @since 3.4
- * 
- */
-public class LevelServiceFactory extends AbstractServiceFactory {
-
-	static int instancesCreated = 0;
-
-	private static class LS implements ILevelService {
-		private int level;
-
-		public LS(int l) {
-			level = l;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.tests.services.ILevelService#getLevel()
-		 */
-		public int getLevel() {
-			return level;
-		}
-
-	};
-
-	public Object create(Class serviceInterface, IServiceLocator parentLocator,
-			IServiceLocator locator) {
-		int level = 1;
-		Object parent = parentLocator.getService(ILevelService.class);
-		if (parent != null) {
-			ILevelService l = (ILevelService) parent;
-			level = l.getLevel() + 1;
-		}
-		instancesCreated++;
-		return new LS(level);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ServicesTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ServicesTestSuite.java
deleted file mode 100755
index 1b5fcbd..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/ServicesTestSuite.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests general to services.
- * @since 3.3
- */
-public final class ServicesTestSuite extends TestSuite {
-
-	/**
-	 * Returns the suite. This is required to use the JUnit Launcher.
-	 */
-	public static final Test suite() {
-		return new ServicesTestSuite();
-	}
-
-	/**
-	 * Construct the test suite.
-	 */
-	public ServicesTestSuite() {
-		addTest(new TestSuite(EvaluationServiceTest.class));
-		addTest(new TestSuite(ContributedServiceTest.class));
-		addTest(new TestSuite(WorkbenchSiteProgressServiceTest.class));
-		addTest(new TestSuite(EditorSourceTest.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/StaticVarPropertyTester.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/StaticVarPropertyTester.java
deleted file mode 100644
index c76a22f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/StaticVarPropertyTester.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import org.eclipse.core.expressions.PropertyTester;
-
-/**
- * @since 3.4
- *
- */
-public class StaticVarPropertyTester extends PropertyTester {
-	public static boolean result = false;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
-	 */
-	public boolean test(Object receiver, String property, Object[] args,
-			Object expectedValue) {
-		return result;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/WorkbenchSiteProgressServiceTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/WorkbenchSiteProgressServiceTest.java
deleted file mode 100644
index 73eed8d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/services/WorkbenchSiteProgressServiceTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.services;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.internal.PartSite;
-import org.eclipse.ui.internal.progress.WorkbenchSiteProgressService;
-import org.eclipse.ui.internal.progress.WorkbenchSiteProgressService.SiteUpdateJob;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * @since 3.5
- * @author Prakash G.R.
- */
-public class WorkbenchSiteProgressServiceTest extends UITestCase{
-
-	
-	public WorkbenchSiteProgressServiceTest(String testName) {
-		super(testName);
-	}
-	
-    private IWorkbenchPart activePart;
-	private IWorkbenchWindow window;
-	private SiteUpdateJob updateJob;
-	private WorkbenchSiteProgressService progressService;
-	private IWorkbenchPartSite site;
-    
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		window = openTestWindow("org.eclipse.ui.resourcePerspective");
-		activePart = window.getActivePage().getActivePart();
-		assertNotNull(activePart);
-
-		site = activePart.getSite();
-		progressService = (WorkbenchSiteProgressService) site.getService(IWorkbenchSiteProgressService.class);
-		updateJob = progressService.getUpdateJob();
-	}
-	
-	public void forceUpdate() {
-		// ugly trick, but keeps the test going ...
-		updateJob.run(new NullProgressMonitor());
-	}
-	
-	public void testWaitCursor() throws Exception {
-		
-		
-		// first fire a job with cursor set to true and check the cursor
-		LongJob jobWithCursor = new LongJob();
-		
-		progressService.schedule(jobWithCursor, 0, true);
-		
-		while(jobWithCursor.getState() != Job.RUNNING) {
-			Thread.sleep(100);
-		}
-		
-		processEvents();
-		forceUpdate();		
-		processEvents();
-		
-		Cursor cursor = ((PartSite)site).getPane().getControl().getCursor();
-		assertNotNull(cursor);
-		
-		jobWithCursor.cancel();
-		processEvents();
-
-		 // wait till this job is done
-		while(jobWithCursor.getState() == Job.RUNNING) {
-			Thread.sleep(100);
-		}
-		
-		processEvents();
-		forceUpdate();
-		processEvents();
-		cursor = ((PartSite)site).getPane().getControl().getCursor();
-		assertNull(cursor); // no jobs, no cursor
-
-		// Now fire two jobs, first one with cursor & delay, the second one without any cursor or delay
-		// Till the first job starts running, there should not be a cursor, after it starts running cursor should be present
-
-		LongJob jobWithoutCursor = new LongJob();
-		jobWithCursor = new LongJob();
-		
-		progressService.schedule(jobWithCursor, 2000, true);
-		progressService.schedule(jobWithoutCursor, 0, false);
-		
-		while(jobWithoutCursor.getState() != Job.RUNNING) {
-			Thread.sleep(100);
-		}
-		
-		processEvents();
-
-		// we just want the jobWithoutCursor running
-		assertTrue(jobWithCursor.getState() != Job.RUNNING); 
-		
-		forceUpdate();
-		processEvents();
-		cursor = ((PartSite)site).getPane().getControl().getCursor();
-		assertNull(cursor); // jobWithoutCursor is scheduled to run first - no cursor now
-		
-		while(jobWithCursor.getState() != Job.RUNNING) {
-			Thread.sleep(100);
-		}
-		
-		processEvents();
-		
-		// both jobs should be running
-		assertTrue(jobWithCursor.getState() == Job.RUNNING && jobWithoutCursor.getState() == Job.RUNNING);
-
-		forceUpdate();		
-		processEvents();
-		cursor = ((PartSite)site).getPane().getControl().getCursor();
-		assertNotNull(cursor); // both running now - cursor should be set
-	}
-
-	class LongJob extends Job{
-
-
-		public LongJob() {
-			super("LongJob");
-		}
-		
-		protected IStatus run(IProgressMonitor monitor) {
-			
-			monitor.beginTask("job starts", 1000);
-			for (int i = 0; i < 1000; i++) {
-				try {
-					Thread.sleep(100);
-				} catch (InterruptedException e) {
-				}
-				if(monitor.isCanceled()) {
-					break;
-				}
-				monitor.worked(1);
-			}
-			return Status.OK_STATUS;
-		}
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesEditorTest.java
deleted file mode 100644
index d711e17..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesEditorTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.session;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart3;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.api.workbenchpart.TitleTestEditor;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-/**
- * If a view is not activated during a session, it's part is not instantiated.
- * This tests that case, and the outcome should be the view has it's last
- * session state when it is finally instantiated in the workbench.
- * 
- * @since 3.3
- */
-public class ArbitraryPropertiesEditorTest extends TestCase {
-	/**
-	 * 
-	 */
-	private static final String USER_PROP = "org.eclipse.ui.tests.users";
-
-	private static final String EDITOR_ID = "org.eclipse.ui.tests.TitleTestEditor";
-
-	public static TestSuite suite() {
-		return new TestSuite(ArbitraryPropertiesEditorTest.class);
-	}
-
-	public ArbitraryPropertiesEditorTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * This is the first part of a 3 part tests. First instantiate a view and
-	 * set a state.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testOpenEditor() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		IProject proj = FileUtil.createProject("EditorSessionTest");
-		IFile file = FileUtil.createFile("state.txt", proj);
-
-		TitleTestEditor editor = (TitleTestEditor) page.openEditor(
-				new FileEditorInput(file), EDITOR_ID);
-
-		// this makes the second file active on the first
-		file = FileUtil.createFile("state_active.txt", proj);
-		IDE.openEditor(page, file);
-
-		editor.setPartProperty(USER_PROP, "pwebster");
-	}
-
-	/**
-	 * The second session doesn't activate the view, so it should not be
-	 * instantiated.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testSecondOpening() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-		IEditorReference[] editors = page.getEditorReferences();
-		for (int i = 0; i < editors.length; i++) {
-			IEditorReference ref = editors[i];
-			if (ref.getEditorInput().getName().equals("state.txt")) {
-				assertNull("The editor should not be instantiated", ref
-						.getPart(false));
-				assertEquals("pwebster", ref.getPartProperty(USER_PROP));
-			}
-		}
-	}
-
-	static class PropListener implements IPropertyChangeListener {
-		public int count = 0;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			count++;
-		}
-	};
-
-	/**
-	 * Activate the view and it's state should re-appear.
-	 * 
-	 * @throws Throwable
-	 */
-	public void testPartInstantiation() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		IEditorReference ref = null;
-		IEditorReference[] editors = page.getEditorReferences();
-		for (int i = 0; i < editors.length; i++) {
-			if (editors[i].getEditorInput().getName().equals("state.txt")) {
-				ref = editors[i];
-			}
-		}
-
-		assertEquals("pwebster", ref.getPartProperty(USER_PROP));
-		PropListener listener = new PropListener();
-		ref.addPartPropertyListener(listener);
-
-		try {
-
-			IWorkbenchPart3 wp = (IWorkbenchPart3) ref.getPart(true);
-			assertEquals("pwebster", wp.getPartProperty(USER_PROP));
-			assertEquals(0, listener.count);
-		} finally {
-			ref.removePartPropertyListener(listener);
-		}
-
-		IEditorInput input = ref.getEditorInput();
-
-		// the state should not be saved between a close and
-		// an open in the same session
-		page.closeEditor((IEditorPart) ref.getPart(true), false);
-
-		TitleTestEditor editor = (TitleTestEditor) page.openEditor(input,
-				EDITOR_ID);
-		assertNull(editor.getPartProperty(USER_PROP));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesViewTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesViewTest.java
deleted file mode 100644
index 8ef04d3..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ArbitraryPropertiesViewTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.session;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart3;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * If a view is not activated during a session, it's part is not instantiated.
- * This tests that case, and the outcome should be the view has it's last
- * session state when it is finally instantiated in the workbench.
- * 
- * @since 3.3
- */
-public class ArbitraryPropertiesViewTest extends TestCase {
-	/**
-	 * 
-	 */
-	private static final String USER_PROP = "org.eclipse.ui.tests.users";
-
-	private static final String PROBLEM_VIEW_ID = "org.eclipse.ui.views.ProblemView";
-
-	private static final String VIEW_WITH_STATE_ID = "org.eclipse.ui.tests.session.ViewWithState";
-
-	public static TestSuite suite() {
-		return new TestSuite(ArbitraryPropertiesViewTest.class);
-	}
-
-	public ArbitraryPropertiesViewTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * This is the first part of a 3 part tests. First instantiate a view and
-	 * set a state.
-	 * 
-	 * @throws Throwable
-	 */
-	public void test01ActivateView() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		IViewPart v = page.showView(VIEW_WITH_STATE_ID);
-
-		// put another view in front of our view
-		page.showView(PROBLEM_VIEW_ID);
-
-		IWorkbenchPart3 wp = (IWorkbenchPart3) v;
-		wp.setPartProperty(USER_PROP, "pwebster");
-	}
-
-	/**
-	 * The second session doesn't activate the view, so it should not be
-	 * instantiated.
-	 * 
-	 * @throws Throwable
-	 */
-	public void test02SecondOpening() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		IViewReference[] views = page.getViewReferences();
-		for (int i = 0; i < views.length; i++) {
-			IViewReference ref = views[i];
-			if (ref.getId().equals(VIEW_WITH_STATE_ID)) {
-				assertNull("The view should not be instantiated", ref
-						.getPart(false));
-				assertEquals("pwebster", ref.getPartProperty(USER_PROP));
-			}
-		}
-	}
-
-	static class PropListener implements IPropertyChangeListener {
-		public int count = 0;
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			count++;
-		}
-	};
-
-	/**
-	 * Activate the view and it's state should re-appear.
-	 * 
-	 * @throws Throwable
-	 */
-	public void test03PartInstantiation() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-		
-		IViewReference ref = page.findViewReference(VIEW_WITH_STATE_ID);
-		assertEquals("pwebster", ref.getPartProperty(USER_PROP));
-		PropListener listener = new PropListener();
-		ref.addPartPropertyListener(listener);
-
-		IViewPart v = null;
-		try {
-			v = page.showView(VIEW_WITH_STATE_ID);
-			IWorkbenchPart3 wp = (IWorkbenchPart3) v;
-			assertEquals("pwebster", wp.getPartProperty(USER_PROP));
-			assertEquals(0, listener.count);
-		} finally {
-			ref.removePartPropertyListener(listener);
-		}
-		// the state should not be saved between a close and
-		// an open in the same session
-		page.hideView(v);
-		v = page.showView(VIEW_WITH_STATE_ID);
-		IWorkbenchPart3 wp = (IWorkbenchPart3) v;
-		assertNull(wp.getPartProperty(USER_PROP));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug108033Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug108033Test.java
deleted file mode 100644
index 78d8555..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug108033Test.java
+++ /dev/null
@@ -1,182 +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.tests.session;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.ViewSite;
-import org.eclipse.ui.internal.ViewStack;
-import org.eclipse.ui.internal.presentations.PresentablePart;
-import org.eclipse.ui.internal.presentations.util.TabbedStackPresentation;
-import org.eclipse.ui.presentations.IPresentablePart;
-
-/**
- * Bug 108033 Need a test to ensure that view tab order is the same on start up
- * as it was in the last session.
- * 
- * These tests more or less depend on being run in order. The workspace exists
- * from method to method.
- * 
- * @since 3.2
- * 
- */
-public class Bug108033Test extends TestCase {
-
-	public static final String PROBLEM_VIEW_ID = "org.eclipse.ui.views.ProblemView";
-
-	public static final String TASK_VIEW_ID = "org.eclipse.ui.views.TaskList";
-
-	public static final String PROGRESS_VIEW_ID = "org.eclipse.ui.views.ProgressView";
-
-	private static String RESOURCE_ID = "org.eclipse.ui.resourcePerspective";
-
-	private IWorkbenchWindow fWin;
-
-	private IWorkbenchPage fActivePage;
-
-	private IWorkbench fWorkbench;
-
-	public Bug108033Test(String testName) {
-		super(testName);
-	}
-
-	protected void setUp() throws Exception {
-		fWorkbench = PlatformUI.getWorkbench();
-
-		fWin = fWorkbench.getActiveWorkbenchWindow();
-
-		fActivePage = fWin.getActivePage();
-	}
-
-	/**
-	 * Make sure the perspective has been reset, and then show the views in the
-	 * expected order. These tests depend on being run in order in the same
-	 * environment, so we can't use the standard openWindow() to protect
-	 * ourselves from side effects.
-	 * 
-	 * @throws Throwable
-	 *             an error
-	 */
-	public void testShowMultipleViews() throws Throwable {
-		IPerspectiveDescriptor desc = fActivePage.getWorkbenchWindow()
-				.getWorkbench().getPerspectiveRegistry().findPerspectiveWithId(
-						RESOURCE_ID);
-		fActivePage.setPerspective(desc);
-		fActivePage.resetPerspective();
-		assertNotNull(fActivePage.showView(TASK_VIEW_ID));
-		assertNotNull(fActivePage.showView(PROGRESS_VIEW_ID));
-		assertNotNull(fActivePage.showView(PROBLEM_VIEW_ID));
-	}
-
-	/**
-	 * Check the views are still in the correct order, then move the problems
-	 * view to the first tab.
-	 * 
-	 * @throws Throwable
-	 *             an error
-	 */
-	public void testCheckMultipleViews() throws Throwable {
-		IViewPart problemView = instantiateViews();
-
-		ViewSite site = (ViewSite) problemView.getSite();
-		ViewStack stack = (ViewStack) site.getPane().getContainer();
-
-		TabbedStackPresentation pres = (TabbedStackPresentation) stack
-				.getTestPresentation();
-
-		verifyOrder(pres, new String[] { "Tasks", "Progress", "Problems" });
-		IPresentablePart part = getPresentablePart(site);
-		assertNotNull(part);
-
-		pres.moveTab(part, 0);
-
-		verifyOrder(pres, new String[] { "Problems", "Tasks", "Progress" });
-	}
-
-	/**
-	 * Verify the views are ordered with the problems view first after the
-	 * restart.
-	 * 
-	 * @throws Throwable
-	 *             an error
-	 */
-	public void testMovedMultipleViews() throws Throwable {
-		IViewPart problemView = instantiateViews();
-
-		ViewSite site = (ViewSite) problemView.getSite();
-		ViewStack stack = (ViewStack) site.getPane().getContainer();
-
-		TabbedStackPresentation pres = (TabbedStackPresentation) stack
-				.getTestPresentation();
-
-		verifyOrder(pres, new String[] { "Problems", "Tasks", "Progress" });
-	}
-
-	/**
-	 * Removes any NPEs.
-	 * 
-	 * @return the problem view.
-	 * @throws PartInitException
-	 *             if a view fails to instantiate.
-	 */
-	private IViewPart instantiateViews() throws PartInitException {
-		IViewPart problemView = fActivePage.showView(PROBLEM_VIEW_ID);
-		assertNotNull(problemView);
-
-		// make sure all of the views have been instantiated
-		assertNotNull(fActivePage.showView(PROGRESS_VIEW_ID));
-		assertNotNull(fActivePage.showView(TASK_VIEW_ID));
-		return problemView;
-	}
-
-	/**
-	 * Verify the tabs are in the correct order.
-	 * 
-	 * @param pres
-	 *            the stack presentation
-	 * @param order
-	 *            the expected order
-	 */
-	private void verifyOrder(TabbedStackPresentation pres, String[] order) {
-		IPresentablePart[] tabs = pres.getPartList();
-		assertEquals("Different number of tabs", order.length, tabs.length);
-		for (int i = 0; i < tabs.length; ++i) {
-			assertEquals("Failed on tab " + i, order[i], tabs[i].getName());
-		}
-	}
-
-	/**
-	 * Get the presentable part for the view (view site).
-	 * 
-	 * @param site
-	 *            the site of the view we want
-	 * @return it's presentable part.
-	 */
-	private IPresentablePart getPresentablePart(ViewSite site) {
-		IPresentablePart[] partList = (IPresentablePart[]) ((ViewStack) site
-				.getPane().getContainer()).getPresentableParts().toArray(
-				new IPresentablePart[0]);
-		for (int i = 0; i < partList.length; i++) {
-			IPresentablePart part = partList[i];
-			if (((PresentablePart) part).getPane() == site.getPane()) {
-				return part;
-			}
-		}
-		return null;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug95357Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug95357Test.java
deleted file mode 100644
index efcfd25..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug95357Test.java
+++ /dev/null
@@ -1,286 +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.tests.session;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.EditorSite;
-import org.eclipse.ui.internal.EditorStack;
-import org.eclipse.ui.tests.api.SessionEditorPart;
-import org.eclipse.ui.tests.dnd.DragOperations;
-import org.eclipse.ui.tests.dnd.EditorDropTarget;
-import org.eclipse.ui.tests.dnd.ExistingWindowProvider;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-/**
- * Bug 95357 Need a test to ensure editor activation is not broken on startup.
- * When eclipse starts, there should be tabs for all of the open editor windows
- * but only the <b>active</b> editor window(s) should have been instantiated. A
- * bug that crops up occasionally is that all of the editors have been
- * instantiated, which impacts performance.
- * 
- * These tests more or less depend on being run in order. The workspace exists
- * from method to method.
- * 
- * @since 3.1
- * 
- */
-public class Bug95357Test extends TestCase {
-
-	private static final String BUG95357PROJECT = "Bug95357project";
-
-	private static final int FILE_MAX = 8;
-
-	private IWorkbenchWindow fWin;
-
-	private IWorkbenchPage fActivePage;
-
-	private IProject fProject;
-
-	private IWorkbench fWorkbench;
-
-	private String[] itsFilename;
-
-	public Bug95357Test(String testName) {
-		super(testName);
-		fWorkbench = PlatformUI.getWorkbench();
-		fProject = null;
-
-	}
-
-	/**
-	 * @param ext
-	 */
-	private void setupFilenames(String ext) {
-		itsFilename = new String[Bug95357Test.FILE_MAX];
-		for (int i = 0; i < Bug95357Test.FILE_MAX; ++i) {
-			itsFilename[i] = "test" + i + ext;
-		}
-	}
-
-	protected void setUp() throws Exception {
-		fWin = fWorkbench.getActiveWorkbenchWindow();
-
-		fActivePage = fWin.getActivePage();
-		fProject = FileUtil.createProject(Bug95357Test.BUG95357PROJECT);
-	}
-
-	/**
-	 * Multiple editors open - part 1 of 2. This makes sure that there are
-	 * FILE_MAX editors open, and the files have been created. Then the session
-	 * stops.
-	 * 
-	 * @throws PartInitException
-	 * @throws CoreException
-	 */
-	private void multipleEditors() throws PartInitException, CoreException {
-		fActivePage.closeAllEditors(false);
-		
-		IEditorPart[] part = new IEditorPart[itsFilename.length];
-		for (int i = 0; i < itsFilename.length; i++) {
-			part[i] = IDE.openEditor(fActivePage, FileUtil.createFile(
-					itsFilename[i], fProject), true);
-		}
-
-		assertTrue(fActivePage.isEditorAreaVisible());
-		assertFalse(fActivePage.isPartVisible(part[0]));
-		assertTrue(fActivePage.isPartVisible(part[part.length - 1]));
-	}
-
-	/**
-	 * Multiple editors open - part 2 of 2. We can test the state of eclipse
-	 * after the system has restarted. We expect that the last editor will be
-	 * active and instantiated, but the other editors won't have been
-	 * instantiated.
-	 */
-	private void multipleEditorsOpen() {
-		IEditorReference[] editors = fActivePage.getEditorReferences();
-		assertEquals(Bug95357Test.FILE_MAX, editors.length);
-
-		for (int i = 0; i < editors.length - 1; i++) {
-			assertNull("Editor " + i + " " + editors[i].getName()
-					+ " should not be active", editors[i].getEditor(false));
-		}
-		assertNotNull(editors[editors.length - 1].getEditor(false));
-		assertNotNull(editors[0].getEditor(true));
-	}
-
-	/**
-	 * Multiple editors in 2 stacks - part 1 of 2. Set up eclipse with FILE_MAX
-	 * editors open in 2 stacks.
-	 * 
-	 * @throws PartInitException
-	 * @throws CoreException
-	 */
-	private void multipleStacks() throws PartInitException, CoreException {
-		final String f1 = itsFilename[0];
-		final String f2 = itsFilename[1];
-		final int startAt = 2;
-
-		fActivePage.closeAllEditors(false);
-
-		IEditorPart last = IDE.openEditor(fActivePage, FileUtil.createFile(f1,
-				fProject), true);
-		IEditorPart current = IDE.openEditor(fActivePage, FileUtil.createFile(
-				f2, fProject), true);
-
-		// create the second editor stack using the second editor
-		DragOperations.drag(current, new EditorDropTarget(
-				new ExistingWindowProvider(fWin), 0, SWT.BOTTOM), false);
-
-		EditorStack firstStack = (EditorStack) ((EditorSite) last
-				.getEditorSite()).getPane().getContainer();
-		EditorStack secondStack = (EditorStack) ((EditorSite) current
-				.getEditorSite()).getPane().getContainer();
-
-		for (int i = startAt; i < itsFilename.length; ++i) {
-			fActivePage.activate(last);
-			last = current;
-			current = IDE.openEditor(fActivePage, FileUtil.createFile(
-					itsFilename[i], fProject), true);
-		}
-		assertEquals(Bug95357Test.FILE_MAX / 2, firstStack.getItemCount());
-		assertEquals(Bug95357Test.FILE_MAX / 2, secondStack.getItemCount());
-	}
-
-	/**
-	 * Multiple editors in 2 stacks - part 2 of 2. 2 of the editors should have
-	 * been instantiated. The rest should still be inactive.
-	 * 
-	 */
-	private void multipleStacksOnStartup() {
-		IEditorReference lastFile = null;
-		IEditorReference secondLastFile = null;
-
-		IEditorReference[] editors = fActivePage.getEditorReferences();
-		assertEquals(Bug95357Test.FILE_MAX, editors.length);
-
-		for (int i = 0; i < editors.length; i++) {
-			if (itsFilename[itsFilename.length - 1]
-					.equals(editors[i].getName())) {
-				lastFile = editors[i];
-			} else if (itsFilename[itsFilename.length - 2].equals(editors[i]
-					.getName())) {
-				secondLastFile = editors[i];
-			}
-		}
-
-		assertNotNull(lastFile.getEditor(false));
-		assertNotNull(secondLastFile.getEditor(false));
-		for (int i = 0; i < editors.length; ++i) {
-			if (editors[i] != lastFile && editors[i] != secondLastFile) {
-				assertNull("For file " + i + " " + editors[i].getName(),
-						editors[i].getEditor(false));
-			}
-		}
-	}
-
-	/**
-	 * Test for .txt files and the basic editor. Part 1 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleEditors() throws Throwable {
-		setupFilenames(".txt");
-		
-		multipleEditors();
-	}
-
-	/**
-	 * Test for .txt files and the basic editor. Part 2 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleEditorsOpen() throws Throwable {
-		setupFilenames(".txt");
-	
-		multipleEditorsOpen();
-	}
-
-	/**
-	 * Test multiple stacks with .txt editor. Part 1 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleStacks() throws Throwable {
-		setupFilenames(".txt");
-		multipleStacks();
-	}
-
-	/**
-	 * Test multiple stacks with .txt editor. Part 2 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleStacksOnStartup() throws Throwable {
-		setupFilenames(".txt");
-		multipleStacksOnStartup();
-		
-	}
-	
-	/**
-	 * Test for .session files and the SessionEditorPart editor. Part 1 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleEditorsSession() throws Throwable {
-		setupFilenames(".session");
-		multipleEditors();
-		assertEquals(Bug95357Test.FILE_MAX, SessionEditorPart.instantiatedEditors);
-		
-	}
-	
-	/**
-	 * Test for .session files and the SessionEditorPart editor. Part 2 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleEditorsOpenSession() throws Throwable {
-		setupFilenames(".session");
-		multipleEditorsOpen();
-		assertEquals(2, SessionEditorPart.instantiatedEditors);
-	}
-
-	/**
-	 * Test multiple stacks with .session editor. Part 1 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleStacksSession() throws Throwable {
-		setupFilenames(".session");
-		SessionEditorPart.instantiatedEditors = 0;
-		multipleStacks();
-		assertEquals(Bug95357Test.FILE_MAX, SessionEditorPart.instantiatedEditors);
-		
-	}
-	
-	/**
-	 * Test multiple stacks with .session editor. Part 2 of 2
-	 * 
-	 * @throws Throwable
-	 */
-	public void testMultipleStacksOnStartupSession() throws Throwable {
-		setupFilenames(".session");
-		multipleStacksOnStartup();
-		assertEquals(2, SessionEditorPart.instantiatedEditors);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug98800Test.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug98800Test.java
deleted file mode 100644
index 31ee6c1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/Bug98800Test.java
+++ /dev/null
@@ -1,96 +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.tests.session;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * If a view is not activated during a session, it's part is not instantiated.
- * This tests that case, and the outcome should be the view has it's last
- * session state when it is finally instantiated in the workbench.
- * 
- * @since 3.1.1
- */
-public class Bug98800Test extends TestCase {
-	private static final String PROBLEM_VIEW_ID = "org.eclipse.ui.views.ProblemView";
-
-	private static final String VIEW_WITH_STATE_ID = "org.eclipse.ui.tests.session.ViewWithState";
-
-	public static TestSuite suite() {
-		return new TestSuite(Bug98800Test.class);
-	}
-
-	private IWorkbenchPage fPage;
-
-	public Bug98800Test(String testName) {
-		super(testName);
-		fPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
-				.getActivePage();
-	}
-
-	/**
-	 * This is the first part of a 3 part tests.  First instantiate a view
-	 * and set a state.
-	 * @throws Throwable
-	 */
-	public void testActivateView() throws Throwable {
-		IViewPart v = fPage.showView(VIEW_WITH_STATE_ID);
-		
-		// put another view in front of our view
-		fPage.showView(PROBLEM_VIEW_ID);
-		
-		// set a state so it can be saved
-		ViewWithState view = (ViewWithState) v;
-		view.fState = 10;
-	}
-
-	/**
-	 * The second session doesn't activate the view, so it should not
-	 * be instantiated.
-	 *  
-	 * @throws Throwable
-	 */
-	public void testSecondOpening() throws Throwable {
-		IViewReference[] views = fPage.getViewReferences();
-		for (int i = 0; i < views.length; i++) {
-			IViewReference ref = views[i];
-			if (ref.getId().equals(VIEW_WITH_STATE_ID)) {
-				assertNull("The view should not be instantiated", ref
-						.getPart(false));
-			}
-		}
-	}
-
-	/**
-	 * Activate the view and it's state should re-appear.
-	 * @throws Throwable
-	 */
-	public void testSavedMemento() throws Throwable {
-		IViewPart v = fPage.showView(VIEW_WITH_STATE_ID);
-		ViewWithState view = (ViewWithState) v;
-		assertEquals(
-				"the view state should have made it through a session without instantiation",
-				10, view.fState);
-
-		// the state should not be saved between a close and
-		// an open in the same session
-		fPage.hideView(v);
-		v = fPage.showView(VIEW_WITH_STATE_ID);
-		view = (ViewWithState) v;
-		assertEquals("The view state should be reset", 0, view.fState);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/EditorWithStateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/EditorWithStateTest.java
deleted file mode 100644
index 78c6422..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/EditorWithStateTest.java
+++ /dev/null
@@ -1,71 +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.tests.session;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.api.MockEditorWithState;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-
-/**
- * A test to verify the persistence of handler state between sessions.
- * 
- * @since 3.2
- */
-public class EditorWithStateTest extends TestCase {
-
-	/**
-	 * Constructs a new instance of <code>EditorWithStateTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public EditorWithStateTest(final String testName) {
-		super(testName);
-	}
-
-	public void testInitialEditorOpen() throws Exception {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-		IProject proj = FileUtil.createProject("EditorSessionTest");
-		IFile file = FileUtil.createFile("state.txt", proj);
-		MockEditorWithState editor = (MockEditorWithState) page.openEditor(
-				new FileEditorInput(file), MockEditorWithState.ID);
-		assertFalse(editor.getCallHistory().contains("saveState"));
-		assertFalse(editor.getCallHistory().contains("restoreState"));
-		
-		assertTrue(editor.isSaveOnCloseNeeded());
-		editor.setSaveNeeded(false);
-	}
-
-	public void testSecondEditorOpen() throws Exception {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(
-				"EditorSessionTest");
-		IFile file = project.getFile("state.txt");
-		MockEditorWithState editor = (MockEditorWithState) page
-				.findEditor(new FileEditorInput(file));
-		assertNotNull(editor);
-		assertFalse(editor.getCallHistory().contains("saveState"));
-		assertTrue(editor.getCallHistory().contains("restoreState"));
-		assertFalse(editor.isSaveOnCloseNeeded());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/HandlerStateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/HandlerStateTest.java
deleted file mode 100644
index ba9534d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/HandlerStateTest.java
+++ /dev/null
@@ -1,125 +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.tests.session;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.State;
-import org.eclipse.jface.commands.PersistentState;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.commands.ICommandService;
-
-/**
- * A test to verify the persistence of handler state between sessions.
- * 
- * @since 3.2
- */
-public class HandlerStateTest extends TestCase {
-
-	/**
-	 * The identifier of the command with state that we wish to test.
-	 */
-	private static final String COMMAND_ID = "org.eclipse.ui.tests.commandWithState";
-
-	/**
-	 * The identifier of the state with an initial value of <code>false</code>.
-	 */
-	private static final String FALSE_STATE_ID = "FALSE";
-
-	/**
-	 * The text after the handler state has been modified.
-	 */
-	private static final String MODIFIED_TEXT = "Rain rain go away come back again in april or may";
-
-	/**
-	 * The identifier of the text state with an initial value of
-	 * <code>null</code>.
-	 */
-	private static final String TEXT_STATE_ID = "TEXT";
-
-	/**
-	 * The identifier of the state with an initial value of <code>true</code>.
-	 */
-	private static final String TRUE_STATE_ID = "TRUE";
-
-	/**
-	 * Constructs a new instance of <code>HandlerStateTest</code>.
-	 * 
-	 * @param testName
-	 *            The name of the test; may be <code>null</code>.
-	 */
-	public HandlerStateTest(final String testName) {
-		super(testName);
-	}
-
-	/**
-	 * Verifies that the initial handler state is correct. After this, the state
-	 * is changed.
-	 */
-	public final void testInitialHandlerState() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final ICommandService service = (ICommandService) workbench
-				.getService(ICommandService.class);
-		final Command command = service.getCommand(COMMAND_ID);
-		State state;
-		boolean actual;
-
-		// Check the state that defaults to true.
-		state = command.getState(TRUE_STATE_ID);
-		actual = ((Boolean) state.getValue()).booleanValue();
-		assertTrue("The initial value should be true", actual);
-		state.setValue(Boolean.FALSE);
-
-		// Check the state that defaults to false.
-		state = command.getState(FALSE_STATE_ID);
-		actual = ((Boolean) state.getValue()).booleanValue();
-		assertTrue("The initial value should be false", !actual);
-		state.setValue(Boolean.TRUE);
-
-		// Check the text state.
-		state = command.getState(TEXT_STATE_ID);
-		final String text = (String) state.getValue();
-		assertNull("The initial value should be null", text);
-		((PersistentState) state).setShouldPersist(true);
-		state.setValue(MODIFIED_TEXT);
-	}
-
-	/**
-	 * Verifies that the handler state is persisted between sessions.
-	 */
-	public final void testModifiedHandlerState() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final ICommandService service = (ICommandService) workbench
-				.getService(ICommandService.class);
-		final Command command = service.getCommand(COMMAND_ID);
-		State state;
-		boolean actual;
-
-		// Test the state that defaults to true is now false.
-		state = command.getState(TRUE_STATE_ID);
-		actual = ((Boolean) state.getValue()).booleanValue();
-		assertTrue("The value should now be different", !actual);
-
-		// Test the state that defaults to false is now true.
-		state = command.getState(FALSE_STATE_ID);
-		actual = ((Boolean) state.getValue()).booleanValue();
-		assertTrue("The value should now be different", actual);
-
-		// Test that the text state is now MODIFIED_TEXT.
-		state = command.getState(TEXT_STATE_ID);
-		((PersistentState) state).setShouldPersist(true);
-		final String text = (String) state.getValue();
-		assertEquals("The modified value was not persisted", MODIFIED_TEXT,
-				text);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/IntroSessionTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/IntroSessionTests.java
deleted file mode 100644
index c641550..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/IntroSessionTests.java
+++ /dev/null
@@ -1,35 +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.tests.session;
-
-import junit.framework.TestCase;
-
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Tests intro-related session properties.
- * 
- * @since 3.1
- */
-public class IntroSessionTests extends TestCase {
-	
-	/**
-	 * @param name
-	 */
-	public IntroSessionTests(String name) {
-		super(name);
-	}
-	
-	public void testIntro() {
-		//assert that the intro was not shown
-		assertNull(PlatformUI.getWorkbench().getIntroManager().getIntro());
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/LocaleTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/LocaleTest.java
deleted file mode 100644
index 62d4c4a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/LocaleTest.java
+++ /dev/null
@@ -1,68 +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.tests.session;
-
-import java.util.Locale;
-
-import org.eclipse.ui.IPerspectiveDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.tests.navigator.AbstractNavigatorTest;
-
-/**
- * 
- */
-public class LocaleTest extends AbstractNavigatorTest {
-
-	
-	public LocaleTest(String testName) {
-		super(testName);
-		
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.tests.harness.util.UITestCase#doSetUp()
-	 */
-	protected void doSetUp() throws Exception {
-		super.doSetUp();
-		createTestFile();
-	}
-	
-	
-	public void testLocales() {
-		Locale[] locales = Locale.getAvailableLocales();
-		Locale oldLocale = Locale.getDefault();
-		
-		switchLocale(new Locale("sv"));
-		for (int i = 0; i < locales.length; i++) {
-			Locale locale = locales[i];
-			switchLocale(locale);
-		}
-		
-		Locale.setDefault(oldLocale);
-	}
-
-	/**
-	 * @param locale
-	 */
-	private void switchLocale(Locale locale) {
-		Locale.setDefault(locale);
-		System.out.println(locale.toString());
-		IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-		IPerspectiveDescriptor[] perspectives = PlatformUI.getWorkbench()
-				.getPerspectiveRegistry().getPerspectives();
-		for (int j = 0; j < perspectives.length; j++) {
-			page.setPerspective(perspectives[j]);
-		}
-		page.closeAllPerspectives(false, false);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorablePropertySheetTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorablePropertySheetTest.java
deleted file mode 100644
index 199ae8b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorablePropertySheetTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 Versant Corp and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
- ******************************************************************************/
-
-package org.eclipse.ui.tests.session;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.PropertySheet;
-
-/**
- * The secondary property sheets should be closed so there aren't restored in
- * the next workbench session.
- * 
- * @since 3.4
- */
-public class NonRestorablePropertySheetTest extends TestCase {
-
-	public static TestSuite suite() {
-		return new TestSuite(NonRestorablePropertySheetTest.class);
-	}
-
-	public NonRestorablePropertySheetTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * This is the first part instantiates a bunch of property sheets
-	 * 
-	 * @throws PartInitException
-	 */
-	public void test01ActivateView() throws PartInitException {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		IViewPart part = page.showView(IPageLayout.ID_PROP_SHEET);
-		assertNotNull(part);
-		assertTrue(part instanceof PropertySheet);
-
-		for (int j = 0; j < 3; j++) {
-			try {
-				page.showView(IPageLayout.ID_PROP_SHEET, "#" + j,
-						IWorkbenchPage.VIEW_ACTIVATE);
-			} catch (PartInitException e) {
-				fail(e.getMessage());
-			}
-		}
-		assertTrue(countPropertySheetViews(page) == 4);
-	}
-
-	/**
-	 * In the second session the property sheet views with secondary ids
-	 * shouldn't be instantiated.
-	 * 
-	 * @throws PartInitException
-	 */
-	public void test02SecondOpening() throws PartInitException {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		assertTrue(countPropertySheetViews(page) == 1);
-	}
-
-	// simple counts how many property sheet instances are open
-	private int countPropertySheetViews(final IWorkbenchPage page) {
-		int count = 0;
-		IViewReference[] views = page.getViewReferences();
-		for (int i = 0; i < views.length; i++) {
-			IViewReference ref = views[i];
-			if (ref.getId().equals(IPageLayout.ID_PROP_SHEET)) {
-				count++;
-			}
-		}
-		return count;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorableViewTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorableViewTest.java
deleted file mode 100644
index e2ba79f..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/NonRestorableViewTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 Versant Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     Versant Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.ui.tests.session;
-
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * If a view is set to non restorable during a session, it's part is not instantiated.
- * This tests that case, and the outcome should be that the view doesn't get 
- * instanciated in the second session.
- * 
- * @since 3.4
- */
-public class NonRestorableViewTest extends TestCase {
-
-	private static final String NON_RESTORABLE_VIEW_ID = "org.eclipse.ui.tests.session.NonRestorableView";
-
-	public static TestSuite suite() {
-		return new TestSuite(NonRestorableViewTest.class);
-	}
-
-	public NonRestorableViewTest(String testName) {
-		super(testName);
-	}
-
-	/**
-	 * This is the first part  instantiates a non restorable view
-	 * 
-	 * @throws Throwable
-	 */
-	public void test01ActivateView() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		IViewPart part = page.showView(NON_RESTORABLE_VIEW_ID);
-		assertNotNull(part);
-		assertTrue(part instanceof NonRestorableView);
-	}
-
-	/**
-	 * In the second session the view shouldn't be
-	 * instantiated.
-	 * 
-	 * @throws Throwable
-	 */
-	public void test02SecondOpening() throws Throwable {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IWorkbenchPage page = workbench.getActiveWorkbenchWindow()
-				.getActivePage();
-
-		IViewReference[] views = page.getViewReferences();
-		for (int i = 0; i < views.length; i++) {
-			IViewReference ref = views[i];
-			if (ref.getId().equals(NON_RESTORABLE_VIEW_ID)) {
-				fail("Should not find this view");
-			}
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/RestoreSessionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/RestoreSessionTest.java
deleted file mode 100644
index 8e1af8b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/RestoreSessionTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.session;
-
-import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
-
-import junit.framework.TestCase;
-
-
-/**
- * @since 3.5
- */
-public class RestoreSessionTest extends TestCase {
-	
-	public RestoreSessionTest(String name) {
-		super(name);
-	}
-
-	/**
-	 * Checks various combinations of Thread + DisplayAccess + [a]sync execs. 
-	 * Anything without a call to DisplayAccess should be deferred until after startup.
-	 * @see RCPTestWorkbenchAdvisor#preStartup()
-	 */
-	public void testDisplayAccess() {
-		// check that there was a display during startup
-		assertNotNull(RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
-		assertNotNull(RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
-		
-		assertNotNull(RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
-		assertNotNull(RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
-		
-		assertNotNull(RCPTestWorkbenchAdvisor.asyncDuringStartup);
-		
-		// test startup threading - async run during startup
-		assertEquals(Boolean.FALSE, RCPTestWorkbenchAdvisor.asyncDuringStartup);
-		
-		// sync & async from qualified thread should have run during the startup
-		assertEquals(Boolean.TRUE, RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
-		assertEquals(Boolean.TRUE, RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
-		
-		// sync & async from a non-qualified thread should not have run during the startup
-		assertEquals(Boolean.FALSE, RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
-		assertEquals(Boolean.FALSE, RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
-		
-		// display access during startup in UI thread should not cause an exception
-		assertFalse(RCPTestWorkbenchAdvisor.displayAccessInUIThreadAllowed);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/SessionTests.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/SessionTests.java
deleted file mode 100644
index 7f5d599..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/SessionTests.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Markus Alexander Kuppe, Versant Corporation - bug #215797
- *******************************************************************************/
-package org.eclipse.ui.tests.session;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.ui.tests.harness.util.TweakletCheckTest;
-import org.eclipse.ui.tests.markers.MarkersViewColumnSizeTest;
-import org.eclipse.ui.tests.statushandlers.StatusHandlerConfigurationSuite;
-import org.eclipse.ui.tests.statushandlers.StatusHandlingConfigurationTest;
-
-/**
- * @since 3.1
- */
-public class SessionTests extends TestSuite {
-
-	/**
-	 * @return
-	 */
-	public static Test suite() {
-		return new SessionTests();
-	}
-
-	/**
-	 * 
-	 */
-	public SessionTests() {
-		addTweakletCheck();
-		addHandlerStateTests();
-		addIntroTests();
-		addEditorTests();
-		addViewStateTests();
-		addThemeTests();
-		addStatusHandlingTests();
-		addRestoredSessionTest();
-	}
-
-	/**
-	 * 
-	 */
-	private void addStatusHandlingTests() {
-		//actually we do not care which workspace is used
-		addTest(new StatusHandlerConfigurationSuite("themeSessionTests",
-				StatusHandlingConfigurationTest.class));
-	}
-
-	/**
-	 * 
-	 */
-	private void addTweakletCheck() {
-		addTest(new TweakletCheckTest());
-	}
-
-	/**
-	 * 
-	 */
-	private void addThemeTests() {
-		addTest(new WorkbenchSessionTest("themeSessionTests",
-				ThemeStateTest.class));
-		
-	}
-
-	private void addRestoredSessionTest() {
-		Map arguments = new HashMap(2);
-		arguments.put("product", null);
-		arguments.put("testApplication", "org.eclipse.ui.tests.rcpSessionApplication");
-		addTest(new WorkbenchSessionTest("introSessionTests",RestoreSessionTest.class, arguments));
-	}
-
-	/**
-	 * Add editor tests that involve starting and stopping sessions.
-	 */
-	private void addEditorTests() {
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				Bug95357Test.class));
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				EditorWithStateTest.class));
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				ArbitraryPropertiesEditorTest.class));
-	}
-
-	/**
-	 * Adds tests related to command and handler state.
-	 * 
-	 * @since 3.2
-	 */
-	private void addHandlerStateTests() {
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				HandlerStateTest.class));
-	}
-
-	/**
-	 * Adds intro related session tests.
-	 */
-	private void addIntroTests() {
-		addTest(new WorkbenchSessionTest("introSessionTests",
-				IntroSessionTests.class));
-	}
-
-	/**
-	 * Add a view state test that involves state from one session to the other.
-	 * 
-	 * BTW: the <b>editorSessionTests</b> is the zip file to grab the default
-	 * workspace for these particular session tests.
-	 */
-	private void addViewStateTests() {
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				Bug98800Test.class));
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				Bug108033Test.class));
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				ArbitraryPropertiesViewTest.class));
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				NonRestorableViewTest.class));
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				NonRestorablePropertySheetTest.class));
-		addTest(new WorkbenchSessionTest("editorSessionTests",
-				MarkersViewColumnSizeTest.class));
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ThemeStateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ThemeStateTest.java
deleted file mode 100644
index 8cf5a2d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ThemeStateTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.session;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.themes.IThemeManager;
-
-import junit.framework.TestCase;
-
-/**
- * Tests various persistent theme properties.
- * 
- * @since 3.4
- */
-public class ThemeStateTest extends TestCase {
-
-	public ThemeStateTest(final String name) {
-		super(name);
-	}
-
-	/**
-	 * Tests to ensure that the workbench still comes up if there's a bad theme
-	 * ID in the preference store.
-	 */
-	public void testBadPreference() {
-		String themeId = PlatformUI.getWorkbench().getThemeManager()
-				.getCurrentTheme().getId();
-		assertNotNull(themeId);
-		assertEquals(IThemeManager.DEFAULT_THEME, themeId);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ViewWithState.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ViewWithState.java
deleted file mode 100644
index 3d59349..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/ViewWithState.java
+++ /dev/null
@@ -1,50 +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.tests.session;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-
-public class ViewWithState extends ViewPart {
-
-	private static final String STATE = "state";
-
-	public int fState = 0;
-
-	public void createPartControl(Composite parent) {
-		Label l = new Label(parent, SWT.NONE);
-		l.setText("This view should have some saved state: " + fState);
-	}
-
-	public void setFocus() {
-		// do nothing
-	}
-
-	public void init(IViewSite site, IMemento memento) throws PartInitException {
-		super.init(site, memento);
-		if (memento != null) {
-			Integer i = memento.getInteger(STATE);
-			if (i != null) {
-				fState = i.intValue();
-			}
-		}
-	}
-
-	public void saveState(IMemento memento) {
-		memento.putInteger(STATE, fState);
-		super.saveState(memento);
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java
deleted file mode 100644
index 93855ec..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/WorkbenchSessionTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.session;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.tests.harness.FileSystemHelper;
-import org.eclipse.core.tests.session.SessionTestSuite;
-import org.eclipse.core.tests.session.Setup;
-import org.eclipse.core.tests.session.SetupManager;
-import org.eclipse.core.tests.session.SetupManager.SetupException;
-import org.eclipse.ui.tests.TestPlugin;
-import org.eclipse.ui.tests.harness.util.FileTool;
-
-/**
- * Wrapper for workbench session tests.
- * 
- * @since 3.1
- */
-public class WorkbenchSessionTest extends SessionTestSuite {
-	
-	private Map arguments;
-
-	private String dataLocation;
-	
-	/**
-	 * Create a new workbench session test.
-	 * 
-	 * @param dataLocation
-	 *            the location of the workspace to test, relative to
-	 *            data/workspaces
-	 * @param clazz
-	 *            the <code>Test</code> class
-	 */
-	public WorkbenchSessionTest(String dataLocation, Class clazz, Map arguments) {
-		this(dataLocation, clazz);
-		this.arguments = arguments;
-	}
-	
-	/**
-	 * Create a new workbench session test.
-	 * 
-	 * @param dataLocation
-	 *            the location of the workspace to test, relative to
-	 *            data/workspaces
-	 * @param clazz
-	 *            the <code>Test</code> class
-	 */
-	public WorkbenchSessionTest(String dataLocation, Class clazz) {
-		super("org.eclipse.ui.tests", clazz);
-		setApplicationId(SessionTestSuite.UI_TEST_APPLICATION);		
-		this.dataLocation = dataLocation;
-	}
-	
-	/**
-	 * Create a new workbench session test.
-	 * 
-	 * @param dataLocation
-	 *            the location of the workspace to test, relative to
-	 *            data/workspaces
-	 * @since 3.4
-	 */
-	public WorkbenchSessionTest(String dataLocation) {
-		super(dataLocation);
-		setApplicationId(SessionTestSuite.UI_TEST_APPLICATION);		
-		this.dataLocation = dataLocation;
-	}
-
-	/**
-	 * Ensures setup uses this suite's instance location.
-	 * 
-	 * @throws SetupException
-	 */
-	protected Setup newSetup() throws SetupException {
-		Setup base = super.newSetup();
-		try {
-			base.setEclipseArgument(Setup.DATA, copyDataLocation());
-			if (arguments != null) {
-				for(Iterator i = arguments.entrySet().iterator(); i.hasNext(); ) {
-					Map.Entry entry = (Map.Entry) i.next();
-					String key = (String) entry.getKey();
-					String value = (String) entry.getValue();
-					base.setEclipseArgument(key, value);
-				}
-			}
-		} catch (Exception e) {
-			throw SetupManager.getInstance().new SetupException(e.getMessage(),
-					e);
-		}
-		return base;
-	}
-
-	/**
-	 * Copies the data to a temporary directory and returns the new location.
-	 * 
-	 * @return the location
-	 */
-	private String copyDataLocation() throws IOException {
-        TestPlugin plugin = TestPlugin.getDefault();
-        if (plugin == null)
-            throw new IllegalStateException(
-                    "TestPlugin default reference is null");
-        
-        URL fullPathString = plugin.getDescriptor().find(
-				new Path("data/workspaces/" + dataLocation + ".zip"));
-        
-        if (fullPathString == null) 
-        	throw new IllegalArgumentException();
-        
-        IPath path = new Path(fullPathString.getPath());
-
-        File origin = path.toFile();
-        if (!origin.exists())
-			throw new IllegalArgumentException();
-        
-        ZipFile zFile = new ZipFile(origin);        
-		
-		File destination = new File(FileSystemHelper.getRandomLocation(FileSystemHelper.getTempDir()).toOSString());
-		FileTool.unzip(zFile, destination);
-		return destination.getAbsolutePath();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FaultyExportWizard.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FaultyExportWizard.java
deleted file mode 100644
index 9a1dc7c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FaultyExportWizard.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-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.Label;
-import org.eclipse.ui.IExportWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * This wizard with no default constructor. Used during the status handling
- * facility tests.
- */
-public class FaultyExportWizard extends Wizard implements IExportWizard {
-
-	/**
-	 * Intentional constructor that hides default one
-	 * 
-	 * @param name
-	 *            does nothing
-	 */
-	public FaultyExportWizard(String name) {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.wizard.Wizard#performFinish()
-	 */
-	public boolean performFinish() {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench,
-	 *      org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-		setWindowTitle("window title");
-	}
-
-	public void addPages() {
-		super.addPages();
-		addPage(new MyWizardPage("wizard"));
-	}
-
-	public class MyWizardPage extends WizardPage {
-		/**
-		 * Creates some wizard page
-		 * 
-		 * @param pageName
-		 */
-		protected MyWizardPage(String pageName) {
-			super(pageName);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-		 */
-		public void createControl(Composite parent) {
-			Composite page = new Composite(parent, SWT.NONE);
-			GridLayout pageLayout = new GridLayout();
-			page.setLayout(pageLayout);
-			page.setLayoutData(new GridData(GridData.FILL_BOTH));
-			Label nameLabel = new Label(page, SWT.NONE);
-			nameLabel.setText("some label");
-			setControl(page);
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FreeStatusHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FreeStatusHandler.java
deleted file mode 100644
index a3abaec..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/FreeStatusHandler.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import org.eclipse.ui.statushandlers.AbstractStatusHandler;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-
-/**
- * This status handler is not bound to any product.
- * @since 3.5
- *
- */
-public class FreeStatusHandler extends AbstractStatusHandler {
-
-	private static AbstractStatusHandler tester;
-
-	public synchronized void handle(StatusAdapter statusAdapter, int style) {
-		if (tester != null) {
-			tester.handle(statusAdapter, style);
-		}
-	}
-
-	public static synchronized void setTester(AbstractStatusHandler tester) {
-		FreeStatusHandler.tester = tester;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogManagerTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogManagerTest.java
deleted file mode 100644
index 7bd3c26..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogManagerTest.java
+++ /dev/null
@@ -1,857 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.util.Policy;
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.statushandlers.IStatusDialogConstants;
-import org.eclipse.ui.progress.IProgressConstants;
-import org.eclipse.ui.statushandlers.AbstractStatusAreaProvider;
-import org.eclipse.ui.statushandlers.IStatusAdapterConstants;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.eclipse.ui.statushandlers.WorkbenchErrorHandler;
-import org.eclipse.ui.statushandlers.WorkbenchStatusDialogManager;
-
-public class StatusDialogManagerTest extends TestCase {
-
-	private static final String ACTION_NAME = "actionname";
-	private static final String JOB_NAME = "jobname";
-	private static final String THROWABLE = "throwable";
-	private final static String MESSAGE_1 = "TEST_MESSAGE_1";
-	private final static String MESSAGE_2 = "TEST_MESSAGE_2";
-	private final static String TITLE = "TEST_TITLE";
-	private final static NullPointerException NPE = new NullPointerException();
-	private final static NullPointerException NPE_WITH_MESSAGE = new NullPointerException(
-			THROWABLE);
-	private final static String NPE_NAME = NPE.getClass().getName();
-
-	private boolean automatedMode;
-	WorkbenchStatusDialogManager wsdm;
-	
-	protected void setUp() throws Exception {
-		automatedMode = ErrorDialog.AUTOMATED_MODE;
-		wsdm = new WorkbenchStatusDialogManager(null, null);
-		ErrorDialog.AUTOMATED_MODE = false;
-		super.setUp();
-	}
-
-	public void testBlockingAppearance() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), true);
-		Shell shell = StatusDialogUtil.getStatusShell();
-		assertNotNull(shell);
-		assertTrue((shell.getStyle() & SWT.APPLICATION_MODAL) == SWT.APPLICATION_MODAL);
-	}
-
-	public void testNonBlockingAppearance() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
-		Shell shell = StatusDialogUtil.getStatusShell();
-		assertNotNull(shell);
-		assertFalse((shell.getStyle() & SWT.APPLICATION_MODAL) == SWT.APPLICATION_MODAL);
-	}
-
-	public void testModalitySwitch1() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
-		Shell shell = StatusDialogUtil.getStatusShell();
-		assertNotNull(shell);
-		assertFalse((shell.getStyle() & SWT.APPLICATION_MODAL) == SWT.APPLICATION_MODAL);
-
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), true);
-		shell = StatusDialogUtil.getStatusShell();
-		assertNotNull(shell);
-		assertTrue((shell.getStyle() & SWT.APPLICATION_MODAL) == SWT.APPLICATION_MODAL);
-	}
-	
-	public void testCheckingForMessageDuplication1() {
-		IStatus status = new IStatus() {
-
-			public IStatus[] getChildren() {
-				// TODO Auto-generated method stub
-				return new IStatus[0];
-			}
-
-			public int getCode() {
-				return IStatus.ERROR;
-			}
-
-			public Throwable getException() {
-				return new ArrayIndexOutOfBoundsException();
-			}
-
-			public String getMessage() {
-				return null;
-			}
-
-			public String getPlugin() {
-				return "plugin";
-			}
-
-			public int getSeverity() {
-				return IStatus.ERROR;
-			}
-
-			public boolean isMultiStatus() {
-				return false;
-			}
-
-			public boolean isOK() {
-				return false;
-			}
-
-			public boolean matches(int severityMask) {
-				return true;
-			}
-
-		};
-		wsdm.addStatusAdapter(new StatusAdapter(status), false);
-
-		assertEquals(status.getException().getClass().getName(),
-				StatusDialogUtil.getTitleLabel().getText());
-		assertEquals(WorkbenchMessages.WorkbenchStatusDialog_SeeDetails,
-				StatusDialogUtil.getSingleStatusLabel().getText());
-	}
-
-	/**
-	 * Preserving details selection and state
-	 */
-	public void testModalitySwitch2() {
-		final StatusAdapter[] passed = new StatusAdapter[] { null };
-		final Composite[] details = new Composite[] { null };
-		setupDetails(passed, details);
-		StatusAdapter sa = createStatusAdapter(MESSAGE_1);
-		wsdm.addStatusAdapter(sa, false);
-
-		// open details
-		selectWidget(StatusDialogUtil.getDetailsButton());
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_2), true);
-
-		assertNotNull(details[0]);
-		assertFalse(details[0].isDisposed());
-		assertEquals(sa, passed[0]);
-	}
-
-	/**
-	 * Preserving support selection and state
-	 */
-	public void testModalitySwitch3() {
-		final StatusAdapter[] passed = new StatusAdapter[] { null };
-		final Composite[] support = new Composite[] { null };
-		setupSupportArea(passed, support);
-		StatusAdapter sa = createStatusAdapter(MESSAGE_1);
-		wsdm.addStatusAdapter(sa, false);
-
-		// open support
-		selectWidget(StatusDialogUtil.getSupportLink());
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_2), true);
-
-		assertNotNull(support[0]);
-		assertFalse(support[0].isDisposed());
-		assertEquals(sa, passed[0]);
-	}
-	
-	/**
-	 * Be sure that label provider is not disposed during modality switch.
-	 */
-	public void testModalitySwitch4() {
-		final boolean[] disposed = new boolean[] { false };
-		ITableLabelProvider provider = new ITableLabelProvider() {
-
-			public Image getColumnImage(Object element, int columnIndex) {
-				return null;
-			}
-
-			public String getColumnText(Object element, int columnIndex) {
-				return "";
-			}
-
-			public void addListener(ILabelProviderListener listener) {
-			}
-
-			public void dispose() {
-				disposed[0] = true;
-			}
-
-			public boolean isLabelProperty(Object element, String property) {
-				return false;
-			}
-
-			public void removeListener(ILabelProviderListener listener) {
-			}
-
-		};
-		wsdm.setStatusListLabelProvider(provider);
-
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_2), true);
-
-		assertFalse(
-				"Label provider should not be disposed during modality switch.",
-				disposed[0]);
-
-		selectWidget(StatusDialogUtil.getOkButton());
-		assertTrue("Label should be disposed when the dialog is closed.",
-				disposed[0]);
-	}
-
-	/**
-	 * Simple status without exception Check primary and secondary message.
-	 * Verify invisible action button.
-	 */
-	public void testWithStatusAdapter1() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-		assertNotNull(titleLabel);
-		assertEquals(MESSAGE_1, titleLabel.getText());
-
-		Label secondaryLabel = StatusDialogUtil.getSingleStatusLabel();
-		assertNotNull(secondaryLabel);
-		assertEquals(WorkbenchMessages.WorkbenchStatusDialog_SeeDetails,
-				secondaryLabel.getText());
-
-		// check invisible action button
-		Button actionButton = StatusDialogUtil.getActionButton();
-		assertNotNull(actionButton);
-		assertFalse(actionButton.isVisible());
-		Object layoutData = actionButton.getLayoutData();
-		assertTrue(layoutData instanceof GridData);
-		assertTrue(((GridData) layoutData).exclude);
-	}
-
-	public void testWithStatusAdapterAndLabelProvider1(){
-		wsdm.setMessageDecorator(new ILabelDecorator(){
-			
-			public Image decorateImage(Image image, Object element) {
-				// TODO Auto-generated method stub
-				return null;
-			}
-			
-			public String decorateText(String text, Object element) {
-				// TODO Auto-generated method stub
-				return text.replaceAll("[A-Z][A-Z][A-Z][0-9][0-9]", "");
-			}
-			
-			public void addListener(ILabelProviderListener listener) {
-				// TODO Auto-generated method stub
-				
-			}
-			
-			public void dispose() {
-				// TODO Auto-generated method stub
-				
-			}
-			
-			public boolean isLabelProperty(Object element, String property) {
-				// TODO Auto-generated method stub
-				return false;
-			}
-			
-			public void removeListener(ILabelProviderListener listener) {
-				// TODO Auto-generated method stub
-				
-			}
-			
-		});
-		wsdm.addStatusAdapter(createStatusAdapter("XYZ01" + MESSAGE_1), false);
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-		assertNotNull(titleLabel);
-		assertEquals(MESSAGE_1, titleLabel.getText());
-
-		Label secondaryLabel = StatusDialogUtil.getSingleStatusLabel();
-		assertNotNull(secondaryLabel);
-		assertEquals(WorkbenchMessages.WorkbenchStatusDialog_SeeDetails,
-				secondaryLabel.getText());
-	}
-	
-	
-	/**
-	 * Simple status with title. Check primary and secondary message. Verify
-	 * closing.
-	 */
-	public void testWithStatusAdapter2() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1, TITLE),
-				false);
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-		assertNotNull(titleLabel);
-		assertEquals(TITLE, titleLabel.getText());
-
-		Label secondaryLabel = StatusDialogUtil.getSingleStatusLabel();
-		assertNotNull(secondaryLabel);
-		assertEquals(MESSAGE_1, secondaryLabel.getText());
-
-		selectWidget(StatusDialogUtil.getOkButton());
-		// dialog closed
-		assertNull(StatusDialogUtil.getStatusShell());
-
-		// list cleared
-		assertEquals(0, wsdm.getStatusAdapters().size());
-	}
-
-	/**
-	 * Simple status with exception with message
-	 */
-	public void testWithStatusAdapter3() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1,
-				NPE_WITH_MESSAGE), false);
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-		assertNotNull(titleLabel);
-		assertEquals(MESSAGE_1, titleLabel.getText());
-
-		Label secondaryLabel = StatusDialogUtil.getSingleStatusLabel();
-		assertNotNull(secondaryLabel);
-		assertEquals(THROWABLE, secondaryLabel.getText());
-	}
-
-	/**
-	 * Simple status with exception without message
-	 */
-	public void testWithStatusAdapter4() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1, NPE), false);
-
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-		assertNotNull(titleLabel);
-		assertEquals(MESSAGE_1, titleLabel.getText());
-
-		Label secondaryLabel = StatusDialogUtil.getSingleStatusLabel();
-		assertNotNull(secondaryLabel);
-		assertEquals(NPE_NAME, secondaryLabel.getText());
-	}
-
-	/**
-	 * Simple status from job
-	 */
-	public void testWithStatusAdapter5() {
-		String message = "testmessage";
-		StatusAdapter statusAdapter = new StatusAdapter(new Status(
-				IStatus.ERROR, "testplugin", message));
-		Job job = new Job("job") {
-			protected IStatus run(IProgressMonitor monitor) {
-				return null;
-			}
-		};
-		statusAdapter.addAdapter(Job.class, job);
-		wsdm.addStatusAdapter(statusAdapter, false);
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-		assertNotNull(titleLabel);
-		assertEquals(titleLabel.getText(), NLS.bind(
-				WorkbenchMessages.WorkbenchStatusDialog_ProblemOccurredInJob,
-				job.getName()));
-		Label secondaryLabel = StatusDialogUtil.getSingleStatusLabel();
-		assertNotNull(secondaryLabel);
-		assertEquals(secondaryLabel.getText(), message);
-	}
-
-	/**
-	 * Simple status from job with action
-	 */
-	public void testWithStatusAdapter6() {
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1, JOB_NAME,
-				ACTION_NAME), false);
-
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-		assertNotNull(titleLabel);
-		assertEquals(NLS.bind(
-				WorkbenchMessages.WorkbenchStatusDialog_ProblemOccurredInJob,
-				JOB_NAME), titleLabel.getText());
-
-		Label secondaryLabel = StatusDialogUtil.getSingleStatusLabel();
-		assertNotNull(secondaryLabel);
-		assertEquals(MESSAGE_1, secondaryLabel.getText());
-
-		// check visible action button
-		Button actionButton = StatusDialogUtil.getActionButton();
-		assertNotNull(actionButton);
-		assertTrue(actionButton.isVisible());
-
-		Object layoutData = actionButton.getLayoutData();
-		assertTrue(layoutData instanceof GridData);
-		assertFalse(((GridData) layoutData).exclude);
-		assertEquals(ACTION_NAME, actionButton.getText());
-
-		// be sure that support button is not created
-		Link supportLink = StatusDialogUtil.getSupportLink();
-		assertNull(supportLink);
-	}
-
-	/**
-	 * Tests if status dialog passes status adapter to the support provider
-	 * tests if status dialog extends its height & width
-	 */
-	public void testSupport1() {
-		StatusAdapter statusAdapter = createStatusAdapter(MESSAGE_1);
-		final StatusAdapter[] passed = new StatusAdapter[] { null };
-		Composite[] support = new Composite[] { null };
-		setupSupportArea(passed, support);
-		wsdm.addStatusAdapter(statusAdapter, false);
-		openSupportArea(statusAdapter, passed);
-	}
-	
-	/**
-	 * Tests if support area appears by default if appropriate flag is set up.
-	 */
-	public void testSupport2(){
-		StatusAdapter statusAdapter = createStatusAdapter(MESSAGE_1);
-		wsdm.setProperty(IStatusDialogConstants.SHOW_SUPPORT, Boolean.TRUE);
-		final StatusAdapter[] passed = new StatusAdapter[] { null };
-		Composite[] support = new Composite[] { null };
-		setupSupportArea(passed, support);
-		wsdm.addStatusAdapter(statusAdapter, false);
-		assertEquals(statusAdapter, passed[0]);
-	}
-
-	/**
-	 * Tests if details can be closed and opened 2 times tests if correct status
-	 * adapter is passed to details
-	 */
-	public void testDetails1() {
-		StatusAdapter statusAdapter = createStatusAdapter(MESSAGE_1);
-		final StatusAdapter[] passed = new StatusAdapter[] { null };
-		final Composite[] details = new Composite[] { null };
-		setupDetails(passed, details);
-		wsdm.addStatusAdapter(statusAdapter, false);
-		for (int i = 0; i < 2; i++) {
-			passed[0] = null;
-			Point sizeBefore = StatusDialogUtil.getStatusShell().getSize();
-			Button detailsButton = StatusDialogUtil.getDetailsButton();
-			assertNotNull(detailsButton);
-			assertTrue(detailsButton.isEnabled());
-			assertEquals(IDialogConstants.SHOW_DETAILS_LABEL, detailsButton
-					.getText());
-
-			selectWidget(detailsButton);
-
-			Point sizeAfter = StatusDialogUtil.getStatusShell().getSize();
-			assertEquals(statusAdapter, passed[0]);
-			assertTrue(sizeAfter.y > sizeBefore.y);
-			assertEquals(IDialogConstants.HIDE_DETAILS_LABEL, detailsButton
-					.getText());
-			assertNotNull(details[0]);
-			assertFalse(details[0].isDisposed());
-
-			selectWidget(detailsButton);
-
-			Point sizeAfterAfter = StatusDialogUtil.getStatusShell().getSize();
-			assertTrue(sizeAfterAfter.y < sizeAfter.y);
-			assertEquals(IDialogConstants.SHOW_DETAILS_LABEL, detailsButton
-					.getText());
-			assertTrue(details[0].isDisposed());
-		}
-	}
-	
-	public void testNullLabelProvider(){
-		try {
-			wsdm.setStatusListLabelProvider(null);
-			fail();
-		} catch (IllegalArgumentException iae){
-			assertTrue(true);
-		}
-	}
-	
-	//bug 235254
-	public void testNonNullLabelProvider(){
-		try {
-			final boolean [] called = new boolean[]{false};
-			wsdm.setStatusListLabelProvider(new ITableLabelProvider(){
-
-				public Image getColumnImage(Object element, int columnIndex) {
-					return null;
-				}
-
-				public String getColumnText(Object element, int columnIndex) {
-					called[0] = true;
-					return "";
-				}
-
-				public void addListener(ILabelProviderListener listener) {
-					
-				}
-
-				public void dispose() {
-					
-				}
-
-				public boolean isLabelProperty(Object element, String property) {
-					return false;
-				}
-
-				public void removeListener(ILabelProviderListener listener) {
-					
-				}
-				
-			});
-			wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), true);
-			assertTrue(called[0]);
-		} catch (Exception e){
-			fail();
-		}
-	}
-
-	/**
-	 * Verifies that correct status adapter is passed to the support area
-	 */
-	public void testList1() {
-		StatusAdapter statusAdapter1 = createStatusAdapter(MESSAGE_1);
-		StatusAdapter statusAdapter2 = createStatusAdapter(MESSAGE_2);
-
-		StatusAdapter[] passed = new StatusAdapter[] { null };
-		Composite[] support = new Composite[] { null };
-		setupSupportArea(passed, support);
-
-		wsdm.addStatusAdapter(statusAdapter1, false);
-		wsdm.addStatusAdapter(statusAdapter2, false);
-
-		Table table = StatusDialogUtil.getTable();
-		assertNotNull(table);
-		assertEquals(0, table.getSelectionIndex());
-		assertEquals(MESSAGE_1, table.getItem(0).getText());
-		assertEquals(MESSAGE_2, table.getItem(1).getText());
-
-		// this verifies if support is opened for correct statusAdapter
-		openSupportArea(statusAdapter1, passed);
-		selectTable(table, 1);
-		assertEquals(statusAdapter2, passed[0]);
-	}
-
-	/**
-	 * Verifies that correct status adapter is passed to details
-	 */
-	public void testList2() {
-		StatusAdapter statusAdapter1 = createStatusAdapter(MESSAGE_1);
-		StatusAdapter statusAdapter2 = createStatusAdapter(MESSAGE_2);
-
-		Composite[] details = new Composite[] { null };
-		StatusAdapter[] passed = new StatusAdapter[] { null };
-		setupDetails(passed, details);
-
-		wsdm.addStatusAdapter(statusAdapter1, false);
-		wsdm.addStatusAdapter(statusAdapter2, false);
-
-		selectWidget(StatusDialogUtil.getDetailsButton());
-		assertNotNull(details[0]);
-		assertFalse(details[0].isDisposed());
-		assertEquals(statusAdapter1, passed[0]);
-
-		Table table = StatusDialogUtil.getTable();
-		selectTable(table, 1);
-
-		assertNotNull(details[0]);
-		assertFalse(details[0].isDisposed());
-		assertEquals(statusAdapter2, passed[0]);
-	}
-
-	/**
-	 * Tests secondary message and the list element for normal and job status
-	 * adapter
-	 */
-	public void testList3() {
-		StatusAdapter sa1 = createStatusAdapter(MESSAGE_1);
-		StatusAdapter sa2 = createStatusAdapter(MESSAGE_2, JOB_NAME,
-				ACTION_NAME);
-
-		wsdm.addStatusAdapter(sa1, false);
-		wsdm.addStatusAdapter(sa2, false);
-
-		Table table = StatusDialogUtil.getTable();
-		Label titleLabel = StatusDialogUtil.getTitleLabel();
-
-		assertEquals(WorkbenchMessages.WorkbenchStatusDialog_SeeDetails,
-				titleLabel.getText());
-		assertEquals(MESSAGE_1, table.getItem(0).getText());
-
-		selectTable(table, 1);
-
-		assertEquals(MESSAGE_2, titleLabel.getText());
-		assertEquals(JOB_NAME, table.getItem(1).getText());
-	}
-	
-	public void testBug260937(){
-		WorkbenchStatusDialogManager wsdm = new WorkbenchStatusDialogManager(
-				IStatus.CANCEL, null);
-		StatusAdapter sa = createStatusAdapter(MESSAGE_1);
-		try {
-			wsdm.addStatusAdapter(sa, false);
-			assertTrue(true);
-		} catch (NullPointerException npe){
-			fail();
-		}
-	}
-	// checking if the statuses are correctly ignored.
-	public void testOKStatus1() {
-		try {
-			wsdm.addStatusAdapter(new StatusAdapter(Status.OK_STATUS), false);
-			assertTrue(true);
-		} catch (NullPointerException npe) {
-			fail();
-		}
-		assertNull("Shell should not be created.", StatusDialogUtil
-				.getStatusShell());
-		wsdm.addStatusAdapter(createStatusAdapter(MESSAGE_1), false);
-		assertEquals(
-				"Only one status should be visible (OK should be ignored)", 1,
-				wsdm.getStatusAdapters().size());
-	}
-	
-	public void testOKStatus2(){
-		final WorkbenchStatusDialogManager wsdm[] = new WorkbenchStatusDialogManager[] { null };
-		WorkbenchErrorHandler weh = new WorkbenchErrorHandler() {
-
-			protected void configureStatusDialog(
-					WorkbenchStatusDialogManager statusDialog) {
-				wsdm[0] = statusDialog;
-				super.configureStatusDialog(statusDialog);
-			}
-
-		};
-		weh.handle(new StatusAdapter(Status.OK_STATUS), StatusManager.SHOW);
-		assertEquals(1, wsdm[0].getStatusAdapters().size());
-	}
-	
-	public void testBug211933() {
-		MultiStatus multi = new MultiStatus("testplugin", 0, "message", null);
-		multi.add(new Status(IStatus.CANCEL, "testplugin", "message 1"));
-		final WorkbenchStatusDialogManager wsdm[] = new WorkbenchStatusDialogManager[] { null };
-		WorkbenchErrorHandler weh = new WorkbenchErrorHandler() {
-
-			protected void configureStatusDialog(
-					WorkbenchStatusDialogManager statusDialog) {
-				wsdm[0] = statusDialog;
-				super.configureStatusDialog(statusDialog);
-			}
-
-		};
-		StatusAdapter sa = new StatusAdapter(multi); 
-		weh.handle(sa, StatusManager.SHOW);
-		// be sure that non error status is passed to the dialog
-		assertTrue(wsdm[0].getStatusAdapters().contains(sa));
-	}
-
-	/**
-	 * Delivers custom support area.
-	 * 
-	 * @param passed -
-	 *            status adapter passed to the support will be set as first
-	 *            element of this array.
-	 * @param support -
-	 *            a main support composite will be set as first element of this
-	 *            array.
-	 */
-	private void setupSupportArea(final StatusAdapter[] passed,
-			final Composite[] support) {
-		Policy.setErrorSupportProvider(new AbstractStatusAreaProvider() {
-			public Control createSupportArea(Composite parent,
-					StatusAdapter statusAdapter) {
-				passed[0] = statusAdapter;
-				Composite c = new Composite(parent, SWT.NONE);
-				GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true,
-						true);
-				layoutData.minimumHeight = 400;
-				c.setLayoutData(layoutData);
-				support[0] = c;
-				return c;
-			}
-		});
-	}
-
-	/**
-	 * Opens support area.
-	 * 
-	 * @param statusAdapter -
-	 *            a statusAdapter (for verification that support area uses
-	 *            correct one)
-	 * @param passed -
-	 *            a statusAdapter used by support area will be set as first
-	 *            element of this array.
-	 */
-	private void openSupportArea(StatusAdapter statusAdapter,
-			final StatusAdapter[] passed) {
-		Point sizeBefore = StatusDialogUtil.getStatusShell().getSize();
-		// be sure that support button is enabled
-		Link supportLink = StatusDialogUtil.getSupportLink();
-		assertNotNull(supportLink);
-		assertTrue(supportLink.isEnabled());
-
-		selectWidget(supportLink);
-		Point sizeAfter = StatusDialogUtil.getStatusShell().getSize();
-		assertEquals(statusAdapter, passed[0]);
-		assertTrue(sizeAfter.x > sizeBefore.x);
-		assertTrue(sizeAfter.y > sizeBefore.y);
-	}
-
-	/**
-	 * This method creates custom details area.
-	 * 
-	 * @param passed -
-	 *            status adapter passed to the details will be set as first
-	 *            element of this array.
-	 * @param details -
-	 *            a main details composite will be set as first element of this
-	 *            array.
-	 */
-	private void setupDetails(final StatusAdapter[] passed,
-			final Composite[] details) {
-		wsdm.setDetailsAreaProvider(new AbstractStatusAreaProvider() {
-			public Control createSupportArea(Composite parent,
-					StatusAdapter statusAdapter) {
-				passed[0] = statusAdapter;
-				Composite c = new Composite(parent, SWT.NONE);
-				GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true,
-						true);
-				layoutData.minimumHeight = 400;
-				c.setLayoutData(layoutData);
-				details[0] = c;
-				return c;
-			}
-		});
-	}
-
-	/**
-	 * This method simulates mouse selection on Table (selects TableItem).
-	 * 
-	 * @param table
-	 *            a Table to be selected.
-	 * @param i
-	 *            a number of tableItem to be selected.
-	 */
-	private void selectTable(Table table, int i) {
-		table.setSelection(i);
-		Event event = new Event();
-		event.item = table.getItem(i);
-		table.notifyListeners(SWT.Selection, event);
-	}
-
-	/**
-	 * This method simulates mouse selection on particular Control.
-	 * 
-	 * @param control
-	 *            a Control to be selected.
-	 */
-	private void selectWidget(Widget control) {
-		Event event = new Event();
-		event.item = control;
-		control.notifyListeners(SWT.Selection, event);
-	}
-
-	/**
-	 * Creates StatusAdapter from passed parameters.
-	 * 
-	 * @param message
-	 *            a message to be used in StatusAdapter
-	 * @return created StatusAdapter
-	 */
-	private StatusAdapter createStatusAdapter(String message) {
-		return new StatusAdapter(new Status(IStatus.ERROR,
-				"org.eclipse.ui.tests", message));
-	}
-
-	/**
-	 * Creates StatusAdapter from passed parameters.
-	 * 
-	 * @param message
-	 *            a message to be used in StatusAdapter
-	 * @param throwable
-	 *            a Throwable to be used in StatusAdapter
-	 * @return created StatusAdapter
-	 */
-	private StatusAdapter createStatusAdapter(String message,
-			Throwable throwable) {
-		return new StatusAdapter(new Status(IStatus.ERROR,
-				"org.eclipse.ui.tests", message, throwable));
-	}
-
-	/**
-	 * Creates StatusAdapter from passed parameters. StatusAdapter will look
-	 * like it is coming from job.
-	 * 
-	 * @param message
-	 *            a message to be used in StatusAdapter
-	 * @param jobname
-	 *            a String that will be used as job name
-	 * @param actionName
-	 *            a String that will be used as a name of the action available
-	 *            to the user
-	 * @return created StatusAdapter
-	 */
-	private StatusAdapter createStatusAdapter(String message, String jobname,
-			String actionName) {
-		StatusAdapter sa = createStatusAdapter(message);
-		if (jobname == null) {
-			return sa;
-		}
-		Job job = new Job(jobname) {
-			protected IStatus run(IProgressMonitor monitor) {
-				return null;
-			}
-		};
-		sa.addAdapter(Job.class, job);
-		if (actionName == null) {
-			return sa;
-		}
-		Action action = new Action(actionName) {
-		};
-		job.setProperty(IProgressConstants.ACTION_PROPERTY, action);
-		return sa;
-	}
-
-	/**
-	 * Creates StatusAdapter from passed parameters.
-	 * 
-	 * @param message
-	 *            a message to be used in StatusAdapter
-	 * @param title
-	 *            a String to be passed as StatusAdapter title
-	 * @return status adapter with title and message
-	 */
-	private StatusAdapter createStatusAdapter(String message, String title) {
-		StatusAdapter sa = createStatusAdapter(message);
-		sa.setProperty(IStatusAdapterConstants.TITLE_PROPERTY, title);
-		return sa;
-	}
-
-	protected void tearDown() throws Exception {
-		wsdm = null;
-		Shell shell = StatusDialogUtil.getStatusShell();
-		if (shell != null) {
-			shell.dispose();
-		}
-		ErrorDialog.AUTOMATED_MODE = automatedMode;
-		Policy.setErrorSupportProvider(null);
-		super.tearDown();
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogUtil.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogUtil.java
deleted file mode 100644
index 1708f4c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusDialogUtil.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.internal.WorkbenchMessages;
-
-/**
- * This class parses the structure of the Shell and finds necessary widgets.
- * 
- * @since 3.4
- * 
- */
-public class StatusDialogUtil {
-
-	public static Label getTitleImageLabel() {
-		Composite c = getTitleAreaComposite();
-		if (c != null & !c.isDisposed()) {
-			return (Label) c.getChildren()[0];
-		}
-		return null;
-	}
-	
-	public static Label getTitleLabel(){
-		Composite c = getTitleAreaComposite();
-		if (c == null || c.isDisposed()) {
-			return null;
-		}
-		return (Label) c.getChildren()[1];
-	}
-	
-	public static Label getSingleStatusLabel(){
-		Composite c = getTitleAreaComposite();
-		if (c == null || c.isDisposed() || c.getChildren().length < 3){
-			return null;
-		}
-		Composite d = (Composite) c.getChildren()[2];
-		return (Label) d.getChildren()[0];
-	}
-	
-	public static Shell getStatusShell(){
-		Shell[] shells = Display.getDefault().getShells();
-		for (int i = 0; i < shells.length; i++) {
-			if (shells[i].getText().equals("Problem Occurred")
-					|| shells[i].getText().equals(
-							"Multiple problems have occurred")) {
-				if (!shells[i].isDisposed()) {
-					return shells[i];
-				}
-			}
-		}
-		return null;
-	}
-
-	private static Composite getTitleAreaComposite(){
-		Shell shell = getStatusShell();
-		if(shell == null || shell.isDisposed()){
-			return null;
-		}
-		Control controls[] = shell.getChildren();
-		return (Composite)((Composite)controls[0]).getChildren()[0];
-	}
-	
-	private static Composite getListAreaComposite(){
-		Shell shell = getStatusShell();
-		if(shell == null || shell.isDisposed()){
-			return null;
-		}
-		Control controls[] = shell.getChildren();
-		return (Composite)((Composite)controls[0]).getChildren()[1];
-	}
-	
-	private static Composite getButtonBar(){
-		Shell shell = getStatusShell();
-		if(shell == null || shell.isDisposed()){
-			return null;
-		}
-		Control controls[] = shell.getChildren();
-		return (Composite)((Composite)controls[0]).getChildren()[2];
-	}
-	
-	public static Link getSupportLink() {
-		Composite c = getButtonBar();
-		if (c == null || c.isDisposed()) {
-			return null;
-		}
-		Composite linkArea = (Composite) c.getChildren()[0];
-		for (int i = 0; i < linkArea.getChildren().length; i++) {
-			Widget w = linkArea.getChildren()[i];
-			if (w instanceof Link) {
-				if (((Link) w)
-						.getText()
-						.equals(
-								WorkbenchMessages.WorkbenchStatusDialog_SupportHyperlink)) {
-					return (Link) w;
-				}
-			}
-		}
-		return null;
-	}
-	
-	public static Button getActionButton(){
-		Composite c = getButtonBar();
-		if(c == null || c.isDisposed()){
-			return null;
-		}
-		return (Button) c.getChildren()[1];
-	}
-	
-	public static Button getOkButton(){
-		Composite c = getButtonBar();
-		if(c == null || c.isDisposed()){
-			return null;
-		}
-		// retrieve buttons based on dismissal alignment
-		if(c.getDisplay().getDismissalAlignment() == SWT.RIGHT){
-			return (Button) c.getChildren()[3];
-		}
-		return (Button) c.getChildren()[2];
-	}
-	
-	public static Button getDetailsButton(){
-		Composite c = getButtonBar();
-		if(c == null || c.isDisposed()){
-			return null;
-		}
-		// retrieve buttons based on dismissal alignment
-		if(c.getDisplay().getDismissalAlignment() == SWT.RIGHT){
-			return (Button) c.getChildren()[2];
-		}
-		return (Button) c.getChildren()[3];
-	}
-	
-	public static Table getTable(){
-		Composite c = getListAreaComposite();
-		if(c == null || c.getChildren().length == 0){
-			return null;
-		}
-		return (Table) c.getChildren()[0];
-	}
-	
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlerConfigurationSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlerConfigurationSuite.java
deleted file mode 100644
index e5ef0db..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlerConfigurationSuite.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import org.eclipse.core.tests.session.Setup;
-import org.eclipse.core.tests.session.SetupManager.SetupException;
-import org.eclipse.ui.tests.session.WorkbenchSessionTest;
-
-/**
- * @since 3.5
- *
- */
-public class StatusHandlerConfigurationSuite extends WorkbenchSessionTest {
-
-	public StatusHandlerConfigurationSuite(String dataLocation) {
-		super(dataLocation);
-		System.out.println("initalization1");
-	}
-	
-	public StatusHandlerConfigurationSuite(String dataLocation, Class clazz){
-		super(dataLocation, clazz);
-		System.out.println("initalization2");
-	}
-
-	protected Setup newSetup() throws SetupException {
-		Setup base = super.newSetup();
-		System.out.println(base);
-		base.setEclipseArgument("statushandler",
-				"org.eclipse.ui.tests.statushandlers.FreeStatusHandler");
-		System.out.println(base);
-		return base;
-	}
-	
-	
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingConfigurationTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingConfigurationTest.java
deleted file mode 100644
index 618e98e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingConfigurationTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2008, 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.ui.progress.IProgressConstants;
-import org.eclipse.ui.statushandlers.AbstractStatusHandler;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.eclipse.ui.statushandlers.StatusManager.INotificationTypes;
-
-import junit.framework.TestCase;
-
-/**
- * @since 3.5
- *
- */
-public class StatusHandlingConfigurationTest extends TestCase {
-	public void testFreeStatusHandler(){
-		final StatusAdapter adapter = new StatusAdapter(new Status(IStatus.ERROR,"fakeplugin","testmessage"));
-		final boolean[] called = new boolean[]{false};
-		AbstractStatusHandler tester = new AbstractStatusHandler(){
-			public void handle(StatusAdapter statusAdapter, int style) {
-				if(statusAdapter == adapter){
-					called[0] = true;
-				}
-			}
-		};
-		FreeStatusHandler.setTester(tester);
-		StatusManager.getManager().handle(adapter);
-		assertEquals(true, called[0]);
-	}
-	
-	public void testDefaultNotification(){
-		final StatusAdapter adapter = new StatusAdapter(new Status(IStatus.ERROR,"fakeplugin","testmessage"));
-		adapter.setProperty(IProgressConstants.NO_IMMEDIATE_ERROR_PROMPT_PROPERTY, Boolean.TRUE);
-		final StatusAdapter adapter2 = new StatusAdapter(new Status(IStatus.ERROR,"fakeplugin2","testmessage2"));
-		final boolean[] called = new boolean[]{false};
-		StatusManager.getManager().addListener(new StatusManager.INotificationListener(){
-					public void statusManagerNotified(int type,
-							StatusAdapter[] adapters) {
-						if (type == INotificationTypes.HANDLED)
-							called[0] = true;
-					}
-		});
-		StatusManager.getManager().handle(adapter, StatusManager.SHOW);
-		assertEquals(false, called[0]);
-		StatusManager.getManager().handle(adapter2, StatusManager.SHOW);
-		assertEquals(true, called[0]);
-		
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingTestSuite.java
deleted file mode 100644
index 511ca96..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/StatusHandlingTestSuite.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Tests the status handling facility
- * 
- * @since 3.3
- */
-public class StatusHandlingTestSuite extends TestSuite {
-
-	public StatusHandlingTestSuite() {
-		addTest(new TestSuite(WizardsStatusHandlingTestCase.class));
-		addTest(new TestSuite(StatusDialogManagerTest.class));
-	}
-
-	public static Test suite() {
-		return new StatusHandlingTestSuite();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/TestStatusHandler.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/TestStatusHandler.java
deleted file mode 100644
index 8b70996..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/TestStatusHandler.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import org.eclipse.ui.internal.WorkbenchErrorHandlerProxy;
-import org.eclipse.ui.statushandlers.AbstractStatusHandler;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-
-/**
- * The handler should be used during tests. It allows for checking the status
- * and style used during last handling.
- * 
- * @since 3.3
- */
-public class TestStatusHandler extends AbstractStatusHandler {
-
-	private static StatusAdapter lastHandledStatusAdapter;
-
-	private static int lastHandledStyle;
-
-	private static AbstractStatusHandler workbenchHandler;
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.statushandlers.AbstractStatusHandler#handle(org.eclipse.ui.statushandlers.StatusAdapter,
-	 *      int)
-	 */
-	public void handle(StatusAdapter statusAdapter, int style) {
-		lastHandledStatusAdapter = statusAdapter;
-		lastHandledStyle = style;
-
-		if (workbenchHandler == null) {
-			workbenchHandler = new WorkbenchErrorHandlerProxy();
-		}
-
-		// Forward to the workbench handler
-		workbenchHandler.handle(statusAdapter, style);
-	}
-
-	/**
-	 * Returns the status used during last handling
-	 * 
-	 * @return the status
-	 */
-	public static StatusAdapter getLastHandledStatusAdapter() {
-		return lastHandledStatusAdapter;
-	}
-
-	/**
-	 * Returns the style used during last handling
-	 * 
-	 * @return the style
-	 */
-	public static int getLastHandledStyle() {
-		return lastHandledStyle;
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/WizardsStatusHandlingTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/WizardsStatusHandlingTestCase.java
deleted file mode 100644
index a2728d1..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/statushandlers/WizardsStatusHandlingTestCase.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.statushandlers;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.internal.registry.RegistryMessages;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.internal.WorkbenchMessages;
-import org.eclipse.ui.internal.dialogs.ExportWizard;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-import org.eclipse.ui.statushandlers.StatusManager;
-import org.eclipse.ui.tests.harness.util.DialogCheck;
-
-/**
- * Tests whether the errors in wizards are handled properly
- * 
- * @since 3.3
- */
-public class WizardsStatusHandlingTestCase extends TestCase {
-
-	private static int SEVERITY = IStatus.ERROR;
-
-	private static Class EXCEPTION_CLASS = CoreException.class;
-
-	private static String MESSAGE = WorkbenchMessages.WorkbenchWizard_errorMessage;
-
-	private static String EXCEPTION_MESSAGE = NLS
-			.bind(
-					RegistryMessages.plugin_instantiateClassError,
-					new Object[] { "org.eclipse.ui.tests",
-							"org.eclipse.ui.tests.statushandlers.FaultyExportWizard" });
-
-	private static String EXCEPTION_MESSAGE2 = NLS
-			.bind(
-					RegistryMessages.plugin_loadClassError,
-					new Object[] { "org.eclipse.ui.tests",
-							"org.eclipse.ui.tests.statushandlers.FaultyExportWizard" });
-
-	private static String PLUGIN_ID = "org.eclipse.ui.tests";
-
-	private static String FAULTY_WIZARD_NAME = "FaultyExportWizard";
-
-	public WizardsStatusHandlingTestCase(String name) {
-		super(name);
-	}
-
-	private Shell getShell() {
-		return DialogCheck.getShell();
-	}
-
-	private IWorkbench getWorkbench() {
-		return PlatformUI.getWorkbench();
-	}
-
-	class CustomWizardDialog extends WizardDialog {
-		public CustomWizardDialog(Shell shell, IWizard wizard) {
-			super(shell, wizard);
-		}
-
-		public void nextPressed2() {
-			super.nextPressed();
-		}
-	}
-
-	private CustomWizardDialog exportWizard() {
-		ExportWizard wizard = new ExportWizard();
-		wizard.init(getWorkbench(), null);
-		CustomWizardDialog dialog = new CustomWizardDialog(getShell(), wizard);
-		dialog.create();
-		return dialog;
-	}
-
-	public void testWizardWithNoDefaultContructor() {
-		final CustomWizardDialog dialog = exportWizard();
-		dialog.setBlockOnOpen(false);
-		dialog.open();
-
-		// selecting FaultyExportWizard
-		IWizardPage currenPage = dialog.getCurrentPage();
-		Composite control = (Composite) currenPage.getControl();
-		Control[] widgets = control.getChildren();
-
-		Table table = (Table) widgets[1];
-
-		for (int i = 0; i < table.getItemCount(); i++) {
-			if (table.getItem(i).getText().equals(FAULTY_WIZARD_NAME)) {
-				table.select(i);
-				table.notifyListeners(SWT.Selection, new Event());
-				break;
-			}
-		}
-
-		// pressing "Next"
-		dialog.nextPressed2();
-		assertStatusAdapter(TestStatusHandler.getLastHandledStatusAdapter());
-		assertEquals(TestStatusHandler.getLastHandledStyle(),
-				StatusManager.SHOW);
-	}
-
-	/**
-	 * Checks whether the last handled status is correct
-	 */
-	private void assertStatusAdapter(StatusAdapter statusAdapter) {
-		IStatus status = statusAdapter.getStatus();
-		assertEquals(SEVERITY, status.getSeverity());
-		assertEquals(PLUGIN_ID, status.getPlugin());
-		assertEquals(MESSAGE, status.getMessage());
-		assertEquals(EXCEPTION_CLASS, status.getException().getClass());
-		assertTrue(createIncorrectExceptionMessage(status.getException()
-				.getMessage()), EXCEPTION_MESSAGE.equals(status.getException()
-				.getMessage())
-				|| EXCEPTION_MESSAGE2
-						.equals(status.getException().getMessage()));
-	}
-
-	private String createIncorrectExceptionMessage(String exceptionMessage) {
-		return "expected:<" + EXCEPTION_MESSAGE + "> or <" + EXCEPTION_MESSAGE2
-				+ "> but was:<" + exceptionMessage + ">";
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTest.java
deleted file mode 100644
index 53af6e2..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.stress;
-
-import java.util.HashMap;
-
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.NotEnabledException;
-import org.eclipse.core.commands.NotHandledException;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.core.commands.common.NotDefinedException;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.commands.ICommandService;
-import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-/**
- * Test opening and closing of items.
- */
-public class OpenCloseTest extends UITestCase {
-    /**
-	 * 
-	 */
-	private static final String ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE = "org.eclipse.jdt.ui.JavaPerspective";
-
-	private static int index;
-
-    private static final int numIterations = 10;
-
-    private WorkbenchWindow workbenchWindow;
-
-    /**
-     * Constructor.
-     * 
-     * @param testName
-     *            Test's name.
-     */
-    public OpenCloseTest(String testName) {
-        super(testName);
-        workbenchWindow = (WorkbenchWindow) PlatformUI.getWorkbench()
-                .getActiveWorkbenchWindow();
-    }
-
-    /**
-     * Test the opening and closing of a file.
-     *  
-     */
-    public void testOpenCloseFile() {
-        IWorkbenchPage page = workbenchWindow.getActivePage();
-        try {
-            FileUtil.createProject("TestProject");
-            IProject testProject = ResourcesPlugin.getWorkspace().getRoot()
-                    .getProject("TestProject"); //$NON-NLS-1$
-            FileUtil.createFile("tempFile.txt", testProject);
-            testProject.open(null);
-            IEditorInput editorInput = new FileEditorInput(testProject
-                    .getFile("tempFile.txt"));
-            IEditorPart editorPart = null;
-            for (index = 0; index < numIterations; index++) {
-                editorPart = page.openEditor(editorInput,
-                        "org.eclipse.ui.DefaultTextEditor"); //$NON-NLS-1$
-                page.closeEditor(editorPart, false);
-            }
-            FileUtil.deleteProject(testProject);
-        } catch (Exception e) {
-            e.printStackTrace(System.err);
-        }
-    }
-
-    /**
-     * Test opening and closing of workbench window.
-     *  
-     */
-    public void testOpenCloseWorkbenchWindow() {
-        IWorkbenchWindow secondWorkbenchWindow = null;
-        try {
-            for (index = 0; index < numIterations; index++) {
-                secondWorkbenchWindow = PlatformUI.getWorkbench()
-                        .openWorkbenchWindow(getPageInput());
-                secondWorkbenchWindow.close();
-            }
-        } catch (WorkbenchException e) {
-            e.printStackTrace(System.err);
-        }
-    }
-
-    /**
-     * Test open and close of perspective.
-     *  
-     */
-    public void testOpenClosePerspective() {
-		ICommandService commandService = (ICommandService) fWorkbench.getService(ICommandService.class);
-		Command command = commandService.getCommand("org.eclipse.ui.window.closePerspective");
-		
-		HashMap parameters = new HashMap();
-		parameters.put("org.eclipse.ui.window.closePerspective.perspectiveId",
-				ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE);
-		
-		ParameterizedCommand pCommand = ParameterizedCommand.generateCommand(command, parameters);
-		
-		IHandlerService handlerService = (IHandlerService) workbenchWindow
-				.getService(IHandlerService.class);
-                
-        for (index = 0; index < numIterations; index++) {
-            try {
-                PlatformUI.getWorkbench().showPerspective(
-                        ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE, workbenchWindow);
-        		try {
-        			handlerService.executeCommand(pCommand, null);
-        		} catch (ExecutionException e1) {
-        		} catch (NotDefinedException e1) {
-        		} catch (NotEnabledException e1) {
-        		} catch (NotHandledException e1) {
-        		}
-            } catch (WorkbenchException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    /**
-     * Test open and close of view.
-     *  
-     */
-    public void testOpenCloseView() {
-        IViewPart consoleView = null;
-        try {
-            IWorkbenchPage page = PlatformUI.getWorkbench().showPerspective(
-                    ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE, workbenchWindow);
-            for (index = 0; index < numIterations; index++) {
-                consoleView = page
-                        .showView("org.eclipse.ui.views.ResourceNavigator");
-                page.hideView(consoleView);
-            }
-        } catch (WorkbenchException e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * Test open and close intro.
-     *  
-     */
-    public void testOpenCloseIntro() {
-        IIntroPart introPart = null;
-        for (index = 0; index < numIterations; index++) {
-            introPart = PlatformUI.getWorkbench().getIntroManager().showIntro(
-                    workbenchWindow, false);
-            PlatformUI.getWorkbench().getIntroManager().closeIntro(introPart);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTestSuite.java
deleted file mode 100644
index bb0848d..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/stress/OpenCloseTestSuite.java
+++ /dev/null
@@ -1,36 +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.ui.tests.stress;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * Test all areas of the UI API.
- */
-public class OpenCloseTestSuite extends TestSuite {
-
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new OpenCloseTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public OpenCloseTestSuite() {
-        addTest(new TestSuite(OpenCloseTest.class));
-
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/systeminplaceeditor/OpenSystemInPlaceEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/systeminplaceeditor/OpenSystemInPlaceEditorTest.java
deleted file mode 100644
index 6283762..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/systeminplaceeditor/OpenSystemInPlaceEditorTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.systeminplaceeditor;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.InputStream;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.filesystem.EFS;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.WorkbenchException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-
-/**
- * Tests opening the
- * <code>org.eclipse.ui.internal.editorsupport.win32.OleEditor<code>.
- * <p>
- * <strong>Note:</strong> The tests pass on all platforms but
- * only perform for real when a system in-place editor is
- * available for *.doc.
- * </p>
- * 
- * @since 3.4
- */
-public class OpenSystemInPlaceEditorTest extends UITestCase {
-
-	
-	public static Test suite() {
-		return new TestSuite(OpenSystemInPlaceEditorTest.class);
-	}
-
-
-	/**
-	 * Creates the test object.
-	 * 
-	 * @param testName the test name
-	 */
-	public OpenSystemInPlaceEditorTest(String testName) {
-		super(testName);
-	}
-
-	public void testWorkspaceFile() throws Exception {
-		if (!PlatformUI.getWorkbench().getEditorRegistry().isSystemInPlaceEditorAvailable("test.doc"))
-			return;
-
-		// Custom setup
-		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("test" + System.currentTimeMillis());
-		project.create(null);
-		project.open(null);
-		IFile file = project.getFile("test.doc");
-		InputStream s = new ByteArrayInputStream("some test content".getBytes());
-		file.create(s, false, null);
-
-		IWorkbenchPage page = getWorkbenchPage();
-		IEditorPart editor = IDE.openEditor(page, file);
-
-		assertEquals(IEditorRegistry.SYSTEM_INPLACE_EDITOR_ID, editor.getEditorSite().getId());
-
-		// Custom tear down
-		page.closeEditor(editor, false);
-		file.delete(false, null);
-		project.delete(false, null);
-	}
-
-	public void testExternalFile() throws Exception {
-		if (!PlatformUI.getWorkbench().getEditorRegistry().isSystemInPlaceEditorAvailable("test.doc"))
-			return;
-		
-		// Custom setup
-		File file = File.createTempFile("test", ".doc");
-
-		IWorkbenchPage page = getWorkbenchPage();
-		IEditorPart editor = IDE.openEditorOnFileStore(page, EFS.getStore(file.toURI()));
-
-		assertEquals(IEditorRegistry.SYSTEM_INPLACE_EDITOR_ID, editor.getEditorSite().getId());
-		assertFalse("is not error editor", "org.eclipse.ui.internal.ErrorEditorPart".equals(editor.getClass().getName()));
-
-		// Custom tear down
-		page.closeEditor(editor, false);
-		file.delete();
-	}
-
-	private IWorkbenchPage getWorkbenchPage() {
-		IWorkbenchWindow window;
-		try {
-			if (getWorkbench().getWorkbenchWindowCount() == 0)
-				window = getWorkbench().openWorkbenchWindow(null);
-			else
-				window = getWorkbench().getWorkbenchWindows()[0];
-
-			IWorkbenchPage[] pages = window.getPages();
-			if (pages.length > 0)
-				return pages[0];
-
-			return window.openPage(null);
-		} catch (WorkbenchException ex) {
-			fail();
-			return null;
-		}
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/JFaceThemeTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/JFaceThemeTest.java
deleted file mode 100644
index 770b930..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/JFaceThemeTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.themes;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.resource.ColorDescriptor;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.themes.ITheme;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * Tests the pushing down of current theme changes into JFace.
- * 
- * @since 3.0
- */
-public class JFaceThemeTest extends ThemeTest {
-
-    public JFaceThemeTest(String testName) {
-        super(testName);
-    }
-
-    private void setAndTest(String themeId, IPropertyChangeListener listener) {
-        JFaceResources.getFontRegistry().addListener(listener);
-        JFaceResources.getColorRegistry().addListener(listener);
-        fManager.setCurrentTheme(themeId);
-        ITheme theme = fManager.getTheme(themeId);
-        assertEquals(theme, fManager.getCurrentTheme());
-        {
-            FontRegistry jfaceFonts = JFaceResources.getFontRegistry();
-            FontRegistry themeFonts = theme.getFontRegistry();
-            // don't test for equality - other tests (or clients) may be pushing 
-            // new items into jface
-            assertTrue(jfaceFonts.getKeySet().containsAll(
-                    themeFonts.getKeySet()));
-            for (Iterator i = themeFonts.getKeySet().iterator(); i.hasNext();) {
-                String key = (String) i.next();
-                assertArrayEquals(themeFonts.getFontData(key), jfaceFonts
-                        .getFontData(key));
-            }
-        }
-        {
-            ColorRegistry jfaceColors = JFaceResources.getColorRegistry();
-            ColorRegistry themeColors = theme.getColorRegistry();
-            assertTrue(jfaceColors.getKeySet().containsAll(
-                    themeColors.getKeySet()));
-            for (Iterator i = themeColors.getKeySet().iterator(); i.hasNext();) {
-                String key = (String) i.next();
-                assertEquals(themeColors.getRGB(key), jfaceColors.getRGB(key));
-            }
-        }
-        JFaceResources.getFontRegistry().removeListener(listener);
-        JFaceResources.getColorRegistry().removeListener(listener);
-    }
-
-    /**
-     * TODO: detailed checking of the events
-     */
-    public void testPushdown() {
-        ThemePropertyListener listener = new ThemePropertyListener();
-        setAndTest(THEME1, listener);
-        // ten changes, not the apparent 6 - remember the changes for the defaulted elements
-        assertEquals(10, listener.getEvents().size());
-        listener.getEvents().clear();
-        setAndTest(IThemeManager.DEFAULT_THEME, listener);
-        assertEquals(10, listener.getEvents().size());
-    }
-    
-    /**
-	 * Tests to ensure correct behavior of getColorDescriptor methods.
-	 */
-	public void testDefaultColorDescriptor() {
-		ColorDescriptor desc = getDefaultTheme().getColorRegistry()
-				.getColorDescriptor("somegarbage");
-		assertNotNull(desc);
-		Color color = desc.createColor(getWorkbench().getDisplay());
-		assertNotNull(color);
-		color.dispose();
-
-		desc = getDefaultTheme().getColorRegistry().getColorDescriptor(
-				"somegarbage", null);
-		assertNull(desc);
-
-		desc = getDefaultTheme().getColorRegistry().getColorDescriptor(
-				"somegarbage", ColorDescriptor.createFrom(new RGB(0, 0, 0)));
-		assertNotNull(desc);
-		color = desc.createColor(getWorkbench().getDisplay());
-		assertNotNull(color);
-		color.dispose();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/TestColorFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/TestColorFactory.java
deleted file mode 100644
index 45048fc..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/TestColorFactory.java
+++ /dev/null
@@ -1,30 +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.tests.themes;
-
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.themes.IColorFactory;
-
-/**
- * @since 3.0
- */
-public class TestColorFactory implements IColorFactory {
-
-    public static final RGB RGB = new RGB(91, 92, 93);
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.themes.IColorFactory#createColor()
-     */
-    public RGB createColor() {
-        return RGB;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeAPITest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeAPITest.java
deleted file mode 100644
index a0ceb68..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeAPITest.java
+++ /dev/null
@@ -1,716 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.themes;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.FontRegistry;
-import org.eclipse.jface.resource.StringConverter;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.internal.themes.ThemeElementHelper;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.themes.ITheme;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * Tests the theme API.
- * 
- * @since 3.0
- */
-public class ThemeAPITest extends ThemeTest {
-
-    /**
-	 * 
-	 */
-	private static final String EXTENDED_THEME3 = "extendedTheme3";
-	/**
-	 * 
-	 */
-	private static final String EXTENDED_THEME2 = "extendedTheme2";
-	/**
-	 * 
-	 */
-	private static final String EXTENDED_THEME1 = "extendedTheme1";
-	/**
-	 * 
-	 */
-	private static final String PLATFORMFONT = "platformfont";
-	/**
-	 * 
-	 */
-	private static final String PLATFORMCOLOR = "platformcolor";
-	/**
-	 * 
-	 */
-	private static final String NOOVERRIDEFONT = "nooverridefont";
-	/**
-	 * 
-	 */
-	private static final String NOVALFONT = "novalfont";
-	/**
-	 * 
-	 */
-	private static final String DEFAULTEDFONT3 = "defaultedfont3";
-	/**
-	 * 
-	 */
-	private static final String DEFAULTEDFONT2 = "defaultedfont2";
-	/**
-	 * 
-	 */
-	private static final String DEFAULTEDFONT = "defaultedfont";
-	/**
-	 * 
-	 */
-	private static final String VALFONT = "valfont";
-	/**
-	 * 
-	 */
-	private static final String DEFAULTEDCOLOR3 = "defaultedcolor3";
-	/**
-	 * 
-	 */
-	private static final String DEFAULTEDCOLOR2 = "adefaultedcolor2";
-	/**
-	 * 
-	 */
-	private static final String VALUE2 = "value2";
-	/**
-	 * 
-	 */
-	private static final String OVERRIDE1 = "override1";
-	/**
-	 * 
-	 */
-	private static final String NOOVERRIDECOLOR = "nooverridecolor";
-	/**
-	 * 
-	 */
-	private static final String DEFAULTEDCOLOR = "defaultedcolor";
-	/**
-	 * 
-	 */
-	private static final String SWTCOLOR = "swtcolor";
-	/**
-	 * 
-	 */
-	private static final String FACTORYCOLOR = "factorycolor";
-	/**
-	 * 
-	 */
-	private static final String RGBCOLOR = "rgbcolor";
-	/**
-	 * 
-	 */
-	private static final String BOOL1 = "bool1";
-	/**
-	 * 
-	 */
-	private static final String BOGUSKEY = "BOGUSKEY";
-	/**
-	 * 
-	 */
-	private static final String INT1 = "int1";
-	/**
-	 * 
-	 */
-	private static final String DATA2 = "data2";
-	/**
-	 * 
-	 */
-	private static final String DATA1 = "data1";	
-	/**
-	 * 
-	 */
-	private static final String BAD_COLOR1 = "badColor1";
-	/**
-	 * 
-	 */
-	private static final String BAD_COLOR2 = "badColor2";
-	/**
-	 * 
-	 */
-	private static final String BAD_COLOR3 = "badColor3";
-
-	/**
-     * @param testName
-     */
-    public ThemeAPITest(String testName) {
-        super(testName);
-    }
-
-    private void checkEvents(ThemePropertyListener listener, Object source,
-            Object oldObject, Object newObject) {
-        boolean array = oldObject instanceof Object[];
-        List events = listener.getEvents();
-        assertEquals(2, events.size());
-        PropertyChangeEvent event = (PropertyChangeEvent) events.get(0);
-
-        assertEquals(source, event.getSource());
-        if (array) {
-            assertArrayEquals((Object[]) oldObject, (Object[]) event
-                    .getOldValue());
-            assertArrayEquals((Object[]) newObject, (Object[]) event
-                    .getNewValue());
-        } else {
-            assertEquals(oldObject, event.getOldValue());
-            assertEquals(newObject, event.getNewValue());
-        }
-
-        event = (PropertyChangeEvent) events.get(1);
-        assertEquals(source, event.getSource());
-        if (array) {
-            assertArrayEquals((Object[]) oldObject, (Object[]) event
-                    .getNewValue());
-            assertArrayEquals((Object[]) newObject, (Object[]) event
-                    .getOldValue());
-        } else {
-            assertEquals(oldObject, event.getNewValue());
-            assertEquals(newObject, event.getOldValue());
-        }
-    }
-
-    public void testBooleanDataConversion() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(false, defaultTheme.getBoolean(DATA1));
-        assertEquals(false, defaultTheme.getBoolean(DATA2));
-        assertEquals(false, defaultTheme.getBoolean(INT1));
-        assertEquals(false, defaultTheme.getBoolean(BOGUSKEY));
-        assertEquals(true, defaultTheme.getBoolean(BOOL1));
-    }
-
-    public void testColorCascadeEvents() {
-        ITheme currentTheme = fManager.getCurrentTheme();
-        assertNotNull(currentTheme);
-
-        ThemePropertyListener managerListener = new ThemePropertyListener();
-        ThemePropertyListener themeListener = new ThemePropertyListener();
-        fManager.addPropertyChangeListener(managerListener);
-        currentTheme.addPropertyChangeListener(themeListener);
-
-        ColorRegistry colorRegistry = currentTheme.getColorRegistry();
-        RGB oldColor = colorRegistry.getRGB(RGBCOLOR);
-        RGB newColor = new RGB(121, 9, 121);
-        colorRegistry.put(RGBCOLOR, newColor);
-        colorRegistry.put(RGBCOLOR, oldColor);
-
-        checkEvents(managerListener, colorRegistry, oldColor, newColor);
-        checkEvents(themeListener, colorRegistry, oldColor, newColor);
-
-        fManager.removePropertyChangeListener(managerListener);
-        currentTheme.removePropertyChangeListener(themeListener);
-    }
-
-    public void testColorFactory() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(TestColorFactory.RGB, defaultTheme.getColorRegistry()
-                .getRGB(FACTORYCOLOR));
-    }
-
-    public void testColorPreferenceListener_def_swtcolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-
-        testOverrideColorPreference(defaultTheme, store, SWTCOLOR);
-    }
-
-    public void testColorPreferenceListener_def_rgbcolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-
-        testOverrideColorPreference(defaultTheme, store, RGBCOLOR);
-    }
-
-    public void testColorPreferenceListener_def_defaultedcolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-
-        testOverrideColorPreference(defaultTheme, store, DEFAULTEDCOLOR);
-    }
-
-    public void testColorPreferenceListener_def_nooverridecolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-
-        testOverrideColorPreference(defaultTheme, store, NOOVERRIDECOLOR);
-    }
-
-    public void testColorPreferenceListener_th1_swtcolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideColorPreference(theme1, store, SWTCOLOR);
-    }
-
-    public void testColorPreferenceListener_th1_rgbcolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideColorPreference(theme1, store, RGBCOLOR);
-    }
-
-    public void testColorPreferenceListener_th1_defaultedcolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideColorPreference(theme1, store, DEFAULTEDCOLOR);
-    }
-
-    public void testColorPreferenceListener_th1_nooverridecolor() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideColorPreference(theme1, store, NOOVERRIDECOLOR);
-    }
-
-    public void testDataKeySet_data1() {
-        ITheme defaultTheme = getDefaultTheme();
-        Set themeKeys = defaultTheme.keySet();
-
-        assertTrue(themeKeys.contains(DATA1));
-    }
-
-    public void testDataKeySet_data2() {
-        ITheme defaultTheme = getDefaultTheme();
-        Set themeKeys = defaultTheme.keySet();
-
-        assertTrue(themeKeys.contains(DATA2));
-    }
-
-    public void testDataKeySet_int1() {
-        ITheme defaultTheme = getDefaultTheme();
-        Set themeKeys = defaultTheme.keySet();
-
-        assertTrue(themeKeys.contains(INT1));
-    }
-
-    public void testDataKeySet_bool1() {
-        ITheme defaultTheme = getDefaultTheme();
-        Set themeKeys = defaultTheme.keySet();
-
-        assertTrue(themeKeys.contains(BOOL1));
-    }
-
-    public void testDataKeySet_BOGUSKEY() {
-        ITheme defaultTheme = getDefaultTheme();
-        Set themeKeys = defaultTheme.keySet();
-
-        assertFalse(themeKeys.contains(BOGUSKEY));
-    }
-
-    public void testDataOverride_data1() {
-        ITheme theme1 = getTheme1();
-
-        assertEquals(OVERRIDE1, theme1.getString(DATA1));
-    }
-
-    public void testDataOverride_data2() {
-        ITheme theme1 = getTheme1();
-
-        assertEquals(VALUE2, theme1.getString(DATA2));
-    }
-
-    public void testDefaultedColor_rgbcolor() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(defaultTheme.getColorRegistry().getRGB(RGBCOLOR),
-                defaultTheme.getColorRegistry().getRGB(DEFAULTEDCOLOR));
-    }
-
-    public void testDefaultedColor_defaultedcolor() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(defaultTheme.getColorRegistry().getRGB(DEFAULTEDCOLOR),
-                defaultTheme.getColorRegistry().getRGB(DEFAULTEDCOLOR2));
-    }
-
-    public void testDefaultedColor_defaultedcolor2() {
-        ITheme defaultTheme = getDefaultTheme();
-
-        assertEquals(defaultTheme.getColorRegistry().getRGB(DEFAULTEDCOLOR2),
-                defaultTheme.getColorRegistry().getRGB(DEFAULTEDCOLOR3));
-    }
-
-    public void testDefaultedFont_valfont() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertArrayEquals(
-                defaultTheme.getFontRegistry().getFontData(VALFONT),
-                defaultTheme.getFontRegistry().getFontData(DEFAULTEDFONT));
-    }
-
-    public void testDefaultedFont_defaultedfont() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertArrayEquals(defaultTheme.getFontRegistry().getFontData(
-                DEFAULTEDFONT), defaultTheme.getFontRegistry().getFontData(
-                DEFAULTEDFONT2));
-    }
-
-    public void testDefaultedFont_defaultedfont2() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertArrayEquals(defaultTheme.getFontRegistry().getFontData(
-                DEFAULTEDFONT2), defaultTheme.getFontRegistry().getFontData(
-                DEFAULTEDFONT3));
-    }
-
-    public void testDefaultedFontOverride_valfont() {
-        ITheme theme1 = getTheme1();
-        assertArrayEquals(theme1.getFontRegistry().getFontData(VALFONT),
-                theme1.getFontRegistry().getFontData(DEFAULTEDFONT));
-    }
-
-    public void testDefaultedFontOverride_defaultedfont2() {
-        ITheme theme1 = getTheme1();
-
-        assertArrayEquals(new FontData[] { new FontData("Courier", 16,
-                SWT.NORMAL) }, theme1.getFontRegistry().getFontData(
-                DEFAULTEDFONT2));
-    }
-
-    public void testDefaultedFontOverride_defaultedfont3() {
-        ITheme theme1 = getTheme1();
-
-        assertArrayEquals(theme1.getFontRegistry()
-                .getFontData(DEFAULTEDFONT2), theme1.getFontRegistry()
-                .getFontData(DEFAULTEDFONT3));
-    }
-
-    public void testDefaultedOverrideColor_rgbcolor() {
-        ITheme theme1 = getTheme1();
-        assertEquals(theme1.getColorRegistry().getRGB(RGBCOLOR), theme1
-                .getColorRegistry().getRGB(DEFAULTEDCOLOR));
-    }
-
-    public void testDefaultedOverrideColor_defaultedcolor2() {
-        ITheme theme1 = getTheme1();
-        assertEquals(new RGB(9, 9, 9), theme1.getColorRegistry().getRGB(
-                DEFAULTEDCOLOR2));
-
-    }
-
-    public void testDefaultedOverrideColor_defaultedcolor3() {
-        ITheme theme1 = getTheme1();
-        assertEquals(theme1.getColorRegistry().getRGB(DEFAULTEDCOLOR2),
-                theme1.getColorRegistry().getRGB(DEFAULTEDCOLOR3));
-    }
-
-    public void testFontCascadeEvents() {
-        ITheme currentTheme = fManager.getCurrentTheme();
-        assertNotNull(currentTheme);
-
-        ThemePropertyListener managerListener = new ThemePropertyListener();
-        ThemePropertyListener themeListener = new ThemePropertyListener();
-        fManager.addPropertyChangeListener(managerListener);
-        currentTheme.addPropertyChangeListener(themeListener);
-
-        FontRegistry fontRegistry = currentTheme.getFontRegistry();
-        FontData[] oldFont = fontRegistry.getFontData(VALFONT);
-        FontData[] newFont = new FontData[] { new FontData("Courier", 30,
-                SWT.ITALIC) };
-        fontRegistry.put(VALFONT, newFont);
-        fontRegistry.put(VALFONT, oldFont);
-
-        checkEvents(managerListener, fontRegistry, oldFont, newFont);
-        checkEvents(themeListener, fontRegistry, oldFont, newFont);
-
-        fManager.removePropertyChangeListener(managerListener);
-        currentTheme.removePropertyChangeListener(themeListener);
-    }
-
-    public void testFontPreferenceListener_def_novalfont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-        testOverrideFontPreference(defaultTheme, store, NOVALFONT);
-    }
-
-    public void testFontPreferenceListener_def_valfont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-
-        testOverrideFontPreference(defaultTheme, store, VALFONT);
-    }
-
-    public void testFontPreferenceListener_def_defaultedfont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-
-        testOverrideFontPreference(defaultTheme, store, DEFAULTEDFONT);
-    }
-
-    public void testFontPreferenceListener_def_nooverridefont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme defaultTheme = getDefaultTheme();
-
-        testOverrideFontPreference(defaultTheme, store, NOOVERRIDEFONT);
-    }
-
-    public void testFontPreferenceListener_th1_valfont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideFontPreference(theme1, store, VALFONT);
-    }
-
-    public void testFontPreferenceListener_th1_novalfont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideFontPreference(theme1, store, NOVALFONT);
-    }
-
-    public void testFontPreferenceListener_th1_defaultedfont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideFontPreference(theme1, store, DEFAULTEDFONT);
-    }
-
-    public void testFontPreferenceListener_th1_nooverridefont() {
-        IPreferenceStore store = PrefUtil.getInternalPreferenceStore();
-        ITheme theme1 = getTheme1();
-
-        testOverrideFontPreference(theme1, store, NOOVERRIDEFONT);
-    }
-
-    public void testGetBadTheme() {
-        ITheme badTheme = fManager.getTheme(BOGUSID);
-        assertNull(badTheme);
-    }
-
-    public void testIntDataConversion() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(0, defaultTheme.getInt(DATA1));
-        assertEquals(0, defaultTheme.getInt(DATA2));
-        assertEquals(0, defaultTheme.getInt(BOOL1));
-        assertEquals(0, defaultTheme.getInt(BOGUSKEY));
-        assertEquals(3133, defaultTheme.getInt(INT1));
-    }
-
-    public void testNoValFont() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertArrayEquals(defaultTheme.getFontRegistry().defaultFont()
-                .getFontData(), defaultTheme.getFontRegistry().getFontData(
-                NOVALFONT));
-    }
-
-    public void testNoValFontOverride() {
-        ITheme theme1 = getTheme1();
-        assertArrayEquals(new FontData[] { new FontData("Courier", 10,
-                SWT.ITALIC) }, theme1.getFontRegistry()
-                .getFontData(NOVALFONT));
-
-    }
-
-    private void testOverrideColorPreference(ITheme theme,
-            IPreferenceStore store, String color) {
-        RGB oldRGB = theme.getColorRegistry().getRGB(color);
-        RGB newRGB = new RGB(75, 21, 68);
-
-        store.setValue(ThemeElementHelper.createPreferenceKey(theme, color),
-                StringConverter.asString(newRGB));
-        assertEquals(newRGB, theme.getColorRegistry().getRGB(color));
-        store
-                .setToDefault(ThemeElementHelper.createPreferenceKey(theme,
-                        color));
-        assertEquals(oldRGB, theme.getColorRegistry().getRGB(color));
-    }
-
-    private void testOverrideFontPreference(ITheme theme,
-            IPreferenceStore store, String font) {
-        FontData[] oldFont = theme.getFontRegistry().getFontData(font);
-        FontData[] newFont = new FontData[] { new FontData("Courier", 30,
-                SWT.ITALIC) };
-        store.setValue(ThemeElementHelper.createPreferenceKey(theme, font),
-                PreferenceConverter.getStoredRepresentation(newFont));
-        assertArrayEquals(newFont, theme.getFontRegistry().getFontData(font));
-        store.setToDefault(ThemeElementHelper.createPreferenceKey(theme, font));
-        assertArrayEquals(oldFont, theme.getFontRegistry().getFontData(font));
-    }
-
-    public void testPlatformColor() {
-        ITheme defaultTheme = getDefaultTheme();
-        RGB rgb = null;
-        // test for two specific platforms and one general
-        if (Platform.getWS().equals("win32")
-                && Platform.getOS().equals("win32"))
-            rgb = new RGB(50, 50, 50);
-        else if (Platform.getWS().equals("gtk")
-                && Platform.getOS().equals("linux"))
-            rgb = new RGB(25, 25, 25);
-        else if (Platform.getOS().equals("linux"))
-            rgb = new RGB(75, 75, 75);
-        else
-            rgb = new RGB(0, 0, 0);
-
-        assertEquals(rgb, defaultTheme.getColorRegistry().getRGB(
-                PLATFORMCOLOR));
-    }
-
-    public void testPlatformFont() {
-        ITheme defaultTheme = getDefaultTheme();
-        FontData[] data = null;
-        if (Platform.getWS().equals("win32")
-                && Platform.getOS().equals("win32"))
-            data = new FontData[] { new FontData("Courier New", 12, SWT.NORMAL) };
-        else
-            data = new FontData[] { new FontData("Sans", 15, SWT.BOLD) };
-
-        assertArrayEquals(data, defaultTheme.getFontRegistry().getFontData(
-                PLATFORMFONT));
-    }
-
-    public void testRGBColor() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(new RGB(1, 1, 2), defaultTheme.getColorRegistry().getRGB(
-                RGBCOLOR));
-    }
-
-    public void testRGBColorOverride() {
-        ITheme theme1 = getTheme1();
-        assertEquals(new RGB(2, 1, 1), theme1.getColorRegistry().getRGB(
-                RGBCOLOR));
-    }
-
-    public void testSetTheme() {
-        ThemePropertyListener listener = new ThemePropertyListener();
-        fManager.addPropertyChangeListener(listener);
-        ITheme currentTheme = fManager.getCurrentTheme();
-        fManager.setCurrentTheme(BOGUSID);
-        assertEquals(currentTheme, fManager.getCurrentTheme());
-        fManager.setCurrentTheme(THEME1);
-        assertNotSame(currentTheme, fManager.getCurrentTheme());
-        ITheme newCurrentTheme = fManager.getCurrentTheme();
-        ITheme theme1 = getTheme1();
-        assertEquals(theme1, newCurrentTheme);
-        List events = listener.getEvents();
-        assertEquals(1, events.size());
-        PropertyChangeEvent event = ((PropertyChangeEvent) events.get(0));
-        assertEquals(IThemeManager.CHANGE_CURRENT_THEME, event.getProperty());
-        assertEquals(currentTheme, event.getOldValue());
-        assertEquals(newCurrentTheme, event.getNewValue());
-        fManager.removePropertyChangeListener(listener);
-    }
-
-    public void testStringData() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals("value1", defaultTheme.getString(DATA1));
-        assertEquals(VALUE2, defaultTheme.getString(DATA2));
-        assertEquals("3133", defaultTheme.getString(INT1));
-        assertEquals("true", defaultTheme.getString(BOOL1));
-        assertEquals(null, defaultTheme.getString(BOGUSKEY));
-    }
-
-    public void testSWTColor() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_DARK_BLUE)
-                .getRGB(), defaultTheme.getColorRegistry().getRGB(SWTCOLOR));
-    }
-
-    public void testSWTColorOverride() {
-        ITheme theme1 = getTheme1();
-        assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_DARK_GREEN)
-                .getRGB(), theme1.getColorRegistry().getRGB(SWTCOLOR));
-    }
-
-    public void testThemeDescription_default() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertEquals(IThemeManager.DEFAULT_THEME, defaultTheme.getId());
-        // don't bother testing against the actual value
-        assertNotNull(defaultTheme.getLabel());
-    }
-
-    public void testThemeDescription_theme1() {
-        ITheme theme1 = getTheme1();
-        assertEquals(THEME1, theme1.getId());
-        assertEquals("test theme 1", theme1.getLabel());
-    }
-
-    public void testValFont() {
-        ITheme defaultTheme = getDefaultTheme();
-        assertArrayEquals(
-                new FontData[] { new FontData("Tahoma", 20, SWT.BOLD) },
-                defaultTheme.getFontRegistry().getFontData(VALFONT));
-    }
-    
-    /*
-     * The following tests check to ensure that support for multiple extensions
-     * contributing to the same theeme work. They also check to ensure that the
-     * first value encountered for a given font/colour is the only one used.
-     */
-    
-    public void testThemeExtensionName() {
-        ITheme ext1 = fManager.getTheme(EXTENDED_THEME1);
-        ITheme ext2 = fManager.getTheme(EXTENDED_THEME2);
-        ITheme ext3 = fManager.getTheme(EXTENDED_THEME3);
-        
-        assertEquals("Extended Theme 1", ext1.getLabel());
-        assertEquals("Extended Theme 2", ext2.getLabel());
-        assertEquals("Extended Theme 3", ext3.getLabel());
-    }
-    
-    public void testThemeExtensionData() {
-        ITheme ext1 = fManager.getTheme(EXTENDED_THEME1);
-        assertNotNull(ext1.getString("d1"));
-        assertEquals("d1", ext1.getString("d1"));
-        assertNotNull(ext1.getString("d2"));
-    }
-    
-    public void testThemeExtensionColor() {
-        ITheme ext1 = fManager.getTheme(EXTENDED_THEME1);
-        assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_RED)
-                .getRGB(), ext1.getColorRegistry().getRGB(SWTCOLOR)); 
-
-        assertEquals(Display.getDefault().getSystemColor(SWT.COLOR_RED)
-                .getRGB(), ext1.getColorRegistry().getRGB(RGBCOLOR)); 
-    }
-    
-    public void testThemeExtensionFont() {
-        ITheme ext1 = fManager.getTheme(EXTENDED_THEME1);
-        
-        FontData[] fd = new FontData[] { new FontData("Sans", 10,
-                SWT.NORMAL) };
-        
-        assertArrayEquals(fd, ext1.getFontRegistry()
-                .getFontData(VALFONT));
-
-        assertArrayEquals(fd, ext1.getFontRegistry()
-                .getFontData(NOVALFONT));
-    }
-    
-    /**
-	 * Tests to ensure that a color with a bogus value doesn't take down the
-	 * workbench.
-	 */
-	public void testBadColor1() {
-    	 ITheme defaultTheme = getDefaultTheme();
-    	 assertEquals(new RGB(0,0,0), defaultTheme.getColorRegistry().getRGB(BAD_COLOR1)); // doesn't look like an RGB
-	}
-	
-	/**
-	 * Tests to ensure that a color with extra spaces doesn't take down the workbench.
-	 */
-	public void testBadColor2() {
-    	 assertEquals(new RGB(0,0,1), getDefaultTheme().getColorRegistry().getRGB(BAD_COLOR2)); // rgb with extra spaces
-	}
-	
-	/**
-	 * Tests to ensure that a color with extra spaces doesn't take down the workbench.
-	 */
-	public void testBadColor3() {
-    	 assertEquals(new RGB(0,0,0), getDefaultTheme().getColorRegistry().getRGB(BAD_COLOR3)); // rgb with extra characters
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemePropertyListener.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemePropertyListener.java
deleted file mode 100644
index 7390662..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemePropertyListener.java
+++ /dev/null
@@ -1,36 +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.tests.themes;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * @since 3.0
- */
-public class ThemePropertyListener implements IPropertyChangeListener {
-
-    private ArrayList events = new ArrayList();
-
-    /* (non-Javadoc)
-     * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-     */
-    public void propertyChange(PropertyChangeEvent event) {
-        events.add(event);
-    }
-
-    public List getEvents() {
-        return events;
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeTest.java
deleted file mode 100644
index 8f78eff..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemeTest.java
+++ /dev/null
@@ -1,90 +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.tests.themes;
-
-import java.util.Arrays;
-
-import org.eclipse.ui.tests.harness.util.UITestCase;
-import org.eclipse.ui.themes.ITheme;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * @since 3.0
- */
-public abstract class ThemeTest extends UITestCase {
-
-    protected static final String BOGUSID = "BOGUSID";
-
-    protected static final String THEME1 = "theme1";
-
-    public static void assertArrayEquals(Object[] datas, Object[] datas2) {
-        if (!Arrays.equals(datas, datas2)) {
-            String expected = formatArray(datas);
-            String actual = formatArray(datas2);
-            fail("expected:<" + expected + "> but was:<" + actual + ">");
-        }
-    }
-
-    protected static String formatArray(Object[] datas) {
-        StringBuffer buffer = new StringBuffer();
-        if (datas == null)
-            buffer.append("null");
-        else {
-            buffer.append('[');
-            for (int i = 0; i < datas.length; i++) {
-                buffer.append(datas[i]);
-                if (i != datas.length - 1)
-                    buffer.append(',');
-            }
-        }
-        return buffer.toString();
-    }
-
-    protected IThemeManager fManager;
-
-    /**
-     * @param testName
-     */
-    public ThemeTest(String testName) {
-        super(testName);
-        // TODO Auto-generated constructor stub
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.tests.util.UITestCase#doSetUp()
-     */
-    protected void doSetUp() throws Exception {
-        super.doSetUp();
-        fManager = fWorkbench.getThemeManager();
-        fManager.setCurrentTheme(IThemeManager.DEFAULT_THEME);
-    }
-
-    /**
-     * @return
-     */
-    protected ITheme getDefaultTheme() {
-        ITheme defaultTheme = fManager.getTheme(IThemeManager.DEFAULT_THEME);
-        assertNotNull(defaultTheme);
-        return defaultTheme;
-    }
-
-    /**
-     * @return
-     */
-    protected ITheme getTheme1() {
-        ITheme theme1 = fManager.getTheme(THEME1);
-        assertNotNull(theme1);
-        return theme1;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemesTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemesTestSuite.java
deleted file mode 100644
index 171baca..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/themes/ThemesTestSuite.java
+++ /dev/null
@@ -1,29 +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.tests.themes;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * @since 3.0
- */
-public class ThemesTestSuite extends TestSuite {
-
-    public static Test suite() {
-        return new ThemesTestSuite();
-    }
-
-    public ThemesTestSuite() {
-        addTest(new TestSuite(ThemeAPITest.class));
-        addTest(new TestSuite(JFaceThemeTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ActivateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ActivateTest.java
deleted file mode 100644
index 4e24e9a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ActivateTest.java
+++ /dev/null
@@ -1,138 +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.ui.tests.zoom;
-
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPart;
-
-public abstract class ActivateTest extends ZoomTestCase {
-    public ActivateTest(String name) {
-        super(name);
-    }
-    
-    public abstract IWorkbenchPart getStackedPart1();
-    public abstract IWorkbenchPart getStackedPart2();
-    public abstract IWorkbenchPart getUnstackedPart();
-    
-    /**
-     * <p>Test: Zoom a part and activate it</p>
-     * <p>Expected result: Part remains zoomed</p>
-     */
-    public void testZoomAndActivate() {
-        IWorkbenchPart stacked1 = getStackedPart1();
-        
-        zoom(stacked1);
-        page.activate(stacked1);
-        
-        assertZoomed(stacked1);
-        assertActive(stacked1);
-    }
-    
-    /** 
-     * <p>Test: Zoom a view then activate another view in the same stack</p>
-     * <p>Expected result: Stack remains zoomed</p> 
-     */
-    public void testActivateSameStack() {
-        IWorkbenchPart stacked1 = getStackedPart1();
-        IWorkbenchPart stacked2 = getStackedPart2();
-        
-        // Ensure that every view in the stack is zoomed
-        zoom(stacked1);
-        
-        // Ensure that activating another zoomed part in the same stack doesn't affect zoom
-        page.activate(stacked2);
-        
-        assertZoomed(stacked2);
-        assertActive(stacked2);        
-    }
-    
-    /** 
-     * <p>Test: Zoom a view than activate a view in a different stack</p>
-     * <p>Expected result: page unzooms</p> 
-     */
-    public void testActivateOtherStack() {
-        IWorkbenchPart stacked1 = getStackedPart1();
-        IWorkbenchPart unstacked = getUnstackedPart();
-        
-        zoom(stacked1);
-        page.activate(unstacked);
-        
-        assertZoomed(null);
-        assertActive(unstacked);
-    }
-    
-    /** 
-     * <p>Test: Zoom a view, activate a fast view, then activate the zoomed view again</p>
-     * <p>Expected result: view remains zoomed</p> 
-     */
-    public void testActivateFastView() {
-        IWorkbenchPart stacked1 = getStackedPart1();
-        zoom(stacked1);
-        page.activate(fastView);
-        
-        assertZoomed(stacked1);
-        assertActive(fastView);
-        
-        page.activate(stacked1);
-        
-        assertZoomed(stacked1);
-        assertActive(stacked1);
-    }
-    
-    /** 
-     * <p>Test: Zoom a pane then create a new fast view with the VIEW_ACTIVATE mode</p>
-     * <p>Expected result: the original pane remains zoomed</p> 
-     */
-    public void testCreateFastView() {
-        IWorkbenchPart zoomedPart = getStackedPart1();
-        
-        close(fastView);
-        zoom(zoomedPart);
-        fastView = showFastView(ZoomPerspectiveFactory.FASTVIEW1);
-        
-        assertZoomed(zoomedPart);
-        assertActive(fastView);
-    }
-
-    /** 
-     * <p>Test: Zoom a pane, then turn the fast view back into a regular view</p>
-     * <p>Expected result: the original pane remains zoomed</p> 
-     */
-    public void testRestoreFastView() {
-        IWorkbenchPart zoomedPart = getStackedPart1();
-        
-        zoom(zoomedPart);
-        
-        // Restore the fast view. Shouldn't have any effect on zoom.
-        page.removeFastView((IViewReference)page.getReference(fastView));
-
-        assertZoomed(zoomedPart);
-        assertActive(zoomedPart);
-    }
-    
-    /**
-     * <p>Test: Zoom a pane, then reset perspective.</p>
-     * <p>Expected result: the page unzooms but the original pane remains active</p>
-     * 
-     * @since 3.1
-     */
-    public void testResetPerspective() {
-        IWorkbenchPart zoomedPart = getStackedPart1();
-        
-        zoom(zoomedPart);
-        
-        page.resetPerspective();
-        
-        assertZoomed(null);
-        assertActive(zoomedPart);
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/CloseTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/CloseTest.java
deleted file mode 100644
index adf3747..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/CloseTest.java
+++ /dev/null
@@ -1,163 +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.tests.zoom;
-
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * This class contains tests that apply to both views and editors. Subclasses
- * will overload the abstract methods to determine whether editors or views
- * are being tested, and can define additional tests that only apply to editors
- * or views (or that have different results).
- */
-public abstract class CloseTest extends ZoomTestCase {
-    public CloseTest(String name) {
-        super(name);
-    }
-    
-    public abstract IWorkbenchPart getStackedPart1();
-    public abstract IWorkbenchPart getStackedPart2();
-    public abstract IWorkbenchPart getUnstackedPart();
-    
-    /**
-     * <p>Test: Zoom a part and hide an inactive fast view</p>
-     * <p>Expected result: Part remains zoomed</p>
-     */
-    public void testCloseInactiveFastView() {
-        IWorkbenchPart zoomPart = getStackedPart1();
-        
-        zoom(zoomPart);
-        close(fastView);
-        
-        assertZoomed(zoomPart);
-        assertActive(zoomPart);
-    }
-    
-    /**
-     * <p>Test: Zoom a part, activate a fast view, then hide the fast view</p>
-     * <p>Expected result: Part remains zoomed</p>
-     */
-    public void testCloseActiveFastView() {
-        IWorkbenchPart zoomPart = getStackedPart1();
-        
-        zoom(zoomPart);
-        page.activate(fastView);
-        close(fastView);
-        
-        assertZoomed(zoomPart);
-        assertActive(zoomPart);
-    }
-    
-    /**
-     * <p>Test: Activate an unstacked view, zoom and activate a stacked part, then close the active part.</p>
-     * <p>Expected result: Stack remains zoomed, another part in the zoomed stack is active</p>
-     * <p>Note: This ensures that when the active part is closed, it will try to activate a part that
-     *    doesn't affect the zoom even if something else was activated more recently.</p>
-     */
-    public void testCloseZoomedStackedPartAfterActivatingView() {
-        IWorkbenchPart zoomPart = getStackedPart1();
-        IWorkbenchPart otherStackedPart = getStackedPart2();
-        IWorkbenchPart unstackedPart = unstackedView;
-        
-        page.activate(unstackedPart);
-        zoom(zoomPart);
-        close(zoomPart);
-                
-        assertZoomed(otherStackedPart);
-        assertActive(otherStackedPart);
-    }
-
-    /**
-     * <p>Test: Activate an unstacked editor, zoom and activate a stacked part, then close the active part.</p>
-     * <p>Expected result: Stack remains zoomed, another part in the zoomed stack is active</p>
-     * <p>Note: This ensures that when the active part is closed, it will try to activate a part that
-     *    doesn't affect the zoom even if something else was activated more recently.</p>
-     */
-    public void testCloseZoomedStackedPartAfterActivatingEditor() {
-        IWorkbenchPart zoomPart = getStackedPart1();
-        IWorkbenchPart otherStackedPart = getStackedPart2();
-        IWorkbenchPart unstackedPart = editor3;
-        
-        page.activate(unstackedPart);
-        zoom(zoomPart);
-        close(zoomPart);
-        
-        assertZoomed(otherStackedPart);
-        assertActive(otherStackedPart);
-    }
-
-    /**
-     * <p>Test: Activate an unstacked editor, activate a stacked part, then close the active part.</p>
-     * <p>Expected result: The unstacked part becomes active</p>
-     * <p>Note: This isn't really a zoom test, but it ensures that the behavior tested by 
-     *    testHideZoomedStackedPartAfterActivatingEditor does not affect activation when there is no zoom.</p>
-     */
-    public void testCloseUnzoomedStackedPartAfterActivatingEditor() {
-        IWorkbenchPart activePart = getStackedPart1();
-        IWorkbenchPart unstackedPart = editor3;
-        
-        page.activate(unstackedPart);
-        page.activate(activePart);
-        close(activePart);
-        
-        assertZoomed(null);
-        assertActive(unstackedPart);
-    }
-        
-    /**
-     * <p>Test: Zoom an unstacked part and close it.</p>
-     * <p>Expected result: The page is unzoomed and the previously active part becomes active</p>
-     * <p>Note: This ensures that the activation list is used if there is nothing available
-     *    in the currently zoomed stack.</p>
-     */
-    public void testCloseZoomedUnstackedPartAfterActivatingEditor() {
-        IWorkbenchPart previousActive = editor1;
-        IWorkbenchPart zoomedPart = getUnstackedPart();
-        
-        page.activate(previousActive);
-        zoom(zoomedPart);
-        close(zoomedPart);
-
-        assertZoomed(null);
-        assertActive(previousActive);
-    }
-
-    /**
-     * <p>Test: Zoom a stacked part and close an inactive, unstacked editor.</p>
-     * <p>Expected result: No change in activation or zoom</p>
-     */
-    public void testCloseHiddenUnstackedEditor() {
-        IWorkbenchPart zoomedPart = getStackedPart1();
-        
-        // Activate another editor to ensure that we aren't closing the active editor
-        page.activate(editor1);
-        zoom(zoomedPart);
-        close(editor3);
-
-        assertZoomed(zoomedPart);
-        assertActive(zoomedPart);
-    }
-    
-    /**
-     * <p>Test: Zoom a stacked part and close an inactive, unstacked view.</p>
-     * <p>Expected result: No change in activation or zoom</p>
-     */
-    public void testCloseHiddenUnstackedView() {
-        IWorkbenchPart zoomedPart = getStackedPart1();
-        
-        zoom(zoomedPart);
-        close(unstackedView);
-        
-        assertZoomed(zoomedPart);
-        assertActive(zoomedPart);
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/OpenEditorTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/OpenEditorTest.java
deleted file mode 100644
index 7c4bfad..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/OpenEditorTest.java
+++ /dev/null
@@ -1,149 +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.tests.zoom;
-
-import junit.framework.Assert;
-
-
-public class OpenEditorTest extends ZoomTestCase {
-    public OpenEditorTest(String name) {
-        super(name);
-    }
-
-    /** 
-     * <p>Test: Zoom an editor then open an existing editor in the same stack. Do not force activation.</p>
-     * <p>Expected result: the new editor is zoomed and active</p> 
-     */
-    public void testOpenExistingEditorInZoomedStack() {
-        zoom(editor1);
-        openEditor(file2, false);
-        Assert.assertTrue(isZoomed(editor2));
-        Assert.assertTrue(page.getActivePart() == editor2);
-    }
-
-    /** 
-     * <p>Test: Open a new editor while a view is zoomed. Do not force activation.</p>
-     * <p>Expected result: the page remains zoomed, the view is active</p> 
-     * 
-     * <p>Note: the expected result changed intentionally on 05/04/18</p>
-     */
-    public void testOpenNewEditorWhileViewZoomed() {
-        close(editor1);
-        
-        zoom(stackedView1);
-        openEditor(file1, false);
-        
-        assertZoomed(stackedView1);
-        assertActive(stackedView1);
-    }
-    
-    /** 
-     * <p>Test: Zoom an editor then open a new editor in the same stack. Do not force activation.</p>
-     * <p>Expected result: the new editor is zoomed and active</p> 
-     */
-    public void testOpenNewEditorInZoomedStack() {
-        close(editor2);
-        
-        zoom(editor1);
-        openEditor(file2, false);
-        Assert.assertTrue(isZoomed(editor2));
-        Assert.assertTrue(page.getActivePart() == editor2);
-    }
-    
-    /** 
-     * <p>Test: Open an existing editor while a view is zoomed. Do not force activation.</p>
-     * <p>Expected result: the page remains zoomed, the view is active</p> 
-     */
-    public void testOpenExistingEditorWhileViewZoomed() {
-        zoom(stackedView1);
-        openEditor(file1, false);
-        
-        assertZoomed(stackedView1);
-        assertActive(stackedView1);
-    }
-
-    /** 
-     * <p>Test: Open an existing editor while a view is zoomed. Use the activate-on-open mode.</p>
-     * <p>Expected result: the page is unzoomed, the view is active</p> 
-     */
-    public void testOpenAndActivateExistingEditorWhileViewZoomed() {
-        zoom(stackedView1);
-        openEditor(file1, true);
-
-        assertZoomed(null);
-        assertActive(editor1);
-    }
-
-    /** 
-     * <p>Test: Open a new editor while a view is zoomed. Use the activate-on-open mode.</p>
-     * <p>Expected result: the page is unzoomed, the view is active</p> 
-     */
-    public void testOpenAndActivateNewEditorWhileViewZoomed() {
-        close(editor1);
-        
-        zoom(stackedView1);
-        openEditor(file1, true);
-       
-        assertZoomed(null);
-        assertActive(editor1);
-    }
-
-    /** 
-     * <p>Test: Zoom an editor then open an existing in the same stack. Use the activate-on-open mode.</p>
-     * <p>Expected result: the new editor is zoomed and active</p> 
-     */
-    public void testOpenAndActivateExistingEditorInZoomedStack() {
-        zoom(editor1);
-        openEditor(file2, true);
-
-        assertZoomed(editor2);
-        assertActive(editor2);
-    }
-
-    /** 
-     * <p>Test: Zoom an editor then open a new editor in the same stack. Use the activate-on-open mode.</p>
-     * <p>Expected result: the new editor is zoomed and active</p> 
-     */
-    public void testOpenAndActivateNewEditorInZoomedStack() {
-        close(editor2);
-        
-        zoom(editor1);
-        openEditor(file2, true);
-
-        assertZoomed(editor2);
-        assertActive(editor2);
-    }
-    
-    /** 
-     * <p>Test: Zoom an editor then open an existing editor in a different stack. Do not force activation.</p>
-     * <p>Expected result: the page remains zoomed and the original editor is active</p> 
-     */
-    public void testOpenExistingEditorInOtherStack() {
-        zoom(editor3);
-        openEditor(file2, false);
-        
-        assertZoomed(editor3);
-        assertActive(editor3);
-    }
-
-    /** 
-     * <p>Test: Zoom an editor then open an existing editor in a different stack. Use the activate-on-open mode.</p>
-     * <p>Expected result: the page is unzoomed and the new editor and active</p> 
-     */
-    public void testOpenAndActivateExistingEditorInOtherStack() {
-        zoom(editor3);
-        openEditor(file2, true);
-
-        assertZoomed(null);
-        assertActive(editor2);
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ShowViewTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ShowViewTest.java
deleted file mode 100644
index d32de4b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ShowViewTest.java
+++ /dev/null
@@ -1,194 +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.ui.tests.zoom;
-
-import junit.framework.Assert;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.internal.PartPane;
-import org.eclipse.ui.internal.PartSite;
-import org.eclipse.ui.internal.PartStack;
-
-public class ShowViewTest extends ZoomTestCase {
-    public ShowViewTest(String name) {
-        super(name);
-    }
-
-// Commented out until the (possible) ambiguity in bug 91775 is resolved
-//    /** 
-//     * <p>Test: Zoom a view, create a new view in the same stack using the 
-//     *    IWorkbenchPage.VIEW_VISIBLE flag</p>
-//     * <p>Expected result: the new view is zoomed and active</p> 
-//     */
-//    public void testCreateViewAndMakeVisibleInZoomedStack() {
-//        zoom(stackedView1);
-//        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, 
-//                IWorkbenchPage.VIEW_VISIBLE);
-//        
-//        Assert.assertTrue(page.getActivePart() == newPart);
-//        Assert.assertTrue(isZoomed(newPart));
-//    }
-    
-    /** 
-     * <p>Test: Zoom a view, create a new view in the same stack using the 
-     *    IWorkbenchPage.VIEW_CREATE flag, then bring it to top using </p>
-     * <p>Expected result: the new view is zoomed and active</p> 
-     */
-    public void testCreateViewAndBringToTop() {
-        zoom(stackedView1);
-        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, 
-                IWorkbenchPage.VIEW_CREATE);
-        
-        page.bringToTop(newPart);
-        
-        Assert.assertTrue(page.getActivePart() == newPart);
-        Assert.assertTrue(isZoomed(newPart));
-    }
-
-    /** 
-     * <p>Test: Zoom a view, create a new view in a different stack using the 
-     *    IWorkbenchPage.VIEW_CREATE flag and bring it to front using page.bringToTop</p>
-     * <p>Expected result: no change in zoom or activation. The newly created view is obscured by the zoom, 
-     *    but will be the top view in its (currently invisible) stack.</p> 
-     */
-    public void testCreateViewAndBringToTopInOtherStack() {
-        zoom(unstackedView);
-        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_CREATE);
-        page.bringToTop(newPart);
-        Assert.assertTrue(page.getActivePart() == unstackedView);
-        
-        // Ensure no change to zoom
-        Assert.assertTrue(isZoomed(unstackedView));
-        
-        // Ensure that the new part was brought to the top of the stack
-        PartPane pane = ((PartSite) newPart.getSite()).getPane();
-        PartStack stack = (PartStack)pane.getContainer();
-        
-        Assert.assertTrue(stack.getSelection() == pane);
-    }
-    
-    /** 
-     * <p>Test: Zoom a view, create a new view in a different stack using the 
-     *    IWorkbenchPage.VIEW_VISIBLE flag</p>
-     * <p>Expected result: no change in zoom or activation. The newly created view is obscured by the zoom, 
-     *    but will be the top view in its (currently invisible) stack.</p> 
-     */
-    public void testCreateViewAndMakeVisibleInOtherStack() {
-        zoom(unstackedView);
-        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_VISIBLE);
-        Assert.assertTrue(page.getActivePart() == unstackedView);
-        
-        // Ensure no change to zoom
-        Assert.assertTrue(isZoomed(unstackedView));
-        
-        // Ensure that the new part was brought to the top of the stack
-        PartPane pane = ((PartSite) newPart.getSite()).getPane();
-        PartStack stack = (PartStack)pane.getContainer();
-        
-        Assert.assertTrue(stack.getSelection() == pane);
-    }
-    /** 
-     * <p>Test: Zoom an editor, create a new view using the IWorkbenchPage.VIEW_VISIBLE mode</p>
-     * <p>Expected result: No change to zoom or activation. The new view was brought to the top
-     *    of its stack.</p> 
-     */
-    public void testCreateViewAndMakeVisibleWhileEditorZoomed() {
-        zoom(editor1);
-        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_VISIBLE);
-        Assert.assertTrue(isZoomed());
-        Assert.assertTrue(page.getActivePart() == editor1);
-        
-        // Ensure that the new part was brought to the top of the stack
-        PartPane pane = ((PartSite) newPart.getSite()).getPane();
-        PartStack stack = (PartStack)pane.getContainer();
-        
-        Assert.assertTrue(stack.getSelection() == pane);
-    }
-        
-    /** 
-     * <p>Test: Zoom a view, create a new view in the same stack using the 
-     *    IWorkbenchPage.VIEW_ACTIVATE flag</p>
-     * <p>Expected result: the new view is zoomed and active</p> 
-     */
-    public void testCreateViewAndActivateInZoomedStack() {
-        zoom(stackedView1);
-        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_ACTIVATE);
-        
-        assertZoomed(newPart);
-        assertActive(newPart);
-    }
-    
-    /** 
-     * <p>Test: Zoom a view, create a new view in the same stack using the 
-     *    IWorkbenchPage.VIEW_CREATE flag</p>
-     * <p>Expected result: no change in activation or zoom</p> 
-     */
-    public void testCreateViewInZoomedStack() {
-        zoom(stackedView1);
-        showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, 
-                IWorkbenchPage.VIEW_CREATE);
-        
-        assertZoomed(stackedView1);
-        assertActive(stackedView1);
-    }
-
-    /** 
-     * <p>Test: Zoom a view, create a new view in a different stack using the 
-     *    IWorkbenchPage.VIEW_ACTIVATE flag</p>
-     * <p>Expected result: the page is unzoomed and the new view is active</p> 
-     */
-    public void testCreateViewAndActivateInOtherStack() {
-        zoom(unstackedView);
-        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_ACTIVATE);
-        
-        assertZoomed(null);
-        assertActive(newPart);
-    }
-    
-    /** 
-     * <p>Test: Zoom a view, create a new view in a different stack using the 
-     *    IWorkbenchPage.VIEW_CREATE flag</p>
-     * <p>Expected result: No change to zoom or activation. The newly created view is hidden</p> 
-     */
-    public void testCreateViewInOtherStack() {
-        zoom(unstackedView);
-        showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_CREATE);
-
-        assertZoomed(unstackedView);
-        assertActive(unstackedView);
-    }
-    
-    /** 
-     * <p>Test: Zoom an editor, create a new view using the IWorkbenchPage.VIEW_ACTIVATE mode</p>
-     * <p>Expected result: the page is unzoomed and the new view is active</p> 
-     */
-    public void testCreateViewAndActivateWhileEditorZoomed() {
-        zoom(editor1);
-        IViewPart newPart = showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_ACTIVATE);
-        
-        assertZoomed(null);
-        assertActive(newPart);
-    }
-
-    /** 
-     * <p>Test: Zoom an editor, create a new view using the IWorkbenchPage.VIEW_CREATE mode</p>
-     * <p>Expected result: The editor remains zoomed and active.</p> 
-     */
-    public void testCreateViewWhileEditorZoomed() {
-        zoom(editor1);
-        showRegularView(ZoomPerspectiveFactory.STACK1_PLACEHOLDER1, IWorkbenchPage.VIEW_CREATE);
-        
-        assertZoomed(editor1);
-        assertActive(editor1);
-    }
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java
deleted file mode 100644
index 1f09c17..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomPerspectiveFactory.java
+++ /dev/null
@@ -1,47 +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.tests.zoom;
-
-import org.eclipse.ui.IFolderLayout;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.0
- */
-public class ZoomPerspectiveFactory implements IPerspectiveFactory {
-    public static final String PERSP_ID = "org.eclipse.ui.tests.zoom.ZoomPerspectiveFactory";
-
-    public static final String STACK1_VIEW1 = IPageLayout.ID_OUTLINE;
-    public static final String STACK1_VIEW2 = IPageLayout.ID_PROBLEM_VIEW;
-    public static final String STACK1_PLACEHOLDER1 = IPageLayout.ID_PROP_SHEET;
-    public static final String STACK1_VIEW3 = IPageLayout.ID_TASK_LIST;
-    public static final String UNSTACKED_VIEW1 = IPageLayout.ID_RES_NAV;
-    public static final String FASTVIEW1 = IPageLayout.ID_BOOKMARKS;
-    
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-     */
-    public void createInitialLayout(IPageLayout layout) {
-        String folderId = "org.eclipse.ui.test.zoom.mystack";
-
-        IFolderLayout folder = layout.createFolder(folderId,
-                IPageLayout.LEFT, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        folder.addView(STACK1_VIEW1);
-        folder.addView(STACK1_VIEW2);
-        folder.addPlaceholder(STACK1_PLACEHOLDER1);
-        folder.addView(STACK1_VIEW3);
-        
-        layout.addView(UNSTACKED_VIEW1,  IPageLayout.TOP, 0.5f, IPageLayout.ID_EDITOR_AREA);
-        
-        layout.addFastView(FASTVIEW1);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java
deleted file mode 100644
index 2b7df24..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestCase.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.tests.zoom;
-
-import junit.framework.Assert;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchPreferenceConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.internal.IPreferenceConstants;
-import org.eclipse.ui.internal.PartPane;
-import org.eclipse.ui.internal.PartSite;
-import org.eclipse.ui.internal.WorkbenchPage;
-import org.eclipse.ui.internal.WorkbenchPlugin;
-import org.eclipse.ui.internal.WorkbenchWindow;
-import org.eclipse.ui.internal.util.PrefUtil;
-import org.eclipse.ui.internal.util.Util;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.tests.api.MockEditorPart;
-import org.eclipse.ui.tests.dnd.DragOperations;
-import org.eclipse.ui.tests.dnd.EditorAreaDropTarget;
-import org.eclipse.ui.tests.dnd.ExistingWindowProvider;
-import org.eclipse.ui.tests.harness.util.FileUtil;
-import org.eclipse.ui.tests.harness.util.UITestCase;
-
-public class ZoomTestCase extends UITestCase {
-//    protected static final String view1Id = IPageLayout.ID_RES_NAV;
-//
-//    protected static final String view2Id = IPageLayout.ID_OUTLINE;
-
-    protected WorkbenchWindow window;
-
-    protected WorkbenchPage page;
-
-    protected IProject project;
-
-    protected IFile file1, file2;
-    
-    protected IEditorPart editor1, editor2, editor3;
-
-    protected IViewPart stackedView1;
-    protected IViewPart stackedView2;
-    protected IViewPart unstackedView;
-    protected IViewPart fastView;
-
-    private IFile file3;
-
-    // Remember the actual value of the 'useMinMax' state
-    // so that 'tearDown' can restore it
-	private boolean oldMinMaxState;
-    
-    public ZoomTestCase(String name) {
-        super(name);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.util.UITestCase#doTearDown()
-     */
-    protected void doTearDown() throws Exception {
-        page.testInvariants();
-        
-        super.doTearDown();
-
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, oldMinMaxState);
-    }
-    
-    protected void doSetUp() throws Exception {
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore();
-        oldMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        
-        super.doSetUp();
-
-        window = (WorkbenchWindow) openTestWindow(ZoomPerspectiveFactory.PERSP_ID);
-        page = (WorkbenchPage) window.getActivePage();
-
-        // Disable animations since they occur concurrently and can interferre
-        // with locating drop targets
-        apiStore.setValue(
-                IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS,
-                false);
-        
-		// These tests are hard-wired to the pre-3.3 zoom behaviour
-		// Run them anyway to ensure that we preserve the 3.0 mechanism
-        oldMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX);
-        
-        apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false);
-		
-        try {
-            project = FileUtil.createProject("IEditorPartTest"); //$NON-NLS-1$
-            file1 = FileUtil.createFile("Test1.txt", project); //$NON-NLS-1$
-            file2 = FileUtil.createFile("Test2.txt", project); //$NON-NLS-1$
-            file3 = FileUtil.createFile("Test3.txt", project); //$NON-NLS-1$
-            editor1 = page.openEditor(new FileEditorInput(file1),
-                    MockEditorPart.ID1);
-            editor2 = page.openEditor(new FileEditorInput(file2),
-                    MockEditorPart.ID2);
-            editor3 = page.openEditor(new FileEditorInput(file3),
-                    MockEditorPart.ID2);
-
-            DragOperations
-        		.drag(editor3, new EditorAreaDropTarget(new ExistingWindowProvider(window), SWT.RIGHT), false);
-        } catch (PartInitException e) {
-        } catch (CoreException e) {
-        }
-        
-        stackedView1 = findView(ZoomPerspectiveFactory.STACK1_VIEW1);
-        stackedView2 = findView(ZoomPerspectiveFactory.STACK1_VIEW2);
-        unstackedView = findView(ZoomPerspectiveFactory.UNSTACKED_VIEW1);
-        fastView = findView(ZoomPerspectiveFactory.FASTVIEW1);
-    }
-
-    // zooms the given part
-    protected void zoom(IWorkbenchPart part) {
-        if (part == null)
-            throw new NullPointerException();
-        page.activate(part);
-        page.toggleZoom(page.getReference(part));
-        Assert.assertTrue(page.isZoomed());
-        Assert.assertTrue(isZoomed(part));
-    }
-
-    // open the given file in an editor
-    protected void openEditor(IFile file, boolean activate) {
-        try {
-            if (file == file1)
-                editor1 = IDE.openEditor(page, file, activate);
-            if (file == file2)
-                editor2 = IDE.openEditor(page, file, activate);
-        } catch (PartInitException e) {
-        }
-    }
-
-    protected IViewPart findView(String id) {
-        IViewPart view = page.findView(id);
-        assertNotNull("View " + id + " not found", view);
-        return view;
-    }
-    
-    // show the given view as a regular view
-    protected IViewPart showRegularView(String id, int mode) {
-        try {
-            IViewPart view = page.showView(id, null, mode);
-            IViewReference ref = (IViewReference) page.getReference(view);
-            if (page.isFastView(ref))
-                page.removeFastView(ref);
-            return view;
-        } catch (PartInitException e) {
-        }
-        return null;
-    }
-
-    // show the given view
-    protected IViewPart showFastView(String id) {
-        try {
-            IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore();
-        	
-            int oldMode = store.getInt(IPreferenceConstants.OPEN_VIEW_MODE);
-			store.setValue(IPreferenceConstants.OPEN_VIEW_MODE, IPreferenceConstants.OVM_FAST);
-			
-            IViewPart view = page.showView(id);
-            IViewReference ref = (IViewReference) page.getReference(view);
-            page.addFastView(ref);
-            Assert.assertTrue(page.isFastView(ref));
-            store.setValue(IPreferenceConstants.OPEN_VIEW_MODE, oldMode);
-            return view;
-        } catch (PartInitException e) {
-        }
-        return null;
-    }
-
-    // returns whether this part is zoomed
-    protected boolean isZoomed(IWorkbenchPart part) {
-        PartSite site = (PartSite) part.getSite();
-        PartPane pane = site.getPane();
-        
-        return pane.isZoomed();
-    }
-    
-    /**
-     * Asserts that the given part is zoomed. If the part is null, asserts
-     * that no parts are zoomed.
-     * 
-     * @param part
-     * @since 3.1
-     */
-    protected void assertZoomed(IWorkbenchPart part) {
-        if (part == null) {
-            Assert.assertFalse("Page should not be zoomed", isZoomed());
-        } else {
-            // Assert that the part is zoomed
-            Assert.assertTrue("Expecting " + partName(part) + " to be zoomed", isZoomed(part));
-            // Assert that the page is zoomed (paranoia check)
-            Assert.assertTrue("Page should be zoomed", isZoomed());
-        }
-    }
-
-    /**
-     * Asserts that the given part is active.
-     * 
-     * @param part
-     * @since 3.1
-     */
-    protected void assertActive(IWorkbenchPart part) {
-        IWorkbenchPart activePart = page.getActivePart();
-        
-        // Assert that the part is active
-        Assert.assertTrue("Unexpected active part: expected " + partName(part) 
-                + " and found " + partName(activePart), activePart == part);
-        
-        // If the part is an editor, assert that the editor is active
-        if (part instanceof IEditorPart) {
-            assertActiveEditor((IEditorPart)part);
-        }
-    }
-    
-    protected String partName(IWorkbenchPart part) {
-        if (part == null) {
-            return "null";
-        }
-        
-        return Util.safeString(part.getTitle());
-    }
-    
-    protected void assertActiveEditor(IEditorPart part) {
-        IWorkbenchPart activeEditor = page.getActiveEditor();
-        
-        Assert.assertTrue("Unexpected active editor: expected " + partName(part) 
-                + " and found " + partName(activeEditor), activeEditor == part);        
-    }
-    
-    // returns true if the page is not zoomed, false otherwise
-    protected boolean isZoomed() {
-        return page.isZoomed();
-    }
-    
-    public void close(IWorkbenchPart part) {
-        if (part instanceof IViewPart) {
-            page.hideView((IViewPart)part);
-        } else if (part instanceof IEditorPart) {
-            page.closeEditor((IEditorPart)part, false);
-        }
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestSuite.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestSuite.java
deleted file mode 100644
index 8b0c62b..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomTestSuite.java
+++ /dev/null
@@ -1,39 +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.ui.tests.zoom;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-/**
- * A test suite to test the zooming behavior of Eclipse.
- */
-public class ZoomTestSuite extends TestSuite {
-    /**
-     * Returns the suite.  This is required to
-     * use the JUnit Launcher.
-     */
-    public static Test suite() {
-        return new ZoomTestSuite();
-    }
-
-    /**
-     * Construct the test suite.
-     */
-    public ZoomTestSuite() {
-        addTest(new TestSuite(ZoomedEditorActivateTest.class));
-        addTest(new TestSuite(ZoomedViewActivateTest.class));
-        addTest(new TestSuite(ZoomedEditorCloseTest.class));
-        addTest(new TestSuite(ZoomedViewCloseTest.class));
-        addTest(new TestSuite(ShowViewTest.class));
-        addTest(new TestSuite(OpenEditorTest.class));
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorActivateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorActivateTest.java
deleted file mode 100644
index b9d8263..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorActivateTest.java
+++ /dev/null
@@ -1,61 +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.tests.zoom;
-
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @since 3.1
- */
-public class ZoomedEditorActivateTest extends ActivateTest {
-
-    /**
-     * @param name
-     */
-    public ZoomedEditorActivateTest(String name) {
-        super(name);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.ActivateTest#getStackedPart1()
-     */
-    public IWorkbenchPart getStackedPart1() {
-        return editor1;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.ActivateTest#getStackedPart2()
-     */
-    public IWorkbenchPart getStackedPart2() {
-        return editor2;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.ActivateTest#getUnstackedPart()
-     */
-    public IWorkbenchPart getUnstackedPart() {
-        return editor3;
-    }
-
-    /** 
-     * <p>Test: Zoom an editor then activate a view</p>
-     * <p>Expected result: page unzooms</p> 
-     */
-    public void testActivateView() {
-        zoom(editor1);
-        page.activate(stackedView1);
-        
-        assertZoomed(null);
-        assertActive(stackedView1);
-    }
-
-    
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorCloseTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorCloseTest.java
deleted file mode 100644
index 3c74b8a..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedEditorCloseTest.java
+++ /dev/null
@@ -1,88 +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.tests.zoom;
-
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @since 3.1
- */
-public class ZoomedEditorCloseTest extends CloseTest {
-
-    /**
-     * @param name
-     */
-    public ZoomedEditorCloseTest(String name) {
-        super(name);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.CloseTest#getStackedPart1()
-     */
-    public IWorkbenchPart getStackedPart1() {
-        return editor1;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.CloseTest#getStackedPart2()
-     */
-    public IWorkbenchPart getStackedPart2() {
-        return editor2;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.CloseTest#getUnstackedPart()
-     */
-    public IWorkbenchPart getUnstackedPart() {
-        return editor3;
-    }
-    
-    /**
-     * <p>Test: Activate a view, then zoom an unstacked editor and close it.</p>
-     * <p>Expected result: The previously active Editor becomes active and unzoomed</p>
-     * <p>Note: This ensures that the activation list is used if there is nothing available
-     *    in the currently zoomed stack. It also ensures that activation never moves from
-     *    an editor to a view when an editor is closed.</p>
-     */
-    public void testCloseZoomedUnstackedEditorAfterActivatingView() {
-        IWorkbenchPart previousActive = stackedView1;
-        IWorkbenchPart zoomedPart = editor3;
-        
-        page.activate(editor1);
-        page.activate(previousActive);
-        zoom(zoomedPart);
-        close(zoomedPart);
-
-        assertZoomed(null);
-        assertActive(editor1);
-    }
-    
-    /**
-     * <p>Test: Activate an unstacked editor, activate an unstacked view, activate a stacked editor, 
-     *    then close the active editor.</p>
-     * <p>Expected result: The previously active editor becomes active (even though a view is next
-     *    in the activation list)</p>
-     * <p>Note: This isn't really a zoom test, but it ensures that activation doesn't move from an editor
-     *    to a view when the active editor is closed. Activating an editor in a different stack first 
-     *    ensures that activation WILL move between editor stacks to follow the activation order.</p> 
-     */
-    public void testCloseUnzoomedStackedEditorAfterActivatingView() {
-        page.activate(editor3);
-        page.activate(unstackedView);
-        page.activate(editor1);
-        close(editor1);
-        
-        // Ensure that activation moved to the previously active editor, even though
-        // a view was next in the activation list.
-        assertZoomed(null);
-        assertActive(editor3);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewActivateTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewActivateTest.java
deleted file mode 100644
index a241c0c..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewActivateTest.java
+++ /dev/null
@@ -1,59 +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.tests.zoom;
-
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @since 3.1
- */
-public class ZoomedViewActivateTest extends ActivateTest {
-
-    /**
-     * @param name
-     */
-    public ZoomedViewActivateTest(String name) {
-        super(name);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.ActivateTest#getStackedPart1()
-     */
-    public IWorkbenchPart getStackedPart1() {
-        return stackedView1;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.ActivateTest#getStackedPart2()
-     */
-    public IWorkbenchPart getStackedPart2() {
-        return stackedView2;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.ActivateTest#getUnstackedPart()
-     */
-    public IWorkbenchPart getUnstackedPart() {
-        return unstackedView;
-    }
-
-    /** 
-     * <p>Test: Zoom a view then activate an editor</p>
-     * <p>Expected result: page unzooms</p> 
-     */
-    public void testActivateEditor() {
-        zoom(stackedView1);
-        page.activate(editor1);
-        
-        assertZoomed(null);
-        assertActive(editor1);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewCloseTest.java b/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewCloseTest.java
deleted file mode 100644
index 72b2d7e..0000000
--- a/tests/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/zoom/ZoomedViewCloseTest.java
+++ /dev/null
@@ -1,100 +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.tests.zoom;
-
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @since 3.1
- */
-public class ZoomedViewCloseTest extends CloseTest {
-
-    /**
-     * @param name
-     */
-    public ZoomedViewCloseTest(String name) {
-        super(name);
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.CloseTest#getStackedPart1()
-     */
-    public IWorkbenchPart getStackedPart1() {
-        return stackedView1;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.CloseTest#getStackedPart2()
-     */
-    public IWorkbenchPart getStackedPart2() {
-        return stackedView2;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.tests.zoom.CloseTest#getUnstackedPart()
-     */
-    public IWorkbenchPart getUnstackedPart() {
-        return unstackedView;
-    }
-
-    /**
-     * <p>Test: Zoom a view, then close the active editor.</p>
-     * <p>Expected result: The view remains zoomed and active. A new editor is selected as the
-     *    active editor.</p>
-     * <p>Note: The behavior of this test changed intentionally on 050416. Closing the active editor
-     *    no longer unzooms if a view is zoomed.</p> 
-     */
-    public void testCloseActiveEditorWhileViewZoomed() {
-        page.activate(editor1);
-        zoom(stackedView1);
-        close(editor1);
-        
-        assertZoomed(stackedView1);
-        assertActive(stackedView1);
-    }
-    
-    /**
-     * <p>Test: Zoom an unstacked view and close it.</p>
-     * <p>Expected result: The previously active part becomes active and unzoomed</p>
-     * <p>Note: This ensures that the activation list is used if there is nothing available
-     *    in the currently zoomed stack.</p>
-     */
-    public void testCloseZoomedUnstackedViewAfterActivatingView() {
-        IWorkbenchPart previousActive = stackedView1;
-        IWorkbenchPart zoomedPart = getUnstackedPart();
-        
-        page.activate(previousActive);
-        zoom(zoomedPart);
-        close(zoomedPart);
-
-        assertZoomed(null);
-        assertActive(previousActive);
-    }
-
-    /**
-     * <p>Test: Activate an unstacked view, activate a stacked part, then close the active part.</p>
-     * <p>Expected result: The unstacked part becomes active</p>
-     * <p>Note: This isn't really a zoom test, but it ensures that activation 
-     *    will move between stacks when there is no zoom.</p>
-     */
-    public void testCloseUnzoomedStackedViewAfterActivatingView() {
-        IWorkbenchPart activePart = getStackedPart1();
-        IWorkbenchPart unstackedPart = unstackedView;
-        
-        page.activate(unstackedPart);
-        page.activate(activePart);
-        close(activePart);
-        
-        // Ensure that the other part in the zoomed stack is now zoomed and active
-        assertZoomed(null);
-        assertActive(unstackedPart);
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/JFace-All Tests.launch b/tests/org.eclipse.ui.tests/JFace-All Tests.launch
deleted file mode 100644
index c8a02ee..0000000
--- a/tests/org.eclipse.ui.tests/JFace-All Tests.launch
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<booleanAttribute key="com.mountainminds.eclemma.core.INPLACE_INSTRUMENTATION" value="true"/>
-<listAttribute key="com.mountainminds.eclemma.core.INSTRUMENTATION_PATHS">
-<listEntry value="/org.eclipse.jface/bin"/>
-<listEntry value="/org.eclipse.core.commands/bin"/>
-</listAttribute>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests/Eclipse JFace Tests/org/eclipse/jface/tests/AllTests.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.jface.tests.AllTests"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests/META-INF/MANIFEST.MF
deleted file mode 100644
index 60257a5..0000000
--- a/tests/org.eclipse.ui.tests/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,34 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Eclipse UI Tests
-Bundle-SymbolicName: org.eclipse.ui.tests; singleton:=true
-Bundle-Version: 3.5.0.qualifier
-Bundle-ClassPath: uitests.jar
-Bundle-Activator: org.eclipse.core.internal.compatibility.PluginActivator
-Bundle-Vendor: Eclipse.org
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime.compatibility,
- org.eclipse.core.resources,
- org.eclipse.core.expressions,
- org.eclipse.ui,
- org.junit,
- org.eclipse.ui.ide,
- org.eclipse.ui.editors,
- org.eclipse.ui.workbench.texteditor,
- org.eclipse.ui.views,
- org.eclipse.text,
- org.eclipse.jface.text,
- org.eclipse.test.performance,
- org.eclipse.core.tests.harness,
- org.eclipse.ui.tests.harness,
- org.eclipse.core.filesystem,
- org.eclipse.core.databinding,
- org.eclipse.core.databinding.beans,
- org.eclipse.jface.databinding,
- org.eclipse.ui.navigator.resources,
- org.eclipse.core.runtime
-Eclipse-AutoStart: true
-Plugin-Class: org.eclipse.ui.tests.TestPlugin
-Export-Package: org.eclipse.ui.tests.api,
- org.eclipse.ui.tests.menus
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/CommonNavigator.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/CommonNavigator.txt
deleted file mode 100644
index f8f6fcd..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/CommonNavigator.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-This is a test list for the Common Navigator view. This list is a trimmed 
-down version of the Resource Navigator view component test plan.
-
-Edit Actions (Not yet supported in Common Navigator test pass [Coming in M5])
-	Verify that enablement of Copy, Delete, Add Bookmark is consistent with that of the Navigator view's context menu, and that 
-		the same behaviour occurs.
-
-Presentation
-	Verify that appropriate strings appear in all menu items and text fields.
-	Verify icons for file, folder and project.
-	Verify that the view shows appropriate scrollbars when its contents extends beyond its client area.
-
-Standard Object Actions (Not yet supported in Common Navigator test pass [Coming in M5])
-	Verify menu items: Copy, Move, Rename, Delete for all resouces.
-	Verify that the DELETE key maps to the Delete action.
-	Verify Delete on a read-only resource.
-	Verify Properties for projects, folders, files, and combinations of the same. 
-	Verify that when the view is active, the status bar shows the full path of the selected resource.
-
-Actions on Multiselected Items (Not yet supported in Common Navigator test pass [Coming in M5])
-	If two or more resources are multiselected, Rename is disabled.
-	If a project and its resource(s) are multiselected, Copy and Move are disabled.
-	If a folder and its child resource(s) are multiselected, Copy and Move are disabled. 
-	Verify Delete on multiselected resources.
-	Verify Copy and Move on multiselected files in the same project.
-
-File Specific Actions 
-	Verify menu content when file selected.	[Should include New> with 'Project' and 'Other', Open, and Open With, in addition to basic object contributions] 	 
-	Verify Add Bookmark only appears on files and the bookmark is created when invoked. (Not yet supported in Common Navigator test pass [Coming in M5])
-
-Folder Specific Actions (Not yet supported in Common Navigator test pass [Coming in M5])
-	Verify the copy to the same folder and the different folder.
-
-Project Specific Actions (Not yet supported in Common Navigator test pass [Coming in M5])
-	Menu includes group with Build, Refresh, Close Project and Open Project
-	Close Project appears only on an open project
-	Open Project appears only on a closed project
-	Both Open Project and Close Project appear when selection includes both an open and a closed project
-	For a closed project, Rename is disabled and Go Into, Build, Refresh, Close Project do not appear
-
-New Object Actions 
-	Invoke File New .. projects, items, other.	
-	Verify that the view's New menu is the same as File | New in the Window. (Not yet supported in Common Navigator test pass [Coming in M5])
-
-View Actions (Not yet supported in Common Navigator test pass [Coming in M5])
-	Invoke Sort | by Name, | by Type in the pulldown menu. Avoid using only a.java and b.txt for a testing case since the result is the same
-		regardless of the sort key.
-	Invoke Filters... with Select All, Deselect All options.
-	
-Navigation Actions (Not yet supported in Common Navigator test pass [Coming in M5])
-	The view keeps track of navigation history. Go Into and Go Up add an item. Back and Forward change the cursor in the history list.
-	Select a project or folder, invoke Go Into, Go to | Back, Go to | Forward, and Go to | Up.
-	Verify enablement of Go xx actions reflect selection and navigation history.
-		- Go Into is enabled when an open, non-empty project or a non-empty folder is selected 		
-		- Go Up is enabled when the input has a parent .  
-		- Go Forward is enabled when there are following items in the list, Go Back enabled when there are previous items.
-	Verify that the view's titlebar displays the simple name of its input, and that its tooltip displays the full path of its input.
-	Verify that the enablement and the actions of the navigation buttons in the local toolbar are consistent with the Navigate main menu.
-	Verify that when a navigation button in the local toolbar is enabled, the fullpath of where the button leads to is appended to the button's tooltip.
-		e.g If the path of the view's input is Project/Folder/MyFolder, the 'Up' button has the tooltip that says 'Up to Project/Folder'
-
-Persistence (Not yet supported in Common Navigator test pass [Coming in M5])
-	Verify that the sort type remains the same after closing and reopening the Navigator view
-	Verify that the input is persistent between sessions.
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Component Tests.html b/tests/org.eclipse.ui.tests/Manual Component Tests/Component Tests.html
deleted file mode 100644
index da29433..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Component Tests.html
+++ /dev/null
@@ -1,32 +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">
-   <title>Workbench Manual Component Tests</title>
-</head>
-<body>
-
-<h2>
-<b>Manual Component Tests for the Workbench (org.eclipse.ui)</b></h2>
-Last updated May 9, 2005
-
-<p>
-<br><a href="WorkbenchLayout.txt">Workbench Layout</a>
-<br><a href="WorkbenchAction.txt">Workbench Actions</a>
-<br><a href="WelcomeEditor.txt">Welcome Editor</a>
-<br><a href="Import.txt">Import</a>
-<br><a href="Export.txt">Export</a>
-<br><a href="Navigator.txt">Navigator View</a>
-<br><a href="CommonNavigator.txt">Experimental Navigator View</a>
-<br><a href="Outline.txt">Outline View</a>
-<br><a href="PropertiesView.txt">Properties View</a>
-<br><a href="Tasks.txt">Tasks View</a>
-<br><a href="Preferences.txt">Preferences</a>
-<br><a href="PropertiesDialog.txt">Properties Dialog</a>
-<br><a href="TextEditor.txt">Text Editor</a>
-<br><a href="Undo.txt">Integrated Undo</a>
-
-<br>&nbsp;
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Export.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/Export.txt
deleted file mode 100644
index 6f33c9c..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Export.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-This is a test script for the export wizard.
-
-Common Properties for All Pages
-	Verify that all listboxes show appropriate scrollbars when 
-		their contents extends beyond their client area.
-	The Cancel button is enabled all the time.
-	Verify that Cancel discards all changes made to the wizard by 
-		doing the following:
-		- on the Select page, choose any one of items in the list and click Next.
-		- make change to the destination or the option settings or both.
-		- cancel the wizard.
-		- open the wizard again and ensure that the preselection of the Select page( if there was any ), and the values of 
-			the destination and the options remain the same as before the change.
-
-Select Page( first page )
-	The Next button is enabled only if there is selection in the list.
-	Verify that the destination from the most recent export, regardless 	
-		of session, is preselected in the listbox.
-	Verify icons for items in the list.
-
-Common Properties for the File System Page and the Zip File Page( second page )
-* Please run this test separately for each of the pages.
-	[Presentation]
-		The folder tree shows open projects only.
-		Verify icons for files in the file listbox.
-	[Enablement]
-		The Back and Browse button are enabled and the Next button 
-			is disabled all the time.
-		Finish is disabled if the destination folder is empty.
-		If nothing is selected when Finish is pressed a warning dialog 
-			appears.
-		The 'Select Types', 'Select All', and 'Deselect All' buttons 
-			are always enabled.
-	[Selection Action]
-		Verify that 'Select All' and 'Deselect All' work.
-		Selecting a folder resource shows all files it has in the 
-			file listbox.
-		Checking a folder resource checks all of its subfolders and 
-			its files, and always grey-checks its ancestor folders.
-		Unchecking a folder unchecks files and subfolders underneath it. 
-			It unchecks its ancestor folder recursively. 
-			If it is last resource checked. Otherwise, it grey-checks 
-				its ancestor recursively.
-		Checking a file always grey-checks the folder it is in.
-		Unchecking a file unchecks its ancestor folder recursively 
-			if it is last resource selected. 
-			Otherwise, it grey-checks its ancestor recursively.
-	[Select Types Dialog]
-		Verify that the 'Other Extensions' text box shows only those 
-			user-defined file types that are not in the list.
-			e.g. 
-			- type in *.java and click OK
-			- open the dialog again and ensure that the .java check box is checked and the textbox does NOT have .java in it.
-			- in the dialog, type in *.eclipse and click OK
-			- open the dialog again and ensure that the textbox has .eclipse in it.
-		The filter selects files by both checked file types and 
-			specified types from entire resources.
-		Invoking the filter updates appropriate checkboxes of files and 
-			folders.
-	[Destination]
-		The destination combo listbox is preselected with the most 
-			recent destination to which the user exported.
-		The destination combo listbox in the wizard stores the five 
-			most recent destinations to which resources were exported.
-	[Options]
-		The setting for common options are shared by pages.
-		If the Overwrite checkbox is unchecked, exporting a resource 
-			to the same destination twice pops up the Confirm Overwrite 
-			dialog.
-		If the Overwrite checkbox is checked, exporting a resource 
-			to the same destination twice does not invoke confirmation.
-	[Persistence]
-		Verify that the five most recent destinations stored in 
-			the destination listbox are persistent between sessions.
-		Verify that the settings of the options are persistent 
-			between sessions.
-	[Navigator View]
-		If the wizard is invoked while there is a resource(s) selected 
-			in the navigator view, those resource(s) are checked in the folder tree.
-
-File System Page
-	[Export]
-		Verify that all files are exported successfully to the 
-			specified destination.
-		If the 'Create directory structure' checkbox is unchecked, 
-			exporting creates a directory structure that roots from 
-			the root of the folder tree within the destination directory.
-		If the 'Create directory structure' checkbox is checked, 
-			exporting creates the same directory structure as the 
-			workspace within the destination directory.
-	[Browse for Folder Dialog]
-		The destination textbox of the dialog is preselected with 
-			the current destination folder from the dialog.
-		Specifying the destination in the dialog and then clicking OK 
-			updates the destination textbox of the wizard. Otherwise, 
-			the wizard is not updated.
-
-Zip File Page
-	Verify that a .zip file is exported successfully to the 
-		specified destination.	
-	Use an external ZIP program to verify the following:
-		- the ZIP file is extracted successfully by the ZIP program.
-		- the ZIP file made with the 'Create directory structure' 
-			checkbox turned on has the same directory structure 
-			as the workspace.		
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/FieldAssist.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/FieldAssist.txt
deleted file mode 100644
index 986a74b..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/FieldAssist.txt
+++ /dev/null
@@ -1,149 +0,0 @@
-This is a test list for the field assist component.  It is a work
-in progress.  Last updated 9-27-2007.
-
-Tests are conducted using the FieldAssistTestDialog in
-org.eclipse.ui.examples.fieldassist and the platform text 
-search and replace dialog.
-
-Field Assist Test Dialog
-
-The first tests should be conducted on all platforms until otherwise noted.
-Use the example preference page to adjust the parameters as needed
-for the test.
-
-**CONTENT ASSIST KEY**
-- Ctrl+Space invokes without delay
-- * invokes without delay
-- alphanumeric invokes on delay (try different delay settings including 0)
-- t,d invokes on delay (try different delay settings including 0)
-
-**AUTOACTIVATION COMPLETION**
-- turn on auto activation, and also test on the autocomplete fields
-- invoke the auto-popup
-- cursor to make a selection
-- hit the Enter key to confirm selection
-- the text should be inserted/replaced and the popup should remain closed.
-
-**NAVIGATION WHILE POPUP IS OPEN (but without focus)**
-- arrow up/down scroll through proposals
-- left/right move cursor in target control text
-- page up/down, home/end move through proposals
-- enter selects proposal
-- esc closes popup
-
-**NAVIGATION WHILE POPUP HAS FOCUS**
-- same as above except left/right arrow has no effect
-- on Mac, the home/end keys pg/up down, move but don't affect selection
-
-**PROPAGATE KEYSTROKES WHEN POPUP IS OPEN (but without focus)**
-- keystrokes typed while popup is open propagate to control when set to true
-- keystrokes typed while popup is open never propagate to control when false
-(Exception cases)
-- pg up/down, arrow up/down, home/end never propagate back to control
-regardless of setting (ie, combo selection doesn't change, etc.)
-- arrow left/right always propagate to control regardless of setting.  Cursor
-position should change
-
-**SECONDARY POPUP**
-- only shows when option is checked
-- updates on a delay (not with every cursor through the table)
-- if you cursor to an item ("tori") that has no secondary info,
-the popup should close
-
-**CONTENT PROPOSAL ACCEPTANCE**
-- test insert and replace modes with various text selected
-
-**FILTERING STYLE**
-- cumulative filter should be applied and backspace reduces filter by one
-character
-- single character filter is backed out on backspace
-- cursor left shouldn't affect filter in either case above (neither should
-cursor right)
-- if cumulative filter resolves to no choices, popup should remain open
-(note this is different than when filtering for autocomplete)
-- FILTER_NONE should never filter
-- when autoactivation is on, it is expected that the autoactivation key
-would *not* be in the filter.  See bug #141084 comment #5.
-
-**POPUP SIZING**
-- sizing primary popup should size secondary and it should move to fit on
-screen
-
-**POPUP LOCATION**
-- the popup should be butted under the field when in replace mode.
-- the popup should be closer to the cursor position when in insert mode.
-- verify that the y location of the popup is correct in the multi-line text field
-
-**POPUP DEACTIVATION**
-- popup closes when dialog is moved
-- popup closes when another app is activated
-- popup closes when another field in the dialog is clicked
-
-**AUTOCOMPLETE POPUP NOT TRIGGERED BY COMBO SELECTION**
-- Select a user name in the autocomplete combo.  The popup should not
-trigger.
-- Select a user name in the autocomplete combo while the popup is open.
-It should close.  (On Linux it stays open if already open)
-
-**MULTILINE TEXT**
-- popup positioning for insert mode should respect
-vertical position in multiline text.
-
-These tests do not need to be tested on each platform.
-
-**AUTOCOMPLETE INCLUDES EXACT MATCHES IN POPUP
-- Type "Tod" in an autocomplete field.
-- You should see "Todd" and "Tod" as choices.  Type another d and it
-should resolve to the last remaining choice.
-
-**AUTOCOMPLETE POPUP CLOSES WHEN NO MORE AVAILABLE CHOICES**
-- Type "Todde" and the popup should close on the e.
-- Backspace and the popup should reappear.
-- Should be able to backspace to nothing and popup stays open
-
-**AUTOCOMPLETE SHOULDN'T OPEN IF NO CHOICES**
-- Type "X" and you shouldn't see an empty popup.
-- Backspace and you should not get a popup
-
-Search and Replace Dialog (with regular expressions enabled)
-
-**INSERT MODE WITH PROPER CURSOR PLACEMENT
-- Type "abc", set caret to after "a"
-- Use content assist to insert \t
-- Text should be "a\tbc" with cursor after the t
-
-**SELECTION TAKEN INTO ACCOUNT ON INSERT MODE
-- Type the word "Foobar" into the find field
-- Select "oob", type '\' and make a selection for '\n' in the popup.
-- You should see "F\nar"
-
-**DIFFERENT SELECTION STYLES WHEN POPUP EXPLICITLY ACTIVATED**
-- Try the scenarios above with different styles for activating and selecting
-from content assist:
-- Ctrl+Space, doubleclick with mouse to insert proposal
-- Ctrl+Space, use cursor keys and enter key to insert
-- Ctrl+Space, type "\", then use mouse to insert
-- Ctrl+Space, type "\", then use keyboard to insert
-
-**DIFFERENT SELECTION STYLES WHEN AUTOACTIVATED**
-- Try the scenarios above with different styles for activating and selecting
-from content assist:
-- type '\', doubleclick with mouse to insert proposal
-- type '\', use cursor keys and enter key to insert
-
-**CURSOR POSITION SET IN THE MIDDLE OF INSERTED TEXT**
-- type "abc", move cursor between a and b
-- type "(?"
-- proposals starting with "(?" are first
-- choose the proposal insert proposal (?<=)
-- text is "a(?<=)bc", caret is after  "="
-
-**AUTOACTIVATION CANCELS ON KEYSTROKE**
-- Type the '\' character and pause, this will trigger the popup.  Cancel it.
-- Type '\a' quickly and the popup should never launch.
-
-**CURSOR RELATED FILTERING**
-- Using arrow left/right while popup is open can change the popup contents
-(since filtering is specific to cursor position)
-- Using BS when field is empty should never reload popup
-
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/FilteredResourcesSelectionDialog.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/FilteredResourcesSelectionDialog.txt
deleted file mode 100644
index f877a10..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/FilteredResourcesSelectionDialog.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-This is a test list for the Filtered Resources Selection Dialog.
-
-Presentation
-	Verify that appropriate resources appear in dialog. Duplicates should have additional information about container.
-	Verify icons for resources.
-	Verify that icons are appropriate decorated eg by CVS label decorator.
-	Verify that separator appear in properly place between history resources and other.
-	Verify that resources appear in right order: 
-		1) history items in alphabetical order
-		2) separator
-		3) rest of resources in alphabetical order
-	Verify that correct container details are shown for selected resource. 
-		In multiselection details not appear.
-	Verify that different patterns return expected list of resources (partly overlapped by SearchPatternAuto JUnit test, this section will be removed when unit test covers all cases): 
-		Eg: - "XY "	- pattern exact match should found resources named "XY" with case insensitive
-			- "XY<" - pattern exact match should found resources named "XY" with case insensitive
-			- "XY"  - pattern camel case match resource in similar way to regexp pattern "X[^A-Z]*Y.*" or "XY.*"
-			- "X*Y" - pattern match resource name in similar way to regexp "X.*Y"
-			- ""	- blank test should return only history elements if any
-			- other: feel free to type anything
-	
-Actions
-	Verify that all selected elements are added to history after being clicked ("OK" button has been pressed or item has beed double-clicked).
-	Verify that all selected elements are opened in a right editor after being clicked.
-	Verify that you can remove all selected history resources. 
-	verify that you can remove only history elements, you shouldn't be able to remove separator nor non-historical resources. 
-	Verify that multiselection works properly. You should select more than one elements and perform all above actions.
-	Verify that mark/unmark show derived resource action caused appear/disappear derived resources.
-	Verify that mark/unmark show status line action caused appear/disappear show status line.
-	Verify that marking working set makes only resources from selected working set to appear.
-	Verify that after selecting text in an editor opened dialog will have selected text set as initial pattern (with full selection on it).
-	
-	
-Persistance 
-	Verify that all settings of the dialog are persisted between sessions:
-		- window size, 
-		- window position, 
-		- show derived tick, 
-		- show status line tick, 
-		- selected working set,
-		- history of selected resources
-		
-	Verify that all history elements are persisted between session. 
-	Verify the consistency synchronization of history elements with workspace.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Import.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/Import.txt
deleted file mode 100644
index cdb51ca..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Import.txt
+++ /dev/null
@@ -1,79 +0,0 @@
-This is a test list for the import wizard.
-
-Common Properties for All Pages
-	Verify that all listboxes show appropriate scrollbars when 
-		their contents extends beyond their client area.
-	The Cancel button is enabled all the time.
-	Verify that Cancel discards all changes made to the wizard by doing 
-		the following:
-		- on the Select page, choose any one of items in the list and 
-			click Next.
-		- make change to the destination or the option settings or both.
-		- cancel the wizard.
-		- open the wizard again and ensure that the preselection of 
-			the Select page( if there was any ), and the values of 
-			the destination and the options remain the same as before 
-			the change.
-
-Select Page( first page )
-	The Next button is enabled only if there is selection in the list.
-	Verify that the source from the most recent import, regardless 
-		of session, is preselected in the listbox.
-	Verify icons for items in the list.
-
-Common Properties for Import Pages( second page )
-* Please run this test separately for each of the pages
-	[Presentation]
-		The source combo listbox stores the five most recent 
-			sources from which resources were imported.
-		Verify icons for files in the file listbox.
-	[Enablement]
-		The Back button is enabled and the Next button is greyed out all the time.
-		Both of the Browse buttons are enabled.
-		The 'Select Types', 'Select All', and 'Deselect All' buttons are enabled only if there is at least one item in the folder tree.
-		Finish is enabled only if there is one or more resources selected and the destination folder is not empty.
-	[Selection Action]		
-		Verify that 'Select All' and 'Deselect All' work.
-		Selecting a folder resource shows all files it has in the file listbox.
-		Checking a folder resource checks all of its subfolders and its files, and always grey-checks its ancestor folders.
-		Unchecking a folder unchecks files and subfolders underneath it. It unchecks its ancestor folder recursively if 
-			it is last resource checked. Otherwise, it grey-checks its ancestor recursively.
-		Checking a file always grey-checks the folder it is in.
-		Unchecking a file unchecks its ancestor folder recursively if it is last file selected. Otherwise, it grey-checks its ancestor recursively.
-	[Select Types Dialog]
-		Verify that the 'Other Extensions' text box shows only those user-defined file types that are not in the list.
-		e.g. 
-			- type in *.java and click OK
-			- open the dialog again and ensure that the .java check box is checked and the textbox does NOT have .java in it.
-			- in the dialog, type in *.eclipse and click OK
-			- open the dialog again and ensure that the textbox has .eclipse in it.
-		Verify that the filter selects files by both checked file types and specified types among the selected resources only.
-		Verify that invoking the filter updates appropriate checkboxes of files and folders.
-		Verify that invoking the filter by one type and then immediately by a different type leaves all resources unchecked.
-	[Destination Folder Selection Dialog]
-		Go-into is enabled only if the selected folder has a subfolder.
-		If the root of the tree widget is the same as the root of the workspace, Home is enabled and Back is not.
-		If the root of the tree widget is NOT the same as the root of the workspace, Home is disabled and Back is enabled.
-		Verify that Home, Back, and Go-Into work.
-		Selecting a folder shows its complete path in the text box.
-		Clicking on OK in the dialog updates the contents of the Folder textbox in the wizard.
-	[Options]
-		The setting for common options are shared by pages.
-		If the Overwrite checkbox is unchecked, importing a resource to the same destination twice pops up the Confirm Overwrite dialog.
-		If the Overwrite checkbox is checked, you can import a resource to the same destination twice without confirming it.
-	[Navigator View]
-		Verify that the navigator view is updated after importing.
-	[Persistence]
-		Verify that the five most recent sources stored in the source combo listbox are persistent between sessions.
-		Verify that the settings of the options are persistent between sessions.
-
-File System Page
-	Selecting a source directory shows its folder structure using itself as the root in the left tree.
-	Verify that all of the selected resources are imported successfully.	
-	If the 'Complete folder structure' checkbox is unchecked, importing a resource creates a folder structure relative 
-		to the root of the tree widget in the destination folder.
-	If the 'Complete folder structure' checkbox is checked, importing a resource creates a folder structure using the 
-		source's absolute path in the destination folder.
-
-Zip File Page
-	Selecting a source archive shows its folder structure in the left tree AND checks all of resources in it.
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Navigator.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/Navigator.txt
deleted file mode 100644
index e2db473..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Navigator.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-This is a test list for the navigator view.
-
-Edit Actions
-	Verify that enablement of Copy, Delete, Add Bookmark is consistent with that of the Navigator view's context menu, and that 
-		the same behaviour occurs.
-
-Presentation
-	Verify that appropriate strings appear in all menu items and text fields.
-	Verify icons for file, folder and project.
-	Verify that the view shows appropriate scrollbars when its contents extends beyond its client area.
-
-Standard Object Actions
-	Verify menu items: Copy, Move, Rename, Delete for all resouces.
-	Verify that the DELETE key maps to the Delete action.
-	Verify Delete on a read-only resource.
-	Verify Properties for projects, folders, files, and combinations of the same. 
-	Verify that when the view is active, the status bar shows the full path of the selected resource.
-
-Actions on Multiselected Items
-	If two or more resources are multiselected, Rename is disabled.
-	If a project and its resource(s) are multiselected, Copy and Move are disabled.
-	If a folder and its child resource(s) are multiselected, Copy and Move are disabled. 
-	Verify Delete on multiselected resources.
-	Verify Copy and Move on multiselected files in the same project.
-
-File Specific Actions
-	Verify menu content when file selected.	 	 
-	Verify Add Bookmark only appears on files and the bookmark is created when invoked.
-
-Folder Specific Actions
-	Verify the copy to the same folder and the different folder.
-
-Project Specific Actions
-	Menu includes group with Build, Refresh, Close Project and Open Project
-	Close Project appears only on an open project
-	Open Project appears only on a closed project
-	Both Open Project and Close Project appear when selection includes both an open and a closed project
-	For a closed project, Rename is disabled and Go Into, Build, Refresh, Close Project do not appear
-
-New Object Actions
-	Invoke File New .. projects, items, other.	
-	Verify that the view's New menu is the same as File | New in the Window.
-
-View Actions
-	Invoke Sort | by Name, | by Type in the pulldown menu. Avoid using only a.java and b.txt for a testing case since the result is the same
-		regardless of the sort key.
-	Invoke Filters... with Select All, Deselect All options.
-	
-Navigation Actions
-	The view keeps track of navigation history. Go Into and Go Up add an item. Back and Forward change the cursor in the history list.
-	Select a project or folder, invoke Go Into, Go to | Back, Go to | Forward, and Go to | Up.
-	Verify enablement of Go xx actions reflect selection and navigation history.
-		- Go Into is enabled when an open, non-empty project or a non-empty folder is selected 		
-		- Go Up is enabled when the input has a parent .  
-		- Go Forward is enabled when there are following items in the list, Go Back enabled when there are previous items.
-	Verify that the view's titlebar displays the simple name of its input, and that its tooltip displays the full path of its input.
-	Verify that the enablement and the actions of the navigation buttons in the local toolbar are consistent with the Navigate main menu.
-	Verify that when a navigation button in the local toolbar is enabled, the fullpath of where the button leads to is appended to the button's tooltip.
-		e.g If the path of the view's input is Project/Folder/MyFolder, the 'Up' button has the tooltip that says 'Up to Project/Folder'
-
-Persistence
-	Verify that the sort type remains the same after closing and reopening the Navigator view
-	Verify that the input is persistent between sessions.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Outline.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/Outline.txt
deleted file mode 100644
index 4834d89..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Outline.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-This is a test list for the outline view. The outine view is a container for pages contributed by open editors. 
-We test the contribution and activation of those pages.
-
-Presentation
-	Verify that the view shows appropriate scrollbars when its contents extends beyond its client area.
-
-Activation
-	If you open a java editor or activate one, its outline contents appears in outline view.	
-	Switch between two or more java editors to verify the view is updated.
-	Switching between java editors updates the outline view's local toolbar and context menu.
-	Close one java editor, activating another, and see page in outline change.
-	Switching from a java editor to a text editor shows blank in the outline view.
-	Close last java editor to see the default blank page in outline.
-
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Preferences.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/Preferences.txt
deleted file mode 100644
index 03df14f..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Preferences.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-This is a test list for the preferences dialog.
-
-Presentation
-	Verify that the listbox on the left shows appropriate scrollbars 
-		when its contents extends beyond its client area.
-	Verify that the window grows to fit the content page of the 
-		selected item.
-	Verify that you can traverse all widget groups by pressing TAB.
-
-Actions
-	Clicking on a item in the tree shows the corresponding page on 
-		the right, including the page title.
-	Verify that Defaults sets all fields to the default values for 
-		the current content page ONLY.
-	Verify that OK stores all changes made to fields by doing the following:
-		- make some changes to checkboxes, option buttons, and textboxes.
-		- click OK.
-		- open the dialog again and ensure that all the changes were saved.
-	Verify that Cancel discards all changes made to fields by doing 
-		the following:
-		- make some changes to checkboxes, option buttons, and textboxes.
-		- click Cancel.
-		- open the dialog again and ensure that all the field values 
-			are the same as before the change.
-	Verify that ESC maps to Cancel.
-	Verify that Apply stores all changes made to values by doing the 
-		following:
-		- make some changes to checkboxes, option buttons, and textboxes.
-		- click Apply and then Cancel.
-		- open the dialog again and ensure that all the changes were saved.
-	Verify that Apply immediately updates the workbench settings by 
-		doing the following:
-		- open a text file with the default text editor.
-		- type something in the editor
-		- open the preferences dialog, and click on Workbench | Default 
-			Text Editor
-		- click Change... At the Font dialog, select a different font 
-			and a different font size. Click OK.
-		- at the preferences dialog, Click Apply
-		- without closing the preferences dialog, ensure that the 
-			settings for the text editor are updated.
-
-Persistence
-	Verify that all field values are persistent all the time.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesDialog.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesDialog.txt
deleted file mode 100644
index d0b8aea..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesDialog.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-This is a test script for the properties dialog.
-
-Presentation
-	Verify that the listbox on the left shows appropriate scrollbars 
-		when its contents extends beyond its client area.
-	Verify that the window grows to fit the content page of the 
-		selected item.
-	Verify that you can traverse all widget groups by pressing TAB.
-	Verify that the title bar shows the name of the resource about 
-		which the dialog shows information.
-
-Actions
-	Clicking on a item that contributes in the tree shows the 
-		corresponding page on the right, including the page title.
-	Clicking on a item that does not contribute in the tree shows 
-		the default page on the right.
-		e.g. In the packages view, open the dialog on a package. The 
-			Team page should show the default page.
-	Verify that OK stores all changes made to fields by doing the following:
-		- make some changes to checkboxes, option buttons, and textboxes.
-		- click OK.
-		- open the dialog again and ensure that all the changes were saved.
-	Verify that Cancel discards all changes made to fields by doing 
-	the following:
-		- make some changes to checkboxes, option buttons, and textboxes.
-		- click Cancel.
-		- open the dialog again and ensure that all the field values 
-			are the same as before the change.
-	Verify that ESC maps to Cancel.
-	Verify that Apply stores all changes made to values by doing 
-	the following:
-		- make some changes to checkboxes, option buttons, and textboxes.
-		- click Apply and then Cancel.
-		- open the dialog again and ensure that all the changes were saved.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesView.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesView.txt
deleted file mode 100644
index 4719147..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/PropertiesView.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-This is a test list for the properties view. The properties view is a container for pages contributed by open views and editors.
-We test the contribution and activation of pages in the view.
-
-Presentation
-	Verify that the view shows appropriate scrollbars when its contents extends beyond its client area.
-
-Activation
-	If you open a view with properties, verify that the page, the local toolbar and local menu bar in properties view are updated.
-		e.g. Open the navigator view and see the change in the properties view.
-	If you open another view, its own properties page should appear.
-	Switch between two or more components to see page in view change.
-	Close one part, activating another, to see page in view change.
-	Close last editor to see default blank page in the view.
-	Verify that the view shows the default page when the active view doesn't have source.
-	Make sure Edit menu in the workbench targets the active page in the view.
-	Verify that the enablement and action of the Categories, Filter, and Defaults buttons are consistent with the view's 
-
-		pulldown menu.
-
-Navigator View
-	Verify that toggling the Show/Hide-Categories button shows/hides items in the corresponding category tree.
-	Verify that the properties view shows correct values in the following fields for a selected resource in the navigator view
-		editable, last modified, name, and path
-	Verify that only files have values in the size field.
-
-Perisistence
-	Verify that on start-up of the view, the view displays properties for the active part and selection of the contributing view.
-
-Property Sheet Example
-	Before verifying any of the following tests, do:
-		1. Make sure the workbench example is already installed
-		   i.e., checkout org.eclipse.ui.examples.propertysheet and launch a run-time workbench
-		2. Create a .usr file and open it 
-		3. Show both the outline view and the properties view	
-
-	Verify that the 'Show/Hide Category' toggle button and the 'Restore Default' button work.
-	Verify that selecting an item in the outline view shows all properties in the properties view.
-	Verify that multiselecting items shows only their common properties.
-	Verify that change made to a value for an item is persistent in same session.
-	Verify that modifying a value for multiselected items changes the values for all of the selected items.
-	Verify that changing the Name value for an item updates the page in the outline view.
-	Verify that changing the Name values for multiselected items in the outline view updates the page in the outline view.	
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/StatusHandling.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/StatusHandling.txt
deleted file mode 100644
index 2b17ae5..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/StatusHandling.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-This is a test list for Status Handling (StatusManager, etc.):
-	
-Status Handling:
-	Main Set Up: Launch Eclipse with org.eclipse.ui.examples.statushandlers.testtool, open the 
-	'Status Generator' view (view category: 'Status Handling').	To execute tests use 'Execute tab'
-	button. Use this tool to perform all tests placed below. 
-	
-  Runnables
-	* Set Up: Select 'Jobs And Runnables' tab, set duration to 1 second
-	* Please run this test separately for each of the Exceptions/Errors listed in this tab. 
-	
-	Verify that 'Run In UI thread (does not fork)' radio selection causes a stack trace to be sent 
-		to the standard output
-	Verify that 'Runnable in Window' radio selection causes a stack trace to be sent to the standard 
-		output
-		
-  Jobs
-	* Set Up: Select 'Jobs' radio, set duration to 1 second, set 'Quantity' to 2
-	* Please run this test separately for each of the Exceptions/Errors listed in this view
-	
-	Verify that 'Create jobs' button causes two exceptions/errors (from two jobs) to be displayed
-		in a single dialog and logged into the WorkbenchPlugin log (.metadata/.log)
-
-  Views/Editors
-	* Set Up: Switch the 'Status Generator' view to the 'Views' tab.
-	
-	Verify that every possible configuration causes an empty view to be displayed and thrown 
-		exception to be looged into the WorkbenchPluging log (.metadata/.log)
-		
-  StatusHandling
-	* Set Up: Switch the 'Status Generator' view to the 'Status Handling' tab.	
-	
-	For every show/log combination (none, log, show, show and log) add one status. 
-		(Use 'Add status to the list' button and 'Show status' & 'Log status' checkboxes)
-	
-	Verify that:
-	 	- all of the statuses with 'log' property on to be logged into the WorkbenchPlugin 
-	 		log (.metadata/.log)
-	 	- all of the statuses with 'show' property on to be displayed in a single dialog
-	 	- status dialog icon is adjusted to the status severity
-	 	- "Show support" button appears with an image in the bottom left side of the dialog.
-	 	
-	* Modality test
-	Clear the list. Create status with 'Show status'. Press 'Execute tab' button.
-	Verify that status dialog is not modal. 
-	Now without closing the dialog, add new status with 'Show status' & 'Block' flag. 
-	Verify that status dialog is modal. 
-	
-	* Support test (bugs 227659, 221856)
-	Enable Support in SHMenu. Create status with 'Show status'. Press 'Execute tab' button.
-	Verify that "Support" action is active. Use it. Verify that support tray shows status 
-	message and the "Support" action became inactive. Close tray area. Verify that 
-	"Support" action is active again. 
-	Repeat for more than one status.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Tasks.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/Tasks.txt
deleted file mode 100644
index d0af404..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Tasks.txt
+++ /dev/null
@@ -1,48 +0,0 @@
-This is a test list for the tasks view.
-
-Presentation
-	Verify that appropriate strings appear in all menu items and text fields.
-	Verify icons for task items and problem items.
-	Verify that the title bar shows the correct number of filtered items and total items.
-	Verify that the view shows appropriate scrollbars when its contents extends beyond its client area.
-
-Common Actions
-	Verify that header buttons in the table sort records by their respective column values in ascending/descending order alternatively.
-	Verify that items that belong to files such as compile time errors are displayed only if their projects are open.
-	Verify that Go To File is enabled only on file-bound items.
-	Verify that double-click or Go To File on a file-bound item opens the file, if not alreadly open, and locates the code in the editor.
-
-Task Actions in Tasks View
-	Verify that New Task, Delete, Delete Completed Tasks work.
-	Verify that Delete is enabled only on task items.
-	Verify that invoking Delete on a task item in an open file deletes the task marker from the editor.
-	Verify that the enablement and action of the New Task and Delete buttons are consistent with those in the context menu.
-	Verify that the DELETE button on the keyboard maps to Delete.
-	Verify that the task status( completion ) and priority can be set for task items only.
-
-Problem Actions in Tasks View
-	Verify that selecting a problem item displays its description message in the status bar of the workbench window.
-
-Filter Tasks Dialog
-	Change the values then verify that the Reset button sets those values to default.
-	Verify that tasks are filtered by the corresponding criterion of the On-any-resouce, On-selected-resouce-only, and 
-		On-selected-resouce-and-its-children radio buttons.
-	Verify that tasks are filtered based on query word iff the description text box is not empty.
-	Verify that only those tasks that contain( do not contain ) the query string show in the task view if the description combo-box 
-		has the value "Contains"( Does not contain ).
-	Verify that the Where-problem-severity-is checkbox is enabled iff at least one of Build-path-Problem and Java-Problem in the tree is checked.
-	Verify that the Where-task-priority-is and Where-task-status-is check boxes are enabled iff Task in the tree is checked.
-	Verify that the enablement of the Where~ checkboxes determines the enablement of their option check boxes.
-	Verify that a newly created task by New Task is affected by the current setting of the filter.
-
-Actions in Text Editor
-	Verify that for a line that doesn't have a task, you can add one. It should appear in the vertical ruler and in the view
-		with adequate values set in the Resouce, In Folder, and Location fields.
-	Verify that for a line that has a task. you can remove the task. It disappears from the vertical ruler and from the view.
-	Verify that selecting a task item from the view opens the file, if not already open, and locates the code. 
-
-Persistence
-	Verify that the view retains its items after being closed and reopened.
-	Verify that the view maintains the sort order and filtering between sessions.
-	Verify that the top index and the selection of the view are consistent between sessions, and after inserting or detaching the view.
-	
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/TextEditor.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/TextEditor.txt
deleted file mode 100644
index 9d0075f..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/TextEditor.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-This is a test list for the text editor.
-
-Presentation
-	Verify that appropriate strings appear in all menu items and text fields.
-	Verify that the view shows appropriate scrollbars when its contents extends beyond its client area.
-
-Editor Actions
-	Verify that Cut and Copy are enabled iff there is selected text.
-	Verify that Paste is enabled iff there is text in the clipboard buffer.
-	Verify that Cut, Copy, Paste, Select-All work correctly.
-	Verify that Revert is enabled only if is the file dirty and works correctly.
-
-Edit Menu Actions
-	Verify that the enablement and action of Cut, Copy, Paste, and Select-All in the Edit menu are consistent with those in the editor's context menu.
-
-Persistence	
-	The editor is marked dirty if the text is modified by either the keyboard OR the editor actions.
-	The editor is marked clean after either saving the file or reverting it.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/A.java b/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/A.java
deleted file mode 100644
index 9d15e9d..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/A.java
+++ /dev/null
@@ -1,17 +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 xxx;
-public class A {
-	public void foo() {
-		
-	}
-
-}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/B.java b/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/B.java
deleted file mode 100644
index a51a68d..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/B.java
+++ /dev/null
@@ -1,17 +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 xxx;
-public class B {
-	void bar() {
-		A a=null;
-		a.foo();
-	}
-}  
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/C.java b/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/C.java
deleted file mode 100644
index 553f0bb..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/C.java
+++ /dev/null
@@ -1,17 +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 xxx;
-public class C {
-	void bar() {
-		A a=null;
-		a.foo();
-	}
-}  
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/D.java b/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/D.java
deleted file mode 100644
index 2d2559d..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo test files/D.java
+++ /dev/null
@@ -1,17 +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 xxx;
-public class D {
-	void bar() {
-		A a=null;
-		a.foo();
-	}
-}  
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/Undo.txt
deleted file mode 100644
index a6228f6..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/Undo.txt
+++ /dev/null
@@ -1,190 +0,0 @@
-This is a test list for the integrated undo/redo framework
-
-Actions
-	Verify that "Undo Typing" appears in action bar edit menu and editor popup menu once text has been typed.
-	Verify that "Redo Typing" appears in action bar edit menu immediately after an undo has been performed.
-	Move between different editors and verify that the undo/redo state matches the current editor and that the undo performs the expected operation.
-	Verify that "Undo <name of refactoring op>" appears in action bar edit menu and editor popup menu immediately after performing a refactoring from that editor.
-	Verify that "Undo <name of refactoring op>" appears in action bar edit menu of Package Explorer and Navigator after performing a refactoring from anywhere.
-
-Preferences
-	Set different text undo limits (including 0) in the text editor preferences (General>Editors>TextEditors>Undo history size) and verify they work as expected.
-Integrated Scenarios
-  <setup>
-	For the following text-refactoring integrated scenarios, do the following first:
-	a.  Create a Java project "Undo Scenarios".
-	b.  Create a package "xxx".
-	c.  Copy the java files provided in org.eclipse.ui.tests/ManualComponentTests/Undo test files to "xxx".
-  <simple refactoring undo>
-  	a.  Open A.Java and B.java
-  	b.  In A, click in the method name for "bar" and choose Refactor>Rename
-  	c.  Rename "bar" to "bar2"
-  	d.  Verify that "Undo Rename method bar to bar2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator.
-  	e.  Select "Undo Rename method bar to bar2" from any of these locations
-  	f.  Operation is undone without prompting or warning
-  	g.  Verify that "Redo Rename method bar to bar2" appears in Edit>Undo pulldown menu for the editor, Navigator, and Package Explorer.
-  	h.  Select "Redo Rename method bar to bar2" from any of these locations
-  	i.  Operation is redone without prompting or warning
-  	j.  Undo again to revert files to original state and close editors.
-  <prompt on non-local undo, proceed>
-    a.  Open A.Java and B.java
-  	b.  In A, click in the method name for "foo" and choose Refactor>Rename
-  	c.  Rename "foo" to "foo2"
-  	d.  Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator.
-  	e.  Select "Undo Rename method foo to foo2" from A's edit menu.
-  	f.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-  	g.  Select "yes" and operation is undone.
-  	h.  Select "Redo Rename method foo to foo2" from package explorer.
-  	i.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-  	j.  Undo again to revert files to original state and close editors.
-  <prompt on non-local undo, cancel>
-    a.  Open A.Java and B.java
-  	b.  In A, click in the method name for "foo" and choose Refactor>Rename
-  	c.  Rename "foo" to "foo2"
-  	d.  Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator.
-  	e.  Select "Undo Rename method foo to foo2" from A's edit menu.
-  	f.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-  	g.  Select "cancel" and operation is cancelled.
-  	h.  Verify that "Undo Rename method foo to foo2" is still in the Edit>Undo menu.
-  	i.  Select "Undo Rename method foo to foo2" again, choosing "yes" when prompted.
-  	j.  Close editors
-  <prompt on non-local undo, discard undo>
-    a.  Open A.Java and B.java
-  	b.  In A, click in the method name for "foo" and choose Refactor>Rename
-  	c.  Rename "foo" to "foo2"
-  	d.  Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator.
-  	e.  Select "Undo Rename method foo to foo2" from A's edit menu.
-  	f.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-  	g.  Select "Discard Undo" and operation is cancelled.
-   	h.  Choose "Undo Typing" from A to revert the text part of the refactoring
-  	i.  Go to B and choose "Undo Typing" to revert the text part of the refactoring change.
-  	j.  Close editors
-  <prompt on non-local undo, do not proceed, with undo/redo in between (bug 97939)
-    a.  Open A.Java and B.java
-  	b.  In A, click in the method name for "foo" and choose Refactor>Rename
-  	c.  Rename "foo" to "foo2"
-  	d.  Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator.
-  	e.  Select "Undo Rename method foo to foo2" from A's edit menu.
-  	f.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-	g.  Select "yes" and operation is undone.
-  	h.  Select "Redo Rename method foo to foo2" from package explorer.
-  	i.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-    j.  Select "yes" and operation is redone.
-  	k.  Select "Undo Rename method foo to foo2" from A's edit menu.
-  	l.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
- 	m.  Select "Discard Undo" and operation is cancelled.
-  	n.  Choose "Undo Typing" from A to revert the text part of the refactoring
-  	o.  Go to B and choose "Undo Typing" to revert the text part of the refactoring change.
-  	p.  Close editors
-  <detection of changed file>
-    a.  Open A.Java and B.java
-  	b.  In A, click in the method name for "foo" and choose Refactor>Rename
-  	c.  Rename "foo" to "foo2"
-  	d.  In B, type some text anywhere.
-  	e.  Go back to A and Select "Undo Rename method foo to foo2" from A's edit menu.
-  	f.  Operation informs you that it cannot be completed since B has changed.
-  	g.  Select OK
-  	h.  Choose "Undo Typing" from A to revert the text part of the refactoring
-  	i.  Go to B and choose "Undo Typing" to revert the typed changes followed by the text part of the refactoring change.
-  <detection of changed file with undo/redo in between (bug 97939)>
-    a.  Open A.Java and B.java
-  	b.  In A, click in the method name for "foo" and choose Refactor>Rename
-  	c.  Rename "foo" to "foo2"
-  	d.  Verify that "Undo Rename method foo to foo2" appears in Edit>Undo in pulldown menu of editor, editor popup, Package Explorer, and Navigator.
-  	e.  Select "Undo Rename method foo to foo2" from A's edit menu.
-  	f.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-	g.  Select "yes" and operation is undone.
-  	h.  Select "Redo Rename method foo to foo2" from package explorer.
-  	i.  Operation prompts as to whether you want to proceed since the refactoring affects other files.
-    j.  Select "yes" and operation is redone.
-  	k.  In B, type some text anywhere.
-  	l.  Go back to A and Select "Undo Rename method foo to foo2" from A's edit menu.
-  	m.  Operation informs you that it cannot be completed since B has changed.
-  	n.  Select OK
-  	o.  Choose "Undo Typing" from A to revert the text part of the refactoring
-  	p.  Go to B and choose "Undo Typing" to revert the typed changes followed by the text part of the refactoring change.
-
-Manual Testing of Examples
-
-An unreleased example app is used to manually test certain user operations and to watch the undo
-history using an OperationsLogView.  To do the testing below, you must have access to the Ottawa
-CVS repository (host: ottcvs1.ott.oti.com, repository path: /home/cvs/desktop).
-Check out the project org.eclipse.ui.operations.examples from HEAD and then run a workbench.  There
-must be at least some *.xml file in the workspace (create a plug-in project if your workspace is empty).
-The scenarios are designed to be run sequentially, as the example operations cycle through three
-statuses - INFO, WARNING, ERROR.
-
-  1 - <correct handling of long label names>
-  	a.  Select a *.xml file in the navigator or package explorer.
-  	b.  Popup the menu and choose Operations>Example Operation. 
-  	c.  A message box appears confirming the execution of the operation.
-  	d.  Check the undo menu for the package explorer and verify that the long name 
-  	has ellipsis (...) in the middle of it
-  	
-  2 - <correct handling of undo and progress monitor>
-    e.  Undo the operation from the package explorer
-    f.  Verify that an hour glass appears
-    g.  After a short wait, a progress monitor should appear
-    h.  A message box appears confirming the undo.
-    
-  3 - <verify anything missed above and add redo>
-    i.  repeat steps (a) through (h) above to double check hour glass, etc.
-    j.  Check that the redo menu for the package explorer shows the operation
-   	k.  Redo the operation
-    l.  A message box appears confirming the redo
-    
-  4 - <proper handling of operation exceptions>
-    m.  repeat steps (a) through (g) above.
-	n.  After the progress dialog disappears, you should get a message informing
-	you of an error/Abnormal Workbench Condition
-	o.  Verify that undo/redo are disabled after this error.
-     
-  5 - <correct handling of INFO, WARNING status from AdvancedValidatingOperationApprover>
-    a.  Select a *.xml file in the navigator or package explorer.
-  	b.  Popup the menu and choose Operations>Advanced Example Operation. 
-  	c.  A message box appears confirming the execution of the operation.
-  	d.  Check the undo menu for the package explorer and verify that the long name 
-  	has ellipsis (...) in the middle of it
-    e.  Undo the operation from the package explorer
-    f.  Select "Undo A very long str...
-    g.  You should immediately see a dialog titled "Undo Information" and be asked whether to proceed.
-    h.  Choose yes.
-    i.  You should see a progress dialog and then a message box when the operation is complete
-    j.  At this point you should see the Redo Action available
-    k.  Repeat steps (a) through (j).  The only difference should be that the
-       dialog in (e) is titled "Undo Warning" with a slightly different message.
-       If you are fast enough, cancel the progress dialog to verify it stops the operation
-       (no prompt at the end).
-  6 - <correct handling of ERROR status from AdvancedValidatingOperationApprover>
-    a.  Select a *.xml file in the navigator or package explorer.
-  	b.  Popup the menu and choose Operations>Advanced Example Operation. 
-  	c.  A message box appears confirming the execution of the operation.
-    d.  Select "Undo A very long str...
-	e.  You should first see a progress dialog while the operation computes validity
-	f.  You should then see a dialog titled "Undo Problem" informing you the operation cannot undo
-	g.  Undo and Redo should no longer be available in the menu.
-	
-  7 - <correct handling of cancel/flush inside LinearUndoViolationUserApprover>
-    a.  Select a *.xml file in the navigator or package explorer.
-  	b.  Popup the menu and choose Operations>Invalid Example Operation. 
-  	c.  A message box appears confirming the execution of the operation.
-  	d.  Select "Undo A very long str...
-  	e.  A message box appears informing you of more recent changes to the package explorer and
-	asks if you wish to undo those local changes first.
-  	f.  Answer no.
-  	g.  Verify that the undo menu item remains the same.
-  	
-  8 - <correct handling of rollback failure inside LinearUndoViolationUserApprover>
-    a.  Select a *.xml file in the navigator or package explorer.
-  	b.  Popup the menu and choose Operations>Invalid Example Operation. 
-  	c.  A message box appears confirming the execution of the operation.
-  	d.  Select "Undo A very long str...
-  	e.  A message box appears informing you of more recent changes to the package explorer and
-	asks if you wish to undo those local changes first.
-  	f.  Answer yes.
-  	g.  Verify that undo is still available (due to failure in the rollback)
-  	h.  Undo the item again, this time it should be successful and redo should be available.
-  	
-	
-  
-	
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/WelcomeEditor.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/WelcomeEditor.txt
deleted file mode 100644
index d7916ac..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/WelcomeEditor.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-This is a test list for the welcome editor.
-
-Presentation
-	Verify that the editor appears when the workbench runs for the first time.
-	Verify that the editor shows appropriate scrollbars when its contents extends beyond its client area.
-	Verify that if the editor is closed when the workbench closes, the editor remains closed in next session.
-	Verify that modifying the editor's entry in the product.ini file updates the workbench by following the steps below.
-		1. Make sure the editor is closed when exiting Eclipse.
-		2. Open product.ini with a text editor and remove the wecome editor's entry from the file, which is:
-			welcomePage = welcome.xml
-		3. Restart Eclipse.
-		4. Verify that Welcome doesn't show under Help in the workbench pulldown menu.
-		5. Exit Eclipse
-		6. Add the entry as in step 2 back to product.ini
-		7. Resart Eclipse
-		8. Verify that Welcome shows again under Help.
-
-Actions
-	Verify that Help->Welcome invokes the editor.
-	Verify that all links invoke their corresponding actions.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchAction.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchAction.txt
deleted file mode 100644
index d1c0704..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchAction.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-This is a test script for actions in the workbench.
-
-File Actions ..
-	Invoke File New .. projects, items, other.
-	Invoke Toolbar button for File New .. projects, items, other.
-	Verify close and save action enablement with 
-		- no editors open
-		- one editor
-		- one dirty editor
-		- after revert
-		- two editors
-		- two dirty editors
-		- after close all
-	Verify actions when switching between perspectives ( one with dirty 
-		editor, other without ).
-	Verify after all perspectives closed.
-	Open many editors, close all, test MRU list.
-	Open an editor and try to print the contents.
-	
-Edit Actions ..
-	Verify global actions track global part.
-	Verify editor contributions appear in action bars when is opened.
-	Verify editors of same type reuse contributions.
-	Verify editors of different type cause contribution change.
-	Verify editor contributions are removed when editor is closed.
-	Verify edit actions are consistent when switching between perspectives.
-
-Perspective Actions (on the Window menu) ..
-	Open = always enabled
-	Verify other actions only enabled when a perspective is open.
-	Verify "open new window", "open perspective"
-	Verify "Save As" by modifying current persp, save as, close, reopen.
-	Verify "Reset" by modifying current persp, then reset.
-	Test Workbench/Perspectives preference page.
-
-The next two have been removed from the Window menu (bug 63827), but can
-still be tested by assigning a key binding.
-	Hide Editors, Show Editors
-	Hide Editors, Open new editor, verify implicit show editors.
-
-Action Sets (on Window -> Customize Perspective -> Shortcuts) ..
-	Confirm order is consistent.  Add all actions, record order, 
-		then remove and re-add.  Select action sets to verify order.
-	Test Customization of File New, Perspective Open, and Show View.
-	Confirm editor actions have consistent place ..
-		- start with no editors
-		- show x action sets
-		- open editor, verify editor actions after sets
-		- hide x action sets
-		- show x action sets
-	Verify action set order persisted between sessions.
diff --git a/tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchLayout.txt b/tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchLayout.txt
deleted file mode 100644
index 56f660e..0000000
--- a/tests/org.eclipse.ui.tests/Manual Component Tests/WorkbenchLayout.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-This is a test script for layout in the workbench.
-
-Folder Creation ..
-	- DnD view over view
-	- DnD view over folder
-	- DnD view over view in floating window
-	- NEG TEST - DnD view over editor area. 
-	- DnD editor over editor
-	- DnD editor over editor folder
-	- NEG TEST - DnD editor over view area.  
-
-Folder Breakdown ..
-	- DnD view out of folder with 2
-	- DnD view out of folder with 3.  Folder should remain.
-	- DnD view out of folder in floating window
-	- DnD editor out of editor folder with 2
-	- DnD editor out of editor folder with 3.  Folder should remain
-
-Relative Drag and Drop ..
-	- DnD view to top, right, bottom, left of another view
-	- DnD view to top, right, bottom, left of folder
-	- DnD view to top, right, bottom, left of editor area. 
-	- DnD editor within editor area
-
-Detached Windows ..
-	- DnD view out of window, open detached window
-	- DnD view back into window, close detached window
-	- DnD second view over floating window 
-	- DnD second view out of floating window to create second 
-		detached window
-	- DnD second view out of floating window onto main.  
-
-Tab Items
-	- reorder items in view folder by dragging tabs
-	- reorder itmes in editor folder by dragging tabs
-
-Fast Views
-	- DnD view over shortcut bar.  It should become fast view
-	- Open fast view.  Unpin.  It should return to last position in 
-		root layout.
-
-Page Switch
-	- Verify layout persistance of main window when switching pages
-	- Verify layout persistance of detached windows when switching pages
-
-Zoom
-	- zoom / unzoom view in root layout
-	- zoom / unzoom view in folder.  Verify folder not visible
-	- zoom / unzoom editor in single folder.  Verify no other 
-		editors visible
-	- zoom / unzoom editor in mult-folder editor area.  Verify no 
-		other editors visible
-	- NEG TEST - zoom / unzoom view in detached window.  Should have 
-		no effect
-
-The following actions should maintain zoom
-	- Show View ( if it is zoomed View )
-	- Show View ( if view is visible in Detached Window )
-	- switch to another page and back
-	- click on any visible view or editor
-	- Show / hide fast view
-
-The following actions should cause unzoom
-	- Open editor
-	- Close editor
-	- Close all editors
-	- Show / Hide editor area
-	- Show view / editor which is not visible
-	- Activate view / editor which is not visible
-	- Reset perspective
-	- Save perspective
-	- Change perspective
-	- DnD zoom view out of main window to detached window
-	- DnD view in detached window onto zoom view
-
-The following actions cause unzoom now, but it would be convenient 
-if they didn't in future
-	- Close detached view.
-	- All DnD
-
-Persistance Between Sessions
-	- ensure layout is persisted between sessions
-	- fast views
-	- view layout
-	- detached windows
-	- open editors
-
-Placeholders
-	- Drag view to new position, close, reopen.
-	- Drag view to folder, close, reopen.
-	- Drag view to detached, close, reopen.
-	- Close all views in folder, reopen one by one.
-	- Make view fast, restore.
-	- Make folder fast, restore views one by one.
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Bookmarks View.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Bookmarks View.html
deleted file mode 100644
index 239850f..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Bookmarks View.html
+++ /dev/null
@@ -1,82 +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">
-   <title>Test Scenario: Bookmarks View</title>
-</head>
-<body>
-
-<h3>
-Bookmarks View</h3>
-Purpose: To test the Bookmark view in Eclipse.&nbsp; We will open the view,
-add a number of bookmarks to some files, open the source file for each
-bookmark and then delete those bookmarks.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Create a java project containing three java files and a text file.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-Invoke Perspective > Show View > Bookmarks and verify that the Bookmarks
-view appears.</li>
-
-<li>
-Select a java file in the navigator and invoke Edit > Add Bookmark.&nbsp;
-Verify that a new bookmark appears in the Bookmarks view for the selected
-java file.</li>
-
-<li>
-Double click the bookmark in the bookmarks view and verify that an editor
-opens on the source file.</li>
-
-<li>
-Select the 10th line of text in the editor and invoke Add Bookmark in the
-context menu.&nbsp; A dialog should appear where you can type the bookmark
-label.&nbsp; Enter "Line 10" and press OK.&nbsp; Verify that another bookmark
-appears in the Bookmarks view with the label "Line 10".&nbsp; A bookmark
-icon should also appear in the editor to the left of line 10.</li>
-
-<li>
-Close the editor.</li>
-
-<li>
-Select "Line 10" in the bookmarks view and press the "Go to File" button
-in the toolbar.&nbsp; Verify that an editor opens on the source file and
-that line 10 is selected.</li>
-
-<li>
-Right click on the bookmark icon in the editor and invoke "Remove Bookmark".&nbsp;
-Verify that the bookmark disappears in the editor and the bookmarks view.</li>
-
-<li>
-In the navigator select all three java files, verify that "Add Bookmark"
-is enabled, and then invoke it.&nbsp; Verify that 3 bookmarks are appear
-in the bookmarks view.</li>
-
-<li>
-Select a project, folder, or any combination of project | folder with file.&nbsp;
-Verify that "Add Bookmark is disabled.</li>
-
-<li>
-Go to the bookmarks view and invoke "Select All" from the context menu.&nbsp;
-Verify that everything is selected.</li>
-
-<li>
-Then press "Return" in the bookmarks view and verify that all of the bookmarks
-are opened in editors.</li>
-
-<li>
-Invoke "Delete" in the bookmarks view and verify that all bookmarks are
-deleted.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Common Navigator Resource View.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Common Navigator Resource View.html
deleted file mode 100644
index e888878..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Common Navigator Resource View.html
+++ /dev/null
@@ -1,192 +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">
-   <title>Test Scenario: Common Navigator Resource View</title>
-</head>
-<body>
-<h3>
-Common Navigator Resource View</h3>
-Purpose: To test the Common Navigator Resource view in Eclipse.&nbsp; We will start out
-with an empty workspace, create some projects and files, open files, open
-some new perspectives, delete some files, test the filtering and sorting
-options, and test the persistance of view state between sessions. The Common
-Navigator Resource view tests are derived from the Navigator View tests. The following
-test plan is a trimmed down version of the current Resource view test plan. 
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Delete the metadata for org.eclipse.ui.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.&nbsp; Confirm that the default perspective (Resource)
-and welcome editor both appear.</li>
-
-
-<li>
-Open the Common Navigator Resource View (Window>Show View>Basic>Experimental Resource Navigator)</li>
-
-<li>
-Create a project using the File > New wizard and verify that it appears
-in the navigator.</li>
-
-<li>
-Create another project by invoking New > Project from the navigator popup
-menu.&nbsp; Verify that it appears in the navigator.</li>
-
-<li>
-Create a .txt file, a .html file, and a .java file by invoking New > File
-from the navigator popup menu.&nbsp; Verify that these files appear in
-the navigator and that an editor is opened on each.&nbsp; Close all of
-these editors.</li>
-<!--  Not yet supported 
-<li>
-In the Navigator you can change the input.&nbsp; To test this create a
-couple of nested folders in a project using the New > Folder action in
-the navigator context menu.&nbsp; Then select the top level folder and
-and invoke Go Into.&nbsp; Verify that the input for the view changes (it
-is shown in the view title) and that only the resources in the input folder
-are visible.&nbsp; If you perform the same operation many times you create
-a history list in the navigator.&nbsp; Try navigating up and down the history
-by using the Back and Forward buttons on the view toolbar.</li>
- -->
-<li>
-If you select a file you can open it from the context menu.&nbsp; Open
-a .txt file and verify that the default text editor opens.&nbsp; Open a
-.java file and verify that the java editor opens.</li>
-
-<li>
-You can also open a file in a specific editor.&nbsp; Select a .java file
-and invoke Open With > Default Text Editor.&nbsp; The default text editor
-should open rather than the java editor.&nbsp; If you select Open With
-> System Editor something like notepad should open.&nbsp; The preferred
-editor for a file is always indicated with a check mark in the Open With
-menu.</li>
-<!--  Not yet supported 
-<li>
-In the navigator you can open new perspectives.&nbsp; Select a project
-or folder in the navigator and invoke Open Perspective > Java from the
-context menu. Verify that a new perspective appears with the Java Perspective
-and that the input for the navigator is the project.&nbsp;&nbsp;&nbsp;
-Close it and go back to the first perspective.</li>
--->
-<!--  Not yet supported 
-<li>
-The contents of the Open Perspective menu are determined by the perspective
-properties.&nbsp; Note the contents of this menu.&nbsp; Then invoke Perspective
-> Customize and change the checked perspectives.&nbsp; Press OK and verify
-that the contents of Open Perspective reflect the new options.</li>
--->
-<!--  Not yet supported 
-<li>
-The Navigator has support for drag and drop.&nbsp; Try dragging a file
-from one project to another.&nbsp; A cursor should appear to indicate the
-drop target.&nbsp; If you release the file it will be moved to the target.</li>
--->
-<!--  Not yet supported 
-<li>
-In the navigator select a project, folder or file and try out Copy, Move
-and Rename in the context menu.</li>
--->
-<!--  Not yet supported 
-<li>
-Select a project, folder or file and invoke Delete in the context menu
-to delete it.&nbsp; Verify that the item disappears from the navigator.&nbsp;
-The delete action is also available in the window Edit menu.&nbsp; Select
-an item, invoke Edit > Delete, and verify that it has the same behavior.</li>
--->
-<!--  Not yet supported 
-<li>
-Select a file in the navigator and invoke Add Bookmark from the context
-menu.&nbsp; Open up the Bookmark view and verify that a bookmark now exists.&nbsp;
-If you double click on the bookmark an editor should open on the bookmark
-source file.&nbsp; Verify that Add Bookmark is not available if a project
-or folder is selected in the navigator.</li>
--->
-<!--  Not yet supported 
-<li>
-Select a project and invoke Close Project from the context menu.&nbsp;
-At this point the icon should change to a closed folder and all of the
-contents will be hidden.&nbsp; Invoke Open Project to reopen it and navigate
-the contents.</li>
--->
-<!--  Not yet supported 
-<li>
-If you select a resource and invoke Properties.. a properties dialog should
-appear.&nbsp; It will contain at least an Info, Project Referenes and Team
-page for projects, and an Info and Team page for folders or files.</li>
--->
-<!--  Not yet supported 
-<li>
-In the navigator you can sort items by name or type.&nbsp; Try out these
-options in the pulldown menu and verify that they have the correct affect.&nbsp;
-All sorting is done in ascending order.&nbsp; You can also filter items
-out.&nbsp; Create a couple of .class and .* files and experiment with the
-filter options.&nbsp; You should be able to hide or show these files as
-desired.</li>
--->
-<!--  Not yet supported 
-<li>
-The selection in the navigator is linked to the active editor.&nbsp; Open
-a couple of files.&nbsp; Then switch between the editors and verify that
-the editor input is selected in the navigator.&nbsp; Now select one of
-the open files in the navigator and verify that the corresponding editor
-is activated.&nbsp; You can disable this option by turning off "Link navigator
-selection to active editor" in the workbench preferences.&nbsp; Then verify
-that no selection occurs in the navigator as you switch between editors.&nbsp;
-Turn it back on and verify that selection works again.</li>
--->
-<!--  Not yet supported 
-<li>
-The state of the navigator (input, expansion) should be stored between
-sessions.&nbsp; To test this open a perspective with the navigator, change
-the input and expansions state, and then close the workbench.&nbsp; Restart
-the workbench and verify that the input and expansion state is restored.</li>
--->
-
-</ol>
-
-<h3>Common Navigator Test Viewer </h3>
-<ol>
-<li>Create a file named 'model.properties' in the root of a project. Add 
-the following entries to the file:
-<pre>
-root=Parent
-Parent=Child1,Child2,Child3
-Child1=Grandchild1,Grandchild2
-Child2=Grandchild3
-</pre>
-</li>
-
-<li>After creating the file, open the 'Test Navigator Viewer' 
-(Show View>Other>Test Navigator View).</li>
-
-<li>Expand the project in test viewer. Verify that in addition to 
-the resources, a logical model matching the structure from the properties
-file is presented. Verify that each item has the correct label ('Parent', 
-'Child1', etc) and the correct icon (each element should have the shared
-'element' icon from the workbench).</li>
-
-<li>Verify that no context menu appears when a logical node is selected.</li>
-
-<li>Deactivatethe 'Test Navigator Extension' by opening the Filters dialog, going
-to the 'Types of Content' tab, and unchecking the 'Test Navigator Extension'
-item. Verify that the logical model elements disappear from the tree.</li>
-
-<li>Reactivatethe 'Test Navigator Extension' by opening the Filters dialog, going
-to the 'Types of Content' tab, and checking the 'Test Navigator Extension'
-item. Verify that the logical model elements reappear from the tree.</li>  
-
-<li>Deactivatethe 'Resources extension'. Verify that the tree becomes empty.</li>
-
-</ol>
-
-
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Export.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Export.html
deleted file mode 100644
index 3f30117..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Export.html
+++ /dev/null
@@ -1,97 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>File System Export</title>
-</head>
-<body>
-
-<center>
-<h1>
-File System Export</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to export a project with a large number files/folders at a
-time, using the file system wizard. The results should be indentical in
-layout and content as the original project used.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Download the JUnit zip file source code from www.junit.org.</li>
-
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Create a new temporary "simple" project called "JUnit Test"</li>
-
-<li>
-Import the JUnit zip file into the project</li>
-
-<li>
-Select File -> Export, select File System and press Next.</li>
-</ul>
-
-<h2>
-Export from a project to a new directory</h2>
-
-<ol>
-<li>
-Select the "JUnit Test" project and mark it as checked.</li>
-
-<li>
-In the Directory field, type in the directory to export to.</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Verify that the contents on the file system match the same file and folder
-structure as the source project</li>
-
-<li>
-Verify the content of the files.</li>
-</ol>
-
-<h2>
-Export from a project to an existing directory</h2>
-
-<ol>
-<li>
-Select the "JUnit Test" project and mark it as checked.</li>
-
-<li>
-In the Directory field, type in the directory to export to.</li>
-
-<li>
-Check the option "Overwrite existing resources without warning"</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Verify you were not prompted to overwrite files</li>
-
-<li>
-Verify that the contents on the file system match the same file and folder
-structure as the source project.</li>
-
-<li>
-Verify the content of the files.</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete the temporary project "JUnit Test"</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Import.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Import.html
deleted file mode 100644
index 340f174..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/File System Import.html
+++ /dev/null
@@ -1,105 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>File System Import</title>
-</head>
-<body>
-
-<center>
-<h1>
-File System Import</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to import a large number files/folders at a time, using the
-file system wizard. The results should be indentical in layout and content
-as the original source used.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Download the JUnit source code from www.junit.org and extract the contents
-into a folder in the file system.</li>
-
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Create a new temporary "simple" project called "JUnit Test"</li>
-
-<li>
-Select File -> Import, select File System and press Next.</li>
-</ul>
-
-<h2>
-Import into an empty project</h2>
-
-<ol>
-<li>
-Click the Browse button and select the directory where the source files
-are located.</li>
-
-<li>
-Expand the folders in the tree view and until "junit" folder is visible
-and check mark the box next to it</li>
-
-<li>
-Type in "JUnit Test" in the Folder field</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Verify that the contents of the project match the same file and folder
-structure as the source in the file system.</li>
-
-<li>
-Verify that the content of the files.</li>
-</ol>
-
-<h2>
-Import into a project with same contents (overwrite)</h2>
-
-<ol>
-<li>
-Click on the Directory drop down box and select the directory where the
-source files are located</li>
-
-<li>
-Expand the folders in the tree view and until "junit" folder is visible
-and check mark the box next to it</li>
-
-<li>
-Type in "JUnit Test" in the Folder field</li>
-
-<li>
-Check the option "Overwrite existing resources without warning"</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Verify you were not prompted to overwrite files</li>
-
-<li>
-Verify that the contents of the project match the same file and folder
-structure as the source in the file system.</li>
-
-<li>
-Verify that the content of the files.</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete the temporary project "JUnit Test"</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Navigator View.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Navigator View.html
deleted file mode 100644
index 180eb68..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Navigator View.html
+++ /dev/null
@@ -1,137 +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">
-   <title>Test Scenario: Navigator View</title>
-</head>
-<body>
-<h3>
-Navigator View</h3>
-Purpose: To test the Navigator view in Eclipse.&nbsp; We will start out
-with an empty workspace, create some projects and files, open files, open
-some new perspectives, delete some files, test the filtering and sorting
-options, and test the persistance of view state between sessions.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Delete the metadata for org.eclipse.ui.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.&nbsp; Confirm that the default perspective (Resource)
-and welcome editor both appear.</li>
-
-<li>
-Create a project using the File > New wizard and verify that it appears
-in the navigator.</li>
-
-<li>
-Create another project by invoking New > Project from the navigator popup
-menu.&nbsp; Verify that it appears in the navigator.</li>
-
-<li>
-Create a .txt file, a .html file, and a .java file by invoking New > File
-from the navigator popup menu.&nbsp; Verify that these files appear in
-the navigator and that an editor is opened on each.&nbsp; Close all of
-these editors.</li>
-
-<li>
-In the Navigator you can change the input.&nbsp; To test this create a
-couple of nested folders in a project using the New > Folder action in
-the navigator context menu.&nbsp; Then select the top level folder and
-and invoke Go Into.&nbsp; Verify that the input for the view changes (it
-is shown in the view title) and that only the resources in the input folder
-are visible.&nbsp; If you perform the same operation many times you create
-a history list in the navigator.&nbsp; Try navigating up and down the history
-by using the Back and Forward buttons on the view toolbar.</li>
-
-<li>
-If you select a file you can open it from the context menu.&nbsp; Open
-a .txt file and verify that the default text editor opens.&nbsp; Open a
-.java file and verify that the java editor opens.</li>
-
-<li>
-You can also open a file in a specific editor.&nbsp; Select a .java file
-and invoke Open With > Default Text Editor.&nbsp; The default text editor
-should open rather than the java editor.&nbsp; If you select Open With
-> System Editor something like notepad should open.&nbsp; The preferred
-editor for a file is always indicated with a check mark in the Open With
-menu.</li>
-
-<li>
-In the navigator you can open new perspectives.&nbsp; Select a project
-or folder in the navigator and invoke Open Perspective > Java from the
-context menu. Verify that a new perspective appears with the Java Perspective
-and that the input for the navigator is the project.&nbsp;&nbsp;&nbsp;
-Close it and go back to the first perspective.</li>
-
-<li>
-The contents of the Open Perspective menu are determined by the perspective
-properties.&nbsp; Note the contents of this menu.&nbsp; Then invoke Perspective
-> Customize and change the checked perspectives.&nbsp; Press OK and verify
-that the contents of Open Perspective reflect the new options.</li>
-
-<li>
-The Navigator has support for drag and drop.&nbsp; Try dragging a file
-from one project to another.&nbsp; A cursor should appear to indicate the
-drop target.&nbsp; If you release the file it will be moved to the target.</li>
-
-<li>
-In the navigator select a project, folder or file and try out Copy, Move
-and Rename in the context menu.</li>
-
-<li>
-Select a project, folder or file and invoke Delete in the context menu
-to delete it.&nbsp; Verify that the item disappears from the navigator.&nbsp;
-The delete action is also available in the window Edit menu.&nbsp; Select
-an item, invoke Edit > Delete, and verify that it has the same behavior.</li>
-
-<li>
-Select a file in the navigator and invoke Add Bookmark from the context
-menu.&nbsp; Open up the Bookmark view and verify that a bookmark now exists.&nbsp;
-If you double click on the bookmark an editor should open on the bookmark
-source file.&nbsp; Verify that Add Bookmark is not available if a project
-or folder is selected in the navigator.</li>
-
-<li>
-Select a project and invoke Close Project from the context menu.&nbsp;
-At this point the icon should change to a closed folder and all of the
-contents will be hidden.&nbsp; Invoke Open Project to reopen it and navigate
-the contents.</li>
-
-<li>
-If you select a resource and invoke Properties.. a properties dialog should
-appear.&nbsp; It will contain at least an Info, Project Referenes and Team
-page for projects, and an Info and Team page for folders or files.</li>
-
-<li>
-In the navigator you can sort items by name or type.&nbsp; Try out these
-options in the pulldown menu and verify that they have the correct affect.&nbsp;
-All sorting is done in ascending order.&nbsp; You can also filter items
-out.&nbsp; Create a couple of .class and .* files and experiment with the
-filter options.&nbsp; You should be able to hide or show these files as
-desired.</li>
-
-<li>
-The selection in the navigator is linked to the active editor.&nbsp; Open
-a couple of files.&nbsp; Then switch between the editors and verify that
-the editor input is selected in the navigator.&nbsp; Now select one of
-the open files in the navigator and verify that the corresponding editor
-is activated.&nbsp; You can disable this option by turning off "Link navigator
-selection to active editor" in the workbench preferences.&nbsp; Then verify
-that no selection occurs in the navigator as you switch between editors.&nbsp;
-Turn it back on and verify that selection works again.</li>
-
-<li>
-The state of the navigator (input, expansion) should be stored between
-sessions.&nbsp; To test this open a perspective with the navigator, change
-the input and expansions state, and then close the workbench.&nbsp; Restart
-the workbench and verify that the input and expansion state is restored.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/New File Wizard.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/New File Wizard.html
deleted file mode 100644
index fe11840..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/New File Wizard.html
+++ /dev/null
@@ -1,94 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>New File Wizard</title>
-</head>
-<body>
-
-<center>
-<h1>
-New File Wizard</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to create a single empty file. The end result of this wizard
-should be an empty file opened in the proper editor for its type.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Create a temporary project called "File Test"</li>
-
-<li>
-Select File->New->File from the resource perspective</li>
-</ul>
-
-<h2>
-Create file at project root</h2>
-
-<ol>
-<li>
-Select the project File Test</li>
-
-<li>
-In the File Name field, type in f1.txt</li>
-
-<li>
-Press the Finish button</li>
-
-<li>
-Verify a new f1.txt file is created under the File Test project (in navigator
-view and in the file system)</li>
-
-<li>
-Verify the default text editor opened on f1.txt</li>
-
-<li>
-Verify the content of f1.txt is empty</li>
-</ol>
-
-<h2>
-Create file in new folder</h2>
-
-<ol>
-<li>
-In the "Enter or select the folder" field, type in File Test/folder</li>
-
-<li>
-In the File Name field, type in f1.txt</li>
-
-<li>
-Press the Finish button</li>
-
-<li>
-Verify that "folder" was created under the File Test project (in navigator
-view and in the file system)</li>
-
-<li>
-Verify a new f1.txt file is created under "folder" (in navigator view and
-in the file system)</li>
-
-<li>
-Verify the default text editor opened on f1.txt</li>
-
-<li>
-Verify the content of f1.txt is empty</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete the temporary project "File Test"</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/New Folder Wizard.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/New Folder Wizard.html
deleted file mode 100644
index ae32603..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/New Folder Wizard.html
+++ /dev/null
@@ -1,60 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>New Folder Wizard</title>
-</head>
-<body>
-
-<center>
-<h1>
-New Folder Wizard</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to create a single empty folder. The end result of this wizard
-should be an empty folder.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Create a temporary project called "Folder Test"</li>
-
-<li>
-Select File->New->Folder from the resource perspective</li>
-</ul>
-
-<h2>
-Create folder at project root</h2>
-
-<ol>
-<li>
-Select the project Folder Test</li>
-
-<li>
-In the Folder Name field, type in f1</li>
-
-<li>
-Press the Finish button</li>
-
-<li>
-Verify a new f1 folder is created under the Folder Test project (in navigator
-view and in the file system)</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete the temporary project "Folder Test"</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/New Project Wizard.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/New Project Wizard.html
deleted file mode 100644
index 8346abd..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/New Project Wizard.html
+++ /dev/null
@@ -1,92 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>New Project Wizard</title>
-</head>
-<body>
-
-<center>
-<h1>
-New Project Wizard</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to create a single empty project. The end result of this wizard
-should be an empty project.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Extract the junit.jar file into a directory on the file system</li>
-
-<li>
-Select File->New->Project from the resource perspective</li>
-
-<li>
-Select Simple and then Project and Press Next</li>
-</ul>
-
-<h2>
-Create project at default location</h2>
-
-<ol>
-<li>
-In Project Name field, type in Project Test</li>
-
-<li>
-Press Next and select another project as a reference project</li>
-
-<li>
-Press the Finish button</li>
-
-<li>
-Verify a new Project Test project is created (in navigator view and in
-the file system)</li>
-
-<li>
-Verify, in the project's properties dialog, that the Project References
-page includes the project referenced.</li>
-</ol>
-
-<h2>
-Create project at specific location</h2>
-
-<ol>
-<li>
-In Project Name field, type in Project Test2</li>
-
-<li>
-Uncheck the Use Default Location option</li>
-
-<li>
-In the Location field, type in the directory containing the junit source
-code.</li>
-
-<li>
-Press the Finish button</li>
-
-<li>
-Verify a new Project Test2 project is created (in navigator view)</li>
-
-<li>
-Verify the contents of the project match the files/folders for junit on
-the file system</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete projects Project Test and Project Test2</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Outline View.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Outline View.html
deleted file mode 100644
index a7aa0b4..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Outline View.html
+++ /dev/null
@@ -1,67 +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">
-   <title>Test Scenario: Outline View</title>
-</head>
-<body>
-
-<h3>
-Outline View</h3>
-Purpose: To test the Outline view in Eclipse.&nbsp; The Outline view is
-just a container for the pages contributed by open editors.&nbsp; Therefore,
-this test will focus on the creation, show, and closure of those pages.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Create a java project containing three java files and a text file.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-If any editor is open close it.</li>
-
-<li>
-Verify that the Outline view is empty and contains the text "An Outline
-is not available".</li>
-
-<li>
-Open an editor on a java file. Verify that a java page appears in the outline
-view.&nbsp; If you select items in this page the scroll and selected text
-within the editor should change.</li>
-
-<li>
-Open a second file in a java editor.&nbsp; Verify that a second java page
-appears in the outline view.</li>
-
-<li>
-If you switch between the two editors the visible page should change.</li>
-
-<li>
-Open a .txt file in a text editor.&nbsp; When this editor is active the
-outline view will be empty and contain the standard empty text as described
-in step 2.</li>
-
-<li>
-If you switch between a text and java editor the visible page should change.&nbsp;
-Verify that the toolbar and menu items in the outline also chnage.&nbsp;
-The java editor has Field and Member toolbar items.</li>
-
-<li>
-Close one editor.&nbsp; If another editor is activated verify that its
-outline page is now visible.&nbsp; If no editor is activated verify that
-the outline is empty.</li>
-
-<li>
-Close the last editor and verify that the default blank page is visible
-in the outline.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Persistence.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Persistence.html
deleted file mode 100644
index 2d5c2b2..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Persistence.html
+++ /dev/null
@@ -1,55 +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">
-   <title>Test Scenario: Persistence</title>
-</head>
-<body>
-<h3>
-Persistence</h3>
-Purpose: To test persistence in the workbench.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Delete the metadata for org.eclipse.ui.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.&nbsp; Confirm that the default perspective (Resource)
-and welcome editor both appear.</li>
-
-<li>
-Create a project with 3 files, one.txt, two.txt, and three.txt.&nbsp; Open
-one.txt in the default perspective.</li>
-
-<li>
-In the navigator select the project and invoke Open Perspective > Java
-from the context menu.&nbsp; Verify that a new Java perspective appears
-in the current window.&nbsp; The input for the Packages view and navigator
-should be the project.</li>
-
-<li>
-Open two.txt in the Java perspective.</li>
-
-<li>
-Change the Workbench Preferences for "Open Perspective" to "Open in New
-Window".&nbsp; Then open a Java perspective and verify that a new window
-is created.</li>
-
-<li>
-Now we have two windows.&nbsp; The first window has two perspectives (resource
-and java).&nbsp; In the resource perspective one.txt is open in an editor.&nbsp;
-In the java perspective two.txt is open in an editor.&nbsp; In the second
-window here is one Java perspective with no open editors.</li>
-
-<li>
-Invoke File > Exit.&nbsp; Then restart the workbench and verify that the
-window, perspective and editor state of the workbench is restored.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Preferences.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Preferences.html
deleted file mode 100644
index ebcf11a..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Preferences.html
+++ /dev/null
@@ -1,92 +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">
-   <title>Test Scenario: Preferences</title>
-</head>
-<body>
-
-<h3>
-Preferences</h3>
-Purpose: To test the Preferences in Eclipse.&nbsp; We will open the Preferences
-dialog, select some pages, change and apply preferences, verify their affect,
-and test persistence between sessions.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-Invoke Window > Preferences and verify that the Preferences dialog appears.&nbsp;
-Click on all of the items in the left hand viewer to demonstrate that each
-item has a valid page and no exceptions occur in their creation.&nbsp;
-Now close the dialog.</li>
-
-<li>
-The behavior of the workbench can be customized using the preferences.&nbsp;
-To see this in action we will examine various preferences which ship with
-Eclipse.</li>
-
-<li>
-The selection in the navigator is linked to the active editor.&nbsp; Open
-a couple of files.&nbsp; Then switch between the editors and watch how
-the input for the active editor is selected in the navigator.&nbsp; You
-can disable this option in the Preferences.&nbsp; To do this ..</li>
-
-<ol>
-<li>
-Open the preferences dialog.</li>
-
-<li>
-Turning off "Link navigator selection to active editor" in the workbench
-preferences.</li>
-
-<li>
-Press OK.&nbsp; The dialog should close.</li>
-
-<li>
-Now switch between the editors.&nbsp; Notice that the selection in the
-navigator does not change.</li>
-</ol>
-
-<li>
-The Perspective > Open menu action can also be customized.&nbsp; By default
-this action will open a new perspective in the current window.&nbsp; You
-can change this to "open in new window" or "replace other".&nbsp; To see
-this behavior ..</li>
-
-<ol>
-<li>
-Open the preferences dialog.&nbsp; Change the workbench preferences for
-"Open Perspective" to "Open in New Window".&nbsp; Then press OK</li>
-
-<li>
-Invoke Perspective > Open > Java.&nbsp; Notice how a new window is created
-for the perspective.&nbsp; The list of open windows is shown in the Window
-menu.&nbsp; Select these items to switch between the windows.</li>
-</ol>
-
-<li>
-If you don't like the current preferences you can reset them.&nbsp; Open
-the preferences dialog again.&nbsp; To reset the state of "Link navigator
-.." and "Open Perspective .." press the Restore Defaults button.&nbsp;
-If you press OK the options will be saved.&nbsp; However, let's assume
-that you decide not to change them.&nbsp; Press Cancel.&nbsp; Then verify
-that the deviant options have not been restored to default by switching
-between editors and opening a new perspective.</li>
-
-<li>
-Invoke File > Exit.&nbsp; Then restart the workbench.</li>
-
-<li>
-Open the preferences dialog and confirm tha "Link navigator .. " and "Open
-Perspective .." still reflect the customized values.&nbsp; The workbench
-will automatically save your preferences between sessions.</li>
-</ol>
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Problems View.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Problems View.html
deleted file mode 100644
index ceb5561..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Problems View.html
+++ /dev/null
@@ -1,105 +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">
-   <title>Test Scenario: Tasks View</title>
-</head>
-<body>
-
-<h3>
-Tasks View</h3>
-Purpose: To test the Tasks view in Eclipse.&nbsp; We will create a java
-project with java classes, introduce errors in those classes, add tasks
-to the files, and then verify them in the tasks list.&nbsp; We also test
-the persistance of task filtering between sessions.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-Create a Java Project named TaskProject.&nbsp; Then create a class named
-TaskClass with the following content.</li>
-
-<p><br><tt>public class TaskClass {</tt>
-<br><tt>&nbsp;private int y;</tt>
-<br><tt>&nbsp;public TaskClass() {</tt>
-<br><tt>&nbsp;}</tt>
-<br><tt>&nbsp;public void doThis() {</tt>
-<br><tt>&nbsp;}</tt>
-<br><tt>&nbsp;abstract public void doThat();</tt>
-<br><tt>&nbsp;public int getX() {</tt>
-<br><tt>&nbsp; return x;</tt>
-<br><tt>&nbsp;}</tt>
-<br><tt>}</tt>
-<br>&nbsp;
-<li>
-If you save this file 2 errors will appear in the source.&nbsp; On line
-7 there is an error because abstract methods can only be defined in an
-abstract class.&nbsp; On line 9 there is an error because x is unknown.</li>
-
-<li>
-Open the Tasks view by invoking Perspective > Show View > Tasks.&nbsp;
-Verify that the tasks views appears and that it shows the 2 errors in the
-TaskClass.</li>
-
-<li>
-Select the first line of TaskClass and invoke "Add Task" from the context
-menu.&nbsp; Override the label with "Test Label" and press OK.&nbsp; Verify
-that a new task icon appears on the left edge of the editor and in the
-tasks view.</li>
-
-<li>
-If a problem is resolved or a task removed it should disappear from the
-task view.&nbsp; Open the Task view filter dialog and reset all options
-with the Reset button.&nbsp; Press OK and go back to the editor for TaskClass.java.&nbsp;
-Delete the "doThat" method and save the file.&nbsp; Verify that one of
-the errors on TaskClass.java is deleted.</li>
-
-<li>
-Now select the Tasks view and select the task item labelled "Test Label".&nbsp;
-Invoke Edit > Delete to delete this task and then verify that it disappears
-from the tasks view and from the open editor.</li>
-
-<li>
-Within the Tasks view you can also create new tasks.&nbsp; To test this
-press the "New Task" button on the toolbar.&nbsp; A new task should appear.&nbsp;
-Type in the label for this task and press Return.&nbsp; Verify that a new
-task is created.&nbsp; Do this a couple of times to create more than one
-task.</li>
-
-<li>
-A task is very similar to a bookmark.&nbsp; If you select a task you can
-open an editor on the task source.&nbsp; To test this close all editors.&nbsp;
-Then select one of the java problems for TaskClass.java and invoke Go To
-File in the context menu.&nbsp; Verify that an editor opens on the problem
-and that the problem is indicated by selection in the editor.</li>
-
-<li>
-Now invoke the Filters toolbar action and change the "show entries of type"
-option to "Java Problem" and nothing else.&nbsp; Press OK and verify that
-only Java problems appear in the task list now.</li>
-
-<li>
-Reopen the Filters dialog and select "On Selected Resource Only".&nbsp;
-Press OK.&nbsp; Now select TaskClass.java in the navigator and verify that
-the java problems for this file are visible in the navigator.&nbsp; Select
-the TaskProject and verify that the java problems for TaskClass.java are
-not visible.</li>
-
-<li>
-Now the task list contains a number of errors and tasks.&nbsp; It also
-has a couple of filtering options (java problems only and selected resource
-only).&nbsp; This state is persisted between sessions.&nbsp; To test this
-note the state of the task view.&nbsp; Then close the workbench and restart
-it.&nbsp; Verify that the visible set of tasks and the filtering options
-are restored.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties Dialog.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties Dialog.html
deleted file mode 100644
index cd52ea5..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties Dialog.html
+++ /dev/null
@@ -1,106 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>Properties Dialog</title>
-</head>
-<body>
-
-<center>
-<h1>
-Properties Dialog</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to confirm the default property pages for simple file, folder,
-and project resources.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Create a simple Project, Folder, and File</li>
-</ul>
-
-<h2>
-Project property pages</h2>
-
-<ol>
-<li>
-Select the simple Project, from the context menu select Properties</li>
-
-<li>
-Click on the Project References page</li>
-
-<li>
-Verify that the Project References page includes no project references</li>
-
-<li>
-Click on the Info page</li>
-
-<li>
-Verify the content is correct</li>
-
-<li>
-Check the Read Only option and press OK</li>
-
-<li>
-Verify that creating another simple file in the simple Project is disallowed</li>
-</ol>
-
-<h2>
-Folder property pages</h2>
-
-<ol>
-<li>
-Select the simple Folder, from the context menu select Properties</li>
-
-<li>
-Click on the Info page</li>
-
-<li>
-Verify the content is correct</li>
-
-<li>
-Check the Read Only option and press OK</li>
-
-<li>
-Verify that creating another simple file in the simple Folder is disallowed</li>
-</ol>
-
-<h2>
-File property pages</h2>
-
-<ol>
-<li>
-Select the simple File, from the context menu select Properties</li>
-
-<li>
-Click on the Info page</li>
-
-<li>
-Verify the content is correct</li>
-
-<li>
-Check the Read Only option and press OK</li>
-
-<li>
-Verify that editing the simple File is disallowed (editor is opened but
-cannot type in it)</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete the simple File, Folder, and Project</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties View.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties View.html
deleted file mode 100644
index b4c2ade..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Properties View.html
+++ /dev/null
@@ -1,53 +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">
-   <title>Test Scenario: Properties View</title>
-</head>
-<body>
-
-<h3>
-Properties View</h3>
-Purpose: To test the Properties view in Eclipse.&nbsp; The Outline view
-is just a container for the pages contributed by other editors and views
-within the workbench.&nbsp; Therefore, this test will focus on the creation,
-show, and closure of those pages.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Create a project containing some files.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-Open the Navigator, Packages and Properties views.</li>
-
-<li>
-Select a file in the Navigator.&nbsp; Verify that the properties for this
-file are visible in the Properties view.</li>
-
-<li>
-Select a project in the Packages view.&nbsp; Verify that the properties
-for ths file are onw visible in the properties view.</li>
-
-<li>
-Activate the Navigator, Packages, Navigator, and Packages view by clicking
-in the title area of the view.&nbsp; Verify that the visible propreties
-in the properties view change to reflect the active part.</li>
-
-<li>
-Close the properties view.</li>
-
-<li>
-Open the view and verify that it shows the properties for the last selection
-in the workbench.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Tasks View.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Tasks View.html
deleted file mode 100644
index 277e878..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Tasks View.html
+++ /dev/null
@@ -1,97 +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">
-   <title>Test Scenario: Tasks View</title>
-</head>
-<body>
-
-<h3>
-Tasks View</h3>
-Purpose: To test the Tasks view in Eclipse.&nbsp; We will create a java
-project with java classes, introduce errors in those classes, add tasks
-to the files, and then verify them in the tasks list.&nbsp; We also test
-the persistance of task filtering between sessions.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-Create a Java Project named TaskProject.&nbsp; Then create a class named
-TaskClass with the following content.</li>
-
-<p><br><tt>public class TaskClass {</tt>
-<br><tt>&nbsp;private int y;</tt>
-<br><tt>&nbsp;public TaskClass() {</tt>
-<br><tt>&nbsp;}</tt>
-<br><tt>&nbsp;public void doThis() {</tt>
-<br><tt>&nbsp;}</tt>
-<br><tt>&nbsp;abstract public void doThat();</tt>
-<br><tt>&nbsp;public int getX() {</tt>
-<br><tt>&nbsp; return x;</tt>
-<br><tt>&nbsp;}</tt>
-<br><tt>}</tt>
-<br>&nbsp;
-<li>
-If you save this file 2 errors will appear in the source.&nbsp; On line
-7 there is an error because abstract methods can only be defined in an
-abstract class.&nbsp; On line 9 there is an error because x is unknown.</li>
-
-<li>
-Open the Tasks view by invoking Perspective > Show View > Tasks.&nbsp;
-Verify that the tasks views appears and that it does not show the 2 
-errors in the TaskClass.</li>
-
-<li>
-Select the first line of TaskClass and invoke "Add Task" from the context
-menu.&nbsp; Override the label with "Test Label" and press OK.&nbsp; Verify
-that a new task icon appears on the left edge of the editor and in the
-tasks view.</li>
-
-<li>
-Now select the Tasks view and select the task item labelled "Test Label".&nbsp;
-Invoke Edit > Delete to delete this task and then verify that it disappears
-from the tasks view and from the open editor.</li>
-
-<li>
-Within the Tasks view you can also create new tasks.&nbsp; To test this
-press the "New Task" button on the toolbar.&nbsp; A new task should appear.&nbsp;
-Type in the label for this task and press Return.&nbsp; Verify that a new
-task is created.&nbsp; Do this a couple of times to create more than one
-task.</li>
-
-<li>
-A task is very similar to a bookmark.&nbsp; If you select a task you can
-open an editor on the task source.&nbsp; To test this close all editors.&nbsp;
-Then select one of the java problems for TaskClass.java and invoke Go To
-File in the context menu.&nbsp; Verify that an editor opens on the task
-and that the task is indicated by selection in the editor.</li>
-
-<li>
-Now invoke the Filters toolbar action and change the "Where priority is:"
-option to "High" and nothing else.&nbsp; Press OK and verify that
-only high priority tasks appear in the task list now.</li>
-
-<li>
-Reopen the Filters dialog and select "On Selected Resource Only".&nbsp;
-Press OK.&nbsp; Now select TaskClass.java in the navigator and verify that
-the tasks for this file are visible in the task view.&nbsp; Select
-the TaskProject and verify that the tasks for TaskClass.java are
-not visible in the tasks view.</li>
-
-<li>
-Now the task list contains a number of tasks.&nbsp; It also has a couple 
-of filtering options.&nbsp; This state is persisted between 
-sessions.&nbsp; To test this note the state of the task view.&nbsp; 
-Then close the workbench and restart it.&nbsp; Verify that the visible 
-set of tasks and the filtering options are restored.</li>
-</ol>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Test Scenarios.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Test Scenarios.html
deleted file mode 100644
index 7d3c66b..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Test Scenarios.html
+++ /dev/null
@@ -1,37 +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">
-   <title>Workbench Manual Test Scenarios</title>
-</head>
-<body>
-
-<h2>
-<b>Manual Test Scenarios for the Workbench (org.eclipse.ui)</b></h2>
-Last updated June 2, 2002
-
-<p>
-<br><a href="Welcome Editor.html">Welcome Editor</a>
-<br><a href="Window Actions.html">Window Actions</a>
-<br><a href="Window Layout.html">Window Layout</a>
-<br><a href="Persistence.html">Persistence</a>
-<br><a href="Navigator View.html">Navigator View</a>
-<br><a href="Common Navigator Resource View.html">Common Navigator Resource View</a>
-<br><a href="Outline View.html">Outline View</a>
-<br><a href="Properties View.html">Properties View</a>
-<br><a href="Bookmarks View.html">Bookmarks View</a>
-<br><a href="Tasks View.html">Tasks View</a>
-
-<br><a href="New File Wizard.html">New File Wizard</a>
-<br><a href="New Folder Wizard.html">New Folder Wizard</a>
-<br><a href="New Project Wizard.html">New Project Wizard</a>
-<br><a href="File System Export.html">File System Export</a>
-<br><a href="File System Import.html">File System Import</a>
-<br><a href="ZIP Export.html">Zip Export</a>
-<br><a href="ZIP Import.html">Zip Import</a>
-<br><a href="Properties Dialog.html">Properties Dialog</a>
-<br><a href="Preferences.html">Preferences</a>
-<br>&nbsp;
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Text Editor b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Text Editor
deleted file mode 100644
index 2f67424..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Text Editor
+++ /dev/null
@@ -1,98 +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">

-   <title>Test Scenario: Text Editor</title>

-</head>

-<body>

-

-<h3>

-Text Editor</h3>

-Purpose: To test the Text Editor in Eclipse.&nbsp; We will open a text

-file, adding some text, play with the edit actions, verify the save and

-save as, and then test persistance between sessions.

-<p>Setup:

-<ol>

-<li>

-Install Eclipse Platform.</li>

-

-<li>

-Create a project.</li>

-</ol>

-Method:

-<ol>

-<li>

-Start the workbench.</li>

-

-<li>

-Invoke File > New > File.&nbsp; Create a new text file with some name like

-test1.txt.&nbsp; Verify that a new editor opens on the file.</li>

-

-<li>

-Copy and paste the following text into the editor ..</li>

-</ol>

-

-<blockquote>Beware the beast man, for he is the devil's pawn. Alone among

-God's primates,

-<br>he kills for sport, or lust or greed. Yes, he will murder his brother

-to possess his

-<br>brother's land. Let him not breed in great numbers, for he will make

-a desert of

-<br>his home and yours. Shun him. Drive him back into his jungle lair:

-For he is the

-<br>harbinger of death.

-<p>(Planet of the Apes)</blockquote>

-

-<ol>

-<li>

-After paste has been performed the editor state should be dirty.&nbsp;

-Verify that File > Save is enabled and that Save is enabled in the context

-menu.&nbsp; Invoke Save and verify that save is disabled.</li>

-

-<li>

-The Save As menu action is always enabled.&nbsp; Invoke this action to

-create a new file, say test2.txt, and verify that the name of the new file

-name is reflected in the editor tab.</li>

-

-<li>

-Modify the contents of test2.txt and save.&nbsp; Then open test1.txt and

-verify that it still contains the original text.</li>

-

-<li>

-In text1.txt select the first 3 lines and invoke Edit Copy.&nbsp; Activate

-text2.txt, put the cursor at the end of the file, and invoke Edit Paste.&nbsp;

-Verify that the first 3 lines of text1.txt are copied to text2.txt.</li>

-

-<li>

-Invoke Undo and Redo a few times in text2.txt to undo and redo the paste.</li>

-

-<li>

-Select a few lines of text and invoke Shift Right and Shift Left a few

-times.</li>

-

-<li>

-Now close text2.txt.&nbsp; The file has been modified, so a Save dialog

-should appear.&nbsp; Press No to avoid saving.</li>

-

-<li>

-Now we need to test Find / Replace.&nbsp; Select the text1.txt editor.&nbsp;

-This file contains many instances of he and his.&nbsp; Invoke Find / Replace

-and replace all instances of he by "she".&nbsp; You may find that various

-words like "the" are modified to "tshe".&nbsp; Close the find dialog and

-invoke Revert in the context menu.&nbsp; Verify that the file contents

-are now equal to the original text.&nbsp; Then try Find / Replace again

-with "whole word" selected and verify the results.</li>

-

-<li>

-Open up text2.txt.&nbsp; Now there should be one open editor with changs

-and one without.</li>

-

-<li>

-Invoke File > Close All.&nbsp; At this point a "Save Resources" dialog

-should appear where you can save the modified files.&nbsp; Check all modifications

-and then press "Yes".&nbsp; Verify that all editors are closed.&nbsp; Then

-open up any editor which was saved and verify changes.</li>

-</ol>

-

-</body>

-</html>

diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Welcome Editor.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Welcome Editor.html
deleted file mode 100644
index 75c3754..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Welcome Editor.html
+++ /dev/null
@@ -1,44 +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">
-   <title>Test Scenario: Welcome Editor</title>
-</head>
-<body>
-<h3>
-Welcome Editor</h3>
-Purpose: To test the Welcome editor in Eclipse.&nbsp; We will start the
-workbench after a fresh install, verify the visibility of the Welcome editor,
-and then test the format and links.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Delete the metadata for org.eclipse.ui.&nbsp; This will simulate a fresh
-install.</li>
-</ol>
-Method:
-<ol>
-<li>
-Start the workbench.&nbsp; Confirm that the default perspective (Resource)
-and Welcome editor both appear.</li>
-
-<li>
-Close the editor and exit the workbench.</li>
-
-<li>
-Restart the workbench and verify that the Welcome editor does not appear.&nbsp;
-The editor only appears automatically after a fresh install.</li>
-
-<li>
-Invoke Help > Welcome and verify that the Welcome editor opens.</li>
-
-<li>
-The Welcome editor contains a number of links. Test each of these links
-to ensure that the link invokes an appropriate action.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Actions.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Actions.html
deleted file mode 100644
index 2459250..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Actions.html
+++ /dev/null
@@ -1,117 +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">
-   <title>Test Scenario: Window Actions</title>
-</head>
-<body>
-<h3>
-Window Actions</h3>
-Purpose: To test the standard menu and toolbar actions in Eclipse.&nbsp;
-We will create a project, open some editors, test the global actions, test
-the persistance of workbench state between sessions.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Delete the metadata for org.eclipse.ui.</li>
-</ol>
-Testing the File Menu:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-Invoke File > New > Project.&nbsp; A wizard will appear where you can select
-a project type.&nbsp; Select each item in the left hand viewer to verify
-the basic page operation.&nbsp; Then select Simple > Project and press
-Next.&nbsp; Type "SimpleProject" as the name for the project and press
-Finish.&nbsp; Verify that a new Resource perspective is created and that
-SimpleProject appears in the Navigator view.</li>
-
-<li>
-Create a few folders and files (one.txt, two.txt, three.txt) within SimpleProject.&nbsp;
-For more information on this process refer to Simon's work on the New Wizard.</li>
-
-<li>
-Open one.txt within a text editor.&nbsp; Verify that File > Close and Save
-As are enabled.&nbsp; Verify that Save is disabled.</li>
-
-<li>
-Add the following text to the file..</li>
-
-<p><br>File One
-<br>&nbsp;
-<li>
-Once you modify a file the File > Save action should become enabled and
-a small asterix should appear in the editor tab.&nbsp; Invoke Save and
-verify that the asterix disappears and that the File > Save action is disabled.</li>
-
-<li>
-Open two.txt.&nbsp; Add the following text to the file..</li>
-
-<p><br>File Two
-<br>&nbsp;
-<li>
-Open three.txt and add the following text to the file..</li>
-
-<p><br>File Three
-<br>&nbsp;
-<li>
-If you close an editor which is dirty the workbench should ask if you want
-to save it.&nbsp; With three.txt active invoke File > Close.&nbsp; Verify
-that the Save dialog appears.&nbsp; Press Yes.&nbsp; Then reopen the file
-to verify that the text was saved.</li>
-
-<li>
-Invoke File > Close All.&nbsp; At this point there is 1 dirty editor.&nbsp;
-Verify that the Save Resources dialog appears.&nbsp; Press Yes.&nbsp; The
-dirty editors should be saved and all editors will close.</li>
-
-<li>
-Verify that File > Close, Close All, Save, Save As, and Save All are disabled.</li>
-</ol>
-Testing the Edit Menu:
-<ol>
-<li>
-The edit actions should target the active view or editor.&nbsp; To test
-this ..</li>
-
-<ol>
-<li>
-Select a file in the navigator view.&nbsp; Invoke Edit > Delete and verify
-that the Delete File dialog appears for the current selection in the navigator.&nbsp;&nbsp;
-Close the dialog without completing the delete.</li>
-
-<li>
-Select the file again and invoke Edit > Add Bookmark.&nbsp; Open the Bookmarks
-view and verify that a bookmark exists for the file.&nbsp; Select the bookmark.&nbsp;
-Invoke Edit > Delete and verify that the bookmark is deleted in the bookmarks
-view.</li>
-
-<li>
-Open one.txt in a text editor.&nbsp; Select a piece of text and invoke
-Edit > Cut.&nbsp; Verify that the selection in the text editor is cut.</li>
-</ol>
-
-<li>
-Create a file named X.java.&nbsp; Open it in an editor and then verify
-that the Java editor actions are contributed to the workbench menu and
-toolbar.</li>
-
-<li>
-Open one.txt in an editor.&nbsp; Verify that the java editor actions are
-no longer visible in the workbench.</li>
-
-<li>
-Activate the java editor and verify that its contributions appear once
-again.</li>
-
-<li>
-Close the java editor and verify that the contributions disappear.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Layout.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Layout.html
deleted file mode 100644
index f188196..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/Window Layout.html
+++ /dev/null
@@ -1,196 +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">
-   <title>Test Scenario: Window Layout</title>
-</head>
-<body>
-<h3>
-Window Layout</h3>
-Purpose: To test window layout in Eclipse.&nbsp; We will open a perspective,
-test the layout features, open a second perspective, switch between perspectives,
-and then create some windows.
-<p>Setup:
-<ol>
-<li>
-Install Eclipse Platform.</li>
-
-<li>
-Create a project with 3 .txt files.</li>
-
-<li>
-Delete the metadata for org.eclipse.ui.</li>
-</ol>
-Testing a Single Perspective:
-<ol>
-<li>
-Start the workbench.</li>
-
-<li>
-Drag the navigator over the shortcut bar (the vertical toolbar at left).&nbsp; 
-Verify that a stack icon appears.&nbsp; Drop the view on the shortcut bar. 
-It should become a fast view.</li>
-
-<li>
-Click on the navigator fast view button to show the view.&nbsp; Click on
-another view to hide it.&nbsp; You can also hide the view by clicking on
-the "hide" button or the fast view button.</li>
-
-<li>
-Close the Outline view.&nbsp; Then invoke Perspective > Show View > Outline
-to show it again.&nbsp; Verify that it has the same position as before.</li>
-
-<li>
-Select a text file in the navigator and open it.&nbsp; Verify that the
-navigator fast view is hidden and an editor appears in the editor area.</li>
-
-<li>
-Modify the contents of the editor and verify that File > Save becomes enabled.&nbsp;
-Save the file and verify that File > Save is disabled.</li>
-
-<li>
-Modify the contents of the editor again and close the editor.&nbsp; Verify
-that the Save dialog appears and you can answer, yes, no, and cancel.</li>
-
-<li>
-Open 3 text files within 3 editors.&nbsp; The editors appear in a single
-folder.</li>
-
-<li>
-Drag one editor out of the folder.&nbsp; Verify that the relative placement
-icons are shown when you are to the top, right, bottom, or left of the
-existing editor folder.&nbsp; The "no drop" icon should appear if you are
-over a view.&nbsp; Drop the editor below the existing folder.</li>
-
-<li>
-Drag another editor our of the folder onto the single view.&nbsp; Verify
-that the first folder is deconstructed and that a new folder is constructed.</li>
-
-<li>
-Maximize the active editor by clicking on the title area.&nbsp; Minimize
-it by clicking in the area again.&nbsp; Maximize it again and then close
-it.&nbsp; Verify that the perspective layout is restored.</li>
-
-<li>
-Drag a bunch of views out of the window to create detached windows.&nbsp;
-Try dragging these views on top of one another to create detached folders.</li>
-
-<li>
-Invoke Perspective > Reset.&nbsp; Answer yes to the dialog and verify that
-the layout of the perspective is restored to the original.</li>
-
-<li>
-Invoke Perspective > Close to close the page.</li>
-</ol>
-Perspective Save As:
-<ol>
-<li>
-Open the resource perspective.</li>
-
-<li>
-Drag a view onto the left tool bar.&nbsp; Drag another out into a detached
-window.</li>
-
-<li>
-In Eclipse you can customize the actions visible in a perspective.&nbsp;
-Invoke Perspective > Customize and select some new views and actions.&nbsp;
-Press OK and verify that the new actions appear in the menu and toolbar.</li>
-
-<li>
-Invoke Perspective > Save As and select the Resource perspective.&nbsp;
-Press OK and answer yes to the verify dialog.</li>
-
-<li>
-Close the perspective.</li>
-
-<li>
-Open the Resource perspective.&nbsp; Verify that the new page has the same
-layout and visible action sets as you created and saved.</li>
-
-<li>
-Close the perspective.</li>
-
-<li>
-Open up the Preferences dialog and view the Perspectives page.&nbsp; Select
-the Resource one and press Reset.</li>
-
-<li>
-Open the Resource perspective.&nbsp; Verify that the new page has the default
-layout.</li>
-
-<li>
-Drag a view onto the left tool bar.&nbsp; Drag another out into a detached
-window.</li>
-
-<li>
-Invoke Perspective > Save As and type the name of a new perspective (ie
-Bob).&nbsp; Press OK and then verify that the window title changes to reflect
-the new perspective.</li>
-
-<li>
-Close all perspectives</li>
-
-<li>
-Open a new Resource perspective and a Bob perspective.&nbsp; Verify that
-the first has the default layout and that the second has your custom layout.</li>
-</ol>
-Testing Two or More Perspectives:
-<ol>
-<li>
-Close all Perspectives</li>
-
-<li>
-Open a Resource perspective.&nbsp; Verify that a new page appears in the
-window with the Resource perspective.</li>
-
-<li>
-In the Navigator select your project and invoke Open Perspective > Java.&nbsp;
-Verify that a new perspective appears with the Java Perspective and that
-the input for the navigator is the project.&nbsp; Cool: Perspectives support
-scoping !!</li>
-
-<li>
-In the Java perspective open one of the text files in an editor.</li>
-
-<li>
-Drag a couple of views out of the window to create detached windows.</li>
-
-<li>
-Modify the action sets.</li>
-
-<li>
-Switch back and forth between the two pages in the window by clicking in
-the left hand tool bar.&nbsp; The active perspective controls the visible
-action sets, views and editors in the window.&nbsp; If you switch between
-two pages these attributes should change.</li>
-
-<li>
-Try Perspective > Next and Previous.</li>
-
-<li>
-Close the second perspective by invoking Perspective > Close.&nbsp; Verify
-that the first perspective is activated.</li>
-</ol>
-Multiple Windows
-<ol>
-<li>
-Start with one open window which has one perspective.</li>
-
-<li>
-Change the Workbench Preferences for "Open Perspective" to "Open in New
-Window".&nbsp; Then open a Java perspective and verify that a new window
-is created.</li>
-
-<li>
-A list of the open windows should appear in the Window menu.&nbsp; Select
-these items to switch between the windows.</li>
-
-<li>
-Close one window and verify that the other is activated.</li>
-
-<li>
-Close the last window and verify that the workbench shuts down.</li>
-</ol>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Export.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Export.html
deleted file mode 100644
index 135cc42..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Export.html
+++ /dev/null
@@ -1,100 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>ZIP Export</title>
-</head>
-<body>
-
-<center>
-<h1>
-ZIP Export</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to export a project with a large number files/folders at a
-time, using the zip file wizard. The results should be indentical in layout
-and content as the original project used.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Download the JUnit zip file source code from www.junit.org.</li>
-
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Create a new temporary "simple" project called "JUnit Test"</li>
-
-<li>
-Import the JUnit zip file into the project</li>
-
-<li>
-Select File -> Export, select Zip File and press Next.</li>
-</ul>
-
-<h2>
-Export from a project to a new zip file</h2>
-
-<ol>
-<li>
-Select the "JUnit Test" project and mark it as checked.</li>
-
-<li>
-In the Zip File field, type in the filename for the new zip file.</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Verify that the contents in the zip file match the same file and folder
-structure as the source project</li>
-
-<li>
-Verify the content of the files.</li>
-</ol>
-
-<h2>
-Export from a project to an existing zip file</h2>
-
-<ol>
-<li>
-Select the "JUnit Test" project and mark it as checked.</li>
-
-<li>
-In the Zip File field, type in the filename for the existing zip file.</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Click OK in the dialog that appears confirming the overwrite</li>
-
-<li>
-Verify you were prompted to overwrite files</li>
-
-<li>
-Verify that the contents in the zip file match the same file and folder
-structure as the source project.</li>
-
-<li>
-Verify the content of the files.</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete the temporary project "JUnit Test"</li>
-
-<li>
-Delete the temporary jar file</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Import.html b/tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Import.html
deleted file mode 100644
index 105a2df..0000000
--- a/tests/org.eclipse.ui.tests/Manual Scenario Tests/ZIP Import.html
+++ /dev/null
@@ -1,103 +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="OTI Employee">
-   <meta name="GENERATOR" content="Mozilla/4.75 [en] (Windows NT 5.0; U) [Netscape]">
-   <title>ZIP Import</title>
-</head>
-<body>
-
-<center>
-<h1>
-ZIP Import</h1></center>
-
-<h2>
-Purpose</h2>
-The plan is to import a large number files/folders at a time, using the
-ZIP file wizard. The results should be indentical in layout and content
-as the original source used.
-<h2>
-Setup</h2>
-
-<ul>
-<li>
-Download the JUnit zip file source code from www.junit.org.</li>
-
-<li>
-Start the Eclipse workbench</li>
-
-<li>
-Create a new temporary "simple" project called "JUnit Test"</li>
-
-<li>
-Select File -> Import, select Zip File and press Next.</li>
-</ul>
-
-<h2>
-Import into an empty project</h2>
-
-<ol>
-<li>
-Click the Browse button and select the ZIP file.</li>
-
-<li>
-Expand the folders in the tree view and until "junit" folder is visible
-and check mark the box next to it. Deselect the "doc" and "javadoc" folders.</li>
-
-<li>
-Type in "JUnit Test" in the Folder field</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Verify that the contents of the project match the same file and folder
-structure as the source in the file system.</li>
-
-<li>
-Verify that the content of the files.</li>
-</ol>
-
-<h2>
-Import into a project with same contents (overwrite)</h2>
-
-<ol>
-<li>
-Click on the Zip File drop down box and select the zip file</li>
-
-<li>
-Expand the folders in the tree view and until "junit" folder is visible
-and check mark the box next to it.&nbsp; Deselect the "doc" and "javadoc"
-folders.</li>
-
-<li>
-Type in "JUnit Test" in the Folder field</li>
-
-<li>
-Check the option "Overwrite existing resources without warning"</li>
-
-<li>
-Press Finish</li>
-
-<li>
-Verify you were not prompted to overwrite files</li>
-
-<li>
-Verify that the contents of the project match the same file and folder
-structure as the source in the file system.</li>
-
-<li>
-Verify that the content of the files.</li>
-</ol>
-
-<h2>
-Cleanup</h2>
-
-<ul>
-<li>
-Delete the temporary project "JUnit Test"</li>
-</ul>
-
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/UI Test Suite.launch b/tests/org.eclipse.ui.tests/UI Test Suite.launch
deleted file mode 100644
index 4d92d00..0000000
--- a/tests/org.eclipse.ui.tests/UI Test Suite.launch
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<booleanAttribute key="com.mountainminds.eclemma.core.INPLACE_INSTRUMENTATION" value="true"/>
-<listAttribute key="com.mountainminds.eclemma.core.INSTRUMENTATION_PATHS">
-<listEntry value="/org.eclipse.ui.win32/bin"/>
-<listEntry value="/org.eclipse.ui.workbench/bin"/>
-<listEntry value="/org.eclipse.ui.workbench.compatibility/bin"/>
-<listEntry value="/org.eclipse.ui/bin"/>
-<listEntry value="/org.eclipse.ui.views/bin"/>
-<listEntry value="/org.eclipse.ui.ide.application/bin"/>
-<listEntry value="/org.eclipse.core.commands/bin"/>
-<listEntry value="/org.eclipse.jface/bin"/>
-<listEntry value="/org.eclipse.ui.ide/bin"/>
-</listAttribute>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="default_auto_start" value="false"/>
-<intAttribute key="default_start_level" value="4"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/UiTestSuite.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.UiTestSuite"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms40m -Xmx256m"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="true"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests/UI-Parts References Test Suite.launch b/tests/org.eclipse.ui.tests/UI-Parts References Test Suite.launch
deleted file mode 100644
index b99317b..0000000
--- a/tests/org.eclipse.ui.tests/UI-Parts References Test Suite.launch
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<stringAttribute key="application" value="org.eclipse.pde.junit.runtime.coretestapplication"/>
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<booleanAttribute key="com.mountainminds.eclemma.core.INPLACE_INSTRUMENTATION" value="true"/>
-<listAttribute key="com.mountainminds.eclemma.core.INSTRUMENTATION_PATHS">
-<listEntry value="/org.eclipse.ui.ide/bin"/>
-<listEntry value="/org.eclipse.ui.workbench/bin"/>
-<listEntry value="/org.eclipse.ui.views/bin"/>
-</listAttribute>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests/Eclipse Part References Test/org/eclipse/ui/parts/tests/PartsReferencesTestSuite.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.parts.tests.PartsReferencesTestSuite"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="false"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests/UI-Session Tests.launch b/tests/org.eclipse.ui.tests/UI-Session Tests.launch
deleted file mode 100644
index f8d8087..0000000
--- a/tests/org.eclipse.ui.tests/UI-Session Tests.launch
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
-<booleanAttribute key="askclear" value="false"/>
-<booleanAttribute key="automaticAdd" value="true"/>
-<booleanAttribute key="automaticValidate" value="false"/>
-<stringAttribute key="bootstrap" value=""/>
-<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="true"/>
-<booleanAttribute key="clearws" value="true"/>
-<booleanAttribute key="clearwslog" value="false"/>
-<booleanAttribute key="com.mountainminds.eclemma.core.INPLACE_INSTRUMENTATION" value="true"/>
-<listAttribute key="com.mountainminds.eclemma.core.INSTRUMENTATION_PATHS">
-<listEntry value="/org.eclipse.ui.workbench.compatibility/bin"/>
-<listEntry value="/org.eclipse.ui.ide/bin"/>
-<listEntry value="/org.eclipse.ui/bin"/>
-<listEntry value="/org.eclipse.ui.workbench/bin"/>
-<listEntry value="/org.eclipse.jface/bin"/>
-<listEntry value="/org.eclipse.core.commands/bin"/>
-<listEntry value="/org.eclipse.ui.ide.application/bin"/>
-</listAttribute>
-<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
-<booleanAttribute key="default" value="true"/>
-<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.tests/Eclipse UI Tests/org/eclipse/ui/tests/session/SessionTests.java"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
-<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
-<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
-<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
-<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.ui.tests.session.SessionTests"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ui.tests"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.sdk.ide"/>
-<booleanAttribute key="run_in_ui_thread" value="true"/>
-<booleanAttribute key="show_selected_only" value="false"/>
-<stringAttribute key="templateConfig" value=""/>
-<booleanAttribute key="tracing" value="false"/>
-<booleanAttribute key="useDefaultConfig" value="true"/>
-<booleanAttribute key="useDefaultConfigArea" value="false"/>
-<booleanAttribute key="useProduct" value="true"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests/about.html b/tests/org.eclipse.ui.tests/about.html
deleted file mode 100644
index 4602330..0000000
--- a/tests/org.eclipse.ui.tests/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
-<title>About</title>
-</head>
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>June 2, 2006</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
-and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/build.properties b/tests/org.eclipse.ui.tests/build.properties
deleted file mode 100644
index 5de7653..0000000
--- a/tests/org.eclipse.ui.tests/build.properties
+++ /dev/null
@@ -1,26 +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
-###############################################################################
-source.uitests.jar = Eclipse JFace Tests/,\
-                     Eclipse UI Tests/,\
-                     Eclipse Part References Test/
-bin.includes = icons/,\
-               doc/,\
-               data/,\
-               plugin.properties,\
-               plugin.xml,\
-               *.html,\
-               *.jar,\
-               .options,\
-               *.xml,\
-               uiSniff,\
-               uiSniff.bat,\
-               META-INF/
-src.includes = about.html
diff --git a/tests/org.eclipse.ui.tests/data/PerspectiveSwitchSourceCode.txt b/tests/org.eclipse.ui.tests/data/PerspectiveSwitchSourceCode.txt
deleted file mode 100644
index f278cf1..0000000
--- a/tests/org.eclipse.ui.tests/data/PerspectiveSwitchSourceCode.txt
+++ /dev/null
@@ -1,422 +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 Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashPipe;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.SortedMap;
-import java.util.SortedSet;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-public final class Util {
-	
-    public final static SortedMap EMPTY_SORTED_MAP = Collections
-            .unmodifiableSortedMap(new TreeMap());
-
-    public final static SortedSet EMPTY_SORTED_SET = Collections
-            .unmodifiableSortedSet(new TreeSet());
-
-    public final static String ZERO_LENGTH_STRING = ""; //$NON-NLS-1$
-
-	/**
-	 * Ensures that a string is not null. Converts null strings into empty
-	 * strings, and leaves any other string unmodified. Use this to help
-	 * wrap calls to methods that return null instead of the empty string.
-	 * Can also help protect against implementation errors in methods that
-	 * are not supposed to return null. 
-	 * 
-	 * @param input input string (may be null)
-	 * @return input if not null, or the empty string if input is null
-	 */
-	public static String safeString(String input) {
-		if (input != null) {
-			return input;
-		}
-		
-		return ZERO_LENGTH_STRING;
-	}
-    
-    public static void assertInstance(Object object, Class c) {
-        assertInstance(object, c, false);
-    }
-
-    public static void assertInstance(Object object, Class c, boolean allowNull) {
-        if (object == null && allowNull) return;
-
-        if (object == null || c == null)
-            throw new NullPointerException();
-        else if (!c.isInstance(object)) throw new IllegalArgumentException();
-    }
-
-    public static int compare(boolean left, boolean right) {
-        return left == false ? (right == true ? -1 : 0) : 1;
-    }
-
-    public static int compare(Comparable left, Comparable right) {
-        if (left == null && right == null)
-            return 0;
-        else if (left == null)
-            return -1;
-        else if (right == null)
-            return 1;
-        else
-            return left.compareTo(right);
-    }
-
-    public static int compare(Comparable[] left, Comparable[] right) {
-        if (left == null && right == null)
-            return 0;
-        else if (left == null)
-            return -1;
-        else if (right == null)
-            return 1;
-        else {
-            int l = left.length;
-            int r = right.length;
-
-            if (l != r)
-                return l - r;
-            else {
-                for (int i = 0; i < l; i++) {
-                    int compareTo = compare(left[i], right[i]);
-
-                    if (compareTo != 0) return compareTo;
-                }
-
-                return 0;
-            }
-        }
-    }
-
-    public static int compare(int left, int right) {
-        return left - right;
-    }
-
-    public static int compare(List left, List right) {
-        if (left == null && right == null)
-            return 0;
-        else if (left == null)
-            return -1;
-        else if (right == null)
-            return 1;
-        else {
-            int l = left.size();
-            int r = right.size();
-
-            if (l != r)
-                return l - r;
-            else {
-                for (int i = 0; i < l; i++) {
-                    int compareTo = compare((Comparable) left.get(i),
-                            (Comparable) right.get(i));
-
-                    if (compareTo != 0) return compareTo;
-                }
-
-                return 0;
-            }
-        }
-    }
-
-    public static int compare(Object left, Object right) {
-        if (left == null && right == null)
-            return 0;
-        else if (left == null)
-            return -1;
-        else if (right == null)
-            return 1;
-        else
-            return left.toString().compareTo(right.toString());
-    }
-
-    public static void diff(Map left, Map right, Set leftOnly, Set different,
-            Set rightOnly) {
-        if (left == null || right == null || leftOnly == null
-                || different == null || rightOnly == null)
-                throw new NullPointerException();
-
-        Iterator iterator = left.keySet().iterator();
-
-        while (iterator.hasNext()) {
-            Object key = iterator.next();
-
-            if (!right.containsKey(key))
-                leftOnly.add(key);
-            else if (!Util.equals(left.get(key), right.get(key)))
-                    different.add(key);
-        }
-
-        iterator = right.keySet().iterator();
-
-        while (iterator.hasNext()) {
-            Object key = iterator.next();
-
-            if (!left.containsKey(key)) rightOnly.add(key);
-        }
-    }
-
-    public static void diff(Set left, Set right, Set leftOnly, Set rightOnly) {
-        if (left == null || right == null || leftOnly == null
-                || rightOnly == null) throw new NullPointerException();
-
-        Iterator iterator = left.iterator();
-
-        while (iterator.hasNext()) {
-            Object object = iterator.next();
-
-            if (!right.contains(object)) leftOnly.add(object);
-        }
-
-        iterator = right.iterator();
-
-        while (iterator.hasNext()) {
-            Object object = iterator.next();
-
-            if (!left.contains(object)) rightOnly.add(object);
-        }
-    }
-
-    public static boolean endsWith(List left, List right, boolean equals) {
-        if (left == null || right == null)
-            return false;
-        else {
-            int l = left.size();
-            int r = right.size();
-
-            if (r > l || !equals && r == l) return false;
-
-            for (int i = 0; i < r; i++)
-                if (!equals(left.get(l - i - 1), right.get(r - i - 1)))
-                        return false;
-
-            return true;
-        }
-    }
-
-    public static boolean endsWith(Object[] left, Object[] right, boolean equals) {
-        if (left == null || right == null)
-            return false;
-        else {
-            int l = left.length;
-            int r = right.length;
-
-            if (r > l || !equals && r == l) return false;
-
-            for (int i = 0; i < r; i++)
-                if (!equals(left[l - i - 1], right[r - i - 1])) return false;
-
-            return true;
-        }
-    }
-
-    public static boolean equals(boolean left, boolean right) {
-        return left == right;
-    }
-
-    public static boolean equals(int left, int right) {
-        return left == right;
-    }
-
-    public static boolean equals(Object left, Object right) {
-        return left == null ? right == null : ((right != null) && left
-                .equals(right));
-    }
-
-    public static int hashCode(boolean b) {
-        return b ? Boolean.TRUE.hashCode() : Boolean.FALSE.hashCode();
-    }
-
-    public static int hashCode(int i) {
-        return i;
-    }
-
-    public static int hashCode(Object object) {
-        return object != null ? object.hashCode() : 0;
-    }
-
-    public static Collection safeCopy(Collection collection, Class c) {
-        return safeCopy(collection, c, false);
-    }
-
-    public static Collection safeCopy(Collection collection, Class c,
-            boolean allowNullElements) {
-        if (collection == null || c == null) throw new NullPointerException();
-
-        collection = Collections.unmodifiableCollection(new ArrayList(collection));
-        Iterator iterator = collection.iterator();
-
-        while (iterator.hasNext())
-            assertInstance(iterator.next(), c, allowNullElements);
-
-        return collection;
-    }
-
-    public static List safeCopy(List list, Class c) {
-        return safeCopy(list, c, false);
-    }
-
-    public static List safeCopy(List list, Class c, boolean allowNullElements) {
-        if (list == null || c == null) throw new NullPointerException();
-
-        list = Collections.unmodifiableList(new ArrayList(list));
-        Iterator iterator = list.iterator();
-
-        while (iterator.hasNext())
-            assertInstance(iterator.next(), c, allowNullElements);
-
-        return list;
-    }
-
-    public static Map safeCopy(Map map, Class keyClass, Class valueClass) {
-        return safeCopy(map, keyClass, valueClass, false, false);
-    }
-
-    public static Map safeCopy(Map map, Class keyClass, Class valueClass,
-            boolean allowNullKeys, boolean allowNullValues) {
-        if (map == null || keyClass == null || valueClass == null)
-                throw new NullPointerException();
-
-        map = Collections.unmodifiableMap(new HashMap(map));
-        Iterator iterator = map.entrySet().iterator();
-
-        while (iterator.hasNext()) {
-            Map.Entry entry = (Map.Entry) iterator.next();
-            assertInstance(entry.getKey(), keyClass, allowNullKeys);
-            assertInstance(entry.getValue(), valueClass, allowNullValues);
-        }
-
-        return map;
-    }
-
-    public static Set safeCopy(Set set, Class c) {
-        return safeCopy(set, c, false);
-    }
-
-    public static Set safeCopy(Set set, Class c, boolean allowNullElements) {
-        if (set == null || c == null) throw new NullPointerException();
-
-        set = Collections.unmodifiableSet(new HashSet(set));
-        Iterator iterator = set.iterator();
-
-        while (iterator.hasNext())
-            assertInstance(iterator.next(), c, allowNullElements);
-
-        return set;
-    }
-
-    public static SortedMap safeCopy(SortedMap sortedMap, Class keyClass,
-            Class valueClass) {
-        return safeCopy(sortedMap, keyClass, valueClass, false, false);
-    }
-
-    public static SortedMap safeCopy(SortedMap sortedMap, Class keyClass,
-            Class valueClass, boolean allowNullKeys, boolean allowNullValues) {
-        if (sortedMap == null || keyClass == null || valueClass == null)
-                throw new NullPointerException();
-
-        sortedMap = Collections.unmodifiableSortedMap(new TreeMap(sortedMap));
-        Iterator iterator = sortedMap.entrySet().iterator();
-
-        while (iterator.hasNext()) {
-            Map.Entry entry = (Map.Entry) iterator.next();
-            assertInstance(entry.getKey(), keyClass, allowNullKeys);
-            assertInstance(entry.getValue(), valueClass, allowNullValues);
-        }
-
-        return sortedMap;
-    }
-
-    public static SortedSet safeCopy(SortedSet sortedSet, Class c) {
-        return safeCopy(sortedSet, c, false);
-    }
-
-    public static SortedSet safeCopy(SortedSet sortedSet, Class c,
-            boolean allowNullElements) {
-        if (sortedSet == null || c == null) throw new NullPointerException();
-
-        sortedSet = Collections.unmodifiableSortedSet(new TreeSet(sortedSet));
-        Iterator iterator = sortedSet.iterator();
-
-        while (iterator.hasNext())
-            assertInstance(iterator.next(), c, allowNullElements);
-
-        return sortedSet;
-    }
-
-    public static boolean startsWith(List left, List right, boolean equals) {
-        if (left == null || right == null)
-            return false;
-        else {
-            int l = left.size();
-            int r = right.size();
-
-            if (r > l || !equals && r == l) return false;
-
-            for (int i = 0; i < r; i++)
-                if (!equals(left.get(i), right.get(i))) return false;
-
-            return true;
-        }
-    }
-
-    public static boolean startsWith(Object[] left, Object[] right,
-            boolean equals) {
-        if (left == null || right == null)
-            return false;
-        else {
-            int l = left.length;
-            int r = right.length;
-
-            if (r > l || !equals && r == l) return false;
-
-            for (int i = 0; i < r; i++)
-                if (!equals(left[i], right[i])) return false;
-
-            return true;
-        }
-    }
-
-    public static String translateString(ResourceBundle resourceBundle,
-            String key) {
-        return Util.translateString(resourceBundle, key, key, true, true);
-    }
-
-    public static String translateString(ResourceBundle resourceBundle,
-            String key, String string, boolean signal, boolean trim) {
-        if (resourceBundle != null && key != null)
-                try {
-                    final String translatedString = resourceBundle
-                            .getString(key);
-
-                    if (translatedString != null)
-                            return trim ? translatedString.trim()
-                                    : translatedString;
-                } catch (MissingResourceException eMissingResource) {
-                    if (signal) System.err.println(eMissingResource);
-                }
-
-        return trim ? string.trim() : string;
-    }
-
-    private Util() {
-    }
-}
diff --git a/tests/org.eclipse.ui.tests/data/dragtests.xml b/tests/org.eclipse.ui.tests/data/dragtests.xml
deleted file mode 100644
index 7c92bb0..0000000
--- a/tests/org.eclipse.ui.tests/data/dragtests.xml
+++ /dev/null
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dragtests>
-<test name="drag Problems folder to center of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to Problems view tab area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to right of editor area" result="layout ((*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (*Outline, Problems, Properties)))"/>
-<test name="drag Problems folder to right of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to left of window" result="layout (((*Navigator)|layout (active (*Mock Editor 2)|(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to bottom of window" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))-active (*Navigator))"/>
-<test name="drag editor 0 to top of window" result="layout (((*Navigator)|layout (active (*Mock Editor 1)-((*Mock Editor 2)|(*Mock Editor 2))))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to bottom of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to left of editor area" result="layout (((*Navigator)|(active (*Problems)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))))-(*Outline, Properties))"/>
-<test name="drag Problems to top of editor area" result="layout (((*Navigator)|(active (*Problems)-layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))))-(*Outline, Properties))"/>
-<test name="drag editor 0 to top of editor 2" result="layout (((*Navigator)|layout ((*Mock Editor 2)|(active (*Mock Editor 1)-(*Mock Editor 2))))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to bottom of editor 2" result="layout (((*Navigator)|layout ((*Mock Editor 2)-active (Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to left of editor area" result="layout ((*Navigator)|(active (*Outline, Problems, Properties)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))))"/>
-<test name="drag Problems to top of Navigator" result="layout (((active (*Problems)-(*Navigator))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag editor 2 folder to center of editor 0" result="layout (((*Navigator)|layout active (Mock Editor 1, Mock Editor 2, *Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to top of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to bottom of window" result="layout (((*Navigator)|layout (((*Mock Editor 2)|(*Mock Editor 2))-active (*Mock Editor 1)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to bottom of window" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-active (*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to left of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to top of editor area" result="layout ((active (*Navigator)-layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to bottom of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to right of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to fast view bar" result="fastviews (Navigator), layout (layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to right of Navigator" result="layout ((((*Navigator)|active (*Problems))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag Navigator folder to left of editor area" result="layout ((active (*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to center of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-active (Outline, Problems, Properties, *Navigator))"/>
-<test name="drag editor 2 folder to center of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to bottom of Navigator" result="layout (((*Navigator)-active (*Outline, Problems, Properties))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag editor 0 folder to left of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to center of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to left of window" result="layout (((*Navigator)|layout (active (Mock Editor 1, *Mock Editor 2)|(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to bottom of editor 2" result="layout (((*Navigator)|layout ((*Mock Editor 2)|((*Mock Editor 2)-active (*Mock Editor 1))))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to top of editor area" result="layout ((active (*Navigator)-layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to left of editor 0" result="layout (((*Navigator)|layout (active (*Mock Editor 2)|(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to right of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to right of window" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))|active (*Navigator))"/>
-<test name="drag editor 0 to center of Navigator" result="layout (((*Navigator)|layout (active (*Mock Editor 1)|((*Mock Editor 2)|(*Mock Editor 2))))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to center of Navigator" result="layout (((*Navigator)|layout (active (Mock Editor 1, *Mock Editor 2)|(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to center of editor 2" result="layout (((*Navigator)|layout ((*Mock Editor 2)|active (Mock Editor 2, *Mock Editor 1)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to left of editor 0" result="layout (((*Navigator)|layout (active (*Mock Editor 2)|(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to right of window" result="layout (((*Navigator)|layout (((*Mock Editor 2)|(*Mock Editor 2))|active (*Mock Editor 1)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to bottom of window" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))-active (*Navigator))"/>
-<test name="drag Navigator folder to bottom of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-((*Outline, Problems, Properties)-active (*Navigator)))"/>
-<test name="drag Problems to bottom of Navigator" result="layout ((((*Navigator)-active (*Problems))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag Problems folder to center of Navigator" result="layout (active (Navigator, *Outline, Problems, Properties)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag maximized Navigator folder to right of editor area" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (*Navigator))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to center of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to right of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to bottom of editor 0" result="layout (((*Navigator)|layout (((*Mock Editor 2)-active (*Mock Editor 1))|(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to bottom of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-((*Outline, Properties)-active (*Problems)))"/>
-<test name="drag editor 2 to center of editor 0" result="layout (((*Navigator)|layout active (Mock Editor 1, Mock Editor 2, *Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to center of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to right of editor 0" result="layout (((*Navigator)|layout (((*Mock Editor 2)|active (*Mock Editor 1))|(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to Navigator view tab area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to right of editor area" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (*Navigator))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to center of Navigator" result="layout (((*Navigator)|layout (active (*Mock Editor 2)|(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to top of editor 2" result="layout (((*Navigator)|layout (active (Mock Editor 1, *Mock Editor 2)-(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag maximized Problems to right of editor area" result="layout (((*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (*Problems)))-(*Outline, Properties))"/>
-<test name="drag Problems to right of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-((*Outline, Properties)|active (*Problems)))"/>
-<test name="drag editor 2 to right of window" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to right of window" result="layout (((*Navigator)|layout ((*Mock Editor 2)|active (Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to top of window" result="layout (((*Navigator)|layout (active (*Mock Editor 2)-(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to top of editor area" result="layout ((*Navigator)|(active (*Outline, Problems, Properties)-layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))))"/>
-<test name="drag Navigator folder to right of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to left of editor 2" result="layout (((*Navigator)|layout ((*Mock Editor 2)|(active (*Mock Editor 1)|(*Mock Editor 2))))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to Navigator view tab area" result="layout ((active (*Outline, Problems, Properties)|(*Navigator))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag editor 2 to top of window" result="layout (((*Navigator)|layout (active (*Mock Editor 2)-(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to left of editor area" result="layout ((active (*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to left of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to bottom of editor area" result="layout ((*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-active (*Outline, Problems, Properties)))"/>
-<test name="drag editor 2 folder to right of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to bottom of window" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)-active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to right of editor 2" result="layout (((*Navigator)|layout ((*Mock Editor 2)|((*Mock Editor 2)|active (*Mock Editor 1))))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to left of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(active (*Navigator)|(*Outline, Problems, Properties)))"/>
-<test name="drag editor 2 to left of window" result="layout (((*Navigator)|layout (active (*Mock Editor 2)|(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to left of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to top of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to left of window" result="layout (active (*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties)))"/>
-<test name="drag Problems to center of Navigator" result="layout ((active (Navigator, *Problems)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag Problems folder to top of window" result="layout (active (*Outline, Problems, Properties)-((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))))"/>
-<test name="drag Problems to left of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(active (*Problems)|(*Outline, Properties)))"/>
-<test name="drag Navigator to bottom of editor area" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-active (*Navigator))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to right of window" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))|active (*Navigator))"/>
-<test name="drag editor 0 to left of editor 0" result="layout (((*Navigator)|layout ((active (*Mock Editor 1)|(*Mock Editor 2))|(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to fast view bar" result="fastviews (Problems), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag Problems folder to left of Navigator" result="layout ((active (*Outline, Problems, Properties)|(*Navigator))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag Navigator to top of window" result="layout (active (*Navigator)-(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties)))"/>
-<test name="drag Problems folder to left of window" result="layout (active (*Outline, Problems, Properties)|((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))))"/>
-<test name="drag editor 0 folder to left of editor 2" result="layout (((*Navigator)|layout (active (Mock Editor 1, *Mock Editor 2)|(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to bottom of editor area" result="layout (((*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-active (*Problems)))-(*Outline, Properties))"/>
-<test name="drag editor 2 to right of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag maximized Navigator to right of editor area" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (*Navigator))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to fast view bar" result="fastviews (Outline, Problems, Properties), layout ((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))"/>
-<test name="drag Problems folder to top of Navigator" result="layout ((active (*Outline, Problems, Properties)-(*Navigator))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag editor 0 folder to center of editor 2" result="layout (((*Navigator)|layout active (Mock Editor 2, Mock Editor 1, *Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to left of Navigator" result="layout (((active (*Problems)|(*Navigator))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag Navigator folder to fast view bar" result="fastviews (Navigator), layout (layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to right of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-((*Outline, Problems, Properties)|active (*Navigator)))"/>
-<test name="drag Navigator to center of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to top of window" result="layout (active (*Navigator)-(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties)))"/>
-<test name="drag Navigator folder to center of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-active (Outline, Problems, Properties, *Navigator))"/>
-<test name="drag editor 2 to left of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to right of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to bottom of window" result="layout (((*Navigator)|layout ((*Mock Editor 2)-active (Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag maximized Problems folder to right of editor area" result="layout ((*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (Outline, *Problems, Properties)))"/>
-<test name="drag editor 0 folder to top of window" result="layout (((*Navigator)|layout (active (Mock Editor 1, *Mock Editor 2)-(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to right of editor 2" result="layout (((*Navigator)|layout ((*Mock Editor 2)|active (Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to center of Navigator" result="layout (((*Navigator)|layout (active (*Mock Editor 2)|(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to top of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to right of window" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))|active (*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to left of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(active (*Navigator)|(*Outline, Problems, Properties)))"/>
-<test name="drag Problems folder to bottom of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to right of Navigator" result="layout (((*Navigator)|active (*Outline, Problems, Properties))|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag Navigator to left of window" result="layout (active (*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties)))"/>
-<test name="drag Navigator to Problems view tab area" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-active (Outline, Problems, Properties, *Navigator))"/>
-<test name="drag editor 2 folder to right of window" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to center of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to top of window" result="layout (active (*Problems)-(((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties)))"/>
-<test name="drag Navigator folder to Problems view tab area" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(active (*Navigator)|(*Outline, Problems, Properties)))"/>
-<test name="drag Problems to left of window" result="layout (active (*Problems)|(((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties)))"/>
-<test name="drag Navigator to right of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-((*Outline, Problems, Properties)|active (*Navigator)))"/>
-<test name="drag Problems to center of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to bottom of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)-active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to right of editor area" result="layout (((*Navigator)|(layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (*Problems)))-(*Outline, Properties))"/>
-<test name="drag editor 0 to left of window" result="layout (((*Navigator)|layout (active (*Mock Editor 1)|((*Mock Editor 2)|(*Mock Editor 2))))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to Navigator view tab area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to bottom of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)-active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to bottom of editor area" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-active (*Navigator))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to bottom of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to bottom of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-((*Outline, Problems, Properties)-active (*Navigator)))"/>
-<test name="drag Navigator to left of Navigator" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to right of editor area" result="layout ((layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))|active (*Navigator))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to top of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to bottom of editor 2" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to Problems view tab area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to bottom of window" result="layout ((((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))-active (*Problems))"/>
-<test name="drag Problems to right of window" result="layout ((((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))|active (*Problems))"/>
-<test name="drag Problems to Navigator view tab area" result="layout ((active (Navigator, *Problems)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag editor 2 to bottom of window" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)-active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to bottom of editor 0" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to top of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to top of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(active (*Navigator)-(*Outline, Problems, Properties)))"/>
-<test name="drag Problems to top of Problems" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(active (*Problems)-(*Outline, Properties)))"/>
-<test name="drag Navigator to top of Problems" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(active (*Navigator)-(*Outline, Problems, Properties)))"/>
-<test name="drag Problems to Problems view title area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-((*Outline, Properties)|active (*Problems)))"/>
-<test name="drag editor 0 to editor 0 title area" result="layout (((*Navigator)|layout (((*Mock Editor 2)|active (*Mock Editor 1))|(*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to Problems view title area" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-((*Outline, Problems, Properties)|active (*Navigator)))"/>
-<test name="drag editor 0 folder to editor 0 tab area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to Problems view title area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to editor 0 tab area" result="layout (((*Navigator)|layout (active (*Mock Editor 2)|(Mock Editor 1, *Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to editor 0 tab area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to Problems view title area" result="layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-((*Outline, Problems, Properties)|active (*Navigator)))"/>
-<test name="drag editor 2 folder to editor 0 title area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to editor 0 tab area" result="layout (((*Navigator)|layout active (Mock Editor 1, Mock Editor 2, *Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to editor 0 title area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to editor 0 title area" result="layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-
-<!-- detached tests -->
-<test name="drag Navigator to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3, Navigator)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2, Navigator)dWindow (Mock View 3)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 folder to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2, Problems)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag Problems folder to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Outline, Problems, Properties)), layout ((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag editor 2 to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Navigator)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Problems)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag editor 2 to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2, Problems)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag editor 0 to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3, Problems)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Properties))"/>
-<test name="drag editor 0 folder to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2, Navigator)dWindow (Mock View 3)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Navigator)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 0 to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<test name="drag editor 2 folder to out of the window - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)), layout (((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))-(*Outline, Problems, Properties))"/>
-<!-- end of detached tests -->
-
-<!-- The following tests are recorded here but are actually incorrect
-	 due to an existing defect preventing the drop of stacks onto detached views -->
-<test name="drag Problems folder to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Outline, Problems, Properties)), layout ((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag Navigator folder to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Navigator)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Navigator)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Navigator folder to center of Mock View 1 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Navigator)), layout (layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2))-(*Outline, Problems, Properties))"/>
-<test name="drag Problems folder to Mock View 1 view tab area - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Outline, Problems, Properties)), layout ((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<test name="drag Problems folder to center of Mock View 3 - detached" result="detachedWindows (dWindow (Mock View 1, Mock View 2)dWindow (Mock View 3)dWindow (Outline, Problems, Properties)), layout ((*Navigator)|layout ((Mock Editor 1, *Mock Editor 2)|active_nofocus (*Mock Editor 2)))"/>
-<!-- End of error tests -->
-
-</dragtests>
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes.txt b/tests/org.eclipse.ui.tests/data/dynamic_classes.txt
deleted file mode 100644
index 64109bb..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-This zip is not used any more, please check out dynamic_classes as
-org.eclipse.ui.dynamicCode
-
-dyanmic_classes.zip contains a project that can be used to rebuild any of the jars that are contained within the above dynamic plugin directories.
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes.zip b/tests/org.eclipse.ui.tests/data/dynamic_classes.zip
deleted file mode 100644
index dae48aa..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/.classpath b/tests/org.eclipse.ui.tests/data/dynamic_classes/.classpath
deleted file mode 100644
index 865f64c..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/.classpath
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="intro.bin" path="intro"/>
-	<classpathentry kind="src" output="statusHandler.bin" path="statusHandler"/>
-	<classpathentry kind="src" output="browser.bin" path="browser"/>
-	<classpathentry kind="src" output="editor.bin" path="editor"/>
-	<classpathentry kind="src" output="view.bin" path="view"/>
-	<classpathentry kind="src" output="oc.bin" path="oc"/>
-	<classpathentry kind="src" output="newWizard.bin" path="newWizard"/>
-	<classpathentry kind="src" output="perspective.bin" path="perspective"/>
-	<classpathentry kind="src" output="startup.bin" path="startup"/>
-	<classpathentry kind="src" output="decorator.bin" path="decorator"/>
-	<classpathentry kind="src" output="help.bin" path="help"/>
-	<classpathentry kind="src" output="propertyPage.bin" path="propertyPage"/>
-	<classpathentry kind="src" output="workingSet.bin" path="workingSet"/>
-	<classpathentry kind="src" output="preferencePage.bin" path="preferencePage"/>
-	<classpathentry kind="src" output="commands.bin" path="commands"/>
-	<classpathentry kind="src" output="handlers.bin" path="handlers"/>
-	<classpathentry kind="src" output="markerSupport.bin" path="markerSupport"/>
-	<classpathentry kind="src" output="menus.bin" path="menus"/>
-	<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/tests/org.eclipse.ui.tests/data/dynamic_classes/.cvsignore b/tests/org.eclipse.ui.tests/data/dynamic_classes/.cvsignore
deleted file mode 100755
index 3c92d64..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.bin
-jars
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/.externalToolBuilders/Jar Builder.launch b/tests/org.eclipse.ui.tests/data/dynamic_classes/.externalToolBuilders/Jar Builder.launch
deleted file mode 100644
index 8133806..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/.externalToolBuilders/Jar Builder.launch
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,"/>
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${workspace}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/org.eclipse.ui.dynamicCode/build.xml"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ui.dynamicCode/build.xml}"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-</launchConfiguration>
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/.project b/tests/org.eclipse.ui.tests/data/dynamic_classes/.project
deleted file mode 100644
index f88d6d2..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/.project
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.ui.dynamicCode</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<triggers>full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/Jar Builder.launch</value>
-				</dictionary>
-			</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/tests/org.eclipse.ui.tests/data/dynamic_classes/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests/data/dynamic_classes/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 908a91f..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Wed Jan 03 14:58:34 EST 2007
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.1
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.3
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests/data/dynamic_classes/META-INF/MANIFEST.MF
deleted file mode 100644
index 409d31c..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,14 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: DynamicCode
-Bundle-SymbolicName: org.eclipse.ui.dynamicCode
-Bundle-Version: 1.0.0
-Require-Bundle: org.eclipse.core.resources,
- org.eclipse.core.runtime,
- org.eclipse.ui.workbench,
- org.eclipse.core.commands,
- org.eclipse.jface,
- org.eclipse.help,
- org.eclipse.ui.ide,
- org.eclipse.ui,
- org.eclipse.ui.views
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/browser/org/eclipse/ui/dynamic/DynamicBrowserSupport.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/browser/org/eclipse/ui/dynamic/DynamicBrowserSupport.java
deleted file mode 100644
index b631989..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/browser/org/eclipse/ui/dynamic/DynamicBrowserSupport.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.dynamic;
-
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.browser.AbstractWorkbenchBrowserSupport;
-import org.eclipse.ui.browser.IWebBrowser;
-
-/**
- * @since 3.1
- */
-public class DynamicBrowserSupport extends AbstractWorkbenchBrowserSupport {
-
-    /**
-     * 
-     */
-    public DynamicBrowserSupport() {
-        super();
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.browser.IWorkbenchBrowserSupport#createBrowser(int, java.lang.String, java.lang.String, java.lang.String)
-     */
-    public IWebBrowser createBrowser(int style, String browserId, String name,
-            String tooltip) throws PartInitException {
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see org.eclipse.ui.browser.IWorkbenchBrowserSupport#createBrowser(java.lang.String)
-     */
-    public IWebBrowser createBrowser(String browserId) throws PartInitException {
-        return null;
-    }
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/build.properties b/tests/org.eclipse.ui.tests/data/dynamic_classes/build.properties
deleted file mode 100644
index caa6579..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/build.properties
+++ /dev/null
@@ -1,30 +0,0 @@
-###############################################################################
-# Copyright (c) 2005, 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.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.. = intro/,\
-           browser/,\
-           editor/,\
-           view/,\
-           oc/,\
-           newWizard/,\
-           perspective/,\
-           startup/,\
-           decorator/,\
-           help/,\
-           propertyPage/,\
-           workingSet/,\
-           preferencePage/,\
-           menus/,\
-           commands/,\
-           handlers/,\
-           markerSupport/,\
-           statusHandler/
-bin.includes = META-INF/,\
-               .
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/build.xml b/tests/org.eclipse.ui.tests/data/dynamic_classes/build.xml
deleted file mode 100644
index 96c6e47..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/build.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.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 Common Public License v1.0
-	 which accompanies this distribution, and is available at
-	 http://www.eclipse.org/legal/cpl-v10.html
- 
-	 Contributors:
-		IBM Corporation - initial API and implementation
-
-     Dec 1, 2004 12:07:36 PM 
-
-     Dyanmic class builder    
-     Builds the components required by the dynamic test suite
-                                                                                
-     ====================================================================== -->
-<project name="Dyanmic class builder" default="default">
-    <description>
-            Builds the components required by the dynamic test suite
-    </description>
-	
-	<property name="output.dir" value="jars"/>
-
-	
-    <!-- ================================= 
-          target: default              
-         ================================= -->
-    <target name="default" depends="clean, depends, intro, editor, view, menus, oc, newWizard, perspective, startup, decorator, help, propertyPage, preferencePage, workingSet, browser, commands, handlers, statusHandler, markerSupport, self, finish" description="--> Builds the components required by the dynamic test suite">
-    </target>
-
-    <!-- - - - - - - - - - - - - - - - - - 
-          target: depends                      
-         - - - - - - - - - - - - - - - - - -->
-    <target name="depends">
-    	<mkdir dir="${output.dir}"/>
-    </target>
-	
-	<target name="clean">
-		<delete dir="${output.dir}"/>
-	</target>
-	
-	<target name="intro">
-		<jar destfile="${output.dir}\intro.jar" basedir="intro.bin"/>
-	</target>
-	
-	<target name="editor">
-		<jar destfile="${output.dir}\editor.jar" basedir="editor.bin"/>
-	</target>
-	
-	<target name="view">
-		<jar destfile="${output.dir}\view.jar" basedir="view.bin"/>
-	</target>	
-	
-	<target name="oc">
-		<jar destfile="${output.dir}\oc.jar" basedir="oc.bin"/>
-	</target>
-	
-	<target name="menus">
-		<jar destfile="${output.dir}\menus.jar" basedir="menus.bin"/>
-	</target>
-	
-	<target name="newWizard">
-		<jar destfile="${output.dir}\newWizard.jar" basedir="newWizard.bin"/>
-	</target>
-	
-    <target name="perspective">
-		<jar destfile="${output.dir}\perspective.jar" basedir="perspective.bin"/>
-	</target>
-	    
-	<target name="startup">
-		<jar destfile="${output.dir}\startup.jar" basedir="startup.bin"/>
-	</target>
-	
-    <target name="decorator">
-		<jar destfile="${output.dir}\decorator.jar" basedir="decorator.bin"/>
-	</target>
-	
-    <target name="help">
-		<jar destfile="${output.dir}\help.jar" basedir="help.bin"/>
-	</target>
-	
-    <target name="propertyPage">
-		<jar destfile="${output.dir}\propertyPage.jar" basedir="propertyPage.bin"/>
-	</target>
-	
-    <target name="preferencePage">
-		<jar destfile="${output.dir}\preferencePage.jar" basedir="preferencePage.bin"/>
-	</target>
-	
-    <target name="workingSet">
-		<jar destfile="${output.dir}\workingSet.jar" basedir="workingSet.bin"/>
-	</target>
-	
-    <target name="browser">
-		<jar destfile="${output.dir}\browser.jar" basedir="browser.bin"/>
-	</target>
-	
-	<target name="commands">
-		<jar destfile="${output.dir}\commands.jar" basedir="commands.bin"/>
-	</target>
-	
-	<target name="handlers">
-		<jar destfile="${output.dir}\handlers.jar" basedir="handlers.bin"/>
-	</target>
-	
-	<target name="markerSupport">
-			<jar destfile="${output.dir}\markerSupport.jar" basedir="markerSupport.bin"/>
-	</target>
-	
-	<target name="statusHandler">
-		<jar destfile="${output.dir}\statusHandler.jar" basedir="statusHandler.bin"/>
-	</target>
-		
-	<target name="self">
-		<!--<delete file="dynamic_classes.zip"/>
-		<zip destfile="dynamic_classes.zip" basedir="." update="true">
-			<exclude name="**/*.jar" />
-			<exclude name="dynamic_classes.zip" />
-			<exclude name="**/*bin*/**" />
-		</zip>-->
-	</target>
-	
-	<target name="finish">
-		<eclipse.refreshLocal resource="org.eclipse.ui.dynamicCode" depth="infinite"/>
-	</target>
-</project>
-
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/commands/org/eclipse/ui/dynamic/commands/DynamicHandler.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/commands/org/eclipse/ui/dynamic/commands/DynamicHandler.java
deleted file mode 100644
index 170a229..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/commands/org/eclipse/ui/dynamic/commands/DynamicHandler.java
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLabelDecorator.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLabelDecorator.java
deleted file mode 100644
index c0a1eb2..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLabelDecorator.java
+++ /dev/null
@@ -1,67 +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.dynamic;
-
-import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * @since 3.1
- */
-public class DynamicLabelDecorator implements ILabelDecorator {
-
-	/**
-	 * 
-	 */
-	public DynamicLabelDecorator() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelDecorator#decorateImage(org.eclipse.swt.graphics.Image, java.lang.Object)
-	 */
-	public Image decorateImage(Image image, Object element) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILabelDecorator#decorateText(java.lang.String, java.lang.Object)
-	 */
-	public String decorateText(String text, Object element) {
-		return text + " F1 ";
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener listener) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLightweightLabelDecorator.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLightweightLabelDecorator.java
deleted file mode 100644
index 742c254..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/decorator/org/eclipse/ui/dynamic/DynamicLightweightLabelDecorator.java
+++ /dev/null
@@ -1,61 +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.dynamic;
-
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ILightweightLabelDecorator;
-
-/**
- * @since 3.1
- */
-public class DynamicLightweightLabelDecorator implements
-		ILightweightLabelDecorator {
-
-	/**
-	 * 
-	 */
-	public DynamicLightweightLabelDecorator() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.ILightweightLabelDecorator#decorate(java.lang.Object, org.eclipse.jface.viewers.IDecoration)
-	 */
-	public void decorate(Object element, IDecoration decoration) {
-		decoration.addSuffix("Light");
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void addListener(ILabelProviderListener listener) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-	 */
-	public void removeListener(ILabelProviderListener listener) {
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/editor/org/eclipse/ui/dynamic/DynamicEditor.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/editor/org/eclipse/ui/dynamic/DynamicEditor.java
deleted file mode 100644
index 5ec4c00..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/editor/org/eclipse/ui/dynamic/DynamicEditor.java
+++ /dev/null
@@ -1,78 +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.dynamic;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.EditorPart;
-
-/**
- * @since 3.1
- */
-public class DynamicEditor extends EditorPart {
-
-	/**
-	 * 
-	 */
-	public DynamicEditor() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-	 */
-	public void doSaveAs() {		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite, org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		setSite(site);
-		setInput(input);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#isDirty()
-	 */
-	public boolean isDirty() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
-	 */
-	public void setFocus() {	
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/handlers/org/eclipse/ui/dynamic/handlers/DynamicHandler.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/handlers/org/eclipse/ui/dynamic/handlers/DynamicHandler.java
deleted file mode 100644
index 0ddfe01..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/handlers/org/eclipse/ui/dynamic/handlers/DynamicHandler.java
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/help/org/eclipse/ui/dynamic/DynamicHelpSupport.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/help/org/eclipse/ui/dynamic/DynamicHelpSupport.java
deleted file mode 100644
index e49b13e..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/help/org/eclipse/ui/dynamic/DynamicHelpSupport.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.dynamic;
-
-import org.eclipse.help.IContext;
-import org.eclipse.ui.help.AbstractHelpUI;
-
-/**
- * @since 3.1
- */
-public class DynamicHelpSupport extends AbstractHelpUI {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.help.AbstractHelpUI#displayHelp()
-	 */
-	public void displayHelp() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.help.AbstractHelpUI#displayContext(org.eclipse.help.IContext, int, int)
-	 */
-	public void displayContext(IContext context, int x, int y) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.help.AbstractHelpUI#displayHelpResource(java.lang.String)
-	 */
-	public void displayHelpResource(String href) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.help.AbstractHelpUI#isContextHelpDisplayed()
-	 */
-	public boolean isContextHelpDisplayed() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/intro/org/eclipse/ui/dynamic/DynamicIntro.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/intro/org/eclipse/ui/dynamic/DynamicIntro.java
deleted file mode 100644
index 4fff301..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/intro/org/eclipse/ui/dynamic/DynamicIntro.java
+++ /dev/null
@@ -1,45 +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.dynamic;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.IntroPart;
-
-/**
- * @since 3.1
- */
-public class DynamicIntro extends IntroPart {
-
-	/**
-	 * 
-	 */
-	public DynamicIntro() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.intro.IIntroPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.intro.IIntroPart#setFocus()
-	 */
-	public void setFocus() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.intro.IIntroPart#standbyStateChanged(boolean)
-	 */
-	public void standbyStateChanged(boolean standby) {
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/markerSupport/org/eclipse/ui/dynamic/markerSupport/DynamicTestsSubCategoryProvider.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/markerSupport/org/eclipse/ui/dynamic/markerSupport/DynamicTestsSubCategoryProvider.java
deleted file mode 100644
index 6b0b875..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/markerSupport/org/eclipse/ui/dynamic/markerSupport/DynamicTestsSubCategoryProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.eclipse.ui.dynamic.markerSupport;
-
-/*******************************************************************************
- * 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
- *******************************************************************************/
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.ui.views.markers.ISubCategoryProvider;
-
-/**
- * DynamicTestsSubCategoryProvider is test class for the dynamic tests.
- * 
- * @since 3.2
- * 
- */
-public class DynamicTestsSubCategoryProvider implements ISubCategoryProvider {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.views.markers.ISubCategoryProvider#categoryFor(org.eclipse.core.resources.IMarker)
-	 */
-	public String categoryFor(IMarker marker) {
-		return "Dynamic Test";
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/menus/org/eclipse/ui/dynamic/menus/NonInterestingContributionItem.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/menus/org/eclipse/ui/dynamic/menus/NonInterestingContributionItem.java
deleted file mode 100644
index d73215d..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/menus/org/eclipse/ui/dynamic/menus/NonInterestingContributionItem.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.dynamic.menus;
-
-import org.eclipse.jface.action.ContributionItem;
-
-public class NonInterestingContributionItem extends ContributionItem {
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/newWizard/org/eclipse/ui/dynamic/DynamicWizard.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/newWizard/org/eclipse/ui/dynamic/DynamicWizard.java
deleted file mode 100644
index 9db1494..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/newWizard/org/eclipse/ui/dynamic/DynamicWizard.java
+++ /dev/null
@@ -1,184 +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.dynamic;
-
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizardContainer;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-
-/**
- * @since 3.1
- */
-public class DynamicWizard implements INewWizard {
-
-	/**
-	 * 
-	 */
-	public DynamicWizard() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
-	 */
-	public void init(IWorkbench workbench, IStructuredSelection selection) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#addPages()
-	 */
-	public void addPages() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#canFinish()
-	 */
-	public boolean canFinish() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#createPageControls(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPageControls(Composite pageContainer) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#dispose()
-	 */
-	public void dispose() {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getContainer()
-	 */
-	public IWizardContainer getContainer() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getDefaultPageImage()
-	 */
-	public Image getDefaultPageImage() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getDialogSettings()
-	 */
-	public IDialogSettings getDialogSettings() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getNextPage(org.eclipse.jface.wizard.IWizardPage)
-	 */
-	public IWizardPage getNextPage(IWizardPage page) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getPage(java.lang.String)
-	 */
-	public IWizardPage getPage(String pageName) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getPageCount()
-	 */
-	public int getPageCount() {
-		return 0;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getPages()
-	 */
-	public IWizardPage[] getPages() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getPreviousPage(org.eclipse.jface.wizard.IWizardPage)
-	 */
-	public IWizardPage getPreviousPage(IWizardPage page) {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getStartingPage()
-	 */
-	public IWizardPage getStartingPage() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getTitleBarColor()
-	 */
-	public RGB getTitleBarColor() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#getWindowTitle()
-	 */
-	public String getWindowTitle() {
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#isHelpAvailable()
-	 */
-	public boolean isHelpAvailable() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#needsPreviousAndNextButtons()
-	 */
-	public boolean needsPreviousAndNextButtons() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#needsProgressMonitor()
-	 */
-	public boolean needsProgressMonitor() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#performCancel()
-	 */
-	public boolean performCancel() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#performFinish()
-	 */
-	public boolean performFinish() {
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizard#setContainer(org.eclipse.jface.wizard.IWizardContainer)
-	 */
-	public void setContainer(IWizardContainer wizardContainer) {
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockObjectActionDelegate.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockObjectActionDelegate.java
deleted file mode 100644
index bce7a96..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockObjectActionDelegate.java
+++ /dev/null
@@ -1,48 +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.dynamic;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IActionDelegate;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @since 3.1
- */
-public class MockObjectActionDelegate implements IObjectActionDelegate, IActionDelegate {
-	
-	/**
-	 * 
-	 */
-	public MockObjectActionDelegate() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-	}
-
-	/* (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/tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockViewActionDelegate.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockViewActionDelegate.java
deleted file mode 100644
index b6393bf..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/oc/org/eclipse/ui/dynamic/MockViewActionDelegate.java
+++ /dev/null
@@ -1,49 +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.dynamic;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-
-/**
- * @since 3.1
- */
-public class MockViewActionDelegate implements IViewActionDelegate {
-
-	/**
-	 * 
-	 */
-	public MockViewActionDelegate() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
-	 */
-	public void init(IViewPart view) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-
-	}
-
-	/* (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/tests/org.eclipse.ui.tests/data/dynamic_classes/perspective/org/eclipse/ui/dynamic/DynamicPerspective.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/perspective/org/eclipse/ui/dynamic/DynamicPerspective.java
deleted file mode 100644
index a4d15f21..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/perspective/org/eclipse/ui/dynamic/DynamicPerspective.java
+++ /dev/null
@@ -1,35 +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.dynamic;
-
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPerspectiveFactory;
-
-/**
- * @since 3.1
- */
-public class DynamicPerspective implements IPerspectiveFactory {
-
-	/**
-	 * 
-	 */
-	public DynamicPerspective() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
-	 */
-	public void createInitialLayout(IPageLayout layout) {
-		layout.addView(IPageLayout.ID_OUTLINE, IPageLayout.LEFT, .25f, IPageLayout.ID_EDITOR_AREA);
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/preferencePage/org/eclipse/ui/dynamic/DynamicPreferencePage.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/preferencePage/org/eclipse/ui/dynamic/DynamicPreferencePage.java
deleted file mode 100644
index 8fac73b..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/preferencePage/org/eclipse/ui/dynamic/DynamicPreferencePage.java
+++ /dev/null
@@ -1,143 +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.dynamic;
-
-import org.eclipse.jface.preference.IPreferencePageContainer;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-/**
- * @since 3.1
- */
-public class DynamicPreferencePage implements IWorkbenchPreferencePage {
-
-	/**
-	 * 
-	 */
-	public DynamicPreferencePage() {
-		super();
-		// TODO Auto-generated constructor stub
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-		// TODO Auto-generated method stub
-
-	}
-
-	public Point computeSize() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public boolean isValid() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public boolean okToLeave() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public boolean performCancel() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public boolean performOk() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	public void setContainer(IPreferencePageContainer preferencePageContainer) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void setSize(Point size) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void createControl(Composite parent) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void dispose() {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public Control getControl() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public String getDescription() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public String getErrorMessage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public Image getImage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public String getMessage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public String getTitle() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void performHelp() {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void setDescription(String description) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void setImageDescriptor(ImageDescriptor image) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void setTitle(String title) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void setVisible(boolean visible) {
-		// TODO Auto-generated method stub
-		
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/propertyPage/org/eclipse/ui/dynamic/DynamicPropertyPage.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/propertyPage/org/eclipse/ui/dynamic/DynamicPropertyPage.java
deleted file mode 100644
index 680c6c9..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/propertyPage/org/eclipse/ui/dynamic/DynamicPropertyPage.java
+++ /dev/null
@@ -1,36 +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.dynamic;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * @since 3.1
- */
-public class DynamicPropertyPage extends PropertyPage {
-
-	/**
-	 * 
-	 */
-	public DynamicPropertyPage() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {		
-		return parent;
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/startup/org/eclipse/ui/dynamic/DynamicStartup.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/startup/org/eclipse/ui/dynamic/DynamicStartup.java
deleted file mode 100644
index 20d7a8a..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/startup/org/eclipse/ui/dynamic/DynamicStartup.java
+++ /dev/null
@@ -1,37 +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.dynamic;
-
-import org.eclipse.ui.IStartup;
-
-/**
- * @since 3.1
- */
-public class DynamicStartup implements IStartup {
-
-	public static Throwable history;
-	
-	/**
-	 * 
-	 */
-	public DynamicStartup() {
-		super();		
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IStartup#earlyStartup()
-	 */
-	public void earlyStartup() {
-		history = new Throwable();
-		history.fillInStackTrace();
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/statusHandler/org/eclipse/ui/dynamic/DynamicStatusHandler.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/statusHandler/org/eclipse/ui/dynamic/DynamicStatusHandler.java
deleted file mode 100644
index 4e9d232..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/statusHandler/org/eclipse/ui/dynamic/DynamicStatusHandler.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies 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.dynamic;
-
-import org.eclipse.ui.statushandlers.AbstractStatusHandler;
-import org.eclipse.ui.statushandlers.StatusAdapter;
-
-/**
- * @since 3.3
- */
-public class DynamicStatusHandler extends AbstractStatusHandler {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.statushandlers.AbstractStatusHandler#handle(org.eclipse.ui.statushandlers.StatusAdapter,
-	 *      int)
-	 */
-	public void handle(StatusAdapter statusAdapter, int style) {
-	}
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/view/org/eclipse/ui/dynamic/DynamicView.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/view/org/eclipse/ui/dynamic/DynamicView.java
deleted file mode 100644
index 783d6bf..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/view/org/eclipse/ui/dynamic/DynamicView.java
+++ /dev/null
@@ -1,40 +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.dynamic;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.part.ViewPart;
-
-/**
- * @since 3.1
- */
-public class DynamicView extends ViewPart {
-
-	/**
-	 * 
-	 */
-	public DynamicView() {
-		super();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
-	public void setFocus() {	
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetElementAdapter.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetElementAdapter.java
deleted file mode 100644
index d911706..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetElementAdapter.java
+++ /dev/null
@@ -1,91 +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.dynamic;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetElementAdapter;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.intro.IIntroPart;
-import org.eclipse.ui.intro.IIntroSite;
-
-public class DynamicWorkingSetElementAdapter implements
-		IWorkingSetElementAdapter {
-
-	public IAdaptable[] adaptElements(IWorkingSet ws, IAdaptable[] elements) {
-		return new IAdaptable[] {new IIntroPart() {
-
-			public void addPropertyListener(IPropertyListener listener) {
-			}
-
-			public void createPartControl(Composite parent) {
-				
-			}
-
-			public void dispose() {
-				
-			}
-
-			public IIntroSite getIntroSite() {
-				return null;
-			}
-
-			public String getTitle() {
-				// TODO Auto-generated method stub
-				return null;
-			}
-
-			public Image getTitleImage() {
-
-				return null;
-			}
-
-			public void init(IIntroSite site, IMemento memento)
-					throws PartInitException {
-
-				
-			}
-
-			public void removePropertyListener(IPropertyListener listener) {
-
-				
-			}
-
-			public void saveState(IMemento memento) {
-
-				
-			}
-
-			public void setFocus() {
-
-				
-			}
-
-			public void standbyStateChanged(boolean standby) {
-
-				
-			}
-
-			public Object getAdapter(Class adapter) {
-				return null;
-			}}};
-	}
-
-	public void dispose() {
-		
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetPage.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetPage.java
deleted file mode 100644
index 618508c..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetPage.java
+++ /dev/null
@@ -1,219 +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.dynamic;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.dialogs.IWorkingSetPage;
-
-/**
- * @since 3.1
- */
-public class DynamicWorkingSetPage implements IWorkingSetPage {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.dialogs.IWorkingSetPage#finish()
-	 */
-	public void finish() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.dialogs.IWorkingSetPage#getSelection()
-	 */
-	public IWorkingSet getSelection() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.dialogs.IWorkingSetPage#setSelection(org.eclipse.ui.IWorkingSet)
-	 */
-	public void setSelection(IWorkingSet workingSet) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#canFlipToNextPage()
-	 */
-	public boolean canFlipToNextPage() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#getName()
-	 */
-	public String getName() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#getNextPage()
-	 */
-	public IWizardPage getNextPage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#getPreviousPage()
-	 */
-	public IWizardPage getPreviousPage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#getWizard()
-	 */
-	public IWizard getWizard() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#isPageComplete()
-	 */
-	public boolean isPageComplete() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#setPreviousPage(org.eclipse.jface.wizard.IWizardPage)
-	 */
-	public void setPreviousPage(IWizardPage page) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.wizard.IWizardPage#setWizard(org.eclipse.jface.wizard.IWizard)
-	 */
-	public void setWizard(IWizard newWizard) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#dispose()
-	 */
-	public void dispose() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getControl()
-	 */
-	public Control getControl() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getDescription()
-	 */
-	public String getDescription() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getErrorMessage()
-	 */
-	public String getErrorMessage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getImage()
-	 */
-	public Image getImage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getMessage()
-	 */
-	public String getMessage() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#getTitle()
-	 */
-	public String getTitle() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#performHelp()
-	 */
-	public void performHelp() {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setDescription(java.lang.String)
-	 */
-	public void setDescription(String description) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-	 */
-	public void setImageDescriptor(ImageDescriptor image) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setTitle(java.lang.String)
-	 */
-	public void setTitle(String title) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.IDialogPage#setVisible(boolean)
-	 */
-	public void setVisible(boolean visible) {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetUpdater.java b/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetUpdater.java
deleted file mode 100644
index b3c3f67..0000000
--- a/tests/org.eclipse.ui.tests/data/dynamic_classes/workingSet/org/eclipse/ui/dynamic/DynamicWorkingSetUpdater.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.dynamic;
-
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.IWorkingSetUpdater;
-
-/**
- * @since 3.1
- */
-public class DynamicWorkingSetUpdater implements IWorkingSetUpdater {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkingSetUpdater#add(org.eclipse.ui.IWorkingSet)
-	 */
-	public void add(IWorkingSet workingSet) {
-		// TODO Auto-generated method stub
-
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkingSetUpdater#remove(org.eclipse.ui.IWorkingSet)
-	 */
-	public boolean remove(IWorkingSet workingSet) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkingSetUpdater#contains(org.eclipse.ui.IWorkingSet)
-	 */
-	public boolean contains(IWorkingSet workingSet) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IWorkingSetUpdater#dispose()
-	 */
-	public void dispose() {
-		// TODO Auto-generated method stub
-
-	}
-
-}
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorConfigurationsExtensionDynamicTest/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorConfigurationsExtensionDynamicTest/plugin.xml
deleted file mode 100644
index 1ce41dd..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorConfigurationsExtensionDynamicTest/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorScopesExtensionDynamicTest/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorScopesExtensionDynamicTest/plugin.xml
deleted file mode 100644
index 6a3e564..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.acceleratorScopesExtensionDynamicTest/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.actionDefinitionsExtensionDynamicTest/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.actionDefinitionsExtensionDynamicTest/plugin.xml
deleted file mode 100644
index abc488e..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.actionDefinitionsExtensionDynamicTest/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.bindingsExtensionDynamicTest/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.bindingsExtensionDynamicTest/plugin.xml
deleted file mode 100644
index eeb7e63..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.bindingsExtensionDynamicTest/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/commands.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/commands.jar
deleted file mode 100644
index 0d20fd2..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/commands.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/plugin.xml
deleted file mode 100644
index a4ab962..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.commandsExtensionDynamicTest/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.contextsExtensionDynamicTest/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.contextsExtensionDynamicTest/plugin.xml
deleted file mode 100644
index 3f96ce0..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.contextsExtensionDynamicTest/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.tar b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.tar
deleted file mode 100644
index e8e3538..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.tar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.zip b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.zip
deleted file mode 100644
index 34282cd..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ArchiveTestSource.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.tar b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.tar
deleted file mode 100644
index ebb1ec5..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.tar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.zip b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.zip
deleted file mode 100644
index 083f47e..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/EmptyFolderInArchive.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.tar b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.tar
deleted file mode 100644
index 01700cc..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.tar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.zip b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.zip
deleted file mode 100644
index 319f2d3..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/FileAtRootTest.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ProjectsArchive.zip b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ProjectsArchive.zip
deleted file mode 100644
index 4dd2613..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/ProjectsArchive.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.tar b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.tar
deleted file mode 100644
index 3bb30dc..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.tar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.zip b/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.zip
deleted file mode 100644
index d0f31ea..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.datatransferArchives/helloworld.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/handlers.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/handlers.jar
deleted file mode 100644
index 0a955b5..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/handlers.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/plugin.xml
deleted file mode 100644
index 7a548b7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.handlersExtensionDynamicTest/plugin.xml
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/WhatDoesItDo.txt b/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/WhatDoesItDo.txt
deleted file mode 100644
index 0ad1ea9..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/WhatDoesItDo.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-This test should add a new action called "A New Action from ActionSet1"
-to the File menu item.
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/plugin.xml
deleted file mode 100644
index dc20636..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newActionSet1/plugin.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newActionSet1"
-   name="newActionSet1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="newActionSet1.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         point="org.eclipse.ui.actionSets" id="testDynamicActionSetAddition">
-      <actionSet
-            label="A New ActionSet from ActionSet1"
-            description="This is an actionset added by a dynamic plug-in"
-            visible="true"
-            id="org.eclipse.newActionSet1.newActionSet1">
-         <action
-               label="A New Action from ActionSet1"
-               tooltip="This is the tooltip"
-               class="org.eclipse.jdt.internal.ui.actions.OpenTypeInHierarchyAction"
-               menubarPath="file/new.ext"
-               id="newAction1">
-         </action>
-      </actionSet>
-      <actionSet
-            id="org.eclipse.newActionSet1.newActionSet2"
-            label="Another New Action Set From ActionSet 1"
-            visible="true">
-         <action
-               class="some.bogus.class"
-               icon="anything.gif"
-               id="org.eclipse.ui.tests.action1"
-               label="Another New Action From ActionSet1"
-               menubarPath="menu1/sep1"
-               style="push"
-               toolbarPath="newActionSet1"/>
-         <menu
-               id="menu1"
-               label="org.eclipse.ui.tests.menu1">
-            <separator name="sep1"/>
-         </menu>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSetPartAssociations">
-      <actionSetPartAssociation targetID="org.eclipse.newActionSet1.newActionSet1">
-         <part id="org.eclipse.ui.tests.part1"/>
-      </actionSetPartAssociation>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/plugin.xml
deleted file mode 100644
index cd01e2e..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newActivitySupport1/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newActivitySupport1"
-   name="newActivitySupport1 Plug-in"
-   version="1.0.0">
-   
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-   <extension
-         id="testNewActivitySupportAddition"
-         point="org.eclipse.ui.activitySupport">
-      <categoryImageBinding
-            icon="anything.gif"
-            id="org.eclipse.category2"/>
-      <activityImageBinding
-            icon="anything.gif"
-            id="org.eclipse.activity2"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/browser.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/browser.jar
deleted file mode 100644
index 6eedc20..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/browser.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/plugin.xml
deleted file mode 100644
index 83d2d61..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newBrowser1/plugin.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newBrowser1"
-   name="newBrowser1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="browser.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicBrowserAddition"
-         point="org.eclipse.ui.browserSupport">
-      <support
-            class="org.eclipse.ui.dynamic.DynamicBrowserSupport"
-            default="true"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/decorator.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/decorator.jar
deleted file mode 100644
index 133c230..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/decorator.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/plugin.xml
deleted file mode 100644
index 8f52af0..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDecorator1/plugin.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newDecorator1"
-   name="newDecorator1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="decorator.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicDecoratorAddition"
-         point="org.eclipse.ui.decorators">
-      <decorator
-            lightweight="false"
-            label="full1"
-            class="org.eclipse.ui.dynamic.DynamicLabelDecorator"
-            state="true"
-            id="fullDecorator1">
-		<enablement>
-			<objectClass name="java.lang.Object"/>
-        </enablement> 
-      </decorator>
-      <decorator
-            lightweight="true"
-            label="light1"
-            icon="anything.gif"
-            state="true"
-            location="TOP_LEFT"
-            id="lightDecorator1">
-         <enablement>
-            <objectClass name="java.lang.Object"/>
-         </enablement>
-      </decorator> 
-      
-      <decorator
-            lightweight="true"
-            label="light2"
-			class="org.eclipse.ui.dynamic.DynamicLightweightLabelDecorator"
-            state="true"
-            location="TOP_LEFT"
-            id="lightDecorator2">
-         <enablement>
-            <objectClass name="java.lang.Object"/>
-         </enablement>
-      </decorator>                 
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.classpath b/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.classpath
deleted file mode 100644
index 6fd978b..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry exported="true" kind="lib" path="menus.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.project b/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.project
deleted file mode 100644
index fc93e00..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.newDynamicMenuContribution</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/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5476823..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Thu Sep 25 13:01:37 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/META-INF/MANIFEST.MF
deleted file mode 100644
index f6e5632..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: NewDynamicMenuContribution Plug-in
-Bundle-SymbolicName: org.eclipse.newDynamicMenuContribution;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ClassPath: menus.jar
-Require-Bundle: org.eclipse.ui;bundle-version="3.5.0"
-Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/build.properties b/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/build.properties
deleted file mode 100644
index 9317c6e..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/build.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-###############################################################################
-# Copyright (c) 2008 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-output.. = bin/
-bin.includes = META-INF/,\
-               menus.jar,\
-               plugin.xml
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/menus.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/menus.jar
deleted file mode 100644
index 42475fe..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/menus.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/plugin.xml
deleted file mode 100644
index 1ad617f..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newDynamicMenuContribution/plugin.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         id="menu.dynamic.contribution"
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="popup:org.eclipse.newDynamicMenuContribution">
-         <dynamic
-               class="org.eclipse.ui.dynamic.menus.NonInterestingContributionItem"
-               id="org.eclipse.newDynamicMenuContribution.dynamic1">
-         </dynamic>
-      </menuContribution>
-   </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/editor.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/editor.jar
deleted file mode 100644
index 77ed345..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/editor.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/plugin.xml
deleted file mode 100644
index 6792933..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newEditor1/plugin.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newEditor1"
-   name="newEditor1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="editor.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicEditorAddition"
-         point="org.eclipse.ui.editors">
-      <editor
-            icon="anything.gif"
-            class="org.eclipse.ui.dynamic.DynamicEditor"
-            default="false"
-            name="org.eclipse.ui.tests.editor1"
-            id="org.eclipse.newEditor1.newEditor1"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newEncoding1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newEncoding1/plugin.xml
deleted file mode 100644
index 0e35269..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newEncoding1/plugin.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newEncoding1"
-   name="newEncoding1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicEncodingAddition"
-         point="org.eclipse.ui.encodings">
-      <encoding name="Cp1257"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/help.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/help.jar
deleted file mode 100644
index 4d8eeb7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/help.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/plugin.xml
deleted file mode 100644
index aea8d4b..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newHelpSupport1/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newHelpSupport1"
-   name="newHelpSupport1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="help.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicHelpSupportAddition"
-         point="org.eclipse.ui.helpSupport">
-      <config class="org.eclipse.ui.dynamic.DynamicHelpSupport"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/intro.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/intro.jar
deleted file mode 100644
index f090f65..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/intro.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/plugin.xml
deleted file mode 100644
index be68ebc..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newIntro1/plugin.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newIntro1"
-   name="newIntro1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="intro.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicIntroAddition"
-         point="org.eclipse.ui.intro">
-      <intro
-            class="org.eclipse.ui.dynamic.DynamicIntro"
-            id="org.eclipse.newIntro1.newIntro1"/>
-      <introProductBinding
-            introId="org.eclipse.newIntro1.newIntro1"
-            productId="org.eclipse.ui.tests.someProduct"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.classpath b/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.classpath
deleted file mode 100644
index 6fd978b..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry exported="true" kind="lib" path="menus.jar"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.project b/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.project
deleted file mode 100644
index 95bb14e..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.newInvalidMenuContribution1</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/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5476823..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-#Thu Sep 25 13:01:37 EDT 2008
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.jdt.core.compiler.compliance=1.4
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/META-INF/MANIFEST.MF
deleted file mode 100644
index 428ac0e..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: NewInvalidMenuContribution1 Plug-in
-Bundle-SymbolicName: org.eclipse.newInvalidMenuContribution1;singleton:=true
-Bundle-Version: 1.0.0
-Bundle-RequiredExecutionEnvironment: J2SE-1.4
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.ui;bundle-version="3.5.0"
-Bundle-ActivationPolicy: lazy
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/build.properties b/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/build.properties
deleted file mode 100644
index 52a8a71..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/build.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-output.. = bin/
-bin.includes = META-INF/,\
-               plugin.xml
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/plugin.xml
deleted file mode 100644
index f1d2613..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newInvalidMenuContribution1/plugin.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin>
-   <extension
-         id="menu.invalid.menu.contribution"
-         point="org.eclipse.ui.menus">
-      <!-- The entry below purposely references an unknown command id. This is for
-           testing that invalid commands will not prevent the workbench from
-           starting up, see bug 275301 for details. --> 
-      <menuContribution
-            locationURI="menu:file?after=additions">
-         <command
-               commandId="test275301.unknownCommand"
-               label="label"
-               style="push">
-         </command>
-      </menuContribution>
-      <!-- End of bug 275301 entry. -->
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newKeyword1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newKeyword1/plugin.xml
deleted file mode 100644
index 27c33b4..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newKeyword1/plugin.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newKeyword1"
-   name="newKeyword1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicKeywordAddition"
-         point="org.eclipse.ui.keywords">
-      <keyword
-            label="dynamicKeyword1"
-            id="dynamicKeyword1"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/markerSupport.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/markerSupport.jar
deleted file mode 100644
index f95a6eb..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/markerSupport.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/plugin.xml
deleted file mode 100644
index 35a77c3..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMarkerSupport/plugin.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.2"?>
-<plugin
-   id="newMarkerSupport"
-   name="newProblemFilter Plug-in"
-   version="1.0.0">
-   <requires>
-      <import plugin="org.eclipse.ui.ide"/>
-   </requires>
-    <runtime>
-      <library name="markerSupport.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <extension
-         id="dynamicTestMarker"
-         name="Dynamic Test Marker"
-         point="org.eclipse.core.resources.markers">
-      <super type="org.eclipse.core.resources.problemmarker"/>
-   </extension>
-   <extension
-   		 id="testDynamicFilterAddition"
-         point="org.eclipse.ui.ide.markerSupport">
-    <problemFilter
-            enabled="true"
-            id="filter1"
-            name="Filter 1"
-            onDescription="method"/>
-      <problemFilter
-            id="filter2"
-            name="Filter 2"
-            onDescription="!method"/>
-      <problemFilter
-            enabled="true"
-            id="filter3"
-            name="Filter 3">
-         <selectedType markerId="org.eclipse.ui.tests.dynamicTestMarker"/>
-      </problemFilter>
-      <markerCategory name="dynamicCategory">
-         <markerTypeReference id="org.eclipse.ui.tests.dynamicTestMarker"/>
-      </markerCategory>
-      <markerGrouping
-            id="dynamic"
-            name="Dynamic Test Grouping">
-      </markerGrouping>
-  
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/build.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/build.xml
deleted file mode 100644
index 9227962..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/build.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- ====================================================================== 
-     Jun 27, 2005 10:23:13 AM                                                        
-
-     project    
-     description
-                   
-     pwebster                                                                
-     ====================================================================== -->
-<project name="project" default="default">
-    <description>
-            description
-    </description>
-
-    <!-- ================================= 
-          target: default              
-         ================================= -->
-    <target name="default" depends="depends" description="--> description">
-        
-    </target>
-
-    <!-- - - - - - - - - - - - - - - - - - 
-          target: depends                      
-         - - - - - - - - - - - - - - - - - -->
-    <target name="depends">
-    </target>
-
-</project>
-
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test01.txt b/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test01.txt
deleted file mode 100644
index d533d7f..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test01.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-test file 01
-
-test for MultiEditor
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test02.txt b/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test02.txt
deleted file mode 100644
index 411a113..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test02.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-test file 02
-
-test for MultiEditor
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test03.etest b/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test03.etest
deleted file mode 100644
index 9f88a6d..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test03.etest
+++ /dev/null
@@ -1,3 +0,0 @@
-test file 03
-
-test for MultiEditor
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test04.properties b/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test04.properties
deleted file mode 100644
index a53b29b..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newMultiEditor/test04.properties
+++ /dev/null
@@ -1,12 +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
-###############################################################################
-org.eclipse.ui.tests.multieditor.good = MultiEditorTest
-org.eclipse.ui.tests.multieditor.bad = TiledEditor
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/newWizard.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/newWizard.jar
deleted file mode 100644
index 915a729..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/newWizard.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/plugin.xml
deleted file mode 100644
index 1fd5706..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newNewWizard1/plugin.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newNewWizard1"
-   name="newNewWizard1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="newWizard.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicNewWizardAddition"
-         point="org.eclipse.ui.newWizards">
-      <category
-            name="Category1"
-            id="org.eclipse.newNewWizard1.category"/>
-      <wizard
-            helpHref="foobar"
-            icon="anything.gif"
-            class="org.eclipse.ui.tests.NewWizard1"
-            category="org.eclipse.newNewWizard1.category"
-            descriptionImage="anything.gif"
-            name="NewWizard1"
-            id="org.eclipse.newNewWizard1.newNewWizard1"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/oc.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/oc.jar
deleted file mode 100644
index ecabc66..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/oc.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/plugin.xml
deleted file mode 100644
index 7919859..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newOC1/plugin.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newOC1"
-   name="newOC1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="oc.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicOCAddition"
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            adaptable="false"
-            objectClass="java.util.Random"
-            id="org.eclipse.newOC1">
-         <action
-               label="org.eclipse.ui.tests.action1"
-               class="org.eclipse.ui.dynamic.MockObjectActionDelegate"
-               id="org.eclipse.newOC1"/>
-      </objectContribution>
-      <viewerContribution
-            targetID="#OC"
-            id="org.eclipse.newOC2">
-         <action
-               label="org.eclipse.ui.tests.action1"
-               class="org.eclipse.ui.dynamici.MockViewActionDelegate"
-               menubarPath="oc"
-               id="org.eclipse.newOC2"/>
-      </viewerContribution>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/perspective.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/perspective.jar
deleted file mode 100644
index 59884a6..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/perspective.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/plugin.xml
deleted file mode 100644
index 860df50..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspective1/plugin.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newPerspective1"
-   name="NewPerspective One Plug-in"
-   version="1.0.0"
-   provider-name="">
-
-   <runtime>
-      <library name="perspective.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-
-   <extension
-         point="org.eclipse.ui.perspectives" id="testDynamicPerspectiveAddition">
-      <perspective
-            name="NewPerspective1"
-            class="org.eclipse.ui.dynamic.DynamicPerspective"
-            id="org.eclipse.newPerspective1.newPerspective1">
-      </perspective>
-   </extension>
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/plugin.xml
deleted file mode 100644
index af75663..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPerspectiveExtension1/plugin.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newPerspectiveExtension1"
-   name="newPerspectiveExtension1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.ui.tests"/>
-   </requires>
-   <extension
-         point="org.eclipse.ui.perspectiveExtensions">
-      <perspectiveExtension targetID="org.eclipse.ui.resourcePerspective">
-         <actionSet id="org.eclipse.ui.tests.actionSet1"/>
-         <perspectiveShortcut id="org.eclipse.ui.resourcePerspective"/>
-         <newWizardShortcut id="some.new.wizard"/>
-         <view
-               visible="true"
-               ratio=".25"
-               relative="org.eclipse.ui.editorss"
-               relationship="left"
-               id="org.eclipse.ui.tests.api.MockViewPart"/>
-         <showInPart id="org.eclipse.ui.tests.api.MockViewPart"/>
-      </perspectiveExtension>
-   </extension>
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <wizard
-            icon="anything.gif"
-            class="org.eclipse.ui.tests.NewWizard1"
-            name="Some New Wizard"
-            id="some.new.wizard"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/plugin.xml
deleted file mode 100644
index 165f0ae..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/plugin.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newPreferencePage1"
-   name="NewPreferencePage One Plug-in"
-   version="1.0.0"
-   provider-name="">
-
-   <runtime>
-      <library name="preferencePage.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicPreferencePageAddition"
-         point="org.eclipse.ui.preferencePages">
-      <page
-            class="org.eclipse.ui.dynamic.DynamicPreferencePage"
-            name="dynamic.parentPage"
-            id="dynamic.parentPage"/>
-      <page
-            class="org.eclipse.ui.dynamic.DynamicPreferencePage"
-            category="dynamic.parentPage"
-            name="dynamic.childPage"
-            id="dynamic.childPage"/>
-   </extension>
-
-
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/preferencePage.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/preferencePage.jar
deleted file mode 100644
index 6673a52..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPreferencePage1/preferencePage.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/plugin.xml
deleted file mode 100644
index 50dc3d3..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/plugin.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newPropertyPage1"
-   name="NewPropertyPage One Plug-in"
-   version="1.0.0"
-   provider-name="">
-
-   <runtime>
-      <library name="propertyPage.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicPropertyPageAddition"
-         point="org.eclipse.ui.propertyPages">
-      <page
-            objectClass="org.eclipse.ui.tests.dynamicplugins.DynamicTestType"
-            class="org.eclipse.ui.dynamic.DynamicPropertyPage"
-            name="org.eclipse.ui.tests.page1"
-            id="dynamicPropertyPage1"/>
-   </extension>
-
-
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/propertyPage.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/propertyPage.jar
deleted file mode 100644
index 5104721..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newPropertyPage1/propertyPage.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/plugin.xml
deleted file mode 100644
index d801cc8..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newStartup1"
-   name="newStartup1 Plug-in"
-   version="1.0.0">
-
-   <runtime>
-      <library name="startup.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-   <extension
-         id="testDynamicStartupAddition"
-         point="org.eclipse.ui.startup">
-      <startup class="org.eclipse.ui.dynamic.DynamicStartup"/>
-   </extension>
- 
-
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/startup.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/startup.jar
deleted file mode 100644
index 810ebe8..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newStartup1/startup.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/plugin.xml
deleted file mode 100644
index 347c7c3..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/plugin.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newStatusHandler1"
-   name="New StatusHandler One Plug-In"
-   version="3.0.0"
-   provider-name="">
-
-   <runtime>
-      <library name="statusHandler.jar">
-         <export
-               name="*">
-         </export>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-   <extension
-         id="testDynamicStatusHandlerAddition"
-         point="org.eclipse.ui.statusHandlers">
-      <statusHandler
-            class="org.eclipse.ui.dynamic.DynamicStatusHandler"
-            id="org.eclipse.newStatusHandler1.newStatusHandler1">
-      </statusHandler>
-      <statusHandlerProductBinding
-            handlerId="org.eclipse.newStatusHandler1.newStatusHandler1"
-            productId="org.eclipse.sdk.ide">
-      </statusHandlerProductBinding>
-      <statusHandler
-            class="org.eclipse.ui.dynamic.DynamicStatusHandler"
-            id="org.eclipse.newStatusHandler1.newStatusHandler2">
-      </statusHandler>
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/statusHandler.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/statusHandler.jar
deleted file mode 100644
index 81910c4..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newStatusHandler1/statusHandler.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/plugin.xml
deleted file mode 100644
index 9b52170..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/plugin.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newView1"
-   name="New View One Plug-In"
-   version="3.0.0"
-   provider-name="">
-
-   <runtime>
-      <library name="view.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-   </requires>
-
-   <extension
-         point="org.eclipse.ui.views" id="testDynamicViewAddition">
-      <view
-            class="org.eclipse.ui.dynamic.DynamicView"
-            icon="anything.gif"
-            category="org.eclipse.newView1.newCategory1"
-            name="NewView1"
-            id="org.eclipse.newView1.newView1">
-     </view>
-      <category
-            name="NewCategory1"
-            id="org.eclipse.newView1.newCategory1"/>
-      <stickyView
-            closeable="false"
-            moveable="false"
-            location="BOTTOM"
-            id="org.eclipse.newView1.newView1"/>
-            
-            
-     <view
-            class="org.eclipse.ui.dynamic.DynamicView"
-            icon="anything.gif"
-            name="NewView2"
-            id="org.eclipse.newView1.newView2">
-     </view>
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/view.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/view.jar
deleted file mode 100644
index d26a999..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newView1/view.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/anything.gif b/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/anything.gif
deleted file mode 100755
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/plugin.xml b/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/plugin.xml
deleted file mode 100755
index bb287e6..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/plugin.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="newWorkingSet1"
-   name="New WorkingSet One Plug-In"
-   version="3.0.0"
-   provider-name="">
-
-   <runtime>
-      <library name="workingSet.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.eclipse.ui"/>
-      <import plugin="org.eclipse.core.runtime"/>
-   </requires>
-
-   <extension
-         point="org.eclipse.ui.workingSets"
-         id="testDynamicWorkingSetAddition1">
-      <workingSet
-            icon="icons/anything.gif"
-            id="org.eclipse.newWorkingSet1.WorkingSet1"
-            name="Dynamic Working Set 1"
-            pageClass="org.eclipse.ui.dynamic.DynamicWorkingSetPage"
-            updaterClass="org.eclipse.ui.dynamic.DynamicWorkingSetUpdater"
-            elementAdapterClass="org.eclipse.ui.dynamic.DynamicWorkingSetElementAdapter"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.workingSets"
-         id="testDynamicWorkingSetAddition2">
-      <workingSet
-            icon="icons/anything.gif"
-            id="org.eclipse.newWorkingSet1.WorkingSet2"
-            name="Dynamic Working Set 2"
-            pageClass="org.eclipse.ui.dynamic.DynamicWorkingSetPage"
-            updaterClass="org.eclipse.ui.dynamic.DynamicWorkingSetUpdater"
-            elementAdapterClass="org.eclipse.ui/org.eclipse.ui.BasicWorkingSetElementAdapter:org.eclipse.core.resources.IResource;adapt=true"/>
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/workingSet.jar b/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/workingSet.jar
deleted file mode 100644
index 425181a..0000000
--- a/tests/org.eclipse.ui.tests/data/org.eclipse.newWorkingSet1/workingSet.jar
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/workspaces/editorSessionTests.zip b/tests/org.eclipse.ui.tests/data/workspaces/editorSessionTests.zip
deleted file mode 100644
index 0523523..0000000
--- a/tests/org.eclipse.ui.tests/data/workspaces/editorSessionTests.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/workspaces/importExistingFromDirTest.zip b/tests/org.eclipse.ui.tests/data/workspaces/importExistingFromDirTest.zip
deleted file mode 100644
index e8b3446..0000000
--- a/tests/org.eclipse.ui.tests/data/workspaces/importExistingFromDirTest.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/workspaces/introSessionTests.zip b/tests/org.eclipse.ui.tests/data/workspaces/introSessionTests.zip
deleted file mode 100644
index 0523523..0000000
--- a/tests/org.eclipse.ui.tests/data/workspaces/introSessionTests.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/data/workspaces/themeSessionTests.zip b/tests/org.eclipse.ui.tests/data/workspaces/themeSessionTests.zip
deleted file mode 100644
index f2e9c6b..0000000
--- a/tests/org.eclipse.ui.tests/data/workspaces/themeSessionTests.zip
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/doc/Introduction.html b/tests/org.eclipse.ui.tests/doc/Introduction.html
deleted file mode 100644
index 0440e61..0000000
--- a/tests/org.eclipse.ui.tests/doc/Introduction.html
+++ /dev/null
@@ -1,133 +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="Build">
-   <meta name="GENERATOR" content="Mozilla/4.5 [en] (WinNT; I) [Netscape]">
-   <title>The Workbench Test Framework</title>
-</head>
-<body>
-
-<h2>
-The Workbench Test Suite</h2>
-Dave Springgay
-<br>September 2001
-<h3>
-In Brief</h3>
-This document describes the UI Test Suite.&nbsp; This test suite is available
-from <tt>org.eclipse.ui.tests</tt> in the desktop repository and consist
-of a series of non-interactive sniff tests which are run after a build,
-plus a set of interactive tests which require human feedback.&nbsp; You
-can run any of these from the JUnit Eclipse Plugin Tests launcher or from
-the command line.
-<p>The <tt>org.eclipse.ui.tests</tt> project is organized in hierarchical
-fashion.&nbsp; The root is <tt>UiTestSuite</tt> in <tt>org.eclipse.ui.tests</tt>.&nbsp;
-This test suite contains a collection of "specialized suites" which test
-specific areas of functionality or components in the workbench.&nbsp; Currently
-there is only one suite, <tt>ApiTestSuite
-</tt>in<tt> org.eclipse.ui.tests.api</tt>,
-which contains a number of test cases which deal specifically with workbench
-API.&nbsp; A <tt>uiTest</tt> extension is declared for each suite so that
-you can run every test in the workbench or a subset of the tests.
-<p>To run the UiTestSuite from within Eclipse just select UiTestSuite.java
-in the navigator and invoke Run > JUnit Eclipse Plugin Tests.&nbsp; The
-results of the test suite will appear in the JUnit view.
-<h3>
-Automated Sniff Tests</h3>
-The following process is used to run the workbench UI sniff tests after
-a build.
-<p>To create the sniff test files ..
-<ol>
-<li>
-Export the 4 test projects into a zip file.&nbsp; The options in the export
-wizard should be set to "Compress the contents of the file" and not "Create
-directory Structure".</li>
-</ol>
-To run the sniff tests in a fresh build of Eclipse ..
-<ol>
-<li>
-Unzip the zip file in the Eclipse plugins directory.</li>
-
-<li>
-On Windows copy uiSniff.bat in the org.eclipse.ui.tests plugin directory
-to the Eclipse home directory.&nbsp; On Linux copy uiSniff instead.</li>
-
-<li>
-Run uiSniff.bat ( or uiSniff ).&nbsp; Redirect the results into a file.</li>
-</ol>
-
-<h3>
-Test Patterns</h3>
-In our own testing we have discovered a number of common test patterns.&nbsp;
-In order to encourage a consistent approach for testing they are published
-below.
-<p><b>Simple Setters, Getters and Commands</b>
-<p>Scenario: You want to test setters, commands and getters on an interface.
-<p>Method: Call the setter or command which affects the object state.&nbsp;
-Call the getter to verify that state.
-<p><b>Top Down Coverage</b>
-<p>Scenario: You want to demonstrate thorough coverage of a component.
-<p>Method: Start at the object root of the instance hierarchy and test
-every class downwards to the leaf classes.&nbsp; Stop when you encounter
-a layer which already has JUnit test cases.&nbsp; For instance, in the
-workbench UI don't test JFace, SWT, or core.&nbsp; They should have their
-own test suites and are assumed to work.
-<p><b>Superclass Subclass</b>
-<p>Scenario: You want to test D, which is a subclass of B.
-<p>Method: Implement a test case for B called BTest.&nbsp; Then create
-a subclass of BTest called DTest which tests D.&nbsp; If B is an abstract
-class use a factory method in BTest to create the test object.
-<p><b>Listener Source</b>
-<p>Scenario: You want to test S, a class which fires events when a particular
-situation occurs.
-<p>Method: Implement a listener for S which records the reception of events.
-Then write a test class for S called STest which does something which should
-cause those events to fire.&nbsp; Verify the reception of events afterwards.
-<p><b>Multiple Session</b>
-<p>Scenario: You want to test the persistance of state from one session
-to the next.
-<p>Method: You need to create two test suites.&nbsp; One test suite will
-set up the state.&nbsp; The other will verify the state.&nbsp; Run them
-sequentially in two separate processes.
-<p><b>Global State</b>
-<p>Scenario: In Eclipse the workbench is a global object.&nbsp; Unfortunately,
-this means that one test case may modify that state and affect the outcome
-of another unrelated test case.&nbsp; How can you avoid this problem?
-<p>Method: If the test case modifies the state of a window or something
-in the window you should create a new window as part of the setUp for the
-test case.&nbsp; Run the test code within that window and then close the
-test window in the tearDown method.&nbsp; The modified state will be discarded
-when the window is closed
-<p><b>Lifecycle</b>
-<p>Scenario: Within the workbench there are various interfaces, such as
-IViewPart, which are defined as API and implemented by plugin code.&nbsp;
-There is no need to test the implementation of the interface, but it is
-good to test the lifecycle as implemented by objects which call the interface.
-<p>Method: Define a class X which implements the interface and records
-the invocation of various methods.&nbsp; Create a scenario where this class
-is loaded and should receive events.&nbsp; Afterwards, test that those
-methods were called.
-<p><b>Piercing the Encapsulation</b>
-<p>Scenario: To test the behavior of commands which modify the state of
-the object when there are no public interfaces to query that state.
-<p>Method: If possible, cast the interface to a concrete class with additional
-public methods.&nbsp; For instance, in the workbench the underlying structure
-for IWorkbench is exposed in Workbench.&nbsp; Given a Workbench object,
-you can get the menu, toolbar, etc, and interact directly with the actions
-to verify their state or invoke them directly.&nbsp; This is also a useful
-way to simulate action invocation from the UI.
-<p><b>Mock Objects</b>
-<p>Scenario: To test the implementation of an interface which instantiates
-an extension.&nbsp; For instance, in the test case for IWorkbenchPage we
-need to open views and editors.
-<p>Method: If we reference views and editors which exist within the Workbench
-UI Standard Components project the test case is vulnerable to change in
-those components.&nbsp; In this case we're not testing the components,
-we're testing IWorkbenchPage, so we implemented some light weight mock
-views and editors which do nothing more than record their own creation
-and lifecycle.
-<br>&nbsp;
-<br>&nbsp;
-<br>&nbsp;
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/doc/JUnitPractices.html b/tests/org.eclipse.ui.tests/doc/JUnitPractices.html
deleted file mode 100644
index 16e0b05..0000000
--- a/tests/org.eclipse.ui.tests/doc/JUnitPractices.html
+++ /dev/null
@@ -1,118 +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="Build">
-   <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
-   <title>The Workbench Test Framework</title>
-</head>
-<body>
-
-<h3>
-Plugin Test Practices</h3>
-In our own testing we have discovered a number of common test patterns.&nbsp;
-In order to encourage a consistent approach for testing they are published
-below.
-<p><b>Setters, Getters and Commands</b>
-<p>Scenario: You want to test setters, getters, and commands in an interface.
-<p>Method: Call the setter or command which affects the object state.&nbsp;
-Call the getter to verify that state.&nbsp; If you can't see this state
-see to "Piercing an Interface".
-<p><b>Subclass Superclass</b>
-<p>Scenario: You want to test D, which is a subclass of B.
-<p>Method: Implement a test case for B called BTest.&nbsp; Then create
-a subclass of BTest called DTest which tests D the additional methods on
-D.&nbsp; Add a factory method to BTest to create any required test objects
-which may be specific to the test case and override it in DTest.&nbsp;
-When this approach is taken you inherit all of the BTest methods within
-the subclass DTest.
-<p><b>Event Notification</b>
-<p>Scenario: You want to test Source, a class which fires events when a
-particular situation occurs.
-<p>Method: Implement a listener for Source which can record the reception
-of events. Then write a test class for Source called SourceTest which does
-something which should cause those events to fire.&nbsp; Verify the reception
-of events afterwards.
-<p>Additional Tips: The CallHistory class in org.eclipse.ui.tests.util can
-be used to record the methods invoked in a target object.&nbsp; If the
-listener can be added then test the removal of the listener also.&nbsp;
-Make sure that events are not received after the listener has been removed.
-<p><b>Avoiding Global State</b>
-<p>Scenario: In Eclipse the workbench is a global object.&nbsp; Unfortunately,
-this means that one test case may modify that state of the workbench and
-affect the outcome of other unrelated test cases.&nbsp; How can you avoid
-this problem?
-<p>Method: If the test case modifies the state of a window or something
-in the window you should create a new window as part of the setUp for the
-test case.&nbsp; Run the test code within that window and then close the
-test window in the tearDown method.&nbsp; The modified state will be discarded
-when the window is closed.
-<p>Additional Tips: The UITestCase class in org.eclipse.ui.tests.util can
-be used as a superclass for your test case.&nbsp; It provides useful methods
-for the creation of new windows, pages, etc, and their disposal.
-<p><b>Piercing the Encapsulation</b>
-<p>Scenario: To test the behavior of commands which modify the state of
-the object when there are no public interfaces to query that state.
-<p>Method: If possible, cast the interface to a concrete class with additional
-public methods.&nbsp; For instance, in the workbench the underlying structure
-for IWorkbench is exposed in Workbench.&nbsp; Given a Workbench object,
-you can get the menu, toolbar, etc, and interact directly with those objects
-to verify their state or invoke them directly.
-<p>Additional Tips: The ActionUtil class in org.eclipse.ui.tests.util can
-be used to invoke actions within a window or menu manager.
-<p><b>Extension Creation</b>
-<p>Scenario: You want to test the creation of an extension.&nbsp; For instance,
-the IWorkbenchPage has a method called openEditor which creates an editor
-extension, and another called showView which creates a view extension.&nbsp;
-How do you test these?
-<p>Method: Obviously we can test these methods by invoking them.&nbsp;
-However, each of them take an editor or view id.&nbsp; Which id's do we
-use?&nbsp; If we reference views and editors which exist within the Workbench
-UI Standard Components project the test case is vulnerable to change in
-those components.&nbsp; But we're not testing those standard components,
-we're actually testing IWorkbenchPage, so it is better to implement some
-light weight mock views and editors which do nothing more than record their
-own creation and lifecycle.
-<p><b>Extension Lifecycle</b>
-<p>Scenario: Within the workbench there are various interfaces, such as
-IViewPart, which are defined as API and implemented by plugin code.&nbsp;
-There is no need to test the implementation of an interface like this if
-you define it and expect others to implement it.&nbsp; However, it is important
-to test the lifecycle of the object as implemented by those objects which
-create and call the interface implementation.
-<p>Method: Define a class X which implements the interface and records
-the invocation of various methods.&nbsp; Create a scenario where this class
-is instantiated and should receive events.&nbsp; Afterwards, test that
-those methods were called.
-<p>Additional Tips: The CallHistory class in org.eclipse.ui.tests.util can
-be used to record the methods invoked in a target object.
-<p><b>Session Persistence</b>
-<p>Scenario: You want to test the persistence of state from one session
-to the next.
-<p>Method: You need to create two test cases.&nbsp; One test case will
-set up the state.&nbsp; The other will verify the state.&nbsp; Run them
-sequentially in two separate processes.
-<p><b>Testing Mixins</b>
-<p>Scenario: Within the workbench there are many classes which implement
-a particular interface.&nbsp; Given the responsability defined by the class
-and the interfaces separately, how do you organize the test cases?
-<p>Method: You may choose to use a one to one rule of thumb.&nbsp; Create
-one test case class for each class or interface in the mixin.&nbsp; This
-hierarchical separation makes it easier to reuse each test case when an
-interface is implemented by more than one class.&nbsp; It also simplifies
-the accounting required to track which test cases have been written.
-<p><b>Where Do I Stop?</b>
-<p>Scenario: The workbench has many layers.&nbsp; If you are a plugin developer
-what are the bounds of the area you should test?
-<p>Method: In general, you should assume that everything you rely upon
-works.&nbsp; If you don't take this approach you will spend endless hours
-testing code written by other people. For instance, in the workbench UI
-we don't test JFace, SWT, or core.&nbsp; They have their own test suites
-and are assumed to work.&nbsp; On the other hand, you should at least write
-tests for every API which you provide to others.&nbsp; In Eclipse we have
-very strong rules for API compatability, and your own test cases allow
-you to change the implementation of API with some confidence.
-<br>&nbsp;
-<br>&nbsp;
-</body>
-</html>
diff --git a/tests/org.eclipse.ui.tests/icons/anything.gif b/tests/org.eclipse.ui.tests/icons/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/binary_co.gif b/tests/org.eclipse.ui.tests/icons/binary_co.gif
deleted file mode 100644
index 23a508e..0000000
--- a/tests/org.eclipse.ui.tests/icons/binary_co.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/dynamic.gif b/tests/org.eclipse.ui.tests/icons/dynamic.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/dynamic.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/editor.gif b/tests/org.eclipse.ui.tests/icons/editor.gif
deleted file mode 100644
index 9bd92bf..0000000
--- a/tests/org.eclipse.ui.tests/icons/editor.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a

diff --git a/tests/org.eclipse.ui.tests/icons/imagetests/anything.gif b/tests/org.eclipse.ui.tests/icons/imagetests/anything.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/imagetests/anything.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/imagetests/binary_co.gif b/tests/org.eclipse.ui.tests/icons/imagetests/binary_co.gif
deleted file mode 100644
index 23a508e..0000000
--- a/tests/org.eclipse.ui.tests/icons/imagetests/binary_co.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/imagetests/dynamic.gif b/tests/org.eclipse.ui.tests/icons/imagetests/dynamic.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/imagetests/dynamic.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/imagetests/editor.gif b/tests/org.eclipse.ui.tests/icons/imagetests/editor.gif
deleted file mode 100644
index 9bd92bf..0000000
--- a/tests/org.eclipse.ui.tests/icons/imagetests/editor.gif
+++ /dev/null
@@ -1 +0,0 @@
-GIF89a

diff --git a/tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart1.gif b/tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart1.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart1.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart2.gif b/tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart2.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/imagetests/mockeditorpart2.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/imagetests/view.gif b/tests/org.eclipse.ui.tests/icons/imagetests/view.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/imagetests/view.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/mockeditorpart1.gif b/tests/org.eclipse.ui.tests/icons/mockeditorpart1.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/mockeditorpart1.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/mockeditorpart2.gif b/tests/org.eclipse.ui.tests/icons/mockeditorpart2.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/mockeditorpart2.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/pack_empty_co.gif b/tests/org.eclipse.ui.tests/icons/pack_empty_co.gif
deleted file mode 100644
index 1ec39a3..0000000
--- a/tests/org.eclipse.ui.tests/icons/pack_empty_co.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/icons/view.gif b/tests/org.eclipse.ui.tests/icons/view.gif
deleted file mode 100644
index efc77a7..0000000
--- a/tests/org.eclipse.ui.tests/icons/view.gif
+++ /dev/null
Binary files differ
diff --git a/tests/org.eclipse.ui.tests/plugin.xml b/tests/org.eclipse.ui.tests/plugin.xml
deleted file mode 100644
index 58eaebb..0000000
--- a/tests/org.eclipse.ui.tests/plugin.xml
+++ /dev/null
@@ -1,4214 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-   <extension-point id="sample" name="sample" schema="schema/sample.exsd"/>  
-   
-<!--Startup testing -->
-   <extension
-         point="org.eclipse.ui.startup">
-      <startup>
-      </startup>
-   </extension>
-   <extension
-         point="org.eclipse.ui.startup">
-      <startup
-            class="org.eclipse.ui.tests.api.StartupClass">
-      </startup>
-   </extension>
-<!-- Utils -->
-   <extension
-         point="org.eclipse.ui.perspectives">
- 
-      <perspective
-            name="UI Test Drag Test Perspective"
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.dnd.DragDropPerspectiveFactory"
-            id="org.eclipse.ui.tests.dnd.dragdrop">
-      </perspective>
-      <perspective
-            name="UI Test Zoom Test Perspective"
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.zoom.ZoomPerspectiveFactory"
-            id="org.eclipse.ui.tests.zoom.ZoomPerspectiveFactory">
-      </perspective>
-      <perspective
-            name="UI Test View Arrangement Perspective"
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.api.ViewPerspective"
-            id="org.eclipse.ui.tests.api.ViewPerspective">
-      </perspective>
-   </extension>
-<!-- Utils End -->
-   <extension
-         point="org.eclipse.ui.perspectives">
-      <perspective
-            name="UI Test Session Perspective"
-            class="org.eclipse.ui.tests.api.SessionPerspective"
-            id="org.eclipse.ui.tests.api.SessionPerspective">
-      </perspective>
-      <perspective
-            class="org.eclipse.ui.tests.api.PerspectiveWithFastView"
-            name="UI Test Perspective with Fast View"
-            id="org.eclipse.ui.tests.fastview_perspective">
-      </perspective>      
-      <perspective
-            class="org.eclipse.ui.tests.api.PerspectiveWithMultiViewPlaceholdersAtTopLevel"
-            name="UI Test Perspective with Multi View Placeholders At Top Level"
-            id="org.eclipse.ui.tests.PerspectiveWithMultiViewPlaceholdersAtTopLevel">
-      </perspective>      
-      <perspective
-            class="org.eclipse.ui.tests.api.PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder"
-            name="UI Test Perspective with Multi View Placeholders In Placeholder Folder"
-            id="org.eclipse.ui.tests.PerspectiveWithMultiViewPlaceholdersInPlaceholderFolder">
-      </perspective>      
-      <perspective
-            class="org.eclipse.ui.tests.api.PerspectiveWithMultiViewPlaceholdersInFolder"
-            name="UI Test Perspective with Multi View Placeholders In Folder"
-            id="org.eclipse.ui.tests.PerspectiveWithMultiViewPlaceholdersInFolder">
-      </perspective>
-      <perspective
-            class="org.eclipse.ui.tests.api.PerspectiveViewsBug88345"
-            id="org.eclipse.ui.tests.api.PerspectiveViewsBug88345"
-            name="UI Test Perspective for closable view"/>  
-       <perspective
-            class="org.eclipse.ui.tests.api.PerspectiveViewsBug120934"
-            id="org.eclipse.ui.tests.api.PerspectiveViewsBug120934"
-            name="UI Test Perspective for presentation NPE"/> 
-      <perspective
-            class="org.eclipse.ui.tests.dnd.StandaloneViewPerspective"
-            id="org.eclipse.ui.tests.dnd.StandaloneViewPerspective"
-            name="Standalone View DnD Perspective"/>         
-      <perspective
-            class="org.eclipse.ui.tests.internal.Bug78470Test$MyPerspective"
-            id="org.eclipse.ui.tests.internal.Bug78470Test.MyPerspective"
-            name="org.eclipse.ui.tests.internal.Bug78470Test.MyPerspective"/>
-      <perspective
-            class="org.eclipse.ui.tests.propertysheet.PropertySheetPerspectiveFactory"
-            id="org.eclipse.ui.tests.propertysheet.PropertySheetPerspectiveFactory"
-            name="UI Test Perspective for Properties view"/>
-      <perspective
-            class="org.eclipse.ui.tests.propertysheet.PropertySheetPerspectiveFactory2"
-            id="org.eclipse.ui.tests.propertysheet.PropertySheetPerspectiveFactory2"
-            name="UI Test Perspective for hidden Properties view instance"/>
-      <perspective
-            class="org.eclipse.ui.tests.propertysheet.PropertySheetPerspectiveFactory3"
-            id="org.eclipse.ui.tests.propertysheet.PropertySheetPerspectiveFactory3"
-            name="Second UI Test Perspective for hidden Properties view instance"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.views">
-
-      <category
-            name="Error handling"
-            id="org.eclipse.ui.tests.errorhandling"/>
-
-      <view
-       		name="ERROR: View that allocates all available graphics handles"
-       		icon="icons\view.gif"
-      		category="org.eclipse.ui.tests.errorhandling"
-       		class="org.eclipse.ui.tests.api.workbenchpart.HeavyResourceView"
-       		id="org.eclipse.ui.tests.api.workbenchpart.HeavyResourceView">
-      </view>
-      
-      <view
-       		name="ERROR: View that throws PartInitException in init"
-       		icon="icons\view.gif"
-      		category="org.eclipse.ui.tests.errorhandling"
-       		class="org.eclipse.ui.tests.api.workbenchpart.ViewWithInitException"
-       		id="org.eclipse.ui.tests.api.workbenchpart.ViewWithInitException">
-      </view>
-
-      <view
-       		name="ERROR: View that throws RuntimeException in init"
-       		icon="icons\view.gif"
-      		category="org.eclipse.ui.tests.errorhandling"
-       		class="org.eclipse.ui.tests.api.workbenchpart.ViewWithInitRuntimeException"
-       		id="org.eclipse.ui.tests.api.workbenchpart.ViewWithInitRuntimeException">
-      </view>
-      <view
-       		name="ERROR: View pointing to invalid class"
-       		category="org.eclipse.ui.tests.errorhandling"
-       		icon="icons\view.gif"
-       		class="org.eclipse.ui.tests.api.workbenchpart.ViewWithMissingClass"
-       		id="org.eclipse.ui.tests.api.workbenchpart.ViewWithMissingClass">
-      </view>
-      <view
-       		name="ERROR: View that throws exception in dispose"
-       		category="org.eclipse.ui.tests.errorhandling"
-       		icon="icons\view.gif"
-       		class="org.eclipse.ui.tests.api.workbenchpart.ViewWithDisposeException"
-       		id="org.eclipse.ui.tests.api.workbenchpart.ViewWithDisposeException">
-      </view>
-      <view
-       		name="ERROR: View that throws exception in createPartControls"
-      		category="org.eclipse.ui.tests.errorhandling"
-       		icon="icons\view.gif"
-       		class="org.eclipse.ui.tests.api.workbenchpart.ViewWithCreateControlsException"
-       		id="org.eclipse.ui.tests.api.workbenchpart.ViewWithCreateControlsException">
-      </view>
-
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.views">
-
-      <view
-       		name="Title Test View"
-       		icon="icons\view.gif"
-       		class="org.eclipse.ui.tests.api.workbenchpart.TitleTestView"
-       		id="org.eclipse.ui.tests.api.TitleTestView">
-      </view>
-
-      <view
-            name="Mock View 1"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.MockViewPart">
-      </view>
-      <view
-            name="Mock View 2"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.MockViewPart2">
-      </view>
-      <view
-            name="Mock View 3"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.MockViewPart3">
-      </view>
-      <view
-            name="Mock View 4"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.MockViewPart4">
-      </view>
-      <view
-            name="Context Mock View 5"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.contexts.MockViewPart5"
-            id="org.eclipse.ui.tests.contexts.MockViewPart5">
-      </view>
-      <view
-            allowMultiple="true"
-            name="Mock View Mult"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPartMult"
-            id="org.eclipse.ui.tests.api.MockViewPartMult">
-      </view>
-      <view
-            name="Saveable Mock View"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.SaveableMockViewPart"
-            id="org.eclipse.ui.tests.api.SaveableMockViewPart">
-      </view>
-      <view
-            allowMultiple="true"
-            class="org.eclipse.ui.tests.api.UserSaveableMockViewPart"
-            icon="icons\view.gif"
-            id="org.eclipse.ui.tests.api.UserSaveableMockViewPart"
-            name="User Saveable Mock View">
-      </view>
-      <view
-            allowMultiple="true"
-            class="org.eclipse.ui.tests.api.UserSaveableSharedViewPart"
-            icon="icons\view.gif"
-            id="org.eclipse.ui.tests.api.UserSaveableSharedViewPart"
-            name="User Shared Mock View">
-      </view>
-      <view
-            name="Session Test View"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.SessionView"
-            id="org.eclipse.ui.tests.api.SessionView">
-      </view>
-      <view
-            name="IViewActionDelegateTest View"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.IViewActionDelegateTest">
-      </view>
-      <view
-            name="Action Filter Test View 1"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.ListView:-staticMenu"
-            id="org.eclipse.ui.tests.api.IActionFilterTest1">
-      </view>
-      <view
-            name="Action Expression Test View"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.ListView"
-            id="org.eclipse.ui.tests.internal.ActionExpressionTest">
-      </view>
-      <view
-            name="Action Filter Test View 2"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.api.ListView:-dynamicMenu"
-            id="org.eclipse.ui.tests.api.IActionFilterTest2">
-      </view>
-      <view
-            name="Selection Provider Test View"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.SelectionProviderView"
-            id="org.eclipse.ui.tests.SelectionProviderView">
-      </view>
-      <view
-            name="Selection Provider Test View 2"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.SelectionProviderView"
-            id="org.eclipse.ui.tests.SelectionProviderView2">
-      </view>
-      <view
-            name="Adapted Resource Navigator"
-            icon="icons\view.gif"
-            class="org.eclipse.ui.tests.adaptable.AdaptedResourceNavigator"
-            id="org.eclipse.ui.tests.adaptable.adaptedHierarchy">
-      </view>
-      <view
-            name="EmptyView"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.workbenchpart.EmptyView"
-            id="org.eclipse.ui.tests.workbenchpart.EmptyView">
-      </view>
-      <view
-            name="OverriddenTitleView"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.workbenchpart.OverriddenTitleView"
-            id="org.eclipse.ui.tests.workbenchpart.OverriddenTitleView">
-      </view>
-      <view
-            name="RawIViewPart"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.workbenchpart.RawIViewPart"
-            id="org.eclipse.ui.tests.workbenchpart.RawIViewPart">
-      </view>
-            
-      <view
-            name="StickyViewRight1"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewRight1">
-      </view>
-      <view
-            name="StickyViewRight2"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewRight2">
-      </view>
-      <view
-            class="org.eclipse.jface.tests.viewers.interactive.ConcurrentTableTestView"
-            name="Concurrent Table Test View"
-            id="org.eclipse.ui.tests.concurrentTableTest"/>      
-      
-      
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewRight1"
-            location="RIGHT"
-            closeable="true"
-            moveable="true">
-      </stickyView>
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewRight2"
-            location="RIGHT"
-            closeable="false"
-            moveable="false">
-      </stickyView>
-
-      <view
-            name="StickyViewLeft1"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewLeft1">
-      </view>
-      <view
-            name="StickyViewLeft2"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewLeft2">
-      </view>
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewLeft1"
-            location="LEFT">
-      </stickyView>
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewLeft2"
-            location="LEFT">
-      </stickyView>
-      
-      <view
-            name="StickyViewTop1"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewTop1">
-      </view>
-      <view
-            name="StickyViewTop2"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewTop2">
-      </view>
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewTop1"
-            location="TOP">
-      </stickyView>
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewTop2"
-            location="TOP">
-      </stickyView>      
-      
-      <view
-            name="StickyViewBottom1"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewBottom1">
-      </view>
-      <view
-            name="StickyViewBottom2"
-            icon="icons/view.gif"
-            class="org.eclipse.ui.tests.api.MockViewPart"
-            id="org.eclipse.ui.tests.api.StickyViewBottom2">
-      </view>
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewBottom1"
-            location="BOTTOM">
-      </stickyView>
-      <stickyView
-            id="org.eclipse.ui.tests.api.StickyViewBottom2"
-            location="BOTTOM">
-      </stickyView>
-      <category
-            name="Decorator Tests"
-            id="org.eclipse.ui.tests.decoratorCategory"/>
-      <view
-            class="org.eclipse.ui.tests.decorators.DecoratorTreeView"
-            category="org.eclipse.ui.tests.decoratorCategory"
-            name="Tree View Test"
-            id="org.eclipse.ui.tests.decorators.TreeViewTest"/>
-      <view
-            class="org.eclipse.ui.tests.decorators.DecoratorTableView"
-            category="org.eclipse.ui.tests.decoratorCategory"
-            name="Table View Test"
-            id="org.eclipse.ui.tests.decorator.TableViewTest"/>
-      <view
-            class="org.eclipse.ui.tests.decorators.DecoratorTableTreeView"
-            category="org.eclipse.ui.tests.decoratorCategory"
-            name="Table Tree Test"
-            id="org.eclipse.ui.tests.decorator.TableTreeTest"/>
-      <view
-            class="org.eclipse.jface.tests.viewers.interactive.VirtualTableView"
-            category="org.eclipse.ui.tests.tableViewerViews"
-            name="Virtual Table View test"
-            id="org.eclipse.ui.tests.view1"/>
-      <view
-            class="org.eclipse.jface.tests.viewers.interactive.LazyVirtualTableView"
-            category="org.eclipse.ui.tests.tableViewerViews"
-            name="Lazy Virtual Table View test"
-            id="org.eclipse.ui.tests.lazyView"/>
-       <view
-            class="org.eclipse.jface.tests.viewers.interactive.LazyDeferredVirtualTableView"
-            category="org.eclipse.ui.tests.tableViewerViews"
-            name="Lazy Virtual Table with Deferred Updates and Ranges"
-            id="org.eclipse.ui.tests.lazyViewDeferred"/>
-      <category
-            name="Table Viewer Tests"
-            id="org.eclipse.ui.tests.tableViewerViews"/>
-      <category
-            name="Component Tests"
-            id="org.eclipse.ui.tests.components"/>
-      <view
-            class="org.eclipse.ui.tests.session.ViewWithState"
-            id="org.eclipse.ui.tests.session.ViewWithState"
-            name="ViewWithState"/>
-      <view
-            class="org.eclipse.ui.tests.internal.Bug78470Test$MyViewPart"
-            id="org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart"
-            name="org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart"/>
-      <view
-            class="org.eclipse.ui.tests.internal.Bug78470Test$MyViewPart"
-            id="org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart2"
-            name="org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart2"/>
-      <view
-            class="org.eclipse.ui.tests.internal.Bug78470Test$MyViewPart"
-            id="org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart3"
-            name="org.eclipse.ui.tests.internal.Bug78470Test.MyViewPart3"/>
-      <view
-            class="org.eclipse.ui.tests.contexts.MockPageView"
-            icon="icons/view.gif"
-            id="org.eclipse.ui.tests.contexts.MockPageView"
-            name="Service PageBookView"/>
-      <view
-            class="org.eclipse.ui.tests.api.workbenchpart.MenuContributionHarness"
-            id="org.eclipse.ui.tests.api.MenuTestHarness"
-            name="Menu Test Harness">
-      </view>
-      <view
-            allowMultiple="false"
-            class="org.eclipse.ui.tests.manual.ExplicitlyBusyView"
-            id="org.eclipse.ui.tests.ExplicitlyBusyView"
-            name="ExplicitlyBusyView"/>
-      <category
-            name="Saveables Testing"
-            id="org.eclipse.ui.tests.saveablesview">
-      </category>
-       <view
-            name="All Saveables"
-            icon="icons/view.gif"
-            category="org.eclipse.ui.tests.saveablesview"
-            class="org.eclipse.ui.tests.manual.SaveablesView"
-            id="org.eclipse.ui.tests.manual.SaveablesView">
-      </view>
-      <view
-            category="org.eclipse.ui.tests.saveablesview"
-            class="org.eclipse.ui.tests.manual.ViewWithSaveables"
-            icon="icons/view.gif"
-            id="org.eclipse.ui.tests.manual.ViewWithSaveables"
-            name="View Owning Saveables">
-      </view>
-      <view
-            allowMultiple="true"
-            class="org.eclipse.ui.tests.layout.constraints.LayoutConstraintsView"
-            id="org.eclipse.ui.tests.layout.constraints.LayoutConstraintsView"
-            name="Layout Constraints Test">
-      </view>
-      <view
-            class="org.eclipse.ui.tests.session.NonRestorableView"
-            id="org.eclipse.ui.tests.session.NonRestorableView"
-            name="NonRestorableView"
-            restorable="false">
-      </view>
-      <view
-            class="org.eclipse.ui.tests.internal.TextControlView"
-            id="org.eclipse.ui.tests.textHandlerView"
-            name="Text Control view"
-            restorable="true">
-      </view>
-
-   </extension>
-   <extension
-         point="org.eclipse.ui.editors">
-      <editor
-            name="Mock Editor 1"
-            extensions="mock1"
-            icon="icons/mockeditorpart1.gif"
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            id="org.eclipse.ui.tests.api.MockEditorPart1">
-      </editor>
-      <editor
-            name="Mock Editor 2"
-            extensions="mock2"
-            icon="icons/mockeditorpart2.gif"
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            id="org.eclipse.ui.tests.api.MockEditorPart2">
-      </editor>
-      <editor
-            name="Mock Reusable Editor 1"
-            extensions="mockr1"
-            icon="icons/mockeditorpart1.gif"
-            class="org.eclipse.ui.tests.api.MockReusableEditorPart"
-            id="org.eclipse.ui.tests.api.MockReusableEditorPart1">
-      </editor>
-      <editor
-            name="Mock Editor Save"
-            extensions="mocksave"
-            icon="icons/mockeditorpart1.gif"
-            class="org.eclipse.ui.tests.api.MockEditorWithState"
-            id="org.eclipse.ui.tests.api.MockEditorStatePart">
-      </editor>
-      <editor
-            name="IEditorActionBarContributorTest"
-            extensions="mock3"
-            icon="icons/mockeditorpart2.gif"
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            contributorClass="org.eclipse.ui.tests.api.MockEditorActionBarContributor"
-            id="org.eclipse.ui.tests.api.IEditorActionBarContributorTest">
-      </editor>
-      <editor
-            name="IEditorActionDelegateTest"
-            extensions="mock3"
-            icon="icons/mockeditorpart2.gif"
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            contributorClass="org.eclipse.ui.tests.api.MockEditorActionBarContributor"
-            id="org.eclipse.ui.tests.api.IEditorActionDelegateTest">
-      </editor>
-      <editor
-            name="IEditorActionBarsTest"
-            extensions="mock3"
-            icon="icons\mockeditorpart2.gif"
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            contributorClass="org.eclipse.ui.tests.api.MockEditorActionBarContributor"
-            id="org.eclipse.ui.tests.internal.EditorActionBarsTest">
-      </editor>
-      <editor
-            name="ExtendedTextEditor"
-            extensions="exttxt"
-            icon="icons\mockeditorpart2.gif"
-            class="org.eclipse.ui.tests.internal.ExtendedTextEditor"
-            contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor"
-            id="org.eclipse.ui.tests.ExtendedTextEditor">
-      </editor>
-      <editor
-            name="Test Multi-Page Editor"
-            extensions="multi"
-            icon="icons\mockeditorpart1.gif"
-            class="org.eclipse.ui.tests.multipageeditor.TestMultiPageEditor"
-            id="org.eclipse.ui.tests.multipageeditor.TestMultiPageEditor">
-      </editor>
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.TitleTestEditor"
-            icon="icons/anything.gif"
-            default="true"
-            name="Title Test Editor"
-            id="org.eclipse.ui.tests.TitleTestEditor"
-            extensions="titletest"/>
-
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.TitleTestEditor"
-            icon="invalidpath/iconThatDoesNotExist.gif"
-            default="true"
-            name="ERROR: Editor with missing icon"
-            id="org.eclipse.ui.tests.EditorWithMissingIcon"
-            extensions="test"/>
-
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.MissingClass"
-            icon="icons/anything.gif"
-            default="true"
-            name="ERROR: Editor with missing class"
-            id="org.eclipse.ui.tests.api.workbenchpart.MissingClass"
-            extensions="test"/>
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.EditorWithInitRuntimeException"
-            icon="icons/anything.gif"
-            default="true"
-            name="ERROR: RuntimeException in init"
-            id="org.eclipse.ui.tests.api.workbenchpart.EditorWithInitRuntimeException"
-            extensions="test"/>
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.EditorWithInputException"
-            icon="icons/anything.gif"
-            default="true"
-            name="ERROR: exception in getEditorInput"
-            id="org.eclipse.ui.tests.api.workbenchpart.EditorWithInputException"
-            extensions="test"/>
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.EditorWithInitException"
-            icon="icons/anything.gif"
-            default="true"
-            name="ERROR: PartInitException in init"
-            id="org.eclipse.ui.tests.api.workbenchpart.EditorWithInitException"
-            extensions="test"/>
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.EditorWithCreateControlsException"
-            icon="icons/anything.gif"
-            default="true"
-            name="ERROR: Exception in createPartControls"
-            id="org.eclipse.ui.tests.api.workbenchpart.EditorWithCreateControlsException"
-            extensions="test"/>
-      <editor
-            class="org.eclipse.ui.tests.api.workbenchpart.EditorWithDisposeException"
-            icon="icons/anything.gif"
-            default="true"
-            name="ERROR: Exception in dispose"
-            id="org.eclipse.ui.tests.api.workbenchpart.EditorWithDisposeException"
-            extensions="test"/>
- 
-	   <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            icon="platform:/plugin/org.eclipse.ui/icons/full/obj16/font.gif"
-            default="true"
-            name="Plugin Icon Test 1"
-            id="org.eclipse.ui.tests.IconTestEditor1"
-            extensions="icontest1"/>            
-       <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            icon="platform:/plugin/org.eclipse.jdt.ui/icons/full/obj16/class_obj.gif"
-            default="true"
-            name="Plugin Icon Test 2"
-            id="org.eclipse.ui.tests.IconTestEditor1"
-            extensions="icontest2"/>                      
-       <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            icon="bad"
-            default="true"
-            name="Plugin Icon Test 3"
-            id="org.eclipse.ui.tests.IconTestEditor3"
-            extensions="icontest3"/>
-       <editor
-             class="org.eclipse.ui.tests.api.MockEditorPart"
-             default="false"
-             icon="icons/anything.gif"
-             id="org.eclipse.ui.tests.contentType1Editor"
-             name="org.eclipse.ui.tests.contentType1Editor">
-          <contentTypeBinding contentTypeId="org.eclipse.ui.tests.content-type1"/>
-       </editor>
-       <editor
-             default="true"
-             extensions="content-type1"
-             filenames="content-type1.blah"
-             icon="icons/anything.gif"
-             id="org.eclipse.ui.tests.contentType1Editor-fallback"
-             name="org.eclipse.ui.tests.contentType1Editor-fallback"/>       
-      <editor
-            name="Mock Matching Editor 1"
-            icon="icons\mockeditorpart1.gif"
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            id="org.eclipse.ui.tests.api.MockMatchingEditorPart1"
-            matchingStrategy="org.eclipse.ui.tests.api.MockEditorMatchingStrategy"/>
-      <editor
-            class="org.eclipse.ui.tests.api.SessionEditorPart"
-            default="false"
-            extensions="session"
-            icon="icons/binary_co.gif"
-            id="org.eclipse.ui.tests.api.SessionEditorPart"
-            name="SessionEditor"/>
-      <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            default="false"
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.contentType2Editor"
-            name="org.eclipse.ui.tests.contentType2Editor">
-         <contentTypeBinding contentTypeId="org.eclipse.ui.tests.content-type2"/>
-      </editor>
-      <editor
-            class="org.eclipse.ui.tests.multieditor.TiledEditor"
-            default="false"
-            icon="icons/binary_co.gif"
-            id="org.eclipse.ui.tests.multieditor.TiledEditor"
-            name="%Editors.TiledEditor"/>
-      <editor
-            class="org.eclipse.ui.tests.multieditor.TestEditor"
-            contributorClass="org.eclipse.ui.tests.multieditor.TestActionBarContributor"
-            default="false"
-            extensions="etest"
-            icon="icons/binary_co.gif"
-            id="org.eclipse.ui.tests.multieditor.TestEditor"
-            name="%Editors.TestEditor"/>
-      <!-- the order of the following is very important.  We want to ensure that the 
-      default editor gets pushed to the front of the list. -->
-      <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            default="false"
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.nondefaultedContentTypeEditor1"
-            name="defaultedContentTypeEditor">
-         <contentTypeBinding contentTypeId="org.eclipse.ui.tests.defaultedContentType"/>
-      </editor>
-      <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            default="false"
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.nondefaultedContentTypeEditor2"
-            name="defaultedContentTypeEditor">
-         <contentTypeBinding contentTypeId="org.eclipse.ui.tests.defaultedContentType"/>
-      </editor>
-      <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            default="true"
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.defaultedContentTypeEditor"
-            name="defaultedContentTypeEditor">
-         <contentTypeBinding contentTypeId="org.eclipse.ui.tests.defaultedContentType"/>
-      </editor>
-      <editor
-            class="org.eclipse.ui.tests.api.MockEditorPart"
-            default="false"
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.nondefaultedContentTypeEditor3"
-            name="defaultedContentTypeEditor">
-         <contentTypeBinding contentTypeId="org.eclipse.ui.tests.defaultedContentType"/>
-      </editor>
-      <editor
-            class="org.eclipse.ui.tests.multipageeditor.MultiVariablePageEditor"
-            extensions="multivar"
-            icon="icons/mockeditorpart1.gif"
-            id="org.eclipse.ui.tests.multipageeditor.MultiVariablePageEditor"
-            name="Multi Variable Page Editor"/>
-      <editor
-            class="org.eclipse.ui.tests.manual.TestBackgroundSaveEditor"
-            default="false"
-            extensions="background"
-            icon="icons/binary_co.gif"
-            id="org.eclipse.ui.tests.manual.TestBackgroundSaveEditor"
-            name="TestBackgroundSaveEditor">
-      </editor>
-      <editor
-            name="Context Menu Editor"
-            extensions="cme"
-            icon="icons\mockeditorpart1.gif"
-            class="org.eclipse.ui.tests.leaks.ContextEditorPart"
-            id="org.eclipse.ui.tests.leak.contextEditor">
-      </editor>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="Mock Action Set"
-            id="org.eclipse.ui.tests.api.MockActionSet">
-         <action
-               label="Mock Action"
-               class="org.eclipse.ui.tests.api.MockWorkbenchWindowActionDelegate"
-               menubarPath="additions"
-               id="org.eclipse.ui.tests.api.MockWindowAction">
-         </action>
-      </actionSet>      
-      <actionSet
-      		label="Hostile Action Set"
-      		id="org.eclipse.ui.tests.actionSets.brokenActionSet"
-      		visible="true">
-      	<action
-      			label="Hostile Action"
-      			style="pulldown"
-      			class="org.eclipse.ui.tests.menus.BrokenWorkbenchWindowPulldownDelegate"
-      			menubarPath="help/helpStart"
-      			id="org.eclipse.ui.tests.actionSets.brokenAction">
-      	</action>
-      </actionSet>
-      <actionSet
-            label="Test Actions"
-            visible="true"
-            id="org.eclipse.ui.tests.markers">
-         <menu id="test"
-            label="&amp;Test">
-            <separator name="additions" />
-         </menu>
-         <action
-               label="Create Test Markers"
-               class="org.eclipse.ui.tests.menus.AddMarkersAction"
-               allowLabelUpdate="false"
-               menubarPath="test/additions"
-               id="org.eclipse.ui.tests.markers.create">
-         </action>
-         <action
-               label="Delete Test Markers"
-               class="org.eclipse.ui.tests.menus.RemoveMarkersAction"
-               allowLabelUpdate="false"
-               menubarPath="test/additions"
-               id="org.eclipse.ui.tests.markers.delete">
-         </action>
-      </actionSet>
-      <actionSet
-            label="TestEditorMulti"
-            visible="false"
-            id="org.eclipse.ui.tests.multieditor.actionSet">
-         <action
-               class="org.eclipse.ui.tests.api.MockEditorActionDelegate"
-               disabledIcon="icons/binary_co.gif"
-               icon="icons/view.gif"
-               id="org.eclipse.ui.tests.multieditor.editorAction.action"
-               label="MockMultiEditorAction"
-               state="false"
-               style="push"
-               toolbarPath="Normal/Presentation"
-               tooltip="MultiEditorActionThing"/>
-      </actionSet>
-      <actionSet
-            id="org.eclipse.ui.tests.actionSet1"
-            label="Test Parameterized Action"
-            visible="false">
-         <action
-               id="org.eclipse.ui.tests.parm.hideEditorArea"
-               label="Hide File Editor Area"
-               menubarPath="file/additions"
-               style="push">
-            <class
-                  class="org.eclipse.ui.tests.api.GenericCommandActionDelegate">
-               <parameter
-                     name="commandId"
-                     value="org.eclipse.ui.window.hideShowEditors">
-               </parameter>
-            </class>
-         </action>
-         <action
-               class="org.eclipse.ui.tests.api.GenericCommandActionDelegate"
-               id="org.eclipse.ui.tests.parm.noClassAttrParm"
-               label="Hide No Class Attr"
-               menubarPath="file/additions"
-               style="push">
-         </action>
-         <action
-               id="org.eclipse.ui.tests.parm.noClassElParm"
-               label="Hide No Class Parm"
-               menubarPath="file/additions"
-               style="push">
-            <class
-                  class="org.eclipse.ui.tests.api.GenericCommandActionDelegate">
-            </class>
-         </action>
-         <action
-               id="org.eclipse.ui.tests.parm.incorrectClassElParm"
-               label="Hide Bad Class Parm"
-               menubarPath="file/additions"
-               style="push">
-            <class
-                  class="org.eclipse.ui.tests.api.GenericCommandActionDelegate">
-               <parameter
-                     name="commandIdWhat"
-                     value="org.eclipse.ui.window.hideShowEditors">
-               </parameter>
-            </class>
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.viewActions">
-      <viewContribution
-            targetID="org.eclipse.ui.tests.api.IViewActionDelegateTest"
-            id="va1">
-         <action
-               label="Mock Action"
-               class="org.eclipse.ui.tests.api.MockViewActionDelegate"
-               menubarPath="additions"
-               id="a1">
-         </action>
-      </viewContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <category
-            id="org.eclipse.ui.tests.category.keyModel"
-            name="Key Model">
-      </category>
-      <command
-            categoryId="org.eclipse.ui.tests.category.keyModel"
-            id="org.eclipse.ui.tests.keyModel.conflict1"
-            name="Conflict1">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.tests.category.keyModel"
-            id="org.eclipse.ui.tests.keyModel.conflict2"
-            name="Conflict2">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.tests.category.keyModel"
-            id="org.eclipse.ui.tests.keyModel.conflict3"
-            name="Conflict3">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.tests.category.keyModel"
-            id="org.eclipse.ui.tests.keyModel.conflict4"
-            name="ConflictNoKey4">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.tests.category.keyModel"
-            id="org.eclipse.ui.tests.keyModel.conflict5"
-            name="ConflictNoKey5">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.tests.category.keyModel"
-            id="org.eclipse.ui.tests.keyModel.emacs1"
-            name="emacsCommand1">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.ui.tests.keyModel.conflict1"
-            contextId="org.eclipse.ui.contexts.dialog"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+5 K">
-      </key>
-      <key
-            commandId="org.eclipse.ui.tests.keyModel.conflict2"
-            contextId="org.eclipse.ui.contexts.dialog"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+5 K">
-      </key>
-      <key
-            commandId="org.eclipse.ui.tests.keyModel.conflict3"
-            contextId="org.eclipse.ui.contexts.dialog"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="CTRL+5 K">
-      </key>
-      <key
-            commandId="org.eclipse.ui.tests.keyModel.emacs1"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.emacsAcceleratorConfiguration"
-            sequence="CTRL+5 E">
-      </key>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editorActions">
-      <editorContribution
-            targetID="org.eclipse.ui.tests.api.IEditorActionDelegateTest"
-            id="ea1">
-         <action
-               label="Mock Action"
-               class="org.eclipse.ui.tests.api.MockEditorActionDelegate"
-               menubarPath="additions"
-               id="a1">
-         </action>
-      </editorContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc1">
-         <filter
-               name="name"
-               value="red">
-         </filter>
-         <action
-               label="redAction_v1"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc1">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc2">
-         <filter
-               name="name"
-               value="blue">
-         </filter>
-         <action
-               label="blueAction_v1"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc2">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc3">
-         <filter
-               name="flag"
-               value="true">
-         </filter>
-         <action
-               label="trueAction_v1"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc3">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc4">
-         <filter
-               name="flag"
-               value="false">
-         </filter>
-         <action
-               label="falseAction_v1"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc5">
-         <filter
-               name="name"
-               value="red">
-         </filter>
-         <filter
-               name="flag"
-               value="true">
-         </filter>
-         <action
-               label="redTrueAction_v1"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc5">
-         </action>
-      </objectContribution>
-<!-- Adaptable test-->
-      <objectContribution
-            adaptable="true"
-            objectClass="org.eclipse.core.resources.IResource"
-            id="org.eclipse.ui.tests.adaptable.ResourceContributions">
-         <action
-               label="Resource Action"
-               class="org.eclipse.ui.tests.adaptable.ResourceAction"
-               menubarPath="org.eclipse.ui.OpenFileAction"
-               id="resource action">
-         </action>
-      </objectContribution>
-         
-      <!-- ObjectContributionTest: This is the content-type-based object contribution -->
-      <objectContribution
-            adaptable="true"
-            objectClass="org.eclipse.core.resources.IFile"
-            nameFilter="*.xml"
-            id="org.eclipse.ui.tests.testObjectStateContentType">
-         <visibility>
-            <objectState
-                  name="contentTypeId"
-                  value="org.eclipse.ui.tests.testObjectStateContentType">
-            </objectState>
-         </visibility>
-         <action
-               label="XML Top Level Element"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               tooltip="This is a contribution for ObjectContributionTest.testObjectStateContentType"
-               menubarPath="additions"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.testObjectStateContentType">
-         </action>
-      </objectContribution>
-      
-   </extension>
-   
-   <extension
-   		point="org.eclipse.core.runtime.contentTypes">
-   		
-      	<!-- ObjectContributionTest: This is the content-type-based object contribution -->
-		<content-type 
-			id="testObjectStateContentType"
-			name="Tests top-level element recognition" 	
-			base-type="org.eclipse.core.runtime.xml"
-			priority="high">
-			<describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber">
-				<parameter name="element" value="testObjectStateContentTypeElement" />
-			</describer>
-		</content-type>
-       <content-type
-             file-extensions="content-type1"
-             file-names="content-type1.blah"
-             id="content-type1"
-             name="org.eclipse.ui.tests.content-type1"
-             priority="normal">
-        		<describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber">
-				<parameter name="element" value="contentType1" />
-			</describer>
-        </content-type>
-       <content-type
-             file-extensions="content-type2"
-             file-names="content-type2.blah"
-             id="content-type2"
-             name="org.eclipse.ui.tests.content-type2"
-             priority="normal">
-             <describer class="org.eclipse.core.runtime.content.XMLRootElementContentDescriber">
-				<parameter name="element" value="contentType1" />
-			</describer>
-       </content-type>
-       <content-type
-             file-extensions="defaultedContentType"
-             id="defaultedContentType"
-             name="org.eclipse.ui.tests.defaultedContentType"
-             priority="normal"/>
-   </extension>
-   		
-   <extension
-         point="org.eclipse.ui.actionSets">
-<!-- ActionSetExpressionTest -->
-      <actionSet
-            label="List Element"
-            id="org.eclipse.ui.tests.internal.ListElementActions">
-         <menu
-               label="List Element"
-               path="additions"
-               id="org.eclipse.ui.tests.internal.ListElementMenu">
-            <separator
-                  name="group1">
-            </separator>
-         </menu>
-         <action
-               label="allAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               accelerator="ALT+SHIFT+-"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.internal.ac1">
-            <enablement>
-               <objectClass
-                     name="org.eclipse.ui.tests.api.ListElement">
-               </objectClass>
-            </enablement>
-         </action>
-         <action
-               label="redAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.internal.ac2">
-            <enablement>
-               <and>
-                  <objectClass
-                        name="org.eclipse.ui.tests.api.ListElement">
-                  </objectClass>
-                  <objectState
-                        name="name"
-                        value="red">
-                  </objectState>
-               </and>
-            </enablement>
-         </action>
-         <action
-               label="notRedAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.internal.ac3">
-            <enablement>
-               <and>
-                  <objectClass
-                        name="org.eclipse.ui.tests.api.ListElement">
-                  </objectClass>
-                  <not>
-                     <objectState
-                           name="name"
-                           value="red">
-                     </objectState>
-                  </not>
-               </and>
-            </enablement>
-         </action>
-         <action
-               label="trueAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.internal.ac4">
-            <enablement>
-               <and>
-                  <objectClass
-                        name="org.eclipse.ui.tests.api.ListElement">
-                  </objectClass>
-                  <objectState
-                        name="flag"
-                        value="true">
-                  </objectState>
-               </and>
-            </enablement>
-         </action>
-         <action
-               label="redOrBlueAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.internal.ac5">
-            <enablement>
-               <or>
-                  <and>
-                     <objectClass
-                           name="org.eclipse.ui.tests.api.ListElement">
-                     </objectClass>
-                     <objectState
-                           name="name"
-                           value="red">
-                     </objectState>
-                  </and>
-                  <and>
-                     <objectClass
-                           name="org.eclipse.ui.tests.api.ListElement">
-                     </objectClass>
-                     <objectState
-                           name="name"
-                           value="blue">
-                     </objectState>
-                  </and>
-               </or>
-            </enablement>
-         </action>
-         <action
-               label="redAndTrueAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.internal.ac6">
-            <enablement>
-               <and>
-                  <objectClass
-                        name="org.eclipse.ui.tests.api.ListElement">
-                  </objectClass>
-                  <objectState
-                        name="name"
-                        value="red">
-                  </objectState>
-                  <objectState
-                        name="flag"
-                        value="true">
-                  </objectState>
-               </and>
-            </enablement>
-         </action>
-         <action
-               label="pluginNotInstalledAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               id="org.eclipse.ui.tests.internal.ac7">
-            <enablement>
-               <pluginState
-                     value="installed"
-                     id="7777xxf">
-               </pluginState>
-            </enablement>
-         </action>
-         <action
-               label="pluginInstalledAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               id="org.eclipse.ui.tests.internal.ac8">
-            <enablement>
-               <pluginState
-                     value="installed"
-                     id="org.eclipse.ui">
-               </pluginState>
-            </enablement>
-         </action>
-         <action
-               label="pluginNotActivatedAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               id="org.eclipse.ui.tests.internal.ac9">
-            <enablement>
-               <pluginState
-                     value="activated"
-                     id="org.eclipse.update">
-               </pluginState>
-            </enablement>
-         </action>
-         <action
-               label="pluginActivatedAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               id="org.eclipse.ui.tests.internal.ac10">
-            <enablement>
-               <pluginState
-                     value="activated"
-                     id="org.eclipse.ui">
-               </pluginState>
-            </enablement>
-         </action>
-         <action
-               label="systemPropertyAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.ListElementMenu/group1"
-               id="org.eclipse.ui.tests.internal.ac11">
-            <enablement>
-               <systemProperty
-                     name="ActionExpressionVar"
-                     value="bubba">
-               </systemProperty>
-            </enablement>
-         </action>
-      </actionSet>
-<!-- TextSelectionActionFilterText -->
-      <actionSet
-            label="Text Selection Tests"
-            id="org.eclipse.ui.tests.internal.TextSelectionActions">
-         <menu
-               label="Text Selection Tests"
-               path="additions"
-               id="org.eclipse.ui.tests.internal.TextSelectionMenu">
-            <separator
-                  name="group1">
-            </separator>
-         </menu>
-         <action
-               label="anyText"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.TextSelectionMenu/group1"
-               enablesFor="1"
-               id="org.eclipse.ui.tests.internal.as_1">
-            <selection
-                  class="org.eclipse.jface.text.ITextSelection">
-            </selection>
-         </action>
-         <action
-               label="emptyText"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.TextSelectionMenu/group1"
-               id="org.eclipse.ui.tests.internal.ac_2">
-            <enablement>
-               <and>
-                  <objectClass
-                        name="org.eclipse.jface.text.ITextSelection">
-                  </objectClass>
-                  <objectState
-                        name="isEmpty"
-                        value="true">
-                  </objectState>
-               </and>
-            </enablement>
-         </action>
-         <action
-               label="helloText"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               menubarPath="org.eclipse.ui.tests.internal.TextSelectionMenu/group1"
-               id="org.eclipse.ui.tests.internal.ac_3">
-            <enablement>
-               <and>
-                  <objectClass
-                        name="org.eclipse.jface.text.ITextSelection">
-                  </objectClass>
-                  <objectState
-                        name="text"
-                        value="Hello">
-                  </objectState>
-               </and>
-            </enablement>
-         </action>
-      </actionSet>
-   </extension>
-   
-   <!-- Bug 125011.  There's no good way to test this programmatically, so the
-   test is simply to start up Eclipse and check whether the "label" attribute
-   will affect the tooltip text. -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="Bug 125011"
-            id="org.eclipse.ui.tests.actionSet125011"
-            visible="true">
-         <action
-               label="TestBug125011"
-               toolbarPath="workingSets"
-               icon="icons/anything.gif"
-               id="org.eclipse.ui.tests.action125011"
-               class="org.eclipse.ui.tests.api.MockActionDelegate" />
-      </actionSet>
-   </extension>
-   
-   <!-- Bug 122674.  To verify this bug, simply start Eclipse with this plug-in. 
-   -->
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            label="Bug 122674"
-            id="org.eclipse.ui.tests.actionSet122674" />
-   </extension>
-   <extension
-         point="org.eclipse.ui.popupMenus">
-<!-- PopupMenuExpressionTest -->
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc1">
-         <action
-               label="allAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc1">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc2">
-         <visibility>
-            <objectState
-                  name="name"
-                  value="red">
-            </objectState>
-         </visibility>
-         <action
-               label="redAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc2">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc3">
-         <visibility>
-            <not>
-               <objectState
-                     name="name"
-                     value="red">
-               </objectState>
-            </not>
-         </visibility>
-         <action
-               label="notRedAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc3">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc4">
-         <visibility>
-            <objectState
-                  name="flag"
-                  value="true">
-            </objectState>
-         </visibility>
-         <action
-               label="trueAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc5">
-         <visibility>
-            <or>
-               <objectState
-                     name="name"
-                     value="red">
-               </objectState>
-               <objectState
-                     name="name"
-                     value="blue">
-               </objectState>
-            </or>
-         </visibility>
-         <action
-               label="redOrBlueAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc6">
-         <visibility>
-            <and>
-               <objectState
-                     name="name"
-                     value="red">
-               </objectState>
-               <objectState
-                     name="flag"
-                     value="true">
-               </objectState>
-            </and>
-         </visibility>
-         <action
-               label="redAndTrueAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc7">
-         <visibility>
-            <pluginState
-                  value="installed"
-                  id="7777xxf">
-            </pluginState>
-         </visibility>
-         <action
-               label="pluginNotInstalledAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc8">
-         <visibility>
-            <pluginState
-                  value="installed"
-                  id="org.eclipse.ui">
-            </pluginState>
-         </visibility>
-         <action
-               label="pluginInstalledAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc9">
-         <visibility>
-            <pluginState
-                  value="activated"
-                  id="org.eclipse.update">
-            </pluginState>
-         </visibility>
-         <action
-               label="pluginNotActivatedAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc10">
-         <visibility>
-            <pluginState
-                  value="activated"
-                  id="org.eclipse.ui">
-            </pluginState>
-         </visibility>
-         <action
-               label="pluginActivatedAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc11">
-         <visibility>
-            <systemProperty
-                  name="ActionExpressionVar"
-                  value="bubba">
-            </systemProperty>
-         </visibility>
-         <action
-               label="systemPropertyAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc4">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.api.ListElement"
-            id="oc12">
-         <enablement>
-            <test property="org.eclipse.ui.tests.api.testing.name" value="red"/>
-         </enablement>
-         <action
-               label="expressionEnablementAction_v2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="oc13">
-         </action>
-      </objectContribution>
-   </extension> 
-   <extension point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            namespace="org.eclipse.ui.tests.api.testing"
-            properties="name"
-            type="org.eclipse.ui.tests.api.ListElement"
-            class="org.eclipse.ui.tests.api.ListElementPropertyTester"
-            id="org.eclipse.ui.tests.api.propertyTester">
-      </propertyTester>
-   </extension>
-<!-- Decorator tests -->
-   <extension
-         point="org.eclipse.ui.decorators">
-      <decorator
-            objectClass="org.eclipse.core.resources.IResource"
-            label="Test Decorator"
-            class="org.eclipse.ui.tests.decorators.TestDecoratorContributor"
-            state="false"
-            id="org.eclipse.ui.tests.adaptable.decorator">
-         <description>
-            The test decorator
-         </description>
-      </decorator>
-      <decorator
-            adaptable="true"
-            objectClass="org.eclipse.core.resources.IResource"
-            label="Null Decorator"
-            class="org.eclipse.ui.tests.adaptable.NullLabelDecorator"
-            state="false"
-            id="org.eclipse.ui.tests.adaptable.nulldecorator">
-         <description>
-            A null test decorator
-         </description>
-      </decorator>
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            label="Lightweight Test Decorator"
-            class="org.eclipse.ui.tests.decorators.TestLightweightDecoratorContributor"
-            state="false"
-            id="org.eclipse.ui.tests.decorators.lightweightdecorator">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.core.resources.IResource">
-            </objectClass>
-         </enablement>
-         <description>
-            A lightweight test decorator
-         </description>
-      </decorator>
-      <decorator
-            lightweight="true"
-            location="TOP_LEFT"
-            adaptable="true"
-            label="Declarative Test Decorator"
-            icon="icons/binary_co.gif"
-            state="false"
-            id="org.eclipse.ui.tests.decorators.declareddecorator">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.core.resources.IResource">
-            </objectClass>
-         </enablement>
-         <description>
-            A lightweight test decorator
-         </description>
-      </decorator>
-      <decorator
-            lightweight="true"
-            objectClass="org.eclipse.core.resources.IResource"
-            label="Bug 41545 Lightweight"
-            class="org.eclipse.ui.tests.decorators.NullImageDecorator"
-            id="org.eclipse.ui.tests.lightNullImageDecorator">
-      </decorator>
-      <decorator
-            lightweight="false"
-            objectClass="org.eclipse.core.resources.IResource"
-            label="Bug 41545 Heavy Image"
-            class="org.eclipse.ui.tests.decorators.HeavyNullImageDecorator"
-            id="org.eclipse.ui.tests.heavyNullImageDecorator">
-      </decorator>
-      <decorator
-            lightweight="false"
-            objectClass="org.eclipse.core.resources.IResource"
-            label="Bug 41545 Heavy Text"
-            class="org.eclipse.ui.tests.decorators.HeavyNullTextDecorator"
-            id="org.eclipse.ui.tests.heavyNullTextDecorator">
-      </decorator>
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            label="Lightweight Test Decorator Multiple Quadrant"
-            state="false"
-            class="org.eclipse.ui.tests.decorators.TestLightweightDecoratorMultipleQuadrantContributor"
-            id="org.eclipse.ui.tests.decorators.lightweightdecorator2">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.core.resources.IResource">
-            </objectClass>
-         </enablement>
-         <description>
-            A lightweight test decorator for multiple quadrants
-         </description>
-      </decorator>
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            objectClass="java.lang.Object"
-            label="Background Decorator"
-            class="org.eclipse.ui.tests.decorators.BackgroundColorDecorator"
-            id="org.eclipse.ui.tests.backgroundDecorator"/>
-      <decorator
-            lightweight="true"
-            objectClass="java.lang.Object"
-            adaptable="true"
-            label="Foreground Decorator"
-            class="org.eclipse.ui.tests.decorators.ForegroundColorDecorator"
-            id="org.eclipse.ui.tests.foregroundDecorator"/>
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            objectClass="java.lang.Object"
-            label="Font Decorator"
-            class="org.eclipse.ui.tests.decorators.FontDecorator"
-            id="org.eclipse.ui.tests.fontDecorator"/>
-            
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            label="Test Decorator For General Adaptability On"
-            state="false"
-            class="org.eclipse.ui.tests.decorators.TestAdaptableDecoratorContributor"
-            id="org.eclipse.ui.tests.decorators.generalAdaptabilityOn">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon">
-            </objectClass>
-         </enablement>
-         <description>
-            A test decorator for successful general adaptability
-         </description>
-      </decorator>
-      <decorator
-            lightweight="true"
-            adaptable="false"
-            label="Test Decorator For General Adaptability Off"
-            state="false"
-            class="org.eclipse.ui.tests.decorators.TestUnadaptableDecoratorContributor"
-            id="org.eclipse.ui.tests.decorators.generalAdaptabilityOff">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon">
-            </objectClass>
-         </enablement>
-         <description>
-            A test decorator for unsuccessful general adaptability
-         </description>
-      </decorator>
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            label="Test Resource Adaptation"
-            state="false"
-            class="org.eclipse.ui.tests.decorators.TestResourceDecoratorContributor"
-            id="org.eclipse.ui.tests.decorators.resourceDescorator">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.core.resources.IResource">
-            </objectClass>
-         </enablement>
-         <description>
-            A test decorator for resources
-         </description>
-      </decorator>
-      <decorator
-            lightweight="true"
-            adaptable="true"
-            label="Test Resource Mapping Adaptation"
-            state="false"
-            class="org.eclipse.ui.tests.decorators.TestResourceMappingDecoratorContributor"
-            id="org.eclipse.ui.tests.decorators.resourceMappingDescorator">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.core.resources.mapping.ResourceMapping">
-            </objectClass>
-         </enablement>
-         <description>
-            A test decorator for resource mappings
-         </description>
-      </decorator>
-      <decorator
-            adaptable="true"
-            class="org.eclipse.ui.tests.decorators.BadIndexDecorator"
-            id="org.eclipse.ui.tests.decorators.badIndexDecorator"
-            label="Bad Index Decorator"
-            lightweight="true">
-         <enablement>
-            <objectClass
-                  name="org.eclipse.core.resources.IResource">
-            </objectClass>
-         </enablement>
-      </decorator>
-      
-   </extension>
-<!-- Working set tests -->
-   <extension
-         point="org.eclipse.ui.workingSets">
-      <workingSet
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.api.MockWorkingSet"
-            name="Mock Working Set"
-            pageClass="org.eclipse.ui.tests.api.MockWorkingSetPage"
-            elementAdapterClass="org.eclipse.ui.BasicWorkingSetElementAdapter:org.eclipse.ui.tests.api.IWorkingSetTest$Foo;adapt=true,org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon;adapt=true,org.eclipse.core.resources.IResource;adapt=false"/>
-      <workingSet
-            icon="icons/anything.gif"
-            id="org.eclipse.ui.tests.api.BadWorkingSet"
-            name="Bad Working Set"
-            pageClass="org.eclipse.ui.tests.api.MockWorkingSetPage"
-            elementAdapterClass="org.eclipse.ui.BasicWorkingSetElementAdapter:org.eclipse.ui.tests.api.IWorkingSetTest$Foo;adapt=true,org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon;adapt=true,org.eclipse.core.resources.IResource;adapt=false"/>
-   </extension>
-<!-- Preference tests -->
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            name="Editors Test"
-            class="org.eclipse.ui.tests.dialogs.EnableTestPreferencePage"
-            id="org.eclipse.ui.tests.dialogs.EnableTestPreferencePage">
-      </page>
-      <page
-            name="Bad Listeners Test"
-            class="org.eclipse.ui.tests.manual.BrokenUpdatePreferencePage"
-            id="org.eclipse.ui.tests.manual.BrokenUpdatePreferencePage">
-      </page>
-      <page
-            name="Font Editors"
-            class="org.eclipse.ui.tests.dialogs.FontFieldEditorTestPreferencePage"
-            id="org.eclipse.ui.tests.dialogs.FontFieldEditorTestPreferencePage">
-      </page>
-   </extension>
-<!-- Multi-page editor tests -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <keyBinding
-            string="Ctrl+Shift+4"
-            scope="org.eclipse.ui.tests.scope1"
-            command="org.eclipse.ui.tests.TestCommandId"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-      <keyBinding
-            string="Ctrl+Shift+5"
-            scope="org.eclipse.ui.tests.scope2"
-            command="org.eclipse.ui.tests.TestCommandId"
-            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
-      </keyBinding>
-   </extension>
-   <extension
-         point="org.eclipse.ui.contexts">
-      <context
-            name="Scope 1"
-            description="Test Scope #1"
-            id="org.eclipse.ui.tests.scope1">
-      </context>
-      <context
-            name="Scope 2"
-            description="Test Scope #2"
-            id="org.eclipse.ui.tests.scope2">
-      </context>
-      <context
-         	id="org.eclipse.ui.tests.contexts.context1"
-         	name="Test Context 1"
-         	description="A test for the preferred context support" />
-      <context
-         	id="org.eclipse.ui.tests.contexts.context2"
-         	name="Test Context 2"
-         	description="A test for the preferred context support"
-         	parentId="org.eclipse.ui.tests.contexts.context1" />
-      <context
-            id="org.eclipse.ui.tests.contexts.ViewPart"
-            name="View Part Context"
-            parentId="org.eclipse.ui.contexts.window"/>
-      <context
-            id="org.eclipse.ui.tests.contexts.WorkbenchWindow"
-            name="WorkbenchWindow Part Context"
-            parentId="org.eclipse.ui.contexts.window"/>
-      <context
-            id="org.eclipse.ui.tests.contexts.Page"
-            name="Page Context"
-            parentId="org.eclipse.ui.contexts.window"/>
-      <context
-            id="org.eclipse.ui.tests.multipageeditor.contextEditor"
-            name="MPEP Context"
-            parentId="org.eclipse.ui.textEditorScope"/>
-   </extension>
-<!-- Marker Image Provider tests -->
-   <extension
-         id="testmarker"
-         name="Test Marker"
-         point="org.eclipse.core.resources.markers">
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerImageProviders">
-      <imageprovider
-            markertype="org.eclipse.ui.tests.testmarker"
-            icon="icons/anything.gif"
-            id="testmarker.imageProvider">
-      </imageprovider>
-   </extension>
-   <extension
-         id="testmarker2"
-         name="Test Marker 2"
-         point="org.eclipse.core.resources.markers">
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerImageProviders">
-      <imageprovider
-            class="org.eclipse.ui.tests.adaptable.TestMarkerImageProvider"
-            icon="icons\dynamic.gif"
-            id="testmarker.imageProvider2"
-            markertype="org.eclipse.ui.tests.testmarker2">
-      </imageprovider>
-   </extension>
-   <extension
-         point="org.eclipse.ui.intro">
-      <intro
-            icon="icons/anything.gif"
-            class="org.eclipse.ui.tests.intro.MockIntroPart"
-            id="org.eclipse.ui.testintro">
-      </intro>
-   </extension>
-<!-- Activities testing -->
-   <extension
-         point="org.eclipse.ui.activities">
-      <category
-            name="Category 1"
-            description="description"
-            id="org.eclipse.category1">
-      </category>
-      <category
-            name="Category 2"
-            description="description"
-            id="org.eclipse.category2">
-      </category>
-      <category
-            name="Category 3"
-            description="description"
-            id="org.eclipse.category3">
-      </category>
-      <category
-            name="Category 4"
-            description="description"
-            id="org.eclipse.category4">
-      </category>
-      <category
-            name="Category 5"
-            description="description"
-            id="org.eclipse.category5">
-      </category>
-      <category
-            name="Category 6"
-            description="description"
-            id="org.eclipse.category6">
-      </category>
-      <activity
-            name="Activity 1"
-            description="description"
-            id="org.eclipse.activity1">
-      </activity>
-      <activity
-            name="Activity 2"
-            description="description"
-            id="org.eclipse.activity2">
-      </activity>
-      <activity
-            name="Activity 3"
-            description="description"
-            id="org.eclipse.activity3">
-      </activity>
-      <activity
-            name="Activity 4"
-            description="description"
-            id="org.eclipse.activity4">
-      </activity>
-      <activity
-            name="Activity 5"
-            description="description"
-            id="org.eclipse.activity5">
-      </activity>
-      <activity
-            name="Activity 6"
-            description="description"
-            id="org.eclipse.activity6">
-      </activity>
-      <activity
-            name="Activity 7"
-            description="description"
-            id="org.eclipse.activity7">
-      </activity>
-      <activity
-            name="Activity 8"
-            description="description"
-            id="org.eclipse.activity8">
-      </activity>
-      <activity
-            name="Activity 9"
-            description="description"
-            id="org.eclipse.activity9">
-      </activity>
-      <activity
-            name="Activity 10"
-            description="description"
-            id="org.eclipse.activity10">
-      </activity>
-      <activity
-            name="Activity 11"
-            description="description"
-            id="org.eclipse.activity11">
-      </activity>
-      <activity
-            name="Activity 12"
-            description="description"
-            id="org.eclipse.activity12">
-      </activity>
-      <activity
-            name="Activity 13"
-            description="description"
-            id="org.eclipse.activity13">
-      </activity>
-      <activity
-            name="Activity 14"
-            description="description"
-            id="org.eclipse.activity14">
-      </activity>
-      <activity
-            name="Activity 15"
-            description="description"
-            id="org.eclipse.activity15">
-      </activity>
-      <activity
-            name="Activity 16"
-            description="description"
-            id="org.eclipse.activity16">
-      </activity>
-      <activity
-            name="Activity 17"
-            description="description"
-            id="org.eclipse.activity17">
-      </activity>
-      <activity
-            name="Activity 18"
-            description="description"
-            id="org.eclipse.activity18">
-      </activity>
-      <activityPatternBinding
-            activityId="org.eclipse.activity1"
-            pattern="org.eclipse.pattern1">
-      </activityPatternBinding>
-      <activityPatternBinding
-            activityId="org.eclipse.activity2"
-            pattern="org.eclipse.pattern1">
-      </activityPatternBinding>
-      <activity
-            id="org.eclipse.ui.tests.filter1.normal"
-            name="Normal Activity Filter1">
-      </activity>
-      <activity
-            id="org.eclipse.ui.tests.filter1.enabled"
-            name="Enabled Activity Filter1">
-         <enabledWhen>
-            <with
-                  variable="activeContexts">
-               <iterate
-                     operator="or">
-                  <equals
-                        value="org.eclipse.ui.command.contexts.enablement_test1">
-                  </equals>
-               </iterate>
-            </with>
-         </enabledWhen>
-      </activity>
-      <activityPatternBinding
-            activityId="org.eclipse.ui.tests.filter1.normal"
-            pattern="org/donotfilter">
-      </activityPatternBinding>
-      <activityPatternBinding
-            activityId="org.eclipse.ui.tests.filter1.enabled"
-            pattern="org/filter">
-      </activityPatternBinding>
-      
-      <!-- Expression variable controlled activity -->
-      <activity
-            id="org.eclipse.ui.tests.filter2.enabled"
-            name="Enabled Activity Filter2">
-         <enabledWhen>
-            <with
-                  variable="arbitraryVariable">
-               <equals
-                     value="arbitraryValue">
-               </equals>
-            </with>
-         </enabledWhen>
-      </activity>
-      <activityPatternBinding
-            activityId="org.eclipse.ui.tests.filter2.enabled"
-            pattern="org/filter2">
-      </activityPatternBinding>
-      
-      <!-- This enabledWhen activity is always enabled.
-      	   The expression result is obviously always true.
-      	   Without the the "no-update" lock with 
-      	   <code>addingEvaluationListener</code> in MutableActivityManager this
-      	   would leed to an endless loop. Because the change in enablement from
-      	   false to true would leed to an update of the activity which adds
-      	   the activity evaluation listener which itself calls indirect an 
-      	   update of the activity: endless loop build finished.
-      	   
-      	   If this were variable dependent, the first result would've been 
-      	   false, so no update would've been called before the evaluation 
-      	   listener could've been fully installed. And in later updates of 
-      	   the activity the evaluation listener would've been already installed,
-      	   so the entrance to the endless loop would not be entered.
-      	   
-      	   (There is no corresponding test code in the UtilTest Unit Test for
-      	   this.)      	   
-       -->
-      <activity
-            id="org.eclipse.ui.tests.filter3.enabled"
-            name="Always Enabled Activity Filter3">
-         <enabledWhen>
-            <instanceof
-                  value="java.lang.Object">
-            </instanceof>
-         </enabledWhen>
-      </activity>  
-      
-      <activityPatternBinding
-            activityId="org.eclipse.activity3"
-            pattern="org.eclipse.pattern1">
-      </activityPatternBinding>
-      <defaultEnablement
-            id="org.eclipse.activity1">
-      </defaultEnablement>
-      <defaultEnablement
-            id="org.eclipse.activity2">
-      </defaultEnablement>
-      <defaultEnablement
-            id="org.eclipse.activity3">
-      </defaultEnablement>
-      <defaultEnablement
-            id="org.eclipse.activity4">
-      </defaultEnablement>
-      <categoryActivityBinding
-            activityId="org.eclipse.activity1"
-            categoryId="org.eclipse.category1">
-      </categoryActivityBinding>
-      <categoryActivityBinding
-            activityId="org.eclipse.activity2"
-            categoryId="org.eclipse.category1">
-      </categoryActivityBinding>
-      <categoryActivityBinding
-            activityId="org.eclipse.activity3"
-            categoryId="org.eclipse.category1">
-      </categoryActivityBinding>
-      <categoryActivityBinding
-            activityId="org.eclipse.activity4"
-            categoryId="org.eclipse.category1">
-      </categoryActivityBinding>
-      <activityRequirementBinding
-            requiredActivityId="org.eclipse.activity2"
-            activityId="org.eclipse.activity1">
-      </activityRequirementBinding>
-      <activityRequirementBinding
-            requiredActivityId="org.eclipse.activity3"
-            activityId="org.eclipse.activity1">
-      </activityRequirementBinding>
-      <activityRequirementBinding
-            requiredActivityId="org.eclipse.activity4"
-            activityId="org.eclipse.activity1">
-      </activityRequirementBinding>
-      <activityRequirementBinding
-            requiredActivityId="org.eclipse.activity5"
-            activityId="org.eclipse.activity1">
-      </activityRequirementBinding>
-      <activityRequirementBinding
-            requiredActivityId="org.eclipse.activity6"
-            activityId="org.eclipse.activity1">
-      </activityRequirementBinding>
-      <activityRequirementBinding
-            requiredActivityId="org.eclipse.activity7"
-            activityId="org.eclipse.activity1">
-      </activityRequirementBinding>
-      <activity
-            description="Activity for testing the problem filters"
-            id="problemFilterTestActivity"
-            name="ProblemFilterTest"/>
-      <activityPatternBinding
-            activityId="problemFilterTestActivity"
-            pattern="org\.eclipse\.ui\.tests/.*problemTest.*"/>
-      <category
-            description="category for the problem filter tests"
-            id="problemCategory"
-            name="Problem Filter Tests"/>
-      <categoryActivityBinding
-            activityId="problemFilterTestActivity"
-            categoryId="problemCategory"/>
-      <defaultEnablement id="problemFilterTestActivity"/>      
-      <activity
-            description="NonRegular Expression"
-            id="org.eclipse.activityNonRegExp"
-            name="Activity NonRegExp">
-      </activity>
-      <activityPatternBinding
-            activityId="org.eclipse.activityNonRegExp"
-            isEqualityPattern="true"
-            pattern="org.eclipse.ui.tests.activity{No{Reg(Exp[^d]">
-      </activityPatternBinding>
-      
-      <!-- Expression should be never true, so it tests if it is an instance
-      		of java.lang.Double -->
-      <activity
-            id="org.eclipse.ui.tests.filter4.enabled"
-            name="Always Disabled Activity Filter4">
-         <enabledWhen>
-            <instanceof
-                  value="java.lang.Double">
-            </instanceof>
-         </enabledWhen>
-      </activity>
-      <activity
-            description="ActivityDependsOnExpressionActivity"
-            id="org.eclipse.ui.tests.filter5.enabled"
-            name="ActivityDependsOnExpressionActivity">
-      </activity>
-      <activityRequirementBinding
-            activityId="org.eclipse.ui.tests.filter5.enabled"
-            requiredActivityId="org.eclipse.ui.tests.filter4.enabled">
-      </activityRequirementBinding>
-      <activity
-            description="ExpressionActivityDependsOnActivity"
-            id="org.eclipse.ui.tests.filter7.enabled"
-            name="ExpressionActivityDependsOnActivity">
-         <enabledWhen>
-            <instanceof
-                  value="java.lang.Object">
-            </instanceof>
-         </enabledWhen>
-      </activity>
-      <activityRequirementBinding
-            activityId="org.eclipse.ui.tests.filter7.enabled"
-            requiredActivityId="org.eclipse.ui.tests.filter6.enabled">
-      </activityRequirementBinding>
-      <activity
-            description="ConventionalActivityControllingExpressionActivity"
-            id="org.eclipse.ui.tests.filter6.enabled"
-            name="ConventionalActivityControllingExpressionActivity">
-      </activity>         
-   </extension>
-
-  <extension
-         point="org.eclipse.ui.themes">
-      <theme
-      		name="Extended Theme 1"
-            id="extendedTheme1">
-         <data
-               name="d1"
-               value="d1">
-         </data>
-         <colorOverride
-               value="COLOR_DARK_GREEN"
-               id="swtcolor">
-         </colorOverride>
-         <fontOverride
-               value="Sans-regular-10"
-               id="valfont">
-         </fontOverride>
-         
-      </theme>
-   </extension>
-   <extension
-         point="org.eclipse.ui.themes">
-      <theme      		
-            id="extendedTheme1">
-         <data
-               name="d1"
-               value="not honoured">
-         </data>            
-            
-         <data
-               name="d2"
-               value="d2">
-         </data>  
-         
-         <colorOverride
-               value="COLOR_RED"
-               id="swtcolor">
-         </colorOverride>
-
-         <colorOverride
-               value="COLOR_RED"
-               id="rgbcolor">
-         </colorOverride>
-         
-         <fontOverride
-               value="not honoured"
-               id="valfont">
-         </fontOverride>
-         
-         <fontOverride
-               value="Sans-regular-10"
-               id="novalfont">
-         </fontOverride>
-         
-         
-                          
-      </theme>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.themes">
-      <theme      		
-            id="extendedTheme1">
-      </theme>
-   </extension>
-   <extension
-         point="org.eclipse.ui.themes">
-      <theme      		
-      		name="Extended Theme 2"
-            id="extendedTheme2">
-      </theme>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.themes">
-      <theme
-      		name="Extended Theme 3"
-            id="extendedTheme3">
-      </theme>
-   </extension>
-   <extension
-         point="org.eclipse.ui.themes">
-      <theme 
-	        name="not honoured"     		
-            id="extendedTheme3">
-      </theme>
-   </extension>  
-   
-   <extension
-         point="org.eclipse.ui.themes">
-      <theme
-            name="test theme 1"
-            id="theme1">
-         <data
-               name="data1"
-               value="override1">
-         </data>
-         <colorOverride
-               value="2,1,1"
-               id="rgbcolor">
-         </colorOverride>
-         <colorOverride
-               value="COLOR_DARK_GREEN"
-               id="swtcolor">
-         </colorOverride>
-         <colorOverride
-               value="9,9,9"
-               id="adefaultedcolor2">
-         </colorOverride>
-         <fontOverride
-               value="Courier-italic-10"
-               id="novalfont">
-         </fontOverride>
-         <fontOverride
-               value="Courier-regular-16"
-               id="defaultedfont2">
-         </fontOverride>
-         <fontOverride
-               value="Sans-regular-5"
-               id="valfont">
-         </fontOverride>
-      </theme>
-      <data
-            name="data1"
-            value="value1">
-      </data>
-      <data
-            name="data2"
-            value="value2">
-      </data>
-      <data
-            name="int1"
-            value="3133">
-      </data>
-      <data
-            name="bool1"
-            value="true">
-      </data>
-      <colorDefinition
-            label="rgbcolor"
-            value="1,1,2"
-            id="rgbcolor">
-      </colorDefinition>
-      <colorDefinition
-            label="not honoured"
-            value="not honoured"
-            id="rgbcolor">            
-      </colorDefinition>
-      <colorDefinition
-            label="swtcolor"
-            value="COLOR_DARK_BLUE"
-            id="swtcolor">
-      </colorDefinition>
-      <colorDefinition
-            label="zdefaultedcolor"
-            defaultsTo="rgbcolor"
-            id="defaultedcolor">
-      </colorDefinition>
-      <colorDefinition
-            label="adefaultedcolor2"
-            defaultsTo="defaultedcolor"
-            id="adefaultedcolor2">
-      </colorDefinition>
-      <colorDefinition
-            label="defaultedcolor3"
-            defaultsTo="adefaultedcolor2"
-            id="defaultedcolor3">
-      </colorDefinition>
-      <colorDefinition
-            label="platformcolor"
-            value="0,0,0"
-            id="platformcolor">
-         <colorValue
-               ws="win32"
-               value="50,50,50"
-               os="win32">
-         </colorValue>
-         <colorValue
-               ws="gtk"
-               value="25,25,25"
-               os="linux">
-         </colorValue>
-         <colorValue
-               value="75,75,75"
-               os="linux">
-         </colorValue>
-      </colorDefinition>
-      <colorDefinition
-            label="factorycolor"
-            colorFactory="org.eclipse.ui.tests.themes.TestColorFactory"
-            id="factorycolor">
-      </colorDefinition>
-      <colorDefinition
-            label="badColor1"
-            value="I am Emo and I prefer black."
-            id="badColor1">
-      </colorDefinition>
-      <colorDefinition
-            label="badColor2"
-            value="0,0, 1"
-            id="badColor2">
-      </colorDefinition>    
-      <colorDefinition
-            label="badColor3"
-            value="0,0, 1x"
-            id="badColor3">
-      </colorDefinition>  
-      <fontDefinition
-            label="novalfont"
-            id="novalfont">
-      </fontDefinition>
-      <fontDefinition
-            label="valfont"
-            value="Tahoma-bold-20"
-            id="valfont">
-      </fontDefinition>
-      <fontDefinition
-            label="not honoured"
-            value="not honoured"
-            id="valfont">
-      </fontDefinition>      
-      <fontDefinition
-            label="platformfont"
-            value="Sans-bold-15"
-            id="platformfont">
-         <fontValue
-               ws="win32"
-               os="win32"
-               value="Courier New-regular-12">
-         </fontValue>
-      </fontDefinition>
-      <fontDefinition
-            label="defaultedfont"
-            defaultsTo="valfont"
-            id="defaultedfont">
-      </fontDefinition>
-      <fontDefinition
-            label="defaultedfont2"
-            defaultsTo="defaultedfont"
-            id="defaultedfont2">
-      </fontDefinition>
-      <fontDefinition
-            label="defaultedfont3"
-            defaultsTo="defaultedfont2"
-            id="defaultedfont3">
-      </fontDefinition>
-      <fontDefinition
-            label="nooverridefont"
-            id="nooverridefont">
-      </fontDefinition>
-      <colorDefinition
-            label="nooverridecolor"
-            value="99,99,99"
-            id="nooverridecolor">
-      </colorDefinition>
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.acceleratorScopes">
-         <acceleratorScope
-         	id="org.eclipse.ui.tests.acceleratorScopes.test1"
-         	name="Test Accelerator Scope 1"
-         	description="A test for the deprecated accelerator scope support" />
-         <acceleratorScope
-         	id="org.eclipse.ui.tests.acceleratorScopes.test2"
-         	name="Test Accelerator Scope 2"
-         	description="A test for the deprecated accelerator scope support"
-         	parentScope="org.eclipse.ui.tests.acceleratorScopes.test1" />
-   </extension>
-   
-   <extension
-         point="org.eclipse.ui.commands">
-         <scope
-         	id="org.eclipse.ui.tests.commands.scope1"
-         	name="Test Scope 1"
-         	description="A test for the deprecated command scope support" />
-         <scope
-         	id="org.eclipse.ui.tests.commands.scope2"
-         	name="Test Scope 2"
-         	description="A test for the deprecated command scope support"
-         	parent="org.eclipse.ui.tests.commands.scope1" />
-         <command
-            name="Category-Less Command"
-            description="A command with no category"
-            id="org.eclipse.ui.tests.commands.categoryLessCommand">
-      </command>
-   </extension>
-
-   <!--command parameter types -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            defaultHandler="org.eclipse.ui.tests.commands.SubtractIntegerHandler"
-            id="org.eclipse.ui.tests.commands.subtractInteger"
-            name="Subtract 2 Integers"
-            returnTypeId="org.eclipse.ui.tests.commands.Integer">
-         <commandParameter
-               id="minuend"
-               name="Minuend"
-               optional="false"
-               typeId="org.eclipse.ui.tests.commands.Integer"/>
-         <commandParameter
-               id="subtrahend"
-               name="Subtrahend"
-               optional="false"
-               typeId="org.eclipse.ui.tests.commands.Integer"/>
-      </command>
-      <commandParameterType
-            converter="org.eclipse.ui.tests.commands.IntegerConverter"
-            id="org.eclipse.ui.tests.commands.Integer"
-            type="java.lang.Integer"/>
-   </extension>
-
-   <!--parameterized command serialization -->
-   <extension
-         point="org.eclipse.ui.commands">
-         <command
-            name="Zero Parameter Command"
-            id="org.eclipse.ui.tests.commands.zeroParameterCommand">
-      </command>
-         <command
-               id="org.eclipse.ui.tests.commands.oneParameterCommand"
-               name="One Parameter Command">
-            <commandParameter
-                  id="param1.1"
-                  name="Parameter1"
-                  optional="true"/>
-         </command>
-         <command
-               id="org.eclipse.ui.tests.commands.twoParameterCommand"
-               name="Two Parameter Command">
-            <commandParameter
-                  id="param2.1"
-                  name="Parameter1"
-                  optional="true"/>
-            <commandParameter
-                  id="param2.2"
-                  name="Parameter2"
-                  optional="true"/>
-         </command>
-         <command
-               id="org.eclipse.ui.tests.commands.threeParameterCommand"
-               name="Three Parameter Command">
-            <commandParameter
-                  id="param3.1"
-                  name="Parameter1"
-                  optional="true"/>
-            <commandParameter
-                  id="param3.2"
-                  name="Parameter2"
-                  optional="true"/>
-            <commandParameter
-                  id="param3.3"
-                  name="Parameter3"
-                  optional="true"/>
-         </command>
-         <command
-               id="org.eclipse.ui.tests.command.with.f=%)(,unny.name"
-               name="Command with funny name">
-            <commandParameter
-                  id="param.with.F({&apos;&gt;&lt;+|.)=,%.name"
-                  name="Param with funny name"
-                  optional="true"/>
-         </command>
-   </extension>
-   
-   <!-- handler state -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            description="A test case for a command with state"
-            id="org.eclipse.ui.tests.commandWithState"
-            name="Command Wtih State">
-         <state
-               class="org.eclipse.core.commands.State"
-               id="OBJECT"/>
-         <state
-               class="org.eclipse.ui.handlers.RegistryToggleState:true"
-               id="TRUE"/>
-         <state
-               class="org.eclipse.ui.handlers.RegistryToggleState"
-               id="FALSE"/>
-         <state
-               class="org.eclipse.jface.menus.TextState"
-               id="TEXT"/>
-      </command>
-   </extension>
-   
-   <!-- for bug 125792 -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.eclipse.ui.tests.commands.bug125792"
-            name="Bug 125792 Test"
-            >
-         <commandParameter
-               id="param1"
-               name="Param1"
-               optional="true"
-               />
-         <commandParameter
-               id="param2"
-               name="Param2"
-               optional="true"
-               />
-         <commandParameter
-               id="param3"
-               name="Param3"
-               optional="true"/>
-      </command>
-   </extension>
-   
-   <!-- bug 102666 -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.eclipse.ui.tests.commands.bug102666"
-            name="Bug 102666 Test" />
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-   	  <handler
-   	        commandId="org.eclipse.ui.tests.commands.bug102666"
-   	        class="org.eclipse.ui.tests.menus.HelloEHandler">
-   	     <activeWhen>
-               <count value="1" />
-         </activeWhen>
-      </handler>      
-   </extension>
-   	  
-   
-   
-	<!--malformed activity definitions -->
-   <extension
-         name="Actvities for PersistanceTest"
-         point="org.eclipse.ui.activities">
-      <activity
-            id="org.eclipse.ui.PT.A1"/>
-      <activity
-            name="org.eclipse.ui.tests.activity3"
-            id="org.eclipse.ui.PT.A2"/>   
-      <activity
-            name="org.eclipse.ui.PT.A3"/>
-                     
-      <category
-            id="org.eclipse.ui.PT.C1"/>
-      <category
-            name="org.eclipse.ui.tests.category2"
-            id="org.eclipse.ui.PT.C2"/>            
-      <category
-            name="org.eclipse.ui.PT.C3"/>
-            
-      <activityPatternBinding
-            activityId="org.eclipse.ui.PT.A2"/>
-            
-      <activityRequirementBinding
-            activityId="org.eclipse.ui.PT.A2"/> 
-            
-      <categoryActivityBinding
-      		categoryId="org.eclipse.ui.PT.C2" />
-      		           
-   </extension>
-  
-   <!-- part of test for bug 75118 -->
-   <extension
-         point="org.eclipse.ui.newWizards">
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-      <primaryWizard id="org.eclipse.ui.wizards.new.project"/>
-   </extension>
-   
-   <extension
-   		point="org.eclipse.ui.importWizards">
-      <category
-            name="Test Import Category"
-            id="org.eclipse.ui.tests.TestImport">
-      </category>
-      <category
-            name="Test Import Parented Category"
-            parentCategory="org.eclipse.ui.Basic"
-            id="org.eclipse.ui.tests.TestImportParented">
-      </category>    
-      <category
-            name="Test Import Duplicate Category"
-            id="org.eclipse.ui.tests.TestImportDup">
-      </category>
-      <category
-            name="Test Import Duplicate Category"
-            id="org.eclipse.ui.tests.TestImportDup">
-      </category>
-              
-      <wizard
-            name="Test Import Wizard No Category"
-            class="org.eclipse.ui.tests.datatransfer.TestImportWizard"
-            id="org.eclipse.ui.tests.import.NoCategory">
-      </wizard>  
-      <wizard
-            name="Test Import Category Not Valid"
-            class="org.eclipse.ui.tests.datatransfer.TestImportWizard"
-            category="org.eclipse.ui.InvalidCategory"
-            id="org.eclipse.ui.tests.import.InvalidCategory">
-      </wizard>  
-      <wizard
-            name="Test Import Add To New Category"
-            class="org.eclipse.ui.tests.datatransfer.TestImportWizard"
-            category="org.eclipse.ui.tests.TestImport"
-            id="org.eclipse.ui.tests.import.NewCategory">
-      </wizard> 
-      <wizard
-            name="Test Import Add To Parented Category"
-            class="org.eclipse.ui.tests.datatransfer.TestImportWizard"
-            category="org.eclipse.ui.Basic/org.eclipse.ui.tests.TestImportParented"
-            id="org.eclipse.ui.tests.import.NewParentedCategory">
-      </wizard>       
-      <wizard
-            name="Test Import Duplicate Category"
-            class="org.eclipse.ui.tests.datatransfer.TestImportWizard"
-            category="org.eclipse.ui.tests.TestImportDup"
-            id="org.eclipse.ui.tests.import.DuplicateCategory">
-      </wizard> 
-      <wizard
-            name="Test Import Using Export Category"
-            class="org.eclipse.ui.tests.datatransfer.TestImportWizard"
-            category="org.eclipse.ui.tests.TestExport"
-            id="org.eclipse.ui.tests.import.UsingExportCategory">
-      </wizard>       
-                                
-   	</extension>
-
-   <extension
-   		point="org.eclipse.ui.exportWizards">
-      <category
-            name="Test Export Category"
-            id="org.eclipse.ui.tests.TestExport">
-      </category>
-      <category
-            name="Test Export Parented Category"
-            parentCategory="org.eclipse.ui.Basic"
-            id="org.eclipse.ui.tests.TestExportParented">
-      </category>
-      <category
-            name="Test Export Duplicate Category"
-            id="org.eclipse.ui.tests.TestExportDup">
-      </category>
-      <category
-            name="Test Export Duplicate Category"
-            id="org.eclipse.ui.tests.TestExportDup">
-      </category>      
- 
-      <wizard
-            name="Test Export Wizard No Category"
-            class="org.eclipse.ui.tests.datatransfer.TestExportWizard"
-            id="org.eclipse.ui.tests.export.NoCategory">
-      </wizard>      
-      <wizard
-            name="Test Export Category Not Valid"
-            class="org.eclipse.ui.tests.datatransfer.TestExportWizard"
-            category="org.eclipse.ui.InvalidCategory"
-            id="org.eclipse.ui.tests.export.InvalidCategory">
-      </wizard>   
-      <wizard
-            name="Test Export Add To New Category"
-            class="org.eclipse.ui.tests.datatransfer.TestExportWizard"
-            category="org.eclipse.ui.tests.TestExport"
-            id="org.eclipse.ui.tests.export.NewCategory">
-      </wizard> 
-      <wizard
-            name="Test Export Add To Parented Category"
-            class="org.eclipse.ui.tests.datatransfer.TestExportWizard"
-            category="org.eclipse.ui.Basic/org.eclipse.ui.tests.TestExportParented"
-            id="org.eclipse.ui.tests.export.NewParentedCategory">
-      </wizard>  
-      <wizard
-            name="Test Export Duplicate Category"
-            class="org.eclipse.ui.tests.datatransfer.TestExportWizard"
-            category="org.eclipse.ui.tests.TestExportDup"
-            id="org.eclipse.ui.tests.export.DuplicateCategory">
-      </wizard>        
-      <wizard
-            name="Test Export Using Import Category"
-            class="org.eclipse.ui.tests.datatransfer.TestExportWizard"
-            category="org.eclipse.ui.tests.TestImport"
-            id="org.eclipse.ui.tests.export.UsingImportCategory">
-      </wizard>
-      <wizard
-            class="org.eclipse.ui.tests.statushandlers.FaultyExportWizard"
-            id="org.eclipse.ui.tests.statushandlers.FaultyExportWizard"
-            name="FaultyExportWizard">
-      </wizard>  
-                             
-   	</extension>
-   	   
-    <extension
-         point="org.eclipse.ui.encodings">
-      <encoding name="Blorf"/>
-      <encoding name=""/>
-   </extension>
-   
-    <!-- ObjectContributionTests -->
-    
-    <extension
-          point="org.eclipse.core.runtime.adapters">
-       <factory
-             class="org.eclipse.ui.tests.menus.ObjectContributionClasses"
-             adaptableType="org.eclipse.ui.tests.menus.ObjectContributionClasses$IA">
-          <adapter type="org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon"/>
-       </factory>
-       <factory
-             class="org.eclipse.ui.tests.menus.ObjectContributionClasses"
-             adaptableType="org.eclipse.ui.tests.menus.ObjectContributionClasses$IB">
-          <adapter type="org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon"/>
-       </factory>
-       <factory
-             class="org.eclipse.ui.tests.menus.ObjectContributionClasses"
-             adaptableType="org.eclipse.ui.tests.menus.ObjectContributionClasses$E1">
-          <adapter type="org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon"/>
-       </factory>
-       <factory
-             class="org.eclipse.ui.tests.menus.ObjectContributionClasses"
-             adaptableType="org.eclipse.ui.tests.menus.ObjectContributionClasses$IModelElement">
-          <adapter type="org.eclipse.core.resources.IResource"/>
-       </factory>
-       <factory
-             class="org.eclipse.ui.tests.menus.ObjectContributionClasses"
-             adaptableType="org.eclipse.ui.tests.menus.ObjectContributionClasses$IModelElement">
-          <adapter type="org.eclipse.core.resources.mapping.ResourceMapping"/>
-       </factory>
-    </extension>
-    
-    <extension
-         point="org.eclipse.ui.popupMenus">
-         <objectContribution
-            objectClass="org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon"
-            adaptable="true"
-            id="adatableObjectContributions">
-         <action
-               label="ICommon Item 1"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="ICommon.1">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.menus.ObjectContributionClasses$ICommon"
-            id="adatableObjectContributions">
-         <action
-               label="ICommon Item 2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="ICommon.2">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.menus.ObjectContributionClasses$Common"
-            adaptable="true"
-            id="adatableObjectContributions">
-         <action
-               label="Common Item 1"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="Common.1">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.ui.tests.menus.ObjectContributionClasses$Common"
-            id="adatableObjectContributions">
-         <action
-               label="Common Item 2"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="Common.2">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IResource"
-            adaptable="true"
-            id="adatableObjectContributions">
-         <action
-               label="Resource Item"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="IResource.1">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IProject"
-            adaptable="true"
-            id="adatableObjectContributions">
-         <action
-               label="Project Item"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="IProject.1">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.IFile"
-            adaptable="true"
-            id="adatableObjectContributions">
-         <action
-               label="File Item"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="IFile.1">
-         </action>
-      </objectContribution>
-      <objectContribution
-            objectClass="org.eclipse.core.resources.mapping.ResourceMapping"
-            adaptable="true"
-            id="adatableObjectContributions">
-         <action
-               label="Resource Mapping Item"
-               class="org.eclipse.ui.tests.api.MockActionDelegate"
-               id="ResourceMapping.1">
-         </action>
-      </objectContribution>
- 	</extension>
- 	
-  	<extension
-         point="org.eclipse.ui.views">
-        <view
-              category="org.eclipse.ui.tests.resourceTests"
-              class="org.eclipse.ui.tests.markers.ResourceMappingTestView"
-              id="org.eclipse.ui.tests.resourceMappingView"
-              name="Resource Mapping Test"/>
-        <category
-              id="org.eclipse.ui.tests.resourceTests"
-              name="Resource Tests"/>                              
-
-	</extension>    
-
-    <!-- Preference Transfer examples -->
-   <extension
-       point="org.eclipse.ui.preferenceTransfer">
-       <transfer
-            icon="anything.gif"
-            name="Export All Transfer Test"
-            id="org.eclipse.ui.tests.all">
-            <mapping scope="instance">
-            </mapping>
-            <mapping scope="configuration">
-            </mapping>
-            <mapping scope="project">
-            </mapping>
-      <description>
-             Export all tranfer, exports all nodes for specified scopes
-      </description>
-    </transfer>
-   </extension>
-      <extension
-         point="org.eclipse.ui.preferenceTransfer">
-       <transfer
-            name="Bare Bones Transfer Test"
-            id="org.eclipse.ui.tests.bones">
-            <mapping scope="instance">
-            </mapping>
-    </transfer>
-   </extension>
-   <extension
-         point="org.eclipse.ui.preferenceTransfer">
-       <transfer
-            icon="binary_co.gif"
-            name="Export many preferences"
-            id="org.eclipse.ui.tests.many">
-            <mapping scope="instance">
-                <entry node="org.eclipse.ui">
-                 <key name="showIntro"/>
-                 <key name="RUN_IN_BACKGROUND"/>
-                 <key name="bogus name"/>
-                </entry>
-                <entry node="org.eclipse.ui.ide"/>
-            </mapping>
-            <mapping scope="configuration">
-            </mapping>
-      <description>
-             Export many combinations of keys and nodes
-      </description>
-    </transfer>
-   </extension>
-   <extension
-         point="org.eclipse.ui.activities">
-      <category
-            id="org.eclipse.ui.tests.util.1"
-            name="Util Category 1"/>
-      <category
-            id="org.eclipse.ui.tests.util.2"
-            name="Util Category 2"/>
-      <category
-            id="org.eclipse.ui.tests.util.3"
-            name="Util Category 3"/>
-      <category
-            id="org.eclipse.ui.tests.util.4"
-            name="Util Category 4"/>
-      <category
-            id="org.eclipse.ui.tests.util.5"
-            name="Util Category 5"/>
-      <activity
-            id="org.eclipse.ui.tests.util.1"
-            name="Util Activity 1"/>
-      <activity
-            id="org.eclipse.ui.tests.util.2"
-            name="Util Activity 2"/>
-      <activity
-            id="org.eclipse.ui.tests.util.4"
-            name="Util Activity 4"/>
-      <activity
-            id="org.eclipse.ui.tests.util.5"
-            name="Util Activity 5"/>
-      <activityRequirementBinding
-            activityId="org.eclipse.ui.tests.util.2"
-            requiredActivityId="org.eclipse.ui.tests.util.1"/>
-      <categoryActivityBinding
-            activityId="org.eclipse.ui.tests.util.1"
-            categoryId="org.eclipse.ui.tests.util.1"/>
-      <categoryActivityBinding
-            activityId="org.eclipse.ui.tests.util.2"
-            categoryId="org.eclipse.ui.tests.util.2"/>
-      <categoryActivityBinding
-            activityId="org.eclipse.ui.tests.util.1"
-            categoryId="org.eclipse.ui.tests.util.3"/>
-      <categoryActivityBinding
-            activityId="org.eclipse.ui.tests.util.4"
-            categoryId="org.eclipse.ui.tests.util.4"/>
-      <categoryActivityBinding
-            activityId="org.eclipse.ui.tests.util.4"
-            categoryId="org.eclipse.ui.tests.util.5"/>
-      <categoryActivityBinding
-            activityId="org.eclipse.ui.tests.util.5"
-            categoryId="org.eclipse.ui.tests.util.5"/>
-      <activity
-            description="Use for testing the new menu support"
-            id="menuTest1"
-            name="MenuTest 1">
-      </activity>
-      <activityPatternBinding
-            activityId="menuTest1"
-            pattern="org\.eclipse\.ui\.tests/foo">
-      </activityPatternBinding>
-      <activity
-            description="Use for testing the new menu support"
-            id="menuTest2"
-            name="MenuTest 2">
-      </activity>
-      <activityPatternBinding
-            activityId="menuTest2"
-            pattern="org\.eclipse\.ui\.tests/bar">
-      </activityPatternBinding>
-   </extension>
-   <extension
-         point="org.eclipse.ui.activitySupport">
-      <activityImageBinding
-            icon="icons/anything.gif"
-            id="org.eclipse.activity1"/>
-      <categoryImageBinding
-            icon="icons/anything.gif"
-            id="org.eclipse.category1"/>   
-   </extension>
-   <extension
-         id="org.eclipse.ui.tests.multieditor.ASPA"
-         name="ASPA"
-         point="org.eclipse.ui.actionSetPartAssociations">
-      <actionSetPartAssociation targetID="org.eclipse.ui.tests.multieditor.actionSet">
-         <part id="org.eclipse.ui.tests.multieditor.TestEditor"/>
-      </actionSetPartAssociation>
-   </extension>
-
-
-   <extension
-         point="org.eclipse.ui.ide.markerSupport">
-      <problemFilter
-            enabled="false"
-            id="problemTest.onAnyError"
-            name="On Any Error"
-            scope="ON_ANY"
-            severity="ERROR"/>
-      <problemFilter
-            enabled="false"
-            id="problemTest.onSelectedWarning"
-            name="On Selected Warning"
-            scope="ON_SELECTED_ONLY"
-            severity="WARNING"/>
-      <problemFilter
-            enabled="false"
-            id="problemTest.infoAndChildren"
-            name="On Selected Info And Children"
-            scope="ON_SELECTED_AND_CHILDREN"
-            severity="INFO"/>
-      <problemFilter
-            enabled="false"
-            id="problemTest.sameContainerNoSeverity"
-            name="Same Container No Severity"
-            scope="ON_ANY_IN_SAME_CONTAINER"/>
-      <problemFilter
-            enabled="false"
-            id="problemTest.onMethod"
-            name="On Method"
-            onDescription="method"/>
-      <problemFilter
-            enabled="false"
-            id="problemTest.notOnMethod"
-            name="Not On Method"
-            onDescription="!method"/>
-      <problemFilter
-            enabled="false"
-            id="problemTest.onProblem"
-            name="On MarkerType">
-         <selectedType markerId="org.eclipse.ui.tests.categoryTestMarker"/>
-      </problemFilter>
-     
-       <markerTypeCategory name="Test Markers">
-         <markerTypeReference id="org.eclipse.ui.tests.categoryTestMarker"/>
-         <markerTypeReference id="org.eclipse.ui.tests.testmarker"/>
-         <markerTypeReference id="org.eclipse.ui.tests.testmarker2"/>
-      </markerTypeCategory>
-       <markerGrouping
-             id="org.eclipse.ui.tests.test"
-             label="Unbound Test Grouping">
-       </markerGrouping>
-       <markerGroupingEntry
-             id="org.eclipse.ui.tests.test1"
-             label="First category"
-             markerGrouping="org.eclipse.ui.tests.test"
-             priority="2"/>
-       <markerGroupingEntry
-             id="org.eclipse.ui.tests.test2"
-             label="Second category"
-             markerGrouping="org.eclipse.ui.tests.test"
-             priority="1"/>
-        <markerGroupingEntry
-             id="org.eclipse.ui.tests.default"
-             label="Uncategorized"
-             markerGrouping="org.eclipse.ui.tests.test"
-             priority="0"/>
-       <markerAttributeGrouping
-             attribute="testAttribute"
-             defaultGroupingEntry="org.eclipse.ui.tests.default"
-             markerType="org.eclipse.ui.tests.categoryTestMarker">
-          <markerAttributeMapping
-                markerGroupingEntry="org.eclipse.ui.tests.test1"
-                value="0"/>
-          <markerAttributeMapping
-                markerGroupingEntry="org.eclipse.ui.tests.test2"
-                value="1"/>
-       </markerAttributeGrouping>
-       <markerContentGeneratorExtension
-             generatorId="org.eclipse.ui.ide.tasksGenerator"
-             id="org.eclipse.ui.tests.tasksExtension">
-          <markerGrouping
-                id="org.eclipse.ui.tests.taskGrouping"
-                label="Task Grouping">
-          </markerGrouping>
-          <markerFieldConfiguration
-                enabled="false"
-                id="org.eclipse.ui.tests.fixmeTest"
-                name="FIX MEs"
-                scope="ON_SELECTED_AND_CHILDREN"
-                values="org.eclipse.ui.tests.markers.FIXMEParameters">
-          </markerFieldConfiguration>
-       </markerContentGeneratorExtension>
-   </extension>
-   <extension
-         id="categoryTestMarker"
-         name="Category Test Marker"
-         point="org.eclipse.core.resources.markers">
-      <super type="org.eclipse.core.resources.problemmarker"/>
-      <attribute name="category"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.ide.markerResolution">
-      <markerResolutionGenerator
-            class="org.eclipse.ui.tests.markers.TestResolutionGenerator"
-            markerType="org.eclipse.ui.tests.categoryTestMarker"/>
-   </extension>
-
-   <!-- Tests for the new help context identifier work. -->
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.eclipse.ui.tests.helpContextId"
-            name="Help Context Id Test"
-            helpContextId="org.eclipse.ui.tests.commandHelp" />
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            commandId="org.eclipse.ui.tests.helpContextId"
-            class="org.eclipse.ui.tests.menus.HelloEHandler"
-            helpContextId="org.eclipse.ui.tests.handlerHelp" />
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            category="Test Category"
-            class="org.eclipse.ui.tests.propertyPages.TestPropertyPage"
-            id="org.eclipse.ui.tests.and"
-            name="And (Only on File)">
-         <enabledWhen>
-            <and>
-               <adapt type="org.eclipse.core.resources.IResource"/>
-               <adapt type="org.eclipse.core.resources.IFile"/>
-            </and>
-         </enabledWhen>
-      </page>
-      <page
-            category="Test Category"
-            class="org.eclipse.ui.tests.propertyPages.TestPropertyPage"
-            id="org.eclipse.ui.tests.or"
-            name="Or (Files and Folders)">
-         <enabledWhen>
-            <or>
-               <instanceof value="org.eclipse.core.resources.IFile"/>
-               <instanceof value="org.eclipse.core.resources.IFolder"/>
-            </or>
-         </enabledWhen>
-      </page>
-      <page
-            class="org.eclipse.ui.tests.propertyPages.TestPropertyPage"
-            id="org.eclipse.ui.tests.instanceof"
-            name="Instance Of (Projects)">
-         <enabledWhen>
-            <instanceof value="org.eclipse.core.resources.IProject"/>
-         </enabledWhen>
-      </page>
-      <page
-            class="org.eclipse.ui.tests.propertyPages.TableResizePropertyPage"
-            id="org.eclipse.ui.tests.tableResizePage"
-            name="Table Resize Test">
-         <enabledWhen>
-            <adapt
-                  type="org.eclipse.core.resources.IResource">
-            </adapt>
-         </enabledWhen>
-      </page>
-      <page
-            class="org.eclipse.ui.tests.propertyPages.TreeResizePropertyPage"
-            id="org.eclipse.ui.tests.treeResizePage"
-            name="Tree Resize Test">
-         <enabledWhen>
-            <adapt
-                  type="org.eclipse.core.resources.IResource">
-            </adapt>
-         </enabledWhen>
-      </page>
-   </extension>
-   <extension
-         point="org.eclipse.core.runtime.preferences">
-      <initializer
-            class="org.eclipse.ui.tests.preferences.TestPreferenceInitializer">
-      </initializer>
-   </extension>
-  
-   <extension
-         id="menusX1"
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.tests.api.MenuTestHarness?before=MenuTest.Advanced">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.popup.BasicCmdItem"
-               label="Inserted Before"
-               mnemonic="B">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.tests.api.MenuTestHarness?after=MenuTest.Advanced">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.popup.BasicCmdItem"
-               label="Inserted After"
-               mnemonic="A">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.tests.api.MenuTestHarness">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.popup.BasicCmdItem"
-               label="Basic Cmd"
-               mnemonic="B">
-         </command>
-         <menu
-               icon="icons/binary_co.gif"
-               id="MenuTest.popup.BasicMenuItem"
-               label="Basic Menu">
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  label="Sub Item">
-            </command>
-         </menu>
-         <separator
-               name="MenuTest.Advanced"
-               visible="true">
-         </separator>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               label="Parameter Cmd"
-               mnemonic="C">
-            <parameter
-                  name="Greeting"
-                  value="Hi There!">
-            </parameter>
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/binary_co.gif"
-               label="Foo Cmd"
-               mnemonic="F">
-            <visibleWhen
-                  checkEnabled="false">
-            </visibleWhen>
-         </command>
-         <menu
-               icon="icons/dynamic.gif"
-               id="MenuTest.popup.dynamicMenu"
-               label="Dynamic Menu">
-            <dynamic
-               class="org.eclipse.ui.tests.api.workbenchpart.DynamicItem"
-               id="MenuText.popup.DynamicItem">
-            </dynamic>
-         </menu>
-      </menuContribution>
-
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.tests.api.MenuTestHarness">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.popup.BasicCmdItem"
-               label="Basic Cmd"
-               mnemonic="B">
-         </command>
-         <menu
-               icon="icons/binary_co.gif"
-               id="MenuTest.popup.BasicMenuItem"
-               label="Basic Menu">
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  label="Sub Item">
-            </command>
-         </menu>
-         <separator
-               name="MenuTest.Advanced"
-               visible="true">
-         </separator>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               label="Parameter Cmd"
-               mnemonic="C">
-            <parameter
-                  name="Greeting"
-                  value="Hi There!">
-            </parameter>
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/binary_co.gif"
-               label="Foo Cmd"
-               mnemonic="F">
-            <visibleWhen
-                  checkEnabled="false">
-            </visibleWhen>
-         </command>
-         <dynamic
-            class="org.eclipse.ui.tests.api.workbenchpart.DynamicItem"
-            id="MenuText.popup.DynamicItem">
-         </dynamic>
-         <menu
-               icon="icons/dynamic.gif"
-               id="MenuTest.popup.dynamicMenu"
-               label="Dynamic Menu">
-            <dynamic
-               class="org.eclipse.ui.tests.api.workbenchpart.DynamicItem"
-               id="MenuText.popup.DynamicItem">
-            </dynamic>
-         </menu>
-      </menuContribution>
-      
-      <menuContribution
-            locationURI="menu:MenuTest.toolbar.DropItem">
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  label="Dropdown Item">
-            </command>
-      </menuContribution>
-      
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.tests.api.MenuTestHarness">
-         <command
-               commandId="org.eclipse.ui.tests.menus.toggleContext"
-               icon="icons/binary_co.gif"
-               id="toggle.test.t2"
-               label="Toggle Test2"
-               mnemonic="g"
-               style="toggle"
-               tooltip="Toggle contexts.test2">
-            <parameter
-                  name="toggleContext.contextId"
-                  value="org.eclipse.ui.menus.contexts.test2">
-            </parameter>
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWhenWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.popup.BasicCmdItem"
-               label="Basic Cmd"
-               mnemonic="B">
-         </command>
-         <control
-               class="org.eclipse.ui.tests.api.workbenchpart.TextWidget"
-               id="MenuTest.popup.BasicWidgetItem">
-         </control>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.toolbar.DropItem"
-               label="Toolbar Dropdown"
-               style="pulldown"
-               mnemonic="D">
-         </command>
-         <separator
-               name="MenuTest.Advanced"
-               visible="true">
-         </separator>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               label="Parameter Cmd"
-               mnemonic="C">
-            <parameter
-                  name="Greeting"
-                  value="Hi There!">
-            </parameter>
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/binary_co.gif"
-               label="Foo Cmd"
-               mnemonic="F">
-            <visibleWhen
-                  checkEnabled="false">
-            </visibleWhen>
-         </command>
-         <dynamic
-            class="org.eclipse.ui.tests.api.workbenchpart.DynamicItem"
-            id="MenuText.toolbar.DynamicItem">
-         </dynamic>
-         <menu
-               icon="icons/dynamic.gif"
-               id="MenuTest.popup.dynamicMenu"
-               label="Dynamic Menu">
-            <dynamic
-               class="org.eclipse.ui.tests.api.workbenchpart.DynamicItem"
-               id="MenuText.popup.DynamicItem">
-            </dynamic>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.tests.api.MenuTestHarness">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               id="org.eclipse.ui.tests.menus.itemX1"
-               label="Menu Item X1">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="activeContexts">
-                  <iterate
-                        operator="or">
-                     <equals
-                           value="org.eclipse.ui.menus.contexts.test1">
-                     </equals>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.main.menu?after=additions">
-         <menu
-               id="org.eclipse.ui.tests.mainMenu.MenuX2"
-               label="Menu X2">
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  id="org.eclipse.ui.tests.menus.itemX3"
-                  label="Menu Item X3">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  id="org.eclipse.ui.tests.menus.itemX4"
-                  label="Menu Item X4">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="activeContexts">
-                  <iterate
-                        operator="or">
-                     <equals
-                           value="org.eclipse.ui.menus.contexts.test1">
-                     </equals>
-                  </iterate>
-               </with>
-            </visibleWhen>
-            </command>
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  id="org.eclipse.ui.tests.menus.itemX5"
-                  label="Menu Item X5">
-            </command>
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWhenExpression"
-                  id="org.eclipse.ui.tests.menus.itemX6"
-                  label="Menu Expression">
-            </command>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.tests.leak.contextEditor?after=additions">
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  id="org.eclipse.ui.tests.menus.itemX4"
-                  label="Menu Item X4">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="selection">
-               	   <count
-                         value="1">
-               	   </count>
-               </with>
-            </visibleWhen>
-            </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.contexts">
-      <context
-            id="org.eclipse.ui.menus.contexts.test1"
-            name="Text Context X1"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-      <context
-            id="org.eclipse.ui.menus.contexts.test2"
-            name="Text Context X2"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-      <context
-            id="org.eclipse.ui.command.contexts.enablement_test1"
-            name="Handler Enablement 1"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-      <context
-            id="org.eclipse.ui.command.contexts.enablement_test2"
-            name="Handler Enablement 2"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-      <context
-            id="org.eclipse.ui.command.contexts.evaluationService1"
-            name="evaluation service 1"
-            parentId="org.eclipse.ui.contexts.window">
-      </context>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            defaultHandler="org.eclipse.ui.tests.menus.HelloEHandler"
-            id="org.eclipse.ui.tests.menus.enabledWorld"
-            name="Hello">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.tests.menus.enabledWhenWorld"
-            name="Howdy">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.tests.menus.enabledWhenExpression"
-            name="Howdy Expression">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            defaultHandler="org.eclipse.ui.tests.menus.HelloDHandler"
-            id="org.eclipse.ui.tests.menus.disabledWorld"
-            name="Hello">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            defaultHandler="org.eclipse.ui.tests.menus.HelloUpdateHandler"
-            id="org.eclipse.ui.tests.menus.updateWorld"
-            name="Hello">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            defaultHandler="org.eclipse.ui.tests.menus.ToggleContextHandler"
-            id="org.eclipse.ui.tests.menus.toggleContext"
-            name="Toggle Context">
-         <commandParameter
-               id="toggleContext.contextId"
-               name="Context Id"
-               optional="false"
-               values="org.eclipse.ui.tests.menus.ContextIdValues">
-         </commandParameter>
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.tests.menus.iconsDefault"
-            name="Icons Default">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.tests.menus.iconsAll"
-            name="Icons All">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.tests.menus.iconsToolbarOnly"
-            name="Icons Toolbar Only">
-      </command>
-   </extension>
-
-   <extension
-         point="org.eclipse.ui.views">
-      <view
-            class="org.eclipse.ui.tests.markers.MarkersTestMarkersView"
-            id="org.eclipse.ui.tests.markerTests"
-            name="Marker Tests View">
-      </view>
-      <view
-            class="org.eclipse.ui.tests.api.workbenchpart.LifecycleView"
-            id="org.eclipse.ui.tests.LifecycleView"
-            name="Lifecycle View">
-      </view>
-   </extension>
-   <extension
-         point="org.eclipse.ui.statusHandlers">
-      <statusHandler
-            class="org.eclipse.ui.tests.statushandlers.TestStatusHandler"
-            id="org.eclipse.ui.tests.statushandlers.TestStatusHandler">
-      </statusHandler>
-      <statusHandlerProductBinding
-            handlerId="org.eclipse.ui.tests.statushandlers.TestStatusHandler"
-            productId="org.eclipse.sdk.ide">
-      </statusHandlerProductBinding>
-      <statusHandler
-            class="org.eclipse.ui.tests.statushandlers.FreeStatusHandler"
-            id="org.eclipse.ui.tests.statushandlers.FreeStatusHandler">
-      </statusHandler>
-   </extension>
-<!-- Sample invalid extension ! (illegal child) --> 
-   <extension
-         point="org.eclipse.ui.tests.sample">
-      	<invalid
-                  name="InvalidElement">
-        </invalid>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="tests.commands.CCT.cmd1"
-            name="cmd1">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="tests.commands.CCT.cmd2"
-            name="cmd2">
-         <commandParameter
-               id="protocol"
-               name="Protocol"
-               optional="false">
-         </commandParameter>
-         <commandParameter
-               id="host"
-               name="Server"
-               optional="false">
-         </commandParameter>
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.ui.tests.menus.ChangeEnablementHandler"
-            commandId="org.eclipse.ui.tests.menus.enabledWhenWorld">
-            <!--
-         <enabledWhen>
-            <with
-                  variable="activeContexts">
-               <iterate
-                     operator="or">
-                  <equals
-                        value="org.eclipse.ui.menus.contexts.test2">
-                  </equals>
-               </iterate>
-            </with>
-         </enabledWhen>
-         -->
-      </handler>
-      <handler
-            class="org.eclipse.ui.tests.menus.HelloEHandler"
-            commandId="org.eclipse.ui.tests.menus.enabledWhenExpression">
-         <enabledWhen>
-            <with
-                  variable="activeContexts">
-               <iterate
-                     operator="or">
-                  <equals
-                        value="org.eclipse.ui.menus.contexts.test2">
-                  </equals>
-               </iterate>
-            </with>
-         </enabledWhen>
-      </handler>
-   </extension>
-
-
-   <!-- org.eclipse.ui.menus extension point test input
-        do -NOT- change the structure of the contributions
-        without fixing the tests in 'MenusTestSuite' -->
-   <extension
-         id="org.eclipse.ui.menus.test"
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.tests.IfYouChangeMe.FixTheTests?before=MenuTest.Separator">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.BeforeSeparator"
-               label="Inserted Before"
-               mnemonic="B">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.tests.IfYouChangeMe.FixTheTests?after=MenuTest.Separator">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.AfterSeparator"
-               label="Inserted After"
-               mnemonic="A">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.tests.IfYouChangeMe.FixTheTests">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               icon="icons/anything.gif"
-               id="MenuTest.BasicCmdItem"
-               label="Basic Cmd"
-               mnemonic="B">
-         </command>
-         <control
-               class="non.existant.NonExistantClass"
-               id="MenuTest.brokenWidget">
-         </control>
-         <menu
-               icon="icons/binary_co.gif"
-               id="MenuTest.BasicMenu"
-               label="Basic Menu">
-            <command
-                  commandId="org.eclipse.ui.tests.menus.enabledWorld"
-                  id="MenuTest.BasicMenu.SubItem"
-                  label="Sub Item">
-            </command>
-         </menu>
-         <separator
-               name="MenuTest.Separator"
-               visible="true">
-         </separator>
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               id="MenuTest.ParameterItem"
-               label="Parameter Cmd"
-               mnemonic="C">
-            <parameter
-                  name="Greeting"
-                  value="Hi There!">
-            </parameter>
-         </command>
-         <dynamic
-            class="org.eclipse.ui.tests.api.workbenchpart.DynamicItem"
-            id="MenuTest.DynamicItem">
-         </dynamic>
-         <menu
-               icon="icons/dynamic.gif"
-               id="MenuTest.DynamicMenu"
-               label="Dynamic Menu">
-            <dynamic
-               class="org.eclipse.ui.tests.api.workbenchpart.DynamicItem"
-               id="MenuTest.DynamicSubItem">
-            </dynamic>
-         </menu>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.tests.IfYouChangeMe.FixTheTests">
-         <command
-               commandId="org.eclipse.ui.tests.menus.enabledWorld"
-               id="MenuTest.ItemX1"
-               label="Menu Item X1">
-            <visibleWhen
-                  checkEnabled="false">
-               <with
-                     variable="activeContexts">
-                  <iterate
-                        operator="or">
-                     <equals
-                           value="org.eclipse.ui.menus.contexts.test1">
-                     </equals>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="menu:org.eclipse.ui.tests.IfYouChangeMe.FixTheTests">
-         <command
-               commandId="org.eclipse.ui.tests.menus.iconsDefault"
-               id="org.eclipse.ui.tests.menus.iconsDefault"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.iconsAll"
-               id="org.eclipse.ui.tests.menus.iconsAll"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.iconsToolbarOnly"
-               id="org.eclipse.ui.tests.menus.iconsToolbarOnly"
-               style="push">
-         </command>
-      </menuContribution>
-      <menuContribution
-            class="org.eclipse.ui.tests.menus.DeclaredProgrammaticFactory"
-            locationURI="menu:org.eclipse.ui.tests.IfYouChangeMe.FixTheTests?after=org.eclipse.ui.tests.menus.iconsToolbarOnly">
-      
-      </menuContribution>
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.tests.IfYouChangeMe.FixTheTests">
-         <command
-               commandId="org.eclipse.ui.tests.menus.iconsDefault"
-               id="org.eclipse.ui.tests.menus.iconsDefault"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.iconsAll"
-               id="org.eclipse.ui.tests.menus.iconsAll"
-               style="push">
-         </command>
-         <command
-               commandId="org.eclipse.ui.tests.menus.iconsToolbarOnly"
-               id="org.eclipse.ui.tests.menus.iconsToolbarOnly"
-               style="push">
-         </command>
-      </menuContribution>
-   </extension>
-   <!-- END OF org.eclipse.ui.menus extension point test contributions -->
-   
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.tests.category.menuHarness"
-            id="org.eclipse.ui.tests.incMenuHarness"
-            name="Increment Menu Harness">
-      </command>
-      <category
-            id="org.eclipse.ui.tests.category.menuHarness"
-            name="Menu Harness Commands">
-      </category>
-      <command
-            categoryId="org.eclipse.ui.tests.category.menuHarness"
-            id="org.eclipse.ui.tests.commandEnabledVisibility"
-            name="Command Enabled Visibility">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.tests.simplyGo"
-            name="Test Window Action Delegate">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.category.window"
-            id="org.eclipse.ui.tests.simplyStay"
-            name="Test Editor Action Delegate">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.viewActions">
-      <viewContribution 
-            id="org.eclipse.ui.tests.viewContribution.harness"
-            targetID="org.eclipse.ui.tests.api.MenuTestHarness">
-         <action
-               class="org.eclipse.ui.tests.commands.ViewActionDelegate"
-               definitionId="org.eclipse.ui.tests.incMenuHarness"
-               id="org.eclipse.ui.tests.menuHarness.inc"
-               label="MenuInc"
-               menubarPath="additions">
-         </action>
-      </viewContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.editorActions">
-      <editorContribution 
-            id="org.eclipse.ui.tests.editorContribution"
-            targetID="org.eclipse.ui.DefaultTextEditor">
-         <action
-               class="org.eclipse.ui.tests.commands.EditorActionDelegate"
-               definitionId="org.eclipse.ui.tests.simplyStay"
-               id="org.eclipse.ui.tests.action.simplyStay"
-               label="Stay"
-               menubarPath="window/additions">
-         </action>
-      </editorContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.actionSets">
-      <actionSet
-            id="org.eclipse.ui.tests.delegateActionSet"
-            label="actionSet for delegates">
-         <action
-               class="org.eclipse.ui.tests.commands.SimplyGoActionDelegate"
-               definitionId="org.eclipse.ui.tests.simplyGo"
-               id="org.eclipse.ui.tests.action1"
-               label="Simply Go"
-               menubarPath="window/additions"
-               style="push">
-         </action>
-      </actionSet>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commandImages">
-      <image
-            commandId="org.eclipse.ui.tests.menus.iconsDefault"
-            icon="icons/anything.gif">
-      </image>
-      <image
-            commandId="org.eclipse.ui.tests.menus.iconsAll"
-            icon="icons/binary_co.gif">
-      </image>
-      <image
-            commandId="org.eclipse.ui.tests.menus.iconsAll"
-            icon="icons/mockeditorpart1.gif"
-            style="toolbar">
-      </image>
-      <image
-            commandId="org.eclipse.ui.tests.menus.iconsToolbarOnly"
-            icon="icons/view.gif"
-            style="toolbar">
-      </image>
-   </extension>
-   <extension
-         point="org.eclipse.ui.services">
-      <serviceFactory
-            factoryClass="org.eclipse.ui.tests.services.LevelServiceFactory">
-         <service
-               serviceClass="org.eclipse.ui.tests.services.ILevelService">
-         </service>
-      </serviceFactory>
-      <sourceProvider
-            provider="org.eclipse.ui.tests.services.ActiveUserSourceProvider">
-         <variable
-               name="username"
-               priorityLevel="activeContexts">
-         </variable>
-      </sourceProvider>
-      <serviceFactory
-            factoryClass="org.eclipse.ui.tests.api.DummyServiceFactory">
-         <service
-               serviceClass="org.eclipse.ui.tests.api.DummyService"></service>
-      </serviceFactory>
-   </extension>   
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            id="org.eclipse.ui.tests.activity{No{Reg(Exp[^d]"
-            name="NoRegularExpressions Command">
-      </command>
-      <command
-            categoryId="org.eclipse.ui.tests.category.menuHarness"
-            id="org.eclipse.ui.tests.enabledCount"
-            name="Enabled Count">
-      </command>
-      <command
-            defaultHandler="org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler"
-            id="org.eclipse.ui.views.properties.NewPropertySheetCommandTest"
-            name="TestNewPropertySheetCommand">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.ui.tests.menus.HelloEHandler"
-            commandId="org.eclipse.ui.tests.enabledCount">
-         <enabledWhen>
-            <count
-                  value="2">
-            </count>
-         </enabledWhen>
-      </handler>
-   </extension>   
-   <extension
-         point="org.eclipse.ui.elementFactories">
-      <factory
-            class="org.eclipse.ui.tests.api.BadElementFactory"
-            id="org.eclipse.ui.tests.badFactory">
-      </factory>
-   </extension>
-   <extension
-         point="org.eclipse.core.expressions.definitions">
-      <definition
-            id="org.eclipse.ui.tests.defWithPropertyTester">
-         <test
-               args="isEnabled"
-               property="org.eclipse.ui.tests.class.method">
-         </test>
-      </definition>
-   </extension>
-   <extension
-         point="org.eclipse.core.expressions.propertyTesters">
-      <propertyTester
-            class="org.eclipse.ui.tests.services.StaticVarPropertyTester"
-            id="org.eclipse.ui.tests.reflectionTester"
-            namespace="org.eclipse.ui.tests.class"
-            properties="method"
-            type="java.lang.Object">
-      </propertyTester>
-   </extension>
-   
-   <!-- bindings for the platform tests -->
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.ui.help.aboutAction"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+8 A">
-      </key>
-      <key
-            contextId="org.eclipse.ui.contexts.window"
-            platform="carbon"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+8 A">
-      </key>
-      <key
-            commandId="org.eclipse.ui.help.aboutAction"
-            contextId="org.eclipse.ui.contexts.window"
-            platform="carbon"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+8 B">
-      </key>
-   </extension>
-   <extension
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="toolbar:org.eclipse.ui.tests.tooltipTest">
-         <command
-               commandId="org.eclipse.ui.tests.testToolTipCommand"
-               label="Testing Tooltip"
-               style="push">
-         </command>
-      </menuContribution>
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.tests.Bug264804?after=additions">
-         <command
-               commandId="org.eclipse.ui.file.close"
-               style="push">
-            <visibleWhen>
-               <with
-                     variable="activeMenuSelection">
-                  <iterate>
-                     <adapt
-                           type="java.lang.Object">
-                     </adapt>
-                  </iterate>
-               </with>
-            </visibleWhen>
-         </command>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            categoryId="org.eclipse.ui.category.file"
-            id="org.eclipse.ui.tests.testToolTipCommand"
-            name="My Test Tooltip Command">
-      </command>
-      <command
-            defaultHandler="org.eclipse.ui.tests.commands.ExceptionThrowingHandler"
-            id="org.eclipse.ui.tests.command.handlerException"
-            name="Handler Exception">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-      <key
-            commandId="org.eclipse.ui.tests.testToolTipCommand"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M2+M3+1">
-      </key>
-   </extension>   
-      <extension
-         id="menu.dynamic.contribution"
-         point="org.eclipse.ui.menus">
-      <menuContribution
-            locationURI="popup:org.eclipse.ui.tests.dynamicMenuContribution">
-         <dynamic
-               class="org.eclipse.ui.tests.menus.DynamicContributionItemPopup"
-               id="popup:org.eclipse.ui.tests.dynamicMenuContribution">
-         </dynamic>
-      </menuContribution>
-   </extension>
-   <extension
-         point="org.eclipse.ui.bindings">
-         <sequenceModifier
-               find="M1+8"
-               platforms="carbon,cocoa,gtk,win32"
-               replace="M2+8">
-         </sequenceModifier>
-      <key
-            commandId="org.eclipse.ui.navigate.addToWorkingSet"
-            contextId="org.eclipse.ui.contexts.window"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+8 W">
-      </key>
-      <key
-            commandId="org.eclipse.ui.file.import"
-            contextId="org.eclipse.ui.contexts.window"
-            platform="carbon,cocoa,gtk,win32"
-            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-            sequence="M1+8 I">
-	  </key>
-   </extension>
-      <extension
-            point="org.eclipse.ui.bindings">
-         <key
-               commandId="org.eclipse.ui.file.export"
-               contextId="org.eclipse.ui.contexts.window"
-               schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-               sequence="M1+8 E">
-         </key>
-      </extension>
-      <extension
-            point="org.eclipse.ui.bindings">
-         <key
-               commandId="org.eclipse.ui.navigate.back"
-               contextId="org.eclipse.ui.contexts.window"
-               schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
-               sequence="M1+8 Q">
-         </key>
-         <sequenceModifier
-               find="M1+8"
-               platforms="photon"
-               replace="M2+8">
-         </sequenceModifier>
-      </extension>
-      <extension
-            point="org.eclipse.ui.commands">
-         <command
-               defaultHandler="org.eclipse.ui.tests.commands.ToggleStateHandler"
-               id="org.eclipse.ui.tests.toggleStateCommand1"
-               name="toggleStateCommand1">
-            <state
-                  class="org.eclipse.ui.handlers.RegistryToggleState:true"
-                  id="org.eclipse.ui.commands.toggleState">
-            </state>
-         </command>
-         <command
-               defaultHandler="org.eclipse.ui.tests.commands.ToggleStateHandler"
-               id="org.eclipse.ui.tests.toggleStateCommand2"
-               name="toggleStateCommand2">
-            <state
-                  class="org.eclipse.ui.handlers.RegistryToggleState:false"
-                  id="org.eclipse.ui.commands.toggleState">
-            </state>
-         </command>
-         <command
-               defaultHandler="org.eclipse.ui.tests.commands.ToggleStateHandler"
-               id="org.eclipse.ui.tests.toggleStateCommand3"
-               name="toggleStateCommand3">
-         </command>
-         <command
-               defaultHandler="org.eclipse.ui.tests.commands.RadioStateHandler"
-               id="org.eclipse.ui.tests.radioStateCommand1"
-               name="radioStateCommand1">
-            <commandParameter
-                  id="org.eclipse.ui.commands.radioStateParameter"
-                  name="State"
-                  optional="true">
-            </commandParameter>
-            <state
-                  class="org.eclipse.ui.handlers.RadioState:value2"
-                  id="org.eclipse.ui.commands.radioState">
-            </state>
-         </command>
-      </extension>
-   <extension id="rcpSessionApplication" point="org.eclipse.core.runtime.applications">
-	   <application cardinality="singleton-global" thread="main" visible="true">
-	      <run class="org.eclipse.ui.tests.RCPSessionApplication"> </run>
-	   </application>
-   </extension>
-</plugin>
diff --git a/tests/org.eclipse.ui.tests/schema/sample.exsd b/tests/org.eclipse.ui.tests/schema/sample.exsd
deleted file mode 100644
index de3f77c..0000000
--- a/tests/org.eclipse.ui.tests/schema/sample.exsd
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.ui.tests">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.ui.tests" id="org.eclipse.ui.tests.sampleext" name="sample"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="requiredElement"/>
-         </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="requiredElement">
-      <complexType>
-         <attribute name="requiredAttr" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/tests/org.eclipse.ui.tests/test.xml b/tests/org.eclipse.ui.tests/test.xml
deleted file mode 100644
index b228d9a..0000000
--- a/tests/org.eclipse.ui.tests/test.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}\..\.."/>
-
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="plugin-name" value="org.eclipse.ui.tests"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-    <!-- Commented out until source of problem found (not reusing same workspace dir)
-    <property name="session-folder" 
-              value="${eclipse-home}/ui_session_sniff_folder"/>
-    <delete dir="${session-folder}" quiet="true"/>
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${session-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname" 
-                value="org.eclipse.ui.tests.api.SessionCreateTest"/>
-  
-    </ant>
-    
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${session-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname"
-                value="org.eclipse.ui.tests.api.SessionRestoreTest"/>
-    </ant>
-    -->
-
-    <property name="sniff-folder"
-              value="${eclipse-home}/ui_sniff_folder"/>
-    <delete dir="${sniff-folder}" quiet="true"/>
-    <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${sniff-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname"
-                value="org.eclipse.ui.tests.UiTestSuite"/>
-
-    </ant>
-    
-    <property name="jface-sniff-folder"
-              value="${eclipse-home}/jface_sniff_folder"/>
-    <delete dir="${jface-sniff-folder}" quiet="true"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${jface-sniff-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname"
-                value="org.eclipse.jface.tests.AllTests"/>
-    </ant>
-    
-  	<property name="parts-data-folder"
-  	 	      value="${eclipse-home}/parts_data_folder"/>
-  	<delete dir="${parts-data-folder}" quiet="true"/>
-    <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${parts-data-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname"
-                value="org.eclipse.ui.parts.tests.PartsReferencesTestSuite"/>
-    </ant>
-    
-  	<property name="session-data-folder"
-  	 	      value="${eclipse-home}/session_data_folder"/>
-  	<delete dir="${session-data-folder}" quiet="true"/>    
-  	<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="data-dir" value="${session-data-folder}"/>
-      <property name="plugin-name" value="${plugin-name}"/>
-      <property name="classname"
-                value="org.eclipse.ui.tests.session.SessionTests"/>
-    </ant>
-    
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-
-
-	
-</project>
diff --git a/tests/org.eclipse.ui.tests/uiSniff b/tests/org.eclipse.ui.tests/uiSniff
deleted file mode 100644
index a1a24d9..0000000
--- a/tests/org.eclipse.ui.tests/uiSniff
+++ /dev/null
@@ -1,10 +0,0 @@
-echo Running ui.TestSuite
-rm -rf 'ui_sniff_folder'
-./jre/bin/java -cp startup.jar org.eclipse.core.launcher.UIMain -application org.eclipse.ui.junit.runner -dev bin -data %LOCATION% -testPluginName org.eclipse.ui.tests -className org.eclipse.ui.tests.UiTestSuite -console  
-
-echo Running ui.api.SessionCreateTest
-rm -rf ui_session_sniff_folder
-./jre/bin/java -cp startup.jar org.eclipse.core.launcher.UIMain -application org.eclipse.ui.junit.runner -dev bin -data %LOCATION% -testPluginName org.eclipse.ui.tests -className org.eclipse.ui.tests.api.SessionCreateTest -console  
-
-echo Running ui.api.SessionRestoreTest
-./jre/bin/java -cp startup.jar org.eclipse.core.launcher.UIMain -application org.eclipse.ui.junit.runner -dev bin -data %LOCATION% -testPluginName org.eclipse.ui.tests -className org.eclipse.ui.tests.api.SessionRestoreTest -console 
diff --git a/tests/org.eclipse.ui.tests/uiSniff.bat b/tests/org.eclipse.ui.tests/uiSniff.bat
deleted file mode 100644
index 1300bc1..0000000
--- a/tests/org.eclipse.ui.tests/uiSniff.bat
+++ /dev/null
@@ -1,27 +0,0 @@
-@echo off
-rem *******************************************************************************
-rem Copyright (c) 2000, 2005 IBM Corporation and others.
-rem All rights reserved. This program and the accompanying materials
-rem are made available under the terms of the Eclipse Public License v1.0
-rem which accompanies this distribution, and is available at
-rem http://www.eclipse.org/legal/epl-v10.html
-rem
-rem Contributors:
-rem     IBM Corporation - initial API and implementation
-rem *******************************************************************************
-rem This is the UI Sniff test batch file.  
-
-set CLASSPATH=startup.jar
-
-set LOCATION=ui_sniff_folder
-del /Q /S %LOCATION%
-echo Running UiTestSuite
-.\jre\bin\java -cp %CLASSPATH% org.eclipse.core.launcher.UIMain -application org.eclipse.ui.junit.runner -dev bin -data %LOCATION% -testPluginName org.eclipse.ui.tests -className org.eclipse.ui.tests.UiTestSuite -console
-
-set LOCATION=ui_session_sniff_folder
-del /Q /S %LOCATION%
-echo Running SessionCreateTest
-.\jre\bin\java -cp %CLASSPATH% org.eclipse.core.launcher.UIMain -application org.eclipse.ui.junit.runner -dev bin -data %LOCATION% -testPluginName org.eclipse.ui.tests -className org.eclipse.ui.tests.api.SessionCreateTest -console
-echo Running SessionRestoreTest
-.\jre\bin\java -cp %CLASSPATH% org.eclipse.core.launcher.UIMain -application org.eclipse.ui.junit.runner -dev bin -data %LOCATION% -testPluginName org.eclipse.ui.tests -className org.eclipse.ui.tests.api.SessionRestoreTest -console
-